diff --git a/Gopkg.lock b/Gopkg.lock new file mode 100644 index 00000000..a630eb95 --- /dev/null +++ b/Gopkg.lock @@ -0,0 +1,803 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + digest = "1:f9ae348e1f793dcf9ed930ed47136a67343dbd6809c5c91391322267f4476892" + name = "github.com/Microsoft/go-winio" + packages = ["."] + pruneopts = "UT" + revision = "97e4973ce50b2ff5f09635a57e2b88a037aae829" + version = "v0.4.11" + +[[projects]] + digest = "1:6981402aef27693f4b2ec619117abd263fde29f8c1dfac46eef0f35038d37513" + name = "github.com/Shopify/sarama" + packages = ["."] + pruneopts = "UT" + revision = "ec843464b50d4c8b56403ec9d589cf41ea30e722" + version = "v1.19.0" + +[[projects]] + digest = "1:dc2d85c13ac22c22a1f3170a41a8e1b897fa05134aaf533f16df44f66a25b4a1" + name = "github.com/Sirupsen/logrus" + packages = ["."] + pruneopts = "UT" + revision = "a67f783a3814b8729bd2dac5780b5f78f8dbd64d" + version = "v1.1.0" + +[[projects]] + digest = "1:e92f5581902c345eb4ceffdcd4a854fb8f73cf436d47d837d1ec98ef1fe0a214" + name = "github.com/StackExchange/wmi" + packages = ["."] + pruneopts = "UT" + revision = "5d049714c4a64225c3c79a7cf7d02f7fb5b96338" + version = "1.0.0" + +[[projects]] + digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" + name = "github.com/davecgh/go-spew" + packages = ["spew"] + pruneopts = "UT" + revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" + version = "v1.1.1" + +[[projects]] + digest = "1:3cabbabc9e0e4aa7e12b882bdc213f41cf8bd2b2ce2a7b5e0aceaf8a6a78049b" + name = "github.com/docker/distribution" + packages = [ + "digest", + "reference", + ] + pruneopts = "UT" + revision = "48294d928ced5dd9b378f7fd7c6f5da3ff3f2c89" + version = "v2.6.2" + +[[projects]] + digest = "1:8891f79f7ff8e7be4af5070ba498aed9729a7adee44d138952d48d04d9d18391" + name = "github.com/docker/docker" + packages = [ + "api", + "api/types", + "api/types/blkiodev", + "api/types/container", + "api/types/events", + "api/types/filters", + "api/types/mount", + "api/types/network", + "api/types/reference", + "api/types/registry", + "api/types/strslice", + "api/types/swarm", + "api/types/time", + "api/types/versions", + "api/types/volume", + "client", + "pkg/ioutils", + "pkg/longpath", + "pkg/system", + "pkg/tlsconfig", + ] + pruneopts = "UT" + revision = "092cba3727bb9b4a2f0e922cd6c0f93ea270e363" + version = "v1.13.1" + +[[projects]] + digest = "1:811c86996b1ca46729bad2724d4499014c4b9effd05ef8c71b852aad90deb0ce" + name = "github.com/docker/go-connections" + packages = [ + "nat", + "sockets", + "tlsconfig", + ] + pruneopts = "UT" + revision = "7395e3f8aa162843a74ed6d48e79627d9792ac55" + version = "v0.4.0" + +[[projects]] + digest = "1:6f82cacd0af5921e99bf3f46748705239b36489464f4529a1589bc895764fb18" + name = "github.com/docker/go-units" + packages = ["."] + pruneopts = "UT" + revision = "47565b4f722fb6ceae66b95f853feed578a4a51c" + version = "v0.3.3" + +[[projects]] + branch = "master" + digest = "1:4841e14252a2cecf11840bd05230412ad469709bbacfc12467e2ce5ad07f339b" + name = "github.com/docker/libtrust" + packages = ["."] + pruneopts = "UT" + revision = "aabc10ec26b754e797f9028f4589c5b7bd90dc20" + +[[projects]] + branch = "master" + digest = "1:6f9339c912bbdda81302633ad7e99a28dfa5a639c864061f1929510a9a64aa74" + name = "github.com/dustin/go-humanize" + packages = ["."] + pruneopts = "UT" + revision = "9f541cc9db5d55bce703bd99987c9d5cb8eea45e" + +[[projects]] + digest = "1:1f0c7ab489b407a7f8f9ad16c25a504d28ab461517a971d341388a56156c1bd7" + name = "github.com/eapache/go-resiliency" + packages = ["breaker"] + pruneopts = "UT" + revision = "ea41b0fad31007accc7f806884dcdf3da98b79ce" + version = "v1.1.0" + +[[projects]] + branch = "master" + digest = "1:79f16588b5576b1b3cd90e48d2374cc9a1a8776862d28d8fd0f23b0e15534967" + name = "github.com/eapache/go-xerial-snappy" + packages = ["."] + pruneopts = "UT" + revision = "776d5712da21bc4762676d614db1d8a64f4238b0" + +[[projects]] + digest = "1:444b82bfe35c83bbcaf84e310fb81a1f9ece03edfed586483c869e2c046aef69" + name = "github.com/eapache/queue" + packages = ["."] + pruneopts = "UT" + revision = "44cc805cf13205b55f69e14bcb69867d1ae92f98" + version = "v1.1.0" + +[[projects]] + digest = "1:47fcaecbe7b2d5bd5361b65138943ea223db9bbf596778175f1bdae6e8c55035" + name = "github.com/elastic/beats" + packages = [ + "libbeat/api", + "libbeat/asset", + "libbeat/autodiscover", + "libbeat/autodiscover/builder", + "libbeat/autodiscover/meta", + "libbeat/autodiscover/providers/docker", + "libbeat/autodiscover/providers/jolokia", + "libbeat/autodiscover/providers/kubernetes", + "libbeat/autodiscover/template", + "libbeat/beat", + "libbeat/cfgfile", + "libbeat/cloudid", + "libbeat/cmd", + "libbeat/cmd/export", + "libbeat/cmd/instance", + "libbeat/cmd/test", + "libbeat/common", + "libbeat/common/atomic", + "libbeat/common/bus", + "libbeat/common/cfgtype", + "libbeat/common/cfgwarn", + "libbeat/common/cli", + "libbeat/common/docker", + "libbeat/common/dtfmt", + "libbeat/common/file", + "libbeat/common/fmtstr", + "libbeat/common/jsontransform", + "libbeat/common/kubernetes", + "libbeat/common/match", + "libbeat/common/safemapstr", + "libbeat/common/schema", + "libbeat/common/schema/mapstriface", + "libbeat/common/seccomp", + "libbeat/common/streambuf", + "libbeat/common/terminal", + "libbeat/common/transport/tlscommon", + "libbeat/conditions", + "libbeat/dashboards", + "libbeat/feature", + "libbeat/keystore", + "libbeat/kibana", + "libbeat/logp", + "libbeat/logp/configure", + "libbeat/metric/system/cpu", + "libbeat/metric/system/host", + "libbeat/metric/system/memory", + "libbeat/metric/system/process", + "libbeat/monitoring", + "libbeat/monitoring/adapter", + "libbeat/monitoring/report", + "libbeat/monitoring/report/elasticsearch", + "libbeat/monitoring/report/log", + "libbeat/outputs", + "libbeat/outputs/codec", + "libbeat/outputs/codec/format", + "libbeat/outputs/codec/json", + "libbeat/outputs/console", + "libbeat/outputs/elasticsearch", + "libbeat/outputs/fileout", + "libbeat/outputs/kafka", + "libbeat/outputs/logstash", + "libbeat/outputs/outil", + "libbeat/outputs/redis", + "libbeat/outputs/transport", + "libbeat/paths", + "libbeat/plugin", + "libbeat/processors", + "libbeat/processors/actions", + "libbeat/processors/add_cloud_metadata", + "libbeat/processors/add_docker_metadata", + "libbeat/processors/add_host_metadata", + "libbeat/processors/add_kubernetes_metadata", + "libbeat/processors/add_locale", + "libbeat/processors/dissect", + "libbeat/publisher", + "libbeat/publisher/includes", + "libbeat/publisher/pipeline", + "libbeat/publisher/queue", + "libbeat/publisher/queue/memqueue", + "libbeat/publisher/queue/spool", + "libbeat/service", + "libbeat/template", + "libbeat/testing", + "libbeat/version", + ] + pruneopts = "T" + revision = "37b5f2d2a20f2734b2373a454b4b4cbb2627e841" + version = "v6.4.1" + +[[projects]] + digest = "1:e6e886365713d9885f3ae6120d4265fe863a1d06203fb8cd92e17fbc9d56fdfd" + name = "github.com/elastic/go-lumber" + packages = [ + "client/v2", + "protocol/v2", + ] + pruneopts = "UT" + revision = "616041e345fc33c97bc0eb0fa6b388aa07bca3e1" + version = "v0.1.0" + +[[projects]] + branch = "master" + digest = "1:13e4e7c8f47bb2f8d5ed21fbcbe40941f41e1ffdeac15d8bc1bb098130fcbbeb" + name = "github.com/elastic/go-seccomp-bpf" + packages = [ + ".", + "arch", + ] + pruneopts = "UT" + revision = "5bed103a93993f24c58dd267faaab582f2373e31" + +[[projects]] + digest = "1:eb8ca174659b48486fc85e54e0695688d567e5cb3f2e96ae4bfac0bdbe815a2b" + name = "github.com/elastic/go-structform" + packages = [ + ".", + "cborl", + "gotype", + "internal/unsafe", + "json", + "ubjson", + "visitors", + ] + pruneopts = "UT" + revision = "1425975cf4eb470099fcf02cbe9389cf3a7028a3" + version = "v0.0.5" + +[[projects]] + branch = "master" + digest = "1:6b81d4776e82d9193f3fb2001dec55db4d2d108690ca6209b97b22148b4134c8" + name = "github.com/elastic/go-sysinfo" + packages = [ + ".", + "internal/registry", + "providers/darwin", + "providers/linux", + "providers/shared", + "providers/windows", + "types", + ] + pruneopts = "UT" + revision = "7b021494a9562d0c3f0422d49b9980709c5650e9" + +[[projects]] + digest = "1:03f8d59eda2a8d487b04976b591011ab0714bcc8f5caa7435a169fa0421d096c" + name = "github.com/elastic/go-txfile" + packages = [ + ".", + "internal/cleanup", + "internal/invariant", + "internal/iter", + "internal/strbld", + "internal/tracelog", + "internal/vfs", + "internal/vfs/osfs", + "pq", + "txerr", + ] + pruneopts = "UT" + revision = "389b527ad365f6fc6cf5fa7e0ba5a2294ad2f3ed" + version = "v0.0.3" + +[[projects]] + digest = "1:811f6de52d5c5a830fc160f2da1f6ca3dfd7138f26211998d2f46cd4e9bf0c2e" + name = "github.com/elastic/go-ucfg" + packages = [ + ".", + "cfgutil", + "flag", + "internal/parse", + "json", + "yaml", + ] + pruneopts = "UT" + revision = "3f129a67bc0d005f1f955b22c918802c8c87d1e2" + version = "v0.6.2" + +[[projects]] + branch = "master" + digest = "1:81f85f9185f94fdb03717cf15731dc097947f4a9106554468a4578cf1e044337" + name = "github.com/elastic/go-windows" + packages = ["."] + pruneopts = "UT" + revision = "bb1581babc04d5cb29a2bfa7a9ac6781c730c8dd" + +[[projects]] + digest = "1:0bf7f5383c693d3981e95c4012c638773298806da879b002c746a089e163c9e8" + name = "github.com/elastic/gosigar" + packages = [ + ".", + "cgroup", + "sys", + "sys/linux", + "sys/windows", + ] + pruneopts = "UT" + revision = "237dff72b4ba95da2cd985f96a9c0ede4aefc760" + version = "v0.9.0" + +[[projects]] + digest = "1:a37a070ad5ddb6a130e55fa2c43d329d4a7058498dc798eae1d61a92566c8ac4" + name = "github.com/ericchiang/k8s" + packages = [ + ".", + "apis/apiextensions/v1beta1", + "apis/apps/v1beta1", + "apis/core/v1", + "apis/extensions/v1beta1", + "apis/meta/v1", + "apis/policy/v1beta1", + "apis/resource", + "runtime", + "runtime/schema", + "util/intstr", + "watch/versioned", + ] + pruneopts = "UT" + revision = "d1bbc0cffaf9849ddcae7b9efffae33e2dd52e9a" + version = "v1.2.0" + +[[projects]] + digest = "1:865079840386857c809b72ce300be7580cb50d3d3129ce11bf9aa6ca2bc1934a" + name = "github.com/fatih/color" + packages = ["."] + pruneopts = "UT" + revision = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4" + version = "v1.7.0" + +[[projects]] + digest = "1:0594af97b2f4cec6554086eeace6597e20a4b69466eb4ada25adf9f4300dddd2" + name = "github.com/garyburd/redigo" + packages = [ + "internal", + "redis", + ] + pruneopts = "UT" + revision = "a69d19351219b6dd56f274f96d85a7014a2ec34e" + version = "v1.6.0" + +[[projects]] + digest = "1:2cd7915ab26ede7d95b8749e6b1f933f1c6d5398030684e6505940a10f31cfda" + name = "github.com/ghodss/yaml" + packages = ["."] + pruneopts = "UT" + revision = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7" + version = "v1.0.0" + +[[projects]] + digest = "1:64a5a67c69b70c2420e607a8545d674a23778ed9c3e80607bfd17b77c6c87f6a" + name = "github.com/go-ole/go-ole" + packages = [ + ".", + "oleutil", + ] + pruneopts = "UT" + revision = "a41e3c4b706f6ae8dfbff342b06e40fa4d2d0506" + version = "v1.2.1" + +[[projects]] + digest = "1:ce579162ae1341f3e5ab30c0dce767f28b1eb6a81359aad01723f1ba6b4becdf" + name = "github.com/gofrs/uuid" + packages = ["."] + pruneopts = "UT" + revision = "370558f003bfe29580cd0f698d8640daccdcc45c" + version = "v3.1.1" + +[[projects]] + digest = "1:629282d904f7ce7d9977f82740061e5c6120be5f006e7a9aebca948958a784f9" + name = "github.com/gogo/protobuf" + packages = [ + "proto", + "sortkeys", + "types", + ] + pruneopts = "UT" + revision = "636bf0302bc95575d69441b25a2603156ffdddf1" + version = "v1.1.1" + +[[projects]] + digest = "1:fa5e9e1af8a8645086811ec5ab003806026babc57c8bb3a6f7e1ab34b80e2ff1" + name = "github.com/golang/protobuf" + packages = [ + "jsonpb", + "proto", + "protoc-gen-go/descriptor", + "ptypes", + "ptypes/any", + "ptypes/duration", + "ptypes/struct", + "ptypes/timestamp", + ] + pruneopts = "UT" + revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5" + version = "v1.2.0" + +[[projects]] + branch = "master" + digest = "1:4a0c6bb4805508a6287675fac876be2ac1182539ca8a32468d8128882e9d5009" + name = "github.com/golang/snappy" + packages = ["."] + pruneopts = "UT" + revision = "2e65f85255dbc3072edf28d6b5b8efc472979f5a" + +[[projects]] + digest = "1:ee73ed01fc93b8aa38a7f25543afed400df661992eeb7d3b250100b8b8f989b9" + name = "github.com/grpc-ecosystem/grpc-gateway" + packages = [ + "runtime", + "runtime/internal", + "utilities", + ] + pruneopts = "UT" + revision = "8558711daa6c2853489043207b563dceacbc19cf" + version = "v1.5.0" + +[[projects]] + digest = "1:77395dd3847dac9c45118c668f5dab85aedf0163dc3b38aea6578c5cf0d502f9" + name = "github.com/hashicorp/go-version" + packages = ["."] + pruneopts = "UT" + revision = "b5a281d3160aa11950a6182bd9a9dc2cb1e02d50" + version = "v1.0.0" + +[[projects]] + digest = "1:870d441fe217b8e689d7949fef6e43efbc787e50f200cb1e70dbca9204a1d6be" + name = "github.com/inconshreveable/mousetrap" + packages = ["."] + pruneopts = "UT" + revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" + version = "v1.0" + +[[projects]] + branch = "master" + digest = "1:ca41e6bafdc8d60c47dba38e9adfc75219a2892b09e5c2160161e7b6bf9562c2" + name = "github.com/joeshaw/multierror" + packages = ["."] + pruneopts = "UT" + revision = "69b34d4ec901851247ae7e77d33909caf9df99ed" + +[[projects]] + digest = "1:2fc904ae19b8e2c625fbaa9f1e23840fcf9e79d360df54986f500c19dfa74886" + name = "github.com/klauspost/compress" + packages = [ + "flate", + "zlib", + ] + pruneopts = "UT" + revision = "b939724e787a27c0005cabe3f78e7ed7987ac74f" + version = "v1.4.0" + +[[projects]] + digest = "1:4ea0668d490ca32a38366453a486e2e8c60fbdaf1f2607c96b4a093d8a5c8de7" + name = "github.com/klauspost/cpuid" + packages = ["."] + pruneopts = "UT" + revision = "ae7887de9fa5d2db4eaa8174a7eff2c1ac00f2da" + version = "v1.1" + +[[projects]] + branch = "master" + digest = "1:f44d34fda864bed6d6c71514cd40b2ee097e6e67f745d5d014113e1faa5af8b7" + name = "github.com/konsorten/go-windows-terminal-sequences" + packages = ["."] + pruneopts = "UT" + revision = "b729f2633dfe35f4d1d8a32385f6685610ce1cb5" + +[[projects]] + digest = "1:c658e84ad3916da105a761660dcaeb01e63416c8ec7bc62256a9b411a05fcd67" + name = "github.com/mattn/go-colorable" + packages = ["."] + pruneopts = "UT" + revision = "167de6bfdfba052fa6b2d3664c8f5272e23c9072" + version = "v0.0.9" + +[[projects]] + digest = "1:0981502f9816113c9c8c4ac301583841855c8cf4da8c72f696b3ebedf6d0e4e5" + name = "github.com/mattn/go-isatty" + packages = ["."] + pruneopts = "UT" + revision = "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c" + version = "v0.0.4" + +[[projects]] + digest = "1:61332bb44d05257bbf0356d8400a8b30fe0b9fdc3b72b8b55661da8f0a4f39ae" + name = "github.com/mitchellh/hashstructure" + packages = ["."] + pruneopts = "UT" + revision = "a38c50148365edc8df43c1580c48fb2b3a1e9cd7" + version = "v1.0.0" + +[[projects]] + digest = "1:4f0885b3f0dba96128a09a6f4b4231c42688fbd05f323224c6aa5adc9f4e87bf" + name = "github.com/pierrec/lz4" + packages = [ + ".", + "internal/xxh32", + ] + pruneopts = "UT" + revision = "bb6bfd13c6a262f1943c0446eb25b7f54c1fb9a2" + version = "v2.0.6" + +[[projects]] + digest = "1:40e195917a951a8bf867cd05de2a46aaf1806c50cf92eebf4c16f78cd196f747" + name = "github.com/pkg/errors" + packages = ["."] + pruneopts = "UT" + revision = "645ef00459ed84a119197bfb8d8205042c6df63d" + version = "v0.8.0" + +[[projects]] + branch = "master" + digest = "1:ef1dd9945e58ee9b635273d28c0ef3fa3742a7dedc038ebe207fd63e6ce000ef" + name = "github.com/prometheus/procfs" + packages = [ + ".", + "internal/util", + "nfs", + "xfs", + ] + pruneopts = "UT" + revision = "418d78d0b9a7b7de3a6bbc8a23def624cc977bb2" + +[[projects]] + digest = "1:f0a8dba015e66a640397d54a80cee86dd4ee5fc0b7479aa724065404415e2a1e" + name = "github.com/prometheus/prometheus" + packages = ["prompb"] + pruneopts = "UT" + revision = "c305ffaa092e94e9d2dbbddf8226c4813b1190a0" + version = "v2.4.2" + +[[projects]] + digest = "1:6df837e95859f31c70faa4f91f40b6a58adc807801ee31d201c24d683eff76b7" + name = "github.com/rcrowley/go-metrics" + packages = ["."] + pruneopts = "UT" + revision = "4b2ddcb0bf13dce7963e46b97826d2695ed2f614" + +[[projects]] + digest = "1:274f67cb6fed9588ea2521ecdac05a6d62a8c51c074c1fccc6a49a40ba80e925" + name = "github.com/satori/go.uuid" + packages = ["."] + pruneopts = "UT" + revision = "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3" + version = "v1.2.0" + +[[projects]] + digest = "1:645cabccbb4fa8aab25a956cbcbdf6a6845ca736b2c64e197ca7cbb9d210b939" + name = "github.com/spf13/cobra" + packages = ["."] + pruneopts = "UT" + revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" + version = "v0.0.3" + +[[projects]] + digest = "1:dab83a1bbc7ad3d7a6ba1a1cc1760f25ac38cdf7d96a5cdd55cd915a4f5ceaf9" + name = "github.com/spf13/pflag" + packages = ["."] + pruneopts = "UT" + revision = "9a97c102cda95a86cec2345a6f09f55a939babf5" + version = "v1.0.2" + +[[projects]] + digest = "1:a39319d2a8215f55cfd821bd7eb7f7c26006c174b044a86b8572aead5f68685c" + name = "github.com/theckman/go-flock" + packages = ["."] + pruneopts = "UT" + revision = "c938b7e9966326838b94073ebfba190badd68df3" + version = "v0.6.0" + +[[projects]] + branch = "master" + digest = "1:b0d9635b5cf229621aa6520d59e2c2b7a16d3ecb39ece7760571a1d6912ebb84" + name = "github.com/urso/go-bin" + packages = ["."] + pruneopts = "UT" + revision = "781c575c9f0eb3cb9dca94521bd7ad7d5aec7fd4" + +[[projects]] + digest = "1:3c1a69cdae3501bf75e76d0d86dc6f2b0a7421bc205c0cb7b96b19eed464a34d" + name = "go.uber.org/atomic" + packages = ["."] + pruneopts = "UT" + revision = "1ea20fb1cbb1cc08cbd0d913a96dead89aa18289" + version = "v1.3.2" + +[[projects]] + digest = "1:60bf2a5e347af463c42ed31a493d817f8a72f102543060ed992754e689805d1a" + name = "go.uber.org/multierr" + packages = ["."] + pruneopts = "UT" + revision = "3c4937480c32f4c13a875a1829af76c98ca3d40a" + version = "v1.1.0" + +[[projects]] + digest = "1:adccce69c151272d5053505aee552c6a1ac4e7bf6d18f0206ed7453187f6284d" + name = "go.uber.org/zap" + packages = [ + ".", + "buffer", + "internal/bufferpool", + "internal/color", + "internal/exit", + "zapcore", + "zaptest/observer", + ] + pruneopts = "UT" + revision = "ff33455a0e382e8a81d14dd7c922020b6b5e7982" + version = "v1.9.1" + +[[projects]] + branch = "master" + digest = "1:cb77e5934866333fa0784326a57e64c4da128001c94fbd1d29819d79bd3b1087" + name = "golang.org/x/crypto" + packages = [ + "pbkdf2", + "ssh/terminal", + ] + pruneopts = "UT" + revision = "5295e8364332db77d75fce11f1d19c053919a9c9" + +[[projects]] + branch = "master" + digest = "1:c438dd529c2b794e0dd5dc6cedab82961ef38a48f7985ad923fb0f8d34c9d5b6" + name = "golang.org/x/net" + packages = [ + "bpf", + "context", + "context/ctxhttp", + "http/httpguts", + "http2", + "http2/hpack", + "idna", + "internal/socks", + "internal/timeseries", + "proxy", + "trace", + ] + pruneopts = "UT" + revision = "4dfa2610cdf3b287375bbba5b8f2a14d3b01d8de" + +[[projects]] + branch = "master" + digest = "1:0125d852bce40cf31e49d4104ef16df2f768236545738c076f8cc9b8af975198" + name = "golang.org/x/sys" + packages = [ + "unix", + "windows", + "windows/registry", + "windows/svc", + "windows/svc/debug", + "windows/svc/eventlog", + ] + pruneopts = "UT" + revision = "dad3d9fb7b6e83d0f9ac8f54670f6334c3a287b4" + +[[projects]] + digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" + name = "golang.org/x/text" + packages = [ + "collate", + "collate/build", + "internal/colltab", + "internal/gen", + "internal/tag", + "internal/triegen", + "internal/ucd", + "language", + "secure/bidirule", + "transform", + "unicode/bidi", + "unicode/cldr", + "unicode/norm", + "unicode/rangetable", + ] + pruneopts = "UT" + revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" + version = "v0.3.0" + +[[projects]] + branch = "master" + digest = "1:ec1919b8b80839559effbe3eabcebf92238d12d3dd9182e51deb5da3ed12e5e9" + name = "google.golang.org/genproto" + packages = [ + "googleapis/api/annotations", + "googleapis/rpc/status", + ] + pruneopts = "UT" + revision = "0e822944c569bf5c9afd034adaa56208bd2906ac" + +[[projects]] + digest = "1:ab8e92d746fb5c4c18846b0879842ac8e53b3d352449423d0924a11f1020ae1b" + name = "google.golang.org/grpc" + packages = [ + ".", + "balancer", + "balancer/base", + "balancer/roundrobin", + "codes", + "connectivity", + "credentials", + "encoding", + "encoding/proto", + "grpclog", + "internal", + "internal/backoff", + "internal/channelz", + "internal/envconfig", + "internal/grpcrand", + "internal/transport", + "keepalive", + "metadata", + "naming", + "peer", + "resolver", + "resolver/dns", + "resolver/passthrough", + "stats", + "status", + "tap", + ] + pruneopts = "UT" + revision = "8dea3dc473e90c8179e519d91302d0597c0ca1d1" + version = "v1.15.0" + +[[projects]] + digest = "1:342378ac4dcb378a5448dd723f0784ae519383532f5e70ade24132c4c8693202" + name = "gopkg.in/yaml.v2" + packages = ["."] + pruneopts = "UT" + revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" + version = "v2.2.1" + +[[projects]] + branch = "master" + digest = "1:cefe687c5b27365f87dff523c85266408415c62a2915cc6148e9c26861274984" + name = "howett.net/plist" + packages = ["."] + pruneopts = "UT" + revision = "500bd5b9081b5957ac10389f86e069869f00c348" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + input-imports = [ + "github.com/elastic/beats/libbeat/asset", + "github.com/elastic/beats/libbeat/beat", + "github.com/elastic/beats/libbeat/cmd", + "github.com/elastic/beats/libbeat/common", + "github.com/elastic/beats/libbeat/logp", + "github.com/golang/protobuf/proto", + "github.com/golang/snappy", + "github.com/hashicorp/go-version", + "github.com/prometheus/prometheus/prompb", + ] + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml new file mode 100644 index 00000000..30863439 --- /dev/null +++ b/Gopkg.toml @@ -0,0 +1,59 @@ +# Gopkg.toml example +# +# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md +# for detailed Gopkg.toml documentation. +# +# required = ["github.com/user/thing/cmd/thing"] +# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] +# +# [[constraint]] +# name = "github.com/user/project" +# version = "1.0.0" +# +# [[constraint]] +# name = "github.com/user/project2" +# branch = "dev" +# source = "github.com/myfork/project2" +# +# [[override]] +# name = "github.com/x/y" +# version = "2.4.0" +# +# [prune] +# non-go = false +# go-tests = true +# unused-packages = true + + +[[constraint]] + name = "github.com/elastic/beats" + version = "v6.4.1" + +# libbeat uses and older version of this library (transitive dep) +[[override]] + name = "github.com/rcrowley/go-metrics" + revision = "4b2ddcb0bf13dce7963e46b97826d2695ed2f614" + +[[constraint]] + name = "github.com/golang/protobuf" + version = "1.2.0" + +[[constraint]] + branch = "master" + name = "github.com/golang/snappy" + +[[constraint]] + name = "github.com/hashicorp/go-version" + version = "1.0.0" + +[[constraint]] + name = "github.com/prometheus/prometheus" + version = "2.4.2" + +[prune] + go-tests = true + unused-packages = true + + [[prune.project]] + name = "github.com/elastic/beats" + unused-packages = false diff --git a/README.md b/README.md index 6366543d..7bcd8413 100644 --- a/README.md +++ b/README.md @@ -27,25 +27,26 @@ Example Prometheusbeat event: ``` { - "@timestamp": "2018-06-12T10:33:28.122Z", + "@timestamp": "2018-09-28T11:44:07.006Z", "@metadata": { "beat": "prometheusbeat", "type": "doc", - "version": "7.0.0-alpha1" + "version": "6.4.1" }, "labels": { - "job": "prometheus", - "__name__": "scrape_samples_post_metric_relabeling", - "instance": "localhost:9090" + "le": "10", + "name": "prometheus_tsdb_tombstone_cleanup_seconds_bucket", + "instance": "localhost:9090", + "job": "prometheus" + }, + "value": 0, + "host": { + "name": "example.com" }, - "value": 349, "beat": { + "version": "6.4.1", "name": "prometheusbeat", - "hostname": "example.com", - "version": "7.0.0-alpha1" - }, - "host": { - "name": "prometheusbeat" + "hostname": "example.com" } } ``` @@ -164,4 +165,4 @@ The beat frameworks provides tools to crosscompile and package your beat for dif make package ``` -This will fetch and create all images required for the build process. The hole process to finish can take several minutes. +This will fetch and create all images required for the build process. The whole process to finish can take several minutes. diff --git a/_meta/beat.yml b/_meta/beat.yml index 5a95ca51..fdd0bf40 100644 --- a/_meta/beat.yml +++ b/_meta/beat.yml @@ -5,8 +5,3 @@ prometheusbeat: listen: ":8080" context: "/prometheus" - # The storage request format had a breaking change starting with Prometheus 1.7. - # Set the version accordingly. - # 1: Prometheus < 1.7 - # 2: Prometheus >= 1.7 - version: 2 diff --git a/_meta/kibana.generated/6/index-pattern/prometheusbeat.json b/_meta/kibana.generated/6/index-pattern/prometheusbeat.json index 10742a49..3d6a54a2 100644 --- a/_meta/kibana.generated/6/index-pattern/prometheusbeat.json +++ b/_meta/kibana.generated/6/index-pattern/prometheusbeat.json @@ -12,5 +12,5 @@ "version": 1 } ], - "version": "7.0.0-alpha1" + "version": "6.4.0" } \ No newline at end of file diff --git a/include/fields.go b/include/fields.go index 03794010..248c29ec 100644 --- a/include/fields.go +++ b/include/fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. package include @@ -7,7 +24,7 @@ import ( ) func init() { - if err := asset.SetFields("prometheusbeat/fields.yml", Asset); err != nil { + if err := asset.SetFields("prometheusbeat", "fields.yml", Asset); err != nil { panic(err) } } diff --git a/main_test.go b/main_test.go index a88b616b..39833488 100644 --- a/main_test.go +++ b/main_test.go @@ -6,7 +6,7 @@ import ( "flag" "testing" - "github.com/boernd/mybeat/cmd" + "github.com/infonova/prometheusbeat/cmd" ) var systemTest *bool diff --git a/prometheusbeat.reference.yml b/prometheusbeat.reference.yml index 70e0cdba..7956e637 100644 --- a/prometheusbeat.reference.yml +++ b/prometheusbeat.reference.yml @@ -5,11 +5,6 @@ prometheusbeat: listen: ":8080" context: "/prometheus" - # The storage request format had a breaking change starting with Prometheus 1.7. - # Set the version accordingly. - # 1: Prometheus < 1.7 - # 2: Prometheus >= 1.7 - version: 2 #================================ General ====================================== @@ -242,6 +237,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 0 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" @@ -282,7 +280,18 @@ output.elasticsearch: # The default is 50. #bulk_max_size: 50 - # Configure http request timeout before failing an request to Elasticsearch. + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + + # Configure http request timeout before failing a request to Elasticsearch. #timeout: 90 # Use SSL settings for HTTPS. @@ -336,6 +345,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 3 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional maximum time to live for a connection to Logstash, after which the # connection will be re-established. A value of `0s` (the default) will # disable this feature. @@ -346,7 +358,7 @@ output.elasticsearch: # Optional load balance the events between the Logstash hosts. Default is false. #loadbalance: false - # Number of batches to be sent asynchronously to logstash while processing + # Number of batches to be sent asynchronously to Logstash while processing # new batches. #pipelining: 2 @@ -355,6 +367,17 @@ output.elasticsearch: # if no error is encountered. #slow_start: false + # The number of seconds to wait before trying to reconnect to Logstash + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Logstash after a network error. The default is 60s. + #backoff.max: 60s + # Optional index name. The default index name is set to prometheusbeat # in all lowercase. #index: 'prometheusbeat' @@ -401,6 +424,21 @@ output.elasticsearch: # never, once, and freely. Default is never. #ssl.renegotiation: never + # The number of times to retry publishing an event after a publishing failure. + # After the specified number of retries, the events are typically dropped. + # Some Beats, such as Filebeat and Winlogbeat, ignore the max_retries setting + # and retry until all events are published. Set max_retries to a value less + # than 0 to retry until all events are published. The default is 3. + #max_retries: 3 + + # The maximum number of events to bulk in a single Logstash request. The + # default is 2048. + #bulk_max_size: 2048 + + # The number of seconds to wait for responses from the Logstash server before + # timing out. The default is 30s. + #timeout: 30s + #------------------------------- Kafka output ---------------------------------- #output.kafka: # Boolean flag to enable or disable the output module. @@ -436,9 +474,16 @@ output.elasticsearch: #username: '' #password: '' - # Kafka version prometheusbeat is assumed to run against. Defaults to the oldest - # supported stable version (currently version 0.8.2.0) - #version: 0.8.2 + # Kafka version prometheusbeat is assumed to run against. Defaults to the "1.0.0". + #version: '1.0.0' + + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true # Metadata update configuration. Metadata do contain leader information # deciding which broker to use when publishing. @@ -486,6 +531,10 @@ output.elasticsearch: # default is gzip. #compression: gzip + # Set the compression level. Currently only gzip provides a compression level + # between 0 and 9. The default value is chosen by the compression algorithm. + #compression_level: 4 + # The maximum permitted size of JSON-encoded messages. Bigger messages will be # dropped. The default value is 1000000 (bytes). This value should be equal to # or less than the broker's message.max.bytes. @@ -542,6 +591,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # The list of Redis servers to connect to. If load balancing is enabled, the # events are distributed to the servers in the list. If one server becomes # unreachable, the events are distributed to the reachable servers only. @@ -589,6 +646,17 @@ output.elasticsearch: # until all events are published. The default is 3. #max_retries: 3 + # The number of seconds to wait before trying to reconnect to Redis + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Redis after a network error. The default is 60s. + #backoff.max: 60s + # The maximum number of events to bulk in a single Redis request or pipeline. # The default is 2048. #bulk_max_size: 2048 @@ -643,6 +711,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # Path to the directory where to save the generated files. The option is # mandatory. #path: "/tmp/prometheusbeat" @@ -670,8 +746,13 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true - # Pretty print json event - #pretty: false + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true #================================= Paths ====================================== @@ -769,6 +850,13 @@ output.elasticsearch: # Path to fields.yml file to generate the template #setup.template.fields: "${path.config}/fields.yml" +# A list of fields to be added to the template and Kibana index pattern. Also +# specify setup.template.overwrite: true to overwrite the existing template. +# This setting is experimental. +#setup.template.append_fields: +#- name: field_name +# type: field_type + # Enable json template loading. If this is enabled, the fields.yml is ignored. #setup.template.json.enabled: false @@ -955,6 +1043,17 @@ logging.files: # The default is 50. #bulk_max_size: 50 + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + # Configure http request timeout before failing an request to Elasticsearch. #timeout: 90 @@ -994,6 +1093,9 @@ logging.files: # never, once, and freely. Default is never. #ssl.renegotiation: never + #metrics.period: 10s + #state.period: 1m + #================================ HTTP Endpoint ====================================== # Each beat can expose internal metrics through a HTTP endpoint. For security # reasons the endpoint is disabled by default. This feature is currently experimental. diff --git a/prometheusbeat.yml b/prometheusbeat.yml index 25690fc1..826986ab 100644 --- a/prometheusbeat.yml +++ b/prometheusbeat.yml @@ -5,17 +5,12 @@ prometheusbeat: listen: ":8080" context: "/prometheus" - # The storage request format had a breaking change starting with Prometheus 1.7. - # Set the version accordingly. - # 1: Prometheus < 1.7 - # 2: Prometheus >= 1.7 - version: 2 #================================ General ===================================== # The name of the shipper that publishes the network data. It can be used to group # all the transactions sent by a single shipper in the web interface. -#name: +#name: # The tags of the shipper are included in their own field with each # transaction published. diff --git a/vendor/github.com/Microsoft/go-winio/.gitignore b/vendor/github.com/Microsoft/go-winio/.gitignore new file mode 100644 index 00000000..b883f1fd --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/.gitignore @@ -0,0 +1 @@ +*.exe diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/LICENSE b/vendor/github.com/Microsoft/go-winio/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/LICENSE rename to vendor/github.com/Microsoft/go-winio/LICENSE diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/README.md b/vendor/github.com/Microsoft/go-winio/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/README.md rename to vendor/github.com/Microsoft/go-winio/README.md diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE b/vendor/github.com/Microsoft/go-winio/archive/tar/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE rename to vendor/github.com/Microsoft/go-winio/archive/tar/LICENSE diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/backup.go b/vendor/github.com/Microsoft/go-winio/backup.go similarity index 94% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/backup.go rename to vendor/github.com/Microsoft/go-winio/backup.go index 27d6ace0..2be34af4 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/backup.go +++ b/vendor/github.com/Microsoft/go-winio/backup.go @@ -68,10 +68,20 @@ func NewBackupStreamReader(r io.Reader) *BackupStreamReader { return &BackupStreamReader{r, 0} } -// Next returns the next backup stream and prepares for calls to Write(). It skips the remainder of the current stream if +// Next returns the next backup stream and prepares for calls to Read(). It skips the remainder of the current stream if // it was not completely read. func (r *BackupStreamReader) Next() (*BackupHeader, error) { if r.bytesLeft > 0 { + if s, ok := r.r.(io.Seeker); ok { + // Make sure Seek on io.SeekCurrent sometimes succeeds + // before trying the actual seek. + if _, err := s.Seek(0, io.SeekCurrent); err == nil { + if _, err = s.Seek(r.bytesLeft, io.SeekCurrent); err != nil { + return nil, err + } + r.bytesLeft = 0 + } + } if _, err := io.Copy(ioutil.Discard, r); err != nil { return nil, err } @@ -220,7 +230,7 @@ type BackupFileWriter struct { ctx uintptr } -// NewBackupFileWrtier returns a new BackupFileWriter from a file handle. If includeSecurity is true, +// NewBackupFileWriter returns a new BackupFileWriter from a file handle. If includeSecurity is true, // Write() will attempt to restore the security descriptor from the stream. func NewBackupFileWriter(f *os.File, includeSecurity bool) *BackupFileWriter { w := &BackupFileWriter{f, includeSecurity, 0} diff --git a/vendor/github.com/Microsoft/go-winio/ea.go b/vendor/github.com/Microsoft/go-winio/ea.go new file mode 100644 index 00000000..4051c1b3 --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/ea.go @@ -0,0 +1,137 @@ +package winio + +import ( + "bytes" + "encoding/binary" + "errors" +) + +type fileFullEaInformation struct { + NextEntryOffset uint32 + Flags uint8 + NameLength uint8 + ValueLength uint16 +} + +var ( + fileFullEaInformationSize = binary.Size(&fileFullEaInformation{}) + + errInvalidEaBuffer = errors.New("invalid extended attribute buffer") + errEaNameTooLarge = errors.New("extended attribute name too large") + errEaValueTooLarge = errors.New("extended attribute value too large") +) + +// ExtendedAttribute represents a single Windows EA. +type ExtendedAttribute struct { + Name string + Value []byte + Flags uint8 +} + +func parseEa(b []byte) (ea ExtendedAttribute, nb []byte, err error) { + var info fileFullEaInformation + err = binary.Read(bytes.NewReader(b), binary.LittleEndian, &info) + if err != nil { + err = errInvalidEaBuffer + return + } + + nameOffset := fileFullEaInformationSize + nameLen := int(info.NameLength) + valueOffset := nameOffset + int(info.NameLength) + 1 + valueLen := int(info.ValueLength) + nextOffset := int(info.NextEntryOffset) + if valueLen+valueOffset > len(b) || nextOffset < 0 || nextOffset > len(b) { + err = errInvalidEaBuffer + return + } + + ea.Name = string(b[nameOffset : nameOffset+nameLen]) + ea.Value = b[valueOffset : valueOffset+valueLen] + ea.Flags = info.Flags + if info.NextEntryOffset != 0 { + nb = b[info.NextEntryOffset:] + } + return +} + +// DecodeExtendedAttributes decodes a list of EAs from a FILE_FULL_EA_INFORMATION +// buffer retrieved from BackupRead, ZwQueryEaFile, etc. +func DecodeExtendedAttributes(b []byte) (eas []ExtendedAttribute, err error) { + for len(b) != 0 { + ea, nb, err := parseEa(b) + if err != nil { + return nil, err + } + + eas = append(eas, ea) + b = nb + } + return +} + +func writeEa(buf *bytes.Buffer, ea *ExtendedAttribute, last bool) error { + if int(uint8(len(ea.Name))) != len(ea.Name) { + return errEaNameTooLarge + } + if int(uint16(len(ea.Value))) != len(ea.Value) { + return errEaValueTooLarge + } + entrySize := uint32(fileFullEaInformationSize + len(ea.Name) + 1 + len(ea.Value)) + withPadding := (entrySize + 3) &^ 3 + nextOffset := uint32(0) + if !last { + nextOffset = withPadding + } + info := fileFullEaInformation{ + NextEntryOffset: nextOffset, + Flags: ea.Flags, + NameLength: uint8(len(ea.Name)), + ValueLength: uint16(len(ea.Value)), + } + + err := binary.Write(buf, binary.LittleEndian, &info) + if err != nil { + return err + } + + _, err = buf.Write([]byte(ea.Name)) + if err != nil { + return err + } + + err = buf.WriteByte(0) + if err != nil { + return err + } + + _, err = buf.Write(ea.Value) + if err != nil { + return err + } + + _, err = buf.Write([]byte{0, 0, 0}[0 : withPadding-entrySize]) + if err != nil { + return err + } + + return nil +} + +// EncodeExtendedAttributes encodes a list of EAs into a FILE_FULL_EA_INFORMATION +// buffer for use with BackupWrite, ZwSetEaFile, etc. +func EncodeExtendedAttributes(eas []ExtendedAttribute) ([]byte, error) { + var buf bytes.Buffer + for i := range eas { + last := false + if i == len(eas)-1 { + last = true + } + + err := writeEa(&buf, &eas[i], last) + if err != nil { + return nil, err + } + } + return buf.Bytes(), nil +} diff --git a/vendor/github.com/Microsoft/go-winio/file.go b/vendor/github.com/Microsoft/go-winio/file.go new file mode 100644 index 00000000..4334ff1c --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/file.go @@ -0,0 +1,307 @@ +// +build windows + +package winio + +import ( + "errors" + "io" + "runtime" + "sync" + "sync/atomic" + "syscall" + "time" +) + +//sys cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) = CancelIoEx +//sys createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) = CreateIoCompletionPort +//sys getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) = GetQueuedCompletionStatus +//sys setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) = SetFileCompletionNotificationModes + +type atomicBool int32 + +func (b *atomicBool) isSet() bool { return atomic.LoadInt32((*int32)(b)) != 0 } +func (b *atomicBool) setFalse() { atomic.StoreInt32((*int32)(b), 0) } +func (b *atomicBool) setTrue() { atomic.StoreInt32((*int32)(b), 1) } +func (b *atomicBool) swap(new bool) bool { + var newInt int32 + if new { + newInt = 1 + } + return atomic.SwapInt32((*int32)(b), newInt) == 1 +} + +const ( + cFILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 + cFILE_SKIP_SET_EVENT_ON_HANDLE = 2 +) + +var ( + ErrFileClosed = errors.New("file has already been closed") + ErrTimeout = &timeoutError{} +) + +type timeoutError struct{} + +func (e *timeoutError) Error() string { return "i/o timeout" } +func (e *timeoutError) Timeout() bool { return true } +func (e *timeoutError) Temporary() bool { return true } + +type timeoutChan chan struct{} + +var ioInitOnce sync.Once +var ioCompletionPort syscall.Handle + +// ioResult contains the result of an asynchronous IO operation +type ioResult struct { + bytes uint32 + err error +} + +// ioOperation represents an outstanding asynchronous Win32 IO +type ioOperation struct { + o syscall.Overlapped + ch chan ioResult +} + +func initIo() { + h, err := createIoCompletionPort(syscall.InvalidHandle, 0, 0, 0xffffffff) + if err != nil { + panic(err) + } + ioCompletionPort = h + go ioCompletionProcessor(h) +} + +// win32File implements Reader, Writer, and Closer on a Win32 handle without blocking in a syscall. +// It takes ownership of this handle and will close it if it is garbage collected. +type win32File struct { + handle syscall.Handle + wg sync.WaitGroup + wgLock sync.RWMutex + closing atomicBool + readDeadline deadlineHandler + writeDeadline deadlineHandler +} + +type deadlineHandler struct { + setLock sync.Mutex + channel timeoutChan + channelLock sync.RWMutex + timer *time.Timer + timedout atomicBool +} + +// makeWin32File makes a new win32File from an existing file handle +func makeWin32File(h syscall.Handle) (*win32File, error) { + f := &win32File{handle: h} + ioInitOnce.Do(initIo) + _, err := createIoCompletionPort(h, ioCompletionPort, 0, 0xffffffff) + if err != nil { + return nil, err + } + err = setFileCompletionNotificationModes(h, cFILE_SKIP_COMPLETION_PORT_ON_SUCCESS|cFILE_SKIP_SET_EVENT_ON_HANDLE) + if err != nil { + return nil, err + } + f.readDeadline.channel = make(timeoutChan) + f.writeDeadline.channel = make(timeoutChan) + return f, nil +} + +func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error) { + return makeWin32File(h) +} + +// closeHandle closes the resources associated with a Win32 handle +func (f *win32File) closeHandle() { + f.wgLock.Lock() + // Atomically set that we are closing, releasing the resources only once. + if !f.closing.swap(true) { + f.wgLock.Unlock() + // cancel all IO and wait for it to complete + cancelIoEx(f.handle, nil) + f.wg.Wait() + // at this point, no new IO can start + syscall.Close(f.handle) + f.handle = 0 + } else { + f.wgLock.Unlock() + } +} + +// Close closes a win32File. +func (f *win32File) Close() error { + f.closeHandle() + return nil +} + +// prepareIo prepares for a new IO operation. +// The caller must call f.wg.Done() when the IO is finished, prior to Close() returning. +func (f *win32File) prepareIo() (*ioOperation, error) { + f.wgLock.RLock() + if f.closing.isSet() { + f.wgLock.RUnlock() + return nil, ErrFileClosed + } + f.wg.Add(1) + f.wgLock.RUnlock() + c := &ioOperation{} + c.ch = make(chan ioResult) + return c, nil +} + +// ioCompletionProcessor processes completed async IOs forever +func ioCompletionProcessor(h syscall.Handle) { + for { + var bytes uint32 + var key uintptr + var op *ioOperation + err := getQueuedCompletionStatus(h, &bytes, &key, &op, syscall.INFINITE) + if op == nil { + panic(err) + } + op.ch <- ioResult{bytes, err} + } +} + +// asyncIo processes the return value from ReadFile or WriteFile, blocking until +// the operation has actually completed. +func (f *win32File) asyncIo(c *ioOperation, d *deadlineHandler, bytes uint32, err error) (int, error) { + if err != syscall.ERROR_IO_PENDING { + return int(bytes), err + } + + if f.closing.isSet() { + cancelIoEx(f.handle, &c.o) + } + + var timeout timeoutChan + if d != nil { + d.channelLock.Lock() + timeout = d.channel + d.channelLock.Unlock() + } + + var r ioResult + select { + case r = <-c.ch: + err = r.err + if err == syscall.ERROR_OPERATION_ABORTED { + if f.closing.isSet() { + err = ErrFileClosed + } + } + case <-timeout: + cancelIoEx(f.handle, &c.o) + r = <-c.ch + err = r.err + if err == syscall.ERROR_OPERATION_ABORTED { + err = ErrTimeout + } + } + + // runtime.KeepAlive is needed, as c is passed via native + // code to ioCompletionProcessor, c must remain alive + // until the channel read is complete. + runtime.KeepAlive(c) + return int(r.bytes), err +} + +// Read reads from a file handle. +func (f *win32File) Read(b []byte) (int, error) { + c, err := f.prepareIo() + if err != nil { + return 0, err + } + defer f.wg.Done() + + if f.readDeadline.timedout.isSet() { + return 0, ErrTimeout + } + + var bytes uint32 + err = syscall.ReadFile(f.handle, b, &bytes, &c.o) + n, err := f.asyncIo(c, &f.readDeadline, bytes, err) + runtime.KeepAlive(b) + + // Handle EOF conditions. + if err == nil && n == 0 && len(b) != 0 { + return 0, io.EOF + } else if err == syscall.ERROR_BROKEN_PIPE { + return 0, io.EOF + } else { + return n, err + } +} + +// Write writes to a file handle. +func (f *win32File) Write(b []byte) (int, error) { + c, err := f.prepareIo() + if err != nil { + return 0, err + } + defer f.wg.Done() + + if f.writeDeadline.timedout.isSet() { + return 0, ErrTimeout + } + + var bytes uint32 + err = syscall.WriteFile(f.handle, b, &bytes, &c.o) + n, err := f.asyncIo(c, &f.writeDeadline, bytes, err) + runtime.KeepAlive(b) + return n, err +} + +func (f *win32File) SetReadDeadline(deadline time.Time) error { + return f.readDeadline.set(deadline) +} + +func (f *win32File) SetWriteDeadline(deadline time.Time) error { + return f.writeDeadline.set(deadline) +} + +func (f *win32File) Flush() error { + return syscall.FlushFileBuffers(f.handle) +} + +func (d *deadlineHandler) set(deadline time.Time) error { + d.setLock.Lock() + defer d.setLock.Unlock() + + if d.timer != nil { + if !d.timer.Stop() { + <-d.channel + } + d.timer = nil + } + d.timedout.setFalse() + + select { + case <-d.channel: + d.channelLock.Lock() + d.channel = make(chan struct{}) + d.channelLock.Unlock() + default: + } + + if deadline.IsZero() { + return nil + } + + timeoutIO := func() { + d.timedout.setTrue() + close(d.channel) + } + + now := time.Now() + duration := deadline.Sub(now) + if deadline.After(now) { + // Deadline is in the future, set a timer to wait + d.timer = time.AfterFunc(duration, timeoutIO) + } else { + // Deadline is in the past. Cancel all pending IO now. + timeoutIO() + } + return nil +} diff --git a/vendor/github.com/Microsoft/go-winio/fileinfo.go b/vendor/github.com/Microsoft/go-winio/fileinfo.go new file mode 100644 index 00000000..ada2fbab --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/fileinfo.go @@ -0,0 +1,61 @@ +// +build windows + +package winio + +import ( + "os" + "runtime" + "syscall" + "unsafe" +) + +//sys getFileInformationByHandleEx(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) = GetFileInformationByHandleEx +//sys setFileInformationByHandle(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) = SetFileInformationByHandle + +const ( + fileBasicInfo = 0 + fileIDInfo = 0x12 +) + +// FileBasicInfo contains file access time and file attributes information. +type FileBasicInfo struct { + CreationTime, LastAccessTime, LastWriteTime, ChangeTime syscall.Filetime + FileAttributes uint32 + pad uint32 // padding +} + +// GetFileBasicInfo retrieves times and attributes for a file. +func GetFileBasicInfo(f *os.File) (*FileBasicInfo, error) { + bi := &FileBasicInfo{} + if err := getFileInformationByHandleEx(syscall.Handle(f.Fd()), fileBasicInfo, (*byte)(unsafe.Pointer(bi)), uint32(unsafe.Sizeof(*bi))); err != nil { + return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} + } + runtime.KeepAlive(f) + return bi, nil +} + +// SetFileBasicInfo sets times and attributes for a file. +func SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error { + if err := setFileInformationByHandle(syscall.Handle(f.Fd()), fileBasicInfo, (*byte)(unsafe.Pointer(bi)), uint32(unsafe.Sizeof(*bi))); err != nil { + return &os.PathError{Op: "SetFileInformationByHandle", Path: f.Name(), Err: err} + } + runtime.KeepAlive(f) + return nil +} + +// FileIDInfo contains the volume serial number and file ID for a file. This pair should be +// unique on a system. +type FileIDInfo struct { + VolumeSerialNumber uint64 + FileID [16]byte +} + +// GetFileID retrieves the unique (volume, file ID) pair for a file. +func GetFileID(f *os.File) (*FileIDInfo, error) { + fileID := &FileIDInfo{} + if err := getFileInformationByHandleEx(syscall.Handle(f.Fd()), fileIDInfo, (*byte)(unsafe.Pointer(fileID)), uint32(unsafe.Sizeof(*fileID))); err != nil { + return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} + } + runtime.KeepAlive(f) + return fileID, nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/pipe.go b/vendor/github.com/Microsoft/go-winio/pipe.go similarity index 81% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/pipe.go rename to vendor/github.com/Microsoft/go-winio/pipe.go index da706cc8..d99eedb6 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/pipe.go +++ b/vendor/github.com/Microsoft/go-winio/pipe.go @@ -15,13 +15,13 @@ import ( //sys connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) = ConnectNamedPipe //sys createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateNamedPipeW //sys createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateFileW -//sys waitNamedPipe(name string, timeout uint32) (err error) = WaitNamedPipeW //sys getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) = GetNamedPipeInfo //sys getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW //sys localAlloc(uFlags uint32, length uint32) (ptr uintptr) = LocalAlloc const ( cERROR_PIPE_BUSY = syscall.Errno(231) + cERROR_NO_DATA = syscall.Errno(232) cERROR_PIPE_CONNECTED = syscall.Errno(535) cERROR_SEM_TIMEOUT = syscall.Errno(121) @@ -120,6 +120,11 @@ func (f *win32MessageBytePipe) Read(b []byte) (int, error) { // zero-byte message, ensure that all future Read() calls // also return EOF. f.readEOF = true + } else if err == syscall.ERROR_MORE_DATA { + // ERROR_MORE_DATA indicates that the pipe's read mode is message mode + // and the message still has more bytes. Treat this as a success, since + // this package presents all named pipes as byte streams. + err = nil } return n, err } @@ -133,12 +138,14 @@ func (s pipeAddress) String() string { } // DialPipe connects to a named pipe by path, timing out if the connection -// takes longer than the specified duration. If timeout is nil, then the timeout -// is the default timeout established by the pipe server. +// takes longer than the specified duration. If timeout is nil, then we use +// a default timeout of 5 seconds. (We do not use WaitNamedPipe.) func DialPipe(path string, timeout *time.Duration) (net.Conn, error) { var absTimeout time.Time if timeout != nil { absTimeout = time.Now().Add(*timeout) + } else { + absTimeout = time.Now().Add(time.Second * 2) } var err error var h syscall.Handle @@ -147,22 +154,13 @@ func DialPipe(path string, timeout *time.Duration) (net.Conn, error) { if err != cERROR_PIPE_BUSY { break } - now := time.Now() - var ms uint32 - if absTimeout.IsZero() { - ms = cNMPWAIT_USE_DEFAULT_WAIT - } else if now.After(absTimeout) { - ms = cNMPWAIT_NOWAIT - } else { - ms = uint32(absTimeout.Sub(now).Nanoseconds() / 1000 / 1000) - } - err = waitNamedPipe(path, ms) - if err != nil { - if err == cERROR_SEM_TIMEOUT { - return nil, ErrTimeout - } - break + if time.Now().After(absTimeout) { + return nil, ErrTimeout } + + // Wait 10 msec and try again. This is a rather simplistic + // view, as we always try each 10 milliseconds. + time.Sleep(time.Millisecond * 10) } if err != nil { return nil, &os.PathError{Op: "open", Path: path, Err: err} @@ -174,16 +172,6 @@ func DialPipe(path string, timeout *time.Duration) (net.Conn, error) { return nil, err } - var state uint32 - err = getNamedPipeHandleState(h, &state, nil, nil, nil, nil, 0) - if err != nil { - return nil, err - } - - if state&cPIPE_READMODE_MESSAGE != 0 { - return nil, &os.PathError{Op: "open", Path: path, Err: errors.New("message readmode pipes not supported")} - } - f, err := makeWin32File(h) if err != nil { syscall.Close(h) @@ -254,6 +242,36 @@ func (l *win32PipeListener) makeServerPipe() (*win32File, error) { return f, nil } +func (l *win32PipeListener) makeConnectedServerPipe() (*win32File, error) { + p, err := l.makeServerPipe() + if err != nil { + return nil, err + } + + // Wait for the client to connect. + ch := make(chan error) + go func(p *win32File) { + ch <- connectPipe(p) + }(p) + + select { + case err = <-ch: + if err != nil { + p.Close() + p = nil + } + case <-l.closeCh: + // Abort the connect request by closing the handle. + p.Close() + p = nil + err = <-ch + if err == nil || err == ErrFileClosed { + err = ErrPipeListenerClosed + } + } + return p, err +} + func (l *win32PipeListener) listenerRoutine() { closed := false for !closed { @@ -261,31 +279,20 @@ func (l *win32PipeListener) listenerRoutine() { case <-l.closeCh: closed = true case responseCh := <-l.acceptCh: - p, err := l.makeServerPipe() - if err == nil { - // Wait for the client to connect. - ch := make(chan error) - go func() { - ch <- connectPipe(p) - }() - select { - case err = <-ch: - if err != nil { - p.Close() - p = nil - } - case <-l.closeCh: - // Abort the connect request by closing the handle. - p.Close() - p = nil - err = <-ch - if err == nil || err == ErrFileClosed { - err = ErrPipeListenerClosed - } - closed = true + var ( + p *win32File + err error + ) + for { + p, err = l.makeConnectedServerPipe() + // If the connection was immediately closed by the client, try + // again. + if err != cERROR_NO_DATA { + break } } responseCh <- acceptResponse{p, err} + closed = err == ErrPipeListenerClosed } } syscall.Close(l.firstHandle) @@ -334,13 +341,23 @@ func ListenPipe(path string, c *PipeConfig) (net.Listener, error) { if err != nil { return nil, err } - // Immediately open and then close a client handle so that the named pipe is - // created but not currently accepting connections. + // Create a client handle and connect it. This results in the pipe + // instance always existing, so that clients see ERROR_PIPE_BUSY + // rather than ERROR_FILE_NOT_FOUND. This ties the first instance + // up so that no other instances can be used. This would have been + // cleaner if the Win32 API matched CreateFile with ConnectNamedPipe + // instead of CreateNamedPipe. (Apparently created named pipes are + // considered to be in listening state regardless of whether any + // active calls to ConnectNamedPipe are outstanding.) h2, err := createFile(path, 0, 0, nil, syscall.OPEN_EXISTING, cSECURITY_SQOS_PRESENT|cSECURITY_ANONYMOUS, 0) if err != nil { syscall.Close(h) return nil, err } + // Close the client handle. The server side of the instance will + // still be busy, leading to ERROR_PIPE_BUSY instead of + // ERROR_NOT_FOUND, as long as we don't close the server handle, + // or disconnect the client with DisconnectNamedPipe. syscall.Close(h2) l := &win32PipeListener{ firstHandle: h, diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/privilege.go b/vendor/github.com/Microsoft/go-winio/privilege.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/privilege.go rename to vendor/github.com/Microsoft/go-winio/privilege.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/reparse.go b/vendor/github.com/Microsoft/go-winio/reparse.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/reparse.go rename to vendor/github.com/Microsoft/go-winio/reparse.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/sd.go b/vendor/github.com/Microsoft/go-winio/sd.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/sd.go rename to vendor/github.com/Microsoft/go-winio/sd.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/syscall.go b/vendor/github.com/Microsoft/go-winio/syscall.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Microsoft/go-winio/syscall.go rename to vendor/github.com/Microsoft/go-winio/syscall.go diff --git a/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go b/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go new file mode 100644 index 00000000..3f527639 --- /dev/null +++ b/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go @@ -0,0 +1,520 @@ +// MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT + +package winio + +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) +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return nil + 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 ( + modkernel32 = windows.NewLazySystemDLL("kernel32.dll") + modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") + + procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") + procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") + procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") + procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") + procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") + procCreateFileW = modkernel32.NewProc("CreateFileW") + procWaitNamedPipeW = modkernel32.NewProc("WaitNamedPipeW") + procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") + procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") + procLocalAlloc = modkernel32.NewProc("LocalAlloc") + procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") + procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") + procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") + procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") + procLocalFree = modkernel32.NewProc("LocalFree") + procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") + procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") + procSetFileInformationByHandle = modkernel32.NewProc("SetFileInformationByHandle") + procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") + procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") + procRevertToSelf = modadvapi32.NewProc("RevertToSelf") + procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") + procGetCurrentThread = modkernel32.NewProc("GetCurrentThread") + procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") + procLookupPrivilegeNameW = modadvapi32.NewProc("LookupPrivilegeNameW") + procLookupPrivilegeDisplayNameW = modadvapi32.NewProc("LookupPrivilegeDisplayNameW") + procBackupRead = modkernel32.NewProc("BackupRead") + procBackupWrite = modkernel32.NewProc("BackupWrite") +) + +func cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(file), uintptr(unsafe.Pointer(o)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(file), uintptr(port), uintptr(key), uintptr(threadCount), 0, 0) + newport = syscall.Handle(r0) + if newport == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(port), uintptr(unsafe.Pointer(bytes)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(o)), uintptr(timeout), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(h), uintptr(flags), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(o)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(name) + if err != nil { + return + } + return _createNamedPipe(_p0, flags, pipeMode, maxInstances, outSize, inSize, defaultTimeout, sa) +} + +func _createNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.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 = syscall.Handle(r0) + if handle == syscall.InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(name) + if err != nil { + return + } + return _createFile(_p0, access, mode, sa, createmode, attrs, templatefile) +} + +func _createFile(name *uint16, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.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 = syscall.Handle(r0) + if handle == syscall.InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func waitNamedPipe(name string, timeout uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(name) + if err != nil { + return + } + return _waitNamedPipe(_p0, timeout) +} + +func _waitNamedPipe(name *uint16, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall(procWaitNamedPipeW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(timeout), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func getNamedPipeInfo(pipe syscall.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 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func getNamedPipeHandleState(pipe syscall.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 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func localAlloc(uFlags uint32, length uint32) (ptr uintptr) { + r0, _, _ := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(uFlags), uintptr(length), 0) + ptr = uintptr(r0) + return +} + +func lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(accountName) + if err != nil { + return + } + return _lookupAccountName(systemName, _p0, sid, sidSize, refDomain, refDomainSize, sidNameUse) +} + +func _lookupAccountName(systemName *uint16, accountName *uint16, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *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(sidSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func convertSidToStringSid(sid *byte, str **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(str)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd *uintptr, 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 *uintptr, 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 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func convertSecurityDescriptorToStringSecurityDescriptor(sd *byte, revision uint32, secInfo uint32, sddl **uint16, sddlSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(secInfo), uintptr(unsafe.Pointer(sddl)), uintptr(unsafe.Pointer(sddlSize)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func localFree(mem uintptr) { + syscall.Syscall(procLocalFree.Addr(), 1, uintptr(mem), 0, 0) + return +} + +func getSecurityDescriptorLength(sd uintptr) (len uint32) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(sd), 0, 0) + len = uint32(r0) + return +} + +func getFileInformationByHandleEx(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(h), uintptr(class), uintptr(unsafe.Pointer(buffer)), uintptr(size), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func setFileInformationByHandle(h syscall.Handle, class uint32, buffer *byte, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(h), uintptr(class), uintptr(unsafe.Pointer(buffer)), uintptr(size), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) { + var _p0 uint32 + if releaseAll { + _p0 = 1 + } else { + _p0 = 0 + } + r0, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(input)), uintptr(outputSize), uintptr(unsafe.Pointer(output)), uintptr(unsafe.Pointer(requiredSize))) + success = r0 != 0 + if true { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func impersonateSelf(level uint32) (err error) { + r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(level), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func revertToSelf() (err error) { + r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func openThreadToken(thread syscall.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) { + var _p0 uint32 + if openAsSelf { + _p0 = 1 + } else { + _p0 = 0 + } + r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(accessMask), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func getCurrentThread() (h syscall.Handle) { + r0, _, _ := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0) + h = syscall.Handle(r0) + return +} + +func lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(systemName) + if err != nil { + return + } + var _p1 *uint16 + _p1, err = syscall.UTF16PtrFromString(name) + if err != nil { + return + } + return _lookupPrivilegeValue(_p0, _p1, luid) +} + +func _lookupPrivilegeValue(systemName *uint16, name *uint16, luid *uint64) (err error) { + r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(systemName) + if err != nil { + return + } + return _lookupPrivilegeName(_p0, luid, buffer, size) +} + +func _lookupPrivilegeName(systemName *uint16, luid *uint64, buffer *uint16, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procLookupPrivilegeNameW.Addr(), 4, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(luid)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(systemName) + if err != nil { + return + } + return _lookupPrivilegeDisplayName(_p0, name, buffer, size, languageId) +} + +func _lookupPrivilegeDisplayName(systemName *uint16, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procLookupPrivilegeDisplayNameW.Addr(), 5, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(languageId)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func backupRead(h syscall.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 uint32 + if abort { + _p1 = 1 + } else { + _p1 = 0 + } + var _p2 uint32 + if processSecurity { + _p2 = 1 + } else { + _p2 = 0 + } + r1, _, e1 := syscall.Syscall9(procBackupRead.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesRead)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func backupWrite(h syscall.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 uint32 + if abort { + _p1 = 1 + } else { + _p1 = 0 + } + var _p2 uint32 + if processSecurity { + _p2 = 1 + } else { + _p2 = 0 + } + r1, _, e1 := syscall.Syscall9(procBackupWrite.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesWritten)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} diff --git a/vendor/github.com/Shopify/sarama/.gitignore b/vendor/github.com/Shopify/sarama/.gitignore new file mode 100644 index 00000000..6e362e4f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/.gitignore @@ -0,0 +1,27 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so +*.test + +# Folders +_obj +_test +.vagrant + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe + +coverage.txt +profile.out diff --git a/vendor/github.com/Shopify/sarama/.travis.yml b/vendor/github.com/Shopify/sarama/.travis.yml new file mode 100644 index 00000000..fe694e57 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/.travis.yml @@ -0,0 +1,36 @@ +language: go +go: +- 1.9.7 +- 1.10.4 +- 1.11 + +env: + global: + - KAFKA_PEERS=localhost:9091,localhost:9092,localhost:9093,localhost:9094,localhost:9095 + - TOXIPROXY_ADDR=http://localhost:8474 + - KAFKA_INSTALL_ROOT=/home/travis/kafka + - KAFKA_HOSTNAME=localhost + - DEBUG=true + matrix: + - KAFKA_VERSION=1.0.0 + - KAFKA_VERSION=1.1.0 + - KAFKA_VERSION=2.0.0 + +before_install: +- export REPOSITORY_ROOT=${TRAVIS_BUILD_DIR} +- vagrant/install_cluster.sh +- vagrant/boot_cluster.sh +- vagrant/create_topics.sh + +install: make install_dependencies + +script: +- make test +- make vet +- make errcheck +- if [ "$TRAVIS_GO_VERSION" = "1.11" ]; then make fmt; fi + +after_success: +- bash <(curl -s https://codecov.io/bash) + +after_script: vagrant/halt_cluster.sh diff --git a/vendor/github.com/Shopify/sarama/CHANGELOG.md b/vendor/github.com/Shopify/sarama/CHANGELOG.md new file mode 100644 index 00000000..47fb15b1 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/CHANGELOG.md @@ -0,0 +1,593 @@ +# Changelog + +#### Version 1.19.0 (2018-09-27) + +New Features: + - Implement a higher-level consumer group + ([#1099](https://github.com/Shopify/sarama/pull/1099)). + +Improvements: + - Add support for Go 1.11 + ([#1176](https://github.com/Shopify/sarama/pull/1176)). + +Bug Fixes: + - Fix encoding of `MetadataResponse` with version 2 and higher + ([#1174](https://github.com/Shopify/sarama/pull/1174)). + - Fix race condition in mock async producer + ([#1174](https://github.com/Shopify/sarama/pull/1174)). + +#### Version 1.18.0 (2018-09-07) + +New Features: + - Make `Partitioner.RequiresConsistency` vary per-message + ([#1112](https://github.com/Shopify/sarama/pull/1112)). + - Add customizable partitioner + ([#1118](https://github.com/Shopify/sarama/pull/1118)). + - Add `ClusterAdmin` support for `CreateTopic`, `DeleteTopic`, `CreatePartitions`, + `DeleteRecords`, `DescribeConfig`, `AlterConfig`, `CreateACL`, `ListAcls`, `DeleteACL` + ([#1055](https://github.com/Shopify/sarama/pull/1055)). + +Improvements: + - Add support for Kafka 2.0.0 + ([#1149](https://github.com/Shopify/sarama/pull/1149)). + - Allow setting `LocalAddr` when dialing an address to support multi-homed hosts + ([#1123](https://github.com/Shopify/sarama/pull/1123)). + - Simpler offset management + ([#1127](https://github.com/Shopify/sarama/pull/1127)). + +Bug Fixes: + - Fix mutation of `ProducerMessage.MetaData` when producing to Kafka + ([#1110](https://github.com/Shopify/sarama/pull/1110)). + - Fix consumer block when response did not contain all the + expected topic/partition blocks + ([#1086](https://github.com/Shopify/sarama/pull/1086)). + - Fix consumer block when response contains only constrol messages + ([#1115](https://github.com/Shopify/sarama/pull/1115)). + - Add timeout config for ClusterAdmin requests + ([#1142](https://github.com/Shopify/sarama/pull/1142)). + - Add version check when producing message with headers + ([#1117](https://github.com/Shopify/sarama/pull/1117)). + - Fix `MetadataRequest` for empty list of topics + ([#1132](https://github.com/Shopify/sarama/pull/1132)). + - Fix producer topic metadata on-demand fetch when topic error happens in metadata response + ([#1125](https://github.com/Shopify/sarama/pull/1125)). + +#### Version 1.17.0 (2018-05-30) + +New Features: + - Add support for gzip compression levels + ([#1044](https://github.com/Shopify/sarama/pull/1044)). + - Add support for Metadata request/response pairs versions v1 to v5 + ([#1047](https://github.com/Shopify/sarama/pull/1047), + [#1069](https://github.com/Shopify/sarama/pull/1069)). + - Add versioning to JoinGroup request/response pairs + ([#1098](https://github.com/Shopify/sarama/pull/1098)) + - Add support for CreatePartitions, DeleteGroups, DeleteRecords request/response pairs + ([#1065](https://github.com/Shopify/sarama/pull/1065), + [#1096](https://github.com/Shopify/sarama/pull/1096), + [#1027](https://github.com/Shopify/sarama/pull/1027)). + - Add `Controller()` method to Client interface + ([#1063](https://github.com/Shopify/sarama/pull/1063)). + +Improvements: + - ConsumerMetadataReq/Resp has been migrated to FindCoordinatorReq/Resp + ([#1010](https://github.com/Shopify/sarama/pull/1010)). + - Expose missing protocol parts: `msgSet` and `recordBatch` + ([#1049](https://github.com/Shopify/sarama/pull/1049)). + - Add support for v1 DeleteTopics Request + ([#1052](https://github.com/Shopify/sarama/pull/1052)). + - Add support for Go 1.10 + ([#1064](https://github.com/Shopify/sarama/pull/1064)). + - Claim support for Kafka 1.1.0 + ([#1073](https://github.com/Shopify/sarama/pull/1073)). + +Bug Fixes: + - Fix FindCoordinatorResponse.encode to allow nil Coordinator + ([#1050](https://github.com/Shopify/sarama/pull/1050), + [#1051](https://github.com/Shopify/sarama/pull/1051)). + - Clear all metadata when we have the latest topic info + ([#1033](https://github.com/Shopify/sarama/pull/1033)). + - Make `PartitionConsumer.Close` idempotent + ([#1092](https://github.com/Shopify/sarama/pull/1092)). + +#### Version 1.16.0 (2018-02-12) + +New Features: + - Add support for the Create/Delete Topics request/response pairs + ([#1007](https://github.com/Shopify/sarama/pull/1007), + [#1008](https://github.com/Shopify/sarama/pull/1008)). + - Add support for the Describe/Create/Delete ACL request/response pairs + ([#1009](https://github.com/Shopify/sarama/pull/1009)). + - Add support for the five transaction-related request/response pairs + ([#1016](https://github.com/Shopify/sarama/pull/1016)). + +Improvements: + - Permit setting version on mock producer responses + ([#999](https://github.com/Shopify/sarama/pull/999)). + - Add `NewMockBrokerListener` helper for testing TLS connections + ([#1019](https://github.com/Shopify/sarama/pull/1019)). + - Changed the default value for `Consumer.Fetch.Default` from 32KiB to 1MiB + which results in much higher throughput in most cases + ([#1024](https://github.com/Shopify/sarama/pull/1024)). + - Reuse the `time.Ticker` across fetch requests in the PartitionConsumer to + reduce CPU and memory usage when processing many partitions + ([#1028](https://github.com/Shopify/sarama/pull/1028)). + - Assign relative offsets to messages in the producer to save the brokers a + recompression pass + ([#1002](https://github.com/Shopify/sarama/pull/1002), + [#1015](https://github.com/Shopify/sarama/pull/1015)). + +Bug Fixes: + - Fix producing uncompressed batches with the new protocol format + ([#1032](https://github.com/Shopify/sarama/issues/1032)). + - Fix consuming compacted topics with the new protocol format + ([#1005](https://github.com/Shopify/sarama/issues/1005)). + - Fix consuming topics with a mix of protocol formats + ([#1021](https://github.com/Shopify/sarama/issues/1021)). + - Fix consuming when the broker includes multiple batches in a single response + ([#1022](https://github.com/Shopify/sarama/issues/1022)). + - Fix detection of `PartialTrailingMessage` when the partial message was + truncated before the magic value indicating its version + ([#1030](https://github.com/Shopify/sarama/pull/1030)). + - Fix expectation-checking in the mock of `SyncProducer.SendMessages` + ([#1035](https://github.com/Shopify/sarama/pull/1035)). + +#### Version 1.15.0 (2017-12-08) + +New Features: + - Claim official support for Kafka 1.0, though it did already work + ([#984](https://github.com/Shopify/sarama/pull/984)). + - Helper methods for Kafka version numbers to/from strings + ([#989](https://github.com/Shopify/sarama/pull/989)). + - Implement CreatePartitions request/response + ([#985](https://github.com/Shopify/sarama/pull/985)). + +Improvements: + - Add error codes 45-60 + ([#986](https://github.com/Shopify/sarama/issues/986)). + +Bug Fixes: + - Fix slow consuming for certain Kafka 0.11/1.0 configurations + ([#982](https://github.com/Shopify/sarama/pull/982)). + - Correctly determine when a FetchResponse contains the new message format + ([#990](https://github.com/Shopify/sarama/pull/990)). + - Fix producing with multiple headers + ([#996](https://github.com/Shopify/sarama/pull/996)). + - Fix handling of truncated record batches + ([#998](https://github.com/Shopify/sarama/pull/998)). + - Fix leaking metrics when closing brokers + ([#991](https://github.com/Shopify/sarama/pull/991)). + +#### Version 1.14.0 (2017-11-13) + +New Features: + - Add support for the new Kafka 0.11 record-batch format, including the wire + protocol and the necessary behavioural changes in the producer and consumer. + Transactions and idempotency are not yet supported, but producing and + consuming should work with all the existing bells and whistles (batching, + compression, etc) as well as the new custom headers. Thanks to Vlad Hanciuta + of Arista Networks for this work. Part of + ([#901](https://github.com/Shopify/sarama/issues/901)). + +Bug Fixes: + - Fix encoding of ProduceResponse versions in test + ([#970](https://github.com/Shopify/sarama/pull/970)). + - Return partial replicas list when we have it + ([#975](https://github.com/Shopify/sarama/pull/975)). + +#### Version 1.13.0 (2017-10-04) + +New Features: + - Support for FetchRequest version 3 + ([#905](https://github.com/Shopify/sarama/pull/905)). + - Permit setting version on mock FetchResponses + ([#939](https://github.com/Shopify/sarama/pull/939)). + - Add a configuration option to support storing only minimal metadata for + extremely large clusters + ([#937](https://github.com/Shopify/sarama/pull/937)). + - Add `PartitionOffsetManager.ResetOffset` for backtracking tracked offsets + ([#932](https://github.com/Shopify/sarama/pull/932)). + +Improvements: + - Provide the block-level timestamp when consuming compressed messages + ([#885](https://github.com/Shopify/sarama/issues/885)). + - `Client.Replicas` and `Client.InSyncReplicas` now respect the order returned + by the broker, which can be meaningful + ([#930](https://github.com/Shopify/sarama/pull/930)). + - Use a `Ticker` to reduce consumer timer overhead at the cost of higher + variance in the actual timeout + ([#933](https://github.com/Shopify/sarama/pull/933)). + +Bug Fixes: + - Gracefully handle messages with negative timestamps + ([#907](https://github.com/Shopify/sarama/pull/907)). + - Raise a proper error when encountering an unknown message version + ([#940](https://github.com/Shopify/sarama/pull/940)). + +#### Version 1.12.0 (2017-05-08) + +New Features: + - Added support for the `ApiVersions` request and response pair, and Kafka + version 0.10.2 ([#867](https://github.com/Shopify/sarama/pull/867)). Note + that you still need to specify the Kafka version in the Sarama configuration + for the time being. + - Added a `Brokers` method to the Client which returns the complete set of + active brokers ([#813](https://github.com/Shopify/sarama/pull/813)). + - Added an `InSyncReplicas` method to the Client which returns the set of all + in-sync broker IDs for the given partition, now that the Kafka versions for + which this was misleading are no longer in our supported set + ([#872](https://github.com/Shopify/sarama/pull/872)). + - Added a `NewCustomHashPartitioner` method which allows constructing a hash + partitioner with a custom hash method in case the default (FNV-1a) is not + suitable + ([#837](https://github.com/Shopify/sarama/pull/837), + [#841](https://github.com/Shopify/sarama/pull/841)). + +Improvements: + - Recognize more Kafka error codes + ([#859](https://github.com/Shopify/sarama/pull/859)). + +Bug Fixes: + - Fix an issue where decoding a malformed FetchRequest would not return the + correct error ([#818](https://github.com/Shopify/sarama/pull/818)). + - Respect ordering of group protocols in JoinGroupRequests. This fix is + transparent if you're using the `AddGroupProtocol` or + `AddGroupProtocolMetadata` helpers; otherwise you will need to switch from + the `GroupProtocols` field (now deprecated) to use `OrderedGroupProtocols` + ([#812](https://github.com/Shopify/sarama/issues/812)). + - Fix an alignment-related issue with atomics on 32-bit architectures + ([#859](https://github.com/Shopify/sarama/pull/859)). + +#### Version 1.11.0 (2016-12-20) + +_Important:_ As of Sarama 1.11 it is necessary to set the config value of +`Producer.Return.Successes` to true in order to use the SyncProducer. Previous +versions would silently override this value when instantiating a SyncProducer +which led to unexpected values and data races. + +New Features: + - Metrics! Thanks to Sébastien Launay for all his work on this feature + ([#701](https://github.com/Shopify/sarama/pull/701), + [#746](https://github.com/Shopify/sarama/pull/746), + [#766](https://github.com/Shopify/sarama/pull/766)). + - Add support for LZ4 compression + ([#786](https://github.com/Shopify/sarama/pull/786)). + - Add support for ListOffsetRequest v1 and Kafka 0.10.1 + ([#775](https://github.com/Shopify/sarama/pull/775)). + - Added a `HighWaterMarks` method to the Consumer which aggregates the + `HighWaterMarkOffset` values of its child topic/partitions + ([#769](https://github.com/Shopify/sarama/pull/769)). + +Bug Fixes: + - Fixed producing when using timestamps, compression and Kafka 0.10 + ([#759](https://github.com/Shopify/sarama/pull/759)). + - Added missing decoder methods to DescribeGroups response + ([#756](https://github.com/Shopify/sarama/pull/756)). + - Fix producer shutdown when `Return.Errors` is disabled + ([#787](https://github.com/Shopify/sarama/pull/787)). + - Don't mutate configuration in SyncProducer + ([#790](https://github.com/Shopify/sarama/pull/790)). + - Fix crash on SASL initialization failure + ([#795](https://github.com/Shopify/sarama/pull/795)). + +#### Version 1.10.1 (2016-08-30) + +Bug Fixes: + - Fix the documentation for `HashPartitioner` which was incorrect + ([#717](https://github.com/Shopify/sarama/pull/717)). + - Permit client creation even when it is limited by ACLs + ([#722](https://github.com/Shopify/sarama/pull/722)). + - Several fixes to the consumer timer optimization code, regressions introduced + in v1.10.0. Go's timers are finicky + ([#730](https://github.com/Shopify/sarama/pull/730), + [#733](https://github.com/Shopify/sarama/pull/733), + [#734](https://github.com/Shopify/sarama/pull/734)). + - Handle consuming compressed relative offsets with Kafka 0.10 + ([#735](https://github.com/Shopify/sarama/pull/735)). + +#### Version 1.10.0 (2016-08-02) + +_Important:_ As of Sarama 1.10 it is necessary to tell Sarama the version of +Kafka you are running against (via the `config.Version` value) in order to use +features that may not be compatible with old Kafka versions. If you don't +specify this value it will default to 0.8.2 (the minimum supported), and trying +to use more recent features (like the offset manager) will fail with an error. + +_Also:_ The offset-manager's behaviour has been changed to match the upstream +java consumer (see [#705](https://github.com/Shopify/sarama/pull/705) and +[#713](https://github.com/Shopify/sarama/pull/713)). If you use the +offset-manager, please ensure that you are committing one *greater* than the +last consumed message offset or else you may end up consuming duplicate +messages. + +New Features: + - Support for Kafka 0.10 + ([#672](https://github.com/Shopify/sarama/pull/672), + [#678](https://github.com/Shopify/sarama/pull/678), + [#681](https://github.com/Shopify/sarama/pull/681), and others). + - Support for configuring the target Kafka version + ([#676](https://github.com/Shopify/sarama/pull/676)). + - Batch producing support in the SyncProducer + ([#677](https://github.com/Shopify/sarama/pull/677)). + - Extend producer mock to allow setting expectations on message contents + ([#667](https://github.com/Shopify/sarama/pull/667)). + +Improvements: + - Support `nil` compressed messages for deleting in compacted topics + ([#634](https://github.com/Shopify/sarama/pull/634)). + - Pre-allocate decoding errors, greatly reducing heap usage and GC time against + misbehaving brokers ([#690](https://github.com/Shopify/sarama/pull/690)). + - Re-use consumer expiry timers, removing one allocation per consumed message + ([#707](https://github.com/Shopify/sarama/pull/707)). + +Bug Fixes: + - Actually default the client ID to "sarama" like we say we do + ([#664](https://github.com/Shopify/sarama/pull/664)). + - Fix a rare issue where `Client.Leader` could return the wrong error + ([#685](https://github.com/Shopify/sarama/pull/685)). + - Fix a possible tight loop in the consumer + ([#693](https://github.com/Shopify/sarama/pull/693)). + - Match upstream's offset-tracking behaviour + ([#705](https://github.com/Shopify/sarama/pull/705)). + - Report UnknownTopicOrPartition errors from the offset manager + ([#706](https://github.com/Shopify/sarama/pull/706)). + - Fix possible negative partition value from the HashPartitioner + ([#709](https://github.com/Shopify/sarama/pull/709)). + +#### Version 1.9.0 (2016-05-16) + +New Features: + - Add support for custom offset manager retention durations + ([#602](https://github.com/Shopify/sarama/pull/602)). + - Publish low-level mocks to enable testing of third-party producer/consumer + implementations ([#570](https://github.com/Shopify/sarama/pull/570)). + - Declare support for Golang 1.6 + ([#611](https://github.com/Shopify/sarama/pull/611)). + - Support for SASL plain-text auth + ([#648](https://github.com/Shopify/sarama/pull/648)). + +Improvements: + - Simplified broker locking scheme slightly + ([#604](https://github.com/Shopify/sarama/pull/604)). + - Documentation cleanup + ([#605](https://github.com/Shopify/sarama/pull/605), + [#621](https://github.com/Shopify/sarama/pull/621), + [#654](https://github.com/Shopify/sarama/pull/654)). + +Bug Fixes: + - Fix race condition shutting down the OffsetManager + ([#658](https://github.com/Shopify/sarama/pull/658)). + +#### Version 1.8.0 (2016-02-01) + +New Features: + - Full support for Kafka 0.9: + - All protocol messages and fields + ([#586](https://github.com/Shopify/sarama/pull/586), + [#588](https://github.com/Shopify/sarama/pull/588), + [#590](https://github.com/Shopify/sarama/pull/590)). + - Verified that TLS support works + ([#581](https://github.com/Shopify/sarama/pull/581)). + - Fixed the OffsetManager compatibility + ([#585](https://github.com/Shopify/sarama/pull/585)). + +Improvements: + - Optimize for fewer system calls when reading from the network + ([#584](https://github.com/Shopify/sarama/pull/584)). + - Automatically retry `InvalidMessage` errors to match upstream behaviour + ([#589](https://github.com/Shopify/sarama/pull/589)). + +#### Version 1.7.0 (2015-12-11) + +New Features: + - Preliminary support for Kafka 0.9 + ([#572](https://github.com/Shopify/sarama/pull/572)). This comes with several + caveats: + - Protocol-layer support is mostly in place + ([#577](https://github.com/Shopify/sarama/pull/577)), however Kafka 0.9 + renamed some messages and fields, which we did not in order to preserve API + compatibility. + - The producer and consumer work against 0.9, but the offset manager does + not ([#573](https://github.com/Shopify/sarama/pull/573)). + - TLS support may or may not work + ([#581](https://github.com/Shopify/sarama/pull/581)). + +Improvements: + - Don't wait for request timeouts on dead brokers, greatly speeding recovery + when the TCP connection is left hanging + ([#548](https://github.com/Shopify/sarama/pull/548)). + - Refactored part of the producer. The new version provides a much more elegant + solution to [#449](https://github.com/Shopify/sarama/pull/449). It is also + slightly more efficient, and much more precise in calculating batch sizes + when compression is used + ([#549](https://github.com/Shopify/sarama/pull/549), + [#550](https://github.com/Shopify/sarama/pull/550), + [#551](https://github.com/Shopify/sarama/pull/551)). + +Bug Fixes: + - Fix race condition in consumer test mock + ([#553](https://github.com/Shopify/sarama/pull/553)). + +#### Version 1.6.1 (2015-09-25) + +Bug Fixes: + - Fix panic that could occur if a user-supplied message value failed to encode + ([#449](https://github.com/Shopify/sarama/pull/449)). + +#### Version 1.6.0 (2015-09-04) + +New Features: + - Implementation of a consumer offset manager using the APIs introduced in + Kafka 0.8.2. The API is designed mainly for integration into a future + high-level consumer, not for direct use, although it is *possible* to use it + directly. + ([#461](https://github.com/Shopify/sarama/pull/461)). + +Improvements: + - CRC32 calculation is much faster on machines with SSE4.2 instructions, + removing a major hotspot from most profiles + ([#255](https://github.com/Shopify/sarama/pull/255)). + +Bug Fixes: + - Make protocol decoding more robust against some malformed packets generated + by go-fuzz ([#523](https://github.com/Shopify/sarama/pull/523), + [#525](https://github.com/Shopify/sarama/pull/525)) or found in other ways + ([#528](https://github.com/Shopify/sarama/pull/528)). + - Fix a potential race condition panic in the consumer on shutdown + ([#529](https://github.com/Shopify/sarama/pull/529)). + +#### Version 1.5.0 (2015-08-17) + +New Features: + - TLS-encrypted network connections are now supported. This feature is subject + to change when Kafka releases built-in TLS support, but for now this is + enough to work with TLS-terminating proxies + ([#154](https://github.com/Shopify/sarama/pull/154)). + +Improvements: + - The consumer will not block if a single partition is not drained by the user; + all other partitions will continue to consume normally + ([#485](https://github.com/Shopify/sarama/pull/485)). + - Formatting of error strings has been much improved + ([#495](https://github.com/Shopify/sarama/pull/495)). + - Internal refactoring of the producer for code cleanliness and to enable + future work ([#300](https://github.com/Shopify/sarama/pull/300)). + +Bug Fixes: + - Fix a potential deadlock in the consumer on shutdown + ([#475](https://github.com/Shopify/sarama/pull/475)). + +#### Version 1.4.3 (2015-07-21) + +Bug Fixes: + - Don't include the partitioner in the producer's "fetch partitions" + circuit-breaker ([#466](https://github.com/Shopify/sarama/pull/466)). + - Don't retry messages until the broker is closed when abandoning a broker in + the producer ([#468](https://github.com/Shopify/sarama/pull/468)). + - Update the import path for snappy-go, it has moved again and the API has + changed slightly ([#486](https://github.com/Shopify/sarama/pull/486)). + +#### Version 1.4.2 (2015-05-27) + +Bug Fixes: + - Update the import path for snappy-go, it has moved from google code to github + ([#456](https://github.com/Shopify/sarama/pull/456)). + +#### Version 1.4.1 (2015-05-25) + +Improvements: + - Optimizations when decoding snappy messages, thanks to John Potocny + ([#446](https://github.com/Shopify/sarama/pull/446)). + +Bug Fixes: + - Fix hypothetical race conditions on producer shutdown + ([#450](https://github.com/Shopify/sarama/pull/450), + [#451](https://github.com/Shopify/sarama/pull/451)). + +#### Version 1.4.0 (2015-05-01) + +New Features: + - The consumer now implements `Topics()` and `Partitions()` methods to enable + users to dynamically choose what topics/partitions to consume without + instantiating a full client + ([#431](https://github.com/Shopify/sarama/pull/431)). + - The partition-consumer now exposes the high water mark offset value returned + by the broker via the `HighWaterMarkOffset()` method ([#339](https://github.com/Shopify/sarama/pull/339)). + - Added a `kafka-console-consumer` tool capable of handling multiple + partitions, and deprecated the now-obsolete `kafka-console-partitionConsumer` + ([#439](https://github.com/Shopify/sarama/pull/439), + [#442](https://github.com/Shopify/sarama/pull/442)). + +Improvements: + - The producer's logging during retry scenarios is more consistent, more + useful, and slightly less verbose + ([#429](https://github.com/Shopify/sarama/pull/429)). + - The client now shuffles its initial list of seed brokers in order to prevent + thundering herd on the first broker in the list + ([#441](https://github.com/Shopify/sarama/pull/441)). + +Bug Fixes: + - The producer now correctly manages its state if retries occur when it is + shutting down, fixing several instances of confusing behaviour and at least + one potential deadlock ([#419](https://github.com/Shopify/sarama/pull/419)). + - The consumer now handles messages for different partitions asynchronously, + making it much more resilient to specific user code ordering + ([#325](https://github.com/Shopify/sarama/pull/325)). + +#### Version 1.3.0 (2015-04-16) + +New Features: + - The client now tracks consumer group coordinators using + ConsumerMetadataRequests similar to how it tracks partition leadership using + regular MetadataRequests ([#411](https://github.com/Shopify/sarama/pull/411)). + This adds two methods to the client API: + - `Coordinator(consumerGroup string) (*Broker, error)` + - `RefreshCoordinator(consumerGroup string) error` + +Improvements: + - ConsumerMetadataResponses now automatically create a Broker object out of the + ID/address/port combination for the Coordinator; accessing the fields + individually has been deprecated + ([#413](https://github.com/Shopify/sarama/pull/413)). + - Much improved handling of `OffsetOutOfRange` errors in the consumer. + Consumers will fail to start if the provided offset is out of range + ([#418](https://github.com/Shopify/sarama/pull/418)) + and they will automatically shut down if the offset falls out of range + ([#424](https://github.com/Shopify/sarama/pull/424)). + - Small performance improvement in encoding and decoding protocol messages + ([#427](https://github.com/Shopify/sarama/pull/427)). + +Bug Fixes: + - Fix a rare race condition in the client's background metadata refresher if + it happens to be activated while the client is being closed + ([#422](https://github.com/Shopify/sarama/pull/422)). + +#### Version 1.2.0 (2015-04-07) + +Improvements: + - The producer's behaviour when `Flush.Frequency` is set is now more intuitive + ([#389](https://github.com/Shopify/sarama/pull/389)). + - The producer is now somewhat more memory-efficient during and after retrying + messages due to an improved queue implementation + ([#396](https://github.com/Shopify/sarama/pull/396)). + - The consumer produces much more useful logging output when leadership + changes ([#385](https://github.com/Shopify/sarama/pull/385)). + - The client's `GetOffset` method will now automatically refresh metadata and + retry once in the event of stale information or similar + ([#394](https://github.com/Shopify/sarama/pull/394)). + - Broker connections now have support for using TCP keepalives + ([#407](https://github.com/Shopify/sarama/issues/407)). + +Bug Fixes: + - The OffsetCommitRequest message now correctly implements all three possible + API versions ([#390](https://github.com/Shopify/sarama/pull/390), + [#400](https://github.com/Shopify/sarama/pull/400)). + +#### Version 1.1.0 (2015-03-20) + +Improvements: + - Wrap the producer's partitioner call in a circuit-breaker so that repeatedly + broken topics don't choke throughput + ([#373](https://github.com/Shopify/sarama/pull/373)). + +Bug Fixes: + - Fix the producer's internal reference counting in certain unusual scenarios + ([#367](https://github.com/Shopify/sarama/pull/367)). + - Fix the consumer's internal reference counting in certain unusual scenarios + ([#369](https://github.com/Shopify/sarama/pull/369)). + - Fix a condition where the producer's internal control messages could have + gotten stuck ([#368](https://github.com/Shopify/sarama/pull/368)). + - Fix an issue where invalid partition lists would be cached when asking for + metadata for a non-existant topic ([#372](https://github.com/Shopify/sarama/pull/372)). + + +#### Version 1.0.0 (2015-03-17) + +Version 1.0.0 is the first tagged version, and is almost a complete rewrite. The primary differences with previous untagged versions are: + +- The producer has been rewritten; there is now a `SyncProducer` with a blocking API, and an `AsyncProducer` that is non-blocking. +- The consumer has been rewritten to only open one connection per broker instead of one connection per partition. +- The main types of Sarama are now interfaces to make depedency injection easy; mock implementations for `Consumer`, `SyncProducer` and `AsyncProducer` are provided in the `github.com/Shopify/sarama/mocks` package. +- For most uses cases, it is no longer necessary to open a `Client`; this will be done for you. +- All the configuration values have been unified in the `Config` struct. +- Much improved test suite. diff --git a/vendor/github.com/Shopify/sarama/LICENSE b/vendor/github.com/Shopify/sarama/LICENSE new file mode 100644 index 00000000..d2bf4352 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013 Shopify + +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/vendor/github.com/Shopify/sarama/Makefile b/vendor/github.com/Shopify/sarama/Makefile new file mode 100644 index 00000000..8fcf219f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/Makefile @@ -0,0 +1,30 @@ +default: fmt vet errcheck test + +# Taken from https://github.com/codecov/example-go#caveat-multiple-files +test: + echo "" > coverage.txt + for d in `go list ./... | grep -v vendor`; do \ + go test -p 1 -v -timeout 240s -race -coverprofile=profile.out -covermode=atomic $$d || exit 1; \ + if [ -f profile.out ]; then \ + cat profile.out >> coverage.txt; \ + rm profile.out; \ + fi \ + done + +vet: + go vet ./... + +# See https://github.com/kisielk/errcheck/pull/141 for details on ignorepkg +errcheck: + errcheck -ignorepkg fmt github.com/Shopify/sarama/... + +fmt: + @if [ -n "$$(go fmt ./...)" ]; then echo 'Please run go fmt on your code.' && exit 1; fi + +install_dependencies: install_errcheck get + +install_errcheck: + go get github.com/kisielk/errcheck + +get: + go get -t diff --git a/vendor/github.com/Shopify/sarama/README.md b/vendor/github.com/Shopify/sarama/README.md new file mode 100644 index 00000000..b9970938 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/README.md @@ -0,0 +1,39 @@ +sarama +====== + +[![GoDoc](https://godoc.org/github.com/Shopify/sarama?status.png)](https://godoc.org/github.com/Shopify/sarama) +[![Build Status](https://travis-ci.org/Shopify/sarama.svg?branch=master)](https://travis-ci.org/Shopify/sarama) +[![Coverage](https://codecov.io/gh/Shopify/sarama/branch/master/graph/badge.svg)](https://codecov.io/gh/Shopify/sarama) + +Sarama is an MIT-licensed Go client library for [Apache Kafka](https://kafka.apache.org/) version 0.8 (and later). + +### Getting started + +- API documentation and examples are available via [godoc](https://godoc.org/github.com/Shopify/sarama). +- Mocks for testing are available in the [mocks](./mocks) subpackage. +- The [examples](./examples) directory contains more elaborate example applications. +- The [tools](./tools) directory contains command line tools that can be useful for testing, diagnostics, and instrumentation. + +You might also want to look at the [Frequently Asked Questions](https://github.com/Shopify/sarama/wiki/Frequently-Asked-Questions). + +### Compatibility and API stability + +Sarama provides a "2 releases + 2 months" compatibility guarantee: we support +the two latest stable releases of Kafka and Go, and we provide a two month +grace period for older releases. This means we currently officially support +Go 1.8 through 1.11, and Kafka 1.0 through 2.0, although older releases are +still likely to work. + +Sarama follows semantic versioning and provides API stability via the gopkg.in service. +You can import a version with a guaranteed stable API via http://gopkg.in/Shopify/sarama.v1. +A changelog is available [here](CHANGELOG.md). + +### Contributing + +* Get started by checking our [contribution guidelines](https://github.com/Shopify/sarama/blob/master/.github/CONTRIBUTING.md). +* Read the [Sarama wiki](https://github.com/Shopify/sarama/wiki) for more + technical and design details. +* The [Kafka Protocol Specification](https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol) + contains a wealth of useful information. +* For more general issues, there is [a google group](https://groups.google.com/forum/#!forum/kafka-clients) for Kafka client developers. +* If you have any questions, just ask! diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/Vagrantfile b/vendor/github.com/Shopify/sarama/Vagrantfile similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/Vagrantfile rename to vendor/github.com/Shopify/sarama/Vagrantfile diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_bindings.go b/vendor/github.com/Shopify/sarama/acl_bindings.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_bindings.go rename to vendor/github.com/Shopify/sarama/acl_bindings.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_create_request.go b/vendor/github.com/Shopify/sarama/acl_create_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_create_request.go rename to vendor/github.com/Shopify/sarama/acl_create_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_create_response.go b/vendor/github.com/Shopify/sarama/acl_create_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_create_response.go rename to vendor/github.com/Shopify/sarama/acl_create_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_delete_request.go b/vendor/github.com/Shopify/sarama/acl_delete_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_delete_request.go rename to vendor/github.com/Shopify/sarama/acl_delete_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_delete_response.go b/vendor/github.com/Shopify/sarama/acl_delete_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_delete_response.go rename to vendor/github.com/Shopify/sarama/acl_delete_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_describe_request.go b/vendor/github.com/Shopify/sarama/acl_describe_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_describe_request.go rename to vendor/github.com/Shopify/sarama/acl_describe_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_describe_response.go b/vendor/github.com/Shopify/sarama/acl_describe_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_describe_response.go rename to vendor/github.com/Shopify/sarama/acl_describe_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_filter.go b/vendor/github.com/Shopify/sarama/acl_filter.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_filter.go rename to vendor/github.com/Shopify/sarama/acl_filter.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_types.go b/vendor/github.com/Shopify/sarama/acl_types.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/acl_types.go rename to vendor/github.com/Shopify/sarama/acl_types.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go b/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go rename to vendor/github.com/Shopify/sarama/add_offsets_to_txn_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go b/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go rename to vendor/github.com/Shopify/sarama/add_offsets_to_txn_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go b/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go rename to vendor/github.com/Shopify/sarama/add_partitions_to_txn_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go b/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go rename to vendor/github.com/Shopify/sarama/add_partitions_to_txn_response.go diff --git a/vendor/github.com/Shopify/sarama/admin.go b/vendor/github.com/Shopify/sarama/admin.go new file mode 100644 index 00000000..52725758 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/admin.go @@ -0,0 +1,382 @@ +package sarama + +import "errors" + +// ClusterAdmin is the administrative client for Kafka, which supports managing and inspecting topics, +// brokers, configurations and ACLs. The minimum broker version required is 0.10.0.0. +// Methods with stricter requirements will specify the minimum broker version required. +// You MUST call Close() on a client to avoid leaks +type ClusterAdmin interface { + // Creates a new topic. This operation is supported by brokers with version 0.10.1.0 or higher. + // It may take several seconds after CreateTopic returns success for all the brokers + // to become aware that the topic has been created. During this time, listTopics + // may not return information about the new topic.The validateOnly option is supported from version 0.10.2.0. + CreateTopic(topic string, detail *TopicDetail, validateOnly bool) error + + // Delete a topic. It may take several seconds after the DeleteTopic to returns success + // and for all the brokers to become aware that the topics are gone. + // During this time, listTopics may continue to return information about the deleted topic. + // If delete.topic.enable is false on the brokers, deleteTopic will mark + // the topic for deletion, but not actually delete them. + // This operation is supported by brokers with version 0.10.1.0 or higher. + DeleteTopic(topic string) error + + // Increase the number of partitions of the topics according to the corresponding values. + // If partitions are increased for a topic that has a key, the partition logic or ordering of + // the messages will be affected. It may take several seconds after this method returns + // success for all the brokers to become aware that the partitions have been created. + // During this time, ClusterAdmin#describeTopics may not return information about the + // new partitions. This operation is supported by brokers with version 1.0.0 or higher. + CreatePartitions(topic string, count int32, assignment [][]int32, validateOnly bool) error + + // Delete records whose offset is smaller than the given offset of the corresponding partition. + // This operation is supported by brokers with version 0.11.0.0 or higher. + DeleteRecords(topic string, partitionOffsets map[int32]int64) error + + // Get the configuration for the specified resources. + // The returned configuration includes default values and the Default is true + // can be used to distinguish them from user supplied values. + // Config entries where ReadOnly is true cannot be updated. + // The value of config entries where Sensitive is true is always nil so + // sensitive information is not disclosed. + // This operation is supported by brokers with version 0.11.0.0 or higher. + DescribeConfig(resource ConfigResource) ([]ConfigEntry, error) + + // Update the configuration for the specified resources with the default options. + // This operation is supported by brokers with version 0.11.0.0 or higher. + // The resources with their configs (topic is the only resource type with configs + // that can be updated currently Updates are not transactional so they may succeed + // for some resources while fail for others. The configs for a particular resource are updated automatically. + AlterConfig(resourceType ConfigResourceType, name string, entries map[string]*string, validateOnly bool) error + + // Creates access control lists (ACLs) which are bound to specific resources. + // This operation is not transactional so it may succeed for some ACLs while fail for others. + // If you attempt to add an ACL that duplicates an existing ACL, no error will be raised, but + // no changes will be made. This operation is supported by brokers with version 0.11.0.0 or higher. + CreateACL(resource Resource, acl Acl) error + + // Lists access control lists (ACLs) according to the supplied filter. + // it may take some time for changes made by createAcls or deleteAcls to be reflected in the output of ListAcls + // This operation is supported by brokers with version 0.11.0.0 or higher. + ListAcls(filter AclFilter) ([]ResourceAcls, error) + + // Deletes access control lists (ACLs) according to the supplied filters. + // This operation is not transactional so it may succeed for some ACLs while fail for others. + // This operation is supported by brokers with version 0.11.0.0 or higher. + DeleteACL(filter AclFilter, validateOnly bool) ([]MatchingAcl, error) + + // Close shuts down the admin and closes underlying client. + Close() error +} + +type clusterAdmin struct { + client Client + conf *Config +} + +// NewClusterAdmin creates a new ClusterAdmin using the given broker addresses and configuration. +func NewClusterAdmin(addrs []string, conf *Config) (ClusterAdmin, error) { + client, err := NewClient(addrs, conf) + if err != nil { + return nil, err + } + + //make sure we can retrieve the controller + _, err = client.Controller() + if err != nil { + return nil, err + } + + ca := &clusterAdmin{ + client: client, + conf: client.Config(), + } + return ca, nil +} + +func (ca *clusterAdmin) Close() error { + return ca.client.Close() +} + +func (ca *clusterAdmin) Controller() (*Broker, error) { + return ca.client.Controller() +} + +func (ca *clusterAdmin) CreateTopic(topic string, detail *TopicDetail, validateOnly bool) error { + + if topic == "" { + return ErrInvalidTopic + } + + if detail == nil { + return errors.New("You must specify topic details") + } + + topicDetails := make(map[string]*TopicDetail) + topicDetails[topic] = detail + + request := &CreateTopicsRequest{ + TopicDetails: topicDetails, + ValidateOnly: validateOnly, + Timeout: ca.conf.Admin.Timeout, + } + + if ca.conf.Version.IsAtLeast(V0_11_0_0) { + request.Version = 1 + } + if ca.conf.Version.IsAtLeast(V1_0_0_0) { + request.Version = 2 + } + + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.CreateTopics(request) + if err != nil { + return err + } + + topicErr, ok := rsp.TopicErrors[topic] + if !ok { + return ErrIncompleteResponse + } + + if topicErr.Err != ErrNoError { + return topicErr.Err + } + + return nil +} + +func (ca *clusterAdmin) DeleteTopic(topic string) error { + + if topic == "" { + return ErrInvalidTopic + } + + request := &DeleteTopicsRequest{ + Topics: []string{topic}, + Timeout: ca.conf.Admin.Timeout, + } + + if ca.conf.Version.IsAtLeast(V0_11_0_0) { + request.Version = 1 + } + + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.DeleteTopics(request) + if err != nil { + return err + } + + topicErr, ok := rsp.TopicErrorCodes[topic] + if !ok { + return ErrIncompleteResponse + } + + if topicErr != ErrNoError { + return topicErr + } + return nil +} + +func (ca *clusterAdmin) CreatePartitions(topic string, count int32, assignment [][]int32, validateOnly bool) error { + if topic == "" { + return ErrInvalidTopic + } + + topicPartitions := make(map[string]*TopicPartition) + topicPartitions[topic] = &TopicPartition{Count: count, Assignment: assignment} + + request := &CreatePartitionsRequest{ + TopicPartitions: topicPartitions, + Timeout: ca.conf.Admin.Timeout, + } + + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.CreatePartitions(request) + if err != nil { + return err + } + + topicErr, ok := rsp.TopicPartitionErrors[topic] + if !ok { + return ErrIncompleteResponse + } + + if topicErr.Err != ErrNoError { + return topicErr.Err + } + + return nil +} + +func (ca *clusterAdmin) DeleteRecords(topic string, partitionOffsets map[int32]int64) error { + + if topic == "" { + return ErrInvalidTopic + } + + topics := make(map[string]*DeleteRecordsRequestTopic) + topics[topic] = &DeleteRecordsRequestTopic{PartitionOffsets: partitionOffsets} + request := &DeleteRecordsRequest{ + Topics: topics, + Timeout: ca.conf.Admin.Timeout, + } + + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.DeleteRecords(request) + if err != nil { + return err + } + + _, ok := rsp.Topics[topic] + if !ok { + return ErrIncompleteResponse + } + + //todo since we are dealing with couple of partitions it would be good if we return slice of errors + //for each partition instead of one error + return nil +} + +func (ca *clusterAdmin) DescribeConfig(resource ConfigResource) ([]ConfigEntry, error) { + + var entries []ConfigEntry + var resources []*ConfigResource + resources = append(resources, &resource) + + request := &DescribeConfigsRequest{ + Resources: resources, + } + + b, err := ca.Controller() + if err != nil { + return nil, err + } + + rsp, err := b.DescribeConfigs(request) + if err != nil { + return nil, err + } + + for _, rspResource := range rsp.Resources { + if rspResource.Name == resource.Name { + if rspResource.ErrorMsg != "" { + return nil, errors.New(rspResource.ErrorMsg) + } + for _, cfgEntry := range rspResource.Configs { + entries = append(entries, *cfgEntry) + } + } + } + return entries, nil +} + +func (ca *clusterAdmin) AlterConfig(resourceType ConfigResourceType, name string, entries map[string]*string, validateOnly bool) error { + + var resources []*AlterConfigsResource + resources = append(resources, &AlterConfigsResource{ + Type: resourceType, + Name: name, + ConfigEntries: entries, + }) + + request := &AlterConfigsRequest{ + Resources: resources, + ValidateOnly: validateOnly, + } + + b, err := ca.Controller() + if err != nil { + return err + } + + rsp, err := b.AlterConfigs(request) + if err != nil { + return err + } + + for _, rspResource := range rsp.Resources { + if rspResource.Name == name { + if rspResource.ErrorMsg != "" { + return errors.New(rspResource.ErrorMsg) + } + } + } + return nil +} + +func (ca *clusterAdmin) CreateACL(resource Resource, acl Acl) error { + var acls []*AclCreation + acls = append(acls, &AclCreation{resource, acl}) + request := &CreateAclsRequest{AclCreations: acls} + + b, err := ca.Controller() + if err != nil { + return err + } + + _, err = b.CreateAcls(request) + return err +} + +func (ca *clusterAdmin) ListAcls(filter AclFilter) ([]ResourceAcls, error) { + + request := &DescribeAclsRequest{AclFilter: filter} + + b, err := ca.Controller() + if err != nil { + return nil, err + } + + rsp, err := b.DescribeAcls(request) + if err != nil { + return nil, err + } + + var lAcls []ResourceAcls + for _, rAcl := range rsp.ResourceAcls { + lAcls = append(lAcls, *rAcl) + } + return lAcls, nil +} + +func (ca *clusterAdmin) DeleteACL(filter AclFilter, validateOnly bool) ([]MatchingAcl, error) { + var filters []*AclFilter + filters = append(filters, &filter) + request := &DeleteAclsRequest{Filters: filters} + + b, err := ca.Controller() + if err != nil { + return nil, err + } + + rsp, err := b.DeleteAcls(request) + if err != nil { + return nil, err + } + + var mAcls []MatchingAcl + for _, fr := range rsp.FilterResponses { + for _, mACL := range fr.MatchingAcls { + mAcls = append(mAcls, *mACL) + } + + } + return mAcls, nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/alter_configs_request.go b/vendor/github.com/Shopify/sarama/alter_configs_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/alter_configs_request.go rename to vendor/github.com/Shopify/sarama/alter_configs_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/alter_configs_response.go b/vendor/github.com/Shopify/sarama/alter_configs_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/alter_configs_response.go rename to vendor/github.com/Shopify/sarama/alter_configs_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/api_versions_request.go b/vendor/github.com/Shopify/sarama/api_versions_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/api_versions_request.go rename to vendor/github.com/Shopify/sarama/api_versions_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/api_versions_response.go b/vendor/github.com/Shopify/sarama/api_versions_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/api_versions_response.go rename to vendor/github.com/Shopify/sarama/api_versions_response.go diff --git a/vendor/github.com/Shopify/sarama/async_producer.go b/vendor/github.com/Shopify/sarama/async_producer.go new file mode 100644 index 00000000..89722554 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/async_producer.go @@ -0,0 +1,932 @@ +package sarama + +import ( + "encoding/binary" + "fmt" + "sync" + "time" + + "github.com/eapache/go-resiliency/breaker" + "github.com/eapache/queue" +) + +// AsyncProducer publishes Kafka messages using a non-blocking API. It routes messages +// to the correct broker for the provided topic-partition, refreshing metadata as appropriate, +// and parses responses for errors. You must read from the Errors() channel or the +// producer will deadlock. You must call Close() or AsyncClose() on a producer to avoid +// leaks: it will not be garbage-collected automatically when it passes out of +// scope. +type AsyncProducer interface { + + // AsyncClose triggers a shutdown of the producer. The shutdown has completed + // when both the Errors and Successes channels have been closed. When calling + // AsyncClose, you *must* continue to read from those channels in order to + // drain the results of any messages in flight. + AsyncClose() + + // Close shuts down the producer and waits for any buffered messages to be + // flushed. You must call this function before a producer object passes out of + // scope, as it may otherwise leak memory. You must call this before calling + // Close on the underlying client. + Close() error + + // Input is the input channel for the user to write messages to that they + // wish to send. + Input() chan<- *ProducerMessage + + // Successes is the success output channel back to the user when Return.Successes is + // enabled. If Return.Successes is true, you MUST read from this channel or the + // Producer will deadlock. It is suggested that you send and read messages + // together in a single select statement. + Successes() <-chan *ProducerMessage + + // Errors is the error output channel back to the user. You MUST read from this + // channel or the Producer will deadlock when the channel is full. Alternatively, + // you can set Producer.Return.Errors in your config to false, which prevents + // errors to be returned. + Errors() <-chan *ProducerError +} + +type asyncProducer struct { + client Client + conf *Config + ownClient bool + + errors chan *ProducerError + input, successes, retries chan *ProducerMessage + inFlight sync.WaitGroup + + brokers map[*Broker]chan<- *ProducerMessage + brokerRefs map[chan<- *ProducerMessage]int + brokerLock sync.Mutex +} + +// NewAsyncProducer creates a new AsyncProducer using the given broker addresses and configuration. +func NewAsyncProducer(addrs []string, conf *Config) (AsyncProducer, error) { + client, err := NewClient(addrs, conf) + if err != nil { + return nil, err + } + + p, err := NewAsyncProducerFromClient(client) + if err != nil { + return nil, err + } + p.(*asyncProducer).ownClient = true + return p, nil +} + +// NewAsyncProducerFromClient creates a new Producer using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this producer. +func NewAsyncProducerFromClient(client Client) (AsyncProducer, error) { + // Check that we are not dealing with a closed Client before processing any other arguments + if client.Closed() { + return nil, ErrClosedClient + } + + p := &asyncProducer{ + client: client, + conf: client.Config(), + errors: make(chan *ProducerError), + input: make(chan *ProducerMessage), + successes: make(chan *ProducerMessage), + retries: make(chan *ProducerMessage), + brokers: make(map[*Broker]chan<- *ProducerMessage), + brokerRefs: make(map[chan<- *ProducerMessage]int), + } + + // launch our singleton dispatchers + go withRecover(p.dispatcher) + go withRecover(p.retryHandler) + + return p, nil +} + +type flagSet int8 + +const ( + syn flagSet = 1 << iota // first message from partitionProducer to brokerProducer + fin // final message from partitionProducer to brokerProducer and back + shutdown // start the shutdown process +) + +// ProducerMessage is the collection of elements passed to the Producer in order to send a message. +type ProducerMessage struct { + Topic string // The Kafka topic for this message. + // The partitioning key for this message. Pre-existing Encoders include + // StringEncoder and ByteEncoder. + Key Encoder + // The actual message to store in Kafka. Pre-existing Encoders include + // StringEncoder and ByteEncoder. + Value Encoder + + // The headers are key-value pairs that are transparently passed + // by Kafka between producers and consumers. + Headers []RecordHeader + + // This field is used to hold arbitrary data you wish to include so it + // will be available when receiving on the Successes and Errors channels. + // Sarama completely ignores this field and is only to be used for + // pass-through data. + Metadata interface{} + + // Below this point are filled in by the producer as the message is processed + + // Offset is the offset of the message stored on the broker. This is only + // guaranteed to be defined if the message was successfully delivered and + // RequiredAcks is not NoResponse. + Offset int64 + // Partition is the partition that the message was sent to. This is only + // guaranteed to be defined if the message was successfully delivered. + Partition int32 + // Timestamp is the timestamp assigned to the message by the broker. This + // is only guaranteed to be defined if the message was successfully + // delivered, RequiredAcks is not NoResponse, and the Kafka broker is at + // least version 0.10.0. + Timestamp time.Time + + retries int + flags flagSet + expectation chan *ProducerError +} + +const producerMessageOverhead = 26 // the metadata overhead of CRC, flags, etc. + +func (m *ProducerMessage) byteSize(version int) int { + var size int + if version >= 2 { + size = maximumRecordOverhead + for _, h := range m.Headers { + size += len(h.Key) + len(h.Value) + 2*binary.MaxVarintLen32 + } + } else { + size = producerMessageOverhead + } + if m.Key != nil { + size += m.Key.Length() + } + if m.Value != nil { + size += m.Value.Length() + } + return size +} + +func (m *ProducerMessage) clear() { + m.flags = 0 + m.retries = 0 +} + +// ProducerError is the type of error generated when the producer fails to deliver a message. +// It contains the original ProducerMessage as well as the actual error value. +type ProducerError struct { + Msg *ProducerMessage + Err error +} + +func (pe ProducerError) Error() string { + return fmt.Sprintf("kafka: Failed to produce message to topic %s: %s", pe.Msg.Topic, pe.Err) +} + +// ProducerErrors is a type that wraps a batch of "ProducerError"s and implements the Error interface. +// It can be returned from the Producer's Close method to avoid the need to manually drain the Errors channel +// when closing a producer. +type ProducerErrors []*ProducerError + +func (pe ProducerErrors) Error() string { + return fmt.Sprintf("kafka: Failed to deliver %d messages.", len(pe)) +} + +func (p *asyncProducer) Errors() <-chan *ProducerError { + return p.errors +} + +func (p *asyncProducer) Successes() <-chan *ProducerMessage { + return p.successes +} + +func (p *asyncProducer) Input() chan<- *ProducerMessage { + return p.input +} + +func (p *asyncProducer) Close() error { + p.AsyncClose() + + if p.conf.Producer.Return.Successes { + go withRecover(func() { + for range p.successes { + } + }) + } + + var errors ProducerErrors + if p.conf.Producer.Return.Errors { + for event := range p.errors { + errors = append(errors, event) + } + } else { + <-p.errors + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (p *asyncProducer) AsyncClose() { + go withRecover(p.shutdown) +} + +// singleton +// dispatches messages by topic +func (p *asyncProducer) dispatcher() { + handlers := make(map[string]chan<- *ProducerMessage) + shuttingDown := false + + for msg := range p.input { + if msg == nil { + Logger.Println("Something tried to send a nil message, it was ignored.") + continue + } + + if msg.flags&shutdown != 0 { + shuttingDown = true + p.inFlight.Done() + continue + } else if msg.retries == 0 { + if shuttingDown { + // we can't just call returnError here because that decrements the wait group, + // which hasn't been incremented yet for this message, and shouldn't be + pErr := &ProducerError{Msg: msg, Err: ErrShuttingDown} + if p.conf.Producer.Return.Errors { + p.errors <- pErr + } else { + Logger.Println(pErr) + } + continue + } + p.inFlight.Add(1) + } + + version := 1 + if p.conf.Version.IsAtLeast(V0_11_0_0) { + version = 2 + } else if msg.Headers != nil { + p.returnError(msg, ConfigurationError("Producing headers requires Kafka at least v0.11")) + continue + } + if msg.byteSize(version) > p.conf.Producer.MaxMessageBytes { + p.returnError(msg, ErrMessageSizeTooLarge) + continue + } + + handler := handlers[msg.Topic] + if handler == nil { + handler = p.newTopicProducer(msg.Topic) + handlers[msg.Topic] = handler + } + + handler <- msg + } + + for _, handler := range handlers { + close(handler) + } +} + +// one per topic +// partitions messages, then dispatches them by partition +type topicProducer struct { + parent *asyncProducer + topic string + input <-chan *ProducerMessage + + breaker *breaker.Breaker + handlers map[int32]chan<- *ProducerMessage + partitioner Partitioner +} + +func (p *asyncProducer) newTopicProducer(topic string) chan<- *ProducerMessage { + input := make(chan *ProducerMessage, p.conf.ChannelBufferSize) + tp := &topicProducer{ + parent: p, + topic: topic, + input: input, + breaker: breaker.New(3, 1, 10*time.Second), + handlers: make(map[int32]chan<- *ProducerMessage), + partitioner: p.conf.Producer.Partitioner(topic), + } + go withRecover(tp.dispatch) + return input +} + +func (tp *topicProducer) dispatch() { + for msg := range tp.input { + if msg.retries == 0 { + if err := tp.partitionMessage(msg); err != nil { + tp.parent.returnError(msg, err) + continue + } + } + + handler := tp.handlers[msg.Partition] + if handler == nil { + handler = tp.parent.newPartitionProducer(msg.Topic, msg.Partition) + tp.handlers[msg.Partition] = handler + } + + handler <- msg + } + + for _, handler := range tp.handlers { + close(handler) + } +} + +func (tp *topicProducer) partitionMessage(msg *ProducerMessage) error { + var partitions []int32 + + err := tp.breaker.Run(func() (err error) { + var requiresConsistency = false + if ep, ok := tp.partitioner.(DynamicConsistencyPartitioner); ok { + requiresConsistency = ep.MessageRequiresConsistency(msg) + } else { + requiresConsistency = tp.partitioner.RequiresConsistency() + } + + if requiresConsistency { + partitions, err = tp.parent.client.Partitions(msg.Topic) + } else { + partitions, err = tp.parent.client.WritablePartitions(msg.Topic) + } + return + }) + + if err != nil { + return err + } + + numPartitions := int32(len(partitions)) + + if numPartitions == 0 { + return ErrLeaderNotAvailable + } + + choice, err := tp.partitioner.Partition(msg, numPartitions) + + if err != nil { + return err + } else if choice < 0 || choice >= numPartitions { + return ErrInvalidPartition + } + + msg.Partition = partitions[choice] + + return nil +} + +// one per partition per topic +// dispatches messages to the appropriate broker +// also responsible for maintaining message order during retries +type partitionProducer struct { + parent *asyncProducer + topic string + partition int32 + input <-chan *ProducerMessage + + leader *Broker + breaker *breaker.Breaker + output chan<- *ProducerMessage + + // highWatermark tracks the "current" retry level, which is the only one where we actually let messages through, + // all other messages get buffered in retryState[msg.retries].buf to preserve ordering + // retryState[msg.retries].expectChaser simply tracks whether we've seen a fin message for a given level (and + // therefore whether our buffer is complete and safe to flush) + highWatermark int + retryState []partitionRetryState +} + +type partitionRetryState struct { + buf []*ProducerMessage + expectChaser bool +} + +func (p *asyncProducer) newPartitionProducer(topic string, partition int32) chan<- *ProducerMessage { + input := make(chan *ProducerMessage, p.conf.ChannelBufferSize) + pp := &partitionProducer{ + parent: p, + topic: topic, + partition: partition, + input: input, + + breaker: breaker.New(3, 1, 10*time.Second), + retryState: make([]partitionRetryState, p.conf.Producer.Retry.Max+1), + } + go withRecover(pp.dispatch) + return input +} + +func (pp *partitionProducer) dispatch() { + // try to prefetch the leader; if this doesn't work, we'll do a proper call to `updateLeader` + // on the first message + pp.leader, _ = pp.parent.client.Leader(pp.topic, pp.partition) + if pp.leader != nil { + pp.output = pp.parent.getBrokerProducer(pp.leader) + pp.parent.inFlight.Add(1) // we're generating a syn message; track it so we don't shut down while it's still inflight + pp.output <- &ProducerMessage{Topic: pp.topic, Partition: pp.partition, flags: syn} + } + + for msg := range pp.input { + if msg.retries > pp.highWatermark { + // a new, higher, retry level; handle it and then back off + pp.newHighWatermark(msg.retries) + time.Sleep(pp.parent.conf.Producer.Retry.Backoff) + } else if pp.highWatermark > 0 { + // we are retrying something (else highWatermark would be 0) but this message is not a *new* retry level + if msg.retries < pp.highWatermark { + // in fact this message is not even the current retry level, so buffer it for now (unless it's a just a fin) + if msg.flags&fin == fin { + pp.retryState[msg.retries].expectChaser = false + pp.parent.inFlight.Done() // this fin is now handled and will be garbage collected + } else { + pp.retryState[msg.retries].buf = append(pp.retryState[msg.retries].buf, msg) + } + continue + } else if msg.flags&fin == fin { + // this message is of the current retry level (msg.retries == highWatermark) and the fin flag is set, + // meaning this retry level is done and we can go down (at least) one level and flush that + pp.retryState[pp.highWatermark].expectChaser = false + pp.flushRetryBuffers() + pp.parent.inFlight.Done() // this fin is now handled and will be garbage collected + continue + } + } + + // if we made it this far then the current msg contains real data, and can be sent to the next goroutine + // without breaking any of our ordering guarantees + + if pp.output == nil { + if err := pp.updateLeader(); err != nil { + pp.parent.returnError(msg, err) + time.Sleep(pp.parent.conf.Producer.Retry.Backoff) + continue + } + Logger.Printf("producer/leader/%s/%d selected broker %d\n", pp.topic, pp.partition, pp.leader.ID()) + } + + pp.output <- msg + } + + if pp.output != nil { + pp.parent.unrefBrokerProducer(pp.leader, pp.output) + } +} + +func (pp *partitionProducer) newHighWatermark(hwm int) { + Logger.Printf("producer/leader/%s/%d state change to [retrying-%d]\n", pp.topic, pp.partition, hwm) + pp.highWatermark = hwm + + // send off a fin so that we know when everything "in between" has made it + // back to us and we can safely flush the backlog (otherwise we risk re-ordering messages) + pp.retryState[pp.highWatermark].expectChaser = true + pp.parent.inFlight.Add(1) // we're generating a fin message; track it so we don't shut down while it's still inflight + pp.output <- &ProducerMessage{Topic: pp.topic, Partition: pp.partition, flags: fin, retries: pp.highWatermark - 1} + + // a new HWM means that our current broker selection is out of date + Logger.Printf("producer/leader/%s/%d abandoning broker %d\n", pp.topic, pp.partition, pp.leader.ID()) + pp.parent.unrefBrokerProducer(pp.leader, pp.output) + pp.output = nil +} + +func (pp *partitionProducer) flushRetryBuffers() { + Logger.Printf("producer/leader/%s/%d state change to [flushing-%d]\n", pp.topic, pp.partition, pp.highWatermark) + for { + pp.highWatermark-- + + if pp.output == nil { + if err := pp.updateLeader(); err != nil { + pp.parent.returnErrors(pp.retryState[pp.highWatermark].buf, err) + goto flushDone + } + Logger.Printf("producer/leader/%s/%d selected broker %d\n", pp.topic, pp.partition, pp.leader.ID()) + } + + for _, msg := range pp.retryState[pp.highWatermark].buf { + pp.output <- msg + } + + flushDone: + pp.retryState[pp.highWatermark].buf = nil + if pp.retryState[pp.highWatermark].expectChaser { + Logger.Printf("producer/leader/%s/%d state change to [retrying-%d]\n", pp.topic, pp.partition, pp.highWatermark) + break + } else if pp.highWatermark == 0 { + Logger.Printf("producer/leader/%s/%d state change to [normal]\n", pp.topic, pp.partition) + break + } + } +} + +func (pp *partitionProducer) updateLeader() error { + return pp.breaker.Run(func() (err error) { + if err = pp.parent.client.RefreshMetadata(pp.topic); err != nil { + return err + } + + if pp.leader, err = pp.parent.client.Leader(pp.topic, pp.partition); err != nil { + return err + } + + pp.output = pp.parent.getBrokerProducer(pp.leader) + pp.parent.inFlight.Add(1) // we're generating a syn message; track it so we don't shut down while it's still inflight + pp.output <- &ProducerMessage{Topic: pp.topic, Partition: pp.partition, flags: syn} + + return nil + }) +} + +// one per broker; also constructs an associated flusher +func (p *asyncProducer) newBrokerProducer(broker *Broker) chan<- *ProducerMessage { + var ( + input = make(chan *ProducerMessage) + bridge = make(chan *produceSet) + responses = make(chan *brokerProducerResponse) + ) + + bp := &brokerProducer{ + parent: p, + broker: broker, + input: input, + output: bridge, + responses: responses, + buffer: newProduceSet(p), + currentRetries: make(map[string]map[int32]error), + } + go withRecover(bp.run) + + // minimal bridge to make the network response `select`able + go withRecover(func() { + for set := range bridge { + request := set.buildRequest() + + response, err := broker.Produce(request) + + responses <- &brokerProducerResponse{ + set: set, + err: err, + res: response, + } + } + close(responses) + }) + + return input +} + +type brokerProducerResponse struct { + set *produceSet + err error + res *ProduceResponse +} + +// groups messages together into appropriately-sized batches for sending to the broker +// handles state related to retries etc +type brokerProducer struct { + parent *asyncProducer + broker *Broker + + input <-chan *ProducerMessage + output chan<- *produceSet + responses <-chan *brokerProducerResponse + + buffer *produceSet + timer <-chan time.Time + timerFired bool + + closing error + currentRetries map[string]map[int32]error +} + +func (bp *brokerProducer) run() { + var output chan<- *produceSet + Logger.Printf("producer/broker/%d starting up\n", bp.broker.ID()) + + for { + select { + case msg := <-bp.input: + if msg == nil { + bp.shutdown() + return + } + + if msg.flags&syn == syn { + Logger.Printf("producer/broker/%d state change to [open] on %s/%d\n", + bp.broker.ID(), msg.Topic, msg.Partition) + if bp.currentRetries[msg.Topic] == nil { + bp.currentRetries[msg.Topic] = make(map[int32]error) + } + bp.currentRetries[msg.Topic][msg.Partition] = nil + bp.parent.inFlight.Done() + continue + } + + if reason := bp.needsRetry(msg); reason != nil { + bp.parent.retryMessage(msg, reason) + + if bp.closing == nil && msg.flags&fin == fin { + // we were retrying this partition but we can start processing again + delete(bp.currentRetries[msg.Topic], msg.Partition) + Logger.Printf("producer/broker/%d state change to [closed] on %s/%d\n", + bp.broker.ID(), msg.Topic, msg.Partition) + } + + continue + } + + if bp.buffer.wouldOverflow(msg) { + if err := bp.waitForSpace(msg); err != nil { + bp.parent.retryMessage(msg, err) + continue + } + } + + if err := bp.buffer.add(msg); err != nil { + bp.parent.returnError(msg, err) + continue + } + + if bp.parent.conf.Producer.Flush.Frequency > 0 && bp.timer == nil { + bp.timer = time.After(bp.parent.conf.Producer.Flush.Frequency) + } + case <-bp.timer: + bp.timerFired = true + case output <- bp.buffer: + bp.rollOver() + case response := <-bp.responses: + bp.handleResponse(response) + } + + if bp.timerFired || bp.buffer.readyToFlush() { + output = bp.output + } else { + output = nil + } + } +} + +func (bp *brokerProducer) shutdown() { + for !bp.buffer.empty() { + select { + case response := <-bp.responses: + bp.handleResponse(response) + case bp.output <- bp.buffer: + bp.rollOver() + } + } + close(bp.output) + for response := range bp.responses { + bp.handleResponse(response) + } + + Logger.Printf("producer/broker/%d shut down\n", bp.broker.ID()) +} + +func (bp *brokerProducer) needsRetry(msg *ProducerMessage) error { + if bp.closing != nil { + return bp.closing + } + + return bp.currentRetries[msg.Topic][msg.Partition] +} + +func (bp *brokerProducer) waitForSpace(msg *ProducerMessage) error { + Logger.Printf("producer/broker/%d maximum request accumulated, waiting for space\n", bp.broker.ID()) + + for { + select { + case response := <-bp.responses: + bp.handleResponse(response) + // handling a response can change our state, so re-check some things + if reason := bp.needsRetry(msg); reason != nil { + return reason + } else if !bp.buffer.wouldOverflow(msg) { + return nil + } + case bp.output <- bp.buffer: + bp.rollOver() + return nil + } + } +} + +func (bp *brokerProducer) rollOver() { + bp.timer = nil + bp.timerFired = false + bp.buffer = newProduceSet(bp.parent) +} + +func (bp *brokerProducer) handleResponse(response *brokerProducerResponse) { + if response.err != nil { + bp.handleError(response.set, response.err) + } else { + bp.handleSuccess(response.set, response.res) + } + + if bp.buffer.empty() { + bp.rollOver() // this can happen if the response invalidated our buffer + } +} + +func (bp *brokerProducer) handleSuccess(sent *produceSet, response *ProduceResponse) { + // we iterate through the blocks in the request set, not the response, so that we notice + // if the response is missing a block completely + sent.eachPartition(func(topic string, partition int32, msgs []*ProducerMessage) { + if response == nil { + // this only happens when RequiredAcks is NoResponse, so we have to assume success + bp.parent.returnSuccesses(msgs) + return + } + + block := response.GetBlock(topic, partition) + if block == nil { + bp.parent.returnErrors(msgs, ErrIncompleteResponse) + return + } + + switch block.Err { + // Success + case ErrNoError: + if bp.parent.conf.Version.IsAtLeast(V0_10_0_0) && !block.Timestamp.IsZero() { + for _, msg := range msgs { + msg.Timestamp = block.Timestamp + } + } + for i, msg := range msgs { + msg.Offset = block.Offset + int64(i) + } + bp.parent.returnSuccesses(msgs) + // Retriable errors + case ErrInvalidMessage, ErrUnknownTopicOrPartition, ErrLeaderNotAvailable, ErrNotLeaderForPartition, + ErrRequestTimedOut, ErrNotEnoughReplicas, ErrNotEnoughReplicasAfterAppend: + Logger.Printf("producer/broker/%d state change to [retrying] on %s/%d because %v\n", + bp.broker.ID(), topic, partition, block.Err) + bp.currentRetries[topic][partition] = block.Err + bp.parent.retryMessages(msgs, block.Err) + bp.parent.retryMessages(bp.buffer.dropPartition(topic, partition), block.Err) + // Other non-retriable errors + default: + bp.parent.returnErrors(msgs, block.Err) + } + }) +} + +func (bp *brokerProducer) handleError(sent *produceSet, err error) { + switch err.(type) { + case PacketEncodingError: + sent.eachPartition(func(topic string, partition int32, msgs []*ProducerMessage) { + bp.parent.returnErrors(msgs, err) + }) + default: + Logger.Printf("producer/broker/%d state change to [closing] because %s\n", bp.broker.ID(), err) + bp.parent.abandonBrokerConnection(bp.broker) + _ = bp.broker.Close() + bp.closing = err + sent.eachPartition(func(topic string, partition int32, msgs []*ProducerMessage) { + bp.parent.retryMessages(msgs, err) + }) + bp.buffer.eachPartition(func(topic string, partition int32, msgs []*ProducerMessage) { + bp.parent.retryMessages(msgs, err) + }) + bp.rollOver() + } +} + +// singleton +// effectively a "bridge" between the flushers and the dispatcher in order to avoid deadlock +// based on https://godoc.org/github.com/eapache/channels#InfiniteChannel +func (p *asyncProducer) retryHandler() { + var msg *ProducerMessage + buf := queue.New() + + for { + if buf.Length() == 0 { + msg = <-p.retries + } else { + select { + case msg = <-p.retries: + case p.input <- buf.Peek().(*ProducerMessage): + buf.Remove() + continue + } + } + + if msg == nil { + return + } + + buf.Add(msg) + } +} + +// utility functions + +func (p *asyncProducer) shutdown() { + Logger.Println("Producer shutting down.") + p.inFlight.Add(1) + p.input <- &ProducerMessage{flags: shutdown} + + p.inFlight.Wait() + + if p.ownClient { + err := p.client.Close() + if err != nil { + Logger.Println("producer/shutdown failed to close the embedded client:", err) + } + } + + close(p.input) + close(p.retries) + close(p.errors) + close(p.successes) +} + +func (p *asyncProducer) returnError(msg *ProducerMessage, err error) { + msg.clear() + pErr := &ProducerError{Msg: msg, Err: err} + if p.conf.Producer.Return.Errors { + p.errors <- pErr + } else { + Logger.Println(pErr) + } + p.inFlight.Done() +} + +func (p *asyncProducer) returnErrors(batch []*ProducerMessage, err error) { + for _, msg := range batch { + p.returnError(msg, err) + } +} + +func (p *asyncProducer) returnSuccesses(batch []*ProducerMessage) { + for _, msg := range batch { + if p.conf.Producer.Return.Successes { + msg.clear() + p.successes <- msg + } + p.inFlight.Done() + } +} + +func (p *asyncProducer) retryMessage(msg *ProducerMessage, err error) { + if msg.retries >= p.conf.Producer.Retry.Max { + p.returnError(msg, err) + } else { + msg.retries++ + p.retries <- msg + } +} + +func (p *asyncProducer) retryMessages(batch []*ProducerMessage, err error) { + for _, msg := range batch { + p.retryMessage(msg, err) + } +} + +func (p *asyncProducer) getBrokerProducer(broker *Broker) chan<- *ProducerMessage { + p.brokerLock.Lock() + defer p.brokerLock.Unlock() + + bp := p.brokers[broker] + + if bp == nil { + bp = p.newBrokerProducer(broker) + p.brokers[broker] = bp + p.brokerRefs[bp] = 0 + } + + p.brokerRefs[bp]++ + + return bp +} + +func (p *asyncProducer) unrefBrokerProducer(broker *Broker, bp chan<- *ProducerMessage) { + p.brokerLock.Lock() + defer p.brokerLock.Unlock() + + p.brokerRefs[bp]-- + if p.brokerRefs[bp] == 0 { + close(bp) + delete(p.brokerRefs, bp) + + if p.brokers[broker] == bp { + delete(p.brokers, broker) + } + } +} + +func (p *asyncProducer) abandonBrokerConnection(broker *Broker) { + p.brokerLock.Lock() + defer p.brokerLock.Unlock() + + delete(p.brokers, broker) +} diff --git a/vendor/github.com/Shopify/sarama/balance_strategy.go b/vendor/github.com/Shopify/sarama/balance_strategy.go new file mode 100644 index 00000000..e78988d7 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/balance_strategy.go @@ -0,0 +1,129 @@ +package sarama + +import ( + "math" + "sort" +) + +// BalanceStrategyPlan is the results of any BalanceStrategy.Plan attempt. +// It contains an allocation of topic/partitions by memberID in the form of +// a `memberID -> topic -> partitions` map. +type BalanceStrategyPlan map[string]map[string][]int32 + +// Add assigns a topic with a number partitions to a member. +func (p BalanceStrategyPlan) Add(memberID, topic string, partitions ...int32) { + if len(partitions) == 0 { + return + } + if _, ok := p[memberID]; !ok { + p[memberID] = make(map[string][]int32, 1) + } + p[memberID][topic] = append(p[memberID][topic], partitions...) +} + +// -------------------------------------------------------------------- + +// BalanceStrategy is used to balance topics and partitions +// across memebers of a consumer group +type BalanceStrategy interface { + // Name uniquely identifies the strategy. + Name() string + + // Plan accepts a map of `memberID -> metadata` and a map of `topic -> partitions` + // and returns a distribution plan. + Plan(members map[string]ConsumerGroupMemberMetadata, topics map[string][]int32) (BalanceStrategyPlan, error) +} + +// -------------------------------------------------------------------- + +// BalanceStrategyRange is the default and assigns partitions as ranges to consumer group members. +// Example with one topic T with six partitions (0..5) and two members (M1, M2): +// M1: {T: [0, 1, 2]} +// M2: {T: [3, 4, 5]} +var BalanceStrategyRange = &balanceStrategy{ + name: "range", + coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) { + step := float64(len(partitions)) / float64(len(memberIDs)) + + for i, memberID := range memberIDs { + pos := float64(i) + min := int(math.Floor(pos*step + 0.5)) + max := int(math.Floor((pos+1)*step + 0.5)) + plan.Add(memberID, topic, partitions[min:max]...) + } + }, +} + +// BalanceStrategyRoundRobin assigns partitions to members in alternating order. +// Example with topic T with six partitions (0..5) and two members (M1, M2): +// M1: {T: [0, 2, 4]} +// M2: {T: [1, 3, 5]} +var BalanceStrategyRoundRobin = &balanceStrategy{ + name: "roundrobin", + coreFn: func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) { + for i, part := range partitions { + memberID := memberIDs[i%len(memberIDs)] + plan.Add(memberID, topic, part) + } + }, +} + +// -------------------------------------------------------------------- + +type balanceStrategy struct { + name string + coreFn func(plan BalanceStrategyPlan, memberIDs []string, topic string, partitions []int32) +} + +// Name implements BalanceStrategy. +func (s *balanceStrategy) Name() string { return s.name } + +// Balance implements BalanceStrategy. +func (s *balanceStrategy) Plan(members map[string]ConsumerGroupMemberMetadata, topics map[string][]int32) (BalanceStrategyPlan, error) { + // Build members by topic map + mbt := make(map[string][]string) + for memberID, meta := range members { + for _, topic := range meta.Topics { + mbt[topic] = append(mbt[topic], memberID) + } + } + + // Sort members for each topic + for topic, memberIDs := range mbt { + sort.Sort(&balanceStrategySortable{ + topic: topic, + memberIDs: memberIDs, + }) + } + + // Assemble plan + plan := make(BalanceStrategyPlan, len(members)) + for topic, memberIDs := range mbt { + s.coreFn(plan, memberIDs, topic, topics[topic]) + } + return plan, nil +} + +type balanceStrategySortable struct { + topic string + memberIDs []string +} + +func (p balanceStrategySortable) Len() int { return len(p.memberIDs) } +func (p balanceStrategySortable) Swap(i, j int) { + p.memberIDs[i], p.memberIDs[j] = p.memberIDs[j], p.memberIDs[i] +} +func (p balanceStrategySortable) Less(i, j int) bool { + return balanceStrategyHashValue(p.topic, p.memberIDs[i]) < balanceStrategyHashValue(p.topic, p.memberIDs[j]) +} + +func balanceStrategyHashValue(vv ...string) uint32 { + h := uint32(2166136261) + for _, s := range vv { + for _, c := range s { + h ^= uint32(c) + h *= 16777619 + } + } + return h +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/broker.go b/vendor/github.com/Shopify/sarama/broker.go similarity index 93% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/broker.go rename to vendor/github.com/Shopify/sarama/broker.go index b759f8f7..26f63d51 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/broker.go +++ b/vendor/github.com/Shopify/sarama/broker.go @@ -18,6 +18,7 @@ import ( type Broker struct { id int32 addr string + rack *string conf *Config correlationID int32 @@ -85,6 +86,7 @@ func (b *Broker) Open(conf *Config) error { dialer := net.Dialer{ Timeout: conf.Net.DialTimeout, KeepAlive: conf.Net.KeepAlive, + LocalAddr: conf.Net.LocalAddr, } if conf.Net.TLS.Enable { @@ -230,6 +232,18 @@ func (b *Broker) GetConsumerMetadata(request *ConsumerMetadataRequest) (*Consume return response, nil } +func (b *Broker) FindCoordinator(request *FindCoordinatorRequest) (*FindCoordinatorResponse, error) { + response := new(FindCoordinatorResponse) + + err := b.sendAndReceive(request, response) + + if err != nil { + return nil, err + } + + return response, nil +} + func (b *Broker) GetAvailableOffsets(request *OffsetRequest) (*OffsetResponse, error) { response := new(OffsetResponse) @@ -395,6 +409,28 @@ func (b *Broker) DeleteTopics(request *DeleteTopicsRequest) (*DeleteTopicsRespon return response, nil } +func (b *Broker) CreatePartitions(request *CreatePartitionsRequest) (*CreatePartitionsResponse, error) { + response := new(CreatePartitionsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + +func (b *Broker) DeleteRecords(request *DeleteRecordsRequest) (*DeleteRecordsResponse, error) { + response := new(DeleteRecordsResponse) + + err := b.sendAndReceive(request, response) + if err != nil { + return nil, err + } + + return response, nil +} + func (b *Broker) DescribeAcls(request *DescribeAclsRequest) (*DescribeAclsResponse, error) { response := new(DescribeAclsResponse) @@ -504,6 +540,17 @@ func (b *Broker) AlterConfigs(request *AlterConfigsRequest) (*AlterConfigsRespon return response, nil } + +func (b *Broker) DeleteGroups(request *DeleteGroupsRequest) (*DeleteGroupsResponse, error) { + response := new(DeleteGroupsResponse) + + if err := b.sendAndReceive(request, response); err != nil { + return nil, err + } + + return response, nil +} + func (b *Broker) send(rb protocolBody, promiseResponse bool) (*responsePromise, error) { b.lock.Lock() defer b.lock.Unlock() @@ -569,7 +616,7 @@ func (b *Broker) sendAndReceive(req protocolBody, res versionedDecoder) error { } } -func (b *Broker) decode(pd packetDecoder) (err error) { +func (b *Broker) decode(pd packetDecoder, version int16) (err error) { b.id, err = pd.getInt32() if err != nil { return err @@ -585,6 +632,13 @@ func (b *Broker) decode(pd packetDecoder) (err error) { return err } + if version >= 1 { + b.rack, err = pd.getNullableString() + if err != nil { + return err + } + } + b.addr = net.JoinHostPort(host, fmt.Sprint(port)) if _, _, err := net.SplitHostPort(b.addr); err != nil { return err @@ -593,7 +647,7 @@ func (b *Broker) decode(pd packetDecoder) (err error) { return nil } -func (b *Broker) encode(pe packetEncoder) (err error) { +func (b *Broker) encode(pe packetEncoder, version int16) (err error) { host, portstr, err := net.SplitHostPort(b.addr) if err != nil { @@ -613,6 +667,13 @@ func (b *Broker) encode(pe packetEncoder) (err error) { pe.putInt32(int32(port)) + if version >= 1 { + err = pe.putNullableString(b.rack) + if err != nil { + return err + } + } + return nil } diff --git a/vendor/github.com/Shopify/sarama/client.go b/vendor/github.com/Shopify/sarama/client.go new file mode 100644 index 00000000..ad805346 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/client.go @@ -0,0 +1,876 @@ +package sarama + +import ( + "math/rand" + "sort" + "sync" + "time" +) + +// Client is a generic Kafka client. It manages connections to one or more Kafka brokers. +// You MUST call Close() on a client to avoid leaks, it will not be garbage-collected +// automatically when it passes out of scope. It is safe to share a client amongst many +// users, however Kafka will process requests from a single client strictly in serial, +// so it is generally more efficient to use the default one client per producer/consumer. +type Client interface { + // Config returns the Config struct of the client. This struct should not be + // altered after it has been created. + Config() *Config + + // Controller returns the cluster controller broker. Requires Kafka 0.10 or higher. + Controller() (*Broker, error) + + // Brokers returns the current set of active brokers as retrieved from cluster metadata. + Brokers() []*Broker + + // Topics returns the set of available topics as retrieved from cluster metadata. + Topics() ([]string, error) + + // Partitions returns the sorted list of all partition IDs for the given topic. + Partitions(topic string) ([]int32, error) + + // WritablePartitions returns the sorted list of all writable partition IDs for + // the given topic, where "writable" means "having a valid leader accepting + // writes". + WritablePartitions(topic string) ([]int32, error) + + // Leader returns the broker object that is the leader of the current + // topic/partition, as determined by querying the cluster metadata. + Leader(topic string, partitionID int32) (*Broker, error) + + // Replicas returns the set of all replica IDs for the given partition. + Replicas(topic string, partitionID int32) ([]int32, error) + + // InSyncReplicas returns the set of all in-sync replica IDs for the given + // partition. In-sync replicas are replicas which are fully caught up with + // the partition leader. + InSyncReplicas(topic string, partitionID int32) ([]int32, error) + + // RefreshMetadata takes a list of topics and queries the cluster to refresh the + // available metadata for those topics. If no topics are provided, it will refresh + // metadata for all topics. + RefreshMetadata(topics ...string) error + + // GetOffset queries the cluster to get the most recent available offset at the + // given time (in milliseconds) on the topic/partition combination. + // Time should be OffsetOldest for the earliest available offset, + // OffsetNewest for the offset of the message that will be produced next, or a time. + GetOffset(topic string, partitionID int32, time int64) (int64, error) + + // Coordinator returns the coordinating broker for a consumer group. It will + // return a locally cached value if it's available. You can call + // RefreshCoordinator to update the cached value. This function only works on + // Kafka 0.8.2 and higher. + Coordinator(consumerGroup string) (*Broker, error) + + // RefreshCoordinator retrieves the coordinator for a consumer group and stores it + // in local cache. This function only works on Kafka 0.8.2 and higher. + RefreshCoordinator(consumerGroup string) error + + // Close shuts down all broker connections managed by this client. It is required + // to call this function before a client object passes out of scope, as it will + // otherwise leak memory. You must close any Producers or Consumers using a client + // before you close the client. + Close() error + + // Closed returns true if the client has already had Close called on it + Closed() bool +} + +const ( + // OffsetNewest stands for the log head offset, i.e. the offset that will be + // assigned to the next message that will be produced to the partition. You + // can send this to a client's GetOffset method to get this offset, or when + // calling ConsumePartition to start consuming new messages. + OffsetNewest int64 = -1 + // OffsetOldest stands for the oldest offset available on the broker for a + // partition. You can send this to a client's GetOffset method to get this + // offset, or when calling ConsumePartition to start consuming from the + // oldest offset that is still available on the broker. + OffsetOldest int64 = -2 +) + +type client struct { + conf *Config + closer, closed chan none // for shutting down background metadata updater + + // the broker addresses given to us through the constructor are not guaranteed to be returned in + // the cluster metadata (I *think* it only returns brokers who are currently leading partitions?) + // so we store them separately + seedBrokers []*Broker + deadSeeds []*Broker + + controllerID int32 // cluster controller broker id + brokers map[int32]*Broker // maps broker ids to brokers + metadata map[string]map[int32]*PartitionMetadata // maps topics to partition ids to metadata + metadataTopics map[string]none // topics that need to collect metadata + coordinators map[string]int32 // Maps consumer group names to coordinating broker IDs + + // If the number of partitions is large, we can get some churn calling cachedPartitions, + // so the result is cached. It is important to update this value whenever metadata is changed + cachedPartitionsResults map[string][maxPartitionIndex][]int32 + + lock sync.RWMutex // protects access to the maps that hold cluster state. +} + +// NewClient creates a new Client. It connects to one of the given broker addresses +// and uses that broker to automatically fetch metadata on the rest of the kafka cluster. If metadata cannot +// be retrieved from any of the given broker addresses, the client is not created. +func NewClient(addrs []string, conf *Config) (Client, error) { + Logger.Println("Initializing new client") + + if conf == nil { + conf = NewConfig() + } + + if err := conf.Validate(); err != nil { + return nil, err + } + + if len(addrs) < 1 { + return nil, ConfigurationError("You must provide at least one broker address") + } + + client := &client{ + conf: conf, + closer: make(chan none), + closed: make(chan none), + brokers: make(map[int32]*Broker), + metadata: make(map[string]map[int32]*PartitionMetadata), + metadataTopics: make(map[string]none), + cachedPartitionsResults: make(map[string][maxPartitionIndex][]int32), + coordinators: make(map[string]int32), + } + + random := rand.New(rand.NewSource(time.Now().UnixNano())) + for _, index := range random.Perm(len(addrs)) { + client.seedBrokers = append(client.seedBrokers, NewBroker(addrs[index])) + } + + if conf.Metadata.Full { + // do an initial fetch of all cluster metadata by specifying an empty list of topics + err := client.RefreshMetadata() + switch err { + case nil: + break + case ErrLeaderNotAvailable, ErrReplicaNotAvailable, ErrTopicAuthorizationFailed, ErrClusterAuthorizationFailed: + // indicates that maybe part of the cluster is down, but is not fatal to creating the client + Logger.Println(err) + default: + close(client.closed) // we haven't started the background updater yet, so we have to do this manually + _ = client.Close() + return nil, err + } + } + go withRecover(client.backgroundMetadataUpdater) + + Logger.Println("Successfully initialized new client") + + return client, nil +} + +func (client *client) Config() *Config { + return client.conf +} + +func (client *client) Brokers() []*Broker { + client.lock.RLock() + defer client.lock.RUnlock() + brokers := make([]*Broker, 0) + for _, broker := range client.brokers { + brokers = append(brokers, broker) + } + return brokers +} + +func (client *client) Close() error { + if client.Closed() { + // Chances are this is being called from a defer() and the error will go unobserved + // so we go ahead and log the event in this case. + Logger.Printf("Close() called on already closed client") + return ErrClosedClient + } + + // shutdown and wait for the background thread before we take the lock, to avoid races + close(client.closer) + <-client.closed + + client.lock.Lock() + defer client.lock.Unlock() + Logger.Println("Closing Client") + + for _, broker := range client.brokers { + safeAsyncClose(broker) + } + + for _, broker := range client.seedBrokers { + safeAsyncClose(broker) + } + + client.brokers = nil + client.metadata = nil + client.metadataTopics = nil + + return nil +} + +func (client *client) Closed() bool { + return client.brokers == nil +} + +func (client *client) Topics() ([]string, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + client.lock.RLock() + defer client.lock.RUnlock() + + ret := make([]string, 0, len(client.metadata)) + for topic := range client.metadata { + ret = append(ret, topic) + } + + return ret, nil +} + +func (client *client) MetadataTopics() ([]string, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + client.lock.RLock() + defer client.lock.RUnlock() + + ret := make([]string, 0, len(client.metadataTopics)) + for topic := range client.metadataTopics { + ret = append(ret, topic) + } + + return ret, nil +} + +func (client *client) Partitions(topic string) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + partitions := client.cachedPartitions(topic, allPartitions) + + if len(partitions) == 0 { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + partitions = client.cachedPartitions(topic, allPartitions) + } + + if partitions == nil { + return nil, ErrUnknownTopicOrPartition + } + + return partitions, nil +} + +func (client *client) WritablePartitions(topic string) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + partitions := client.cachedPartitions(topic, writablePartitions) + + // len==0 catches when it's nil (no such topic) and the odd case when every single + // partition is undergoing leader election simultaneously. Callers have to be able to handle + // this function returning an empty slice (which is a valid return value) but catching it + // here the first time (note we *don't* catch it below where we return ErrUnknownTopicOrPartition) triggers + // a metadata refresh as a nicety so callers can just try again and don't have to manually + // trigger a refresh (otherwise they'd just keep getting a stale cached copy). + if len(partitions) == 0 { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + partitions = client.cachedPartitions(topic, writablePartitions) + } + + if partitions == nil { + return nil, ErrUnknownTopicOrPartition + } + + return partitions, nil +} + +func (client *client) Replicas(topic string, partitionID int32) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + metadata := client.cachedMetadata(topic, partitionID) + + if metadata == nil { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + metadata = client.cachedMetadata(topic, partitionID) + } + + if metadata == nil { + return nil, ErrUnknownTopicOrPartition + } + + if metadata.Err == ErrReplicaNotAvailable { + return dupInt32Slice(metadata.Replicas), metadata.Err + } + return dupInt32Slice(metadata.Replicas), nil +} + +func (client *client) InSyncReplicas(topic string, partitionID int32) ([]int32, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + metadata := client.cachedMetadata(topic, partitionID) + + if metadata == nil { + err := client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + metadata = client.cachedMetadata(topic, partitionID) + } + + if metadata == nil { + return nil, ErrUnknownTopicOrPartition + } + + if metadata.Err == ErrReplicaNotAvailable { + return dupInt32Slice(metadata.Isr), metadata.Err + } + return dupInt32Slice(metadata.Isr), nil +} + +func (client *client) Leader(topic string, partitionID int32) (*Broker, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + leader, err := client.cachedLeader(topic, partitionID) + + if leader == nil { + err = client.RefreshMetadata(topic) + if err != nil { + return nil, err + } + leader, err = client.cachedLeader(topic, partitionID) + } + + return leader, err +} + +func (client *client) RefreshMetadata(topics ...string) error { + if client.Closed() { + return ErrClosedClient + } + + // Prior to 0.8.2, Kafka will throw exceptions on an empty topic and not return a proper + // error. This handles the case by returning an error instead of sending it + // off to Kafka. See: https://github.com/Shopify/sarama/pull/38#issuecomment-26362310 + for _, topic := range topics { + if len(topic) == 0 { + return ErrInvalidTopic // this is the error that 0.8.2 and later correctly return + } + } + + return client.tryRefreshMetadata(topics, client.conf.Metadata.Retry.Max) +} + +func (client *client) GetOffset(topic string, partitionID int32, time int64) (int64, error) { + if client.Closed() { + return -1, ErrClosedClient + } + + offset, err := client.getOffset(topic, partitionID, time) + + if err != nil { + if err := client.RefreshMetadata(topic); err != nil { + return -1, err + } + return client.getOffset(topic, partitionID, time) + } + + return offset, err +} + +func (client *client) Controller() (*Broker, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + if !client.conf.Version.IsAtLeast(V0_10_0_0) { + return nil, ErrUnsupportedVersion + } + + controller := client.cachedController() + if controller == nil { + if err := client.refreshMetadata(); err != nil { + return nil, err + } + controller = client.cachedController() + } + + if controller == nil { + return nil, ErrControllerNotAvailable + } + + _ = controller.Open(client.conf) + return controller, nil +} + +func (client *client) Coordinator(consumerGroup string) (*Broker, error) { + if client.Closed() { + return nil, ErrClosedClient + } + + coordinator := client.cachedCoordinator(consumerGroup) + + if coordinator == nil { + if err := client.RefreshCoordinator(consumerGroup); err != nil { + return nil, err + } + coordinator = client.cachedCoordinator(consumerGroup) + } + + if coordinator == nil { + return nil, ErrConsumerCoordinatorNotAvailable + } + + _ = coordinator.Open(client.conf) + return coordinator, nil +} + +func (client *client) RefreshCoordinator(consumerGroup string) error { + if client.Closed() { + return ErrClosedClient + } + + response, err := client.getConsumerMetadata(consumerGroup, client.conf.Metadata.Retry.Max) + if err != nil { + return err + } + + client.lock.Lock() + defer client.lock.Unlock() + client.registerBroker(response.Coordinator) + client.coordinators[consumerGroup] = response.Coordinator.ID() + return nil +} + +// private broker management helpers + +// registerBroker makes sure a broker received by a Metadata or Coordinator request is registered +// in the brokers map. It returns the broker that is registered, which may be the provided broker, +// or a previously registered Broker instance. You must hold the write lock before calling this function. +func (client *client) registerBroker(broker *Broker) { + if client.brokers[broker.ID()] == nil { + client.brokers[broker.ID()] = broker + Logger.Printf("client/brokers registered new broker #%d at %s", broker.ID(), broker.Addr()) + } else if broker.Addr() != client.brokers[broker.ID()].Addr() { + safeAsyncClose(client.brokers[broker.ID()]) + client.brokers[broker.ID()] = broker + Logger.Printf("client/brokers replaced registered broker #%d with %s", broker.ID(), broker.Addr()) + } +} + +// deregisterBroker removes a broker from the seedsBroker list, and if it's +// not the seedbroker, removes it from brokers map completely. +func (client *client) deregisterBroker(broker *Broker) { + client.lock.Lock() + defer client.lock.Unlock() + + if len(client.seedBrokers) > 0 && broker == client.seedBrokers[0] { + client.deadSeeds = append(client.deadSeeds, broker) + client.seedBrokers = client.seedBrokers[1:] + } else { + // we do this so that our loop in `tryRefreshMetadata` doesn't go on forever, + // but we really shouldn't have to; once that loop is made better this case can be + // removed, and the function generally can be renamed from `deregisterBroker` to + // `nextSeedBroker` or something + Logger.Printf("client/brokers deregistered broker #%d at %s", broker.ID(), broker.Addr()) + delete(client.brokers, broker.ID()) + } +} + +func (client *client) resurrectDeadBrokers() { + client.lock.Lock() + defer client.lock.Unlock() + + Logger.Printf("client/brokers resurrecting %d dead seed brokers", len(client.deadSeeds)) + client.seedBrokers = append(client.seedBrokers, client.deadSeeds...) + client.deadSeeds = nil +} + +func (client *client) any() *Broker { + client.lock.RLock() + defer client.lock.RUnlock() + + if len(client.seedBrokers) > 0 { + _ = client.seedBrokers[0].Open(client.conf) + return client.seedBrokers[0] + } + + // not guaranteed to be random *or* deterministic + for _, broker := range client.brokers { + _ = broker.Open(client.conf) + return broker + } + + return nil +} + +// private caching/lazy metadata helpers + +type partitionType int + +const ( + allPartitions partitionType = iota + writablePartitions + // If you add any more types, update the partition cache in update() + + // Ensure this is the last partition type value + maxPartitionIndex +) + +func (client *client) cachedMetadata(topic string, partitionID int32) *PartitionMetadata { + client.lock.RLock() + defer client.lock.RUnlock() + + partitions := client.metadata[topic] + if partitions != nil { + return partitions[partitionID] + } + + return nil +} + +func (client *client) cachedPartitions(topic string, partitionSet partitionType) []int32 { + client.lock.RLock() + defer client.lock.RUnlock() + + partitions, exists := client.cachedPartitionsResults[topic] + + if !exists { + return nil + } + return partitions[partitionSet] +} + +func (client *client) setPartitionCache(topic string, partitionSet partitionType) []int32 { + partitions := client.metadata[topic] + + if partitions == nil { + return nil + } + + ret := make([]int32, 0, len(partitions)) + for _, partition := range partitions { + if partitionSet == writablePartitions && partition.Err == ErrLeaderNotAvailable { + continue + } + ret = append(ret, partition.ID) + } + + sort.Sort(int32Slice(ret)) + return ret +} + +func (client *client) cachedLeader(topic string, partitionID int32) (*Broker, error) { + client.lock.RLock() + defer client.lock.RUnlock() + + partitions := client.metadata[topic] + if partitions != nil { + metadata, ok := partitions[partitionID] + if ok { + if metadata.Err == ErrLeaderNotAvailable { + return nil, ErrLeaderNotAvailable + } + b := client.brokers[metadata.Leader] + if b == nil { + return nil, ErrLeaderNotAvailable + } + _ = b.Open(client.conf) + return b, nil + } + } + + return nil, ErrUnknownTopicOrPartition +} + +func (client *client) getOffset(topic string, partitionID int32, time int64) (int64, error) { + broker, err := client.Leader(topic, partitionID) + if err != nil { + return -1, err + } + + request := &OffsetRequest{} + if client.conf.Version.IsAtLeast(V0_10_1_0) { + request.Version = 1 + } + request.AddBlock(topic, partitionID, time, 1) + + response, err := broker.GetAvailableOffsets(request) + if err != nil { + _ = broker.Close() + return -1, err + } + + block := response.GetBlock(topic, partitionID) + if block == nil { + _ = broker.Close() + return -1, ErrIncompleteResponse + } + if block.Err != ErrNoError { + return -1, block.Err + } + if len(block.Offsets) != 1 { + return -1, ErrOffsetOutOfRange + } + + return block.Offsets[0], nil +} + +// core metadata update logic + +func (client *client) backgroundMetadataUpdater() { + defer close(client.closed) + + if client.conf.Metadata.RefreshFrequency == time.Duration(0) { + return + } + + ticker := time.NewTicker(client.conf.Metadata.RefreshFrequency) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + if err := client.refreshMetadata(); err != nil { + Logger.Println("Client background metadata update:", err) + } + case <-client.closer: + return + } + } +} + +func (client *client) refreshMetadata() error { + topics := []string{} + + if !client.conf.Metadata.Full { + if specificTopics, err := client.MetadataTopics(); err != nil { + return err + } else if len(specificTopics) == 0 { + return ErrNoTopicsToUpdateMetadata + } else { + topics = specificTopics + } + } + + if err := client.RefreshMetadata(topics...); err != nil { + return err + } + + return nil +} + +func (client *client) tryRefreshMetadata(topics []string, attemptsRemaining int) error { + retry := func(err error) error { + if attemptsRemaining > 0 { + Logger.Printf("client/metadata retrying after %dms... (%d attempts remaining)\n", client.conf.Metadata.Retry.Backoff/time.Millisecond, attemptsRemaining) + time.Sleep(client.conf.Metadata.Retry.Backoff) + return client.tryRefreshMetadata(topics, attemptsRemaining-1) + } + return err + } + + for broker := client.any(); broker != nil; broker = client.any() { + if len(topics) > 0 { + Logger.Printf("client/metadata fetching metadata for %v from broker %s\n", topics, broker.addr) + } else { + Logger.Printf("client/metadata fetching metadata for all topics from broker %s\n", broker.addr) + } + + req := &MetadataRequest{Topics: topics} + if client.conf.Version.IsAtLeast(V0_10_0_0) { + req.Version = 1 + } + response, err := broker.GetMetadata(req) + + switch err.(type) { + case nil: + allKnownMetaData := len(topics) == 0 + // valid response, use it + shouldRetry, err := client.updateMetadata(response, allKnownMetaData) + if shouldRetry { + Logger.Println("client/metadata found some partitions to be leaderless") + return retry(err) // note: err can be nil + } + return err + + case PacketEncodingError: + // didn't even send, return the error + return err + default: + // some other error, remove that broker and try again + Logger.Println("client/metadata got error from broker while fetching metadata:", err) + _ = broker.Close() + client.deregisterBroker(broker) + } + } + + Logger.Println("client/metadata no available broker to send metadata request to") + client.resurrectDeadBrokers() + return retry(ErrOutOfBrokers) +} + +// if no fatal error, returns a list of topics that need retrying due to ErrLeaderNotAvailable +func (client *client) updateMetadata(data *MetadataResponse, allKnownMetaData bool) (retry bool, err error) { + client.lock.Lock() + defer client.lock.Unlock() + + // For all the brokers we received: + // - if it is a new ID, save it + // - if it is an existing ID, but the address we have is stale, discard the old one and save it + // - otherwise ignore it, replacing our existing one would just bounce the connection + for _, broker := range data.Brokers { + client.registerBroker(broker) + } + + client.controllerID = data.ControllerID + + if allKnownMetaData { + client.metadata = make(map[string]map[int32]*PartitionMetadata) + client.metadataTopics = make(map[string]none) + client.cachedPartitionsResults = make(map[string][maxPartitionIndex][]int32) + } + for _, topic := range data.Topics { + // topics must be added firstly to `metadataTopics` to guarantee that all + // requested topics must be recorded to keep them trackable for periodically + // metadata refresh. + if _, exists := client.metadataTopics[topic.Name]; !exists { + client.metadataTopics[topic.Name] = none{} + } + delete(client.metadata, topic.Name) + delete(client.cachedPartitionsResults, topic.Name) + + switch topic.Err { + case ErrNoError: + break + case ErrInvalidTopic, ErrTopicAuthorizationFailed: // don't retry, don't store partial results + err = topic.Err + continue + case ErrUnknownTopicOrPartition: // retry, do not store partial partition results + err = topic.Err + retry = true + continue + case ErrLeaderNotAvailable: // retry, but store partial partition results + retry = true + break + default: // don't retry, don't store partial results + Logger.Printf("Unexpected topic-level metadata error: %s", topic.Err) + err = topic.Err + continue + } + + client.metadata[topic.Name] = make(map[int32]*PartitionMetadata, len(topic.Partitions)) + for _, partition := range topic.Partitions { + client.metadata[topic.Name][partition.ID] = partition + if partition.Err == ErrLeaderNotAvailable { + retry = true + } + } + + var partitionCache [maxPartitionIndex][]int32 + partitionCache[allPartitions] = client.setPartitionCache(topic.Name, allPartitions) + partitionCache[writablePartitions] = client.setPartitionCache(topic.Name, writablePartitions) + client.cachedPartitionsResults[topic.Name] = partitionCache + } + + return +} + +func (client *client) cachedCoordinator(consumerGroup string) *Broker { + client.lock.RLock() + defer client.lock.RUnlock() + if coordinatorID, ok := client.coordinators[consumerGroup]; ok { + return client.brokers[coordinatorID] + } + return nil +} + +func (client *client) cachedController() *Broker { + client.lock.RLock() + defer client.lock.RUnlock() + + return client.brokers[client.controllerID] +} + +func (client *client) getConsumerMetadata(consumerGroup string, attemptsRemaining int) (*FindCoordinatorResponse, error) { + retry := func(err error) (*FindCoordinatorResponse, error) { + if attemptsRemaining > 0 { + Logger.Printf("client/coordinator retrying after %dms... (%d attempts remaining)\n", client.conf.Metadata.Retry.Backoff/time.Millisecond, attemptsRemaining) + time.Sleep(client.conf.Metadata.Retry.Backoff) + return client.getConsumerMetadata(consumerGroup, attemptsRemaining-1) + } + return nil, err + } + + for broker := client.any(); broker != nil; broker = client.any() { + Logger.Printf("client/coordinator requesting coordinator for consumergroup %s from %s\n", consumerGroup, broker.Addr()) + + request := new(FindCoordinatorRequest) + request.CoordinatorKey = consumerGroup + request.CoordinatorType = CoordinatorGroup + + response, err := broker.FindCoordinator(request) + + if err != nil { + Logger.Printf("client/coordinator request to broker %s failed: %s\n", broker.Addr(), err) + + switch err.(type) { + case PacketEncodingError: + return nil, err + default: + _ = broker.Close() + client.deregisterBroker(broker) + continue + } + } + + switch response.Err { + case ErrNoError: + Logger.Printf("client/coordinator coordinator for consumergroup %s is #%d (%s)\n", consumerGroup, response.Coordinator.ID(), response.Coordinator.Addr()) + return response, nil + + case ErrConsumerCoordinatorNotAvailable: + Logger.Printf("client/coordinator coordinator for consumer group %s is not available\n", consumerGroup) + + // This is very ugly, but this scenario will only happen once per cluster. + // The __consumer_offsets topic only has to be created one time. + // The number of partitions not configurable, but partition 0 should always exist. + if _, err := client.Leader("__consumer_offsets", 0); err != nil { + Logger.Printf("client/coordinator the __consumer_offsets topic is not initialized completely yet. Waiting 2 seconds...\n") + time.Sleep(2 * time.Second) + } + + return retry(ErrConsumerCoordinatorNotAvailable) + default: + return nil, response.Err + } + } + + Logger.Println("client/coordinator no available broker to send consumer metadata request to") + client.resurrectDeadBrokers() + return retry(ErrOutOfBrokers) +} diff --git a/vendor/github.com/Shopify/sarama/config.go b/vendor/github.com/Shopify/sarama/config.go new file mode 100644 index 00000000..faf11e83 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/config.go @@ -0,0 +1,563 @@ +package sarama + +import ( + "compress/gzip" + "crypto/tls" + "fmt" + "io/ioutil" + "net" + "regexp" + "time" + + "github.com/rcrowley/go-metrics" +) + +const defaultClientID = "sarama" + +var validID = regexp.MustCompile(`\A[A-Za-z0-9._-]+\z`) + +// Config is used to pass multiple configuration options to Sarama's constructors. +type Config struct { + // Admin is the namespace for ClusterAdmin properties used by the administrative Kafka client. + Admin struct { + // The maximum duration the administrative Kafka client will wait for ClusterAdmin operations, + // including topics, brokers, configurations and ACLs (defaults to 3 seconds). + Timeout time.Duration + } + + // Net is the namespace for network-level properties used by the Broker, and + // shared by the Client/Producer/Consumer. + Net struct { + // How many outstanding requests a connection is allowed to have before + // sending on it blocks (default 5). + MaxOpenRequests int + + // All three of the below configurations are similar to the + // `socket.timeout.ms` setting in JVM kafka. All of them default + // to 30 seconds. + DialTimeout time.Duration // How long to wait for the initial connection. + ReadTimeout time.Duration // How long to wait for a response. + WriteTimeout time.Duration // How long to wait for a transmit. + + TLS struct { + // Whether or not to use TLS when connecting to the broker + // (defaults to false). + Enable bool + // The TLS configuration to use for secure connections if + // enabled (defaults to nil). + Config *tls.Config + } + + // SASL based authentication with broker. While there are multiple SASL authentication methods + // the current implementation is limited to plaintext (SASL/PLAIN) authentication + SASL struct { + // Whether or not to use SASL authentication when connecting to the broker + // (defaults to false). + Enable bool + // Whether or not to send the Kafka SASL handshake first if enabled + // (defaults to true). You should only set this to false if you're using + // a non-Kafka SASL proxy. + Handshake bool + //username and password for SASL/PLAIN authentication + User string + Password string + } + + // KeepAlive specifies the keep-alive period for an active network connection. + // If zero, keep-alives are disabled. (default is 0: disabled). + KeepAlive time.Duration + + // LocalAddr is the local address to use when dialing an + // address. The address must be of a compatible type for the + // network being dialed. + // If nil, a local address is automatically chosen. + LocalAddr net.Addr + } + + // Metadata is the namespace for metadata management properties used by the + // Client, and shared by the Producer/Consumer. + Metadata struct { + Retry struct { + // The total number of times to retry a metadata request when the + // cluster is in the middle of a leader election (default 3). + Max int + // How long to wait for leader election to occur before retrying + // (default 250ms). Similar to the JVM's `retry.backoff.ms`. + Backoff time.Duration + } + // How frequently to refresh the cluster metadata in the background. + // Defaults to 10 minutes. Set to 0 to disable. Similar to + // `topic.metadata.refresh.interval.ms` in the JVM version. + RefreshFrequency time.Duration + + // Whether to maintain a full set of metadata for all topics, or just + // the minimal set that has been necessary so far. The full set is simpler + // and usually more convenient, but can take up a substantial amount of + // memory if you have many topics and partitions. Defaults to true. + Full bool + } + + // Producer is the namespace for configuration related to producing messages, + // used by the Producer. + Producer struct { + // The maximum permitted size of a message (defaults to 1000000). Should be + // set equal to or smaller than the broker's `message.max.bytes`. + MaxMessageBytes int + // The level of acknowledgement reliability needed from the broker (defaults + // to WaitForLocal). Equivalent to the `request.required.acks` setting of the + // JVM producer. + RequiredAcks RequiredAcks + // The maximum duration the broker will wait the receipt of the number of + // RequiredAcks (defaults to 10 seconds). This is only relevant when + // RequiredAcks is set to WaitForAll or a number > 1. Only supports + // millisecond resolution, nanoseconds will be truncated. Equivalent to + // the JVM producer's `request.timeout.ms` setting. + Timeout time.Duration + // The type of compression to use on messages (defaults to no compression). + // Similar to `compression.codec` setting of the JVM producer. + Compression CompressionCodec + // The level of compression to use on messages. The meaning depends + // on the actual compression type used and defaults to default compression + // level for the codec. + CompressionLevel int + // Generates partitioners for choosing the partition to send messages to + // (defaults to hashing the message key). Similar to the `partitioner.class` + // setting for the JVM producer. + Partitioner PartitionerConstructor + + // Return specifies what channels will be populated. If they are set to true, + // you must read from the respective channels to prevent deadlock. If, + // however, this config is used to create a `SyncProducer`, both must be set + // to true and you shall not read from the channels since the producer does + // this internally. + Return struct { + // If enabled, successfully delivered messages will be returned on the + // Successes channel (default disabled). + Successes bool + + // If enabled, messages that failed to deliver will be returned on the + // Errors channel, including error (default enabled). + Errors bool + } + + // The following config options control how often messages are batched up and + // sent to the broker. By default, messages are sent as fast as possible, and + // all messages received while the current batch is in-flight are placed + // into the subsequent batch. + Flush struct { + // The best-effort number of bytes needed to trigger a flush. Use the + // global sarama.MaxRequestSize to set a hard upper limit. + Bytes int + // The best-effort number of messages needed to trigger a flush. Use + // `MaxMessages` to set a hard upper limit. + Messages int + // The best-effort frequency of flushes. Equivalent to + // `queue.buffering.max.ms` setting of JVM producer. + Frequency time.Duration + // The maximum number of messages the producer will send in a single + // broker request. Defaults to 0 for unlimited. Similar to + // `queue.buffering.max.messages` in the JVM producer. + MaxMessages int + } + + Retry struct { + // The total number of times to retry sending a message (default 3). + // Similar to the `message.send.max.retries` setting of the JVM producer. + Max int + // How long to wait for the cluster to settle between retries + // (default 100ms). Similar to the `retry.backoff.ms` setting of the + // JVM producer. + Backoff time.Duration + } + } + + // Consumer is the namespace for configuration related to consuming messages, + // used by the Consumer. + Consumer struct { + + // Group is the namespace for configuring consumer group. + Group struct { + Session struct { + // The timeout used to detect consumer failures when using Kafka's group management facility. + // The consumer sends periodic heartbeats to indicate its liveness to the broker. + // If no heartbeats are received by the broker before the expiration of this session timeout, + // then the broker will remove this consumer from the group and initiate a rebalance. + // Note that the value must be in the allowable range as configured in the broker configuration + // by `group.min.session.timeout.ms` and `group.max.session.timeout.ms` (default 10s) + Timeout time.Duration + } + Heartbeat struct { + // The expected time between heartbeats to the consumer coordinator when using Kafka's group + // management facilities. Heartbeats are used to ensure that the consumer's session stays active and + // to facilitate rebalancing when new consumers join or leave the group. + // The value must be set lower than Consumer.Group.Session.Timeout, but typically should be set no + // higher than 1/3 of that value. + // It can be adjusted even lower to control the expected time for normal rebalances (default 3s) + Interval time.Duration + } + Rebalance struct { + // Strategy for allocating topic partitions to members (default BalanceStrategyRange) + Strategy BalanceStrategy + // The maximum allowed time for each worker to join the group once a rebalance has begun. + // This is basically a limit on the amount of time needed for all tasks to flush any pending + // data and commit offsets. If the timeout is exceeded, then the worker will be removed from + // the group, which will cause offset commit failures (default 60s). + Timeout time.Duration + + Retry struct { + // When a new consumer joins a consumer group the set of consumers attempt to "rebalance" + // the load to assign partitions to each consumer. If the set of consumers changes while + // this assignment is taking place the rebalance will fail and retry. This setting controls + // the maximum number of attempts before giving up (default 4). + Max int + // Backoff time between retries during rebalance (default 2s) + Backoff time.Duration + } + } + Member struct { + // Custom metadata to include when joining the group. The user data for all joined members + // can be retrieved by sending a DescribeGroupRequest to the broker that is the + // coordinator for the group. + UserData []byte + } + } + + Retry struct { + // How long to wait after a failing to read from a partition before + // trying again (default 2s). + Backoff time.Duration + } + + // Fetch is the namespace for controlling how many bytes are retrieved by any + // given request. + Fetch struct { + // The minimum number of message bytes to fetch in a request - the broker + // will wait until at least this many are available. The default is 1, + // as 0 causes the consumer to spin when no messages are available. + // Equivalent to the JVM's `fetch.min.bytes`. + Min int32 + // The default number of message bytes to fetch from the broker in each + // request (default 1MB). This should be larger than the majority of + // your messages, or else the consumer will spend a lot of time + // negotiating sizes and not actually consuming. Similar to the JVM's + // `fetch.message.max.bytes`. + Default int32 + // The maximum number of message bytes to fetch from the broker in a + // single request. Messages larger than this will return + // ErrMessageTooLarge and will not be consumable, so you must be sure + // this is at least as large as your largest message. Defaults to 0 + // (no limit). Similar to the JVM's `fetch.message.max.bytes`. The + // global `sarama.MaxResponseSize` still applies. + Max int32 + } + // The maximum amount of time the broker will wait for Consumer.Fetch.Min + // bytes to become available before it returns fewer than that anyways. The + // default is 250ms, since 0 causes the consumer to spin when no events are + // available. 100-500ms is a reasonable range for most cases. Kafka only + // supports precision up to milliseconds; nanoseconds will be truncated. + // Equivalent to the JVM's `fetch.wait.max.ms`. + MaxWaitTime time.Duration + + // The maximum amount of time the consumer expects a message takes to + // process for the user. If writing to the Messages channel takes longer + // than this, that partition will stop fetching more messages until it + // can proceed again. + // Note that, since the Messages channel is buffered, the actual grace time is + // (MaxProcessingTime * ChanneBufferSize). Defaults to 100ms. + // If a message is not written to the Messages channel between two ticks + // of the expiryTicker then a timeout is detected. + // Using a ticker instead of a timer to detect timeouts should typically + // result in many fewer calls to Timer functions which may result in a + // significant performance improvement if many messages are being sent + // and timeouts are infrequent. + // The disadvantage of using a ticker instead of a timer is that + // timeouts will be less accurate. That is, the effective timeout could + // be between `MaxProcessingTime` and `2 * MaxProcessingTime`. For + // example, if `MaxProcessingTime` is 100ms then a delay of 180ms + // between two messages being sent may not be recognized as a timeout. + MaxProcessingTime time.Duration + + // Return specifies what channels will be populated. If they are set to true, + // you must read from them to prevent deadlock. + Return struct { + // If enabled, any errors that occurred while consuming are returned on + // the Errors channel (default disabled). + Errors bool + } + + // Offsets specifies configuration for how and when to commit consumed + // offsets. This currently requires the manual use of an OffsetManager + // but will eventually be automated. + Offsets struct { + // How frequently to commit updated offsets. Defaults to 1s. + CommitInterval time.Duration + + // The initial offset to use if no offset was previously committed. + // Should be OffsetNewest or OffsetOldest. Defaults to OffsetNewest. + Initial int64 + + // The retention duration for committed offsets. If zero, disabled + // (in which case the `offsets.retention.minutes` option on the + // broker will be used). Kafka only supports precision up to + // milliseconds; nanoseconds will be truncated. Requires Kafka + // broker version 0.9.0 or later. + // (default is 0: disabled). + Retention time.Duration + + Retry struct { + // The total number of times to retry failing commit + // requests during OffsetManager shutdown (default 3). + Max int + } + } + } + + // A user-provided string sent with every request to the brokers for logging, + // debugging, and auditing purposes. Defaults to "sarama", but you should + // probably set it to something specific to your application. + ClientID string + // The number of events to buffer in internal and external channels. This + // permits the producer and consumer to continue processing some messages + // in the background while user code is working, greatly improving throughput. + // Defaults to 256. + ChannelBufferSize int + // The version of Kafka that Sarama will assume it is running against. + // Defaults to the oldest supported stable version. Since Kafka provides + // backwards-compatibility, setting it to a version older than you have + // will not break anything, although it may prevent you from using the + // latest features. Setting it to a version greater than you are actually + // running may lead to random breakage. + Version KafkaVersion + // The registry to define metrics into. + // Defaults to a local registry. + // If you want to disable metrics gathering, set "metrics.UseNilMetrics" to "true" + // prior to starting Sarama. + // See Examples on how to use the metrics registry + MetricRegistry metrics.Registry +} + +// NewConfig returns a new configuration instance with sane defaults. +func NewConfig() *Config { + c := &Config{} + + c.Admin.Timeout = 3 * time.Second + + c.Net.MaxOpenRequests = 5 + c.Net.DialTimeout = 30 * time.Second + c.Net.ReadTimeout = 30 * time.Second + c.Net.WriteTimeout = 30 * time.Second + c.Net.SASL.Handshake = true + + c.Metadata.Retry.Max = 3 + c.Metadata.Retry.Backoff = 250 * time.Millisecond + c.Metadata.RefreshFrequency = 10 * time.Minute + c.Metadata.Full = true + + c.Producer.MaxMessageBytes = 1000000 + c.Producer.RequiredAcks = WaitForLocal + c.Producer.Timeout = 10 * time.Second + c.Producer.Partitioner = NewHashPartitioner + c.Producer.Retry.Max = 3 + c.Producer.Retry.Backoff = 100 * time.Millisecond + c.Producer.Return.Errors = true + c.Producer.CompressionLevel = CompressionLevelDefault + + c.Consumer.Fetch.Min = 1 + c.Consumer.Fetch.Default = 1024 * 1024 + c.Consumer.Retry.Backoff = 2 * time.Second + c.Consumer.MaxWaitTime = 250 * time.Millisecond + c.Consumer.MaxProcessingTime = 100 * time.Millisecond + c.Consumer.Return.Errors = false + c.Consumer.Offsets.CommitInterval = 1 * time.Second + c.Consumer.Offsets.Initial = OffsetNewest + c.Consumer.Offsets.Retry.Max = 3 + + c.Consumer.Group.Session.Timeout = 10 * time.Second + c.Consumer.Group.Heartbeat.Interval = 3 * time.Second + c.Consumer.Group.Rebalance.Strategy = BalanceStrategyRange + c.Consumer.Group.Rebalance.Timeout = 60 * time.Second + c.Consumer.Group.Rebalance.Retry.Max = 4 + c.Consumer.Group.Rebalance.Retry.Backoff = 2 * time.Second + + c.ClientID = defaultClientID + c.ChannelBufferSize = 256 + c.Version = MinVersion + c.MetricRegistry = metrics.NewRegistry() + + return c +} + +// Validate checks a Config instance. It will return a +// ConfigurationError if the specified values don't make sense. +func (c *Config) Validate() error { + // some configuration values should be warned on but not fail completely, do those first + if c.Net.TLS.Enable == false && c.Net.TLS.Config != nil { + Logger.Println("Net.TLS is disabled but a non-nil configuration was provided.") + } + if c.Net.SASL.Enable == false { + if c.Net.SASL.User != "" { + Logger.Println("Net.SASL is disabled but a non-empty username was provided.") + } + if c.Net.SASL.Password != "" { + Logger.Println("Net.SASL is disabled but a non-empty password was provided.") + } + } + if c.Producer.RequiredAcks > 1 { + Logger.Println("Producer.RequiredAcks > 1 is deprecated and will raise an exception with kafka >= 0.8.2.0.") + } + if c.Producer.MaxMessageBytes >= int(MaxRequestSize) { + Logger.Println("Producer.MaxMessageBytes must be smaller than MaxRequestSize; it will be ignored.") + } + if c.Producer.Flush.Bytes >= int(MaxRequestSize) { + Logger.Println("Producer.Flush.Bytes must be smaller than MaxRequestSize; it will be ignored.") + } + if (c.Producer.Flush.Bytes > 0 || c.Producer.Flush.Messages > 0) && c.Producer.Flush.Frequency == 0 { + Logger.Println("Producer.Flush: Bytes or Messages are set, but Frequency is not; messages may not get flushed.") + } + if c.Producer.Timeout%time.Millisecond != 0 { + Logger.Println("Producer.Timeout only supports millisecond resolution; nanoseconds will be truncated.") + } + if c.Consumer.MaxWaitTime < 100*time.Millisecond { + Logger.Println("Consumer.MaxWaitTime is very low, which can cause high CPU and network usage. See documentation for details.") + } + if c.Consumer.MaxWaitTime%time.Millisecond != 0 { + Logger.Println("Consumer.MaxWaitTime only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Offsets.Retention%time.Millisecond != 0 { + Logger.Println("Consumer.Offsets.Retention only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Group.Session.Timeout%time.Millisecond != 0 { + Logger.Println("Consumer.Group.Session.Timeout only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Group.Heartbeat.Interval%time.Millisecond != 0 { + Logger.Println("Consumer.Group.Heartbeat.Interval only supports millisecond precision; nanoseconds will be truncated.") + } + if c.Consumer.Group.Rebalance.Timeout%time.Millisecond != 0 { + Logger.Println("Consumer.Group.Rebalance.Timeout only supports millisecond precision; nanoseconds will be truncated.") + } + if c.ClientID == defaultClientID { + Logger.Println("ClientID is the default of 'sarama', you should consider setting it to something application-specific.") + } + + // validate Net values + switch { + case c.Net.MaxOpenRequests <= 0: + return ConfigurationError("Net.MaxOpenRequests must be > 0") + case c.Net.DialTimeout <= 0: + return ConfigurationError("Net.DialTimeout must be > 0") + case c.Net.ReadTimeout <= 0: + return ConfigurationError("Net.ReadTimeout must be > 0") + case c.Net.WriteTimeout <= 0: + return ConfigurationError("Net.WriteTimeout must be > 0") + case c.Net.KeepAlive < 0: + return ConfigurationError("Net.KeepAlive must be >= 0") + case c.Net.SASL.Enable == true && c.Net.SASL.User == "": + return ConfigurationError("Net.SASL.User must not be empty when SASL is enabled") + case c.Net.SASL.Enable == true && c.Net.SASL.Password == "": + return ConfigurationError("Net.SASL.Password must not be empty when SASL is enabled") + } + + // validate the Admin values + switch { + case c.Admin.Timeout <= 0: + return ConfigurationError("Admin.Timeout must be > 0") + } + + // validate the Metadata values + switch { + case c.Metadata.Retry.Max < 0: + return ConfigurationError("Metadata.Retry.Max must be >= 0") + case c.Metadata.Retry.Backoff < 0: + return ConfigurationError("Metadata.Retry.Backoff must be >= 0") + case c.Metadata.RefreshFrequency < 0: + return ConfigurationError("Metadata.RefreshFrequency must be >= 0") + } + + // validate the Producer values + switch { + case c.Producer.MaxMessageBytes <= 0: + return ConfigurationError("Producer.MaxMessageBytes must be > 0") + case c.Producer.RequiredAcks < -1: + return ConfigurationError("Producer.RequiredAcks must be >= -1") + case c.Producer.Timeout <= 0: + return ConfigurationError("Producer.Timeout must be > 0") + case c.Producer.Partitioner == nil: + return ConfigurationError("Producer.Partitioner must not be nil") + case c.Producer.Flush.Bytes < 0: + return ConfigurationError("Producer.Flush.Bytes must be >= 0") + case c.Producer.Flush.Messages < 0: + return ConfigurationError("Producer.Flush.Messages must be >= 0") + case c.Producer.Flush.Frequency < 0: + return ConfigurationError("Producer.Flush.Frequency must be >= 0") + case c.Producer.Flush.MaxMessages < 0: + return ConfigurationError("Producer.Flush.MaxMessages must be >= 0") + case c.Producer.Flush.MaxMessages > 0 && c.Producer.Flush.MaxMessages < c.Producer.Flush.Messages: + return ConfigurationError("Producer.Flush.MaxMessages must be >= Producer.Flush.Messages when set") + case c.Producer.Retry.Max < 0: + return ConfigurationError("Producer.Retry.Max must be >= 0") + case c.Producer.Retry.Backoff < 0: + return ConfigurationError("Producer.Retry.Backoff must be >= 0") + } + + if c.Producer.Compression == CompressionLZ4 && !c.Version.IsAtLeast(V0_10_0_0) { + return ConfigurationError("lz4 compression requires Version >= V0_10_0_0") + } + + if c.Producer.Compression == CompressionGZIP { + if c.Producer.CompressionLevel != CompressionLevelDefault { + if _, err := gzip.NewWriterLevel(ioutil.Discard, c.Producer.CompressionLevel); err != nil { + return ConfigurationError(fmt.Sprintf("gzip compression does not work with level %d: %v", c.Producer.CompressionLevel, err)) + } + } + } + + // validate the Consumer values + switch { + case c.Consumer.Fetch.Min <= 0: + return ConfigurationError("Consumer.Fetch.Min must be > 0") + case c.Consumer.Fetch.Default <= 0: + return ConfigurationError("Consumer.Fetch.Default must be > 0") + case c.Consumer.Fetch.Max < 0: + return ConfigurationError("Consumer.Fetch.Max must be >= 0") + case c.Consumer.MaxWaitTime < 1*time.Millisecond: + return ConfigurationError("Consumer.MaxWaitTime must be >= 1ms") + case c.Consumer.MaxProcessingTime <= 0: + return ConfigurationError("Consumer.MaxProcessingTime must be > 0") + case c.Consumer.Retry.Backoff < 0: + return ConfigurationError("Consumer.Retry.Backoff must be >= 0") + case c.Consumer.Offsets.CommitInterval <= 0: + return ConfigurationError("Consumer.Offsets.CommitInterval must be > 0") + case c.Consumer.Offsets.Initial != OffsetOldest && c.Consumer.Offsets.Initial != OffsetNewest: + return ConfigurationError("Consumer.Offsets.Initial must be OffsetOldest or OffsetNewest") + case c.Consumer.Offsets.Retry.Max < 0: + return ConfigurationError("Consumer.Offsets.Retry.Max must be >= 0") + } + + // validate the Consumer Group values + switch { + case c.Consumer.Group.Session.Timeout <= 2*time.Millisecond: + return ConfigurationError("Consumer.Group.Session.Timeout must be >= 2ms") + case c.Consumer.Group.Heartbeat.Interval < 1*time.Millisecond: + return ConfigurationError("Consumer.Group.Heartbeat.Interval must be >= 1ms") + case c.Consumer.Group.Heartbeat.Interval >= c.Consumer.Group.Session.Timeout: + return ConfigurationError("Consumer.Group.Heartbeat.Interval must be < Consumer.Group.Session.Timeout") + case c.Consumer.Group.Rebalance.Strategy == nil: + return ConfigurationError("Consumer.Group.Rebalance.Strategy must not be empty") + case c.Consumer.Group.Rebalance.Timeout <= time.Millisecond: + return ConfigurationError("Consumer.Group.Rebalance.Timeout must be >= 1ms") + case c.Consumer.Group.Rebalance.Retry.Max < 0: + return ConfigurationError("Consumer.Group.Rebalance.Retry.Max must be >= 0") + case c.Consumer.Group.Rebalance.Retry.Backoff < 0: + return ConfigurationError("Consumer.Group.Rebalance.Retry.Backoff must be >= 0") + } + + // validate misc shared values + switch { + case c.ChannelBufferSize < 0: + return ConfigurationError("ChannelBufferSize must be >= 0") + case !validID.MatchString(c.ClientID): + return ConfigurationError("ClientID is invalid") + } + + return nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/config_resource_type.go b/vendor/github.com/Shopify/sarama/config_resource_type.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/config_resource_type.go rename to vendor/github.com/Shopify/sarama/config_resource_type.go diff --git a/vendor/github.com/Shopify/sarama/consumer.go b/vendor/github.com/Shopify/sarama/consumer.go new file mode 100644 index 00000000..33d9d143 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer.go @@ -0,0 +1,807 @@ +package sarama + +import ( + "errors" + "fmt" + "sync" + "sync/atomic" + "time" +) + +// ConsumerMessage encapsulates a Kafka message returned by the consumer. +type ConsumerMessage struct { + Key, Value []byte + Topic string + Partition int32 + Offset int64 + Timestamp time.Time // only set if kafka is version 0.10+, inner message timestamp + BlockTimestamp time.Time // only set if kafka is version 0.10+, outer (compressed) block timestamp + Headers []*RecordHeader // only set if kafka is version 0.11+ +} + +// ConsumerError is what is provided to the user when an error occurs. +// It wraps an error and includes the topic and partition. +type ConsumerError struct { + Topic string + Partition int32 + Err error +} + +func (ce ConsumerError) Error() string { + return fmt.Sprintf("kafka: error while consuming %s/%d: %s", ce.Topic, ce.Partition, ce.Err) +} + +// ConsumerErrors is a type that wraps a batch of errors and implements the Error interface. +// It can be returned from the PartitionConsumer's Close methods to avoid the need to manually drain errors +// when stopping. +type ConsumerErrors []*ConsumerError + +func (ce ConsumerErrors) Error() string { + return fmt.Sprintf("kafka: %d errors while consuming", len(ce)) +} + +// Consumer manages PartitionConsumers which process Kafka messages from brokers. You MUST call Close() +// on a consumer to avoid leaks, it will not be garbage-collected automatically when it passes out of +// scope. +// +// Sarama's Consumer type does not currently support automatic consumer-group rebalancing and offset tracking. +// For Zookeeper-based tracking (Kafka 0.8.2 and earlier), the https://github.com/wvanbergen/kafka library +// builds on Sarama to add this support. For Kafka-based tracking (Kafka 0.9 and later), the +// https://github.com/bsm/sarama-cluster library builds on Sarama to add this support. +type Consumer interface { + + // Topics returns the set of available topics as retrieved from the cluster + // metadata. This method is the same as Client.Topics(), and is provided for + // convenience. + Topics() ([]string, error) + + // Partitions returns the sorted list of all partition IDs for the given topic. + // This method is the same as Client.Partitions(), and is provided for convenience. + Partitions(topic string) ([]int32, error) + + // ConsumePartition creates a PartitionConsumer on the given topic/partition with + // the given offset. It will return an error if this Consumer is already consuming + // on the given topic/partition. Offset can be a literal offset, or OffsetNewest + // or OffsetOldest + ConsumePartition(topic string, partition int32, offset int64) (PartitionConsumer, error) + + // HighWaterMarks returns the current high water marks for each topic and partition. + // Consistency between partitions is not guaranteed since high water marks are updated separately. + HighWaterMarks() map[string]map[int32]int64 + + // Close shuts down the consumer. It must be called after all child + // PartitionConsumers have already been closed. + Close() error +} + +type consumer struct { + client Client + conf *Config + ownClient bool + + lock sync.Mutex + children map[string]map[int32]*partitionConsumer + brokerConsumers map[*Broker]*brokerConsumer +} + +// NewConsumer creates a new consumer using the given broker addresses and configuration. +func NewConsumer(addrs []string, config *Config) (Consumer, error) { + client, err := NewClient(addrs, config) + if err != nil { + return nil, err + } + + c, err := NewConsumerFromClient(client) + if err != nil { + return nil, err + } + c.(*consumer).ownClient = true + return c, nil +} + +// NewConsumerFromClient creates a new consumer using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this consumer. +func NewConsumerFromClient(client Client) (Consumer, error) { + // Check that we are not dealing with a closed Client before processing any other arguments + if client.Closed() { + return nil, ErrClosedClient + } + + c := &consumer{ + client: client, + conf: client.Config(), + children: make(map[string]map[int32]*partitionConsumer), + brokerConsumers: make(map[*Broker]*brokerConsumer), + } + + return c, nil +} + +func (c *consumer) Close() error { + if c.ownClient { + return c.client.Close() + } + return nil +} + +func (c *consumer) Topics() ([]string, error) { + return c.client.Topics() +} + +func (c *consumer) Partitions(topic string) ([]int32, error) { + return c.client.Partitions(topic) +} + +func (c *consumer) ConsumePartition(topic string, partition int32, offset int64) (PartitionConsumer, error) { + child := &partitionConsumer{ + consumer: c, + conf: c.conf, + topic: topic, + partition: partition, + messages: make(chan *ConsumerMessage, c.conf.ChannelBufferSize), + errors: make(chan *ConsumerError, c.conf.ChannelBufferSize), + feeder: make(chan *FetchResponse, 1), + trigger: make(chan none, 1), + dying: make(chan none), + fetchSize: c.conf.Consumer.Fetch.Default, + } + + if err := child.chooseStartingOffset(offset); err != nil { + return nil, err + } + + var leader *Broker + var err error + if leader, err = c.client.Leader(child.topic, child.partition); err != nil { + return nil, err + } + + if err := c.addChild(child); err != nil { + return nil, err + } + + go withRecover(child.dispatcher) + go withRecover(child.responseFeeder) + + child.broker = c.refBrokerConsumer(leader) + child.broker.input <- child + + return child, nil +} + +func (c *consumer) HighWaterMarks() map[string]map[int32]int64 { + c.lock.Lock() + defer c.lock.Unlock() + + hwms := make(map[string]map[int32]int64) + for topic, p := range c.children { + hwm := make(map[int32]int64, len(p)) + for partition, pc := range p { + hwm[partition] = pc.HighWaterMarkOffset() + } + hwms[topic] = hwm + } + + return hwms +} + +func (c *consumer) addChild(child *partitionConsumer) error { + c.lock.Lock() + defer c.lock.Unlock() + + topicChildren := c.children[child.topic] + if topicChildren == nil { + topicChildren = make(map[int32]*partitionConsumer) + c.children[child.topic] = topicChildren + } + + if topicChildren[child.partition] != nil { + return ConfigurationError("That topic/partition is already being consumed") + } + + topicChildren[child.partition] = child + return nil +} + +func (c *consumer) removeChild(child *partitionConsumer) { + c.lock.Lock() + defer c.lock.Unlock() + + delete(c.children[child.topic], child.partition) +} + +func (c *consumer) refBrokerConsumer(broker *Broker) *brokerConsumer { + c.lock.Lock() + defer c.lock.Unlock() + + bc := c.brokerConsumers[broker] + if bc == nil { + bc = c.newBrokerConsumer(broker) + c.brokerConsumers[broker] = bc + } + + bc.refs++ + + return bc +} + +func (c *consumer) unrefBrokerConsumer(brokerWorker *brokerConsumer) { + c.lock.Lock() + defer c.lock.Unlock() + + brokerWorker.refs-- + + if brokerWorker.refs == 0 { + close(brokerWorker.input) + if c.brokerConsumers[brokerWorker.broker] == brokerWorker { + delete(c.brokerConsumers, brokerWorker.broker) + } + } +} + +func (c *consumer) abandonBrokerConsumer(brokerWorker *brokerConsumer) { + c.lock.Lock() + defer c.lock.Unlock() + + delete(c.brokerConsumers, brokerWorker.broker) +} + +// PartitionConsumer + +// PartitionConsumer processes Kafka messages from a given topic and partition. You MUST call one of Close() or +// AsyncClose() on a PartitionConsumer to avoid leaks; it will not be garbage-collected automatically when it passes out +// of scope. +// +// The simplest way of using a PartitionConsumer is to loop over its Messages channel using a for/range +// loop. The PartitionConsumer will only stop itself in one case: when the offset being consumed is reported +// as out of range by the brokers. In this case you should decide what you want to do (try a different offset, +// notify a human, etc) and handle it appropriately. For all other error cases, it will just keep retrying. +// By default, it logs these errors to sarama.Logger; if you want to be notified directly of all errors, set +// your config's Consumer.Return.Errors to true and read from the Errors channel, using a select statement +// or a separate goroutine. Check out the Consumer examples to see implementations of these different approaches. +// +// To terminate such a for/range loop while the loop is executing, call AsyncClose. This will kick off the process of +// consumer tear-down & return imediately. Continue to loop, servicing the Messages channel until the teardown process +// AsyncClose initiated closes it (thus terminating the for/range loop). If you've already ceased reading Messages, call +// Close; this will signal the PartitionConsumer's goroutines to begin shutting down (just like AsyncClose), but will +// also drain the Messages channel, harvest all errors & return them once cleanup has completed. +type PartitionConsumer interface { + + // AsyncClose initiates a shutdown of the PartitionConsumer. This method will return immediately, after which you + // should continue to service the 'Messages' and 'Errors' channels until they are empty. It is required to call this + // function, or Close before a consumer object passes out of scope, as it will otherwise leak memory. You must call + // this before calling Close on the underlying client. + AsyncClose() + + // Close stops the PartitionConsumer from fetching messages. It will initiate a shutdown just like AsyncClose, drain + // the Messages channel, harvest any errors & return them to the caller. Note that if you are continuing to service + // the Messages channel when this function is called, you will be competing with Close for messages; consider + // calling AsyncClose, instead. It is required to call this function (or AsyncClose) before a consumer object passes + // out of scope, as it will otherwise leak memory. You must call this before calling Close on the underlying client. + Close() error + + // Messages returns the read channel for the messages that are returned by + // the broker. + Messages() <-chan *ConsumerMessage + + // Errors returns a read channel of errors that occurred during consuming, if + // enabled. By default, errors are logged and not returned over this channel. + // If you want to implement any custom error handling, set your config's + // Consumer.Return.Errors setting to true, and read from this channel. + Errors() <-chan *ConsumerError + + // HighWaterMarkOffset returns the high water mark offset of the partition, + // i.e. the offset that will be used for the next message that will be produced. + // You can use this to determine how far behind the processing is. + HighWaterMarkOffset() int64 +} + +type partitionConsumer struct { + highWaterMarkOffset int64 // must be at the top of the struct because https://golang.org/pkg/sync/atomic/#pkg-note-BUG + consumer *consumer + conf *Config + topic string + partition int32 + + broker *brokerConsumer + messages chan *ConsumerMessage + errors chan *ConsumerError + feeder chan *FetchResponse + + trigger, dying chan none + responseResult error + closeOnce sync.Once + + fetchSize int32 + offset int64 +} + +var errTimedOut = errors.New("timed out feeding messages to the user") // not user-facing + +func (child *partitionConsumer) sendError(err error) { + cErr := &ConsumerError{ + Topic: child.topic, + Partition: child.partition, + Err: err, + } + + if child.conf.Consumer.Return.Errors { + child.errors <- cErr + } else { + Logger.Println(cErr) + } +} + +func (child *partitionConsumer) dispatcher() { + for range child.trigger { + select { + case <-child.dying: + close(child.trigger) + case <-time.After(child.conf.Consumer.Retry.Backoff): + if child.broker != nil { + child.consumer.unrefBrokerConsumer(child.broker) + child.broker = nil + } + + Logger.Printf("consumer/%s/%d finding new broker\n", child.topic, child.partition) + if err := child.dispatch(); err != nil { + child.sendError(err) + child.trigger <- none{} + } + } + } + + if child.broker != nil { + child.consumer.unrefBrokerConsumer(child.broker) + } + child.consumer.removeChild(child) + close(child.feeder) +} + +func (child *partitionConsumer) dispatch() error { + if err := child.consumer.client.RefreshMetadata(child.topic); err != nil { + return err + } + + var leader *Broker + var err error + if leader, err = child.consumer.client.Leader(child.topic, child.partition); err != nil { + return err + } + + child.broker = child.consumer.refBrokerConsumer(leader) + + child.broker.input <- child + + return nil +} + +func (child *partitionConsumer) chooseStartingOffset(offset int64) error { + newestOffset, err := child.consumer.client.GetOffset(child.topic, child.partition, OffsetNewest) + if err != nil { + return err + } + oldestOffset, err := child.consumer.client.GetOffset(child.topic, child.partition, OffsetOldest) + if err != nil { + return err + } + + switch { + case offset == OffsetNewest: + child.offset = newestOffset + case offset == OffsetOldest: + child.offset = oldestOffset + case offset >= oldestOffset && offset <= newestOffset: + child.offset = offset + default: + return ErrOffsetOutOfRange + } + + return nil +} + +func (child *partitionConsumer) Messages() <-chan *ConsumerMessage { + return child.messages +} + +func (child *partitionConsumer) Errors() <-chan *ConsumerError { + return child.errors +} + +func (child *partitionConsumer) AsyncClose() { + // this triggers whatever broker owns this child to abandon it and close its trigger channel, which causes + // the dispatcher to exit its loop, which removes it from the consumer then closes its 'messages' and + // 'errors' channel (alternatively, if the child is already at the dispatcher for some reason, that will + // also just close itself) + child.closeOnce.Do(func() { + close(child.dying) + }) +} + +func (child *partitionConsumer) Close() error { + child.AsyncClose() + + go withRecover(func() { + for range child.messages { + // drain + } + }) + + var errors ConsumerErrors + for err := range child.errors { + errors = append(errors, err) + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (child *partitionConsumer) HighWaterMarkOffset() int64 { + return atomic.LoadInt64(&child.highWaterMarkOffset) +} + +func (child *partitionConsumer) responseFeeder() { + var msgs []*ConsumerMessage + expiryTicker := time.NewTicker(child.conf.Consumer.MaxProcessingTime) + firstAttempt := true + +feederLoop: + for response := range child.feeder { + msgs, child.responseResult = child.parseResponse(response) + + for i, msg := range msgs { + messageSelect: + select { + case child.messages <- msg: + firstAttempt = true + case <-expiryTicker.C: + if !firstAttempt { + child.responseResult = errTimedOut + child.broker.acks.Done() + for _, msg = range msgs[i:] { + child.messages <- msg + } + child.broker.input <- child + continue feederLoop + } else { + // current message has not been sent, return to select + // statement + firstAttempt = false + goto messageSelect + } + } + } + + child.broker.acks.Done() + } + + expiryTicker.Stop() + close(child.messages) + close(child.errors) +} + +func (child *partitionConsumer) parseMessages(msgSet *MessageSet) ([]*ConsumerMessage, error) { + var messages []*ConsumerMessage + for _, msgBlock := range msgSet.Messages { + for _, msg := range msgBlock.Messages() { + offset := msg.Offset + if msg.Msg.Version >= 1 { + baseOffset := msgBlock.Offset - msgBlock.Messages()[len(msgBlock.Messages())-1].Offset + offset += baseOffset + } + if offset < child.offset { + continue + } + messages = append(messages, &ConsumerMessage{ + Topic: child.topic, + Partition: child.partition, + Key: msg.Msg.Key, + Value: msg.Msg.Value, + Offset: offset, + Timestamp: msg.Msg.Timestamp, + BlockTimestamp: msgBlock.Msg.Timestamp, + }) + child.offset = offset + 1 + } + } + if len(messages) == 0 { + return nil, ErrIncompleteResponse + } + return messages, nil +} + +func (child *partitionConsumer) parseRecords(batch *RecordBatch) ([]*ConsumerMessage, error) { + var messages []*ConsumerMessage + for _, rec := range batch.Records { + offset := batch.FirstOffset + rec.OffsetDelta + if offset < child.offset { + continue + } + messages = append(messages, &ConsumerMessage{ + Topic: child.topic, + Partition: child.partition, + Key: rec.Key, + Value: rec.Value, + Offset: offset, + Timestamp: batch.FirstTimestamp.Add(rec.TimestampDelta), + Headers: rec.Headers, + }) + child.offset = offset + 1 + } + if len(messages) == 0 { + child.offset += 1 + } + return messages, nil +} + +func (child *partitionConsumer) parseResponse(response *FetchResponse) ([]*ConsumerMessage, error) { + block := response.GetBlock(child.topic, child.partition) + if block == nil { + return nil, ErrIncompleteResponse + } + + if block.Err != ErrNoError { + return nil, block.Err + } + + nRecs, err := block.numRecords() + if err != nil { + return nil, err + } + if nRecs == 0 { + partialTrailingMessage, err := block.isPartial() + if err != nil { + return nil, err + } + // We got no messages. If we got a trailing one then we need to ask for more data. + // Otherwise we just poll again and wait for one to be produced... + if partialTrailingMessage { + if child.conf.Consumer.Fetch.Max > 0 && child.fetchSize == child.conf.Consumer.Fetch.Max { + // we can't ask for more data, we've hit the configured limit + child.sendError(ErrMessageTooLarge) + child.offset++ // skip this one so we can keep processing future messages + } else { + child.fetchSize *= 2 + if child.conf.Consumer.Fetch.Max > 0 && child.fetchSize > child.conf.Consumer.Fetch.Max { + child.fetchSize = child.conf.Consumer.Fetch.Max + } + } + } + + return nil, nil + } + + // we got messages, reset our fetch size in case it was increased for a previous request + child.fetchSize = child.conf.Consumer.Fetch.Default + atomic.StoreInt64(&child.highWaterMarkOffset, block.HighWaterMarkOffset) + + messages := []*ConsumerMessage{} + for _, records := range block.RecordsSet { + switch records.recordsType { + case legacyRecords: + messageSetMessages, err := child.parseMessages(records.MsgSet) + if err != nil { + return nil, err + } + + messages = append(messages, messageSetMessages...) + case defaultRecords: + recordBatchMessages, err := child.parseRecords(records.RecordBatch) + if err != nil { + return nil, err + } + if control, err := records.isControl(); err != nil || control { + continue + } + + messages = append(messages, recordBatchMessages...) + default: + return nil, fmt.Errorf("unknown records type: %v", records.recordsType) + } + } + + return messages, nil +} + +// brokerConsumer + +type brokerConsumer struct { + consumer *consumer + broker *Broker + input chan *partitionConsumer + newSubscriptions chan []*partitionConsumer + wait chan none + subscriptions map[*partitionConsumer]none + acks sync.WaitGroup + refs int +} + +func (c *consumer) newBrokerConsumer(broker *Broker) *brokerConsumer { + bc := &brokerConsumer{ + consumer: c, + broker: broker, + input: make(chan *partitionConsumer), + newSubscriptions: make(chan []*partitionConsumer), + wait: make(chan none), + subscriptions: make(map[*partitionConsumer]none), + refs: 0, + } + + go withRecover(bc.subscriptionManager) + go withRecover(bc.subscriptionConsumer) + + return bc +} + +func (bc *brokerConsumer) subscriptionManager() { + var buffer []*partitionConsumer + + // The subscriptionManager constantly accepts new subscriptions on `input` (even when the main subscriptionConsumer + // goroutine is in the middle of a network request) and batches it up. The main worker goroutine picks + // up a batch of new subscriptions between every network request by reading from `newSubscriptions`, so we give + // it nil if no new subscriptions are available. We also write to `wait` only when new subscriptions is available, + // so the main goroutine can block waiting for work if it has none. + for { + if len(buffer) > 0 { + select { + case event, ok := <-bc.input: + if !ok { + goto done + } + buffer = append(buffer, event) + case bc.newSubscriptions <- buffer: + buffer = nil + case bc.wait <- none{}: + } + } else { + select { + case event, ok := <-bc.input: + if !ok { + goto done + } + buffer = append(buffer, event) + case bc.newSubscriptions <- nil: + } + } + } + +done: + close(bc.wait) + if len(buffer) > 0 { + bc.newSubscriptions <- buffer + } + close(bc.newSubscriptions) +} + +func (bc *brokerConsumer) subscriptionConsumer() { + <-bc.wait // wait for our first piece of work + + // the subscriptionConsumer ensures we will get nil right away if no new subscriptions is available + for newSubscriptions := range bc.newSubscriptions { + bc.updateSubscriptions(newSubscriptions) + + if len(bc.subscriptions) == 0 { + // We're about to be shut down or we're about to receive more subscriptions. + // Either way, the signal just hasn't propagated to our goroutine yet. + <-bc.wait + continue + } + + response, err := bc.fetchNewMessages() + + if err != nil { + Logger.Printf("consumer/broker/%d disconnecting due to error processing FetchRequest: %s\n", bc.broker.ID(), err) + bc.abort(err) + return + } + + bc.acks.Add(len(bc.subscriptions)) + for child := range bc.subscriptions { + child.feeder <- response + } + bc.acks.Wait() + bc.handleResponses() + } +} + +func (bc *brokerConsumer) updateSubscriptions(newSubscriptions []*partitionConsumer) { + for _, child := range newSubscriptions { + bc.subscriptions[child] = none{} + Logger.Printf("consumer/broker/%d added subscription to %s/%d\n", bc.broker.ID(), child.topic, child.partition) + } + + for child := range bc.subscriptions { + select { + case <-child.dying: + Logger.Printf("consumer/broker/%d closed dead subscription to %s/%d\n", bc.broker.ID(), child.topic, child.partition) + close(child.trigger) + delete(bc.subscriptions, child) + default: + break + } + } +} + +func (bc *brokerConsumer) handleResponses() { + // handles the response codes left for us by our subscriptions, and abandons ones that have been closed + for child := range bc.subscriptions { + result := child.responseResult + child.responseResult = nil + + switch result { + case nil: + break + case errTimedOut: + Logger.Printf("consumer/broker/%d abandoned subscription to %s/%d because consuming was taking too long\n", + bc.broker.ID(), child.topic, child.partition) + delete(bc.subscriptions, child) + case ErrOffsetOutOfRange: + // there's no point in retrying this it will just fail the same way again + // shut it down and force the user to choose what to do + child.sendError(result) + Logger.Printf("consumer/%s/%d shutting down because %s\n", child.topic, child.partition, result) + close(child.trigger) + delete(bc.subscriptions, child) + case ErrUnknownTopicOrPartition, ErrNotLeaderForPartition, ErrLeaderNotAvailable, ErrReplicaNotAvailable: + // not an error, but does need redispatching + Logger.Printf("consumer/broker/%d abandoned subscription to %s/%d because %s\n", + bc.broker.ID(), child.topic, child.partition, result) + child.trigger <- none{} + delete(bc.subscriptions, child) + default: + // dunno, tell the user and try redispatching + child.sendError(result) + Logger.Printf("consumer/broker/%d abandoned subscription to %s/%d because %s\n", + bc.broker.ID(), child.topic, child.partition, result) + child.trigger <- none{} + delete(bc.subscriptions, child) + } + } +} + +func (bc *brokerConsumer) abort(err error) { + bc.consumer.abandonBrokerConsumer(bc) + _ = bc.broker.Close() // we don't care about the error this might return, we already have one + + for child := range bc.subscriptions { + child.sendError(err) + child.trigger <- none{} + } + + for newSubscriptions := range bc.newSubscriptions { + if len(newSubscriptions) == 0 { + <-bc.wait + continue + } + for _, child := range newSubscriptions { + child.sendError(err) + child.trigger <- none{} + } + } +} + +func (bc *brokerConsumer) fetchNewMessages() (*FetchResponse, error) { + request := &FetchRequest{ + MinBytes: bc.consumer.conf.Consumer.Fetch.Min, + MaxWaitTime: int32(bc.consumer.conf.Consumer.MaxWaitTime / time.Millisecond), + } + if bc.consumer.conf.Version.IsAtLeast(V0_10_0_0) { + request.Version = 2 + } + if bc.consumer.conf.Version.IsAtLeast(V0_10_1_0) { + request.Version = 3 + request.MaxBytes = MaxResponseSize + } + if bc.consumer.conf.Version.IsAtLeast(V0_11_0_0) { + request.Version = 4 + request.Isolation = ReadUncommitted // We don't support yet transactions. + } + + for child := range bc.subscriptions { + request.AddBlock(child.topic, child.partition, child.offset, child.fetchSize) + } + + return bc.broker.Fetch(request) +} diff --git a/vendor/github.com/Shopify/sarama/consumer_group.go b/vendor/github.com/Shopify/sarama/consumer_group.go new file mode 100644 index 00000000..33a23147 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer_group.go @@ -0,0 +1,774 @@ +package sarama + +import ( + "context" + "errors" + "fmt" + "sort" + "sync" + "time" +) + +// ErrClosedConsumerGroup is the error returned when a method is called on a consumer group that has been closed. +var ErrClosedConsumerGroup = errors.New("kafka: tried to use a consumer group that was closed") + +// ConsumerGroup is responsible for dividing up processing of topics and partitions +// over a collection of processes (the members of the consumer group). +type ConsumerGroup interface { + // Consume joins a cluster of consumers for a given list of topics and + // starts a blocking ConsumerGroupSession through the ConsumerGroupHandler. + // + // The life-cycle of a session is represented by the following steps: + // + // 1. The consumers join the group (as explained in https://kafka.apache.org/documentation/#intro_consumers) + // and is assigned their "fair share" of partitions, aka 'claims'. + // 2. Before processing starts, the handler's Setup() hook is called to notify the user + // of the claims and allow any necessary preparation or alteration of state. + // 3. For each of the assigned claims the handler's ConsumeClaim() function is then called + // in a separate goroutine which requires it to be thread-safe. Any state must be carefully protected + // from concurrent reads/writes. + // 4. The session will persist until one of the ConsumeClaim() functions exits. This can be either when the + // parent context is cancelled or when a server-side rebalance cycle is initiated. + // 5. Once all the ConsumeClaim() loops have exited, the handler's Cleanup() hook is called + // to allow the user to perform any final tasks before a rebalance. + // 6. Finally, marked offsets are committed one last time before claims are released. + // + // Please note, that once a relance is triggered, sessions must be completed within + // Config.Consumer.Group.Rebalance.Timeout. This means that ConsumeClaim() functions must exit + // as quickly as possible to allow time for Cleanup() and the final offset commit. If the timeout + // is exceeded, the consumer will be removed from the group by Kafka, which will cause offset + // commit failures. + Consume(ctx context.Context, topics []string, handler ConsumerGroupHandler) error + + // Errors returns a read channel of errors that occurred during the consumer life-cycle. + // By default, errors are logged and not returned over this channel. + // If you want to implement any custom error handling, set your config's + // Consumer.Return.Errors setting to true, and read from this channel. + Errors() <-chan error + + // Close stops the ConsumerGroup and detaches any running sessions. It is required to call + // this function before the object passes out of scope, as it will otherwise leak memory. + Close() error +} + +type consumerGroup struct { + client Client + ownClient bool + + config *Config + consumer Consumer + groupID string + memberID string + errors chan error + + lock sync.Mutex + closed chan none + closeOnce sync.Once +} + +// NewConsumerGroup creates a new consumer group the given broker addresses and configuration. +func NewConsumerGroup(addrs []string, groupID string, config *Config) (ConsumerGroup, error) { + client, err := NewClient(addrs, config) + if err != nil { + return nil, err + } + + c, err := NewConsumerGroupFromClient(groupID, client) + if err != nil { + _ = client.Close() + return nil, err + } + + c.(*consumerGroup).ownClient = true + return c, nil +} + +// NewConsumerFromClient creates a new consumer group using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this consumer. +// PLEASE NOTE: consumer groups can only re-use but not share clients. +func NewConsumerGroupFromClient(groupID string, client Client) (ConsumerGroup, error) { + config := client.Config() + if !config.Version.IsAtLeast(V0_10_2_0) { + return nil, ConfigurationError("consumer groups require Version to be >= V0_10_2_0") + } + + consumer, err := NewConsumerFromClient(client) + if err != nil { + return nil, err + } + + return &consumerGroup{ + client: client, + consumer: consumer, + config: config, + groupID: groupID, + errors: make(chan error, config.ChannelBufferSize), + closed: make(chan none), + }, nil +} + +// Errors implements ConsumerGroup. +func (c *consumerGroup) Errors() <-chan error { return c.errors } + +// Close implements ConsumerGroup. +func (c *consumerGroup) Close() (err error) { + c.closeOnce.Do(func() { + close(c.closed) + + c.lock.Lock() + defer c.lock.Unlock() + + // leave group + if e := c.leave(); e != nil { + err = e + } + + // drain errors + go func() { + close(c.errors) + }() + for e := range c.errors { + err = e + } + + if c.ownClient { + if e := c.client.Close(); e != nil { + err = e + } + } + }) + return +} + +// Consume implements ConsumerGroup. +func (c *consumerGroup) Consume(ctx context.Context, topics []string, handler ConsumerGroupHandler) error { + // Ensure group is not closed + select { + case <-c.closed: + return ErrClosedConsumerGroup + default: + } + + c.lock.Lock() + defer c.lock.Unlock() + + // Quick exit when no topics are provided + if len(topics) == 0 { + return fmt.Errorf("no topics provided") + } + + // Refresh metadata for requested topics + if err := c.client.RefreshMetadata(topics...); err != nil { + return err + } + + // Get coordinator + coordinator, err := c.client.Coordinator(c.groupID) + if err != nil { + return err + } + + // Init session + sess, err := c.newSession(ctx, coordinator, topics, handler, c.config.Consumer.Group.Rebalance.Retry.Max) + if err == ErrClosedClient { + return ErrClosedConsumerGroup + } else if err != nil { + return err + } + + // Wait for session exit signal + <-sess.ctx.Done() + + // Gracefully release session claims + return sess.release(true) +} + +func (c *consumerGroup) newSession(ctx context.Context, coordinator *Broker, topics []string, handler ConsumerGroupHandler, retries int) (*consumerGroupSession, error) { + // Join consumer group + join, err := c.joinGroupRequest(coordinator, topics) + if err != nil { + _ = coordinator.Close() + return nil, err + } + switch join.Err { + case ErrNoError: + c.memberID = join.MemberId + case ErrUnknownMemberId, ErrIllegalGeneration: // reset member ID and retry immediately + c.memberID = "" + return c.newSession(ctx, coordinator, topics, handler, retries) + case ErrRebalanceInProgress: // retry after backoff + if retries <= 0 { + return nil, join.Err + } + + select { + case <-c.closed: + return nil, ErrClosedConsumerGroup + case <-time.After(c.config.Consumer.Group.Rebalance.Retry.Backoff): + } + + return c.newSession(ctx, coordinator, topics, handler, retries-1) + default: + return nil, join.Err + } + + // Prepare distribution plan if we joined as the leader + var plan BalanceStrategyPlan + if join.LeaderId == join.MemberId { + members, err := join.GetMembers() + if err != nil { + return nil, err + } + + plan, err = c.balance(members) + if err != nil { + return nil, err + } + } + + // Sync consumer group + sync, err := c.syncGroupRequest(coordinator, plan, join.GenerationId) + if err != nil { + _ = coordinator.Close() + return nil, err + } + switch sync.Err { + case ErrNoError: + case ErrUnknownMemberId, ErrIllegalGeneration: // reset member ID and retry immediately + c.memberID = "" + return c.newSession(ctx, coordinator, topics, handler, retries) + case ErrRebalanceInProgress: // retry after backoff + if retries <= 0 { + return nil, sync.Err + } + + select { + case <-c.closed: + return nil, ErrClosedConsumerGroup + case <-time.After(c.config.Consumer.Group.Rebalance.Retry.Backoff): + } + + return c.newSession(ctx, coordinator, topics, handler, retries-1) + default: + return nil, sync.Err + } + + // Retrieve and sort claims + var claims map[string][]int32 + if len(sync.MemberAssignment) > 0 { + members, err := sync.GetMemberAssignment() + if err != nil { + return nil, err + } + claims = members.Topics + + for _, partitions := range claims { + sort.Sort(int32Slice(partitions)) + } + } + + return newConsumerGroupSession(c, ctx, claims, join.MemberId, join.GenerationId, handler) +} + +func (c *consumerGroup) joinGroupRequest(coordinator *Broker, topics []string) (*JoinGroupResponse, error) { + req := &JoinGroupRequest{ + GroupId: c.groupID, + MemberId: c.memberID, + SessionTimeout: int32(c.config.Consumer.Group.Session.Timeout / time.Millisecond), + ProtocolType: "consumer", + } + if c.config.Version.IsAtLeast(V0_10_1_0) { + req.Version = 1 + req.RebalanceTimeout = int32(c.config.Consumer.Group.Rebalance.Timeout / time.Millisecond) + } + + meta := &ConsumerGroupMemberMetadata{ + Topics: topics, + UserData: c.config.Consumer.Group.Member.UserData, + } + strategy := c.config.Consumer.Group.Rebalance.Strategy + if err := req.AddGroupProtocolMetadata(strategy.Name(), meta); err != nil { + return nil, err + } + + return coordinator.JoinGroup(req) +} + +func (c *consumerGroup) syncGroupRequest(coordinator *Broker, plan BalanceStrategyPlan, generationID int32) (*SyncGroupResponse, error) { + req := &SyncGroupRequest{ + GroupId: c.groupID, + MemberId: c.memberID, + GenerationId: generationID, + } + for memberID, topics := range plan { + err := req.AddGroupAssignmentMember(memberID, &ConsumerGroupMemberAssignment{ + Topics: topics, + }) + if err != nil { + return nil, err + } + } + return coordinator.SyncGroup(req) +} + +func (c *consumerGroup) heartbeatRequest(coordinator *Broker, memberID string, generationID int32) (*HeartbeatResponse, error) { + req := &HeartbeatRequest{ + GroupId: c.groupID, + MemberId: memberID, + GenerationId: generationID, + } + + return coordinator.Heartbeat(req) +} + +func (c *consumerGroup) balance(members map[string]ConsumerGroupMemberMetadata) (BalanceStrategyPlan, error) { + topics := make(map[string][]int32) + for _, meta := range members { + for _, topic := range meta.Topics { + topics[topic] = nil + } + } + + for topic := range topics { + partitions, err := c.client.Partitions(topic) + if err != nil { + return nil, err + } + topics[topic] = partitions + } + + strategy := c.config.Consumer.Group.Rebalance.Strategy + return strategy.Plan(members, topics) +} + +// Leaves the cluster, called by Close, protected by lock. +func (c *consumerGroup) leave() error { + if c.memberID == "" { + return nil + } + + coordinator, err := c.client.Coordinator(c.groupID) + if err != nil { + return err + } + + resp, err := coordinator.LeaveGroup(&LeaveGroupRequest{ + GroupId: c.groupID, + MemberId: c.memberID, + }) + if err != nil { + _ = coordinator.Close() + return err + } + + // Unset memberID + c.memberID = "" + + // Check response + switch resp.Err { + case ErrRebalanceInProgress, ErrUnknownMemberId, ErrNoError: + return nil + default: + return resp.Err + } +} + +func (c *consumerGroup) handleError(err error, topic string, partition int32) { + select { + case <-c.closed: + return + default: + } + + if _, ok := err.(*ConsumerError); !ok && topic != "" && partition > -1 { + err = &ConsumerError{ + Topic: topic, + Partition: partition, + Err: err, + } + } + + if c.config.Consumer.Return.Errors { + select { + case c.errors <- err: + default: + } + } else { + Logger.Println(err) + } +} + +// -------------------------------------------------------------------- + +// ConsumerGroupSession represents a consumer group member session. +type ConsumerGroupSession interface { + // Claims returns information about the claimed partitions by topic. + Claims() map[string][]int32 + + // MemberID returns the cluster member ID. + MemberID() string + + // GenerationID returns the current generation ID. + GenerationID() int32 + + // MarkOffset marks the provided offset, alongside a metadata string + // that represents the state of the partition consumer at that point in time. The + // metadata string can be used by another consumer to restore that state, so it + // can resume consumption. + // + // To follow upstream conventions, you are expected to mark the offset of the + // next message to read, not the last message read. Thus, when calling `MarkOffset` + // you should typically add one to the offset of the last consumed message. + // + // Note: calling MarkOffset does not necessarily commit the offset to the backend + // store immediately for efficiency reasons, and it may never be committed if + // your application crashes. This means that you may end up processing the same + // message twice, and your processing should ideally be idempotent. + MarkOffset(topic string, partition int32, offset int64, metadata string) + + // ResetOffset resets to the provided offset, alongside a metadata string that + // represents the state of the partition consumer at that point in time. Reset + // acts as a counterpart to MarkOffset, the difference being that it allows to + // reset an offset to an earlier or smaller value, where MarkOffset only + // allows incrementing the offset. cf MarkOffset for more details. + ResetOffset(topic string, partition int32, offset int64, metadata string) + + // MarkMessage marks a message as consumed. + MarkMessage(msg *ConsumerMessage, metadata string) + + // Context returns the session context. + Context() context.Context +} + +type consumerGroupSession struct { + parent *consumerGroup + memberID string + generationID int32 + handler ConsumerGroupHandler + + claims map[string][]int32 + offsets *offsetManager + ctx context.Context + cancel func() + + waitGroup sync.WaitGroup + releaseOnce sync.Once + hbDying, hbDead chan none +} + +func newConsumerGroupSession(parent *consumerGroup, ctx context.Context, claims map[string][]int32, memberID string, generationID int32, handler ConsumerGroupHandler) (*consumerGroupSession, error) { + // init offset manager + offsets, err := newOffsetManagerFromClient(parent.groupID, memberID, generationID, parent.client) + if err != nil { + return nil, err + } + + // init context + ctx, cancel := context.WithCancel(ctx) + + // init session + sess := &consumerGroupSession{ + parent: parent, + memberID: memberID, + generationID: generationID, + handler: handler, + offsets: offsets, + claims: claims, + ctx: ctx, + cancel: cancel, + hbDying: make(chan none), + hbDead: make(chan none), + } + + // start heartbeat loop + go sess.heartbeatLoop() + + // create a POM for each claim + for topic, partitions := range claims { + for _, partition := range partitions { + pom, err := offsets.ManagePartition(topic, partition) + if err != nil { + _ = sess.release(false) + return nil, err + } + + // handle POM errors + go func(topic string, partition int32) { + for err := range pom.Errors() { + sess.parent.handleError(err, topic, partition) + } + }(topic, partition) + } + } + + // perform setup + if err := handler.Setup(sess); err != nil { + _ = sess.release(true) + return nil, err + } + + // start consuming + for topic, partitions := range claims { + for _, partition := range partitions { + sess.waitGroup.Add(1) + + go func(topic string, partition int32) { + defer sess.waitGroup.Done() + + // cancel the as session as soon as the first + // goroutine exits + defer sess.cancel() + + // consume a single topic/partition, blocking + sess.consume(topic, partition) + }(topic, partition) + } + } + return sess, nil +} + +func (s *consumerGroupSession) Claims() map[string][]int32 { return s.claims } +func (s *consumerGroupSession) MemberID() string { return s.memberID } +func (s *consumerGroupSession) GenerationID() int32 { return s.generationID } + +func (s *consumerGroupSession) MarkOffset(topic string, partition int32, offset int64, metadata string) { + if pom := s.offsets.findPOM(topic, partition); pom != nil { + pom.MarkOffset(offset, metadata) + } +} + +func (s *consumerGroupSession) ResetOffset(topic string, partition int32, offset int64, metadata string) { + if pom := s.offsets.findPOM(topic, partition); pom != nil { + pom.ResetOffset(offset, metadata) + } +} + +func (s *consumerGroupSession) MarkMessage(msg *ConsumerMessage, metadata string) { + s.MarkOffset(msg.Topic, msg.Partition, msg.Offset+1, metadata) +} + +func (s *consumerGroupSession) Context() context.Context { + return s.ctx +} + +func (s *consumerGroupSession) consume(topic string, partition int32) { + // quick exit if rebalance is due + select { + case <-s.ctx.Done(): + return + case <-s.parent.closed: + return + default: + } + + // get next offset + offset := s.parent.config.Consumer.Offsets.Initial + if pom := s.offsets.findPOM(topic, partition); pom != nil { + offset, _ = pom.NextOffset() + } + + // create new claim + claim, err := newConsumerGroupClaim(s, topic, partition, offset) + if err != nil { + s.parent.handleError(err, topic, partition) + return + } + + // handle errors + go func() { + for err := range claim.Errors() { + s.parent.handleError(err, topic, partition) + } + }() + + // trigger close when session is done + go func() { + select { + case <-s.ctx.Done(): + case <-s.parent.closed: + } + claim.AsyncClose() + }() + + // start processing + if err := s.handler.ConsumeClaim(s, claim); err != nil { + s.parent.handleError(err, topic, partition) + } + + // ensure consumer is clased & drained + claim.AsyncClose() + for _, err := range claim.waitClosed() { + s.parent.handleError(err, topic, partition) + } +} + +func (s *consumerGroupSession) release(withCleanup bool) (err error) { + // signal release, stop heartbeat + s.cancel() + + // wait for consumers to exit + s.waitGroup.Wait() + + // perform release + s.releaseOnce.Do(func() { + if withCleanup { + if e := s.handler.Cleanup(s); e != nil { + s.parent.handleError(err, "", -1) + err = e + } + } + + if e := s.offsets.Close(); e != nil { + err = e + } + + close(s.hbDying) + <-s.hbDead + }) + + return +} + +func (s *consumerGroupSession) heartbeatLoop() { + defer close(s.hbDead) + defer s.cancel() // trigger the end of the session on exit + + pause := time.NewTicker(s.parent.config.Consumer.Group.Heartbeat.Interval) + defer pause.Stop() + + retries := s.parent.config.Metadata.Retry.Max + for { + coordinator, err := s.parent.client.Coordinator(s.parent.groupID) + if err != nil { + if retries <= 0 { + s.parent.handleError(err, "", -1) + return + } + + select { + case <-s.hbDying: + return + case <-time.After(s.parent.config.Metadata.Retry.Backoff): + retries-- + } + continue + } + + resp, err := s.parent.heartbeatRequest(coordinator, s.memberID, s.generationID) + if err != nil { + _ = coordinator.Close() + retries-- + continue + } + + switch resp.Err { + case ErrNoError: + retries = s.parent.config.Metadata.Retry.Max + case ErrRebalanceInProgress, ErrUnknownMemberId, ErrIllegalGeneration: + return + default: + s.parent.handleError(err, "", -1) + return + } + + select { + case <-pause.C: + case <-s.hbDying: + return + } + } +} + +// -------------------------------------------------------------------- + +// ConsumerGroupHandler instances are used to handle individual topic/partition claims. +// It also provides hooks for your consumer group session life-cycle and allow you to +// trigger logic before or after the consume loop(s). +// +// PLEASE NOTE that handlers are likely be called from several goroutines concurrently, +// ensure that all state is safely protected against race conditions. +type ConsumerGroupHandler interface { + // Setup is run at the beginning of a new session, before ConsumeClaim. + Setup(ConsumerGroupSession) error + + // Cleanup is run at the end of a session, once all ConsumeClaim goroutines have exites + // but before the offsets are committed for the very last time. + Cleanup(ConsumerGroupSession) error + + // ConsumeClaim must start a consumer loop of ConsumerGroupClaim's Messages(). + // Once the Messages() channel is closed, the Handler must finish its processing + // loop and exit. + ConsumeClaim(ConsumerGroupSession, ConsumerGroupClaim) error +} + +// ConsumerGroupClaim processes Kafka messages from a given topic and partition within a consumer group. +type ConsumerGroupClaim interface { + // Topic returns the consumed topic name. + Topic() string + + // Partition returns the consumed partition. + Partition() int32 + + // InitialOffset returns the initial offset that was used as a starting point for this claim. + InitialOffset() int64 + + // HighWaterMarkOffset returns the high water mark offset of the partition, + // i.e. the offset that will be used for the next message that will be produced. + // You can use this to determine how far behind the processing is. + HighWaterMarkOffset() int64 + + // Messages returns the read channel for the messages that are returned by + // the broker. The messages channel will be closed when a new rebalance cycle + // is due. You must finish processing and mark offsets within + // Config.Consumer.Group.Session.Timeout before the topic/partition is eventually + // re-assigned to another group member. + Messages() <-chan *ConsumerMessage +} + +type consumerGroupClaim struct { + topic string + partition int32 + offset int64 + PartitionConsumer +} + +func newConsumerGroupClaim(sess *consumerGroupSession, topic string, partition int32, offset int64) (*consumerGroupClaim, error) { + pcm, err := sess.parent.consumer.ConsumePartition(topic, partition, offset) + if err == ErrOffsetOutOfRange { + offset = sess.parent.config.Consumer.Offsets.Initial + pcm, err = sess.parent.consumer.ConsumePartition(topic, partition, offset) + } + if err != nil { + return nil, err + } + + go func() { + for err := range pcm.Errors() { + sess.parent.handleError(err, topic, partition) + } + }() + + return &consumerGroupClaim{ + topic: topic, + partition: partition, + offset: offset, + PartitionConsumer: pcm, + }, nil +} + +func (c *consumerGroupClaim) Topic() string { return c.topic } +func (c *consumerGroupClaim) Partition() int32 { return c.partition } +func (c *consumerGroupClaim) InitialOffset() int64 { return c.offset } + +// Drains messages and errors, ensures the claim is fully closed. +func (c *consumerGroupClaim) waitClosed() (errs ConsumerErrors) { + go func() { + for range c.Messages() { + } + }() + + for err := range c.Errors() { + errs = append(errs, err) + } + return +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/consumer_group_members.go b/vendor/github.com/Shopify/sarama/consumer_group_members.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/consumer_group_members.go rename to vendor/github.com/Shopify/sarama/consumer_group_members.go diff --git a/vendor/github.com/Shopify/sarama/consumer_metadata_request.go b/vendor/github.com/Shopify/sarama/consumer_metadata_request.go new file mode 100644 index 00000000..4de45e7b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer_metadata_request.go @@ -0,0 +1,33 @@ +package sarama + +type ConsumerMetadataRequest struct { + ConsumerGroup string +} + +func (r *ConsumerMetadataRequest) encode(pe packetEncoder) error { + tmp := new(FindCoordinatorRequest) + tmp.CoordinatorKey = r.ConsumerGroup + tmp.CoordinatorType = CoordinatorGroup + return tmp.encode(pe) +} + +func (r *ConsumerMetadataRequest) decode(pd packetDecoder, version int16) (err error) { + tmp := new(FindCoordinatorRequest) + if err := tmp.decode(pd, version); err != nil { + return err + } + r.ConsumerGroup = tmp.CoordinatorKey + return nil +} + +func (r *ConsumerMetadataRequest) key() int16 { + return 10 +} + +func (r *ConsumerMetadataRequest) version() int16 { + return 0 +} + +func (r *ConsumerMetadataRequest) requiredVersion() KafkaVersion { + return V0_8_2_0 +} diff --git a/vendor/github.com/Shopify/sarama/consumer_metadata_response.go b/vendor/github.com/Shopify/sarama/consumer_metadata_response.go new file mode 100644 index 00000000..442cbde7 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/consumer_metadata_response.go @@ -0,0 +1,77 @@ +package sarama + +import ( + "net" + "strconv" +) + +type ConsumerMetadataResponse struct { + Err KError + Coordinator *Broker + CoordinatorID int32 // deprecated: use Coordinator.ID() + CoordinatorHost string // deprecated: use Coordinator.Addr() + CoordinatorPort int32 // deprecated: use Coordinator.Addr() +} + +func (r *ConsumerMetadataResponse) decode(pd packetDecoder, version int16) (err error) { + tmp := new(FindCoordinatorResponse) + + if err := tmp.decode(pd, version); err != nil { + return err + } + + r.Err = tmp.Err + + r.Coordinator = tmp.Coordinator + if tmp.Coordinator == nil { + return nil + } + + // this can all go away in 2.0, but we have to fill in deprecated fields to maintain + // backwards compatibility + host, portstr, err := net.SplitHostPort(r.Coordinator.Addr()) + if err != nil { + return err + } + port, err := strconv.ParseInt(portstr, 10, 32) + if err != nil { + return err + } + r.CoordinatorID = r.Coordinator.ID() + r.CoordinatorHost = host + r.CoordinatorPort = int32(port) + + return nil +} + +func (r *ConsumerMetadataResponse) encode(pe packetEncoder) error { + if r.Coordinator == nil { + r.Coordinator = new(Broker) + r.Coordinator.id = r.CoordinatorID + r.Coordinator.addr = net.JoinHostPort(r.CoordinatorHost, strconv.Itoa(int(r.CoordinatorPort))) + } + + tmp := &FindCoordinatorResponse{ + Version: 0, + Err: r.Err, + Coordinator: r.Coordinator, + } + + if err := tmp.encode(pe); err != nil { + return err + } + + return nil +} + +func (r *ConsumerMetadataResponse) key() int16 { + return 10 +} + +func (r *ConsumerMetadataResponse) version() int16 { + return 0 +} + +func (r *ConsumerMetadataResponse) requiredVersion() KafkaVersion { + return V0_8_2_0 +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/crc32_field.go b/vendor/github.com/Shopify/sarama/crc32_field.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/crc32_field.go rename to vendor/github.com/Shopify/sarama/crc32_field.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_partitions_request.go b/vendor/github.com/Shopify/sarama/create_partitions_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_partitions_request.go rename to vendor/github.com/Shopify/sarama/create_partitions_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_partitions_response.go b/vendor/github.com/Shopify/sarama/create_partitions_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_partitions_response.go rename to vendor/github.com/Shopify/sarama/create_partitions_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_topics_request.go b/vendor/github.com/Shopify/sarama/create_topics_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_topics_request.go rename to vendor/github.com/Shopify/sarama/create_topics_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_topics_response.go b/vendor/github.com/Shopify/sarama/create_topics_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/create_topics_response.go rename to vendor/github.com/Shopify/sarama/create_topics_response.go diff --git a/vendor/github.com/Shopify/sarama/delete_groups_request.go b/vendor/github.com/Shopify/sarama/delete_groups_request.go new file mode 100644 index 00000000..305a324a --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_groups_request.go @@ -0,0 +1,30 @@ +package sarama + +type DeleteGroupsRequest struct { + Groups []string +} + +func (r *DeleteGroupsRequest) encode(pe packetEncoder) error { + return pe.putStringArray(r.Groups) +} + +func (r *DeleteGroupsRequest) decode(pd packetDecoder, version int16) (err error) { + r.Groups, err = pd.getStringArray() + return +} + +func (r *DeleteGroupsRequest) key() int16 { + return 42 +} + +func (r *DeleteGroupsRequest) version() int16 { + return 0 +} + +func (r *DeleteGroupsRequest) requiredVersion() KafkaVersion { + return V1_1_0_0 +} + +func (r *DeleteGroupsRequest) AddGroup(group string) { + r.Groups = append(r.Groups, group) +} diff --git a/vendor/github.com/Shopify/sarama/delete_groups_response.go b/vendor/github.com/Shopify/sarama/delete_groups_response.go new file mode 100644 index 00000000..c067ebb4 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_groups_response.go @@ -0,0 +1,70 @@ +package sarama + +import ( + "time" +) + +type DeleteGroupsResponse struct { + ThrottleTime time.Duration + GroupErrorCodes map[string]KError +} + +func (r *DeleteGroupsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(r.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(r.GroupErrorCodes)); err != nil { + return err + } + for groupID, errorCode := range r.GroupErrorCodes { + if err := pe.putString(groupID); err != nil { + return err + } + pe.putInt16(int16(errorCode)) + } + + return nil +} + +func (r *DeleteGroupsResponse) decode(pd packetDecoder, version int16) error { + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + r.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + if n == 0 { + return nil + } + + r.GroupErrorCodes = make(map[string]KError, n) + for i := 0; i < n; i++ { + groupID, err := pd.getString() + if err != nil { + return err + } + errorCode, err := pd.getInt16() + if err != nil { + return err + } + + r.GroupErrorCodes[groupID] = KError(errorCode) + } + + return nil +} + +func (r *DeleteGroupsResponse) key() int16 { + return 42 +} + +func (r *DeleteGroupsResponse) version() int16 { + return 0 +} + +func (r *DeleteGroupsResponse) requiredVersion() KafkaVersion { + return V1_1_0_0 +} diff --git a/vendor/github.com/Shopify/sarama/delete_records_request.go b/vendor/github.com/Shopify/sarama/delete_records_request.go new file mode 100644 index 00000000..93efafd4 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_records_request.go @@ -0,0 +1,126 @@ +package sarama + +import ( + "sort" + "time" +) + +// request message format is: +// [topic] timeout(int32) +// where topic is: +// name(string) [partition] +// where partition is: +// id(int32) offset(int64) + +type DeleteRecordsRequest struct { + Topics map[string]*DeleteRecordsRequestTopic + Timeout time.Duration +} + +func (d *DeleteRecordsRequest) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(d.Topics)); err != nil { + return err + } + keys := make([]string, 0, len(d.Topics)) + for topic := range d.Topics { + keys = append(keys, topic) + } + sort.Strings(keys) + for _, topic := range keys { + if err := pe.putString(topic); err != nil { + return err + } + if err := d.Topics[topic].encode(pe); err != nil { + return err + } + } + pe.putInt32(int32(d.Timeout / time.Millisecond)) + + return nil +} + +func (d *DeleteRecordsRequest) decode(pd packetDecoder, version int16) error { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + d.Topics = make(map[string]*DeleteRecordsRequestTopic, n) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + details := new(DeleteRecordsRequestTopic) + if err = details.decode(pd, version); err != nil { + return err + } + d.Topics[topic] = details + } + } + + timeout, err := pd.getInt32() + if err != nil { + return err + } + d.Timeout = time.Duration(timeout) * time.Millisecond + + return nil +} + +func (d *DeleteRecordsRequest) key() int16 { + return 21 +} + +func (d *DeleteRecordsRequest) version() int16 { + return 0 +} + +func (d *DeleteRecordsRequest) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +type DeleteRecordsRequestTopic struct { + PartitionOffsets map[int32]int64 // partition => offset +} + +func (t *DeleteRecordsRequestTopic) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(t.PartitionOffsets)); err != nil { + return err + } + keys := make([]int32, 0, len(t.PartitionOffsets)) + for partition := range t.PartitionOffsets { + keys = append(keys, partition) + } + sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] }) + for _, partition := range keys { + pe.putInt32(partition) + pe.putInt64(t.PartitionOffsets[partition]) + } + return nil +} + +func (t *DeleteRecordsRequestTopic) decode(pd packetDecoder, version int16) error { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + t.PartitionOffsets = make(map[int32]int64, n) + for i := 0; i < n; i++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + offset, err := pd.getInt64() + if err != nil { + return err + } + t.PartitionOffsets[partition] = offset + } + } + + return nil +} diff --git a/vendor/github.com/Shopify/sarama/delete_records_response.go b/vendor/github.com/Shopify/sarama/delete_records_response.go new file mode 100644 index 00000000..733a58b6 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/delete_records_response.go @@ -0,0 +1,158 @@ +package sarama + +import ( + "sort" + "time" +) + +// response message format is: +// throttleMs(int32) [topic] +// where topic is: +// name(string) [partition] +// where partition is: +// id(int32) low_watermark(int64) error_code(int16) + +type DeleteRecordsResponse struct { + Version int16 + ThrottleTime time.Duration + Topics map[string]*DeleteRecordsResponseTopic +} + +func (d *DeleteRecordsResponse) encode(pe packetEncoder) error { + pe.putInt32(int32(d.ThrottleTime / time.Millisecond)) + + if err := pe.putArrayLength(len(d.Topics)); err != nil { + return err + } + keys := make([]string, 0, len(d.Topics)) + for topic := range d.Topics { + keys = append(keys, topic) + } + sort.Strings(keys) + for _, topic := range keys { + if err := pe.putString(topic); err != nil { + return err + } + if err := d.Topics[topic].encode(pe); err != nil { + return err + } + } + return nil +} + +func (d *DeleteRecordsResponse) decode(pd packetDecoder, version int16) error { + d.Version = version + + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + d.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + d.Topics = make(map[string]*DeleteRecordsResponseTopic, n) + for i := 0; i < n; i++ { + topic, err := pd.getString() + if err != nil { + return err + } + details := new(DeleteRecordsResponseTopic) + if err = details.decode(pd, version); err != nil { + return err + } + d.Topics[topic] = details + } + } + + return nil +} + +func (d *DeleteRecordsResponse) key() int16 { + return 21 +} + +func (d *DeleteRecordsResponse) version() int16 { + return 0 +} + +func (d *DeleteRecordsResponse) requiredVersion() KafkaVersion { + return V0_11_0_0 +} + +type DeleteRecordsResponseTopic struct { + Partitions map[int32]*DeleteRecordsResponsePartition +} + +func (t *DeleteRecordsResponseTopic) encode(pe packetEncoder) error { + if err := pe.putArrayLength(len(t.Partitions)); err != nil { + return err + } + keys := make([]int32, 0, len(t.Partitions)) + for partition := range t.Partitions { + keys = append(keys, partition) + } + sort.Slice(keys, func(i, j int) bool { return keys[i] < keys[j] }) + for _, partition := range keys { + pe.putInt32(partition) + if err := t.Partitions[partition].encode(pe); err != nil { + return err + } + } + return nil +} + +func (t *DeleteRecordsResponseTopic) decode(pd packetDecoder, version int16) error { + n, err := pd.getArrayLength() + if err != nil { + return err + } + + if n > 0 { + t.Partitions = make(map[int32]*DeleteRecordsResponsePartition, n) + for i := 0; i < n; i++ { + partition, err := pd.getInt32() + if err != nil { + return err + } + details := new(DeleteRecordsResponsePartition) + if err = details.decode(pd, version); err != nil { + return err + } + t.Partitions[partition] = details + } + } + + return nil +} + +type DeleteRecordsResponsePartition struct { + LowWatermark int64 + Err KError +} + +func (t *DeleteRecordsResponsePartition) encode(pe packetEncoder) error { + pe.putInt64(t.LowWatermark) + pe.putInt16(int16(t.Err)) + return nil +} + +func (t *DeleteRecordsResponsePartition) decode(pd packetDecoder, version int16) error { + lowWatermark, err := pd.getInt64() + if err != nil { + return err + } + t.LowWatermark = lowWatermark + + kErr, err := pd.getInt16() + if err != nil { + return err + } + t.Err = KError(kErr) + + return nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/delete_topics_request.go b/vendor/github.com/Shopify/sarama/delete_topics_request.go similarity index 85% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/delete_topics_request.go rename to vendor/github.com/Shopify/sarama/delete_topics_request.go index ed9089ea..911f67d3 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/delete_topics_request.go +++ b/vendor/github.com/Shopify/sarama/delete_topics_request.go @@ -3,6 +3,7 @@ package sarama import "time" type DeleteTopicsRequest struct { + Version int16 Topics []string Timeout time.Duration } @@ -25,6 +26,7 @@ func (d *DeleteTopicsRequest) decode(pd packetDecoder, version int16) (err error return err } d.Timeout = time.Duration(timeout) * time.Millisecond + d.Version = version return nil } @@ -33,9 +35,14 @@ func (d *DeleteTopicsRequest) key() int16 { } func (d *DeleteTopicsRequest) version() int16 { - return 0 + return d.Version } func (d *DeleteTopicsRequest) requiredVersion() KafkaVersion { - return V0_10_1_0 + switch d.Version { + case 1: + return V0_11_0_0 + default: + return V0_10_1_0 + } } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/delete_topics_response.go b/vendor/github.com/Shopify/sarama/delete_topics_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/delete_topics_response.go rename to vendor/github.com/Shopify/sarama/delete_topics_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_configs_request.go b/vendor/github.com/Shopify/sarama/describe_configs_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_configs_request.go rename to vendor/github.com/Shopify/sarama/describe_configs_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_configs_response.go b/vendor/github.com/Shopify/sarama/describe_configs_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_configs_response.go rename to vendor/github.com/Shopify/sarama/describe_configs_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_groups_request.go b/vendor/github.com/Shopify/sarama/describe_groups_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_groups_request.go rename to vendor/github.com/Shopify/sarama/describe_groups_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_groups_response.go b/vendor/github.com/Shopify/sarama/describe_groups_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/describe_groups_response.go rename to vendor/github.com/Shopify/sarama/describe_groups_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/dev.yml b/vendor/github.com/Shopify/sarama/dev.yml similarity index 80% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/dev.yml rename to vendor/github.com/Shopify/sarama/dev.yml index 294fcdb4..97eed3ad 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/dev.yml +++ b/vendor/github.com/Shopify/sarama/dev.yml @@ -2,7 +2,7 @@ name: sarama up: - go: - version: '1.9' + version: '1.11' commands: test: diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/encoder_decoder.go b/vendor/github.com/Shopify/sarama/encoder_decoder.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/encoder_decoder.go rename to vendor/github.com/Shopify/sarama/encoder_decoder.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/end_txn_request.go b/vendor/github.com/Shopify/sarama/end_txn_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/end_txn_request.go rename to vendor/github.com/Shopify/sarama/end_txn_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/end_txn_response.go b/vendor/github.com/Shopify/sarama/end_txn_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/end_txn_response.go rename to vendor/github.com/Shopify/sarama/end_txn_response.go diff --git a/vendor/github.com/Shopify/sarama/errors.go b/vendor/github.com/Shopify/sarama/errors.go new file mode 100644 index 00000000..c578ef5f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/errors.go @@ -0,0 +1,281 @@ +package sarama + +import ( + "errors" + "fmt" +) + +// ErrOutOfBrokers is the error returned when the client has run out of brokers to talk to because all of them errored +// or otherwise failed to respond. +var ErrOutOfBrokers = errors.New("kafka: client has run out of available brokers to talk to (Is your cluster reachable?)") + +// ErrClosedClient is the error returned when a method is called on a client that has been closed. +var ErrClosedClient = errors.New("kafka: tried to use a client that was closed") + +// ErrIncompleteResponse is the error returned when the server returns a syntactically valid response, but it does +// not contain the expected information. +var ErrIncompleteResponse = errors.New("kafka: response did not contain all the expected topic/partition blocks") + +// ErrInvalidPartition is the error returned when a partitioner returns an invalid partition index +// (meaning one outside of the range [0...numPartitions-1]). +var ErrInvalidPartition = errors.New("kafka: partitioner returned an invalid partition index") + +// ErrAlreadyConnected is the error returned when calling Open() on a Broker that is already connected or connecting. +var ErrAlreadyConnected = errors.New("kafka: broker connection already initiated") + +// ErrNotConnected is the error returned when trying to send or call Close() on a Broker that is not connected. +var ErrNotConnected = errors.New("kafka: broker not connected") + +// ErrInsufficientData is returned when decoding and the packet is truncated. This can be expected +// when requesting messages, since as an optimization the server is allowed to return a partial message at the end +// of the message set. +var ErrInsufficientData = errors.New("kafka: insufficient data to decode packet, more bytes expected") + +// ErrShuttingDown is returned when a producer receives a message during shutdown. +var ErrShuttingDown = errors.New("kafka: message received by producer in process of shutting down") + +// ErrMessageTooLarge is returned when the next message to consume is larger than the configured Consumer.Fetch.Max +var ErrMessageTooLarge = errors.New("kafka: message is larger than Consumer.Fetch.Max") + +// ErrConsumerOffsetNotAdvanced is returned when a partition consumer didn't advance its offset after parsing +// a RecordBatch. +var ErrConsumerOffsetNotAdvanced = errors.New("kafka: consumer offset was not advanced after a RecordBatch") + +// ErrControllerNotAvailable is returned when server didn't give correct controller id. May be kafka server's version +// is lower than 0.10.0.0. +var ErrControllerNotAvailable = errors.New("kafka: controller is not available") + +// ErrNoTopicsToUpdateMetadata is returned when Meta.Full is set to false but no specific topics were found to update +// the metadata. +var ErrNoTopicsToUpdateMetadata = errors.New("kafka: no specific topics to update metadata") + +// PacketEncodingError is returned from a failure while encoding a Kafka packet. This can happen, for example, +// if you try to encode a string over 2^15 characters in length, since Kafka's encoding rules do not permit that. +type PacketEncodingError struct { + Info string +} + +func (err PacketEncodingError) Error() string { + return fmt.Sprintf("kafka: error encoding packet: %s", err.Info) +} + +// PacketDecodingError is returned when there was an error (other than truncated data) decoding the Kafka broker's response. +// This can be a bad CRC or length field, or any other invalid value. +type PacketDecodingError struct { + Info string +} + +func (err PacketDecodingError) Error() string { + return fmt.Sprintf("kafka: error decoding packet: %s", err.Info) +} + +// ConfigurationError is the type of error returned from a constructor (e.g. NewClient, or NewConsumer) +// when the specified configuration is invalid. +type ConfigurationError string + +func (err ConfigurationError) Error() string { + return "kafka: invalid configuration (" + string(err) + ")" +} + +// KError is the type of error that can be returned directly by the Kafka broker. +// See https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-ErrorCodes +type KError int16 + +// Numeric error codes returned by the Kafka server. +const ( + ErrNoError KError = 0 + ErrUnknown KError = -1 + ErrOffsetOutOfRange KError = 1 + ErrInvalidMessage KError = 2 + ErrUnknownTopicOrPartition KError = 3 + ErrInvalidMessageSize KError = 4 + ErrLeaderNotAvailable KError = 5 + ErrNotLeaderForPartition KError = 6 + ErrRequestTimedOut KError = 7 + ErrBrokerNotAvailable KError = 8 + ErrReplicaNotAvailable KError = 9 + ErrMessageSizeTooLarge KError = 10 + ErrStaleControllerEpochCode KError = 11 + ErrOffsetMetadataTooLarge KError = 12 + ErrNetworkException KError = 13 + ErrOffsetsLoadInProgress KError = 14 + ErrConsumerCoordinatorNotAvailable KError = 15 + ErrNotCoordinatorForConsumer KError = 16 + ErrInvalidTopic KError = 17 + ErrMessageSetSizeTooLarge KError = 18 + ErrNotEnoughReplicas KError = 19 + ErrNotEnoughReplicasAfterAppend KError = 20 + ErrInvalidRequiredAcks KError = 21 + ErrIllegalGeneration KError = 22 + ErrInconsistentGroupProtocol KError = 23 + ErrInvalidGroupId KError = 24 + ErrUnknownMemberId KError = 25 + ErrInvalidSessionTimeout KError = 26 + ErrRebalanceInProgress KError = 27 + ErrInvalidCommitOffsetSize KError = 28 + ErrTopicAuthorizationFailed KError = 29 + ErrGroupAuthorizationFailed KError = 30 + ErrClusterAuthorizationFailed KError = 31 + ErrInvalidTimestamp KError = 32 + ErrUnsupportedSASLMechanism KError = 33 + ErrIllegalSASLState KError = 34 + ErrUnsupportedVersion KError = 35 + ErrTopicAlreadyExists KError = 36 + ErrInvalidPartitions KError = 37 + ErrInvalidReplicationFactor KError = 38 + ErrInvalidReplicaAssignment KError = 39 + ErrInvalidConfig KError = 40 + ErrNotController KError = 41 + ErrInvalidRequest KError = 42 + ErrUnsupportedForMessageFormat KError = 43 + ErrPolicyViolation KError = 44 + ErrOutOfOrderSequenceNumber KError = 45 + ErrDuplicateSequenceNumber KError = 46 + ErrInvalidProducerEpoch KError = 47 + ErrInvalidTxnState KError = 48 + ErrInvalidProducerIDMapping KError = 49 + ErrInvalidTransactionTimeout KError = 50 + ErrConcurrentTransactions KError = 51 + ErrTransactionCoordinatorFenced KError = 52 + ErrTransactionalIDAuthorizationFailed KError = 53 + ErrSecurityDisabled KError = 54 + ErrOperationNotAttempted KError = 55 + ErrKafkaStorageError KError = 56 + ErrLogDirNotFound KError = 57 + ErrSASLAuthenticationFailed KError = 58 + ErrUnknownProducerID KError = 59 + ErrReassignmentInProgress KError = 60 +) + +func (err KError) Error() string { + // Error messages stolen/adapted from + // https://kafka.apache.org/protocol#protocol_error_codes + switch err { + case ErrNoError: + return "kafka server: Not an error, why are you printing me?" + case ErrUnknown: + return "kafka server: Unexpected (unknown?) server error." + case ErrOffsetOutOfRange: + return "kafka server: The requested offset is outside the range of offsets maintained by the server for the given topic/partition." + case ErrInvalidMessage: + return "kafka server: Message contents does not match its CRC." + case ErrUnknownTopicOrPartition: + return "kafka server: Request was for a topic or partition that does not exist on this broker." + case ErrInvalidMessageSize: + return "kafka server: The message has a negative size." + case ErrLeaderNotAvailable: + return "kafka server: In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes." + case ErrNotLeaderForPartition: + return "kafka server: Tried to send a message to a replica that is not the leader for some partition. Your metadata is out of date." + case ErrRequestTimedOut: + return "kafka server: Request exceeded the user-specified time limit in the request." + case ErrBrokerNotAvailable: + return "kafka server: Broker not available. Not a client facing error, we should never receive this!!!" + case ErrReplicaNotAvailable: + return "kafka server: Replica information not available, one or more brokers are down." + case ErrMessageSizeTooLarge: + return "kafka server: Message was too large, server rejected it to avoid allocation error." + case ErrStaleControllerEpochCode: + return "kafka server: StaleControllerEpochCode (internal error code for broker-to-broker communication)." + case ErrOffsetMetadataTooLarge: + return "kafka server: Specified a string larger than the configured maximum for offset metadata." + case ErrNetworkException: + return "kafka server: The server disconnected before a response was received." + case ErrOffsetsLoadInProgress: + return "kafka server: The broker is still loading offsets after a leader change for that offset's topic partition." + case ErrConsumerCoordinatorNotAvailable: + return "kafka server: Offset's topic has not yet been created." + case ErrNotCoordinatorForConsumer: + return "kafka server: Request was for a consumer group that is not coordinated by this broker." + case ErrInvalidTopic: + return "kafka server: The request attempted to perform an operation on an invalid topic." + case ErrMessageSetSizeTooLarge: + return "kafka server: The request included message batch larger than the configured segment size on the server." + case ErrNotEnoughReplicas: + return "kafka server: Messages are rejected since there are fewer in-sync replicas than required." + case ErrNotEnoughReplicasAfterAppend: + return "kafka server: Messages are written to the log, but to fewer in-sync replicas than required." + case ErrInvalidRequiredAcks: + return "kafka server: The number of required acks is invalid (should be either -1, 0, or 1)." + case ErrIllegalGeneration: + return "kafka server: The provided generation id is not the current generation." + case ErrInconsistentGroupProtocol: + return "kafka server: The provider group protocol type is incompatible with the other members." + case ErrInvalidGroupId: + return "kafka server: The provided group id was empty." + case ErrUnknownMemberId: + return "kafka server: The provided member is not known in the current generation." + case ErrInvalidSessionTimeout: + return "kafka server: The provided session timeout is outside the allowed range." + case ErrRebalanceInProgress: + return "kafka server: A rebalance for the group is in progress. Please re-join the group." + case ErrInvalidCommitOffsetSize: + return "kafka server: The provided commit metadata was too large." + case ErrTopicAuthorizationFailed: + return "kafka server: The client is not authorized to access this topic." + case ErrGroupAuthorizationFailed: + return "kafka server: The client is not authorized to access this group." + case ErrClusterAuthorizationFailed: + return "kafka server: The client is not authorized to send this request type." + case ErrInvalidTimestamp: + return "kafka server: The timestamp of the message is out of acceptable range." + case ErrUnsupportedSASLMechanism: + return "kafka server: The broker does not support the requested SASL mechanism." + case ErrIllegalSASLState: + return "kafka server: Request is not valid given the current SASL state." + case ErrUnsupportedVersion: + return "kafka server: The version of API is not supported." + case ErrTopicAlreadyExists: + return "kafka server: Topic with this name already exists." + case ErrInvalidPartitions: + return "kafka server: Number of partitions is invalid." + case ErrInvalidReplicationFactor: + return "kafka server: Replication-factor is invalid." + case ErrInvalidReplicaAssignment: + return "kafka server: Replica assignment is invalid." + case ErrInvalidConfig: + return "kafka server: Configuration is invalid." + case ErrNotController: + return "kafka server: This is not the correct controller for this cluster." + case ErrInvalidRequest: + return "kafka server: This most likely occurs because of a request being malformed by the client library or the message was sent to an incompatible broker. See the broker logs for more details." + case ErrUnsupportedForMessageFormat: + return "kafka server: The requested operation is not supported by the message format version." + case ErrPolicyViolation: + return "kafka server: Request parameters do not satisfy the configured policy." + case ErrOutOfOrderSequenceNumber: + return "kafka server: The broker received an out of order sequence number." + case ErrDuplicateSequenceNumber: + return "kafka server: The broker received a duplicate sequence number." + case ErrInvalidProducerEpoch: + return "kafka server: Producer attempted an operation with an old epoch." + case ErrInvalidTxnState: + return "kafka server: The producer attempted a transactional operation in an invalid state." + case ErrInvalidProducerIDMapping: + return "kafka server: The producer attempted to use a producer id which is not currently assigned to its transactional id." + case ErrInvalidTransactionTimeout: + return "kafka server: The transaction timeout is larger than the maximum value allowed by the broker (as configured by max.transaction.timeout.ms)." + case ErrConcurrentTransactions: + return "kafka server: The producer attempted to update a transaction while another concurrent operation on the same transaction was ongoing." + case ErrTransactionCoordinatorFenced: + return "kafka server: The transaction coordinator sending a WriteTxnMarker is no longer the current coordinator for a given producer." + case ErrTransactionalIDAuthorizationFailed: + return "kafka server: Transactional ID authorization failed." + case ErrSecurityDisabled: + return "kafka server: Security features are disabled." + case ErrOperationNotAttempted: + return "kafka server: The broker did not attempt to execute this operation." + case ErrKafkaStorageError: + return "kafka server: Disk error when trying to access log file on the disk." + case ErrLogDirNotFound: + return "kafka server: The specified log directory is not found in the broker config." + case ErrSASLAuthenticationFailed: + return "kafka server: SASL Authentication failed." + case ErrUnknownProducerID: + return "kafka server: The broker could not locate the producer metadata associated with the Producer ID." + case ErrReassignmentInProgress: + return "kafka server: A partition reassignment is in progress." + } + + return fmt.Sprintf("Unknown error, how did this happen? Error code = %d", err) +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/fetch_request.go b/vendor/github.com/Shopify/sarama/fetch_request.go similarity index 99% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/fetch_request.go rename to vendor/github.com/Shopify/sarama/fetch_request.go index 8c8e3a5a..462ab8af 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/fetch_request.go +++ b/vendor/github.com/Shopify/sarama/fetch_request.go @@ -149,7 +149,7 @@ func (r *FetchRequest) requiredVersion() KafkaVersion { case 4: return V0_11_0_0 default: - return minVersion + return MinVersion } } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/fetch_response.go b/vendor/github.com/Shopify/sarama/fetch_response.go similarity index 94% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/fetch_response.go rename to vendor/github.com/Shopify/sarama/fetch_response.go index 0e81ad89..dade1c47 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/fetch_response.go +++ b/vendor/github.com/Shopify/sarama/fetch_response.go @@ -104,15 +104,26 @@ func (b *FetchResponseBlock) decode(pd packetDecoder, version int16) (err error) return err } - // If we have at least one full records, we skip incomplete ones - if partial && len(b.RecordsSet) > 0 { - break + n, err := records.numRecords() + if err != nil { + return err } - b.RecordsSet = append(b.RecordsSet, records) + if n > 0 || (partial && len(b.RecordsSet) == 0) { + b.RecordsSet = append(b.RecordsSet, records) + + if b.Records == nil { + b.Records = records + } + } - if b.Records == nil { - b.Records = records + overflow, err := records.isOverflow() + if err != nil { + return err + } + + if partial || overflow { + break } } @@ -280,7 +291,7 @@ func (r *FetchResponse) requiredVersion() KafkaVersion { case 4: return V0_11_0_0 default: - return minVersion + return MinVersion } } @@ -353,7 +364,7 @@ func (r *FetchResponse) AddMessage(topic string, partition int32, key, value Enc records := newLegacyRecords(&MessageSet{}) frb.RecordsSet = []*Records{&records} } - set := frb.RecordsSet[0].msgSet + set := frb.RecordsSet[0].MsgSet set.Messages = append(set.Messages, msgBlock) } @@ -365,7 +376,7 @@ func (r *FetchResponse) AddRecord(topic string, partition int32, key, value Enco records := newDefaultRecords(&RecordBatch{Version: 2}) frb.RecordsSet = []*Records{&records} } - batch := frb.RecordsSet[0].recordBatch + batch := frb.RecordsSet[0].RecordBatch batch.addRecord(rec) } @@ -375,7 +386,7 @@ func (r *FetchResponse) SetLastOffsetDelta(topic string, partition int32, offset records := newDefaultRecords(&RecordBatch{Version: 2}) frb.RecordsSet = []*Records{&records} } - batch := frb.RecordsSet[0].recordBatch + batch := frb.RecordsSet[0].RecordBatch batch.LastOffsetDelta = offset } diff --git a/vendor/github.com/Shopify/sarama/find_coordinator_request.go b/vendor/github.com/Shopify/sarama/find_coordinator_request.go new file mode 100644 index 00000000..0ab5cb5f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/find_coordinator_request.go @@ -0,0 +1,61 @@ +package sarama + +type CoordinatorType int8 + +const ( + CoordinatorGroup CoordinatorType = 0 + CoordinatorTransaction CoordinatorType = 1 +) + +type FindCoordinatorRequest struct { + Version int16 + CoordinatorKey string + CoordinatorType CoordinatorType +} + +func (f *FindCoordinatorRequest) encode(pe packetEncoder) error { + if err := pe.putString(f.CoordinatorKey); err != nil { + return err + } + + if f.Version >= 1 { + pe.putInt8(int8(f.CoordinatorType)) + } + + return nil +} + +func (f *FindCoordinatorRequest) decode(pd packetDecoder, version int16) (err error) { + if f.CoordinatorKey, err = pd.getString(); err != nil { + return err + } + + if version >= 1 { + f.Version = version + coordinatorType, err := pd.getInt8() + if err != nil { + return err + } + + f.CoordinatorType = CoordinatorType(coordinatorType) + } + + return nil +} + +func (f *FindCoordinatorRequest) key() int16 { + return 10 +} + +func (f *FindCoordinatorRequest) version() int16 { + return f.Version +} + +func (f *FindCoordinatorRequest) requiredVersion() KafkaVersion { + switch f.Version { + case 1: + return V0_11_0_0 + default: + return V0_8_2_0 + } +} diff --git a/vendor/github.com/Shopify/sarama/find_coordinator_response.go b/vendor/github.com/Shopify/sarama/find_coordinator_response.go new file mode 100644 index 00000000..9c900e8b --- /dev/null +++ b/vendor/github.com/Shopify/sarama/find_coordinator_response.go @@ -0,0 +1,92 @@ +package sarama + +import ( + "time" +) + +var NoNode = &Broker{id: -1, addr: ":-1"} + +type FindCoordinatorResponse struct { + Version int16 + ThrottleTime time.Duration + Err KError + ErrMsg *string + Coordinator *Broker +} + +func (f *FindCoordinatorResponse) decode(pd packetDecoder, version int16) (err error) { + if version >= 1 { + f.Version = version + + throttleTime, err := pd.getInt32() + if err != nil { + return err + } + f.ThrottleTime = time.Duration(throttleTime) * time.Millisecond + } + + tmp, err := pd.getInt16() + if err != nil { + return err + } + f.Err = KError(tmp) + + if version >= 1 { + if f.ErrMsg, err = pd.getNullableString(); err != nil { + return err + } + } + + coordinator := new(Broker) + // The version is hardcoded to 0, as version 1 of the Broker-decode + // contains the rack-field which is not present in the FindCoordinatorResponse. + if err := coordinator.decode(pd, 0); err != nil { + return err + } + if coordinator.addr == ":0" { + return nil + } + f.Coordinator = coordinator + + return nil +} + +func (f *FindCoordinatorResponse) encode(pe packetEncoder) error { + if f.Version >= 1 { + pe.putInt32(int32(f.ThrottleTime / time.Millisecond)) + } + + pe.putInt16(int16(f.Err)) + + if f.Version >= 1 { + if err := pe.putNullableString(f.ErrMsg); err != nil { + return err + } + } + + coordinator := f.Coordinator + if coordinator == nil { + coordinator = NoNode + } + if err := coordinator.encode(pe, 0); err != nil { + return err + } + return nil +} + +func (f *FindCoordinatorResponse) key() int16 { + return 10 +} + +func (f *FindCoordinatorResponse) version() int16 { + return f.Version +} + +func (f *FindCoordinatorResponse) requiredVersion() KafkaVersion { + switch f.Version { + case 1: + return V0_11_0_0 + default: + return V0_8_2_0 + } +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/heartbeat_request.go b/vendor/github.com/Shopify/sarama/heartbeat_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/heartbeat_request.go rename to vendor/github.com/Shopify/sarama/heartbeat_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/heartbeat_response.go b/vendor/github.com/Shopify/sarama/heartbeat_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/heartbeat_response.go rename to vendor/github.com/Shopify/sarama/heartbeat_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/init_producer_id_request.go b/vendor/github.com/Shopify/sarama/init_producer_id_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/init_producer_id_request.go rename to vendor/github.com/Shopify/sarama/init_producer_id_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/init_producer_id_response.go b/vendor/github.com/Shopify/sarama/init_producer_id_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/init_producer_id_response.go rename to vendor/github.com/Shopify/sarama/init_producer_id_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/join_group_request.go b/vendor/github.com/Shopify/sarama/join_group_request.go similarity index 89% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/join_group_request.go rename to vendor/github.com/Shopify/sarama/join_group_request.go index 3a7ba171..97e9299e 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/join_group_request.go +++ b/vendor/github.com/Shopify/sarama/join_group_request.go @@ -25,8 +25,10 @@ func (p *GroupProtocol) encode(pe packetEncoder) (err error) { } type JoinGroupRequest struct { + Version int16 GroupId string SessionTimeout int32 + RebalanceTimeout int32 MemberId string ProtocolType string GroupProtocols map[string][]byte // deprecated; use OrderedGroupProtocols @@ -38,6 +40,9 @@ func (r *JoinGroupRequest) encode(pe packetEncoder) error { return err } pe.putInt32(r.SessionTimeout) + if r.Version >= 1 { + pe.putInt32(r.RebalanceTimeout) + } if err := pe.putString(r.MemberId); err != nil { return err } @@ -76,6 +81,8 @@ func (r *JoinGroupRequest) encode(pe packetEncoder) error { } func (r *JoinGroupRequest) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + if r.GroupId, err = pd.getString(); err != nil { return } @@ -84,6 +91,12 @@ func (r *JoinGroupRequest) decode(pd packetDecoder, version int16) (err error) { return } + if version >= 1 { + if r.RebalanceTimeout, err = pd.getInt32(); err != nil { + return err + } + } + if r.MemberId, err = pd.getString(); err != nil { return } @@ -118,11 +131,18 @@ func (r *JoinGroupRequest) key() int16 { } func (r *JoinGroupRequest) version() int16 { - return 0 + return r.Version } func (r *JoinGroupRequest) requiredVersion() KafkaVersion { - return V0_9_0_0 + switch r.Version { + case 2: + return V0_11_0_0 + case 1: + return V0_10_1_0 + default: + return V0_9_0_0 + } } func (r *JoinGroupRequest) AddGroupProtocol(name string, metadata []byte) { diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/join_group_response.go b/vendor/github.com/Shopify/sarama/join_group_response.go similarity index 86% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/join_group_response.go rename to vendor/github.com/Shopify/sarama/join_group_response.go index 6d35fe36..5752acc8 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/join_group_response.go +++ b/vendor/github.com/Shopify/sarama/join_group_response.go @@ -1,6 +1,8 @@ package sarama type JoinGroupResponse struct { + Version int16 + ThrottleTime int32 Err KError GenerationId int32 GroupProtocol string @@ -22,6 +24,9 @@ func (r *JoinGroupResponse) GetMembers() (map[string]ConsumerGroupMemberMetadata } func (r *JoinGroupResponse) encode(pe packetEncoder) error { + if r.Version >= 2 { + pe.putInt32(r.ThrottleTime) + } pe.putInt16(int16(r.Err)) pe.putInt32(r.GenerationId) @@ -53,6 +58,14 @@ func (r *JoinGroupResponse) encode(pe packetEncoder) error { } func (r *JoinGroupResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if version >= 2 { + if r.ThrottleTime, err = pd.getInt32(); err != nil { + return + } + } + kerr, err := pd.getInt16() if err != nil { return err @@ -107,9 +120,16 @@ func (r *JoinGroupResponse) key() int16 { } func (r *JoinGroupResponse) version() int16 { - return 0 + return r.Version } func (r *JoinGroupResponse) requiredVersion() KafkaVersion { - return V0_9_0_0 + switch r.Version { + case 2: + return V0_11_0_0 + case 1: + return V0_10_1_0 + default: + return V0_9_0_0 + } } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/leave_group_request.go b/vendor/github.com/Shopify/sarama/leave_group_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/leave_group_request.go rename to vendor/github.com/Shopify/sarama/leave_group_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/leave_group_response.go b/vendor/github.com/Shopify/sarama/leave_group_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/leave_group_response.go rename to vendor/github.com/Shopify/sarama/leave_group_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/length_field.go b/vendor/github.com/Shopify/sarama/length_field.go similarity index 84% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/length_field.go rename to vendor/github.com/Shopify/sarama/length_field.go index 576b1a6f..da199a70 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/length_field.go +++ b/vendor/github.com/Shopify/sarama/length_field.go @@ -5,6 +5,19 @@ import "encoding/binary" // LengthField implements the PushEncoder and PushDecoder interfaces for calculating 4-byte lengths. type lengthField struct { startOffset int + length int32 +} + +func (l *lengthField) decode(pd packetDecoder) error { + var err error + l.length, err = pd.getInt32() + if err != nil { + return err + } + if l.length > int32(pd.remaining()) { + return ErrInsufficientData + } + return nil } func (l *lengthField) saveOffset(in int) { @@ -21,7 +34,7 @@ func (l *lengthField) run(curOffset int, buf []byte) error { } func (l *lengthField) check(curOffset int, buf []byte) error { - if uint32(curOffset-l.startOffset-4) != binary.BigEndian.Uint32(buf[l.startOffset:]) { + if int32(curOffset-l.startOffset-4) != l.length { return PacketDecodingError{"length field invalid"} } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/list_groups_request.go b/vendor/github.com/Shopify/sarama/list_groups_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/list_groups_request.go rename to vendor/github.com/Shopify/sarama/list_groups_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/list_groups_response.go b/vendor/github.com/Shopify/sarama/list_groups_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/list_groups_response.go rename to vendor/github.com/Shopify/sarama/list_groups_response.go diff --git a/vendor/github.com/Shopify/sarama/message.go b/vendor/github.com/Shopify/sarama/message.go new file mode 100644 index 00000000..fecdbfde --- /dev/null +++ b/vendor/github.com/Shopify/sarama/message.go @@ -0,0 +1,223 @@ +package sarama + +import ( + "bytes" + "compress/gzip" + "fmt" + "io/ioutil" + "time" + + "github.com/eapache/go-xerial-snappy" + "github.com/pierrec/lz4" +) + +// CompressionCodec represents the various compression codecs recognized by Kafka in messages. +type CompressionCodec int8 + +// only the last two bits are really used +const compressionCodecMask int8 = 0x03 + +const ( + CompressionNone CompressionCodec = 0 + CompressionGZIP CompressionCodec = 1 + CompressionSnappy CompressionCodec = 2 + CompressionLZ4 CompressionCodec = 3 +) + +func (cc CompressionCodec) String() string { + return []string{ + "none", + "gzip", + "snappy", + "lz4", + }[int(cc)] +} + +// CompressionLevelDefault is the constant to use in CompressionLevel +// to have the default compression level for any codec. The value is picked +// that we don't use any existing compression levels. +const CompressionLevelDefault = -1000 + +type Message struct { + Codec CompressionCodec // codec used to compress the message contents + CompressionLevel int // compression level + Key []byte // the message key, may be nil + Value []byte // the message contents + Set *MessageSet // the message set a message might wrap + Version int8 // v1 requires Kafka 0.10 + Timestamp time.Time // the timestamp of the message (version 1+ only) + + compressedCache []byte + compressedSize int // used for computing the compression ratio metrics +} + +func (m *Message) encode(pe packetEncoder) error { + pe.push(newCRC32Field(crcIEEE)) + + pe.putInt8(m.Version) + + attributes := int8(m.Codec) & compressionCodecMask + pe.putInt8(attributes) + + if m.Version >= 1 { + if err := (Timestamp{&m.Timestamp}).encode(pe); err != nil { + return err + } + } + + err := pe.putBytes(m.Key) + if err != nil { + return err + } + + var payload []byte + + if m.compressedCache != nil { + payload = m.compressedCache + m.compressedCache = nil + } else if m.Value != nil { + switch m.Codec { + case CompressionNone: + payload = m.Value + case CompressionGZIP: + var buf bytes.Buffer + var writer *gzip.Writer + if m.CompressionLevel != CompressionLevelDefault { + writer, err = gzip.NewWriterLevel(&buf, m.CompressionLevel) + if err != nil { + return err + } + } else { + writer = gzip.NewWriter(&buf) + } + if _, err = writer.Write(m.Value); err != nil { + return err + } + if err = writer.Close(); err != nil { + return err + } + m.compressedCache = buf.Bytes() + payload = m.compressedCache + case CompressionSnappy: + tmp := snappy.Encode(m.Value) + m.compressedCache = tmp + payload = m.compressedCache + case CompressionLZ4: + var buf bytes.Buffer + writer := lz4.NewWriter(&buf) + if _, err = writer.Write(m.Value); err != nil { + return err + } + if err = writer.Close(); err != nil { + return err + } + m.compressedCache = buf.Bytes() + payload = m.compressedCache + + default: + return PacketEncodingError{fmt.Sprintf("unsupported compression codec (%d)", m.Codec)} + } + // Keep in mind the compressed payload size for metric gathering + m.compressedSize = len(payload) + } + + if err = pe.putBytes(payload); err != nil { + return err + } + + return pe.pop() +} + +func (m *Message) decode(pd packetDecoder) (err error) { + err = pd.push(newCRC32Field(crcIEEE)) + if err != nil { + return err + } + + m.Version, err = pd.getInt8() + if err != nil { + return err + } + + if m.Version > 1 { + return PacketDecodingError{fmt.Sprintf("unknown magic byte (%v)", m.Version)} + } + + attribute, err := pd.getInt8() + if err != nil { + return err + } + m.Codec = CompressionCodec(attribute & compressionCodecMask) + + if m.Version == 1 { + if err := (Timestamp{&m.Timestamp}).decode(pd); err != nil { + return err + } + } + + m.Key, err = pd.getBytes() + if err != nil { + return err + } + + m.Value, err = pd.getBytes() + if err != nil { + return err + } + + // Required for deep equal assertion during tests but might be useful + // for future metrics about the compression ratio in fetch requests + m.compressedSize = len(m.Value) + + switch m.Codec { + case CompressionNone: + // nothing to do + case CompressionGZIP: + if m.Value == nil { + break + } + reader, err := gzip.NewReader(bytes.NewReader(m.Value)) + if err != nil { + return err + } + if m.Value, err = ioutil.ReadAll(reader); err != nil { + return err + } + if err := m.decodeSet(); err != nil { + return err + } + case CompressionSnappy: + if m.Value == nil { + break + } + if m.Value, err = snappy.Decode(m.Value); err != nil { + return err + } + if err := m.decodeSet(); err != nil { + return err + } + case CompressionLZ4: + if m.Value == nil { + break + } + reader := lz4.NewReader(bytes.NewReader(m.Value)) + if m.Value, err = ioutil.ReadAll(reader); err != nil { + return err + } + if err := m.decodeSet(); err != nil { + return err + } + + default: + return PacketDecodingError{fmt.Sprintf("invalid compression specified (%d)", m.Codec)} + } + + return pd.pop() +} + +// decodes a message set from a previousy encoded bulk-message +func (m *Message) decodeSet() (err error) { + pd := realDecoder{raw: m.Value} + m.Set = &MessageSet{} + return m.Set.decode(&pd) +} diff --git a/vendor/github.com/Shopify/sarama/message_set.go b/vendor/github.com/Shopify/sarama/message_set.go new file mode 100644 index 00000000..600c7c4d --- /dev/null +++ b/vendor/github.com/Shopify/sarama/message_set.go @@ -0,0 +1,108 @@ +package sarama + +type MessageBlock struct { + Offset int64 + Msg *Message +} + +// Messages convenience helper which returns either all the +// messages that are wrapped in this block +func (msb *MessageBlock) Messages() []*MessageBlock { + if msb.Msg.Set != nil { + return msb.Msg.Set.Messages + } + return []*MessageBlock{msb} +} + +func (msb *MessageBlock) encode(pe packetEncoder) error { + pe.putInt64(msb.Offset) + pe.push(&lengthField{}) + err := msb.Msg.encode(pe) + if err != nil { + return err + } + return pe.pop() +} + +func (msb *MessageBlock) decode(pd packetDecoder) (err error) { + if msb.Offset, err = pd.getInt64(); err != nil { + return err + } + + if err = pd.push(&lengthField{}); err != nil { + return err + } + + msb.Msg = new(Message) + if err = msb.Msg.decode(pd); err != nil { + return err + } + + if err = pd.pop(); err != nil { + return err + } + + return nil +} + +type MessageSet struct { + PartialTrailingMessage bool // whether the set on the wire contained an incomplete trailing MessageBlock + OverflowMessage bool // whether the set on the wire contained an overflow message + Messages []*MessageBlock +} + +func (ms *MessageSet) encode(pe packetEncoder) error { + for i := range ms.Messages { + err := ms.Messages[i].encode(pe) + if err != nil { + return err + } + } + return nil +} + +func (ms *MessageSet) decode(pd packetDecoder) (err error) { + ms.Messages = nil + + for pd.remaining() > 0 { + magic, err := magicValue(pd) + if err != nil { + if err == ErrInsufficientData { + ms.PartialTrailingMessage = true + return nil + } + return err + } + + if magic > 1 { + return nil + } + + msb := new(MessageBlock) + err = msb.decode(pd) + switch err { + case nil: + ms.Messages = append(ms.Messages, msb) + case ErrInsufficientData: + // As an optimization the server is allowed to return a partial message at the + // end of the message set. Clients should handle this case. So we just ignore such things. + if msb.Offset == -1 { + // This is an overflow message caused by chunked down conversion + ms.OverflowMessage = true + } else { + ms.PartialTrailingMessage = true + } + return nil + default: + return err + } + } + + return nil +} + +func (ms *MessageSet) addMessage(msg *Message) { + block := new(MessageBlock) + block.Msg = msg + ms.Messages = append(ms.Messages, block) +} diff --git a/vendor/github.com/Shopify/sarama/metadata_request.go b/vendor/github.com/Shopify/sarama/metadata_request.go new file mode 100644 index 00000000..17dc4289 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/metadata_request.go @@ -0,0 +1,88 @@ +package sarama + +type MetadataRequest struct { + Version int16 + Topics []string + AllowAutoTopicCreation bool +} + +func (r *MetadataRequest) encode(pe packetEncoder) error { + if r.Version < 0 || r.Version > 5 { + return PacketEncodingError{"invalid or unsupported MetadataRequest version field"} + } + if r.Version == 0 || len(r.Topics) > 0 { + err := pe.putArrayLength(len(r.Topics)) + if err != nil { + return err + } + + for i := range r.Topics { + err = pe.putString(r.Topics[i]) + if err != nil { + return err + } + } + } else { + pe.putInt32(-1) + } + if r.Version > 3 { + pe.putBool(r.AllowAutoTopicCreation) + } + return nil +} + +func (r *MetadataRequest) decode(pd packetDecoder, version int16) error { + r.Version = version + size, err := pd.getInt32() + if err != nil { + return err + } + if size < 0 { + return nil + } else { + topicCount := size + if topicCount == 0 { + return nil + } + + r.Topics = make([]string, topicCount) + for i := range r.Topics { + topic, err := pd.getString() + if err != nil { + return err + } + r.Topics[i] = topic + } + } + if r.Version > 3 { + autoCreation, err := pd.getBool() + if err != nil { + return err + } + r.AllowAutoTopicCreation = autoCreation + } + return nil +} + +func (r *MetadataRequest) key() int16 { + return 3 +} + +func (r *MetadataRequest) version() int16 { + return r.Version +} + +func (r *MetadataRequest) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_10_0_0 + case 2: + return V0_10_1_0 + case 3, 4: + return V0_11_0_0 + case 5: + return V1_0_0_0 + default: + return MinVersion + } +} diff --git a/vendor/github.com/Shopify/sarama/metadata_response.go b/vendor/github.com/Shopify/sarama/metadata_response.go new file mode 100644 index 00000000..c402d05f --- /dev/null +++ b/vendor/github.com/Shopify/sarama/metadata_response.go @@ -0,0 +1,321 @@ +package sarama + +type PartitionMetadata struct { + Err KError + ID int32 + Leader int32 + Replicas []int32 + Isr []int32 + OfflineReplicas []int32 +} + +func (pm *PartitionMetadata) decode(pd packetDecoder, version int16) (err error) { + tmp, err := pd.getInt16() + if err != nil { + return err + } + pm.Err = KError(tmp) + + pm.ID, err = pd.getInt32() + if err != nil { + return err + } + + pm.Leader, err = pd.getInt32() + if err != nil { + return err + } + + pm.Replicas, err = pd.getInt32Array() + if err != nil { + return err + } + + pm.Isr, err = pd.getInt32Array() + if err != nil { + return err + } + + if version >= 5 { + pm.OfflineReplicas, err = pd.getInt32Array() + if err != nil { + return err + } + } + + return nil +} + +func (pm *PartitionMetadata) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(int16(pm.Err)) + pe.putInt32(pm.ID) + pe.putInt32(pm.Leader) + + err = pe.putInt32Array(pm.Replicas) + if err != nil { + return err + } + + err = pe.putInt32Array(pm.Isr) + if err != nil { + return err + } + + if version >= 5 { + err = pe.putInt32Array(pm.OfflineReplicas) + if err != nil { + return err + } + } + + return nil +} + +type TopicMetadata struct { + Err KError + Name string + IsInternal bool // Only valid for Version >= 1 + Partitions []*PartitionMetadata +} + +func (tm *TopicMetadata) decode(pd packetDecoder, version int16) (err error) { + tmp, err := pd.getInt16() + if err != nil { + return err + } + tm.Err = KError(tmp) + + tm.Name, err = pd.getString() + if err != nil { + return err + } + + if version >= 1 { + tm.IsInternal, err = pd.getBool() + if err != nil { + return err + } + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + tm.Partitions = make([]*PartitionMetadata, n) + for i := 0; i < n; i++ { + tm.Partitions[i] = new(PartitionMetadata) + err = tm.Partitions[i].decode(pd, version) + if err != nil { + return err + } + } + + return nil +} + +func (tm *TopicMetadata) encode(pe packetEncoder, version int16) (err error) { + pe.putInt16(int16(tm.Err)) + + err = pe.putString(tm.Name) + if err != nil { + return err + } + + if version >= 1 { + pe.putBool(tm.IsInternal) + } + + err = pe.putArrayLength(len(tm.Partitions)) + if err != nil { + return err + } + + for _, pm := range tm.Partitions { + err = pm.encode(pe, version) + if err != nil { + return err + } + } + + return nil +} + +type MetadataResponse struct { + Version int16 + ThrottleTimeMs int32 + Brokers []*Broker + ClusterID *string + ControllerID int32 + Topics []*TopicMetadata +} + +func (r *MetadataResponse) decode(pd packetDecoder, version int16) (err error) { + r.Version = version + + if version >= 3 { + r.ThrottleTimeMs, err = pd.getInt32() + if err != nil { + return err + } + } + + n, err := pd.getArrayLength() + if err != nil { + return err + } + + r.Brokers = make([]*Broker, n) + for i := 0; i < n; i++ { + r.Brokers[i] = new(Broker) + err = r.Brokers[i].decode(pd, version) + if err != nil { + return err + } + } + + if version >= 2 { + r.ClusterID, err = pd.getNullableString() + if err != nil { + return err + } + } + + if version >= 1 { + r.ControllerID, err = pd.getInt32() + if err != nil { + return err + } + } else { + r.ControllerID = -1 + } + + n, err = pd.getArrayLength() + if err != nil { + return err + } + + r.Topics = make([]*TopicMetadata, n) + for i := 0; i < n; i++ { + r.Topics[i] = new(TopicMetadata) + err = r.Topics[i].decode(pd, version) + if err != nil { + return err + } + } + + return nil +} + +func (r *MetadataResponse) encode(pe packetEncoder) error { + if r.Version >= 3 { + pe.putInt32(r.ThrottleTimeMs) + } + + err := pe.putArrayLength(len(r.Brokers)) + if err != nil { + return err + } + for _, broker := range r.Brokers { + err = broker.encode(pe, r.Version) + if err != nil { + return err + } + } + + if r.Version >= 2 { + err := pe.putNullableString(r.ClusterID) + if err != nil { + return err + } + } + + if r.Version >= 1 { + pe.putInt32(r.ControllerID) + } + + err = pe.putArrayLength(len(r.Topics)) + if err != nil { + return err + } + for _, tm := range r.Topics { + err = tm.encode(pe, r.Version) + if err != nil { + return err + } + } + + return nil +} + +func (r *MetadataResponse) key() int16 { + return 3 +} + +func (r *MetadataResponse) version() int16 { + return r.Version +} + +func (r *MetadataResponse) requiredVersion() KafkaVersion { + switch r.Version { + case 1: + return V0_10_0_0 + case 2: + return V0_10_1_0 + case 3, 4: + return V0_11_0_0 + case 5: + return V1_0_0_0 + default: + return MinVersion + } +} + +// testing API + +func (r *MetadataResponse) AddBroker(addr string, id int32) { + r.Brokers = append(r.Brokers, &Broker{id: id, addr: addr}) +} + +func (r *MetadataResponse) AddTopic(topic string, err KError) *TopicMetadata { + var tmatch *TopicMetadata + + for _, tm := range r.Topics { + if tm.Name == topic { + tmatch = tm + goto foundTopic + } + } + + tmatch = new(TopicMetadata) + tmatch.Name = topic + r.Topics = append(r.Topics, tmatch) + +foundTopic: + + tmatch.Err = err + return tmatch +} + +func (r *MetadataResponse) AddTopicPartition(topic string, partition, brokerID int32, replicas, isr []int32, err KError) { + tmatch := r.AddTopic(topic, ErrNoError) + var pmatch *PartitionMetadata + + for _, pm := range tmatch.Partitions { + if pm.ID == partition { + pmatch = pm + goto foundPartition + } + } + + pmatch = new(PartitionMetadata) + pmatch.ID = partition + tmatch.Partitions = append(tmatch.Partitions, pmatch) + +foundPartition: + + pmatch.Leader = brokerID + pmatch.Replicas = replicas + pmatch.Isr = isr + pmatch.Err = err + +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/metrics.go b/vendor/github.com/Shopify/sarama/metrics.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/metrics.go rename to vendor/github.com/Shopify/sarama/metrics.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/mockbroker.go b/vendor/github.com/Shopify/sarama/mockbroker.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/mockbroker.go rename to vendor/github.com/Shopify/sarama/mockbroker.go diff --git a/vendor/github.com/Shopify/sarama/mockresponses.go b/vendor/github.com/Shopify/sarama/mockresponses.go new file mode 100644 index 00000000..17204419 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/mockresponses.go @@ -0,0 +1,727 @@ +package sarama + +import ( + "fmt" +) + +// TestReporter has methods matching go's testing.T to avoid importing +// `testing` in the main part of the library. +type TestReporter interface { + Error(...interface{}) + Errorf(string, ...interface{}) + Fatal(...interface{}) + Fatalf(string, ...interface{}) +} + +// MockResponse is a response builder interface it defines one method that +// allows generating a response based on a request body. MockResponses are used +// to program behavior of MockBroker in tests. +type MockResponse interface { + For(reqBody versionedDecoder) (res encoder) +} + +// MockWrapper is a mock response builder that returns a particular concrete +// response regardless of the actual request passed to the `For` method. +type MockWrapper struct { + res encoder +} + +func (mw *MockWrapper) For(reqBody versionedDecoder) (res encoder) { + return mw.res +} + +func NewMockWrapper(res encoder) *MockWrapper { + return &MockWrapper{res: res} +} + +// MockSequence is a mock response builder that is created from a sequence of +// concrete responses. Every time when a `MockBroker` calls its `For` method +// the next response from the sequence is returned. When the end of the +// sequence is reached the last element from the sequence is returned. +type MockSequence struct { + responses []MockResponse +} + +func NewMockSequence(responses ...interface{}) *MockSequence { + ms := &MockSequence{} + ms.responses = make([]MockResponse, len(responses)) + for i, res := range responses { + switch res := res.(type) { + case MockResponse: + ms.responses[i] = res + case encoder: + ms.responses[i] = NewMockWrapper(res) + default: + panic(fmt.Sprintf("Unexpected response type: %T", res)) + } + } + return ms +} + +func (mc *MockSequence) For(reqBody versionedDecoder) (res encoder) { + res = mc.responses[0].For(reqBody) + if len(mc.responses) > 1 { + mc.responses = mc.responses[1:] + } + return res +} + +// MockMetadataResponse is a `MetadataResponse` builder. +type MockMetadataResponse struct { + controllerID int32 + leaders map[string]map[int32]int32 + brokers map[string]int32 + t TestReporter +} + +func NewMockMetadataResponse(t TestReporter) *MockMetadataResponse { + return &MockMetadataResponse{ + leaders: make(map[string]map[int32]int32), + brokers: make(map[string]int32), + t: t, + } +} + +func (mmr *MockMetadataResponse) SetLeader(topic string, partition, brokerID int32) *MockMetadataResponse { + partitions := mmr.leaders[topic] + if partitions == nil { + partitions = make(map[int32]int32) + mmr.leaders[topic] = partitions + } + partitions[partition] = brokerID + return mmr +} + +func (mmr *MockMetadataResponse) SetBroker(addr string, brokerID int32) *MockMetadataResponse { + mmr.brokers[addr] = brokerID + return mmr +} + +func (mmr *MockMetadataResponse) SetController(brokerID int32) *MockMetadataResponse { + mmr.controllerID = brokerID + return mmr +} + +func (mmr *MockMetadataResponse) For(reqBody versionedDecoder) encoder { + metadataRequest := reqBody.(*MetadataRequest) + metadataResponse := &MetadataResponse{ + Version: metadataRequest.version(), + ControllerID: mmr.controllerID, + } + for addr, brokerID := range mmr.brokers { + metadataResponse.AddBroker(addr, brokerID) + } + if len(metadataRequest.Topics) == 0 { + for topic, partitions := range mmr.leaders { + for partition, brokerID := range partitions { + metadataResponse.AddTopicPartition(topic, partition, brokerID, nil, nil, ErrNoError) + } + } + return metadataResponse + } + for _, topic := range metadataRequest.Topics { + for partition, brokerID := range mmr.leaders[topic] { + metadataResponse.AddTopicPartition(topic, partition, brokerID, nil, nil, ErrNoError) + } + } + return metadataResponse +} + +// MockOffsetResponse is an `OffsetResponse` builder. +type MockOffsetResponse struct { + offsets map[string]map[int32]map[int64]int64 + t TestReporter + version int16 +} + +func NewMockOffsetResponse(t TestReporter) *MockOffsetResponse { + return &MockOffsetResponse{ + offsets: make(map[string]map[int32]map[int64]int64), + t: t, + } +} + +func (mor *MockOffsetResponse) SetVersion(version int16) *MockOffsetResponse { + mor.version = version + return mor +} + +func (mor *MockOffsetResponse) SetOffset(topic string, partition int32, time, offset int64) *MockOffsetResponse { + partitions := mor.offsets[topic] + if partitions == nil { + partitions = make(map[int32]map[int64]int64) + mor.offsets[topic] = partitions + } + times := partitions[partition] + if times == nil { + times = make(map[int64]int64) + partitions[partition] = times + } + times[time] = offset + return mor +} + +func (mor *MockOffsetResponse) For(reqBody versionedDecoder) encoder { + offsetRequest := reqBody.(*OffsetRequest) + offsetResponse := &OffsetResponse{Version: mor.version} + for topic, partitions := range offsetRequest.blocks { + for partition, block := range partitions { + offset := mor.getOffset(topic, partition, block.time) + offsetResponse.AddTopicPartition(topic, partition, offset) + } + } + return offsetResponse +} + +func (mor *MockOffsetResponse) getOffset(topic string, partition int32, time int64) int64 { + partitions := mor.offsets[topic] + if partitions == nil { + mor.t.Errorf("missing topic: %s", topic) + } + times := partitions[partition] + if times == nil { + mor.t.Errorf("missing partition: %d", partition) + } + offset, ok := times[time] + if !ok { + mor.t.Errorf("missing time: %d", time) + } + return offset +} + +// MockFetchResponse is a `FetchResponse` builder. +type MockFetchResponse struct { + messages map[string]map[int32]map[int64]Encoder + highWaterMarks map[string]map[int32]int64 + t TestReporter + batchSize int + version int16 +} + +func NewMockFetchResponse(t TestReporter, batchSize int) *MockFetchResponse { + return &MockFetchResponse{ + messages: make(map[string]map[int32]map[int64]Encoder), + highWaterMarks: make(map[string]map[int32]int64), + t: t, + batchSize: batchSize, + } +} + +func (mfr *MockFetchResponse) SetVersion(version int16) *MockFetchResponse { + mfr.version = version + return mfr +} + +func (mfr *MockFetchResponse) SetMessage(topic string, partition int32, offset int64, msg Encoder) *MockFetchResponse { + partitions := mfr.messages[topic] + if partitions == nil { + partitions = make(map[int32]map[int64]Encoder) + mfr.messages[topic] = partitions + } + messages := partitions[partition] + if messages == nil { + messages = make(map[int64]Encoder) + partitions[partition] = messages + } + messages[offset] = msg + return mfr +} + +func (mfr *MockFetchResponse) SetHighWaterMark(topic string, partition int32, offset int64) *MockFetchResponse { + partitions := mfr.highWaterMarks[topic] + if partitions == nil { + partitions = make(map[int32]int64) + mfr.highWaterMarks[topic] = partitions + } + partitions[partition] = offset + return mfr +} + +func (mfr *MockFetchResponse) For(reqBody versionedDecoder) encoder { + fetchRequest := reqBody.(*FetchRequest) + res := &FetchResponse{ + Version: mfr.version, + } + for topic, partitions := range fetchRequest.blocks { + for partition, block := range partitions { + initialOffset := block.fetchOffset + offset := initialOffset + maxOffset := initialOffset + int64(mfr.getMessageCount(topic, partition)) + for i := 0; i < mfr.batchSize && offset < maxOffset; { + msg := mfr.getMessage(topic, partition, offset) + if msg != nil { + res.AddMessage(topic, partition, nil, msg, offset) + i++ + } + offset++ + } + fb := res.GetBlock(topic, partition) + if fb == nil { + res.AddError(topic, partition, ErrNoError) + fb = res.GetBlock(topic, partition) + } + fb.HighWaterMarkOffset = mfr.getHighWaterMark(topic, partition) + } + } + return res +} + +func (mfr *MockFetchResponse) getMessage(topic string, partition int32, offset int64) Encoder { + partitions := mfr.messages[topic] + if partitions == nil { + return nil + } + messages := partitions[partition] + if messages == nil { + return nil + } + return messages[offset] +} + +func (mfr *MockFetchResponse) getMessageCount(topic string, partition int32) int { + partitions := mfr.messages[topic] + if partitions == nil { + return 0 + } + messages := partitions[partition] + if messages == nil { + return 0 + } + return len(messages) +} + +func (mfr *MockFetchResponse) getHighWaterMark(topic string, partition int32) int64 { + partitions := mfr.highWaterMarks[topic] + if partitions == nil { + return 0 + } + return partitions[partition] +} + +// MockConsumerMetadataResponse is a `ConsumerMetadataResponse` builder. +type MockConsumerMetadataResponse struct { + coordinators map[string]interface{} + t TestReporter +} + +func NewMockConsumerMetadataResponse(t TestReporter) *MockConsumerMetadataResponse { + return &MockConsumerMetadataResponse{ + coordinators: make(map[string]interface{}), + t: t, + } +} + +func (mr *MockConsumerMetadataResponse) SetCoordinator(group string, broker *MockBroker) *MockConsumerMetadataResponse { + mr.coordinators[group] = broker + return mr +} + +func (mr *MockConsumerMetadataResponse) SetError(group string, kerror KError) *MockConsumerMetadataResponse { + mr.coordinators[group] = kerror + return mr +} + +func (mr *MockConsumerMetadataResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*ConsumerMetadataRequest) + group := req.ConsumerGroup + res := &ConsumerMetadataResponse{} + v := mr.coordinators[group] + switch v := v.(type) { + case *MockBroker: + res.Coordinator = &Broker{id: v.BrokerID(), addr: v.Addr()} + case KError: + res.Err = v + } + return res +} + +// MockFindCoordinatorResponse is a `FindCoordinatorResponse` builder. +type MockFindCoordinatorResponse struct { + groupCoordinators map[string]interface{} + transCoordinators map[string]interface{} + t TestReporter +} + +func NewMockFindCoordinatorResponse(t TestReporter) *MockFindCoordinatorResponse { + return &MockFindCoordinatorResponse{ + groupCoordinators: make(map[string]interface{}), + transCoordinators: make(map[string]interface{}), + t: t, + } +} + +func (mr *MockFindCoordinatorResponse) SetCoordinator(coordinatorType CoordinatorType, group string, broker *MockBroker) *MockFindCoordinatorResponse { + switch coordinatorType { + case CoordinatorGroup: + mr.groupCoordinators[group] = broker + case CoordinatorTransaction: + mr.transCoordinators[group] = broker + } + return mr +} + +func (mr *MockFindCoordinatorResponse) SetError(coordinatorType CoordinatorType, group string, kerror KError) *MockFindCoordinatorResponse { + switch coordinatorType { + case CoordinatorGroup: + mr.groupCoordinators[group] = kerror + case CoordinatorTransaction: + mr.transCoordinators[group] = kerror + } + return mr +} + +func (mr *MockFindCoordinatorResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*FindCoordinatorRequest) + res := &FindCoordinatorResponse{} + var v interface{} + switch req.CoordinatorType { + case CoordinatorGroup: + v = mr.groupCoordinators[req.CoordinatorKey] + case CoordinatorTransaction: + v = mr.transCoordinators[req.CoordinatorKey] + } + switch v := v.(type) { + case *MockBroker: + res.Coordinator = &Broker{id: v.BrokerID(), addr: v.Addr()} + case KError: + res.Err = v + } + return res +} + +// MockOffsetCommitResponse is a `OffsetCommitResponse` builder. +type MockOffsetCommitResponse struct { + errors map[string]map[string]map[int32]KError + t TestReporter +} + +func NewMockOffsetCommitResponse(t TestReporter) *MockOffsetCommitResponse { + return &MockOffsetCommitResponse{t: t} +} + +func (mr *MockOffsetCommitResponse) SetError(group, topic string, partition int32, kerror KError) *MockOffsetCommitResponse { + if mr.errors == nil { + mr.errors = make(map[string]map[string]map[int32]KError) + } + topics := mr.errors[group] + if topics == nil { + topics = make(map[string]map[int32]KError) + mr.errors[group] = topics + } + partitions := topics[topic] + if partitions == nil { + partitions = make(map[int32]KError) + topics[topic] = partitions + } + partitions[partition] = kerror + return mr +} + +func (mr *MockOffsetCommitResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*OffsetCommitRequest) + group := req.ConsumerGroup + res := &OffsetCommitResponse{} + for topic, partitions := range req.blocks { + for partition := range partitions { + res.AddError(topic, partition, mr.getError(group, topic, partition)) + } + } + return res +} + +func (mr *MockOffsetCommitResponse) getError(group, topic string, partition int32) KError { + topics := mr.errors[group] + if topics == nil { + return ErrNoError + } + partitions := topics[topic] + if partitions == nil { + return ErrNoError + } + kerror, ok := partitions[partition] + if !ok { + return ErrNoError + } + return kerror +} + +// MockProduceResponse is a `ProduceResponse` builder. +type MockProduceResponse struct { + version int16 + errors map[string]map[int32]KError + t TestReporter +} + +func NewMockProduceResponse(t TestReporter) *MockProduceResponse { + return &MockProduceResponse{t: t} +} + +func (mr *MockProduceResponse) SetVersion(version int16) *MockProduceResponse { + mr.version = version + return mr +} + +func (mr *MockProduceResponse) SetError(topic string, partition int32, kerror KError) *MockProduceResponse { + if mr.errors == nil { + mr.errors = make(map[string]map[int32]KError) + } + partitions := mr.errors[topic] + if partitions == nil { + partitions = make(map[int32]KError) + mr.errors[topic] = partitions + } + partitions[partition] = kerror + return mr +} + +func (mr *MockProduceResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*ProduceRequest) + res := &ProduceResponse{ + Version: mr.version, + } + for topic, partitions := range req.records { + for partition := range partitions { + res.AddTopicPartition(topic, partition, mr.getError(topic, partition)) + } + } + return res +} + +func (mr *MockProduceResponse) getError(topic string, partition int32) KError { + partitions := mr.errors[topic] + if partitions == nil { + return ErrNoError + } + kerror, ok := partitions[partition] + if !ok { + return ErrNoError + } + return kerror +} + +// MockOffsetFetchResponse is a `OffsetFetchResponse` builder. +type MockOffsetFetchResponse struct { + offsets map[string]map[string]map[int32]*OffsetFetchResponseBlock + t TestReporter +} + +func NewMockOffsetFetchResponse(t TestReporter) *MockOffsetFetchResponse { + return &MockOffsetFetchResponse{t: t} +} + +func (mr *MockOffsetFetchResponse) SetOffset(group, topic string, partition int32, offset int64, metadata string, kerror KError) *MockOffsetFetchResponse { + if mr.offsets == nil { + mr.offsets = make(map[string]map[string]map[int32]*OffsetFetchResponseBlock) + } + topics := mr.offsets[group] + if topics == nil { + topics = make(map[string]map[int32]*OffsetFetchResponseBlock) + mr.offsets[group] = topics + } + partitions := topics[topic] + if partitions == nil { + partitions = make(map[int32]*OffsetFetchResponseBlock) + topics[topic] = partitions + } + partitions[partition] = &OffsetFetchResponseBlock{offset, metadata, kerror} + return mr +} + +func (mr *MockOffsetFetchResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*OffsetFetchRequest) + group := req.ConsumerGroup + res := &OffsetFetchResponse{} + for topic, partitions := range mr.offsets[group] { + for partition, block := range partitions { + res.AddBlock(topic, partition, block) + } + } + return res +} + +type MockCreateTopicsResponse struct { + t TestReporter +} + +func NewMockCreateTopicsResponse(t TestReporter) *MockCreateTopicsResponse { + return &MockCreateTopicsResponse{t: t} +} + +func (mr *MockCreateTopicsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*CreateTopicsRequest) + res := &CreateTopicsResponse{} + res.TopicErrors = make(map[string]*TopicError) + + for topic, _ := range req.TopicDetails { + res.TopicErrors[topic] = &TopicError{Err: ErrNoError} + } + return res +} + +type MockDeleteTopicsResponse struct { + t TestReporter +} + +func NewMockDeleteTopicsResponse(t TestReporter) *MockDeleteTopicsResponse { + return &MockDeleteTopicsResponse{t: t} +} + +func (mr *MockDeleteTopicsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DeleteTopicsRequest) + res := &DeleteTopicsResponse{} + res.TopicErrorCodes = make(map[string]KError) + + for _, topic := range req.Topics { + res.TopicErrorCodes[topic] = ErrNoError + } + return res +} + +type MockCreatePartitionsResponse struct { + t TestReporter +} + +func NewMockCreatePartitionsResponse(t TestReporter) *MockCreatePartitionsResponse { + return &MockCreatePartitionsResponse{t: t} +} + +func (mr *MockCreatePartitionsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*CreatePartitionsRequest) + res := &CreatePartitionsResponse{} + res.TopicPartitionErrors = make(map[string]*TopicPartitionError) + + for topic, _ := range req.TopicPartitions { + res.TopicPartitionErrors[topic] = &TopicPartitionError{Err: ErrNoError} + } + return res +} + +type MockDeleteRecordsResponse struct { + t TestReporter +} + +func NewMockDeleteRecordsResponse(t TestReporter) *MockDeleteRecordsResponse { + return &MockDeleteRecordsResponse{t: t} +} + +func (mr *MockDeleteRecordsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DeleteRecordsRequest) + res := &DeleteRecordsResponse{} + res.Topics = make(map[string]*DeleteRecordsResponseTopic) + + for topic, deleteRecordRequestTopic := range req.Topics { + partitions := make(map[int32]*DeleteRecordsResponsePartition) + for partition, _ := range deleteRecordRequestTopic.PartitionOffsets { + partitions[partition] = &DeleteRecordsResponsePartition{Err: ErrNoError} + } + res.Topics[topic] = &DeleteRecordsResponseTopic{Partitions: partitions} + } + return res +} + +type MockDescribeConfigsResponse struct { + t TestReporter +} + +func NewMockDescribeConfigsResponse(t TestReporter) *MockDescribeConfigsResponse { + return &MockDescribeConfigsResponse{t: t} +} + +func (mr *MockDescribeConfigsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DescribeConfigsRequest) + res := &DescribeConfigsResponse{} + + var configEntries []*ConfigEntry + configEntries = append(configEntries, &ConfigEntry{Name: "my_topic", + Value: "my_topic", + ReadOnly: true, + Default: true, + Sensitive: false, + }) + + for _, r := range req.Resources { + res.Resources = append(res.Resources, &ResourceResponse{Name: r.Name, Configs: configEntries}) + } + return res +} + +type MockAlterConfigsResponse struct { + t TestReporter +} + +func NewMockAlterConfigsResponse(t TestReporter) *MockAlterConfigsResponse { + return &MockAlterConfigsResponse{t: t} +} + +func (mr *MockAlterConfigsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*AlterConfigsRequest) + res := &AlterConfigsResponse{} + + for _, r := range req.Resources { + res.Resources = append(res.Resources, &AlterConfigsResourceResponse{Name: r.Name, + Type: TopicResource, + ErrorMsg: "", + }) + } + return res +} + +type MockCreateAclsResponse struct { + t TestReporter +} + +func NewMockCreateAclsResponse(t TestReporter) *MockCreateAclsResponse { + return &MockCreateAclsResponse{t: t} +} + +func (mr *MockCreateAclsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*CreateAclsRequest) + res := &CreateAclsResponse{} + + for range req.AclCreations { + res.AclCreationResponses = append(res.AclCreationResponses, &AclCreationResponse{Err: ErrNoError}) + } + return res +} + +type MockListAclsResponse struct { + t TestReporter +} + +func NewMockListAclsResponse(t TestReporter) *MockListAclsResponse { + return &MockListAclsResponse{t: t} +} + +func (mr *MockListAclsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DescribeAclsRequest) + res := &DescribeAclsResponse{} + + res.Err = ErrNoError + acl := &ResourceAcls{} + acl.Resource.ResourceName = *req.ResourceName + acl.Resource.ResourceType = req.ResourceType + acl.Acls = append(acl.Acls, &Acl{}) + res.ResourceAcls = append(res.ResourceAcls, acl) + + return res +} + +type MockDeleteAclsResponse struct { + t TestReporter +} + +func NewMockDeleteAclsResponse(t TestReporter) *MockDeleteAclsResponse { + return &MockDeleteAclsResponse{t: t} +} + +func (mr *MockDeleteAclsResponse) For(reqBody versionedDecoder) encoder { + req := reqBody.(*DeleteAclsRequest) + res := &DeleteAclsResponse{} + + for range req.Filters { + response := &FilterResponse{Err: ErrNoError} + response.MatchingAcls = append(response.MatchingAcls, &MatchingAcl{Err: ErrNoError}) + res.FilterResponses = append(res.FilterResponses, response) + } + return res +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_commit_request.go b/vendor/github.com/Shopify/sarama/offset_commit_request.go similarity index 92% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_commit_request.go rename to vendor/github.com/Shopify/sarama/offset_commit_request.go index b21ea634..37e99fbf 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_commit_request.go +++ b/vendor/github.com/Shopify/sarama/offset_commit_request.go @@ -1,5 +1,7 @@ package sarama +import "errors" + // ReceiveTime is a special value for the timestamp field of Offset Commit Requests which // tells the broker to set the timestamp to the time at which the request was received. // The timestamp is only used if message version 1 is used, which requires kafka 0.8.2. @@ -173,7 +175,7 @@ func (r *OffsetCommitRequest) requiredVersion() KafkaVersion { case 2: return V0_9_0_0 default: - return minVersion + return MinVersion } } @@ -188,3 +190,15 @@ func (r *OffsetCommitRequest) AddBlock(topic string, partitionID int32, offset i r.blocks[topic][partitionID] = &offsetCommitRequestBlock{offset, timestamp, metadata} } + +func (r *OffsetCommitRequest) Offset(topic string, partitionID int32) (int64, string, error) { + partitions := r.blocks[topic] + if partitions == nil { + return 0, "", errors.New("No such offset") + } + block := partitions[partitionID] + if block == nil { + return 0, "", errors.New("No such offset") + } + return block.offset, block.metadata, nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_commit_response.go b/vendor/github.com/Shopify/sarama/offset_commit_response.go similarity index 98% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_commit_response.go rename to vendor/github.com/Shopify/sarama/offset_commit_response.go index 7f277e77..a4b18acd 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_commit_response.go +++ b/vendor/github.com/Shopify/sarama/offset_commit_response.go @@ -81,5 +81,5 @@ func (r *OffsetCommitResponse) version() int16 { } func (r *OffsetCommitResponse) requiredVersion() KafkaVersion { - return minVersion + return MinVersion } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_fetch_request.go b/vendor/github.com/Shopify/sarama/offset_fetch_request.go similarity index 98% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_fetch_request.go rename to vendor/github.com/Shopify/sarama/offset_fetch_request.go index b19fe79b..5a05014b 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_fetch_request.go +++ b/vendor/github.com/Shopify/sarama/offset_fetch_request.go @@ -68,7 +68,7 @@ func (r *OffsetFetchRequest) requiredVersion() KafkaVersion { case 1: return V0_8_2_0 default: - return minVersion + return MinVersion } } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_fetch_response.go b/vendor/github.com/Shopify/sarama/offset_fetch_response.go similarity index 99% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_fetch_response.go rename to vendor/github.com/Shopify/sarama/offset_fetch_response.go index 323220ea..11e4b1f3 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_fetch_response.go +++ b/vendor/github.com/Shopify/sarama/offset_fetch_response.go @@ -115,7 +115,7 @@ func (r *OffsetFetchResponse) version() int16 { } func (r *OffsetFetchResponse) requiredVersion() KafkaVersion { - return minVersion + return MinVersion } func (r *OffsetFetchResponse) GetBlock(topic string, partition int32) *OffsetFetchResponseBlock { diff --git a/vendor/github.com/Shopify/sarama/offset_manager.go b/vendor/github.com/Shopify/sarama/offset_manager.go new file mode 100644 index 00000000..8ea857f8 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/offset_manager.go @@ -0,0 +1,572 @@ +package sarama + +import ( + "sync" + "time" +) + +// Offset Manager + +// OffsetManager uses Kafka to store and fetch consumed partition offsets. +type OffsetManager interface { + // ManagePartition creates a PartitionOffsetManager on the given topic/partition. + // It will return an error if this OffsetManager is already managing the given + // topic/partition. + ManagePartition(topic string, partition int32) (PartitionOffsetManager, error) + + // Close stops the OffsetManager from managing offsets. It is required to call + // this function before an OffsetManager object passes out of scope, as it + // will otherwise leak memory. You must call this after all the + // PartitionOffsetManagers are closed. + Close() error +} + +type offsetManager struct { + client Client + conf *Config + group string + ticker *time.Ticker + + memberID string + generation int32 + + broker *Broker + brokerLock sync.RWMutex + + poms map[string]map[int32]*partitionOffsetManager + pomsLock sync.RWMutex + + closeOnce sync.Once + closing chan none + closed chan none +} + +// NewOffsetManagerFromClient creates a new OffsetManager from the given client. +// It is still necessary to call Close() on the underlying client when finished with the partition manager. +func NewOffsetManagerFromClient(group string, client Client) (OffsetManager, error) { + return newOffsetManagerFromClient(group, "", GroupGenerationUndefined, client) +} + +func newOffsetManagerFromClient(group, memberID string, generation int32, client Client) (*offsetManager, error) { + // Check that we are not dealing with a closed Client before processing any other arguments + if client.Closed() { + return nil, ErrClosedClient + } + + conf := client.Config() + om := &offsetManager{ + client: client, + conf: conf, + group: group, + ticker: time.NewTicker(conf.Consumer.Offsets.CommitInterval), + poms: make(map[string]map[int32]*partitionOffsetManager), + + memberID: memberID, + generation: generation, + + closing: make(chan none), + closed: make(chan none), + } + go withRecover(om.mainLoop) + + return om, nil +} + +func (om *offsetManager) ManagePartition(topic string, partition int32) (PartitionOffsetManager, error) { + pom, err := om.newPartitionOffsetManager(topic, partition) + if err != nil { + return nil, err + } + + om.pomsLock.Lock() + defer om.pomsLock.Unlock() + + topicManagers := om.poms[topic] + if topicManagers == nil { + topicManagers = make(map[int32]*partitionOffsetManager) + om.poms[topic] = topicManagers + } + + if topicManagers[partition] != nil { + return nil, ConfigurationError("That topic/partition is already being managed") + } + + topicManagers[partition] = pom + return pom, nil +} + +func (om *offsetManager) Close() error { + om.closeOnce.Do(func() { + // exit the mainLoop + close(om.closing) + <-om.closed + + // mark all POMs as closed + om.asyncClosePOMs() + + // flush one last time + for attempt := 0; attempt <= om.conf.Consumer.Offsets.Retry.Max; attempt++ { + om.flushToBroker() + if om.releasePOMs(false) == 0 { + break + } + } + + om.releasePOMs(true) + om.brokerLock.Lock() + om.broker = nil + om.brokerLock.Unlock() + }) + return nil +} + +func (om *offsetManager) fetchInitialOffset(topic string, partition int32, retries int) (int64, string, error) { + broker, err := om.coordinator() + if err != nil { + if retries <= 0 { + return 0, "", err + } + return om.fetchInitialOffset(topic, partition, retries-1) + } + + req := new(OffsetFetchRequest) + req.Version = 1 + req.ConsumerGroup = om.group + req.AddPartition(topic, partition) + + resp, err := broker.FetchOffset(req) + if err != nil { + if retries <= 0 { + return 0, "", err + } + om.releaseCoordinator(broker) + return om.fetchInitialOffset(topic, partition, retries-1) + } + + block := resp.GetBlock(topic, partition) + if block == nil { + return 0, "", ErrIncompleteResponse + } + + switch block.Err { + case ErrNoError: + return block.Offset, block.Metadata, nil + case ErrNotCoordinatorForConsumer: + if retries <= 0 { + return 0, "", block.Err + } + om.releaseCoordinator(broker) + return om.fetchInitialOffset(topic, partition, retries-1) + case ErrOffsetsLoadInProgress: + if retries <= 0 { + return 0, "", block.Err + } + select { + case <-om.closing: + return 0, "", block.Err + case <-time.After(om.conf.Metadata.Retry.Backoff): + } + return om.fetchInitialOffset(topic, partition, retries-1) + default: + return 0, "", block.Err + } +} + +func (om *offsetManager) coordinator() (*Broker, error) { + om.brokerLock.RLock() + broker := om.broker + om.brokerLock.RUnlock() + + if broker != nil { + return broker, nil + } + + om.brokerLock.Lock() + defer om.brokerLock.Unlock() + + if broker := om.broker; broker != nil { + return broker, nil + } + + if err := om.client.RefreshCoordinator(om.group); err != nil { + return nil, err + } + + broker, err := om.client.Coordinator(om.group) + if err != nil { + return nil, err + } + + om.broker = broker + return broker, nil +} + +func (om *offsetManager) releaseCoordinator(b *Broker) { + om.brokerLock.Lock() + if om.broker == b { + om.broker = nil + } + om.brokerLock.Unlock() +} + +func (om *offsetManager) mainLoop() { + defer om.ticker.Stop() + defer close(om.closed) + + for { + select { + case <-om.ticker.C: + om.flushToBroker() + om.releasePOMs(false) + case <-om.closing: + return + } + } +} + +func (om *offsetManager) flushToBroker() { + req := om.constructRequest() + if req == nil { + return + } + + broker, err := om.coordinator() + if err != nil { + om.handleError(err) + return + } + + resp, err := broker.CommitOffset(req) + if err != nil { + om.handleError(err) + om.releaseCoordinator(broker) + _ = broker.Close() + return + } + + om.handleResponse(broker, req, resp) +} + +func (om *offsetManager) constructRequest() *OffsetCommitRequest { + var r *OffsetCommitRequest + var perPartitionTimestamp int64 + if om.conf.Consumer.Offsets.Retention == 0 { + perPartitionTimestamp = ReceiveTime + r = &OffsetCommitRequest{ + Version: 1, + ConsumerGroup: om.group, + ConsumerID: om.memberID, + ConsumerGroupGeneration: om.generation, + } + } else { + r = &OffsetCommitRequest{ + Version: 2, + RetentionTime: int64(om.conf.Consumer.Offsets.Retention / time.Millisecond), + ConsumerGroup: om.group, + ConsumerID: om.memberID, + ConsumerGroupGeneration: om.generation, + } + + } + + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + pom.lock.Lock() + if pom.dirty { + r.AddBlock(pom.topic, pom.partition, pom.offset, perPartitionTimestamp, pom.metadata) + } + pom.lock.Unlock() + } + } + + if len(r.blocks) > 0 { + return r + } + + return nil +} + +func (om *offsetManager) handleResponse(broker *Broker, req *OffsetCommitRequest, resp *OffsetCommitResponse) { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + if req.blocks[pom.topic] == nil || req.blocks[pom.topic][pom.partition] == nil { + continue + } + + var err KError + var ok bool + + if resp.Errors[pom.topic] == nil { + pom.handleError(ErrIncompleteResponse) + continue + } + if err, ok = resp.Errors[pom.topic][pom.partition]; !ok { + pom.handleError(ErrIncompleteResponse) + continue + } + + switch err { + case ErrNoError: + block := req.blocks[pom.topic][pom.partition] + pom.updateCommitted(block.offset, block.metadata) + case ErrNotLeaderForPartition, ErrLeaderNotAvailable, + ErrConsumerCoordinatorNotAvailable, ErrNotCoordinatorForConsumer: + // not a critical error, we just need to redispatch + om.releaseCoordinator(broker) + case ErrOffsetMetadataTooLarge, ErrInvalidCommitOffsetSize: + // nothing we can do about this, just tell the user and carry on + pom.handleError(err) + case ErrOffsetsLoadInProgress: + // nothing wrong but we didn't commit, we'll get it next time round + break + case ErrUnknownTopicOrPartition: + // let the user know *and* try redispatching - if topic-auto-create is + // enabled, redispatching should trigger a metadata req and create the + // topic; if not then re-dispatching won't help, but we've let the user + // know and it shouldn't hurt either (see https://github.com/Shopify/sarama/issues/706) + fallthrough + default: + // dunno, tell the user and try redispatching + pom.handleError(err) + om.releaseCoordinator(broker) + } + } + } +} + +func (om *offsetManager) handleError(err error) { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + pom.handleError(err) + } + } +} + +func (om *offsetManager) asyncClosePOMs() { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + for _, topicManagers := range om.poms { + for _, pom := range topicManagers { + pom.AsyncClose() + } + } +} + +// Releases/removes closed POMs once they are clean (or when forced) +func (om *offsetManager) releasePOMs(force bool) (remaining int) { + om.pomsLock.Lock() + defer om.pomsLock.Unlock() + + for topic, topicManagers := range om.poms { + for partition, pom := range topicManagers { + pom.lock.Lock() + releaseDue := pom.done && (force || !pom.dirty) + pom.lock.Unlock() + + if releaseDue { + pom.release() + + delete(om.poms[topic], partition) + if len(om.poms[topic]) == 0 { + delete(om.poms, topic) + } + } + } + remaining += len(om.poms[topic]) + } + return +} + +func (om *offsetManager) findPOM(topic string, partition int32) *partitionOffsetManager { + om.pomsLock.RLock() + defer om.pomsLock.RUnlock() + + if partitions, ok := om.poms[topic]; ok { + if pom, ok := partitions[partition]; ok { + return pom + } + } + return nil +} + +// Partition Offset Manager + +// PartitionOffsetManager uses Kafka to store and fetch consumed partition offsets. You MUST call Close() +// on a partition offset manager to avoid leaks, it will not be garbage-collected automatically when it passes +// out of scope. +type PartitionOffsetManager interface { + // NextOffset returns the next offset that should be consumed for the managed + // partition, accompanied by metadata which can be used to reconstruct the state + // of the partition consumer when it resumes. NextOffset() will return + // `config.Consumer.Offsets.Initial` and an empty metadata string if no offset + // was committed for this partition yet. + NextOffset() (int64, string) + + // MarkOffset marks the provided offset, alongside a metadata string + // that represents the state of the partition consumer at that point in time. The + // metadata string can be used by another consumer to restore that state, so it + // can resume consumption. + // + // To follow upstream conventions, you are expected to mark the offset of the + // next message to read, not the last message read. Thus, when calling `MarkOffset` + // you should typically add one to the offset of the last consumed message. + // + // Note: calling MarkOffset does not necessarily commit the offset to the backend + // store immediately for efficiency reasons, and it may never be committed if + // your application crashes. This means that you may end up processing the same + // message twice, and your processing should ideally be idempotent. + MarkOffset(offset int64, metadata string) + + // ResetOffset resets to the provided offset, alongside a metadata string that + // represents the state of the partition consumer at that point in time. Reset + // acts as a counterpart to MarkOffset, the difference being that it allows to + // reset an offset to an earlier or smaller value, where MarkOffset only + // allows incrementing the offset. cf MarkOffset for more details. + ResetOffset(offset int64, metadata string) + + // Errors returns a read channel of errors that occur during offset management, if + // enabled. By default, errors are logged and not returned over this channel. If + // you want to implement any custom error handling, set your config's + // Consumer.Return.Errors setting to true, and read from this channel. + Errors() <-chan *ConsumerError + + // AsyncClose initiates a shutdown of the PartitionOffsetManager. This method will + // return immediately, after which you should wait until the 'errors' channel has + // been drained and closed. It is required to call this function, or Close before + // a consumer object passes out of scope, as it will otherwise leak memory. You + // must call this before calling Close on the underlying client. + AsyncClose() + + // Close stops the PartitionOffsetManager from managing offsets. It is required to + // call this function (or AsyncClose) before a PartitionOffsetManager object + // passes out of scope, as it will otherwise leak memory. You must call this + // before calling Close on the underlying client. + Close() error +} + +type partitionOffsetManager struct { + parent *offsetManager + topic string + partition int32 + + lock sync.Mutex + offset int64 + metadata string + dirty bool + done bool + + releaseOnce sync.Once + errors chan *ConsumerError +} + +func (om *offsetManager) newPartitionOffsetManager(topic string, partition int32) (*partitionOffsetManager, error) { + offset, metadata, err := om.fetchInitialOffset(topic, partition, om.conf.Metadata.Retry.Max) + if err != nil { + return nil, err + } + + return &partitionOffsetManager{ + parent: om, + topic: topic, + partition: partition, + errors: make(chan *ConsumerError, om.conf.ChannelBufferSize), + offset: offset, + metadata: metadata, + }, nil +} + +func (pom *partitionOffsetManager) Errors() <-chan *ConsumerError { + return pom.errors +} + +func (pom *partitionOffsetManager) MarkOffset(offset int64, metadata string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if offset > pom.offset { + pom.offset = offset + pom.metadata = metadata + pom.dirty = true + } +} + +func (pom *partitionOffsetManager) ResetOffset(offset int64, metadata string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if offset <= pom.offset { + pom.offset = offset + pom.metadata = metadata + pom.dirty = true + } +} + +func (pom *partitionOffsetManager) updateCommitted(offset int64, metadata string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if pom.offset == offset && pom.metadata == metadata { + pom.dirty = false + } +} + +func (pom *partitionOffsetManager) NextOffset() (int64, string) { + pom.lock.Lock() + defer pom.lock.Unlock() + + if pom.offset >= 0 { + return pom.offset, pom.metadata + } + + return pom.parent.conf.Consumer.Offsets.Initial, "" +} + +func (pom *partitionOffsetManager) AsyncClose() { + pom.lock.Lock() + pom.done = true + pom.lock.Unlock() +} + +func (pom *partitionOffsetManager) Close() error { + pom.AsyncClose() + + var errors ConsumerErrors + for err := range pom.errors { + errors = append(errors, err) + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (pom *partitionOffsetManager) handleError(err error) { + cErr := &ConsumerError{ + Topic: pom.topic, + Partition: pom.partition, + Err: err, + } + + if pom.parent.conf.Consumer.Return.Errors { + pom.errors <- cErr + } else { + Logger.Println(cErr) + } +} + +func (pom *partitionOffsetManager) release() { + pom.releaseOnce.Do(func() { + go close(pom.errors) + }) +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_request.go b/vendor/github.com/Shopify/sarama/offset_request.go similarity index 86% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_request.go rename to vendor/github.com/Shopify/sarama/offset_request.go index a14f7182..4c5df75d 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_request.go +++ b/vendor/github.com/Shopify/sarama/offset_request.go @@ -27,20 +27,12 @@ func (b *offsetRequestBlock) decode(pd packetDecoder, version int16) (err error) } type OffsetRequest struct { - Version int16 - replicaID *int32 - storeReplicaID int32 - blocks map[string]map[int32]*offsetRequestBlock + Version int16 + blocks map[string]map[int32]*offsetRequestBlock } func (r *OffsetRequest) encode(pe packetEncoder) error { - if r.replicaID == nil { - // default replica ID is always -1 for clients - pe.putInt32(-1) - } else { - pe.putInt32(*r.replicaID) - } - + pe.putInt32(-1) // replica ID is always -1 for clients err := pe.putArrayLength(len(r.blocks)) if err != nil { return err @@ -117,15 +109,10 @@ func (r *OffsetRequest) requiredVersion() KafkaVersion { case 1: return V0_10_1_0 default: - return minVersion + return MinVersion } } -func (r *OffsetRequest) SetReplicaID(id int32) { - r.storeReplicaID = id - r.replicaID = &r.storeReplicaID -} - func (r *OffsetRequest) AddBlock(topic string, partitionID int32, time int64, maxOffsets int32) { if r.blocks == nil { r.blocks = make(map[string]map[int32]*offsetRequestBlock) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_response.go b/vendor/github.com/Shopify/sarama/offset_response.go similarity index 99% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_response.go rename to vendor/github.com/Shopify/sarama/offset_response.go index 9a9cfe96..8b2193f9 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/offset_response.go +++ b/vendor/github.com/Shopify/sarama/offset_response.go @@ -155,7 +155,7 @@ func (r *OffsetResponse) requiredVersion() KafkaVersion { case 1: return V0_10_1_0 default: - return minVersion + return MinVersion } } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/packet_decoder.go b/vendor/github.com/Shopify/sarama/packet_decoder.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/packet_decoder.go rename to vendor/github.com/Shopify/sarama/packet_decoder.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/packet_encoder.go b/vendor/github.com/Shopify/sarama/packet_encoder.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/packet_encoder.go rename to vendor/github.com/Shopify/sarama/packet_encoder.go diff --git a/vendor/github.com/Shopify/sarama/partitioner.go b/vendor/github.com/Shopify/sarama/partitioner.go new file mode 100644 index 00000000..6a708e72 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/partitioner.go @@ -0,0 +1,217 @@ +package sarama + +import ( + "hash" + "hash/fnv" + "math/rand" + "time" +) + +// Partitioner is anything that, given a Kafka message and a number of partitions indexed [0...numPartitions-1], +// decides to which partition to send the message. RandomPartitioner, RoundRobinPartitioner and HashPartitioner are provided +// as simple default implementations. +type Partitioner interface { + // Partition takes a message and partition count and chooses a partition + Partition(message *ProducerMessage, numPartitions int32) (int32, error) + + // RequiresConsistency indicates to the user of the partitioner whether the + // mapping of key->partition is consistent or not. Specifically, if a + // partitioner requires consistency then it must be allowed to choose from all + // partitions (even ones known to be unavailable), and its choice must be + // respected by the caller. The obvious example is the HashPartitioner. + RequiresConsistency() bool +} + +// DynamicConsistencyPartitioner can optionally be implemented by Partitioners +// in order to allow more flexibility than is originally allowed by the +// RequiresConsistency method in the Partitioner interface. This allows +// partitioners to require consistency sometimes, but not all times. It's useful +// for, e.g., the HashPartitioner, which does not require consistency if the +// message key is nil. +type DynamicConsistencyPartitioner interface { + Partitioner + + // MessageRequiresConsistency is similar to Partitioner.RequiresConsistency, + // but takes in the message being partitioned so that the partitioner can + // make a per-message determination. + MessageRequiresConsistency(message *ProducerMessage) bool +} + +// PartitionerConstructor is the type for a function capable of constructing new Partitioners. +type PartitionerConstructor func(topic string) Partitioner + +type manualPartitioner struct{} + +// HashPartitionOption lets you modify default values of the partitioner +type HashPartitionerOption func(*hashPartitioner) + +// WithAbsFirst means that the partitioner handles absolute values +// in the same way as the reference Java implementation +func WithAbsFirst() HashPartitionerOption { + return func(hp *hashPartitioner) { + hp.referenceAbs = true + } +} + +// WithCustomHashFunction lets you specify what hash function to use for the partitioning +func WithCustomHashFunction(hasher func() hash.Hash32) HashPartitionerOption { + return func(hp *hashPartitioner) { + hp.hasher = hasher() + } +} + +// WithCustomFallbackPartitioner lets you specify what HashPartitioner should be used in case a Distribution Key is empty +func WithCustomFallbackPartitioner(randomHP *hashPartitioner) HashPartitionerOption { + return func(hp *hashPartitioner) { + hp.random = hp + } +} + +// NewManualPartitioner returns a Partitioner which uses the partition manually set in the provided +// ProducerMessage's Partition field as the partition to produce to. +func NewManualPartitioner(topic string) Partitioner { + return new(manualPartitioner) +} + +func (p *manualPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + return message.Partition, nil +} + +func (p *manualPartitioner) RequiresConsistency() bool { + return true +} + +type randomPartitioner struct { + generator *rand.Rand +} + +// NewRandomPartitioner returns a Partitioner which chooses a random partition each time. +func NewRandomPartitioner(topic string) Partitioner { + p := new(randomPartitioner) + p.generator = rand.New(rand.NewSource(time.Now().UTC().UnixNano())) + return p +} + +func (p *randomPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + return int32(p.generator.Intn(int(numPartitions))), nil +} + +func (p *randomPartitioner) RequiresConsistency() bool { + return false +} + +type roundRobinPartitioner struct { + partition int32 +} + +// NewRoundRobinPartitioner returns a Partitioner which walks through the available partitions one at a time. +func NewRoundRobinPartitioner(topic string) Partitioner { + return &roundRobinPartitioner{} +} + +func (p *roundRobinPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + if p.partition >= numPartitions { + p.partition = 0 + } + ret := p.partition + p.partition++ + return ret, nil +} + +func (p *roundRobinPartitioner) RequiresConsistency() bool { + return false +} + +type hashPartitioner struct { + random Partitioner + hasher hash.Hash32 + referenceAbs bool +} + +// NewCustomHashPartitioner is a wrapper around NewHashPartitioner, allowing the use of custom hasher. +// The argument is a function providing the instance, implementing the hash.Hash32 interface. This is to ensure that +// each partition dispatcher gets its own hasher, to avoid concurrency issues by sharing an instance. +func NewCustomHashPartitioner(hasher func() hash.Hash32) PartitionerConstructor { + return func(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = hasher() + p.referenceAbs = false + return p + } +} + +// NewCustomPartitioner creates a default Partitioner but lets you specify the behavior of each component via options +func NewCustomPartitioner(options ...HashPartitionerOption) PartitionerConstructor { + return func(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = fnv.New32a() + p.referenceAbs = false + for _, option := range options { + option(p) + } + return p + } +} + +// NewHashPartitioner returns a Partitioner which behaves as follows. If the message's key is nil then a +// random partition is chosen. Otherwise the FNV-1a hash of the encoded bytes of the message key is used, +// modulus the number of partitions. This ensures that messages with the same key always end up on the +// same partition. +func NewHashPartitioner(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = fnv.New32a() + p.referenceAbs = false + return p +} + +// NewReferenceHashPartitioner is like NewHashPartitioner except that it handles absolute values +// in the same way as the reference Java implementation. NewHashPartitioner was supposed to do +// that but it had a mistake and now there are people depending on both behaviours. This will +// all go away on the next major version bump. +func NewReferenceHashPartitioner(topic string) Partitioner { + p := new(hashPartitioner) + p.random = NewRandomPartitioner(topic) + p.hasher = fnv.New32a() + p.referenceAbs = true + return p +} + +func (p *hashPartitioner) Partition(message *ProducerMessage, numPartitions int32) (int32, error) { + if message.Key == nil { + return p.random.Partition(message, numPartitions) + } + bytes, err := message.Key.Encode() + if err != nil { + return -1, err + } + p.hasher.Reset() + _, err = p.hasher.Write(bytes) + if err != nil { + return -1, err + } + var partition int32 + // Turns out we were doing our absolute value in a subtly different way from the upstream + // implementation, but now we need to maintain backwards compat for people who started using + // the old version; if referenceAbs is set we are compatible with the reference java client + // but not past Sarama versions + if p.referenceAbs { + partition = (int32(p.hasher.Sum32()) & 0x7fffffff) % numPartitions + } else { + partition = int32(p.hasher.Sum32()) % numPartitions + if partition < 0 { + partition = -partition + } + } + return partition, nil +} + +func (p *hashPartitioner) RequiresConsistency() bool { + return true +} + +func (p *hashPartitioner) MessageRequiresConsistency(message *ProducerMessage) bool { + return message.Key != nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/prep_encoder.go b/vendor/github.com/Shopify/sarama/prep_encoder.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/prep_encoder.go rename to vendor/github.com/Shopify/sarama/prep_encoder.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_request.go b/vendor/github.com/Shopify/sarama/produce_request.go similarity index 97% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_request.go rename to vendor/github.com/Shopify/sarama/produce_request.go index 0ec4d8d5..0c755d02 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_request.go +++ b/vendor/github.com/Shopify/sarama/produce_request.go @@ -113,9 +113,9 @@ func (r *ProduceRequest) encode(pe packetEncoder) error { } if metricRegistry != nil { if r.Version >= 3 { - topicRecordCount += updateBatchMetrics(records.recordBatch, compressionRatioMetric, topicCompressionRatioMetric) + topicRecordCount += updateBatchMetrics(records.RecordBatch, compressionRatioMetric, topicCompressionRatioMetric) } else { - topicRecordCount += updateMsgSetMetrics(records.msgSet, compressionRatioMetric, topicCompressionRatioMetric) + topicRecordCount += updateMsgSetMetrics(records.MsgSet, compressionRatioMetric, topicCompressionRatioMetric) } batchSize := int64(pe.offset() - startOffset) batchSizeMetric.Update(batchSize) @@ -215,7 +215,7 @@ func (r *ProduceRequest) requiredVersion() KafkaVersion { case 3: return V0_11_0_0 default: - return minVersion + return MinVersion } } @@ -231,7 +231,7 @@ func (r *ProduceRequest) ensureRecords(topic string, partition int32) { func (r *ProduceRequest) AddMessage(topic string, partition int32, msg *Message) { r.ensureRecords(topic, partition) - set := r.records[topic][partition].msgSet + set := r.records[topic][partition].MsgSet if set == nil { set = new(MessageSet) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_response.go b/vendor/github.com/Shopify/sarama/produce_response.go similarity index 99% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_response.go rename to vendor/github.com/Shopify/sarama/produce_response.go index 043c40f8..667e34c6 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_response.go +++ b/vendor/github.com/Shopify/sarama/produce_response.go @@ -152,7 +152,7 @@ func (r *ProduceResponse) requiredVersion() KafkaVersion { case 3: return V0_11_0_0 default: - return minVersion + return MinVersion } } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_set.go b/vendor/github.com/Shopify/sarama/produce_set.go similarity index 80% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_set.go rename to vendor/github.com/Shopify/sarama/produce_set.go index 3cbaeb5f..13be2b3c 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/produce_set.go +++ b/vendor/github.com/Shopify/sarama/produce_set.go @@ -59,10 +59,11 @@ func (ps *produceSet) add(msg *ProducerMessage) error { if set == nil { if ps.parent.conf.Version.IsAtLeast(V0_11_0_0) { batch := &RecordBatch{ - FirstTimestamp: timestamp, - Version: 2, - ProducerID: -1, /* No producer id */ - Codec: ps.parent.conf.Producer.Compression, + FirstTimestamp: timestamp, + Version: 2, + ProducerID: -1, /* No producer id */ + Codec: ps.parent.conf.Producer.Compression, + CompressionLevel: ps.parent.conf.Producer.CompressionLevel, } set = &partitionSet{recordsToSend: newDefaultRecords(batch)} size = recordBatchOverhead @@ -79,7 +80,7 @@ func (ps *produceSet) add(msg *ProducerMessage) error { rec := &Record{ Key: key, Value: val, - TimestampDelta: timestamp.Sub(set.recordsToSend.recordBatch.FirstTimestamp), + TimestampDelta: timestamp.Sub(set.recordsToSend.RecordBatch.FirstTimestamp), } size += len(key) + len(val) if len(msg.Headers) > 0 { @@ -89,14 +90,14 @@ func (ps *produceSet) add(msg *ProducerMessage) error { size += len(rec.Headers[i].Key) + len(rec.Headers[i].Value) + 2*binary.MaxVarintLen32 } } - set.recordsToSend.recordBatch.addRecord(rec) + set.recordsToSend.RecordBatch.addRecord(rec) } else { msgToSend := &Message{Codec: CompressionNone, Key: key, Value: val} if ps.parent.conf.Version.IsAtLeast(V0_10_0_0) { msgToSend.Timestamp = timestamp msgToSend.Version = 1 } - set.recordsToSend.msgSet.addMessage(msgToSend) + set.recordsToSend.MsgSet.addMessage(msgToSend) size = producerMessageOverhead + len(key) + len(val) } @@ -122,7 +123,14 @@ func (ps *produceSet) buildRequest() *ProduceRequest { for topic, partitionSet := range ps.msgs { for partition, set := range partitionSet { if req.Version >= 3 { - rb := set.recordsToSend.recordBatch + // If the API version we're hitting is 3 or greater, we need to calculate + // offsets for each record in the batch relative to FirstOffset. + // Additionally, we must set LastOffsetDelta to the value of the last offset + // in the batch. Since the OffsetDelta of the first record is 0, we know that the + // final record of any batch will have an offset of (# of records in batch) - 1. + // (See https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol#AGuideToTheKafkaProtocol-Messagesets + // under the RecordBatch section for details.) + rb := set.recordsToSend.RecordBatch if len(rb.Records) > 0 { rb.LastOffsetDelta = int32(len(rb.Records) - 1) for i, record := range rb.Records { @@ -134,7 +142,7 @@ func (ps *produceSet) buildRequest() *ProduceRequest { continue } if ps.parent.conf.Producer.Compression == CompressionNone { - req.AddSet(topic, partition, set.recordsToSend.msgSet) + req.AddSet(topic, partition, set.recordsToSend.MsgSet) } else { // When compression is enabled, the entire set for each partition is compressed // and sent as the payload of a single fake "message" with the appropriate codec @@ -147,24 +155,25 @@ func (ps *produceSet) buildRequest() *ProduceRequest { // recompressing the message set. // (See https://cwiki.apache.org/confluence/display/KAFKA/KIP-31+-+Move+to+relative+offsets+in+compressed+message+sets // for details on relative offsets.) - for i, msg := range set.recordsToSend.msgSet.Messages { + for i, msg := range set.recordsToSend.MsgSet.Messages { msg.Offset = int64(i) } } - payload, err := encode(set.recordsToSend.msgSet, ps.parent.conf.MetricRegistry) + payload, err := encode(set.recordsToSend.MsgSet, ps.parent.conf.MetricRegistry) if err != nil { Logger.Println(err) // if this happens, it's basically our fault. panic(err) } compMsg := &Message{ - Codec: ps.parent.conf.Producer.Compression, - Key: nil, - Value: payload, - Set: set.recordsToSend.msgSet, // Provide the underlying message set for accurate metrics + Codec: ps.parent.conf.Producer.Compression, + CompressionLevel: ps.parent.conf.Producer.CompressionLevel, + Key: nil, + Value: payload, + Set: set.recordsToSend.MsgSet, // Provide the underlying message set for accurate metrics } if ps.parent.conf.Version.IsAtLeast(V0_10_0_0) { compMsg.Version = 1 - compMsg.Timestamp = set.recordsToSend.msgSet.Messages[0].Msg.Timestamp + compMsg.Timestamp = set.recordsToSend.MsgSet.Messages[0].Msg.Timestamp } req.AddMessage(topic, partition, compMsg) } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/real_decoder.go b/vendor/github.com/Shopify/sarama/real_decoder.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/real_decoder.go rename to vendor/github.com/Shopify/sarama/real_decoder.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/real_encoder.go b/vendor/github.com/Shopify/sarama/real_encoder.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/real_encoder.go rename to vendor/github.com/Shopify/sarama/real_encoder.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/record.go b/vendor/github.com/Shopify/sarama/record.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/record.go rename to vendor/github.com/Shopify/sarama/record.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/record_batch.go b/vendor/github.com/Shopify/sarama/record_batch.go similarity index 95% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/record_batch.go rename to vendor/github.com/Shopify/sarama/record_batch.go index 321de485..845318aa 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/record_batch.go +++ b/vendor/github.com/Shopify/sarama/record_batch.go @@ -40,6 +40,7 @@ type RecordBatch struct { PartitionLeaderEpoch int32 Version int8 Codec CompressionCodec + CompressionLevel int Control bool LastOffsetDelta int32 FirstTimestamp time.Time @@ -219,7 +220,15 @@ func (b *RecordBatch) encodeRecords(pe packetEncoder) error { b.compressedRecords = raw case CompressionGZIP: var buf bytes.Buffer - writer := gzip.NewWriter(&buf) + var writer *gzip.Writer + if b.CompressionLevel != CompressionLevelDefault { + writer, err = gzip.NewWriterLevel(&buf, b.CompressionLevel) + if err != nil { + return err + } + } else { + writer = gzip.NewWriter(&buf) + } if _, err := writer.Write(raw); err != nil { return err } diff --git a/vendor/github.com/Shopify/sarama/records.go b/vendor/github.com/Shopify/sarama/records.go new file mode 100644 index 00000000..192f5927 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/records.go @@ -0,0 +1,194 @@ +package sarama + +import "fmt" + +const ( + unknownRecords = iota + legacyRecords + defaultRecords + + magicOffset = 16 + magicLength = 1 +) + +// Records implements a union type containing either a RecordBatch or a legacy MessageSet. +type Records struct { + recordsType int + MsgSet *MessageSet + RecordBatch *RecordBatch +} + +func newLegacyRecords(msgSet *MessageSet) Records { + return Records{recordsType: legacyRecords, MsgSet: msgSet} +} + +func newDefaultRecords(batch *RecordBatch) Records { + return Records{recordsType: defaultRecords, RecordBatch: batch} +} + +// setTypeFromFields sets type of Records depending on which of MsgSet or RecordBatch is not nil. +// The first return value indicates whether both fields are nil (and the type is not set). +// If both fields are not nil, it returns an error. +func (r *Records) setTypeFromFields() (bool, error) { + if r.MsgSet == nil && r.RecordBatch == nil { + return true, nil + } + if r.MsgSet != nil && r.RecordBatch != nil { + return false, fmt.Errorf("both MsgSet and RecordBatch are set, but record type is unknown") + } + r.recordsType = defaultRecords + if r.MsgSet != nil { + r.recordsType = legacyRecords + } + return false, nil +} + +func (r *Records) encode(pe packetEncoder) error { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return err + } + } + + switch r.recordsType { + case legacyRecords: + if r.MsgSet == nil { + return nil + } + return r.MsgSet.encode(pe) + case defaultRecords: + if r.RecordBatch == nil { + return nil + } + return r.RecordBatch.encode(pe) + } + + return fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) setTypeFromMagic(pd packetDecoder) error { + magic, err := magicValue(pd) + if err != nil { + return err + } + + r.recordsType = defaultRecords + if magic < 2 { + r.recordsType = legacyRecords + } + + return nil +} + +func (r *Records) decode(pd packetDecoder) error { + if r.recordsType == unknownRecords { + if err := r.setTypeFromMagic(pd); err != nil { + return err + } + } + + switch r.recordsType { + case legacyRecords: + r.MsgSet = &MessageSet{} + return r.MsgSet.decode(pd) + case defaultRecords: + r.RecordBatch = &RecordBatch{} + return r.RecordBatch.decode(pd) + } + return fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) numRecords() (int, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return 0, err + } + } + + switch r.recordsType { + case legacyRecords: + if r.MsgSet == nil { + return 0, nil + } + return len(r.MsgSet.Messages), nil + case defaultRecords: + if r.RecordBatch == nil { + return 0, nil + } + return len(r.RecordBatch.Records), nil + } + return 0, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) isPartial() (bool, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return false, err + } + } + + switch r.recordsType { + case unknownRecords: + return false, nil + case legacyRecords: + if r.MsgSet == nil { + return false, nil + } + return r.MsgSet.PartialTrailingMessage, nil + case defaultRecords: + if r.RecordBatch == nil { + return false, nil + } + return r.RecordBatch.PartialTrailingRecord, nil + } + return false, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) isControl() (bool, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return false, err + } + } + + switch r.recordsType { + case legacyRecords: + return false, nil + case defaultRecords: + if r.RecordBatch == nil { + return false, nil + } + return r.RecordBatch.Control, nil + } + return false, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func (r *Records) isOverflow() (bool, error) { + if r.recordsType == unknownRecords { + if empty, err := r.setTypeFromFields(); err != nil || empty { + return false, err + } + } + + switch r.recordsType { + case unknownRecords: + return false, nil + case legacyRecords: + if r.MsgSet == nil { + return false, nil + } + return r.MsgSet.OverflowMessage, nil + case defaultRecords: + return false, nil + } + return false, fmt.Errorf("unknown records type: %v", r.recordsType) +} + +func magicValue(pd packetDecoder) (int8, error) { + dec, err := pd.peek(magicOffset, magicLength) + if err != nil { + return 0, err + } + + return dec.getInt8() +} diff --git a/vendor/github.com/Shopify/sarama/request.go b/vendor/github.com/Shopify/sarama/request.go new file mode 100644 index 00000000..4d211a14 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/request.go @@ -0,0 +1,149 @@ +package sarama + +import ( + "encoding/binary" + "fmt" + "io" +) + +type protocolBody interface { + encoder + versionedDecoder + key() int16 + version() int16 + requiredVersion() KafkaVersion +} + +type request struct { + correlationID int32 + clientID string + body protocolBody +} + +func (r *request) encode(pe packetEncoder) (err error) { + pe.push(&lengthField{}) + pe.putInt16(r.body.key()) + pe.putInt16(r.body.version()) + pe.putInt32(r.correlationID) + err = pe.putString(r.clientID) + if err != nil { + return err + } + err = r.body.encode(pe) + if err != nil { + return err + } + return pe.pop() +} + +func (r *request) decode(pd packetDecoder) (err error) { + var key int16 + if key, err = pd.getInt16(); err != nil { + return err + } + var version int16 + if version, err = pd.getInt16(); err != nil { + return err + } + if r.correlationID, err = pd.getInt32(); err != nil { + return err + } + r.clientID, err = pd.getString() + + r.body = allocateBody(key, version) + if r.body == nil { + return PacketDecodingError{fmt.Sprintf("unknown request key (%d)", key)} + } + return r.body.decode(pd, version) +} + +func decodeRequest(r io.Reader) (req *request, bytesRead int, err error) { + lengthBytes := make([]byte, 4) + if _, err := io.ReadFull(r, lengthBytes); err != nil { + return nil, bytesRead, err + } + bytesRead += len(lengthBytes) + + length := int32(binary.BigEndian.Uint32(lengthBytes)) + if length <= 4 || length > MaxRequestSize { + return nil, bytesRead, PacketDecodingError{fmt.Sprintf("message of length %d too large or too small", length)} + } + + encodedReq := make([]byte, length) + if _, err := io.ReadFull(r, encodedReq); err != nil { + return nil, bytesRead, err + } + bytesRead += len(encodedReq) + + req = &request{} + if err := decode(encodedReq, req); err != nil { + return nil, bytesRead, err + } + return req, bytesRead, nil +} + +func allocateBody(key, version int16) protocolBody { + switch key { + case 0: + return &ProduceRequest{} + case 1: + return &FetchRequest{} + case 2: + return &OffsetRequest{Version: version} + case 3: + return &MetadataRequest{} + case 8: + return &OffsetCommitRequest{Version: version} + case 9: + return &OffsetFetchRequest{} + case 10: + return &FindCoordinatorRequest{} + case 11: + return &JoinGroupRequest{} + case 12: + return &HeartbeatRequest{} + case 13: + return &LeaveGroupRequest{} + case 14: + return &SyncGroupRequest{} + case 15: + return &DescribeGroupsRequest{} + case 16: + return &ListGroupsRequest{} + case 17: + return &SaslHandshakeRequest{} + case 18: + return &ApiVersionsRequest{} + case 19: + return &CreateTopicsRequest{} + case 20: + return &DeleteTopicsRequest{} + case 21: + return &DeleteRecordsRequest{} + case 22: + return &InitProducerIDRequest{} + case 24: + return &AddPartitionsToTxnRequest{} + case 25: + return &AddOffsetsToTxnRequest{} + case 26: + return &EndTxnRequest{} + case 28: + return &TxnOffsetCommitRequest{} + case 29: + return &DescribeAclsRequest{} + case 30: + return &CreateAclsRequest{} + case 31: + return &DeleteAclsRequest{} + case 32: + return &DescribeConfigsRequest{} + case 33: + return &AlterConfigsRequest{} + case 37: + return &CreatePartitionsRequest{} + case 42: + return &DeleteGroupsRequest{} + } + return nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/response_header.go b/vendor/github.com/Shopify/sarama/response_header.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/response_header.go rename to vendor/github.com/Shopify/sarama/response_header.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sarama.go b/vendor/github.com/Shopify/sarama/sarama.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sarama.go rename to vendor/github.com/Shopify/sarama/sarama.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sasl_handshake_request.go b/vendor/github.com/Shopify/sarama/sasl_handshake_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sasl_handshake_request.go rename to vendor/github.com/Shopify/sarama/sasl_handshake_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sasl_handshake_response.go b/vendor/github.com/Shopify/sarama/sasl_handshake_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sasl_handshake_response.go rename to vendor/github.com/Shopify/sarama/sasl_handshake_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sync_group_request.go b/vendor/github.com/Shopify/sarama/sync_group_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sync_group_request.go rename to vendor/github.com/Shopify/sarama/sync_group_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sync_group_response.go b/vendor/github.com/Shopify/sarama/sync_group_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/sync_group_response.go rename to vendor/github.com/Shopify/sarama/sync_group_response.go diff --git a/vendor/github.com/Shopify/sarama/sync_producer.go b/vendor/github.com/Shopify/sarama/sync_producer.go new file mode 100644 index 00000000..021c5a01 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/sync_producer.go @@ -0,0 +1,149 @@ +package sarama + +import "sync" + +// SyncProducer publishes Kafka messages, blocking until they have been acknowledged. It routes messages to the correct +// broker, refreshing metadata as appropriate, and parses responses for errors. You must call Close() on a producer +// to avoid leaks, it may not be garbage-collected automatically when it passes out of scope. +// +// The SyncProducer comes with two caveats: it will generally be less efficient than the AsyncProducer, and the actual +// durability guarantee provided when a message is acknowledged depend on the configured value of `Producer.RequiredAcks`. +// There are configurations where a message acknowledged by the SyncProducer can still sometimes be lost. +// +// For implementation reasons, the SyncProducer requires `Producer.Return.Errors` and `Producer.Return.Successes` to +// be set to true in its configuration. +type SyncProducer interface { + + // SendMessage produces a given message, and returns only when it either has + // succeeded or failed to produce. It will return the partition and the offset + // of the produced message, or an error if the message failed to produce. + SendMessage(msg *ProducerMessage) (partition int32, offset int64, err error) + + // SendMessages produces a given set of messages, and returns only when all + // messages in the set have either succeeded or failed. Note that messages + // can succeed and fail individually; if some succeed and some fail, + // SendMessages will return an error. + SendMessages(msgs []*ProducerMessage) error + + // Close shuts down the producer and waits for any buffered messages to be + // flushed. You must call this function before a producer object passes out of + // scope, as it may otherwise leak memory. You must call this before calling + // Close on the underlying client. + Close() error +} + +type syncProducer struct { + producer *asyncProducer + wg sync.WaitGroup +} + +// NewSyncProducer creates a new SyncProducer using the given broker addresses and configuration. +func NewSyncProducer(addrs []string, config *Config) (SyncProducer, error) { + if config == nil { + config = NewConfig() + config.Producer.Return.Successes = true + } + + if err := verifyProducerConfig(config); err != nil { + return nil, err + } + + p, err := NewAsyncProducer(addrs, config) + if err != nil { + return nil, err + } + return newSyncProducerFromAsyncProducer(p.(*asyncProducer)), nil +} + +// NewSyncProducerFromClient creates a new SyncProducer using the given client. It is still +// necessary to call Close() on the underlying client when shutting down this producer. +func NewSyncProducerFromClient(client Client) (SyncProducer, error) { + if err := verifyProducerConfig(client.Config()); err != nil { + return nil, err + } + + p, err := NewAsyncProducerFromClient(client) + if err != nil { + return nil, err + } + return newSyncProducerFromAsyncProducer(p.(*asyncProducer)), nil +} + +func newSyncProducerFromAsyncProducer(p *asyncProducer) *syncProducer { + sp := &syncProducer{producer: p} + + sp.wg.Add(2) + go withRecover(sp.handleSuccesses) + go withRecover(sp.handleErrors) + + return sp +} + +func verifyProducerConfig(config *Config) error { + if !config.Producer.Return.Errors { + return ConfigurationError("Producer.Return.Errors must be true to be used in a SyncProducer") + } + if !config.Producer.Return.Successes { + return ConfigurationError("Producer.Return.Successes must be true to be used in a SyncProducer") + } + return nil +} + +func (sp *syncProducer) SendMessage(msg *ProducerMessage) (partition int32, offset int64, err error) { + expectation := make(chan *ProducerError, 1) + msg.expectation = expectation + sp.producer.Input() <- msg + + if err := <-expectation; err != nil { + return -1, -1, err.Err + } + + return msg.Partition, msg.Offset, nil +} + +func (sp *syncProducer) SendMessages(msgs []*ProducerMessage) error { + expectations := make(chan chan *ProducerError, len(msgs)) + go func() { + for _, msg := range msgs { + expectation := make(chan *ProducerError, 1) + msg.expectation = expectation + sp.producer.Input() <- msg + expectations <- expectation + } + close(expectations) + }() + + var errors ProducerErrors + for expectation := range expectations { + if err := <-expectation; err != nil { + errors = append(errors, err) + } + } + + if len(errors) > 0 { + return errors + } + return nil +} + +func (sp *syncProducer) handleSuccesses() { + defer sp.wg.Done() + for msg := range sp.producer.Successes() { + expectation := msg.expectation + expectation <- nil + } +} + +func (sp *syncProducer) handleErrors() { + defer sp.wg.Done() + for err := range sp.producer.Errors() { + expectation := err.Msg.expectation + expectation <- err + } +} + +func (sp *syncProducer) Close() error { + sp.producer.AsyncClose() + sp.wg.Wait() + return nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/timestamp.go b/vendor/github.com/Shopify/sarama/timestamp.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/timestamp.go rename to vendor/github.com/Shopify/sarama/timestamp.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go b/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/txn_offset_commit_request.go rename to vendor/github.com/Shopify/sarama/txn_offset_commit_request.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go b/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Shopify/sarama/txn_offset_commit_response.go rename to vendor/github.com/Shopify/sarama/txn_offset_commit_response.go diff --git a/vendor/github.com/Shopify/sarama/utils.go b/vendor/github.com/Shopify/sarama/utils.go new file mode 100644 index 00000000..1bb00d76 --- /dev/null +++ b/vendor/github.com/Shopify/sarama/utils.go @@ -0,0 +1,214 @@ +package sarama + +import ( + "bufio" + "fmt" + "net" + "regexp" +) + +type none struct{} + +// make []int32 sortable so we can sort partition numbers +type int32Slice []int32 + +func (slice int32Slice) Len() int { + return len(slice) +} + +func (slice int32Slice) Less(i, j int) bool { + return slice[i] < slice[j] +} + +func (slice int32Slice) Swap(i, j int) { + slice[i], slice[j] = slice[j], slice[i] +} + +func dupInt32Slice(input []int32) []int32 { + ret := make([]int32, 0, len(input)) + for _, val := range input { + ret = append(ret, val) + } + return ret +} + +func withRecover(fn func()) { + defer func() { + handler := PanicHandler + if handler != nil { + if err := recover(); err != nil { + handler(err) + } + } + }() + + fn() +} + +func safeAsyncClose(b *Broker) { + tmp := b // local var prevents clobbering in goroutine + go withRecover(func() { + if connected, _ := tmp.Connected(); connected { + if err := tmp.Close(); err != nil { + Logger.Println("Error closing broker", tmp.ID(), ":", err) + } + } + }) +} + +// Encoder is a simple interface for any type that can be encoded as an array of bytes +// in order to be sent as the key or value of a Kafka message. Length() is provided as an +// optimization, and must return the same as len() on the result of Encode(). +type Encoder interface { + Encode() ([]byte, error) + Length() int +} + +// make strings and byte slices encodable for convenience so they can be used as keys +// and/or values in kafka messages + +// StringEncoder implements the Encoder interface for Go strings so that they can be used +// as the Key or Value in a ProducerMessage. +type StringEncoder string + +func (s StringEncoder) Encode() ([]byte, error) { + return []byte(s), nil +} + +func (s StringEncoder) Length() int { + return len(s) +} + +// ByteEncoder implements the Encoder interface for Go byte slices so that they can be used +// as the Key or Value in a ProducerMessage. +type ByteEncoder []byte + +func (b ByteEncoder) Encode() ([]byte, error) { + return b, nil +} + +func (b ByteEncoder) Length() int { + return len(b) +} + +// bufConn wraps a net.Conn with a buffer for reads to reduce the number of +// reads that trigger syscalls. +type bufConn struct { + net.Conn + buf *bufio.Reader +} + +func newBufConn(conn net.Conn) *bufConn { + return &bufConn{ + Conn: conn, + buf: bufio.NewReader(conn), + } +} + +func (bc *bufConn) Read(b []byte) (n int, err error) { + return bc.buf.Read(b) +} + +// KafkaVersion instances represent versions of the upstream Kafka broker. +type KafkaVersion struct { + // it's a struct rather than just typing the array directly to make it opaque and stop people + // generating their own arbitrary versions + version [4]uint +} + +func newKafkaVersion(major, minor, veryMinor, patch uint) KafkaVersion { + return KafkaVersion{ + version: [4]uint{major, minor, veryMinor, patch}, + } +} + +// IsAtLeast return true if and only if the version it is called on is +// greater than or equal to the version passed in: +// V1.IsAtLeast(V2) // false +// V2.IsAtLeast(V1) // true +func (v KafkaVersion) IsAtLeast(other KafkaVersion) bool { + for i := range v.version { + if v.version[i] > other.version[i] { + return true + } else if v.version[i] < other.version[i] { + return false + } + } + return true +} + +// Effective constants defining the supported kafka versions. +var ( + V0_8_2_0 = newKafkaVersion(0, 8, 2, 0) + V0_8_2_1 = newKafkaVersion(0, 8, 2, 1) + V0_8_2_2 = newKafkaVersion(0, 8, 2, 2) + V0_9_0_0 = newKafkaVersion(0, 9, 0, 0) + V0_9_0_1 = newKafkaVersion(0, 9, 0, 1) + V0_10_0_0 = newKafkaVersion(0, 10, 0, 0) + V0_10_0_1 = newKafkaVersion(0, 10, 0, 1) + V0_10_1_0 = newKafkaVersion(0, 10, 1, 0) + V0_10_1_1 = newKafkaVersion(0, 10, 1, 1) + V0_10_2_0 = newKafkaVersion(0, 10, 2, 0) + V0_10_2_1 = newKafkaVersion(0, 10, 2, 1) + V0_11_0_0 = newKafkaVersion(0, 11, 0, 0) + V0_11_0_1 = newKafkaVersion(0, 11, 0, 1) + V0_11_0_2 = newKafkaVersion(0, 11, 0, 2) + V1_0_0_0 = newKafkaVersion(1, 0, 0, 0) + V1_1_0_0 = newKafkaVersion(1, 1, 0, 0) + V2_0_0_0 = newKafkaVersion(2, 0, 0, 0) + + SupportedVersions = []KafkaVersion{ + V0_8_2_0, + V0_8_2_1, + V0_8_2_2, + V0_9_0_0, + V0_9_0_1, + V0_10_0_0, + V0_10_0_1, + V0_10_1_0, + V0_10_1_1, + V0_10_2_0, + V0_10_2_1, + V0_11_0_0, + V0_11_0_1, + V0_11_0_2, + V1_0_0_0, + V1_1_0_0, + V2_0_0_0, + } + MinVersion = V0_8_2_0 + MaxVersion = V2_0_0_0 +) + +func ParseKafkaVersion(s string) (KafkaVersion, error) { + if len(s) < 5 { + return MinVersion, fmt.Errorf("invalid version `%s`", s) + } + var major, minor, veryMinor, patch uint + var err error + if s[0] == '0' { + err = scanKafkaVersion(s, `^0\.\d+\.\d+\.\d+$`, "0.%d.%d.%d", [3]*uint{&minor, &veryMinor, &patch}) + } else { + err = scanKafkaVersion(s, `^\d+\.\d+\.\d+$`, "%d.%d.%d", [3]*uint{&major, &minor, &veryMinor}) + } + if err != nil { + return MinVersion, err + } + return newKafkaVersion(major, minor, veryMinor, patch), nil +} + +func scanKafkaVersion(s string, pattern string, format string, v [3]*uint) error { + if !regexp.MustCompile(pattern).MatchString(s) { + return fmt.Errorf("invalid version `%s`", s) + } + _, err := fmt.Sscanf(s, format, v[0], v[1], v[2]) + return err +} + +func (v KafkaVersion) String() string { + if v.version[0] == 0 { + return fmt.Sprintf("0.%d.%d.%d", v.version[1], v.version[2], v.version[3]) + } else { + return fmt.Sprintf("%d.%d.%d", v.version[0], v.version[1], v.version[2]) + } +} diff --git a/vendor/github.com/Sirupsen/logrus/.gitignore b/vendor/github.com/Sirupsen/logrus/.gitignore new file mode 100644 index 00000000..66be63a0 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/.gitignore @@ -0,0 +1 @@ +logrus diff --git a/vendor/github.com/Sirupsen/logrus/.travis.yml b/vendor/github.com/Sirupsen/logrus/.travis.yml new file mode 100644 index 00000000..1f953beb --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/.travis.yml @@ -0,0 +1,51 @@ +language: go +env: + - GOMAXPROCS=4 GORACE=halt_on_error=1 +matrix: + include: + - go: 1.10.x + install: + - go get github.com/stretchr/testify/assert + - go get golang.org/x/crypto/ssh/terminal + - go get golang.org/x/sys/unix + - go get golang.org/x/sys/windows + script: + - go test -race -v ./... + - go: 1.11.x + env: GO111MODULE=on + install: + - go mod download + script: + - go test -race -v ./... + - go: 1.11.x + env: GO111MODULE=off + install: + - go get github.com/stretchr/testify/assert + - go get golang.org/x/crypto/ssh/terminal + - go get golang.org/x/sys/unix + - go get golang.org/x/sys/windows + script: + - go test -race -v ./... + - go: 1.10.x + install: + - go get github.com/stretchr/testify/assert + - go get golang.org/x/crypto/ssh/terminal + - go get golang.org/x/sys/unix + - go get golang.org/x/sys/windows + script: + - go test -race -v -tags appengine ./... + - go: 1.11.x + env: GO111MODULE=on + install: + - go mod download + script: + - go test -race -v -tags appengine ./... + - go: 1.11.x + env: GO111MODULE=off + install: + - go get github.com/stretchr/testify/assert + - go get golang.org/x/crypto/ssh/terminal + - go get golang.org/x/sys/unix + - go get golang.org/x/sys/windows + script: + - go test -race -v -tags appengine ./... diff --git a/vendor/github.com/Sirupsen/logrus/CHANGELOG.md b/vendor/github.com/Sirupsen/logrus/CHANGELOG.md new file mode 100644 index 00000000..17026960 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/CHANGELOG.md @@ -0,0 +1,153 @@ +# 1.1.0 +This new release introduces: + * several fixes: + * a fix for a race condition on entry formatting + * proper cleanup of previously used entries before putting them back in the pool + * the extra new line at the end of message in text formatter has been removed + * a new global public API to check if a level is activated: IsLevelEnabled + * the following methods have been added to the Logger object + * IsLevelEnabled + * SetFormatter + * SetOutput + * ReplaceHooks + * introduction of go module + * an indent configuration for the json formatter + * output colour support for windows + * the field sort function is now configurable for text formatter + * the CLICOLOR and CLICOLOR\_FORCE environment variable support in text formater + +# 1.0.6 + +This new release introduces: + * a new api WithTime which allows to easily force the time of the log entry + which is mostly useful for logger wrapper + * a fix reverting the immutability of the entry given as parameter to the hooks + a new configuration field of the json formatter in order to put all the fields + in a nested dictionnary + * a new SetOutput method in the Logger + * a new configuration of the textformatter to configure the name of the default keys + * a new configuration of the text formatter to disable the level truncation + +# 1.0.5 + +* Fix hooks race (#707) +* Fix panic deadlock (#695) + +# 1.0.4 + +* Fix race when adding hooks (#612) +* Fix terminal check in AppEngine (#635) + +# 1.0.3 + +* Replace example files with testable examples + +# 1.0.2 + +* bug: quote non-string values in text formatter (#583) +* Make (*Logger) SetLevel a public method + +# 1.0.1 + +* bug: fix escaping in text formatter (#575) + +# 1.0.0 + +* Officially changed name to lower-case +* bug: colors on Windows 10 (#541) +* bug: fix race in accessing level (#512) + +# 0.11.5 + +* feature: add writer and writerlevel to entry (#372) + +# 0.11.4 + +* bug: fix undefined variable on solaris (#493) + +# 0.11.3 + +* formatter: configure quoting of empty values (#484) +* formatter: configure quoting character (default is `"`) (#484) +* bug: fix not importing io correctly in non-linux environments (#481) + +# 0.11.2 + +* bug: fix windows terminal detection (#476) + +# 0.11.1 + +* bug: fix tty detection with custom out (#471) + +# 0.11.0 + +* performance: Use bufferpool to allocate (#370) +* terminal: terminal detection for app-engine (#343) +* feature: exit handler (#375) + +# 0.10.0 + +* feature: Add a test hook (#180) +* feature: `ParseLevel` is now case-insensitive (#326) +* feature: `FieldLogger` interface that generalizes `Logger` and `Entry` (#308) +* performance: avoid re-allocations on `WithFields` (#335) + +# 0.9.0 + +* logrus/text_formatter: don't emit empty msg +* logrus/hooks/airbrake: move out of main repository +* logrus/hooks/sentry: move out of main repository +* logrus/hooks/papertrail: move out of main repository +* logrus/hooks/bugsnag: move out of main repository +* logrus/core: run tests with `-race` +* logrus/core: detect TTY based on `stderr` +* logrus/core: support `WithError` on logger +* logrus/core: Solaris support + +# 0.8.7 + +* logrus/core: fix possible race (#216) +* logrus/doc: small typo fixes and doc improvements + + +# 0.8.6 + +* hooks/raven: allow passing an initialized client + +# 0.8.5 + +* logrus/core: revert #208 + +# 0.8.4 + +* formatter/text: fix data race (#218) + +# 0.8.3 + +* logrus/core: fix entry log level (#208) +* logrus/core: improve performance of text formatter by 40% +* logrus/core: expose `LevelHooks` type +* logrus/core: add support for DragonflyBSD and NetBSD +* formatter/text: print structs more verbosely + +# 0.8.2 + +* logrus: fix more Fatal family functions + +# 0.8.1 + +* logrus: fix not exiting on `Fatalf` and `Fatalln` + +# 0.8.0 + +* logrus: defaults to stderr instead of stdout +* hooks/sentry: add special field for `*http.Request` +* formatter/text: ignore Windows for colors + +# 0.7.3 + +* formatter/\*: allow configuration of timestamp layout + +# 0.7.2 + +* formatter/text: Add configuration option for time format (#158) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/LICENSE b/vendor/github.com/Sirupsen/logrus/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/LICENSE rename to vendor/github.com/Sirupsen/logrus/LICENSE diff --git a/vendor/github.com/Sirupsen/logrus/README.md b/vendor/github.com/Sirupsen/logrus/README.md new file mode 100644 index 00000000..072e99be --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/README.md @@ -0,0 +1,461 @@ +# Logrus :walrus: [![Build Status](https://travis-ci.org/sirupsen/logrus.svg?branch=master)](https://travis-ci.org/sirupsen/logrus) [![GoDoc](https://godoc.org/github.com/sirupsen/logrus?status.svg)](https://godoc.org/github.com/sirupsen/logrus) + +Logrus is a structured logger for Go (golang), completely API compatible with +the standard library logger. + +**Seeing weird case-sensitive problems?** It's in the past been possible to +import Logrus as both upper- and lower-case. Due to the Go package environment, +this caused issues in the community and we needed a standard. Some environments +experienced problems with the upper-case variant, so the lower-case was decided. +Everything using `logrus` will need to use the lower-case: +`github.com/sirupsen/logrus`. Any package that isn't, should be changed. + +To fix Glide, see [these +comments](https://github.com/sirupsen/logrus/issues/553#issuecomment-306591437). +For an in-depth explanation of the casing issue, see [this +comment](https://github.com/sirupsen/logrus/issues/570#issuecomment-313933276). + +**Are you interested in assisting in maintaining Logrus?** Currently I have a +lot of obligations, and I am unable to provide Logrus with the maintainership it +needs. If you'd like to help, please reach out to me at `simon at author's +username dot com`. + +Nicely color-coded in development (when a TTY is attached, otherwise just +plain text): + +![Colored](http://i.imgur.com/PY7qMwd.png) + +With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash +or Splunk: + +```json +{"animal":"walrus","level":"info","msg":"A group of walrus emerges from the +ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"} + +{"level":"warning","msg":"The group's number increased tremendously!", +"number":122,"omg":true,"time":"2014-03-10 19:57:38.562471297 -0400 EDT"} + +{"animal":"walrus","level":"info","msg":"A giant walrus appears!", +"size":10,"time":"2014-03-10 19:57:38.562500591 -0400 EDT"} + +{"animal":"walrus","level":"info","msg":"Tremendously sized cow enters the ocean.", +"size":9,"time":"2014-03-10 19:57:38.562527896 -0400 EDT"} + +{"level":"fatal","msg":"The ice breaks!","number":100,"omg":true, +"time":"2014-03-10 19:57:38.562543128 -0400 EDT"} +``` + +With the default `log.SetFormatter(&log.TextFormatter{})` when a TTY is not +attached, the output is compatible with the +[logfmt](http://godoc.org/github.com/kr/logfmt) format: + +```text +time="2015-03-26T01:27:38-04:00" level=debug msg="Started observing beach" animal=walrus number=8 +time="2015-03-26T01:27:38-04:00" level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10 +time="2015-03-26T01:27:38-04:00" level=warning msg="The group's number increased tremendously!" number=122 omg=true +time="2015-03-26T01:27:38-04:00" level=debug msg="Temperature changes" temperature=-4 +time="2015-03-26T01:27:38-04:00" level=panic msg="It's over 9000!" animal=orca size=9009 +time="2015-03-26T01:27:38-04:00" level=fatal msg="The ice breaks!" err=&{0x2082280c0 map[animal:orca size:9009] 2015-03-26 01:27:38.441574009 -0400 EDT panic It's over 9000!} number=100 omg=true +exit status 1 +``` + +#### Case-sensitivity + +The organization's name was changed to lower-case--and this will not be changed +back. If you are getting import conflicts due to case sensitivity, please use +the lower-case import: `github.com/sirupsen/logrus`. + +#### Example + +The simplest way to use Logrus is simply the package-level exported logger: + +```go +package main + +import ( + log "github.com/sirupsen/logrus" +) + +func main() { + log.WithFields(log.Fields{ + "animal": "walrus", + }).Info("A walrus appears") +} +``` + +Note that it's completely api-compatible with the stdlib logger, so you can +replace your `log` imports everywhere with `log "github.com/sirupsen/logrus"` +and you'll now have the flexibility of Logrus. You can customize it all you +want: + +```go +package main + +import ( + "os" + log "github.com/sirupsen/logrus" +) + +func init() { + // Log as JSON instead of the default ASCII formatter. + log.SetFormatter(&log.JSONFormatter{}) + + // Output to stdout instead of the default stderr + // Can be any io.Writer, see below for File example + log.SetOutput(os.Stdout) + + // Only log the warning severity or above. + log.SetLevel(log.WarnLevel) +} + +func main() { + log.WithFields(log.Fields{ + "animal": "walrus", + "size": 10, + }).Info("A group of walrus emerges from the ocean") + + log.WithFields(log.Fields{ + "omg": true, + "number": 122, + }).Warn("The group's number increased tremendously!") + + log.WithFields(log.Fields{ + "omg": true, + "number": 100, + }).Fatal("The ice breaks!") + + // A common pattern is to re-use fields between logging statements by re-using + // the logrus.Entry returned from WithFields() + contextLogger := log.WithFields(log.Fields{ + "common": "this is a common field", + "other": "I also should be logged always", + }) + + contextLogger.Info("I'll be logged with common and other field") + contextLogger.Info("Me too") +} +``` + +For more advanced usage such as logging to multiple locations from the same +application, you can also create an instance of the `logrus` Logger: + +```go +package main + +import ( + "os" + "github.com/sirupsen/logrus" +) + +// Create a new instance of the logger. You can have any number of instances. +var log = logrus.New() + +func main() { + // The API for setting attributes is a little different than the package level + // exported logger. See Godoc. + log.Out = os.Stdout + + // You could set this to any `io.Writer` such as a file + // file, err := os.OpenFile("logrus.log", os.O_CREATE|os.O_WRONLY, 0666) + // if err == nil { + // log.Out = file + // } else { + // log.Info("Failed to log to file, using default stderr") + // } + + log.WithFields(logrus.Fields{ + "animal": "walrus", + "size": 10, + }).Info("A group of walrus emerges from the ocean") +} +``` + +#### Fields + +Logrus encourages careful, structured logging through logging fields instead of +long, unparseable error messages. For example, instead of: `log.Fatalf("Failed +to send event %s to topic %s with key %d")`, you should log the much more +discoverable: + +```go +log.WithFields(log.Fields{ + "event": event, + "topic": topic, + "key": key, +}).Fatal("Failed to send event") +``` + +We've found this API forces you to think about logging in a way that produces +much more useful logging messages. We've been in countless situations where just +a single added field to a log statement that was already there would've saved us +hours. The `WithFields` call is optional. + +In general, with Logrus using any of the `printf`-family functions should be +seen as a hint you should add a field, however, you can still use the +`printf`-family functions with Logrus. + +#### Default Fields + +Often it's helpful to have fields _always_ attached to log statements in an +application or parts of one. For example, you may want to always log the +`request_id` and `user_ip` in the context of a request. Instead of writing +`log.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip})` on +every line, you can create a `logrus.Entry` to pass around instead: + +```go +requestLogger := log.WithFields(log.Fields{"request_id": request_id, "user_ip": user_ip}) +requestLogger.Info("something happened on that request") # will log request_id and user_ip +requestLogger.Warn("something not great happened") +``` + +#### Hooks + +You can add hooks for logging levels. For example to send errors to an exception +tracking service on `Error`, `Fatal` and `Panic`, info to StatsD or log to +multiple places simultaneously, e.g. syslog. + +Logrus comes with [built-in hooks](hooks/). Add those, or your custom hook, in +`init`: + +```go +import ( + log "github.com/sirupsen/logrus" + "gopkg.in/gemnasium/logrus-airbrake-hook.v2" // the package is named "airbrake" + logrus_syslog "github.com/sirupsen/logrus/hooks/syslog" + "log/syslog" +) + +func init() { + + // Use the Airbrake hook to report errors that have Error severity or above to + // an exception tracker. You can create custom hooks, see the Hooks section. + log.AddHook(airbrake.NewHook(123, "xyz", "production")) + + hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "") + if err != nil { + log.Error("Unable to connect to local syslog daemon") + } else { + log.AddHook(hook) + } +} +``` +Note: Syslog hook also support connecting to local syslog (Ex. "/dev/log" or "/var/run/syslog" or "/var/run/log"). For the detail, please check the [syslog hook README](hooks/syslog/README.md). + +A list of currently known of service hook can be found in this wiki [page](https://github.com/sirupsen/logrus/wiki/Hooks) + + +#### Level logging + +Logrus has six logging levels: Debug, Info, Warning, Error, Fatal and Panic. + +```go +log.Debug("Useful debugging information.") +log.Info("Something noteworthy happened!") +log.Warn("You should probably take a look at this.") +log.Error("Something failed but I'm not quitting.") +// Calls os.Exit(1) after logging +log.Fatal("Bye.") +// Calls panic() after logging +log.Panic("I'm bailing.") +``` + +You can set the logging level on a `Logger`, then it will only log entries with +that severity or anything above it: + +```go +// Will log anything that is info or above (warn, error, fatal, panic). Default. +log.SetLevel(log.InfoLevel) +``` + +It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose +environment if your application has that. + +#### Entries + +Besides the fields added with `WithField` or `WithFields` some fields are +automatically added to all logging events: + +1. `time`. The timestamp when the entry was created. +2. `msg`. The logging message passed to `{Info,Warn,Error,Fatal,Panic}` after + the `AddFields` call. E.g. `Failed to send event.` +3. `level`. The logging level. E.g. `info`. + +#### Environments + +Logrus has no notion of environment. + +If you wish for hooks and formatters to only be used in specific environments, +you should handle that yourself. For example, if your application has a global +variable `Environment`, which is a string representation of the environment you +could do: + +```go +import ( + log "github.com/sirupsen/logrus" +) + +init() { + // do something here to set environment depending on an environment variable + // or command-line flag + if Environment == "production" { + log.SetFormatter(&log.JSONFormatter{}) + } else { + // The TextFormatter is default, you don't actually have to do this. + log.SetFormatter(&log.TextFormatter{}) + } +} +``` + +This configuration is how `logrus` was intended to be used, but JSON in +production is mostly only useful if you do log aggregation with tools like +Splunk or Logstash. + +#### Formatters + +The built-in logging formatters are: + +* `logrus.TextFormatter`. Logs the event in colors if stdout is a tty, otherwise + without colors. + * *Note:* to force colored output when there is no TTY, set the `ForceColors` + field to `true`. To force no colored output even if there is a TTY set the + `DisableColors` field to `true`. For Windows, see + [github.com/mattn/go-colorable](https://github.com/mattn/go-colorable). + * When colors are enabled, levels are truncated to 4 characters by default. To disable + truncation set the `DisableLevelTruncation` field to `true`. + * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#TextFormatter). +* `logrus.JSONFormatter`. Logs fields as JSON. + * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#JSONFormatter). + +Third party logging formatters: + +* [`FluentdFormatter`](https://github.com/joonix/log). Formats entries that can be parsed by Kubernetes and Google Container Engine. +* [`logstash`](https://github.com/bshuster-repo/logrus-logstash-hook). Logs fields as [Logstash](http://logstash.net) Events. +* [`prefixed`](https://github.com/x-cray/logrus-prefixed-formatter). Displays log entry source along with alternative layout. +* [`zalgo`](https://github.com/aybabtme/logzalgo). Invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦. + +You can define your formatter by implementing the `Formatter` interface, +requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a +`Fields` type (`map[string]interface{}`) with all your fields as well as the +default ones (see Entries section above): + +```go +type MyJSONFormatter struct { +} + +log.SetFormatter(new(MyJSONFormatter)) + +func (f *MyJSONFormatter) Format(entry *Entry) ([]byte, error) { + // Note this doesn't include Time, Level and Message which are available on + // the Entry. Consult `godoc` on information about those fields or read the + // source of the official loggers. + serialized, err := json.Marshal(entry.Data) + if err != nil { + return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err) + } + return append(serialized, '\n'), nil +} +``` + +#### Logger as an `io.Writer` + +Logrus can be transformed into an `io.Writer`. That writer is the end of an `io.Pipe` and it is your responsibility to close it. + +```go +w := logger.Writer() +defer w.Close() + +srv := http.Server{ + // create a stdlib log.Logger that writes to + // logrus.Logger. + ErrorLog: log.New(w, "", 0), +} +``` + +Each line written to that writer will be printed the usual way, using formatters +and hooks. The level for those entries is `info`. + +This means that we can override the standard library logger easily: + +```go +logger := logrus.New() +logger.Formatter = &logrus.JSONFormatter{} + +// Use logrus for standard log output +// Note that `log` here references stdlib's log +// Not logrus imported under the name `log`. +log.SetOutput(logger.Writer()) +``` + +#### Rotation + +Log rotation is not provided with Logrus. Log rotation should be done by an +external program (like `logrotate(8)`) that can compress and delete old log +entries. It should not be a feature of the application-level logger. + +#### Tools + +| Tool | Description | +| ---- | ----------- | +|[Logrus Mate](https://github.com/gogap/logrus_mate)|Logrus mate is a tool for Logrus to manage loggers, you can initial logger's level, hook and formatter by config file, the logger will generated with different config at different environment.| +|[Logrus Viper Helper](https://github.com/heirko/go-contrib/tree/master/logrusHelper)|An Helper around Logrus to wrap with spf13/Viper to load configuration with fangs! And to simplify Logrus configuration use some behavior of [Logrus Mate](https://github.com/gogap/logrus_mate). [sample](https://github.com/heirko/iris-contrib/blob/master/middleware/logrus-logger/example) | + +#### Testing + +Logrus has a built in facility for asserting the presence of log messages. This is implemented through the `test` hook and provides: + +* decorators for existing logger (`test.NewLocal` and `test.NewGlobal`) which basically just add the `test` hook +* a test logger (`test.NewNullLogger`) that just records log messages (and does not output any): + +```go +import( + "github.com/sirupsen/logrus" + "github.com/sirupsen/logrus/hooks/test" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestSomething(t*testing.T){ + logger, hook := test.NewNullLogger() + logger.Error("Helloerror") + + assert.Equal(t, 1, len(hook.Entries)) + assert.Equal(t, logrus.ErrorLevel, hook.LastEntry().Level) + assert.Equal(t, "Helloerror", hook.LastEntry().Message) + + hook.Reset() + assert.Nil(t, hook.LastEntry()) +} +``` + +#### Fatal handlers + +Logrus can register one or more functions that will be called when any `fatal` +level message is logged. The registered handlers will be executed before +logrus performs a `os.Exit(1)`. This behavior may be helpful if callers need +to gracefully shutdown. Unlike a `panic("Something went wrong...")` call which can be intercepted with a deferred `recover` a call to `os.Exit(1)` can not be intercepted. + +``` +... +handler := func() { + // gracefully shutdown something... +} +logrus.RegisterExitHandler(handler) +... +``` + +#### Thread safety + +By default, Logger is protected by a mutex for concurrent writes. The mutex is held when calling hooks and writing logs. +If you are sure such locking is not needed, you can call logger.SetNoLock() to disable the locking. + +Situation when locking is not needed includes: + +* You have no hooks registered, or hooks calling is already thread-safe. + +* Writing to logger.Out is already thread-safe, for example: + + 1) logger.Out is protected by locks. + + 2) logger.Out is a os.File handler opened with `O_APPEND` flag, and every write is smaller than 4k. (This allow multi-thread/multi-process writing) + + (Refer to http://www.notthewizard.com/2014/06/17/are-files-appends-really-atomic/) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/alt_exit.go b/vendor/github.com/Sirupsen/logrus/alt_exit.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/alt_exit.go rename to vendor/github.com/Sirupsen/logrus/alt_exit.go diff --git a/vendor/github.com/Sirupsen/logrus/appveyor.yml b/vendor/github.com/Sirupsen/logrus/appveyor.yml new file mode 100644 index 00000000..96c2ce15 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/appveyor.yml @@ -0,0 +1,14 @@ +version: "{build}" +platform: x64 +clone_folder: c:\gopath\src\github.com\sirupsen\logrus +environment: + GOPATH: c:\gopath +branches: + only: + - master +install: + - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% + - go version +build_script: + - go get -t + - go test diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/doc.go b/vendor/github.com/Sirupsen/logrus/doc.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/doc.go rename to vendor/github.com/Sirupsen/logrus/doc.go diff --git a/vendor/github.com/Sirupsen/logrus/entry.go b/vendor/github.com/Sirupsen/logrus/entry.go new file mode 100644 index 00000000..4efedddf --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/entry.go @@ -0,0 +1,300 @@ +package logrus + +import ( + "bytes" + "fmt" + "os" + "sync" + "time" +) + +var bufferPool *sync.Pool + +func init() { + bufferPool = &sync.Pool{ + New: func() interface{} { + return new(bytes.Buffer) + }, + } +} + +// Defines the key when adding errors using WithError. +var ErrorKey = "error" + +// An entry is the final or intermediate Logrus logging entry. It contains all +// the fields passed with WithField{,s}. It's finally logged when Debug, Info, +// Warn, Error, Fatal or Panic is called on it. These objects can be reused and +// passed around as much as you wish to avoid field duplication. +type Entry struct { + Logger *Logger + + // Contains all the fields set by the user. + Data Fields + + // Time at which the log entry was created + Time time.Time + + // Level the log entry was logged at: Debug, Info, Warn, Error, Fatal or Panic + // This field will be set on entry firing and the value will be equal to the one in Logger struct field. + Level Level + + // Message passed to Debug, Info, Warn, Error, Fatal or Panic + Message string + + // When formatter is called in entry.log(), a Buffer may be set to entry + Buffer *bytes.Buffer +} + +func NewEntry(logger *Logger) *Entry { + return &Entry{ + Logger: logger, + // Default is five fields, give a little extra room + Data: make(Fields, 5), + } +} + +// Returns the string representation from the reader and ultimately the +// formatter. +func (entry *Entry) String() (string, error) { + serialized, err := entry.Logger.Formatter.Format(entry) + if err != nil { + return "", err + } + str := string(serialized) + return str, nil +} + +// Add an error as single field (using the key defined in ErrorKey) to the Entry. +func (entry *Entry) WithError(err error) *Entry { + return entry.WithField(ErrorKey, err) +} + +// Add a single field to the Entry. +func (entry *Entry) WithField(key string, value interface{}) *Entry { + return entry.WithFields(Fields{key: value}) +} + +// Add a map of fields to the Entry. +func (entry *Entry) WithFields(fields Fields) *Entry { + data := make(Fields, len(entry.Data)+len(fields)) + for k, v := range entry.Data { + data[k] = v + } + for k, v := range fields { + data[k] = v + } + return &Entry{Logger: entry.Logger, Data: data, Time: entry.Time} +} + +// Overrides the time of the Entry. +func (entry *Entry) WithTime(t time.Time) *Entry { + return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t} +} + +// This function is not declared with a pointer value because otherwise +// race conditions will occur when using multiple goroutines +func (entry Entry) log(level Level, msg string) { + var buffer *bytes.Buffer + + // Default to now, but allow users to override if they want. + // + // We don't have to worry about polluting future calls to Entry#log() + // with this assignment because this function is declared with a + // non-pointer receiver. + if entry.Time.IsZero() { + entry.Time = time.Now() + } + + entry.Level = level + entry.Message = msg + + entry.fireHooks() + + buffer = bufferPool.Get().(*bytes.Buffer) + buffer.Reset() + defer bufferPool.Put(buffer) + entry.Buffer = buffer + + entry.write() + + entry.Buffer = nil + + // To avoid Entry#log() returning a value that only would make sense for + // panic() to use in Entry#Panic(), we avoid the allocation by checking + // directly here. + if level <= PanicLevel { + panic(&entry) + } +} + +func (entry *Entry) fireHooks() { + entry.Logger.mu.Lock() + defer entry.Logger.mu.Unlock() + err := entry.Logger.Hooks.Fire(entry.Level, entry) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", err) + } +} + +func (entry *Entry) write() { + entry.Logger.mu.Lock() + defer entry.Logger.mu.Unlock() + serialized, err := entry.Logger.Formatter.Format(entry) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err) + } else { + _, err = entry.Logger.Out.Write(serialized) + if err != nil { + fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", err) + } + } +} + +func (entry *Entry) Debug(args ...interface{}) { + if entry.Logger.IsLevelEnabled(DebugLevel) { + entry.log(DebugLevel, fmt.Sprint(args...)) + } +} + +func (entry *Entry) Print(args ...interface{}) { + entry.Info(args...) +} + +func (entry *Entry) Info(args ...interface{}) { + if entry.Logger.IsLevelEnabled(InfoLevel) { + entry.log(InfoLevel, fmt.Sprint(args...)) + } +} + +func (entry *Entry) Warn(args ...interface{}) { + if entry.Logger.IsLevelEnabled(WarnLevel) { + entry.log(WarnLevel, fmt.Sprint(args...)) + } +} + +func (entry *Entry) Warning(args ...interface{}) { + entry.Warn(args...) +} + +func (entry *Entry) Error(args ...interface{}) { + if entry.Logger.IsLevelEnabled(ErrorLevel) { + entry.log(ErrorLevel, fmt.Sprint(args...)) + } +} + +func (entry *Entry) Fatal(args ...interface{}) { + if entry.Logger.IsLevelEnabled(FatalLevel) { + entry.log(FatalLevel, fmt.Sprint(args...)) + } + Exit(1) +} + +func (entry *Entry) Panic(args ...interface{}) { + if entry.Logger.IsLevelEnabled(PanicLevel) { + entry.log(PanicLevel, fmt.Sprint(args...)) + } + panic(fmt.Sprint(args...)) +} + +// Entry Printf family functions + +func (entry *Entry) Debugf(format string, args ...interface{}) { + if entry.Logger.IsLevelEnabled(DebugLevel) { + entry.Debug(fmt.Sprintf(format, args...)) + } +} + +func (entry *Entry) Infof(format string, args ...interface{}) { + if entry.Logger.IsLevelEnabled(InfoLevel) { + entry.Info(fmt.Sprintf(format, args...)) + } +} + +func (entry *Entry) Printf(format string, args ...interface{}) { + entry.Infof(format, args...) +} + +func (entry *Entry) Warnf(format string, args ...interface{}) { + if entry.Logger.IsLevelEnabled(WarnLevel) { + entry.Warn(fmt.Sprintf(format, args...)) + } +} + +func (entry *Entry) Warningf(format string, args ...interface{}) { + entry.Warnf(format, args...) +} + +func (entry *Entry) Errorf(format string, args ...interface{}) { + if entry.Logger.IsLevelEnabled(ErrorLevel) { + entry.Error(fmt.Sprintf(format, args...)) + } +} + +func (entry *Entry) Fatalf(format string, args ...interface{}) { + if entry.Logger.IsLevelEnabled(FatalLevel) { + entry.Fatal(fmt.Sprintf(format, args...)) + } + Exit(1) +} + +func (entry *Entry) Panicf(format string, args ...interface{}) { + if entry.Logger.IsLevelEnabled(PanicLevel) { + entry.Panic(fmt.Sprintf(format, args...)) + } +} + +// Entry Println family functions + +func (entry *Entry) Debugln(args ...interface{}) { + if entry.Logger.IsLevelEnabled(DebugLevel) { + entry.Debug(entry.sprintlnn(args...)) + } +} + +func (entry *Entry) Infoln(args ...interface{}) { + if entry.Logger.IsLevelEnabled(InfoLevel) { + entry.Info(entry.sprintlnn(args...)) + } +} + +func (entry *Entry) Println(args ...interface{}) { + entry.Infoln(args...) +} + +func (entry *Entry) Warnln(args ...interface{}) { + if entry.Logger.IsLevelEnabled(WarnLevel) { + entry.Warn(entry.sprintlnn(args...)) + } +} + +func (entry *Entry) Warningln(args ...interface{}) { + entry.Warnln(args...) +} + +func (entry *Entry) Errorln(args ...interface{}) { + if entry.Logger.IsLevelEnabled(ErrorLevel) { + entry.Error(entry.sprintlnn(args...)) + } +} + +func (entry *Entry) Fatalln(args ...interface{}) { + if entry.Logger.IsLevelEnabled(FatalLevel) { + entry.Fatal(entry.sprintlnn(args...)) + } + Exit(1) +} + +func (entry *Entry) Panicln(args ...interface{}) { + if entry.Logger.IsLevelEnabled(PanicLevel) { + entry.Panic(entry.sprintlnn(args...)) + } +} + +// Sprintlnn => Sprint no newline. This is to get the behavior of how +// fmt.Sprintln where spaces are always added between operands, regardless of +// their type. Instead of vendoring the Sprintln implementation to spare a +// string allocation, we do the simplest thing. +func (entry *Entry) sprintlnn(args ...interface{}) string { + msg := fmt.Sprintln(args...) + return msg[:len(msg)-1] +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/exported.go b/vendor/github.com/Sirupsen/logrus/exported.go similarity index 82% rename from vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/exported.go rename to vendor/github.com/Sirupsen/logrus/exported.go index 1aeaa90b..fb2a7a1f 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/exported.go +++ b/vendor/github.com/Sirupsen/logrus/exported.go @@ -2,6 +2,7 @@ package logrus import ( "io" + "time" ) var ( @@ -15,37 +16,32 @@ func StandardLogger() *Logger { // SetOutput sets the standard logger output. func SetOutput(out io.Writer) { - std.mu.Lock() - defer std.mu.Unlock() - std.Out = out + std.SetOutput(out) } // SetFormatter sets the standard logger formatter. func SetFormatter(formatter Formatter) { - std.mu.Lock() - defer std.mu.Unlock() - std.Formatter = formatter + std.SetFormatter(formatter) } // SetLevel sets the standard logger level. func SetLevel(level Level) { - std.mu.Lock() - defer std.mu.Unlock() - std.setLevel(level) + std.SetLevel(level) } // GetLevel returns the standard logger level. func GetLevel() Level { - std.mu.Lock() - defer std.mu.Unlock() - return std.level() + return std.GetLevel() +} + +// IsLevelEnabled checks if the log level of the standard logger is greater than the level param +func IsLevelEnabled(level Level) bool { + return std.IsLevelEnabled(level) } // AddHook adds a hook to the standard logger hooks. func AddHook(hook Hook) { - std.mu.Lock() - defer std.mu.Unlock() - std.Hooks.Add(hook) + std.AddHook(hook) } // WithError creates an entry from the standard logger and adds an error to it, using the value defined in ErrorKey as key. @@ -72,6 +68,15 @@ func WithFields(fields Fields) *Entry { return std.WithFields(fields) } +// WithTime creats an entry from the standard logger and overrides the time of +// logs generated with it. +// +// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal +// or Panic on the Entry it returns. +func WithTime(t time.Time) *Entry { + return std.WithTime(t) +} + // Debug logs a message at level Debug on the standard logger. func Debug(args ...interface{}) { std.Debug(args...) @@ -107,7 +112,7 @@ func Panic(args ...interface{}) { std.Panic(args...) } -// Fatal logs a message at level Fatal on the standard logger. +// Fatal logs a message at level Fatal on the standard logger then the process will exit with status set to 1. func Fatal(args ...interface{}) { std.Fatal(args...) } @@ -147,7 +152,7 @@ func Panicf(format string, args ...interface{}) { std.Panicf(format, args...) } -// Fatalf logs a message at level Fatal on the standard logger. +// Fatalf logs a message at level Fatal on the standard logger then the process will exit with status set to 1. func Fatalf(format string, args ...interface{}) { std.Fatalf(format, args...) } @@ -187,7 +192,7 @@ func Panicln(args ...interface{}) { std.Panicln(args...) } -// Fatalln logs a message at level Fatal on the standard logger. +// Fatalln logs a message at level Fatal on the standard logger then the process will exit with status set to 1. func Fatalln(args ...interface{}) { std.Fatalln(args...) } diff --git a/vendor/github.com/Sirupsen/logrus/formatter.go b/vendor/github.com/Sirupsen/logrus/formatter.go new file mode 100644 index 00000000..83c74947 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/formatter.go @@ -0,0 +1,51 @@ +package logrus + +import "time" + +const defaultTimestampFormat = time.RFC3339 + +// The Formatter interface is used to implement a custom Formatter. It takes an +// `Entry`. It exposes all the fields, including the default ones: +// +// * `entry.Data["msg"]`. The message passed from Info, Warn, Error .. +// * `entry.Data["time"]`. The timestamp. +// * `entry.Data["level"]. The level the entry was logged at. +// +// Any additional fields added with `WithField` or `WithFields` are also in +// `entry.Data`. Format is expected to return an array of bytes which are then +// logged to `logger.Out`. +type Formatter interface { + Format(*Entry) ([]byte, error) +} + +// This is to not silently overwrite `time`, `msg` and `level` fields when +// dumping it. If this code wasn't there doing: +// +// logrus.WithField("level", 1).Info("hello") +// +// Would just silently drop the user provided level. Instead with this code +// it'll logged as: +// +// {"level": "info", "fields.level": 1, "msg": "hello", "time": "..."} +// +// It's not exported because it's still using Data in an opinionated way. It's to +// avoid code duplication between the two default formatters. +func prefixFieldClashes(data Fields, fieldMap FieldMap) { + timeKey := fieldMap.resolve(FieldKeyTime) + if t, ok := data[timeKey]; ok { + data["fields."+timeKey] = t + delete(data, timeKey) + } + + msgKey := fieldMap.resolve(FieldKeyMsg) + if m, ok := data[msgKey]; ok { + data["fields."+msgKey] = m + delete(data, msgKey) + } + + levelKey := fieldMap.resolve(FieldKeyLevel) + if l, ok := data[levelKey]; ok { + data["fields."+levelKey] = l + delete(data, levelKey) + } +} diff --git a/vendor/github.com/Sirupsen/logrus/go.mod b/vendor/github.com/Sirupsen/logrus/go.mod new file mode 100644 index 00000000..f4fed02f --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/go.mod @@ -0,0 +1,10 @@ +module github.com/sirupsen/logrus + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/testify v1.2.2 + golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 + golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 +) diff --git a/vendor/github.com/Sirupsen/logrus/go.sum b/vendor/github.com/Sirupsen/logrus/go.sum new file mode 100644 index 00000000..1f0d7196 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/go.sum @@ -0,0 +1,12 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe h1:CHRGQ8V7OlCYtwaKPJi3iA7J+YdNKdo8j7nG5IgDhjs= +github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +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/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/hooks.go b/vendor/github.com/Sirupsen/logrus/hooks.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/hooks.go rename to vendor/github.com/Sirupsen/logrus/hooks.go diff --git a/vendor/github.com/Sirupsen/logrus/json_formatter.go b/vendor/github.com/Sirupsen/logrus/json_formatter.go new file mode 100644 index 00000000..d3dadefe --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/json_formatter.go @@ -0,0 +1,104 @@ +package logrus + +import ( + "bytes" + "encoding/json" + "fmt" +) + +type fieldKey string + +// FieldMap allows customization of the key names for default fields. +type FieldMap map[fieldKey]string + +// Default key names for the default fields +const ( + FieldKeyMsg = "msg" + FieldKeyLevel = "level" + FieldKeyTime = "time" +) + +func (f FieldMap) resolve(key fieldKey) string { + if k, ok := f[key]; ok { + return k + } + + return string(key) +} + +// JSONFormatter formats logs into parsable json +type JSONFormatter struct { + // TimestampFormat sets the format used for marshaling timestamps. + TimestampFormat string + + // DisableTimestamp allows disabling automatic timestamps in output + DisableTimestamp bool + + // DataKey allows users to put all the log entry parameters into a nested dictionary at a given key. + DataKey string + + // FieldMap allows users to customize the names of keys for default fields. + // As an example: + // formatter := &JSONFormatter{ + // FieldMap: FieldMap{ + // FieldKeyTime: "@timestamp", + // FieldKeyLevel: "@level", + // FieldKeyMsg: "@message", + // }, + // } + FieldMap FieldMap + + // PrettyPrint will indent all json logs + PrettyPrint bool +} + +// Format renders a single log entry +func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) { + data := make(Fields, len(entry.Data)+3) + for k, v := range entry.Data { + switch v := v.(type) { + case error: + // Otherwise errors are ignored by `encoding/json` + // https://github.com/sirupsen/logrus/issues/137 + data[k] = v.Error() + default: + data[k] = v + } + } + + if f.DataKey != "" { + newData := make(Fields, 4) + newData[f.DataKey] = data + data = newData + } + + prefixFieldClashes(data, f.FieldMap) + + timestampFormat := f.TimestampFormat + if timestampFormat == "" { + timestampFormat = defaultTimestampFormat + } + + if !f.DisableTimestamp { + data[f.FieldMap.resolve(FieldKeyTime)] = entry.Time.Format(timestampFormat) + } + data[f.FieldMap.resolve(FieldKeyMsg)] = entry.Message + data[f.FieldMap.resolve(FieldKeyLevel)] = entry.Level.String() + + var b *bytes.Buffer + if entry.Buffer != nil { + b = entry.Buffer + } else { + b = &bytes.Buffer{} + } + + encoder := json.NewEncoder(b) + if f.PrettyPrint { + encoder.SetIndent("", " ") + } + if err := encoder.Encode(data); err != nil { + return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err) + } + + return b.Bytes(), nil +} diff --git a/vendor/github.com/Sirupsen/logrus/logger.go b/vendor/github.com/Sirupsen/logrus/logger.go new file mode 100644 index 00000000..b67bfcbd --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/logger.go @@ -0,0 +1,367 @@ +package logrus + +import ( + "io" + "os" + "sync" + "sync/atomic" + "time" +) + +type Logger struct { + // The logs are `io.Copy`'d to this in a mutex. It's common to set this to a + // file, or leave it default which is `os.Stderr`. You can also set this to + // something more adventurous, such as logging to Kafka. + Out io.Writer + // Hooks for the logger instance. These allow firing events based on logging + // levels and log entries. For example, to send errors to an error tracking + // service, log to StatsD or dump the core on fatal errors. + Hooks LevelHooks + // All log entries pass through the formatter before logged to Out. The + // included formatters are `TextFormatter` and `JSONFormatter` for which + // TextFormatter is the default. In development (when a TTY is attached) it + // logs with colors, but to a file it wouldn't. You can easily implement your + // own that implements the `Formatter` interface, see the `README` or included + // formatters for examples. + Formatter Formatter + // The logging level the logger should log at. This is typically (and defaults + // to) `logrus.Info`, which allows Info(), Warn(), Error() and Fatal() to be + // logged. + Level Level + // Used to sync writing to the log. Locking is enabled by Default + mu MutexWrap + // Reusable empty entry + entryPool sync.Pool +} + +type MutexWrap struct { + lock sync.Mutex + disabled bool +} + +func (mw *MutexWrap) Lock() { + if !mw.disabled { + mw.lock.Lock() + } +} + +func (mw *MutexWrap) Unlock() { + if !mw.disabled { + mw.lock.Unlock() + } +} + +func (mw *MutexWrap) Disable() { + mw.disabled = true +} + +// Creates a new logger. Configuration should be set by changing `Formatter`, +// `Out` and `Hooks` directly on the default logger instance. You can also just +// instantiate your own: +// +// var log = &Logger{ +// Out: os.Stderr, +// Formatter: new(JSONFormatter), +// Hooks: make(LevelHooks), +// Level: logrus.DebugLevel, +// } +// +// It's recommended to make this a global instance called `log`. +func New() *Logger { + return &Logger{ + Out: os.Stderr, + Formatter: new(TextFormatter), + Hooks: make(LevelHooks), + Level: InfoLevel, + } +} + +func (logger *Logger) newEntry() *Entry { + entry, ok := logger.entryPool.Get().(*Entry) + if ok { + return entry + } + return NewEntry(logger) +} + +func (logger *Logger) releaseEntry(entry *Entry) { + entry.Data = map[string]interface{}{} + logger.entryPool.Put(entry) +} + +// Adds a field to the log entry, note that it doesn't log until you call +// Debug, Print, Info, Warn, Error, Fatal or Panic. It only creates a log entry. +// If you want multiple fields, use `WithFields`. +func (logger *Logger) WithField(key string, value interface{}) *Entry { + entry := logger.newEntry() + defer logger.releaseEntry(entry) + return entry.WithField(key, value) +} + +// Adds a struct of fields to the log entry. All it does is call `WithField` for +// each `Field`. +func (logger *Logger) WithFields(fields Fields) *Entry { + entry := logger.newEntry() + defer logger.releaseEntry(entry) + return entry.WithFields(fields) +} + +// Add an error as single field to the log entry. All it does is call +// `WithError` for the given `error`. +func (logger *Logger) WithError(err error) *Entry { + entry := logger.newEntry() + defer logger.releaseEntry(entry) + return entry.WithError(err) +} + +// Overrides the time of the log entry. +func (logger *Logger) WithTime(t time.Time) *Entry { + entry := logger.newEntry() + defer logger.releaseEntry(entry) + return entry.WithTime(t) +} + +func (logger *Logger) Debugf(format string, args ...interface{}) { + if logger.IsLevelEnabled(DebugLevel) { + entry := logger.newEntry() + entry.Debugf(format, args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Infof(format string, args ...interface{}) { + if logger.IsLevelEnabled(InfoLevel) { + entry := logger.newEntry() + entry.Infof(format, args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Printf(format string, args ...interface{}) { + entry := logger.newEntry() + entry.Printf(format, args...) + logger.releaseEntry(entry) +} + +func (logger *Logger) Warnf(format string, args ...interface{}) { + if logger.IsLevelEnabled(WarnLevel) { + entry := logger.newEntry() + entry.Warnf(format, args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Warningf(format string, args ...interface{}) { + if logger.IsLevelEnabled(WarnLevel) { + entry := logger.newEntry() + entry.Warnf(format, args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Errorf(format string, args ...interface{}) { + if logger.IsLevelEnabled(ErrorLevel) { + entry := logger.newEntry() + entry.Errorf(format, args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Fatalf(format string, args ...interface{}) { + if logger.IsLevelEnabled(FatalLevel) { + entry := logger.newEntry() + entry.Fatalf(format, args...) + logger.releaseEntry(entry) + } + Exit(1) +} + +func (logger *Logger) Panicf(format string, args ...interface{}) { + if logger.IsLevelEnabled(PanicLevel) { + entry := logger.newEntry() + entry.Panicf(format, args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Debug(args ...interface{}) { + if logger.IsLevelEnabled(DebugLevel) { + entry := logger.newEntry() + entry.Debug(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Info(args ...interface{}) { + if logger.IsLevelEnabled(InfoLevel) { + entry := logger.newEntry() + entry.Info(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Print(args ...interface{}) { + entry := logger.newEntry() + entry.Info(args...) + logger.releaseEntry(entry) +} + +func (logger *Logger) Warn(args ...interface{}) { + if logger.IsLevelEnabled(WarnLevel) { + entry := logger.newEntry() + entry.Warn(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Warning(args ...interface{}) { + if logger.IsLevelEnabled(WarnLevel) { + entry := logger.newEntry() + entry.Warn(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Error(args ...interface{}) { + if logger.IsLevelEnabled(ErrorLevel) { + entry := logger.newEntry() + entry.Error(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Fatal(args ...interface{}) { + if logger.IsLevelEnabled(FatalLevel) { + entry := logger.newEntry() + entry.Fatal(args...) + logger.releaseEntry(entry) + } + Exit(1) +} + +func (logger *Logger) Panic(args ...interface{}) { + if logger.IsLevelEnabled(PanicLevel) { + entry := logger.newEntry() + entry.Panic(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Debugln(args ...interface{}) { + if logger.IsLevelEnabled(DebugLevel) { + entry := logger.newEntry() + entry.Debugln(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Infoln(args ...interface{}) { + if logger.IsLevelEnabled(InfoLevel) { + entry := logger.newEntry() + entry.Infoln(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Println(args ...interface{}) { + entry := logger.newEntry() + entry.Println(args...) + logger.releaseEntry(entry) +} + +func (logger *Logger) Warnln(args ...interface{}) { + if logger.IsLevelEnabled(WarnLevel) { + entry := logger.newEntry() + entry.Warnln(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Warningln(args ...interface{}) { + if logger.IsLevelEnabled(WarnLevel) { + entry := logger.newEntry() + entry.Warnln(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Errorln(args ...interface{}) { + if logger.IsLevelEnabled(ErrorLevel) { + entry := logger.newEntry() + entry.Errorln(args...) + logger.releaseEntry(entry) + } +} + +func (logger *Logger) Fatalln(args ...interface{}) { + if logger.IsLevelEnabled(FatalLevel) { + entry := logger.newEntry() + entry.Fatalln(args...) + logger.releaseEntry(entry) + } + Exit(1) +} + +func (logger *Logger) Panicln(args ...interface{}) { + if logger.IsLevelEnabled(PanicLevel) { + entry := logger.newEntry() + entry.Panicln(args...) + logger.releaseEntry(entry) + } +} + +//When file is opened with appending mode, it's safe to +//write concurrently to a file (within 4k message on Linux). +//In these cases user can choose to disable the lock. +func (logger *Logger) SetNoLock() { + logger.mu.Disable() +} + +func (logger *Logger) level() Level { + return Level(atomic.LoadUint32((*uint32)(&logger.Level))) +} + +// SetLevel sets the logger level. +func (logger *Logger) SetLevel(level Level) { + atomic.StoreUint32((*uint32)(&logger.Level), uint32(level)) +} + +// GetLevel returns the logger level. +func (logger *Logger) GetLevel() Level { + return logger.level() +} + +// AddHook adds a hook to the logger hooks. +func (logger *Logger) AddHook(hook Hook) { + logger.mu.Lock() + defer logger.mu.Unlock() + logger.Hooks.Add(hook) +} + +// IsLevelEnabled checks if the log level of the logger is greater than the level param +func (logger *Logger) IsLevelEnabled(level Level) bool { + return logger.level() >= level +} + +// SetFormatter sets the logger formatter. +func (logger *Logger) SetFormatter(formatter Formatter) { + logger.mu.Lock() + defer logger.mu.Unlock() + logger.Formatter = formatter +} + +// SetOutput sets the logger output. +func (logger *Logger) SetOutput(output io.Writer) { + logger.mu.Lock() + defer logger.mu.Unlock() + logger.Out = output +} + +// ReplaceHooks replaces the logger hooks and returns the old ones +func (logger *Logger) ReplaceHooks(hooks LevelHooks) LevelHooks { + logger.mu.Lock() + oldHooks := logger.Hooks + logger.Hooks = hooks + logger.mu.Unlock() + return oldHooks +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/logrus.go b/vendor/github.com/Sirupsen/logrus/logrus.go similarity index 95% rename from vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/logrus.go rename to vendor/github.com/Sirupsen/logrus/logrus.go index dd389997..fa0b9dea 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/logrus.go +++ b/vendor/github.com/Sirupsen/logrus/logrus.go @@ -140,4 +140,11 @@ type FieldLogger interface { Errorln(args ...interface{}) Fatalln(args ...interface{}) Panicln(args ...interface{}) + + // IsDebugEnabled() bool + // IsInfoEnabled() bool + // IsWarnEnabled() bool + // IsErrorEnabled() bool + // IsFatalEnabled() bool + // IsPanicEnabled() bool } diff --git a/vendor/github.com/Sirupsen/logrus/terminal_appengine.go b/vendor/github.com/Sirupsen/logrus/terminal_appengine.go new file mode 100644 index 00000000..72f679cd --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_appengine.go @@ -0,0 +1,13 @@ +// Based on ssh/terminal: +// 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. + +// +build appengine + +package logrus + +import "io" + +func initTerminal(w io.Writer) { +} diff --git a/vendor/github.com/Sirupsen/logrus/terminal_bsd.go b/vendor/github.com/Sirupsen/logrus/terminal_bsd.go new file mode 100644 index 00000000..62ca252d --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_bsd.go @@ -0,0 +1,17 @@ +// +build darwin freebsd openbsd netbsd dragonfly +// +build !appengine,!js + +package logrus + +import ( + "io" + + "golang.org/x/sys/unix" +) + +const ioctlReadTermios = unix.TIOCGETA + +type Termios unix.Termios + +func initTerminal(w io.Writer) { +} diff --git a/vendor/github.com/Sirupsen/logrus/terminal_check_appengine.go b/vendor/github.com/Sirupsen/logrus/terminal_check_appengine.go new file mode 100644 index 00000000..2403de98 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_check_appengine.go @@ -0,0 +1,11 @@ +// +build appengine + +package logrus + +import ( + "io" +) + +func checkIfTerminal(w io.Writer) bool { + return true +} diff --git a/vendor/github.com/Sirupsen/logrus/terminal_check_js.go b/vendor/github.com/Sirupsen/logrus/terminal_check_js.go new file mode 100644 index 00000000..0c209750 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_check_js.go @@ -0,0 +1,11 @@ +// +build js + +package logrus + +import ( + "io" +) + +func checkIfTerminal(w io.Writer) bool { + return false +} diff --git a/vendor/github.com/Sirupsen/logrus/terminal_check_notappengine.go b/vendor/github.com/Sirupsen/logrus/terminal_check_notappengine.go new file mode 100644 index 00000000..cf309d6f --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_check_notappengine.go @@ -0,0 +1,19 @@ +// +build !appengine,!js,!windows + +package logrus + +import ( + "io" + "os" + + "golang.org/x/crypto/ssh/terminal" +) + +func checkIfTerminal(w io.Writer) bool { + switch v := w.(type) { + case *os.File: + return terminal.IsTerminal(int(v.Fd())) + default: + return false + } +} diff --git a/vendor/github.com/Sirupsen/logrus/terminal_check_windows.go b/vendor/github.com/Sirupsen/logrus/terminal_check_windows.go new file mode 100644 index 00000000..3b9d2864 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_check_windows.go @@ -0,0 +1,20 @@ +// +build !appengine,!js,windows + +package logrus + +import ( + "io" + "os" + "syscall" +) + +func checkIfTerminal(w io.Writer) bool { + switch v := w.(type) { + case *os.File: + var mode uint32 + err := syscall.GetConsoleMode(syscall.Handle(v.Fd()), &mode) + return err == nil + default: + return false + } +} diff --git a/vendor/github.com/Sirupsen/logrus/terminal_linux.go b/vendor/github.com/Sirupsen/logrus/terminal_linux.go new file mode 100644 index 00000000..18066f08 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_linux.go @@ -0,0 +1,21 @@ +// Based on ssh/terminal: +// 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. + +// +build !appengine,!js + +package logrus + +import ( + "io" + + "golang.org/x/sys/unix" +) + +const ioctlReadTermios = unix.TCGETS + +type Termios unix.Termios + +func initTerminal(w io.Writer) { +} diff --git a/vendor/github.com/Sirupsen/logrus/terminal_windows.go b/vendor/github.com/Sirupsen/logrus/terminal_windows.go new file mode 100644 index 00000000..b4ef5286 --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/terminal_windows.go @@ -0,0 +1,18 @@ +// +build !appengine,!js,windows + +package logrus + +import ( + "io" + "os" + "syscall" + + sequences "github.com/konsorten/go-windows-terminal-sequences" +) + +func initTerminal(w io.Writer) { + switch v := w.(type) { + case *os.File: + sequences.EnableVirtualTerminalProcessing(syscall.Handle(v.Fd()), true) + } +} diff --git a/vendor/github.com/Sirupsen/logrus/text_formatter.go b/vendor/github.com/Sirupsen/logrus/text_formatter.go new file mode 100644 index 00000000..67fb686c --- /dev/null +++ b/vendor/github.com/Sirupsen/logrus/text_formatter.go @@ -0,0 +1,249 @@ +package logrus + +import ( + "bytes" + "fmt" + "os" + "sort" + "strings" + "sync" + "time" +) + +const ( + nocolor = 0 + red = 31 + green = 32 + yellow = 33 + blue = 36 + gray = 37 +) + +var ( + baseTimestamp time.Time + emptyFieldMap FieldMap +) + +func init() { + baseTimestamp = time.Now() +} + +// TextFormatter formats logs into text +type TextFormatter struct { + // Set to true to bypass checking for a TTY before outputting colors. + ForceColors bool + + // Force disabling colors. + DisableColors bool + + // Override coloring based on CLICOLOR and CLICOLOR_FORCE. - https://bixense.com/clicolors/ + EnvironmentOverrideColors bool + + // Disable timestamp logging. useful when output is redirected to logging + // system that already adds timestamps. + DisableTimestamp bool + + // Enable logging the full timestamp when a TTY is attached instead of just + // the time passed since beginning of execution. + FullTimestamp bool + + // TimestampFormat to use for display when a full timestamp is printed + TimestampFormat string + + // The fields are sorted by default for a consistent output. For applications + // that log extremely frequently and don't use the JSON formatter this may not + // be desired. + DisableSorting bool + + // The keys sorting function, when uninitialized it uses sort.Strings. + SortingFunc func([]string) + + // Disables the truncation of the level text to 4 characters. + DisableLevelTruncation bool + + // QuoteEmptyFields will wrap empty fields in quotes if true + QuoteEmptyFields bool + + // Whether the logger's out is to a terminal + isTerminal bool + + // FieldMap allows users to customize the names of keys for default fields. + // As an example: + // formatter := &TextFormatter{ + // FieldMap: FieldMap{ + // FieldKeyTime: "@timestamp", + // FieldKeyLevel: "@level", + // FieldKeyMsg: "@message"}} + FieldMap FieldMap + + terminalInitOnce sync.Once +} + +func (f *TextFormatter) init(entry *Entry) { + if entry.Logger != nil { + f.isTerminal = checkIfTerminal(entry.Logger.Out) + + if f.isTerminal { + initTerminal(entry.Logger.Out) + } + } +} + +func (f *TextFormatter) isColored() bool { + isColored := f.ForceColors || f.isTerminal + + if f.EnvironmentOverrideColors { + if force, ok := os.LookupEnv("CLICOLOR_FORCE"); ok && force != "0" { + isColored = true + } else if ok && force == "0" { + isColored = false + } else if os.Getenv("CLICOLOR") == "0" { + isColored = false + } + } + + return isColored && !f.DisableColors +} + +// Format renders a single log entry +func (f *TextFormatter) Format(entry *Entry) ([]byte, error) { + prefixFieldClashes(entry.Data, f.FieldMap) + + keys := make([]string, 0, len(entry.Data)) + for k := range entry.Data { + keys = append(keys, k) + } + + fixedKeys := make([]string, 0, 3+len(entry.Data)) + if !f.DisableTimestamp { + fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyTime)) + } + fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyLevel)) + if entry.Message != "" { + fixedKeys = append(fixedKeys, f.FieldMap.resolve(FieldKeyMsg)) + } + + if !f.DisableSorting { + if f.SortingFunc == nil { + sort.Strings(keys) + fixedKeys = append(fixedKeys, keys...) + } else { + if !f.isColored() { + fixedKeys = append(fixedKeys, keys...) + f.SortingFunc(fixedKeys) + } else { + f.SortingFunc(keys) + } + } + } else { + fixedKeys = append(fixedKeys, keys...) + } + + var b *bytes.Buffer + if entry.Buffer != nil { + b = entry.Buffer + } else { + b = &bytes.Buffer{} + } + + f.terminalInitOnce.Do(func() { f.init(entry) }) + + timestampFormat := f.TimestampFormat + if timestampFormat == "" { + timestampFormat = defaultTimestampFormat + } + if f.isColored() { + f.printColored(b, entry, keys, timestampFormat) + } else { + for _, key := range fixedKeys { + var value interface{} + switch key { + case f.FieldMap.resolve(FieldKeyTime): + value = entry.Time.Format(timestampFormat) + case f.FieldMap.resolve(FieldKeyLevel): + value = entry.Level.String() + case f.FieldMap.resolve(FieldKeyMsg): + value = entry.Message + default: + value = entry.Data[key] + } + f.appendKeyValue(b, key, value) + } + } + + b.WriteByte('\n') + return b.Bytes(), nil +} + +func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []string, timestampFormat string) { + var levelColor int + switch entry.Level { + case DebugLevel: + levelColor = gray + case WarnLevel: + levelColor = yellow + case ErrorLevel, FatalLevel, PanicLevel: + levelColor = red + default: + levelColor = blue + } + + levelText := strings.ToUpper(entry.Level.String()) + if !f.DisableLevelTruncation { + levelText = levelText[0:4] + } + + // Remove a single newline if it already exists in the message to keep + // the behavior of logrus text_formatter the same as the stdlib log package + entry.Message = strings.TrimSuffix(entry.Message, "\n") + + if f.DisableTimestamp { + fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m %-44s ", levelColor, levelText, entry.Message) + } else if !f.FullTimestamp { + fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%04d] %-44s ", levelColor, levelText, int(entry.Time.Sub(baseTimestamp)/time.Second), entry.Message) + } else { + fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s] %-44s ", levelColor, levelText, entry.Time.Format(timestampFormat), entry.Message) + } + for _, k := range keys { + v := entry.Data[k] + fmt.Fprintf(b, " \x1b[%dm%s\x1b[0m=", levelColor, k) + f.appendValue(b, v) + } +} + +func (f *TextFormatter) needsQuoting(text string) bool { + if f.QuoteEmptyFields && len(text) == 0 { + return true + } + for _, ch := range text { + if !((ch >= 'a' && ch <= 'z') || + (ch >= 'A' && ch <= 'Z') || + (ch >= '0' && ch <= '9') || + ch == '-' || ch == '.' || ch == '_' || ch == '/' || ch == '@' || ch == '^' || ch == '+') { + return true + } + } + return false +} + +func (f *TextFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}) { + if b.Len() > 0 { + b.WriteByte(' ') + } + b.WriteString(key) + b.WriteByte('=') + f.appendValue(b, value) +} + +func (f *TextFormatter) appendValue(b *bytes.Buffer, value interface{}) { + stringVal, ok := value.(string) + if !ok { + stringVal = fmt.Sprint(value) + } + + if !f.needsQuoting(stringVal) { + b.WriteString(stringVal) + } else { + b.WriteString(fmt.Sprintf("%q", stringVal)) + } +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/writer.go b/vendor/github.com/Sirupsen/logrus/writer.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/Sirupsen/logrus/writer.go rename to vendor/github.com/Sirupsen/logrus/writer.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/StackExchange/wmi/LICENSE b/vendor/github.com/StackExchange/wmi/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/StackExchange/wmi/LICENSE rename to vendor/github.com/StackExchange/wmi/LICENSE diff --git a/vendor/github.com/StackExchange/wmi/README.md b/vendor/github.com/StackExchange/wmi/README.md new file mode 100644 index 00000000..426d1a46 --- /dev/null +++ b/vendor/github.com/StackExchange/wmi/README.md @@ -0,0 +1,6 @@ +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/vendor/github.com/elastic/beats/vendor/github.com/StackExchange/wmi/swbemservices.go b/vendor/github.com/StackExchange/wmi/swbemservices.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/StackExchange/wmi/swbemservices.go rename to vendor/github.com/StackExchange/wmi/swbemservices.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/StackExchange/wmi/wmi.go b/vendor/github.com/StackExchange/wmi/wmi.go similarity index 90% rename from vendor/github.com/elastic/beats/vendor/github.com/StackExchange/wmi/wmi.go rename to vendor/github.com/StackExchange/wmi/wmi.go index 9c688b03..a951b125 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/StackExchange/wmi/wmi.go +++ b/vendor/github.com/StackExchange/wmi/wmi.go @@ -370,32 +370,50 @@ func (c *Client) loadEntity(dst interface{}, src *ole.IDispatch) (errFieldMismat } } default: - // Only support []string slices for now - if f.Kind() == reflect.Slice && f.Type().Elem().Kind() == 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)) + 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: + 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) + } + 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())) } - f.Set(fArr) break } - } - - typeof := reflect.TypeOf(val) - if typeof == nil && (isPtr || c.NonePtrZero) { - if (isPtr && c.PtrNil) || (!isPtr && c.NonePtrZero) { - of.Set(reflect.Zero(of.Type())) + return &ErrFieldMismatch{ + StructType: of.Type(), + FieldName: n, + Reason: fmt.Sprintf("unsupported type (%T)", val), } - break - } - return &ErrFieldMismatch{ - StructType: of.Type(), - FieldName: n, - Reason: fmt.Sprintf("unsupported type (%T)", val), } } } diff --git a/vendor/github.com/davecgh/go-spew/LICENSE b/vendor/github.com/davecgh/go-spew/LICENSE new file mode 100644 index 00000000..bc52e96f --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/LICENSE @@ -0,0 +1,15 @@ +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/vendor/github.com/davecgh/go-spew/spew/bypass.go b/vendor/github.com/davecgh/go-spew/spew/bypass.go new file mode 100644 index 00000000..79299478 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/bypass.go @@ -0,0 +1,145 @@ +// 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. +// +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/vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go similarity index 97% rename from vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go rename to vendor/github.com/davecgh/go-spew/spew/bypasssafe.go index 1fe3cf3d..205c28d6 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go +++ b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go @@ -16,7 +16,7 @@ // 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. -// +build js appengine safe disableunsafe +// +build js appengine safe disableunsafe !go1.4 package spew diff --git a/vendor/github.com/davecgh/go-spew/spew/common.go b/vendor/github.com/davecgh/go-spew/spew/common.go new file mode 100644 index 00000000..1be8ce94 --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/common.go @@ -0,0 +1,341 @@ +/* + * 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/vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/config.go b/vendor/github.com/davecgh/go-spew/spew/config.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/config.go rename to vendor/github.com/davecgh/go-spew/spew/config.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/doc.go b/vendor/github.com/davecgh/go-spew/spew/doc.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/doc.go rename to vendor/github.com/davecgh/go-spew/spew/doc.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/dump.go b/vendor/github.com/davecgh/go-spew/spew/dump.go similarity index 98% rename from vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/dump.go rename to vendor/github.com/davecgh/go-spew/spew/dump.go index df1d582a..f78d89fc 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/dump.go +++ b/vendor/github.com/davecgh/go-spew/spew/dump.go @@ -35,16 +35,16 @@ var ( // 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$") + 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$") + 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$") + cUint8tCharRE = regexp.MustCompile(`^.*\._Ctype_uint8_t$`) ) // dumpState contains information about the state of a dump operation. @@ -143,10 +143,10 @@ func (d *dumpState) dumpPtr(v reflect.Value) { // Display dereferenced value. d.w.Write(openParenBytes) switch { - case nilFound == true: + case nilFound: d.w.Write(nilAngleBytes) - case cycleFound == true: + case cycleFound: d.w.Write(circularBytes) default: diff --git a/vendor/github.com/davecgh/go-spew/spew/format.go b/vendor/github.com/davecgh/go-spew/spew/format.go new file mode 100644 index 00000000..b04edb7d --- /dev/null +++ b/vendor/github.com/davecgh/go-spew/spew/format.go @@ -0,0 +1,419 @@ +/* + * 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/vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/spew.go b/vendor/github.com/davecgh/go-spew/spew/spew.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/davecgh/go-spew/spew/spew.go rename to vendor/github.com/davecgh/go-spew/spew/spew.go diff --git a/vendor/github.com/docker/distribution/AUTHORS b/vendor/github.com/docker/distribution/AUTHORS new file mode 100644 index 00000000..aaf02987 --- /dev/null +++ b/vendor/github.com/docker/distribution/AUTHORS @@ -0,0 +1,182 @@ +Aaron Lehmann +Aaron Schlesinger +Aaron Vinson +Adam Duke +Adam Enger +Adrian Mouat +Ahmet Alp Balkan +Alex Chan +Alex Elman +Alexey Gladkov +allencloud +amitshukla +Amy Lindburg +Andrew Hsu +Andrew Meredith +Andrew T Nguyen +Andrey Kostov +Andy Goldstein +Anis Elleuch +Antonio Mercado +Antonio Murdaca +Anton Tiurin +Anusha Ragunathan +a-palchikov +Arien Holthuizen +Arnaud Porterie +Arthur Baars +Asuka Suzuki +Avi Miller +Ayose Cazorla +BadZen +Ben Bodenmiller +Ben Firshman +bin liu +Brian Bland +burnettk +Carson A +Cezar Sa Espinola +Charles Smith +Chris Dillon +cuiwei13 +cyli +Daisuke Fujita +Daniel Huhn +Darren Shepherd +Dave Trombley +Dave Tucker +David Lawrence +davidli +David Verhasselt +David Xia +Dejan Golja +Derek McGowan +Diogo Mónica +DJ Enriquez +Donald Huang +Doug Davis +Edgar Lee +Eric Yang +Fabio Berchtold +Fabio Huser +farmerworking +Felix Yan +Florentin Raud +Frank Chen +Frederick F. Kautz IV +gabriell nascimento +Gleb Schukin +harche +Henri Gomez +Hua Wang +Hu Keping +HuKeping +Ian Babrou +igayoso +Jack Griffin +James Findley +Jason Freidman +Jason Heiss +Jeff Nickoloff +Jess Frazelle +Jessie Frazelle +jhaohai +Jianqing Wang +Jihoon Chung +Joao Fernandes +John Mulhausen +John Starks +Jonathan Boulle +Jon Johnson +Jon Poler +Jordan Liggitt +Josh Chorlton +Josh Hawn +Julien Fernandez +Keerthan Mala +Kelsey Hightower +Kenneth Lim +Kenny Leung +Ke Xu +liuchang0812 +Liu Hua +Li Yi +Lloyd Ramey +Louis Kottmann +Luke Carpenter +Marcus Martins +Mary Anthony +Matt Bentley +Matt Duch +Matthew Green +Matt Moore +Matt Robenolt +Michael Prokop +Michal Minar +Michal Minář +Mike Brown +Miquel Sabaté +Misty Stanley-Jones +Morgan Bauer +moxiegirl +Nathan Sullivan +nevermosby +Nghia Tran +Nikita Tarasov +Noah Treuhaft +Nuutti Kotivuori +Oilbeater +Olivier Gambier +Olivier Jacques +Omer Cohen +Patrick Devine +Phil Estes +Philip Misiowiec +Pierre-Yves Ritschard +Qiao Anran +Randy Barlow +Richard Scothern +Rodolfo Carvalho +Rusty Conover +Sean Boran +Sebastiaan van Stijn +Sebastien Coavoux +Serge Dubrouski +Sharif Nassar +Shawn Falkner-Horine +Shreyas Karnik +Simon Thulbourn +spacexnice +Spencer Rinehart +Stan Hu +Stefan Majewsky +Stefan Weil +Stephen J Day +Sungho Moon +Sven Dowideit +Sylvain Baubeau +Ted Reed +tgic +Thomas Sjögren +Tianon Gravi +Tibor Vass +Tonis Tiigi +Tony Holdstock-Brown +Trevor Pounds +Troels Thomsen +Victoria Bialas +Victor Vieux +Vincent Batts +Vincent Demeester +Vincent Giersch +weiyuan.yl +W. Trevor King +xg.song +xiekeyang +Yann ROBERT +yaoyao.xyy +yixi zhang +yuexiao-wang +yuzou +zhouhaibing089 +姜继忠 diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/distribution/LICENSE b/vendor/github.com/docker/distribution/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/distribution/LICENSE rename to vendor/github.com/docker/distribution/LICENSE diff --git a/vendor/github.com/docker/distribution/digest/digest.go b/vendor/github.com/docker/distribution/digest/digest.go new file mode 100644 index 00000000..31d821bb --- /dev/null +++ b/vendor/github.com/docker/distribution/digest/digest.go @@ -0,0 +1,139 @@ +package digest + +import ( + "fmt" + "hash" + "io" + "regexp" + "strings" +) + +const ( + // DigestSha256EmptyTar is the canonical sha256 digest of empty data + DigestSha256EmptyTar = "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" +) + +// Digest allows simple protection of hex formatted digest strings, prefixed +// by their algorithm. Strings of type Digest have some guarantee of being in +// the correct format and it provides quick access to the components of a +// digest string. +// +// The following is an example of the contents of Digest types: +// +// sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc +// +// This allows to abstract the digest behind this type and work only in those +// terms. +type Digest string + +// NewDigest returns a Digest from alg and a hash.Hash object. +func NewDigest(alg Algorithm, h hash.Hash) Digest { + return NewDigestFromBytes(alg, h.Sum(nil)) +} + +// NewDigestFromBytes returns a new digest from the byte contents of p. +// Typically, this can come from hash.Hash.Sum(...) or xxx.SumXXX(...) +// functions. This is also useful for rebuilding digests from binary +// serializations. +func NewDigestFromBytes(alg Algorithm, p []byte) Digest { + return Digest(fmt.Sprintf("%s:%x", alg, p)) +} + +// NewDigestFromHex returns a Digest from alg and a the hex encoded digest. +func NewDigestFromHex(alg, hex string) Digest { + return Digest(fmt.Sprintf("%s:%s", alg, hex)) +} + +// DigestRegexp matches valid digest types. +var DigestRegexp = regexp.MustCompile(`[a-zA-Z0-9-_+.]+:[a-fA-F0-9]+`) + +// DigestRegexpAnchored matches valid digest types, anchored to the start and end of the match. +var DigestRegexpAnchored = regexp.MustCompile(`^` + DigestRegexp.String() + `$`) + +var ( + // ErrDigestInvalidFormat returned when digest format invalid. + ErrDigestInvalidFormat = fmt.Errorf("invalid checksum digest format") + + // ErrDigestInvalidLength returned when digest has invalid length. + ErrDigestInvalidLength = fmt.Errorf("invalid checksum digest length") + + // ErrDigestUnsupported returned when the digest algorithm is unsupported. + ErrDigestUnsupported = fmt.Errorf("unsupported digest algorithm") +) + +// ParseDigest parses s and returns the validated digest object. An error will +// be returned if the format is invalid. +func ParseDigest(s string) (Digest, error) { + d := Digest(s) + + return d, d.Validate() +} + +// FromReader returns the most valid digest for the underlying content using +// the canonical digest algorithm. +func FromReader(rd io.Reader) (Digest, error) { + return Canonical.FromReader(rd) +} + +// FromBytes digests the input and returns a Digest. +func FromBytes(p []byte) Digest { + return Canonical.FromBytes(p) +} + +// Validate checks that the contents of d is a valid digest, returning an +// error if not. +func (d Digest) Validate() error { + s := string(d) + + if !DigestRegexpAnchored.MatchString(s) { + return ErrDigestInvalidFormat + } + + i := strings.Index(s, ":") + if i < 0 { + return ErrDigestInvalidFormat + } + + // case: "sha256:" with no hex. + if i+1 == len(s) { + return ErrDigestInvalidFormat + } + + switch algorithm := Algorithm(s[:i]); algorithm { + case SHA256, SHA384, SHA512: + if algorithm.Size()*2 != len(s[i+1:]) { + return ErrDigestInvalidLength + } + break + default: + return ErrDigestUnsupported + } + + return nil +} + +// Algorithm returns the algorithm portion of the digest. This will panic if +// the underlying digest is not in a valid format. +func (d Digest) Algorithm() Algorithm { + return Algorithm(d[:d.sepIndex()]) +} + +// Hex returns the hex digest portion of the digest. This will panic if the +// underlying digest is not in a valid format. +func (d Digest) Hex() string { + return string(d[d.sepIndex()+1:]) +} + +func (d Digest) String() string { + return string(d) +} + +func (d Digest) sepIndex() int { + i := strings.Index(string(d), ":") + + if i < 0 { + panic("could not find ':' in digest: " + d) + } + + return i +} diff --git a/vendor/github.com/docker/distribution/digest/digester.go b/vendor/github.com/docker/distribution/digest/digester.go new file mode 100644 index 00000000..f3105a45 --- /dev/null +++ b/vendor/github.com/docker/distribution/digest/digester.go @@ -0,0 +1,155 @@ +package digest + +import ( + "crypto" + "fmt" + "hash" + "io" +) + +// Algorithm identifies and implementation of a digester by an identifier. +// Note the that this defines both the hash algorithm used and the string +// encoding. +type Algorithm string + +// supported digest types +const ( + SHA256 Algorithm = "sha256" // sha256 with hex encoding + SHA384 Algorithm = "sha384" // sha384 with hex encoding + SHA512 Algorithm = "sha512" // sha512 with hex encoding + + // Canonical is the primary digest algorithm used with the distribution + // project. Other digests may be used but this one is the primary storage + // digest. + Canonical = SHA256 +) + +var ( + // TODO(stevvooe): Follow the pattern of the standard crypto package for + // registration of digests. Effectively, we are a registerable set and + // common symbol access. + + // algorithms maps values to hash.Hash implementations. Other algorithms + // may be available but they cannot be calculated by the digest package. + algorithms = map[Algorithm]crypto.Hash{ + SHA256: crypto.SHA256, + SHA384: crypto.SHA384, + SHA512: crypto.SHA512, + } +) + +// Available returns true if the digest type is available for use. If this +// returns false, New and Hash will return nil. +func (a Algorithm) Available() bool { + h, ok := algorithms[a] + if !ok { + return false + } + + // check availability of the hash, as well + return h.Available() +} + +func (a Algorithm) String() string { + return string(a) +} + +// Size returns number of bytes returned by the hash. +func (a Algorithm) Size() int { + h, ok := algorithms[a] + if !ok { + return 0 + } + return h.Size() +} + +// Set implemented to allow use of Algorithm as a command line flag. +func (a *Algorithm) Set(value string) error { + if value == "" { + *a = Canonical + } else { + // just do a type conversion, support is queried with Available. + *a = Algorithm(value) + } + + return nil +} + +// New returns a new digester for the specified algorithm. If the algorithm +// does not have a digester implementation, nil will be returned. This can be +// checked by calling Available before calling New. +func (a Algorithm) New() Digester { + return &digester{ + alg: a, + hash: a.Hash(), + } +} + +// Hash returns a new hash as used by the algorithm. If not available, the +// method will panic. Check Algorithm.Available() before calling. +func (a Algorithm) Hash() hash.Hash { + if !a.Available() { + // NOTE(stevvooe): A missing hash is usually a programming error that + // must be resolved at compile time. We don't import in the digest + // package to allow users to choose their hash implementation (such as + // when using stevvooe/resumable or a hardware accelerated package). + // + // Applications that may want to resolve the hash at runtime should + // call Algorithm.Available before call Algorithm.Hash(). + panic(fmt.Sprintf("%v not available (make sure it is imported)", a)) + } + + return algorithms[a].New() +} + +// FromReader returns the digest of the reader using the algorithm. +func (a Algorithm) FromReader(rd io.Reader) (Digest, error) { + digester := a.New() + + if _, err := io.Copy(digester.Hash(), rd); err != nil { + return "", err + } + + return digester.Digest(), nil +} + +// FromBytes digests the input and returns a Digest. +func (a Algorithm) FromBytes(p []byte) Digest { + digester := a.New() + + if _, err := digester.Hash().Write(p); err != nil { + // Writes to a Hash should never fail. None of the existing + // hash implementations in the stdlib or hashes vendored + // here can return errors from Write. Having a panic in this + // condition instead of having FromBytes return an error value + // avoids unnecessary error handling paths in all callers. + panic("write to hash function returned error: " + err.Error()) + } + + return digester.Digest() +} + +// TODO(stevvooe): Allow resolution of verifiers using the digest type and +// this registration system. + +// Digester calculates the digest of written data. Writes should go directly +// to the return value of Hash, while calling Digest will return the current +// value of the digest. +type Digester interface { + Hash() hash.Hash // provides direct access to underlying hash instance. + Digest() Digest +} + +// digester provides a simple digester definition that embeds a hasher. +type digester struct { + alg Algorithm + hash hash.Hash +} + +func (d *digester) Hash() hash.Hash { + return d.hash +} + +func (d *digester) Digest() Digest { + return NewDigest(d.alg, d.hash) +} diff --git a/vendor/github.com/docker/distribution/digest/doc.go b/vendor/github.com/docker/distribution/digest/doc.go new file mode 100644 index 00000000..f64b0db3 --- /dev/null +++ b/vendor/github.com/docker/distribution/digest/doc.go @@ -0,0 +1,42 @@ +// Package digest provides a generalized type to opaquely represent message +// digests and their operations within the registry. The Digest type is +// designed to serve as a flexible identifier in a content-addressable system. +// More importantly, it provides tools and wrappers to work with +// hash.Hash-based digests with little effort. +// +// Basics +// +// The format of a digest is simply a string with two parts, dubbed the +// "algorithm" and the "digest", separated by a colon: +// +// : +// +// An example of a sha256 digest representation follows: +// +// sha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc +// +// In this case, the string "sha256" is the algorithm and the hex bytes are +// the "digest". +// +// Because the Digest type is simply a string, once a valid Digest is +// obtained, comparisons are cheap, quick and simple to express with the +// standard equality operator. +// +// Verification +// +// The main benefit of using the Digest type is simple verification against a +// given digest. The Verifier interface, modeled after the stdlib hash.Hash +// interface, provides a common write sink for digest verification. After +// writing is complete, calling the Verifier.Verified method will indicate +// whether or not the stream of bytes matches the target digest. +// +// Missing Features +// +// In addition to the above, we intend to add the following features to this +// package: +// +// 1. A Digester type that supports write sink digest calculation. +// +// 2. Suspend and resume of ongoing digest calculations to support efficient digest verification in the registry. +// +package digest diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/distribution/digestset/set.go b/vendor/github.com/docker/distribution/digest/set.go similarity index 90% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/distribution/digestset/set.go rename to vendor/github.com/docker/distribution/digest/set.go index 71327dca..4b9313c1 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/distribution/digestset/set.go +++ b/vendor/github.com/docker/distribution/digest/set.go @@ -1,12 +1,10 @@ -package digestset +package digest import ( "errors" "sort" "strings" "sync" - - digest "github.com/opencontainers/go-digest" ) var ( @@ -46,7 +44,7 @@ func NewSet() *Set { // values or short values. This function does not test equality, // rather whether the second value could match against the first // value. -func checkShortMatch(alg digest.Algorithm, hex, shortAlg, shortHex string) bool { +func checkShortMatch(alg Algorithm, hex, shortAlg, shortHex string) bool { if len(hex) == len(shortHex) { if hex != shortHex { return false @@ -66,7 +64,7 @@ func checkShortMatch(alg digest.Algorithm, hex, shortAlg, shortHex string) bool // If no digests could be found ErrDigestNotFound will be returned // with an empty digest value. If multiple matches are found // ErrDigestAmbiguous will be returned with an empty digest value. -func (dst *Set) Lookup(d string) (digest.Digest, error) { +func (dst *Set) Lookup(d string) (Digest, error) { dst.mutex.RLock() defer dst.mutex.RUnlock() if len(dst.entries) == 0 { @@ -74,11 +72,11 @@ func (dst *Set) Lookup(d string) (digest.Digest, error) { } var ( searchFunc func(int) bool - alg digest.Algorithm + alg Algorithm hex string ) - dgst, err := digest.Parse(d) - if err == digest.ErrDigestInvalidFormat { + dgst, err := ParseDigest(d) + if err == ErrDigestInvalidFormat { hex = d searchFunc = func(i int) bool { return dst.entries[i].val >= d @@ -110,7 +108,7 @@ func (dst *Set) Lookup(d string) (digest.Digest, error) { // Add adds the given digest to the set. An error will be returned // if the given digest is invalid. If the digest already exists in the // set, this operation will be a no-op. -func (dst *Set) Add(d digest.Digest) error { +func (dst *Set) Add(d Digest) error { if err := d.Validate(); err != nil { return err } @@ -141,7 +139,7 @@ func (dst *Set) Add(d digest.Digest) error { // Remove removes the given digest from the set. An err will be // returned if the given digest is invalid. If the digest does // not exist in the set, this operation will be a no-op. -func (dst *Set) Remove(d digest.Digest) error { +func (dst *Set) Remove(d Digest) error { if err := d.Validate(); err != nil { return err } @@ -169,10 +167,10 @@ func (dst *Set) Remove(d digest.Digest) error { } // All returns all the digests in the set -func (dst *Set) All() []digest.Digest { +func (dst *Set) All() []Digest { dst.mutex.RLock() defer dst.mutex.RUnlock() - retValues := make([]digest.Digest, len(dst.entries)) + retValues := make([]Digest, len(dst.entries)) for i := range dst.entries { retValues[i] = dst.entries[i].digest } @@ -185,10 +183,10 @@ func (dst *Set) All() []digest.Digest { // entire value of digest if uniqueness cannot be achieved without the // full value. This function will attempt to make short codes as short // as possible to be unique. -func ShortCodeTable(dst *Set, length int) map[digest.Digest]string { +func ShortCodeTable(dst *Set, length int) map[Digest]string { dst.mutex.RLock() defer dst.mutex.RUnlock() - m := make(map[digest.Digest]string, len(dst.entries)) + m := make(map[Digest]string, len(dst.entries)) l := length resetIdx := 0 for i := 0; i < len(dst.entries); i++ { @@ -224,9 +222,9 @@ func ShortCodeTable(dst *Set, length int) map[digest.Digest]string { } type digestEntry struct { - alg digest.Algorithm + alg Algorithm val string - digest digest.Digest + digest Digest } type digestEntries []*digestEntry diff --git a/vendor/github.com/docker/distribution/digest/verifiers.go b/vendor/github.com/docker/distribution/digest/verifiers.go new file mode 100644 index 00000000..9af3be13 --- /dev/null +++ b/vendor/github.com/docker/distribution/digest/verifiers.go @@ -0,0 +1,44 @@ +package digest + +import ( + "hash" + "io" +) + +// Verifier presents a general verification interface to be used with message +// digests and other byte stream verifications. Users instantiate a Verifier +// from one of the various methods, write the data under test to it then check +// the result with the Verified method. +type Verifier interface { + io.Writer + + // Verified will return true if the content written to Verifier matches + // the digest. + Verified() bool +} + +// NewDigestVerifier returns a verifier that compares the written bytes +// against a passed in digest. +func NewDigestVerifier(d Digest) (Verifier, error) { + if err := d.Validate(); err != nil { + return nil, err + } + + return hashVerifier{ + hash: d.Algorithm().Hash(), + digest: d, + }, nil +} + +type hashVerifier struct { + digest Digest + hash hash.Hash +} + +func (hv hashVerifier) Write(p []byte) (n int, err error) { + return hv.hash.Write(p) +} + +func (hv hashVerifier) Verified() bool { + return hv.digest == NewDigest(hv.digest.Algorithm(), hv.hash) +} diff --git a/vendor/github.com/docker/distribution/reference/reference.go b/vendor/github.com/docker/distribution/reference/reference.go new file mode 100644 index 00000000..02786628 --- /dev/null +++ b/vendor/github.com/docker/distribution/reference/reference.go @@ -0,0 +1,370 @@ +// Package reference provides a general type to represent any way of referencing images within the registry. +// Its main purpose is to abstract tags and digests (content-addressable hash). +// +// Grammar +// +// reference := name [ ":" tag ] [ "@" digest ] +// name := [hostname '/'] component ['/' component]* +// hostname := hostcomponent ['.' hostcomponent]* [':' port-number] +// hostcomponent := /([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])/ +// port-number := /[0-9]+/ +// component := alpha-numeric [separator alpha-numeric]* +// alpha-numeric := /[a-z0-9]+/ +// separator := /[_.]|__|[-]*/ +// +// tag := /[\w][\w.-]{0,127}/ +// +// digest := digest-algorithm ":" digest-hex +// digest-algorithm := digest-algorithm-component [ digest-algorithm-separator digest-algorithm-component ] +// digest-algorithm-separator := /[+.-_]/ +// digest-algorithm-component := /[A-Za-z][A-Za-z0-9]*/ +// digest-hex := /[0-9a-fA-F]{32,}/ ; At least 128 bit digest value +package reference + +import ( + "errors" + "fmt" + "path" + "strings" + + "github.com/docker/distribution/digest" +) + +const ( + // NameTotalLengthMax is the maximum total number of characters in a repository name. + NameTotalLengthMax = 255 +) + +var ( + // ErrReferenceInvalidFormat represents an error while trying to parse a string as a reference. + ErrReferenceInvalidFormat = errors.New("invalid reference format") + + // ErrTagInvalidFormat represents an error while trying to parse a string as a tag. + ErrTagInvalidFormat = errors.New("invalid tag format") + + // ErrDigestInvalidFormat represents an error while trying to parse a string as a tag. + ErrDigestInvalidFormat = errors.New("invalid digest format") + + // ErrNameContainsUppercase is returned for invalid repository names that contain uppercase characters. + ErrNameContainsUppercase = errors.New("repository name must be lowercase") + + // ErrNameEmpty is returned for empty, invalid repository names. + ErrNameEmpty = errors.New("repository name must have at least one component") + + // ErrNameTooLong is returned when a repository name is longer than NameTotalLengthMax. + ErrNameTooLong = fmt.Errorf("repository name must not be more than %v characters", NameTotalLengthMax) +) + +// Reference is an opaque object reference identifier that may include +// modifiers such as a hostname, name, tag, and digest. +type Reference interface { + // String returns the full reference + String() string +} + +// Field provides a wrapper type for resolving correct reference types when +// working with encoding. +type Field struct { + reference Reference +} + +// AsField wraps a reference in a Field for encoding. +func AsField(reference Reference) Field { + return Field{reference} +} + +// Reference unwraps the reference type from the field to +// return the Reference object. This object should be +// of the appropriate type to further check for different +// reference types. +func (f Field) Reference() Reference { + return f.reference +} + +// MarshalText serializes the field to byte text which +// is the string of the reference. +func (f Field) MarshalText() (p []byte, err error) { + return []byte(f.reference.String()), nil +} + +// UnmarshalText parses text bytes by invoking the +// reference parser to ensure the appropriately +// typed reference object is wrapped by field. +func (f *Field) UnmarshalText(p []byte) error { + r, err := Parse(string(p)) + if err != nil { + return err + } + + f.reference = r + return nil +} + +// Named is an object with a full name +type Named interface { + Reference + Name() string +} + +// Tagged is an object which has a tag +type Tagged interface { + Reference + Tag() string +} + +// NamedTagged is an object including a name and tag. +type NamedTagged interface { + Named + Tag() string +} + +// Digested is an object which has a digest +// in which it can be referenced by +type Digested interface { + Reference + Digest() digest.Digest +} + +// Canonical reference is an object with a fully unique +// name including a name with hostname and digest +type Canonical interface { + Named + Digest() digest.Digest +} + +// SplitHostname splits a named reference into a +// hostname and name string. If no valid hostname is +// found, the hostname is empty and the full value +// is returned as name +func SplitHostname(named Named) (string, string) { + name := named.Name() + match := anchoredNameRegexp.FindStringSubmatch(name) + if len(match) != 3 { + return "", name + } + return match[1], match[2] +} + +// Parse parses s and returns a syntactically valid Reference. +// If an error was encountered it is returned, along with a nil Reference. +// NOTE: Parse will not handle short digests. +func Parse(s string) (Reference, error) { + matches := ReferenceRegexp.FindStringSubmatch(s) + if matches == nil { + if s == "" { + return nil, ErrNameEmpty + } + if ReferenceRegexp.FindStringSubmatch(strings.ToLower(s)) != nil { + return nil, ErrNameContainsUppercase + } + return nil, ErrReferenceInvalidFormat + } + + if len(matches[1]) > NameTotalLengthMax { + return nil, ErrNameTooLong + } + + ref := reference{ + name: matches[1], + tag: matches[2], + } + if matches[3] != "" { + var err error + ref.digest, err = digest.ParseDigest(matches[3]) + if err != nil { + return nil, err + } + } + + r := getBestReferenceType(ref) + if r == nil { + return nil, ErrNameEmpty + } + + return r, nil +} + +// ParseNamed parses s and returns a syntactically valid reference implementing +// the Named interface. The reference must have a name, otherwise an error is +// returned. +// If an error was encountered it is returned, along with a nil Reference. +// NOTE: ParseNamed will not handle short digests. +func ParseNamed(s string) (Named, error) { + ref, err := Parse(s) + if err != nil { + return nil, err + } + named, isNamed := ref.(Named) + if !isNamed { + return nil, fmt.Errorf("reference %s has no name", ref.String()) + } + return named, nil +} + +// WithName returns a named object representing the given string. If the input +// is invalid ErrReferenceInvalidFormat will be returned. +func WithName(name string) (Named, error) { + if len(name) > NameTotalLengthMax { + return nil, ErrNameTooLong + } + if !anchoredNameRegexp.MatchString(name) { + return nil, ErrReferenceInvalidFormat + } + return repository(name), nil +} + +// WithTag combines the name from "name" and the tag from "tag" to form a +// reference incorporating both the name and the tag. +func WithTag(name Named, tag string) (NamedTagged, error) { + if !anchoredTagRegexp.MatchString(tag) { + return nil, ErrTagInvalidFormat + } + if canonical, ok := name.(Canonical); ok { + return reference{ + name: name.Name(), + tag: tag, + digest: canonical.Digest(), + }, nil + } + return taggedReference{ + name: name.Name(), + tag: tag, + }, nil +} + +// WithDigest combines the name from "name" and the digest from "digest" to form +// a reference incorporating both the name and the digest. +func WithDigest(name Named, digest digest.Digest) (Canonical, error) { + if !anchoredDigestRegexp.MatchString(digest.String()) { + return nil, ErrDigestInvalidFormat + } + if tagged, ok := name.(Tagged); ok { + return reference{ + name: name.Name(), + tag: tagged.Tag(), + digest: digest, + }, nil + } + return canonicalReference{ + name: name.Name(), + digest: digest, + }, nil +} + +// Match reports whether ref matches the specified pattern. +// See https://godoc.org/path#Match for supported patterns. +func Match(pattern string, ref Reference) (bool, error) { + matched, err := path.Match(pattern, ref.String()) + if namedRef, isNamed := ref.(Named); isNamed && !matched { + matched, _ = path.Match(pattern, namedRef.Name()) + } + return matched, err +} + +// TrimNamed removes any tag or digest from the named reference. +func TrimNamed(ref Named) Named { + return repository(ref.Name()) +} + +func getBestReferenceType(ref reference) Reference { + if ref.name == "" { + // Allow digest only references + if ref.digest != "" { + return digestReference(ref.digest) + } + return nil + } + if ref.tag == "" { + if ref.digest != "" { + return canonicalReference{ + name: ref.name, + digest: ref.digest, + } + } + return repository(ref.name) + } + if ref.digest == "" { + return taggedReference{ + name: ref.name, + tag: ref.tag, + } + } + + return ref +} + +type reference struct { + name string + tag string + digest digest.Digest +} + +func (r reference) String() string { + return r.name + ":" + r.tag + "@" + r.digest.String() +} + +func (r reference) Name() string { + return r.name +} + +func (r reference) Tag() string { + return r.tag +} + +func (r reference) Digest() digest.Digest { + return r.digest +} + +type repository string + +func (r repository) String() string { + return string(r) +} + +func (r repository) Name() string { + return string(r) +} + +type digestReference digest.Digest + +func (d digestReference) String() string { + return d.String() +} + +func (d digestReference) Digest() digest.Digest { + return digest.Digest(d) +} + +type taggedReference struct { + name string + tag string +} + +func (t taggedReference) String() string { + return t.name + ":" + t.tag +} + +func (t taggedReference) Name() string { + return t.name +} + +func (t taggedReference) Tag() string { + return t.tag +} + +type canonicalReference struct { + name string + digest digest.Digest +} + +func (c canonicalReference) String() string { + return c.name + "@" + c.digest.String() +} + +func (c canonicalReference) Name() string { + return c.name +} + +func (c canonicalReference) Digest() digest.Digest { + return c.digest +} diff --git a/vendor/github.com/docker/distribution/reference/regexp.go b/vendor/github.com/docker/distribution/reference/regexp.go new file mode 100644 index 00000000..9a7d366b --- /dev/null +++ b/vendor/github.com/docker/distribution/reference/regexp.go @@ -0,0 +1,124 @@ +package reference + +import "regexp" + +var ( + // alphaNumericRegexp defines the alpha numeric atom, typically a + // component of names. This only allows lower case characters and digits. + alphaNumericRegexp = match(`[a-z0-9]+`) + + // separatorRegexp defines the separators allowed to be embedded in name + // components. This allow one period, one or two underscore and multiple + // dashes. + separatorRegexp = match(`(?:[._]|__|[-]*)`) + + // nameComponentRegexp restricts registry path component names to start + // with at least one letter or number, with following parts able to be + // separated by one period, one or two underscore and multiple dashes. + nameComponentRegexp = expression( + alphaNumericRegexp, + optional(repeated(separatorRegexp, alphaNumericRegexp))) + + // hostnameComponentRegexp restricts the registry hostname component of a + // repository name to start with a component as defined by hostnameRegexp + // and followed by an optional port. + hostnameComponentRegexp = match(`(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])`) + + // hostnameRegexp defines the structure of potential hostname components + // that may be part of image names. This is purposely a subset of what is + // allowed by DNS to ensure backwards compatibility with Docker image + // names. + hostnameRegexp = expression( + hostnameComponentRegexp, + optional(repeated(literal(`.`), hostnameComponentRegexp)), + optional(literal(`:`), match(`[0-9]+`))) + + // TagRegexp matches valid tag names. From docker/docker:graph/tags.go. + TagRegexp = match(`[\w][\w.-]{0,127}`) + + // anchoredTagRegexp matches valid tag names, anchored at the start and + // end of the matched string. + anchoredTagRegexp = anchored(TagRegexp) + + // DigestRegexp matches valid digests. + DigestRegexp = match(`[A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]{32,}`) + + // anchoredDigestRegexp matches valid digests, anchored at the start and + // end of the matched string. + anchoredDigestRegexp = anchored(DigestRegexp) + + // NameRegexp is the format for the name component of references. The + // regexp has capturing groups for the hostname and name part omitting + // the separating forward slash from either. + NameRegexp = expression( + optional(hostnameRegexp, literal(`/`)), + nameComponentRegexp, + optional(repeated(literal(`/`), nameComponentRegexp))) + + // anchoredNameRegexp is used to parse a name value, capturing the + // hostname and trailing components. + anchoredNameRegexp = anchored( + optional(capture(hostnameRegexp), literal(`/`)), + capture(nameComponentRegexp, + optional(repeated(literal(`/`), nameComponentRegexp)))) + + // ReferenceRegexp is the full supported format of a reference. The regexp + // is anchored and has capturing groups for name, tag, and digest + // components. + ReferenceRegexp = anchored(capture(NameRegexp), + optional(literal(":"), capture(TagRegexp)), + optional(literal("@"), capture(DigestRegexp))) +) + +// match compiles the string to a regular expression. +var match = regexp.MustCompile + +// literal compiles s into a literal regular expression, escaping any regexp +// reserved characters. +func literal(s string) *regexp.Regexp { + re := match(regexp.QuoteMeta(s)) + + if _, complete := re.LiteralPrefix(); !complete { + panic("must be a literal") + } + + return re +} + +// expression defines a full expression, where each regular expression must +// follow the previous. +func expression(res ...*regexp.Regexp) *regexp.Regexp { + var s string + for _, re := range res { + s += re.String() + } + + return match(s) +} + +// optional wraps the expression in a non-capturing group and makes the +// production optional. +func optional(res ...*regexp.Regexp) *regexp.Regexp { + return match(group(expression(res...)).String() + `?`) +} + +// repeated wraps the regexp in a non-capturing group to get one or more +// matches. +func repeated(res ...*regexp.Regexp) *regexp.Regexp { + return match(group(expression(res...)).String() + `+`) +} + +// group wraps the regexp in a non-capturing group. +func group(res ...*regexp.Regexp) *regexp.Regexp { + return match(`(?:` + expression(res...).String() + `)`) +} + +// capture wraps the expression in a capturing group. +func capture(res ...*regexp.Regexp) *regexp.Regexp { + return match(`(` + expression(res...).String() + `)`) +} + +// anchored anchors the regular expression by adding start and end delimiters. +func anchored(res ...*regexp.Regexp) *regexp.Regexp { + return match(`^` + expression(res...).String() + `$`) +} diff --git a/vendor/github.com/docker/docker/AUTHORS b/vendor/github.com/docker/docker/AUTHORS new file mode 100644 index 00000000..246e2a33 --- /dev/null +++ b/vendor/github.com/docker/docker/AUTHORS @@ -0,0 +1,1652 @@ +# This file lists all individuals having contributed content to the repository. +# For how it is generated, see `hack/generate-authors.sh`. + +Aanand Prasad +Aaron Davidson +Aaron Feng +Aaron Huslage +Aaron Lehmann +Aaron Welch +Abel Muiño +Abhijeet Kasurde +Abhinav Ajgaonkar +Abhishek Chanda +Abin Shahab +Adam Avilla +Adam Kunk +Adam Miller +Adam Mills +Adam Singer +Adam Walz +Aditi Rajagopal +Aditya +Adolfo Ochagavía +Adria Casas +Adrian Moisey +Adrian Mouat +Adrian Oprea +Adrien Folie +Adrien Gallouët +Ahmed Kamal +Ahmet Alp Balkan +Aidan Feldman +Aidan Hobson Sayers +AJ Bowen +Ajey Charantimath +ajneu +Akihiro Suda +Al Tobey +alambike +Alan Scherger +Alan Thompson +Albert Callarisa +Albert Zhang +Aleksa Sarai +Aleksandrs Fadins +Alena Prokharchyk +Alessandro Boch +Alessio Biancalana +Alex Chan +Alex Coventry +Alex Crawford +Alex Ellis +Alex Gaynor +Alex Olshansky +Alex Samorukov +Alex Warhawk +Alexander Artemenko +Alexander Boyd +Alexander Larsson +Alexander Morozov +Alexander Shopov +Alexandre Beslic +Alexandre González +Alexandru Sfirlogea +Alexey Guskov +Alexey Kotlyarov +Alexey Shamrin +Alexis THOMAS +Ali Dehghani +Allen Madsen +Allen Sun +almoehi +Alvaro Saurin +Alvin Richards +amangoel +Amen Belayneh +Amit Bakshi +Amit Krishnan +Amit Shukla +Amy Lindburg +Anand Patil +AnandkumarPatel +Anatoly Borodin +Anchal Agrawal +Anders Janmyr +Andre Dublin <81dublin@gmail.com> +Andre Granovsky +Andrea Luzzardi +Andrea Turli +Andreas Köhler +Andreas Savvides +Andreas Tiefenthaler +Andrei Gherzan +Andrew C. Bodine +Andrew Clay Shafer +Andrew Duckworth +Andrew France +Andrew Gerrand +Andrew Guenther +Andrew Kuklewicz +Andrew Macgregor +Andrew Macpherson +Andrew Martin +Andrew Munsell +Andrew Po +Andrew Weiss +Andrew Williams +Andrews Medina +Andrey Petrov +Andrey Stolbovsky +André Martins +andy +Andy Chambers +andy diller +Andy Goldstein +Andy Kipp +Andy Rothfusz +Andy Smith +Andy Wilson +Anes Hasicic +Anil Belur +Anil Madhavapeddy +Ankush Agarwal +Anonmily +Anthon van der Neut +Anthony Baire +Anthony Bishopric +Anthony Dahanne +Anton Löfgren +Anton Nikitin +Anton Polonskiy +Anton Tiurin +Antonio Murdaca +Antonis Kalipetis +Antony Messerli +Anuj Bahuguna +Anusha Ragunathan +apocas +ArikaChen +Arnaud Lefebvre +Arnaud Porterie +Arthur Barr +Arthur Gautier +Artur Meyster +Arun Gupta +Asbjørn Enge +averagehuman +Avi Das +Avi Miller +Avi Vaid +ayoshitake +Azat Khuyiyakhmetov +Bardia Keyoumarsi +Barnaby Gray +Barry Allard +Bartłomiej Piotrowski +Bastiaan Bakker +bdevloed +Ben Firshman +Ben Golub +Ben Hall +Ben Sargent +Ben Severson +Ben Toews +Ben Wiklund +Benjamin Atkin +Benoit Chesneau +Bernerd Schaefer +Bert Goethals +Bharath Thiruveedula +Bhiraj Butala +Bilal Amarni +Bill W +bin liu +Blake Geno +Boaz Shuster +bobby abbott +boucher +Bouke Haarsma +Boyd Hemphill +boynux +Bradley Cicenas +Bradley Wright +Brandon Liu +Brandon Philips +Brandon Rhodes +Brendan Dixon +Brent Salisbury +Brett Higgins +Brett Kochendorfer +Brian (bex) Exelbierd +Brian Bland +Brian DeHamer +Brian Dorsey +Brian Flad +Brian Goff +Brian McCallister +Brian Olsen +Brian Shumate +Brian Torres-Gil +Brian Trump +Brice Jaglin +Briehan Lombaard +Bruno Bigras +Bruno Binet +Bruno Gazzera +Bruno Renié +Bryan Bess +Bryan Boreham +Bryan Matsuo +Bryan Murphy +buddhamagnet +Burke Libbey +Byung Kang +Caleb Spare +Calen Pennington +Cameron Boehmer +Cameron Spear +Campbell Allen +Candid Dauth +Cao Weiwei +Carl Henrik Lunde +Carl Loa Odin +Carl X. Su +Carlos Alexandro Becker +Carlos Sanchez +Carol Fager-Higgins +Cary +Casey Bisson +Cedric Davies +Cezar Sa Espinola +Chad Swenson +Chance Zibolski +Chander G +Charles Chan +Charles Hooper +Charles Law +Charles Lindsay +Charles Merriam +Charles Sarrazin +Charles Smith +Charlie Lewis +Chase Bolt +ChaYoung You +Chen Chao +Chen Hanxiao +cheney90 +Chewey +Chia-liang Kao +chli +Cholerae Hu +Chris Alfonso +Chris Armstrong +Chris Dituri +Chris Fordham +Chris Khoo +Chris McKinnel +Chris Seto +Chris Snow +Chris St. Pierre +Chris Stivers +Chris Swan +Chris Wahl +Chris Weyl +chrismckinnel +Christian Berendt +Christian Böhme +Christian Persson +Christian Rotzoll +Christian Simon +Christian Stefanescu +ChristoperBiscardi +Christophe Mehay +Christophe Troestler +Christopher Currie +Christopher Jones +Christopher Latham +Christopher Rigor +Christy Perez +Chun Chen +Ciro S. Costa +Clayton Coleman +Clinton Kitson +Coenraad Loubser +Colin Dunklau +Colin Rice +Colin Walters +Collin Guarino +Colm Hally +companycy +Cory Forsyth +cressie176 +CrimsonGlory +Cristian Staretu +cristiano balducci +Cruceru Calin-Cristian +Cyril F +Daan van Berkel +Daehyeok Mun +Dafydd Crosby +dalanlan +Damian Smyth +Damien Nadé +Damien Nozay +Damjan Georgievski +Dan Anolik +Dan Buch +Dan Cotora +Dan Feldman +Dan Griffin +Dan Hirsch +Dan Keder +Dan Levy +Dan McPherson +Dan Stine +Dan Walsh +Dan Williams +Daniel Antlinger +Daniel Exner +Daniel Farrell +Daniel Garcia +Daniel Gasienica +Daniel Hiltgen +Daniel Menet +Daniel Mizyrycki +Daniel Nephin +Daniel Norberg +Daniel Nordberg +Daniel Robinson +Daniel S +Daniel Von Fange +Daniel X Moore +Daniel YC Lin +Daniel Zhang +Daniel, Dao Quang Minh +Danny Berger +Danny Yates +Darren Coxall +Darren Shepherd +Darren Stahl +Davanum Srinivas +Dave Barboza +Dave Henderson +Dave MacDonald +Dave Tucker +David Anderson +David Calavera +David Corking +David Cramer +David Currie +David Davis +David Dooling +David Gageot +David Gebler +David Lawrence +David Lechner +David M. Karr +David Mackey +David Mat +David Mcanulty +David Pelaez +David R. Jenni +David Röthlisberger +David Sheets +David Sissitka +David Trott +David Xia +David Young +Davide Ceretti +Dawn Chen +dbdd +dcylabs +decadent +deed02392 +Deng Guangxing +Deni Bertovic +Denis Gladkikh +Denis Ollier +Dennis Docter +Derek +Derek +Derek Ch +Derek McGowan +Deric Crago +Deshi Xiao +devmeyster +Devvyn Murphy +Dharmit Shah +Dieter Reuter +Dillon Dixon +Dima Stopel +Dimitri John Ledkov +Dimitris Rozakis +Dimitry Andric +Dinesh Subhraveti +Diogo Monica +DiuDiugirl +Djibril Koné +dkumor +Dmitri Logvinenko +Dmitri Shuralyov +Dmitry Demeshchuk +Dmitry Gusev +Dmitry Smirnov +Dmitry V. Krivenok +Dmitry Vorobev +Dolph Mathews +Dominik Finkbeiner +Dominik Honnef +Don Kirkby +Don Kjer +Don Spaulding +Donald Huang +Dong Chen +Donovan Jones +Doron Podoleanu +Doug Davis +Doug MacEachern +Doug Tangren +Dr Nic Williams +dragon788 +Dražen Lučanin +Drew Erny +Dustin Sallings +Ed Costello +Edmund Wagner +Eiichi Tsukata +Eike Herzbach +Eivin Giske Skaaren +Eivind Uggedal +Elan Ruusamäe +Elias Probst +Elijah Zupancic +eluck +Elvir Kuric +Emil Hernvall +Emily Maier +Emily Rose +Emir Ozer +Enguerran +Eohyung Lee +Eric Barch +Eric Hanchrow +Eric Lee +Eric Myhre +Eric Paris +Eric Rafaloff +Eric Rosenberg +Eric Sage +Eric Windisch +Eric Yang +Eric-Olivier Lamey +Erik Bray +Erik Dubbelboer +Erik Hollensbe +Erik Inge Bolsø +Erik Kristensen +Erik Weathers +Erno Hopearuoho +Erwin van der Koogh +Euan +Eugene Yakubovich +eugenkrizo +evalle +Evan Allrich +Evan Carmi +Evan Hazlett +Evan Krall +Evan Phoenix +Evan Wies +Everett Toews +Evgeny Vereshchagin +Ewa Czechowska +Eystein Måløy Stenberg +ezbercih +Fabiano Rosas +Fabio Falci +Fabio Rapposelli +Fabio Rehm +Fabrizio Regini +Fabrizio Soppelsa +Faiz Khan +falmp +Fangyuan Gao <21551127@zju.edu.cn> +Fareed Dudhia +Fathi Boudra +Federico Gimenez +Felix Geisendörfer +Felix Hupfeld +Felix Rabe +Felix Ruess +Felix Schindler +Ferenc Szabo +Fernando +Fero Volar +Ferran Rodenas +Filipe Brandenburger +Filipe Oliveira +fl0yd +Flavio Castelli +FLGMwt +Florian +Florian Klein +Florian Maier +Florian Weingarten +Florin Asavoaie +fonglh +fortinux +Francesc Campoy +Francis Chuang +Francisco Carriedo +Francisco Souza +Frank Groeneveld +Frank Herrmann +Frank Macreery +Frank Rosquin +Fred Lifton +Frederick F. Kautz IV +Frederik Loeffert +Frederik Nordahl Jul Sabroe +Freek Kalter +frosforever +fy2462 +Félix Baylac-Jacqué +Félix Cantournet +Gabe Rosenhouse +Gabor Nagy +Gabriel Monroy +GabrielNicolasAvellaneda +Galen Sampson +Gareth Rushgrove +Garrett Barboza +Gaurav +gautam, prasanna +GennadySpb +Geoffrey Bachelet +George MacRorie +George Xie +Georgi Hristozov +Gereon Frey +German DZ +Gert van Valkenhoef +Gianluca Borello +Gildas Cuisinier +gissehel +Giuseppe Mazzotta +Gleb Fotengauer-Malinovskiy +Gleb M Borisov +Glyn Normington +GoBella +Goffert van Gool +Gosuke Miyashita +Gou Rao +Govinda Fichtner +Grant Reaber +Graydon Hoare +Greg Fausak +Greg Thornton +grossws +grunny +gs11 +Guilhem Lettron +Guilherme Salgado +Guillaume Dufour +Guillaume J. Charmes +guoxiuyan +Gurjeet Singh +Guruprasad +gwx296173 +Günter Zöchbauer +Hans Kristian Flaatten +Hans Rødtang +Hao Shu Wei +Hao Zhang <21521210@zju.edu.cn> +Harald Albers +Harley Laue +Harold Cooper +Harry Zhang +He Simei +heartlock <21521209@zju.edu.cn> +Hector Castro +Henning Sprang +Hobofan +Hollie Teal +Hong Xu +hsinko <21551195@zju.edu.cn> +Hu Keping +Hu Tao +Huanzhong Zhang +Huayi Zhang +Hugo Duncan +Hugo Marisco <0x6875676f@gmail.com> +Hunter Blanks +huqun +Huu Nguyen +hyeongkyu.lee +hyp3rdino +Hyzhou <1187766782@qq.com> +Ian Babrou +Ian Bishop +Ian Bull +Ian Calvert +Ian Lee +Ian Main +Ian Truslove +Iavael +Icaro Seara +Igor Dolzhikov +Ilkka Laukkanen +Ilya Dmitrichenko +Ilya Gusev +ILYA Khlopotov +imre Fitos +inglesp +Ingo Gottwald +Isaac Dupree +Isabel Jimenez +Isao Jonas +Ivan Babrou +Ivan Fraixedes +Ivan Grcic +J Bruni +J. Nunn +Jack Danger Canty +Jacob Atzen +Jacob Edelman +Jake Champlin +Jake Moshenko +jakedt +James Allen +James Carey +James Carr +James DeFelice +James Harrison Fisher +James Kyburz +James Kyle +James Lal +James Mills +James Nugent +James Turnbull +Jamie Hannaford +Jamshid Afshar +Jan Keromnes +Jan Koprowski +Jan Pazdziora +Jan Toebes +Jan-Gerd Tenberge +Jan-Jaap Driessen +Jana Radhakrishnan +Jannick Fahlbusch +Januar Wayong +Jared Biel +Jared Hocutt +Jaroslaw Zabiello +jaseg +Jasmine Hegman +Jason Divock +Jason Giedymin +Jason Green +Jason Hall +Jason Heiss +Jason Livesay +Jason McVetta +Jason Plum +Jason Shepherd +Jason Smith +Jason Sommer +Jason Stangroome +jaxgeller +Jay +Jay +Jay Kamat +Jean-Baptiste Barth +Jean-Baptiste Dalido +Jean-Paul Calderone +Jean-Tiare Le Bigot +Jeff Anderson +Jeff Johnston +Jeff Lindsay +Jeff Mickey +Jeff Minard +Jeff Nickoloff +Jeff Silberman +Jeff Welch +Jeffrey Bolle +Jeffrey Morgan +Jeffrey van Gogh +Jenny Gebske +Jeremy Grosser +Jeremy Price +Jeremy Qian +Jeremy Unruh +Jeroen Jacobs +Jesse Dearing +Jesse Dubay +Jessica Frazelle +Jezeniel Zapanta +jgeiger +Jhon Honce +Ji.Zhilong +Jian Zhang +jianbosun +Jilles Oldenbeuving +Jim Alateras +Jim Perrin +Jimmy Cuadra +Jimmy Puckett +jimmyxian +Jinsoo Park +Jiri Popelka +Jiří Župka +jjy +jmzwcn +Joao Fernandes +Joe Beda +Joe Doliner +Joe Ferguson +Joe Gordon +Joe Shaw +Joe Van Dyk +Joel Friedly +Joel Handwell +Joel Hansson +Joel Wurtz +Joey Geiger +Joey Gibson +Joffrey F +Johan Euphrosine +Johan Rydberg +Johanan Lieberman +Johannes 'fish' Ziemke +John Costa +John Feminella +John Gardiner Myers +John Gossman +John Howard (VM) +John OBrien III +John Starks +John Tims +John Warwick +John Willis +johnharris85 +Jon Wedaman +Jonas Pfenniger +Jonathan A. Sternberg +Jonathan Boulle +Jonathan Camp +Jonathan Dowland +Jonathan Lebon +Jonathan Lomas +Jonathan McCrohan +Jonathan Mueller +Jonathan Pares +Jonathan Rudenberg +Jonathan Stoppani +Joost Cassee +Jordan +Jordan Arentsen +Jordan Sissel +Jose Diaz-Gonzalez +Joseph Anthony Pasquale Holsten +Joseph Hager +Joseph Kern +Josh +Josh Bodah +Josh Chorlton +Josh Hawn +Josh Horwitz +Josh Poimboeuf +Josiah Kiehl +José Tomás Albornoz +JP +jrabbit +Julian Taylor +Julien Barbier +Julien Bisconti +Julien Bordellier +Julien Dubois +Julien Pervillé +Julio Montes +Jun-Ru Chang +Jussi Nummelin +Justas Brazauskas +Justin Cormack +Justin Force +Justin Plock +Justin Simonelis +Justin Terry +Justyn Temme +Jyrki Puttonen +Jérôme Petazzoni +Jörg Thalheim +Kai Blin +Kai Qiang Wu(Kennan) +Kamil Domański +kamjar gerami +Kanstantsin Shautsou +Kara Alexandra +Karan Lyons +Kareem Khazem +kargakis +Karl Grzeszczak +Karol Duleba +Katie McLaughlin +Kato Kazuyoshi +Katrina Owen +Kawsar Saiyeed +kayrus +Ke Xu +Keith Hudgins +Keli Hu +Ken Cochrane +Ken Herner +Ken ICHIKAWA +Kenfe-Mickaël Laventure +Kenjiro Nakayama +Kent Johnson +Kevin "qwazerty" Houdebert +Kevin Burke +Kevin Clark +Kevin J. Lynagh +Kevin Jing Qiu +Kevin Menard +Kevin P. Kucharczyk +Kevin Richardson +Kevin Shi +Kevin Wallace +Kevin Yap +kevinmeredith +Keyvan Fatehi +kies +Kim BKC Carlbacker +Kim Eik +Kimbro Staken +Kir Kolyshkin +Kiran Gangadharan +Kirill Kolyshkin +Kirill SIbirev +knappe +Kohei Tsuruta +Koichi Shiraishi +Konrad Kleine +Konstantin L +Konstantin Pelykh +Krasimir Georgiev +Kris-Mikael Krister +Kristian Haugene +Kristina Zabunova +krrg +Kun Zhang +Kunal Kushwaha +Kyle Conroy +Kyle Linden +kyu +Lachlan Coote +Lai Jiangshan +Lajos Papp +Lakshan Perera +Lalatendu Mohanty +lalyos +Lance Chen +Lance Kinley +Lars Butler +Lars Kellogg-Stedman +Lars R. Damerow +Laszlo Meszaros +Laurent Erignoux +Laurie Voss +Leandro Siqueira +Lee Chao <932819864@qq.com> +Lee, Meng-Han +leeplay +Lei Jitang +Len Weincier +Lennie +Leszek Kowalski +Levi Blackstone +Levi Gross +Lewis Marshall +Lewis Peckover +Liam Macgillavry +Liana Lo +Liang Mingqiang +Liang-Chi Hsieh +liaoqingwei +limsy +Lin Lu +LingFaKe +Linus Heckemann +Liran Tal +Liron Levin +Liu Bo +Liu Hua +lixiaobing10051267 +LIZAO LI +Lloyd Dewolf +Lokesh Mandvekar +longliqiang88 <394564827@qq.com> +Lorenz Leutgeb +Lorenzo Fontana +Louis Opter +Luca Marturana +Luca Orlandi +Luca-Bogdan Grigorescu +Lucas Chan +Lucas Chi +Luciano Mores +Luis Martínez de Bartolomé Izquierdo +Lukas Waslowski +lukaspustina +Lukasz Zajaczkowski +lukemarsden +Lynda O'Leary +Lénaïc Huard +Ma Shimiao +Mabin +Madhav Puri +Madhu Venugopal +Mageee <21521230.zju.edu.cn> +Mahesh Tiyyagura +malnick +Malte Janduda +manchoz +Manfred Touron +Manfred Zabarauskas +Mansi Nahar +mansinahar +Manuel Meurer +Manuel Woelker +mapk0y +Marc Abramowitz +Marc Kuo +Marc Tamsky +Marcelo Salazar +Marco Hennings +Marcus Farkas +Marcus Linke +Marcus Ramberg +Marek Goldmann +Marian Marinov +Marianna Tessel +Mario Loriedo +Marius Gundersen +Marius Sturm +Marius Voila +Mark Allen +Mark McGranaghan +Mark McKinstry +Mark West +Marko Mikulicic +Marko Tibold +Markus Fix +Martijn Dwars +Martijn van Oosterhout +Martin Honermeyer +Martin Kelly +Martin Mosegaard Amdisen +Martin Redmond +Mary Anthony +Masahito Zembutsu +Mason Malone +Mateusz Sulima +Mathias Monnerville +Mathieu Le Marec - Pasquet +Matt Apperson +Matt Bachmann +Matt Bentley +Matt Haggard +Matt Hoyle +Matt McCormick +Matt Moore +Matt Richardson +Matt Robenolt +Matthew Heon +Matthew Mayer +Matthew Mueller +Matthew Riley +Matthias Klumpp +Matthias Kühnle +Matthias Rampke +Matthieu Hauglustaine +mattymo +mattyw +Mauricio Garavaglia +mauriyouth +Max Shytikov +Maxim Fedchyshyn +Maxim Ivanov +Maxim Kulkin +Maxim Treskin +Maxime Petazzoni +Meaglith Ma +meejah +Megan Kostick +Mehul Kar +Mei ChunTao +Mengdi Gao +Mert Yazıcıoğlu +mgniu +Micah Zoltu +Michael A. Smith +Michael Bridgen +Michael Brown +Michael Chiang +Michael Crosby +Michael Currie +Michael Friis +Michael Gorsuch +Michael Grauer +Michael Holzheu +Michael Hudson-Doyle +Michael Huettermann +Michael Käufl +Michael Neale +Michael Prokop +Michael Scharf +Michael Stapelberg +Michael Steinert +Michael Thies +Michael West +Michal Fojtik +Michal Gebauer +Michal Jemala +Michal Minar +Michal Wieczorek +Michaël Pailloncy +Michał Czeraszkiewicz +Michiel@unhosted +Mickaël FORTUNATO +Miguel Angel Fernández +Miguel Morales +Mihai Borobocea +Mihuleacc Sergiu +Mike Brown +Mike Chelen +Mike Danese +Mike Dillon +Mike Dougherty +Mike Gaffney +Mike Goelzer +Mike Leone +Mike MacCana +Mike Naberezny +Mike Snitzer +mikelinjie <294893458@qq.com> +Mikhail Sobolev +Miloslav Trmač +mingqing +Mingzhen Feng +Misty Stanley-Jones +Mitch Capper +mlarcher +Mohammad Banikazemi +Mohammed Aaqib Ansari +Mohit Soni +Morgan Bauer +Morgante Pell +Morgy93 +Morten Siebuhr +Morton Fox +Moysés Borges +mqliang +Mrunal Patel +msabansal +mschurenko +muge +Mustafa Akın +Muthukumar R +Máximo Cuadros +Médi-Rémi Hashim +Nahum Shalman +Nakul Pathak +Nalin Dahyabhai +Nan Monnand Deng +Naoki Orii +Natalie Parker +Natanael Copa +Nate Brennand +Nate Eagleson +Nate Jones +Nathan Hsieh +Nathan Kleyn +Nathan LeClaire +Nathan McCauley +Nathan Williams +Neal McBurnett +Neil Peterson +Nelson Chen +Neyazul Haque +Nghia Tran +Niall O'Higgins +Nicholas E. Rabenau +nick +Nick DeCoursin +Nick Irvine +Nick Parker +Nick Payne +Nick Stenning +Nick Stinemates +Nicola Kabar +Nicolas Borboën +Nicolas De loof +Nicolas Dudebout +Nicolas Goy +Nicolas Kaiser +Nicolás Hock Isaza +Nigel Poulton +NikolaMandic +nikolas +Nirmal Mehta +Nishant Totla +NIWA Hideyuki +noducks +Nolan Darilek +nponeccop +Nuutti Kotivuori +nzwsch +O.S. Tezer +objectified +OddBloke +odk- +Oguz Bilgic +Oh Jinkyun +Ohad Schneider +ohmystack +Ole Reifschneider +Oliver Neal +Olivier Gambier +Olle Jonsson +Oriol Francès +orkaa +Oskar Niburski +Otto Kekäläinen +oyld +ozlerhakan +paetling +pandrew +panticz +Paolo G. Giarrusso +Pascal Borreli +Pascal Hartig +Patrick Böänziger +Patrick Devine +Patrick Hemmer +Patrick Stapleton +pattichen +Paul +paul +Paul Annesley +Paul Bellamy +Paul Bowsher +Paul Furtado +Paul Hammond +Paul Jimenez +Paul Lietar +Paul Liljenberg +Paul Morie +Paul Nasrat +Paul Weaver +Paulo Ribeiro +Pavel Lobashov +Pavel Pospisil +Pavel Sutyrin +Pavel Tikhomirov +Pavlos Ratis +Pavol Vargovcik +Peeyush Gupta +Peggy Li +Pei Su +Penghan Wang +perhapszzy@sina.com +pestophagous +Peter Bourgon +Peter Braden +Peter Choi +Peter Dave Hello +Peter Edge +Peter Ericson +Peter Esbensen +Peter Malmgren +Peter Salvatore +Peter Volpe +Peter Waller +Petr Švihlík +Phil +Phil Estes +Phil Spitler +Philip Monroe +Philipp Wahala +Philipp Weissensteiner +Phillip Alexander +pidster +Piergiuliano Bossi +Pierre +Pierre Carrier +Pierre Dal-Pra +Pierre Wacrenier +Pierre-Alain RIVIERE +Piotr Bogdan +pixelistik +Porjo +Poul Kjeldager Sørensen +Pradeep Chhetri +Prasanna Gautam +Prayag Verma +Przemek Hejman +pysqz +qg <1373319223@qq.com> +qhuang +Qiang Huang +qq690388648 <690388648@qq.com> +Quentin Brossard +Quentin Perez +Quentin Tayssier +r0n22 +Rafal Jeczalik +Rafe Colton +Raghavendra K T +Raghuram Devarakonda +Rajat Pandit +Rajdeep Dua +Ralf Sippl +Ralle +Ralph Bean +Ramkumar Ramachandra +Ramon Brooker +Ramon van Alteren +Ray Tsang +ReadmeCritic +Recursive Madman +Regan McCooey +Remi Rampin +Renato Riccieri Santos Zannon +resouer +rgstephens +Rhys Hiltner +Rich Moyse +Rich Seymour +Richard +Richard Burnison +Richard Harvey +Richard Mathie +Richard Metzler +Richard Scothern +Richo Healey +Rick Bradley +Rick van de Loo +Rick Wieman +Rik Nijessen +Riku Voipio +Riley Guerin +Ritesh H Shukla +Riyaz Faizullabhoy +Rob Vesse +Robert Bachmann +Robert Bittle +Robert Obryk +Robert Stern +Robert Terhaar +Robert Wallis +Roberto G. Hashioka +Robin Naundorf +Robin Schneider +Robin Speekenbrink +robpc +Rodolfo Carvalho +Rodrigo Vaz +Roel Van Nyen +Roger Peppe +Rohit Jnagal +Rohit Kadam +Roland Huß +Roland Kammerer +Roland Moriz +Roma Sokolov +Roman Strashkin +Ron Smits +Ron Williams +root +root +root +root +root +Rory Hunter +Rory McCune +Ross Boucher +Rovanion Luckey +Rozhnov Alexandr +rsmoorthy +Rudolph Gottesheim +Rui Lopes +Runshen Zhu +Ryan Anderson +Ryan Aslett +Ryan Belgrave +Ryan Detzel +Ryan Fowler +Ryan McLaughlin +Ryan O'Donnell +Ryan Seto +Ryan Thomas +Ryan Trauntvein +Ryan Wallner +RyanDeng +Rémy Greinhofer +s. rannou +s00318865 +Sabin Basyal +Sachin Joshi +Sagar Hani +Sainath Grandhi +sakeven +Sally O'Malley +Sam Abed +Sam Alba +Sam Bailey +Sam J Sharpe +Sam Neirinck +Sam Reis +Sam Rijs +Sambuddha Basu +Sami Wagiaalla +Samuel Andaya +Samuel Dion-Girardeau +Samuel Karp +Samuel PHAN +Sankar சங்கர் +Sanket Saurav +Santhosh Manohar +sapphiredev +Satnam Singh +satoru +Satoshi Amemiya +Satoshi Tagomori +scaleoutsean +Scott Bessler +Scott Collier +Scott Johnston +Scott Stamp +Scott Walls +sdreyesg +Sean Christopherson +Sean Cronin +Sean OMeara +Sean P. Kane +Sebastiaan van Steenis +Sebastiaan van Stijn +Senthil Kumar Selvaraj +Senthil Kumaran +SeongJae Park +Seongyeol Lim +Serge Hallyn +Sergey Alekseev +Sergey Evstifeev +Serhat Gülçiçek +Sevki Hasirci +Shane Canon +Shane da Silva +shaunol +Shawn Landden +Shawn Siefkas +shawnhe +Shekhar Gulati +Sheng Yang +Shengbo Song +Shev Yan +Shih-Yuan Lee +Shijiang Wei +Shishir Mahajan +Shoubhik Bose +Shourya Sarcar +shuai-z +Shukui Yang +Shuwei Hao +Sian Lerk Lau +sidharthamani +Silas Sewell +Simei He +Simon Eskildsen +Simon Leinen +Simon Taranto +Sindhu S +Sjoerd Langkemper +skaasten +Solganik Alexander +Solomon Hykes +Song Gao +Soshi Katsuta +Soulou +Spencer Brown +Spencer Smith +Sridatta Thatipamala +Sridhar Ratnakumar +Srini Brahmaroutu +srinsriv +Steeve Morin +Stefan Berger +Stefan J. Wernli +Stefan Praszalowicz +Stefan Scherer +Stefan Staudenmeyer +Stefan Weil +Stephen Crosby +Stephen Day +Stephen Drake +Stephen Rust +Steve Durrheimer +Steve Francia +Steve Koch +Steven Burgess +Steven Erenst +Steven Iveson +Steven Merrill +Steven Richards +Steven Taylor +Subhajit Ghosh +Sujith Haridasan +Suryakumar Sudar +Sven Dowideit +Swapnil Daingade +Sylvain Baubeau +Sylvain Bellemare +Sébastien +Sébastien Luttringer +Sébastien Stormacq +Tadej Janež +TAGOMORI Satoshi +tang0th +Tangi COLIN +Tatsuki Sugiura +Tatsushi Inagaki +Taylor Jones +tbonza +Ted M. Young +Tehmasp Chaudhri +Tejesh Mehta +terryding77 <550147740@qq.com> +tgic +Thatcher Peskens +theadactyl +Thell 'Bo' Fowler +Thermionix +Thijs Terlouw +Thomas Bikeev +Thomas Frössman +Thomas Gazagnaire +Thomas Grainger +Thomas Hansen +Thomas Leonard +Thomas LEVEIL +Thomas Orozco +Thomas Riccardi +Thomas Schroeter +Thomas Sjögren +Thomas Swift +Thomas Tanaka +Thomas Texier +Tianon Gravi +Tianyi Wang +Tibor Vass +Tiffany Jernigan +Tiffany Low +Tim Bosse +Tim Dettrick +Tim Düsterhus +Tim Hockin +Tim Ruffles +Tim Smith +Tim Terhorst +Tim Wang +Tim Waugh +Tim Wraight +timfeirg +Timothy Hobbs +tjwebb123 +tobe +Tobias Bieniek +Tobias Bradtke +Tobias Gesellchen +Tobias Klauser +Tobias Munk +Tobias Schmidt +Tobias Schwab +Todd Crane +Todd Lunter +Todd Whiteman +Toli Kuznets +Tom Barlow +Tom Denham +Tom Fotherby +Tom Howe +Tom Hulihan +Tom Maaswinkel +Tom X. Tobin +Tomas Tomecek +Tomasz Kopczynski +Tomasz Lipinski +Tomasz Nurkiewicz +Tommaso Visconti +Tomáš Hrčka +Tonis Tiigi +Tonny Xu +Tony Daws +Tony Miller +toogley +Torstein Husebø +tpng +tracylihui <793912329@qq.com> +Travis Cline +Travis Thieman +Trent Ogren +Trevor +Trevor Pounds +trishnaguha +Tristan Carel +Troy Denton +Tyler Brock +Tzu-Jung Lee +Tõnis Tiigi +Ulysse Carion +unknown +vagrant +Vaidas Jablonskis +Veres Lajos +vgeta +Victor Algaze +Victor Coisne +Victor Costan +Victor I. Wood +Victor Lyuboslavsky +Victor Marmol +Victor Palma +Victor Vieux +Victoria Bialas +Vijaya Kumar K +Viktor Stanchev +Viktor Vojnovski +VinayRaghavanKS +Vincent Batts +Vincent Bernat +Vincent Bernat +Vincent Demeester +Vincent Giersch +Vincent Mayers +Vincent Woo +Vinod Kulkarni +Vishal Doshi +Vishnu Kannan +Vitor Monteiro +Vivek Agarwal +Vivek Dasgupta +Vivek Goyal +Vladimir Bulyga +Vladimir Kirillov +Vladimir Pouzanov +Vladimir Rutsky +Vladimir Varankin +VladimirAus +Vojtech Vitek (V-Teq) +waitingkuo +Walter Leibbrandt +Walter Stanish +WANG Chao +Wang Xing +Ward Vandewege +WarheadsSE +Wayne Chang +Wei-Ting Kuo +weiyan +Weiyang Zhu +Wen Cheng Ma +Wendel Fleming +Wenkai Yin +Wenxuan Zhao +Wenyu You <21551128@zju.edu.cn> +Wes Morgan +Will Dietz +Will Rouesnel +Will Weaver +willhf +William Delanoue +William Henry +William Hubbs +William Riancho +William Thurston +WiseTrem +wlan0 +Wolfgang Powisch +wonderflow +Wonjun Kim +xamyzhao +Xianlu Bird +XiaoBing Jiang +Xiaoxu Chen +xiekeyang +Xinzi Zhou +Xiuming Chen +xlgao-zju +xuzhaokui +Yahya +YAMADA Tsuyoshi +Yan Feng +Yang Bai +yangshukui +Yanqiang Miao +Yasunori Mahata +Yestin Sun +Yi EungJun +Yibai Zhang +Yihang Ho +Ying Li +Yohei Ueda +Yong Tang +Yongzhi Pan +yorkie +Youcef YEKHLEF +Yuan Sun +yuchangchun +yuchengxia +yuexiao-wang +YuPengZTE +Yurii Rashkovskii +yuzou +Zac Dover +Zach Borboa +Zachary Jaffee +Zain Memon +Zaiste! +Zane DeGraffenried +Zefan Li +Zen Lin(Zhinan Lin) +Zhang Kun +Zhang Wei +Zhang Wentao +Zhenan Ye <21551168@zju.edu.cn> +zhouhao +Zhu Guihua +Zhuoyun Wei +Zilin Du +zimbatm +Ziming Dong +ZJUshuaizhou <21551191@zju.edu.cn> +zmarouf +Zoltan Tombol +zqh +Zuhayr Elahi +Zunayed Ali +Álex González +Álvaro Lázaro +Átila Camurça Alves +尹吉峰 +搏通 diff --git a/vendor/github.com/docker/docker/LICENSE b/vendor/github.com/docker/docker/LICENSE new file mode 100644 index 00000000..8f3fee62 --- /dev/null +++ b/vendor/github.com/docker/docker/LICENSE @@ -0,0 +1,191 @@ + + Apache License + Version 2.0, January 2004 + https://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 + + Copyright 2013-2016 Docker, Inc. + + 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 + + https://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/vendor/github.com/docker/docker/NOTICE b/vendor/github.com/docker/docker/NOTICE new file mode 100644 index 00000000..8a37c1c7 --- /dev/null +++ b/vendor/github.com/docker/docker/NOTICE @@ -0,0 +1,19 @@ +Docker +Copyright 2012-2016 Docker, Inc. + +This product includes software developed at Docker, Inc. (https://www.docker.com). + +This product contains software (https://github.com/kr/pty) developed +by Keith Rarick, licensed under the MIT License. + +The following is courtesy of our legal counsel: + + +Use and transfer of Docker may be subject to certain restrictions by the +United States and other governments. +It is your responsibility to ensure that your use and/or transfer does not +violate applicable laws. + +For more information, please see https://www.bis.doc.gov + +See also https://www.apache.org/dev/crypto.html and/or seek legal counsel. diff --git a/vendor/github.com/docker/docker/api/README.md b/vendor/github.com/docker/docker/api/README.md new file mode 100644 index 00000000..464e0569 --- /dev/null +++ b/vendor/github.com/docker/docker/api/README.md @@ -0,0 +1,42 @@ +# Working on the Engine API + +The Engine API is an HTTP API used by the command-line client to communicate with the daemon. It can also be used by third-party software to control the daemon. + +It consists of various components in this repository: + +- `api/swagger.yaml` A Swagger definition of the API. +- `api/types/` Types shared by both the client and server, representing various objects, options, responses, etc. Most are written manually, but some are automatically generated from the Swagger definition. See [#27919](https://github.com/docker/docker/issues/27919) for progress on this. +- `cli/` The command-line client. +- `client/` The Go client used by the command-line client. It can also be used by third-party Go programs. +- `daemon/` The daemon, which serves the API. + +## Swagger definition + +The API is defined by the [Swagger](http://swagger.io/specification/) definition in `api/swagger.yaml`. This definition can be used to: + +1. To automatically generate documentation. +2. To automatically generate the Go server and client. (A work-in-progress.) +3. Provide a machine readable version of the API for introspecting what it can do, automatically generating clients for other languages, etc. + +## Updating the API documentation + +The API documentation is generated entirely from `api/swagger.yaml`. If you make updates to the API, you'll need to edit this file to represent the change in the documentation. + +The file is split into two main sections: + +- `definitions`, which defines re-usable objects used in requests and responses +- `paths`, which defines the API endpoints (and some inline objects which don't need to be reusable) + +To make an edit, first look for the endpoint you want to edit under `paths`, then make the required edits. Endpoints may reference reusable objects with `$ref`, which can be found in the `definitions` section. + +There is hopefully enough example material in the file for you to copy a similar pattern from elsewhere in the file (e.g. adding new fields or endpoints), but for the full reference, see the [Swagger specification](https://github.com/docker/docker/issues/27919) + +`swagger.yaml` is validated by `hack/validate/swagger` to ensure it is a valid Swagger definition. This is useful for when you are making edits to ensure you are doing the right thing. + +## Viewing the API documentation + +When you make edits to `swagger.yaml`, you may want to check the generated API documentation to ensure it renders correctly. + +All the documentation generation is done in the documentation repository, [docker/docker.github.io](https://github.com/docker/docker.github.io). The Swagger definition is vendored periodically into this repository, but you can manually copy over the Swagger definition to test changes. + +Copy `api/swagger.yaml` in this repository to `engine/api/[VERSION_NUMBER]/swagger.yaml` in the documentation repository, overwriting what is already there. Then, run `docker-compose up` in the documentation repository and browse to [http://localhost:4000/engine/api/](http://localhost:4000/engine/api/) when it finishes rendering. diff --git a/vendor/github.com/docker/docker/api/common.go b/vendor/github.com/docker/docker/api/common.go new file mode 100644 index 00000000..fd065d5a --- /dev/null +++ b/vendor/github.com/docker/docker/api/common.go @@ -0,0 +1,166 @@ +package api + +import ( + "encoding/json" + "encoding/pem" + "fmt" + "mime" + "os" + "path/filepath" + "sort" + "strconv" + "strings" + + "github.com/Sirupsen/logrus" + "github.com/docker/docker/api/types" + "github.com/docker/docker/pkg/ioutils" + "github.com/docker/docker/pkg/system" + "github.com/docker/libtrust" +) + +// Common constants for daemon and client. +const ( + // DefaultVersion of Current REST API + DefaultVersion string = "1.26" + + // NoBaseImageSpecifier is the symbol used by the FROM + // command to specify that no base image is to be used. + NoBaseImageSpecifier string = "scratch" +) + +// byPortInfo is a temporary type used to sort types.Port by its fields +type byPortInfo []types.Port + +func (r byPortInfo) Len() int { return len(r) } +func (r byPortInfo) Swap(i, j int) { r[i], r[j] = r[j], r[i] } +func (r byPortInfo) Less(i, j int) bool { + if r[i].PrivatePort != r[j].PrivatePort { + return r[i].PrivatePort < r[j].PrivatePort + } + + if r[i].IP != r[j].IP { + return r[i].IP < r[j].IP + } + + if r[i].PublicPort != r[j].PublicPort { + return r[i].PublicPort < r[j].PublicPort + } + + return r[i].Type < r[j].Type +} + +// DisplayablePorts returns formatted string representing open ports of container +// e.g. "0.0.0.0:80->9090/tcp, 9988/tcp" +// it's used by command 'docker ps' +func DisplayablePorts(ports []types.Port) string { + type portGroup struct { + first uint16 + last uint16 + } + groupMap := make(map[string]*portGroup) + var result []string + var hostMappings []string + var groupMapKeys []string + sort.Sort(byPortInfo(ports)) + for _, port := range ports { + current := port.PrivatePort + portKey := port.Type + if port.IP != "" { + if port.PublicPort != current { + hostMappings = append(hostMappings, fmt.Sprintf("%s:%d->%d/%s", port.IP, port.PublicPort, port.PrivatePort, port.Type)) + continue + } + portKey = fmt.Sprintf("%s/%s", port.IP, port.Type) + } + group := groupMap[portKey] + + if group == nil { + groupMap[portKey] = &portGroup{first: current, last: current} + // record order that groupMap keys are created + groupMapKeys = append(groupMapKeys, portKey) + continue + } + if current == (group.last + 1) { + group.last = current + continue + } + + result = append(result, formGroup(portKey, group.first, group.last)) + groupMap[portKey] = &portGroup{first: current, last: current} + } + for _, portKey := range groupMapKeys { + g := groupMap[portKey] + result = append(result, formGroup(portKey, g.first, g.last)) + } + result = append(result, hostMappings...) + return strings.Join(result, ", ") +} + +func formGroup(key string, start, last uint16) string { + parts := strings.Split(key, "/") + groupType := parts[0] + var ip string + if len(parts) > 1 { + ip = parts[0] + groupType = parts[1] + } + group := strconv.Itoa(int(start)) + if start != last { + group = fmt.Sprintf("%s-%d", group, last) + } + if ip != "" { + group = fmt.Sprintf("%s:%s->%s", ip, group, group) + } + return fmt.Sprintf("%s/%s", group, groupType) +} + +// MatchesContentType validates the content type against the expected one +func MatchesContentType(contentType, expectedType string) bool { + mimetype, _, err := mime.ParseMediaType(contentType) + if err != nil { + logrus.Errorf("Error parsing media type: %s error: %v", contentType, err) + } + return err == nil && mimetype == expectedType +} + +// LoadOrCreateTrustKey attempts to load the libtrust key at the given path, +// otherwise generates a new one +func LoadOrCreateTrustKey(trustKeyPath string) (libtrust.PrivateKey, error) { + err := system.MkdirAll(filepath.Dir(trustKeyPath), 0700) + if err != nil { + return nil, err + } + trustKey, err := libtrust.LoadKeyFile(trustKeyPath) + if err == libtrust.ErrKeyFileDoesNotExist { + trustKey, err = libtrust.GenerateECP256PrivateKey() + if err != nil { + return nil, fmt.Errorf("Error generating key: %s", err) + } + encodedKey, err := serializePrivateKey(trustKey, filepath.Ext(trustKeyPath)) + if err != nil { + return nil, fmt.Errorf("Error serializing key: %s", err) + } + if err := ioutils.AtomicWriteFile(trustKeyPath, encodedKey, os.FileMode(0600)); err != nil { + return nil, fmt.Errorf("Error saving key file: %s", err) + } + } else if err != nil { + return nil, fmt.Errorf("Error loading key file %s: %s", trustKeyPath, err) + } + return trustKey, nil +} + +func serializePrivateKey(key libtrust.PrivateKey, ext string) (encoded []byte, err error) { + if ext == ".json" || ext == ".jwk" { + encoded, err = json.Marshal(key) + if err != nil { + return nil, fmt.Errorf("unable to encode private key JWK: %s", err) + } + } else { + pemBlock, err := key.PEMBlock() + if err != nil { + return nil, fmt.Errorf("unable to encode private key PEM: %s", err) + } + encoded = pem.EncodeToMemory(pemBlock) + } + return +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/common_unix.go b/vendor/github.com/docker/docker/api/common_unix.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/common_unix.go rename to vendor/github.com/docker/docker/api/common_unix.go diff --git a/vendor/github.com/docker/docker/api/common_windows.go b/vendor/github.com/docker/docker/api/common_windows.go new file mode 100644 index 00000000..d930fa07 --- /dev/null +++ b/vendor/github.com/docker/docker/api/common_windows.go @@ -0,0 +1,8 @@ +package api + +// MinVersion represents Minimum REST API version supported +// Technically the first daemon API version released on Windows is v1.25 in +// engine version 1.13. However, some clients are explicitly using downlevel +// APIs (eg docker-compose v2.1 file format) and that is just too restrictive. +// Hence also allowing 1.24 on Windows. +const MinVersion string = "1.24" diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/swagger-gen.yaml b/vendor/github.com/docker/docker/api/swagger-gen.yaml similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/swagger-gen.yaml rename to vendor/github.com/docker/docker/api/swagger-gen.yaml diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/swagger.yaml b/vendor/github.com/docker/docker/api/swagger.yaml similarity index 87% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/swagger.yaml rename to vendor/github.com/docker/docker/api/swagger.yaml index 14b5e486..d19e8c9c 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/swagger.yaml +++ b/vendor/github.com/docker/docker/api/swagger.yaml @@ -19,10 +19,10 @@ produces: consumes: - "application/json" - "text/plain" -basePath: "/v1.30" +basePath: "/v1.26" info: title: "Docker Engine API" - version: "1.30" + version: "1.26" x-logo: url: "https://docs.docker.com/images/logo-docker-main.png" description: | @@ -44,7 +44,7 @@ info: The API is usually changed in each release of Docker, so API calls are versioned to ensure that clients don't break. - For Docker Engine 17.06, the API version is 1.30. To lock to this version, you prefix the URL with `/v1.30`. For example, calling `/info` is the same as calling `/v1.30/info`. + For Docker Engine >= 1.13.1, the API version is 1.26. To lock to this version, you prefix the URL with `/v1.26`. For example, calling `/info` is the same as calling `/v1.26/info`. Engine releases in the near future should support this version of the API, so your client will continue to work even if it is talking to a newer Engine. @@ -52,14 +52,10 @@ info: The API uses an open schema model, which means server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break when talking to newer Docker daemons. - This documentation is for version 1.30 of the API, which was introduced with Docker 17.06. Use this table to find documentation for previous versions of the API: + This documentation is for version 1.26 of the API, which was introduced with Docker 1.13.1. Use this table to find documentation for previous versions of the API: Docker version | API version | Changes ----------------|-------------|--------- - 17.05.x | [1.29](https://docs.docker.com/engine/api/v1.29/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-29-api-changes) - 17.04.x | [1.28](https://docs.docker.com/engine/api/v1.28/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-28-api-changes) - 17.03.1 | [1.27](https://docs.docker.com/engine/api/v1.27/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-27-api-changes) - 1.13.1 & 17.03.0 | [1.26](https://docs.docker.com/engine/api/v1.26/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-26-api-changes) 1.13.0 | [1.25](https://docs.docker.com/engine/api/v1.25/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-25-api-changes) 1.12.x | [1.24](https://docs.docker.com/engine/api/v1.24/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-24-api-changes) 1.11.x | [1.23](https://docs.docker.com/engine/api/v1.23/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-23-api-changes) @@ -95,7 +91,7 @@ info: # The tags on paths define the menu sections in the ReDoc documentation, so # the usage of tags must make sense for that: # - They should be singular, not plural. -# - There should not be too many tags, or the menu becomes unwieldy. For +# - There should not be too many tags, or the menu becomes unwieldly. For # example, it is preferable to add a path to the "System" tag instead of # creating a tag with a single path in it. # - The order of tags in this list defines the order in the menu. @@ -121,6 +117,8 @@ tags: Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information. To exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`. + - name: "Secret" + x-displayName: "Secrets" # Swarm things - name: "Swarm" x-displayName: "Swarm" @@ -138,10 +136,6 @@ tags: x-displayName: "Tasks" description: | A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work. - - name: "Secret" - x-displayName: "Secrets" - description: | - Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work. # System things - name: "Plugin" x-displayName: "Plugins" @@ -231,7 +225,6 @@ definitions: type: "string" Source: description: "Mount source (e.g. a volume name, a host path)." - type: "string" Type: description: | The mount type. Available types: @@ -247,9 +240,6 @@ definitions: ReadOnly: description: "Whether the mount should be read-only." type: "boolean" - Consistency: - description: "The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`." - type: "string" BindOptions: description: "Optional configuration for the `bind` type." type: "object" @@ -309,12 +299,10 @@ definitions: Name: type: "string" description: | - - Empty string means not to restart - `always` Always restart - `unless-stopped` Restart always except when the user has manually stopped the container - `on-failure` Restart only when the container exit code is non-zero enum: - - "" - "always" - "unless-stopped" - "on-failure" @@ -407,12 +395,6 @@ definitions: type: "array" items: $ref: "#/definitions/DeviceMapping" - DeviceCgroupRules: - description: "a list of cgroup rules to apply to the container" - type: "array" - items: - type: "string" - example: "c 13:* rwm" DiskQuota: description: "Disk limit (in bytes)." type: "integer" @@ -486,34 +468,6 @@ definitions: type: "integer" format: "int64" - HealthConfig: - description: "A test to perform to check that the container is healthy." - type: "object" - properties: - Test: - description: | - The test to perform. Possible values are: - - - `[]` inherit healthcheck from image or parent image - - `["NONE"]` disable healthcheck - - `["CMD", args...]` exec arguments directly - - `["CMD-SHELL", command]` run command with system's default shell - type: "array" - items: - type: "string" - Interval: - description: "The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit." - type: "integer" - Timeout: - description: "The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit." - type: "integer" - Retries: - description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit." - type: "integer" - StartPeriod: - description: "Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit." - type: "integer" - HostConfig: description: "Container configuration that depends on the host we are running on" allOf: @@ -761,7 +715,7 @@ definitions: default: false Env: description: | - A list of environment variables to set inside the container in the form `["VAR=value", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value. + A list of environment variables to set inside the container in the form `["VAR=value", ...]` type: "array" items: type: "string" @@ -773,7 +727,29 @@ definitions: items: type: "string" Healthcheck: - $ref: "#/definitions/HealthConfig" + description: "A test to perform to check that the container is healthy." + type: "object" + properties: + Test: + description: | + The test to perform. Possible values are: + + - `{}` inherit healthcheck from image or parent image + - `{"NONE"}` disable healthcheck + - `{"CMD", args...}` exec arguments directly + - `{"CMD-SHELL", command}` run command with system's default shell + type: "array" + items: + type: "string" + Interval: + description: "The time to wait between checks in nanoseconds. 0 means inherit." + type: "integer" + Timeout: + description: "The time to wait before considering the check to have hung. 0 means inherit." + type: "integer" + Retries: + description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit." + type: "integer" ArgsEscaped: description: "Command is already escaped (Windows only)" type: "boolean" @@ -853,40 +829,22 @@ definitions: items: $ref: "#/definitions/Port" - GraphDriverData: - description: "Information about a container's graph driver." + GraphDriver: + description: "Information about this container's graph driver." type: "object" - required: [Name, Data] properties: Name: type: "string" - x-nullable: false Data: type: "object" - x-nullable: false additionalProperties: type: "string" Image: type: "object" - required: - - Id - - Parent - - Comment - - Created - - Container - - DockerVersion - - Author - - Architecture - - Os - - Size - - VirtualSize - - GraphDriver - - RootFS properties: Id: type: "string" - x-nullable: false RepoTags: type: "array" items: @@ -897,51 +855,37 @@ definitions: type: "string" Parent: type: "string" - x-nullable: false Comment: type: "string" - x-nullable: false Created: type: "string" - x-nullable: false Container: type: "string" - x-nullable: false ContainerConfig: $ref: "#/definitions/Config" DockerVersion: type: "string" - x-nullable: false Author: type: "string" - x-nullable: false Config: $ref: "#/definitions/Config" Architecture: type: "string" - x-nullable: false Os: type: "string" - x-nullable: false - OsVersion: - type: "string" Size: type: "integer" format: "int64" - x-nullable: false VirtualSize: type: "integer" format: "int64" - x-nullable: false GraphDriver: - $ref: "#/definitions/GraphDriverData" + $ref: "#/definitions/GraphDriver" RootFS: type: "object" - required: [Type] properties: Type: type: "string" - x-nullable: false Layers: type: "array" items: @@ -1048,10 +992,6 @@ definitions: type: "string" description: "Mount path of the volume on the host." x-nullable: false - CreatedAt: - type: "string" - format: "dateTime" - description: "Time volume was created." Status: type: "object" description: | @@ -1105,7 +1045,6 @@ definitions: com.example.some-label: "some-value" com.example.some-other-label: "some-other-value" Scope: "local" - CreatedAt: "2016-06-07T20:31:11.853781916Z" Network: type: "object" @@ -1127,10 +1066,6 @@ definitions: $ref: "#/definitions/IPAM" Internal: type: "boolean" - Attachable: - type: "boolean" - Ingress: - type: "boolean" Containers: type: "object" additionalProperties: @@ -1158,8 +1093,6 @@ definitions: Options: foo: "bar" Internal: false - Attachable: false - Ingress: false Containers: 19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c: Name: "test" @@ -1201,8 +1134,6 @@ definitions: NetworkContainer: type: "object" properties: - Name: - type: "string" EndpointID: type: "string" MacAddress: @@ -1465,17 +1396,11 @@ definitions: - WorkDir - Network - Linux - - PidHost - PropagatedMount - - IpcHost - Mounts - Env - Args properties: - DockerVersion: - description: "Docker Version used to create the plugin" - type: "string" - x-nullable: false Description: type: "string" x-nullable: false @@ -1539,12 +1464,6 @@ definitions: PropagatedMount: type: "string" x-nullable: false - IpcHost: - type: "boolean" - x-nullable: false - PidHost: - type: "boolean" - x-nullable: false Mounts: type: "array" items: @@ -1622,21 +1541,6 @@ definitions: Settable: null Value: [] - ObjectVersion: - description: | - The version number of the object such as node, service, etc. This is needed to avoid conflicting writes. - The client must send the version number along with the modified specification when updating these objects. - This approach ensures safe concurrency and determinism in that the change on the object - may not be applied if the version number has changed from the last read. In other words, - if two update requests specify the same base version, only one of the requests can succeed. - As a result, two separate update requests that happen at the same time will not - unintentially overwrite each other. - type: "object" - properties: - Index: - type: "integer" - format: "int64" - NodeSpec: type: "object" properties: @@ -1673,7 +1577,11 @@ definitions: ID: type: "string" Version: - $ref: "#/definitions/ObjectVersion" + type: "object" + properties: + Index: + type: "integer" + format: "int64" CreatedAt: type: "string" format: "dateTime" @@ -1721,8 +1629,6 @@ definitions: type: "string" Name: type: "string" - TLSInfo: - $ref: "#/definitions/SwarmSpec" example: ID: "24ifsmvkjbyhk" Version: @@ -1744,7 +1650,7 @@ definitions: NanoCPUs: 4000000000 MemoryBytes: 8272408576 Engine: - EngineVersion: "17.04.0" + EngineVersion: "1.13.0" Labels: foo: "bar" Plugins: @@ -1763,47 +1669,6 @@ definitions: Leader: true Reachability: "reachable" Addr: "172.17.0.2:2377" - TLSInfo: - TrustRoot: | - -----BEGIN CERTIFICATE----- - MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw - EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0 - MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH - A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf - 3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB - Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO - PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz - pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H - -----END CERTIFICATE----- - CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh" - CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==" - TLSInfo: - description: "Information about the issuer of leaf TLS certificates and the trusted root CA certificate" - type: "object" - properties: - TrustRoot: - description: "The root CA certificate(s) that are used to validate leaf TLS certificates" - type: "string" - CertIssuerSubject: - description: "The base64-url-safe-encoded raw subject bytes of the issuer" - type: "string" - CertIssuerPublicKey: - description: "The base64-url-safe-encoded raw public key bytes of the issuer" - type: "string" - example: - TrustRoot: | - -----BEGIN CERTIFICATE----- - MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw - EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0 - MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH - A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf - 3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB - Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO - PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz - pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H - -----END CERTIFICATE----- - CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh" - CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==" SwarmSpec: description: "User modifiable swarm configuration." type: "object" @@ -1888,17 +1753,6 @@ definitions: type: "object" additionalProperties: type: "string" - CACert: - description: "The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided)." - type: "string" - SigningCACert: - description: "The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format." - type: "string" - SigningCAKey: - description: "The desired signing CA key for all swarm node TLS leaf certificates, in PEM format." - type: "string" - ForceRotate: - description: "An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`" EncryptionConfig: description: "Parameters related to encryption-at-rest." type: "object" @@ -1950,7 +1804,11 @@ definitions: description: "The ID of the swarm." type: "string" Version: - $ref: "#/definitions/ObjectVersion" + type: "object" + properties: + Index: + type: "integer" + format: "int64" CreatedAt: type: "string" format: "dateTime" @@ -1959,11 +1817,6 @@ definitions: format: "dateTime" Spec: $ref: "#/definitions/SwarmSpec" - TLSInfo: - $ref: "#/definitions/TLSInfo" - RootRotationInProgress: - description: "Whether there is currently a root CA rotation in progress for the swarm" - type: "boolean" TaskSpec: description: "User modifiable task configuration." type: "object" @@ -1974,11 +1827,6 @@ definitions: Image: description: "The image name to use for the container." type: "string" - Labels: - description: "User-defined key/value data." - type: "object" - additionalProperties: - type: "string" Command: description: "The command to be run in the image." type: "array" @@ -1989,9 +1837,6 @@ definitions: type: "array" items: type: "string" - Hostname: - description: "The hostname to use for the container, as a valid RFC 1123 hostname." - type: "string" Env: description: "A list of environment variables in the form `VAR=value`." type: "array" @@ -2003,43 +1848,23 @@ definitions: User: description: "The user inside the container." type: "string" - Groups: - type: "array" - description: "A list of additional groups that the container process will run as." - items: + Labels: + description: "User-defined key/value data." + type: "object" + additionalProperties: type: "string" TTY: description: "Whether a pseudo-TTY should be allocated." type: "boolean" - OpenStdin: - description: "Open `stdin`" - type: "boolean" - ReadOnly: - description: "Mount the container's root filesystem as read only." - type: "boolean" Mounts: description: "Specification for mounts to be added to containers created as part of the service." type: "array" items: $ref: "#/definitions/Mount" - StopSignal: - description: "Signal to stop the container." - type: "string" StopGracePeriod: description: "Amount of time to wait for the container to terminate before forcefully killing it." type: "integer" format: "int64" - HealthCheck: - $ref: "#/definitions/HealthConfig" - Hosts: - type: "array" - description: | - A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. - The format of extra hosts on swarmkit is specified in: - http://man7.org/linux/man-pages/man5/hosts.5.html - IP_address canonical_hostname [aliases...] - items: - type: "string" DNSConfig: description: "Specification for DNS related configurations in resolver configuration file (`resolv.conf`)." type: "object" @@ -2059,38 +1884,6 @@ definitions: type: "array" items: type: "string" - Secrets: - description: "Secrets contains references to zero or more secrets that will be exposed to the service." - type: "array" - items: - type: "object" - properties: - File: - description: "File represents a specific target that is backed by a file." - type: "object" - properties: - Name: - description: "Name represents the final filename in the filesystem." - type: "string" - UID: - description: "UID represents the file UID." - type: "string" - GID: - description: "GID represents the file GID." - type: "string" - Mode: - description: "Mode represents the FileMode of the file." - type: "integer" - format: "uint32" - SecretID: - description: "SecretID represents the ID of the specific secret that we're referencing." - type: "string" - SecretName: - description: | - SecretName is the name of the secret that this references, but this is just provided for - lookup/display purposes. The secret in the reference will be identified by its ID. - type: "string" - Resources: description: "Resource requirements which apply to each individual container created as part of the service." type: "object" @@ -2151,34 +1944,9 @@ definitions: type: "array" items: type: "string" - Preferences: - description: "Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence." - type: "array" - items: - type: "object" - properties: - Spread: - type: "object" - properties: - SpreadDescriptor: - description: "label descriptor, such as engine.labels.az" - type: "string" - Platforms: - description: "An array of supported platforms." - type: "array" - items: - type: "object" - properties: - Architecture: - type: "string" - OS: - type: "string" ForceUpdate: description: "A counter that triggers an update even if no relevant parameters have been changed." type: "integer" - Runtime: - description: "Runtime is the type of runtime specified for the task executor." - type: "string" Networks: type: "array" items: @@ -2223,7 +1991,11 @@ definitions: description: "The ID of the task." type: "string" Version: - $ref: "#/definitions/ObjectVersion" + type: "object" + properties: + Index: + type: "integer" + format: "int64" CreatedAt: type: "string" format: "dateTime" @@ -2370,7 +2142,6 @@ definitions: enum: - "continue" - "pause" - - "rollback" Monitor: description: "Amount of time to monitor each updated task for failures, in nanoseconds." type: "integer" @@ -2379,44 +2150,6 @@ definitions: description: "The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1." type: "number" default: 0 - Order: - description: "The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down." - type: "string" - enum: - - "stop-first" - - "start-first" - RollbackConfig: - description: "Specification for the rollback strategy of the service." - type: "object" - properties: - Parallelism: - description: "Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism)." - type: "integer" - format: "int64" - Delay: - description: "Amount of time between rollback iterations, in nanoseconds." - type: "integer" - format: "int64" - FailureAction: - description: "Action to take if an rolled back task fails to run, or stops running during the rollback." - type: "string" - enum: - - "continue" - - "pause" - Monitor: - description: "Amount of time to monitor each rolled back task for failures, in nanoseconds." - type: "integer" - format: "int64" - MaxFailureRatio: - description: "The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1." - type: "number" - default: 0 - Order: - description: "The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down." - type: "string" - enum: - - "stop-first" - - "start-first" Networks: description: "Array of network names or IDs to attach the service to." type: "array" @@ -2470,7 +2203,11 @@ definitions: ID: type: "string" Version: - $ref: "#/definitions/ObjectVersion" + type: "object" + properties: + Index: + type: "integer" + format: "int64" CreatedAt: type: "string" format: "dateTime" @@ -2539,13 +2276,6 @@ definitions: Replicas: 1 UpdateConfig: Parallelism: 1 - Delay: 1000000000 - FailureAction: "pause" - Monitor: 15000000000 - MaxFailureRatio: 0.15 - RollbackConfig: - Parallelism: 1 - Delay: 1000000000 FailureAction: "pause" Monitor: 15000000000 MaxFailureRatio: 0.15 @@ -2576,7 +2306,7 @@ definitions: - NetworkID: "4qvuz4ko70xaltuqbt8956gd1" Addr: "10.255.0.3/16" - ImageDeleteResponseItem: + ImageDeleteResponse: type: "object" properties: Untagged: @@ -2685,7 +2415,11 @@ definitions: ID: type: "string" Version: - $ref: "#/definitions/ObjectVersion" + type: "object" + properties: + Index: + type: "integer" + format: "int64" CreatedAt: type: "string" format: "dateTime" @@ -2719,23 +2453,22 @@ paths: - name: "filters" in: "query" description: | - Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. Available filters: + Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. - - `ancestor`=(`[:]`, ``, or ``) - - `before`=(`` or ``) - - `expose`=(`[/]`|`/[]`) + Available filters: - `exited=` containers with exit code of `` - - `health`=(`starting`|`healthy`|`unhealthy`|`none`) - - `id=` a container's ID - - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only) - - `is-task=`(`true`|`false`) + - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`) - `label=key` or `label="key=value"` of a container label + - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only) + - `id=` a container's ID - `name=` a container's name - - `network`=(`` or ``) - - `publish`=(`[/]`|`/[]`) + - `is-task=`(`true`|`false`) + - `ancestor`=(`[:]`, ``, or ``) + - `before`=(`` or ``) - `since`=(`` or ``) - - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`) - `volume`=(`` or ``) + - `network`=(`` or ``) + - `health`=(`starting`|`healthy`|`unhealthy`|`none`) type: "string" responses: 200: @@ -3109,22 +2842,10 @@ paths: type: "object" properties: Status: - description: | - The status of the container. For example, `"running"` or `"exited"`. + description: "The status of the container. For example, `running` or `exited`." type: "string" - enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"] Running: - description: | - Whether this container is running. - - Note that a running container can be _paused_. The `Running` and `Paused` - booleans are not mutually exclusive: - - When pausing a container (on Linux), the cgroups freezer is used to suspend - all processes in the container. Freezing the process requires the process to - be running. As a result, paused containers are both `Running` _and_ `Paused`. - - Use the `Status` field instead to determine if a container's state is "running". + description: "Whether this container is running." type: "boolean" Paused: description: "Whether this container is paused." @@ -3182,7 +2903,7 @@ paths: HostConfig: $ref: "#/definitions/HostConfig" GraphDriver: - $ref: "#/definitions/GraphDriverData" + $ref: "#/definitions/GraphDriver" SizeRw: description: "The size of files that have been created or changed by this container." type: "integer" @@ -3514,34 +3235,32 @@ paths: get: summary: "Get changes on a container’s filesystem" description: | - Returns which files in a container's filesystem have been added, deleted, - or modified. The `Kind` of modification can be one of: + Returns which files in a container's filesystem have been added, deleted, or modified. The `Kind` of modification can be one of: - `0`: Modified - `1`: Added - `2`: Deleted operationId: "ContainerChanges" - produces: ["application/json"] + produces: + - "application/json" responses: 200: - description: "The list of changes" + description: "no error" schema: type: "array" items: type: "object" - x-go-name: "ContainerChangeResponseItem" - required: [Path, Kind] properties: Path: description: "Path to file that has changed" type: "string" - x-nullable: false Kind: description: "Kind of change" type: "integer" - format: "uint8" - enum: [0, 1, 2] - x-nullable: false + enum: + - 0 + - 1 + - 2 examples: application/json: - Path: "/dev" @@ -3600,18 +3319,12 @@ paths: get: summary: "Get container stats based on resource usage" description: | - This endpoint returns a live stream of a container’s resource usage - statistics. + This endpoint returns a live stream of a container’s resource usage statistics. - The `precpu_stats` is the CPU statistic of last read, which is used - for calculating the CPU usage percentage. It is not the same as the - `cpu_stats` field. - - If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is - nil then for compatibility with older daemons the length of the - corresponding `cpu_usage.percpu_usage` array should be used. + The `precpu_stats` is the CPU statistic of last read, which is used for calculating the CPU usage percentage. It is not the same as the `cpu_stats` field. operationId: "ContainerStats" - produces: ["application/json"] + produces: + - "application/json" responses: 200: description: "no error" @@ -3688,7 +3401,6 @@ paths: total_usage: 100215355 usage_in_kernelmode: 30000000 system_cpu_usage: 739306590000000 - online_cpus: 4 throttling_data: periods: 0 throttled_periods: 0 @@ -3704,7 +3416,6 @@ paths: total_usage: 100093996 usage_in_kernelmode: 30000000 system_cpu_usage: 9492140000000 - online_cpus: 4 throttling_data: periods: 0 throttled_periods: 0 @@ -4171,7 +3882,7 @@ paths: default: false - name: "stream" in: "query" - description: "Stream attached streams from the time the request was made onwards" + description: "Stream attached streams from the the time the request was made onwards" type: "boolean" default: false - name: "stdin" @@ -4284,11 +3995,6 @@ paths: required: true description: "ID or name of the container" type: "string" - - name: "condition" - in: "query" - description: "Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'." - type: "string" - default: "not-running" tags: ["Container"] /containers/{id}: delete: @@ -4308,13 +4014,6 @@ paths: examples: application/json: message: "No such container: c2ada9df5af8" - 409: - description: "conflict" - schema: - $ref: "#/definitions/ErrorResponse" - examples: - application/json: - message: "You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove" 500: description: "server error" schema: @@ -4335,17 +4034,12 @@ paths: description: "If the container is running, kill it before removing it." type: "boolean" default: false - - name: "link" - in: "query" - description: "Remove the specified link associated with the container." - type: "boolean" - default: false tags: ["Container"] /containers/{id}/archive: head: summary: "Get information about files in a container" description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path." - operationId: "ContainerArchiveInfo" + operationId: "ContainerArchiveHead" responses: 200: description: "no error" @@ -4389,9 +4083,10 @@ paths: tags: ["Container"] get: summary: "Get an archive of a filesystem resource in a container" - description: "Get a tar archive of a resource in the filesystem of container id." - operationId: "ContainerArchive" - produces: ["application/x-tar"] + description: "Get an tar archive of a resource in the filesystem of container id." + operationId: "ContainerGetArchive" + produces: + - "application/x-tar" responses: 200: description: "no error" @@ -4432,8 +4127,10 @@ paths: put: summary: "Extract an archive of files or folders to a directory in a container" description: "Upload a tar archive to be extracted to a path in the filesystem of container id." - operationId: "PutContainerArchive" - consumes: ["application/x-tar", "application/octet-stream"] + operationId: "ContainerPutArchive" + consumes: + - "application/x-tar" + - "application/octet-stream" responses: 200: description: "The content was extracted successfully" @@ -4491,8 +4188,6 @@ paths: Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters: - - `until=` Prune containers created before this timestamp. The `` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time. - - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune containers with (or without, in case `label!=...` is used) the specified labels. type: "string" responses: 200: @@ -4570,13 +4265,14 @@ paths: - name: "filters" in: "query" description: | - A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters: + A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. - - `before`=(`[:]`, `` or ``) + Available filters: - `dangling=true` - `label=key` or `label="key=value"` of an image label - - `reference`=(`[:]`) + - `before`=(`[:]`, `` or ``) - `since`=(`[:]`, `` or ``) + - `reference`=(`[:]`) type: "string" - name: "digests" in: "query" @@ -4616,10 +4312,6 @@ paths: in: "query" description: "A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters." type: "string" - - name: "extrahosts" - in: "query" - description: "Extra hosts to add to /etc/hosts" - type: "string" - name: "remote" in: "query" description: "A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball." @@ -4703,8 +4395,8 @@ paths: in: "header" type: "string" enum: - - "application/x-tar" - default: "application/x-tar" + - "application/tar" + default: "application/tar" - name: "X-Registry-Config" in: "header" description: | @@ -4841,7 +4533,6 @@ paths: Created: "2015-09-10T08:30:53.26995814Z" GraphDriver: Name: "aufs" - Data: {} RepoDigests: - "localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf" RepoTags: @@ -4900,27 +4591,23 @@ paths: summary: "Get the history of an image" description: "Return parent layers of an image." operationId: "ImageHistory" - produces: ["application/json"] + produces: + - "application/json" responses: 200: - description: "List of image layers" + description: "No error" schema: type: "array" items: type: "object" - x-go-name: HistoryResponseItem - required: [Id, Created, CreatedBy, Tags, Size, Comment] properties: Id: type: "string" - x-nullable: false Created: type: "integer" format: "int64" - x-nullable: false CreatedBy: type: "string" - x-nullable: false Tags: type: "array" items: @@ -4928,10 +4615,8 @@ paths: Size: type: "integer" format: "int64" - x-nullable: false Comment: type: "string" - x-nullable: false examples: application/json: - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710" @@ -5053,20 +4738,19 @@ paths: delete: summary: "Remove an image" description: | - Remove an image, along with any untagged parent images that were - referenced by that image. + Remove an image, along with any untagged parent images that were referenced by that image. - Images can't be removed if they have descendant images, are being - used by a running container or are being used by a build. + Images can't be removed if they have descendant images, are being used by a running container or are being used by a build. operationId: "ImageDelete" - produces: ["application/json"] + produces: + - "application/json" responses: 200: - description: "The image was deleted successfully" + description: "No error" schema: type: "array" items: - $ref: "#/definitions/ImageDeleteResponseItem" + $ref: "#/definitions/ImageDeleteResponse" examples: application/json: - Untagged: "3e2f21a89f" @@ -5162,9 +4846,9 @@ paths: description: | A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters: + - `stars=` - `is-automated=(true|false)` - `is-official=(true|false)` - - `stars=` Matches images that has at least 'number' stars. type: "string" tags: ["Image"] /images/prune: @@ -5177,13 +4861,12 @@ paths: - name: "filters" in: "query" description: | - Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters: + Filters to process on the prune list, encoded as JSON (a `map[string][]string`). + Available filters: - `dangling=` When set to `true` (or `1`), prune only unused *and* untagged images. When set to `false` (or `0`), all unused images are pruned. - - `until=` Prune images created before this timestamp. The `` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time. - - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune images with (or without, in case `label!=...` is used) the specified labels. type: "string" responses: 200: @@ -5195,7 +4878,7 @@ paths: description: "Images that were deleted" type: "array" items: - $ref: "#/definitions/ImageDeleteResponseItem" + $ref: "#/definitions/ImageDeleteResponse" SpaceReclaimed: description: "Disk space reclaimed in bytes" type: "integer" @@ -5301,10 +4984,6 @@ paths: type: "array" items: type: "string" - Log: - type: "array" - items: - type: "string" ExperimentalBuild: type: "boolean" HttpProxy: @@ -5465,7 +5144,8 @@ paths: summary: "Get version" description: "Returns the version of Docker that is running and various information about the system that Docker is running on." operationId: "SystemVersion" - produces: ["application/json"] + produces: + - "application/json" responses: 200: description: "no error" @@ -5494,13 +5174,13 @@ paths: type: "string" examples: application/json: - Version: "17.04.0" + Version: "1.13.0" Os: "linux" KernelVersion: "3.19.0-23-generic" - GoVersion: "go1.7.5" + GoVersion: "go1.6.3" GitCommit: "deadbee" Arch: "amd64" - ApiVersion: "1.27" + ApiVersion: "1.25" MinAPIVersion: "1.12" BuildTime: "2016-06-14T07:09:13.444803460+00:00" Experimental: true @@ -5514,20 +5194,14 @@ paths: summary: "Ping" description: "This is a dummy endpoint you can use to test if the server is accessible." operationId: "SystemPing" - produces: ["text/plain"] + produces: + - "text/plain" responses: 200: description: "no error" schema: type: "string" example: "OK" - headers: - API-Version: - type: "string" - description: "Max API Version the server supports" - Docker-Experimental: - type: "boolean" - description: "If the server is running with experimental mode enabled" 500: description: "server error" schema: @@ -5601,7 +5275,7 @@ paths: Various objects within Docker report events when something happens to them. - Containers report these events: `attach, commit, copy, create, destroy, detach, die, exec_create, exec_detach, exec_start, export, health_status, kill, oom, pause, rename, resize, restart, start, stop, top, unpause, update` + Containers report these events: `attach, commit, copy, create, destroy, detach, die, exec_create, exec_detach, exec_start, export, kill, oom, pause, rename, resize, restart, start, stop, top, unpause, update` Images report these events: `delete, import, load, pull, push, save, tag, untag` @@ -5655,10 +5329,6 @@ paths: image: "alpine" name: "my-container" time: 1461943101 - 400: - description: "bad parameter" - schema: - $ref: "#/definitions/ErrorResponse" 500: description: "server error" schema: @@ -5678,14 +5348,13 @@ paths: A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters: - `container=` container name or ID - - `daemon=` daemon name or ID - `event=` event type - `image=` image name or ID - `label=` image or container label - - `network=` network name or ID - - `plugin`= plugin name or ID - `type=` object to filter by, one of `container`, `image`, `volume`, `network`, or `daemon` - `volume=` volume name or ID + - `network=` network name or ID + - `daemon=` daemon name or ID type: "string" tags: ["System"] /system/df: @@ -6159,14 +5828,13 @@ paths: JSON encoded value of the filters (a `map[string][]string`) to process on the volumes list. Available filters: + - `name=` Matches all or part of a volume name. - `dangling=` When set to `true` (or `1`), returns all volumes that are not in use by a container. When set to `false` (or `0`), only volumes that are in use by one or more containers are returned. - - `driver=` Matches volumes based on their driver. - - `label=` or `label=:` Matches volumes based on - the presence of a `label` alone or a `label` and a value. - - `name=` Matches all or part of a volume name. + - `driver=` Matches all or part of a volume + driver name. type: "string" format: "json" tags: ["Volume"] @@ -6291,7 +5959,6 @@ paths: Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters: - - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune volumes with (or without, in case `label!=...` is used) the specified labels. type: "string" responses: 200: @@ -6316,11 +5983,6 @@ paths: /networks: get: summary: "List networks" - description: | - Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect). - - Note that it uses a different, smaller representation of a network than inspecting a single network. For example, - the list of containers attached to the network is not propagated in API versions 1.28 and up. operationId: "NetworkList" produces: - "application/json" @@ -6340,13 +6002,17 @@ paths: Driver: "bridge" EnableIPv6: false Internal: false - Attachable: false - Ingress: false IPAM: Driver: "default" Config: - Subnet: "172.17.0.0/16" + Containers: + 39b69226f9d79f5634485fb236a23b2fe4e96a0a94128390a7fbbcc167065867: + EndpointID: "ed2419a97c1d9954d05b46e462e7002ea552f216e9b136b80a7db8d98b442eda" + MacAddress: "02:42:ac:11:00:02" + IPv4Address: "172.17.0.2/16" + IPv6Address: "" Options: com.docker.network.bridge.default_bridge: "true" com.docker.network.bridge.enable_icc: "true" @@ -6361,8 +6027,6 @@ paths: Driver: "null" EnableIPv6: false Internal: false - Attachable: false - Ingress: false IPAM: Driver: "default" Config: [] @@ -6375,8 +6039,6 @@ paths: Driver: "host" EnableIPv6: false Internal: false - Attachable: false - Ingress: false IPAM: Driver: "default" Config: [] @@ -6396,7 +6058,6 @@ paths: - `id=` Matches all or part of a network ID. - `label=` or `label==` of a network label. - `name=` Matches all or part of a network name. - - `scope=["swarm"|"global"|"local"]` Filters networks by scope (`swarm`, `global`, or `local`). - `type=["custom"|"builtin"]` Filters networks by type. The `custom` keyword returns all user-defined networks. type: "string" tags: ["Network"] @@ -6416,21 +6077,12 @@ paths: description: "Network not found" schema: $ref: "#/definitions/ErrorResponse" - 500: - description: "Server error" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" description: "Network ID or name" required: true type: "string" - - name: "verbose" - in: "query" - description: "Detailed inspect output for troubleshooting" - type: "boolean" - default: false tags: ["Network"] delete: @@ -6439,10 +6091,6 @@ paths: responses: 204: description: "No error" - 403: - description: "operation not supported for pre-defined networks" - schema: - $ref: "#/definitions/ErrorResponse" 404: description: "no such network" schema: @@ -6506,7 +6154,7 @@ paths: description: "The network's name." type: "string" CheckDuplicate: - description: "Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions." + description: "Check for networks with duplicate names." type: "boolean" Driver: description: "Name of the network driver plugin to use." @@ -6515,12 +6163,6 @@ paths: Internal: description: "Restrict external access to the network." type: "boolean" - Attachable: - description: "Globally scoped network is manually attachable by regular containers from workers in swarm mode." - type: "boolean" - Ingress: - description: "Ingress network is the network which provides the routing-mesh in swarm mode." - type: "boolean" IPAM: description: "Optional custom IP scheme for the network." $ref: "#/definitions/IPAM" @@ -6553,8 +6195,6 @@ paths: Options: foo: "bar" Internal: true - Attachable: false - Ingress: false Options: com.docker.network.bridge.default_bridge: "true" com.docker.network.bridge.enable_icc: "true" @@ -6656,6 +6296,8 @@ paths: /networks/prune: post: summary: "Delete unused networks" + consumes: + - "application/json" produces: - "application/json" operationId: "NetworkPrune" @@ -6666,8 +6308,6 @@ paths: Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters: - - `until=` Prune networks created before this timestamp. The `` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time. - - `label` (`label=`, `label==`, `label!=`, or `label!==`) Prune networks with (or without, in case `label!=...` is used) the specified labels. type: "string" responses: 200: @@ -6742,15 +6382,6 @@ paths: description: "Server error" schema: $ref: "#/definitions/ErrorResponse" - parameters: - - name: "filters" - in: "query" - type: "string" - description: | - A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters: - - - `capability=` - - `enable=|` tags: ["Plugin"] /plugins/privileges: @@ -6792,7 +6423,7 @@ paths: schema: $ref: "#/definitions/ErrorResponse" parameters: - - name: "remote" + - name: "name" in: "query" description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted." required: true @@ -6926,10 +6557,6 @@ paths: responses: 200: description: "no error" - 404: - description: "plugin is not installed" - schema: - $ref: "#/definitions/ErrorResponse" 500: description: "server error" schema: @@ -6953,10 +6580,6 @@ paths: responses: 200: description: "no error" - 404: - description: "plugin is not installed" - schema: - $ref: "#/definitions/ErrorResponse" 500: description: "server error" schema: @@ -7127,10 +6750,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "filters" in: "query" @@ -7162,10 +6781,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" @@ -7187,10 +6802,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" @@ -7210,10 +6821,6 @@ paths: responses: 200: description: "no error" - 400: - description: "bad parameter" - schema: - $ref: "#/definitions/ErrorResponse" 404: description: "no such node" schema: @@ -7222,10 +6829,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" @@ -7290,33 +6893,10 @@ paths: UpdatedAt: "2016-08-15T16:32:09.623207604Z" Version: Index: 51 - RootRotationInProgress: false - TLSInfo: - TrustRoot: | - -----BEGIN CERTIFICATE----- - MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw - EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0 - MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH - A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf - 3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB - Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO - PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz - pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H - -----END CERTIFICATE----- - CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh" - CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==" - 404: - description: "no such swarm" - schema: - $ref: "#/definitions/ErrorResponse" 500: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" tags: ["Swarm"] /swarm/init: post: @@ -7336,12 +6916,12 @@ paths: description: "bad parameter" schema: $ref: "#/definitions/ErrorResponse" - 500: - description: "server error" + 406: + description: "node is already part of a swarm" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is already part of a swarm" + 500: + description: "server error" schema: $ref: "#/definitions/ErrorResponse" parameters: @@ -7509,10 +7089,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" tags: ["Swarm"] /swarm/unlock: post: @@ -7541,10 +7117,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" tags: ["Swarm"] /services: get: @@ -7561,10 +7133,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "filters" in: "query" @@ -7573,9 +7141,8 @@ paths: A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters: - `id=` - - `label=` - - `mode=["replicated"|"global"]` - `name=` + - `label=` tags: ["Service"] /services/create: post: @@ -7600,10 +7167,6 @@ paths: example: ID: "ak7w3gjqoa3kuz8xcpnyy0pvl" Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" - 400: - description: "bad parameter" - schema: - $ref: "#/definitions/ErrorResponse" 403: description: "network is not eligible for services" schema: @@ -7617,7 +7180,7 @@ paths: schema: $ref: "#/definitions/ErrorResponse" 503: - description: "node is not part of a swarm" + description: "server error or node is not part of a swarm" schema: $ref: "#/definitions/ErrorResponse" parameters: @@ -7643,21 +7206,11 @@ paths: DriverConfig: {} Labels: com.example.something: "something-value" - Hosts: ["10.10.10.10 host1", "ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"] User: "33" DNSConfig: Nameservers: ["8.8.8.8"] Search: ["example.org"] Options: ["timeout:3"] - Secrets: - - - File: - Name: "www.example.org.key" - UID: "33" - GID: "33" - Mode: 384 - SecretID: "fpjqlhnwb19zds35k8wn80lq9" - SecretName: "example_org_domain_key" LogDriver: Name: "json-file" Options: @@ -7676,17 +7229,9 @@ paths: Replicated: Replicas: 4 UpdateConfig: + Delay: 30000000000 Parallelism: 2 - Delay: 1000000000 - FailureAction: "pause" - Monitor: 15000000000 - MaxFailureRatio: 0.15 - RollbackConfig: - Parallelism: 1 - Delay: 1000000000 FailureAction: "pause" - Monitor: 15000000000 - MaxFailureRatio: 0.15 EndpointSpec: Ports: - @@ -7717,21 +7262,12 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" description: "ID or name of service." required: true type: "string" - - name: "insertDefaults" - in: "query" - description: "Fill empty fields with default values." - type: "boolean" - default: false tags: ["Service"] delete: summary: "Delete a service" @@ -7747,10 +7283,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" @@ -7768,11 +7300,7 @@ paths: 200: description: "no error" schema: - $ref: "#/definitions/ServiceUpdateResponse" - 400: - description: "bad parameter" - schema: - $ref: "#/definitions/ErrorResponse" + $ref: "#/definitions/ImageDeleteResponse" 404: description: "no such service" schema: @@ -7781,10 +7309,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" @@ -7817,15 +7341,7 @@ paths: Replicated: Replicas: 1 UpdateConfig: - Parallelism: 2 - Delay: 1000000000 - FailureAction: "pause" - Monitor: 15000000000 - MaxFailureRatio: 0.15 - RollbackConfig: Parallelism: 1 - Delay: 1000000000 - FailureAction: "pause" Monitor: 15000000000 MaxFailureRatio: 0.15 EndpointSpec: @@ -7843,12 +7359,6 @@ paths: parameter indicates where to find registry authorization credentials. The valid values are `spec` and `previous-spec`." default: "spec" - - name: "rollback" - in: "query" - type: "string" - description: "Set to this parameter to `previous` to cause a - server-side rollback to the previous service spec. The supplied spec will be - ignored in this case." - name: "X-Registry-Auth" in: "header" description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)" @@ -7877,29 +7387,25 @@ paths: schema: type: "string" 404: - description: "no such service" + description: "no such container" schema: $ref: "#/definitions/ErrorResponse" examples: application/json: - message: "No such service: c2ada9df5af8" + message: "No such container: c2ada9df5af8" 500: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" required: true - description: "ID or name of the service" + description: "ID or name of the container" type: "string" - name: "details" in: "query" - description: "Show service context and extra details provided to logs." + description: "Show extra details provided to logs." type: "boolean" default: false - name: "follow" @@ -8060,14 +7566,11 @@ paths: Gateway: "10.255.0.1" Addresses: - "10.255.0.5/16" + 500: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "filters" in: "query" @@ -8075,12 +7578,12 @@ paths: description: | A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters: - - `desired-state=(running | shutdown | accepted)` - `id=` - - `label=key` or `label="key=value"` - `name=` - - `node=` - `service=` + - `node=` + - `label=key` or `label="key=value"` + - `desired-state=(running | shutdown | accepted)` tags: ["Task"] /tasks/{id}: get: @@ -8101,10 +7604,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" @@ -8112,86 +7611,6 @@ paths: required: true type: "string" tags: ["Task"] - /tasks/{id}/logs: - get: - summary: "Get task logs" - description: | - Get `stdout` and `stderr` logs from a task. - - **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers. - operationId: "TaskLogs" - produces: - - "application/vnd.docker.raw-stream" - - "application/json" - responses: - 101: - description: "logs returned as a stream" - schema: - type: "string" - format: "binary" - 200: - description: "logs returned as a string in response body" - schema: - type: "string" - 404: - description: "no such task" - schema: - $ref: "#/definitions/ErrorResponse" - examples: - application/json: - message: "No such task: c2ada9df5af8" - 500: - description: "server error" - schema: - $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" - parameters: - - name: "id" - in: "path" - required: true - description: "ID of the task" - type: "string" - - name: "details" - in: "query" - description: "Show task context and extra details provided to logs." - type: "boolean" - default: false - - name: "follow" - in: "query" - description: | - Return the logs as a stream. - - This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach). - type: "boolean" - default: false - - name: "stdout" - in: "query" - description: "Return logs from `stdout`" - type: "boolean" - default: false - - name: "stderr" - in: "query" - description: "Return logs from `stderr`" - type: "boolean" - default: false - - name: "since" - in: "query" - description: "Only return logs since this time, as a UNIX timestamp" - type: "integer" - default: 0 - - name: "timestamps" - in: "query" - description: "Add timestamps to every log line" - type: "boolean" - default: false - - name: "tail" - in: "query" - description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines." - type: "string" - default: "all" /secrets: get: summary: "List secrets" @@ -8217,10 +7636,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "filters" in: "query" @@ -8228,9 +7643,6 @@ paths: description: | A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters: - - `id=` - - `label= or label==value` - - `name=` - `names=` tags: ["Secret"] /secrets/create: @@ -8252,6 +7664,10 @@ paths: type: "string" example: ID: "ktnbjxoalbkvbvedmg1urrz8h" + 406: + description: "server error or node is not part of a swarm" + schema: + $ref: "#/definitions/ErrorResponse" 409: description: "name conflicts with an existing object" schema: @@ -8260,10 +7676,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "body" in: "body" @@ -8288,8 +7700,7 @@ paths: description: "no error" schema: $ref: "#/definitions/Secret" - examples: - application/json: + example: ID: "ktnbjxoalbkvbvedmg1urrz8h" Version: Index: 11 @@ -8301,12 +7712,12 @@ paths: description: "secret not found" schema: $ref: "#/definitions/ErrorResponse" - 500: - description: "server error" + 406: + description: "node is not part of a swarm" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" + 500: + description: "server error" schema: $ref: "#/definitions/ErrorResponse" parameters: @@ -8332,10 +7743,6 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" @@ -8350,10 +7757,6 @@ paths: responses: 200: description: "no error" - 400: - description: "bad parameter" - schema: - $ref: "#/definitions/ErrorResponse" 404: description: "no such secret" schema: @@ -8362,14 +7765,10 @@ paths: description: "server error" schema: $ref: "#/definitions/ErrorResponse" - 503: - description: "node is not part of a swarm" - schema: - $ref: "#/definitions/ErrorResponse" parameters: - name: "id" in: "path" - description: "The ID or name of the secret" + description: "The ID of the secret" type: "string" required: true - name: "body" @@ -8384,90 +7783,3 @@ paths: format: "int64" required: true tags: ["Secret"] - /distribution/{name}/json: - get: - summary: "Get image information from the registry" - description: "Return image digest and platform information by contacting the registry." - operationId: "DistributionInspect" - produces: - - "application/json" - responses: - 200: - description: "descriptor and platform information" - schema: - type: "object" - x-go-name: DistributionInspect - required: [Descriptor, Platforms] - properties: - Descriptor: - type: "object" - description: "A descriptor struct containing digest, media type, and size" - properties: - MediaType: - type: "string" - Size: - type: "integer" - format: "int64" - Digest: - type: "string" - URLs: - type: "array" - items: - type: "string" - Platforms: - type: "array" - description: "An array containing all platforms supported by the image" - items: - type: "object" - properties: - Architecture: - type: "string" - OS: - type: "string" - OSVersion: - type: "string" - OSFeatures: - type: "array" - items: - type: "string" - Variant: - type: "string" - Features: - type: "array" - items: - type: "string" - examples: - application/json: - Descriptor: - MediaType: "application/vnd.docker.distribution.manifest.v2+json" - Digest: "sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96" - Size: 3987495 - URLs: - - "" - Platforms: - - Architecture: "amd64" - OS: "linux" - OSVersion: "" - OSFeatures: - - "" - Variant: "" - Features: - - "" - 401: - description: "Failed authentication or no image found" - schema: - $ref: "#/definitions/ErrorResponse" - examples: - application/json: - message: "No such image: someimage (tag: latest)" - 500: - description: "Server error" - schema: - $ref: "#/definitions/ErrorResponse" - parameters: - - name: "name" - in: "path" - description: "Image name or id" - type: "string" - required: true - tags: ["Distribution"] diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/auth.go b/vendor/github.com/docker/docker/api/types/auth.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/auth.go rename to vendor/github.com/docker/docker/api/types/auth.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/blkiodev/blkio.go b/vendor/github.com/docker/docker/api/types/blkiodev/blkio.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/blkiodev/blkio.go rename to vendor/github.com/docker/docker/api/types/blkiodev/blkio.go diff --git a/vendor/github.com/docker/docker/api/types/client.go b/vendor/github.com/docker/docker/api/types/client.go new file mode 100644 index 00000000..7900d64f --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/client.go @@ -0,0 +1,378 @@ +package types + +import ( + "bufio" + "io" + "net" + "os" + + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/filters" + "github.com/docker/go-units" +) + +// CheckpointCreateOptions holds parameters to create a checkpoint from a container +type CheckpointCreateOptions struct { + CheckpointID string + CheckpointDir string + Exit bool +} + +// CheckpointListOptions holds parameters to list checkpoints for a container +type CheckpointListOptions struct { + CheckpointDir string +} + +// CheckpointDeleteOptions holds parameters to delete a checkpoint from a container +type CheckpointDeleteOptions struct { + CheckpointID string + CheckpointDir string +} + +// ContainerAttachOptions holds parameters to attach to a container. +type ContainerAttachOptions struct { + Stream bool + Stdin bool + Stdout bool + Stderr bool + DetachKeys string + Logs bool +} + +// ContainerCommitOptions holds parameters to commit changes into a container. +type ContainerCommitOptions struct { + Reference string + Comment string + Author string + Changes []string + Pause bool + Config *container.Config +} + +// ContainerExecInspect holds information returned by exec inspect. +type ContainerExecInspect struct { + ExecID string + ContainerID string + Running bool + ExitCode int + Pid int +} + +// ContainerListOptions holds parameters to list containers with. +type ContainerListOptions struct { + Quiet bool + Size bool + All bool + Latest bool + Since string + Before string + Limit int + Filters filters.Args +} + +// ContainerLogsOptions holds parameters to filter logs with. +type ContainerLogsOptions struct { + ShowStdout bool + ShowStderr bool + Since string + Timestamps bool + Follow bool + Tail string + Details bool +} + +// ContainerRemoveOptions holds parameters to remove containers. +type ContainerRemoveOptions struct { + RemoveVolumes bool + RemoveLinks bool + Force bool +} + +// ContainerStartOptions holds parameters to start containers. +type ContainerStartOptions struct { + CheckpointID string + CheckpointDir string +} + +// CopyToContainerOptions holds information +// about files to copy into a container +type CopyToContainerOptions struct { + AllowOverwriteDirWithFile bool +} + +// EventsOptions holds parameters to filter events with. +type EventsOptions struct { + Since string + Until string + Filters filters.Args +} + +// NetworkListOptions holds parameters to filter the list of networks with. +type NetworkListOptions struct { + Filters filters.Args +} + +// HijackedResponse holds connection information for a hijacked request. +type HijackedResponse struct { + Conn net.Conn + Reader *bufio.Reader +} + +// Close closes the hijacked connection and reader. +func (h *HijackedResponse) Close() { + h.Conn.Close() +} + +// CloseWriter is an interface that implements structs +// that close input streams to prevent from writing. +type CloseWriter interface { + CloseWrite() error +} + +// CloseWrite closes a readWriter for writing. +func (h *HijackedResponse) CloseWrite() error { + if conn, ok := h.Conn.(CloseWriter); ok { + return conn.CloseWrite() + } + return nil +} + +// ImageBuildOptions holds the information +// necessary to build images. +type ImageBuildOptions struct { + Tags []string + SuppressOutput bool + RemoteContext string + NoCache bool + Remove bool + ForceRemove bool + PullParent bool + Isolation container.Isolation + CPUSetCPUs string + CPUSetMems string + CPUShares int64 + CPUQuota int64 + CPUPeriod int64 + Memory int64 + MemorySwap int64 + CgroupParent string + NetworkMode string + ShmSize int64 + Dockerfile string + Ulimits []*units.Ulimit + // See the parsing of buildArgs in api/server/router/build/build_routes.go + // for an explaination of why BuildArgs needs to use *string instead of + // just a string + BuildArgs map[string]*string + AuthConfigs map[string]AuthConfig + Context io.Reader + Labels map[string]string + // squash the resulting image's layers to the parent + // preserves the original image and creates a new one from the parent with all + // the changes applied to a single layer + Squash bool + // CacheFrom specifies images that are used for matching cache. Images + // specified here do not need to have a valid parent chain to match cache. + CacheFrom []string + SecurityOpt []string +} + +// ImageBuildResponse holds information +// returned by a server after building +// an image. +type ImageBuildResponse struct { + Body io.ReadCloser + OSType string +} + +// ImageCreateOptions holds information to create images. +type ImageCreateOptions struct { + RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry +} + +// ImageImportSource holds source information for ImageImport +type ImageImportSource struct { + Source io.Reader // Source is the data to send to the server to create this image from (mutually exclusive with SourceName) + SourceName string // SourceName is the name of the image to pull (mutually exclusive with Source) +} + +// ImageImportOptions holds information to import images from the client host. +type ImageImportOptions struct { + Tag string // Tag is the name to tag this image with. This attribute is deprecated. + Message string // Message is the message to tag the image with + Changes []string // Changes are the raw changes to apply to this image +} + +// ImageListOptions holds parameters to filter the list of images with. +type ImageListOptions struct { + All bool + Filters filters.Args +} + +// ImageLoadResponse returns information to the client about a load process. +type ImageLoadResponse struct { + // Body must be closed to avoid a resource leak + Body io.ReadCloser + JSON bool +} + +// ImagePullOptions holds information to pull images. +type ImagePullOptions struct { + All bool + RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry + PrivilegeFunc RequestPrivilegeFunc +} + +// RequestPrivilegeFunc is a function interface that +// clients can supply to retry operations after +// getting an authorization error. +// This function returns the registry authentication +// header value in base 64 format, or an error +// if the privilege request fails. +type RequestPrivilegeFunc func() (string, error) + +//ImagePushOptions holds information to push images. +type ImagePushOptions ImagePullOptions + +// ImageRemoveOptions holds parameters to remove images. +type ImageRemoveOptions struct { + Force bool + PruneChildren bool +} + +// ImageSearchOptions holds parameters to search images with. +type ImageSearchOptions struct { + RegistryAuth string + PrivilegeFunc RequestPrivilegeFunc + Filters filters.Args + Limit int +} + +// ResizeOptions holds parameters to resize a tty. +// It can be used to resize container ttys and +// exec process ttys too. +type ResizeOptions struct { + Height uint + Width uint +} + +// VersionResponse holds version information for the client and the server +type VersionResponse struct { + Client *Version + Server *Version +} + +// ServerOK returns true when the client could connect to the docker server +// and parse the information received. It returns false otherwise. +func (v VersionResponse) ServerOK() bool { + return v.Server != nil +} + +// NodeListOptions holds parameters to list nodes with. +type NodeListOptions struct { + Filters filters.Args +} + +// NodeRemoveOptions holds parameters to remove nodes with. +type NodeRemoveOptions struct { + Force bool +} + +// ServiceCreateOptions contains the options to use when creating a service. +type ServiceCreateOptions struct { + // EncodedRegistryAuth is the encoded registry authorization credentials to + // use when updating the service. + // + // This field follows the format of the X-Registry-Auth header. + EncodedRegistryAuth string +} + +// ServiceCreateResponse contains the information returned to a client +// on the creation of a new service. +type ServiceCreateResponse struct { + // ID is the ID of the created service. + ID string + // Warnings is a set of non-fatal warning messages to pass on to the user. + Warnings []string `json:",omitempty"` +} + +// Values for RegistryAuthFrom in ServiceUpdateOptions +const ( + RegistryAuthFromSpec = "spec" + RegistryAuthFromPreviousSpec = "previous-spec" +) + +// ServiceUpdateOptions contains the options to be used for updating services. +type ServiceUpdateOptions struct { + // EncodedRegistryAuth is the encoded registry authorization credentials to + // use when updating the service. + // + // This field follows the format of the X-Registry-Auth header. + EncodedRegistryAuth string + + // TODO(stevvooe): Consider moving the version parameter of ServiceUpdate + // into this field. While it does open API users up to racy writes, most + // users may not need that level of consistency in practice. + + // RegistryAuthFrom specifies where to find the registry authorization + // credentials if they are not given in EncodedRegistryAuth. Valid + // values are "spec" and "previous-spec". + RegistryAuthFrom string +} + +// ServiceListOptions holds parameters to list services with. +type ServiceListOptions struct { + Filters filters.Args +} + +// TaskListOptions holds parameters to list tasks with. +type TaskListOptions struct { + Filters filters.Args +} + +// PluginRemoveOptions holds parameters to remove plugins. +type PluginRemoveOptions struct { + Force bool +} + +// PluginEnableOptions holds parameters to enable plugins. +type PluginEnableOptions struct { + Timeout int +} + +// PluginDisableOptions holds parameters to disable plugins. +type PluginDisableOptions struct { + Force bool +} + +// PluginInstallOptions holds parameters to install a plugin. +type PluginInstallOptions struct { + Disabled bool + AcceptAllPermissions bool + RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry + RemoteRef string // RemoteRef is the plugin name on the registry + PrivilegeFunc RequestPrivilegeFunc + AcceptPermissionsFunc func(PluginPrivileges) (bool, error) + Args []string +} + +// SecretRequestOption is a type for requesting secrets +type SecretRequestOption struct { + Source string + Target string + UID string + GID string + Mode os.FileMode +} + +// SwarmUnlockKeyResponse contains the response for Engine API: +// GET /swarm/unlockkey +type SwarmUnlockKeyResponse struct { + // UnlockKey is the unlock key in ASCII-armored format. + UnlockKey string +} + +// PluginCreateOptions hold all options to plugin create. +type PluginCreateOptions struct { + RepoName string +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/configs.go b/vendor/github.com/docker/docker/api/types/configs.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/configs.go rename to vendor/github.com/docker/docker/api/types/configs.go diff --git a/vendor/github.com/docker/docker/api/types/container/config.go b/vendor/github.com/docker/docker/api/types/container/config.go new file mode 100644 index 00000000..fc050e5d --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/config.go @@ -0,0 +1,62 @@ +package container + +import ( + "time" + + "github.com/docker/docker/api/types/strslice" + "github.com/docker/go-connections/nat" +) + +// HealthConfig holds configuration settings for the HEALTHCHECK feature. +type HealthConfig struct { + // Test is the test to perform to check that the container is healthy. + // An empty slice means to inherit the default. + // The options are: + // {} : inherit healthcheck + // {"NONE"} : disable healthcheck + // {"CMD", args...} : exec arguments directly + // {"CMD-SHELL", command} : run command with system's default shell + Test []string `json:",omitempty"` + + // Zero means to inherit. Durations are expressed as integer nanoseconds. + Interval time.Duration `json:",omitempty"` // Interval is the time to wait between checks. + Timeout time.Duration `json:",omitempty"` // Timeout is the time to wait before considering the check to have hung. + + // Retries is the number of consecutive failures needed to consider a container as unhealthy. + // Zero means inherit. + Retries int `json:",omitempty"` +} + +// Config contains the configuration data about a container. +// It should hold only portable information about the container. +// Here, "portable" means "independent from the host we are running on". +// Non-portable information *should* appear in HostConfig. +// All fields added to this struct must be marked `omitempty` to keep getting +// predictable hashes from the old `v1Compatibility` configuration. +type Config struct { + Hostname string // Hostname + Domainname string // Domainname + User string // User that will run the command(s) inside the container, also support user:group + AttachStdin bool // Attach the standard input, makes possible user interaction + AttachStdout bool // Attach the standard output + AttachStderr bool // Attach the standard error + ExposedPorts nat.PortSet `json:",omitempty"` // List of exposed ports + Tty bool // Attach standard streams to a tty, including stdin if it is not closed. + OpenStdin bool // Open stdin + StdinOnce bool // If true, close stdin after the 1 attached client disconnects. + Env []string // List of environment variable to set in the container + Cmd strslice.StrSlice // Command to run when starting the container + Healthcheck *HealthConfig `json:",omitempty"` // Healthcheck describes how to check the container is healthy + ArgsEscaped bool `json:",omitempty"` // True if command is already escaped (Windows specific) + Image string // Name of the image as it was passed by the operator (e.g. could be symbolic) + Volumes map[string]struct{} // List of volumes (mounts) used for the container + WorkingDir string // Current directory (PWD) in the command will be launched + Entrypoint strslice.StrSlice // Entrypoint to run when starting the container + NetworkDisabled bool `json:",omitempty"` // Is network disabled + MacAddress string `json:",omitempty"` // Mac Address of the container + OnBuild []string // ONBUILD metadata that were defined on the image Dockerfile + Labels map[string]string // List of labels set to this container + StopSignal string `json:",omitempty"` // Signal to stop a container + StopTimeout *int `json:",omitempty"` // Timeout (in seconds) to stop a container + Shell strslice.StrSlice `json:",omitempty"` // Shell for shell-form of RUN, CMD, ENTRYPOINT +} diff --git a/vendor/github.com/docker/docker/api/types/container/container_create.go b/vendor/github.com/docker/docker/api/types/container/container_create.go new file mode 100644 index 00000000..d028e3b1 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/container_create.go @@ -0,0 +1,21 @@ +package container + +// ---------------------------------------------------------------------------- +// DO NOT EDIT THIS FILE +// This file was generated by `swagger generate operation` +// +// See hack/swagger-gen.sh +// ---------------------------------------------------------------------------- + +// ContainerCreateCreatedBody container create created body +// swagger:model ContainerCreateCreatedBody +type ContainerCreateCreatedBody struct { + + // The ID of the created container + // Required: true + ID string `json:"Id"` + + // Warnings encountered when creating the container + // Required: true + Warnings []string `json:"Warnings"` +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/container_update.go b/vendor/github.com/docker/docker/api/types/container/container_update.go similarity index 92% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/container_update.go rename to vendor/github.com/docker/docker/api/types/container/container_update.go index 2339366f..81ee12c6 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/container_update.go +++ b/vendor/github.com/docker/docker/api/types/container/container_update.go @@ -4,7 +4,7 @@ package container // DO NOT EDIT THIS FILE // This file was generated by `swagger generate operation` // -// See hack/generate-swagger-api.sh +// See hack/swagger-gen.sh // ---------------------------------------------------------------------------- // ContainerUpdateOKBody container update o k body diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/container_wait.go b/vendor/github.com/docker/docker/api/types/container/container_wait.go similarity index 92% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/container_wait.go rename to vendor/github.com/docker/docker/api/types/container/container_wait.go index 77ecdbaf..16cf3353 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/container_wait.go +++ b/vendor/github.com/docker/docker/api/types/container/container_wait.go @@ -4,7 +4,7 @@ package container // DO NOT EDIT THIS FILE // This file was generated by `swagger generate operation` // -// See hack/generate-swagger-api.sh +// See hack/swagger-gen.sh // ---------------------------------------------------------------------------- // ContainerWaitOKBody container wait o k body diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/host_config.go b/vendor/github.com/docker/docker/api/types/container/host_config.go similarity index 89% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/host_config.go rename to vendor/github.com/docker/docker/api/types/container/host_config.go index 9fea9eb0..0c82d625 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/container/host_config.go +++ b/vendor/github.com/docker/docker/api/types/container/host_config.go @@ -10,6 +10,9 @@ import ( "github.com/docker/go-units" ) +// NetworkMode represents the container network stack. +type NetworkMode string + // Isolation represents the isolation technology of a container. The supported // values are platform specific type Isolation string @@ -63,47 +66,6 @@ func (n IpcMode) Container() string { return "" } -// NetworkMode represents the container network stack. -type NetworkMode string - -// IsNone indicates whether container isn't using a network stack. -func (n NetworkMode) IsNone() bool { - return n == "none" -} - -// IsDefault indicates whether container uses the default network stack. -func (n NetworkMode) IsDefault() bool { - return n == "default" -} - -// IsPrivate indicates whether container uses its private network stack. -func (n NetworkMode) IsPrivate() bool { - return !(n.IsHost() || n.IsContainer()) -} - -// IsContainer indicates whether container uses a container network stack. -func (n NetworkMode) IsContainer() bool { - parts := strings.SplitN(string(n), ":", 2) - return len(parts) > 1 && parts[0] == "container" -} - -// ConnectedContainer is the id of the container which network this container is connected to. -func (n NetworkMode) ConnectedContainer() string { - parts := strings.SplitN(string(n), ":", 2) - if len(parts) > 1 { - return parts[1] - } - return "" -} - -//UserDefined indicates user-created network -func (n NetworkMode) UserDefined() string { - if n.IsUserDefined() { - return string(n) - } - return "" -} - // UsernsMode represents userns mode in the container. type UsernsMode string @@ -261,17 +223,6 @@ func (rp *RestartPolicy) IsSame(tp *RestartPolicy) bool { return rp.Name == tp.Name && rp.MaximumRetryCount == tp.MaximumRetryCount } -// LogMode is a type to define the available modes for logging -// These modes affect how logs are handled when log messages start piling up. -type LogMode string - -// Available logging modes -const ( - LogModeUnset = "" - LogModeBlocking LogMode = "blocking" - LogModeNonBlock LogMode = "non-blocking" -) - // LogConfig represents the logging configuration of the container. type LogConfig struct { Type string @@ -300,7 +251,6 @@ type Resources struct { CpusetCpus string // CpusetCpus 0-2, 0,1 CpusetMems string // CpusetMems 0-2, 0,1 Devices []DeviceMapping // List of devices to map inside the container - DeviceCgroupRules []string // List of rule to be added to the device cgroup DiskQuota int64 // Disk limit (in bytes) KernelMemory int64 // Kernel memory limit (in bytes) MemoryReservation int64 // Memory soft limit (in bytes) @@ -367,7 +317,7 @@ type HostConfig struct { // Applicable to Windows ConsoleSize [2]uint // Initial console size (height,width) - Isolation Isolation // Isolation technology of the container (e.g. default, hyperv) + Isolation Isolation // Isolation technology of the container (eg default, hyperv) // Contains container's resources (cgroups, ulimits) Resources @@ -377,4 +327,7 @@ type HostConfig struct { // Run a custom init inside the container, if null, use the daemon's configured settings Init *bool `json:",omitempty"` + + // Custom init path + InitPath string `json:",omitempty"` } diff --git a/vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go b/vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go new file mode 100644 index 00000000..9fb79bed --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go @@ -0,0 +1,81 @@ +// +build !windows + +package container + +import "strings" + +// IsValid indicates if an isolation technology is valid +func (i Isolation) IsValid() bool { + return i.IsDefault() +} + +// IsPrivate indicates whether container uses its private network stack. +func (n NetworkMode) IsPrivate() bool { + return !(n.IsHost() || n.IsContainer()) +} + +// IsDefault indicates whether container uses the default network stack. +func (n NetworkMode) IsDefault() bool { + return n == "default" +} + +// NetworkName returns the name of the network stack. +func (n NetworkMode) NetworkName() string { + if n.IsBridge() { + return "bridge" + } else if n.IsHost() { + return "host" + } else if n.IsContainer() { + return "container" + } else if n.IsNone() { + return "none" + } else if n.IsDefault() { + return "default" + } else if n.IsUserDefined() { + return n.UserDefined() + } + return "" +} + +// IsBridge indicates whether container uses the bridge network stack +func (n NetworkMode) IsBridge() bool { + return n == "bridge" +} + +// IsHost indicates whether container uses the host network stack. +func (n NetworkMode) IsHost() bool { + return n == "host" +} + +// IsContainer indicates whether container uses a container network stack. +func (n NetworkMode) IsContainer() bool { + parts := strings.SplitN(string(n), ":", 2) + return len(parts) > 1 && parts[0] == "container" +} + +// IsNone indicates whether container isn't using a network stack. +func (n NetworkMode) IsNone() bool { + return n == "none" +} + +// ConnectedContainer is the id of the container which network this container is connected to. +func (n NetworkMode) ConnectedContainer() string { + parts := strings.SplitN(string(n), ":", 2) + if len(parts) > 1 { + return parts[1] + } + return "" +} + +// IsUserDefined indicates user-created network +func (n NetworkMode) IsUserDefined() bool { + return !n.IsDefault() && !n.IsBridge() && !n.IsHost() && !n.IsNone() && !n.IsContainer() +} + +//UserDefined indicates user-created network +func (n NetworkMode) UserDefined() string { + if n.IsUserDefined() { + return string(n) + } + return "" +} diff --git a/vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go b/vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go new file mode 100644 index 00000000..0ee332ba --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go @@ -0,0 +1,87 @@ +package container + +import ( + "strings" +) + +// IsDefault indicates whether container uses the default network stack. +func (n NetworkMode) IsDefault() bool { + return n == "default" +} + +// IsNone indicates whether container isn't using a network stack. +func (n NetworkMode) IsNone() bool { + return n == "none" +} + +// IsContainer indicates whether container uses a container network stack. +// Returns false as windows doesn't support this mode +func (n NetworkMode) IsContainer() bool { + return false +} + +// IsBridge indicates whether container uses the bridge network stack +// in windows it is given the name NAT +func (n NetworkMode) IsBridge() bool { + return n == "nat" +} + +// IsHost indicates whether container uses the host network stack. +// returns false as this is not supported by windows +func (n NetworkMode) IsHost() bool { + return false +} + +// IsPrivate indicates whether container uses its private network stack. +func (n NetworkMode) IsPrivate() bool { + return !(n.IsHost() || n.IsContainer()) +} + +// ConnectedContainer is the id of the container which network this container is connected to. +// Returns blank string on windows +func (n NetworkMode) ConnectedContainer() string { + return "" +} + +// IsUserDefined indicates user-created network +func (n NetworkMode) IsUserDefined() bool { + return !n.IsDefault() && !n.IsNone() && !n.IsBridge() +} + +// IsHyperV indicates the use of a Hyper-V partition for isolation +func (i Isolation) IsHyperV() bool { + return strings.ToLower(string(i)) == "hyperv" +} + +// IsProcess indicates the use of process isolation +func (i Isolation) IsProcess() bool { + return strings.ToLower(string(i)) == "process" +} + +// IsValid indicates if an isolation technology is valid +func (i Isolation) IsValid() bool { + return i.IsDefault() || i.IsHyperV() || i.IsProcess() +} + +// NetworkName returns the name of the network stack. +func (n NetworkMode) NetworkName() string { + if n.IsDefault() { + return "default" + } else if n.IsBridge() { + return "nat" + } else if n.IsNone() { + return "none" + } else if n.IsUserDefined() { + return n.UserDefined() + } + + return "" +} + +//UserDefined indicates user-created network +func (n NetworkMode) UserDefined() string { + if n.IsUserDefined() { + return string(n) + } + return "" +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/error_response.go b/vendor/github.com/docker/docker/api/types/error_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/error_response.go rename to vendor/github.com/docker/docker/api/types/error_response.go diff --git a/vendor/github.com/docker/docker/api/types/events/events.go b/vendor/github.com/docker/docker/api/types/events/events.go new file mode 100644 index 00000000..7129a65a --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/events/events.go @@ -0,0 +1,42 @@ +package events + +const ( + // ContainerEventType is the event type that containers generate + ContainerEventType = "container" + // DaemonEventType is the event type that daemon generate + DaemonEventType = "daemon" + // ImageEventType is the event type that images generate + ImageEventType = "image" + // NetworkEventType is the event type that networks generate + NetworkEventType = "network" + // PluginEventType is the event type that plugins generate + PluginEventType = "plugin" + // VolumeEventType is the event type that volumes generate + VolumeEventType = "volume" +) + +// Actor describes something that generates events, +// like a container, or a network, or a volume. +// It has a defined name and a set or attributes. +// The container attributes are its labels, other actors +// can generate these attributes from other properties. +type Actor struct { + ID string + Attributes map[string]string +} + +// Message represents the information an event contains +type Message struct { + // Deprecated information from JSONMessage. + // With data only in container events. + Status string `json:"status,omitempty"` + ID string `json:"id,omitempty"` + From string `json:"from,omitempty"` + + Type string + Action string + Actor Actor + + Time int64 `json:"time,omitempty"` + TimeNano int64 `json:"timeNano,omitempty"` +} diff --git a/vendor/github.com/docker/docker/api/types/filters/parse.go b/vendor/github.com/docker/docker/api/types/filters/parse.go new file mode 100644 index 00000000..e01a41de --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/filters/parse.go @@ -0,0 +1,310 @@ +// Package filters provides helper function to parse and handle command line +// filter, used for example in docker ps or docker images commands. +package filters + +import ( + "encoding/json" + "errors" + "fmt" + "regexp" + "strings" + + "github.com/docker/docker/api/types/versions" +) + +// Args stores filter arguments as map key:{map key: bool}. +// It contains an aggregation of the map of arguments (which are in the form +// of -f 'key=value') based on the key, and stores values for the same key +// in a map with string keys and boolean values. +// e.g given -f 'label=label1=1' -f 'label=label2=2' -f 'image.name=ubuntu' +// the args will be {"image.name":{"ubuntu":true},"label":{"label1=1":true,"label2=2":true}} +type Args struct { + fields map[string]map[string]bool +} + +// NewArgs initializes a new Args struct. +func NewArgs() Args { + return Args{fields: map[string]map[string]bool{}} +} + +// ParseFlag parses the argument to the filter flag. Like +// +// `docker ps -f 'created=today' -f 'image.name=ubuntu*'` +// +// If prev map is provided, then it is appended to, and returned. By default a new +// map is created. +func ParseFlag(arg string, prev Args) (Args, error) { + filters := prev + if len(arg) == 0 { + return filters, nil + } + + if !strings.Contains(arg, "=") { + return filters, ErrBadFormat + } + + f := strings.SplitN(arg, "=", 2) + + name := strings.ToLower(strings.TrimSpace(f[0])) + value := strings.TrimSpace(f[1]) + + filters.Add(name, value) + + return filters, nil +} + +// ErrBadFormat is an error returned in case of bad format for a filter. +var ErrBadFormat = errors.New("bad format of filter (expected name=value)") + +// ToParam packs the Args into a string for easy transport from client to server. +func ToParam(a Args) (string, error) { + // this way we don't URL encode {}, just empty space + if a.Len() == 0 { + return "", nil + } + + buf, err := json.Marshal(a.fields) + if err != nil { + return "", err + } + return string(buf), nil +} + +// ToParamWithVersion packs the Args into a string for easy transport from client to server. +// The generated string will depend on the specified version (corresponding to the API version). +func ToParamWithVersion(version string, a Args) (string, error) { + // this way we don't URL encode {}, just empty space + if a.Len() == 0 { + return "", nil + } + + // for daemons older than v1.10, filter must be of the form map[string][]string + buf := []byte{} + err := errors.New("") + if version != "" && versions.LessThan(version, "1.22") { + buf, err = json.Marshal(convertArgsToSlice(a.fields)) + } else { + buf, err = json.Marshal(a.fields) + } + if err != nil { + return "", err + } + return string(buf), nil +} + +// FromParam unpacks the filter Args. +func FromParam(p string) (Args, error) { + if len(p) == 0 { + return NewArgs(), nil + } + + r := strings.NewReader(p) + d := json.NewDecoder(r) + + m := map[string]map[string]bool{} + if err := d.Decode(&m); err != nil { + r.Seek(0, 0) + + // Allow parsing old arguments in slice format. + // Because other libraries might be sending them in this format. + deprecated := map[string][]string{} + if deprecatedErr := d.Decode(&deprecated); deprecatedErr == nil { + m = deprecatedArgs(deprecated) + } else { + return NewArgs(), err + } + } + return Args{m}, nil +} + +// Get returns the list of values associates with a field. +// It returns a slice of strings to keep backwards compatibility with old code. +func (filters Args) Get(field string) []string { + values := filters.fields[field] + if values == nil { + return make([]string, 0) + } + slice := make([]string, 0, len(values)) + for key := range values { + slice = append(slice, key) + } + return slice +} + +// Add adds a new value to a filter field. +func (filters Args) Add(name, value string) { + if _, ok := filters.fields[name]; ok { + filters.fields[name][value] = true + } else { + filters.fields[name] = map[string]bool{value: true} + } +} + +// Del removes a value from a filter field. +func (filters Args) Del(name, value string) { + if _, ok := filters.fields[name]; ok { + delete(filters.fields[name], value) + if len(filters.fields[name]) == 0 { + delete(filters.fields, name) + } + } +} + +// Len returns the number of fields in the arguments. +func (filters Args) Len() int { + return len(filters.fields) +} + +// MatchKVList returns true if the values for the specified field matches the ones +// from the sources. +// e.g. given Args are {'label': {'label1=1','label2=1'}, 'image.name', {'ubuntu'}}, +// field is 'label' and sources are {'label1': '1', 'label2': '2'} +// it returns true. +func (filters Args) MatchKVList(field string, sources map[string]string) bool { + fieldValues := filters.fields[field] + + //do not filter if there is no filter set or cannot determine filter + if len(fieldValues) == 0 { + return true + } + + if len(sources) == 0 { + return false + } + + for name2match := range fieldValues { + testKV := strings.SplitN(name2match, "=", 2) + + v, ok := sources[testKV[0]] + if !ok { + return false + } + if len(testKV) == 2 && testKV[1] != v { + return false + } + } + + return true +} + +// Match returns true if the values for the specified field matches the source string +// e.g. given Args are {'label': {'label1=1','label2=1'}, 'image.name', {'ubuntu'}}, +// field is 'image.name' and source is 'ubuntu' +// it returns true. +func (filters Args) Match(field, source string) bool { + if filters.ExactMatch(field, source) { + return true + } + + fieldValues := filters.fields[field] + for name2match := range fieldValues { + match, err := regexp.MatchString(name2match, source) + if err != nil { + continue + } + if match { + return true + } + } + return false +} + +// ExactMatch returns true if the source matches exactly one of the filters. +func (filters Args) ExactMatch(field, source string) bool { + fieldValues, ok := filters.fields[field] + //do not filter if there is no filter set or cannot determine filter + if !ok || len(fieldValues) == 0 { + return true + } + + // try to match full name value to avoid O(N) regular expression matching + return fieldValues[source] +} + +// UniqueExactMatch returns true if there is only one filter and the source matches exactly this one. +func (filters Args) UniqueExactMatch(field, source string) bool { + fieldValues := filters.fields[field] + //do not filter if there is no filter set or cannot determine filter + if len(fieldValues) == 0 { + return true + } + if len(filters.fields[field]) != 1 { + return false + } + + // try to match full name value to avoid O(N) regular expression matching + return fieldValues[source] +} + +// FuzzyMatch returns true if the source matches exactly one of the filters, +// or the source has one of the filters as a prefix. +func (filters Args) FuzzyMatch(field, source string) bool { + if filters.ExactMatch(field, source) { + return true + } + + fieldValues := filters.fields[field] + for prefix := range fieldValues { + if strings.HasPrefix(source, prefix) { + return true + } + } + return false +} + +// Include returns true if the name of the field to filter is in the filters. +func (filters Args) Include(field string) bool { + _, ok := filters.fields[field] + return ok +} + +// Validate ensures that all the fields in the filter are valid. +// It returns an error as soon as it finds an invalid field. +func (filters Args) Validate(accepted map[string]bool) error { + for name := range filters.fields { + if !accepted[name] { + return fmt.Errorf("Invalid filter '%s'", name) + } + } + return nil +} + +// WalkValues iterates over the list of filtered values for a field. +// It stops the iteration if it finds an error and it returns that error. +func (filters Args) WalkValues(field string, op func(value string) error) error { + if _, ok := filters.fields[field]; !ok { + return nil + } + for v := range filters.fields[field] { + if err := op(v); err != nil { + return err + } + } + return nil +} + +func deprecatedArgs(d map[string][]string) map[string]map[string]bool { + m := map[string]map[string]bool{} + for k, v := range d { + values := map[string]bool{} + for _, vv := range v { + values[vv] = true + } + m[k] = values + } + return m +} + +func convertArgsToSlice(f map[string]map[string]bool) map[string][]string { + m := map[string][]string{} + for k, v := range f { + values := []string{} + for kk := range v { + if v[kk] { + values = append(values, kk) + } + } + m[k] = values + } + return m +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/id_response.go b/vendor/github.com/docker/docker/api/types/id_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/id_response.go rename to vendor/github.com/docker/docker/api/types/id_response.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/image_summary.go b/vendor/github.com/docker/docker/api/types/image_summary.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/image_summary.go rename to vendor/github.com/docker/docker/api/types/image_summary.go diff --git a/vendor/github.com/docker/docker/api/types/mount/mount.go b/vendor/github.com/docker/docker/api/types/mount/mount.go new file mode 100644 index 00000000..31f2365b --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/mount/mount.go @@ -0,0 +1,113 @@ +package mount + +import ( + "os" +) + +// Type represents the type of a mount. +type Type string + +// Type constants +const ( + // TypeBind is the type for mounting host dir + TypeBind Type = "bind" + // TypeVolume is the type for remote storage volumes + TypeVolume Type = "volume" + // TypeTmpfs is the type for mounting tmpfs + TypeTmpfs Type = "tmpfs" +) + +// Mount represents a mount (volume). +type Mount struct { + Type Type `json:",omitempty"` + // Source specifies the name of the mount. Depending on mount type, this + // may be a volume name or a host path, or even ignored. + // Source is not supported for tmpfs (must be an empty value) + Source string `json:",omitempty"` + Target string `json:",omitempty"` + ReadOnly bool `json:",omitempty"` + + BindOptions *BindOptions `json:",omitempty"` + VolumeOptions *VolumeOptions `json:",omitempty"` + TmpfsOptions *TmpfsOptions `json:",omitempty"` +} + +// Propagation represents the propagation of a mount. +type Propagation string + +const ( + // PropagationRPrivate RPRIVATE + PropagationRPrivate Propagation = "rprivate" + // PropagationPrivate PRIVATE + PropagationPrivate Propagation = "private" + // PropagationRShared RSHARED + PropagationRShared Propagation = "rshared" + // PropagationShared SHARED + PropagationShared Propagation = "shared" + // PropagationRSlave RSLAVE + PropagationRSlave Propagation = "rslave" + // PropagationSlave SLAVE + PropagationSlave Propagation = "slave" +) + +// Propagations is the list of all valid mount propagations +var Propagations = []Propagation{ + PropagationRPrivate, + PropagationPrivate, + PropagationRShared, + PropagationShared, + PropagationRSlave, + PropagationSlave, +} + +// BindOptions defines options specific to mounts of type "bind". +type BindOptions struct { + Propagation Propagation `json:",omitempty"` +} + +// VolumeOptions represents the options for a mount of type volume. +type VolumeOptions struct { + NoCopy bool `json:",omitempty"` + Labels map[string]string `json:",omitempty"` + DriverConfig *Driver `json:",omitempty"` +} + +// Driver represents a volume driver. +type Driver struct { + Name string `json:",omitempty"` + Options map[string]string `json:",omitempty"` +} + +// TmpfsOptions defines options specific to mounts of type "tmpfs". +type TmpfsOptions struct { + // Size sets the size of the tmpfs, in bytes. + // + // This will be converted to an operating system specific value + // depending on the host. For example, on linux, it will be convered to + // use a 'k', 'm' or 'g' syntax. BSD, though not widely supported with + // docker, uses a straight byte value. + // + // Percentages are not supported. + SizeBytes int64 `json:",omitempty"` + // Mode of the tmpfs upon creation + Mode os.FileMode `json:",omitempty"` + + // TODO(stevvooe): There are several more tmpfs flags, specified in the + // daemon, that are accepted. Only the most basic are added for now. + // + // From docker/docker/pkg/mount/flags.go: + // + // var validFlags = map[string]bool{ + // "": true, + // "size": true, X + // "mode": true, X + // "uid": true, + // "gid": true, + // "nr_inodes": true, + // "nr_blocks": true, + // "mpol": true, + // } + // + // Some of these may be straightforward to add, but others, such as + // uid/gid have implications in a clustered system. +} diff --git a/vendor/github.com/docker/docker/api/types/network/network.go b/vendor/github.com/docker/docker/api/types/network/network.go new file mode 100644 index 00000000..832b3edb --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/network/network.go @@ -0,0 +1,59 @@ +package network + +// Address represents an IP address +type Address struct { + Addr string + PrefixLen int +} + +// IPAM represents IP Address Management +type IPAM struct { + Driver string + Options map[string]string //Per network IPAM driver options + Config []IPAMConfig +} + +// IPAMConfig represents IPAM configurations +type IPAMConfig struct { + Subnet string `json:",omitempty"` + IPRange string `json:",omitempty"` + Gateway string `json:",omitempty"` + AuxAddress map[string]string `json:"AuxiliaryAddresses,omitempty"` +} + +// EndpointIPAMConfig represents IPAM configurations for the endpoint +type EndpointIPAMConfig struct { + IPv4Address string `json:",omitempty"` + IPv6Address string `json:",omitempty"` + LinkLocalIPs []string `json:",omitempty"` +} + +// PeerInfo represents one peer of a overlay network +type PeerInfo struct { + Name string + IP string +} + +// EndpointSettings stores the network endpoint details +type EndpointSettings struct { + // Configurations + IPAMConfig *EndpointIPAMConfig + Links []string + Aliases []string + // Operational data + NetworkID string + EndpointID string + Gateway string + IPAddress string + IPPrefixLen int + IPv6Gateway string + GlobalIPv6Address string + GlobalIPv6PrefixLen int + MacAddress string +} + +// NetworkingConfig represents the container's networking configuration for each of its interfaces +// Carries the networking configs specified in the `docker run` and `docker network connect` commands +type NetworkingConfig struct { + EndpointsConfig map[string]*EndpointSettings // Endpoint configs for each connecting network +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin.go b/vendor/github.com/docker/docker/api/types/plugin.go similarity index 94% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin.go rename to vendor/github.com/docker/docker/api/types/plugin.go index ed3c2c26..6cc7a23b 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin.go +++ b/vendor/github.com/docker/docker/api/types/plugin.go @@ -42,9 +42,6 @@ type PluginConfig struct { // Required: true Description string `json:"Description"` - // Docker Version used to create the plugin - DockerVersion string `json:"DockerVersion,omitempty"` - // documentation // Required: true Documentation string `json:"Documentation"` @@ -61,10 +58,6 @@ type PluginConfig struct { // Required: true Interface PluginConfigInterface `json:"Interface"` - // ipc host - // Required: true - IpcHost bool `json:"IpcHost"` - // linux // Required: true Linux PluginConfigLinux `json:"Linux"` @@ -77,10 +70,6 @@ type PluginConfig struct { // Required: true Network PluginConfigNetwork `json:"Network"` - // pid host - // Required: true - PidHost bool `json:"PidHost"` - // propagated mount // Required: true PropagatedMount string `json:"PropagatedMount"` diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_device.go b/vendor/github.com/docker/docker/api/types/plugin_device.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_device.go rename to vendor/github.com/docker/docker/api/types/plugin_device.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_env.go b/vendor/github.com/docker/docker/api/types/plugin_env.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_env.go rename to vendor/github.com/docker/docker/api/types/plugin_env.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_interface_type.go b/vendor/github.com/docker/docker/api/types/plugin_interface_type.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_interface_type.go rename to vendor/github.com/docker/docker/api/types/plugin_interface_type.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_mount.go b/vendor/github.com/docker/docker/api/types/plugin_mount.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_mount.go rename to vendor/github.com/docker/docker/api/types/plugin_mount.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_responses.go b/vendor/github.com/docker/docker/api/types/plugin_responses.go similarity index 85% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_responses.go rename to vendor/github.com/docker/docker/api/types/plugin_responses.go index 1c6461f2..d6f75531 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/plugin_responses.go +++ b/vendor/github.com/docker/docker/api/types/plugin_responses.go @@ -3,7 +3,6 @@ package types import ( "encoding/json" "fmt" - "sort" ) // PluginsListResponse contains the response for the Engine API @@ -63,17 +62,3 @@ type PluginPrivilege struct { // PluginPrivileges is a list of PluginPrivilege type PluginPrivileges []PluginPrivilege - -func (s PluginPrivileges) Len() int { - return len(s) -} - -func (s PluginPrivileges) Less(i, j int) bool { - return s[i].Name < s[j].Name -} - -func (s PluginPrivileges) Swap(i, j int) { - sort.Strings(s[i].Value) - sort.Strings(s[j].Value) - s[i], s[j] = s[j], s[i] -} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/port.go b/vendor/github.com/docker/docker/api/types/port.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/port.go rename to vendor/github.com/docker/docker/api/types/port.go diff --git a/vendor/github.com/docker/docker/api/types/reference/image_reference.go b/vendor/github.com/docker/docker/api/types/reference/image_reference.go new file mode 100644 index 00000000..be9cf8eb --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/reference/image_reference.go @@ -0,0 +1,34 @@ +package reference + +import ( + distreference "github.com/docker/distribution/reference" +) + +// Parse parses the given references and returns the repository and +// tag (if present) from it. If there is an error during parsing, it will +// return an error. +func Parse(ref string) (string, string, error) { + distributionRef, err := distreference.ParseNamed(ref) + if err != nil { + return "", "", err + } + + tag := GetTagFromNamedRef(distributionRef) + return distributionRef.Name(), tag, nil +} + +// GetTagFromNamedRef returns a tag from the specified reference. +// This function is necessary as long as the docker "server" api makes the distinction between repository +// and tags. +func GetTagFromNamedRef(ref distreference.Named) string { + var tag string + switch x := ref.(type) { + case distreference.Digested: + tag = x.Digest().String() + case distreference.NamedTagged: + tag = x.Tag() + default: + tag = "latest" + } + return tag +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/registry/authenticate.go b/vendor/github.com/docker/docker/api/types/registry/authenticate.go similarity index 94% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/registry/authenticate.go rename to vendor/github.com/docker/docker/api/types/registry/authenticate.go index 42cac443..5e37d19b 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/registry/authenticate.go +++ b/vendor/github.com/docker/docker/api/types/registry/authenticate.go @@ -4,7 +4,7 @@ package registry // DO NOT EDIT THIS FILE // This file was generated by `swagger generate operation` // -// See hack/generate-swagger-api.sh +// See hack/swagger-gen.sh // ---------------------------------------------------------------------------- // AuthenticateOKBody authenticate o k body diff --git a/vendor/github.com/docker/docker/api/types/registry/registry.go b/vendor/github.com/docker/docker/api/types/registry/registry.go new file mode 100644 index 00000000..28fafab9 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/registry/registry.go @@ -0,0 +1,104 @@ +package registry + +import ( + "encoding/json" + "net" +) + +// ServiceConfig stores daemon registry services configuration. +type ServiceConfig struct { + InsecureRegistryCIDRs []*NetIPNet `json:"InsecureRegistryCIDRs"` + IndexConfigs map[string]*IndexInfo `json:"IndexConfigs"` + Mirrors []string +} + +// NetIPNet is the net.IPNet type, which can be marshalled and +// unmarshalled to JSON +type NetIPNet net.IPNet + +// String returns the CIDR notation of ipnet +func (ipnet *NetIPNet) String() string { + return (*net.IPNet)(ipnet).String() +} + +// MarshalJSON returns the JSON representation of the IPNet +func (ipnet *NetIPNet) MarshalJSON() ([]byte, error) { + return json.Marshal((*net.IPNet)(ipnet).String()) +} + +// UnmarshalJSON sets the IPNet from a byte array of JSON +func (ipnet *NetIPNet) UnmarshalJSON(b []byte) (err error) { + var ipnetStr string + if err = json.Unmarshal(b, &ipnetStr); err == nil { + var cidr *net.IPNet + if _, cidr, err = net.ParseCIDR(ipnetStr); err == nil { + *ipnet = NetIPNet(*cidr) + } + } + return +} + +// IndexInfo contains information about a registry +// +// RepositoryInfo Examples: +// { +// "Index" : { +// "Name" : "docker.io", +// "Mirrors" : ["https://registry-2.docker.io/v1/", "https://registry-3.docker.io/v1/"], +// "Secure" : true, +// "Official" : true, +// }, +// "RemoteName" : "library/debian", +// "LocalName" : "debian", +// "CanonicalName" : "docker.io/debian" +// "Official" : true, +// } +// +// { +// "Index" : { +// "Name" : "127.0.0.1:5000", +// "Mirrors" : [], +// "Secure" : false, +// "Official" : false, +// }, +// "RemoteName" : "user/repo", +// "LocalName" : "127.0.0.1:5000/user/repo", +// "CanonicalName" : "127.0.0.1:5000/user/repo", +// "Official" : false, +// } +type IndexInfo struct { + // Name is the name of the registry, such as "docker.io" + Name string + // Mirrors is a list of mirrors, expressed as URIs + Mirrors []string + // Secure is set to false if the registry is part of the list of + // insecure registries. Insecure registries accept HTTP and/or accept + // HTTPS with certificates from unknown CAs. + Secure bool + // Official indicates whether this is an official registry + Official bool +} + +// SearchResult describes a search result returned from a registry +type SearchResult struct { + // StarCount indicates the number of stars this repository has + StarCount int `json:"star_count"` + // IsOfficial is true if the result is from an official repository. + IsOfficial bool `json:"is_official"` + // Name is the name of the repository + Name string `json:"name"` + // IsAutomated indicates whether the result is automated + IsAutomated bool `json:"is_automated"` + // Description is a textual description of the repository + Description string `json:"description"` +} + +// SearchResults lists a collection search results returned from a registry +type SearchResults struct { + // Query contains the query string that generated the search results + Query string `json:"query"` + // NumResults indicates the number of results the query returned + NumResults int `json:"num_results"` + // Results is a slice containing the actual results for the search + Results []SearchResult `json:"results"` +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/seccomp.go b/vendor/github.com/docker/docker/api/types/seccomp.go similarity index 97% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/seccomp.go rename to vendor/github.com/docker/docker/api/types/seccomp.go index 7d62c9a4..4f02ef36 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/seccomp.go +++ b/vendor/github.com/docker/docker/api/types/seccomp.go @@ -10,7 +10,7 @@ type Seccomp struct { Syscalls []*Syscall `json:"syscalls"` } -// Architecture is used to represent a specific architecture +// Architecture is used to represent an specific architecture // and its sub-architectures type Architecture struct { Arch Arch `json:"architecture"` diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/service_update_response.go b/vendor/github.com/docker/docker/api/types/service_update_response.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/service_update_response.go rename to vendor/github.com/docker/docker/api/types/service_update_response.go diff --git a/vendor/github.com/docker/docker/api/types/stats.go b/vendor/github.com/docker/docker/api/types/stats.go new file mode 100644 index 00000000..9bf1928b --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/stats.go @@ -0,0 +1,178 @@ +// Package types is used for API stability in the types and response to the +// consumers of the API stats endpoint. +package types + +import "time" + +// ThrottlingData stores CPU throttling stats of one running container. +// Not used on Windows. +type ThrottlingData struct { + // Number of periods with throttling active + Periods uint64 `json:"periods"` + // Number of periods when the container hits its throttling limit. + ThrottledPeriods uint64 `json:"throttled_periods"` + // Aggregate time the container was throttled for in nanoseconds. + ThrottledTime uint64 `json:"throttled_time"` +} + +// CPUUsage stores All CPU stats aggregated since container inception. +type CPUUsage struct { + // Total CPU time consumed. + // Units: nanoseconds (Linux) + // Units: 100's of nanoseconds (Windows) + TotalUsage uint64 `json:"total_usage"` + + // Total CPU time consumed per core (Linux). Not used on Windows. + // Units: nanoseconds. + PercpuUsage []uint64 `json:"percpu_usage,omitempty"` + + // Time spent by tasks of the cgroup in kernel mode (Linux). + // Time spent by all container processes in kernel mode (Windows). + // Units: nanoseconds (Linux). + // Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers. + UsageInKernelmode uint64 `json:"usage_in_kernelmode"` + + // Time spent by tasks of the cgroup in user mode (Linux). + // Time spent by all container processes in user mode (Windows). + // Units: nanoseconds (Linux). + // Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers + UsageInUsermode uint64 `json:"usage_in_usermode"` +} + +// CPUStats aggregates and wraps all CPU related info of container +type CPUStats struct { + // CPU Usage. Linux and Windows. + CPUUsage CPUUsage `json:"cpu_usage"` + + // System Usage. Linux only. + SystemUsage uint64 `json:"system_cpu_usage,omitempty"` + + // Throttling Data. Linux only. + ThrottlingData ThrottlingData `json:"throttling_data,omitempty"` +} + +// MemoryStats aggregates all memory stats since container inception on Linux. +// Windows returns stats for commit and private working set only. +type MemoryStats struct { + // Linux Memory Stats + + // current res_counter usage for memory + Usage uint64 `json:"usage,omitempty"` + // maximum usage ever recorded. + MaxUsage uint64 `json:"max_usage,omitempty"` + // TODO(vishh): Export these as stronger types. + // all the stats exported via memory.stat. + Stats map[string]uint64 `json:"stats,omitempty"` + // number of times memory usage hits limits. + Failcnt uint64 `json:"failcnt,omitempty"` + Limit uint64 `json:"limit,omitempty"` + + // Windows Memory Stats + // See https://technet.microsoft.com/en-us/magazine/ff382715.aspx + + // committed bytes + Commit uint64 `json:"commitbytes,omitempty"` + // peak committed bytes + CommitPeak uint64 `json:"commitpeakbytes,omitempty"` + // private working set + PrivateWorkingSet uint64 `json:"privateworkingset,omitempty"` +} + +// BlkioStatEntry is one small entity to store a piece of Blkio stats +// Not used on Windows. +type BlkioStatEntry struct { + Major uint64 `json:"major"` + Minor uint64 `json:"minor"` + Op string `json:"op"` + Value uint64 `json:"value"` +} + +// BlkioStats stores All IO service stats for data read and write. +// This is a Linux specific structure as the differences between expressing +// block I/O on Windows and Linux are sufficiently significant to make +// little sense attempting to morph into a combined structure. +type BlkioStats struct { + // number of bytes transferred to and from the block device + IoServiceBytesRecursive []BlkioStatEntry `json:"io_service_bytes_recursive"` + IoServicedRecursive []BlkioStatEntry `json:"io_serviced_recursive"` + IoQueuedRecursive []BlkioStatEntry `json:"io_queue_recursive"` + IoServiceTimeRecursive []BlkioStatEntry `json:"io_service_time_recursive"` + IoWaitTimeRecursive []BlkioStatEntry `json:"io_wait_time_recursive"` + IoMergedRecursive []BlkioStatEntry `json:"io_merged_recursive"` + IoTimeRecursive []BlkioStatEntry `json:"io_time_recursive"` + SectorsRecursive []BlkioStatEntry `json:"sectors_recursive"` +} + +// StorageStats is the disk I/O stats for read/write on Windows. +type StorageStats struct { + ReadCountNormalized uint64 `json:"read_count_normalized,omitempty"` + ReadSizeBytes uint64 `json:"read_size_bytes,omitempty"` + WriteCountNormalized uint64 `json:"write_count_normalized,omitempty"` + WriteSizeBytes uint64 `json:"write_size_bytes,omitempty"` +} + +// NetworkStats aggregates the network stats of one container +type NetworkStats struct { + // Bytes received. Windows and Linux. + RxBytes uint64 `json:"rx_bytes"` + // Packets received. Windows and Linux. + RxPackets uint64 `json:"rx_packets"` + // Received errors. Not used on Windows. Note that we dont `omitempty` this + // field as it is expected in the >=v1.21 API stats structure. + RxErrors uint64 `json:"rx_errors"` + // Incoming packets dropped. Windows and Linux. + RxDropped uint64 `json:"rx_dropped"` + // Bytes sent. Windows and Linux. + TxBytes uint64 `json:"tx_bytes"` + // Packets sent. Windows and Linux. + TxPackets uint64 `json:"tx_packets"` + // Sent errors. Not used on Windows. Note that we dont `omitempty` this + // field as it is expected in the >=v1.21 API stats structure. + TxErrors uint64 `json:"tx_errors"` + // Outgoing packets dropped. Windows and Linux. + TxDropped uint64 `json:"tx_dropped"` + // Endpoint ID. Not used on Linux. + EndpointID string `json:"endpoint_id,omitempty"` + // Instance ID. Not used on Linux. + InstanceID string `json:"instance_id,omitempty"` +} + +// PidsStats contains the stats of a container's pids +type PidsStats struct { + // Current is the number of pids in the cgroup + Current uint64 `json:"current,omitempty"` + // Limit is the hard limit on the number of pids in the cgroup. + // A "Limit" of 0 means that there is no limit. + Limit uint64 `json:"limit,omitempty"` +} + +// Stats is Ultimate struct aggregating all types of stats of one container +type Stats struct { + // Common stats + Read time.Time `json:"read"` + PreRead time.Time `json:"preread"` + + // Linux specific stats, not populated on Windows. + PidsStats PidsStats `json:"pids_stats,omitempty"` + BlkioStats BlkioStats `json:"blkio_stats,omitempty"` + + // Windows specific stats, not populated on Linux. + NumProcs uint32 `json:"num_procs"` + StorageStats StorageStats `json:"storage_stats,omitempty"` + + // Shared stats + CPUStats CPUStats `json:"cpu_stats,omitempty"` + PreCPUStats CPUStats `json:"precpu_stats,omitempty"` // "Pre"="Previous" + MemoryStats MemoryStats `json:"memory_stats,omitempty"` +} + +// StatsJSON is newly used Networks +type StatsJSON struct { + Stats + + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` + + // Networks request version >=1.21 + Networks map[string]NetworkStats `json:"networks,omitempty"` +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/strslice/strslice.go b/vendor/github.com/docker/docker/api/types/strslice/strslice.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/strslice/strslice.go rename to vendor/github.com/docker/docker/api/types/strslice/strslice.go diff --git a/vendor/github.com/docker/docker/api/types/swarm/common.go b/vendor/github.com/docker/docker/api/types/swarm/common.go new file mode 100644 index 00000000..64a648ba --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/common.go @@ -0,0 +1,27 @@ +package swarm + +import "time" + +// Version represents the internal object version. +type Version struct { + Index uint64 `json:",omitempty"` +} + +// Meta is a base object inherited by most of the other once. +type Meta struct { + Version Version `json:",omitempty"` + CreatedAt time.Time `json:",omitempty"` + UpdatedAt time.Time `json:",omitempty"` +} + +// Annotations represents how to describe an object. +type Annotations struct { + Name string `json:",omitempty"` + Labels map[string]string `json:",omitempty"` +} + +// Driver represents a driver (network, logging). +type Driver struct { + Name string `json:",omitempty"` + Options map[string]string `json:",omitempty"` +} diff --git a/vendor/github.com/docker/docker/api/types/swarm/container.go b/vendor/github.com/docker/docker/api/types/swarm/container.go new file mode 100644 index 00000000..4ab476cc --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/container.go @@ -0,0 +1,46 @@ +package swarm + +import ( + "time" + + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/mount" +) + +// DNSConfig specifies DNS related configurations in resolver configuration file (resolv.conf) +// Detailed documentation is available in: +// http://man7.org/linux/man-pages/man5/resolv.conf.5.html +// `nameserver`, `search`, `options` have been supported. +// TODO: `domain` is not supported yet. +type DNSConfig struct { + // Nameservers specifies the IP addresses of the name servers + Nameservers []string `json:",omitempty"` + // Search specifies the search list for host-name lookup + Search []string `json:",omitempty"` + // Options allows certain internal resolver variables to be modified + Options []string `json:",omitempty"` +} + +// ContainerSpec represents the spec of a container. +type ContainerSpec struct { + Image string `json:",omitempty"` + Labels map[string]string `json:",omitempty"` + Command []string `json:",omitempty"` + Args []string `json:",omitempty"` + Hostname string `json:",omitempty"` + Env []string `json:",omitempty"` + Dir string `json:",omitempty"` + User string `json:",omitempty"` + Groups []string `json:",omitempty"` + TTY bool `json:",omitempty"` + OpenStdin bool `json:",omitempty"` + Mounts []mount.Mount `json:",omitempty"` + StopGracePeriod *time.Duration `json:",omitempty"` + Healthcheck *container.HealthConfig `json:",omitempty"` + // The format of extra hosts on swarmkit is specified in: + // http://man7.org/linux/man-pages/man5/hosts.5.html + // IP_address canonical_hostname [aliases...] + Hosts []string `json:",omitempty"` + DNSConfig *DNSConfig `json:",omitempty"` + Secrets []*SecretReference `json:",omitempty"` +} diff --git a/vendor/github.com/docker/docker/api/types/swarm/network.go b/vendor/github.com/docker/docker/api/types/swarm/network.go new file mode 100644 index 00000000..5a5e11bd --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/network.go @@ -0,0 +1,111 @@ +package swarm + +// Endpoint represents an endpoint. +type Endpoint struct { + Spec EndpointSpec `json:",omitempty"` + Ports []PortConfig `json:",omitempty"` + VirtualIPs []EndpointVirtualIP `json:",omitempty"` +} + +// EndpointSpec represents the spec of an endpoint. +type EndpointSpec struct { + Mode ResolutionMode `json:",omitempty"` + Ports []PortConfig `json:",omitempty"` +} + +// ResolutionMode represents a resolution mode. +type ResolutionMode string + +const ( + // ResolutionModeVIP VIP + ResolutionModeVIP ResolutionMode = "vip" + // ResolutionModeDNSRR DNSRR + ResolutionModeDNSRR ResolutionMode = "dnsrr" +) + +// PortConfig represents the config of a port. +type PortConfig struct { + Name string `json:",omitempty"` + Protocol PortConfigProtocol `json:",omitempty"` + // TargetPort is the port inside the container + TargetPort uint32 `json:",omitempty"` + // PublishedPort is the port on the swarm hosts + PublishedPort uint32 `json:",omitempty"` + // PublishMode is the mode in which port is published + PublishMode PortConfigPublishMode `json:",omitempty"` +} + +// PortConfigPublishMode represents the mode in which the port is to +// be published. +type PortConfigPublishMode string + +const ( + // PortConfigPublishModeIngress is used for ports published + // for ingress load balancing using routing mesh. + PortConfigPublishModeIngress PortConfigPublishMode = "ingress" + // PortConfigPublishModeHost is used for ports published + // for direct host level access on the host where the task is running. + PortConfigPublishModeHost PortConfigPublishMode = "host" +) + +// PortConfigProtocol represents the protocol of a port. +type PortConfigProtocol string + +const ( + // TODO(stevvooe): These should be used generally, not just for PortConfig. + + // PortConfigProtocolTCP TCP + PortConfigProtocolTCP PortConfigProtocol = "tcp" + // PortConfigProtocolUDP UDP + PortConfigProtocolUDP PortConfigProtocol = "udp" +) + +// EndpointVirtualIP represents the virtual ip of a port. +type EndpointVirtualIP struct { + NetworkID string `json:",omitempty"` + Addr string `json:",omitempty"` +} + +// Network represents a network. +type Network struct { + ID string + Meta + Spec NetworkSpec `json:",omitempty"` + DriverState Driver `json:",omitempty"` + IPAMOptions *IPAMOptions `json:",omitempty"` +} + +// NetworkSpec represents the spec of a network. +type NetworkSpec struct { + Annotations + DriverConfiguration *Driver `json:",omitempty"` + IPv6Enabled bool `json:",omitempty"` + Internal bool `json:",omitempty"` + Attachable bool `json:",omitempty"` + IPAMOptions *IPAMOptions `json:",omitempty"` +} + +// NetworkAttachmentConfig represents the configuration of a network attachment. +type NetworkAttachmentConfig struct { + Target string `json:",omitempty"` + Aliases []string `json:",omitempty"` +} + +// NetworkAttachment represents a network attachment. +type NetworkAttachment struct { + Network Network `json:",omitempty"` + Addresses []string `json:",omitempty"` +} + +// IPAMOptions represents ipam options. +type IPAMOptions struct { + Driver Driver `json:",omitempty"` + Configs []IPAMConfig `json:",omitempty"` +} + +// IPAMConfig represents ipam configuration. +type IPAMConfig struct { + Subnet string `json:",omitempty"` + Range string `json:",omitempty"` + Gateway string `json:",omitempty"` +} diff --git a/vendor/github.com/docker/docker/api/types/swarm/node.go b/vendor/github.com/docker/docker/api/types/swarm/node.go new file mode 100644 index 00000000..379e17a7 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/node.go @@ -0,0 +1,114 @@ +package swarm + +// Node represents a node. +type Node struct { + ID string + Meta + // Spec defines the desired state of the node as specified by the user. + // The system will honor this and will *never* modify it. + Spec NodeSpec `json:",omitempty"` + // Description encapsulates the properties of the Node as reported by the + // agent. + Description NodeDescription `json:",omitempty"` + // Status provides the current status of the node, as seen by the manager. + Status NodeStatus `json:",omitempty"` + // ManagerStatus provides the current status of the node's manager + // component, if the node is a manager. + ManagerStatus *ManagerStatus `json:",omitempty"` +} + +// NodeSpec represents the spec of a node. +type NodeSpec struct { + Annotations + Role NodeRole `json:",omitempty"` + Availability NodeAvailability `json:",omitempty"` +} + +// NodeRole represents the role of a node. +type NodeRole string + +const ( + // NodeRoleWorker WORKER + NodeRoleWorker NodeRole = "worker" + // NodeRoleManager MANAGER + NodeRoleManager NodeRole = "manager" +) + +// NodeAvailability represents the availability of a node. +type NodeAvailability string + +const ( + // NodeAvailabilityActive ACTIVE + NodeAvailabilityActive NodeAvailability = "active" + // NodeAvailabilityPause PAUSE + NodeAvailabilityPause NodeAvailability = "pause" + // NodeAvailabilityDrain DRAIN + NodeAvailabilityDrain NodeAvailability = "drain" +) + +// NodeDescription represents the description of a node. +type NodeDescription struct { + Hostname string `json:",omitempty"` + Platform Platform `json:",omitempty"` + Resources Resources `json:",omitempty"` + Engine EngineDescription `json:",omitempty"` +} + +// Platform represents the platform (Arch/OS). +type Platform struct { + Architecture string `json:",omitempty"` + OS string `json:",omitempty"` +} + +// EngineDescription represents the description of an engine. +type EngineDescription struct { + EngineVersion string `json:",omitempty"` + Labels map[string]string `json:",omitempty"` + Plugins []PluginDescription `json:",omitempty"` +} + +// PluginDescription represents the description of an engine plugin. +type PluginDescription struct { + Type string `json:",omitempty"` + Name string `json:",omitempty"` +} + +// NodeStatus represents the status of a node. +type NodeStatus struct { + State NodeState `json:",omitempty"` + Message string `json:",omitempty"` + Addr string `json:",omitempty"` +} + +// Reachability represents the reachability of a node. +type Reachability string + +const ( + // ReachabilityUnknown UNKNOWN + ReachabilityUnknown Reachability = "unknown" + // ReachabilityUnreachable UNREACHABLE + ReachabilityUnreachable Reachability = "unreachable" + // ReachabilityReachable REACHABLE + ReachabilityReachable Reachability = "reachable" +) + +// ManagerStatus represents the status of a manager. +type ManagerStatus struct { + Leader bool `json:",omitempty"` + Reachability Reachability `json:",omitempty"` + Addr string `json:",omitempty"` +} + +// NodeState represents the state of a node. +type NodeState string + +const ( + // NodeStateUnknown UNKNOWN + NodeStateUnknown NodeState = "unknown" + // NodeStateDown DOWN + NodeStateDown NodeState = "down" + // NodeStateReady READY + NodeStateReady NodeState = "ready" + // NodeStateDisconnected DISCONNECTED + NodeStateDisconnected NodeState = "disconnected" +) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/swarm/secret.go b/vendor/github.com/docker/docker/api/types/swarm/secret.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/swarm/secret.go rename to vendor/github.com/docker/docker/api/types/swarm/secret.go diff --git a/vendor/github.com/docker/docker/api/types/swarm/service.go b/vendor/github.com/docker/docker/api/types/swarm/service.go new file mode 100644 index 00000000..2cf2642c --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/service.go @@ -0,0 +1,105 @@ +package swarm + +import "time" + +// Service represents a service. +type Service struct { + ID string + Meta + Spec ServiceSpec `json:",omitempty"` + PreviousSpec *ServiceSpec `json:",omitempty"` + Endpoint Endpoint `json:",omitempty"` + UpdateStatus UpdateStatus `json:",omitempty"` +} + +// ServiceSpec represents the spec of a service. +type ServiceSpec struct { + Annotations + + // TaskTemplate defines how the service should construct new tasks when + // orchestrating this service. + TaskTemplate TaskSpec `json:",omitempty"` + Mode ServiceMode `json:",omitempty"` + UpdateConfig *UpdateConfig `json:",omitempty"` + + // Networks field in ServiceSpec is deprecated. The + // same field in TaskSpec should be used instead. + // This field will be removed in a future release. + Networks []NetworkAttachmentConfig `json:",omitempty"` + EndpointSpec *EndpointSpec `json:",omitempty"` +} + +// ServiceMode represents the mode of a service. +type ServiceMode struct { + Replicated *ReplicatedService `json:",omitempty"` + Global *GlobalService `json:",omitempty"` +} + +// UpdateState is the state of a service update. +type UpdateState string + +const ( + // UpdateStateUpdating is the updating state. + UpdateStateUpdating UpdateState = "updating" + // UpdateStatePaused is the paused state. + UpdateStatePaused UpdateState = "paused" + // UpdateStateCompleted is the completed state. + UpdateStateCompleted UpdateState = "completed" +) + +// UpdateStatus reports the status of a service update. +type UpdateStatus struct { + State UpdateState `json:",omitempty"` + StartedAt time.Time `json:",omitempty"` + CompletedAt time.Time `json:",omitempty"` + Message string `json:",omitempty"` +} + +// ReplicatedService is a kind of ServiceMode. +type ReplicatedService struct { + Replicas *uint64 `json:",omitempty"` +} + +// GlobalService is a kind of ServiceMode. +type GlobalService struct{} + +const ( + // UpdateFailureActionPause PAUSE + UpdateFailureActionPause = "pause" + // UpdateFailureActionContinue CONTINUE + UpdateFailureActionContinue = "continue" +) + +// UpdateConfig represents the update configuration. +type UpdateConfig struct { + // Maximum number of tasks to be updated in one iteration. + // 0 means unlimited parallelism. + Parallelism uint64 + + // Amount of time between updates. + Delay time.Duration `json:",omitempty"` + + // FailureAction is the action to take when an update failures. + FailureAction string `json:",omitempty"` + + // Monitor indicates how long to monitor a task for failure after it is + // created. If the task fails by ending up in one of the states + // REJECTED, COMPLETED, or FAILED, within Monitor from its creation, + // this counts as a failure. If it fails after Monitor, it does not + // count as a failure. If Monitor is unspecified, a default value will + // be used. + Monitor time.Duration `json:",omitempty"` + + // MaxFailureRatio is the fraction of tasks that may fail during + // an update before the failure action is invoked. Any task created by + // the current update which ends up in one of the states REJECTED, + // COMPLETED or FAILED within Monitor from its creation counts as a + // failure. The number of failures is divided by the number of tasks + // being updated, and if this fraction is greater than + // MaxFailureRatio, the failure action is invoked. + // + // If the failure action is CONTINUE, there is no effect. + // If the failure action is PAUSE, no more tasks will be updated until + // another update is started. + MaxFailureRatio float32 +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/swarm/swarm.go b/vendor/github.com/docker/docker/api/types/swarm/swarm.go similarity index 86% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/swarm/swarm.go rename to vendor/github.com/docker/docker/api/types/swarm/swarm.go index 5b74f14b..0b422196 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/swarm/swarm.go +++ b/vendor/github.com/docker/docker/api/types/swarm/swarm.go @@ -7,9 +7,7 @@ import "time" type ClusterInfo struct { ID string Meta - Spec Spec - TLSInfo TLSInfo - RootRotationInProgress bool + Spec Spec } // Swarm represents a swarm. @@ -109,16 +107,6 @@ type CAConfig struct { // ExternalCAs is a list of CAs to which a manager node will make // certificate signing requests for node certificates. ExternalCAs []*ExternalCA `json:",omitempty"` - - // SigningCACert and SigningCAKey specify the desired signing root CA and - // root CA key for the swarm. When inspecting the cluster, the key will - // be redacted. - SigningCACert string `json:",omitempty"` - SigningCAKey string `json:",omitempty"` - - // If this value changes, and there is no specified signing cert and key, - // then the swarm is forced to generate a new root certificate ane key. - ForceRotate uint64 `json:",omitempty"` } // ExternalCAProtocol represents type of external CA. @@ -138,31 +126,23 @@ type ExternalCA struct { // Options is a set of additional key/value pairs whose interpretation // depends on the specified CA type. Options map[string]string `json:",omitempty"` - - // CACert specifies which root CA is used by this external CA. This certificate must - // be in PEM format. - CACert string } // InitRequest is the request used to init a swarm. type InitRequest struct { ListenAddr string AdvertiseAddr string - DataPathAddr string ForceNewCluster bool Spec Spec AutoLockManagers bool - Availability NodeAvailability } // JoinRequest is the request used to join a swarm. type JoinRequest struct { ListenAddr string AdvertiseAddr string - DataPathAddr string RemoteAddrs []string JoinToken string // accept by secret - Availability NodeAvailability } // UnlockRequest is the request used to unlock a swarm. @@ -197,10 +177,10 @@ type Info struct { Error string RemoteManagers []Peer - Nodes int `json:",omitempty"` - Managers int `json:",omitempty"` + Nodes int + Managers int - Cluster *ClusterInfo `json:",omitempty"` + Cluster ClusterInfo } // Peer represents a peer. diff --git a/vendor/github.com/docker/docker/api/types/swarm/task.go b/vendor/github.com/docker/docker/api/types/swarm/task.go new file mode 100644 index 00000000..ace12cc8 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/swarm/task.go @@ -0,0 +1,128 @@ +package swarm + +import "time" + +// TaskState represents the state of a task. +type TaskState string + +const ( + // TaskStateNew NEW + TaskStateNew TaskState = "new" + // TaskStateAllocated ALLOCATED + TaskStateAllocated TaskState = "allocated" + // TaskStatePending PENDING + TaskStatePending TaskState = "pending" + // TaskStateAssigned ASSIGNED + TaskStateAssigned TaskState = "assigned" + // TaskStateAccepted ACCEPTED + TaskStateAccepted TaskState = "accepted" + // TaskStatePreparing PREPARING + TaskStatePreparing TaskState = "preparing" + // TaskStateReady READY + TaskStateReady TaskState = "ready" + // TaskStateStarting STARTING + TaskStateStarting TaskState = "starting" + // TaskStateRunning RUNNING + TaskStateRunning TaskState = "running" + // TaskStateComplete COMPLETE + TaskStateComplete TaskState = "complete" + // TaskStateShutdown SHUTDOWN + TaskStateShutdown TaskState = "shutdown" + // TaskStateFailed FAILED + TaskStateFailed TaskState = "failed" + // TaskStateRejected REJECTED + TaskStateRejected TaskState = "rejected" +) + +// Task represents a task. +type Task struct { + ID string + Meta + Annotations + + Spec TaskSpec `json:",omitempty"` + ServiceID string `json:",omitempty"` + Slot int `json:",omitempty"` + NodeID string `json:",omitempty"` + Status TaskStatus `json:",omitempty"` + DesiredState TaskState `json:",omitempty"` + NetworksAttachments []NetworkAttachment `json:",omitempty"` +} + +// TaskSpec represents the spec of a task. +type TaskSpec struct { + ContainerSpec ContainerSpec `json:",omitempty"` + Resources *ResourceRequirements `json:",omitempty"` + RestartPolicy *RestartPolicy `json:",omitempty"` + Placement *Placement `json:",omitempty"` + Networks []NetworkAttachmentConfig `json:",omitempty"` + + // LogDriver specifies the LogDriver to use for tasks created from this + // spec. If not present, the one on cluster default on swarm.Spec will be + // used, finally falling back to the engine default if not specified. + LogDriver *Driver `json:",omitempty"` + + // ForceUpdate is a counter that triggers an update even if no relevant + // parameters have been changed. + ForceUpdate uint64 +} + +// Resources represents resources (CPU/Memory). +type Resources struct { + NanoCPUs int64 `json:",omitempty"` + MemoryBytes int64 `json:",omitempty"` +} + +// ResourceRequirements represents resources requirements. +type ResourceRequirements struct { + Limits *Resources `json:",omitempty"` + Reservations *Resources `json:",omitempty"` +} + +// Placement represents orchestration parameters. +type Placement struct { + Constraints []string `json:",omitempty"` +} + +// RestartPolicy represents the restart policy. +type RestartPolicy struct { + Condition RestartPolicyCondition `json:",omitempty"` + Delay *time.Duration `json:",omitempty"` + MaxAttempts *uint64 `json:",omitempty"` + Window *time.Duration `json:",omitempty"` +} + +// RestartPolicyCondition represents when to restart. +type RestartPolicyCondition string + +const ( + // RestartPolicyConditionNone NONE + RestartPolicyConditionNone RestartPolicyCondition = "none" + // RestartPolicyConditionOnFailure ON_FAILURE + RestartPolicyConditionOnFailure RestartPolicyCondition = "on-failure" + // RestartPolicyConditionAny ANY + RestartPolicyConditionAny RestartPolicyCondition = "any" +) + +// TaskStatus represents the status of a task. +type TaskStatus struct { + Timestamp time.Time `json:",omitempty"` + State TaskState `json:",omitempty"` + Message string `json:",omitempty"` + Err string `json:",omitempty"` + ContainerStatus ContainerStatus `json:",omitempty"` + PortStatus PortStatus `json:",omitempty"` +} + +// ContainerStatus represents the status of a container. +type ContainerStatus struct { + ContainerID string `json:",omitempty"` + PID int `json:",omitempty"` + ExitCode int `json:",omitempty"` +} + +// PortStatus represents the port status of a task's host ports whose +// service has published host ports +type PortStatus struct { + Ports []PortConfig `json:",omitempty"` +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/time/duration_convert.go b/vendor/github.com/docker/docker/api/types/time/duration_convert.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/time/duration_convert.go rename to vendor/github.com/docker/docker/api/types/time/duration_convert.go diff --git a/vendor/github.com/docker/docker/api/types/time/timestamp.go b/vendor/github.com/docker/docker/api/types/time/timestamp.go new file mode 100644 index 00000000..d3695ba7 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/time/timestamp.go @@ -0,0 +1,124 @@ +package time + +import ( + "fmt" + "math" + "strconv" + "strings" + "time" +) + +// These are additional predefined layouts for use in Time.Format and Time.Parse +// with --since and --until parameters for `docker logs` and `docker events` +const ( + rFC3339Local = "2006-01-02T15:04:05" // RFC3339 with local timezone + rFC3339NanoLocal = "2006-01-02T15:04:05.999999999" // RFC3339Nano with local timezone + dateWithZone = "2006-01-02Z07:00" // RFC3339 with time at 00:00:00 + dateLocal = "2006-01-02" // RFC3339 with local timezone and time at 00:00:00 +) + +// GetTimestamp tries to parse given string as golang duration, +// then RFC3339 time and finally as a Unix timestamp. If +// any of these were successful, it returns a Unix timestamp +// as string otherwise returns the given value back. +// In case of duration input, the returned timestamp is computed +// as the given reference time minus the amount of the duration. +func GetTimestamp(value string, reference time.Time) (string, error) { + if d, err := time.ParseDuration(value); value != "0" && err == nil { + return strconv.FormatInt(reference.Add(-d).Unix(), 10), nil + } + + var format string + var parseInLocation bool + + // if the string has a Z or a + or three dashes use parse otherwise use parseinlocation + parseInLocation = !(strings.ContainsAny(value, "zZ+") || strings.Count(value, "-") == 3) + + if strings.Contains(value, ".") { + if parseInLocation { + format = rFC3339NanoLocal + } else { + format = time.RFC3339Nano + } + } else if strings.Contains(value, "T") { + // we want the number of colons in the T portion of the timestamp + tcolons := strings.Count(value, ":") + // if parseInLocation is off and we have a +/- zone offset (not Z) then + // there will be an extra colon in the input for the tz offset subtract that + // colon from the tcolons count + if !parseInLocation && !strings.ContainsAny(value, "zZ") && tcolons > 0 { + tcolons-- + } + if parseInLocation { + switch tcolons { + case 0: + format = "2006-01-02T15" + case 1: + format = "2006-01-02T15:04" + default: + format = rFC3339Local + } + } else { + switch tcolons { + case 0: + format = "2006-01-02T15Z07:00" + case 1: + format = "2006-01-02T15:04Z07:00" + default: + format = time.RFC3339 + } + } + } else if parseInLocation { + format = dateLocal + } else { + format = dateWithZone + } + + var t time.Time + var err error + + if parseInLocation { + t, err = time.ParseInLocation(format, value, time.FixedZone(reference.Zone())) + } else { + t, err = time.Parse(format, value) + } + + if err != nil { + // if there is a `-` then its an RFC3339 like timestamp otherwise assume unixtimestamp + if strings.Contains(value, "-") { + return "", err // was probably an RFC3339 like timestamp but the parser failed with an error + } + return value, nil // unixtimestamp in and out case (meaning: the value passed at the command line is already in the right format for passing to the server) + } + + return fmt.Sprintf("%d.%09d", t.Unix(), int64(t.Nanosecond())), nil +} + +// ParseTimestamps returns seconds and nanoseconds from a timestamp that has the +// format "%d.%09d", time.Unix(), int64(time.Nanosecond())) +// if the incoming nanosecond portion is longer or shorter than 9 digits it is +// converted to nanoseconds. The expectation is that the seconds and +// seconds will be used to create a time variable. For example: +// seconds, nanoseconds, err := ParseTimestamp("1136073600.000000001",0) +// if err == nil since := time.Unix(seconds, nanoseconds) +// returns seconds as def(aultSeconds) if value == "" +func ParseTimestamps(value string, def int64) (int64, int64, error) { + if value == "" { + return def, 0, nil + } + sa := strings.SplitN(value, ".", 2) + s, err := strconv.ParseInt(sa[0], 10, 64) + if err != nil { + return s, 0, err + } + if len(sa) != 2 { + return s, 0, nil + } + n, err := strconv.ParseInt(sa[1], 10, 64) + if err != nil { + return s, n, err + } + // should already be in nanoseconds but just in case convert n to nanoseonds + n = int64(float64(n) * math.Pow(float64(10), float64(9-len(sa[1])))) + return s, n, nil +} diff --git a/vendor/github.com/docker/docker/api/types/types.go b/vendor/github.com/docker/docker/api/types/types.go new file mode 100644 index 00000000..a82c3e88 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/types.go @@ -0,0 +1,549 @@ +package types + +import ( + "errors" + "fmt" + "io" + "os" + "strings" + "time" + + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/api/types/mount" + "github.com/docker/docker/api/types/network" + "github.com/docker/docker/api/types/registry" + "github.com/docker/docker/api/types/swarm" + "github.com/docker/go-connections/nat" +) + +// ContainerChange contains response of Engine API: +// GET "/containers/{name:.*}/changes" +type ContainerChange struct { + Kind int + Path string +} + +// ImageHistory contains response of Engine API: +// GET "/images/{name:.*}/history" +type ImageHistory struct { + ID string `json:"Id"` + Created int64 + CreatedBy string + Tags []string + Size int64 + Comment string +} + +// ImageDelete contains response of Engine API: +// DELETE "/images/{name:.*}" +type ImageDelete struct { + Untagged string `json:",omitempty"` + Deleted string `json:",omitempty"` +} + +// GraphDriverData returns Image's graph driver config info +// when calling inspect command +type GraphDriverData struct { + Name string + Data map[string]string +} + +// RootFS returns Image's RootFS description including the layer IDs. +type RootFS struct { + Type string + Layers []string `json:",omitempty"` + BaseLayer string `json:",omitempty"` +} + +// ImageInspect contains response of Engine API: +// GET "/images/{name:.*}/json" +type ImageInspect struct { + ID string `json:"Id"` + RepoTags []string + RepoDigests []string + Parent string + Comment string + Created string + Container string + ContainerConfig *container.Config + DockerVersion string + Author string + Config *container.Config + Architecture string + Os string + OsVersion string `json:",omitempty"` + Size int64 + VirtualSize int64 + GraphDriver GraphDriverData + RootFS RootFS +} + +// Container contains response of Engine API: +// GET "/containers/json" +type Container struct { + ID string `json:"Id"` + Names []string + Image string + ImageID string + Command string + Created int64 + Ports []Port + SizeRw int64 `json:",omitempty"` + SizeRootFs int64 `json:",omitempty"` + Labels map[string]string + State string + Status string + HostConfig struct { + NetworkMode string `json:",omitempty"` + } + NetworkSettings *SummaryNetworkSettings + Mounts []MountPoint +} + +// CopyConfig contains request body of Engine API: +// POST "/containers/"+containerID+"/copy" +type CopyConfig struct { + Resource string +} + +// ContainerPathStat is used to encode the header from +// GET "/containers/{name:.*}/archive" +// "Name" is the file or directory name. +type ContainerPathStat struct { + Name string `json:"name"` + Size int64 `json:"size"` + Mode os.FileMode `json:"mode"` + Mtime time.Time `json:"mtime"` + LinkTarget string `json:"linkTarget"` +} + +// ContainerStats contains response of Engine API: +// GET "/stats" +type ContainerStats struct { + Body io.ReadCloser `json:"body"` + OSType string `json:"ostype"` +} + +// ContainerProcessList contains response of Engine API: +// GET "/containers/{name:.*}/top" +type ContainerProcessList struct { + Processes [][]string + Titles []string +} + +// Ping contains response of Engine API: +// GET "/_ping" +type Ping struct { + APIVersion string + Experimental bool +} + +// Version contains response of Engine API: +// GET "/version" +type Version struct { + Version string + APIVersion string `json:"ApiVersion"` + MinAPIVersion string `json:"MinAPIVersion,omitempty"` + GitCommit string + GoVersion string + Os string + Arch string + KernelVersion string `json:",omitempty"` + Experimental bool `json:",omitempty"` + BuildTime string `json:",omitempty"` +} + +// Commit records a external tool actual commit id version along the +// one expect by dockerd as set at build time +type Commit struct { + ID string + Expected string +} + +// Info contains response of Engine API: +// GET "/info" +type Info struct { + ID string + Containers int + ContainersRunning int + ContainersPaused int + ContainersStopped int + Images int + Driver string + DriverStatus [][2]string + SystemStatus [][2]string + Plugins PluginsInfo + MemoryLimit bool + SwapLimit bool + KernelMemory bool + CPUCfsPeriod bool `json:"CpuCfsPeriod"` + CPUCfsQuota bool `json:"CpuCfsQuota"` + CPUShares bool + CPUSet bool + IPv4Forwarding bool + BridgeNfIptables bool + BridgeNfIP6tables bool `json:"BridgeNfIp6tables"` + Debug bool + NFd int + OomKillDisable bool + NGoroutines int + SystemTime string + LoggingDriver string + CgroupDriver string + NEventsListener int + KernelVersion string + OperatingSystem string + OSType string + Architecture string + IndexServerAddress string + RegistryConfig *registry.ServiceConfig + NCPU int + MemTotal int64 + DockerRootDir string + HTTPProxy string `json:"HttpProxy"` + HTTPSProxy string `json:"HttpsProxy"` + NoProxy string + Name string + Labels []string + ExperimentalBuild bool + ServerVersion string + ClusterStore string + ClusterAdvertise string + Runtimes map[string]Runtime + DefaultRuntime string + Swarm swarm.Info + // LiveRestoreEnabled determines whether containers should be kept + // running when the daemon is shutdown or upon daemon start if + // running containers are detected + LiveRestoreEnabled bool + Isolation container.Isolation + InitBinary string + ContainerdCommit Commit + RuncCommit Commit + InitCommit Commit + SecurityOptions []string +} + +// KeyValue holds a key/value pair +type KeyValue struct { + Key, Value string +} + +// SecurityOpt contains the name and options of a security option +type SecurityOpt struct { + Name string + Options []KeyValue +} + +// DecodeSecurityOptions decodes a security options string slice to a type safe +// SecurityOpt +func DecodeSecurityOptions(opts []string) ([]SecurityOpt, error) { + so := []SecurityOpt{} + for _, opt := range opts { + // support output from a < 1.13 docker daemon + if !strings.Contains(opt, "=") { + so = append(so, SecurityOpt{Name: opt}) + continue + } + secopt := SecurityOpt{} + split := strings.Split(opt, ",") + for _, s := range split { + kv := strings.SplitN(s, "=", 2) + if len(kv) != 2 { + return nil, fmt.Errorf("invalid security option %q", s) + } + if kv[0] == "" || kv[1] == "" { + return nil, errors.New("invalid empty security option") + } + if kv[0] == "name" { + secopt.Name = kv[1] + continue + } + secopt.Options = append(secopt.Options, KeyValue{Key: kv[0], Value: kv[1]}) + } + so = append(so, secopt) + } + return so, nil +} + +// PluginsInfo is a temp struct holding Plugins name +// registered with docker daemon. It is used by Info struct +type PluginsInfo struct { + // List of Volume plugins registered + Volume []string + // List of Network plugins registered + Network []string + // List of Authorization plugins registered + Authorization []string +} + +// ExecStartCheck is a temp struct used by execStart +// Config fields is part of ExecConfig in runconfig package +type ExecStartCheck struct { + // ExecStart will first check if it's detached + Detach bool + // Check if there's a tty + Tty bool +} + +// HealthcheckResult stores information about a single run of a healthcheck probe +type HealthcheckResult struct { + Start time.Time // Start is the time this check started + End time.Time // End is the time this check ended + ExitCode int // ExitCode meanings: 0=healthy, 1=unhealthy, 2=reserved (considered unhealthy), else=error running probe + Output string // Output from last check +} + +// Health states +const ( + NoHealthcheck = "none" // Indicates there is no healthcheck + Starting = "starting" // Starting indicates that the container is not yet ready + Healthy = "healthy" // Healthy indicates that the container is running correctly + Unhealthy = "unhealthy" // Unhealthy indicates that the container has a problem +) + +// Health stores information about the container's healthcheck results +type Health struct { + Status string // Status is one of Starting, Healthy or Unhealthy + FailingStreak int // FailingStreak is the number of consecutive failures + Log []*HealthcheckResult // Log contains the last few results (oldest first) +} + +// ContainerState stores container's running state +// it's part of ContainerJSONBase and will return by "inspect" command +type ContainerState struct { + Status string + Running bool + Paused bool + Restarting bool + OOMKilled bool + Dead bool + Pid int + ExitCode int + Error string + StartedAt string + FinishedAt string + Health *Health `json:",omitempty"` +} + +// ContainerNode stores information about the node that a container +// is running on. It's only available in Docker Swarm +type ContainerNode struct { + ID string + IPAddress string `json:"IP"` + Addr string + Name string + Cpus int + Memory int64 + Labels map[string]string +} + +// ContainerJSONBase contains response of Engine API: +// GET "/containers/{name:.*}/json" +type ContainerJSONBase struct { + ID string `json:"Id"` + Created string + Path string + Args []string + State *ContainerState + Image string + ResolvConfPath string + HostnamePath string + HostsPath string + LogPath string + Node *ContainerNode `json:",omitempty"` + Name string + RestartCount int + Driver string + MountLabel string + ProcessLabel string + AppArmorProfile string + ExecIDs []string + HostConfig *container.HostConfig + GraphDriver GraphDriverData + SizeRw *int64 `json:",omitempty"` + SizeRootFs *int64 `json:",omitempty"` +} + +// ContainerJSON is newly used struct along with MountPoint +type ContainerJSON struct { + *ContainerJSONBase + Mounts []MountPoint + Config *container.Config + NetworkSettings *NetworkSettings +} + +// NetworkSettings exposes the network settings in the api +type NetworkSettings struct { + NetworkSettingsBase + DefaultNetworkSettings + Networks map[string]*network.EndpointSettings +} + +// SummaryNetworkSettings provides a summary of container's networks +// in /containers/json +type SummaryNetworkSettings struct { + Networks map[string]*network.EndpointSettings +} + +// NetworkSettingsBase holds basic information about networks +type NetworkSettingsBase struct { + Bridge string // Bridge is the Bridge name the network uses(e.g. `docker0`) + SandboxID string // SandboxID uniquely represents a container's network stack + HairpinMode bool // HairpinMode specifies if hairpin NAT should be enabled on the virtual interface + LinkLocalIPv6Address string // LinkLocalIPv6Address is an IPv6 unicast address using the link-local prefix + LinkLocalIPv6PrefixLen int // LinkLocalIPv6PrefixLen is the prefix length of an IPv6 unicast address + Ports nat.PortMap // Ports is a collection of PortBinding indexed by Port + SandboxKey string // SandboxKey identifies the sandbox + SecondaryIPAddresses []network.Address + SecondaryIPv6Addresses []network.Address +} + +// DefaultNetworkSettings holds network information +// during the 2 release deprecation period. +// It will be removed in Docker 1.11. +type DefaultNetworkSettings struct { + EndpointID string // EndpointID uniquely represents a service endpoint in a Sandbox + Gateway string // Gateway holds the gateway address for the network + GlobalIPv6Address string // GlobalIPv6Address holds network's global IPv6 address + GlobalIPv6PrefixLen int // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address + IPAddress string // IPAddress holds the IPv4 address for the network + IPPrefixLen int // IPPrefixLen represents mask length of network's IPv4 address + IPv6Gateway string // IPv6Gateway holds gateway address specific for IPv6 + MacAddress string // MacAddress holds the MAC address for the network +} + +// MountPoint represents a mount point configuration inside the container. +// This is used for reporting the mountpoints in use by a container. +type MountPoint struct { + Type mount.Type `json:",omitempty"` + Name string `json:",omitempty"` + Source string + Destination string + Driver string `json:",omitempty"` + Mode string + RW bool + Propagation mount.Propagation +} + +// NetworkResource is the body of the "get network" http response message +type NetworkResource struct { + Name string // Name is the requested name of the network + ID string `json:"Id"` // ID uniquely identifies a network on a single machine + Created time.Time // Created is the time the network created + Scope string // Scope describes the level at which the network exists (e.g. `global` for cluster-wide or `local` for machine level) + Driver string // Driver is the Driver name used to create the network (e.g. `bridge`, `overlay`) + EnableIPv6 bool // EnableIPv6 represents whether to enable IPv6 + IPAM network.IPAM // IPAM is the network's IP Address Management + Internal bool // Internal represents if the network is used internal only + Attachable bool // Attachable represents if the global scope is manually attachable by regular containers from workers in swarm mode. + Containers map[string]EndpointResource // Containers contains endpoints belonging to the network + Options map[string]string // Options holds the network specific options to use for when creating the network + Labels map[string]string // Labels holds metadata specific to the network being created + Peers []network.PeerInfo `json:",omitempty"` // List of peer nodes for an overlay network +} + +// EndpointResource contains network resources allocated and used for a container in a network +type EndpointResource struct { + Name string + EndpointID string + MacAddress string + IPv4Address string + IPv6Address string +} + +// NetworkCreate is the expected body of the "create network" http request message +type NetworkCreate struct { + CheckDuplicate bool + Driver string + EnableIPv6 bool + IPAM *network.IPAM + Internal bool + Attachable bool + Options map[string]string + Labels map[string]string +} + +// NetworkCreateRequest is the request message sent to the server for network create call. +type NetworkCreateRequest struct { + NetworkCreate + Name string +} + +// NetworkCreateResponse is the response message sent by the server for network create call +type NetworkCreateResponse struct { + ID string `json:"Id"` + Warning string +} + +// NetworkConnect represents the data to be used to connect a container to the network +type NetworkConnect struct { + Container string + EndpointConfig *network.EndpointSettings `json:",omitempty"` +} + +// NetworkDisconnect represents the data to be used to disconnect a container from the network +type NetworkDisconnect struct { + Container string + Force bool +} + +// Checkpoint represents the details of a checkpoint +type Checkpoint struct { + Name string // Name is the name of the checkpoint +} + +// Runtime describes an OCI runtime +type Runtime struct { + Path string `json:"path"` + Args []string `json:"runtimeArgs,omitempty"` +} + +// DiskUsage contains response of Engine API: +// GET "/system/df" +type DiskUsage struct { + LayersSize int64 + Images []*ImageSummary + Containers []*Container + Volumes []*Volume +} + +// ContainersPruneReport contains the response for Engine API: +// POST "/containers/prune" +type ContainersPruneReport struct { + ContainersDeleted []string + SpaceReclaimed uint64 +} + +// VolumesPruneReport contains the response for Engine API: +// POST "/volumes/prune" +type VolumesPruneReport struct { + VolumesDeleted []string + SpaceReclaimed uint64 +} + +// ImagesPruneReport contains the response for Engine API: +// POST "/images/prune" +type ImagesPruneReport struct { + ImagesDeleted []ImageDelete + SpaceReclaimed uint64 +} + +// NetworksPruneReport contains the response for Engine API: +// POST "/networks/prune" +type NetworksPruneReport struct { + NetworksDeleted []string +} + +// SecretCreateResponse contains the information returned to a client +// on the creation of a new secret. +type SecretCreateResponse struct { + // ID is the id of the created secret. + ID string +} + +// SecretListOptions holds parameters to list secrets +type SecretListOptions struct { + Filters filters.Args +} diff --git a/vendor/github.com/docker/docker/api/types/versions/README.md b/vendor/github.com/docker/docker/api/types/versions/README.md new file mode 100644 index 00000000..cdac50a5 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/versions/README.md @@ -0,0 +1,14 @@ +## Legacy API type versions + +This package includes types for legacy API versions. The stable version of the API types live in `api/types/*.go`. + +Consider moving a type here when you need to keep backwards compatibility in the API. This legacy types are organized by the latest API version they appear in. For instance, types in the `v1p19` package are valid for API versions below or equal `1.19`. Types in the `v1p20` package are valid for the API version `1.20`, since the versions below that will use the legacy types in `v1p19`. + +### Package name conventions + +The package name convention is to use `v` as a prefix for the version number and `p`(patch) as a separator. We use this nomenclature due to a few restrictions in the Go package name convention: + +1. We cannot use `.` because it's interpreted by the language, think of `v1.20.CallFunction`. +2. We cannot use `_` because golint complains about it. The code is actually valid, but it looks probably more weird: `v1_20.CallFunction`. + +For instance, if you want to modify a type that was available in the version `1.21` of the API but it will have different fields in the version `1.22`, you want to create a new package under `api/types/versions/v1p21`. diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/versions/compare.go b/vendor/github.com/docker/docker/api/types/versions/compare.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/versions/compare.go rename to vendor/github.com/docker/docker/api/types/versions/compare.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume.go b/vendor/github.com/docker/docker/api/types/volume.go similarity index 95% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume.go rename to vendor/github.com/docker/docker/api/types/volume.go index a69b0cfb..da4f8ebd 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume.go +++ b/vendor/github.com/docker/docker/api/types/volume.go @@ -7,9 +7,6 @@ package types // swagger:model Volume type Volume struct { - // Time volume was created. - CreatedAt string `json:"CreatedAt,omitempty"` - // Name of the volume driver used by the volume. // Required: true Driver string `json:"Driver"` diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume/volumes_create.go b/vendor/github.com/docker/docker/api/types/volume/volumes_create.go similarity index 96% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume/volumes_create.go rename to vendor/github.com/docker/docker/api/types/volume/volumes_create.go index 9f70e43c..679c1600 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume/volumes_create.go +++ b/vendor/github.com/docker/docker/api/types/volume/volumes_create.go @@ -4,7 +4,7 @@ package volume // DO NOT EDIT THIS FILE // This file was generated by `swagger generate operation` // -// See hack/generate-swagger-api.sh +// See hack/swagger-gen.sh // ---------------------------------------------------------------------------- // VolumesCreateBody volumes create body diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume/volumes_list.go b/vendor/github.com/docker/docker/api/types/volume/volumes_list.go similarity index 94% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume/volumes_list.go rename to vendor/github.com/docker/docker/api/types/volume/volumes_list.go index 833dad93..7770bcb8 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/api/types/volume/volumes_list.go +++ b/vendor/github.com/docker/docker/api/types/volume/volumes_list.go @@ -4,7 +4,7 @@ package volume // DO NOT EDIT THIS FILE // This file was generated by `swagger generate operation` // -// See hack/generate-swagger-api.sh +// See hack/swagger-gen.sh // ---------------------------------------------------------------------------- import "github.com/docker/docker/api/types" diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/README.md b/vendor/github.com/docker/docker/client/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/README.md rename to vendor/github.com/docker/docker/client/README.md diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/checkpoint_create.go b/vendor/github.com/docker/docker/client/checkpoint_create.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/checkpoint_create.go rename to vendor/github.com/docker/docker/client/checkpoint_create.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/checkpoint_delete.go b/vendor/github.com/docker/docker/client/checkpoint_delete.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/checkpoint_delete.go rename to vendor/github.com/docker/docker/client/checkpoint_delete.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/checkpoint_list.go b/vendor/github.com/docker/docker/client/checkpoint_list.go similarity index 75% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/checkpoint_list.go rename to vendor/github.com/docker/docker/client/checkpoint_list.go index ffe44bc9..8eb720a6 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/checkpoint_list.go +++ b/vendor/github.com/docker/docker/client/checkpoint_list.go @@ -2,14 +2,13 @@ package client import ( "encoding/json" - "net/http" "net/url" "github.com/docker/docker/api/types" "golang.org/x/net/context" ) -// CheckpointList returns the checkpoints of the given container in the docker host +// CheckpointList returns the volumes configured in the docker host. func (cli *Client) CheckpointList(ctx context.Context, container string, options types.CheckpointListOptions) ([]types.Checkpoint, error) { var checkpoints []types.Checkpoint @@ -20,9 +19,6 @@ func (cli *Client) CheckpointList(ctx context.Context, container string, options resp, err := cli.get(ctx, "/containers/"+container+"/checkpoints", query, nil) if err != nil { - if resp.statusCode == http.StatusNotFound { - return checkpoints, containerNotFoundError{container} - } return checkpoints, err } diff --git a/vendor/github.com/docker/docker/client/client.go b/vendor/github.com/docker/docker/client/client.go new file mode 100644 index 00000000..a9bdab6b --- /dev/null +++ b/vendor/github.com/docker/docker/client/client.go @@ -0,0 +1,246 @@ +/* +Package client is a Go client for the Docker Engine API. + +The "docker" command uses this package to communicate with the daemon. It can also +be used by your own Go applications to do anything the command-line interface does +– running containers, pulling images, managing swarms, etc. + +For more information about the Engine API, see the documentation: +https://docs.docker.com/engine/reference/api/ + +Usage + +You use the library by creating a client object and calling methods on it. The +client can be created either from environment variables with NewEnvClient, or +configured manually with NewClient. + +For example, to list running containers (the equivalent of "docker ps"): + + package main + + import ( + "context" + "fmt" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/client" + ) + + func main() { + cli, err := client.NewEnvClient() + if err != nil { + panic(err) + } + + containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) + if err != nil { + panic(err) + } + + for _, container := range containers { + fmt.Printf("%s %s\n", container.ID[:10], container.Image) + } + } + +*/ +package client + +import ( + "fmt" + "net/http" + "net/url" + "os" + "path/filepath" + "strings" + + "github.com/docker/go-connections/sockets" + "github.com/docker/go-connections/tlsconfig" +) + +// DefaultVersion is the version of the current stable API +const DefaultVersion string = "1.25" + +// Client is the API client that performs all operations +// against a docker server. +type Client struct { + // scheme sets the scheme for the client + scheme string + // host holds the server address to connect to + host string + // proto holds the client protocol i.e. unix. + proto string + // addr holds the client address. + addr string + // basePath holds the path to prepend to the requests. + basePath string + // client used to send and receive http requests. + client *http.Client + // version of the server to talk to. + version string + // custom http headers configured by users. + customHTTPHeaders map[string]string + // manualOverride is set to true when the version was set by users. + manualOverride bool +} + +// NewEnvClient initializes a new API client based on environment variables. +// Use DOCKER_HOST to set the url to the docker server. +// Use DOCKER_API_VERSION to set the version of the API to reach, leave empty for latest. +// Use DOCKER_CERT_PATH to load the tls certificates from. +// Use DOCKER_TLS_VERIFY to enable or disable TLS verification, off by default. +func NewEnvClient() (*Client, error) { + var client *http.Client + if dockerCertPath := os.Getenv("DOCKER_CERT_PATH"); dockerCertPath != "" { + options := tlsconfig.Options{ + CAFile: filepath.Join(dockerCertPath, "ca.pem"), + CertFile: filepath.Join(dockerCertPath, "cert.pem"), + KeyFile: filepath.Join(dockerCertPath, "key.pem"), + InsecureSkipVerify: os.Getenv("DOCKER_TLS_VERIFY") == "", + } + tlsc, err := tlsconfig.Client(options) + if err != nil { + return nil, err + } + + client = &http.Client{ + Transport: &http.Transport{ + TLSClientConfig: tlsc, + }, + } + } + + host := os.Getenv("DOCKER_HOST") + if host == "" { + host = DefaultDockerHost + } + version := os.Getenv("DOCKER_API_VERSION") + if version == "" { + version = DefaultVersion + } + + cli, err := NewClient(host, version, client, nil) + if err != nil { + return cli, err + } + if os.Getenv("DOCKER_API_VERSION") != "" { + cli.manualOverride = true + } + return cli, nil +} + +// NewClient initializes a new API client for the given host and API version. +// It uses the given http client as transport. +// It also initializes the custom http headers to add to each request. +// +// It won't send any version information if the version number is empty. It is +// highly recommended that you set a version or your client may break if the +// server is upgraded. +func NewClient(host string, version string, client *http.Client, httpHeaders map[string]string) (*Client, error) { + proto, addr, basePath, err := ParseHost(host) + if err != nil { + return nil, err + } + + if client != nil { + if _, ok := client.Transport.(*http.Transport); !ok { + return nil, fmt.Errorf("unable to verify TLS configuration, invalid transport %v", client.Transport) + } + } else { + transport := new(http.Transport) + sockets.ConfigureTransport(transport, proto, addr) + client = &http.Client{ + Transport: transport, + } + } + + scheme := "http" + tlsConfig := resolveTLSConfig(client.Transport) + if tlsConfig != nil { + // TODO(stevvooe): This isn't really the right way to write clients in Go. + // `NewClient` should probably only take an `*http.Client` and work from there. + // Unfortunately, the model of having a host-ish/url-thingy as the connection + // string has us confusing protocol and transport layers. We continue doing + // this to avoid breaking existing clients but this should be addressed. + scheme = "https" + } + + return &Client{ + scheme: scheme, + host: host, + proto: proto, + addr: addr, + basePath: basePath, + client: client, + version: version, + customHTTPHeaders: httpHeaders, + }, nil +} + +// Close ensures that transport.Client is closed +// especially needed while using NewClient with *http.Client = nil +// for example +// client.NewClient("unix:///var/run/docker.sock", nil, "v1.18", map[string]string{"User-Agent": "engine-api-cli-1.0"}) +func (cli *Client) Close() error { + + if t, ok := cli.client.Transport.(*http.Transport); ok { + t.CloseIdleConnections() + } + + return nil +} + +// getAPIPath returns the versioned request path to call the api. +// It appends the query parameters to the path if they are not empty. +func (cli *Client) getAPIPath(p string, query url.Values) string { + var apiPath string + if cli.version != "" { + v := strings.TrimPrefix(cli.version, "v") + apiPath = fmt.Sprintf("%s/v%s%s", cli.basePath, v, p) + } else { + apiPath = fmt.Sprintf("%s%s", cli.basePath, p) + } + + u := &url.URL{ + Path: apiPath, + } + if len(query) > 0 { + u.RawQuery = query.Encode() + } + return u.String() +} + +// ClientVersion returns the version string associated with this +// instance of the Client. Note that this value can be changed +// via the DOCKER_API_VERSION env var. +func (cli *Client) ClientVersion() string { + return cli.version +} + +// UpdateClientVersion updates the version string associated with this +// instance of the Client. +func (cli *Client) UpdateClientVersion(v string) { + if !cli.manualOverride { + cli.version = v + } + +} + +// ParseHost verifies that the given host strings is valid. +func ParseHost(host string) (string, string, string, error) { + protoAddrParts := strings.SplitN(host, "://", 2) + if len(protoAddrParts) == 1 { + return "", "", "", fmt.Errorf("unable to parse docker host `%s`", host) + } + + var basePath string + proto, addr := protoAddrParts[0], protoAddrParts[1] + if proto == "tcp" { + parsed, err := url.Parse("tcp://" + addr) + if err != nil { + return "", "", "", err + } + addr = parsed.Host + basePath = parsed.Path + } + return proto, addr, basePath, nil +} diff --git a/vendor/github.com/docker/docker/client/client_unix.go b/vendor/github.com/docker/docker/client/client_unix.go new file mode 100644 index 00000000..89de892c --- /dev/null +++ b/vendor/github.com/docker/docker/client/client_unix.go @@ -0,0 +1,6 @@ +// +build linux freebsd solaris openbsd darwin + +package client + +// DefaultDockerHost defines os specific default if DOCKER_HOST is unset +const DefaultDockerHost = "unix:///var/run/docker.sock" diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/client_windows.go b/vendor/github.com/docker/docker/client/client_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/client_windows.go rename to vendor/github.com/docker/docker/client/client_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_attach.go b/vendor/github.com/docker/docker/client/container_attach.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_attach.go rename to vendor/github.com/docker/docker/client/container_attach.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_commit.go b/vendor/github.com/docker/docker/client/container_commit.go similarity index 76% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_commit.go rename to vendor/github.com/docker/docker/client/container_commit.go index 531d796e..c766d62e 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_commit.go +++ b/vendor/github.com/docker/docker/client/container_commit.go @@ -5,8 +5,9 @@ import ( "errors" "net/url" - "github.com/docker/distribution/reference" + distreference "github.com/docker/distribution/reference" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/reference" "golang.org/x/net/context" ) @@ -14,20 +15,17 @@ import ( func (cli *Client) ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error) { var repository, tag string if options.Reference != "" { - ref, err := reference.ParseNormalizedNamed(options.Reference) + distributionRef, err := distreference.ParseNamed(options.Reference) if err != nil { return types.IDResponse{}, err } - if _, isCanonical := ref.(reference.Canonical); isCanonical { + if _, isCanonical := distributionRef.(distreference.Canonical); isCanonical { return types.IDResponse{}, errors.New("refusing to create a tag with a digest reference") } - ref = reference.TagNameOnly(ref) - if tagged, ok := ref.(reference.Tagged); ok { - tag = tagged.Tag() - } - repository = reference.FamiliarName(ref) + tag = reference.GetTagFromNamedRef(distributionRef) + repository = distributionRef.Name() } query := url.Values{} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_copy.go b/vendor/github.com/docker/docker/client/container_copy.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_copy.go rename to vendor/github.com/docker/docker/client/container_copy.go diff --git a/vendor/github.com/docker/docker/client/container_create.go b/vendor/github.com/docker/docker/client/container_create.go new file mode 100644 index 00000000..9f627aaf --- /dev/null +++ b/vendor/github.com/docker/docker/client/container_create.go @@ -0,0 +1,50 @@ +package client + +import ( + "encoding/json" + "net/url" + "strings" + + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/network" + "golang.org/x/net/context" +) + +type configWrapper struct { + *container.Config + HostConfig *container.HostConfig + NetworkingConfig *network.NetworkingConfig +} + +// ContainerCreate creates a new container based in the given configuration. +// It can be associated with a name, but it's not mandatory. +func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error) { + var response container.ContainerCreateCreatedBody + + if err := cli.NewVersionError("1.25", "stop timeout"); config != nil && config.StopTimeout != nil && err != nil { + return response, err + } + + query := url.Values{} + if containerName != "" { + query.Set("name", containerName) + } + + body := configWrapper{ + Config: config, + HostConfig: hostConfig, + NetworkingConfig: networkingConfig, + } + + serverResp, err := cli.post(ctx, "/containers/create", query, body, nil) + if err != nil { + if serverResp.statusCode == 404 && strings.Contains(err.Error(), "No such image") { + return response, imageNotFoundError{config.Image} + } + return response, err + } + + err = json.NewDecoder(serverResp.body).Decode(&response) + ensureReaderClosed(serverResp) + return response, err +} diff --git a/vendor/github.com/docker/docker/client/container_diff.go b/vendor/github.com/docker/docker/client/container_diff.go new file mode 100644 index 00000000..1e3e554f --- /dev/null +++ b/vendor/github.com/docker/docker/client/container_diff.go @@ -0,0 +1,23 @@ +package client + +import ( + "encoding/json" + "net/url" + + "github.com/docker/docker/api/types" + "golang.org/x/net/context" +) + +// ContainerDiff shows differences in a container filesystem since it was started. +func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]types.ContainerChange, error) { + var changes []types.ContainerChange + + serverResp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil) + if err != nil { + return changes, err + } + + err = json.NewDecoder(serverResp.body).Decode(&changes) + ensureReaderClosed(serverResp) + return changes, err +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_exec.go b/vendor/github.com/docker/docker/client/container_exec.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_exec.go rename to vendor/github.com/docker/docker/client/container_exec.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_export.go b/vendor/github.com/docker/docker/client/container_export.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_export.go rename to vendor/github.com/docker/docker/client/container_export.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_inspect.go b/vendor/github.com/docker/docker/client/container_inspect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_inspect.go rename to vendor/github.com/docker/docker/client/container_inspect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_kill.go b/vendor/github.com/docker/docker/client/container_kill.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_kill.go rename to vendor/github.com/docker/docker/client/container_kill.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_list.go b/vendor/github.com/docker/docker/client/container_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_list.go rename to vendor/github.com/docker/docker/client/container_list.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_logs.go b/vendor/github.com/docker/docker/client/container_logs.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_logs.go rename to vendor/github.com/docker/docker/client/container_logs.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_pause.go b/vendor/github.com/docker/docker/client/container_pause.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_pause.go rename to vendor/github.com/docker/docker/client/container_pause.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_prune.go b/vendor/github.com/docker/docker/client/container_prune.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_prune.go rename to vendor/github.com/docker/docker/client/container_prune.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_remove.go b/vendor/github.com/docker/docker/client/container_remove.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_remove.go rename to vendor/github.com/docker/docker/client/container_remove.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_rename.go b/vendor/github.com/docker/docker/client/container_rename.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_rename.go rename to vendor/github.com/docker/docker/client/container_rename.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_resize.go b/vendor/github.com/docker/docker/client/container_resize.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_resize.go rename to vendor/github.com/docker/docker/client/container_resize.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_restart.go b/vendor/github.com/docker/docker/client/container_restart.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_restart.go rename to vendor/github.com/docker/docker/client/container_restart.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_start.go b/vendor/github.com/docker/docker/client/container_start.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_start.go rename to vendor/github.com/docker/docker/client/container_start.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_stats.go b/vendor/github.com/docker/docker/client/container_stats.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_stats.go rename to vendor/github.com/docker/docker/client/container_stats.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_stop.go b/vendor/github.com/docker/docker/client/container_stop.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_stop.go rename to vendor/github.com/docker/docker/client/container_stop.go diff --git a/vendor/github.com/docker/docker/client/container_top.go b/vendor/github.com/docker/docker/client/container_top.go new file mode 100644 index 00000000..4e7270ea --- /dev/null +++ b/vendor/github.com/docker/docker/client/container_top.go @@ -0,0 +1,28 @@ +package client + +import ( + "encoding/json" + "net/url" + "strings" + + "github.com/docker/docker/api/types" + "golang.org/x/net/context" +) + +// ContainerTop shows process information from within a container. +func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (types.ContainerProcessList, error) { + var response types.ContainerProcessList + query := url.Values{} + if len(arguments) > 0 { + query.Set("ps_args", strings.Join(arguments, " ")) + } + + resp, err := cli.get(ctx, "/containers/"+containerID+"/top", query, nil) + if err != nil { + return response, err + } + + err = json.NewDecoder(resp.body).Decode(&response) + ensureReaderClosed(resp) + return response, err +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_unpause.go b/vendor/github.com/docker/docker/client/container_unpause.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_unpause.go rename to vendor/github.com/docker/docker/client/container_unpause.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_update.go b/vendor/github.com/docker/docker/client/container_update.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_update.go rename to vendor/github.com/docker/docker/client/container_update.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_wait.go b/vendor/github.com/docker/docker/client/container_wait.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/container_wait.go rename to vendor/github.com/docker/docker/client/container_wait.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/disk_usage.go b/vendor/github.com/docker/docker/client/disk_usage.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/disk_usage.go rename to vendor/github.com/docker/docker/client/disk_usage.go diff --git a/vendor/github.com/docker/docker/client/errors.go b/vendor/github.com/docker/docker/client/errors.go new file mode 100644 index 00000000..bf6923f1 --- /dev/null +++ b/vendor/github.com/docker/docker/client/errors.go @@ -0,0 +1,278 @@ +package client + +import ( + "fmt" + + "github.com/docker/docker/api/types/versions" + "github.com/pkg/errors" +) + +// errConnectionFailed implements an error returned when connection failed. +type errConnectionFailed struct { + host string +} + +// Error returns a string representation of an errConnectionFailed +func (err errConnectionFailed) Error() string { + if err.host == "" { + return "Cannot connect to the Docker daemon. Is the docker daemon running on this host?" + } + return fmt.Sprintf("Cannot connect to the Docker daemon at %s. Is the docker daemon running?", err.host) +} + +// IsErrConnectionFailed returns true if the error is caused by connection failed. +func IsErrConnectionFailed(err error) bool { + _, ok := errors.Cause(err).(errConnectionFailed) + return ok +} + +// ErrorConnectionFailed returns an error with host in the error message when connection to docker daemon failed. +func ErrorConnectionFailed(host string) error { + return errConnectionFailed{host: host} +} + +type notFound interface { + error + NotFound() bool // Is the error a NotFound error +} + +// IsErrNotFound returns true if the error is caused with an +// object (image, container, network, volume, …) is not found in the docker host. +func IsErrNotFound(err error) bool { + te, ok := err.(notFound) + return ok && te.NotFound() +} + +// imageNotFoundError implements an error returned when an image is not in the docker host. +type imageNotFoundError struct { + imageID string +} + +// NotFound indicates that this error type is of NotFound +func (e imageNotFoundError) NotFound() bool { + return true +} + +// Error returns a string representation of an imageNotFoundError +func (e imageNotFoundError) Error() string { + return fmt.Sprintf("Error: No such image: %s", e.imageID) +} + +// IsErrImageNotFound returns true if the error is caused +// when an image is not found in the docker host. +func IsErrImageNotFound(err error) bool { + return IsErrNotFound(err) +} + +// containerNotFoundError implements an error returned when a container is not in the docker host. +type containerNotFoundError struct { + containerID string +} + +// NotFound indicates that this error type is of NotFound +func (e containerNotFoundError) NotFound() bool { + return true +} + +// Error returns a string representation of a containerNotFoundError +func (e containerNotFoundError) Error() string { + return fmt.Sprintf("Error: No such container: %s", e.containerID) +} + +// IsErrContainerNotFound returns true if the error is caused +// when a container is not found in the docker host. +func IsErrContainerNotFound(err error) bool { + return IsErrNotFound(err) +} + +// networkNotFoundError implements an error returned when a network is not in the docker host. +type networkNotFoundError struct { + networkID string +} + +// NotFound indicates that this error type is of NotFound +func (e networkNotFoundError) NotFound() bool { + return true +} + +// Error returns a string representation of a networkNotFoundError +func (e networkNotFoundError) Error() string { + return fmt.Sprintf("Error: No such network: %s", e.networkID) +} + +// IsErrNetworkNotFound returns true if the error is caused +// when a network is not found in the docker host. +func IsErrNetworkNotFound(err error) bool { + return IsErrNotFound(err) +} + +// volumeNotFoundError implements an error returned when a volume is not in the docker host. +type volumeNotFoundError struct { + volumeID string +} + +// NotFound indicates that this error type is of NotFound +func (e volumeNotFoundError) NotFound() bool { + return true +} + +// Error returns a string representation of a volumeNotFoundError +func (e volumeNotFoundError) Error() string { + return fmt.Sprintf("Error: No such volume: %s", e.volumeID) +} + +// IsErrVolumeNotFound returns true if the error is caused +// when a volume is not found in the docker host. +func IsErrVolumeNotFound(err error) bool { + return IsErrNotFound(err) +} + +// unauthorizedError represents an authorization error in a remote registry. +type unauthorizedError struct { + cause error +} + +// Error returns a string representation of an unauthorizedError +func (u unauthorizedError) Error() string { + return u.cause.Error() +} + +// IsErrUnauthorized returns true if the error is caused +// when a remote registry authentication fails +func IsErrUnauthorized(err error) bool { + _, ok := err.(unauthorizedError) + return ok +} + +// nodeNotFoundError implements an error returned when a node is not found. +type nodeNotFoundError struct { + nodeID string +} + +// Error returns a string representation of a nodeNotFoundError +func (e nodeNotFoundError) Error() string { + return fmt.Sprintf("Error: No such node: %s", e.nodeID) +} + +// NotFound indicates that this error type is of NotFound +func (e nodeNotFoundError) NotFound() bool { + return true +} + +// IsErrNodeNotFound returns true if the error is caused +// when a node is not found. +func IsErrNodeNotFound(err error) bool { + _, ok := err.(nodeNotFoundError) + return ok +} + +// serviceNotFoundError implements an error returned when a service is not found. +type serviceNotFoundError struct { + serviceID string +} + +// Error returns a string representation of a serviceNotFoundError +func (e serviceNotFoundError) Error() string { + return fmt.Sprintf("Error: No such service: %s", e.serviceID) +} + +// NotFound indicates that this error type is of NotFound +func (e serviceNotFoundError) NotFound() bool { + return true +} + +// IsErrServiceNotFound returns true if the error is caused +// when a service is not found. +func IsErrServiceNotFound(err error) bool { + _, ok := err.(serviceNotFoundError) + return ok +} + +// taskNotFoundError implements an error returned when a task is not found. +type taskNotFoundError struct { + taskID string +} + +// Error returns a string representation of a taskNotFoundError +func (e taskNotFoundError) Error() string { + return fmt.Sprintf("Error: No such task: %s", e.taskID) +} + +// NotFound indicates that this error type is of NotFound +func (e taskNotFoundError) NotFound() bool { + return true +} + +// IsErrTaskNotFound returns true if the error is caused +// when a task is not found. +func IsErrTaskNotFound(err error) bool { + _, ok := err.(taskNotFoundError) + return ok +} + +type pluginPermissionDenied struct { + name string +} + +func (e pluginPermissionDenied) Error() string { + return "Permission denied while installing plugin " + e.name +} + +// IsErrPluginPermissionDenied returns true if the error is caused +// when a user denies a plugin's permissions +func IsErrPluginPermissionDenied(err error) bool { + _, ok := err.(pluginPermissionDenied) + return ok +} + +// NewVersionError returns an error if the APIVersion required +// if less than the current supported version +func (cli *Client) NewVersionError(APIrequired, feature string) error { + if versions.LessThan(cli.version, APIrequired) { + return fmt.Errorf("%q requires API version %s, but the Docker server is version %s", feature, APIrequired, cli.version) + } + return nil +} + +// secretNotFoundError implements an error returned when a secret is not found. +type secretNotFoundError struct { + name string +} + +// Error returns a string representation of a secretNotFoundError +func (e secretNotFoundError) Error() string { + return fmt.Sprintf("Error: no such secret: %s", e.name) +} + +// NoFound indicates that this error type is of NotFound +func (e secretNotFoundError) NotFound() bool { + return true +} + +// IsErrSecretNotFound returns true if the error is caused +// when a secret is not found. +func IsErrSecretNotFound(err error) bool { + _, ok := err.(secretNotFoundError) + return ok +} + +// pluginNotFoundError implements an error returned when a plugin is not in the docker host. +type pluginNotFoundError struct { + name string +} + +// NotFound indicates that this error type is of NotFound +func (e pluginNotFoundError) NotFound() bool { + return true +} + +// Error returns a string representation of a pluginNotFoundError +func (e pluginNotFoundError) Error() string { + return fmt.Sprintf("Error: No such plugin: %s", e.name) +} + +// IsErrPluginNotFound returns true if the error is caused +// when a plugin is not found in the docker host. +func IsErrPluginNotFound(err error) bool { + return IsErrNotFound(err) +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/events.go b/vendor/github.com/docker/docker/client/events.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/events.go rename to vendor/github.com/docker/docker/client/events.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/hijack.go b/vendor/github.com/docker/docker/client/hijack.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/hijack.go rename to vendor/github.com/docker/docker/client/hijack.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_build.go b/vendor/github.com/docker/docker/client/image_build.go similarity index 96% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_build.go rename to vendor/github.com/docker/docker/client/image_build.go index bb69143e..6fde75dc 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_build.go +++ b/vendor/github.com/docker/docker/client/image_build.go @@ -29,7 +29,7 @@ func (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, optio return types.ImageBuildResponse{}, err } headers.Add("X-Registry-Config", base64.URLEncoding.EncodeToString(buf)) - headers.Set("Content-Type", "application/x-tar") + headers.Set("Content-Type", "application/tar") serverResp, err := cli.postRaw(ctx, "/build", query, buildContext, headers) if err != nil { @@ -48,7 +48,6 @@ func (cli *Client) imageBuildOptionsToQuery(options types.ImageBuildOptions) (ur query := url.Values{ "t": options.Tags, "securityopt": options.SecurityOpt, - "extrahosts": options.ExtraHosts, } if options.SuppressOutput { query.Set("q", "1") @@ -95,7 +94,6 @@ func (cli *Client) imageBuildOptionsToQuery(options types.ImageBuildOptions) (ur query.Set("cgroupparent", options.CgroupParent) query.Set("shmsize", strconv.FormatInt(options.ShmSize, 10)) query.Set("dockerfile", options.Dockerfile) - query.Set("target", options.Target) ulimitsJSON, err := json.Marshal(options.Ulimits) if err != nil { diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_create.go b/vendor/github.com/docker/docker/client/image_create.go similarity index 79% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_create.go rename to vendor/github.com/docker/docker/client/image_create.go index 4436abb0..cf023a71 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_create.go +++ b/vendor/github.com/docker/docker/client/image_create.go @@ -6,21 +6,21 @@ import ( "golang.org/x/net/context" - "github.com/docker/distribution/reference" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/reference" ) // ImageCreate creates a new image based in the parent options. // It returns the JSON content in the response body. func (cli *Client) ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error) { - ref, err := reference.ParseNormalizedNamed(parentReference) + repository, tag, err := reference.Parse(parentReference) if err != nil { return nil, err } query := url.Values{} - query.Set("fromImage", reference.FamiliarName(ref)) - query.Set("tag", getAPITagFromNamedRef(ref)) + query.Set("fromImage", repository) + query.Set("tag", tag) resp, err := cli.tryImageCreate(ctx, query, options.RegistryAuth) if err != nil { return nil, err diff --git a/vendor/github.com/docker/docker/client/image_history.go b/vendor/github.com/docker/docker/client/image_history.go new file mode 100644 index 00000000..acb1ee92 --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_history.go @@ -0,0 +1,22 @@ +package client + +import ( + "encoding/json" + "net/url" + + "github.com/docker/docker/api/types" + "golang.org/x/net/context" +) + +// ImageHistory returns the changes in an image in history format. +func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]types.ImageHistory, error) { + var history []types.ImageHistory + serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", url.Values{}, nil) + if err != nil { + return history, err + } + + err = json.NewDecoder(serverResp.body).Decode(&history) + ensureReaderClosed(serverResp) + return history, err +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_import.go b/vendor/github.com/docker/docker/client/image_import.go similarity index 93% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_import.go rename to vendor/github.com/docker/docker/client/image_import.go index d7dedd82..c6f154b2 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_import.go +++ b/vendor/github.com/docker/docker/client/image_import.go @@ -15,7 +15,7 @@ import ( func (cli *Client) ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) { if ref != "" { //Check if the given image name can be resolved - if _, err := reference.ParseNormalizedNamed(ref); err != nil { + if _, err := reference.ParseNamed(ref); err != nil { return nil, err } } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_inspect.go b/vendor/github.com/docker/docker/client/image_inspect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_inspect.go rename to vendor/github.com/docker/docker/client/image_inspect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_list.go b/vendor/github.com/docker/docker/client/image_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_list.go rename to vendor/github.com/docker/docker/client/image_list.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_load.go b/vendor/github.com/docker/docker/client/image_load.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_load.go rename to vendor/github.com/docker/docker/client/image_load.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_prune.go b/vendor/github.com/docker/docker/client/image_prune.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_prune.go rename to vendor/github.com/docker/docker/client/image_prune.go diff --git a/vendor/github.com/docker/docker/client/image_pull.go b/vendor/github.com/docker/docker/client/image_pull.go new file mode 100644 index 00000000..3bffdb70 --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_pull.go @@ -0,0 +1,46 @@ +package client + +import ( + "io" + "net/http" + "net/url" + + "golang.org/x/net/context" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/reference" +) + +// ImagePull requests the docker host to pull an image from a remote registry. +// It executes the privileged function if the operation is unauthorized +// and it tries one more time. +// It's up to the caller to handle the io.ReadCloser and close it properly. +// +// FIXME(vdemeester): there is currently used in a few way in docker/docker +// - if not in trusted content, ref is used to pass the whole reference, and tag is empty +// - if in trusted content, ref is used to pass the reference name, and tag for the digest +func (cli *Client) ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error) { + repository, tag, err := reference.Parse(ref) + if err != nil { + return nil, err + } + + query := url.Values{} + query.Set("fromImage", repository) + if tag != "" && !options.All { + query.Set("tag", tag) + } + + resp, err := cli.tryImageCreate(ctx, query, options.RegistryAuth) + if resp.statusCode == http.StatusUnauthorized && options.PrivilegeFunc != nil { + newAuthHeader, privilegeErr := options.PrivilegeFunc() + if privilegeErr != nil { + return nil, privilegeErr + } + resp, err = cli.tryImageCreate(ctx, query, newAuthHeader) + } + if err != nil { + return nil, err + } + return resp.body, nil +} diff --git a/vendor/github.com/docker/docker/client/image_push.go b/vendor/github.com/docker/docker/client/image_push.go new file mode 100644 index 00000000..8e73d28f --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_push.go @@ -0,0 +1,54 @@ +package client + +import ( + "errors" + "io" + "net/http" + "net/url" + + "golang.org/x/net/context" + + distreference "github.com/docker/distribution/reference" + "github.com/docker/docker/api/types" +) + +// ImagePush requests the docker host to push an image to a remote registry. +// It executes the privileged function if the operation is unauthorized +// and it tries one more time. +// It's up to the caller to handle the io.ReadCloser and close it properly. +func (cli *Client) ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error) { + distributionRef, err := distreference.ParseNamed(ref) + if err != nil { + return nil, err + } + + if _, isCanonical := distributionRef.(distreference.Canonical); isCanonical { + return nil, errors.New("cannot push a digest reference") + } + + var tag = "" + if nameTaggedRef, isNamedTagged := distributionRef.(distreference.NamedTagged); isNamedTagged { + tag = nameTaggedRef.Tag() + } + + query := url.Values{} + query.Set("tag", tag) + + resp, err := cli.tryImagePush(ctx, distributionRef.Name(), query, options.RegistryAuth) + if resp.statusCode == http.StatusUnauthorized && options.PrivilegeFunc != nil { + newAuthHeader, privilegeErr := options.PrivilegeFunc() + if privilegeErr != nil { + return nil, privilegeErr + } + resp, err = cli.tryImagePush(ctx, distributionRef.Name(), query, newAuthHeader) + } + if err != nil { + return nil, err + } + return resp.body, nil +} + +func (cli *Client) tryImagePush(ctx context.Context, imageID string, query url.Values, registryAuth string) (serverResponse, error) { + headers := map[string][]string{"X-Registry-Auth": {registryAuth}} + return cli.post(ctx, "/images/"+imageID+"/push", query, nil, headers) +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_remove.go b/vendor/github.com/docker/docker/client/image_remove.go similarity index 82% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_remove.go rename to vendor/github.com/docker/docker/client/image_remove.go index 6921209e..839e5311 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_remove.go +++ b/vendor/github.com/docker/docker/client/image_remove.go @@ -9,7 +9,7 @@ import ( ) // ImageRemove removes an image from the docker host. -func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error) { +func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDelete, error) { query := url.Values{} if options.Force { @@ -24,7 +24,7 @@ func (cli *Client) ImageRemove(ctx context.Context, imageID string, options type return nil, err } - var dels []types.ImageDeleteResponseItem + var dels []types.ImageDelete err = json.NewDecoder(resp.body).Decode(&dels) ensureReaderClosed(resp) return dels, err diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_save.go b/vendor/github.com/docker/docker/client/image_save.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_save.go rename to vendor/github.com/docker/docker/client/image_save.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_search.go b/vendor/github.com/docker/docker/client/image_search.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/image_search.go rename to vendor/github.com/docker/docker/client/image_search.go diff --git a/vendor/github.com/docker/docker/client/image_tag.go b/vendor/github.com/docker/docker/client/image_tag.go new file mode 100644 index 00000000..bdbf94ad --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_tag.go @@ -0,0 +1,34 @@ +package client + +import ( + "errors" + "fmt" + "net/url" + + "golang.org/x/net/context" + + distreference "github.com/docker/distribution/reference" + "github.com/docker/docker/api/types/reference" +) + +// ImageTag tags an image in the docker host +func (cli *Client) ImageTag(ctx context.Context, imageID, ref string) error { + distributionRef, err := distreference.ParseNamed(ref) + if err != nil { + return fmt.Errorf("Error parsing reference: %q is not a valid repository/tag", ref) + } + + if _, isCanonical := distributionRef.(distreference.Canonical); isCanonical { + return errors.New("refusing to create a tag with a digest reference") + } + + tag := reference.GetTagFromNamedRef(distributionRef) + + query := url.Values{} + query.Set("repo", distributionRef.Name()) + query.Set("tag", tag) + + resp, err := cli.post(ctx, "/images/"+imageID+"/tag", query, nil, nil) + ensureReaderClosed(resp) + return err +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/info.go b/vendor/github.com/docker/docker/client/info.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/info.go rename to vendor/github.com/docker/docker/client/info.go diff --git a/vendor/github.com/docker/docker/client/interface.go b/vendor/github.com/docker/docker/client/interface.go new file mode 100644 index 00000000..05978039 --- /dev/null +++ b/vendor/github.com/docker/docker/client/interface.go @@ -0,0 +1,171 @@ +package client + +import ( + "io" + "time" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/events" + "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/api/types/network" + "github.com/docker/docker/api/types/registry" + "github.com/docker/docker/api/types/swarm" + volumetypes "github.com/docker/docker/api/types/volume" + "golang.org/x/net/context" +) + +// CommonAPIClient is the common methods between stable and experimental versions of APIClient. +type CommonAPIClient interface { + ContainerAPIClient + ImageAPIClient + NodeAPIClient + NetworkAPIClient + PluginAPIClient + ServiceAPIClient + SwarmAPIClient + SecretAPIClient + SystemAPIClient + VolumeAPIClient + ClientVersion() string + ServerVersion(ctx context.Context) (types.Version, error) + UpdateClientVersion(v string) +} + +// ContainerAPIClient defines API client methods for the containers +type ContainerAPIClient interface { + ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error) + ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error) + ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error) + ContainerDiff(ctx context.Context, container string) ([]types.ContainerChange, error) + ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error) + ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error) + ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error) + ContainerExecResize(ctx context.Context, execID string, options types.ResizeOptions) error + ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error + ContainerExport(ctx context.Context, container string) (io.ReadCloser, error) + ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error) + ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (types.ContainerJSON, []byte, error) + ContainerKill(ctx context.Context, container, signal string) error + ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) + ContainerLogs(ctx context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error) + ContainerPause(ctx context.Context, container string) error + ContainerRemove(ctx context.Context, container string, options types.ContainerRemoveOptions) error + ContainerRename(ctx context.Context, container, newContainerName string) error + ContainerResize(ctx context.Context, container string, options types.ResizeOptions) error + ContainerRestart(ctx context.Context, container string, timeout *time.Duration) error + ContainerStatPath(ctx context.Context, container, path string) (types.ContainerPathStat, error) + ContainerStats(ctx context.Context, container string, stream bool) (types.ContainerStats, error) + ContainerStart(ctx context.Context, container string, options types.ContainerStartOptions) error + ContainerStop(ctx context.Context, container string, timeout *time.Duration) error + ContainerTop(ctx context.Context, container string, arguments []string) (types.ContainerProcessList, error) + ContainerUnpause(ctx context.Context, container string) error + ContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error) + ContainerWait(ctx context.Context, container string) (int64, error) + CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) + CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error + ContainersPrune(ctx context.Context, pruneFilters filters.Args) (types.ContainersPruneReport, error) +} + +// ImageAPIClient defines API client methods for the images +type ImageAPIClient interface { + ImageBuild(ctx context.Context, context io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error) + ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error) + ImageHistory(ctx context.Context, image string) ([]types.ImageHistory, error) + ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) + ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error) + ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error) + ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error) + ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error) + ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error) + ImageRemove(ctx context.Context, image string, options types.ImageRemoveOptions) ([]types.ImageDelete, error) + ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error) + ImageSave(ctx context.Context, images []string) (io.ReadCloser, error) + ImageTag(ctx context.Context, image, ref string) error + ImagesPrune(ctx context.Context, pruneFilter filters.Args) (types.ImagesPruneReport, error) +} + +// NetworkAPIClient defines API client methods for the networks +type NetworkAPIClient interface { + NetworkConnect(ctx context.Context, networkID, container string, config *network.EndpointSettings) error + NetworkCreate(ctx context.Context, name string, options types.NetworkCreate) (types.NetworkCreateResponse, error) + NetworkDisconnect(ctx context.Context, networkID, container string, force bool) error + NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error) + NetworkInspectWithRaw(ctx context.Context, networkID string) (types.NetworkResource, []byte, error) + NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error) + NetworkRemove(ctx context.Context, networkID string) error + NetworksPrune(ctx context.Context, pruneFilter filters.Args) (types.NetworksPruneReport, error) +} + +// NodeAPIClient defines API client methods for the nodes +type NodeAPIClient interface { + NodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error) + NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error) + NodeRemove(ctx context.Context, nodeID string, options types.NodeRemoveOptions) error + NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error +} + +// PluginAPIClient defines API client methods for the plugins +type PluginAPIClient interface { + PluginList(ctx context.Context) (types.PluginsListResponse, error) + PluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error + PluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error + PluginDisable(ctx context.Context, name string, options types.PluginDisableOptions) error + PluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error) + PluginUpgrade(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error) + PluginPush(ctx context.Context, name string, registryAuth string) (io.ReadCloser, error) + PluginSet(ctx context.Context, name string, args []string) error + PluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error) + PluginCreate(ctx context.Context, createContext io.Reader, options types.PluginCreateOptions) error +} + +// ServiceAPIClient defines API client methods for the services +type ServiceAPIClient interface { + ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (types.ServiceCreateResponse, error) + ServiceInspectWithRaw(ctx context.Context, serviceID string) (swarm.Service, []byte, error) + ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error) + ServiceRemove(ctx context.Context, serviceID string) error + ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) + ServiceLogs(ctx context.Context, serviceID string, options types.ContainerLogsOptions) (io.ReadCloser, error) + TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error) + TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error) +} + +// SwarmAPIClient defines API client methods for the swarm +type SwarmAPIClient interface { + SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error) + SwarmJoin(ctx context.Context, req swarm.JoinRequest) error + SwarmGetUnlockKey(ctx context.Context) (types.SwarmUnlockKeyResponse, error) + SwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error + SwarmLeave(ctx context.Context, force bool) error + SwarmInspect(ctx context.Context) (swarm.Swarm, error) + SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error +} + +// SystemAPIClient defines API client methods for the system +type SystemAPIClient interface { + Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error) + Info(ctx context.Context) (types.Info, error) + RegistryLogin(ctx context.Context, auth types.AuthConfig) (registry.AuthenticateOKBody, error) + DiskUsage(ctx context.Context) (types.DiskUsage, error) + Ping(ctx context.Context) (types.Ping, error) +} + +// VolumeAPIClient defines API client methods for the volumes +type VolumeAPIClient interface { + VolumeCreate(ctx context.Context, options volumetypes.VolumesCreateBody) (types.Volume, error) + VolumeInspect(ctx context.Context, volumeID string) (types.Volume, error) + VolumeInspectWithRaw(ctx context.Context, volumeID string) (types.Volume, []byte, error) + VolumeList(ctx context.Context, filter filters.Args) (volumetypes.VolumesListOKBody, error) + VolumeRemove(ctx context.Context, volumeID string, force bool) error + VolumesPrune(ctx context.Context, pruneFilter filters.Args) (types.VolumesPruneReport, error) +} + +// SecretAPIClient defines API client methods for secrets +type SecretAPIClient interface { + SecretList(ctx context.Context, options types.SecretListOptions) ([]swarm.Secret, error) + SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error) + SecretRemove(ctx context.Context, id string) error + SecretInspectWithRaw(ctx context.Context, name string) (swarm.Secret, []byte, error) + SecretUpdate(ctx context.Context, id string, version swarm.Version, secret swarm.SecretSpec) error +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/interface_experimental.go b/vendor/github.com/docker/docker/client/interface_experimental.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/interface_experimental.go rename to vendor/github.com/docker/docker/client/interface_experimental.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/interface_stable.go b/vendor/github.com/docker/docker/client/interface_stable.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/interface_stable.go rename to vendor/github.com/docker/docker/client/interface_stable.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/login.go b/vendor/github.com/docker/docker/client/login.go similarity index 92% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/login.go rename to vendor/github.com/docker/docker/client/login.go index 79219ff5..600dc719 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/login.go +++ b/vendor/github.com/docker/docker/client/login.go @@ -11,7 +11,7 @@ import ( ) // RegistryLogin authenticates the docker server with a given docker registry. -// It returns unauthorizedError when the authentication fails. +// It returns UnauthorizerError when the authentication fails. func (cli *Client) RegistryLogin(ctx context.Context, auth types.AuthConfig) (registry.AuthenticateOKBody, error) { resp, err := cli.post(ctx, "/auth", url.Values{}, auth, nil) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_connect.go b/vendor/github.com/docker/docker/client/network_connect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_connect.go rename to vendor/github.com/docker/docker/client/network_connect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_create.go b/vendor/github.com/docker/docker/client/network_create.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_create.go rename to vendor/github.com/docker/docker/client/network_create.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_disconnect.go b/vendor/github.com/docker/docker/client/network_disconnect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_disconnect.go rename to vendor/github.com/docker/docker/client/network_disconnect.go diff --git a/vendor/github.com/docker/docker/client/network_inspect.go b/vendor/github.com/docker/docker/client/network_inspect.go new file mode 100644 index 00000000..5ad4ea5b --- /dev/null +++ b/vendor/github.com/docker/docker/client/network_inspect.go @@ -0,0 +1,38 @@ +package client + +import ( + "bytes" + "encoding/json" + "io/ioutil" + "net/http" + + "github.com/docker/docker/api/types" + "golang.org/x/net/context" +) + +// NetworkInspect returns the information for a specific network configured in the docker host. +func (cli *Client) NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error) { + networkResource, _, err := cli.NetworkInspectWithRaw(ctx, networkID) + return networkResource, err +} + +// NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation. +func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string) (types.NetworkResource, []byte, error) { + var networkResource types.NetworkResource + resp, err := cli.get(ctx, "/networks/"+networkID, nil, nil) + if err != nil { + if resp.statusCode == http.StatusNotFound { + return networkResource, nil, networkNotFoundError{networkID} + } + return networkResource, nil, err + } + defer ensureReaderClosed(resp) + + body, err := ioutil.ReadAll(resp.body) + if err != nil { + return networkResource, nil, err + } + rdr := bytes.NewReader(body) + err = json.NewDecoder(rdr).Decode(&networkResource) + return networkResource, body, err +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_list.go b/vendor/github.com/docker/docker/client/network_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_list.go rename to vendor/github.com/docker/docker/client/network_list.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_prune.go b/vendor/github.com/docker/docker/client/network_prune.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_prune.go rename to vendor/github.com/docker/docker/client/network_prune.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_remove.go b/vendor/github.com/docker/docker/client/network_remove.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/network_remove.go rename to vendor/github.com/docker/docker/client/network_remove.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_inspect.go b/vendor/github.com/docker/docker/client/node_inspect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_inspect.go rename to vendor/github.com/docker/docker/client/node_inspect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_list.go b/vendor/github.com/docker/docker/client/node_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_list.go rename to vendor/github.com/docker/docker/client/node_list.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_remove.go b/vendor/github.com/docker/docker/client/node_remove.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_remove.go rename to vendor/github.com/docker/docker/client/node_remove.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_update.go b/vendor/github.com/docker/docker/client/node_update.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/node_update.go rename to vendor/github.com/docker/docker/client/node_update.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/ping.go b/vendor/github.com/docker/docker/client/ping.go similarity index 79% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/ping.go rename to vendor/github.com/docker/docker/client/ping.go index d6212ef8..22dcda24 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/ping.go +++ b/vendor/github.com/docker/docker/client/ping.go @@ -7,7 +7,7 @@ import ( "golang.org/x/net/context" ) -// Ping pings the server and returns the value of the "Docker-Experimental", "OS-Type" & "API-Version" headers +// Ping pings the server and return the value of the "Docker-Experimental" & "API-Version" headers func (cli *Client) Ping(ctx context.Context) (types.Ping, error) { var ping types.Ping req, err := cli.buildRequest("GET", fmt.Sprintf("%s/_ping", cli.basePath), nil, nil) @@ -26,7 +26,5 @@ func (cli *Client) Ping(ctx context.Context) (types.Ping, error) { ping.Experimental = true } - ping.OSType = serverResp.header.Get("OSType") - return ping, nil } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_create.go b/vendor/github.com/docker/docker/client/plugin_create.go similarity index 91% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_create.go rename to vendor/github.com/docker/docker/client/plugin_create.go index 27954aa5..a660ba57 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_create.go +++ b/vendor/github.com/docker/docker/client/plugin_create.go @@ -12,7 +12,7 @@ import ( // PluginCreate creates a plugin func (cli *Client) PluginCreate(ctx context.Context, createContext io.Reader, createOptions types.PluginCreateOptions) error { headers := http.Header(make(map[string][]string)) - headers.Set("Content-Type", "application/x-tar") + headers.Set("Content-Type", "application/tar") query := url.Values{} query.Set("name", createOptions.RepoName) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_disable.go b/vendor/github.com/docker/docker/client/plugin_disable.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_disable.go rename to vendor/github.com/docker/docker/client/plugin_disable.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_enable.go b/vendor/github.com/docker/docker/client/plugin_enable.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_enable.go rename to vendor/github.com/docker/docker/client/plugin_enable.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_inspect.go b/vendor/github.com/docker/docker/client/plugin_inspect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_inspect.go rename to vendor/github.com/docker/docker/client/plugin_inspect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_install.go b/vendor/github.com/docker/docker/client/plugin_install.go similarity index 94% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_install.go rename to vendor/github.com/docker/docker/client/plugin_install.go index ce3e0506..3217c4cf 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_install.go +++ b/vendor/github.com/docker/docker/client/plugin_install.go @@ -15,7 +15,7 @@ import ( // PluginInstall installs a plugin func (cli *Client) PluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) (rc io.ReadCloser, err error) { query := url.Values{} - if _, err := reference.ParseNormalizedNamed(options.RemoteRef); err != nil { + if _, err := reference.ParseNamed(options.RemoteRef); err != nil { return nil, errors.Wrap(err, "invalid remote reference") } query.Set("remote", options.RemoteRef) @@ -60,8 +60,8 @@ func (cli *Client) PluginInstall(ctx context.Context, name string, options types return } - enableErr := cli.PluginEnable(ctx, name, types.PluginEnableOptions{Timeout: 0}) - pw.CloseWithError(enableErr) + err = cli.PluginEnable(ctx, name, types.PluginEnableOptions{Timeout: 0}) + pw.CloseWithError(err) }() return pr, nil } diff --git a/vendor/github.com/docker/docker/client/plugin_list.go b/vendor/github.com/docker/docker/client/plugin_list.go new file mode 100644 index 00000000..88c480a3 --- /dev/null +++ b/vendor/github.com/docker/docker/client/plugin_list.go @@ -0,0 +1,21 @@ +package client + +import ( + "encoding/json" + + "github.com/docker/docker/api/types" + "golang.org/x/net/context" +) + +// PluginList returns the installed plugins +func (cli *Client) PluginList(ctx context.Context) (types.PluginsListResponse, error) { + var plugins types.PluginsListResponse + resp, err := cli.get(ctx, "/plugins", nil, nil) + if err != nil { + return plugins, err + } + + err = json.NewDecoder(resp.body).Decode(&plugins) + ensureReaderClosed(resp) + return plugins, err +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_push.go b/vendor/github.com/docker/docker/client/plugin_push.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_push.go rename to vendor/github.com/docker/docker/client/plugin_push.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_remove.go b/vendor/github.com/docker/docker/client/plugin_remove.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_remove.go rename to vendor/github.com/docker/docker/client/plugin_remove.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_set.go b/vendor/github.com/docker/docker/client/plugin_set.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_set.go rename to vendor/github.com/docker/docker/client/plugin_set.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_upgrade.go b/vendor/github.com/docker/docker/client/plugin_upgrade.go similarity index 93% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_upgrade.go rename to vendor/github.com/docker/docker/client/plugin_upgrade.go index 24293c50..95a4356b 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/plugin_upgrade.go +++ b/vendor/github.com/docker/docker/client/plugin_upgrade.go @@ -14,7 +14,7 @@ import ( // PluginUpgrade upgrades a plugin func (cli *Client) PluginUpgrade(ctx context.Context, name string, options types.PluginInstallOptions) (rc io.ReadCloser, err error) { query := url.Values{} - if _, err := reference.ParseNormalizedNamed(options.RemoteRef); err != nil { + if _, err := reference.ParseNamed(options.RemoteRef); err != nil { return nil, errors.Wrap(err, "invalid remote reference") } query.Set("remote", options.RemoteRef) diff --git a/vendor/github.com/docker/docker/client/request.go b/vendor/github.com/docker/docker/client/request.go new file mode 100644 index 00000000..ac053636 --- /dev/null +++ b/vendor/github.com/docker/docker/client/request.go @@ -0,0 +1,247 @@ +package client + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net" + "net/http" + "net/url" + "os" + "strings" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/versions" + "github.com/pkg/errors" + "golang.org/x/net/context" + "golang.org/x/net/context/ctxhttp" +) + +// serverResponse is a wrapper for http API responses. +type serverResponse struct { + body io.ReadCloser + header http.Header + statusCode int +} + +// head sends an http request to the docker API using the method HEAD. +func (cli *Client) head(ctx context.Context, path string, query url.Values, headers map[string][]string) (serverResponse, error) { + return cli.sendRequest(ctx, "HEAD", path, query, nil, headers) +} + +// getWithContext sends an http request to the docker API using the method GET with a specific go context. +func (cli *Client) get(ctx context.Context, path string, query url.Values, headers map[string][]string) (serverResponse, error) { + return cli.sendRequest(ctx, "GET", path, query, nil, headers) +} + +// postWithContext sends an http request to the docker API using the method POST with a specific go context. +func (cli *Client) post(ctx context.Context, path string, query url.Values, obj interface{}, headers map[string][]string) (serverResponse, error) { + body, headers, err := encodeBody(obj, headers) + if err != nil { + return serverResponse{}, err + } + return cli.sendRequest(ctx, "POST", path, query, body, headers) +} + +func (cli *Client) postRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers map[string][]string) (serverResponse, error) { + return cli.sendRequest(ctx, "POST", path, query, body, headers) +} + +// put sends an http request to the docker API using the method PUT. +func (cli *Client) put(ctx context.Context, path string, query url.Values, obj interface{}, headers map[string][]string) (serverResponse, error) { + body, headers, err := encodeBody(obj, headers) + if err != nil { + return serverResponse{}, err + } + return cli.sendRequest(ctx, "PUT", path, query, body, headers) +} + +// put sends an http request to the docker API using the method PUT. +func (cli *Client) putRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers map[string][]string) (serverResponse, error) { + return cli.sendRequest(ctx, "PUT", path, query, body, headers) +} + +// delete sends an http request to the docker API using the method DELETE. +func (cli *Client) delete(ctx context.Context, path string, query url.Values, headers map[string][]string) (serverResponse, error) { + return cli.sendRequest(ctx, "DELETE", path, query, nil, headers) +} + +type headers map[string][]string + +func encodeBody(obj interface{}, headers headers) (io.Reader, headers, error) { + if obj == nil { + return nil, headers, nil + } + + body, err := encodeData(obj) + if err != nil { + return nil, headers, err + } + if headers == nil { + headers = make(map[string][]string) + } + headers["Content-Type"] = []string{"application/json"} + return body, headers, nil +} + +func (cli *Client) buildRequest(method, path string, body io.Reader, headers headers) (*http.Request, error) { + expectedPayload := (method == "POST" || method == "PUT") + if expectedPayload && body == nil { + body = bytes.NewReader([]byte{}) + } + + req, err := http.NewRequest(method, path, body) + if err != nil { + return nil, err + } + req = cli.addHeaders(req, headers) + + if cli.proto == "unix" || cli.proto == "npipe" { + // For local communications, it doesn't matter what the host is. We just + // need a valid and meaningful host name. (See #189) + req.Host = "docker" + } + + req.URL.Host = cli.addr + req.URL.Scheme = cli.scheme + + if expectedPayload && req.Header.Get("Content-Type") == "" { + req.Header.Set("Content-Type", "text/plain") + } + return req, nil +} + +func (cli *Client) sendRequest(ctx context.Context, method, path string, query url.Values, body io.Reader, headers headers) (serverResponse, error) { + req, err := cli.buildRequest(method, cli.getAPIPath(path, query), body, headers) + if err != nil { + return serverResponse{}, err + } + return cli.doRequest(ctx, req) +} + +func (cli *Client) doRequest(ctx context.Context, req *http.Request) (serverResponse, error) { + serverResp := serverResponse{statusCode: -1} + + resp, err := ctxhttp.Do(ctx, cli.client, req) + if err != nil { + if cli.scheme != "https" && strings.Contains(err.Error(), "malformed HTTP response") { + return serverResp, fmt.Errorf("%v.\n* Are you trying to connect to a TLS-enabled daemon without TLS?", err) + } + + if cli.scheme == "https" && strings.Contains(err.Error(), "bad certificate") { + return serverResp, fmt.Errorf("The server probably has client authentication (--tlsverify) enabled. Please check your TLS client certification settings: %v", err) + } + + // Don't decorate context sentinel errors; users may be comparing to + // them directly. + switch err { + case context.Canceled, context.DeadlineExceeded: + return serverResp, err + } + + if nErr, ok := err.(*url.Error); ok { + if nErr, ok := nErr.Err.(*net.OpError); ok { + if os.IsPermission(nErr.Err) { + return serverResp, errors.Wrapf(err, "Got permission denied while trying to connect to the Docker daemon socket at %v", cli.host) + } + } + } + + if err, ok := err.(net.Error); ok { + if err.Timeout() { + return serverResp, ErrorConnectionFailed(cli.host) + } + if !err.Temporary() { + if strings.Contains(err.Error(), "connection refused") || strings.Contains(err.Error(), "dial unix") { + return serverResp, ErrorConnectionFailed(cli.host) + } + } + } + + // Although there's not a strongly typed error for this in go-winio, + // lots of people are using the default configuration for the docker + // daemon on Windows where the daemon is listening on a named pipe + // `//./pipe/docker_engine, and the client must be running elevated. + // Give users a clue rather than the not-overly useful message + // such as `error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/info: + // open //./pipe/docker_engine: The system cannot find the file specified.`. + // Note we can't string compare "The system cannot find the file specified" as + // this is localised - for example in French the error would be + // `open //./pipe/docker_engine: Le fichier spécifié est introuvable.` + if strings.Contains(err.Error(), `open //./pipe/docker_engine`) { + err = errors.New(err.Error() + " In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.") + } + + return serverResp, errors.Wrap(err, "error during connect") + } + + if resp != nil { + serverResp.statusCode = resp.StatusCode + } + + if serverResp.statusCode < 200 || serverResp.statusCode >= 400 { + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return serverResp, err + } + if len(body) == 0 { + return serverResp, fmt.Errorf("Error: request returned %s for API route and version %s, check if the server supports the requested API version", http.StatusText(serverResp.statusCode), req.URL) + } + + var errorMessage string + if (cli.version == "" || versions.GreaterThan(cli.version, "1.23")) && + resp.Header.Get("Content-Type") == "application/json" { + var errorResponse types.ErrorResponse + if err := json.Unmarshal(body, &errorResponse); err != nil { + return serverResp, fmt.Errorf("Error reading JSON: %v", err) + } + errorMessage = errorResponse.Message + } else { + errorMessage = string(body) + } + + return serverResp, fmt.Errorf("Error response from daemon: %s", strings.TrimSpace(errorMessage)) + } + + serverResp.body = resp.Body + serverResp.header = resp.Header + return serverResp, nil +} + +func (cli *Client) addHeaders(req *http.Request, headers headers) *http.Request { + // Add CLI Config's HTTP Headers BEFORE we set the Docker headers + // then the user can't change OUR headers + for k, v := range cli.customHTTPHeaders { + if versions.LessThan(cli.version, "1.25") && k == "User-Agent" { + continue + } + req.Header.Set(k, v) + } + + if headers != nil { + for k, v := range headers { + req.Header[k] = v + } + } + return req +} + +func encodeData(data interface{}) (*bytes.Buffer, error) { + params := bytes.NewBuffer(nil) + if data != nil { + if err := json.NewEncoder(params).Encode(data); err != nil { + return nil, err + } + } + return params, nil +} + +func ensureReaderClosed(response serverResponse) { + if body := response.body; body != nil { + // Drain up to 512 bytes and close the body to let the Transport reuse the connection + io.CopyN(ioutil.Discard, body, 512) + response.body.Close() + } +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_create.go b/vendor/github.com/docker/docker/client/secret_create.go similarity index 83% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_create.go rename to vendor/github.com/docker/docker/client/secret_create.go index b5325a56..de8b0415 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_create.go +++ b/vendor/github.com/docker/docker/client/secret_create.go @@ -10,8 +10,10 @@ import ( // SecretCreate creates a new Secret. func (cli *Client) SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error) { + var headers map[string][]string + var response types.SecretCreateResponse - resp, err := cli.post(ctx, "/secrets/create", nil, secret, nil) + resp, err := cli.post(ctx, "/secrets/create", nil, secret, headers) if err != nil { return response, err } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_inspect.go b/vendor/github.com/docker/docker/client/secret_inspect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_inspect.go rename to vendor/github.com/docker/docker/client/secret_inspect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_list.go b/vendor/github.com/docker/docker/client/secret_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_list.go rename to vendor/github.com/docker/docker/client/secret_list.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_remove.go b/vendor/github.com/docker/docker/client/secret_remove.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_remove.go rename to vendor/github.com/docker/docker/client/secret_remove.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_update.go b/vendor/github.com/docker/docker/client/secret_update.go similarity index 79% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_update.go rename to vendor/github.com/docker/docker/client/secret_update.go index 42cdbbe1..b94e24aa 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/secret_update.go +++ b/vendor/github.com/docker/docker/client/secret_update.go @@ -8,7 +8,8 @@ import ( "golang.org/x/net/context" ) -// SecretUpdate attempts to updates a Secret +// SecretUpdate updates a Secret. Currently, the only part of a secret spec +// which can be updated is Labels. func (cli *Client) SecretUpdate(ctx context.Context, id string, version swarm.Version, secret swarm.SecretSpec) error { query := url.Values{} query.Set("version", strconv.FormatUint(version.Index, 10)) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_create.go b/vendor/github.com/docker/docker/client/service_create.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_create.go rename to vendor/github.com/docker/docker/client/service_create.go diff --git a/vendor/github.com/docker/docker/client/service_inspect.go b/vendor/github.com/docker/docker/client/service_inspect.go new file mode 100644 index 00000000..ca71cbde --- /dev/null +++ b/vendor/github.com/docker/docker/client/service_inspect.go @@ -0,0 +1,33 @@ +package client + +import ( + "bytes" + "encoding/json" + "io/ioutil" + "net/http" + + "github.com/docker/docker/api/types/swarm" + "golang.org/x/net/context" +) + +// ServiceInspectWithRaw returns the service information and the raw data. +func (cli *Client) ServiceInspectWithRaw(ctx context.Context, serviceID string) (swarm.Service, []byte, error) { + serverResp, err := cli.get(ctx, "/services/"+serviceID, nil, nil) + if err != nil { + if serverResp.statusCode == http.StatusNotFound { + return swarm.Service{}, nil, serviceNotFoundError{serviceID} + } + return swarm.Service{}, nil, err + } + defer ensureReaderClosed(serverResp) + + body, err := ioutil.ReadAll(serverResp.body) + if err != nil { + return swarm.Service{}, nil, err + } + + var response swarm.Service + rdr := bytes.NewReader(body) + err = json.NewDecoder(rdr).Decode(&response) + return response, body, err +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_list.go b/vendor/github.com/docker/docker/client/service_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_list.go rename to vendor/github.com/docker/docker/client/service_list.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_logs.go b/vendor/github.com/docker/docker/client/service_logs.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_logs.go rename to vendor/github.com/docker/docker/client/service_logs.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_remove.go b/vendor/github.com/docker/docker/client/service_remove.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_remove.go rename to vendor/github.com/docker/docker/client/service_remove.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_update.go b/vendor/github.com/docker/docker/client/service_update.go similarity index 93% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_update.go rename to vendor/github.com/docker/docker/client/service_update.go index 873a1e05..afa94d47 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/service_update.go +++ b/vendor/github.com/docker/docker/client/service_update.go @@ -27,10 +27,6 @@ func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version query.Set("registryAuthFrom", options.RegistryAuthFrom) } - if options.Rollback != "" { - query.Set("rollback", options.Rollback) - } - query.Set("version", strconv.FormatUint(version.Index, 10)) var response types.ServiceUpdateResponse diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_get_unlock_key.go b/vendor/github.com/docker/docker/client/swarm_get_unlock_key.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_get_unlock_key.go rename to vendor/github.com/docker/docker/client/swarm_get_unlock_key.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_init.go b/vendor/github.com/docker/docker/client/swarm_init.go similarity index 92% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_init.go rename to vendor/github.com/docker/docker/client/swarm_init.go index 9e65e1cc..fd45d066 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_init.go +++ b/vendor/github.com/docker/docker/client/swarm_init.go @@ -7,7 +7,7 @@ import ( "golang.org/x/net/context" ) -// SwarmInit initializes the swarm. +// SwarmInit initializes the Swarm. func (cli *Client) SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error) { serverResp, err := cli.post(ctx, "/swarm/init", nil, req, nil) if err != nil { diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_inspect.go b/vendor/github.com/docker/docker/client/swarm_inspect.go similarity index 92% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_inspect.go rename to vendor/github.com/docker/docker/client/swarm_inspect.go index 77e72f84..6d95cfc0 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_inspect.go +++ b/vendor/github.com/docker/docker/client/swarm_inspect.go @@ -7,7 +7,7 @@ import ( "golang.org/x/net/context" ) -// SwarmInspect inspects the swarm. +// SwarmInspect inspects the Swarm. func (cli *Client) SwarmInspect(ctx context.Context) (swarm.Swarm, error) { serverResp, err := cli.get(ctx, "/swarm", nil, nil) if err != nil { diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_join.go b/vendor/github.com/docker/docker/client/swarm_join.go similarity index 90% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_join.go rename to vendor/github.com/docker/docker/client/swarm_join.go index 19e5192b..cda99930 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_join.go +++ b/vendor/github.com/docker/docker/client/swarm_join.go @@ -5,7 +5,7 @@ import ( "golang.org/x/net/context" ) -// SwarmJoin joins the swarm. +// SwarmJoin joins the Swarm. func (cli *Client) SwarmJoin(ctx context.Context, req swarm.JoinRequest) error { resp, err := cli.post(ctx, "/swarm/join", nil, req, nil) ensureReaderClosed(resp) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_leave.go b/vendor/github.com/docker/docker/client/swarm_leave.go similarity index 90% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_leave.go rename to vendor/github.com/docker/docker/client/swarm_leave.go index 3a205cf3..a4df7321 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_leave.go +++ b/vendor/github.com/docker/docker/client/swarm_leave.go @@ -6,7 +6,7 @@ import ( "golang.org/x/net/context" ) -// SwarmLeave leaves the swarm. +// SwarmLeave leaves the Swarm. func (cli *Client) SwarmLeave(ctx context.Context, force bool) error { query := url.Values{} if force { diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_unlock.go b/vendor/github.com/docker/docker/client/swarm_unlock.go similarity index 80% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_unlock.go rename to vendor/github.com/docker/docker/client/swarm_unlock.go index 9ee441fe..addfb59f 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_unlock.go +++ b/vendor/github.com/docker/docker/client/swarm_unlock.go @@ -5,9 +5,13 @@ import ( "golang.org/x/net/context" ) -// SwarmUnlock unlocks locked swarm. +// SwarmUnlock unlockes locked swarm. func (cli *Client) SwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error { serverResp, err := cli.post(ctx, "/swarm/unlock", nil, req, nil) + if err != nil { + return err + } + ensureReaderClosed(serverResp) return err } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_update.go b/vendor/github.com/docker/docker/client/swarm_update.go similarity index 95% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_update.go rename to vendor/github.com/docker/docker/client/swarm_update.go index 7245fd4e..cc8eeb65 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/swarm_update.go +++ b/vendor/github.com/docker/docker/client/swarm_update.go @@ -9,7 +9,7 @@ import ( "golang.org/x/net/context" ) -// SwarmUpdate updates the swarm. +// SwarmUpdate updates the Swarm. func (cli *Client) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error { query := url.Values{} query.Set("version", strconv.FormatUint(version.Index, 10)) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/task_inspect.go b/vendor/github.com/docker/docker/client/task_inspect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/task_inspect.go rename to vendor/github.com/docker/docker/client/task_inspect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/task_list.go b/vendor/github.com/docker/docker/client/task_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/task_list.go rename to vendor/github.com/docker/docker/client/task_list.go diff --git a/vendor/github.com/docker/docker/client/transport.go b/vendor/github.com/docker/docker/client/transport.go new file mode 100644 index 00000000..f04e6016 --- /dev/null +++ b/vendor/github.com/docker/docker/client/transport.go @@ -0,0 +1,28 @@ +package client + +import ( + "crypto/tls" + "errors" + "net/http" +) + +var errTLSConfigUnavailable = errors.New("TLSConfig unavailable") + +// transportFunc allows us to inject a mock transport for testing. We define it +// here so we can detect the tlsconfig and return nil for only this type. +type transportFunc func(*http.Request) (*http.Response, error) + +func (tf transportFunc) RoundTrip(req *http.Request) (*http.Response, error) { + return tf(req) +} + +// resolveTLSConfig attempts to resolve the tls configuration from the +// RoundTripper. +func resolveTLSConfig(transport http.RoundTripper) *tls.Config { + switch tr := transport.(type) { + case *http.Transport: + return tr.TLSClientConfig + default: + return nil + } +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/utils.go b/vendor/github.com/docker/docker/client/utils.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/utils.go rename to vendor/github.com/docker/docker/client/utils.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/version.go b/vendor/github.com/docker/docker/client/version.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/version.go rename to vendor/github.com/docker/docker/client/version.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_create.go b/vendor/github.com/docker/docker/client/volume_create.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_create.go rename to vendor/github.com/docker/docker/client/volume_create.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_inspect.go b/vendor/github.com/docker/docker/client/volume_inspect.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_inspect.go rename to vendor/github.com/docker/docker/client/volume_inspect.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_list.go b/vendor/github.com/docker/docker/client/volume_list.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_list.go rename to vendor/github.com/docker/docker/client/volume_list.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_prune.go b/vendor/github.com/docker/docker/client/volume_prune.go similarity index 91% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_prune.go rename to vendor/github.com/docker/docker/client/volume_prune.go index 2e7fea77..a07e4ce6 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_prune.go +++ b/vendor/github.com/docker/docker/client/volume_prune.go @@ -29,7 +29,7 @@ func (cli *Client) VolumesPrune(ctx context.Context, pruneFilters filters.Args) defer ensureReaderClosed(serverResp) if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil { - return report, fmt.Errorf("Error retrieving volume prune report: %v", err) + return report, fmt.Errorf("Error retrieving disk usage: %v", err) } return report, nil diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_remove.go b/vendor/github.com/docker/docker/client/volume_remove.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/client/volume_remove.go rename to vendor/github.com/docker/docker/client/volume_remove.go diff --git a/vendor/github.com/docker/docker/contrib/selinux-fedora-24/docker-engine-selinux/LICENSE b/vendor/github.com/docker/docker/contrib/selinux-fedora-24/docker-engine-selinux/LICENSE new file mode 100644 index 00000000..d511905c --- /dev/null +++ b/vendor/github.com/docker/docker/contrib/selinux-fedora-24/docker-engine-selinux/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/vendor/github.com/docker/docker/contrib/selinux-oraclelinux-7/docker-engine-selinux/LICENSE b/vendor/github.com/docker/docker/contrib/selinux-oraclelinux-7/docker-engine-selinux/LICENSE new file mode 100644 index 00000000..d511905c --- /dev/null +++ b/vendor/github.com/docker/docker/contrib/selinux-oraclelinux-7/docker-engine-selinux/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/vendor/github.com/docker/docker/contrib/selinux/docker-engine-selinux/LICENSE b/vendor/github.com/docker/docker/contrib/selinux/docker-engine-selinux/LICENSE new file mode 100644 index 00000000..5b6e7c66 --- /dev/null +++ b/vendor/github.com/docker/docker/contrib/selinux/docker-engine-selinux/LICENSE @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/vendor/github.com/docker/docker/contrib/syntax/vim/LICENSE b/vendor/github.com/docker/docker/contrib/syntax/vim/LICENSE new file mode 100644 index 00000000..e67cdabd --- /dev/null +++ b/vendor/github.com/docker/docker/contrib/syntax/vim/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2013 Honza Pokorny +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +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/vendor/github.com/docker/docker/docs/static_files/contributors.png b/vendor/github.com/docker/docker/docs/static_files/contributors.png new file mode 100644 index 00000000..63c0a0c0 Binary files /dev/null and b/vendor/github.com/docker/docker/docs/static_files/contributors.png differ diff --git a/vendor/github.com/docker/docker/hack/generate-authors.sh b/vendor/github.com/docker/docker/hack/generate-authors.sh new file mode 100755 index 00000000..e78a97f9 --- /dev/null +++ b/vendor/github.com/docker/docker/hack/generate-authors.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +cd "$(dirname "$(readlink -f "$BASH_SOURCE")")/.." + +# see also ".mailmap" for how email addresses and names are deduplicated + +{ + cat <<-'EOH' + # This file lists all individuals having contributed content to the repository. + # For how it is generated, see `hack/generate-authors.sh`. + EOH + echo + git log --format='%aN <%aE>' | LC_ALL=C.UTF-8 sort -uf +} > AUTHORS diff --git a/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.default b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.default new file mode 120000 index 00000000..4278533d --- /dev/null +++ b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.default @@ -0,0 +1 @@ +../../../contrib/init/sysvinit-debian/docker.default \ No newline at end of file diff --git a/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.init b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.init new file mode 120000 index 00000000..8cb89d30 --- /dev/null +++ b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.init @@ -0,0 +1 @@ +../../../contrib/init/sysvinit-debian/docker \ No newline at end of file diff --git a/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.upstart b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.upstart new file mode 120000 index 00000000..7e1b64a3 --- /dev/null +++ b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.upstart @@ -0,0 +1 @@ +../../../contrib/init/upstart/docker.conf \ No newline at end of file diff --git a/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.udev b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.udev new file mode 120000 index 00000000..914a3619 --- /dev/null +++ b/vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.udev @@ -0,0 +1 @@ +../../../contrib/udev/80-docker.rules \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/buffer.go b/vendor/github.com/docker/docker/pkg/ioutils/buffer.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/buffer.go rename to vendor/github.com/docker/docker/pkg/ioutils/buffer.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go b/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go rename to vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go diff --git a/vendor/github.com/docker/docker/pkg/ioutils/fmt.go b/vendor/github.com/docker/docker/pkg/ioutils/fmt.go new file mode 100644 index 00000000..0b04b0ba --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/ioutils/fmt.go @@ -0,0 +1,22 @@ +package ioutils + +import ( + "fmt" + "io" +) + +// FprintfIfNotEmpty prints the string value if it's not empty +func FprintfIfNotEmpty(w io.Writer, format, value string) (int, error) { + if value != "" { + return fmt.Fprintf(w, format, value) + } + return 0, nil +} + +// FprintfIfTrue prints the boolean value if it's true +func FprintfIfTrue(w io.Writer, format string, ok bool) (int, error) { + if ok { + return fmt.Fprintf(w, format, ok) + } + return 0, nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go b/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go rename to vendor/github.com/docker/docker/pkg/ioutils/fswriters.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/multireader.go b/vendor/github.com/docker/docker/pkg/ioutils/multireader.go similarity index 98% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/multireader.go rename to vendor/github.com/docker/docker/pkg/ioutils/multireader.go index edb043dd..d7b97486 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/multireader.go +++ b/vendor/github.com/docker/docker/pkg/ioutils/multireader.go @@ -152,8 +152,7 @@ func (r *multiReadSeeker) getOffsetToReader(rdr io.ReadSeeker) (int64, error) { func (r *multiReadSeeker) Read(b []byte) (int, error) { if r.pos == nil { - // make sure all readers are at 0 - r.Seek(0, os.SEEK_SET) + r.pos = &pos{0, 0} } bLen := int64(len(b)) diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/readers.go b/vendor/github.com/docker/docker/pkg/ioutils/readers.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/readers.go rename to vendor/github.com/docker/docker/pkg/ioutils/readers.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go b/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go rename to vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go b/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go rename to vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go b/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go rename to vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/writers.go b/vendor/github.com/docker/docker/pkg/ioutils/writers.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/ioutils/writers.go rename to vendor/github.com/docker/docker/pkg/ioutils/writers.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/longpath/longpath.go b/vendor/github.com/docker/docker/pkg/longpath/longpath.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/longpath/longpath.go rename to vendor/github.com/docker/docker/pkg/longpath/longpath.go diff --git a/vendor/github.com/docker/docker/pkg/symlink/LICENSE.APACHE b/vendor/github.com/docker/docker/pkg/symlink/LICENSE.APACHE new file mode 100644 index 00000000..34c4ea7c --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/symlink/LICENSE.APACHE @@ -0,0 +1,191 @@ + + 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 + + Copyright 2014-2016 Docker, Inc. + + 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/vendor/github.com/docker/docker/pkg/symlink/LICENSE.BSD b/vendor/github.com/docker/docker/pkg/symlink/LICENSE.BSD new file mode 100644 index 00000000..9b4f4a29 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/symlink/LICENSE.BSD @@ -0,0 +1,27 @@ +Copyright (c) 2014-2016 The Docker & 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/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/chtimes.go b/vendor/github.com/docker/docker/pkg/system/chtimes.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/chtimes.go rename to vendor/github.com/docker/docker/pkg/system/chtimes.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go b/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go rename to vendor/github.com/docker/docker/pkg/system/chtimes_unix.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go b/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go rename to vendor/github.com/docker/docker/pkg/system/chtimes_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/errors.go b/vendor/github.com/docker/docker/pkg/system/errors.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/errors.go rename to vendor/github.com/docker/docker/pkg/system/errors.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/events_windows.go b/vendor/github.com/docker/docker/pkg/system/events_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/events_windows.go rename to vendor/github.com/docker/docker/pkg/system/events_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/exitcode.go b/vendor/github.com/docker/docker/pkg/system/exitcode.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/exitcode.go rename to vendor/github.com/docker/docker/pkg/system/exitcode.go diff --git a/vendor/github.com/docker/docker/pkg/system/filesys.go b/vendor/github.com/docker/docker/pkg/system/filesys.go new file mode 100644 index 00000000..810c7947 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/filesys.go @@ -0,0 +1,54 @@ +// +build !windows + +package system + +import ( + "os" + "path/filepath" +) + +// MkdirAllWithACL is a wrapper for MkdirAll that creates a directory +// ACL'd for Builtin Administrators and Local System. +func MkdirAllWithACL(path string, perm os.FileMode) error { + return MkdirAll(path, perm) +} + +// MkdirAll creates a directory named path along with any necessary parents, +// with permission specified by attribute perm for all dir created. +func MkdirAll(path string, perm os.FileMode) error { + return os.MkdirAll(path, perm) +} + +// IsAbs is a platform-specific wrapper for filepath.IsAbs. +func IsAbs(path string) bool { + return filepath.IsAbs(path) +} + +// The functions below here are wrappers for the equivalents in the os package. +// They are passthrough on Unix platforms, and only relevant on Windows. + +// CreateSequential creates the named file with mode 0666 (before umask), truncating +// it if it already exists. If successful, methods on the returned +// File can be used for I/O; the associated file descriptor has mode +// O_RDWR. +// If there is an error, it will be of type *PathError. +func CreateSequential(name string) (*os.File, error) { + return os.Create(name) +} + +// OpenSequential opens the named file for reading. If successful, methods on +// the returned file can be used for reading; the associated file +// descriptor has mode O_RDONLY. +// If there is an error, it will be of type *PathError. +func OpenSequential(name string) (*os.File, error) { + return os.Open(name) +} + +// OpenFileSequential is the generalized open call; most users will use Open +// or Create instead. It opens the named file with specified flag +// (O_RDONLY etc.) and perm, (0666 etc.) if applicable. If successful, +// methods on the returned File can be used for I/O. +// If there is an error, it will be of type *PathError. +func OpenFileSequential(name string, flag int, perm os.FileMode) (*os.File, error) { + return os.OpenFile(name, flag, perm) +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/filesys_windows.go b/vendor/github.com/docker/docker/pkg/system/filesys_windows.go similarity index 83% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/filesys_windows.go rename to vendor/github.com/docker/docker/pkg/system/filesys_windows.go index 626d2ad8..6094f01f 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/filesys_windows.go +++ b/vendor/github.com/docker/docker/pkg/system/filesys_windows.go @@ -6,11 +6,8 @@ import ( "os" "path/filepath" "regexp" - "strconv" "strings" - "sync" "syscall" - "time" "unsafe" winio "github.com/Microsoft/go-winio" @@ -237,55 +234,3 @@ func syscallOpenSequential(path string, mode int, _ uint32) (fd syscall.Handle, h, e := syscall.CreateFile(pathp, access, sharemode, sa, createmode, fileFlagSequentialScan, 0) return h, e } - -// Helpers for TempFileSequential -var rand uint32 -var randmu sync.Mutex - -func reseed() uint32 { - return uint32(time.Now().UnixNano() + int64(os.Getpid())) -} -func nextSuffix() string { - randmu.Lock() - r := rand - if r == 0 { - r = reseed() - } - r = r*1664525 + 1013904223 // constants from Numerical Recipes - rand = r - randmu.Unlock() - return strconv.Itoa(int(1e9 + r%1e9))[1:] -} - -// TempFileSequential is a copy of ioutil.TempFile, modified to use sequential -// file access. Below is the original comment from golang: -// TempFile creates a new temporary file in the directory dir -// with a name beginning with prefix, opens the file for reading -// and writing, and returns the resulting *os.File. -// 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 TempFileSequential(dir, prefix string) (f *os.File, err error) { - if dir == "" { - dir = os.TempDir() - } - - nconflict := 0 - for i := 0; i < 10000; i++ { - name := filepath.Join(dir, prefix+nextSuffix()) - f, err = OpenFileSequential(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) - if os.IsExist(err) { - if nconflict++; nconflict > 10 { - randmu.Lock() - rand = reseed() - randmu.Unlock() - } - continue - } - break - } - return -} diff --git a/vendor/github.com/docker/docker/pkg/system/lstat.go b/vendor/github.com/docker/docker/pkg/system/lstat.go new file mode 100644 index 00000000..bd23c4d5 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/lstat.go @@ -0,0 +1,19 @@ +// +build !windows + +package system + +import ( + "syscall" +) + +// Lstat takes a path to a file and returns +// a system.StatT type pertaining to that file. +// +// Throws an error if the file does not exist +func Lstat(path string) (*StatT, error) { + s := &syscall.Stat_t{} + if err := syscall.Lstat(path, s); err != nil { + return nil, err + } + return fromStatT(s) +} diff --git a/vendor/github.com/docker/docker/pkg/system/lstat_windows.go b/vendor/github.com/docker/docker/pkg/system/lstat_windows.go new file mode 100644 index 00000000..49e87eb4 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/lstat_windows.go @@ -0,0 +1,25 @@ +// +build windows + +package system + +import ( + "os" +) + +// Lstat calls os.Lstat to get a fileinfo interface back. +// This is then copied into our own locally defined structure. +// Note the Linux version uses fromStatT to do the copy back, +// but that not strictly necessary when already in an OS specific module. +func Lstat(path string) (*StatT, error) { + fi, err := os.Lstat(path) + if err != nil { + return nil, err + } + + return &StatT{ + name: fi.Name(), + size: fi.Size(), + mode: fi.Mode(), + modTime: fi.ModTime(), + isDir: fi.IsDir()}, nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo.go b/vendor/github.com/docker/docker/pkg/system/meminfo.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo.go rename to vendor/github.com/docker/docker/pkg/system/meminfo.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_linux.go b/vendor/github.com/docker/docker/pkg/system/meminfo_linux.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_linux.go rename to vendor/github.com/docker/docker/pkg/system/meminfo_linux.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_solaris.go b/vendor/github.com/docker/docker/pkg/system/meminfo_solaris.go similarity index 99% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_solaris.go rename to vendor/github.com/docker/docker/pkg/system/meminfo_solaris.go index 925776e7..7f4f84f7 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_solaris.go +++ b/vendor/github.com/docker/docker/pkg/system/meminfo_solaris.go @@ -7,7 +7,6 @@ import ( "unsafe" ) -// #cgo CFLAGS: -std=c99 // #cgo LDFLAGS: -lkstat // #include // #include diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go b/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go rename to vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_windows.go b/vendor/github.com/docker/docker/pkg/system/meminfo_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/meminfo_windows.go rename to vendor/github.com/docker/docker/pkg/system/meminfo_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/mknod.go b/vendor/github.com/docker/docker/pkg/system/mknod.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/mknod.go rename to vendor/github.com/docker/docker/pkg/system/mknod.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/mknod_windows.go b/vendor/github.com/docker/docker/pkg/system/mknod_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/mknod_windows.go rename to vendor/github.com/docker/docker/pkg/system/mknod_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/path_unix.go b/vendor/github.com/docker/docker/pkg/system/path_unix.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/path_unix.go rename to vendor/github.com/docker/docker/pkg/system/path_unix.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/path_windows.go b/vendor/github.com/docker/docker/pkg/system/path_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/path_windows.go rename to vendor/github.com/docker/docker/pkg/system/path_windows.go diff --git a/vendor/github.com/docker/docker/pkg/system/stat.go b/vendor/github.com/docker/docker/pkg/system/stat.go new file mode 100644 index 00000000..087034c5 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat.go @@ -0,0 +1,53 @@ +// +build !windows + +package system + +import ( + "syscall" +) + +// StatT type contains status of a file. It contains metadata +// like permission, owner, group, size, etc about a file. +type StatT struct { + mode uint32 + uid uint32 + gid uint32 + rdev uint64 + size int64 + mtim syscall.Timespec +} + +// Mode returns file's permission mode. +func (s StatT) Mode() uint32 { + return s.mode +} + +// UID returns file's user id of owner. +func (s StatT) UID() uint32 { + return s.uid +} + +// GID returns file's group id of owner. +func (s StatT) GID() uint32 { + return s.gid +} + +// Rdev returns file's device ID (if it's special file). +func (s StatT) Rdev() uint64 { + return s.rdev +} + +// Size returns file's size. +func (s StatT) Size() int64 { + return s.size +} + +// Mtim returns file's last modification time. +func (s StatT) Mtim() syscall.Timespec { + return s.mtim +} + +// GetLastModification returns file's last modification time. +func (s StatT) GetLastModification() syscall.Timespec { + return s.Mtim() +} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_darwin.go b/vendor/github.com/docker/docker/pkg/system/stat_darwin.go new file mode 100644 index 00000000..f0742f59 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat_darwin.go @@ -0,0 +1,32 @@ +package system + +import ( + "syscall" +) + +// fromStatT creates a system.StatT type from a syscall.Stat_t type +func fromStatT(s *syscall.Stat_t) (*StatT, error) { + return &StatT{size: s.Size, + mode: uint32(s.Mode), + uid: s.Uid, + gid: s.Gid, + rdev: uint64(s.Rdev), + mtim: s.Mtimespec}, nil +} + +// FromStatT loads a system.StatT from a syscall.Stat_t. +func FromStatT(s *syscall.Stat_t) (*StatT, error) { + return fromStatT(s) +} + +// Stat takes a path to a file and returns +// a system.StatT type pertaining to that file. +// +// Throws an error if the file does not exist +func Stat(path string) (*StatT, error) { + s := &syscall.Stat_t{} + if err := syscall.Stat(path, s); err != nil { + return nil, err + } + return fromStatT(s) +} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go b/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go new file mode 100644 index 00000000..d0fb6f15 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go @@ -0,0 +1,27 @@ +package system + +import ( + "syscall" +) + +// fromStatT converts a syscall.Stat_t type to a system.Stat_t type +func fromStatT(s *syscall.Stat_t) (*StatT, error) { + return &StatT{size: s.Size, + mode: uint32(s.Mode), + uid: s.Uid, + gid: s.Gid, + rdev: uint64(s.Rdev), + mtim: s.Mtimespec}, nil +} + +// Stat takes a path to a file and returns +// a system.Stat_t type pertaining to that file. +// +// Throws an error if the file does not exist +func Stat(path string) (*StatT, error) { + s := &syscall.Stat_t{} + if err := syscall.Stat(path, s); err != nil { + return nil, err + } + return fromStatT(s) +} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_linux.go b/vendor/github.com/docker/docker/pkg/system/stat_linux.go new file mode 100644 index 00000000..8b1eded1 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat_linux.go @@ -0,0 +1,33 @@ +package system + +import ( + "syscall" +) + +// fromStatT converts a syscall.Stat_t type to a system.Stat_t type +func fromStatT(s *syscall.Stat_t) (*StatT, error) { + return &StatT{size: s.Size, + mode: s.Mode, + uid: s.Uid, + gid: s.Gid, + rdev: s.Rdev, + mtim: s.Mtim}, nil +} + +// FromStatT exists only on linux, and loads a system.StatT from a +// syscal.Stat_t. +func FromStatT(s *syscall.Stat_t) (*StatT, error) { + return fromStatT(s) +} + +// Stat takes a path to a file and returns +// a system.StatT type pertaining to that file. +// +// Throws an error if the file does not exist +func Stat(path string) (*StatT, error) { + s := &syscall.Stat_t{} + if err := syscall.Stat(path, s); err != nil { + return nil, err + } + return fromStatT(s) +} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go b/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go new file mode 100644 index 00000000..3c3b71fb --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go @@ -0,0 +1,15 @@ +package system + +import ( + "syscall" +) + +// fromStatT creates a system.StatT type from a syscall.Stat_t type +func fromStatT(s *syscall.Stat_t) (*StatT, error) { + return &StatT{size: s.Size, + mode: uint32(s.Mode), + uid: s.Uid, + gid: s.Gid, + rdev: uint64(s.Rdev), + mtim: s.Mtim}, nil +} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_solaris.go b/vendor/github.com/docker/docker/pkg/system/stat_solaris.go new file mode 100644 index 00000000..0216985a --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat_solaris.go @@ -0,0 +1,34 @@ +// +build solaris + +package system + +import ( + "syscall" +) + +// fromStatT creates a system.StatT type from a syscall.Stat_t type +func fromStatT(s *syscall.Stat_t) (*StatT, error) { + return &StatT{size: s.Size, + mode: uint32(s.Mode), + uid: s.Uid, + gid: s.Gid, + rdev: uint64(s.Rdev), + mtim: s.Mtim}, nil +} + +// FromStatT loads a system.StatT from a syscal.Stat_t. +func FromStatT(s *syscall.Stat_t) (*StatT, error) { + return fromStatT(s) +} + +// Stat takes a path to a file and returns +// a system.StatT type pertaining to that file. +// +// Throws an error if the file does not exist +func Stat(path string) (*StatT, error) { + s := &syscall.Stat_t{} + if err := syscall.Stat(path, s); err != nil { + return nil, err + } + return fromStatT(s) +} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_unsupported.go b/vendor/github.com/docker/docker/pkg/system/stat_unsupported.go new file mode 100644 index 00000000..5d85f523 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat_unsupported.go @@ -0,0 +1,17 @@ +// +build !linux,!windows,!freebsd,!solaris,!openbsd,!darwin + +package system + +import ( + "syscall" +) + +// fromStatT creates a system.StatT type from a syscall.Stat_t type +func fromStatT(s *syscall.Stat_t) (*StatT, error) { + return &StatT{size: s.Size, + mode: uint32(s.Mode), + uid: s.Uid, + gid: s.Gid, + rdev: uint64(s.Rdev), + mtim: s.Mtimespec}, nil +} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_windows.go b/vendor/github.com/docker/docker/pkg/system/stat_windows.go new file mode 100644 index 00000000..39490c62 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/system/stat_windows.go @@ -0,0 +1,43 @@ +// +build windows + +package system + +import ( + "os" + "time" +) + +// StatT type contains status of a file. It contains metadata +// like name, permission, size, etc about a file. +type StatT struct { + name string + size int64 + mode os.FileMode + modTime time.Time + isDir bool +} + +// Name returns file's name. +func (s StatT) Name() string { + return s.name +} + +// Size returns file's size. +func (s StatT) Size() int64 { + return s.size +} + +// Mode returns file's permission mode. +func (s StatT) Mode() os.FileMode { + return s.mode +} + +// ModTime returns file's last modification time. +func (s StatT) ModTime() time.Time { + return s.modTime +} + +// IsDir returns whether file is actually a directory. +func (s StatT) IsDir() bool { + return s.isDir +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/syscall_unix.go b/vendor/github.com/docker/docker/pkg/system/syscall_unix.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/syscall_unix.go rename to vendor/github.com/docker/docker/pkg/system/syscall_unix.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/syscall_windows.go b/vendor/github.com/docker/docker/pkg/system/syscall_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/syscall_windows.go rename to vendor/github.com/docker/docker/pkg/system/syscall_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/umask.go b/vendor/github.com/docker/docker/pkg/system/umask.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/umask.go rename to vendor/github.com/docker/docker/pkg/system/umask.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/umask_windows.go b/vendor/github.com/docker/docker/pkg/system/umask_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/umask_windows.go rename to vendor/github.com/docker/docker/pkg/system/umask_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go b/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go rename to vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/utimes_linux.go b/vendor/github.com/docker/docker/pkg/system/utimes_linux.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/utimes_linux.go rename to vendor/github.com/docker/docker/pkg/system/utimes_linux.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go b/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go rename to vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go b/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go rename to vendor/github.com/docker/docker/pkg/system/xattrs_linux.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go b/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go rename to vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone.go b/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone.go rename to vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go16.go b/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go16.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go16.go rename to vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go16.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go17.go b/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go17.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go17.go rename to vendor/github.com/docker/docker/pkg/tlsconfig/tlsconfig_clone_go17.go diff --git a/vendor/github.com/docker/docker/project/CONTRIBUTORS.md b/vendor/github.com/docker/docker/project/CONTRIBUTORS.md new file mode 120000 index 00000000..44fcc634 --- /dev/null +++ b/vendor/github.com/docker/docker/project/CONTRIBUTORS.md @@ -0,0 +1 @@ +../CONTRIBUTING.md \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/LICENSE b/vendor/github.com/docker/go-connections/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/LICENSE rename to vendor/github.com/docker/go-connections/LICENSE diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/nat/nat.go b/vendor/github.com/docker/go-connections/nat/nat.go similarity index 99% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/nat/nat.go rename to vendor/github.com/docker/go-connections/nat/nat.go index 4d5f5ae6..bb7e4e33 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/nat/nat.go +++ b/vendor/github.com/docker/go-connections/nat/nat.go @@ -113,7 +113,7 @@ func SplitProtoPort(rawPort string) (string, string) { } func validateProto(proto string) bool { - for _, availableProto := range []string{"tcp", "udp"} { + for _, availableProto := range []string{"tcp", "udp", "sctp"} { if availableProto == proto { return true } diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/nat/parse.go b/vendor/github.com/docker/go-connections/nat/parse.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/nat/parse.go rename to vendor/github.com/docker/go-connections/nat/parse.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/nat/sort.go b/vendor/github.com/docker/go-connections/nat/sort.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/nat/sort.go rename to vendor/github.com/docker/go-connections/nat/sort.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/README.md b/vendor/github.com/docker/go-connections/sockets/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/README.md rename to vendor/github.com/docker/go-connections/sockets/README.md diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/inmem_socket.go b/vendor/github.com/docker/go-connections/sockets/inmem_socket.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/inmem_socket.go rename to vendor/github.com/docker/go-connections/sockets/inmem_socket.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/proxy.go b/vendor/github.com/docker/go-connections/sockets/proxy.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/proxy.go rename to vendor/github.com/docker/go-connections/sockets/proxy.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/sockets.go b/vendor/github.com/docker/go-connections/sockets/sockets.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/sockets.go rename to vendor/github.com/docker/go-connections/sockets/sockets.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/sockets_unix.go b/vendor/github.com/docker/go-connections/sockets/sockets_unix.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/sockets_unix.go rename to vendor/github.com/docker/go-connections/sockets/sockets_unix.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/sockets_windows.go b/vendor/github.com/docker/go-connections/sockets/sockets_windows.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/sockets_windows.go rename to vendor/github.com/docker/go-connections/sockets/sockets_windows.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/tcp_socket.go b/vendor/github.com/docker/go-connections/sockets/tcp_socket.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/tcp_socket.go rename to vendor/github.com/docker/go-connections/sockets/tcp_socket.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/unix_socket.go b/vendor/github.com/docker/go-connections/sockets/unix_socket.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/sockets/unix_socket.go rename to vendor/github.com/docker/go-connections/sockets/unix_socket.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig/certpool_go17.go b/vendor/github.com/docker/go-connections/tlsconfig/certpool_go17.go similarity index 80% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig/certpool_go17.go rename to vendor/github.com/docker/go-connections/tlsconfig/certpool_go17.go index 1d5fa4c7..1ca0965e 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig/certpool_go17.go +++ b/vendor/github.com/docker/go-connections/tlsconfig/certpool_go17.go @@ -5,8 +5,6 @@ package tlsconfig import ( "crypto/x509" "runtime" - - "github.com/Sirupsen/logrus" ) // SystemCertPool returns a copy of the system cert pool, @@ -14,7 +12,6 @@ import ( func SystemCertPool() (*x509.CertPool, error) { certpool, err := x509.SystemCertPool() if err != nil && runtime.GOOS == "windows" { - logrus.Infof("Unable to use system certificate pool: %v", err) return x509.NewCertPool(), nil } return certpool, err diff --git a/vendor/github.com/docker/go-connections/tlsconfig/certpool_other.go b/vendor/github.com/docker/go-connections/tlsconfig/certpool_other.go new file mode 100644 index 00000000..1ff81c33 --- /dev/null +++ b/vendor/github.com/docker/go-connections/tlsconfig/certpool_other.go @@ -0,0 +1,13 @@ +// +build !go1.7 + +package tlsconfig + +import ( + "crypto/x509" +) + +// SystemCertPool returns an new empty cert pool, +// accessing system cert pool is supported in go 1.7 +func SystemCertPool() (*x509.CertPool, error) { + return x509.NewCertPool(), nil +} diff --git a/vendor/github.com/docker/go-connections/tlsconfig/config.go b/vendor/github.com/docker/go-connections/tlsconfig/config.go new file mode 100644 index 00000000..0ef3fdcb --- /dev/null +++ b/vendor/github.com/docker/go-connections/tlsconfig/config.go @@ -0,0 +1,254 @@ +// Package tlsconfig provides primitives to retrieve secure-enough TLS configurations for both clients and servers. +// +// As a reminder from https://golang.org/pkg/crypto/tls/#Config: +// A Config structure is used to configure a TLS client or server. After one has been passed to a TLS function it must not be modified. +// A Config may be reused; the tls package will also not modify it. +package tlsconfig + +import ( + "crypto/tls" + "crypto/x509" + "encoding/pem" + "fmt" + "io/ioutil" + "os" + + "github.com/pkg/errors" +) + +// Options represents the information needed to create client and server TLS configurations. +type Options struct { + CAFile string + + // If either CertFile or KeyFile is empty, Client() will not load them + // preventing the client from authenticating to the server. + // However, Server() requires them and will error out if they are empty. + CertFile string + KeyFile string + + // client-only option + InsecureSkipVerify bool + // server-only option + ClientAuth tls.ClientAuthType + // If ExclusiveRootPools is set, then if a CA file is provided, the root pool used for TLS + // creds will include exclusively the roots in that CA file. If no CA file is provided, + // the system pool will be used. + ExclusiveRootPools bool + MinVersion uint16 + // If Passphrase is set, it will be used to decrypt a TLS private key + // if the key is encrypted + Passphrase string +} + +// Extra (server-side) accepted CBC cipher suites - will phase out in the future +var acceptedCBCCiphers = []uint16{ + tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, + tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, + tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, +} + +// DefaultServerAcceptedCiphers should be uses by code which already has a crypto/tls +// options struct but wants to use a commonly accepted set of TLS cipher suites, with +// known weak algorithms removed. +var DefaultServerAcceptedCiphers = append(clientCipherSuites, acceptedCBCCiphers...) + +// allTLSVersions lists all the TLS versions and is used by the code that validates +// a uint16 value as a TLS version. +var allTLSVersions = map[uint16]struct{}{ + tls.VersionSSL30: {}, + tls.VersionTLS10: {}, + tls.VersionTLS11: {}, + tls.VersionTLS12: {}, +} + +// ServerDefault returns a secure-enough TLS configuration for the server TLS configuration. +func ServerDefault(ops ...func(*tls.Config)) *tls.Config { + tlsconfig := &tls.Config{ + // Avoid fallback by default to SSL protocols < TLS1.2 + MinVersion: tls.VersionTLS12, + PreferServerCipherSuites: true, + CipherSuites: DefaultServerAcceptedCiphers, + } + + for _, op := range ops { + op(tlsconfig) + } + + return tlsconfig +} + +// ClientDefault returns a secure-enough TLS configuration for the client TLS configuration. +func ClientDefault(ops ...func(*tls.Config)) *tls.Config { + tlsconfig := &tls.Config{ + // Prefer TLS1.2 as the client minimum + MinVersion: tls.VersionTLS12, + CipherSuites: clientCipherSuites, + } + + for _, op := range ops { + op(tlsconfig) + } + + return tlsconfig +} + +// certPool returns an X.509 certificate pool from `caFile`, the certificate file. +func certPool(caFile string, exclusivePool bool) (*x509.CertPool, error) { + // If we should verify the server, we need to load a trusted ca + var ( + certPool *x509.CertPool + err error + ) + if exclusivePool { + certPool = x509.NewCertPool() + } else { + certPool, err = SystemCertPool() + if err != nil { + return nil, fmt.Errorf("failed to read system certificates: %v", err) + } + } + pem, err := ioutil.ReadFile(caFile) + if err != nil { + return nil, fmt.Errorf("could not read CA certificate %q: %v", caFile, err) + } + if !certPool.AppendCertsFromPEM(pem) { + return nil, fmt.Errorf("failed to append certificates from PEM file: %q", caFile) + } + return certPool, nil +} + +// isValidMinVersion checks that the input value is a valid tls minimum version +func isValidMinVersion(version uint16) bool { + _, ok := allTLSVersions[version] + return ok +} + +// adjustMinVersion sets the MinVersion on `config`, the input configuration. +// It assumes the current MinVersion on the `config` is the lowest allowed. +func adjustMinVersion(options Options, config *tls.Config) error { + if options.MinVersion > 0 { + if !isValidMinVersion(options.MinVersion) { + return fmt.Errorf("Invalid minimum TLS version: %x", options.MinVersion) + } + if options.MinVersion < config.MinVersion { + return fmt.Errorf("Requested minimum TLS version is too low. Should be at-least: %x", config.MinVersion) + } + config.MinVersion = options.MinVersion + } + + return nil +} + +// IsErrEncryptedKey returns true if the 'err' is an error of incorrect +// password when tryin to decrypt a TLS private key +func IsErrEncryptedKey(err error) bool { + return errors.Cause(err) == x509.IncorrectPasswordError +} + +// getPrivateKey returns the private key in 'keyBytes', in PEM-encoded format. +// If the private key is encrypted, 'passphrase' is used to decrypted the +// private key. +func getPrivateKey(keyBytes []byte, passphrase string) ([]byte, error) { + // this section makes some small changes to code from notary/tuf/utils/x509.go + pemBlock, _ := pem.Decode(keyBytes) + if pemBlock == nil { + return nil, fmt.Errorf("no valid private key found") + } + + var err error + if x509.IsEncryptedPEMBlock(pemBlock) { + keyBytes, err = x509.DecryptPEMBlock(pemBlock, []byte(passphrase)) + if err != nil { + return nil, errors.Wrap(err, "private key is encrypted, but could not decrypt it") + } + keyBytes = pem.EncodeToMemory(&pem.Block{Type: pemBlock.Type, Bytes: keyBytes}) + } + + return keyBytes, nil +} + +// getCert returns a Certificate from the CertFile and KeyFile in 'options', +// if the key is encrypted, the Passphrase in 'options' will be used to +// decrypt it. +func getCert(options Options) ([]tls.Certificate, error) { + if options.CertFile == "" && options.KeyFile == "" { + return nil, nil + } + + errMessage := "Could not load X509 key pair" + + cert, err := ioutil.ReadFile(options.CertFile) + if err != nil { + return nil, errors.Wrap(err, errMessage) + } + + prKeyBytes, err := ioutil.ReadFile(options.KeyFile) + if err != nil { + return nil, errors.Wrap(err, errMessage) + } + + prKeyBytes, err = getPrivateKey(prKeyBytes, options.Passphrase) + if err != nil { + return nil, errors.Wrap(err, errMessage) + } + + tlsCert, err := tls.X509KeyPair(cert, prKeyBytes) + if err != nil { + return nil, errors.Wrap(err, errMessage) + } + + return []tls.Certificate{tlsCert}, nil +} + +// Client returns a TLS configuration meant to be used by a client. +func Client(options Options) (*tls.Config, error) { + tlsConfig := ClientDefault() + tlsConfig.InsecureSkipVerify = options.InsecureSkipVerify + if !options.InsecureSkipVerify && options.CAFile != "" { + CAs, err := certPool(options.CAFile, options.ExclusiveRootPools) + if err != nil { + return nil, err + } + tlsConfig.RootCAs = CAs + } + + tlsCerts, err := getCert(options) + if err != nil { + return nil, err + } + tlsConfig.Certificates = tlsCerts + + if err := adjustMinVersion(options, tlsConfig); err != nil { + return nil, err + } + + return tlsConfig, nil +} + +// Server returns a TLS configuration meant to be used by a server. +func Server(options Options) (*tls.Config, error) { + tlsConfig := ServerDefault() + tlsConfig.ClientAuth = options.ClientAuth + tlsCert, err := tls.LoadX509KeyPair(options.CertFile, options.KeyFile) + if err != nil { + if os.IsNotExist(err) { + return nil, fmt.Errorf("Could not load X509 key pair (cert: %q, key: %q): %v", options.CertFile, options.KeyFile, err) + } + return nil, fmt.Errorf("Error reading X509 key pair (cert: %q, key: %q): %v. Make sure the key is not encrypted.", options.CertFile, options.KeyFile, err) + } + tlsConfig.Certificates = []tls.Certificate{tlsCert} + if options.ClientAuth >= tls.VerifyClientCertIfGiven && options.CAFile != "" { + CAs, err := certPool(options.CAFile, options.ExclusiveRootPools) + if err != nil { + return nil, err + } + tlsConfig.ClientCAs = CAs + } + + if err := adjustMinVersion(options, tlsConfig); err != nil { + return nil, err + } + + return tlsConfig, nil +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go b/vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go rename to vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig/config_legacy_client_ciphers.go b/vendor/github.com/docker/go-connections/tlsconfig/config_legacy_client_ciphers.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-connections/tlsconfig/config_legacy_client_ciphers.go rename to vendor/github.com/docker/go-connections/tlsconfig/config_legacy_client_ciphers.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/CONTRIBUTING.md b/vendor/github.com/docker/go-units/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/CONTRIBUTING.md rename to vendor/github.com/docker/go-units/CONTRIBUTING.md diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/LICENSE b/vendor/github.com/docker/go-units/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/LICENSE rename to vendor/github.com/docker/go-units/LICENSE diff --git a/vendor/github.com/docker/go-units/MAINTAINERS b/vendor/github.com/docker/go-units/MAINTAINERS new file mode 100644 index 00000000..9b3b6b10 --- /dev/null +++ b/vendor/github.com/docker/go-units/MAINTAINERS @@ -0,0 +1,46 @@ +# go-units maintainers file +# +# This file describes who runs the docker/go-units project and how. +# This is a living document - if you see something out of date or missing, speak up! +# +# It is structured to be consumable by both humans and programs. +# To extract its contents programmatically, use any TOML-compliant parser. +# +# This file is compiled into the MAINTAINERS file in docker/opensource. +# +[Org] + [Org."Core maintainers"] + people = [ + "akihirosuda", + "dnephin", + "thajeztah", + "vdemeester", + ] + +[people] + +# A reference list of all people associated with the project. +# All other sections should refer to people by their canonical key +# in the people section. + + # ADD YOURSELF HERE IN ALPHABETICAL ORDER + + [people.akihirosuda] + Name = "Akihiro Suda" + Email = "suda.akihiro@lab.ntt.co.jp" + GitHub = "AkihiroSuda" + + [people.dnephin] + Name = "Daniel Nephin" + Email = "dnephin@gmail.com" + GitHub = "dnephin" + + [people.thajeztah] + Name = "Sebastiaan van Stijn" + Email = "github@gone.nl" + GitHub = "thaJeztah" + + [people.vdemeester] + Name = "Vincent Demeester" + Email = "vincent@sbr.pm" + GitHub = "vdemeester" \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/README.md b/vendor/github.com/docker/go-units/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/README.md rename to vendor/github.com/docker/go-units/README.md diff --git a/vendor/github.com/docker/go-units/circle.yml b/vendor/github.com/docker/go-units/circle.yml new file mode 100644 index 00000000..9043b354 --- /dev/null +++ b/vendor/github.com/docker/go-units/circle.yml @@ -0,0 +1,11 @@ +dependencies: + post: + # install golint + - go get github.com/golang/lint/golint + +test: + pre: + # run analysis before tests + - go vet ./... + - test -z "$(golint ./... | tee /dev/stderr)" + - test -z "$(gofmt -s -l . | tee /dev/stderr)" diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/duration.go b/vendor/github.com/docker/go-units/duration.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/duration.go rename to vendor/github.com/docker/go-units/duration.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/size.go b/vendor/github.com/docker/go-units/size.go similarity index 99% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/size.go rename to vendor/github.com/docker/go-units/size.go index 44616c27..85f6ab07 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/size.go +++ b/vendor/github.com/docker/go-units/size.go @@ -31,7 +31,7 @@ type unitMap map[string]int64 var ( decimalMap = unitMap{"k": KB, "m": MB, "g": GB, "t": TB, "p": PB} binaryMap = unitMap{"k": KiB, "m": MiB, "g": GiB, "t": TiB, "p": PiB} - sizeRegex = regexp.MustCompile(`^(\d+(\.\d+)*) ?([kKmMgGtTpP])?[bB]?$`) + sizeRegex = regexp.MustCompile(`^(\d+(\.\d+)*) ?([kKmMgGtTpP])?[iI]?[bB]?$`) ) var decimapAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/ulimit.go b/vendor/github.com/docker/go-units/ulimit.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/go-units/ulimit.go rename to vendor/github.com/docker/go-units/ulimit.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/CONTRIBUTING.md b/vendor/github.com/docker/libtrust/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/CONTRIBUTING.md rename to vendor/github.com/docker/libtrust/CONTRIBUTING.md diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/LICENSE b/vendor/github.com/docker/libtrust/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/LICENSE rename to vendor/github.com/docker/libtrust/LICENSE diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/MAINTAINERS b/vendor/github.com/docker/libtrust/MAINTAINERS similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/MAINTAINERS rename to vendor/github.com/docker/libtrust/MAINTAINERS diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/README.md b/vendor/github.com/docker/libtrust/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/README.md rename to vendor/github.com/docker/libtrust/README.md diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/certificates.go b/vendor/github.com/docker/libtrust/certificates.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/certificates.go rename to vendor/github.com/docker/libtrust/certificates.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/doc.go b/vendor/github.com/docker/libtrust/doc.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/doc.go rename to vendor/github.com/docker/libtrust/doc.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/ec_key.go b/vendor/github.com/docker/libtrust/ec_key.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/ec_key.go rename to vendor/github.com/docker/libtrust/ec_key.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/filter.go b/vendor/github.com/docker/libtrust/filter.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/filter.go rename to vendor/github.com/docker/libtrust/filter.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/hash.go b/vendor/github.com/docker/libtrust/hash.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/hash.go rename to vendor/github.com/docker/libtrust/hash.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/jsonsign.go b/vendor/github.com/docker/libtrust/jsonsign.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/jsonsign.go rename to vendor/github.com/docker/libtrust/jsonsign.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/key.go b/vendor/github.com/docker/libtrust/key.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/key.go rename to vendor/github.com/docker/libtrust/key.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/key_files.go b/vendor/github.com/docker/libtrust/key_files.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/key_files.go rename to vendor/github.com/docker/libtrust/key_files.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/key_manager.go b/vendor/github.com/docker/libtrust/key_manager.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/key_manager.go rename to vendor/github.com/docker/libtrust/key_manager.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/rsa_key.go b/vendor/github.com/docker/libtrust/rsa_key.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/rsa_key.go rename to vendor/github.com/docker/libtrust/rsa_key.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/util.go b/vendor/github.com/docker/libtrust/util.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/docker/libtrust/util.go rename to vendor/github.com/docker/libtrust/util.go diff --git a/vendor/github.com/dustin/go-humanize/.travis.yml b/vendor/github.com/dustin/go-humanize/.travis.yml new file mode 100644 index 00000000..ba95cdd1 --- /dev/null +++ b/vendor/github.com/dustin/go-humanize/.travis.yml @@ -0,0 +1,21 @@ +sudo: false +language: go +go: + - 1.3.x + - 1.5.x + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x + - master +matrix: + allow_failures: + - go: master + fast_finish: true +install: + - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step). +script: + - go get -t -v ./... + - diff -u <(echo -n) <(gofmt -d -s .) + - go tool vet . + - go test -v -race ./... diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/LICENSE b/vendor/github.com/dustin/go-humanize/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/LICENSE rename to vendor/github.com/dustin/go-humanize/LICENSE diff --git a/vendor/github.com/dustin/go-humanize/README.markdown b/vendor/github.com/dustin/go-humanize/README.markdown new file mode 100644 index 00000000..91b4ae56 --- /dev/null +++ b/vendor/github.com/dustin/go-humanize/README.markdown @@ -0,0 +1,124 @@ +# Humane Units [![Build Status](https://travis-ci.org/dustin/go-humanize.svg?branch=master)](https://travis-ci.org/dustin/go-humanize) [![GoDoc](https://godoc.org/github.com/dustin/go-humanize?status.svg)](https://godoc.org/github.com/dustin/go-humanize) + +Just a few functions for helping humanize times and sizes. + +`go get` it as `github.com/dustin/go-humanize`, import it as +`"github.com/dustin/go-humanize"`, use it as `humanize`. + +See [godoc](https://godoc.org/github.com/dustin/go-humanize) for +complete documentation. + +## Sizes + +This lets you take numbers like `82854982` and convert them to useful +strings like, `83 MB` or `79 MiB` (whichever you prefer). + +Example: + +```go +fmt.Printf("That file is %s.", humanize.Bytes(82854982)) // That file is 83 MB. +``` + +## Times + +This lets you take a `time.Time` and spit it out in relative terms. +For example, `12 seconds ago` or `3 days from now`. + +Example: + +```go +fmt.Printf("This was touched %s.", humanize.Time(someTimeInstance)) // This was touched 7 hours ago. +``` + +Thanks to Kyle Lemons for the time implementation from an IRC +conversation one day. It's pretty neat. + +## Ordinals + +From a [mailing list discussion][odisc] where a user wanted to be able +to label ordinals. + + 0 -> 0th + 1 -> 1st + 2 -> 2nd + 3 -> 3rd + 4 -> 4th + [...] + +Example: + +```go +fmt.Printf("You're my %s best friend.", humanize.Ordinal(193)) // You are my 193rd best friend. +``` + +## Commas + +Want to shove commas into numbers? Be my guest. + + 0 -> 0 + 100 -> 100 + 1000 -> 1,000 + 1000000000 -> 1,000,000,000 + -100000 -> -100,000 + +Example: + +```go +fmt.Printf("You owe $%s.\n", humanize.Comma(6582491)) // You owe $6,582,491. +``` + +## Ftoa + +Nicer float64 formatter that removes trailing zeros. + +```go +fmt.Printf("%f", 2.24) // 2.240000 +fmt.Printf("%s", humanize.Ftoa(2.24)) // 2.24 +fmt.Printf("%f", 2.0) // 2.000000 +fmt.Printf("%s", humanize.Ftoa(2.0)) // 2 +``` + +## SI notation + +Format numbers with [SI notation][sinotation]. + +Example: + +```go +humanize.SI(0.00000000223, "M") // 2.23 nM +``` + +## English-specific functions + +The following functions are in the `humanize/english` subpackage. + +### Plurals + +Simple English pluralization + +```go +english.PluralWord(1, "object", "") // object +english.PluralWord(42, "object", "") // objects +english.PluralWord(2, "bus", "") // buses +english.PluralWord(99, "locus", "loci") // loci + +english.Plural(1, "object", "") // 1 object +english.Plural(42, "object", "") // 42 objects +english.Plural(2, "bus", "") // 2 buses +english.Plural(99, "locus", "loci") // 99 loci +``` + +### Word series + +Format comma-separated words lists with conjuctions: + +```go +english.WordSeries([]string{"foo"}, "and") // foo +english.WordSeries([]string{"foo", "bar"}, "and") // foo and bar +english.WordSeries([]string{"foo", "bar", "baz"}, "and") // foo, bar and baz + +english.OxfordWordSeries([]string{"foo", "bar", "baz"}, "and") // foo, bar, and baz +``` + +[odisc]: https://groups.google.com/d/topic/golang-nuts/l8NhI74jl-4/discussion +[sinotation]: http://en.wikipedia.org/wiki/Metric_prefix diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/big.go b/vendor/github.com/dustin/go-humanize/big.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/big.go rename to vendor/github.com/dustin/go-humanize/big.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/bigbytes.go b/vendor/github.com/dustin/go-humanize/bigbytes.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/bigbytes.go rename to vendor/github.com/dustin/go-humanize/bigbytes.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/bytes.go b/vendor/github.com/dustin/go-humanize/bytes.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/bytes.go rename to vendor/github.com/dustin/go-humanize/bytes.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/comma.go b/vendor/github.com/dustin/go-humanize/comma.go similarity index 85% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/comma.go rename to vendor/github.com/dustin/go-humanize/comma.go index eb285cb9..520ae3e5 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/comma.go +++ b/vendor/github.com/dustin/go-humanize/comma.go @@ -15,7 +15,7 @@ import ( func Comma(v int64) string { sign := "" - // minin64 can't be negated to a usable value, so it has to be special cased. + // Min int64 can't be negated to a usable value, so it has to be special cased. if v == math.MinInt64 { return "-9,223,372,036,854,775,808" } @@ -76,6 +76,14 @@ func Commaf(v float64) string { return buf.String() } +// CommafWithDigits works like the Commaf but limits the resulting +// string to the given number of decimal places. +// +// e.g. CommafWithDigits(834142.32, 1) -> 834,142.3 +func CommafWithDigits(f float64, decimals int) string { + return stripTrailingDigits(Commaf(f), decimals) +} + // BigComma produces a string form of the given big.Int in base 10 // with commas after every three orders of magnitude. func BigComma(b *big.Int) string { diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/commaf.go b/vendor/github.com/dustin/go-humanize/commaf.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/commaf.go rename to vendor/github.com/dustin/go-humanize/commaf.go diff --git a/vendor/github.com/dustin/go-humanize/ftoa.go b/vendor/github.com/dustin/go-humanize/ftoa.go new file mode 100644 index 00000000..1c62b640 --- /dev/null +++ b/vendor/github.com/dustin/go-humanize/ftoa.go @@ -0,0 +1,46 @@ +package humanize + +import ( + "strconv" + "strings" +) + +func stripTrailingZeros(s string) string { + offset := len(s) - 1 + for offset > 0 { + if s[offset] == '.' { + offset-- + break + } + if s[offset] != '0' { + break + } + offset-- + } + return s[:offset+1] +} + +func stripTrailingDigits(s string, digits int) string { + if i := strings.Index(s, "."); i >= 0 { + if digits <= 0 { + return s[:i] + } + i++ + if i+digits >= len(s) { + return s + } + return s[:i+digits] + } + return s +} + +// Ftoa converts a float to a string with no trailing zeros. +func Ftoa(num float64) string { + return stripTrailingZeros(strconv.FormatFloat(num, 'f', 6, 64)) +} + +// FtoaWithDigits converts a float to a string but limits the resulting string +// to the given number of decimal places, and no trailing zeros. +func FtoaWithDigits(num float64, digits int) string { + return stripTrailingZeros(stripTrailingDigits(strconv.FormatFloat(num, 'f', 6, 64), digits)) +} diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/humanize.go b/vendor/github.com/dustin/go-humanize/humanize.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/humanize.go rename to vendor/github.com/dustin/go-humanize/humanize.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/number.go b/vendor/github.com/dustin/go-humanize/number.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/number.go rename to vendor/github.com/dustin/go-humanize/number.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/ordinals.go b/vendor/github.com/dustin/go-humanize/ordinals.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/ordinals.go rename to vendor/github.com/dustin/go-humanize/ordinals.go diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/si.go b/vendor/github.com/dustin/go-humanize/si.go similarity index 86% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/si.go rename to vendor/github.com/dustin/go-humanize/si.go index b24e4816..ae659e0e 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/si.go +++ b/vendor/github.com/dustin/go-humanize/si.go @@ -93,6 +93,16 @@ func SI(input float64, unit string) string { return Ftoa(value) + " " + prefix + unit } +// SIWithDigits works like SI but limits the resulting string to the +// given number of decimal places. +// +// e.g. SIWithDigits(1000000, 0, "B") -> 1 MB +// e.g. SIWithDigits(2.2345e-12, 2, "F") -> 2.23 pF +func SIWithDigits(input float64, decimals int, unit string) string { + value, prefix := ComputeSI(input) + return FtoaWithDigits(value, decimals) + " " + prefix + unit +} + var errInvalid = errors.New("invalid input") // ParseSI parses an SI string back into the number and unit. diff --git a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/times.go b/vendor/github.com/dustin/go-humanize/times.go similarity index 98% rename from vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/times.go rename to vendor/github.com/dustin/go-humanize/times.go index b311f11c..dd3fbf5e 100644 --- a/vendor/github.com/elastic/beats/vendor/github.com/dustin/go-humanize/times.go +++ b/vendor/github.com/dustin/go-humanize/times.go @@ -91,7 +91,7 @@ func CustomRelTime(a, b time.Time, albl, blbl string, magnitudes []RelTimeMagnit } n := sort.Search(len(magnitudes), func(i int) bool { - return magnitudes[i].D >= diff + return magnitudes[i].D > diff }) if n >= len(magnitudes) { diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/go-resiliency/LICENSE b/vendor/github.com/eapache/go-resiliency/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/go-resiliency/LICENSE rename to vendor/github.com/eapache/go-resiliency/LICENSE diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/go-resiliency/breaker/README.md b/vendor/github.com/eapache/go-resiliency/breaker/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/go-resiliency/breaker/README.md rename to vendor/github.com/eapache/go-resiliency/breaker/README.md diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/go-resiliency/breaker/breaker.go b/vendor/github.com/eapache/go-resiliency/breaker/breaker.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/go-resiliency/breaker/breaker.go rename to vendor/github.com/eapache/go-resiliency/breaker/breaker.go diff --git a/vendor/github.com/eapache/go-xerial-snappy/.gitignore b/vendor/github.com/eapache/go-xerial-snappy/.gitignore new file mode 100644 index 00000000..daf913b1 --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/.gitignore @@ -0,0 +1,24 @@ +# 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/vendor/github.com/eapache/go-xerial-snappy/.travis.yml b/vendor/github.com/eapache/go-xerial-snappy/.travis.yml new file mode 100644 index 00000000..d6cf4f1f --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/.travis.yml @@ -0,0 +1,7 @@ +language: go + +go: +- 1.5.4 +- 1.6.1 + +sudo: false diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/go-xerial-snappy/LICENSE b/vendor/github.com/eapache/go-xerial-snappy/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/go-xerial-snappy/LICENSE rename to vendor/github.com/eapache/go-xerial-snappy/LICENSE diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/go-xerial-snappy/README.md b/vendor/github.com/eapache/go-xerial-snappy/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/go-xerial-snappy/README.md rename to vendor/github.com/eapache/go-xerial-snappy/README.md diff --git a/vendor/github.com/eapache/go-xerial-snappy/fuzz.go b/vendor/github.com/eapache/go-xerial-snappy/fuzz.go new file mode 100644 index 00000000..6a46f478 --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/fuzz.go @@ -0,0 +1,16 @@ +// +build gofuzz + +package snappy + +func Fuzz(data []byte) int { + decode, err := Decode(data) + if decode == nil && err == nil { + panic("nil error with nil result") + } + + if err != nil { + return 0 + } + + return 1 +} diff --git a/vendor/github.com/eapache/go-xerial-snappy/snappy.go b/vendor/github.com/eapache/go-xerial-snappy/snappy.go new file mode 100644 index 00000000..ea8f7afe --- /dev/null +++ b/vendor/github.com/eapache/go-xerial-snappy/snappy.go @@ -0,0 +1,131 @@ +package snappy + +import ( + "bytes" + "encoding/binary" + "errors" + + master "github.com/golang/snappy" +) + +const ( + sizeOffset = 16 + sizeBytes = 4 +) + +var ( + xerialHeader = []byte{130, 83, 78, 65, 80, 80, 89, 0} + + // This is xerial version 1 and minimally compatible with version 1 + xerialVersionInfo = []byte{0, 0, 0, 1, 0, 0, 0, 1} + + // ErrMalformed is returned by the decoder when the xerial framing + // is malformed + ErrMalformed = errors.New("malformed xerial framing") +) + +func min(x, y int) int { + if x < y { + return x + } + return y +} + +// Encode encodes data as snappy with no framing header. +func Encode(src []byte) []byte { + return master.Encode(nil, src) +} + +// EncodeStream *appends* to the specified 'dst' the compressed +// 'src' in xerial framing format. If 'dst' does not have enough +// capacity, then a new slice will be allocated. If 'dst' has +// non-zero length, then if *must* have been built using this function. +func EncodeStream(dst, src []byte) []byte { + if len(dst) == 0 { + dst = append(dst, xerialHeader...) + dst = append(dst, xerialVersionInfo...) + } + + // Snappy encode in blocks of maximum 32KB + var ( + max = len(src) + blockSize = 32 * 1024 + pos = 0 + chunk []byte + ) + + for pos < max { + newPos := min(pos + blockSize, max) + chunk = master.Encode(chunk[:cap(chunk)], src[pos:newPos]) + + // First encode the compressed size (big-endian) + // Put* panics if the buffer is too small, so pad 4 bytes first + origLen := len(dst) + dst = append(dst, dst[0:4]...) + binary.BigEndian.PutUint32(dst[origLen:], uint32(len(chunk))) + + // And now the compressed data + dst = append(dst, chunk...) + pos = newPos + } + return dst +} + +// Decode decodes snappy data whether it is traditional unframed +// or includes the xerial framing format. +func Decode(src []byte) ([]byte, error) { + return DecodeInto(nil, src) +} + +// DecodeInto decodes snappy data whether it is traditional unframed +// or includes the xerial framing format into the specified `dst`. +// It is assumed that the entirety of `dst` including all capacity is available +// for use by this function. If `dst` is nil *or* insufficiently large to hold +// the decoded `src`, new space will be allocated. +func DecodeInto(dst, src []byte) ([]byte, error) { + var max = len(src) + if max < len(xerialHeader) { + return nil, ErrMalformed + } + + if !bytes.Equal(src[:8], xerialHeader) { + return master.Decode(dst[:cap(dst)], src) + } + + if max < sizeOffset+sizeBytes { + return nil, ErrMalformed + } + + if dst == nil { + dst = make([]byte, 0, len(src)) + } + + dst = dst[:0] + var ( + pos = sizeOffset + chunk []byte + err error + ) + + for pos+sizeBytes <= max { + size := int(binary.BigEndian.Uint32(src[pos : pos+sizeBytes])) + pos += sizeBytes + + nextPos := pos + size + // On architectures where int is 32-bytes wide size + pos could + // overflow so we need to check the low bound as well as the + // high + if nextPos < pos || nextPos > max { + return nil, ErrMalformed + } + + chunk, err = master.Decode(chunk[:cap(chunk)], src[pos:nextPos]) + + if err != nil { + return nil, err + } + pos = nextPos + dst = append(dst, chunk...) + } + return dst, nil +} diff --git a/vendor/github.com/eapache/queue/.gitignore b/vendor/github.com/eapache/queue/.gitignore new file mode 100644 index 00000000..83656241 --- /dev/null +++ b/vendor/github.com/eapache/queue/.gitignore @@ -0,0 +1,23 @@ +# 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/vendor/github.com/eapache/queue/.travis.yml b/vendor/github.com/eapache/queue/.travis.yml new file mode 100644 index 00000000..235a40a4 --- /dev/null +++ b/vendor/github.com/eapache/queue/.travis.yml @@ -0,0 +1,7 @@ +language: go +sudo: false + +go: + - 1.2 + - 1.3 + - 1.4 diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/queue/LICENSE b/vendor/github.com/eapache/queue/LICENSE similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/queue/LICENSE rename to vendor/github.com/eapache/queue/LICENSE diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/queue/README.md b/vendor/github.com/eapache/queue/README.md similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/queue/README.md rename to vendor/github.com/eapache/queue/README.md diff --git a/vendor/github.com/elastic/beats/vendor/github.com/eapache/queue/queue.go b/vendor/github.com/eapache/queue/queue.go similarity index 100% rename from vendor/github.com/elastic/beats/vendor/github.com/eapache/queue/queue.go rename to vendor/github.com/eapache/queue/queue.go diff --git a/vendor/github.com/elastic/beats/.go-version b/vendor/github.com/elastic/beats/.go-version index 5ad2491c..587c5f0c 100644 --- a/vendor/github.com/elastic/beats/.go-version +++ b/vendor/github.com/elastic/beats/.go-version @@ -1 +1 @@ -1.10.2 +1.10.3 diff --git a/vendor/github.com/elastic/beats/.travis.yml b/vendor/github.com/elastic/beats/.travis.yml index 21348a42..edc80e52 100644 --- a/vendor/github.com/elastic/beats/.travis.yml +++ b/vendor/github.com/elastic/beats/.travis.yml @@ -14,6 +14,7 @@ env: - GOX_FLAGS="-arch amd64" - DOCKER_COMPOSE_VERSION=1.11.1 - GO_VERSION="$(cat .go-version)" + # Newer versions of minikube fail on travis, see: https://github.com/kubernetes/minikube/issues/2704 - TRAVIS_MINIKUBE_VERSION=v0.25.2 jobs: @@ -109,18 +110,6 @@ jobs: stage: test # Kubernetes - - os: linux - install: deploy/kubernetes/.travis/setup.sh - env: - - TARGETS="-C deploy/kubernetes test" - - TRAVIS_K8S_VERSION=v1.6.4 - stage: test - - os: linux - install: deploy/kubernetes/.travis/setup.sh - env: - - TARGETS="-C deploy/kubernetes test" - - TRAVIS_K8S_VERSION=v1.7.5 - stage: test - os: linux install: deploy/kubernetes/.travis/setup.sh env: @@ -139,6 +128,13 @@ jobs: - TARGETS="-C deploy/kubernetes test" - TRAVIS_K8S_VERSION=v1.10.0 stage: test + # TODO include 1.11 once minikube supports it + #- os: linux + # install: deploy/kubernetes/.travis/setup.sh + # env: + # - TARGETS="-C deploy/kubernetes test" + # - TRAVIS_K8S_VERSION=v1.11.0 + # stage: test addons: apt: @@ -156,6 +152,8 @@ before_install: - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose - chmod +x docker-compose - sudo mv docker-compose /usr/local/bin + - if [ $TRAVIS_OS_NAME = osx ]; then pip install virtualenv; fi + # Skips installations step install: true diff --git a/vendor/github.com/elastic/beats/CHANGELOG-developer.asciidoc b/vendor/github.com/elastic/beats/CHANGELOG-developer.asciidoc index 60b83f9b..cf844df5 100644 --- a/vendor/github.com/elastic/beats/CHANGELOG-developer.asciidoc +++ b/vendor/github.com/elastic/beats/CHANGELOG-developer.asciidoc @@ -22,9 +22,20 @@ The list below covers the major changes between 6.3.0 and master only. - The beat.Pipeline is now passed to cfgfile.RunnerFactory. Beats using libbeat for module reloading or autodiscovery need to be adapted. {pull}7018[7017] - Moving of TLS helper functions and structs from `output/tls` to `tlscommon`. {pull}7054[7054] - Port fields.yml collector to Golang {pull}6911[6911] +- Dashboards under _meta/kibana are expected to be decoded. See https://github.com/elastic/beats/pull/7224 for a conversion script. {pull}7265[7265] +- Constructor `(github.com/elastic/beats/libbeat/output/codec/json).New` expects a new `escapeHTML` parameter. {pull}7445[7445] +- Packaging has been refactored and updates are required. See the PR for migration details. {pull}7388[7388] +- `make fields` has been modified to use Mage (https://magefile.org/) in an effort to make + the building a Beat more cross-platform friendly (e.g. Windows). This requires that your Beat + has a magefile.go with a fields target. The `FIELDS_FILE_PATH` make variable is no longer + used because the value is specified in magefile.go. {pull}7670[7670] ==== Bugfixes - Fix permissions of generated Filebeat filesets. {pull}7140[7140] ==== Added + +- Libbeat provides a global registry for beats developer that allow to register and retrieve plugin. {pull}7392[7392] +- Added more options to control required and optional fields in schema.Apply(), error returned is a plain nil if no error happened {pull}7335[7335] +- Packaging on MacOS now produces a .dmg file containing an installer (.pkg) and uninstaller for the Beat. {pull}7481[7481] diff --git a/vendor/github.com/elastic/beats/CHANGELOG.asciidoc b/vendor/github.com/elastic/beats/CHANGELOG.asciidoc index ab62d5f0..59f235a4 100644 --- a/vendor/github.com/elastic/beats/CHANGELOG.asciidoc +++ b/vendor/github.com/elastic/beats/CHANGELOG.asciidoc @@ -7,49 +7,355 @@ // Template, add newest changes here === Beats version HEAD -https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] +https://github.com/elastic/beats/compare/v6.4.0...6.4[Check the HEAD diff] ==== Breaking changes *Affecting all Beats* -- De dot keys of labels and annotations in kubernetes meta processors to prevent collisions. {pull}6203[6203] -- Rename beat.cpu.*.time metrics to beat.cpu.*.time.ms. {pull}6449[6449] -- Mark `system.syslog.message` and `system.auth.message` as `text` instead of `keyword`. {pull}6589[6589] -- Allow override of dynamic template `match_mapping_type` for fields with object_type. {pull}6691[6691] -- Set default kafka version to 1.0.0 in kafka output. Older versions are still supported by configuring the `version` setting. {pull}7025[7025] -- Add `host.name` field to all events, to avoid mapping conflicts. This could be breaking Logstash configs if you rely on the `host` field being a string. {pull}7051[7051] +*Auditbeat* + +*Filebeat* + +*Heartbeat* + +*Metricbeat* + +*Packetbeat* + +*Winlogbeat* + +==== Bugfixes + +*Affecting all Beats* + +- Fixed `add_host_metadata` not initializing correctly on Windows. {issue}7715[7715] +- Add backoff on error support to redis output. {pull}7781[7781] +- Fixed `-d` CLI flag by trimming spaces from selectors. {pull}7864[7864] +- Fixed missing file unlock in spool file on Windows, so file can be reopened and locked. {pull}7859[7859] +- Fix spool file opening/creation failing due to file locking on Windows. {pull}7859[7859] +- Fix size of maximum mmaped read area in spool file on Windows. {pull}7859[7859] +- Fix potential data loss on OS X in spool file by using fcntl with F_FULLFSYNC. {pull}7859[7859] +- Improve fsync on linux, by assuming the kernel resets error flags of failed writes. {pull}7859[7859] +- Remove unix-like permission checks on Windows, so files can be opened. {issue}7849[7849] +- Deregister pipeline loader callback when inputsRunner is stopped. {pull}7893[7893] +- Replace index patterns in TSVB visualizations. {pull}7929[7929] +- Add backoff support to x-pack monitoring outputs. {issue}7966[7966] +- Removed execute permissions systemd unit file. {pull}7873[7873] +- Fix a race condition with the `add_host_metadata` and the event serialization. {pull}8223[8223] +- Enforce that data used by k8s or docker doesn't use any reference. {pull}8240[8240] *Auditbeat* +- Fixed a crash in the file_integrity module under Linux. {issue}7753[7753] +- Fixed the RPM by designating the config file as configuration data in the RPM spec. {issue}8075[8075] +- Fixed a concurrent map write panic in the auditd module. {pull}8158[8158] + *Filebeat* -- Remove the undefined `username` option from the Redis input and clarify the documentation. {pull}6662[6662] -- Add validation for Stdin, when Filebeat is configured with Stdin and any other inputs, Filebeat - will now refuses to start. {pull}6463[6463] +- Fixed a memory leak when harvesters are closed. {pull}7820[7820] +- Fixed a docker input error due to the offset update bug in partial log join.{pull}8177[8177] +- Update CRI format to support partial/full tags. {pull}8265[8265] + +*Heartbeat* + +*Metricbeat* + +- Fix golang.heap.gc.cpu_fraction type from long to float in Golang module. {pull}7789[7789] +- Fixed the RPM by designating the modules.d config files as configuration data in the RPM spec. {issue}8075[8075] +- Fixed the location of the modules.d dir in Deb and RPM packages. {issue}8104[8104] + +*Packetbeat* + +- Fixed a seccomp related error where the `fcntl64` syscall was not permitted + on 32-bit Linux and the sniffer failed to start. {issue}7839[7839] +- Added missing `cmdline` and `client_cmdline` fields to index template. {pull}8258[8258] + +*Winlogbeat* + +==== Added + +*Affecting all Beats* + +- Allow for cloud-id to specify a custom port. This makes cloud-id work in ECE contexts. {pull}7887[7887] +- Add support to grow or shrink an existing spool file between restarts. {pull}7859[7859] +- Make kubernetes autodiscover ignore events with empty container IDs {pull}7971[7971] +- Implement CheckConfig in RunnerFactory to make autodiscover check configs {pull}7961[7961] + +*Auditbeat* + +*Filebeat* + +*Heartbeat* + +*Metricbeat* + +*Packetbeat* + +*Winlogbeat* + +==== Deprecated + +*Affecting all Beats* + +*Filebeat* + +*Heartbeat* + +*Metricbeat* + +*Packetbeat* + +*Winlogbeat* + +==== Known Issue + + +//////////////////////////////////////////////////////////// + +[[release-notes-6.4.0]] +=== Beats version 6.4.0 +https://github.com/elastic/beats/compare/v6.3.1...v6.4.0[View commits] + +==== Known issue + +Due to a packaging mistake, the `modules.d` configuration directory is +installed in the wrong path in the Metricbeat DEB and RPM packages. This issue +results in an empty list when you run `metricbeat modules list` and failures +when you try to enable or disable modules. To work around this issue, run the +following command: + +[source,sh] +----------- +sudo cp -r /usr/share/metricbeat/modules.d /etc/metricbeat/ +----------- + +This issue affects all new installations on DEB and RPM. Upgrades will run, but +use old configurations defined in the `modules.d` directory from the previous +installation. + +The issue will be fixed in the 6.4.1 release. + +==== Breaking changes + +*Affecting all Beats* + +- Set default kafka version to 1.0.0 in kafka output. Older versions are still supported by configuring the `version` setting. Minimally supported version is 0.11 (older versions might work, but are untested). {pull}7025[7025] *Heartbeat* -- Made the URL field of heartbeat aggregatable. {pull}6263[6263] -- Use `match.Matcher` for checking heartbeat response bodies with regular expressions. {pull}6539[6539] - Rename http.response.status to http.response.status_code to align with ECS. {pull}7274[7274] +- Remove `type` field as not needed. {pull}7307[7307] *Metricbeat* -- Kubernetes deployment: Add ServiceAccount config to system metricbeat. {pull}6824[6824] -- Kubernetes deployment: Add DNS Policy to system metricbeat. {pull}6656[6656] -- De dot keys in kubernetes/event metricset to prevent collisions. {pull}6203[6203] -- Add config option for windows/perfmon metricset to ignore non existent counters. {pull}6432[6432] -- Refactor docker CPU calculations to be more consistent with `docker stats`. {pull}6608[6608] -- Update logstash.node_stats metricset to write data under `logstash.node.stats.*`. {pull}6714[6714] - Fixed typo in values for `state_container` `status.phase`, from `terminate` to `terminated`. {pull}6916[6916] - RabbitMQ management plugin path is now configured at the module level instead of having to do it in each of the metricsets. New `management_path_prefix` option should be used now {pull}7074[7074] - RabbitMQ node metricset only collects metrics of the instance it connects to, `node.collect: cluster` can be used to collect all nodes as before. {issue}6556[6556] {pull}6971[6971] - Change http/server metricset to put events by default under http.server and prefix config options with server.. {pull}7100[7100] +- Disable dedotting in docker module configuration. This will change the out-of-the-box behaviour, but not the one of already configured instances. {pull}7485[7485] +- Fix typo in etcd/self metricset fields from *.bandwithrate to *.bandwidthrate. {pull}7456[7456] +- Changed the definition of the `system.cpu.total.pct` and `system.cpu.total.norm.cou` fields to exclude the IOWait time. {pull}7691[7691] + +==== Bugfixes + +*Affecting all Beats* + +- Error out on invalid Autodiscover template conditions settings. {pull}7200[7200] +- Allow to override the `ignore_above` option when defining new field with the type keyword. {pull}7238[7238] +- Fix a panic on the Dissect processor when we have data remaining after the last delimiter. {pull}7449[7449] +- When we fail to build a Kubernetes' indexer or matcher we produce a warning but we don't add them to the execution. {pull}7466[7466] +- Fix default value for logging.files.keepfiles. It was being set to 0 and now + it's set to the documented value of 7. {issue}7494[7494] +- Retain compatibility with older Docker server versions. {issue}7542[7542] +- Fix errors unpacking configs modified via CLI by ignoring `-E key=value` pairs with missing value. {pull}7599[7599] + +*Auditbeat* + +- Allow `auditbeat setup` to run without requiring elevated privileges for the audit client. {issue}7111[7111] +- Fix goroutine leak that occurred when the auditd module was stopped. {pull}7163[7163] + +*Filebeat* + +- Fix a data race between stopping and starting of the harvesters. {issue}#6879[6879] +- Fix an issue when parsing ISO8601 dates with timezone definition {issue}7367[7367] +- Fix Grok pattern of MongoDB module. {pull}7568[7568] +- Fix registry duplicates and log resending on upgrade. {issue}7634[7634] + +*Metricbeat* + +- Fix Windows service metricset when using a 32-bit binary on a 64-bit OS. {pull}7294[7294] +- Do not report Metricbeat container host as hostname in Kubernetes deployment. {issue}7199[7199] +- Ensure metadata updates don't replace existing pod metrics. {pull}7573[7573] +- Fix kubernetes pct fields reporting. {pull}7677[7677] +- Add support for new `kube_node_status_condition` in Kubernetes `state_node`. {pull}7699[7699] + +==== Added + +*Affecting all Beats* + +- Add dissect processor. {pull}6925[6925] +- Add IP-addresses and MAC-addresses to add_host_metadata. {pull}6878[6878] +- Added a seccomp (secure computing) filter on Linux that whitelists the + necessary system calls used by each Beat. {issue}5213[5213] +- Ship fields.yml as part of the binary {pull}4834[4834] +- Added options to dev-tools/cmd/dashboards/export_dashboard.go: -indexPattern to include index-pattern in output, -quiet to be quiet. {pull}7101[7101] +- Add Indexer indexing by pod uid. Enable pod uid metadata gathering in add_kubernetes_metadata. Extended Matcher log_path matching to support volume mounts {pull}7072[7072] +- Add default_fields to Elasticsearch template when connecting to Elasticsearch >= 7.0. {pull}7015[7015] +- Add support for loading a template.json file directly instead of using fields.yml. {pull}7039[7039] +- Add support for keyword multifields in field.yml. {pull}7131[7131] +- Add experimental Jolokia Discovery autodiscover provider. {pull}7141[7141] +- Add owner object info to Kubernetes metadata. {pull}7231[7231] +- Add Beat export dashboard command. {pull}7239[7239] +- Add support for docker autodiscover to monitor containers on host network {pull}6708[6708] +- Add ability to define input configuration as stringified JSON for autodiscover. {pull}7372[7372] +- Add processor definition support for hints builder {pull}7386[7386] +- Add support to disable html escaping in outputs. {pull}7445[7445] +- Refactor error handing in schema.Apply(). {pull}7335[7335] +- Add additional types to Kubernetes metadata {pull}7457[7457] +- Add module state reporting for Beats Monitoring. {pull}7075[7075] +- Release the `rename` processor as GA. {pull}7656[7656] +- Add support for Openstack Nova in `add_cloud_metadata` processor. {pull}7663[7663] + +*Auditbeat* + +- Added XXH64 hash option for file integrity checks. {pull}7311[7311] +- Added the `show auditd-rules` and `show auditd-status` commands to show kernel rules and status. {pull}7114[7114] +- Add Kubernetes specs for auditbeat file integrity monitoring {pull}7642[7642] + +*Filebeat* + +- Add Kibana module with log fileset. {pull}7052[7052] +- Support MySQL 5.7.19 by mysql/slowlog {pull}6969[6969] +- Correctly join partial log lines when using `docker` input. {pull}6967[6967] +- Add support for TLS with client authentication to the TCP input {pull}7056[7056] +- Converted part of pipeline from treafik/access metricSet to dissect to improve efficiency. {pull}7209[7209] +- Add GC fileset to the Elasticsearch module. {pull}7305[7305] +- Add Audit log fileset to the Elasticsearch module. {pull}7365[7365] +- Add Slow log fileset to the Elasticsearch module. {pull}7473[7473] +- Add deprecation fileset to the Elasticsearch module. {pull}7474[7474] +- Add `convert_timezone` option to Kafka module to convert dates to UTC. {issue}7546[7546] {pull}7578[7578] +- Add patterns for kafka 1.1 logs. {pull}7608[7608] +- Move debug messages in tcp input source {pull}7712[7712] + +*Metricbeat* + +- Add experimental Elasticsearch index metricset. {pull}6881[6881] +- Add dashboards and visualizations for haproxy metrics. {pull}6934[6934] +- Add Jolokia agent in proxy mode. {pull}6475[6475] +- Add message rates to the RabbitMQ queue metricset {issue}6442[6442] {pull}6606[6606] +- Add exchanges metricset to the RabbitMQ module {issue}6442[6442] {pull}6607[6607] +- Add Elasticsearch index_summary metricset. {pull}6918[6918] +- Add shard metricset to Elasticsearch module. {pull}7006[7006] +- Add apiserver metricset to Kubernetes module. {pull}7059[7059] +- Add maxmemory to redis info metricset. {pull}7127[7127] +- Set guest as default user in RabbitMQ module. {pull}7107[7107] +- Add postgresql statement metricset. {issue}7048[7048] {pull}7060[7060] +- Update `state_container` metricset to support latest `kube-state-metrics` version. {pull}7216[7216] +- Add TLS support to MongoDB module. {pull}7401[7401] +- Added Traefik module with health metricset. {pull}7413[7413] +- Add Elasticsearch ml_job metricsets. {pull}7196[7196] +- Add support for bearer token files to HTTP helper. {pull}7527[7527] +- Add Elasticsearch index recovery metricset. {pull}7225[7225] +- Add `locks`, `global_locks`, `oplatencies` and `process` fields to `status` metricset of MongoDB module. {pull}7613[7613] +- Run Kafka integration tests on version 1.1.0 {pull}7616[7616] +- Release raid and socket metricset from system module as GA. {pull}7658[7658] +- Release elasticsearch module and all its metricsets as beta. {pull}7662[7662] +- Release munin and traefik module as beta. {pull}7660[7660] +- Add envoyproxy module. {pull}7569[7569] +- Release prometheus collector metricset as GA. {pull}7660[7660] +- Add Elasticsearch `cluster_stats` metricset. {pull}7638[7638] +- Added `basepath` setting for HTTP-based metricsets {pull}7700[7700] *Packetbeat* -*Winlogbeat* +- The process monitor now reports the command-line for all processes, under Linux and Windows. {pull}7135[7135] +- Updated the TLS protocol parser with new cipher suites added to TLS 1.3. {issue}7455[7455] +- Flows are enriched with process information using the process monitor. {pull}7507[7507] +- Added UDP support to process monitor. {pull}7571[7571] + +==== Deprecated + +*Metricbeat* + +- Kubernetes `state_container` `cpu.limit.nanocores` and `cpu.request.nanocores` have been +deprecated in favor of `cpu.*.cores`. {pull}6916[6916] + +[[release-notes-6.3.1]] +=== Beats version 6.3.1 +https://github.com/elastic/beats/compare/v6.3.0...v6.3.1[View commits] + +==== Bugfixes + +*Affecting all Beats* + +- Allow index-pattern only setup when setup.dashboards.only_index=true. {pull}7285[7285] +- Preserve the event when source matching fails in `add_docker_metadata`. {pull}7133[7133] +- Negotiate Docker API version from our client instead of using a hardcoded one. {pull}7165[7165] +- Fix duplicating dynamic_fields in template when overwriting the template. {pull}7352[7352] + +*Auditbeat* + +- Fixed parsing of AppArmor audit messages. {pull}6978[6978] + +*Filebeat* + +- Comply with PostgreSQL database name format {pull}7198[7198] +- Optimize PostgreSQL ingest pipeline to use anchored regexp and merge multiple regexp into a single expression. {pull}7269[7269] +- Keep different registry entry per container stream to avoid wrong offsets. {issue}7281[7281] +- Fix offset field pointing at end of a line. {issue}6514[6514] +- Commit registry writes to stable storage to avoid corrupt registry files. {issue}6792[6792] + +*Metricbeat* + +- Fix field mapping for the system process CPU ticks fields. {pull}7230[7230] +- Ensure canonical naming for JMX beans is disabled in Jolokia module. {pull}7047[7047] +- Fix Jolokia attribute mapping when using wildcards and MBean names with multiple properties. {pull}7321[7321] + +*Packetbeat* + +- Fix an out of bounds access in HTTP parser caused by malformed request. {pull}6997[6997] +- Fix missing type for `http.response.body` field. {pull}7169[7169] + +==== Added + +*Auditbeat* + +- Added caching of UID and GID values to auditd module. {pull}6978[6978] +- Updated syscall tables for Linux 4.16. {pull}6978[6978] +- Added better error messages for when the auditd module fails due to the + Linux kernel not supporting auditing (CONFIG_AUDIT=n). {pull}7012[7012] + +*Metricbeat* + +- Collect accumulated docker network metrics and mark old ones as deprecated. {pull}7253[7253] + + + +[[release-notes-6.3.0]] +=== Beats version 6.3.0 +https://github.com/elastic/beats/compare/v6.2.3...v6.3.0[View commits] + +==== Breaking changes + +*Affecting all Beats* + +- De dot keys of labels and annotations in kubernetes meta processors to prevent collisions. {pull}6203[6203] +- Rename `beat.cpu.*.time metrics` to `beat.cpu.*.time.ms`. {pull}6449[6449] +- Add `host.name` field to all events, to avoid mapping conflicts. This could be breaking Logstash configs if you rely on the `host` field being a string. {pull}7051[7051] + +*Filebeat* + +- Add validation for Stdin, when Filebeat is configured with Stdin and any other inputs, Filebeat + will now refuse to start. {pull}6463[6463] +- Mark `system.syslog.message` and `system.auth.message` as `text` instead of `keyword`. {pull}6589[6589] + +*Metricbeat* + +- De dot keys in kubernetes/event metricset to prevent collisions. {pull}6203[6203] +- Add config option for windows/perfmon metricset to ignore non existent counters. {pull}6432[6432] +- Refactor docker CPU calculations to be more consistent with `docker stats`. {pull}6608[6608] +- Update logstash.node_stats metricset to write data under `logstash.node.stats.*`. {pull}6714[6714] ==== Bugfixes @@ -57,40 +363,31 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Fix panic when Events containing a float32 value are normalized. {pull}6129[6129] - Fix `setup.dashboards.always_kibana` when using Kibana 5.6. {issue}6090[6090] -- Fix for kafka logger. {pull}6430[6430] +- Fix for Kafka logger. {pull}6430[6430] - Remove double slashes in Windows service script. {pull}6491[6491] - Ensure Kubernetes labels/annotations don't break mapping {pull}6490[6490] - Ensure that the dashboard zip files can't contain files outside of the kibana directory. {pull}6921[6921] - Fix map overwrite panics by cloning shared structs before doing the update. {pull}6947[6947] -- Fix error if lz4 compression is used with the kafka output. {pull}7025[7025] -- Preserve the event when source matching fails in `add_docker_metadata`. {pull}7133[7133] -- Negotiate Docker API version from our client instead of using a hardcoded one. {pull}7165[7165] - Fix delays on autodiscovery events handling caused by blocking runner stops. {pull}7170[7170] -- Error out on invalid Autodiscover template conditions settings. {pull}7200[7200] - Do not emit Kubernetes autodiscover events for Pods without IP address. {pull}7235[7235] -- Allow to override the `ignore_above` option when defining new field with the type keyword. {pull}7238[7238] -- Allow index-pattern only setup when setup.dashboards.only_index=true. {pull}7285[7285] +- Fix self metrics when containerized {pull}6641[6641] *Auditbeat* - Add hex decoding for the name field in audit path records. {pull}6687[6687] - Fixed a deadlock in the file_integrity module under Windows. {issue}6864[6864] -- Fixed parsing of AppArmor audit messages. {pull}6978[6978] -- Allow `auditbeat setup` to run without requiring elevated privileges for the audit client. {issue}7111[7111] -- Fix goroutine leak that occured when the auditd module was stopped. {pull}7163[7163] *Filebeat* - Fix panic when log prospector configuration fails to load. {issue}6800[6800] - Fix memory leak in log prospector when files cannot be read. {issue}6797[6797] - Add raw JSON to message field when JSON parsing fails. {issue}6516[6516] -- Commit registry writes to stable storage to avoid corrupt registry files. {issue}6792[6792] -- Fix a data race between stopping and starting of the harverters. {issue}#6879[6879] +- Commit registry writes to stable storage to avoid corrupt registry files. {pull}6877[6877] - Fix a parsing issue in the syslog input for RFC3339 timestamp and time with nanoseconds. {pull}7046[7046] -- Comply with PostgreSQL database name format {pull}7198[7198] - Fix an issue with an overflowing wait group when using the TCP input. {issue}7202[7202] *Heartbeat* + - Fix race due to updates of shared a map, that was not supposed to be shared between multiple go-routines. {issue}6616[6616] *Metricbeat* @@ -108,13 +405,6 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Don't stop Metricbeat if aerospike server is down. {pull}6874[6874] - disk reads and write count metrics in RabbitMQ queue metricset made optional. {issue}6876[6876] - Add mapping for docker metrics per cpu. {pull}6843[6843] -- Ensure canonical naming for JMX beans is disabled in Jolokia module. {pull}7047[7047] -- Fix field mapping for the system process CPU ticks fields. {pull}7230[7230] - -*Packetbeat* - -- Fix an out of bounds access in HTTP parser caused by malformed request. {pull}6997[6997] -- Fix missing type for `http.response.body` field. {pull}7169[7169] *Winlogbeat* @@ -126,7 +416,7 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Update Golang 1.9.4 {pull}6326[6326] - Add the ability to log to the Windows Event Log. {pull}5913[5913] -- The node name can be discovered automatically by machine-id matching when beat deployed outside kubernetes cluster. {pull}6146[6146] +- The node name can be discovered automatically by machine-id matching when beat deployed outside Kubernetes cluster. {pull}6146[6146] - Panics will be written to the logger before exiting. {pull}6199[6199] - Add builder support for autodiscover and annotations builder {pull}6408[6408] - Add plugin support for autodiscover builders, providers {pull}6457[6457] @@ -140,28 +430,7 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Added logging of system info at Beat startup. {issue}5946[5946] - Do not log errors if X-Pack Monitoring is enabled but Elastisearch X-Pack is not. {pull}6627[6627] - Add rename processor. {pull}6292[6292] -- Add IP-addresses and MAC-addresses to add_host_metadata. {pull}6878[6878] -- Added a seccomp (secure computing) filter on Linux that whitelists the - necessary system calls used by each Beat. {issue}5213[5213] -- Update Sarama to v1.16.0, adding better support for kafka 0.11, 1.0, and 1.1 {pull}7025[7025] -- Ship fields.yml as part of the binary {pull}4834[4834] -- Added options to dev-tools/cmd/dashboards/export_dashboard.go: -indexPattern to include index-pattern in output, -quiet to be quiet. {pull}7101[7101] -- Add Indexer indexing by pod uid. Enable pod uid metadata gathering in add_kubernetes_metadata. Extended Matcher log_path matching to support volume mounts {pull}7072[7072] -- Add Kibana module with log fileset. {pull}7052[7052] -- Add default_fields to Elasticsearch template when connecting to Elasticsearch >= 7.0. {pull}7015[7015] -- Add support for loading a template.json file directly instead of using fields.yml. {pull}7039[7039] -- Add support for keyword multifields in field.yml. {pull}7131[7131] -- Add dissect processor. {pull}6925[6925] -- Add experimental Jolokia Discovery autodiscover provider. {pull}7141[7141] -- Add owner object info to Kubernetes metadata. {pull}7231[7231] -- Add beat export dashboard command. {pull}7239[7239] - -*Auditbeat* - -- Added caching of UID and GID values to auditd module. {pull}6978[6978] -- Updated syscall tables for Linux 4.16. {pull}6978[6978] -- Added better error messages for when the auditd module fails due to the - Linux kernel not supporting auditing (CONFIG_AUDIT=n). {pull}7012[7012] +- Allow override of dynamic template `match_mapping_type` for fields with object_type. {pull}6691[6691] *Filebeat* @@ -179,16 +448,16 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Add MongoDB module. {pull}6283[6238] - Add Ingest pipeline loading to setup. {pull}6814[6814] - Add support of log_format combined to NGINX access logs. {pull}6858[6858] -- Release config reloading feature as GA. {pull}6891[6891] +- Release config reloading feature as GA. - Add support human friendly size for the UDP input. {pull}6886[6886] - Add Syslog input to ingest RFC3164 Events via TCP and UDP {pull}6842[6842] -- Support MySQL 5.7.19 by mysql/slowlog {pull}6969[6969] -- Correctly join partial log lines when using `docker` input. {pull}6967[6967] -- Add support for TLS with client authentication to the TCP input {pull}7056[7056] -- Converted part of pipeline from treafik/access metricSet to dissect to improve efficeny. {pull}7209[7209] +- Remove the undefined `username` option from the Redis input and clarify the documentation. {pull}6662[6662] *Heartbeat* +- Made the URL field of Heartbeat aggregateable. {pull}6263[6263] +- Use `match.Matcher` for checking Heartbeat response bodies with regular expressions. {pull}6539[6539] + *Metricbeat* - Support apache status pages for versions older than 2.4.16. {pull}6450[6450] @@ -255,19 +524,8 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Add accumulated I/O stats to diskio in the line of `docker stats`. {pull}6701[6701] - Ignore virtual filesystem types by default in system module. {pull}6819[6819] - Release config reloading feature as GA. {pull}6891[6891] -- Add experimental Elasticsearch index metricset. {pull}6881[6881] -- Add dashboards and visualizations for haproxy metrics. {pull}6934[6934] -- Add Jolokia agent in proxy mode. {pull}6475[6475] -- Add message rates to the RabbitMQ queue metricset {issue}6442[6442] {pull}6606[6606] -- Add exchanges metricset to the RabbitMQ module {issue}6442[6442] {pull}6607[6607] -- Add Elasticsearch index_summary metricset. {pull}6918[6918] -- Add config option `management_path_prefix` for RabbitMQ module to configure management plugin path prefix {issue}6875[6875] {pull}7074[7074] -- Add shard metricset to Elasticsearch module. {pull}7006[7006] -- Add apiserver metricset to Kubernetes module. {pull}7059[7059] -- Add maxmemory to redis info metricset. {pull}7127[7127] -- Set guest as default user in RabbitMQ module. {pull}7107[7107] -- Add postgresql statement metricset. {issue}7048[7048] {pull}7060[7060] -- Update `state_container` metricset to support latest `kube-state-metrics` version. {pull}7216[7216] +- Kubernetes deployment: Add ServiceAccount config to system metricbeat. {pull}6824[6824] +- Kubernetes deployment: Add DNS Policy to system metricbeat. {pull}6656[6656] *Packetbeat* @@ -275,33 +533,11 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Fix high memory usage on HTTP body if body is not published. {pull}6680[6680] - Allow to capture the HTTP request or response bodies independently. {pull}6784[6784] - HTTP publishes an Error event for unmatched requests or responses. {pull}6794[6794] -- The process monitor now reports the command-line for all processes, under Linux and Windows. {pull}7135[7135] *Winlogbeat* - Use bookmarks to persist the last published event. {pull}6150[6150] -==== Deprecated - -*Affecting all Beats* - -*Filebeat* - -*Heartbeat* - -*Metricbeat* - -- Kubernetes `state_container` `cpu.limit.nanocores` and `cpu.request.nanocores` have been -deprecated in favor of `cpu.*.cores`. {pull}6916[6916] - -*Packetbeat* - -*Winlogbeat* - -==== Known Issue - - -//////////////////////////////////////////////////////////// [[release-notes-6.2.3]] === Beats version 6.2.3 @@ -376,7 +612,7 @@ https://github.com/elastic/beats/compare/v6.1.3...v6.2.0[View commits] *Auditbeat* - Fixed an issue where the proctitle value was being truncated. {pull}6080[6080] -- Fixed an issue where values were incorrectly interpretted as hex data. {pull}6080[6080] +- Fixed an issue where values were incorrectly interpreted as hex data. {pull}6080[6080] - Fixed parsing of the `key` value when multiple keys are present. {pull}6080[6080] - Fix possible resource leak if file_integrity module is used with config reloading on Windows or Linux. {pull}6198[6198] @@ -415,7 +651,7 @@ https://github.com/elastic/beats/compare/v6.1.3...v6.2.0[View commits] - Use structured logging for the metrics that are periodically logged via the `logging.metrics` feature. {pull}5915[5915] - Improve Elasticsearch output metrics to count number of dropped and duplicate (if event ID is given) events. {pull}5811[5811] -- Add the abilility for the add_docker_metadata process to enrich based on process ID. {pull}6100[6100] +- Add the ability for the add_docker_metadata process to enrich based on process ID. {pull}6100[6100] - The `add_docker_metadata` and `add_kubernetes_metadata` processors are now GA, instead of Beta. {pull}6105[6105] - Update go-ucfg library to support top level key reference and cyclic key reference for the keystore {pull}6098[6098] @@ -441,7 +677,7 @@ https://github.com/elastic/beats/compare/v6.1.3...v6.2.0[View commits] - Update the MySQL dashboard to use the Time Series Visual Builder. {pull}5996[5996] - Add experimental uwsgi module. {pull}6006[6006] - Docker and Kubernetes modules are now GA, instead of Beta. {pull}6105[6105] -- Support haproxy stats gathering using http (additionaly to tcp socket). {pull}5819[5819] +- Support haproxy stats gathering using http (additionally to tcp socket). {pull}5819[5819] - Support to optionally 'de dot' keys in http/json metricset to prevent collisions. {pull}5957[5957] *Packetbeat* @@ -544,7 +780,7 @@ https://github.com/elastic/beats/compare/v6.0.1...v6.1.0[View commits] *Affecting all Beats* -- Support dashboard loading without Elasticseach {pull}5653[5653] +- Support dashboard loading without Elasticsearch {pull}5653[5653] - Changed the hashbang used in the beat helper script from `/bin/bash` to `/usr/bin/env bash`. {pull}5051[5051] - Changed beat helper script to use `exec` when running the beat. {pull}5051[5051] - Fix reloader error message to only print on actual error {pull}5066[5066] @@ -785,7 +1021,7 @@ https://github.com/elastic/beats/compare/v6.0.0-beta1...v6.0.0-beta2[View commit - Added missing mongodb configuration file to the `modules.d` folder. {pull}4870[4870] - Fix wrong MySQL CRUD queries timelion visualization {pull}4857[4857] -- Add new metrics to CPU metricsset {pull}4969[4969] +- Add new metrics to CPU metricset {pull}4969[4969] *Packetbeat* @@ -1470,7 +1706,7 @@ https://github.com/elastic/beats/compare/v5.2.2...v5.3.0[View commits] - Add Filebeat modules for system, apache2, mysql, and nginx. {issue}3159[3159] - Add the `pipeline` config option at the prospector level, for configuring the Ingest Node pipeline ID. {pull}3433[3433] - Update regular expressions used for matching file names or lines (multiline, include/exclude functionality) to new matchers improving performance of simple string matches. {pull}3469[3469] -- The `symlinks` and `harverster_limit` settings are now GA, instead of experimental. {pull}3525[3525] +- The `symlinks` and `harvester_limit` settings are now GA, instead of experimental. {pull}3525[3525] - close_timeout is also applied when the output is blocking. {pull}3511[3511] - Improve handling of different path variants on Windows. {pull}3781[3781] - Add multiline.flush_pattern option, for specifying the 'end' of a multiline pattern {pull}4019[4019] @@ -1745,7 +1981,7 @@ The list below covers the changes between 5.0.0-rc1 and 5.0.0 GA only. - Fix high CPU usage on macOS when encountering processes with long command lines. {issue}2747[2747] - Fix high value of `system.memory.actual.free` and `system.memory.actual.used`. {issue}2653[2653] -- Change several `OpenProcess` calls on Windows to request the lowest possible access provilege. {issue}1897[1897] +- Change several `OpenProcess` calls on Windows to request the lowest possible access privilege. {issue}1897[1897] - Fix system.memory.actual.free high value on Windows. {issue}2653[2653] *Filebeat* @@ -2003,7 +2239,7 @@ https://github.com/elastic/beats/compare/v5.0.0-alpha3...v5.0.0-alpha4[View comm *Affecting all Beats* -- The topology_expire option of the Elasticserach output was removed. {pull}1907[1907] +- The topology_expire option of the Elasticsearch output was removed. {pull}1907[1907] *Filebeat* @@ -2500,7 +2736,7 @@ https://github.com/elastic/beats/compare/v1.0.1...v1.1.0[View commits] - Add multiline support for combining multiple related lines into one event. {issue}461[461] - Add `exclude_lines` and `include_lines` options for regexp based line filtering. {pull}430[430] - Add `exclude_files` configuration option. {pull}563[563] -- Add experimental option to enable filebeat publisher pipeline to operate asynchonrously {pull}782[782] +- Add experimental option to enable filebeat publisher pipeline to operate asynchronously {pull}782[782] *Winlogbeat* @@ -2541,7 +2777,7 @@ https://github.com/elastic/beats/compare/1.0.0-rc2...1.0.0[Check 1.0.0 diff] *Affecting all Beats* - Fix random panic on shutdown by calling shutdown handler only once. elastic/filebeat#204 -- Fix credentials are not send when pinging an elasticsearch host. elastic/fileabeat#287 +- Fix credentials are not send when pinging an elasticsearch host. elastic/filebeat#287 *Filebeat* diff --git a/vendor/github.com/elastic/beats/Makefile b/vendor/github.com/elastic/beats/Makefile index ea1f5beb..45f14079 100644 --- a/vendor/github.com/elastic/beats/Makefile +++ b/vendor/github.com/elastic/beats/Makefile @@ -1,9 +1,8 @@ BUILD_DIR=$(CURDIR)/build COVERAGE_DIR=$(BUILD_DIR)/coverage -BEATS=packetbeat filebeat winlogbeat metricbeat heartbeat auditbeat +BEATS?=auditbeat filebeat heartbeat metricbeat packetbeat winlogbeat PROJECTS=libbeat $(BEATS) PROJECTS_ENV=libbeat filebeat metricbeat -SNAPSHOT?=yes PYTHON_ENV?=$(BUILD_DIR)/python-env VIRTUALENV_PARAMS?= FIND=find . -type f -not -path "*/vendor/*" -not -path "*/build/*" -not -path "*/.git/*" @@ -62,6 +61,7 @@ clean: @rm -rf build @$(foreach var,$(PROJECTS),$(MAKE) -C $(var) clean || exit 1;) @$(MAKE) -C generator clean + @-mage -clean 2> /dev/null # Cleans up the vendor directory from unnecessary files # This should always be run after updating the dependencies @@ -71,25 +71,40 @@ clean-vendor: .PHONY: check check: python-env - @$(foreach var,$(PROJECTS),$(MAKE) -C $(var) check || exit 1;) + @$(foreach var,$(PROJECTS) dev-tools,$(MAKE) -C $(var) check || exit 1;) @# Checks also python files which are not part of the beats @$(FIND) -name *.py -exec $(PYTHON_ENV)/bin/autopep8 -d --max-line-length 120 {} \; | (! grep . -q) || (echo "Code differs from autopep8's style" && false) @# Validate that all updates were committed @$(MAKE) update + @$(MAKE) check-headers @git diff | cat @git update-index --refresh @git diff-index --exit-code HEAD -- +.PHONY: check-headers +check-headers: + @go get github.com/elastic/go-licenser + @go-licenser -d + +.PHONY: add-headers +add-headers: + @go get github.com/elastic/go-licenser + @go-licenser + # Corrects spelling errors .PHONY: misspell misspell: - go get github.com/client9/misspell + go get -u github.com/client9/misspell/cmd/misspell # Ignore Kibana files (.json) - $(FIND) -not -path "*.json" -name '*' -exec misspell -w {} \; + $(FIND) \ + -not -path "*.json" \ + -not -path "*.log" \ + -name '*' \ + -exec misspell -w {} \; .PHONY: fmt -fmt: python-env - @$(foreach var,$(PROJECTS),$(MAKE) -C $(var) fmt || exit 1;) +fmt: add-headers python-env + @$(foreach var,$(PROJECTS) dev-tools,$(MAKE) -C $(var) fmt || exit 1;) @# Cleans also python files which are not part of the beats @$(FIND) -name "*.py" -exec $(PYTHON_ENV)/bin/autopep8 --in-place --max-line-length 120 {} \; @@ -98,51 +113,12 @@ lint: @go get $(GOLINT_REPO) $(REVIEWDOG_REPO) $(REVIEWDOG) $(REVIEWDOG_OPTIONS) -# Collects all dashboards and generates dashboard folder for https://github.com/elastic/beats-dashboards/tree/master/dashboards -.PHONY: beats-dashboards -beats-dashboards: - @mkdir -p build/dashboards - @$(foreach var,$(BEATS),cp -r $(var)/_meta/kibana/ build/dashboards/$(var) || exit 1;) - # Builds the documents for each beat .PHONY: docs docs: @$(foreach var,$(PROJECTS),BUILD_DIR=${BUILD_DIR} $(MAKE) -C $(var) docs || exit 1;) sh ./script/build_docs.sh dev-guide github.com/elastic/beats/docs/devguide ${BUILD_DIR} -.PHONY: package-all -package-all: update beats-dashboards - @$(foreach var,$(BEATS),SNAPSHOT=$(SNAPSHOT) $(MAKE) -C $(var) package-all || exit 1;) - - @echo "Start building the dashboards package" - @mkdir -p build/upload/ - @BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${BUILD_DIR}/upload SNAPSHOT=$(SNAPSHOT) $(MAKE) -C dev-tools/packer package-dashboards ${BUILD_DIR}/upload/build_id.txt - @mv build/upload build/dashboards-upload - - @# Copy build files over to top build directory - @mkdir -p build/upload/ - @$(foreach var,$(BEATS),cp -r $(var)/build/upload/ build/upload/$(var) || exit 1;) - @cp -r build/dashboards-upload build/upload/dashboards - @# Run tests on the generated packages. - @go test ./dev-tools/package_test.go -files "${BUILD_DIR}/upload/*/*" - -# Upload nightly builds to S3 -.PHONY: upload-nightlies-s3 -upload-nightlies-s3: all - aws s3 cp --recursive --acl public-read build/upload s3://beats-nightlies - -# Run after building to sign packages and publish to APT and YUM repos. -.PHONY: package-upload -upload-package: - $(MAKE) -C dev-tools/packer deb-rpm-s3 - # You must export AWS_ACCESS_KEY= and export AWS_SECRET_KEY= - # before running this make target. - dev-tools/packer/docker/deb-rpm-s3/deb-rpm-s3.sh - -.PHONY: release-upload -upload-release: - aws s3 cp --recursive --acl public-read build/upload s3://download.elasticsearch.org/beats/ - .PHONY: notice notice: python-env @echo "Generating NOTICE" @@ -160,3 +136,40 @@ python-env: .PHONY: test-apm test-apm: sh ./script/test_apm.sh + +### Packaging targets #### + +# Builds a snapshot release. +.PHONY: snapshot +snapshot: + @$(MAKE) SNAPSHOT=true release + +# Builds a release. +.PHONY: release +release: beats-dashboards + @$(foreach var,$(BEATS),$(MAKE) -C $(var) release || exit 1;) + @$(foreach var,$(BEATS), \ + test -d $(var)/build/distributions && test -n "$$(ls $(var)/build/distributions)" || exit 0; \ + mkdir -p build/distributions/$(var) && mv -f $(var)/build/distributions/* build/distributions/$(var)/ || exit 1;) + +# Builds a snapshot release. The Go version defined in .go-version will be +# installed and used for the build. +.PHONY: release-manager-snapshot +release-manager-snapshot: + @$(MAKE) SNAPSHOT=true release-manager-release + +# Builds a snapshot release. The Go version defined in .go-version will be +# installed and used for the build. +.PHONY: release-manager-release +release-manager-release: + ./dev-tools/run_with_go_ver $(MAKE) release + +# Installs the mage build tool from the vendor directory. +.PHONY: mage +mage: + @go install github.com/elastic/beats/vendor/github.com/magefile/mage + +# Collects dashboards from all Beats and generates a zip file distribution. +.PHONY: beats-dashboards +beats-dashboards: mage update + @mage packageBeatDashboards diff --git a/vendor/github.com/elastic/beats/NOTICE.txt b/vendor/github.com/elastic/beats/NOTICE.txt index c4df601f..903748eb 100644 --- a/vendor/github.com/elastic/beats/NOTICE.txt +++ b/vendor/github.com/elastic/beats/NOTICE.txt @@ -116,11 +116,10 @@ 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. -------------------------------------------------------------------- -Dependency: github.com/boltdb/bolt -Version: v1.3.1 -Revision: 2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8 +Dependency: github.com/coreos/bbolt +Revision: af9db2027c98c61ecd8e17caa5bd265792b9b9a2 License type (autodetected): MIT -./vendor/github.com/boltdb/bolt/LICENSE: +./vendor/github.com/coreos/bbolt/LICENSE: -------------------------------------------------------------------- The MIT License (MIT) @@ -373,8 +372,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------- Dependency: github.com/elastic/go-libaudit -Version: v0.3.0 -Revision: c18782ee4f957de48620718231d20ca12c8dc4e9 +Version: v0.4.0 +Revision: 39073a2988f718067d85d27a4d18b1b57de5d947 License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/go-libaudit/LICENSE.txt: -------------------------------------------------------------------- @@ -413,8 +412,8 @@ Elasticsearch, B.V. (https://www.elastic.co/). -------------------------------------------------------------------- Dependency: github.com/elastic/go-structform -Version: v0.0.3 -Revision: 0a66add879601f69f55663f4c913c72988218982 +Version: v0.0.4 +Revision: 0ea09ff9b43c387dd183a4088f6d573bf823e4ed License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/go-structform/LICENSE: -------------------------------------------------------------------- @@ -423,7 +422,7 @@ Apache License 2.0 -------------------------------------------------------------------- Dependency: github.com/elastic/go-sysinfo -Revision: fda017eee28b7420d931e08c7361c1c17f516aa2 +Revision: b603f0b7f2050dbc69b053eb5c796be0f3ac9fd2 License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/go-sysinfo/LICENSE.txt: -------------------------------------------------------------------- @@ -438,8 +437,8 @@ Elasticsearch, B.V. (https://www.elastic.co/). -------------------------------------------------------------------- Dependency: github.com/elastic/go-txfile -Version: v0.0.1 -Revision: 7e7e33cc236f30fff545f3ee2c35ada5b70b6b13 +Version: v0.0.3 +Revision: 389b527ad365f6fc6cf5fa7e0ba5a2294ad2f3ed License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/go-txfile/LICENSE: -------------------------------------------------------------------- @@ -448,8 +447,8 @@ Apache License 2.0 -------------------------------------------------------------------- Dependency: github.com/elastic/go-ucfg -Version: v0.5.1 -Revision: 0ba28e36add27704e6b49a7ed8557989a8f4a635 +Version: v0.6.1 +Revision: 581f7b1fe9d84f4c18ef0694d6e0eb944a925dae License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/go-ucfg/LICENSE: -------------------------------------------------------------------- @@ -458,7 +457,7 @@ Apache License 2.0 -------------------------------------------------------------------- Dependency: github.com/elastic/go-windows -Revision: a730c8b4e08aef7e1ebb642928bf862996ad2383 +Revision: f11b8c9a625322edbca44926f9c0e4dc4916c9ac License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/go-windows/LICENSE.txt: -------------------------------------------------------------------- @@ -1084,6 +1083,49 @@ 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. +-------------------------------------------------------------------- +Dependency: github.com/gogo/protobuf +Revision: 636bf0302bc95575d69441b25a2603156ffdddf1 +License type (autodetected): BSD-3-Clause +./metricbeat/vendor/github.com/gogo/protobuf/LICENSE: +-------------------------------------------------------------------- +Protocol Buffers for Go with Gadgets + +Copyright (c) 2013, The GoGo Authors. All rights reserved. +http://github.com/gogo/protobuf + +Go support for Protocol Buffers - Google's data interchange format + +Copyright 2010 The Go Authors. All rights reserved. +https://github.com/golang/protobuf + +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. + + -------------------------------------------------------------------- Dependency: github.com/golang/protobuf Revision: 2bba0603135d7d7f5cb73b2125beeda19c09f4ef @@ -1381,6 +1423,16 @@ 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. +-------------------------------------------------------------------- +Dependency: github.com/kubernetes/apimachinery +Version: kubernetes-1.11.1 +Revision: 103fd098999dc9c0c88536f5c9ad2e5da39373ae +License type (autodetected): Apache-2.0 +./metricbeat/vendor/github.com/kubernetes/apimachinery/LICENSE: +-------------------------------------------------------------------- +Apache License 2.0 + + -------------------------------------------------------------------- Dependency: github.com/lib/pq Revision: 2704adc878c21e1329f46f6e56a1c387d788ff94 @@ -1396,6 +1448,15 @@ The above copyright notice and this permission notice shall be included in all c 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. +-------------------------------------------------------------------- +Dependency: github.com/magefile/mage +Revision: 5e51f9ad1ed0886c5d06a8c46a09703cfc4d9034 +License type (autodetected): Apache-2.0 +./vendor/github.com/magefile/mage/LICENSE: +-------------------------------------------------------------------- +Apache License 2.0 + + -------------------------------------------------------------------- Dependency: github.com/mattn/go-colorable Revision: 941b50ebc6efddf4c41c8e4537a5f68a4e686b24 @@ -1575,6 +1636,15 @@ 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. +-------------------------------------------------------------------- +Dependency: github.com/OneOfOne/xxhash +Revision: 74ace4fe5525ef62ce28d5093d6b0faaa6a575f3 +License type (autodetected): Apache-2.0 +./vendor/github.com/OneOfOne/xxhash/LICENSE: +-------------------------------------------------------------------- +Apache License 2.0 + + -------------------------------------------------------------------- Dependency: github.com/opencontainers/go-digest Revision: eaa60544f31ccf3b0653b1a118b76d33418ff41b @@ -1944,8 +2014,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------- Dependency: github.com/shirou/gopsutil -Version: v2.18.01 -Revision: c432be29ccce470088d07eea25b3ea7e68a8afbb +Version: v2.18.06 +Revision: 4a180b209f5f494e5923cfce81ea30ba23915877 License type (autodetected): BSD-3-Clause ./vendor/github.com/shirou/gopsutil/LICENSE: -------------------------------------------------------------------- @@ -2012,12 +2082,12 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------- Dependency: github.com/Shopify/sarama -Version: v1.16.0/enh/offset-replica-id -Revision: 32b4ad5c9537ed14e471779b76713ff65420db39 +Version: v1.17.0/enh/offset-replica-id +Revision: d1575e4abe04acbbe8ac766320585cdf271dd189 License type (autodetected): MIT ./vendor/github.com/Shopify/sarama/LICENSE: -------------------------------------------------------------------- -Copyright (c) 2013 Evan Huus +Copyright (c) 2013 Shopify Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -2505,7 +2575,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------- Dependency: golang.org/x/sys -Revision: 37707fdb30a5b38865cfb95e5aab41707daec7fd +Revision: 0ffbfd41fbef8ffcf9b62b0b0aa3a5873ed7a4fe License type (autodetected): BSD-3-Clause ./vendor/golang.org/x/sys/LICENSE: -------------------------------------------------------------------- @@ -2675,6 +2745,41 @@ 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. +-------------------------------------------------------------------- +Dependency: gopkg.in/inf.v0 +Revision: d2d2541c53f18d2a059457998ce2876cc8e67cbf +License type (autodetected): BSD-3-Clause +./metricbeat/vendor/gopkg.in/inf.v0/LICENSE: +-------------------------------------------------------------------- +Copyright (c) 2012 Péter Surányi. Portions 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. + -------------------------------------------------------------------- Dependency: gopkg.in/mgo.v2 Revision: 3f83fa5005286a7fe593b055f0d7771a7dce4655 diff --git a/vendor/github.com/elastic/beats/Vagrantfile b/vendor/github.com/elastic/beats/Vagrantfile index 2d5cae6b..310e5e09 100644 --- a/vendor/github.com/elastic/beats/Vagrantfile +++ b/vendor/github.com/elastic/beats/Vagrantfile @@ -11,7 +11,7 @@ # Usage and Features: # - Two users exist: Administrator and Vagrant. Both have the password: vagrant # - Use 'vagrant ssh' to open a Windows command prompt. -# - Use 'vagrant rdp' to open a Windows Remote Deskop session. Mac users must +# - Use 'vagrant rdp' to open a Windows Remote Desktop session. Mac users must # install the Microsoft Remote Desktop Client from the App Store. # - There is a desktop shortcut labeled "Beats Shell" that opens a command prompt # to C:\Gopath\src\github.com\elastic\beats where the code is mounted. @@ -54,9 +54,9 @@ $Shortcut.WorkingDirectory = "C:\\Gopath\\src\\github.com\\elastic\\beats" $Shortcut.Save() echo "Disable automatic updates" -$AUSettigns = (New-Object -com "Microsoft.Update.AutoUpdate").Settings -$AUSettigns.NotificationLevel = 1 -$AUSettigns.Save() +$AUSettings = (New-Object -com "Microsoft.Update.AutoUpdate").Settings +$AUSettings.NotificationLevel = 1 +$AUSettings.Save() SCRIPT # Provisioning for Unix/Linux @@ -200,6 +200,16 @@ Vagrant.configure(2) do |config| c.vm.synced_folder ".", "/vagrant", type: "virtualbox" end + # Windows Server 2016 + config.vm.define "win2016", primary: true do |machine| + machine.vm.box = "elastic/windows-2016-x86_64" + machine.vm.provision "shell", inline: $winPsProvision + + machine.vm.provider "virtualbox" do |v| + v.memory = 4096 + end + end + end # -*- mode: ruby -*- diff --git a/vendor/github.com/elastic/beats/auditbeat/.gitignore b/vendor/github.com/elastic/beats/auditbeat/.gitignore index 3fcc9d21..3cd551fd 100644 --- a/vendor/github.com/elastic/beats/auditbeat/.gitignore +++ b/vendor/github.com/elastic/beats/auditbeat/.gitignore @@ -1,5 +1,4 @@ build -_meta/kibana _meta/beat.yml _meta/beat.reference.yml module/*/_meta/config.yml diff --git a/vendor/github.com/elastic/beats/auditbeat/Dockerfile b/vendor/github.com/elastic/beats/auditbeat/Dockerfile index 208c9e66..5cfb18d4 100644 --- a/vendor/github.com/elastic/beats/auditbeat/Dockerfile +++ b/vendor/github.com/elastic/beats/auditbeat/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.9.2 +FROM golang:1.10.3 MAINTAINER Nicolas Ruflin RUN set -x && \ diff --git a/vendor/github.com/elastic/beats/auditbeat/Makefile b/vendor/github.com/elastic/beats/auditbeat/Makefile index 14c1b774..e981e267 100644 --- a/vendor/github.com/elastic/beats/auditbeat/Makefile +++ b/vendor/github.com/elastic/beats/auditbeat/Makefile @@ -1,60 +1,15 @@ BEAT_NAME=auditbeat BEAT_TITLE=Auditbeat -BEAT_DESCRIPTION=Audit the activities of users and processes on your system. SYSTEM_TESTS=true TEST_ENVIRONMENT?=true GOX_OS?=linux windows ## @Building List of all OS to be supported by "make crosscompile". DEV_OS?=linux -TESTING_ENVIRONMENT?=snapshot-noxpack +TESTING_ENVIRONMENT?=latest ES_BEATS?=.. -FIELDS_FILE_PATH=module # Path to the libbeat Makefile include ${ES_BEATS}/libbeat/scripts/Makefile -# This is called by the beats packer before building starts -.PHONY: before-build -before-build: - @cat ${ES_BEATS}/auditbeat/_meta/common.p1.yml \ - <(go run scripts/generate_config.go -os windows -concat) \ - ${ES_BEATS}/auditbeat/_meta/common.p2.yml \ - ${ES_BEATS}/libbeat/_meta/config.yml > \ - ${PREFIX}/${BEAT_NAME}-win.yml - @cat ${ES_BEATS}/auditbeat/_meta/common.reference.yml \ - <(go run scripts/generate_config.go -os windows -concat -ref) \ - ${ES_BEATS}/libbeat/_meta/config.reference.yml > \ - ${PREFIX}/${BEAT_NAME}-win.reference.yml - - @cat ${ES_BEATS}/auditbeat/_meta/common.p1.yml \ - <(go run scripts/generate_config.go -os darwin -concat) \ - ${ES_BEATS}/auditbeat/_meta/common.p2.yml \ - ${ES_BEATS}/libbeat/_meta/config.yml > \ - ${PREFIX}/${BEAT_NAME}-darwin.yml - @cat ${ES_BEATS}/auditbeat/_meta/common.reference.yml \ - <(go run scripts/generate_config.go -os darwin -concat -ref) \ - ${ES_BEATS}/libbeat/_meta/config.reference.yml > \ - ${PREFIX}/${BEAT_NAME}-darwin.reference.yml - - @cat ${ES_BEATS}/auditbeat/_meta/common.p1.yml \ - <(go run scripts/generate_config.go -os linux -arch amd64 -concat) \ - ${ES_BEATS}/auditbeat/_meta/common.p2.yml \ - ${ES_BEATS}/libbeat/_meta/config.yml > \ - ${PREFIX}/${BEAT_NAME}-linux.yml - @cat ${ES_BEATS}/auditbeat/_meta/common.reference.yml \ - <(go run scripts/generate_config.go -os linux -concat -ref) \ - ${ES_BEATS}/libbeat/_meta/config.reference.yml > \ - ${PREFIX}/${BEAT_NAME}-linux.reference.yml - - @cat ${ES_BEATS}/auditbeat/_meta/common.p1.yml \ - <(go run scripts/generate_config.go -os linux -arch i386 -concat) \ - ${ES_BEATS}/auditbeat/_meta/common.p2.yml \ - ${ES_BEATS}/libbeat/_meta/config.yml > \ - ${PREFIX}/${BEAT_NAME}-linux-386.yml - @cat ${ES_BEATS}/auditbeat/_meta/common.reference.yml \ - <(go run scripts/generate_config.go -os linux -concat -ref) \ - ${ES_BEATS}/libbeat/_meta/config.reference.yml > \ - ${PREFIX}/${BEAT_NAME}-linux-386.reference.yml - # Collects all dependencies and then calls update .PHONY: collect collect: fields collect-docs configs kibana @@ -63,10 +18,10 @@ collect: fields collect-docs configs kibana .PHONY: configs configs: python-env @cat ${ES_BEATS}/auditbeat/_meta/common.p1.yml \ - <(go run scripts/generate_config.go -os ${DEV_OS} -concat) \ - ${ES_BEATS}/auditbeat/_meta/common.p2.yml > _meta/beat.yml + <(go run scripts/generate_config.go -os ${DEV_OS} -concat) \ + ${ES_BEATS}/auditbeat/_meta/common.p2.yml > _meta/beat.yml @cat ${ES_BEATS}/auditbeat/_meta/common.reference.yml \ - <(go run scripts/generate_config.go -os ${DEV_OS} -ref -concat) > _meta/beat.reference.yml + <(go run scripts/generate_config.go -os ${DEV_OS} -ref -concat) > _meta/beat.reference.yml # Collects all module docs .PHONY: collect-docs @@ -79,8 +34,6 @@ collect-docs: python-env # Collects all module dashboards .PHONY: kibana kibana: - @-rm -rf _meta/kibana - @mkdir -p _meta/kibana - @-cp -pr module/*/_meta/kibana _meta/ - @# Convert all dashboards to string - @python ${ES_BEATS}/libbeat/scripts/unpack_dashboards.py --glob="./_meta/kibana/6/dashboard/*.json" + @-rm -rf _meta/kibana.generated + @mkdir -p _meta/kibana.generated + @-cp -pr module/*/_meta/kibana/* _meta/kibana.generated diff --git a/vendor/github.com/elastic/beats/auditbeat/auditbeat.reference.yml b/vendor/github.com/elastic/beats/auditbeat/auditbeat.reference.yml index 1d2daefc..b31493eb 100644 --- a/vendor/github.com/elastic/beats/auditbeat/auditbeat.reference.yml +++ b/vendor/github.com/elastic/beats/auditbeat/auditbeat.reference.yml @@ -38,6 +38,8 @@ auditbeat.modules: rate_limit: 0 include_raw_message: false include_warnings: false + # Load audit rules from separate files. Same format as audit.rules(7). + audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ] audit_rules: | ## Define audit rules here. ## Create file watches (-w) or syscall audits (-a or -A). Uncomment these @@ -96,7 +98,7 @@ auditbeat.modules: # Hash types to compute when the file changes. Supported types are # blake2b_256, blake2b_384, blake2b_512, md5, sha1, sha224, sha256, sha384, - # sha512, sha512_224, sha512_256, sha3_224, sha3_256, sha3_384 and sha3_512. + # sha512, sha512_224, sha512_256, sha3_224, sha3_256, sha3_384, sha3_512, and xxh64. # Default is sha1. hash_types: [sha1] @@ -335,6 +337,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 0 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" @@ -375,7 +380,18 @@ output.elasticsearch: # The default is 50. #bulk_max_size: 50 - # Configure http request timeout before failing an request to Elasticsearch. + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + + # Configure http request timeout before failing a request to Elasticsearch. #timeout: 90 # Use SSL settings for HTTPS. @@ -429,6 +445,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 3 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional maximum time to live for a connection to Logstash, after which the # connection will be re-established. A value of `0s` (the default) will # disable this feature. @@ -439,7 +458,7 @@ output.elasticsearch: # Optional load balance the events between the Logstash hosts. Default is false. #loadbalance: false - # Number of batches to be sent asynchronously to logstash while processing + # Number of batches to be sent asynchronously to Logstash while processing # new batches. #pipelining: 2 @@ -448,6 +467,17 @@ output.elasticsearch: # if no error is encountered. #slow_start: false + # The number of seconds to wait before trying to reconnect to Logstash + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Logstash after a network error. The default is 60s. + #backoff.max: 60s + # Optional index name. The default index name is set to auditbeat # in all lowercase. #index: 'auditbeat' @@ -494,6 +524,21 @@ output.elasticsearch: # never, once, and freely. Default is never. #ssl.renegotiation: never + # The number of times to retry publishing an event after a publishing failure. + # After the specified number of retries, the events are typically dropped. + # Some Beats, such as Filebeat and Winlogbeat, ignore the max_retries setting + # and retry until all events are published. Set max_retries to a value less + # than 0 to retry until all events are published. The default is 3. + #max_retries: 3 + + # The maximum number of events to bulk in a single Logstash request. The + # default is 2048. + #bulk_max_size: 2048 + + # The number of seconds to wait for responses from the Logstash server before + # timing out. The default is 30s. + #timeout: 30s + #------------------------------- Kafka output ---------------------------------- #output.kafka: # Boolean flag to enable or disable the output module. @@ -529,9 +574,16 @@ output.elasticsearch: #username: '' #password: '' - # Kafka version auditbeat is assumed to run against. Defaults to the oldest - # supported stable version (currently version 0.8.2.0) - #version: 0.8.2 + # Kafka version auditbeat is assumed to run against. Defaults to the "1.0.0". + #version: '1.0.0' + + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true # Metadata update configuration. Metadata do contain leader information # deciding which broker to use when publishing. @@ -579,6 +631,10 @@ output.elasticsearch: # default is gzip. #compression: gzip + # Set the compression level. Currently only gzip provides a compression level + # between 0 and 9. The default value is chosen by the compression algorithm. + #compression_level: 4 + # The maximum permitted size of JSON-encoded messages. Bigger messages will be # dropped. The default value is 1000000 (bytes). This value should be equal to # or less than the broker's message.max.bytes. @@ -635,6 +691,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # The list of Redis servers to connect to. If load balancing is enabled, the # events are distributed to the servers in the list. If one server becomes # unreachable, the events are distributed to the reachable servers only. @@ -682,6 +746,17 @@ output.elasticsearch: # until all events are published. The default is 3. #max_retries: 3 + # The number of seconds to wait before trying to reconnect to Redis + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Redis after a network error. The default is 60s. + #backoff.max: 60s + # The maximum number of events to bulk in a single Redis request or pipeline. # The default is 2048. #bulk_max_size: 2048 @@ -736,6 +811,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # Path to the directory where to save the generated files. The option is # mandatory. #path: "/tmp/auditbeat" @@ -763,8 +846,13 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true - # Pretty print json event - #pretty: false + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true #================================= Paths ====================================== @@ -862,6 +950,13 @@ output.elasticsearch: # Path to fields.yml file to generate the template #setup.template.fields: "${path.config}/fields.yml" +# A list of fields to be added to the template and Kibana index pattern. Also +# specify setup.template.overwrite: true to overwrite the existing template. +# This setting is experimental. +#setup.template.append_fields: +#- name: field_name +# type: field_type + # Enable json template loading. If this is enabled, the fields.yml is ignored. #setup.template.json.enabled: false @@ -1048,6 +1143,17 @@ logging.files: # The default is 50. #bulk_max_size: 50 + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + # Configure http request timeout before failing an request to Elasticsearch. #timeout: 90 @@ -1087,6 +1193,9 @@ logging.files: # never, once, and freely. Default is never. #ssl.renegotiation: never + #metrics.period: 10s + #state.period: 1m + #================================ HTTP Endpoint ====================================== # Each beat can expose internal metrics through a HTTP endpoint. For security # reasons the endpoint is disabled by default. This feature is currently experimental. diff --git a/vendor/github.com/elastic/beats/auditbeat/auditbeat.yml b/vendor/github.com/elastic/beats/auditbeat/auditbeat.yml index 993863c3..56789249 100644 --- a/vendor/github.com/elastic/beats/auditbeat/auditbeat.yml +++ b/vendor/github.com/elastic/beats/auditbeat/auditbeat.yml @@ -11,6 +11,8 @@ auditbeat.modules: - module: auditd + # Load audit rules from separate files. Same format as audit.rules(7). + audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ] audit_rules: | ## Define audit rules here. ## Create file watches (-w) or syscall audits (-a or -A). Uncomment these diff --git a/vendor/github.com/elastic/beats/auditbeat/cmd/root.go b/vendor/github.com/elastic/beats/auditbeat/cmd/root.go index 61b3a8c0..311cf155 100644 --- a/vendor/github.com/elastic/beats/auditbeat/cmd/root.go +++ b/vendor/github.com/elastic/beats/auditbeat/cmd/root.go @@ -1,15 +1,30 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( + "github.com/spf13/cobra" "github.com/spf13/pflag" "github.com/elastic/beats/auditbeat/core" "github.com/elastic/beats/libbeat/cmd" "github.com/elastic/beats/metricbeat/beater" "github.com/elastic/beats/metricbeat/mb/module" - - // Register includes. - _ "github.com/elastic/beats/auditbeat/include" ) // Name of the beat (auditbeat). @@ -18,6 +33,12 @@ const Name = "auditbeat" // RootCmd for running auditbeat. var RootCmd *cmd.BeatsRootCmd +// ShowCmd to display extra information. +var ShowCmd = &cobra.Command{ + Use: "show", + Short: "Show modules information", +} + func init() { create := beater.Creator( beater.WithModuleOptions( @@ -26,4 +47,5 @@ func init() { ) var runFlags = pflag.NewFlagSet(Name, pflag.ExitOnError) RootCmd = cmd.GenRootCmdWithRunFlags(Name, "", create, runFlags) + RootCmd.AddCommand(ShowCmd) } diff --git a/vendor/github.com/elastic/beats/auditbeat/core/eventmod.go b/vendor/github.com/elastic/beats/auditbeat/core/eventmod.go index 7146bd4c..0dd2f5a7 100644 --- a/vendor/github.com/elastic/beats/auditbeat/core/eventmod.go +++ b/vendor/github.com/elastic/beats/auditbeat/core/eventmod.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 core import ( diff --git a/vendor/github.com/elastic/beats/auditbeat/datastore/datastore.go b/vendor/github.com/elastic/beats/auditbeat/datastore/datastore.go index e6c8d176..018897ee 100644 --- a/vendor/github.com/elastic/beats/auditbeat/datastore/datastore.go +++ b/vendor/github.com/elastic/beats/auditbeat/datastore/datastore.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 datastore import ( @@ -5,7 +22,7 @@ import ( "os" "sync" - "github.com/boltdb/bolt" + bolt "github.com/coreos/bbolt" "github.com/elastic/beats/libbeat/paths" ) diff --git a/vendor/github.com/elastic/beats/auditbeat/docker-compose.yml b/vendor/github.com/elastic/beats/auditbeat/docker-compose.yml index f3db9be0..9b7fafde 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docker-compose.yml +++ b/vendor/github.com/elastic/beats/auditbeat/docker-compose.yml @@ -13,6 +13,11 @@ services: volumes: - ${PWD}/..:/go/src/github.com/elastic/beats/ command: make + privileged: true + pid: host + cap_add: + - AUDIT_CONTROL + - AUDIT_READ # This is a proxy used to block beats until all services are healthy. # See: https://github.com/docker/compose/issues/4369 diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/configuring-howto.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/configuring-howto.asciidoc index a86085ad..40efe969 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docs/configuring-howto.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/docs/configuring-howto.asciidoc @@ -35,6 +35,7 @@ The following topics describe how to configure {beatname_uc}: * <> * <> * <> +* <> * <<{beatname_lc}-reference-yml>> After changing configuration settings, you need to restart {beatname_uc} to @@ -76,4 +77,6 @@ include::../../libbeat/docs/yaml.asciidoc[] include::../../libbeat/docs/regexp.asciidoc[] +include::../../libbeat/docs/http-endpoint.asciidoc[] + include::../../libbeat/docs/reference-yml.asciidoc[] diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/fields.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/fields.asciidoc index 0d3a1801..4228f88e 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docs/fields.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/docs/fields.asciidoc @@ -3192,6 +3192,15 @@ SHA512/256 hash of the file. -- +*`hash.xxh64`*:: ++ +-- +type: keyword + +XX64 hash of the file. + +-- + [[exported-fields-host-processor]] == Host fields @@ -3303,7 +3312,7 @@ Kubernetes pod name -- type: keyword -Kubernetes pod uid +Kubernetes Pod UID -- diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/getting-started.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/getting-started.asciidoc index ea2a33f6..b330ba20 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docs/getting-started.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/docs/getting-started.asciidoc @@ -1,18 +1,7 @@ [id="{beatname_lc}-getting-started"] == Getting started with {beatname_uc} -To get started with your own {beatname_uc} setup, install and configure these -related products: - - * Elasticsearch for storage and indexing the data. - * Kibana for the UI. - * Logstash (optional) for inserting data into Elasticsearch. - -See {libbeat}/getting-started.html[Getting Started with Beats and the Elastic Stack] -for more information. - -After installing the Elastic Stack, read the following topics to learn how to -install, configure, and run {beatname_uc}: +include::../../libbeat/docs/shared-getting-started-intro.asciidoc[] * <<{beatname_lc}-installation>> * <<{beatname_lc}-configuration>> @@ -25,7 +14,7 @@ install, configure, and run {beatname_uc}: [id="{beatname_lc}-installation"] === Step 1: Install {beatname_uc} -You should install {beatname_uc} on all the servers you want to monitor. +Install {beatname_uc} on all the servers you want to monitor. include::../../libbeat/docs/shared-download-and-install.asciidoc[] @@ -179,17 +168,7 @@ If you accept the default configuration without specifying additional modules, + See <> for more details about configuring modules. -. If you are sending output to Elasticsearch (and not using Logstash), set the -IP address and port where {beatname_uc} can find the Elasticsearch installation: -+ -[source,yaml] ----------------------------------------------------------------------- -output.elasticsearch: - hosts: ["127.0.0.1:9200"] ----------------------------------------------------------------------- -+ -If you are sending output to Logstash, make sure you -<> instead. +include::../../libbeat/docs/step-configure-output.asciidoc[] include::../../libbeat/docs/step-configure-kibana-endpoint.asciidoc[] @@ -200,13 +179,13 @@ include::../../libbeat/docs/step-test-config.asciidoc[] include::../../libbeat/docs/step-look-at-config.asciidoc[] [id="{beatname_lc}-template"] -=== Step 3: Load the index template in Elasticsearch +=== Step 3: Load the index template in {es} :allplatforms: include::../../libbeat/docs/shared-template-load.asciidoc[] [[load-kibana-dashboards]] -=== Step 4: Set up the Kibana dashboards +=== Step 4: Set up the {kib} dashboards :allplatforms: include::../../libbeat/docs/dashboards.asciidoc[] @@ -215,8 +194,8 @@ include::../../libbeat/docs/dashboards.asciidoc[] === Step 5: Start {beatname_uc} Run {beatname_uc} by issuing the appropriate command for your platform. If you -are accessing a secured Elasticsearch cluster, make sure you've configured -credentials as described in <<{beatname_lc}-configuration>>. +are accessing a secured {es} cluster, make sure you've configured credentials as +described in <<{beatname_lc}-configuration>>. NOTE: If you use an init.d script to start {beatname_uc} on deb or rpm, you can't specify command line flags (see <>). To specify flags, @@ -245,7 +224,7 @@ sudo ./{beatname_lc} -e -c {beatname_lc}.yml -d "publish" ---------------------------------------------------------------------- <1> To monitor system files, you'll be running {beatname_uc} as root, so you need to change ownership of the configuration file, or run {beatname_uc} with -`-strict.perms=false` specified. See +`--strict.perms=false` specified. See {libbeat}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. @@ -263,22 +242,22 @@ By default the log files are stored in +C:{backslash}ProgramData{backslash}{beat ==== Test the {beatname_uc} installation -To verify that your server's statistics are present in Elasticsearch, issue -the following command: +To verify that your server's statistics are present in {es}, issue the following +command: ["source","sh",subs="attributes"] ---------------------------------------------------------------------- curl -XGET 'http://localhost:9200/{beatname_lc}-*/_search?pretty' ---------------------------------------------------------------------- -Make sure that you replace `localhost:9200` with the address of your -Elasticsearch instance. +Make sure that you replace `localhost:9200` with the address of your {es} +instance. On Windows, if you don't have cURL installed, simply point your browser to the URL. [[view-kibana-dashboards]] -=== Step 6: View the sample Kibana dashboards +=== Step 6: View the sample {kib} dashboards To make it easier for you to start auditing the activities of users and processes on your system, we have created example {beatname_uc} dashboards. @@ -289,4 +268,5 @@ include::../../libbeat/docs/opendashboards.asciidoc[] The dashboards are provided as examples. We recommend that you {kibana-ref}/dashboard.html[customize] them to meet your needs. +[role="screenshot"] image:./images/auditbeat-file-integrity-dashboard.png[Auditbeat File Integrity Dashboard] diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/index.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/index.asciidoc index a727c8b0..508755b9 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docs/index.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/docs/index.asciidoc @@ -17,8 +17,6 @@ include::../../libbeat/docs/shared-beats-attributes.asciidoc[] include::./overview.asciidoc[] -include::../../libbeat/docs/contributing-to-beats.asciidoc[] - include::./getting-started.asciidoc[] include::../../libbeat/docs/repositories.asciidoc[] @@ -40,3 +38,6 @@ include::../../libbeat/docs/shared-securing-beat.asciidoc[] include::./troubleshooting.asciidoc[] include::./faq.asciidoc[] + +include::../../libbeat/docs/contributing-to-beats.asciidoc[] + diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/modules/auditd.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/modules/auditd.asciidoc index 7e2d9e07..899b1180 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docs/modules/auditd.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/docs/modules/auditd.asciidoc @@ -67,6 +67,55 @@ from listening to audit messages: systemctl mask systemd-journald-audit.socket ----- +[float] +=== Inspect the kernel audit system status + +{beatname_uc} provides useful commands to query the state of the audit system +in the Linux kernel. + +* See the list of installed audit rules: ++ +[source,shell] +----- +auditbeat show auditd-rules +----- ++ +Prints the list of loaded rules, similar to `auditctl -l`: ++ +[source,shell] +----- +-a never,exit -S all -F pid=26253 +-a always,exit -F arch=b32 -S all -F key=32bit-abi +-a always,exit -F arch=b64 -S execve,execveat -F key=exec +-a always,exit -F arch=b64 -S connect,accept,bind -F key=external-access +-w /etc/group -p wa -k identity +-w /etc/passwd -p wa -k identity +-w /etc/gshadow -p wa -k identity +-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EACCES -F key=access +-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EPERM -F key=access +----- + +* See the status of the audit system: ++ +[source,shell] +----- +auditbeat show auditd-status +----- ++ +Prints the status of the kernel audit system, similar to `auditctl -s`: ++ +[source,shell] +----- +enabled 1 +failure 0 +pid 0 +rate_limit 0 +backlog_limit 8192 +lost 14407 +backlog 0 +backlog_wait_time 0 +features 0xf +----- [float] === Configuration options @@ -79,10 +128,11 @@ following example shows all configuration options with their default values. - module: auditd resolve_ids: true failure_mode: silent - backlog_limit: 8196 + backlog_limit: 8192 rate_limit: 0 include_raw_message: false include_warnings: false + backpressure_strategy: auto ---- *`socket_type`*:: This optional setting controls the type of @@ -141,6 +191,33 @@ embedded in the string using `#` as a prefix. The format for rules is the same used by the Linux `auditctl` utility. {beatname_uc} supports adding file watches (`-w`) and syscall rules (`-a` or `-A`). +*`audit_rule_files`*:: A list of files to load audit rules from. This files are +loaded after the rules declared in `audit_rules` are loaded. Wildcards are +supported and will expand in lexicographical order. The format is the same as +that of the `audit_rules` field. + +*`backpressure_strategy`*:: Specifies the strategy that {beatname_uc} uses to +prevent backpressure from propagating to the kernel and impacting audited +processes. ++ +-- +The possible values are: + +- `auto` (default): {beatname_uc} uses the `kernel` strategy, if supported, or +falls back to the `userspace` strategy. +- `kernel`: {beatname_uc} sets the `backlog_wait_time` in the kernel's +audit framework to 0. This causes events to be discarded in the kernel if +the audit backlog queue fills to capacity. Requires a 3.14 kernel or +newer. +- `userspace`: {beatname_uc} drops events when there is backpressure +from the publishing pipeline. If no `rate_limit` is set, {beatname_uc} sets a rate +limit of 5000. Users should test their setup and adjust the `rate_limit` +option accordingly. +- `both`: {beatname_uc} uses the `kernel` and `userspace` strategies at the same +time. +- `none`: No backpressure mitigation measures are enabled. +-- + [float] === Audit rules @@ -193,6 +270,8 @@ is an example configuration: ---- auditbeat.modules: - module: auditd + # Load audit rules from separate files. Same format as audit.rules(7). + audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ] audit_rules: | ## Define audit rules here. ## Create file watches (-w) or syscall audits (-a or -A). Uncomment these diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/modules/file_integrity.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/modules/file_integrity.asciidoc index 22a5e2fd..6c203a92 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docs/modules/file_integrity.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/docs/modules/file_integrity.asciidoc @@ -101,7 +101,7 @@ a suffix to the value. The supported units are `b` (default), `kib`, `kb`, `mib` *`hash_types`*:: A list of hash types to compute when the file changes. The supported hash types are `blake2b_256`, `blake2b_384`, `blake2b_512`, `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512`, `sha512_224`, `sha512_256`, -`sha3_224`, `sha3_256`, `sha3_384`, and `sha3_512`. The default value is `sha1`. +`sha3_224`, `sha3_256`, `sha3_384`, `sha3_512`, and `xxh64`. The default value is `sha1`. *`recursive`*:: By default, the watches set to the paths specified in `paths` are not recursive. This means that only changes to the contents diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/running-on-kubernetes.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/running-on-kubernetes.asciidoc new file mode 100644 index 00000000..aac11ec2 --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/docs/running-on-kubernetes.asciidoc @@ -0,0 +1,75 @@ +[[running-on-kubernetes]] +=== Running {beatname_uc} on Kubernetes + +{beatname_uc} <> can be used on Kubernetes to +check files integrity. + +ifeval::["{release-state}"=="unreleased"] + +However, version {stack-version} of {beatname_uc} has not yet been +released, so no Docker image is currently available for this version. + +endif::[] + + +[float] +==== Kubernetes deploy manifests + +By deploying {beatname_uc} as a https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/[DaemonSet] +we ensure we get a running instance on each node of the cluster. + +Everything is deployed under `kube-system` namespace, you can change that by +updating the YAML file. + +To get the manifests just run: + +["source", "sh", subs="attributes"] +------------------------------------------------ +curl -L -O https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/kubernetes/{beatname_lc}-kubernetes.yaml +------------------------------------------------ + +[WARNING] +======================================= +If you are using Kubernetes 1.7 or earlier: {beatname_uc} uses a hostPath volume to persist internal data, it's located +under /var/lib/{beatname_lc}-data. The manifest uses folder autocreation (`DirectoryOrCreate`), which was introduced in +Kubernetes 1.8. You will need to remove `type: DirectoryOrCreate` from the manifest and create the host folder yourself. +======================================= + +[float] +==== Settings + +Some parameters are exposed in the manifest to configure logs destination, by +default they will use an existing Elasticsearch deploy if it's present, but you +may want to change that behavior, so just edit the YAML file and modify them: + +["source", "yaml", subs="attributes"] +------------------------------------------------ +- name: ELASTICSEARCH_HOST + value: elasticsearch +- name: ELASTICSEARCH_PORT + value: "9200" +- name: ELASTICSEARCH_USERNAME + value: elastic +- name: ELASTICSEARCH_PASSWORD + value: changeme +------------------------------------------------ + +[float] +==== Deploy + +To deploy {beatname_uc} to Kubernetes just run: + +["source", "sh", subs="attributes"] +------------------------------------------------ +kubectl create -f {beatname_lc}-kubernetes.yaml +------------------------------------------------ + +Then you should be able to check the status by running: + +["source", "sh", subs="attributes"] +------------------------------------------------ +$ kubectl --namespace=kube-system get ds/{beatname_lc} + +NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE +{beatname_lc} 32 32 0 32 0 1m +------------------------------------------------ diff --git a/vendor/github.com/elastic/beats/auditbeat/docs/setting-up-running.asciidoc b/vendor/github.com/elastic/beats/auditbeat/docs/setting-up-running.asciidoc index c666a8ab..f76b2d13 100644 --- a/vendor/github.com/elastic/beats/auditbeat/docs/setting-up-running.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/docs/setting-up-running.asciidoc @@ -4,7 +4,7 @@ // that is unique to each beat. ///// -[[seting-up-and-running]] +[[setting-up-and-running]] == Setting up and running {beatname_uc} Before reading this section, see the @@ -20,6 +20,8 @@ This section includes additional information on how to set up and run * <> +* <> + //MAINTAINERS: If you add a new file to this section, make sure you update the bulleted list ^^ too. @@ -30,3 +32,7 @@ include::../../libbeat/docs/keystore.asciidoc[] include::../../libbeat/docs/command-reference.asciidoc[] include::./running-on-docker.asciidoc[] + +include::./running-on-kubernetes.asciidoc[] + +include::../../libbeat/docs/shared-shutdown.asciidoc[] diff --git a/vendor/github.com/elastic/beats/auditbeat/include/fields.go b/vendor/github.com/elastic/beats/auditbeat/include/fields.go index e59ae424..f82584b4 100644 --- a/vendor/github.com/elastic/beats/auditbeat/include/fields.go +++ b/vendor/github.com/elastic/beats/auditbeat/include/fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. package include @@ -7,12 +24,12 @@ import ( ) func init() { - if err := asset.SetFields("auditbeat/fields.yml", Asset); err != nil { + if err := asset.SetFields("auditbeat", "fields.yml", Asset); err != nil { panic(err) } } // Asset returns asset data func Asset() string { - return "eJzsXVuT2zaWfvevQOXFTlW3Erdj15QfprZjz0y6JpmkxvFeamtLDZGHFNIkQAOg1Mqv3zoHAAleJBHqzuzL+sG2JOI7uBycO8AX1+wBDu/ZBrh9wZgVtoL37Hv3KQeTadFYoeR79ucXjDH2QUnLhTQsU3WtJLVjhYAqN4zvuKj4pgImJONVxWAH0jJ7aMCsXjD/2PsXBHTNJK/BEV7hf+nbWZr459ctUAOmCma3QD1kBmQuZElfVKpkNRjDSzArdhc9Rc2E6aAMWOwg/p4pWYiy1RzJsUJUcIXf44/csh2vWmzJWgM5YQqLH6WyMRg1YVtlrKfkn/9VEalBP67wN/rqHj/edziKRny8X6vppAWK5yeu6xs3TINttYScbQ5ESjWAZGTJzMFYqJmSbL8V2bbveDR3upVSyHKmN1bU8LuSC3oTnvwje7MDbYSS5zvjHwxsRexMi1+CxK5AzuxWGMfKqyHrfvVvOBRjed185UGR19+znNswDxq+tEJD/p5Z3YYvC6VrbgfPwSOvG9x6t23ZGstu3tktu/n29bsr9vrm/Zu379++Wb15c7NsdqlLbO8YGfw2xA2iIVM6Z3tu+vGNBmV5aU5TudUbYTXXB3rWzVbGURQQvzeg3UJxmdMHq7k0PLP9erh5GhF20mEwj2rzG2Rhr7kPa/fLAxz2SuenO9rJqtaA7vcUCihHbNQD0FrpQQdKrdrmNJG/YKMgATNHEfmX57nAZ3nFhCwU7uyMG5JfRMesAjN4qRgAQ2+8MOu+D32y8GijL490q++ax1lNCGQqn6JXSpYp6AgyhUasCfRwzRahOzbxKiqrVJv3OuoDfmSNVjuRAw7T8pxbPq+2fvK/skKr2iF1TQ2uVS+CeJ6v6YF1gMQnMzBG6aNaDB9dUatVgB1vbMjO7N5/ROpt2MMV+0UZI5BxSScZxjUg4BUrM7hiSrNclMLySmXA5epo34Q0lssM1uLM1rnzD7K7j6FLqERYzbOtkOOtO0fhvGbqaMR6fRkV/8A64rNunu3NqoZctPVp6j85CGKxNOLezBGVsId1pPK6HrTmGrix16+zM4I0AmKkEUWv7YRx3RGmV3MnWI5kY7eqXVf8L9ePy1nPN8G+/E2psgK3045T11CeVbX/pGfOjc9v9FxlD7R//E7/GD7PgLvfmLHcovitKshQZ9M2d7/hnjVbpe3aaYD3rOCVwUXjMtsqHehdd7v8xVAohyF33WKz+uGYHPc6AfRK5E+TiZ+l+NJCD8hEPifVO3L1nPpIohjzBcEF69R3AA2JTSsqy5Q81ZVIGFzYkw8dTcQ6RaviG6jMhNrAlmCn7YkzfbmjmXB0OqZFZu5Z9gf3aQbkDo2BiFFRy01ET8+b+P1ZzvS00/jy6Wvyg3crpqvxTJzuBMQMk3OdbYWFzLb6GcYwgGOvYFWu2OOf3q3ffXfFuK6vWNNkV6wWjfl62hVlVk3FLZr0T+vJz59YAPJ9yEBaZa5Yu2mlba/YXshc7Y90YujxXN4HjzNLo+C1qA5PJuFg/CA15Ftur1gOG8HlFSs0wMbkp0YrmkkXBl+doP6jMBYF2t0v1zzPNRgDZkqg5tnTBhnIbLnO91xDT+yKtablVXVgP91+iPsQ5MhDuwEtwYLppcnf4+9myPa/d2bw0KbtQVksS06rxb7RWQE06DRLEkONyp9BPUQz0KjcybZZUu1TRdOIEuLNilbT8Oz5BtUjTomhB/asM4iIR6ZwqXJdRsihsZo3U0pcSmUp/vVs5CLIeZrPabBEdLOB7XKK7DOYbLN0HW7woylyGznS4fOCcG9ipDeKrVD8rFZ5W7kBzg5hHOV1z08DchDF44YUojjTdPI6t6hSZQn5tZDHu3JLQP63DRhn+W65LH1/rBZlCXrSH/zzV2/VFYKmyEKp0cfrhgOsmTr0QTZya7XYtBbMula5KATkVyzTgGNHPVkB/adtcvdNrXb4D5e5j3GtXTcHs4M9iWall8yDwf8V+9vTd5pxTuA33G4Hoj6KSg0QcUXxYWZVNyNB4dZtZcV6qBgCAc33L07vgqN7YJYk+xU9TmEYZ1LJay55dfgd7W+k7hbUBe6Ltoqw0DznZamhdHJjEizVJdj1ZDZOhCcpRkvNXCeRgjnUlZAPE/Q+urEIlriN4hmvXCojF5qCQx7/6xF+DjuRJVFwLUYwQvaBxEUo1IBpaDQYkDZkcPxm6f7vMgAjYr3+TggEI1GKAd99ZK8+3338miYFspZ2pcixE4UAzV59oh+Lvj9qj3J52Af6LnlhqNVLF4x2XtMAtFw+MGJwLWquD24j07j+Nur6GD+yxS6gEEvlGfT6NAt0gvfbd999e4wgYgzmXkimMsurnlVoE45IG7BjptgoVQGXY+JRBmZA/BNYJiK6W+6k/b2DvmcbYZHMiv1cC4saSNkt6L0w42kwYMfr+Ix9KdP6In4fLkkU2p/nUGyBk745oPXwyolGYZiS1cH7E5RTuke8e/zlHtvdj+VKbUU9JB0luiakK24sC4qO0lcDJnhF3xBdtGfQzNhz0zUY087SaQelfoJy51Uhaff8hLLSohRykVKMtdWtZFxrfkDSxmohSxOMDkoj9ZYCPFqUHJWnhJojNhVRvzlVh9aHZzSXm/78zx+ZcPOWq72sFM99jHTFfpYDj960TaM08pWQ6Af//OmK7QR3XuRPH+8s1P+xBQ1/1ao2vamwiiACY4oi9FRIl/GkEDDlz3sL8g83Bhar/YmyZ4qUUYTmx4OsMNn5lZDt41H3d8J6n/7yIzbw2scehsLVNZqfDVQgKdOB1Ej5BBLOfVqNJ1lVkAxLSC9NNxoEGQPnquZCPhnawbAuKzgkUsEOqjM0OuFrvk2gS8hdmJe3ubBRFvI2fB4DGaAknVtScpp6ByZkGqmt9wpOuE2zdvucVZ5xC6XShyWamIhf67ZaULFBvXhpOny3oVx5TA5a7ELGhTSVKzKgwPr96kkGLfXRFy28NH3RwGQnLJkcnmA6Vgq3uTcZL7U/55pDQnsoCsis2MEsUmESoJx6dxU1c2ApWGiHzYIkWLDBah3OTQJAPzezUCYByoCdBylSUOIZnkXDv9c1b5ZpiChLXuCOMqrawVrkhswuKitTZEPOV4xRDdt9INlXme1FVYWwEOOs5k2DRoYqkK+9UqRQY/CdPeV8mC1ykXvcUOz6z0wrZb8+rbJ4HHZdoACi/RcRnu7BRWDHYCARZ7QfZxDjPbkIcrIvZ0BTMfv9OQNWpmH1vt947hKBxvt1bpyJkP2+nV2JRLTp/u1Qn93E45l1pUTHN0yqjcezTLXSMtNuvPVNxmyLgsCKjEfFd5fae9ilkaX3LIYezca/3s4bk/Vm3pDayKC6eEyd4UQVc3XDta1BWjOwZnySbdagGVD4xT24LFC7XIUF2LuPQ6utScHgGsVPcwQq2qmLu0ORp1eZquuvR9YkWuCpaNTIL0PNZc4qIYE1XPMaLGjDXmHf6akROXhcTOx2Y1TVWh+G9rseHiFrbe/ydjy2Twr8Za2mKd4r/YC6OxcakNsOQ1SuS5MCG1aM67Il1mQcbfxKmGGWxahWZwsyCZ/ouROZkmMMK4YWkjgqXTXUylK5pgZjRiyrtE0avdKWybbegB4CjWrsz4KFkpiw6G66Rp1Lyha48IUNOQ1ujMoEeZF7gZ9ZK8UjMyp7gOFK5WCskHyUDjuyXB/7h8OM/v/a/d+tnQSL+3vlNvfxhOZwDcPDYQAehVnNi0Jk7NW9kJmqhSzvUQLeq9aWCj99PSDehTiW+dUGvrQgs2Wx5mFcITT1y9dJSkomo/wxRpTR6ZAH0BKqFfs0JMl8e1cWbaxCdiXx1Qpp39wEH8k1d4lSLtGCqdRuzDUGTFRHlZhk8o3Z3ce+71ahHEWHZsVuQ6rcMA2VS2Z3P3dIAYW8tS3fuSiSQdakmMuwwxpMW53aMb051GYk45VmBRfV8c2JgJ2xitwAeTiZoyR75XG+QZBxFNy0dc1HEajjZUAdy6EGGxlZcatjJlbYXuTuzMgrF0CKpNa0C7H9JaKuH5vNExwQuCBkzubt/oFcCIaiCyzzasQJ+Ofu44rdWccMUnXpChxUyBS58y30PXnuXFJSKHgF0wI3A5mS+QWDdUzuG58d4KERGa8G+QXW87LPbPnZumLwmEFjyXHpji7RyLbcHalj96a9H5voo1qgs7wzlxxASnZLkRDtAdkGKP1CRbpt0x/NW8hMTz8Bcxv/GGZ4Tzy+BfYV9fcr7L2LxriMv9MlVwMgnMNrL1NmqikvZPuvvno+ruqwetX9tIRPX7WzVfvAmiRSuWEN6ELpGvIV++xrMW3ECL2dzyjj03kKJF+o4p1Yw9nzkJ+rBopNh+PlkYPxhPJRajIxGyZcOC9T47KMRbPoyjKcKh179rBLQXJlIs5z44YVqpWUT/ymx4m27zo12DFhFwRJDWfMgqRHMGZhlgQpzqIMJMhFGJcEI12iMA7vR5ZGIhvYrmJoUGNjGsgEr1yNDxUXfD0ihH+nDv9ByBz3jBtFZ6y4vaqhAI0WYz6eo0vChG6OBlH+aNtZqFMQ3XkobIUCKHQ3UzqfdLZO3NBUUFNUvKRMNu9rAI8cAlk6ftrXQjK+y8yooswdwGTL4qP9gczeVuuO8J+zF8enic90XIItRGVBs4ajimS5MI0yYiYwWgs5MUaXiDtqNy8/eTYxUU6Hc0O0NcR1Z0Lc6Dyn7sah3+01VzCzBFUMS/QhZUnrMqKYiWabJqmDO53pQ2OVB2AG3OGn8c5J2ol5q52B5ibIW78jSJBWCzBJXe5cUd84GH49B1EQb0QJxU8KGQN6h2Q0yyqB7q6QYZY64TUmEVV0LROJcHA1XWhSnwE3zQVZpj7MO+ZNnW1TeROqYngQiyTXBLjMUoH7Fe2Dm+QkkQm3o7QPuiljMcB/u0wMYLt5MdBKkSQGXD4qj9v1lcebNHtnxL5zEsWCrtEJTZpg38Zt9ViW+FO9yCSl5jXqoBG9UnNplU7ang2vfcGMYbyhA/K+fHigEzqFNAigLV3IOJB2Zt+oJpUdx7ZJ54505Wg+5DJeHZuUhrL2wFrPkmnLMtwOSxkVm4StJqRP+I7vIFEZpS/GQ4vMhmUptl//K66t7JK+w+OJaVaBVlZlaioEksSNZ5afbj8wXpVKC7utj6m7pkhjfNA0o4XSe65zdLY1ZAdWg92qiSq1UCehD+UkRaudEWoGcY+xNP72SQ4Kf/205jdPa/7mSc1H2YXFs9zdxZRofFVRXmRhDU2GYtnnAKLWnTuXiuitxyjhMja3HpP1G4kNbBdfR9Nt6CTh6jcfWj2FkCVtajHh2SrVbh7OozedJ9bTRYtzfCYz3viLQZJkhDLisW8rJvawjNLCT7affLCRzdhOEvbXINHOSDIqJexJtvuwvQNgBixuivH2xWfWG549VKpcV6JOYz1HwhlYLw3zOOxLCy3ERyciQyLdhFD6MGdnZbxZpwU3gqHdl1H1DML6osI4UJCmv8NZKGrpDRMKuaPrsBMT2SFhv26SdieubRhGg0YjVSmdHIaq8ku4yJ8VWsxJKrU6sSsRn5YJDzqfhFnlLrk3gtlwKSHNRPZN3Pop6aQg5KzpzxZ3Ahb44AqNRU4lJVF9S88q/kjMCH1XX2f2MVXc7HA/0lGfR+tPxExs7gvX66i/agBZMmmWQ2kX8TLlVky0byb4gyxtEoHbf//AcsgEpYTJZYL8mxykmFBBqauj69sSI/WqYFqWIfGVhyNCjLPd2BjBnSkhaThhV5Jt7ONPcY58QsOIEnZrfEAliTJRkjs6p1VFGtSJhIiq8jXIQulMpE047nOcAtcYUJvS5VXtWFXjFO+ypr1kjnuN/eGXzyxTemIIaNyvKdBd9Sfz5Z8RQFSJkGZOnqwzGJYZjLV/nieaFt2UoCJyqYcc7JxjVvCkAL63ggJPD5zQbmdW8uE6UWo1InfdtZWQDyFsbUDmE2407ea3JOvTNA01cmLxpLDl//3t9Zv/SRXiY0txNsKWDdP0i6I/7li/a4muqTmYYszcTkWlK7WXprsOdn7TZ6pOYg3Vz3BUbDpjEaLkTpSnsRz1IvuUNA1qape067sKdgoD9BhxKqpbzYqb1P3vikSp5enuU9F00vwIs3aN1pabh2GVVLfTRQoi5b66Xgq5BS3O2rBDyyhRVPnGTlyNbXyTpHdcEeKhUjwfSFwf5hl7O88eGkAON5Ca6UdZHXgwatvr8x2vRL72AuwSzh427cafGPfzw4/25LinzWPqBr/75T+7qMO8NZPotogm6yXSvNNS84wCoSmwYLd04VDQUNiE3X10mduxBL1AT/l6rJNKSiTq1rtfKOZcal6zQvOSzLC+RmGGd9OCtfFpotienhNtuzrVMiAP6agvQ9GFJMEWoBaKNLRMU13mRsNOqNa4Q4Nzjq4yadZjx8l9ze1YuqdXdoRvjiXwRGK5yGDLHSkYQe7KhXlIctuEeTjLWA2dxUlVErHT010J7E71zNSPVJCUWatAll0BfbfyRcXTfKgGZBc7nssSt4ncydnnz9N9lFhtYyBDgyNUGs6Es8kLKHVi2MyZ//5M4pFY8TotUk68vjAIh+xZp5U0odbmNZVlqILVUNOVAZL9/fux30Jhl0vUdh918dsgh0zkFO8a0bjIS8cRLPLScXayLU+tjEN8bMYzCzoEYRZY8Sh6nyvCgzbL7lSMp7WiSNqWraW77nTBsyNhk6xO2pfBbRoW3I4wt0olyc4+54stXRrOmy4ZTtJM7g1XObmmE9dYt3JwYrVj/FT9afwbPI6Gm41I4opTUbJhZmXPhV1Hlyo9JbuCWCzC6jQVRaiTPAPfZM6Zxk2SKLFC4GyR1EqVWd2FUhOhNRMpVlWeaL2pKk+14FCUXbCeOYeaNFt81YRzrOmNPRFqZ4PRvU/ppCpVvjTD1nHqKdEMw63YXZQ3FLMjcHuBK2m7Gx3pIE8c9TnhstQ8yRU6X1y25zat6G5Yy+vaHwkHxBdFpmqdEVai/XP0hoeNUmni2CvAYEEM7+XrDPysbuK3iixjAP8KEWw8em1PzLSVyhIV1d7fsaSKLt8WgQxERq+0lipBVxaiVS1M1qKciMzwvm45aY65O18YLnLsAnwnbRqRag/HdRhUlTDSH4McdZIojXPUC0VpDgVvK3t9gdzwTcnQnA9DkS+WKuw6QRfe24EgKJmiW0sHho0q1w03Zp8sUh1zFkpTqp0wlM7pcuWpvKPVSKxY3acWPoRSu0uWI9j8QWrHTDs8FDxwvHZpdkscGYoLdU5nHiLPO020TxYhcUrcZjse14xKQ5YlWvwpHWzX8kr8vuiUDoW00hJF6ZUmySnRYDR2N+LMp0R1YiTZy8yTZgpl+lP7GwfT5/qqNr89RdYMDuL2ln1iNDlSTHP1uLhQTwiWDXzeiSZyjk/BRZVYEzNydzzCXJJMyDSfmi5PPelS75L0vt934U1DczIiDqgtwqxr3pwMx1HcKzGr3qW9PR8cLcN4cmT+NE8ghcTIdBfrNijWZ0LdBr4k1rQM78kYL9i/RAV9oVuhk3i3C34b9qXl3U0BMVA/JampwXFBCoVFonN2AyWdrjw77b/Q8kCJnFqugwL5fKkOcmBy8ElV+dHgE/kLSdo0DjEs1Kh5apm1T6He/XLE0iAVnXjGe6Khp3fWCZXZKjEs6S5J+dICvTrMFbqECzMJ70i9i0nMKrsi8ePGF28aruu0Q2qhjT+QE93MPZYqf/yeQVZa1zxNm48jadh+fAVDCGbMnVlJFOYu5no0x0jSJb2KZGmmdfPb+pLLTk8YZBq4STsNF4WwWA5SWXctvQPq3l84e/quEiY5kja2pVyoHpGOV2KmRlaCXFgSXdm0aceHfZjJtJtgZbR0WXYdm/aVkqVhnWU8kMxJ+y6WzAmaKlWQDlyHqRD9g6JPrU7aWZ//eccaJfwLZdTRuJAz8y84WBCzpnlp/LGCb3Jh6ETt0TLeyyIsQyZdGGVx5mqqLTXWkzOlVk0aYhWytEZJHh1j6qTwhXH2hUWrNrkYsQ/g+3IjBBDF/NW5iQZ3nD05V2MqIenmI8cczpExQLcIDM90dF1OO9ZN7yoQmcefu4Ho2IFoUZcXn/ogT929Z/j0AZAqvyTrHth8knk/l3NfJ85euKO10y+nkw6+0D2Fwn5LZXduT3jXe89NgCraiinNpJqPKF9uU5wLKHtnOkkZdB6Qf7XdbLmrq7If4Q7rx4+/YVTH74qc79KMiT+5WHTQn4F/k4Cq+X58ZMBY3dKVFzMvOr6UyswFqzHu4jf59i+1l+LxFEU/pvBuX3z8iolm9x39/e4qRHTmbqDrL1VNGGTa5aoxvXDH0IuY3vl3Nd1KpnRODkblL2izfkEDItOQwfB1KP68HHooHdIeNLjjeVahpHMM4G6hy1VGDqW/RrF7CVcQXqKgm0u0jvy+cK1CMAXDlRh0wZLS2OZeyKxqc1hrvl/77oZ3SXQ4g3dJDOdsz7UUcvmd0sN7UUPr6Ttwvgduw10+nrabjejSw9GVi/3LdbzlRWAhm8ZlTr91p1dz2EGlGnLS8cccNm1fK9O0ulHG30M2uAa3BOVTk2NhMztQHCY16d6Rih2EQshwGW2m5A6koECekCzjBthBtb50rfcGQGqRbfsFbI3zuAI6OURCsh9VaSw3W1zhO1mCsewfKofp9cxxTSNaxyDtWiZeXTB+waaMLkruUCfX5wt7eF5Kwh4m762CUij5rGQc5GQ0qpVWH9bCqHVqcWhM7YPDYXeffqYq0ckrDtTA6Oz4D9Sa3Jtl40EXU9g2B2L6ilv60L3HCnXsunszbf8+K3oD7F30/VjQL3iv1RD75Putttxsl++xH7jZghm8KY3G+gAHt9/6S1ckvcXGXdsZv2Q3yK8tsC08MpC4AjnLBe0f95y/uHPusutNxR/gZrO+eftuqST8/sfbv//lZnN98/YdDffEWzQD+ps/fZeK/uZP3y1Ff/v6JhX97eubc+h1/nYp6k8f355DM9vucpizcJ9+uH29AO/mZvGkfvrh9ubm7Hwi5nI2QMzzHGC2PGHxP/1wu2DdEXOdNnp6fhlu0gzQ84twE2dhvXQeEpifcBdwvtnyNNTFmImr9vb1zTfL1o2wk1aOsGfX7n8DAAD//9kysTE=" + return "eJzsfVuT2zb257s/BSovdqq6lbgdu6b88K/t2DOTrkkmrnG8O1tbW2qIPKSQJgEaAKVWPv3WOQBI8CKJUHdmX/556FgS8Tu4HJw7wBfX7AEO79kGuH3BmBW2gvfsR/cpB5Np0Vih5Hv2Xy8YY+yDkpYLaVim6lpJascKAVVuGN9xUfFNBUxIxquKwQ6kZfbQgFm9YP6x9y8I6JpJXoMjvMJ/0rezNPG/37ZADZgqmN0C9ZAZkLmQJX1RqZLVYAwvwazYXfQUNROmgzJgsYP4e6ZkIcpWcyTHClHBFX6PP3LLdrxqsSVrDeSEKSx+lMrGYNSEbZWxnpJ//jdFpAb9uMLf6Kt7/Hjf4Sga8fF+raaTFiien7iub9wwDbbVEnK2ORAp1QCSkSUzB2OhZkqy/VZk277j0dzpVkohy5neWFHDH0ou6E148s/szQ60EUqe74x/MLAVsTMtfgkSuwI5s1thHCuvhqz7zf/AoRjL6+YbD4q8/p7l3IZ50PC1FRry98zqNnxZKF1zO3gOHnnd4Na7bcvWWHbzzm7Zzfev312x1zfv37x9//bN6s2bm2WzS11ie8fI4LchbhANmdI523PTj280KMtLc5rKrd4Iq7k+0LNutjKOooD4vQHtForLnD5YzaXhme3Xw83TiLCTDoN5VJvfIQt7zX1Yu18e4LBXOj/d0U5WtQZ0v6dQQDliox6A1koPOlBq1TanifwVGwUJmDmKyL88zwU+yysmZKFwZ2fckPwiOmYVmMFLxQAYeuOFWfd96JOFRxt9eaRbfdc8zmpCIFP5FL1SskxBR5ApNGJNoIdrtgjdsYlXUVml2rzXUR/wI2u02okccJiW59zyebX1i/+VFVrVDqlranCtehHE83xND6wDJD6ZgTFKH9Vi+OiKWq0C7HhjQ3Zm9/4zUm/DHq7YJ2WMQMYlnWQY14CAV6zM4IopzXJRCssrlQGXq6N9E9JYLjNYizNb584/yO4+hi6hEmE1z7ZCjrfuHIXzmqmjEev1ZVT8A+uIz7p5tjerGnLR1qep/+IgiMXSiHszR1TCHtaRyut60Jpr4MZev87OCNIIiJFGFL22E8Z1R5hezZ1gOZKN3ap2XfG/XD8uZz3fBPvyd6XKCtxOO05dQ3lW1f6Lnjk3Pr/Rc5U90P7xO/1j+DwD7n5jxnKL4reqIEOdTdvc/YZ71myVtmunAd6zglcGF43LbKt0oHfd7fIXQ6Echtx1i83qh2Ny3OsE0CuRP00mfpHiaws9IBP5nFTvyNVz6iOJYswXBBesU98BNCQ2ragsU/JUVyJhcGFPPnQ0EesUrYpvoDITagNbgp22J8705Y5mwtHpmBaZuWfZn9ynGZA7NAYiRkUtNxE9PW/i92c509NO48unr8lP3q2YrsYzcboTEDNMznW2FRYy2+pnGMMAjr2CVblij395t373wxXjur5iTZNdsVo05ttpV5RZNRW3aNI/rSe/fmYByPchA2mVuWLtppW2vWJ7IXO1P9KJocdzeR88ziyNgteiOjyZhIPxg9SQb7m9YjlsBJdXrNAAG5OfGq1oJl0YfHWC+s/CWBRod5+ueZ5rMAbMlEDNs6cNMpDZcp3vuYae2BVrTcur6sB+uf0Q9yHIkYd2A1qCBdNLk3/E382Q7X/vzOChTduDsliWnFaLfaOzAmjQaZYkhhqVP4N6iGagUbmTbbOk2qeKpojSJ5WzL3cfp4Twr2l49nyD6hGnxNADe9YZRMQjU7hUuS4j5NBYzZspJS6lshT/ejZyEeQ8zec0WCK62cB2OUX2GUy2WboON/jRFLmNHOnweUG4NzHSG8VWKH5Wq7yt3ABnhzCO8rrnpwE5iOJxQwpRnGk6eZ1bVKmyhPxayONduSUg/9sGjLN8t1yWvj9Wi7IEPekP/vc3b9UVgqbIQqnRx+uGA6yZOvRBNnJrtdi0Fsy6VrkoBORXLNOAY0c9WQH9o21y902tdvg/LnMf41q7bg5mB3sSzUovmQeD/xv2t6fvNOOcwG+43Q5EfRSVGiDiiuLDzKpuRoLCrdvKivVQMQQCmu9fnN4FR/fALEn2G3qcwjDOpJLXXPLq8Afa30jdLagL3BdtFWGhec7LUkPp5MYkWKpLsOvJbJwIT1KMlpq5TiIFc6grIR8m6H10YxEscRvFM165VEYuNAWHPP63I/wcdiJLouBajGCE7AOJi1CoAdPQaDAgbcjg+M3S/dtlAEbEev2dEAhGohQDvvvIXn25+/gtTQpkLe1KkWMnCgGavfpMPxZ9f9Qe5fKwD/Rd8sJQq5cuGO28pgFouXxgxOBa1Fwf3Eamcf191PUxfmSLXUAhlsoz6PVpFugE7/fvfvj+GEHEGMy9kExlllc9q9AmHJE2YMdMsVGqAi7HxKMMzID4Z7BMRHS33En7ewd9zzbCIpkV+7UWFjWQslvQe2HG02DAjtfxGftSpvVF/DFckii0P8+h2AInfXNA6+GVE43CMCWrg/cnKKd0j3j3+Ms9trsfy5XainpIOkp0TUhX3FgWFB2lrwZM8Iq+Ibpoz6CZseemazCmnaXTDkr9BOXOq0LS7vkJZaVFKeQipRhrq1vJuNb8gKSN1UKWJhgdlEbqLQV4tCg5Kk8JNUdsKqJ+c6oOrQ/PaC43/eVfPzPh5i1Xe1kpnvsY6Yr9KgcevWmbRmnkKyHRD/718xXbCe68yF8+3lmo/9cWNPxNq9r0psIqggiMKYrQUyFdxpNCwJQ/7y3IP90YWKz2J8qeKVJGEZofD7LCZOdXQraPR93fCet9/uvP2MBrH3sYClfXaH42UIGkTAdSI+UTSDj3aTWeZFVBMiwhvTTdaBBkDJyrmgv5ZGgHw7qs4JBIBTuoztDohK/5PoEuIXdhXt7mwkZZyNvweQxkgJJ0bknJaeodmJBppLbeKzjhNs3a7XNWecYtlEoflmhiIn6t22pBxQb14qXp8N2GcuUxOWixCxkX0lSuyIAC6/erJxm01EdftPDS9EUDk52wZHJ4gulYKdzm3mS81P6caw4J7aEoILNiB7NIhUmAcurdVdTMgaVgoR02C5JgwQardTg3CQD93MxCmQQoA3YepEhBiWd4Fg3/rmveLNMQUZa8wB1lVLWDtcgNmV1UVqbIhpyvGKMatvtAsq8y24uqCmEhxlnNmwaNDFUgX3ulSKHG4Dt7yvkwW+Qi97ih2PV/Ma2U/fa0yuJx2HWBAoj2X0R4ugcXgR2DgUSc0X6cQYz35CLIyb6cAU3F7PfnDFiZhtX7fuO5SwQa79e5cSZC9vt2diUS0ab7t0N9dhOPZ9aVEh3fMKk2Hs8y1UrLTLvx1jcZsy0KAisyHhXfXWrvYZdGlt6zGHo0G/95O29M1pt5Q2ojg+riMXWGE1XM1Q3XtgZpzcCa8Um2WYNmQOGTe3BZoHa5Cguwdx+HVluTgsE1ip/mCFS0Uxd3hyJPrzJV19+OrEm0wFPRqJFfhprLnFVCAmu45jVY0Ia9wr7TUyNy8LiY2O3GqKq1Pgztdz08Qtba3uXteGyfFPjLWk1TvFf6AXV3LjQgtx2GqFyXJgU2rBjXZUusyTja+JUwwyyLUa3OFmQSPtNzJzIlxxhWDC0kcVS6aqiVpXJNDcaMWFZpmzR6pS2Tbb0BPQQa1difBQslMWHR3XSNOpeULXDhCxtyGtwYlQnyIvcCP7NWikdmVPYAw5XKwVgh+SgddmS5PvYPhxn977X7/7d2Eizu75Xb3McTmsM1DA+HAXgUZjUvCpGxV/dCZqoWsrxHCXivWlsq/PTtgHgX4ljmVxv42oLMlsWah3GF0NQvXycpKZmM8scYUUanQx5AS6hW7POQJPPtXVm0sQrZlcRXK6R9cxN8JNfcJUq5RAumUrsx1xgwUR1VYpLJN2Z3H/u+W4VyFB2aFbsNqXLDNFQumd393CEFFPLWtnznokgGWZNiLsMOazBtdWrH9OZQm5GMV5oVXFTHNycCdsYqcgPk4WSOkuyVx/kOQcZRcNPWNR9FoI6XAXUshxpsZGTFrY6ZWGF7kbszI69cACmSWtMuxPaXiLp+bDZPcEDggpA5m7f7B3IhGIousMyrESfgf3cfV+zOOmaQqktX4KBCpsidb6HvyXPnkpJCwSuYFrgZyJTMLxisY3Lf+OwAD43IeDXIL7Cel31my8/WFYPHDBpLjkt3dIlGtuXuSB27N+392EQf1QKd5Z255ABSsluKhGgPyDZA6Rcq0m2b/mjeQmZ6+gmY2/jHMMN74vEtsG+ov99g7100xmX8nS65GgDhHF57mTJTTXkh23/zzfNxVYfVq+6nJXz6qp2t2gfWJJHKDWtAF0rXkK/YF1+LaSNG6O18RhmfzlMg+UIV78Qazp6H/Fw1UGw6HC+PHIwnlI9Sk4nZMOHCeZkal2UsmkVXluFU6dizh10KkisTcZ4bN6xQraR84nc9TrR916nBjgm7IEhqOGMWJD2CMQuzJEhxFmUgQS7CuCQY6RKFcXg/sjQS2cB2FUODGhvTQCZ45Wp8qLjg2xEh/Js6/Achc9wzbhSdseL2qoYCNFqM+XiOLgkTujkaRPmjbWehTkF056GwFQqg0N1M6XzS2TpxQ1NBTVHxkjLZvK8BPHIIZOn4aV8LyfguM6OKMncAky2Lj/YHMntbrTvCf85eHJ8mPtNxCbYQlQXNGo4qkuXCNMqImcBoLeTEGF0i7qjdvPzk2cREOR3ODdHWENedCXGj85y6G4d+t9dcwcwSVDEs0YeUJa3LiGImmm2apA7udKYPjVUegBlwh5/GOydpJ+atdgaamyBv/Y4gQVotwCR1uXNFfeNg+PUcREG8ESUUPylkDOgdktEsqwS6u0KGWeqE15hEVNG1TCTCwdV0oUl9Btw0F2SZ+jDvmDd1tk3lTaiK4UEsklwT4DJLBe5XtA9ukpNEJtyO0j7opozFAP/9MjGA7ebFQCtFkhhw+ag8btdXHm/S7J0R+85JFAu6Ric0aYJ9G7fVY1niT/Uik5Sa16iDRvRKzaVVOml7Nrz2BTOG8YYOyPvy4YFO6BTSIIC2dCHjQNqZfaOaVHYc2yadO9KVo/mQy3h1bFIaytoDaz1Lpi3LcDssZVRsEraakD7hO76DRGWUvhgPLTIblqXYfvvfcW1ll/QdHk9Mswq0sipTUyGQJG48s/xy+4HxqlRa2G19TN01RRrjg6YZLZTec52js60hO7Aa7FZNVKmFOgl9KCcpWu2MUDOIe4yl8fdPclD466c1v3la8zdPaj7KLiye5e4upkTjq4ryIgtraDIUyz4HELXu3LlURG89RgmXsbn1mKzfSGxgu/g6mm5DJwlXv/nQ6imELGlTiwnPVql283Aevek8sZ4uWpzjM5nxxl8MkiQjlBGPfVsxsYdllBZ+sv3kg41sxnaSsL8GiXZGklEpYU+y3YftHQAzYHFTjLcvPrPe8OyhUuW6EnUa6zkSzsB6aZjHYV9baCE+OhEZEukmhNKHOTsr4806LbgRDO2+jKpnENYXFcaBgjT9Hc5CUUtvmFDIHV2HnZjIDgn7dZO0O3FtwzAaNBqpSunkMFSVX8JF/qzQYk5SqdWJXYn4tEx40PkkzCp3yb0RzIZLCWkmsm/i1k9JJwUhZ01/trgTsMAHV2gsciopiepbelbxR2JG6Lv6OrOPqeJmh/uRjvo8Wn8iZmJzX7heR/1VA8iSSbMcSruIlym3YqJ9M8EfZGmTCNz+zw8sh0xQSphcJsi/y0GKCRWUujq6vi0xUq8KpmUZEl95OCLEONuNjRHcmRKShhN2JdnGPv4U58gnNIwoYbfGB1SSKBMluaNzWlWkQZ1IiKgqX4MslM5E2oTjPscpcI0BtSldXtWOVTVO8S5r2kvmuNfYHz59YZnSE0NA435Nge6qP5kv/4wAokqENHPyZJ3BsMxgrP3zPNG06KYEFZFLPeRg5xyzgicF8L0VFHh64IR2O7OSD9eJUqsRueuurYR8CGFrAzKfcKNpN78nWZ+maaiRE4snhS3/P99fv/m/qUJ8bCnORtiyYZp+UfTHHet3LdE1NQdTjJnbqah0pfbSdNfBzm/6TNVJrKH6GY6KTWcsQpTcifI0lqNeZJ+SpkFN7ZJ2fVfBTmGAHiNORXWrWXGTuv9dkSi1PN19KppOmh9h1q7R2nLzMKyS6na6SEGk3FfXSyG3oMVZG3ZoGSWKKt/YiauxjW+S9I4rQjxUiucDievDPGNv59lDA8jhBlIz/SirAw9GbXt9vuOVyNdegF3C2cOm3fgT435++NGeHPe0eUzd4Hef/t1FHeatmUS3RTRZL5HmnZaaZxQITYEFu6ULh4KGwibs7qPL3I4l6AV6ytdjnVRSIlG33n2imHOpec0KzUsyw/oahRneTQvWxqeJYnt6TrTt6lTLgDyko74MRReSBFuAWijS0DJNdZkbDTuhWuMODc45usqkWY8dJ/c1t2Ppnl7ZEb45lsATieUigy13pGAEuSsX5iHJbRPm4SxjNXQWJ1VJxE5PdyWwO9UzUz9SQVJmrQJZdgX03coXFU/zoRqQXex4LkvcJnInZ1++TPdRYrWNgQwNjlBpOBPOJi+g1IlhM2f++zOJR2LF67RIOfH6wiAcsmedVtKEWpvXVJahClZDTVcGSPaPH8d+C4VdLlHbfdTFb4McMpFTvGtE4yIvHUewyEvH2cm2PLUyDvGxGc8s6BCEWWDFo+h9rggP2iy7UzGe1ooiaVu2lu660wXPjoRNsjppXwa3aVhwO8LcKpUkO/ucL7Z0aThvumQ4STO5N1zl5JpOXGPdysGJ1Y7xU/Wn8W/wOBpuNiKJK05FyYaZlT0Xdh1dqvSU7ApisQir01QUoU7yDHyTOWcaN0mixAqBs0VSK1VmdRdKTYTWTKRYVXmi9aaqPNWCQ1F2wXrmHGrSbPFVE86xpjf2RKidDUb3PqWTqlT50gxbx6mnRDMMt2J3Ud5QzI7A7QWupO1udKSDPHHU54TLUvMkV+h8cdme27Siu2Etr2t/JBwQXxSZqnVGWIn2z9EbHjZKpYljrwCDBTG8l68z8LO6id8qsowB/CtEsPHotT0x01YqS1RUe3/Hkiq6fFsEMhAZvdJaqgRdWYhWtTBZi3IiMsP7uuWkOebufGG4yLEL8J20aUSqPRzXYVBVwkh/DHLUSaI0zlEvFKU5FLyt7PUFcsM3JUNzPgxFvliqsOsEXXhvB4KgZIpuLR0YNqpcN9yYfbJIdcxZKE2pdsJQOqfLlafyjlYjsWJ1n1r4EErtLlmOYPMHqR0z7fBQ8MDx2qXZLXFkKC7UOZ15iDzvNNE+WYTEKXGb7XhcMyoNWZZo8ad0sF3LK/HHolM6FNJKSxSlV5okp0SD0djdiDOfEtWJkWQvM0+aKZTpT+1vHEyf66va/P4UWTM4iNtb9onR5EgxzdXj4kI9IVg28Hknmsg5PgUXVWJNzMjd8QhzSTIh03xqujz1pEu9S9L7ft+FNw3NyYg4oLYIs655czIcR3GvxKx6l/b2fHC0DOPJkfnTPIEUEiPTXazboFifCXUb+JpY0zK8J2O8YP8RFfSVboVO4t0u+G3Y15Z3NwXEQP2UpKYGxwUpFBaJztkNlHS68uy0/0LLAyVyarkOCuTzpTrIgcnBJ1XlR4NP5C8kadM4xLBQo+apZdY+hXr36YilQSo68Yz3RENP76wTKrNVYljSXZLytQV6dZgrdAkXZhLekXoXk5hVdkXix40v3jRc12mH1EIbfyAnupl7LFX+/D2DrLSueZo2H0fSsP34CoYQzJg7s5IozF3M9WiOkaRLehXJ0kzr5vf1JZednjDINHCTdhouCmGxHKSy7lp6B9S9v3D29F0lTHIkbWxLuVA9Ih2vxEyNrAS5sCS6smnTjg/7MJNpN8HKaOmy7Do27SslS8M6y3ggmZP2XSyZEzRVqiAduA5TIfonRZ9anbSzvvzrjjVK+BfKqKNxIWfmX3CwIGZN89L4YwXf5cLQidqjZbyXRViGTLowyuLM1VRbaqwnZ0qtmjTEKmRpjZI8OsbUSeEL4+wLi1ZtcjFiH8D35UYIIIr5q3MTDe44e3KuxlRC0s1HjjmcI2OAbhEYnunoupx2rJveVSAyjz93A9GxA9GiLi8+9UGeunvP8OkDIFV+SdY9sPkk834u575OnL1wR2unX04nHXyhewqF/ZbK7tye8K73npsAVbQVU5pJNR9RvtymOBdQ9s50kjLoPCD/arvZcldXZT/CHdaPH3/DqI7fFTnfpRkTf3Kx6KA/A/8mAVXz/fjIgLG6pSsvZl50fCmVmQtWY9zFb/LtX2ovxeMpin5M4d2++PgVE83uB/r77ipEdOZuoOsvVU0YZNrlqjG9cMfQi5je+Xc13UqmdE4ORuUvaLN+QQMi05DB8HUo/rwceigd0h40uON5VqGkcwzgbqHLVUYOpb9GsXsJVxBeoqCbS7SO/L5wrUIwBcOVGHTBktLY5l7IrGpzWGu+X/vuhndJdDiDd0kM52zPtRRy+Z3Sw3tRQ+vpO3B+BG7DXT6etpuN6NLD0ZWL/ct1vOVFYCGbxmVOv3WnV3PYQaUactLxxxw2bV8r07S6UcbfQza4BrcE5VOTY2EzO1AcJjXp3pGKHYRCyHAZbabkDqSgQJ6QLOMG2EG1vnSt9wZAapFt+wVsjfO4Ajo5REKyn1VpLDdbXOE7WYKx7J8qh+n1zHFNI1rHIO1aJl5dMH7BpowuSu5QJ9fnC3t4XkrCHibvrYJSKPmsZBzkZDSqlVYf1sKodWpxaEztg8Nhd59/pSrRySsO1MDo7PgP1Jrcm2XjQRdT2DYHYvqKW/rQvccKdey6ezNt/z4regPsXfT9WNAveK/VEPvk+6223GyX77GfuNmCGbwpjcb6AAe33/pLVyS9xcZd2xm/ZDfIry2wLTwykLgCOcsF7R/3nL+4c+6y603FH+Bms755+26pJPzx59t//PVmc33z9h0N98RbNAP6m7/8kIr+5i8/LEV/+/omFf3t65tz6HX+dinqLx/fnkMz2+5ymLNwn3+6fb0A7+Zm8aR+/un25ubsfCLmcjZAzPMcYLY8YfE//3S7YN0Rc502enp+GW7SDNDzi3ATZ2G9dB4SmJ9wF3C+2fI01MWYiav29vXNd8vWjbCTVo6wz6/d4+P23eIu//vf7+Y6+/8CAAD//8G+yCQ=" } diff --git a/vendor/github.com/elastic/beats/auditbeat/include/list.go b/vendor/github.com/elastic/beats/auditbeat/include/list.go index 0dc097b4..2abe9762 100644 --- a/vendor/github.com/elastic/beats/auditbeat/include/list.go +++ b/vendor/github.com/elastic/beats/auditbeat/include/list.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 include import ( diff --git a/vendor/github.com/elastic/beats/auditbeat/magefile.go b/vendor/github.com/elastic/beats/auditbeat/magefile.go new file mode 100644 index 00000000..083d35e7 --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/magefile.go @@ -0,0 +1,251 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "fmt" + "regexp" + "time" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" + + "github.com/elastic/beats/dev-tools/mage" +) + +func init() { + mage.BeatDescription = "Audit the activities of users and processes on your system." +} + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// GolangCrossBuild build the Beat binary inside of the golang-builder. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) +} + +// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). +func BuildGoDaemon() error { + return mage.BuildGoDaemon() +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return mage.CrossBuild() +} + +// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. +func CrossBuildGoDaemon() error { + return mage.CrossBuildGoDaemon() +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Package packages the Beat for distribution. +// Use SNAPSHOT=true to build snapshots. +// Use PLATFORMS to control the target platforms. +func Package() { + start := time.Now() + defer func() { fmt.Println("package ran for", time.Since(start)) }() + + mage.UseElasticBeatPackaging() + customizePackaging() + + mg.Deps(Update) + mg.Deps(makeConfigTemplates, CrossBuild, CrossBuildGoDaemon) + mg.SerialDeps(mage.Package, TestPackages) +} + +// TestPackages tests the generated packages (i.e. file modes, owners, groups). +func TestPackages() error { + return mage.TestPackages() +} + +// Update updates the generated files (aka make update). +func Update() error { + return sh.Run("make", "update") +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML("module") +} + +// ----------------------------------------------------------------------------- +// Customizations specific to Auditbeat. +// - Config files are Go templates. + +const ( + configTemplateGlob = "module/*/_meta/config*.yml.tmpl" + shortConfigTemplate = "build/auditbeat.yml.tmpl" + referenceConfigTemplate = "build/auditbeat.reference.yml.tmpl" +) + +func makeConfigTemplates() error { + configFiles, err := mage.FindFiles(configTemplateGlob) + if err != nil { + return errors.Wrap(err, "failed to find config templates") + } + + var shortIn []string + shortIn = append(shortIn, "_meta/common.p1.yml") + shortIn = append(shortIn, configFiles...) + shortIn = append(shortIn, "_meta/common.p2.yml") + shortIn = append(shortIn, "../libbeat/_meta/config.yml") + if !mage.IsUpToDate(shortConfigTemplate, shortIn...) { + fmt.Println(">> Building", shortConfigTemplate) + mage.MustFileConcat(shortConfigTemplate, 0600, shortIn...) + mage.MustFindReplace(shortConfigTemplate, regexp.MustCompile("beatname"), "{{.BeatName}}") + mage.MustFindReplace(shortConfigTemplate, regexp.MustCompile("beat-index-prefix"), "{{.BeatIndexPrefix}}") + } + + var referenceIn []string + referenceIn = append(referenceIn, "_meta/common.reference.yml") + referenceIn = append(referenceIn, configFiles...) + referenceIn = append(referenceIn, "../libbeat/_meta/config.reference.yml") + if !mage.IsUpToDate(referenceConfigTemplate, referenceIn...) { + fmt.Println(">> Building", referenceConfigTemplate) + mage.MustFileConcat(referenceConfigTemplate, 0644, referenceIn...) + mage.MustFindReplace(referenceConfigTemplate, regexp.MustCompile("beatname"), "{{.BeatName}}") + mage.MustFindReplace(referenceConfigTemplate, regexp.MustCompile("beat-index-prefix"), "{{.BeatIndexPrefix}}") + } + + return nil +} + +// customizePackaging modifies the package specs to use templated config files +// instead of the defaults. +// +// Customizations specific to Auditbeat: +// - Include audit.rules.d directory in packages. +func customizePackaging() { + var ( + shortConfig = mage.PackageFile{ + Mode: 0600, + Source: "{{.PackageDir}}/auditbeat.yml", + Dep: generateShortConfig, + Config: true, + } + referenceConfig = mage.PackageFile{ + Mode: 0644, + Source: "{{.PackageDir}}/auditbeat.reference.yml", + Dep: generateReferenceConfig, + } + ) + + archiveRulesDir := "audit.rules.d" + linuxPkgRulesDir := "/etc/{{.BeatName}}/audit.rules.d" + rulesSrcDir := "module/auditd/_meta/audit.rules.d" + sampleRules := mage.PackageFile{ + Mode: 0644, + Source: rulesSrcDir, + Dep: func(spec mage.PackageSpec) error { + if spec.OS == "linux" { + params := map[string]interface{}{ + "ArchBits": archBits, + } + rulesFile := spec.MustExpand(rulesSrcDir+"/sample-rules-linux-{{call .ArchBits .GOARCH}}bit.conf", params) + if err := mage.Copy(rulesFile, spec.MustExpand("{{.PackageDir}}/audit.rules.d/sample-rules.conf.disabled")); err != nil { + return errors.Wrap(err, "failed to copy sample rules") + } + } + return nil + }, + } + + for _, args := range mage.Packages { + pkgType := args.Types[0] + switch pkgType { + case mage.TarGz, mage.Zip: + args.Spec.ReplaceFile("{{.BeatName}}.yml", shortConfig) + args.Spec.ReplaceFile("{{.BeatName}}.reference.yml", referenceConfig) + case mage.Deb, mage.RPM, mage.DMG: + args.Spec.ReplaceFile("/etc/{{.BeatName}}/{{.BeatName}}.yml", shortConfig) + args.Spec.ReplaceFile("/etc/{{.BeatName}}/{{.BeatName}}.reference.yml", referenceConfig) + default: + panic(errors.Errorf("unhandled package type: %v", pkgType)) + } + if args.OS == "linux" { + rulesDest := archiveRulesDir + if pkgType != mage.TarGz { + rulesDest = linuxPkgRulesDir + } + args.Spec.Files[rulesDest] = sampleRules + } + } +} + +func generateReferenceConfig(spec mage.PackageSpec) error { + params := map[string]interface{}{ + "Reference": true, + "ArchBits": archBits, + } + return spec.ExpandFile(referenceConfigTemplate, + "{{.PackageDir}}/auditbeat.reference.yml", params) +} + +func generateShortConfig(spec mage.PackageSpec) error { + params := map[string]interface{}{ + "Reference": false, + "ArchBits": archBits, + } + return spec.ExpandFile(shortConfigTemplate, + "{{.PackageDir}}/auditbeat.yml", params) +} + +// archBits returns the number of bit width of the GOARCH architecture value. +// This function is used by the auditd module configuration templates to +// generate architecture specific audit rules. +func archBits(goarch string) int { + switch goarch { + case "386", "arm": + return 32 + default: + return 64 + } +} + +// Configs generates the auditbeat.yml and auditbeat.reference.yml config files. +// Set DEV_OS and DEV_ARCH to change the target host for the generated configs. +// Defaults to linux/amd64. +func Configs() { + mg.Deps(makeConfigTemplates) + + params := map[string]interface{}{ + "GOOS": mage.EnvOr("DEV_OS", "linux"), + "GOARCH": mage.EnvOr("DEV_ARCH", "amd64"), + "ArchBits": archBits, + "Reference": false, + } + fmt.Printf(">> Building auditbeat.yml for %v/%v\n", params["GOOS"], params["GOARCH"]) + mage.MustExpandFile(shortConfigTemplate, "auditbeat.yml", params) + + params["Reference"] = true + fmt.Printf(">> Building auditbeat.reference.yml for %v/%v\n", params["GOOS"], params["GOARCH"]) + mage.MustExpandFile(referenceConfigTemplate, "auditbeat.reference.yml", params) +} diff --git a/vendor/github.com/elastic/beats/auditbeat/main.go b/vendor/github.com/elastic/beats/auditbeat/main.go index 505e611a..3403e3ec 100644 --- a/vendor/github.com/elastic/beats/auditbeat/main.go +++ b/vendor/github.com/elastic/beats/auditbeat/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( @@ -8,6 +25,9 @@ import ( // Register modules. _ "github.com/elastic/beats/auditbeat/module/auditd" _ "github.com/elastic/beats/auditbeat/module/file_integrity" + + // Register includes. + _ "github.com/elastic/beats/auditbeat/include" ) func main() { diff --git a/vendor/github.com/elastic/beats/auditbeat/main_test.go b/vendor/github.com/elastic/beats/auditbeat/main_test.go deleted file mode 100644 index b2b9d1c1..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/main_test.go +++ /dev/null @@ -1,26 +0,0 @@ -package main - -// This file is mandatory as otherwise the auditbeat.test binary is not generated correctly. - -import ( - "flag" - "testing" - - "github.com/elastic/beats/auditbeat/cmd" -) - -var systemTest *bool - -func init() { - systemTest = flag.Bool("systemTest", false, "Set to true when running system tests") - - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("systemTest")) - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("test.coverprofile")) -} - -// Test started when the test binary is started. Only calls main. -func TestSystem(t *testing.T) { - if *systemTest { - main() - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/make.bat b/vendor/github.com/elastic/beats/auditbeat/make.bat new file mode 100644 index 00000000..81de1ba9 --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/make.bat @@ -0,0 +1,11 @@ +@echo off + +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. +REM +REM After running this once you may invoke mage.exe directly. + +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install github.com/elastic/beats/vendor/github.com/magefile/mage + +mage %* diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/audit.rules.d/sample-rules-linux-32bit.conf b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/audit.rules.d/sample-rules-linux-32bit.conf new file mode 100644 index 00000000..66c0fbea --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/audit.rules.d/sample-rules-linux-32bit.conf @@ -0,0 +1,14 @@ +## Executions. +-a always,exit -F arch=b32 -S execve,execveat -k exec + +## External access (warning: these can be expensive to audit). +-a always,exit -F arch=b32 -S accept,bind,connect -F key=external-access + +## Identity changes. +-w /etc/group -p wa -k identity +-w /etc/passwd -p wa -k identity +-w /etc/gshadow -p wa -k identity + +## Unauthorized access attempts. +-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -k access +-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -k access diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/audit.rules.d/sample-rules-linux-64bit.conf b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/audit.rules.d/sample-rules-linux-64bit.conf new file mode 100644 index 00000000..d04cc3d8 --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/audit.rules.d/sample-rules-linux-64bit.conf @@ -0,0 +1,20 @@ +## If you are on a 64 bit platform, everything should be running +## in 64 bit mode. This rule will detect any use of the 32 bit syscalls +## because this might be a sign of someone exploiting a hole in the 32 +## bit API. +-a always,exit -F arch=b32 -S all -F key=32bit-abi + +## Executions. +-a always,exit -F arch=b64 -S execve,execveat -k exec + +## External access (warning: these can be expensive to audit). +-a always,exit -F arch=b64 -S accept,bind,connect -F key=external-access + +## Identity changes. +-w /etc/group -p wa -k identity +-w /etc/passwd -p wa -k identity +-w /etc/gshadow -p wa -k identity + +## Unauthorized access attempts. +-a always,exit -F arch=b64 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -k access +-a always,exit -F arch=b64 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -k access diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/config.yml.tmpl b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/config.yml.tmpl new file mode 100644 index 00000000..aff7e704 --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/config.yml.tmpl @@ -0,0 +1,44 @@ +{{ if eq .GOOS "linux" -}} +{{ if .Reference -}} +# The auditd module collects events from the audit framework in the Linux +# kernel. You need to specify audit rules for the events that you want to audit. +{{ end -}} +- module: auditd + {{ if .Reference -}} + resolve_ids: true + failure_mode: silent + backlog_limit: 8196 + rate_limit: 0 + include_raw_message: false + include_warnings: false + {{ end -}} + # Load audit rules from separate files. Same format as audit.rules(7). + audit_rule_files: [ '${path.config}/audit.rules.d/*.conf' ] + audit_rules: | + ## Define audit rules here. + ## Create file watches (-w) or syscall audits (-a or -A). Uncomment these + ## examples or add your own rules. + + {{ if eq .GOARCH "amd64" -}} + ## If you are on a 64 bit platform, everything should be running + ## in 64 bit mode. This rule will detect any use of the 32 bit syscalls + ## because this might be a sign of someone exploiting a hole in the 32 + ## bit API. + #-a always,exit -F arch=b32 -S all -F key=32bit-abi + + {{ end -}} + ## Executions. + #-a always,exit -F arch=b{{call .ArchBits .GOARCH}} -S execve,execveat -k exec + + ## External access (warning: these can be expensive to audit). + #-a always,exit -F arch=b{{call .ArchBits .GOARCH}} -S accept,bind,connect -F key=external-access + + ## Identity changes. + #-w /etc/group -p wa -k identity + #-w /etc/passwd -p wa -k identity + #-w /etc/gshadow -p wa -k identity + + ## Unauthorized access attempts. + #-a always,exit -F arch=b{{call .ArchBits .GOARCH}} -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -k access + #-a always,exit -F arch=b{{call .ArchBits .GOARCH}} -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -k access +{{ end -}} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/config.yml.tpl b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/config.yml.tpl deleted file mode 100644 index 30cb58df..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/config.yml.tpl +++ /dev/null @@ -1,42 +0,0 @@ -{{ if eq .goos "linux" -}} -{{ if .reference -}} -# The auditd module collects events from the audit framework in the Linux -# kernel. You need to specify audit rules for the events that you want to audit. -{{ end -}} -- module: auditd - {{ if .reference -}} - resolve_ids: true - failure_mode: silent - backlog_limit: 8196 - rate_limit: 0 - include_raw_message: false - include_warnings: false - {{ end -}} - audit_rules: | - ## Define audit rules here. - ## Create file watches (-w) or syscall audits (-a or -A). Uncomment these - ## examples or add your own rules. - - {{ if eq .goarch "amd64" -}} - ## If you are on a 64 bit platform, everything should be running - ## in 64 bit mode. This rule will detect any use of the 32 bit syscalls - ## because this might be a sign of someone exploiting a hole in the 32 - ## bit API. - #-a always,exit -F arch=b32 -S all -F key=32bit-abi - - {{ end -}} - ## Executions. - #-a always,exit -F arch=b{{.arch_bits}} -S execve,execveat -k exec - - ## External access (warning: these can be expensive to audit). - #-a always,exit -F arch=b{{.arch_bits}} -S accept,bind,connect -F key=external-access - - ## Identity changes. - #-w /etc/group -p wa -k identity - #-w /etc/passwd -p wa -k identity - #-w /etc/gshadow -p wa -k identity - - ## Unauthorized access attempts. - #-a always,exit -F arch=b{{.arch_bits}} -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -k access - #-a always,exit -F arch=b{{.arch_bits}} -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -k access -{{ end -}} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/docs.asciidoc index a91697ce..17127e0c 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/_meta/docs.asciidoc @@ -62,6 +62,55 @@ from listening to audit messages: systemctl mask systemd-journald-audit.socket ----- +[float] +=== Inspect the kernel audit system status + +{beatname_uc} provides useful commands to query the state of the audit system +in the Linux kernel. + +* See the list of installed audit rules: ++ +[source,shell] +----- +auditbeat show auditd-rules +----- ++ +Prints the list of loaded rules, similar to `auditctl -l`: ++ +[source,shell] +----- +-a never,exit -S all -F pid=26253 +-a always,exit -F arch=b32 -S all -F key=32bit-abi +-a always,exit -F arch=b64 -S execve,execveat -F key=exec +-a always,exit -F arch=b64 -S connect,accept,bind -F key=external-access +-w /etc/group -p wa -k identity +-w /etc/passwd -p wa -k identity +-w /etc/gshadow -p wa -k identity +-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EACCES -F key=access +-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EPERM -F key=access +----- + +* See the status of the audit system: ++ +[source,shell] +----- +auditbeat show auditd-status +----- ++ +Prints the status of the kernel audit system, similar to `auditctl -s`: ++ +[source,shell] +----- +enabled 1 +failure 0 +pid 0 +rate_limit 0 +backlog_limit 8192 +lost 14407 +backlog 0 +backlog_wait_time 0 +features 0xf +----- [float] === Configuration options @@ -74,10 +123,11 @@ following example shows all configuration options with their default values. - module: auditd resolve_ids: true failure_mode: silent - backlog_limit: 8196 + backlog_limit: 8192 rate_limit: 0 include_raw_message: false include_warnings: false + backpressure_strategy: auto ---- *`socket_type`*:: This optional setting controls the type of @@ -136,6 +186,33 @@ embedded in the string using `#` as a prefix. The format for rules is the same used by the Linux `auditctl` utility. {beatname_uc} supports adding file watches (`-w`) and syscall rules (`-a` or `-A`). +*`audit_rule_files`*:: A list of files to load audit rules from. This files are +loaded after the rules declared in `audit_rules` are loaded. Wildcards are +supported and will expand in lexicographical order. The format is the same as +that of the `audit_rules` field. + +*`backpressure_strategy`*:: Specifies the strategy that {beatname_uc} uses to +prevent backpressure from propagating to the kernel and impacting audited +processes. ++ +-- +The possible values are: + +- `auto` (default): {beatname_uc} uses the `kernel` strategy, if supported, or +falls back to the `userspace` strategy. +- `kernel`: {beatname_uc} sets the `backlog_wait_time` in the kernel's +audit framework to 0. This causes events to be discarded in the kernel if +the audit backlog queue fills to capacity. Requires a 3.14 kernel or +newer. +- `userspace`: {beatname_uc} drops events when there is backpressure +from the publishing pipeline. If no `rate_limit` is set, {beatname_uc} sets a rate +limit of 5000. Users should test their setup and adjust the `rate_limit` +option accordingly. +- `both`: {beatname_uc} uses the `kernel` and `userspace` strategies at the same +time. +- `none`: No backpressure mitigation measures are enabled. +-- + [float] === Audit rules diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_linux.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_linux.go index 034d83c0..c7d68bd3 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_linux.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_linux.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 auditd import ( @@ -130,7 +147,7 @@ func (ms *MetricSet) Run(reporter mb.PushReporterV2) { return } - out, statusC, err := ms.receiveEvents(reporter.Done()) + out, err := ms.receiveEvents(reporter.Done()) if err != nil { reporter.Error(err) ms.log.Errorw("Failure receiving audit events", "error", err) @@ -138,7 +155,13 @@ func (ms *MetricSet) Run(reporter mb.PushReporterV2) { } if ms.kernelLost.enabled { + client, err := libaudit.NewAuditClient(nil) + if err != nil { + reporter.Error(err) + ms.log.Errorw("Failure creating audit monitoring client", "error", err) + } go func() { + defer client.Close() timer := time.NewTicker(lostEventsUpdateInterval) defer timer.Stop() for { @@ -146,11 +169,11 @@ func (ms *MetricSet) Run(reporter mb.PushReporterV2) { case <-reporter.Done(): return case <-timer.C: - if _, err := ms.client.GetStatusAsync(false); err != nil { - ms.log.Error("get async status request failed:", err) + if status, err := client.GetStatus(); err == nil { + ms.updateKernelLostMetric(status.Lost) + } else { + ms.log.Error("get status request failed:", err) } - case status := <-statusC: - ms.updateKernelLostMetric(status.Lost) } } }() @@ -185,10 +208,7 @@ func (ms *MetricSet) Run(reporter mb.PushReporterV2) { } func (ms *MetricSet) addRules(reporter mb.PushReporterV2) error { - rules, err := ms.config.rules() - if err != nil { - return errors.Wrap(err, "failed to add rules") - } + rules := ms.config.rules() if len(rules) == 0 { ms.log.Info("No audit_rules were specified.") @@ -346,13 +366,12 @@ func (ms *MetricSet) updateKernelLostMetric(lost uint32) { ms.kernelLost.counter = lost } -func (ms *MetricSet) receiveEvents(done <-chan struct{}) (<-chan []*auparse.AuditMessage, <-chan *libaudit.AuditStatus, error) { +func (ms *MetricSet) receiveEvents(done <-chan struct{}) (<-chan []*auparse.AuditMessage, error) { if err := ms.initClient(); err != nil { - return nil, nil, err + return nil, err } out := make(chan []*auparse.AuditMessage, ms.config.StreamBufferQueueSize) - statusC := make(chan *libaudit.AuditStatus, 8) var st libaudit.Stream = &stream{done, out} if ms.backpressureStrategy&bsUserSpace != 0 { @@ -365,14 +384,13 @@ func (ms *MetricSet) receiveEvents(done <-chan struct{}) (<-chan []*auparse.Audi } reassembler, err := libaudit.NewReassembler(int(ms.config.ReassemblerMaxInFlight), ms.config.ReassemblerTimeout, st) if err != nil { - return nil, nil, errors.Wrap(err, "failed to create Reassembler") + return nil, errors.Wrap(err, "failed to create Reassembler") } go maintain(done, reassembler) go func() { defer ms.log.Debug("receiveEvents goroutine exited") defer close(out) - defer close(statusC) defer reassembler.Close() for { @@ -384,19 +402,6 @@ func (ms *MetricSet) receiveEvents(done <-chan struct{}) (<-chan []*auparse.Audi } continue } - if raw.Type == auparse.AUDIT_GET { - status := &libaudit.AuditStatus{} - if err := status.FromWireFormat([]byte(raw.Data)); err == nil { - select { - case statusC <- status: - default: - ms.log.Debugf("Dropped audit status reply (channel busy)") - } - } else { - ms.log.Error("Decoding status message:", err) - } - continue - } if filterRecordType(raw.Type) { continue @@ -412,7 +417,7 @@ func (ms *MetricSet) receiveEvents(done <-chan struct{}) (<-chan []*auparse.Audi } }() - return out, statusC, nil + return out, nil } // maintain periodically evicts timed-out events from the Reassembler. This @@ -776,7 +781,7 @@ func determineSocketType(c *Config, log *logp.Logger) (string, error) { } return c.SocketType, nil } - rules, _ := c.rules() + rules := c.rules() isLocked := status.Enabled == auditLocked hasMulticast := hasMulticastSupport() diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_linux_test.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_linux_test.go deleted file mode 100644 index f4f173b0..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_linux_test.go +++ /dev/null @@ -1,228 +0,0 @@ -package auditd - -import ( - "encoding/json" - "flag" - "fmt" - "io/ioutil" - "os" - "os/exec" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/prometheus/procfs" - - "github.com/elastic/beats/auditbeat/core" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/metricbeat/mb" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/go-libaudit" - "github.com/elastic/go-libaudit/auparse" -) - -// Specify the -audit flag when running these tests to interact with the real -// kernel instead of mocks. If running in Docker this requires being in the -// host PID namespace (--pid=host) and having CAP_AUDIT_CONTROL and -// CAP_AUDIT_WRITE (so use --privileged). -var audit = flag.Bool("audit", false, "interact with the real audit framework") - -var ( - userLoginMsg = `type=USER_LOGIN msg=audit(1492896301.818:19955): pid=12635 uid=0 auid=4294967295 ses=4294967295 msg='op=login acct=28696E76616C6964207573657229 exe="/usr/sbin/sshd" hostname=? addr=179.38.151.221 terminal=sshd res=failed'` - - execveMsgs = []string{ - `type=SYSCALL msg=audit(1492752522.985:8972): arch=c000003e syscall=59 success=yes exit=0 a0=10812c8 a1=1070208 a2=1152008 a3=59a items=2 ppid=10027 pid=10043 auid=1001 uid=1001 gid=1002 euid=1001 suid=1001 fsuid=1001 egid=1002 sgid=1002 fsgid=1002 tty=pts0 ses=11 comm="uname" exe="/bin/uname" key="key=user_commands"`, - `type=EXECVE msg=audit(1492752522.985:8972): argc=2 a0="uname" a1="-a"`, - `type=CWD msg=audit(1492752522.985:8972): cwd="/home/andrew_kroh"`, - `type=PATH msg=audit(1492752522.985:8972): item=0 name="/bin/uname" inode=155 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL`, - `type=PATH msg=audit(1492752522.985:8972): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=1923 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL`, - `type=PROCTITLE msg=audit(1492752522.985:8972): proctitle=756E616D65002D61`, - `type=EOE msg=audit(1492752522.985:8972):`, - } - - acceptMsgs = []string{ - `type=SYSCALL msg=audit(1492752520.441:8832): arch=c000003e syscall=43 success=yes exit=5 a0=3 a1=7ffd0dc80040 a2=7ffd0dc7ffd0 a3=0 items=0 ppid=1 pid=1663 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="sshd" exe="/usr/sbin/sshd" key="key=net"`, - `type=SOCKADDR msg=audit(1492752520.441:8832): saddr=0200E31C4853E6640000000000000000`, - `type=PROCTITLE msg=audit(1492752520.441:8832): proctitle="(sshd)"`, - `type=EOE msg=audit(1492752520.441:8832):`, - } -) - -func TestData(t *testing.T) { - logp.TestingSetup() - - // Create a mock netlink client that provides the expected responses. - mock := NewMock(). - // Get Status response for initClient - returnACK().returnStatus(). - // Send expected ACKs for initialization - returnACK().returnACK().returnACK().returnACK().returnACK(). - // Send a single audit message from the kernel. - returnMessage(userLoginMsg) - - // Replace the default AuditClient with a mock. - ms := mbtest.NewPushMetricSetV2(t, getConfig()) - auditMetricSet := ms.(*MetricSet) - auditMetricSet.client.Close() - auditMetricSet.client = &libaudit.AuditClient{Netlink: mock} - - events := mbtest.RunPushMetricSetV2(10*time.Second, 1, ms) - if len(events) == 0 { - t.Fatal("received no events") - } - assertNoErrors(t, events) - - beatEvent := mbtest.StandardizeEvent(ms, events[0], core.AddDatasetToEvent) - mbtest.WriteEventToDataJSON(t, beatEvent, "") -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "auditd", - "failure_mode": "log", - "socket_type": "unicast", - } -} - -func TestUnicastClient(t *testing.T) { - if !*audit { - t.Skip("-audit was not specified") - } - - logp.TestingSetup() - FailIfAuditdIsRunning(t) - - c := map[string]interface{}{ - "module": "auditd", - "socket_type": "unicast", - "audit_rules": fmt.Sprintf(` - -a always,exit -F arch=b64 -F ppid=%d -S execve -k exec - `, os.Getpid()), - } - - // Any commands executed by this process will generate events due to the - // PPID filter we applied to the rule. - time.AfterFunc(time.Second, func() { exec.Command("cat", "/proc/self/status").Output() }) - - ms := mbtest.NewPushMetricSetV2(t, c) - events := mbtest.RunPushMetricSetV2(5*time.Second, 0, ms) - assertNoErrors(t, events) - assertHasBinCatExecve(t, events) -} - -func TestMulticastClient(t *testing.T) { - if !*audit { - t.Skip("-audit was not specified") - } - - if !hasMulticastSupport() { - t.Skip("no multicast support") - } - - logp.TestingSetup() - FailIfAuditdIsRunning(t) - - c := map[string]interface{}{ - "module": "auditd", - "socket_type": "multicast", - "audit_rules": fmt.Sprintf(` - -a always,exit -F arch=b64 -F ppid=%d -S execve -k exec - `, os.Getpid()), - } - - // Any commands executed by this process will generate events due to the - // PPID filter we applied to the rule. - time.AfterFunc(time.Second, func() { exec.Command("cat", "/proc/self/status").Output() }) - - ms := mbtest.NewPushMetricSetV2(t, c) - events := mbtest.RunPushMetricSetV2(5*time.Second, 0, ms) - assertNoErrors(t, events) - assertHasBinCatExecve(t, events) -} - -func TestKernelVersion(t *testing.T) { - major, minor, full, err := kernelVersion() - if err != nil { - t.Fatal(err) - } - t.Logf("major=%v, minor=%v, full=%v", major, minor, full) -} - -func FailIfAuditdIsRunning(t testing.TB) { - t.Helper() - - procs, err := procfs.AllProcs() - if err != nil { - t.Fatal(err) - } - - for _, proc := range procs { - comm, err := proc.Comm() - if err != nil { - t.Error(err) - continue - } - - if comm == "auditd" { - t.Fatalf("auditd is running (pid=%d). This test cannot run while "+ - "auditd is running.", proc.PID) - } - } -} - -func TestBuildMetricbeatEvent(t *testing.T) { - if f := flag.Lookup("data"); f != nil && f.Value.String() == "false" { - t.Skip("skip data generation tests") - } - buildSampleEvent(t, acceptMsgs, "_meta/accept.json") - buildSampleEvent(t, execveMsgs, "_meta/execve.json") -} - -func buildSampleEvent(t testing.TB, lines []string, filename string) { - var msgs []*auparse.AuditMessage - for _, txt := range lines { - m, err := auparse.ParseLogLine(txt) - if err != nil { - t.Fatal(err) - } - msgs = append(msgs, m) - } - - e := buildMetricbeatEvent(msgs, defaultConfig) - beatEvent := e.BeatEvent(moduleName, metricsetName, core.AddDatasetToEvent) - output, err := json.MarshalIndent(&beatEvent.Fields, "", " ") - if err != nil { - t.Fatal(err) - } - - if err := ioutil.WriteFile(filename, output, 0644); err != nil { - t.Fatal(err) - } -} - -func assertHasBinCatExecve(t *testing.T, events []mb.Event) { - t.Helper() - - for _, e := range events { - v, err := e.RootFields.GetValue("process.exe") - if err == nil { - if exe, ok := v.(string); ok && exe == "/bin/cat" { - return - } - } - } - assert.Fail(t, "expected an execve event for /bin/cat") -} - -func assertNoErrors(t *testing.T, events []mb.Event) { - t.Helper() - - for _, e := range events { - t.Log(e) - - if e.Error != nil { - t.Errorf("received error: %+v", e.Error) - } - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_unsupported.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_unsupported.go index 82636981..23d34b80 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_unsupported.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/audit_unsupported.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !linux package auditd diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/config.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/config.go index bb150a5f..3048e80c 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/config.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/config.go @@ -1,8 +1,30 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 auditd import ( "bufio" "bytes" + "fmt" + "io" + "os" + "path/filepath" + "sort" "strings" "time" @@ -14,20 +36,22 @@ import ( ) const ( - moduleName = "auditd" - metricsetName = "auditd" + moduleName = "auditd" + metricsetName = "auditd" + recursiveGlobDepth = 8 ) // Config defines the kernel metricset's possible configuration options. type Config struct { - ResolveIDs bool `config:"resolve_ids"` // Resolve UID/GIDs to names. - FailureMode string `config:"failure_mode"` // Failure mode for the kernel (silent, log, panic). - BacklogLimit uint32 `config:"backlog_limit"` // Max number of message to buffer in the auditd. - RateLimit uint32 `config:"rate_limit"` // Rate limit in messages/sec of messages from auditd. - RawMessage bool `config:"include_raw_message"` // Include the list of raw audit messages in the event. - Warnings bool `config:"include_warnings"` // Include warnings in the event (for dev/debug purposes only). - RulesBlob string `config:"audit_rules"` // Audit rules. One rule per line. - SocketType string `config:"socket_type"` // Socket type to use with the kernel (unicast or multicast). + ResolveIDs bool `config:"resolve_ids"` // Resolve UID/GIDs to names. + FailureMode string `config:"failure_mode"` // Failure mode for the kernel (silent, log, panic). + BacklogLimit uint32 `config:"backlog_limit"` // Max number of message to buffer in the auditd. + RateLimit uint32 `config:"rate_limit"` // Rate limit in messages/sec of messages from auditd. + RawMessage bool `config:"include_raw_message"` // Include the list of raw audit messages in the event. + Warnings bool `config:"include_warnings"` // Include warnings in the event (for dev/debug purposes only). + RulesBlob string `config:"audit_rules"` // Audit rules. One rule per line. + RuleFiles []string `config:"audit_rule_files"` // List of rule files. + SocketType string `config:"socket_type"` // Socket type to use with the kernel (unicast or multicast). // Tuning options (advanced, use with care) ReassemblerMaxInFlight uint32 `config:"reassembler.max_in_flight"` @@ -39,6 +63,8 @@ type Config struct { // One of "user-space", "kernel", "both", "none", "auto" (default) BackpressureStrategy string `config:"backpressure_strategy"` StreamBufferConsumers int `config:"stream_buffer_consumers"` + + auditRules []auditRule } type auditRule struct { @@ -46,10 +72,30 @@ type auditRule struct { data []byte } +type ruleWithSource struct { + rule auditRule + source string +} + +type ruleSet map[string]ruleWithSource + +var defaultConfig = Config{ + ResolveIDs: true, + FailureMode: "silent", + BacklogLimit: 8192, + RateLimit: 0, + RawMessage: false, + Warnings: false, + ReassemblerMaxInFlight: 50, + ReassemblerTimeout: 2 * time.Second, + StreamBufferQueueSize: 8192, + StreamBufferConsumers: 0, +} + // Validate validates the rules specified in the config. func (c *Config) Validate() error { var errs multierror.Errors - _, err := c.rules() + err := c.loadRules() if err != nil { errs = append(errs, err) } @@ -70,12 +116,67 @@ func (c *Config) Validate() error { } // Rules returns a list of rules specified in the config. -func (c Config) rules() ([]auditRule, error) { +func (c Config) rules() []auditRule { + return c.auditRules +} + +func (c *Config) loadRules() error { + var paths []string + for _, pattern := range c.RuleFiles { + absPattern, err := filepath.Abs(pattern) + if err != nil { + return fmt.Errorf("unable to get the absolute path for %s: %v", pattern, err) + } + files, err := filepath.Glob(absPattern) + if err != nil { + return err + } + sort.Strings(files) + paths = append(paths, files...) + } + + knownRules := ruleSet{} + + rules, err := readRules(bytes.NewBufferString(c.RulesBlob), "(audit_rules at auditbeat.yml)", knownRules) + if err != nil { + return err + } + c.auditRules = append(c.auditRules, rules...) + + for _, filename := range paths { + fHandle, err := os.Open(filename) + if err != nil { + return fmt.Errorf("unable to open rule file '%s': %v", filename, err) + } + rules, err = readRules(fHandle, filename, knownRules) + if err != nil { + return err + } + c.auditRules = append(c.auditRules, rules...) + } + + return nil +} + +func (c Config) failureMode() (uint32, error) { + switch strings.ToLower(c.FailureMode) { + case "silent": + return 0, nil + case "log": + return 1, nil + case "panic": + return 2, nil + default: + return 0, errors.Errorf("invalid failure_mode '%v' (use silent, log, or panic)", c.FailureMode) + } +} + +func readRules(reader io.Reader, source string, knownRules ruleSet) (rules []auditRule, err error) { var errs multierror.Errors - var auditRules []auditRule - ruleSet := map[string]auditRule{} - s := bufio.NewScanner(bytes.NewBufferString(c.RulesBlob)) - for s.Scan() { + + s := bufio.NewScanner(reader) + for lineNum := 1; s.Scan(); lineNum++ { + location := fmt.Sprintf("%s:%d", source, lineNum) line := strings.TrimSpace(s.Text()) if len(line) == 0 || line[0] == '#' { continue @@ -84,57 +185,31 @@ func (c Config) rules() ([]auditRule, error) { // Parse the CLI flags into an intermediate rule specification. r, err := flags.Parse(line) if err != nil { - errs = append(errs, errors.Wrapf(err, "failed on rule '%v'", line)) + errs = append(errs, errors.Wrapf(err, "at %s: failed to parse rule '%v'", location, line)) continue } // Convert rule specification to a binary rule representation. data, err := rule.Build(r) if err != nil { - errs = append(errs, errors.Wrapf(err, "failed on rule '%v'", line)) + errs = append(errs, errors.Wrapf(err, "at %s: failed to interpret rule '%v'", location, line)) continue } // Detect duplicates based on the normalized binary rule representation. - existingRule, found := ruleSet[string(data)] + existing, found := knownRules[string(data)] if found { - errs = append(errs, errors.Errorf("failed on rule '%v' because its a duplicate of '%v'", line, existingRule.flags)) + errs = append(errs, errors.Errorf("at %s: rule '%v' is a duplicate of '%v' at %s", location, line, existing.rule.flags, existing.source)) continue } - auditRule := auditRule{flags: line, data: []byte(data)} - ruleSet[string(data)] = auditRule + rule := auditRule{flags: line, data: []byte(data)} + knownRules[string(data)] = ruleWithSource{rule, location} - auditRules = append(auditRules, auditRule) + rules = append(rules, rule) } if len(errs) > 0 { - return nil, errors.Wrap(errs.Err(), "invalid audit_rules") + return nil, errors.Wrap(errs.Err(), "failed loading rules") } - return auditRules, nil -} - -func (c Config) failureMode() (uint32, error) { - switch strings.ToLower(c.FailureMode) { - case "silent": - return 0, nil - case "log": - return 1, nil - case "panic": - return 2, nil - default: - return 0, errors.Errorf("invalid failure_mode '%v' (use silent, log, or panic)", c.FailureMode) - } -} - -var defaultConfig = Config{ - ResolveIDs: true, - FailureMode: "silent", - BacklogLimit: 8192, - RateLimit: 0, - RawMessage: false, - Warnings: false, - ReassemblerMaxInFlight: 50, - ReassemblerTimeout: 2 * time.Second, - StreamBufferQueueSize: 8192, - StreamBufferConsumers: 0, + return rules, nil } diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/config_linux_test.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/config_linux_test.go deleted file mode 100644 index 4731a17d..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/config_linux_test.go +++ /dev/null @@ -1,93 +0,0 @@ -package auditd - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestConfigValidate(t *testing.T) { - data := ` -audit_rules: | - # Comments and empty lines are ignored. - -w /etc/passwd -p wa -k auth - - -a always,exit -S execve -k exec` - - config, err := parseConfig(t, data) - if err != nil { - t.Fatal(err) - } - rules, err := config.rules() - if err != nil { - t.Fatal() - } - assert.EqualValues(t, []string{ - "-w /etc/passwd -p wa -k auth", - "-a always,exit -S execve -k exec", - }, commands(rules)) -} - -func TestConfigValidateWithError(t *testing.T) { - data := ` -audit_rules: | - -x bad -F flag - -a always,exit -w /etc/passwd - -a always,exit -S fake -k exec` - - _, err := parseConfig(t, data) - if err == nil { - t.Fatal("expected error") - } - t.Log(err) -} - -func TestConfigValidateWithDuplicates(t *testing.T) { - data := ` -audit_rules: | - -w /etc/passwd -p rwxa -k auth - -w /etc/passwd -k auth` - - _, err := parseConfig(t, data) - if err == nil { - t.Fatal("expected error") - } - t.Log(err) -} - -func TestConfigValidateFailureMode(t *testing.T) { - config := defaultConfig - config.FailureMode = "boom" - err := config.Validate() - assert.Error(t, err) - t.Log(err) -} - -func TestConfigValidateConnectionType(t *testing.T) { - config := defaultConfig - config.SocketType = "Satellite" - err := config.Validate() - assert.Error(t, err) - t.Log(err) -} - -func parseConfig(t testing.TB, yaml string) (Config, error) { - c, err := common.NewConfigWithYAML([]byte(yaml), "") - if err != nil { - t.Fatal(err) - } - - config := defaultConfig - err = c.Unpack(&config) - return config, err -} - -func commands(rules []auditRule) []string { - var cmds []string - for _, r := range rules { - cmds = append(cmds, r.flags) - } - return cmds -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/doc.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/doc.go index b99d21dc..e991c40e 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/doc.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 auditd is a metricset that subscribes to the Linux Audit Framework // to receive audit events from the the kernel. package auditd diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/mock_linux_test.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/mock_linux_test.go deleted file mode 100644 index e5708e88..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/auditd/mock_linux_test.go +++ /dev/null @@ -1,91 +0,0 @@ -package auditd - -import ( - "bytes" - "encoding/binary" - "errors" - "syscall" - - "github.com/elastic/go-libaudit" - "github.com/elastic/go-libaudit/auparse" -) - -type MockNetlinkSendReceiver struct { - messages []syscall.NetlinkMessage - done chan struct{} -} - -func NewMock() *MockNetlinkSendReceiver { - return &MockNetlinkSendReceiver{done: make(chan struct{})} -} - -func (n *MockNetlinkSendReceiver) returnACK() *MockNetlinkSendReceiver { - n.messages = append(n.messages, syscall.NetlinkMessage{ - Header: syscall.NlMsghdr{ - Type: syscall.NLMSG_ERROR, - Flags: syscall.NLM_F_ACK, - }, - Data: make([]byte, 4), // Return code 0 (success). - }) - return n -} - -func (n *MockNetlinkSendReceiver) returnDone() *MockNetlinkSendReceiver { - n.messages = append(n.messages, syscall.NetlinkMessage{ - Header: syscall.NlMsghdr{ - Type: syscall.NLMSG_DONE, - Flags: syscall.NLM_F_ACK, - }, - }) - return n -} - -func (n *MockNetlinkSendReceiver) returnStatus() *MockNetlinkSendReceiver { - status := libaudit.AuditStatus{} - buf := new(bytes.Buffer) - if err := binary.Write(buf, binary.LittleEndian, status); err != nil { - panic(err) - } - - n.messages = append(n.messages, syscall.NetlinkMessage{ - Header: syscall.NlMsghdr{Type: libaudit.AuditGet}, - Data: buf.Bytes(), - }) - return n -} - -func (n *MockNetlinkSendReceiver) returnMessage(msg ...string) *MockNetlinkSendReceiver { - for _, m := range msg { - auditMsg, err := auparse.ParseLogLine(m) - if err != nil { - panic(err) - } - - n.messages = append(n.messages, syscall.NetlinkMessage{ - Header: syscall.NlMsghdr{Type: uint16(auditMsg.RecordType)}, - Data: []byte(auditMsg.RawData), - }) - } - return n -} - -func (n *MockNetlinkSendReceiver) Close() error { - close(n.done) - return nil -} - -func (n *MockNetlinkSendReceiver) Send(msg syscall.NetlinkMessage) (uint32, error) { - return 0, nil -} - -func (n *MockNetlinkSendReceiver) Receive(nonBlocking bool, p libaudit.NetlinkParser) ([]syscall.NetlinkMessage, error) { - if len(n.messages) > 0 { - msg := n.messages[0] - n.messages = n.messages[1:] - return []syscall.NetlinkMessage{msg}, nil - } - - // Block until closed. - <-n.done - return nil, errors.New("socket closed") -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/auditd/show_linux.go b/vendor/github.com/elastic/beats/auditbeat/module/auditd/show_linux.go new file mode 100644 index 00000000..f7ce49fd --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/module/auditd/show_linux.go @@ -0,0 +1,139 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 auditd + +import ( + "fmt" + "os" + + "github.com/pkg/errors" + "github.com/spf13/cobra" + + "github.com/elastic/go-libaudit" + "github.com/elastic/go-libaudit/rule" + + "github.com/elastic/beats/auditbeat/cmd" +) + +var ( + dontResolveIDs bool + noOutputIfEmpty bool + singleLineStatus bool +) + +func init() { + showRules := cobra.Command{ + Use: "auditd-rules", + Short: "Show currently installed auditd rules", + Aliases: []string{"audit-rules", "audit_rules", "rules", "auditdrules", "auditrules"}, + Run: func(cmd *cobra.Command, args []string) { + if err := showAuditdRules(); err != nil { + fmt.Fprintf(os.Stderr, "Failed to show auditd rules: %v\n", err) + os.Exit(1) + } + }, + } + showRules.Flags().BoolVarP(&dontResolveIDs, "no-resolve", "n", false, "Don't resolve numeric IDs (UIDs, GIDs and file_type fields)") + showRules.Flags().BoolVarP(&noOutputIfEmpty, "no-output", "z", false, "Don't generate output when the rule list is empty") + + showStatus := cobra.Command{ + Use: "auditd-status", + Short: "Show kernel auditd status", + Aliases: []string{"audit-status", "audit_status", "status", "auditdstatus", "auditrules"}, + Run: func(cmd *cobra.Command, args []string) { + if err := showAuditdStatus(); err != nil { + fmt.Fprintf(os.Stderr, "Failed to show auditd rules: %v\n", err) + os.Exit(1) + } + }, + } + showStatus.Flags().BoolVarP(&singleLineStatus, "single-line", "s", false, "Output status as a single line") + cmd.ShowCmd.AddCommand(&showRules, &showStatus) +} + +func showAuditdRules() error { + client, err := libaudit.NewAuditClient(nil) + if err != nil { + return errors.Wrap(err, "failed to create audit client") + } + defer client.Close() + + rules, err := client.GetRules() + if err != nil { + return errors.Wrap(err, "failed to list existing rules") + } + + for idx, raw := range rules { + r, err := rule.ToCommandLine(raw, !dontResolveIDs) + if err != nil { + fmt.Fprintf(os.Stderr, "Error decoding rule %d: %v\n", idx, err) + fmt.Fprintf(os.Stderr, "Raw dump: <<<%v>>>\n", raw) + } + fmt.Println(r) + } + + if !noOutputIfEmpty && len(rules) == 0 { + fmt.Println("No rules") + } + return nil +} + +func showAuditdStatus() error { + client, err := libaudit.NewAuditClient(nil) + if err != nil { + return errors.Wrap(err, "failed to create audit client") + } + defer client.Close() + + status, err := client.GetStatus() + if err != nil { + return errors.Wrap(err, "failed to get audit status") + } + + if status.FeatureBitmap == libaudit.AuditFeatureBitmapBacklogWaitTime { + // If FeatureBitmap value is "2", means we're running under an old kernel + // in which FeatureBitmap meant Version. Version 2 supports both + // backlog_wait_time and backlog_limit. + status.FeatureBitmap |= libaudit.AuditFeatureBitmapBacklogLimit + } + separator := '\n' + if singleLineStatus { + separator = ' ' + } + + fmt.Printf("enabled %d%c"+ + "failure %d%c"+ + "pid %d%c"+ + "rate_limit %d%c"+ + "backlog_limit %d%c"+ + "lost %d%c"+ + "backlog %d%c"+ + "backlog_wait_time %d%c"+ + "features %s\n", + status.Enabled, separator, + status.Failure, separator, + status.PID, separator, + status.RateLimit, separator, + status.BacklogLimit, separator, + status.Lost, separator, + status.Backlog, separator, + status.BacklogWaitTime, separator, + fmt.Sprintf("%#x", status.FeatureBitmap)) + + return nil +} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/config.yml.tmpl b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/config.yml.tmpl new file mode 100644 index 00000000..774a430e --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/config.yml.tmpl @@ -0,0 +1,67 @@ +{{ if .Reference -}} +# The file integrity module sends events when files are changed (created, +# updated, deleted). The events contain file metadata and hashes. +{{ end -}} +- module: file_integrity + {{ if eq .GOOS "darwin" -}} + paths: + - /bin + - /usr/bin + - /usr/local/bin + - /sbin + - /usr/sbin + - /usr/local/sbin + {{ else if eq .GOOS "windows" -}} + paths: + - C:/windows + - C:/windows/system32 + - C:/Program Files + - C:/Program Files (x86) + {{ else -}} + paths: + - /bin + - /usr/bin + - /sbin + - /usr/sbin + - /etc + {{- end }} +{{ if .Reference }} + # List of regular expressions to filter out notifications for unwanted files. + # Wrap in single quotes to workaround YAML escaping rules. By default no files + # are ignored. + {{ if eq .GOOS "darwin" -}} + exclude_files: + - '\.DS_Store$' + - '\.swp$' + {{ else if eq .GOOS "windows" -}} + exclude_files: + - '(?i)\.lnk$' + - '(?i)\.swp$' + {{ else -}} + exclude_files: + - '(?i)\.sw[nop]$' + - '~$' + - '/\.git($|/)' + {{- end }} + + # Scan over the configured file paths at startup and send events for new or + # modified files since the last time Auditbeat was running. + scan_at_start: true + + # Average scan rate. This throttles the amount of CPU and I/O that Auditbeat + # consumes at startup while scanning. Default is "50 MiB". + scan_rate_per_sec: 50 MiB + + # Limit on the size of files that will be hashed. Default is "100 MiB". + # Limit on the size of files that will be hashed. Default is "100 MiB". + max_file_size: 100 MiB + + # Hash types to compute when the file changes. Supported types are + # blake2b_256, blake2b_384, blake2b_512, md5, sha1, sha224, sha256, sha384, + # sha512, sha512_224, sha512_256, sha3_224, sha3_256, sha3_384, sha3_512, and xxh64. + # Default is sha1. + hash_types: [sha1] + + # Detect changes to files included in subdirectories. Disabled by default. + recursive: false +{{- end }} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/config.yml.tpl b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/config.yml.tpl deleted file mode 100644 index 3c825726..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/config.yml.tpl +++ /dev/null @@ -1,67 +0,0 @@ -{{ if .reference -}} -# The file integrity module sends events when files are changed (created, -# updated, deleted). The events contain file metadata and hashes. -{{ end -}} -- module: file_integrity - {{ if eq .goos "darwin" -}} - paths: - - /bin - - /usr/bin - - /usr/local/bin - - /sbin - - /usr/sbin - - /usr/local/sbin - {{ else if eq .goos "windows" -}} - paths: - - C:/windows - - C:/windows/system32 - - C:/Program Files - - C:/Program Files (x86) - {{ else -}} - paths: - - /bin - - /usr/bin - - /sbin - - /usr/sbin - - /etc - {{- end }} -{{ if .reference }} - # List of regular expressions to filter out notifications for unwanted files. - # Wrap in single quotes to workaround YAML escaping rules. By default no files - # are ignored. - {{ if eq .goos "darwin" -}} - exclude_files: - - '\.DS_Store$' - - '\.swp$' - {{ else if eq .goos "windows" -}} - exclude_files: - - '(?i)\.lnk$' - - '(?i)\.swp$' - {{ else -}} - exclude_files: - - '(?i)\.sw[nop]$' - - '~$' - - '/\.git($|/)' - {{- end }} - - # Scan over the configured file paths at startup and send events for new or - # modified files since the last time Auditbeat was running. - scan_at_start: true - - # Average scan rate. This throttles the amount of CPU and I/O that Auditbeat - # consumes at startup while scanning. Default is "50 MiB". - scan_rate_per_sec: 50 MiB - - # Limit on the size of files that will be hashed. Default is "100 MiB". - # Limit on the size of files that will be hashed. Default is "100 MiB". - max_file_size: 100 MiB - - # Hash types to compute when the file changes. Supported types are - # blake2b_256, blake2b_384, blake2b_512, md5, sha1, sha224, sha256, sha384, - # sha512, sha512_224, sha512_256, sha3_224, sha3_256, sha3_384 and sha3_512. - # Default is sha1. - hash_types: [sha1] - - # Detect changes to files included in subdirectories. Disabled by default. - recursive: false -{{- end }} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/docs.asciidoc index 4c968af7..f5f25abc 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/docs.asciidoc @@ -96,7 +96,7 @@ a suffix to the value. The supported units are `b` (default), `kib`, `kb`, `mib` *`hash_types`*:: A list of hash types to compute when the file changes. The supported hash types are `blake2b_256`, `blake2b_384`, `blake2b_512`, `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512`, `sha512_224`, `sha512_256`, -`sha3_224`, `sha3_256`, `sha3_384`, and `sha3_512`. The default value is `sha1`. +`sha3_224`, `sha3_256`, `sha3_384`, `sha3_512`, and `xxh64`. The default value is `sha1`. *`recursive`*:: By default, the watches set to the paths specified in `paths` are not recursive. This means that only changes to the contents diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/fields.yml b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/fields.yml index 3bfa3c4c..d1eb262b 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/_meta/fields.yml @@ -68,3 +68,7 @@ - name: sha512_256 type: keyword description: SHA512/256 hash of the file. + + - name: xxh64 + type: keyword + description: XX64 hash of the file. diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/action.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/action.go index 0dae5b7f..2fff44f4 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/action.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/action.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file_integrity import ( diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/config.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/config.go index 039f4e12..17962e71 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/config.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file_integrity import ( @@ -27,6 +44,7 @@ var validHashes = []HashType{ SHA1, SHA224, SHA256, SHA384, SHA512, SHA512_224, SHA512_256, SHA3_224, SHA3_256, SHA3_384, SHA3_512, + XXH64, } // Enum of hash types. @@ -46,6 +64,7 @@ const ( SHA512 HashType = "sha512" SHA512_224 HashType = "sha512_224" SHA512_256 HashType = "sha512_256" + XXH64 HashType = "xxh64" ) // Config contains the configuration parameters for the file integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/config_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/config_test.go deleted file mode 100644 index 0adf18e0..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/config_test.go +++ /dev/null @@ -1,151 +0,0 @@ -package file_integrity - -import ( - "os" - "path/filepath" - "regexp/syntax" - "testing" - - "github.com/joeshaw/multierror" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/go-ucfg" -) - -func TestConfig(t *testing.T) { - config, err := common.NewConfigFrom(map[string]interface{}{ - "paths": []string{"/usr/bin"}, - "hash_types": []string{"md5", "sha256"}, - "max_file_size": "1 GiB", - "scan_rate_per_sec": "10MiB", - "exclude_files": []string{`\.DS_Store$`, `\.swp$`}, - }) - if err != nil { - t.Fatal(err) - } - - c := defaultConfig - if err := config.Unpack(&c); err != nil { - t.Fatal(err) - } - - assert.Equal(t, []HashType{MD5, SHA256}, c.HashTypes) - assert.EqualValues(t, 1024*1024*1024, c.MaxFileSizeBytes) - assert.EqualValues(t, 1024*1024*10, c.ScanRateBytesPerSec) - assert.Len(t, c.ExcludeFiles, 2) - assert.EqualValues(t, `\.DS_Store(?-m:$)`, c.ExcludeFiles[0].String()) - assert.EqualValues(t, `\.swp(?-m:$)`, c.ExcludeFiles[1].String()) -} - -func TestConfigInvalid(t *testing.T) { - config, err := common.NewConfigFrom(map[string]interface{}{ - "paths": []string{"/usr/bin"}, - "hash_types": []string{"crc32", "sha256", "hmac"}, - "max_file_size": "32 Hz", - "scan_rate_per_sec": "32mb/sec", - }) - if err != nil { - t.Fatal(err) - } - - c := defaultConfig - err = config.Unpack(&c) - if err == nil { - t.Fatal("expected error") - } - - t.Log(err) - - ucfgErr, ok := err.(ucfg.Error) - if !ok { - t.Fatal("expected ucfg.Error") - } - - merr, ok := ucfgErr.Reason().(*multierror.MultiError) - if !ok { - t.Fatal("expected MultiError") - } - assert.Len(t, merr.Errors, 4) - - config, err = common.NewConfigFrom(map[string]interface{}{ - "paths": []string{"/usr/bin"}, - "hash_types": []string{"crc32", "sha256", "hmac"}, - "exclude_files": "unmatched)", - }) - if err != nil { - t.Fatal(err) - } - - c = defaultConfig - err = config.Unpack(&c) - if err == nil { - t.Fatal("expected error") - } - - t.Log(err) - - ucfgErr, ok = err.(ucfg.Error) - if !ok { - t.Fatal("expected ucfg.Error") - } - - _, ok = ucfgErr.Reason().(*syntax.Error) - assert.True(t, ok) -} - -func TestConfigInvalidMaxFileSize(t *testing.T) { - config, err := common.NewConfigFrom(map[string]interface{}{ - "paths": []string{"/usr/bin"}, - "max_file_size": "0", // Value must be >= 0. - }) - if err != nil { - t.Fatal(err) - } - - c := defaultConfig - if err := config.Unpack(&c); err != nil { - t.Log(err) - return - } - - t.Fatal("expected error") -} - -func TestConfigEvalSymlinks(t *testing.T) { - dir := setupTestDir(t) - defer os.RemoveAll(dir) - - config, err := common.NewConfigFrom(map[string]interface{}{ - "paths": []string{filepath.Join(dir, "link_to_subdir")}, - }) - if err != nil { - t.Fatal(err) - } - - c := defaultConfig - if err := config.Unpack(&c); err != nil { - t.Log(err) - return - } - - // link_to_subdir was resolved to subdir. - assert.Equal(t, filepath.Base(c.Paths[0]), "subdir") -} - -func TestConfigRemoveDuplicates(t *testing.T) { - config, err := common.NewConfigFrom(map[string]interface{}{ - "paths": []string{"/path/a", "/path/a"}, - }) - if err != nil { - t.Fatal(err) - } - - c := defaultConfig - if err := config.Unpack(&c); err != nil { - t.Log(err) - return - } - - assert.Len(t, c.Paths, 1) -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/event.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/event.go index 918f9ee2..3c2fd6df 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/event.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file_integrity import ( @@ -16,6 +33,7 @@ import ( "strconv" "time" + "github.com/OneOfOne/xxhash" "github.com/pkg/errors" "golang.org/x/crypto/blake2b" "golang.org/x/crypto/sha3" @@ -39,7 +57,7 @@ func (s Source) String() string { func (s Source) MarshalText() ([]byte, error) { return []byte(s.String()), nil } const ( - // SourceScan identifies events triggerd by a file system scan. + // SourceScan identifies events triggered by a file system scan. SourceScan Source = iota // SourceFSNotify identifies events triggered by a notification from the // file system. @@ -377,6 +395,8 @@ func hashFile(name string, hashType ...HashType) (map[HashType]Digest, error) { hashes = append(hashes, sha512.New512_224()) case SHA512_256: hashes = append(hashes, sha512.New512_256()) + case XXH64: + hashes = append(hashes, xxhash.New64()) default: return nil, errors.Errorf("unknown hash type '%v'", name) } diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/event_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/event_test.go deleted file mode 100644 index 00ac890a..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/event_test.go +++ /dev/null @@ -1,372 +0,0 @@ -package file_integrity - -import ( - "bytes" - "encoding/hex" - "fmt" - "io/ioutil" - "os" - "runtime" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -var testEventTime = time.Now().UTC() - -func testEvent() *Event { - return &Event{ - Timestamp: testEventTime, - Path: "/home/user", - Source: SourceScan, - Action: ConfigChange, - Info: &Metadata{ - Type: FileType, - Inode: 123, - UID: 500, - GID: 500, - Mode: 0600, - CTime: testEventTime, - MTime: testEventTime, - SetGID: true, - }, - Hashes: map[HashType]Digest{ - SHA1: mustDecodeHex("abcd"), - SHA256: mustDecodeHex("1234"), - }, - } -} - -func TestDiffEvents(t *testing.T) { - t.Run("nil values", func(t *testing.T) { - _, changed := diffEvents(nil, nil) - assert.False(t, changed) - }) - - t.Run("no change", func(t *testing.T) { - e := testEvent() - _, changed := diffEvents(e, e) - assert.False(t, changed) - }) - - t.Run("new file", func(t *testing.T) { - action, changed := diffEvents(nil, testEvent()) - assert.True(t, changed) - assert.EqualValues(t, Created, action) - }) - - t.Run("deleted", func(t *testing.T) { - action, changed := diffEvents(testEvent(), nil) - assert.True(t, changed) - assert.EqualValues(t, Deleted, action) - }) - - t.Run("moved", func(t *testing.T) { - e := testEvent() - e.Path += "_new" - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, Moved, action) - }) - - t.Run("updated metadata", func(t *testing.T) { - e := testEvent() - e.Info.Mode = 0644 - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, AttributesModified, action, "action: %v", action) - }) - - t.Run("missing metadata", func(t *testing.T) { - e := testEvent() - e.Info = nil - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, AttributesModified, action) - }) - - t.Run("more hashes", func(t *testing.T) { - e := testEvent() - e.Hashes["md5"] = mustDecodeHex("5678") - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, ConfigChange, action) - }) - - t.Run("subset of hashes", func(t *testing.T) { - e := testEvent() - delete(e.Hashes, "sha256") - - action, changed := diffEvents(testEvent(), e) - assert.False(t, changed) - assert.Zero(t, action) - }) - - t.Run("different hash values", func(t *testing.T) { - e := testEvent() - e.Hashes = map[HashType]Digest{ - SHA1: mustDecodeHex("ef"), - SHA256: mustDecodeHex("1234"), - } - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, Updated, action) - }) - - t.Run("updated hashes and metadata", func(t *testing.T) { - e := testEvent() - e.Hashes = map[HashType]Digest{ - SHA1: mustDecodeHex("ef"), - SHA256: mustDecodeHex("1234"), - } - e.Info.MTime = time.Now() - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, Updated|AttributesModified, action) - }) - - t.Run("updated setuid field", func(t *testing.T) { - e := testEvent() - e.Info.SetUID = true - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, AttributesModified, action, "action: %v", action) - }) - - t.Run("updated setgid field", func(t *testing.T) { - e := testEvent() - e.Info.SetGID = false - - action, changed := diffEvents(testEvent(), e) - assert.True(t, changed) - assert.EqualValues(t, AttributesModified, action, "action: %v", action) - }) -} - -func TestHashFile(t *testing.T) { - t.Run("valid hashes", func(t *testing.T) { - // Computed externally. - expectedHashes := map[HashType]Digest{ - BLAKE2B_256: mustDecodeHex("0f0cc1f0ea4ef962d6a150ae0b77bc320b57ed24e1609b933fa2274484f59145"), - BLAKE2B_384: mustDecodeHex("b819d90f648da6effff2393acb1884d2638642b3524c329832c073c9364149fcdedb522914ef9c2c92f007a42366139a"), - BLAKE2B_512: mustDecodeHex("fc13029e8a5ce67ad5a70f0cc659a4b30df9d791b125835e434606c6127ee37ebbc8b216389682ddfa84380789db09f2535d2a9837454414ea3ff00ec0801150"), - MD5: mustDecodeHex("c897d1410af8f2c74fba11b1db511e9e"), - SHA1: mustDecodeHex("f951b101989b2c3b7471710b4e78fc4dbdfa0ca6"), - SHA224: mustDecodeHex("d301812e62eec9b1e68c0b861e62f374e0d77e8365f5ddd6cccc8693"), - SHA256: mustDecodeHex("ecf701f727d9e2d77c4aa49ac6fbbcc997278aca010bddeeb961c10cf54d435a"), - SHA384: mustDecodeHex("ec8d147738b2e4bf6f5c5ac50a9a7593fb1ee2de01474d6f8a6c7fdb7ac945580772a5225a4c7251a7c0697acb7b8405"), - SHA512: mustDecodeHex("f5408390735bf3ef0bb8aaf66eff4f8ca716093d2fec50996b479b3527e5112e3ea3b403e9e62c72155ac1e08a49b476f43ab621e1a5fc2bbb0559d8258a614d"), - SHA512_224: mustDecodeHex("fde054253f43a95559f1b6eeb8e2edba4124957b43b85d7fcb4d20d5"), - SHA512_256: mustDecodeHex("3380f6a625aac19cbdddc598ab07aea195bae000f8d4c8cd6bb8870ac25df15d"), - SHA3_224: mustDecodeHex("62e3515dae95bbd0e105bee840b7dc3b47f6d6bc772c259dbc0da31a"), - SHA3_256: mustDecodeHex("3cb5385a2987ca45888d7877fbcf92b4854f7155ae19c96cecc7ea1300c6f5a4"), - SHA3_384: mustDecodeHex("f19539818b4f29fa0ee599db4113fd81b77cd1119682e6d799a052849d2e40ef0dad84bc947ba2dee742d9731f1b9e9b"), - SHA3_512: mustDecodeHex("f0a2c0f9090c1fd6dedf211192e36a6668d2b3c7f57a35419acb1c4fc7dfffc267bbcd90f5f38676caddcab652f6aacd1ed4e0ad0a8e1e4b98f890b62b6c7c5c"), - } - - f, err := ioutil.TempFile("", "input.txt") - if err != nil { - t.Fatal(err) - } - defer os.Remove(f.Name()) - - f.WriteString("hello world!\n") - f.Sync() - f.Close() - - hashes, err := hashFile(f.Name(), validHashes...) - if err != nil { - t.Fatal(err) - } - - for _, hashType := range validHashes { - if hash, found := hashes[hashType]; !found { - t.Errorf("%v not found", hashType) - } else { - delete(hashes, hashType) - expected, ok := expectedHashes[hashType] - if !ok { - t.Fatalf("hash type not found in expected hashes: %v", hashType) - } - if !bytes.Equal(expected, hash) { - t.Errorf("%v hash incorrect, got: %v, want: %v", hashType, - hex.EncodeToString(hash), hex.EncodeToString(expected)) - } - } - } - - assert.Len(t, hashes, 0) - }) - - t.Run("no hashes", func(t *testing.T) { - hashes, err := hashFile("anyfile.txt") - assert.Nil(t, hashes) - assert.NoError(t, err) - }) - - t.Run("invalid hash", func(t *testing.T) { - hashes, err := hashFile("anyfile.txt", "md4") - assert.Nil(t, hashes) - assert.Error(t, err) - }) - - t.Run("invalid file", func(t *testing.T) { - hashes, err := hashFile("anyfile.txt", "md5") - assert.Nil(t, hashes) - assert.Error(t, err) - }) -} - -func BenchmarkHashFile(b *testing.B) { - f, err := ioutil.TempFile("", "hash") - if err != nil { - b.Fatal(err) - } - defer os.Remove(f.Name()) - - zeros := make([]byte, 100) - iterations := 1024 * 1024 // 100 MiB - for i := 0; i < iterations; i++ { - if _, err = f.Write(zeros); err != nil { - b.Fatal(err) - } - } - b.Logf("file size: %v bytes", len(zeros)*iterations) - f.Sync() - f.Close() - b.ResetTimer() - - for _, hashType := range validHashes { - b.Run(string(hashType), func(b *testing.B) { - for i := 0; i < b.N; i++ { - _, err = hashFile(f.Name(), hashType) - if err != nil { - b.Fatal(err) - } - } - }) - } -} - -func TestBuildEvent(t *testing.T) { - t.Run("all fields", func(t *testing.T) { - e := testEvent() - e.TargetPath = "link_target" - e.Info.SID = "S-123-4" - e.Info.Owner = "beats" - e.Info.Group = "staff" - e.Info.SetUID = true - e.Info.Origin = []string{"google.com"} - - fields := buildMetricbeatEvent(e, false).MetricSetFields - assert.Equal(t, testEventTime, e.Timestamp) - - assertHasKey(t, fields, "event.action") - - assertHasKey(t, fields, "file.path") - assertHasKey(t, fields, "file.target_path") - assertHasKey(t, fields, "file.inode") - assertHasKey(t, fields, "file.uid") - assertHasKey(t, fields, "file.owner") - assertHasKey(t, fields, "file.group") - assertHasKey(t, fields, "file.size") - assertHasKey(t, fields, "file.mtime") - assertHasKey(t, fields, "file.ctime") - assertHasKey(t, fields, "file.type") - assertHasKey(t, fields, "file.setuid") - assertHasKey(t, fields, "file.setgid") - assertHasKey(t, fields, "file.origin") - if runtime.GOOS != "windows" { - assertHasKey(t, fields, "file.gid") - assertHasKey(t, fields, "file.mode") - } - - assertHasKey(t, fields, "hash.sha1") - assertHasKey(t, fields, "hash.sha256") - }) - t.Run("no setuid/setgid", func(t *testing.T) { - e := testEvent() - e.Info.SetGID = false - fields := buildMetricbeatEvent(e, false).MetricSetFields - _, err := fields.GetValue("file.setuid") - assert.Error(t, err) - _, err = fields.GetValue("file.setgid") - assert.Error(t, err) - }) - t.Run("setgid set", func(t *testing.T) { - e := testEvent() - fields := buildMetricbeatEvent(e, false).MetricSetFields - _, err := fields.GetValue("file.setuid") - assert.Error(t, err) - - setgid, err := fields.GetValue("file.setgid") - if err != nil { - t.Fatal(err) - } - flag, ok := setgid.(bool) - assert.True(t, ok) - assert.True(t, flag) - }) - t.Run("setuid set", func(t *testing.T) { - e := testEvent() - e.Info.SetUID = true - e.Info.SetGID = false - fields := buildMetricbeatEvent(e, false).MetricSetFields - _, err := fields.GetValue("file.setgid") - assert.Error(t, err) - - setgid, err := fields.GetValue("file.setuid") - if err != nil { - t.Fatal(err) - } - flag, ok := setgid.(bool) - assert.True(t, ok) - assert.True(t, flag) - }) - t.Run("setuid and setgid set", func(t *testing.T) { - e := testEvent() - e.Info.SetUID = true - fields := buildMetricbeatEvent(e, false).MetricSetFields - setuid, err := fields.GetValue("file.setgid") - if err != nil { - t.Fatal(err) - } - flag, ok := setuid.(bool) - assert.True(t, ok) - assert.True(t, flag) - - setgid, err := fields.GetValue("file.setuid") - if err != nil { - t.Fatal(err) - } - flag, ok = setgid.(bool) - assert.True(t, ok) - assert.True(t, flag) - }) -} - -func mustDecodeHex(v string) []byte { - data, err := hex.DecodeString(v) - if err != nil { - panic(fmt.Errorf("invalid hex value: %v", err)) - } - return data -} - -func assertHasKey(t testing.TB, m common.MapStr, key string) { - t.Helper() - found, err := m.HasKey(key) - if err != nil || !found { - t.Errorf("key %v not found: %v", key, err) - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsevents.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsevents.go index 38b43d35..5de8b824 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsevents.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsevents.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsnotify.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsnotify.go index 731e370a..7417147e 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsnotify.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_fsnotify.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build linux freebsd openbsd netbsd windows package file_integrity @@ -86,7 +103,11 @@ func (r *reader) consumeEvents(done <-chan struct{}) { r.eventC <- e case err := <-r.watcher.ErrorChannel(): - r.log.Warnw("fsnotify watcher error", "error", err) + // a bug in fsnotify can cause spurious nil errors to be sent + // on the error channel. + if err != nil { + r.log.Warnw("fsnotify watcher error", "error", err) + } } } } diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_test.go deleted file mode 100644 index 2d4209d5..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_test.go +++ /dev/null @@ -1,344 +0,0 @@ -package file_integrity - -import ( - "io/ioutil" - "os" - "path/filepath" - "runtime" - "syscall" - "testing" - "time" - - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" -) - -// ErrorSharingViolation is a Windows ERROR_SHARING_VIOLATION. It means "The -// process cannot access the file because it is being used by another process." -const ErrorSharingViolation syscall.Errno = 32 - -func TestEventReader(t *testing.T) { - // Make dir to monitor. - dir, err := ioutil.TempDir("", "audit") - if err != nil { - t.Fatal(err) - } - // under macOS, temp dir has a symlink in the path (/var -> /private/var) - // and the path returned in events has the symlink resolved - if runtime.GOOS == "darwin" { - if dirAlt, err := filepath.EvalSymlinks(dir); err == nil { - dir = dirAlt - } - } - defer os.RemoveAll(dir) - - // Create a new EventProducer. - config := defaultConfig - config.Paths = []string{dir} - r, err := NewEventReader(config) - if err != nil { - t.Fatal(err) - } - - done := make(chan struct{}) - defer close(done) - events, err := r.Start(done) - if err != nil { - t.Fatal(err) - } - - // Create a new file. - txt1 := filepath.Join(dir, "test1.txt") - var fileMode os.FileMode = 0640 - mustRun(t, "created", func(t *testing.T) { - if err = ioutil.WriteFile(txt1, []byte("hello"), fileMode); err != nil { - t.Fatal(err) - } - - event := readTimeout(t, events) - assert.EqualValues(t, Created, event.Action&Created) - assertSameFile(t, txt1, event.Path) - if runtime.GOOS != "windows" { - assert.EqualValues(t, fileMode, event.Info.Mode) - } - }) - - // Rename the file. - txt2 := filepath.Join(dir, "test2.txt") - mustRun(t, "move", func(t *testing.T) { - rename(t, txt1, txt2) - - received := readMax(t, 3, events) - if len(received) == 0 { - t.Fatal("no events received") - } - if runtime.GOOS == "darwin" { - for _, e := range received { - switch { - // Destination file only gets the Moved flag - case e.Action == Moved: - assertSameFile(t, txt2, e.Path) - // Source file is moved and updated - case 0 != e.Action&Moved, 0 != e.Action&Updated: - assertSameFile(t, txt1, e.Path) - default: - t.Errorf("unexpected event: %+v", e) - } - } - } else { - for _, e := range received { - switch { - case 0 != e.Action&Moved, 0 != e.Action&Updated: - assert.Equal(t, txt1, e.Path) - case 0 != e.Action&Created: - assertSameFile(t, txt2, e.Path) - default: - t.Errorf("unexpected event: %+v", e) - } - } - } - }) - - // Chmod the file. - mustRun(t, "attributes modified", func(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skip() - } - - if err = os.Chmod(txt2, 0644); err != nil { - t.Fatal(err) - } - - event := readTimeout(t, events) - assertSameFile(t, txt2, event.Path) - assert.EqualValues(t, AttributesModified, AttributesModified&event.Action) - assert.EqualValues(t, 0644, event.Info.Mode) - }) - - // Append data to the file. - mustRun(t, "updated", func(t *testing.T) { - f, err := os.OpenFile(txt2, os.O_RDWR|os.O_APPEND, fileMode) - if err != nil { - t.Fatal(err) - } - f.WriteString(" world!") - f.Sync() - f.Close() - - event := readTimeout(t, events) - assertSameFile(t, txt2, event.Path) - assert.EqualValues(t, Updated, Updated&event.Action) - if runtime.GOOS != "windows" { - assert.EqualValues(t, 0644, event.Info.Mode) - } - }) - - // Change the GID of the file. - mustRun(t, "chown", func(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skip("skip chown on windows") - } - - gid := changeGID(t, txt2) - event := readTimeout(t, events) - assertSameFile(t, txt2, event.Path) - assert.EqualValues(t, AttributesModified, AttributesModified&event.Action) - assert.EqualValues(t, gid, event.Info.GID) - }) - - mustRun(t, "deleted", func(t *testing.T) { - if err = os.Remove(txt2); err != nil { - t.Fatal(err) - } - - event := readTimeout(t, events) - assert.EqualValues(t, Deleted, Deleted&event.Action) - }) - - // Create a sub-directory. - subDir := filepath.Join(dir, "subdir") - mustRun(t, "dir created", func(t *testing.T) { - if err = os.Mkdir(subDir, 0755); err != nil { - t.Fatal(err) - } - - event := readTimeout(t, events) - assertSameFile(t, subDir, event.Path) - }) - - // Test moving a file into the monitored dir from outside. - var moveInOrig string - moveIn := filepath.Join(dir, "test3.txt") - mustRun(t, "move in", func(t *testing.T) { - f, err := ioutil.TempFile("", "test3.txt") - if err != nil { - t.Fatal(err) - } - f.WriteString("move-in") - f.Sync() - f.Close() - moveInOrig = f.Name() - - rename(t, moveInOrig, moveIn) - - event := readTimeout(t, events) - - if runtime.GOOS == "darwin" { - assert.EqualValues(t, Moved, event.Action) - } else { - assert.EqualValues(t, Created, event.Action) - } - assertSameFile(t, moveIn, event.Path) - }) - - // Test moving a file out of the monitored dir. - mustRun(t, "move out", func(t *testing.T) { - rename(t, moveIn, moveInOrig) - defer os.Remove(moveInOrig) - - event := readTimeout(t, events) - assertSameFile(t, moveIn, event.Path) - if runtime.GOOS == "windows" { - assert.EqualValues(t, Deleted, event.Action) - } else { - assert.EqualValues(t, Moved, Moved&event.Action) - } - }) - - // Test that it does not monitor recursively. - subFile := filepath.Join(subDir, "foo.txt") - mustRun(t, "non-recursive", func(t *testing.T) { - if err = ioutil.WriteFile(subFile, []byte("foo"), fileMode); err != nil { - t.Fatal(err) - } - - assertNoEvent(t, events) - }) -} - -// readTimeout reads one event from the channel and returns it. If it does -// not receive an event after one second it will time-out and fail the test. -func readTimeout(t testing.TB, events <-chan Event) Event { - select { - case <-time.After(time.Second): - t.Fatalf("%+v", errors.Errorf("timed-out waiting for event")) - case e, ok := <-events: - if !ok { - t.Fatal("failed reading from event channel") - } - t.Logf("%+v", buildMetricbeatEvent(&e, false)) - return e - } - - return Event{} -} - -// readMax reads events from the channel over a period of one second and returns -// the events. If the max number of events is received it returns early. -func readMax(t testing.TB, max int, events <-chan Event) []Event { - timer := time.NewTimer(time.Second) - defer timer.Stop() - - var received []Event - for { - select { - case <-timer.C: - return received - case e, ok := <-events: - if !ok { - t.Fatal("failed reading from event channel") - } - t.Logf("%+v", buildMetricbeatEvent(&e, false)) - received = append(received, e) - if len(received) >= max { - return received - } - } - } -} - -// assertNoEvent asserts that no event is received on the channel. It waits for -// 250ms. -func assertNoEvent(t testing.TB, events <-chan Event) { - select { - case e := <-events: - t.Fatal("received unexpected event", e) - case <-time.After(250 * time.Millisecond): - } -} - -// assertSameFile asserts that two files are the same. -func assertSameFile(t testing.TB, f1, f2 string) { - if f1 == f2 { - return - } - - info1, err := os.Lstat(f1) - if err != nil { - t.Error(err) - return - } - - info2, err := os.Lstat(f2) - if err != nil { - t.Error(err) - return - } - - assert.True(t, os.SameFile(info1, info2), "%v and %v are not the same file", f1, f2) -} - -// changeGID changes the GID of a file using chown. It uses the second group -// that the user is a member of. If the user is only a member of one group then -// it will skip the test. -func changeGID(t testing.TB, file string) int { - groups, err := os.Getgroups() - if err != nil { - t.Fatal("failed to get groups", err) - } - - if len(groups) <= 1 { - t.Skip("no group that we can change to") - } - - // The second one will be a non-default group. - gid := groups[1] - if err = os.Chown(file, -1, gid); err != nil { - t.Fatal(err) - } - - return gid -} - -// mustRun runs a sub-test and stops the execution of the parent if the sub-test -// fails. -func mustRun(t *testing.T, name string, f func(t *testing.T)) { - if !t.Run(name, f) { - t.FailNow() - } -} - -// rename renames a file or it fails the test. It retries the rename operation -// multiple times before failing. -// -// https://support.microsoft.com/en-us/help/316609/prb-error-sharing-violation-error-message-when-the-createfile-function -func rename(t *testing.T, oldPath, newPath string) { - const maxRetries = 100 - - for retries := 0; retries < maxRetries; retries++ { - err := os.Rename(oldPath, newPath) - if err == nil { - if retries > 0 { - t.Logf("rename needed %d retries", retries) - } - return - } - - if linkErr, ok := err.(*os.LinkError); ok && linkErr.Err == ErrorSharingViolation { - time.Sleep(time.Millisecond) - continue - } - - t.Fatal(err) - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_unsupported.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_unsupported.go index 09955080..53034833 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_unsupported.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/eventreader_unsupported.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !linux,!freebsd,!openbsd,!netbsd,!windows,!darwin package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_bsd.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_bsd.go index e67e0ce9..6d9120ad 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_bsd.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_bsd.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build freebsd openbsd netbsd darwin package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_linux.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_linux.go index acc9e82c..b17c6c82 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_linux.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_linux.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build linux package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_posix.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_posix.go index 2d915fdc..3e6d5e6e 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_posix.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_posix.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build linux freebsd openbsd netbsd darwin package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_test.go deleted file mode 100644 index eb95048a..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_test.go +++ /dev/null @@ -1,135 +0,0 @@ -package file_integrity - -import ( - "fmt" - "io/ioutil" - "os" - "os/user" - "runtime" - "strconv" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestNewMetadata(t *testing.T) { - f, err := ioutil.TempFile("", "metadata") - if err != nil { - t.Fatal(err) - } - defer os.Remove(f.Name()) - - _, err = f.WriteString("metadata test") - if err != nil { - t.Fatal(err) - } - f.Sync() - f.Close() - - info, err := os.Lstat(f.Name()) - if err != nil { - t.Fatal(err) - } - - meta, err := NewMetadata(f.Name(), info) - if err != nil { - t.Fatal(err) - } - - u, err := user.Current() - if err != nil { - t.Fatal(err) - } - - assert.NotZero(t, meta.Inode) - - if runtime.GOOS == "windows" { - // The owner can differ from the creator if the GPO for - // "System object Default owner for objects created by members of the Administrators group" - // is set to "administrators group" rather than "object creator". - if meta.Owner == u.Username { - assert.Equal(t, u.Uid, meta.SID) - } else if meta.Owner == `BUILTIN\Administrators` { - // Well-known SID for BUILTIN_ADMINISTRATORS. - assert.Equal(t, "S-1-5-32-544", meta.SID) - } else { - t.Error("unexpected owner", meta.Owner) - } - assert.Zero(t, meta.UID) - assert.Zero(t, meta.GID) - assert.Empty(t, meta.Group) - } else { - group, err := user.LookupGroupId(u.Gid) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, u.Uid, strconv.Itoa(int(meta.UID))) - assert.Equal(t, u.Gid, strconv.Itoa(int(meta.GID))) - assert.Equal(t, u.Username, meta.Owner) - assert.Equal(t, group.Name, meta.Group) - assert.Empty(t, meta.SID) - - assert.EqualValues(t, 0600, meta.Mode) - } - - assert.EqualValues(t, len("metadata test"), meta.Size, "size") - assert.NotZero(t, meta.MTime, "mtime") - assert.NotZero(t, meta.CTime, "ctime") - assert.Equal(t, FileType, meta.Type, "type") -} - -func TestSetUIDSetGIDBits(t *testing.T) { - f, err := ioutil.TempFile("", "setuid") - if err != nil { - t.Fatal(err) - } - defer os.Remove(f.Name()) - - _, err = f.WriteString("metadata test") - if err != nil { - t.Fatal(err) - } - f.Sync() - f.Close() - - info, err := os.Lstat(f.Name()) - if err != nil { - t.Fatal(err) - } - - meta, err := NewMetadata(f.Name(), info) - if err != nil { - t.Fatal(err) - } - - assert.False(t, meta.SetUID) - assert.False(t, meta.SetGID) - - if runtime.GOOS == "windows" { - t.Skip("No setuid/setgid bits on Windows") - } - - for _, flags := range []os.FileMode{ - 0600 | os.ModeSetuid, - 0600 | os.ModeSetgid, - 0600 | os.ModeSetuid | os.ModeSetuid, - } { - msg := fmt.Sprintf("checking flags %04o", flags) - if err = os.Chmod(f.Name(), flags); err != nil { - t.Fatal(err, msg) - } - - info, err = os.Lstat(f.Name()) - if err != nil { - t.Fatal(err, msg) - } - - meta, err = NewMetadata(f.Name(), info) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, flags&os.ModeSetuid != 0, meta.SetUID) - assert.Equal(t, flags&os.ModeSetgid != 0, meta.SetGID) - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_windows.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_windows.go index dd61066f..880620a7 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_windows.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileinfo_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build windows package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_darwin.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_darwin.go index f47eff4e..f6cb2803 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_darwin.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_darwin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_other.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_other.go index 97e3aafd..ad4f062d 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_other.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_other.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !darwin package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_test.go deleted file mode 100644 index ce2876be..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/fileorigin_test.go +++ /dev/null @@ -1,80 +0,0 @@ -// +build darwin - -package file_integrity - -import ( - "io/ioutil" - "os" - "os/exec" - "runtime" - "testing" - - "github.com/stretchr/testify/assert" -) - -const ( - key = "com.apple.metadata:kMDItemWhereFroms" - value = `62 70 6C 69 73 74 30 30 A2 01 02 5F 10 5B 68 74 - 74 70 73 3A 2F 2F 61 72 74 69 66 61 63 74 73 2E - 65 6C 61 73 74 69 63 2E 63 6F 2F 64 6F 77 6E 6C - 6F 61 64 73 2F 62 65 61 74 73 2F 61 75 64 69 74 - 62 65 61 74 2F 61 75 64 69 74 62 65 61 74 2D 36 - 2E 31 2E 31 2D 64 61 72 77 69 6E 2D 78 38 36 5F - 36 34 2E 74 61 72 2E 67 7A 5F 10 30 68 74 74 70 - 73 3A 2F 2F 77 77 77 2E 65 6C 61 73 74 69 63 2E - 63 6F 2F 64 6F 77 6E 6C 6F 61 64 73 2F 62 65 61 - 74 73 2F 61 75 64 69 74 62 65 61 74 08 0B 69 00 - 00 00 00 00 00 01 01 00 00 00 00 00 00 00 03 00 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9C` -) - -func TestDarwinWhereFroms(t *testing.T) { - if runtime.GOOS != "darwin" { - t.Skip("Unsupported platform") - } - f, err := ioutil.TempFile("", "wherefrom") - if err != nil { - t.Fatal(err) - } - defer os.Remove(f.Name()) - - t.Run("no origin", func(t *testing.T) { - origin, err := GetFileOrigin(f.Name()) - if err != nil { - t.Fatal(err) - } - assert.Len(t, origin, 0) - }) - t.Run("valid origin", func(t *testing.T) { - err = exec.Command("xattr", "-w", "-x", key, value, f.Name()).Run() - if err != nil { - t.Fatal(err) - } - origin, err := GetFileOrigin(f.Name()) - if err != nil { - t.Fatal(err) - } - assert.Len(t, origin, 2) - assert.Equal(t, "https://artifacts.elastic.co/downloads/beats/auditbeat/auditbeat-6.1.1-darwin-x86_64.tar.gz", origin[0]) - assert.Equal(t, "https://www.elastic.co/downloads/beats/auditbeat", origin[1]) - }) - t.Run("empty origin", func(t *testing.T) { - err = exec.Command("xattr", "-w", "-x", key, "", f.Name()).Run() - if err != nil { - t.Fatal(err) - } - origin, err := GetFileOrigin(f.Name()) - if err != nil { - t.Fatal(err) - } - assert.Len(t, origin, 0) - }) - t.Run("bad origin", func(t *testing.T) { - err = exec.Command("xattr", "-w", "-x", key, "01 23 45 67", f.Name()).Run() - if err != nil { - t.Fatal(err) - } - _, err := GetFileOrigin(f.Name()) - assert.Error(t, err) - }) -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/flatbuffers.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/flatbuffers.go index bf6041b3..b9291ecc 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/flatbuffers.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/flatbuffers.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file_integrity import ( @@ -95,6 +112,8 @@ func fbWriteHash(b *flatbuffers.Builder, hashes map[HashType]Digest) flatbuffers schema.HashAddSha512224(b, offset) case SHA512_256: schema.HashAddSha512256(b, offset) + case XXH64: + schema.HashAddXx64(b, offset) } } return schema.HashEnd(b) @@ -309,6 +328,9 @@ func fbDecodeHash(e *schema.Event) map[HashType]Digest { case SHA512_256: length = hash.Sha512256Length() producer = hash.Sha512256 + case XXH64: + length = hash.Xx64Length() + producer = hash.Xx64 default: panic(errors.Errorf("unhandled hash type: %v", hashType)) } diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/flatbuffers_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/flatbuffers_test.go deleted file mode 100644 index a24f0667..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/flatbuffers_test.go +++ /dev/null @@ -1,83 +0,0 @@ -package file_integrity - -import ( - "encoding/json" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestFBEncodeDecode(t *testing.T) { - e := testEvent() - - builder, release := fbGetBuilder() - defer release() - data := fbEncodeEvent(builder, e) - t.Log("encoded length:", len(data)) - - out := fbDecodeEvent(e.Path, data) - if out == nil { - t.Fatal("decode returned nil") - } - - assert.Equal(t, *e.Info, *out.Info) - e.Info, out.Info = nil, nil - assert.Equal(t, e, out) -} - -func BenchmarkFBEncodeEvent(b *testing.B) { - builder, release := fbGetBuilder() - defer release() - e := testEvent() - b.ResetTimer() - - for i := 0; i < b.N; i++ { - builder.Reset() - fbEncodeEvent(builder, e) - } -} - -func BenchmarkFBEventDecode(b *testing.B) { - builder, release := fbGetBuilder() - defer release() - e := testEvent() - data := fbEncodeEvent(builder, e) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - if event := fbDecodeEvent(e.Path, data); event == nil { - b.Fatal("failed to decode") - } - } -} - -// JSON benchmarks for comparisons. - -func BenchmarkJSONEventEncoding(b *testing.B) { - e := testEvent() - b.ResetTimer() - - for i := 0; i < b.N; i++ { - _, err := json.Marshal(e) - if err != nil { - b.Fatal(err) - } - } -} - -func BenchmarkJSONEventDecode(b *testing.B) { - e := testEvent() - data, err := json.Marshal(e) - if err != nil { - b.Fatal(err) - } - b.ResetTimer() - - for i := 0; i < b.N; i++ { - var e *Event - err := json.Unmarshal(data, &e) - if err != nil { - b.Fatal(err) - } - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/metricset.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/metricset.go index 84adeee7..23bbe133 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/metricset.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/metricset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file_integrity import ( @@ -5,7 +22,7 @@ import ( "os" "time" - "github.com/boltdb/bolt" + bolt "github.com/coreos/bbolt" "github.com/pkg/errors" "github.com/elastic/beats/auditbeat/datastore" diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/metricset_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/metricset_test.go deleted file mode 100644 index b879b1e4..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/metricset_test.go +++ /dev/null @@ -1,178 +0,0 @@ -package file_integrity - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/auditbeat/core" - "github.com/elastic/beats/auditbeat/datastore" - "github.com/elastic/beats/libbeat/paths" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - defer setup(t)() - - dir, err := ioutil.TempDir("", "audit-file") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - go func() { - time.Sleep(100 * time.Millisecond) - file := filepath.Join(dir, "file.data") - ioutil.WriteFile(file, []byte("hello world"), 0600) - }() - - ms := mbtest.NewPushMetricSetV2(t, getConfig(dir)) - events := mbtest.RunPushMetricSetV2(10*time.Second, 2, ms) - for _, e := range events { - if e.Error != nil { - t.Fatalf("received error: %+v", e.Error) - } - } - - fullEvent := mbtest.StandardizeEvent(ms, events[len(events)-1], core.AddDatasetToEvent) - mbtest.WriteEventToDataJSON(t, fullEvent, "") -} - -func TestDetectDeletedFiles(t *testing.T) { - defer setup(t)() - - bucket, err := datastore.OpenBucket(bucketName) - if err != nil { - t.Fatal(err) - } - defer bucket.Close() - - dir, err := ioutil.TempDir("", "audit-file") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - dir, err = filepath.EvalSymlinks(dir) - if err != nil { - t.Fatal(err) - } - - e := &Event{ - Timestamp: time.Now().UTC(), - Path: filepath.Join(dir, "ghost.file"), - Action: Created, - } - if err = store(bucket, e); err != nil { - t.Fatal(err) - } - - ms := mbtest.NewPushMetricSetV2(t, getConfig(dir)) - events := mbtest.RunPushMetricSetV2(10*time.Second, 2, ms) - for _, e := range events { - if e.Error != nil { - t.Fatalf("received error: %+v", e.Error) - } - } - - if !assert.Len(t, events, 2) { - return - } - event := events[0].MetricSetFields - path, err := event.GetValue("file.path") - if assert.NoError(t, err) { - assert.Equal(t, dir, path) - } - - action, err := event.GetValue("event.action") - if assert.NoError(t, err) { - assert.Equal(t, []string{"created"}, action) - } - - event = events[1].MetricSetFields - path, err = event.GetValue("file.path") - if assert.NoError(t, err) { - assert.Equal(t, e.Path, path) - } - - action, err = event.GetValue("event.action") - if assert.NoError(t, err) { - assert.Equal(t, []string{"deleted"}, action) - } -} - -func TestExcludedFiles(t *testing.T) { - defer setup(t)() - - bucket, err := datastore.OpenBucket(bucketName) - if err != nil { - t.Fatal(err) - } - defer bucket.Close() - - dir, err := ioutil.TempDir("", "audit-file") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - dir, err = filepath.EvalSymlinks(dir) - if err != nil { - t.Fatal(err) - } - - ms := mbtest.NewPushMetricSetV2(t, getConfig(dir)) - - go func() { - for _, f := range []string{"FILE.TXT", "FILE.TXT.SWP", "file.txt.swo", ".git/HEAD", ".gitignore"} { - file := filepath.Join(dir, f) - ioutil.WriteFile(file, []byte("hello world"), 0600) - } - }() - - events := mbtest.RunPushMetricSetV2(10*time.Second, 3, ms) - for _, e := range events { - if e.Error != nil { - t.Fatalf("received error: %+v", e.Error) - } - } - - wanted := map[string]bool{ - dir: true, - filepath.Join(dir, "FILE.TXT"): true, - filepath.Join(dir, ".gitignore"): true, - } - if !assert.Len(t, events, len(wanted)) { - return - } - for _, e := range events { - event := e.MetricSetFields - path, err := event.GetValue("file.path") - if assert.NoError(t, err) { - _, ok := wanted[path.(string)] - assert.True(t, ok) - } - } -} - -func setup(t testing.TB) func() { - // path.data should be set so that the DB is written to a predictable location. - var err error - paths.Paths.Data, err = ioutil.TempDir("", "beat-data-dir") - if err != nil { - t.Fatal() - } - return func() { os.RemoveAll(paths.Paths.Data) } -} - -func getConfig(path string) map[string]interface{} { - return map[string]interface{}{ - "module": "file_integrity", - "paths": []string{path}, - "exclude_files": []string{`(?i)\.sw[nop]$`, `[/\\]\.git([/\\]|$)`}, - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/filetree.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/filetree.go index 3a54a40a..fcd9b941 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/filetree.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/filetree.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitor import ( diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/filetree_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/filetree_test.go deleted file mode 100644 index 5f501578..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/filetree_test.go +++ /dev/null @@ -1,221 +0,0 @@ -// +build !integration - -package monitor - -import ( - "errors" - "fmt" - "sort" - "testing" - - "github.com/stretchr/testify/assert" -) - -type visitParams struct { - path string - isDir bool -} - -func init() { - PathSeparator = "/" -} - -func TestVisit(t *testing.T) { - tree := FileTree{} - assertNoError(t, tree.AddFile("/usr/bin/python")) - assertNoError(t, tree.AddFile("/usr/bin/tar")) - assertNoError(t, tree.AddFile("/usr/lib/libz.a")) - assertNoError(t, tree.AddDir("/tmp/")) - - for testIdx, testData := range []struct { - dir string - result []string - isDir []bool - }{ - {"/", - []string{"/", "/tmp", "/usr", "/usr/bin", "/usr/bin/python", "/usr/bin/tar", "/usr/lib", "/usr/lib/libz.a"}, - []bool{true, true, true, true, false, false, true, false}}, - {"/usr", - []string{"/usr", "/usr/bin", "/usr/bin/python", "/usr/bin/tar", "/usr/lib", "/usr/lib/libz.a"}, - []bool{true, true, false, false, true, false}}, - {"/usr/bin", - []string{"/usr/bin", "/usr/bin/python", "/usr/bin/tar"}, - []bool{true, false, false}}, - {"/usr/lib", - []string{"/usr/lib", "/usr/lib/libz.a"}, - []bool{true, false}}, - {"/tmp/", - []string{"/tmp"}, - []bool{true}}, - {"/usr/bin/python", - []string{"/usr/bin/python"}, - []bool{false}}, - } { - for _, order := range []VisitOrder{PreOrder, PostOrder} { - failMsg := fmt.Sprintf("test entry %d for path '%s' order:%v", testIdx, testData.dir, order) - calls := map[string]bool{} - ncalls := 0 - - err := tree.Visit(testData.dir, order, func(path string, isDir bool) error { - calls[path] = isDir - ncalls++ - return nil - }) - assertNoError(t, err) - - assert.Equal(t, len(testData.result), ncalls, failMsg) - assert.Equal(t, len(testData.result), len(calls), failMsg) - keys := make([]string, len(calls)) - flags := make([]bool, len(calls)) - i := 0 - for k := range calls { - keys[i] = k - i++ - } - sort.Strings(keys) - for idx, val := range keys { - flags[idx] = calls[val] - } - assert.Equal(t, testData.result, keys, failMsg) - assert.Equal(t, testData.isDir, flags, failMsg) - } - } -} - -func TestVisitOrder(t *testing.T) { - tree := FileTree{} - assertNoError(t, tree.AddFile("/a/b/file")) - - expected := []visitParams{ - {"/", true}, - {"/a", true}, - {"/a/b", true}, - {"/a/b/file", false}, - } - - for _, order := range []VisitOrder{PreOrder, PostOrder} { - var result []visitParams - err := tree.Visit("/", order, func(path string, isDir bool) error { - result = append(result, visitParams{path, isDir}) - return nil - }) - assertNoError(t, err) - - assert.Equal(t, expected, result) - - for a, b := 0, len(expected)-1; a < b; a++ { - expected[a], expected[b] = expected[b], expected[a] - b-- - } - } -} - -func TestVisitError(t *testing.T) { - tree := FileTree{} - assertNoError(t, tree.AddFile("/foo")) - assert.Error(t, tree.Visit("/bar", PreOrder, func(path string, isDir bool) error { - return nil - })) -} - -func TestVisitCancel(t *testing.T) { - tree := FileTree{} - assertNoError(t, tree.AddFile("/a/b/file")) - - myErr := errors.New("some error") - - for idx, test := range []struct { - order VisitOrder - cancel string - expected []visitParams - }{ - {PreOrder, "/a", []visitParams{ - {"/", true}}}, - {PostOrder, "/a", []visitParams{ - {"/a/b/file", false}, - {"/a/b", true}}}, - {PreOrder, "/a/b/file", []visitParams{ - {"/", true}, - {"/a", true}, - {"/a/b", true}}}, - } { - failMsg := fmt.Sprintf("test at index %d", idx) - var result []visitParams - err := tree.Visit("/", test.order, func(path string, isDir bool) error { - if path == test.cancel { - return myErr - } - result = append(result, visitParams{path, isDir}) - return nil - }) - assert.Equal(t, myErr, err, failMsg) - assert.Equal(t, test.expected, result, failMsg) - } -} - -func TestFilesAsDir(t *testing.T) { - tree := FileTree{} - assertNoError(t, tree.AddFile("/foo")) - assert.Error(t, tree.AddFile("/foo/bar")) - assert.Error(t, tree.Visit("/foo/bar", PreOrder, func(path string, isDir bool) error { - return nil - })) -} - -func TestRemove(t *testing.T) { - tree := FileTree{} - assertNoError(t, tree.AddFile("/usr/bin/python")) - assertNoError(t, tree.AddFile("/usr/bin/tar")) - assertNoError(t, tree.AddFile("/usr/lib/libz.a")) - assertNoError(t, tree.AddDir("/tmp/")) - - assertNoError(t, tree.Remove("/tmp")) - assertNoError(t, tree.Remove("/usr/lib")) - assertNoError(t, tree.Remove("/usr/bin/python")) - - expected := []visitParams{ - {"/", true}, - {"/usr", true}, - {"/usr/bin", true}, - {"/usr/bin/tar", false}, - } - - var result []visitParams - err := tree.Visit("/", PreOrder, func(path string, isDir bool) error { - result = append(result, visitParams{path, isDir}) - return nil - }) - assertNoError(t, err) - assert.Equal(t, expected, result) - - assert.Error(t, tree.Remove("/usr/src/linux")) -} - -func TestAt(t *testing.T) { - tree := FileTree{} - assertNoError(t, tree.AddFile("/usr/bin/python")) - assertNoError(t, tree.AddFile("/usr/bin/tar")) - assertNoError(t, tree.AddFile("/usr/lib/libz.a")) - assertNoError(t, tree.AddDir("/tmp/")) - - expected := []visitParams{ - {"/", true}, - {"/bin", true}, - {"/bin/python", false}, - {"/bin/tar", false}, - {"/lib", true}, - {"/lib/libz.a", false}, - } - - var result []visitParams - subtree, err := tree.At("/usr") - assertNoError(t, err) - err = subtree.Visit("/", PostOrder, func(path string, isDir bool) error { - result = append(result, visitParams{path, isDir}) - return nil - }) - assertNoError(t, err) - - sort.Slice(result, func(i, j int) bool { return result[i].path < result[j].path }) - assert.Equal(t, expected, result) -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/monitor.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/monitor.go index 40b77fa9..63a297a3 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/monitor.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/monitor.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitor import ( diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/monitor_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/monitor_test.go deleted file mode 100644 index 0c4050d5..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/monitor_test.go +++ /dev/null @@ -1,345 +0,0 @@ -// +build !integration - -package monitor - -import ( - "errors" - "io/ioutil" - "os" - "path/filepath" - "runtime" - "testing" - "time" - - "github.com/fsnotify/fsnotify" - "github.com/stretchr/testify/assert" -) - -func TestNonRecursive(t *testing.T) { - dir, err := ioutil.TempDir("", "monitor") - assertNoError(t, err) - // under macOS, temp dir has a symlink in the path (/var -> /private/var) - // and the path returned in events has the symlink resolved - if runtime.GOOS == "darwin" { - if dirAlt, err := filepath.EvalSymlinks(dir); err == nil { - dir = dirAlt - } - } - defer os.RemoveAll(dir) - - watcher, err := New(false) - assertNoError(t, err) - - assertNoError(t, watcher.Add(dir)) - - assertNoError(t, watcher.Start()) - - testDirOps(t, dir, watcher) - - subdir := filepath.Join(dir, "subdir") - os.Mkdir(subdir, 0750) - - ev, err := readTimeout(t, watcher) - assertNoError(t, err) - assert.Equal(t, subdir, ev.Name) - assert.Equal(t, fsnotify.Create, ev.Op) - - // subdirs are not watched - subfile := filepath.Join(subdir, "file.dat") - assertNoError(t, ioutil.WriteFile(subfile, []byte("foo"), 0640)) - - _, err = readTimeout(t, watcher) - assert.Error(t, err) - assert.Equal(t, errReadTimeout, err) - - assertNoError(t, watcher.Close()) -} - -func TestRecursive(t *testing.T) { - if runtime.GOOS == "darwin" { - // This test races on Darwin because internal races in the kqueue - // implementation of fsnotify when a watch is added in response to - // a subdirectory created inside a watched directory. - // This race doesn't affect auditbeat because the file_integrity module - // under Darwin uses fsevents instead of kqueue. - t.Skip("Disabled on Darwin") - } - dir, err := ioutil.TempDir("", "monitor") - assertNoError(t, err) - // under macOS, temp dir has a symlink in the path (/var -> /private/var) - // and the path returned in events has the symlink resolved - if runtime.GOOS == "darwin" { - if dirAlt, err := filepath.EvalSymlinks(dir); err == nil { - dir = dirAlt - } - } - defer os.RemoveAll(dir) - - watcher, err := New(true) - assertNoError(t, err) - - assertNoError(t, watcher.Add(dir)) - - assertNoError(t, watcher.Start()) - - testDirOps(t, dir, watcher) - - subdir := filepath.Join(dir, "subdir") - os.Mkdir(subdir, 0750) - - ev, err := readTimeout(t, watcher) - assertNoError(t, err) - assert.Equal(t, subdir, ev.Name) - assert.Equal(t, fsnotify.Create, ev.Op) - - testDirOps(t, subdir, watcher) - - assertNoError(t, watcher.Close()) -} - -func TestRecursiveNoFollowSymlink(t *testing.T) { - // fsnotify has a bug in darwin were it is following symlinks - // see: https://github.com/fsnotify/fsnotify/issues/227 - if runtime.GOOS == "darwin" { - t.Skip("This test fails under macOS due to a bug in fsnotify") - } - - // Create a watched dir - - dir, err := ioutil.TempDir("", "monitor") - assertNoError(t, err) - // under macOS, temp dir has a symlink in the path (/var -> /private/var) - // and the path returned in events has the symlink resolved - if runtime.GOOS == "darwin" { - if dirAlt, err := filepath.EvalSymlinks(dir); err == nil { - dir = dirAlt - } - } - defer os.RemoveAll(dir) - - // Create a separate dir - - linkedDir, err := ioutil.TempDir("", "linked") - assertNoError(t, err) - defer os.RemoveAll(linkedDir) - - // Add a symbolic link from watched dir to the other - - symLink := filepath.Join(dir, "link") - assertNoError(t, os.Symlink(linkedDir, symLink)) - - // Start the watcher - - watcher, err := New(true) - assertNoError(t, err) - - assertNoError(t, watcher.Add(dir)) - assertNoError(t, watcher.Start()) - - // Create a file in the other dir - - file := filepath.Join(linkedDir, "not.seen") - assertNoError(t, ioutil.WriteFile(file, []byte("hello"), 0640)) - - // No event is received - ev, err := readTimeout(t, watcher) - assert.Equal(t, errReadTimeout, err) - if err == nil { - t.Fatalf("Expected timeout, got event %+v", ev) - } - assertNoError(t, watcher.Close()) -} - -func TestRecursiveSubdirPermissions(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skip("Skipping permissions test on Windows") - } - - // Create dir to be watched - - dir, err := ioutil.TempDir("", "monitor") - assertNoError(t, err) - if runtime.GOOS == "darwin" { - if dirAlt, err := filepath.EvalSymlinks(dir); err == nil { - dir = dirAlt - } - } - defer os.RemoveAll(dir) - - // Create not watched dir - - outDir, err := ioutil.TempDir("", "non-watched") - assertNoError(t, err) - if runtime.GOOS == "darwin" { - if dirAlt, err := filepath.EvalSymlinks(outDir); err == nil { - outDir = dirAlt - } - } - defer os.RemoveAll(outDir) - - // Populate not watched subdir - - for _, name := range []string{"a", "b", "c"} { - path := filepath.Join(outDir, name) - assertNoError(t, os.Mkdir(path, 0755)) - assertNoError(t, ioutil.WriteFile(filepath.Join(path, name), []byte("Hello"), 0644)) - } - - // Make a subdir not accessible - - assertNoError(t, os.Chmod(filepath.Join(outDir, "b"), 0)) - - // Setup watches on watched dir - - watcher, err := New(true) - assertNoError(t, err) - - assertNoError(t, watcher.Add(dir)) - assertNoError(t, watcher.Start()) - defer func() { - assertNoError(t, watcher.Close()) - }() - - // No event is received - - ev, err := readTimeout(t, watcher) - assert.Equal(t, errReadTimeout, err) - if err != errReadTimeout { - t.Fatalf("Expected timeout, got event %+v", ev) - } - - // Move the outside directory into the watched - - dest := filepath.Join(dir, "subdir") - assertNoError(t, os.Rename(outDir, dest)) - - // Receive all events - - var evs []fsnotify.Event - for { - // No event is received - ev, err := readTimeout(t, watcher) - if err == errReadTimeout { - break - } - assertNoError(t, err) - evs = append(evs, ev) - } - - // Verify that events for all accessible files are received - // File "b/b" is missing because a watch to b couldn't be installed - - expected := map[string]fsnotify.Op{ - dest: fsnotify.Create, - filepath.Join(dest, "a"): fsnotify.Create, - filepath.Join(dest, "a/a"): fsnotify.Create, - filepath.Join(dest, "b"): fsnotify.Create, - filepath.Join(dest, "c"): fsnotify.Create, - filepath.Join(dest, "c/c"): fsnotify.Create, - } - assert.Len(t, evs, len(expected)) - for _, ev := range evs { - op, found := expected[ev.Name] - assert.True(t, found, ev.Name) - assert.Equal(t, op, ev.Op) - } -} - -func testDirOps(t *testing.T, dir string, watcher Watcher) { - fpath := filepath.Join(dir, "file.txt") - fpath2 := filepath.Join(dir, "file2.txt") - - // Create - assertNoError(t, ioutil.WriteFile(fpath, []byte("hello"), 0640)) - - ev, err := readTimeout(t, watcher) - assertNoError(t, err) - assert.Equal(t, fpath, ev.Name) - assert.Equal(t, fsnotify.Create, ev.Op) - - // Update - // Repeat the write if no event is received. Under macOS often - // the write fails to generate a write event for non-recursive watcher - for i := 0; i < 3; i++ { - f, err := os.OpenFile(fpath, os.O_RDWR|os.O_APPEND, 0640) - assertNoError(t, err) - f.WriteString(" world\n") - f.Sync() - f.Close() - - ev, err = readTimeout(t, watcher) - if err == nil || err != errReadTimeout { - break - } - } - assertNoError(t, err) - assert.Equal(t, fpath, ev.Name) - assert.Equal(t, fsnotify.Write, ev.Op) - - // Move - err = os.Rename(fpath, fpath2) - assertNoError(t, err) - - evRename, err := readTimeout(t, watcher) - assertNoError(t, err) - // Sometimes a duplicate Write can be received under Linux, skip - if evRename.Op == fsnotify.Write { - evRename, err = readTimeout(t, watcher) - } - evCreate, err := readTimeout(t, watcher) - assertNoError(t, err) - - if evRename.Op != fsnotify.Rename { - evRename, evCreate = evCreate, evRename - } - - assert.Equal(t, fpath, evRename.Name) - assert.Equal(t, fsnotify.Rename, evRename.Op) - - assert.Equal(t, fpath2, evCreate.Name) - assert.Equal(t, fsnotify.Create, evCreate.Op) - - // Delete - err = os.Remove(fpath2) - assertNoError(t, err) - - ev, err = readTimeout(t, watcher) - assertNoError(t, err) - - // Windows: A write to the parent directory sneaks in - if ev.Op == fsnotify.Write && ev.Name == dir { - ev, err = readTimeout(t, watcher) - assertNoError(t, err) - } - assert.Equal(t, fpath2, ev.Name) - assert.Equal(t, fsnotify.Remove, ev.Op) -} - -var errReadTimeout = errors.New("read timeout") - -// helper to read from channel -func readTimeout(tb testing.TB, watcher Watcher) (fsnotify.Event, error) { - timer := time.NewTimer(3 * time.Second) - defer timer.Stop() - for { - select { - case <-timer.C: - return fsnotify.Event{}, errReadTimeout - - case msg, ok := <-watcher.EventChannel(): - if !ok { - return fsnotify.Event{}, errors.New("channel closed") - } - return msg, nil - - case err := <-watcher.ErrorChannel(): - tb.Log("readTimeout got error:", err) - } - } -} - -func assertNoError(t *testing.T, err error) { - if err != nil { - t.Fatal(err) - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/nonrecursive.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/nonrecursive.go index 16df721b..6c886539 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/nonrecursive.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/nonrecursive.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitor import "github.com/fsnotify/fsnotify" diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/recursive.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/recursive.go index 31fc8ab9..2b1f060f 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/recursive.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/monitor/recursive.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitor import ( diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/scanner.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/scanner.go index 41b0b1ff..99fb03c5 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/scanner.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/scanner.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file_integrity import ( diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/scanner_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/scanner_test.go deleted file mode 100644 index 6bf6d9d7..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/scanner_test.go +++ /dev/null @@ -1,137 +0,0 @@ -package file_integrity - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestScanner(t *testing.T) { - dir := setupTestDir(t) - defer os.RemoveAll(dir) - - config := defaultConfig - config.Paths = []string{ - dir, - filepath.Join(dir, "a"), - "/does/not/exist", - } - - t.Run("non-recursive", func(t *testing.T) { - reader, err := NewFileSystemScanner(config) - if err != nil { - t.Fatal(err) - } - - done := make(chan struct{}) - defer close(done) - - eventC, err := reader.Start(done) - if err != nil { - t.Fatal(err) - } - - var events []Event - for event := range eventC { - events = append(events, event) - } - assert.Len(t, events, 7) - }) - - t.Run("recursive", func(t *testing.T) { - c := config - c.Recursive = true - - reader, err := NewFileSystemScanner(c) - if err != nil { - t.Fatal(err) - } - - done := make(chan struct{}) - defer close(done) - - eventC, err := reader.Start(done) - if err != nil { - t.Fatal(err) - } - - var foundRecursivePath bool - - var events []Event - for event := range eventC { - events = append(events, event) - if filepath.Base(event.Path) == "c" { - foundRecursivePath = true - } - } - - assert.Len(t, events, 8) - assert.True(t, foundRecursivePath, "expected subdir/c to be included") - }) - - // This smoke tests the rate limit code path, but does not validate the rate. - t.Run("with rate limit", func(t *testing.T) { - c := config - c.ScanRateBytesPerSec = 1024 * 5 - - reader, err := NewFileSystemScanner(c) - if err != nil { - t.Fatal(err) - } - - done := make(chan struct{}) - defer close(done) - - eventC, err := reader.Start(done) - if err != nil { - t.Fatal(err) - } - - if err != nil { - t.Fatal(err) - } - - var events []Event - for event := range eventC { - events = append(events, event) - } - - assert.Len(t, events, 7) - }) -} - -func setupTestDir(t *testing.T) string { - dir, err := ioutil.TempDir("", "audit-file-scan") - if err != nil { - t.Fatal(err) - } - - if err = ioutil.WriteFile(filepath.Join(dir, "a"), []byte("file a"), 0600); err != nil { - t.Fatal(err) - } - - if err = ioutil.WriteFile(filepath.Join(dir, "b"), []byte("file b"), 0600); err != nil { - t.Fatal(err) - } - - if err = os.Symlink(filepath.Join(dir, "b"), filepath.Join(dir, "link_to_b")); err != nil { - t.Fatal(err) - } - - if err = os.Mkdir(filepath.Join(dir, "subdir"), 0700); err != nil { - t.Fatal(err) - } - - if err = ioutil.WriteFile(filepath.Join(dir, "subdir", "c"), []byte("file c"), 0600); err != nil { - t.Fatal(err) - } - - if err = os.Symlink(filepath.Join(dir, "subdir"), filepath.Join(dir, "link_to_subdir")); err != nil { - t.Fatal(err) - } - - return dir -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema.fbs b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema.fbs index abe66990..b22efd5e 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema.fbs +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema.fbs @@ -57,6 +57,8 @@ table Hash { blake2b_256: [byte]; blake2b_384: [byte]; blake2b_512: [byte]; + + xxh64: [byte]; } table Event { diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Action.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Action.go index 0a819ede..a9c1d487 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Action.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Action.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // automatically generated by the FlatBuffers compiler, do not modify package schema diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Event.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Event.go index b43790d9..adaa3df0 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Event.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // automatically generated by the FlatBuffers compiler, do not modify package schema diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Hash.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Hash.go index b822cc61..4e1a6028 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Hash.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Hash.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // automatically generated by the FlatBuffers compiler, do not modify package schema @@ -281,8 +298,25 @@ func (rcv *Hash) Blake2b512Length() int { return 0 } +func (rcv *Hash) Xx64(j int) int8 { + o := flatbuffers.UOffsetT(rcv._tab.Offset(34)) + if o != 0 { + a := rcv._tab.Vector(o) + return rcv._tab.GetInt8(a + flatbuffers.UOffsetT(j*1)) + } + return 0 +} + +func (rcv *Hash) Xx64Length() int { + o := flatbuffers.UOffsetT(rcv._tab.Offset(34)) + if o != 0 { + return rcv._tab.VectorLen(o) + } + return 0 +} + func HashStart(builder *flatbuffers.Builder) { - builder.StartObject(15) + builder.StartObject(16) } func HashAddMd5(builder *flatbuffers.Builder, md5 flatbuffers.UOffsetT) { builder.PrependUOffsetTSlot(0, flatbuffers.UOffsetT(md5), 0) @@ -374,6 +408,12 @@ func HashAddBlake2b512(builder *flatbuffers.Builder, blake2b512 flatbuffers.UOff func HashStartBlake2b512Vector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { return builder.StartVector(1, numElems, 1) } +func HashAddXx64(builder *flatbuffers.Builder, xx64 flatbuffers.UOffsetT) { + builder.PrependUOffsetTSlot(15, flatbuffers.UOffsetT(xx64), 0) +} +func HashStartXx64Vector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT { + return builder.StartVector(1, numElems, 1) +} func HashEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { return builder.EndObject() } diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Metadata.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Metadata.go index 181bfea8..bce70102 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Metadata.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Metadata.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // automatically generated by the FlatBuffers compiler, do not modify package schema diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Source.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Source.go index fd05e236..19dbe5d6 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Source.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Source.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // automatically generated by the FlatBuffers compiler, do not modify package schema diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Type.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Type.go index fa97b914..35d3e2db 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Type.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/schema/Type.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // automatically generated by the FlatBuffers compiler, do not modify package schema diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/security_windows.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/security_windows.go index bc995bbe..1ce4c86e 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/security_windows.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/security_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file_integrity type SecurityDescriptor struct{} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/security_windows_test.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/security_windows_test.go deleted file mode 100644 index 82896494..00000000 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/security_windows_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package file_integrity - -import ( - "io/ioutil" - "os" - "syscall" - "testing" - "unsafe" - - "github.com/stretchr/testify/assert" -) - -func TestGetSecurityInfo(t *testing.T) { - // Create a temp file that we will use in checking the owner. - file, err := ioutil.TempFile("", "go") - if err != nil { - t.Fatal(err) - } - defer os.Remove(file.Name()) - defer file.Close() - - // Get the file owner. - var securityID *syscall.SID - var securityDescriptor *SecurityDescriptor - if err = GetSecurityInfo(syscall.Handle(file.Fd()), FileObject, - OwnerSecurityInformation, &securityID, nil, nil, nil, &securityDescriptor); err != nil { - t.Fatal(err) - } - - _, err = securityID.String() - assert.NoError(t, err) - _, _, _, err = securityID.LookupAccount("") - assert.NoError(t, err) - - // Freeing the security descriptor releases the memory used by the SID. - _, err = syscall.LocalFree((syscall.Handle)(unsafe.Pointer(securityDescriptor))) - if err != nil { - t.Fatal(err) - } -} diff --git a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/zsecurity_windows.go b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/zsecurity_windows.go index 3bb509c2..b9e4c889 100644 --- a/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/zsecurity_windows.go +++ b/vendor/github.com/elastic/beats/auditbeat/module/file_integrity/zsecurity_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT package file_integrity diff --git a/vendor/github.com/elastic/beats/auditbeat/scripts/generate_config.go b/vendor/github.com/elastic/beats/auditbeat/scripts/generate_config.go index 9d295010..ef8f8292 100644 --- a/vendor/github.com/elastic/beats/auditbeat/scripts/generate_config.go +++ b/vendor/github.com/elastic/beats/auditbeat/scripts/generate_config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( @@ -14,7 +31,7 @@ import ( "github.com/pkg/errors" ) -const defaultGlob = "module/*/_meta/config*.yml.tpl" +const defaultGlob = "module/*/_meta/config*.yml.tmpl" var ( goos = flag.String("os", runtime.GOOS, "generate config specific to the specified operating system") @@ -35,26 +52,29 @@ func findConfigFiles(globs []string) ([]string, error) { return configFiles, nil } +// archBits returns the number of bit width of the GOARCH architecture value. +// This function is used by the auditd module configuration templates to +// generate architecture specific audit rules. +func archBits(goarch string) int { + switch goarch { + case "386", "arm": + return 32 + default: + return 64 + } +} + func getConfig(file string) ([]byte, error) { tpl, err := template.ParseFiles(file) if err != nil { return nil, errors.Wrapf(err, "failed reading %v", file) } - var archBits string - switch *goarch { - case "i386": - archBits = "32" - case "amd64": - archBits = "64" - default: - return nil, fmt.Errorf("supporting only i386 and amd64 architecture") - } data := map[string]interface{}{ - "goarch": *goarch, - "goos": *goos, - "reference": *reference, - "arch_bits": archBits, + "GOARCH": *goarch, + "GOOS": *goos, + "Reference": *reference, + "ArchBits": archBits, } buf := new(bytes.Buffer) if err = tpl.Execute(buf, data); err != nil { @@ -109,7 +129,7 @@ func main() { if *concat { segments = append(segments, segment) } else { - output(segment, strings.TrimSuffix(file, ".tpl")) + output(segment, strings.TrimSuffix(file, ".tmpl")) } } diff --git a/vendor/github.com/elastic/beats/auditbeat/tests/system/test_base.py b/vendor/github.com/elastic/beats/auditbeat/tests/system/test_base.py index d6244e23..d92e34a7 100644 --- a/vendor/github.com/elastic/beats/auditbeat/tests/system/test_base.py +++ b/vendor/github.com/elastic/beats/auditbeat/tests/system/test_base.py @@ -63,7 +63,7 @@ def test_dashboards(self): dirs = [self.temp_dir("auditbeat_test")] with PathCleanup(dirs): - kibana_dir = os.path.join(self.beat_path, "_meta", "kibana") + kibana_dir = os.path.join(self.beat_path, "_meta", "kibana.generated") shutil.copytree(kibana_dir, os.path.join(self.working_dir, "kibana")) es = Elasticsearch([self.get_elasticsearch_url()]) diff --git a/vendor/github.com/elastic/beats/auditbeat/tests/system/test_file_integrity.py b/vendor/github.com/elastic/beats/auditbeat/tests/system/test_file_integrity.py index b5d6631a..60bb090f 100644 --- a/vendor/github.com/elastic/beats/auditbeat/tests/system/test_file_integrity.py +++ b/vendor/github.com/elastic/beats/auditbeat/tests/system/test_file_integrity.py @@ -1,10 +1,5 @@ -import sys -import os -import shutil import time -import unittest from auditbeat import * -from beat.beat import INTEGRATION_TESTS # Escapes a path to match what's printed in the logs diff --git a/vendor/github.com/elastic/beats/auditbeat/tests/system/test_show_command.py b/vendor/github.com/elastic/beats/auditbeat/tests/system/test_show_command.py new file mode 100644 index 00000000..dbe563ca --- /dev/null +++ b/vendor/github.com/elastic/beats/auditbeat/tests/system/test_show_command.py @@ -0,0 +1,126 @@ +import os +import platform +import sys +import tempfile +import unittest +from auditbeat import * + + +def is_root(): + if 'geteuid' not in dir(os): + return False + euid = os.geteuid() + print("euid is", euid) + return euid == 0 + + +# Require Linux greater than 3.10 +# Can't connect to kauditd in 3.10 or older +def is_supported_linux(): + p = platform.platform().split('-') + if p[0] != 'Linux': + return False + kv = p[1].split('.') + if int(kv[0]) < 3 or (int(kv[0]) == 3 and int(kv[1]) <= 10): + return False + return True + + +@unittest.skipUnless(is_supported_linux(), "Requires Linux 3.11+") +class Test(BaseTest): + + def test_show_command(self): + """ + show sub-command is present + Runs auditbeat show --help. The process should terminate with + a successful status if show is recognised. + """ + self.run_beat(extra_args=['show', '--help'], exit_code=0) + + @unittest.skipUnless(is_root(), "Requires root") + def test_show_auditd_rules(self): + """ + show auditd-rules sub-command + Set some rules and read them. + """ + pid = os.getpid() + rules = [ + '-w {0} -p w -k rule0_{1}'.format(os.path.realpath(__file__), pid), + '-a always,exit -S mount -F pid={0} -F key=rule1_{0}'.format(pid), + ] + rules_body = '|\n' + ''.join([' ' + rule + '\n' for rule in rules]) + self.render_config_template( + modules=[{ + "name": "auditd", + "extras": { + "audit_rules": rules_body + } + }] + ) + proc = self.start_beat(extra_args=['-strict.perms=false']) + # auditbeat adds an extra rule to ignore itself + self.wait_log_contains('Successfully added {0} of {0} audit rules.'.format(len(rules) + 1), + max_timeout=30) + proc.kill() + + fd, output_file = tempfile.mkstemp() + self.run_beat(extra_args=['show', 'auditd-rules'], + exit_code=0, + output=output_file) + fhandle = os.fdopen(fd, 'rb') + lines = fhandle.readlines() + fhandle.close() + os.unlink(output_file) + assert len(lines) >= len(rules) + # get rid of automatic rule + if '-F key=rule' not in lines[0]: + del lines[0] + + for i in range(len(rules)): + expected = rules[i] + got = lines[i].strip() + assert expected == got, \ + "rule {0} doesn't match. expected='{1}' got='{2}'".format( + i, expected, got + ) + + @unittest.skipUnless(is_root(), "Requires root") + def test_show_auditd_status(self): + """ + show auditd-status sub-command + """ + expected = [ + 'enabled', + 'failure', + 'pid', + 'rate_limit', + 'backlog_limit', + 'lost', + 'backlog', + 'backlog_wait_time', + 'features', + ] + + fields = dict((f, False) for f in expected) + + fd, output_file = tempfile.mkstemp() + self.run_beat(extra_args=['show', 'auditd-status'], + exit_code=0, + output=output_file) + fhandle = os.fdopen(fd, 'rb') + lines = fhandle.readlines() + fhandle.close() + os.unlink(output_file) + + for line in lines: + if line == "PASS\n": + break + k, v = line.strip().split() + assert k in fields, "Unexpected field '{0}'".format(k) + assert not fields[k], "Field '{0}' repeated".format(k) + n = int(v, 0) + assert n >= 0, "Field '{0}' has negative value {1}".format(k, v) + fields[k] = True + + for (k, v) in fields.iteritems(): + assert v, "Field {0} not found".format(k) diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/.travis/setup.sh b/vendor/github.com/elastic/beats/deploy/kubernetes/.travis/setup.sh index 1e2bb57a..41ba277c 100755 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/.travis/setup.sh +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/.travis/setup.sh @@ -2,6 +2,7 @@ #!/bin/bash set -x +set -e export CHANGE_MINIKUBE_NONE_USER=true @@ -9,7 +10,7 @@ curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$TRAV chmod +x kubectl && sudo mv kubectl /usr/local/bin/ curl -Lo minikube https://storage.googleapis.com/minikube/releases/$TRAVIS_MINIKUBE_VERSION/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ sudo minikube start --vm-driver=none --kubernetes-version=$TRAVIS_K8S_VERSION --logtostderr -minikube update-context +sudo minikube update-context JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; \ until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1; done diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/Makefile b/vendor/github.com/elastic/beats/deploy/kubernetes/Makefile index 10732ea4..722cac15 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/Makefile +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/Makefile @@ -1,4 +1,4 @@ -ALL=filebeat metricbeat +ALL=filebeat metricbeat auditbeat BEAT_VERSION=$(shell head -n 1 ../../libbeat/docs/version.asciidoc | cut -c 17- ) .PHONY: all $(ALL) diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat-kubernetes.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat-kubernetes.yaml new file mode 100644 index 00000000..c1d0ac8b --- /dev/null +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat-kubernetes.yaml @@ -0,0 +1,185 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: auditbeat-config + namespace: kube-system + labels: + k8s-app: auditbeat +data: + auditbeat.yml: |- + auditbeat.config.modules: + # Mounted `auditbeat-daemonset-modules` configmap: + path: ${path.config}/modules.d/*.yml + # Reload module configs as they change: + reload.enabled: false + + processors: + - add_cloud_metadata: + + cloud.id: ${ELASTIC_CLOUD_ID} + cloud.auth: ${ELASTIC_CLOUD_AUTH} + + output.elasticsearch: + hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}'] + username: ${ELASTICSEARCH_USERNAME} + password: ${ELASTICSEARCH_PASSWORD} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: auditbeat-daemonset-modules + namespace: kube-system + labels: + k8s-app: auditbeat +data: + system.yml: |- + - module: file_integrity + paths: + - /hostfs/bin + - /hostfs/usr/bin + - /hostfs/sbin + - /hostfs/usr/sbin + - /hostfs/etc + exclude_files: + - '(?i)\.sw[nop]$' + - '~$' + - '/\.git($|/)' + scan_at_start: true + scan_rate_per_sec: 50 MiB + max_file_size: 100 MiB + hash_types: [sha1] + recursive: true +--- +# Deploy a auditbeat instance per node for node metrics retrieval +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: auditbeat + namespace: kube-system + labels: + k8s-app: auditbeat +spec: + template: + metadata: + labels: + k8s-app: auditbeat + spec: + serviceAccountName: auditbeat + terminationGracePeriodSeconds: 30 + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + containers: + - name: auditbeat + image: docker.elastic.co/beats/auditbeat:6.4.0 + args: [ + "-c", "/etc/auditbeat.yml" + ] + env: + - name: ELASTICSEARCH_HOST + value: elasticsearch + - name: ELASTICSEARCH_PORT + value: "9200" + - name: ELASTICSEARCH_USERNAME + value: elastic + - name: ELASTICSEARCH_PASSWORD + value: changeme + - name: ELASTIC_CLOUD_ID + value: + - name: ELASTIC_CLOUD_AUTH + value: + securityContext: + runAsUser: 0 + resources: + limits: + memory: 200Mi + requests: + cpu: 100m + memory: 100Mi + volumeMounts: + - name: config + mountPath: /etc/auditbeat.yml + readOnly: true + subPath: auditbeat.yml + - name: modules + mountPath: /usr/share/auditbeat/modules.d + readOnly: true + - name: bin + mountPath: /hostfs/bin + readOnly: true + - name: sbin + mountPath: /hostfs/sbin + readOnly: true + - name: usrbin + mountPath: /hostfs/usr/bin + readOnly: true + - name: usrsbin + mountPath: /hostfs/usr/sbin + readOnly: true + - name: etc + mountPath: /hostfs/etc + readOnly: true + volumes: + - name: bin + hostPath: + path: /bin + - name: usrbin + hostPath: + path: /usr/bin + - name: sbin + hostPath: + path: /sbin + - name: usrsbin + hostPath: + path: /usr/sbin + - name: etc + hostPath: + path: /etc + - name: config + configMap: + defaultMode: 0600 + name: auditbeat-config + - name: modules + configMap: + defaultMode: 0600 + name: auditbeat-daemonset-modules + - name: data + hostPath: + path: /var/lib/auditbeat-data + type: DirectoryOrCreate +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: auditbeat +subjects: +- kind: ServiceAccount + name: auditbeat + namespace: kube-system +roleRef: + kind: ClusterRole + name: auditbeat + apiGroup: rbac.authorization.k8s.io +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: auditbeat + labels: + k8s-app: auditbeat +rules: +- apiGroups: [""] + resources: + - nodes + - namespaces + - pods + verbs: ["get", "list", "watch"] +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: auditbeat + namespace: kube-system + labels: + k8s-app: auditbeat +--- diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/README.md b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/README.md new file mode 100644 index 00000000..a0bc0316 --- /dev/null +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/README.md @@ -0,0 +1,31 @@ +# Auditbeat + +## Ship audit information from Kubernetes to Elasticsearch + +### Kubernetes DaemonSet + +By deploying auditbeat as a [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) +we ensure we get a running auditbeat daemon on each node of the cluster. + +Everything is deployed under `kube-system` namespace, you can change that by +updating YAML manifests under this folder. + +### Settings + +We use official [Beats Docker images](https://github.com/elastic/beats-docker), +as they allow external files configuration, a [ConfigMap](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/) +is used for kubernetes specific settings. Check [auditbeat-configmap.yaml](auditbeat-configmap.yaml) +for details. + +Also, [auditbeat-daemonset.yaml](auditbeat-daemonset.yaml) uses a set of environment +variables to configure Elasticsearch output: + +Variable | Default | Description +-------- | ------- | ----------- +ELASTICSEARCH_HOST | elasticsearch | Elasticsearch host +ELASTICSEARCH_PORT | 9200 | Elasticsearch port +ELASTICSEARCH_USERNAME | elastic | Elasticsearch username for HTTP auth +ELASTICSEARCH_PASSWORD | changeme | Elasticsearch password + +If there is an existing `elasticsearch` service in the kubernetes cluster these +defaults will use it. diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-configmap.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-configmap.yaml new file mode 100644 index 00000000..d5589df0 --- /dev/null +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-configmap.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: auditbeat-config + namespace: kube-system + labels: + k8s-app: auditbeat +data: + auditbeat.yml: |- + auditbeat.config.modules: + # Mounted `auditbeat-daemonset-modules` configmap: + path: ${path.config}/modules.d/*.yml + # Reload module configs as they change: + reload.enabled: false + + processors: + - add_cloud_metadata: + + cloud.id: ${ELASTIC_CLOUD_ID} + cloud.auth: ${ELASTIC_CLOUD_AUTH} + + output.elasticsearch: + hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}'] + username: ${ELASTICSEARCH_USERNAME} + password: ${ELASTICSEARCH_PASSWORD} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: auditbeat-daemonset-modules + namespace: kube-system + labels: + k8s-app: auditbeat +data: + system.yml: |- + - module: file_integrity + paths: + - /hostfs/bin + - /hostfs/usr/bin + - /hostfs/sbin + - /hostfs/usr/sbin + - /hostfs/etc + exclude_files: + - '(?i)\.sw[nop]$' + - '~$' + - '/\.git($|/)' + scan_at_start: true + scan_rate_per_sec: 50 MiB + max_file_size: 100 MiB + hash_types: [sha1] + recursive: true diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-daemonset.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-daemonset.yaml new file mode 100644 index 00000000..2a3f19aa --- /dev/null +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-daemonset.yaml @@ -0,0 +1,96 @@ +# Deploy a auditbeat instance per node for node metrics retrieval +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: auditbeat + namespace: kube-system + labels: + k8s-app: auditbeat +spec: + template: + metadata: + labels: + k8s-app: auditbeat + spec: + serviceAccountName: auditbeat + terminationGracePeriodSeconds: 30 + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + containers: + - name: auditbeat + image: docker.elastic.co/beats/auditbeat:%VERSION% + args: [ + "-c", "/etc/auditbeat.yml" + ] + env: + - name: ELASTICSEARCH_HOST + value: elasticsearch + - name: ELASTICSEARCH_PORT + value: "9200" + - name: ELASTICSEARCH_USERNAME + value: elastic + - name: ELASTICSEARCH_PASSWORD + value: changeme + - name: ELASTIC_CLOUD_ID + value: + - name: ELASTIC_CLOUD_AUTH + value: + securityContext: + runAsUser: 0 + resources: + limits: + memory: 200Mi + requests: + cpu: 100m + memory: 100Mi + volumeMounts: + - name: config + mountPath: /etc/auditbeat.yml + readOnly: true + subPath: auditbeat.yml + - name: modules + mountPath: /usr/share/auditbeat/modules.d + readOnly: true + - name: bin + mountPath: /hostfs/bin + readOnly: true + - name: sbin + mountPath: /hostfs/sbin + readOnly: true + - name: usrbin + mountPath: /hostfs/usr/bin + readOnly: true + - name: usrsbin + mountPath: /hostfs/usr/sbin + readOnly: true + - name: etc + mountPath: /hostfs/etc + readOnly: true + volumes: + - name: bin + hostPath: + path: /bin + - name: usrbin + hostPath: + path: /usr/bin + - name: sbin + hostPath: + path: /sbin + - name: usrsbin + hostPath: + path: /usr/sbin + - name: etc + hostPath: + path: /etc + - name: config + configMap: + defaultMode: 0600 + name: auditbeat-config + - name: modules + configMap: + defaultMode: 0600 + name: auditbeat-daemonset-modules + - name: data + hostPath: + path: /var/lib/auditbeat-data + type: DirectoryOrCreate diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-role-binding.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-role-binding.yaml new file mode 100644 index 00000000..dec98a5f --- /dev/null +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-role-binding.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + name: auditbeat +subjects: +- kind: ServiceAccount + name: auditbeat + namespace: kube-system +roleRef: + kind: ClusterRole + name: auditbeat + apiGroup: rbac.authorization.k8s.io diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-role.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-role.yaml new file mode 100644 index 00000000..ae6d32f4 --- /dev/null +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-role.yaml @@ -0,0 +1,13 @@ +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + name: auditbeat + labels: + k8s-app: auditbeat +rules: +- apiGroups: [""] + resources: + - nodes + - namespaces + - pods + verbs: ["get", "list", "watch"] diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-service-account.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-service-account.yaml new file mode 100644 index 00000000..641f4ddd --- /dev/null +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/auditbeat/auditbeat-service-account.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: auditbeat + namespace: kube-system + labels: + k8s-app: auditbeat diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat-kubernetes.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat-kubernetes.yaml index 91887eb3..5f04e1eb 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat-kubernetes.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat-kubernetes.yaml @@ -19,6 +19,12 @@ data: # Reload module configs as they change: reload.enabled: false + # To enable hints based autodiscover, remove `filebeat.config.inputs` configuration and uncomment this: + #filebeat.autodiscover: + # providers: + # - type: kubernetes + # hints.enabled: true + processors: - add_cloud_metadata: @@ -63,7 +69,7 @@ spec: terminationGracePeriodSeconds: 30 containers: - name: filebeat - image: docker.elastic.co/beats/filebeat:7.0.0-alpha1 + image: docker.elastic.co/beats/filebeat:6.4.0 args: [ "-c", "/etc/filebeat.yml", "-e", @@ -114,11 +120,11 @@ spec: configMap: defaultMode: 0600 name: filebeat-inputs - # We set an `emptyDir` here to ensure the manifest will deploy correctly. - # It's recommended to change this to a `hostPath` folder, to ensure internal data - # files survive pod changes (ie: version upgrade) + # data folder stores a registry of read status for all files, so we don't send everything again on a Filebeat pod restart - name: data - emptyDir: {} + hostPath: + path: /var/lib/filebeat-data + type: DirectoryOrCreate --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-configmap.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-configmap.yaml index ca1d0329..0b7f3dd5 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-configmap.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-configmap.yaml @@ -19,6 +19,12 @@ data: # Reload module configs as they change: reload.enabled: false + # To enable hints based autodiscover, remove `filebeat.config.inputs` configuration and uncomment this: + #filebeat.autodiscover: + # providers: + # - type: kubernetes + # hints.enabled: true + processors: - add_cloud_metadata: diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-daemonset.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-daemonset.yaml index a04fceea..82a90a35 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-daemonset.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/filebeat/filebeat-daemonset.yaml @@ -66,8 +66,8 @@ spec: configMap: defaultMode: 0600 name: filebeat-inputs - # We set an `emptyDir` here to ensure the manifest will deploy correctly. - # It's recommended to change this to a `hostPath` folder, to ensure internal data - # files survive pod changes (ie: version upgrade) + # data folder stores a registry of read status for all files, so we don't send everything again on a Filebeat pod restart - name: data - emptyDir: {} + hostPath: + path: /var/lib/filebeat-data + type: DirectoryOrCreate diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat-kubernetes.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat-kubernetes.yaml index a6700373..767d8fcf 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat-kubernetes.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat-kubernetes.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: metricbeat-config + name: metricbeat-daemonset-config namespace: kube-system labels: k8s-app: metricbeat @@ -14,6 +14,13 @@ data: # Reload module configs as they change: reload.enabled: false + # To enable hints based autodiscover uncomment this: + #metricbeat.autodiscover: + # providers: + # - type: kubernetes + # host: ${NODE_NAME} + # hints.enabled: true + processors: - add_cloud_metadata: @@ -68,6 +75,7 @@ data: - container - volume period: 10s + host: ${NODE_NAME} hosts: ["localhost:10255"] --- # Deploy a Metricbeat instance per node for node metrics retrieval @@ -90,7 +98,7 @@ spec: dnsPolicy: ClusterFirstWithHostNet containers: - name: metricbeat - image: docker.elastic.co/beats/metricbeat:7.0.0-alpha1 + image: docker.elastic.co/beats/metricbeat:6.4.0 args: [ "-c", "/etc/metricbeat.yml", "-e", @@ -109,10 +117,10 @@ spec: value: - name: ELASTIC_CLOUD_AUTH value: - - name: POD_NAMESPACE + - name: NODE_NAME valueFrom: fieldRef: - fieldPath: metadata.namespace + fieldPath: spec.nodeName securityContext: runAsUser: 0 resources: @@ -150,16 +158,41 @@ spec: - name: config configMap: defaultMode: 0600 - name: metricbeat-config + name: metricbeat-daemonset-config - name: modules configMap: defaultMode: 0600 name: metricbeat-daemonset-modules - # We set an `emptyDir` here to ensure the manifest will deploy correctly. - # It's recommended to change this to a `hostPath` folder, to ensure internal data - # files survive pod changes (ie: version upgrade) - name: data - emptyDir: {} + hostPath: + path: /var/lib/metricbeat-data + type: DirectoryOrCreate +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: metricbeat-deployment-config + namespace: kube-system + labels: + k8s-app: metricbeat +data: + metricbeat.yml: |- + metricbeat.config.modules: + # Mounted `metricbeat-daemonset-modules` configmap: + path: ${path.config}/modules.d/*.yml + # Reload module configs as they change: + reload.enabled: false + + processors: + - add_cloud_metadata: + + cloud.id: ${ELASTIC_CLOUD_ID} + cloud.auth: ${ELASTIC_CLOUD_AUTH} + + output.elasticsearch: + hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}'] + username: ${ELASTICSEARCH_USERNAME} + password: ${ELASTICSEARCH_PASSWORD} --- apiVersion: v1 kind: ConfigMap @@ -181,6 +214,7 @@ data: # Uncomment this to get k8s events: #- event period: 10s + host: ${NODE_NAME} hosts: ["kube-state-metrics:8080"] --- # Deploy singleton instance in the whole cluster for some unique data sources, like kube-state-metrics @@ -198,9 +232,11 @@ spec: k8s-app: metricbeat spec: serviceAccountName: metricbeat + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet containers: - name: metricbeat - image: docker.elastic.co/beats/metricbeat:7.0.0-alpha1 + image: docker.elastic.co/beats/metricbeat:6.4.0 args: [ "-c", "/etc/metricbeat.yml", "-e", @@ -218,10 +254,10 @@ spec: value: - name: ELASTIC_CLOUD_AUTH value: - - name: POD_NAMESPACE + - name: NODE_NAME valueFrom: fieldRef: - fieldPath: metadata.namespace + fieldPath: spec.nodeName securityContext: runAsUser: 0 resources: @@ -242,7 +278,7 @@ spec: - name: config configMap: defaultMode: 0600 - name: metricbeat-config + name: metricbeat-deployment-config - name: modules configMap: defaultMode: 0600 @@ -268,15 +304,22 @@ metadata: labels: k8s-app: metricbeat rules: -- apiGroups: [""] # "" indicates the core API group +- apiGroups: [""] resources: + - nodes - namespaces - events - pods - verbs: - - get - - watch - - list + verbs: ["get", "list", "watch"] +- apiGroups: ["extensions"] + resources: + - replicasets + verbs: ["get", "list", "watch"] +- apiGroups: ["apps"] + resources: + - statefulsets + - deployments + verbs: ["get", "list", "watch"] --- apiVersion: v1 kind: ServiceAccount diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset-configmap.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset-configmap.yaml index 1af92f4b..d7270c83 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset-configmap.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset-configmap.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: metricbeat-config + name: metricbeat-daemonset-config namespace: kube-system labels: k8s-app: metricbeat @@ -14,6 +14,13 @@ data: # Reload module configs as they change: reload.enabled: false + # To enable hints based autodiscover uncomment this: + #metricbeat.autodiscover: + # providers: + # - type: kubernetes + # host: ${NODE_NAME} + # hints.enabled: true + processors: - add_cloud_metadata: @@ -68,4 +75,5 @@ data: - container - volume period: 10s + host: ${NODE_NAME} hosts: ["localhost:10255"] diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset.yaml index 34301262..6335a73f 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-daemonset.yaml @@ -37,10 +37,10 @@ spec: value: - name: ELASTIC_CLOUD_AUTH value: - - name: POD_NAMESPACE + - name: NODE_NAME valueFrom: fieldRef: - fieldPath: metadata.namespace + fieldPath: spec.nodeName securityContext: runAsUser: 0 resources: @@ -78,13 +78,12 @@ spec: - name: config configMap: defaultMode: 0600 - name: metricbeat-config + name: metricbeat-daemonset-config - name: modules configMap: defaultMode: 0600 name: metricbeat-daemonset-modules - # We set an `emptyDir` here to ensure the manifest will deploy correctly. - # It's recommended to change this to a `hostPath` folder, to ensure internal data - # files survive pod changes (ie: version upgrade) - name: data - emptyDir: {} + hostPath: + path: /var/lib/metricbeat-data + type: DirectoryOrCreate diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment-configmap.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment-configmap.yaml index eb0f672e..62cbd79f 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment-configmap.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment-configmap.yaml @@ -1,5 +1,31 @@ apiVersion: v1 kind: ConfigMap +metadata: + name: metricbeat-deployment-config + namespace: kube-system + labels: + k8s-app: metricbeat +data: + metricbeat.yml: |- + metricbeat.config.modules: + # Mounted `metricbeat-daemonset-modules` configmap: + path: ${path.config}/modules.d/*.yml + # Reload module configs as they change: + reload.enabled: false + + processors: + - add_cloud_metadata: + + cloud.id: ${ELASTIC_CLOUD_ID} + cloud.auth: ${ELASTIC_CLOUD_AUTH} + + output.elasticsearch: + hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}'] + username: ${ELASTICSEARCH_USERNAME} + password: ${ELASTICSEARCH_PASSWORD} +--- +apiVersion: v1 +kind: ConfigMap metadata: name: metricbeat-deployment-modules namespace: kube-system @@ -18,4 +44,5 @@ data: # Uncomment this to get k8s events: #- event period: 10s + host: ${NODE_NAME} hosts: ["kube-state-metrics:8080"] diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment.yaml index 6601cdc8..fec95a83 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-deployment.yaml @@ -13,6 +13,8 @@ spec: k8s-app: metricbeat spec: serviceAccountName: metricbeat + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet containers: - name: metricbeat image: docker.elastic.co/beats/metricbeat:%VERSION% @@ -33,10 +35,10 @@ spec: value: - name: ELASTIC_CLOUD_AUTH value: - - name: POD_NAMESPACE + - name: NODE_NAME valueFrom: fieldRef: - fieldPath: metadata.namespace + fieldPath: spec.nodeName securityContext: runAsUser: 0 resources: @@ -57,7 +59,7 @@ spec: - name: config configMap: defaultMode: 0600 - name: metricbeat-config + name: metricbeat-deployment-config - name: modules configMap: defaultMode: 0600 diff --git a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-role.yaml b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-role.yaml index ebc9039c..d295927a 100644 --- a/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-role.yaml +++ b/vendor/github.com/elastic/beats/deploy/kubernetes/metricbeat/metricbeat-role.yaml @@ -5,12 +5,19 @@ metadata: labels: k8s-app: metricbeat rules: -- apiGroups: [""] # "" indicates the core API group +- apiGroups: [""] resources: + - nodes - namespaces - events - pods - verbs: - - get - - watch - - list + verbs: ["get", "list", "watch"] +- apiGroups: ["extensions"] + resources: + - replicasets + verbs: ["get", "list", "watch"] +- apiGroups: ["apps"] + resources: + - statefulsets + - deployments + verbs: ["get", "list", "watch"] diff --git a/vendor/github.com/elastic/beats/dev-tools/.beatconfig b/vendor/github.com/elastic/beats/dev-tools/.beatconfig deleted file mode 100644 index 6821aff8..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/.beatconfig +++ /dev/null @@ -1,4 +0,0 @@ -packetbeat-/packetbeat- -filebeat-/filebeat- -winlogonbeat-/winlogonbeat- -logstash-/logstash- diff --git a/vendor/github.com/elastic/beats/dev-tools/.gitignore b/vendor/github.com/elastic/beats/dev-tools/.gitignore new file mode 100644 index 00000000..378eac25 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/.gitignore @@ -0,0 +1 @@ +build diff --git a/vendor/github.com/elastic/beats/dev-tools/Makefile b/vendor/github.com/elastic/beats/dev-tools/Makefile new file mode 100644 index 00000000..32eeda92 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/Makefile @@ -0,0 +1,4 @@ +ES_BEATS?=.. + +# Path to the libbeat Makefile +include ${ES_BEATS}/libbeat/scripts/Makefile diff --git a/vendor/github.com/elastic/beats/dev-tools/cmd/asset/asset.go b/vendor/github.com/elastic/beats/dev-tools/cmd/asset/asset.go index 4a08fa6d..12da7708 100644 --- a/vendor/github.com/elastic/beats/dev-tools/cmd/asset/asset.go +++ b/vendor/github.com/elastic/beats/dev-tools/cmd/asset/asset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build ignore package main @@ -9,7 +26,6 @@ import ( "go/format" "io/ioutil" "os" - "text/template" "github.com/elastic/beats/libbeat/asset" ) @@ -20,34 +36,6 @@ func init() { pkg = flag.String("pkg", "", "Package name") } -var tpl = template.Must(template.New("normalizations").Parse(` -// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. - -package {{ .Package }} - -import ( - "github.com/elastic/beats/libbeat/asset" -) - -func init() { - if err := asset.SetFields("{{ .Name }}", Asset); err != nil { - panic(err) - } -} - -// Asset returns asset data -func Asset() string { - return "{{ .Data }}" -} - -`)) - -type assetData struct { - Name string - Data string - Package string -} - func main() { flag.Parse() @@ -73,8 +61,9 @@ func main() { } var buf bytes.Buffer - tpl.Execute(&buf, assetData{ - Name: beatName + "/" + file, + asset.Template.Execute(&buf, asset.Data{ + Beat: beatName, + Name: file, Data: encData, Package: *pkg, }) diff --git a/vendor/github.com/elastic/beats/dev-tools/cmd/dashboards/export_dashboards.go b/vendor/github.com/elastic/beats/dev-tools/cmd/dashboards/export_dashboards.go index 7d8121fc..ef5dc2b1 100644 --- a/vendor/github.com/elastic/beats/dev-tools/cmd/dashboards/export_dashboards.go +++ b/vendor/github.com/elastic/beats/dev-tools/cmd/dashboards/export_dashboards.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/dev-tools/cmd/kibana_index_pattern/kibana_index_pattern.go b/vendor/github.com/elastic/beats/dev-tools/cmd/kibana_index_pattern/kibana_index_pattern.go index 373e63bc..9841a4f6 100644 --- a/vendor/github.com/elastic/beats/dev-tools/cmd/kibana_index_pattern/kibana_index_pattern.go +++ b/vendor/github.com/elastic/beats/dev-tools/cmd/kibana_index_pattern/kibana_index_pattern.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/dev-tools/common.bash b/vendor/github.com/elastic/beats/dev-tools/common.bash index 048c835f..cb8a8d5c 100644 --- a/vendor/github.com/elastic/beats/dev-tools/common.bash +++ b/vendor/github.com/elastic/beats/dev-tools/common.bash @@ -91,4 +91,8 @@ jenkins_setup() { # Workaround for Python virtualenv path being too long. export TEMP_PYTHON_ENV=$(mktemp -d) export PYTHON_ENV="${TEMP_PYTHON_ENV}/python-env" + + # Write cached magefile binaries to workspace to ensure + # each run starts from a clean slate. + export MAGEFILE_CACHE="${WORKSPACE}/.magefile" } diff --git a/vendor/github.com/elastic/beats/dev-tools/deploy b/vendor/github.com/elastic/beats/dev-tools/deploy index 812a0034..2b0de52e 100755 --- a/vendor/github.com/elastic/beats/dev-tools/deploy +++ b/vendor/github.com/elastic/beats/dev-tools/deploy @@ -16,9 +16,9 @@ def main(): check_call("make clean", shell=True) print("Done building Docker images.") if args.no_snapshot: - check_call("make SNAPSHOT=no package-all", shell=True) + check_call("make release", shell=True) else: - check_call("make SNAPSHOT=yes package-all", shell=True) + check_call("make snapshot", shell=True) print("All done") if __name__ == "__main__": diff --git a/vendor/github.com/elastic/beats/dev-tools/jenkins_ci.ps1 b/vendor/github.com/elastic/beats/dev-tools/jenkins_ci.ps1 index 4db34c03..39abe9fa 100755 --- a/vendor/github.com/elastic/beats/dev-tools/jenkins_ci.ps1 +++ b/vendor/github.com/elastic/beats/dev-tools/jenkins_ci.ps1 @@ -17,6 +17,18 @@ $env:GOPATH = $env:WORKSPACE $env:PATH = "$env:GOPATH\bin;C:\tools\mingw64\bin;$env:PATH" & gvm --format=powershell $(Get-Content .go-version) | Invoke-Expression +# Write cached magefile binaries to workspace to ensure +# each run starts from a clean slate. +$env:MAGEFILE_CACHE = "$env:WORKSPACE\.magefile" + +exec { go install github.com/elastic/beats/vendor/github.com/magefile/mage } +exec { go get -u github.com/jstemmer/go-junit-report } + +echo "Building libbeat fields.yml" +cd libbeat +exec { mage fields } +cd .. + if (Test-Path "$env:beat") { cd "$env:beat" } else { @@ -31,20 +43,11 @@ New-Item -ItemType directory -Path build\coverage | Out-Null New-Item -ItemType directory -Path build\system-tests | Out-Null New-Item -ItemType directory -Path build\system-tests\run | Out-Null -exec { go get -u github.com/jstemmer/go-junit-report } +echo "Building fields.yml" +exec { mage fields } echo "Building $env:beat" -exec { go build } "Build FAILURE" - -# always build the libbeat fields -cp ..\libbeat\_meta\fields.common.yml ..\libbeat\_meta\fields.generated.yml -cat ..\libbeat\processors\*\_meta\fields.yml | Out-File -append -encoding UTF8 -filepath ..\libbeat\_meta\fields.generated.yml -cp ..\libbeat\_meta\fields.generated.yml ..\libbeat\fields.yml - -if ($env:beat -eq "metricbeat") { - cp .\_meta\fields.common.yml .\_meta\fields.generated.yml - python .\scripts\fields_collector.py | out-file -append -encoding UTF8 -filepath .\_meta\fields.generated.yml -} +exec { mage build } "Build FAILURE" echo "Unit testing $env:beat" go test -v $(go list ./... | select-string -Pattern "vendor" -NotMatch) 2>&1 | Out-File -encoding UTF8 build/TEST-go-unit.out diff --git a/vendor/github.com/elastic/beats/dev-tools/jenkins_release.sh b/vendor/github.com/elastic/beats/dev-tools/jenkins_release.sh new file mode 100755 index 00000000..f3d21fd6 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/jenkins_release.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -euox pipefail + +: "${HOME:?Need to set HOME to a non-empty value.}" +: "${WORKSPACE:?Need to set WORKSPACE to a non-empty value.}" + +source $(dirname "$0")/common.bash + +jenkins_setup + +cleanup() { + echo "Running cleanup..." + rm -rf $TEMP_PYTHON_ENV + echo "Cleanup complete." +} +trap cleanup EXIT + +make release diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/.gitignore b/vendor/github.com/elastic/beats/dev-tools/mage/.gitignore new file mode 100644 index 00000000..378eac25 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/.gitignore @@ -0,0 +1 @@ +build diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/build.go b/vendor/github.com/elastic/beats/dev-tools/mage/build.go new file mode 100644 index 00000000..86bd4209 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/build.go @@ -0,0 +1,144 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "fmt" + "go/build" + "log" + "os" + "path/filepath" + "strings" + + "github.com/magefile/mage/sh" + "github.com/pkg/errors" +) + +// BuildArgs are the arguments used for the "build" target and they define how +// "go build" is invoked. +type BuildArgs struct { + Name string // Name of binary. (On Windows '.exe' is appended.) + OutputDir string + CGO bool + Static bool + Env map[string]string + LDFlags []string + Vars map[string]string // Vars that are passed as -X key=value with the ldflags. + ExtraFlags []string +} + +// DefaultBuildArgs returns the default BuildArgs for use in builds. +func DefaultBuildArgs() BuildArgs { + args := BuildArgs{ + Name: BeatName, + CGO: build.Default.CgoEnabled, + Vars: map[string]string{ + "github.com/elastic/beats/libbeat/version.buildTime": "{{ date }}", + "github.com/elastic/beats/libbeat/version.commit": "{{ commit }}", + }, + } + + repo, err := GetProjectRepoInfo() + if err != nil { + panic(errors.Wrap(err, "failed to determine project repo info")) + } + + if !repo.IsElasticBeats() { + // Assume libbeat is vendored and prefix the variables. + prefix := repo.RootImportPath + "/vendor/" + prefixedVars := map[string]string{} + for k, v := range args.Vars { + prefixedVars[prefix+k] = v + } + args.Vars = prefixedVars + } + + return args +} + +// DefaultGolangCrossBuildArgs returns the default BuildArgs for use in +// cross-builds. +func DefaultGolangCrossBuildArgs() BuildArgs { + args := DefaultBuildArgs() + args.Name += "-" + Platform.GOOS + "-" + Platform.Arch + args.OutputDir = filepath.Join("build", "golang-crossbuild") + if bp, found := BuildPlatforms.Get(Platform.Name); found { + args.CGO = bp.Flags.SupportsCGO() + } + return args +} + +// GolangCrossBuild invokes "go build" inside of the golang-crossbuild Docker +// environment. +func GolangCrossBuild(params BuildArgs) error { + if os.Getenv("GOLANG_CROSSBUILD") != "1" { + return errors.New("Use the crossBuild target. golangCrossBuild can " + + "only be executed within the golang-crossbuild docker environment.") + } + + defer DockerChown(filepath.Join(params.OutputDir, params.Name+binaryExtension(GOOS))) + return Build(params) +} + +// Build invokes "go build" to produce a binary. +func Build(params BuildArgs) error { + fmt.Println(">> build: Building", params.Name) + + binaryName := params.Name + binaryExtension(GOOS) + + if params.OutputDir != "" { + if err := os.MkdirAll(params.OutputDir, 0755); err != nil { + return err + } + } + + // Environment + env := params.Env + if env == nil { + env = map[string]string{} + } + cgoEnabled := "0" + if params.CGO { + cgoEnabled = "1" + } + env["CGO_ENABLED"] = cgoEnabled + + // Spec + args := []string{ + "build", + "-o", + filepath.Join(params.OutputDir, binaryName), + } + args = append(args, params.ExtraFlags...) + + // ldflags + ldflags := params.LDFlags + if params.Static { + ldflags = append(ldflags, `-extldflags '-static'`) + } + for k, v := range params.Vars { + ldflags = append(ldflags, fmt.Sprintf("-X %v=%v", k, v)) + } + if len(ldflags) > 0 { + args = append(args, "-ldflags") + args = append(args, MustExpand(strings.Join(ldflags, " "))) + } + + log.Println("Adding build environment vars:", env) + return sh.RunWith(env, "go", args...) +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/clean.go b/vendor/github.com/elastic/beats/dev-tools/mage/clean.go new file mode 100644 index 00000000..912d372e --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/clean.go @@ -0,0 +1,54 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "github.com/magefile/mage/sh" +) + +// DefaultCleanPaths specifies a list of files or paths to recursively delete. +// The values may contain variables and will be expanded at the time of use. +var DefaultCleanPaths = []string{ + "build", + "docker-compose.yml.lock", + "{{.BeatName}}", + "{{.BeatName}}.exe", + "{{.BeatName}}.test", + "{{.BeatName}}.test.exe", + "fields.yml", + "_meta/fields.generated.yml", + "_meta/kibana.generated", + "_meta/kibana/5/index-pattern/{{.BeatName}}.json", + "_meta/kibana/6/index-pattern/{{.BeatName}}.json", +} + +// Clean clean generated build artifacts. +func Clean(pathLists ...[]string) error { + if len(pathLists) == 0 { + pathLists = [][]string{DefaultCleanPaths} + } + for _, paths := range pathLists { + for _, f := range paths { + f = MustExpand(f) + if err := sh.Rm(f); err != nil { + return err + } + } + } + return nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/common.go b/vendor/github.com/elastic/beats/dev-tools/mage/common.go new file mode 100644 index 00000000..968dbcdf --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/common.go @@ -0,0 +1,666 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "archive/tar" + "archive/zip" + "bufio" + "bytes" + "compress/gzip" + "context" + "crypto/sha256" + "crypto/sha512" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "log" + "net/http" + "os" + "os/exec" + "path/filepath" + "regexp" + "runtime" + "strconv" + "strings" + "sync" + "text/template" + "time" + "unicode" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/magefile/mage/target" + "github.com/magefile/mage/types" + "github.com/pkg/errors" +) + +// Expand expands the given Go text/template string. +func Expand(in string, args ...map[string]interface{}) (string, error) { + return expandTemplate("inline", in, FuncMap, EnvMap(args...)) +} + +// MustExpand expands the given Go text/template string. It panics if there is +// an error. +func MustExpand(in string, args ...map[string]interface{}) string { + out, err := Expand(in, args...) + if err != nil { + panic(err) + } + return out +} + +// ExpandFile expands the Go text/template read from src and writes the output +// to dst. +func ExpandFile(src, dst string, args ...map[string]interface{}) error { + return expandFile(src, dst, EnvMap(args...)) +} + +// MustExpandFile expands the Go text/template read from src and writes the +// output to dst. It panics if there is an error. +func MustExpandFile(src, dst string, args ...map[string]interface{}) { + if err := ExpandFile(src, dst, args...); err != nil { + panic(err) + } +} + +func expandTemplate(name, tmpl string, funcs template.FuncMap, args ...map[string]interface{}) (string, error) { + t := template.New(name).Option("missingkey=error") + if len(funcs) > 0 { + t = t.Funcs(funcs) + } + + t, err := t.Parse(tmpl) + if err != nil { + if name == "inline" { + return "", errors.Wrapf(err, "failed to parse template '%v'", tmpl) + } + return "", errors.Wrap(err, "failed to parse template") + } + + buf := new(bytes.Buffer) + if err := t.Execute(buf, joinMaps(args...)); err != nil { + if name == "inline" { + return "", errors.Wrapf(err, "failed to expand template '%v'", tmpl) + } + return "", errors.Wrap(err, "failed to expand template") + } + + return buf.String(), nil +} + +func joinMaps(args ...map[string]interface{}) map[string]interface{} { + switch len(args) { + case 0: + return nil + case 1: + return args[0] + } + + var out map[string]interface{} + for _, m := range args { + for k, v := range m { + out[k] = v + } + } + return out +} + +func expandFile(src, dst string, args ...map[string]interface{}) error { + tmplData, err := ioutil.ReadFile(src) + if err != nil { + return errors.Wrapf(err, "failed reading from template %v", src) + } + + output, err := expandTemplate(src, string(tmplData), FuncMap, args...) + if err != nil { + return err + } + + dst, err = expandTemplate("inline", dst, FuncMap, args...) + if err != nil { + return err + } + + if err = ioutil.WriteFile(createDir(dst), []byte(output), 0644); err != nil { + return errors.Wrap(err, "failed to write rendered template") + } + + return nil +} + +// CWD return the current working directory. +func CWD() string { + wd, err := os.Getwd() + if err != nil { + panic(errors.Wrap(err, "failed to get the CWD")) + } + return wd +} + +// EnvOr returns the value of the specified environment variable if it is +// non-empty. Otherwise it return def. +func EnvOr(name, def string) string { + s := os.Getenv(name) + if s == "" { + return def + } + return s +} + +var ( + dockerInfoValue *DockerInfo + dockerInfoErr error + dockerInfoOnce sync.Once +) + +// DockerInfo contains information about the docker daemon. +type DockerInfo struct { + OperatingSystem string `json:"OperatingSystem"` + Labels []string `json:"Labels"` + NCPU int `json:"NCPU"` + MemTotal int `json:"MemTotal"` +} + +// IsBoot2Docker returns true if the Docker OS is boot2docker. +func (info *DockerInfo) IsBoot2Docker() bool { + return strings.Contains(strings.ToLower(info.OperatingSystem), "boot2docker") +} + +// HaveDocker returns an error if docker is unavailable. +func HaveDocker() error { + if _, err := GetDockerInfo(); err != nil { + return errors.Wrap(err, "docker is not available") + } + return nil +} + +// GetDockerInfo returns data from the docker info command. +func GetDockerInfo() (*DockerInfo, error) { + dockerInfoOnce.Do(func() { + dockerInfoValue, dockerInfoErr = dockerInfo() + }) + + return dockerInfoValue, dockerInfoErr +} + +func dockerInfo() (*DockerInfo, error) { + data, err := sh.Output("docker", "info", "-f", "{{ json .}}") + if err != nil { + return nil, err + } + + var info DockerInfo + if err = json.Unmarshal([]byte(data), &info); err != nil { + return nil, err + } + + return &info, nil +} + +// FindReplace reads a file, performs a find/replace operation, then writes the +// output to the same file path. +func FindReplace(file string, re *regexp.Regexp, repl string) error { + info, err := os.Stat(file) + if err != nil { + return err + } + + contents, err := ioutil.ReadFile(file) + if err != nil { + return err + } + + out := re.ReplaceAllString(string(contents), repl) + return ioutil.WriteFile(file, []byte(out), info.Mode().Perm()) +} + +// MustFindReplace invokes FindReplace and panics if an error occurs. +func MustFindReplace(file string, re *regexp.Regexp, repl string) { + if err := FindReplace(file, re, repl); err != nil { + panic(errors.Wrap(err, "failed to find and replace")) + } +} + +// DownloadFile downloads the given URL and writes the file to destinationDir. +// The path to the file is returned. +func DownloadFile(url, destinationDir string) (string, error) { + log.Println("Downloading", url) + + resp, err := http.Get(url) + if err != nil { + return "", errors.Wrap(err, "http get failed") + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return "", errors.Errorf("download failed with http status: %v", resp.StatusCode) + } + + name := filepath.Join(destinationDir, filepath.Base(url)) + f, err := os.Create(createDir(name)) + if err != nil { + return "", errors.Wrap(err, "failed to create output file") + } + defer f.Close() + + if _, err = io.Copy(f, resp.Body); err != nil { + return "", errors.Wrap(err, "failed to write file") + } + + return name, f.Close() +} + +// Extract extracts .zip, .tar.gz, or .tgz files to destinationDir. +func Extract(sourceFile, destinationDir string) error { + ext := filepath.Ext(sourceFile) + switch { + case strings.HasSuffix(sourceFile, ".tar.gz"), ext == ".tgz": + return untar(sourceFile, destinationDir) + case ext == ".zip": + return unzip(sourceFile, destinationDir) + default: + return errors.Errorf("failed to extract %v, unhandled file extension", sourceFile) + } +} + +func unzip(sourceFile, destinationDir string) error { + r, err := zip.OpenReader(sourceFile) + if err != nil { + return err + } + defer r.Close() + + if err = os.MkdirAll(destinationDir, 0755); err != nil { + return err + } + + extractAndWriteFile := func(f *zip.File) error { + innerFile, err := f.Open() + if err != nil { + return err + } + defer innerFile.Close() + + path := filepath.Join(destinationDir, f.Name) + if !strings.HasPrefix(path, destinationDir) { + return errors.Errorf("illegal file path in zip: %v", f.Name) + } + + if f.FileInfo().IsDir() { + return os.MkdirAll(path, f.Mode()) + } + + if err = os.MkdirAll(filepath.Dir(path), 0755); err != nil { + return err + } + + out, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) + if err != nil { + return err + } + defer out.Close() + + if _, err = io.Copy(out, innerFile); err != nil { + return err + } + + return out.Close() + } + + for _, f := range r.File { + err := extractAndWriteFile(f) + if err != nil { + return err + } + } + + return nil +} + +func untar(sourceFile, destinationDir string) error { + file, err := os.Open(sourceFile) + if err != nil { + return err + } + defer file.Close() + + var fileReader io.ReadCloser = file + + if strings.HasSuffix(sourceFile, ".gz") { + if fileReader, err = gzip.NewReader(file); err != nil { + return err + } + defer fileReader.Close() + } + + tarReader := tar.NewReader(fileReader) + + for { + header, err := tarReader.Next() + if err != nil { + if err == io.EOF { + break + } + return err + } + + path := filepath.Join(destinationDir, header.Name) + if !strings.HasPrefix(path, destinationDir) { + return errors.Errorf("illegal file path in tar: %v", header.Name) + } + + switch header.Typeflag { + case tar.TypeDir: + if err = os.MkdirAll(path, os.FileMode(header.Mode)); err != nil { + return err + } + case tar.TypeReg: + writer, err := os.Create(path) + if err != nil { + return err + } + + if _, err = io.Copy(writer, tarReader); err != nil { + return err + } + + if err = os.Chmod(path, os.FileMode(header.Mode)); err != nil { + return err + } + + if err = writer.Close(); err != nil { + return err + } + default: + return errors.Errorf("unable to untar type=%c in file=%s", header.Typeflag, path) + } + } + + return nil +} + +func isSeparator(r rune) bool { + return unicode.IsSpace(r) || r == ',' || r == ';' +} + +// RunCmds runs the given commands and stops upon the first error. +func RunCmds(cmds ...[]string) error { + for _, cmd := range cmds { + if err := sh.Run(cmd[0], cmd[1:]...); err != nil { + return err + } + } + return nil +} + +var ( + parallelJobsLock sync.Mutex + parallelJobsSemaphore chan int +) + +func parallelJobs() chan int { + parallelJobsLock.Lock() + defer parallelJobsLock.Unlock() + + if parallelJobsSemaphore == nil { + max := numParallel() + parallelJobsSemaphore = make(chan int, max) + log.Println("Max parallel jobs =", max) + } + + return parallelJobsSemaphore +} + +func numParallel() int { + if maxParallel := os.Getenv("MAX_PARALLEL"); maxParallel != "" { + if num, err := strconv.Atoi(maxParallel); err == nil && num > 0 { + return num + } + } + + // To be conservative use the minimum of the number of CPUs between the host + // and the Docker host. + maxParallel := runtime.NumCPU() + + info, err := GetDockerInfo() + if err == nil && info.NCPU < maxParallel { + maxParallel = info.NCPU + } + + return maxParallel +} + +// ParallelCtx runs the given functions in parallel with an upper limit set +// based on GOMAXPROCS. The provided ctx is passed to the functions (if they +// accept it as a param). +func ParallelCtx(ctx context.Context, fns ...interface{}) { + var fnWrappers []func(context.Context) error + for _, f := range fns { + fnWrapper := types.FuncTypeWrap(f) + if fnWrapper == nil { + panic("attempted to add a dep that did not match required function type") + } + fnWrappers = append(fnWrappers, fnWrapper) + } + + var mu sync.Mutex + var errs []string + var wg sync.WaitGroup + + for _, fw := range fnWrappers { + wg.Add(1) + go func(fw func(context.Context) error) { + defer func() { + if v := recover(); v != nil { + mu.Lock() + errs = append(errs, fmt.Sprint(v)) + mu.Unlock() + } + wg.Done() + <-parallelJobs() + }() + waitStart := time.Now() + parallelJobs() <- 1 + log.Println("Parallel job waited", time.Since(waitStart), "before starting.") + if err := fw(ctx); err != nil { + mu.Lock() + errs = append(errs, fmt.Sprint(err)) + mu.Unlock() + } + }(fw) + } + + wg.Wait() + if len(errs) > 0 { + panic(errors.Errorf(strings.Join(errs, "\n"))) + } +} + +// Parallel runs the given functions in parallel with an upper limit set based +// on GOMAXPROCS. +func Parallel(fns ...interface{}) { + ParallelCtx(context.Background(), fns...) +} + +// FindFiles return a list of file matching the given glob patterns. +func FindFiles(globs ...string) ([]string, error) { + var configFiles []string + for _, glob := range globs { + files, err := filepath.Glob(glob) + if err != nil { + return nil, errors.Wrapf(err, "failed on glob %v", glob) + } + configFiles = append(configFiles, files...) + } + return configFiles, nil +} + +// FileConcat concatenates files and writes the output to out. +func FileConcat(out string, perm os.FileMode, files ...string) error { + f, err := os.OpenFile(createDir(out), os.O_CREATE|os.O_TRUNC|os.O_WRONLY, perm) + if err != nil { + return errors.Wrap(err, "failed to create file") + } + defer f.Close() + + w := bufio.NewWriter(f) + + append := func(file string) error { + in, err := os.Open(file) + if err != nil { + return err + } + defer in.Close() + + if _, err := io.Copy(w, in); err != nil { + return err + } + + return nil + } + + for _, in := range files { + if err := append(in); err != nil { + return err + } + } + + if err = w.Flush(); err != nil { + return err + } + return f.Close() +} + +// MustFileConcat invokes FileConcat and panics if an error occurs. +func MustFileConcat(out string, perm os.FileMode, files ...string) { + if err := FileConcat(out, perm, files...); err != nil { + panic(err) + } +} + +// VerifySHA256 reads a file and verifies that its SHA256 sum matches the +// specified hash. +func VerifySHA256(file string, hash string) error { + f, err := os.Open(file) + if err != nil { + return errors.Wrap(err, "failed to open file for sha256 verification") + } + defer f.Close() + + sum := sha256.New() + if _, err := io.Copy(sum, f); err != nil { + return errors.Wrap(err, "failed reading from input file") + } + + computedHash := hex.EncodeToString(sum.Sum(nil)) + expectedHash := strings.TrimSpace(hash) + + if computedHash != expectedHash { + return errors.Errorf("SHA256 verification of %v failed. Expected=%v, "+ + "but computed=%v", f.Name(), expectedHash, computedHash) + } + log.Println("SHA256 OK:", f.Name()) + + return nil +} + +// CreateSHA512File computes the sha512 sum of the specified file the writes +// a sidecar file containing the hash and filename. +func CreateSHA512File(file string) error { + f, err := os.Open(file) + if err != nil { + return errors.Wrap(err, "failed to open file for sha512 summing") + } + defer f.Close() + + sum := sha512.New() + if _, err := io.Copy(sum, f); err != nil { + return errors.Wrap(err, "failed reading from input file") + } + + computedHash := hex.EncodeToString(sum.Sum(nil)) + out := fmt.Sprintf("%v %v", computedHash, filepath.Base(file)) + + return ioutil.WriteFile(file+".sha512", []byte(out), 0644) +} + +// Mage executes mage targets in the specified directory. +func Mage(dir string, targets ...string) error { + c := exec.Command("mage", targets...) + c.Dir = dir + if mg.Verbose() { + c.Env = append(os.Environ(), "MAGEFILE_VERBOSE=1") + } + c.Stdout = os.Stdout + c.Stderr = os.Stderr + c.Stdin = os.Stdin + log.Println("exec:", strings.Join(c.Args, " ")) + err := c.Run() + return err +} + +// IsUpToDate returns true iff dst exists and is older based on modtime than all +// of the sources. +func IsUpToDate(dst string, sources ...string) bool { + if len(sources) == 0 { + panic("No sources passed to IsUpToDate") + } + + var files []string + for _, s := range sources { + filepath.Walk(s, func(path string, info os.FileInfo, err error) error { + if err != nil { + if os.IsNotExist(err) { + return nil + } + return err + } + + if info.Mode().IsRegular() { + files = append(files, path) + } + + return nil + }) + } + + execute, err := target.Path(dst, files...) + return err == nil && !execute +} + +// createDir creates the parent directory for the given file. +func createDir(file string) string { + // Create the output directory. + if dir := filepath.Dir(file); dir != "." { + if err := os.MkdirAll(dir, 0755); err != nil { + panic(errors.Wrapf(err, "failed to create parent dir for %v", file)) + } + } + return file +} + +// binaryExtension returns the appropriate file extension based on GOOS. +func binaryExtension(goos string) string { + if goos == "windows" { + return ".exe" + } + return "" +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/copy.go b/vendor/github.com/elastic/beats/dev-tools/mage/copy.go new file mode 100644 index 00000000..73f96433 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/copy.go @@ -0,0 +1,147 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "io" + "io/ioutil" + "os" + "path/filepath" + "regexp" + + "github.com/pkg/errors" +) + +// Copy copies a file or a directory (recursively) and preserves the permissions. +func Copy(src, dest string) error { + copy := &CopyTask{Source: src, Dest: dest} + return copy.Execute() +} + +// CopyTask copies a file or directory (recursively) and preserves the permissions. +type CopyTask struct { + Source string // Source directory or file. + Dest string // Destination directory or file. + Mode os.FileMode // Mode to use for copied files. Defaults to preserve permissions. + DirMode os.FileMode // Mode to use for copied dirs. Defaults to preserve permissions. + Exclude []string // Exclude paths that match these regular expressions. + excludes []*regexp.Regexp // Compiled exclude regexes. +} + +// Execute executes the copy and returns an error of there is a failure. +func (t *CopyTask) Execute() error { + if err := t.init(); err != nil { + return errors.Wrap(err, "copy failed") + } + + info, err := os.Stat(t.Source) + if err != nil { + return errors.Wrapf(err, "copy failed: cannot stat source file %v", t.Source) + } + + return errors.Wrap(t.recursiveCopy(t.Source, t.Dest, info), "copy failed") +} + +func (t *CopyTask) init() error { + for _, excl := range t.Exclude { + re, err := regexp.Compile(excl) + if err != nil { + return errors.Wrapf(err, "bad exclude pattern %v", excl) + } + t.excludes = append(t.excludes, re) + } + return nil +} + +func (t *CopyTask) isExcluded(src string) bool { + for _, excl := range t.excludes { + if match := excl.MatchString(filepath.ToSlash(src)); match { + return true + } + } + return false +} + +func (t *CopyTask) recursiveCopy(src, dest string, info os.FileInfo) error { + if info.IsDir() { + return t.dirCopy(src, dest, info) + } + return t.fileCopy(src, dest, info) +} + +func (t *CopyTask) fileCopy(src, dest string, info os.FileInfo) error { + if t.isExcluded(src) { + return nil + } + + srcFile, err := os.Open(src) + if err != nil { + return err + } + defer srcFile.Close() + + if !info.Mode().IsRegular() { + return errors.Errorf("failed to copy source file because it is not a " + + "regular file") + } + + mode := t.Mode + if mode == 0 { + mode = info.Mode() + } + destFile, err := os.OpenFile(createDir(dest), + os.O_CREATE|os.O_TRUNC|os.O_WRONLY, mode&os.ModePerm) + if err != nil { + return err + } + defer destFile.Close() + + if _, err = io.Copy(destFile, srcFile); err != nil { + return err + } + return destFile.Close() +} + +func (t *CopyTask) dirCopy(src, dest string, info os.FileInfo) error { + if t.isExcluded(src) { + return nil + } + + mode := t.DirMode + if mode == 0 { + mode = info.Mode() + } + if err := os.MkdirAll(dest, mode&os.ModePerm); err != nil { + return errors.Wrap(err, "failed creating dirs") + } + + contents, err := ioutil.ReadDir(src) + if err != nil { + return errors.Wrapf(err, "failed to read dir %v", src) + } + + for _, info := range contents { + srcFile := filepath.Join(src, info.Name()) + destFile := filepath.Join(dest, info.Name()) + if err = t.recursiveCopy(srcFile, destFile, info); err != nil { + return errors.Wrapf(err, "failed to copy %v to %v", srcFile, destFile) + } + } + + return nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/crossbuild.go b/vendor/github.com/elastic/beats/dev-tools/mage/crossbuild.go new file mode 100644 index 00000000..4a41cde0 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/crossbuild.go @@ -0,0 +1,239 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "fmt" + "log" + "os" + "path/filepath" + "runtime" + "strconv" + "strings" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" +) + +const defaultCrossBuildTarget = "golangCrossBuild" + +// Platforms contains the set of target platforms for cross-builds. It can be +// modified at runtime by setting the PLATFORMS environment variable. +// See NewPlatformList for details about platform filtering expressions. +var Platforms = BuildPlatforms.Defaults() + +func init() { + // Allow overriding via PLATFORMS. + if expression := os.Getenv("PLATFORMS"); len(expression) > 0 { + Platforms = NewPlatformList(expression) + } +} + +// CrossBuildOption defines a option to the CrossBuild target. +type CrossBuildOption func(params *crossBuildParams) + +// ForPlatforms filters the platforms based on the given expression. +func ForPlatforms(expr string) func(params *crossBuildParams) { + return func(params *crossBuildParams) { + params.Platforms = params.Platforms.Filter(expr) + } +} + +// WithTarget specifies the mage target to execute inside the golang-crossbuild +// container. +func WithTarget(target string) func(params *crossBuildParams) { + return func(params *crossBuildParams) { + params.Target = target + } +} + +// Serially causes each cross-build target to be executed serially instead of +// in parallel. +func Serially() func(params *crossBuildParams) { + return func(params *crossBuildParams) { + params.Serial = true + } +} + +type crossBuildParams struct { + Platforms BuildPlatformList + Target string + Serial bool +} + +// CrossBuild executes a given build target once for each target platform. +func CrossBuild(options ...CrossBuildOption) error { + params := crossBuildParams{Platforms: Platforms, Target: defaultCrossBuildTarget} + for _, opt := range options { + opt(¶ms) + } + + // Docker is required for this target. + if err := HaveDocker(); err != nil { + return err + } + + if len(params.Platforms) == 0 { + log.Printf("Skipping cross-build of target=%v because platforms list is empty.", params.Target) + return nil + } + + // Build the magefile for Linux so we can run it inside the container. + mg.Deps(buildMage) + + log.Println("crossBuild: Platform list =", params.Platforms) + var deps []interface{} + for _, buildPlatform := range params.Platforms { + if !buildPlatform.Flags.CanCrossBuild() { + return fmt.Errorf("unsupported cross build platform %v", buildPlatform.Name) + } + + builder := GolangCrossBuilder{buildPlatform.Name, params.Target} + if params.Serial { + if err := builder.Build(); err != nil { + return errors.Wrapf(err, "failed cross-building target=%v for platform=%v", + params.Target, buildPlatform.Name) + } + } else { + deps = append(deps, builder.Build) + } + } + + // Each build runs in parallel. + Parallel(deps...) + return nil +} + +// buildMage pre-compiles the magefile to a binary using the native GOOS/GOARCH +// values for Docker. This is required to so that we can later pass GOOS and +// GOARCH to mage for the cross-build. It has the benefit of speeding up the +// build because the mage -compile is done only once rather than in each Docker +// container. +func buildMage() error { + env := map[string]string{ + "GOOS": "linux", + "GOARCH": "amd64", + } + return sh.RunWith(env, "mage", "-f", "-compile", filepath.Join("build", "mage-linux-amd64")) +} + +func crossBuildImage(platform string) (string, error) { + tagSuffix := "main" + + switch { + case strings.HasPrefix(platform, "darwin"): + tagSuffix = "darwin" + case strings.HasPrefix(platform, "linux/arm"): + tagSuffix = "arm" + case strings.HasPrefix(platform, "linux/mips"): + tagSuffix = "mips" + case strings.HasPrefix(platform, "linux/ppc"): + tagSuffix = "ppc" + case platform == "linux/s390x": + tagSuffix = "s390x" + case strings.HasPrefix(platform, "linux"): + // Use an older version of libc to gain greater OS compatibility. + // Debian 7 uses glibc 2.13. + tagSuffix = "main-debian7" + } + + goVersion, err := GoVersion() + if err != nil { + return "", err + } + + return beatsCrossBuildImage + ":" + goVersion + "-" + tagSuffix, nil +} + +// GolangCrossBuilder executes the specified mage target inside of the +// associated golang-crossbuild container image for the platform. +type GolangCrossBuilder struct { + Platform string + Target string +} + +// Build executes the build inside of Docker. +func (b GolangCrossBuilder) Build() error { + fmt.Printf(">> %v: Building for %v\n", b.Target, b.Platform) + + repoInfo, err := GetProjectRepoInfo() + if err != nil { + return errors.Wrap(err, "failed to determine repo root and package sub dir") + } + + mountPoint := filepath.ToSlash(filepath.Join("/go", "src", repoInfo.RootImportPath)) + workDir := mountPoint + if repoInfo.SubDir != "" { + workDir = filepath.ToSlash(filepath.Join(workDir, repoInfo.SubDir)) + } + + dockerRun := sh.RunCmd("docker", "run") + image, err := crossBuildImage(b.Platform) + if err != nil { + return errors.Wrap(err, "failed to determine golang-crossbuild image tag") + } + verbose := "" + if mg.Verbose() { + verbose = "true" + } + var args []string + if runtime.GOOS != "windows" { + args = append(args, + "--env", "EXEC_UID="+strconv.Itoa(os.Getuid()), + "--env", "EXEC_GID="+strconv.Itoa(os.Getgid()), + ) + } + args = append(args, + "--rm", + "--env", "MAGEFILE_VERBOSE="+verbose, + "--env", "MAGEFILE_TIMEOUT="+EnvOr("MAGEFILE_TIMEOUT", ""), + "-v", repoInfo.RootDir+":"+mountPoint, + "-w", workDir, + image, + "--build-cmd", "build/mage-linux-amd64 "+b.Target, + "-p", b.Platform, + ) + + return dockerRun(args...) +} + +// DockerChown chowns files generated during build. EXEC_UID and EXEC_GID must +// be set in the containers environment otherwise this is a noop. +func DockerChown(file string) { + // Chown files generated during build that are root owned. + uid, _ := strconv.Atoi(EnvOr("EXEC_UID", "-1")) + gid, _ := strconv.Atoi(EnvOr("EXEC_GID", "-1")) + if uid > 0 && gid > 0 { + if err := chownPaths(uid, gid, file); err != nil { + log.Println(err) + } + } +} + +// chownPaths will chown the file and all of the dirs specified in the path. +func chownPaths(uid, gid int, file string) error { + pathParts := strings.Split(file, string(filepath.Separator)) + for i := range pathParts { + chownDir := filepath.Join(pathParts[:i+1]...) + if err := os.Chown(chownDir, uid, gid); err != nil { + return errors.Wrapf(err, "failed to chown path=%v", chownDir) + } + } + return nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/dmgbuilder.go b/vendor/github.com/elastic/beats/dev-tools/mage/dmgbuilder.go new file mode 100644 index 00000000..8c7df259 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/dmgbuilder.go @@ -0,0 +1,286 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "os" + "os/exec" + "path/filepath" + "strings" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" +) + +type dmgBuilder struct { + PackageSpec + + SigningInfo *AppleSigningInfo + Identifier string + PreferencePaneDir string + PreferencePanePkgFile string + InternalBeatPkg string + BeatPkg string + + beatsDir string + dmgDir string + + // Build tools. + pkgbuild func(args ...string) error + productbuild func(args ...string) error + spctl func(args ...string) error + codesign func(args ...string) error + hdiutil func(args ...string) error +} + +func newDMGBuilder(spec PackageSpec) (*dmgBuilder, error) { + for _, cmd := range []string{"pkgbuild", "productbuild", "spctl", "codesign", "hdiutil"} { + if _, err := exec.LookPath(cmd); err != nil { + return nil, errors.Wrapf(err, "required tool '%v' for DMG packaging not found on PATH", cmd) + } + } + + beatsDir, err := ElasticBeatsDir() + if err != nil { + return nil, err + } + + preferencePaneDir := filepath.Join(beatsDir, "dev-tools/packaging/preference-pane") + preferencePanePkgFile := filepath.Join(preferencePaneDir, "build/BeatsPrefPane.pkg") + beatIdentifier, ok := spec.evalContext["identifier"].(string) + if !ok { + return nil, errors.Errorf("identifier not specified for DMG packaging") + } + + spec.OutputFile, err = spec.Expand(defaultBinaryName) + if err != nil { + return nil, err + } + + info, err := GetAppleSigningInfo() + if err != nil { + return nil, err + } + + return &dmgBuilder{ + PackageSpec: spec, + SigningInfo: info, + Identifier: beatIdentifier, + PreferencePaneDir: preferencePaneDir, + PreferencePanePkgFile: preferencePanePkgFile, + + beatsDir: beatsDir, + dmgDir: filepath.Join(spec.packageDir, "dmg"), + + pkgbuild: sh.RunCmd("pkgbuild"), + productbuild: sh.RunCmd("productbuild"), + spctl: sh.RunCmd("spctl", "-a", "-t"), + codesign: sh.RunCmd("codesign"), + hdiutil: sh.RunCmd("hdiutil"), + }, nil +} + +// Create .pkg for preference pane. +func (b *dmgBuilder) buildPreferencePane() error { + return errors.Wrap(Mage(b.PreferencePaneDir), "failed to build Beats preference pane") +} + +func (b *dmgBuilder) buildBeatPkg() error { + beatPkgRoot := filepath.Join(b.packageDir, "beat-pkg-root") + if err := os.RemoveAll(beatPkgRoot); err != nil { + return errors.Wrap(err, "failed to clean beat-pkg-root") + } + + // Copy files into the packaging root and set their mode. + for _, f := range b.Files { + target := filepath.Join(beatPkgRoot, f.Target) + if err := Copy(f.Source, target); err != nil { + return err + } + + info, err := os.Stat(target) + if err != nil { + return err + } + + if info.Mode().IsRegular() && info.Mode().Perm() != f.Mode { + if err = os.Chmod(target, f.Mode); err != nil { + return err + } + } + } + + b.InternalBeatPkg = filepath.Join(b.packageDir, "pkgs", "internal-"+b.OutputFile+".pkg") + + args := []string{ + "--root", beatPkgRoot, + "--scripts", filepath.Join(b.packageDir, "scripts"), + "--identifier", b.Identifier, + "--version", b.MustExpand("{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}"), + } + if b.SigningInfo.Sign { + args = append(args, "--sign", b.SigningInfo.Installer.ID, "--timestamp") + } + args = append(args, createDir(b.InternalBeatPkg)) + if err := b.pkgbuild(args...); err != nil { + return err + } + + return nil +} + +func (b *dmgBuilder) buildProductPkg() error { + var ( + distributionPlist = filepath.Join(b.packageDir, "distributions.plist") + resourcesDir = filepath.Join(b.packageDir, "resources") + ) + + b.MustExpandFile( + filepath.Join(b.beatsDir, "dev-tools/packaging/templates/darwin/distribution.plist.tmpl"), + distributionPlist) + b.MustExpandFile( + filepath.Join(b.beatsDir, "dev-tools/packaging/templates/darwin/README.html.tmpl"), + filepath.Join(resourcesDir, "README.html")) + for t, pf := range b.Files { + if strings.HasSuffix(t, "LICENSE.txt") { + Copy(pf.Source, filepath.Join(resourcesDir, "LICENSE.txt")) + break + } + } + b.MustExpandFile( + filepath.Join(b.beatsDir, "dev-tools/packaging/templates/darwin/README.html.tmpl"), + filepath.Join(resourcesDir, "README.html")) + + if err := os.RemoveAll(b.dmgDir); err != nil { + return err + } + b.BeatPkg = filepath.Join(b.dmgDir, b.OutputFile+".pkg") + + // Create .pkg containing the previous two .pkg files. + args := []string{ + "--distribution", distributionPlist, + "--resources", resourcesDir, + "--package-path", filepath.Dir(b.InternalBeatPkg), + "--package-path", filepath.Dir(b.PreferencePanePkgFile), + "--component-compression", "auto", + } + if b.SigningInfo.Sign { + args = append(args, "--sign", b.SigningInfo.Installer.ID, "--timestamp") + } + args = append(args, createDir(b.BeatPkg)) + if err := b.productbuild(args...); err != nil { + return err + } + + if b.SigningInfo.Sign { + if err := b.spctl("install", b.BeatPkg); err != nil { + return err + } + } + + return nil +} + +func (b *dmgBuilder) buildUninstallApp() error { + const ( + uninstallerIcons = "Uninstall.app/Contents/Resources/uninstaller.icns" + uninstallScript = "Uninstall.app/Contents/MacOS/uninstall.sh" + infoPlist = "Uninstall.app/Contents/Info.plist" + ) + + inputDir := filepath.Join(b.beatsDir, "dev-tools/packaging/templates/darwin/dmg") + + Copy( + filepath.Join(inputDir, uninstallerIcons), + filepath.Join(b.dmgDir, uninstallerIcons), + ) + b.MustExpandFile( + filepath.Join(inputDir, infoPlist+".tmpl"), + filepath.Join(b.dmgDir, infoPlist), + ) + b.MustExpandFile( + filepath.Join(inputDir, uninstallScript+".tmpl"), + filepath.Join(b.dmgDir, uninstallScript), + ) + if err := os.Chmod(filepath.Join(b.dmgDir, uninstallScript), 0755); err != nil { + return err + } + + if b.SigningInfo.Sign { + uninstallApp := filepath.Join(b.dmgDir, "Uninstall.app") + if err := b.codesign("-s", b.SigningInfo.App.ID, "--timestamp", uninstallApp); err != nil { + return err + } + + if err := b.spctl("exec", uninstallApp); err != nil { + return err + } + } + + return nil +} + +// Create a .dmg file containing both the Uninstall.app and .pkg file. +func (b *dmgBuilder) buildDMG() error { + dmgFile := filepath.Join(distributionsDir, DMG.AddFileExtension(b.OutputFile)) + + args := []string{ + "create", + "-volname", b.MustExpand("{{.BeatName | title}} {{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}"), + "-srcfolder", b.dmgDir, + "-ov", + createDir(dmgFile), + } + if err := b.hdiutil(args...); err != nil { + return err + } + + // Sign the .dmg. + if b.SigningInfo.Sign { + if err := b.codesign("-s", b.SigningInfo.App.ID, "--timestamp", dmgFile); err != nil { + return err + } + + if err := b.spctl("install", dmgFile); err != nil { + return err + } + } + + return errors.Wrap(CreateSHA512File(dmgFile), "failed to create .sha512 file") +} + +func (b *dmgBuilder) Build() error { + // Mark this function as a dep so that is is only invoked once. + mg.Deps(b.buildPreferencePane) + + var err error + if err = b.buildBeatPkg(); err != nil { + return errors.Wrap(err, "failed to build internal beat pkg") + } + if err = b.buildProductPkg(); err != nil { + return errors.Wrap(err, "failed to build beat product pkg (pref pane + beat)") + } + if err = b.buildUninstallApp(); err != nil { + return errors.Wrap(err, "failed to build Uninstall.app") + } + if err = b.buildDMG(); err != nil { + return errors.Wrap(err, "failed to build beat dmg") + } + return nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/fields.go b/vendor/github.com/elastic/beats/dev-tools/mage/fields.go new file mode 100644 index 00000000..8f658483 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/fields.go @@ -0,0 +1,48 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "path/filepath" + + "github.com/magefile/mage/sh" +) + +// GenerateFieldsYAML generates a fields.yml file for a Beat. This will include +// the common fields specified by libbeat, the common fields for the Beat, +// and any additional fields.yml files you specify. +// +// fieldsFiles specifies additional directories to search recursively for files +// named fields.yml. The contents of each fields.yml will be included in the +// generated file. +func GenerateFieldsYAML(fieldsFiles ...string) error { + const globalFieldsCmdPath = "libbeat/scripts/cmd/global_fields/main.go" + + beatsDir, err := ElasticBeatsDir() + if err != nil { + return err + } + + globalFieldsCmd := sh.RunCmd("go", "run", + filepath.Join(beatsDir, globalFieldsCmdPath), + "-es_beats_path", beatsDir, + "-beat_path", CWD(), + ) + + return globalFieldsCmd(fieldsFiles...) +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/godaemon.go b/vendor/github.com/elastic/beats/dev-tools/mage/godaemon.go new file mode 100644 index 00000000..0f4cb2c0 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/godaemon.go @@ -0,0 +1,72 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "errors" + "log" + "os" +) + +// BuildGoDaemon builds the go-deamon binary. +func BuildGoDaemon() error { + if GOOS != "linux" { + return errors.New("go-daemon only builds for linux") + } + + if os.Getenv("GOLANG_CROSSBUILD") != "1" { + return errors.New("Use the crossBuildGoDaemon target. buildGoDaemon can " + + "only be executed within the golang-crossbuild docker environment.") + } + + // Test if binaries are up-to-date. + output := MustExpand("build/golang-crossbuild/god-{{.Platform.GOOS}}-{{.Platform.Arch}}") + input := MustExpand("{{ elastic_beats_dir }}/dev-tools/vendor/github.com/tsg/go-daemon/god.c") + if IsUpToDate(output, input) { + log.Println(">>> buildGoDaemon is up-to-date for", Platform.Name) + return nil + } + + // Determine what compiler to use based on CC that is set by golang-crossbuild. + cc := os.Getenv("CC") + if cc == "" { + cc = "cc" + } + + compileCmd := []string{ + cc, + input, + "-o", createDir(output), + "-lpthread", "-static", + } + switch Platform.Name { + case "linux/amd64": + compileCmd = append(compileCmd, "-m64") + case "linux/386": + compileCmd = append(compileCmd, "-m32") + } + + defer DockerChown(output) + return RunCmds(compileCmd) +} + +// CrossBuildGoDaemon cross-build the go-daemon binary using the +// golang-crossbuild environment. +func CrossBuildGoDaemon() error { + return CrossBuild(ForPlatforms("linux"), WithTarget("buildGoDaemon")) +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/keychain.go b/vendor/github.com/elastic/beats/dev-tools/mage/keychain.go new file mode 100644 index 00000000..1a3d61e8 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/keychain.go @@ -0,0 +1,159 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "log" + "regexp" + "strconv" + "strings" + "sync" + + "github.com/magefile/mage/sh" + "github.com/pkg/errors" +) + +var _appleKeychain = &appleKeychain{} + +type appleKeychain struct{} + +// SigningIdentity represents a key pair (public/private) that can be used for +// signing. +type SigningIdentity struct { + ID string + Description string +} + +// ListIdentities queries the keychain to get a list of signing identities +// (certificate + private key). +func (k *appleKeychain) ListIdentities() ([]SigningIdentity, error) { + var re = regexp.MustCompile(`(?m)^\s*\d+\)\s+(\w+)\s+"(.+)"$`) + + out, err := sh.Output("security", "find-identity", "-v") + if err != nil { + return nil, err + } + + var idents []SigningIdentity + ids := map[string]struct{}{} + for _, match := range re.FindAllStringSubmatch(out, -1) { + ident := SigningIdentity{ID: match[1], Description: match[2]} + + // Deduplicate + if _, found := ids[ident.ID]; found { + continue + } + + idents = append(idents, ident) + ids[ident.ID] = struct{}{} + } + + return idents, nil +} + +// AppleSigningInfo indicate if signing is enabled and specifies the identities +// to use for signing applications and installers. +type AppleSigningInfo struct { + Sign bool + App SigningIdentity + Installer SigningIdentity +} + +var ( + appleSigningInfoValue *AppleSigningInfo + appleSigningInfoErr error + appleSigningInfoOnce sync.Once +) + +// GetAppleSigningInfo returns the signing identities used for code signing +// apps and installers. +// +// Environment Variables +// +// APPLE_SIGNING_ENABLED - Must be set to true to enable signing. Defaults to +// false. +// +// APPLE_SIGNING_IDENTITY_INSTALLER - filter for selecting the signing identity +// for installers. +// +// APPLE_SIGNING_IDENTITY_APP - filter for selecting the signing identity +// for apps. +func GetAppleSigningInfo() (*AppleSigningInfo, error) { + appleSigningInfoOnce.Do(func() { + appleSigningInfoValue, appleSigningInfoErr = getAppleSigningInfo() + }) + + return appleSigningInfoValue, appleSigningInfoErr +} + +func getAppleSigningInfo() (*AppleSigningInfo, error) { + var ( + signingEnabled, _ = strconv.ParseBool(EnvOr("APPLE_SIGNING_ENABLED", "false")) + identityInstaller = strings.ToLower(EnvOr("APPLE_SIGNING_IDENTITY_INSTALLER", "Developer ID Installer")) + identityApp = strings.ToLower(EnvOr("APPLE_SIGNING_IDENTITY_APP", "Developer ID Application")) + ) + + if !signingEnabled { + return &AppleSigningInfo{Sign: false}, nil + } + + idents, err := _appleKeychain.ListIdentities() + if err != nil { + return nil, err + } + + var install, app []SigningIdentity + for _, ident := range idents { + id, desc := strings.ToLower(ident.ID), strings.ToLower(ident.Description) + if strings.Contains(id, identityInstaller) || strings.Contains(desc, identityInstaller) { + install = append(install, ident) + } + if strings.Contains(id, identityApp) || strings.Contains(desc, identityApp) { + app = append(app, ident) + } + } + + if len(install) == 1 && len(app) == 1 { + log.Printf("Apple Code Signing Identities:\n App: %+v\n Installer: %+v", app[0], install[0]) + return &AppleSigningInfo{ + Sign: true, + Installer: install[0], + App: app[0], + }, nil + } + + if len(install) > 1 { + return nil, errors.Errorf("found multiple installer signing identities "+ + "that match '%v'. Set a more specific APPLE_SIGNING_IDENTITY_INSTALLER "+ + "value that will select one of %+v", identityInstaller, install) + } + + if len(app) > 1 { + return nil, errors.Errorf("found multiple installer signing identities "+ + "that match '%v'. Set a more specific APPLE_SIGNING_IDENTITY_APP "+ + "value that will select one of %+v", identityApp, app) + } + + if len(install) == 0 || len(app) == 0 { + return nil, errors.Errorf("apple signing was requested with " + + "APPLE_SIGNING_ENABLED=true, but the required signing identities " + + "for app and installer were not found") + } + + return &AppleSigningInfo{Sign: false}, nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/pkg.go b/vendor/github.com/elastic/beats/dev-tools/mage/pkg.go new file mode 100644 index 00000000..bc9e7759 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/pkg.go @@ -0,0 +1,157 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "fmt" + "log" + "runtime" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" +) + +// Package packages the Beat for distribution. It generates packages based on +// the set of target platforms and registered packaging specifications. +func Package() error { + if len(Platforms) == 0 { + fmt.Println(">> package: Skipping because the platform list is empty") + return nil + } + + if len(Packages) == 0 { + return errors.New("no package specs are registered. Call " + + "UseCommunityBeatPackaging or UseElasticBeatPackaging first.") + } + + var tasks []interface{} + for _, target := range Platforms { + for _, pkg := range Packages { + if pkg.OS != target.GOOS() { + continue + } + + for _, pkgType := range pkg.Types { + if pkgType == DMG && runtime.GOOS != "darwin" { + log.Printf("Skipping DMG package type because build host isn't darwin") + continue + } + + packageArch, err := getOSArchName(target, pkgType) + if err != nil { + log.Printf("Skipping arch %v for package type %v: %v", target.Arch(), pkgType, err) + continue + } + + spec := pkg.Spec.Clone() + spec.OS = target.GOOS() + spec.Arch = packageArch + spec.Snapshot = Snapshot + spec.evalContext = map[string]interface{}{ + "GOOS": target.GOOS(), + "GOARCH": target.GOARCH(), + "GOARM": target.GOARM(), + "Platform": target, + "PackageType": pkgType.String(), + "BinaryExt": binaryExtension(target.GOOS()), + } + spec.packageDir = packageStagingDir + "/" + pkgType.AddFileExtension(spec.Name+"-"+target.GOOS()+"-"+target.Arch()) + spec = spec.Evaluate() + + tasks = append(tasks, packageBuilder{target, spec, pkgType}.Build) + } + } + } + + Parallel(tasks...) + return nil +} + +type packageBuilder struct { + Platform BuildPlatform + Spec PackageSpec + Type PackageType +} + +func (b packageBuilder) Build() error { + fmt.Printf(">> package: Building %v type=%v for platform=%v\n", b.Spec.Name, b.Type, b.Platform.Name) + log.Printf("Package spec: %+v", b.Spec) + return errors.Wrapf(b.Type.Build(b.Spec), "failed building %v type=%v for platform=%v", + b.Spec.Name, b.Type, b.Platform.Name) +} + +type testPackagesParams struct { + HasModules bool + HasModulesD bool +} + +// TestPackagesOption defines a option to the TestPackages target. +type TestPackagesOption func(params *testPackagesParams) + +// WithModules enables modules folder contents testing +func WithModules() func(params *testPackagesParams) { + return func(params *testPackagesParams) { + params.HasModules = true + } +} + +// WithModulesD enables modules.d folder contents testing +func WithModulesD() func(params *testPackagesParams) { + return func(params *testPackagesParams) { + params.HasModulesD = true + } +} + +// TestPackages executes the package tests on the produced binaries. These tests +// inspect things like file ownership and mode. +func TestPackages(options ...TestPackagesOption) error { + params := testPackagesParams{} + for _, opt := range options { + opt(¶ms) + } + + fmt.Println(">> Testing package contents") + goTest := sh.OutCmd("go", "test") + + var args []string + if mg.Verbose() { + args = append(args, "-v") + } + + args = append(args, MustExpand("{{ elastic_beats_dir }}/dev-tools/packaging/package_test.go")) + + if params.HasModules { + args = append(args, "--modules") + } + + if params.HasModulesD { + args = append(args, "--modules.d") + } + + args = append(args, "-files", MustExpand("{{.PWD}}/build/distributions/*")) + + if out, err := goTest(args...); err != nil { + if !mg.Verbose() { + fmt.Println(out) + } + return err + } + + return nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/pkgspecs.go b/vendor/github.com/elastic/beats/dev-tools/mage/pkgspecs.go new file mode 100644 index 00000000..11dda2e4 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/pkgspecs.go @@ -0,0 +1,100 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "io/ioutil" + "log" + "path/filepath" + + "github.com/pkg/errors" + "gopkg.in/yaml.v2" +) + +const packageSpecFile = "dev-tools/packaging/packages.yml" + +// Packages defines the set of packages to be built when the package target is +// executed. +var Packages []OSPackageArgs + +// UseCommunityBeatPackaging configures the package target to build packages for +// a community Beat. +func UseCommunityBeatPackaging() { + beatsDir, err := ElasticBeatsDir() + if err != nil { + panic(err) + } + + err = LoadNamedSpec("community_beat", filepath.Join(beatsDir, packageSpecFile)) + if err != nil { + panic(err) + } +} + +// UseElasticBeatPackaging configures the package target to build packages for +// an Elastic Beat. This means it will generate two sets of packages -- one +// that is purely OSS under Apache 2.0 and one that is licensed under the +// Elastic License and may contain additional X-Pack features. +func UseElasticBeatPackaging() { + beatsDir, err := ElasticBeatsDir() + if err != nil { + panic(err) + } + + err = LoadNamedSpec("elastic_beat", filepath.Join(beatsDir, packageSpecFile)) + if err != nil { + panic(err) + } +} + +// LoadNamedSpec loads a packaging specification with the given name from the +// specified YAML file. name should be a sub-key of 'specs'. +func LoadNamedSpec(name, file string) error { + specs, err := LoadSpecs(file) + if err != nil { + return errors.Wrap(err, "failed to load spec file") + } + + packages, found := specs[name] + if !found { + return errors.Errorf("%v not found in package specs", name) + } + + log.Printf("%v package spec loaded from %v", name, file) + Packages = packages + return nil +} + +// LoadSpecs loads the packaging specifications from the specified YAML file. +func LoadSpecs(file string) (map[string][]OSPackageArgs, error) { + data, err := ioutil.ReadFile(file) + if err != nil { + return nil, errors.Wrap(err, "failed to read from spec file") + } + + type PackageYAML struct { + Specs map[string][]OSPackageArgs `yaml:"specs"` + } + + var packages PackageYAML + if err = yaml.Unmarshal(data, &packages); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal spec data") + } + + return packages.Specs, nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/pkgtypes.go b/vendor/github.com/elastic/beats/dev-tools/mage/pkgtypes.go new file mode 100644 index 00000000..736ddebc --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/pkgtypes.go @@ -0,0 +1,825 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "archive/tar" + "archive/zip" + "bytes" + "compress/gzip" + "fmt" + "io" + "io/ioutil" + "log" + "os" + "path/filepath" + "reflect" + "runtime" + "strconv" + "strings" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/mitchellh/hashstructure" + "github.com/pkg/errors" +) + +const ( + // distributionsDir is the dir where packages are written. + distributionsDir = "build/distributions" + + // packageStagingDir is the staging directory for any temporary files that + // need to be written to disk for inclusion in a package. + packageStagingDir = "build/package" + + // defaultBinaryName specifies the output file for zip and tar.gz. + defaultBinaryName = "{{.Name}}-{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}{{if .OS}}-{{.OS}}{{end}}{{if .Arch}}-{{.Arch}}{{end}}" +) + +// PackageType defines the file format of the package (e.g. zip, rpm, etc). +type PackageType int + +// List of possible package types. +const ( + RPM PackageType = iota + 1 + Deb + Zip + TarGz + DMG +) + +// OSPackageArgs define a set of package types to build for an operating +// system using the contained PackageSpec. +type OSPackageArgs struct { + OS string `yaml:"os"` + Types []PackageType `yaml:"types"` + Spec PackageSpec `yaml:"spec"` +} + +// PackageSpec specifies package metadata and the contents of the package. +type PackageSpec struct { + Name string `yaml:"name,omitempty"` + ServiceName string `yaml:"service_name,omitempty"` + OS string `yaml:"os,omitempty"` + Arch string `yaml:"arch,omitempty"` + Vendor string `yaml:"vendor,omitempty"` + Snapshot bool `yaml:"snapshot"` + Version string `yaml:"version,omitempty"` + License string `yaml:"license,omitempty"` + URL string `yaml:"url,omitempty"` + Description string `yaml:"description,omitempty"` + PreInstallScript string `yaml:"pre_install_script,omitempty"` + PostInstallScript string `yaml:"post_install_script,omitempty"` + Files map[string]PackageFile `yaml:"files"` + OutputFile string `yaml:"output_file,omitempty"` // Optional + ExtraVars map[string]string `yaml:"extra_vars,omitempty"` // Optional + + evalContext map[string]interface{} + packageDir string + localPreInstallScript string + localPostInstallScript string +} + +// PackageFile represents a file or directory within a package. +type PackageFile struct { + Source string `yaml:"source,omitempty"` // Regular source file or directory. + Content string `yaml:"content,omitempty"` // Inline template string. + Template string `yaml:"template,omitempty"` // Input template file. + Target string `yaml:"target,omitempty"` // Target location in package. Relative paths are added to a package specific directory (e.g. metricbeat-7.0.0-linux-x86_64). + Mode os.FileMode `yaml:"mode,omitempty"` // Target mode for file. Does not apply when source is a directory. + Config bool `yaml:"config"` // Mark file as config in the package (deb and rpm only). + Dep func(PackageSpec) error `yaml:"-" hash:"-" json:"-"` // Dependency to invoke during Evaluate. +} + +// OSArchNames defines the names of architectures for use in packages. +var OSArchNames = map[string]map[PackageType]map[string]string{ + "windows": map[PackageType]map[string]string{ + Zip: map[string]string{ + "386": "x86", + "amd64": "x86_64", + }, + }, + "darwin": map[PackageType]map[string]string{ + TarGz: map[string]string{ + "386": "x86", + "amd64": "x86_64", + }, + DMG: map[string]string{ + "386": "x86", + "amd64": "x86_64", + }, + }, + "linux": map[PackageType]map[string]string{ + RPM: map[string]string{ + "386": "i686", + "amd64": "x86_64", + "armv7": "armhfp", + "arm64": "aarch64", + "mipsle": "mipsel", + "mips64le": "mips64el", + "ppc64": "ppc64", + "ppc64le": "ppc64le", + "s390x": "s390x", + }, + // https://www.debian.org/ports/ + Deb: map[string]string{ + "386": "i386", + "amd64": "amd64", + "armv5": "armel", + "armv6": "armel", + "armv7": "armhf", + "arm64": "arm64", + "mips": "mips", + "mipsle": "mipsel", + "mips64le": "mips64el", + "ppc64le": "ppc64el", + "s390x": "s390x", + }, + TarGz: map[string]string{ + "386": "x86", + "amd64": "x86_64", + "armv5": "armv5", + "armv6": "armv6", + "armv7": "armv7", + "arm64": "arm64", + "mips": "mips", + "mipsle": "mipsel", + "mips64": "mips64", + "mips64le": "mips64el", + "ppc64": "ppc64", + "ppc64le": "ppc64le", + "s390x": "s390x", + }, + }, +} + +// getOSArchName returns the architecture name to use in a package. +func getOSArchName(platform BuildPlatform, t PackageType) (string, error) { + names, found := OSArchNames[platform.GOOS()] + if !found { + return "", errors.Errorf("arch names for os=%v are not defined", + platform.GOOS()) + } + + archMap, found := names[t] + if !found { + return "", errors.Errorf("arch names for %v on os=%v are not defined", + t, platform.GOOS()) + } + + arch, found := archMap[platform.Arch()] + if !found { + return "", errors.Errorf("arch name associated with %v for %v on "+ + "os=%v is not defined", platform.Arch(), t, platform.GOOS()) + } + + return arch, nil +} + +// String returns the name of the package type. +func (typ PackageType) String() string { + switch typ { + case RPM: + return "rpm" + case Deb: + return "deb" + case Zip: + return "zip" + case TarGz: + return "tar.gz" + case DMG: + return "dmg" + default: + return "invalid" + } +} + +// MarshalText returns the text representation of PackageType. +func (typ PackageType) MarshalText() ([]byte, error) { + return []byte(typ.String()), nil +} + +// UnmarshalText returns a PackageType based on the given text. +func (typ *PackageType) UnmarshalText(text []byte) error { + switch strings.ToLower(string(text)) { + case "rpm": + *typ = RPM + case "deb": + *typ = Deb + case "tar.gz", "tgz", "targz": + *typ = TarGz + case "zip": + *typ = Zip + case "dmg": + *typ = DMG + default: + return errors.Errorf("unknown package type: %v", string(text)) + } + return nil +} + +// AddFileExtension returns a filename with the file extension added. If the +// filename already has the extension then it becomes a pass-through. +func (typ PackageType) AddFileExtension(file string) string { + ext := "." + strings.ToLower(typ.String()) + if !strings.HasSuffix(file, ext) { + return file + ext + } + return file +} + +// Build builds a package based on the provided spec. +func (typ PackageType) Build(spec PackageSpec) error { + switch typ { + case RPM: + return PackageRPM(spec) + case Deb: + return PackageDeb(spec) + case Zip: + return PackageZip(spec) + case TarGz: + return PackageTarGz(spec) + case DMG: + return PackageDMG(spec) + default: + return errors.Errorf("unknown package type: %v", typ) + } +} + +// Clone returns a deep clone of the spec. +func (s PackageSpec) Clone() PackageSpec { + clone := s + clone.Files = make(map[string]PackageFile, len(s.Files)) + for k, v := range s.Files { + clone.Files[k] = v + } + return clone +} + +// ReplaceFile replaces an existing file defined in the spec. The target must +// exist other it will panic. +func (s PackageSpec) ReplaceFile(target string, file PackageFile) { + _, found := s.Files[target] + if !found { + panic(errors.Errorf("failed to ReplaceFile because target=%v does not exist", target)) + } + + s.Files[target] = file +} + +// Expand expands a templated string using data from the spec. +func (s PackageSpec) Expand(in string, args ...map[string]interface{}) (string, error) { + return expandTemplate("inline", in, FuncMap, + EnvMap(append([]map[string]interface{}{s.evalContext, s.toMap()}, args...)...)) +} + +// MustExpand expands a templated string using data from the spec. It panics if +// an error occurs. +func (s PackageSpec) MustExpand(in string, args ...map[string]interface{}) string { + v, err := s.Expand(in, args...) + if err != nil { + panic(err) + } + return v +} + +// ExpandFile expands a template file using data from the spec. +func (s PackageSpec) ExpandFile(src, dst string, args ...map[string]interface{}) error { + return expandFile(src, dst, + EnvMap(append([]map[string]interface{}{s.evalContext, s.toMap()}, args...)...)) +} + +// MustExpandFile expands a template file using data from the spec. It panics if +// an error occurs. +func (s PackageSpec) MustExpandFile(src, dst string, args ...map[string]interface{}) { + if err := s.ExpandFile(src, dst, args...); err != nil { + panic(err) + } +} + +// Evaluate expands all variables used in the spec definition and writes any +// templated files used in the spec to disk. It panics if there is an error. +func (s PackageSpec) Evaluate(args ...map[string]interface{}) PackageSpec { + args = append([]map[string]interface{}{s.toMap(), s.evalContext}, args...) + mustExpand := func(in string) string { + if in == "" { + return "" + } + return MustExpand(in, args...) + } + + for k, v := range s.ExtraVars { + s.evalContext[k] = mustExpand(v) + } + + s.Name = mustExpand(s.Name) + s.ServiceName = mustExpand(s.ServiceName) + s.OS = mustExpand(s.OS) + s.Arch = mustExpand(s.Arch) + s.Vendor = mustExpand(s.Vendor) + s.Version = mustExpand(s.Version) + s.License = mustExpand(s.License) + s.URL = mustExpand(s.URL) + s.Description = mustExpand(s.Description) + s.PreInstallScript = mustExpand(s.PreInstallScript) + s.PostInstallScript = mustExpand(s.PostInstallScript) + s.OutputFile = mustExpand(s.OutputFile) + + if s.ServiceName == "" { + s.ServiceName = s.Name + } + + if s.packageDir == "" { + outputFileName := filepath.Base(s.OutputFile) + + if outputFileName != "." { + s.packageDir = filepath.Join(packageStagingDir, outputFileName) + } else { + s.packageDir = filepath.Join(packageStagingDir, strings.Join([]string{s.Name, s.OS, s.Arch, s.hash()}, "-")) + } + } else { + s.packageDir = filepath.Clean(mustExpand(s.packageDir)) + } + if s.evalContext == nil { + s.evalContext = map[string]interface{}{} + } + s.evalContext["PackageDir"] = s.packageDir + + evaluatedFiles := make(map[string]PackageFile, len(s.Files)) + for target, f := range s.Files { + // Execute the dependency if it exists. + if f.Dep != nil { + if err := f.Dep(s); err != nil { + panic(errors.Wrapf(err, "failed executing package file dependency for target=%v", target)) + } + } + + f.Source = s.MustExpand(f.Source) + f.Template = s.MustExpand(f.Template) + f.Target = s.MustExpand(target) + target = f.Target + + // Expand templates. + switch { + case f.Source != "": + case f.Content != "": + content, err := s.Expand(f.Content) + if err != nil { + panic(errors.Wrapf(err, "failed to expand content template for target=%v", target)) + } + + f.Source = filepath.Join(s.packageDir, filepath.Base(f.Target)) + if err = ioutil.WriteFile(createDir(f.Source), []byte(content), 0644); err != nil { + panic(errors.Wrapf(err, "failed to write file containing content for target=%v", target)) + } + case f.Template != "": + f.Source = filepath.Join(s.packageDir, filepath.Base(f.Template)) + if err := s.ExpandFile(f.Template, createDir(f.Source)); err != nil { + panic(errors.Wrapf(err, "failed to expand template file for target=%v", target)) + } + default: + panic(errors.Errorf("package file with target=%v must have either source, content, or template", target)) + } + + evaluatedFiles[f.Target] = f + } + // Replace the map instead of modifying the source. + s.Files = evaluatedFiles + + if err := copyInstallScript(s, s.PreInstallScript, &s.localPreInstallScript); err != nil { + panic(err) + } + if err := copyInstallScript(s, s.PostInstallScript, &s.localPostInstallScript); err != nil { + panic(err) + } + + return s +} + +func copyInstallScript(spec PackageSpec, script string, local *string) error { + if script == "" { + return nil + } + + *local = filepath.Join(spec.packageDir, "scripts", filepath.Base(script)) + if filepath.Ext(*local) == ".tmpl" { + *local = strings.TrimSuffix(*local, ".tmpl") + } + + if err := spec.ExpandFile(script, createDir(*local)); err != nil { + return errors.Wrap(err, "failed to copy install script to package dir") + } + + if err := os.Chmod(*local, 0755); err != nil { + return errors.Wrap(err, "failed to chmod install script") + } + + return nil +} + +func (s PackageSpec) hash() string { + h, err := hashstructure.Hash(s, nil) + if err != nil { + panic(errors.Wrap(err, "failed to compute hash of spec")) + } + + hash := strconv.FormatUint(h, 10) + if len(hash) > 10 { + hash = hash[0:10] + } + return hash +} + +// toMap returns a map containing the exported field names and their values. +func (s PackageSpec) toMap() map[string]interface{} { + out := make(map[string]interface{}) + v := reflect.ValueOf(s) + typ := v.Type() + + for i := 0; i < v.NumField(); i++ { + structField := typ.Field(i) + if !structField.Anonymous && structField.PkgPath == "" { + out[structField.Name] = v.Field(i).Interface() + } + } + + return out +} + +// rootDir returns the name of the root directory contained inside of zip and +// tar.gz packages. +func (s PackageSpec) rootDir() string { + if s.OutputFile != "" { + return filepath.Base(s.OutputFile) + } + + // NOTE: This uses .BeatName instead of .Name because we wanted the internal + // directory to not include "-oss". + return s.MustExpand("{{.BeatName}}-{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}{{if .OS}}-{{.OS}}{{end}}{{if .Arch}}-{{.Arch}}{{end}}") +} + +// PackageZip packages a zip file. +func PackageZip(spec PackageSpec) error { + // Create a buffer to write our archive to. + buf := new(bytes.Buffer) + + // Create a new zip archive. + w := zip.NewWriter(buf) + baseDir := spec.rootDir() + + // Add files to zip. + for _, pkgFile := range spec.Files { + if err := addFileToZip(w, baseDir, pkgFile); err != nil { + return errors.Wrapf(err, "failed adding file=%+v to zip", pkgFile) + } + } + + if err := w.Close(); err != nil { + return err + } + + // Output the zip file. + if spec.OutputFile == "" { + outputZip, err := spec.Expand(defaultBinaryName + ".zip") + if err != nil { + return err + } + spec.OutputFile = filepath.Join(distributionsDir, outputZip) + } + spec.OutputFile = Zip.AddFileExtension(spec.OutputFile) + + // Write the zip file. + if err := ioutil.WriteFile(createDir(spec.OutputFile), buf.Bytes(), 0644); err != nil { + return errors.Wrap(err, "failed to write zip file") + } + + // Any packages beginning with "tmp-" are temporary by nature so don't have + // them a .sha512 file. + if strings.HasPrefix(filepath.Base(spec.OutputFile), "tmp-") { + return nil + } + + return errors.Wrap(CreateSHA512File(spec.OutputFile), "failed to create .sha512 file") +} + +// PackageTarGz packages a gzipped tar file. +func PackageTarGz(spec PackageSpec) error { + // Create a buffer to write our archive to. + buf := new(bytes.Buffer) + + // Create a new tar archive. + w := tar.NewWriter(buf) + baseDir := spec.rootDir() + + // Add files to tar. + for _, pkgFile := range spec.Files { + if err := addFileToTar(w, baseDir, pkgFile); err != nil { + return errors.Wrapf(err, "failed adding file=%+v to tar", pkgFile) + } + } + + if err := w.Close(); err != nil { + return err + } + + // Output tar.gz to disk. + if spec.OutputFile == "" { + outputTarGz, err := spec.Expand(defaultBinaryName + ".tar.gz") + if err != nil { + return err + } + spec.OutputFile = filepath.Join(distributionsDir, outputTarGz) + } + spec.OutputFile = TarGz.AddFileExtension(spec.OutputFile) + + // Open the output file. + log.Println("Creating output file at", spec.OutputFile) + outFile, err := os.Create(createDir(spec.OutputFile)) + if err != nil { + return err + } + defer outFile.Close() + + // Gzip compress the data. + gzWriter := gzip.NewWriter(outFile) + if _, err = gzWriter.Write(buf.Bytes()); err != nil { + return err + } + + // Close and flush. + if err = gzWriter.Close(); err != nil { + return err + } + + // Any packages beginning with "tmp-" are temporary by nature so don't have + // them a .sha512 file. + if strings.HasPrefix(filepath.Base(spec.OutputFile), "tmp-") { + return nil + } + + return errors.Wrap(CreateSHA512File(spec.OutputFile), "failed to create .sha512 file") +} + +// PackageDeb packages a deb file. This requires Docker to execute FPM. +func PackageDeb(spec PackageSpec) error { + return runFPM(spec, Deb) +} + +// PackageRPM packages a RPM file. This requires Docker to execute FPM. +func PackageRPM(spec PackageSpec) error { + return runFPM(spec, RPM) +} + +func runFPM(spec PackageSpec, packageType PackageType) error { + var fpmPackageType string + switch packageType { + case RPM, Deb: + fpmPackageType = packageType.String() + default: + return errors.Errorf("unsupported package type=%v for runFPM", fpmPackageType) + } + + if err := HaveDocker(); err != nil { + return fmt.Errorf("packaging %v files requires docker: %v", fpmPackageType, err) + } + + // Build a tar file as the input to FPM. + inputTar := filepath.Join(distributionsDir, "tmp-"+fpmPackageType+"-"+spec.rootDir()+"-"+spec.hash()+".tar.gz") + spec.OutputFile = inputTar + if err := PackageTarGz(spec); err != nil { + return err + } + defer os.Remove(inputTar) + + outputFile, err := spec.Expand("{{.Name}}-{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}-{{.Arch}}") + if err != nil { + return err + } + spec.OutputFile = packageType.AddFileExtension(filepath.Join(distributionsDir, outputFile)) + + dockerRun := sh.RunCmd("docker", "run") + var args []string + + args, err = addUidGidEnvArgs(args) + if err != nil { + return err + } + + args = append(args, + "--rm", + "-w", "/app", + "-v", CWD()+":/app", + beatsFPMImage+":"+fpmVersion, + "fpm", "--force", + "--input-type", "tar", + "--output-type", fpmPackageType, + "--name", spec.ServiceName, + "--architecture", spec.Arch, + ) + if spec.Version != "" { + args = append(args, "--version", spec.Version) + } + if spec.Vendor != "" { + args = append(args, "--vendor", spec.Vendor) + } + if spec.License != "" { + args = append(args, "--license", strings.Replace(spec.License, " ", "-", -1)) + } + if spec.Description != "" { + args = append(args, "--description", spec.Description) + } + if spec.URL != "" { + args = append(args, "--url", spec.URL) + } + if spec.localPostInstallScript != "" { + args = append(args, "--after-install", spec.localPostInstallScript) + } + for _, pf := range spec.Files { + if pf.Config { + args = append(args, "--config-files", pf.Target) + } + } + args = append(args, + "-p", spec.OutputFile, + inputTar, + ) + + if err = dockerRun(args...); err != nil { + return errors.Wrap(err, "failed while running FPM in docker") + } + + return errors.Wrap(CreateSHA512File(spec.OutputFile), "failed to create .sha512 file") +} + +func addUidGidEnvArgs(args []string) ([]string, error) { + if runtime.GOOS == "windows" { + return args, nil + } + + info, err := GetDockerInfo() + if err != nil { + return args, errors.Wrap(err, "failed to get docker info") + } + + uid, gid := os.Getuid(), os.Getgid() + if info.IsBoot2Docker() { + // Boot2Docker mounts vboxfs using 1000:50. + uid, gid = 1000, 50 + log.Printf("Boot2Docker is in use. Deploying workaround. "+ + "Using UID=%d GID=%d", uid, gid) + } + + return append(args, + "--env", "EXEC_UID="+strconv.Itoa(uid), + "--env", "EXEC_GID="+strconv.Itoa(gid), + ), nil +} + +// addFileToZip adds a file (or directory) to a zip archive. +func addFileToZip(ar *zip.Writer, baseDir string, pkgFile PackageFile) error { + return filepath.Walk(pkgFile.Source, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + header, err := zip.FileInfoHeader(info) + if err != nil { + return err + } + + if info.Mode().IsRegular() && pkgFile.Mode > 0 { + header.SetMode(pkgFile.Mode & os.ModePerm) + } else if info.IsDir() { + header.SetMode(0755) + } + + if filepath.IsAbs(pkgFile.Target) { + baseDir = "" + } + + relPath, err := filepath.Rel(pkgFile.Source, path) + if err != nil { + return err + } + + header.Name = filepath.Join(baseDir, pkgFile.Target, relPath) + + if info.IsDir() { + header.Name += string(filepath.Separator) + } else { + header.Method = zip.Deflate + } + + if mg.Verbose() { + log.Println("Adding", header.Mode(), header.Name) + } + + w, err := ar.CreateHeader(header) + if err != nil { + return err + } + + if info.IsDir() { + return nil + } + + file, err := os.Open(path) + if err != nil { + return err + } + defer file.Close() + + if _, err = io.Copy(w, file); err != nil { + return err + } + return file.Close() + }) +} + +// addFileToTar adds a file (or directory) to a tar archive. +func addFileToTar(ar *tar.Writer, baseDir string, pkgFile PackageFile) error { + return filepath.Walk(pkgFile.Source, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + header, err := tar.FileInfoHeader(info, info.Name()) + if err != nil { + return err + } + header.Uname, header.Gname = "root", "root" + header.Uid, header.Gid = 0, 0 + + if info.Mode().IsRegular() && pkgFile.Mode > 0 { + header.Mode = int64(pkgFile.Mode & os.ModePerm) + } else if info.IsDir() { + header.Mode = int64(0755) + } + + if filepath.IsAbs(pkgFile.Target) { + baseDir = "" + } + + relPath, err := filepath.Rel(pkgFile.Source, path) + if err != nil { + return err + } + + header.Name = filepath.Join(baseDir, pkgFile.Target, relPath) + if info.IsDir() { + header.Name += string(filepath.Separator) + } + + if mg.Verbose() { + log.Println("Adding", os.FileMode(header.Mode), header.Name) + } + if err := ar.WriteHeader(header); err != nil { + return err + } + + if info.IsDir() { + return nil + } + + file, err := os.Open(path) + if err != nil { + return err + } + defer file.Close() + + if _, err = io.Copy(ar, file); err != nil { + return err + } + return file.Close() + }) +} + +// PackageDMG packages the Beat into a .dmg file containing an installer pkg +// and uninstaller app. +func PackageDMG(spec PackageSpec) error { + if runtime.GOOS != "darwin" { + return errors.New("packaging a dmg requires darwin") + } + + b, err := newDMGBuilder(spec) + if err != nil { + return err + } + + return b.Build() +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/platforms.go b/vendor/github.com/elastic/beats/dev-tools/mage/platforms.go new file mode 100644 index 00000000..c6039c55 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/platforms.go @@ -0,0 +1,464 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "sort" + "strings" + + "github.com/pkg/errors" +) + +// BuildPlatforms is a list of GOOS/GOARCH pairs supported by Go. +// The list originated from 'go tool dist list -json'. +var BuildPlatforms = BuildPlatformList{ + {"android/386", CGOSupported}, + {"android/amd64", CGOSupported}, + {"android/arm", CGOSupported}, + {"android/arm64", CGOSupported}, + {"darwin/386", CGOSupported | CrossBuildSupported}, + {"darwin/amd64", CGOSupported | CrossBuildSupported | Default}, + {"darwin/arm", CGOSupported}, + {"darwin/arm64", CGOSupported}, + {"dragonfly/amd64", CGOSupported}, + {"freebsd/386", CGOSupported}, + {"freebsd/amd64", CGOSupported}, + {"freebsd/arm", 0}, + {"linux/386", CGOSupported | CrossBuildSupported | Default}, + {"linux/amd64", CGOSupported | CrossBuildSupported | Default}, + {"linux/armv5", CGOSupported | CrossBuildSupported}, + {"linux/armv6", CGOSupported | CrossBuildSupported}, + {"linux/armv7", CGOSupported | CrossBuildSupported}, + {"linux/arm64", CGOSupported | CrossBuildSupported}, + {"linux/mips", CGOSupported | CrossBuildSupported}, + {"linux/mips64", CGOSupported | CrossBuildSupported}, + {"linux/mips64le", CGOSupported | CrossBuildSupported}, + {"linux/mipsle", CGOSupported | CrossBuildSupported}, + {"linux/ppc64", CrossBuildSupported}, + {"linux/ppc64le", CGOSupported | CrossBuildSupported}, + {"linux/s390x", CGOSupported | CrossBuildSupported}, + {"nacl/386", 0}, + {"nacl/amd64p32", 0}, + {"nacl/arm", 0}, + {"netbsd/386", CGOSupported}, + {"netbsd/amd64", CGOSupported}, + {"netbsd/arm", CGOSupported}, + {"openbsd/386", CGOSupported}, + {"openbsd/amd64", CGOSupported}, + {"openbsd/arm", 0}, + {"plan9/386", 0}, + {"plan9/amd64", 0}, + {"plan9/arm", 0}, + {"solaris/amd64", CGOSupported}, + {"windows/386", CGOSupported | CrossBuildSupported | Default}, + {"windows/amd64", CGOSupported | CrossBuildSupported | Default}, +} + +// PlatformFeature specifies features that are supported for a platform. +type PlatformFeature uint8 + +// List of PlatformFeature types. +const ( + CGOSupported PlatformFeature = 1 << iota // CGO is supported. + CrossBuildSupported // Cross-build supported by golang-crossbuild. + Default // Built by default on crossBuild and package. +) + +var platformFlagNames = map[PlatformFeature]string{ + CGOSupported: "cgo", + CrossBuildSupported: "xbuild", + Default: "default", +} + +// String returns a string representation of the platform features. +func (f PlatformFeature) String() string { + if f == 0 { + return "none" + } + + var names []string + for value, name := range platformFlagNames { + if f&value > 0 { + names = append(names, name) + } + } + + return strings.Join(names, "|") +} + +// CanCrossBuild returns true if cross-building is supported by +// golang-crossbuild. +func (f PlatformFeature) CanCrossBuild() bool { + return f&CrossBuildSupported > 0 +} + +// SupportsCGO returns true if CGO is supported. +func (f PlatformFeature) SupportsCGO() bool { + return f&CGOSupported > 0 +} + +// BuildPlatform represents a target platform for builds. +type BuildPlatform struct { + Name string + Flags PlatformFeature +} + +// GOOS returns the GOOS value contained in the name. +func (p BuildPlatform) GOOS() string { + idx := strings.IndexByte(p.Name, '/') + if idx == -1 { + return p.Name + } + return p.Name[:idx] +} + +// Arch returns the architecture value contained in the name. +func (p BuildPlatform) Arch() string { + idx := strings.IndexByte(p.Name, '/') + if idx == -1 { + return "" + } + return p.Name[strings.IndexByte(p.Name, '/')+1:] +} + +// GOARCH returns the GOARCH value associated with the architecture contained +// in the name. For ARM the Arch and GOARCH can differ because the GOARM value +// is encoded in the Arch value. +func (p BuildPlatform) GOARCH() string { + // Allow armv7 to be interpreted as GOARCH=arm GOARM=7. + arch := p.Arch() + if strings.HasPrefix(arch, "armv") { + return "arm" + } + return arch +} + +// GOARM returns the ARM version. +func (p BuildPlatform) GOARM() string { + arch := p.Arch() + if strings.HasPrefix(arch, "armv") { + return strings.TrimPrefix(arch, "armv") + } + return "" +} + +// Attributes returns a new PlatformAttributes. +func (p BuildPlatform) Attributes() PlatformAttributes { + return MakePlatformAttributes(p.GOOS(), p.GOARCH(), p.GOARM()) +} + +// PlatformAttributes contains all of the data that can be extracted from a +// BuildPlatform name. +type PlatformAttributes struct { + Name string + GOOS string + GOARCH string + GOARM string + Arch string +} + +// MakePlatformAttributes returns a new PlatformAttributes. +func MakePlatformAttributes(goos, goarch, goarm string) PlatformAttributes { + arch := goarch + if goarch == "arm" && goarm != "" { + arch += "v" + goarm + } + + name := goos + if arch != "" { + name += "/" + arch + } + + return PlatformAttributes{ + Name: name, + GOOS: goos, + GOARCH: goarch, + GOARM: goarm, + Arch: arch, + } +} + +// String returns the string representation of the platform which has the format +// of "GOOS/Arch". +func (p PlatformAttributes) String() string { + return p.Name +} + +// BuildPlatformList is a list of BuildPlatforms that supports filtering. +type BuildPlatformList []BuildPlatform + +// Get returns the BuildPlatform matching the given name. +func (list BuildPlatformList) Get(name string) (BuildPlatform, bool) { + for _, bp := range list { + if bp.Name == name { + return bp, true + } + } + return BuildPlatform{}, false +} + +// Defaults returns the default platforms contained in the list. +func (list BuildPlatformList) Defaults() BuildPlatformList { + return list.filter(func(p BuildPlatform) bool { + return p.Flags&Default > 0 + }) +} + +// CrossBuild returns the platforms that support cross-building. +func (list BuildPlatformList) CrossBuild() BuildPlatformList { + return list.filter(func(p BuildPlatform) bool { + return p.Flags&CrossBuildSupported > 0 + }) +} + +// filter returns the platforms that match the given predicate. +func (list BuildPlatformList) filter(pred func(p BuildPlatform) bool) BuildPlatformList { + var out BuildPlatformList + for _, item := range list { + if pred(item) { + out = append(out, item) + } + } + return out +} + +// Remove returns a copy of list without platforms matching name. +func (list BuildPlatformList) Remove(name string) BuildPlatformList { + attrs := BuildPlatform{Name: name}.Attributes() + + if attrs.Arch == "" { + // Filter by GOOS only. + return list.filter(func(bp BuildPlatform) bool { + return bp.GOOS() != attrs.GOOS + }) + } + + return list.filter(func(bp BuildPlatform) bool { + return !(bp.GOOS() == attrs.GOOS && bp.Arch() == attrs.Arch) + }) +} + +// Select returns a new list containing the platforms that match name. +func (list BuildPlatformList) Select(name string) BuildPlatformList { + attrs := BuildPlatform{Name: name}.Attributes() + + if attrs.Arch == "" { + // Filter by GOOS only. + return list.filter(func(bp BuildPlatform) bool { + return bp.GOOS() == attrs.GOOS + }) + } + + return list.filter(func(bp BuildPlatform) bool { + return bp.GOOS() == attrs.GOOS && bp.Arch() == attrs.Arch + }) +} + +type platformExpression struct { + Add []string + Select []string + SelectCrossBuild bool + Remove []string +} + +func newPlatformExpression(expr string) (*platformExpression, error) { + if strings.TrimSpace(expr) == "" { + return nil, nil + } + + pe := &platformExpression{} + + // Parse the expression. + words := strings.FieldsFunc(expr, isSeparator) + for _, w := range words { + if strings.HasPrefix(w, "+") { + pe.Add = append(pe.Add, strings.TrimPrefix(w, "+")) + } else if strings.HasPrefix(w, "!") { + pe.Remove = append(pe.Remove, strings.TrimPrefix(w, "!")) + } else if w == "xbuild" { + pe.SelectCrossBuild = true + } else { + pe.Select = append(pe.Select, w) + } + } + + // Validate the names used. + checks := make([]string, 0, len(pe.Add)+len(pe.Select)+len(pe.Remove)) + checks = append(checks, pe.Add...) + checks = append(checks, pe.Select...) + checks = append(checks, pe.Remove...) + + for _, name := range checks { + if name == "all" || name == "defaults" { + continue + } + + var valid bool + for _, bp := range BuildPlatforms { + if bp.Name == name || bp.GOOS() == name { + valid = true + break + } + } + + if !valid { + return nil, errors.Errorf("invalid platform in expression: %v", name) + } + } + + return pe, nil +} + +// NewPlatformList returns a new BuildPlatformList based on given expression. +// +// By default the initial set include only the platforms designated as defaults. +// To add additional platforms to list use an addition term that is designated +// with a plug sign (e.g. "+netbsd" or "+linux/armv7"). Or you may use "+all" +// to change the initial set to include all possible platforms then filter +// from there (e.g. "+all linux windows"). +// +// The expression can consists of selections (e.g. "linux") and/or +// removals (e.g."!windows"). Each term can be valid GOOS or a valid GOOS/Arch +// pair. +// +// "xbuild" is a special selection term used to select all platforms that are +// cross-build eligible. +// "defaults" is a special selection or removal term that contains all platforms +// designated as a default. +// "all" is a special addition term for adding all valid GOOS/Arch pairs to the +// set. +func NewPlatformList(expr string) BuildPlatformList { + pe, err := newPlatformExpression(expr) + if err != nil { + panic(err) + } + if pe == nil { + return BuildPlatforms.Defaults() + } + + var out BuildPlatformList + if len(pe.Add) == 0 || (len(pe.Select) == 0 && len(pe.Remove) == 0) { + // Bootstrap list with default platforms when the expression is + // exclusively adds OR exclusively selects and removes. + out = BuildPlatforms.Defaults() + } + + all := BuildPlatforms + for _, name := range pe.Add { + if name == "all" { + out = make(BuildPlatformList, len(all)) + copy(out, all) + break + } + out = append(out, all.Select(name)...) + } + + if len(pe.Select) > 0 { + var selected BuildPlatformList + for _, name := range pe.Select { + selected = append(selected, out.Select(name)...) + } + out = selected + } + + for _, name := range pe.Remove { + if name == "defaults" { + for _, defaultBP := range all.Defaults() { + out = out.Remove(defaultBP.Name) + } + continue + } + out = out.Remove(name) + } + + if pe.SelectCrossBuild { + out = out.CrossBuild() + } + return out.deduplicate() +} + +// Filter creates a new list based on the provided expression. +// +// The expression can consists of selections (e.g. "linux") and/or +// removals (e.g."!windows"). Each term can be valid GOOS or a valid GOOS/Arch +// pair. +// +// "xbuild" is a special selection term used to select all platforms that are +// cross-build eligible. +// "defaults" is a special selection or removal term that contains all platforms +// designated as a default. +func (list BuildPlatformList) Filter(expr string) BuildPlatformList { + pe, err := newPlatformExpression(expr) + if err != nil { + panic(err) + } + if pe == nil { + return list + } + if len(pe.Add) > 0 { + panic(errors.Errorf("adds (%v) cannot be used in filter expressions", + strings.Join(pe.Add, ", "))) + } + + var out BuildPlatformList + if len(pe.Select) == 0 && !pe.SelectCrossBuild { + // Filter is only removals so clone the original list. + out = append(out, list...) + } + + if pe.SelectCrossBuild { + out = append(out, list.CrossBuild()...) + } + for _, name := range pe.Select { + if name == "defaults" { + out = append(out, list.Defaults()...) + continue + } + out = append(out, list.Select(name)...) + } + + for _, name := range pe.Remove { + if name == "defaults" { + for _, defaultBP := range BuildPlatforms.Defaults() { + out = out.Remove(defaultBP.Name) + } + continue + } + out = out.Remove(name) + } + + return out.deduplicate() +} + +// deduplicate removes duplicate platforms and sorts the list. +func (list BuildPlatformList) deduplicate() BuildPlatformList { + set := map[string]BuildPlatform{} + for _, item := range list { + set[item.Name] = item + } + + var out BuildPlatformList + for _, v := range set { + out = append(out, v) + } + + sort.Slice(out, func(i, j int) bool { + return out[i].Name < out[j].Name + }) + return out +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/settings.go b/vendor/github.com/elastic/beats/dev-tools/mage/settings.go new file mode 100644 index 00000000..c49d1156 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/settings.go @@ -0,0 +1,574 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mage + +import ( + "fmt" + "go/build" + "io/ioutil" + "log" + "os" + "path/filepath" + "regexp" + "strconv" + "strings" + "sync" + "time" + + "github.com/magefile/mage/sh" + "github.com/pkg/errors" + "golang.org/x/tools/go/vcs" +) + +const ( + fpmVersion = "1.10.0" + + // Docker images. See https://github.com/elastic/golang-crossbuild. + beatsFPMImage = "docker.elastic.co/beats-dev/fpm" + beatsCrossBuildImage = "docker.elastic.co/beats-dev/golang-crossbuild" + + elasticBeatsImportPath = "github.com/elastic/beats" +) + +// Common settings with defaults derived from files, CWD, and environment. +var ( + GOOS = build.Default.GOOS + GOARCH = build.Default.GOARCH + GOARM = EnvOr("GOARM", "") + Platform = MakePlatformAttributes(GOOS, GOARCH, GOARM) + BinaryExt = "" + + BeatName = EnvOr("BEAT_NAME", filepath.Base(CWD())) + BeatServiceName = EnvOr("BEAT_SERVICE_NAME", BeatName) + BeatIndexPrefix = EnvOr("BEAT_INDEX_PREFIX", BeatName) + BeatDescription = EnvOr("BEAT_DESCRIPTION", "") + BeatVendor = EnvOr("BEAT_VENDOR", "Elastic") + BeatLicense = EnvOr("BEAT_LICENSE", "ASL 2.0") + BeatURL = EnvOr("BEAT_URL", "https://www.elastic.co/products/beats/"+BeatName) + + Snapshot bool + + FuncMap = map[string]interface{}{ + "beat_doc_branch": BeatDocBranch, + "beat_version": BeatVersion, + "commit": CommitHash, + "date": BuildDate, + "elastic_beats_dir": ElasticBeatsDir, + "go_version": GoVersion, + "repo": GetProjectRepoInfo, + "title": strings.Title, + "tolower": strings.ToLower, + } +) + +func init() { + if GOOS == "windows" { + BinaryExt = ".exe" + } + + var err error + Snapshot, err = strconv.ParseBool(EnvOr("SNAPSHOT", "false")) + if err != nil { + panic(errors.Errorf("failed to parse SNAPSHOT value", err)) + } +} + +// EnvMap returns map containing the common settings variables and all variables +// from the environment. args are appended to the output prior to adding the +// environment variables (so env vars have the highest precedence). +func EnvMap(args ...map[string]interface{}) map[string]interface{} { + envMap := varMap(args...) + + // Add the environment (highest precedence). + for _, e := range os.Environ() { + env := strings.SplitN(e, "=", 2) + envMap[env[0]] = env[1] + } + + return envMap +} + +func varMap(args ...map[string]interface{}) map[string]interface{} { + data := map[string]interface{}{ + "GOOS": GOOS, + "GOARCH": GOARCH, + "GOARM": GOARM, + "Platform": Platform, + "BinaryExt": BinaryExt, + "BeatName": BeatName, + "BeatServiceName": BeatServiceName, + "BeatIndexPrefix": BeatIndexPrefix, + "BeatDescription": BeatDescription, + "BeatVendor": BeatVendor, + "BeatLicense": BeatLicense, + "BeatURL": BeatURL, + "Snapshot": Snapshot, + } + + // Add the extra args to the map. + for _, m := range args { + for k, v := range m { + data[k] = v + } + } + + return data +} + +func dumpVariables() (string, error) { + var dumpTemplate = `## Variables + +GOOS = {{.GOOS}} +GOARCH = {{.GOARCH}} +GOARM = {{.GOARM}} +Platform = {{.Platform}} +BinaryExt = {{.BinaryExt}} +BeatName = {{.BeatName}} +BeatServiceName = {{.BeatServiceName}} +BeatIndexPrefix = {{.BeatIndexPrefix}} +BeatDescription = {{.BeatDescription}} +BeatVendor = {{.BeatVendor}} +BeatLicense = {{.BeatLicense}} +BeatURL = {{.BeatURL}} + +## Functions + +beat_doc_branch = {{ beat_doc_branch }} +beat_version = {{ beat_version }} +commit = {{ commit }} +date = {{ date }} +elastic_beats_dir = {{ elastic_beats_dir }} +go_version = {{ go_version }} +repo.RootImportPath = {{ repo.RootImportPath }} +repo.RootDir = {{ repo.RootDir }} +repo.ImportPath = {{ repo.ImportPath }} +repo.SubDir = {{ repo.SubDir }} +` + + return Expand(dumpTemplate) +} + +// DumpVariables writes the template variables and values to stdout. +func DumpVariables() error { + out, err := dumpVariables() + if err != nil { + return err + } + + fmt.Println(out) + return nil +} + +var ( + commitHash string + commitHashOnce sync.Once +) + +// CommitHash returns the full length git commit hash. +func CommitHash() (string, error) { + var err error + commitHashOnce.Do(func() { + commitHash, err = sh.Output("git", "rev-parse", "HEAD") + }) + return commitHash, err +} + +var ( + elasticBeatsDirValue string + elasticBeatsDirErr error + elasticBeatsDirLock sync.Mutex +) + +// ElasticBeatsDir returns the path to Elastic beats dir. +func ElasticBeatsDir() (string, error) { + elasticBeatsDirLock.Lock() + defer elasticBeatsDirLock.Unlock() + + if elasticBeatsDirValue != "" || elasticBeatsDirErr != nil { + return elasticBeatsDirValue, elasticBeatsDirErr + } + + elasticBeatsDirValue, elasticBeatsDirErr = findElasticBeatsDir() + if elasticBeatsDirErr == nil { + log.Println("Found Elastic Beats dir at", elasticBeatsDirValue) + } + return elasticBeatsDirValue, elasticBeatsDirErr +} + +// findElasticBeatsDir attempts to find the root of the Elastic Beats directory. +// It checks to see if the current project is elastic/beats, and then if not +// checks the vendor directory. +// +// If your project places the Beats files in a different location (specifically +// the dev-tools/ contents) then you can use SetElasticBeatsDir(). +func findElasticBeatsDir() (string, error) { + repo, err := GetProjectRepoInfo() + if err != nil { + return "", err + } + + if repo.IsElasticBeats() { + return repo.RootDir, nil + } + + const devToolsImportPath = elasticBeatsImportPath + "/dev-tools/mage" + + // Search in project vendor directories. + searchPaths := []string{ + filepath.Join(repo.RootDir, repo.SubDir, "vendor", devToolsImportPath), + filepath.Join(repo.RootDir, "vendor", devToolsImportPath), + } + + for _, path := range searchPaths { + if _, err := os.Stat(path); err == nil { + return filepath.Join(path, "../.."), nil + } + } + + return "", errors.Errorf("failed to find %v in the project's vendor", devToolsImportPath) +} + +// SetElasticBeatsDir explicitly sets the location of the Elastic Beats +// directory. If not set then it will attempt to locate it. +func SetElasticBeatsDir(dir string) { + elasticBeatsDirLock.Lock() + defer elasticBeatsDirLock.Unlock() + + info, err := os.Stat(dir) + if err != nil { + panic(errors.Wrapf(err, "failed to read elastic beats dir at %v", dir)) + } + + if !info.IsDir() { + panic(errors.Errorf("elastic beats dir=%v is not a directory", dir)) + } + + elasticBeatsDirValue = filepath.Clean(dir) +} + +var ( + buildDate = time.Now().UTC().Format(time.RFC3339) +) + +// BuildDate returns the time that the build started. +func BuildDate() string { + return buildDate +} + +var ( + goVersionValue string + goVersionErr error + goVersionOnce sync.Once +) + +// GoVersion returns the version of Go defined in the project's .go-version +// file. +func GoVersion() (string, error) { + goVersionOnce.Do(func() { + goVersionValue = os.Getenv("BEAT_GO_VERSION") + if goVersionValue != "" { + return + } + + goVersionValue, goVersionErr = getBuildVariableSources().GetGoVersion() + }) + + return goVersionValue, goVersionErr +} + +var ( + beatVersionRegex = regexp.MustCompile(`(?m)^const defaultBeatVersion = "(.+)"\r?$`) + beatVersionValue string + beatVersionErr error + beatVersionOnce sync.Once +) + +// BeatVersion returns the Beat's version. The value can be overridden by +// setting BEAT_VERSION in the environment. +func BeatVersion() (string, error) { + beatVersionOnce.Do(func() { + beatVersionValue = os.Getenv("BEAT_VERSION") + if beatVersionValue != "" { + return + } + + beatVersionValue, beatVersionErr = getBuildVariableSources().GetBeatVersion() + }) + + return beatVersionValue, beatVersionErr +} + +var ( + beatDocBranchRegex = regexp.MustCompile(`(?m)doc-branch:\s*([^\s]+)\r?$`) + beatDocBranchValue string + beatDocBranchErr error + beatDocBranchOnce sync.Once +) + +// BeatDocBranch returns the documentation branch name associated with the +// Beat branch. +func BeatDocBranch() (string, error) { + beatDocBranchOnce.Do(func() { + beatDocBranchValue = os.Getenv("BEAT_DOC_BRANCH") + if beatDocBranchValue != "" { + return + } + + beatDocBranchValue, beatDocBranchErr = getBuildVariableSources().GetDocBranch() + }) + + return beatDocBranchValue, beatDocBranchErr +} + +// --- BuildVariableSources + +var ( + // DefaultBeatBuildVariableSources contains the default locations build + // variables are read from by Elastic Beats. + DefaultBeatBuildVariableSources = &BuildVariableSources{ + BeatVersion: "{{ elastic_beats_dir }}/libbeat/version/version.go", + GoVersion: "{{ elastic_beats_dir }}/.go-version", + DocBranch: "{{ elastic_beats_dir }}/libbeat/docs/version.asciidoc", + } + + buildVariableSources *BuildVariableSources + buildVariableSourcesLock sync.Mutex +) + +// SetBuildVariableSources sets the BuildVariableSources that defines where +// certain build data should be sourced from. Community Beats must call this. +func SetBuildVariableSources(s *BuildVariableSources) { + buildVariableSourcesLock.Lock() + defer buildVariableSourcesLock.Unlock() + + buildVariableSources = s +} + +func getBuildVariableSources() *BuildVariableSources { + buildVariableSourcesLock.Lock() + defer buildVariableSourcesLock.Unlock() + + if buildVariableSources != nil { + return buildVariableSources + } + + repo, err := GetProjectRepoInfo() + if err != nil { + panic(err) + } + if repo.IsElasticBeats() { + buildVariableSources = DefaultBeatBuildVariableSources + return buildVariableSources + } + + panic(errors.Errorf("magefile must call mage.SetBuildVariableSources() "+ + "because it is not an elastic beat (repo=%+v)", repo.RootImportPath)) +} + +// BuildVariableSources is used to explicitly define what files contain build +// variables and how to parse the values from that file. This removes ambiguity +// about where the data is sources and allows a degree of customization for +// community Beats. +// +// Default parsers are used if one is not defined. +type BuildVariableSources struct { + // File containing the Beat version. + BeatVersion string + + // Parses the Beat version from the BeatVersion file. + BeatVersionParser func(data []byte) (string, error) + + // File containing the Go version to be used in cross-builds. + GoVersion string + + // Parses the Go version from the GoVersion file. + GoVersionParser func(data []byte) (string, error) + + // File containing the documentation branch. + DocBranch string + + // Parses the documentation branch from the DocBranch file. + DocBranchParser func(data []byte) (string, error) +} + +func (s *BuildVariableSources) expandVar(in string) (string, error) { + return expandTemplate("inline", in, map[string]interface{}{ + "elastic_beats_dir": ElasticBeatsDir, + }) +} + +// GetBeatVersion reads the BeatVersion file and parses the version from it. +func (s *BuildVariableSources) GetBeatVersion() (string, error) { + file, err := s.expandVar(s.BeatVersion) + if err != nil { + return "", err + } + + data, err := ioutil.ReadFile(file) + if err != nil { + return "", errors.Wrapf(err, "failed to read beat version file=%v", file) + } + + if s.BeatVersionParser == nil { + s.BeatVersionParser = parseBeatVersion + } + return s.BeatVersionParser(data) +} + +// GetGoVersion reads the GoVersion file and parses the version from it. +func (s *BuildVariableSources) GetGoVersion() (string, error) { + file, err := s.expandVar(s.GoVersion) + if err != nil { + return "", err + } + + data, err := ioutil.ReadFile(file) + if err != nil { + return "", errors.Wrapf(err, "failed to read go version file=%v", file) + } + + if s.GoVersionParser == nil { + s.GoVersionParser = parseGoVersion + } + return s.GoVersionParser(data) +} + +// GetDocBranch reads the DocBranch file and parses the branch from it. +func (s *BuildVariableSources) GetDocBranch() (string, error) { + file, err := s.expandVar(s.DocBranch) + if err != nil { + return "", err + } + + data, err := ioutil.ReadFile(file) + if err != nil { + return "", errors.Wrapf(err, "failed to read doc branch file=%v", file) + } + + if s.DocBranchParser == nil { + s.DocBranchParser = parseDocBranch + } + return s.DocBranchParser(data) +} + +func parseBeatVersion(data []byte) (string, error) { + matches := beatVersionRegex.FindSubmatch(data) + if len(matches) == 2 { + return string(matches[1]), nil + } + + return "", errors.New("failed to parse beat version file") +} + +func parseGoVersion(data []byte) (string, error) { + return strings.TrimSpace(string(data)), nil +} + +func parseDocBranch(data []byte) (string, error) { + matches := beatDocBranchRegex.FindSubmatch(data) + if len(matches) == 2 { + return string(matches[1]), nil + } + + return "", errors.New("failed to parse beat doc branch") +} + +// --- ProjectRepoInfo + +// ProjectRepoInfo contains information about the project's repo. +type ProjectRepoInfo struct { + RootImportPath string // Import path at the project root. + RootDir string // Root directory of the project. + ImportPath string // Import path of the current directory. + SubDir string // Relative path from the root dir to the current dir. +} + +// IsElasticBeats returns true if the current project is +// github.com/elastic/beats. +func (r *ProjectRepoInfo) IsElasticBeats() bool { + return r.RootImportPath == elasticBeatsImportPath +} + +var ( + repoInfoValue *ProjectRepoInfo + repoInfoErr error + repoInfoOnce sync.Once +) + +// GetProjectRepoInfo returns information about the repo including the root +// import path and the current directory's import path. +func GetProjectRepoInfo() (*ProjectRepoInfo, error) { + repoInfoOnce.Do(func() { + repoInfoValue, repoInfoErr = getProjectRepoInfo() + }) + + return repoInfoValue, repoInfoErr +} + +func getProjectRepoInfo() (*ProjectRepoInfo, error) { + var ( + cwd = CWD() + rootImportPath string + srcDir string + ) + + // Search upward from the CWD to determine the project root based on VCS. + var errs []string + for _, gopath := range filepath.SplitList(build.Default.GOPATH) { + gopath = filepath.Clean(gopath) + + if !strings.HasPrefix(cwd, gopath) { + // Fixes an issue on macOS when /var is actually /private/var. + var err error + gopath, err = filepath.EvalSymlinks(gopath) + if err != nil { + errs = append(errs, err.Error()) + continue + } + } + + srcDir = filepath.Join(gopath, "src") + _, root, err := vcs.FromDir(cwd, srcDir) + if err != nil { + // Try the next gopath. + errs = append(errs, err.Error()) + continue + } + rootImportPath = root + break + } + if rootImportPath == "" { + return nil, errors.Errorf("failed to determine root import path (Did "+ + "you git init?, Is the project in the GOPATH? GOPATH=%v, CWD=%v?): %v", + build.Default.GOPATH, cwd, errs) + } + + rootDir := filepath.Join(srcDir, rootImportPath) + subDir, err := filepath.Rel(rootDir, cwd) + if err != nil { + return nil, errors.Wrap(err, "failed to get relative path to repo root") + } + importPath := filepath.ToSlash(filepath.Join(rootImportPath, subDir)) + + return &ProjectRepoInfo{ + RootImportPath: rootImportPath, + RootDir: rootDir, + SubDir: subDir, + ImportPath: importPath, + }, nil +} diff --git a/vendor/github.com/elastic/beats/dev-tools/mage/testdata/config.yml b/vendor/github.com/elastic/beats/dev-tools/mage/testdata/config.yml new file mode 100644 index 00000000..3b5bf4a1 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/mage/testdata/config.yml @@ -0,0 +1,7 @@ +brewbeat.modules: +- module: milling +- module: mashing +- module: lautering +- module: boil +- module: fermenting +- module: bottle diff --git a/vendor/github.com/elastic/beats/dev-tools/open_pr b/vendor/github.com/elastic/beats/dev-tools/open_pr index 1bde2d38..4c72f88f 100755 --- a/vendor/github.com/elastic/beats/dev-tools/open_pr +++ b/vendor/github.com/elastic/beats/dev-tools/open_pr @@ -53,7 +53,7 @@ def main(): if args.labels: labels.extend(args.labels.split(",")) if args.wip: - lables += "in progress" + labels += "in progress" # get version and set a version label on the original PR version = get_version(os.getcwd()) diff --git a/vendor/github.com/elastic/beats/dev-tools/package_test.go b/vendor/github.com/elastic/beats/dev-tools/package_test.go deleted file mode 100644 index bc99374e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/package_test.go +++ /dev/null @@ -1,377 +0,0 @@ -package dev_tools - -// This file contains tests that can be run on the generated packages. -// To run these tests use `go test package_test.go`. - -import ( - "archive/tar" - "archive/zip" - "bytes" - "compress/gzip" - "flag" - "io" - "os" - "path/filepath" - "regexp" - "strings" - "testing" - - "github.com/blakesmith/ar" - "github.com/cavaliercoder/go-rpm" -) - -const ( - expectedConfigMode = os.FileMode(0600) - expectedManifestMode = os.FileMode(0644) - expectedModuleFileMode = expectedManifestMode - expectedModuleDirMode = os.FileMode(0755) - expectedConfigUID = 0 - expectedConfigGID = 0 -) - -var ( - configFilePattern = regexp.MustCompile(`.*beat\.yml`) - manifestFilePattern = regexp.MustCompile(`manifest.yml`) - modulesDirPattern = regexp.MustCompile(`modules.d/$`) - modulesFilePattern = regexp.MustCompile(`modules.d/.+`) -) - -var ( - files = flag.String("files", "../build/upload/*/*", "filepath glob containing package files") -) - -func TestRPM(t *testing.T) { - rpms := getFiles(t, regexp.MustCompile(`\.rpm$`)) - for _, rpm := range rpms { - checkRPM(t, rpm) - } -} - -func TestDeb(t *testing.T) { - debs := getFiles(t, regexp.MustCompile(`\.deb$`)) - buf := new(bytes.Buffer) - for _, deb := range debs { - checkDeb(t, deb, buf) - } -} - -func TestTar(t *testing.T) { - tars := getFiles(t, regexp.MustCompile(`\.tar\.gz$`)) - for _, tar := range tars { - checkTar(t, tar) - } -} - -func TestZip(t *testing.T) { - zips := getFiles(t, regexp.MustCompile(`^\w+beat-\S+.zip$`)) - for _, zip := range zips { - checkZip(t, zip) - } -} - -// Sub-tests - -func checkRPM(t *testing.T, file string) { - p, err := readRPM(file) - if err != nil { - t.Error(err) - return - } - - checkConfigPermissions(t, p) - checkConfigOwner(t, p) - checkManifestPermissions(t, p) - checkManifestOwner(t, p) - checkModulesPermissions(t, p) - checkModulesOwner(t, p) -} - -func checkDeb(t *testing.T, file string, buf *bytes.Buffer) { - p, err := readDeb(file, buf) - if err != nil { - t.Error(err) - return - } - - checkConfigPermissions(t, p) - checkConfigOwner(t, p) - checkManifestPermissions(t, p) - checkManifestOwner(t, p) - checkModulesPermissions(t, p) - checkModulesOwner(t, p) -} - -func checkTar(t *testing.T, file string) { - p, err := readTar(file) - if err != nil { - t.Error(err) - return - } - - checkConfigPermissions(t, p) - checkConfigOwner(t, p) - checkManifestPermissions(t, p) - checkModulesPermissions(t, p) - checkModulesOwner(t, p) -} - -func checkZip(t *testing.T, file string) { - p, err := readZip(file) - if err != nil { - t.Error(err) - return - } - - checkConfigPermissions(t, p) - checkManifestPermissions(t, p) - checkModulesPermissions(t, p) -} - -// Verify that the main configuration file is installed with a 0600 file mode. -func checkConfigPermissions(t *testing.T, p *packageFile) { - t.Run(p.Name+" config file permissions", func(t *testing.T) { - for _, entry := range p.Contents { - if configFilePattern.MatchString(entry.File) { - mode := entry.Mode.Perm() - if expectedConfigMode != mode { - t.Errorf("file %v has wrong permissions: expected=%v actual=%v", - entry.File, expectedConfigMode, mode) - } - return - } - } - t.Errorf("no config file found matching %v", configFilePattern) - }) -} - -func checkConfigOwner(t *testing.T, p *packageFile) { - t.Run(p.Name+" config file owner", func(t *testing.T) { - for _, entry := range p.Contents { - if configFilePattern.MatchString(entry.File) { - if expectedConfigUID != entry.UID { - t.Errorf("file %v should be owned by user %v, owner=%v", entry.File, expectedConfigGID, entry.UID) - } - if expectedConfigGID != entry.GID { - t.Errorf("file %v should be owned by group %v, group=%v", entry.File, expectedConfigGID, entry.GID) - } - return - } - } - t.Errorf("no config file found matching %v", configFilePattern) - }) -} - -// Verify that the modules manifest.yml files are installed with a 0644 file mode. -func checkManifestPermissions(t *testing.T, p *packageFile) { - t.Run(p.Name+" manifest file permissions", func(t *testing.T) { - for _, entry := range p.Contents { - if manifestFilePattern.MatchString(entry.File) { - mode := entry.Mode.Perm() - if expectedManifestMode != mode { - t.Errorf("file %v has wrong permissions: expected=%v actual=%v", - entry.File, expectedManifestMode, mode) - } - } - } - }) -} - -// Verify that the manifest owner is root -func checkManifestOwner(t *testing.T, p *packageFile) { - t.Run(p.Name+" manifest file owner", func(t *testing.T) { - for _, entry := range p.Contents { - if manifestFilePattern.MatchString(entry.File) { - if expectedConfigUID != entry.UID { - t.Errorf("file %v should be owned by user %v, owner=%v", entry.File, expectedConfigGID, entry.UID) - } - if expectedConfigGID != entry.GID { - t.Errorf("file %v should be owned by group %v, group=%v", entry.File, expectedConfigGID, entry.GID) - } - } - } - }) -} - -// Verify the permissions of the modules.d dir and its contents. -func checkModulesPermissions(t *testing.T, p *packageFile) { - t.Run(p.Name+" modules.d file permissions", func(t *testing.T) { - for _, entry := range p.Contents { - if modulesFilePattern.MatchString(entry.File) { - mode := entry.Mode.Perm() - if expectedModuleFileMode != mode { - t.Errorf("file %v has wrong permissions: expected=%v actual=%v", - entry.File, expectedModuleFileMode, mode) - } - } else if modulesDirPattern.MatchString(entry.File) { - mode := entry.Mode.Perm() - if expectedModuleDirMode != mode { - t.Errorf("file %v has wrong permissions: expected=%v actual=%v", - entry.File, expectedModuleDirMode, mode) - } - } - } - }) -} - -// Verify the owner of the modules.d dir and its contents. -func checkModulesOwner(t *testing.T, p *packageFile) { - t.Run(p.Name+" modules.d file owner", func(t *testing.T) { - for _, entry := range p.Contents { - if modulesFilePattern.MatchString(entry.File) || modulesDirPattern.MatchString(entry.File) { - if expectedConfigUID != entry.UID { - t.Errorf("file %v should be owned by user %v, owner=%v", entry.File, expectedConfigGID, entry.UID) - } - if expectedConfigGID != entry.GID { - t.Errorf("file %v should be owned by group %v, group=%v", entry.File, expectedConfigGID, entry.GID) - } - } - } - }) -} - -// Helpers - -type packageFile struct { - Name string - Contents map[string]packageEntry -} - -type packageEntry struct { - File string - UID int - GID int - Mode os.FileMode -} - -func getFiles(t *testing.T, pattern *regexp.Regexp) []string { - matches, err := filepath.Glob(*files) - if err != nil { - t.Fatal(err) - } - - files := matches[:0] - for _, f := range matches { - if pattern.MatchString(filepath.Base(f)) { - files = append(files, f) - } - } - - return files -} - -func readRPM(rpmFile string) (*packageFile, error) { - p, err := rpm.OpenPackageFile(rpmFile) - if err != nil { - return nil, err - } - - contents := p.Files() - pf := &packageFile{Name: filepath.Base(rpmFile), Contents: map[string]packageEntry{}} - - for _, file := range contents { - pf.Contents[file.Name()] = packageEntry{ - File: file.Name(), - Mode: file.Mode(), - } - } - - return pf, nil -} - -// readDeb reads the data.tar.gz file from the .deb. -func readDeb(debFile string, dataBuffer *bytes.Buffer) (*packageFile, error) { - file, err := os.Open(debFile) - if err != nil { - return nil, err - } - defer file.Close() - - arReader := ar.NewReader(file) - for { - header, err := arReader.Next() - if err != nil { - if err == io.EOF { - break - } - return nil, err - } - - if strings.HasPrefix(header.Name, "data.tar.gz") { - dataBuffer.Reset() - _, err := io.Copy(dataBuffer, arReader) - if err != nil { - return nil, err - } - - gz, err := gzip.NewReader(dataBuffer) - if err != nil { - return nil, err - } - defer gz.Close() - - return readTarContents(filepath.Base(debFile), gz) - } - } - - return nil, io.EOF -} - -func readTar(tarFile string) (*packageFile, error) { - file, err := os.Open(tarFile) - if err != nil { - return nil, err - } - defer file.Close() - - var fileReader io.ReadCloser = file - if strings.HasSuffix(tarFile, ".gz") { - if fileReader, err = gzip.NewReader(file); err != nil { - return nil, err - } - defer fileReader.Close() - } - - return readTarContents(filepath.Base(tarFile), fileReader) -} - -func readTarContents(tarName string, data io.Reader) (*packageFile, error) { - tarReader := tar.NewReader(data) - - p := &packageFile{Name: tarName, Contents: map[string]packageEntry{}} - for { - header, err := tarReader.Next() - if err != nil { - if err == io.EOF { - break - } - return nil, err - } - - p.Contents[header.Name] = packageEntry{ - File: header.Name, - UID: header.Uid, - GID: header.Gid, - Mode: os.FileMode(header.Mode), - } - } - - return p, nil -} - -func readZip(zipFile string) (*packageFile, error) { - r, err := zip.OpenReader(zipFile) - if err != nil { - return nil, err - } - defer r.Close() - - p := &packageFile{Name: filepath.Base(zipFile), Contents: map[string]packageEntry{}} - for _, f := range r.File { - p.Contents[f.Name] = packageEntry{ - File: f.Name, - Mode: f.Mode(), - } - } - - return p, nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/files/linux/systemd-daemon-reload.sh b/vendor/github.com/elastic/beats/dev-tools/packaging/files/linux/systemd-daemon-reload.sh new file mode 100644 index 00000000..65589fb7 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/files/linux/systemd-daemon-reload.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +systemctl daemon-reload 2> /dev/null +exit 0 diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/packages.yml b/vendor/github.com/elastic/beats/dev-tools/packaging/packages.yml new file mode 100644 index 00000000..c4394162 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/packages.yml @@ -0,0 +1,303 @@ +--- + +# This file contains the package specifications for both Community Beats and +# Official Beats. The shared section contains YAML anchors that are used to +# define common parts of the package in order to not repeat ourselves. + +shared: + - &common + name: '{{.BeatName}}' + service_name: '{{.BeatServiceName}}' + os: '{{.GOOS}}' + arch: '{{.PackageArch}}' + vendor: '{{.BeatVendor}}' + version: '{{ beat_version }}' + license: '{{.BeatLicense}}' + url: '{{.BeatURL}}' + description: '{{.BeatDescription}}' + + # Deb/RPM spec for community beats. + - &deb_rpm_spec + <<: *common + post_install_script: '{{ elastic_beats_dir }}/dev-tools/packaging/files/linux/systemd-daemon-reload.sh' + files: + /usr/share/{{.BeatName}}/bin/{{.BeatName}}{{.BinaryExt}}: + source: build/golang-crossbuild/{{.BeatName}}-{{.GOOS}}-{{.Platform.Arch}}{{.BinaryExt}} + mode: 0755 + /etc/{{.BeatName}}/fields.yml: + source: fields.yml + mode: 0644 + /usr/share/{{.BeatName}}/LICENSE.txt: + source: '{{ repo.RootDir }}/LICENSE.txt' + mode: 0644 + /usr/share/{{.BeatName}}/NOTICE.txt: + source: '{{ repo.RootDir }}/NOTICE.txt' + mode: 0644 + /usr/share/{{.BeatName}}/README.md: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/common/README.md.tmpl' + mode: 0644 + /usr/share/{{.BeatName}}/.build_hash.txt: + content: > + {{ commit }} + mode: 0644 + /etc/{{.BeatName}}/{{.BeatName}}.reference.yml: + source: '{{.BeatName}}.reference.yml' + mode: 0644 + /etc/{{.BeatName}}/{{.BeatName}}.yml: + source: '{{.BeatName}}.yml' + mode: 0600 + config: true + /usr/share/{{.BeatName}}/kibana: + source: _meta/kibana.generated + mode: 0644 + /usr/share/{{.BeatName}}/bin/{{.BeatName}}-god: + source: build/golang-crossbuild/god-{{.GOOS}}-{{.Platform.Arch}} + mode: 0755 + /usr/bin/{{.BeatName}}: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/linux/beatname.sh.tmpl' + mode: 0755 + /lib/systemd/system/{{.BeatServiceName}}.service: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/linux/systemd.unit.tmpl' + mode: 0644 + /etc/init.d/{{.BeatServiceName}}: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/{{.PackageType}}/init.sh.tmpl' + mode: 0755 + + # MacOS pkg spec for community beats. + - &macos_beat_pkg_spec + <<: *common + extra_vars: + # OS X 10.8 Mountain Lion is the oldest supported by Go 1.10. + # https://golang.org/doc/go1.10#ports + min_supported_osx_version: 10.8 + identifier: 'co.{{.BeatVendor | tolower}}.beats.{{.BeatName}}' + install_path: /Library/Application Support + pre_install_script: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/darwin/scripts/preinstall.tmpl' + post_install_script: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/darwin/scripts/postinstall.tmpl' + files: + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/bin/{{.BeatName}}{{.BinaryExt}}: + source: build/golang-crossbuild/{{.BeatName}}-{{.GOOS}}-{{.Platform.Arch}}{{.BinaryExt}} + mode: 0755 + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/LICENSE.txt: + source: '{{ repo.RootDir }}/LICENSE.txt' + mode: 0644 + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/NOTICE.txt: + source: '{{ repo.RootDir }}/NOTICE.txt' + mode: 0644 + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/README.md: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/common/README.md.tmpl' + mode: 0644 + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/.build_hash.txt: + content: > + {{ commit }} + mode: 0644 + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/{{.identifier}}.plist: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/darwin/launchd-daemon.plist.tmpl' + mode: 0644 + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/kibana: + source: _meta/kibana.generated + mode: 0644 + /etc/{{.BeatName}}/fields.yml: + source: fields.yml + mode: 0644 + /etc/{{.BeatName}}/{{.BeatName}}.reference.yml: + source: '{{.BeatName}}.reference.yml' + mode: 0644 + /etc/{{.BeatName}}/{{.BeatName}}.yml: + source: '{{.BeatName}}.yml' + mode: 0600 + config: true + + - &binary_files + '{{.BeatName}}{{.BinaryExt}}': + source: build/golang-crossbuild/{{.BeatName}}-{{.GOOS}}-{{.Platform.Arch}}{{.BinaryExt}} + mode: 0755 + fields.yml: + source: fields.yml + mode: 0644 + LICENSE.txt: + source: '{{ repo.RootDir }}/LICENSE.txt' + mode: 0644 + NOTICE.txt: + source: '{{ repo.RootDir }}/NOTICE.txt' + mode: 0644 + README.md: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/common/README.md.tmpl' + mode: 0644 + .build_hash.txt: + content: > + {{ commit }} + mode: 0644 + '{{.BeatName}}.reference.yml': + source: '{{.BeatName}}.reference.yml' + mode: 0644 + '{{.BeatName}}.yml': + source: '{{.BeatName}}.yml' + mode: 0600 + config: true + kibana: + source: _meta/kibana.generated + mode: 0644 + + # Binary package spec (tar.gz for linux/darwin) for community beats. + - &binary_spec + <<: *common + files: + <<: *binary_files + + # Binary package spec (zip for windows) for community beats. + - &windows_binary_spec + <<: *common + files: + <<: *binary_files + install-service-{{.BeatName}}.ps1: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/windows/install-service.ps1.tmpl' + mode: 0755 + uninstall-service-{{.BeatName}}.ps1: + template: '{{ elastic_beats_dir }}/dev-tools/packaging/templates/windows/uninstall-service.ps1.tmpl' + mode: 0755 + + # + # License modifiers for Apache 2.0 + # + - &apache_license_for_binaries + license: "ASL 2.0" + files: + LICENSE.txt: + source: '{{ repo.RootDir }}/licenses/APACHE-LICENSE-2.0.txt' + mode: 0644 + + - &apache_license_for_deb_rpm + license: "ASL 2.0" + files: + /usr/share/{{.BeatName}}/LICENSE.txt: + source: '{{ repo.RootDir }}/licenses/APACHE-LICENSE-2.0.txt' + mode: 0644 + + - &apache_license_for_macos_pkg + license: "ASL 2.0" + files: + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/LICENSE.txt: + source: '{{ repo.RootDir }}/licenses/APACHE-LICENSE-2.0.txt' + mode: 0644 + + # + # License modifiers for the Elastic License + # + - &elastic_license_for_binaries + license: "Elastic License" + files: + LICENSE.txt: + source: '{{ repo.RootDir }}/licenses/ELASTIC-LICENSE.txt' + mode: 0644 + + - &elastic_license_for_deb_rpm + license: "Elastic License" + files: + /usr/share/{{.BeatName}}/LICENSE.txt: + source: '{{ repo.RootDir }}/licenses/ELASTIC-LICENSE.txt' + mode: 0644 + + - &elastic_license_for_macos_pkg + license: "Elastic License" + files: + /Library/Application Support/{{.BeatVendor}}/{{.BeatName}}/LICENSE.txt: + source: '{{ repo.RootDir }}/licenses/ELASTIC-LICENSE.txt' + mode: 0644 + +# specs is a list of named packaging "flavors". +specs: + # Community Beats + community_beat: + - os: windows + types: [zip] + spec: + <<: *windows_binary_spec + + - os: darwin + types: [tgz] + spec: + <<: *binary_spec + + - os: linux + types: [tgz] + spec: + <<: *binary_spec + + - os: linux + types: [deb, rpm] + spec: + <<: *deb_rpm_spec + + # Official Beats + elastic_beat: + ### + # OSS Packages + ### + - os: windows + types: [zip] + spec: + <<: *windows_binary_spec + <<: *apache_license_for_binaries + name: '{{.BeatName}}-oss' + + - os: darwin + types: [tgz] + spec: + <<: *binary_spec + <<: *apache_license_for_binaries + name: '{{.BeatName}}-oss' + + - os: darwin + types: [dmg] + spec: + <<: *macos_beat_pkg_spec + <<: *apache_license_for_macos_pkg + name: '{{.BeatName}}-oss' + + - os: linux + types: [tgz] + spec: + <<: *binary_spec + <<: *apache_license_for_binaries + name: '{{.BeatName}}-oss' + + - os: linux + types: [deb, rpm] + spec: + <<: *deb_rpm_spec + <<: *apache_license_for_deb_rpm + name: '{{.BeatName}}-oss' + + ### + # Elastic Licensed Packages + ### + - os: windows + types: [zip] + spec: + <<: *windows_binary_spec + <<: *elastic_license_for_binaries + + - os: darwin + types: [tgz] + spec: + <<: *binary_spec + <<: *elastic_license_for_binaries + + - os: darwin + types: [dmg] + spec: + <<: *macos_beat_pkg_spec + <<: *elastic_license_for_macos_pkg + + - os: linux + types: [tgz] + spec: + <<: *binary_spec + <<: *elastic_license_for_binaries + + - os: linux + types: [deb, rpm] + spec: + <<: *deb_rpm_spec + <<: *elastic_license_for_deb_rpm diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/.gitignore b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/.gitignore new file mode 100644 index 00000000..567609b1 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/project.pbxproj b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/project.pbxproj similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/project.pbxproj rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/project.pbxproj diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/xcshareddata/IDETemplateMacros.plist b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/xcshareddata/IDETemplateMacros.plist similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/xcshareddata/IDETemplateMacros.plist rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/xcshareddata/IDETemplateMacros.plist diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/xcuserdata/adrian.xcuserdatad/xcschemes/xcschememanagement.plist b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/xcuserdata/adrian.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane.xcodeproj/xcuserdata/adrian.xcuserdatad/xcschemes/xcschememanagement.plist rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane.xcodeproj/xcuserdata/adrian.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Authorization.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Authorization.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Authorization.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Authorization.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/BeatView.xib b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/BeatView.xib similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/BeatView.xib rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/BeatView.xib diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/BeatsPrefPane.xib b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/BeatsPrefPane.xib similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/BeatsPrefPane.xib rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/BeatsPrefPane.xib diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/EditorWindow.xib b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/EditorWindow.xib similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/EditorWindow.xib rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/EditorWindow.xib diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/pane.xib b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/pane.xib similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Base.lproj/pane.xib rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Base.lproj/pane.xib diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatManager.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatManager.m new file mode 100644 index 00000000..650c745d --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatManager.m @@ -0,0 +1,22 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +#import "BeatManager.h" + +@implementation BeatManager + +@end diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatViewController.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatViewController.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatViewController.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatViewController.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatViewController.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatViewController.m similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatViewController.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatViewController.m diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Beats.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Beats.icns similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Beats.icns rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Beats.icns diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatsPrefPane.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatsPrefPane.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatsPrefPane.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatsPrefPane.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatsPrefPane.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatsPrefPane.m similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatsPrefPane.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/BeatsPrefPane.m diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/EditorWindow.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/EditorWindow.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/EditorWindow.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/EditorWindow.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/EditorWindow.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/EditorWindow.m similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/EditorWindow.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/EditorWindow.m diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Info.plist b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Info.plist similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/Info.plist rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/Info.plist diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/TabViewDelegate.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/TabViewDelegate.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/TabViewDelegate.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/TabViewDelegate.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/TabViewDelegate.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/TabViewDelegate.m similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/TabViewDelegate.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/TabViewDelegate.m diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/beats/Beats.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/beats/Beats.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/beats/Beats.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/beats/Beats.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/beats/BeatsService.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/beats/BeatsService.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/beats/BeatsService.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/beats/BeatsService.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/beats/BeatsService.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/beats/BeatsService.m similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/beats/BeatsService.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/beats/BeatsService.m diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/common/common.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/common/common.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/common/common.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/common/common.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/common/common.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/common/common.m similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/common/common.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/common/common.m diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/config.h b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/config.h similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/config.h rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/config.h diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/en.lproj/beats_preference_pane.strings b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/en.lproj/beats_preference_pane.strings similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/en.lproj/beats_preference_pane.strings rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/beats-preference-pane/en.lproj/beats_preference_pane.strings diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/helper/main.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/helper/main.m similarity index 100% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/helper/main.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/helper/main.m diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/helper/setboot.m b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/helper/setboot.m similarity index 94% rename from vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/helper/setboot.m rename to vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/helper/setboot.m index 9d9320e5..7147c24a 100644 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/helper/setboot.m +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/helper/setboot.m @@ -76,7 +76,7 @@ BOOL setRunAtBoot(NSString* plistPath, BOOL runAtBoot) { err = [output streamError]; } if (err != nil) { - fail([NSString stringWithFormat:@"Error writting property-list. Code=%u `%@`", (unsigned int)[err code], [err localizedDescription]]); + fail([NSString stringWithFormat:@"Error writing property-list. Code=%u `%@`", (unsigned int)[err code], [err localizedDescription]]); return NO; } [output close]; @@ -84,7 +84,7 @@ BOOL setRunAtBoot(NSString* plistPath, BOOL runAtBoot) { NSData *data = [output propertyForKey:NSStreamDataWrittenToMemoryStreamKey]; BOOL success = [data writeToFile:plistPath atomically:YES]; if (!success) { - fail(@"Error overwritting plist file"); + fail(@"Error overwriting plist file"); return NO; } return YES; diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/magefile.go b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/magefile.go new file mode 100644 index 00000000..33a2c9da --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/preference-pane/magefile.go @@ -0,0 +1,158 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" + + "github.com/elastic/beats/dev-tools/mage" +) + +var builder = preferencePaneBuilder{ + Project: "beats-preference-pane.xcodeproj", + Configuration: mage.EnvOr("XCODE_CONFIGURATION", "Release"), + PackageName: "BeatsPrefPane.pkg", + InstallDir: "/Library/PreferencePanes", + Identifier: "co.elastic.beats.preference-pane", + Version: "1.0.0", +} + +// Default specifies the default build target for mage. +var Default = All + +// All build, sign, and package the Beats Preference Pane. +func All() { mg.SerialDeps(Build, Package) } + +// Build builds the preference pane source using xcodebuild. +func Build() error { return builder.Build() } + +// Package packages the pref pane into BeatsPrefPane.pkg. +func Package() error { return builder.Package() } + +// Clean cleans the build artifacts. +func Clean() error { return sh.Rm("build") } + +// --- preferencePaneBuilder + +type preferencePaneBuilder struct { + Project string + Configuration string + PackageName string + InstallDir string + Identifier string + Version string +} + +func (b preferencePaneBuilder) SigningInfo() *mage.AppleSigningInfo { + info, err := mage.GetAppleSigningInfo() + if err != nil { + panic(err) + } + + return info +} + +func (b preferencePaneBuilder) Build() error { + if mage.IsUpToDate("build/Release/Beats.prefPane/Contents/MacOS/Beats", + "helper", "beats-preference-pane", "beats-preference-pane.xcodeproj") { + fmt.Println(">> Building MacOS Preference Pane (UP-TO-DATE)") + return nil + } + + fmt.Println(">> Building MacOS Preference Pane") + err := sh.Run("xcodebuild", "build", + "-project", b.Project, + "-alltargets", + "-configuration", b.Configuration, + // This disables xcodebuild from attempting to codesign. + // We do that in its own build step. + "CODE_SIGN_IDENTITY=", + "CODE_SIGNING_REQUIRED=NO") + if err != nil { + return err + } + + return b.Sign() +} + +func (b preferencePaneBuilder) Sign() error { + if !b.SigningInfo().Sign { + fmt.Println("Skipping signing of MacOS Preference Pane " + + "(APPLE_SIGNING_ENABLED not set to true)") + return nil + } + + codesign := sh.RunCmd("codesign", "-s", b.SigningInfo().App.ID, "--timestamp") + targets := []string{ + filepath.Join("build", b.Configuration, "Beats.prefPane/Contents/MacOS/helper"), + filepath.Join("build", b.Configuration, "Beats.prefPane"), + } + + fmt.Println(">> Signing MacOS Preference Pane") + for _, target := range targets { + if err := codesign(target); err != nil { + return errors.Wrapf(err, "failed to codesign %v", target) + } + } + return nil +} + +func (b preferencePaneBuilder) Package() error { + output := filepath.Join("build", b.PackageName) + input := filepath.Join("build", b.Configuration, "Beats.prefPane") + + if mage.IsUpToDate(output, input) { + fmt.Println(">> Packaging MacOS Preference Pane (UP-TO-DATE)") + return nil + } + + fmt.Println(">> Packaging MacOS Preference Pane") + const pkgroot = "build/pkgroot" + installDir := filepath.Join(pkgroot, b.InstallDir, filepath.Base(input)) + if err := os.MkdirAll(installDir, 0755); err != nil { + return err + } + + if err := mage.Copy(input, installDir); err != nil { + return err + } + + pkgbuild := sh.RunCmd("pkgbuild") + args := []string{ + "--root", pkgroot, + "--identifier", b.Identifier, + "--version", b.Version, + } + if b.SigningInfo().Sign { + args = append(args, "--sign", b.SigningInfo().Installer.ID, "--timestamp") + } else { + fmt.Println("Skipping signing of MacOS " + b.PackageName + + " (APPLE_SIGNING_ENABLED not set to true)") + } + args = append(args, output) + + return pkgbuild(args...) +} diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/common/README.md.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/common/README.md.tmpl new file mode 100644 index 00000000..5754ce7f --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/common/README.md.tmpl @@ -0,0 +1,27 @@ +# Welcome to {{.BeatName | title}} {{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}} + +{{.Description}} + +## Getting Started + +To get started with {{.BeatName | title}}, you need to set up Elasticsearch on +your localhost first. After that, start {{.BeatName | title}} with: + + ./{{.BeatName}} -c {{.BeatName}}.yml -e + +This will start {{.BeatName | title }} and send the data to your Elasticsearch +instance. To load the dashboards for {{.BeatName | title}} into Kibana, run: + + ./{{.BeatName}} setup -e + +For further steps visit the +[Getting started](https://www.elastic.co/guide/en/beats/{{.BeatName}}/{{ beat_doc_branch }}/{{.BeatName}}-getting-started.html) guide. + +## Documentation + +Visit [Elastic.co Docs](https://www.elastic.co/guide/en/beats/{{.BeatName}}/{{ beat_doc_branch }}/index.html) +for the full {{.BeatName | title}} documentation. + +## Release notes + +https://www.elastic.co/guide/en/beats/libbeat/{{ beat_doc_branch }}/release-notes-{{.Version}}.html diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/common/magefile.go.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/common/magefile.go.tmpl new file mode 100644 index 00000000..db7f7132 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/common/magefile.go.tmpl @@ -0,0 +1,77 @@ +// +build mage + +package main + +import ( + "fmt" + "time" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + + "github.com/elastic/beats/dev-tools/mage" +) + +func init() { + mage.BeatDescription = "One sentence description of the Beat." +} + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// GolangCrossBuild build the Beat binary inside of the golang-builder. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) +} + +// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). +func BuildGoDaemon() error { + return mage.BuildGoDaemon() +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return mage.CrossBuild() +} + +// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. +func CrossBuildGoDaemon() error { + return mage.CrossBuildGoDaemon() +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Package packages the Beat for distribution. +// Use SNAPSHOT=true to build snapshots. +// Use PLATFORMS to control the target platforms. +func Package() { + start := time.Now() + defer func() { fmt.Println("package ran for", time.Since(start)) }() + + mage.UseCommunityBeatPackaging() + + mg.Deps(Update) + mg.Deps(CrossBuild, CrossBuildGoDaemon) + mg.SerialDeps(mage.Package, TestPackages) +} + +// TestPackages tests the generated packages (i.e. file modes, owners, groups). +func TestPackages() error { + return mage.TestPackages() +} + +// Update updates the generated files (aka make update). +func Update() error { + return sh.Run("make", "update") +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML("protos") +} diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/README.html.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/README.html.tmpl new file mode 100644 index 00000000..9c2b8687 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/README.html.tmpl @@ -0,0 +1,36 @@ + + + {{.BeatName | title}} {{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}} README + + +

{{.BeatName | title}} {{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}

+ +

{{.Description}}

+ +

Getting Started

+ +

To get started with {{.BeatName | title}}, you need to set up Elasticsearch on +your localhost first. After that, start {{.BeatName | title}} with:

+ +
 ./{{.BeatName}} -c {{.BeatName}}.yml -e
+
+ +

This will start {{.BeatName | title }} and send the data to your Elasticsearch +instance. To load the dashboards for {{.BeatName | title}} into Kibana, run:

+ +
./{{.BeatName}} setup -e
+
+ +

For further steps visit the +Getting started guide.

+ +

Documentation

+ +

Visit Elastic.co Docs +for the full {{.BeatName | title}} documentation.

+ +

Release notes

+ +

https://www.elastic.co/guide/en/beats/libbeat/{{ beat_doc_branch }}/release-notes-{{.Version}}.html

+ + diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/component.plist.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/component.plist.tmpl new file mode 100644 index 00000000..5dd5da85 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/component.plist.tmpl @@ -0,0 +1,5 @@ + + + + + diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/distribution.plist.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/distribution.plist.tmpl new file mode 100644 index 00000000..2224a2fe --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/distribution.plist.tmpl @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + internal-{{.Name}}-{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}{{if .OS}}-{{.OS}}{{end}}{{if .Arch}}-{{.Arch}}{{end}}.pkg + + + {{.BeatName | title}} {{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}} + BeatsPrefPane.pkg + diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/Info.plist.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/Info.plist.tmpl new file mode 100644 index 00000000..3378695b --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/Info.plist.tmpl @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + uninstall.sh + CFBundleIdentifier + {{.identifier}}.uninstaller + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Uninstaller + CFBundlePackageType + APPL + CFBundleShortVersionString + {{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}} + CFBundleVersion + {{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}} + LSMinimumSystemVersion + {{.min_supported_osx_version}} + CFBundleIconFile + uninstaller.icns + + diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/MacOS/uninstall.sh.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/MacOS/uninstall.sh.tmpl new file mode 100644 index 00000000..1b95a66e --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/MacOS/uninstall.sh.tmpl @@ -0,0 +1,65 @@ +#!/bin/bash + +GUI_APP=Finder +IDENTIFIER="{{.identifier}}" + +dialog() { + ICON="$1" + shift + osascript -e "tell app \"$GUI_APP\" to activate" \ + -e "tell app \"$GUI_APP\" to display dialog \"$@\" \ + buttons \"Close\" default button 1 \ + with icon $ICON" +} + +die() { + echo "error: $@" >&2 + dialog stop "$@" + exit 1 +} + +if [ "$(id -u)" -ne 0 ]; then + cmd=$(printf "%q" "$0") + osascript -- - "$cmd" < /dev/null || die "{{.BeatName}} not installed" + +for key in volume location +do + EXP="^$key: " + VAL=$(pkgutil --pkg-info "$IDENTIFIER" | grep "$EXP" | sed "s/$EXP//") + eval $key=\$VAL +done + +BASE="$volume$location" + +test -d "$BASE" || die "Resolved base directory '$BASE' doesn't exist" + +pushd "$BASE" +pkgutil --only-files --files "$IDENTIFIER" | tr '\n' '\0' | xargs -0 -n 1 rm +pkgutil --only-dirs --files "$IDENTIFIER" | sort -r | tr '\n' '\0' | xargs -0 -n 1 rmdir +popd + +pkgutil --forget "$IDENTIFIER" || die "Failed to remove the package from the database" + +# Cleanup runtime files like 'data/' and 'logs/' +BEAT_DIR="{{.install_path}}/{{.Vendor}}/{{.BeatName}}" +if [ -d "$BEAT_DIR" -a -n "{{.BeatName}}" -a -n "{{.Vendor}}" ]; then + rm -rf "$BEAT_DIR" +fi + +dialog note '{{.BeatName | title}} successfully uninstalled' diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/Resources/uninstaller.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/Resources/uninstaller.icns new file mode 100644 index 00000000..5d941bf6 Binary files /dev/null and b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/dmg/Uninstall.app/Contents/Resources/uninstaller.icns differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/auditbeat.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/auditbeat.icns new file mode 100644 index 00000000..02ffab5c Binary files /dev/null and b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/auditbeat.icns differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/filebeat.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/filebeat.icns new file mode 100644 index 00000000..ef9b181f Binary files /dev/null and b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/filebeat.icns differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/heartbeat.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/heartbeat.icns new file mode 100644 index 00000000..24bfa9b7 Binary files /dev/null and b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/heartbeat.icns differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/metricbeat.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/metricbeat.icns new file mode 100644 index 00000000..1960cc83 Binary files /dev/null and b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/metricbeat.icns differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/packetbeat.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/packetbeat.icns new file mode 100644 index 00000000..6dcf2b53 Binary files /dev/null and b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/packetbeat.icns differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/winlogbeat.icns b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/winlogbeat.icns new file mode 100644 index 00000000..0a586235 Binary files /dev/null and b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/icons/winlogbeat.icns differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/launchd-daemon.plist.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/launchd-daemon.plist.tmpl new file mode 100644 index 00000000..68318853 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/launchd-daemon.plist.tmpl @@ -0,0 +1,24 @@ + + + + + Label + {{.identifier}} + ProgramArguments + + {{.install_path}}/{{.BeatVendor}}/{{.BeatName}}/bin/{{.BeatName}} + -c + /etc/{{.BeatName}}/{{.BeatName}}.yml + --path.home + {{.install_path}}/{{.BeatVendor}}/{{.BeatName}} + --path.config + /etc/{{.BeatName}} + --path.data + /var/lib/{{.BeatName}} + --path.logs + /var/log/{{.BeatName}} + + RunAtLoad + + + diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/requirements.plist.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/requirements.plist.tmpl new file mode 100644 index 00000000..ca884996 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/requirements.plist.tmpl @@ -0,0 +1,14 @@ + + + + + os + + {{.min_supported_osx_version}} + + arch + + {{.Arch}} + + + diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/scripts/postinstall.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/scripts/postinstall.tmpl new file mode 100644 index 00000000..ca52f2d5 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/scripts/postinstall.tmpl @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +BEAT_NAME="{{.BeatName}}" +VERSION="{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}" +SCRIPT="postinstall" +INSTALL_DIR="{{.install_path}}/{{.BeatVendor}}/{{.BeatName}}" +IDENTIFIER="{{.identifier}}" + +log() { + LEVEL="$1"; shift + syslog -s -l "$LEVEL" "$BEAT_NAME $SCRIPT: $@" +} + +die() { + log ERROR "Failed: $@" +} + +log WARN "identifier: $IDENTIFIER" +log WARN "version: $VERSION" +log WARN "install_dir: $INSTALL_DIR" + +DAEMON_PLIST="/Library/LaunchDaemons/$IDENTIFIER.plist" +launchctl unload -w "$DAEMON_PLIST" +rm -f "$DAEMON_PLIST" +ln -s "$INSTALL_DIR/$IDENTIFIER.plist" "$DAEMON_PLIST" || die "Unable to create $DAEMON_PLIST symlink" +launchctl load -w "$DAEMON_PLIST" || die "Unable to install launchctl daemon $DAEMON_PLIST" diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/scripts/preinstall.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/scripts/preinstall.tmpl new file mode 100644 index 00000000..20d602bd --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/darwin/scripts/preinstall.tmpl @@ -0,0 +1,2 @@ +#!/usr/bin/env bash + diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/deb/init.sh.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/deb/init.sh.tmpl new file mode 100644 index 00000000..1e793c91 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/deb/init.sh.tmpl @@ -0,0 +1,188 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: {{.ServiceName}} +# Required-Start: $local_fs $network $syslog +# Required-Stop: $local_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: {{.Description}} +# Description: {{.BeatName | title}} is a shipper part of the Elastic Beats +# family. Please see: https://www.elastic.co/products/beats +### END INIT INFO + +# Do NOT "set -e" + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="{{.Description}}" +NAME="{{.BeatName}}" +DAEMON=/usr/share/${NAME}/bin/${NAME} +DAEMON_ARGS="-c /etc/${NAME}/${NAME}.yml -path.home /usr/share/${NAME} -path.config /etc/${NAME} -path.data /var/lib/${NAME} -path.logs /var/log/${NAME}" +TEST_ARGS="-e test config" +PIDFILE=/var/run/{{.ServiceName}}.pid +WRAPPER="/usr/share/${NAME}/bin/${NAME}-god" +BEAT_USER="root" +WRAPPER_ARGS="-r / -n -p $PIDFILE" +SCRIPTNAME=/etc/init.d/{{.ServiceName}} + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/{{.ServiceName}} ] && . /etc/default/{{.ServiceName}} + +[ "$BEAT_USER" != "root" ] && WRAPPER_ARGS="$WRAPPER_ARGS -u $BEAT_USER" +USER_WRAPPER="su" +USER_WRAPPER_ARGS="$BEAT_USER -c" + +if command -v runuser >/dev/null 2>&1; then + USER_WRAPPER="runuser" +fi + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +# +# Function that calls runs the service in foreground +# to test its configuration. +# +do_test() +{ + $USER_WRAPPER $USER_WRAPPER_ARGS "$DAEMON $DAEMON_ARGS $TEST_ARGS" +} + +# +# Function that starts the daemon/service +# +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start \ + --pidfile $PIDFILE \ + --exec $WRAPPER -- $WRAPPER_ARGS -- $DAEMON $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/5/KILL/5 --pidfile $PIDFILE --exec $WRAPPER + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + # Wait for children to finish too if this is a daemon that forks + # and if the daemon is only ever run from this initscript. + # If the above conditions are not satisfied then add some other code + # that waits for the process to drop all resources that could be + # needed by services started subsequently. A last resort is to + # sleep for some time. + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + return "$RETVAL" +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + # + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + # + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --exec $DAEMON + return 0 +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_test + case "$?" in + 0) ;; + *) + log_end_msg 1 + exit 1 + ;; + esac + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$WRAPPER" "$NAME" && exit 0 || exit $? + ;; + #reload|force-reload) + # + # If do_reload() is not implemented then leave this commented out + # and leave 'force-reload' as an alias for 'restart'. + # + #log_daemon_msg "Reloading $DESC" "$NAME" + #do_reload + #log_end_msg $? + #;; + restart|force-reload) + # + # If the "reload" option is implemented then remove the + # 'force-reload' alias + # + log_daemon_msg "Restarting $DESC" "$NAME" + do_test + case "$?" in + 0) ;; + *) + log_end_msg 1 # Old process is still running + exit 1 + ;; + esac + + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/linux/beatname.sh.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/linux/beatname.sh.tmpl new file mode 100644 index 00000000..fce8cfb6 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/linux/beatname.sh.tmpl @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Script to run {{.BeatName | title}} in foreground with the same path settings that +# the init script / systemd unit file would do. + +exec /usr/share/{{.BeatName}}/bin/{{.BeatName}} \ + -path.home /usr/share/{{.BeatName}} \ + -path.config /etc/{{.BeatName}} \ + -path.data /var/lib/{{.BeatName}} \ + -path.logs /var/log/{{.BeatName}} \ + "$@" diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/linux/systemd.unit.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/linux/systemd.unit.tmpl new file mode 100644 index 00000000..5725ba3e --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/linux/systemd.unit.tmpl @@ -0,0 +1,12 @@ +[Unit] +Description={{.Description}} +Documentation={{.URL}} +Wants=network-online.target +After=network-online.target + +[Service] +ExecStart=/usr/share/{{.BeatName}}/bin/{{.BeatName}} -c /etc/{{.BeatName}}/{{.BeatName}}.yml -path.home /usr/share/{{.BeatName}} -path.config /etc/{{.BeatName}} -path.data /var/lib/{{.BeatName}} -path.logs /var/log/{{.BeatName}} +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/rpm/init.sh.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/rpm/init.sh.tmpl new file mode 100644 index 00000000..e9a32ae7 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/rpm/init.sh.tmpl @@ -0,0 +1,119 @@ +#!/bin/bash +# +# {{.ServiceName}} {{.BeatName}} shipper +# +# chkconfig: 2345 98 02 +# description: Starts and stops a single {{.BeatName}} instance on this system +# + +### BEGIN INIT INFO +# Provides: {{.ServiceName}} +# Required-Start: $local_fs $network $syslog +# Required-Stop: $local_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: {{.Description}} +# Description: {{.BeatName | title}} is a shipper part of the Elastic Beats +# family. Please see: https://www.elastic.co/products/beats +### END INIT INFO + + + +PATH=/usr/bin:/sbin:/bin:/usr/sbin +export PATH + +[ -f /etc/sysconfig/{{.ServiceName}} ] && . /etc/sysconfig/{{.ServiceName}} +pidfile=${PIDFILE-/var/run/{{.ServiceName}}.pid} +agent=${BEATS_AGENT-/usr/share/{{.BeatName}}/bin/{{.BeatName}}} +args="-c /etc/{{.BeatName}}/{{.BeatName}}.yml -path.home /usr/share/{{.BeatName}} -path.config /etc/{{.BeatName}} -path.data /var/lib/{{.BeatName}} -path.logs /var/log/{{.BeatName}}" +test_args="-e test config" +beat_user="${BEAT_USER:-root}" +wrapper="/usr/share/{{.BeatName}}/bin/{{.BeatName}}-god" +wrapperopts="-r / -n -p $pidfile" +user_wrapper="su" +user_wrapperopts="$beat_user -c" +RETVAL=0 + +# Source function library. +. /etc/rc.d/init.d/functions + +# Determine if we can use the -p option to daemon, killproc, and status. +# RHEL < 5 can't. +if status | grep -q -- '-p' 2>/dev/null; then + daemonopts="--pidfile $pidfile" + pidopts="-p $pidfile" +fi + +if command -v runuser >/dev/null 2>&1; then + user_wrapper="runuser" +fi + +[ "$beat_user" != "root" ] && wrapperopts="$wrapperopts -u $beat_user" + +test() { + $user_wrapper $user_wrapperopts "$agent $args $test_args" +} + +start() { + echo -n $"Starting {{.BeatName}}: " + test + if [ $? -ne 0 ]; then + echo + exit 1 + fi + daemon $daemonopts $wrapper $wrapperopts -- $agent $args + RETVAL=$? + echo + return $RETVAL +} + +stop() { + echo -n $"Stopping {{.BeatName}}: " + killproc $pidopts $wrapper + RETVAL=$? + echo + [ $RETVAL = 0 ] && rm -f ${pidfile} +} + +restart() { + test + if [ $? -ne 0 ]; then + return 1 + fi + stop + start +} + +rh_status() { + status $pidopts $wrapper + RETVAL=$? + return $RETVAL +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + restart + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + status) + rh_status + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart}" + exit 1 +esac + +exit $RETVAL diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/windows/install-service.ps1.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/windows/install-service.ps1.tmpl new file mode 100644 index 00000000..c4b4f682 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/windows/install-service.ps1.tmpl @@ -0,0 +1,14 @@ +# Delete and stop the service if it already exists. +if (Get-Service {{.BeatName}} -ErrorAction SilentlyContinue) { + $service = Get-WmiObject -Class Win32_Service -Filter "name='{{.BeatName}}'" + $service.StopService() + Start-Sleep -s 1 + $service.delete() +} + +$workdir = Split-Path $MyInvocation.MyCommand.Path + +# Create the new service. +New-Service -name {{.BeatName}} ` + -displayName {{.BeatName | title}} ` + -binaryPathName "`"$workdir\{{.BeatName}}.exe`" -c `"$workdir\{{.BeatName}}.yml`" -path.home `"$workdir`" -path.data `"C:\ProgramData\{{.BeatName}}`" -path.logs `"C:\ProgramData\{{.BeatName}}\logs`"" diff --git a/vendor/github.com/elastic/beats/dev-tools/packaging/templates/windows/uninstall-service.ps1.tmpl b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/windows/uninstall-service.ps1.tmpl new file mode 100644 index 00000000..902a13a8 --- /dev/null +++ b/vendor/github.com/elastic/beats/dev-tools/packaging/templates/windows/uninstall-service.ps1.tmpl @@ -0,0 +1,7 @@ +# Delete and stop the service if it already exists. +if (Get-Service {{.BeatName}} -ErrorAction SilentlyContinue) { + $service = Get-WmiObject -Class Win32_Service -Filter "name='{{.BeatName}}'" + $service.StopService() + Start-Sleep -s 1 + $service.delete() +} diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/.gitignore b/vendor/github.com/elastic/beats/dev-tools/packer/.gitignore deleted file mode 100644 index 5778a7d7..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*.swp -*.swo -/build/ -/env/ - -# copied over from xgo-image/ -docker/xgo-image-deb7/base/build.sh diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/Makefile b/vendor/github.com/elastic/beats/dev-tools/packer/Makefile deleted file mode 100644 index c89da1b2..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/Makefile +++ /dev/null @@ -1,131 +0,0 @@ -BUILDID?=$(shell git rev-parse HEAD) -SNAPSHOT?=yes - -BEATS_BUILDER_IMAGE?=tudorg/beats-builder -BEATS_BUILDER_DEB_IMAGE?=tudorg/beats-builder-deb7 -BEATS_GOPATH=$(firstword $(subst :, ,${GOPATH})) - -makefile_abspath:=$(abspath $(lastword $(MAKEFILE_LIST))) -packer_absdir=$(shell dirname ${makefile_abspath}) -beat_abspath=${BEATS_GOPATH}/src/${BEAT_PATH} - - -%/deb: ${BUILD_DIR}/god-linux-386 ${BUILD_DIR}/god-linux-amd64 fpm-image - echo Creating DEB packages for $(@D) - ARCH=386 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/debian/build.sh - ARCH=amd64 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/debian/build.sh - -%/rpm: ${BUILD_DIR}/god-linux-386 ${BUILD_DIR}/god-linux-amd64 fpm-image - echo Creating RPM packages for $(@D) - ARCH=386 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/centos/build.sh - ARCH=amd64 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/centos/build.sh - -%/darwin: - echo Creating Darwin packages for $(@D) - ARCH=amd64 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/darwin/build.sh - -%/win: - echo Creating Darwin packages for $(@D) - ARCH=386 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/windows/build.sh - ARCH=amd64 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/windows/build.sh - -%/bin: - echo Creating Linux packages for $(@D) - ARCH=386 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/binary/build.sh - ARCH=amd64 BEAT=$(@D) BUILD_DIR=${BUILD_DIR} UPLOAD_DIR=${UPLOAD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/binary/build.sh - -%/arm: - echo Creating ARM packages for $(@D) - ARCH=arm BEAT=$(@D) BUILD_DIR=${BUILD_DIR} BEAT_PATH=$(beat_abspath) BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) $(packer_absdir)/platforms/binary/build.sh - -.PHONY: package-dashboards -package-dashboards: - echo Creating the Dashboards package - UPLOAD_DIR=${UPLOAD_DIR} BUILDID=$(BUILDID) SNAPSHOT=$(SNAPSHOT) BEAT_REF_YAML=${BEAT_REF_YAML} $(packer_absdir)/platforms/dashboards/build.sh - -.PHONY: deps -deps: - cd ../vendor/github.com/tsg/gotpl; go install - -.PHONY: xgo-image -xgo-image: - cd $(packer_absdir)/docker/xgo-image/; ./build.sh - # copy build.sh script in the xgo-image-deb7 to avoid code duplication - cp $(packer_absdir)/docker/xgo-image/base/build.sh $(packer_absdir)/docker/xgo-image-deb7/base/build.sh - cd $(packer_absdir)/docker/xgo-image-deb7/; ./build.sh - -.PHONY: fpm-image -fpm-image: - docker build --rm=true -t tudorg/fpm $(packer_absdir)/docker/fpm-image - -.PHONY: go-daemon-image -go-daemon-image: - docker build --rm=true -t tudorg/go-daemon $(packer_absdir)/docker/go-daemon/ - -${BUILD_DIR}/god-linux-386 ${BUILD_DIR}/god-linux-amd64: - docker run --rm -v ${BUILD_DIR}:/build tudorg/go-daemon - -${UPLOAD_DIR}: - mkdir -p ${UPLOAD_DIR} - -${UPLOAD_DIR}/build_id.txt: - echo $(BUILDID) > ${UPLOAD_DIR}/build_id.txt - -# Build the image required for package-upload. -.PHONY: deb-rpm-s3 -deb-rpm-s3: - $(packer_absdir)/docker/deb-rpm-s3/build.sh - -.PHONY: run-interactive-builder-deb -run-interactive-builder-deb: - docker run -t -i -v $(shell pwd)/build:/build \ - -v $(shell pwd)/xgo-scripts/:/scripts \ - -v $(shell pwd)/../..:/source \ - --entrypoint=bash ${BEATS_BUILDER_DEB_IMAGE} - -.PHONY: run-interactive-builder -run-interactive-builder: - docker run -t -i -v $(shell pwd)/build:/build \ - -v $(packer_absdir)/xgo-scripts/:/scripts \ - -v $(shell pwd)/../..:/source \ - --entrypoint=bash ${BEATS_BUILDER_IMAGE} - -.PHONY: images -images: xgo-image fpm-image go-daemon-image - -.PHONY: push-images -push-images: - docker push ${BEATS_BUILDER_IMAGE} - docker push ${BEATS_BUILDER_DEB_IMAGE} - docker push tudorg/fpm - docker push tudorg/go-daemon - -.PHONY: pull-images -pull-images: - docker pull ${BEATS_BUILDER_IMAGE} - docker pull ${BEATS_BUILDER_DEB_IMAGE} - docker pull tudorg/fpm - docker pull tudorg/go-daemon - - -define rm-image = -@echo "Cleaning $(1) image..." - @if [ $(shell docker ps -n 1 -a -q --filter="image=$(1)" ) ]; then \ - docker stop $(shell docker ps -a -q --filter="image=$(1)"); \ - docker rm $(shell docker ps -a -q --filter="image=$(1)"); \ - fi; \ -\ - if [ $(shell docker images -q $(1)) ]; then \ - docker rmi $(1); \ - fi -endef - - -.PHONY: clean-images -clean-images: - @$(call rm-image, ${BEATS_BUILDER_DEB_IMAGE}) - @$(call rm-image, ${BEATS_BUILDER_IMAGE}) - -.PHONY: clean -clean: - $(call rm-image,build-image) diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/README.md b/vendor/github.com/elastic/beats/dev-tools/packer/README.md deleted file mode 100644 index 9860d123..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/README.md +++ /dev/null @@ -1,96 +0,0 @@ -[![Build Status](https://travis-ci.org/elastic/beats-packer.svg)](https://travis-ci.org/elastic/beats-packer) - -# Beats Packer - -Tools, scripts and docker images for cross-compiling and packaging the Elastic -[Beats](https://www.elastic.co/products/beats). - -## Prepare - -You need Go and docker installed. This project uses several docker files, you -can either build them with: - - make images - -Or pull them from the Docker registry with: - - make pull-images - -Prepare the rest with: - - make deps - -## Cross-compile - -The cross compilation part is based on [xgo](https://github.com/karalabe/xgo), -with some [changes](https://github.com/tsg/xgo) that add a bit more -extensibility that we needed for the Beats (e.g. static compiling, custom -docker image). - -You can cross-compile one Beat for all platforms with (e.g.): - - make packetbeat - -## Packaging - -For each OS (named platform here) we execute a `build.sh` script which is -free to do whatever it is required to build the proper packages for that -platform. This can include running docker containers with the right tools -included or with that OS installed for native packaging. - -The deb and rpm creation is based on [fpm](https://github.com/jordansissel/fpm) -which is executed from a container. - -Besides the platform, there are three other dimensions: architecture, -beat and the release. Each of these is defined by YAML files in their folders. -These dimensions only set static options, the platforms is the only one -scripted. - -The runner is currently (ab)using a Makefile, which is nice because it can -parallelize things automatically, but it's hacky so we might replace it in -a future. - -Building all Beats for all platforms: - - make clean && make - -## Naming conventions - -We use a set of package name conventions across all the Elastic stack: - -* The general form is `name-version-os-arch.ext`. Note that this means we - use dashes even for Deb files. -* The archs are called `x86` and `x64` except for deb/rpm where we keep the - OS preferred names (i386/amd64, i686/x86_64). -* For version strings like `5.0.0-alpha3` we use dashes in all filenames. The - only exception is the RPM metadata (not the filename) where we replace the - dash with an underscore (`5.0.0_alpha3`). -* We omit the release number from the filenames. It's always `1` in the metadata. - -For example, here are the artifacts created for Filebeat: - -``` -filebeat-5.0.0-amd64.deb -filebeat-5.0.0-darwin-x86_64.tar.gz -filebeat-5.0.0-i386.deb -filebeat-5.0.0-i686.rpm -filebeat-5.0.0-linux-x86.tar.gz -filebeat-5.0.0-linux-x86_64.tar.gz -filebeat-5.0.0-windows-x86.zip -filebeat-5.0.0-windows-x86_64.zip -filebeat-5.0.0-x86_64.rpm -``` - -And the SNAPSHOT versions: - -``` -filebeat-5.0.0-SNAPSHOT-amd64.deb -filebeat-5.0.0-SNAPSHOT-darwin-x86_64.tar.gz -filebeat-5.0.0-SNAPSHOT-i386.deb -filebeat-5.0.0-SNAPSHOT-i686.rpm -filebeat-5.0.0-SNAPSHOT-linux-x86.tar.gz -filebeat-5.0.0-SNAPSHOT-linux-x86_64.tar.gz -filebeat-5.0.0-SNAPSHOT-windows-x86.zip -filebeat-5.0.0-SNAPSHOT-windows-x86_64.zip -filebeat-5.0.0-SNAPSHOT-x86_64.rpm -``` diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/archs/386.yml b/vendor/github.com/elastic/beats/dev-tools/packer/archs/386.yml deleted file mode 100644 index 96f31453..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/archs/386.yml +++ /dev/null @@ -1,5 +0,0 @@ -arch: '386' -deb_arch: i386 -rpm_arch: i686 -bin_arch: x86 -win_arch: x86 diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/archs/amd64.yml b/vendor/github.com/elastic/beats/dev-tools/packer/archs/amd64.yml deleted file mode 100644 index 299012d8..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/archs/amd64.yml +++ /dev/null @@ -1,5 +0,0 @@ -arch: amd64 -deb_arch: amd64 -rpm_arch: x86_64 -bin_arch: x86_64 -win_arch: x86_64 diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/archs/arm.yml b/vendor/github.com/elastic/beats/dev-tools/packer/archs/arm.yml deleted file mode 100644 index 4b2e2f35..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/archs/arm.yml +++ /dev/null @@ -1,2 +0,0 @@ -arch: 'arm' -bin_arch: arm diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/.gitignore b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/.gitignore deleted file mode 100644 index 78a9141e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/.gitignore +++ /dev/null @@ -1 +0,0 @@ -elasticsearch.asc diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/Dockerfile deleted file mode 100644 index fca7551a..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# Dockerfile for building an image that contains all of the necessary -# dependencies for signing deb/rpm packages and publishing APT and YUM -# repositories to Amazon S3. -FROM debian:jessie - -RUN apt-get update -RUN apt-get install -y git \ - rubygems ruby-dev patch gcc make zlib1g-dev rpm curl dpkg-sig \ - yum python-deltarpm \ - expect - -# Install python-boto from source to get latest version. -RUN git clone git://github.com/boto/boto.git && \ - cd boto && \ - git checkout 2.38.0 && \ - python setup.py install - -# Install deb-s3 -RUN gem install deb-s3 - -# Install rpm-s3 -# WARNING: Pulling from master, may not be repeatable. -RUN cd /usr/local && \ - git clone https://github.com/crohr/rpm-s3 --recursive && \ - echo '[s3]\ncalling_format = boto.s3.connection.OrdinaryCallingFormat' > /etc/boto.cfg - # Use HTTP for debugging traffic to S3. - #echo '[Boto]\nis_secure = False' >> /etc/boto.cfg -ENV PATH /usr/local/rpm-s3/bin:$PATH -ADD rpmmacros /root/.rpmmacros - -# Add the scripts that are executed by within the container. -ADD *.expect / -ADD publish-package-repositories.sh / - -# Execute the publish-package-repositories.sh when the container -# is run. -ENTRYPOINT ["/publish-package-repositories.sh"] -CMD ["--help"] diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/build.sh deleted file mode 100755 index e5a25372..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/build.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -e - -# -# Build script for the deb-rpm-s3 docker container. -# - -cd "$(dirname "$0")" - -docker build -t deb-rpm-s3 . diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/deb-rpm-s3.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/deb-rpm-s3.sh deleted file mode 100755 index bd0ed1c2..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/deb-rpm-s3.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# -# Wrapper script for starting the docker container. -# -# You must set AWS_ACCESS_KEY and AWS_SECRET_KEY in your environment prior to -# running. You can optionally pass the GPG key's passphrase as the environment -# variable PASS. -# - -cd "$(dirname "$0")" - -if [ ! -e "elasticsearch.asc" ]; then - cat << EOF -You must place a copy of the Elasticsearch GPG signing key (named -elasticsearch.asc) into - - $PWD - -prior to building this docker image. - -EOF - exit 1 -fi - -bucket="packages.elasticsearch.org" -prefix="beats" -dir="/beats-packer/build/upload" -gpg_key="/beats-packer/dev-tools/packer/docker/deb-rpm-s3/elasticsearch.asc" -origin=Elastic - -docker run -it --rm \ - --env="PASS=$PASS" \ - --volume `pwd`/../../../..:/beats-packer \ - deb-rpm-s3 \ - --bucket=$bucket \ - --prefix=$prefix \ - --directory="$dir" \ - --aws-access-key="$AWS_ACCESS_KEY" \ - --aws-secret-key="$AWS_SECRET_KEY" \ - --gpg-key="$gpg_key" \ - --origin="$origin" \ - --verbose \ - "$@" - diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/deb-s3.expect b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/deb-s3.expect deleted file mode 100644 index ea6b146a..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/deb-s3.expect +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/expect -f - -# Expect wrapper for deb-s3 that provides the GPG signing password -# when prompted. - -spawn deb-s3 upload \ - --sign \ - --preserve_versions \ - --bucket "$env(BUCKET)" \ - --prefix "$env(PREFIX)/apt" \ - --arch $env(arch) \ - -o "$env(ORIGIN)" \ - {*}$argv -expect { - "Enter passphrase: " { - send -- "$env(PASS)\r" - exp_continue - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/debsign.expect b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/debsign.expect deleted file mode 100755 index c3bcac3f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/debsign.expect +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/expect -f - -# Expect wrapper for 'dpkg-sig --sign' that provides the GPG signing password -# when prompted. -# -# Set password in PASS environment variable prior to running -# this expect script. -# -# Example usage: -# expect debsign.expect example.deb -# -# expect debsign.expect example.deb other.deb - -spawn dpkg-sig --sign builder {*}$argv -expect { - "Enter passphrase: " { - send -- "$env(PASS)\r" - exp_continue - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/publish-package-repositories.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/publish-package-repositories.sh deleted file mode 100755 index cc531aee..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/publish-package-repositories.sh +++ /dev/null @@ -1,226 +0,0 @@ -#!/bin/bash -set -e - -# Script directory: -SDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -usage() { -cat << EOF - Usage: $(basename $0) [-vh] [-d=directory] [-b=bucket] [-p=prefix] - [--access-key-id=aws id] [--secret-key-id=aws secret] - - Description: Sign packages and publish them to APT and YUM repositories - hosted from an S3 bucket. When publishing, the repository metadata is - also signed to prevent tampering. - - You will be prompted once for the GPG signing key's password. If the - PASS environment variable is set then that value will be used and you - will not be prompted. - - Options: - --aws-access-key=AWS_ACCESS_KEY Required. AWS access key. Alternatively, - AWS_ACCESS_KEY may be set as an environment - variable. - - --aws-secret-key=AWS_SECRET_KEY Required. AWS secret key. Alternatively, - AWS_SECRET_KEY may be set as an environment - variable. - - -b=BUCKET | --bucket=BUCKET Required. The S3 bucket in which to publish. - - -p=PREFIX | --prefix=PREFIX Required. Path to prefix to all published - repositories. - - -d=DIR | --directory=DIR Required. Directory to recursively search - for .rpm and .deb files. - - -g=GPG_KEY | --gpg-key=GPG_KEY Optional. Path to GPG key file to import. - - -o=ORIGIN | --origin=ORIGIN Optional. Origin to use in APT repo metadata. - - -v | --verbose Optional. Enable verbose logging to stderr. - - -h | --help Optional. Print this usage information. -EOF -} - -# Write a debug message to stderr. -debug() -{ - if [ "$VERBOSE" == "true" ]; then - echo "DEBUG: $1" >&2 - fi -} - -# Write and error message to stderr. -err() -{ - echo "ERROR: $1" >&2 -} - -# Parse command line arguments. -parseArgs() { - for i in "$@" - do - case $i in - --aws-access-key=*) - AWS_ACCESS_KEY="${i#*=}" - shift - ;; - --aws-secret-key=*) - AWS_SECRET_KEY="${i#*=}" - shift - ;; - -b=*|--bucket=*) - BUCKET="${i#*=}" - shift - ;; - -d=*|--directory=*) - DIRECTORY="${i#*=}" - shift - ;; - -g=*|--gpg-key=*) - GPG_KEY="${i#*=}" - shift - ;; - -h|--help) - usage - exit 1 - ;; - -o=*|--origin=*) - ORIGIN="${i#*=}" - shift - ;; - -p=*|--prefix=*) - PREFIX="${i#*=}" - shift - ;; - -v|--verbose) - VERBOSE=true - shift - ;; - *) - echo "Invalid argument: $i" - usage - exit 1 - ;; - esac - done - - if [ -z "$BUCKET" ]; then - err "-b=BUCKET or --bucket=BUCKET is required." - exit 1 - fi - - if [ -z "$DIRECTORY" ]; then - err "-d=DIRECTORY or --directory=DIRECTORY is required." - exit 1 - fi - - if [ ! -e "$DIRECTORY" ]; then - err "Directory $DIRECTORY does not exists." - exit 1 - fi - - if [ -z "$PREFIX" ]; then - err "-p=PREFIX or --prefix=PREFIX is required." - exit 1 - fi - - if [ -z "$AWS_ACCESS_KEY" ]; then - err "--access-key-id=AWS_ACCESS_KEY is required." - exit 1 - fi - - if [ -z "$AWS_SECRET_KEY" ]; then - err "--secret-access-key-id=AWS_SECRET_KEY is required." - exit 1 - fi - - export BUCKET - export ORIGIN - export PREFIX - export AWS_ACCESS_KEY - export AWS_SECRET_KEY -} - -importGpg() { - if [ ! -z "$GPG_KEY" ]; then - if [ ! -f "$GPG_KEY" ]; then - err "GPG key file $GPG_KEY does not exists." - exit 1 - fi - - debug "Importing GPG key $GPG_KEY" - gpg --import --allow-secret-key-import "$GPG_KEY" | true - else - debug "Not importing a GPG key because --gpg-key not specified." - fi -} - -getPassword() { - if [ -z "$PASS" ]; then - echo -n "Enter GPG pass phrase: " - read -s PASS - fi - - export PASS -} - -signDebianPackages() { - debug "Entering signDebianPackages" - find $DIRECTORY -name '*.deb' | xargs expect $SDIR/debsign.expect - debug "Exiting signDebianPackages" -} - -signRpmPackages() { - debug "Entering signRpmPackages" - find $DIRECTORY -name '*.rpm' | xargs expect $SDIR/rpmsign.expect - debug "Exiting signRpmPackages" -} - -publishToAptRepo() { - debug "Entering publishToAptRepo" - - # Verify the repository and credentials before continuing. - deb-s3 verify --bucket "$BUCKET" --prefix "${PREFIX}/apt" - - for arch in i386 amd64 - do - debug "Publishing $arch .deb packages..." - export arch - - for deb in $(find "$DIRECTORY" -name "*${arch}.deb") - do - expect $SDIR/deb-s3.expect "$deb" - done - done -} - -publishToYumRepo() { - debug "Entering publishToYumRepo" - - for arch in i686 x86_64 - do - debug "Publishing $arch .rpm packages..." - export arch - - for rpm in $(find "$DIRECTORY" -name "*${arch}.rpm") - do - expect $SDIR/rpm-s3.expect "$rpm" - done - done -} - -main() { - parseArgs $* - importGpg - getPassword - signDebianPackages - signRpmPackages - publishToAptRepo - publishToYumRepo - debug "Success" -} - -main $* diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpm-s3.expect b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpm-s3.expect deleted file mode 100644 index 246785f6..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpm-s3.expect +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/expect -f - -# Expect wrapper for rpm-s3 that provides the GPG signing password -# when prompted. - -spawn rpm-s3 \ - -vv \ - --sign \ - --region=external-1 \ - --keep=500 \ - --visibility=public-read \ - --bucket=$env(BUCKET) \ - --repopath=$env(PREFIX)/yum/el/$env(arch) \ - {*}$argv -expect { - "Enter passphrase: " { - send -- "$env(PASS)\r" - exp_continue - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpmmacros b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpmmacros deleted file mode 100644 index 2408b6c1..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpmmacros +++ /dev/null @@ -1,2 +0,0 @@ -%_signature gpg -%_gpg_name Elasticsearch (Elasticsearch Signing Key) diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpmsign.expect b/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpmsign.expect deleted file mode 100755 index d60da47e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/deb-rpm-s3/rpmsign.expect +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/expect -f - -# Expect wrapper for 'rpm --resign' that provides the GPG signing password -# when prompted. -# -# Set password in PASS environment variable prior to running -# this expect script. -# -# Example usage: -# expect rpmsign.expect example.rpm -# -# expect rpmsign.expect example.rpm other.rpm - -spawn rpm --resign \ - --define "_signature gpg" \ - --define "_gpg_name Elasticsearch (Elasticsearch Signing Key) " \ - {*}$argv -expect -exact "Enter pass phrase: " -send -- "$env(PASS)\r" -expect eof diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/fpm-image/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/fpm-image/Dockerfile deleted file mode 100644 index 1d8be722..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/fpm-image/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM ubuntu:16.04 - -MAINTAINER Tudor Golubenco - -# install fpm -RUN \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - autoconf build-essential libffi-dev ruby-dev rpm zip dos2unix libgmp3-dev - -RUN gem install fpm -v 1.9.2 diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/go-daemon/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/go-daemon/Dockerfile deleted file mode 100644 index 99d13c0d..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/go-daemon/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM tudorg/xgo-base - -MAINTAINER Tudor Golubenco - -# Inject the build script -ADD build_go_daemon.sh /build_go_daemon.sh -ENV BUILD_GO_DAEMON /build_go_daemon.sh -RUN chmod +x $BUILD_GO_DAEMON - -ENTRYPOINT ["/build_go_daemon.sh"] diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/go-daemon/build_go_daemon.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/go-daemon/build_go_daemon.sh deleted file mode 100644 index b5ace906..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/go-daemon/build_go_daemon.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -set -e - -echo "Fetching go-daemon" -git clone https://github.com/tsg/go-daemon.git - -cd /go-daemon - -echo "Compiling for linux/amd64.." -cc god.c -m64 -o god-linux-amd64 -lpthread -static - -echo "Compiling for linux/i386.." -gcc god.c -m32 -o god-linux-386 -lpthread -static - -echo "Copying to host.." -cp god-linux-amd64 god-linux-386 /build/ diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/.gitignore b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/.gitignore deleted file mode 100644 index 29554aba..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -beats-builder/yaml.v2 -beats-builder/gotpl diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/Dockerfile deleted file mode 100644 index 62a57d77..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -# Go cross compiler (xgo): Base cross-compilation layer -# Copyright (c) 2014 Péter Szilágyi. All rights reserved. -# -# Released under the MIT license. - -FROM debian:7 - -MAINTAINER Tudor Golubenco - -# Configure the Go environment, since it's not going to change -ENV PATH /usr/local/go/bin:$PATH -ENV GOPATH /go - - -# Inject the remote file fetcher and checksum verifier -ADD fetch.sh /fetch.sh -ENV FETCH /fetch.sh -RUN chmod +x $FETCH - - -# Make sure apt-get is up to date and dependent packages are installed -RUN \ - apt-get update && \ - apt-get install -y automake autogen build-essential ca-certificates \ - gcc-multilib \ - clang llvm-dev libtool libxml2-dev uuid-dev libssl-dev pkg-config \ - patch make xz-utils cpio wget unzip git mercurial bzr rsync --no-install-recommends - -# Inject the Go package downloader and tool-chain bootstrapper -ADD bootstrap.sh /bootstrap.sh -ENV BOOTSTRAP /bootstrap.sh -RUN chmod +x $BOOTSTRAP - -# Inject the new Go root distribution downloader and secondary bootstrapper -ADD bootstrap_pure.sh /bootstrap_pure.sh -ENV BOOTSTRAP_PURE /bootstrap_pure.sh -RUN chmod +x $BOOTSTRAP_PURE - -# Inject the C dependency cross compiler -ADD build_deps.sh /build_deps.sh -ENV BUILD_DEPS /build_deps.sh -RUN chmod +x $BUILD_DEPS - -# Inject the container entry point, the build script -ADD build.sh /build.sh -ENV BUILD /build.sh -RUN chmod +x $BUILD - -ENTRYPOINT ["/build.sh"] diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/bootstrap.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/bootstrap.sh deleted file mode 100644 index ce081775..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/bootstrap.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# -# Contains the Go tool-chain bootstrapper, that retrieves all the configured -# distribution packages, extracts the binaries and deletes anything not needed. -# -# Usage: bootstrap.sh -# -# Needed environment variables: -# FETCH - Remote file fetcher and checksum verifier (injected by image) -# DIST_LINUX_64, DIST_LINUX_64_SHA1 - 64 bit Linux Go binaries and checksum -# DIST_LINUX_32, DIST_LINUX_32_SHA1 - 32 bit Linux Go binaries and checksum -# DIST_LINUX_ARM, DIST_LINUX_ARM_SHA1 - ARM v5 Linux Go binaries and checksum -# DIST_OSX_64, DIST_OSX_64_SHA1 - 64 bit Mac OSX Go binaries and checksum -# DIST_OSX_32, DIST_OSX_32_SHA1 - 32 bit Mac OSX Go binaries and checksum -# DIST_WIN_64, DIST_WIN_64_SHA1 - 64 bit Windows Go binaries and checksum -# DIST_WIN_32, DIST_WIN_32_SHA1 - 32 bit Windows Go binaries and checksum -set -e - -# Download and verify all the binary packages -$FETCH $DIST_LINUX_64 $DIST_LINUX_64_SHA1 -$FETCH $DIST_LINUX_32 $DIST_LINUX_32_SHA1 - -# Extract the 64 bit Linux package as the primary Go SDK -tar -C /usr/local -xzf `basename $DIST_LINUX_64` - -# Extract all other packages as secondary ones, keeping only the binaries -tar -C /usr/local --wildcards -xzf `basename $DIST_LINUX_32` go/pkg/linux_386* -GOOS=linux GOARCH=386 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap - -# Delete all the intermediate downloaded files -rm -f `basename $DIST_LINUX_64` `basename $DIST_LINUX_32` diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/bootstrap_pure.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/bootstrap_pure.sh deleted file mode 100644 index aa40cd40..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/bootstrap_pure.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# -# Contains the Go tool-chain pure-Go bootstrapper, that as of Go 1.5, initiates -# not only a few pre-built Go cross compilers, but rather bootstraps all of the -# supported platforms from the origin Linux amd64 distribution. -# -# Usage: bootstrap.sh -# -# Needed environment variables: -# FETCH - Remote file fetcher and checksum verifier (injected by image) -# ROOT_DIST - 64 bit Linux Go binary distribution package -# ROOT_DIST_SHA1 - 64 bit Linux Go distribution package checksum -set -e - -# Download, verify and install the root distribution -$FETCH $ROOT_DIST $ROOT_DIST_SHA1 - -tar -C /usr/local -xzf `basename $ROOT_DIST` -rm -f `basename $ROOT_DIST` - -export GOROOT=/usr/local/go -export GOROOT_BOOTSTRAP=$GOROOT - -# Pre-build all guest distributions based on the root distribution -echo "Bootstrapping linux/386..." -GOOS=linux GOARCH=386 CGO_ENABLED=1 go install std diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/build_deps.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/build_deps.sh deleted file mode 100644 index e6445b95..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/build_deps.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# Contains the dependency builder to iterate over all installed dependencies -# and cross compile them to the requested target platform. -# -# Usage: build_deps.sh dependency_root_folder dependency1 dependency_2 ... -# -# Needed environment variables: -# CC - C cross compiler to use for the build -# HOST - Target platform to build (used to find the needed tool-chains) -# PREFIX - File-system path where to install the built binaries -# STATIC - true if the libraries are statically linked to the go application -set -e - -DEP_ROOT_FOLDER=$1 - -# Remove any previous build leftovers, and copy a fresh working set (clean doesn't work for cross compiling) -rm -rf /deps-build && cp -r $DEP_ROOT_FOLDER /deps-build - -args=("$@") - -if [ "$STATIC" == "true" ]; then DISABLE_SHARED=-disable-shared; fi - -# Build all the dependencies -for ((i=1; i<${#args[@]}; i++)); do - dep=${args[i]} - echo "Configuring dependency $dep for $HOST..." - if [ -f "/deps-build/$dep/autogen.sh" ]; then (cd /deps-build/$dep && ./autogen.sh); fi - (cd /deps-build/$dep && ./configure $DISABLE_SHARED --host=$HOST --prefix=$PREFIX --silent) - - echo "Building dependency $dep for $HOST..." - (cd /deps-build/$dep && make --silent -j install) -done - -# Remove any build artifacts -rm -rf /deps-build diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/fetch.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/fetch.sh deleted file mode 100644 index baeae631..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/base/fetch.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -# -# Contains a simple fetcher to download a file from a remote URL and verify its -# SHA1 checksum. -# -# Usage: fetch.sh -set -e - -# Pull the file from the remote URL -file=`basename $1` -echo "Downloading $1..." -wget --no-check-certificate -q $1 - -# Generate a desired checksum report and check against it -echo "$2 $file" > $file.sum -sha1sum -c $file.sum -rm $file.sum diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/beats-builder/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/beats-builder/Dockerfile deleted file mode 100644 index 20800e5b..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/beats-builder/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM tudorg/xgo-deb7-1.10.2 - -MAINTAINER Tudor Golubenco - -# Get libpcap-32 binaries from a DEB file -RUN \ - mkdir -p /libpcap && \ - wget http://archive.debian.org/debian/pool/main/libp/libpcap/libpcap0.8-dev_1.1.1-2+squeeze1_i386.deb && \ - dpkg -x libpcap0.8-dev_*_i386.deb /libpcap/i386 && \ - rm libpcap0.8-dev*.deb - -# Get libpcap-64 binaries by compiling from source -RUN \ - apt-get update && \ - apt-get install -y flex bison -RUN ./fetch.sh http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz 32d7526dde8f8a2f75baf40c01670602aeef7e39 && \ - mkdir -p /libpcap/amd64 && \ - tar -C /libpcap/amd64/ -xvf libpcap-1.8.1.tar.gz && \ - cd /libpcap/amd64/libpcap-1.8.1 && \ - ./configure --enable-usb=no --enable-bluetooth=no --enable-dbus=no && \ - make - -# Old git version which does not support proxy with go get directly, and git cloning -# from github also no longer works. -ADD yaml.v2 /go/src/gopkg.in/yaml.v2 -ADD gotpl /go/src/github.com/tsg/gotpl - -# Load gotpl which is needed for creating the templates. -RUN cd /go/src/github.com/tsg/gotpl && \ - go install - -# add patch for gopacket -ADD gopacket_pcap.patch /gopacket_pcap.patch diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/beats-builder/gopacket_pcap.patch b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/beats-builder/gopacket_pcap.patch deleted file mode 100644 index cc7592b7..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/beats-builder/gopacket_pcap.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/vendor/github.com/tsg/gopacket/pcap/pcap.go b/vendor/github.com/tsg/gopacket/pcap/pcap.go -index f5612e6..0c77efa 100644 ---- a/vendor/github.com/tsg/gopacket/pcap/pcap.go -+++ b/vendor/github.com/tsg/gopacket/pcap/pcap.go -@@ -8,14 +8,17 @@ - package pcap - - /* --#cgo linux LDFLAGS: -lpcap -+#cgo linux,386 CFLAGS: -I/libpcap/i386/usr/include/ -+#cgo linux,386 LDFLAGS: -L/libpcap/i386/usr/lib/ -lpcap -+#cgo linux,amd64 CFLAGS: -I/libpcap/amd64/libpcap-1.8.1 -+#cgo linux,amd64 LDFLAGS: -L/libpcap/amd64/libpcap-1.8.1 -lpcap - #cgo freebsd LDFLAGS: -lpcap - #cgo openbsd LDFLAGS: -lpcap - #cgo darwin LDFLAGS: -lpcap - #cgo solaris LDFLAGS: -lpcap --#cgo windows CFLAGS: -I C:/WpdPack/Include --#cgo windows,386 LDFLAGS: -L C:/WpdPack/Lib -lwpcap --#cgo windows,amd64 LDFLAGS: -L C:/WpdPack/Lib/x64 -lwpcap -+#cgo windows CFLAGS: -I/libpcap/win/WpdPack/Include -+#cgo windows,386 LDFLAGS: -L/libpcap/win/WpdPack/Lib -lwpcap -+#cgo windows,amd64 LDFLAGS: -L/libpcap/win/WpdPack/Lib/x64 -lwpcap - #include - #include - diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/build.sh deleted file mode 100755 index 8791ddf6..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/build.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -cp -r ../../../vendor/gopkg.in/yaml.v2 beats-builder/yaml.v2 -cp -r ../../../vendor/github.com/tsg/gotpl beats-builder/gotpl -docker build --rm=true -t tudorg/xgo-deb7-base base/ && \ - docker build --rm=true -t tudorg/xgo-deb7-1.10.2 go-1.10.2/ && - docker build --rm=true -t tudorg/beats-builder-deb7 beats-builder diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/go-1.10.2/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/go-1.10.2/Dockerfile deleted file mode 100644 index 5f83f778..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image-deb7/go-1.10.2/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -# Go cross compiler (xgo): Go 1.10.2 layer -# Copyright (c) 2014 Péter Szilágyi. All rights reserved. -# -# Released under the MIT license. - -FROM tudorg/xgo-deb7-base - -MAINTAINER Tudor Golubenco - -# Configure the root Go distribution and bootstrap based on it -RUN \ - export ROOT_DIST="https://storage.googleapis.com/golang/go1.10.2.linux-amd64.tar.gz" && \ - export ROOT_DIST_SHA1="77f0ac48994946c0d3349baf2d973ed6decb15ca" && \ - \ - $BOOTSTRAP_PURE diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/.gitignore b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/.gitignore deleted file mode 100644 index 29554aba..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -beats-builder/yaml.v2 -beats-builder/gotpl diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/Dockerfile deleted file mode 100644 index 81ea1eb4..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/Dockerfile +++ /dev/null @@ -1,76 +0,0 @@ -# Go cross compiler (xgo): Base cross-compilation layer -# Copyright (c) 2014 Péter Szilágyi. All rights reserved. -# -# Released under the MIT license. - -FROM ubuntu:14.04 - -MAINTAINER Tudor Golubenco - -# Configure the Go environment, since it's not going to change -ENV PATH /usr/local/go/bin:$PATH -ENV GOPATH /go - - -# Inject the remote file fetcher and checksum verifier -ADD fetch.sh /fetch.sh -ENV FETCH /fetch.sh -RUN chmod +x $FETCH - - -# Make sure apt-get is up to date and dependent packages are installed -# XXX: The first line is a workaround for the "Sum hash mismatch" error, from here: -# https://askubuntu.com/questions/760574/sudo-apt-get-update-failes-due-to-hash-sum-mismatch -RUN \ - apt-get clean && \ - apt-get update && \ - apt-get install -y automake autogen build-essential ca-certificates \ - gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libc6-dev-armel-cross \ - gcc-multilib g++-multilib mingw-w64 clang llvm-dev \ - libtool libxml2-dev uuid-dev libssl-dev swig pkg-config patch \ - make xz-utils cpio wget zip unzip p7zip git mercurial bzr texinfo help2man \ - binutils-multiarch rsync \ - --no-install-recommends - -# Configure the container for OSX cross compilation -ENV OSX_SDK MacOSX10.11.sdk -ENV OSX_NDK_X86 /usr/local/osx-ndk-x86 - -RUN \ - OSX_SDK_PATH=https://github.com/phracker/MacOSX-SDKs/releases/download/MacOSX10.11.sdk/MacOSX10.11.sdk.tar.xz && \ - $FETCH $OSX_SDK_PATH f3430e3d923644e66c0c13f7a48754e7b6aa2e3f && \ - \ - git clone https://github.com/tpoechtrager/osxcross.git && \ - mv `basename $OSX_SDK_PATH` /osxcross/tarballs/ && \ - \ - sed -i -e 's|-march=native||g' /osxcross/build_clang.sh /osxcross/wrapper/build.sh && \ - UNATTENDED=yes OSX_VERSION_MIN=10.6 /osxcross/build.sh && \ - mv /osxcross/target $OSX_NDK_X86 && \ - \ - rm -rf /osxcross - -ADD patch.tar.xz $OSX_NDK_X86/SDK/$OSX_SDK/usr/include/c++ -ENV PATH $OSX_NDK_X86/bin:$PATH - - -# Inject the Go package downloader and tool-chain bootstrapper -ADD bootstrap.sh /bootstrap.sh -ENV BOOTSTRAP /bootstrap.sh -RUN chmod +x $BOOTSTRAP - -# Inject the new Go root distribution downloader and secondary bootstrapper -ADD bootstrap_pure.sh /bootstrap_pure.sh -ENV BOOTSTRAP_PURE /bootstrap_pure.sh -RUN chmod +x $BOOTSTRAP_PURE - -# Inject the C dependency cross compiler -ADD build_deps.sh /build_deps.sh -ENV BUILD_DEPS /build_deps.sh -RUN chmod +x $BUILD_DEPS - -# Inject the container entry point, the build script -ADD build.sh /build.sh -ENV BUILD /build.sh -RUN chmod +x $BUILD - -ENTRYPOINT ["/build.sh"] diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/bootstrap.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/bootstrap.sh deleted file mode 100644 index b0d44a05..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/bootstrap.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# -# Contains the Go tool-chain bootstrapper, that retrieves all the configured -# distribution packages, extracts the binaries and deletes anything not needed. -# -# Usage: bootstrap.sh -# -# Needed environment variables: -# FETCH - Remote file fetcher and checksum verifier (injected by image) -# DIST_LINUX_64, DIST_LINUX_64_SHA1 - 64 bit Linux Go binaries and checksum -# DIST_LINUX_32, DIST_LINUX_32_SHA1 - 32 bit Linux Go binaries and checksum -# DIST_LINUX_ARM, DIST_LINUX_ARM_SHA1 - ARM v5 Linux Go binaries and checksum -# DIST_OSX_64, DIST_OSX_64_SHA1 - 64 bit Mac OSX Go binaries and checksum -# DIST_OSX_32, DIST_OSX_32_SHA1 - 32 bit Mac OSX Go binaries and checksum -# DIST_WIN_64, DIST_WIN_64_SHA1 - 64 bit Windows Go binaries and checksum -# DIST_WIN_32, DIST_WIN_32_SHA1 - 32 bit Windows Go binaries and checksum -set -e - -# Download and verify all the binary packages -$FETCH $DIST_LINUX_64 $DIST_LINUX_64_SHA1 -$FETCH $DIST_LINUX_32 $DIST_LINUX_32_SHA1 -$FETCH $DIST_OSX_64 $DIST_OSX_64_SHA1 -$FETCH $DIST_WIN_64 $DIST_WIN_64_SHA1 -$FETCH $DIST_WIN_32 $DIST_WIN_32_SHA1 - -# Extract the 64 bit Linux package as the primary Go SDK -tar -C /usr/local -xzf `basename $DIST_LINUX_64` - -# Extract all other packages as secondary ones, keeping only the binaries -tar -C /usr/local --wildcards -xzf `basename $DIST_LINUX_32` go/pkg/linux_386* -GOOS=linux GOARCH=386 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap -tar -C /usr/local --wildcards -xzf `basename $DIST_LINUX_ARM` go/pkg/linux_arm* -GOOS=linux GOARCH=arm /usr/local/go/pkg/tool/linux_amd64/dist bootstrap - -tar -C /usr/local --wildcards -xzf `basename $DIST_OSX_64` go/pkg/darwin_amd64* -GOOS=darwin GOARCH=amd64 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap -tar -C /usr/local --wildcards -xzf `basename $DIST_OSX_32` go/pkg/darwin_386* -GOOS=darwin GOARCH=386 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap - -unzip -d /usr/local -q `basename $DIST_WIN_64` go/pkg/windows_amd64* -GOOS=windows GOARCH=amd64 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap -unzip -d /usr/local -q `basename $DIST_WIN_32` go/pkg/windows_386* -GOOS=windows GOARCH=386 /usr/local/go/pkg/tool/linux_amd64/dist bootstrap - -# Delete all the intermediate downloaded files -rm -f `basename $DIST_LINUX_64` `basename $DIST_LINUX_32` `basename $DIST_LINUX_ARM` \ - `basename $DIST_OSX_64` `basename $DIST_OSX_32` \ - `basename $DIST_WIN_64` `basename $DIST_WIN_32` diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/bootstrap_pure.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/bootstrap_pure.sh deleted file mode 100644 index 98b04d39..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/bootstrap_pure.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# -# Contains the Go tool-chain pure-Go bootstrapper, that as of Go 1.5, initiates -# not only a few pre-built Go cross compilers, but rather bootstraps all of the -# supported platforms from the origin Linux amd64 distribution. -# -# Usage: bootstrap.sh -# -# Needed environment variables: -# FETCH - Remote file fetcher and checksum verifier (injected by image) -# ROOT_DIST - 64 bit Linux Go binary distribution package -# ROOT_DIST_SHA1 - 64 bit Linux Go distribution package checksum -set -e - -# Download, verify and install the root distribution -$FETCH $ROOT_DIST $ROOT_DIST_SHA1 - -tar -C /usr/local -xzf `basename $ROOT_DIST` -rm -f `basename $ROOT_DIST` - -export GOROOT=/usr/local/go -export GOROOT_BOOTSTRAP=$GOROOT - -# Pre-build all guest distributions based on the root distribution -echo "Bootstrapping linux/386..." -GOOS=linux GOARCH=386 CGO_ENABLED=1 go install std - -echo "Bootstrapping linux/arm..." -GOOS=linux GOARCH=arm CGO_ENABLED=1 CC=arm-linux-gnueabi-gcc go install std - -echo "Bootstrapping windows/amd64..." -GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go install std - -echo "Bootstrapping windows/386..." -GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go install std - -echo "Bootstrapping darwin/amd64..." -GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 CC=o64-clang go install std - -echo "Bootstrapping darwin/386..." -GOOS=darwin GOARCH=386 CGO_ENABLED=1 CC=o32-clang go install std diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/build.sh deleted file mode 100644 index 50adedb1..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/build.sh +++ /dev/null @@ -1,207 +0,0 @@ -#!/bin/bash -# -# Contains the main cross compiler, that individually sets up each target build -# platform, compiles all the C dependencies, then build the requested executable -# itself. -# -# Usage: build.sh -# -# Needed environment variables: -# REPO_REMOTE - Optional VCS remote if not the primary repository is needed -# REPO_BRANCH - Optional VCS branch to use, if not the master branch -# DEPS - Optional list of C dependency packages to build -# PACK - Optional sub-package, if not the import path is being built -# OUT - Optional output prefix to override the package name -# FLAG_V - Optional verbosity flag to set on the Go builder -# FLAG_RACE - Optional race flag to set on the Go builder -# TARGETS - Comma separated list of build targets to compile for - - - -# Download the canonical import path (may fail, don't allow failures beyond) -SRC_FOLDER=$SOURCE - -DST_FOLDER=`dirname $GOPATH/src/$BEAT_PATH` -GIT_REPO=$BEAT_PATH - -if [ "$PUREGO" == "yes" ]; then - CGO_ENABLED=0 -else - CGO_ENABLED=1 -fi - -# If it is an official beat, libbeat is not vendored, need special treatment -if [[ $GIT_REPO == "github.com/elastic/beats"* ]]; then - echo "Overwrite directories because official beat" - DST_FOLDER=$GOPATH/src/github.com/elastic/beats - GIT_REPO=github.com/elastic/beats -fi - -# It is assumed all dependencies are inside the working directory -# The working directory is the parent of the beat directory -WORKING_DIRECTORY=$DST_FOLDER - -echo "Working directory=$WORKING_DIRECTORY" - -if [ "$SOURCE" != "" ]; then - mkdir -p ${DST_FOLDER} - echo "Copying main source folder ${SRC_FOLDER} to folder ${DST_FOLDER}" - rsync --exclude ".git" --exclude "build/" -a ${SRC_FOLDER}/ ${DST_FOLDER} -else - mkdir -p $GOPATH/src/${GIT_REPO} - cd $GOPATH/src/${GIT_REPO} - echo "Fetching main git repository ${GIT_REPO} in folder $GOPATH/src/${GIT_REPO}" - git clone https://${GIT_REPO}.git -fi - -set -e - -cd $WORKING_DIRECTORY - -# Switch over the code-base to another checkout if requested -if [ "$REPO_REMOTE" != "" ]; then - echo "Switching over to remote $REPO_REMOTE..." - if [ -d ".git" ]; then - git remote set-url origin $REPO_REMOTE - git pull - elif [ -d ".hg" ]; then - echo -e "[paths]\ndefault = $REPO_REMOTE\n" >> .hg/hgrc - hg pull - fi -fi - -if [ "$REPO_BRANCH" != "" ]; then - echo "Switching over to branch $REPO_BRANCH..." - if [ -d ".git" ]; then - git checkout $REPO_BRANCH - elif [ -d ".hg" ]; then - hg checkout $REPO_BRANCH - fi -fi - -# Download all the C dependencies -echo "Fetching dependencies..." -BUILD_DEPS=/build_deps.sh -DEPS_FOLDER=/deps -LIST_DEPS="" -mkdir -p $DEPS_FOLDER -DEPS=($DEPS) && for dep in "${DEPS[@]}"; do - dep_filename=${dep##*/} - echo "Downloading $dep to $DEPS_FOLDER/$dep_filename" - wget -q $dep --directory-prefix=$DEPS_FOLDER - dep_name=$(tar --list --no-recursion --file=$DEPS_FOLDER/$dep_filename --exclude="*/*" | sed 's/\///g') - LIST_DEPS="${LIST_DEPS} ${dep_name}" - if [ "${dep_filename##*.}" == "tar" ]; then tar -xf $DEPS_FOLDER/$dep_filename --directory $DEPS_FOLDER/ ; fi - if [ "${dep_filename##*.}" == "gz" ]; then tar -xzf $DEPS_FOLDER/$dep_filename --directory $DEPS_FOLDER/ ; fi - if [ "${dep_filename##*.}" == "bz2" ]; then tar -xj $DEPS_FOLDER/$dep_filename --directory $DEPS_FOLDER/ ; fi -done - -# Configure some global build parameters -NAME=${PACK} -if [ "$OUT" != "" ]; then - NAME=$OUT -fi - - -if [ "$FLAG_V" == "true" ]; then V=-v; fi -if [ "$FLAG_RACE" == "true" ]; then R=-race; fi - -# exactly one -ldflags allowed -LDFLAGS_STATIC="" -if [ "$STATIC" == "true" ]; then LDFLAGS_STATIC='-extldflags "-static"'; fi -NOW=$(date -u '+%Y-%m-%dT%H:%M:%SZ') -LDFLAGS_VERSION="-X=github.com/elastic/beats/libbeat/version.buildTime=${NOW} -X=github.com/elastic/beats/libbeat/version.commit=${BUILDID}" -LDFLAGS_VENDOR_VERSION="-X=${BEAT_PATH}/vendor/github.com/elastic/beats/libbeat/version.buildTime=${NOW} -X=${BEAT_PATH}/vendor/github.com/elastic/beats/libbeat/version.commit=${BUILDID}" -LDFLAGS="${LDFLAGS_VERSION} ${LDFLAGS_VENDOR_VERSION} ${LDFLAGS_STATIC}" - -if [ -n $BEFORE_BUILD ]; then - chmod +x /scripts/$BEFORE_BUILD - echo "Execute /scripts/$BEFORE_BUILD ${BEAT_PATH} ${ES_BEATS}" - /scripts/$BEFORE_BUILD -fi - - -# If no build targets were specified, inject a catch all wildcard -if [ "$TARGETS" == "" ]; then - TARGETS="./." -fi - - -for TARGET in $TARGETS; do - # Split the target into platform and architecture - XGOOS=`echo $TARGET | cut -d '/' -f 1` - XGOARCH=`echo $TARGET | cut -d '/' -f 2` - - # Check and build for Linux targets - if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ]); then - echo "Compiling $PACK for linux/amd64..." - HOST=x86_64-linux PREFIX=/usr/local $BUILD_DEPS /deps $LIST_DEPS - export PKG_CONFIG_PATH=/usr/aarch64-linux-gnu/lib/pkgconfig - - GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go get -d ./$PACK - sh -c "GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build $V $R -ldflags=\"${LDFLAGS}\" -o /build/$NAME-linux-amd64$R ./$PACK" - fi - if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "386" ]); then - echo "Compiling $PACK for linux/386..." - CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 HOST=i686-linux PREFIX=/usr/local $BUILD_DEPS /deps $LIST_DEPS - GOOS=linux GOARCH=386 CGO_ENABLED=${CGO_ENABLED} go get -d ./$PACK - sh -c "GOOS=linux GOARCH=386 CGO_ENABLED=${CGO_ENABLED} go build $V $R -ldflags=\"${LDFLAGS}\" -o /build/$NAME-linux-386$R ./$PACK" - fi - if ([ $XGOOS == "." ] || [ $XGOOS == "linux" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "arm" ]); then - echo "Compiling $PACK for linux/arm..." - CC=arm-linux-gnueabi-gcc CXX=rm-linux-gnueabi-g++ HOST=arm-linux PREFIX=/usr/local/arm $BUILD_DEPS /deps $LIST_DEPS - - CC=arm-linux-gnueabi-gcc CXX=rm-linux-gnueabi-g++ GOOS=linux GOARCH=arm CGO_ENABLED=${CGO_ENABLED} GOARM=5 go get -d ./$PACK - CC=arm-linux-gnueabi-gcc CXX=rm-linux-gnueabi-g++ GOOS=linux GOARCH=arm CGO_ENABLED=${CGO_ENABLED} GOARM=5 go build $V -ldflags="${LDFLAGS}" -o /build/$NAME-linux-arm ./$PACK - fi - - # Check and build for Windows targets - if [ $XGOOS == "." ] || [[ $XGOOS == windows* ]]; then - # Split the platform version and configure the Windows NT version - PLATFORM=`echo $XGOOS | cut -d '-' -f 2` - if [ "$PLATFORM" == "" ] || [ "$PLATFORM" == "." ] || [ "$PLATFORM" == "windows" ]; then - PLATFORM=4.0 # Windows NT - fi - - MAJOR=`echo $PLATFORM | cut -d '.' -f 1` - if [ "${PLATFORM/.}" != "$PLATFORM" ] ; then - MINOR=`echo $PLATFORM | cut -d '.' -f 2` - fi - CGO_NTDEF="-D_WIN32_WINNT=0x`printf "%02d" $MAJOR``printf "%02d" $MINOR`" - - # Build the requested windows binaries - if [ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ]; then - echo "Compiling $PACK for windows-$PLATFORM/amd64..." - CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ CFLAGS="$CGO_NTDEF" CXXFLAGS="$CGO_NTDEF" HOST=x86_64-w64-mingw32 PREFIX=/usr/x86_64-w64-mingw32 $BUILD_DEPS /deps $LIST_DEPS - export PKG_CONFIG_PATH=/usr/x86_64-w64-mingw32/lib/pkgconfig - - CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go get -d ./$PACK - CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go build $V $R -ldflags="${LDFLAGS}" -o /build/$NAME-windows-amd64$R.exe ./$PACK - fi - - if [ $XGOARCH == "." ] || [ $XGOARCH == "386" ]; then - echo "Compiling $PACK for windows-$PLATFORM/386..." - CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ CFLAGS="$CGO_NTDEF" CXXFLAGS="$CGO_NTDEF" HOST=i686-w64-mingw32 PREFIX=/usr/i686-w64-mingw32 $BUILD_DEPS /deps $LIST_DEPS - export PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig - - CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ GOOS=windows GOARCH=386 CGO_ENABLED=${CGO_ENABLED} CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go get -d ./$PACK - CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ GOOS=windows GOARCH=386 CGO_ENABLED=${CGO_ENABLED} CGO_CFLAGS="$CGO_NTDEF" CGO_CXXFLAGS="$CGO_NTDEF" go build $V -ldflags="${LDFLAGS}" -o /build/$NAME-windows-386.exe ./$PACK - fi - fi - - # Check and build for OSX targets - if ([ $XGOOS == "." ] || [ $XGOOS == "darwin" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "amd64" ]); then - echo "Compiling $PACK for darwin/amd64..." - CC=o64-clang CXX=o64-clang++ HOST=x86_64-apple-darwin10 PREFIX=/usr/local $BUILD_DEPS /deps $LIST_DEPS - CC=o64-clang CXX=o64-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go get -d ./$PACK - CC=o64-clang CXX=o64-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build $V $R -ldflags="-s ${LDFLAGS}" -o /build/$NAME-darwin-amd64$R ./$PACK - fi - if ([ $XGOOS == "." ] || [ $XGOOS == "darwin" ]) && ([ $XGOARCH == "." ] || [ $XGOARCH == "386" ]); then - echo "Compiling for darwin/386..." - CC=o32-clang CXX=o32-clang++ HOST=i386-apple-darwin10 PREFIX=/usr/local $BUILD_DEPS /deps $LIST_DEPS - CC=o32-clang CXX=o32-clang++ GOOS=darwin GOARCH=386 CGO_ENABLED=${CGO_ENABLED} go get -d ./$PACK - CC=o32-clang CXX=o32-clang++ GOOS=darwin GOARCH=386 CGO_ENABLED=${CGO_ENABLED} go build $V -ldflags="${LDFLAGS}" -o /build/$NAME-darwin-386 ./$PACK - fi -done - -echo "Build process completed" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/build_deps.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/build_deps.sh deleted file mode 100644 index e6445b95..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/build_deps.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# Contains the dependency builder to iterate over all installed dependencies -# and cross compile them to the requested target platform. -# -# Usage: build_deps.sh dependency_root_folder dependency1 dependency_2 ... -# -# Needed environment variables: -# CC - C cross compiler to use for the build -# HOST - Target platform to build (used to find the needed tool-chains) -# PREFIX - File-system path where to install the built binaries -# STATIC - true if the libraries are statically linked to the go application -set -e - -DEP_ROOT_FOLDER=$1 - -# Remove any previous build leftovers, and copy a fresh working set (clean doesn't work for cross compiling) -rm -rf /deps-build && cp -r $DEP_ROOT_FOLDER /deps-build - -args=("$@") - -if [ "$STATIC" == "true" ]; then DISABLE_SHARED=-disable-shared; fi - -# Build all the dependencies -for ((i=1; i<${#args[@]}; i++)); do - dep=${args[i]} - echo "Configuring dependency $dep for $HOST..." - if [ -f "/deps-build/$dep/autogen.sh" ]; then (cd /deps-build/$dep && ./autogen.sh); fi - (cd /deps-build/$dep && ./configure $DISABLE_SHARED --host=$HOST --prefix=$PREFIX --silent) - - echo "Building dependency $dep for $HOST..." - (cd /deps-build/$dep && make --silent -j install) -done - -# Remove any build artifacts -rm -rf /deps-build diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/fetch.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/fetch.sh deleted file mode 100644 index d0b50399..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/fetch.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -# -# Contains a simple fetcher to download a file from a remote URL and verify its -# SHA1 checksum. -# -# Usage: fetch.sh -set -e - -# Pull the file from the remote URL -file=`basename $1` -echo "Downloading $1..." -wget -q $1 - -# Generate a desired checksum report and check against it -echo "$2 $file" > $file.sum -sha1sum -c $file.sum -rm $file.sum diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/patch.tar.xz b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/patch.tar.xz deleted file mode 100644 index bff5da4e..00000000 Binary files a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/base/patch.tar.xz and /dev/null differ diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/beats-builder/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/beats-builder/Dockerfile deleted file mode 100644 index 8fb3f142..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/beats-builder/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -FROM tudorg/xgo-1.10.2 - -MAINTAINER Tudor Golubenco - -# Get libpcap binaries for linux -RUN \ - dpkg --add-architecture i386 && \ - apt-get update && \ - apt-get install -y libpcap0.8-dev - -RUN \ - mkdir -p /libpcap && \ - apt-get download libpcap0.8-dev:i386 && \ - dpkg -x libpcap0.8-dev_*_i386.deb /libpcap/i386 && \ - apt-get download libpcap0.8-dev && \ - dpkg -x libpcap0.8-dev_*_amd64.deb /libpcap/amd64 && \ - rm libpcap0.8-dev*.deb - - -# Get libpcap binaries for win -ENV WPDPACK_URL https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip -RUN \ - ./fetch.sh $WPDPACK_URL f5c80885bd48f07f41833d0f65bf85da1ef1727a && \ - unzip `basename $WPDPACK_URL` -d /libpcap/win && \ - rm `basename $WPDPACK_URL` - -# Load gotpl -ADD yaml.v2 /go/src/gopkg.in/yaml.v2 -ADD gotpl /go/src/github.com/tsg/gotpl -RUN cd /go/src/github.com/tsg/gotpl && \ - go install - -# Add patch for gopacket. -ADD gopacket_pcap.patch /gopacket_pcap.patch - -# Add the wpcap.dll from the WinPcap_4_1_2.exe installer so that -# we can generate a 64-bit compatible libwpcap.a. -ENV WINPCAP_DLL_SHA1 d2afb08d0379bd96e423857963791e2ba00c9645 -ADD wpcap.dll /libpcap/win/wpcap.dll -RUN \ - apt-get install mingw-w64-tools && \ - cd /libpcap/win && \ - echo "$WINPCAP_DLL_SHA1 wpcap.dll" | sha1sum -c - && \ - gendef /libpcap/win/wpcap.dll && \ - x86_64-w64-mingw32-dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib /libpcap/win/WpdPack/Lib/x64/libwpcap.a --input-def wpcap.def && \ - rm wpcap.def wpcap.dll - diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/beats-builder/gopacket_pcap.patch b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/beats-builder/gopacket_pcap.patch deleted file mode 100644 index b3c3407a..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/beats-builder/gopacket_pcap.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/vendor/github.com/tsg/gopacket/pcap/pcap.go b/vendor/github.com/tsg/gopacket/pcap/pcap.go -index f5612e6..4438e6f 100644 ---- a/vendor/github.com/tsg/gopacket/pcap/pcap.go -+++ b/vendor/github.com/tsg/gopacket/pcap/pcap.go -@@ -8,14 +8,15 @@ - package pcap - - /* --#cgo linux LDFLAGS: -lpcap -+#cgo linux,386 LDFLAGS: /libpcap/i386/usr/lib/i386-linux-gnu/libpcap.a -+#cgo linux,amd64 LDFLAGS: /libpcap/amd64/usr/lib/x86_64-linux-gnu/libpcap.a - #cgo freebsd LDFLAGS: -lpcap - #cgo openbsd LDFLAGS: -lpcap - #cgo darwin LDFLAGS: -lpcap - #cgo solaris LDFLAGS: -lpcap --#cgo windows CFLAGS: -I C:/WpdPack/Include --#cgo windows,386 LDFLAGS: -L C:/WpdPack/Lib -lwpcap --#cgo windows,amd64 LDFLAGS: -L C:/WpdPack/Lib/x64 -lwpcap -+#cgo windows CFLAGS: -I /libpcap/win/WpdPack/Include -+#cgo windows,386 LDFLAGS: -L /libpcap/win/WpdPack/Lib -lwpcap -+#cgo windows,amd64 LDFLAGS: -L /libpcap/win/WpdPack/Lib/x64 -lwpcap - #include - #include - diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/build.sh deleted file mode 100755 index 401110af..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/build.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -cp -r ../../../vendor/gopkg.in/yaml.v2 beats-builder/yaml.v2 -cp -r ../../../vendor/github.com/tsg/gotpl beats-builder/gotpl -docker pull tudorg/xgo-base:v20180222 && \ - docker build --rm=true -t tudorg/xgo-1.10.2 go-1.10.2/ && - docker build --rm=true -t tudorg/beats-builder beats-builder diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/go-1.10.2/Dockerfile b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/go-1.10.2/Dockerfile deleted file mode 100644 index d09a7ac7..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/go-1.10.2/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -# Go cross compiler (xgo): Go 1.10.2 layer -# Copyright (c) 2014 Péter Szilágyi. All rights reserved. -# -# Released under the MIT license. - -FROM tudorg/xgo-base - -MAINTAINER Tudor Golubenco - -# Configure the root Go distribution and bootstrap based on it -RUN \ - export ROOT_DIST="https://storage.googleapis.com/golang/go1.10.2.linux-amd64.tar.gz" && \ - export ROOT_DIST_SHA1="77f0ac48994946c0d3349baf2d973ed6decb15ca" && \ - \ - $BOOTSTRAP_PURE diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/push_image.md b/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/push_image.md deleted file mode 100644 index 30e6c2af..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/docker/xgo-image/push_image.md +++ /dev/null @@ -1,16 +0,0 @@ -XXX: this should be temporary until we can use the Elastic Registry. - -To update the `tudorg/xgo-base` image on Docker HUB, do the following: - -* `docker login` with your docker hub credentials. Feel free to publish the image - to your own account if Tudor is not available. - -* Build the image: `docker build --rm=true -t tudorg/xgo-base base/` - -* List the images: `docker images` - -* Tag it: `docker tag tudorg/xgo-base:$(date '+v%Y%m%d')` - -* Push: `docker push tudorg/xgo-base` - -* Update `build.sh` to use the new image/tag diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/README b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/README deleted file mode 100644 index 60935fa5..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/README +++ /dev/null @@ -1 +0,0 @@ -Pseudo-platform to build the dashboards in their own package. diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/binary/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/binary/build.sh deleted file mode 100755 index 06ee5205..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/binary/build.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -set -e - -BASEDIR=$(dirname "$0") -ARCHDIR=${BASEDIR}/../../ - -# executed from the top directory -runid=binary-$BEAT-$ARCH - -cat ${BUILD_DIR}/package.yml ${ARCHDIR}/archs/$ARCH.yml > ${BUILD_DIR}/settings-$runid.yml -gotpl ${BASEDIR}/run.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/run-$runid.sh -chmod +x ${BUILD_DIR}/run-$runid.sh - -docker run --rm -v ${BUILD_DIR}:/build -v ${UPLOAD_DIR}:/upload \ - -e BUILDID=$BUILDID -e SNAPSHOT=$SNAPSHOT -e RUNID=$runid -e BEAT_REF_YAML=$BEAT_REF_YAML \ - tudorg/fpm /build/run-$runid.sh - -rm ${BUILD_DIR}/settings-$runid.yml ${BUILD_DIR}/run-$runid.sh diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/binary/run.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/binary/run.sh.j2 deleted file mode 100644 index 05eaadee..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/binary/run.sh.j2 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -# this is executed in the docker fpm image -set -e -cd /build - -# add SNAPSHOT if it was requested -VERSION={{.version}} -if [ "$SNAPSHOT" = "yes" ]; then - VERSION="${VERSION}-SNAPSHOT" -fi - -BEATS_YML_NAME="{{.beat_name}}-linux-{{.arch}}" -[ -f "${BEATS_YML_NAME}.yml" ] || BEATS_YML_NAME="{{.beat_name}}-linux" - -mkdir /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}} -cp -a homedir/. /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}}/ -cp {{.beat_name}}-linux-{{.arch}} /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}}/{{.beat_name}} -cp ${BEATS_YML_NAME}.yml /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}}/{{.beat_name}}.yml -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - cp ${BEATS_YML_NAME}.reference.yml /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}}/{{.beat_name}}.reference.yml -fi -cp fields.yml /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}}/ -cp -a modules.d-linux/ /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}}/modules.d || true - -tar czvf /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-linux-{{.bin_arch}}.tar.gz /{{.beat_name}}-${VERSION}-linux-{{.bin_arch}} -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}--${VERSION}-linux-{{.bin_arch}}.tar.gz" - -cd /upload -sha512sum {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-linux-{{.bin_arch}}.tar.gz > {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-linux-{{.bin_arch}}.tar.gz.sha512 -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-linux-{{.bin_arch}}.tar.gz.sha512" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/beatname.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/beatname.sh.j2 deleted file mode 100644 index 26015077..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/beatname.sh.j2 +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -# Script to run {.beat_name} in foreground with the same path settings that -# the init script / systemd unit file would do. - -exec /usr/share/{{.beat_name}}/bin/{{.beat_name}} \ - -path.home /usr/share/{{.beat_name}} \ - -path.config /etc/{{.beat_name}} \ - -path.data /var/lib/{{.beat_name}} \ - -path.logs /var/log/{{.beat_name}} \ - "$@" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/build.sh deleted file mode 100755 index 7198928f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/build.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -set -e - -BASEDIR=$(dirname "$0") -ARCHDIR=${BASEDIR}/../../ - -# executed from the top directory -runid=centos-$BEAT-$ARCH - -cat ${BUILD_DIR}/package.yml ${ARCHDIR}/archs/$ARCH.yml > ${BUILD_DIR}/settings-$runid.yml -gotpl ${BASEDIR}/run.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/run-$runid.sh -chmod +x ${BUILD_DIR}/run-$runid.sh -gotpl ${BASEDIR}/init.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/$runid.init -gotpl ${BASEDIR}/systemd.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/$runid.service -gotpl ${BASEDIR}/beatname.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/beatname-$runid.sh -chmod +x ${BUILD_DIR}/beatname-$runid.sh - -docker run --rm -v ${BUILD_DIR}:/build -v ${UPLOAD_DIR}:/upload \ - -e BUILDID=$BUILDID -e SNAPSHOT=$SNAPSHOT -e RUNID=$runid -e BEAT_REF_YAML=$BEAT_REF_YAML \ - tudorg/fpm /build/run-$runid.sh - -rm ${BUILD_DIR}/settings-$runid.yml ${BUILD_DIR}/run-$runid.sh diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/init.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/init.j2 deleted file mode 100755 index f7135755..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/init.j2 +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/bash -# -# {{.beat_pkg_name}} {{.beat_name}} shipper -# -# chkconfig: 2345 98 02 -# description: Starts and stops a single {{.beat_name}} instance on this system -# - -### BEGIN INIT INFO -# Provides: {{.beat_pkg_name}} -# Required-Start: $local_fs $network $syslog -# Required-Stop: $local_fs $network $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: {{.beat_description}} -# Description: {{.beat_name}} is a shipper part of the Elastic Beats -# family. Please see: https://www.elastic.co/products/beats -### END INIT INFO - - - -PATH=/usr/bin:/sbin:/bin:/usr/sbin -export PATH - -[ -f /etc/sysconfig/{{.beat_pkg_name}} ] && . /etc/sysconfig/{{.beat_pkg_name}} -pidfile=${PIDFILE-/var/run/{{.beat_pkg_name}}.pid} -agent=${BEATS_AGENT-/usr/share/{{.beat_name}}/bin/{{.beat_name}}} -args="-c /etc/{{.beat_name}}/{{.beat_name}}.yml -path.home /usr/share/{{.beat_name}} -path.config /etc/{{.beat_name}} -path.data /var/lib/{{.beat_name}} -path.logs /var/log/{{.beat_name}}" -test_args="-e test config" -beat_user="${BEAT_USER:-root}" -wrapper="/usr/share/{{.beat_name}}/bin/{{.beat_name}}-god" -wrapperopts="-r / -n -p $pidfile" -user_wrapper="su" -user_wrapperopts="$beat_user -c" -RETVAL=0 - -# Source function library. -. /etc/rc.d/init.d/functions - -# Determine if we can use the -p option to daemon, killproc, and status. -# RHEL < 5 can't. -if status | grep -q -- '-p' 2>/dev/null; then - daemonopts="--pidfile $pidfile" - pidopts="-p $pidfile" -fi - -if command -v runuser >/dev/null 2>&1; then - user_wrapper="runuser" -fi - -[ "$beat_user" != "root" ] && wrapperopts="$wrapperopts -u $beat_user" - -test() { - $user_wrapper $user_wrapperopts "$agent $args $test_args" -} - -start() { - echo -n $"Starting {{.beat_name}}: " - test - if [ $? -ne 0 ]; then - echo - exit 1 - fi - daemon $daemonopts $wrapper $wrapperopts -- $agent $args - RETVAL=$? - echo - return $RETVAL -} - -stop() { - echo -n $"Stopping {{.beat_name}}: " - killproc $pidopts $wrapper - RETVAL=$? - echo - [ $RETVAL = 0 ] && rm -f ${pidfile} -} - -restart() { - test - if [ $? -ne 0 ]; then - return 1 - fi - stop - start -} - -rh_status() { - status $pidopts $wrapper - RETVAL=$? - return $RETVAL -} - -rh_status_q() { - rh_status >/dev/null 2>&1 -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - restart - ;; - condrestart|try-restart) - rh_status_q || exit 0 - restart - ;; - status) - rh_status - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart}" - exit 1 -esac - -exit $RETVAL diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/run.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/run.sh.j2 deleted file mode 100644 index f23517d2..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/run.sh.j2 +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash - -# this is executed in the docker fpm image -set -e -cd /build - -# the init scripts needs to have the right name -cp ${RUNID}.init /tmp/{{.beat_pkg_name}}.init - -# create script to reload systemd config -echo "#!/bin/bash" > /tmp/systemd-daemon-reload.sh -echo "systemctl daemon-reload 2> /dev/null || true" >> /tmp/systemd-daemon-reload.sh - -# add SNAPSHOT if it was requested -VERSION="{{.version}}" -if [ "$SNAPSHOT" = "yes" ]; then - VERSION="${VERSION}-SNAPSHOT" -fi - -BEATS_YML_NAME="{{.beat_name}}-linux-{{.arch}}" -[ -f "${BEATS_YML_NAME}.yml" ] || BEATS_YML_NAME="{{.beat_name}}-linux" - -# fpm replaces - with _ in the version -RPM_VERSION=`echo ${VERSION} | sed 's/-/_/g'` - -# create rpm -FPM_ARGS=( - --force -s dir -t rpm - -n {{.beat_pkg_name}}{{.beat_pkg_suffix}} -v ${RPM_VERSION} - --architecture {{.rpm_arch}} - --vendor "{{.beat_vendor}}" - --license "{{.beat_license}}" - --description "{{.beat_description}}" - --url {{.beat_url}} - --rpm-init /tmp/{{.beat_pkg_name}}.init - --after-install /tmp/systemd-daemon-reload.sh - --config-files /etc/{{.beat_name}}/{{.beat_name}}.yml - homedir/=/usr/share/{{.beat_name}} - beatname-${RUNID}.sh=/usr/bin/{{.beat_name}} - {{.beat_name}}-linux-{{.arch}}=/usr/share/{{.beat_name}}/bin/{{.beat_name}} - ${BEATS_YML_NAME}.yml=/etc/{{.beat_name}}/{{.beat_name}}.yml - fields.yml=/etc/{{.beat_name}}/fields.yml - ${RUNID}.service=/lib/systemd/system/{{.beat_pkg_name}}.service - god-linux-{{.arch}}=/usr/share/{{.beat_name}}/bin/{{.beat_name}}-god - ) - -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - FPM_ARGS+=(${BEATS_YML_NAME}.reference.yml=/etc/{{.beat_name}}/{{.beat_name}}.reference.yml) -fi - -if [ -d modules.d-linux ]; then - FPM_ARGS+=(modules.d-linux/=/etc/{{.beat_name}}/modules.d/) -fi - -fpm "${FPM_ARGS[@]}" - -# rename so that the filename respects semver rules -mv {{.beat_pkg_name}}{{.beat_pkg_suffix}}-${RPM_VERSION}-1.{{.rpm_arch}}.rpm /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.rpm_arch}}.rpm -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.rpm_arch}}.rpm" - -# create sha512 file -cd /upload -sha512sum {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.rpm_arch}}.rpm > {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.rpm_arch}}.rpm.sha512 -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.rpm_arch}}.rpm.sha512" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/systemd.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/systemd.j2 deleted file mode 100644 index 8f14e9ef..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/centos/systemd.j2 +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description={{.beat_name}} -Documentation={{.beat_doc_url}} -Wants=network-online.target -After=network-online.target - -[Service] -ExecStart=/usr/share/{{.beat_name}}/bin/{{.beat_name}} -c /etc/{{.beat_name}}/{{.beat_name}}.yml -path.home /usr/share/{{.beat_name}} -path.config /etc/{{.beat_name}} -path.data /var/lib/{{.beat_name}} -path.logs /var/log/{{.beat_name}} -Restart=always - -[Install] -WantedBy=multi-user.target diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/build.sh deleted file mode 100755 index 14c57f75..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/build.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -set -e - -BASEDIR=$(dirname "$0") -ARCHDIR=${BASEDIR}/../../ - -# executed from the top directory -runid=darwin-$BEAT-$ARCH - -cat ${BUILD_DIR}/package.yml ${ARCHDIR}/archs/$ARCH.yml > ${BUILD_DIR}/settings-$runid.yml -gotpl ${BASEDIR}/run.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/run-$runid.sh -chmod +x ${BUILD_DIR}/run-$runid.sh - -docker run --rm -v ${BUILD_DIR}:/build -v ${UPLOAD_DIR}:/upload \ - -e BUILDID=$BUILDID -e SNAPSHOT=$SNAPSHOT -e RUNID=$runid -e BEAT_REF_YAML=$BEAT_REF_YAML \ - tudorg/fpm /build/run-$runid.sh - -rm ${BUILD_DIR}/settings-$runid.yml ${BUILD_DIR}/run-$runid.sh diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/Makefile b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/Makefile deleted file mode 100644 index 5ada05ae..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -PROJECT=beats-preference-pane.xcodeproj -CONFIGURATION?=Release -SIGN_IDENTITY_APP?= -SIGN_IDENTITY_INSTALLER?= -PACKAGE_NAME?=BeatsPrefPane.pkg -INSTALL_DIR=/Library/PreferencePanes -IDENTIFIER?=co.elastic.beats.preference-pane -VERSION?=1.0.0 - -default: build - -build: - xcodebuild build -project $(PROJECT) -alltargets -configuration $(CONFIGURATION) CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO - echo version="${VERSION}" - test -n '$(SIGN_IDENTITY_APP)' && \ - codesign -s '$(SIGN_IDENTITY_APP)' --force --keychain '$(KEYCHAIN)' --timestamp \ - build/$(CONFIGURATION)/*.prefPane/Contents/MacOS/helper && \ - codesign -s '$(SIGN_IDENTITY_APP)' --force --keychain '$(KEYCHAIN)' --timestamp \ - build/$(CONFIGURATION)/*.prefPane - -.PHONY: clean pkg - -pkg: $(PACKAGE_NAME) - -$(PACKAGE_NAME): build - mkdir -p build/root/$(INSTALL_DIR) - cp -a build/$(CONFIGURATION)/Beats.prefPane build/root/$(INSTALL_DIR)/ - SIGN_ARGS='' ;\ - test -z '$(SIGN_IDENTITY_INSTALLER)' || SIGN_ARGS="--sign $(SIGN_IDENTITY_INSTALLER)" ;\ - pkgbuild --root build/root/ \ - --identifier $(IDENTIFIER) \ - --version '$(VERSION)' \ - $$SIGN_ARGS --keychain "$(KEYCHAIN)" --timestamp \ - $(PACKAGE_NAME) - -clean: - rm -rf build/ $(PACKAGE_NAME) diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatManager.m b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatManager.m deleted file mode 100644 index b581e0df..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/preference-pane/beats-preference-pane/BeatManager.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// BeatManager.m -// beats-preference-pane -// -// Created by Adrian Serrano on 19/02/2018. -// Copyright © 2018 Elastic. All rights reserved. -// - -#import "BeatManager.h" - -@implementation BeatManager - -@end diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/run.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/run.sh.j2 deleted file mode 100644 index 18c8f62e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/darwin/run.sh.j2 +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -# this is executed in the docker fpm image -set -e -cd /build - -# add SNAPSHOT if it was requested -VERSION={{.version}} -if [ "$SNAPSHOT" = "yes" ]; then - VERSION="${VERSION}-SNAPSHOT" -fi - -mkdir /{{.beat_name}}-${VERSION}-darwin-x86_64 -cp -a homedir/. /{{.beat_name}}-${VERSION}-darwin-x86_64/ -cp {{.beat_name}}-darwin-amd64 /{{.beat_name}}-${VERSION}-darwin-x86_64/{{.beat_name}} -cp {{.beat_name}}-darwin.yml /{{.beat_name}}-${VERSION}-darwin-x86_64/{{.beat_name}}.yml -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - cp {{.beat_name}}-darwin.reference.yml /{{.beat_name}}-${VERSION}-darwin-x86_64/{{.beat_name}}.reference.yml -fi -cp fields.yml /{{.beat_name}}-${VERSION}-darwin-x86_64/ -cp -a modules.d-darwin/ /{{.beat_name}}-${VERSION}-darwin-x86_64/modules.d || true - -tar czvf /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-darwin-x86_64.tar.gz /{{.beat_name}}-${VERSION}-darwin-x86_64 -echo "Created /upload/{{.beat_name}}-${VERSION}-darwin-x86_64.tar.gz" - -cd /upload -sha512sum {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-darwin-x86_64.tar.gz > {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-darwin-x86_64.tar.gz.sha512 -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-darwin-x86_64.tar.gz.sha512" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/dashboards/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/dashboards/build.sh deleted file mode 100755 index 67b04828..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/dashboards/build.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -set -e - -BASEDIR=$(dirname "$0") -ARCHDIR=${BASEDIR}/../../ - -runid=dashboards - -cat ${ARCHDIR}/version.yml > ${BUILD_DIR}/settings-$runid.yml -gotpl ${BASEDIR}/run.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/run-$runid.sh -chmod +x ${BUILD_DIR}/run-$runid.sh - -docker run --rm -v ${BUILD_DIR}:/build -v ${UPLOAD_DIR}:/upload \ - -e BUILDID=$BUILDID -e SNAPSHOT=$SNAPSHOT -e RUNID=$runid -e BEAT_NAME=$BEAT_NAME -e BEAT_REF_YAML=$BEAT_REF_YAML \ - tudorg/fpm /build/run-$runid.sh - -rm ${BUILD_DIR}/settings-$runid.yml ${BUILD_DIR}/run-$runid.sh diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/dashboards/run.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/dashboards/run.sh.j2 deleted file mode 100644 index 96d272aa..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/dashboards/run.sh.j2 +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# this is executed in the docker fpm image -set -e -cd /build - -# add SNAPSHOT if it was requested -VERSION={{.version}} -if [ "$SNAPSHOT" = "yes" ]; then - VERSION="${VERSION}-SNAPSHOT" -fi - -mkdir /${BEAT_NAME:-beats}-dashboards-${VERSION} -cp -a dashboards/. /${BEAT_NAME:-beats}-dashboards-${VERSION}/ -echo "$BUILDID" > /${BEAT_NAME:-beats}-dashboards-${VERSION}/.build_hash.txt - -zip -r /upload/${BEAT_NAME:-beats}-dashboards-${VERSION}.zip /${BEAT_NAME:-beats}-dashboards-${VERSION} -echo "Created /upload/${BEAT_NAME:-beats}-dashboards-${VERSION}.zip" - -cd /upload -sha512sum ${BEAT_NAME:-beats}-dashboards-${VERSION}.zip > ${BEAT_NAME:-beats}-dashboards-${VERSION}.zip.sha512 -echo "Created /upload/${BEAT_NAME:-beats}-dashboards-${VERSION}.zip.sha512" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/beatname.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/beatname.sh.j2 deleted file mode 100644 index fc36a268..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/beatname.sh.j2 +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -# Script to run {{.beat_name}} in foreground with the same path settings that -# the init script / systemd unit file would do. - -exec /usr/share/{{.beat_name}}/bin/{{.beat_name}} \ - -path.home /usr/share/{{.beat_name}} \ - -path.config /etc/{{.beat_name}} \ - -path.data /var/lib/{{.beat_name}} \ - -path.logs /var/log/{{.beat_name}} \ - "$@" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/build.sh deleted file mode 100755 index 64f989f7..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/build.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -set -e - -BASEDIR=$(dirname "$0") -ARCHDIR=${BASEDIR}/../../ - -# executed from the top directory -runid=debian-$BEAT-$ARCH - -cat ${BUILD_DIR}/package.yml ${ARCHDIR}/archs/$ARCH.yml > ${BUILD_DIR}/settings-$runid.yml -gotpl ${BASEDIR}/run.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/run-$runid.sh -chmod +x ${BUILD_DIR}/run-$runid.sh -gotpl ${BASEDIR}/init.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/$runid.init -gotpl ${BASEDIR}/systemd.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/$runid.service -gotpl ${BASEDIR}/beatname.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/beatname-$runid.sh -chmod +x ${BUILD_DIR}/beatname-$runid.sh - -docker run --rm -v ${BUILD_DIR}:/build -v ${UPLOAD_DIR}:/upload \ - -e BUILDID=$BUILDID -e SNAPSHOT=$SNAPSHOT -e RUNID=$runid -e BEAT_REF_YAML=$BEAT_REF_YAML \ - tudorg/fpm /build/run-$runid.sh - -rm ${BUILD_DIR}/settings-$runid.yml ${BUILD_DIR}/run-$runid.sh diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/init.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/init.j2 deleted file mode 100755 index 04c24242..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/init.j2 +++ /dev/null @@ -1,188 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: {{.beat_pkg_name}} -# Required-Start: $local_fs $network $syslog -# Required-Stop: $local_fs $network $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: {{.beat_description}} -# Description: {{.beat_name}} is a shipper part of the Elastic Beats -# family. Please see: https://www.elastic.co/products/beats -### END INIT INFO - -# Do NOT "set -e" - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="{{.beat_description}}" -NAME="{{.beat_name}}" -DAEMON=/usr/share/{{.beat_name}}/bin/$NAME -DAEMON_ARGS="-c /etc/{{.beat_name}}/{{.beat_name}}.yml -path.home /usr/share/{{.beat_name}} -path.config /etc/{{.beat_name}} -path.data /var/lib/{{.beat_name}} -path.logs /var/log/{{.beat_name}}" -TEST_ARGS="-e test config" -PIDFILE=/var/run/{{.beat_pkg_name}}.pid -WRAPPER="/usr/share/{{.beat_name}}/bin/{{.beat_name}}-god" -BEAT_USER="root" -WRAPPER_ARGS="-r / -n -p $PIDFILE" -SCRIPTNAME=/etc/init.d/$NAME - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/{{.beat_pkg_name}} ] && . /etc/default/{{.beat_pkg_name}} - -[ "$BEAT_USER" != "root" ] && WRAPPER_ARGS="$WRAPPER_ARGS -u $BEAT_USER" -USER_WRAPPER="su" -USER_WRAPPER_ARGS="$BEAT_USER -c" - -if command -v runuser >/dev/null 2>&1; then - USER_WRAPPER="runuser" -fi - -# Load the VERBOSE setting and other rcS variables -. /lib/init/vars.sh - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.2-14) to ensure that this file is present -# and status_of_proc is working. -. /lib/lsb/init-functions - -# -# Function that calls runs the service in foreground -# to test its configuration. -# -do_test() -{ - $USER_WRAPPER $USER_WRAPPER_ARGS "$DAEMON $DAEMON_ARGS $TEST_ARGS" -} - -# -# Function that starts the daemon/service -# -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - start-stop-daemon --start \ - --pidfile $PIDFILE \ - --exec $WRAPPER -- $WRAPPER_ARGS -- $DAEMON $DAEMON_ARGS \ - || return 2 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/5/KILL/5 --pidfile $PIDFILE --exec $WRAPPER - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - # Wait for children to finish too if this is a daemon that forks - # and if the daemon is only ever run from this initscript. - # If the above conditions are not satisfied then add some other code - # that waits for the process to drop all resources that could be - # needed by services started subsequently. A last resort is to - # sleep for some time. - start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON - [ "$?" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - return "$RETVAL" -} - -# -# Function that sends a SIGHUP to the daemon/service -# -do_reload() { - # - # If the daemon can reload its configuration without - # restarting (for example, when it is sent a SIGHUP), - # then implement that here. - # - start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --exec $DAEMON - return 0 -} - -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - do_test - case "$?" in - 0) ;; - *) - log_end_msg 1 - exit 1 - ;; - esac - do_start - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - status) - status_of_proc "$WRAPPER" "$NAME" && exit 0 || exit $? - ;; - #reload|force-reload) - # - # If do_reload() is not implemented then leave this commented out - # and leave 'force-reload' as an alias for 'restart'. - # - #log_daemon_msg "Reloading $DESC" "$NAME" - #do_reload - #log_end_msg $? - #;; - restart|force-reload) - # - # If the "reload" option is implemented then remove the - # 'force-reload' alias - # - log_daemon_msg "Restarting $DESC" "$NAME" - do_test - case "$?" in - 0) ;; - *) - log_end_msg 1 # Old process is still running - exit 1 - ;; - esac - - do_stop - case "$?" in - 0|1) - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - ;; - *) - #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac - -: diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/run.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/run.sh.j2 deleted file mode 100644 index fcf2cdba..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/run.sh.j2 +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -# this is executed in the docker fpm image -set -e -cd /build - -# the init scripts needs to have the right name -cp ${RUNID}.init /tmp/{{.beat_pkg_name}}.init - -# create script to reload systemd config -echo "#!/bin/bash" > /tmp/systemd-daemon-reload.sh -echo "systemctl daemon-reload 2> /dev/null || true" >> /tmp/systemd-daemon-reload.sh - -# add SNAPSHOT if it was requested -VERSION="{{.version}}" -if [ "$SNAPSHOT" = "yes" ]; then - VERSION="${VERSION}-SNAPSHOT" -fi - -BEATS_YML_NAME="{{.beat_name}}-linux-{{.arch}}" -[ -f "${BEATS_YML_NAME}.yml" ] || BEATS_YML_NAME="{{.beat_name}}-linux" - -# create deb -FPM_ARGS=( - --force -s dir -t deb - -n {{.beat_pkg_name}}{{.beat_pkg_suffix}} -v ${VERSION} - --vendor "{{.beat_vendor}}" - --license $(echo {{.beat_license}} | tr " " "-") - --architecture {{.deb_arch}} - --description "{{.beat_description}}" - --url {{.beat_url}} - --deb-init /tmp/{{.beat_pkg_name}}.init - --after-install /tmp/systemd-daemon-reload.sh - --config-files /etc/{{.beat_name}}/{{.beat_name}}.yml - homedir/=/usr/share/{{.beat_name}} - beatname-${RUNID}.sh=/usr/bin/{{.beat_name}} - {{.beat_name}}-linux-{{.arch}}=/usr/share/{{.beat_name}}/bin/{{.beat_name}} - ${BEATS_YML_NAME}.yml=/etc/{{.beat_name}}/{{.beat_name}}.yml - fields.yml=/etc/{{.beat_name}}/fields.yml - ${RUNID}.service=/lib/systemd/system/{{.beat_pkg_name}}.service - god-linux-{{.arch}}=/usr/share/{{.beat_name}}/bin/{{.beat_name}}-god - ) - -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - FPM_ARGS+=(${BEATS_YML_NAME}.reference.yml=/etc/{{.beat_name}}/{{.beat_name}}.reference.yml) -fi - - -if [ -d modules.d-linux ]; then - FPM_ARGS+=(modules.d-linux/=/etc/{{.beat_name}}/modules.d/) -fi - -fpm "${FPM_ARGS[@]}" - -# move and rename to use the elastic conventions -mv {{.beat_pkg_name}}{{.beat_pkg_suffix}}_${VERSION}_{{.deb_arch}}.deb /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.deb_arch}}.deb -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.deb_arch}}.deb" - -# create sha512 file -cd /upload -sha512sum {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.deb_arch}}.deb > {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.deb_arch}}.deb.sha512 -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-{{.deb_arch}}.deb.sha512" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/systemd.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/systemd.j2 deleted file mode 100644 index 8f14e9ef..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/debian/systemd.j2 +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description={{.beat_name}} -Documentation={{.beat_doc_url}} -Wants=network-online.target -After=network-online.target - -[Service] -ExecStart=/usr/share/{{.beat_name}}/bin/{{.beat_name}} -c /etc/{{.beat_name}}/{{.beat_name}}.yml -path.home /usr/share/{{.beat_name}} -path.config /etc/{{.beat_name}} -path.data /var/lib/{{.beat_name}} -path.logs /var/log/{{.beat_name}} -Restart=always - -[Install] -WantedBy=multi-user.target diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/build.sh deleted file mode 100755 index bdecc7c0..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -set -e - -BASEDIR=$(dirname "$0") -ARCHDIR=${BASEDIR}/../.. - -# executed from the top directory -runid=windows-$BEAT-$ARCH - -cat ${BUILD_DIR}/package.yml ${ARCHDIR}/archs/$ARCH.yml > ${BUILD_DIR}/settings-$runid.yml -gotpl ${BASEDIR}/run.sh.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/run-$runid.sh -gotpl ${BASEDIR}/install-service.ps1.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/install-service-$BEAT.ps1 -gotpl ${BASEDIR}/uninstall-service.ps1.j2 < ${BUILD_DIR}/settings-$runid.yml > ${BUILD_DIR}/uninstall-service-$BEAT.ps1 -chmod +x ${BUILD_DIR}/run-$runid.sh - -docker run --rm -v ${BUILD_DIR}:/build -v ${UPLOAD_DIR}:/upload \ - -e BUILDID=$BUILDID -e SNAPSHOT=$SNAPSHOT -e RUNID=$runid -e BEAT_REF_YAML=$BEAT_REF_YAML \ - tudorg/fpm /build/run-$runid.sh - -rm ${BUILD_DIR}/settings-$runid.yml ${BUILD_DIR}/run-$runid.sh diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/install-service.ps1.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/install-service.ps1.j2 deleted file mode 100644 index e95e4311..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/install-service.ps1.j2 +++ /dev/null @@ -1,14 +0,0 @@ -# delete service if it already exists -if (Get-Service {{.beat_name}} -ErrorAction SilentlyContinue) { - $service = Get-WmiObject -Class Win32_Service -Filter "name='{{.beat_name}}'" - $service.StopService() - Start-Sleep -s 1 - $service.delete() -} - -$workdir = Split-Path $MyInvocation.MyCommand.Path - -# create new service -New-Service -name {{.beat_name}} ` - -displayName {{.beat_name}} ` - -binaryPathName "`"$workdir\{{.beat_name}}.exe`" -c `"$workdir\{{.beat_name}}.yml`" -path.home `"$workdir`" -path.data `"C:\ProgramData\{{.beat_name}}`" -path.logs `"C:\ProgramData\{{.beat_name}}\logs`"" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/run.sh.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/run.sh.j2 deleted file mode 100644 index 2a65ca12..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/run.sh.j2 +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -# this is executed in the docker fpm image -set -e -cd /build - -# add SNAPSHOT if it was requested -VERSION={{.version}} -if [ "$SNAPSHOT" = "yes" ]; then - VERSION="${VERSION}-SNAPSHOT" -fi - -mkdir /{{.beat_name}}-${VERSION}-windows-{{.win_arch}} -cp -a homedir/. /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/ -cp {{.beat_name}}-windows-{{.arch}}.exe /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/{{.beat_name}}.exe -unix2dos {{.beat_name}}-win.yml -cp {{.beat_name}}-win.yml /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/{{.beat_name}}.yml -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - cp {{.beat_name}}-win.reference.yml /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/{{.beat_name}}.reference.yml -fi -cp fields.yml /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/ -cp -a modules.d-win/ /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/modules.d || true -cp install-service-{{.beat_name}}.ps1 /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/ -cp uninstall-service-{{.beat_name}}.ps1 /{{.beat_name}}-${VERSION}-windows-{{.win_arch}}/ - -zip -r /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-windows-{{.win_arch}}.zip /{{.beat_name}}-${VERSION}-windows-{{.win_arch}} -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-windows-{{.win_arch}}.zip" - -cd /upload -sha512sum {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-windows-{{.win_arch}}.zip > {{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-windows-{{.win_arch}}.zip.sha512 -echo "Created /upload/{{.beat_name}}{{.beat_pkg_suffix}}-${VERSION}-windows-{{.win_arch}}.zip.sha512" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/uninstall-service.ps1.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/uninstall-service.ps1.j2 deleted file mode 100644 index c9e753c7..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/platforms/windows/uninstall-service.ps1.j2 +++ /dev/null @@ -1,5 +0,0 @@ -# delete service if it exists -if (Get-Service {{.beat_name}} -ErrorAction SilentlyContinue) { - $service = Get-WmiObject -Class Win32_Service -Filter "name='{{.beat_name}}'" - $service.delete() -} diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/readme.md.j2 b/vendor/github.com/elastic/beats/dev-tools/packer/readme.md.j2 deleted file mode 100644 index b4b016a3..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/readme.md.j2 +++ /dev/null @@ -1,23 +0,0 @@ -# Welcome to {{.beat_name}} {{.version}} - -{{.beat_description}} - -## Getting Started - -To get started with {{.beat_name}}, you need to set up Elasticsearch on your localhost first. After that, start {{.beat_name}} with: - - ./{{.beat_name}} -c {{.beat_name}}.yml -e - -This will start the beat and send the data to your Elasticsearch instance. To load the dashboards for {{.beat_name}} into Kibana, run: - - ./{{.beat_name}} setup -e - -For further steps visit the [Getting started](https://www.elastic.co/guide/en/beats/{{.beat_name}}/{{.doc_branch}}/{{.beat_name}}-getting-started.html) guide. - -## Documentation - -Visit [Elastic.co Docs](https://www.elastic.co/guide/en/beats/{{.beat_name}}/{{.doc_branch}}/index.html) for the full {{.beat_name}} documentation. - -## Release notes - -https://www.elastic.co/guide/en/beats/libbeat/{{.doc_branch}}/release-notes-{{.version}}.html diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/version.yml b/vendor/github.com/elastic/beats/dev-tools/packer/version.yml deleted file mode 100644 index 5d5f902f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/version.yml +++ /dev/null @@ -1 +0,0 @@ -version: "7.0.0-alpha1" diff --git a/vendor/github.com/elastic/beats/dev-tools/packer/xgo-scripts/before_build.sh b/vendor/github.com/elastic/beats/dev-tools/packer/xgo-scripts/before_build.sh deleted file mode 100755 index ba80f676..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/packer/xgo-scripts/before_build.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh - -set -e - -if [ $BEAT_NAME = "packetbeat" ]; then - patch -p1 < /gopacket_pcap.patch -fi - -cd $GOPATH/src/$BEAT_PATH - -# Files must be copied before before-build calls to allow modifications on the config files - -PREFIX=/build - -# Copy fields.yml -cp fields.yml $PREFIX/fields.yml - -# linux -cp $BEAT_NAME.yml $PREFIX/$BEAT_NAME-linux.yml -chmod 0600 $PREFIX/$BEAT_NAME-linux.yml -chmod 0600 $PREFIX/$BEAT_NAME-linux-386.yml || true -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - cp $BEAT_NAME.reference.yml $PREFIX/$BEAT_NAME-linux.reference.yml -fi -rm -rf $PREFIX/modules.d-linux -cp -r modules.d/ $PREFIX/modules.d-linux || true -[ -d "$PREFIX/modules.d-linux" ] && chmod 0755 $PREFIX/modules.d-linux - -# darwin -cp $BEAT_NAME.yml $PREFIX/$BEAT_NAME-darwin.yml -chmod 0600 $PREFIX/$BEAT_NAME-darwin.yml -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - cp $BEAT_NAME.reference.yml $PREFIX/$BEAT_NAME-darwin.reference.yml -fi -rm -rf $PREFIX/modules.d-darwin -cp -r modules.d/ $PREFIX/modules.d-darwin || true -[ -d "$PREFIX/modules.d-darwin" ] && chmod 0755 $PREFIX/modules.d-darwin - -# win -cp $BEAT_NAME.yml $PREFIX/$BEAT_NAME-win.yml -chmod 0600 $PREFIX/$BEAT_NAME-win.yml -if [ -z "${BEAT_REF_YAML}" ] || [ ${BEAT_REF_YAML} = true ]; then - cp $BEAT_NAME.reference.yml $PREFIX/$BEAT_NAME-win.reference.yml -fi -rm -rf $PREFIX/modules.d-win -cp -r modules.d/ $PREFIX/modules.d-win || true -[ -d "$PREFIX/modules.d-win" ] && chmod 0755 $PREFIX/modules.d-win - -# Runs beat specific tasks which should be done before building -PREFIX=$PREFIX make before-build - -# Add data to the home directory -mkdir -p $PREFIX/homedir -make install-home HOME_PREFIX=$PREFIX/homedir LICENSE_FILE=${LICENSE_FILE} - -if [ -n "BUILDID" ]; then - echo "$BUILDID" > $PREFIX/homedir/.build_hash.txt -fi - -# Append doc versions to package.yml -cat ${ES_BEATS}/libbeat/docs/version.asciidoc >> ${PREFIX}/package.yml - -# Make variable naming of doc-branch compatible with gotpl. Generate and copy README.md into homedir -# Add " to the version as gotpl interprets 6.0 as 6 -sed -i -e 's/:doc-branch: \(.*\)/doc_branch: "\1" /g' ${PREFIX}/package.yml - -# Create README file -/go/bin/gotpl /templates/readme.md.j2 < ${PREFIX}/package.yml > ${PREFIX}/homedir/README.md diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/COPYING b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/COPYING deleted file mode 100644 index c99e8128..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/COPYING +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2013 Blake Smith - -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/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/README.md b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/README.md deleted file mode 100644 index ff75d7ff..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Golang ar (archive) file reader - -This is a simple library for reading and writing [ar](http://en.wikipedia.org/wiki/Ar_(Unix)) files in common format. It is influenced heavily in style and interface from the golang [tar](http://golang.org/pkg/archive/tar/) package. - -## Author - -Written by Blake Smith - -Licensed under the MIT license. \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/common.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/common.go deleted file mode 100644 index 335bade4..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/common.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright (c) 2013 Blake Smith - -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 ar - -import ( - "time" -) - -const ( - HEADER_BYTE_SIZE = 60 - GLOBAL_HEADER = "!\n" -) - -type Header struct { - Name string - ModTime time.Time - Uid int - Gid int - Mode int64 - Size int64 -} - -type slicer []byte - -func (sp *slicer) next(n int) (b []byte) { - s := *sp - b, *sp = s[0:n], s[n:] - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/reader.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/reader.go deleted file mode 100644 index 4b824939..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/reader.go +++ /dev/null @@ -1,155 +0,0 @@ -/* -Copyright (c) 2013 Blake Smith - -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 ar - -import ( - "io" - "io/ioutil" - "os" - "strconv" - "time" -) - -// Provides read access to an ar archive. -// Call next to skip files -// -// Example: -// reader := NewReader(f) -// var buf bytes.Buffer -// for { -// _, err := reader.Next() -// if err == io.EOF { -// break -// } -// if err != nil { -// t.Errorf(err.Error()) -// } -// io.Copy(&buf, reader) -// } - -type Reader struct { - r io.Reader - nb int64 - pad int64 -} - -// Copies read data to r. Strips the global ar header. -func NewReader(r io.Reader) *Reader { - io.CopyN(ioutil.Discard, r, 8) // Discard global header - - return &Reader{r: r} -} - -func (rd *Reader) string(b []byte) string { - i := len(b)-1 - for i > 0 && b[i] == 32 { - i-- - } - - return string(b[0:i+1]) -} - -func (rd *Reader) numeric(b []byte) int64 { - i := len(b)-1 - for i > 0 && b[i] == 32 { - i-- - } - - n, _ := strconv.ParseInt(string(b[0:i+1]), 10, 64) - - return n -} - -func (rd *Reader) octal(b []byte) int64 { - i := len(b)-1 - for i > 0 && b[i] == 32 { - i-- - } - - n, _ := strconv.ParseInt(string(b[3:i+1]), 8, 64) - - return n -} - -func (rd *Reader) skipUnread() error { - skip := rd.nb + rd.pad - rd.nb, rd.pad = 0, 0 - if seeker, ok := rd.r.(io.Seeker); ok { - _, err := seeker.Seek(skip, os.SEEK_CUR) - return err - } - - _, err := io.CopyN(ioutil.Discard, rd.r, skip) - return err -} - -func (rd *Reader) readHeader() (*Header, error) { - headerBuf := make([]byte, HEADER_BYTE_SIZE) - if _, err := io.ReadFull(rd.r, headerBuf); err != nil { - return nil, err - } - - header := new(Header) - s := slicer(headerBuf) - - header.Name = rd.string(s.next(16)) - header.ModTime = time.Unix(rd.numeric(s.next(12)), 0) - header.Uid = int(rd.numeric(s.next(6))) - header.Gid = int(rd.numeric(s.next(6))) - header.Mode = rd.octal(s.next(8)) - header.Size = rd.numeric(s.next(10)) - - rd.nb = int64(header.Size) - if header.Size%2 == 1 { - rd.pad = 1 - } else { - rd.pad = 0 - } - - return header, nil -} - -// Call Next() to skip to the next file in the archive file. -// Returns a Header which contains the metadata about the -// file in the archive. -func (rd *Reader) Next() (*Header, error) { - err := rd.skipUnread() - if err != nil { - return nil, err - } - - return rd.readHeader() -} - -// Read data from the current entry in the archive. -func (rd *Reader) Read(b []byte) (n int, err error) { - if rd.nb == 0 { - return 0, io.EOF - } - if int64(len(b)) > rd.nb { - b = b[0:rd.nb] - } - n, err = rd.r.Read(b) - rd.nb -= int64(n) - - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/writer.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/writer.go deleted file mode 100644 index 680f5cbc..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/blakesmith/ar/writer.go +++ /dev/null @@ -1,124 +0,0 @@ -/* -Copyright (c) 2013 Blake Smith - -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 ar - -import ( - "errors" - "io" - "strconv" -) - -var ( - ErrWriteTooLong = errors.New("ar: write too long") -) - -// Writer provides sequential writing of an ar archive. -// An ar archive is sequence of header file pairs -// Call WriteHeader to begin writing a new file, then call Write to supply the file's data -// -// Example: -// archive := ar.NewWriter(writer) -// archive.WriteGlobalHeader() -// header := new(ar.Header) -// header.Size = 15 // bytes -// if err := archive.WriteHeader(header); err != nil { -// return err -// } -// io.Copy(archive, data) -type Writer struct { - w io.Writer - nb int64 // number of unwritten bytes for the current file entry -} - -// Create a new ar writer that writes to w -func NewWriter(w io.Writer) *Writer { return &Writer{w: w} } - -func (aw *Writer) numeric(b []byte, x int64) { - s := strconv.FormatInt(x, 10) - for len(s) < len(b) { - s = s + " " - } - copy(b, []byte(s)) -} - -func (aw *Writer) octal(b []byte, x int64) { - s := "100" + strconv.FormatInt(x, 8) - for len(s) < len(b) { - s = s + " " - } - copy(b, []byte(s)) -} - -func (aw *Writer) string(b []byte, str string) { - s := str - for len(s) < len(b) { - s = s + " " - } - copy(b, []byte(s)) -} - -// Writes to the current entry in the ar archive -// Returns ErrWriteTooLong if more than header.Size -// bytes are written after a call to WriteHeader -func (aw *Writer) Write(b []byte) (n int, err error) { - if int64(len(b)) > aw.nb { - b = b[0:aw.nb] - err = ErrWriteTooLong - } - n, werr := aw.w.Write(b) - aw.nb -= int64(n) - if werr != nil { - return n, werr - } - - if len(b)%2 == 1 { // data size must be aligned to an even byte - n2, _ := aw.w.Write([]byte{'\n'}) - return n+n2, err - } - - return -} - -func (aw *Writer) WriteGlobalHeader() error { - _, err := aw.w.Write([]byte(GLOBAL_HEADER)) - return err -} - -// Writes the header to the underlying writer and prepares -// to receive the file payload -func (aw *Writer) WriteHeader(hdr *Header) error { - aw.nb = int64(hdr.Size) - header := make([]byte, HEADER_BYTE_SIZE) - s := slicer(header) - - aw.string(s.next(16), hdr.Name) - aw.numeric(s.next(12), hdr.ModTime.Unix()) - aw.numeric(s.next(6), int64(hdr.Uid)) - aw.numeric(s.next(6), int64(hdr.Gid)) - aw.octal(s.next(8), hdr.Mode) - aw.numeric(s.next(10), hdr.Size) - aw.string(s.next(2), "`\n") - - _, err := aw.w.Write(header) - - return err -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/LICENSE b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/LICENSE deleted file mode 100644 index e1de70d7..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -Copyright (c) 2015 Ryan Armstrong - -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/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/Makefile b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/Makefile deleted file mode 100644 index 0e12e343..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -all: test lint - -test: - go test -v -cover - -lint: - gofmt -l -e -s . || : - go vet . || : - golint . || : - gocyclo -over 15 . || : - misspell ./* || : \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/README.md b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/README.md deleted file mode 100644 index c4a5e868..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# BadIO - -[![GoDoc](https://godoc.org/github.com/cavaliercoder/badio?status.svg)](https://godoc.org/github.com/cavaliercoder/badio) [![Build Status](https://travis-ci.org/cavaliercoder/badio.svg?branch=master)](https://travis-ci.org/cavaliercoder/badio) [![Go Report Card](https://goreportcard.com/badge/github.com/cavaliercoder/badio)](https://goreportcard.com/report/github.com/cavaliercoder/badio) - -Package badio contains extensions to Go's [testing/iotest](https://golang.org/pkg/testing/iotest/) -package and implements Readers and Writers useful mainly for testing. - - -## Installation - - $ go get github.com/cavaliercoder/badio - - -## Example - -```go -r := badio.NewSequenceReader([]byte("na")) - -p := make([]byte, 20) -r.Read(p) - -fmt.Printf("ba%s\n", p) - -// Prints: banananananananananana - -``` - -## License - -Copyright (c) 2015 Ryan Armstrong - -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/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/break_reader.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/break_reader.go deleted file mode 100644 index f3937252..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/break_reader.go +++ /dev/null @@ -1,44 +0,0 @@ -package badio - -import ( - "io" -) - -type breakReader struct { - r io.Reader - n int64 - o int64 -} - -// NewBreakReader returns a Reader that behaves like r except that it will -// return a BadIOError (not io.EOF) once it has read n bytes. -func NewBreakReader(r io.Reader, n int64) io.Reader { - return &breakReader{r: r, n: n} -} - -func (c *breakReader) Read(p []byte) (n int, err error) { - // reduce read size if it exceeds the breakpoint - n = len(p) - if c.o+int64(n) > c.n { - n = int(c.n - c.o) - } - - // test if break point exceeded - if n == 0 { - return 0, newError("Reader is already broken at offset %d (0x%X)", c.o, c.o) - } - - // read into buffer - n, err = c.r.Read(p[0:n]) - if err != nil { - return - } - - // break? - c.o += int64(n) - if c.o >= c.n { - return n, newError("Reader break point at offset %d (0x%X)", c.o, c.o) - } - - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/byte_reader.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/byte_reader.go deleted file mode 100644 index b5d8b179..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/byte_reader.go +++ /dev/null @@ -1,30 +0,0 @@ -package badio - -import ( - "io" -) - -type byteReader struct { - b byte -} - -// NewByteReader returns a Reader that implements Read by returning an infinite -// stream of the given byte. -func NewByteReader(b byte) io.Reader { - return &byteReader{b} -} - -// NewNullReader returns a Reader that implements Read by returning an infinite -// stream of zeros, analogous to `cat /dev/zero`. -func NewNullReader() io.Reader { - return &byteReader{0x00} -} - -func (c *byteReader) Read(p []byte) (int, error) { - var i int - for ; i < len(p); i++ { - p[i] = c.b - } - - return i, nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/doc.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/doc.go deleted file mode 100644 index 18698963..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/doc.go +++ /dev/null @@ -1,5 +0,0 @@ -/* -Package badio contains extensions to Go's testing/iotest package and implements -Readers and Writers useful mainly for testing. -*/ -package badio diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/errors.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/errors.go deleted file mode 100644 index 105d92db..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/errors.go +++ /dev/null @@ -1,27 +0,0 @@ -package badio - -import ( - "fmt" -) - -type badReaderError struct { - s string -} - -func newError(format string, a ...interface{}) error { - return &badReaderError{ - s: fmt.Sprintf(format, a...), - } -} - -func (c *badReaderError) Error() string { - return c.s -} - -// IsBadIOError returns a boolean indicating whether the error is known to -// be an error generated by the badio package itself rather than an underlying -// Reader or Writer implementation or the Go standard library. -func IsBadIOError(err error) bool { - _, ok := err.(*badReaderError) - return ok -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/random_reader.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/random_reader.go deleted file mode 100644 index 6597fd95..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/random_reader.go +++ /dev/null @@ -1,18 +0,0 @@ -package badio - -import ( - "crypto/rand" - "io" -) - -type randomReader struct{} - -// NewRandomReader returns a Reader that implements Read by perpetually -// reading cryptographically secure pseudorandom numbers. -func NewRandomReader() io.Reader { - return &randomReader{} -} - -func (c *randomReader) Read(p []byte) (int, error) { - return rand.Read(p) -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/sequence_reader.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/sequence_reader.go deleted file mode 100644 index 4026fbd4..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/sequence_reader.go +++ /dev/null @@ -1,38 +0,0 @@ -package badio - -import ( - "io" -) - -type sequenceReader struct { - b []byte - o int64 -} - -// NewSequenceReader returns a Reader that implements Read by perpetually -// repeating the given byte sequence. -func NewSequenceReader(b []byte) io.Reader { - return &sequenceReader{b: b, o: 0} -} - -func (c *sequenceReader) Read(p []byte) (int, error) { - if len(c.b) == 0 { - return 0, newError("invalid sequence length") - } - - n := 0 - for n < len(p) { - // copy one sequence - for ; c.o < int64(len(c.b)) && n < len(p); c.o++ { - p[n] = c.b[c.o] - n++ - } - - // reset offset if there's more to copy - if n < len(p) { - c.o = 0 - } - } - - return n, nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/truncate_reader.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/truncate_reader.go deleted file mode 100644 index 818b5776..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/badio/truncate_reader.go +++ /dev/null @@ -1,36 +0,0 @@ -package badio - -import ( - "io" -) - -type truncateReader struct { - r io.Reader - n int64 - o int64 -} - -// NewTruncateReader returns a Reader that behaves like r except that it will -// return zero count and an io.EOF error once it has read n bytes. -func NewTruncateReader(r io.Reader, n int64) io.Reader { - return &truncateReader{r: r, n: n} -} - -func (c *truncateReader) Read(p []byte) (n int, err error) { - // reduce read size if it exceeds the breakpoint - n = len(p) - if c.o+int64(n) > c.n { - n = int(c.n - c.o) - } - - // test if EOF exceeded - if n == 0 { - return 0, io.EOF - } - - // read into buffer - n, err = c.r.Read(p[0:n]) - c.o += int64(n) - - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/Makefile b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/Makefile deleted file mode 100644 index 5fdbcd3d..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -PACKAGE = github.com/cavaliercoder/go-rpm - -all: check install - -check: - go test -v $(PACKAGE)/... - -install: - go install -x $(PACKAGE)/... - -clean: clean-fuzz - go clean -x -i $(PACKAGE)/... - -get-deps: - go get github.com/cavaliercoder/badio - go get golang.org/x/crypto/openpgp - -rpm-fuzz.zip: *.go - go-fuzz-build $(PACKAGE) - -fuzz: rpm-fuzz.zip - go-fuzz -bin=./rpm-fuzz.zip -workdir=.fuzz/ - -clean-fuzz: - rm -rf rpm-fuzz.zip .fuzz/crashers/* .fuzz/suppressions/* - -get-fuzz-deps: - go get github.com/dvyukov/go-fuzz/go-fuzz-build - go get github.com/dvyukov/go-fuzz/go-fuzz - -.PHONY: all check install clean get-deps fuzz clean-fuzz get-fuzz-deps diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/README.md b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/README.md deleted file mode 100644 index 12d85c0e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# go-rpm [![Build Status](https://travis-ci.org/cavaliercoder/go-rpm.svg?branch=master)](https://travis-ci.org/cavaliercoder/go-rpm) [![GoDoc](https://godoc.org/github.com/cavaliercoder/go-rpm?status.svg)](https://godoc.org/github.com/cavaliercoder/go-rpm) - -A native implementation of the RPM file specification in Go. - - $ go get github.com/cavaliercoder/go-rpm - - -The go-rpm package aims to enable cross-platform tooling for yum/dnf/rpm -written in Go (E.g. [y10k](https://github.com/cavaliercoder/y10k)). - -Initial goals include like-for-like implementation of existing rpm ecosystem -features such as: - -* Reading of modern and legacy rpm package file formats -* Reading, creating and updating modern and legacy yum repository metadata -* Reading of the rpm database - -```go -package main - -import ( - "fmt" - "github.com/cavaliercoder/go-rpm" -) - -func main() { - p, err := rpm.OpenPackageFile("my-package.rpm") - if err != nil { - panic(err) - } - - fmt.Printf("Loaded package: %v", p) -} -``` - - -## License - -Copyright (c) 2015 Ryan Armstrong - -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/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/Vagrantfile b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/Vagrantfile deleted file mode 100644 index bf1db9c6..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/Vagrantfile +++ /dev/null @@ -1,33 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -$script = <> /home/vagrant/.bashrc <=", s) - - case DepFlagGreater == (c.flags & DepFlagGreater): - s = fmt.Sprintf("%s >", s) - - case DepFlagEqual == (c.flags & DepFlagEqual): - s = fmt.Sprintf("%s =", s) - } - - if c.version != "" { - s = fmt.Sprintf("%s %s", s, c.version) - } - - if c.release != "" { - s = fmt.Sprintf("%s.%s", s, c.release) - } - - return s -} - -// Flags determines the nature of the package relationship and the comparison -// used for the given version constraint. -func (c *dependency) Flags() int { - return c.flags -} - -// Name is the name of the package target package. -func (c *dependency) Name() string { - return c.name -} - -// Epoch is the epoch constraint of the target package. -func (c *dependency) Epoch() int { - return c.epoch -} - -// Version is the version constraint of the target package. -func (c *dependency) Version() string { - return c.version -} - -// Release is the release constraint of the target package. -func (c *dependency) Release() string { - return c.release -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/doc.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/doc.go deleted file mode 100644 index a132bf8e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -A native implementation of the RPM file specification in Go. - - package main - - import ( - "fmt" - "github.com/cavaliercoder/go-rpm" - ) - - func main() { - p, err := rpm.OpenPackageFile("my-package.rpm") - if err != nil { - panic(err) - } - - fmt.Printf("Loaded package: %v", p) - } - -*/ -package rpm diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/fileinfo.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/fileinfo.go deleted file mode 100644 index d1102ad9..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/fileinfo.go +++ /dev/null @@ -1,65 +0,0 @@ -package rpm - -import ( - "os" - "time" -) - -// A FileInfo describes a file in a RPM package and is returned by -// packagefile.Files. -// -// FileInfo implements the os.FileInfo interface. -type FileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time - isDir bool - owner string - group string -} - -func (f *FileInfo) String() string { - return f.Name() -} - -// Name is the full path of a file in a RPM package -func (f *FileInfo) Name() string { - return f.name -} - -// Size is the size in bytes of a file in a RPM package -func (f *FileInfo) Size() int64 { - return f.size -} - -// Mode is the file mode in bits of a file in a RPM package -func (f *FileInfo) Mode() os.FileMode { - return f.mode -} - -// ModTime is the modification time of a file in a RPM package -func (f *FileInfo) ModTime() time.Time { - return f.modTime -} - -// IsDir returns true if a file is a directory in a RPM package -func (f *FileInfo) IsDir() bool { - return f.isDir -} - -// Owner is the name of the owner of a file in a RPM package -func (f *FileInfo) Owner() string { - return f.owner -} - -// Group is the name of the owner group of a file in a RPM package -func (f *FileInfo) Group() string { - return f.group -} - -// Sys is required to implement os.FileInfo and always returns nil -func (f *FileInfo) Sys() interface{} { - // underlying data source is a bunch of rpm header indices - return nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/fuzz.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/fuzz.go deleted file mode 100644 index 3344922c..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/fuzz.go +++ /dev/null @@ -1,42 +0,0 @@ -// +build gofuzz - -package rpm - -import "bytes" - -// Fuzz tests the parsing and error handling of random byte arrays using -// https://github.com/dvyukov/go-fuzz. -func Fuzz(data []byte) int { - if p, err := ReadPackageFile(bytes.NewReader(data)); err != nil { - // handled errors are not very interesting - return 0 - } else { - // call some tag handlers - _ = p.String() - _ = p.Requires() - _ = p.Conflicts() - _ = p.Obsoletes() - _ = p.Provides() - - // read all index values - for _, h := range p.Headers { - for _, x := range h.Indexes { - switch x.Type { - case IndexDataTypeBinary: - _ = h.Indexes.BytesByTag(x.Tag) - - case IndexDataTypeChar, IndexDataTypeInt8, IndexDataTypeInt16, IndexDataTypeInt32, IndexDataTypeInt64: - _ = h.Indexes.IntsByTag(x.Tag) - _ = h.Indexes.IntByTag(x.Tag) - - case IndexDataTypeString, IndexDataTypeI8NString, IndexDataTypeStringArray: - _ = h.Indexes.StringsByTag(x.Tag) - _ = h.Indexes.StringByTag(x.Tag) - } - } - } - - // everything worked with random input... interesting :| - return 1 - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/gpgcheck.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/gpgcheck.go deleted file mode 100644 index b028efcc..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/gpgcheck.go +++ /dev/null @@ -1,136 +0,0 @@ -package rpm - -import ( - "bytes" - "crypto/md5" - "fmt" - "golang.org/x/crypto/openpgp" - "golang.org/x/crypto/openpgp/errors" - "io" -) - -// Signature storage types (as defined in package lead segment) -const ( - // Signature is stored in the first package header - RPMSIGTYPE_HEADERSIG = 5 -) - -// Predefined checksum errors. -var ( - // ErrMD5ValidationFailed indicates that a RPM package failed checksum - // validation. - ErrMD5ValidationFailed = fmt.Errorf("MD5 checksum validation failed") - - // ErrGPGValidationFailed indicates that a RPM package failed GPG signature - // validation. - ErrGPGValidationFailed = fmt.Errorf("GPG signature validation failed") -) - -// rpmReadSigHeader reads the lead and signature header of a rpm package and -// returns a pointer to the signature header. -func rpmReadSigHeader(r io.Reader) (*Header, error) { - // read package lead - if lead, err := ReadPackageLead(r); err != nil { - return nil, err - } else { - // check signature type - if lead.SignatureType != RPMSIGTYPE_HEADERSIG { - return nil, fmt.Errorf("Unsupported signature type: 0x%x", lead.SignatureType) - } - } - - // read signature header - sigheader, err := ReadPackageHeader(r) - if err != nil { - return nil, err - } - - return sigheader, nil -} - -// GPGCheck validates the integrity of a RPM package file read from the given -// io.Reader. Public keys in the given keyring are used to validate the package -// signature. -// -// If validation succeeds, nil is returned. If validation fails, -// ErrGPGValidationFailed is returned. -// -// This function is an expensive operation which reads the entire package file. -func GPGCheck(r io.Reader, keyring openpgp.KeyRing) (string, error) { - // read signature header - sigheader, err := rpmReadSigHeader(r) - if err != nil { - return "", err - } - - // get signature bytes - var sigval []byte = nil - for _, tag := range []int{RPMSIGTAG_PGP, RPMSIGTAG_PGP5, RPMSIGTAG_GPG} { - if sigval = sigheader.Indexes.BytesByTag(tag); sigval != nil { - break - } - } - - if sigval == nil { - return "", fmt.Errorf("Package signature not found") - } - - // check signature - signer, err := openpgp.CheckDetachedSignature(keyring, r, bytes.NewReader(sigval)) - if err == errors.ErrUnknownIssuer { - return "", ErrGPGValidationFailed - } else if err != nil { - return "", err - } - - // get signer identity - for id, _ := range signer.Identities { - return id, nil - } - - return "", fmt.Errorf("No identity found in public key") -} - -// MD5Check validates the integrity of a RPM package file read from the given -// io.Reader. An MD5 checksum is computed for the package payload and compared -// with the checksum value specified in the package header. -// -// If validation succeeds, nil is returned. If validation fails, -// ErrMD5ValidationFailed is returned. -// -// This function is an expensive operation which reads the entire package file. -func MD5Check(r io.Reader) error { - // read signature header - sigheader, err := rpmReadSigHeader(r) - if err != nil { - return err - } - - // get expected payload size - payloadSize := sigheader.Indexes.IntByTag(RPMSIGTAG_SIZE) - if payloadSize == 0 { - return fmt.Errorf("RPMSIGTAG_SIZE tag not found in signature header") - } - - // get expected payload md5 sum - sigmd5 := sigheader.Indexes.BytesByTag(RPMSIGTAG_MD5) - if sigmd5 == nil { - return fmt.Errorf("RPMSIGTAG_MD5 tag not found in signature header") - } - - // compute payload sum - h := md5.New() - if n, err := io.Copy(h, r); err != nil { - return fmt.Errorf("Error reading payload: %v", err) - } else if n != payloadSize { - return ErrMD5ValidationFailed - } - - // compare sums - payloadmd5 := h.Sum(nil) - if !bytes.Equal(payloadmd5, sigmd5) { - return ErrMD5ValidationFailed - } - - return nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/header.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/header.go deleted file mode 100644 index 93622359..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/header.go +++ /dev/null @@ -1,286 +0,0 @@ -package rpm - -import ( - "bytes" - "encoding/binary" - "fmt" - "io" - "math" -) - -// A Header stores metadata about a rpm package. -type Header struct { - Version int - IndexCount int - Length int - Indexes IndexEntries - Start int - End int -} - -// Headers is an array of Header structs. -type Headers []Header - -// Predefined sizing constraints. -const ( - // MAX_HEADER_SIZE is the maximum allowable header size in bytes (32 MB). - MAX_HEADER_SIZE = 33554432 -) - -// Predefined header errors. -var ( - // ErrBadHeaderLength indicates that the read header section is not the - // expected length. - ErrBadHeaderLength = fmt.Errorf("RPM header section is incorrect length") - - // ErrNotHeader indicates that the read header section does start with the - // expected descriptor. - ErrNotHeader = fmt.Errorf("invalid RPM header descriptor") - - // ErrBadStoreLength indicates that the read header store section is not the - // expected length. - ErrBadStoreLength = fmt.Errorf("header value store is incorrect length") -) - -// Predefined header index errors. -var ( - // ErrBadIndexCount indicates that number of indexes given in the read - // header would exceed the actual size of the header. - ErrBadIndexCount = fmt.Errorf("index count exceeds header size") - - // ErrBadIndexLength indicates that the read header index section is not the - // expected length. - ErrBadIndexLength = fmt.Errorf("index section is incorrect length") - - // ErrIndexOutOfRange indicates that the read header index would exceed the - // range of the header. - ErrIndexOutOfRange = fmt.Errorf("index is out of range") - - // ErrBadIndexType indicates that the read index contains a value of an - // unsupported data type. - ErrBadIndexType = fmt.Errorf("unknown index data type") - - // ErrBadIndexValueCount indicates that the read index value would exceed - // the range of the header store section. - ErrBadIndexValueCount = fmt.Errorf("index value count is out of range") -) - -// ReadPackageHeader reads an RPM package file header structure from the given -// io.Reader. -// -// This function should only be used if you intend to read a package header -// structure in isolation. -func ReadPackageHeader(r io.Reader) (*Header, error) { - // read the "header structure header" - header := make([]byte, 16) - _, err := io.ReadFull(r, header) - if err != nil { - if err == io.EOF || err == io.ErrUnexpectedEOF { - return nil, ErrBadHeaderLength - } - - return nil, err - } - - // check magic number - if 0 != bytes.Compare(header[:3], []byte{0x8E, 0xAD, 0xE8}) { - return nil, ErrNotHeader - } - - // translate header - h := &Header{ - Version: int(header[3]), - IndexCount: int(binary.BigEndian.Uint32(header[8:12])), - Length: int(binary.BigEndian.Uint32(header[12:16])), - } - - // make sure header size is in range - if h.Length > MAX_HEADER_SIZE { - return nil, ErrBadHeaderLength - } - - // Ensure index count is in range - // This test is not entirely precise as h.Length also includes the value - // store. It should at least help eliminate excessive buffer allocations for - // corrupted length values in the > h.Length ranges. - if h.IndexCount*16 > h.Length { - return nil, ErrBadIndexCount - } - - h.Indexes = make(IndexEntries, h.IndexCount) - - // read indexes - indexLength := 16 * h.IndexCount - indexes := make([]byte, indexLength) - _, err = io.ReadFull(r, indexes) - if err != nil { - if err == io.EOF || err == io.ErrUnexpectedEOF { - return nil, ErrBadIndexLength - } - return nil, err - } - - for x := 0; x < h.IndexCount; x++ { - o := 16 * x - index := IndexEntry{ - Tag: int(binary.BigEndian.Uint32(indexes[o : o+4])), - Type: int(binary.BigEndian.Uint32(indexes[o+4 : o+8])), - Offset: int(binary.BigEndian.Uint32(indexes[o+8 : o+12])), - ItemCount: int(binary.BigEndian.Uint32(indexes[o+12 : o+16])), - } - - // validate index offset - if index.Offset >= h.Length { - return nil, ErrIndexOutOfRange - } - - // append - h.Indexes[x] = index - } - - // read the "store" - store := make([]byte, h.Length) - _, err = io.ReadFull(r, store) - if err != nil { - if err == io.EOF || err == io.ErrUnexpectedEOF { - return nil, ErrBadStoreLength - } - - return nil, err - } - - // parse the value of each index from the store - for x := 0; x < h.IndexCount; x++ { - index := h.Indexes[x] - o := index.Offset - - if index.ItemCount == 0 { - return nil, ErrBadIndexValueCount - } - - switch index.Type { - case IndexDataTypeChar: - vals := make([]uint8, index.ItemCount) - for v := 0; v < index.ItemCount; v++ { - if o >= len(store) { - return nil, fmt.Errorf("uint8 value for index %d is out of range", x+1) - } - - vals[v] = uint8(store[o]) - o += 1 - } - - index.Value = vals - - case IndexDataTypeInt8: - vals := make([]int8, index.ItemCount) - for v := 0; v < index.ItemCount; v++ { - if o >= len(store) { - return nil, fmt.Errorf("int8 value for index %d is out of range", x+1) - } - - vals[v] = int8(store[o]) - o += 1 - } - - index.Value = vals - - case IndexDataTypeInt16: - vals := make([]int16, index.ItemCount) - for v := 0; v < index.ItemCount; v++ { - if o+2 > len(store) { - return nil, fmt.Errorf("int16 value for index %d is out of range", x+1) - } - - vals[v] = int16(binary.BigEndian.Uint16(store[o : o+2])) - o += 2 - } - - index.Value = vals - - case IndexDataTypeInt32: - vals := make([]int32, index.ItemCount) - for v := 0; v < index.ItemCount; v++ { - if o+4 > len(store) { - return nil, fmt.Errorf("int32 value for index %d is out of range", x+1) - } - - vals[v] = int32(binary.BigEndian.Uint32(store[o : o+4])) - o += 4 - } - - index.Value = vals - - case IndexDataTypeInt64: - vals := make([]int64, index.ItemCount) - for v := 0; v < index.ItemCount; v++ { - if o+8 > len(store) { - return nil, fmt.Errorf("int64 value for index %d is out of range", x+1) - } - - vals[v] = int64(binary.BigEndian.Uint64(store[o : o+8])) - o += 8 - } - - index.Value = vals - - case IndexDataTypeBinary: - if o+index.ItemCount > len(store) { - return nil, fmt.Errorf("[]byte value for index %d is out of range", x+1) - } - - b := make([]byte, index.ItemCount) - copy(b, store[o:o+index.ItemCount]) - - index.Value = b - - case IndexDataTypeString, IndexDataTypeStringArray, IndexDataTypeI8NString: - // allow atleast one byte per string - if o+index.ItemCount > len(store) { - return nil, fmt.Errorf("[]string value for index %d is out of range", x+1) - } - - vals := make([]string, index.ItemCount) - - for s := 0; s < index.ItemCount; s++ { - // calculate string length - var j int - for j = 0; (o+j) < len(store) && store[o+j] != 0; j++ { - } - - if j == len(store) { - return nil, fmt.Errorf("string value for index %d is out of range", x+1) - } - - vals[s] = string(store[o : o+j]) - o += j + 1 - } - - index.Value = vals - - case IndexDataTypeNull: - // nothing to do here - - default: - // unknown data type - return nil, ErrBadIndexType - } - - // save in array - h.Indexes[x] = index - } - - // calculate location of the end of the header by padding to a multiple of 8 - o := 8 - int(math.Mod(float64(h.Length), 8)) - - // seek to the end of the header - if o > 0 && o < 8 { - pad := make([]byte, o) - _, err = io.ReadFull(r, pad) - if err != nil { - return nil, fmt.Errorf("Error seeking beyond header padding of %d bytes: %v", o, err) - } - } - - return h, nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/index.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/index.go deleted file mode 100644 index f7cd861f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/index.go +++ /dev/null @@ -1,159 +0,0 @@ -package rpm - -import ( - "time" -) - -// Header index value data types. -const ( - IndexDataTypeNull int = iota - IndexDataTypeChar - IndexDataTypeInt8 - IndexDataTypeInt16 - IndexDataTypeInt32 - IndexDataTypeInt64 - IndexDataTypeString - IndexDataTypeBinary - IndexDataTypeStringArray - IndexDataTypeI8NString -) - -// An IndexEntry is a rpm key/value tag stored in the package header. -type IndexEntry struct { - Tag int - Type int - Offset int - ItemCount int - Value interface{} -} - -// IndexEntries is an array of IndexEntry structs. -type IndexEntries []IndexEntry - -// IndexByTag returns a pointer to an IndexEntry with the given tag ID or nil if -// the tag is not found. -func (c IndexEntries) IndexByTag(tag int) *IndexEntry { - for _, e := range c { - if e.Tag == tag { - return &e - } - } - - return nil -} - -// StringByTag returns the string value of an IndexEntry or an empty string if -// the tag is not found or has no value. -func (c IndexEntries) StringByTag(tag int) string { - i := c.IndexByTag(tag) - if i == nil || i.Value == nil { - return "" - } - - s := i.Value.([]string) - - return s[0] -} - -// StringsByTag returns the slice of string values of an IndexEntry or nil if -// the tag is not found or has no value. -func (c IndexEntries) StringsByTag(tag int) []string { - i := c.IndexByTag(tag) - if i == nil || i.Value == nil { - return nil - } - - return i.Value.([]string) -} - -// IntsByTag returns the int64 values of an IndexEntry or nil if the tag is not -// found or has no value. Values with a lower range (E.g. int8) are cast as an -// int64. -func (c IndexEntries) IntsByTag(tag int) []int64 { - ix := c.IndexByTag(tag) - if ix != nil && ix.Value != nil { - vals := make([]int64, ix.ItemCount) - - for i := 0; i < int(ix.ItemCount); i++ { - switch ix.Type { - case IndexDataTypeChar, IndexDataTypeInt8: - vals[i] = int64(ix.Value.([]int8)[i]) - - case IndexDataTypeInt16: - vals[i] = int64(ix.Value.([]int16)[i]) - - case IndexDataTypeInt32: - vals[i] = int64(ix.Value.([]int32)[i]) - - case IndexDataTypeInt64: - vals[i] = ix.Value.([]int64)[i] - } - } - - return vals - } - - return nil -} - -// IntByTag returns the int64 value of an IndexEntry or 0 if the tag is not found -// or has no value. Values with a lower range (E.g. int8) are cast as an int64. -func (c IndexEntries) IntByTag(tag int) int64 { - i := c.IndexByTag(tag) - if i != nil && i.Value != nil { - switch i.Type { - case IndexDataTypeChar, IndexDataTypeInt8: - return int64(i.Value.([]int8)[0]) - - case IndexDataTypeInt16: - return int64(i.Value.([]int16)[0]) - - case IndexDataTypeInt32: - return int64(i.Value.([]int32)[0]) - - case IndexDataTypeInt64: - return int64(i.Value.([]int64)[0]) - } - } - - return 0 -} - -// BytesByTag returns the raw value of an IndexEntry or nil if the tag is not -// found or has no value. -func (c IndexEntries) BytesByTag(tag int) []byte { - i := c.IndexByTag(tag) - if i == nil || i.Value == nil { - return nil - } - - return i.Value.([]byte) -} - -// TimesByTag returns the value of an IndexEntry as a slice of Go native -// timestamps or nil if the tag is not found or has no value. -func (c IndexEntries) TimesByTag(tag int) []time.Time { - ix := c.IndexByTag(tag) - - if ix == nil || ix.Value == nil { - return nil - } - - vals := make([]time.Time, ix.ItemCount) - for i := 0; i < ix.ItemCount; i++ { - vals[i] = time.Unix(int64(ix.Value.([]int32)[i]), 0) - } - - return vals -} - -// TimeByTag returns the value of an IndexEntry as a Go native timestamp or -// zero-time if the tag is not found or has no value. -func (c IndexEntries) TimeByTag(tag int) time.Time { - vals := c.TimesByTag(tag) - if vals == nil || len(vals) == 0 { - return time.Time{} - } - - return vals[0] -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/keyring.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/keyring.go deleted file mode 100644 index 3e4a2c97..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/keyring.go +++ /dev/null @@ -1,55 +0,0 @@ -package rpm - -import ( - "golang.org/x/crypto/openpgp" - "golang.org/x/crypto/openpgp/armor" - "io" - "os" -) - -// KeyRing reads a openpgp.KeyRing from the given io.Reader which may then be -// used to validate GPG keys in RPM packages. -func KeyRing(r io.Reader) (openpgp.KeyRing, error) { - // decode gpgkey file - p, err := armor.Decode(r) - if err != nil { - return nil, err - } - - // extract keys - return openpgp.ReadKeyRing(p.Body) -} - -// KeyRingFromFile reads a openpgp.KeyRing from the given file path which may -// then be used to validate GPG keys in RPM packages. -func KeyRingFromFile(path string) (openpgp.KeyRing, error) { - // open gpgkey file - f, err := os.Open(path) - if err != nil { - return nil, err - } - defer f.Close() - - // read keyring - return KeyRing(f) -} - -// KeyRingFromFiles reads a openpgp.KeyRing from the given file paths which may -// then be used to validate GPG keys in RPM packages. -// -// This function might typically be used to read all keys in /etc/pki/rpm-gpg. -func KeyRingFromFiles(files []string) (openpgp.KeyRing, error) { - keyring := make(openpgp.EntityList, 0) - for _, path := range files { - // read keyring in file - el, err := KeyRingFromFile(path) - if err != nil { - return nil, err - } - - // append keyring - keyring = append(keyring, el.(openpgp.EntityList)...) - } - - return keyring, nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/lead.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/lead.go deleted file mode 100644 index 1ff726dd..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/lead.go +++ /dev/null @@ -1,79 +0,0 @@ -package rpm - -import ( - "bytes" - "encoding/binary" - "fmt" - "io" -) - -// A Lead is the deprecated lead section of an RPM file which is used in legacy -// RPM versions to store package metadata. -type Lead struct { - VersionMajor int - VersionMinor int - Name string - Type int - Architecture int - OperatingSystem int - SignatureType int -} - -// Predefined lead section errors. -var ( - // ErrBadLeadLength indicates that the read lead section is not the expected - // length. - ErrBadLeadLength = fmt.Errorf("RPM lead section is incorrect length") - - // ErrNotRPMFile indicates that the read file does not start with the - // expected descriptor. - ErrNotRPMFile = fmt.Errorf("RPM file descriptor is invalid") - - // ErrUnsupportedVersion indicates that the read lead section version is not - // currently supported. - ErrUnsupportedVersion = fmt.Errorf("unsupported RPM package version") -) - -// ReadPackageLead reads the deprecated lead section of an RPM file which is -// used in legacy RPM versions to store package metadata. -// -// This function should only be used if you intend to read a package lead in -// isolation. -func ReadPackageLead(r io.Reader) (*Lead, error) { - // read bytes - b := make([]byte, 96) - n, err := r.Read(b) - if err != nil { - return nil, err - } - - // check length - if n != 96 { - return nil, ErrBadLeadLength - } - - // check magic number - if 0 != bytes.Compare(b[:4], []byte{0xED, 0xAB, 0xEE, 0xDB}) { - return nil, ErrNotRPMFile - } - - // decode lead - lead := &Lead{ - VersionMajor: int(b[4]), - VersionMinor: int(b[5]), - Type: int(binary.BigEndian.Uint16(b[6:8])), - Architecture: int(binary.BigEndian.Uint16(b[8:10])), - Name: string(b[10:76]), - OperatingSystem: int(binary.BigEndian.Uint16(b[76:78])), - SignatureType: int(binary.BigEndian.Uint16(b[78:80])), - } - - // check version - if lead.VersionMajor < 3 || lead.VersionMajor > 4 { - return nil, ErrUnsupportedVersion - } - - // TODO: validate lead value ranges - - return lead, nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/packagefile.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/packagefile.go deleted file mode 100644 index 966cbd36..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/packagefile.go +++ /dev/null @@ -1,387 +0,0 @@ -package rpm - -import ( - "crypto/sha256" - "encoding/hex" - "fmt" - "io" - "io/ioutil" - "math" - "os" - "path/filepath" - "strings" - "time" -) - -// A PackageFile is an RPM package definition loaded directly from the pacakge -// file itself. -type PackageFile struct { - Lead Lead - Headers Headers - - path string - fileSize uint64 - fileTime time.Time -} - -// ReadPackageFile reads a rpm package file from a stream and returns a pointer -// to it. -func ReadPackageFile(r io.Reader) (*PackageFile, error) { - // See: http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html - p := &PackageFile{} - - // read the deprecated "lead" - lead, err := ReadPackageLead(r) - if err != nil { - return nil, err - } - - p.Lead = *lead - - // read signature and header headers - offset := 96 - p.Headers = make(Headers, 2) - for i := 0; i < 2; i++ { - // parse header - h, err := ReadPackageHeader(r) - if err != nil { - return nil, fmt.Errorf("%v (v%d.%d)", err, lead.VersionMajor, lead.VersionMinor) - } - - // set start and end offsets - h.Start = offset - h.End = h.Start + 16 + (16 * h.IndexCount) + h.Length - offset = h.End - - // calculate location of the end of the header by padding to a multiple of 8 - pad := 8 - int(math.Mod(float64(h.Length), 8)) - if pad < 8 { - offset += pad - } - - // append - p.Headers[i] = *h - } - - return p, nil -} - -// OpenPackageFile reads a rpm package from the file systems and returns a pointer -// to it. -func OpenPackageFile(path string) (*PackageFile, error) { - // stat file - fi, err := os.Stat(path) - if err != nil { - return nil, err - } - - // open file - f, err := os.Open(path) - if err != nil { - return nil, err - } - defer f.Close() - - // read package content - p, err := ReadPackageFile(f) - if err != nil { - return nil, err - } - - // set file info - p.path = path - p.fileSize = uint64(fi.Size()) - p.fileTime = fi.ModTime() - - return p, nil -} - -// OpenPackageFiles reads all rpm packages with the .rpm suffix from the given -// directory on the file systems and returns a slice of pointers to the loaded -// packages. -func OpenPackageFiles(path string) ([]*PackageFile, error) { - // read directory - dir, err := ioutil.ReadDir(path) - if err != nil { - return nil, err - } - - // list *.rpm files - files := make([]string, 0) - for _, f := range dir { - if strings.HasSuffix(f.Name(), ".rpm") { - files = append(files, filepath.Join(path, f.Name())) - } - } - - // read packages - packages := make([]*PackageFile, len(files)) - for i, f := range files { - p, err := OpenPackageFile(f) - if err != nil { - return nil, err - } - - packages[i] = p - } - - return packages, nil -} - -// dependencies translates the given tag values into a slice of package -// relationships such as provides, conflicts, obsoletes and requires. -func (c *PackageFile) dependencies(nevrsTagId, flagsTagId, namesTagId, versionsTagId int) Dependencies { - // TODO: Implement NEVRS tags - - flgs := c.Headers[1].Indexes.IntsByTag(flagsTagId) - names := c.Headers[1].Indexes.StringsByTag(namesTagId) - vers := c.Headers[1].Indexes.StringsByTag(versionsTagId) - - deps := make(Dependencies, len(names)) - for i := 0; i < len(names); i++ { - deps[i] = NewDependency(int(flgs[i]), names[i], 0, vers[i], "") - } - - return deps -} - -// String returns the package identifier in the form -// '[name]-[version]-[release].[architecture]'. -func (c *PackageFile) String() string { - return fmt.Sprintf("%s-%s-%s.%s", c.Name(), c.Version(), c.Release(), c.Architecture()) -} - -// Path returns the path which was given to open a package file if it was opened -// with OpenPackageFile. -func (c *PackageFile) Path() string { - return c.path -} - -// FileTime returns the time at which the RPM was last modified if known. -func (c *PackageFile) FileTime() time.Time { - return c.fileTime -} - -// FileSize returns the size of the package file in bytes. -func (c *PackageFile) FileSize() uint64 { - return c.fileSize -} - -// Checksum computes and returns the SHA256 checksum (encoded in hexidecimal) of -// the package file. -func (c *PackageFile) Checksum() (string, error) { - if c.Path() == "" { - return "", fmt.Errorf("File not found") - } - - if f, err := os.Open(c.Path()); err != nil { - return "", err - } else { - defer f.Close() - - s := sha256.New() - if _, err := io.Copy(s, f); err != nil { - return "", err - } - - return hex.EncodeToString(s.Sum(nil)), nil - } -} - -// ChecksumType returns "sha256" -func (c *PackageFile) ChecksumType() string { - return "sha256" -} - -func (c *PackageFile) HeaderStart() uint64 { - return uint64(c.Headers[1].Start) -} - -func (c *PackageFile) HeaderEnd() uint64 { - return uint64(c.Headers[1].End) -} - -// For tag definitions, see: -// https://github.com/rpm-software-management/rpm/blob/master/lib/rpmtag.h#L61 - -func (c *PackageFile) Name() string { - return c.Headers[1].Indexes.StringByTag(1000) -} - -func (c *PackageFile) Version() string { - return c.Headers[1].Indexes.StringByTag(1001) -} - -func (c *PackageFile) Release() string { - return c.Headers[1].Indexes.StringByTag(1002) -} - -func (c *PackageFile) Epoch() int { - return int(c.Headers[1].Indexes.IntByTag(1003)) -} - -func (c *PackageFile) Requires() Dependencies { - return c.dependencies(5041, 1048, 1049, 1050) -} - -func (c *PackageFile) Provides() Dependencies { - return c.dependencies(5042, 1112, 1047, 1113) -} - -func (c *PackageFile) Conflicts() Dependencies { - return c.dependencies(5044, 1053, 1054, 1055) -} - -func (c *PackageFile) Obsoletes() Dependencies { - return c.dependencies(5043, 1114, 1090, 1115) -} - -// Files returns file information for each file that is installed by this RPM -// package. -func (c *PackageFile) Files() []FileInfo { - ixs := c.Headers[1].Indexes.IntsByTag(1116) - names := c.Headers[1].Indexes.StringsByTag(1117) - dirs := c.Headers[1].Indexes.StringsByTag(1118) - modes := c.Headers[1].Indexes.IntsByTag(1030) - sizes := c.Headers[1].Indexes.IntsByTag(1028) - times := c.Headers[1].Indexes.IntsByTag(1034) - owners := c.Headers[1].Indexes.StringsByTag(1039) - groups := c.Headers[1].Indexes.StringsByTag(1040) - - files := make([]FileInfo, len(names)) - for i := 0; i < len(names); i++ { - files[i] = FileInfo{ - name: dirs[ixs[i]] + names[i], - mode: os.FileMode(modes[i]), - size: sizes[i], - modTime: time.Unix(times[i], 0), - owner: owners[i], - group: groups[i], - } - } - - return files -} - -func (c *PackageFile) Summary() string { - return strings.Join(c.Headers[1].Indexes.StringsByTag(1004), "\n") -} - -func (c *PackageFile) Description() string { - return strings.Join(c.Headers[1].Indexes.StringsByTag(1005), "\n") -} - -func (c *PackageFile) BuildTime() time.Time { - return c.Headers[1].Indexes.TimeByTag(1006) -} - -func (c *PackageFile) BuildHost() string { - return c.Headers[1].Indexes.StringByTag(1007) -} - -func (c *PackageFile) InstallTime() time.Time { - return c.Headers[1].Indexes.TimeByTag(1008) -} - -// Size specifies the disk space consumed by installation of the package. -func (c *PackageFile) Size() uint64 { - return uint64(c.Headers[1].Indexes.IntByTag(1009)) -} - -// ArchiveSize specifies the size of the archived payload of the package in -// bytes. -func (c *PackageFile) ArchiveSize() uint64 { - if i := uint64(c.Headers[0].Indexes.IntByTag(1007)); i > 0 { - return i - } - - return uint64(c.Headers[1].Indexes.IntByTag(1046)) -} - -func (c *PackageFile) Distribution() string { - return c.Headers[1].Indexes.StringByTag(1010) -} - -func (c *PackageFile) Vendor() string { - return c.Headers[1].Indexes.StringByTag(1011) -} - -func (c *PackageFile) GIFImage() []byte { - return c.Headers[1].Indexes.BytesByTag(1012) -} - -func (c *PackageFile) XPMImage() []byte { - return c.Headers[1].Indexes.BytesByTag(1013) -} - -func (c *PackageFile) License() string { - return c.Headers[1].Indexes.StringByTag(1014) -} - -func (c *PackageFile) Packager() string { - return c.Headers[1].Indexes.StringByTag(1015) -} - -func (c *PackageFile) Groups() []string { - return c.Headers[1].Indexes.StringsByTag(1016) -} - -func (c *PackageFile) ChangeLog() []string { - return c.Headers[1].Indexes.StringsByTag(1017) -} - -func (c *PackageFile) Source() []string { - return c.Headers[1].Indexes.StringsByTag(1018) -} - -func (c *PackageFile) Patch() []string { - return c.Headers[1].Indexes.StringsByTag(1019) -} - -func (c *PackageFile) URL() string { - return c.Headers[1].Indexes.StringByTag(1020) -} - -func (c *PackageFile) OperatingSystem() string { - return c.Headers[1].Indexes.StringByTag(1021) -} - -func (c *PackageFile) Architecture() string { - return c.Headers[1].Indexes.StringByTag(1022) -} - -func (c *PackageFile) PreInstallScript() string { - return c.Headers[1].Indexes.StringByTag(1023) -} - -func (c *PackageFile) PostInstallScript() string { - return c.Headers[1].Indexes.StringByTag(1024) -} - -func (c *PackageFile) PreUninstallScript() string { - return c.Headers[1].Indexes.StringByTag(1025) -} - -func (c *PackageFile) PostUninstallScript() string { - return c.Headers[1].Indexes.StringByTag(1026) -} - -func (c *PackageFile) OldFilenames() []string { - return c.Headers[1].Indexes.StringsByTag(1027) -} - -func (c *PackageFile) Icon() []byte { - return c.Headers[1].Indexes.BytesByTag(1043) -} - -func (c *PackageFile) SourceRPM() string { - return c.Headers[1].Indexes.StringByTag(1044) -} - -func (c *PackageFile) RPMVersion() string { - return c.Headers[1].Indexes.StringByTag(1064) -} - -func (c *PackageFile) Platform() string { - return c.Headers[1].Indexes.StringByTag(1132) -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/tags.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/tags.go deleted file mode 100644 index 6328bf43..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/tags.go +++ /dev/null @@ -1,355 +0,0 @@ -package rpm - -// See: -// https://github.com/rpm-software-management/rpm/blob/master/lib/rpmtag.h - -// Tags for the signature header. -const ( - RPMSIGTAG_SIZE = 1000 - RPMSIGTAG_LEMD5_1 = 1001 - RPMSIGTAG_PGP = 1002 - RPMSIGTAG_LEMD5_2 = 1003 - RPMSIGTAG_MD5 = 1004 - RPMSIGTAG_GPG = 1005 - RPMSIGTAG_PGP5 = 1006 - RPMSIGTAG_PAYLOADSIZE = 1007 - RPMSIGTAG_RESERVEDSPACE = 1008 - RPMSIGTAG_BADSHA1_1 = RPMTAG_BADSHA1_1 - RPMSIGTAG_BADSHA1_2 = RPMTAG_BADSHA1_2 - RPMSIGTAG_SHA1 = RPMTAG_SHA1HEADER - RPMSIGTAG_DSA = RPMTAG_DSAHEADER - RPMSIGTAG_RSA = RPMTAG_RSAHEADER - RPMSIGTAG_LONGSIZE = RPMTAG_LONGSIGSIZE - RPMSIGTAG_LONGARCHIVESIZE = RPMTAG_LONGARCHIVESIZE -) - -// Tags for the header header. -const ( - RPMTAG_NOT_FOUND = -1 - - RPMTAG_HEADERIMAGE = 61 - RPMTAG_HEADERSIGNATURES = 62 - RPMTAG_HEADERIMMUTABLE = 63 - RPMTAG_HEADERREGIONS = 64 - RPMTAG_HEADERI18NTABLE = 100 - - RPMTAG_SIG_BASE = 256 - RPMTAG_SIGSIZE = 257 - RPMTAG_SIGLEMD5_1 = 258 - RPMTAG_SIGPGP = 259 - RPMTAG_SIGLEMD5_2 = 260 - RPMTAG_SIGMD5 = 261 - RPMTAG_PKGID = RPMTAG_SIGMD5 - RPMTAG_SIGGPG = 262 - RPMTAG_SIGPGP5 = 263 - - RPMTAG_BADSHA1_1 = 264 - RPMTAG_BADSHA1_2 = 265 - RPMTAG_PUBKEYS = 266 - RPMTAG_DSAHEADER = 267 - RPMTAG_RSAHEADER = 268 - RPMTAG_SHA1HEADER = 269 - RPMTAG_HDRID = RPMTAG_SHA1HEADER - RPMTAG_LONGSIGSIZE = 270 - RPMTAG_LONGARCHIVESIZE = 271 - - RPMTAG_NAME = 1000 - RPMTAG_N = RPMTAG_NAME - RPMTAG_VERSION = 1001 - RPMTAG_V = RPMTAG_VERSION - RPMTAG_RELEASE = 1002 - RPMTAG_R = RPMTAG_RELEASE - RPMTAG_EPOCH = 1003 - RPMTAG_E = RPMTAG_EPOCH - RPMTAG_SUMMARY = 1004 - RPMTAG_DESCRIPTION = 1005 - RPMTAG_BUILDTIME = 1006 - RPMTAG_BUILDHOST = 1007 - RPMTAG_INSTALLTIME = 1008 - RPMTAG_SIZE = 1009 - RPMTAG_DISTRIBUTION = 1010 - RPMTAG_VENDOR = 1011 - RPMTAG_GIF = 1012 - RPMTAG_XPM = 1013 - RPMTAG_LICENSE = 1014 - RPMTAG_PACKAGER = 1015 - RPMTAG_GROUP = 1016 - RPMTAG_CHANGELOG = 1017 - RPMTAG_SOURCE = 1018 - RPMTAG_PATCH = 1019 - RPMTAG_URL = 1020 - RPMTAG_OS = 1021 - RPMTAG_ARCH = 1022 - RPMTAG_PREIN = 1023 - RPMTAG_POSTIN = 1024 - RPMTAG_PREUN = 1025 - RPMTAG_POSTUN = 1026 - RPMTAG_OLDFILENAMES = 1027 - RPMTAG_FILESIZES = 1028 - RPMTAG_FILESTATES = 1029 - RPMTAG_FILEMODES = 1030 - RPMTAG_FILEUIDS = 1031 - RPMTAG_FILEGIDS = 1032 - RPMTAG_FILERDEVS = 1033 - RPMTAG_FILEMTIMES = 1034 - RPMTAG_FILEDIGESTS = 1035 - RPMTAG_FILEMD5S = RPMTAG_FILEDIGESTS - RPMTAG_FILELINKTOS = 1036 - RPMTAG_FILEFLAGS = 1037 - RPMTAG_ROOT = 1038 - RPMTAG_FILEUSERNAME = 1039 - RPMTAG_FILEGROUPNAME = 1040 - RPMTAG_EXCLUDE = 1041 - RPMTAG_EXCLUSIVE = 1042 - RPMTAG_ICON = 1043 - RPMTAG_SOURCERPM = 1044 - RPMTAG_FILEVERIFYFLAGS = 1045 - RPMTAG_ARCHIVESIZE = 1046 - RPMTAG_PROVIDENAME = 1047 - RPMTAG_PROVIDES = RPMTAG_PROVIDENAME - RPMTAG_P = RPMTAG_PROVIDENAME - RPMTAG_REQUIREFLAGS = 1048 - RPMTAG_REQUIRENAME = 1049 - RPMTAG_REQUIRES = RPMTAG_REQUIRENAME - RPMTAG_REQUIREVERSION = 1050 - RPMTAG_NOSOURCE = 1051 - RPMTAG_NOPATCH = 1052 - RPMTAG_CONFLICTFLAGS = 1053 - RPMTAG_CONFLICTNAME = 1054 - RPMTAG_CONFLICTS = RPMTAG_CONFLICTNAME - RPMTAG_C = RPMTAG_CONFLICTNAME - RPMTAG_CONFLICTVERSION = 1055 - RPMTAG_DEFAULTPREFIX = 1056 - RPMTAG_BUILDROOT = 1057 - RPMTAG_INSTALLPREFIX = 1058 - RPMTAG_EXCLUDEARCH = 1059 - RPMTAG_EXCLUDEOS = 1060 - RPMTAG_EXCLUSIVEARCH = 1061 - RPMTAG_EXCLUSIVEOS = 1062 - RPMTAG_AUTOREQPROV = 1063 - RPMTAG_RPMVERSION = 1064 - RPMTAG_TRIGGERSCRIPTS = 1065 - RPMTAG_TRIGGERNAME = 1066 - RPMTAG_TRIGGERVERSION = 1067 - RPMTAG_TRIGGERFLAGS = 1068 - RPMTAG_TRIGGERINDEX = 1069 - RPMTAG_VERIFYSCRIPT = 1079 - RPMTAG_CHANGELOGTIME = 1080 - RPMTAG_CHANGELOGNAME = 1081 - RPMTAG_CHANGELOGTEXT = 1082 - RPMTAG_BROKENMD5 = 1083 - RPMTAG_PREREQ = 1084 - RPMTAG_PREINPROG = 1085 - RPMTAG_POSTINPROG = 1086 - RPMTAG_PREUNPROG = 1087 - RPMTAG_POSTUNPROG = 1088 - RPMTAG_BUILDARCHS = 1089 - RPMTAG_OBSOLETENAME = 1090 - RPMTAG_OBSOLETES = RPMTAG_OBSOLETENAME - RPMTAG_O = RPMTAG_OBSOLETENAME - RPMTAG_VERIFYSCRIPTPROG = 1091 - RPMTAG_TRIGGERSCRIPTPROG = 1092 - RPMTAG_DOCDIR = 1093 - RPMTAG_COOKIE = 1094 - RPMTAG_FILEDEVICES = 1095 - RPMTAG_FILEINODES = 1096 - RPMTAG_FILELANGS = 1097 - RPMTAG_PREFIXES = 1098 - RPMTAG_INSTPREFIXES = 1099 - RPMTAG_TRIGGERIN = 1100 - RPMTAG_TRIGGERUN = 1101 - RPMTAG_TRIGGERPOSTUN = 1102 - RPMTAG_AUTOREQ = 1103 - RPMTAG_AUTOPROV = 1104 - RPMTAG_CAPABILITY = 1105 - RPMTAG_SOURCEPACKAGE = 1106 - RPMTAG_OLDORIGFILENAMES = 1107 - RPMTAG_BUILDPREREQ = 1108 - RPMTAG_BUILDREQUIRES = 1109 - RPMTAG_BUILDCONFLICTS = 1110 - RPMTAG_BUILDMACROS = 1111 - RPMTAG_PROVIDEFLAGS = 1112 - RPMTAG_PROVIDEVERSION = 1113 - RPMTAG_OBSOLETEFLAGS = 1114 - RPMTAG_OBSOLETEVERSION = 1115 - RPMTAG_DIRINDEXES = 1116 - RPMTAG_BASENAMES = 1117 - RPMTAG_DIRNAMES = 1118 - RPMTAG_ORIGDIRINDEXES = 1119 - RPMTAG_ORIGBASENAMES = 1120 - RPMTAG_ORIGDIRNAMES = 1121 - RPMTAG_OPTFLAGS = 1122 - RPMTAG_DISTURL = 1123 - RPMTAG_PAYLOADFORMAT = 1124 - RPMTAG_PAYLOADCOMPRESSOR = 1125 - RPMTAG_PAYLOADFLAGS = 1126 - RPMTAG_INSTALLCOLOR = 1127 - RPMTAG_INSTALLTID = 1128 - RPMTAG_REMOVETID = 1129 - RPMTAG_SHA1RHN = 1130 - RPMTAG_RHNPLATFORM = 1131 - RPMTAG_PLATFORM = 1132 - RPMTAG_PATCHESNAME = 1133 - RPMTAG_PATCHESFLAGS = 1134 - RPMTAG_PATCHESVERSION = 1135 - RPMTAG_CACHECTIME = 1136 - RPMTAG_CACHEPKGPATH = 1137 - RPMTAG_CACHEPKGSIZE = 1138 - RPMTAG_CACHEPKGMTIME = 1139 - RPMTAG_FILECOLORS = 1140 - RPMTAG_FILECLASS = 1141 - RPMTAG_CLASSDICT = 1142 - RPMTAG_FILEDEPENDSX = 1143 - RPMTAG_FILEDEPENDSN = 1144 - RPMTAG_DEPENDSDICT = 1145 - RPMTAG_SOURCEPKGID = 1146 - RPMTAG_FILECONTEXTS = 1147 - RPMTAG_FSCONTEXTS = 1148 - RPMTAG_RECONTEXTS = 1149 - RPMTAG_POLICIES = 1150 - RPMTAG_PRETRANS = 1151 - RPMTAG_POSTTRANS = 1152 - RPMTAG_PRETRANSPROG = 1153 - RPMTAG_POSTTRANSPROG = 1154 - RPMTAG_DISTTAG = 1155 - RPMTAG_OLDSUGGESTSNAME = 1156 - RPMTAG_OLDSUGGESTS = RPMTAG_OLDSUGGESTSNAME - RPMTAG_OLDSUGGESTSVERSION = 1157 - RPMTAG_OLDSUGGESTSFLAGS = 1158 - RPMTAG_OLDENHANCESNAME = 1159 - RPMTAG_OLDENHANCES = RPMTAG_OLDENHANCESNAME - RPMTAG_OLDENHANCESVERSION = 1160 - RPMTAG_OLDENHANCESFLAGS = 1161 - RPMTAG_PRIORITY = 1162 - RPMTAG_CVSID = 1163 - RPMTAG_SVNID = RPMTAG_CVSID - RPMTAG_BLINKPKGID = 1164 - RPMTAG_BLINKHDRID = 1165 - RPMTAG_BLINKNEVRA = 1166 - RPMTAG_FLINKPKGID = 1167 - RPMTAG_FLINKHDRID = 1168 - RPMTAG_FLINKNEVRA = 1169 - RPMTAG_PACKAGEORIGIN = 1170 - RPMTAG_TRIGGERPREIN = 1171 - RPMTAG_BUILDSUGGESTS = 1172 - RPMTAG_BUILDENHANCES = 1173 - RPMTAG_SCRIPTSTATES = 1174 - RPMTAG_SCRIPTMETRICS = 1175 - RPMTAG_BUILDCPUCLOCK = 1176 - RPMTAG_FILEDIGESTALGOS = 1177 - RPMTAG_VARIANTS = 1178 - RPMTAG_XMAJOR = 1179 - RPMTAG_XMINOR = 1180 - RPMTAG_REPOTAG = 1181 - RPMTAG_KEYWORDS = 1182 - RPMTAG_BUILDPLATFORMS = 1183 - RPMTAG_PACKAGECOLOR = 1184 - RPMTAG_PACKAGEPREFCOLOR = 1185 - RPMTAG_XATTRSDICT = 1186 - RPMTAG_FILEXATTRSX = 1187 - RPMTAG_DEPATTRSDICT = 1188 - RPMTAG_CONFLICTATTRSX = 1189 - RPMTAG_OBSOLETEATTRSX = 1190 - RPMTAG_PROVIDEATTRSX = 1191 - RPMTAG_REQUIREATTRSX = 1192 - RPMTAG_BUILDPROVIDES = 1193 - RPMTAG_BUILDOBSOLETES = 1194 - RPMTAG_DBINSTANCE = 1195 - RPMTAG_NVRA = 1196 - - RPMTAG_FILENAMES = 5000 - RPMTAG_FILEPROVIDE = 5001 - RPMTAG_FILEREQUIRE = 5002 - RPMTAG_FSNAMES = 5003 - RPMTAG_FSSIZES = 5004 - RPMTAG_TRIGGERCONDS = 5005 - RPMTAG_TRIGGERTYPE = 5006 - RPMTAG_ORIGFILENAMES = 5007 - RPMTAG_LONGFILESIZES = 5008 - RPMTAG_LONGSIZE = 5009 - RPMTAG_FILECAPS = 5010 - RPMTAG_FILEDIGESTALGO = 5011 - RPMTAG_BUGURL = 5012 - RPMTAG_EVR = 5013 - RPMTAG_NVR = 5014 - RPMTAG_NEVR = 5015 - RPMTAG_NEVRA = 5016 - RPMTAG_HEADERCOLOR = 5017 - RPMTAG_VERBOSE = 5018 - RPMTAG_EPOCHNUM = 5019 - RPMTAG_PREINFLAGS = 5020 - RPMTAG_POSTINFLAGS = 5021 - RPMTAG_PREUNFLAGS = 5022 - RPMTAG_POSTUNFLAGS = 5023 - RPMTAG_PRETRANSFLAGS = 5024 - RPMTAG_POSTTRANSFLAGS = 5025 - RPMTAG_VERIFYSCRIPTFLAGS = 5026 - RPMTAG_TRIGGERSCRIPTFLAGS = 5027 - RPMTAG_COLLECTIONS = 5029 - RPMTAG_POLICYNAMES = 5030 - RPMTAG_POLICYTYPES = 5031 - RPMTAG_POLICYTYPESINDEXES = 5032 - RPMTAG_POLICYFLAGS = 5033 - RPMTAG_VCS = 5034 - RPMTAG_ORDERNAME = 5035 - RPMTAG_ORDERVERSION = 5036 - RPMTAG_ORDERFLAGS = 5037 - RPMTAG_MSSFMANIFEST = 5038 - RPMTAG_MSSFDOMAIN = 5039 - RPMTAG_INSTFILENAMES = 5040 - RPMTAG_REQUIRENEVRS = 5041 - RPMTAG_PROVIDENEVRS = 5042 - RPMTAG_OBSOLETENEVRS = 5043 - RPMTAG_CONFLICTNEVRS = 5044 - RPMTAG_FILENLINKS = 5045 - RPMTAG_RECOMMENDNAME = 5046 - RPMTAG_RECOMMENDS = RPMTAG_RECOMMENDNAME - RPMTAG_RECOMMENDVERSION = 5047 - RPMTAG_RECOMMENDFLAGS = 5048 - RPMTAG_SUGGESTNAME = 5049 - RPMTAG_SUGGESTS = RPMTAG_SUGGESTNAME - RPMTAG_SUGGESTVERSION = 5050 - RPMTAG_SUGGESTFLAGS = 5051 - RPMTAG_SUPPLEMENTNAME = 5052 - RPMTAG_SUPPLEMENTS = RPMTAG_SUPPLEMENTNAME - RPMTAG_SUPPLEMENTVERSION = 5053 - RPMTAG_SUPPLEMENTFLAGS = 5054 - RPMTAG_ENHANCENAME = 5055 - RPMTAG_ENHANCES = RPMTAG_ENHANCENAME - RPMTAG_ENHANCEVERSION = 5056 - RPMTAG_ENHANCEFLAGS = 5057 - RPMTAG_RECOMMENDNEVRS = 5058 - RPMTAG_SUGGESTNEVRS = 5059 - RPMTAG_SUPPLEMENTNEVRS = 5060 - RPMTAG_ENHANCENEVRS = 5061 - RPMTAG_ENCODING = 5062 - RPMTAG_FILETRIGGERIN = 5063 - RPMTAG_FILETRIGGERUN = 5064 - RPMTAG_FILETRIGGERPOSTUN = 5065 - RPMTAG_FILETRIGGERSCRIPTS = 5066 - RPMTAG_FILETRIGGERSCRIPTPROG = 5067 - RPMTAG_FILETRIGGERSCRIPTFLAGS = 5068 - RPMTAG_FILETRIGGERNAME = 5069 - RPMTAG_FILETRIGGERINDEX = 5070 - RPMTAG_FILETRIGGERVERSION = 5071 - RPMTAG_FILETRIGGERFLAGS = 5072 - RPMTAG_TRANSFILETRIGGERIN = 5073 - RPMTAG_TRANSFILETRIGGERUN = 5074 - RPMTAG_TRANSFILETRIGGERPOSTUN = 5075 - RPMTAG_TRANSFILETRIGGERSCRIPTS = 5076 - RPMTAG_TRANSFILETRIGGERSCRIPTPROG = 5077 - RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS = 5078 - RPMTAG_TRANSFILETRIGGERNAME = 5079 - RPMTAG_TRANSFILETRIGGERINDEX = 5080 - RPMTAG_TRANSFILETRIGGERVERSION = 5081 - RPMTAG_TRANSFILETRIGGERFLAGS = 5082 - RPMTAG_REMOVEPATHPOSTFIXES = 5083 - RPMTAG_FILETRIGGERPRIORITIES = 5084 - RPMTAG_TRANSFILETRIGGERPRIORITIES = 5085 - RPMTAG_FILETRIGGERCONDS = 5086 - RPMTAG_FILETRIGGERTYPE = 5087 - RPMTAG_TRANSFILETRIGGERCONDS = 5088 - RPMTAG_TRANSFILETRIGGERTYPE = 5089 - RPMTAG_FILESIGNATURES = 5090 - RPMTAG_FILESIGNATURELENGTH = 5091 -) diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/vercmp_test.py b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/vercmp_test.py deleted file mode 100755 index 0cabf866..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/vercmp_test.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/python - -# -# Generate test cases for version_test.go -# -# Herein lies my first ever python script... -# -import rpm - -versions = [ - "", - "0", - "1", - "2", - "10", - "100", - "0.0", - "0.1", - "0.10", - "0.99", - "1.0", - "1.99", - "2.0", - "0.0.0", - "0.0.1", - "0.0.2", - "0.0.10", - "0.0.99", - "0.1.0", - "0.2.0", - "0.10.0", - "0.99.0", - "0.100.0", - "0.0.0.0", - "0.0.0.1", - "0.0.0.10", - "0.0.1.0", - "0.0.01.0", - "1.2.3.4", - "1-2-3-4", - "20150101", - "20151212", - "20151212.0", - "20151212.1", - "2015.1.1", - "2015.02.02", - "2015.12.12", - "1.2.3a", - "1.2.3b", - "R16B", - "R16C", - "1.2.3.2016.1.1", - "0.5a1.dev", - "1.8.B59BrZX", - "0.07b4p1", - "3.99.5final.SP07", - "3.99.5final.SP08", - "0.4.tbb.20100203", - "0.5.20120830CVS.el7", - "1.el7", - "1.el6", - "10.el7", - "01.el7", - "0.17.20140318svn632.el7", - "0.17.20140318svn633.el7", - "1.20140522gitad6fb3e.el7", - "1.20140522hitad6fb3e.el7", - "8.20140605hgacf1c26e3019.el7", - "8.20140605hgacf1c26e3029.el7", - "22.svn457.el7", - "22.svn458.el7", -] - -print "\t// tests generated with version_test.py" -print "\ttests := []VerTest{" - -for x in versions: - for y in versions: - print "\t\tVerTest{\"" + x + "\", \"" + y + "\",", rpm.labelCompare(("0", "0", x), ("0", "0", y)), "}," - -print "\t}" diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/version.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/version.go deleted file mode 100644 index 62856ea7..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/cavaliercoder/go-rpm/version.go +++ /dev/null @@ -1,138 +0,0 @@ -package rpm - -import ( - "math" - "regexp" - "strings" - "unicode" -) - -// alphanumPattern is a regular expression to match all sequences of numeric -// characters or alphanumeric characters. -var alphanumPattern = regexp.MustCompile("([a-zA-Z]+)|([0-9]+)") - -// PackageVersion is an interface which holds version information for a single -// package version. -type PackageVersion interface { - Name() string - Version() string - Release() string - Epoch() int -} - -// VersionCompare compares the version details of two packages. Versions are -// compared by Epoch, Version and Release in descending order of precedence. -// -// If a is more recent than b, 1 is returned. If a is less recent than b, -1 is -// returned. If a and b are equal, 0 is returned. -// -// This function does not consider if the two packages have the same name or if -// either package has been made obsolete by the other. -func VersionCompare(a PackageVersion, b PackageVersion) int { - // compare nils - if a == nil && b == nil { - return 0 - } else if a == nil { - return -1 - } else if b == nil { - return 1 - } - - // compare epoch - ae := a.Epoch() - be := b.Epoch() - if ae != be { - if ae > be { - return 1 - } else { - return -1 - } - } - - // compare version - if rc := rpmvercmp(a.Version(), b.Version()); rc != 0 { - return rc - } - - // compare release - return rpmvercmp(a.Release(), b.Release()) -} - -// LatestPackage returns the package with the highest version in the given slice -// of PackageVersions. -func LatestPackage(v ...PackageVersion) PackageVersion { - var latest PackageVersion - for _, p := range v { - if 1 == VersionCompare(p, latest) { - latest = p - } - } - - return latest -} - -// rpmcmpver compares two version or release strings. -// -// For the original C implementation, see: -// https://github.com/rpm-software-management/rpm/blob/master/lib/rpmvercmp.c#L16 -func rpmvercmp(a, b string) int { - // shortcut for equality - if a == b { - return 0 - } - - // get alpha/numeric segements - segsa := alphanumPattern.FindAllString(a, -1) - segsb := alphanumPattern.FindAllString(b, -1) - segs := int(math.Min(float64(len(segsa)), float64(len(segsb)))) - - // TODO: handle tildes in rpmvercmp - - // compare each segment - for i := 0; i < segs; i++ { - a := segsa[i] - b := segsb[i] - - if unicode.IsNumber([]rune(a)[0]) { - // numbers are always greater than alphas - if !unicode.IsNumber([]rune(b)[0]) { - // a is numeric, b is alpha - return 1 - } - - // trim leading zeros - a = strings.TrimLeft(a, "0") - b = strings.TrimLeft(b, "0") - - // longest string wins without further comparison - if len(a) > len(b) { - return 1 - } else if len(b) > len(a) { - return -1 - } - - } else if unicode.IsNumber([]rune(b)[0]) { - // a is alpha, b is numeric - return -1 - } - - // string compare - if a < b { - return -1 - } else if a > b { - return 1 - } - } - - // segments were all the same but separators must have been different - if len(segsa) == len(segsb) { - return 0 - } - - // whoever has the most segments wins - if len(segsa) > len(segsb) { - return 1 - } else { - return -1 - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/LICENSE b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/LICENSE deleted file mode 100644 index 51fca54c..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/LICENSE +++ /dev/null @@ -1,11 +0,0 @@ -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/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/README.md b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/README.md deleted file mode 100644 index 6914c148..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# gotpl - CLI tool for Golang templates - -Command line tool that compiles Golang -[templates](http://golang.org/pkg/text/template/) with values from YAML files. - -Inspired by Python/Jinja2's [j2cli](https://github.com/kolypto/j2cli). - -## Install - - go get github.com/tsg/gotpl - -## Usage - -Say you have a `template` file like this: - - {{.first_name}} {{.last_name}} is {{.age}} years old. - -and a `user.yml` YAML file like this one: - - first_name: Max - last_name: Mustermann - age: 30 - -You can compile the template like this: - - gotpl template < user.yml diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/tpl.go b/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/tpl.go deleted file mode 100644 index 563d8471..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/github.com/tsg/gotpl/tpl.go +++ /dev/null @@ -1,48 +0,0 @@ -package main - -import ( - "bytes" - "fmt" - "io" - "log" - "os" - "text/template" - - "gopkg.in/yaml.v2" -) - -// Reads a YAML document from the values_in stream, uses it as values -// for the tpl_files templates and writes the executed templates to -// the out stream. -func ExecuteTemplates(values_in io.Reader, out io.Writer, tpl_files ...string) error { - tpl, err := template.ParseFiles(tpl_files...) - if err != nil { - return fmt.Errorf("Error parsing template(s): %v", err) - } - - buf := bytes.NewBuffer(nil) - _, err = io.Copy(buf, values_in) - if err != nil { - return fmt.Errorf("Failed to read standard input: %v", err) - } - - var values map[string]interface{} - err = yaml.Unmarshal(buf.Bytes(), &values) - if err != nil { - return fmt.Errorf("Failed to parse standard input: %v", err) - } - - err = tpl.Execute(out, values) - if err != nil { - return fmt.Errorf("Failed to parse standard input: %v", err) - } - return nil -} - -func main() { - err := ExecuteTemplates(os.Stdin, os.Stdout, os.Args[1:]...) - if err != nil { - log.Println(err) - os.Exit(1) - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/cast5/cast5.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/cast5/cast5.go deleted file mode 100644 index 0b4af37b..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/cast5/cast5.go +++ /dev/null @@ -1,526 +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 cast5 implements CAST5, as defined in RFC 2144. CAST5 is a common -// OpenPGP cipher. -package cast5 // import "golang.org/x/crypto/cast5" - -import "errors" - -const BlockSize = 8 -const KeySize = 16 - -type Cipher struct { - masking [16]uint32 - rotate [16]uint8 -} - -func NewCipher(key []byte) (c *Cipher, err error) { - if len(key) != KeySize { - return nil, errors.New("CAST5: keys must be 16 bytes") - } - - c = new(Cipher) - c.keySchedule(key) - return -} - -func (c *Cipher) BlockSize() int { - return BlockSize -} - -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 = r, l^f1(r, c.masking[0], c.rotate[0]) - l, r = r, l^f2(r, c.masking[1], c.rotate[1]) - l, r = r, l^f3(r, c.masking[2], c.rotate[2]) - l, r = r, l^f1(r, c.masking[3], c.rotate[3]) - - l, r = r, l^f2(r, c.masking[4], c.rotate[4]) - l, r = r, l^f3(r, c.masking[5], c.rotate[5]) - l, r = r, l^f1(r, c.masking[6], c.rotate[6]) - l, r = r, l^f2(r, c.masking[7], c.rotate[7]) - - l, r = r, l^f3(r, c.masking[8], c.rotate[8]) - l, r = r, l^f1(r, c.masking[9], c.rotate[9]) - l, r = r, l^f2(r, c.masking[10], c.rotate[10]) - l, r = r, l^f3(r, c.masking[11], c.rotate[11]) - - l, r = r, l^f1(r, c.masking[12], c.rotate[12]) - l, r = r, l^f2(r, c.masking[13], c.rotate[13]) - l, r = r, l^f3(r, c.masking[14], c.rotate[14]) - l, r = r, l^f1(r, c.masking[15], c.rotate[15]) - - dst[0] = uint8(r >> 24) - dst[1] = uint8(r >> 16) - dst[2] = uint8(r >> 8) - dst[3] = uint8(r) - dst[4] = uint8(l >> 24) - dst[5] = uint8(l >> 16) - dst[6] = uint8(l >> 8) - dst[7] = uint8(l) -} - -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 = r, l^f1(r, c.masking[15], c.rotate[15]) - l, r = r, l^f3(r, c.masking[14], c.rotate[14]) - l, r = r, l^f2(r, c.masking[13], c.rotate[13]) - l, r = r, l^f1(r, c.masking[12], c.rotate[12]) - - l, r = r, l^f3(r, c.masking[11], c.rotate[11]) - l, r = r, l^f2(r, c.masking[10], c.rotate[10]) - l, r = r, l^f1(r, c.masking[9], c.rotate[9]) - l, r = r, l^f3(r, c.masking[8], c.rotate[8]) - - l, r = r, l^f2(r, c.masking[7], c.rotate[7]) - l, r = r, l^f1(r, c.masking[6], c.rotate[6]) - l, r = r, l^f3(r, c.masking[5], c.rotate[5]) - l, r = r, l^f2(r, c.masking[4], c.rotate[4]) - - l, r = r, l^f1(r, c.masking[3], c.rotate[3]) - l, r = r, l^f3(r, c.masking[2], c.rotate[2]) - l, r = r, l^f2(r, c.masking[1], c.rotate[1]) - l, r = r, l^f1(r, c.masking[0], c.rotate[0]) - - dst[0] = uint8(r >> 24) - dst[1] = uint8(r >> 16) - dst[2] = uint8(r >> 8) - dst[3] = uint8(r) - dst[4] = uint8(l >> 24) - dst[5] = uint8(l >> 16) - dst[6] = uint8(l >> 8) - dst[7] = uint8(l) -} - -type keyScheduleA [4][7]uint8 -type keyScheduleB [4][5]uint8 - -// keyScheduleRound contains the magic values for a round of the key schedule. -// The keyScheduleA deals with the lines like: -// z0z1z2z3 = x0x1x2x3 ^ S5[xD] ^ S6[xF] ^ S7[xC] ^ S8[xE] ^ S7[x8] -// Conceptually, both x and z are in the same array, x first. The first -// element describes which word of this array gets written to and the -// second, which word gets read. So, for the line above, it's "4, 0", because -// it's writing to the first word of z, which, being after x, is word 4, and -// reading from the first word of x: word 0. -// -// Next are the indexes into the S-boxes. Now the array is treated as bytes. So -// "xD" is 0xd. The first byte of z is written as "16 + 0", just to be clear -// that it's z that we're indexing. -// -// keyScheduleB deals with lines like: -// K1 = S5[z8] ^ S6[z9] ^ S7[z7] ^ S8[z6] ^ S5[z2] -// "K1" is ignored because key words are always written in order. So the five -// elements are the S-box indexes. They use the same form as in keyScheduleA, -// above. - -type keyScheduleRound struct{} -type keySchedule []keyScheduleRound - -var schedule = []struct { - a keyScheduleA - b keyScheduleB -}{ - { - keyScheduleA{ - {4, 0, 0xd, 0xf, 0xc, 0xe, 0x8}, - {5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa}, - {6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9}, - {7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb}, - }, - keyScheduleB{ - {16 + 8, 16 + 9, 16 + 7, 16 + 6, 16 + 2}, - {16 + 0xa, 16 + 0xb, 16 + 5, 16 + 4, 16 + 6}, - {16 + 0xc, 16 + 0xd, 16 + 3, 16 + 2, 16 + 9}, - {16 + 0xe, 16 + 0xf, 16 + 1, 16 + 0, 16 + 0xc}, - }, - }, - { - keyScheduleA{ - {0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0}, - {1, 4, 0, 2, 1, 3, 16 + 2}, - {2, 5, 7, 6, 5, 4, 16 + 1}, - {3, 7, 0xa, 9, 0xb, 8, 16 + 3}, - }, - keyScheduleB{ - {3, 2, 0xc, 0xd, 8}, - {1, 0, 0xe, 0xf, 0xd}, - {7, 6, 8, 9, 3}, - {5, 4, 0xa, 0xb, 7}, - }, - }, - { - keyScheduleA{ - {4, 0, 0xd, 0xf, 0xc, 0xe, 8}, - {5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa}, - {6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9}, - {7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb}, - }, - keyScheduleB{ - {16 + 3, 16 + 2, 16 + 0xc, 16 + 0xd, 16 + 9}, - {16 + 1, 16 + 0, 16 + 0xe, 16 + 0xf, 16 + 0xc}, - {16 + 7, 16 + 6, 16 + 8, 16 + 9, 16 + 2}, - {16 + 5, 16 + 4, 16 + 0xa, 16 + 0xb, 16 + 6}, - }, - }, - { - keyScheduleA{ - {0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0}, - {1, 4, 0, 2, 1, 3, 16 + 2}, - {2, 5, 7, 6, 5, 4, 16 + 1}, - {3, 7, 0xa, 9, 0xb, 8, 16 + 3}, - }, - keyScheduleB{ - {8, 9, 7, 6, 3}, - {0xa, 0xb, 5, 4, 7}, - {0xc, 0xd, 3, 2, 8}, - {0xe, 0xf, 1, 0, 0xd}, - }, - }, -} - -func (c *Cipher) keySchedule(in []byte) { - var t [8]uint32 - var k [32]uint32 - - for i := 0; i < 4; i++ { - j := i * 4 - t[i] = uint32(in[j])<<24 | uint32(in[j+1])<<16 | uint32(in[j+2])<<8 | uint32(in[j+3]) - } - - x := []byte{6, 7, 4, 5} - ki := 0 - - for half := 0; half < 2; half++ { - for _, round := range schedule { - for j := 0; j < 4; j++ { - var a [7]uint8 - copy(a[:], round.a[j][:]) - w := t[a[1]] - w ^= sBox[4][(t[a[2]>>2]>>(24-8*(a[2]&3)))&0xff] - w ^= sBox[5][(t[a[3]>>2]>>(24-8*(a[3]&3)))&0xff] - w ^= sBox[6][(t[a[4]>>2]>>(24-8*(a[4]&3)))&0xff] - w ^= sBox[7][(t[a[5]>>2]>>(24-8*(a[5]&3)))&0xff] - w ^= sBox[x[j]][(t[a[6]>>2]>>(24-8*(a[6]&3)))&0xff] - t[a[0]] = w - } - - for j := 0; j < 4; j++ { - var b [5]uint8 - copy(b[:], round.b[j][:]) - w := sBox[4][(t[b[0]>>2]>>(24-8*(b[0]&3)))&0xff] - w ^= sBox[5][(t[b[1]>>2]>>(24-8*(b[1]&3)))&0xff] - w ^= sBox[6][(t[b[2]>>2]>>(24-8*(b[2]&3)))&0xff] - w ^= sBox[7][(t[b[3]>>2]>>(24-8*(b[3]&3)))&0xff] - w ^= sBox[4+j][(t[b[4]>>2]>>(24-8*(b[4]&3)))&0xff] - k[ki] = w - ki++ - } - } - } - - for i := 0; i < 16; i++ { - c.masking[i] = k[i] - c.rotate[i] = uint8(k[16+i] & 0x1f) - } -} - -// These are the three 'f' functions. See RFC 2144, section 2.2. -func f1(d, m uint32, r uint8) uint32 { - t := m + d - I := (t << r) | (t >> (32 - r)) - return ((sBox[0][I>>24] ^ sBox[1][(I>>16)&0xff]) - sBox[2][(I>>8)&0xff]) + sBox[3][I&0xff] -} - -func f2(d, m uint32, r uint8) uint32 { - t := m ^ d - I := (t << r) | (t >> (32 - r)) - return ((sBox[0][I>>24] - sBox[1][(I>>16)&0xff]) + sBox[2][(I>>8)&0xff]) ^ sBox[3][I&0xff] -} - -func f3(d, m uint32, r uint8) uint32 { - t := m - d - I := (t << r) | (t >> (32 - r)) - return ((sBox[0][I>>24] + sBox[1][(I>>16)&0xff]) ^ sBox[2][(I>>8)&0xff]) - sBox[3][I&0xff] -} - -var sBox = [8][256]uint32{ - { - 0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, 0x9c004dd3, 0x6003e540, 0xcf9fc949, - 0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, 0x15c361d2, 0xc2e7661d, 0x22d4ff8e, - 0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d, - 0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, 0xaa54166b, 0x22568e3a, 0xa2d341d0, - 0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, 0x4a97c1d8, 0x527644b7, 0xb5f437a7, - 0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, 0x90ecf52e, 0x22b0c054, 0xbc8e5935, - 0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, 0xe93b159f, 0xb48ee411, 0x4bff345d, - 0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50, - 0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, 0xc59c5319, 0xb949e354, 0xb04669fe, - 0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, 0x6a390493, 0xe63d37e0, 0x2a54f6b3, - 0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, 0xf61b1891, 0xbb72275e, 0xaa508167, - 0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, 0xa2d1936b, 0x2ad286af, 0xaa56d291, - 0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, 0x73e2bb14, 0xa0bebc3c, 0x54623779, - 0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, 0x89fe78e6, 0x3fab0950, 0x325ff6c2, - 0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, 0x380782d5, 0xc7fa5cf6, 0x8ac31511, - 0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, 0x051ef495, 0xaa573b04, 0x4a805d8d, - 0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, 0x50afd341, 0xa7c13275, 0x915a0bf5, - 0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, 0xab85c5f3, 0x1b55db94, 0xaad4e324, - 0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c, - 0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, 0x22513f1e, 0xaa51a79b, 0x2ad344cc, - 0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, 0x032268d4, 0xc9600acc, 0xce387e6d, - 0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, 0x4736f464, 0x5ad328d8, 0xb347cc96, - 0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, 0xbfc5fe4a, 0xa70aec10, 0xac39570a, - 0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, 0x1cacd68d, 0x2ad37c96, 0x0175cb9d, - 0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd, - 0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, 0x51c85f4d, 0x56907596, 0xa5bb15e6, - 0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, 0x3526ffa0, 0xc37b4d09, 0xbc306ed9, - 0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, 0x700b45e1, 0xd5ea50f1, 0x85a92872, - 0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, 0x0cd0ede7, 0x26470db8, 0xf881814c, - 0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, 0xab838653, 0x6e2f1e23, 0x83719c9e, - 0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, 0xe1e696ff, 0xb141ab08, 0x7cca89b9, - 0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf, - }, - { - 0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, 0xeec5207a, 0x55889c94, 0x72fc0651, - 0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3, - 0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, 0xef944459, 0xba83ccb3, 0xe0c3cdfb, - 0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, 0xe4e7ef5b, 0x25a1ff41, 0xe180f806, - 0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, 0x77e83f4e, 0x79929269, 0x24fa9f7b, - 0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, 0x0d554b63, 0x5d681121, 0xc866c359, - 0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, 0x39f7627f, 0x361e3084, 0xe4eb573b, - 0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, 0x99847ab4, 0xa0e3df79, 0xba6cf38c, - 0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, 0x8f458c74, 0xd9e0a227, 0x4ec73a34, - 0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, 0x1d804366, 0x721d9bfd, 0xa58684bb, - 0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, 0x27e19ba5, 0xd5a6c252, 0xe49754bd, - 0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, 0xe0b56714, 0x21f043b7, 0xe5d05860, - 0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, 0x68561be6, 0x83ca6b94, 0x2d6ed23b, - 0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, 0x397bc8d6, 0x5ee22b95, 0x5f0e5304, - 0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, 0xb96726d1, 0x8049a7e8, 0x22b7da7b, - 0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf, - 0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, 0xe3214517, 0xb4542835, 0x9f63293c, - 0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, 0x30a22c95, 0x31a70850, 0x60930f13, - 0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, 0xa02b1741, 0x7cbad9a2, 0x2180036f, - 0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6, - 0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, 0x846a3bae, 0x8ff77888, 0xee5d60f6, - 0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, 0x157fd7fa, 0xef8579cc, 0xd152de58, - 0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906, - 0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, 0xbec0c560, 0x61a3c9e8, 0xbca8f54d, - 0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, 0x301e16e6, 0x273be979, 0xb0ffeaa6, - 0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, 0xf7e19798, 0x7619b72f, 0x8f1c9ba4, - 0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, 0x1a513742, 0xef6828bc, 0x520365d6, - 0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, 0x5eea29cb, 0x145892f5, 0x91584f7f, - 0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249, - 0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, 0x230eabb0, 0x6438bc87, 0xf0b5b1fa, - 0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, 0xa345415e, 0x5c038323, 0x3e5d3bb9, - 0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, 0x73bfbe70, 0x83877605, 0x4523ecf1, - }, - { - 0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, 0x369fe44b, 0x8c1fc644, 0xaececa90, - 0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, 0xf0ad0548, 0xe13c8d83, 0x927010d5, - 0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, 0xfade82e0, 0xa067268b, 0x8272792e, - 0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, 0x825b1bfd, 0x9255c5ed, 0x1257a240, - 0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5, - 0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b, - 0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, 0x4a012d6e, 0xc5884a28, 0xccc36f71, - 0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, 0xd7c07f7e, 0x02507fbf, 0x5afb9a04, - 0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, 0x727cc3c4, 0x0a0fb402, 0x0f7fef82, - 0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, 0x1eac5790, 0x796fb449, 0x8252dc15, - 0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, 0xe83ec305, 0x4f91751a, 0x925669c2, - 0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, 0x927985b2, 0x8276dbcb, 0x02778176, - 0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, 0x340ce5c8, 0x96bbb682, 0x93b4b148, - 0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, 0x8437aa88, 0x7d29dc96, 0x2756d3dc, - 0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, 0x3cf8209d, 0x6094d1e3, 0xcd9ca341, - 0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, 0xbda8229c, 0x127dadaa, 0x438a074e, - 0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51, - 0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, 0x76a2e214, 0xb9a40368, 0x925d958f, - 0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, 0x193cbcfa, 0x27627545, 0x825cf47a, - 0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, 0x8272a972, 0x9270c4a8, 0x127de50b, - 0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b, - 0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, 0x236a5cae, 0x12deca4d, 0x2c3f8cc5, - 0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45, - 0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, 0x7c34671c, 0x02717ef6, 0x4feb5536, - 0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, 0x006e1888, 0xa2e53f55, 0xb9e6d4bc, - 0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, 0xabcc4f33, 0x7688c55d, 0x7b00a6b0, - 0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, 0x856302e0, 0x72dbd92b, 0xee971b69, - 0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, 0x61efc8c2, 0xf1ac2571, 0xcc8239c2, - 0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, 0x0ff0443d, 0x606e6dc6, 0x60543a49, - 0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, 0x68458425, 0x99833be5, 0x600d457d, - 0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, 0x9c305a00, 0x52bce688, 0x1b03588a, - 0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, 0xa133c501, 0xe9d3531c, 0xee353783, - }, - { - 0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, 0x64ad8c57, 0x85510443, 0xfa020ed1, - 0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, 0x6497b7b1, 0xf3641f63, 0x241e4adf, - 0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, 0xc0a5374f, 0x1d2d00d9, 0x24147b15, - 0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, 0x0c13fefe, 0x081b08ca, 0x05170121, - 0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, 0x06df4261, 0xbb9e9b8a, 0x7293ea25, - 0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5, - 0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, 0x11b638e1, 0x72500e03, 0xf80eb2bb, - 0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, 0x6920318f, 0x081dbb99, 0xffc304a5, - 0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, 0x9f926f91, 0x9f46222f, 0x3991467d, - 0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, 0x3fb6180c, 0x18f8931e, 0x281658e6, - 0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, 0x79098b02, 0xe4eabb81, 0x28123b23, - 0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, 0x0014377b, 0x041e8ac8, 0x09114003, - 0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6, - 0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, 0x56c8c391, 0x6b65811c, 0x5e146119, - 0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24, - 0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, 0xeca1d7c7, 0x041afa32, 0x1d16625a, - 0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, 0xc70b8b46, 0xd9e66a48, 0x56e55a79, - 0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, 0xedda04eb, 0x17a9be04, 0x2c18f4df, - 0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, 0xe5b6a035, 0x213d42f6, 0x2c1c7c26, - 0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, 0x0418f2c8, 0x001a96a6, 0x0d1526ab, - 0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, 0x311170a7, 0x3e9b640c, 0xcc3e10d7, - 0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, 0x1f9af36e, 0xcfcbd12f, 0xc1de8417, - 0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, 0xb4be31cd, 0xd8782806, 0x12a3a4e2, - 0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, 0x9711aac5, 0x001d7b95, 0x82e5e7d2, - 0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a, - 0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, 0x0ce454a9, 0xd60acd86, 0x015f1919, - 0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, 0x8b75e387, 0xb3c50651, 0xb8a5c3ef, - 0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876, - 0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, 0x296b299e, 0x492fc295, 0x9266beab, - 0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, 0xf65324e6, 0x6afce36c, 0x0316cc04, - 0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, 0x932bcdf6, 0xb657c34d, 0x4edfd282, - 0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2, - }, - { - 0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, 0x1dd358f5, 0x44dd9d44, 0x1731167f, - 0x08fbf1fa, 0xe7f511cc, 0xd2051b00, 0x735aba00, 0x2ab722d8, 0x386381cb, 0xacf6243a, 0x69befd7a, - 0xe6a2e77f, 0xf0c720cd, 0xc4494816, 0xccf5c180, 0x38851640, 0x15b0a848, 0xe68b18cb, 0x4caadeff, - 0x5f480a01, 0x0412b2aa, 0x259814fc, 0x41d0efe2, 0x4e40b48d, 0x248eb6fb, 0x8dba1cfe, 0x41a99b02, - 0x1a550a04, 0xba8f65cb, 0x7251f4e7, 0x95a51725, 0xc106ecd7, 0x97a5980a, 0xc539b9aa, 0x4d79fe6a, - 0xf2f3f763, 0x68af8040, 0xed0c9e56, 0x11b4958b, 0xe1eb5a88, 0x8709e6b0, 0xd7e07156, 0x4e29fea7, - 0x6366e52d, 0x02d1c000, 0xc4ac8e05, 0x9377f571, 0x0c05372a, 0x578535f2, 0x2261be02, 0xd642a0c9, - 0xdf13a280, 0x74b55bd2, 0x682199c0, 0xd421e5ec, 0x53fb3ce8, 0xc8adedb3, 0x28a87fc9, 0x3d959981, - 0x5c1ff900, 0xfe38d399, 0x0c4eff0b, 0x062407ea, 0xaa2f4fb1, 0x4fb96976, 0x90c79505, 0xb0a8a774, - 0xef55a1ff, 0xe59ca2c2, 0xa6b62d27, 0xe66a4263, 0xdf65001f, 0x0ec50966, 0xdfdd55bc, 0x29de0655, - 0x911e739a, 0x17af8975, 0x32c7911c, 0x89f89468, 0x0d01e980, 0x524755f4, 0x03b63cc9, 0x0cc844b2, - 0xbcf3f0aa, 0x87ac36e9, 0xe53a7426, 0x01b3d82b, 0x1a9e7449, 0x64ee2d7e, 0xcddbb1da, 0x01c94910, - 0xb868bf80, 0x0d26f3fd, 0x9342ede7, 0x04a5c284, 0x636737b6, 0x50f5b616, 0xf24766e3, 0x8eca36c1, - 0x136e05db, 0xfef18391, 0xfb887a37, 0xd6e7f7d4, 0xc7fb7dc9, 0x3063fcdf, 0xb6f589de, 0xec2941da, - 0x26e46695, 0xb7566419, 0xf654efc5, 0xd08d58b7, 0x48925401, 0xc1bacb7f, 0xe5ff550f, 0xb6083049, - 0x5bb5d0e8, 0x87d72e5a, 0xab6a6ee1, 0x223a66ce, 0xc62bf3cd, 0x9e0885f9, 0x68cb3e47, 0x086c010f, - 0xa21de820, 0xd18b69de, 0xf3f65777, 0xfa02c3f6, 0x407edac3, 0xcbb3d550, 0x1793084d, 0xb0d70eba, - 0x0ab378d5, 0xd951fb0c, 0xded7da56, 0x4124bbe4, 0x94ca0b56, 0x0f5755d1, 0xe0e1e56e, 0x6184b5be, - 0x580a249f, 0x94f74bc0, 0xe327888e, 0x9f7b5561, 0xc3dc0280, 0x05687715, 0x646c6bd7, 0x44904db3, - 0x66b4f0a3, 0xc0f1648a, 0x697ed5af, 0x49e92ff6, 0x309e374f, 0x2cb6356a, 0x85808573, 0x4991f840, - 0x76f0ae02, 0x083be84d, 0x28421c9a, 0x44489406, 0x736e4cb8, 0xc1092910, 0x8bc95fc6, 0x7d869cf4, - 0x134f616f, 0x2e77118d, 0xb31b2be1, 0xaa90b472, 0x3ca5d717, 0x7d161bba, 0x9cad9010, 0xaf462ba2, - 0x9fe459d2, 0x45d34559, 0xd9f2da13, 0xdbc65487, 0xf3e4f94e, 0x176d486f, 0x097c13ea, 0x631da5c7, - 0x445f7382, 0x175683f4, 0xcdc66a97, 0x70be0288, 0xb3cdcf72, 0x6e5dd2f3, 0x20936079, 0x459b80a5, - 0xbe60e2db, 0xa9c23101, 0xeba5315c, 0x224e42f2, 0x1c5c1572, 0xf6721b2c, 0x1ad2fff3, 0x8c25404e, - 0x324ed72f, 0x4067b7fd, 0x0523138e, 0x5ca3bc78, 0xdc0fd66e, 0x75922283, 0x784d6b17, 0x58ebb16e, - 0x44094f85, 0x3f481d87, 0xfcfeae7b, 0x77b5ff76, 0x8c2302bf, 0xaaf47556, 0x5f46b02a, 0x2b092801, - 0x3d38f5f7, 0x0ca81f36, 0x52af4a8a, 0x66d5e7c0, 0xdf3b0874, 0x95055110, 0x1b5ad7a8, 0xf61ed5ad, - 0x6cf6e479, 0x20758184, 0xd0cefa65, 0x88f7be58, 0x4a046826, 0x0ff6f8f3, 0xa09c7f70, 0x5346aba0, - 0x5ce96c28, 0xe176eda3, 0x6bac307f, 0x376829d2, 0x85360fa9, 0x17e3fe2a, 0x24b79767, 0xf5a96b20, - 0xd6cd2595, 0x68ff1ebf, 0x7555442c, 0xf19f06be, 0xf9e0659a, 0xeeb9491d, 0x34010718, 0xbb30cab8, - 0xe822fe15, 0x88570983, 0x750e6249, 0xda627e55, 0x5e76ffa8, 0xb1534546, 0x6d47de08, 0xefe9e7d4, - }, - { - 0xf6fa8f9d, 0x2cac6ce1, 0x4ca34867, 0xe2337f7c, 0x95db08e7, 0x016843b4, 0xeced5cbc, 0x325553ac, - 0xbf9f0960, 0xdfa1e2ed, 0x83f0579d, 0x63ed86b9, 0x1ab6a6b8, 0xde5ebe39, 0xf38ff732, 0x8989b138, - 0x33f14961, 0xc01937bd, 0xf506c6da, 0xe4625e7e, 0xa308ea99, 0x4e23e33c, 0x79cbd7cc, 0x48a14367, - 0xa3149619, 0xfec94bd5, 0xa114174a, 0xeaa01866, 0xa084db2d, 0x09a8486f, 0xa888614a, 0x2900af98, - 0x01665991, 0xe1992863, 0xc8f30c60, 0x2e78ef3c, 0xd0d51932, 0xcf0fec14, 0xf7ca07d2, 0xd0a82072, - 0xfd41197e, 0x9305a6b0, 0xe86be3da, 0x74bed3cd, 0x372da53c, 0x4c7f4448, 0xdab5d440, 0x6dba0ec3, - 0x083919a7, 0x9fbaeed9, 0x49dbcfb0, 0x4e670c53, 0x5c3d9c01, 0x64bdb941, 0x2c0e636a, 0xba7dd9cd, - 0xea6f7388, 0xe70bc762, 0x35f29adb, 0x5c4cdd8d, 0xf0d48d8c, 0xb88153e2, 0x08a19866, 0x1ae2eac8, - 0x284caf89, 0xaa928223, 0x9334be53, 0x3b3a21bf, 0x16434be3, 0x9aea3906, 0xefe8c36e, 0xf890cdd9, - 0x80226dae, 0xc340a4a3, 0xdf7e9c09, 0xa694a807, 0x5b7c5ecc, 0x221db3a6, 0x9a69a02f, 0x68818a54, - 0xceb2296f, 0x53c0843a, 0xfe893655, 0x25bfe68a, 0xb4628abc, 0xcf222ebf, 0x25ac6f48, 0xa9a99387, - 0x53bddb65, 0xe76ffbe7, 0xe967fd78, 0x0ba93563, 0x8e342bc1, 0xe8a11be9, 0x4980740d, 0xc8087dfc, - 0x8de4bf99, 0xa11101a0, 0x7fd37975, 0xda5a26c0, 0xe81f994f, 0x9528cd89, 0xfd339fed, 0xb87834bf, - 0x5f04456d, 0x22258698, 0xc9c4c83b, 0x2dc156be, 0x4f628daa, 0x57f55ec5, 0xe2220abe, 0xd2916ebf, - 0x4ec75b95, 0x24f2c3c0, 0x42d15d99, 0xcd0d7fa0, 0x7b6e27ff, 0xa8dc8af0, 0x7345c106, 0xf41e232f, - 0x35162386, 0xe6ea8926, 0x3333b094, 0x157ec6f2, 0x372b74af, 0x692573e4, 0xe9a9d848, 0xf3160289, - 0x3a62ef1d, 0xa787e238, 0xf3a5f676, 0x74364853, 0x20951063, 0x4576698d, 0xb6fad407, 0x592af950, - 0x36f73523, 0x4cfb6e87, 0x7da4cec0, 0x6c152daa, 0xcb0396a8, 0xc50dfe5d, 0xfcd707ab, 0x0921c42f, - 0x89dff0bb, 0x5fe2be78, 0x448f4f33, 0x754613c9, 0x2b05d08d, 0x48b9d585, 0xdc049441, 0xc8098f9b, - 0x7dede786, 0xc39a3373, 0x42410005, 0x6a091751, 0x0ef3c8a6, 0x890072d6, 0x28207682, 0xa9a9f7be, - 0xbf32679d, 0xd45b5b75, 0xb353fd00, 0xcbb0e358, 0x830f220a, 0x1f8fb214, 0xd372cf08, 0xcc3c4a13, - 0x8cf63166, 0x061c87be, 0x88c98f88, 0x6062e397, 0x47cf8e7a, 0xb6c85283, 0x3cc2acfb, 0x3fc06976, - 0x4e8f0252, 0x64d8314d, 0xda3870e3, 0x1e665459, 0xc10908f0, 0x513021a5, 0x6c5b68b7, 0x822f8aa0, - 0x3007cd3e, 0x74719eef, 0xdc872681, 0x073340d4, 0x7e432fd9, 0x0c5ec241, 0x8809286c, 0xf592d891, - 0x08a930f6, 0x957ef305, 0xb7fbffbd, 0xc266e96f, 0x6fe4ac98, 0xb173ecc0, 0xbc60b42a, 0x953498da, - 0xfba1ae12, 0x2d4bd736, 0x0f25faab, 0xa4f3fceb, 0xe2969123, 0x257f0c3d, 0x9348af49, 0x361400bc, - 0xe8816f4a, 0x3814f200, 0xa3f94043, 0x9c7a54c2, 0xbc704f57, 0xda41e7f9, 0xc25ad33a, 0x54f4a084, - 0xb17f5505, 0x59357cbe, 0xedbd15c8, 0x7f97c5ab, 0xba5ac7b5, 0xb6f6deaf, 0x3a479c3a, 0x5302da25, - 0x653d7e6a, 0x54268d49, 0x51a477ea, 0x5017d55b, 0xd7d25d88, 0x44136c76, 0x0404a8c8, 0xb8e5a121, - 0xb81a928a, 0x60ed5869, 0x97c55b96, 0xeaec991b, 0x29935913, 0x01fdb7f1, 0x088e8dfa, 0x9ab6f6f5, - 0x3b4cbf9f, 0x4a5de3ab, 0xe6051d35, 0xa0e1d855, 0xd36b4cf1, 0xf544edeb, 0xb0e93524, 0xbebb8fbd, - 0xa2d762cf, 0x49c92f54, 0x38b5f331, 0x7128a454, 0x48392905, 0xa65b1db8, 0x851c97bd, 0xd675cf2f, - }, - { - 0x85e04019, 0x332bf567, 0x662dbfff, 0xcfc65693, 0x2a8d7f6f, 0xab9bc912, 0xde6008a1, 0x2028da1f, - 0x0227bce7, 0x4d642916, 0x18fac300, 0x50f18b82, 0x2cb2cb11, 0xb232e75c, 0x4b3695f2, 0xb28707de, - 0xa05fbcf6, 0xcd4181e9, 0xe150210c, 0xe24ef1bd, 0xb168c381, 0xfde4e789, 0x5c79b0d8, 0x1e8bfd43, - 0x4d495001, 0x38be4341, 0x913cee1d, 0x92a79c3f, 0x089766be, 0xbaeeadf4, 0x1286becf, 0xb6eacb19, - 0x2660c200, 0x7565bde4, 0x64241f7a, 0x8248dca9, 0xc3b3ad66, 0x28136086, 0x0bd8dfa8, 0x356d1cf2, - 0x107789be, 0xb3b2e9ce, 0x0502aa8f, 0x0bc0351e, 0x166bf52a, 0xeb12ff82, 0xe3486911, 0xd34d7516, - 0x4e7b3aff, 0x5f43671b, 0x9cf6e037, 0x4981ac83, 0x334266ce, 0x8c9341b7, 0xd0d854c0, 0xcb3a6c88, - 0x47bc2829, 0x4725ba37, 0xa66ad22b, 0x7ad61f1e, 0x0c5cbafa, 0x4437f107, 0xb6e79962, 0x42d2d816, - 0x0a961288, 0xe1a5c06e, 0x13749e67, 0x72fc081a, 0xb1d139f7, 0xf9583745, 0xcf19df58, 0xbec3f756, - 0xc06eba30, 0x07211b24, 0x45c28829, 0xc95e317f, 0xbc8ec511, 0x38bc46e9, 0xc6e6fa14, 0xbae8584a, - 0xad4ebc46, 0x468f508b, 0x7829435f, 0xf124183b, 0x821dba9f, 0xaff60ff4, 0xea2c4e6d, 0x16e39264, - 0x92544a8b, 0x009b4fc3, 0xaba68ced, 0x9ac96f78, 0x06a5b79a, 0xb2856e6e, 0x1aec3ca9, 0xbe838688, - 0x0e0804e9, 0x55f1be56, 0xe7e5363b, 0xb3a1f25d, 0xf7debb85, 0x61fe033c, 0x16746233, 0x3c034c28, - 0xda6d0c74, 0x79aac56c, 0x3ce4e1ad, 0x51f0c802, 0x98f8f35a, 0x1626a49f, 0xeed82b29, 0x1d382fe3, - 0x0c4fb99a, 0xbb325778, 0x3ec6d97b, 0x6e77a6a9, 0xcb658b5c, 0xd45230c7, 0x2bd1408b, 0x60c03eb7, - 0xb9068d78, 0xa33754f4, 0xf430c87d, 0xc8a71302, 0xb96d8c32, 0xebd4e7be, 0xbe8b9d2d, 0x7979fb06, - 0xe7225308, 0x8b75cf77, 0x11ef8da4, 0xe083c858, 0x8d6b786f, 0x5a6317a6, 0xfa5cf7a0, 0x5dda0033, - 0xf28ebfb0, 0xf5b9c310, 0xa0eac280, 0x08b9767a, 0xa3d9d2b0, 0x79d34217, 0x021a718d, 0x9ac6336a, - 0x2711fd60, 0x438050e3, 0x069908a8, 0x3d7fedc4, 0x826d2bef, 0x4eeb8476, 0x488dcf25, 0x36c9d566, - 0x28e74e41, 0xc2610aca, 0x3d49a9cf, 0xbae3b9df, 0xb65f8de6, 0x92aeaf64, 0x3ac7d5e6, 0x9ea80509, - 0xf22b017d, 0xa4173f70, 0xdd1e16c3, 0x15e0d7f9, 0x50b1b887, 0x2b9f4fd5, 0x625aba82, 0x6a017962, - 0x2ec01b9c, 0x15488aa9, 0xd716e740, 0x40055a2c, 0x93d29a22, 0xe32dbf9a, 0x058745b9, 0x3453dc1e, - 0xd699296e, 0x496cff6f, 0x1c9f4986, 0xdfe2ed07, 0xb87242d1, 0x19de7eae, 0x053e561a, 0x15ad6f8c, - 0x66626c1c, 0x7154c24c, 0xea082b2a, 0x93eb2939, 0x17dcb0f0, 0x58d4f2ae, 0x9ea294fb, 0x52cf564c, - 0x9883fe66, 0x2ec40581, 0x763953c3, 0x01d6692e, 0xd3a0c108, 0xa1e7160e, 0xe4f2dfa6, 0x693ed285, - 0x74904698, 0x4c2b0edd, 0x4f757656, 0x5d393378, 0xa132234f, 0x3d321c5d, 0xc3f5e194, 0x4b269301, - 0xc79f022f, 0x3c997e7e, 0x5e4f9504, 0x3ffafbbd, 0x76f7ad0e, 0x296693f4, 0x3d1fce6f, 0xc61e45be, - 0xd3b5ab34, 0xf72bf9b7, 0x1b0434c0, 0x4e72b567, 0x5592a33d, 0xb5229301, 0xcfd2a87f, 0x60aeb767, - 0x1814386b, 0x30bcc33d, 0x38a0c07d, 0xfd1606f2, 0xc363519b, 0x589dd390, 0x5479f8e6, 0x1cb8d647, - 0x97fd61a9, 0xea7759f4, 0x2d57539d, 0x569a58cf, 0xe84e63ad, 0x462e1b78, 0x6580f87e, 0xf3817914, - 0x91da55f4, 0x40a230f3, 0xd1988f35, 0xb6e318d2, 0x3ffa50bc, 0x3d40f021, 0xc3c0bdae, 0x4958c24c, - 0x518f36b2, 0x84b1d370, 0x0fedce83, 0x878ddada, 0xf2a279c7, 0x94e01be8, 0x90716f4b, 0x954b8aa3, - }, - { - 0xe216300d, 0xbbddfffc, 0xa7ebdabd, 0x35648095, 0x7789f8b7, 0xe6c1121b, 0x0e241600, 0x052ce8b5, - 0x11a9cfb0, 0xe5952f11, 0xece7990a, 0x9386d174, 0x2a42931c, 0x76e38111, 0xb12def3a, 0x37ddddfc, - 0xde9adeb1, 0x0a0cc32c, 0xbe197029, 0x84a00940, 0xbb243a0f, 0xb4d137cf, 0xb44e79f0, 0x049eedfd, - 0x0b15a15d, 0x480d3168, 0x8bbbde5a, 0x669ded42, 0xc7ece831, 0x3f8f95e7, 0x72df191b, 0x7580330d, - 0x94074251, 0x5c7dcdfa, 0xabbe6d63, 0xaa402164, 0xb301d40a, 0x02e7d1ca, 0x53571dae, 0x7a3182a2, - 0x12a8ddec, 0xfdaa335d, 0x176f43e8, 0x71fb46d4, 0x38129022, 0xce949ad4, 0xb84769ad, 0x965bd862, - 0x82f3d055, 0x66fb9767, 0x15b80b4e, 0x1d5b47a0, 0x4cfde06f, 0xc28ec4b8, 0x57e8726e, 0x647a78fc, - 0x99865d44, 0x608bd593, 0x6c200e03, 0x39dc5ff6, 0x5d0b00a3, 0xae63aff2, 0x7e8bd632, 0x70108c0c, - 0xbbd35049, 0x2998df04, 0x980cf42a, 0x9b6df491, 0x9e7edd53, 0x06918548, 0x58cb7e07, 0x3b74ef2e, - 0x522fffb1, 0xd24708cc, 0x1c7e27cd, 0xa4eb215b, 0x3cf1d2e2, 0x19b47a38, 0x424f7618, 0x35856039, - 0x9d17dee7, 0x27eb35e6, 0xc9aff67b, 0x36baf5b8, 0x09c467cd, 0xc18910b1, 0xe11dbf7b, 0x06cd1af8, - 0x7170c608, 0x2d5e3354, 0xd4de495a, 0x64c6d006, 0xbcc0c62c, 0x3dd00db3, 0x708f8f34, 0x77d51b42, - 0x264f620f, 0x24b8d2bf, 0x15c1b79e, 0x46a52564, 0xf8d7e54e, 0x3e378160, 0x7895cda5, 0x859c15a5, - 0xe6459788, 0xc37bc75f, 0xdb07ba0c, 0x0676a3ab, 0x7f229b1e, 0x31842e7b, 0x24259fd7, 0xf8bef472, - 0x835ffcb8, 0x6df4c1f2, 0x96f5b195, 0xfd0af0fc, 0xb0fe134c, 0xe2506d3d, 0x4f9b12ea, 0xf215f225, - 0xa223736f, 0x9fb4c428, 0x25d04979, 0x34c713f8, 0xc4618187, 0xea7a6e98, 0x7cd16efc, 0x1436876c, - 0xf1544107, 0xbedeee14, 0x56e9af27, 0xa04aa441, 0x3cf7c899, 0x92ecbae6, 0xdd67016d, 0x151682eb, - 0xa842eedf, 0xfdba60b4, 0xf1907b75, 0x20e3030f, 0x24d8c29e, 0xe139673b, 0xefa63fb8, 0x71873054, - 0xb6f2cf3b, 0x9f326442, 0xcb15a4cc, 0xb01a4504, 0xf1e47d8d, 0x844a1be5, 0xbae7dfdc, 0x42cbda70, - 0xcd7dae0a, 0x57e85b7a, 0xd53f5af6, 0x20cf4d8c, 0xcea4d428, 0x79d130a4, 0x3486ebfb, 0x33d3cddc, - 0x77853b53, 0x37effcb5, 0xc5068778, 0xe580b3e6, 0x4e68b8f4, 0xc5c8b37e, 0x0d809ea2, 0x398feb7c, - 0x132a4f94, 0x43b7950e, 0x2fee7d1c, 0x223613bd, 0xdd06caa2, 0x37df932b, 0xc4248289, 0xacf3ebc3, - 0x5715f6b7, 0xef3478dd, 0xf267616f, 0xc148cbe4, 0x9052815e, 0x5e410fab, 0xb48a2465, 0x2eda7fa4, - 0xe87b40e4, 0xe98ea084, 0x5889e9e1, 0xefd390fc, 0xdd07d35b, 0xdb485694, 0x38d7e5b2, 0x57720101, - 0x730edebc, 0x5b643113, 0x94917e4f, 0x503c2fba, 0x646f1282, 0x7523d24a, 0xe0779695, 0xf9c17a8f, - 0x7a5b2121, 0xd187b896, 0x29263a4d, 0xba510cdf, 0x81f47c9f, 0xad1163ed, 0xea7b5965, 0x1a00726e, - 0x11403092, 0x00da6d77, 0x4a0cdd61, 0xad1f4603, 0x605bdfb0, 0x9eedc364, 0x22ebe6a8, 0xcee7d28a, - 0xa0e736a0, 0x5564a6b9, 0x10853209, 0xc7eb8f37, 0x2de705ca, 0x8951570f, 0xdf09822b, 0xbd691a6c, - 0xaa12e4f2, 0x87451c0f, 0xe0f6a27a, 0x3ada4819, 0x4cf1764f, 0x0d771c2b, 0x67cdb156, 0x350d8384, - 0x5938fa0f, 0x42399ef3, 0x36997b07, 0x0e84093d, 0x4aa93e61, 0x8360d87b, 0x1fa98b0c, 0x1149382c, - 0xe97625a5, 0x0614d1b7, 0x0e25244b, 0x0c768347, 0x589e8d82, 0x0d2059d1, 0xa466bb1e, 0xf8da0a82, - 0x04f19130, 0xba6e4ec0, 0x99265164, 0x1ee7230d, 0x50b2ad80, 0xeaee6801, 0x8db2a283, 0xea8bf59e, - }, -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/armor/armor.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/armor/armor.go deleted file mode 100644 index 592d1864..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/armor/armor.go +++ /dev/null @@ -1,219 +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 armor implements OpenPGP ASCII Armor, see RFC 4880. OpenPGP Armor is -// very similar to PEM except that it has an additional CRC checksum. -package armor // import "golang.org/x/crypto/openpgp/armor" - -import ( - "bufio" - "bytes" - "encoding/base64" - "golang.org/x/crypto/openpgp/errors" - "io" -) - -// A Block represents an OpenPGP armored structure. -// -// The encoded form is: -// -----BEGIN Type----- -// Headers -// -// base64-encoded Bytes -// '=' base64 encoded checksum -// -----END Type----- -// where Headers is a possibly empty sequence of Key: Value lines. -// -// Since the armored data can be very large, this package presents a streaming -// interface. -type Block struct { - Type string // The type, taken from the preamble (i.e. "PGP SIGNATURE"). - Header map[string]string // Optional headers. - Body io.Reader // A Reader from which the contents can be read - lReader lineReader - oReader openpgpReader -} - -var ArmorCorrupt error = errors.StructuralError("armor invalid") - -const crc24Init = 0xb704ce -const crc24Poly = 0x1864cfb -const crc24Mask = 0xffffff - -// crc24 calculates the OpenPGP checksum as specified in RFC 4880, section 6.1 -func crc24(crc uint32, d []byte) uint32 { - for _, b := range d { - crc ^= uint32(b) << 16 - for i := 0; i < 8; i++ { - crc <<= 1 - if crc&0x1000000 != 0 { - crc ^= crc24Poly - } - } - } - return crc -} - -var armorStart = []byte("-----BEGIN ") -var armorEnd = []byte("-----END ") -var armorEndOfLine = []byte("-----") - -// lineReader wraps a line based reader. It watches for the end of an armor -// block and records the expected CRC value. -type lineReader struct { - in *bufio.Reader - buf []byte - eof bool - crc uint32 -} - -func (l *lineReader) Read(p []byte) (n int, err error) { - if l.eof { - return 0, io.EOF - } - - if len(l.buf) > 0 { - n = copy(p, l.buf) - l.buf = l.buf[n:] - return - } - - line, isPrefix, err := l.in.ReadLine() - if err != nil { - return - } - if isPrefix { - return 0, ArmorCorrupt - } - - if len(line) == 5 && line[0] == '=' { - // This is the checksum line - var expectedBytes [3]byte - var m int - m, err = base64.StdEncoding.Decode(expectedBytes[0:], line[1:]) - if m != 3 || err != nil { - return - } - l.crc = uint32(expectedBytes[0])<<16 | - uint32(expectedBytes[1])<<8 | - uint32(expectedBytes[2]) - - line, _, err = l.in.ReadLine() - if err != nil && err != io.EOF { - return - } - if !bytes.HasPrefix(line, armorEnd) { - return 0, ArmorCorrupt - } - - l.eof = true - return 0, io.EOF - } - - if len(line) > 96 { - return 0, ArmorCorrupt - } - - n = copy(p, line) - bytesToSave := len(line) - n - if bytesToSave > 0 { - if cap(l.buf) < bytesToSave { - l.buf = make([]byte, 0, bytesToSave) - } - l.buf = l.buf[0:bytesToSave] - copy(l.buf, line[n:]) - } - - return -} - -// openpgpReader passes Read calls to the underlying base64 decoder, but keeps -// a running CRC of the resulting data and checks the CRC against the value -// found by the lineReader at EOF. -type openpgpReader struct { - lReader *lineReader - b64Reader io.Reader - currentCRC uint32 -} - -func (r *openpgpReader) Read(p []byte) (n int, err error) { - n, err = r.b64Reader.Read(p) - r.currentCRC = crc24(r.currentCRC, p[:n]) - - if err == io.EOF { - if r.lReader.crc != uint32(r.currentCRC&crc24Mask) { - return 0, ArmorCorrupt - } - } - - return -} - -// Decode reads a PGP armored block from the given Reader. It will ignore -// leading garbage. If it doesn't find a block, it will return nil, io.EOF. The -// given Reader is not usable after calling this function: an arbitrary amount -// of data may have been read past the end of the block. -func Decode(in io.Reader) (p *Block, err error) { - r := bufio.NewReaderSize(in, 100) - var line []byte - ignoreNext := false - -TryNextBlock: - p = nil - - // Skip leading garbage - for { - ignoreThis := ignoreNext - line, ignoreNext, err = r.ReadLine() - if err != nil { - return - } - if ignoreNext || ignoreThis { - continue - } - line = bytes.TrimSpace(line) - if len(line) > len(armorStart)+len(armorEndOfLine) && bytes.HasPrefix(line, armorStart) { - break - } - } - - p = new(Block) - p.Type = string(line[len(armorStart) : len(line)-len(armorEndOfLine)]) - p.Header = make(map[string]string) - nextIsContinuation := false - var lastKey string - - // Read headers - for { - isContinuation := nextIsContinuation - line, nextIsContinuation, err = r.ReadLine() - if err != nil { - p = nil - return - } - if isContinuation { - p.Header[lastKey] += string(line) - continue - } - line = bytes.TrimSpace(line) - if len(line) == 0 { - break - } - - i := bytes.Index(line, []byte(": ")) - if i == -1 { - goto TryNextBlock - } - lastKey = string(line[:i]) - p.Header[lastKey] = string(line[i+2:]) - } - - p.lReader.in = r - p.oReader.currentCRC = crc24Init - p.oReader.lReader = &p.lReader - p.oReader.b64Reader = base64.NewDecoder(base64.StdEncoding, &p.lReader) - p.Body = &p.oReader - - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/armor/encode.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/armor/encode.go deleted file mode 100644 index 6f07582c..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/armor/encode.go +++ /dev/null @@ -1,160 +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 armor - -import ( - "encoding/base64" - "io" -) - -var armorHeaderSep = []byte(": ") -var blockEnd = []byte("\n=") -var newline = []byte("\n") -var armorEndOfLineOut = []byte("-----\n") - -// writeSlices writes its arguments to the given Writer. -func writeSlices(out io.Writer, slices ...[]byte) (err error) { - for _, s := range slices { - _, err = out.Write(s) - if err != nil { - return err - } - } - return -} - -// lineBreaker breaks data across several lines, all of the same byte length -// (except possibly the last). Lines are broken with a single '\n'. -type lineBreaker struct { - lineLength int - line []byte - used int - out io.Writer - haveWritten bool -} - -func newLineBreaker(out io.Writer, lineLength int) *lineBreaker { - return &lineBreaker{ - lineLength: lineLength, - line: make([]byte, lineLength), - used: 0, - out: out, - } -} - -func (l *lineBreaker) Write(b []byte) (n int, err error) { - n = len(b) - - if n == 0 { - return - } - - if l.used == 0 && l.haveWritten { - _, err = l.out.Write([]byte{'\n'}) - if err != nil { - return - } - } - - if l.used+len(b) < l.lineLength { - l.used += copy(l.line[l.used:], b) - return - } - - l.haveWritten = true - _, err = l.out.Write(l.line[0:l.used]) - if err != nil { - return - } - excess := l.lineLength - l.used - l.used = 0 - - _, err = l.out.Write(b[0:excess]) - if err != nil { - return - } - - _, err = l.Write(b[excess:]) - return -} - -func (l *lineBreaker) Close() (err error) { - if l.used > 0 { - _, err = l.out.Write(l.line[0:l.used]) - if err != nil { - return - } - } - - return -} - -// encoding keeps track of a running CRC24 over the data which has been written -// to it and outputs a OpenPGP checksum when closed, followed by an armor -// trailer. -// -// It's built into a stack of io.Writers: -// encoding -> base64 encoder -> lineBreaker -> out -type encoding struct { - out io.Writer - breaker *lineBreaker - b64 io.WriteCloser - crc uint32 - blockType []byte -} - -func (e *encoding) Write(data []byte) (n int, err error) { - e.crc = crc24(e.crc, data) - return e.b64.Write(data) -} - -func (e *encoding) Close() (err error) { - err = e.b64.Close() - if err != nil { - return - } - e.breaker.Close() - - var checksumBytes [3]byte - checksumBytes[0] = byte(e.crc >> 16) - checksumBytes[1] = byte(e.crc >> 8) - checksumBytes[2] = byte(e.crc) - - var b64ChecksumBytes [4]byte - base64.StdEncoding.Encode(b64ChecksumBytes[:], checksumBytes[:]) - - return writeSlices(e.out, blockEnd, b64ChecksumBytes[:], newline, armorEnd, e.blockType, armorEndOfLine) -} - -// Encode returns a WriteCloser which will encode the data written to it in -// OpenPGP armor. -func Encode(out io.Writer, blockType string, headers map[string]string) (w io.WriteCloser, err error) { - bType := []byte(blockType) - err = writeSlices(out, armorStart, bType, armorEndOfLineOut) - if err != nil { - return - } - - for k, v := range headers { - err = writeSlices(out, []byte(k), armorHeaderSep, []byte(v), newline) - if err != nil { - return - } - } - - _, err = out.Write(newline) - if err != nil { - return - } - - e := &encoding{ - out: out, - breaker: newLineBreaker(out, 64), - crc: crc24Init, - blockType: bType, - } - e.b64 = base64.NewEncoder(base64.StdEncoding, e.breaker) - return e, nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/canonical_text.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/canonical_text.go deleted file mode 100644 index e601e389..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/canonical_text.go +++ /dev/null @@ -1,59 +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 openpgp - -import "hash" - -// NewCanonicalTextHash reformats text written to it into the canonical -// form and then applies the hash h. See RFC 4880, section 5.2.1. -func NewCanonicalTextHash(h hash.Hash) hash.Hash { - return &canonicalTextHash{h, 0} -} - -type canonicalTextHash struct { - h hash.Hash - s int -} - -var newline = []byte{'\r', '\n'} - -func (cth *canonicalTextHash) Write(buf []byte) (int, error) { - start := 0 - - for i, c := range buf { - switch cth.s { - case 0: - if c == '\r' { - cth.s = 1 - } else if c == '\n' { - cth.h.Write(buf[start:i]) - cth.h.Write(newline) - start = i + 1 - } - case 1: - cth.s = 0 - } - } - - cth.h.Write(buf[start:]) - return len(buf), nil -} - -func (cth *canonicalTextHash) Sum(in []byte) []byte { - return cth.h.Sum(in) -} - -func (cth *canonicalTextHash) Reset() { - cth.h.Reset() - cth.s = 0 -} - -func (cth *canonicalTextHash) Size() int { - return cth.h.Size() -} - -func (cth *canonicalTextHash) BlockSize() int { - return cth.h.BlockSize() -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go deleted file mode 100644 index 73f4fe37..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/elgamal/elgamal.go +++ /dev/null @@ -1,122 +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 elgamal implements ElGamal encryption, suitable for OpenPGP, -// as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on -// Discrete Logarithms," IEEE Transactions on Information Theory, v. IT-31, -// n. 4, 1985, pp. 469-472. -// -// This form of ElGamal embeds PKCS#1 v1.5 padding, which may make it -// unsuitable for other protocols. RSA should be used in preference in any -// case. -package elgamal // import "golang.org/x/crypto/openpgp/elgamal" - -import ( - "crypto/rand" - "crypto/subtle" - "errors" - "io" - "math/big" -) - -// PublicKey represents an ElGamal public key. -type PublicKey struct { - G, P, Y *big.Int -} - -// PrivateKey represents an ElGamal private key. -type PrivateKey struct { - PublicKey - X *big.Int -} - -// Encrypt encrypts the given message to the given public key. The result is a -// pair of integers. Errors can result from reading random, or because msg is -// too large to be encrypted to the public key. -func Encrypt(random io.Reader, pub *PublicKey, msg []byte) (c1, c2 *big.Int, err error) { - pLen := (pub.P.BitLen() + 7) / 8 - if len(msg) > pLen-11 { - err = errors.New("elgamal: message too long") - return - } - - // EM = 0x02 || PS || 0x00 || M - em := make([]byte, pLen-1) - em[0] = 2 - ps, mm := em[1:len(em)-len(msg)-1], em[len(em)-len(msg):] - err = nonZeroRandomBytes(ps, random) - if err != nil { - return - } - em[len(em)-len(msg)-1] = 0 - copy(mm, msg) - - m := new(big.Int).SetBytes(em) - - k, err := rand.Int(random, pub.P) - if err != nil { - return - } - - c1 = new(big.Int).Exp(pub.G, k, pub.P) - s := new(big.Int).Exp(pub.Y, k, pub.P) - c2 = s.Mul(s, m) - c2.Mod(c2, pub.P) - - return -} - -// Decrypt takes two integers, resulting from an ElGamal encryption, and -// returns the plaintext of the message. An error can result only if the -// ciphertext is invalid. Users should keep in mind that this is a padding -// oracle and thus, if exposed to an adaptive chosen ciphertext attack, can -// be used to break the cryptosystem. See ``Chosen Ciphertext Attacks -// Against Protocols Based on the RSA Encryption Standard PKCS #1'', Daniel -// Bleichenbacher, Advances in Cryptology (Crypto '98), -func Decrypt(priv *PrivateKey, c1, c2 *big.Int) (msg []byte, err error) { - s := new(big.Int).Exp(c1, priv.X, priv.P) - s.ModInverse(s, priv.P) - s.Mul(s, c2) - s.Mod(s, priv.P) - em := s.Bytes() - - firstByteIsTwo := subtle.ConstantTimeByteEq(em[0], 2) - - // The remainder of the plaintext must be a string of non-zero random - // octets, followed by a 0, followed by the message. - // lookingForIndex: 1 iff we are still looking for the zero. - // index: the offset of the first zero byte. - var lookingForIndex, index int - lookingForIndex = 1 - - for i := 1; i < len(em); i++ { - equals0 := subtle.ConstantTimeByteEq(em[i], 0) - index = subtle.ConstantTimeSelect(lookingForIndex&equals0, i, index) - lookingForIndex = subtle.ConstantTimeSelect(equals0, 0, lookingForIndex) - } - - if firstByteIsTwo != 1 || lookingForIndex != 0 || index < 9 { - return nil, errors.New("elgamal: decryption error") - } - return em[index+1:], nil -} - -// nonZeroRandomBytes fills the given slice with non-zero random octets. -func nonZeroRandomBytes(s []byte, rand io.Reader) (err error) { - _, err = io.ReadFull(rand, s) - if err != nil { - return - } - - for i := 0; i < len(s); i++ { - for s[i] == 0 { - _, err = io.ReadFull(rand, s[i:i+1]) - if err != nil { - return - } - } - } - - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/errors/errors.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/errors/errors.go deleted file mode 100644 index eb0550b2..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/errors/errors.go +++ /dev/null @@ -1,72 +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 errors contains common error types for the OpenPGP packages. -package errors // import "golang.org/x/crypto/openpgp/errors" - -import ( - "strconv" -) - -// A StructuralError is returned when OpenPGP data is found to be syntactically -// invalid. -type StructuralError string - -func (s StructuralError) Error() string { - return "openpgp: invalid data: " + string(s) -} - -// UnsupportedError indicates that, although the OpenPGP data is valid, it -// makes use of currently unimplemented features. -type UnsupportedError string - -func (s UnsupportedError) Error() string { - return "openpgp: unsupported feature: " + string(s) -} - -// InvalidArgumentError indicates that the caller is in error and passed an -// incorrect value. -type InvalidArgumentError string - -func (i InvalidArgumentError) Error() string { - return "openpgp: invalid argument: " + string(i) -} - -// SignatureError indicates that a syntactically valid signature failed to -// validate. -type SignatureError string - -func (b SignatureError) Error() string { - return "openpgp: invalid signature: " + string(b) -} - -type keyIncorrectError int - -func (ki keyIncorrectError) Error() string { - return "openpgp: incorrect key" -} - -var ErrKeyIncorrect error = keyIncorrectError(0) - -type unknownIssuerError int - -func (unknownIssuerError) Error() string { - return "openpgp: signature made by unknown entity" -} - -var ErrUnknownIssuer error = unknownIssuerError(0) - -type keyRevokedError int - -func (keyRevokedError) Error() string { - return "openpgp: signature made by revoked key" -} - -var ErrKeyRevoked error = keyRevokedError(0) - -type UnknownPacketTypeError uint8 - -func (upte UnknownPacketTypeError) Error() string { - return "openpgp: unknown packet type: " + strconv.Itoa(int(upte)) -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/keys.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/keys.go deleted file mode 100644 index 68b14c6a..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/keys.go +++ /dev/null @@ -1,637 +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 openpgp - -import ( - "crypto/rsa" - "io" - "time" - - "golang.org/x/crypto/openpgp/armor" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/packet" -) - -// PublicKeyType is the armor type for a PGP public key. -var PublicKeyType = "PGP PUBLIC KEY BLOCK" - -// PrivateKeyType is the armor type for a PGP private key. -var PrivateKeyType = "PGP PRIVATE KEY BLOCK" - -// An Entity represents the components of an OpenPGP key: a primary public key -// (which must be a signing key), one or more identities claimed by that key, -// and zero or more subkeys, which may be encryption keys. -type Entity struct { - PrimaryKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Identities map[string]*Identity // indexed by Identity.Name - Revocations []*packet.Signature - Subkeys []Subkey -} - -// An Identity represents an identity claimed by an Entity and zero or more -// assertions by other entities about that claim. -type Identity struct { - Name string // by convention, has the form "Full Name (comment) " - UserId *packet.UserId - SelfSignature *packet.Signature - Signatures []*packet.Signature -} - -// A Subkey is an additional public key in an Entity. Subkeys can be used for -// encryption. -type Subkey struct { - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Sig *packet.Signature -} - -// A Key identifies a specific public key in an Entity. This is either the -// Entity's primary key or a subkey. -type Key struct { - Entity *Entity - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - SelfSignature *packet.Signature -} - -// A KeyRing provides access to public and private keys. -type KeyRing interface { - // KeysById returns the set of keys that have the given key id. - KeysById(id uint64) []Key - // KeysByIdAndUsage returns the set of keys with the given id - // that also meet the key usage given by requiredUsage. - // The requiredUsage is expressed as the bitwise-OR of - // packet.KeyFlag* values. - KeysByIdUsage(id uint64, requiredUsage byte) []Key - // DecryptionKeys returns all private keys that are valid for - // decryption. - DecryptionKeys() []Key -} - -// primaryIdentity returns the Identity marked as primary or the first identity -// if none are so marked. -func (e *Entity) primaryIdentity() *Identity { - var firstIdentity *Identity - for _, ident := range e.Identities { - if firstIdentity == nil { - firstIdentity = ident - } - if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { - return ident - } - } - return firstIdentity -} - -// encryptionKey returns the best candidate Key for encrypting a message to the -// given Entity. -func (e *Entity) encryptionKey(now time.Time) (Key, bool) { - candidateSubkey := -1 - - // Iterate the keys to find the newest key - var maxTime time.Time - for i, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - subkey.Sig.FlagEncryptCommunications && - subkey.PublicKey.PubKeyAlgo.CanEncrypt() && - !subkey.Sig.KeyExpired(now) && - (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) { - candidateSubkey = i - maxTime = subkey.Sig.CreationTime - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true - } - - // If we don't have any candidate subkeys for encryption and - // the primary key doesn't have any usage metadata then we - // assume that the primary key is ok. Or, if the primary key is - // marked as ok to encrypt to, then we can obviously use it. - i := e.primaryIdentity() - if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagEncryptCommunications && - e.PrimaryKey.PubKeyAlgo.CanEncrypt() && - !i.SelfSignature.KeyExpired(now) { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true - } - - // This Entity appears to be signing only. - return Key{}, false -} - -// signingKey return the best candidate Key for signing a message with this -// Entity. -func (e *Entity) signingKey(now time.Time) (Key, bool) { - candidateSubkey := -1 - - for i, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - subkey.Sig.FlagSign && - subkey.PublicKey.PubKeyAlgo.CanSign() && - !subkey.Sig.KeyExpired(now) { - candidateSubkey = i - break - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig}, true - } - - // If we have no candidate subkey then we assume that it's ok to sign - // with the primary key. - i := e.primaryIdentity() - if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagSign && - !i.SelfSignature.KeyExpired(now) { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature}, true - } - - return Key{}, false -} - -// An EntityList contains one or more Entities. -type EntityList []*Entity - -// KeysById returns the set of keys that have the given key id. -func (el EntityList) KeysById(id uint64) (keys []Key) { - for _, e := range el { - if e.PrimaryKey.KeyId == id { - var selfSig *packet.Signature - for _, ident := range e.Identities { - if selfSig == nil { - selfSig = ident.SelfSignature - } else if ident.SelfSignature.IsPrimaryId != nil && *ident.SelfSignature.IsPrimaryId { - selfSig = ident.SelfSignature - break - } - } - keys = append(keys, Key{e, e.PrimaryKey, e.PrivateKey, selfSig}) - } - - for _, subKey := range e.Subkeys { - if subKey.PublicKey.KeyId == id { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) - } - } - } - return -} - -// KeysByIdAndUsage returns the set of keys with the given id that also meet -// the key usage given by requiredUsage. The requiredUsage is expressed as -// the bitwise-OR of packet.KeyFlag* values. -func (el EntityList) KeysByIdUsage(id uint64, requiredUsage byte) (keys []Key) { - for _, key := range el.KeysById(id) { - if len(key.Entity.Revocations) > 0 { - continue - } - - if key.SelfSignature.RevocationReason != nil { - continue - } - - if key.SelfSignature.FlagsValid && requiredUsage != 0 { - var usage byte - if key.SelfSignature.FlagCertify { - usage |= packet.KeyFlagCertify - } - if key.SelfSignature.FlagSign { - usage |= packet.KeyFlagSign - } - if key.SelfSignature.FlagEncryptCommunications { - usage |= packet.KeyFlagEncryptCommunications - } - if key.SelfSignature.FlagEncryptStorage { - usage |= packet.KeyFlagEncryptStorage - } - if usage&requiredUsage != requiredUsage { - continue - } - } - - keys = append(keys, key) - } - return -} - -// DecryptionKeys returns all private keys that are valid for decryption. -func (el EntityList) DecryptionKeys() (keys []Key) { - for _, e := range el { - for _, subKey := range e.Subkeys { - if subKey.PrivateKey != nil && (!subKey.Sig.FlagsValid || subKey.Sig.FlagEncryptStorage || subKey.Sig.FlagEncryptCommunications) { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig}) - } - } - } - return -} - -// ReadArmoredKeyRing reads one or more public/private keys from an armor keyring file. -func ReadArmoredKeyRing(r io.Reader) (EntityList, error) { - block, err := armor.Decode(r) - if err == io.EOF { - return nil, errors.InvalidArgumentError("no armored data found") - } - if err != nil { - return nil, err - } - if block.Type != PublicKeyType && block.Type != PrivateKeyType { - return nil, errors.InvalidArgumentError("expected public or private key block, got: " + block.Type) - } - - return ReadKeyRing(block.Body) -} - -// ReadKeyRing reads one or more public/private keys. Unsupported keys are -// ignored as long as at least a single valid key is found. -func ReadKeyRing(r io.Reader) (el EntityList, err error) { - packets := packet.NewReader(r) - var lastUnsupportedError error - - for { - var e *Entity - e, err = ReadEntity(packets) - if err != nil { - // TODO: warn about skipped unsupported/unreadable keys - if _, ok := err.(errors.UnsupportedError); ok { - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } else if _, ok := err.(errors.StructuralError); ok { - // Skip unreadable, badly-formatted keys - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } - if err == io.EOF { - err = nil - break - } - if err != nil { - el = nil - break - } - } else { - el = append(el, e) - } - } - - if len(el) == 0 && err == nil { - err = lastUnsupportedError - } - return -} - -// readToNextPublicKey reads packets until the start of the entity and leaves -// the first packet of the new entity in the Reader. -func readToNextPublicKey(packets *packet.Reader) (err error) { - var p packet.Packet - for { - p, err = packets.Next() - if err == io.EOF { - return - } else if err != nil { - if _, ok := err.(errors.UnsupportedError); ok { - err = nil - continue - } - return - } - - if pk, ok := p.(*packet.PublicKey); ok && !pk.IsSubkey { - packets.Unread(p) - return - } - } -} - -// ReadEntity reads an entity (public key, identities, subkeys etc) from the -// given Reader. -func ReadEntity(packets *packet.Reader) (*Entity, error) { - e := new(Entity) - e.Identities = make(map[string]*Identity) - - p, err := packets.Next() - if err != nil { - return nil, err - } - - var ok bool - if e.PrimaryKey, ok = p.(*packet.PublicKey); !ok { - if e.PrivateKey, ok = p.(*packet.PrivateKey); !ok { - packets.Unread(p) - return nil, errors.StructuralError("first packet was not a public/private key") - } else { - e.PrimaryKey = &e.PrivateKey.PublicKey - } - } - - if !e.PrimaryKey.PubKeyAlgo.CanSign() { - return nil, errors.StructuralError("primary key cannot be used for signatures") - } - - var current *Identity - var revocations []*packet.Signature -EachPacket: - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return nil, err - } - - switch pkt := p.(type) { - case *packet.UserId: - current = new(Identity) - current.Name = pkt.Id - current.UserId = pkt - e.Identities[pkt.Id] = current - - for { - p, err = packets.Next() - if err == io.EOF { - return nil, io.ErrUnexpectedEOF - } else if err != nil { - return nil, err - } - - sig, ok := p.(*packet.Signature) - if !ok { - return nil, errors.StructuralError("user ID packet not followed by self-signature") - } - - if (sig.SigType == packet.SigTypePositiveCert || sig.SigType == packet.SigTypeGenericCert) && sig.IssuerKeyId != nil && *sig.IssuerKeyId == e.PrimaryKey.KeyId { - if err = e.PrimaryKey.VerifyUserIdSignature(pkt.Id, e.PrimaryKey, sig); err != nil { - return nil, errors.StructuralError("user ID self-signature invalid: " + err.Error()) - } - current.SelfSignature = sig - break - } - current.Signatures = append(current.Signatures, sig) - } - case *packet.Signature: - if pkt.SigType == packet.SigTypeKeyRevocation { - revocations = append(revocations, pkt) - } else if pkt.SigType == packet.SigTypeDirectSignature { - // TODO: RFC4880 5.2.1 permits signatures - // directly on keys (eg. to bind additional - // revocation keys). - } else if current == nil { - return nil, errors.StructuralError("signature packet found before user id packet") - } else { - current.Signatures = append(current.Signatures, pkt) - } - case *packet.PrivateKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, &pkt.PublicKey, pkt) - if err != nil { - return nil, err - } - case *packet.PublicKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, pkt, nil) - if err != nil { - return nil, err - } - default: - // we ignore unknown packets - } - } - - if len(e.Identities) == 0 { - return nil, errors.StructuralError("entity without any identities") - } - - for _, revocation := range revocations { - err = e.PrimaryKey.VerifyRevocationSignature(revocation) - if err == nil { - e.Revocations = append(e.Revocations, revocation) - } else { - // TODO: RFC 4880 5.2.3.15 defines revocation keys. - return nil, errors.StructuralError("revocation signature signed by alternate key") - } - } - - return e, nil -} - -func addSubkey(e *Entity, packets *packet.Reader, pub *packet.PublicKey, priv *packet.PrivateKey) error { - var subKey Subkey - subKey.PublicKey = pub - subKey.PrivateKey = priv - p, err := packets.Next() - if err == io.EOF { - return io.ErrUnexpectedEOF - } - if err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - var ok bool - subKey.Sig, ok = p.(*packet.Signature) - if !ok { - return errors.StructuralError("subkey packet not followed by signature") - } - if subKey.Sig.SigType != packet.SigTypeSubkeyBinding && subKey.Sig.SigType != packet.SigTypeSubkeyRevocation { - return errors.StructuralError("subkey signature with wrong type") - } - err = e.PrimaryKey.VerifyKeySignature(subKey.PublicKey, subKey.Sig) - if err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - e.Subkeys = append(e.Subkeys, subKey) - return nil -} - -const defaultRSAKeyBits = 2048 - -// NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a -// single identity composed of the given full name, comment and email, any of -// which may be empty but must not contain any of "()<>\x00". -// If config is nil, sensible defaults will be used. -func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) { - currentTime := config.Now() - - bits := defaultRSAKeyBits - if config != nil && config.RSABits != 0 { - bits = config.RSABits - } - - uid := packet.NewUserId(name, comment, email) - if uid == nil { - return nil, errors.InvalidArgumentError("user id field contained invalid characters") - } - signingPriv, err := rsa.GenerateKey(config.Random(), bits) - if err != nil { - return nil, err - } - encryptingPriv, err := rsa.GenerateKey(config.Random(), bits) - if err != nil { - return nil, err - } - - e := &Entity{ - PrimaryKey: packet.NewRSAPublicKey(currentTime, &signingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(currentTime, signingPriv), - Identities: make(map[string]*Identity), - } - isPrimaryId := true - e.Identities[uid.Id] = &Identity{ - Name: uid.Name, - UserId: uid, - SelfSignature: &packet.Signature{ - CreationTime: currentTime, - SigType: packet.SigTypePositiveCert, - PubKeyAlgo: packet.PubKeyAlgoRSA, - Hash: config.Hash(), - IsPrimaryId: &isPrimaryId, - FlagsValid: true, - FlagSign: true, - FlagCertify: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - } - - // If the user passes in a DefaultHash via packet.Config, - // set the PreferredHash for the SelfSignature. - if config != nil && config.DefaultHash != 0 { - e.Identities[uid.Id].SelfSignature.PreferredHash = []uint8{hashToHashId(config.DefaultHash)} - } - - e.Subkeys = make([]Subkey, 1) - e.Subkeys[0] = Subkey{ - PublicKey: packet.NewRSAPublicKey(currentTime, &encryptingPriv.PublicKey), - PrivateKey: packet.NewRSAPrivateKey(currentTime, encryptingPriv), - Sig: &packet.Signature{ - CreationTime: currentTime, - SigType: packet.SigTypeSubkeyBinding, - PubKeyAlgo: packet.PubKeyAlgoRSA, - Hash: config.Hash(), - FlagsValid: true, - FlagEncryptStorage: true, - FlagEncryptCommunications: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - } - e.Subkeys[0].PublicKey.IsSubkey = true - e.Subkeys[0].PrivateKey.IsSubkey = true - - return e, nil -} - -// SerializePrivate serializes an Entity, including private key material, to -// the given Writer. For now, it must only be used on an Entity returned from -// NewEntity. -// If config is nil, sensible defaults will be used. -func (e *Entity) SerializePrivate(w io.Writer, config *packet.Config) (err error) { - err = e.PrivateKey.Serialize(w) - if err != nil { - return - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return - } - err = ident.SelfSignature.SignUserId(ident.UserId.Id, e.PrimaryKey, e.PrivateKey, config) - if err != nil { - return - } - err = ident.SelfSignature.Serialize(w) - if err != nil { - return - } - } - for _, subkey := range e.Subkeys { - err = subkey.PrivateKey.Serialize(w) - if err != nil { - return - } - err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) - if err != nil { - return - } - err = subkey.Sig.Serialize(w) - if err != nil { - return - } - } - return nil -} - -// Serialize writes the public part of the given Entity to w. (No private -// key material will be output). -func (e *Entity) Serialize(w io.Writer) error { - err := e.PrimaryKey.Serialize(w) - if err != nil { - return err - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return err - } - err = ident.SelfSignature.Serialize(w) - if err != nil { - return err - } - for _, sig := range ident.Signatures { - err = sig.Serialize(w) - if err != nil { - return err - } - } - } - for _, subkey := range e.Subkeys { - err = subkey.PublicKey.Serialize(w) - if err != nil { - return err - } - err = subkey.Sig.Serialize(w) - if err != nil { - return err - } - } - return nil -} - -// SignIdentity adds a signature to e, from signer, attesting that identity is -// associated with e. The provided identity must already be an element of -// e.Identities and the private key of signer must have been decrypted if -// necessary. -// If config is nil, sensible defaults will be used. -func (e *Entity) SignIdentity(identity string, signer *Entity, config *packet.Config) error { - if signer.PrivateKey == nil { - return errors.InvalidArgumentError("signing Entity must have a private key") - } - if signer.PrivateKey.Encrypted { - return errors.InvalidArgumentError("signing Entity's private key must be decrypted") - } - ident, ok := e.Identities[identity] - if !ok { - return errors.InvalidArgumentError("given identity string not found in Entity") - } - - sig := &packet.Signature{ - SigType: packet.SigTypeGenericCert, - PubKeyAlgo: signer.PrivateKey.PubKeyAlgo, - Hash: config.Hash(), - CreationTime: config.Now(), - IssuerKeyId: &signer.PrivateKey.KeyId, - } - if err := sig.SignUserId(identity, e.PrimaryKey, signer.PrivateKey, config); err != nil { - return err - } - ident.Signatures = append(ident.Signatures, sig) - return nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/compressed.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/compressed.go deleted file mode 100644 index e8f0b5ca..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/compressed.go +++ /dev/null @@ -1,123 +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 packet - -import ( - "compress/bzip2" - "compress/flate" - "compress/zlib" - "golang.org/x/crypto/openpgp/errors" - "io" - "strconv" -) - -// Compressed represents a compressed OpenPGP packet. The decompressed contents -// will contain more OpenPGP packets. See RFC 4880, section 5.6. -type Compressed struct { - Body io.Reader -} - -const ( - NoCompression = flate.NoCompression - BestSpeed = flate.BestSpeed - BestCompression = flate.BestCompression - DefaultCompression = flate.DefaultCompression -) - -// CompressionConfig contains compressor configuration settings. -type CompressionConfig struct { - // Level is the compression level to use. It must be set to - // between -1 and 9, with -1 causing the compressor to use the - // default compression level, 0 causing the compressor to use - // no compression and 1 to 9 representing increasing (better, - // slower) compression levels. If Level is less than -1 or - // more then 9, a non-nil error will be returned during - // encryption. See the constants above for convenient common - // settings for Level. - Level int -} - -func (c *Compressed) parse(r io.Reader) error { - var buf [1]byte - _, err := readFull(r, buf[:]) - if err != nil { - return err - } - - switch buf[0] { - case 1: - c.Body = flate.NewReader(r) - case 2: - c.Body, err = zlib.NewReader(r) - case 3: - c.Body = bzip2.NewReader(r) - default: - err = errors.UnsupportedError("unknown compression algorithm: " + strconv.Itoa(int(buf[0]))) - } - - return err -} - -// compressedWriterCloser represents the serialized compression stream -// header and the compressor. Its Close() method ensures that both the -// compressor and serialized stream header are closed. Its Write() -// method writes to the compressor. -type compressedWriteCloser struct { - sh io.Closer // Stream Header - c io.WriteCloser // Compressor -} - -func (cwc compressedWriteCloser) Write(p []byte) (int, error) { - return cwc.c.Write(p) -} - -func (cwc compressedWriteCloser) Close() (err error) { - err = cwc.c.Close() - if err != nil { - return err - } - - return cwc.sh.Close() -} - -// SerializeCompressed serializes a compressed data packet to w and -// returns a WriteCloser to which the literal data packets themselves -// can be written and which MUST be closed on completion. If cc is -// nil, sensible defaults will be used to configure the compression -// algorithm. -func SerializeCompressed(w io.WriteCloser, algo CompressionAlgo, cc *CompressionConfig) (literaldata io.WriteCloser, err error) { - compressed, err := serializeStreamHeader(w, packetTypeCompressed) - if err != nil { - return - } - - _, err = compressed.Write([]byte{uint8(algo)}) - if err != nil { - return - } - - level := DefaultCompression - if cc != nil { - level = cc.Level - } - - var compressor io.WriteCloser - switch algo { - case CompressionZIP: - compressor, err = flate.NewWriter(compressed, level) - case CompressionZLIB: - compressor, err = zlib.NewWriterLevel(compressed, level) - default: - s := strconv.Itoa(int(algo)) - err = errors.UnsupportedError("Unsupported compression algorithm: " + s) - } - if err != nil { - return - } - - literaldata = compressedWriteCloser{compressed, compressor} - - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/config.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/config.go deleted file mode 100644 index c76eecc9..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/config.go +++ /dev/null @@ -1,91 +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 packet - -import ( - "crypto" - "crypto/rand" - "io" - "time" -) - -// Config collects a number of parameters along with sensible defaults. -// A nil *Config is valid and results in all default values. -type Config struct { - // Rand provides the source of entropy. - // If nil, the crypto/rand Reader is used. - Rand io.Reader - // DefaultHash is the default hash function to be used. - // If zero, SHA-256 is used. - DefaultHash crypto.Hash - // DefaultCipher is the cipher to be used. - // If zero, AES-128 is used. - DefaultCipher CipherFunction - // Time returns the current time as the number of seconds since the - // epoch. If Time is nil, time.Now is used. - Time func() time.Time - // DefaultCompressionAlgo is the compression algorithm to be - // applied to the plaintext before encryption. If zero, no - // compression is done. - DefaultCompressionAlgo CompressionAlgo - // CompressionConfig configures the compression settings. - CompressionConfig *CompressionConfig - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 1024 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 65536 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. When set, it is strongly encrouraged to - // use a value that is at least 65536. See RFC 4880 Section - // 3.7.1.3. - S2KCount int - // RSABits is the number of bits in new RSA keys made with NewEntity. - // If zero, then 2048 bit keys are created. - RSABits int -} - -func (c *Config) Random() io.Reader { - if c == nil || c.Rand == nil { - return rand.Reader - } - return c.Rand -} - -func (c *Config) Hash() crypto.Hash { - if c == nil || uint(c.DefaultHash) == 0 { - return crypto.SHA256 - } - return c.DefaultHash -} - -func (c *Config) Cipher() CipherFunction { - if c == nil || uint8(c.DefaultCipher) == 0 { - return CipherAES128 - } - return c.DefaultCipher -} - -func (c *Config) Now() time.Time { - if c == nil || c.Time == nil { - return time.Now() - } - return c.Time() -} - -func (c *Config) Compression() CompressionAlgo { - if c == nil { - return CompressionNone - } - return c.DefaultCompressionAlgo -} - -func (c *Config) PasswordHashIterations() int { - if c == nil || c.S2KCount == 0 { - return 0 - } - return c.S2KCount -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go deleted file mode 100644 index 266840d0..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/encrypted_key.go +++ /dev/null @@ -1,199 +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 packet - -import ( - "crypto/rsa" - "encoding/binary" - "io" - "math/big" - "strconv" - - "golang.org/x/crypto/openpgp/elgamal" - "golang.org/x/crypto/openpgp/errors" -) - -const encryptedKeyVersion = 3 - -// EncryptedKey represents a public-key encrypted session key. See RFC 4880, -// section 5.1. -type EncryptedKey struct { - KeyId uint64 - Algo PublicKeyAlgorithm - CipherFunc CipherFunction // only valid after a successful Decrypt - Key []byte // only valid after a successful Decrypt - - encryptedMPI1, encryptedMPI2 parsedMPI -} - -func (e *EncryptedKey) parse(r io.Reader) (err error) { - var buf [10]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != encryptedKeyVersion { - return errors.UnsupportedError("unknown EncryptedKey version " + strconv.Itoa(int(buf[0]))) - } - e.KeyId = binary.BigEndian.Uint64(buf[1:9]) - e.Algo = PublicKeyAlgorithm(buf[9]) - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) - case PubKeyAlgoElGamal: - e.encryptedMPI1.bytes, e.encryptedMPI1.bitLength, err = readMPI(r) - if err != nil { - return - } - e.encryptedMPI2.bytes, e.encryptedMPI2.bitLength, err = readMPI(r) - } - _, err = consumeAll(r) - return -} - -func checksumKeyMaterial(key []byte) uint16 { - var checksum uint16 - for _, v := range key { - checksum += uint16(v) - } - return checksum -} - -// Decrypt decrypts an encrypted session key with the given private key. The -// private key must have been decrypted first. -// If config is nil, sensible defaults will be used. -func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error { - var err error - var b []byte - - // TODO(agl): use session key decryption routines here to avoid - // padding oracle attacks. - switch priv.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - b, err = rsa.DecryptPKCS1v15(config.Random(), priv.PrivateKey.(*rsa.PrivateKey), e.encryptedMPI1.bytes) - case PubKeyAlgoElGamal: - c1 := new(big.Int).SetBytes(e.encryptedMPI1.bytes) - c2 := new(big.Int).SetBytes(e.encryptedMPI2.bytes) - b, err = elgamal.Decrypt(priv.PrivateKey.(*elgamal.PrivateKey), c1, c2) - default: - err = errors.InvalidArgumentError("cannot decrypted encrypted session key with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) - } - - if err != nil { - return err - } - - e.CipherFunc = CipherFunction(b[0]) - e.Key = b[1 : len(b)-2] - expectedChecksum := uint16(b[len(b)-2])<<8 | uint16(b[len(b)-1]) - checksum := checksumKeyMaterial(e.Key) - if checksum != expectedChecksum { - return errors.StructuralError("EncryptedKey checksum incorrect") - } - - return nil -} - -// Serialize writes the encrypted key packet, e, to w. -func (e *EncryptedKey) Serialize(w io.Writer) error { - var mpiLen int - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - mpiLen = 2 + len(e.encryptedMPI1.bytes) - case PubKeyAlgoElGamal: - mpiLen = 2 + len(e.encryptedMPI1.bytes) + 2 + len(e.encryptedMPI2.bytes) - default: - return errors.InvalidArgumentError("don't know how to serialize encrypted key type " + strconv.Itoa(int(e.Algo))) - } - - serializeHeader(w, packetTypeEncryptedKey, 1 /* version */ +8 /* key id */ +1 /* algo */ +mpiLen) - - w.Write([]byte{encryptedKeyVersion}) - binary.Write(w, binary.BigEndian, e.KeyId) - w.Write([]byte{byte(e.Algo)}) - - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - writeMPIs(w, e.encryptedMPI1) - case PubKeyAlgoElGamal: - writeMPIs(w, e.encryptedMPI1, e.encryptedMPI2) - default: - panic("internal error") - } - - return nil -} - -// SerializeEncryptedKey serializes an encrypted key packet to w that contains -// key, encrypted to pub. -// If config is nil, sensible defaults will be used. -func SerializeEncryptedKey(w io.Writer, pub *PublicKey, cipherFunc CipherFunction, key []byte, config *Config) error { - var buf [10]byte - buf[0] = encryptedKeyVersion - binary.BigEndian.PutUint64(buf[1:9], pub.KeyId) - buf[9] = byte(pub.PubKeyAlgo) - - keyBlock := make([]byte, 1 /* cipher type */ +len(key)+2 /* checksum */) - keyBlock[0] = byte(cipherFunc) - copy(keyBlock[1:], key) - checksum := checksumKeyMaterial(key) - keyBlock[1+len(key)] = byte(checksum >> 8) - keyBlock[1+len(key)+1] = byte(checksum) - - switch pub.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - return serializeEncryptedKeyRSA(w, config.Random(), buf, pub.PublicKey.(*rsa.PublicKey), keyBlock) - case PubKeyAlgoElGamal: - return serializeEncryptedKeyElGamal(w, config.Random(), buf, pub.PublicKey.(*elgamal.PublicKey), keyBlock) - case PubKeyAlgoDSA, PubKeyAlgoRSASignOnly: - return errors.InvalidArgumentError("cannot encrypt to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) - } - - return errors.UnsupportedError("encrypting a key to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) -} - -func serializeEncryptedKeyRSA(w io.Writer, rand io.Reader, header [10]byte, pub *rsa.PublicKey, keyBlock []byte) error { - cipherText, err := rsa.EncryptPKCS1v15(rand, pub, keyBlock) - if err != nil { - return errors.InvalidArgumentError("RSA encryption failed: " + err.Error()) - } - - packetLen := 10 /* header length */ + 2 /* mpi size */ + len(cipherText) - - err = serializeHeader(w, packetTypeEncryptedKey, packetLen) - if err != nil { - return err - } - _, err = w.Write(header[:]) - if err != nil { - return err - } - return writeMPI(w, 8*uint16(len(cipherText)), cipherText) -} - -func serializeEncryptedKeyElGamal(w io.Writer, rand io.Reader, header [10]byte, pub *elgamal.PublicKey, keyBlock []byte) error { - c1, c2, err := elgamal.Encrypt(rand, pub, keyBlock) - if err != nil { - return errors.InvalidArgumentError("ElGamal encryption failed: " + err.Error()) - } - - packetLen := 10 /* header length */ - packetLen += 2 /* mpi size */ + (c1.BitLen()+7)/8 - packetLen += 2 /* mpi size */ + (c2.BitLen()+7)/8 - - err = serializeHeader(w, packetTypeEncryptedKey, packetLen) - if err != nil { - return err - } - _, err = w.Write(header[:]) - if err != nil { - return err - } - err = writeBig(w, c1) - if err != nil { - return err - } - return writeBig(w, c2) -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/literal.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/literal.go deleted file mode 100644 index 1a9ec6e5..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/literal.go +++ /dev/null @@ -1,89 +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 packet - -import ( - "encoding/binary" - "io" -) - -// LiteralData represents an encrypted file. See RFC 4880, section 5.9. -type LiteralData struct { - IsBinary bool - FileName string - Time uint32 // Unix epoch time. Either creation time or modification time. 0 means undefined. - Body io.Reader -} - -// ForEyesOnly returns whether the contents of the LiteralData have been marked -// as especially sensitive. -func (l *LiteralData) ForEyesOnly() bool { - return l.FileName == "_CONSOLE" -} - -func (l *LiteralData) parse(r io.Reader) (err error) { - var buf [256]byte - - _, err = readFull(r, buf[:2]) - if err != nil { - return - } - - l.IsBinary = buf[0] == 'b' - fileNameLen := int(buf[1]) - - _, err = readFull(r, buf[:fileNameLen]) - if err != nil { - return - } - - l.FileName = string(buf[:fileNameLen]) - - _, err = readFull(r, buf[:4]) - if err != nil { - return - } - - l.Time = binary.BigEndian.Uint32(buf[:4]) - l.Body = r - return -} - -// SerializeLiteral serializes a literal data packet to w and returns a -// WriteCloser to which the data itself can be written and which MUST be closed -// on completion. The fileName is truncated to 255 bytes. -func SerializeLiteral(w io.WriteCloser, isBinary bool, fileName string, time uint32) (plaintext io.WriteCloser, err error) { - var buf [4]byte - buf[0] = 't' - if isBinary { - buf[0] = 'b' - } - if len(fileName) > 255 { - fileName = fileName[:255] - } - buf[1] = byte(len(fileName)) - - inner, err := serializeStreamHeader(w, packetTypeLiteralData) - if err != nil { - return - } - - _, err = inner.Write(buf[:2]) - if err != nil { - return - } - _, err = inner.Write([]byte(fileName)) - if err != nil { - return - } - binary.BigEndian.PutUint32(buf[:], time) - _, err = inner.Write(buf[:]) - if err != nil { - return - } - - plaintext = inner - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go deleted file mode 100644 index ce2a33a5..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/ocfb.go +++ /dev/null @@ -1,143 +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. - -// OpenPGP CFB Mode. http://tools.ietf.org/html/rfc4880#section-13.9 - -package packet - -import ( - "crypto/cipher" -) - -type ocfbEncrypter struct { - b cipher.Block - fre []byte - outUsed int -} - -// An OCFBResyncOption determines if the "resynchronization step" of OCFB is -// performed. -type OCFBResyncOption bool - -const ( - OCFBResync OCFBResyncOption = true - OCFBNoResync OCFBResyncOption = false -) - -// NewOCFBEncrypter returns a cipher.Stream which encrypts data with OpenPGP's -// cipher feedback mode using the given cipher.Block, and an initial amount of -// ciphertext. randData must be random bytes and be the same length as the -// cipher.Block's block size. Resync determines if the "resynchronization step" -// from RFC 4880, 13.9 step 7 is performed. Different parts of OpenPGP vary on -// this point. -func NewOCFBEncrypter(block cipher.Block, randData []byte, resync OCFBResyncOption) (cipher.Stream, []byte) { - blockSize := block.BlockSize() - if len(randData) != blockSize { - return nil, nil - } - - x := &ocfbEncrypter{ - b: block, - fre: make([]byte, blockSize), - outUsed: 0, - } - prefix := make([]byte, blockSize+2) - - block.Encrypt(x.fre, x.fre) - for i := 0; i < blockSize; i++ { - prefix[i] = randData[i] ^ x.fre[i] - } - - block.Encrypt(x.fre, prefix[:blockSize]) - prefix[blockSize] = x.fre[0] ^ randData[blockSize-2] - prefix[blockSize+1] = x.fre[1] ^ randData[blockSize-1] - - if resync { - block.Encrypt(x.fre, prefix[2:]) - } else { - x.fre[0] = prefix[blockSize] - x.fre[1] = prefix[blockSize+1] - x.outUsed = 2 - } - return x, prefix -} - -func (x *ocfbEncrypter) XORKeyStream(dst, src []byte) { - for i := 0; i < len(src); i++ { - if x.outUsed == len(x.fre) { - x.b.Encrypt(x.fre, x.fre) - x.outUsed = 0 - } - - x.fre[x.outUsed] ^= src[i] - dst[i] = x.fre[x.outUsed] - x.outUsed++ - } -} - -type ocfbDecrypter struct { - b cipher.Block - fre []byte - outUsed int -} - -// NewOCFBDecrypter returns a cipher.Stream which decrypts data with OpenPGP's -// cipher feedback mode using the given cipher.Block. Prefix must be the first -// blockSize + 2 bytes of the ciphertext, where blockSize is the cipher.Block's -// block size. If an incorrect key is detected then nil is returned. On -// successful exit, blockSize+2 bytes of decrypted data are written into -// prefix. Resync determines if the "resynchronization step" from RFC 4880, -// 13.9 step 7 is performed. Different parts of OpenPGP vary on this point. -func NewOCFBDecrypter(block cipher.Block, prefix []byte, resync OCFBResyncOption) cipher.Stream { - blockSize := block.BlockSize() - if len(prefix) != blockSize+2 { - return nil - } - - x := &ocfbDecrypter{ - b: block, - fre: make([]byte, blockSize), - outUsed: 0, - } - prefixCopy := make([]byte, len(prefix)) - copy(prefixCopy, prefix) - - block.Encrypt(x.fre, x.fre) - for i := 0; i < blockSize; i++ { - prefixCopy[i] ^= x.fre[i] - } - - block.Encrypt(x.fre, prefix[:blockSize]) - prefixCopy[blockSize] ^= x.fre[0] - prefixCopy[blockSize+1] ^= x.fre[1] - - if prefixCopy[blockSize-2] != prefixCopy[blockSize] || - prefixCopy[blockSize-1] != prefixCopy[blockSize+1] { - return nil - } - - if resync { - block.Encrypt(x.fre, prefix[2:]) - } else { - x.fre[0] = prefix[blockSize] - x.fre[1] = prefix[blockSize+1] - x.outUsed = 2 - } - copy(prefix, prefixCopy) - return x -} - -func (x *ocfbDecrypter) XORKeyStream(dst, src []byte) { - for i := 0; i < len(src); i++ { - if x.outUsed == len(x.fre) { - x.b.Encrypt(x.fre, x.fre) - x.outUsed = 0 - } - - c := src[i] - dst[i] = x.fre[x.outUsed] ^ src[i] - x.fre[x.outUsed] = c - x.outUsed++ - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go deleted file mode 100644 index 17135033..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/one_pass_signature.go +++ /dev/null @@ -1,73 +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 packet - -import ( - "crypto" - "encoding/binary" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" - "io" - "strconv" -) - -// OnePassSignature represents a one-pass signature packet. See RFC 4880, -// section 5.4. -type OnePassSignature struct { - SigType SignatureType - Hash crypto.Hash - PubKeyAlgo PublicKeyAlgorithm - KeyId uint64 - IsLast bool -} - -const onePassSignatureVersion = 3 - -func (ops *OnePassSignature) parse(r io.Reader) (err error) { - var buf [13]byte - - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != onePassSignatureVersion { - err = errors.UnsupportedError("one-pass-signature packet version " + strconv.Itoa(int(buf[0]))) - } - - var ok bool - ops.Hash, ok = s2k.HashIdToHash(buf[2]) - if !ok { - return errors.UnsupportedError("hash function: " + strconv.Itoa(int(buf[2]))) - } - - ops.SigType = SignatureType(buf[1]) - ops.PubKeyAlgo = PublicKeyAlgorithm(buf[3]) - ops.KeyId = binary.BigEndian.Uint64(buf[4:12]) - ops.IsLast = buf[12] != 0 - return -} - -// Serialize marshals the given OnePassSignature to w. -func (ops *OnePassSignature) Serialize(w io.Writer) error { - var buf [13]byte - buf[0] = onePassSignatureVersion - buf[1] = uint8(ops.SigType) - var ok bool - buf[2], ok = s2k.HashToHashId(ops.Hash) - if !ok { - return errors.UnsupportedError("hash type: " + strconv.Itoa(int(ops.Hash))) - } - buf[3] = uint8(ops.PubKeyAlgo) - binary.BigEndian.PutUint64(buf[4:12], ops.KeyId) - if ops.IsLast { - buf[12] = 1 - } - - if err := serializeHeader(w, packetTypeOnePassSignature, len(buf)); err != nil { - return err - } - _, err := w.Write(buf[:]) - return err -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/opaque.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/opaque.go deleted file mode 100644 index 456d807f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/opaque.go +++ /dev/null @@ -1,162 +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 packet - -import ( - "bytes" - "io" - "io/ioutil" - - "golang.org/x/crypto/openpgp/errors" -) - -// OpaquePacket represents an OpenPGP packet as raw, unparsed data. This is -// useful for splitting and storing the original packet contents separately, -// handling unsupported packet types or accessing parts of the packet not yet -// implemented by this package. -type OpaquePacket struct { - // Packet type - Tag uint8 - // Reason why the packet was parsed opaquely - Reason error - // Binary contents of the packet data - Contents []byte -} - -func (op *OpaquePacket) parse(r io.Reader) (err error) { - op.Contents, err = ioutil.ReadAll(r) - return -} - -// Serialize marshals the packet to a writer in its original form, including -// the packet header. -func (op *OpaquePacket) Serialize(w io.Writer) (err error) { - err = serializeHeader(w, packetType(op.Tag), len(op.Contents)) - if err == nil { - _, err = w.Write(op.Contents) - } - return -} - -// Parse attempts to parse the opaque contents into a structure supported by -// this package. If the packet is not known then the result will be another -// OpaquePacket. -func (op *OpaquePacket) Parse() (p Packet, err error) { - hdr := bytes.NewBuffer(nil) - err = serializeHeader(hdr, packetType(op.Tag), len(op.Contents)) - if err != nil { - op.Reason = err - return op, err - } - p, err = Read(io.MultiReader(hdr, bytes.NewBuffer(op.Contents))) - if err != nil { - op.Reason = err - p = op - } - return -} - -// OpaqueReader reads OpaquePackets from an io.Reader. -type OpaqueReader struct { - r io.Reader -} - -func NewOpaqueReader(r io.Reader) *OpaqueReader { - return &OpaqueReader{r: r} -} - -// Read the next OpaquePacket. -func (or *OpaqueReader) Next() (op *OpaquePacket, err error) { - tag, _, contents, err := readHeader(or.r) - if err != nil { - return - } - op = &OpaquePacket{Tag: uint8(tag), Reason: err} - err = op.parse(contents) - if err != nil { - consumeAll(contents) - } - return -} - -// OpaqueSubpacket represents an unparsed OpenPGP subpacket, -// as found in signature and user attribute packets. -type OpaqueSubpacket struct { - SubType uint8 - Contents []byte -} - -// OpaqueSubpackets extracts opaque, unparsed OpenPGP subpackets from -// their byte representation. -func OpaqueSubpackets(contents []byte) (result []*OpaqueSubpacket, err error) { - var ( - subHeaderLen int - subPacket *OpaqueSubpacket - ) - for len(contents) > 0 { - subHeaderLen, subPacket, err = nextSubpacket(contents) - if err != nil { - break - } - result = append(result, subPacket) - contents = contents[subHeaderLen+len(subPacket.Contents):] - } - return -} - -func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacket, err error) { - // RFC 4880, section 5.2.3.1 - var subLen uint32 - if len(contents) < 1 { - goto Truncated - } - subPacket = &OpaqueSubpacket{} - switch { - case contents[0] < 192: - subHeaderLen = 2 // 1 length byte, 1 subtype byte - if len(contents) < subHeaderLen { - goto Truncated - } - subLen = uint32(contents[0]) - contents = contents[1:] - case contents[0] < 255: - subHeaderLen = 3 // 2 length bytes, 1 subtype - if len(contents) < subHeaderLen { - goto Truncated - } - subLen = uint32(contents[0]-192)<<8 + uint32(contents[1]) + 192 - contents = contents[2:] - default: - subHeaderLen = 6 // 5 length bytes, 1 subtype - if len(contents) < subHeaderLen { - goto Truncated - } - subLen = uint32(contents[1])<<24 | - uint32(contents[2])<<16 | - uint32(contents[3])<<8 | - uint32(contents[4]) - contents = contents[5:] - } - if subLen > uint32(len(contents)) || subLen == 0 { - goto Truncated - } - subPacket.SubType = contents[0] - subPacket.Contents = contents[1:subLen] - return -Truncated: - err = errors.StructuralError("subpacket truncated") - return -} - -func (osp *OpaqueSubpacket) Serialize(w io.Writer) (err error) { - buf := make([]byte, 6) - n := serializeSubpacketLength(buf, len(osp.Contents)+1) - buf[n] = osp.SubType - if _, err = w.Write(buf[:n+1]); err != nil { - return - } - _, err = w.Write(osp.Contents) - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/packet.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/packet.go deleted file mode 100644 index 3eded93f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/packet.go +++ /dev/null @@ -1,537 +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 packet implements parsing and serialization of OpenPGP packets, as -// specified in RFC 4880. -package packet // import "golang.org/x/crypto/openpgp/packet" - -import ( - "bufio" - "crypto/aes" - "crypto/cipher" - "crypto/des" - "golang.org/x/crypto/cast5" - "golang.org/x/crypto/openpgp/errors" - "io" - "math/big" -) - -// readFull is the same as io.ReadFull except that reading zero bytes returns -// ErrUnexpectedEOF rather than EOF. -func readFull(r io.Reader, buf []byte) (n int, err error) { - n, err = io.ReadFull(r, buf) - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// readLength reads an OpenPGP length from r. See RFC 4880, section 4.2.2. -func readLength(r io.Reader) (length int64, isPartial bool, err error) { - var buf [4]byte - _, err = readFull(r, buf[:1]) - if err != nil { - return - } - switch { - case buf[0] < 192: - length = int64(buf[0]) - case buf[0] < 224: - length = int64(buf[0]-192) << 8 - _, err = readFull(r, buf[0:1]) - if err != nil { - return - } - length += int64(buf[0]) + 192 - case buf[0] < 255: - length = int64(1) << (buf[0] & 0x1f) - isPartial = true - default: - _, err = readFull(r, buf[0:4]) - if err != nil { - return - } - length = int64(buf[0])<<24 | - int64(buf[1])<<16 | - int64(buf[2])<<8 | - int64(buf[3]) - } - return -} - -// partialLengthReader wraps an io.Reader and handles OpenPGP partial lengths. -// The continuation lengths are parsed and removed from the stream and EOF is -// returned at the end of the packet. See RFC 4880, section 4.2.2.4. -type partialLengthReader struct { - r io.Reader - remaining int64 - isPartial bool -} - -func (r *partialLengthReader) Read(p []byte) (n int, err error) { - for r.remaining == 0 { - if !r.isPartial { - return 0, io.EOF - } - r.remaining, r.isPartial, err = readLength(r.r) - if err != nil { - return 0, err - } - } - - toRead := int64(len(p)) - if toRead > r.remaining { - toRead = r.remaining - } - - n, err = r.r.Read(p[:int(toRead)]) - r.remaining -= int64(n) - if n < int(toRead) && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// partialLengthWriter writes a stream of data using OpenPGP partial lengths. -// See RFC 4880, section 4.2.2.4. -type partialLengthWriter struct { - w io.WriteCloser - lengthByte [1]byte -} - -func (w *partialLengthWriter) Write(p []byte) (n int, err error) { - for len(p) > 0 { - for power := uint(14); power < 32; power-- { - l := 1 << power - if len(p) >= l { - w.lengthByte[0] = 224 + uint8(power) - _, err = w.w.Write(w.lengthByte[:]) - if err != nil { - return - } - var m int - m, err = w.w.Write(p[:l]) - n += m - if err != nil { - return - } - p = p[l:] - break - } - } - } - return -} - -func (w *partialLengthWriter) Close() error { - w.lengthByte[0] = 0 - _, err := w.w.Write(w.lengthByte[:]) - if err != nil { - return err - } - return w.w.Close() -} - -// A spanReader is an io.LimitReader, but it returns ErrUnexpectedEOF if the -// underlying Reader returns EOF before the limit has been reached. -type spanReader struct { - r io.Reader - n int64 -} - -func (l *spanReader) Read(p []byte) (n int, err 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 l.n > 0 && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// readHeader parses a packet header and returns an io.Reader which will return -// the contents of the packet. See RFC 4880, section 4.2. -func readHeader(r io.Reader) (tag packetType, length int64, contents io.Reader, err error) { - var buf [4]byte - _, err = io.ReadFull(r, buf[:1]) - if err != nil { - return - } - if buf[0]&0x80 == 0 { - err = errors.StructuralError("tag byte does not have MSB set") - return - } - if buf[0]&0x40 == 0 { - // Old format packet - tag = packetType((buf[0] & 0x3f) >> 2) - lengthType := buf[0] & 3 - if lengthType == 3 { - length = -1 - contents = r - return - } - lengthBytes := 1 << lengthType - _, err = readFull(r, buf[0:lengthBytes]) - if err != nil { - return - } - for i := 0; i < lengthBytes; i++ { - length <<= 8 - length |= int64(buf[i]) - } - contents = &spanReader{r, length} - return - } - - // New format packet - tag = packetType(buf[0] & 0x3f) - length, isPartial, err := readLength(r) - if err != nil { - return - } - if isPartial { - contents = &partialLengthReader{ - remaining: length, - isPartial: true, - r: r, - } - length = -1 - } else { - contents = &spanReader{r, length} - } - return -} - -// serializeHeader writes an OpenPGP packet header to w. See RFC 4880, section -// 4.2. -func serializeHeader(w io.Writer, ptype packetType, length int) (err error) { - var buf [6]byte - var n int - - buf[0] = 0x80 | 0x40 | byte(ptype) - if length < 192 { - buf[1] = byte(length) - n = 2 - } else if length < 8384 { - length -= 192 - buf[1] = 192 + byte(length>>8) - buf[2] = byte(length) - n = 3 - } else { - buf[1] = 255 - buf[2] = byte(length >> 24) - buf[3] = byte(length >> 16) - buf[4] = byte(length >> 8) - buf[5] = byte(length) - n = 6 - } - - _, err = w.Write(buf[:n]) - return -} - -// serializeStreamHeader writes an OpenPGP packet header to w where the -// length of the packet is unknown. It returns a io.WriteCloser which can be -// used to write the contents of the packet. See RFC 4880, section 4.2. -func serializeStreamHeader(w io.WriteCloser, ptype packetType) (out io.WriteCloser, err error) { - var buf [1]byte - buf[0] = 0x80 | 0x40 | byte(ptype) - _, err = w.Write(buf[:]) - if err != nil { - return - } - out = &partialLengthWriter{w: w} - return -} - -// Packet represents an OpenPGP packet. Users are expected to try casting -// instances of this interface to specific packet types. -type Packet interface { - parse(io.Reader) error -} - -// consumeAll reads from the given Reader until error, returning the number of -// bytes read. -func consumeAll(r io.Reader) (n int64, err error) { - var m int - var buf [1024]byte - - for { - m, err = r.Read(buf[:]) - n += int64(m) - if err == io.EOF { - err = nil - return - } - if err != nil { - return - } - } -} - -// packetType represents the numeric ids of the different OpenPGP packet types. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-2 -type packetType uint8 - -const ( - packetTypeEncryptedKey packetType = 1 - packetTypeSignature packetType = 2 - packetTypeSymmetricKeyEncrypted packetType = 3 - packetTypeOnePassSignature packetType = 4 - packetTypePrivateKey packetType = 5 - packetTypePublicKey packetType = 6 - packetTypePrivateSubkey packetType = 7 - packetTypeCompressed packetType = 8 - packetTypeSymmetricallyEncrypted packetType = 9 - packetTypeLiteralData packetType = 11 - packetTypeUserId packetType = 13 - packetTypePublicSubkey packetType = 14 - packetTypeUserAttribute packetType = 17 - packetTypeSymmetricallyEncryptedMDC packetType = 18 -) - -// peekVersion detects the version of a public key packet about to -// be read. A bufio.Reader at the original position of the io.Reader -// is returned. -func peekVersion(r io.Reader) (bufr *bufio.Reader, ver byte, err error) { - bufr = bufio.NewReader(r) - var verBuf []byte - if verBuf, err = bufr.Peek(1); err != nil { - return - } - ver = verBuf[0] - return -} - -// Read reads a single OpenPGP packet from the given io.Reader. If there is an -// error parsing a packet, the whole packet is consumed from the input. -func Read(r io.Reader) (p Packet, err error) { - tag, _, contents, err := readHeader(r) - if err != nil { - return - } - - switch tag { - case packetTypeEncryptedKey: - p = new(EncryptedKey) - case packetTypeSignature: - var version byte - // Detect signature version - if contents, version, err = peekVersion(contents); err != nil { - return - } - if version < 4 { - p = new(SignatureV3) - } else { - p = new(Signature) - } - case packetTypeSymmetricKeyEncrypted: - p = new(SymmetricKeyEncrypted) - case packetTypeOnePassSignature: - p = new(OnePassSignature) - case packetTypePrivateKey, packetTypePrivateSubkey: - pk := new(PrivateKey) - if tag == packetTypePrivateSubkey { - pk.IsSubkey = true - } - p = pk - case packetTypePublicKey, packetTypePublicSubkey: - var version byte - if contents, version, err = peekVersion(contents); err != nil { - return - } - isSubkey := tag == packetTypePublicSubkey - if version < 4 { - p = &PublicKeyV3{IsSubkey: isSubkey} - } else { - p = &PublicKey{IsSubkey: isSubkey} - } - case packetTypeCompressed: - p = new(Compressed) - case packetTypeSymmetricallyEncrypted: - p = new(SymmetricallyEncrypted) - case packetTypeLiteralData: - p = new(LiteralData) - case packetTypeUserId: - p = new(UserId) - case packetTypeUserAttribute: - p = new(UserAttribute) - case packetTypeSymmetricallyEncryptedMDC: - se := new(SymmetricallyEncrypted) - se.MDC = true - p = se - default: - err = errors.UnknownPacketTypeError(tag) - } - if p != nil { - err = p.parse(contents) - } - if err != nil { - consumeAll(contents) - } - return -} - -// SignatureType represents the different semantic meanings of an OpenPGP -// signature. See RFC 4880, section 5.2.1. -type SignatureType uint8 - -const ( - SigTypeBinary SignatureType = 0 - SigTypeText = 1 - SigTypeGenericCert = 0x10 - SigTypePersonaCert = 0x11 - SigTypeCasualCert = 0x12 - SigTypePositiveCert = 0x13 - SigTypeSubkeyBinding = 0x18 - SigTypePrimaryKeyBinding = 0x19 - SigTypeDirectSignature = 0x1F - SigTypeKeyRevocation = 0x20 - SigTypeSubkeyRevocation = 0x28 -) - -// PublicKeyAlgorithm represents the different public key system specified for -// OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-12 -type PublicKeyAlgorithm uint8 - -const ( - PubKeyAlgoRSA PublicKeyAlgorithm = 1 - PubKeyAlgoRSAEncryptOnly PublicKeyAlgorithm = 2 - PubKeyAlgoRSASignOnly PublicKeyAlgorithm = 3 - PubKeyAlgoElGamal PublicKeyAlgorithm = 16 - PubKeyAlgoDSA PublicKeyAlgorithm = 17 - // RFC 6637, Section 5. - PubKeyAlgoECDH PublicKeyAlgorithm = 18 - PubKeyAlgoECDSA PublicKeyAlgorithm = 19 -) - -// CanEncrypt returns true if it's possible to encrypt a message to a public -// key of the given type. -func (pka PublicKeyAlgorithm) CanEncrypt() bool { - switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoElGamal: - return true - } - return false -} - -// CanSign returns true if it's possible for a public key of the given type to -// sign a message. -func (pka PublicKeyAlgorithm) CanSign() bool { - switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: - return true - } - return false -} - -// CipherFunction represents the different block ciphers specified for OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13 -type CipherFunction uint8 - -const ( - Cipher3DES CipherFunction = 2 - CipherCAST5 CipherFunction = 3 - CipherAES128 CipherFunction = 7 - CipherAES192 CipherFunction = 8 - CipherAES256 CipherFunction = 9 -) - -// KeySize returns the key size, in bytes, of cipher. -func (cipher CipherFunction) KeySize() int { - switch cipher { - case Cipher3DES: - return 24 - case CipherCAST5: - return cast5.KeySize - case CipherAES128: - return 16 - case CipherAES192: - return 24 - case CipherAES256: - return 32 - } - return 0 -} - -// blockSize returns the block size, in bytes, of cipher. -func (cipher CipherFunction) blockSize() int { - switch cipher { - case Cipher3DES: - return des.BlockSize - case CipherCAST5: - return 8 - case CipherAES128, CipherAES192, CipherAES256: - return 16 - } - return 0 -} - -// new returns a fresh instance of the given cipher. -func (cipher CipherFunction) new(key []byte) (block cipher.Block) { - switch cipher { - case Cipher3DES: - block, _ = des.NewTripleDESCipher(key) - case CipherCAST5: - block, _ = cast5.NewCipher(key) - case CipherAES128, CipherAES192, CipherAES256: - block, _ = aes.NewCipher(key) - } - return -} - -// readMPI reads a big integer from r. The bit length returned is the bit -// length that was specified in r. This is preserved so that the integer can be -// reserialized exactly. -func readMPI(r io.Reader) (mpi []byte, bitLength uint16, err error) { - var buf [2]byte - _, err = readFull(r, buf[0:]) - if err != nil { - return - } - bitLength = uint16(buf[0])<<8 | uint16(buf[1]) - numBytes := (int(bitLength) + 7) / 8 - mpi = make([]byte, numBytes) - _, err = readFull(r, mpi) - return -} - -// mpiLength returns the length of the given *big.Int when serialized as an -// MPI. -func mpiLength(n *big.Int) (mpiLengthInBytes int) { - mpiLengthInBytes = 2 /* MPI length */ - mpiLengthInBytes += (n.BitLen() + 7) / 8 - return -} - -// writeMPI serializes a big integer to w. -func writeMPI(w io.Writer, bitLength uint16, mpiBytes []byte) (err error) { - _, err = w.Write([]byte{byte(bitLength >> 8), byte(bitLength)}) - if err == nil { - _, err = w.Write(mpiBytes) - } - return -} - -// writeBig serializes a *big.Int to w. -func writeBig(w io.Writer, i *big.Int) error { - return writeMPI(w, uint16(i.BitLen()), i.Bytes()) -} - -// CompressionAlgo Represents the different compression algorithms -// supported by OpenPGP (except for BZIP2, which is not currently -// supported). See Section 9.3 of RFC 4880. -type CompressionAlgo uint8 - -const ( - CompressionNone CompressionAlgo = 0 - CompressionZIP CompressionAlgo = 1 - CompressionZLIB CompressionAlgo = 2 -) diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/private_key.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/private_key.go deleted file mode 100644 index 34734cc6..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/private_key.go +++ /dev/null @@ -1,380 +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 packet - -import ( - "bytes" - "crypto" - "crypto/cipher" - "crypto/dsa" - "crypto/ecdsa" - "crypto/rsa" - "crypto/sha1" - "io" - "io/ioutil" - "math/big" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/elgamal" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" -) - -// PrivateKey represents a possibly encrypted private key. See RFC 4880, -// section 5.5.3. -type PrivateKey struct { - PublicKey - Encrypted bool // if true then the private key is unavailable until Decrypt has been called. - encryptedData []byte - cipher CipherFunction - s2k func(out, in []byte) - PrivateKey interface{} // An *{rsa|dsa|ecdsa}.PrivateKey or a crypto.Signer. - sha1Checksum bool - iv []byte -} - -func NewRSAPrivateKey(currentTime time.Time, priv *rsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewRSAPublicKey(currentTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewDSAPrivateKey(currentTime time.Time, priv *dsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewDSAPublicKey(currentTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewElGamalPrivateKey(currentTime time.Time, priv *elgamal.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewElGamalPublicKey(currentTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewECDSAPrivateKey(currentTime time.Time, priv *ecdsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewECDSAPublicKey(currentTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -// NewSignerPrivateKey creates a sign-only PrivateKey from a crypto.Signer that -// implements RSA or ECDSA. -func NewSignerPrivateKey(currentTime time.Time, signer crypto.Signer) *PrivateKey { - pk := new(PrivateKey) - switch pubkey := signer.Public().(type) { - case rsa.PublicKey: - pk.PublicKey = *NewRSAPublicKey(currentTime, &pubkey) - pk.PubKeyAlgo = PubKeyAlgoRSASignOnly - case ecdsa.PublicKey: - pk.PublicKey = *NewECDSAPublicKey(currentTime, &pubkey) - default: - panic("openpgp: unknown crypto.Signer type in NewSignerPrivateKey") - } - pk.PrivateKey = signer - return pk -} - -func (pk *PrivateKey) parse(r io.Reader) (err error) { - err = (&pk.PublicKey).parse(r) - if err != nil { - return - } - var buf [1]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - - s2kType := buf[0] - - switch s2kType { - case 0: - pk.s2k = nil - pk.Encrypted = false - case 254, 255: - _, err = readFull(r, buf[:]) - if err != nil { - return - } - pk.cipher = CipherFunction(buf[0]) - pk.Encrypted = true - pk.s2k, err = s2k.Parse(r) - if err != nil { - return - } - if s2kType == 254 { - pk.sha1Checksum = true - } - default: - return errors.UnsupportedError("deprecated s2k function in private key") - } - - if pk.Encrypted { - blockSize := pk.cipher.blockSize() - if blockSize == 0 { - return errors.UnsupportedError("unsupported cipher in private key: " + strconv.Itoa(int(pk.cipher))) - } - pk.iv = make([]byte, blockSize) - _, err = readFull(r, pk.iv) - if err != nil { - return - } - } - - pk.encryptedData, err = ioutil.ReadAll(r) - if err != nil { - return - } - - if !pk.Encrypted { - return pk.parsePrivateKey(pk.encryptedData) - } - - return -} - -func mod64kHash(d []byte) uint16 { - var h uint16 - for _, b := range d { - h += uint16(b) - } - return h -} - -func (pk *PrivateKey) Serialize(w io.Writer) (err error) { - // TODO(agl): support encrypted private keys - buf := bytes.NewBuffer(nil) - err = pk.PublicKey.serializeWithoutHeaders(buf) - if err != nil { - return - } - buf.WriteByte(0 /* no encryption */) - - privateKeyBuf := bytes.NewBuffer(nil) - - switch priv := pk.PrivateKey.(type) { - case *rsa.PrivateKey: - err = serializeRSAPrivateKey(privateKeyBuf, priv) - case *dsa.PrivateKey: - err = serializeDSAPrivateKey(privateKeyBuf, priv) - case *elgamal.PrivateKey: - err = serializeElGamalPrivateKey(privateKeyBuf, priv) - case *ecdsa.PrivateKey: - err = serializeECDSAPrivateKey(privateKeyBuf, priv) - default: - err = errors.InvalidArgumentError("unknown private key type") - } - if err != nil { - return - } - - ptype := packetTypePrivateKey - contents := buf.Bytes() - privateKeyBytes := privateKeyBuf.Bytes() - if pk.IsSubkey { - ptype = packetTypePrivateSubkey - } - err = serializeHeader(w, ptype, len(contents)+len(privateKeyBytes)+2) - if err != nil { - return - } - _, err = w.Write(contents) - if err != nil { - return - } - _, err = w.Write(privateKeyBytes) - if err != nil { - return - } - - checksum := mod64kHash(privateKeyBytes) - var checksumBytes [2]byte - checksumBytes[0] = byte(checksum >> 8) - checksumBytes[1] = byte(checksum) - _, err = w.Write(checksumBytes[:]) - - return -} - -func serializeRSAPrivateKey(w io.Writer, priv *rsa.PrivateKey) error { - err := writeBig(w, priv.D) - if err != nil { - return err - } - err = writeBig(w, priv.Primes[1]) - if err != nil { - return err - } - err = writeBig(w, priv.Primes[0]) - if err != nil { - return err - } - return writeBig(w, priv.Precomputed.Qinv) -} - -func serializeDSAPrivateKey(w io.Writer, priv *dsa.PrivateKey) error { - return writeBig(w, priv.X) -} - -func serializeElGamalPrivateKey(w io.Writer, priv *elgamal.PrivateKey) error { - return writeBig(w, priv.X) -} - -func serializeECDSAPrivateKey(w io.Writer, priv *ecdsa.PrivateKey) error { - return writeBig(w, priv.D) -} - -// Decrypt decrypts an encrypted private key using a passphrase. -func (pk *PrivateKey) Decrypt(passphrase []byte) error { - if !pk.Encrypted { - return nil - } - - key := make([]byte, pk.cipher.KeySize()) - pk.s2k(key, passphrase) - block := pk.cipher.new(key) - cfb := cipher.NewCFBDecrypter(block, pk.iv) - - data := make([]byte, len(pk.encryptedData)) - cfb.XORKeyStream(data, pk.encryptedData) - - if pk.sha1Checksum { - if len(data) < sha1.Size { - return errors.StructuralError("truncated private key data") - } - h := sha1.New() - h.Write(data[:len(data)-sha1.Size]) - sum := h.Sum(nil) - if !bytes.Equal(sum, data[len(data)-sha1.Size:]) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-sha1.Size] - } else { - if len(data) < 2 { - return errors.StructuralError("truncated private key data") - } - var sum uint16 - for i := 0; i < len(data)-2; i++ { - sum += uint16(data[i]) - } - if data[len(data)-2] != uint8(sum>>8) || - data[len(data)-1] != uint8(sum) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-2] - } - - return pk.parsePrivateKey(data) -} - -func (pk *PrivateKey) parsePrivateKey(data []byte) (err error) { - switch pk.PublicKey.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoRSAEncryptOnly: - return pk.parseRSAPrivateKey(data) - case PubKeyAlgoDSA: - return pk.parseDSAPrivateKey(data) - case PubKeyAlgoElGamal: - return pk.parseElGamalPrivateKey(data) - case PubKeyAlgoECDSA: - return pk.parseECDSAPrivateKey(data) - } - panic("impossible") -} - -func (pk *PrivateKey) parseRSAPrivateKey(data []byte) (err error) { - rsaPub := pk.PublicKey.PublicKey.(*rsa.PublicKey) - rsaPriv := new(rsa.PrivateKey) - rsaPriv.PublicKey = *rsaPub - - buf := bytes.NewBuffer(data) - d, _, err := readMPI(buf) - if err != nil { - return - } - p, _, err := readMPI(buf) - if err != nil { - return - } - q, _, err := readMPI(buf) - if err != nil { - return - } - - rsaPriv.D = new(big.Int).SetBytes(d) - rsaPriv.Primes = make([]*big.Int, 2) - rsaPriv.Primes[0] = new(big.Int).SetBytes(p) - rsaPriv.Primes[1] = new(big.Int).SetBytes(q) - if err := rsaPriv.Validate(); err != nil { - return err - } - rsaPriv.Precompute() - pk.PrivateKey = rsaPriv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseDSAPrivateKey(data []byte) (err error) { - dsaPub := pk.PublicKey.PublicKey.(*dsa.PublicKey) - dsaPriv := new(dsa.PrivateKey) - dsaPriv.PublicKey = *dsaPub - - buf := bytes.NewBuffer(data) - x, _, err := readMPI(buf) - if err != nil { - return - } - - dsaPriv.X = new(big.Int).SetBytes(x) - pk.PrivateKey = dsaPriv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseElGamalPrivateKey(data []byte) (err error) { - pub := pk.PublicKey.PublicKey.(*elgamal.PublicKey) - priv := new(elgamal.PrivateKey) - priv.PublicKey = *pub - - buf := bytes.NewBuffer(data) - x, _, err := readMPI(buf) - if err != nil { - return - } - - priv.X = new(big.Int).SetBytes(x) - pk.PrivateKey = priv - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -func (pk *PrivateKey) parseECDSAPrivateKey(data []byte) (err error) { - ecdsaPub := pk.PublicKey.PublicKey.(*ecdsa.PublicKey) - - buf := bytes.NewBuffer(data) - d, _, err := readMPI(buf) - if err != nil { - return - } - - pk.PrivateKey = &ecdsa.PrivateKey{ - PublicKey: *ecdsaPub, - D: new(big.Int).SetBytes(d), - } - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/public_key.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/public_key.go deleted file mode 100644 index ead26233..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/public_key.go +++ /dev/null @@ -1,748 +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 packet - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rsa" - "crypto/sha1" - _ "crypto/sha256" - _ "crypto/sha512" - "encoding/binary" - "fmt" - "hash" - "io" - "math/big" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/elgamal" - "golang.org/x/crypto/openpgp/errors" -) - -var ( - // NIST curve P-256 - oidCurveP256 []byte = []byte{0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07} - // NIST curve P-384 - oidCurveP384 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x22} - // NIST curve P-521 - oidCurveP521 []byte = []byte{0x2B, 0x81, 0x04, 0x00, 0x23} -) - -const maxOIDLength = 8 - -// ecdsaKey stores the algorithm-specific fields for ECDSA keys. -// as defined in RFC 6637, Section 9. -type ecdsaKey struct { - // oid contains the OID byte sequence identifying the elliptic curve used - oid []byte - // p contains the elliptic curve point that represents the public key - p parsedMPI -} - -// parseOID reads the OID for the curve as defined in RFC 6637, Section 9. -func parseOID(r io.Reader) (oid []byte, err error) { - buf := make([]byte, maxOIDLength) - if _, err = readFull(r, buf[:1]); err != nil { - return - } - oidLen := buf[0] - if int(oidLen) > len(buf) { - err = errors.UnsupportedError("invalid oid length: " + strconv.Itoa(int(oidLen))) - return - } - oid = buf[:oidLen] - _, err = readFull(r, oid) - return -} - -func (f *ecdsaKey) parse(r io.Reader) (err error) { - if f.oid, err = parseOID(r); err != nil { - return err - } - f.p.bytes, f.p.bitLength, err = readMPI(r) - return -} - -func (f *ecdsaKey) serialize(w io.Writer) (err error) { - buf := make([]byte, maxOIDLength+1) - buf[0] = byte(len(f.oid)) - copy(buf[1:], f.oid) - if _, err = w.Write(buf[:len(f.oid)+1]); err != nil { - return - } - return writeMPIs(w, f.p) -} - -func (f *ecdsaKey) newECDSA() (*ecdsa.PublicKey, error) { - var c elliptic.Curve - if bytes.Equal(f.oid, oidCurveP256) { - c = elliptic.P256() - } else if bytes.Equal(f.oid, oidCurveP384) { - c = elliptic.P384() - } else if bytes.Equal(f.oid, oidCurveP521) { - c = elliptic.P521() - } else { - return nil, errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", f.oid)) - } - x, y := elliptic.Unmarshal(c, f.p.bytes) - if x == nil { - return nil, errors.UnsupportedError("failed to parse EC point") - } - return &ecdsa.PublicKey{Curve: c, X: x, Y: y}, nil -} - -func (f *ecdsaKey) byteLen() int { - return 1 + len(f.oid) + 2 + len(f.p.bytes) -} - -type kdfHashFunction byte -type kdfAlgorithm byte - -// ecdhKdf stores key derivation function parameters -// used for ECDH encryption. See RFC 6637, Section 9. -type ecdhKdf struct { - KdfHash kdfHashFunction - KdfAlgo kdfAlgorithm -} - -func (f *ecdhKdf) parse(r io.Reader) (err error) { - buf := make([]byte, 1) - if _, err = readFull(r, buf); err != nil { - return - } - kdfLen := int(buf[0]) - if kdfLen < 3 { - return errors.UnsupportedError("Unsupported ECDH KDF length: " + strconv.Itoa(kdfLen)) - } - buf = make([]byte, kdfLen) - if _, err = readFull(r, buf); err != nil { - return - } - reserved := int(buf[0]) - f.KdfHash = kdfHashFunction(buf[1]) - f.KdfAlgo = kdfAlgorithm(buf[2]) - if reserved != 0x01 { - return errors.UnsupportedError("Unsupported KDF reserved field: " + strconv.Itoa(reserved)) - } - return -} - -func (f *ecdhKdf) serialize(w io.Writer) (err error) { - buf := make([]byte, 4) - // See RFC 6637, Section 9, Algorithm-Specific Fields for ECDH keys. - buf[0] = byte(0x03) // Length of the following fields - buf[1] = byte(0x01) // Reserved for future extensions, must be 1 for now - buf[2] = byte(f.KdfHash) - buf[3] = byte(f.KdfAlgo) - _, err = w.Write(buf[:]) - return -} - -func (f *ecdhKdf) byteLen() int { - return 4 -} - -// PublicKey represents an OpenPGP public key. See RFC 4880, section 5.5.2. -type PublicKey struct { - CreationTime time.Time - PubKeyAlgo PublicKeyAlgorithm - PublicKey interface{} // *rsa.PublicKey, *dsa.PublicKey or *ecdsa.PublicKey - Fingerprint [20]byte - KeyId uint64 - IsSubkey bool - - n, e, p, q, g, y parsedMPI - - // RFC 6637 fields - ec *ecdsaKey - ecdh *ecdhKdf -} - -// signingKey provides a convenient abstraction over signature verification -// for v3 and v4 public keys. -type signingKey interface { - SerializeSignaturePrefix(io.Writer) - serializeWithoutHeaders(io.Writer) error -} - -func fromBig(n *big.Int) parsedMPI { - return parsedMPI{ - bytes: n.Bytes(), - bitLength: uint16(n.BitLen()), - } -} - -// NewRSAPublicKey returns a PublicKey that wraps the given rsa.PublicKey. -func NewRSAPublicKey(creationTime time.Time, pub *rsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoRSA, - PublicKey: pub, - n: fromBig(pub.N), - e: fromBig(big.NewInt(int64(pub.E))), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -// NewDSAPublicKey returns a PublicKey that wraps the given dsa.PublicKey. -func NewDSAPublicKey(creationTime time.Time, pub *dsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoDSA, - PublicKey: pub, - p: fromBig(pub.P), - q: fromBig(pub.Q), - g: fromBig(pub.G), - y: fromBig(pub.Y), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -// NewElGamalPublicKey returns a PublicKey that wraps the given elgamal.PublicKey. -func NewElGamalPublicKey(creationTime time.Time, pub *elgamal.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoElGamal, - PublicKey: pub, - p: fromBig(pub.P), - g: fromBig(pub.G), - y: fromBig(pub.Y), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -func NewECDSAPublicKey(creationTime time.Time, pub *ecdsa.PublicKey) *PublicKey { - pk := &PublicKey{ - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoECDSA, - PublicKey: pub, - ec: new(ecdsaKey), - } - - switch pub.Curve { - case elliptic.P256(): - pk.ec.oid = oidCurveP256 - case elliptic.P384(): - pk.ec.oid = oidCurveP384 - case elliptic.P521(): - pk.ec.oid = oidCurveP521 - default: - panic("unknown elliptic curve") - } - - pk.ec.p.bytes = elliptic.Marshal(pub.Curve, pub.X, pub.Y) - pk.ec.p.bitLength = uint16(8 * len(pk.ec.p.bytes)) - - pk.setFingerPrintAndKeyId() - return pk -} - -func (pk *PublicKey) parse(r io.Reader) (err error) { - // RFC 4880, section 5.5.2 - var buf [6]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != 4 { - return errors.UnsupportedError("public key version") - } - pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) - pk.PubKeyAlgo = PublicKeyAlgorithm(buf[5]) - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - err = pk.parseRSA(r) - case PubKeyAlgoDSA: - err = pk.parseDSA(r) - case PubKeyAlgoElGamal: - err = pk.parseElGamal(r) - case PubKeyAlgoECDSA: - pk.ec = new(ecdsaKey) - if err = pk.ec.parse(r); err != nil { - return err - } - pk.PublicKey, err = pk.ec.newECDSA() - case PubKeyAlgoECDH: - pk.ec = new(ecdsaKey) - if err = pk.ec.parse(r); err != nil { - return - } - pk.ecdh = new(ecdhKdf) - if err = pk.ecdh.parse(r); err != nil { - return - } - // The ECDH key is stored in an ecdsa.PublicKey for convenience. - pk.PublicKey, err = pk.ec.newECDSA() - default: - err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) - } - if err != nil { - return - } - - pk.setFingerPrintAndKeyId() - return -} - -func (pk *PublicKey) setFingerPrintAndKeyId() { - // RFC 4880, section 12.2 - fingerPrint := sha1.New() - pk.SerializeSignaturePrefix(fingerPrint) - pk.serializeWithoutHeaders(fingerPrint) - copy(pk.Fingerprint[:], fingerPrint.Sum(nil)) - pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[12:20]) -} - -// parseRSA parses RSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseRSA(r io.Reader) (err error) { - pk.n.bytes, pk.n.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.e.bytes, pk.e.bitLength, err = readMPI(r) - if err != nil { - return - } - - if len(pk.e.bytes) > 3 { - err = errors.UnsupportedError("large public exponent") - return - } - rsa := &rsa.PublicKey{ - N: new(big.Int).SetBytes(pk.n.bytes), - E: 0, - } - for i := 0; i < len(pk.e.bytes); i++ { - rsa.E <<= 8 - rsa.E |= int(pk.e.bytes[i]) - } - pk.PublicKey = rsa - return -} - -// parseDSA parses DSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseDSA(r io.Reader) (err error) { - pk.p.bytes, pk.p.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.q.bytes, pk.q.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.g.bytes, pk.g.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.y.bytes, pk.y.bitLength, err = readMPI(r) - if err != nil { - return - } - - dsa := new(dsa.PublicKey) - dsa.P = new(big.Int).SetBytes(pk.p.bytes) - dsa.Q = new(big.Int).SetBytes(pk.q.bytes) - dsa.G = new(big.Int).SetBytes(pk.g.bytes) - dsa.Y = new(big.Int).SetBytes(pk.y.bytes) - pk.PublicKey = dsa - return -} - -// parseElGamal parses ElGamal public key material from the given Reader. See -// RFC 4880, section 5.5.2. -func (pk *PublicKey) parseElGamal(r io.Reader) (err error) { - pk.p.bytes, pk.p.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.g.bytes, pk.g.bitLength, err = readMPI(r) - if err != nil { - return - } - pk.y.bytes, pk.y.bitLength, err = readMPI(r) - if err != nil { - return - } - - elgamal := new(elgamal.PublicKey) - elgamal.P = new(big.Int).SetBytes(pk.p.bytes) - elgamal.G = new(big.Int).SetBytes(pk.g.bytes) - elgamal.Y = new(big.Int).SetBytes(pk.y.bytes) - pk.PublicKey = elgamal - return -} - -// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. -// The prefix is used when calculating a signature over this public key. See -// RFC 4880, section 5.2.4. -func (pk *PublicKey) SerializeSignaturePrefix(h io.Writer) { - var pLength uint16 - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - pLength += 2 + uint16(len(pk.n.bytes)) - pLength += 2 + uint16(len(pk.e.bytes)) - case PubKeyAlgoDSA: - pLength += 2 + uint16(len(pk.p.bytes)) - pLength += 2 + uint16(len(pk.q.bytes)) - pLength += 2 + uint16(len(pk.g.bytes)) - pLength += 2 + uint16(len(pk.y.bytes)) - case PubKeyAlgoElGamal: - pLength += 2 + uint16(len(pk.p.bytes)) - pLength += 2 + uint16(len(pk.g.bytes)) - pLength += 2 + uint16(len(pk.y.bytes)) - case PubKeyAlgoECDSA: - pLength += uint16(pk.ec.byteLen()) - case PubKeyAlgoECDH: - pLength += uint16(pk.ec.byteLen()) - pLength += uint16(pk.ecdh.byteLen()) - default: - panic("unknown public key algorithm") - } - pLength += 6 - h.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) - return -} - -func (pk *PublicKey) Serialize(w io.Writer) (err error) { - length := 6 // 6 byte header - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - length += 2 + len(pk.n.bytes) - length += 2 + len(pk.e.bytes) - case PubKeyAlgoDSA: - length += 2 + len(pk.p.bytes) - length += 2 + len(pk.q.bytes) - length += 2 + len(pk.g.bytes) - length += 2 + len(pk.y.bytes) - case PubKeyAlgoElGamal: - length += 2 + len(pk.p.bytes) - length += 2 + len(pk.g.bytes) - length += 2 + len(pk.y.bytes) - case PubKeyAlgoECDSA: - length += pk.ec.byteLen() - case PubKeyAlgoECDH: - length += pk.ec.byteLen() - length += pk.ecdh.byteLen() - default: - panic("unknown public key algorithm") - } - - packetType := packetTypePublicKey - if pk.IsSubkey { - packetType = packetTypePublicSubkey - } - err = serializeHeader(w, packetType, length) - if err != nil { - return - } - return pk.serializeWithoutHeaders(w) -} - -// serializeWithoutHeaders marshals the PublicKey to w in the form of an -// OpenPGP public key packet, not including the packet header. -func (pk *PublicKey) serializeWithoutHeaders(w io.Writer) (err error) { - var buf [6]byte - buf[0] = 4 - t := uint32(pk.CreationTime.Unix()) - buf[1] = byte(t >> 24) - buf[2] = byte(t >> 16) - buf[3] = byte(t >> 8) - buf[4] = byte(t) - buf[5] = byte(pk.PubKeyAlgo) - - _, err = w.Write(buf[:]) - if err != nil { - return - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - return writeMPIs(w, pk.n, pk.e) - case PubKeyAlgoDSA: - return writeMPIs(w, pk.p, pk.q, pk.g, pk.y) - case PubKeyAlgoElGamal: - return writeMPIs(w, pk.p, pk.g, pk.y) - case PubKeyAlgoECDSA: - return pk.ec.serialize(w) - case PubKeyAlgoECDH: - if err = pk.ec.serialize(w); err != nil { - return - } - return pk.ecdh.serialize(w) - } - return errors.InvalidArgumentError("bad public-key algorithm") -} - -// CanSign returns true iff this public key can generate signatures -func (pk *PublicKey) CanSign() bool { - return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly && pk.PubKeyAlgo != PubKeyAlgoElGamal -} - -// VerifySignature returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKey) VerifySignature(signed hash.Hash, sig *Signature) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - signed.Write(sig.HashSuffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - rsaPublicKey, _ := pk.PublicKey.(*rsa.PublicKey) - err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes) - if err != nil { - return errors.SignatureError("RSA verification failure") - } - return nil - case PubKeyAlgoDSA: - dsaPublicKey, _ := pk.PublicKey.(*dsa.PublicKey) - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 - if len(hashBytes) > subgroupSize { - hashBytes = hashBytes[:subgroupSize] - } - if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { - return errors.SignatureError("DSA verification failure") - } - return nil - case PubKeyAlgoECDSA: - ecdsaPublicKey := pk.PublicKey.(*ecdsa.PublicKey) - if !ecdsa.Verify(ecdsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.ECDSASigR.bytes), new(big.Int).SetBytes(sig.ECDSASigS.bytes)) { - return errors.SignatureError("ECDSA verification failure") - } - return nil - default: - return errors.SignatureError("Unsupported public key algorithm used in signature") - } -} - -// VerifySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKey) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - suffix := make([]byte, 5) - suffix[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) - signed.Write(suffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - rsaPublicKey := pk.PublicKey.(*rsa.PublicKey) - if err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes); err != nil { - return errors.SignatureError("RSA verification failure") - } - return - case PubKeyAlgoDSA: - dsaPublicKey := pk.PublicKey.(*dsa.PublicKey) - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 - if len(hashBytes) > subgroupSize { - hashBytes = hashBytes[:subgroupSize] - } - if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.bytes), new(big.Int).SetBytes(sig.DSASigS.bytes)) { - return errors.SignatureError("DSA verification failure") - } - return nil - default: - panic("shouldn't happen") - } -} - -// keySignatureHash returns a Hash of the message that needs to be signed for -// pk to assert a subkey relationship to signed. -func keySignatureHash(pk, signed signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - signed.SerializeSignaturePrefix(h) - signed.serializeWithoutHeaders(h) - return -} - -// VerifyKeySignature returns nil iff sig is a valid signature, made by this -// public key, of signed. -func (pk *PublicKey) VerifyKeySignature(signed *PublicKey, sig *Signature) error { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - if err = pk.VerifySignature(h, sig); err != nil { - return err - } - - if sig.FlagSign { - // Signing subkeys must be cross-signed. See - // https://www.gnupg.org/faq/subkey-cross-certify.html. - if sig.EmbeddedSignature == nil { - return errors.StructuralError("signing subkey is missing cross-signature") - } - // Verify the cross-signature. This is calculated over the same - // data as the main signature, so we cannot just recursively - // call signed.VerifyKeySignature(...) - if h, err = keySignatureHash(pk, signed, sig.EmbeddedSignature.Hash); err != nil { - return errors.StructuralError("error while hashing for cross-signature: " + err.Error()) - } - if err := signed.VerifySignature(h, sig.EmbeddedSignature); err != nil { - return errors.StructuralError("error while verifying cross-signature: " + err.Error()) - } - } - - return nil -} - -func keyRevocationHash(pk signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - return -} - -// VerifyRevocationSignature returns nil iff sig is a valid signature, made by this -// public key. -func (pk *PublicKey) VerifyRevocationSignature(sig *Signature) (err error) { - h, err := keyRevocationHash(pk, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// userIdSignatureHash returns a Hash of the message that needs to be signed -// to assert that pk is a valid key for id. -func userIdSignatureHash(id string, pk *PublicKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - var buf [5]byte - buf[0] = 0xb4 - buf[1] = byte(len(id) >> 24) - buf[2] = byte(len(id) >> 16) - buf[3] = byte(len(id) >> 8) - buf[4] = byte(len(id)) - h.Write(buf[:]) - h.Write([]byte(id)) - - return -} - -// VerifyUserIdSignature returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKey) VerifyUserIdSignature(id string, pub *PublicKey, sig *Signature) (err error) { - h, err := userIdSignatureHash(id, pub, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKey) VerifyUserIdSignatureV3(id string, pub *PublicKey, sig *SignatureV3) (err error) { - h, err := userIdSignatureV3Hash(id, pub, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// KeyIdString returns the public key's fingerprint in capital hex -// (e.g. "6C7EE1B8621CC013"). -func (pk *PublicKey) KeyIdString() string { - return fmt.Sprintf("%X", pk.Fingerprint[12:20]) -} - -// KeyIdShortString returns the short form of public key's fingerprint -// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). -func (pk *PublicKey) KeyIdShortString() string { - return fmt.Sprintf("%X", pk.Fingerprint[16:20]) -} - -// A parsedMPI is used to store the contents of a big integer, along with the -// bit length that was specified in the original input. This allows the MPI to -// be reserialized exactly. -type parsedMPI struct { - bytes []byte - bitLength uint16 -} - -// writeMPIs is a utility function for serializing several big integers to the -// given Writer. -func writeMPIs(w io.Writer, mpis ...parsedMPI) (err error) { - for _, mpi := range mpis { - err = writeMPI(w, mpi.bitLength, mpi.bytes) - if err != nil { - return - } - } - return -} - -// BitLength returns the bit length for the given public key. -func (pk *PublicKey) BitLength() (bitLength uint16, err error) { - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - bitLength = pk.n.bitLength - case PubKeyAlgoDSA: - bitLength = pk.p.bitLength - case PubKeyAlgoElGamal: - bitLength = pk.p.bitLength - default: - err = errors.InvalidArgumentError("bad public-key algorithm") - } - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go deleted file mode 100644 index 5daf7b6c..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/public_key_v3.go +++ /dev/null @@ -1,279 +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 packet - -import ( - "crypto" - "crypto/md5" - "crypto/rsa" - "encoding/binary" - "fmt" - "hash" - "io" - "math/big" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/errors" -) - -// PublicKeyV3 represents older, version 3 public keys. These keys are less secure and -// should not be used for signing or encrypting. They are supported here only for -// parsing version 3 key material and validating signatures. -// See RFC 4880, section 5.5.2. -type PublicKeyV3 struct { - CreationTime time.Time - DaysToExpire uint16 - PubKeyAlgo PublicKeyAlgorithm - PublicKey *rsa.PublicKey - Fingerprint [16]byte - KeyId uint64 - IsSubkey bool - - n, e parsedMPI -} - -// newRSAPublicKeyV3 returns a PublicKey that wraps the given rsa.PublicKey. -// Included here for testing purposes only. RFC 4880, section 5.5.2: -// "an implementation MUST NOT generate a V3 key, but MAY accept it." -func newRSAPublicKeyV3(creationTime time.Time, pub *rsa.PublicKey) *PublicKeyV3 { - pk := &PublicKeyV3{ - CreationTime: creationTime, - PublicKey: pub, - n: fromBig(pub.N), - e: fromBig(big.NewInt(int64(pub.E))), - } - - pk.setFingerPrintAndKeyId() - return pk -} - -func (pk *PublicKeyV3) parse(r io.Reader) (err error) { - // RFC 4880, section 5.5.2 - var buf [8]byte - if _, err = readFull(r, buf[:]); err != nil { - return - } - if buf[0] < 2 || buf[0] > 3 { - return errors.UnsupportedError("public key version") - } - pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) - pk.DaysToExpire = binary.BigEndian.Uint16(buf[5:7]) - pk.PubKeyAlgo = PublicKeyAlgorithm(buf[7]) - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - err = pk.parseRSA(r) - default: - err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) - } - if err != nil { - return - } - - pk.setFingerPrintAndKeyId() - return -} - -func (pk *PublicKeyV3) setFingerPrintAndKeyId() { - // RFC 4880, section 12.2 - fingerPrint := md5.New() - fingerPrint.Write(pk.n.bytes) - fingerPrint.Write(pk.e.bytes) - fingerPrint.Sum(pk.Fingerprint[:0]) - pk.KeyId = binary.BigEndian.Uint64(pk.n.bytes[len(pk.n.bytes)-8:]) -} - -// parseRSA parses RSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKeyV3) parseRSA(r io.Reader) (err error) { - if pk.n.bytes, pk.n.bitLength, err = readMPI(r); err != nil { - return - } - if pk.e.bytes, pk.e.bitLength, err = readMPI(r); err != nil { - return - } - - // RFC 4880 Section 12.2 requires the low 8 bytes of the - // modulus to form the key id. - if len(pk.n.bytes) < 8 { - return errors.StructuralError("v3 public key modulus is too short") - } - if len(pk.e.bytes) > 3 { - err = errors.UnsupportedError("large public exponent") - return - } - rsa := &rsa.PublicKey{N: new(big.Int).SetBytes(pk.n.bytes)} - for i := 0; i < len(pk.e.bytes); i++ { - rsa.E <<= 8 - rsa.E |= int(pk.e.bytes[i]) - } - pk.PublicKey = rsa - return -} - -// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. -// The prefix is used when calculating a signature over this public key. See -// RFC 4880, section 5.2.4. -func (pk *PublicKeyV3) SerializeSignaturePrefix(w io.Writer) { - var pLength uint16 - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - pLength += 2 + uint16(len(pk.n.bytes)) - pLength += 2 + uint16(len(pk.e.bytes)) - default: - panic("unknown public key algorithm") - } - pLength += 6 - w.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) - return -} - -func (pk *PublicKeyV3) Serialize(w io.Writer) (err error) { - length := 8 // 8 byte header - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - length += 2 + len(pk.n.bytes) - length += 2 + len(pk.e.bytes) - default: - panic("unknown public key algorithm") - } - - packetType := packetTypePublicKey - if pk.IsSubkey { - packetType = packetTypePublicSubkey - } - if err = serializeHeader(w, packetType, length); err != nil { - return - } - return pk.serializeWithoutHeaders(w) -} - -// serializeWithoutHeaders marshals the PublicKey to w in the form of an -// OpenPGP public key packet, not including the packet header. -func (pk *PublicKeyV3) serializeWithoutHeaders(w io.Writer) (err error) { - var buf [8]byte - // Version 3 - buf[0] = 3 - // Creation time - t := uint32(pk.CreationTime.Unix()) - buf[1] = byte(t >> 24) - buf[2] = byte(t >> 16) - buf[3] = byte(t >> 8) - buf[4] = byte(t) - // Days to expire - buf[5] = byte(pk.DaysToExpire >> 8) - buf[6] = byte(pk.DaysToExpire) - // Public key algorithm - buf[7] = byte(pk.PubKeyAlgo) - - if _, err = w.Write(buf[:]); err != nil { - return - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - return writeMPIs(w, pk.n, pk.e) - } - return errors.InvalidArgumentError("bad public-key algorithm") -} - -// CanSign returns true iff this public key can generate signatures -func (pk *PublicKeyV3) CanSign() bool { - return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly -} - -// VerifySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKeyV3) VerifySignatureV3(signed hash.Hash, sig *SignatureV3) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - - suffix := make([]byte, 5) - suffix[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(suffix[1:], uint32(sig.CreationTime.Unix())) - signed.Write(suffix) - hashBytes := signed.Sum(nil) - - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - if err = rsa.VerifyPKCS1v15(pk.PublicKey, sig.Hash, hashBytes, sig.RSASignature.bytes); err != nil { - return errors.SignatureError("RSA verification failure") - } - return - default: - // V3 public keys only support RSA. - panic("shouldn't happen") - } -} - -// VerifyUserIdSignatureV3 returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKeyV3) VerifyUserIdSignatureV3(id string, pub *PublicKeyV3, sig *SignatureV3) (err error) { - h, err := userIdSignatureV3Hash(id, pk, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// VerifyKeySignatureV3 returns nil iff sig is a valid signature, made by this -// public key, of signed. -func (pk *PublicKeyV3) VerifyKeySignatureV3(signed *PublicKeyV3, sig *SignatureV3) (err error) { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignatureV3(h, sig) -} - -// userIdSignatureV3Hash returns a Hash of the message that needs to be signed -// to assert that pk is a valid key for id. -func userIdSignatureV3Hash(id string, pk signingKey, hfn crypto.Hash) (h hash.Hash, err error) { - if !hfn.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hfn.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - h.Write([]byte(id)) - - return -} - -// KeyIdString returns the public key's fingerprint in capital hex -// (e.g. "6C7EE1B8621CC013"). -func (pk *PublicKeyV3) KeyIdString() string { - return fmt.Sprintf("%X", pk.KeyId) -} - -// KeyIdShortString returns the short form of public key's fingerprint -// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). -func (pk *PublicKeyV3) KeyIdShortString() string { - return fmt.Sprintf("%X", pk.KeyId&0xFFFFFFFF) -} - -// BitLength returns the bit length for the given public key. -func (pk *PublicKeyV3) BitLength() (bitLength uint16, err error) { - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - bitLength = pk.n.bitLength - default: - err = errors.InvalidArgumentError("bad public-key algorithm") - } - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/reader.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/reader.go deleted file mode 100644 index 34bc7c61..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/reader.go +++ /dev/null @@ -1,76 +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 packet - -import ( - "golang.org/x/crypto/openpgp/errors" - "io" -) - -// Reader reads packets from an io.Reader and allows packets to be 'unread' so -// that they result from the next call to Next. -type Reader struct { - q []Packet - readers []io.Reader -} - -// New io.Readers are pushed when a compressed or encrypted packet is processed -// and recursively treated as a new source of packets. However, a carefully -// crafted packet can trigger an infinite recursive sequence of packets. See -// http://mumble.net/~campbell/misc/pgp-quine -// https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4402 -// This constant limits the number of recursive packets that may be pushed. -const maxReaders = 32 - -// Next returns the most recently unread Packet, or reads another packet from -// the top-most io.Reader. Unknown packet types are skipped. -func (r *Reader) Next() (p Packet, err error) { - if len(r.q) > 0 { - p = r.q[len(r.q)-1] - r.q = r.q[:len(r.q)-1] - return - } - - for len(r.readers) > 0 { - p, err = Read(r.readers[len(r.readers)-1]) - if err == nil { - return - } - if err == io.EOF { - r.readers = r.readers[:len(r.readers)-1] - continue - } - if _, ok := err.(errors.UnknownPacketTypeError); !ok { - return nil, err - } - } - - return nil, io.EOF -} - -// Push causes the Reader to start reading from a new io.Reader. When an EOF -// error is seen from the new io.Reader, it is popped and the Reader continues -// to read from the next most recent io.Reader. Push returns a StructuralError -// if pushing the reader would exceed the maximum recursion level, otherwise it -// returns nil. -func (r *Reader) Push(reader io.Reader) (err error) { - if len(r.readers) >= maxReaders { - return errors.StructuralError("too many layers of packets") - } - r.readers = append(r.readers, reader) - return nil -} - -// Unread causes the given Packet to be returned from the next call to Next. -func (r *Reader) Unread(p Packet) { - r.q = append(r.q, p) -} - -func NewReader(r io.Reader) *Reader { - return &Reader{ - q: nil, - readers: []io.Reader{r}, - } -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/signature.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/signature.go deleted file mode 100644 index 6ce0cbed..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/signature.go +++ /dev/null @@ -1,731 +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 packet - -import ( - "bytes" - "crypto" - "crypto/dsa" - "crypto/ecdsa" - "encoding/asn1" - "encoding/binary" - "hash" - "io" - "math/big" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" -) - -const ( - // See RFC 4880, section 5.2.3.21 for details. - KeyFlagCertify = 1 << iota - KeyFlagSign - KeyFlagEncryptCommunications - KeyFlagEncryptStorage -) - -// Signature represents a signature. See RFC 4880, section 5.2. -type Signature struct { - SigType SignatureType - PubKeyAlgo PublicKeyAlgorithm - Hash crypto.Hash - - // HashSuffix is extra data that is hashed in after the signed data. - HashSuffix []byte - // HashTag contains the first two bytes of the hash for fast rejection - // of bad signed data. - HashTag [2]byte - CreationTime time.Time - - RSASignature parsedMPI - DSASigR, DSASigS parsedMPI - ECDSASigR, ECDSASigS parsedMPI - - // rawSubpackets contains the unparsed subpackets, in order. - rawSubpackets []outputSubpacket - - // The following are optional so are nil when not included in the - // signature. - - SigLifetimeSecs, KeyLifetimeSecs *uint32 - PreferredSymmetric, PreferredHash, PreferredCompression []uint8 - IssuerKeyId *uint64 - IsPrimaryId *bool - - // FlagsValid is set if any flags were given. See RFC 4880, section - // 5.2.3.21 for details. - FlagsValid bool - FlagCertify, FlagSign, FlagEncryptCommunications, FlagEncryptStorage bool - - // RevocationReason is set if this signature has been revoked. - // See RFC 4880, section 5.2.3.23 for details. - RevocationReason *uint8 - RevocationReasonText string - - // MDC is set if this signature has a feature packet that indicates - // support for MDC subpackets. - MDC bool - - // EmbeddedSignature, if non-nil, is a signature of the parent key, by - // this key. This prevents an attacker from claiming another's signing - // subkey as their own. - EmbeddedSignature *Signature - - outSubpackets []outputSubpacket -} - -func (sig *Signature) parse(r io.Reader) (err error) { - // RFC 4880, section 5.2.3 - var buf [5]byte - _, err = readFull(r, buf[:1]) - if err != nil { - return - } - if buf[0] != 4 { - err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) - return - } - - _, err = readFull(r, buf[:5]) - if err != nil { - return - } - sig.SigType = SignatureType(buf[0]) - sig.PubKeyAlgo = PublicKeyAlgorithm(buf[1]) - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA: - default: - err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) - return - } - - var ok bool - sig.Hash, ok = s2k.HashIdToHash(buf[2]) - if !ok { - return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) - } - - hashedSubpacketsLength := int(buf[3])<<8 | int(buf[4]) - l := 6 + hashedSubpacketsLength - sig.HashSuffix = make([]byte, l+6) - sig.HashSuffix[0] = 4 - copy(sig.HashSuffix[1:], buf[:5]) - hashedSubpackets := sig.HashSuffix[6:l] - _, err = readFull(r, hashedSubpackets) - if err != nil { - return - } - // See RFC 4880, section 5.2.4 - trailer := sig.HashSuffix[l:] - trailer[0] = 4 - trailer[1] = 0xff - trailer[2] = uint8(l >> 24) - trailer[3] = uint8(l >> 16) - trailer[4] = uint8(l >> 8) - trailer[5] = uint8(l) - - err = parseSignatureSubpackets(sig, hashedSubpackets, true) - if err != nil { - return - } - - _, err = readFull(r, buf[:2]) - if err != nil { - return - } - unhashedSubpacketsLength := int(buf[0])<<8 | int(buf[1]) - unhashedSubpackets := make([]byte, unhashedSubpacketsLength) - _, err = readFull(r, unhashedSubpackets) - if err != nil { - return - } - err = parseSignatureSubpackets(sig, unhashedSubpackets, false) - if err != nil { - return - } - - _, err = readFull(r, sig.HashTag[:2]) - if err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) - case PubKeyAlgoDSA: - sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r) - if err == nil { - sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) - } - case PubKeyAlgoECDSA: - sig.ECDSASigR.bytes, sig.ECDSASigR.bitLength, err = readMPI(r) - if err == nil { - sig.ECDSASigS.bytes, sig.ECDSASigS.bitLength, err = readMPI(r) - } - default: - panic("unreachable") - } - return -} - -// parseSignatureSubpackets parses subpackets of the main signature packet. See -// RFC 4880, section 5.2.3.1. -func parseSignatureSubpackets(sig *Signature, subpackets []byte, isHashed bool) (err error) { - for len(subpackets) > 0 { - subpackets, err = parseSignatureSubpacket(sig, subpackets, isHashed) - if err != nil { - return - } - } - - if sig.CreationTime.IsZero() { - err = errors.StructuralError("no creation time in signature") - } - - return -} - -type signatureSubpacketType uint8 - -const ( - creationTimeSubpacket signatureSubpacketType = 2 - signatureExpirationSubpacket signatureSubpacketType = 3 - keyExpirationSubpacket signatureSubpacketType = 9 - prefSymmetricAlgosSubpacket signatureSubpacketType = 11 - issuerSubpacket signatureSubpacketType = 16 - prefHashAlgosSubpacket signatureSubpacketType = 21 - prefCompressionSubpacket signatureSubpacketType = 22 - primaryUserIdSubpacket signatureSubpacketType = 25 - keyFlagsSubpacket signatureSubpacketType = 27 - reasonForRevocationSubpacket signatureSubpacketType = 29 - featuresSubpacket signatureSubpacketType = 30 - embeddedSignatureSubpacket signatureSubpacketType = 32 -) - -// parseSignatureSubpacket parses a single subpacket. len(subpacket) is >= 1. -func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (rest []byte, err error) { - // RFC 4880, section 5.2.3.1 - var ( - length uint32 - packetType signatureSubpacketType - isCritical bool - ) - switch { - case subpacket[0] < 192: - length = uint32(subpacket[0]) - subpacket = subpacket[1:] - case subpacket[0] < 255: - if len(subpacket) < 2 { - goto Truncated - } - length = uint32(subpacket[0]-192)<<8 + uint32(subpacket[1]) + 192 - subpacket = subpacket[2:] - default: - if len(subpacket) < 5 { - goto Truncated - } - length = uint32(subpacket[1])<<24 | - uint32(subpacket[2])<<16 | - uint32(subpacket[3])<<8 | - uint32(subpacket[4]) - subpacket = subpacket[5:] - } - if length > uint32(len(subpacket)) { - goto Truncated - } - rest = subpacket[length:] - subpacket = subpacket[:length] - if len(subpacket) == 0 { - err = errors.StructuralError("zero length signature subpacket") - return - } - packetType = signatureSubpacketType(subpacket[0] & 0x7f) - isCritical = subpacket[0]&0x80 == 0x80 - subpacket = subpacket[1:] - sig.rawSubpackets = append(sig.rawSubpackets, outputSubpacket{isHashed, packetType, isCritical, subpacket}) - switch packetType { - case creationTimeSubpacket: - if !isHashed { - err = errors.StructuralError("signature creation time in non-hashed area") - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("signature creation time not four bytes") - return - } - t := binary.BigEndian.Uint32(subpacket) - sig.CreationTime = time.Unix(int64(t), 0) - case signatureExpirationSubpacket: - // Signature expiration time, section 5.2.3.10 - if !isHashed { - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("expiration subpacket with bad length") - return - } - sig.SigLifetimeSecs = new(uint32) - *sig.SigLifetimeSecs = binary.BigEndian.Uint32(subpacket) - case keyExpirationSubpacket: - // Key expiration time, section 5.2.3.6 - if !isHashed { - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("key expiration subpacket with bad length") - return - } - sig.KeyLifetimeSecs = new(uint32) - *sig.KeyLifetimeSecs = binary.BigEndian.Uint32(subpacket) - case prefSymmetricAlgosSubpacket: - // Preferred symmetric algorithms, section 5.2.3.7 - if !isHashed { - return - } - sig.PreferredSymmetric = make([]byte, len(subpacket)) - copy(sig.PreferredSymmetric, subpacket) - case issuerSubpacket: - // Issuer, section 5.2.3.5 - if len(subpacket) != 8 { - err = errors.StructuralError("issuer subpacket with bad length") - return - } - sig.IssuerKeyId = new(uint64) - *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket) - case prefHashAlgosSubpacket: - // Preferred hash algorithms, section 5.2.3.8 - if !isHashed { - return - } - sig.PreferredHash = make([]byte, len(subpacket)) - copy(sig.PreferredHash, subpacket) - case prefCompressionSubpacket: - // Preferred compression algorithms, section 5.2.3.9 - if !isHashed { - return - } - sig.PreferredCompression = make([]byte, len(subpacket)) - copy(sig.PreferredCompression, subpacket) - case primaryUserIdSubpacket: - // Primary User ID, section 5.2.3.19 - if !isHashed { - return - } - if len(subpacket) != 1 { - err = errors.StructuralError("primary user id subpacket with bad length") - return - } - sig.IsPrimaryId = new(bool) - if subpacket[0] > 0 { - *sig.IsPrimaryId = true - } - case keyFlagsSubpacket: - // Key flags, section 5.2.3.21 - if !isHashed { - return - } - if len(subpacket) == 0 { - err = errors.StructuralError("empty key flags subpacket") - return - } - sig.FlagsValid = true - if subpacket[0]&KeyFlagCertify != 0 { - sig.FlagCertify = true - } - if subpacket[0]&KeyFlagSign != 0 { - sig.FlagSign = true - } - if subpacket[0]&KeyFlagEncryptCommunications != 0 { - sig.FlagEncryptCommunications = true - } - if subpacket[0]&KeyFlagEncryptStorage != 0 { - sig.FlagEncryptStorage = true - } - case reasonForRevocationSubpacket: - // Reason For Revocation, section 5.2.3.23 - if !isHashed { - return - } - if len(subpacket) == 0 { - err = errors.StructuralError("empty revocation reason subpacket") - return - } - sig.RevocationReason = new(uint8) - *sig.RevocationReason = subpacket[0] - sig.RevocationReasonText = string(subpacket[1:]) - case featuresSubpacket: - // Features subpacket, section 5.2.3.24 specifies a very general - // mechanism for OpenPGP implementations to signal support for new - // features. In practice, the subpacket is used exclusively to - // indicate support for MDC-protected encryption. - sig.MDC = len(subpacket) >= 1 && subpacket[0]&1 == 1 - case embeddedSignatureSubpacket: - // Only usage is in signatures that cross-certify - // signing subkeys. section 5.2.3.26 describes the - // format, with its usage described in section 11.1 - if sig.EmbeddedSignature != nil { - err = errors.StructuralError("Cannot have multiple embedded signatures") - return - } - sig.EmbeddedSignature = new(Signature) - // Embedded signatures are required to be v4 signatures see - // section 12.1. However, we only parse v4 signatures in this - // file anyway. - if err := sig.EmbeddedSignature.parse(bytes.NewBuffer(subpacket)); err != nil { - return nil, err - } - if sigType := sig.EmbeddedSignature.SigType; sigType != SigTypePrimaryKeyBinding { - return nil, errors.StructuralError("cross-signature has unexpected type " + strconv.Itoa(int(sigType))) - } - default: - if isCritical { - err = errors.UnsupportedError("unknown critical signature subpacket type " + strconv.Itoa(int(packetType))) - return - } - } - return - -Truncated: - err = errors.StructuralError("signature subpacket truncated") - return -} - -// subpacketLengthLength returns the length, in bytes, of an encoded length value. -func subpacketLengthLength(length int) int { - if length < 192 { - return 1 - } - if length < 16320 { - return 2 - } - return 5 -} - -// serializeSubpacketLength marshals the given length into to. -func serializeSubpacketLength(to []byte, length int) int { - // RFC 4880, Section 4.2.2. - if length < 192 { - to[0] = byte(length) - return 1 - } - if length < 16320 { - length -= 192 - to[0] = byte((length >> 8) + 192) - to[1] = byte(length) - return 2 - } - to[0] = 255 - to[1] = byte(length >> 24) - to[2] = byte(length >> 16) - to[3] = byte(length >> 8) - to[4] = byte(length) - return 5 -} - -// subpacketsLength returns the serialized length, in bytes, of the given -// subpackets. -func subpacketsLength(subpackets []outputSubpacket, hashed bool) (length int) { - for _, subpacket := range subpackets { - if subpacket.hashed == hashed { - length += subpacketLengthLength(len(subpacket.contents) + 1) - length += 1 // type byte - length += len(subpacket.contents) - } - } - return -} - -// serializeSubpackets marshals the given subpackets into to. -func serializeSubpackets(to []byte, subpackets []outputSubpacket, hashed bool) { - for _, subpacket := range subpackets { - if subpacket.hashed == hashed { - n := serializeSubpacketLength(to, len(subpacket.contents)+1) - to[n] = byte(subpacket.subpacketType) - to = to[1+n:] - n = copy(to, subpacket.contents) - to = to[n:] - } - } - return -} - -// KeyExpired returns whether sig is a self-signature of a key that has -// expired. -func (sig *Signature) KeyExpired(currentTime time.Time) bool { - if sig.KeyLifetimeSecs == nil { - return false - } - expiry := sig.CreationTime.Add(time.Duration(*sig.KeyLifetimeSecs) * time.Second) - return currentTime.After(expiry) -} - -// buildHashSuffix constructs the HashSuffix member of sig in preparation for signing. -func (sig *Signature) buildHashSuffix() (err error) { - hashedSubpacketsLen := subpacketsLength(sig.outSubpackets, true) - - var ok bool - l := 6 + hashedSubpacketsLen - sig.HashSuffix = make([]byte, l+6) - sig.HashSuffix[0] = 4 - sig.HashSuffix[1] = uint8(sig.SigType) - sig.HashSuffix[2] = uint8(sig.PubKeyAlgo) - sig.HashSuffix[3], ok = s2k.HashToHashId(sig.Hash) - if !ok { - sig.HashSuffix = nil - return errors.InvalidArgumentError("hash cannot be represented in OpenPGP: " + strconv.Itoa(int(sig.Hash))) - } - sig.HashSuffix[4] = byte(hashedSubpacketsLen >> 8) - sig.HashSuffix[5] = byte(hashedSubpacketsLen) - serializeSubpackets(sig.HashSuffix[6:l], sig.outSubpackets, true) - trailer := sig.HashSuffix[l:] - trailer[0] = 4 - trailer[1] = 0xff - trailer[2] = byte(l >> 24) - trailer[3] = byte(l >> 16) - trailer[4] = byte(l >> 8) - trailer[5] = byte(l) - return -} - -func (sig *Signature) signPrepareHash(h hash.Hash) (digest []byte, err error) { - err = sig.buildHashSuffix() - if err != nil { - return - } - - h.Write(sig.HashSuffix) - digest = h.Sum(nil) - copy(sig.HashTag[:], digest) - return -} - -// Sign signs a message with a private key. The hash, h, must contain -// the hash of the message to be signed and will be mutated by this function. -// On success, the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) Sign(h hash.Hash, priv *PrivateKey, config *Config) (err error) { - sig.outSubpackets = sig.buildSubpackets() - digest, err := sig.signPrepareHash(h) - if err != nil { - return - } - - switch priv.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - // supports both *rsa.PrivateKey and crypto.Signer - sig.RSASignature.bytes, err = priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, sig.Hash) - sig.RSASignature.bitLength = uint16(8 * len(sig.RSASignature.bytes)) - case PubKeyAlgoDSA: - dsaPriv := priv.PrivateKey.(*dsa.PrivateKey) - - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPriv.Q.BitLen() + 7) / 8 - if len(digest) > subgroupSize { - digest = digest[:subgroupSize] - } - r, s, err := dsa.Sign(config.Random(), dsaPriv, digest) - if err == nil { - sig.DSASigR.bytes = r.Bytes() - sig.DSASigR.bitLength = uint16(8 * len(sig.DSASigR.bytes)) - sig.DSASigS.bytes = s.Bytes() - sig.DSASigS.bitLength = uint16(8 * len(sig.DSASigS.bytes)) - } - case PubKeyAlgoECDSA: - var r, s *big.Int - if pk, ok := priv.PrivateKey.(*ecdsa.PrivateKey); ok { - // direct support, avoid asn1 wrapping/unwrapping - r, s, err = ecdsa.Sign(config.Random(), pk, digest) - } else { - var b []byte - b, err = priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, nil) - if err == nil { - r, s, err = unwrapECDSASig(b) - } - } - if err == nil { - sig.ECDSASigR = fromBig(r) - sig.ECDSASigS = fromBig(s) - } - default: - err = errors.UnsupportedError("public key algorithm: " + strconv.Itoa(int(sig.PubKeyAlgo))) - } - - return -} - -// unwrapECDSASig parses the two integer components of an ASN.1-encoded ECDSA -// signature. -func unwrapECDSASig(b []byte) (r, s *big.Int, err error) { - var ecsdaSig struct { - R, S *big.Int - } - _, err = asn1.Unmarshal(b, &ecsdaSig) - if err != nil { - return - } - return ecsdaSig.R, ecsdaSig.S, nil -} - -// SignUserId computes a signature from priv, asserting that pub is a valid -// key for the identity id. On success, the signature is stored in sig. Call -// Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) SignUserId(id string, pub *PublicKey, priv *PrivateKey, config *Config) error { - h, err := userIdSignatureHash(id, pub, sig.Hash) - if err != nil { - return err - } - return sig.Sign(h, priv, config) -} - -// SignKey computes a signature from priv, asserting that pub is a subkey. On -// success, the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) SignKey(pub *PublicKey, priv *PrivateKey, config *Config) error { - h, err := keySignatureHash(&priv.PublicKey, pub, sig.Hash) - if err != nil { - return err - } - return sig.Sign(h, priv, config) -} - -// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been -// called first. -func (sig *Signature) Serialize(w io.Writer) (err error) { - if len(sig.outSubpackets) == 0 { - sig.outSubpackets = sig.rawSubpackets - } - if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil && sig.ECDSASigR.bytes == nil { - return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") - } - - sigLength := 0 - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sigLength = 2 + len(sig.RSASignature.bytes) - case PubKeyAlgoDSA: - sigLength = 2 + len(sig.DSASigR.bytes) - sigLength += 2 + len(sig.DSASigS.bytes) - case PubKeyAlgoECDSA: - sigLength = 2 + len(sig.ECDSASigR.bytes) - sigLength += 2 + len(sig.ECDSASigS.bytes) - default: - panic("impossible") - } - - unhashedSubpacketsLen := subpacketsLength(sig.outSubpackets, false) - length := len(sig.HashSuffix) - 6 /* trailer not included */ + - 2 /* length of unhashed subpackets */ + unhashedSubpacketsLen + - 2 /* hash tag */ + sigLength - err = serializeHeader(w, packetTypeSignature, length) - if err != nil { - return - } - - _, err = w.Write(sig.HashSuffix[:len(sig.HashSuffix)-6]) - if err != nil { - return - } - - unhashedSubpackets := make([]byte, 2+unhashedSubpacketsLen) - unhashedSubpackets[0] = byte(unhashedSubpacketsLen >> 8) - unhashedSubpackets[1] = byte(unhashedSubpacketsLen) - serializeSubpackets(unhashedSubpackets[2:], sig.outSubpackets, false) - - _, err = w.Write(unhashedSubpackets) - if err != nil { - return - } - _, err = w.Write(sig.HashTag[:]) - if err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - err = writeMPIs(w, sig.RSASignature) - case PubKeyAlgoDSA: - err = writeMPIs(w, sig.DSASigR, sig.DSASigS) - case PubKeyAlgoECDSA: - err = writeMPIs(w, sig.ECDSASigR, sig.ECDSASigS) - default: - panic("impossible") - } - return -} - -// outputSubpacket represents a subpacket to be marshaled. -type outputSubpacket struct { - hashed bool // true if this subpacket is in the hashed area. - subpacketType signatureSubpacketType - isCritical bool - contents []byte -} - -func (sig *Signature) buildSubpackets() (subpackets []outputSubpacket) { - creationTime := make([]byte, 4) - binary.BigEndian.PutUint32(creationTime, uint32(sig.CreationTime.Unix())) - subpackets = append(subpackets, outputSubpacket{true, creationTimeSubpacket, false, creationTime}) - - if sig.IssuerKeyId != nil { - keyId := make([]byte, 8) - binary.BigEndian.PutUint64(keyId, *sig.IssuerKeyId) - subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, false, keyId}) - } - - if sig.SigLifetimeSecs != nil && *sig.SigLifetimeSecs != 0 { - sigLifetime := make([]byte, 4) - binary.BigEndian.PutUint32(sigLifetime, *sig.SigLifetimeSecs) - subpackets = append(subpackets, outputSubpacket{true, signatureExpirationSubpacket, true, sigLifetime}) - } - - // Key flags may only appear in self-signatures or certification signatures. - - if sig.FlagsValid { - var flags byte - if sig.FlagCertify { - flags |= KeyFlagCertify - } - if sig.FlagSign { - flags |= KeyFlagSign - } - if sig.FlagEncryptCommunications { - flags |= KeyFlagEncryptCommunications - } - if sig.FlagEncryptStorage { - flags |= KeyFlagEncryptStorage - } - subpackets = append(subpackets, outputSubpacket{true, keyFlagsSubpacket, false, []byte{flags}}) - } - - // The following subpackets may only appear in self-signatures - - if sig.KeyLifetimeSecs != nil && *sig.KeyLifetimeSecs != 0 { - keyLifetime := make([]byte, 4) - binary.BigEndian.PutUint32(keyLifetime, *sig.KeyLifetimeSecs) - subpackets = append(subpackets, outputSubpacket{true, keyExpirationSubpacket, true, keyLifetime}) - } - - if sig.IsPrimaryId != nil && *sig.IsPrimaryId { - subpackets = append(subpackets, outputSubpacket{true, primaryUserIdSubpacket, false, []byte{1}}) - } - - if len(sig.PreferredSymmetric) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefSymmetricAlgosSubpacket, false, sig.PreferredSymmetric}) - } - - if len(sig.PreferredHash) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefHashAlgosSubpacket, false, sig.PreferredHash}) - } - - if len(sig.PreferredCompression) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefCompressionSubpacket, false, sig.PreferredCompression}) - } - - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go deleted file mode 100644 index 6edff889..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/signature_v3.go +++ /dev/null @@ -1,146 +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 packet - -import ( - "crypto" - "encoding/binary" - "fmt" - "io" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" -) - -// SignatureV3 represents older version 3 signatures. These signatures are less secure -// than version 4 and should not be used to create new signatures. They are included -// here for backwards compatibility to read and validate with older key material. -// See RFC 4880, section 5.2.2. -type SignatureV3 struct { - SigType SignatureType - CreationTime time.Time - IssuerKeyId uint64 - PubKeyAlgo PublicKeyAlgorithm - Hash crypto.Hash - HashTag [2]byte - - RSASignature parsedMPI - DSASigR, DSASigS parsedMPI -} - -func (sig *SignatureV3) parse(r io.Reader) (err error) { - // RFC 4880, section 5.2.2 - var buf [8]byte - if _, err = readFull(r, buf[:1]); err != nil { - return - } - if buf[0] < 2 || buf[0] > 3 { - err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) - return - } - if _, err = readFull(r, buf[:1]); err != nil { - return - } - if buf[0] != 5 { - err = errors.UnsupportedError( - "invalid hashed material length " + strconv.Itoa(int(buf[0]))) - return - } - - // Read hashed material: signature type + creation time - if _, err = readFull(r, buf[:5]); err != nil { - return - } - sig.SigType = SignatureType(buf[0]) - t := binary.BigEndian.Uint32(buf[1:5]) - sig.CreationTime = time.Unix(int64(t), 0) - - // Eight-octet Key ID of signer. - if _, err = readFull(r, buf[:8]); err != nil { - return - } - sig.IssuerKeyId = binary.BigEndian.Uint64(buf[:]) - - // Public-key and hash algorithm - if _, err = readFull(r, buf[:2]); err != nil { - return - } - sig.PubKeyAlgo = PublicKeyAlgorithm(buf[0]) - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA: - default: - err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) - return - } - var ok bool - if sig.Hash, ok = s2k.HashIdToHash(buf[1]); !ok { - return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) - } - - // Two-octet field holding left 16 bits of signed hash value. - if _, err = readFull(r, sig.HashTag[:2]); err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature.bytes, sig.RSASignature.bitLength, err = readMPI(r) - case PubKeyAlgoDSA: - if sig.DSASigR.bytes, sig.DSASigR.bitLength, err = readMPI(r); err != nil { - return - } - sig.DSASigS.bytes, sig.DSASigS.bitLength, err = readMPI(r) - default: - panic("unreachable") - } - return -} - -// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been -// called first. -func (sig *SignatureV3) Serialize(w io.Writer) (err error) { - buf := make([]byte, 8) - - // Write the sig type and creation time - buf[0] = byte(sig.SigType) - binary.BigEndian.PutUint32(buf[1:5], uint32(sig.CreationTime.Unix())) - if _, err = w.Write(buf[:5]); err != nil { - return - } - - // Write the issuer long key ID - binary.BigEndian.PutUint64(buf[:8], sig.IssuerKeyId) - if _, err = w.Write(buf[:8]); err != nil { - return - } - - // Write public key algorithm, hash ID, and hash value - buf[0] = byte(sig.PubKeyAlgo) - hashId, ok := s2k.HashToHashId(sig.Hash) - if !ok { - return errors.UnsupportedError(fmt.Sprintf("hash function %v", sig.Hash)) - } - buf[1] = hashId - copy(buf[2:4], sig.HashTag[:]) - if _, err = w.Write(buf[:4]); err != nil { - return - } - - if sig.RSASignature.bytes == nil && sig.DSASigR.bytes == nil { - return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - err = writeMPIs(w, sig.RSASignature) - case PubKeyAlgoDSA: - err = writeMPIs(w, sig.DSASigR, sig.DSASigS) - default: - panic("impossible") - } - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go deleted file mode 100644 index 4b1105b6..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/symmetric_key_encrypted.go +++ /dev/null @@ -1,155 +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 packet - -import ( - "bytes" - "crypto/cipher" - "io" - "strconv" - - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/s2k" -) - -// This is the largest session key that we'll support. Since no 512-bit cipher -// has even been seriously used, this is comfortably large. -const maxSessionKeySizeInBytes = 64 - -// SymmetricKeyEncrypted represents a passphrase protected session key. See RFC -// 4880, section 5.3. -type SymmetricKeyEncrypted struct { - CipherFunc CipherFunction - s2k func(out, in []byte) - encryptedKey []byte -} - -const symmetricKeyEncryptedVersion = 4 - -func (ske *SymmetricKeyEncrypted) parse(r io.Reader) error { - // RFC 4880, section 5.3. - var buf [2]byte - if _, err := readFull(r, buf[:]); err != nil { - return err - } - if buf[0] != symmetricKeyEncryptedVersion { - return errors.UnsupportedError("SymmetricKeyEncrypted version") - } - ske.CipherFunc = CipherFunction(buf[1]) - - if ske.CipherFunc.KeySize() == 0 { - return errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(buf[1]))) - } - - var err error - ske.s2k, err = s2k.Parse(r) - if err != nil { - return err - } - - encryptedKey := make([]byte, maxSessionKeySizeInBytes) - // The session key may follow. We just have to try and read to find - // out. If it exists then we limit it to maxSessionKeySizeInBytes. - n, err := readFull(r, encryptedKey) - if err != nil && err != io.ErrUnexpectedEOF { - return err - } - - if n != 0 { - if n == maxSessionKeySizeInBytes { - return errors.UnsupportedError("oversized encrypted session key") - } - ske.encryptedKey = encryptedKey[:n] - } - - return nil -} - -// Decrypt attempts to decrypt an encrypted session key and returns the key and -// the cipher to use when decrypting a subsequent Symmetrically Encrypted Data -// packet. -func (ske *SymmetricKeyEncrypted) Decrypt(passphrase []byte) ([]byte, CipherFunction, error) { - key := make([]byte, ske.CipherFunc.KeySize()) - ske.s2k(key, passphrase) - - if len(ske.encryptedKey) == 0 { - return key, ske.CipherFunc, nil - } - - // the IV is all zeros - iv := make([]byte, ske.CipherFunc.blockSize()) - c := cipher.NewCFBDecrypter(ske.CipherFunc.new(key), iv) - plaintextKey := make([]byte, len(ske.encryptedKey)) - c.XORKeyStream(plaintextKey, ske.encryptedKey) - cipherFunc := CipherFunction(plaintextKey[0]) - if cipherFunc.blockSize() == 0 { - return nil, ske.CipherFunc, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - plaintextKey = plaintextKey[1:] - if l := len(plaintextKey); l == 0 || l%cipherFunc.blockSize() != 0 { - return nil, cipherFunc, errors.StructuralError("length of decrypted key not a multiple of block size") - } - - return plaintextKey, cipherFunc, nil -} - -// SerializeSymmetricKeyEncrypted serializes a symmetric key packet to w. The -// packet contains a random session key, encrypted by a key derived from the -// given passphrase. The session key is returned and must be passed to -// SerializeSymmetricallyEncrypted. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricKeyEncrypted(w io.Writer, passphrase []byte, config *Config) (key []byte, err error) { - cipherFunc := config.Cipher() - keySize := cipherFunc.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - - s2kBuf := new(bytes.Buffer) - keyEncryptingKey := make([]byte, keySize) - // s2k.Serialize salts and stretches the passphrase, and writes the - // resulting key to keyEncryptingKey and the s2k descriptor to s2kBuf. - err = s2k.Serialize(s2kBuf, keyEncryptingKey, config.Random(), passphrase, &s2k.Config{Hash: config.Hash(), S2KCount: config.PasswordHashIterations()}) - if err != nil { - return - } - s2kBytes := s2kBuf.Bytes() - - packetLength := 2 /* header */ + len(s2kBytes) + 1 /* cipher type */ + keySize - err = serializeHeader(w, packetTypeSymmetricKeyEncrypted, packetLength) - if err != nil { - return - } - - var buf [2]byte - buf[0] = symmetricKeyEncryptedVersion - buf[1] = byte(cipherFunc) - _, err = w.Write(buf[:]) - if err != nil { - return - } - _, err = w.Write(s2kBytes) - if err != nil { - return - } - - sessionKey := make([]byte, keySize) - _, err = io.ReadFull(config.Random(), sessionKey) - if err != nil { - return - } - iv := make([]byte, cipherFunc.blockSize()) - c := cipher.NewCFBEncrypter(cipherFunc.new(keyEncryptingKey), iv) - encryptedCipherAndKey := make([]byte, keySize+1) - c.XORKeyStream(encryptedCipherAndKey, buf[1:]) - c.XORKeyStream(encryptedCipherAndKey[1:], sessionKey) - _, err = w.Write(encryptedCipherAndKey) - if err != nil { - return - } - - key = sessionKey - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go deleted file mode 100644 index 6126030e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/symmetrically_encrypted.go +++ /dev/null @@ -1,290 +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 packet - -import ( - "crypto/cipher" - "crypto/sha1" - "crypto/subtle" - "golang.org/x/crypto/openpgp/errors" - "hash" - "io" - "strconv" -) - -// SymmetricallyEncrypted represents a symmetrically encrypted byte string. The -// encrypted contents will consist of more OpenPGP packets. See RFC 4880, -// sections 5.7 and 5.13. -type SymmetricallyEncrypted struct { - MDC bool // true iff this is a type 18 packet and thus has an embedded MAC. - contents io.Reader - prefix []byte -} - -const symmetricallyEncryptedVersion = 1 - -func (se *SymmetricallyEncrypted) parse(r io.Reader) error { - if se.MDC { - // See RFC 4880, section 5.13. - var buf [1]byte - _, err := readFull(r, buf[:]) - if err != nil { - return err - } - if buf[0] != symmetricallyEncryptedVersion { - return errors.UnsupportedError("unknown SymmetricallyEncrypted version") - } - } - se.contents = r - return nil -} - -// Decrypt returns a ReadCloser, from which the decrypted contents of the -// packet can be read. An incorrect key can, with high probability, be detected -// immediately and this will result in a KeyIncorrect error being returned. -func (se *SymmetricallyEncrypted) Decrypt(c CipherFunction, key []byte) (io.ReadCloser, error) { - keySize := c.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(c))) - } - if len(key) != keySize { - return nil, errors.InvalidArgumentError("SymmetricallyEncrypted: incorrect key length") - } - - if se.prefix == nil { - se.prefix = make([]byte, c.blockSize()+2) - _, err := readFull(se.contents, se.prefix) - if err != nil { - return nil, err - } - } else if len(se.prefix) != c.blockSize()+2 { - return nil, errors.InvalidArgumentError("can't try ciphers with different block lengths") - } - - ocfbResync := OCFBResync - if se.MDC { - // MDC packets use a different form of OCFB mode. - ocfbResync = OCFBNoResync - } - - s := NewOCFBDecrypter(c.new(key), se.prefix, ocfbResync) - if s == nil { - return nil, errors.ErrKeyIncorrect - } - - plaintext := cipher.StreamReader{S: s, R: se.contents} - - if se.MDC { - // MDC packets have an embedded hash that we need to check. - h := sha1.New() - h.Write(se.prefix) - return &seMDCReader{in: plaintext, h: h}, nil - } - - // Otherwise, we just need to wrap plaintext so that it's a valid ReadCloser. - return seReader{plaintext}, nil -} - -// seReader wraps an io.Reader with a no-op Close method. -type seReader struct { - in io.Reader -} - -func (ser seReader) Read(buf []byte) (int, error) { - return ser.in.Read(buf) -} - -func (ser seReader) Close() error { - return nil -} - -const mdcTrailerSize = 1 /* tag byte */ + 1 /* length byte */ + sha1.Size - -// An seMDCReader wraps an io.Reader, maintains a running hash and keeps hold -// of the most recent 22 bytes (mdcTrailerSize). Upon EOF, those bytes form an -// MDC packet containing a hash of the previous contents which is checked -// against the running hash. See RFC 4880, section 5.13. -type seMDCReader struct { - in io.Reader - h hash.Hash - trailer [mdcTrailerSize]byte - scratch [mdcTrailerSize]byte - trailerUsed int - error bool - eof bool -} - -func (ser *seMDCReader) Read(buf []byte) (n int, err error) { - if ser.error { - err = io.ErrUnexpectedEOF - return - } - if ser.eof { - err = io.EOF - return - } - - // If we haven't yet filled the trailer buffer then we must do that - // first. - for ser.trailerUsed < mdcTrailerSize { - n, err = ser.in.Read(ser.trailer[ser.trailerUsed:]) - ser.trailerUsed += n - if err == io.EOF { - if ser.trailerUsed != mdcTrailerSize { - n = 0 - err = io.ErrUnexpectedEOF - ser.error = true - return - } - ser.eof = true - n = 0 - return - } - - if err != nil { - n = 0 - return - } - } - - // If it's a short read then we read into a temporary buffer and shift - // the data into the caller's buffer. - if len(buf) <= mdcTrailerSize { - n, err = readFull(ser.in, ser.scratch[:len(buf)]) - copy(buf, ser.trailer[:n]) - ser.h.Write(buf[:n]) - copy(ser.trailer[:], ser.trailer[n:]) - copy(ser.trailer[mdcTrailerSize-n:], ser.scratch[:]) - if n < len(buf) { - ser.eof = true - err = io.EOF - } - return - } - - n, err = ser.in.Read(buf[mdcTrailerSize:]) - copy(buf, ser.trailer[:]) - ser.h.Write(buf[:n]) - copy(ser.trailer[:], buf[n:]) - - if err == io.EOF { - ser.eof = true - } - return -} - -// This is a new-format packet tag byte for a type 19 (MDC) packet. -const mdcPacketTagByte = byte(0x80) | 0x40 | 19 - -func (ser *seMDCReader) Close() error { - if ser.error { - return errors.SignatureError("error during reading") - } - - for !ser.eof { - // We haven't seen EOF so we need to read to the end - var buf [1024]byte - _, err := ser.Read(buf[:]) - if err == io.EOF { - break - } - if err != nil { - return errors.SignatureError("error during reading") - } - } - - if ser.trailer[0] != mdcPacketTagByte || ser.trailer[1] != sha1.Size { - return errors.SignatureError("MDC packet not found") - } - ser.h.Write(ser.trailer[:2]) - - final := ser.h.Sum(nil) - if subtle.ConstantTimeCompare(final, ser.trailer[2:]) != 1 { - return errors.SignatureError("hash mismatch") - } - return nil -} - -// An seMDCWriter writes through to an io.WriteCloser while maintains a running -// hash of the data written. On close, it emits an MDC packet containing the -// running hash. -type seMDCWriter struct { - w io.WriteCloser - h hash.Hash -} - -func (w *seMDCWriter) Write(buf []byte) (n int, err error) { - w.h.Write(buf) - return w.w.Write(buf) -} - -func (w *seMDCWriter) Close() (err error) { - var buf [mdcTrailerSize]byte - - buf[0] = mdcPacketTagByte - buf[1] = sha1.Size - w.h.Write(buf[:2]) - digest := w.h.Sum(nil) - copy(buf[2:], digest) - - _, err = w.w.Write(buf[:]) - if err != nil { - return - } - return w.w.Close() -} - -// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. -type noOpCloser struct { - w io.Writer -} - -func (c noOpCloser) Write(data []byte) (n int, err error) { - return c.w.Write(data) -} - -func (c noOpCloser) Close() error { - return nil -} - -// SerializeSymmetricallyEncrypted serializes a symmetrically encrypted packet -// to w and returns a WriteCloser to which the to-be-encrypted packets can be -// written. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricallyEncrypted(w io.Writer, c CipherFunction, key []byte, config *Config) (contents io.WriteCloser, err error) { - if c.KeySize() != len(key) { - return nil, errors.InvalidArgumentError("SymmetricallyEncrypted.Serialize: bad key length") - } - writeCloser := noOpCloser{w} - ciphertext, err := serializeStreamHeader(writeCloser, packetTypeSymmetricallyEncryptedMDC) - if err != nil { - return - } - - _, err = ciphertext.Write([]byte{symmetricallyEncryptedVersion}) - if err != nil { - return - } - - block := c.new(key) - blockSize := block.BlockSize() - iv := make([]byte, blockSize) - _, err = config.Random().Read(iv) - if err != nil { - return - } - s, prefix := NewOCFBEncrypter(block, iv, OCFBNoResync) - _, err = ciphertext.Write(prefix) - if err != nil { - return - } - plaintext := cipher.StreamWriter{S: s, W: ciphertext} - - h := sha1.New() - h.Write(iv) - h.Write(iv[blockSize-2:]) - contents = &seMDCWriter{w: plaintext, h: h} - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/userattribute.go deleted file mode 100644 index 96a2b382..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/userattribute.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 packet - -import ( - "bytes" - "image" - "image/jpeg" - "io" - "io/ioutil" -) - -const UserAttrImageSubpacket = 1 - -// UserAttribute is capable of storing other types of data about a user -// beyond name, email and a text comment. In practice, user attributes are typically used -// to store a signed thumbnail photo JPEG image of the user. -// See RFC 4880, section 5.12. -type UserAttribute struct { - Contents []*OpaqueSubpacket -} - -// NewUserAttributePhoto creates a user attribute packet -// containing the given images. -func NewUserAttributePhoto(photos ...image.Image) (uat *UserAttribute, err error) { - uat = new(UserAttribute) - for _, photo := range photos { - var buf bytes.Buffer - // RFC 4880, Section 5.12.1. - data := []byte{ - 0x10, 0x00, // Little-endian image header length (16 bytes) - 0x01, // Image header version 1 - 0x01, // JPEG - 0, 0, 0, 0, // 12 reserved octets, must be all zero. - 0, 0, 0, 0, - 0, 0, 0, 0} - if _, err = buf.Write(data); err != nil { - return - } - if err = jpeg.Encode(&buf, photo, nil); err != nil { - return - } - uat.Contents = append(uat.Contents, &OpaqueSubpacket{ - SubType: UserAttrImageSubpacket, - Contents: buf.Bytes()}) - } - return -} - -// NewUserAttribute creates a new user attribute packet containing the given subpackets. -func NewUserAttribute(contents ...*OpaqueSubpacket) *UserAttribute { - return &UserAttribute{Contents: contents} -} - -func (uat *UserAttribute) parse(r io.Reader) (err error) { - // RFC 4880, section 5.13 - b, err := ioutil.ReadAll(r) - if err != nil { - return - } - uat.Contents, err = OpaqueSubpackets(b) - return -} - -// Serialize marshals the user attribute to w in the form of an OpenPGP packet, including -// header. -func (uat *UserAttribute) Serialize(w io.Writer) (err error) { - var buf bytes.Buffer - for _, sp := range uat.Contents { - sp.Serialize(&buf) - } - if err = serializeHeader(w, packetTypeUserAttribute, buf.Len()); err != nil { - return err - } - _, err = w.Write(buf.Bytes()) - return -} - -// ImageData returns zero or more byte slices, each containing -// JPEG File Interchange Format (JFIF), for each photo in the -// the user attribute packet. -func (uat *UserAttribute) ImageData() (imageData [][]byte) { - for _, sp := range uat.Contents { - if sp.SubType == UserAttrImageSubpacket && len(sp.Contents) > 16 { - imageData = append(imageData, sp.Contents[16:]) - } - } - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/userid.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/userid.go deleted file mode 100644 index d6bea7d4..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/packet/userid.go +++ /dev/null @@ -1,160 +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 packet - -import ( - "io" - "io/ioutil" - "strings" -) - -// UserId contains text that is intended to represent the name and email -// address of the key holder. See RFC 4880, section 5.11. By convention, this -// takes the form "Full Name (Comment) " -type UserId struct { - Id string // By convention, this takes the form "Full Name (Comment) " which is split out in the fields below. - - Name, Comment, Email string -} - -func hasInvalidCharacters(s string) bool { - for _, c := range s { - switch c { - case '(', ')', '<', '>', 0: - return true - } - } - return false -} - -// NewUserId returns a UserId or nil if any of the arguments contain invalid -// characters. The invalid characters are '\x00', '(', ')', '<' and '>' -func NewUserId(name, comment, email string) *UserId { - // RFC 4880 doesn't deal with the structure of userid strings; the - // name, comment and email form is just a convention. However, there's - // no convention about escaping the metacharacters and GPG just refuses - // to create user ids where, say, the name contains a '('. We mirror - // this behaviour. - - if hasInvalidCharacters(name) || hasInvalidCharacters(comment) || hasInvalidCharacters(email) { - return nil - } - - uid := new(UserId) - uid.Name, uid.Comment, uid.Email = name, comment, email - uid.Id = name - if len(comment) > 0 { - if len(uid.Id) > 0 { - uid.Id += " " - } - uid.Id += "(" - uid.Id += comment - uid.Id += ")" - } - if len(email) > 0 { - if len(uid.Id) > 0 { - uid.Id += " " - } - uid.Id += "<" - uid.Id += email - uid.Id += ">" - } - return uid -} - -func (uid *UserId) parse(r io.Reader) (err error) { - // RFC 4880, section 5.11 - b, err := ioutil.ReadAll(r) - if err != nil { - return - } - uid.Id = string(b) - uid.Name, uid.Comment, uid.Email = parseUserId(uid.Id) - return -} - -// Serialize marshals uid to w in the form of an OpenPGP packet, including -// header. -func (uid *UserId) Serialize(w io.Writer) error { - err := serializeHeader(w, packetTypeUserId, len(uid.Id)) - if err != nil { - return err - } - _, err = w.Write([]byte(uid.Id)) - return err -} - -// parseUserId extracts the name, comment and email from a user id string that -// is formatted as "Full Name (Comment) ". -func parseUserId(id string) (name, comment, email string) { - var n, c, e struct { - start, end int - } - var state int - - for offset, rune := range id { - switch state { - case 0: - // Entering name - n.start = offset - state = 1 - fallthrough - case 1: - // In name - if rune == '(' { - state = 2 - n.end = offset - } else if rune == '<' { - state = 5 - n.end = offset - } - case 2: - // Entering comment - c.start = offset - state = 3 - fallthrough - case 3: - // In comment - if rune == ')' { - state = 4 - c.end = offset - } - case 4: - // Between comment and email - if rune == '<' { - state = 5 - } - case 5: - // Entering email - e.start = offset - state = 6 - fallthrough - case 6: - // In email - if rune == '>' { - state = 7 - e.end = offset - } - default: - // After email - } - } - switch state { - case 1: - // ended in the name - n.end = len(id) - case 3: - // ended in comment - c.end = len(id) - case 6: - // ended in email - e.end = len(id) - } - - name = strings.TrimSpace(id[n.start:n.end]) - comment = strings.TrimSpace(id[c.start:c.end]) - email = strings.TrimSpace(id[e.start:e.end]) - return -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/read.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/read.go deleted file mode 100644 index 6ec664f4..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/read.go +++ /dev/null @@ -1,442 +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 openpgp implements high level operations on OpenPGP messages. -package openpgp // import "golang.org/x/crypto/openpgp" - -import ( - "crypto" - _ "crypto/sha256" - "hash" - "io" - "strconv" - - "golang.org/x/crypto/openpgp/armor" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/packet" -) - -// SignatureType is the armor type for a PGP signature. -var SignatureType = "PGP SIGNATURE" - -// readArmored reads an armored block with the given type. -func readArmored(r io.Reader, expectedType string) (body io.Reader, err error) { - block, err := armor.Decode(r) - if err != nil { - return - } - - if block.Type != expectedType { - return nil, errors.InvalidArgumentError("expected '" + expectedType + "', got: " + block.Type) - } - - return block.Body, nil -} - -// MessageDetails contains the result of parsing an OpenPGP encrypted and/or -// signed message. -type MessageDetails struct { - IsEncrypted bool // true if the message was encrypted. - EncryptedToKeyIds []uint64 // the list of recipient key ids. - IsSymmetricallyEncrypted bool // true if a passphrase could have decrypted the message. - DecryptedWith Key // the private key used to decrypt the message, if any. - IsSigned bool // true if the message is signed. - SignedByKeyId uint64 // the key id of the signer, if any. - SignedBy *Key // the key of the signer, if available. - LiteralData *packet.LiteralData // the metadata of the contents - UnverifiedBody io.Reader // the contents of the message. - - // If IsSigned is true and SignedBy is non-zero then the signature will - // be verified as UnverifiedBody is read. The signature cannot be - // checked until the whole of UnverifiedBody is read so UnverifiedBody - // must be consumed until EOF before the data can be trusted. Even if a - // message isn't signed (or the signer is unknown) the data may contain - // an authentication code that is only checked once UnverifiedBody has - // been consumed. Once EOF has been seen, the following fields are - // valid. (An authentication code failure is reported as a - // SignatureError error when reading from UnverifiedBody.) - SignatureError error // nil if the signature is good. - Signature *packet.Signature // the signature packet itself, if v4 (default) - SignatureV3 *packet.SignatureV3 // the signature packet if it is a v2 or v3 signature - - decrypted io.ReadCloser -} - -// A PromptFunction is used as a callback by functions that may need to decrypt -// a private key, or prompt for a passphrase. It is called with a list of -// acceptable, encrypted private keys and a boolean that indicates whether a -// passphrase is usable. It should either decrypt a private key or return a -// passphrase to try. If the decrypted private key or given passphrase isn't -// correct, the function will be called again, forever. Any error returned will -// be passed up. -type PromptFunction func(keys []Key, symmetric bool) ([]byte, error) - -// A keyEnvelopePair is used to store a private key with the envelope that -// contains a symmetric key, encrypted with that key. -type keyEnvelopePair struct { - key Key - encryptedKey *packet.EncryptedKey -} - -// ReadMessage parses an OpenPGP message that may be signed and/or encrypted. -// The given KeyRing should contain both public keys (for signature -// verification) and, possibly encrypted, private keys for decrypting. -// If config is nil, sensible defaults will be used. -func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *packet.Config) (md *MessageDetails, err error) { - var p packet.Packet - - var symKeys []*packet.SymmetricKeyEncrypted - var pubKeys []keyEnvelopePair - var se *packet.SymmetricallyEncrypted - - packets := packet.NewReader(r) - md = new(MessageDetails) - md.IsEncrypted = true - - // The message, if encrypted, starts with a number of packets - // containing an encrypted decryption key. The decryption key is either - // encrypted to a public key, or with a passphrase. This loop - // collects these packets. -ParsePackets: - for { - p, err = packets.Next() - if err != nil { - return nil, err - } - switch p := p.(type) { - case *packet.SymmetricKeyEncrypted: - // This packet contains the decryption key encrypted with a passphrase. - md.IsSymmetricallyEncrypted = true - symKeys = append(symKeys, p) - case *packet.EncryptedKey: - // This packet contains the decryption key encrypted to a public key. - md.EncryptedToKeyIds = append(md.EncryptedToKeyIds, p.KeyId) - switch p.Algo { - case packet.PubKeyAlgoRSA, packet.PubKeyAlgoRSAEncryptOnly, packet.PubKeyAlgoElGamal: - break - default: - continue - } - var keys []Key - if p.KeyId == 0 { - keys = keyring.DecryptionKeys() - } else { - keys = keyring.KeysById(p.KeyId) - } - for _, k := range keys { - pubKeys = append(pubKeys, keyEnvelopePair{k, p}) - } - case *packet.SymmetricallyEncrypted: - se = p - break ParsePackets - case *packet.Compressed, *packet.LiteralData, *packet.OnePassSignature: - // This message isn't encrypted. - if len(symKeys) != 0 || len(pubKeys) != 0 { - return nil, errors.StructuralError("key material not followed by encrypted message") - } - packets.Unread(p) - return readSignedMessage(packets, nil, keyring) - } - } - - var candidates []Key - var decrypted io.ReadCloser - - // Now that we have the list of encrypted keys we need to decrypt at - // least one of them or, if we cannot, we need to call the prompt - // function so that it can decrypt a key or give us a passphrase. -FindKey: - for { - // See if any of the keys already have a private key available - candidates = candidates[:0] - candidateFingerprints := make(map[string]bool) - - for _, pk := range pubKeys { - if pk.key.PrivateKey == nil { - continue - } - if !pk.key.PrivateKey.Encrypted { - if len(pk.encryptedKey.Key) == 0 { - pk.encryptedKey.Decrypt(pk.key.PrivateKey, config) - } - if len(pk.encryptedKey.Key) == 0 { - continue - } - decrypted, err = se.Decrypt(pk.encryptedKey.CipherFunc, pk.encryptedKey.Key) - if err != nil && err != errors.ErrKeyIncorrect { - return nil, err - } - if decrypted != nil { - md.DecryptedWith = pk.key - break FindKey - } - } else { - fpr := string(pk.key.PublicKey.Fingerprint[:]) - if v := candidateFingerprints[fpr]; v { - continue - } - candidates = append(candidates, pk.key) - candidateFingerprints[fpr] = true - } - } - - if len(candidates) == 0 && len(symKeys) == 0 { - return nil, errors.ErrKeyIncorrect - } - - if prompt == nil { - return nil, errors.ErrKeyIncorrect - } - - passphrase, err := prompt(candidates, len(symKeys) != 0) - if err != nil { - return nil, err - } - - // Try the symmetric passphrase first - if len(symKeys) != 0 && passphrase != nil { - for _, s := range symKeys { - key, cipherFunc, err := s.Decrypt(passphrase) - if err == nil { - decrypted, err = se.Decrypt(cipherFunc, key) - if err != nil && err != errors.ErrKeyIncorrect { - return nil, err - } - if decrypted != nil { - break FindKey - } - } - - } - } - } - - md.decrypted = decrypted - if err := packets.Push(decrypted); err != nil { - return nil, err - } - return readSignedMessage(packets, md, keyring) -} - -// readSignedMessage reads a possibly signed message if mdin is non-zero then -// that structure is updated and returned. Otherwise a fresh MessageDetails is -// used. -func readSignedMessage(packets *packet.Reader, mdin *MessageDetails, keyring KeyRing) (md *MessageDetails, err error) { - if mdin == nil { - mdin = new(MessageDetails) - } - md = mdin - - var p packet.Packet - var h hash.Hash - var wrappedHash hash.Hash -FindLiteralData: - for { - p, err = packets.Next() - if err != nil { - return nil, err - } - switch p := p.(type) { - case *packet.Compressed: - if err := packets.Push(p.Body); err != nil { - return nil, err - } - case *packet.OnePassSignature: - if !p.IsLast { - return nil, errors.UnsupportedError("nested signatures") - } - - h, wrappedHash, err = hashForSignature(p.Hash, p.SigType) - if err != nil { - md = nil - return - } - - md.IsSigned = true - md.SignedByKeyId = p.KeyId - keys := keyring.KeysByIdUsage(p.KeyId, packet.KeyFlagSign) - if len(keys) > 0 { - md.SignedBy = &keys[0] - } - case *packet.LiteralData: - md.LiteralData = p - break FindLiteralData - } - } - - if md.SignedBy != nil { - md.UnverifiedBody = &signatureCheckReader{packets, h, wrappedHash, md} - } else if md.decrypted != nil { - md.UnverifiedBody = checkReader{md} - } else { - md.UnverifiedBody = md.LiteralData.Body - } - - return md, nil -} - -// hashForSignature returns a pair of hashes that can be used to verify a -// signature. The signature may specify that the contents of the signed message -// should be preprocessed (i.e. to normalize line endings). Thus this function -// returns two hashes. The second should be used to hash the message itself and -// performs any needed preprocessing. -func hashForSignature(hashId crypto.Hash, sigType packet.SignatureType) (hash.Hash, hash.Hash, error) { - if !hashId.Available() { - return nil, nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashId))) - } - h := hashId.New() - - switch sigType { - case packet.SigTypeBinary: - return h, h, nil - case packet.SigTypeText: - return h, NewCanonicalTextHash(h), nil - } - - return nil, nil, errors.UnsupportedError("unsupported signature type: " + strconv.Itoa(int(sigType))) -} - -// checkReader wraps an io.Reader from a LiteralData packet. When it sees EOF -// it closes the ReadCloser from any SymmetricallyEncrypted packet to trigger -// MDC checks. -type checkReader struct { - md *MessageDetails -} - -func (cr checkReader) Read(buf []byte) (n int, err error) { - n, err = cr.md.LiteralData.Body.Read(buf) - if err == io.EOF { - mdcErr := cr.md.decrypted.Close() - if mdcErr != nil { - err = mdcErr - } - } - return -} - -// signatureCheckReader wraps an io.Reader from a LiteralData packet and hashes -// the data as it is read. When it sees an EOF from the underlying io.Reader -// it parses and checks a trailing Signature packet and triggers any MDC checks. -type signatureCheckReader struct { - packets *packet.Reader - h, wrappedHash hash.Hash - md *MessageDetails -} - -func (scr *signatureCheckReader) Read(buf []byte) (n int, err error) { - n, err = scr.md.LiteralData.Body.Read(buf) - scr.wrappedHash.Write(buf[:n]) - if err == io.EOF { - var p packet.Packet - p, scr.md.SignatureError = scr.packets.Next() - if scr.md.SignatureError != nil { - return - } - - var ok bool - if scr.md.Signature, ok = p.(*packet.Signature); ok { - scr.md.SignatureError = scr.md.SignedBy.PublicKey.VerifySignature(scr.h, scr.md.Signature) - } else if scr.md.SignatureV3, ok = p.(*packet.SignatureV3); ok { - scr.md.SignatureError = scr.md.SignedBy.PublicKey.VerifySignatureV3(scr.h, scr.md.SignatureV3) - } else { - scr.md.SignatureError = errors.StructuralError("LiteralData not followed by Signature") - return - } - - // The SymmetricallyEncrypted packet, if any, might have an - // unsigned hash of its own. In order to check this we need to - // close that Reader. - if scr.md.decrypted != nil { - mdcErr := scr.md.decrypted.Close() - if mdcErr != nil { - err = mdcErr - } - } - } - return -} - -// CheckDetachedSignature takes a signed file and a detached signature and -// returns the signer if the signature is valid. If the signer isn't known, -// ErrUnknownIssuer is returned. -func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { - var issuerKeyId uint64 - var hashFunc crypto.Hash - var sigType packet.SignatureType - var keys []Key - var p packet.Packet - - packets := packet.NewReader(signature) - for { - p, err = packets.Next() - if err == io.EOF { - return nil, errors.ErrUnknownIssuer - } - if err != nil { - return nil, err - } - - switch sig := p.(type) { - case *packet.Signature: - if sig.IssuerKeyId == nil { - return nil, errors.StructuralError("signature doesn't have an issuer") - } - issuerKeyId = *sig.IssuerKeyId - hashFunc = sig.Hash - sigType = sig.SigType - case *packet.SignatureV3: - issuerKeyId = sig.IssuerKeyId - hashFunc = sig.Hash - sigType = sig.SigType - default: - return nil, errors.StructuralError("non signature packet found") - } - - keys = keyring.KeysByIdUsage(issuerKeyId, packet.KeyFlagSign) - if len(keys) > 0 { - break - } - } - - if len(keys) == 0 { - panic("unreachable") - } - - h, wrappedHash, err := hashForSignature(hashFunc, sigType) - if err != nil { - return nil, err - } - - if _, err := io.Copy(wrappedHash, signed); err != nil && err != io.EOF { - return nil, err - } - - for _, key := range keys { - switch sig := p.(type) { - case *packet.Signature: - err = key.PublicKey.VerifySignature(h, sig) - case *packet.SignatureV3: - err = key.PublicKey.VerifySignatureV3(h, sig) - default: - panic("unreachable") - } - - if err == nil { - return key.Entity, nil - } - } - - return nil, err -} - -// CheckArmoredDetachedSignature performs the same actions as -// CheckDetachedSignature but expects the signature to be armored. -func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader) (signer *Entity, err error) { - body, err := readArmored(signature, SignatureType) - if err != nil { - return - } - - return CheckDetachedSignature(keyring, signed, body) -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go deleted file mode 100644 index 4b9a44ca..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/s2k/s2k.go +++ /dev/null @@ -1,273 +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 s2k implements the various OpenPGP string-to-key transforms as -// specified in RFC 4800 section 3.7.1. -package s2k // import "golang.org/x/crypto/openpgp/s2k" - -import ( - "crypto" - "hash" - "io" - "strconv" - - "golang.org/x/crypto/openpgp/errors" -) - -// Config collects configuration parameters for s2k key-stretching -// transformatioms. A nil *Config is valid and results in all default -// values. Currently, Config is used only by the Serialize function in -// this package. -type Config struct { - // Hash is the default hash function to be used. If - // nil, SHA1 is used. - Hash crypto.Hash - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 1024 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 65536 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. When set, it is strongly encrouraged to - // use a value that is at least 65536. See RFC 4880 Section - // 3.7.1.3. - S2KCount int -} - -func (c *Config) hash() crypto.Hash { - if c == nil || uint(c.Hash) == 0 { - // SHA1 is the historical default in this package. - return crypto.SHA1 - } - - return c.Hash -} - -func (c *Config) encodedCount() uint8 { - if c == nil || c.S2KCount == 0 { - return 96 // The common case. Correspoding to 65536 - } - - i := c.S2KCount - switch { - // Behave like GPG. Should we make 65536 the lowest value used? - case i < 1024: - i = 1024 - case i > 65011712: - i = 65011712 - } - - return encodeCount(i) -} - -// encodeCount converts an iterative "count" in the range 1024 to -// 65011712, inclusive, to an encoded count. The return value is the -// octet that is actually stored in the GPG file. encodeCount panics -// if i is not in the above range (encodedCount above takes care to -// pass i in the correct range). See RFC 4880 Section 3.7.7.1. -func encodeCount(i int) uint8 { - if i < 1024 || i > 65011712 { - panic("count arg i outside the required range") - } - - for encoded := 0; encoded < 256; encoded++ { - count := decodeCount(uint8(encoded)) - if count >= i { - return uint8(encoded) - } - } - - return 255 -} - -// decodeCount returns the s2k mode 3 iterative "count" corresponding to -// the encoded octet c. -func decodeCount(c uint8) int { - return (16 + int(c&15)) << (uint32(c>>4) + 6) -} - -// Simple writes to out the result of computing the Simple S2K function (RFC -// 4880, section 3.7.1.1) using the given hash and input passphrase. -func Simple(out []byte, h hash.Hash, in []byte) { - Salted(out, h, in, nil) -} - -var zero [1]byte - -// Salted writes to out the result of computing the Salted S2K function (RFC -// 4880, section 3.7.1.2) using the given hash, input passphrase and salt. -func Salted(out []byte, h hash.Hash, in []byte, salt []byte) { - done := 0 - var digest []byte - - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - h.Write(salt) - h.Write(in) - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Iterated writes to out the result of computing the Iterated and Salted S2K -// function (RFC 4880, section 3.7.1.3) using the given hash, input passphrase, -// salt and iteration count. -func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int) { - combined := make([]byte, len(in)+len(salt)) - copy(combined, salt) - copy(combined[len(salt):], in) - - if count < len(combined) { - count = len(combined) - } - - done := 0 - var digest []byte - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - written := 0 - for written < count { - if written+len(combined) > count { - todo := count - written - h.Write(combined[:todo]) - written = count - } else { - h.Write(combined) - written += len(combined) - } - } - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Parse reads a binary specification for a string-to-key transformation from r -// and returns a function which performs that transform. -func Parse(r io.Reader) (f func(out, in []byte), err error) { - var buf [9]byte - - _, err = io.ReadFull(r, buf[:2]) - if err != nil { - return - } - - hash, ok := HashIdToHash(buf[1]) - if !ok { - return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(buf[1]))) - } - if !hash.Available() { - return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hash))) - } - h := hash.New() - - switch buf[0] { - case 0: - f := func(out, in []byte) { - Simple(out, h, in) - } - return f, nil - case 1: - _, err = io.ReadFull(r, buf[:8]) - if err != nil { - return - } - f := func(out, in []byte) { - Salted(out, h, in, buf[:8]) - } - return f, nil - case 3: - _, err = io.ReadFull(r, buf[:9]) - if err != nil { - return - } - count := decodeCount(buf[8]) - f := func(out, in []byte) { - Iterated(out, h, in, buf[:8], count) - } - return f, nil - } - - return nil, errors.UnsupportedError("S2K function") -} - -// Serialize salts and stretches the given passphrase and writes the -// resulting key into key. It also serializes an S2K descriptor to -// w. The key stretching can be configured with c, which may be -// nil. In that case, sensible defaults will be used. -func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error { - var buf [11]byte - buf[0] = 3 /* iterated and salted */ - buf[1], _ = HashToHashId(c.hash()) - salt := buf[2:10] - if _, err := io.ReadFull(rand, salt); err != nil { - return err - } - encodedCount := c.encodedCount() - count := decodeCount(encodedCount) - buf[10] = encodedCount - if _, err := w.Write(buf[:]); err != nil { - return err - } - - Iterated(key, c.hash().New(), passphrase, salt, count) - return nil -} - -// hashToHashIdMapping contains pairs relating OpenPGP's hash identifier with -// Go's crypto.Hash type. See RFC 4880, section 9.4. -var hashToHashIdMapping = []struct { - id byte - hash crypto.Hash - name string -}{ - {1, crypto.MD5, "MD5"}, - {2, crypto.SHA1, "SHA1"}, - {3, crypto.RIPEMD160, "RIPEMD160"}, - {8, crypto.SHA256, "SHA256"}, - {9, crypto.SHA384, "SHA384"}, - {10, crypto.SHA512, "SHA512"}, - {11, crypto.SHA224, "SHA224"}, -} - -// HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP -// hash id. -func HashIdToHash(id byte) (h crypto.Hash, ok bool) { - for _, m := range hashToHashIdMapping { - if m.id == id { - return m.hash, true - } - } - return 0, false -} - -// HashIdToString returns the name of the hash function corresponding to the -// given OpenPGP hash id. -func HashIdToString(id byte) (name string, ok bool) { - for _, m := range hashToHashIdMapping { - if m.id == id { - return m.name, true - } - } - - return "", false -} - -// HashIdToHash returns an OpenPGP hash id which corresponds the given Hash. -func HashToHashId(h crypto.Hash) (id byte, ok bool) { - for _, m := range hashToHashIdMapping { - if m.hash == h { - return m.id, true - } - } - return 0, false -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/write.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/write.go deleted file mode 100644 index 65a304cc..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/openpgp/write.go +++ /dev/null @@ -1,378 +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 openpgp - -import ( - "crypto" - "hash" - "io" - "strconv" - "time" - - "golang.org/x/crypto/openpgp/armor" - "golang.org/x/crypto/openpgp/errors" - "golang.org/x/crypto/openpgp/packet" - "golang.org/x/crypto/openpgp/s2k" -) - -// DetachSign signs message with the private key from signer (which must -// already have been decrypted) and writes the signature to w. -// If config is nil, sensible defaults will be used. -func DetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return detachSign(w, signer, message, packet.SigTypeBinary, config) -} - -// ArmoredDetachSign signs message with the private key from signer (which -// must already have been decrypted) and writes an armored signature to w. -// If config is nil, sensible defaults will be used. -func ArmoredDetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) (err error) { - return armoredDetachSign(w, signer, message, packet.SigTypeBinary, config) -} - -// DetachSignText signs message (after canonicalising the line endings) with -// the private key from signer (which must already have been decrypted) and -// writes the signature to w. -// If config is nil, sensible defaults will be used. -func DetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return detachSign(w, signer, message, packet.SigTypeText, config) -} - -// ArmoredDetachSignText signs message (after canonicalising the line endings) -// with the private key from signer (which must already have been decrypted) -// and writes an armored signature to w. -// If config is nil, sensible defaults will be used. -func ArmoredDetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return armoredDetachSign(w, signer, message, packet.SigTypeText, config) -} - -func armoredDetachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { - out, err := armor.Encode(w, SignatureType, nil) - if err != nil { - return - } - err = detachSign(out, signer, message, sigType, config) - if err != nil { - return - } - return out.Close() -} - -func detachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { - if signer.PrivateKey == nil { - return errors.InvalidArgumentError("signing key doesn't have a private key") - } - if signer.PrivateKey.Encrypted { - return errors.InvalidArgumentError("signing key is encrypted") - } - - sig := new(packet.Signature) - sig.SigType = sigType - sig.PubKeyAlgo = signer.PrivateKey.PubKeyAlgo - sig.Hash = config.Hash() - sig.CreationTime = config.Now() - sig.IssuerKeyId = &signer.PrivateKey.KeyId - - h, wrappedHash, err := hashForSignature(sig.Hash, sig.SigType) - if err != nil { - return - } - io.Copy(wrappedHash, message) - - err = sig.Sign(h, signer.PrivateKey, config) - if err != nil { - return - } - - return sig.Serialize(w) -} - -// FileHints contains metadata about encrypted files. This metadata is, itself, -// encrypted. -type FileHints struct { - // IsBinary can be set to hint that the contents are binary data. - IsBinary bool - // FileName hints at the name of the file that should be written. It's - // truncated to 255 bytes if longer. It may be empty to suggest that the - // file should not be written to disk. It may be equal to "_CONSOLE" to - // suggest the data should not be written to disk. - FileName string - // ModTime contains the modification time of the file, or the zero time if not applicable. - ModTime time.Time -} - -// SymmetricallyEncrypt acts like gpg -c: it encrypts a file with a passphrase. -// The resulting WriteCloser must be closed after the contents of the file have -// been written. -// If config is nil, sensible defaults will be used. -func SymmetricallyEncrypt(ciphertext io.Writer, passphrase []byte, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - if hints == nil { - hints = &FileHints{} - } - - key, err := packet.SerializeSymmetricKeyEncrypted(ciphertext, passphrase, config) - if err != nil { - return - } - w, err := packet.SerializeSymmetricallyEncrypted(ciphertext, config.Cipher(), key, config) - if err != nil { - return - } - - literaldata := w - if algo := config.Compression(); algo != packet.CompressionNone { - var compConfig *packet.CompressionConfig - if config != nil { - compConfig = config.CompressionConfig - } - literaldata, err = packet.SerializeCompressed(w, algo, compConfig) - if err != nil { - return - } - } - - var epochSeconds uint32 - if !hints.ModTime.IsZero() { - epochSeconds = uint32(hints.ModTime.Unix()) - } - return packet.SerializeLiteral(literaldata, hints.IsBinary, hints.FileName, epochSeconds) -} - -// intersectPreferences mutates and returns a prefix of a that contains only -// the values in the intersection of a and b. The order of a is preserved. -func intersectPreferences(a []uint8, b []uint8) (intersection []uint8) { - var j int - for _, v := range a { - for _, v2 := range b { - if v == v2 { - a[j] = v - j++ - break - } - } - } - - return a[:j] -} - -func hashToHashId(h crypto.Hash) uint8 { - v, ok := s2k.HashToHashId(h) - if !ok { - panic("tried to convert unknown hash") - } - return v -} - -// Encrypt encrypts a message to a number of recipients and, optionally, signs -// it. hints contains optional information, that is also encrypted, that aids -// the recipients in processing the message. The resulting WriteCloser must -// be closed after the contents of the file have been written. -// If config is nil, sensible defaults will be used. -func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - var signer *packet.PrivateKey - if signed != nil { - signKey, ok := signed.signingKey(config.Now()) - if !ok { - return nil, errors.InvalidArgumentError("no valid signing keys") - } - signer = signKey.PrivateKey - if signer == nil { - return nil, errors.InvalidArgumentError("no private key in signing key") - } - if signer.Encrypted { - return nil, errors.InvalidArgumentError("signing key must be decrypted") - } - } - - // These are the possible ciphers that we'll use for the message. - candidateCiphers := []uint8{ - uint8(packet.CipherAES128), - uint8(packet.CipherAES256), - uint8(packet.CipherCAST5), - } - // These are the possible hash functions that we'll use for the signature. - candidateHashes := []uint8{ - hashToHashId(crypto.SHA256), - hashToHashId(crypto.SHA512), - hashToHashId(crypto.SHA1), - hashToHashId(crypto.RIPEMD160), - } - // In the event that a recipient doesn't specify any supported ciphers - // or hash functions, these are the ones that we assume that every - // implementation supports. - defaultCiphers := candidateCiphers[len(candidateCiphers)-1:] - defaultHashes := candidateHashes[len(candidateHashes)-1:] - - encryptKeys := make([]Key, len(to)) - for i := range to { - var ok bool - encryptKeys[i], ok = to[i].encryptionKey(config.Now()) - if !ok { - return nil, errors.InvalidArgumentError("cannot encrypt a message to key id " + strconv.FormatUint(to[i].PrimaryKey.KeyId, 16) + " because it has no encryption keys") - } - - sig := to[i].primaryIdentity().SelfSignature - - preferredSymmetric := sig.PreferredSymmetric - if len(preferredSymmetric) == 0 { - preferredSymmetric = defaultCiphers - } - preferredHashes := sig.PreferredHash - if len(preferredHashes) == 0 { - preferredHashes = defaultHashes - } - candidateCiphers = intersectPreferences(candidateCiphers, preferredSymmetric) - candidateHashes = intersectPreferences(candidateHashes, preferredHashes) - } - - if len(candidateCiphers) == 0 || len(candidateHashes) == 0 { - return nil, errors.InvalidArgumentError("cannot encrypt because recipient set shares no common algorithms") - } - - cipher := packet.CipherFunction(candidateCiphers[0]) - // If the cipher specified by config is a candidate, we'll use that. - configuredCipher := config.Cipher() - for _, c := range candidateCiphers { - cipherFunc := packet.CipherFunction(c) - if cipherFunc == configuredCipher { - cipher = cipherFunc - break - } - } - - var hash crypto.Hash - for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h.Available() { - hash = h - break - } - } - - // If the hash specified by config is a candidate, we'll use that. - if configuredHash := config.Hash(); configuredHash.Available() { - for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h == configuredHash { - hash = h - break - } - } - } - - if hash == 0 { - hashId := candidateHashes[0] - name, ok := s2k.HashIdToString(hashId) - if !ok { - name = "#" + strconv.Itoa(int(hashId)) - } - return nil, errors.InvalidArgumentError("cannot encrypt because no candidate hash functions are compiled in. (Wanted " + name + " in this case.)") - } - - symKey := make([]byte, cipher.KeySize()) - if _, err := io.ReadFull(config.Random(), symKey); err != nil { - return nil, err - } - - for _, key := range encryptKeys { - if err := packet.SerializeEncryptedKey(ciphertext, key.PublicKey, cipher, symKey, config); err != nil { - return nil, err - } - } - - encryptedData, err := packet.SerializeSymmetricallyEncrypted(ciphertext, cipher, symKey, config) - if err != nil { - return - } - - if signer != nil { - ops := &packet.OnePassSignature{ - SigType: packet.SigTypeBinary, - Hash: hash, - PubKeyAlgo: signer.PubKeyAlgo, - KeyId: signer.KeyId, - IsLast: true, - } - if err := ops.Serialize(encryptedData); err != nil { - return nil, err - } - } - - if hints == nil { - hints = &FileHints{} - } - - w := encryptedData - if signer != nil { - // If we need to write a signature packet after the literal - // data then we need to stop literalData from closing - // encryptedData. - w = noOpCloser{encryptedData} - - } - var epochSeconds uint32 - if !hints.ModTime.IsZero() { - epochSeconds = uint32(hints.ModTime.Unix()) - } - literalData, err := packet.SerializeLiteral(w, hints.IsBinary, hints.FileName, epochSeconds) - if err != nil { - return nil, err - } - - if signer != nil { - return signatureWriter{encryptedData, literalData, hash, hash.New(), signer, config}, nil - } - return literalData, nil -} - -// signatureWriter hashes the contents of a message while passing it along to -// literalData. When closed, it closes literalData, writes a signature packet -// to encryptedData and then also closes encryptedData. -type signatureWriter struct { - encryptedData io.WriteCloser - literalData io.WriteCloser - hashType crypto.Hash - h hash.Hash - signer *packet.PrivateKey - config *packet.Config -} - -func (s signatureWriter) Write(data []byte) (int, error) { - s.h.Write(data) - return s.literalData.Write(data) -} - -func (s signatureWriter) Close() error { - sig := &packet.Signature{ - SigType: packet.SigTypeBinary, - PubKeyAlgo: s.signer.PubKeyAlgo, - Hash: s.hashType, - CreationTime: s.config.Now(), - IssuerKeyId: &s.signer.KeyId, - } - - if err := sig.Sign(s.h, s.signer, s.config); err != nil { - return err - } - if err := s.literalData.Close(); err != nil { - return err - } - if err := sig.Serialize(s.encryptedData); err != nil { - return err - } - return s.encryptedData.Close() -} - -// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. -// TODO: we have two of these in OpenPGP packages alone. This probably needs -// to be promoted somewhere more common. -type noOpCloser struct { - w io.Writer -} - -func (c noOpCloser) Write(data []byte) (n int, err error) { - return c.w.Write(data) -} - -func (c noOpCloser) Close() error { - return nil -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/ripemd160/ripemd160.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/ripemd160/ripemd160.go deleted file mode 100644 index 6c6e8423..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/ripemd160/ripemd160.go +++ /dev/null @@ -1,120 +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 ripemd160 implements the RIPEMD-160 hash algorithm. -package ripemd160 // import "golang.org/x/crypto/ripemd160" - -// RIPEMD-160 is designed by by Hans Dobbertin, Antoon Bosselaers, and Bart -// Preneel with specifications available at: -// http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/AB-9601.pdf. - -import ( - "crypto" - "hash" -) - -func init() { - crypto.RegisterHash(crypto.RIPEMD160, New) -} - -// The size of the checksum in bytes. -const Size = 20 - -// The block size of the hash algorithm in bytes. -const BlockSize = 64 - -const ( - _s0 = 0x67452301 - _s1 = 0xefcdab89 - _s2 = 0x98badcfe - _s3 = 0x10325476 - _s4 = 0xc3d2e1f0 -) - -// digest represents the partial evaluation of a checksum. -type digest struct { - s [5]uint32 // running context - x [BlockSize]byte // temporary buffer - nx int // index into x - tc uint64 // total count of bytes processed -} - -func (d *digest) Reset() { - d.s[0], d.s[1], d.s[2], d.s[3], d.s[4] = _s0, _s1, _s2, _s3, _s4 - d.nx = 0 - d.tc = 0 -} - -// New returns a new hash.Hash computing the checksum. -func New() hash.Hash { - result := new(digest) - result.Reset() - return result -} - -func (d *digest) Size() int { return Size } - -func (d *digest) BlockSize() int { return BlockSize } - -func (d *digest) Write(p []byte) (nn int, err error) { - nn = len(p) - d.tc += uint64(nn) - if d.nx > 0 { - n := len(p) - if n > BlockSize-d.nx { - n = BlockSize - d.nx - } - for i := 0; i < n; i++ { - d.x[d.nx+i] = p[i] - } - d.nx += n - if d.nx == BlockSize { - _Block(d, d.x[0:]) - d.nx = 0 - } - p = p[n:] - } - n := _Block(d, p) - p = p[n:] - if len(p) > 0 { - d.nx = copy(d.x[:], p) - } - return -} - -func (d0 *digest) Sum(in []byte) []byte { - // Make a copy of d0 so that caller can keep writing and summing. - d := *d0 - - // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64. - tc := d.tc - var tmp [64]byte - tmp[0] = 0x80 - if tc%64 < 56 { - d.Write(tmp[0 : 56-tc%64]) - } else { - d.Write(tmp[0 : 64+56-tc%64]) - } - - // Length in bits. - tc <<= 3 - for i := uint(0); i < 8; i++ { - tmp[i] = byte(tc >> (8 * i)) - } - d.Write(tmp[0:8]) - - if d.nx != 0 { - panic("d.nx != 0") - } - - var digest [Size]byte - for i, s := range d.s { - digest[i*4] = byte(s) - digest[i*4+1] = byte(s >> 8) - digest[i*4+2] = byte(s >> 16) - digest[i*4+3] = byte(s >> 24) - } - - return append(in, digest[:]...) -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go b/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go deleted file mode 100644 index 7bc8e6c4..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go +++ /dev/null @@ -1,161 +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. - -// RIPEMD-160 block step. -// In its own file so that a faster assembly or C version -// can be substituted easily. - -package ripemd160 - -// work buffer indices and roll amounts for one line -var _n = [80]uint{ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, - 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, - 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, - 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, -} - -var _r = [80]uint{ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, - 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, - 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, - 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, - 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, -} - -// same for the other parallel one -var n_ = [80]uint{ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, - 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, - 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, - 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, - 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, -} - -var r_ = [80]uint{ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, - 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, - 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, - 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, - 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, -} - -func _Block(md *digest, p []byte) int { - n := 0 - var x [16]uint32 - var alpha, beta uint32 - for len(p) >= BlockSize { - a, b, c, d, e := md.s[0], md.s[1], md.s[2], md.s[3], md.s[4] - aa, bb, cc, dd, ee := a, b, c, d, e - j := 0 - for i := 0; i < 16; i++ { - x[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24 - j += 4 - } - - // round 1 - i := 0 - for i < 16 { - alpha = a + (b ^ c ^ d) + x[_n[i]] - s := _r[i] - alpha = (alpha<>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb ^ (cc | ^dd)) + x[n_[i]] + 0x50a28be6 - s = r_[i] - alpha = (alpha<>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 2 - for i < 32 { - alpha = a + (b&c | ^b&d) + x[_n[i]] + 0x5a827999 - s := _r[i] - alpha = (alpha<>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb&dd | cc&^dd) + x[n_[i]] + 0x5c4dd124 - s = r_[i] - alpha = (alpha<>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 3 - for i < 48 { - alpha = a + (b | ^c ^ d) + x[_n[i]] + 0x6ed9eba1 - s := _r[i] - alpha = (alpha<>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb | ^cc ^ dd) + x[n_[i]] + 0x6d703ef3 - s = r_[i] - alpha = (alpha<>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 4 - for i < 64 { - alpha = a + (b&d | c&^d) + x[_n[i]] + 0x8f1bbcdc - s := _r[i] - alpha = (alpha<>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb&cc | ^bb&dd) + x[n_[i]] + 0x7a6d76e9 - s = r_[i] - alpha = (alpha<>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // round 5 - for i < 80 { - alpha = a + (b ^ (c | ^d)) + x[_n[i]] + 0xa953fd4e - s := _r[i] - alpha = (alpha<>(32-s)) + e - beta = c<<10 | c>>22 - a, b, c, d, e = e, alpha, b, beta, d - - // parallel line - alpha = aa + (bb ^ cc ^ dd) + x[n_[i]] - s = r_[i] - alpha = (alpha<>(32-s)) + ee - beta = cc<<10 | cc>>22 - aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd - - i++ - } - - // combine results - dd += c + md.s[1] - md.s[1] = md.s[2] + d + ee - md.s[2] = md.s[3] + e + aa - md.s[3] = md.s[4] + a + bb - md.s[4] = md.s[0] + b + cc - md.s[0] = dd - - p = p[BlockSize:] - n += BlockSize - } - return n -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/README.md b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/README.md deleted file mode 100644 index 2ed3314c..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/README.md +++ /dev/null @@ -1,135 +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 -------- - -Some more examples can be found in the "examples" folder. - -```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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/apic.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/apic.go deleted file mode 100644 index 95ec014e..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/apic.go +++ /dev/null @@ -1,742 +0,0 @@ -package yaml - -import ( - "io" - "os" -) - -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 -} - -// File read handler. -func yaml_file_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) { - return parser.input_file.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_file(parser *yaml_parser_t, file *os.File) { - if parser.read_handler != nil { - panic("must set the input source only once") - } - parser.read_handler = yaml_file_read_handler - parser.input_file = file -} - -// 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) bool { - *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), - } - return true -} - -// 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 -} - -// File write handler. -func yaml_file_write_handler(emitter *yaml_emitter_t, buffer []byte) error { - _, err := emitter.output_file.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_file(emitter *yaml_emitter_t, file io.Writer) { - if emitter.write_handler != nil { - panic("must set the output target only once") - } - emitter.write_handler = yaml_file_write_handler - emitter.output_file = file -} - -// 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) bool { - *event = yaml_event_t{ - typ: yaml_STREAM_START_EVENT, - encoding: encoding, - } - return true -} - -// Create STREAM-END. -func yaml_stream_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_STREAM_END_EVENT, - } - return true -} - -// 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) bool { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_START_EVENT, - version_directive: version_directive, - tag_directives: tag_directives, - implicit: implicit, - } - return true -} - -// Create DOCUMENT-END. -func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) bool { - *event = yaml_event_t{ - typ: yaml_DOCUMENT_END_EVENT, - implicit: implicit, - } - return true -} - -///* -// * 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) bool { - *event = yaml_event_t{ - typ: yaml_MAPPING_START_EVENT, - anchor: anchor, - tag: tag, - implicit: implicit, - style: yaml_style_t(style), - } - return true -} - -// Create MAPPING-END. -func yaml_mapping_end_event_initialize(event *yaml_event_t) bool { - *event = yaml_event_t{ - typ: yaml_MAPPING_END_EVENT, - } - return true -} - -// 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 compliler 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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/decode.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/decode.go deleted file mode 100644 index e85eb2e3..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/decode.go +++ /dev/null @@ -1,685 +0,0 @@ -package yaml - -import ( - "encoding" - "encoding/base64" - "fmt" - "math" - "reflect" - "strconv" - "time" -) - -const ( - documentNode = 1 << iota - mappingNode - sequenceNode - scalarNode - aliasNode -) - -type node struct { - kind int - line, column int - tag string - 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 -} - -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) - - p.skip() - if p.event.typ != yaml_STREAM_START_EVENT { - panic("expected stream start event, got " + strconv.Itoa(int(p.event.typ))) - } - p.skip() - return &p -} - -func (p *parser) destroy() { - if p.event.typ != yaml_NO_EVENT { - yaml_event_delete(&p.event) - } - yaml_parser_delete(&p.parser) -} - -func (p *parser) skip() { - if p.event.typ != yaml_NO_EVENT { - if p.event.typ == yaml_STREAM_END_EVENT { - failf("attempted to go past the end of stream; corrupted value?") - } - yaml_event_delete(&p.event) - } - if !yaml_parser_parse(&p.parser, &p.event) { - p.fail() - } -} - -func (p *parser) fail() { - var where string - var line int - if p.parser.problem_mark.line != 0 { - line = p.parser.problem_mark.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 { - switch p.event.typ { - 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: " + strconv.Itoa(int(p.event.typ))) - } -} - -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.skip() - n.children = append(n.children, p.parse()) - if p.event.typ != yaml_DOCUMENT_END_EVENT { - panic("expected end of document event but got " + strconv.Itoa(int(p.event.typ))) - } - p.skip() - return n -} - -func (p *parser) alias() *node { - n := p.node(aliasNode) - n.value = string(p.event.anchor) - p.skip() - 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.skip() - return n -} - -func (p *parser) sequence() *node { - n := p.node(sequenceNode) - p.anchor(n, p.event.anchor) - p.skip() - for p.event.typ != yaml_SEQUENCE_END_EVENT { - n.children = append(n.children, p.parse()) - } - p.skip() - return n -} - -func (p *parser) mapping() *node { - n := p.node(mappingNode) - p.anchor(n, p.event.anchor) - p.skip() - for p.event.typ != yaml_MAPPING_END_EVENT { - n.children = append(n.children, p.parse(), p.parse()) - } - p.skip() - return n -} - -// ---------------------------------------------------------------------------- -// Decoder, unmarshals a node into a provided value. - -type decoder struct { - doc *node - aliases map[string]bool - mapType reflect.Type - terrors []string - strict bool -} - -var ( - mapItemType = reflect.TypeOf(MapItem{}) - durationType = reflect.TypeOf(time.Duration(0)) - defaultMapType = reflect.TypeOf(map[interface{}]interface{}{}) - ifaceType = defaultMapType.Elem() -) - -func newDecoder(strict bool) *decoder { - d := &decoder{mapType: defaultMapType, strict: strict} - d.aliases = make(map[string]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 -} - -func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) { - 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) { - an, ok := d.doc.anchors[n.value] - if !ok { - failf("unknown anchor '%s' referenced", n.value) - } - if d.aliases[n.value] { - failf("anchor '%s' value contains itself", n.value) - } - d.aliases[n.value] = true - good = d.unmarshal(an, out) - delete(d.aliases, n.value) - 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) (good 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 s, ok := resolved.(string); ok && out.CanAddr() { - if u, ok := out.Addr().Interface().(encoding.TextUnmarshaler); ok { - err := u.UnmarshalText([]byte(s)) - if err != nil { - fail(err) - } - return true - } - } - switch out.Kind() { - case reflect.String: - if tag == yaml_BINARY_TAG { - out.SetString(resolved.(string)) - good = true - } else if resolved != nil { - out.SetString(n.value) - good = true - } - case reflect.Interface: - if resolved == nil { - out.Set(reflect.Zero(out.Type())) - } else { - out.Set(reflect.ValueOf(resolved)) - } - good = 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)) - good = true - } - case int64: - if !out.OverflowInt(resolved) { - out.SetInt(resolved) - good = true - } - case uint64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - good = true - } - case float64: - if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) { - out.SetInt(int64(resolved)) - good = true - } - case string: - if out.Type() == durationType { - d, err := time.ParseDuration(resolved) - if err == nil { - out.SetInt(int64(d)) - good = 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)) - good = true - } - case int64: - if resolved >= 0 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - good = true - } - case uint64: - if !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - good = true - } - case float64: - if resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) { - out.SetUint(uint64(resolved)) - good = true - } - } - case reflect.Bool: - switch resolved := resolved.(type) { - case bool: - out.SetBool(resolved) - good = true - } - case reflect.Float32, reflect.Float64: - switch resolved := resolved.(type) { - case int: - out.SetFloat(float64(resolved)) - good = true - case int64: - out.SetFloat(float64(resolved)) - good = true - case uint64: - out.SetFloat(float64(resolved)) - good = true - case float64: - out.SetFloat(resolved) - good = 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) - good = true - } - } - if !good { - d.terror(n, tag, out) - } - return good -} - -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.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++ - } - } - 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) { - out.SetMapIndex(k, e) - } - } - } - d.mapType = mapType - return true -} - -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() - } - - 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 { - 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) - inlineMap.SetMapIndex(name, value) - } else if d.strict { - d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in struct %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: - an, ok := d.doc.anchors[n.value] - if ok && an.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 { - an, ok := d.doc.anchors[ni.value] - if ok && an.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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/emitterc.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/emitterc.go deleted file mode 100644 index dcaf502f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/emitterc.go +++ /dev/null @@ -1,1684 +0,0 @@ -package yaml - -import ( - "bytes" -) - -// 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, - "expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS") - } -} - -// 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 achor. -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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/encode.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/encode.go deleted file mode 100644 index 84f84995..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/encode.go +++ /dev/null @@ -1,306 +0,0 @@ -package yaml - -import ( - "encoding" - "fmt" - "reflect" - "regexp" - "sort" - "strconv" - "strings" - "time" -) - -type encoder struct { - emitter yaml_emitter_t - event yaml_event_t - out []byte - flow bool -} - -func newEncoder() (e *encoder) { - e = &encoder{} - e.must(yaml_emitter_initialize(&e.emitter)) - yaml_emitter_set_output_string(&e.emitter, &e.out) - yaml_emitter_set_unicode(&e.emitter, true) - e.must(yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)) - e.emit() - e.must(yaml_document_start_event_initialize(&e.event, nil, nil, true)) - e.emit() - return e -} - -func (e *encoder) finish() { - e.must(yaml_document_end_event_initialize(&e.event, true)) - e.emit() - e.emitter.open_ended = false - e.must(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. - if !yaml_emitter_emit(&e.emitter, &e.event) && e.event.typ != yaml_DOCUMENT_END_EVENT && e.event.typ != yaml_STREAM_END_EVENT { - e.must(false) - } -} - -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) marshal(tag string, in reflect.Value) { - if !in.IsValid() { - e.nilv() - return - } - iface := in.Interface() - if m, ok := iface.(Marshaler); ok { - v, err := m.MarshalYAML() - if err != nil { - fail(err) - } - if v == nil { - e.nilv() - return - } - in = reflect.ValueOf(v) - } else if m, ok := iface.(encoding.TextMarshaler); ok { - text, err := m.MarshalText() - if err != nil { - fail(err) - } - in = reflect.ValueOf(string(text)) - } - switch in.Kind() { - case reflect.Interface: - if in.IsNil() { - e.nilv() - } else { - e.marshal(tag, in.Elem()) - } - case reflect.Map: - e.mapv(tag, in) - case reflect.Ptr: - if in.IsNil() { - e.nilv() - } else { - e.marshal(tag, in.Elem()) - } - case reflect.Struct: - e.structv(tag, in) - case reflect.Slice: - 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 - } - e.must(yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)) - e.emit() - f() - e.must(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() - rtag, rs := resolve("", s) - if rtag == yaml_BINARY_TAG { - if tag == "" || tag == yaml_STR_TAG { - tag = rtag - s = rs.(string) - } else if tag == yaml_BINARY_TAG { - failf("explicitly tagged !!binary data must be base64-encoded") - } else { - failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag)) - } - } - if tag == "" && (rtag != yaml_STR_TAG || isBase60Float(s)) { - style = yaml_DOUBLE_QUOTED_SCALAR_STYLE - } else if strings.Contains(s, "\n") { - style = yaml_LITERAL_SCALAR_STYLE - } else { - style = yaml_PLAIN_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) floatv(tag string, in reflect.Value) { - // FIXME: Handle 64 bits here. - s := strconv.FormatFloat(float64(in.Float()), 'g', -1, 32) - 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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/readerc.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/readerc.go deleted file mode 100644 index f4507917..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/readerc.go +++ /dev/null @@ -1,394 +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") - } - - // 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) { - 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 - } - } - parser.buffer = parser.buffer[:buffer_len] - return true -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/resolve.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/resolve.go deleted file mode 100644 index 232313cc..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/resolve.go +++ /dev/null @@ -1,208 +0,0 @@ -package yaml - -import ( - "encoding/base64" - "math" - "regexp" - "strconv" - "strings" - "unicode/utf8" -) - -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: - return true - } - return false -} - -var yamlStyleFloat = regexp.MustCompile(`^[-+]?[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 - } - 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. - 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 intv == int64(int(intv)) { - return yaml_INT_TAG, -int(intv) - } else { - return yaml_INT_TAG, -intv - } - } - } - // XXX Handle timestamps here. - - default: - panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")") - } - } - if tag == yaml_BINARY_TAG { - return yaml_BINARY_TAG, in - } - if utf8.ValidString(in) { - return yaml_STR_TAG, in - } - return yaml_BINARY_TAG, encodeBase64(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]) -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/scannerc.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/scannerc.go deleted file mode 100644 index 07448445..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/scannerc.go +++ /dev/null @@ -1,2711 +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 { - // Check if we really need to fetch more tokens. - need_more_tokens := false - - if parser.tokens_head == len(parser.tokens) { - // Queue is empty. - need_more_tokens = true - } else { - // Check if any potential simple key may occupy the head position. - if !yaml_parser_stale_simple_keys(parser) { - return false - } - - for i := range parser.simple_keys { - simple_key := &parser.simple_keys[i] - if simple_key.possible && simple_key.token_number == parser.tokens_parsed { - need_more_tokens = true - break - } - } - } - - // We are finished. - if !need_more_tokens { - 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 - } - - // Remove obsolete potential simple keys. - if !yaml_parser_stale_simple_keys(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") -} - -// Check the list of potential simple keys and remove the positions that -// cannot contain simple keys anymore. -func yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool { - // Check for a potential simple key for each flow level. - for i := range parser.simple_keys { - simple_key := &parser.simple_keys[i] - - // The specification requires that a simple key - // - // - is limited to a single line, - // - is shorter than 1024 characters. - if simple_key.possible && (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 yaml_parser_set_scanner_error(parser, - "while scanning a simple key", simple_key.mark, - "could not find expected ':'") - } - simple_key.possible = false - } - } - return 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 - - // A simple key is required only when it is the first token in the current - // line. Therefore it is always allowed. But we add a check anyway. - if required && !parser.simple_key_allowed { - panic("should not happen") - } - - // - // 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), - } - simple_key.mark = parser.mark - - if !yaml_parser_remove_simple_key(parser) { - return false - } - parser.simple_keys[len(parser.simple_keys)-1] = simple_key - } - 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 - return true -} - -// 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{}) - - // Increase the flow level. - parser.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-- - parser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1] - } - return true -} - -// 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 - - // 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{}) - - // 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 simple_key.possible { - // 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 - - // 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 - } - } - - // 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. - 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) { - // 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 'x:x' in the flow context. TODO: Fix the test "spec-08-13". - if parser.flow_level > 0 && - parser.buffer[parser.buffer_pos] == ':' && - !is_blankz(parser.buffer, parser.buffer_pos+1) { - yaml_parser_set_scanner_error(parser, "while scanning a plain scalar", - start_mark, "found unexpected ':'") - return false - } - - // 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] == '{' || - 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 character 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 violate 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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/sorter.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/sorter.go deleted file mode 100644 index 5958822f..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/sorter.go +++ /dev/null @@ -1,104 +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 - 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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/writerc.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/writerc.go deleted file mode 100644 index 190362f2..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/writerc.go +++ /dev/null @@ -1,89 +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 the output encoding is UTF-8, we don't need to recode the buffer. - if emitter.encoding == yaml_UTF8_ENCODING { - 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 - } - - // Recode the buffer into the raw buffer. - var low, high int - if emitter.encoding == yaml_UTF16LE_ENCODING { - low, high = 0, 1 - } else { - high, low = 1, 0 - } - - pos := 0 - for pos < emitter.buffer_pos { - // See the "reader.c" code for more details on UTF-8 encoding. Note - // that we assume that the buffer contains a valid UTF-8 sequence. - - // Read the next UTF-8 character. - octet := emitter.buffer[pos] - - var w int - var value rune - switch { - case octet&0x80 == 0x00: - w, value = 1, rune(octet&0x7F) - case octet&0xE0 == 0xC0: - w, value = 2, rune(octet&0x1F) - case octet&0xF0 == 0xE0: - w, value = 3, rune(octet&0x0F) - case octet&0xF8 == 0xF0: - w, value = 4, rune(octet&0x07) - } - for k := 1; k < w; k++ { - octet = emitter.buffer[pos+k] - value = (value << 6) + (rune(octet) & 0x3F) - } - pos += w - - // Write the character. - if value < 0x10000 { - var b [2]byte - b[high] = byte(value >> 8) - b[low] = byte(value & 0xFF) - emitter.raw_buffer = append(emitter.raw_buffer, b[0], b[1]) - } else { - // Write the character using a surrogate pair (check "reader.c"). - var b [4]byte - value -= 0x10000 - b[high] = byte(0xD8 + (value >> 18)) - b[low] = byte((value >> 10) & 0xFF) - b[high+2] = byte(0xDC + ((value >> 8) & 0xFF)) - b[low+2] = byte(value & 0xFF) - emitter.raw_buffer = append(emitter.raw_buffer, b[0], b[1], b[2], b[3]) - } - } - - // Write the raw buffer. - if err := emitter.write_handler(emitter, emitter.raw_buffer); err != nil { - return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) - } - emitter.buffer_pos = 0 - emitter.raw_buffer = emitter.raw_buffer[:0] - return true -} diff --git a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/yaml.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/yaml.go deleted file mode 100644 index 5e3c2dae..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/yaml.go +++ /dev/null @@ -1,357 +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" - "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 will result in -// an error. -func UnmarshalStrict(in []byte, out interface{}) (err error) { - return unmarshal(in, out, true) -} - -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 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. -// 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. -// Does not apply to zero valued structs. -// -// 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.marshal("", reflect.ValueOf(in)) - e.finish() - out = e.out - return -} - -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 - - // 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...) - } - 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) - } - - fieldsList = append(fieldsList, info) - fieldsMap[info.Key] = info - } - - sinfo = &structInfo{fieldsMap, fieldsList, inlineMap} - - fieldMapMutex.Lock() - structMap[st] = sinfo - fieldMapMutex.Unlock() - return sinfo, nil -} - -func isZero(v reflect.Value) bool { - switch v.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/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/yamlh.go b/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/yamlh.go deleted file mode 100644 index 3caeca04..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/gopkg.in/yaml.v2/yamlh.go +++ /dev/null @@ -1,716 +0,0 @@ -package yaml - -import ( - "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. -) - -// 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_file 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. - - // 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_file 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/vendor/github.com/elastic/beats/dev-tools/vendor/vendor.json b/vendor/github.com/elastic/beats/dev-tools/vendor/vendor.json deleted file mode 100644 index 55de7c32..00000000 --- a/vendor/github.com/elastic/beats/dev-tools/vendor/vendor.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "comment": "", - "ignore": "test github.com/elastic/beats", - "package": [ - { - "checksumSHA1": "Hc4yYaBrUJXrXge+C5PecOIFX84=", - "path": "github.com/blakesmith/ar", - "revision": "8bd4349a67f2533b078dbc524689d15dba0f4659", - "revisionTime": "2015-03-11T14:59:44Z" - }, - { - "checksumSHA1": "oqq6XncFUhs7TnBccRh8O4kr0UQ=", - "path": "github.com/cavaliercoder/badio", - "revision": "ce5280129e9e9d80def35bfe203b845a4eebc9db", - "revisionTime": "2016-02-13T15:00:51Z" - }, - { - "checksumSHA1": "hF5b2KHFFtGWPLYHixNGhgtMgc4=", - "path": "github.com/cavaliercoder/go-rpm", - "revision": "83f26baae1d04c483e8ab002c02c1ceaf63a5f51", - "revisionTime": "2017-01-17T14:01:51Z" - }, - { - "checksumSHA1": "yPWWiioidIJuDhVSDe+ogjTmJ18=", - "path": "github.com/tsg/gotpl", - "revision": "a4179fb207b3ef8a96681fc9c9b6e20f99a6d2ef", - "revisionTime": "2015-08-11T13:42:54Z" - }, - { - "checksumSHA1": "TT1rac6kpQp2vz24m5yDGUNQ/QQ=", - "path": "golang.org/x/crypto/cast5", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "IIhFTrLlmlc6lEFSitqi4aw2lw0=", - "path": "golang.org/x/crypto/openpgp", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "olOKkhrdkYQHZ0lf1orrFQPQrv4=", - "path": "golang.org/x/crypto/openpgp/armor", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "eo/KtdjieJQXH7Qy+faXFcF70ME=", - "path": "golang.org/x/crypto/openpgp/elgamal", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "rlxVSaGgqdAgwblsErxTxIfuGfg=", - "path": "golang.org/x/crypto/openpgp/errors", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "LWdaR8Q9yn6eBCcnGl0HvJRDUBE=", - "path": "golang.org/x/crypto/openpgp/packet", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "s2qT4UwvzBSkzXuiuMkowif1Olw=", - "path": "golang.org/x/crypto/openpgp/s2k", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "y/oIaxq2d3WPizRZfVjo8RCRYTU=", - "path": "golang.org/x/crypto/ripemd160", - "revision": "3cb07270c9455e8ad27956a70891c962d121a228", - "revisionTime": "2017-03-30T16:02:45Z" - }, - { - "checksumSHA1": "qOmvuDm+F+2nQQecUZBVkZrTn6Y=", - "path": "gopkg.in/yaml.v2", - "revision": "d670f9405373e636a5a2765eea47fac0c9bc91a4", - "revisionTime": "2018-01-09T11:43:31Z" - } - ], - "rootPath": "github.com/elastic/beats/dev-tools" -} diff --git a/vendor/github.com/elastic/beats/docs/devguide/create-metricset.asciidoc b/vendor/github.com/elastic/beats/docs/devguide/create-metricset.asciidoc index f5af0b16..94c9531c 100644 --- a/vendor/github.com/elastic/beats/docs/devguide/create-metricset.asciidoc +++ b/vendor/github.com/elastic/beats/docs/devguide/create-metricset.asciidoc @@ -144,30 +144,29 @@ time new data is retrieved. If more than one host is defined, `Fetch` is called once for each host. The frequency of calling `Fetch` is based on the `period` defined in the configuration file. -`Fetch` must return a `common.MapStr` object, which is then sent to Elasticsearch. -If an error happens, the error must be returned and then is sent instead -to Elasticsearch. This means that Metricbeat always sends an event, even on failure. -You must make sure that the error message helps to identify the actual error. +`Fetch` must publish the event using the `mb.ReporterV2.Event` method. If an error +happens, the error must be published using the `mb.ReporterV2.Error` method. This means +that Metricbeat always sends an event, even on failure. You must make sure that the +error message helps to identify the actual error. The following example shows a metricset `Fetch` method with a counter that is incremented for each `Fetch` call: [source,go] ---- -func (m *MetricSet) Fetch() (common.MapStr, error) { +func (m *MetricSet) Fetch(report mb.ReporterV2) { - event := common.MapStr{ - "counter": m.counter, - } + report.Event(mb.Event{ + MetricSetFields: common.MapStr{ + "counter": m.counter, + } + }) m.counter++ - - return event, nil } ---- -`Fetch` must return a `common.MapStr`, which will be translated to the JSON content. -The JSON output will be identical to the naming and structure you use in -`common.MapStr`. For more details about `MapStr` and its functions, see the +The JSON output derived from the reported event will be identical to the naming and +structure you use in `common.MapStr`. For more details about `MapStr` and its functions, see the https://godoc.org/github.com/elastic/beats/libbeat/common#MapStr[MapStr API docs]. diff --git a/vendor/github.com/elastic/beats/docs/devguide/create-module.asciidoc b/vendor/github.com/elastic/beats/docs/devguide/create-module.asciidoc index 998cf428..b446b901 100644 --- a/vendor/github.com/elastic/beats/docs/devguide/create-module.asciidoc +++ b/vendor/github.com/elastic/beats/docs/devguide/create-module.asciidoc @@ -82,7 +82,7 @@ To see an example of the `testing.go` file, look at the https://github.com/elast All the environments are setup with docker. `make integration-tests-environment` and `make system-tests-environment` can be used to run tests for all modules. In case you are developing a module it is convenient to run the tests only for one module and directly run it on your machine. -First you need to start the environment for your module to test and expose the port to your local machien. For this you can run the following command inside the metricbeat directory: +First you need to start the environment for your module to test and expose the port to your local machine. For this you can run the following command inside the metricbeat directory: [source,bash] ---- diff --git a/vendor/github.com/elastic/beats/docs/devguide/creating-beat-from-metricbeat.asciidoc b/vendor/github.com/elastic/beats/docs/devguide/creating-beat-from-metricbeat.asciidoc index a2f7e2f5..0b807737 100644 --- a/vendor/github.com/elastic/beats/docs/devguide/creating-beat-from-metricbeat.asciidoc +++ b/vendor/github.com/elastic/beats/docs/devguide/creating-beat-from-metricbeat.asciidoc @@ -86,12 +86,12 @@ This will run the beat with debug output enabled to the console to directly see [float] ==== Step 5 - Package -To create packages and binaries for different plaforms, https://www.docker.com/[docker] is required. +To create packages and binaries for different platforms, https://www.docker.com/[docker] is required. The first step is to get the most recent packaging tools into your beat: [source,bash] ---- -make package +make release ---- This will fetch the most recent packaging tools and start the packaging of your beat. This can take a little bit longer. diff --git a/vendor/github.com/elastic/beats/docs/devguide/index.asciidoc b/vendor/github.com/elastic/beats/docs/devguide/index.asciidoc index 8accf343..ad6934c7 100644 --- a/vendor/github.com/elastic/beats/docs/devguide/index.asciidoc +++ b/vendor/github.com/elastic/beats/docs/devguide/index.asciidoc @@ -3,6 +3,7 @@ include::../../libbeat/docs/version.asciidoc[] +:dev-guide: true :beatname_lc: beatname :beatname_uc: a Beat diff --git a/vendor/github.com/elastic/beats/docs/devguide/modules-dev-guide.asciidoc b/vendor/github.com/elastic/beats/docs/devguide/modules-dev-guide.asciidoc index bf4f1d80..04f27295 100644 --- a/vendor/github.com/elastic/beats/docs/devguide/modules-dev-guide.asciidoc +++ b/vendor/github.com/elastic/beats/docs/devguide/modules-dev-guide.asciidoc @@ -74,16 +74,35 @@ is used as a title in the docs, so it's best to capitalize it. ==== _meta/kibana This folder contains the sample Kibana dashboards for this module. To create -them, you can build them visually in Kibana and then run the following command: +them, you can build them visually in Kibana and then export them with `export_dashboards`. + +The tool will export all of the dashboard dependencies (visualizations, +saved searches) automatically. + +You can see various ways of using `export_dashboards` at <>. +The recommended way to export them is to list your dashboards in your module's +`module.yml` file: + +[source,yaml] +---- +dashboards: +- id: 69f5ae20-eb02-11e7-8f04-beef1daadb05 + file: mymodule-overview.json +- id: c0a7ce90-cafe-4242-8647-534bb4c21040 + file: mymodule-errors.json +---- + +Then run `export_dashboards` like this: [source,shell] ---- $ cd dev-tools/cmd/dashboards -$ make # if export_dashboard is not built -$ ./export_dashboards -dashboard '{dashboard-id}' -output '../../../filebeat/module/{module}/_meta/kibana/default/dashboard' +$ make # if export_dashboard is not built yet +$ ./export_dashboards -yml '../../../filebeat/module/{module}/module.yml' ---- -New Filebeat modules might not be compatible with Kibana 5.x. To export dashboards that are compatible with 5.x, run the following command inside the developer virtualenv: +New Filebeat modules might not be compatible with Kibana 5.x. To export dashboards +that are compatible with 5.x, run the following command inside the developer virtualenv: [source,shell] ---- diff --git a/vendor/github.com/elastic/beats/docs/devguide/newbeat.asciidoc b/vendor/github.com/elastic/beats/docs/devguide/newbeat.asciidoc index 90b03c29..4c980306 100644 --- a/vendor/github.com/elastic/beats/docs/devguide/newbeat.asciidoc +++ b/vendor/github.com/elastic/beats/docs/devguide/newbeat.asciidoc @@ -137,6 +137,8 @@ cd ${GOPATH}/src/github.com/{user} Run python and specify the path to the Beat generator: +NOTE: Python 2 is required (Python 3 will not work). + [source,shell] -------------------- python $GOPATH/src/github.com/elastic/beats/script/generate.py @@ -473,9 +475,9 @@ package main import ( "os" - "github.com/spf13/cobra" "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/cmd" "github.com/kimjmin/countbeat/beater" ) diff --git a/vendor/github.com/elastic/beats/docs/devguide/testing.asciidoc b/vendor/github.com/elastic/beats/docs/devguide/testing.asciidoc index caa0a8f7..0e548de3 100644 --- a/vendor/github.com/elastic/beats/docs/devguide/testing.asciidoc +++ b/vendor/github.com/elastic/beats/docs/devguide/testing.asciidoc @@ -18,7 +18,7 @@ The golang tests can be executed in each Golang package by running `go test .`. To run all non integration tests for a beat run `make unit`. This will execute all the tests which are not inside a `vendor` directory. If you want to have a coverage report for the tests which were run use `make unit-tests`. A coverage report will be generated under `build/coverage` directory. -All Golang tests are in the same package as the tested code itself and have the postfix `_test` in the file name. Most of the tests are in the same package as the rest of the code. Some of the tests which should be sepearate from the rest of the code or should not use private variables go under `{packagename}_test`. +All Golang tests are in the same package as the tested code itself and have the postfix `_test` in the file name. Most of the tests are in the same package as the rest of the code. Some of the tests which should be separate from the rest of the code or should not use private variables go under `{packagename}_test`. ==== Running Python Tests diff --git a/vendor/github.com/elastic/beats/filebeat/.gitignore b/vendor/github.com/elastic/beats/filebeat/.gitignore index d27243fe..6040d9c5 100644 --- a/vendor/github.com/elastic/beats/filebeat/.gitignore +++ b/vendor/github.com/elastic/beats/filebeat/.gitignore @@ -5,7 +5,6 @@ filebeat build -_meta/kibana _meta/module.generated _meta/beat.yml _meta/beat.reference.yml diff --git a/vendor/github.com/elastic/beats/filebeat/Dockerfile b/vendor/github.com/elastic/beats/filebeat/Dockerfile index 9b6b200d..b6a6a9b2 100644 --- a/vendor/github.com/elastic/beats/filebeat/Dockerfile +++ b/vendor/github.com/elastic/beats/filebeat/Dockerfile @@ -1,10 +1,10 @@ -FROM golang:1.10.2 +FROM golang:1.10.3 MAINTAINER Nicolas Ruflin RUN set -x && \ apt-get update && \ apt-get install -y --no-install-recommends \ - netcat python-pip virtualenv && \ + netcat python-pip rsync virtualenv && \ apt-get clean RUN pip install --upgrade setuptools diff --git a/vendor/github.com/elastic/beats/filebeat/Makefile b/vendor/github.com/elastic/beats/filebeat/Makefile index 8bb7452c..f5d3bf8c 100644 --- a/vendor/github.com/elastic/beats/filebeat/Makefile +++ b/vendor/github.com/elastic/beats/filebeat/Makefile @@ -1,34 +1,19 @@ BEAT_NAME?=filebeat BEAT_TITLE?=Filebeat -BEAT_DESCRIPTION?=Filebeat sends log files to Logstash or directly to Elasticsearch. SYSTEM_TESTS?=true TEST_ENVIRONMENT?=true GOX_FLAGS=-arch="amd64 386 arm ppc64 ppc64le" ES_BEATS?=.. FIELDS_FILE_PATH=module - include ${ES_BEATS}/libbeat/scripts/Makefile -# This is called by the beats packer before building starts -.PHONY: before-build -before-build: - # Collects all module dashboards .PHONY: kibana kibana: - @rm -rf _meta/kibana - @mkdir -p _meta/kibana - @-cp -r module/*/_meta/kibana _meta/ - @# Convert all dashboards to string - @python ${ES_BEATS}/libbeat/scripts/unpack_dashboards.py --glob="./_meta/kibana/6/dashboard/*.json" - -# Collects all modules files to be packaged in a temporary folder -.PHONY: modules -modules: - @mkdir -p _meta/ - @rm -rf _meta/module.generated - @rsync -q -av module/ _meta/module.generated --exclude "_meta" --exclude "*/*/test" + @rm -rf _meta/kibana.generated + @mkdir -p _meta/kibana.generated + @-cp -pr module/*/_meta/kibana/* _meta/kibana.generated # Collects all module configs .PHONY: configs @@ -57,7 +42,7 @@ imports: python-env # Runs all collection steps and updates afterwards .PHONY: collect -collect: fields kibana modules configs collect-docs imports +collect: fields kibana configs collect-docs imports # Creates a new module. Requires the params MODULE .PHONY: create-module diff --git a/vendor/github.com/elastic/beats/filebeat/_meta/common.p2.yml b/vendor/github.com/elastic/beats/filebeat/_meta/common.p2.yml index c6924437..34fe91f2 100644 --- a/vendor/github.com/elastic/beats/filebeat/_meta/common.p2.yml +++ b/vendor/github.com/elastic/beats/filebeat/_meta/common.p2.yml @@ -39,7 +39,7 @@ filebeat.inputs: ### Multiline options - # Mutiline can be used for log messages spanning multiple lines. This is common + # Multiline can be used for log messages spanning multiple lines. This is common # for Java Stack Traces or C-Line Continuation # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [ diff --git a/vendor/github.com/elastic/beats/filebeat/_meta/common.reference.p2.yml b/vendor/github.com/elastic/beats/filebeat/_meta/common.reference.p2.yml index 032973bb..8788afad 100644 --- a/vendor/github.com/elastic/beats/filebeat/_meta/common.reference.p2.yml +++ b/vendor/github.com/elastic/beats/filebeat/_meta/common.reference.p2.yml @@ -109,7 +109,7 @@ filebeat.inputs: ### Multiline options - # Mutiline can be used for log messages spanning multiple lines. This is common + # Multiline can be used for log messages spanning multiple lines. This is common # for Java Stack Traces or C-Line Continuation # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [ @@ -141,7 +141,7 @@ filebeat.inputs: # overwrites the pipeline option from the Elasticsearch output. #pipeline: - # If symlinks is enabled, symlinks are opened and harvested. The harvester is openening the + # If symlinks is enabled, symlinks are opened and harvested. The harvester is opening the # original for harvesting but will report the symlink name as source. #symlinks: false diff --git a/vendor/github.com/elastic/beats/filebeat/_meta/fields.common.yml b/vendor/github.com/elastic/beats/filebeat/_meta/fields.common.yml index 506100f1..b3714b75 100644 --- a/vendor/github.com/elastic/beats/filebeat/_meta/fields.common.yml +++ b/vendor/github.com/elastic/beats/filebeat/_meta/fields.common.yml @@ -114,3 +114,24 @@ log events this is when the log line was read by Filebeat. In comparison @timestamp is the processed timestamp from the log line. If both are identical only @timestamp should be used. + + - name: http.response.status_code + type: long + description: > + HTTP response status_code. + example: 404 + + - name: http.response.elapsed_time + type: long + description: > + Elapsed time between request and response in milli seconds. + + - name: http.response.content_length + type: long + description: > + Content length of the HTTP response body. + + - name: http.request.method + type: keyword + description: > + Request method. diff --git a/vendor/github.com/elastic/beats/filebeat/autodiscover/autodiscover.go b/vendor/github.com/elastic/beats/filebeat/autodiscover/autodiscover.go index 343fc126..decd3455 100644 --- a/vendor/github.com/elastic/beats/filebeat/autodiscover/autodiscover.go +++ b/vendor/github.com/elastic/beats/filebeat/autodiscover/autodiscover.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( @@ -34,8 +51,10 @@ func (m *AutodiscoverAdapter) CreateConfig(e bus.Event) ([]*common.Config, error // CheckConfig tests given config to check if it will work or not, returns errors in case it won't work func (m *AutodiscoverAdapter) CheckConfig(c *common.Config) error { - // TODO implment config check for all modules - return nil + if c.HasField("module") { + return m.moduleFactory.CheckConfig(c) + } + return m.inputFactory.CheckConfig(c) } // Create a module or input from the given config diff --git a/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/config.go b/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/config.go index adbe9222..dab0a211 100644 --- a/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/config.go +++ b/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 hints import "github.com/elastic/beats/libbeat/common" diff --git a/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/logs.go b/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/logs.go index a0db7629..9b7d236e 100644 --- a/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/logs.go +++ b/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/logs.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 hints import ( @@ -22,6 +39,7 @@ const ( multiline = "multiline" includeLines = "include_lines" excludeLines = "exclude_lines" + processors = "processors" ) // validModuleNames to sanitize user input @@ -70,6 +88,19 @@ func (l *logHints) CreateConfig(event bus.Event) []*common.Config { return []*common.Config{config} } + inputConfig := l.getInputs(hints) + if inputConfig != nil { + configs := []*common.Config{} + for _, cfg := range inputConfig { + if config, err := common.NewConfigFrom(cfg); err == nil { + configs = append(configs, config) + } + } + logp.Debug("hints.builder", "generated config %+v", configs) + // Apply information in event to the template to generate the final config + return template.ApplyConfigTemplate(event, configs) + } + tempCfg := common.MapStr{} mline := l.getMultiline(hints) if len(mline) != 0 { @@ -82,6 +113,10 @@ func (l *logHints) CreateConfig(event bus.Event) []*common.Config { tempCfg.Put(excludeLines, elines) } + if procs := l.getProcessors(hints); len(procs) != 0 { + tempCfg.Put(processors, procs) + } + // Merge config template with the configs from the annotations if err := config.Merge(tempCfg); err != nil { logp.Debug("hints.builder", "config merge failed with error: %v", err) @@ -106,7 +141,6 @@ func (l *logHints) CreateConfig(event bus.Event) []*common.Config { } config, _ = common.NewConfigFrom(moduleConf) } - logp.Debug("hints.builder", "generated config %+v", config) // Apply information in event to the template to generate the final config @@ -131,6 +165,14 @@ func (l *logHints) getModule(hints common.MapStr) string { return validModuleNames.ReplaceAllString(module, "") } +func (l *logHints) getInputs(hints common.MapStr) []common.MapStr { + return builder.GetHintAsConfigs(hints, l.Key) +} + +func (l *logHints) getProcessors(hints common.MapStr) []common.MapStr { + return builder.GetProcessors(hints, l.Key) +} + type filesetConfig struct { Enabled bool Stream string @@ -172,7 +214,7 @@ func (l *logHints) getFilesets(hints common.MapStr, module string) map[string]*f } } - // No fileseat defined, return defaults for the module, all streams to all filesets + // No fileset defined, return defaults for the module, all streams to all filesets if !configured { for _, conf := range filesets { conf.Enabled = true diff --git a/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/logs_test.go b/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/logs_test.go deleted file mode 100644 index 6b1de4da..00000000 --- a/vendor/github.com/elastic/beats/filebeat/autodiscover/builder/hints/logs_test.go +++ /dev/null @@ -1,295 +0,0 @@ -package hints - -import ( - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" - "github.com/elastic/beats/libbeat/paths" -) - -func TestGenerateHints(t *testing.T) { - tests := []struct { - msg string - event bus.Event - len int - result common.MapStr - }{ - { - msg: "Hints without host should return nothing", - event: bus.Event{ - "hints": common.MapStr{ - "metrics": common.MapStr{ - "module": "prometheus", - }, - }, - }, - len: 0, - result: common.MapStr{}, - }, - { - msg: "Empty event hints should return default config", - event: bus.Event{ - "host": "1.2.3.4", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - len: 1, - result: common.MapStr{ - "type": "docker", - "containers": map[string]interface{}{ - "ids": []interface{}{"abc"}, - }, - }, - }, - { - msg: "Hint with include|exclude_lines must be part of the input config", - event: bus.Event{ - "host": "1.2.3.4", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - "hints": common.MapStr{ - "logs": common.MapStr{ - "include_lines": "^test, ^test1", - "exclude_lines": "^test2, ^test3", - }, - }, - }, - len: 1, - result: common.MapStr{ - "type": "docker", - "containers": map[string]interface{}{ - "ids": []interface{}{"abc"}, - }, - "include_lines": []interface{}{"^test", "^test1"}, - "exclude_lines": []interface{}{"^test2", "^test3"}, - }, - }, - { - msg: "Hint with multiline config must have a multiline in the input config", - event: bus.Event{ - "host": "1.2.3.4", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - "hints": common.MapStr{ - "logs": common.MapStr{ - "multiline": common.MapStr{ - "pattern": "^test", - "negate": "true", - }, - }, - }, - }, - len: 1, - result: common.MapStr{ - "type": "docker", - "containers": map[string]interface{}{ - "ids": []interface{}{"abc"}, - }, - "multiline": map[string]interface{}{ - "pattern": "^test", - "negate": "true", - }, - }, - }, - { - msg: "Hint with module should attach input to its filesets", - event: bus.Event{ - "host": "1.2.3.4", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - "hints": common.MapStr{ - "logs": common.MapStr{ - "module": "apache2", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "apache2", - "error": map[string]interface{}{ - "enabled": true, - "input": map[string]interface{}{ - "type": "docker", - "containers": map[string]interface{}{ - "stream": "all", - "ids": []interface{}{"abc"}, - }, - }, - }, - "access": map[string]interface{}{ - "enabled": true, - "input": map[string]interface{}{ - "type": "docker", - "containers": map[string]interface{}{ - "stream": "all", - "ids": []interface{}{"abc"}, - }, - }, - }, - }, - }, - { - msg: "Hint with module should honor defined filesets", - event: bus.Event{ - "host": "1.2.3.4", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - "hints": common.MapStr{ - "logs": common.MapStr{ - "module": "apache2", - "fileset": "access", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "apache2", - "access": map[string]interface{}{ - "enabled": true, - "input": map[string]interface{}{ - "type": "docker", - "containers": map[string]interface{}{ - "stream": "all", - "ids": []interface{}{"abc"}, - }, - }, - }, - "error": map[string]interface{}{ - "enabled": false, - "input": map[string]interface{}{ - "type": "docker", - "containers": map[string]interface{}{ - "stream": "all", - "ids": []interface{}{"abc"}, - }, - }, - }, - }, - }, - { - msg: "Hint with module should honor defined filesets with streams", - event: bus.Event{ - "host": "1.2.3.4", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - "hints": common.MapStr{ - "logs": common.MapStr{ - "module": "apache2", - "fileset.stdout": "access", - "fileset.stderr": "error", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "apache2", - "access": map[string]interface{}{ - "enabled": true, - "input": map[string]interface{}{ - "type": "docker", - "containers": map[string]interface{}{ - "stream": "stdout", - "ids": []interface{}{"abc"}, - }, - }, - }, - "error": map[string]interface{}{ - "enabled": true, - "input": map[string]interface{}{ - "type": "docker", - "containers": map[string]interface{}{ - "stream": "stderr", - "ids": []interface{}{"abc"}, - }, - }, - }, - }, - }, - } - - for _, test := range tests { - cfg, _ := common.NewConfigFrom(map[string]interface{}{ - "type": "docker", - "containers": map[string]interface{}{ - "ids": []string{ - "${data.container.id}", - }, - }, - }) - - // Configure path for modules access - abs, _ := filepath.Abs("../../..") - err := paths.InitPaths(&paths.Path{ - Home: abs, - }) - - l, err := NewLogHints(cfg) - if err != nil { - t.Fatal(err) - } - - cfgs := l.CreateConfig(test.event) - assert.Equal(t, len(cfgs), test.len, test.msg) - - if test.len != 0 { - config := common.MapStr{} - err := cfgs[0].Unpack(&config) - assert.Nil(t, err, test.msg) - - assert.Equal(t, test.result, config, test.msg) - } - - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/autodiscover/include.go b/vendor/github.com/elastic/beats/filebeat/autodiscover/include.go index 33e1c5ae..1cebd28b 100644 --- a/vendor/github.com/elastic/beats/filebeat/autodiscover/include.go +++ b/vendor/github.com/elastic/beats/filebeat/autodiscover/include.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( diff --git a/vendor/github.com/elastic/beats/filebeat/beater/acker.go b/vendor/github.com/elastic/beats/filebeat/beater/acker.go index fd1074d0..a157bb7e 100644 --- a/vendor/github.com/elastic/beats/filebeat/beater/acker.go +++ b/vendor/github.com/elastic/beats/filebeat/beater/acker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( diff --git a/vendor/github.com/elastic/beats/filebeat/beater/acker_test.go b/vendor/github.com/elastic/beats/filebeat/beater/acker_test.go deleted file mode 100644 index 806a9773..00000000 --- a/vendor/github.com/elastic/beats/filebeat/beater/acker_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package beater - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/input/file" -) - -type mockStatefulLogger struct { - states []file.State -} - -func (sf *mockStatefulLogger) Published(states []file.State) { - sf.states = states -} - -type mockStatelessLogger struct { - count int -} - -func (sl *mockStatelessLogger) Published(count int) bool { - sl.count = count - return true -} - -func TestACKer(t *testing.T) { - tests := []struct { - name string - data []interface{} - stateless int - stateful []file.State - }{ - { - name: "only stateless", - data: []interface{}{nil, nil}, - stateless: 2, - }, - { - name: "only stateful", - data: []interface{}{file.State{Source: "-"}, file.State{Source: "-"}}, - stateful: []file.State{file.State{Source: "-"}, file.State{Source: "-"}}, - stateless: 0, - }, - { - name: "both", - data: []interface{}{file.State{Source: "-"}, nil, file.State{Source: "-"}}, - stateful: []file.State{file.State{Source: "-"}, file.State{Source: "-"}}, - stateless: 1, - }, - { - name: "any other Private type", - data: []interface{}{struct{}{}, nil}, - stateless: 2, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - sl := &mockStatelessLogger{} - sf := &mockStatefulLogger{} - - h := newEventACKer(sl, sf) - - h.ackEvents(test.data) - assert.Equal(t, test.stateless, sl.count) - assert.Equal(t, test.stateful, sf.states) - }) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/beater/channels.go b/vendor/github.com/elastic/beats/filebeat/beater/channels.go index 7657ab23..cd0eba04 100644 --- a/vendor/github.com/elastic/beats/filebeat/beater/channels.go +++ b/vendor/github.com/elastic/beats/filebeat/beater/channels.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( diff --git a/vendor/github.com/elastic/beats/filebeat/beater/filebeat.go b/vendor/github.com/elastic/beats/filebeat/beater/filebeat.go index 80ab6fdb..6a321e9c 100644 --- a/vendor/github.com/elastic/beats/filebeat/beater/filebeat.go +++ b/vendor/github.com/elastic/beats/filebeat/beater/filebeat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( diff --git a/vendor/github.com/elastic/beats/filebeat/beater/signalwait.go b/vendor/github.com/elastic/beats/filebeat/beater/signalwait.go index a1ddbd2a..ce839935 100644 --- a/vendor/github.com/elastic/beats/filebeat/beater/signalwait.go +++ b/vendor/github.com/elastic/beats/filebeat/beater/signalwait.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( diff --git a/vendor/github.com/elastic/beats/filebeat/channel/factory.go b/vendor/github.com/elastic/beats/filebeat/channel/factory.go index 2f3e2f69..86db045c 100644 --- a/vendor/github.com/elastic/beats/filebeat/channel/factory.go +++ b/vendor/github.com/elastic/beats/filebeat/channel/factory.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 channel import ( @@ -24,7 +41,7 @@ type clientEventer struct { } // inputOutletConfig defines common input settings -// for the publisher pipline. +// for the publisher pipeline. type inputOutletConfig struct { // event processing common.EventMetadata `config:",inline"` // Fields and tags to add to events. diff --git a/vendor/github.com/elastic/beats/filebeat/channel/interface.go b/vendor/github.com/elastic/beats/filebeat/channel/interface.go index 6c66e8c5..82e5a82a 100644 --- a/vendor/github.com/elastic/beats/filebeat/channel/interface.go +++ b/vendor/github.com/elastic/beats/filebeat/channel/interface.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 channel import ( diff --git a/vendor/github.com/elastic/beats/filebeat/channel/outlet.go b/vendor/github.com/elastic/beats/filebeat/channel/outlet.go index 078789d2..d130cf9c 100644 --- a/vendor/github.com/elastic/beats/filebeat/channel/outlet.go +++ b/vendor/github.com/elastic/beats/filebeat/channel/outlet.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 channel import ( diff --git a/vendor/github.com/elastic/beats/filebeat/channel/util.go b/vendor/github.com/elastic/beats/filebeat/channel/util.go index e9c03fba..134765c4 100644 --- a/vendor/github.com/elastic/beats/filebeat/channel/util.go +++ b/vendor/github.com/elastic/beats/filebeat/channel/util.go @@ -1,17 +1,36 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 channel import ( + "sync" + "github.com/elastic/beats/filebeat/util" "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/atomic" ) type subOutlet struct { - isOpen atomic.Bool - done chan struct{} - ch chan *util.Data - res chan bool + done chan struct{} + ch chan *util.Data + res chan bool + mutex sync.Mutex + closeOnce sync.Once } // ConnectTo creates a new Connector, combining a beat.Pipeline with an outlet Factory. @@ -25,10 +44,9 @@ func ConnectTo(pipeline beat.Pipeline, factory Factory) Connector { // underlying outlet. func SubOutlet(out Outleter) Outleter { s := &subOutlet{ - isOpen: atomic.MakeBool(true), - done: make(chan struct{}), - ch: make(chan *util.Data), - res: make(chan bool, 1), + done: make(chan struct{}), + ch: make(chan *util.Data), + res: make(chan bool, 1), } go func() { @@ -41,21 +59,30 @@ func SubOutlet(out Outleter) Outleter { } func (o *subOutlet) Close() error { - isOpen := o.isOpen.Swap(false) - if isOpen { + o.closeOnce.Do(func() { + // Signal OnEvent() to terminate close(o.done) - } + // This mutex prevents the event channel to be closed if OnEvent is + // still running. + o.mutex.Lock() + defer o.mutex.Unlock() + close(o.ch) + }) return nil } func (o *subOutlet) OnEvent(d *util.Data) bool { - if !o.isOpen.Load() { + + o.mutex.Lock() + defer o.mutex.Unlock() + select { + case <-o.done: return false + default: } select { case <-o.done: - close(o.ch) return false case o.ch <- d: @@ -71,12 +98,10 @@ func (o *subOutlet) OnEvent(d *util.Data) bool { // update state on 'true' response). // The state update will appear after the current event in the publisher pipeline. // That is, by returning true here, the final state update will - // be presented to the reigstrar, after the last event being processed. + // be presented to the registrar, after the last event being processed. // Once all messages are in the publisher pipeline, in correct order, // it depends on registrar/publisher pipeline if state is finally updated // in the registrar. - - close(o.ch) return true case ret := <-o.res: diff --git a/vendor/github.com/elastic/beats/filebeat/cmd/modules.go b/vendor/github.com/elastic/beats/filebeat/cmd/modules.go index 3677a3d7..ea62e292 100644 --- a/vendor/github.com/elastic/beats/filebeat/cmd/modules.go +++ b/vendor/github.com/elastic/beats/filebeat/cmd/modules.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/filebeat/cmd/root.go b/vendor/github.com/elastic/beats/filebeat/cmd/root.go index 250f1839..c426c501 100644 --- a/vendor/github.com/elastic/beats/filebeat/cmd/root.go +++ b/vendor/github.com/elastic/beats/filebeat/cmd/root.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/filebeat/config/config.go b/vendor/github.com/elastic/beats/filebeat/config/config.go index 2a1aa3ba..a1212fb4 100644 --- a/vendor/github.com/elastic/beats/filebeat/config/config.go +++ b/vendor/github.com/elastic/beats/filebeat/config/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 config import ( diff --git a/vendor/github.com/elastic/beats/filebeat/config/config_test.go b/vendor/github.com/elastic/beats/filebeat/config/config_test.go deleted file mode 100644 index 02ffcb88..00000000 --- a/vendor/github.com/elastic/beats/filebeat/config/config_test.go +++ /dev/null @@ -1,177 +0,0 @@ -// +build !integration - -package config - -import ( - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/cfgfile" - "github.com/elastic/beats/libbeat/common" -) - -func TestReadConfig2(t *testing.T) { - // Tests with different params from config file - absPath, err := filepath.Abs("../tests/files/") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - config := &Config{} - - // Reads second config file - err = cfgfile.Read(config, absPath+"/config2.yml") - assert.Nil(t, err) -} - -func TestGetConfigFiles_File(t *testing.T) { - absPath, err := filepath.Abs("../tests/files/") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - files, err := getConfigFiles(absPath + "/config.yml") - - assert.Nil(t, err) - assert.Equal(t, 1, len(files)) - - assert.Equal(t, absPath+"/config.yml", files[0]) -} - -func TestGetConfigFiles_Dir(t *testing.T) { - absPath, err := filepath.Abs("../tests/files/") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - files, err := getConfigFiles(absPath) - - assert.Nil(t, err) - assert.Equal(t, 2, len(files)) - - assert.Equal(t, filepath.Join(absPath, "/config.yml"), files[0]) - assert.Equal(t, filepath.Join(absPath, "/config2.yml"), files[1]) -} - -func TestGetConfigFiles_EmptyDir(t *testing.T) { - absPath, err := filepath.Abs("../tests/files/") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - files, err := getConfigFiles(absPath + "/logs") - - assert.Nil(t, err) - assert.Equal(t, 0, len(files)) -} - -func TestGetConfigFiles_Invalid(t *testing.T) { - absPath, err := filepath.Abs("../tests/files/") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - // Invalid directory - files, err := getConfigFiles(absPath + "/qwerwer") - - assert.NotNil(t, err) - assert.Nil(t, files) -} - -func TestMergeConfigFiles(t *testing.T) { - absPath, err := filepath.Abs("../tests/files/") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - files, err := getConfigFiles(absPath) - - assert.Nil(t, err) - assert.Equal(t, 2, len(files)) - - config := &Config{} - err = mergeConfigFiles(files, config) - assert.NoError(t, err) - - assert.Equal(t, 4, len(config.Inputs)) -} - -func TestEnabledInputs(t *testing.T) { - stdinEnabled, err := common.NewConfigFrom(map[string]interface{}{ - "type": "stdin", - "enabled": true, - }) - if !assert.NoError(t, err) { - return - } - - udpDisabled, err := common.NewConfigFrom(map[string]interface{}{ - "type": "udp", - "enabled": false, - }) - if !assert.NoError(t, err) { - return - } - - logDisabled, err := common.NewConfigFrom(map[string]interface{}{ - "type": "log", - "enabled": false, - }) - if !assert.NoError(t, err) { - return - } - - t.Run("ListEnabledInputs", func(t *testing.T) { - tests := []struct { - name string - config *Config - expected []string - }{ - { - name: "all inputs disabled", - config: &Config{Inputs: []*common.Config{udpDisabled, logDisabled}}, - expected: []string{}, - }, - { - name: "all inputs enabled", - config: &Config{Inputs: []*common.Config{stdinEnabled}}, - expected: []string{"stdin"}, - }, - { - name: "disabled and enabled inputs", - config: &Config{Inputs: []*common.Config{stdinEnabled, udpDisabled, logDisabled}}, - expected: []string{"stdin"}, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - assert.ElementsMatch(t, test.expected, test.config.ListEnabledInputs()) - }) - } - }) - - t.Run("IsInputEnabled", func(t *testing.T) { - config := &Config{Inputs: []*common.Config{stdinEnabled, udpDisabled, logDisabled}} - - tests := []struct { - name string - input string - expected bool - config *Config - }{ - {name: "input exists and enabled", input: "stdin", expected: true, config: config}, - {name: "input exists and disabled", input: "udp", expected: false, config: config}, - {name: "input doesn't exist", input: "redis", expected: false, config: config}, - {name: "no inputs are enabled", input: "redis", expected: false, config: &Config{}}, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - assert.Equal(t, test.expected, config.IsInputEnabled(test.input)) - }) - } - }) -} diff --git a/vendor/github.com/elastic/beats/filebeat/crawler/crawler.go b/vendor/github.com/elastic/beats/filebeat/crawler/crawler.go index 62da5532..bebcf7a2 100644 --- a/vendor/github.com/elastic/beats/filebeat/crawler/crawler.go +++ b/vendor/github.com/elastic/beats/filebeat/crawler/crawler.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 crawler import ( diff --git a/vendor/github.com/elastic/beats/filebeat/docs/autodiscover-hints.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/autodiscover-hints.asciidoc index 10a15002..a49a8abd 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/autodiscover-hints.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/autodiscover-hints.asciidoc @@ -1,44 +1,133 @@ -Filebeat supports a autodiscover based on hints from the provider: +{beatname_uc} supports autodiscover based on hints from the provider. The hints system looks for +hints in Kubernetes Pod annotations or Docker labels that have the prefix `co.elastic.logs`. As soon as +the container starts, {beatname_uc} will check if it contains any hints and launch the proper config for +it. Hints tell {beatname_uc} how to get logs for the given container. By default logs will be retrieved +from the container using the `docker` input. You can use hints to modify this behavior. This is the full +list of supported hints: + +[float] +===== `co.elastic.logs/disable` + +Filebeat gets logs from all containers by default, you can set this hint to `true` to ignore +the output of the container. Filebeat won't read or send logs from it. + +[float] +===== `co.elastic.logs/multiline.*` + +Multiline settings. See <> for a full list of all supported options. + +[float] +===== `co.elastic.logs/include_lines` + +A list of regular expressions to match the lines that you want {beatname_uc} to include. +See <> for more info. + +[float] +===== `co.elastic.logs/exclude_lines` + +A list of regular expressions to match the lines that you want {beatname_uc} to exclude. +See <> for more info. + +[float] +===== `co.elastic.logs/module` + +Instead of using raw `docker` input, specifies the module to use to parse logs from the container. See +<> for the list of supported modules. + +[float] +===== `co.elastic.logs/fileset` + +When module is configured, map container logs to module filesets. You can either configure +a single fileset like this: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- -filebeat.autodiscover: - providers: - - type: kubernetes - hints.enabled: true +co.elastic.logs/fileset: access +------------------------------------------------------------------------------------- + +Or configure a fileset per stream in the container (stdout and stderr): + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +co.elastic.logs/fileset.stdout: access +co.elastic.logs/fileset.stderr: error +------------------------------------------------------------------------------------- + +[float] +===== `co.elastic.logs/raw` +When an entire input/module configuration needs to be completely set the `raw` hint can be used. You can provide a +stringified JSON of the input configuration. `raw` overrides every other hint and can be used to create bot a single or +a list of configurations. + +["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- +co.elastic.logs/raw: "[{\"containers\":{\"ids\":[\"${data.container.id}\"]},\"multiline\":{\"negate\":\"true\",\"pattern\":\"^test\"},\"type\":\"docker\"}]" +------------------------------------------------------------------------------------- + +[float] +===== `co.elastic.logs/processors` + +Define a processor to be added to the {beatname_uc} input/module configuration. See <> for the list +of supported processors. -This configuration enables the `hints` autodiscover for Kubernetes. The `hints` system looks for -hints in Kubernetes annotations or Docker labels which have the prefix `co.elastic.logs`. +In order to provide ordering of the processor definition, numbers can be provided. If not, the hints builder will do +arbitrary ordering: + +["source","yaml"] +------------------------------------------------------------------------------------- +co.elastic.logs/processors.1.dissect.tokenizer: "%{key1} %{key2}" +co.elastic.logs/processors.dissect.tokenizer: "%{key2} %{key1}" +------------------------------------------------------------------------------------- + +In the above sample the processor definition tagged with `1` would be executed first. [float] ==== Kubernetes -You can annotate Kubernetes Pods with useful info to spin up Filebeat inputs or modules: +Kubernetes autodiscover provider supports hints in Pod annotations. To enable it just set `hints.enabled`: + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +filebeat.autodiscover: + providers: + - type: kubernetes + hints.enabled: true +------------------------------------------------------------------------------------- + +You can annotate Kubernetes Pods with useful info to spin up {beatname_uc} inputs or modules: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- annotations: co.elastic.logs/multiline.pattern: '^\[' - co.elastic.logs/multiline.negate: 'true' + co.elastic.logs/multiline.negate: true co.elastic.logs/multiline.match: after - co.elastic.logs.sidecar/exlude_lines: '^DBG' ------------------------------------------------------------------------------------- -The above annotations are used to add additional information to the input that is generated. The hints -generated convey the multiline configuration to use and the lines to exclude in the container which is -named `sidecar`. Hints can also be provided for the following input configuration: -parameters: + +[float] +===== Multiple containers + +When a pod has multiple containers, the settings are shared unless you put the container name in the +hint. For example, these hints configure multiline settings for all containers in the pod, but set a +specific `exclude_lines` hint for the container called `sidecar`. + ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- -include_lines +annotations: + co.elastic.logs/multiline.pattern: '^\[' + co.elastic.logs/multiline.negate: true + co.elastic.logs/multiline.match: after + co.elastic.logs.sidecar/exclude_lines: '^DBG' ------------------------------------------------------------------------------------- + + [float] ==== Docker -Docker autodiscover provider supports hints in labels, to enable it just set `hints.enabled`: +Docker autodiscover provider supports hints in labels. To enable it just set `hints.enabled`: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- @@ -48,14 +137,14 @@ filebeat.autodiscover: hints.enabled: true ------------------------------------------------------------------------------------- -You can label Docker containers with useful info to spin up Filebeat inputs, for example: +You can label Docker containers with useful info to spin up {beatname_uc} inputs, for example: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- - co.elastic.logs/multiline.pattern: '^\[' - co.elastic.logs/multiline.negate: 'true' - co.elastic.logs/multiline.match: after + co.elastic.logs/module: nginx + co.elastic.logs/fileset.stdout: access + co.elastic.logs/fileset.stderr: error ------------------------------------------------------------------------------------- -The above labels would allow Filebeat to add a multiline pattern to the input that will be -generated for the logs of the running container. +The above labels configure {beatname_uc} to use the Nginx module to harvest logs for this container. +Access logs will be retrieved from stdout stream, and error logs from stderr. diff --git a/vendor/github.com/elastic/beats/filebeat/docs/configuring-howto.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/configuring-howto.asciidoc index ff190ecd..f2a88e53 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/configuring-howto.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/configuring-howto.asciidoc @@ -39,6 +39,7 @@ The following topics describe how to configure Filebeat: * <> * <> * <> +* <> * <<{beatname_lc}-reference-yml>> -- @@ -85,4 +86,6 @@ include::../../libbeat/docs/yaml.asciidoc[] include::../../libbeat/docs/regexp.asciidoc[] +include::../../libbeat/docs/http-endpoint.asciidoc[] + include::../../libbeat/docs/reference-yml.asciidoc[] diff --git a/vendor/github.com/elastic/beats/filebeat/docs/fields.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/fields.asciidoc index 676f5b9a..62389c53 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/fields.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/fields.asciidoc @@ -305,6 +305,16 @@ type: keyword The city name. +-- + +*`apache2.access.geoip.region_iso_code`*:: ++ +-- +type: keyword + +Region ISO code. + + -- [float] @@ -464,355 +474,956 @@ The ID of the process. *`auditd.log.ppid`*:: + -- -The ID of the process. +The ID of the process. + + +-- + +*`auditd.log.items`*:: ++ +-- +The number of items in an event. + + +-- + +*`auditd.log.item`*:: ++ +-- +The item field indicates which item out of the total number of items. This number is zero-based; a value of 0 means it is the first item. + + +-- + +*`auditd.log.a0`*:: ++ +-- +The first argument to the system call. + + +-- + +*`auditd.log.res`*:: ++ +-- +The result of the system call (success or failure). + + +-- + +[float] +== geoip fields + +Contains GeoIP information gathered based on the `auditd.log.addr` field. Only present if the GeoIP Elasticsearch plugin is available and used. + + + +*`auditd.log.geoip.continent_name`*:: ++ +-- +type: keyword + +The name of the continent. + + +-- + +*`auditd.log.geoip.city_name`*:: ++ +-- +type: keyword + +The name of the city. + + +-- + +*`auditd.log.geoip.region_name`*:: ++ +-- +type: keyword + +The name of the region. + + +-- + +*`auditd.log.geoip.country_iso_code`*:: ++ +-- +type: keyword + +Country ISO code. + + +-- + +*`auditd.log.geoip.location`*:: ++ +-- +type: geo_point + +The longitude and latitude. + + +-- + +*`auditd.log.geoip.region_iso_code`*:: ++ +-- +type: keyword + +Region ISO code. + + +-- + +[[exported-fields-beat]] +== Beat fields + +Contains common beat fields available in all event types. + + + +*`beat.name`*:: ++ +-- +The name of the Beat sending the log messages. If the Beat name is set in the configuration file, then that value is used. If it is not set, the hostname is used. To set the Beat name, use the `name` option in the configuration file. + + +-- + +*`beat.hostname`*:: ++ +-- +The hostname as returned by the operating system on which the Beat is running. + + +-- + +*`beat.timezone`*:: ++ +-- +The timezone as returned by the operating system on which the Beat is running. + + +-- + +*`beat.version`*:: ++ +-- +The version of the beat that generated this event. + + +-- + +*`@timestamp`*:: ++ +-- +type: date + +example: August 26th 2016, 12:35:53.332 + +format: date + +required: True + +The timestamp when the event log record was generated. + + +-- + +*`tags`*:: ++ +-- +Arbitrary tags that can be set per Beat and per transaction type. + + +-- + +*`fields`*:: ++ +-- +type: object + +Contains user configurable fields. + + +-- + +[float] +== error fields + +Error fields containing additional info in case of errors. + + + +*`error.message`*:: ++ +-- +type: text + +Error message. + + +-- + +*`error.code`*:: ++ +-- +type: long + +Error code. + + +-- + +*`error.type`*:: ++ +-- +type: keyword + +Error type. + + +-- + +[[exported-fields-cloud]] +== Cloud provider metadata fields + +Metadata from cloud providers added by the add_cloud_metadata processor. + + + +*`meta.cloud.provider`*:: ++ +-- +example: ec2 + +Name of the cloud provider. Possible values are ec2, gce, or digitalocean. + + +-- + +*`meta.cloud.instance_id`*:: ++ +-- +Instance ID of the host machine. + + +-- + +*`meta.cloud.instance_name`*:: ++ +-- +Instance name of the host machine. + + +-- + +*`meta.cloud.machine_type`*:: ++ +-- +example: t2.medium + +Machine type of the host machine. + + +-- + +*`meta.cloud.availability_zone`*:: ++ +-- +example: us-east-1c + +Availability zone in which this host is running. + + +-- + +*`meta.cloud.project_id`*:: ++ +-- +example: project-x + +Name of the project in Google Cloud. + + +-- + +*`meta.cloud.region`*:: ++ +-- +Region in which this host is running. + + +-- + +[[exported-fields-docker-processor]] +== Docker fields + +Docker stats collected from Docker. + + + + +*`docker.container.id`*:: ++ +-- +type: keyword + +Unique container id. + + +-- + +*`docker.container.image`*:: ++ +-- +type: keyword + +Name of the image the container was built on. + + +-- + +*`docker.container.name`*:: ++ +-- +type: keyword + +Container name. + + +-- + +*`docker.container.labels`*:: ++ +-- +type: object + +Image labels. + + +-- + +[[exported-fields-elasticsearch]] +== elasticsearch fields + +elasticsearch Module + + + +[float] +== elasticsearch fields + + + + +*`elasticsearch.node.name`*:: ++ +-- +type: keyword + +example: vWNJsZ3 + +Name of the node + +-- + +*`elasticsearch.index.name`*:: ++ +-- +type: keyword + +example: filebeat-test-input + +Index name + +-- + +*`elasticsearch.index.id`*:: ++ +-- +type: keyword + +example: aOGgDwbURfCV57AScqbCgw + +Index id + +-- + +*`elasticsearch.shard.id`*:: ++ +-- +type: keyword + +example: 0 + +Id of the shard + +-- + +[float] +== audit fields + + + + +*`elasticsearch.audit.layer`*:: ++ +-- +type: keyword + +example: rest + +The layer from which this event originated: rest, transport or ip_filter + +-- + +*`elasticsearch.audit.event_type`*:: ++ +-- +type: keyword + +example: access_granted + +The type of event that occurred: anonymous_access_denied, authentication_failed, access_denied, access_granted, connection_granted, connection_denied, tampered_request, run_as_granted, run_as_denied + +-- + +*`elasticsearch.audit.origin_type`*:: ++ +-- +type: keyword + +example: local_node + +Where the request originated: rest (request originated from a REST API request), transport (request was received on the transport channel), local_node (the local node issued the request) + +-- + +*`elasticsearch.audit.origin_address`*:: ++ +-- +type: ip + +example: 192.168.1.42 + +The IP address from which the request originated + +-- + +*`elasticsearch.audit.principal`*:: ++ +-- +type: keyword + +example: _anonymous + +The principal (username) that failed authentication + +-- + +*`elasticsearch.audit.action`*:: ++ +-- +type: keyword + +example: cluster:monitor/main + +The name of the action that was executed + +-- + +*`elasticsearch.audit.uri`*:: ++ +-- +type: keyword + +example: /_xpack/security/_authenticate + +The REST endpoint URI + +-- + +*`elasticsearch.audit.request`*:: ++ +-- +type: keyword + +example: ClearScrollRequest + +The type of request that was executed + +-- + +*`elasticsearch.audit.request_body`*:: ++ +-- +type: text + +example: body + +The body of the request, if enabled + +-- + +[float] +== deprecation fields + + + +[float] +== gc fields + +GC fileset fields. + + + +[float] +== phase fields + +Fields specific to GC phase. + + + +*`elasticsearch.gc.phase.name`*:: ++ +-- +type: keyword + +Name of the GC collection phase. + + +-- + +*`elasticsearch.gc.phase.duration_sec`*:: ++ +-- +type: float + +Collection phase duration according to the Java virtual machine. + + +-- + +*`elasticsearch.gc.phase.scrub_symbol_table_time_sec`*:: ++ +-- +type: float + +Pause time in seconds cleaning up symbol tables. -- -*`auditd.log.items`*:: +*`elasticsearch.gc.phase.scrub_string_table_time_sec`*:: + -- -The number of items in an event. +type: float + +Pause time in seconds cleaning up string tables. -- -*`auditd.log.item`*:: +*`elasticsearch.gc.phase.weak_refs_processing_time_sec`*:: + -- -The item field indicates which item out of the total number of items. This number is zero-based; a value of 0 means it is the first item. +type: float + +Time spent processing weak references in seconds. -- -*`auditd.log.a0`*:: +*`elasticsearch.gc.phase.parallel_rescan_time_sec`*:: + -- -The first argument to the system call. +type: float + +Time spent in seconds marking live objects while application is stopped. -- -*`auditd.log.res`*:: +*`elasticsearch.gc.phase.class_unload_time_sec`*:: + -- -The result of the system call (success or failure). +type: float + +Time spent unloading unused classes in seconds. -- [float] -== geoip fields +== cpu_time fields -Contains GeoIP information gathered based on the `auditd.log.addr` field. Only present if the GeoIP Elasticsearch plugin is available and used. +Process CPU time spent performing collections. -*`auditd.log.geoip.continent_name`*:: +*`elasticsearch.gc.phase.cpu_time.user_sec`*:: + -- -type: keyword +type: float -The name of the continent. +CPU time spent outside the kernel. -- -*`auditd.log.geoip.city_name`*:: +*`elasticsearch.gc.phase.cpu_time.sys_sec`*:: + -- -type: keyword +type: float -The name of the city. +CPU time spent inside the kernel. -- -*`auditd.log.geoip.region_name`*:: +*`elasticsearch.gc.phase.cpu_time.real_sec`*:: + -- -type: keyword +type: float -The name of the region. +Total elapsed CPU time spent to complete the collection from start to finish. -- -*`auditd.log.geoip.country_iso_code`*:: +*`elasticsearch.gc.jvm_runtime_sec`*:: + -- -type: keyword +type: float -Country ISO code. +The time from JVM start up in seconds, as a floating point number. -- -*`auditd.log.geoip.location`*:: +*`elasticsearch.gc.threads_total_stop_time_sec`*:: + -- -type: geo_point +type: float -The longitude and latitude. +Garbage collection threads total stop time seconds. -- -[[exported-fields-beat]] -== Beat fields - -Contains common beat fields available in all event types. - - - -*`beat.name`*:: +*`elasticsearch.gc.stopping_threads_time_sec`*:: + -- -The name of the Beat sending the log messages. If the Beat name is set in the configuration file, then that value is used. If it is not set, the hostname is used. To set the Beat name, use the `name` option in the configuration file. +type: float + +Time took to stop threads seconds. -- -*`beat.hostname`*:: +*`elasticsearch.gc.tags`*:: + -- -The hostname as returned by the operating system on which the Beat is running. +type: keyword +GC logging tags. --- -*`beat.timezone`*:: -+ -- -The timezone as returned by the operating system on which the Beat is running. +[float] +== heap fields + +Heap allocation and total size. --- -*`beat.version`*:: + +*`elasticsearch.gc.heap.size_kb`*:: + -- -The version of the beat that generated this event. +type: integer + +Total heap size in kilobytes. -- -*`@timestamp`*:: +*`elasticsearch.gc.heap.used_kb`*:: + -- -type: date +type: integer -example: August 26th 2016, 12:35:53.332 +Used heap in kilobytes. -format: date -required: True +-- -The timestamp when the event log record was generated. +[float] +== old_gen fields +Old generation occupancy and total size. --- -*`tags`*:: + +*`elasticsearch.gc.old_gen.size_kb`*:: + -- -Arbitrary tags that can be set per Beat and per transaction type. +type: integer + +Total size of old generation in kilobytes. -- -*`fields`*:: +*`elasticsearch.gc.old_gen.used_kb`*:: + -- -type: object +type: integer -Contains user configurable fields. +Old generation occupancy in kilobytes. -- [float] -== error fields +== young_gen fields -Error fields containing additional info in case of errors. +Young generation occupancy and total size. -*`error.message`*:: +*`elasticsearch.gc.young_gen.size_kb`*:: + -- -type: text +type: integer -Error message. +Total size of young generation in kilobytes. -- -*`error.code`*:: +*`elasticsearch.gc.young_gen.used_kb`*:: + -- -type: long +type: integer -Error code. +Young generation occupancy in kilobytes. -- -*`error.type`*:: +[float] +== server fields + +Server log file + + +*`elasticsearch.server.component`*:: + -- type: keyword -Error type. +example: o.e.c.m.MetaDataCreateIndexService +Log component -- -[[exported-fields-cloud]] -== Cloud provider metadata fields +[float] +== gc fields -Metadata from cloud providers added by the add_cloud_metadata processor. +GC log +[float] +== young fields -*`meta.cloud.provider`*:: +Young GC + + +*`elasticsearch.server.gc.young.one`*:: + -- -example: ec2 +type: long + +example: -Name of the cloud provider. Possible values are ec2, gce, or digitalocean. -- -*`meta.cloud.instance_id`*:: +*`elasticsearch.server.gc.young.two`*:: + -- -Instance ID of the host machine. +type: long + +example: + -- -*`meta.cloud.instance_name`*:: +*`elasticsearch.server.gc_overhead`*:: + -- -Instance name of the host machine. +type: long + +example: + -- -*`meta.cloud.machine_type`*:: +[float] +== slowlog fields + +Slowlog events from Elasticsearch + + +*`elasticsearch.slowlog.logger`*:: + -- -example: t2.medium +type: keyword -Machine type of the host machine. +example: index.search.slowlog.fetch +Logger name -- -*`meta.cloud.availability_zone`*:: +*`elasticsearch.slowlog.took`*:: + -- -example: us-east-1c +type: text -Availability zone in which this host is running. +example: 300ms +Time it took to execute the query -- -*`meta.cloud.project_id`*:: +*`elasticsearch.slowlog.types`*:: + -- -example: project-x +type: keyword -Name of the project in Google Cloud. +example: +Types -- -*`meta.cloud.region`*:: +*`elasticsearch.slowlog.stats`*:: + -- -Region in which this host is running. +type: text +example: --- +Statistics -[[exported-fields-docker-processor]] -== Docker fields +-- -Docker stats collected from Docker. +*`elasticsearch.slowlog.search_type`*:: ++ +-- +type: keyword +example: QUERY_THEN_FETCH +Search type +-- -*`docker.container.id`*:: +*`elasticsearch.slowlog.source_query`*:: + -- -type: keyword +type: text -Unique container id. +example: {"query":{"match_all":{"boost":1.0}}} +Slow query -- -*`docker.container.image`*:: +*`elasticsearch.slowlog.extra_source`*:: + -- -type: keyword +type: text -Name of the image the container was built on. +example: +Extra source information -- -*`docker.container.name`*:: +*`elasticsearch.slowlog.took_millis`*:: + -- type: keyword -Container name. +example: 42 +Time took in milliseconds -- -*`docker.container.labels`*:: +*`elasticsearch.slowlog.total_hits`*:: + -- -type: object +type: keyword -Image labels. +example: 42 +Total hits -- -[[exported-fields-elasticsearch]] -== elasticsearch fields +*`elasticsearch.slowlog.total_shards`*:: ++ +-- +type: keyword -elasticsearch Module +example: 22 +Total queried shards +-- -[float] -== elasticsearch fields +*`elasticsearch.slowlog.routing`*:: ++ +-- +type: keyword +example: s01HZ2QBk9jw4gtgaFtn +Routing +-- -[float] -== server fields +*`elasticsearch.slowlog.id`*:: ++ +-- +type: keyword +example: +Id +-- -*`elasticsearch.server.component`*:: +*`elasticsearch.slowlog.type`*:: + -- type: keyword -Elasticsearch component. +example: doc +Type -- @@ -1409,6 +2020,16 @@ type: keyword The city name. +-- + +*`iis.access.geoip.region_iso_code`*:: ++ +-- +type: keyword + +Region ISO code. + + -- [float] @@ -1575,6 +2196,16 @@ type: keyword The city name. +-- + +*`iis.error.geoip.region_iso_code`*:: ++ +-- +type: keyword + +Region ISO code. + + -- [[exported-fields-kafka]] @@ -1752,7 +2383,7 @@ Kubernetes pod name -- type: keyword -Kubernetes pod uid +Kubernetes Pod UID -- @@ -2028,6 +2659,48 @@ type: date event.created contains the date on which the event was created. In case of log events this is when the log line was read by Filebeat. In comparison @timestamp is the processed timestamp from the log line. If both are identical only @timestamp should be used. +-- + +*`http.response.status_code`*:: ++ +-- +type: long + +example: 404 + +HTTP response status_code. + + +-- + +*`http.response.elapsed_time`*:: ++ +-- +type: long + +Elapsed time between request and response in milli seconds. + + +-- + +*`http.response.content_length`*:: ++ +-- +type: long + +Content length of the HTTP response body. + + +-- + +*`http.request.method`*:: ++ +-- +type: keyword + +Request method. + + -- [[exported-fields-logstash]] @@ -2720,6 +3393,16 @@ type: keyword The city name. +-- + +*`nginx.access.geoip.region_iso_code`*:: ++ +-- +type: keyword + +Region ISO code. + + -- [float] @@ -3257,6 +3940,16 @@ type: geo_point The longitude and latitude. +-- + +*`system.auth.ssh.geoip.region_iso_code`*:: ++ +-- +type: keyword + +Region ISO code. + + -- [float] @@ -3700,6 +4393,16 @@ type: keyword The city name. +-- + +*`traefik.access.geoip.region_iso_code`*:: ++ +-- +type: keyword + +Region ISO code. + + -- *`traefik.access.request_count`*:: diff --git a/vendor/github.com/elastic/beats/filebeat/docs/filebeat-modules-options.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/filebeat-modules-options.asciidoc index 8f254618..e13f3f75 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/filebeat-modules-options.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/filebeat-modules-options.asciidoc @@ -1,3 +1,5 @@ +:modulename: apache2 mysql + [id="configuration-{beatname_lc}-modules"] == Specify which modules to run @@ -39,10 +41,7 @@ under `modules.d` by running the For example, to enable the `apache2` and `mysql` configs in the `modules.d` directory, you use: -["source","sh",subs="attributes"] ----- -./{beatname_lc} modules enable apache2 mysql ----- +include::./include/enable-modules-command.asciidoc[] Then when you run {beatname_uc}, it loads the corresponding module configurations specified in the `modules.d` directory (for example, `modules.d/apache2.yml` and @@ -50,15 +49,12 @@ specified in the `modules.d` directory (for example, `modules.d/apache2.yml` and To see a list of enabled and disabled modules, run: -["source","sh",subs="attributes"] ----- -./{beatname_lc} modules list ----- +include::./include/list-modules-command.asciidoc[] The default module configurations assume that the logs you’re harvesting are in the location expected for your OS and that the behavior of the module is appropriate for your environment. To change the default configurations, you need -to specify variable settings. See <>. +to <>. [float] [[enable-modules-cli]] @@ -72,18 +68,34 @@ along with any modules that are enabled in the configuration file or `modules.d` directory. If there's a conflict, the configuration specified at the command line is used. -The following example shows how to enable and run the `nginx`,`mysql`, and -`system` modules. +The following command enables and runs the `nginx`,`mysql`, and `system` +modules. + +*deb and rpm:* + +["source","sh",subs="attributes"] +---- +{beatname_lc} --modules nginx,mysql,system +---- + +*mac:* ["source","sh",subs="attributes"] ---- -./{beatname_lc} -e --modules nginx,mysql,system +./{beatname_lc} --modules nginx,mysql,system +---- + +*win:* + +["source","sh",subs="attributes"] +---- +PS > .{backslash}{beatname_lc}.exe --modules nginx,mysql,system ---- The default module configurations assume that the logs you’re harvesting are in the location expected for your OS and that the behavior of the module is appropriate for your environment. To change the default configurations, you need -to specify variable settings. See <>. +to <>. [float] [[enable-modules-config-file]] @@ -116,45 +128,12 @@ The following example shows a configuration that runs the `nginx`,`mysql`, and The default module configurations assume that the logs you’re harvesting are in the location expected for your OS and that the behavior of the module is appropriate for your environment. To change the default configurations, you need -to specify variable settings. See <>. +to <>. [[specify-variable-settings]] === Specify variable settings -Each module and fileset has variables that you can set to change the default -behavior of the module, including the paths where the module looks for log -files. For example, the `var.paths` setting in the following example sets the -path for `nginx` access log files: - -[source,yaml] ----- -- module: nginx - access: - var.paths: ["/var/log/nginx/access.log*"] ----- - -To set the path for Nginx access log files at the command line, you use -the `-M` flag. For example: - -["source","shell",subs="attributes"] ----- -./{beatname_lc} -M "nginx.access.var.paths=[/var/log/nginx/access.log*]" ----- - -When you set variables at the command line, the variable name needs to include -the module and fileset name. You can specify multiple overrides. Each override -must start with `-M`. - -Here you see how to use the `-M` flag along with the `--modules` flag. This -example shows how to set the paths to the access and error logs: - -["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules nginx -M "nginx.access.var.paths=[/var/log/nginx/access.log*]" -M "nginx.error.var.paths=[/var/log/nginx/error.log*]" ----- - -For information about specific variables that you can set for each fileset, -see the <<{beatname_lc}-modules,documentation for the modules>>. +include::./include/set-paths.asciidoc[] [[advanced-settings]] === Advanced settings @@ -172,35 +151,28 @@ configuration: close_eof: true ---------------------------------------------------------------------- -Or at the command line like this: +Or at the command line when you run {beatname_uc}: ["source","sh",subs="attributes"] ---------------------------------------------------------------------- -./{beatname_lc} -M "nginx.access.input.close_eof=true" +-M "nginx.access.input.close_eof=true" ---------------------------------------------------------------------- - -Here you see how to use the `-M` flag along with the `--modules` flag: +You can use wildcards to change variables or settings for multiple +modules/filesets at once. For example, you can enable `close_eof` for all the +filesets in the `nginx` module: ["source","sh",subs="attributes"] ---------------------------------------------------------------------- -./{beatname_lc} --modules nginx -M "nginx.access.input.close_eof=true" +-M "nginx.*.input.close_eof=true" ---------------------------------------------------------------------- - -You can use wildcards to change variables or settings for multiple -modules/filesets at once. For example, the following command enables -`close_eof` for all the filesets in the `nginx` module: +You can also enable `close_eof` for all inputs created by any of the modules: ["source","sh",subs="attributes"] ---------------------------------------------------------------------- -./{beatname_lc} -M "nginx.*.input.close_eof=true" +-M "*.*.input.close_eof=true" ---------------------------------------------------------------------- -The following command enables `close_eof` for all inputs created by any of -the modules: +:modulename!: -["source","sh",subs="attributes"] ----------------------------------------------------------------------- -./{beatname_lc} -M "*.*.input.close_eof=true" ----------------------------------------------------------------------- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/getting-started.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/getting-started.asciidoc index e24f13c5..33e15b65 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/getting-started.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/getting-started.asciidoc @@ -1,15 +1,7 @@ [[filebeat-getting-started]] == Getting Started With Filebeat -To get started with your own Filebeat setup, install and configure these related products: - - * Elasticsearch for storage and indexing the data. - * Kibana for the UI. - * Logstash (optional) for inserting data into Elasticsearch. - -See {libbeat}/getting-started.html[Getting Started with Beats and the Elastic Stack] for more information. - -After installing the Elastic Stack, read the following topics to learn how to install, configure, and run Filebeat: +include::../../libbeat/docs/shared-getting-started-intro.asciidoc[] * <> * <> @@ -24,9 +16,6 @@ After installing the Elastic Stack, read the following topics to learn how to in [[filebeat-installation]] === Step 1: Install Filebeat -Before running Filebeat, you need to install and configure the Elastic stack. See -{libbeat}/getting-started.html[Getting Started with Beats and the Elastic Stack]. - include::../../libbeat/docs/shared-download-and-install.asciidoc[] [[deb]] @@ -141,11 +130,9 @@ endif::[] === Step 2: Configure Filebeat TIP: <> provide the fastest getting -started experience for common log formats. See <> -to learn how to get started with modules. If you use Filebeat modules to get -started, you can skip the content in this section, including the remaining -getting started steps, and go directly to the <> -page. +started experience for common log formats. If you want use Filebeat modules, +skip this section, including the remaining getting started steps, and go +directly to <>. include::../../libbeat/docs/shared-configuring.asciidoc[] @@ -186,17 +173,7 @@ To fetch all files from a predefined level of subdirectories, the following patt fetch log files from the `/var/log` folder itself. Currently it is not possible to recursively fetch all files in all subdirectories of a directory. -. If you are sending output directly to Elasticsearch (and not using Logstash), -set the IP address and port where Filebeat can find the Elasticsearch installation: -+ -[source,yaml] ----------------------------------------------------------------------- -output.elasticsearch: - hosts: ["192.168.1.42:9200"] ----------------------------------------------------------------------- -+ -If you are sending output to Logstash, make sure you -configure the Logstash output in <>. +include::../../libbeat/docs/step-configure-output.asciidoc[] include::../../libbeat/docs/step-configure-kibana-endpoint.asciidoc[] diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/config-option-intro.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/config-option-intro.asciidoc index a977b8f0..d4e16825 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/include/config-option-intro.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/config-option-intro.asciidoc @@ -2,11 +2,9 @@ [id="{modulename}-settings"] ==== Variable settings -The +{modulename}+ module provides the following settings for configuring the -behavior of the module. Each fileset has separate settings. - -If you don’t specify variable settings, the +{modulename}+ module uses the -defaults. +Each fileset has separate variable settings for configuring the behavior of the +module. If you don’t specify variable settings, the +{modulename}+ module uses +the defaults. For more information, see <>. Also see <>. diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/enable-modules-command.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/enable-modules-command.asciidoc new file mode 100644 index 00000000..98fac1dd --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/enable-modules-command.asciidoc @@ -0,0 +1,23 @@ +-- +*deb and rpm:* + +["source","sh",subs="attributes"] +---- +{beatname_lc} modules enable {modulename} +---- + +*mac:* + +["source","sh",subs="attributes"] +---- +./{beatname_lc} modules enable {modulename} +---- + +*win:* + +["source","sh",subs="attributes"] +---- +PS > .{backslash}{beatname_lc}.exe modules enable {modulename} +---- + +-- \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/list-modules-command.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/list-modules-command.asciidoc new file mode 100644 index 00000000..c3bbcff3 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/list-modules-command.asciidoc @@ -0,0 +1,22 @@ +-- +*deb and rpm:* + +["source","sh",subs="attributes"] +---- +{beatname_lc} modules list +---- + +*mac:* + +["source","sh",subs="attributes"] +---- +./{beatname_lc} modules list +---- + +*win:* + +["source","sh",subs="attributes"] +---- +PS > .{backslash}{beatname_lc}.exe modules list +---- +-- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/run-command.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/run-command.asciidoc new file mode 100644 index 00000000..80f2bfb5 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/run-command.asciidoc @@ -0,0 +1,31 @@ +-- +*deb and rpm:* + +["source","sh",subs="attributes"] +---- +service {beatname_lc} start +---- + +*mac:* + +["source","sh",subs="attributes"] +---- +./{beatname_lc} -e +---- + +*win:* + +["source","sh",subs="attributes"] +---- +PS > Start-Service {beatname_lc} +---- + +If the module is configured correctly, you'll see +`INFO Harvester started` messages for each file specified in the config. + +NOTE: Depending on how you've installed {beatname_uc}, you might see errors +related to file ownership or permissions when you try to run {beatname_uc} +modules. See {libbeat}/config-file-permissions.html[Config File Ownership and +Permissions] in the _Beats Platform Reference_ for more information. + +-- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/running-modules.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/running-modules.asciidoc index 9a9252ad..0e3b8ccf 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/include/running-modules.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/running-modules.asciidoc @@ -1,77 +1,43 @@ +:has_module_steps: + [float] [id="running-{modulename}-modules"] === Set up and run the module -IMPORTANT: If you’ve secured Elasticsearch and Kibana, you need to configure the -`username` and `password` options in the Elasticsearch output before setting up -and running the module. See -<>. +Before doing these steps, verify that {es} and {kib} are running and +that {es} is ready to receive data from {beatname_uc}. -Before doing these steps, verify that Elasticsearch and Kibana are running and -that Elasticsearch is ready to receive data from {beatname_uc}. +If you're running our +https://www.elastic.co/cloud/elasticsearch-service[hosted {es} Service] on +Elastic Cloud, or you've enabled security in {es} and {kib}, you need to specify +additional connection information before setting up and running the module. See +<> for the complete setup. To set up and run the module: . Enable the module: + -["source","sh",subs="attributes"] ----------------------------------------------------------------------- -./{beatname_lc} modules enable {modulename} ----------------------------------------------------------------------- +include::./enable-modules-command.asciidoc[] + -The <> command enables the +{modulename}+ -config defined in the `modules.d` directory. See +This command enables the module config defined in the `modules.d` directory. See <> for other ways to enable modules. + To see a list of enabled and disabled modules, run: + -["source","sh",subs="attributes"] ------ -./{beatname_lc} modules list ------ - +include::./list-modules-command.asciidoc[] . Set up the initial environment: + -["source","sh",subs="attributes"] ----------------------------------------------------------------------- -./{beatname_lc} setup -e ----------------------------------------------------------------------- -+ -The <> command loads the recommended index template for -writing to Elasticsearch and deploys the sample dashboards for visualizing the -data in Kibana. This is a one-time setup step. -+ -The `-e` flag is optional and sends output to standard error instead of syslog. +include::./setup-command.asciidoc[] -. Run {beatname_uc}: -+ -["source","sh",subs="attributes"] ------ -./{beatname_lc} -e ------ -+ -If the module is configured correctly, you'll see -`INFO Harvester started` messages for each file specified in the config. +. Run {beatname_uc}. + If your logs aren't in the default location, see <>, then run {beatname_uc} after you've -configured the module. +set the paths variable. + -NOTE: Depending on how you've installed Filebeat, you might see errors -related to file ownership or permissions when you try to run Filebeat modules. -See {libbeat}/config-file-permissions.html[Config File Ownership and Permissions] -in the _Beats Platform Reference_ if you encounter errors related to file -ownership or permissions. +include::./run-command.asciidoc[] -. Explore your data in Kibana: -.. Open your browser and navigate to the *Dashboard* overview in Kibana: -http://localhost:5601/app/kibana#/dashboards[http://localhost:5601/app/kibana#/dashboards]. -Replace `localhost` with the name of the Kibana host. -.. If security is enabled, log in with the Kibana username and password that you -used when you set up security. -.. Enter *{modulename}* in the search box, then open a dashboard and explore -the visualizations for your parsed logs. -+ -TIP: If you don’t see data in Kibana, try changing the date range to a larger -range. By default, Kibana shows the last 15 minutes. +include::./visualize-data.asciidoc[] + +:has_module_steps!: diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/set-paths.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/set-paths.asciidoc new file mode 100644 index 00000000..8f4b1eb5 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/set-paths.asciidoc @@ -0,0 +1,45 @@ +Each module and fileset has variables that you can set to change the default +behavior of the module, including the paths where the module looks for log +files. You can set the path in configuration or from the command line. For +example: + +[source,yaml] +---- +- module: nginx + access: + var.paths: ["/var/log/nginx/access.log*"] <1> +---- +<1> Sets the path for `nginx` access log files. + +To set the path at the command line, use the `-M` flag. The variable name +must include the module and fileset name. For example: + +*deb and rpm:* + +["source","sh",subs="attributes"] +---- +{beatname_lc} -e -M "nginx.access.var.paths=[/var/log/nginx/access.log*]" +---- + +*mac:* + +["source","sh",subs="attributes"] +---- +./{beatname_lc} -e -M "nginx.access.var.paths=[/usr/local/var/log/nginx/access.log*]" +---- + +*win:* + +["source","sh",subs="attributes"] +---- +PS > .{backslash}{beatname_lc}.exe -e -M "nginx.access.var.paths=[c:/programdata/nginx/logs/*access.log*]" +---- + +You can specify multiple overrides. Each override must start with `-M`. + +If you are running {beatname_uc} as a service, you cannot set paths from the +command line. You must set the `var.paths` option in the module configuration +file. + +For information about specific variables that you can set for each fileset, +see the <<{beatname_lc}-modules,documentation for the modules>>. diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/setup-command.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/setup-command.asciidoc new file mode 100644 index 00000000..071ec23c --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/setup-command.asciidoc @@ -0,0 +1,28 @@ +-- +*deb and rpm:* + +["source","sh",subs="attributes"] +---- +{beatname_lc} setup -e +---- + +*mac:* + +["source","sh",subs="attributes"] +---- +./{beatname_lc} setup -e +---- + +*win:* + +["source","sh",subs="attributes"] +---- +PS > .{backslash}{beatname_lc}.exe setup -e +---- + +The <> command loads the recommended index template for +writing to {es} and deploys the sample dashboards for visualizing the +data in {kib}. This is a one-time setup step. + +The `-e` flag is optional and sends output to standard error instead of syslog. +-- \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/docs/include/visualize-data.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/include/visualize-data.asciidoc new file mode 100644 index 00000000..81726987 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/docs/include/visualize-data.asciidoc @@ -0,0 +1,13 @@ +. Explore your data in {kib}: ++ +.. Open your browser and navigate to the *Dashboard* overview in {kib}: +http://localhost:5601/app/kibana#/dashboards[http://localhost:5601/app/kibana#/dashboards]. +Replace `localhost` with the name of the {kib} host. If you're using an +https://cloud.elastic.co/[Elastic Cloud] instance, log in to your cloud account, +then navigate to the {kib} endpoint in your deployment. +.. If necessary, log in with your {kib} username and password. +.. Enter the module name in the search box, then open a dashboard and explore +the visualizations for your parsed logs. ++ +TIP: If you don’t see data in {kib}, try changing the date range to a larger +range. By default, {kib} shows the last 15 minutes. diff --git a/vendor/github.com/elastic/beats/filebeat/docs/index.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/index.asciidoc index 81317ace..17dbcdfe 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/index.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/index.asciidoc @@ -17,8 +17,6 @@ include::../../libbeat/docs/shared-beats-attributes.asciidoc[] include::./overview.asciidoc[] -include::../../libbeat/docs/contributing-to-beats.asciidoc[] - include::./getting-started.asciidoc[] include::./modules-getting-started.asciidoc[] @@ -46,3 +44,6 @@ include::./troubleshooting.asciidoc[] include::./faq.asciidoc[] include::./migration.asciidoc[] + +include::../../libbeat/docs/contributing-to-beats.asciidoc[] + diff --git a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-common-file-options.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-common-file-options.asciidoc index bebdbfca..ee663f7e 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-common-file-options.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-common-file-options.asciidoc @@ -348,9 +348,10 @@ specifying 10s for `max_backoff` means that, at the worst, a new line could be added to the log file if {beatname_uc} has backed off multiple times. The default is 10s. -Requirement: max_backoff should always be set to `max_backoff <= -scan_frequency`. In case `max_backoff` should be bigger, it is recommended to -close the file handler instead let the {beatname_uc} pick up the file again. +Requirement: Set `max_backoff` to be greater than or equal to `backoff` and +less than or equal to `scan_frequency` (`backoff <= max_backoff <= scan_frequency`). +If `max_backoff` needs to be higher, it is recommended to close the file handler +instead and let {beatname_uc} pick up the file again. [float] ===== `backoff_factor` diff --git a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-docker.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-docker.asciidoc index 84cc062d..6685745e 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-docker.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-docker.asciidoc @@ -55,6 +55,12 @@ Enable partial messages joining. Docker `json-file` driver splits log lines larg end of line (`\n`) is present for common lines in the resulting file, while it's not the for the lines that have been split. `combine_partial` joins them back together when enabled. It is enabled by default. +===== `cri.parse_flags` + +Enable CRI flags parsing from the log file. CRI uses flags to signal a partial line, enabling this will +ensure partial lines are rejoined. It is disabled by default. + + The following input configures {beatname_uc} to read the `stdout` stream from all containers under the default Docker containers path: diff --git a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-log.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-log.asciidoc index 7c73c63d..2e0fdf21 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-log.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-log.asciidoc @@ -57,6 +57,10 @@ multiple input sections: IMPORTANT: Make sure a file is not defined more than once across all inputs because this can lead to unexpected behaviour. +NOTE: When dealing with file rotation, avoid harvesting symlinks. Instead +use the <> setting to point to the original file, and specify +a pattern that matches the file you want to harvest and all of its rotated +files. [id="{beatname_lc}-input-{type}-options"] ==== Configuration options diff --git a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-tcp.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-tcp.asciidoc index b373a36d..f2051990 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-tcp.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-tcp.asciidoc @@ -7,6 +7,8 @@ TCP ++++ +experimental[] + Use the `TCP` input to read events over TCP. Example configuration: diff --git a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-udp.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-udp.asciidoc index f6c63c82..cb29bbda 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-udp.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/inputs/input-udp.asciidoc @@ -7,6 +7,8 @@ UDP ++++ +experimental[] + Use the `udp` input to read events over UDP. Example configuration: diff --git a/vendor/github.com/elastic/beats/filebeat/docs/migration.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/migration.asciidoc index 86fe7c6a..92c1102e 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/migration.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/migration.asciidoc @@ -13,7 +13,7 @@ to use for tailing log files and forwarding them to Logstash. changed. * Command line options were removed and moved to the configuration file. * Configuration options for outputs are now inherited from libbeat. For details, see the {libbeat}/index.html[Beats Platform Reference]. -* The https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html[Beats input plugin for Logstash] is required. +* The {logstash-ref}/plugins-inputs-beats.html[Beats input plugin for Logstash] is required. The following topics describe how to migrate from https://github.com/elastic/logstash-forwarder[Logstash Forwarder] to {beatname_uc}: @@ -29,8 +29,10 @@ https://github.com/elastic/logstash-forwarder[Logstash Forwarder] to {beatname_u [[migration-input-plugin]] == Migrate to the Beats input plugin for Logstash -{beatname_uc} requires the https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html[Beats input plugin for Logstash]. -For information about getting started with this plugin, see {libbeat}/logstash-installation.html#logstash-setup[Setting up Logstash]. +{beatname_uc} requires the {logstash-ref}/plugins-inputs-beats.html[Beats input +plugin for Logstash]. For information about getting started with this plugin, +see {stack-gs}/get-started-elastic-stack.html#logstash-setup[Configure Logstash to +listen for Beats input] in the {stack} getting started tutorial. In both the 1.5.x and 2.x versions of Logstash, this plugin can be loaded in parallel with the diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules-getting-started.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules-getting-started.asciidoc index b8a2bd37..fe9f8814 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules-getting-started.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules-getting-started.asciidoc @@ -1,35 +1,38 @@ +:has_module_steps: +:modulename: system nginx mysql + [[filebeat-modules-quickstart]] -=== Quick start for common log formats +=== Quick start: modules for common log formats -Filebeat provides a set of pre-built modules that you can use to rapidly +{beatname_uc} provides a set of pre-built modules that you can use to rapidly implement and deploy a log monitoring solution, complete with sample dashboards and data visualizations, in about 5 minutes. These modules support common log formats, such as Nginx, Apache2, and MySQL, and can be run by issuing a simple command. -This topic shows you how to run the basic modules out of the box without extra +This topic shows you how to run the basic modules with minimal extra configuration. For detailed documentation and the full list of available modules, see <>. If you are using a log file type that isn't supported by one of the available -Filebeat modules, you'll need to set up and configure Filebeat manually by +{beatname_uc} modules, you'll need to set up and configure {beatname_uc} manually by following the numbered steps under <>. ==== Prerequisites -Before running Filebeat modules, you need to: +Before running {beatname_uc} modules: * Install and configure the Elastic stack. See -{libbeat}/getting-started.html[Getting Started with Beats and the Elastic Stack]. +{stack-gs}/get-started-elastic-stack.html[Getting started with the {stack}]. -* Complete the Filebeat installation instructions described in -<>. After installing Filebeat, return to this +* Complete the {beatname_uc} installation instructions described in +<>. After installing {beatname_uc}, return to this quick start page. * Install the Ingest Node GeoIP and User Agent plugins. These plugins are required to capture the geographical location and browser information used by some of the visualizations available in the sample dashboards. You can install -these plugins by running the following commands in the Elasticsearch home path: +these plugins by running the following commands in the {es} home path: + [source,shell] ---------------------------------------------------------------------- @@ -37,106 +40,72 @@ sudo bin/elasticsearch-plugin install ingest-geoip sudo bin/elasticsearch-plugin install ingest-user-agent ---------------------------------------------------------------------- + -You need to restart Elasticsearch after running these commands. +You need to restart {es} after running these commands. + If you are using an https://cloud.elastic.co/[Elastic Cloud] instance, you can enable the two plugins from the configuration page. -* Verify that Elasticsearch and Kibana are running and that Elasticsearch is -ready to receive data from Filebeat. +* Verify that {es} and {kib} are running and that {es} is +ready to receive data from {beatname_uc}. [[running-modules-quickstart]] -==== Running Filebeat modules +==== Running {beatname_uc} modules + +To set up and run {beatname_uc} modules: -To set up and run Filebeat modules: +. In the +{beatname_lc}.yml+ config file, set the location of the {es} +installation. By default, {beatname_uc} assumes {es} is running locally on port +9200. ++ +include::../../libbeat/docs/step-configure-output.asciidoc[] include::../../libbeat/docs/step-configure-credentials.asciidoc[] -. Run the `setup` command to set up the initial environment. This command -loads the recommended index template for writing to Elasticsearch and deploys -the sample dashboards for visualizing the data in Kibana. For example: +. Enable the modules you want to run. For example, the following command enables +the system, nginx, and mysql modules: + -[source,shell] ----------------------------------------------------------------------- -./filebeat setup -e ----------------------------------------------------------------------- +include::./include/enable-modules-command.asciidoc[] + -The `-e` flag is optional and sends output to standard error instead of syslog. - -. Start Filebeat and use the `--modules` flag to specify a comma-separated list -of modules you want to run. The following example starts Filebeat with the -`system` module enabled (it's assumed that you've already loaded the sample -dashboards): +This command enables the module configs defined in the `modules.d` directory. See +<> for other ways to enable modules. + -[source,shell] ----------------------------------------------------------------------- -./filebeat -e --modules system ----------------------------------------------------------------------- -+ -This command takes care of configuring Filebeat and loading the ingest node -pipelines and other configuration settings required to parse the log files. +To see a list of enabled and disabled modules, run: + -To run more than one module, specify a comma-separated list of modules. For -example: +include::./include/list-modules-command.asciidoc[] + +. Set up the initial environment: + -[source,shell] ----------------------------------------------------------------------- -./filebeat -e --modules system,nginx,mysql ----------------------------------------------------------------------- +include::./include/setup-command.asciidoc[] + +. Run {beatname_uc}. + -When you start Filebeat, you should see messages indicating that Filebeat -has started harvesters for all enabled modules. For example: +If your logs aren't in the default location, +<> before running {beatname_uc}. + -[source,shell] ----------------------------------------------------------------------- -2017/08/16 23:39:15.414375 harvester.go:206: INFO Harvester started for file: /var/log/displaypolicyd.stdout.log ----------------------------------------------------------------------- -+ -If you don't see this message for each log file that needs to be read, -see <> to find out how to set the path the files. +include::./include/run-command.asciidoc[] + +include::./include/visualize-data.asciidoc[] -NOTE: Depending on how you've installed Filebeat, you might see errors -related to file ownership or permissions when you try to run Filebeat modules. -See {libbeat}/config-file-permissions.html[Config File Ownership and Permissions] -in the _Beats Platform Reference_ if you encounter errors related to file -ownership or permissions. +[[example-dashboard]] +==== Example dashboard + +Here's an example of the syslog dashboard: + +image:./images/kibana-system.png[Syslog dashboard] -This getting started guide uses the `--modules` flag to enable modules -at the command line when you run Filebeat. In a production environment, you'll -probably want to use the configs in the `modules.d` directory instead. See -<> for more information. [[setting-variables]] -==== Set the path variable +==== Set the paths variable The examples here assume that the logs you're harvesting are in the location -expected for your OS and that the default behavior of Filebeat is appropriate -for your environment. Each module provides variables that you can set to fine -tune the behavior of Filebeat, including the location where it looks for log -files. For example, the following command sets the path for the Nginx access -logs: +expected for your OS and that the default behavior of {beatname_uc} is appropriate +for your environment. -[source,shell] ----- -./filebeat -e --modules nginx -M "nginx.access.var.paths=[/var/log/nginx/access.log*]" ----- +include::./include/set-paths.asciidoc[] See <> for more information about setting variables and advanced options. -[[visualizing-data]] -==== Visualize the data in Kibana - -After you've confirmed that Filebeat is sending events to Elasticsearch, launch -the Kibana web interface by pointing your browser to port 5601. For example, -http://127.0.0.1:5601[http://127.0.0.1:5601]. - -Open the dashboard and explore the visualizations for your parsed logs. - -TIP: If you don't see data in Kibana, try changing the date range to a larger -range. By default, Kibana shows the last 15 minutes. - -Here's an example of the syslog dashboard: - -image:./images/kibana-system.png[Syslog dashboard] +:has_module_steps!: +:modulename!: diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/apache2.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/apache2.asciidoc index 2fd7b1e8..2e568861 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/apache2.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/apache2.asciidoc @@ -56,7 +56,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "apache2.access.var.paths=[/path/to/apache2/access.log*]" -M "apache2.error.var.paths=[/path/to/log/apache2/error.log*]" +-M "apache2.access.var.paths=[/path/to/apache2/access.log*]" -M "apache2.error.var.paths=[/path/to/log/apache2/error.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/auditd.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/auditd.asciidoc index 582eebc6..3baced82 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/auditd.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/auditd.asciidoc @@ -50,7 +50,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "auditd.log.var.paths=[/path/to/log/audit/audit.log*]" +-M "auditd.log.var.paths=[/path/to/log/audit/audit.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/icinga.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/icinga.asciidoc index 83ad1817..9cecf4cf 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/icinga.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/icinga.asciidoc @@ -54,7 +54,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "icinga.main.var.paths=[/path/to/log/icinga2/icinga2.log*]" -M "icinga.debug.var.paths=[/path/to/log/icinga2/debug.log*]" -M "icinga.startup.var.paths=[/path/to/log/icinga2/startup.log]" +-M "icinga.main.var.paths=[/path/to/log/icinga2/icinga2.log*]" -M "icinga.debug.var.paths=[/path/to/log/icinga2/debug.log*]" -M "icinga.startup.var.paths=[/path/to/log/icinga2/startup.log]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/iis.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/iis.asciidoc index b17940de..c5f96012 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/iis.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/iis.asciidoc @@ -51,7 +51,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "iis.access.var.paths=[C:/inetpub/logs/LogFiles/*/*.log]" -M "iis.error.var.paths=[C:/Windows/System32/LogFiles/HTTPERR/*.log]" +-M "iis.access.var.paths=[C:/inetpub/logs/LogFiles/*/*.log]" -M "iis.error.var.paths=[C:/Windows/System32/LogFiles/HTTPERR/*.log]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/kafka.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/kafka.asciidoc index a6b903d4..7890e259 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/kafka.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/kafka.asciidoc @@ -15,7 +15,7 @@ include::../include/what-happens.asciidoc[] [float] === Compatibility -The +{modulename}+ module was tested with logs from versions 2.11. +The +{modulename}+ module was tested with logs from versions 0.9 and 1.11. include::../include/running-modules.asciidoc[] @@ -49,7 +49,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "kafka.log.var.paths=[/path/to/logs/controller.log*, /path/to/logs/server.log*, /path/to/logs/state-change.log*, /path/to/logs/kafka-*.log*]" +-M "kafka.log.var.paths=[/path/to/logs/controller.log*, /path/to/logs/server.log*, /path/to/logs/state-change.log*, /path/to/logs/kafka-*.log*]" ----- @@ -63,6 +63,8 @@ include::../include/config-option-intro.asciidoc[] include::../include/var-paths.asciidoc[] +include::../include/var-convert-timezone.asciidoc[] + [float] === Fields diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/kibana.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/kibana.asciidoc index d0a1b74a..881c4b40 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/kibana.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/kibana.asciidoc @@ -23,16 +23,18 @@ include::../include/running-modules.asciidoc[] include::../include/configuring-intro.asciidoc[] -//set the fileset name used in the included example +//set the fileset name used in the included file :fileset_ex: log include::../include/config-option-intro.asciidoc[] [float] -==== `{fileset}` log fileset settings +==== `log` fileset settings include::../include/var-paths.asciidoc[] +:fileset_ex!: + [float] === Fields diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/logstash.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/logstash.asciidoc index 0d681844..69c0d03c 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/logstash.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/logstash.asciidoc @@ -62,7 +62,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "logstash.log.var.paths=[/path/to/log/logstash/logstash-server.log*]" -M "logstash.slowlog.var.paths=[/path/to/log/logstash/logstash-slowlog.log*]" +-M "logstash.log.var.paths=[/path/to/log/logstash/logstash-server.log*]" -M "logstash.slowlog.var.paths=[/path/to/log/logstash/logstash-slowlog.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/mongodb.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/mongodb.asciidoc index 7d0ef958..938d5e6a 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/mongodb.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/mongodb.asciidoc @@ -46,7 +46,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "mongodb.log.var.paths=[/path/to/log/mongodb/*.log*]" +-M "mongodb.log.var.paths=[/path/to/log/mongodb/*.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/mysql.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/mysql.asciidoc index 10c10182..c17a4829 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/mysql.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/mysql.asciidoc @@ -51,7 +51,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "mysql.error.var.paths=[/path/to/log/mysql/error.log*]" -M "mysql.slowlog.var.paths=[/path/to/log/mysql/mysql-slow.log*]" +-M "mysql.error.var.paths=[/path/to/log/mysql/error.log*]" -M "mysql.slowlog.var.paths=[/path/to/log/mysql/mysql-slow.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/nginx.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/nginx.asciidoc index dc5a0a3a..89ac2ee3 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/nginx.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/nginx.asciidoc @@ -55,7 +55,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "nginx.access.var.paths=[/path/to/log/nginx/access.log*]" -M "nginx.error.var.paths=[/path/to/log/nginx/error.log*]" +-M "nginx.access.var.paths=[/path/to/log/nginx/access.log*]" -M "nginx.error.var.paths=[/path/to/log/nginx/error.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/osquery.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/osquery.asciidoc index 34e2c130..d215b9d3 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/osquery.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/osquery.asciidoc @@ -53,7 +53,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "osquery.result.var.paths=[/path/to/osqueryd.results.log*]" +-M "osquery.result.var.paths=[/path/to/osqueryd.results.log*]" ----- include::../include/config-option-intro.asciidoc[] diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/postgresql.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/postgresql.asciidoc index 80ea3423..6ae53d2b 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/postgresql.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/postgresql.asciidoc @@ -54,7 +54,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "postgresql.log.var.paths=[/path/to/log/postgres/*.log*]" +-M "postgresql.log.var.paths=[/path/to/log/postgres/*.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/redis.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/redis.asciidoc index cd7052dd..c0891967 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/redis.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/redis.asciidoc @@ -68,7 +68,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "redis.log.var.paths=[/path/to/log/redis/redis-server.log*]" -M "redis.slowlog.var.hosts=[localhost:6378]" -M "redis.slowlog.var.password=[YOUR_PASSWORD]" +-M "redis.log.var.paths=[/path/to/log/redis/redis-server.log*]" -M "redis.slowlog.var.hosts=[localhost:6378]" -M "redis.slowlog.var.password=[YOUR_PASSWORD]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/system.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/system.asciidoc index 88f878b5..650b7c02 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/system.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/system.asciidoc @@ -55,7 +55,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "system.syslog.var.paths=[/path/to/log/syslog*]" -M "system.auth.var.paths=[/path/to/log/auth.log*]" +-M "system.syslog.var.paths=[/path/to/log/syslog*]" -M "system.auth.var.paths=[/path/to/log/auth.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/modules/traefik.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/modules/traefik.asciidoc index ad56271a..9660c2d2 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/modules/traefik.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/modules/traefik.asciidoc @@ -47,7 +47,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules traefik -M "traefik.access.var.paths=[/path/to/traefik/access.log*]" +-M "traefik.access.var.paths=[/path/to/traefik/access.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/docs/multiline.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/multiline.asciidoc index 3e0b8231..b498b2a0 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/multiline.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/multiline.asciidoc @@ -64,7 +64,7 @@ the pattern. + NOTE: The `after` setting is equivalent to `previous` in https://www.elastic.co/guide/en/logstash/current/plugins-codecs-multiline.html[Logstash], and `before` is equivalent to `next`. -*`multiline.flush_pattern`*:: Specifies a regular expression, in which the current multiline will be flushed from memory, ending the multline-message. +*`multiline.flush_pattern`*:: Specifies a regular expression, in which the current multiline will be flushed from memory, ending the multiline-message. *`multiline.max_lines`*:: The maximum number of lines that can be combined into one event. If the multiline message contains more than `max_lines`, any additional diff --git a/vendor/github.com/elastic/beats/filebeat/docs/running-on-kubernetes.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/running-on-kubernetes.asciidoc index a5f46106..9a1204cf 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/running-on-kubernetes.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/running-on-kubernetes.asciidoc @@ -32,6 +32,13 @@ To get the manifests just run: curl -L -O https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/kubernetes/filebeat-kubernetes.yaml ------------------------------------------------ +[WARNING] +======================================= +If you are using Kubernetes 1.7 or earlier: {beatname_uc} uses a hostPath volume to persist internal data, it's located +under /var/lib/{beatname_lc}-data. The manifest uses folder autocreation (`DirectoryOrCreate`), which was introduced in +Kubernetes 1.8. You will need to remove `type: DirectoryOrCreate` from the manifest and create the host folder yourself. +======================================= + [float] ==== Settings diff --git a/vendor/github.com/elastic/beats/filebeat/docs/setting-up-running.asciidoc b/vendor/github.com/elastic/beats/filebeat/docs/setting-up-running.asciidoc index 8225809b..f76b2d13 100644 --- a/vendor/github.com/elastic/beats/filebeat/docs/setting-up-running.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/docs/setting-up-running.asciidoc @@ -4,7 +4,7 @@ // that is unique to each beat. ///// -[[seting-up-and-running]] +[[setting-up-and-running]] == Setting up and running {beatname_uc} Before reading this section, see the @@ -23,7 +23,7 @@ This section includes additional information on how to set up and run * <> -//MAINTAINERS: If you add a new file to this section, make sure you update the bulletedl ist ^^ too. +//MAINTAINERS: If you add a new file to this section, make sure you update the bulleted list ^^ too. include::../../libbeat/docs/shared-directory-layout.asciidoc[] @@ -34,3 +34,5 @@ include::../../libbeat/docs/command-reference.asciidoc[] include::./running-on-docker.asciidoc[] include::./running-on-kubernetes.asciidoc[] + +include::../../libbeat/docs/shared-shutdown.asciidoc[] diff --git a/vendor/github.com/elastic/beats/filebeat/filebeat.reference.yml b/vendor/github.com/elastic/beats/filebeat/filebeat.reference.yml index 6ef0073f..c580a755 100644 --- a/vendor/github.com/elastic/beats/filebeat/filebeat.reference.yml +++ b/vendor/github.com/elastic/beats/filebeat/filebeat.reference.yml @@ -92,6 +92,30 @@ filebeat.modules: # Filebeat will choose the paths depending on your OS. #var.paths: + gc: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + audit: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + slowlog: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + deprecation: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + #------------------------------- Icinga Module ------------------------------- #- module: icinga # Main logs @@ -170,6 +194,8 @@ filebeat.modules: # Filebeat will choose the paths depending on your OS. #var.paths: + # Convert the timestamp to UTC. Requires Elasticsearch >= 6.1. + #var.convert_timezone: false #------------------------------- kibana Module ------------------------------- - module: kibana @@ -438,7 +464,7 @@ filebeat.inputs: ### Multiline options - # Mutiline can be used for log messages spanning multiple lines. This is common + # Multiline can be used for log messages spanning multiple lines. This is common # for Java Stack Traces or C-Line Continuation # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [ @@ -470,7 +496,7 @@ filebeat.inputs: # overwrites the pipeline option from the Elasticsearch output. #pipeline: - # If symlinks is enabled, symlinks are opened and harvested. The harvester is openening the + # If symlinks is enabled, symlinks are opened and harvested. The harvester is opening the # original for harvesting but will report the symlink name as source. #symlinks: false @@ -971,6 +997,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 0 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" @@ -1011,7 +1040,18 @@ output.elasticsearch: # The default is 50. #bulk_max_size: 50 - # Configure http request timeout before failing an request to Elasticsearch. + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + + # Configure http request timeout before failing a request to Elasticsearch. #timeout: 90 # Use SSL settings for HTTPS. @@ -1065,6 +1105,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 3 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional maximum time to live for a connection to Logstash, after which the # connection will be re-established. A value of `0s` (the default) will # disable this feature. @@ -1075,7 +1118,7 @@ output.elasticsearch: # Optional load balance the events between the Logstash hosts. Default is false. #loadbalance: false - # Number of batches to be sent asynchronously to logstash while processing + # Number of batches to be sent asynchronously to Logstash while processing # new batches. #pipelining: 2 @@ -1084,6 +1127,17 @@ output.elasticsearch: # if no error is encountered. #slow_start: false + # The number of seconds to wait before trying to reconnect to Logstash + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Logstash after a network error. The default is 60s. + #backoff.max: 60s + # Optional index name. The default index name is set to filebeat # in all lowercase. #index: 'filebeat' @@ -1130,6 +1184,21 @@ output.elasticsearch: # never, once, and freely. Default is never. #ssl.renegotiation: never + # The number of times to retry publishing an event after a publishing failure. + # After the specified number of retries, the events are typically dropped. + # Some Beats, such as Filebeat and Winlogbeat, ignore the max_retries setting + # and retry until all events are published. Set max_retries to a value less + # than 0 to retry until all events are published. The default is 3. + #max_retries: 3 + + # The maximum number of events to bulk in a single Logstash request. The + # default is 2048. + #bulk_max_size: 2048 + + # The number of seconds to wait for responses from the Logstash server before + # timing out. The default is 30s. + #timeout: 30s + #------------------------------- Kafka output ---------------------------------- #output.kafka: # Boolean flag to enable or disable the output module. @@ -1165,9 +1234,16 @@ output.elasticsearch: #username: '' #password: '' - # Kafka version filebeat is assumed to run against. Defaults to the oldest - # supported stable version (currently version 0.8.2.0) - #version: 0.8.2 + # Kafka version filebeat is assumed to run against. Defaults to the "1.0.0". + #version: '1.0.0' + + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true # Metadata update configuration. Metadata do contain leader information # deciding which broker to use when publishing. @@ -1215,6 +1291,10 @@ output.elasticsearch: # default is gzip. #compression: gzip + # Set the compression level. Currently only gzip provides a compression level + # between 0 and 9. The default value is chosen by the compression algorithm. + #compression_level: 4 + # The maximum permitted size of JSON-encoded messages. Bigger messages will be # dropped. The default value is 1000000 (bytes). This value should be equal to # or less than the broker's message.max.bytes. @@ -1271,6 +1351,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # The list of Redis servers to connect to. If load balancing is enabled, the # events are distributed to the servers in the list. If one server becomes # unreachable, the events are distributed to the reachable servers only. @@ -1318,6 +1406,17 @@ output.elasticsearch: # until all events are published. The default is 3. #max_retries: 3 + # The number of seconds to wait before trying to reconnect to Redis + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Redis after a network error. The default is 60s. + #backoff.max: 60s + # The maximum number of events to bulk in a single Redis request or pipeline. # The default is 2048. #bulk_max_size: 2048 @@ -1372,6 +1471,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # Path to the directory where to save the generated files. The option is # mandatory. #path: "/tmp/filebeat" @@ -1399,8 +1506,13 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true - # Pretty print json event - #pretty: false + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true #================================= Paths ====================================== @@ -1498,6 +1610,13 @@ output.elasticsearch: # Path to fields.yml file to generate the template #setup.template.fields: "${path.config}/fields.yml" +# A list of fields to be added to the template and Kibana index pattern. Also +# specify setup.template.overwrite: true to overwrite the existing template. +# This setting is experimental. +#setup.template.append_fields: +#- name: field_name +# type: field_type + # Enable json template loading. If this is enabled, the fields.yml is ignored. #setup.template.json.enabled: false @@ -1684,6 +1803,17 @@ logging.files: # The default is 50. #bulk_max_size: 50 + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + # Configure http request timeout before failing an request to Elasticsearch. #timeout: 90 @@ -1723,6 +1853,9 @@ logging.files: # never, once, and freely. Default is never. #ssl.renegotiation: never + #metrics.period: 10s + #state.period: 1m + #================================ HTTP Endpoint ====================================== # Each beat can expose internal metrics through a HTTP endpoint. For security # reasons the endpoint is disabled by default. This feature is currently experimental. diff --git a/vendor/github.com/elastic/beats/filebeat/filebeat.yml b/vendor/github.com/elastic/beats/filebeat/filebeat.yml index 354d0ba1..5ae43216 100644 --- a/vendor/github.com/elastic/beats/filebeat/filebeat.yml +++ b/vendor/github.com/elastic/beats/filebeat/filebeat.yml @@ -48,7 +48,7 @@ filebeat.inputs: ### Multiline options - # Mutiline can be used for log messages spanning multiple lines. This is common + # Multiline can be used for log messages spanning multiple lines. This is common # for Java Stack Traces or C-Line Continuation # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [ diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/config.go b/vendor/github.com/elastic/beats/filebeat/fileset/config.go index ac6d46e5..b3a94cf5 100644 --- a/vendor/github.com/elastic/beats/filebeat/fileset/config.go +++ b/vendor/github.com/elastic/beats/filebeat/fileset/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileset import ( diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/config_test.go b/vendor/github.com/elastic/beats/filebeat/fileset/config_test.go deleted file mode 100644 index f96a345c..00000000 --- a/vendor/github.com/elastic/beats/filebeat/fileset/config_test.go +++ /dev/null @@ -1,62 +0,0 @@ -package fileset - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestProspectorDeprecation(t *testing.T) { - cfg := map[string]interface{}{ - "enabled": true, - "prospector": map[string]interface{}{ - "close_eof": true, - }, - } - - c, err := common.NewConfigFrom(cfg) - assert.NoError(t, err) - - f, err := NewFilesetConfig(c) - if assert.NoError(t, err) { - assert.Equal(t, f.Input["close_eof"], true) - } -} - -func TestInputSettings(t *testing.T) { - cfg := map[string]interface{}{ - "enabled": true, - "input": map[string]interface{}{ - "close_eof": true, - }, - } - - c, err := common.NewConfigFrom(cfg) - assert.NoError(t, err) - - f, err := NewFilesetConfig(c) - if assert.NoError(t, err) { - assert.Equal(t, f.Input["close_eof"], true) - assert.Nil(t, f.Prospector) - } -} - -func TestProspectorDeprecationWhenInputIsAlsoDefined(t *testing.T) { - cfg := map[string]interface{}{ - "enabled": true, - "input": map[string]interface{}{ - "close_eof": true, - }, - "prospector": map[string]interface{}{ - "close_eof": true, - }, - } - - c, err := common.NewConfigFrom(cfg) - assert.NoError(t, err) - - _, err = NewFilesetConfig(c) - assert.Error(t, err, "error prospector and input are defined in the fileset, use only input") -} diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/factory.go b/vendor/github.com/elastic/beats/filebeat/fileset/factory.go index a006482d..c0be44d6 100644 --- a/vendor/github.com/elastic/beats/filebeat/fileset/factory.go +++ b/vendor/github.com/elastic/beats/filebeat/fileset/factory.go @@ -1,7 +1,24 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileset import ( - "github.com/mitchellh/hashstructure" + uuid "github.com/satori/go.uuid" "github.com/elastic/beats/filebeat/channel" input "github.com/elastic/beats/filebeat/prospector" @@ -10,9 +27,20 @@ import ( "github.com/elastic/beats/libbeat/cfgfile" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/monitoring" "github.com/elastic/beats/libbeat/outputs/elasticsearch" + + "github.com/mitchellh/hashstructure" ) +var ( + moduleList = monitoring.NewUniqueList() +) + +func init() { + monitoring.NewFunc(monitoring.GetNamespace("state").GetRegistry(), "module", moduleList.Report, monitoring.Report) +} + // Factory for modules type Factory struct { outlet channel.Factory @@ -20,6 +48,7 @@ type Factory struct { beatVersion string pipelineLoaderFactory PipelineLoaderFactory overwritePipelines bool + pipelineCallbackID uuid.UUID beatDone chan struct{} } @@ -29,6 +58,7 @@ type inputsRunner struct { moduleRegistry *ModuleRegistry inputs []*input.Runner pipelineLoaderFactory PipelineLoaderFactory + pipelineCallbackID uuid.UUID overwritePipelines bool } @@ -41,6 +71,7 @@ func NewFactory(outlet channel.Factory, registrar *registrar.Registrar, beatVers beatVersion: beatVersion, beatDone: beatDone, pipelineLoaderFactory: pipelineLoaderFactory, + pipelineCallbackID: uuid.Nil, overwritePipelines: overwritePipelines, } } @@ -81,14 +112,26 @@ func (f *Factory) Create(p beat.Pipeline, c *common.Config, meta *common.MapStrP moduleRegistry: m, inputs: inputs, pipelineLoaderFactory: f.pipelineLoaderFactory, + pipelineCallbackID: f.pipelineCallbackID, overwritePipelines: f.overwritePipelines, }, nil } +// CheckConfig checks if a config is valid or not +func (f *Factory) CheckConfig(config *common.Config) error { + // TODO: add code here once we know that spinning up a filebeat input to check for errors doesn't cause memory leaks. + return nil +} + func (p *inputsRunner) Start() { // Load pipelines if p.pipelineLoaderFactory != nil { - // Load pipelines instantly and then setup a callback for reconnections: + // Attempt to load pipelines instantly when starting or after reload. + // Thus, if ES was not available previously, it could be loaded this time. + // If the function below fails, it means that ES is not available + // at the moment, so the pipeline loader cannot be created. + // Registering a callback regardless of the availability of ES + // makes it possible to try to load pipeline when ES becomes reachable. pipelineLoader, err := p.pipelineLoaderFactory() if err != nil { logp.Err("Error loading pipeline: %s", err) @@ -100,21 +143,35 @@ func (p *inputsRunner) Start() { } } - // Callback: + // Register callback to try to load pipelines when connecting to ES. callback := func(esClient *elasticsearch.Client) error { return p.moduleRegistry.LoadPipelines(esClient, p.overwritePipelines) } - elasticsearch.RegisterConnectCallback(callback) + p.pipelineCallbackID = elasticsearch.RegisterConnectCallback(callback) } for _, input := range p.inputs { input.Start() } + + // Loop through and add modules, only 1 normally + for m := range p.moduleRegistry.registry { + moduleList.Add(m) + } } func (p *inputsRunner) Stop() { + if p.pipelineCallbackID != uuid.Nil { + elasticsearch.DeregisterConnectCallback(p.pipelineCallbackID) + } + for _, input := range p.inputs { input.Stop() } + + // Loop through and remove modules, only 1 normally + for m := range p.moduleRegistry.registry { + moduleList.Remove(m) + } } func (p *inputsRunner) String() string { diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/fileset.go b/vendor/github.com/elastic/beats/filebeat/fileset/fileset.go index 8992b29a..49c2b2a5 100644 --- a/vendor/github.com/elastic/beats/filebeat/fileset/fileset.go +++ b/vendor/github.com/elastic/beats/filebeat/fileset/fileset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileset contains the code that loads Filebeat modules (which are composed of filesets). diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/fileset_test.go b/vendor/github.com/elastic/beats/filebeat/fileset/fileset_test.go deleted file mode 100644 index 55355218..00000000 --- a/vendor/github.com/elastic/beats/filebeat/fileset/fileset_test.go +++ /dev/null @@ -1,243 +0,0 @@ -// +build !integration - -package fileset - -import ( - "encoding/json" - "fmt" - "path/filepath" - "runtime" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/logp" -) - -func getModuleForTesting(t *testing.T, module, fileset string) *Fileset { - modulesPath, err := filepath.Abs("../module") - assert.NoError(t, err) - fs, err := New(modulesPath, fileset, &ModuleConfig{Module: module}, &FilesetConfig{}) - assert.NoError(t, err) - - return fs -} - -func TestLoadManifestNginx(t *testing.T) { - fs := getModuleForTesting(t, "nginx", "access") - - manifest, err := fs.readManifest() - assert.NoError(t, err) - assert.Equal(t, manifest.ModuleVersion, "1.0") - assert.Equal(t, manifest.IngestPipeline, "ingest/default.json") - assert.Equal(t, manifest.Input, "config/nginx-access.yml") - - vars := manifest.Vars - assert.Equal(t, "paths", vars[0]["name"]) - path := (vars[0]["default"]).([]interface{})[0].(string) - assert.Equal(t, path, "/var/log/nginx/access.log*") -} - -func TestGetBuiltinVars(t *testing.T) { - fs := getModuleForTesting(t, "nginx", "access") - - vars, err := fs.getBuiltinVars() - assert.NoError(t, err) - - assert.IsType(t, vars["hostname"], "a-mac-with-esc-key") - assert.IsType(t, vars["domain"], "local") -} - -func TestEvaluateVarsNginx(t *testing.T) { - fs := getModuleForTesting(t, "nginx", "access") - - var err error - fs.manifest, err = fs.readManifest() - assert.NoError(t, err) - - vars, err := fs.evaluateVars() - assert.NoError(t, err) - - builtin := vars["builtin"].(map[string]interface{}) - assert.IsType(t, "a-mac-with-esc-key", builtin["hostname"]) - assert.IsType(t, "local", builtin["domain"]) - - assert.IsType(t, []interface{}{"/usr/local/var/log/nginx/access.log*"}, vars["paths"]) -} - -func TestEvaluateVarsNginxOverride(t *testing.T) { - modulesPath, err := filepath.Abs("../module") - assert.NoError(t, err) - fs, err := New(modulesPath, "access", &ModuleConfig{Module: "nginx"}, &FilesetConfig{ - Var: map[string]interface{}{ - "pipeline": "no_plugins", - }, - }) - assert.NoError(t, err) - - fs.manifest, err = fs.readManifest() - assert.NoError(t, err) - - vars, err := fs.evaluateVars() - assert.NoError(t, err) - - assert.Equal(t, "no_plugins", vars["pipeline"]) -} - -func TestEvaluateVarsMySQL(t *testing.T) { - fs := getModuleForTesting(t, "mysql", "slowlog") - - var err error - fs.manifest, err = fs.readManifest() - assert.NoError(t, err) - - vars, err := fs.evaluateVars() - assert.NoError(t, err) - - builtin := vars["builtin"].(map[string]interface{}) - assert.IsType(t, "a-mac-with-esc-key", builtin["hostname"]) - assert.IsType(t, "local", builtin["domain"]) - - expectedPaths := []interface{}{ - "/var/log/mysql/mysql-slow.log*", - fmt.Sprintf("/var/lib/mysql/%s-slow.log", builtin["hostname"]), - } - if runtime.GOOS == "darwin" { - expectedPaths = []interface{}{ - fmt.Sprintf("/usr/local/var/mysql/%s-slow.log*", builtin["hostname"]), - } - } - if runtime.GOOS == "windows" { - expectedPaths = []interface{}{ - "c:/programdata/MySQL/MySQL Server*/mysql-slow.log*", - } - } - - assert.Equal(t, expectedPaths, vars["paths"]) -} - -func TestResolveVariable(t *testing.T) { - tests := []struct { - Value interface{} - Vars map[string]interface{} - Expected interface{} - }{ - { - Value: "test-{{.value}}", - Vars: map[string]interface{}{ - "value": 2, - }, - Expected: "test-2", - }, - { - Value: []interface{}{"test-{{.value}}", "test1-{{.value}}"}, - Vars: map[string]interface{}{ - "value": 2, - }, - Expected: []interface{}{"test-2", "test1-2"}, - }, - } - - for _, test := range tests { - result, err := resolveVariable(test.Vars, test.Value) - assert.NoError(t, err) - assert.Equal(t, test.Expected, result) - } -} - -func TestGetInputConfigNginx(t *testing.T) { - fs := getModuleForTesting(t, "nginx", "access") - assert.NoError(t, fs.Read("5.2.0")) - - cfg, err := fs.getInputConfig() - assert.NoError(t, err) - - assert.True(t, cfg.HasField("paths")) - assert.True(t, cfg.HasField("exclude_files")) - assert.True(t, cfg.HasField("pipeline")) - pipelineID, err := cfg.String("pipeline", -1) - assert.NoError(t, err) - assert.Equal(t, "filebeat-5.2.0-nginx-access-default", pipelineID) -} - -func TestGetInputConfigNginxOverrides(t *testing.T) { - modulesPath, err := filepath.Abs("../module") - assert.NoError(t, err) - fs, err := New(modulesPath, "access", &ModuleConfig{Module: "nginx"}, &FilesetConfig{ - Input: map[string]interface{}{ - "close_eof": true, - }, - }) - assert.NoError(t, err) - - assert.NoError(t, fs.Read("5.2.0")) - - cfg, err := fs.getInputConfig() - assert.NoError(t, err) - - assert.True(t, cfg.HasField("paths")) - assert.True(t, cfg.HasField("exclude_files")) - assert.True(t, cfg.HasField("close_eof")) - assert.True(t, cfg.HasField("pipeline")) - pipelineID, err := cfg.String("pipeline", -1) - assert.NoError(t, err) - assert.Equal(t, "filebeat-5.2.0-nginx-access-default", pipelineID) - - moduleName, err := cfg.String("_module_name", -1) - assert.NoError(t, err) - assert.Equal(t, "nginx", moduleName) - - filesetName, err := cfg.String("_fileset_name", -1) - assert.NoError(t, err) - assert.Equal(t, "access", filesetName) -} - -func TestGetPipelineNginx(t *testing.T) { - fs := getModuleForTesting(t, "nginx", "access") - assert.NoError(t, fs.Read("5.2.0")) - - pipelineID, content, err := fs.GetPipeline("5.2.0") - assert.NoError(t, err) - assert.Equal(t, "filebeat-5.2.0-nginx-access-default", pipelineID) - assert.Contains(t, content, "description") - assert.Contains(t, content, "processors") -} - -func TestGetPipelineConvertTS(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("fileset", "modules")) - - // load system/syslog - modulesPath, err := filepath.Abs("../module") - assert.NoError(t, err) - fs, err := New(modulesPath, "syslog", &ModuleConfig{Module: "system"}, &FilesetConfig{ - Var: map[string]interface{}{ - "convert_timezone": true, - }, - }) - assert.NoError(t, err) - assert.NoError(t, fs.Read("6.1.0")) - - // ES 6.0.0 should not have beat.timezone referenced - pipelineID, content, err := fs.GetPipeline("6.0.0") - assert.NoError(t, err) - assert.Equal(t, "filebeat-6.1.0-system-syslog-pipeline", pipelineID) - marshaled, err := json.Marshal(content) - assert.NoError(t, err) - assert.NotContains(t, string(marshaled), "beat.timezone") - - // ES 6.1.0 should have beat.timezone referenced - pipelineID, content, err = fs.GetPipeline("6.1.0") - assert.NoError(t, err) - assert.Equal(t, "filebeat-6.1.0-system-syslog-pipeline", pipelineID) - marshaled, err = json.Marshal(content) - assert.NoError(t, err) - assert.Contains(t, string(marshaled), "beat.timezone") - - // ES 6.2.0 should have beat.timezone referenced - pipelineID, content, err = fs.GetPipeline("6.2.0") - assert.NoError(t, err) - assert.Equal(t, "filebeat-6.1.0-system-syslog-pipeline", pipelineID) - marshaled, err = json.Marshal(content) - assert.NoError(t, err) - assert.Contains(t, string(marshaled), "beat.timezone") -} diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/flags.go b/vendor/github.com/elastic/beats/filebeat/fileset/flags.go index 9258d4c6..61f12632 100644 --- a/vendor/github.com/elastic/beats/filebeat/fileset/flags.go +++ b/vendor/github.com/elastic/beats/filebeat/fileset/flags.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileset import ( diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/modules.go b/vendor/github.com/elastic/beats/filebeat/fileset/modules.go index ecb97bc2..ea656223 100644 --- a/vendor/github.com/elastic/beats/filebeat/fileset/modules.go +++ b/vendor/github.com/elastic/beats/filebeat/fileset/modules.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileset import ( diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/modules_integration_test.go b/vendor/github.com/elastic/beats/filebeat/fileset/modules_integration_test.go deleted file mode 100644 index 2efa21ea..00000000 --- a/vendor/github.com/elastic/beats/filebeat/fileset/modules_integration_test.go +++ /dev/null @@ -1,135 +0,0 @@ -// +build integration - -package fileset - -import ( - "encoding/json" - "path/filepath" - "strconv" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/outputs/elasticsearch" - "github.com/elastic/beats/libbeat/outputs/elasticsearch/estest" -) - -func TestLoadPipeline(t *testing.T) { - client := estest.GetTestingElasticsearch(t) - if !hasIngest(client) { - t.Skip("Skip tests because ingest is missing in this elasticsearch version: ", client.GetVersion()) - } - - client.Request("DELETE", "/_ingest/pipeline/my-pipeline-id", "", nil, nil) - - content := map[string]interface{}{ - "description": "describe pipeline", - "processors": []map[string]interface{}{ - { - "set": map[string]interface{}{ - "field": "foo", - "value": "bar", - }, - }, - }, - } - - err := loadPipeline(client, "my-pipeline-id", content, false) - assert.NoError(t, err) - - status, _, err := client.Request("GET", "/_ingest/pipeline/my-pipeline-id", "", nil, nil) - assert.NoError(t, err) - assert.Equal(t, 200, status) - - // loading again shouldn't actually update the pipeline - content["description"] = "describe pipeline 2" - err = loadPipeline(client, "my-pipeline-id", content, false) - assert.NoError(t, err) - checkUploadedPipeline(t, client, "describe pipeline") - - // loading again updates the pipeline - err = loadPipeline(client, "my-pipeline-id", content, true) - assert.NoError(t, err) - checkUploadedPipeline(t, client, "describe pipeline 2") -} - -func checkUploadedPipeline(t *testing.T, client *elasticsearch.Client, expectedDescription string) { - status, response, err := client.Request("GET", "/_ingest/pipeline/my-pipeline-id", "", nil, nil) - assert.NoError(t, err) - assert.Equal(t, 200, status) - - var res map[string]interface{} - err = json.Unmarshal(response, &res) - if assert.NoError(t, err) { - assert.Equal(t, expectedDescription, res["my-pipeline-id"].(map[string]interface{})["description"], string(response)) - } -} - -func TestSetupNginx(t *testing.T) { - client := estest.GetTestingElasticsearch(t) - if !hasIngest(client) { - t.Skip("Skip tests because ingest is missing in this elasticsearch version: ", client.GetVersion()) - } - - client.Request("DELETE", "/_ingest/pipeline/filebeat-5.2.0-nginx-access-default", "", nil, nil) - client.Request("DELETE", "/_ingest/pipeline/filebeat-5.2.0-nginx-error-pipeline", "", nil, nil) - - modulesPath, err := filepath.Abs("../module") - assert.NoError(t, err) - - configs := []*ModuleConfig{ - &ModuleConfig{Module: "nginx"}, - } - - reg, err := newModuleRegistry(modulesPath, configs, nil, "5.2.0") - if err != nil { - t.Fatal(err) - } - - err = reg.LoadPipelines(client, false) - if err != nil { - t.Fatal(err) - } - - status, _, _ := client.Request("GET", "/_ingest/pipeline/filebeat-5.2.0-nginx-access-default", "", nil, nil) - assert.Equal(t, 200, status) - status, _, _ = client.Request("GET", "/_ingest/pipeline/filebeat-5.2.0-nginx-error-pipeline", "", nil, nil) - assert.Equal(t, 200, status) -} - -func TestAvailableProcessors(t *testing.T) { - client := estest.GetTestingElasticsearch(t) - if !hasIngest(client) { - t.Skip("Skip tests because ingest is missing in this elasticsearch version: ", client.GetVersion()) - } - // these exists on our integration test setup - requiredProcessors := []ProcessorRequirement{ - {Name: "user_agent", Plugin: "ingest-user-agent"}, - {Name: "geoip", Plugin: "ingest-geoip"}, - } - - err := checkAvailableProcessors(client, requiredProcessors) - assert.NoError(t, err) - - // these don't exists on our integration test setup - requiredProcessors = []ProcessorRequirement{ - {Name: "test", Plugin: "ingest-test"}, - {Name: "hello", Plugin: "ingest-hello"}, - } - - err = checkAvailableProcessors(client, requiredProcessors) - assert.NotNil(t, err) - assert.Contains(t, err.Error(), "ingest-test") - assert.Contains(t, err.Error(), "ingest-hello") -} - -func hasIngest(client *elasticsearch.Client) bool { - v := client.GetVersion() - majorVersion := string(v[0]) - version, err := strconv.Atoi(majorVersion) - if err != nil { - return true - } - - return version >= 5 -} diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/modules_test.go b/vendor/github.com/elastic/beats/filebeat/fileset/modules_test.go deleted file mode 100644 index 7be00906..00000000 --- a/vendor/github.com/elastic/beats/filebeat/fileset/modules_test.go +++ /dev/null @@ -1,430 +0,0 @@ -// +build !integration - -package fileset - -import ( - "errors" - "fmt" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/paths" -) - -func load(t *testing.T, from interface{}) *common.Config { - config, err := common.NewConfigFrom(from) - if err != nil { - t.Fatalf("Config err: %v", err) - } - return config -} - -func TestNewModuleRegistry(t *testing.T) { - modulesPath, err := filepath.Abs("../module") - assert.NoError(t, err) - - configs := []*ModuleConfig{ - &ModuleConfig{Module: "nginx"}, - &ModuleConfig{Module: "mysql"}, - &ModuleConfig{Module: "system"}, - &ModuleConfig{Module: "auditd"}, - } - - reg, err := newModuleRegistry(modulesPath, configs, nil, "5.2.0") - assert.NoError(t, err) - assert.NotNil(t, reg) - - expectedModules := map[string][]string{ - "auditd": {"log"}, - "nginx": {"access", "error"}, - "mysql": {"slowlog", "error"}, - "system": {"syslog", "auth"}, - } - - assert.Equal(t, len(expectedModules), len(reg.registry)) - for name, filesets := range reg.registry { - expectedFilesets, exists := expectedModules[name] - assert.True(t, exists) - - assert.Equal(t, len(expectedFilesets), len(filesets)) - for _, fileset := range expectedFilesets { - fs := filesets[fileset] - assert.NotNil(t, fs) - } - } - - for module, filesets := range reg.registry { - for name, fileset := range filesets { - cfg, err := fileset.getInputConfig() - assert.NoError(t, err, fmt.Sprintf("module: %s, fileset: %s", module, name)) - - moduleName, err := cfg.String("_module_name", -1) - assert.NoError(t, err) - assert.Equal(t, module, moduleName) - - filesetName, err := cfg.String("_fileset_name", -1) - assert.NoError(t, err) - assert.Equal(t, name, filesetName) - } - } -} - -func TestNewModuleRegistryConfig(t *testing.T) { - modulesPath, err := filepath.Abs("../module") - assert.NoError(t, err) - - falseVar := false - - configs := []*ModuleConfig{ - &ModuleConfig{ - Module: "nginx", - Filesets: map[string]*FilesetConfig{ - "access": { - Var: map[string]interface{}{ - "paths": []interface{}{"/hello/test"}, - }, - }, - "error": { - Enabled: &falseVar, - }, - }, - }, - &ModuleConfig{ - Module: "mysql", - Enabled: &falseVar, - }, - } - - reg, err := newModuleRegistry(modulesPath, configs, nil, "5.2.0") - assert.NoError(t, err) - assert.NotNil(t, reg) - - nginxAccess := reg.registry["nginx"]["access"] - assert.NotNil(t, nginxAccess) - assert.Equal(t, []interface{}{"/hello/test"}, nginxAccess.vars["paths"]) - - assert.NotContains(t, reg.registry["nginx"], "error") -} - -func TestApplyOverrides(t *testing.T) { - falseVar := false - trueVar := true - - tests := []struct { - name string - fcfg FilesetConfig - module, fileset string - overrides *ModuleOverrides - expected FilesetConfig - }{ - { - name: "var overrides", - fcfg: FilesetConfig{ - Var: map[string]interface{}{ - "a": "test", - "b.c": "test", - }, - }, - module: "nginx", - fileset: "access", - overrides: &ModuleOverrides{ - "nginx": map[string]*common.Config{ - "access": load(t, map[string]interface{}{ - "var.a": "test1", - "var.b.c": "test2"}), - }, - }, - expected: FilesetConfig{ - Var: map[string]interface{}{ - "a": "test1", - "b": map[string]interface{}{"c": "test2"}, - }, - }, - }, - { - name: "enable and var overrides", - fcfg: FilesetConfig{ - Enabled: &falseVar, - Var: map[string]interface{}{ - "paths": []string{"/var/log/nginx"}, - }, - }, - module: "nginx", - fileset: "access", - overrides: &ModuleOverrides{ - "nginx": map[string]*common.Config{ - "access": load(t, map[string]interface{}{ - "enabled": true, - "var.paths": []interface{}{"/var/local/nginx/log"}}), - }, - }, - expected: FilesetConfig{ - Enabled: &trueVar, - Var: map[string]interface{}{ - "paths": []interface{}{"/var/local/nginx/log"}, - }, - }, - }, - { - name: "prospector overrides", - fcfg: FilesetConfig{}, - module: "nginx", - fileset: "access", - overrides: &ModuleOverrides{ - "nginx": map[string]*common.Config{ - "access": load(t, map[string]interface{}{ - "prospector.close_eof": true, - }), - }, - }, - expected: FilesetConfig{ - Input: map[string]interface{}{ - "close_eof": true, - }, - Prospector: map[string]interface{}{ - "close_eof": true, - }, - }, - }, - { - name: "input overrides", - fcfg: FilesetConfig{}, - module: "nginx", - fileset: "access", - overrides: &ModuleOverrides{ - "nginx": map[string]*common.Config{ - "access": load(t, map[string]interface{}{ - "input.close_eof": true, - }), - }, - }, - expected: FilesetConfig{ - Input: map[string]interface{}{ - "close_eof": true, - }, - }, - }, - } - - for _, test := range tests { - result, err := applyOverrides(&test.fcfg, test.module, test.fileset, test.overrides) - assert.NoError(t, err) - assert.Equal(t, &test.expected, result, test.name) - } -} - -func TestAppendWithoutDuplicates(t *testing.T) { - falseVar := false - tests := []struct { - name string - configs []*ModuleConfig - modules []string - expected []*ModuleConfig - }{ - { - name: "just modules", - configs: []*ModuleConfig{}, - modules: []string{"moduleA", "moduleB", "moduleC"}, - expected: []*ModuleConfig{ - &ModuleConfig{Module: "moduleA"}, - &ModuleConfig{Module: "moduleB"}, - &ModuleConfig{Module: "moduleC"}, - }, - }, - { - name: "eliminate a duplicate, no override", - configs: []*ModuleConfig{ - &ModuleConfig{ - Module: "moduleB", - Filesets: map[string]*FilesetConfig{ - "fileset": { - Var: map[string]interface{}{ - "paths": "test", - }, - }, - }, - }, - }, - modules: []string{"moduleA", "moduleB", "moduleC"}, - expected: []*ModuleConfig{ - &ModuleConfig{ - Module: "moduleB", - Filesets: map[string]*FilesetConfig{ - "fileset": { - Var: map[string]interface{}{ - "paths": "test", - }, - }, - }, - }, - &ModuleConfig{Module: "moduleA"}, - &ModuleConfig{Module: "moduleC"}, - }, - }, - { - name: "disabled config", - configs: []*ModuleConfig{ - &ModuleConfig{ - Module: "moduleB", - Enabled: &falseVar, - Filesets: map[string]*FilesetConfig{ - "fileset": { - Var: map[string]interface{}{ - "paths": "test", - }, - }, - }, - }, - }, - modules: []string{"moduleA", "moduleB", "moduleC"}, - expected: []*ModuleConfig{ - &ModuleConfig{ - Module: "moduleB", - Enabled: &falseVar, - Filesets: map[string]*FilesetConfig{ - "fileset": { - Var: map[string]interface{}{ - "paths": "test", - }, - }, - }, - }, - &ModuleConfig{Module: "moduleA"}, - &ModuleConfig{Module: "moduleB"}, - &ModuleConfig{Module: "moduleC"}, - }, - }, - } - - for _, test := range tests { - result, err := appendWithoutDuplicates(test.configs, test.modules) - assert.NoError(t, err, test.name) - assert.Equal(t, test.expected, result, test.name) - } -} - -func TestMcfgFromConfig(t *testing.T) { - falseVar := false - tests := []struct { - name string - config *common.Config - expected ModuleConfig - }{ - { - name: "disable fileset", - config: load(t, map[string]interface{}{ - "module": "nginx", - "error.enabled": false, - }), - expected: ModuleConfig{ - Module: "nginx", - Filesets: map[string]*FilesetConfig{ - "error": { - Enabled: &falseVar, - }, - }, - }, - }, - { - name: "set variable", - config: load(t, map[string]interface{}{ - "module": "nginx", - "access.var.test": false, - }), - expected: ModuleConfig{ - Module: "nginx", - Filesets: map[string]*FilesetConfig{ - "access": { - Var: map[string]interface{}{ - "test": false, - }, - }, - }, - }, - }, - } - - for _, test := range tests { - result, err := mcfgFromConfig(test.config) - assert.NoError(t, err, test.name) - assert.Equal(t, test.expected.Module, result.Module) - assert.Equal(t, len(test.expected.Filesets), len(result.Filesets)) - for name, fileset := range test.expected.Filesets { - assert.Equal(t, fileset, result.Filesets[name]) - } - } -} - -func TestMissingModuleFolder(t *testing.T) { - home := paths.Paths.Home - paths.Paths.Home = "/no/such/path" - defer func() { paths.Paths.Home = home }() - - configs := []*common.Config{ - load(t, map[string]interface{}{"module": "nginx"}), - } - - reg, err := NewModuleRegistry(configs, "5.2.0", true) - assert.NoError(t, err) - assert.NotNil(t, reg) - - // this should return an empty list, but no error - inputs, err := reg.GetInputConfigs() - assert.NoError(t, err) - assert.Equal(t, 0, len(inputs)) -} - -func TestInterpretError(t *testing.T) { - tests := []struct { - Test string - Input string - Output string - }{ - { - Test: "geoip not installed", - Input: `{"error":{"root_cause":[{"type":"parse_exception","reason":"No processor type exists with name [geoip]","header":{"processor_type":"geoip"}}],"type":"parse_exception","reason":"No processor type exists with name [geoip]","header":{"processor_type":"geoip"}},"status":400}`, - Output: "This module requires the ingest-geoip plugin to be installed in Elasticsearch. You can install it using the following command in the Elasticsearch home directory:\n sudo bin/elasticsearch-plugin install ingest-geoip", - }, - { - Test: "user-agent not installed", - Input: `{"error":{"root_cause":[{"type":"parse_exception","reason":"No processor type exists with name [user_agent]","header":{"processor_type":"user_agent"}}],"type":"parse_exception","reason":"No processor type exists with name [user_agent]","header":{"processor_type":"user_agent"}},"status":400}`, - Output: "This module requires the ingest-user-agent plugin to be installed in Elasticsearch. You can install it using the following command in the Elasticsearch home directory:\n sudo bin/elasticsearch-plugin install ingest-user-agent", - }, - { - Test: "other plugin not installed", - Input: `{"error":{"root_cause":[{"type":"parse_exception","reason":"No processor type exists with name [hello_test]","header":{"processor_type":"hello_test"}}],"type":"parse_exception","reason":"No processor type exists with name [hello_test]","header":{"processor_type":"hello_test"}},"status":400}`, - Output: "This module requires an Elasticsearch plugin that provides the hello_test processor. " + - "Please visit the Elasticsearch documentation for instructions on how to install this plugin. " + - "Response body: " + `{"error":{"root_cause":[{"type":"parse_exception","reason":"No processor type exists with name [hello_test]","header":{"processor_type":"hello_test"}}],"type":"parse_exception","reason":"No processor type exists with name [hello_test]","header":{"processor_type":"hello_test"}},"status":400}`, - }, - { - Test: "Elasticsearch 2.4", - Input: `{"error":{"root_cause":[{"type":"invalid_index_name_exception","reason":"Invalid index name [_ingest], must not start with '_'","index":"_ingest"}],"type":"invalid_index_name_exception","reason":"Invalid index name [_ingest], must not start with '_'","index":"_ingest"},"status":400}`, - Output: `The Ingest Node functionality seems to be missing from Elasticsearch. The Filebeat modules require Elasticsearch >= 5.0. This is the response I got from Elasticsearch: {"error":{"root_cause":[{"type":"invalid_index_name_exception","reason":"Invalid index name [_ingest], must not start with '_'","index":"_ingest"}],"type":"invalid_index_name_exception","reason":"Invalid index name [_ingest], must not start with '_'","index":"_ingest"},"status":400}`, - }, - { - Test: "Elasticsearch 1.7", - Input: `{"error":"InvalidIndexNameException[[_ingest] Invalid index name [_ingest], must not start with '_']","status":400}`, - Output: `The Filebeat modules require Elasticsearch >= 5.0. This is the response I got from Elasticsearch: {"error":"InvalidIndexNameException[[_ingest] Invalid index name [_ingest], must not start with '_']","status":400}`, - }, - { - Test: "bad json", - Input: `blah`, - Output: `couldn't load pipeline: test. Additionally, error decoding response body: blah`, - }, - { - Test: "another error", - Input: `{"error":{"root_cause":[{"type":"test","reason":""}],"type":"test","reason":""},"status":400}`, - Output: "couldn't load pipeline: test. Response body: " + - `{"error":{"root_cause":[{"type":"test","reason":""}],"type":"test","reason":""},"status":400}`, - }, - } - - for _, test := range tests { - errResult := interpretError(errors.New("test"), []byte(test.Input)) - assert.Equal(t, errResult.Error(), test.Output, test.Test) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/fileset/pipelines.go b/vendor/github.com/elastic/beats/filebeat/fileset/pipelines.go index e56d6824..b67e9fce 100644 --- a/vendor/github.com/elastic/beats/filebeat/fileset/pipelines.go +++ b/vendor/github.com/elastic/beats/filebeat/fileset/pipelines.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileset import ( diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/encoding.go b/vendor/github.com/elastic/beats/filebeat/harvester/encoding/encoding.go deleted file mode 100644 index 52e80483..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/encoding.go +++ /dev/null @@ -1,72 +0,0 @@ -package encoding - -import ( - "io" - "strings" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/htmlindex" - "golang.org/x/text/encoding/simplifiedchinese" -) - -type EncodingFactory func(io.Reader) (Encoding, error) - -type Encoding encoding.Encoding - -var encodings = map[string]EncodingFactory{ - // default - "nop": Plain, - "plain": Plain, - - // utf8 (validate input) - shadow htmlindex utf8 codecs not validating input - "unicode-1-1-utf-8": utf8Encoding, - "utf-8": utf8Encoding, - "utf8": utf8Encoding, - - // simplified chinese - "gbk": enc(simplifiedchinese.GBK), // shadow htmlindex using 'GB10830' for GBK - - // 8bit charmap encodings - "iso8859-6e": enc(charmap.ISO8859_6E), - "iso8859-6i": enc(charmap.ISO8859_6I), - "iso8859-8e": enc(charmap.ISO8859_8E), - "iso8859-8i": enc(charmap.ISO8859_8I), - - // utf16 bom codecs (seekable data source required) - "utf-16-bom": utf16BOMRequired, - "utf-16be-bom": utf16BOMBigEndian, - "utf-16le-bom": utf16BOMLittleEndian, -} - -// Plain file encoding not transforming any read bytes. -var Plain = enc(encoding.Nop) - -// UTF-8 encoding copying input to output sequence replacing invalid UTF-8 -// converted to '\uFFFD'. -// -// See: http://encoding.spec.whatwg.org/#replacement -var utf8Encoding = enc(mixed{}) - -// FindEncoding searches for an EncodingFactoryby name. -func FindEncoding(name string) (EncodingFactory, bool) { - if name == "" { - return Plain, true - } - d, ok := encodings[strings.ToLower(name)] - if ok { - return d, ok - } - - codec, err := htmlindex.Get(name) - if err != nil { - return nil, false - } - return enc(codec), true -} - -func enc(e Encoding) EncodingFactory { - return func(io.Reader) (Encoding, error) { - return e, nil - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/mixed.go b/vendor/github.com/elastic/beats/filebeat/harvester/encoding/mixed.go deleted file mode 100644 index 76872a81..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/mixed.go +++ /dev/null @@ -1,17 +0,0 @@ -package encoding - -import "golang.org/x/text/encoding" - -// mixed encoder is a copy of encoding.Replacement -// The difference between the two is that for the Decoder the Encoder is used -// The reasons is that during decoding UTF-8 we want to have the behaviour of the encoding, -// means copying all and replacing invalid UTF-8 chars. -type mixed struct{} - -func (mixed) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: encoding.Replacement.NewEncoder().Transformer} -} - -func (mixed) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: encoding.Replacement.NewEncoder().Transformer} -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/utf16.go b/vendor/github.com/elastic/beats/filebeat/harvester/encoding/utf16.go deleted file mode 100644 index 8a10fa91..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/utf16.go +++ /dev/null @@ -1,106 +0,0 @@ -package encoding - -import ( - "errors" - "io" - "os" - - "golang.org/x/text/encoding/unicode" - "golang.org/x/text/transform" -) - -type endianness int8 - -const ( - unknownEndianess endianness = iota - bigEndian - littleEndian -) - -var ErrUnsupportedSourceTypeBOM = errors.New("source type not support by BOM based encoding") - -// utf16 BOM based encodings. Only seekable data sources are supported for -// the need to check the optional Byte Order Marker being available in data source -// before configuring the actual decoder and encoder. -var ( - // BOM is required, as no fallback is specified - utf16BOMRequired = utf16BOM(unknownEndianess) - - // BOM is optional. Falls back to BigEndian if missing - utf16BOMBigEndian = utf16BOM(bigEndian) - - // BOM is optional. Falls back to LittleEndian if missing - utf16BOMLittleEndian = utf16BOM(littleEndian) -) - -var utf16Map = map[endianness]Encoding{ - bigEndian: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - littleEndian: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), -} - -func utf16BOM(e endianness) EncodingFactory { - return func(in_ io.Reader) (Encoding, error) { - in, ok := in_.(io.ReadSeeker) - if !ok { - return nil, ErrUnsupportedSourceTypeBOM - } - - return utf16Seekable(in, e) - } -} - -func utf16Seekable(in io.ReadSeeker, endianness endianness) (Encoding, error) { - // remember file offset in case we have to back off - offset, err := in.Seek(0, os.SEEK_CUR) - if err != nil { - return nil, err - } - - // goto beginning of file - keepOffset := offset == 0 - if _, err = in.Seek(0, os.SEEK_SET); err != nil { - return nil, err - } - - // read Byte Order Marker (BOM) - var buf [2]byte - n, err := in.Read(buf[:]) - if err != nil { - in.Seek(offset, os.SEEK_SET) - return nil, err - } - if n < 2 { - in.Seek(offset, os.SEEK_SET) - return nil, transform.ErrShortSrc - } - - // determine endianess from BOM - inEndiannes := unknownEndianess - switch { - case buf[0] == 0xfe && buf[1] == 0xff: - inEndiannes = bigEndian - case buf[0] == 0xff && buf[1] == 0xfe: - inEndiannes = littleEndian - } - - // restore offset if BOM is missing or this function was not - // called with read pointer at beginning of file - if !keepOffset || inEndiannes == unknownEndianess { - if _, err = in.Seek(offset, os.SEEK_SET); err != nil { - return nil, err - } - } - - // choose encoding based on BOM - if encoding, ok := utf16Map[inEndiannes]; ok { - return encoding, nil - } - - // fall back to configured endianess - if encoding, ok := utf16Map[endianness]; ok { - return encoding, nil - } - - // no encoding for configured endianess found => fail - return nil, unicode.ErrMissingBOM -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/utf16_test.go b/vendor/github.com/elastic/beats/filebeat/harvester/encoding/utf16_test.go deleted file mode 100644 index 60c06833..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/encoding/utf16_test.go +++ /dev/null @@ -1,86 +0,0 @@ -// +build !integration - -package encoding - -import ( - "bytes" - "io/ioutil" - "testing" - - "github.com/stretchr/testify/assert" - - "golang.org/x/text/encoding/unicode" - "golang.org/x/text/transform" -) - -func TestUtf16BOMEncodings(t *testing.T) { - expectedLE := utf16Map[littleEndian] - expectedBE := utf16Map[bigEndian] - - var tests = []struct { - name string - testEndianess unicode.Endianness - testBOMPolicy unicode.BOMPolicy - expectedEncoding Encoding - expectedError error - expectedOffset int - }{ - {"utf-16-bom", - unicode.BigEndian, unicode.ExpectBOM, expectedBE, nil, 2}, - {"utf-16-bom", - unicode.BigEndian, unicode.IgnoreBOM, nil, unicode.ErrMissingBOM, 0}, - {"utf-16-bom", - unicode.LittleEndian, unicode.ExpectBOM, expectedLE, nil, 2}, - {"utf-16-bom", - unicode.LittleEndian, unicode.IgnoreBOM, nil, unicode.ErrMissingBOM, 0}, - - // big endian based encoding - {"utf-16be-bom", - unicode.BigEndian, unicode.ExpectBOM, expectedBE, nil, 2}, - {"utf-16be-bom", - unicode.BigEndian, unicode.IgnoreBOM, expectedBE, nil, 0}, - {"utf-16be-bom", - unicode.LittleEndian, unicode.ExpectBOM, expectedLE, nil, 2}, - - // little endian baed encoding - {"utf-16le-bom", - unicode.LittleEndian, unicode.ExpectBOM, expectedLE, nil, 2}, - {"utf-16le-bom", - unicode.LittleEndian, unicode.IgnoreBOM, expectedLE, nil, 0}, - {"utf-16le-bom", - unicode.BigEndian, unicode.ExpectBOM, expectedBE, nil, 2}, - } - - text := []byte("hello world") - - for _, test := range tests { - t.Logf("testing: codec=%v, bigendian=%v, bomPolicy=%v", - test.name, test.testEndianess, test.testBOMPolicy) - - buf := bytes.NewBuffer(nil) - writeEncoding := unicode.UTF16(test.testEndianess, test.testBOMPolicy) - writer := transform.NewWriter(buf, writeEncoding.NewEncoder()) - writer.Write(text) - writer.Close() - - rawReader := bytes.NewReader(buf.Bytes()) - contentLen := rawReader.Len() - encodingFactory, ok := FindEncoding(test.name) - if !ok { - t.Errorf("Failed to load encoding: %v", test.name) - continue - } - - encoding, err := encodingFactory(rawReader) - contentOffset := contentLen - rawReader.Len() - - assert.Equal(t, test.expectedEncoding, encoding) - assert.Equal(t, test.expectedError, err) - assert.Equal(t, test.expectedOffset, contentOffset) - if err == nil { - reader := transform.NewReader(rawReader, encoding.NewDecoder()) - content, _ := ioutil.ReadAll(reader) - assert.Equal(t, text, content) - } - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/forwarder.go b/vendor/github.com/elastic/beats/filebeat/harvester/forwarder.go index d89812b0..da485d85 100644 --- a/vendor/github.com/elastic/beats/filebeat/harvester/forwarder.go +++ b/vendor/github.com/elastic/beats/filebeat/harvester/forwarder.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 harvester import ( diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/harvester.go b/vendor/github.com/elastic/beats/filebeat/harvester/harvester.go index 6931b467..7d3aa7a5 100644 --- a/vendor/github.com/elastic/beats/filebeat/harvester/harvester.go +++ b/vendor/github.com/elastic/beats/filebeat/harvester/harvester.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 harvester import ( diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/doc.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/doc.go deleted file mode 100644 index 4a7dfef2..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/doc.go +++ /dev/null @@ -1,13 +0,0 @@ -/* -Package reader provides interface and struct to read messages and report them to a harvester - -The interface used is: - - type Reader interface { - Next() (Message, error) - } - -Each time Next is called on a reader, a Message object is returned. - -*/ -package reader diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/docker_json.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/docker_json.go deleted file mode 100644 index e8878c7c..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/docker_json.go +++ /dev/null @@ -1,132 +0,0 @@ -package reader - -import ( - "bytes" - "encoding/json" - "strings" - "time" - - "github.com/elastic/beats/libbeat/common" - - "github.com/pkg/errors" -) - -// DockerJSON processor renames a given field -type DockerJSON struct { - reader Reader - // stream filter, `all`, `stderr` or `stdout` - stream string - - // join partial lines - partial bool -} - -type dockerLog struct { - Timestamp string `json:"time"` - Log string `json:"log"` - Stream string `json:"stream"` -} - -type crioLog struct { - Timestamp time.Time - Stream string - Log []byte -} - -// NewDockerJSON creates a new reader renaming a field -func NewDockerJSON(r Reader, stream string, partial bool) *DockerJSON { - return &DockerJSON{ - stream: stream, - partial: partial, - reader: r, - } -} - -// parseCRILog parses logs in CRI log format. -// CRI log format example : -// 2017-09-12T22:32:21.212861448Z stdout 2017-09-12 22:32:21.212 [INFO][88] table.go 710: Invalidating dataplane cache -func parseCRILog(message Message, msg *crioLog) (Message, error) { - log := strings.SplitN(string(message.Content), " ", 3) - if len(log) < 3 { - return message, errors.New("invalid CRI log") - } - ts, err := time.Parse(time.RFC3339, log[0]) - if err != nil { - return message, errors.Wrap(err, "parsing CRI timestamp") - } - - msg.Timestamp = ts - msg.Stream = log[1] - msg.Log = []byte(log[2]) - message.AddFields(common.MapStr{ - "stream": msg.Stream, - }) - message.Content = msg.Log - message.Ts = ts - - return message, nil -} - -// parseDockerJSONLog parses logs in Docker JSON log format. -// Docker JSON log format example: -// {"log":"1:M 09 Nov 13:27:36.276 # User requested shutdown...\n","stream":"stdout"} -func parseDockerJSONLog(message Message, msg *dockerLog) (Message, error) { - dec := json.NewDecoder(bytes.NewReader(message.Content)) - if err := dec.Decode(&msg); err != nil { - return message, errors.Wrap(err, "decoding docker JSON") - } - - // Parse timestamp - ts, err := time.Parse(time.RFC3339, msg.Timestamp) - if err != nil { - return message, errors.Wrap(err, "parsing docker timestamp") - } - - message.AddFields(common.MapStr{ - "stream": msg.Stream, - }) - message.Content = []byte(msg.Log) - message.Ts = ts - - return message, nil -} - -// Next returns the next line. -func (p *DockerJSON) Next() (Message, error) { - for { - message, err := p.reader.Next() - if err != nil { - return message, err - } - - var dockerLine dockerLog - var crioLine crioLog - - if strings.HasPrefix(string(message.Content), "{") { - message, err = parseDockerJSONLog(message, &dockerLine) - if err != nil { - return message, err - } - // Handle multiline messages, join lines that don't end with \n - for p.partial && message.Content[len(message.Content)-1] != byte('\n') { - next, err := p.reader.Next() - if err != nil { - return message, err - } - next, err = parseDockerJSONLog(next, &dockerLine) - if err != nil { - return message, err - } - message.Content = append(message.Content, next.Content...) - } - } else { - message, err = parseCRILog(message, &crioLine) - } - - if p.stream != "all" && p.stream != dockerLine.Stream && p.stream != crioLine.Stream { - continue - } - - return message, err - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/docker_json_test.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/docker_json_test.go deleted file mode 100644 index 497ac26f..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/docker_json_test.go +++ /dev/null @@ -1,145 +0,0 @@ -package reader - -import ( - "testing" - "time" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -func TestDockerJSON(t *testing.T) { - tests := []struct { - input [][]byte - stream string - partial bool - expectedError bool - expectedMessage Message - }{ - // Common log message - { - input: [][]byte{[]byte(`{"log":"1:M 09 Nov 13:27:36.276 # User requested shutdown...\n","stream":"stdout","time":"2017-11-09T13:27:36.277747246Z"}`)}, - stream: "all", - expectedMessage: Message{ - Content: []byte("1:M 09 Nov 13:27:36.276 # User requested shutdown...\n"), - Fields: common.MapStr{"stream": "stdout"}, - Ts: time.Date(2017, 11, 9, 13, 27, 36, 277747246, time.UTC), - }, - }, - // Wrong JSON - { - input: [][]byte{[]byte(`this is not JSON`)}, - stream: "all", - expectedError: true, - }, - // Wrong CRI - { - input: [][]byte{[]byte(`2017-09-12T22:32:21.212861448Z stdout`)}, - stream: "all", - expectedError: true, - }, - // Wrong CRI - { - input: [][]byte{[]byte(`{this is not JSON nor CRI`)}, - stream: "all", - expectedError: true, - }, - // Missing time - { - input: [][]byte{[]byte(`{"log":"1:M 09 Nov 13:27:36.276 # User requested shutdown...\n","stream":"stdout"}`)}, - stream: "all", - expectedError: true, - }, - // CRI log - { - input: [][]byte{[]byte(`2017-09-12T22:32:21.212861448Z stdout 2017-09-12 22:32:21.212 [INFO][88] table.go 710: Invalidating dataplane cache`)}, - stream: "all", - expectedMessage: Message{ - Content: []byte("2017-09-12 22:32:21.212 [INFO][88] table.go 710: Invalidating dataplane cache"), - Fields: common.MapStr{"stream": "stdout"}, - Ts: time.Date(2017, 9, 12, 22, 32, 21, 212861448, time.UTC), - }, - }, - // Filtering stream - { - input: [][]byte{ - []byte(`{"log":"filtered\n","stream":"stdout","time":"2017-11-09T13:27:36.277747246Z"}`), - []byte(`{"log":"unfiltered\n","stream":"stderr","time":"2017-11-09T13:27:36.277747246Z"}`), - []byte(`{"log":"unfiltered\n","stream":"stdout","time":"2017-11-09T13:27:36.277747246Z"}`), - }, - stream: "stderr", - expectedMessage: Message{ - Content: []byte("unfiltered\n"), - Fields: common.MapStr{"stream": "stderr"}, - Ts: time.Date(2017, 11, 9, 13, 27, 36, 277747246, time.UTC), - }, - }, - // Filtering stream - { - input: [][]byte{ - []byte(`2017-10-12T13:32:21.232861448Z stdout 2017-10-12 13:32:21.212 [INFO][88] table.go 710: Invalidating dataplane cache`), - []byte(`2017-11-12T23:32:21.212771448Z stderr 2017-11-12 23:32:21.212 [ERROR][77] table.go 111: error`), - []byte(`2017-12-12T10:32:21.212864448Z stdout 2017-12-12 10:32:21.212 [WARN][88] table.go 222: Warn`), - }, - stream: "stderr", - expectedMessage: Message{ - Content: []byte("2017-11-12 23:32:21.212 [ERROR][77] table.go 111: error"), - Fields: common.MapStr{"stream": "stderr"}, - Ts: time.Date(2017, 11, 12, 23, 32, 21, 212771448, time.UTC), - }, - }, - // Split lines - { - input: [][]byte{ - []byte(`{"log":"1:M 09 Nov 13:27:36.276 # User requested ","stream":"stdout","time":"2017-11-09T13:27:36.277747246Z"}`), - []byte(`{"log":"shutdown...\n","stream":"stdout","time":"2017-11-09T13:27:36.277747246Z"}`), - }, - stream: "stdout", - partial: true, - expectedMessage: Message{ - Content: []byte("1:M 09 Nov 13:27:36.276 # User requested shutdown...\n"), - Fields: common.MapStr{"stream": "stdout"}, - Ts: time.Date(2017, 11, 9, 13, 27, 36, 277747246, time.UTC), - }, - }, - // Split lines with partial disabled - { - input: [][]byte{ - []byte(`{"log":"1:M 09 Nov 13:27:36.276 # User requested ","stream":"stdout","time":"2017-11-09T13:27:36.277747246Z"}`), - []byte(`{"log":"shutdown...\n","stream":"stdout","time":"2017-11-09T13:27:36.277747246Z"}`), - }, - stream: "stdout", - partial: false, - expectedMessage: Message{ - Content: []byte("1:M 09 Nov 13:27:36.276 # User requested "), - Fields: common.MapStr{"stream": "stdout"}, - Ts: time.Date(2017, 11, 9, 13, 27, 36, 277747246, time.UTC), - }, - }, - } - - for _, test := range tests { - r := &mockReader{messages: test.input} - json := NewDockerJSON(r, test.stream, test.partial) - message, err := json.Next() - - assert.Equal(t, test.expectedError, err != nil) - - if err == nil { - assert.EqualValues(t, test.expectedMessage, message) - } - } -} - -type mockReader struct { - messages [][]byte -} - -func (m *mockReader) Next() (Message, error) { - message := m.messages[0] - m.messages = m.messages[1:] - return Message{ - Content: message, - }, nil -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/encode.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/encode.go deleted file mode 100644 index 515f7e1b..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/encode.go +++ /dev/null @@ -1,37 +0,0 @@ -package reader - -import ( - "io" - "time" - - "github.com/elastic/beats/filebeat/harvester/encoding" -) - -// Encode reader produces lines by reading lines from an io.Reader -// through a decoder converting the reader it's encoding to utf-8. -type Encode struct { - reader *Line -} - -// NewEncode creates a new Encode reader from input reader by applying -// the given codec. -func NewEncode( - reader io.Reader, - codec encoding.Encoding, - bufferSize int, -) (Encode, error) { - r, err := NewLine(reader, codec, bufferSize) - return Encode{r}, err -} - -// Next reads the next line from it's initial io.Reader -// This converts a io.Reader to a reader.reader -func (p Encode) Next() (Message, error) { - c, sz, err := p.reader.Next() - // Creating message object - return Message{ - Ts: time.Now(), - Content: c, - Bytes: sz, - }, err -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/json.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/json.go deleted file mode 100644 index 756fe4a3..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/json.go +++ /dev/null @@ -1,134 +0,0 @@ -package reader - -import ( - "bytes" - "encoding/json" - "fmt" - "time" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/jsontransform" - "github.com/elastic/beats/libbeat/logp" -) - -type JSON struct { - reader Reader - cfg *JSONConfig -} - -// NewJSONReader creates a new reader that can decode JSON. -func NewJSON(r Reader, cfg *JSONConfig) *JSON { - return &JSON{reader: r, cfg: cfg} -} - -// decodeJSON unmarshals the text parameter into a MapStr and -// returns the new text column if one was requested. -func (r *JSON) decodeJSON(text []byte) ([]byte, common.MapStr) { - var jsonFields map[string]interface{} - - err := unmarshal(text, &jsonFields) - if err != nil || jsonFields == nil { - if !r.cfg.IgnoreDecodingError { - logp.Err("Error decoding JSON: %v", err) - } - if r.cfg.AddErrorKey { - jsonFields = common.MapStr{"error": createJSONError(fmt.Sprintf("Error decoding JSON: %v", err))} - } - return text, jsonFields - } - - if len(r.cfg.MessageKey) == 0 { - return []byte(""), jsonFields - } - - textValue, ok := jsonFields[r.cfg.MessageKey] - if !ok { - if r.cfg.AddErrorKey { - jsonFields["error"] = createJSONError(fmt.Sprintf("Key '%s' not found", r.cfg.MessageKey)) - } - return []byte(""), jsonFields - } - - textString, ok := textValue.(string) - if !ok { - if r.cfg.AddErrorKey { - jsonFields["error"] = createJSONError(fmt.Sprintf("Value of key '%s' is not a string", r.cfg.MessageKey)) - } - return []byte(""), jsonFields - } - - return []byte(textString), jsonFields -} - -// unmarshal is equivalent with json.Unmarshal but it converts numbers -// to int64 where possible, instead of using always float64. -func unmarshal(text []byte, fields *map[string]interface{}) error { - dec := json.NewDecoder(bytes.NewReader(text)) - dec.UseNumber() - err := dec.Decode(fields) - if err != nil { - return err - } - jsontransform.TransformNumbers(*fields) - return nil -} - -// Next decodes JSON and returns the filled Line object. -func (r *JSON) Next() (Message, error) { - message, err := r.reader.Next() - if err != nil { - return message, err - } - - var fields common.MapStr - message.Content, fields = r.decodeJSON(message.Content) - message.AddFields(common.MapStr{"json": fields}) - return message, nil -} - -func createJSONError(message string) common.MapStr { - return common.MapStr{"message": message, "type": "json"} -} - -// MergeJSONFields writes the JSON fields in the event map, -// respecting the KeysUnderRoot and OverwriteKeys configuration options. -// If MessageKey is defined, the Text value from the event always -// takes precedence. -func MergeJSONFields(data common.MapStr, jsonFields common.MapStr, text *string, config JSONConfig) time.Time { - // The message key might have been modified by multiline - if len(config.MessageKey) > 0 && text != nil { - jsonFields[config.MessageKey] = *text - } - - // handle the case in which r.cfg.AddErrorKey is set and len(jsonFields) == 1 - // and only thing it contains is `error` key due to error in json decoding - // which results in loss of message key in the main beat event - if len(jsonFields) == 1 && jsonFields["error"] != nil { - data["message"] = *text - } - - if config.KeysUnderRoot { - // Delete existing json key - delete(data, "json") - - var ts time.Time - if v, ok := data["@timestamp"]; ok { - switch t := v.(type) { - case time.Time: - ts = t - case common.Time: - ts = time.Time(ts) - } - delete(data, "@timestamp") - } - event := &beat.Event{ - Timestamp: ts, - Fields: data, - } - jsontransform.WriteJSONKeys(event, jsonFields, config.OverwriteKeys) - - return event.Timestamp - } - return time.Time{} -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/json_config.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/json_config.go deleted file mode 100644 index 41e0911d..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/json_config.go +++ /dev/null @@ -1,13 +0,0 @@ -package reader - -type JSONConfig struct { - MessageKey string `config:"message_key"` - KeysUnderRoot bool `config:"keys_under_root"` - OverwriteKeys bool `config:"overwrite_keys"` - AddErrorKey bool `config:"add_error_key"` - IgnoreDecodingError bool `config:"ignore_decoding_error"` -} - -func (c *JSONConfig) Validate() error { - return nil -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/json_test.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/json_test.go deleted file mode 100644 index 09ed3b64..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/json_test.go +++ /dev/null @@ -1,325 +0,0 @@ -package reader - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestUnmarshal(t *testing.T) { - tests := []struct { - Name string - Input string - Output map[string]interface{} - }{ - { - Name: "Top level int, float, string, bool", - Input: `{"a": 3, "b": 2.0, "c": "hello", "d": true}`, - Output: map[string]interface{}{ - "a": int64(3), - "b": float64(2), - "c": "hello", - "d": true, - }, - }, - { - Name: "Nested objects with ints", - Input: `{"a": 3, "b": {"c": {"d": 5}}}`, - Output: map[string]interface{}{ - "a": int64(3), - "b": map[string]interface{}{ - "c": map[string]interface{}{ - "d": int64(5), - }, - }, - }, - }, - { - Name: "Array of floats", - Input: `{"a": 3, "b": {"c": [4.0, 4.1, 4.2]}}`, - Output: map[string]interface{}{ - "a": int64(3), - "b": map[string]interface{}{ - "c": []interface{}{ - float64(4.0), float64(4.1), float64(4.2), - }, - }, - }, - }, - { - Name: "Array of mixed ints and floats", - Input: `{"a": 3, "b": {"c": [4, 4.1, 4.2]}}`, - Output: map[string]interface{}{ - "a": int64(3), - "b": map[string]interface{}{ - "c": []interface{}{ - int64(4), float64(4.1), float64(4.2), - }, - }, - }, - }, - { - Name: "Negative values", - Input: `{"a": -3, "b": -1.0}`, - Output: map[string]interface{}{ - "a": int64(-3), - "b": float64(-1), - }, - }, - } - - for _, test := range tests { - t.Run(test.Name, func(t *testing.T) { - var output map[string]interface{} - err := unmarshal([]byte(test.Input), &output) - assert.NoError(t, err) - assert.Equal(t, test.Output, output) - }) - - } -} - -func TestDecodeJSON(t *testing.T) { - var tests = []struct { - Text string - Config JSONConfig - ExpectedText string - ExpectedMap common.MapStr - }{ - { - Text: `{"message": "test", "value": 1}`, - Config: JSONConfig{MessageKey: "message"}, - ExpectedText: "test", - ExpectedMap: common.MapStr{"message": "test", "value": int64(1)}, - }, - { - Text: `{"message": "test", "value": 1}`, - Config: JSONConfig{MessageKey: "message1"}, - ExpectedText: "", - ExpectedMap: common.MapStr{"message": "test", "value": int64(1)}, - }, - { - Text: `{"message": "test", "value": 1}`, - Config: JSONConfig{MessageKey: "value"}, - ExpectedText: "", - ExpectedMap: common.MapStr{"message": "test", "value": int64(1)}, - }, - { - Text: `{"message": "test", "value": "1"}`, - Config: JSONConfig{MessageKey: "value"}, - ExpectedText: "1", - ExpectedMap: common.MapStr{"message": "test", "value": "1"}, - }, - { - // in case of JSON decoding errors, the text is passed as is - Text: `{"message": "test", "value": "`, - Config: JSONConfig{MessageKey: "value"}, - ExpectedText: `{"message": "test", "value": "`, - ExpectedMap: nil, - }, - { - // in case the JSON is "null", we should just not panic - Text: `null`, - Config: JSONConfig{MessageKey: "value", AddErrorKey: true}, - ExpectedText: `null`, - ExpectedMap: common.MapStr{"error": common.MapStr{"message": "Error decoding JSON: ", "type": "json"}}, - }, - { - // Add key error helps debugging this - Text: `{"message": "test", "value": "`, - Config: JSONConfig{MessageKey: "value", AddErrorKey: true}, - ExpectedText: `{"message": "test", "value": "`, - ExpectedMap: common.MapStr{"error": common.MapStr{"message": "Error decoding JSON: unexpected EOF", "type": "json"}}, - }, - { - // If the text key is not found, put an error - Text: `{"message": "test", "value": "1"}`, - Config: JSONConfig{MessageKey: "hello", AddErrorKey: true}, - ExpectedText: ``, - ExpectedMap: common.MapStr{"message": "test", "value": "1", "error": common.MapStr{"message": "Key 'hello' not found", "type": "json"}}, - }, - { - // If the text key is found, but not a string, put an error - Text: `{"message": "test", "value": 1}`, - Config: JSONConfig{MessageKey: "value", AddErrorKey: true}, - ExpectedText: ``, - ExpectedMap: common.MapStr{"message": "test", "value": int64(1), "error": common.MapStr{"message": "Value of key 'value' is not a string", "type": "json"}}, - }, - { - // Without a text key, simple return the json and an empty text - Text: `{"message": "test", "value": 1}`, - Config: JSONConfig{AddErrorKey: true}, - ExpectedText: ``, - ExpectedMap: common.MapStr{"message": "test", "value": int64(1)}, - }, - } - - for _, test := range tests { - - var p JSON - p.cfg = &test.Config - text, M := p.decodeJSON([]byte(test.Text)) - assert.Equal(t, test.ExpectedText, string(text)) - assert.Equal(t, test.ExpectedMap, M) - } -} - -func TestAddJSONFields(t *testing.T) { - type io struct { - } - - text := "hello" - - now := time.Now().UTC() - - tests := []struct { - Name string - Data common.MapStr - Text *string - JSONConfig JSONConfig - ExpectedItems common.MapStr - ExpectedTimestamp time.Time - }{ - { - // by default, don't overwrite keys - Name: "default: do not overwrite", - Data: common.MapStr{"type": "test_type", "json": common.MapStr{"type": "test", "text": "hello"}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true}, - ExpectedItems: common.MapStr{ - "type": "test_type", - "text": "hello", - }, - ExpectedTimestamp: time.Time{}, - }, - { - // overwrite keys if asked - Name: "overwrite keys if configured", - Data: common.MapStr{"type": "test_type", "json": common.MapStr{"type": "test", "text": "hello"}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true, OverwriteKeys: true}, - ExpectedItems: common.MapStr{ - "type": "test", - "text": "hello", - }, - ExpectedTimestamp: time.Time{}, - }, - { - // without keys_under_root, put everything in a json key - Name: "use json namespace w/o keys_under_root", - Data: common.MapStr{"type": "test_type", "json": common.MapStr{"type": "test", "text": "hello"}}, - Text: &text, - JSONConfig: JSONConfig{}, - ExpectedItems: common.MapStr{ - "json": common.MapStr{"type": "test", "text": "hello"}, - }, - ExpectedTimestamp: time.Time{}, - }, - { - // when MessageKey is defined, the Text overwrites the value of that key - Name: "write result to message_key field", - Data: common.MapStr{"type": "test_type", "json": common.MapStr{"type": "test", "text": "hi"}}, - Text: &text, - JSONConfig: JSONConfig{MessageKey: "text"}, - ExpectedItems: common.MapStr{ - "json": common.MapStr{"type": "test", "text": "hello"}, - "type": "test_type", - }, - ExpectedTimestamp: time.Time{}, - }, - { - // when @timestamp is in JSON and overwrite_keys is true, parse it - // in a common.Time - Name: "parse @timestamp", - Data: common.MapStr{"@timestamp": now, "type": "test_type", "json": common.MapStr{"type": "test", "@timestamp": "2016-04-05T18:47:18.444Z"}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true, OverwriteKeys: true}, - ExpectedItems: common.MapStr{ - "type": "test", - }, - ExpectedTimestamp: time.Time(common.MustParseTime("2016-04-05T18:47:18.444Z")), - }, - { - // when the parsing on @timestamp fails, leave the existing value and add an error key - // in a common.Time - Name: "fail to parse @timestamp", - Data: common.MapStr{"@timestamp": common.Time(now), "type": "test_type", "json": common.MapStr{"type": "test", "@timestamp": "2016-04-05T18:47:18.44XX4Z"}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true, OverwriteKeys: true}, - ExpectedItems: common.MapStr{ - "type": "test", - "error": common.MapStr{"type": "json", "message": "@timestamp not overwritten (parse error on 2016-04-05T18:47:18.44XX4Z)"}, - }, - ExpectedTimestamp: time.Time{}, - }, - { - // when the @timestamp has the wrong type, leave the existing value and add an error key - // in a common.Time - Name: "wrong @timestamp format", - Data: common.MapStr{"@timestamp": common.Time(now), "type": "test_type", "json": common.MapStr{"type": "test", "@timestamp": 42}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true, OverwriteKeys: true}, - ExpectedItems: common.MapStr{ - "type": "test", - "error": common.MapStr{"type": "json", "message": "@timestamp not overwritten (not string)"}, - }, - ExpectedTimestamp: time.Time{}, - }, - { - // if overwrite_keys is true, but the `type` key in json is not a string, ignore it - Name: "ignore non-string type field", - Data: common.MapStr{"type": "test_type", "json": common.MapStr{"type": 42}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true, OverwriteKeys: true}, - ExpectedItems: common.MapStr{ - "type": "test_type", - "error": common.MapStr{"type": "json", "message": "type not overwritten (not string)"}, - }, - ExpectedTimestamp: time.Time{}, - }, - { - // if overwrite_keys is true, but the `type` key in json is empty, ignore it - Name: "ignore empty type field", - Data: common.MapStr{"type": "test_type", "json": common.MapStr{"type": ""}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true, OverwriteKeys: true}, - ExpectedItems: common.MapStr{ - "type": "test_type", - "error": common.MapStr{"type": "json", "message": "type not overwritten (invalid value [])"}, - }, - ExpectedTimestamp: time.Time{}, - }, - { - // if overwrite_keys is true, but the `type` key in json starts with _, ignore it - Name: "ignore type names starting with underscore", - Data: common.MapStr{"@timestamp": common.Time(now), "type": "test_type", "json": common.MapStr{"type": "_type"}}, - Text: &text, - JSONConfig: JSONConfig{KeysUnderRoot: true, OverwriteKeys: true}, - ExpectedItems: common.MapStr{ - "type": "test_type", - "error": common.MapStr{"type": "json", "message": "type not overwritten (invalid value [_type])"}, - }, - ExpectedTimestamp: time.Time{}, - }, - } - - for _, test := range tests { - t.Run(test.Name, func(t *testing.T) { - var jsonFields common.MapStr - if fields, ok := test.Data["json"]; ok { - jsonFields = fields.(common.MapStr) - } - - ts := MergeJSONFields(test.Data, jsonFields, test.Text, test.JSONConfig) - - t.Log("Executing test:", test) - for k, v := range test.ExpectedItems { - assert.Equal(t, v, test.Data[k]) - } - assert.Equal(t, test.ExpectedTimestamp, ts) - }) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/limit.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/limit.go deleted file mode 100644 index 6cff1f80..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/limit.go +++ /dev/null @@ -1,22 +0,0 @@ -package reader - -// LimitProcessor sets an upper limited on line length. Lines longer -// then the max configured line length will be snapped short. -type Limit struct { - reader Reader - maxBytes int -} - -// NewLimit creates a new reader limiting the line length. -func NewLimit(r Reader, maxBytes int) *Limit { - return &Limit{reader: r, maxBytes: maxBytes} -} - -// Next returns the next line. -func (p *Limit) Next() (Message, error) { - message, err := p.reader.Next() - if len(message.Content) > p.maxBytes { - message.Content = message.Content[:p.maxBytes] - } - return message, err -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/line.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/line.go deleted file mode 100644 index 17140bd8..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/line.go +++ /dev/null @@ -1,177 +0,0 @@ -package reader - -import ( - "io" - - "golang.org/x/text/encoding" - "golang.org/x/text/transform" - - "github.com/elastic/beats/libbeat/common/streambuf" - "github.com/elastic/beats/libbeat/logp" -) - -// lineReader reads lines from underlying reader, decoding the input stream -// using the configured codec. The reader keeps track of bytes consumed -// from raw input stream for every decoded line. -type Line struct { - reader io.Reader - codec encoding.Encoding - bufferSize int - nl []byte - inBuffer *streambuf.Buffer - outBuffer *streambuf.Buffer - inOffset int // input buffer read offset - byteCount int // number of bytes decoded from input buffer into output buffer - decoder transform.Transformer -} - -// NewLine creates a new Line reader object -func NewLine(input io.Reader, codec encoding.Encoding, bufferSize int) (*Line, error) { - encoder := codec.NewEncoder() - - // Create newline char based on encoding - nl, _, err := transform.Bytes(encoder, []byte{'\n'}) - if err != nil { - return nil, err - } - - return &Line{ - reader: input, - codec: codec, - bufferSize: bufferSize, - nl: nl, - decoder: codec.NewDecoder(), - inBuffer: streambuf.New(nil), - outBuffer: streambuf.New(nil), - }, nil -} - -// Next reads the next line until the new line character -func (l *Line) Next() ([]byte, int, error) { - // This loop is need in case advance detects an line ending which turns out - // not to be one when decoded. If that is the case, reading continues. - for { - // read next 'potential' line from input buffer/reader - err := l.advance() - if err != nil { - return nil, 0, err - } - - // Check last decoded byte really being '\n' also unencoded - // if not, continue reading - buf := l.outBuffer.Bytes() - - // This can happen if something goes wrong during decoding - if len(buf) == 0 { - logp.Err("Empty buffer returned by advance") - continue - } - - if buf[len(buf)-1] == '\n' { - break - } else { - logp.Debug("line", "Line ending char found which wasn't one: %s", buf[len(buf)-1]) - } - } - - // output buffer contains complete line ending with '\n'. Extract - // byte slice from buffer and reset output buffer. - bytes, err := l.outBuffer.Collect(l.outBuffer.Len()) - l.outBuffer.Reset() - if err != nil { - // This should never happen as otherwise we have a broken state - panic(err) - } - - // return and reset consumed bytes count - sz := l.byteCount - l.byteCount = 0 - return bytes, sz, nil -} - -// Reads from the buffer until a new line character is detected -// Returns an error otherwise -func (l *Line) advance() error { - // Initial check if buffer has already a newLine character - idx := l.inBuffer.IndexFrom(l.inOffset, l.nl) - - // fill inBuffer until '\n' sequence has been found in input buffer - for idx == -1 { - // increase search offset to reduce iterations on buffer when looping - newOffset := l.inBuffer.Len() - len(l.nl) - if newOffset > l.inOffset { - l.inOffset = newOffset - } - - buf := make([]byte, l.bufferSize) - - // try to read more bytes into buffer - n, err := l.reader.Read(buf) - - // Appends buffer also in case of err - l.inBuffer.Append(buf[:n]) - if err != nil { - return err - } - - // empty read => return buffer error (more bytes required error) - if n == 0 { - return streambuf.ErrNoMoreBytes - } - - // Check if buffer has newLine character - idx = l.inBuffer.IndexFrom(l.inOffset, l.nl) - } - - // found encoded byte sequence for '\n' in buffer - // -> decode input sequence into outBuffer - sz, err := l.decode(idx + len(l.nl)) - if err != nil { - logp.Err("Error decoding line: %s", err) - // In case of error increase size by unencoded length - sz = idx + len(l.nl) - } - - // consume transformed bytes from input buffer - err = l.inBuffer.Advance(sz) - l.inBuffer.Reset() - - // continue scanning input buffer from last position + 1 - l.inOffset = idx + 1 - sz - if l.inOffset < 0 { - // fix inOffset if '\n' has encoding > 8bits + fill line has been decoded - l.inOffset = 0 - } - - return err -} - -func (l *Line) decode(end int) (int, error) { - var err error - buffer := make([]byte, 1024) - inBytes := l.inBuffer.Bytes() - start := 0 - - for start < end { - var nDst, nSrc int - - nDst, nSrc, err = l.decoder.Transform(buffer, inBytes[start:end], false) - if err != nil { - // Check if error is different from destination buffer too short - if err != transform.ErrShortDst { - l.outBuffer.Write(inBytes[0:end]) - start = end - break - } - - // Reset error as decoding continues - err = nil - } - - start += nSrc - l.outBuffer.Write(buffer[:nDst]) - } - - l.byteCount += start - return start, err -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/line_test.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/line_test.go deleted file mode 100644 index d1515a5c..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/line_test.go +++ /dev/null @@ -1,170 +0,0 @@ -// +build !integration - -package reader - -import ( - "bytes" - "math/rand" - "testing" - - "github.com/stretchr/testify/assert" - "golang.org/x/text/transform" - - "github.com/elastic/beats/filebeat/harvester/encoding" -) - -// Sample texts are from http://www.columbia.edu/~kermit/utf8.html -var tests = []struct { - encoding string - strings []string -}{ - {"plain", []string{"I can", "eat glass"}}, - {"latin1", []string{"I kå Glas frässa", "ond des macht mr nix!"}}, - {"utf-16be", []string{"Pot să mănânc sticlă", "și ea nu mă rănește."}}, - {"utf-16le", []string{"काचं शक्नोम्यत्तुम् ।", "नोपहिनस्ति माम् ॥"}}, - {"big5", []string{"我能吞下玻", "璃而不傷身體。"}}, - {"gb18030", []string{"我能吞下玻璃", "而不傷身。體"}}, - {"euc-kr", []string{" 나는 유리를 먹을 수 있어요.", " 그래도 아프지 않아요"}}, - {"euc-jp", []string{"私はガラスを食べられます。", "それは私を傷つけません。"}}, -} - -func TestReaderEncodings(t *testing.T) { - for _, test := range tests { - t.Logf("test codec: %v", test.encoding) - - codecFactory, ok := encoding.FindEncoding(test.encoding) - if !ok { - t.Errorf("can not find encoding '%v'", test.encoding) - continue - } - - buffer := bytes.NewBuffer(nil) - codec, _ := codecFactory(buffer) - - // write with encoding to buffer - writer := transform.NewWriter(buffer, codec.NewEncoder()) - var expectedCount []int - for _, line := range test.strings { - writer.Write([]byte(line)) - writer.Write([]byte{'\n'}) - expectedCount = append(expectedCount, buffer.Len()) - } - - // create line reader - reader, err := NewLine(buffer, codec, 1024) - if err != nil { - t.Errorf("failed to initialize reader: %v", err) - continue - } - - // read decodec lines from buffer - var readLines []string - var byteCounts []int - current := 0 - for { - bytes, sz, err := reader.Next() - if sz > 0 { - readLines = append(readLines, string(bytes[:len(bytes)-1])) - } - - if err != nil { - break - } - - current += sz - byteCounts = append(byteCounts, current) - } - - // validate lines and byte offsets - if len(test.strings) != len(readLines) { - t.Errorf("number of lines mismatch (expected=%v actual=%v)", - len(test.strings), len(readLines)) - continue - } - for i := range test.strings { - expected := test.strings[i] - actual := readLines[i] - assert.Equal(t, expected, actual) - assert.Equal(t, expectedCount[i], byteCounts[i]) - } - } -} - -func TestReadSingleLongLine(t *testing.T) { - testReadLineLengths(t, []int{10 * 1024}) -} - -func TestReadIncreasingLineLengths(t *testing.T) { - lineLengths := []int{200, 400, 800, 1000, 2048, 4069} - testReadLineLengths(t, lineLengths) -} - -func TestReadDecreasingLineLengths(t *testing.T) { - lineLengths := []int{4096, 2048, 1000, 800, 400, 200} - testReadLineLengths(t, lineLengths) -} - -func TestReadRandomLineLengths(t *testing.T) { - minLength := 100 - maxLength := 80000 - numLines := 100 - - lineLengths := make([]int, numLines) - for i := 0; i < numLines; i++ { - lineLengths[i] = rand.Intn(maxLength-minLength) + minLength - } - - testReadLineLengths(t, lineLengths) -} - -func testReadLineLengths(t *testing.T, lineLengths []int) { - // create lines + stream buffer - var lines [][]byte - for _, lineLength := range lineLengths { - inputLine := make([]byte, lineLength+1) - for i := 0; i < lineLength; i++ { - char := rand.Intn('z'-'A') + 'A' - inputLine[i] = byte(char) - } - inputLine[len(inputLine)-1] = '\n' - lines = append(lines, inputLine) - } - - testReadLines(t, lines) -} - -func testReadLines(t *testing.T, inputLines [][]byte) { - var inputStream []byte - for _, line := range inputLines { - inputStream = append(inputStream, line...) - } - - // initialize reader - buffer := bytes.NewBuffer(inputStream) - codec, _ := encoding.Plain(buffer) - reader, err := NewLine(buffer, codec, buffer.Len()) - if err != nil { - t.Fatalf("Error initializing reader: %v", err) - } - - // read lines - var lines [][]byte - for range inputLines { - bytes, _, err := reader.Next() - if err != nil { - t.Fatalf("failed to read all lines from test: %v", err) - } - - lines = append(lines, bytes) - } - - // validate - for i := range inputLines { - assert.Equal(t, len(inputLines[i]), len(lines[i])) - assert.Equal(t, inputLines[i], lines[i]) - } -} - -func testReadLine(t *testing.T, line []byte) { - testReadLines(t, [][]byte{line}) -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/message.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/message.go deleted file mode 100644 index d5dcfc21..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/message.go +++ /dev/null @@ -1,44 +0,0 @@ -package reader - -import ( - "time" - - "github.com/elastic/beats/libbeat/common" -) - -// Message represents a reader event with timestamp, content and actual number -// of bytes read from input before decoding. -type Message struct { - Ts time.Time // timestamp the content was read - Content []byte // actual content read - Bytes int // total number of bytes read to generate the message - Fields common.MapStr // optional fields that can be added by reader -} - -// IsEmpty returns true in case the message is empty -// A message with only newline character is counted as an empty message -func (m *Message) IsEmpty() bool { - // If no Bytes were read, event is empty - // For empty line Bytes is at least 1 because of the newline char - if m.Bytes == 0 { - return true - } - - // Content length can be 0 because of JSON events. Content and Fields must be empty. - if len(m.Content) == 0 && len(m.Fields) == 0 { - return true - } - - return false -} - -func (msg *Message) AddFields(fields common.MapStr) { - if fields == nil { - return - } - - if msg.Fields == nil { - msg.Fields = common.MapStr{} - } - msg.Fields.Update(fields) -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline_config.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline_config.go deleted file mode 100644 index 71da0e92..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline_config.go +++ /dev/null @@ -1,24 +0,0 @@ -package reader - -import ( - "fmt" - "time" - - "github.com/elastic/beats/libbeat/common/match" -) - -type MultilineConfig struct { - Negate bool `config:"negate"` - Match string `config:"match" validate:"required"` - MaxLines *int `config:"max_lines"` - Pattern *match.Matcher `config:"pattern" validate:"required"` - Timeout *time.Duration `config:"timeout" validate:"positive"` - FlushPattern *match.Matcher `config:"flush_pattern"` -} - -func (c *MultilineConfig) Validate() error { - if c.Match != "after" && c.Match != "before" { - return fmt.Errorf("unknown matcher type: %s", c.Match) - } - return nil -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline_test.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline_test.go deleted file mode 100644 index e3d628eb..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline_test.go +++ /dev/null @@ -1,192 +0,0 @@ -// +build !integration - -package reader - -import ( - "bytes" - "errors" - "os" - "strings" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/harvester/encoding" - "github.com/elastic/beats/libbeat/common/match" -) - -type bufferSource struct{ buf *bytes.Buffer } - -func (p bufferSource) Read(b []byte) (int, error) { return p.buf.Read(b) } -func (p bufferSource) Close() error { return nil } -func (p bufferSource) Name() string { return "buffer" } -func (p bufferSource) Stat() (os.FileInfo, error) { return nil, errors.New("unknown") } -func (p bufferSource) Continuable() bool { return false } - -func TestMultilineAfterOK(t *testing.T) { - pattern := match.MustCompile(`^[ \t] +`) // next line is indented by spaces - testMultilineOK(t, - MultilineConfig{ - Pattern: &pattern, - Match: "after", - }, - 2, - "line1\n line1.1\n line1.2\n", - "line2\n line2.1\n line2.2\n", - ) -} - -func TestMultilineBeforeOK(t *testing.T) { - pattern := match.MustCompile(`\\$`) // previous line ends with \ - - testMultilineOK(t, - MultilineConfig{ - Pattern: &pattern, - Match: "before", - }, - 2, - "line1 \\\nline1.1 \\\nline1.2\n", - "line2 \\\nline2.1 \\\nline2.2\n", - ) -} - -func TestMultilineAfterNegateOK(t *testing.T) { - pattern := match.MustCompile(`^-`) // first line starts with '-' at beginning of line - - testMultilineOK(t, - MultilineConfig{ - Pattern: &pattern, - Negate: true, - Match: "after", - }, - 2, - "-line1\n - line1.1\n - line1.2\n", - "-line2\n - line2.1\n - line2.2\n", - ) -} - -func TestMultilineBeforeNegateOK(t *testing.T) { - pattern := match.MustCompile(`;$`) // last line ends with ';' - - testMultilineOK(t, - MultilineConfig{ - Pattern: &pattern, - Negate: true, - Match: "before", - }, - 2, - "line1\nline1.1\nline1.2;\n", - "line2\nline2.1\nline2.2;\n", - ) -} - -func TestMultilineAfterNegateOKFlushPattern(t *testing.T) { - flushMatcher := match.MustCompile(`EventEnd`) - pattern := match.MustCompile(`EventStart`) - - testMultilineOK(t, - MultilineConfig{ - Pattern: &pattern, - Negate: true, - Match: "after", - FlushPattern: &flushMatcher, - }, - 3, - "EventStart\nEventId: 1\nEventEnd\n", - "OtherThingInBetween\n", // this should be a separate event.. - "EventStart\nEventId: 2\nEventEnd\n", - ) -} - -func TestMultilineAfterNegateOKFlushPatternWhereTheFirstLinesDosentMatchTheStartPattern(t *testing.T) { - flushMatcher := match.MustCompile(`EventEnd`) - pattern := match.MustCompile(`EventStart`) - - testMultilineOK(t, - MultilineConfig{ - Pattern: &pattern, - Negate: true, - Match: "after", - FlushPattern: &flushMatcher, - }, - 3, //first two non-matching lines, will be merged to one event - "StartLineThatDosentMatchTheEvent\nOtherThingInBetween\n", - "EventStart\nEventId: 2\nEventEnd\n", - "EventStart\nEventId: 3\nEventEnd\n", - ) -} - -func TestMultilineBeforeNegateOKWithEmptyLine(t *testing.T) { - pattern := match.MustCompile(`;$`) // last line ends with ';' - testMultilineOK(t, - MultilineConfig{ - Pattern: &pattern, - Negate: true, - Match: "before", - }, - 2, - "line1\n\n\nline1.2;\n", - "line2\nline2.1\nline2.2;\n", - ) -} - -func testMultilineOK(t *testing.T, cfg MultilineConfig, events int, expected ...string) { - _, buf := createLineBuffer(expected...) - reader := createMultilineTestReader(t, buf, cfg) - - var messages []Message - for { - message, err := reader.Next() - if err != nil { - break - } - - messages = append(messages, message) - } - - if len(messages) != events { - t.Fatalf("expected %v lines, read only %v line(s)", len(expected), len(messages)) - } - - for i, message := range messages { - var tsZero time.Time - - assert.NotEqual(t, tsZero, message.Ts) - assert.Equal(t, strings.TrimRight(expected[i], "\r\n "), string(message.Content)) - assert.Equal(t, len(expected[i]), int(message.Bytes)) - } -} - -func createMultilineTestReader(t *testing.T, in *bytes.Buffer, cfg MultilineConfig) Reader { - encFactory, ok := encoding.FindEncoding("plain") - if !ok { - t.Fatalf("unable to find 'plain' encoding") - } - - enc, err := encFactory(in) - if err != nil { - t.Fatalf("failed to initialize encoding: %v", err) - } - - var reader Reader - reader, err = NewEncode(in, enc, 4096) - if err != nil { - t.Fatalf("Failed to initialize line reader: %v", err) - } - - reader, err = NewMultiline(NewStripNewline(reader), "\n", 1<<20, &cfg) - if err != nil { - t.Fatalf("failed to initializ reader: %v", err) - } - - return reader -} - -func createLineBuffer(lines ...string) ([]string, *bytes.Buffer) { - buf := bytes.NewBuffer(nil) - for _, line := range lines { - buf.WriteString(line) - } - return lines, buf -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/reader.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/reader.go deleted file mode 100644 index 92bc0682..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/reader.go +++ /dev/null @@ -1,9 +0,0 @@ -package reader - -// Reader is the interface that wraps the basic Next method for -// getting a new message. -// Next returns the message being read or and error. EOF is returned -// if reader will not return any new message on subsequent calls. -type Reader interface { - Next() (Message, error) -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/reader_test.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/reader_test.go deleted file mode 100644 index de9640db..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/reader_test.go +++ /dev/null @@ -1,41 +0,0 @@ -// +build !integration - -package reader - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestIsLine(t *testing.T) { - notLine := []byte("This is not a line") - assert.False(t, isLine(notLine)) - - notLine = []byte("This is not a line\n\r") - assert.False(t, isLine(notLine)) - - notLine = []byte("This is \n not a line") - assert.False(t, isLine(notLine)) - - line := []byte("This is a line \n") - assert.True(t, isLine(line)) - - line = []byte("This is a line\r\n") - assert.True(t, isLine(line)) -} - -func TestLineEndingChars(t *testing.T) { - line := []byte("Not ending line") - assert.Equal(t, 0, lineEndingChars(line)) - - line = []byte("N ending \n") - assert.Equal(t, 1, lineEndingChars(line)) - - line = []byte("RN ending \r\n") - assert.Equal(t, 2, lineEndingChars(line)) - - // This is an invalid option - line = []byte("NR ending \n\r") - assert.Equal(t, 0, lineEndingChars(line)) -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/strip_newline.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/strip_newline.go deleted file mode 100644 index 80286fa9..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/strip_newline.go +++ /dev/null @@ -1,43 +0,0 @@ -package reader - -// StripNewline reader removes the last trailing newline characters from -// read lines. -type StripNewline struct { - reader Reader -} - -// NewStripNewline creates a new line reader stripping the last tailing newline. -func NewStripNewline(r Reader) *StripNewline { - return &StripNewline{r} -} - -// Next returns the next line. -func (p *StripNewline) Next() (Message, error) { - message, err := p.reader.Next() - if err != nil { - return message, err - } - - L := message.Content - message.Content = L[:len(L)-lineEndingChars(L)] - - return message, err -} - -// isLine checks if the given byte array is a line, means has a line ending \n -func isLine(l []byte) bool { - return l != nil && len(l) > 0 && l[len(l)-1] == '\n' -} - -// lineEndingChars returns the number of line ending chars the given by array has -// In case of Unix/Linux files, it is -1, in case of Windows mostly -2 -func lineEndingChars(l []byte) int { - if !isLine(l) { - return 0 - } - - if len(l) > 1 && l[len(l)-2] == '\r' { - return 2 - } - return 1 -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/timeout.go b/vendor/github.com/elastic/beats/filebeat/harvester/reader/timeout.go deleted file mode 100644 index f2b928ab..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/timeout.go +++ /dev/null @@ -1,69 +0,0 @@ -package reader - -import ( - "errors" - "time" -) - -var ( - errTimeout = errors.New("timeout") -) - -// timeoutProcessor will signal some configurable timeout error if no -// new line can be returned in time. -type Timeout struct { - reader Reader - timeout time.Duration - signal error - running bool - ch chan lineMessage -} - -type lineMessage struct { - line Message - err error -} - -// NewTimeout returns a new timeout reader from an input line reader. -func NewTimeout(reader Reader, signal error, t time.Duration) *Timeout { - if signal == nil { - signal = errTimeout - } - - return &Timeout{ - reader: reader, - signal: signal, - timeout: t, - ch: make(chan lineMessage, 1), - } -} - -// Next returns the next line. If no line was returned before timeout, the -// configured timeout error is returned. -// For handline timeouts a goroutine is started for reading lines from -// configured line reader. Only when underlying reader returns an error, the -// goroutine will be finished. -func (p *Timeout) Next() (Message, error) { - if !p.running { - p.running = true - go func() { - for { - message, err := p.reader.Next() - p.ch <- lineMessage{message, err} - if err != nil { - break - } - } - }() - } - - select { - case msg := <-p.ch: - if msg.err != nil { - p.running = false - } - return msg.line, msg.err - case <-time.After(p.timeout): - return Message{}, p.signal - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/registry.go b/vendor/github.com/elastic/beats/filebeat/harvester/registry.go index 52beae81..9a847a37 100644 --- a/vendor/github.com/elastic/beats/filebeat/harvester/registry.go +++ b/vendor/github.com/elastic/beats/filebeat/harvester/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 harvester import ( diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/source.go b/vendor/github.com/elastic/beats/filebeat/harvester/source.go index 64be70e5..6c739cca 100644 --- a/vendor/github.com/elastic/beats/filebeat/harvester/source.go +++ b/vendor/github.com/elastic/beats/filebeat/harvester/source.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 harvester import ( diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/util.go b/vendor/github.com/elastic/beats/filebeat/harvester/util.go index c144f2d3..cd22f7f7 100644 --- a/vendor/github.com/elastic/beats/filebeat/harvester/util.go +++ b/vendor/github.com/elastic/beats/filebeat/harvester/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 harvester import "github.com/elastic/beats/libbeat/common/match" diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/util_test.go b/vendor/github.com/elastic/beats/filebeat/harvester/util_test.go deleted file mode 100644 index 1f9a1dff..00000000 --- a/vendor/github.com/elastic/beats/filebeat/harvester/util_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// +build !integration - -package harvester - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common/match" - "github.com/elastic/beats/libbeat/logp" -) - -// InitMatchers initializes a list of compiled regular expressions. -func InitMatchers(exprs ...string) ([]match.Matcher, error) { - result := []match.Matcher{} - - for _, exp := range exprs { - rexp, err := match.Compile(exp) - if err != nil { - logp.Err("Fail to compile the regexp %s: %s", exp, err) - return nil, err - } - result = append(result, rexp) - } - return result, nil -} - -func TestMatchAnyRegexps(t *testing.T) { - matchers, err := InitMatchers("\\.gz$") - assert.Nil(t, err) - assert.Equal(t, MatchAny(matchers, "/var/log/log.gz"), true) -} - -func TestExcludeLine(t *testing.T) { - regexp, err := InitMatchers("^DBG") - assert.Nil(t, err) - assert.True(t, MatchAny(regexp, "DBG: a debug message")) - assert.False(t, MatchAny(regexp, "ERR: an error message")) -} - -func TestIncludeLine(t *testing.T) { - regexp, err := InitMatchers("^ERR", "^WARN") - - assert.Nil(t, err) - assert.False(t, MatchAny(regexp, "DBG: a debug message")) - assert.True(t, MatchAny(regexp, "ERR: an error message")) - assert.True(t, MatchAny(regexp, "WARNING: a simple warning message")) -} - -func TestInitRegexp(t *testing.T) { - _, err := InitMatchers("(((((") - assert.NotNil(t, err) -} diff --git a/vendor/github.com/elastic/beats/filebeat/include/fields.go b/vendor/github.com/elastic/beats/filebeat/include/fields.go index 48a93354..b8576ce4 100644 --- a/vendor/github.com/elastic/beats/filebeat/include/fields.go +++ b/vendor/github.com/elastic/beats/filebeat/include/fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. package include @@ -7,12 +24,12 @@ import ( ) func init() { - if err := asset.SetFields("filebeat/fields.yml", Asset); err != nil { + if err := asset.SetFields("filebeat", "fields.yml", Asset); err != nil { panic(err) } } // Asset returns asset data func Asset() string { - return "eJzsfdty47i19n0/Bco36flLrZn0JPPv6lSl4tjtjHb6lLansveVBJFLFGIS4ACgbc3T78KJBEmQIiXKnknUV22KXN+H88I6AK/eoHvYvUNrwPIVQpLIFN6hv5q/YhARJ7kkjL5Df36FEEJXjEpMqEARyzJG9XdoQyCNBcIPmKR4nQIiFOE0RfAAVCK5y0HMXyH72rtXWtAbRHEGBniu/qufBjHVv7st6A8Q2yC5Bc0QCaAxoYl+kLIEZSAETkDM0cJ7S39GRClKgFQE1e8RoxuSFBwrOLQhKczUc/UjlugBp4X6EhUCYi2TSPUnZdIXpj9BWyakRbLv3zENVeMxU7/pRyv156qUw3SJu3nN25XmEPdXXMkNC8RBFpxCjNY7DcVyUDA0QWInJGSIUfS4JdG2Iu7VHS8oJTQJsJEkg18YHcDGvXlKNg/ABWF0Pxn7outWujvrxk+AKioQI7klwnTleb3rXvxFFUVInOUXVqjq6+9QjKWrBw4/F4RD/A5JXriHG8YzLGvvwRPOcjX0LoukEBK9/UFu0dvvfv/DDP3+7bvv//juj9/Pv//+7bDa1ZTQo+nIYIehGiAcIsZj9IhFVb5GoSRORD/KJV8TyTHf6XdNbUVYTQW6v+fATUNhGus/JMdU4EhW7WHqqQFsZodaPbL1vyByY838sTS/3MPukfG4n2g5VxUCeDWm1ARlwBoMgHPGawQSzoq8H+S9+sjNgJFBVP0XxzFR7+IUEbphamRHWOj5S+OIuesMdlZ0Ah0bO5mVzx0nCU/Se9hBq6Jm5cxbABGL29JTRpMx0pWQtmglqyW63maDpJtuYpeoKGVFXK1RV+pPlHP2QGJQxZQ4xhKHl62P9le04SwzkspPhWqragrCcbzULyydSPVmBEIw3rmKqVfn+qu5E9sc2BDtGb2fvOWtznCOvjAhiOq4ek0SCHNQAmcoiWCGGEcxSYjEKYsA03knN0KFxDSCJdkzdBb2RbS4dpTUIoIyHG0JbQ7dEML+lanE8Nf1YSj2haXXz8p6lm/nGcSkyPrRPxoRuouNA7dqDkmJ3C29Ja9kUIg3gIV88/toz0TqCUJ6RSTVakeEoUNEtcz1dDk9N5atWlKxv7x5Gt717CeKy98YS1IwI60bnUOyd6n9qt/ZVz470GMW3evxY0f6tfs7INz8hoTEUk2/aQqRWrP1MDe/qTErtozLpVkB3qENToVqNEyjLeMO7005yl/VJ2VX5JIWCq4PXfO4XROAz0l83Jz4EyU/F1AJRCQOzeolXBZaPkYh+v1Ci3PaqSWgFIl1QVKJGO2j4k0GBzK5KjGVrD6sFK8hFS20mi6B+vWJPVwWuiYMTtlpVWeuuuyP5q+AkIVSBryOqla51tRT9U31fG/PtNjj+uXxbfKj3Va0W2Oinm4miEAnxzzaEgmRLPgEZaiJQ69hnszR03/9sPzhDzOEeTZDeR7NUEZy8U2bChPzPMVSqfTHMfl8i5wgyyECKpmYoWJdUFnM0COhMXvsIFHf8RzOwcoJYmxwRtLd0RBGjC0kh3iL5QzFsCaYztCGA6xF3Fdakrco1B71oH8gQqoJbfHlDY5jDkKAaANkODqukA5mi3n8iDlUYDNUiAKn6Q59vLzyObh55L5YA6cgQVSzyd/9ZwHY6vdSDa7rtJVQ5M8l/cti9dHeCahGGo2ahnIWT7A8eDWQs9jMbUGo4tipqYGk5AWnVpHjaLpCVRLbYGoHNmkNKokdVTh0cR0GZKShDOdtJEwpk9r+NRmcJzKMOaXC4uFGNd2lD3YClS2Ia+TaGSZlSTW1fGCJti/ql4Hus/qm7vWU0LpR1y+QYAUvO3+oDEGrWI9RS0Nqnb4yBioGWgHlgOM5ulM7Ck3GlVuY7fxasLSQgHIst0gy/bCyqKp/N4xXO6bVtw+Yf5uy5FtjgZynLFk1Nj9ssxFQ17g8u0lVODejDimdkanZccgZV8qhLqKQmEuBcNP6WLcPtWxDJKGMwxKv2QO8Q98dWPG2V7g9gCak6ts0hrO7m+qsdwHJAWeDusCAWlK91Eg0Vk1FgdDE6+EpS8TMmSF/J2TMCvk7xLj+P3D+uzq9nDORQyQZn3s2hLG1Q2heGP9Gs3Mak2vdzup3USKMb8B0R+NoUITIhkA10N3mYKUgVg0fgQEXoA2rroFuSArahm0WddMy6PX1+y9f319d3r2/focEAFrpj3XRV9/Ua6b65d+7UuqlVh1qWZrO+wu5sJZcg5eAkCgnOeixkWMuwEw8lSG+NlbsiBIzRCQSknGo1jftAeEkIRSnaFV5F1boNYecgwAqnb9L/ViZ+JXk2oT4jakRz1mi67hlc09BgJxnLC7SAW1b1qT5YLCnxOEMc1eVKPazwTBiJ1KWzDc40ja16SZoKxDBk+S4MjAZcxlhnMhdmIr7dTIqTqDr2wanrzYEPID6Yqm1ralmZO1WLDJs5mLtU3FA/Y1ychoOaN6a8dUWZp5zlvDpVqamX9qK7wIvdx8T9AQSe6BafMOdpfuEa5XJcJ1ABx7sesAfSFTblozw292ar62lryZY9aQUHno7ULcOkajJU38erKqIg5pfaqI9F22H3Nq3dd1TfVz3YFdLoP1gXi4nbFOKLEe0MHMdET0zvdrjuxnTSGNZjjkRnjGoWkqULK/LqNk0vE4pDB3zsGZyq/1NJFbLT4TTUiyj6c6XLbasSGOlgekICLfhwDmOtvC22nRcXJonF+Hdhv0VfXSrUt1OYdWQ0MajQkJjfLgO0HmFzdMuiwWOVM21dmk+Tg8W8rdT1m3sVBrH48e7uy/XFkdrtnPv8yYtVFNjMiZhWbOGdQ2TATw115SoLrv4gqyxah5ELgTwZWPXfCSymmy0517Pr6pHmVGwxoJECBdya/qj0f9s1E2QXAZyy5rofczK3eDf3t+NJ62mVKUVqma02B2VxtNpq6uG/NPXD2HYrZT5sm0vngBf47YsyKjWQ0XOqIBlI/oAdUUgjEF2whtRCT7+msW7pdKj5+udBDGUgYvYCX00gB0tsjVwtWJqAaXyBvwBeEVbkeuqtg1wXnof63yPay4nOgyME2MUaqM24lAGQF75a2NB3+jNUmzGuMZRe3xCkzn6rBYWu+FBxFSWeq0l0nz2PsVCkkgA5tEW5WmREGoD9bygRMb1g+5pQs9h3QVuTvBjS2yL+1NVXLMlm6q0VUkxjQPFDC8dfgXEoPSu1s/9/WxANaCQorzdCaVMWNAmVd8Z8y/WroqesTqCkJbdjAGs+mMPKUJPR0rJPoRUjmW0PV3rafGH8AqoBUNolYvw1ZazoIQDut0Qvqw5ww9hewCXZrBrH6Plsw+DceyeezyMYndgB5y8SR2lBFiHin7MGvM3YIsvOthU6SqqrhIst8AhViozxGonatwLdpPgTIJNiaH1yAgftPS05B2yFKl9NKFA5TM2XonZ3ZkiVlDJd0siWEiDnYjYlUFBi9vPAVUW1ewhZv/TySMBtswZaak0I6pIjV4ii9joFSmW+o9uTiYe8MTtZkAawWBNJhGRuxPzUBANFi2DgR9Xjg6xF9xYM4Gzzxg7gZE7yj7gm86GVMSAPURpDtSy3VBqBZ37LCJtUpiWRmWfqEKoteGi5Tuw9dZlKWgG3aMjNjxm9CQJxP0VkpOwceKwrbA17aHFdRhNToomt9oI2QVW8yzV8Q5ua+t8yjmLi8jL/6rVs7M9FjGRsW961A86LI/G4qjtcWq3pvM49PvlKBtuinTAaIwlsjnSG+ioxyxpwjrqVXzEHPOB0OLJ4GurO/qkNtNpWib7cUAxi4oMqBpXSs9Aa4hwIeqtLbewMy/vKM5IpBeRB8x3aL2z4qs0weF2zojxeNlIMxnYffpAPbUxjZe4aA2VPfJvzIRMaNN+r5XDNLbgi2tjz3SGX70r0a49JFlLqJahpYapUnicmiqFx5Lq3Ku1xbWLsdD8Q2Q5jgBtCh1L6ySzqpTqkVUqCbc+BblD0RbTBAR6nZL79nK9hohlajRyxuQ33Q0mxhrn9raXAKG3HdO32LRcVYNVXOdoIRsNhSQBhEO6uSpBo8HWO19YsAgCfi6AtqxFxywl/sB04q3ptMM4GUUHrMjGBBBpVd7o/1gIFhGtHzwSufXdmiHY9nI9REG5bnlrg7JPKZxIyI6yXmsBOrub9lWQem08jPrKRQLRmERYgrCuU/0TK8o4NMkkTpu82vsAHVtk3yIC/QKcvdFb4T8hbOOL2AZ9hzLAVNjkbhMeyIXUQjv63XfjS2dkYp7oFdNNiTbLOcJp2ukvGY/FQRSp9EJEHAZ6LQrjVWQcbTBJCw4d0+nL2ihWRvGZK81D6fWrlsge2/nZVvFcu98aIx1z00XmWYwCPh0DeLbk+PXTZcmxeyXwR4y3Zao979g51d6pIjdCO6MmDBq+Qera+xhH6uHbn769RsSynNFJDRb1qakEKBuCqF0t9lpgoR90VL35sb/OS4kTVHYM6+KorWZX+IstiJY/yqzVCPicoIVubdixUkB04LBtIp07Zmhag8Nea1cjAG8CcqHDAC50rV3M0AVlkkSg/ucts+rPR8wpockFCnhqLiJOdGzXxUvbxSq3L2knM07XyZT4cx/7D+9jOrWmaGeTTtfNLMK5p/2H9TS3kBPhr+KL2+F258Xitsyt6ky0I6Q74XaAhbmFgZ497FVROCDQ1Sh8kwa63lUBefuCXc/xpDXYnwvgu6WJ3TsNvkaw0YEztc3HtCNQMmc8rKgfZpJ0BJTYXlPkrzr++QRh4XeVh3XfaHmx2NWXjjUWxXopJJbF4DDjoeCiWBvBPeiPhH7/dnr8f5pjOdBefDt0dFblsmV2nmJQ6hRIQlFG0pQIiBiNO7qgIBJOMDqVWOtBoDEi5XlmPfOEXbim5+LbvuwyVss8KjP3QRukGkdAhqi+ZJpAxNg9mbiGGrnsBgJpwzHjiEME5AHi/uWlcebqRMz0OUdbwLGd7Ps5/EZTGDRtV8u/KupmNulmfs6BmDoHojjnQJxzIM45EOcciHMOxDkHoknmnAPxK48rOHvOzzkQPo9ADsRkqQ9dNuPxuQ8vbQTT6BObJy34Xuvky5rLLfrEZbfge8v+kmaMs6OgBvvSBlkOWDC6zLcci4lNOJaCko+M/E5fSXEKU6T2o+V56vwBOWNpYGU4a1/lv7P2dda+/s20L3eEON7c+9GDf1d/d0Qe6N+qLL3g4d5WHDo+dPDIHDVD1p1ONljza57rObCC77oP8UztLQ1trFCGbbmoX/zz8uuni/EsNKQ5ti6E+TJJqyeIi70qA5NcRRN90SChia7/rnRiLMKuhPGF/2/8gI3AURR00ttUyylCdzqHjtCe/jZg/QpUC5pm2mnUkkn566sntLe3or5GG0gLoY9GNsoxr3KFFLtuOpsibY7XabjopJ8iTV31NFvTTdZkjak/W5sHHdO1+bE/1ruUiH6zE3Z1B2Ed+qBZ5e+mzlJ7/qcS3rFPldVhnxPgXhWcG4eePgZ0Y4l07hSbyZkGunXXAeq6u6g63l9ILPwEDveoo1O5n/u7lScXTd6xLNEPHtF6NRyTye6KN8ZaNO2a2uH19e6sHaxMHLlPLFWJxkkdM5NNHDFu9tE6ZfgDS/7wL/N6VyTk6Y53YNwuMY/6bIHq9Fx7Qrrs0EvMgRQTNdzC28viNSvsBQ3mwjp39kVFUNXuHnopS5a6HMNH+x6O97CzhyqkBZjsGT3RefvwnsNpRMoej5zl2yLOI+s8sp59ZHWPqvHsvuJHFBdZXvo03a0MbZAy8kDboiY27dUu5tQAfdiB81CO6THezagG4B1a0LyQYoZuSCqBixn6XEj1RPWpKxZD1NGbJWP3S0KXJlQzyHG86ff9E0SF7kA6EtSl3jij4JDAUMeLYtqKeDgZLQ3Wx8o2Z4457gicHd+jb3VYWXXqgUepdtv8fkLL4CJ13Pr15s91ZvUL8HXsu73KzlAJLGh9/7GqccZowuK1pxnbJ8PTcj6qD67/uj81p8JCY9Jz6uqrh3bq858CrtYuBiEWezLE9nXO1iFyocW7tKMtao+7prh+Q9UeRjcF1XcI4RRFWELCOPnFdMZ95K4+f/x4+el6JEXaGtEDFB94knvpEEokpnFKhAQ6ilRI7BAlw9pges1X3izmxuZO/Jx6I/Pj7vYfH4aPSwWlP6mPzMHHtTl4dMxpbQECqGfETh8cUScyPkbiOS3lRsVbTnYY4aUO7DYl/+P8/8/fzmoHZFmNksRzfZCWec8670V5kpf/ZQshcLugO2uRdDja97gDbA5rT0H7txov7Q+YcBO5py8rhFFdORA8PqCgBswciqZTpe21PoqITkLsTgsZD6bTPuwdeW6f0wPtWqHrULmWQ39I2EB1bOp0REw+qJoQ5gKiYDfcpAwfUGPm3C+tVldslA4/U8uN1alnCAuEDYRaGrTzuTdEKGXR/Un44kwfMqeU2jrnR0z8298VATX7rKEKZNDHLrakGi2ZiKPKy9mj0BlEE0299SQbJR1xkAWnldreM3g0GzUpEgpTnkzbYCQiTIcR6loFjyFTUPLkrZES3wOt5rjV7fs75F332ENO/zQeX8+fPWInPRM4YpTaKzgX12Unt+hW36MJoU+evvdJ/T1O39OfHKjvOXh0jL4XIIBe5OIwQ+SYC8OWaoMQ7AKYczyyw11S85UeexrBW2hA6NNJiZqzFKg7NdievxixLGNUTYaERmkRwwytQZDY3qoaPDsceeJnNSjTVia1UqCU3ANa/c+bG8YfMY8hVv9bzdEtAMKpMEcyrso6WYXC004YTty+as07OTIv1imJWgt2nbFuxZWpfH15H2XVhy28qpYwBxduZ7XmgK5reXDygGVbcwgRaSNqYp362q/2AIVzHG8N9nyB3G8u+/p8gdy/TfL0+QK5c/L0OXn6nDx9Tp4+J0+3yJzTd87pO+f0nd9m+o573DIcnSSLurIbvfg9cu8NAe37fw3zZG4ozZA7x7Xjjorp7k37UvrxgEqyIcDR6y+L6w7cKW9Qs15JB9uVa+MMqtP5S68qI+0++OkdiqbLObnWJMyEM247o/Bn86TDLGzNsfCUMy4ry/7Kyln1p7VVaOj4cHZz48pxQ1TbPTfhMtkbXTKQXK2ecuhAnd6g5q931v/WvGGRiL7LgXAUWG+OIHXDOCI04pABlWo7iCWeoQzzex3gqhQYE+JannuI47jlaELmDMCMPUDs357FqC7thf7mYoYu7DsXM/XBhaA4F1smOw6a3jIhl9XomrYlvLnKzefao1w79tH2crvzJ8JF2LbXvE9K60vTXSmoO3u8oORJ+0snmop+qjvHbO/Sfch37CJBaGTjlXMWbefoJ3clW8SyvJDOMbT6i+dLi1haZF3HTOIUaIx5sDDFwa1jYy05WB24DBwzSmKa2nlXoWrvrdG47Xi3TVZ6ynImZMKhHh71xTwcHSNVfXeg46zGBh0e2lgn8ty3W3ZVg/v3qwmSIhn8wugBt1y6L13wgYZ9nkgsX50Kzx9t22QVFIXjjNBRIVEuSL4ltjRLYonX7SM/KsxsZ2KAR0MGJQ8L/rq5vLv8MHXoVxyK4u4LYqn4fP/d/LtRdK5deDbbIDw2ZKHCvX3/4f3VHfp/6Obr54+6DcWfRvH4hz0cHkutArxUTJydrTnEtUsfvqq/O+Zo/Vt/1qUTh148l9eQLWfLgZPlqa62dqupYWX8YF3hRVOnUSmJdXx39PccXdXUxlWGhQS+mqGVSPEDqP9EW5LGK/Rarcxfr2++vfx8gx7VPpcmSP/2zSykm66UIkEopKvhkaZTZbS1iqWTDFVhHoCvmdDlMje1rLRevLK3s3RwPclgbEmdMDj11kWf6kgJrnZh8KBUT7WKmy7wQDDCiIJ8ZPze27AP1SqibEx8waAgrCzDNEag05G6XJZuwZhPdknAj7qqaIKI1KGZSDLHweq/hpfOz4p4fybUpLNHNWv0LFb3MOHdRgr1Hnb1LZmrALUV7W8czKc8B0EHpNr7Z4W56DhMKsJpqijZFc04Irwl7VY/GL7vsBfQHrbfKNHRMZF6IQqoL1SvkNsp9xvuNn25rRKJnj0xAwukrY0lK8Wn/5CfjvsOBga3U3O59mjUnLOE4wOukHb6wcHAk843X1rXchtbmXAnHO0nNP1KOSg967gkCm3OqfIHKoOgCRUSSLKAs8PHFaIZhnCwd9OORGGuwIvUanR7+2PtIv1hrsW+NPMBW2JVMQ3gplp1cRlFkEtjZ7zBJC3NjAv6gFMSX8y9dwIY5h5zjOwl35siNXDzSoJ9xzaMDWewkU4u6bb09AYgrFe65NeUVxURSwlZLtEWC33VeNuF2xtdOaJKG5GcNmCyWbk5FkItmhe6Rk1U7D3sLrpYtRzsrhMGfhhEtTopuJFqU68vtQJnuO0fLTU2zvIc4nbk8cT8VM1WaqxtYqX+shyoufAoyyAmWEK6c6y6SAfO/u2N7RhDWJ8AfFSVCpJQLAve7vCDeJSflyZeS8xEXt9D6170vjiOvrluAKHxV+3bIa1G0bwj6N38mzqsIxzY0R3aMSK4Y797fpCDflSIx7CwgdMxC96/PzSq4mS0uu7hHxUSMxm7/YExg0JjhgTHjKivfQEyYR2piNkJlSSjGpXJn863rlBXbrc4UnFqRLGYf6UhWGsinz7faYdfETPg7SjKQdNxLbZASYuwMKuCElvudPt1Etm64ngg+t3d/3rrUA2RdO33vXXy8UA9KLKHDcaEQyQZ3x1BIhg6XrYTZ+xA9VdinoC0OwPmGR+aBMUjkdE24KX2jvTIQivKsKpqGMa06U5R2DPgFG8chzeIJx1zFvjAYRec8AdVVJU7tQZCExM30dlpWlvnwQpeH/ziulN3mhxQN2IP4jYURD5ArvoObVgae5EaFB51ATtV0i0EzqUdABbDBhepNAJ64IJdXNfAi/Rxh/zsndzXVVQtaSIn6HOdBCojUQDes4Ke6nwNI9qzkL6wUdLyeXaz5BDcExkmB0G3ut4UFsghyM9og7QeB8kxbMi953K4M0/GxTrZj/af1VbhoWOcDEE89CIHAjgqxxwJEGzwiRLbOxWscwr4OQX8nAIeYndOAUfnFPBzCjg9p4CfU8AH0zqngJ9TwM8p4OcU8HMK+DkFvEXqV5wCXq8LvSFb6n4z4XbHOx/TIIgg/IYzKoHG3Tvzw4xA/qhxGHqYh/dcOLpXJLq2u3s4hA0DvLyrxYq3TjO3BSbaoGKOCnz1fwEAAP//R3vGFw==" + return "eJzsfetz2ziy7/f5K1D+ssktRXEek7PjU3XqZP1ItJvXxs7u3ZNNyRAJURiTAAcA7WhO7f9+Cw2AT5AiJcqeuSt/SEUS2f0D0Gg0Gt2NH56gG7I+QQuC1Q8IKapicoL+ZD6FRAaCpopydoL+6weEEDrlTGHKJAp4knAG76ElJXEoEb7FNMaLmCDKEI5jRG4JU0itUyKnPyD72MkPQOgJYjghhvFU/xe+9fLUf1crAi8gvkRqRQAhkoSFlEXwRcwjlBApcUTkFM1KT8FrVOakJFEaoP494GxJo0xgzQ4taUwm+nv9I1boFseZfhNlkoRAkyr9kXFVJgavoBWXynKyz19xYFXBMdG/wVfX+uN1TodDi9txTZud5jhu7rgcG5ZIEJUJRkK0WAMrnhLNhkVIrqUiCeIM3a1osCqAl/pOZIxRFnnQKJqQXznrgcY9uU80t0RIytlmMPZBJ1YgzjD4EWEaCgmRWlFpRHlaFd2j/9ZNkQon6ZElqmX9BIVYuX4Q5JeMChKeICUy9+WSiwSrynPkO05SPfVeZ1EmFXr+Sq3Q8+Nnrybo2fOTFz+e/Phi+uLF8369C5DQnRFkYqehniCCBFyE6A7Lon21RikcyW4ur8WCKoHFGp41vRVgrQpA3lMizEBhFsIHJTCTOFDFeJh+qjE22qHSj3zxMwncXDMf5uaXG7K+4yLsBprrqkwSUcwpraAMsxoCIgQXFQCR4FnazeRcv+Q0YGA4avnFYUj1szhGlC25ntkBlqC/gI+cOmGwWtERdGisMsu/d5gU+a5KX7bAKqBZOtMGg4CHTeoxZ9EQ6ppIk7Sm1SBdHbNe1I2Y2CUqiHkWFmvUqf6IUsFvaUh0MxUOscL+Zeu9/RUtBU8MpfxVqceqUEE4DOfwwNyR1E8GREouWlcx/egU3po6svWJTYINs/dDaXmrIpyiT1xKqgUX1iSJsCCa4ARFAZkgLlBII6pwzAOC2bQVG2VSYRaQOd0wdWb2QTQ7c5D0IoISHKwoq09dH4fNK1POo7yu9+NiH5iX5CzvZ/V8mpCQZkk39/eGBIjYMObWzKExVet5acnLEWTyCcFSPXkWbFCkJUIIVkRarHZUGjhUFstch8iBbsxHNYdif3nyvb/o2Vc0ljecRzExM62duyDRxqX2MzyzqX12ooc8uIH5Y2f6mfvsIW5+Q1JhpdVvHJNAr9kwzc1ves7KFRdqblaAE7TEsdSDhlmw4sLxe5LP8h+qStk1OYeFvOtDmx63awIRUxruphO/MPpLRgqCiIY+rZ6zS3zLxyCOZbkAcs46tQC0IbHIaKwQZ11QSspgSySnOU9Nq4tXjBcklg1uFVsCddsTG7DMoCcMn1xotTAXIvvWfPIQmWljoCSoepVrqJ5CNvX3GyXT8h4ml7uPyVu7rWiOxkiSbhSER8ixCFZUkUBlYoQ2VMihR2QaTdH3P76av3o5QVgkE5SmwQQlNJWPm1C4nKYxVtqk3w3Jx0vkCFkMAWGKywnKFhlT2QTdURbyuxYQ1R3P9hgsHS+PJU5ovN6ZhSFjGylIuMJqgkKyoJhN0FIQspBhV2tp2oBQ+aqD+zsqlVZos09PcBgKIiWRTQYJDnZrpGOzwiK8w4IUzCYokxmO4zV6//q0jMHpkZtsQQQjishCm/yl/J2HbfF7bgZXbdqCKCrrku5lsXhpowKqgEaD1FDKwxGWh1IPpDw0us3LKttVNZU4feIh+jI7azLS/8oUB+M1qqDYZKZ3YKP2oKbY0oV9F9d+jAw1lOC0yQkzxhX4v0ZjVyLp5zmmwVLiG1Rsly62I5hsXr6GrtUwMY8K1fKOR+BfhIcJ2+T1jd3jMWVVp265QZJnIhd+Xxu8XrEOpxawBJu+cAZqBGCACoLDKbrSOwoA49otzXZ+IXmcKYJSrFZIcfiy8Kjqvwsuih3T9dNbLJ7GPHpqPJDTmEfXtc0PXy4lqVpcJb9J0TinUfu0ztAEdIKkXGjjEJooFRZKIlz3Plb9Qw3fEI0YF2SOF/yWnKDjLTveSoXbAwAg3d9mMJzf3XRnVQSUIDjpJQI9eklLqaFovJoaAmVRScJjHsmJc0P+QaqQZ+oPiAv4PxHiD1V4qeAyJYHiYlryIQztHcrSzJxv1IXTuFyrftayiFJpzgaMOJqDBg2ILikpJrrbHFxrFte1MwLDXBJwrLoBuqAxAR+2WdTNyKBHZ+efPp+fvr46PztBkhB0DS9D068fV3um+OX/706ptloL1Dx3nXc3cmY9uYZfRKRCKU0JzI0UC0mM4ikc8ZW5YmeUnCCqkFRckGJ9gxMQQSPKcIyui9OFa/RIkFQQSZhy5136x8LFrylXFOJj0yOlwxLo44bPPSaSqGnCwyzuMbZ5T5oXep+UOD79jqtyLva13mzkWsY8mi5xAD618RS0JYjIdyVw4WAy7jLKBVVrPxT362hQHEEn24ZPV29Ickv0G3OwtsbSyHCsmCXY6GI4U3GMugdl7zAco2lD4+stzDQVPBLjrUz1c2lLvo15vvsYQRJoWGIK5GvHWSATblRG4+sIOuZe0SPilgaVbcmAc7tL87b19FUIa0mKyW2nALXbEJFWnvC6t6sCQbR+qZAuHdG20K28W7U99cvVE+xiCbQvTPPlhC9zkvmMlkbXUdmh6fUe32lMQ40nKRZUlpxBxVKiaZVERmtT/zqleUDMw4KrFZw30VAvPwGOc7KcxesybbniWRxqCwwiIKp9vFIqnQoiU84kmUqFVSbnpTPIhmS29Pfbq6tPyNFBJTrOoM9N+ZfHL7sgkBinkphlfyCGc/OqWYQXRN0RMEp/ybQxgFlY4KMMJTSOqbZJOGscOVcRWdtgHhMWqdVATKfWVDcvu9lZ7a0FD+t60SIA6NOEqBUPh8+tz7bp5v3cJ45THKzI82K3efTafHPk32baX9F7Z45UHVTW/vTtOAtOaMjhvWPowgHMt22uKhzoKdPYnpf5dPBC5X20jRdwtqzDoUfrzPKBLc209HodFqrYrwlXZF5xg7aNYQ+cgDWmWpxmn5D1Uk69nDNJxLzmLtmRs15lIGQDFlatSoz6W2BJA4QztTKKyBj+NtzKC64iz32Q5brjzfnVcNBOA8Ckc3PB22kiHre7Kpy/fH7nZ6vn+rx5UDACf+DbODpAFQk1OmheCztBbaEnQzjnCq4ajlLmr1XfXG+gpou1IrIvAheq5XupBzqWJQsitDIGArnVTsQtEXW97O+2JREiP3au4t1tuBxpP2McGW9gk2stAKkHy9OyUZSxJ7BLDs0cBz5IKkFZNEUftUVhd7qIms7SjzVImtfOYywVDSTBIlihNM4iymyEZikalQv4ol1NgA5rb3BdwQ9tsW3ul6K5Zi8+VmuLlmrTo9lM/9JR7oCQaIO78XO3nPXoBuTbIa3WUluRlmkdavkU7mfe7IqOuToAENCuB38W8tgBirL9gdK0twGVYhWs9jd6QH4bXB6zoA+sfBE+XQnupbCF2PXBy+savg/aLbDUo5y7EM3vfRoMQ3ff82EQui0FcPQhdZAiwltM9F3WmDeEzz5BlLG2VXRfRVitiCChNplJiDiz50p2k+B8wXWKvvXIEO+19DTobbMU6T0wZXoXfH+Dl/NsF6aAZ0yJ9ZxK7rNgRwJ2arig2eVHjymLKo4ws/9pxRERPk85bZg0A7pIz16qstDYFTFW8KEdkwkE3fO4GSa1KMA6koCq9Z5xaBYbUNj+2K/I2MjapsT4shrQNk6LC+urcN5B46wwdAc5KcqO2z490GMjkzujgbabz42UhzKKAPwa48IonCRFAD94TxonV7bf2twV9ZQPtMOuy0zhKCJhd4ek1O8h2W4/bh3LaHbm56ZG5aZW4AJvY1Y516zy23qs7dFnKniYBaXsw0o/OwdoFlIVlv2f8EWL+9O4PcEpqLeMkEUEz+ezrL8/1DFGQ9yh9Zle4446fKMmqKjaxTvomHeUZd8NfzjzQR/0jj6O81RTQVDIgywhTM8rbeygBQlwJqujrVZkbR5eM5zQAFayWyzWaLG25Isk1f7O1oCLcF5LcuopPl1MS7ZrHM5x1pgqG+hfGIVMWf30CCzUOLTMZ2fGqeq8z7A1goNlpHiDKNAAqn6ojNyNDZWRuxzqtNRrszMX4QP4fWAFDghaZhDJ7SjzopX6K2vZUmFPtNQaBSvMIiLRo5jeNNfpBQl4omej4Fw9bh8wOdRDuHG8JJGw9xl/xMbFqgeswDpFM1UbKKQoQdi3QdAtqA3YYl0m5m2CJL9khDVcVrssJeWJ6chb/22LhzQItliRjR8igP2E2YRgKXlAwT64o2pVPlT3sW0u130MlLNGrICX9j6JU0WSnVzoQABqC7CuDtKPDWej33JxaCykAVZE2oN7+IlneRSk4grHdVzNbQBEttmnqES/EsGfwH78PxG20W18iY5RQjCTtrSACU4VUgHRFrk7Ht46QxOLCFZMpxJtjn2A47j10GY4L0FkFqtSgJLjgR7JzBxtcoGWmMaZIC3q9GEdJdfG8Jlqy0Pb9dcNkh0O/IPD5L624BVEEPHVBuZePBNlOIbhwZ1U7p8t3Un37D6xOzdSnr+lDVzl+5Z9XOWZIpjFt0+rs0H9t2uteZ2efKAKgaNyVq9++qj0ZH72cnT79w9/lv/z4qixrav3dxE5HpLv3Zxn+hF43M9zaePYnigi1RMI5h7Kn7bmyVjuNPTzxh/fRGd3iy+fl6d/+/E/Xl8GvyxOo7v+7OUKi7CTfR6vCY/6URz3ZwiL1Pab7k5PHV43TqGrjYEJrZ+qBvm7wGwXxq5ICFaEmpgyMCkX+jdE0/mSxoqIoxqXoif0W/Vf2yd8JZJz49Yc4LvKD3YvvsIK8SDIBATDYsbZOuGZnJtorHlIGCXhpBZ+NNdmDHxde8p8jARmSn8OOGMmKcH7nXtN4STV5sjcxvNMkMjYHJcI2c/mhfbOq/If3o1m+Db349/B86JKEUj1gUePmr8YmcHo8/nlFXr9aeZeflyWkvw9E+gaEHpbWGjFY3rrzkj8eAJrWDyH5MVHxicXaDNdf6ZSZtb96li1911BZ+t+s87gjSJY8hvXcmWandYO+NlPz6fPXv1x+mz68rkfcs2WLsLSKQtoiutO+SbQ/En0SG9g9euPzZQxE6A2LdqxzvOJNbxzazWk2rCW7TDzikGq5Yh8J0HW2ZlBnElFxEnCGVVcPE0wbTRnM9RM0I04QfoJC8GsQl8+z1pBPZ1/T3Fw81SSIBNUrZ/OS93d371dGFYgW70VpJPFAb14GhMsLgPB49jGBg/vQ8t2vuDheiNW/VBhfFvlSZeIML3Z6kCqX/Rjq5y4FJFSqSANW3nHpTff9TbLDgzwob85zROmqvHMPpZltukKS78UbbHZtp58m7cXIMU1MGAxdGe7v+1a2QJ+c+rKsWhN4QVaGn5bk3EuSdAKbRlzvOU+6bSGJGcILkNhql0a582f8S1Gt1SoDMflyjF+4DIQ2WIu18mCx3Ol5wTkPeyrHegThkKXNIEUCJv8gIKYYKiOl6XIYEGAxeM9qwGH+NB7AN4DN0DZiPuO4Ju5IEs5t05RwL9H5Fcas0y1LVtwBBgm0pewgMhSo7rCCQWOYxLPBZEBZveFutTfCRY3kKtFb4mt9gDO2JggnKZxKfZfKp6mTadZ+bgfSznPWMxthu89tMRwA3lhcAACIHr2fpBm5ZSkJkafUu6J8ZM9nD/99MXIuJUXIpZcJCaj3ikgD8R2lY3q0dT+TkYbO7pnQ/RfrRE8U5KGZjNyQwQjsa8BlbzUB0BJWR0k6kQpCI7vA+YVnGnYlLg6aMUhqTAmyhWAy1cp2LZAiQo4x6OMypXfpf/zbTIXGWuZgu0N6RMFoqECkj//7b1Fk6Wl2TZBWCJsyGspNyZ31+GeCSyRczjrmWst06Y8tkb+BosFjiq9abnaEybN1Q6DT2kUpTZ4msLq4jCP3cUaguL8Rg+xAWVxduIqVRKuQtgq9ObNKQTZmKU3amG5Ini0U6O3BKcIx84zDk5rOy7018G2rH5nfrNoVeqUKRJ5Mj/6LT0ASzce+GjBv6Exh5Sj9oVGr0x7g/RFQlgOTjvAlGMnIuLPSNti4D7GoQu5g7jxIMhSzIL1b38EYfD4EkI/Si34DQxna59uHt01z1g05vj+QxP8nY/wut6G38AYd/SrH1252kOFadU9c2mSHV2hqOYBR10GmuNUHJsmKWf18N0qu3dQZMc+V/XsFF4fPiXTYJpM3xOFz7DCp1CNAQ6IbPWJ6pttC5fXc1NHZJYuH8Gm9Hf5aUBouubKkRnCN6ft7i6/q8s3C/2zJdfZrLlBqWKpc+pC0RG5lVsTd81At9EZFsM557dErAgOO8a1Tbh8I11hlE+cmN9VA2drM8f87uLiwMI9rx9AN/l/fX787I9Pjl89ef7T1bPjk+NXJ89eTn568eLb19mHi4/o21dzUmpITC2I6S8ZEetv6Ovt/G9/Xv38t2/oa0KUoAGcx76avpgeP9F0p8evps9ffft6/A1Mwq8vpz8m8tsEPsyh1IX8+hI+a8N5RZX8+uynly9+1F+tUyK/fpuYat3wH4AAx0xf//rl/PM/5ldvzz/ML86vTt/mNOC0VH59pp+HwoJf//efR4D2n0cn//vPowSrYDXHcWw+LjiX6p9HJ8+mx//617++TXbRNxDWLbqVTWQLFbRJg7ezl0RVR2+zitEd3IEEjHSqcjvd+uhhvwad1YbvxfFxIn1QahkHOQ49il1A9O9DpkZ7k0FOOlhdKqwozIYh/FraVZLFLpYmqEM/1cazLsgD2wwiPoch68IR87vucR0wSQb0ElRAm1cKfPrgnevHbFvKAXcjjFNJ0WyaDjAXXAUeu1dtQfDy+cDJ6LRbFwazLaNqVKZGHW5kq8eektDEmrQBeD4MgOCZorUVusr7s3mibZjl8bO3//P8r3+6+ennu5eRivCFYsOmB+1YkGfhKFpngwa46pj6IQ+6eNnYMhpQFuFSUNkMvmiJJjM/doeR5RTR7vFjIVlkO+XytBU5sg0B+oPyBmv1HDeN4wZ4+u/SVhWV6A5ur3LbBSgNb2DajK6N6YS1+nojgPPd9XMEvXY0QUeMK707mWjDolCrE3R0hwXTUw958vGPAkGhdNvRQyceFsU96A4H6BuFTJM/yNi/uYzBQUDWvCxiPDGzHA6S9m8maW4hp7K8is8u+yf2zmaXuUestY4+pe33afRI4W3wQPde3FBD2KKcofEojlrO8Koou7appOGhamCFLewibQTOfvgDBxtYA1F7mLWUw0u58Jdu2C7n0wGASOKu4+DfdJXLPRT/vCpKWGyaLQ9WofChK0pKiEvDKutdTLIvc5ktDOEO7neUvXg+Pv+/m1u30Eb+LjoXgg0aeb1jTEoXhFf23rSMBFVkD7NTk7Up2ixENL+utENP2IVrfCzloHa7jFUKi+cX8xDI+Kvd8OyD+pDFYAPOb+jIPVS7qsawQNIkI+UJJN3LS+1K9ZGQwTWGK4JDq+y7MfxOC9UCbNfLvynoRpu0Iz9Uuh0lub5U6TY7VLo9VLo9VLrdDOtQ6baE6FDp9lDpdqQCLodKt/bvUOl2n6VJ9jtuh0q31b/9V7pt82APL3X70C454D6ys9Qy3+grfVjnveU+ctst841tf0inyuHYosL2od3DgmDJ2Txdibbs+l2d45o+MvRbT26yfThG4VSvlIebch57VoiDLZj/HWzBgy14sAXHw9JWtu8GL2/KkZV/0Z9bojLgt6JEvC8Aw5FDu4dV7lgg3YB1F7P2tkPrV5r37OKr9vvL40aZkbyFnusditDYv7/+/KGehdMv8sbd2Ovj+TA3JvjT0HZaVk/zoC3X0VQiW3Zc93/bXRa4UWVs28ZDPRkgOAgCVFwfa3FH6AoKuFPWIW89VlNPt6BxFE+tl0y9+a5+QhulFXUNWk9YCL03tFGKRVGoWqNrh7PM4vp8HQcLVJzO4th1T300nbKmC8zK2tp80aKuzY/dcfA5RfS7VdijFk34i+mzzYUTpBpSSG6zNsuEMIedcAP60gJp3bfWbwYwrE3hn9pP5su5N7Ei5pFUWJbr9bqvWoTK/dwtViW6aHTBskDflYBWu2GXa1Rc84b4rsZdU1tOxPXE8DHqMiZ23LXmpkTtmqiJqVsbcGF29XBfxTsevfzZPN4WJbq/u4W4sEvMXV5etVZVt6tozUgDNyvtrPGCZ8YyERlj5tIjuHipAKh7dwO8mEdzaEf/2b4B4w1Z2xt94oyYzCJQdCWvQAGlMRGb6deDJ1yTxGFmHWbWvc+s9lk1HN1nfIfCLEnz817DOvYwyaMywDM2sqOxXKPTMOji3Uja3E1ibOXbgvcJmrE0U3KCLqBuuZygj5nS32iZOuUhCdrKYHF+M6fMl7K8vSP6HLL7oWQY1D6zaUnORdknaNbhYpg1okH2BguYdaGyw5ligVuCiodL9KWp2JlfuVOCZK7SszVWNwOaexep3davJ/9VRVaBZPICFusSZs+C1vUfaxonnEU8XJQsY/tN/5Sl9/qFsz9tTlsqeKEhqUtV87XEbd+XD3oOftsQ+FBsyJ7bJJyNG0x9i3fuR5tVvt6Uyt6jXlIT0UXGoBohjlGAFYm4oL/aglAbwJ1+fP/+9YezgRBZY0b3MHzId7URDmVUYRbGVKpa9bFNoHxk+xgZ1gfT6b4qaTE3N9fyl7g0M9+vL//6rv+81KzglerM7H1XqGOPts0zbAGAOmbs+KEaVSDDIzbu01NuTLz5aDfhvoagd9PyH6f/MX0+qdzOaC1KGk7hFkfznA0lkPk1kuU3GxzMxXhBJdbb1hKmLcf+G44DbH5vR0O7txoPfR4w4iZygyxrDoNE2RNY36Ohhpm5kRPSyKEkXlgUkGpPmRnODFJi7JUnbp/TwdqNQtuNpo3wgj5BDI27V0YAYnJltUKYjl3jGKr6gFldoNE2/GSnOscxD272ghcncMOpNmqrmO8wVaWrbDUArX0WpAirgDt/G1SNlUzlTu0V/E5CdtVIqreagKSpI0FUJlhhtndMHkCjlSJlZMxr0WuIZIBZP0Btq+AuYDJGv5fWSIVvCCt03PXl+VXx63UXuGZNtH6xe3mptBblMWbPF5d6odlZLuSWu7X3WETZ95K990F/HmbvwStb2nuOPdrF3vMAQPdeXaIAskWNiTwubK43CF4RwELggQL3mpm3zL1JmkNpoSESrsamWmdppu7Kenv5b8CThDOtDCkL4iwkE7QgkobEGFwm/rbBsSA/qbAyY2XSTiWK6Q1B1//3yQUXd1iEJNT/u56iS0IQjqW5UuY675NrX7DcHoObTxuBzaVri9NsEdOgsWBXEcMoXpvOn6LZEjFevNjgV/QSFsQF/1mr2WPrWhyC3mLVtBx8QJocAVirvfabLS5xiCqusH3IAO+Hjmj+nWamP1iBkkNi+diJ5V8OieWHxPJDYvkhsfyQWH5ILK+DOSQTHZKJDslEh2SiwVgeJrG8cF4NP6wcOYbv3ACAAIRHZBpNDaQJcoV2H7cE64zmOv2UHyYSpuiSEoEefZqdtfBVI7ps7dGoY9uW8OO8uuMd2p4WnuJN7Mc/1TQi5+havzSXzsPuPNMfZX7FiIeo9QmT7ykXqjheuLZ0rrtz6wpuaPeYekFkFqvdpig4X5f+Nhn6yNyIJInqO1HH9+qVF117CLjCqij2aHyYEKvZ4pUIPIveDqAuuECUBYIkhCm9J8UKT+AGZ4iy1VaUibPNC1PiMGycdiFTpDHhtyQEJ3mAGVoQxBm09gjeOZqgI/vM0US/cCQZTuWKq5ZK4Csu1byYXeOORElXOX0Ox9qVupxWyq37gUoX5ttc8j5o0zOO1zmh5sqYO1sY/e67I3pbVfSlekJnpQtkqHy6jCRlgQ2aTnmwmppbPnXjA56kcPOL0QD/XTrQC3icJW11QHFMWIiFtzHZ1qNjAz4FsYZ4Hr1Wu7xYc4UjZGP22/luhyw/rku5VJEg1RitT+bLwYFaxXtbnt5V0KDt4yurQPYdYlk/PmzrBvf3m4nUogn5tXnXYU9Wv1rtlbO9n3Cwsjnl1x9NB2kRmYXDhLJBcVkuUr9BNveNYoUXzSooBc9kbQKRB7P0Uu4XgXbx+ur1u7Hjz0JfKHlXJE35Hr7p8SA4Zy5GnC8RHho3UfC9PH93fnqF/g+6+PzxPYyh/M9BOP5qq/djBSbAQwXmWW0tSFi5leOz/tyio+G37tRPRw49eEKxAZtry57Kcrwt2lUp5nN25lZTg8ocxrXFOI2dy6UpVvm72uxTdFoxG68TLBUR1xN0LWN8S/R/ghWNw2v0SK/Mn88unr7+eIHu9D6XRQh+ezzx2abX2pCgjMTX/cNdx0qrazQLMh11Y26JWHAJ7TJX6VyDXXxtr89pwbqXydigOmKE7KULgYVwDaF3YeRWm556FTcicEsxwogRdcfFTWnD3teqCJIhQQ69IsGSBLPQXcTacm7qFozpaLc4vIWuYlHbZbAOFySJBaI7HWtU7VFojY7F6oaMePmU5npD1tUtmesAvRXtHhwsxizGAFGxIsoSuMz5jqpVC6gAx7GGZFc0cxpSWtIu4Yv++w5DYMv9Rs4d7RIu6IOAuuIFM7Uac7/xjrLsO1AtspnuPTsESwTexhyVxtNdaajlQoqeEfbgK9qCayp4JHCyvX2wNeNR9c2nQuE4YOArk67M0mZA46+UvXLEdsvkAHdOkcRQOARNvJJEinuSSMt8pazHQmx9xGpnojR3FAZ6Nbq8fKvbTZm92L7f+WZXrnuPLbHumBrjull19DoISKqMn/EC0zh3M87YLY5peDQtPePhkRDMJMJIZhCOvMxiw25aULDP2IGxMRU23Mpl/ubHzR4W9mg8x1enVzQRK0WSVKEVlmgJD9f7uTPEc0CX1sJJbdRmvXNTLKVeNI+gR01o7g1ZH7WhapzyOyH0/NALalE8uZbvU+0vvQInuHlIm1tsgqcpCZvhzyPj0z1bmLF2iLX5y1PCzI1USUJCihWJ1w5VG2hPOeTOAJMhgKEo8k5dKmnEsMpEU+B74chfz128FpgJ/74h6zbGvmCSLl3XA9DgkJJrO6X1LJq2RN6bv7FjS/zRJe3xJQMiTDafy/c6mR8UZ9IvdmF/yKhqyBnqHdqxN1iGbWdvbY7LGQ3d5uicXvE5fSJ0BvRX3yidIXEpo3VZa3RKGY/MQr5Hi83YaXk6rDvo11yv3dZ1oBVXC6kxf7lXGsyiDx+v4PQxCzkRzbjSXmtDJdBBUwuwNEuUJptvu7sNJNW4ELsn96urf5QWxQpH2uZ8KC3ad1saZYEtvxhSQQLFxXoHEN5g+nycBOdb2uIKi4gou03hJU9IHaC8oypYeY7MS0VOEt/y1q+ral468CNqCBt2SBo3Dv271b3OOct4y2nnXX16dVSRTbYglEUmiKNVaBr7+N7WZhf72VmrITc6QxjEDo4rX1h9D7r6PbTkcVgKG2HkDhrYah+viKdSbw9mIVniLFaGQAc7r4hDDzyIjDvO9y7kZcNJ9xIA2YPMtQIoPFYe9iWX7L4qjhjSJXftA3tILZ5795H24bsnL2kv1g3RG8Md2ofzPTpE7fGHEpgs6U3p/OPKfDMs8Mq+tLl6XcEP7XLi4eWHHqREgoOyS5EE74CPlOrfamAdkuIPSfGHpHgfukNSPDokxR+S4tkhKf6QFN8b1iEp/pAUf0iKPyTFH5LiD0nxDVCHpPjqX69jR7s9nIMUj7j5KtUvNRykl/1ScKYIC9v9BNu5pMpz2PEApePfAeLgRoNo23xvwOB3U4j8Lh1L3h7huQ05BfeOKeX4w/8LAAD//5d6IKQ=" } diff --git a/vendor/github.com/elastic/beats/filebeat/include/list.go b/vendor/github.com/elastic/beats/filebeat/include/list.go index 96e26850..93083729 100644 --- a/vendor/github.com/elastic/beats/filebeat/include/list.go +++ b/vendor/github.com/elastic/beats/filebeat/include/list.go @@ -1,3 +1,22 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by 'make imports' - DO NOT EDIT. + /* Package include imports all input packages so that they register their factories with the global registry. This package can be imported in the @@ -7,7 +26,6 @@ modules. package include import ( - // This list is automatically generated by `make imports` _ "github.com/elastic/beats/filebeat/input/docker" _ "github.com/elastic/beats/filebeat/input/log" _ "github.com/elastic/beats/filebeat/input/redis" diff --git a/vendor/github.com/elastic/beats/filebeat/input/config.go b/vendor/github.com/elastic/beats/filebeat/input/config.go index 6f64678b..750b3704 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/config.go +++ b/vendor/github.com/elastic/beats/filebeat/input/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 input import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/docker/config.go b/vendor/github.com/elastic/beats/filebeat/input/docker/config.go index e55bd3a3..e33bb869 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/docker/config.go +++ b/vendor/github.com/elastic/beats/filebeat/input/docker/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker var defaultConfig = config{ @@ -14,12 +31,15 @@ type config struct { // Partial configures the prospector to join partial lines Partial bool `config:"combine_partials"` + + // Enable CRI flags parsing (to be switched to default in 7.0) + CRIFlags bool `config:"cri.parse_flags"` } type containers struct { IDs []string `config:"ids"` Path string `config:"path"` - // Stream can be all,stdout or stderr + // Stream can be all, stdout or stderr Stream string `config:"stream"` } diff --git a/vendor/github.com/elastic/beats/filebeat/input/docker/input.go b/vendor/github.com/elastic/beats/filebeat/input/docker/input.go index 1060e557..56ffda2a 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/docker/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/docker/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( @@ -53,6 +70,19 @@ func NewInput( if err := cfg.SetBool("docker-json.partial", -1, config.Partial); err != nil { return nil, errors.Wrap(err, "update input config") } + + if err := cfg.SetBool("docker-json.cri_flags", -1, config.Partial); err != nil { + return nil, errors.Wrap(err, "update input config") + } + + // Add stream to meta to ensure different state per stream + if config.Containers.Stream != "all" { + if context.Meta == nil { + context.Meta = map[string]string{} + } + context.Meta["stream"] = config.Containers.Stream + } + return log.NewInput(cfg, outletFactory, context) } diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/file.go b/vendor/github.com/elastic/beats/filebeat/input/file/file.go index 3f01758a..c3bc1bb6 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/file/file.go +++ b/vendor/github.com/elastic/beats/filebeat/input/file/file.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/file_test.go b/vendor/github.com/elastic/beats/filebeat/input/file/file_test.go deleted file mode 100644 index 2e1cb525..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/file/file_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// +build !integration - -package file - -import ( - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestIsSameFile(t *testing.T) { - absPath, err := filepath.Abs("../../tests/files/") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - fileInfo1, err := os.Stat(absPath + "/logs/test.log") - fileInfo2, err := os.Stat(absPath + "/logs/system.log") - - assert.Nil(t, err) - assert.NotNil(t, fileInfo1) - assert.NotNil(t, fileInfo2) - - file1 := &File{ - FileInfo: fileInfo1, - } - - file2 := &File{ - FileInfo: fileInfo2, - } - - file3 := &File{ - FileInfo: fileInfo2, - } - - assert.False(t, file1.IsSameFile(file2)) - assert.False(t, file2.IsSameFile(file1)) - - assert.True(t, file1.IsSameFile(file1)) - assert.True(t, file2.IsSameFile(file2)) - - assert.True(t, file3.IsSameFile(file2)) - assert.True(t, file2.IsSameFile(file3)) -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/glob.go b/vendor/github.com/elastic/beats/filebeat/input/file/glob.go index 2e3c82ab..af9348e2 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/file/glob.go +++ b/vendor/github.com/elastic/beats/filebeat/input/file/glob.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/glob_other_test.go b/vendor/github.com/elastic/beats/filebeat/input/file/glob_other_test.go deleted file mode 100644 index 23373bf5..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/file/glob_other_test.go +++ /dev/null @@ -1,140 +0,0 @@ -// +build !windows - -package file - -var globTests = []globTest{ - { - "*", - []string{ - "foo", - }, - }, - { - "foo/*", - []string{ - "foo/bar", - }, - }, - { - "*/*", - []string{ - "foo/bar", - }, - }, - { - "**", - []string{ - "", - "foo", - "foo/bar", - "foo/bar/baz", - "foo/bar/baz/qux", - }, - }, - { - "foo**", - []string{ - "foo", - }, - }, - { - "foo/**", - []string{ - "foo", - "foo/bar", - "foo/bar/baz", - "foo/bar/baz/qux", - "foo/bar/baz/qux/quux", - }, - }, - { - "foo/**/baz", - []string{ - "foo/bar/baz", - }, - }, - { - "foo/**/bazz", - []string{}, - }, - { - "foo/**/bar", - []string{ - "foo/bar", - }, - }, - { - "foo//bar", - []string{ - "foo/bar", - }, - }, -} - -var globPatternsTests = []globPatternsTest{ - { - "**", - []string{"*", "*/*"}, - false, - }, - { - "/**", - []string{"/", "/*", "/*/*"}, - false, - }, - { - "**/", - []string{"*", "*/*"}, - false, - }, - { - "/foo/**", - []string{"/foo", "/foo/*", "/foo/*/*"}, - false, - }, - { - "/foo/**/bar", - []string{"/foo/bar", "/foo/*/bar", "/foo/*/*/bar"}, - false, - }, - { - "**/bar", - []string{"bar", "*/bar", "*/*/bar"}, - false, - }, - { - "/**/bar", - []string{"/bar", "/*/bar", "/*/*/bar"}, - false, - }, - { - "**/**", - []string{"*", "*/*"}, - true, - }, - { - "/**/**", - []string{"*", "*/*"}, - true, - }, - { - "foo**/bar", - []string{"foo**/bar"}, - false, - }, - { - "**foo/bar", - []string{"**foo/bar"}, - false, - }, - { - "foo/**bar", - []string{"foo/**bar"}, - false, - }, - { - "foo/bar**", - []string{"foo/bar**"}, - false, - }, -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/glob_test.go b/vendor/github.com/elastic/beats/filebeat/input/file/glob_test.go deleted file mode 100644 index 2f3c8a56..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/file/glob_test.go +++ /dev/null @@ -1,82 +0,0 @@ -package file - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" -) - -type globTest struct { - pattern string - expectedMatches []string -} - -func TestGlob(t *testing.T) { - root, err := ioutil.TempDir("", "testglob") - if err != nil { - t.Fatal(err) - } - os.MkdirAll(filepath.Join(root, "foo/bar/baz/qux/quux"), 0755) - for _, test := range globTests { - pattern := filepath.Join(root, test.pattern) - matches, err := Glob(pattern, 4) - if err != nil { - t.Fatal(err) - continue - } - var normalizedMatches []string - for _, m := range matches { - if len(m) < len(root) { - t.Fatalf("Matches for %q are expected to be under %s and %q is not", test.pattern, root, m) - } - var normalizedMatch string - if len(m) > len(root) { - normalizedMatch = m[len(root)+1:] - } else { - normalizedMatch = m[len(root):] - } - normalizedMatches = append(normalizedMatches, normalizedMatch) - } - matchError := func() { - t.Fatalf("Pattern %q matched %q instead of %q", test.pattern, normalizedMatches, test.expectedMatches) - } - if len(normalizedMatches) != len(test.expectedMatches) { - matchError() - continue - } - for i, expectedMatch := range test.expectedMatches { - if normalizedMatches[i] != expectedMatch { - matchError() - } - } - } -} - -type globPatternsTest struct { - pattern string - expectedPatterns []string - expectedError bool -} - -func TestGlobPatterns(t *testing.T) { - for _, test := range globPatternsTests { - patterns, err := GlobPatterns(test.pattern, 2) - if err != nil { - if test.expectedError { - continue - } - t.Fatal(err) - } - if len(patterns) != len(test.expectedPatterns) { - t.Fatalf("%q expanded to %q (%d) instead of %q (%d)", test.pattern, patterns, len(patterns), - test.expectedPatterns, len(test.expectedPatterns)) - } - for i, p := range patterns { - if p != test.expectedPatterns[i] { - t.Fatalf("%q expanded to %q instead of %q", test.pattern, patterns, test.expectedPatterns) - break - } - } - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/glob_windows_test.go b/vendor/github.com/elastic/beats/filebeat/input/file/glob_windows_test.go deleted file mode 100644 index aadbe897..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/file/glob_windows_test.go +++ /dev/null @@ -1,92 +0,0 @@ -// +build windows - -package file - -var globTests = []globTest{ - { - "*", - []string{ - "foo", - }, - }, - { - "foo\\*", - []string{ - "foo\\bar", - }, - }, - { - "foo/*", - []string{ - "foo\\bar", - }, - }, - { - "*\\*", - []string{ - "foo\\bar", - }, - }, - { - "**", - []string{ - "", - "foo", - "foo\\bar", - "foo\\bar\\baz", - "foo\\bar\\baz\\qux", - }, - }, - { - "foo**", - []string{ - "foo", - }, - }, - { - "foo\\**", - []string{ - "foo", - "foo\\bar", - "foo\\bar\\baz", - "foo\\bar\\baz\\qux", - "foo\\bar\\baz\\qux\\quux", - }, - }, - { - "foo\\**\\baz", - []string{ - "foo\\bar\\baz", - }, - }, - { - "foo/**\\baz", - []string{ - "foo\\bar\\baz", - }, - }, - { - "foo\\**\\bazz", - []string{}, - }, - { - "foo\\**\\bar", - []string{ - "foo\\bar", - }, - }, - { - "foo\\\\bar", - []string{ - "foo\\bar", - }, - }, -} - -var globPatternsTests = []globPatternsTest{ - { - "C:\\foo\\**\\bar", - []string{"C:\\foo\\bar", "C:\\foo\\*\\bar", "C:\\foo\\*\\*\\bar"}, - false, - }, -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/state.go b/vendor/github.com/elastic/beats/filebeat/input/file/state.go index eaa23416..96c5abf2 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/file/state.go +++ b/vendor/github.com/elastic/beats/filebeat/input/file/state.go @@ -1,27 +1,52 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( "os" + "strconv" + "strings" "time" + "github.com/mitchellh/hashstructure" + "github.com/elastic/beats/libbeat/common/file" ) // State is used to communicate the reading state of a file type State struct { - Id string `json:"-"` // local unique id to make comparison more efficient - Finished bool `json:"-"` // harvester state - Fileinfo os.FileInfo `json:"-"` // the file info - Source string `json:"source"` - Offset int64 `json:"offset"` - Timestamp time.Time `json:"timestamp"` - TTL time.Duration `json:"ttl"` - Type string `json:"type"` + Id string `json:"-"` // local unique id to make comparison more efficient + Finished bool `json:"-"` // harvester state + Fileinfo os.FileInfo `json:"-"` // the file info + Source string `json:"source"` + Offset int64 `json:"offset"` + Timestamp time.Time `json:"timestamp"` + TTL time.Duration `json:"ttl"` + Type string `json:"type"` + Meta map[string]string `json:"meta"` FileStateOS file.StateOS } // NewState creates a new file state -func NewState(fileInfo os.FileInfo, path string, t string) State { +func NewState(fileInfo os.FileInfo, path string, t string, meta map[string]string) State { + if len(meta) == 0 { + meta = nil + } return State{ Fileinfo: fileInfo, Source: path, @@ -30,6 +55,7 @@ func NewState(fileInfo os.FileInfo, path string, t string) State { Timestamp: time.Now(), TTL: -1, // By default, state does have an infinite ttl Type: t, + Meta: meta, } } @@ -37,17 +63,37 @@ func NewState(fileInfo os.FileInfo, path string, t string) State { func (s *State) ID() string { // Generate id on first request. This is needed as id is not set when converting back from json if s.Id == "" { - s.Id = s.FileStateOS.String() + if len(s.Meta) == 0 { + s.Id = s.FileStateOS.String() + } else { + hashValue, _ := hashstructure.Hash(s.Meta, nil) + var hashBuf [17]byte + hash := strconv.AppendUint(hashBuf[:0], hashValue, 16) + hash = append(hash, '-') + + fileID := s.FileStateOS.String() + + var b strings.Builder + b.Grow(len(hash) + len(fileID)) + b.Write(hash) + b.WriteString(fileID) + + s.Id = b.String() + } } + return s.Id } -// IsEqual compares the state to an other state supporing stringer based on the unique string +// IsEqual compares the state to an other state supporting stringer based on the unique string func (s *State) IsEqual(c *State) bool { return s.ID() == c.ID() } // IsEmpty returns true if the state is empty func (s *State) IsEmpty() bool { - return *s == State{} + return s.FileStateOS == file.StateOS{} && + s.Source == "" && + len(s.Meta) == 0 && + s.Timestamp.IsZero() } diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/states.go b/vendor/github.com/elastic/beats/filebeat/input/file/states.go index b72d0953..d01026f8 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/file/states.go +++ b/vendor/github.com/elastic/beats/filebeat/input/file/states.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( @@ -8,7 +25,7 @@ import ( ) // States handles list of FileState. One must use NewStates to instantiate a -// file states regisry. Using the zero-value is not safe. +// file states registry. Using the zero-value is not safe. type States struct { sync.RWMutex diff --git a/vendor/github.com/elastic/beats/filebeat/input/file/states_test.go b/vendor/github.com/elastic/beats/filebeat/input/file/states_test.go deleted file mode 100644 index 43934658..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/file/states_test.go +++ /dev/null @@ -1,71 +0,0 @@ -// +build !integration - -package file - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -var cleanupTests = []struct { - title string - state State - countBefore int - cleanupCount int - countAfter int -}{ - { - "Finished and TTL set to 0", - State{ - TTL: 0, - Finished: true, - }, 1, 1, 0, - }, - { - "Unfinished but TTL set to 0", - State{ - TTL: 0, - Finished: false, - }, 1, 0, 1, - }, - { - "TTL = -1 means not expiring", - State{ - TTL: -1, - Finished: true, - }, 1, 0, 1, - }, - { - "Expired and finished", - State{ - TTL: 1 * time.Second, - Timestamp: time.Now().Add(-2 * time.Second), - Finished: true, - }, 1, 1, 0, - }, - { - "Expired but unfinished", - State{ - TTL: 1 * time.Second, - Timestamp: time.Now().Add(-2 * time.Second), - Finished: false, - }, 1, 0, 1, - }, -} - -func TestCleanup(t *testing.T) { - for _, test := range cleanupTests { - test := test - t.Run(test.title, func(t *testing.T) { - states := NewStates() - states.SetStates([]State{test.state}) - - assert.Equal(t, test.countBefore, states.Count()) - cleanupCount, _ := states.Cleanup() - assert.Equal(t, test.cleanupCount, cleanupCount) - assert.Equal(t, test.countAfter, states.Count()) - }) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/input.go b/vendor/github.com/elastic/beats/filebeat/input/input.go index c00fd3f2..98eea51d 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 input import ( @@ -11,8 +28,17 @@ import ( "github.com/elastic/beats/filebeat/input/file" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/monitoring" +) + +var ( + inputList = monitoring.NewUniqueList() ) +func init() { + monitoring.NewFunc(monitoring.GetNamespace("state").GetRegistry(), "input", inputList.Report, monitoring.Report) +} + // Input is the interface common to all input type Input interface { Run() @@ -70,6 +96,7 @@ func New( Done: input.done, BeatDone: input.beatDone, DynamicFields: dynFields, + Meta: nil, } var ipt Input ipt, err = f(conf, outlet, context) @@ -93,6 +120,7 @@ func (p *Runner) Start() { } onceWg.Add(1) + inputList.Add(p.config.Type) // Add waitgroup to make sure input is finished go func() { defer func() { @@ -132,6 +160,7 @@ func (p *Runner) Stop() { // Stop scanning and wait for completion close(p.done) p.wg.Wait() + inputList.Remove(p.config.Type) } func (p *Runner) stop() { diff --git a/vendor/github.com/elastic/beats/filebeat/input/input_test.go b/vendor/github.com/elastic/beats/filebeat/input/input_test.go deleted file mode 100644 index db0f7562..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/input_test.go +++ /dev/null @@ -1,3 +0,0 @@ -// +build !integration - -package input diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/config.go b/vendor/github.com/elastic/beats/filebeat/input/log/config.go index 98269344..38c34fd5 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/log/config.go +++ b/vendor/github.com/elastic/beats/filebeat/input/log/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log import ( @@ -9,8 +26,9 @@ import ( cfg "github.com/elastic/beats/filebeat/config" "github.com/elastic/beats/filebeat/harvester" - "github.com/elastic/beats/filebeat/harvester/reader" "github.com/elastic/beats/filebeat/input/file" + "github.com/elastic/beats/filebeat/reader/json" + "github.com/elastic/beats/filebeat/reader/multiline" "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/libbeat/common/match" "github.com/elastic/beats/libbeat/logp" @@ -78,18 +96,17 @@ type config struct { ScanOrder string `config:"scan.order"` ScanSort string `config:"scan.sort"` - ExcludeLines []match.Matcher `config:"exclude_lines"` - IncludeLines []match.Matcher `config:"include_lines"` - MaxBytes int `config:"max_bytes" validate:"min=0,nonzero"` - Multiline *reader.MultilineConfig `config:"multiline"` - JSON *reader.JSONConfig `config:"json"` + ExcludeLines []match.Matcher `config:"exclude_lines"` + IncludeLines []match.Matcher `config:"include_lines"` + MaxBytes int `config:"max_bytes" validate:"min=0,nonzero"` + Multiline *multiline.Config `config:"multiline"` + JSON *json.Config `config:"json"` // Hidden on purpose, used by the docker input: DockerJSON *struct { - Stream string `config:"stream"` - - // TODO move this to true by default - Partial bool `config:"partial"` + Stream string `config:"stream"` + Partial bool `config:"partial"` + CRIFlags bool `config:"cri_flags"` } `config:"docker-json"` } @@ -127,7 +144,7 @@ var ValidScanSort = map[string]struct{}{ } func (c *config) Validate() error { - // DEPRECATED 6.0.0: warning is already outputted on propsector level + // DEPRECATED 6.0.0: warning is already outputted on prospector level if c.InputType != "" { c.Type = c.InputType } diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/config_test.go b/vendor/github.com/elastic/beats/filebeat/input/log/config_test.go deleted file mode 100644 index 6fa0aab1..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/log/config_test.go +++ /dev/null @@ -1,55 +0,0 @@ -// +build !integration - -package log - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/harvester" -) - -func TestCleanOlderError(t *testing.T) { - config := config{ - CleanInactive: 10 * time.Hour, - } - - err := config.Validate() - assert.Error(t, err) -} - -func TestCleanOlderIgnoreOlderError(t *testing.T) { - config := config{ - CleanInactive: 10 * time.Hour, - IgnoreOlder: 15 * time.Hour, - } - - err := config.Validate() - assert.Error(t, err) -} - -func TestCleanOlderIgnoreOlderErrorEqual(t *testing.T) { - config := config{ - CleanInactive: 10 * time.Hour, - IgnoreOlder: 10 * time.Hour, - } - - err := config.Validate() - assert.Error(t, err) -} - -func TestCleanOlderIgnoreOlder(t *testing.T) { - config := config{ - CleanInactive: 10*time.Hour + defaultConfig.ScanFrequency + 1*time.Second, - IgnoreOlder: 10 * time.Hour, - Paths: []string{"hello"}, - ForwarderConfig: harvester.ForwarderConfig{ - Type: "log", - }, - } - - err := config.Validate() - assert.NoError(t, err) -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/file.go b/vendor/github.com/elastic/beats/filebeat/input/log/file.go index ff5214e1..8c513e0e 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/log/file.go +++ b/vendor/github.com/elastic/beats/filebeat/input/log/file.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log import "os" diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/harvester.go b/vendor/github.com/elastic/beats/filebeat/input/log/harvester.go index c42e5fa6..294ffb1e 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/log/harvester.go +++ b/vendor/github.com/elastic/beats/filebeat/input/log/harvester.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log harvests different inputs for new information. Currently // two harvester types exist: // @@ -31,9 +48,15 @@ import ( "github.com/elastic/beats/filebeat/channel" "github.com/elastic/beats/filebeat/harvester" - "github.com/elastic/beats/filebeat/harvester/encoding" - "github.com/elastic/beats/filebeat/harvester/reader" "github.com/elastic/beats/filebeat/input/file" + "github.com/elastic/beats/filebeat/reader" + "github.com/elastic/beats/filebeat/reader/docker_json" + "github.com/elastic/beats/filebeat/reader/encode" + "github.com/elastic/beats/filebeat/reader/encode/encoding" + "github.com/elastic/beats/filebeat/reader/json" + "github.com/elastic/beats/filebeat/reader/limit" + "github.com/elastic/beats/filebeat/reader/multiline" + "github.com/elastic/beats/filebeat/reader/strip_newline" "github.com/elastic/beats/filebeat/util" ) @@ -267,6 +290,7 @@ func (h *Harvester) Run() error { // This is important in case sending is not successful so on shutdown // the old offset is reported state := h.getState() + startingOffset := state.Offset state.Offset += int64(message.Bytes) // Create state event @@ -281,7 +305,7 @@ func (h *Harvester) Run() error { if !message.IsEmpty() && h.shouldExportLine(text) { fields := common.MapStr{ "source": state.Source, - "offset": state.Offset, // Offset here is the offset before the starting char. + "offset": startingOffset, // Offset here is the offset before the starting char. } fields.DeepUpdate(message.Fields) @@ -296,7 +320,7 @@ func (h *Harvester) Run() error { } if h.config.JSON != nil && len(jsonFields) > 0 { - ts := reader.MergeJSONFields(fields, jsonFields, &text, *h.config.JSON) + ts := json.MergeJSONFields(fields, jsonFields, &text, *h.config.JSON) if !ts.IsZero() { // there was a `@timestamp` key in the event, so overwrite // the resulting timestamp @@ -528,28 +552,28 @@ func (h *Harvester) newLogFileReader() (reader.Reader, error) { return nil, err } - r, err = reader.NewEncode(h.log, h.encoding, h.config.BufferSize) + r, err = encode.New(h.log, h.encoding, h.config.BufferSize) if err != nil { return nil, err } if h.config.DockerJSON != nil { // Docker json-file format, add custom parsing to the pipeline - r = reader.NewDockerJSON(r, h.config.DockerJSON.Stream, h.config.DockerJSON.Partial) + r = docker_json.New(r, h.config.DockerJSON.Stream, h.config.DockerJSON.Partial, h.config.DockerJSON.CRIFlags) } if h.config.JSON != nil { - r = reader.NewJSON(r, h.config.JSON) + r = json.New(r, h.config.JSON) } - r = reader.NewStripNewline(r) + r = strip_newline.New(r) if h.config.Multiline != nil { - r, err = reader.NewMultiline(r, "\n", h.config.MaxBytes, h.config.Multiline) + r, err = multiline.New(r, "\n", h.config.MaxBytes, h.config.Multiline) if err != nil { return nil, err } } - return reader.NewLimit(r, h.config.MaxBytes), nil + return limit.New(r, h.config.MaxBytes), nil } diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/harvester_test.go b/vendor/github.com/elastic/beats/filebeat/input/log/harvester_test.go deleted file mode 100644 index cc0f9df0..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/log/harvester_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// +build !integration - -package log - -import ( - "fmt" - "math/rand" - "os" - "path/filepath" - "strconv" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/harvester/encoding" - "github.com/elastic/beats/filebeat/harvester/reader" - "github.com/elastic/beats/libbeat/common" -) - -func TestReadLine(t *testing.T) { - absPath, err := filepath.Abs("../../tests/files/logs/") - // All files starting with tmp are ignored - logFile := absPath + "/tmp" + strconv.Itoa(rand.Int()) + ".log" - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - if err != nil { - t.Fatalf("Error creating the absolute path: %s", absPath) - } - - file, err := os.Create(logFile) - defer file.Close() - defer os.Remove(logFile) - - assert.Nil(t, err) - assert.NotNil(t, file) - - firstLineString := "9Characte\n" - secondLineString := "This is line 2\n" - - length, err := file.WriteString(firstLineString) - assert.Nil(t, err) - assert.NotNil(t, length) - - length, err = file.WriteString(secondLineString) - assert.Nil(t, err) - assert.NotNil(t, length) - - file.Sync() - - // Open file for reading - readFile, err := os.Open(logFile) - defer readFile.Close() - assert.Nil(t, err) - - source := File{File: readFile} - - h := Harvester{ - config: config{ - LogConfig: LogConfig{ - CloseInactive: 500 * time.Millisecond, - Backoff: 100 * time.Millisecond, - MaxBackoff: 1 * time.Second, - BackoffFactor: 2, - }, - BufferSize: 100, - MaxBytes: 1000, - }, - source: source, - } - - var ok bool - h.encodingFactory, ok = encoding.FindEncoding(h.config.Encoding) - assert.True(t, ok) - - h.encoding, err = h.encodingFactory(readFile) - assert.NoError(t, err) - - r, err := h.newLogFileReader() - assert.NoError(t, err) - - // Read third line - _, text, bytesread, _, err := readLine(r) - fmt.Printf("received line: '%s'\n", text) - assert.Nil(t, err) - assert.Equal(t, text, firstLineString[0:len(firstLineString)-1]) - assert.Equal(t, bytesread, len(firstLineString)) - - // read second line - _, text, bytesread, _, err = readLine(r) - fmt.Printf("received line: '%s'\n", text) - assert.Equal(t, text, secondLineString[0:len(secondLineString)-1]) - assert.Equal(t, bytesread, len(secondLineString)) - assert.Nil(t, err) - - // Read third line, which doesn't exist - _, text, bytesread, _, err = readLine(r) - fmt.Printf("received line: '%s'\n", text) - assert.Equal(t, "", text) - assert.Equal(t, bytesread, 0) - assert.Equal(t, err, ErrInactive) -} - -// readLine reads a full line into buffer and returns it. -// In case of partial lines, readLine does return an error and an empty string -// This could potentially be improved / replaced by https://github.com/elastic/beats/libbeat/tree/master/common/streambuf -func readLine(reader reader.Reader) (time.Time, string, int, common.MapStr, error) { - message, err := reader.Next() - - // Full line read to be returned - if message.Bytes != 0 && err == nil { - return message.Ts, string(message.Content), message.Bytes, message.Fields, err - } - - return time.Time{}, "", 0, nil, err -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/input.go b/vendor/github.com/elastic/beats/filebeat/input/log/input.go index a721eb43..afba5fb4 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/log/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/log/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log import ( @@ -50,6 +67,7 @@ type Input struct { stateOutlet channel.Outleter done chan struct{} numHarvesters atomic.Uint32 + meta map[string]string } // NewInput instantiates a new Log @@ -75,6 +93,11 @@ func NewInput( // can be forwarded correctly to the registrar. stateOut := channel.CloseOnSignal(channel.SubOutlet(out), context.BeatDone) + meta := context.Meta + if len(meta) == 0 { + meta = nil + } + p := &Input{ config: defaultConfig, cfg: cfg, @@ -83,6 +106,7 @@ func NewInput( stateOutlet: stateOut, states: file.NewStates(), done: context.Done, + meta: meta, } if err := cfg.Unpack(&p.config); err != nil { @@ -124,7 +148,7 @@ func (p *Input) loadStates(states []file.State) error { for _, state := range states { // Check if state source belongs to this input. If yes, update the state. - if p.matchesFile(state.Source) { + if p.matchesFile(state.Source) && p.matchesMeta(state.Meta) { state.TTL = -1 // In case a input is tried to be started with an unfinished state matching the glob pattern @@ -186,7 +210,7 @@ func (p *Input) Run() { } } else { // Check if existing source on disk and state are the same. Remove if not the case. - newState := file.NewState(stat, state.Source, p.config.Type) + newState := file.NewState(stat, state.Source, p.config.Type, p.meta) if !newState.FileStateOS.IsSame(state.FileStateOS) { p.removeState(state) logp.Debug("input", "Remove state for file as file removed or renamed: %s", state.Source) @@ -300,6 +324,21 @@ func (p *Input) matchesFile(filePath string) bool { return false } +// matchesMeta returns true in case the given meta is equal to the one of this input, false if not +func (p *Input) matchesMeta(meta map[string]string) bool { + if len(meta) != len(p.meta) { + return false + } + + for k, v := range p.meta { + if meta[k] != v { + return false + } + } + + return true +} + type FileSortInfo struct { info os.FileInfo path string @@ -364,7 +403,7 @@ func getFileState(path string, info os.FileInfo, p *Input) (file.State, error) { } logp.Debug("input", "Check file for harvesting: %s", absolutePath) // Create new state for comparison - newState := file.NewState(info, absolutePath, p.config.Type) + newState := file.NewState(info, absolutePath, p.config.Type, p.meta) return newState, nil } @@ -653,6 +692,10 @@ func (p *Input) updateState(state file.State) error { state.TTL = p.config.CleanInactive } + if len(state.Meta) == 0 { + state.Meta = nil + } + // Update first internal state p.states.Update(state) diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/input_other_test.go b/vendor/github.com/elastic/beats/filebeat/input/log/input_other_test.go deleted file mode 100644 index 3b8a3b72..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/log/input_other_test.go +++ /dev/null @@ -1,154 +0,0 @@ -// +build !windows - -package log - -import ( - "testing" - - "github.com/elastic/beats/filebeat/input/file" - "github.com/elastic/beats/filebeat/util" - "github.com/elastic/beats/libbeat/common/match" - - "github.com/stretchr/testify/assert" -) - -var matchTests = []struct { - file string - paths []string - excludeFiles []match.Matcher - result bool -}{ - { - "test/test.log", - []string{"test/*"}, - nil, - true, - }, - { - "notest/test.log", - []string{"test/*"}, - nil, - false, - }, - { - "test/test.log", - []string{"test/*.log"}, - nil, - true, - }, - { - "test/test.log", - []string{"test/*.nolog"}, - nil, - false, - }, - { - "test/test.log", - []string{"test/*"}, - []match.Matcher{match.MustCompile("test.log")}, - false, - }, - { - "test/test.log", - []string{"test/*"}, - []match.Matcher{match.MustCompile("test2.log")}, - true, - }, -} - -func TestMatchFile(t *testing.T) { - for _, test := range matchTests { - - p := Input{ - config: config{ - Paths: test.paths, - ExcludeFiles: test.excludeFiles, - }, - } - - assert.Equal(t, test.result, p.matchesFile(test.file)) - } -} - -var initStateTests = []struct { - states []file.State // list of states - paths []string // input glob - count int // expected states in input -}{ - { - []file.State{ - {Source: "test"}, - }, - []string{"test"}, - 1, - }, - { - []file.State{ - {Source: "notest"}, - }, - []string{"test"}, - 0, - }, - { - []file.State{ - {Source: "test1.log", Id: "1"}, - {Source: "test2.log", Id: "2"}, - }, - []string{"*.log"}, - 2, - }, - { - []file.State{ - {Source: "test1.log", Id: "1"}, - {Source: "test2.log", Id: "2"}, - }, - []string{"test1.log"}, - 1, - }, - { - []file.State{ - {Source: "test1.log", Id: "1"}, - {Source: "test2.log", Id: "2"}, - }, - []string{"test.log"}, - 0, - }, - { - []file.State{ - {Source: "test1.log", Id: "1"}, - {Source: "test2.log", Id: "1"}, - }, - []string{"*.log"}, - 1, // Expecting only 1 state because of same inode (this is only a theoretical case) - }, -} - -// TestInit checks that the correct states are in an input after the init phase -// This means only the ones that match the glob and not exclude files -func TestInit(t *testing.T) { - for _, test := range initStateTests { - p := Input{ - config: config{ - Paths: test.paths, - }, - states: file.NewStates(), - outlet: TestOutlet{}, - } - - // Set states to finished - for i, state := range test.states { - state.Finished = true - test.states[i] = state - } - - err := p.loadStates(test.states) - assert.NoError(t, err) - assert.Equal(t, test.count, p.states.Count()) - } -} - -// TestOutlet is an empty outlet for testing -type TestOutlet struct{} - -func (o TestOutlet) OnEvent(event *util.Data) bool { return true } -func (o TestOutlet) Close() error { return nil } diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/input_test.go b/vendor/github.com/elastic/beats/filebeat/input/log/input_test.go deleted file mode 100644 index 383c9e84..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/log/input_test.go +++ /dev/null @@ -1,76 +0,0 @@ -// +build !integration - -package log - -import ( - "os" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/input/file" - "github.com/elastic/beats/libbeat/common/match" -) - -func TestInputFileExclude(t *testing.T) { - p := Input{ - config: config{ - ExcludeFiles: []match.Matcher{match.MustCompile(`\.gz$`)}, - }, - } - - assert.True(t, p.isFileExcluded("/tmp/log/logw.gz")) - assert.False(t, p.isFileExcluded("/tmp/log/logw.log")) -} - -var cleanInactiveTests = []struct { - cleanInactive time.Duration - fileTime time.Time - result bool -}{ - { - cleanInactive: 0, - fileTime: time.Now(), - result: false, - }, - { - cleanInactive: 1 * time.Second, - fileTime: time.Now().Add(-5 * time.Second), - result: true, - }, - { - cleanInactive: 10 * time.Second, - fileTime: time.Now().Add(-5 * time.Second), - result: false, - }, -} - -func TestIsCleanInactive(t *testing.T) { - for _, test := range cleanInactiveTests { - - l := Input{ - config: config{ - CleanInactive: test.cleanInactive, - }, - } - state := file.State{ - Fileinfo: TestFileInfo{ - time: test.fileTime, - }, - } - - assert.Equal(t, test.result, l.isCleanInactive(state)) - } -} - -type TestFileInfo struct { - time time.Time -} - -func (t TestFileInfo) Name() string { return "" } -func (t TestFileInfo) Size() int64 { return 0 } -func (t TestFileInfo) Mode() os.FileMode { return 0 } -func (t TestFileInfo) ModTime() time.Time { return t.time } -func (t TestFileInfo) IsDir() bool { return false } -func (t TestFileInfo) Sys() interface{} { return nil } diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/log.go b/vendor/github.com/elastic/beats/filebeat/input/log/log.go index 29f5f86b..ba13d91b 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/log/log.go +++ b/vendor/github.com/elastic/beats/filebeat/input/log/log.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/prospector_windows_test.go b/vendor/github.com/elastic/beats/filebeat/input/log/prospector_windows_test.go deleted file mode 100644 index 8971c8f9..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/log/prospector_windows_test.go +++ /dev/null @@ -1,71 +0,0 @@ -// +build !integration - -package log - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common/match" -) - -var matchTestsWindows = []struct { - file string - paths []string - excludeFiles []match.Matcher - result bool -}{ - { - `C:\\hello\test\test.log`, - []string{`C:\\hello/test/*.log`}, - nil, - true, - }, - { - `C:\\hello\test\test.log`, - []string{`C:\\hello\test/*.log`}, - nil, - true, - }, - { - `C:\\hello\test\test.log`, - []string{`C://hello/test/*.log`}, - nil, - true, - }, - { - `C:\\hello\test\test.log`, - []string{`C://hello//test//*.log`}, - nil, - true, - }, - { - `C://hello/test/test.log`, - []string{`C:\\hello\test\*.log`}, - nil, - true, - }, - { - `C://hello/test/test.log`, - []string{`C:/hello/test/*.log`}, - nil, - true, - }, -} - -// TestMatchFileWindows test if match works correctly on windows -// Separate test are needed on windows because of automated path conversion -func TestMatchFileWindows(t *testing.T) { - for _, test := range matchTestsWindows { - - p := Input{ - config: config{ - Paths: test.paths, - ExcludeFiles: test.excludeFiles, - }, - } - - assert.Equal(t, test.result, p.matchesFile(test.file)) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/log/stdin.go b/vendor/github.com/elastic/beats/filebeat/input/log/stdin.go index fc60c344..aff8c2b4 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/log/stdin.go +++ b/vendor/github.com/elastic/beats/filebeat/input/log/stdin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/plugin.go b/vendor/github.com/elastic/beats/filebeat/input/plugin.go index 251c8baa..364fa57a 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/plugin.go +++ b/vendor/github.com/elastic/beats/filebeat/input/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 input import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/redis/config.go b/vendor/github.com/elastic/beats/filebeat/input/redis/config.go index 11874702..b5829b6d 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/redis/config.go +++ b/vendor/github.com/elastic/beats/filebeat/input/redis/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/redis/doc.go b/vendor/github.com/elastic/beats/filebeat/input/redis/doc.go index 1f1082e0..57731f76 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/redis/doc.go +++ b/vendor/github.com/elastic/beats/filebeat/input/redis/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis package contains input and harvester to read the redis slow log // // The redis slow log is stored in memory. The slow log can be activate on the redis command line as following: diff --git a/vendor/github.com/elastic/beats/filebeat/input/redis/harvester.go b/vendor/github.com/elastic/beats/filebeat/input/redis/harvester.go index aa9b4711..78bf63ba 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/redis/harvester.go +++ b/vendor/github.com/elastic/beats/filebeat/input/redis/harvester.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis import ( @@ -142,7 +159,7 @@ func (h *Harvester) Run() error { return nil } -// Stop stopps the harvester +// Stop stops the harvester func (h *Harvester) Stop() { close(h.done) } diff --git a/vendor/github.com/elastic/beats/filebeat/input/redis/input.go b/vendor/github.com/elastic/beats/filebeat/input/redis/input.go index a6a06160..51f5a719 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/redis/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/redis/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/registry.go b/vendor/github.com/elastic/beats/filebeat/input/registry.go index e4c3711c..69e2d942 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/registry.go +++ b/vendor/github.com/elastic/beats/filebeat/input/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 input import ( @@ -14,6 +31,7 @@ type Context struct { Done chan struct{} BeatDone chan struct{} DynamicFields *common.MapStrPointer + Meta map[string]string } // Factory is used to register functions creating new Input instances. diff --git a/vendor/github.com/elastic/beats/filebeat/input/registry_test.go b/vendor/github.com/elastic/beats/filebeat/input/registry_test.go deleted file mode 100644 index 69526a70..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/registry_test.go +++ /dev/null @@ -1,56 +0,0 @@ -package input - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/channel" - "github.com/elastic/beats/libbeat/common" -) - -var fakeFactory = func(_ *common.Config, _ channel.Connector, _ Context) (Input, error) { - return nil, nil -} - -func TestAddFactoryEmptyName(t *testing.T) { - err := Register("", nil) - if assert.Error(t, err) { - assert.Equal(t, "Error registering input: name cannot be empty", err.Error()) - } -} - -func TestAddNilFactory(t *testing.T) { - err := Register("name", nil) - if assert.Error(t, err) { - assert.Equal(t, "Error registering input 'name': factory cannot be empty", err.Error()) - } -} - -func TestAddFactoryTwice(t *testing.T) { - err := Register("name", fakeFactory) - if err != nil { - t.Fatal(err) - } - - err = Register("name", fakeFactory) - if assert.Error(t, err) { - assert.Equal(t, "Error registering input 'name': already registered", err.Error()) - } -} - -func TestGetFactory(t *testing.T) { - f, err := GetFactory("name") - if err != nil { - t.Fatal(err) - } - assert.NotNil(t, f) -} - -func TestGetNonExistentFactory(t *testing.T) { - f, err := GetFactory("noSuchFactory") - assert.Nil(t, f) - if assert.Error(t, err) { - assert.Equal(t, "Error creating input. No such input type exist: 'noSuchFactory'", err.Error()) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/runnerfactory.go b/vendor/github.com/elastic/beats/filebeat/input/runnerfactory.go index fabeb146..19b2b246 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/runnerfactory.go +++ b/vendor/github.com/elastic/beats/filebeat/input/runnerfactory.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 input import ( @@ -39,3 +56,9 @@ func (r *RunnerFactory) Create( return p, nil } + +// CheckConfig checks if a config is valid or not +func (r *RunnerFactory) CheckConfig(config *common.Config) error { + // TODO: add code here once we know that spinning up a filebeat input to check for errors doesn't cause memory leaks. + return nil +} diff --git a/vendor/github.com/elastic/beats/filebeat/input/stdin/input.go b/vendor/github.com/elastic/beats/filebeat/input/stdin/input.go index b11ef4ec..00fb59d8 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/stdin/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/stdin/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stdin import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/config.go b/vendor/github.com/elastic/beats/filebeat/input/syslog/config.go index 1a3b12a1..f21d7711 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/config.go +++ b/vendor/github.com/elastic/beats/filebeat/input/syslog/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 syslog import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/event.go b/vendor/github.com/elastic/beats/filebeat/input/syslog/event.go index e7ff847d..9280118b 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/event.go +++ b/vendor/github.com/elastic/beats/filebeat/input/syslog/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 syslog import ( @@ -70,6 +87,37 @@ func newEvent() *event { } } +// SetTimeZone set the timezone offset from the string. +func (s *event) SetTimeZone(b []byte) { + // We assume that we are in utc and ignore any other bytes after. + // This can be followed by others bytes +00, +00:00 or +0000. + if b[0] == 'Z' || b[0] == 'z' { + s.loc = time.UTC + return + } + + d := 1 + if b[0] == '-' { + d = -1 + } + + // +00 +00:00 or +0000 + var h, m int + switch len(b[1:]) { + case 2: + h = int(time.Hour * time.Duration(bytesToInt(skipLeadZero(b[1:])))) + s.loc = time.FixedZone("", d*h) + case 4: + h = int(time.Hour * time.Duration(bytesToInt(skipLeadZero(b[1:3])))) + m = int(time.Minute * time.Duration(bytesToInt(skipLeadZero(b[3:5])))) + s.loc = time.FixedZone("", d*(h+m)) + case 5: + h = int(time.Hour * time.Duration(bytesToInt(skipLeadZero(b[1:3])))) + m = int(time.Minute * time.Duration(bytesToInt(skipLeadZero(b[4:6])))) + s.loc = time.FixedZone("", d*(h+m)) + } +} + // SetMonthNumeric sets the month with a number. func (s *event) SetMonthNumeric(b []byte) { s.month = monthIndexed[bytesToInt(skipLeadZero(b))] @@ -237,6 +285,13 @@ func (s *event) Nanosecond() int { // Timestamp return the timestamp in UTC. func (s *event) Timestamp(timezone *time.Location) time.Time { + var t *time.Location + if s.loc == nil { + t = timezone + } else { + t = s.loc + } + return time.Date( s.Year(), s.Month(), @@ -245,7 +300,7 @@ func (s *event) Timestamp(timezone *time.Location) time.Time { s.Minute(), s.Second(), s.Nanosecond(), - timezone, + t, ).UTC() } diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/event_test.go b/vendor/github.com/elastic/beats/filebeat/input/syslog/event_test.go deleted file mode 100644 index 25a58253..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/event_test.go +++ /dev/null @@ -1,91 +0,0 @@ -package syslog - -import ( - "fmt" - "strconv" - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestSeverity(t *testing.T) { - e := newEvent() - e.SetPriority([]byte("13")) - assert.Equal(t, 5, e.Severity()) -} - -func TestFacility(t *testing.T) { - e := newEvent() - e.SetPriority([]byte("13")) - assert.Equal(t, 1, e.Facility()) -} - -func TestHasPriority(t *testing.T) { - e := newEvent() - e.SetPriority([]byte("13")) - assert.True(t, e.HasPriority()) - assert.Equal(t, 13, e.Priority()) - assert.Equal(t, 5, e.Severity()) - assert.Equal(t, 1, e.Facility()) -} - -func TestNoPrioritySet(t *testing.T) { - e := newEvent() - assert.False(t, e.HasPriority()) - assert.Equal(t, -1, e.Priority()) - assert.Equal(t, -1, e.Severity()) - assert.Equal(t, -1, e.Facility()) -} - -func TestHasPid(t *testing.T) { - e := newEvent() - assert.False(t, e.HasPid()) - e.SetPid([]byte(strconv.Itoa(20))) - assert.True(t, e.HasPid()) -} - -func TestDateParsing(t *testing.T) { - now := time.Now() - e := newEvent() - e.SetDay(itb(now.Day())) - e.SetMonth([]byte(now.Month().String())) - e.SetHour(itb(now.Hour())) - e.SetMinute(itb(now.Minute())) - e.SetSecond(itb(now.Second())) - e.SetNanosecond(itb(now.Nanosecond())) - new := e.Timestamp(time.Local) - assert.Equal(t, now.UTC(), new) -} - -func TestIsValid(t *testing.T) { - e := newEvent() - assert.False(t, e.IsValid()) - - now := time.Now() - - e.SetDay(itb(now.Day())) - assert.False(t, e.IsValid()) - - e.SetMonth([]byte(now.Month().String())) - assert.False(t, e.IsValid()) - - e.SetHour(itb(now.Hour())) - assert.False(t, e.IsValid()) - - e.SetMinute(itb(now.Minute())) - assert.False(t, e.IsValid()) - - e.SetSecond(itb(now.Second())) - assert.False(t, e.IsValid()) - - e.SetMessage([]byte("hello world")) - assert.True(t, e.IsValid()) -} - -func itb(i int) []byte { - if i < 10 { - return []byte(fmt.Sprintf("0%d", i)) - } - return []byte(strconv.Itoa(i)) -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/input.go b/vendor/github.com/elastic/beats/filebeat/input/syslog/input.go index 4eb9d769..d8f7dde5 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/syslog/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 syslog import ( @@ -25,7 +42,7 @@ import ( // defined in https://tools.ietf.org/html/rfc3164#section-4.1.1. // // Example: -// 2 => "Critial" +// 2 => "Critical" type mapper []string var ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/input_test.go b/vendor/github.com/elastic/beats/filebeat/input/syslog/input_test.go deleted file mode 100644 index be58cdab..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/input_test.go +++ /dev/null @@ -1,157 +0,0 @@ -package syslog - -import ( - "net" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/inputsource" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -func TestWhenPriorityIsSet(t *testing.T) { - e := newEvent() - e.SetPriority([]byte("13")) - e.SetMessage([]byte("hello world")) - e.SetHostname([]byte("wopr")) - e.SetPid([]byte("123")) - - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - - expected := common.MapStr{ - "source": "127.0.0.1", - "message": "hello world", - "hostname": "wopr", - "process": common.MapStr{ - "pid": 123, - }, - "event": common.MapStr{ - "severity": 5, - }, - "syslog": common.MapStr{ - "facility": 1, - "severity_label": "Notice", - "facility_label": "user-level", - "priority": 13, - }, - } - - assert.Equal(t, expected, event.Fields) -} - -func TestWhenPriorityIsNotSet(t *testing.T) { - e := newEvent() - e.SetMessage([]byte("hello world")) - e.SetHostname([]byte("wopr")) - e.SetPid([]byte("123")) - - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - expected := common.MapStr{ - "source": "127.0.0.1", - "message": "hello world", - "hostname": "wopr", - "process": common.MapStr{ - "pid": 123, - }, - "event": common.MapStr{}, - "syslog": common.MapStr{}, - } - - assert.Equal(t, expected, event.Fields) -} - -func TestPid(t *testing.T) { - t.Run("is set", func(t *testing.T) { - e := newEvent() - e.SetMessage([]byte("hello world")) - e.SetPid([]byte("123")) - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - v, err := event.GetValue("process") - if !assert.NoError(t, err) { - return - } - assert.Equal(t, common.MapStr{"pid": 123}, v) - }) - - t.Run("is not set", func(t *testing.T) { - e := newEvent() - e.SetMessage([]byte("hello world")) - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - - v, err := event.GetValue("process") - if !assert.NoError(t, err) { - return - } - assert.Equal(t, common.MapStr{}, v) - }) -} - -func TestHostname(t *testing.T) { - t.Run("is set", func(t *testing.T) { - e := newEvent() - e.SetMessage([]byte("hello world")) - e.SetHostname([]byte("wopr")) - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - v, err := event.GetValue("hostname") - if !assert.NoError(t, err) { - return - } - assert.Equal(t, "wopr", v) - }) - - t.Run("is not set", func(t *testing.T) { - e := newEvent() - e.SetMessage([]byte("hello world")) - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - - _, err := event.GetValue("hostname") - if !assert.Error(t, err) { - return - } - }) -} - -func TestProgram(t *testing.T) { - t.Run("is set", func(t *testing.T) { - e := newEvent() - e.SetMessage([]byte("hello world")) - e.SetProgram([]byte("sudo")) - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - v, err := event.GetValue("process") - if !assert.NoError(t, err) { - return - } - assert.Equal(t, common.MapStr{"program": "sudo"}, v) - }) - - t.Run("is not set", func(t *testing.T) { - e := newEvent() - e.SetMessage([]byte("hello world")) - m := dummyMetadata() - event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) - - v, err := event.GetValue("process") - if !assert.NoError(t, err) { - return - } - - assert.Equal(t, common.MapStr{}, v) - }) -} - -func dummyMetadata() inputsource.NetworkMetadata { - ip := "127.0.0.1" - parsedIP := net.ParseIP(ip) - addr := &net.IPAddr{IP: parsedIP, Zone: ""} - return inputsource.NetworkMetadata{RemoteAddr: addr} -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.go b/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.go index 7eac6054..a59058be 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.go +++ b/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + //line parser.rl:1 // Code generated by ragel DO NOT EDIT. @@ -21,12 +38,12 @@ func Parse(data []byte, event *event) { tok := 0 eof := len(data) -//line parser.go:28 + //line parser.go:28 { cs = syslog_start } -//line parser.go:33 + //line parser.go:33 { if (p) == (pe) { goto _test_eof @@ -206,6 +223,44 @@ func Parse(data []byte, event *event) { goto st_case_85 case 86: goto st_case_86 + case 87: + goto st_case_87 + case 88: + goto st_case_88 + case 89: + goto st_case_89 + case 90: + goto st_case_90 + case 91: + goto st_case_91 + case 92: + goto st_case_92 + case 93: + goto st_case_93 + case 94: + goto st_case_94 + case 95: + goto st_case_95 + case 96: + goto st_case_96 + case 97: + goto st_case_97 + case 98: + goto st_case_98 + case 99: + goto st_case_99 + case 100: + goto st_case_100 + case 101: + goto st_case_101 + case 102: + goto st_case_102 + case 103: + goto st_case_103 + case 104: + goto st_case_104 + case 105: + goto st_case_105 } goto st_out st_case_0: @@ -234,7 +289,8 @@ func Parse(data []byte, event *event) { } goto tr0 tr0: -//line parser.rl:20 + //line parser.rl:20 + tok = p goto st1 @@ -243,10 +299,11 @@ func Parse(data []byte, event *event) { goto _test_eof1 } st_case_1: -//line parser.go:251 + //line parser.go:289 goto st1 tr1: -//line parser.rl:20 + //line parser.rl:20 + tok = p goto st2 @@ -255,7 +312,7 @@ func Parse(data []byte, event *event) { goto _test_eof2 } st_case_2: -//line parser.go:264 + //line parser.go:302 if 48 <= data[(p)] && data[(p)] <= 57 { goto st3 } @@ -288,7 +345,8 @@ func Parse(data []byte, event *event) { } goto st1 tr15: -//line parser.rl:36 + //line parser.rl:36 + event.SetYear(data[tok:p]) goto st6 @@ -297,13 +355,14 @@ func Parse(data []byte, event *event) { goto _test_eof6 } st_case_6: -//line parser.go:307 + //line parser.go:345 if 48 <= data[(p)] && data[(p)] <= 57 { goto tr16 } goto st1 tr16: -//line parser.rl:20 + //line parser.rl:20 + tok = p goto st7 @@ -312,7 +371,7 @@ func Parse(data []byte, event *event) { goto _test_eof7 } st_case_7: -//line parser.go:323 + //line parser.go:361 if 48 <= data[(p)] && data[(p)] <= 57 { goto st8 } @@ -327,7 +386,8 @@ func Parse(data []byte, event *event) { } goto st1 tr18: -//line parser.rl:40 + //line parser.rl:40 + event.SetMonthNumeric(data[tok:p]) goto st9 @@ -336,13 +396,14 @@ func Parse(data []byte, event *event) { goto _test_eof9 } st_case_9: -//line parser.go:348 + //line parser.go:386 if 48 <= data[(p)] && data[(p)] <= 51 { goto tr19 } goto st1 tr19: -//line parser.rl:20 + //line parser.rl:20 + tok = p goto st10 @@ -351,7 +412,7 @@ func Parse(data []byte, event *event) { goto _test_eof10 } st_case_10: -//line parser.go:364 + //line parser.go:402 if 48 <= data[(p)] && data[(p)] <= 57 { goto st11 } @@ -361,12 +422,21 @@ func Parse(data []byte, event *event) { goto _test_eof11 } st_case_11: - if data[(p)] == 84 { + switch data[(p)] { + case 32: + goto tr21 + case 84: + goto tr21 + case 116: + goto tr21 + } + if 9 <= data[(p)] && data[(p)] <= 13 { goto tr21 } goto st1 tr21: -//line parser.rl:44 + //line parser.rl:44 + event.SetDay(data[tok:p]) goto st12 @@ -375,7 +445,7 @@ func Parse(data []byte, event *event) { goto _test_eof12 } st_case_12: -//line parser.go:389 + //line parser.go:435 if data[(p)] == 50 { goto tr23 } @@ -384,7 +454,8 @@ func Parse(data []byte, event *event) { } goto st1 tr22: -//line parser.rl:20 + //line parser.rl:20 + tok = p goto st13 @@ -393,7 +464,7 @@ func Parse(data []byte, event *event) { goto _test_eof13 } st_case_13: -//line parser.go:408 + //line parser.go:454 if 48 <= data[(p)] && data[(p)] <= 57 { goto st14 } @@ -408,7 +479,8 @@ func Parse(data []byte, event *event) { } goto st1 tr25: -//line parser.rl:48 + //line parser.rl:48 + event.SetHour(data[tok:p]) goto st15 @@ -417,13 +489,14 @@ func Parse(data []byte, event *event) { goto _test_eof15 } st_case_15: -//line parser.go:433 + //line parser.go:479 if 48 <= data[(p)] && data[(p)] <= 53 { goto tr26 } goto st1 tr26: -//line parser.rl:20 + //line parser.rl:20 + tok = p goto st16 @@ -432,7 +505,7 @@ func Parse(data []byte, event *event) { goto _test_eof16 } st_case_16: -//line parser.go:449 + //line parser.go:495 if 48 <= data[(p)] && data[(p)] <= 57 { goto st17 } @@ -447,7 +520,8 @@ func Parse(data []byte, event *event) { } goto st1 tr28: -//line parser.rl:52 + //line parser.rl:52 + event.SetMinute(data[tok:p]) goto st18 @@ -456,13 +530,14 @@ func Parse(data []byte, event *event) { goto _test_eof18 } st_case_18: -//line parser.go:474 + //line parser.go:520 if 48 <= data[(p)] && data[(p)] <= 53 { goto tr29 } goto st1 tr29: -//line parser.rl:20 + //line parser.rl:20 + tok = p goto st19 @@ -471,7 +546,7 @@ func Parse(data []byte, event *event) { goto _test_eof19 } st_case_19: -//line parser.go:490 + //line parser.go:536 if 48 <= data[(p)] && data[(p)] <= 57 { goto st20 } @@ -484,20 +559,36 @@ func Parse(data []byte, event *event) { switch data[(p)] { case 32: goto tr31 - case 46: + case 43: + goto tr32 + case 45: goto tr32 + case 46: + goto tr33 + case 90: + goto tr34 + case 122: + goto tr34 } if 9 <= data[(p)] && data[(p)] <= 13 { goto tr31 } goto st1 tr31: -//line parser.rl:56 + //line parser.rl:56 + event.SetSecond(data[tok:p]) goto st21 - tr46: -//line parser.rl:60 + tr49: + //line parser.rl:76 + + event.SetTimeZone(data[tok:p]) + + goto st21 + tr54: + //line parser.rl:60 + event.SetNanosecond(data[tok:p]) goto st21 @@ -506,18 +597,19 @@ func Parse(data []byte, event *event) { goto _test_eof21 } st_case_21: -//line parser.go:527 + //line parser.go:587 switch { case data[(p)] > 95: if 97 <= data[(p)] && data[(p)] <= 122 { - goto tr33 + goto tr35 } case data[(p)] >= 46: - goto tr33 + goto tr35 } goto tr0 - tr33: -//line parser.rl:20 + tr35: + //line parser.rl:20 + tok = p goto st22 @@ -526,14 +618,14 @@ func Parse(data []byte, event *event) { goto _test_eof22 } st_case_22: -//line parser.go:548 + //line parser.go:608 if data[(p)] == 32 { - goto tr34 + goto tr36 } switch { case data[(p)] < 46: if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr34 + goto tr36 } case data[(p)] > 95: if 97 <= data[(p)] && data[(p)] <= 122 { @@ -543,8 +635,9 @@ func Parse(data []byte, event *event) { goto st22 } goto st1 - tr34: -//line parser.rl:64 + tr36: + //line parser.rl:64 + event.SetHostname(data[tok:p]) goto st23 @@ -553,7 +646,7 @@ func Parse(data []byte, event *event) { goto _test_eof23 } st_case_23: -//line parser.go:576 + //line parser.go:636 switch data[(p)] { case 32: goto tr0 @@ -565,9 +658,10 @@ func Parse(data []byte, event *event) { if 9 <= data[(p)] && data[(p)] <= 13 { goto tr0 } - goto tr36 - tr36: -//line parser.rl:20 + goto tr38 + tr38: + //line parser.rl:20 + tok = p goto st24 @@ -576,14 +670,14 @@ func Parse(data []byte, event *event) { goto _test_eof24 } st_case_24: -//line parser.go:600 + //line parser.go:660 switch data[(p)] { case 32: goto st1 case 58: - goto tr38 + goto tr40 case 91: - goto tr39 + goto tr41 case 93: goto st1 } @@ -591,8 +685,9 @@ func Parse(data []byte, event *event) { goto st1 } goto st24 - tr38: -//line parser.rl:68 + tr40: + //line parser.rl:68 + event.SetProgram(data[tok:p]) goto st25 @@ -601,14 +696,14 @@ func Parse(data []byte, event *event) { goto _test_eof25 } st_case_25: -//line parser.go:626 + //line parser.go:686 switch data[(p)] { case 32: goto st26 case 58: - goto tr38 + goto tr40 case 91: - goto tr39 + goto tr41 case 93: goto st1 } @@ -622,8 +717,9 @@ func Parse(data []byte, event *event) { } st_case_26: goto tr0 - tr39: -//line parser.rl:68 + tr41: + //line parser.rl:68 + event.SetProgram(data[tok:p]) goto st27 @@ -632,13 +728,14 @@ func Parse(data []byte, event *event) { goto _test_eof27 } st_case_27: -//line parser.go:658 + //line parser.go:718 if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr41 + goto tr43 } goto st1 - tr41: -//line parser.rl:20 + tr43: + //line parser.rl:20 + tok = p goto st28 @@ -647,16 +744,17 @@ func Parse(data []byte, event *event) { goto _test_eof28 } st_case_28: -//line parser.go:674 + //line parser.go:734 if data[(p)] == 93 { - goto tr43 + goto tr45 } if 48 <= data[(p)] && data[(p)] <= 57 { goto st28 } goto st1 - tr43: -//line parser.rl:72 + tr45: + //line parser.rl:72 + event.SetPid(data[tok:p]) goto st29 @@ -665,7 +763,7 @@ func Parse(data []byte, event *event) { goto _test_eof29 } st_case_29: -//line parser.go:693 + //line parser.go:753 if data[(p)] == 58 { goto st30 } @@ -683,89 +781,83 @@ func Parse(data []byte, event *event) { } goto st1 tr32: -//line parser.rl:56 + //line parser.rl:56 + event.SetSecond(data[tok:p]) + //line parser.rl:20 + + tok = p + + goto st31 + tr55: + //line parser.rl:60 + + event.SetNanosecond(data[tok:p]) + + //line parser.rl:20 + + tok = p + goto st31 st31: if (p)++; (p) == (pe) { goto _test_eof31 } st_case_31: -//line parser.go:721 + //line parser.go:795 if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr45 + goto st32 } goto st1 - tr45: -//line parser.rl:20 - tok = p - - goto st32 st32: if (p)++; (p) == (pe) { goto _test_eof32 } st_case_32: -//line parser.go:737 - if data[(p)] == 32 { - goto tr46 - } - switch { - case data[(p)] > 13: - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st32 - } - case data[(p)] >= 9: - goto tr46 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st33 } goto st1 - tr23: -//line parser.rl:20 - tok = p - - goto st33 st33: if (p)++; (p) == (pe) { goto _test_eof33 } st_case_33: -//line parser.go:761 - if 48 <= data[(p)] && data[(p)] <= 51 { - goto st14 + switch data[(p)] { + case 32: + goto tr49 + case 58: + goto st36 + } + switch { + case data[(p)] > 13: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st34 + } + case data[(p)] >= 9: + goto tr49 } goto st1 - tr2: -//line parser.rl:20 - tok = p - - goto st34 st34: if (p)++; (p) == (pe) { goto _test_eof34 } st_case_34: -//line parser.go:777 if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr48 + goto st35 } goto st1 - tr48: -//line parser.rl:20 - tok = p - - goto st35 st35: if (p)++; (p) == (pe) { goto _test_eof35 } st_case_35: -//line parser.go:793 - if data[(p)] == 62 { - goto tr50 + if data[(p)] == 32 { + goto tr49 } - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st36 + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr49 } goto st1 st36: @@ -773,49 +865,101 @@ func Parse(data []byte, event *event) { goto _test_eof36 } st_case_36: - if data[(p)] == 62 { - goto tr50 - } if 48 <= data[(p)] && data[(p)] <= 57 { - goto st37 + goto st34 } goto st1 + tr33: + //line parser.rl:56 + + event.SetSecond(data[tok:p]) + + goto st37 st37: if (p)++; (p) == (pe) { goto _test_eof37 } st_case_37: - if data[(p)] == 62 { - goto tr50 - } + //line parser.go:870 if 48 <= data[(p)] && data[(p)] <= 57 { - goto st38 + goto tr53 } goto st1 + tr53: + //line parser.rl:20 + + tok = p + + goto st38 st38: if (p)++; (p) == (pe) { goto _test_eof38 } st_case_38: - if data[(p)] == 62 { - goto tr50 + //line parser.go:886 + switch data[(p)] { + case 32: + goto tr54 + case 43: + goto tr55 + case 45: + goto tr55 + case 90: + goto tr57 + case 122: + goto tr57 } - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st39 + switch { + case data[(p)] > 13: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st38 + } + case data[(p)] >= 9: + goto tr54 } goto st1 + tr34: + //line parser.rl:56 + + event.SetSecond(data[tok:p]) + + //line parser.rl:20 + + tok = p + + goto st39 + tr57: + //line parser.rl:60 + + event.SetNanosecond(data[tok:p]) + + //line parser.rl:20 + + tok = p + + goto st39 st39: if (p)++; (p) == (pe) { goto _test_eof39 } st_case_39: - if data[(p)] == 62 { - goto tr50 + //line parser.go:933 + switch data[(p)] { + case 32: + goto tr49 + case 43: + goto st31 + case 45: + goto st31 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr49 } goto st1 - tr50: -//line parser.rl:24 - event.SetPriority(data[tok:p]) + tr23: + //line parser.rl:20 + + tok = p goto st40 st40: @@ -823,31 +967,14 @@ func Parse(data []byte, event *event) { goto _test_eof40 } st_case_40: -//line parser.go:857 - switch data[(p)] { - case 65: - goto tr3 - case 70: - goto tr4 - case 74: - goto tr5 - case 77: - goto tr6 - case 78: - goto tr7 - case 79: - goto tr8 - case 83: - goto tr9 - case 101: - goto tr10 - } - if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr1 + //line parser.go:957 + if 48 <= data[(p)] && data[(p)] <= 51 { + goto st14 } - goto tr0 - tr3: -//line parser.rl:20 + goto st1 + tr2: + //line parser.rl:20 + tok = p goto st41 @@ -856,20 +983,27 @@ func Parse(data []byte, event *event) { goto _test_eof41 } st_case_41: -//line parser.go:891 - switch data[(p)] { - case 112: - goto st42 - case 117: - goto st51 + //line parser.go:973 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto tr59 } goto st1 + tr59: + //line parser.rl:20 + + tok = p + + goto st42 st42: if (p)++; (p) == (pe) { goto _test_eof42 } st_case_42: - if data[(p)] == 114 { + //line parser.go:989 + if data[(p)] == 62 { + goto tr61 + } + if 48 <= data[(p)] && data[(p)] <= 57 { goto st43 } goto st1 @@ -878,44 +1012,23 @@ func Parse(data []byte, event *event) { goto _test_eof43 } st_case_43: - switch data[(p)] { - case 32: - goto tr57 - case 105: - goto st49 + if data[(p)] == 62 { + goto tr61 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st44 } goto st1 - tr57: -//line parser.rl:32 - event.SetMonth(data[tok:p]) - - goto st44 st44: if (p)++; (p) == (pe) { goto _test_eof44 } st_case_44: -//line parser.go:934 - switch data[(p)] { - case 32: - goto st45 - case 51: + if data[(p)] == 62 { goto tr61 } - switch { - case data[(p)] < 49: - if 9 <= data[(p)] && data[(p)] <= 13 { - goto st45 - } - case data[(p)] > 50: - if 52 <= data[(p)] && data[(p)] <= 57 { - goto tr62 - } - default: - goto tr60 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st45 } goto st1 st45: @@ -923,31 +1036,26 @@ func Parse(data []byte, event *event) { goto _test_eof45 } st_case_45: - if 49 <= data[(p)] && data[(p)] <= 57 { - goto tr62 + if data[(p)] == 62 { + goto tr61 + } + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st46 } goto st1 - tr62: -//line parser.rl:20 - tok = p - - goto st46 st46: if (p)++; (p) == (pe) { goto _test_eof46 } st_case_46: -//line parser.go:974 - if data[(p)] == 32 { - goto tr21 - } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr21 + if data[(p)] == 62 { + goto tr61 } goto st1 - tr60: -//line parser.rl:20 - tok = p + tr61: + //line parser.rl:24 + + event.SetPriority(data[tok:p]) goto st47 st47: @@ -955,21 +1063,32 @@ func Parse(data []byte, event *event) { goto _test_eof47 } st_case_47: -//line parser.go:993 - if data[(p)] == 32 { - goto tr21 - } - switch { - case data[(p)] > 13: - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st46 - } - case data[(p)] >= 9: - goto tr21 + //line parser.go:1053 + switch data[(p)] { + case 65: + goto tr3 + case 70: + goto tr4 + case 74: + goto tr5 + case 77: + goto tr6 + case 78: + goto tr7 + case 79: + goto tr8 + case 83: + goto tr9 + case 101: + goto tr10 } - goto st1 - tr61: -//line parser.rl:20 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto tr1 + } + goto tr0 + tr3: + //line parser.rl:20 + tok = p goto st48 @@ -978,17 +1097,12 @@ func Parse(data []byte, event *event) { goto _test_eof48 } st_case_48: -//line parser.go:1017 - if data[(p)] == 32 { - goto tr21 - } - switch { - case data[(p)] > 13: - if 48 <= data[(p)] && data[(p)] <= 49 { - goto st46 - } - case data[(p)] >= 9: - goto tr21 + //line parser.go:1087 + switch data[(p)] { + case 112: + goto st49 + case 117: + goto st70 } goto st1 st49: @@ -996,7 +1110,7 @@ func Parse(data []byte, event *event) { goto _test_eof49 } st_case_49: - if data[(p)] == 108 { + if data[(p)] == 114 { goto st50 } goto st1 @@ -1005,20 +1119,45 @@ func Parse(data []byte, event *event) { goto _test_eof50 } st_case_50: - if data[(p)] == 32 { - goto tr57 + switch data[(p)] { + case 32: + goto tr68 + case 105: + goto st68 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + goto tr68 } goto st1 + tr68: + //line parser.rl:32 + + event.SetMonth(data[tok:p]) + + goto st51 st51: if (p)++; (p) == (pe) { goto _test_eof51 } st_case_51: - if data[(p)] == 103 { + //line parser.go:1130 + switch data[(p)] { + case 32: goto st52 + case 51: + goto tr72 + } + switch { + case data[(p)] < 49: + if 9 <= data[(p)] && data[(p)] <= 13 { + goto st52 + } + case data[(p)] > 50: + if 52 <= data[(p)] && data[(p)] <= 57 { + goto tr73 + } + default: + goto tr71 } goto st1 st52: @@ -1026,36 +1165,51 @@ func Parse(data []byte, event *event) { goto _test_eof52 } st_case_52: - switch data[(p)] { - case 32: - goto tr57 - case 117: - goto st53 - } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + if 49 <= data[(p)] && data[(p)] <= 57 { + goto tr73 } goto st1 + tr73: + //line parser.rl:20 + + tok = p + + goto st53 st53: if (p)++; (p) == (pe) { goto _test_eof53 } st_case_53: - if data[(p)] == 115 { - goto st54 + //line parser.go:1170 + if data[(p)] == 32 { + goto tr74 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr74 } goto st1 + tr74: + //line parser.rl:44 + + event.SetDay(data[tok:p]) + + goto st54 st54: if (p)++; (p) == (pe) { goto _test_eof54 } st_case_54: - if data[(p)] == 116 { - goto st50 + //line parser.go:1189 + if data[(p)] == 50 { + goto tr76 + } + if 48 <= data[(p)] && data[(p)] <= 49 { + goto tr75 } goto st1 - tr4: -//line parser.rl:20 + tr75: + //line parser.rl:20 + tok = p goto st55 @@ -1064,8 +1218,8 @@ func Parse(data []byte, event *event) { goto _test_eof55 } st_case_55: -//line parser.go:1104 - if data[(p)] == 101 { + //line parser.go:1208 + if 48 <= data[(p)] && data[(p)] <= 57 { goto st56 } goto st1 @@ -1074,31 +1228,39 @@ func Parse(data []byte, event *event) { goto _test_eof56 } st_case_56: - if data[(p)] == 98 { - goto st57 + if data[(p)] == 58 { + goto tr78 } goto st1 + tr78: + //line parser.rl:48 + + event.SetHour(data[tok:p]) + + goto st57 st57: if (p)++; (p) == (pe) { goto _test_eof57 } st_case_57: - switch data[(p)] { - case 32: - goto tr57 - case 114: - goto st58 - } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + //line parser.go:1233 + if 48 <= data[(p)] && data[(p)] <= 53 { + goto tr79 } goto st1 + tr79: + //line parser.rl:20 + + tok = p + + goto st58 st58: if (p)++; (p) == (pe) { goto _test_eof58 } st_case_58: - if data[(p)] == 117 { + //line parser.go:1249 + if 48 <= data[(p)] && data[(p)] <= 57 { goto st59 } goto st1 @@ -1107,124 +1269,167 @@ func Parse(data []byte, event *event) { goto _test_eof59 } st_case_59: - if data[(p)] == 97 { - goto st60 + if data[(p)] == 58 { + goto tr81 } goto st1 + tr81: + //line parser.rl:52 + + event.SetMinute(data[tok:p]) + + goto st60 st60: if (p)++; (p) == (pe) { goto _test_eof60 } st_case_60: - if data[(p)] == 114 { - goto st61 + //line parser.go:1274 + if 48 <= data[(p)] && data[(p)] <= 53 { + goto tr82 } goto st1 + tr82: + //line parser.rl:20 + + tok = p + + goto st61 st61: if (p)++; (p) == (pe) { goto _test_eof61 } st_case_61: - if data[(p)] == 121 { - goto st50 + //line parser.go:1290 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st62 } goto st1 - tr5: -//line parser.rl:20 - tok = p - - goto st62 st62: if (p)++; (p) == (pe) { goto _test_eof62 } st_case_62: -//line parser.go:1180 switch data[(p)] { - case 97: - goto st63 - case 117: - goto st65 + case 32: + goto tr31 + case 46: + goto tr84 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr31 } goto st1 + tr84: + //line parser.rl:56 + + event.SetSecond(data[tok:p]) + + goto st63 st63: if (p)++; (p) == (pe) { goto _test_eof63 } st_case_63: - if data[(p)] == 110 { - goto st64 + //line parser.go:1321 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto tr85 } goto st1 + tr85: + //line parser.rl:20 + + tok = p + + goto st64 st64: if (p)++; (p) == (pe) { goto _test_eof64 } st_case_64: - switch data[(p)] { - case 32: - goto tr57 - case 117: - goto st59 + //line parser.go:1337 + if data[(p)] == 32 { + goto tr54 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + switch { + case data[(p)] > 13: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st64 + } + case data[(p)] >= 9: + goto tr54 } goto st1 + tr76: + //line parser.rl:20 + + tok = p + + goto st65 st65: if (p)++; (p) == (pe) { goto _test_eof65 } st_case_65: - switch data[(p)] { - case 108: - goto st66 - case 110: - goto st67 + //line parser.go:1361 + if 48 <= data[(p)] && data[(p)] <= 51 { + goto st56 } goto st1 + tr71: + //line parser.rl:20 + + tok = p + + goto st66 st66: if (p)++; (p) == (pe) { goto _test_eof66 } st_case_66: - switch data[(p)] { - case 32: - goto tr57 - case 121: - goto st50 + //line parser.go:1377 + if data[(p)] == 32 { + goto tr74 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + switch { + case data[(p)] > 13: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st53 + } + case data[(p)] >= 9: + goto tr74 } goto st1 + tr72: + //line parser.rl:20 + + tok = p + + goto st67 st67: if (p)++; (p) == (pe) { goto _test_eof67 } st_case_67: - switch data[(p)] { - case 32: - goto tr57 - case 101: - goto st50 + //line parser.go:1401 + if data[(p)] == 32 { + goto tr74 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + switch { + case data[(p)] > 13: + if 48 <= data[(p)] && data[(p)] <= 49 { + goto st53 + } + case data[(p)] >= 9: + goto tr74 } goto st1 - tr6: -//line parser.rl:20 - tok = p - - goto st68 st68: if (p)++; (p) == (pe) { goto _test_eof68 } st_case_68: -//line parser.go:1265 - if data[(p)] == 97 { + if data[(p)] == 108 { goto st69 } goto st1 @@ -1233,16 +1438,11 @@ func Parse(data []byte, event *event) { goto _test_eof69 } st_case_69: - switch data[(p)] { - case 32: - goto tr57 - case 114: - goto st70 - case 121: - goto st50 + if data[(p)] == 32 { + goto tr68 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + goto tr68 } goto st1 st70: @@ -1250,37 +1450,31 @@ func Parse(data []byte, event *event) { goto _test_eof70 } st_case_70: - switch data[(p)] { - case 32: - goto tr57 - case 99: + if data[(p)] == 103 { goto st71 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 - } goto st1 st71: if (p)++; (p) == (pe) { goto _test_eof71 } st_case_71: - if data[(p)] == 104 { - goto st50 + switch data[(p)] { + case 32: + goto tr68 + case 117: + goto st72 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 } goto st1 - tr7: -//line parser.rl:20 - tok = p - - goto st72 st72: if (p)++; (p) == (pe) { goto _test_eof72 } st_case_72: -//line parser.go:1322 - if data[(p)] == 111 { + if data[(p)] == 115 { goto st73 } goto st1 @@ -1289,31 +1483,32 @@ func Parse(data []byte, event *event) { goto _test_eof73 } st_case_73: - if data[(p)] == 118 { - goto st74 + if data[(p)] == 116 { + goto st69 } goto st1 + tr4: + //line parser.rl:20 + + tok = p + + goto st74 st74: if (p)++; (p) == (pe) { goto _test_eof74 } st_case_74: - switch data[(p)] { - case 32: - goto tr57 - case 101: + //line parser.go:1488 + if data[(p)] == 101 { goto st75 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 - } goto st1 st75: if (p)++; (p) == (pe) { goto _test_eof75 } st_case_75: - if data[(p)] == 109 { + if data[(p)] == 98 { goto st76 } goto st1 @@ -1322,16 +1517,22 @@ func Parse(data []byte, event *event) { goto _test_eof76 } st_case_76: - if data[(p)] == 98 { + switch data[(p)] { + case 32: + goto tr68 + case 114: goto st77 } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } goto st1 st77: if (p)++; (p) == (pe) { goto _test_eof77 } st_case_77: - if data[(p)] == 101 { + if data[(p)] == 117 { goto st78 } goto st1 @@ -1340,22 +1541,16 @@ func Parse(data []byte, event *event) { goto _test_eof78 } st_case_78: - if data[(p)] == 114 { - goto st50 + if data[(p)] == 97 { + goto st79 } goto st1 - tr8: -//line parser.rl:20 - tok = p - - goto st79 st79: if (p)++; (p) == (pe) { goto _test_eof79 } st_case_79: -//line parser.go:1398 - if data[(p)] == 99 { + if data[(p)] == 114 { goto st80 } goto st1 @@ -1364,37 +1559,35 @@ func Parse(data []byte, event *event) { goto _test_eof80 } st_case_80: - if data[(p)] == 116 { - goto st81 + if data[(p)] == 121 { + goto st69 } goto st1 + tr5: + //line parser.rl:20 + + tok = p + + goto st81 st81: if (p)++; (p) == (pe) { goto _test_eof81 } st_case_81: + //line parser.go:1564 switch data[(p)] { - case 32: - goto tr57 - case 111: - goto st76 - } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + case 97: + goto st82 + case 117: + goto st84 } goto st1 - tr9: -//line parser.rl:20 - tok = p - - goto st82 st82: if (p)++; (p) == (pe) { goto _test_eof82 } st_case_82: -//line parser.go:1438 - if data[(p)] == 101 { + if data[(p)] == 110 { goto st83 } goto st1 @@ -1403,8 +1596,14 @@ func Parse(data []byte, event *event) { goto _test_eof83 } st_case_83: - if data[(p)] == 112 { - goto st84 + switch data[(p)] { + case 32: + goto tr68 + case 117: + goto st78 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 } goto st1 st84: @@ -1413,13 +1612,10 @@ func Parse(data []byte, event *event) { } st_case_84: switch data[(p)] { - case 32: - goto tr57 - case 116: + case 108: goto st85 - } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr57 + case 110: + goto st86 } goto st1 st85: @@ -1427,23 +1623,267 @@ func Parse(data []byte, event *event) { goto _test_eof85 } st_case_85: + switch data[(p)] { + case 32: + goto tr68 + case 121: + goto st69 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } + goto st1 + st86: + if (p)++; (p) == (pe) { + goto _test_eof86 + } + st_case_86: + switch data[(p)] { + case 32: + goto tr68 + case 101: + goto st69 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } + goto st1 + tr6: + //line parser.rl:20 + + tok = p + + goto st87 + st87: + if (p)++; (p) == (pe) { + goto _test_eof87 + } + st_case_87: + //line parser.go:1649 + if data[(p)] == 97 { + goto st88 + } + goto st1 + st88: + if (p)++; (p) == (pe) { + goto _test_eof88 + } + st_case_88: + switch data[(p)] { + case 32: + goto tr68 + case 114: + goto st89 + case 121: + goto st69 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } + goto st1 + st89: + if (p)++; (p) == (pe) { + goto _test_eof89 + } + st_case_89: + switch data[(p)] { + case 32: + goto tr68 + case 99: + goto st90 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } + goto st1 + st90: + if (p)++; (p) == (pe) { + goto _test_eof90 + } + st_case_90: + if data[(p)] == 104 { + goto st69 + } + goto st1 + tr7: + //line parser.rl:20 + + tok = p + + goto st91 + st91: + if (p)++; (p) == (pe) { + goto _test_eof91 + } + st_case_91: + //line parser.go:1706 + if data[(p)] == 111 { + goto st92 + } + goto st1 + st92: + if (p)++; (p) == (pe) { + goto _test_eof92 + } + st_case_92: + if data[(p)] == 118 { + goto st93 + } + goto st1 + st93: + if (p)++; (p) == (pe) { + goto _test_eof93 + } + st_case_93: + switch data[(p)] { + case 32: + goto tr68 + case 101: + goto st94 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } + goto st1 + st94: + if (p)++; (p) == (pe) { + goto _test_eof94 + } + st_case_94: + if data[(p)] == 109 { + goto st95 + } + goto st1 + st95: + if (p)++; (p) == (pe) { + goto _test_eof95 + } + st_case_95: + if data[(p)] == 98 { + goto st96 + } + goto st1 + st96: + if (p)++; (p) == (pe) { + goto _test_eof96 + } + st_case_96: if data[(p)] == 101 { - goto st75 + goto st97 + } + goto st1 + st97: + if (p)++; (p) == (pe) { + goto _test_eof97 + } + st_case_97: + if data[(p)] == 114 { + goto st69 + } + goto st1 + tr8: + //line parser.rl:20 + + tok = p + + goto st98 + st98: + if (p)++; (p) == (pe) { + goto _test_eof98 + } + st_case_98: + //line parser.go:1782 + if data[(p)] == 99 { + goto st99 + } + goto st1 + st99: + if (p)++; (p) == (pe) { + goto _test_eof99 + } + st_case_99: + if data[(p)] == 116 { + goto st100 + } + goto st1 + st100: + if (p)++; (p) == (pe) { + goto _test_eof100 + } + st_case_100: + switch data[(p)] { + case 32: + goto tr68 + case 111: + goto st95 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } + goto st1 + tr9: + //line parser.rl:20 + + tok = p + + goto st101 + st101: + if (p)++; (p) == (pe) { + goto _test_eof101 + } + st_case_101: + //line parser.go:1822 + if data[(p)] == 101 { + goto st102 + } + goto st1 + st102: + if (p)++; (p) == (pe) { + goto _test_eof102 + } + st_case_102: + if data[(p)] == 112 { + goto st103 + } + goto st1 + st103: + if (p)++; (p) == (pe) { + goto _test_eof103 + } + st_case_103: + switch data[(p)] { + case 32: + goto tr68 + case 116: + goto st104 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr68 + } + goto st1 + st104: + if (p)++; (p) == (pe) { + goto _test_eof104 + } + st_case_104: + if data[(p)] == 101 { + goto st94 } goto st1 tr10: -//line parser.rl:20 + //line parser.rl:20 + tok = p - goto st86 - st86: + goto st105 + st105: if (p)++; (p) == (pe) { - goto _test_eof86 + goto _test_eof105 } - st_case_86: -//line parser.go:1487 + st_case_105: + //line parser.go:1871 if data[(p)] == 99 { - goto st74 + goto st93 } goto st1 st_out: @@ -1705,21 +2145,80 @@ func Parse(data []byte, event *event) { _test_eof86: cs = 86 goto _test_eof + _test_eof87: + cs = 87 + goto _test_eof + _test_eof88: + cs = 88 + goto _test_eof + _test_eof89: + cs = 89 + goto _test_eof + _test_eof90: + cs = 90 + goto _test_eof + _test_eof91: + cs = 91 + goto _test_eof + _test_eof92: + cs = 92 + goto _test_eof + _test_eof93: + cs = 93 + goto _test_eof + _test_eof94: + cs = 94 + goto _test_eof + _test_eof95: + cs = 95 + goto _test_eof + _test_eof96: + cs = 96 + goto _test_eof + _test_eof97: + cs = 97 + goto _test_eof + _test_eof98: + cs = 98 + goto _test_eof + _test_eof99: + cs = 99 + goto _test_eof + _test_eof100: + cs = 100 + goto _test_eof + _test_eof101: + cs = 101 + goto _test_eof + _test_eof102: + cs = 102 + goto _test_eof + _test_eof103: + cs = 103 + goto _test_eof + _test_eof104: + cs = 104 + goto _test_eof + _test_eof105: + cs = 105 + goto _test_eof _test_eof: { } if (p) == eof { switch cs { - case 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, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86: -//line parser.rl:28 + case 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, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105: + //line parser.rl:28 + event.SetMessage(data[tok:p]) -//line parser.go:1588 + //line parser.go:1991 } } } -//line parser.rl:80 + //line parser.rl:84 + } diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.rl b/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.rl index 9052e170..cbfd3236 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.rl +++ b/vendor/github.com/elastic/beats/filebeat/input/syslog/parser.rl @@ -73,6 +73,10 @@ func Parse(data []byte, event *event) { event.SetPid(data[tok:p]) } + action timezone { + event.SetTimeZone(data[tok:p]) + } + include syslog_rfc3164 "syslog_rfc3164.rl"; write init; diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/parser_test.go b/vendor/github.com/elastic/beats/filebeat/input/syslog/parser_test.go deleted file mode 100644 index 1d12eaf7..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/parser_test.go +++ /dev/null @@ -1,386 +0,0 @@ -package syslog - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestParseSyslog(t *testing.T) { - tests := []struct { - title string - log []byte - syslog event - }{ - { - title: "priority and timestamp defined as 2018-05-08T10:31:24 (rfc3339)", - log: []byte("<38>2018-05-08T10:31:24 localhost prg00000[1234]: seq: 0000000000, thread: 0000, runid: 1525768284, stamp: 2018-05-08T10:31:24 PADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPAD DPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADD"), - syslog: event{ - priority: 38, - message: "seq: 0000000000, thread: 0000, runid: 1525768284, stamp: 2018-05-08T10:31:24 PADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPAD DPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADD", - hostname: "localhost", - program: "prg00000", - pid: 1234, - month: 5, - day: 8, - hour: 10, - minute: 31, - second: 24, - year: 2016, - }, - }, - { - title: "timestamp defined as 2018-05-08T10:31:24 (rfc3339)", - log: []byte("2016-05-08T10:31:24 localhost prg00000[1234]: seq: 0000000000, thread: 0000, runid: 1525768284"), - syslog: event{ - priority: -1, - message: "seq: 0000000000, thread: 0000, runid: 1525768284", - hostname: "localhost", - program: "prg00000", - pid: 1234, - month: 5, - day: 8, - hour: 10, - minute: 31, - second: 24, - year: 2016, - }, - }, - { - title: "timestamp with nanosecond defined as 2018-05-08T10:31:24.0004 (rfc3339)", - log: []byte("2016-05-08T10:31:24.0004 localhost prg00000[1234]: seq: 0000000000, thread: 0000, runid: 1525768284"), - syslog: event{ - priority: -1, - message: "seq: 0000000000, thread: 0000, runid: 1525768284", - hostname: "localhost", - program: "prg00000", - pid: 1234, - month: 5, - day: 8, - hour: 10, - minute: 31, - second: 24, - year: 2016, - nanosecond: 4000, - }, - }, - { - title: "message only", - log: []byte("--- last message repeated 1 time ---"), - syslog: event{ - priority: -1, - message: "--- last message repeated 1 time ---", - hostname: "", - program: "", - pid: -1, - month: -1, - day: -1, - hour: -1, - minute: -1, - second: -1, - }, - }, - { - title: "time and message only", - log: []byte("Oct 11 22:14:15 --- last message repeated 1 time ---"), - syslog: event{ - priority: -1, - message: "--- last message repeated 1 time ---", - hostname: "", - program: "", - pid: -1, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - }, - }, - { - title: "time with nanosecond", - log: []byte("Oct 11 22:14:15.0000005 --- last message repeated 1 time ---"), - syslog: event{ - priority: -1, - message: "--- last message repeated 1 time ---", - hostname: "", - program: "", - pid: -1, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - nanosecond: 5, - }, - }, - { - title: "No priority defined", - log: []byte("Oct 11 22:14:15 mymachine su[230]: 'su root' failed for lonvick on /dev/pts/8"), - syslog: event{ - priority: -1, - message: "'su root' failed for lonvick on /dev/pts/8", - hostname: "mymachine", - program: "su", - pid: 230, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - }, - }, - { - log: []byte("<34>Oct 11 22:14:15 mymachine su[230]: 'su root' failed for lonvick on /dev/pts/8"), - syslog: event{ - priority: 34, - message: "'su root' failed for lonvick on /dev/pts/8", - hostname: "mymachine", - program: "su", - pid: 230, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - }, - }, - { - log: []byte("<34>Oct 11 22:14:15.57643 mymachine su: 'su root' failed for lonvick on /dev/pts/8"), - syslog: event{ - priority: 34, - message: "'su root' failed for lonvick on /dev/pts/8", - hostname: "mymachine", - program: "su", - pid: -1, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - nanosecond: 5764300, - }, - }, - { - log: []byte("<34>Oct 11 22:14:15 mymachine su: 'su root' failed for lonvick on /dev/pts/8"), - syslog: event{ - priority: 34, - message: "'su root' failed for lonvick on /dev/pts/8", - hostname: "mymachine", - program: "su", - pid: -1, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - }, - }, - { - log: []byte("<34>Oct 11 22:14:15 mymachine postfix/smtpd[2000]: 'su root' failed for lonvick on /dev/pts/8"), - syslog: event{ - priority: 34, - message: "'su root' failed for lonvick on /dev/pts/8", - hostname: "mymachine", - program: "postfix/smtpd", - pid: 2000, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - }, - }, - { - log: []byte("<34>Oct 11 22:14:15 wopr.mymachine.co postfix/smtpd[2000]: 'su root' failed for lonvick on /dev/pts/8"), - syslog: event{ - priority: 34, - message: "'su root' failed for lonvick on /dev/pts/8", - hostname: "wopr.mymachine.co", - program: "postfix/smtpd", - pid: 2000, - month: 10, - day: 11, - hour: 22, - minute: 14, - second: 15, - }, - }, - { - log: []byte("<13>Feb 25 17:32:18 10.0.0.99 Use the Force!"), - syslog: event{ - message: "Use the Force!", - hostname: "10.0.0.99", - priority: 13, - pid: -1, - month: 2, - day: 25, - hour: 17, - minute: 32, - second: 18, - }, - }, - { - title: "Check relay + hostname alpha", - log: []byte("<13>Feb 25 17:32:18 wopr Use the Force!"), - syslog: event{ - message: "Use the Force!", - hostname: "wopr", - priority: 13, - pid: -1, - month: 2, - day: 25, - hour: 17, - minute: 32, - second: 18, - }, - }, - { - title: "Check relay + ipv6", - log: []byte("<13>Feb 25 17:32:18 2607:f0d0:1002:51::4 Use the Force!"), - syslog: event{ - message: "Use the Force!", - hostname: "2607:f0d0:1002:51::4", - priority: 13, - pid: -1, - month: 2, - day: 25, - hour: 17, - minute: 32, - second: 18, - }, - }, - { - title: "Check relay + ipv6", - log: []byte("<13>Feb 25 17:32:18 2607:f0d0:1002:0051:0000:0000:0000:0004 Use the Force!"), - syslog: event{ - message: "Use the Force!", - hostname: "2607:f0d0:1002:0051:0000:0000:0000:0004", - priority: 13, - pid: -1, - month: 2, - day: 25, - hour: 17, - minute: 32, - second: 18, - }, - }, - { - title: "Number inf the host", - log: []byte("<164>Oct 26 15:19:25 1.2.3.4 ASA1-2: Deny udp src DRAC:10.1.2.3/43434 dst outside:192.168.0.1/53 by access-group \"acl_drac\" [0x0, 0x0]"), - syslog: event{ - message: "Deny udp src DRAC:10.1.2.3/43434 dst outside:192.168.0.1/53 by access-group \"acl_drac\" [0x0, 0x0]", - hostname: "1.2.3.4", - program: "ASA1-2", - priority: 164, - pid: -1, - month: 10, - day: 26, - hour: 15, - minute: 19, - second: 25, - }, - }, - { - log: []byte("<164>Oct 26 15:19:25 1.2.3.4 %ASA1-120: Deny udp src DRAC:10.1.2.3/43434 dst outside:192.168.0.1/53 by access-group \"acl_drac\" [0x0, 0x0]"), - syslog: event{ - message: "Deny udp src DRAC:10.1.2.3/43434 dst outside:192.168.0.1/53 by access-group \"acl_drac\" [0x0, 0x0]", - hostname: "1.2.3.4", - program: "%ASA1-120", - priority: 164, - pid: -1, - month: 10, - day: 26, - hour: 15, - minute: 19, - second: 25, - }, - }, - } - - for _, test := range tests { - t.Run(fmt.Sprintf("%s:%s", test.title, string(test.log)), func(t *testing.T) { - l := newEvent() - Parse(test.log, l) - assert.Equal(t, test.syslog.Message(), l.Message()) - assert.Equal(t, test.syslog.Hostname(), l.Hostname()) - assert.Equal(t, test.syslog.Priority(), l.Priority()) - assert.Equal(t, test.syslog.Pid(), l.Pid()) - assert.Equal(t, test.syslog.Program(), l.Program()) - assert.Equal(t, test.syslog.Month(), l.Month()) - assert.Equal(t, test.syslog.Day(), l.Day()) - assert.Equal(t, test.syslog.Hour(), l.Hour()) - assert.Equal(t, test.syslog.Minute(), l.Minute()) - assert.Equal(t, test.syslog.Second(), l.Second()) - assert.Equal(t, test.syslog.Nanosecond(), l.Nanosecond()) - }) - } -} - -func TestDay(t *testing.T) { - for d := 1; d <= 31; d++ { - t.Run(fmt.Sprintf("Day %d", d), func(t *testing.T) { - log := fmt.Sprintf("<34>Oct %2d 22:14:15 mymachine postfix/smtpd[2000]: 'su root' failed for lonvick on /dev/pts/8", d) - l := newEvent() - Parse([]byte(log), l) - assert.Equal(t, d, l.Day()) - }) - } -} - -func TestHour(t *testing.T) { - for d := 0; d <= 23; d++ { - t.Run(fmt.Sprintf("Hour %d", d), func(t *testing.T) { - log := fmt.Sprintf("<34>Oct 11 %02d:14:15 mymachine postfix/smtpd[2000]: 'su root' failed for lonvick on /dev/pts/8", d) - l := newEvent() - Parse([]byte(log), l) - assert.Equal(t, d, l.Hour()) - }) - } -} - -func TestMinute(t *testing.T) { - for d := 0; d <= 59; d++ { - t.Run(fmt.Sprintf("Minute %d", d), func(t *testing.T) { - log := fmt.Sprintf("<34>Oct 11 10:%02d:15 mymachine postfix/smtpd[2000]: 'su root' failed for lonvick on /dev/pts/8", d) - l := newEvent() - Parse([]byte(log), l) - assert.Equal(t, d, l.Minute()) - }) - } -} - -func TestSecond(t *testing.T) { - for d := 0; d <= 59; d++ { - t.Run(fmt.Sprintf("Second %d", d), func(t *testing.T) { - log := fmt.Sprintf("<34>Oct 11 10:15:%02d mymachine postfix/smtpd[2000]: 'su root' failed for lonvick on /dev/pts/8", d) - l := newEvent() - Parse([]byte(log), l) - assert.Equal(t, d, l.Second()) - }) - } -} - -func TestPriority(t *testing.T) { - for d := 1; d <= 120; d++ { - t.Run(fmt.Sprintf("Priority %d", d), func(t *testing.T) { - log := fmt.Sprintf("<%d>Oct 11 10:15:15 mymachine postfix/smtpd[2000]: 'su root' failed for lonvick on /dev/pts/8", d) - l := newEvent() - Parse([]byte(log), l) - assert.Equal(t, d, l.Priority()) - }) - return - } -} - -var e *event - -func BenchmarkParser(b *testing.B) { - b.ReportAllocs() - l := newEvent() - log := []byte("<34>Oct 11 22:14:15 mymachine su: 'su root' failed for lonvick on /dev/pts/8") - for n := 0; n < b.N; n++ { - Parse(log, l) - e = l - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/syslog/syslog_rfc3164.rl b/vendor/github.com/elastic/beats/filebeat/input/syslog/syslog_rfc3164.rl index 5133c4db..4f7650ff 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/syslog/syslog_rfc3164.rl +++ b/vendor/github.com/elastic/beats/filebeat/input/syslog/syslog_rfc3164.rl @@ -27,6 +27,11 @@ second = ([0-5][0-9])>tok %second; nanosecond = digit+>tok %nanosecond; time = hour ":" minute ":" second ("." nanosecond)?; + offset_marker = "Z" | "z"; + offset_direction = "-" | "+"; + offset_hour = digit{2}; + offset_minute = digit{2}; + timezone = (offset_marker | offset_marker? offset_direction offset_hour (":"? offset_minute)?)>tok %timezone; # Some BSD style actually uses rfc3339 formatted date. year = digit{4}>tok %year; @@ -35,7 +40,8 @@ # common timestamp format timestamp_rfc3164 = month space day space time; - timestamp_rfc3339 = year "-" month_numeric "-" day_two_digits "T" time; + time_separator = "T" | "t"; + timestamp_rfc3339 = year "-" month_numeric "-" day_two_digits (time_separator | space) time timezone?; timestamp = timestamp_rfc3339 | timestamp_rfc3164; hostname = [a-zA-Z0-9.-_:]+>tok %hostname; diff --git a/vendor/github.com/elastic/beats/filebeat/input/tcp/config.go b/vendor/github.com/elastic/beats/filebeat/input/tcp/config.go index 7b30b2a9..7da80b11 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/tcp/config.go +++ b/vendor/github.com/elastic/beats/filebeat/input/tcp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/tcp/input.go b/vendor/github.com/elastic/beats/filebeat/input/tcp/input.go index e65bc282..4a618c49 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/tcp/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/tcp/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/tcp/input_test.go b/vendor/github.com/elastic/beats/filebeat/input/tcp/input_test.go deleted file mode 100644 index fde5100a..00000000 --- a/vendor/github.com/elastic/beats/filebeat/input/tcp/input_test.go +++ /dev/null @@ -1,30 +0,0 @@ -package tcp - -import ( - "net" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/inputsource" -) - -func TestCreateEvent(t *testing.T) { - hello := "hello world" - ip := "127.0.0.1" - parsedIP := net.ParseIP(ip) - addr := &net.IPAddr{IP: parsedIP, Zone: ""} - - message := []byte(hello) - mt := inputsource.NetworkMetadata{RemoteAddr: addr} - - data := createEvent(message, mt) - event := data.GetEvent() - - m, err := event.GetValue("message") - assert.NoError(t, err) - assert.Equal(t, string(message), m) - - from, _ := event.GetValue("source") - assert.Equal(t, ip, from) -} diff --git a/vendor/github.com/elastic/beats/filebeat/input/udp/config.go b/vendor/github.com/elastic/beats/filebeat/input/udp/config.go index 6f1651e9..65e52292 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/udp/config.go +++ b/vendor/github.com/elastic/beats/filebeat/input/udp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 udp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/input/udp/input.go b/vendor/github.com/elastic/beats/filebeat/input/udp/input.go index 751b97a7..669c1ff7 100644 --- a/vendor/github.com/elastic/beats/filebeat/input/udp/input.go +++ b/vendor/github.com/elastic/beats/filebeat/input/udp/input.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 udp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/inputsource.go b/vendor/github.com/elastic/beats/filebeat/inputsource/inputsource.go index e283490e..475febbe 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/inputsource.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/inputsource.go @@ -1 +1,18 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 inputsource diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/network.go b/vendor/github.com/elastic/beats/filebeat/inputsource/network.go index 34563ffd..6c8d833b 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/network.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/network.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 inputsource import ( diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/client.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/client.go index 6a0119f8..f9204925 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/client.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/client.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( @@ -76,7 +93,7 @@ func (c *client) handle() error { c.callback(scanner.Bytes(), c.metadata) } - // We are out of the scanner, either we reached EOF or another fatal error occured. + // We are out of the scanner, either we reached EOF or another fatal error occurred. // like we failed to complete the TLS handshake or we are missing the client certificate when // mutual auth is on, which is the default. if err := scanner.Err(); err != nil { diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/config.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/config.go index 3da5ba28..2758bf90 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/config.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/conn.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/conn.go index a2a40bb0..3d08e47f 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/conn.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/conn.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/conn_test.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/conn_test.go deleted file mode 100644 index aaf2bea6..00000000 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/conn_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package tcp - -import ( - "strings" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestResetableLimitedReader(t *testing.T) { - maxReadBuffer := 400 - - t.Run("WhenMaxReadIsReachedInMultipleRead", func(t *testing.T) { - r := strings.NewReader(randomString(maxReadBuffer * 2)) - m := NewResetableLimitedReader(r, uint64(maxReadBuffer)) - toRead := make([]byte, maxReadBuffer) - _, err := m.Read(toRead) - assert.NoError(t, err) - toRead = make([]byte, 300) - _, err = m.Read(toRead) - assert.Equal(t, ErrMaxReadBuffer, err) - }) - - t.Run("WhenMaxReadIsNotReached", func(t *testing.T) { - r := strings.NewReader(randomString(maxReadBuffer * 2)) - m := NewResetableLimitedReader(r, uint64(maxReadBuffer)) - toRead := make([]byte, maxReadBuffer) - _, err := m.Read(toRead) - assert.NoError(t, err) - }) - - t.Run("WhenResetIsCalled", func(t *testing.T) { - r := strings.NewReader(randomString(maxReadBuffer * 2)) - m := NewResetableLimitedReader(r, uint64(maxReadBuffer)) - toRead := make([]byte, maxReadBuffer) - _, err := m.Read(toRead) - assert.NoError(t, err) - m.Reset() - toRead = make([]byte, 300) - _, err = m.Read(toRead) - assert.NoError(t, err) - }) -} diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/scan.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/scan.go index 4e948158..597deaae 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/scan.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/scan.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/scan_test.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/scan_test.go deleted file mode 100644 index 87b28431..00000000 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/scan_test.go +++ /dev/null @@ -1,91 +0,0 @@ -package tcp - -import ( - "bufio" - "strings" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestCustomDelimiter(t *testing.T) { - tests := []struct { - name string - text string - expected []string - delimiter []byte - }{ - { - name: "Multiple chars delimiter", - text: "hellobonjourholahey", - expected: []string{ - "hello", - "bonjour", - "hola", - "hey", - }, - delimiter: []byte(""), - }, - { - name: "Multiple chars delimiter with half starting delimiter", - text: "hellobonjourhey", - expected: []string{ - "hello", - "bonjour"), - }, - { - name: "Multiple chars delimiter with half ending delimiter", - text: "helloEND>holahey", - expected: []string{ - "hello", - "END>hola", - "hey", - }, - delimiter: []byte(""), - }, - { - name: "Delimiter end of string", - text: "hellobonjourholahey", - expected: []string{ - "hello", - "bonjour", - "hola", - "hey", - }, - delimiter: []byte(""), - }, - { - name: "Single char delimiter", - text: "hello;bonjour;hola;hey", - expected: []string{ - "hello", - "bonjour", - "hola", - "hey", - }, - delimiter: []byte(";"), - }, - { - name: "Empty string", - text: "", - expected: []string(nil), - delimiter: []byte(";"), - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - buf := strings.NewReader(test.text) - scanner := bufio.NewScanner(buf) - scanner.Split(factoryDelimiter(test.delimiter)) - var elements []string - for scanner.Scan() { - elements = append(elements, scanner.Text()) - } - assert.EqualValues(t, test.expected, elements) - }) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/server.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/server.go index 28f93cd0..ebe61f7b 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/server.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/server.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( @@ -96,7 +113,6 @@ func (s *Server) run() { s.config.Timeout, ) - s.log.Debugw("New client", "remote_address", conn.RemoteAddr(), "total", s.clientsCount()) s.wg.Add(1) go func() { defer logp.Recover("recovering from a tcp client crash") @@ -105,13 +121,14 @@ func (s *Server) run() { s.registerClient(client) defer s.unregisterClient(client) + s.log.Debugw("New client", "remote_address", conn.RemoteAddr(), "total", s.clientsCount()) err := client.handle() if err != nil { s.log.Debugw("Client error", "error", err) } - s.log.Debugw( + defer s.log.Debugw( "Client disconnected", "remote_address", conn.RemoteAddr(), diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/server_test.go b/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/server_test.go deleted file mode 100644 index 19a52976..00000000 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/tcp/server_test.go +++ /dev/null @@ -1,245 +0,0 @@ -package tcp - -import ( - "fmt" - "math/rand" - "net" - "strings" - "testing" - "time" - - "github.com/dustin/go-humanize" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/inputsource" - "github.com/elastic/beats/libbeat/common" -) - -var defaultConfig = Config{ - LineDelimiter: "\n", - Timeout: time.Minute * 5, - MaxMessageSize: 20 * humanize.MiByte, -} - -type info struct { - message string - mt inputsource.NetworkMetadata -} - -func TestErrorOnEmptyLineDelimiter(t *testing.T) { - cfg := map[string]interface{}{ - "line_delimiter": "", - } - - c, _ := common.NewConfigFrom(cfg) - config := defaultConfig - err := c.Unpack(&config) - assert.Error(t, err) -} - -func TestReceiveEventsAndMetadata(t *testing.T) { - expectedMessages := generateMessages(5, 100) - largeMessages := generateMessages(10, 4096) - - tests := []struct { - name string - cfg map[string]interface{} - expectedMessages []string - messageSent string - }{ - { - name: "NewLine", - cfg: map[string]interface{}{}, - expectedMessages: expectedMessages, - messageSent: strings.Join(expectedMessages, "\n"), - }, - { - name: "NewLineWithCR", - cfg: map[string]interface{}{}, - expectedMessages: expectedMessages, - messageSent: strings.Join(expectedMessages, "\r\n"), - }, - { - name: "CustomDelimiter", - cfg: map[string]interface{}{ - "line_delimiter": ";", - }, - expectedMessages: expectedMessages, - messageSent: strings.Join(expectedMessages, ";"), - }, - { - name: "MultipleCharsCustomDelimiter", - cfg: map[string]interface{}{ - "line_delimiter": "", - }, - expectedMessages: expectedMessages, - messageSent: strings.Join(expectedMessages, ""), - }, - { - name: "SingleCharCustomDelimiterMessageWithoutBoudaries", - cfg: map[string]interface{}{ - "line_delimiter": ";", - }, - expectedMessages: []string{"hello"}, - messageSent: "hello", - }, - { - name: "MultipleCharCustomDelimiterMessageWithoutBoundaries", - cfg: map[string]interface{}{ - "line_delimiter": "", - }, - expectedMessages: []string{"hello"}, - messageSent: "hello", - }, - { - name: "NewLineMessageWithoutBoundaries", - cfg: map[string]interface{}{ - "line_delimiter": "\n", - }, - expectedMessages: []string{"hello"}, - messageSent: "hello", - }, - { - name: "NewLineLargeMessagePayload", - cfg: map[string]interface{}{ - "line_delimiter": "\n", - }, - expectedMessages: largeMessages, - messageSent: strings.Join(largeMessages, "\n"), - }, - { - name: "CustomLargeMessagePayload", - cfg: map[string]interface{}{ - "line_delimiter": ";", - }, - expectedMessages: largeMessages, - messageSent: strings.Join(largeMessages, ";"), - }, - { - name: "MaxReadBufferReached", - cfg: map[string]interface{}{}, - expectedMessages: []string{}, - messageSent: randomString(900000), - }, - { - name: "MaxReadBufferReachedUserConfigured", - cfg: map[string]interface{}{ - "max_read_message": 50000, - }, - expectedMessages: []string{}, - messageSent: randomString(600000), - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - ch := make(chan *info, len(test.expectedMessages)) - defer close(ch) - to := func(message []byte, mt inputsource.NetworkMetadata) { - ch <- &info{message: string(message), mt: mt} - } - test.cfg["host"] = "localhost:0" - cfg, _ := common.NewConfigFrom(test.cfg) - config := defaultConfig - err := cfg.Unpack(&config) - if !assert.NoError(t, err) { - return - } - server, err := New(&config, to) - if !assert.NoError(t, err) { - return - } - err = server.Start() - if !assert.NoError(t, err) { - return - } - defer server.Stop() - - conn, err := net.Dial("tcp", server.Listener.Addr().String()) - assert.NoError(t, err) - fmt.Fprint(conn, test.messageSent) - conn.Close() - - var events []*info - - for len(events) < len(test.expectedMessages) { - select { - case event := <-ch: - events = append(events, event) - default: - } - } - - for idx, e := range events { - assert.Equal(t, test.expectedMessages[idx], e.message) - assert.NotNil(t, e.mt.RemoteAddr) - } - }) - } -} - -func TestReceiveNewEventsConcurrently(t *testing.T) { - workers := 4 - eventsCount := 100 - ch := make(chan *info, eventsCount*workers) - defer close(ch) - to := func(message []byte, mt inputsource.NetworkMetadata) { - ch <- &info{message: string(message), mt: mt} - } - cfg, err := common.NewConfigFrom(map[string]interface{}{"host": ":0"}) - if !assert.NoError(t, err) { - return - } - config := defaultConfig - err = cfg.Unpack(&config) - if !assert.NoError(t, err) { - return - } - server, err := New(&config, to) - if !assert.NoError(t, err) { - return - } - err = server.Start() - if !assert.NoError(t, err) { - return - } - defer server.Stop() - - samples := generateMessages(eventsCount, 1024) - for w := 0; w < workers; w++ { - go func() { - conn, err := net.Dial("tcp", server.Listener.Addr().String()) - defer conn.Close() - assert.NoError(t, err) - for _, sample := range samples { - fmt.Fprintln(conn, sample) - } - }() - } - - var events []*info - for len(events) < eventsCount*workers { - select { - case event := <-ch: - events = append(events, event) - default: - } - } -} - -func randomString(l int) string { - charsets := []byte("abcdefghijklmnopqrstuvwzyzABCDEFGHIJKLMNOPQRSTUVWZYZ0123456789") - message := make([]byte, l) - for i := range message { - message[i] = charsets[rand.Intn(len(charsets))] - } - return string(message) -} - -func generateMessages(c int, l int) []string { - messages := make([]string, c) - for i := range messages { - messages[i] = randomString(l) - } - return messages -} diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/udp/config.go b/vendor/github.com/elastic/beats/filebeat/inputsource/udp/config.go index 740646d1..e4cac868 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/udp/config.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/udp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 udp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/udp/server.go b/vendor/github.com/elastic/beats/filebeat/inputsource/udp/server.go index e5cf5e93..762e927a 100644 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/udp/server.go +++ b/vendor/github.com/elastic/beats/filebeat/inputsource/udp/server.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 udp import ( diff --git a/vendor/github.com/elastic/beats/filebeat/inputsource/udp/server_test.go b/vendor/github.com/elastic/beats/filebeat/inputsource/udp/server_test.go deleted file mode 100644 index 9c72a956..00000000 --- a/vendor/github.com/elastic/beats/filebeat/inputsource/udp/server_test.go +++ /dev/null @@ -1,81 +0,0 @@ -package udp - -import ( - "net" - "runtime" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/inputsource" -) - -const maxMessageSize = 20 -const timeout = time.Second * 15 - -type info struct { - message []byte - mt inputsource.NetworkMetadata -} - -func TestReceiveEventFromUDP(t *testing.T) { - tests := []struct { - name string - message []byte - expected []byte - }{ - { - name: "Sending a message under the MaxMessageSize limit", - message: []byte("Hello world"), - expected: []byte("Hello world"), - }, - { - name: "Sending a message over the MaxMessageSize limit will truncate the message", - message: []byte("Hello world not so nice"), - expected: []byte("Hello world not so n"), - }, - } - - ch := make(chan info) - host := "localhost:0" - config := &Config{Host: host, MaxMessageSize: maxMessageSize, Timeout: timeout} - fn := func(message []byte, metadata inputsource.NetworkMetadata) { - ch <- info{message: message, mt: metadata} - } - s := New(config, fn) - err := s.Start() - if !assert.NoError(t, err) { - return - } - defer s.Stop() - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - conn, err := net.Dial("udp", s.Listener.LocalAddr().String()) - if !assert.NoError(t, err) { - return - } - defer conn.Close() - - _, err = conn.Write(test.message) - if !assert.NoError(t, err) { - return - } - info := <-ch - assert.Equal(t, test.expected, info.message) - if runtime.GOOS == "windows" { - if len(test.expected) < len(test.message) { - assert.Nil(t, info.mt.RemoteAddr) - assert.True(t, info.mt.Truncated) - } else { - assert.NotNil(t, info.mt.RemoteAddr) - assert.False(t, info.mt.Truncated) - } - } else { - assert.NotNil(t, info.mt.RemoteAddr) - assert.False(t, info.mt.Truncated) - } - }) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/magefile.go b/vendor/github.com/elastic/beats/filebeat/magefile.go new file mode 100644 index 00000000..f8148358 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/magefile.go @@ -0,0 +1,160 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "fmt" + "path/filepath" + "time" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" + + "github.com/elastic/beats/dev-tools/mage" +) + +func init() { + mage.BeatDescription = "Filebeat sends log files to Logstash or directly to Elasticsearch." +} + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// GolangCrossBuild build the Beat binary inside of the golang-builder. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) +} + +// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). +func BuildGoDaemon() error { + return mage.BuildGoDaemon() +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return mage.CrossBuild() +} + +// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. +func CrossBuildGoDaemon() error { + return mage.CrossBuildGoDaemon() +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Package packages the Beat for distribution. +// Use SNAPSHOT=true to build snapshots. +// Use PLATFORMS to control the target platforms. +func Package() { + start := time.Now() + defer func() { fmt.Println("package ran for", time.Since(start)) }() + + mage.UseElasticBeatPackaging() + customizePackaging() + + mg.Deps(Update, prepareModulePackaging) + mg.Deps(CrossBuild, CrossBuildGoDaemon) + mg.SerialDeps(mage.Package, TestPackages) +} + +// TestPackages tests the generated packages (i.e. file modes, owners, groups). +func TestPackages() error { + return mage.TestPackages(mage.WithModules(), mage.WithModulesD()) +} + +// Update updates the generated files (aka make update). +func Update() error { + return sh.Run("make", "update") +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML("module") +} + +// ----------------------------------------------------------------------------- +// Customizations specific to Filebeat. +// - Include modules directory in packages (minus _meta and test files). +// - Include modules.d directory in packages. + +var modulesDirGenerated = filepath.Clean("build/packaging/modules") + +// customizePackaging modifies the package specs to add the modules and +// modules.d directory. +func customizePackaging() { + var ( + moduleTarget = "module" + module = mage.PackageFile{ + Mode: 0644, + Source: modulesDirGenerated, + } + + modulesDTarget = "modules.d" + modulesD = mage.PackageFile{ + Mode: 0644, + Source: "modules.d", + Config: true, + } + ) + + for _, args := range mage.Packages { + pkgType := args.Types[0] + switch pkgType { + case mage.TarGz, mage.Zip: + args.Spec.Files[moduleTarget] = module + args.Spec.Files[modulesDTarget] = modulesD + case mage.Deb, mage.RPM: + args.Spec.Files["/usr/share/{{.BeatName}}/"+moduleTarget] = module + args.Spec.Files["/etc/{{.BeatName}}/"+modulesDTarget] = modulesD + case mage.DMG: + args.Spec.Files["/Library/Application Support/{{.BeatVendor}}/{{.BeatName}}"+moduleTarget] = module + args.Spec.Files["/etc/{{.BeatName}}/"+modulesDTarget] = modulesD + default: + panic(errors.Errorf("unhandled package type: %v", pkgType)) + } + } +} + +// prepareModulePackaging copies the module dir to the build dir and excludes +// _meta and test files so that they are not included in packages. +func prepareModulePackaging() error { + if err := sh.Rm(modulesDirGenerated); err != nil { + return err + } + + copy := &mage.CopyTask{ + Source: "module", + Dest: modulesDirGenerated, + Mode: 0644, + DirMode: 0755, + Exclude: []string{ + "/_meta", + "/test", + }, + } + return copy.Execute() +} diff --git a/vendor/github.com/elastic/beats/filebeat/main.go b/vendor/github.com/elastic/beats/filebeat/main.go index a40fadac..c0b3c2c0 100644 --- a/vendor/github.com/elastic/beats/filebeat/main.go +++ b/vendor/github.com/elastic/beats/filebeat/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/filebeat/main_test.go b/vendor/github.com/elastic/beats/filebeat/main_test.go deleted file mode 100644 index ae440914..00000000 --- a/vendor/github.com/elastic/beats/filebeat/main_test.go +++ /dev/null @@ -1,25 +0,0 @@ -package main - -// This file is mandatory as otherwise the packetbeat.test binary is not generated correctly. - -import ( - "flag" - "testing" - - "github.com/elastic/beats/filebeat/cmd" -) - -var systemTest *bool - -func init() { - systemTest = flag.Bool("systemTest", false, "Set to true when running system tests") - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("systemTest")) - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("test.coverprofile")) -} - -// Test started when the test binary is started. Only calls main. -func TestSystem(t *testing.T) { - if *systemTest { - main() - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/make.bat b/vendor/github.com/elastic/beats/filebeat/make.bat index 3f92e367..81de1ba9 100644 --- a/vendor/github.com/elastic/beats/filebeat/make.bat +++ b/vendor/github.com/elastic/beats/filebeat/make.bat @@ -1,7 +1,11 @@ -REM Batch script to build and test on Windows. You can use this in conjunction -REM with the Vagrant machine. -go build -go test ./... -go test -c -cover -covermode=count -coverpkg ./... -cd tests\system -nosetests +@echo off + +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. +REM +REM After running this once you may invoke mage.exe directly. + +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install github.com/elastic/beats/vendor/github.com/magefile/mage + +mage %* diff --git a/vendor/github.com/elastic/beats/filebeat/module/apache2/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/apache2/_meta/docs.asciidoc index 35346424..73dcf602 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/apache2/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/apache2/_meta/docs.asciidoc @@ -51,7 +51,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "apache2.access.var.paths=[/path/to/apache2/access.log*]" -M "apache2.error.var.paths=[/path/to/log/apache2/error.log*]" +-M "apache2.access.var.paths=[/path/to/apache2/access.log*]" -M "apache2.error.var.paths=[/path/to/log/apache2/error.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/apache2/access/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/apache2/access/_meta/fields.yml index be097171..c73354f6 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/apache2/access/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/apache2/access/_meta/fields.yml @@ -112,4 +112,7 @@ type: keyword description: > The city name. - + - name: region_iso_code + type: keyword + description: > + Region ISO code. diff --git a/vendor/github.com/elastic/beats/filebeat/module/apache2/access/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/apache2/access/test/test.log-expected.json index 426e3ec5..d9e0c1dd 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/apache2/access/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/apache2/access/test/test.log-expected.json @@ -1,205 +1,75 @@ [ { - "_index": "filebeat-2016.12.27", - "_type": "log", - "_id": "AVlBCaYsqYg9cc5KQfcT", - "_score": null, - "_source": { - "@timestamp": "2016-12-26T14:16:29.000Z", - "offset": 73, - "apache2": { - "access": { - "response_code": "404", - "remote_ip": "::1", - "method": "GET", - "user_name": "-", - "http_version": "1.1", - "body_sent": { - "bytes": "209" - }, - "url": "/favicon.ico" - } - }, - "beat": { - "hostname": "192-168-0-7.rdsnet.ro", - "name": "192-168-0-7.rdsnet.ro", - "version": "6.0.0-alpha1" - }, - "read_timestamp": "2016-12-27T15:52:23.304Z", - "source": "module/apache2/access/test/test.log", - "fields": { - "pipeline_id": "apache2-access-with_plugins", - "source_type": "apache2-access" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - } - }, - "fields": { - "@timestamp": [ - 1482761789000 - ] - }, - "sort": [ - 1482761789000 - ] - }, + "@timestamp": "2016-12-26T14:16:29.000Z", + "apache2.access.body_sent.bytes": "209", + "apache2.access.http_version": "1.1", + "apache2.access.method": "GET", + "apache2.access.remote_ip": "::1", + "apache2.access.response_code": "404", + "apache2.access.url": "/favicon.ico", + "apache2.access.user_name": "-", + "fileset.module": "apache2", + "fileset.name": "access", + "input.type": "log", + "offset": 0, + "prospector.type": "log" + }, { - "_index": "filebeat-2016.12.27", - "_type": "log", - "_id": "AVlBCaYsqYg9cc5KQfcU", - "_score": null, - "_source": { - "@timestamp": "2016-12-26T16:22:13.000Z", - "offset": 238, - "apache2": { - "access": { - "referrer": "-", - "response_code": "404", - "remote_ip": "192.168.33.1", - "method": "GET", - "user_name": "-", - "http_version": "1.1", - "body_sent": { - "bytes": "499" - }, - "url": "/hello", - "user_agent": { - "major": "50", - "minor": "0", - "os": "Mac OS X 10.12", - "os_minor": "12", - "os_major": "10", - "name": "Firefox", - "os_name": "Mac OS X", - "device": "Other" - } - } - }, - "beat": { - "hostname": "192-168-0-7.rdsnet.ro", - "name": "192-168-0-7.rdsnet.ro", - "version": "6.0.0-alpha1" - }, - "read_timestamp": "2016-12-27T15:52:23.304Z", - "source": "module/apache2/access/test/test.log", - "fields": { - "pipeline_id": "apache2-access-with_plugins", - "source_type": "apache2-access" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - } - }, - "fields": { - "@timestamp": [ - 1482769333000 - ] - }, - "sort": [ - 1482769333000 - ] - }, + "@timestamp": "2016-12-26T16:22:13.000Z", + "apache2.access.body_sent.bytes": "499", + "apache2.access.http_version": "1.1", + "apache2.access.method": "GET", + "apache2.access.referrer": "-", + "apache2.access.remote_ip": "192.168.33.1", + "apache2.access.response_code": "404", + "apache2.access.url": "/hello", + "apache2.access.user_agent.device": "Other", + "apache2.access.user_agent.major": "50", + "apache2.access.user_agent.minor": "0", + "apache2.access.user_agent.name": "Firefox", + "apache2.access.user_agent.os": "Mac OS X 10.12", + "apache2.access.user_agent.os_major": "10", + "apache2.access.user_agent.os_minor": "12", + "apache2.access.user_agent.os_name": "Mac OS X", + "apache2.access.user_name": "-", + "fileset.module": "apache2", + "fileset.name": "access", + "input.type": "log", + "offset": 73, + "prospector.type": "log" + }, { - "_index": "filebeat-2016.12.27", - "_type": "log", - "_id": "AVlBCaYsqYg9cc5KQfc-", - "_score": null, - "_source": { - "@timestamp": "2016-12-26T14:16:48.000Z", - "offset": 285, - "apache2": { - "access": { - "response_code": "408", - "remote_ip": "::1", - "user_name": "-" - } - }, - "beat": { - "hostname": "192-168-0-7.rdsnet.ro", - "name": "192-168-0-7.rdsnet.ro", - "version": "6.0.0-alpha1" - }, - "read_timestamp": "2016-12-27T16:04:58.319Z", - "source": "module/apache2/access/test/test.log", - "fields": { - "pipeline_id": "apache2-access-with_plugins", - "source_type": "apache2-access" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - } - }, - "fields": { - "@timestamp": [ - 1482761808000 - ] - }, - "sort": [ - 1482761808000 - ] - }, + "@timestamp": "2016-12-26T14:16:48.000Z", + "apache2.access.remote_ip": "::1", + "apache2.access.response_code": "408", + "apache2.access.user_name": "-", + "fileset.module": "apache2", + "fileset.name": "access", + "input.type": "log", + "offset": 238, + "prospector.type": "log" + }, { - "_id": "AVxVs7QZsqw9BQCgtCgc", - "_index": "filebeat-6.0.0-alpha2-2017.05.29", - "_score": null, - "_source": { - "@timestamp": "2017-05-29T19:02:48.000Z", - "apache2": { - "access": { - "body_sent": { - "bytes": "612" - }, - "http_version": "1.1", - "method": "GET", - "referrer": "-", - "remote_ip": "172.17.0.1", - "response_code": "404", - "url": "/stringpatch", - "user_agent": { - "device": "Other", - "major": "15", - "minor": "0", - "name": "Firefox Alpha", - "os": "Windows 7", - "os_name": "Windows 7", - "patch": "a2" - }, - "user_name": "-" - } - }, - "beat": { - "hostname": "X1", - "name": "X1", - "version": "6.0.0-alpha2" - }, - "offset": 443, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2017-05-29T19:34:14.378Z", - "source": "/home/exekias/go/src/github.com/elastic/beats/filebeat/apache2.log" - }, - "_type": "doc", - "fields": { - "@timestamp": [ - 1496084568000 - ] - }, - "sort": [ - 1496084568000 - ] + "@timestamp": "2017-05-29T19:02:48.000Z", + "apache2.access.body_sent.bytes": "612", + "apache2.access.http_version": "1.1", + "apache2.access.method": "GET", + "apache2.access.referrer": "-", + "apache2.access.remote_ip": "172.17.0.1", + "apache2.access.response_code": "404", + "apache2.access.url": "/stringpatch", + "apache2.access.user_agent.device": "Other", + "apache2.access.user_agent.major": "15", + "apache2.access.user_agent.minor": "0", + "apache2.access.user_agent.name": "Firefox Alpha", + "apache2.access.user_agent.os": "Windows 7", + "apache2.access.user_agent.os_name": "Windows 7", + "apache2.access.user_agent.patch": "a2", + "apache2.access.user_name": "-", + "fileset.module": "apache2", + "fileset.name": "access", + "input.type": "log", + "offset": 285, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/apache2/error/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/apache2/error/test/test.log-expected.json index e98c5ba4..96d61106 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/apache2/error/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/apache2/error/test/test.log-expected.json @@ -1,105 +1,39 @@ [ { - "_index": "filebeat-2016.12.29", - "_type": "log", - "_id": "AVlGiYcNqYg9cc5KQfdz", - "_score": 1, - "_source": { - "@timestamp": "2016-12-26T16:15:55.103Z", - "offset": 229, - "apache2": { - "error": { - "level": "notice", - "module": "core", - "pid": "11379", - "message": "AH00094: Command line: '/usr/local/Cellar/httpd24/2.4.23_2/bin/httpd'" - } - }, - "beat": { - "hostname": "192-168-0-7.rdsnet.ro", - "name": "192-168-0-7.rdsnet.ro", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "module/apache2/error/test/test.log", - "fields": { - "pipeline_id": "apache2-error-pipeline", - "source_type": "apache2-error" - } - } - }, + "@timestamp": "2016-12-26T16:22:08.000Z", + "apache2.error.client": "192.168.33.1", + "apache2.error.level": "error", + "apache2.error.message": "File does not exist: /var/www/favicon.ico", + "fileset.module": "apache2", + "fileset.name": "error", + "input.type": "log", + "offset": 0, + "prospector.type": "log" + }, { - "_index": "filebeat-2016.12.29", - "_type": "log", - "_id": "AVlGiYcNqYg9cc5KQfd0", - "_score": 1, - "_source": { - "@timestamp": "2011-09-09T10:42:29.902Z", - "offset": 384, - "apache2": { - "error": { - "level": "error", - "module": "core", - "client": "72.15.99.187", - "pid": "35708", - "message": "File does not exist: /usr/local/apache2/htdocs/favicon.ico", - "tid": "4328636416" - } - }, - "beat": { - "hostname": "192-168-0-7.rdsnet.ro", - "name": "192-168-0-7.rdsnet.ro", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "module/apache2/error/test/test.log", - "fields": { - "pipeline_id": "apache2-error-pipeline", - "source_type": "apache2-error" - } - } - }, + "@timestamp": "2016-12-26T16:15:55.103Z", + "apache2.error.level": "notice", + "apache2.error.message": "AH00094: Command line: '/usr/local/Cellar/httpd24/2.4.23_2/bin/httpd'", + "apache2.error.module": "core", + "apache2.error.pid": "11379", + "fileset.module": "apache2", + "fileset.name": "error", + "input.type": "log", + "offset": 99, + "prospector.type": "log" + }, { - "_index": "filebeat-2016.12.29", - "_type": "log", - "_id": "AVlGiYcMqYg9cc5KQfdy", - "_score": 1, - "_source": { - "@timestamp": "2016-12-26T16:22:08.000Z", - "offset": 99, - "apache2": { - "error": { - "level": "error", - "client": "192.168.33.1", - "message": "File does not exist: /var/www/favicon.ico" - } - }, - "beat": { - "hostname": "192-168-0-7.rdsnet.ro", - "name": "192-168-0-7.rdsnet.ro", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "module/apache2/error/test/test.log", - "fields": { - "pipeline_id": "apache2-error-pipeline", - "source_type": "apache2-error" - } - } + "@timestamp": "2011-09-09T10:42:29.902Z", + "apache2.error.client": "72.15.99.187", + "apache2.error.level": "error", + "apache2.error.message": "File does not exist: /usr/local/apache2/htdocs/favicon.ico", + "apache2.error.module": "core", + "apache2.error.pid": "35708", + "apache2.error.tid": "4328636416", + "fileset.module": "apache2", + "fileset.name": "error", + "input.type": "log", + "offset": 229, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/auditd/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/auditd/_meta/docs.asciidoc index 732ead7a..767fdd43 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/auditd/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/auditd/_meta/docs.asciidoc @@ -45,7 +45,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "auditd.log.var.paths=[/path/to/log/audit/audit.log*]" +-M "auditd.log.var.paths=[/path/to/log/audit/audit.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/auditd/log/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/auditd/log/_meta/fields.yml index 9fff5ca6..55607c9f 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/auditd/log/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/auditd/log/_meta/fields.yml @@ -77,3 +77,7 @@ type: geo_point description: > The longitude and latitude. + - name: region_iso_code + type: keyword + description: > + Region ISO code. diff --git a/vendor/github.com/elastic/beats/filebeat/module/auditd/log/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/auditd/log/test/test.log-expected.json index 3aed3845..4b63b828 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/auditd/log/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/auditd/log/test/test.log-expected.json @@ -1,102 +1,54 @@ [ { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVrNfcrUJruQA3hgXR1I", - "_version": 1, - "_score": null, - "_source": { - "offset": 172, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/me/go/src/github.com/elastic/beats/filebeat/module/auditd/log/test/test.log", - "fileset": { - "module": "auditd", - "name": "log" - }, - "error": "", - "@timestamp": "2017-01-31T20:18:46.912Z", - "auditd": { - "log": { - "ses": "4294967295", - "op": "SPD-delete", - "res": "1", - "auid": "4294967295", - "dst": "192.168.0.0", - "src": "192.168.2.0", - "sequence": 18877201, - "src_prefixlen": "24", - "record_type": "MAC_IPSEC_EVENT", - "dst_prefixlen": "16" - } - }, - "beat": { - "hostname": "macbook.local", - "name": "macbook.local", - "version": "6.0.0-alpha1" - } - } - }, + "@timestamp": "2017-01-31T20:17:14.891Z", + "auditd.log.auid": "4294967295", + "auditd.log.dst": "192.168.0.0", + "auditd.log.dst_prefixlen": "16", + "auditd.log.op": "SPD-delete", + "auditd.log.record_type": "MAC_IPSEC_EVENT", + "auditd.log.res": "1", + "auditd.log.sequence": 18877201, + "auditd.log.ses": "4294967295", + "auditd.log.src": "192.168.2.0", + "auditd.log.src_prefixlen": "24", + "fileset.module": "auditd", + "fileset.name": "log", + "input.type": "log", + "offset": 0, + "prospector.type": "log" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVrNfcrUJruQA3hgXR1J", - "_version": 1, - "_score": null, - "_source": { - "offset": 534, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/me/go/src/github.com/elastic/beats/filebeat/module/auditd/log/test/test.log", - "fileset": { - "module": "auditd", - "name": "log" - }, - "error": "", - "@timestamp": "2017-01-31T20:18:46.912Z", - "auditd": { - "log": { - "syscall": "44", - "gid": "0", - "fsgid": "0", - "pid": "1281", - "suid": "0", - "record_type": "SYSCALL", - "uid": "0", - "egid": "0", - "exe": "/usr/libexec/strongswan/charon (deleted)", - "sgid": "0", - "ses": "4294967295", - "auid": "4294967295", - "comm": "charon", - "euid": "0", - "sequence": 18877199, - "a0": "9", - "ppid": "1240", - "a1": "7f564b2672a0", - "fsuid": "0", - "exit": "184", - "a2": "b8", - "a3": "0", - "success": "yes", - "tty": "(none)", - "arch": "x86_64", - "items": "0" - } - }, - "beat": { - "hostname": "macbook.local", - "name": "macbook.local", - "version": "6.0.0-alpha1" - } - } + "@timestamp": "2017-01-31T20:17:14.891Z", + "auditd.log.a0": "9", + "auditd.log.a1": "7f564b2672a0", + "auditd.log.a2": "b8", + "auditd.log.a3": "0", + "auditd.log.arch": "x86_64", + "auditd.log.auid": "4294967295", + "auditd.log.comm": "charon", + "auditd.log.egid": "0", + "auditd.log.euid": "0", + "auditd.log.exe": "/usr/libexec/strongswan/charon (deleted)", + "auditd.log.exit": "184", + "auditd.log.fsgid": "0", + "auditd.log.fsuid": "0", + "auditd.log.gid": "0", + "auditd.log.items": "0", + "auditd.log.pid": "1281", + "auditd.log.ppid": "1240", + "auditd.log.record_type": "SYSCALL", + "auditd.log.sequence": 18877199, + "auditd.log.ses": "4294967295", + "auditd.log.sgid": "0", + "auditd.log.success": "yes", + "auditd.log.suid": "0", + "auditd.log.syscall": "44", + "auditd.log.tty": "(none)", + "auditd.log.uid": "0", + "fileset.module": "auditd", + "fileset.name": "log", + "input.type": "log", + "offset": 174, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/config.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/config.yml index 6358721f..0c2562f2 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/config.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/config.yml @@ -6,3 +6,27 @@ # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. #var.paths: + + gc: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + audit: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + slowlog: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + deprecation: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/fields.yml index 19473ca3..a22b241f 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/_meta/fields.yml @@ -7,3 +7,19 @@ type: group description: > fields: + - name: node.name + description: "Name of the node" + example: "vWNJsZ3" + type: keyword + - name: index.name + description: "Index name" + example: "filebeat-test-input" + type: keyword + - name: index.id + description: "Index id" + example: "aOGgDwbURfCV57AScqbCgw" + type: keyword + - name: shard.id + description: "Id of the shard" + example: "0" + type: keyword diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/_meta/fields.yml new file mode 100644 index 00000000..96c7e69e --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/_meta/fields.yml @@ -0,0 +1,40 @@ +- name: audit + type: group + description: > + fields: + - name: layer + description: "The layer from which this event originated: rest, transport or ip_filter" + example: "rest" + type: keyword + - name: event_type + description: "The type of event that occurred: anonymous_access_denied, authentication_failed, access_denied, access_granted, connection_granted, connection_denied, tampered_request, run_as_granted, run_as_denied" + example: "access_granted" + type: keyword + - name: origin_type + description: "Where the request originated: rest (request originated from a REST API request), transport (request was received on the transport channel), local_node (the local node issued the request)" + example: "local_node" + type: keyword + - name: origin_address + description: "The IP address from which the request originated" + example: "192.168.1.42" + type: ip + - name: principal + description: "The principal (username) that failed authentication" + example: "_anonymous" + type: keyword + - name: action + description: "The name of the action that was executed" + example: "cluster:monitor/main" + type: keyword + - name: uri + description: "The REST endpoint URI" + example: /_xpack/security/_authenticate + type: keyword + - name: request + description: "The type of request that was executed" + example: "ClearScrollRequest" + type: keyword + - name: request_body + description: "The body of the request, if enabled" + example: "body" + type: text diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/config/audit.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/config/audit.yml new file mode 100644 index 00000000..8d9139a7 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/config/audit.yml @@ -0,0 +1,10 @@ +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +exclude_files: [".gz$"] + +fields: + service.name: "elasticsearch" +fields_under_root: true diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/ingest/pipeline.json new file mode 100644 index 00000000..9c832362 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/ingest/pipeline.json @@ -0,0 +1,31 @@ +{ + "description": "Pipeline for parsing elasticsearch audit logs", + "processors": [ + { + "rename": { + "field": "@timestamp", + "target_field": "event.created" + } + }, + { + "grok": { + "field": "message", + "patterns": [ + "\\[%{TIMESTAMP_ISO8601:elasticsearch.audit.timestamp}\\]\\s*(\\[%{WORD:elasticsearch.node.name}\\])?\\s*\\[%{WORD:elasticsearch.audit.layer}\\]\\s*\\[%{WORD:elasticsearch.audit.event_type}\\]\\s*(origin_type\\=\\[%{WORD:elasticsearch.audit.origin_type}\\])?,?\\s*(origin_address\\=\\[%{IPORHOST:elasticsearch.audit.origin_address}\\])?,?\\s*(principal\\=\\[%{WORD:elasticsearch.audit.principal}\\])?,?\\s*(action\\=\\[%{DATA:elasticsearch.audit.action}\\])?,?\\s*?(uri=\\[%{DATA:elasticsearch.audit.uri}\\])?,?\\s*(request\\=\\[%{WORD:elasticsearch.audit.request}\\])?,?\\s*(request_body\\=\\[%{DATA:elasticsearch.audit.request_body}\\])?,?" + ] + } + }, + { + "rename": { + "field": "elasticsearch.audit.timestamp", + "target_field": "@timestamp" + } + } + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/manifest.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/manifest.yml new file mode 100644 index 00000000..39598c99 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/manifest.yml @@ -0,0 +1,13 @@ +module_version: 1.0 + +var: + - name: paths + default: + - /var/log/elasticsearch/*_access.log + os.darwin: + - /usr/local/elasticsearch/*_access.log + os.windows: + - c:/ProgramData/Elastic/Elasticsearch/logs/*_access.log + +ingest_pipeline: ingest/pipeline.json +input: config/audit.yml diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/test/test.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/test/test.log new file mode 100644 index 00000000..cabc1ee6 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/test/test.log @@ -0,0 +1,7 @@ +[2018-06-19T05:16:15,549] [rest] [authentication_failed] origin_address=[147.107.128.77], principal=[i030648], uri=[/_xpack/security/_authenticate] +[2018-06-19T05:07:52,304] [v_VJhjV] [rest] [authentication_failed] origin_address=[172.22.0.3], principal=[rado], uri=[/_xpack/security/_authenticate] +[2018-06-19T05:00:15,778] [transport] [access_granted] origin_type=[local_node], origin_address=[192.168.1.165], principal=[_xpack_security], action=[indices:data/read/scroll/clear], request=[ClearScrollRequest] +[2018-06-19T05:07:45,544] [v_VJhjV] [rest] [anonymous_access_denied] origin_address=[172.22.0.3], uri=[/_xpack/security/_authenticate] +[2018-06-19T05:26:27,268] [rest] [authentication_failed] origin_address=[147.107.128.77], principal=[N078801], uri=[/_xpack/security/_authenticate] +[2018-06-19T05:55:26,898] [transport] [access_denied] origin_type=[rest], origin_address=[147.107.128.77], principal=[_anonymous], action=[cluster:monitor/main], request=[MainRequest] +[2018-06-19T05:24:15,190] [v_VJhjV] [rest] [authentication_failed] origin_address=[172.18.0.3], principal=[elastic], uri=[/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip], request_body=[body] diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/test/test.log-expected.json new file mode 100644 index 00000000..77948ecc --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/audit/test/test.log-expected.json @@ -0,0 +1,114 @@ +[ + { + "@timestamp": "2018-06-19T05:16:15,549", + "elasticsearch.audit.event_type": "authentication_failed", + "elasticsearch.audit.layer": "rest", + "elasticsearch.audit.origin_address": "147.107.128.77", + "elasticsearch.audit.principal": "i030648", + "elasticsearch.audit.uri": "/_xpack/security/_authenticate", + "fileset.module": "elasticsearch", + "fileset.name": "audit", + "input.type": "log", + "message": "[2018-06-19T05:16:15,549] [rest] [authentication_failed] origin_address=[147.107.128.77], principal=[i030648], uri=[/_xpack/security/_authenticate]", + "offset": 0, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-19T05:07:52,304", + "elasticsearch.audit.event_type": "authentication_failed", + "elasticsearch.audit.layer": "rest", + "elasticsearch.audit.origin_address": "172.22.0.3", + "elasticsearch.audit.principal": "rado", + "elasticsearch.audit.uri": "/_xpack/security/_authenticate", + "elasticsearch.node.name": "v_VJhjV", + "fileset.module": "elasticsearch", + "fileset.name": "audit", + "input.type": "log", + "message": "[2018-06-19T05:07:52,304] [v_VJhjV] [rest] [authentication_failed]\torigin_address=[172.22.0.3], principal=[rado], uri=[/_xpack/security/_authenticate]", + "offset": 155, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-19T05:00:15,778", + "elasticsearch.audit.action": "indices:data/read/scroll/clear", + "elasticsearch.audit.event_type": "access_granted", + "elasticsearch.audit.layer": "transport", + "elasticsearch.audit.origin_address": "192.168.1.165", + "elasticsearch.audit.origin_type": "local_node", + "elasticsearch.audit.principal": "_xpack_security", + "elasticsearch.audit.request": "ClearScrollRequest", + "fileset.module": "elasticsearch", + "fileset.name": "audit", + "input.type": "log", + "message": "[2018-06-19T05:00:15,778] [transport] [access_granted] origin_type=[local_node], origin_address=[192.168.1.165], principal=[_xpack_security], action=[indices:data/read/scroll/clear], request=[ClearScrollRequest]", + "offset": 306, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-19T05:07:45,544", + "elasticsearch.audit.event_type": "anonymous_access_denied", + "elasticsearch.audit.layer": "rest", + "elasticsearch.audit.origin_address": "172.22.0.3", + "elasticsearch.audit.uri": "/_xpack/security/_authenticate", + "elasticsearch.node.name": "v_VJhjV", + "fileset.module": "elasticsearch", + "fileset.name": "audit", + "input.type": "log", + "message": "[2018-06-19T05:07:45,544] [v_VJhjV] [rest] [anonymous_access_denied]\torigin_address=[172.22.0.3], uri=[/_xpack/security/_authenticate]", + "offset": 519, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-19T05:26:27,268", + "elasticsearch.audit.event_type": "authentication_failed", + "elasticsearch.audit.layer": "rest", + "elasticsearch.audit.origin_address": "147.107.128.77", + "elasticsearch.audit.principal": "N078801", + "elasticsearch.audit.uri": "/_xpack/security/_authenticate", + "fileset.module": "elasticsearch", + "fileset.name": "audit", + "input.type": "log", + "message": "[2018-06-19T05:26:27,268] [rest] [authentication_failed]\torigin_address=[147.107.128.77], principal=[N078801], uri=[/_xpack/security/_authenticate]", + "offset": 654, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-19T05:55:26,898", + "elasticsearch.audit.action": "cluster:monitor/main", + "elasticsearch.audit.event_type": "access_denied", + "elasticsearch.audit.layer": "transport", + "elasticsearch.audit.origin_address": "147.107.128.77", + "elasticsearch.audit.origin_type": "rest", + "elasticsearch.audit.principal": "_anonymous", + "elasticsearch.audit.request": "MainRequest", + "fileset.module": "elasticsearch", + "fileset.name": "audit", + "input.type": "log", + "message": "[2018-06-19T05:55:26,898] [transport] [access_denied]\torigin_type=[rest], origin_address=[147.107.128.77], principal=[_anonymous], action=[cluster:monitor/main], request=[MainRequest]", + "offset": 802, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-19T05:24:15,190", + "elasticsearch.audit.event_type": "authentication_failed", + "elasticsearch.audit.layer": "rest", + "elasticsearch.audit.origin_address": "172.18.0.3", + "elasticsearch.audit.principal": "elastic", + "elasticsearch.audit.request_body": "body", + "elasticsearch.audit.uri": "/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip", + "elasticsearch.node.name": "v_VJhjV", + "fileset.module": "elasticsearch", + "fileset.name": "audit", + "input.type": "log", + "message": "[2018-06-19T05:24:15,190] [v_VJhjV] [rest] [authentication_failed]\torigin_address=[172.18.0.3], principal=[elastic], uri=[/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip], request_body=[body]", + "offset": 986, + "prospector.type": "log", + "service.name": "elasticsearch" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/_meta/fields.yml new file mode 100644 index 00000000..b4f80836 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/_meta/fields.yml @@ -0,0 +1,4 @@ +- name: deprecation + type: group + description: > + fields: diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/config/log.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/config/log.yml new file mode 100644 index 00000000..e49d0c86 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/config/log.yml @@ -0,0 +1,15 @@ +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +exclude_files: [".gz$","_slowlog.log$","_access.log$"] +multiline: + pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}' + negate: true + match: after + +fields: + service.name: "elasticsearch" + +fields_under_root: true diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/ingest/pipeline.json new file mode 100755 index 00000000..17bb9ddd --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/ingest/pipeline.json @@ -0,0 +1,36 @@ +{ + "description": "Pipeline for parsing the Elasticsearch deprecation log file.", + "on_failure": [ + { + "set": { + "field": "error.message", + "value": "{{ _ingest.on_failure_message }}" + } + } + ], + "processors": [ + { + "rename": { + "field": "@timestamp", + "target_field": "event.created" + } + }, + { + "grok": { + "field": "message", + "pattern_definitions": { + "GREEDYMULTILINE": "(.|\n)*" + }, + "patterns": [ + "\\[%{TIMESTAMP_ISO8601:timestamp}\\]\\[%{LOGLEVEL:log.level}%{SPACE}*\\]\\[%{DATA:elasticsearch.server.component}%{SPACE}*\\] %{GREEDYMULTILINE:message}" + ] + } + }, + { + "rename": { + "field": "timestamp", + "target_field": "@timestamp" + } + } + ] +} diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/manifest.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/manifest.yml new file mode 100644 index 00000000..63bc20cb --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/manifest.yml @@ -0,0 +1,13 @@ +module_version: 1.0 + +var: + - name: paths + default: + - /var/log/elasticsearch/*_deprecation.log + os.darwin: + - /usr/local/elasticsearch/*_deprecation.log + os.windows: + - c:/ProgramData/Elastic/Elasticsearch/logs/*_deprecation.log + +ingest_pipeline: ingest/pipeline.json +prospector: config/log.yml diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log new file mode 100644 index 00000000..f797c1c2 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log @@ -0,0 +1,4 @@ +[2018-04-23T16:40:13,737][WARN ][o.e.d.a.a.i.t.p.PutIndexTemplateRequest] Deprecated field [template] used, replaced by [index_patterns] +[2018-04-23T16:40:13,862][WARN ][o.e.d.a.a.i.t.p.PutIndexTemplateRequest] Deprecated field [template] used, replaced by [index_patterns] +[2018-04-23T16:40:14,792][WARN ][o.e.d.a.a.i.t.p.PutIndexTemplateRequest] Deprecated field [template] used, replaced by [index_patterns] +[2018-04-23T16:40:15,127][WARN ][o.e.d.a.a.i.t.p.PutIndexTemplateRequest] Deprecated field [template] used, replaced by [index_patterns] diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log new file mode 100644 index 00000000..8dc0fe8e --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log @@ -0,0 +1,16 @@ +[2017-11-30T13:38:16,911][WARN ][o.e.d.c.ParseField ] Deprecated field [inline] used, expected [source] instead +[2017-11-30T13:38:16,941][WARN ][o.e.d.c.ParseField ] Deprecated field [inline] used, expected [source] instead +[2017-11-30T13:39:28,986][WARN ][o.e.d.i.m.UidFieldMapper ] Fielddata access on the _uid field is deprecated, use _id instead +[2017-11-30T13:39:36,339][WARN ][o.e.d.i.m.UidFieldMapper ] Fielddata access on the _uid field is deprecated, use _id instead +[2017-11-30T13:40:49,540][WARN ][o.e.d.i.m.UidFieldMapper ] Fielddata access on the _uid field is deprecated, use _id instead +[2017-11-30T14:08:37,413][WARN ][o.e.d.i.m.UidFieldMapper ] Fielddata access on the _uid field is deprecated, use _id instead +[2017-11-30T14:08:37,413][WARN ][o.e.d.i.m.UidFieldMapper ] Fielddata access on the _uid field is deprecated, use _id instead +[2017-11-30T14:08:46,006][WARN ][o.e.d.i.m.UidFieldMapper ] Fielddata access on the _uid field is deprecated, use _id instead +[2017-11-30T14:08:46,006][WARN ][o.e.d.i.m.UidFieldMapper ] Fielddata access on the _uid field is deprecated, use _id instead +[2017-12-01T14:05:54,017][WARN ][o.e.d.i.m.AllFieldMapper ] [_all] is deprecated in 6.0+ and will be removed in 7.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field. +[2017-12-01T14:05:54,019][WARN ][o.e.d.i.m.AllFieldMapper ] [_all] is deprecated in 6.0+ and will be removed in 7.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field. +[2017-12-01T14:06:52,059][WARN ][o.e.d.i.m.AllFieldMapper ] [_all] is deprecated in 6.0+ and will be removed in 7.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field. +[2017-12-01T14:46:10,428][WARN ][o.e.d.s.a.InternalOrder$Parser] Deprecated aggregation order key [_term] used, replaced by [_key] +[2017-12-04T16:17:18,271][WARN ][o.e.d.a.a.i.t.p.PutIndexTemplateRequest] Deprecated field [template] used, replaced by [index_patterns] +[2017-12-04T16:17:18,282][WARN ][o.e.d.i.m.MapperService ] [_default_] mapping is deprecated since it is not useful anymore now that indexes cannot have more than one type +[2017-12-04T16:20:43,248][WARN ][o.e.d.i.m.MapperService ] [_default_] mapping is deprecated since it is not useful anymore now that indexes cannot have more than one type diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/_meta/fields.yml new file mode 100644 index 00000000..643163eb --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/_meta/fields.yml @@ -0,0 +1,110 @@ +- name: gc + type: group + description: > + GC fileset fields. + fields: + - name: phase + type: group + description: > + Fields specific to GC phase. + fields: + - name: name + type: keyword + description: > + Name of the GC collection phase. + - name: duration_sec + type: float + description: > + Collection phase duration according to the Java virtual machine. + - name: scrub_symbol_table_time_sec + type: float + description: > + Pause time in seconds cleaning up symbol tables. + - name: scrub_string_table_time_sec + type: float + description: > + Pause time in seconds cleaning up string tables. + - name: weak_refs_processing_time_sec + type: float + description: > + Time spent processing weak references in seconds. + - name: parallel_rescan_time_sec + type: float + description: > + Time spent in seconds marking live objects while application is stopped. + - name: class_unload_time_sec + type: float + description: > + Time spent unloading unused classes in seconds. + - name: cpu_time + type: group + description: > + Process CPU time spent performing collections. + fields: + - name: user_sec + type: float + description: > + CPU time spent outside the kernel. + - name: sys_sec + type: float + description: > + CPU time spent inside the kernel. + - name: real_sec + type: float + description: > + Total elapsed CPU time spent to complete the collection from start to finish. + - name: jvm_runtime_sec + type: float + description: > + The time from JVM start up in seconds, as a floating point number. + - name: threads_total_stop_time_sec + type: float + description: > + Garbage collection threads total stop time seconds. + - name: stopping_threads_time_sec + type: float + description: > + Time took to stop threads seconds. + - name: tags + type: keyword + description: > + GC logging tags. + - name: heap + type: group + description: > + Heap allocation and total size. + fields: + - name: size_kb + type: integer + description: > + Total heap size in kilobytes. + - name: used_kb + type: integer + description: > + Used heap in kilobytes. + - name: old_gen + type: group + description: > + Old generation occupancy and total size. + fields: + - name: size_kb + type: integer + description: > + Total size of old generation in kilobytes. + - name: used_kb + type: integer + description: > + Old generation occupancy in kilobytes. + - name: young_gen + type: group + description: > + Young generation occupancy and total size. + fields: + - name: size_kb + type: integer + description: > + Total size of young generation in kilobytes. + - name: used_kb + type: integer + description: > + Young generation occupancy in kilobytes. diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/config/gc.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/config/gc.yml new file mode 100644 index 00000000..54457eae --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/config/gc.yml @@ -0,0 +1,15 @@ +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +exclude_files: [".gz$"] +exclude_lines: ["^(OpenJDK|Java HotSpot).* Server VM ", "^CommandLine flags: ", "^Memory: "] # exclude JVM8 banner +multiline: + pattern: '^\[?[0-9]{4}-[0-9]{2}-[0-9]{2}' + negate: true + match: after + +fields: + service.name: "elasticsearch" +fields_under_root: true diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/ingest/pipeline.json new file mode 100644 index 00000000..9cdea8d5 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/ingest/pipeline.json @@ -0,0 +1,59 @@ +{ + "description": "Pipeline for parsing Elasticsearch JVM garbage collection logs", + "processors": [ + { + "grok": { + "field": "message", + "patterns": [ + "(?:%{JVM8HEADER}|%{JVM9HEADER}) Total time for which application threads were stopped: %{BASE10NUM:elasticsearch.gc.threads_total_stop_time_sec} seconds, Stopping threads took: %{BASE10NUM:elasticsearch.gc.stopping_threads_time_sec} seconds", + "(?:%{JVM8HEADER}) \\[GC \\(%{DATA:elasticsearch.gc.phase.name}\\) \\[YG occupancy: %{BASE10NUM:elasticsearch.gc.young_gen.used_kb} K \\(%{BASE10NUM:elasticsearch.gc.young_gen.size_kb} K\\)\\]%{BASE10NUM}: \\[Rescan \\(parallel\\) , %{BASE10NUM:elasticsearch.gc.phase.parallel_rescan_time_sec} secs\\]%{BASE10NUM}: \\[weak refs processing, %{BASE10NUM:elasticsearch.gc.phase.weak_refs_processing_time_sec} secs\\]%{BASE10NUM}: \\[class unloading, %{BASE10NUM:elasticsearch.gc.phase.class_unload_time_sec} secs\\]%{BASE10NUM}: \\[scrub symbol table, %{BASE10NUM:elasticsearch.gc.phase.scrub_symbol_table_time_sec} secs\\]%{BASE10NUM}: \\[scrub string table, %{BASE10NUM:elasticsearch.gc.phase.scrub_string_table_time_sec} secs\\]\\[1 CMS-remark: %{BASE10NUM:elasticsearch.gc.old_gen.used_kb}K\\(%{BASE10NUM:elasticsearch.gc.old_gen.size_kb}K\\)\\] %{BASE10NUM:elasticsearch.gc.heap.used_kb}K\\(%{BASE10NUM:elasticsearch.gc.heap.size_kb}K\\), %{BASE10NUM:elasticsearch.gc.phase.duration_sec} secs\\] %{PROCTIME}", + "(?:%{JVM8HEADER}) \\[GC \\(%{DATA:elasticsearch.gc.phase.name}\\) \\[%{BASE10NUM} CMS-initial-mark: %{BASE10NUM:elasticsearch.gc.old_gen.used_kb}K\\(%{BASE10NUM:elasticsearch.gc.old_gen.size_kb}K\\)\\] %{BASE10NUM:elasticsearch.gc.heap.used_kb}K\\(%{BASE10NUM:elasticsearch.gc.heap.size_kb}K\\), %{BASE10NUM:elasticsearch.gc.phase.duration_sec} secs\\] %{PROCTIME}", + "%{JVM9HEADER} GC\\(%{BASE10NUM}\\) ParNew: %{BASE10NUM}K-\\>%{BASE10NUM:elasticsearch.gc.young_gen.used_kb}K\\(%{BASE10NUM:elasticsearch.gc.young_gen.size_kb}K\\)", + "%{JVM9HEADER} GC\\(%{BASE10NUM}\\) Old: %{BASE10NUM}K-\\>%{BASE10NUM:elasticsearch.gc.old_gen.used_kb}K\\(%{BASE10NUM:elasticsearch.gc.old_gen.size_kb}K\\)", + "(?:%{JVM8HEADER}|%{JVM9HEADER}) %{GREEDYMULTILINE:message}" + ], + "pattern_definitions": { + "GREEDYMULTILINE": "(.|\n)*", + "JVM8HEADER": "%{TIMESTAMP_ISO8601:timestamp}: %{BASE10NUM:elasticsearch.gc.jvm_runtime_sec}:", + "JVM9HEADER": "\\[%{TIMESTAMP_ISO8601:timestamp}\\]\\[%{POSINT:process.pid}\\]\\[%{DATA:elasticsearch.gc.tags}%{SPACE}*\\]", + "PROCTIME": "\\[Times: user=%{BASE10NUM:elasticsearch.gc.phase.cpu_time.user_sec} sys=%{BASE10NUM:elasticsearch.gc.phase.cpu_time.sys_sec}, real=%{BASE10NUM:elasticsearch.gc.phase.cpu_time.real_sec} secs\\]" + } + } + }, + { + "rename": { + "field": "@timestamp", + "target_field": "event.created" + } + }, + { + "date": { + "field": "timestamp", + "target_field": "@timestamp", + "formats": [ + "ISO8601" + ] + } + }, + { + "remove": { + "field": "timestamp" + } + }, + { + "split": { + "field": "elasticsearch.gc.tags", + "separator": ",", + "ignore_missing": true + } + } + ], + "on_failure": [ + { + "set": { + "field": "error.message", + "value": "{{ _ingest.on_failure_message }}" + } + } + ] +} diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/manifest.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/manifest.yml new file mode 100644 index 00000000..7ea640f7 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/manifest.yml @@ -0,0 +1,16 @@ +module_version: 1.0 + +var: + - name: paths + default: + - /var/log/elasticsearch/gc.log.[0-9]* + - /var/log/elasticsearch/gc.log + os.darwin: + - /usr/local/elasticsearch/gc.log.[0-9]* + - /usr/local/elasticsearch/gc.log + os.windows: + - c:/ProgramData/Elastic/Elasticsearch/logs/gc.log.* + - c:/ProgramData/Elastic/Elasticsearch/logs/gc.log + +ingest_pipeline: ingest/pipeline.json +input: config/gc.yml diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log new file mode 100644 index 00000000..d32a2e1f --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log @@ -0,0 +1,4840 @@ +[2018-06-13T07:44:22.647+0000][32376][gc] Using Concurrent Mark Sweep +[2018-06-13T07:44:22.647+0000][32376][gc,heap,coops] Heap address: 0x00000000c0000000, size: 1024 MB, Compressed Oops mode: 32-bit +[2018-06-13T07:44:22.725+0000][32376][safepoint ] Application time: 0,0011068 seconds +[2018-06-13T07:44:22.725+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000563 seconds, Stopping threads took: 0,0000092 seconds +[2018-06-13T07:44:22.813+0000][32376][safepoint ] Application time: 0,0884133 seconds +[2018-06-13T07:44:22.813+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000755 seconds, Stopping threads took: 0,0000103 seconds +[2018-06-13T07:44:22.836+0000][32376][safepoint ] Application time: 0,0226148 seconds +[2018-06-13T07:44:22.836+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000736 seconds, Stopping threads took: 0,0000115 seconds +[2018-06-13T07:44:23.016+0000][32376][safepoint ] Application time: 0,1804640 seconds +[2018-06-13T07:44:23.017+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001712 seconds, Stopping threads took: 0,0000212 seconds +[2018-06-13T07:44:23.059+0000][32376][safepoint ] Application time: 0,0427365 seconds +[2018-06-13T07:44:23.060+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000910 seconds, Stopping threads took: 0,0000104 seconds +[2018-06-13T07:44:23.072+0000][32376][safepoint ] Application time: 0,0120864 seconds +[2018-06-13T07:44:23.072+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002664 seconds, Stopping threads took: 0,0000334 seconds +[2018-06-13T07:44:23.105+0000][32376][safepoint ] Application time: 0,0328884 seconds +[2018-06-13T07:44:23.105+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001472 seconds, Stopping threads took: 0,0000279 seconds +[2018-06-13T07:44:23.245+0000][32376][safepoint ] Application time: 0,1401198 seconds +[2018-06-13T07:44:23.245+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001774 seconds, Stopping threads took: 0,0000166 seconds +[2018-06-13T07:44:23.526+0000][32376][safepoint ] Application time: 0,2803587 seconds +[2018-06-13T07:44:23.526+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002301 seconds, Stopping threads took: 0,0000177 seconds +[2018-06-13T07:44:23.550+0000][32376][safepoint ] Application time: 0,0243595 seconds +[2018-06-13T07:44:23.551+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001740 seconds, Stopping threads took: 0,0000114 seconds +[2018-06-13T07:44:23.768+0000][32376][safepoint ] Application time: 0,2175677 seconds +[2018-06-13T07:44:23.768+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002329 seconds, Stopping threads took: 0,0000205 seconds +[2018-06-13T07:44:23.804+0000][32376][safepoint ] Application time: 0,0356169 seconds +[2018-06-13T07:44:23.804+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002034 seconds, Stopping threads took: 0,0000405 seconds +[2018-06-13T07:44:23.820+0000][32376][safepoint ] Application time: 0,0157189 seconds +[2018-06-13T07:44:23.820+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002240 seconds, Stopping threads took: 0,0000540 seconds +[2018-06-13T07:44:23.838+0000][32376][safepoint ] Application time: 0,0177385 seconds +[2018-06-13T07:44:23.838+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002886 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-13T07:44:23.868+0000][32376][safepoint ] Application time: 0,0295439 seconds +[2018-06-13T07:44:23.868+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001937 seconds, Stopping threads took: 0,0000221 seconds +[2018-06-13T07:44:24.091+0000][32376][safepoint ] Application time: 0,2231589 seconds +[2018-06-13T07:44:24.092+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002032 seconds, Stopping threads took: 0,0000222 seconds +[2018-06-13T07:44:24.112+0000][32376][safepoint ] Application time: 0,0201046 seconds +[2018-06-13T07:44:24.112+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001069 seconds, Stopping threads took: 0,0000242 seconds +[2018-06-13T07:44:24.126+0000][32376][safepoint ] Application time: 0,0144240 seconds +[2018-06-13T07:44:24.126+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001276 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-13T07:44:24.210+0000][32376][safepoint ] Application time: 0,0833044 seconds +[2018-06-13T07:44:24.210+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001685 seconds, Stopping threads took: 0,0000201 seconds +[2018-06-13T07:44:24.330+0000][32376][safepoint ] Application time: 0,1200701 seconds +[2018-06-13T07:44:24.330+0000][32376][gc,start ] GC(0) Pause Young (Allocation Failure) +[2018-06-13T07:44:24.330+0000][32376][gc,task ] GC(0) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:24.343+0000][32376][gc,age ] GC(0) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:24.343+0000][32376][gc,age ] GC(0) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:24.343+0000][32376][gc,age ] GC(0) - age 1: 17876816 bytes, 17876816 total +[2018-06-13T07:44:24.343+0000][32376][gc,heap ] GC(0) ParNew: 279616K->17562K(314560K) +[2018-06-13T07:44:24.343+0000][32376][gc,heap ] GC(0) CMS: 0K->0K(699072K) +[2018-06-13T07:44:24.343+0000][32376][gc,metaspace ] GC(0) Metaspace: 22819K->22819K(1071104K) +[2018-06-13T07:44:24.343+0000][32376][gc ] GC(0) Pause Young (Allocation FailurGe) 273M->17M(989M) 13,344ms +[2018-06-13T07:44:24.343+0000][32376][gc,cpu ] GC(0) User=0,07s Sys=0,00s Real=0,01s +[2018-06-13T07:44:24.343+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0135152 seconds, Stopping threads took: 0,0000320 seconds +[2018-06-13T07:44:24.344+0000][32376][safepoint ] Application time: 0,0000687 seconds +[2018-06-13T07:44:24.344+0000][32376][gc,start ] GC(1) Pause Initial Mark +[2018-06-13T07:44:24.346+0000][32376][gc ] GC(1) Pause Initial Mark 22M->22M(989M) 2,829ms +[2018-06-13T07:44:24.347+0000][32376][gc,cpu ] GC(1) User=0,01s Sys=0,00s Real=0,00s +[2018-06-13T07:44:24.347+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0029891 seconds, Stopping threads took: 0,0000406 seconds +[2018-06-13T07:44:24.347+0000][32376][gc ] GC(1) Concurrent Mark +[2018-06-13T07:44:24.347+0000][32376][gc,task ] GC(1) Using 2 workers of 2 for marking +[2018-06-13T07:44:24.348+0000][32376][gc ] GC(1) Concurrent Mark 0,937ms +[2018-06-13T07:44:24.348+0000][32376][gc,cpu ] GC(1) User=0,00s Sys=0,00s Real=0,00s +[2018-06-13T07:44:24.348+0000][32376][gc ] GC(1) Concurrent Preclean +[2018-06-13T07:44:24.350+0000][32376][gc ] GC(1) Concurrent Preclean 2,067ms +[2018-06-13T07:44:24.350+0000][32376][gc,cpu ] GC(1) User=0,00s Sys=0,00s Real=0,00s +[2018-06-13T07:44:24.350+0000][32376][gc ] GC(1) Concurrent Abortable Preclean +[2018-06-13T07:44:24.595+0000][32376][safepoint ] Application time: 0,2479945 seconds +[2018-06-13T07:44:24.595+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001480 seconds, Stopping threads took: 0,0000175 seconds +[2018-06-13T07:44:24.595+0000][32376][gc ] GC(1) Concurrent Abortable Preclean 245,156ms +[2018-06-13T07:44:24.595+0000][32376][gc,cpu ] GC(1) User=1,18s Sys=0,02s Real=0,25s +[2018-06-13T07:44:24.595+0000][32376][safepoint ] Application time: 0,0001310 seconds +[2018-06-13T07:44:24.595+0000][32376][gc,start ] GC(1) Pause Remark +[2018-06-13T07:44:24.618+0000][32376][gc ] GC(1) Pause Remark 169M->169M(989M) 23,325ms +[2018-06-13T07:44:24.618+0000][32376][gc,cpu ] GC(1) User=0,14s Sys=0,00s Real=0,02s +[2018-06-13T07:44:24.618+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0234535 seconds, Stopping threads took: 0,0000128 seconds +[2018-06-13T07:44:24.618+0000][32376][gc ] GC(1) Concurrent Sweep +[2018-06-13T07:44:24.618+0000][32376][gc ] GC(1) Concurrent Sweep 0,034ms +[2018-06-13T07:44:24.618+0000][32376][gc,cpu ] GC(1) User=0,00s Sys=0,00s Real=0,00s +[2018-06-13T07:44:24.618+0000][32376][gc ] GC(1) Concurrent Reset +[2018-06-13T07:44:24.619+0000][32376][gc ] GC(1) Concurrent Reset 0,636ms +[2018-06-13T07:44:24.619+0000][32376][gc,cpu ] GC(1) User=0,00s Sys=0,00s Real=0,00s +[2018-06-13T07:44:24.619+0000][32376][gc,heap ] GC(1) Old: 0K->0K(699072K) +[2018-06-13T07:44:24.763+0000][32376][safepoint ] Application time: 0,1444854 seconds +[2018-06-13T07:44:24.763+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003334 seconds, Stopping threads took: 0,0000230 seconds +[2018-06-13T07:44:24.777+0000][32376][safepoint ] Application time: 0,0132824 seconds +[2018-06-13T07:44:24.777+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003048 seconds, Stopping threads took: 0,0000297 seconds +[2018-06-13T07:44:24.784+0000][32376][safepoint ] Application time: 0,0066508 seconds +[2018-06-13T07:44:24.784+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004138 seconds, Stopping threads took: 0,0000365 seconds +[2018-06-13T07:44:24.808+0000][32376][safepoint ] Application time: 0,0239448 seconds +[2018-06-13T07:44:24.808+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003185 seconds, Stopping threads took: 0,0000191 seconds +[2018-06-13T07:44:25.072+0000][32376][safepoint ] Application time: 0,2640511 seconds +[2018-06-13T07:44:25.074+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012229 seconds, Stopping threads took: 0,0000654 seconds +[2018-06-13T07:44:25.139+0000][32376][safepoint ] Application time: 0,0649277 seconds +[2018-06-13T07:44:25.139+0000][32376][gc,start ] GC(2) Pause Young (Allocation Failure) +[2018-06-13T07:44:25.139+0000][32376][gc,task ] GC(2) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:25.167+0000][32376][gc,age ] GC(2) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:25.167+0000][32376][gc,age ] GC(2) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:25.167+0000][32376][gc,age ] GC(2) - age 1: 17302064 bytes, 17302064 total +[2018-06-13T07:44:25.167+0000][32376][gc,age ] GC(2) - age 2: 7206808 bytes, 24508872 total +[2018-06-13T07:44:25.167+0000][32376][gc,heap ] GC(2) ParNew: 297178K->25722K(314560K) +[2018-06-13T07:44:25.167+0000][32376][gc,heap ] GC(2) CMS: 0K->0K(699072K) +[2018-06-13T07:44:25.167+0000][32376][gc,metaspace ] GC(2) Metaspace: 25785K->25785K(1073152K) +[2018-06-13T07:44:25.167+0000][32376][gc ] GC(2) Pause Young (Allocation Failure) 290M->25M(989M) 27,906ms +[2018-06-13T07:44:25.167+0000][32376][gc,cpu ] GC(2) User=0,17s Sys=0,00s Real=0,03s +[2018-06-13T07:44:25.167+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0280689 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-13T07:44:25.601+0000][32376][safepoint ] Application time: 0,4344122 seconds +[2018-06-13T07:44:25.601+0000][32376][gc,start ] GC(3) Pause Young (Allocation Failure) +[2018-06-13T07:44:25.601+0000][32376][gc,task ] GC(3) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:25.664+0000][32376][gc,age ] GC(3) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:44:25.664+0000][32376][gc,age ] GC(3) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:44:25.664+0000][32376][gc,age ] GC(3) - age 1: 24131296 bytes, 24131296 total +[2018-06-13T07:44:25.664+0000][32376][gc,age ] GC(3) - age 2: 5995200 bytes, 30126496 total +[2018-06-13T07:44:25.665+0000][32376][gc,heap ] GC(3) ParNew: 305338K->34943K(314560K) +[2018-06-13T07:44:25.665+0000][32376][gc,heap ] GC(3) CMS: 0K->12417K(699072K) +[2018-06-13T07:44:25.665+0000][32376][gc,metaspace ] GC(3) Metaspace: 27543K->27543K(1075200K) +[2018-06-13T07:44:25.665+0000][32376][gc ] GC(3) Pause Young (Allocation Failure) 298M->46M(989M) 63,198ms +[2018-06-13T07:44:25.665+0000][32376][gc,cpu ] GC(3) User=0,18s Sys=0,00s Real=0,06s +[2018-06-13T07:44:25.665+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0633681 seconds, Stopping threads took: 0,0000415 seconds +[2018-06-13T07:44:26.392+0000][32376][safepoint ] Application time: 0,7274676 seconds +[2018-06-13T07:44:26.392+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003925 seconds, Stopping threads took: 0,0000173 seconds +[2018-06-13T07:44:26.461+0000][32376][safepoint ] Application time: 0,0681660 seconds +[2018-06-13T07:44:26.461+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002901 seconds, Stopping threads took: 0,0000163 seconds +[2018-06-13T07:44:26.730+0000][32376][safepoint ] Application time: 0,2687528 seconds +[2018-06-13T07:44:26.730+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003796 seconds, Stopping threads took: 0,0000311 seconds +[2018-06-13T07:44:26.998+0000][32376][safepoint ] Application time: 0,2676172 seconds +[2018-06-13T07:44:26.998+0000][32376][gc,start ] GC(4) Pause Young (Allocation Failure) +[2018-06-13T07:44:26.998+0000][32376][gc,task ] GC(4) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:27.042+0000][32376][gc,age ] GC(4) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:44:27.042+0000][32376][gc,age ] GC(4) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:44:27.042+0000][32376][gc,age ] GC(4) - age 1: 31453568 bytes, 31453568 total +[2018-06-13T07:44:27.042+0000][32376][gc,heap ] GC(4) ParNew: 314559K->34944K(314560K) +[2018-06-13T07:44:27.042+0000][32376][gc,heap ] GC(4) CMS: 12417K->23972K(699072K) +[2018-06-13T07:44:27.042+0000][32376][gc,metaspace ] GC(4) Metaspace: 33892K->33892K(1081344K) +[2018-06-13T07:44:27.042+0000][32376][gc ] GC(4) Pause Young (Allocation Failure) 319M->57M(989M) 44,115ms +[2018-06-13T07:44:27.042+0000][32376][gc,cpu ] GC(4) User=0,25s Sys=0,00s Real=0,04s +[2018-06-13T07:44:27.042+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0442278 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-13T07:44:27.284+0000][32376][safepoint ] Application time: 0,2419322 seconds +[2018-06-13T07:44:27.284+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001184 seconds, Stopping threads took: 0,0000354 seconds +[2018-06-13T07:44:27.310+0000][32376][safepoint ] Application time: 0,0257638 seconds +[2018-06-13T07:44:27.310+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003724 seconds, Stopping threads took: 0,0000229 seconds +[2018-06-13T07:44:27.329+0000][32376][safepoint ] Application time: 0,0187607 seconds +[2018-06-13T07:44:27.329+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000686 seconds, Stopping threads took: 0,0000228 seconds +[2018-06-13T07:44:27.353+0000][32376][safepoint ] Application time: 0,0240116 seconds +[2018-06-13T07:44:27.353+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002002 seconds, Stopping threads took: 0,0000392 seconds +[2018-06-13T07:44:27.376+0000][32376][safepoint ] Application time: 0,0220894 seconds +[2018-06-13T07:44:27.376+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001395 seconds, Stopping threads took: 0,0000266 seconds +[2018-06-13T07:44:27.402+0000][32376][safepoint ] Application time: 0,0259109 seconds +[2018-06-13T07:44:27.402+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001967 seconds, Stopping threads took: 0,0000260 seconds +[2018-06-13T07:44:27.418+0000][32376][safepoint ] Application time: 0,0159261 seconds +[2018-06-13T07:44:27.418+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001465 seconds, Stopping threads took: 0,0000220 seconds +[2018-06-13T07:44:27.440+0000][32376][safepoint ] Application time: 0,0222272 seconds +[2018-06-13T07:44:27.440+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001735 seconds, Stopping threads took: 0,0000307 seconds +[2018-06-13T07:44:27.445+0000][32376][safepoint ] Application time: 0,0047883 seconds +[2018-06-13T07:44:27.445+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000663 seconds, Stopping threads took: 0,0000222 seconds +[2018-06-13T07:44:27.524+0000][32376][safepoint ] Application time: 0,0788157 seconds +[2018-06-13T07:44:27.524+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001919 seconds, Stopping threads took: 0,0000222 seconds +[2018-06-13T07:44:27.537+0000][32376][safepoint ] Application time: 0,0126583 seconds +[2018-06-13T07:44:27.537+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001749 seconds, Stopping threads took: 0,0000225 seconds +[2018-06-13T07:44:27.657+0000][32376][safepoint ] Application time: 0,1193465 seconds +[2018-06-13T07:44:27.659+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0027125 seconds, Stopping threads took: 0,0023688 seconds +[2018-06-13T07:44:27.695+0000][32376][safepoint ] Application time: 0,0355300 seconds +[2018-06-13T07:44:27.695+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001647 seconds, Stopping threads took: 0,0000305 seconds +[2018-06-13T07:44:27.710+0000][32376][safepoint ] Application time: 0,0150434 seconds +[2018-06-13T07:44:27.710+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001317 seconds, Stopping threads took: 0,0000398 seconds +[2018-06-13T07:44:27.746+0000][32376][safepoint ] Application time: 0,0358075 seconds +[2018-06-13T07:44:27.746+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002017 seconds, Stopping threads took: 0,0000310 seconds +[2018-06-13T07:44:27.766+0000][32376][safepoint ] Application time: 0,0196480 seconds +[2018-06-13T07:44:27.766+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001531 seconds, Stopping threads took: 0,0000425 seconds +[2018-06-13T07:44:27.796+0000][32376][safepoint ] Application time: 0,0302559 seconds +[2018-06-13T07:44:27.797+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001642 seconds, Stopping threads took: 0,0000206 seconds +[2018-06-13T07:44:27.816+0000][32376][safepoint ] Application time: 0,0198237 seconds +[2018-06-13T07:44:27.817+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001362 seconds, Stopping threads took: 0,0000316 seconds +[2018-06-13T07:44:27.836+0000][32376][safepoint ] Application time: 0,0199026 seconds +[2018-06-13T07:44:27.837+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001794 seconds, Stopping threads took: 0,0000267 seconds +[2018-06-13T07:44:27.862+0000][32376][safepoint ] Application time: 0,0248440 seconds +[2018-06-13T07:44:27.862+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001816 seconds, Stopping threads took: 0,0000245 seconds +[2018-06-13T07:44:27.887+0000][32376][safepoint ] Application time: 0,0255838 seconds +[2018-06-13T07:44:27.887+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001067 seconds, Stopping threads took: 0,0000198 seconds +[2018-06-13T07:44:27.903+0000][32376][safepoint ] Application time: 0,0151431 seconds +[2018-06-13T07:44:27.903+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001532 seconds, Stopping threads took: 0,0000218 seconds +[2018-06-13T07:44:27.924+0000][32376][safepoint ] Application time: 0,0213208 seconds +[2018-06-13T07:44:27.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001396 seconds, Stopping threads took: 0,0000228 seconds +[2018-06-13T07:44:27.942+0000][32376][safepoint ] Application time: 0,0178405 seconds +[2018-06-13T07:44:27.942+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001421 seconds, Stopping threads took: 0,0000210 seconds +[2018-06-13T07:44:27.971+0000][32376][safepoint ] Application time: 0,0288873 seconds +[2018-06-13T07:44:27.971+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001742 seconds, Stopping threads took: 0,0000444 seconds +[2018-06-13T07:44:27.994+0000][32376][safepoint ] Application time: 0,0221025 seconds +[2018-06-13T07:44:27.994+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001540 seconds, Stopping threads took: 0,0000216 seconds +[2018-06-13T07:44:28.012+0000][32376][safepoint ] Application time: 0,0186399 seconds +[2018-06-13T07:44:28.012+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001004 seconds, Stopping threads took: 0,0000188 seconds +[2018-06-13T07:44:28.026+0000][32376][safepoint ] Application time: 0,0139700 seconds +[2018-06-13T07:44:28.027+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001603 seconds, Stopping threads took: 0,0000202 seconds +[2018-06-13T07:44:28.050+0000][32376][safepoint ] Application time: 0,0235374 seconds +[2018-06-13T07:44:28.050+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001529 seconds, Stopping threads took: 0,0000240 seconds +[2018-06-13T07:44:28.066+0000][32376][safepoint ] Application time: 0,0154835 seconds +[2018-06-13T07:44:28.066+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001408 seconds, Stopping threads took: 0,0000206 seconds +[2018-06-13T07:44:28.094+0000][32376][safepoint ] Application time: 0,0282460 seconds +[2018-06-13T07:44:28.094+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001489 seconds, Stopping threads took: 0,0000291 seconds +[2018-06-13T07:44:28.112+0000][32376][safepoint ] Application time: 0,0174258 seconds +[2018-06-13T07:44:28.112+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001600 seconds, Stopping threads took: 0,0000193 seconds +[2018-06-13T07:44:28.138+0000][32376][safepoint ] Application time: 0,0261493 seconds +[2018-06-13T07:44:28.138+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001485 seconds, Stopping threads took: 0,0000343 seconds +[2018-06-13T07:44:28.149+0000][32376][safepoint ] Application time: 0,0103281 seconds +[2018-06-13T07:44:28.149+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001289 seconds, Stopping threads took: 0,0000184 seconds +[2018-06-13T07:44:28.183+0000][32376][safepoint ] Application time: 0,0344429 seconds +[2018-06-13T07:44:28.184+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001366 seconds, Stopping threads took: 0,0000188 seconds +[2018-06-13T07:44:28.208+0000][32376][safepoint ] Application time: 0,0248515 seconds +[2018-06-13T07:44:28.209+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001908 seconds, Stopping threads took: 0,0000470 seconds +[2018-06-13T07:44:28.641+0000][32376][safepoint ] Application time: 0,4328397 seconds +[2018-06-13T07:44:28.642+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001998 seconds, Stopping threads took: 0,0000227 seconds +[2018-06-13T07:44:28.707+0000][32376][safepoint ] Application time: 0,0657486 seconds +[2018-06-13T07:44:28.708+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003681 seconds, Stopping threads took: 0,0000232 seconds +[2018-06-13T07:44:28.731+0000][32376][safepoint ] Application time: 0,0236082 seconds +[2018-06-13T07:44:28.732+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002136 seconds, Stopping threads took: 0,0000253 seconds +[2018-06-13T07:44:28.771+0000][32376][safepoint ] Application time: 0,0393278 seconds +[2018-06-13T07:44:28.771+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002089 seconds, Stopping threads took: 0,0000591 seconds +[2018-06-13T07:44:28.772+0000][32376][safepoint ] Application time: 0,0007516 seconds +[2018-06-13T07:44:28.772+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000839 seconds, Stopping threads took: 0,0000394 seconds +[2018-06-13T07:44:28.776+0000][32376][safepoint ] Application time: 0,0034821 seconds +[2018-06-13T07:44:28.776+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001035 seconds, Stopping threads took: 0,0000242 seconds +[2018-06-13T07:44:28.803+0000][32376][safepoint ] Application time: 0,0267810 seconds +[2018-06-13T07:44:28.803+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001481 seconds, Stopping threads took: 0,0000217 seconds +[2018-06-13T07:44:28.840+0000][32376][safepoint ] Application time: 0,0371145 seconds +[2018-06-13T07:44:28.840+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001907 seconds, Stopping threads took: 0,0000305 seconds +[2018-06-13T07:44:28.841+0000][32376][safepoint ] Application time: 0,0007589 seconds +[2018-06-13T07:44:28.841+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002514 seconds, Stopping threads took: 0,0000611 seconds +[2018-06-13T07:44:28.843+0000][32376][safepoint ] Application time: 0,0016002 seconds +[2018-06-13T07:44:28.843+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001239 seconds, Stopping threads took: 0,0000425 seconds +[2018-06-13T07:44:28.884+0000][32376][safepoint ] Application time: 0,0406223 seconds +[2018-06-13T07:44:28.884+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002098 seconds, Stopping threads took: 0,0000244 seconds +[2018-06-13T07:44:28.920+0000][32376][safepoint ] Application time: 0,0362500 seconds +[2018-06-13T07:44:28.920+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001155 seconds, Stopping threads took: 0,0000384 seconds +[2018-06-13T07:44:28.944+0000][32376][safepoint ] Application time: 0,0242513 seconds +[2018-06-13T07:44:28.945+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001726 seconds, Stopping threads took: 0,0000431 seconds +[2018-06-13T07:44:28.986+0000][32376][safepoint ] Application time: 0,0410321 seconds +[2018-06-13T07:44:28.986+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002204 seconds, Stopping threads took: 0,0000391 seconds +[2018-06-13T07:44:29.041+0000][32376][safepoint ] Application time: 0,0551102 seconds +[2018-06-13T07:44:29.041+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002150 seconds, Stopping threads took: 0,0000406 seconds +[2018-06-13T07:44:29.041+0000][32376][safepoint ] Application time: 0,0000506 seconds +[2018-06-13T07:44:29.041+0000][32376][gc,start ] GC(5) Pause Initial Mark +[2018-06-13T07:44:29.077+0000][32376][gc ] GC(5) Pause Initial Mark 238M->238M(989M) 35,656ms +[2018-06-13T07:44:29.077+0000][32376][gc,cpu ] GC(5) User=0,18s Sys=0,00s Real=0,04s +[2018-06-13T07:44:29.077+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0358399 seconds, Stopping threads took: 0,0000329 seconds +[2018-06-13T07:44:29.077+0000][32376][gc ] GC(5) Concurrent Mark +[2018-06-13T07:44:29.077+0000][32376][gc,task ] GC(5) Using 2 workers of 2 for marking +[2018-06-13T07:44:29.105+0000][32376][gc ] GC(5) Concurrent Mark 27,464ms +[2018-06-13T07:44:29.105+0000][32376][gc,cpu ] GC(5) User=0,14s Sys=0,00s Real=0,02s +[2018-06-13T07:44:29.105+0000][32376][gc ] GC(5) Concurrent Preclean +[2018-06-13T07:44:29.109+0000][32376][gc ] GC(5) Concurrent Preclean 4,355ms +[2018-06-13T07:44:29.109+0000][32376][gc,cpu ] GC(5) User=0,02s Sys=0,00s Real=0,01s +[2018-06-13T07:44:29.109+0000][32376][gc ] GC(5) Concurrent Abortable Preclean +[2018-06-13T07:44:29.124+0000][32376][safepoint ] Application time: 0,0468957 seconds +[2018-06-13T07:44:29.124+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002048 seconds, Stopping threads took: 0,0000263 seconds +[2018-06-13T07:44:29.127+0000][32376][safepoint ] Application time: 0,0021770 seconds +[2018-06-13T07:44:29.127+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000816 seconds, Stopping threads took: 0,0000527 seconds +[2018-06-13T07:44:29.167+0000][32376][safepoint ] Application time: 0,0399737 seconds +[2018-06-13T07:44:29.167+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001964 seconds, Stopping threads took: 0,0000315 seconds +[2018-06-13T07:44:29.209+0000][32376][safepoint ] Application time: 0,0425386 seconds +[2018-06-13T07:44:29.210+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001932 seconds, Stopping threads took: 0,0000247 seconds +[2018-06-13T07:44:29.236+0000][32376][safepoint ] Application time: 0,0265014 seconds +[2018-06-13T07:44:29.236+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001655 seconds, Stopping threads took: 0,0000397 seconds +[2018-06-13T07:44:29.261+0000][32376][safepoint ] Application time: 0,0241949 seconds +[2018-06-13T07:44:29.261+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001980 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-13T07:44:29.280+0000][32376][safepoint ] Application time: 0,0196957 seconds +[2018-06-13T07:44:29.281+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000648 seconds, Stopping threads took: 0,0000338 seconds +[2018-06-13T07:44:29.281+0000][32376][safepoint ] Application time: 0,0000366 seconds +[2018-06-13T07:44:29.281+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000562 seconds, Stopping threads took: 0,0000300 seconds +[2018-06-13T07:44:29.282+0000][32376][safepoint ] Application time: 0,0011429 seconds +[2018-06-13T07:44:29.282+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000935 seconds, Stopping threads took: 0,0000445 seconds +[2018-06-13T07:44:29.294+0000][32376][safepoint ] Application time: 0,0117638 seconds +[2018-06-13T07:44:29.294+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001956 seconds, Stopping threads took: 0,0000493 seconds +[2018-06-13T07:44:29.329+0000][32376][safepoint ] Application time: 0,0347407 seconds +[2018-06-13T07:44:29.329+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001674 seconds, Stopping threads took: 0,0000280 seconds +[2018-06-13T07:44:29.376+0000][32376][safepoint ] Application time: 0,0465598 seconds +[2018-06-13T07:44:29.376+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002310 seconds, Stopping threads took: 0,0000480 seconds +[2018-06-13T07:44:29.382+0000][32376][safepoint ] Application time: 0,0058425 seconds +[2018-06-13T07:44:29.382+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000829 seconds, Stopping threads took: 0,0000329 seconds +[2018-06-13T07:44:29.389+0000][32376][safepoint ] Application time: 0,0075651 seconds +[2018-06-13T07:44:29.389+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000666 seconds, Stopping threads took: 0,0000264 seconds +[2018-06-13T07:44:29.390+0000][32376][safepoint ] Application time: 0,0000341 seconds +[2018-06-13T07:44:29.390+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000579 seconds, Stopping threads took: 0,0000244 seconds +[2018-06-13T07:44:29.390+0000][32376][safepoint ] Application time: 0,0000314 seconds +[2018-06-13T07:44:29.390+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000422 seconds, Stopping threads took: 0,0000210 seconds +[2018-06-13T07:44:29.427+0000][32376][safepoint ] Application time: 0,0370685 seconds +[2018-06-13T07:44:29.427+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001095 seconds, Stopping threads took: 0,0000222 seconds +[2018-06-13T07:44:29.451+0000][32376][safepoint ] Application time: 0,0243193 seconds +[2018-06-13T07:44:29.451+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002030 seconds, Stopping threads took: 0,0000366 seconds +[2018-06-13T07:44:29.544+0000][32376][safepoint ] Application time: 0,0922245 seconds +[2018-06-13T07:44:29.544+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002228 seconds, Stopping threads took: 0,0000274 seconds +[2018-06-13T07:44:29.713+0000][32376][safepoint ] Application time: 0,1693255 seconds +[2018-06-13T07:44:29.714+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002697 seconds, Stopping threads took: 0,0000340 seconds +[2018-06-13T07:44:29.741+0000][32376][safepoint ] Application time: 0,0277081 seconds +[2018-06-13T07:44:29.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001949 seconds, Stopping threads took: 0,0000260 seconds +[2018-06-13T07:44:29.761+0000][32376][safepoint ] Application time: 0,0196645 seconds +[2018-06-13T07:44:29.761+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001956 seconds, Stopping threads took: 0,0000259 seconds +[2018-06-13T07:44:29.791+0000][32376][safepoint ] Application time: 0,0296557 seconds +[2018-06-13T07:44:29.791+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002356 seconds, Stopping threads took: 0,0000252 seconds +[2018-06-13T07:44:29.834+0000][32376][safepoint ] Application time: 0,0426543 seconds +[2018-06-13T07:44:29.835+0000][32376][gc,start ] GC(6) Pause Young (Allocation Failure) +[2018-06-13T07:44:29.835+0000][32376][gc,task ] GC(6) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:29.915+0000][32376][gc,age ] GC(6) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:44:29.915+0000][32376][gc,age ] GC(6) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:44:29.915+0000][32376][gc,age ] GC(6) - age 1: 27088992 bytes, 27088992 total +[2018-06-13T07:44:29.915+0000][32376][gc,heap ] GC(6) ParNew: 314560K->34943K(314560K) +[2018-06-13T07:44:29.915+0000][32376][gc,heap ] GC(6) CMS: 23972K->45569K(699072K) +[2018-06-13T07:44:29.915+0000][32376][gc,metaspace ] GC(6) Metaspace: 54089K->54089K(1099776K) +[2018-06-13T07:44:29.915+0000][32376][gc ] GC(6) Pause Young (Allocation Failure) 330M->78M(989M) 80,394ms +[2018-06-13T07:44:29.915+0000][32376][gc,cpu ] GC(6) User=0,43s Sys=0,00s Real=0,08s +[2018-06-13T07:44:29.915+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0812129 seconds, Stopping threads took: 0,0006753 seconds +[2018-06-13T07:44:29.918+0000][32376][safepoint ] Application time: 0,0024214 seconds +[2018-06-13T07:44:29.918+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001531 seconds, Stopping threads took: 0,0000684 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Application time: 0,0060375 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000952 seconds, Stopping threads took: 0,0000345 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Application time: 0,0000303 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000594 seconds, Stopping threads took: 0,0000197 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Application time: 0,0000287 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000347 seconds, Stopping threads took: 0,0000115 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Application time: 0,0000379 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000361 seconds, Stopping threads took: 0,0000201 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Application time: 0,0000222 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000542 seconds, Stopping threads took: 0,0000190 seconds +[2018-06-13T07:44:29.924+0000][32376][safepoint ] Application time: 0,0000217 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000509 seconds, Stopping threads took: 0,0000179 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000194 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000423 seconds, Stopping threads took: 0,0000155 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000169 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000484 seconds, Stopping threads took: 0,0000176 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000197 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000307 seconds, Stopping threads took: 0,0000152 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000208 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000309 seconds, Stopping threads took: 0,0000107 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000174 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000299 seconds, Stopping threads took: 0,0000149 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000155 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000287 seconds, Stopping threads took: 0,0000130 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000131 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000329 seconds, Stopping threads took: 0,0000166 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000121 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000390 seconds, Stopping threads took: 0,0000170 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000119 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000347 seconds, Stopping threads took: 0,0000188 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000160 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000353 seconds, Stopping threads took: 0,0000146 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000121 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000586 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000139 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000548 seconds, Stopping threads took: 0,0000207 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Application time: 0,0000138 seconds +[2018-06-13T07:44:29.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000874 seconds, Stopping threads took: 0,0000184 seconds +[2018-06-13T07:44:30.004+0000][32376][safepoint ] Application time: 0,0789906 seconds +[2018-06-13T07:44:30.005+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002833 seconds, Stopping threads took: 0,0000255 seconds +[2018-06-13T07:44:30.023+0000][32376][safepoint ] Application time: 0,0181792 seconds +[2018-06-13T07:44:30.023+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001783 seconds, Stopping threads took: 0,0000414 seconds +[2018-06-13T07:44:30.059+0000][32376][safepoint ] Application time: 0,0358329 seconds +[2018-06-13T07:44:30.059+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002457 seconds, Stopping threads took: 0,0000306 seconds +[2018-06-13T07:44:30.197+0000][32376][safepoint ] Application time: 0,1380426 seconds +[2018-06-13T07:44:30.198+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001873 seconds, Stopping threads took: 0,0000224 seconds +[2018-06-13T07:44:30.229+0000][32376][safepoint ] Application time: 0,0311611 seconds +[2018-06-13T07:44:30.229+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001776 seconds, Stopping threads took: 0,0000275 seconds +[2018-06-13T07:44:30.237+0000][32376][safepoint ] Application time: 0,0085194 seconds +[2018-06-13T07:44:30.238+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000746 seconds, Stopping threads took: 0,0000327 seconds +[2018-06-13T07:44:30.258+0000][32376][safepoint ] Application time: 0,0205081 seconds +[2018-06-13T07:44:30.258+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002266 seconds, Stopping threads took: 0,0000812 seconds +[2018-06-13T07:44:30.279+0000][32376][safepoint ] Application time: 0,0204250 seconds +[2018-06-13T07:44:30.279+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002420 seconds, Stopping threads took: 0,0000503 seconds +[2018-06-13T07:44:30.286+0000][32376][safepoint ] Application time: 0,0069618 seconds +[2018-06-13T07:44:30.286+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001204 seconds, Stopping threads took: 0,0000330 seconds +[2018-06-13T07:44:30.311+0000][32376][safepoint ] Application time: 0,0251089 seconds +[2018-06-13T07:44:30.312+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001930 seconds, Stopping threads took: 0,0000430 seconds +[2018-06-13T07:44:30.333+0000][32376][safepoint ] Application time: 0,0213748 seconds +[2018-06-13T07:44:30.333+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001684 seconds, Stopping threads took: 0,0000233 seconds +[2018-06-13T07:44:30.367+0000][32376][safepoint ] Application time: 0,0339792 seconds +[2018-06-13T07:44:30.367+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001956 seconds, Stopping threads took: 0,0000268 seconds +[2018-06-13T07:44:30.424+0000][32376][safepoint ] Application time: 0,0567445 seconds +[2018-06-13T07:44:30.424+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002003 seconds, Stopping threads took: 0,0000476 seconds +[2018-06-13T07:44:30.442+0000][32376][safepoint ] Application time: 0,0179631 seconds +[2018-06-13T07:44:30.442+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001344 seconds, Stopping threads took: 0,0000232 seconds +[2018-06-13T07:44:30.472+0000][32376][safepoint ] Application time: 0,0290486 seconds +[2018-06-13T07:44:30.472+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002254 seconds, Stopping threads took: 0,0000305 seconds +[2018-06-13T07:44:30.534+0000][32376][safepoint ] Application time: 0,0617819 seconds +[2018-06-13T07:44:30.534+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002457 seconds, Stopping threads took: 0,0000458 seconds +[2018-06-13T07:44:30.603+0000][32376][safepoint ] Application time: 0,0695244 seconds +[2018-06-13T07:44:30.604+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001784 seconds, Stopping threads took: 0,0000288 seconds +[2018-06-13T07:44:30.711+0000][32376][safepoint ] Application time: 0,1070961 seconds +[2018-06-13T07:44:30.711+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002050 seconds, Stopping threads took: 0,0000248 seconds +[2018-06-13T07:44:30.751+0000][32376][safepoint ] Application time: 0,0398347 seconds +[2018-06-13T07:44:30.751+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004979 seconds, Stopping threads took: 0,0000226 seconds +[2018-06-13T07:44:30.782+0000][32376][safepoint ] Application time: 0,0303240 seconds +[2018-06-13T07:44:30.782+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001772 seconds, Stopping threads took: 0,0000307 seconds +[2018-06-13T07:44:30.828+0000][32376][safepoint ] Application time: 0,0465070 seconds +[2018-06-13T07:44:30.829+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001595 seconds, Stopping threads took: 0,0000230 seconds +[2018-06-13T07:44:30.884+0000][32376][safepoint ] Application time: 0,0556765 seconds +[2018-06-13T07:44:30.884+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001385 seconds, Stopping threads took: 0,0000158 seconds +[2018-06-13T07:44:30.936+0000][32376][safepoint ] Application time: 0,0514032 seconds +[2018-06-13T07:44:30.936+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002190 seconds, Stopping threads took: 0,0000232 seconds +[2018-06-13T07:44:30.978+0000][32376][safepoint ] Application time: 0,0420807 seconds +[2018-06-13T07:44:30.978+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002264 seconds, Stopping threads took: 0,0000428 seconds +[2018-06-13T07:44:31.015+0000][32376][safepoint ] Application time: 0,0361400 seconds +[2018-06-13T07:44:31.015+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001157 seconds, Stopping threads took: 0,0000175 seconds +[2018-06-13T07:44:31.038+0000][32376][safepoint ] Application time: 0,0230062 seconds +[2018-06-13T07:44:31.038+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001276 seconds, Stopping threads took: 0,0000201 seconds +[2018-06-13T07:44:31.087+0000][32376][safepoint ] Application time: 0,0493089 seconds +[2018-06-13T07:44:31.087+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002274 seconds, Stopping threads took: 0,0000297 seconds +[2018-06-13T07:44:31.125+0000][32376][safepoint ] Application time: 0,0377147 seconds +[2018-06-13T07:44:31.125+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001828 seconds, Stopping threads took: 0,0000386 seconds +[2018-06-13T07:44:31.171+0000][32376][safepoint ] Application time: 0,0457239 seconds +[2018-06-13T07:44:31.171+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002530 seconds, Stopping threads took: 0,0000265 seconds +[2018-06-13T07:44:31.203+0000][32376][safepoint ] Application time: 0,0319917 seconds +[2018-06-13T07:44:31.204+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002046 seconds, Stopping threads took: 0,0000217 seconds +[2018-06-13T07:44:31.225+0000][32376][safepoint ] Application time: 0,0212649 seconds +[2018-06-13T07:44:31.225+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001301 seconds, Stopping threads took: 0,0000187 seconds +[2018-06-13T07:44:31.278+0000][32376][safepoint ] Application time: 0,0527055 seconds +[2018-06-13T07:44:31.278+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001451 seconds, Stopping threads took: 0,0000164 seconds +[2018-06-13T07:44:31.295+0000][32376][safepoint ] Application time: 0,0171396 seconds +[2018-06-13T07:44:31.295+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001477 seconds, Stopping threads took: 0,0000204 seconds +[2018-06-13T07:44:31.295+0000][32376][gc ] GC(5) Concurrent Abortable Preclean 2186,098ms +[2018-06-13T07:44:31.295+0000][32376][gc,cpu ] GC(5) User=10,02s Sys=0,08s Real=2,19s +[2018-06-13T07:44:31.295+0000][32376][safepoint ] Application time: 0,0000431 seconds +[2018-06-13T07:44:31.295+0000][32376][gc,start ] GC(5) Pause Remark +[2018-06-13T07:44:31.359+0000][32376][gc ] GC(5) Pause Remark 218M->218M(989M) 63,945ms +[2018-06-13T07:44:31.359+0000][32376][gc,cpu ] GC(5) User=0,29s Sys=0,00s Real=0,06s +[2018-06-13T07:44:31.359+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0640482 seconds, Stopping threads took: 0,0000273 seconds +[2018-06-13T07:44:31.359+0000][32376][gc ] GC(5) Concurrent Sweep +[2018-06-13T07:44:31.381+0000][32376][gc ] GC(5) Concurrent Sweep 21,756ms +[2018-06-13T07:44:31.381+0000][32376][gc,cpu ] GC(5) User=0,09s Sys=0,00s Real=0,02s +[2018-06-13T07:44:31.381+0000][32376][gc ] GC(5) Concurrent Reset +[2018-06-13T07:44:31.382+0000][32376][gc ] GC(5) Concurrent Reset 0,613ms +[2018-06-13T07:44:31.382+0000][32376][gc,cpu ] GC(5) User=0,00s Sys=0,00s Real=0,00s +[2018-06-13T07:44:31.382+0000][32376][gc,heap ] GC(5) Old: 23972K->37674K(699072K) +[2018-06-13T07:44:31.396+0000][32376][safepoint ] Application time: 0,0362084 seconds +[2018-06-13T07:44:31.396+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006028 seconds, Stopping threads took: 0,0000238 seconds +[2018-06-13T07:44:31.404+0000][32376][safepoint ] Application time: 0,0080725 seconds +[2018-06-13T07:44:31.405+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005345 seconds, Stopping threads took: 0,0000435 seconds +[2018-06-13T07:44:31.405+0000][32376][safepoint ] Application time: 0,0002137 seconds +[2018-06-13T07:44:31.405+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001086 seconds, Stopping threads took: 0,0000344 seconds +[2018-06-13T07:44:31.406+0000][32376][safepoint ] Application time: 0,0004946 seconds +[2018-06-13T07:44:31.406+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001055 seconds, Stopping threads took: 0,0000310 seconds +[2018-06-13T07:44:31.406+0000][32376][safepoint ] Application time: 0,0004469 seconds +[2018-06-13T07:44:31.406+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000481 seconds, Stopping threads took: 0,0000153 seconds +[2018-06-13T07:44:31.407+0000][32376][safepoint ] Application time: 0,0005466 seconds +[2018-06-13T07:44:31.407+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000514 seconds, Stopping threads took: 0,0000220 seconds +[2018-06-13T07:44:31.407+0000][32376][safepoint ] Application time: 0,0001148 seconds +[2018-06-13T07:44:31.407+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000400 seconds, Stopping threads took: 0,0000114 seconds +[2018-06-13T07:44:31.408+0000][32376][safepoint ] Application time: 0,0007469 seconds +[2018-06-13T07:44:31.408+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000419 seconds, Stopping threads took: 0,0000144 seconds +[2018-06-13T07:44:31.408+0000][32376][safepoint ] Application time: 0,0001212 seconds +[2018-06-13T07:44:31.408+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000396 seconds, Stopping threads took: 0,0000092 seconds +[2018-06-13T07:44:31.408+0000][32376][safepoint ] Application time: 0,0000792 seconds +[2018-06-13T07:44:31.408+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000269 seconds, Stopping threads took: 0,0000086 seconds +[2018-06-13T07:44:31.410+0000][32376][safepoint ] Application time: 0,0020066 seconds +[2018-06-13T07:44:31.411+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001203 seconds, Stopping threads took: 0,0000746 seconds +[2018-06-13T07:44:31.412+0000][32376][safepoint ] Application time: 0,0010011 seconds +[2018-06-13T07:44:31.412+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004687 seconds, Stopping threads took: 0,0000187 seconds +[2018-06-13T07:44:31.413+0000][32376][safepoint ] Application time: 0,0010120 seconds +[2018-06-13T07:44:31.413+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001028 seconds, Stopping threads took: 0,0000328 seconds +[2018-06-13T07:44:31.413+0000][32376][safepoint ] Application time: 0,0000531 seconds +[2018-06-13T07:44:31.413+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000409 seconds, Stopping threads took: 0,0000175 seconds +[2018-06-13T07:44:31.413+0000][32376][safepoint ] Application time: 0,0000362 seconds +[2018-06-13T07:44:31.413+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000307 seconds, Stopping threads took: 0,0000110 seconds +[2018-06-13T07:44:31.413+0000][32376][safepoint ] Application time: 0,0000618 seconds +[2018-06-13T07:44:31.414+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000758 seconds, Stopping threads took: 0,0000228 seconds +[2018-06-13T07:44:31.414+0000][32376][safepoint ] Application time: 0,0000544 seconds +[2018-06-13T07:44:31.414+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000400 seconds, Stopping threads took: 0,0000126 seconds +[2018-06-13T07:44:31.559+0000][32376][safepoint ] Application time: 0,1455026 seconds +[2018-06-13T07:44:31.559+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001640 seconds, Stopping threads took: 0,0000237 seconds +[2018-06-13T07:44:31.559+0000][32376][safepoint ] Application time: 0,0000620 seconds +[2018-06-13T07:44:31.560+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002952 seconds, Stopping threads took: 0,0002461 seconds +[2018-06-13T07:44:31.561+0000][32376][safepoint ] Application time: 0,0015303 seconds +[2018-06-13T07:44:31.561+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001209 seconds, Stopping threads took: 0,0000520 seconds +[2018-06-13T07:44:31.562+0000][32376][safepoint ] Application time: 0,0001068 seconds +[2018-06-13T07:44:31.562+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000688 seconds, Stopping threads took: 0,0000277 seconds +[2018-06-13T07:44:31.564+0000][32376][safepoint ] Application time: 0,0021050 seconds +[2018-06-13T07:44:31.568+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0042168 seconds, Stopping threads took: 0,0041073 seconds +[2018-06-13T07:44:31.570+0000][32376][safepoint ] Application time: 0,0018918 seconds +[2018-06-13T07:44:31.570+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001155 seconds, Stopping threads took: 0,0000413 seconds +[2018-06-13T07:44:31.572+0000][32376][safepoint ] Application time: 0,0017580 seconds +[2018-06-13T07:44:31.572+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001044 seconds, Stopping threads took: 0,0000602 seconds +[2018-06-13T07:44:31.574+0000][32376][safepoint ] Application time: 0,0024051 seconds +[2018-06-13T07:44:31.575+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003673 seconds, Stopping threads took: 0,0001663 seconds +[2018-06-13T07:44:31.576+0000][32376][safepoint ] Application time: 0,0011068 seconds +[2018-06-13T07:44:31.577+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006681 seconds, Stopping threads took: 0,0003890 seconds +[2018-06-13T07:44:31.577+0000][32376][safepoint ] Application time: 0,0003923 seconds +[2018-06-13T07:44:31.577+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000854 seconds, Stopping threads took: 0,0000343 seconds +[2018-06-13T07:44:31.578+0000][32376][safepoint ] Application time: 0,0008649 seconds +[2018-06-13T07:44:31.578+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001126 seconds, Stopping threads took: 0,0000452 seconds +[2018-06-13T07:44:31.584+0000][32376][safepoint ] Application time: 0,0058412 seconds +[2018-06-13T07:44:31.587+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0030902 seconds, Stopping threads took: 0,0030041 seconds +[2018-06-13T07:44:31.591+0000][32376][safepoint ] Application time: 0,0031823 seconds +[2018-06-13T07:44:31.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001403 seconds, Stopping threads took: 0,0000750 seconds +[2018-06-13T07:44:31.595+0000][32376][safepoint ] Application time: 0,0038560 seconds +[2018-06-13T07:44:31.595+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001149 seconds, Stopping threads took: 0,0000513 seconds +[2018-06-13T07:44:31.595+0000][32376][safepoint ] Application time: 0,0000407 seconds +[2018-06-13T07:44:31.596+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006460 seconds, Stopping threads took: 0,0005980 seconds +[2018-06-13T07:44:31.596+0000][32376][safepoint ] Application time: 0,0004123 seconds +[2018-06-13T07:44:31.596+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001395 seconds, Stopping threads took: 0,0000378 seconds +[2018-06-13T07:44:31.596+0000][32376][safepoint ] Application time: 0,0000421 seconds +[2018-06-13T07:44:31.596+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001101 seconds, Stopping threads took: 0,0000318 seconds +[2018-06-13T07:44:31.599+0000][32376][safepoint ] Application time: 0,0022853 seconds +[2018-06-13T07:44:31.599+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001230 seconds, Stopping threads took: 0,0000480 seconds +[2018-06-13T07:44:31.606+0000][32376][safepoint ] Application time: 0,0070400 seconds +[2018-06-13T07:44:31.607+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008490 seconds, Stopping threads took: 0,0007703 seconds +[2018-06-13T07:44:31.607+0000][32376][safepoint ] Application time: 0,0000480 seconds +[2018-06-13T07:44:31.607+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001107 seconds, Stopping threads took: 0,0000575 seconds +[2018-06-13T07:44:31.623+0000][32376][safepoint ] Application time: 0,0161209 seconds +[2018-06-13T07:44:31.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007173 seconds, Stopping threads took: 0,0005026 seconds +[2018-06-13T07:44:31.627+0000][32376][safepoint ] Application time: 0,0026987 seconds +[2018-06-13T07:44:31.630+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0037871 seconds, Stopping threads took: 0,0036860 seconds +[2018-06-13T07:44:31.630+0000][32376][safepoint ] Application time: 0,0000969 seconds +[2018-06-13T07:44:31.631+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001492 seconds, Stopping threads took: 0,0001060 seconds +[2018-06-13T07:44:31.647+0000][32376][safepoint ] Application time: 0,0160803 seconds +[2018-06-13T07:44:31.647+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004351 seconds, Stopping threads took: 0,0000579 seconds +[2018-06-13T07:44:31.647+0000][32376][safepoint ] Application time: 0,0001163 seconds +[2018-06-13T07:44:31.647+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001281 seconds, Stopping threads took: 0,0000434 seconds +[2018-06-13T07:44:31.652+0000][32376][safepoint ] Application time: 0,0041318 seconds +[2018-06-13T07:44:31.652+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001466 seconds, Stopping threads took: 0,0000334 seconds +[2018-06-13T07:44:31.652+0000][32376][safepoint ] Application time: 0,0002115 seconds +[2018-06-13T07:44:31.652+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001051 seconds, Stopping threads took: 0,0000376 seconds +[2018-06-13T07:44:31.653+0000][32376][safepoint ] Application time: 0,0007101 seconds +[2018-06-13T07:44:31.653+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002138 seconds, Stopping threads took: 0,0000383 seconds +[2018-06-13T07:44:31.653+0000][32376][safepoint ] Application time: 0,0000927 seconds +[2018-06-13T07:44:31.653+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000744 seconds, Stopping threads took: 0,0000145 seconds +[2018-06-13T07:44:31.657+0000][32376][safepoint ] Application time: 0,0034926 seconds +[2018-06-13T07:44:31.661+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0037032 seconds, Stopping threads took: 0,0036174 seconds +[2018-06-13T07:44:31.661+0000][32376][safepoint ] Application time: 0,0001391 seconds +[2018-06-13T07:44:31.661+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001030 seconds, Stopping threads took: 0,0000440 seconds +[2018-06-13T07:44:31.661+0000][32376][safepoint ] Application time: 0,0000504 seconds +[2018-06-13T07:44:31.661+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001134 seconds, Stopping threads took: 0,0000569 seconds +[2018-06-13T07:44:31.664+0000][32376][safepoint ] Application time: 0,0031135 seconds +[2018-06-13T07:44:31.668+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0041917 seconds, Stopping threads took: 0,0040846 seconds +[2018-06-13T07:44:31.671+0000][32376][safepoint ] Application time: 0,0021265 seconds +[2018-06-13T07:44:31.671+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001978 seconds, Stopping threads took: 0,0000732 seconds +[2018-06-13T07:44:31.674+0000][32376][safepoint ] Application time: 0,0028887 seconds +[2018-06-13T07:44:31.674+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004587 seconds, Stopping threads took: 0,0001580 seconds +[2018-06-13T07:44:31.675+0000][32376][safepoint ] Application time: 0,0009990 seconds +[2018-06-13T07:44:31.676+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002354 seconds, Stopping threads took: 0,0001121 seconds +[2018-06-13T07:44:31.676+0000][32376][safepoint ] Application time: 0,0006323 seconds +[2018-06-13T07:44:31.677+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009114 seconds, Stopping threads took: 0,0007822 seconds +[2018-06-13T07:44:31.678+0000][32376][safepoint ] Application time: 0,0009671 seconds +[2018-06-13T07:44:31.678+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001284 seconds, Stopping threads took: 0,0000270 seconds +[2018-06-13T07:44:31.679+0000][32376][safepoint ] Application time: 0,0000785 seconds +[2018-06-13T07:44:31.679+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000726 seconds, Stopping threads took: 0,0000144 seconds +[2018-06-13T07:44:31.679+0000][32376][safepoint ] Application time: 0,0007083 seconds +[2018-06-13T07:44:31.680+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001754 seconds, Stopping threads took: 0,0000628 seconds +[2018-06-13T07:44:31.680+0000][32376][safepoint ] Application time: 0,0009362 seconds +[2018-06-13T07:44:31.681+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001117 seconds, Stopping threads took: 0,0000689 seconds +[2018-06-13T07:44:31.681+0000][32376][safepoint ] Application time: 0,0000598 seconds +[2018-06-13T07:44:31.681+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000935 seconds, Stopping threads took: 0,0000469 seconds +[2018-06-13T07:44:31.681+0000][32376][safepoint ] Application time: 0,0002704 seconds +[2018-06-13T07:44:31.681+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000765 seconds, Stopping threads took: 0,0000380 seconds +[2018-06-13T07:44:31.682+0000][32376][safepoint ] Application time: 0,0003248 seconds +[2018-06-13T07:44:31.682+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000899 seconds, Stopping threads took: 0,0000370 seconds +[2018-06-13T07:44:31.682+0000][32376][safepoint ] Application time: 0,0001778 seconds +[2018-06-13T07:44:31.682+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000882 seconds, Stopping threads took: 0,0000316 seconds +[2018-06-13T07:44:32.579+0000][32376][safepoint ] Application time: 0,8967461 seconds +[2018-06-13T07:44:32.579+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001451 seconds, Stopping threads took: 0,0000171 seconds +[2018-06-13T07:44:32.580+0000][32376][safepoint ] Application time: 0,0011629 seconds +[2018-06-13T07:44:32.580+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001173 seconds, Stopping threads took: 0,0000441 seconds +[2018-06-13T07:44:32.582+0000][32376][safepoint ] Application time: 0,0020426 seconds +[2018-06-13T07:44:32.582+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001013 seconds, Stopping threads took: 0,0000370 seconds +[2018-06-13T07:44:32.582+0000][32376][safepoint ] Application time: 0,0000937 seconds +[2018-06-13T07:44:32.583+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003796 seconds, Stopping threads took: 0,0000492 seconds +[2018-06-13T07:44:32.583+0000][32376][safepoint ] Application time: 0,0000560 seconds +[2018-06-13T07:44:32.583+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001168 seconds, Stopping threads took: 0,0000650 seconds +[2018-06-13T07:44:32.583+0000][32376][safepoint ] Application time: 0,0000306 seconds +[2018-06-13T07:44:32.583+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001488 seconds, Stopping threads took: 0,0000660 seconds +[2018-06-13T07:44:32.583+0000][32376][safepoint ] Application time: 0,0001268 seconds +[2018-06-13T07:44:32.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000885 seconds, Stopping threads took: 0,0000327 seconds +[2018-06-13T07:44:32.584+0000][32376][safepoint ] Application time: 0,0000522 seconds +[2018-06-13T07:44:32.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001231 seconds, Stopping threads took: 0,0000414 seconds +[2018-06-13T07:44:32.584+0000][32376][safepoint ] Application time: 0,0004164 seconds +[2018-06-13T07:44:32.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001046 seconds, Stopping threads took: 0,0000354 seconds +[2018-06-13T07:44:32.591+0000][32376][safepoint ] Application time: 0,0063655 seconds +[2018-06-13T07:44:32.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001264 seconds, Stopping threads took: 0,0000286 seconds +[2018-06-13T07:44:32.591+0000][32376][safepoint ] Application time: 0,0000677 seconds +[2018-06-13T07:44:32.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001525 seconds, Stopping threads took: 0,0000941 seconds +[2018-06-13T07:44:32.591+0000][32376][safepoint ] Application time: 0,0001069 seconds +[2018-06-13T07:44:32.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001607 seconds, Stopping threads took: 0,0000861 seconds +[2018-06-13T07:44:32.591+0000][32376][safepoint ] Application time: 0,0000749 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000808 seconds, Stopping threads took: 0,0000259 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Application time: 0,0000866 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000914 seconds, Stopping threads took: 0,0000490 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Application time: 0,0000590 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000532 seconds, Stopping threads took: 0,0000179 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Application time: 0,0000348 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000673 seconds, Stopping threads took: 0,0000312 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Application time: 0,0000575 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000562 seconds, Stopping threads took: 0,0000170 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Application time: 0,0000435 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000788 seconds, Stopping threads took: 0,0000377 seconds +[2018-06-13T07:44:32.592+0000][32376][safepoint ] Application time: 0,0001456 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001305 seconds, Stopping threads took: 0,0000835 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Application time: 0,0000759 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000689 seconds, Stopping threads took: 0,0000299 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Application time: 0,0000666 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001068 seconds, Stopping threads took: 0,0000585 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Application time: 0,0000962 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000725 seconds, Stopping threads took: 0,0000260 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Application time: 0,0001139 seconds +[2018-06-13T07:44:32.593+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000777 seconds, Stopping threads took: 0,0000279 seconds +[2018-06-13T07:44:32.594+0000][32376][safepoint ] Application time: 0,0004500 seconds +[2018-06-13T07:44:32.594+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001059 seconds, Stopping threads took: 0,0000402 seconds +[2018-06-13T07:44:32.594+0000][32376][safepoint ] Application time: 0,0001968 seconds +[2018-06-13T07:44:32.594+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000900 seconds, Stopping threads took: 0,0000521 seconds +[2018-06-13T07:44:32.594+0000][32376][safepoint ] Application time: 0,0001249 seconds +[2018-06-13T07:44:32.594+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000681 seconds, Stopping threads took: 0,0000289 seconds +[2018-06-13T07:44:33.579+0000][32376][safepoint ] Application time: 0,9843058 seconds +[2018-06-13T07:44:33.579+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000932 seconds, Stopping threads took: 0,0000373 seconds +[2018-06-13T07:44:33.580+0000][32376][safepoint ] Application time: 0,0008114 seconds +[2018-06-13T07:44:33.581+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009674 seconds, Stopping threads took: 0,0001202 seconds +[2018-06-13T07:44:33.581+0000][32376][safepoint ] Application time: 0,0002423 seconds +[2018-06-13T07:44:33.581+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004168 seconds, Stopping threads took: 0,0000389 seconds +[2018-06-13T07:44:33.582+0000][32376][safepoint ] Application time: 0,0004484 seconds +[2018-06-13T07:44:33.582+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004664 seconds, Stopping threads took: 0,0001591 seconds +[2018-06-13T07:44:33.583+0000][32376][safepoint ] Application time: 0,0001191 seconds +[2018-06-13T07:44:33.583+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001042 seconds, Stopping threads took: 0,0000618 seconds +[2018-06-13T07:44:33.583+0000][32376][safepoint ] Application time: 0,0000754 seconds +[2018-06-13T07:44:33.583+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001115 seconds, Stopping threads took: 0,0000415 seconds +[2018-06-13T07:44:33.583+0000][32376][safepoint ] Application time: 0,0001233 seconds +[2018-06-13T07:44:33.583+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000690 seconds, Stopping threads took: 0,0000290 seconds +[2018-06-13T07:44:33.584+0000][32376][safepoint ] Application time: 0,0004139 seconds +[2018-06-13T07:44:33.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001246 seconds, Stopping threads took: 0,0000232 seconds +[2018-06-13T07:44:33.584+0000][32376][safepoint ] Application time: 0,0001820 seconds +[2018-06-13T07:44:33.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001510 seconds, Stopping threads took: 0,0000882 seconds +[2018-06-13T07:44:33.585+0000][32376][safepoint ] Application time: 0,0005290 seconds +[2018-06-13T07:44:33.585+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001071 seconds, Stopping threads took: 0,0000583 seconds +[2018-06-13T07:44:33.585+0000][32376][safepoint ] Application time: 0,0002321 seconds +[2018-06-13T07:44:33.585+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004076 seconds, Stopping threads took: 0,0000350 seconds +[2018-06-13T07:44:33.585+0000][32376][safepoint ] Application time: 0,0000664 seconds +[2018-06-13T07:44:33.586+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000714 seconds, Stopping threads took: 0,0000295 seconds +[2018-06-13T07:44:33.586+0000][32376][safepoint ] Application time: 0,0002350 seconds +[2018-06-13T07:44:33.587+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009389 seconds, Stopping threads took: 0,0008699 seconds +[2018-06-13T07:44:33.587+0000][32376][safepoint ] Application time: 0,0001859 seconds +[2018-06-13T07:44:33.587+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001581 seconds, Stopping threads took: 0,0000468 seconds +[2018-06-13T07:44:33.591+0000][32376][safepoint ] Application time: 0,0035437 seconds +[2018-06-13T07:44:33.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000872 seconds, Stopping threads took: 0,0000331 seconds +[2018-06-13T07:44:34.586+0000][32376][safepoint ] Application time: 0,9955568 seconds +[2018-06-13T07:44:34.587+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001113 seconds, Stopping threads took: 0,0000400 seconds +[2018-06-13T07:44:34.587+0000][32376][safepoint ] Application time: 0,0000882 seconds +[2018-06-13T07:44:34.587+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000763 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-13T07:44:34.612+0000][32376][safepoint ] Application time: 0,0252377 seconds +[2018-06-13T07:44:34.612+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001218 seconds, Stopping threads took: 0,0000283 seconds +[2018-06-13T07:44:34.613+0000][32376][safepoint ] Application time: 0,0007411 seconds +[2018-06-13T07:44:34.613+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000951 seconds, Stopping threads took: 0,0000437 seconds +[2018-06-13T07:44:34.613+0000][32376][safepoint ] Application time: 0,0003984 seconds +[2018-06-13T07:44:34.614+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000691 seconds, Stopping threads took: 0,0000251 seconds +[2018-06-13T07:44:34.618+0000][32376][safepoint ] Application time: 0,0040917 seconds +[2018-06-13T07:44:34.620+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0018590 seconds, Stopping threads took: 0,0017410 seconds +[2018-06-13T07:44:34.624+0000][32376][safepoint ] Application time: 0,0045049 seconds +[2018-06-13T07:44:34.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001506 seconds, Stopping threads took: 0,0000770 seconds +[2018-06-13T07:44:34.629+0000][32376][safepoint ] Application time: 0,0045182 seconds +[2018-06-13T07:44:34.629+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001866 seconds, Stopping threads took: 0,0000667 seconds +[2018-06-13T07:44:34.631+0000][32376][safepoint ] Application time: 0,0019836 seconds +[2018-06-13T07:44:34.631+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002400 seconds, Stopping threads took: 0,0000820 seconds +[2018-06-13T07:44:34.635+0000][32376][safepoint ] Application time: 0,0033311 seconds +[2018-06-13T07:44:34.639+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0044364 seconds, Stopping threads took: 0,0043054 seconds +[2018-06-13T07:44:34.654+0000][32376][safepoint ] Application time: 0,0148991 seconds +[2018-06-13T07:44:34.654+0000][32376][gc,start ] GC(7) Pause Young (Allocation Failure) +[2018-06-13T07:44:34.654+0000][32376][gc,task ] GC(7) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:34.695+0000][32376][gc,age ] GC(7) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:34.695+0000][32376][gc,age ] GC(7) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:34.695+0000][32376][gc,age ] GC(7) - age 1: 16444680 bytes, 16444680 total +[2018-06-13T07:44:34.695+0000][32376][gc,heap ] GC(7) ParNew: 314559K->20504K(314560K) +[2018-06-13T07:44:34.695+0000][32376][gc,heap ] GC(7) CMS: 37674K->48123K(699072K) +[2018-06-13T07:44:34.695+0000][32376][gc,metaspace ] GC(7) Metaspace: 64936K->64936K(1110016K) +[2018-06-13T07:44:34.695+0000][32376][gc ] GC(7) Pause Young (Allocation Failure) 343M->67M(989M) 40,540ms +[2018-06-13T07:44:34.695+0000][32376][gc,cpu ] GC(7) User=0,17s Sys=0,00s Real=0,05s +[2018-06-13T07:44:34.695+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0407130 seconds, Stopping threads took: 0,0000520 seconds +[2018-06-13T07:44:34.696+0000][32376][safepoint ] Application time: 0,0008539 seconds +[2018-06-13T07:44:34.696+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001257 seconds, Stopping threads took: 0,0000582 seconds +[2018-06-13T07:44:34.696+0000][32376][safepoint ] Application time: 0,0006285 seconds +[2018-06-13T07:44:34.697+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009850 seconds, Stopping threads took: 0,0008761 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Application time: 0,0000672 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001948 seconds, Stopping threads took: 0,0001092 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Application time: 0,0000564 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001138 seconds, Stopping threads took: 0,0000288 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Application time: 0,0000407 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000982 seconds, Stopping threads took: 0,0000349 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Application time: 0,0000267 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000841 seconds, Stopping threads took: 0,0000180 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Application time: 0,0000219 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001078 seconds, Stopping threads took: 0,0000375 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Application time: 0,0000200 seconds +[2018-06-13T07:44:34.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000874 seconds, Stopping threads took: 0,0000322 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000211 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000920 seconds, Stopping threads took: 0,0000375 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000213 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001173 seconds, Stopping threads took: 0,0000457 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000177 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000837 seconds, Stopping threads took: 0,0000142 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000145 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000978 seconds, Stopping threads took: 0,0000296 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000199 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001030 seconds, Stopping threads took: 0,0000329 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000215 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000973 seconds, Stopping threads took: 0,0000273 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000189 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000815 seconds, Stopping threads took: 0,0000186 seconds +[2018-06-13T07:44:34.699+0000][32376][safepoint ] Application time: 0,0000219 seconds +[2018-06-13T07:44:34.700+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001074 seconds, Stopping threads took: 0,0000342 seconds +[2018-06-13T07:44:34.700+0000][32376][safepoint ] Application time: 0,0000182 seconds +[2018-06-13T07:44:34.700+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003507 seconds, Stopping threads took: 0,0000250 seconds +[2018-06-13T07:44:34.757+0000][32376][safepoint ] Application time: 0,0573773 seconds +[2018-06-13T07:44:34.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001123 seconds, Stopping threads took: 0,0000250 seconds +[2018-06-13T07:44:34.758+0000][32376][safepoint ] Application time: 0,0000292 seconds +[2018-06-13T07:44:34.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000735 seconds, Stopping threads took: 0,0000225 seconds +[2018-06-13T07:44:34.758+0000][32376][safepoint ] Application time: 0,0000399 seconds +[2018-06-13T07:44:34.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002749 seconds, Stopping threads took: 0,0000361 seconds +[2018-06-13T07:44:34.761+0000][32376][safepoint ] Application time: 0,0029307 seconds +[2018-06-13T07:44:34.761+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000747 seconds, Stopping threads took: 0,0000208 seconds +[2018-06-13T07:44:34.846+0000][32376][safepoint ] Application time: 0,0852868 seconds +[2018-06-13T07:44:34.846+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001166 seconds, Stopping threads took: 0,0000381 seconds +[2018-06-13T07:44:34.876+0000][32376][safepoint ] Application time: 0,0299052 seconds +[2018-06-13T07:44:34.877+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001283 seconds, Stopping threads took: 0,0000324 seconds +[2018-06-13T07:44:34.890+0000][32376][safepoint ] Application time: 0,0135588 seconds +[2018-06-13T07:44:34.890+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001718 seconds, Stopping threads took: 0,0001148 seconds +[2018-06-13T07:44:34.904+0000][32376][safepoint ] Application time: 0,0137172 seconds +[2018-06-13T07:44:34.904+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000737 seconds, Stopping threads took: 0,0000261 seconds +[2018-06-13T07:44:34.913+0000][32376][safepoint ] Application time: 0,0092249 seconds +[2018-06-13T07:44:34.914+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002646 seconds, Stopping threads took: 0,0001863 seconds +[2018-06-13T07:44:34.925+0000][32376][safepoint ] Application time: 0,0112633 seconds +[2018-06-13T07:44:34.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001206 seconds, Stopping threads took: 0,0000356 seconds +[2018-06-13T07:44:34.933+0000][32376][safepoint ] Application time: 0,0082642 seconds +[2018-06-13T07:44:34.934+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000902 seconds, Stopping threads took: 0,0000362 seconds +[2018-06-13T07:44:34.963+0000][32376][safepoint ] Application time: 0,0296934 seconds +[2018-06-13T07:44:34.963+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001744 seconds, Stopping threads took: 0,0000698 seconds +[2018-06-13T07:44:34.967+0000][32376][safepoint ] Application time: 0,0034036 seconds +[2018-06-13T07:44:34.967+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001332 seconds, Stopping threads took: 0,0000481 seconds +[2018-06-13T07:44:34.981+0000][32376][safepoint ] Application time: 0,0134777 seconds +[2018-06-13T07:44:34.981+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001079 seconds, Stopping threads took: 0,0000462 seconds +[2018-06-13T07:44:34.988+0000][32376][safepoint ] Application time: 0,0068402 seconds +[2018-06-13T07:44:34.988+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001359 seconds, Stopping threads took: 0,0000596 seconds +[2018-06-13T07:44:34.998+0000][32376][safepoint ] Application time: 0,0102999 seconds +[2018-06-13T07:44:34.998+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001258 seconds, Stopping threads took: 0,0000561 seconds +[2018-06-13T07:44:35.004+0000][32376][safepoint ] Application time: 0,0059905 seconds +[2018-06-13T07:44:35.004+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001484 seconds, Stopping threads took: 0,0000567 seconds +[2018-06-13T07:44:35.012+0000][32376][safepoint ] Application time: 0,0080192 seconds +[2018-06-13T07:44:35.013+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001475 seconds, Stopping threads took: 0,0000553 seconds +[2018-06-13T07:44:35.024+0000][32376][safepoint ] Application time: 0,0114072 seconds +[2018-06-13T07:44:35.024+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001147 seconds, Stopping threads took: 0,0000488 seconds +[2018-06-13T07:44:35.034+0000][32376][safepoint ] Application time: 0,0094851 seconds +[2018-06-13T07:44:35.034+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001799 seconds, Stopping threads took: 0,0000706 seconds +[2018-06-13T07:44:35.050+0000][32376][safepoint ] Application time: 0,0161210 seconds +[2018-06-13T07:44:35.050+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001828 seconds, Stopping threads took: 0,0000986 seconds +[2018-06-13T07:44:35.061+0000][32376][safepoint ] Application time: 0,0105804 seconds +[2018-06-13T07:44:35.061+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001292 seconds, Stopping threads took: 0,0000381 seconds +[2018-06-13T07:44:35.069+0000][32376][safepoint ] Application time: 0,0074882 seconds +[2018-06-13T07:44:35.069+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006481 seconds, Stopping threads took: 0,0000826 seconds +[2018-06-13T07:44:35.270+0000][32376][safepoint ] Application time: 0,2008766 seconds +[2018-06-13T07:44:35.270+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002843 seconds, Stopping threads took: 0,0000596 seconds +[2018-06-13T07:44:35.294+0000][32376][safepoint ] Application time: 0,0239563 seconds +[2018-06-13T07:44:35.295+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001538 seconds, Stopping threads took: 0,0000583 seconds +[2018-06-13T07:44:35.323+0000][32376][safepoint ] Application time: 0,0280962 seconds +[2018-06-13T07:44:35.323+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002026 seconds, Stopping threads took: 0,0000548 seconds +[2018-06-13T07:44:35.325+0000][32376][safepoint ] Application time: 0,0020289 seconds +[2018-06-13T07:44:35.325+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001840 seconds, Stopping threads took: 0,0000855 seconds +[2018-06-13T07:44:35.325+0000][32376][safepoint ] Application time: 0,0002041 seconds +[2018-06-13T07:44:35.326+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001543 seconds, Stopping threads took: 0,0000559 seconds +[2018-06-13T07:44:35.335+0000][32376][safepoint ] Application time: 0,0090099 seconds +[2018-06-13T07:44:35.340+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0051153 seconds, Stopping threads took: 0,0039447 seconds +[2018-06-13T07:44:35.354+0000][32376][safepoint ] Application time: 0,0144779 seconds +[2018-06-13T07:44:35.359+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0049250 seconds, Stopping threads took: 0,0047821 seconds +[2018-06-13T07:44:35.360+0000][32376][safepoint ] Application time: 0,0001973 seconds +[2018-06-13T07:44:35.360+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002775 seconds, Stopping threads took: 0,0001653 seconds +[2018-06-13T07:44:35.374+0000][32376][safepoint ] Application time: 0,0137666 seconds +[2018-06-13T07:44:35.375+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011861 seconds, Stopping threads took: 0,0009857 seconds +[2018-06-13T07:44:35.378+0000][32376][safepoint ] Application time: 0,0031283 seconds +[2018-06-13T07:44:35.378+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003118 seconds, Stopping threads took: 0,0001046 seconds +[2018-06-13T07:44:35.379+0000][32376][safepoint ] Application time: 0,0004273 seconds +[2018-06-13T07:44:35.379+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002393 seconds, Stopping threads took: 0,0001490 seconds +[2018-06-13T07:44:35.391+0000][32376][safepoint ] Application time: 0,0114648 seconds +[2018-06-13T07:44:35.395+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0047497 seconds, Stopping threads took: 0,0045665 seconds +[2018-06-13T07:44:35.411+0000][32376][safepoint ] Application time: 0,0151617 seconds +[2018-06-13T07:44:35.412+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014134 seconds, Stopping threads took: 0,0012178 seconds +[2018-06-13T07:44:35.412+0000][32376][safepoint ] Application time: 0,0003154 seconds +[2018-06-13T07:44:35.413+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001398 seconds, Stopping threads took: 0,0000514 seconds +[2018-06-13T07:44:35.427+0000][32376][safepoint ] Application time: 0,0140529 seconds +[2018-06-13T07:44:35.430+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0030049 seconds, Stopping threads took: 0,0028236 seconds +[2018-06-13T07:44:35.451+0000][32376][safepoint ] Application time: 0,0211562 seconds +[2018-06-13T07:44:35.452+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012221 seconds, Stopping threads took: 0,0001247 seconds +[2018-06-13T07:44:35.459+0000][32376][safepoint ] Application time: 0,0068205 seconds +[2018-06-13T07:44:35.459+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003715 seconds, Stopping threads took: 0,0002744 seconds +[2018-06-13T07:44:35.467+0000][32376][safepoint ] Application time: 0,0078431 seconds +[2018-06-13T07:44:35.473+0000][32376][gc,start ] GC(8) Pause Young (Allocation Failure) +[2018-06-13T07:44:35.473+0000][32376][gc,task ] GC(8) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:35.485+0000][32376][gc,age ] GC(8) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:35.485+0000][32376][gc,age ] GC(8) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:35.485+0000][32376][gc,age ] GC(8) - age 1: 2642528 bytes, 2642528 total +[2018-06-13T07:44:35.485+0000][32376][gc,age ] GC(8) - age 2: 8110968 bytes, 10753496 total +[2018-06-13T07:44:35.485+0000][32376][gc,heap ] GC(8) ParNew: 300120K->15408K(314560K) +[2018-06-13T07:44:35.485+0000][32376][gc,heap ] GC(8) CMS: 48123K->48123K(699072K) +[2018-06-13T07:44:35.485+0000][32376][gc,metaspace ] GC(8) Metaspace: 67194K->67194K(1112064K) +[2018-06-13T07:44:35.485+0000][32376][gc ] GC(8) Pause Young (Allocation Failure) 340M->62M(989M) 12,773ms +[2018-06-13T07:44:35.485+0000][32376][gc,cpu ] GC(8) User=0,06s Sys=0,00s Real=0,01s +[2018-06-13T07:44:35.485+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0180830 seconds, Stopping threads took: 0,0050277 seconds +[2018-06-13T07:44:35.493+0000][32376][safepoint ] Application time: 0,0080166 seconds +[2018-06-13T07:44:35.495+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020304 seconds, Stopping threads took: 0,0013137 seconds +[2018-06-13T07:44:35.515+0000][32376][safepoint ] Application time: 0,0194158 seconds +[2018-06-13T07:44:35.517+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0019683 seconds, Stopping threads took: 0,0018028 seconds +[2018-06-13T07:44:35.758+0000][32376][safepoint ] Application time: 0,2409530 seconds +[2018-06-13T07:44:35.759+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007407 seconds, Stopping threads took: 0,0000330 seconds +[2018-06-13T07:44:36.011+0000][32376][safepoint ] Application time: 0,2522663 seconds +[2018-06-13T07:44:36.011+0000][32376][gc,start ] GC(9) Pause Young (Allocation Failure) +[2018-06-13T07:44:36.011+0000][32376][gc,task ] GC(9) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:36.030+0000][32376][gc,age ] GC(9) Desired survivor size 17891328 bytes, new threshold 3 (max threshold 6) +[2018-06-13T07:44:36.030+0000][32376][gc,age ] GC(9) Age table with threshold 3 (max threshold 6) +[2018-06-13T07:44:36.030+0000][32376][gc,age ] GC(9) - age 1: 11719704 bytes, 11719704 total +[2018-06-13T07:44:36.030+0000][32376][gc,age ] GC(9) - age 2: 1174056 bytes, 12893760 total +[2018-06-13T07:44:36.030+0000][32376][gc,age ] GC(9) - age 3: 8101608 bytes, 20995368 total +[2018-06-13T07:44:36.030+0000][32376][gc,heap ] GC(9) ParNew: 287004K->23815K(314560K) +[2018-06-13T07:44:36.030+0000][32376][gc,heap ] GC(9) CMS: 48123K->48123K(699072K) +[2018-06-13T07:44:36.030+0000][32376][gc,metaspace ] GC(9) Metaspace: 70418K->70418K(1116160K) +[2018-06-13T07:44:36.030+0000][32376][gc ] GC(9) Pause Young (Allocation Failure) 327M->70M(989M) 18,738ms +[2018-06-13T07:44:36.030+0000][32376][gc,cpu ] GC(9) User=0,12s Sys=0,00s Real=0,02s +[2018-06-13T07:44:36.030+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0190581 seconds, Stopping threads took: 0,0000376 seconds +[2018-06-13T07:44:37.030+0000][32376][safepoint ] Application time: 1,0000802 seconds +[2018-06-13T07:44:37.030+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002062 seconds, Stopping threads took: 0,0000423 seconds +[2018-06-13T07:44:37.237+0000][32376][safepoint ] Application time: 0,2069202 seconds +[2018-06-13T07:44:37.240+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0025220 seconds, Stopping threads took: 0,0014553 seconds +[2018-06-13T07:44:37.244+0000][32376][safepoint ] Application time: 0,0042864 seconds +[2018-06-13T07:44:37.244+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001117 seconds, Stopping threads took: 0,0000330 seconds +[2018-06-13T07:44:37.244+0000][32376][safepoint ] Application time: 0,0000494 seconds +[2018-06-13T07:44:37.244+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000696 seconds, Stopping threads took: 0,0000151 seconds +[2018-06-13T07:44:37.303+0000][32376][safepoint ] Application time: 0,0584200 seconds +[2018-06-13T07:44:37.303+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002197 seconds, Stopping threads took: 0,0000675 seconds +[2018-06-13T07:44:37.303+0000][32376][safepoint ] Application time: 0,0003059 seconds +[2018-06-13T07:44:37.304+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000919 seconds, Stopping threads took: 0,0000380 seconds +[2018-06-13T07:44:37.304+0000][32376][safepoint ] Application time: 0,0001876 seconds +[2018-06-13T07:44:37.304+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000967 seconds, Stopping threads took: 0,0000334 seconds +[2018-06-13T07:44:37.304+0000][32376][safepoint ] Application time: 0,0002754 seconds +[2018-06-13T07:44:37.304+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000775 seconds, Stopping threads took: 0,0000182 seconds +[2018-06-13T07:44:37.305+0000][32376][safepoint ] Application time: 0,0005206 seconds +[2018-06-13T07:44:37.305+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000891 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-13T07:44:37.305+0000][32376][safepoint ] Application time: 0,0001665 seconds +[2018-06-13T07:44:37.305+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001047 seconds, Stopping threads took: 0,0000250 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Application time: 0,0003107 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000908 seconds, Stopping threads took: 0,0000261 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Application time: 0,0001454 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000936 seconds, Stopping threads took: 0,0000329 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Application time: 0,0002418 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000723 seconds, Stopping threads took: 0,0000241 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Application time: 0,0000921 seconds +[2018-06-13T07:44:37.306+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000592 seconds, Stopping threads took: 0,0000166 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Application time: 0,0002968 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000843 seconds, Stopping threads took: 0,0000373 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Application time: 0,0000929 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000687 seconds, Stopping threads took: 0,0000282 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Application time: 0,0000555 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000623 seconds, Stopping threads took: 0,0000230 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Application time: 0,0000889 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000616 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Application time: 0,0000788 seconds +[2018-06-13T07:44:37.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000518 seconds, Stopping threads took: 0,0000141 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Application time: 0,0000773 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000523 seconds, Stopping threads took: 0,0000151 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Application time: 0,0001912 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000821 seconds, Stopping threads took: 0,0000276 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Application time: 0,0001183 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000854 seconds, Stopping threads took: 0,0000228 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Application time: 0,0001194 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000727 seconds, Stopping threads took: 0,0000166 seconds +[2018-06-13T07:44:37.308+0000][32376][safepoint ] Application time: 0,0000602 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000753 seconds, Stopping threads took: 0,0000171 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Application time: 0,0001079 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000958 seconds, Stopping threads took: 0,0000379 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Application time: 0,0000620 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000705 seconds, Stopping threads took: 0,0000172 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Application time: 0,0000646 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000724 seconds, Stopping threads took: 0,0000198 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Application time: 0,0001340 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000882 seconds, Stopping threads took: 0,0000314 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Application time: 0,0000841 seconds +[2018-06-13T07:44:37.309+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000828 seconds, Stopping threads took: 0,0000189 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Application time: 0,0000922 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000586 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Application time: 0,0001185 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000457 seconds, Stopping threads took: 0,0000108 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Application time: 0,0000532 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000497 seconds, Stopping threads took: 0,0000105 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Application time: 0,0000654 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000465 seconds, Stopping threads took: 0,0000124 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Application time: 0,0000627 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000789 seconds, Stopping threads took: 0,0000169 seconds +[2018-06-13T07:44:37.310+0000][32376][safepoint ] Application time: 0,0000757 seconds +[2018-06-13T07:44:37.311+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005164 seconds, Stopping threads took: 0,0000154 seconds +[2018-06-13T07:44:37.311+0000][32376][safepoint ] Application time: 0,0001268 seconds +[2018-06-13T07:44:37.311+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000945 seconds, Stopping threads took: 0,0000288 seconds +[2018-06-13T07:44:37.311+0000][32376][safepoint ] Application time: 0,0001716 seconds +[2018-06-13T07:44:37.311+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000727 seconds, Stopping threads took: 0,0000160 seconds +[2018-06-13T07:44:37.312+0000][32376][safepoint ] Application time: 0,0001273 seconds +[2018-06-13T07:44:37.312+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004993 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-13T07:44:37.325+0000][32376][safepoint ] Application time: 0,0126403 seconds +[2018-06-13T07:44:37.325+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001490 seconds, Stopping threads took: 0,0000557 seconds +[2018-06-13T07:44:37.328+0000][32376][safepoint ] Application time: 0,0033011 seconds +[2018-06-13T07:44:37.328+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001964 seconds, Stopping threads took: 0,0000808 seconds +[2018-06-13T07:44:37.329+0000][32376][safepoint ] Application time: 0,0000758 seconds +[2018-06-13T07:44:37.329+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001425 seconds, Stopping threads took: 0,0000452 seconds +[2018-06-13T07:44:37.329+0000][32376][safepoint ] Application time: 0,0002088 seconds +[2018-06-13T07:44:37.329+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001270 seconds, Stopping threads took: 0,0000354 seconds +[2018-06-13T07:44:37.329+0000][32376][safepoint ] Application time: 0,0000360 seconds +[2018-06-13T07:44:37.329+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001166 seconds, Stopping threads took: 0,0000317 seconds +[2018-06-13T07:44:37.330+0000][32376][safepoint ] Application time: 0,0002715 seconds +[2018-06-13T07:44:37.330+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001456 seconds, Stopping threads took: 0,0000453 seconds +[2018-06-13T07:44:37.330+0000][32376][safepoint ] Application time: 0,0000249 seconds +[2018-06-13T07:44:37.330+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000830 seconds, Stopping threads took: 0,0000241 seconds +[2018-06-13T07:44:37.330+0000][32376][safepoint ] Application time: 0,0000182 seconds +[2018-06-13T07:44:37.330+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001196 seconds, Stopping threads took: 0,0000383 seconds +[2018-06-13T07:44:37.330+0000][32376][safepoint ] Application time: 0,0000303 seconds +[2018-06-13T07:44:37.335+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0050549 seconds, Stopping threads took: 0,0049418 seconds +[2018-06-13T07:44:37.335+0000][32376][safepoint ] Application time: 0,0002293 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001089 seconds, Stopping threads took: 0,0000349 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Application time: 0,0000280 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000932 seconds, Stopping threads took: 0,0000288 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Application time: 0,0000256 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000793 seconds, Stopping threads took: 0,0000199 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Application time: 0,0000248 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000726 seconds, Stopping threads took: 0,0000164 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Application time: 0,0001639 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000973 seconds, Stopping threads took: 0,0000288 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Application time: 0,0000216 seconds +[2018-06-13T07:44:37.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000954 seconds, Stopping threads took: 0,0000279 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Application time: 0,0001609 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000749 seconds, Stopping threads took: 0,0000190 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Application time: 0,0000285 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000804 seconds, Stopping threads took: 0,0000215 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Application time: 0,0000207 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000734 seconds, Stopping threads took: 0,0000162 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Application time: 0,0000204 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000783 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Application time: 0,0000175 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000610 seconds, Stopping threads took: 0,0000152 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Application time: 0,0001653 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000750 seconds, Stopping threads took: 0,0000195 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Application time: 0,0000184 seconds +[2018-06-13T07:44:37.337+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000652 seconds, Stopping threads took: 0,0000158 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0001085 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000789 seconds, Stopping threads took: 0,0000144 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000174 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000728 seconds, Stopping threads took: 0,0000183 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000203 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000674 seconds, Stopping threads took: 0,0000164 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000207 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000699 seconds, Stopping threads took: 0,0000140 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000197 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000666 seconds, Stopping threads took: 0,0000142 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000185 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000711 seconds, Stopping threads took: 0,0000181 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000181 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000639 seconds, Stopping threads took: 0,0000158 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000170 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000817 seconds, Stopping threads took: 0,0000137 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Application time: 0,0000183 seconds +[2018-06-13T07:44:37.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000659 seconds, Stopping threads took: 0,0000141 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Application time: 0,0002201 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000856 seconds, Stopping threads took: 0,0000265 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Application time: 0,0000270 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000639 seconds, Stopping threads took: 0,0000142 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Application time: 0,0000186 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000604 seconds, Stopping threads took: 0,0000130 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Application time: 0,0000168 seconds +[2018-06-13T07:44:37.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005020 seconds, Stopping threads took: 0,0000136 seconds +[2018-06-13T07:44:37.419+0000][32376][safepoint ] Application time: 0,0793169 seconds +[2018-06-13T07:44:37.420+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011373 seconds, Stopping threads took: 0,0000601 seconds +[2018-06-13T07:44:37.425+0000][32376][safepoint ] Application time: 0,0053241 seconds +[2018-06-13T07:44:37.426+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007263 seconds, Stopping threads took: 0,0000496 seconds +[2018-06-13T07:44:37.428+0000][32376][safepoint ] Application time: 0,0022919 seconds +[2018-06-13T07:44:37.429+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001711 seconds, Stopping threads took: 0,0000666 seconds +[2018-06-13T07:44:37.457+0000][32376][safepoint ] Application time: 0,0284565 seconds +[2018-06-13T07:44:37.457+0000][32376][gc,start ] GC(10) Pause Young (Allocation Failure) +[2018-06-13T07:44:37.457+0000][32376][gc,task ] GC(10) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:37.485+0000][32376][gc,age ] GC(10) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:37.485+0000][32376][gc,age ] GC(10) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:37.485+0000][32376][gc,age ] GC(10) - age 1: 4683024 bytes, 4683024 total +[2018-06-13T07:44:37.485+0000][32376][gc,age ] GC(10) - age 2: 959984 bytes, 5643008 total +[2018-06-13T07:44:37.485+0000][32376][gc,age ] GC(10) - age 3: 1162488 bytes, 6805496 total +[2018-06-13T07:44:37.485+0000][32376][gc,heap ] GC(10) ParNew: 303431K->13955K(314560K) +[2018-06-13T07:44:37.485+0000][32376][gc,heap ] GC(10) CMS: 48123K->118122K(699072K) +[2018-06-13T07:44:37.485+0000][32376][gc,metaspace ] GC(10) Metaspace: 73986K->73986K(1118208K) +[2018-06-13T07:44:37.485+0000][32376][gc ] GC(10) Pause Young (Allocation Failure) 343M->128M(989M) 28,053ms +[2018-06-13T07:44:37.485+0000][32376][gc,cpu ] GC(10) User=0,16s Sys=0,00s Real=0,02s +[2018-06-13T07:44:37.485+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0283012 seconds, Stopping threads took: 0,0000623 seconds +[2018-06-13T07:44:37.489+0000][32376][safepoint ] Application time: 0,0037826 seconds +[2018-06-13T07:44:37.490+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003135 seconds, Stopping threads took: 0,0001938 seconds +[2018-06-13T07:44:37.527+0000][32376][safepoint ] Application time: 0,0370975 seconds +[2018-06-13T07:44:37.528+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008022 seconds, Stopping threads took: 0,0006512 seconds +[2018-06-13T07:44:37.528+0000][32376][safepoint ] Application time: 0,0000717 seconds +[2018-06-13T07:44:37.528+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001602 seconds, Stopping threads took: 0,0000769 seconds +[2018-06-13T07:44:37.559+0000][32376][safepoint ] Application time: 0,0308216 seconds +[2018-06-13T07:44:37.561+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0021661 seconds, Stopping threads took: 0,0011819 seconds +[2018-06-13T07:44:37.574+0000][32376][safepoint ] Application time: 0,0129362 seconds +[2018-06-13T07:44:37.579+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0054827 seconds, Stopping threads took: 0,0053367 seconds +[2018-06-13T07:44:37.581+0000][32376][safepoint ] Application time: 0,0020104 seconds +[2018-06-13T07:44:37.583+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010949 seconds, Stopping threads took: 0,0000939 seconds +[2018-06-13T07:44:37.588+0000][32376][safepoint ] Application time: 0,0051328 seconds +[2018-06-13T07:44:37.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0032094 seconds, Stopping threads took: 0,0030229 seconds +[2018-06-13T07:44:37.615+0000][32376][safepoint ] Application time: 0,0235652 seconds +[2018-06-13T07:44:37.615+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002697 seconds, Stopping threads took: 0,0001760 seconds +[2018-06-13T07:44:37.618+0000][32376][safepoint ] Application time: 0,0031042 seconds +[2018-06-13T07:44:37.618+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001677 seconds, Stopping threads took: 0,0000954 seconds +[2018-06-13T07:44:37.623+0000][32376][safepoint ] Application time: 0,0050505 seconds +[2018-06-13T07:44:37.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003125 seconds, Stopping threads took: 0,0002251 seconds +[2018-06-13T07:44:37.624+0000][32376][safepoint ] Application time: 0,0002143 seconds +[2018-06-13T07:44:37.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002119 seconds, Stopping threads took: 0,0001324 seconds +[2018-06-13T07:44:37.624+0000][32376][safepoint ] Application time: 0,0000947 seconds +[2018-06-13T07:44:37.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001281 seconds, Stopping threads took: 0,0000406 seconds +[2018-06-13T07:44:37.640+0000][32376][safepoint ] Application time: 0,0160456 seconds +[2018-06-13T07:44:37.641+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002366 seconds, Stopping threads took: 0,0001139 seconds +[2018-06-13T07:44:37.654+0000][32376][safepoint ] Application time: 0,0128634 seconds +[2018-06-13T07:44:37.654+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003508 seconds, Stopping threads took: 0,0002008 seconds +[2018-06-13T07:44:37.655+0000][32376][safepoint ] Application time: 0,0005794 seconds +[2018-06-13T07:44:37.655+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001600 seconds, Stopping threads took: 0,0000607 seconds +[2018-06-13T07:44:37.682+0000][32376][safepoint ] Application time: 0,0272734 seconds +[2018-06-13T07:44:37.683+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008232 seconds, Stopping threads took: 0,0006144 seconds +[2018-06-13T07:44:37.686+0000][32376][safepoint ] Application time: 0,0030349 seconds +[2018-06-13T07:44:37.686+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001980 seconds, Stopping threads took: 0,0001011 seconds +[2018-06-13T07:44:37.686+0000][32376][safepoint ] Application time: 0,0000837 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001931 seconds, Stopping threads took: 0,0001267 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Application time: 0,0000427 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000625 seconds, Stopping threads took: 0,0000146 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Application time: 0,0000218 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001293 seconds, Stopping threads took: 0,0000552 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Application time: 0,0000663 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000856 seconds, Stopping threads took: 0,0000293 seconds +[2018-06-13T07:44:37.687+0000][32376][safepoint ] Application time: 0,0000274 seconds +[2018-06-13T07:44:37.691+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0036625 seconds, Stopping threads took: 0,0035730 seconds +[2018-06-13T07:44:37.702+0000][32376][safepoint ] Application time: 0,0117564 seconds +[2018-06-13T07:44:37.706+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0033437 seconds, Stopping threads took: 0,0032207 seconds +[2018-06-13T07:44:37.706+0000][32376][safepoint ] Application time: 0,0001919 seconds +[2018-06-13T07:44:37.706+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002588 seconds, Stopping threads took: 0,0001877 seconds +[2018-06-13T07:44:37.711+0000][32376][safepoint ] Application time: 0,0046942 seconds +[2018-06-13T07:44:37.714+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0032861 seconds, Stopping threads took: 0,0031853 seconds +[2018-06-13T07:44:37.715+0000][32376][safepoint ] Application time: 0,0008440 seconds +[2018-06-13T07:44:37.717+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015212 seconds, Stopping threads took: 0,0013836 seconds +[2018-06-13T07:44:37.751+0000][32376][safepoint ] Application time: 0,0338263 seconds +[2018-06-13T07:44:37.752+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013061 seconds, Stopping threads took: 0,0008024 seconds +[2018-06-13T07:44:37.756+0000][32376][safepoint ] Application time: 0,0036668 seconds +[2018-06-13T07:44:37.757+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015238 seconds, Stopping threads took: 0,0014288 seconds +[2018-06-13T07:44:37.757+0000][32376][safepoint ] Application time: 0,0001130 seconds +[2018-06-13T07:44:37.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001245 seconds, Stopping threads took: 0,0000603 seconds +[2018-06-13T07:44:37.772+0000][32376][safepoint ] Application time: 0,0141654 seconds +[2018-06-13T07:44:37.777+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0055727 seconds, Stopping threads took: 0,0053771 seconds +[2018-06-13T07:44:37.782+0000][32376][safepoint ] Application time: 0,0047207 seconds +[2018-06-13T07:44:37.782+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002145 seconds, Stopping threads took: 0,0000909 seconds +[2018-06-13T07:44:37.795+0000][32376][safepoint ] Application time: 0,0123254 seconds +[2018-06-13T07:44:37.799+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0040983 seconds, Stopping threads took: 0,0039953 seconds +[2018-06-13T07:44:37.799+0000][32376][safepoint ] Application time: 0,0004396 seconds +[2018-06-13T07:44:37.803+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0034771 seconds, Stopping threads took: 0,0033911 seconds +[2018-06-13T07:44:37.815+0000][32376][safepoint ] Application time: 0,0117272 seconds +[2018-06-13T07:44:37.815+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002299 seconds, Stopping threads took: 0,0001254 seconds +[2018-06-13T07:44:37.815+0000][32376][safepoint ] Application time: 0,0002759 seconds +[2018-06-13T07:44:37.817+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0023063 seconds, Stopping threads took: 0,0021758 seconds +[2018-06-13T07:44:37.819+0000][32376][safepoint ] Application time: 0,0018942 seconds +[2018-06-13T07:44:37.820+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002286 seconds, Stopping threads took: 0,0001090 seconds +[2018-06-13T07:44:38.019+0000][32376][safepoint ] Application time: 0,1994995 seconds +[2018-06-13T07:44:38.023+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0038156 seconds, Stopping threads took: 0,0035357 seconds +[2018-06-13T07:44:38.028+0000][32376][safepoint ] Application time: 0,0051245 seconds +[2018-06-13T07:44:38.028+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002867 seconds, Stopping threads took: 0,0001760 seconds +[2018-06-13T07:44:38.029+0000][32376][safepoint ] Application time: 0,0003122 seconds +[2018-06-13T07:44:38.029+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002083 seconds, Stopping threads took: 0,0001047 seconds +[2018-06-13T07:44:38.031+0000][32376][safepoint ] Application time: 0,0023977 seconds +[2018-06-13T07:44:38.032+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006624 seconds, Stopping threads took: 0,0005621 seconds +[2018-06-13T07:44:38.093+0000][32376][safepoint ] Application time: 0,0606339 seconds +[2018-06-13T07:44:38.093+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003370 seconds, Stopping threads took: 0,0001110 seconds +[2018-06-13T07:44:38.099+0000][32376][safepoint ] Application time: 0,0063025 seconds +[2018-06-13T07:44:38.100+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001727 seconds, Stopping threads took: 0,0000725 seconds +[2018-06-13T07:44:38.130+0000][32376][safepoint ] Application time: 0,0298664 seconds +[2018-06-13T07:44:38.130+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001584 seconds, Stopping threads took: 0,0000650 seconds +[2018-06-13T07:44:38.161+0000][32376][safepoint ] Application time: 0,0308424 seconds +[2018-06-13T07:44:38.161+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006385 seconds, Stopping threads took: 0,0004912 seconds +[2018-06-13T07:44:38.162+0000][32376][safepoint ] Application time: 0,0003114 seconds +[2018-06-13T07:44:38.162+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001783 seconds, Stopping threads took: 0,0000664 seconds +[2018-06-13T07:44:38.167+0000][32376][safepoint ] Application time: 0,0047305 seconds +[2018-06-13T07:44:38.168+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008852 seconds, Stopping threads took: 0,0000617 seconds +[2018-06-13T07:44:38.182+0000][32376][safepoint ] Application time: 0,0149304 seconds +[2018-06-13T07:44:38.185+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0023467 seconds, Stopping threads took: 0,0021763 seconds +[2018-06-13T07:44:38.192+0000][32376][safepoint ] Application time: 0,0066501 seconds +[2018-06-13T07:44:38.192+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001802 seconds, Stopping threads took: 0,0000678 seconds +[2018-06-13T07:44:38.215+0000][32376][safepoint ] Application time: 0,0228256 seconds +[2018-06-13T07:44:38.215+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003878 seconds, Stopping threads took: 0,0002018 seconds +[2018-06-13T07:44:38.227+0000][32376][safepoint ] Application time: 0,0119002 seconds +[2018-06-13T07:44:38.228+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011387 seconds, Stopping threads took: 0,0009787 seconds +[2018-06-13T07:44:38.353+0000][32376][safepoint ] Application time: 0,1249438 seconds +[2018-06-13T07:44:38.354+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007404 seconds, Stopping threads took: 0,0005720 seconds +[2018-06-13T07:44:38.358+0000][32376][safepoint ] Application time: 0,0042301 seconds +[2018-06-13T07:44:38.358+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001409 seconds, Stopping threads took: 0,0000609 seconds +[2018-06-13T07:44:38.359+0000][32376][safepoint ] Application time: 0,0002545 seconds +[2018-06-13T07:44:38.359+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001599 seconds, Stopping threads took: 0,0000638 seconds +[2018-06-13T07:44:38.421+0000][32376][safepoint ] Application time: 0,0621697 seconds +[2018-06-13T07:44:38.422+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011966 seconds, Stopping threads took: 0,0001041 seconds +[2018-06-13T07:44:38.569+0000][32376][safepoint ] Application time: 0,1469508 seconds +[2018-06-13T07:44:38.570+0000][32376][gc,start ] GC(11) Pause Young (Allocation Failure) +[2018-06-13T07:44:38.570+0000][32376][gc,task ] GC(11) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:38.602+0000][32376][gc,age ] GC(11) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:44:38.602+0000][32376][gc,age ] GC(11) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:44:38.602+0000][32376][gc,age ] GC(11) - age 1: 29791696 bytes, 29791696 total +[2018-06-13T07:44:38.602+0000][32376][gc,age ] GC(11) - age 2: 1485376 bytes, 31277072 total +[2018-06-13T07:44:38.602+0000][32376][gc,age ] GC(11) - age 3: 959712 bytes, 32236784 total +[2018-06-13T07:44:38.602+0000][32376][gc,age ] GC(11) - age 4: 1161008 bytes, 33397792 total +[2018-06-13T07:44:38.602+0000][32376][gc,heap ] GC(11) ParNew: 293158K->34943K(314560K) +[2018-06-13T07:44:38.602+0000][32376][gc,heap ] GC(11) CMS: 118122K->185523K(699072K) +[2018-06-13T07:44:38.602+0000][32376][gc,metaspace ] GC(11) Metaspace: 78490K->78490K(1124352K) +[2018-06-13T07:44:38.602+0000][32376][gc ] GC(11) Pause Young (Allocation Failure) 401M->215M(989M) 32,145ms +[2018-06-13T07:44:38.603+0000][32376][gc,cpu ] GC(11) User=0,16s Sys=0,01s Real=0,03s +[2018-06-13T07:44:38.603+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0334006 seconds, Stopping threads took: 0,0009118 seconds +[2018-06-13T07:44:38.621+0000][32376][safepoint ] Application time: 0,0182109 seconds +[2018-06-13T07:44:38.621+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002209 seconds, Stopping threads took: 0,0000903 seconds +[2018-06-13T07:44:38.646+0000][32376][safepoint ] Application time: 0,0253505 seconds +[2018-06-13T07:44:38.652+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0053144 seconds, Stopping threads took: 0,0051472 seconds +[2018-06-13T07:44:38.652+0000][32376][safepoint ] Application time: 0,0002407 seconds +[2018-06-13T07:44:38.653+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008478 seconds, Stopping threads took: 0,0007355 seconds +[2018-06-13T07:44:38.653+0000][32376][safepoint ] Application time: 0,0001182 seconds +[2018-06-13T07:44:38.655+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015669 seconds, Stopping threads took: 0,0014350 seconds +[2018-06-13T07:44:38.655+0000][32376][safepoint ] Application time: 0,0000955 seconds +[2018-06-13T07:44:38.655+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001460 seconds, Stopping threads took: 0,0000528 seconds +[2018-06-13T07:44:38.655+0000][32376][safepoint ] Application time: 0,0000349 seconds +[2018-06-13T07:44:38.655+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001057 seconds, Stopping threads took: 0,0000261 seconds +[2018-06-13T07:44:38.684+0000][32376][safepoint ] Application time: 0,0291907 seconds +[2018-06-13T07:44:38.690+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0061527 seconds, Stopping threads took: 0,0059975 seconds +[2018-06-13T07:44:38.746+0000][32376][safepoint ] Application time: 0,0557994 seconds +[2018-06-13T07:44:38.747+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003103 seconds, Stopping threads took: 0,0001106 seconds +[2018-06-13T07:44:38.762+0000][32376][safepoint ] Application time: 0,0149424 seconds +[2018-06-13T07:44:38.763+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009489 seconds, Stopping threads took: 0,0007841 seconds +[2018-06-13T07:44:38.763+0000][32376][safepoint ] Application time: 0,0000331 seconds +[2018-06-13T07:44:38.763+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001198 seconds, Stopping threads took: 0,0000582 seconds +[2018-06-13T07:44:38.763+0000][32376][safepoint ] Application time: 0,0000717 seconds +[2018-06-13T07:44:38.763+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001551 seconds, Stopping threads took: 0,0000642 seconds +[2018-06-13T07:44:38.764+0000][32376][safepoint ] Application time: 0,0009435 seconds +[2018-06-13T07:44:38.764+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001862 seconds, Stopping threads took: 0,0000806 seconds +[2018-06-13T07:44:38.766+0000][32376][safepoint ] Application time: 0,0014370 seconds +[2018-06-13T07:44:38.769+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0029695 seconds, Stopping threads took: 0,0028016 seconds +[2018-06-13T07:44:38.811+0000][32376][safepoint ] Application time: 0,0425626 seconds +[2018-06-13T07:44:38.812+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002136 seconds, Stopping threads took: 0,0000527 seconds +[2018-06-13T07:44:38.822+0000][32376][safepoint ] Application time: 0,0105008 seconds +[2018-06-13T07:44:38.822+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002665 seconds, Stopping threads took: 0,0000864 seconds +[2018-06-13T07:44:38.842+0000][32376][safepoint ] Application time: 0,0195823 seconds +[2018-06-13T07:44:38.848+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0056675 seconds, Stopping threads took: 0,0055022 seconds +[2018-06-13T07:44:38.849+0000][32376][safepoint ] Application time: 0,0015685 seconds +[2018-06-13T07:44:38.849+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001649 seconds, Stopping threads took: 0,0000786 seconds +[2018-06-13T07:44:38.859+0000][32376][safepoint ] Application time: 0,0091196 seconds +[2018-06-13T07:44:38.859+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001516 seconds, Stopping threads took: 0,0000599 seconds +[2018-06-13T07:44:38.859+0000][32376][safepoint ] Application time: 0,0000706 seconds +[2018-06-13T07:44:38.859+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001836 seconds, Stopping threads took: 0,0000939 seconds +[2018-06-13T07:44:38.874+0000][32376][safepoint ] Application time: 0,0146057 seconds +[2018-06-13T07:44:38.876+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0024730 seconds, Stopping threads took: 0,0022855 seconds +[2018-06-13T07:44:38.885+0000][32376][safepoint ] Application time: 0,0084244 seconds +[2018-06-13T07:44:38.887+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020381 seconds, Stopping threads took: 0,0019038 seconds +[2018-06-13T07:44:38.889+0000][32376][safepoint ] Application time: 0,0020558 seconds +[2018-06-13T07:44:38.890+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009186 seconds, Stopping threads took: 0,0000533 seconds +[2018-06-13T07:44:38.909+0000][32376][safepoint ] Application time: 0,0188149 seconds +[2018-06-13T07:44:38.910+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012042 seconds, Stopping threads took: 0,0000819 seconds +[2018-06-13T07:44:38.916+0000][32376][safepoint ] Application time: 0,0055872 seconds +[2018-06-13T07:44:38.916+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007333 seconds, Stopping threads took: 0,0005804 seconds +[2018-06-13T07:44:38.916+0000][32376][safepoint ] Application time: 0,0000994 seconds +[2018-06-13T07:44:38.917+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001524 seconds, Stopping threads took: 0,0000522 seconds +[2018-06-13T07:44:38.917+0000][32376][safepoint ] Application time: 0,0000254 seconds +[2018-06-13T07:44:38.917+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000869 seconds, Stopping threads took: 0,0000318 seconds +[2018-06-13T07:44:38.920+0000][32376][safepoint ] Application time: 0,0030151 seconds +[2018-06-13T07:44:38.920+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002188 seconds, Stopping threads took: 0,0000770 seconds +[2018-06-13T07:44:38.935+0000][32376][safepoint ] Application time: 0,0152097 seconds +[2018-06-13T07:44:38.938+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0026810 seconds, Stopping threads took: 0,0025295 seconds +[2018-06-13T07:44:38.947+0000][32376][safepoint ] Application time: 0,0092535 seconds +[2018-06-13T07:44:38.947+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001893 seconds, Stopping threads took: 0,0000810 seconds +[2018-06-13T07:44:38.965+0000][32376][safepoint ] Application time: 0,0178239 seconds +[2018-06-13T07:44:38.966+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002141 seconds, Stopping threads took: 0,0001095 seconds +[2018-06-13T07:44:38.979+0000][32376][safepoint ] Application time: 0,0137808 seconds +[2018-06-13T07:44:38.979+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001436 seconds, Stopping threads took: 0,0000522 seconds +[2018-06-13T07:44:38.980+0000][32376][safepoint ] Application time: 0,0000461 seconds +[2018-06-13T07:44:38.980+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004350 seconds, Stopping threads took: 0,0003652 seconds +[2018-06-13T07:44:38.995+0000][32376][safepoint ] Application time: 0,0154478 seconds +[2018-06-13T07:44:38.999+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0032329 seconds, Stopping threads took: 0,0031296 seconds +[2018-06-13T07:44:38.999+0000][32376][safepoint ] Application time: 0,0000667 seconds +[2018-06-13T07:44:38.999+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001088 seconds, Stopping threads took: 0,0000474 seconds +[2018-06-13T07:44:38.999+0000][32376][safepoint ] Application time: 0,0002287 seconds +[2018-06-13T07:44:38.999+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002380 seconds, Stopping threads took: 0,0001255 seconds +[2018-06-13T07:44:39.000+0000][32376][safepoint ] Application time: 0,0003787 seconds +[2018-06-13T07:44:39.000+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002305 seconds, Stopping threads took: 0,0000893 seconds +[2018-06-13T07:44:39.000+0000][32376][safepoint ] Application time: 0,0000622 seconds +[2018-06-13T07:44:39.000+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001657 seconds, Stopping threads took: 0,0000437 seconds +[2018-06-13T07:44:39.000+0000][32376][safepoint ] Application time: 0,0000306 seconds +[2018-06-13T07:44:39.001+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001337 seconds, Stopping threads took: 0,0000188 seconds +[2018-06-13T07:44:39.001+0000][32376][safepoint ] Application time: 0,0009676 seconds +[2018-06-13T07:44:39.002+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001856 seconds, Stopping threads took: 0,0000752 seconds +[2018-06-13T07:44:39.008+0000][32376][safepoint ] Application time: 0,0063736 seconds +[2018-06-13T07:44:39.009+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011501 seconds, Stopping threads took: 0,0001077 seconds +[2018-06-13T07:44:39.019+0000][32376][safepoint ] Application time: 0,0101077 seconds +[2018-06-13T07:44:39.021+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0016894 seconds, Stopping threads took: 0,0014867 seconds +[2018-06-13T07:44:39.028+0000][32376][safepoint ] Application time: 0,0063019 seconds +[2018-06-13T07:44:39.028+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002513 seconds, Stopping threads took: 0,0001114 seconds +[2018-06-13T07:44:39.028+0000][32376][safepoint ] Application time: 0,0001633 seconds +[2018-06-13T07:44:39.028+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001788 seconds, Stopping threads took: 0,0000605 seconds +[2018-06-13T07:44:39.031+0000][32376][safepoint ] Application time: 0,0024021 seconds +[2018-06-13T07:44:39.031+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001797 seconds, Stopping threads took: 0,0000654 seconds +[2018-06-13T07:44:39.031+0000][32376][safepoint ] Application time: 0,0000585 seconds +[2018-06-13T07:44:39.031+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001119 seconds, Stopping threads took: 0,0000453 seconds +[2018-06-13T07:44:39.031+0000][32376][safepoint ] Application time: 0,0001052 seconds +[2018-06-13T07:44:39.037+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0056729 seconds, Stopping threads took: 0,0055258 seconds +[2018-06-13T07:44:39.037+0000][32376][safepoint ] Application time: 0,0001754 seconds +[2018-06-13T07:44:39.037+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001830 seconds, Stopping threads took: 0,0000574 seconds +[2018-06-13T07:44:39.037+0000][32376][safepoint ] Application time: 0,0000611 seconds +[2018-06-13T07:44:39.037+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001587 seconds, Stopping threads took: 0,0000461 seconds +[2018-06-13T07:44:39.044+0000][32376][safepoint ] Application time: 0,0064175 seconds +[2018-06-13T07:44:39.044+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002347 seconds, Stopping threads took: 0,0001012 seconds +[2018-06-13T07:44:39.044+0000][32376][safepoint ] Application time: 0,0000674 seconds +[2018-06-13T07:44:39.044+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001507 seconds, Stopping threads took: 0,0000400 seconds +[2018-06-13T07:44:39.044+0000][32376][safepoint ] Application time: 0,0000529 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001471 seconds, Stopping threads took: 0,0000485 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Application time: 0,0000280 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001315 seconds, Stopping threads took: 0,0000396 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Application time: 0,0000896 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001409 seconds, Stopping threads took: 0,0000390 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Application time: 0,0000265 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001164 seconds, Stopping threads took: 0,0000214 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Application time: 0,0000648 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001334 seconds, Stopping threads took: 0,0000379 seconds +[2018-06-13T07:44:39.045+0000][32376][safepoint ] Application time: 0,0000232 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001050 seconds, Stopping threads took: 0,0000170 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Application time: 0,0000525 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001021 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Application time: 0,0000538 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001363 seconds, Stopping threads took: 0,0000520 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Application time: 0,0000648 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001205 seconds, Stopping threads took: 0,0000295 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Application time: 0,0000225 seconds +[2018-06-13T07:44:39.046+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001325 seconds, Stopping threads took: 0,0000417 seconds +[2018-06-13T07:44:39.047+0000][32376][safepoint ] Application time: 0,0000669 seconds +[2018-06-13T07:44:39.047+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001826 seconds, Stopping threads took: 0,0000680 seconds +[2018-06-13T07:44:39.048+0000][32376][safepoint ] Application time: 0,0016273 seconds +[2018-06-13T07:44:39.049+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002256 seconds, Stopping threads took: 0,0000745 seconds +[2018-06-13T07:44:39.049+0000][32376][safepoint ] Application time: 0,0001353 seconds +[2018-06-13T07:44:39.049+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001795 seconds, Stopping threads took: 0,0000538 seconds +[2018-06-13T07:44:39.049+0000][32376][safepoint ] Application time: 0,0001197 seconds +[2018-06-13T07:44:39.049+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001353 seconds, Stopping threads took: 0,0000262 seconds +[2018-06-13T07:44:39.049+0000][32376][safepoint ] Application time: 0,0001747 seconds +[2018-06-13T07:44:39.050+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001597 seconds, Stopping threads took: 0,0000431 seconds +[2018-06-13T07:44:39.050+0000][32376][safepoint ] Application time: 0,0000614 seconds +[2018-06-13T07:44:39.050+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001495 seconds, Stopping threads took: 0,0000495 seconds +[2018-06-13T07:44:39.051+0000][32376][safepoint ] Application time: 0,0009159 seconds +[2018-06-13T07:44:39.055+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0040262 seconds, Stopping threads took: 0,0038905 seconds +[2018-06-13T07:44:39.059+0000][32376][safepoint ] Application time: 0,0045419 seconds +[2018-06-13T07:44:39.060+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002550 seconds, Stopping threads took: 0,0001564 seconds +[2018-06-13T07:44:39.067+0000][32376][safepoint ] Application time: 0,0070127 seconds +[2018-06-13T07:44:39.067+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002663 seconds, Stopping threads took: 0,0000919 seconds +[2018-06-13T07:44:39.068+0000][32376][safepoint ] Application time: 0,0008237 seconds +[2018-06-13T07:44:39.069+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010624 seconds, Stopping threads took: 0,0000890 seconds +[2018-06-13T07:44:39.070+0000][32376][safepoint ] Application time: 0,0012621 seconds +[2018-06-13T07:44:39.074+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0034134 seconds, Stopping threads took: 0,0029811 seconds +[2018-06-13T07:44:39.080+0000][32376][safepoint ] Application time: 0,0059867 seconds +[2018-06-13T07:44:39.080+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002574 seconds, Stopping threads took: 0,0001604 seconds +[2018-06-13T07:44:39.083+0000][32376][safepoint ] Application time: 0,0027318 seconds +[2018-06-13T07:44:39.083+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002295 seconds, Stopping threads took: 0,0000796 seconds +[2018-06-13T07:44:39.108+0000][32376][safepoint ] Application time: 0,0249092 seconds +[2018-06-13T07:44:39.108+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001795 seconds, Stopping threads took: 0,0000651 seconds +[2018-06-13T07:44:39.110+0000][32376][safepoint ] Application time: 0,0011818 seconds +[2018-06-13T07:44:39.110+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001826 seconds, Stopping threads took: 0,0000759 seconds +[2018-06-13T07:44:39.126+0000][32376][safepoint ] Application time: 0,0159584 seconds +[2018-06-13T07:44:39.126+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002066 seconds, Stopping threads took: 0,0000838 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Application time: 0,0015035 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001778 seconds, Stopping threads took: 0,0000698 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Application time: 0,0000648 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001071 seconds, Stopping threads took: 0,0000343 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Application time: 0,0000399 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000884 seconds, Stopping threads took: 0,0000244 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Application time: 0,0000535 seconds +[2018-06-13T07:44:39.128+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001210 seconds, Stopping threads took: 0,0000432 seconds +[2018-06-13T07:44:39.129+0000][32376][safepoint ] Application time: 0,0000335 seconds +[2018-06-13T07:44:39.129+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001320 seconds, Stopping threads took: 0,0000221 seconds +[2018-06-13T07:44:39.129+0000][32376][safepoint ] Application time: 0,0002824 seconds +[2018-06-13T07:44:39.129+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001626 seconds, Stopping threads took: 0,0000562 seconds +[2018-06-13T07:44:39.153+0000][32376][safepoint ] Application time: 0,0237419 seconds +[2018-06-13T07:44:39.155+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0018906 seconds, Stopping threads took: 0,0016961 seconds +[2018-06-13T07:44:39.210+0000][32376][safepoint ] Application time: 0,0555680 seconds +[2018-06-13T07:44:39.211+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002174 seconds, Stopping threads took: 0,0000811 seconds +[2018-06-13T07:44:39.228+0000][32376][safepoint ] Application time: 0,0176230 seconds +[2018-06-13T07:44:39.230+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014009 seconds, Stopping threads took: 0,0012404 seconds +[2018-06-13T07:44:39.230+0000][32376][safepoint ] Application time: 0,0001285 seconds +[2018-06-13T07:44:39.230+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001852 seconds, Stopping threads took: 0,0000875 seconds +[2018-06-13T07:44:39.230+0000][32376][safepoint ] Application time: 0,0000574 seconds +[2018-06-13T07:44:39.230+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001377 seconds, Stopping threads took: 0,0000502 seconds +[2018-06-13T07:44:39.230+0000][32376][safepoint ] Application time: 0,0000546 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001417 seconds, Stopping threads took: 0,0000548 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Application time: 0,0000626 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001118 seconds, Stopping threads took: 0,0000403 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Application time: 0,0000312 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001105 seconds, Stopping threads took: 0,0000417 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Application time: 0,0001635 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001673 seconds, Stopping threads took: 0,0000556 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Application time: 0,0000547 seconds +[2018-06-13T07:44:39.231+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001082 seconds, Stopping threads took: 0,0000191 seconds +[2018-06-13T07:44:39.232+0000][32376][safepoint ] Application time: 0,0000475 seconds +[2018-06-13T07:44:39.232+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001212 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-13T07:44:39.232+0000][32376][safepoint ] Application time: 0,0000516 seconds +[2018-06-13T07:44:39.232+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001425 seconds, Stopping threads took: 0,0000449 seconds +[2018-06-13T07:44:39.232+0000][32376][safepoint ] Application time: 0,0000298 seconds +[2018-06-13T07:44:39.232+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001120 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-13T07:44:39.258+0000][32376][safepoint ] Application time: 0,0258393 seconds +[2018-06-13T07:44:39.258+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001983 seconds, Stopping threads took: 0,0000766 seconds +[2018-06-13T07:44:39.269+0000][32376][safepoint ] Application time: 0,0109232 seconds +[2018-06-13T07:44:39.269+0000][32376][gc,start ] GC(12) Pause Young (Allocation Failure) +[2018-06-13T07:44:39.269+0000][32376][gc,task ] GC(12) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:39.289+0000][32376][gc,age ] GC(12) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:39.289+0000][32376][gc,age ] GC(12) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:39.289+0000][32376][gc,age ] GC(12) - age 1: 14040584 bytes, 14040584 total +[2018-06-13T07:44:39.289+0000][32376][gc,heap ] GC(12) ParNew: 314559K->22336K(314560K) +[2018-06-13T07:44:39.289+0000][32376][gc,heap ] GC(12) CMS: 185523K->213995K(699072K) +[2018-06-13T07:44:39.289+0000][32376][gc,metaspace ] GC(12) Metaspace: 80003K->80003K(1124352K) +[2018-06-13T07:44:39.289+0000][32376][gc ] GC(12) Pause Young (Allocation Failure) 488M->230M(989M) 19,422ms +[2018-06-13T07:44:39.289+0000][32376][gc,cpu ] GC(12) User=0,09s Sys=0,00s Real=0,02s +[2018-06-13T07:44:39.289+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0197293 seconds, Stopping threads took: 0,0000768 seconds +[2018-06-13T07:44:39.316+0000][32376][safepoint ] Application time: 0,0276452 seconds +[2018-06-13T07:44:39.319+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020111 seconds, Stopping threads took: 0,0018512 seconds +[2018-06-13T07:44:39.331+0000][32376][safepoint ] Application time: 0,0122439 seconds +[2018-06-13T07:44:39.332+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012773 seconds, Stopping threads took: 0,0011316 seconds +[2018-06-13T07:44:39.382+0000][32376][safepoint ] Application time: 0,0502491 seconds +[2018-06-13T07:44:39.387+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0045265 seconds, Stopping threads took: 0,0042899 seconds +[2018-06-13T07:44:39.387+0000][32376][safepoint ] Application time: 0,0003634 seconds +[2018-06-13T07:44:39.388+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003883 seconds, Stopping threads took: 0,0001301 seconds +[2018-06-13T07:44:39.388+0000][32376][safepoint ] Application time: 0,0001342 seconds +[2018-06-13T07:44:39.388+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002032 seconds, Stopping threads took: 0,0000611 seconds +[2018-06-13T07:44:39.388+0000][32376][safepoint ] Application time: 0,0000679 seconds +[2018-06-13T07:44:39.388+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002092 seconds, Stopping threads took: 0,0000579 seconds +[2018-06-13T07:44:39.389+0000][32376][safepoint ] Application time: 0,0000366 seconds +[2018-06-13T07:44:39.389+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002568 seconds, Stopping threads took: 0,0001212 seconds +[2018-06-13T07:44:39.389+0000][32376][safepoint ] Application time: 0,0000230 seconds +[2018-06-13T07:44:39.389+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001470 seconds, Stopping threads took: 0,0000340 seconds +[2018-06-13T07:44:39.389+0000][32376][safepoint ] Application time: 0,0000630 seconds +[2018-06-13T07:44:39.389+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001997 seconds, Stopping threads took: 0,0000630 seconds +[2018-06-13T07:44:39.389+0000][32376][safepoint ] Application time: 0,0000399 seconds +[2018-06-13T07:44:39.390+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001922 seconds, Stopping threads took: 0,0000664 seconds +[2018-06-13T07:44:39.423+0000][32376][safepoint ] Application time: 0,0339482 seconds +[2018-06-13T07:44:39.424+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005875 seconds, Stopping threads took: 0,0004054 seconds +[2018-06-13T07:44:39.447+0000][32376][safepoint ] Application time: 0,0228588 seconds +[2018-06-13T07:44:39.448+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011972 seconds, Stopping threads took: 0,0010313 seconds +[2018-06-13T07:44:39.504+0000][32376][safepoint ] Application time: 0,0557745 seconds +[2018-06-13T07:44:39.505+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008560 seconds, Stopping threads took: 0,0006985 seconds +[2018-06-13T07:44:39.520+0000][32376][safepoint ] Application time: 0,0148770 seconds +[2018-06-13T07:44:39.520+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003731 seconds, Stopping threads took: 0,0002183 seconds +[2018-06-13T07:44:39.520+0000][32376][safepoint ] Application time: 0,0000373 seconds +[2018-06-13T07:44:39.520+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001730 seconds, Stopping threads took: 0,0000497 seconds +[2018-06-13T07:44:39.521+0000][32376][safepoint ] Application time: 0,0002156 seconds +[2018-06-13T07:44:39.521+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001801 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-13T07:44:39.537+0000][32376][safepoint ] Application time: 0,0160052 seconds +[2018-06-13T07:44:39.539+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0025036 seconds, Stopping threads took: 0,0023526 seconds +[2018-06-13T07:44:39.567+0000][32376][safepoint ] Application time: 0,0270942 seconds +[2018-06-13T07:44:39.568+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014785 seconds, Stopping threads took: 0,0012349 seconds +[2018-06-13T07:44:39.627+0000][32376][safepoint ] Application time: 0,0592698 seconds +[2018-06-13T07:44:39.630+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0028579 seconds, Stopping threads took: 0,0026811 seconds +[2018-06-13T07:44:39.633+0000][32376][safepoint ] Application time: 0,0024929 seconds +[2018-06-13T07:44:39.633+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001449 seconds, Stopping threads took: 0,0000521 seconds +[2018-06-13T07:44:39.645+0000][32376][safepoint ] Application time: 0,0120630 seconds +[2018-06-13T07:44:39.646+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004879 seconds, Stopping threads took: 0,0003411 seconds +[2018-06-13T07:44:39.667+0000][32376][safepoint ] Application time: 0,0215368 seconds +[2018-06-13T07:44:39.676+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0087800 seconds, Stopping threads took: 0,0085838 seconds +[2018-06-13T07:44:39.676+0000][32376][safepoint ] Application time: 0,0002541 seconds +[2018-06-13T07:44:39.677+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002174 seconds, Stopping threads took: 0,0001318 seconds +[2018-06-13T07:44:39.705+0000][32376][safepoint ] Application time: 0,0280082 seconds +[2018-06-13T07:44:39.705+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002103 seconds, Stopping threads took: 0,0001126 seconds +[2018-06-13T07:44:39.705+0000][32376][safepoint ] Application time: 0,0000615 seconds +[2018-06-13T07:44:39.705+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001378 seconds, Stopping threads took: 0,0000554 seconds +[2018-06-13T07:44:39.705+0000][32376][safepoint ] Application time: 0,0000378 seconds +[2018-06-13T07:44:39.705+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001423 seconds, Stopping threads took: 0,0000379 seconds +[2018-06-13T07:44:39.762+0000][32376][safepoint ] Application time: 0,0562617 seconds +[2018-06-13T07:44:39.762+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004225 seconds, Stopping threads took: 0,0002089 seconds +[2018-06-13T07:44:39.791+0000][32376][safepoint ] Application time: 0,0293254 seconds +[2018-06-13T07:44:39.792+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002807 seconds, Stopping threads took: 0,0001011 seconds +[2018-06-13T07:44:39.795+0000][32376][safepoint ] Application time: 0,0032306 seconds +[2018-06-13T07:44:39.799+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0037856 seconds, Stopping threads took: 0,0036131 seconds +[2018-06-13T07:44:39.821+0000][32376][safepoint ] Application time: 0,0217263 seconds +[2018-06-13T07:44:39.828+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0070739 seconds, Stopping threads took: 0,0069309 seconds +[2018-06-13T07:44:39.832+0000][32376][safepoint ] Application time: 0,0041034 seconds +[2018-06-13T07:44:39.832+0000][32376][gc,start ] GC(13) Pause Young (Allocation Failure) +[2018-06-13T07:44:39.832+0000][32376][gc,task ] GC(13) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:39.851+0000][32376][gc,age ] GC(13) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:44:39.851+0000][32376][gc,age ] GC(13) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:44:39.851+0000][32376][gc,age ] GC(13) - age 1: 21658256 bytes, 21658256 total +[2018-06-13T07:44:39.851+0000][32376][gc,age ] GC(13) - age 2: 11985608 bytes, 33643864 total +[2018-06-13T07:44:39.851+0000][32376][gc,heap ] GC(13) ParNew: 301952K->34944K(314560K) +[2018-06-13T07:44:39.851+0000][32376][gc,heap ] GC(13) CMS: 213995K->216088K(699072K) +[2018-06-13T07:44:39.851+0000][32376][gc,metaspace ] GC(13) Metaspace: 80604K->80604K(1126400K) +[2018-06-13T07:44:39.851+0000][32376][gc ] GC(13) Pause Young (Allocation Failure) 503M->245M(989M) 19,152ms +[2018-06-13T07:44:39.851+0000][32376][gc,cpu ] GC(13) User=0,12s Sys=0,00s Real=0,02s +[2018-06-13T07:44:39.851+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0195365 seconds, Stopping threads took: 0,0001831 seconds +[2018-06-13T07:44:39.861+0000][32376][safepoint ] Application time: 0,0100160 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002104 seconds, Stopping threads took: 0,0000881 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Application time: 0,0000989 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001152 seconds, Stopping threads took: 0,0000438 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Application time: 0,0000709 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001432 seconds, Stopping threads took: 0,0000467 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Application time: 0,0000624 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001672 seconds, Stopping threads took: 0,0000888 seconds +[2018-06-13T07:44:39.862+0000][32376][safepoint ] Application time: 0,0000233 seconds +[2018-06-13T07:44:39.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001161 seconds, Stopping threads took: 0,0000319 seconds +[2018-06-13T07:44:39.863+0000][32376][safepoint ] Application time: 0,0000213 seconds +[2018-06-13T07:44:39.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001103 seconds, Stopping threads took: 0,0000364 seconds +[2018-06-13T07:44:39.863+0000][32376][safepoint ] Application time: 0,0000717 seconds +[2018-06-13T07:44:39.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001861 seconds, Stopping threads took: 0,0000905 seconds +[2018-06-13T07:44:39.863+0000][32376][safepoint ] Application time: 0,0000312 seconds +[2018-06-13T07:44:39.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001354 seconds, Stopping threads took: 0,0000446 seconds +[2018-06-13T07:44:39.994+0000][32376][safepoint ] Application time: 0,1306132 seconds +[2018-06-13T07:44:39.995+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010107 seconds, Stopping threads took: 0,0007814 seconds +[2018-06-13T07:44:39.997+0000][32376][safepoint ] Application time: 0,0023413 seconds +[2018-06-13T07:44:39.998+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008775 seconds, Stopping threads took: 0,0007088 seconds +[2018-06-13T07:44:40.172+0000][32376][safepoint ] Application time: 0,1739913 seconds +[2018-06-13T07:44:40.173+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005183 seconds, Stopping threads took: 0,0003035 seconds +[2018-06-13T07:44:40.181+0000][32376][safepoint ] Application time: 0,0078198 seconds +[2018-06-13T07:44:40.181+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002408 seconds, Stopping threads took: 0,0001263 seconds +[2018-06-13T07:44:40.280+0000][32376][safepoint ] Application time: 0,0995200 seconds +[2018-06-13T07:44:40.281+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005930 seconds, Stopping threads took: 0,0004127 seconds +[2018-06-13T07:44:40.303+0000][32376][safepoint ] Application time: 0,0223056 seconds +[2018-06-13T07:44:40.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0035108 seconds, Stopping threads took: 0,0033033 seconds +[2018-06-13T07:44:40.307+0000][32376][safepoint ] Application time: 0,0002048 seconds +[2018-06-13T07:44:40.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001394 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-13T07:44:40.307+0000][32376][safepoint ] Application time: 0,0000400 seconds +[2018-06-13T07:44:40.308+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001360 seconds, Stopping threads took: 0,0000525 seconds +[2018-06-13T07:44:40.308+0000][32376][safepoint ] Application time: 0,0000769 seconds +[2018-06-13T07:44:40.308+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001263 seconds, Stopping threads took: 0,0000379 seconds +[2018-06-13T07:44:40.308+0000][32376][safepoint ] Application time: 0,0000337 seconds +[2018-06-13T07:44:40.308+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001297 seconds, Stopping threads took: 0,0000594 seconds +[2018-06-13T07:44:40.346+0000][32376][safepoint ] Application time: 0,0381619 seconds +[2018-06-13T07:44:40.350+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0039235 seconds, Stopping threads took: 0,0037576 seconds +[2018-06-13T07:44:40.362+0000][32376][safepoint ] Application time: 0,0119448 seconds +[2018-06-13T07:44:40.362+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002092 seconds, Stopping threads took: 0,0000885 seconds +[2018-06-13T07:44:40.378+0000][32376][safepoint ] Application time: 0,0159631 seconds +[2018-06-13T07:44:40.379+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002664 seconds, Stopping threads took: 0,0001359 seconds +[2018-06-13T07:44:40.379+0000][32376][safepoint ] Application time: 0,0002079 seconds +[2018-06-13T07:44:40.379+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001830 seconds, Stopping threads took: 0,0000631 seconds +[2018-06-13T07:44:40.395+0000][32376][safepoint ] Application time: 0,0156177 seconds +[2018-06-13T07:44:40.395+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001806 seconds, Stopping threads took: 0,0000801 seconds +[2018-06-13T07:44:40.395+0000][32376][safepoint ] Application time: 0,0000424 seconds +[2018-06-13T07:44:40.395+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001345 seconds, Stopping threads took: 0,0000342 seconds +[2018-06-13T07:44:40.411+0000][32376][safepoint ] Application time: 0,0154883 seconds +[2018-06-13T07:44:40.415+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0042373 seconds, Stopping threads took: 0,0040992 seconds +[2018-06-13T07:44:40.415+0000][32376][safepoint ] Application time: 0,0000786 seconds +[2018-06-13T07:44:40.415+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002185 seconds, Stopping threads took: 0,0001268 seconds +[2018-06-13T07:44:40.415+0000][32376][safepoint ] Application time: 0,0000646 seconds +[2018-06-13T07:44:40.415+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001442 seconds, Stopping threads took: 0,0000619 seconds +[2018-06-13T07:44:40.456+0000][32376][safepoint ] Application time: 0,0408628 seconds +[2018-06-13T07:44:40.459+0000][32376][gc,start ] GC(14) Pause Young (Allocation Failure) +[2018-06-13T07:44:40.459+0000][32376][gc,task ] GC(14) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:40.476+0000][32376][gc,age ] GC(14) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:40.476+0000][32376][gc,age ] GC(14) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:40.476+0000][32376][gc,age ] GC(14) - age 1: 3612352 bytes, 3612352 total +[2018-06-13T07:44:40.476+0000][32376][gc,heap ] GC(14) ParNew: 314560K->20801K(314560K) +[2018-06-13T07:44:40.476+0000][32376][gc,heap ] GC(14) CMS: 216088K->248331K(699072K) +[2018-06-13T07:44:40.476+0000][32376][gc,metaspace ] GC(14) Metaspace: 80782K->80782K(1126400K) +[2018-06-13T07:44:40.476+0000][32376][gc ] GC(14) Pause Young (Allocation Failure) 518M->262M(989M) 17,368ms +[2018-06-13T07:44:40.476+0000][32376][gc,cpu ] GC(14) User=0,08s Sys=0,00s Real=0,02s +[2018-06-13T07:44:40.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0198985 seconds, Stopping threads took: 0,0022679 seconds +[2018-06-13T07:44:40.516+0000][32376][safepoint ] Application time: 0,0396128 seconds +[2018-06-13T07:44:40.516+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002553 seconds, Stopping threads took: 0,0001114 seconds +[2018-06-13T07:44:40.540+0000][32376][safepoint ] Application time: 0,0234437 seconds +[2018-06-13T07:44:40.543+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0030901 seconds, Stopping threads took: 0,0029434 seconds +[2018-06-13T07:44:40.551+0000][32376][safepoint ] Application time: 0,0082542 seconds +[2018-06-13T07:44:40.551+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002209 seconds, Stopping threads took: 0,0000808 seconds +[2018-06-13T07:44:40.551+0000][32376][safepoint ] Application time: 0,0000732 seconds +[2018-06-13T07:44:40.552+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001752 seconds, Stopping threads took: 0,0000439 seconds +[2018-06-13T07:44:40.552+0000][32376][safepoint ] Application time: 0,0000925 seconds +[2018-06-13T07:44:40.552+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001447 seconds, Stopping threads took: 0,0000485 seconds +[2018-06-13T07:44:40.552+0000][32376][safepoint ] Application time: 0,0000448 seconds +[2018-06-13T07:44:40.552+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001376 seconds, Stopping threads took: 0,0000690 seconds +[2018-06-13T07:44:40.552+0000][32376][safepoint ] Application time: 0,0000320 seconds +[2018-06-13T07:44:40.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007342 seconds, Stopping threads took: 0,0006141 seconds +[2018-06-13T07:44:40.553+0000][32376][safepoint ] Application time: 0,0000494 seconds +[2018-06-13T07:44:40.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001290 seconds, Stopping threads took: 0,0000322 seconds +[2018-06-13T07:44:40.553+0000][32376][safepoint ] Application time: 0,0000342 seconds +[2018-06-13T07:44:40.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001307 seconds, Stopping threads took: 0,0000450 seconds +[2018-06-13T07:44:40.553+0000][32376][safepoint ] Application time: 0,0000299 seconds +[2018-06-13T07:44:40.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001488 seconds, Stopping threads took: 0,0000522 seconds +[2018-06-13T07:44:40.554+0000][32376][safepoint ] Application time: 0,0000521 seconds +[2018-06-13T07:44:40.554+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001386 seconds, Stopping threads took: 0,0000455 seconds +[2018-06-13T07:44:40.554+0000][32376][safepoint ] Application time: 0,0000272 seconds +[2018-06-13T07:44:40.554+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001156 seconds, Stopping threads took: 0,0000250 seconds +[2018-06-13T07:44:40.554+0000][32376][safepoint ] Application time: 0,0000419 seconds +[2018-06-13T07:44:40.554+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001482 seconds, Stopping threads took: 0,0000559 seconds +[2018-06-13T07:44:40.554+0000][32376][safepoint ] Application time: 0,0000415 seconds +[2018-06-13T07:44:40.555+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007615 seconds, Stopping threads took: 0,0000312 seconds +[2018-06-13T07:44:40.555+0000][32376][safepoint ] Application time: 0,0000639 seconds +[2018-06-13T07:44:40.555+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001421 seconds, Stopping threads took: 0,0000598 seconds +[2018-06-13T07:44:40.555+0000][32376][safepoint ] Application time: 0,0000417 seconds +[2018-06-13T07:44:40.555+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000937 seconds, Stopping threads took: 0,0000321 seconds +[2018-06-13T07:44:40.619+0000][32376][safepoint ] Application time: 0,0638737 seconds +[2018-06-13T07:44:40.620+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003068 seconds, Stopping threads took: 0,0000939 seconds +[2018-06-13T07:44:40.628+0000][32376][safepoint ] Application time: 0,0087575 seconds +[2018-06-13T07:44:40.629+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008903 seconds, Stopping threads took: 0,0001295 seconds +[2018-06-13T07:44:40.641+0000][32376][safepoint ] Application time: 0,0119938 seconds +[2018-06-13T07:44:40.642+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007491 seconds, Stopping threads took: 0,0005706 seconds +[2018-06-13T07:44:40.647+0000][32376][safepoint ] Application time: 0,0047772 seconds +[2018-06-13T07:44:40.649+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0016361 seconds, Stopping threads took: 0,0007602 seconds +[2018-06-13T07:44:40.649+0000][32376][safepoint ] Application time: 0,0001973 seconds +[2018-06-13T07:44:40.650+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015559 seconds, Stopping threads took: 0,0013855 seconds +[2018-06-13T07:44:40.650+0000][32376][safepoint ] Application time: 0,0000875 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001763 seconds, Stopping threads took: 0,0000385 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Application time: 0,0000482 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001368 seconds, Stopping threads took: 0,0000341 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Application time: 0,0000289 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001007 seconds, Stopping threads took: 0,0000160 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Application time: 0,0000506 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001143 seconds, Stopping threads took: 0,0000173 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Application time: 0,0000339 seconds +[2018-06-13T07:44:40.651+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001276 seconds, Stopping threads took: 0,0000457 seconds +[2018-06-13T07:44:40.707+0000][32376][safepoint ] Application time: 0,0553634 seconds +[2018-06-13T07:44:40.707+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001850 seconds, Stopping threads took: 0,0000751 seconds +[2018-06-13T07:44:40.737+0000][32376][safepoint ] Application time: 0,0299173 seconds +[2018-06-13T07:44:40.739+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015161 seconds, Stopping threads took: 0,0013457 seconds +[2018-06-13T07:44:40.739+0000][32376][safepoint ] Application time: 0,0001065 seconds +[2018-06-13T07:44:40.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0030802 seconds, Stopping threads took: 0,0029734 seconds +[2018-06-13T07:44:40.742+0000][32376][safepoint ] Application time: 0,0000968 seconds +[2018-06-13T07:44:40.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001479 seconds, Stopping threads took: 0,0000548 seconds +[2018-06-13T07:44:40.742+0000][32376][safepoint ] Application time: 0,0000424 seconds +[2018-06-13T07:44:40.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001430 seconds, Stopping threads took: 0,0000264 seconds +[2018-06-13T07:44:40.742+0000][32376][safepoint ] Application time: 0,0000567 seconds +[2018-06-13T07:44:40.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001319 seconds, Stopping threads took: 0,0000237 seconds +[2018-06-13T07:44:40.743+0000][32376][safepoint ] Application time: 0,0000670 seconds +[2018-06-13T07:44:40.743+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001257 seconds, Stopping threads took: 0,0000297 seconds +[2018-06-13T07:44:40.788+0000][32376][safepoint ] Application time: 0,0452716 seconds +[2018-06-13T07:44:40.788+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002815 seconds, Stopping threads took: 0,0001210 seconds +[2018-06-13T07:44:40.812+0000][32376][safepoint ] Application time: 0,0236416 seconds +[2018-06-13T07:44:40.815+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0026878 seconds, Stopping threads took: 0,0025521 seconds +[2018-06-13T07:44:40.818+0000][32376][safepoint ] Application time: 0,0030274 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0067616 seconds, Stopping threads took: 0,0066204 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Application time: 0,0001193 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001937 seconds, Stopping threads took: 0,0000741 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Application time: 0,0000535 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001676 seconds, Stopping threads took: 0,0000848 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Application time: 0,0000559 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001052 seconds, Stopping threads took: 0,0000348 seconds +[2018-06-13T07:44:40.825+0000][32376][safepoint ] Application time: 0,0000307 seconds +[2018-06-13T07:44:40.826+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001031 seconds, Stopping threads took: 0,0000280 seconds +[2018-06-13T07:44:40.849+0000][32376][safepoint ] Application time: 0,0232520 seconds +[2018-06-13T07:44:40.850+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008598 seconds, Stopping threads took: 0,0000687 seconds +[2018-06-13T07:44:40.854+0000][32376][safepoint ] Application time: 0,0046888 seconds +[2018-06-13T07:44:40.855+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002148 seconds, Stopping threads took: 0,0001256 seconds +[2018-06-13T07:44:40.855+0000][32376][safepoint ] Application time: 0,0000623 seconds +[2018-06-13T07:44:40.855+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001223 seconds, Stopping threads took: 0,0000473 seconds +[2018-06-13T07:44:40.855+0000][32376][safepoint ] Application time: 0,0000665 seconds +[2018-06-13T07:44:40.856+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006461 seconds, Stopping threads took: 0,0000538 seconds +[2018-06-13T07:44:40.856+0000][32376][safepoint ] Application time: 0,0000450 seconds +[2018-06-13T07:44:40.856+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006297 seconds, Stopping threads took: 0,0000676 seconds +[2018-06-13T07:44:40.856+0000][32376][safepoint ] Application time: 0,0000604 seconds +[2018-06-13T07:44:40.857+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006147 seconds, Stopping threads took: 0,0000575 seconds +[2018-06-13T07:44:40.857+0000][32376][safepoint ] Application time: 0,0000364 seconds +[2018-06-13T07:44:40.858+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006093 seconds, Stopping threads took: 0,0000190 seconds +[2018-06-13T07:44:40.860+0000][32376][safepoint ] Application time: 0,0022087 seconds +[2018-06-13T07:44:40.860+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002624 seconds, Stopping threads took: 0,0000897 seconds +[2018-06-13T07:44:40.952+0000][32376][safepoint ] Application time: 0,0922383 seconds +[2018-06-13T07:44:40.953+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002193 seconds, Stopping threads took: 0,0000682 seconds +[2018-06-13T07:44:40.961+0000][32376][safepoint ] Application time: 0,0080418 seconds +[2018-06-13T07:44:40.961+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002118 seconds, Stopping threads took: 0,0000753 seconds +[2018-06-13T07:44:40.969+0000][32376][safepoint ] Application time: 0,0081864 seconds +[2018-06-13T07:44:40.971+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0018939 seconds, Stopping threads took: 0,0016385 seconds +[2018-06-13T07:44:40.971+0000][32376][safepoint ] Application time: 0,0001693 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002399 seconds, Stopping threads took: 0,0000335 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Application time: 0,0000540 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002292 seconds, Stopping threads took: 0,0000202 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Application time: 0,0000308 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001650 seconds, Stopping threads took: 0,0000237 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Application time: 0,0000230 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001704 seconds, Stopping threads took: 0,0000156 seconds +[2018-06-13T07:44:40.972+0000][32376][safepoint ] Application time: 0,0000567 seconds +[2018-06-13T07:44:40.973+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002125 seconds, Stopping threads took: 0,0000308 seconds +[2018-06-13T07:44:40.973+0000][32376][safepoint ] Application time: 0,0000637 seconds +[2018-06-13T07:44:40.973+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002749 seconds, Stopping threads took: 0,0000390 seconds +[2018-06-13T07:44:41.042+0000][32376][safepoint ] Application time: 0,0685983 seconds +[2018-06-13T07:44:41.043+0000][32376][gc,start ] GC(15) Pause Young (Allocation Failure) +[2018-06-13T07:44:41.044+0000][32376][gc,task ] GC(15) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:41.048+0000][32376][gc,age ] GC(15) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:41.048+0000][32376][gc,age ] GC(15) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:41.048+0000][32376][gc,age ] GC(15) - age 1: 4656984 bytes, 4656984 total +[2018-06-13T07:44:41.048+0000][32376][gc,age ] GC(15) - age 2: 1759424 bytes, 6416408 total +[2018-06-13T07:44:41.048+0000][32376][gc,heap ] GC(15) ParNew: 300417K->8586K(314560K) +[2018-06-13T07:44:41.048+0000][32376][gc,heap ] GC(15) CMS: 248331K->248331K(699072K) +[2018-06-13T07:44:41.048+0000][32376][gc,metaspace ] GC(15) Metaspace: 80844K->80844K(1126400K) +[2018-06-13T07:44:41.048+0000][32376][gc ] GC(15) Pause Young (Allocation Failure) 535M->250M(989M) 4,430ms +[2018-06-13T07:44:41.048+0000][32376][gc,cpu ] GC(15) User=0,03s Sys=0,00s Real=0,01s +[2018-06-13T07:44:41.048+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0062690 seconds, Stopping threads took: 0,0015459 seconds +[2018-06-13T07:44:41.061+0000][32376][safepoint ] Application time: 0,0126483 seconds +[2018-06-13T07:44:41.061+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002377 seconds, Stopping threads took: 0,0001325 seconds +[2018-06-13T07:44:41.083+0000][32376][safepoint ] Application time: 0,0223343 seconds +[2018-06-13T07:44:41.084+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002223 seconds, Stopping threads took: 0,0000844 seconds +[2018-06-13T07:44:41.168+0000][32376][safepoint ] Application time: 0,0845774 seconds +[2018-06-13T07:44:41.168+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002720 seconds, Stopping threads took: 0,0000816 seconds +[2018-06-13T07:44:41.177+0000][32376][safepoint ] Application time: 0,0083624 seconds +[2018-06-13T07:44:41.178+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007977 seconds, Stopping threads took: 0,0006461 seconds +[2018-06-13T07:44:41.193+0000][32376][safepoint ] Application time: 0,0155857 seconds +[2018-06-13T07:44:41.194+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002362 seconds, Stopping threads took: 0,0001003 seconds +[2018-06-13T07:44:41.199+0000][32376][safepoint ] Application time: 0,0053776 seconds +[2018-06-13T07:44:41.199+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002534 seconds, Stopping threads took: 0,0001106 seconds +[2018-06-13T07:44:41.199+0000][32376][safepoint ] Application time: 0,0000508 seconds +[2018-06-13T07:44:41.199+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001212 seconds, Stopping threads took: 0,0000253 seconds +[2018-06-13T07:44:41.199+0000][32376][safepoint ] Application time: 0,0000250 seconds +[2018-06-13T07:44:41.200+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001294 seconds, Stopping threads took: 0,0000391 seconds +[2018-06-13T07:44:41.200+0000][32376][safepoint ] Application time: 0,0000232 seconds +[2018-06-13T07:44:41.200+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001027 seconds, Stopping threads took: 0,0000160 seconds +[2018-06-13T07:44:41.200+0000][32376][safepoint ] Application time: 0,0000385 seconds +[2018-06-13T07:44:41.200+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001212 seconds, Stopping threads took: 0,0000163 seconds +[2018-06-13T07:44:41.200+0000][32376][safepoint ] Application time: 0,0000554 seconds +[2018-06-13T07:44:41.203+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0027157 seconds, Stopping threads took: 0,0025943 seconds +[2018-06-13T07:44:41.216+0000][32376][safepoint ] Application time: 0,0134021 seconds +[2018-06-13T07:44:41.219+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0025178 seconds, Stopping threads took: 0,0023075 seconds +[2018-06-13T07:44:41.219+0000][32376][safepoint ] Application time: 0,0003279 seconds +[2018-06-13T07:44:41.219+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002033 seconds, Stopping threads took: 0,0000785 seconds +[2018-06-13T07:44:41.223+0000][32376][safepoint ] Application time: 0,0039401 seconds +[2018-06-13T07:44:41.227+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0034180 seconds, Stopping threads took: 0,0032619 seconds +[2018-06-13T07:44:41.228+0000][32376][safepoint ] Application time: 0,0008526 seconds +[2018-06-13T07:44:41.228+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002616 seconds, Stopping threads took: 0,0000719 seconds +[2018-06-13T07:44:41.229+0000][32376][safepoint ] Application time: 0,0011377 seconds +[2018-06-13T07:44:41.229+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001877 seconds, Stopping threads took: 0,0000675 seconds +[2018-06-13T07:44:41.229+0000][32376][safepoint ] Application time: 0,0000365 seconds +[2018-06-13T07:44:41.230+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001381 seconds, Stopping threads took: 0,0000325 seconds +[2018-06-13T07:44:41.231+0000][32376][safepoint ] Application time: 0,0010080 seconds +[2018-06-13T07:44:41.231+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001963 seconds, Stopping threads took: 0,0001006 seconds +[2018-06-13T07:44:41.231+0000][32376][safepoint ] Application time: 0,0001575 seconds +[2018-06-13T07:44:41.231+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001619 seconds, Stopping threads took: 0,0000757 seconds +[2018-06-13T07:44:41.233+0000][32376][safepoint ] Application time: 0,0015402 seconds +[2018-06-13T07:44:41.233+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001873 seconds, Stopping threads took: 0,0000562 seconds +[2018-06-13T07:44:41.233+0000][32376][safepoint ] Application time: 0,0000366 seconds +[2018-06-13T07:44:41.233+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001628 seconds, Stopping threads took: 0,0000487 seconds +[2018-06-13T07:44:41.234+0000][32376][safepoint ] Application time: 0,0012616 seconds +[2018-06-13T07:44:41.235+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002272 seconds, Stopping threads took: 0,0000771 seconds +[2018-06-13T07:44:41.239+0000][32376][safepoint ] Application time: 0,0040646 seconds +[2018-06-13T07:44:41.240+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011263 seconds, Stopping threads took: 0,0009861 seconds +[2018-06-13T07:44:41.242+0000][32376][safepoint ] Application time: 0,0016025 seconds +[2018-06-13T07:44:41.242+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002077 seconds, Stopping threads took: 0,0000801 seconds +[2018-06-13T07:44:41.242+0000][32376][safepoint ] Application time: 0,0000380 seconds +[2018-06-13T07:44:41.242+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001472 seconds, Stopping threads took: 0,0000355 seconds +[2018-06-13T07:44:41.243+0000][32376][safepoint ] Application time: 0,0012802 seconds +[2018-06-13T07:44:41.244+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002396 seconds, Stopping threads took: 0,0000864 seconds +[2018-06-13T07:44:41.246+0000][32376][safepoint ] Application time: 0,0026239 seconds +[2018-06-13T07:44:41.246+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002632 seconds, Stopping threads took: 0,0001002 seconds +[2018-06-13T07:44:41.256+0000][32376][safepoint ] Application time: 0,0094348 seconds +[2018-06-13T07:44:41.259+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0028372 seconds, Stopping threads took: 0,0027096 seconds +[2018-06-13T07:44:41.266+0000][32376][safepoint ] Application time: 0,0070261 seconds +[2018-06-13T07:44:41.267+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007211 seconds, Stopping threads took: 0,0005393 seconds +[2018-06-13T07:44:41.267+0000][32376][safepoint ] Application time: 0,0001537 seconds +[2018-06-13T07:44:41.267+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001992 seconds, Stopping threads took: 0,0000391 seconds +[2018-06-13T07:44:41.271+0000][32376][safepoint ] Application time: 0,0042617 seconds +[2018-06-13T07:44:41.272+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002115 seconds, Stopping threads took: 0,0000697 seconds +[2018-06-13T07:44:41.272+0000][32376][safepoint ] Application time: 0,0000413 seconds +[2018-06-13T07:44:41.272+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001299 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-13T07:44:41.275+0000][32376][safepoint ] Application time: 0,0032327 seconds +[2018-06-13T07:44:41.275+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001878 seconds, Stopping threads took: 0,0000455 seconds +[2018-06-13T07:44:41.275+0000][32376][safepoint ] Application time: 0,0001243 seconds +[2018-06-13T07:44:41.276+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001734 seconds, Stopping threads took: 0,0000702 seconds +[2018-06-13T07:44:41.288+0000][32376][safepoint ] Application time: 0,0120779 seconds +[2018-06-13T07:44:41.292+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0039775 seconds, Stopping threads took: 0,0029872 seconds +[2018-06-13T07:44:41.344+0000][32376][safepoint ] Application time: 0,0519565 seconds +[2018-06-13T07:44:41.344+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006835 seconds, Stopping threads took: 0,0003990 seconds +[2018-06-13T07:44:41.345+0000][32376][safepoint ] Application time: 0,0007165 seconds +[2018-06-13T07:44:41.346+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008609 seconds, Stopping threads took: 0,0007139 seconds +[2018-06-13T07:44:41.346+0000][32376][safepoint ] Application time: 0,0002375 seconds +[2018-06-13T07:44:41.347+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002217 seconds, Stopping threads took: 0,0001155 seconds +[2018-06-13T07:44:41.349+0000][32376][safepoint ] Application time: 0,0027013 seconds +[2018-06-13T07:44:41.350+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011183 seconds, Stopping threads took: 0,0000653 seconds +[2018-06-13T07:44:41.378+0000][32376][safepoint ] Application time: 0,0275961 seconds +[2018-06-13T07:44:41.379+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007660 seconds, Stopping threads took: 0,0005791 seconds +[2018-06-13T07:44:41.401+0000][32376][safepoint ] Application time: 0,0222795 seconds +[2018-06-13T07:44:41.403+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0017597 seconds, Stopping threads took: 0,0015177 seconds +[2018-06-13T07:44:41.422+0000][32376][safepoint ] Application time: 0,0189735 seconds +[2018-06-13T07:44:41.426+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0037346 seconds, Stopping threads took: 0,0034832 seconds +[2018-06-13T07:44:41.431+0000][32376][safepoint ] Application time: 0,0049801 seconds +[2018-06-13T07:44:41.434+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0036122 seconds, Stopping threads took: 0,0034098 seconds +[2018-06-13T07:44:41.444+0000][32376][safepoint ] Application time: 0,0095807 seconds +[2018-06-13T07:44:41.446+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015038 seconds, Stopping threads took: 0,0013439 seconds +[2018-06-13T07:44:41.467+0000][32376][safepoint ] Application time: 0,0210521 seconds +[2018-06-13T07:44:41.475+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0080214 seconds, Stopping threads took: 0,0077042 seconds +[2018-06-13T07:44:41.475+0000][32376][safepoint ] Application time: 0,0002152 seconds +[2018-06-13T07:44:41.475+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004134 seconds, Stopping threads took: 0,0002636 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Application time: 0,0000523 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002152 seconds, Stopping threads took: 0,0000581 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Application time: 0,0000372 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001199 seconds, Stopping threads took: 0,0000302 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Application time: 0,0000267 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000778 seconds, Stopping threads took: 0,0000143 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Application time: 0,0000207 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001773 seconds, Stopping threads took: 0,0000619 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Application time: 0,0000207 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001205 seconds, Stopping threads took: 0,0000390 seconds +[2018-06-13T07:44:41.476+0000][32376][safepoint ] Application time: 0,0000273 seconds +[2018-06-13T07:44:41.477+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001053 seconds, Stopping threads took: 0,0000349 seconds +[2018-06-13T07:44:41.477+0000][32376][safepoint ] Application time: 0,0000249 seconds +[2018-06-13T07:44:41.477+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001074 seconds, Stopping threads took: 0,0000441 seconds +[2018-06-13T07:44:41.477+0000][32376][safepoint ] Application time: 0,0000493 seconds +[2018-06-13T07:44:41.477+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002532 seconds, Stopping threads took: 0,0001456 seconds +[2018-06-13T07:44:41.477+0000][32376][safepoint ] Application time: 0,0000391 seconds +[2018-06-13T07:44:41.477+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000898 seconds, Stopping threads took: 0,0000173 seconds +[2018-06-13T07:44:41.480+0000][32376][safepoint ] Application time: 0,0032097 seconds +[2018-06-13T07:44:41.481+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003100 seconds, Stopping threads took: 0,0001802 seconds +[2018-06-13T07:44:41.485+0000][32376][safepoint ] Application time: 0,0044951 seconds +[2018-06-13T07:44:41.486+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002570 seconds, Stopping threads took: 0,0000969 seconds +[2018-06-13T07:44:41.493+0000][32376][safepoint ] Application time: 0,0069168 seconds +[2018-06-13T07:44:41.495+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0021242 seconds, Stopping threads took: 0,0020176 seconds +[2018-06-13T07:44:41.508+0000][32376][safepoint ] Application time: 0,0135147 seconds +[2018-06-13T07:44:41.511+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0026782 seconds, Stopping threads took: 0,0024869 seconds +[2018-06-13T07:44:41.539+0000][32376][safepoint ] Application time: 0,0275816 seconds +[2018-06-13T07:44:41.543+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0042712 seconds, Stopping threads took: 0,0040535 seconds +[2018-06-13T07:44:41.547+0000][32376][safepoint ] Application time: 0,0043154 seconds +[2018-06-13T07:44:41.548+0000][32376][gc,start ] GC(16) Pause Young (Allocation Failure) +[2018-06-13T07:44:41.548+0000][32376][gc,task ] GC(16) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:41.555+0000][32376][gc,age ] GC(16) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:41.555+0000][32376][gc,age ] GC(16) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:41.555+0000][32376][gc,age ] GC(16) - age 1: 9031792 bytes, 9031792 total +[2018-06-13T07:44:41.555+0000][32376][gc,age ] GC(16) - age 2: 1993728 bytes, 11025520 total +[2018-06-13T07:44:41.555+0000][32376][gc,age ] GC(16) - age 3: 1709800 bytes, 12735320 total +[2018-06-13T07:44:41.555+0000][32376][gc,heap ] GC(16) ParNew: 288202K->16016K(314560K) +[2018-06-13T07:44:41.555+0000][32376][gc,heap ] GC(16) CMS: 248331K->248331K(699072K) +[2018-06-13T07:44:41.555+0000][32376][gc,metaspace ] GC(16) Metaspace: 81593K->81593K(1126400K) +[2018-06-13T07:44:41.555+0000][32376][gc ] GC(16) Pause Young (Allocation Failure) 523M->258M(989M) 7,704ms +[2018-06-13T07:44:41.555+0000][32376][gc,cpu ] GC(16) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:44:41.555+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0080879 seconds, Stopping threads took: 0,0001139 seconds +[2018-06-13T07:44:41.558+0000][32376][safepoint ] Application time: 0,0025859 seconds +[2018-06-13T07:44:41.558+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002002 seconds, Stopping threads took: 0,0000737 seconds +[2018-06-13T07:44:41.582+0000][32376][safepoint ] Application time: 0,0239205 seconds +[2018-06-13T07:44:41.585+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0023807 seconds, Stopping threads took: 0,0008021 seconds +[2018-06-13T07:44:41.595+0000][32376][safepoint ] Application time: 0,0105654 seconds +[2018-06-13T07:44:41.596+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002802 seconds, Stopping threads took: 0,0001015 seconds +[2018-06-13T07:44:41.616+0000][32376][safepoint ] Application time: 0,0207232 seconds +[2018-06-13T07:44:41.617+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002348 seconds, Stopping threads took: 0,0000914 seconds +[2018-06-13T07:44:41.623+0000][32376][safepoint ] Application time: 0,0061724 seconds +[2018-06-13T07:44:41.623+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002162 seconds, Stopping threads took: 0,0000903 seconds +[2018-06-13T07:44:41.625+0000][32376][safepoint ] Application time: 0,0023226 seconds +[2018-06-13T07:44:41.626+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001808 seconds, Stopping threads took: 0,0000597 seconds +[2018-06-13T07:44:41.662+0000][32376][safepoint ] Application time: 0,0362538 seconds +[2018-06-13T07:44:41.662+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002486 seconds, Stopping threads took: 0,0000959 seconds +[2018-06-13T07:44:41.669+0000][32376][safepoint ] Application time: 0,0073346 seconds +[2018-06-13T07:44:41.671+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010682 seconds, Stopping threads took: 0,0008724 seconds +[2018-06-13T07:44:41.671+0000][32376][safepoint ] Application time: 0,0002650 seconds +[2018-06-13T07:44:41.671+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003977 seconds, Stopping threads took: 0,0002100 seconds +[2018-06-13T07:44:41.683+0000][32376][safepoint ] Application time: 0,0115305 seconds +[2018-06-13T07:44:41.683+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002783 seconds, Stopping threads took: 0,0001549 seconds +[2018-06-13T07:44:41.683+0000][32376][safepoint ] Application time: 0,0001349 seconds +[2018-06-13T07:44:41.683+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001330 seconds, Stopping threads took: 0,0000370 seconds +[2018-06-13T07:44:41.684+0000][32376][safepoint ] Application time: 0,0001771 seconds +[2018-06-13T07:44:41.684+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001840 seconds, Stopping threads took: 0,0000770 seconds +[2018-06-13T07:44:41.688+0000][32376][safepoint ] Application time: 0,0043095 seconds +[2018-06-13T07:44:41.697+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0089403 seconds, Stopping threads took: 0,0087649 seconds +[2018-06-13T07:44:41.697+0000][32376][safepoint ] Application time: 0,0000614 seconds +[2018-06-13T07:44:41.697+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001696 seconds, Stopping threads took: 0,0000679 seconds +[2018-06-13T07:44:41.697+0000][32376][safepoint ] Application time: 0,0000251 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001083 seconds, Stopping threads took: 0,0000315 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Application time: 0,0000301 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001015 seconds, Stopping threads took: 0,0000355 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Application time: 0,0000180 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000854 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Application time: 0,0000448 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001516 seconds, Stopping threads took: 0,0000364 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Application time: 0,0001988 seconds +[2018-06-13T07:44:41.698+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001492 seconds, Stopping threads took: 0,0000393 seconds +[2018-06-13T07:44:41.699+0000][32376][safepoint ] Application time: 0,0005901 seconds +[2018-06-13T07:44:41.699+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003645 seconds, Stopping threads took: 0,0002049 seconds +[2018-06-13T07:44:41.741+0000][32376][safepoint ] Application time: 0,0416967 seconds +[2018-06-13T07:44:41.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003188 seconds, Stopping threads took: 0,0001447 seconds +[2018-06-13T07:44:41.745+0000][32376][safepoint ] Application time: 0,0039326 seconds +[2018-06-13T07:44:41.751+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0055003 seconds, Stopping threads took: 0,0053076 seconds +[2018-06-13T07:44:41.754+0000][32376][safepoint ] Application time: 0,0031193 seconds +[2018-06-13T07:44:41.754+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001979 seconds, Stopping threads took: 0,0000795 seconds +[2018-06-13T07:44:41.806+0000][32376][safepoint ] Application time: 0,0519633 seconds +[2018-06-13T07:44:41.807+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002419 seconds, Stopping threads took: 0,0000845 seconds +[2018-06-13T07:44:41.809+0000][32376][safepoint ] Application time: 0,0020366 seconds +[2018-06-13T07:44:41.809+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002645 seconds, Stopping threads took: 0,0001167 seconds +[2018-06-13T07:44:41.813+0000][32376][safepoint ] Application time: 0,0039163 seconds +[2018-06-13T07:44:41.813+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002279 seconds, Stopping threads took: 0,0000968 seconds +[2018-06-13T07:44:41.813+0000][32376][safepoint ] Application time: 0,0000346 seconds +[2018-06-13T07:44:41.813+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001327 seconds, Stopping threads took: 0,0000450 seconds +[2018-06-13T07:44:41.813+0000][32376][safepoint ] Application time: 0,0000240 seconds +[2018-06-13T07:44:41.815+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012088 seconds, Stopping threads took: 0,0011302 seconds +[2018-06-13T07:44:41.815+0000][32376][safepoint ] Application time: 0,0000225 seconds +[2018-06-13T07:44:41.815+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006430 seconds, Stopping threads took: 0,0000150 seconds +[2018-06-13T07:44:41.818+0000][32376][safepoint ] Application time: 0,0022692 seconds +[2018-06-13T07:44:41.818+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006390 seconds, Stopping threads took: 0,0005023 seconds +[2018-06-13T07:44:41.821+0000][32376][safepoint ] Application time: 0,0024142 seconds +[2018-06-13T07:44:41.821+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002038 seconds, Stopping threads took: 0,0000896 seconds +[2018-06-13T07:44:41.834+0000][32376][safepoint ] Application time: 0,0127331 seconds +[2018-06-13T07:44:41.834+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002640 seconds, Stopping threads took: 0,0001120 seconds +[2018-06-13T07:44:41.834+0000][32376][safepoint ] Application time: 0,0001086 seconds +[2018-06-13T07:44:41.834+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001720 seconds, Stopping threads took: 0,0000588 seconds +[2018-06-13T07:44:41.837+0000][32376][safepoint ] Application time: 0,0027540 seconds +[2018-06-13T07:44:41.839+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015765 seconds, Stopping threads took: 0,0014537 seconds +[2018-06-13T07:44:41.844+0000][32376][safepoint ] Application time: 0,0048751 seconds +[2018-06-13T07:44:41.844+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002353 seconds, Stopping threads took: 0,0000901 seconds +[2018-06-13T07:44:41.844+0000][32376][safepoint ] Application time: 0,0002279 seconds +[2018-06-13T07:44:41.844+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002117 seconds, Stopping threads took: 0,0000801 seconds +[2018-06-13T07:44:41.847+0000][32376][safepoint ] Application time: 0,0022666 seconds +[2018-06-13T07:44:41.847+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002334 seconds, Stopping threads took: 0,0001187 seconds +[2018-06-13T07:44:41.847+0000][32376][safepoint ] Application time: 0,0000588 seconds +[2018-06-13T07:44:41.847+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002287 seconds, Stopping threads took: 0,0001358 seconds +[2018-06-13T07:44:41.901+0000][32376][safepoint ] Application time: 0,0533450 seconds +[2018-06-13T07:44:41.902+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012475 seconds, Stopping threads took: 0,0009822 seconds +[2018-06-13T07:44:41.939+0000][32376][safepoint ] Application time: 0,0367136 seconds +[2018-06-13T07:44:41.944+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0050499 seconds, Stopping threads took: 0,0048521 seconds +[2018-06-13T07:44:41.945+0000][32376][safepoint ] Application time: 0,0013970 seconds +[2018-06-13T07:44:41.945+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002914 seconds, Stopping threads took: 0,0001357 seconds +[2018-06-13T07:44:41.946+0000][32376][safepoint ] Application time: 0,0002667 seconds +[2018-06-13T07:44:41.946+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001850 seconds, Stopping threads took: 0,0000416 seconds +[2018-06-13T07:44:41.946+0000][32376][safepoint ] Application time: 0,0000853 seconds +[2018-06-13T07:44:41.946+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001884 seconds, Stopping threads took: 0,0000624 seconds +[2018-06-13T07:44:41.947+0000][32376][safepoint ] Application time: 0,0002471 seconds +[2018-06-13T07:44:41.949+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0028293 seconds, Stopping threads took: 0,0026912 seconds +[2018-06-13T07:44:41.950+0000][32376][safepoint ] Application time: 0,0002399 seconds +[2018-06-13T07:44:41.950+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002531 seconds, Stopping threads took: 0,0001169 seconds +[2018-06-13T07:44:41.950+0000][32376][safepoint ] Application time: 0,0001021 seconds +[2018-06-13T07:44:41.950+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001788 seconds, Stopping threads took: 0,0000486 seconds +[2018-06-13T07:44:41.950+0000][32376][safepoint ] Application time: 0,0002384 seconds +[2018-06-13T07:44:41.952+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010801 seconds, Stopping threads took: 0,0008687 seconds +[2018-06-13T07:44:41.952+0000][32376][safepoint ] Application time: 0,0002007 seconds +[2018-06-13T07:44:41.952+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001991 seconds, Stopping threads took: 0,0000618 seconds +[2018-06-13T07:44:41.952+0000][32376][safepoint ] Application time: 0,0000930 seconds +[2018-06-13T07:44:41.952+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002499 seconds, Stopping threads took: 0,0000744 seconds +[2018-06-13T07:44:41.953+0000][32376][safepoint ] Application time: 0,0002698 seconds +[2018-06-13T07:44:41.953+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002343 seconds, Stopping threads took: 0,0000560 seconds +[2018-06-13T07:44:41.953+0000][32376][safepoint ] Application time: 0,0001550 seconds +[2018-06-13T07:44:41.953+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001697 seconds, Stopping threads took: 0,0000432 seconds +[2018-06-13T07:44:41.953+0000][32376][safepoint ] Application time: 0,0000820 seconds +[2018-06-13T07:44:41.954+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001815 seconds, Stopping threads took: 0,0000706 seconds +[2018-06-13T07:44:41.954+0000][32376][safepoint ] Application time: 0,0002162 seconds +[2018-06-13T07:44:41.954+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001551 seconds, Stopping threads took: 0,0000445 seconds +[2018-06-13T07:44:41.957+0000][32376][safepoint ] Application time: 0,0030787 seconds +[2018-06-13T07:44:41.957+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002466 seconds, Stopping threads took: 0,0001022 seconds +[2018-06-13T07:44:41.959+0000][32376][safepoint ] Application time: 0,0012849 seconds +[2018-06-13T07:44:41.959+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002730 seconds, Stopping threads took: 0,0001044 seconds +[2018-06-13T07:44:41.959+0000][32376][safepoint ] Application time: 0,0002570 seconds +[2018-06-13T07:44:41.959+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002080 seconds, Stopping threads took: 0,0000727 seconds +[2018-06-13T07:44:41.960+0000][32376][safepoint ] Application time: 0,0001152 seconds +[2018-06-13T07:44:41.963+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0028873 seconds, Stopping threads took: 0,0027382 seconds +[2018-06-13T07:44:41.963+0000][32376][safepoint ] Application time: 0,0000885 seconds +[2018-06-13T07:44:41.963+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002057 seconds, Stopping threads took: 0,0000708 seconds +[2018-06-13T07:44:41.963+0000][32376][safepoint ] Application time: 0,0002283 seconds +[2018-06-13T07:44:41.963+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002370 seconds, Stopping threads took: 0,0001003 seconds +[2018-06-13T07:44:41.964+0000][32376][safepoint ] Application time: 0,0001345 seconds +[2018-06-13T07:44:41.964+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002190 seconds, Stopping threads took: 0,0001017 seconds +[2018-06-13T07:44:41.964+0000][32376][safepoint ] Application time: 0,0000777 seconds +[2018-06-13T07:44:41.964+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001672 seconds, Stopping threads took: 0,0000462 seconds +[2018-06-13T07:44:41.964+0000][32376][safepoint ] Application time: 0,0002347 seconds +[2018-06-13T07:44:41.964+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001846 seconds, Stopping threads took: 0,0000598 seconds +[2018-06-13T07:44:41.965+0000][32376][safepoint ] Application time: 0,0001110 seconds +[2018-06-13T07:44:41.965+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002096 seconds, Stopping threads took: 0,0000826 seconds +[2018-06-13T07:44:41.965+0000][32376][safepoint ] Application time: 0,0000822 seconds +[2018-06-13T07:44:41.965+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001760 seconds, Stopping threads took: 0,0000656 seconds +[2018-06-13T07:44:41.965+0000][32376][safepoint ] Application time: 0,0001984 seconds +[2018-06-13T07:44:41.965+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001324 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-13T07:44:41.966+0000][32376][safepoint ] Application time: 0,0000919 seconds +[2018-06-13T07:44:41.966+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001578 seconds, Stopping threads took: 0,0000467 seconds +[2018-06-13T07:44:41.966+0000][32376][safepoint ] Application time: 0,0000628 seconds +[2018-06-13T07:44:41.966+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000892 seconds, Stopping threads took: 0,0000147 seconds +[2018-06-13T07:44:41.966+0000][32376][safepoint ] Application time: 0,0002538 seconds +[2018-06-13T07:44:41.966+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000976 seconds, Stopping threads took: 0,0000191 seconds +[2018-06-13T07:44:41.966+0000][32376][safepoint ] Application time: 0,0001047 seconds +[2018-06-13T07:44:41.967+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001724 seconds, Stopping threads took: 0,0000448 seconds +[2018-06-13T07:44:41.967+0000][32376][safepoint ] Application time: 0,0000842 seconds +[2018-06-13T07:44:41.967+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002568 seconds, Stopping threads took: 0,0000499 seconds +[2018-06-13T07:44:41.967+0000][32376][safepoint ] Application time: 0,0002708 seconds +[2018-06-13T07:44:41.968+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002635 seconds, Stopping threads took: 0,0000719 seconds +[2018-06-13T07:44:41.968+0000][32376][safepoint ] Application time: 0,0001813 seconds +[2018-06-13T07:44:41.968+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003149 seconds, Stopping threads took: 0,0000620 seconds +[2018-06-13T07:44:41.968+0000][32376][safepoint ] Application time: 0,0001035 seconds +[2018-06-13T07:44:41.968+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002294 seconds, Stopping threads took: 0,0000306 seconds +[2018-06-13T07:44:41.969+0000][32376][safepoint ] Application time: 0,0002787 seconds +[2018-06-13T07:44:41.969+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003058 seconds, Stopping threads took: 0,0000685 seconds +[2018-06-13T07:44:41.969+0000][32376][safepoint ] Application time: 0,0001496 seconds +[2018-06-13T07:44:41.969+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002372 seconds, Stopping threads took: 0,0000605 seconds +[2018-06-13T07:44:41.970+0000][32376][safepoint ] Application time: 0,0000730 seconds +[2018-06-13T07:44:41.970+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001904 seconds, Stopping threads took: 0,0000493 seconds +[2018-06-13T07:44:41.970+0000][32376][safepoint ] Application time: 0,0002265 seconds +[2018-06-13T07:44:41.970+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001744 seconds, Stopping threads took: 0,0000535 seconds +[2018-06-13T07:44:41.970+0000][32376][safepoint ] Application time: 0,0000943 seconds +[2018-06-13T07:44:41.970+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001156 seconds, Stopping threads took: 0,0000189 seconds +[2018-06-13T07:44:41.971+0000][32376][safepoint ] Application time: 0,0003401 seconds +[2018-06-13T07:44:41.971+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002723 seconds, Stopping threads took: 0,0000688 seconds +[2018-06-13T07:44:41.972+0000][32376][safepoint ] Application time: 0,0011298 seconds +[2018-06-13T07:44:41.973+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003565 seconds, Stopping threads took: 0,0001036 seconds +[2018-06-13T07:44:41.973+0000][32376][safepoint ] Application time: 0,0003735 seconds +[2018-06-13T07:44:41.974+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005633 seconds, Stopping threads took: 0,0001463 seconds +[2018-06-13T07:44:41.974+0000][32376][safepoint ] Application time: 0,0002028 seconds +[2018-06-13T07:44:41.974+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003688 seconds, Stopping threads took: 0,0000683 seconds +[2018-06-13T07:44:41.975+0000][32376][safepoint ] Application time: 0,0003214 seconds +[2018-06-13T07:44:41.975+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002362 seconds, Stopping threads took: 0,0000518 seconds +[2018-06-13T07:44:41.975+0000][32376][safepoint ] Application time: 0,0001839 seconds +[2018-06-13T07:44:41.976+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002395 seconds, Stopping threads took: 0,0000819 seconds +[2018-06-13T07:44:41.976+0000][32376][safepoint ] Application time: 0,0003182 seconds +[2018-06-13T07:44:41.976+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002133 seconds, Stopping threads took: 0,0000214 seconds +[2018-06-13T07:44:41.976+0000][32376][safepoint ] Application time: 0,0000457 seconds +[2018-06-13T07:44:41.976+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001457 seconds, Stopping threads took: 0,0000271 seconds +[2018-06-13T07:44:41.976+0000][32376][safepoint ] Application time: 0,0001951 seconds +[2018-06-13T07:44:41.977+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002490 seconds, Stopping threads took: 0,0001230 seconds +[2018-06-13T07:44:41.977+0000][32376][safepoint ] Application time: 0,0000653 seconds +[2018-06-13T07:44:41.977+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002009 seconds, Stopping threads took: 0,0000613 seconds +[2018-06-13T07:44:41.977+0000][32376][safepoint ] Application time: 0,0002811 seconds +[2018-06-13T07:44:41.978+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002391 seconds, Stopping threads took: 0,0000947 seconds +[2018-06-13T07:44:41.990+0000][32376][safepoint ] Application time: 0,0125349 seconds +[2018-06-13T07:44:41.995+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0043145 seconds, Stopping threads took: 0,0041485 seconds +[2018-06-13T07:44:41.995+0000][32376][safepoint ] Application time: 0,0001752 seconds +[2018-06-13T07:44:41.995+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002401 seconds, Stopping threads took: 0,0000727 seconds +[2018-06-13T07:44:41.995+0000][32376][safepoint ] Application time: 0,0002195 seconds +[2018-06-13T07:44:41.995+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001978 seconds, Stopping threads took: 0,0000551 seconds +[2018-06-13T07:44:41.996+0000][32376][safepoint ] Application time: 0,0001319 seconds +[2018-06-13T07:44:41.996+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002740 seconds, Stopping threads took: 0,0001561 seconds +[2018-06-13T07:44:41.996+0000][32376][safepoint ] Application time: 0,0003460 seconds +[2018-06-13T07:44:41.997+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002414 seconds, Stopping threads took: 0,0000601 seconds +[2018-06-13T07:44:41.997+0000][32376][safepoint ] Application time: 0,0002044 seconds +[2018-06-13T07:44:41.997+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002211 seconds, Stopping threads took: 0,0000594 seconds +[2018-06-13T07:44:41.997+0000][32376][safepoint ] Application time: 0,0001304 seconds +[2018-06-13T07:44:41.997+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002712 seconds, Stopping threads took: 0,0001415 seconds +[2018-06-13T07:44:41.997+0000][32376][safepoint ] Application time: 0,0000691 seconds +[2018-06-13T07:44:41.998+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001484 seconds, Stopping threads took: 0,0000532 seconds +[2018-06-13T07:44:41.998+0000][32376][safepoint ] Application time: 0,0002392 seconds +[2018-06-13T07:44:41.998+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001112 seconds, Stopping threads took: 0,0000184 seconds +[2018-06-13T07:44:41.998+0000][32376][safepoint ] Application time: 0,0001079 seconds +[2018-06-13T07:44:41.998+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000925 seconds, Stopping threads took: 0,0000183 seconds +[2018-06-13T07:44:41.999+0000][32376][safepoint ] Application time: 0,0006077 seconds +[2018-06-13T07:44:42.000+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012271 seconds, Stopping threads took: 0,0001630 seconds +[2018-06-13T07:44:42.002+0000][32376][safepoint ] Application time: 0,0015043 seconds +[2018-06-13T07:44:42.003+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010994 seconds, Stopping threads took: 0,0000885 seconds +[2018-06-13T07:44:42.003+0000][32376][safepoint ] Application time: 0,0002158 seconds +[2018-06-13T07:44:42.004+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010304 seconds, Stopping threads took: 0,0000889 seconds +[2018-06-13T07:44:42.005+0000][32376][safepoint ] Application time: 0,0006175 seconds +[2018-06-13T07:44:42.005+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002307 seconds, Stopping threads took: 0,0000922 seconds +[2018-06-13T07:44:42.023+0000][32376][safepoint ] Application time: 0,0183596 seconds +[2018-06-13T07:44:42.027+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0033591 seconds, Stopping threads took: 0,0031183 seconds +[2018-06-13T07:44:42.039+0000][32376][safepoint ] Application time: 0,0117902 seconds +[2018-06-13T07:44:42.041+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0027447 seconds, Stopping threads took: 0,0025667 seconds +[2018-06-13T07:44:42.063+0000][32376][safepoint ] Application time: 0,0211856 seconds +[2018-06-13T07:44:42.063+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002675 seconds, Stopping threads took: 0,0001106 seconds +[2018-06-13T07:44:42.079+0000][32376][safepoint ] Application time: 0,0164307 seconds +[2018-06-13T07:44:42.080+0000][32376][gc,start ] GC(17) Pause Young (Allocation Failure) +[2018-06-13T07:44:42.080+0000][32376][gc,task ] GC(17) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:42.111+0000][32376][gc,age ] GC(17) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:42.111+0000][32376][gc,age ] GC(17) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:42.111+0000][32376][gc,age ] GC(17) - age 1: 7414936 bytes, 7414936 total +[2018-06-13T07:44:42.111+0000][32376][gc,age ] GC(17) - age 2: 3772400 bytes, 11187336 total +[2018-06-13T07:44:42.111+0000][32376][gc,age ] GC(17) - age 3: 1891704 bytes, 13079040 total +[2018-06-13T07:44:42.111+0000][32376][gc,age ] GC(17) - age 4: 1708568 bytes, 14787608 total +[2018-06-13T07:44:42.111+0000][32376][gc,heap ] GC(17) ParNew: 295632K->19039K(314560K) +[2018-06-13T07:44:42.111+0000][32376][gc,heap ] GC(17) CMS: 248331K->248331K(699072K) +[2018-06-13T07:44:42.111+0000][32376][gc,metaspace ] GC(17) Metaspace: 82532K->82532K(1128448K) +[2018-06-13T07:44:42.111+0000][32376][gc ] GC(17) Pause Young (Allocation Failure) 531M->261M(989M) 31,505ms +[2018-06-13T07:44:42.111+0000][32376][gc,cpu ] GC(17) User=0,18s Sys=0,00s Real=0,03s +[2018-06-13T07:44:42.111+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0318308 seconds, Stopping threads took: 0,0000508 seconds +[2018-06-13T07:44:42.135+0000][32376][safepoint ] Application time: 0,0237841 seconds +[2018-06-13T07:44:42.137+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014200 seconds, Stopping threads took: 0,0003221 seconds +[2018-06-13T07:44:42.142+0000][32376][safepoint ] Application time: 0,0054927 seconds +[2018-06-13T07:44:42.143+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007243 seconds, Stopping threads took: 0,0005524 seconds +[2018-06-13T07:44:42.143+0000][32376][safepoint ] Application time: 0,0000762 seconds +[2018-06-13T07:44:42.143+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001824 seconds, Stopping threads took: 0,0000519 seconds +[2018-06-13T07:44:42.143+0000][32376][safepoint ] Application time: 0,0002811 seconds +[2018-06-13T07:44:42.144+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002701 seconds, Stopping threads took: 0,0001053 seconds +[2018-06-13T07:44:42.163+0000][32376][safepoint ] Application time: 0,0189799 seconds +[2018-06-13T07:44:42.167+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0040815 seconds, Stopping threads took: 0,0039231 seconds +[2018-06-13T07:44:42.167+0000][32376][safepoint ] Application time: 0,0001031 seconds +[2018-06-13T07:44:42.167+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001646 seconds, Stopping threads took: 0,0000595 seconds +[2018-06-13T07:44:42.167+0000][32376][safepoint ] Application time: 0,0000557 seconds +[2018-06-13T07:44:42.167+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001572 seconds, Stopping threads took: 0,0000385 seconds +[2018-06-13T07:44:42.168+0000][32376][safepoint ] Application time: 0,0002234 seconds +[2018-06-13T07:44:42.168+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001593 seconds, Stopping threads took: 0,0000514 seconds +[2018-06-13T07:44:42.168+0000][32376][safepoint ] Application time: 0,0000284 seconds +[2018-06-13T07:44:42.169+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0016343 seconds, Stopping threads took: 0,0006660 seconds +[2018-06-13T07:44:42.170+0000][32376][safepoint ] Application time: 0,0000440 seconds +[2018-06-13T07:44:42.170+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003116 seconds, Stopping threads took: 0,0000605 seconds +[2018-06-13T07:44:42.170+0000][32376][safepoint ] Application time: 0,0002885 seconds +[2018-06-13T07:44:42.170+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002502 seconds, Stopping threads took: 0,0000712 seconds +[2018-06-13T07:44:42.180+0000][32376][safepoint ] Application time: 0,0091222 seconds +[2018-06-13T07:44:42.180+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002477 seconds, Stopping threads took: 0,0001301 seconds +[2018-06-13T07:44:42.181+0000][32376][safepoint ] Application time: 0,0006293 seconds +[2018-06-13T07:44:42.183+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0023813 seconds, Stopping threads took: 0,0022298 seconds +[2018-06-13T07:44:42.183+0000][32376][safepoint ] Application time: 0,0000620 seconds +[2018-06-13T07:44:42.183+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001759 seconds, Stopping threads took: 0,0000412 seconds +[2018-06-13T07:44:42.183+0000][32376][safepoint ] Application time: 0,0000923 seconds +[2018-06-13T07:44:42.184+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002067 seconds, Stopping threads took: 0,0001120 seconds +[2018-06-13T07:44:42.184+0000][32376][safepoint ] Application time: 0,0000278 seconds +[2018-06-13T07:44:42.184+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001208 seconds, Stopping threads took: 0,0000299 seconds +[2018-06-13T07:44:42.184+0000][32376][safepoint ] Application time: 0,0006411 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001692 seconds, Stopping threads took: 0,0000441 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Application time: 0,0000364 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001022 seconds, Stopping threads took: 0,0000212 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Application time: 0,0000265 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001648 seconds, Stopping threads took: 0,0000539 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Application time: 0,0000374 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001128 seconds, Stopping threads took: 0,0000255 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Application time: 0,0000197 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001188 seconds, Stopping threads took: 0,0000463 seconds +[2018-06-13T07:44:42.185+0000][32376][safepoint ] Application time: 0,0000174 seconds +[2018-06-13T07:44:42.186+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007626 seconds, Stopping threads took: 0,0000277 seconds +[2018-06-13T07:44:42.195+0000][32376][safepoint ] Application time: 0,0086029 seconds +[2018-06-13T07:44:42.195+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002304 seconds, Stopping threads took: 0,0001118 seconds +[2018-06-13T07:44:42.195+0000][32376][safepoint ] Application time: 0,0000725 seconds +[2018-06-13T07:44:42.199+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0037259 seconds, Stopping threads took: 0,0035983 seconds +[2018-06-13T07:44:42.205+0000][32376][safepoint ] Application time: 0,0060997 seconds +[2018-06-13T07:44:42.207+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0019001 seconds, Stopping threads took: 0,0017594 seconds +[2018-06-13T07:44:42.211+0000][32376][safepoint ] Application time: 0,0037524 seconds +[2018-06-13T07:44:42.215+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0042988 seconds, Stopping threads took: 0,0040778 seconds +[2018-06-13T07:44:42.256+0000][32376][safepoint ] Application time: 0,0406775 seconds +[2018-06-13T07:44:42.256+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002831 seconds, Stopping threads took: 0,0001215 seconds +[2018-06-13T07:44:42.256+0000][32376][safepoint ] Application time: 0,0001382 seconds +[2018-06-13T07:44:42.256+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001776 seconds, Stopping threads took: 0,0000548 seconds +[2018-06-13T07:44:42.259+0000][32376][safepoint ] Application time: 0,0026439 seconds +[2018-06-13T07:44:42.262+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0026751 seconds, Stopping threads took: 0,0025289 seconds +[2018-06-13T07:44:42.280+0000][32376][safepoint ] Application time: 0,0184133 seconds +[2018-06-13T07:44:42.280+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003244 seconds, Stopping threads took: 0,0001250 seconds +[2018-06-13T07:44:42.430+0000][32376][safepoint ] Application time: 0,1490092 seconds +[2018-06-13T07:44:42.431+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013065 seconds, Stopping threads took: 0,0010633 seconds +[2018-06-13T07:44:42.486+0000][32376][safepoint ] Application time: 0,0551722 seconds +[2018-06-13T07:44:42.489+0000][32376][gc,start ] GC(18) Pause Young (Allocation Failure) +[2018-06-13T07:44:42.489+0000][32376][gc,task ] GC(18) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:42.495+0000][32376][gc,age ] GC(18) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:42.495+0000][32376][gc,age ] GC(18) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:42.495+0000][32376][gc,age ] GC(18) - age 1: 8976824 bytes, 8976824 total +[2018-06-13T07:44:42.495+0000][32376][gc,age ] GC(18) - age 2: 2694616 bytes, 11671440 total +[2018-06-13T07:44:42.495+0000][32376][gc,age ] GC(18) - age 3: 2478032 bytes, 14149472 total +[2018-06-13T07:44:42.495+0000][32376][gc,age ] GC(18) - age 4: 1835472 bytes, 15984944 total +[2018-06-13T07:44:42.495+0000][32376][gc,age ] GC(18) - age 5: 1701208 bytes, 17686152 total +[2018-06-13T07:44:42.495+0000][32376][gc,heap ] GC(18) ParNew: 298655K->23017K(314560K) +[2018-06-13T07:44:42.495+0000][32376][gc,heap ] GC(18) CMS: 248331K->248331K(699072K) +[2018-06-13T07:44:42.495+0000][32376][gc,metaspace ] GC(18) Metaspace: 82693K->82693K(1128448K) +[2018-06-13T07:44:42.495+0000][32376][gc ] GC(18) Pause Young (Allocation Failure) 534M->264M(989M) 6,159ms +[2018-06-13T07:44:42.495+0000][32376][gc,cpu ] GC(18) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:44:42.496+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0093931 seconds, Stopping threads took: 0,0030022 seconds +[2018-06-13T07:44:42.496+0000][32376][safepoint ] Application time: 0,0001539 seconds +[2018-06-13T07:44:42.497+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008360 seconds, Stopping threads took: 0,0000807 seconds +[2018-06-13T07:44:42.564+0000][32376][safepoint ] Application time: 0,0670583 seconds +[2018-06-13T07:44:42.564+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003179 seconds, Stopping threads took: 0,0000909 seconds +[2018-06-13T07:44:42.606+0000][32376][safepoint ] Application time: 0,0416800 seconds +[2018-06-13T07:44:42.609+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0036704 seconds, Stopping threads took: 0,0035240 seconds +[2018-06-13T07:44:42.610+0000][32376][safepoint ] Application time: 0,0001654 seconds +[2018-06-13T07:44:42.610+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002687 seconds, Stopping threads took: 0,0001558 seconds +[2018-06-13T07:44:42.610+0000][32376][safepoint ] Application time: 0,0003341 seconds +[2018-06-13T07:44:42.610+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001145 seconds, Stopping threads took: 0,0000234 seconds +[2018-06-13T07:44:42.610+0000][32376][safepoint ] Application time: 0,0000305 seconds +[2018-06-13T07:44:42.611+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001703 seconds, Stopping threads took: 0,0000450 seconds +[2018-06-13T07:44:42.707+0000][32376][safepoint ] Application time: 0,0962123 seconds +[2018-06-13T07:44:42.707+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002766 seconds, Stopping threads took: 0,0000751 seconds +[2018-06-13T07:44:42.829+0000][32376][safepoint ] Application time: 0,1222998 seconds +[2018-06-13T07:44:42.830+0000][32376][gc,start ] GC(19) Pause Young (Allocation Failure) +[2018-06-13T07:44:42.830+0000][32376][gc,task ] GC(19) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) Desired survivor size 17891328 bytes, new threshold 5 (max threshold 6) +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) Age table with threshold 5 (max threshold 6) +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) - age 1: 5929944 bytes, 5929944 total +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) - age 2: 5298656 bytes, 11228600 total +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) - age 3: 2693384 bytes, 13921984 total +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) - age 4: 2444592 bytes, 16366576 total +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) - age 5: 1835472 bytes, 18202048 total +[2018-06-13T07:44:42.845+0000][32376][gc,age ] GC(19) - age 6: 1701208 bytes, 19903256 total +[2018-06-13T07:44:42.845+0000][32376][gc,heap ] GC(19) ParNew: 302633K->30345K(314560K) +[2018-06-13T07:44:42.845+0000][32376][gc,heap ] GC(19) CMS: 248331K->248331K(699072K) +[2018-06-13T07:44:42.845+0000][32376][gc,metaspace ] GC(19) Metaspace: 82793K->82793K(1128448K) +[2018-06-13T07:44:42.845+0000][32376][gc ] GC(19) Pause Young (Allocation Failure) 538M->272M(989M) 15,668ms +[2018-06-13T07:44:42.845+0000][32376][gc,cpu ] GC(19) User=0,09s Sys=0,00s Real=0,01s +[2018-06-13T07:44:42.845+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0159837 seconds, Stopping threads took: 0,0000901 seconds +[2018-06-13T07:44:42.859+0000][32376][safepoint ] Application time: 0,0140479 seconds +[2018-06-13T07:44:42.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0031090 seconds, Stopping threads took: 0,0029617 seconds +[2018-06-13T07:44:42.874+0000][32376][safepoint ] Application time: 0,0108947 seconds +[2018-06-13T07:44:42.884+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0098760 seconds, Stopping threads took: 0,0097216 seconds +[2018-06-13T07:44:42.884+0000][32376][safepoint ] Application time: 0,0002036 seconds +[2018-06-13T07:44:42.885+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008657 seconds, Stopping threads took: 0,0000663 seconds +[2018-06-13T07:44:42.885+0000][32376][safepoint ] Application time: 0,0000735 seconds +[2018-06-13T07:44:42.885+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001384 seconds, Stopping threads took: 0,0000397 seconds +[2018-06-13T07:44:42.885+0000][32376][safepoint ] Application time: 0,0000438 seconds +[2018-06-13T07:44:42.885+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001135 seconds, Stopping threads took: 0,0000360 seconds +[2018-06-13T07:44:42.972+0000][32376][safepoint ] Application time: 0,0865490 seconds +[2018-06-13T07:44:42.975+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0036760 seconds, Stopping threads took: 0,0032090 seconds +[2018-06-13T07:44:43.017+0000][32376][safepoint ] Application time: 0,0419668 seconds +[2018-06-13T07:44:43.018+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010742 seconds, Stopping threads took: 0,0007905 seconds +[2018-06-13T07:44:43.033+0000][32376][safepoint ] Application time: 0,0144657 seconds +[2018-06-13T07:44:43.038+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0051287 seconds, Stopping threads took: 0,0049178 seconds +[2018-06-13T07:44:43.038+0000][32376][safepoint ] Application time: 0,0000767 seconds +[2018-06-13T07:44:43.039+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002302 seconds, Stopping threads took: 0,0000622 seconds +[2018-06-13T07:44:43.039+0000][32376][safepoint ] Application time: 0,0000760 seconds +[2018-06-13T07:44:43.039+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002312 seconds, Stopping threads took: 0,0000812 seconds +[2018-06-13T07:44:43.039+0000][32376][safepoint ] Application time: 0,0000520 seconds +[2018-06-13T07:44:43.039+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001503 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-13T07:44:43.046+0000][32376][safepoint ] Application time: 0,0067520 seconds +[2018-06-13T07:44:43.047+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003657 seconds, Stopping threads took: 0,0000771 seconds +[2018-06-13T07:44:43.084+0000][32376][safepoint ] Application time: 0,0372539 seconds +[2018-06-13T07:44:43.086+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0017185 seconds, Stopping threads took: 0,0014393 seconds +[2018-06-13T07:44:43.089+0000][32376][safepoint ] Application time: 0,0035116 seconds +[2018-06-13T07:44:43.089+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002707 seconds, Stopping threads took: 0,0000956 seconds +[2018-06-13T07:44:43.090+0000][32376][safepoint ] Application time: 0,0000324 seconds +[2018-06-13T07:44:43.090+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001889 seconds, Stopping threads took: 0,0000494 seconds +[2018-06-13T07:44:43.095+0000][32376][safepoint ] Application time: 0,0050068 seconds +[2018-06-13T07:44:43.095+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001797 seconds, Stopping threads took: 0,0000670 seconds +[2018-06-13T07:44:43.125+0000][32376][safepoint ] Application time: 0,0296799 seconds +[2018-06-13T07:44:43.125+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002778 seconds, Stopping threads took: 0,0000834 seconds +[2018-06-13T07:44:43.169+0000][32376][safepoint ] Application time: 0,0437520 seconds +[2018-06-13T07:44:43.171+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020629 seconds, Stopping threads took: 0,0017761 seconds +[2018-06-13T07:44:43.286+0000][32376][safepoint ] Application time: 0,1151966 seconds +[2018-06-13T07:44:43.287+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006876 seconds, Stopping threads took: 0,0004774 seconds +[2018-06-13T07:44:43.287+0000][32376][safepoint ] Application time: 0,0002414 seconds +[2018-06-13T07:44:43.287+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002481 seconds, Stopping threads took: 0,0000807 seconds +[2018-06-13T07:44:43.294+0000][32376][safepoint ] Application time: 0,0063257 seconds +[2018-06-13T07:44:43.294+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002606 seconds, Stopping threads took: 0,0000699 seconds +[2018-06-13T07:44:43.300+0000][32376][safepoint ] Application time: 0,0059213 seconds +[2018-06-13T07:44:43.300+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005002 seconds, Stopping threads took: 0,0003059 seconds +[2018-06-13T07:44:43.306+0000][32376][safepoint ] Application time: 0,0056223 seconds +[2018-06-13T07:44:43.306+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002653 seconds, Stopping threads took: 0,0000768 seconds +[2018-06-13T07:44:43.307+0000][32376][safepoint ] Application time: 0,0001693 seconds +[2018-06-13T07:44:43.307+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002381 seconds, Stopping threads took: 0,0000647 seconds +[2018-06-13T07:44:43.332+0000][32376][safepoint ] Application time: 0,0246890 seconds +[2018-06-13T07:44:43.332+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002724 seconds, Stopping threads took: 0,0000808 seconds +[2018-06-13T07:44:43.337+0000][32376][safepoint ] Application time: 0,0051206 seconds +[2018-06-13T07:44:43.338+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013053 seconds, Stopping threads took: 0,0011181 seconds +[2018-06-13T07:44:43.338+0000][32376][safepoint ] Application time: 0,0000731 seconds +[2018-06-13T07:44:43.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002309 seconds, Stopping threads took: 0,0000662 seconds +[2018-06-13T07:44:43.339+0000][32376][safepoint ] Application time: 0,0000547 seconds +[2018-06-13T07:44:43.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001918 seconds, Stopping threads took: 0,0000549 seconds +[2018-06-13T07:44:43.339+0000][32376][safepoint ] Application time: 0,0000556 seconds +[2018-06-13T07:44:43.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003602 seconds, Stopping threads took: 0,0002105 seconds +[2018-06-13T07:44:43.340+0000][32376][safepoint ] Application time: 0,0000679 seconds +[2018-06-13T07:44:43.340+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001548 seconds, Stopping threads took: 0,0000218 seconds +[2018-06-13T07:44:43.349+0000][32376][safepoint ] Application time: 0,0091793 seconds +[2018-06-13T07:44:43.352+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0032731 seconds, Stopping threads took: 0,0030722 seconds +[2018-06-13T07:44:43.354+0000][32376][safepoint ] Application time: 0,0015921 seconds +[2018-06-13T07:44:43.355+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009210 seconds, Stopping threads took: 0,0007213 seconds +[2018-06-13T07:44:43.378+0000][32376][safepoint ] Application time: 0,0230896 seconds +[2018-06-13T07:44:43.378+0000][32376][gc,start ] GC(20) Pause Young (Allocation Failure) +[2018-06-13T07:44:43.378+0000][32376][gc,task ] GC(20) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:43.397+0000][32376][gc,age ] GC(20) Desired survivor size 17891328 bytes, new threshold 4 (max threshold 6) +[2018-06-13T07:44:43.397+0000][32376][gc,age ] GC(20) Age table with threshold 4 (max threshold 6) +[2018-06-13T07:44:43.397+0000][32376][gc,age ] GC(20) - age 1: 10485936 bytes, 10485936 total +[2018-06-13T07:44:43.397+0000][32376][gc,age ] GC(20) - age 2: 1741816 bytes, 12227752 total +[2018-06-13T07:44:43.397+0000][32376][gc,age ] GC(20) - age 3: 5238384 bytes, 17466136 total +[2018-06-13T07:44:43.397+0000][32376][gc,age ] GC(20) - age 4: 2636640 bytes, 20102776 total +[2018-06-13T07:44:43.397+0000][32376][gc,age ] GC(20) - age 5: 2403896 bytes, 22506672 total +[2018-06-13T07:44:43.397+0000][32376][gc,heap ] GC(20) ParNew: 309961K->34943K(314560K) +[2018-06-13T07:44:43.397+0000][32376][gc,heap ] GC(20) CMS: 248331K->251897K(699072K) +[2018-06-13T07:44:43.397+0000][32376][gc,metaspace ] GC(20) Metaspace: 83131K->83131K(1128448K) +[2018-06-13T07:44:43.397+0000][32376][gc ] GC(20) Pause Young (Allocation Failure) 545M->280M(989M) 18,921ms +[2018-06-13T07:44:43.397+0000][32376][gc,cpu ] GC(20) User=0,11s Sys=0,00s Real=0,02s +[2018-06-13T07:44:43.397+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0194465 seconds, Stopping threads took: 0,0002343 seconds +[2018-06-13T07:44:43.399+0000][32376][safepoint ] Application time: 0,0017001 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015819 seconds, Stopping threads took: 0,0013950 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Application time: 0,0000670 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002333 seconds, Stopping threads took: 0,0000629 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Application time: 0,0000486 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001714 seconds, Stopping threads took: 0,0000333 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Application time: 0,0000274 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001240 seconds, Stopping threads took: 0,0000187 seconds +[2018-06-13T07:44:43.401+0000][32376][safepoint ] Application time: 0,0000212 seconds +[2018-06-13T07:44:43.402+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001598 seconds, Stopping threads took: 0,0000500 seconds +[2018-06-13T07:44:43.402+0000][32376][safepoint ] Application time: 0,0000240 seconds +[2018-06-13T07:44:43.402+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001095 seconds, Stopping threads took: 0,0000267 seconds +[2018-06-13T07:44:43.402+0000][32376][safepoint ] Application time: 0,0000228 seconds +[2018-06-13T07:44:43.402+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001203 seconds, Stopping threads took: 0,0000369 seconds +[2018-06-13T07:44:43.402+0000][32376][safepoint ] Application time: 0,0002963 seconds +[2018-06-13T07:44:43.403+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004313 seconds, Stopping threads took: 0,0002848 seconds +[2018-06-13T07:44:43.403+0000][32376][safepoint ] Application time: 0,0000419 seconds +[2018-06-13T07:44:43.403+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001843 seconds, Stopping threads took: 0,0000385 seconds +[2018-06-13T07:44:43.403+0000][32376][safepoint ] Application time: 0,0000277 seconds +[2018-06-13T07:44:43.403+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002711 seconds, Stopping threads took: 0,0001238 seconds +[2018-06-13T07:44:43.511+0000][32376][safepoint ] Application time: 0,1074073 seconds +[2018-06-13T07:44:43.515+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0040457 seconds, Stopping threads took: 0,0038628 seconds +[2018-06-13T07:44:43.569+0000][32376][safepoint ] Application time: 0,0544465 seconds +[2018-06-13T07:44:43.579+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0092878 seconds, Stopping threads took: 0,0091298 seconds +[2018-06-13T07:44:43.604+0000][32376][safepoint ] Application time: 0,0255156 seconds +[2018-06-13T07:44:43.606+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0018869 seconds, Stopping threads took: 0,0016967 seconds +[2018-06-13T07:44:43.608+0000][32376][safepoint ] Application time: 0,0016650 seconds +[2018-06-13T07:44:43.610+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0024381 seconds, Stopping threads took: 0,0022873 seconds +[2018-06-13T07:44:43.654+0000][32376][safepoint ] Application time: 0,0438394 seconds +[2018-06-13T07:44:43.656+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013175 seconds, Stopping threads took: 0,0010698 seconds +[2018-06-13T07:44:43.656+0000][32376][safepoint ] Application time: 0,0000880 seconds +[2018-06-13T07:44:43.656+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002298 seconds, Stopping threads took: 0,0000507 seconds +[2018-06-13T07:44:43.656+0000][32376][safepoint ] Application time: 0,0000479 seconds +[2018-06-13T07:44:43.657+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005368 seconds, Stopping threads took: 0,0003521 seconds +[2018-06-13T07:44:43.657+0000][32376][safepoint ] Application time: 0,0000838 seconds +[2018-06-13T07:44:43.657+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001863 seconds, Stopping threads took: 0,0000298 seconds +[2018-06-13T07:44:43.657+0000][32376][safepoint ] Application time: 0,0000366 seconds +[2018-06-13T07:44:43.657+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001838 seconds, Stopping threads took: 0,0000441 seconds +[2018-06-13T07:44:43.682+0000][32376][safepoint ] Application time: 0,0248020 seconds +[2018-06-13T07:44:43.682+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004878 seconds, Stopping threads took: 0,0002891 seconds +[2018-06-13T07:44:43.683+0000][32376][safepoint ] Application time: 0,0010183 seconds +[2018-06-13T07:44:43.684+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002249 seconds, Stopping threads took: 0,0000666 seconds +[2018-06-13T07:44:43.687+0000][32376][safepoint ] Application time: 0,0029519 seconds +[2018-06-13T07:44:43.688+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011848 seconds, Stopping threads took: 0,0009625 seconds +[2018-06-13T07:44:43.690+0000][32376][safepoint ] Application time: 0,0015572 seconds +[2018-06-13T07:44:43.694+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0046436 seconds, Stopping threads took: 0,0044452 seconds +[2018-06-13T07:44:43.694+0000][32376][safepoint ] Application time: 0,0001186 seconds +[2018-06-13T07:44:43.695+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002956 seconds, Stopping threads took: 0,0000657 seconds +[2018-06-13T07:44:43.695+0000][32376][safepoint ] Application time: 0,0000460 seconds +[2018-06-13T07:44:43.695+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002415 seconds, Stopping threads took: 0,0000429 seconds +[2018-06-13T07:44:43.724+0000][32376][safepoint ] Application time: 0,0289348 seconds +[2018-06-13T07:44:43.725+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007494 seconds, Stopping threads took: 0,0005088 seconds +[2018-06-13T07:44:43.733+0000][32376][safepoint ] Application time: 0,0078829 seconds +[2018-06-13T07:44:43.735+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0025637 seconds, Stopping threads took: 0,0021791 seconds +[2018-06-13T07:44:43.743+0000][32376][safepoint ] Application time: 0,0081435 seconds +[2018-06-13T07:44:43.745+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011609 seconds, Stopping threads took: 0,0001260 seconds +[2018-06-13T07:44:43.771+0000][32376][safepoint ] Application time: 0,0258954 seconds +[2018-06-13T07:44:43.775+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0044198 seconds, Stopping threads took: 0,0040898 seconds +[2018-06-13T07:44:43.777+0000][32376][safepoint ] Application time: 0,0014817 seconds +[2018-06-13T07:44:43.777+0000][32376][gc,start ] GC(21) Pause Young (Allocation Failure) +[2018-06-13T07:44:43.777+0000][32376][gc,task ] GC(21) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:43.793+0000][32376][gc,age ] GC(21) Desired survivor size 17891328 bytes, new threshold 4 (max threshold 6) +[2018-06-13T07:44:43.793+0000][32376][gc,age ] GC(21) Age table with threshold 4 (max threshold 6) +[2018-06-13T07:44:43.793+0000][32376][gc,age ] GC(21) - age 1: 9962152 bytes, 9962152 total +[2018-06-13T07:44:43.793+0000][32376][gc,age ] GC(21) - age 2: 5573728 bytes, 15535880 total +[2018-06-13T07:44:43.793+0000][32376][gc,age ] GC(21) - age 3: 1739976 bytes, 17275856 total +[2018-06-13T07:44:43.793+0000][32376][gc,age ] GC(21) - age 4: 5237736 bytes, 22513592 total +[2018-06-13T07:44:43.793+0000][32376][gc,heap ] GC(21) ParNew: 314559K->34944K(314560K) +[2018-06-13T07:44:43.793+0000][32376][gc,heap ] GC(21) CMS: 251897K->257213K(699072K) +[2018-06-13T07:44:43.793+0000][32376][gc,metaspace ] GC(21) Metaspace: 83605K->83605K(1128448K) +[2018-06-13T07:44:43.793+0000][32376][gc ] GC(21) Pause Young (Allocation Failure) 553M->285M(989M) 15,821ms +[2018-06-13T07:44:43.793+0000][32376][gc,cpu ] GC(21) User=0,11s Sys=0,00s Real=0,01s +[2018-06-13T07:44:43.793+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0161915 seconds, Stopping threads took: 0,0000844 seconds +[2018-06-13T07:44:43.793+0000][32376][safepoint ] Application time: 0,0001515 seconds +[2018-06-13T07:44:43.793+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002624 seconds, Stopping threads took: 0,0000745 seconds +[2018-06-13T07:44:43.793+0000][32376][safepoint ] Application time: 0,0000304 seconds +[2018-06-13T07:44:43.793+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001723 seconds, Stopping threads took: 0,0000392 seconds +[2018-06-13T07:44:43.793+0000][32376][safepoint ] Application time: 0,0000282 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001556 seconds, Stopping threads took: 0,0000338 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Application time: 0,0000404 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001910 seconds, Stopping threads took: 0,0000461 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Application time: 0,0000248 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001802 seconds, Stopping threads took: 0,0000386 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Application time: 0,0000353 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001850 seconds, Stopping threads took: 0,0000544 seconds +[2018-06-13T07:44:43.794+0000][32376][safepoint ] Application time: 0,0000357 seconds +[2018-06-13T07:44:43.795+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002870 seconds, Stopping threads took: 0,0001535 seconds +[2018-06-13T07:44:43.795+0000][32376][safepoint ] Application time: 0,0000310 seconds +[2018-06-13T07:44:43.795+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001630 seconds, Stopping threads took: 0,0000384 seconds +[2018-06-13T07:44:43.795+0000][32376][safepoint ] Application time: 0,0000320 seconds +[2018-06-13T07:44:43.795+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002501 seconds, Stopping threads took: 0,0000669 seconds +[2018-06-13T07:44:43.818+0000][32376][safepoint ] Application time: 0,0227354 seconds +[2018-06-13T07:44:43.818+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003338 seconds, Stopping threads took: 0,0000789 seconds +[2018-06-13T07:44:43.819+0000][32376][safepoint ] Application time: 0,0002674 seconds +[2018-06-13T07:44:43.819+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002268 seconds, Stopping threads took: 0,0000739 seconds +[2018-06-13T07:44:43.819+0000][32376][safepoint ] Application time: 0,0000801 seconds +[2018-06-13T07:44:43.819+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002156 seconds, Stopping threads took: 0,0000466 seconds +[2018-06-13T07:44:43.819+0000][32376][safepoint ] Application time: 0,0000700 seconds +[2018-06-13T07:44:43.820+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001535 seconds, Stopping threads took: 0,0000458 seconds +[2018-06-13T07:44:43.820+0000][32376][safepoint ] Application time: 0,0000387 seconds +[2018-06-13T07:44:43.820+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001271 seconds, Stopping threads took: 0,0000222 seconds +[2018-06-13T07:44:43.820+0000][32376][safepoint ] Application time: 0,0000464 seconds +[2018-06-13T07:44:43.820+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001378 seconds, Stopping threads took: 0,0000460 seconds +[2018-06-13T07:44:43.820+0000][32376][safepoint ] Application time: 0,0000461 seconds +[2018-06-13T07:44:43.820+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001991 seconds, Stopping threads took: 0,0000347 seconds +[2018-06-13T07:44:43.822+0000][32376][safepoint ] Application time: 0,0021092 seconds +[2018-06-13T07:44:43.827+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0044614 seconds, Stopping threads took: 0,0043073 seconds +[2018-06-13T07:44:43.871+0000][32376][safepoint ] Application time: 0,0438587 seconds +[2018-06-13T07:44:43.873+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020390 seconds, Stopping threads took: 0,0017233 seconds +[2018-06-13T07:44:43.924+0000][32376][safepoint ] Application time: 0,0513821 seconds +[2018-06-13T07:44:43.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003226 seconds, Stopping threads took: 0,0001402 seconds +[2018-06-13T07:44:43.925+0000][32376][safepoint ] Application time: 0,0002301 seconds +[2018-06-13T07:44:43.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003113 seconds, Stopping threads took: 0,0001097 seconds +[2018-06-13T07:44:43.925+0000][32376][safepoint ] Application time: 0,0001424 seconds +[2018-06-13T07:44:43.926+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002441 seconds, Stopping threads took: 0,0000834 seconds +[2018-06-13T07:44:43.926+0000][32376][safepoint ] Application time: 0,0000488 seconds +[2018-06-13T07:44:43.926+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002207 seconds, Stopping threads took: 0,0000499 seconds +[2018-06-13T07:44:43.926+0000][32376][safepoint ] Application time: 0,0000535 seconds +[2018-06-13T07:44:43.926+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002673 seconds, Stopping threads took: 0,0001068 seconds +[2018-06-13T07:44:43.926+0000][32376][safepoint ] Application time: 0,0000311 seconds +[2018-06-13T07:44:43.926+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001778 seconds, Stopping threads took: 0,0000388 seconds +[2018-06-13T07:44:43.931+0000][32376][safepoint ] Application time: 0,0041200 seconds +[2018-06-13T07:44:43.931+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002178 seconds, Stopping threads took: 0,0000902 seconds +[2018-06-13T07:44:43.951+0000][32376][safepoint ] Application time: 0,0202106 seconds +[2018-06-13T07:44:43.952+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013058 seconds, Stopping threads took: 0,0010270 seconds +[2018-06-13T07:44:43.969+0000][32376][safepoint ] Application time: 0,0166540 seconds +[2018-06-13T07:44:43.969+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003332 seconds, Stopping threads took: 0,0001021 seconds +[2018-06-13T07:44:43.970+0000][32376][safepoint ] Application time: 0,0001069 seconds +[2018-06-13T07:44:43.970+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002813 seconds, Stopping threads took: 0,0000945 seconds +[2018-06-13T07:44:43.970+0000][32376][safepoint ] Application time: 0,0000426 seconds +[2018-06-13T07:44:43.970+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001843 seconds, Stopping threads took: 0,0000485 seconds +[2018-06-13T07:44:43.970+0000][32376][safepoint ] Application time: 0,0000598 seconds +[2018-06-13T07:44:43.970+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001852 seconds, Stopping threads took: 0,0000416 seconds +[2018-06-13T07:44:43.970+0000][32376][safepoint ] Application time: 0,0000277 seconds +[2018-06-13T07:44:43.971+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001802 seconds, Stopping threads took: 0,0000348 seconds +[2018-06-13T07:44:43.988+0000][32376][safepoint ] Application time: 0,0176351 seconds +[2018-06-13T07:44:43.989+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002812 seconds, Stopping threads took: 0,0000834 seconds +[2018-06-13T07:44:44.000+0000][32376][safepoint ] Application time: 0,0113834 seconds +[2018-06-13T07:44:44.000+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002627 seconds, Stopping threads took: 0,0000924 seconds +[2018-06-13T07:44:44.031+0000][32376][safepoint ] Application time: 0,0310853 seconds +[2018-06-13T07:44:44.032+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002514 seconds, Stopping threads took: 0,0001108 seconds +[2018-06-13T07:44:44.070+0000][32376][safepoint ] Application time: 0,0383644 seconds +[2018-06-13T07:44:44.073+0000][32376][gc,start ] GC(22) Pause Young (Allocation Failure) +[2018-06-13T07:44:44.073+0000][32376][gc,task ] GC(22) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:44.084+0000][32376][gc,age ] GC(22) Desired survivor size 17891328 bytes, new threshold 3 (max threshold 6) +[2018-06-13T07:44:44.084+0000][32376][gc,age ] GC(22) Age table with threshold 3 (max threshold 6) +[2018-06-13T07:44:44.084+0000][32376][gc,age ] GC(22) - age 1: 8996168 bytes, 8996168 total +[2018-06-13T07:44:44.084+0000][32376][gc,age ] GC(22) - age 2: 7237840 bytes, 16234008 total +[2018-06-13T07:44:44.084+0000][32376][gc,age ] GC(22) - age 3: 5205848 bytes, 21439856 total +[2018-06-13T07:44:44.084+0000][32376][gc,age ] GC(22) - age 4: 1738016 bytes, 23177872 total +[2018-06-13T07:44:44.084+0000][32376][gc,heap ] GC(22) ParNew: 314560K->32636K(314560K) +[2018-06-13T07:44:44.084+0000][32376][gc,heap ] GC(22) CMS: 257213K->262313K(699072K) +[2018-06-13T07:44:44.084+0000][32376][gc,metaspace ] GC(22) Metaspace: 83654K->83654K(1128448K) +[2018-06-13T07:44:44.084+0000][32376][gc ] GC(22) Pause Young (Allocation Failure) 558M->288M(989M) 11,262ms +[2018-06-13T07:44:44.085+0000][32376][gc,cpu ] GC(22) User=0,06s Sys=0,00s Real=0,01s +[2018-06-13T07:44:44.085+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0144663 seconds, Stopping threads took: 0,0028258 seconds +[2018-06-13T07:44:44.130+0000][32376][safepoint ] Application time: 0,0453450 seconds +[2018-06-13T07:44:44.131+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010869 seconds, Stopping threads took: 0,0002041 seconds +[2018-06-13T07:44:44.131+0000][32376][safepoint ] Application time: 0,0001894 seconds +[2018-06-13T07:44:44.132+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003078 seconds, Stopping threads took: 0,0001293 seconds +[2018-06-13T07:44:44.132+0000][32376][safepoint ] Application time: 0,0000759 seconds +[2018-06-13T07:44:44.132+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002184 seconds, Stopping threads took: 0,0001023 seconds +[2018-06-13T07:44:44.132+0000][32376][safepoint ] Application time: 0,0000495 seconds +[2018-06-13T07:44:44.132+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001447 seconds, Stopping threads took: 0,0000450 seconds +[2018-06-13T07:44:44.132+0000][32376][safepoint ] Application time: 0,0000742 seconds +[2018-06-13T07:44:44.132+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001542 seconds, Stopping threads took: 0,0000561 seconds +[2018-06-13T07:44:44.144+0000][32376][safepoint ] Application time: 0,0111289 seconds +[2018-06-13T07:44:44.144+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002846 seconds, Stopping threads took: 0,0000677 seconds +[2018-06-13T07:44:44.202+0000][32376][safepoint ] Application time: 0,0583599 seconds +[2018-06-13T07:44:44.203+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012248 seconds, Stopping threads took: 0,0000724 seconds +[2018-06-13T07:44:44.204+0000][32376][safepoint ] Application time: 0,0001300 seconds +[2018-06-13T07:44:44.204+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002196 seconds, Stopping threads took: 0,0000428 seconds +[2018-06-13T07:44:44.204+0000][32376][safepoint ] Application time: 0,0000345 seconds +[2018-06-13T07:44:44.204+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001719 seconds, Stopping threads took: 0,0000330 seconds +[2018-06-13T07:44:44.204+0000][32376][safepoint ] Application time: 0,0000446 seconds +[2018-06-13T07:44:44.204+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001774 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-13T07:44:44.204+0000][32376][safepoint ] Application time: 0,0000309 seconds +[2018-06-13T07:44:44.205+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001739 seconds, Stopping threads took: 0,0000439 seconds +[2018-06-13T07:44:44.208+0000][32376][safepoint ] Application time: 0,0030706 seconds +[2018-06-13T07:44:44.208+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002750 seconds, Stopping threads took: 0,0000864 seconds +[2018-06-13T07:44:44.262+0000][32376][safepoint ] Application time: 0,0542689 seconds +[2018-06-13T07:44:44.263+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003574 seconds, Stopping threads took: 0,0001703 seconds +[2018-06-13T07:44:44.263+0000][32376][safepoint ] Application time: 0,0000768 seconds +[2018-06-13T07:44:44.271+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0086650 seconds, Stopping threads took: 0,0083813 seconds +[2018-06-13T07:44:44.272+0000][32376][safepoint ] Application time: 0,0001368 seconds +[2018-06-13T07:44:44.272+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002772 seconds, Stopping threads took: 0,0000657 seconds +[2018-06-13T07:44:44.272+0000][32376][safepoint ] Application time: 0,0000553 seconds +[2018-06-13T07:44:44.272+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001810 seconds, Stopping threads took: 0,0000415 seconds +[2018-06-13T07:44:44.322+0000][32376][safepoint ] Application time: 0,0493446 seconds +[2018-06-13T07:44:44.323+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011622 seconds, Stopping threads took: 0,0001771 seconds +[2018-06-13T07:44:44.344+0000][32376][safepoint ] Application time: 0,0210592 seconds +[2018-06-13T07:44:44.345+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009181 seconds, Stopping threads took: 0,0000734 seconds +[2018-06-13T07:44:44.366+0000][32376][safepoint ] Application time: 0,0214918 seconds +[2018-06-13T07:44:44.367+0000][32376][gc,start ] GC(23) Pause Young (Allocation Failure) +[2018-06-13T07:44:44.367+0000][32376][gc,task ] GC(23) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:44.382+0000][32376][gc,age ] GC(23) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:44.382+0000][32376][gc,age ] GC(23) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:44.382+0000][32376][gc,age ] GC(23) - age 1: 13197424 bytes, 13197424 total +[2018-06-13T07:44:44.382+0000][32376][gc,age ] GC(23) - age 2: 5481384 bytes, 18678808 total +[2018-06-13T07:44:44.382+0000][32376][gc,age ] GC(23) - age 3: 4759328 bytes, 23438136 total +[2018-06-13T07:44:44.382+0000][32376][gc,heap ] GC(23) ParNew: 312252K->33531K(314560K) +[2018-06-13T07:44:44.382+0000][32376][gc,heap ] GC(23) CMS: 262313K->269147K(699072K) +[2018-06-13T07:44:44.382+0000][32376][gc,metaspace ] GC(23) Metaspace: 83689K->83689K(1128448K) +[2018-06-13T07:44:44.382+0000][32376][gc ] GC(23) Pause Young (Allocation Failure) 561M->295M(989M) 15,304ms +[2018-06-13T07:44:44.382+0000][32376][gc,cpu ] GC(23) User=0,08s Sys=0,00s Real=0,01s +[2018-06-13T07:44:44.382+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0155912 seconds, Stopping threads took: 0,0000423 seconds +[2018-06-13T07:44:44.424+0000][32376][safepoint ] Application time: 0,0418964 seconds +[2018-06-13T07:44:44.425+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010367 seconds, Stopping threads took: 0,0001172 seconds +[2018-06-13T07:44:44.425+0000][32376][safepoint ] Application time: 0,0000529 seconds +[2018-06-13T07:44:44.426+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007473 seconds, Stopping threads took: 0,0000155 seconds +[2018-06-13T07:44:44.426+0000][32376][safepoint ] Application time: 0,0001072 seconds +[2018-06-13T07:44:44.426+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001823 seconds, Stopping threads took: 0,0000863 seconds +[2018-06-13T07:44:44.426+0000][32376][safepoint ] Application time: 0,0000651 seconds +[2018-06-13T07:44:44.427+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007385 seconds, Stopping threads took: 0,0000425 seconds +[2018-06-13T07:44:44.495+0000][32376][safepoint ] Application time: 0,0681710 seconds +[2018-06-13T07:44:44.496+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010544 seconds, Stopping threads took: 0,0000859 seconds +[2018-06-13T07:44:44.683+0000][32376][safepoint ] Application time: 0,1872020 seconds +[2018-06-13T07:44:44.684+0000][32376][gc,start ] GC(24) Pause Young (Allocation Failure) +[2018-06-13T07:44:44.684+0000][32376][gc,task ] GC(24) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:44.700+0000][32376][gc,age ] GC(24) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:44.700+0000][32376][gc,age ] GC(24) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:44.700+0000][32376][gc,age ] GC(24) - age 1: 9167248 bytes, 9167248 total +[2018-06-13T07:44:44.700+0000][32376][gc,age ] GC(24) - age 2: 7342968 bytes, 16510216 total +[2018-06-13T07:44:44.700+0000][32376][gc,heap ] GC(24) ParNew: 313147K->25626K(314560K) +[2018-06-13T07:44:44.700+0000][32376][gc,heap ] GC(24) CMS: 269147K->279225K(699072K) +[2018-06-13T07:44:44.700+0000][32376][gc,metaspace ] GC(24) Metaspace: 83745K->83745K(1128448K) +[2018-06-13T07:44:44.700+0000][32376][gc ] GC(24) Pause Young (Allocation Failure) 568M->297M(989M) 16,479ms +[2018-06-13T07:44:44.701+0000][32376][gc,cpu ] GC(24) User=0,11s Sys=0,00s Real=0,02s +[2018-06-13T07:44:44.701+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0171117 seconds, Stopping threads took: 0,0002606 seconds +[2018-06-13T07:44:45.007+0000][32376][safepoint ] Application time: 0,3062267 seconds +[2018-06-13T07:44:45.007+0000][32376][gc,start ] GC(25) Pause Young (Allocation Failure) +[2018-06-13T07:44:45.007+0000][32376][gc,task ] GC(25) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:45.014+0000][32376][gc,age ] GC(25) Desired survivor size 17891328 bytes, new threshold 3 (max threshold 6) +[2018-06-13T07:44:45.014+0000][32376][gc,age ] GC(25) Age table with threshold 3 (max threshold 6) +[2018-06-13T07:44:45.014+0000][32376][gc,age ] GC(25) - age 1: 11767576 bytes, 11767576 total +[2018-06-13T07:44:45.014+0000][32376][gc,age ] GC(25) - age 2: 2694336 bytes, 14461912 total +[2018-06-13T07:44:45.014+0000][32376][gc,age ] GC(25) - age 3: 6653040 bytes, 21114952 total +[2018-06-13T07:44:45.014+0000][32376][gc,heap ] GC(25) ParNew: 305242K->28866K(314560K) +[2018-06-13T07:44:45.014+0000][32376][gc,heap ] GC(25) CMS: 279225K->279225K(699072K) +[2018-06-13T07:44:45.014+0000][32376][gc,metaspace ] GC(25) Metaspace: 83831K->83831K(1128448K) +[2018-06-13T07:44:45.014+0000][32376][gc ] GC(25) Pause Young (Allocation Failure) 570M->300M(989M) 6,687ms +[2018-06-13T07:44:45.014+0000][32376][gc,cpu ] GC(25) User=0,04s Sys=0,00s Real=0,00s +[2018-06-13T07:44:45.014+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0071336 seconds, Stopping threads took: 0,0001018 seconds +[2018-06-13T07:44:45.191+0000][32376][safepoint ] Application time: 0,1772149 seconds +[2018-06-13T07:44:45.192+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003522 seconds, Stopping threads took: 0,0001054 seconds +[2018-06-13T07:44:45.250+0000][32376][safepoint ] Application time: 0,0584510 seconds +[2018-06-13T07:44:45.250+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002237 seconds, Stopping threads took: 0,0000505 seconds +[2018-06-13T07:44:45.251+0000][32376][safepoint ] Application time: 0,0004241 seconds +[2018-06-13T07:44:45.251+0000][32376][gc,start ] GC(26) Pause Young (GCLocker Initiated GC) +[2018-06-13T07:44:45.251+0000][32376][gc,task ] GC(26) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:45.259+0000][32376][gc,age ] GC(26) Desired survivor size 17891328 bytes, new threshold 3 (max threshold 6) +[2018-06-13T07:44:45.259+0000][32376][gc,age ] GC(26) Age table with threshold 3 (max threshold 6) +[2018-06-13T07:44:45.259+0000][32376][gc,age ] GC(26) - age 1: 11779168 bytes, 11779168 total +[2018-06-13T07:44:45.259+0000][32376][gc,age ] GC(26) - age 2: 4989736 bytes, 16768904 total +[2018-06-13T07:44:45.259+0000][32376][gc,age ] GC(26) - age 3: 2501080 bytes, 19269984 total +[2018-06-13T07:44:45.259+0000][32376][gc,heap ] GC(26) ParNew: 308517K->29647K(314560K) +[2018-06-13T07:44:45.259+0000][32376][gc,heap ] GC(26) CMS: 279225K->285703K(699072K) +[2018-06-13T07:44:45.259+0000][32376][gc,metaspace ] GC(26) Metaspace: 83885K->83885K(1128448K) +[2018-06-13T07:44:45.259+0000][32376][gc ] GC(26) Pause Young (GCLocker Initiated GC) 573M->307M(989M) 8,178ms +[2018-06-13T07:44:45.259+0000][32376][gc,cpu ] GC(26) User=0,05s Sys=0,00s Real=0,01s +[2018-06-13T07:44:45.259+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0085146 seconds, Stopping threads took: 0,0000665 seconds +[2018-06-13T07:44:45.323+0000][32376][safepoint ] Application time: 0,0638348 seconds +[2018-06-13T07:44:45.323+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002791 seconds, Stopping threads took: 0,0001080 seconds +[2018-06-13T07:44:45.403+0000][32376][safepoint ] Application time: 0,0795364 seconds +[2018-06-13T07:44:45.403+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002741 seconds, Stopping threads took: 0,0000860 seconds +[2018-06-13T07:44:45.472+0000][32376][safepoint ] Application time: 0,0686818 seconds +[2018-06-13T07:44:45.472+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002904 seconds, Stopping threads took: 0,0000620 seconds +[2018-06-13T07:44:45.479+0000][32376][safepoint ] Application time: 0,0069709 seconds +[2018-06-13T07:44:45.480+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003008 seconds, Stopping threads took: 0,0000907 seconds +[2018-06-13T07:44:45.511+0000][32376][safepoint ] Application time: 0,0309606 seconds +[2018-06-13T07:44:45.511+0000][32376][gc,start ] GC(27) Pause Young (Allocation Failure) +[2018-06-13T07:44:45.511+0000][32376][gc,task ] GC(27) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:45.523+0000][32376][gc,age ] GC(27) Desired survivor size 17891328 bytes, new threshold 3 (max threshold 6) +[2018-06-13T07:44:45.523+0000][32376][gc,age ] GC(27) Age table with threshold 3 (max threshold 6) +[2018-06-13T07:44:45.523+0000][32376][gc,age ] GC(27) - age 1: 7890656 bytes, 7890656 total +[2018-06-13T07:44:45.523+0000][32376][gc,age ] GC(27) - age 2: 8709528 bytes, 16600184 total +[2018-06-13T07:44:45.523+0000][32376][gc,age ] GC(27) - age 3: 4325624 bytes, 20925808 total +[2018-06-13T07:44:45.523+0000][32376][gc,heap ] GC(27) ParNew: 309263K->30817K(314560K) +[2018-06-13T07:44:45.523+0000][32376][gc,heap ] GC(27) CMS: 285703K->288159K(699072K) +[2018-06-13T07:44:45.523+0000][32376][gc,metaspace ] GC(27) Metaspace: 83961K->83961K(1128448K) +[2018-06-13T07:44:45.523+0000][32376][gc ] GC(27) Pause Young (Allocation Failure) 581M->311M(989M) 12,209ms +[2018-06-13T07:44:45.523+0000][32376][gc,cpu ] GC(27) User=0,07s Sys=0,00s Real=0,01s +[2018-06-13T07:44:45.523+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0126902 seconds, Stopping threads took: 0,0001336 seconds +[2018-06-13T07:44:45.555+0000][32376][safepoint ] Application time: 0,0311736 seconds +[2018-06-13T07:44:45.555+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003442 seconds, Stopping threads took: 0,0000907 seconds +[2018-06-13T07:44:45.625+0000][32376][safepoint ] Application time: 0,0696378 seconds +[2018-06-13T07:44:45.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002713 seconds, Stopping threads took: 0,0000728 seconds +[2018-06-13T07:44:45.629+0000][32376][safepoint ] Application time: 0,0042673 seconds +[2018-06-13T07:44:45.630+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003186 seconds, Stopping threads took: 0,0000829 seconds +[2018-06-13T07:44:45.718+0000][32376][safepoint ] Application time: 0,0883112 seconds +[2018-06-13T07:44:45.718+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002888 seconds, Stopping threads took: 0,0000969 seconds +[2018-06-13T07:44:45.788+0000][32376][safepoint ] Application time: 0,0698665 seconds +[2018-06-13T07:44:45.788+0000][32376][gc,start ] GC(28) Pause Young (Allocation Failure) +[2018-06-13T07:44:45.788+0000][32376][gc,task ] GC(28) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:45.797+0000][32376][gc,age ] GC(28) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:45.797+0000][32376][gc,age ] GC(28) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:45.797+0000][32376][gc,age ] GC(28) - age 1: 10391616 bytes, 10391616 total +[2018-06-13T07:44:45.797+0000][32376][gc,age ] GC(28) - age 2: 7537344 bytes, 17928960 total +[2018-06-13T07:44:45.797+0000][32376][gc,age ] GC(28) - age 3: 4109992 bytes, 22038952 total +[2018-06-13T07:44:45.797+0000][32376][gc,heap ] GC(28) ParNew: 310433K->32357K(314560K) +[2018-06-13T07:44:45.797+0000][32376][gc,heap ] GC(28) CMS: 288159K->291652K(699072K) +[2018-06-13T07:44:45.797+0000][32376][gc,metaspace ] GC(28) Metaspace: 84027K->84027K(1128448K) +[2018-06-13T07:44:45.797+0000][32376][gc ] GC(28) Pause Young (Allocation Failure) 584M->316M(989M) 8,372ms +[2018-06-13T07:44:45.797+0000][32376][gc,cpu ] GC(28) User=0,06s Sys=0,00s Real=0,01s +[2018-06-13T07:44:45.797+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0087248 seconds, Stopping threads took: 0,0000887 seconds +[2018-06-13T07:44:45.797+0000][32376][safepoint ] Application time: 0,0002307 seconds +[2018-06-13T07:44:45.797+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002567 seconds, Stopping threads took: 0,0000904 seconds +[2018-06-13T07:44:45.808+0000][32376][safepoint ] Application time: 0,0103449 seconds +[2018-06-13T07:44:45.808+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002441 seconds, Stopping threads took: 0,0000940 seconds +[2018-06-13T07:44:45.894+0000][32376][safepoint ] Application time: 0,0862834 seconds +[2018-06-13T07:44:45.895+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003716 seconds, Stopping threads took: 0,0000773 seconds +[2018-06-13T07:44:45.966+0000][32376][safepoint ] Application time: 0,0707952 seconds +[2018-06-13T07:44:45.966+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002565 seconds, Stopping threads took: 0,0001014 seconds +[2018-06-13T07:44:46.017+0000][32376][safepoint ] Application time: 0,0509730 seconds +[2018-06-13T07:44:46.017+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003775 seconds, Stopping threads took: 0,0000947 seconds +[2018-06-13T07:44:46.049+0000][32376][safepoint ] Application time: 0,0314867 seconds +[2018-06-13T07:44:46.049+0000][32376][gc,start ] GC(29) Pause Young (Allocation Failure) +[2018-06-13T07:44:46.049+0000][32376][gc,task ] GC(29) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:46.059+0000][32376][gc,age ] GC(29) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:46.059+0000][32376][gc,age ] GC(29) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:46.059+0000][32376][gc,age ] GC(29) - age 1: 12872184 bytes, 12872184 total +[2018-06-13T07:44:46.059+0000][32376][gc,age ] GC(29) - age 2: 5974704 bytes, 18846888 total +[2018-06-13T07:44:46.059+0000][32376][gc,heap ] GC(29) ParNew: 311973K->31666K(314560K) +[2018-06-13T07:44:46.059+0000][32376][gc,heap ] GC(29) CMS: 291652K->299411K(699072K) +[2018-06-13T07:44:46.059+0000][32376][gc,metaspace ] GC(29) Metaspace: 84066K->84066K(1130496K) +[2018-06-13T07:44:46.059+0000][32376][gc ] GC(29) Pause Young (Allocation Failure) 589M->323M(989M) 9,914ms +[2018-06-13T07:44:46.059+0000][32376][gc,cpu ] GC(29) User=0,07s Sys=0,00s Real=0,01s +[2018-06-13T07:44:46.059+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0102825 seconds, Stopping threads took: 0,0001263 seconds +[2018-06-13T07:44:46.083+0000][32376][safepoint ] Application time: 0,0238568 seconds +[2018-06-13T07:44:46.087+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0038820 seconds, Stopping threads took: 0,0036992 seconds +[2018-06-13T07:44:46.146+0000][32376][safepoint ] Application time: 0,0594319 seconds +[2018-06-13T07:44:46.151+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0042016 seconds, Stopping threads took: 0,0037249 seconds +[2018-06-13T07:44:46.194+0000][32376][safepoint ] Application time: 0,0433613 seconds +[2018-06-13T07:44:46.194+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004501 seconds, Stopping threads took: 0,0001826 seconds +[2018-06-13T07:44:46.215+0000][32376][safepoint ] Application time: 0,0205648 seconds +[2018-06-13T07:44:46.215+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003300 seconds, Stopping threads took: 0,0000988 seconds +[2018-06-13T07:44:46.278+0000][32376][safepoint ] Application time: 0,0630424 seconds +[2018-06-13T07:44:46.279+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003887 seconds, Stopping threads took: 0,0001044 seconds +[2018-06-13T07:44:46.287+0000][32376][safepoint ] Application time: 0,0081651 seconds +[2018-06-13T07:44:46.289+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0019602 seconds, Stopping threads took: 0,0006998 seconds +[2018-06-13T07:44:46.295+0000][32376][safepoint ] Application time: 0,0062221 seconds +[2018-06-13T07:44:46.296+0000][32376][gc,start ] GC(30) Pause Young (Allocation Failure) +[2018-06-13T07:44:46.296+0000][32376][gc,task ] GC(30) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:46.314+0000][32376][gc,age ] GC(30) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:46.314+0000][32376][gc,age ] GC(30) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:46.314+0000][32376][gc,age ] GC(30) - age 1: 10208264 bytes, 10208264 total +[2018-06-13T07:44:46.314+0000][32376][gc,age ] GC(30) - age 2: 9225496 bytes, 19433760 total +[2018-06-13T07:44:46.314+0000][32376][gc,heap ] GC(30) ParNew: 311282K->27377K(314560K) +[2018-06-13T07:44:46.314+0000][32376][gc,heap ] GC(30) CMS: 299411K->304295K(699072K) +[2018-06-13T07:44:46.314+0000][32376][gc,metaspace ] GC(30) Metaspace: 84114K->84114K(1130496K) +[2018-06-13T07:44:46.314+0000][32376][gc ] GC(30) Pause Young (Allocation Failure) 596M->323M(989M) 18,146ms +[2018-06-13T07:44:46.314+0000][32376][gc,cpu ] GC(30) User=0,12s Sys=0,00s Real=0,01s +[2018-06-13T07:44:46.314+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0185263 seconds, Stopping threads took: 0,0000644 seconds +[2018-06-13T07:44:46.314+0000][32376][safepoint ] Application time: 0,0002010 seconds +[2018-06-13T07:44:46.314+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003011 seconds, Stopping threads took: 0,0001319 seconds +[2018-06-13T07:44:46.367+0000][32376][safepoint ] Application time: 0,0521206 seconds +[2018-06-13T07:44:46.367+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005338 seconds, Stopping threads took: 0,0002243 seconds +[2018-06-13T07:44:46.460+0000][32376][safepoint ] Application time: 0,0927454 seconds +[2018-06-13T07:44:46.460+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003796 seconds, Stopping threads took: 0,0001165 seconds +[2018-06-13T07:44:46.531+0000][32376][safepoint ] Application time: 0,0708270 seconds +[2018-06-13T07:44:46.531+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002211 seconds, Stopping threads took: 0,0000553 seconds +[2018-06-13T07:44:46.544+0000][32376][safepoint ] Application time: 0,0127768 seconds +[2018-06-13T07:44:46.545+0000][32376][gc,start ] GC(31) Pause Young (Allocation Failure) +[2018-06-13T07:44:46.545+0000][32376][gc,task ] GC(31) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:46.556+0000][32376][gc,age ] GC(31) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:46.556+0000][32376][gc,age ] GC(31) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:46.556+0000][32376][gc,age ] GC(31) - age 1: 6636040 bytes, 6636040 total +[2018-06-13T07:44:46.556+0000][32376][gc,age ] GC(31) - age 2: 9869528 bytes, 16505568 total +[2018-06-13T07:44:46.556+0000][32376][gc,heap ] GC(31) ParNew: 306993K->23768K(314560K) +[2018-06-13T07:44:46.556+0000][32376][gc,heap ] GC(31) CMS: 304295K->312231K(699072K) +[2018-06-13T07:44:46.556+0000][32376][gc,metaspace ] GC(31) Metaspace: 84141K->84141K(1130496K) +[2018-06-13T07:44:46.556+0000][32376][gc ] GC(31) Pause Young (Allocation Failure) 596M->328M(989M) 11,428ms +[2018-06-13T07:44:46.556+0000][32376][gc,cpu ] GC(31) User=0,08s Sys=0,00s Real=0,02s +[2018-06-13T07:44:46.556+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0118513 seconds, Stopping threads took: 0,0001177 seconds +[2018-06-13T07:44:46.743+0000][32376][safepoint ] Application time: 0,1873099 seconds +[2018-06-13T07:44:46.746+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020356 seconds, Stopping threads took: 0,0001061 seconds +[2018-06-13T07:44:46.788+0000][32376][safepoint ] Application time: 0,0422852 seconds +[2018-06-13T07:44:46.788+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003817 seconds, Stopping threads took: 0,0001505 seconds +[2018-06-13T07:44:46.789+0000][32376][safepoint ] Application time: 0,0003988 seconds +[2018-06-13T07:44:46.789+0000][32376][gc,start ] GC(32) Pause Young (GCLocker Initiated GC) +[2018-06-13T07:44:46.789+0000][32376][gc,task ] GC(32) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:46.797+0000][32376][gc,age ] GC(32) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:46.797+0000][32376][gc,age ] GC(32) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:46.797+0000][32376][gc,age ] GC(32) - age 1: 13613392 bytes, 13613392 total +[2018-06-13T07:44:46.797+0000][32376][gc,age ] GC(32) - age 2: 6285832 bytes, 19899224 total +[2018-06-13T07:44:46.797+0000][32376][gc,age ] GC(32) - age 3: 5083488 bytes, 24982712 total +[2018-06-13T07:44:46.797+0000][32376][gc,heap ] GC(32) ParNew: 303424K->34944K(314560K) +[2018-06-13T07:44:46.797+0000][32376][gc,heap ] GC(32) CMS: 312231K->312261K(699072K) +[2018-06-13T07:44:46.797+0000][32376][gc,metaspace ] GC(32) Metaspace: 84169K->84169K(1130496K) +[2018-06-13T07:44:46.797+0000][32376][gc ] GC(32) Pause Young (GCLocker Initiated GC) 601M->339M(989M) 8,549ms +[2018-06-13T07:44:46.798+0000][32376][gc,cpu ] GC(32) User=0,06s Sys=0,00s Real=0,01s +[2018-06-13T07:44:46.798+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0088737 seconds, Stopping threads took: 0,0000891 seconds +[2018-06-13T07:44:46.847+0000][32376][safepoint ] Application time: 0,0495881 seconds +[2018-06-13T07:44:46.848+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004365 seconds, Stopping threads took: 0,0001699 seconds +[2018-06-13T07:44:46.848+0000][32376][safepoint ] Application time: 0,0000490 seconds +[2018-06-13T07:44:46.848+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002446 seconds, Stopping threads took: 0,0000956 seconds +[2018-06-13T07:44:46.848+0000][32376][safepoint ] Application time: 0,0000434 seconds +[2018-06-13T07:44:46.848+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002029 seconds, Stopping threads took: 0,0000858 seconds +[2018-06-13T07:44:46.848+0000][32376][safepoint ] Application time: 0,0000202 seconds +[2018-06-13T07:44:46.848+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000968 seconds, Stopping threads took: 0,0000107 seconds +[2018-06-13T07:44:46.849+0000][32376][safepoint ] Application time: 0,0003942 seconds +[2018-06-13T07:44:46.849+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002593 seconds, Stopping threads took: 0,0001226 seconds +[2018-06-13T07:44:46.849+0000][32376][safepoint ] Application time: 0,0000241 seconds +[2018-06-13T07:44:46.849+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001577 seconds, Stopping threads took: 0,0000450 seconds +[2018-06-13T07:44:46.849+0000][32376][safepoint ] Application time: 0,0000180 seconds +[2018-06-13T07:44:46.849+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001536 seconds, Stopping threads took: 0,0000415 seconds +[2018-06-13T07:44:46.849+0000][32376][safepoint ] Application time: 0,0000234 seconds +[2018-06-13T07:44:46.850+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001246 seconds, Stopping threads took: 0,0000328 seconds +[2018-06-13T07:44:46.850+0000][32376][safepoint ] Application time: 0,0000172 seconds +[2018-06-13T07:44:46.850+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001111 seconds, Stopping threads took: 0,0000263 seconds +[2018-06-13T07:44:46.850+0000][32376][safepoint ] Application time: 0,0000170 seconds +[2018-06-13T07:44:46.850+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001398 seconds, Stopping threads took: 0,0000389 seconds +[2018-06-13T07:44:46.893+0000][32376][safepoint ] Application time: 0,0432553 seconds +[2018-06-13T07:44:46.894+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004389 seconds, Stopping threads took: 0,0001205 seconds +[2018-06-13T07:44:46.999+0000][32376][safepoint ] Application time: 0,1057561 seconds +[2018-06-13T07:44:47.000+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004475 seconds, Stopping threads took: 0,0002541 seconds +[2018-06-13T07:44:47.000+0000][32376][safepoint ] Application time: 0,0002206 seconds +[2018-06-13T07:44:47.002+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0022775 seconds, Stopping threads took: 0,0020850 seconds +[2018-06-13T07:44:47.003+0000][32376][safepoint ] Application time: 0,0006616 seconds +[2018-06-13T07:44:47.003+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002921 seconds, Stopping threads took: 0,0000772 seconds +[2018-06-13T07:44:47.006+0000][32376][safepoint ] Application time: 0,0019912 seconds +[2018-06-13T07:44:47.006+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003307 seconds, Stopping threads took: 0,0000523 seconds +[2018-06-13T07:44:47.008+0000][32376][safepoint ] Application time: 0,0022915 seconds +[2018-06-13T07:44:47.009+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003192 seconds, Stopping threads took: 0,0000761 seconds +[2018-06-13T07:44:47.019+0000][32376][safepoint ] Application time: 0,0105730 seconds +[2018-06-13T07:44:47.019+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002758 seconds, Stopping threads took: 0,0000768 seconds +[2018-06-13T07:44:47.021+0000][32376][safepoint ] Application time: 0,0010723 seconds +[2018-06-13T07:44:47.021+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002826 seconds, Stopping threads took: 0,0001023 seconds +[2018-06-13T07:44:47.047+0000][32376][safepoint ] Application time: 0,0257997 seconds +[2018-06-13T07:44:47.047+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003442 seconds, Stopping threads took: 0,0001584 seconds +[2018-06-13T07:44:47.050+0000][32376][safepoint ] Application time: 0,0031223 seconds +[2018-06-13T07:44:47.053+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0025848 seconds, Stopping threads took: 0,0023752 seconds +[2018-06-13T07:44:47.085+0000][32376][safepoint ] Application time: 0,0323587 seconds +[2018-06-13T07:44:47.086+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004879 seconds, Stopping threads took: 0,0001370 seconds +[2018-06-13T07:44:47.093+0000][32376][safepoint ] Application time: 0,0071486 seconds +[2018-06-13T07:44:47.095+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0018516 seconds, Stopping threads took: 0,0000878 seconds +[2018-06-13T07:44:47.096+0000][32376][safepoint ] Application time: 0,0016211 seconds +[2018-06-13T07:44:47.097+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005694 seconds, Stopping threads took: 0,0004006 seconds +[2018-06-13T07:44:47.118+0000][32376][safepoint ] Application time: 0,0204597 seconds +[2018-06-13T07:44:47.118+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003046 seconds, Stopping threads took: 0,0001080 seconds +[2018-06-13T07:44:47.150+0000][32376][safepoint ] Application time: 0,0317200 seconds +[2018-06-13T07:44:47.150+0000][32376][gc,start ] GC(33) Pause Young (Allocation Failure) +[2018-06-13T07:44:47.150+0000][32376][gc,task ] GC(33) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:47.167+0000][32376][gc,age ] GC(33) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:47.167+0000][32376][gc,age ] GC(33) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:47.167+0000][32376][gc,age ] GC(33) - age 1: 10599856 bytes, 10599856 total +[2018-06-13T07:44:47.167+0000][32376][gc,age ] GC(33) - age 2: 12968696 bytes, 23568552 total +[2018-06-13T07:44:47.167+0000][32376][gc,heap ] GC(33) ParNew: 314560K->34944K(314560K) +[2018-06-13T07:44:47.167+0000][32376][gc,heap ] GC(33) CMS: 312261K->326037K(699072K) +[2018-06-13T07:44:47.167+0000][32376][gc,metaspace ] GC(33) Metaspace: 85066K->85066K(1130496K) +[2018-06-13T07:44:47.167+0000][32376][gc ] GC(33) Pause Young (Allocation Failure) 612M->352M(989M) 16,795ms +[2018-06-13T07:44:47.167+0000][32376][gc,cpu ] GC(33) User=0,11s Sys=0,00s Real=0,02s +[2018-06-13T07:44:47.167+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0172986 seconds, Stopping threads took: 0,0001569 seconds +[2018-06-13T07:44:47.180+0000][32376][safepoint ] Application time: 0,0130505 seconds +[2018-06-13T07:44:47.180+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003403 seconds, Stopping threads took: 0,0001760 seconds +[2018-06-13T07:44:47.181+0000][32376][safepoint ] Application time: 0,0007040 seconds +[2018-06-13T07:44:47.181+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002985 seconds, Stopping threads took: 0,0001192 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Application time: 0,0000576 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002538 seconds, Stopping threads took: 0,0000970 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Application time: 0,0000250 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001344 seconds, Stopping threads took: 0,0000262 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Application time: 0,0000187 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001227 seconds, Stopping threads took: 0,0000183 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Application time: 0,0000212 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001027 seconds, Stopping threads took: 0,0000141 seconds +[2018-06-13T07:44:47.182+0000][32376][safepoint ] Application time: 0,0000719 seconds +[2018-06-13T07:44:47.183+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002447 seconds, Stopping threads took: 0,0000556 seconds +[2018-06-13T07:44:47.183+0000][32376][safepoint ] Application time: 0,0000282 seconds +[2018-06-13T07:44:47.184+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010365 seconds, Stopping threads took: 0,0000432 seconds +[2018-06-13T07:44:47.188+0000][32376][safepoint ] Application time: 0,0047533 seconds +[2018-06-13T07:44:47.189+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003387 seconds, Stopping threads took: 0,0001258 seconds +[2018-06-13T07:44:47.189+0000][32376][safepoint ] Application time: 0,0002742 seconds +[2018-06-13T07:44:47.189+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002654 seconds, Stopping threads took: 0,0001264 seconds +[2018-06-13T07:44:47.189+0000][32376][safepoint ] Application time: 0,0000354 seconds +[2018-06-13T07:44:47.190+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002655 seconds, Stopping threads took: 0,0000992 seconds +[2018-06-13T07:44:47.190+0000][32376][safepoint ] Application time: 0,0003817 seconds +[2018-06-13T07:44:47.190+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001811 seconds, Stopping threads took: 0,0000380 seconds +[2018-06-13T07:44:47.197+0000][32376][safepoint ] Application time: 0,0067821 seconds +[2018-06-13T07:44:47.197+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002799 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-13T07:44:47.201+0000][32376][safepoint ] Application time: 0,0037788 seconds +[2018-06-13T07:44:47.202+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002733 seconds, Stopping threads took: 0,0000844 seconds +[2018-06-13T07:44:47.202+0000][32376][safepoint ] Application time: 0,0000287 seconds +[2018-06-13T07:44:47.202+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002573 seconds, Stopping threads took: 0,0000431 seconds +[2018-06-13T07:44:47.202+0000][32376][safepoint ] Application time: 0,0001674 seconds +[2018-06-13T07:44:47.202+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002439 seconds, Stopping threads took: 0,0000480 seconds +[2018-06-13T07:44:47.203+0000][32376][safepoint ] Application time: 0,0006750 seconds +[2018-06-13T07:44:47.203+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002596 seconds, Stopping threads took: 0,0000812 seconds +[2018-06-13T07:44:47.204+0000][32376][safepoint ] Application time: 0,0003291 seconds +[2018-06-13T07:44:47.204+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002249 seconds, Stopping threads took: 0,0000607 seconds +[2018-06-13T07:44:47.204+0000][32376][safepoint ] Application time: 0,0001052 seconds +[2018-06-13T07:44:47.204+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001881 seconds, Stopping threads took: 0,0000519 seconds +[2018-06-13T07:44:47.204+0000][32376][safepoint ] Application time: 0,0000326 seconds +[2018-06-13T07:44:47.204+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001626 seconds, Stopping threads took: 0,0000335 seconds +[2018-06-13T07:44:47.205+0000][32376][safepoint ] Application time: 0,0001055 seconds +[2018-06-13T07:44:47.205+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002199 seconds, Stopping threads took: 0,0000472 seconds +[2018-06-13T07:44:47.208+0000][32376][safepoint ] Application time: 0,0029395 seconds +[2018-06-13T07:44:47.208+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002793 seconds, Stopping threads took: 0,0000881 seconds +[2018-06-13T07:44:47.208+0000][32376][safepoint ] Application time: 0,0002530 seconds +[2018-06-13T07:44:47.209+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001962 seconds, Stopping threads took: 0,0000352 seconds +[2018-06-13T07:44:47.209+0000][32376][safepoint ] Application time: 0,0004014 seconds +[2018-06-13T07:44:47.209+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002600 seconds, Stopping threads took: 0,0000727 seconds +[2018-06-13T07:44:47.210+0000][32376][safepoint ] Application time: 0,0012679 seconds +[2018-06-13T07:44:47.211+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002979 seconds, Stopping threads took: 0,0001128 seconds +[2018-06-13T07:44:47.211+0000][32376][safepoint ] Application time: 0,0001023 seconds +[2018-06-13T07:44:47.211+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002541 seconds, Stopping threads took: 0,0000598 seconds +[2018-06-13T07:44:47.211+0000][32376][safepoint ] Application time: 0,0000378 seconds +[2018-06-13T07:44:47.211+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002121 seconds, Stopping threads took: 0,0000441 seconds +[2018-06-13T07:44:47.212+0000][32376][safepoint ] Application time: 0,0000400 seconds +[2018-06-13T07:44:47.212+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001654 seconds, Stopping threads took: 0,0000436 seconds +[2018-06-13T07:44:47.212+0000][32376][safepoint ] Application time: 0,0004847 seconds +[2018-06-13T07:44:47.212+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001981 seconds, Stopping threads took: 0,0000428 seconds +[2018-06-13T07:44:47.213+0000][32376][safepoint ] Application time: 0,0010482 seconds +[2018-06-13T07:44:47.214+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004096 seconds, Stopping threads took: 0,0002037 seconds +[2018-06-13T07:44:47.214+0000][32376][safepoint ] Application time: 0,0001224 seconds +[2018-06-13T07:44:47.214+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002130 seconds, Stopping threads took: 0,0000524 seconds +[2018-06-13T07:44:47.214+0000][32376][safepoint ] Application time: 0,0000468 seconds +[2018-06-13T07:44:47.214+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001341 seconds, Stopping threads took: 0,0000266 seconds +[2018-06-13T07:44:47.217+0000][32376][safepoint ] Application time: 0,0028174 seconds +[2018-06-13T07:44:47.219+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014849 seconds, Stopping threads took: 0,0012712 seconds +[2018-06-13T07:44:47.220+0000][32376][safepoint ] Application time: 0,0013968 seconds +[2018-06-13T07:44:47.221+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002410 seconds, Stopping threads took: 0,0000674 seconds +[2018-06-13T07:44:47.221+0000][32376][safepoint ] Application time: 0,0006384 seconds +[2018-06-13T07:44:47.222+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003029 seconds, Stopping threads took: 0,0000740 seconds +[2018-06-13T07:44:47.223+0000][32376][safepoint ] Application time: 0,0012830 seconds +[2018-06-13T07:44:47.223+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002892 seconds, Stopping threads took: 0,0000712 seconds +[2018-06-13T07:44:47.223+0000][32376][safepoint ] Application time: 0,0001062 seconds +[2018-06-13T07:44:47.223+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001928 seconds, Stopping threads took: 0,0000529 seconds +[2018-06-13T07:44:47.233+0000][32376][safepoint ] Application time: 0,0092243 seconds +[2018-06-13T07:44:47.233+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002631 seconds, Stopping threads took: 0,0000934 seconds +[2018-06-13T07:44:47.233+0000][32376][safepoint ] Application time: 0,0000384 seconds +[2018-06-13T07:44:47.233+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001763 seconds, Stopping threads took: 0,0000482 seconds +[2018-06-13T07:44:47.237+0000][32376][safepoint ] Application time: 0,0040277 seconds +[2018-06-13T07:44:47.238+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003411 seconds, Stopping threads took: 0,0000978 seconds +[2018-06-13T07:44:47.238+0000][32376][safepoint ] Application time: 0,0000453 seconds +[2018-06-13T07:44:47.238+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002241 seconds, Stopping threads took: 0,0000348 seconds +[2018-06-13T07:44:47.240+0000][32376][safepoint ] Application time: 0,0020291 seconds +[2018-06-13T07:44:47.240+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003167 seconds, Stopping threads took: 0,0000776 seconds +[2018-06-13T07:44:47.241+0000][32376][safepoint ] Application time: 0,0004636 seconds +[2018-06-13T07:44:47.241+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002513 seconds, Stopping threads took: 0,0000394 seconds +[2018-06-13T07:44:47.255+0000][32376][safepoint ] Application time: 0,0140207 seconds +[2018-06-13T07:44:47.256+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005233 seconds, Stopping threads took: 0,0002170 seconds +[2018-06-13T07:44:47.256+0000][32376][safepoint ] Application time: 0,0004639 seconds +[2018-06-13T07:44:47.259+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0026097 seconds, Stopping threads took: 0,0024202 seconds +[2018-06-13T07:44:47.284+0000][32376][safepoint ] Application time: 0,0253001 seconds +[2018-06-13T07:44:47.289+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0053163 seconds, Stopping threads took: 0,0050962 seconds +[2018-06-13T07:44:47.336+0000][32376][safepoint ] Application time: 0,0461759 seconds +[2018-06-13T07:44:47.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003218 seconds, Stopping threads took: 0,0000853 seconds +[2018-06-13T07:44:47.336+0000][32376][safepoint ] Application time: 0,0000914 seconds +[2018-06-13T07:44:47.336+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002226 seconds, Stopping threads took: 0,0000635 seconds +[2018-06-13T07:44:47.642+0000][32376][safepoint ] Application time: 0,3057946 seconds +[2018-06-13T07:44:47.643+0000][32376][gc,start ] GC(34) Pause Young (Allocation Failure) +[2018-06-13T07:44:47.643+0000][32376][gc,task ] GC(34) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:47.652+0000][32376][gc,age ] GC(34) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:47.652+0000][32376][gc,age ] GC(34) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:47.652+0000][32376][gc,age ] GC(34) - age 1: 14766888 bytes, 14766888 total +[2018-06-13T07:44:47.652+0000][32376][gc,age ] GC(34) - age 2: 9379024 bytes, 24145912 total +[2018-06-13T07:44:47.652+0000][32376][gc,heap ] GC(34) ParNew: 314560K->34944K(314560K) +[2018-06-13T07:44:47.652+0000][32376][gc,heap ] GC(34) CMS: 326037K->328914K(699072K) +[2018-06-13T07:44:47.652+0000][32376][gc,metaspace ] GC(34) Metaspace: 85397K->85397K(1130496K) +[2018-06-13T07:44:47.652+0000][32376][gc ] GC(34) Pause Young (Allocation Failure) 625M->355M(989M) 9,687ms +[2018-06-13T07:44:47.652+0000][32376][gc,cpu ] GC(34) User=0,07s Sys=0,00s Real=0,01s +[2018-06-13T07:44:47.652+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0100643 seconds, Stopping threads took: 0,0000821 seconds +[2018-06-13T07:44:47.853+0000][32376][safepoint ] Application time: 0,2005306 seconds +[2018-06-13T07:44:47.854+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013395 seconds, Stopping threads took: 0,0010823 seconds +[2018-06-13T07:44:47.855+0000][32376][safepoint ] Application time: 0,0006236 seconds +[2018-06-13T07:44:47.857+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0021220 seconds, Stopping threads took: 0,0018810 seconds +[2018-06-13T07:44:47.866+0000][32376][safepoint ] Application time: 0,0087816 seconds +[2018-06-13T07:44:47.866+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004089 seconds, Stopping threads took: 0,0001543 seconds +[2018-06-13T07:44:47.870+0000][32376][safepoint ] Application time: 0,0034790 seconds +[2018-06-13T07:44:47.870+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002499 seconds, Stopping threads took: 0,0000649 seconds +[2018-06-13T07:44:47.953+0000][32376][safepoint ] Application time: 0,0833806 seconds +[2018-06-13T07:44:47.954+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002906 seconds, Stopping threads took: 0,0000542 seconds +[2018-06-13T07:44:47.954+0000][32376][safepoint ] Application time: 0,0002987 seconds +[2018-06-13T07:44:47.954+0000][32376][gc,start ] GC(35) Pause Young (GCLocker Initiated GC) +[2018-06-13T07:44:47.954+0000][32376][gc,task ] GC(35) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:47.963+0000][32376][gc,age ] GC(35) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:47.963+0000][32376][gc,age ] GC(35) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:47.963+0000][32376][gc,age ] GC(35) - age 1: 12121568 bytes, 12121568 total +[2018-06-13T07:44:47.963+0000][32376][gc,age ] GC(35) - age 2: 5324264 bytes, 17445832 total +[2018-06-13T07:44:47.963+0000][32376][gc,heap ] GC(35) ParNew: 314560K->34944K(314560K) +[2018-06-13T07:44:47.963+0000][32376][gc,heap ] GC(35) CMS: 328928K->335747K(699072K) +[2018-06-13T07:44:47.963+0000][32376][gc,metaspace ] GC(35) Metaspace: 85403K->85403K(1130496K) +[2018-06-13T07:44:47.964+0000][32376][gc ] GC(35) Pause Young (GCLocker Initiated GC) 628M->362M(989M) 9,161ms +[2018-06-13T07:44:47.964+0000][32376][gc,cpu ] GC(35) User=0,07s Sys=0,00s Real=0,01s +[2018-06-13T07:44:47.964+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0094938 seconds, Stopping threads took: 0,0000251 seconds +[2018-06-13T07:44:48.307+0000][32376][safepoint ] Application time: 0,3431139 seconds +[2018-06-13T07:44:48.307+0000][32376][gc,start ] GC(36) Pause Young (Allocation Failure) +[2018-06-13T07:44:48.307+0000][32376][gc,task ] GC(36) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:48.313+0000][32376][gc,age ] GC(36) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:48.313+0000][32376][gc,age ] GC(36) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:48.313+0000][32376][gc,age ] GC(36) - age 1: 7475264 bytes, 7475264 total +[2018-06-13T07:44:48.313+0000][32376][gc,age ] GC(36) - age 2: 12085216 bytes, 19560480 total +[2018-06-13T07:44:48.313+0000][32376][gc,age ] GC(36) - age 3: 3705992 bytes, 23266472 total +[2018-06-13T07:44:48.313+0000][32376][gc,heap ] GC(36) ParNew: 314560K->27697K(314560K) +[2018-06-13T07:44:48.313+0000][32376][gc,heap ] GC(36) CMS: 335747K->335747K(699072K) +[2018-06-13T07:44:48.313+0000][32376][gc,metaspace ] GC(36) Metaspace: 85405K->85405K(1130496K) +[2018-06-13T07:44:48.313+0000][32376][gc ] GC(36) Pause Young (Allocation Failure) 635M->354M(989M) 6,144ms +[2018-06-13T07:44:48.313+0000][32376][gc,cpu ] GC(36) User=0,04s Sys=0,00s Real=0,00s +[2018-06-13T07:44:48.313+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0064514 seconds, Stopping threads took: 0,0000700 seconds +[2018-06-13T07:44:48.615+0000][32376][safepoint ] Application time: 0,3020515 seconds +[2018-06-13T07:44:48.615+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002060 seconds, Stopping threads took: 0,0000444 seconds +[2018-06-13T07:44:48.616+0000][32376][safepoint ] Application time: 0,0000322 seconds +[2018-06-13T07:44:48.616+0000][32376][gc,start ] GC(37) Pause Young (GCLocker Initiated GC) +[2018-06-13T07:44:48.616+0000][32376][gc,task ] GC(37) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:48.623+0000][32376][gc,age ] GC(37) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:48.623+0000][32376][gc,age ] GC(37) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:48.623+0000][32376][gc,age ] GC(37) - age 1: 17303528 bytes, 17303528 total +[2018-06-13T07:44:48.623+0000][32376][gc,age ] GC(37) - age 2: 6214544 bytes, 23518072 total +[2018-06-13T07:44:48.623+0000][32376][gc,heap ] GC(37) ParNew: 307426K->34371K(314560K) +[2018-06-13T07:44:48.623+0000][32376][gc,heap ] GC(37) CMS: 335747K->339806K(699072K) +[2018-06-13T07:44:48.623+0000][32376][gc,metaspace ] GC(37) Metaspace: 85413K->85413K(1130496K) +[2018-06-13T07:44:48.623+0000][32376][gc ] GC(37) Pause Young (GCLocker Initiated GC) 628M->365M(989M) 7,485ms +[2018-06-13T07:44:48.623+0000][32376][gc,cpu ] GC(37) User=0,05s Sys=0,00s Real=0,00s +[2018-06-13T07:44:48.623+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0076930 seconds, Stopping threads took: 0,0000260 seconds +[2018-06-13T07:44:48.954+0000][32376][safepoint ] Application time: 0,3308722 seconds +[2018-06-13T07:44:48.955+0000][32376][gc,start ] GC(38) Pause Young (Allocation Failure) +[2018-06-13T07:44:48.955+0000][32376][gc,task ] GC(38) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:48.960+0000][32376][gc,age ] GC(38) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:48.960+0000][32376][gc,age ] GC(38) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:48.960+0000][32376][gc,age ] GC(38) - age 1: 11546816 bytes, 11546816 total +[2018-06-13T07:44:48.960+0000][32376][gc,age ] GC(38) - age 2: 11198464 bytes, 22745280 total +[2018-06-13T07:44:48.960+0000][32376][gc,heap ] GC(38) ParNew: 313987K->34944K(314560K) +[2018-06-13T07:44:48.960+0000][32376][gc,heap ] GC(38) CMS: 339806K->345466K(699072K) +[2018-06-13T07:44:48.960+0000][32376][gc,metaspace ] GC(38) Metaspace: 85427K->85427K(1130496K) +[2018-06-13T07:44:48.960+0000][32376][gc ] GC(38) Pause Young (Allocation Failure) 638M->371M(989M) 5,924ms +[2018-06-13T07:44:48.960+0000][32376][gc,cpu ] GC(38) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:44:48.961+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0063973 seconds, Stopping threads took: 0,0000888 seconds +[2018-06-13T07:44:49.278+0000][32376][safepoint ] Application time: 0,3176701 seconds +[2018-06-13T07:44:49.279+0000][32376][gc,start ] GC(39) Pause Young (Allocation Failure) +[2018-06-13T07:44:49.279+0000][32376][gc,task ] GC(39) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:49.284+0000][32376][gc,age ] GC(39) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:49.284+0000][32376][gc,age ] GC(39) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:49.284+0000][32376][gc,age ] GC(39) - age 1: 12780448 bytes, 12780448 total +[2018-06-13T07:44:49.284+0000][32376][gc,age ] GC(39) - age 2: 11408192 bytes, 24188640 total +[2018-06-13T07:44:49.284+0000][32376][gc,heap ] GC(39) ParNew: 314560K->34944K(314560K) +[2018-06-13T07:44:49.284+0000][32376][gc,heap ] GC(39) CMS: 345466K->349012K(699072K) +[2018-06-13T07:44:49.284+0000][32376][gc,metaspace ] GC(39) Metaspace: 85428K->85428K(1130496K) +[2018-06-13T07:44:49.284+0000][32376][gc ] GC(39) Pause Young (Allocation Failure) 644M->374M(989M) 5,814ms +[2018-06-13T07:44:49.284+0000][32376][gc,cpu ] GC(39) User=0,03s Sys=0,01s Real=0,00s +[2018-06-13T07:44:49.284+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0062177 seconds, Stopping threads took: 0,0000618 seconds +[2018-06-13T07:44:49.590+0000][32376][safepoint ] Application time: 0,3052823 seconds +[2018-06-13T07:44:49.590+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002676 seconds, Stopping threads took: 0,0000505 seconds +[2018-06-13T07:44:49.590+0000][32376][safepoint ] Application time: 0,0002285 seconds +[2018-06-13T07:44:49.590+0000][32376][gc,start ] GC(40) Pause Young (Allocation Failure) +[2018-06-13T07:44:49.591+0000][32376][gc,task ] GC(40) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:49.598+0000][32376][gc,age ] GC(40) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:49.598+0000][32376][gc,age ] GC(40) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:49.598+0000][32376][gc,age ] GC(40) - age 1: 17286032 bytes, 17286032 total +[2018-06-13T07:44:49.598+0000][32376][gc,age ] GC(40) - age 2: 5775840 bytes, 23061872 total +[2018-06-13T07:44:49.598+0000][32376][gc,heap ] GC(40) ParNew: 314560K->31609K(314560K) +[2018-06-13T07:44:49.598+0000][32376][gc,heap ] GC(40) CMS: 349024K->353709K(699072K) +[2018-06-13T07:44:49.598+0000][32376][gc,metaspace ] GC(40) Metaspace: 85428K->85428K(1130496K) +[2018-06-13T07:44:49.598+0000][32376][gc ] GC(40) Pause Young (Allocation Failure) 648M->376M(989M) 7,502ms +[2018-06-13T07:44:49.598+0000][32376][gc,cpu ] GC(40) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:44:49.598+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0077095 seconds, Stopping threads took: 0,0000203 seconds +[2018-06-13T07:44:49.598+0000][32376][safepoint ] Application time: 0,0001129 seconds +[2018-06-13T07:44:49.598+0000][32376][gc,start ] GC(41) Pause Young (GCLocker Initiated GC) +[2018-06-13T07:44:49.598+0000][32376][gc,task ] GC(41) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:49.605+0000][32376][gc,age ] GC(41) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:49.605+0000][32376][gc,age ] GC(41) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:49.605+0000][32376][gc,age ] GC(41) - age 1: 2880 bytes, 2880 total +[2018-06-13T07:44:49.605+0000][32376][gc,age ] GC(41) - age 2: 17285968 bytes, 17288848 total +[2018-06-13T07:44:49.605+0000][32376][gc,heap ] GC(41) ParNew: 34341K->31127K(314560K) +[2018-06-13T07:44:49.605+0000][32376][gc,heap ] GC(41) CMS: 353709K->359352K(699072K) +[2018-06-13T07:44:49.605+0000][32376][gc,metaspace ] GC(41) Metaspace: 85428K->85428K(1130496K) +[2018-06-13T07:44:49.605+0000][32376][gc ] GC(41) Pause Young (GCLocker Initiated GC) 378M->381M(989M) 6,337ms +[2018-06-13T07:44:49.605+0000][32376][gc,cpu ] GC(41) User=0,04s Sys=0,00s Real=0,00s +[2018-06-13T07:44:49.605+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0066883 seconds, Stopping threads took: 0,0001174 seconds +[2018-06-13T07:44:49.896+0000][32376][safepoint ] Application time: 0,2907248 seconds +[2018-06-13T07:44:49.896+0000][32376][gc,start ] GC(42) Pause Young (Allocation Failure) +[2018-06-13T07:44:49.896+0000][32376][gc,task ] GC(42) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:49.901+0000][32376][gc,age ] GC(42) Desired survivor size 17891328 bytes, new threshold 3 (max threshold 6) +[2018-06-13T07:44:49.901+0000][32376][gc,age ] GC(42) Age table with threshold 3 (max threshold 6) +[2018-06-13T07:44:49.901+0000][32376][gc,age ] GC(42) - age 1: 9416440 bytes, 9416440 total +[2018-06-13T07:44:49.901+0000][32376][gc,age ] GC(42) - age 2: 2720 bytes, 9419160 total +[2018-06-13T07:44:49.901+0000][32376][gc,age ] GC(42) - age 3: 17268928 bytes, 26688088 total +[2018-06-13T07:44:49.901+0000][32376][gc,heap ] GC(42) ParNew: 310743K->30681K(314560K) +[2018-06-13T07:44:49.901+0000][32376][gc,heap ] GC(42) CMS: 359352K->359352K(699072K) +[2018-06-13T07:44:49.901+0000][32376][gc,metaspace ] GC(42) Metaspace: 85437K->85437K(1130496K) +[2018-06-13T07:44:49.901+0000][32376][gc ] GC(42) Pause Young (Allocation Failure) 654M->380M(989M) 5,250ms +[2018-06-13T07:44:49.901+0000][32376][gc,cpu ] GC(42) User=0,04s Sys=0,00s Real=0,00s +[2018-06-13T07:44:49.901+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0056457 seconds, Stopping threads took: 0,0001257 seconds +[2018-06-13T07:44:50.516+0000][32376][safepoint ] Application time: 0,6147843 seconds +[2018-06-13T07:44:50.517+0000][32376][gc,start ] GC(43) Pause Young (Allocation Failure) +[2018-06-13T07:44:50.517+0000][32376][gc,task ] GC(43) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:50.525+0000][32376][gc,age ] GC(43) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:50.525+0000][32376][gc,age ] GC(43) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:50.525+0000][32376][gc,age ] GC(43) - age 1: 14871080 bytes, 14871080 total +[2018-06-13T07:44:50.525+0000][32376][gc,age ] GC(43) - age 2: 8454000 bytes, 23325080 total +[2018-06-13T07:44:50.525+0000][32376][gc,age ] GC(43) - age 3: 2720 bytes, 23327800 total +[2018-06-13T07:44:50.525+0000][32376][gc,heap ] GC(43) ParNew: 310297K->34944K(314560K) +[2018-06-13T07:44:50.525+0000][32376][gc,heap ] GC(43) CMS: 359352K->368878K(699072K) +[2018-06-13T07:44:50.525+0000][32376][gc,metaspace ] GC(43) Metaspace: 85458K->85458K(1130496K) +[2018-06-13T07:44:50.525+0000][32376][gc ] GC(43) Pause Young (Allocation Failure) 653M->394M(989M) 8,456ms +[2018-06-13T07:44:50.525+0000][32376][gc,cpu ] GC(43) User=0,06s Sys=0,00s Real=0,00s +[2018-06-13T07:44:50.525+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0089544 seconds, Stopping threads took: 0,0001196 seconds +[2018-06-13T07:44:51.151+0000][32376][safepoint ] Application time: 0,6259794 seconds +[2018-06-13T07:44:51.152+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005255 seconds, Stopping threads took: 0,0001151 seconds +[2018-06-13T07:44:51.162+0000][32376][safepoint ] Application time: 0,0107614 seconds +[2018-06-13T07:44:51.163+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009434 seconds, Stopping threads took: 0,0007039 seconds +[2018-06-13T07:44:51.190+0000][32376][safepoint ] Application time: 0,0266675 seconds +[2018-06-13T07:44:51.190+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003268 seconds, Stopping threads took: 0,0000747 seconds +[2018-06-13T07:44:51.193+0000][32376][safepoint ] Application time: 0,0021225 seconds +[2018-06-13T07:44:51.195+0000][32376][gc,start ] GC(44) Pause Young (Allocation Failure) +[2018-06-13T07:44:51.195+0000][32376][gc,task ] GC(44) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:51.207+0000][32376][gc,age ] GC(44) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:51.207+0000][32376][gc,age ] GC(44) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:51.207+0000][32376][gc,age ] GC(44) - age 1: 10360952 bytes, 10360952 total +[2018-06-13T07:44:51.207+0000][32376][gc,age ] GC(44) - age 2: 6204120 bytes, 16565072 total +[2018-06-13T07:44:51.207+0000][32376][gc,heap ] GC(44) ParNew: 314560K->33461K(314560K) +[2018-06-13T07:44:51.207+0000][32376][gc,heap ] GC(44) CMS: 368878K->376799K(699072K) +[2018-06-13T07:44:51.207+0000][32376][gc,metaspace ] GC(44) Metaspace: 85496K->85496K(1130496K) +[2018-06-13T07:44:51.207+0000][32376][gc ] GC(44) Pause Young (Allocation Failure) 667M->400M(989M) 12,253ms +[2018-06-13T07:44:51.207+0000][32376][gc,cpu ] GC(44) User=0,06s Sys=0,00s Real=0,01s +[2018-06-13T07:44:51.207+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0145624 seconds, Stopping threads took: 0,0020127 seconds +[2018-06-13T07:44:51.207+0000][32376][safepoint ] Application time: 0,0001577 seconds +[2018-06-13T07:44:51.208+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002552 seconds, Stopping threads took: 0,0000800 seconds +[2018-06-13T07:44:51.208+0000][32376][safepoint ] Application time: 0,0000974 seconds +[2018-06-13T07:44:51.208+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002491 seconds, Stopping threads took: 0,0000493 seconds +[2018-06-13T07:44:51.208+0000][32376][safepoint ] Application time: 0,0000999 seconds +[2018-06-13T07:44:51.208+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002410 seconds, Stopping threads took: 0,0000504 seconds +[2018-06-13T07:44:51.208+0000][32376][safepoint ] Application time: 0,0000804 seconds +[2018-06-13T07:44:51.209+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002280 seconds, Stopping threads took: 0,0000544 seconds +[2018-06-13T07:44:51.209+0000][32376][safepoint ] Application time: 0,0000733 seconds +[2018-06-13T07:44:51.209+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001561 seconds, Stopping threads took: 0,0000422 seconds +[2018-06-13T07:44:51.209+0000][32376][safepoint ] Application time: 0,0001000 seconds +[2018-06-13T07:44:51.209+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001681 seconds, Stopping threads took: 0,0000481 seconds +[2018-06-13T07:44:51.209+0000][32376][safepoint ] Application time: 0,0000674 seconds +[2018-06-13T07:44:51.210+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002214 seconds, Stopping threads took: 0,0000485 seconds +[2018-06-13T07:44:51.215+0000][32376][safepoint ] Application time: 0,0054083 seconds +[2018-06-13T07:44:51.216+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014591 seconds, Stopping threads took: 0,0000818 seconds +[2018-06-13T07:44:51.294+0000][32376][safepoint ] Application time: 0,0779133 seconds +[2018-06-13T07:44:51.295+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002873 seconds, Stopping threads took: 0,0000536 seconds +[2018-06-13T07:44:51.389+0000][32376][safepoint ] Application time: 0,0946355 seconds +[2018-06-13T07:44:51.390+0000][32376][gc,start ] GC(45) Pause Young (Allocation Failure) +[2018-06-13T07:44:51.390+0000][32376][gc,task ] GC(45) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:51.395+0000][32376][gc,age ] GC(45) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:44:51.395+0000][32376][gc,age ] GC(45) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:44:51.395+0000][32376][gc,age ] GC(45) - age 1: 932296 bytes, 932296 total +[2018-06-13T07:44:51.395+0000][32376][gc,age ] GC(45) - age 2: 10318632 bytes, 11250928 total +[2018-06-13T07:44:51.395+0000][32376][gc,age ] GC(45) - age 3: 6398008 bytes, 17648936 total +[2018-06-13T07:44:51.395+0000][32376][gc,heap ] GC(45) ParNew: 313077K->21273K(314560K) +[2018-06-13T07:44:51.395+0000][32376][gc,heap ] GC(45) CMS: 376799K->376799K(699072K) +[2018-06-13T07:44:51.395+0000][32376][gc,metaspace ] GC(45) Metaspace: 85534K->85534K(1130496K) +[2018-06-13T07:44:51.396+0000][32376][gc ] GC(45) Pause Young (Allocation Failure) 673M->388M(989M) 5,788ms +[2018-06-13T07:44:51.396+0000][32376][gc,cpu ] GC(45) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:44:51.396+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0061887 seconds, Stopping threads took: 0,0000709 seconds +[2018-06-13T07:44:51.488+0000][32376][safepoint ] Application time: 0,0925800 seconds +[2018-06-13T07:44:51.489+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003027 seconds, Stopping threads took: 0,0001309 seconds +[2018-06-13T07:44:51.495+0000][32376][safepoint ] Application time: 0,0066991 seconds +[2018-06-13T07:44:51.496+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002787 seconds, Stopping threads took: 0,0000522 seconds +[2018-06-13T07:44:51.496+0000][32376][safepoint ] Application time: 0,0001454 seconds +[2018-06-13T07:44:51.496+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001940 seconds, Stopping threads took: 0,0000273 seconds +[2018-06-13T07:44:51.496+0000][32376][safepoint ] Application time: 0,0001390 seconds +[2018-06-13T07:44:51.496+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002188 seconds, Stopping threads took: 0,0000431 seconds +[2018-06-13T07:44:51.496+0000][32376][safepoint ] Application time: 0,0001319 seconds +[2018-06-13T07:44:51.497+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009759 seconds, Stopping threads took: 0,0000386 seconds +[2018-06-13T07:44:51.498+0000][32376][safepoint ] Application time: 0,0002502 seconds +[2018-06-13T07:44:51.498+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001733 seconds, Stopping threads took: 0,0000463 seconds +[2018-06-13T07:44:51.498+0000][32376][safepoint ] Application time: 0,0000722 seconds +[2018-06-13T07:44:51.498+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002227 seconds, Stopping threads took: 0,0001074 seconds +[2018-06-13T07:44:51.498+0000][32376][safepoint ] Application time: 0,0001831 seconds +[2018-06-13T07:44:51.499+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001610 seconds, Stopping threads took: 0,0000348 seconds +[2018-06-13T07:44:51.499+0000][32376][safepoint ] Application time: 0,0000444 seconds +[2018-06-13T07:44:51.499+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001451 seconds, Stopping threads took: 0,0000432 seconds +[2018-06-13T07:44:51.500+0000][32376][safepoint ] Application time: 0,0011313 seconds +[2018-06-13T07:44:51.500+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001842 seconds, Stopping threads took: 0,0000463 seconds +[2018-06-13T07:44:51.501+0000][32376][safepoint ] Application time: 0,0011998 seconds +[2018-06-13T07:44:51.502+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002089 seconds, Stopping threads took: 0,0000505 seconds +[2018-06-13T07:44:51.505+0000][32376][safepoint ] Application time: 0,0030529 seconds +[2018-06-13T07:44:51.505+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003081 seconds, Stopping threads took: 0,0000768 seconds +[2018-06-13T07:44:51.505+0000][32376][safepoint ] Application time: 0,0000465 seconds +[2018-06-13T07:44:51.505+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002270 seconds, Stopping threads took: 0,0000470 seconds +[2018-06-13T07:44:51.505+0000][32376][safepoint ] Application time: 0,0000266 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001767 seconds, Stopping threads took: 0,0000231 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Application time: 0,0000274 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001532 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Application time: 0,0000197 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001020 seconds, Stopping threads took: 0,0000144 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Application time: 0,0000193 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001102 seconds, Stopping threads took: 0,0000133 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Application time: 0,0002784 seconds +[2018-06-13T07:44:51.506+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001894 seconds, Stopping threads took: 0,0000799 seconds +[2018-06-13T07:44:51.507+0000][32376][safepoint ] Application time: 0,0000182 seconds +[2018-06-13T07:44:51.507+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001103 seconds, Stopping threads took: 0,0000133 seconds +[2018-06-13T07:44:51.507+0000][32376][safepoint ] Application time: 0,0000187 seconds +[2018-06-13T07:44:51.507+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000966 seconds, Stopping threads took: 0,0000150 seconds +[2018-06-13T07:44:51.507+0000][32376][safepoint ] Application time: 0,0000237 seconds +[2018-06-13T07:44:51.507+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001267 seconds, Stopping threads took: 0,0000241 seconds +[2018-06-13T07:44:51.507+0000][32376][safepoint ] Application time: 0,0000337 seconds +[2018-06-13T07:44:51.508+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007330 seconds, Stopping threads took: 0,0000253 seconds +[2018-06-13T07:44:51.520+0000][32376][safepoint ] Application time: 0,0122012 seconds +[2018-06-13T07:44:51.520+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002761 seconds, Stopping threads took: 0,0001153 seconds +[2018-06-13T07:44:51.522+0000][32376][safepoint ] Application time: 0,0019153 seconds +[2018-06-13T07:44:51.522+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002686 seconds, Stopping threads took: 0,0001164 seconds +[2018-06-13T07:44:51.523+0000][32376][safepoint ] Application time: 0,0001746 seconds +[2018-06-13T07:44:51.523+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001314 seconds, Stopping threads took: 0,0000309 seconds +[2018-06-13T07:44:51.523+0000][32376][safepoint ] Application time: 0,0001923 seconds +[2018-06-13T07:44:51.523+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001317 seconds, Stopping threads took: 0,0000422 seconds +[2018-06-13T07:44:51.523+0000][32376][safepoint ] Application time: 0,0001184 seconds +[2018-06-13T07:44:51.523+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001366 seconds, Stopping threads took: 0,0000395 seconds +[2018-06-13T07:44:51.524+0000][32376][safepoint ] Application time: 0,0000952 seconds +[2018-06-13T07:44:51.524+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002629 seconds, Stopping threads took: 0,0000972 seconds +[2018-06-13T07:44:51.524+0000][32376][safepoint ] Application time: 0,0001238 seconds +[2018-06-13T07:44:51.524+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001799 seconds, Stopping threads took: 0,0000428 seconds +[2018-06-13T07:44:51.524+0000][32376][safepoint ] Application time: 0,0001455 seconds +[2018-06-13T07:44:51.525+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001903 seconds, Stopping threads took: 0,0000344 seconds +[2018-06-13T07:44:51.525+0000][32376][safepoint ] Application time: 0,0000789 seconds +[2018-06-13T07:44:51.525+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001748 seconds, Stopping threads took: 0,0000348 seconds +[2018-06-13T07:44:51.525+0000][32376][safepoint ] Application time: 0,0001285 seconds +[2018-06-13T07:44:51.525+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002358 seconds, Stopping threads took: 0,0000960 seconds +[2018-06-13T07:44:51.525+0000][32376][safepoint ] Application time: 0,0001221 seconds +[2018-06-13T07:44:51.525+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001338 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-13T07:44:51.526+0000][32376][safepoint ] Application time: 0,0000804 seconds +[2018-06-13T07:44:51.526+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001608 seconds, Stopping threads took: 0,0000344 seconds +[2018-06-13T07:44:51.526+0000][32376][safepoint ] Application time: 0,0001308 seconds +[2018-06-13T07:44:51.526+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001296 seconds, Stopping threads took: 0,0000316 seconds +[2018-06-13T07:44:51.526+0000][32376][safepoint ] Application time: 0,0002592 seconds +[2018-06-13T07:44:51.526+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002090 seconds, Stopping threads took: 0,0000812 seconds +[2018-06-13T07:44:51.527+0000][32376][safepoint ] Application time: 0,0003799 seconds +[2018-06-13T07:44:51.527+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001695 seconds, Stopping threads took: 0,0000651 seconds +[2018-06-13T07:44:51.527+0000][32376][safepoint ] Application time: 0,0001957 seconds +[2018-06-13T07:44:51.527+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001504 seconds, Stopping threads took: 0,0000642 seconds +[2018-06-13T07:44:51.528+0000][32376][safepoint ] Application time: 0,0000703 seconds +[2018-06-13T07:44:51.528+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001393 seconds, Stopping threads took: 0,0000621 seconds +[2018-06-13T07:44:51.528+0000][32376][safepoint ] Application time: 0,0000669 seconds +[2018-06-13T07:44:51.528+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001032 seconds, Stopping threads took: 0,0000296 seconds +[2018-06-13T07:44:51.528+0000][32376][safepoint ] Application time: 0,0001230 seconds +[2018-06-13T07:44:51.528+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001260 seconds, Stopping threads took: 0,0000434 seconds +[2018-06-13T07:44:51.529+0000][32376][safepoint ] Application time: 0,0004256 seconds +[2018-06-13T07:44:51.529+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001231 seconds, Stopping threads took: 0,0000250 seconds +[2018-06-13T07:44:51.529+0000][32376][safepoint ] Application time: 0,0000853 seconds +[2018-06-13T07:44:51.530+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007387 seconds, Stopping threads took: 0,0000238 seconds +[2018-06-13T07:44:51.583+0000][32376][safepoint ] Application time: 0,0539384 seconds +[2018-06-13T07:44:51.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002814 seconds, Stopping threads took: 0,0000670 seconds +[2018-06-13T07:44:51.584+0000][32376][safepoint ] Application time: 0,0002031 seconds +[2018-06-13T07:44:51.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002213 seconds, Stopping threads took: 0,0000431 seconds +[2018-06-13T07:44:51.591+0000][32376][safepoint ] Application time: 0,0064767 seconds +[2018-06-13T07:44:51.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002181 seconds, Stopping threads took: 0,0000613 seconds +[2018-06-13T07:44:51.591+0000][32376][safepoint ] Application time: 0,0000554 seconds +[2018-06-13T07:44:51.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001492 seconds, Stopping threads took: 0,0000463 seconds +[2018-06-13T07:44:51.592+0000][32376][safepoint ] Application time: 0,0002904 seconds +[2018-06-13T07:44:51.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002694 seconds, Stopping threads took: 0,0000954 seconds +[2018-06-13T07:44:51.592+0000][32376][safepoint ] Application time: 0,0002511 seconds +[2018-06-13T07:44:51.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002964 seconds, Stopping threads took: 0,0001223 seconds +[2018-06-13T07:44:51.593+0000][32376][safepoint ] Application time: 0,0003949 seconds +[2018-06-13T07:44:51.593+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001681 seconds, Stopping threads took: 0,0000470 seconds +[2018-06-13T07:44:51.593+0000][32376][safepoint ] Application time: 0,0001189 seconds +[2018-06-13T07:44:51.593+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001674 seconds, Stopping threads took: 0,0000439 seconds +[2018-06-13T07:44:51.593+0000][32376][safepoint ] Application time: 0,0000883 seconds +[2018-06-13T07:44:51.595+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013093 seconds, Stopping threads took: 0,0011791 seconds +[2018-06-13T07:44:51.595+0000][32376][safepoint ] Application time: 0,0000786 seconds +[2018-06-13T07:44:51.595+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001217 seconds, Stopping threads took: 0,0000351 seconds +[2018-06-13T07:44:51.595+0000][32376][safepoint ] Application time: 0,0001866 seconds +[2018-06-13T07:44:51.595+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001403 seconds, Stopping threads took: 0,0000398 seconds +[2018-06-13T07:44:51.595+0000][32376][safepoint ] Application time: 0,0000775 seconds +[2018-06-13T07:44:51.596+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001420 seconds, Stopping threads took: 0,0000349 seconds +[2018-06-13T07:44:51.596+0000][32376][safepoint ] Application time: 0,0000510 seconds +[2018-06-13T07:44:51.596+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001426 seconds, Stopping threads took: 0,0000242 seconds +[2018-06-13T07:44:51.596+0000][32376][safepoint ] Application time: 0,0001324 seconds +[2018-06-13T07:44:51.596+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001482 seconds, Stopping threads took: 0,0000441 seconds +[2018-06-13T07:44:51.600+0000][32376][safepoint ] Application time: 0,0044080 seconds +[2018-06-13T07:44:51.603+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0023268 seconds, Stopping threads took: 0,0021577 seconds +[2018-06-13T07:44:51.603+0000][32376][safepoint ] Application time: 0,0001100 seconds +[2018-06-13T07:44:51.603+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002417 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-13T07:44:51.607+0000][32376][safepoint ] Application time: 0,0039244 seconds +[2018-06-13T07:44:51.608+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003155 seconds, Stopping threads took: 0,0000906 seconds +[2018-06-13T07:44:51.608+0000][32376][safepoint ] Application time: 0,0001176 seconds +[2018-06-13T07:44:51.608+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002130 seconds, Stopping threads took: 0,0000339 seconds +[2018-06-13T07:44:51.608+0000][32376][safepoint ] Application time: 0,0002210 seconds +[2018-06-13T07:44:51.608+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002399 seconds, Stopping threads took: 0,0000482 seconds +[2018-06-13T07:44:51.609+0000][32376][safepoint ] Application time: 0,0001498 seconds +[2018-06-13T07:44:51.609+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002320 seconds, Stopping threads took: 0,0000525 seconds +[2018-06-13T07:44:51.609+0000][32376][safepoint ] Application time: 0,0000855 seconds +[2018-06-13T07:44:51.609+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002333 seconds, Stopping threads took: 0,0000449 seconds +[2018-06-13T07:44:51.615+0000][32376][safepoint ] Application time: 0,0054848 seconds +[2018-06-13T07:44:51.615+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003268 seconds, Stopping threads took: 0,0001030 seconds +[2018-06-13T07:44:51.615+0000][32376][safepoint ] Application time: 0,0001906 seconds +[2018-06-13T07:44:51.615+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002280 seconds, Stopping threads took: 0,0000452 seconds +[2018-06-13T07:44:51.616+0000][32376][safepoint ] Application time: 0,0000863 seconds +[2018-06-13T07:44:51.616+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001726 seconds, Stopping threads took: 0,0000198 seconds +[2018-06-13T07:44:51.616+0000][32376][safepoint ] Application time: 0,0000466 seconds +[2018-06-13T07:44:51.616+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002261 seconds, Stopping threads took: 0,0000738 seconds +[2018-06-13T07:44:51.616+0000][32376][safepoint ] Application time: 0,0001725 seconds +[2018-06-13T07:44:51.616+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001947 seconds, Stopping threads took: 0,0000349 seconds +[2018-06-13T07:44:51.616+0000][32376][safepoint ] Application time: 0,0000462 seconds +[2018-06-13T07:44:51.617+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001842 seconds, Stopping threads took: 0,0000404 seconds +[2018-06-13T07:44:51.617+0000][32376][safepoint ] Application time: 0,0000577 seconds +[2018-06-13T07:44:51.617+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001542 seconds, Stopping threads took: 0,0000176 seconds +[2018-06-13T07:44:51.617+0000][32376][safepoint ] Application time: 0,0000694 seconds +[2018-06-13T07:44:51.617+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002078 seconds, Stopping threads took: 0,0000644 seconds +[2018-06-13T07:44:51.617+0000][32376][safepoint ] Application time: 0,0000869 seconds +[2018-06-13T07:44:51.619+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011440 seconds, Stopping threads took: 0,0009729 seconds +[2018-06-13T07:44:51.619+0000][32376][safepoint ] Application time: 0,0002018 seconds +[2018-06-13T07:44:51.619+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002859 seconds, Stopping threads took: 0,0000932 seconds +[2018-06-13T07:44:51.620+0000][32376][safepoint ] Application time: 0,0002221 seconds +[2018-06-13T07:44:51.620+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002360 seconds, Stopping threads took: 0,0000522 seconds +[2018-06-13T07:44:51.620+0000][32376][safepoint ] Application time: 0,0001185 seconds +[2018-06-13T07:44:51.620+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001809 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-13T07:44:51.620+0000][32376][safepoint ] Application time: 0,0003420 seconds +[2018-06-13T07:44:51.621+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001899 seconds, Stopping threads took: 0,0000516 seconds +[2018-06-13T07:44:51.621+0000][32376][safepoint ] Application time: 0,0001490 seconds +[2018-06-13T07:44:51.621+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001480 seconds, Stopping threads took: 0,0000307 seconds +[2018-06-13T07:44:51.621+0000][32376][safepoint ] Application time: 0,0000894 seconds +[2018-06-13T07:44:51.621+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001272 seconds, Stopping threads took: 0,0000318 seconds +[2018-06-13T07:44:51.621+0000][32376][safepoint ] Application time: 0,0000767 seconds +[2018-06-13T07:44:51.621+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001298 seconds, Stopping threads took: 0,0000347 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Application time: 0,0001416 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001056 seconds, Stopping threads took: 0,0000180 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Application time: 0,0000557 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001408 seconds, Stopping threads took: 0,0000461 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Application time: 0,0000434 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001119 seconds, Stopping threads took: 0,0000201 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Application time: 0,0001176 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001282 seconds, Stopping threads took: 0,0000353 seconds +[2018-06-13T07:44:51.622+0000][32376][safepoint ] Application time: 0,0000518 seconds +[2018-06-13T07:44:51.623+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001939 seconds, Stopping threads took: 0,0000421 seconds +[2018-06-13T07:44:51.623+0000][32376][safepoint ] Application time: 0,0000528 seconds +[2018-06-13T07:44:51.623+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001784 seconds, Stopping threads took: 0,0000356 seconds +[2018-06-13T07:44:51.623+0000][32376][safepoint ] Application time: 0,0002096 seconds +[2018-06-13T07:44:51.623+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002126 seconds, Stopping threads took: 0,0000409 seconds +[2018-06-13T07:44:51.623+0000][32376][safepoint ] Application time: 0,0000814 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001601 seconds, Stopping threads took: 0,0000452 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Application time: 0,0000474 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001088 seconds, Stopping threads took: 0,0000154 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Application time: 0,0001167 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001210 seconds, Stopping threads took: 0,0000326 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Application time: 0,0000504 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001226 seconds, Stopping threads took: 0,0000355 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Application time: 0,0000381 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001065 seconds, Stopping threads took: 0,0000281 seconds +[2018-06-13T07:44:51.624+0000][32376][safepoint ] Application time: 0,0000928 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001090 seconds, Stopping threads took: 0,0000287 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Application time: 0,0000499 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001041 seconds, Stopping threads took: 0,0000255 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Application time: 0,0000366 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001196 seconds, Stopping threads took: 0,0000263 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Application time: 0,0000990 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001268 seconds, Stopping threads took: 0,0000297 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Application time: 0,0000577 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001116 seconds, Stopping threads took: 0,0000265 seconds +[2018-06-13T07:44:51.625+0000][32376][safepoint ] Application time: 0,0000467 seconds +[2018-06-13T07:44:51.626+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001108 seconds, Stopping threads took: 0,0000298 seconds +[2018-06-13T07:44:51.626+0000][32376][safepoint ] Application time: 0,0000985 seconds +[2018-06-13T07:44:51.627+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008791 seconds, Stopping threads took: 0,0000933 seconds +[2018-06-13T07:44:51.627+0000][32376][safepoint ] Application time: 0,0001076 seconds +[2018-06-13T07:44:51.627+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001868 seconds, Stopping threads took: 0,0000285 seconds +[2018-06-13T07:44:51.627+0000][32376][safepoint ] Application time: 0,0000509 seconds +[2018-06-13T07:44:51.628+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008849 seconds, Stopping threads took: 0,0000473 seconds +[2018-06-13T07:44:51.628+0000][32376][safepoint ] Application time: 0,0002327 seconds +[2018-06-13T07:44:51.629+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011761 seconds, Stopping threads took: 0,0000566 seconds +[2018-06-13T07:44:51.649+0000][32376][safepoint ] Application time: 0,0195232 seconds +[2018-06-13T07:44:51.649+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004992 seconds, Stopping threads took: 0,0001020 seconds +[2018-06-13T07:44:51.654+0000][32376][safepoint ] Application time: 0,0049345 seconds +[2018-06-13T07:44:51.655+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005281 seconds, Stopping threads took: 0,0002692 seconds +[2018-06-13T07:44:51.655+0000][32376][safepoint ] Application time: 0,0003887 seconds +[2018-06-13T07:44:51.655+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002300 seconds, Stopping threads took: 0,0000447 seconds +[2018-06-13T07:44:51.657+0000][32376][safepoint ] Application time: 0,0013978 seconds +[2018-06-13T07:44:51.657+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002422 seconds, Stopping threads took: 0,0000669 seconds +[2018-06-13T07:44:51.657+0000][32376][safepoint ] Application time: 0,0000387 seconds +[2018-06-13T07:44:51.657+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001527 seconds, Stopping threads took: 0,0000163 seconds +[2018-06-13T07:44:51.659+0000][32376][safepoint ] Application time: 0,0016083 seconds +[2018-06-13T07:44:51.659+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002581 seconds, Stopping threads took: 0,0000838 seconds +[2018-06-13T07:44:51.785+0000][32376][safepoint ] Application time: 0,1256806 seconds +[2018-06-13T07:44:51.785+0000][32376][gc,start ] GC(46) Pause Young (Allocation Failure) +[2018-06-13T07:44:51.785+0000][32376][gc,task ] GC(46) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:51.792+0000][32376][gc,age ] GC(46) Desired survivor size 17891328 bytes, new threshold 3 (max threshold 6) +[2018-06-13T07:44:51.792+0000][32376][gc,age ] GC(46) Age table with threshold 3 (max threshold 6) +[2018-06-13T07:44:51.792+0000][32376][gc,age ] GC(46) - age 1: 13854360 bytes, 13854360 total +[2018-06-13T07:44:51.792+0000][32376][gc,age ] GC(46) - age 2: 839640 bytes, 14694000 total +[2018-06-13T07:44:51.792+0000][32376][gc,age ] GC(46) - age 3: 10311776 bytes, 25005776 total +[2018-06-13T07:44:51.792+0000][32376][gc,age ] GC(46) - age 4: 5103904 bytes, 30109680 total +[2018-06-13T07:44:51.792+0000][32376][gc,heap ] GC(46) ParNew: 300889K->34907K(314560K) +[2018-06-13T07:44:51.792+0000][32376][gc,heap ] GC(46) CMS: 376799K->376799K(699072K) +[2018-06-13T07:44:51.792+0000][32376][gc,metaspace ] GC(46) Metaspace: 85691K->85691K(1130496K) +[2018-06-13T07:44:51.792+0000][32376][gc ] GC(46) Pause Young (Allocation Failure) 661M->402M(989M) 7,093ms +[2018-06-13T07:44:51.792+0000][32376][gc,cpu ] GC(46) User=0,05s Sys=0,00s Real=0,01s +[2018-06-13T07:44:51.792+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0074419 seconds, Stopping threads took: 0,0000451 seconds +[2018-06-13T07:44:51.887+0000][32376][safepoint ] Application time: 0,0945650 seconds +[2018-06-13T07:44:51.888+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011068 seconds, Stopping threads took: 0,0000769 seconds +[2018-06-13T07:44:51.888+0000][32376][safepoint ] Application time: 0,0001981 seconds +[2018-06-13T07:44:51.889+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002275 seconds, Stopping threads took: 0,0000758 seconds +[2018-06-13T07:44:51.889+0000][32376][safepoint ] Application time: 0,0000271 seconds +[2018-06-13T07:44:51.889+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001501 seconds, Stopping threads took: 0,0000322 seconds +[2018-06-13T07:44:51.902+0000][32376][safepoint ] Application time: 0,0131823 seconds +[2018-06-13T07:44:51.902+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002855 seconds, Stopping threads took: 0,0000726 seconds +[2018-06-13T07:44:52.576+0000][32376][safepoint ] Application time: 0,6731517 seconds +[2018-06-13T07:44:52.576+0000][32376][gc,start ] GC(47) Pause Young (Allocation Failure) +[2018-06-13T07:44:52.576+0000][32376][gc,task ] GC(47) Using 8 workers of 8 for evacuation +[2018-06-13T07:44:52.584+0000][32376][gc,age ] GC(47) Desired survivor size 17891328 bytes, new threshold 2 (max threshold 6) +[2018-06-13T07:44:52.584+0000][32376][gc,age ] GC(47) Age table with threshold 2 (max threshold 6) +[2018-06-13T07:44:52.584+0000][32376][gc,age ] GC(47) - age 1: 14479528 bytes, 14479528 total +[2018-06-13T07:44:52.584+0000][32376][gc,age ] GC(47) - age 2: 4004496 bytes, 18484024 total +[2018-06-13T07:44:52.584+0000][32376][gc,age ] GC(47) - age 3: 836720 bytes, 19320744 total +[2018-06-13T07:44:52.584+0000][32376][gc,heap ] GC(47) ParNew: 314523K->27351K(314560K) +[2018-06-13T07:44:52.584+0000][32376][gc,heap ] GC(47) CMS: 376799K->381158K(699072K) +[2018-06-13T07:44:52.584+0000][32376][gc,metaspace ] GC(47) Metaspace: 85703K->85703K(1130496K) +[2018-06-13T07:44:52.584+0000][32376][gc ] GC(47) Pause Young (Allocation Failure) 675M->398M(989M) 8,215ms +[2018-06-13T07:44:52.584+0000][32376][gc,cpu ] GC(47) User=0,06s Sys=0,00s Real=0,00s +[2018-06-13T07:44:52.584+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0087760 seconds, Stopping threads took: 0,0000914 seconds +[2018-06-13T07:44:53.585+0000][32376][safepoint ] Application time: 1,0001656 seconds +[2018-06-13T07:44:53.585+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005882 seconds, Stopping threads took: 0,0000689 seconds +[2018-06-13T07:44:53.808+0000][32376][safepoint ] Application time: 0,2223925 seconds +[2018-06-13T07:44:53.810+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0027124 seconds, Stopping threads took: 0,0001070 seconds +[2018-06-13T07:44:53.847+0000][32376][safepoint ] Application time: 0,0365584 seconds +[2018-06-13T07:44:53.848+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007144 seconds, Stopping threads took: 0,0002624 seconds +[2018-06-13T07:44:53.869+0000][32376][safepoint ] Application time: 0,0208759 seconds +[2018-06-13T07:44:53.870+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009064 seconds, Stopping threads took: 0,0002710 seconds +[2018-06-13T07:44:53.910+0000][32376][safepoint ] Application time: 0,0401681 seconds +[2018-06-13T07:44:53.910+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004612 seconds, Stopping threads took: 0,0000740 seconds +[2018-06-13T07:44:53.986+0000][32376][safepoint ] Application time: 0,0751479 seconds +[2018-06-13T07:44:53.986+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002064 seconds, Stopping threads took: 0,0000433 seconds +[2018-06-13T07:44:53.986+0000][32376][safepoint ] Application time: 0,0001742 seconds +[2018-06-13T07:44:53.986+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001222 seconds, Stopping threads took: 0,0000274 seconds +[2018-06-13T07:44:53.987+0000][32376][safepoint ] Application time: 0,0008827 seconds +[2018-06-13T07:44:53.987+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003002 seconds, Stopping threads took: 0,0000905 seconds +[2018-06-13T07:44:53.988+0000][32376][safepoint ] Application time: 0,0003561 seconds +[2018-06-13T07:44:53.988+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001621 seconds, Stopping threads took: 0,0000374 seconds +[2018-06-13T07:44:53.988+0000][32376][safepoint ] Application time: 0,0000975 seconds +[2018-06-13T07:44:53.988+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001184 seconds, Stopping threads took: 0,0000217 seconds +[2018-06-13T07:44:53.994+0000][32376][safepoint ] Application time: 0,0055960 seconds +[2018-06-13T07:44:53.994+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002165 seconds, Stopping threads took: 0,0000575 seconds +[2018-06-13T07:44:54.924+0000][32376][safepoint ] Application time: 0,9299644 seconds +[2018-06-13T07:44:54.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003954 seconds, Stopping threads took: 0,0000751 seconds +[2018-06-13T07:44:54.925+0000][32376][safepoint ] Application time: 0,0001992 seconds +[2018-06-13T07:44:54.925+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002787 seconds, Stopping threads took: 0,0000398 seconds +[2018-06-13T07:44:54.933+0000][32376][safepoint ] Application time: 0,0078003 seconds +[2018-06-13T07:44:54.933+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005872 seconds, Stopping threads took: 0,0001803 seconds +[2018-06-13T07:44:54.934+0000][32376][safepoint ] Application time: 0,0005916 seconds +[2018-06-13T07:44:54.935+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005724 seconds, Stopping threads took: 0,0001245 seconds +[2018-06-13T07:44:54.945+0000][32376][safepoint ] Application time: 0,0098411 seconds +[2018-06-13T07:44:54.945+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004022 seconds, Stopping threads took: 0,0000864 seconds +[2018-06-13T07:44:55.945+0000][32376][safepoint ] Application time: 1,0000978 seconds +[2018-06-13T07:44:55.946+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004269 seconds, Stopping threads took: 0,0000999 seconds +[2018-06-13T07:44:56.946+0000][32376][safepoint ] Application time: 1,0001046 seconds +[2018-06-13T07:44:56.946+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002822 seconds, Stopping threads took: 0,0000629 seconds +[2018-06-13T07:44:58.946+0000][32376][safepoint ] Application time: 2,0002129 seconds +[2018-06-13T07:44:58.947+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002718 seconds, Stopping threads took: 0,0000576 seconds +[2018-06-13T07:44:59.947+0000][32376][safepoint ] Application time: 1,0001303 seconds +[2018-06-13T07:44:59.947+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001849 seconds, Stopping threads took: 0,0000377 seconds +[2018-06-13T07:45:01.156+0000][32376][safepoint ] Application time: 1,2094006 seconds +[2018-06-13T07:45:01.157+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002668 seconds, Stopping threads took: 0,0000524 seconds +[2018-06-13T07:45:01.159+0000][32376][safepoint ] Application time: 0,0020142 seconds +[2018-06-13T07:45:01.159+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002478 seconds, Stopping threads took: 0,0000423 seconds +[2018-06-13T07:45:01.262+0000][32376][safepoint ] Application time: 0,1033332 seconds +[2018-06-13T07:45:01.263+0000][32376][gc,start ] GC(48) Pause Young (Allocation Failure) +[2018-06-13T07:45:01.263+0000][32376][gc,task ] GC(48) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:01.272+0000][32376][gc,age ] GC(48) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:45:01.272+0000][32376][gc,age ] GC(48) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:45:01.272+0000][32376][gc,age ] GC(48) - age 1: 19507528 bytes, 19507528 total +[2018-06-13T07:45:01.272+0000][32376][gc,age ] GC(48) - age 2: 6910552 bytes, 26418080 total +[2018-06-13T07:45:01.272+0000][32376][gc,heap ] GC(48) ParNew: 306967K->34944K(314560K) +[2018-06-13T07:45:01.272+0000][32376][gc,heap ] GC(48) CMS: 381158K->393644K(699072K) +[2018-06-13T07:45:01.272+0000][32376][gc,metaspace ] GC(48) Metaspace: 86244K->86244K(1132544K) +[2018-06-13T07:45:01.272+0000][32376][gc ] GC(48) Pause Young (Allocation Failure) 671M->418M(989M) 9,213ms +[2018-06-13T07:45:01.272+0000][32376][gc,cpu ] GC(48) User=0,06s Sys=0,00s Real=0,01s +[2018-06-13T07:45:01.272+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0096297 seconds, Stopping threads took: 0,0000480 seconds +[2018-06-13T07:45:01.921+0000][32376][safepoint ] Application time: 0,6489610 seconds +[2018-06-13T07:45:01.921+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004413 seconds, Stopping threads took: 0,0000755 seconds +[2018-06-13T07:45:01.922+0000][32376][safepoint ] Application time: 0,0005058 seconds +[2018-06-13T07:45:01.922+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002707 seconds, Stopping threads took: 0,0000502 seconds +[2018-06-13T07:45:01.922+0000][32376][safepoint ] Application time: 0,0001142 seconds +[2018-06-13T07:45:01.923+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002606 seconds, Stopping threads took: 0,0000436 seconds +[2018-06-13T07:45:01.923+0000][32376][safepoint ] Application time: 0,0001661 seconds +[2018-06-13T07:45:01.923+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002571 seconds, Stopping threads took: 0,0000448 seconds +[2018-06-13T07:45:02.923+0000][32376][safepoint ] Application time: 1,0001141 seconds +[2018-06-13T07:45:02.924+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002828 seconds, Stopping threads took: 0,0000606 seconds +[2018-06-13T07:45:03.773+0000][32376][safepoint ] Application time: 0,8489860 seconds +[2018-06-13T07:45:03.773+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004203 seconds, Stopping threads took: 0,0001483 seconds +[2018-06-13T07:45:03.778+0000][32376][safepoint ] Application time: 0,0045400 seconds +[2018-06-13T07:45:03.778+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004013 seconds, Stopping threads took: 0,0001363 seconds +[2018-06-13T07:45:03.789+0000][32376][safepoint ] Application time: 0,0106060 seconds +[2018-06-13T07:45:03.789+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003234 seconds, Stopping threads took: 0,0000613 seconds +[2018-06-13T07:45:03.789+0000][32376][safepoint ] Application time: 0,0002739 seconds +[2018-06-13T07:45:03.790+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003198 seconds, Stopping threads took: 0,0001103 seconds +[2018-06-13T07:45:03.791+0000][32376][safepoint ] Application time: 0,0011229 seconds +[2018-06-13T07:45:03.791+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003043 seconds, Stopping threads took: 0,0000668 seconds +[2018-06-13T07:45:03.792+0000][32376][safepoint ] Application time: 0,0006526 seconds +[2018-06-13T07:45:03.792+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003035 seconds, Stopping threads took: 0,0000646 seconds +[2018-06-13T07:45:03.792+0000][32376][safepoint ] Application time: 0,0000452 seconds +[2018-06-13T07:45:03.793+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001897 seconds, Stopping threads took: 0,0000247 seconds +[2018-06-13T07:45:03.793+0000][32376][safepoint ] Application time: 0,0001935 seconds +[2018-06-13T07:45:03.793+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001908 seconds, Stopping threads took: 0,0000263 seconds +[2018-06-13T07:45:03.961+0000][32376][safepoint ] Application time: 0,1682051 seconds +[2018-06-13T07:45:03.962+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006227 seconds, Stopping threads took: 0,0001731 seconds +[2018-06-13T07:45:03.962+0000][32376][safepoint ] Application time: 0,0003925 seconds +[2018-06-13T07:45:03.963+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006347 seconds, Stopping threads took: 0,0001734 seconds +[2018-06-13T07:45:03.994+0000][32376][safepoint ] Application time: 0,0306763 seconds +[2018-06-13T07:45:03.994+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005021 seconds, Stopping threads took: 0,0001031 seconds +[2018-06-13T07:45:04.011+0000][32376][safepoint ] Application time: 0,0172077 seconds +[2018-06-13T07:45:04.012+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008179 seconds, Stopping threads took: 0,0001900 seconds +[2018-06-13T07:45:04.013+0000][32376][safepoint ] Application time: 0,0003844 seconds +[2018-06-13T07:45:04.013+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004750 seconds, Stopping threads took: 0,0000878 seconds +[2018-06-13T07:45:04.718+0000][32376][safepoint ] Application time: 0,7047467 seconds +[2018-06-13T07:45:04.718+0000][32376][gc,start ] GC(49) Pause Young (Allocation Failure) +[2018-06-13T07:45:04.718+0000][32376][gc,task ] GC(49) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:04.723+0000][32376][gc,age ] GC(49) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:45:04.723+0000][32376][gc,age ] GC(49) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:45:04.724+0000][32376][gc,age ] GC(49) - age 1: 819968 bytes, 819968 total +[2018-06-13T07:45:04.724+0000][32376][gc,heap ] GC(49) ParNew: 314560K->8493K(314560K) +[2018-06-13T07:45:04.724+0000][32376][gc,heap ] GC(49) CMS: 393644K->418391K(699072K) +[2018-06-13T07:45:04.724+0000][32376][gc,metaspace ] GC(49) Metaspace: 86353K->86353K(1132544K) +[2018-06-13T07:45:04.724+0000][32376][gc ] GC(49) Pause Young (Allocation Failure) 691M->416M(989M) 5,114ms +[2018-06-13T07:45:04.724+0000][32376][gc,cpu ] GC(49) User=0,03s Sys=0,01s Real=0,00s +[2018-06-13T07:45:04.724+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0054469 seconds, Stopping threads took: 0,0000616 seconds +[2018-06-13T07:45:05.724+0000][32376][safepoint ] Application time: 1,0001294 seconds +[2018-06-13T07:45:05.724+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004877 seconds, Stopping threads took: 0,0001024 seconds +[2018-06-13T07:45:06.724+0000][32376][safepoint ] Application time: 1,0001347 seconds +[2018-06-13T07:45:06.725+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003696 seconds, Stopping threads took: 0,0000672 seconds +[2018-06-13T07:45:07.343+0000][32376][safepoint ] Application time: 0,6177747 seconds +[2018-06-13T07:45:07.343+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004740 seconds, Stopping threads took: 0,0000867 seconds +[2018-06-13T07:45:07.344+0000][32376][safepoint ] Application time: 0,0004254 seconds +[2018-06-13T07:45:07.344+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004488 seconds, Stopping threads took: 0,0000634 seconds +[2018-06-13T07:45:07.346+0000][32376][safepoint ] Application time: 0,0018318 seconds +[2018-06-13T07:45:07.346+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004016 seconds, Stopping threads took: 0,0000538 seconds +[2018-06-13T07:45:07.347+0000][32376][safepoint ] Application time: 0,0003335 seconds +[2018-06-13T07:45:07.347+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005564 seconds, Stopping threads took: 0,0002075 seconds +[2018-06-13T07:45:07.350+0000][32376][safepoint ] Application time: 0,0022381 seconds +[2018-06-13T07:45:07.350+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004839 seconds, Stopping threads took: 0,0000650 seconds +[2018-06-13T07:45:07.358+0000][32376][safepoint ] Application time: 0,0072454 seconds +[2018-06-13T07:45:07.358+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004451 seconds, Stopping threads took: 0,0000779 seconds +[2018-06-13T07:45:07.684+0000][32376][safepoint ] Application time: 0,3263382 seconds +[2018-06-13T07:45:07.685+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004749 seconds, Stopping threads took: 0,0000794 seconds +[2018-06-13T07:45:08.642+0000][32376][safepoint ] Application time: 0,9566174 seconds +[2018-06-13T07:45:08.642+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002512 seconds, Stopping threads took: 0,0000353 seconds +[2018-06-13T07:45:08.761+0000][32376][safepoint ] Application time: 0,1190100 seconds +[2018-06-13T07:45:08.761+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001799 seconds, Stopping threads took: 0,0000438 seconds +[2018-06-13T07:45:09.172+0000][32376][safepoint ] Application time: 0,4111519 seconds +[2018-06-13T07:45:09.173+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004743 seconds, Stopping threads took: 0,0001513 seconds +[2018-06-13T07:45:09.181+0000][32376][safepoint ] Application time: 0,0078136 seconds +[2018-06-13T07:45:09.181+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002693 seconds, Stopping threads took: 0,0000508 seconds +[2018-06-13T07:45:09.346+0000][32376][safepoint ] Application time: 0,1654130 seconds +[2018-06-13T07:45:09.347+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005105 seconds, Stopping threads took: 0,0001166 seconds +[2018-06-13T07:45:09.516+0000][32376][safepoint ] Application time: 0,1690386 seconds +[2018-06-13T07:45:09.517+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004129 seconds, Stopping threads took: 0,0000743 seconds +[2018-06-13T07:45:09.642+0000][32376][safepoint ] Application time: 0,1249801 seconds +[2018-06-13T07:45:09.642+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004550 seconds, Stopping threads took: 0,0000796 seconds +[2018-06-13T07:45:09.860+0000][32376][safepoint ] Application time: 0,2179590 seconds +[2018-06-13T07:45:09.860+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003110 seconds, Stopping threads took: 0,0000520 seconds +[2018-06-13T07:45:10.303+0000][32376][safepoint ] Application time: 0,4425627 seconds +[2018-06-13T07:45:10.303+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002995 seconds, Stopping threads took: 0,0000617 seconds +[2018-06-13T07:45:10.377+0000][32376][safepoint ] Application time: 0,0738170 seconds +[2018-06-13T07:45:10.378+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003115 seconds, Stopping threads took: 0,0000574 seconds +[2018-06-13T07:45:10.550+0000][32376][safepoint ] Application time: 0,1728701 seconds +[2018-06-13T07:45:10.551+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004830 seconds, Stopping threads took: 0,0000833 seconds +[2018-06-13T07:45:10.968+0000][32376][safepoint ] Application time: 0,4172829 seconds +[2018-06-13T07:45:10.969+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004014 seconds, Stopping threads took: 0,0000726 seconds +[2018-06-13T07:45:11.146+0000][32376][safepoint ] Application time: 0,1775772 seconds +[2018-06-13T07:45:11.147+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002557 seconds, Stopping threads took: 0,0000471 seconds +[2018-06-13T07:45:11.147+0000][32376][safepoint ] Application time: 0,0001580 seconds +[2018-06-13T07:45:11.147+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001700 seconds, Stopping threads took: 0,0000267 seconds +[2018-06-13T07:45:11.956+0000][32376][safepoint ] Application time: 0,8092858 seconds +[2018-06-13T07:45:11.957+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004265 seconds, Stopping threads took: 0,0000663 seconds +[2018-06-13T07:45:11.957+0000][32376][safepoint ] Application time: 0,0005858 seconds +[2018-06-13T07:45:11.958+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002402 seconds, Stopping threads took: 0,0000344 seconds +[2018-06-13T07:45:11.958+0000][32376][safepoint ] Application time: 0,0000450 seconds +[2018-06-13T07:45:11.958+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001906 seconds, Stopping threads took: 0,0000307 seconds +[2018-06-13T07:45:11.958+0000][32376][safepoint ] Application time: 0,0001119 seconds +[2018-06-13T07:45:11.958+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002029 seconds, Stopping threads took: 0,0000363 seconds +[2018-06-13T07:45:12.870+0000][32376][safepoint ] Application time: 0,9116963 seconds +[2018-06-13T07:45:12.871+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006301 seconds, Stopping threads took: 0,0001006 seconds +[2018-06-13T07:45:13.032+0000][32376][safepoint ] Application time: 0,1610241 seconds +[2018-06-13T07:45:13.035+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0031450 seconds, Stopping threads took: 0,0000784 seconds +[2018-06-13T07:45:13.706+0000][32376][safepoint ] Application time: 0,6714406 seconds +[2018-06-13T07:45:13.707+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002739 seconds, Stopping threads took: 0,0000494 seconds +[2018-06-13T07:45:13.707+0000][32376][safepoint ] Application time: 0,0006740 seconds +[2018-06-13T07:45:13.708+0000][32376][gc,start ] GC(50) Pause Young (Allocation Failure) +[2018-06-13T07:45:13.708+0000][32376][gc,task ] GC(50) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:13.713+0000][32376][gc,age ] GC(50) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:45:13.713+0000][32376][gc,age ] GC(50) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:45:13.713+0000][32376][gc,age ] GC(50) - age 1: 728872 bytes, 728872 total +[2018-06-13T07:45:13.713+0000][32376][gc,age ] GC(50) - age 2: 621408 bytes, 1350280 total +[2018-06-13T07:45:13.713+0000][32376][gc,heap ] GC(50) ParNew: 275290K->2860K(314560K) +[2018-06-13T07:45:13.713+0000][32376][gc,heap ] GC(50) CMS: 418391K->418391K(699072K) +[2018-06-13T07:45:13.713+0000][32376][gc,metaspace ] GC(50) Metaspace: 86572K->86572K(1132544K) +[2018-06-13T07:45:13.713+0000][32376][gc ] GC(50) Pause Young (Allocation Failure) 677M->411M(989M) 5,132ms +[2018-06-13T07:45:13.713+0000][32376][gc,cpu ] GC(50) User=0,03s Sys=0,00s Real=0,00s +[2018-06-13T07:45:13.713+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0054560 seconds, Stopping threads took: 0,0000422 seconds +[2018-06-13T07:45:13.775+0000][32376][safepoint ] Application time: 0,0624504 seconds +[2018-06-13T07:45:13.776+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002594 seconds, Stopping threads took: 0,0000774 seconds +[2018-06-13T07:45:14.023+0000][32376][safepoint ] Application time: 0,2470711 seconds +[2018-06-13T07:45:14.023+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005172 seconds, Stopping threads took: 0,0000836 seconds +[2018-06-13T07:45:14.024+0000][32376][safepoint ] Application time: 0,0004203 seconds +[2018-06-13T07:45:14.024+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003964 seconds, Stopping threads took: 0,0000630 seconds +[2018-06-13T07:45:15.024+0000][32376][safepoint ] Application time: 1,0001490 seconds +[2018-06-13T07:45:15.025+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003130 seconds, Stopping threads took: 0,0000635 seconds +[2018-06-13T07:45:16.025+0000][32376][safepoint ] Application time: 1,0000860 seconds +[2018-06-13T07:45:16.025+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004447 seconds, Stopping threads took: 0,0000847 seconds +[2018-06-13T07:45:17.025+0000][32376][safepoint ] Application time: 1,0001003 seconds +[2018-06-13T07:45:17.026+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001895 seconds, Stopping threads took: 0,0000406 seconds +[2018-06-13T07:45:20.026+0000][32376][safepoint ] Application time: 3,0003355 seconds +[2018-06-13T07:45:20.026+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001877 seconds, Stopping threads took: 0,0000475 seconds +[2018-06-13T07:45:21.280+0000][32376][safepoint ] Application time: 1,2532291 seconds +[2018-06-13T07:45:21.280+0000][32376][gc,start ] GC(51) Pause Young (Allocation Failure) +[2018-06-13T07:45:21.280+0000][32376][gc,task ] GC(51) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:21.285+0000][32376][gc,age ] GC(51) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:45:21.285+0000][32376][gc,age ] GC(51) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:45:21.285+0000][32376][gc,age ] GC(51) - age 1: 34144776 bytes, 34144776 total +[2018-06-13T07:45:21.285+0000][32376][gc,age ] GC(51) - age 2: 623960 bytes, 34768736 total +[2018-06-13T07:45:21.285+0000][32376][gc,age ] GC(51) - age 3: 615536 bytes, 35384272 total +[2018-06-13T07:45:21.285+0000][32376][gc,heap ] GC(51) ParNew: 282476K->34944K(314560K) +[2018-06-13T07:45:21.285+0000][32376][gc,heap ] GC(51) CMS: 418391K->418450K(699072K) +[2018-06-13T07:45:21.285+0000][32376][gc,metaspace ] GC(51) Metaspace: 86639K->86639K(1132544K) +[2018-06-13T07:45:21.285+0000][32376][gc ] GC(51) Pause Young (Allocation Failure) 684M->442M(989M) 5,504ms +[2018-06-13T07:45:21.285+0000][32376][gc,cpu ] GC(51) User=0,03s Sys=0,00s Real=0,00s +[2018-06-13T07:45:21.285+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0058106 seconds, Stopping threads took: 0,0000484 seconds +[2018-06-13T07:45:21.994+0000][32376][safepoint ] Application time: 0,7082315 seconds +[2018-06-13T07:45:21.994+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004390 seconds, Stopping threads took: 0,0000538 seconds +[2018-06-13T07:45:21.994+0000][32376][safepoint ] Application time: 0,0004222 seconds +[2018-06-13T07:45:21.995+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001904 seconds, Stopping threads took: 0,0000349 seconds +[2018-06-13T07:45:21.995+0000][32376][safepoint ] Application time: 0,0000762 seconds +[2018-06-13T07:45:21.995+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001455 seconds, Stopping threads took: 0,0000307 seconds +[2018-06-13T07:45:21.995+0000][32376][safepoint ] Application time: 0,0000902 seconds +[2018-06-13T07:45:21.995+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001349 seconds, Stopping threads took: 0,0000224 seconds +[2018-06-13T07:45:22.009+0000][32376][safepoint ] Application time: 0,0135444 seconds +[2018-06-13T07:45:22.009+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002513 seconds, Stopping threads took: 0,0000475 seconds +[2018-06-13T07:45:22.009+0000][32376][safepoint ] Application time: 0,0000460 seconds +[2018-06-13T07:45:22.009+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002340 seconds, Stopping threads took: 0,0001179 seconds +[2018-06-13T07:45:23.009+0000][32376][safepoint ] Application time: 1,0001290 seconds +[2018-06-13T07:45:23.010+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003517 seconds, Stopping threads took: 0,0000725 seconds +[2018-06-13T07:45:23.777+0000][32376][safepoint ] Application time: 0,7668201 seconds +[2018-06-13T07:45:23.777+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002661 seconds, Stopping threads took: 0,0000766 seconds +[2018-06-13T07:45:24.051+0000][32376][safepoint ] Application time: 0,2739398 seconds +[2018-06-13T07:45:24.052+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005253 seconds, Stopping threads took: 0,0001044 seconds +[2018-06-13T07:45:24.052+0000][32376][safepoint ] Application time: 0,0002684 seconds +[2018-06-13T07:45:24.052+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003628 seconds, Stopping threads took: 0,0000508 seconds +[2018-06-13T07:45:25.052+0000][32376][safepoint ] Application time: 1,0001052 seconds +[2018-06-13T07:45:25.053+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001880 seconds, Stopping threads took: 0,0000512 seconds +[2018-06-13T07:45:26.053+0000][32376][safepoint ] Application time: 1,0001224 seconds +[2018-06-13T07:45:26.053+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005638 seconds, Stopping threads took: 0,0000838 seconds +[2018-06-13T07:45:27.054+0000][32376][safepoint ] Application time: 1,0000801 seconds +[2018-06-13T07:45:27.054+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002283 seconds, Stopping threads took: 0,0000452 seconds +[2018-06-13T07:45:29.054+0000][32376][safepoint ] Application time: 2,0001827 seconds +[2018-06-13T07:45:29.054+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002134 seconds, Stopping threads took: 0,0000625 seconds +[2018-06-13T07:45:30.054+0000][32376][safepoint ] Application time: 1,0001157 seconds +[2018-06-13T07:45:30.055+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003031 seconds, Stopping threads took: 0,0000567 seconds +[2018-06-13T07:45:31.055+0000][32376][safepoint ] Application time: 1,0000906 seconds +[2018-06-13T07:45:31.055+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003834 seconds, Stopping threads took: 0,0000761 seconds +[2018-06-13T07:45:31.193+0000][32376][safepoint ] Application time: 0,1378578 seconds +[2018-06-13T07:45:31.193+0000][32376][gc,start ] GC(52) Pause Young (Allocation Failure) +[2018-06-13T07:45:31.193+0000][32376][gc,task ] GC(52) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:31.199+0000][32376][gc,age ] GC(52) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:45:31.199+0000][32376][gc,age ] GC(52) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:45:31.199+0000][32376][gc,age ] GC(52) - age 1: 823536 bytes, 823536 total +[2018-06-13T07:45:31.199+0000][32376][gc,heap ] GC(52) ParNew: 314560K->1914K(314560K) +[2018-06-13T07:45:31.199+0000][32376][gc,heap ] GC(52) CMS: 418450K->452892K(699072K) +[2018-06-13T07:45:31.199+0000][32376][gc,metaspace ] GC(52) Metaspace: 86772K->86772K(1132544K) +[2018-06-13T07:45:31.199+0000][32376][gc ] GC(52) Pause Young (Allocation Failure) 715M->444M(989M) 5,855ms +[2018-06-13T07:45:31.199+0000][32376][gc,cpu ] GC(52) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:45:31.199+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0061630 seconds, Stopping threads took: 0,0000481 seconds +[2018-06-13T07:45:31.337+0000][32376][safepoint ] Application time: 0,1373244 seconds +[2018-06-13T07:45:31.337+0000][32376][gc,start ] GC(53) Pause Young (Allocation Failure) +[2018-06-13T07:45:31.337+0000][32376][gc,task ] GC(53) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:31.339+0000][32376][gc,age ] GC(53) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:45:31.339+0000][32376][gc,age ] GC(53) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:45:31.339+0000][32376][gc,age ] GC(53) - age 1: 445720 bytes, 445720 total +[2018-06-13T07:45:31.339+0000][32376][gc,age ] GC(53) - age 2: 589488 bytes, 1035208 total +[2018-06-13T07:45:31.339+0000][32376][gc,heap ] GC(53) ParNew: 281530K->1285K(314560K) +[2018-06-13T07:45:31.339+0000][32376][gc,heap ] GC(53) CMS: 452892K->452892K(699072K) +[2018-06-13T07:45:31.339+0000][32376][gc,metaspace ] GC(53) Metaspace: 86775K->86775K(1132544K) +[2018-06-13T07:45:31.339+0000][32376][gc ] GC(53) Pause Young (Allocation Failure) 717M->443M(989M) 2,085ms +[2018-06-13T07:45:31.339+0000][32376][gc,cpu ] GC(53) User=0,01s Sys=0,00s Real=0,00s +[2018-06-13T07:45:31.339+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0023705 seconds, Stopping threads took: 0,0000410 seconds +[2018-06-13T07:45:32.023+0000][32376][safepoint ] Application time: 0,6842288 seconds +[2018-06-13T07:45:32.024+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002737 seconds, Stopping threads took: 0,0000479 seconds +[2018-06-13T07:45:32.024+0000][32376][safepoint ] Application time: 0,0002237 seconds +[2018-06-13T07:45:32.024+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001341 seconds, Stopping threads took: 0,0000133 seconds +[2018-06-13T07:45:32.024+0000][32376][safepoint ] Application time: 0,0000473 seconds +[2018-06-13T07:45:32.024+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001211 seconds, Stopping threads took: 0,0000124 seconds +[2018-06-13T07:45:32.024+0000][32376][safepoint ] Application time: 0,0000830 seconds +[2018-06-13T07:45:32.024+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001692 seconds, Stopping threads took: 0,0000111 seconds +[2018-06-13T07:45:32.032+0000][32376][safepoint ] Application time: 0,0074465 seconds +[2018-06-13T07:45:32.032+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002906 seconds, Stopping threads took: 0,0000971 seconds +[2018-06-13T07:45:34.032+0000][32376][safepoint ] Application time: 2,0002187 seconds +[2018-06-13T07:45:34.033+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002817 seconds, Stopping threads took: 0,0000588 seconds +[2018-06-13T07:45:34.079+0000][32376][safepoint ] Application time: 0,0457695 seconds +[2018-06-13T07:45:34.079+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001904 seconds, Stopping threads took: 0,0000500 seconds +[2018-06-13T07:45:34.079+0000][32376][safepoint ] Application time: 0,0001712 seconds +[2018-06-13T07:45:34.079+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001294 seconds, Stopping threads took: 0,0000316 seconds +[2018-06-13T07:45:35.079+0000][32376][safepoint ] Application time: 1,0000678 seconds +[2018-06-13T07:45:35.079+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001873 seconds, Stopping threads took: 0,0000609 seconds +[2018-06-13T07:45:37.080+0000][32376][safepoint ] Application time: 2,0001325 seconds +[2018-06-13T07:45:37.080+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003840 seconds, Stopping threads took: 0,0000816 seconds +[2018-06-13T07:45:37.351+0000][32376][safepoint ] Application time: 0,2706405 seconds +[2018-06-13T07:45:37.351+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003745 seconds, Stopping threads took: 0,0000535 seconds +[2018-06-13T07:45:37.358+0000][32376][safepoint ] Application time: 0,0072941 seconds +[2018-06-13T07:45:37.359+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002233 seconds, Stopping threads took: 0,0000397 seconds +[2018-06-13T07:45:37.685+0000][32376][safepoint ] Application time: 0,3266269 seconds +[2018-06-13T07:45:37.685+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002001 seconds, Stopping threads took: 0,0000422 seconds +[2018-06-13T07:45:38.642+0000][32376][safepoint ] Application time: 0,9567311 seconds +[2018-06-13T07:45:38.643+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004692 seconds, Stopping threads took: 0,0000838 seconds +[2018-06-13T07:45:38.761+0000][32376][safepoint ] Application time: 0,1186348 seconds +[2018-06-13T07:45:38.762+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003654 seconds, Stopping threads took: 0,0000675 seconds +[2018-06-13T07:45:38.762+0000][32376][safepoint ] Application time: 0,0002412 seconds +[2018-06-13T07:45:38.762+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002667 seconds, Stopping threads took: 0,0000391 seconds +[2018-06-13T07:45:38.763+0000][32376][safepoint ] Application time: 0,0002456 seconds +[2018-06-13T07:45:38.763+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002627 seconds, Stopping threads took: 0,0000390 seconds +[2018-06-13T07:45:38.763+0000][32376][safepoint ] Application time: 0,0002581 seconds +[2018-06-13T07:45:38.765+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0017685 seconds, Stopping threads took: 0,0001443 seconds +[2018-06-13T07:45:39.697+0000][32376][safepoint ] Application time: 0,9314571 seconds +[2018-06-13T07:45:39.697+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002422 seconds, Stopping threads took: 0,0000447 seconds +[2018-06-13T07:45:39.707+0000][32376][safepoint ] Application time: 0,0097938 seconds +[2018-06-13T07:45:39.707+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002731 seconds, Stopping threads took: 0,0000633 seconds +[2018-06-13T07:45:39.707+0000][32376][safepoint ] Application time: 0,0000809 seconds +[2018-06-13T07:45:39.707+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001739 seconds, Stopping threads took: 0,0000341 seconds +[2018-06-13T07:45:39.708+0000][32376][safepoint ] Application time: 0,0002044 seconds +[2018-06-13T07:45:39.708+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001841 seconds, Stopping threads took: 0,0000283 seconds +[2018-06-13T07:45:39.708+0000][32376][safepoint ] Application time: 0,0005865 seconds +[2018-06-13T07:45:39.708+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001656 seconds, Stopping threads took: 0,0000221 seconds +[2018-06-13T07:45:39.709+0000][32376][safepoint ] Application time: 0,0001404 seconds +[2018-06-13T07:45:39.709+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001297 seconds, Stopping threads took: 0,0000134 seconds +[2018-06-13T07:45:39.709+0000][32376][safepoint ] Application time: 0,0003596 seconds +[2018-06-13T07:45:39.709+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001453 seconds, Stopping threads took: 0,0000206 seconds +[2018-06-13T07:45:39.709+0000][32376][safepoint ] Application time: 0,0001744 seconds +[2018-06-13T07:45:39.710+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001405 seconds, Stopping threads took: 0,0000185 seconds +[2018-06-13T07:45:39.728+0000][32376][safepoint ] Application time: 0,0179127 seconds +[2018-06-13T07:45:39.728+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003334 seconds, Stopping threads took: 0,0001022 seconds +[2018-06-13T07:45:39.729+0000][32376][safepoint ] Application time: 0,0006278 seconds +[2018-06-13T07:45:39.729+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002905 seconds, Stopping threads took: 0,0001008 seconds +[2018-06-13T07:45:39.730+0000][32376][safepoint ] Application time: 0,0010856 seconds +[2018-06-13T07:45:39.732+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0017508 seconds, Stopping threads took: 0,0000483 seconds +[2018-06-13T07:45:39.740+0000][32376][safepoint ] Application time: 0,0080562 seconds +[2018-06-13T07:45:39.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020131 seconds, Stopping threads took: 0,0016989 seconds +[2018-06-13T07:45:39.743+0000][32376][safepoint ] Application time: 0,0007171 seconds +[2018-06-13T07:45:39.743+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004390 seconds, Stopping threads took: 0,0001677 seconds +[2018-06-13T07:45:39.743+0000][32376][safepoint ] Application time: 0,0002709 seconds +[2018-06-13T07:45:39.744+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004649 seconds, Stopping threads took: 0,0002633 seconds +[2018-06-13T07:45:39.745+0000][32376][safepoint ] Application time: 0,0009880 seconds +[2018-06-13T07:45:39.746+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006004 seconds, Stopping threads took: 0,0002516 seconds +[2018-06-13T07:45:39.748+0000][32376][safepoint ] Application time: 0,0024788 seconds +[2018-06-13T07:45:39.748+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003282 seconds, Stopping threads took: 0,0001031 seconds +[2018-06-13T07:45:39.751+0000][32376][safepoint ] Application time: 0,0029436 seconds +[2018-06-13T07:45:39.753+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014890 seconds, Stopping threads took: 0,0001037 seconds +[2018-06-13T07:45:39.754+0000][32376][safepoint ] Application time: 0,0007823 seconds +[2018-06-13T07:45:39.754+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003188 seconds, Stopping threads took: 0,0001281 seconds +[2018-06-13T07:45:39.755+0000][32376][safepoint ] Application time: 0,0004658 seconds +[2018-06-13T07:45:39.755+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002727 seconds, Stopping threads took: 0,0001025 seconds +[2018-06-13T07:45:39.755+0000][32376][safepoint ] Application time: 0,0004400 seconds +[2018-06-13T07:45:39.756+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003526 seconds, Stopping threads took: 0,0000948 seconds +[2018-06-13T07:45:39.757+0000][32376][safepoint ] Application time: 0,0015479 seconds +[2018-06-13T07:45:39.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003419 seconds, Stopping threads took: 0,0001358 seconds +[2018-06-13T07:45:39.758+0000][32376][safepoint ] Application time: 0,0003796 seconds +[2018-06-13T07:45:39.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002215 seconds, Stopping threads took: 0,0000621 seconds +[2018-06-13T07:45:39.758+0000][32376][safepoint ] Application time: 0,0002023 seconds +[2018-06-13T07:45:39.759+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002026 seconds, Stopping threads took: 0,0000615 seconds +[2018-06-13T07:45:39.761+0000][32376][safepoint ] Application time: 0,0018702 seconds +[2018-06-13T07:45:39.761+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004443 seconds, Stopping threads took: 0,0001598 seconds +[2018-06-13T07:45:39.771+0000][32376][safepoint ] Application time: 0,0102592 seconds +[2018-06-13T07:45:39.775+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0036077 seconds, Stopping threads took: 0,0032351 seconds +[2018-06-13T07:45:39.779+0000][32376][safepoint ] Application time: 0,0034761 seconds +[2018-06-13T07:45:39.779+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003325 seconds, Stopping threads took: 0,0001340 seconds +[2018-06-13T07:45:39.780+0000][32376][safepoint ] Application time: 0,0007389 seconds +[2018-06-13T07:45:39.780+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002509 seconds, Stopping threads took: 0,0000374 seconds +[2018-06-13T07:45:39.781+0000][32376][safepoint ] Application time: 0,0006640 seconds +[2018-06-13T07:45:39.782+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015007 seconds, Stopping threads took: 0,0000373 seconds +[2018-06-13T07:45:39.783+0000][32376][safepoint ] Application time: 0,0012555 seconds +[2018-06-13T07:45:39.787+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0034015 seconds, Stopping threads took: 0,0031956 seconds +[2018-06-13T07:45:39.788+0000][32376][safepoint ] Application time: 0,0009957 seconds +[2018-06-13T07:45:39.788+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003940 seconds, Stopping threads took: 0,0002157 seconds +[2018-06-13T07:45:39.789+0000][32376][safepoint ] Application time: 0,0005436 seconds +[2018-06-13T07:45:39.789+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003715 seconds, Stopping threads took: 0,0001701 seconds +[2018-06-13T07:45:39.790+0000][32376][safepoint ] Application time: 0,0004303 seconds +[2018-06-13T07:45:39.790+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004197 seconds, Stopping threads took: 0,0002501 seconds +[2018-06-13T07:45:39.790+0000][32376][safepoint ] Application time: 0,0000992 seconds +[2018-06-13T07:45:39.791+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003953 seconds, Stopping threads took: 0,0002432 seconds +[2018-06-13T07:45:39.791+0000][32376][safepoint ] Application time: 0,0007370 seconds +[2018-06-13T07:45:39.792+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003007 seconds, Stopping threads took: 0,0001387 seconds +[2018-06-13T07:45:39.792+0000][32376][safepoint ] Application time: 0,0001158 seconds +[2018-06-13T07:45:39.792+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002989 seconds, Stopping threads took: 0,0001670 seconds +[2018-06-13T07:45:39.792+0000][32376][safepoint ] Application time: 0,0002129 seconds +[2018-06-13T07:45:39.793+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002444 seconds, Stopping threads took: 0,0001179 seconds +[2018-06-13T07:45:39.798+0000][32376][safepoint ] Application time: 0,0057461 seconds +[2018-06-13T07:45:39.799+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005501 seconds, Stopping threads took: 0,0003041 seconds +[2018-06-13T07:45:39.799+0000][32376][safepoint ] Application time: 0,0003026 seconds +[2018-06-13T07:45:39.800+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002205 seconds, Stopping threads took: 0,0000583 seconds +[2018-06-13T07:45:39.808+0000][32376][safepoint ] Application time: 0,0088659 seconds +[2018-06-13T07:45:39.809+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003917 seconds, Stopping threads took: 0,0001174 seconds +[2018-06-13T07:45:39.811+0000][32376][safepoint ] Application time: 0,0025187 seconds +[2018-06-13T07:45:39.812+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003203 seconds, Stopping threads took: 0,0001303 seconds +[2018-06-13T07:45:39.813+0000][32376][safepoint ] Application time: 0,0008510 seconds +[2018-06-13T07:45:39.813+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003401 seconds, Stopping threads took: 0,0000778 seconds +[2018-06-13T07:45:39.819+0000][32376][safepoint ] Application time: 0,0059759 seconds +[2018-06-13T07:45:39.819+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003136 seconds, Stopping threads took: 0,0000938 seconds +[2018-06-13T07:45:39.823+0000][32376][safepoint ] Application time: 0,0032843 seconds +[2018-06-13T07:45:39.823+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002783 seconds, Stopping threads took: 0,0001072 seconds +[2018-06-13T07:45:39.824+0000][32376][safepoint ] Application time: 0,0007622 seconds +[2018-06-13T07:45:39.827+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0029907 seconds, Stopping threads took: 0,0028345 seconds +[2018-06-13T07:45:39.833+0000][32376][safepoint ] Application time: 0,0066255 seconds +[2018-06-13T07:45:39.834+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003750 seconds, Stopping threads took: 0,0001821 seconds +[2018-06-13T07:45:39.839+0000][32376][safepoint ] Application time: 0,0055473 seconds +[2018-06-13T07:45:39.840+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004866 seconds, Stopping threads took: 0,0002090 seconds +[2018-06-13T07:45:39.840+0000][32376][safepoint ] Application time: 0,0001417 seconds +[2018-06-13T07:45:39.840+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003870 seconds, Stopping threads took: 0,0001834 seconds +[2018-06-13T07:45:39.841+0000][32376][safepoint ] Application time: 0,0007216 seconds +[2018-06-13T07:45:39.842+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004965 seconds, Stopping threads took: 0,0001958 seconds +[2018-06-13T07:45:39.844+0000][32376][safepoint ] Application time: 0,0024914 seconds +[2018-06-13T07:45:39.845+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003483 seconds, Stopping threads took: 0,0001109 seconds +[2018-06-13T07:45:39.846+0000][32376][safepoint ] Application time: 0,0015046 seconds +[2018-06-13T07:45:39.846+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003148 seconds, Stopping threads took: 0,0001042 seconds +[2018-06-13T07:45:39.858+0000][32376][safepoint ] Application time: 0,0115725 seconds +[2018-06-13T07:45:39.859+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004937 seconds, Stopping threads took: 0,0002398 seconds +[2018-06-13T07:45:39.859+0000][32376][safepoint ] Application time: 0,0000536 seconds +[2018-06-13T07:45:39.859+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003289 seconds, Stopping threads took: 0,0000924 seconds +[2018-06-13T07:45:39.859+0000][32376][safepoint ] Application time: 0,0001644 seconds +[2018-06-13T07:45:39.859+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002559 seconds, Stopping threads took: 0,0000583 seconds +[2018-06-13T07:45:39.860+0000][32376][safepoint ] Application time: 0,0000891 seconds +[2018-06-13T07:45:39.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0029669 seconds, Stopping threads took: 0,0027114 seconds +[2018-06-13T07:45:39.863+0000][32376][safepoint ] Application time: 0,0005912 seconds +[2018-06-13T07:45:39.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002954 seconds, Stopping threads took: 0,0001382 seconds +[2018-06-13T07:45:39.864+0000][32376][safepoint ] Application time: 0,0002811 seconds +[2018-06-13T07:45:39.864+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002669 seconds, Stopping threads took: 0,0000974 seconds +[2018-06-13T07:45:39.864+0000][32376][safepoint ] Application time: 0,0001245 seconds +[2018-06-13T07:45:39.864+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002387 seconds, Stopping threads took: 0,0001038 seconds +[2018-06-13T07:45:39.864+0000][32376][safepoint ] Application time: 0,0000347 seconds +[2018-06-13T07:45:39.865+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001167 seconds, Stopping threads took: 0,0000084 seconds +[2018-06-13T07:45:39.865+0000][32376][safepoint ] Application time: 0,0000700 seconds +[2018-06-13T07:45:39.865+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003010 seconds, Stopping threads took: 0,0000559 seconds +[2018-06-13T07:45:39.865+0000][32376][safepoint ] Application time: 0,0001030 seconds +[2018-06-13T07:45:39.868+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0029228 seconds, Stopping threads took: 0,0001235 seconds +[2018-06-13T07:45:39.869+0000][32376][safepoint ] Application time: 0,0004441 seconds +[2018-06-13T07:45:39.869+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005194 seconds, Stopping threads took: 0,0001082 seconds +[2018-06-13T07:45:39.869+0000][32376][safepoint ] Application time: 0,0000543 seconds +[2018-06-13T07:45:39.870+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004482 seconds, Stopping threads took: 0,0000896 seconds +[2018-06-13T07:45:39.875+0000][32376][safepoint ] Application time: 0,0049802 seconds +[2018-06-13T07:45:39.875+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005281 seconds, Stopping threads took: 0,0001178 seconds +[2018-06-13T07:45:39.882+0000][32376][safepoint ] Application time: 0,0068573 seconds +[2018-06-13T07:45:39.883+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006122 seconds, Stopping threads took: 0,0003518 seconds +[2018-06-13T07:45:39.883+0000][32376][safepoint ] Application time: 0,0003395 seconds +[2018-06-13T07:45:39.883+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002961 seconds, Stopping threads took: 0,0001094 seconds +[2018-06-13T07:45:39.887+0000][32376][safepoint ] Application time: 0,0032011 seconds +[2018-06-13T07:45:39.887+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002494 seconds, Stopping threads took: 0,0000549 seconds +[2018-06-13T07:45:39.887+0000][32376][safepoint ] Application time: 0,0005258 seconds +[2018-06-13T07:45:39.888+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003176 seconds, Stopping threads took: 0,0001411 seconds +[2018-06-13T07:45:39.890+0000][32376][safepoint ] Application time: 0,0026647 seconds +[2018-06-13T07:45:39.891+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003103 seconds, Stopping threads took: 0,0000971 seconds +[2018-06-13T07:45:39.902+0000][32376][safepoint ] Application time: 0,0108779 seconds +[2018-06-13T07:45:39.902+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003631 seconds, Stopping threads took: 0,0000710 seconds +[2018-06-13T07:45:39.920+0000][32376][safepoint ] Application time: 0,0181753 seconds +[2018-06-13T07:45:39.921+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003366 seconds, Stopping threads took: 0,0000575 seconds +[2018-06-13T07:45:39.942+0000][32376][safepoint ] Application time: 0,0213281 seconds +[2018-06-13T07:45:39.942+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003256 seconds, Stopping threads took: 0,0000706 seconds +[2018-06-13T07:45:39.945+0000][32376][safepoint ] Application time: 0,0021384 seconds +[2018-06-13T07:45:39.945+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002049 seconds, Stopping threads took: 0,0000571 seconds +[2018-06-13T07:45:39.945+0000][32376][safepoint ] Application time: 0,0004915 seconds +[2018-06-13T07:45:39.945+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001608 seconds, Stopping threads took: 0,0000371 seconds +[2018-06-13T07:45:39.946+0000][32376][safepoint ] Application time: 0,0004706 seconds +[2018-06-13T07:45:39.946+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002962 seconds, Stopping threads took: 0,0000482 seconds +[2018-06-13T07:45:39.947+0000][32376][safepoint ] Application time: 0,0005176 seconds +[2018-06-13T07:45:39.947+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002326 seconds, Stopping threads took: 0,0000454 seconds +[2018-06-13T07:45:39.972+0000][32376][safepoint ] Application time: 0,0251186 seconds +[2018-06-13T07:45:39.973+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004169 seconds, Stopping threads took: 0,0000878 seconds +[2018-06-13T07:45:39.983+0000][32376][safepoint ] Application time: 0,0104558 seconds +[2018-06-13T07:45:39.984+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009678 seconds, Stopping threads took: 0,0000807 seconds +[2018-06-13T07:45:40.049+0000][32376][safepoint ] Application time: 0,0646683 seconds +[2018-06-13T07:45:40.050+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007448 seconds, Stopping threads took: 0,0001641 seconds +[2018-06-13T07:45:40.050+0000][32376][safepoint ] Application time: 0,0001958 seconds +[2018-06-13T07:45:40.051+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007313 seconds, Stopping threads took: 0,0001678 seconds +[2018-06-13T07:45:40.051+0000][32376][safepoint ] Application time: 0,0001160 seconds +[2018-06-13T07:45:40.051+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006764 seconds, Stopping threads took: 0,0000688 seconds +[2018-06-13T07:45:40.052+0000][32376][safepoint ] Application time: 0,0006119 seconds +[2018-06-13T07:45:40.053+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005213 seconds, Stopping threads took: 0,0000993 seconds +[2018-06-13T07:45:40.053+0000][32376][safepoint ] Application time: 0,0004396 seconds +[2018-06-13T07:45:40.054+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005100 seconds, Stopping threads took: 0,0000716 seconds +[2018-06-13T07:45:40.054+0000][32376][safepoint ] Application time: 0,0006288 seconds +[2018-06-13T07:45:40.055+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003645 seconds, Stopping threads took: 0,0000841 seconds +[2018-06-13T07:45:40.055+0000][32376][safepoint ] Application time: 0,0001593 seconds +[2018-06-13T07:45:40.055+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003149 seconds, Stopping threads took: 0,0000462 seconds +[2018-06-13T07:45:40.055+0000][32376][safepoint ] Application time: 0,0002936 seconds +[2018-06-13T07:45:40.056+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002670 seconds, Stopping threads took: 0,0000447 seconds +[2018-06-13T07:45:40.056+0000][32376][safepoint ] Application time: 0,0005407 seconds +[2018-06-13T07:45:40.057+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004003 seconds, Stopping threads took: 0,0000416 seconds +[2018-06-13T07:45:40.058+0000][32376][safepoint ] Application time: 0,0007591 seconds +[2018-06-13T07:45:40.058+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003706 seconds, Stopping threads took: 0,0000734 seconds +[2018-06-13T07:45:40.058+0000][32376][safepoint ] Application time: 0,0001224 seconds +[2018-06-13T07:45:40.058+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002327 seconds, Stopping threads took: 0,0000505 seconds +[2018-06-13T07:45:40.058+0000][32376][safepoint ] Application time: 0,0000953 seconds +[2018-06-13T07:45:40.059+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002372 seconds, Stopping threads took: 0,0000182 seconds +[2018-06-13T07:45:40.060+0000][32376][safepoint ] Application time: 0,0008221 seconds +[2018-06-13T07:45:40.060+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004271 seconds, Stopping threads took: 0,0000880 seconds +[2018-06-13T07:45:40.060+0000][32376][safepoint ] Application time: 0,0000937 seconds +[2018-06-13T07:45:40.060+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003055 seconds, Stopping threads took: 0,0000265 seconds +[2018-06-13T07:45:40.060+0000][32376][safepoint ] Application time: 0,0000214 seconds +[2018-06-13T07:45:40.061+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002428 seconds, Stopping threads took: 0,0000202 seconds +[2018-06-13T07:45:40.064+0000][32376][safepoint ] Application time: 0,0037437 seconds +[2018-06-13T07:45:40.065+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003747 seconds, Stopping threads took: 0,0000788 seconds +[2018-06-13T07:45:40.070+0000][32376][safepoint ] Application time: 0,0049174 seconds +[2018-06-13T07:45:40.071+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012708 seconds, Stopping threads took: 0,0010105 seconds +[2018-06-13T07:45:40.074+0000][32376][safepoint ] Application time: 0,0026279 seconds +[2018-06-13T07:45:40.074+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005716 seconds, Stopping threads took: 0,0001457 seconds +[2018-06-13T07:45:40.076+0000][32376][safepoint ] Application time: 0,0010821 seconds +[2018-06-13T07:45:40.076+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006139 seconds, Stopping threads took: 0,0002536 seconds +[2018-06-13T07:45:40.076+0000][32376][safepoint ] Application time: 0,0001778 seconds +[2018-06-13T07:45:40.077+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003020 seconds, Stopping threads took: 0,0000566 seconds +[2018-06-13T07:45:40.077+0000][32376][safepoint ] Application time: 0,0000268 seconds +[2018-06-13T07:45:40.077+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002065 seconds, Stopping threads took: 0,0000333 seconds +[2018-06-13T07:45:40.077+0000][32376][safepoint ] Application time: 0,0000374 seconds +[2018-06-13T07:45:40.079+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0017913 seconds, Stopping threads took: 0,0015478 seconds +[2018-06-13T07:45:40.079+0000][32376][safepoint ] Application time: 0,0002629 seconds +[2018-06-13T07:45:40.079+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003022 seconds, Stopping threads took: 0,0001399 seconds +[2018-06-13T07:45:40.080+0000][32376][safepoint ] Application time: 0,0008148 seconds +[2018-06-13T07:45:40.081+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003658 seconds, Stopping threads took: 0,0001080 seconds +[2018-06-13T07:45:40.083+0000][32376][safepoint ] Application time: 0,0021198 seconds +[2018-06-13T07:45:40.083+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003626 seconds, Stopping threads took: 0,0001172 seconds +[2018-06-13T07:45:40.090+0000][32376][safepoint ] Application time: 0,0063653 seconds +[2018-06-13T07:45:40.090+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003063 seconds, Stopping threads took: 0,0000495 seconds +[2018-06-13T07:45:40.090+0000][32376][safepoint ] Application time: 0,0001896 seconds +[2018-06-13T07:45:40.090+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002616 seconds, Stopping threads took: 0,0000698 seconds +[2018-06-13T07:45:40.091+0000][32376][safepoint ] Application time: 0,0001060 seconds +[2018-06-13T07:45:40.091+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002105 seconds, Stopping threads took: 0,0000520 seconds +[2018-06-13T07:45:40.091+0000][32376][safepoint ] Application time: 0,0000802 seconds +[2018-06-13T07:45:40.091+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002043 seconds, Stopping threads took: 0,0000261 seconds +[2018-06-13T07:45:40.370+0000][32376][safepoint ] Application time: 0,2793057 seconds +[2018-06-13T07:45:40.371+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006102 seconds, Stopping threads took: 0,0001048 seconds +[2018-06-13T07:45:40.371+0000][32376][safepoint ] Application time: 0,0002998 seconds +[2018-06-13T07:45:40.372+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004328 seconds, Stopping threads took: 0,0000631 seconds +[2018-06-13T07:45:40.380+0000][32376][safepoint ] Application time: 0,0077289 seconds +[2018-06-13T07:45:40.380+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005077 seconds, Stopping threads took: 0,0000991 seconds +[2018-06-13T07:45:40.381+0000][32376][safepoint ] Application time: 0,0005110 seconds +[2018-06-13T07:45:40.381+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004025 seconds, Stopping threads took: 0,0000542 seconds +[2018-06-13T07:45:40.404+0000][32376][safepoint ] Application time: 0,0229891 seconds +[2018-06-13T07:45:40.405+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004759 seconds, Stopping threads took: 0,0000855 seconds +[2018-06-13T07:45:40.405+0000][32376][safepoint ] Application time: 0,0002879 seconds +[2018-06-13T07:45:40.405+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003666 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-13T07:45:40.420+0000][32376][safepoint ] Application time: 0,0148267 seconds +[2018-06-13T07:45:40.421+0000][32376][gc,start ] GC(54) Pause Young (Allocation Failure) +[2018-06-13T07:45:40.421+0000][32376][gc,task ] GC(54) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:40.437+0000][32376][gc,age ] GC(54) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:45:40.437+0000][32376][gc,age ] GC(54) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:45:40.437+0000][32376][gc,age ] GC(54) - age 1: 19002832 bytes, 19002832 total +[2018-06-13T07:45:40.437+0000][32376][gc,age ] GC(54) - age 2: 6688 bytes, 19009520 total +[2018-06-13T07:45:40.437+0000][32376][gc,age ] GC(54) - age 3: 346368 bytes, 19355888 total +[2018-06-13T07:45:40.437+0000][32376][gc,heap ] GC(54) ParNew: 280584K->19596K(314560K) +[2018-06-13T07:45:40.437+0000][32376][gc,heap ] GC(54) CMS: 452892K->452892K(699072K) +[2018-06-13T07:45:40.437+0000][32376][gc,metaspace ] GC(54) Metaspace: 87916K->87916K(1134592K) +[2018-06-13T07:45:40.437+0000][32376][gc ] GC(54) Pause Young (Allocation Failure) 716M->461M(989M) 16,468ms +[2018-06-13T07:45:40.437+0000][32376][gc,cpu ] GC(54) User=0,10s Sys=0,00s Real=0,02s +[2018-06-13T07:45:40.438+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0171501 seconds, Stopping threads took: 0,0000857 seconds +[2018-06-13T07:45:40.439+0000][32376][safepoint ] Application time: 0,0014547 seconds +[2018-06-13T07:45:40.439+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004566 seconds, Stopping threads took: 0,0000681 seconds +[2018-06-13T07:45:40.440+0000][32376][safepoint ] Application time: 0,0002251 seconds +[2018-06-13T07:45:40.440+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003562 seconds, Stopping threads took: 0,0000478 seconds +[2018-06-13T07:45:40.452+0000][32376][safepoint ] Application time: 0,0119376 seconds +[2018-06-13T07:45:40.453+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006055 seconds, Stopping threads took: 0,0001254 seconds +[2018-06-13T07:45:40.453+0000][32376][safepoint ] Application time: 0,0001807 seconds +[2018-06-13T07:45:40.454+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007518 seconds, Stopping threads took: 0,0003866 seconds +[2018-06-13T07:45:40.468+0000][32376][safepoint ] Application time: 0,0137903 seconds +[2018-06-13T07:45:40.468+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006754 seconds, Stopping threads took: 0,0001014 seconds +[2018-06-13T07:45:40.477+0000][32376][safepoint ] Application time: 0,0088200 seconds +[2018-06-13T07:45:40.478+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006134 seconds, Stopping threads took: 0,0001184 seconds +[2018-06-13T07:45:40.479+0000][32376][safepoint ] Application time: 0,0006771 seconds +[2018-06-13T07:45:40.480+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006695 seconds, Stopping threads took: 0,0001389 seconds +[2018-06-13T07:45:40.577+0000][32376][safepoint ] Application time: 0,0976065 seconds +[2018-06-13T07:45:40.578+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009144 seconds, Stopping threads took: 0,0001426 seconds +[2018-06-13T07:45:40.579+0000][32376][safepoint ] Application time: 0,0003098 seconds +[2018-06-13T07:45:40.579+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006940 seconds, Stopping threads took: 0,0001356 seconds +[2018-06-13T07:45:40.587+0000][32376][safepoint ] Application time: 0,0075674 seconds +[2018-06-13T07:45:40.588+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005158 seconds, Stopping threads took: 0,0001005 seconds +[2018-06-13T07:45:40.588+0000][32376][safepoint ] Application time: 0,0004493 seconds +[2018-06-13T07:45:40.589+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004262 seconds, Stopping threads took: 0,0000611 seconds +[2018-06-13T07:45:40.613+0000][32376][safepoint ] Application time: 0,0247248 seconds +[2018-06-13T07:45:40.614+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005228 seconds, Stopping threads took: 0,0000852 seconds +[2018-06-13T07:45:40.614+0000][32376][safepoint ] Application time: 0,0001278 seconds +[2018-06-13T07:45:40.615+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004600 seconds, Stopping threads took: 0,0000604 seconds +[2018-06-13T07:45:40.627+0000][32376][safepoint ] Application time: 0,0121938 seconds +[2018-06-13T07:45:40.627+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004890 seconds, Stopping threads took: 0,0000968 seconds +[2018-06-13T07:45:40.628+0000][32376][safepoint ] Application time: 0,0002187 seconds +[2018-06-13T07:45:40.628+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007038 seconds, Stopping threads took: 0,0001705 seconds +[2018-06-13T07:45:40.629+0000][32376][safepoint ] Application time: 0,0001460 seconds +[2018-06-13T07:45:40.629+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006085 seconds, Stopping threads took: 0,0001113 seconds +[2018-06-13T07:45:40.629+0000][32376][safepoint ] Application time: 0,0001621 seconds +[2018-06-13T07:45:40.630+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004321 seconds, Stopping threads took: 0,0001151 seconds +[2018-06-13T07:45:40.636+0000][32376][safepoint ] Application time: 0,0057666 seconds +[2018-06-13T07:45:40.636+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006693 seconds, Stopping threads took: 0,0001242 seconds +[2018-06-13T07:45:40.637+0000][32376][safepoint ] Application time: 0,0003075 seconds +[2018-06-13T07:45:40.637+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006129 seconds, Stopping threads took: 0,0001661 seconds +[2018-06-13T07:45:40.902+0000][32376][safepoint ] Application time: 0,2641602 seconds +[2018-06-13T07:45:40.902+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001888 seconds, Stopping threads took: 0,0000371 seconds +[2018-06-13T07:45:40.902+0000][32376][safepoint ] Application time: 0,0001229 seconds +[2018-06-13T07:45:40.902+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000906 seconds, Stopping threads took: 0,0000089 seconds +[2018-06-13T07:45:40.908+0000][32376][safepoint ] Application time: 0,0062145 seconds +[2018-06-13T07:45:40.909+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002252 seconds, Stopping threads took: 0,0000727 seconds +[2018-06-13T07:45:40.909+0000][32376][safepoint ] Application time: 0,0002222 seconds +[2018-06-13T07:45:40.909+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001045 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-13T07:45:40.916+0000][32376][safepoint ] Application time: 0,0072393 seconds +[2018-06-13T07:45:40.916+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002020 seconds, Stopping threads took: 0,0000422 seconds +[2018-06-13T07:45:40.917+0000][32376][safepoint ] Application time: 0,0001377 seconds +[2018-06-13T07:45:40.918+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009806 seconds, Stopping threads took: 0,0000794 seconds +[2018-06-13T07:45:40.950+0000][32376][safepoint ] Application time: 0,0322513 seconds +[2018-06-13T07:45:40.950+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002214 seconds, Stopping threads took: 0,0000434 seconds +[2018-06-13T07:45:41.165+0000][32376][safepoint ] Application time: 0,2145918 seconds +[2018-06-13T07:45:41.166+0000][32376][gc,start ] GC(55) Pause Young (Allocation Failure) +[2018-06-13T07:45:41.166+0000][32376][gc,task ] GC(55) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:41.188+0000][32376][gc,age ] GC(55) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:45:41.188+0000][32376][gc,age ] GC(55) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:45:41.188+0000][32376][gc,age ] GC(55) - age 1: 1181544 bytes, 1181544 total +[2018-06-13T07:45:41.188+0000][32376][gc,heap ] GC(55) ParNew: 299212K->10131K(314560K) +[2018-06-13T07:45:41.188+0000][32376][gc,heap ] GC(55) CMS: 452892K->456056K(699072K) +[2018-06-13T07:45:41.188+0000][32376][gc,metaspace ] GC(55) Metaspace: 87954K->87954K(1134592K) +[2018-06-13T07:45:41.188+0000][32376][gc ] GC(55) Pause Young (Allocation Failure) 734M->455M(989M) 22,611ms +[2018-06-13T07:45:41.188+0000][32376][gc,cpu ] GC(55) User=0,10s Sys=0,00s Real=0,03s +[2018-06-13T07:45:41.188+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0236301 seconds, Stopping threads took: 0,0001052 seconds +[2018-06-13T07:45:42.046+0000][32376][safepoint ] Application time: 0,8575711 seconds +[2018-06-13T07:45:42.047+0000][32376][gc,start ] GC(56) Pause Young (Allocation Failure) +[2018-06-13T07:45:42.047+0000][32376][gc,task ] GC(56) Using 8 workers of 8 for evacuation +[2018-06-13T07:45:42.055+0000][32376][gc,age ] GC(56) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:45:42.055+0000][32376][gc,age ] GC(56) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:45:42.055+0000][32376][gc,age ] GC(56) - age 1: 8384712 bytes, 8384712 total +[2018-06-13T07:45:42.055+0000][32376][gc,age ] GC(56) - age 2: 1168344 bytes, 9553056 total +[2018-06-13T07:45:42.055+0000][32376][gc,heap ] GC(56) ParNew: 289681K->10169K(314560K) +[2018-06-13T07:45:42.055+0000][32376][gc,heap ] GC(56) CMS: 456056K->456056K(699072K) +[2018-06-13T07:45:42.055+0000][32376][gc,metaspace ] GC(56) Metaspace: 87985K->87985K(1134592K) +[2018-06-13T07:45:42.055+0000][32376][gc ] GC(56) Pause Young (Allocation Failure) 728M->455M(989M) 8,479ms +[2018-06-13T07:45:42.056+0000][32376][gc,cpu ] GC(56) User=0,05s Sys=0,00s Real=0,01s +[2018-06-13T07:45:42.056+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0096633 seconds, Stopping threads took: 0,0001276 seconds +[2018-06-13T07:45:42.069+0000][32376][safepoint ] Application time: 0,0131441 seconds +[2018-06-13T07:45:42.069+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003974 seconds, Stopping threads took: 0,0000960 seconds +[2018-06-13T07:45:42.070+0000][32376][safepoint ] Application time: 0,0004952 seconds +[2018-06-13T07:45:42.070+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003376 seconds, Stopping threads took: 0,0000836 seconds +[2018-06-13T07:45:42.070+0000][32376][safepoint ] Application time: 0,0000525 seconds +[2018-06-13T07:45:42.071+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003643 seconds, Stopping threads took: 0,0000590 seconds +[2018-06-13T07:45:42.071+0000][32376][safepoint ] Application time: 0,0001243 seconds +[2018-06-13T07:45:42.071+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003433 seconds, Stopping threads took: 0,0000544 seconds +[2018-06-13T07:45:43.035+0000][32376][safepoint ] Application time: 0,9641260 seconds +[2018-06-13T07:45:43.036+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002221 seconds, Stopping threads took: 0,0000487 seconds +[2018-06-13T07:45:43.322+0000][32376][safepoint ] Application time: 0,2863892 seconds +[2018-06-13T07:45:43.322+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001970 seconds, Stopping threads took: 0,0000354 seconds +[2018-06-13T07:45:43.480+0000][32376][safepoint ] Application time: 0,1573163 seconds +[2018-06-13T07:45:43.480+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001951 seconds, Stopping threads took: 0,0000404 seconds +[2018-06-13T07:45:43.625+0000][32376][safepoint ] Application time: 0,1449700 seconds +[2018-06-13T07:45:43.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002063 seconds, Stopping threads took: 0,0000415 seconds +[2018-06-13T07:45:43.629+0000][32376][safepoint ] Application time: 0,0044085 seconds +[2018-06-13T07:45:43.630+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002059 seconds, Stopping threads took: 0,0000667 seconds +[2018-06-13T07:45:43.727+0000][32376][safepoint ] Application time: 0,0968354 seconds +[2018-06-13T07:45:43.727+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001839 seconds, Stopping threads took: 0,0000404 seconds +[2018-06-13T07:45:43.790+0000][32376][safepoint ] Application time: 0,0627785 seconds +[2018-06-13T07:45:43.790+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002780 seconds, Stopping threads took: 0,0000762 seconds +[2018-06-13T07:45:43.808+0000][32376][safepoint ] Application time: 0,0180071 seconds +[2018-06-13T07:45:43.808+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001828 seconds, Stopping threads took: 0,0000384 seconds +[2018-06-13T07:45:43.895+0000][32376][safepoint ] Application time: 0,0864285 seconds +[2018-06-13T07:45:43.895+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005891 seconds, Stopping threads took: 0,0001243 seconds +[2018-06-13T07:45:43.966+0000][32376][safepoint ] Application time: 0,0707230 seconds +[2018-06-13T07:45:43.966+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004689 seconds, Stopping threads took: 0,0000846 seconds +[2018-06-13T07:45:44.036+0000][32376][safepoint ] Application time: 0,0696980 seconds +[2018-06-13T07:45:44.037+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003584 seconds, Stopping threads took: 0,0000685 seconds +[2018-06-13T07:45:44.093+0000][32376][safepoint ] Application time: 0,0559341 seconds +[2018-06-13T07:45:44.093+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002311 seconds, Stopping threads took: 0,0000488 seconds +[2018-06-13T07:45:44.093+0000][32376][safepoint ] Application time: 0,0001695 seconds +[2018-06-13T07:45:44.093+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001467 seconds, Stopping threads took: 0,0000227 seconds +[2018-06-13T07:45:44.194+0000][32376][safepoint ] Application time: 0,1003617 seconds +[2018-06-13T07:45:44.194+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002643 seconds, Stopping threads took: 0,0000592 seconds +[2018-06-13T07:45:44.259+0000][32376][safepoint ] Application time: 0,0650413 seconds +[2018-06-13T07:45:44.259+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003760 seconds, Stopping threads took: 0,0000575 seconds +[2018-06-13T07:45:44.403+0000][32376][safepoint ] Application time: 0,1440002 seconds +[2018-06-13T07:45:44.404+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003315 seconds, Stopping threads took: 0,0000770 seconds +[2018-06-13T07:45:44.473+0000][32376][safepoint ] Application time: 0,0694748 seconds +[2018-06-13T07:45:44.474+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005192 seconds, Stopping threads took: 0,0001178 seconds +[2018-06-13T07:45:44.719+0000][32376][safepoint ] Application time: 0,2447731 seconds +[2018-06-13T07:45:44.719+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002082 seconds, Stopping threads took: 0,0000436 seconds +[2018-06-13T07:45:44.791+0000][32376][safepoint ] Application time: 0,0726433 seconds +[2018-06-13T07:45:44.792+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004544 seconds, Stopping threads took: 0,0001600 seconds +[2018-06-13T07:45:45.017+0000][32376][safepoint ] Application time: 0,2254450 seconds +[2018-06-13T07:45:45.018+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004943 seconds, Stopping threads took: 0,0000768 seconds +[2018-06-13T07:45:45.083+0000][32376][safepoint ] Application time: 0,0653140 seconds +[2018-06-13T07:45:45.084+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004302 seconds, Stopping threads took: 0,0000693 seconds +[2018-06-13T07:45:45.216+0000][32376][safepoint ] Application time: 0,1317006 seconds +[2018-06-13T07:45:45.216+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002536 seconds, Stopping threads took: 0,0000490 seconds +[2018-06-13T07:45:45.304+0000][32376][safepoint ] Application time: 0,0876219 seconds +[2018-06-13T07:45:45.304+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004627 seconds, Stopping threads took: 0,0000833 seconds +[2018-06-13T07:45:45.367+0000][32376][safepoint ] Application time: 0,0629273 seconds +[2018-06-13T07:45:45.368+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013567 seconds, Stopping threads took: 0,0000526 seconds +[2018-06-13T07:45:46.369+0000][32376][safepoint ] Application time: 1,0001385 seconds +[2018-06-13T07:45:46.369+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005192 seconds, Stopping threads took: 0,0001030 seconds +[2018-06-13T07:45:47.369+0000][32376][safepoint ] Application time: 1,0001010 seconds +[2018-06-13T07:45:47.370+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005712 seconds, Stopping threads took: 0,0001040 seconds +[2018-06-13T07:45:50.370+0000][32376][safepoint ] Application time: 3,0003478 seconds +[2018-06-13T07:45:50.371+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004644 seconds, Stopping threads took: 0,0000823 seconds +[2018-06-13T07:45:51.371+0000][32376][safepoint ] Application time: 1,0000736 seconds +[2018-06-13T07:45:51.371+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004803 seconds, Stopping threads took: 0,0000741 seconds +[2018-06-13T07:45:52.105+0000][32376][safepoint ] Application time: 0,7332454 seconds +[2018-06-13T07:45:52.105+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003585 seconds, Stopping threads took: 0,0000750 seconds +[2018-06-13T07:45:52.106+0000][32376][safepoint ] Application time: 0,0004686 seconds +[2018-06-13T07:45:52.106+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002766 seconds, Stopping threads took: 0,0000408 seconds +[2018-06-13T07:45:52.106+0000][32376][safepoint ] Application time: 0,0000346 seconds +[2018-06-13T07:45:52.106+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002543 seconds, Stopping threads took: 0,0000524 seconds +[2018-06-13T07:45:52.106+0000][32376][safepoint ] Application time: 0,0000690 seconds +[2018-06-13T07:45:52.107+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002182 seconds, Stopping threads took: 0,0000257 seconds +[2018-06-13T07:45:52.117+0000][32376][safepoint ] Application time: 0,0103413 seconds +[2018-06-13T07:45:52.117+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002563 seconds, Stopping threads took: 0,0000727 seconds +[2018-06-13T07:45:53.117+0000][32376][safepoint ] Application time: 1,0001307 seconds +[2018-06-13T07:45:53.118+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003935 seconds, Stopping threads took: 0,0000894 seconds +[2018-06-13T07:45:54.104+0000][32376][safepoint ] Application time: 0,9862605 seconds +[2018-06-13T07:45:54.104+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002163 seconds, Stopping threads took: 0,0000470 seconds +[2018-06-13T07:45:54.105+0000][32376][safepoint ] Application time: 0,0001571 seconds +[2018-06-13T07:45:54.105+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001331 seconds, Stopping threads took: 0,0000157 seconds +[2018-06-13T07:45:55.105+0000][32376][safepoint ] Application time: 1,0001000 seconds +[2018-06-13T07:45:55.105+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004884 seconds, Stopping threads took: 0,0001032 seconds +[2018-06-13T07:45:57.106+0000][32376][safepoint ] Application time: 2,0002524 seconds +[2018-06-13T07:45:57.106+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002921 seconds, Stopping threads took: 0,0000674 seconds +[2018-06-13T07:46:00.106+0000][32376][safepoint ] Application time: 3,0003930 seconds +[2018-06-13T07:46:00.107+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001852 seconds, Stopping threads took: 0,0000414 seconds +[2018-06-13T07:46:01.107+0000][32376][safepoint ] Application time: 1,0001470 seconds +[2018-06-13T07:46:01.107+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004471 seconds, Stopping threads took: 0,0000849 seconds +[2018-06-13T07:46:01.196+0000][32376][safepoint ] Application time: 0,0888538 seconds +[2018-06-13T07:46:01.196+0000][32376][gc,start ] GC(57) Pause Young (Allocation Failure) +[2018-06-13T07:46:01.197+0000][32376][gc,task ] GC(57) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:01.201+0000][32376][gc,age ] GC(57) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-13T07:46:01.201+0000][32376][gc,age ] GC(57) Age table with threshold 1 (max threshold 6) +[2018-06-13T07:46:01.201+0000][32376][gc,age ] GC(57) - age 1: 18100008 bytes, 18100008 total +[2018-06-13T07:46:01.201+0000][32376][gc,age ] GC(57) - age 2: 53832 bytes, 18153840 total +[2018-06-13T07:46:01.201+0000][32376][gc,age ] GC(57) - age 3: 1165240 bytes, 19319080 total +[2018-06-13T07:46:01.201+0000][32376][gc,heap ] GC(57) ParNew: 289785K->24026K(314560K) +[2018-06-13T07:46:01.201+0000][32376][gc,heap ] GC(57) CMS: 456056K->472440K(699072K) +[2018-06-13T07:46:01.201+0000][32376][gc,metaspace ] GC(57) Metaspace: 88121K->88121K(1134592K) +[2018-06-13T07:46:01.201+0000][32376][gc ] GC(57) Pause Young (Allocation Failure) 728M->484M(989M) 5,026ms +[2018-06-13T07:46:01.202+0000][32376][gc,cpu ] GC(57) User=0,03s Sys=0,00s Real=0,00s +[2018-06-13T07:46:01.202+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0053357 seconds, Stopping threads took: 0,0000402 seconds +[2018-06-13T07:46:02.142+0000][32376][safepoint ] Application time: 0,9407431 seconds +[2018-06-13T07:46:02.143+0000][32376][gc,start ] GC(58) Pause Young (Allocation Failure) +[2018-06-13T07:46:02.143+0000][32376][gc,task ] GC(58) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:02.149+0000][32376][gc,age ] GC(58) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:02.149+0000][32376][gc,age ] GC(58) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:02.149+0000][32376][gc,age ] GC(58) - age 1: 2844936 bytes, 2844936 total +[2018-06-13T07:46:02.149+0000][32376][gc,heap ] GC(58) ParNew: 303642K->3897K(314560K) +[2018-06-13T07:46:02.150+0000][32376][gc,heap ] GC(58) CMS: 472440K->491082K(699072K) +[2018-06-13T07:46:02.150+0000][32376][gc,metaspace ] GC(58) Metaspace: 88150K->88150K(1134592K) +[2018-06-13T07:46:02.150+0000][32376][gc ] GC(58) Pause Young (Allocation Failure) 757M->483M(989M) 6,621ms +[2018-06-13T07:46:02.150+0000][32376][gc,cpu ] GC(58) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:46:02.150+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0072779 seconds, Stopping threads took: 0,0001582 seconds +[2018-06-13T07:46:02.152+0000][32376][safepoint ] Application time: 0,0021311 seconds +[2018-06-13T07:46:02.152+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002588 seconds, Stopping threads took: 0,0000490 seconds +[2018-06-13T07:46:02.153+0000][32376][safepoint ] Application time: 0,0004934 seconds +[2018-06-13T07:46:02.153+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001987 seconds, Stopping threads took: 0,0000302 seconds +[2018-06-13T07:46:02.153+0000][32376][safepoint ] Application time: 0,0001150 seconds +[2018-06-13T07:46:02.153+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001585 seconds, Stopping threads took: 0,0000225 seconds +[2018-06-13T07:46:02.153+0000][32376][safepoint ] Application time: 0,0001390 seconds +[2018-06-13T07:46:02.153+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001641 seconds, Stopping threads took: 0,0000228 seconds +[2018-06-13T07:46:02.163+0000][32376][safepoint ] Application time: 0,0092767 seconds +[2018-06-13T07:46:02.163+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003109 seconds, Stopping threads took: 0,0001365 seconds +[2018-06-13T07:46:02.175+0000][32376][safepoint ] Application time: 0,0115858 seconds +[2018-06-13T07:46:02.175+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003056 seconds, Stopping threads took: 0,0000686 seconds +[2018-06-13T07:46:02.202+0000][32376][safepoint ] Application time: 0,0269132 seconds +[2018-06-13T07:46:02.203+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014177 seconds, Stopping threads took: 0,0000580 seconds +[2018-06-13T07:46:02.326+0000][32376][safepoint ] Application time: 0,1227207 seconds +[2018-06-13T07:46:02.327+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004718 seconds, Stopping threads took: 0,0000507 seconds +[2018-06-13T07:46:03.179+0000][32376][safepoint ] Application time: 0,8518596 seconds +[2018-06-13T07:46:03.180+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009950 seconds, Stopping threads took: 0,0001418 seconds +[2018-06-13T07:46:03.180+0000][32376][safepoint ] Application time: 0,0005678 seconds +[2018-06-13T07:46:03.181+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004353 seconds, Stopping threads took: 0,0001049 seconds +[2018-06-13T07:46:03.181+0000][32376][safepoint ] Application time: 0,0002890 seconds +[2018-06-13T07:46:03.181+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003925 seconds, Stopping threads took: 0,0001368 seconds +[2018-06-13T07:46:03.182+0000][32376][safepoint ] Application time: 0,0005329 seconds +[2018-06-13T07:46:03.182+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003463 seconds, Stopping threads took: 0,0000612 seconds +[2018-06-13T07:46:03.183+0000][32376][safepoint ] Application time: 0,0004145 seconds +[2018-06-13T07:46:03.185+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0017993 seconds, Stopping threads took: 0,0000611 seconds +[2018-06-13T07:46:04.115+0000][32376][safepoint ] Application time: 0,9297679 seconds +[2018-06-13T07:46:04.115+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002949 seconds, Stopping threads took: 0,0000718 seconds +[2018-06-13T07:46:04.115+0000][32376][safepoint ] Application time: 0,0002618 seconds +[2018-06-13T07:46:04.115+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001683 seconds, Stopping threads took: 0,0000243 seconds +[2018-06-13T07:46:05.115+0000][32376][safepoint ] Application time: 1,0001147 seconds +[2018-06-13T07:46:05.116+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001937 seconds, Stopping threads took: 0,0000432 seconds +[2018-06-13T07:46:08.116+0000][32376][safepoint ] Application time: 3,0003511 seconds +[2018-06-13T07:46:08.116+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002818 seconds, Stopping threads took: 0,0000584 seconds +[2018-06-13T07:46:08.766+0000][32376][safepoint ] Application time: 0,6493611 seconds +[2018-06-13T07:46:08.766+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002043 seconds, Stopping threads took: 0,0000524 seconds +[2018-06-13T07:46:08.766+0000][32376][safepoint ] Application time: 0,0001165 seconds +[2018-06-13T07:46:08.766+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001057 seconds, Stopping threads took: 0,0000268 seconds +[2018-06-13T07:46:09.174+0000][32376][safepoint ] Application time: 0,4074441 seconds +[2018-06-13T07:46:09.174+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006180 seconds, Stopping threads took: 0,0000961 seconds +[2018-06-13T07:46:09.182+0000][32376][safepoint ] Application time: 0,0074639 seconds +[2018-06-13T07:46:09.182+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004856 seconds, Stopping threads took: 0,0000879 seconds +[2018-06-13T07:46:09.348+0000][32376][safepoint ] Application time: 0,1652536 seconds +[2018-06-13T07:46:09.348+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002949 seconds, Stopping threads took: 0,0000622 seconds +[2018-06-13T07:46:09.517+0000][32376][safepoint ] Application time: 0,1691475 seconds +[2018-06-13T07:46:09.518+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002840 seconds, Stopping threads took: 0,0000559 seconds +[2018-06-13T07:46:09.643+0000][32376][safepoint ] Application time: 0,1251935 seconds +[2018-06-13T07:46:09.643+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003635 seconds, Stopping threads took: 0,0000857 seconds +[2018-06-13T07:46:09.863+0000][32376][safepoint ] Application time: 0,2199032 seconds +[2018-06-13T07:46:09.865+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0020166 seconds, Stopping threads took: 0,0017652 seconds +[2018-06-13T07:46:10.304+0000][32376][safepoint ] Application time: 0,4388632 seconds +[2018-06-13T07:46:10.304+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001848 seconds, Stopping threads took: 0,0000392 seconds +[2018-06-13T07:46:10.378+0000][32376][safepoint ] Application time: 0,0741080 seconds +[2018-06-13T07:46:10.379+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002716 seconds, Stopping threads took: 0,0000505 seconds +[2018-06-13T07:46:10.552+0000][32376][safepoint ] Application time: 0,1732944 seconds +[2018-06-13T07:46:10.552+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002340 seconds, Stopping threads took: 0,0000568 seconds +[2018-06-13T07:46:10.552+0000][32376][safepoint ] Application time: 0,0001108 seconds +[2018-06-13T07:46:10.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001448 seconds, Stopping threads took: 0,0000191 seconds +[2018-06-13T07:46:10.553+0000][32376][safepoint ] Application time: 0,0000659 seconds +[2018-06-13T07:46:10.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002206 seconds, Stopping threads took: 0,0001023 seconds +[2018-06-13T07:46:10.553+0000][32376][safepoint ] Application time: 0,0000687 seconds +[2018-06-13T07:46:10.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001218 seconds, Stopping threads took: 0,0000166 seconds +[2018-06-13T07:46:10.553+0000][32376][safepoint ] Application time: 0,0000567 seconds +[2018-06-13T07:46:10.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002406 seconds, Stopping threads took: 0,0001089 seconds +[2018-06-13T07:46:11.263+0000][32376][safepoint ] Application time: 0,7096260 seconds +[2018-06-13T07:46:11.263+0000][32376][gc,start ] GC(59) Pause Young (Allocation Failure) +[2018-06-13T07:46:11.263+0000][32376][gc,task ] GC(59) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:11.266+0000][32376][gc,age ] GC(59) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:11.266+0000][32376][gc,age ] GC(59) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:11.266+0000][32376][gc,age ] GC(59) - age 1: 1218664 bytes, 1218664 total +[2018-06-13T07:46:11.266+0000][32376][gc,age ] GC(59) - age 2: 68840 bytes, 1287504 total +[2018-06-13T07:46:11.266+0000][32376][gc,heap ] GC(59) ParNew: 283513K->2482K(314560K) +[2018-06-13T07:46:11.266+0000][32376][gc,heap ] GC(59) CMS: 491082K->491082K(699072K) +[2018-06-13T07:46:11.266+0000][32376][gc,metaspace ] GC(59) Metaspace: 88567K->88567K(1134592K) +[2018-06-13T07:46:11.266+0000][32376][gc ] GC(59) Pause Young (Allocation Failure) 756M->481M(989M) 2,763ms +[2018-06-13T07:46:11.266+0000][32376][gc,cpu ] GC(59) User=0,02s Sys=0,00s Real=0,00s +[2018-06-13T07:46:11.266+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0030319 seconds, Stopping threads took: 0,0000437 seconds +[2018-06-13T07:46:12.219+0000][32376][safepoint ] Application time: 0,9531670 seconds +[2018-06-13T07:46:12.220+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003600 seconds, Stopping threads took: 0,0000799 seconds +[2018-06-13T07:46:12.220+0000][32376][safepoint ] Application time: 0,0003236 seconds +[2018-06-13T07:46:12.220+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003099 seconds, Stopping threads took: 0,0000755 seconds +[2018-06-13T07:46:12.220+0000][32376][safepoint ] Application time: 0,0000275 seconds +[2018-06-13T07:46:12.221+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002598 seconds, Stopping threads took: 0,0000660 seconds +[2018-06-13T07:46:12.222+0000][32376][safepoint ] Application time: 0,0017224 seconds +[2018-06-13T07:46:12.223+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002293 seconds, Stopping threads took: 0,0000520 seconds +[2018-06-13T07:46:12.734+0000][32376][safepoint ] Application time: 0,5109917 seconds +[2018-06-13T07:46:12.734+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003350 seconds, Stopping threads took: 0,0000669 seconds +[2018-06-13T07:46:12.734+0000][32376][safepoint ] Application time: 0,0003588 seconds +[2018-06-13T07:46:12.735+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002957 seconds, Stopping threads took: 0,0000619 seconds +[2018-06-13T07:46:12.735+0000][32376][safepoint ] Application time: 0,0005117 seconds +[2018-06-13T07:46:12.736+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003017 seconds, Stopping threads took: 0,0000652 seconds +[2018-06-13T07:46:12.736+0000][32376][safepoint ] Application time: 0,0004161 seconds +[2018-06-13T07:46:12.736+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002138 seconds, Stopping threads took: 0,0000452 seconds +[2018-06-13T07:46:12.736+0000][32376][safepoint ] Application time: 0,0000851 seconds +[2018-06-13T07:46:12.737+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001762 seconds, Stopping threads took: 0,0000473 seconds +[2018-06-13T07:46:12.737+0000][32376][safepoint ] Application time: 0,0008873 seconds +[2018-06-13T07:46:12.738+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002229 seconds, Stopping threads took: 0,0000632 seconds +[2018-06-13T07:46:12.738+0000][32376][safepoint ] Application time: 0,0001687 seconds +[2018-06-13T07:46:12.738+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001720 seconds, Stopping threads took: 0,0000354 seconds +[2018-06-13T07:46:12.741+0000][32376][safepoint ] Application time: 0,0028995 seconds +[2018-06-13T07:46:12.741+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002319 seconds, Stopping threads took: 0,0000617 seconds +[2018-06-13T07:46:12.742+0000][32376][safepoint ] Application time: 0,0006874 seconds +[2018-06-13T07:46:12.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002863 seconds, Stopping threads took: 0,0000647 seconds +[2018-06-13T07:46:12.743+0000][32376][safepoint ] Application time: 0,0009583 seconds +[2018-06-13T07:46:12.744+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002816 seconds, Stopping threads took: 0,0001073 seconds +[2018-06-13T07:46:12.744+0000][32376][safepoint ] Application time: 0,0001984 seconds +[2018-06-13T07:46:12.744+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003449 seconds, Stopping threads took: 0,0001001 seconds +[2018-06-13T07:46:12.745+0000][32376][safepoint ] Application time: 0,0007532 seconds +[2018-06-13T07:46:12.745+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004203 seconds, Stopping threads took: 0,0001063 seconds +[2018-06-13T07:46:12.746+0000][32376][safepoint ] Application time: 0,0005613 seconds +[2018-06-13T07:46:12.746+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002439 seconds, Stopping threads took: 0,0000755 seconds +[2018-06-13T07:46:12.748+0000][32376][safepoint ] Application time: 0,0016814 seconds +[2018-06-13T07:46:12.748+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002658 seconds, Stopping threads took: 0,0000788 seconds +[2018-06-13T07:46:12.750+0000][32376][safepoint ] Application time: 0,0013387 seconds +[2018-06-13T07:46:12.750+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003340 seconds, Stopping threads took: 0,0000663 seconds +[2018-06-13T07:46:12.750+0000][32376][safepoint ] Application time: 0,0004634 seconds +[2018-06-13T07:46:12.751+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003507 seconds, Stopping threads took: 0,0000956 seconds +[2018-06-13T07:46:12.751+0000][32376][safepoint ] Application time: 0,0001944 seconds +[2018-06-13T07:46:12.751+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003247 seconds, Stopping threads took: 0,0000676 seconds +[2018-06-13T07:46:12.752+0000][32376][safepoint ] Application time: 0,0002824 seconds +[2018-06-13T07:46:12.752+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002915 seconds, Stopping threads took: 0,0000657 seconds +[2018-06-13T07:46:12.758+0000][32376][safepoint ] Application time: 0,0060090 seconds +[2018-06-13T07:46:12.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003182 seconds, Stopping threads took: 0,0000633 seconds +[2018-06-13T07:46:12.759+0000][32376][safepoint ] Application time: 0,0002128 seconds +[2018-06-13T07:46:12.759+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002957 seconds, Stopping threads took: 0,0000667 seconds +[2018-06-13T07:46:12.760+0000][32376][safepoint ] Application time: 0,0007499 seconds +[2018-06-13T07:46:12.761+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015780 seconds, Stopping threads took: 0,0000670 seconds +[2018-06-13T07:46:12.765+0000][32376][safepoint ] Application time: 0,0038439 seconds +[2018-06-13T07:46:12.767+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0016039 seconds, Stopping threads took: 0,0000612 seconds +[2018-06-13T07:46:12.806+0000][32376][safepoint ] Application time: 0,0395312 seconds +[2018-06-13T07:46:12.807+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004173 seconds, Stopping threads took: 0,0000568 seconds +[2018-06-13T07:46:12.835+0000][32376][safepoint ] Application time: 0,0278990 seconds +[2018-06-13T07:46:12.835+0000][32376][gc,start ] GC(60) Pause Young (Allocation Failure) +[2018-06-13T07:46:12.835+0000][32376][gc,task ] GC(60) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:12.849+0000][32376][gc,age ] GC(60) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:12.849+0000][32376][gc,age ] GC(60) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:12.849+0000][32376][gc,age ] GC(60) - age 1: 1163984 bytes, 1163984 total +[2018-06-13T07:46:12.849+0000][32376][gc,age ] GC(60) - age 2: 352264 bytes, 1516248 total +[2018-06-13T07:46:12.849+0000][32376][gc,age ] GC(60) - age 3: 62976 bytes, 1579224 total +[2018-06-13T07:46:12.849+0000][32376][gc,heap ] GC(60) ParNew: 282098K->1668K(314560K) +[2018-06-13T07:46:12.849+0000][32376][gc,heap ] GC(60) CMS: 491082K->491082K(699072K) +[2018-06-13T07:46:12.849+0000][32376][gc,metaspace ] GC(60) Metaspace: 88715K->88715K(1134592K) +[2018-06-13T07:46:12.849+0000][32376][gc ] GC(60) Pause Young (Allocation Failure) 755M->481M(989M) 13,984ms +[2018-06-13T07:46:12.849+0000][32376][gc,cpu ] GC(60) User=0,07s Sys=0,00s Real=0,01s +[2018-06-13T07:46:12.849+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0145602 seconds, Stopping threads took: 0,0001277 seconds +[2018-06-13T07:46:12.871+0000][32376][safepoint ] Application time: 0,0218486 seconds +[2018-06-13T07:46:12.872+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004809 seconds, Stopping threads took: 0,0001014 seconds +[2018-06-13T07:46:12.972+0000][32376][safepoint ] Application time: 0,1002267 seconds +[2018-06-13T07:46:12.973+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012005 seconds, Stopping threads took: 0,0001069 seconds +[2018-06-13T07:46:12.974+0000][32376][safepoint ] Application time: 0,0002033 seconds +[2018-06-13T07:46:12.974+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003876 seconds, Stopping threads took: 0,0000629 seconds +[2018-06-13T07:46:13.036+0000][32376][safepoint ] Application time: 0,0618239 seconds +[2018-06-13T07:46:13.036+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003109 seconds, Stopping threads took: 0,0000612 seconds +[2018-06-13T07:46:13.324+0000][32376][safepoint ] Application time: 0,2874880 seconds +[2018-06-13T07:46:13.324+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003145 seconds, Stopping threads took: 0,0000596 seconds +[2018-06-13T07:46:13.480+0000][32376][safepoint ] Application time: 0,1559939 seconds +[2018-06-13T07:46:13.480+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003097 seconds, Stopping threads took: 0,0000600 seconds +[2018-06-13T07:46:13.493+0000][32376][safepoint ] Application time: 0,0122721 seconds +[2018-06-13T07:46:13.493+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003457 seconds, Stopping threads took: 0,0000723 seconds +[2018-06-13T07:46:13.494+0000][32376][safepoint ] Application time: 0,0009980 seconds +[2018-06-13T07:46:13.494+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002736 seconds, Stopping threads took: 0,0000631 seconds +[2018-06-13T07:46:13.625+0000][32376][safepoint ] Application time: 0,1308909 seconds +[2018-06-13T07:46:13.627+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012758 seconds, Stopping threads took: 0,0000524 seconds +[2018-06-13T07:46:13.738+0000][32376][safepoint ] Application time: 0,1113805 seconds +[2018-06-13T07:46:13.738+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001974 seconds, Stopping threads took: 0,0000423 seconds +[2018-06-13T07:46:13.739+0000][32376][safepoint ] Application time: 0,0003756 seconds +[2018-06-13T07:46:13.739+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001726 seconds, Stopping threads took: 0,0000421 seconds +[2018-06-13T07:46:13.740+0000][32376][safepoint ] Application time: 0,0014382 seconds +[2018-06-13T07:46:13.741+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002765 seconds, Stopping threads took: 0,0001099 seconds +[2018-06-13T07:46:13.741+0000][32376][safepoint ] Application time: 0,0001907 seconds +[2018-06-13T07:46:13.741+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001426 seconds, Stopping threads took: 0,0000189 seconds +[2018-06-13T07:46:13.741+0000][32376][safepoint ] Application time: 0,0001347 seconds +[2018-06-13T07:46:13.741+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001226 seconds, Stopping threads took: 0,0000192 seconds +[2018-06-13T07:46:13.802+0000][32376][safepoint ] Application time: 0,0608443 seconds +[2018-06-13T07:46:13.802+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002569 seconds, Stopping threads took: 0,0000807 seconds +[2018-06-13T07:46:13.804+0000][32376][safepoint ] Application time: 0,0017446 seconds +[2018-06-13T07:46:13.804+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003157 seconds, Stopping threads took: 0,0000637 seconds +[2018-06-13T07:46:13.805+0000][32376][safepoint ] Application time: 0,0000980 seconds +[2018-06-13T07:46:13.805+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002650 seconds, Stopping threads took: 0,0000732 seconds +[2018-06-13T07:46:13.805+0000][32376][safepoint ] Application time: 0,0000510 seconds +[2018-06-13T07:46:13.805+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002043 seconds, Stopping threads took: 0,0000204 seconds +[2018-06-13T07:46:14.134+0000][32376][safepoint ] Application time: 0,3287650 seconds +[2018-06-13T07:46:14.135+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0007359 seconds, Stopping threads took: 0,0001483 seconds +[2018-06-13T07:46:14.135+0000][32376][safepoint ] Application time: 0,0003866 seconds +[2018-06-13T07:46:14.136+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006016 seconds, Stopping threads took: 0,0000736 seconds +[2018-06-13T07:46:15.136+0000][32376][safepoint ] Application time: 1,0001244 seconds +[2018-06-13T07:46:15.136+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002140 seconds, Stopping threads took: 0,0000453 seconds +[2018-06-13T07:46:15.369+0000][32376][safepoint ] Application time: 0,2325633 seconds +[2018-06-13T07:46:15.369+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002935 seconds, Stopping threads took: 0,0000779 seconds +[2018-06-13T07:46:15.461+0000][32376][safepoint ] Application time: 0,0914847 seconds +[2018-06-13T07:46:15.461+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001908 seconds, Stopping threads took: 0,0000434 seconds +[2018-06-13T07:46:15.532+0000][32376][safepoint ] Application time: 0,0716460 seconds +[2018-06-13T07:46:15.533+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004467 seconds, Stopping threads took: 0,0000802 seconds +[2018-06-13T07:46:15.744+0000][32376][safepoint ] Application time: 0,2110403 seconds +[2018-06-13T07:46:15.744+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002562 seconds, Stopping threads took: 0,0000593 seconds +[2018-06-13T07:46:15.990+0000][32376][safepoint ] Application time: 0,2452955 seconds +[2018-06-13T07:46:15.990+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005584 seconds, Stopping threads took: 0,0000908 seconds +[2018-06-13T07:46:15.996+0000][32376][safepoint ] Application time: 0,0051713 seconds +[2018-06-13T07:46:15.996+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004750 seconds, Stopping threads took: 0,0000865 seconds +[2018-06-13T07:46:16.113+0000][32376][safepoint ] Application time: 0,1172454 seconds +[2018-06-13T07:46:16.114+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002244 seconds, Stopping threads took: 0,0000385 seconds +[2018-06-13T07:46:16.236+0000][32376][safepoint ] Application time: 0,1227228 seconds +[2018-06-13T07:46:16.237+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002105 seconds, Stopping threads took: 0,0000391 seconds +[2018-06-13T07:46:16.243+0000][32376][safepoint ] Application time: 0,0062630 seconds +[2018-06-13T07:46:16.243+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002037 seconds, Stopping threads took: 0,0000411 seconds +[2018-06-13T07:46:16.373+0000][32376][safepoint ] Application time: 0,1301163 seconds +[2018-06-13T07:46:16.374+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005140 seconds, Stopping threads took: 0,0001024 seconds +[2018-06-13T07:46:16.486+0000][32376][safepoint ] Application time: 0,1119678 seconds +[2018-06-13T07:46:16.486+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002953 seconds, Stopping threads took: 0,0000583 seconds +[2018-06-13T07:46:16.565+0000][32376][safepoint ] Application time: 0,0788065 seconds +[2018-06-13T07:46:16.565+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002007 seconds, Stopping threads took: 0,0000438 seconds +[2018-06-13T07:46:16.612+0000][32376][safepoint ] Application time: 0,0465365 seconds +[2018-06-13T07:46:16.612+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001887 seconds, Stopping threads took: 0,0000367 seconds +[2018-06-13T07:46:16.717+0000][32376][safepoint ] Application time: 0,1054087 seconds +[2018-06-13T07:46:16.718+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002587 seconds, Stopping threads took: 0,0000454 seconds +[2018-06-13T07:46:16.846+0000][32376][safepoint ] Application time: 0,1284367 seconds +[2018-06-13T07:46:16.846+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002045 seconds, Stopping threads took: 0,0000416 seconds +[2018-06-13T07:46:17.846+0000][32376][safepoint ] Application time: 1,0000759 seconds +[2018-06-13T07:46:17.847+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002202 seconds, Stopping threads took: 0,0000547 seconds +[2018-06-13T07:46:19.847+0000][32376][safepoint ] Application time: 2,0001939 seconds +[2018-06-13T07:46:19.847+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002048 seconds, Stopping threads took: 0,0000516 seconds +[2018-06-13T07:46:20.524+0000][32376][safepoint ] Application time: 0,6767074 seconds +[2018-06-13T07:46:20.524+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002526 seconds, Stopping threads took: 0,0000453 seconds +[2018-06-13T07:46:20.526+0000][32376][safepoint ] Application time: 0,0016770 seconds +[2018-06-13T07:46:20.526+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002387 seconds, Stopping threads took: 0,0000548 seconds +[2018-06-13T07:46:20.527+0000][32376][safepoint ] Application time: 0,0010282 seconds +[2018-06-13T07:46:20.527+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002289 seconds, Stopping threads took: 0,0000567 seconds +[2018-06-13T07:46:20.528+0000][32376][safepoint ] Application time: 0,0004795 seconds +[2018-06-13T07:46:20.528+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001607 seconds, Stopping threads took: 0,0000334 seconds +[2018-06-13T07:46:20.528+0000][32376][safepoint ] Application time: 0,0001714 seconds +[2018-06-13T07:46:20.528+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001287 seconds, Stopping threads took: 0,0000281 seconds +[2018-06-13T07:46:20.528+0000][32376][safepoint ] Application time: 0,0000456 seconds +[2018-06-13T07:46:20.529+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001148 seconds, Stopping threads took: 0,0000259 seconds +[2018-06-13T07:46:20.529+0000][32376][safepoint ] Application time: 0,0000201 seconds +[2018-06-13T07:46:20.529+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001560 seconds, Stopping threads took: 0,0000549 seconds +[2018-06-13T07:46:20.529+0000][32376][safepoint ] Application time: 0,0000749 seconds +[2018-06-13T07:46:20.529+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001421 seconds, Stopping threads took: 0,0000312 seconds +[2018-06-13T07:46:20.530+0000][32376][safepoint ] Application time: 0,0007986 seconds +[2018-06-13T07:46:20.530+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001650 seconds, Stopping threads took: 0,0000355 seconds +[2018-06-13T07:46:20.530+0000][32376][safepoint ] Application time: 0,0000519 seconds +[2018-06-13T07:46:20.530+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001522 seconds, Stopping threads took: 0,0000297 seconds +[2018-06-13T07:46:20.531+0000][32376][safepoint ] Application time: 0,0006244 seconds +[2018-06-13T07:46:20.531+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001264 seconds, Stopping threads took: 0,0000296 seconds +[2018-06-13T07:46:20.531+0000][32376][safepoint ] Application time: 0,0002298 seconds +[2018-06-13T07:46:20.531+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001273 seconds, Stopping threads took: 0,0000118 seconds +[2018-06-13T07:46:20.531+0000][32376][safepoint ] Application time: 0,0001159 seconds +[2018-06-13T07:46:20.532+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001026 seconds, Stopping threads took: 0,0000120 seconds +[2018-06-13T07:46:20.532+0000][32376][safepoint ] Application time: 0,0000206 seconds +[2018-06-13T07:46:20.532+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001092 seconds, Stopping threads took: 0,0000270 seconds +[2018-06-13T07:46:20.532+0000][32376][safepoint ] Application time: 0,0001368 seconds +[2018-06-13T07:46:20.532+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001441 seconds, Stopping threads took: 0,0000141 seconds +[2018-06-13T07:46:20.533+0000][32376][safepoint ] Application time: 0,0008511 seconds +[2018-06-13T07:46:20.533+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002091 seconds, Stopping threads took: 0,0000408 seconds +[2018-06-13T07:46:20.533+0000][32376][safepoint ] Application time: 0,0000389 seconds +[2018-06-13T07:46:20.533+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001043 seconds, Stopping threads took: 0,0000258 seconds +[2018-06-13T07:46:20.534+0000][32376][safepoint ] Application time: 0,0006989 seconds +[2018-06-13T07:46:20.534+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002783 seconds, Stopping threads took: 0,0000371 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Application time: 0,0002366 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002259 seconds, Stopping threads took: 0,0000301 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Application time: 0,0001316 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001148 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Application time: 0,0000404 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001033 seconds, Stopping threads took: 0,0000083 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Application time: 0,0000910 seconds +[2018-06-13T07:46:20.535+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000878 seconds, Stopping threads took: 0,0000081 seconds +[2018-06-13T07:46:20.536+0000][32376][safepoint ] Application time: 0,0010130 seconds +[2018-06-13T07:46:20.537+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001778 seconds, Stopping threads took: 0,0000337 seconds +[2018-06-13T07:46:20.539+0000][32376][safepoint ] Application time: 0,0020540 seconds +[2018-06-13T07:46:20.539+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002146 seconds, Stopping threads took: 0,0000388 seconds +[2018-06-13T07:46:20.540+0000][32376][safepoint ] Application time: 0,0008842 seconds +[2018-06-13T07:46:20.540+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001868 seconds, Stopping threads took: 0,0000356 seconds +[2018-06-13T07:46:20.541+0000][32376][safepoint ] Application time: 0,0005884 seconds +[2018-06-13T07:46:20.541+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002455 seconds, Stopping threads took: 0,0000417 seconds +[2018-06-13T07:46:20.549+0000][32376][safepoint ] Application time: 0,0084263 seconds +[2018-06-13T07:46:20.550+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001980 seconds, Stopping threads took: 0,0000446 seconds +[2018-06-13T07:46:20.552+0000][32376][safepoint ] Application time: 0,0025425 seconds +[2018-06-13T07:46:20.552+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003121 seconds, Stopping threads took: 0,0001328 seconds +[2018-06-13T07:46:20.553+0000][32376][safepoint ] Application time: 0,0000633 seconds +[2018-06-13T07:46:20.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002671 seconds, Stopping threads took: 0,0000562 seconds +[2018-06-13T07:46:20.553+0000][32376][safepoint ] Application time: 0,0001744 seconds +[2018-06-13T07:46:20.553+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002289 seconds, Stopping threads took: 0,0000718 seconds +[2018-06-13T07:46:20.553+0000][32376][safepoint ] Application time: 0,0001539 seconds +[2018-06-13T07:46:20.554+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002816 seconds, Stopping threads took: 0,0000639 seconds +[2018-06-13T07:46:20.554+0000][32376][safepoint ] Application time: 0,0000814 seconds +[2018-06-13T07:46:20.554+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002555 seconds, Stopping threads took: 0,0000400 seconds +[2018-06-13T07:46:20.556+0000][32376][safepoint ] Application time: 0,0017051 seconds +[2018-06-13T07:46:20.556+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003365 seconds, Stopping threads took: 0,0001223 seconds +[2018-06-13T07:46:20.556+0000][32376][safepoint ] Application time: 0,0000520 seconds +[2018-06-13T07:46:20.556+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002551 seconds, Stopping threads took: 0,0000891 seconds +[2018-06-13T07:46:20.557+0000][32376][safepoint ] Application time: 0,0001656 seconds +[2018-06-13T07:46:20.557+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002209 seconds, Stopping threads took: 0,0001042 seconds +[2018-06-13T07:46:20.557+0000][32376][safepoint ] Application time: 0,0000601 seconds +[2018-06-13T07:46:20.557+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001483 seconds, Stopping threads took: 0,0000258 seconds +[2018-06-13T07:46:20.558+0000][32376][safepoint ] Application time: 0,0004241 seconds +[2018-06-13T07:46:20.558+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001737 seconds, Stopping threads took: 0,0000545 seconds +[2018-06-13T07:46:20.558+0000][32376][safepoint ] Application time: 0,0000466 seconds +[2018-06-13T07:46:20.558+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001980 seconds, Stopping threads took: 0,0000813 seconds +[2018-06-13T07:46:20.558+0000][32376][safepoint ] Application time: 0,0000485 seconds +[2018-06-13T07:46:20.558+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001332 seconds, Stopping threads took: 0,0000310 seconds +[2018-06-13T07:46:20.565+0000][32376][safepoint ] Application time: 0,0066127 seconds +[2018-06-13T07:46:20.565+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004631 seconds, Stopping threads took: 0,0002762 seconds +[2018-06-13T07:46:20.566+0000][32376][safepoint ] Application time: 0,0004841 seconds +[2018-06-13T07:46:20.566+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004838 seconds, Stopping threads took: 0,0001747 seconds +[2018-06-13T07:46:20.566+0000][32376][safepoint ] Application time: 0,0000282 seconds +[2018-06-13T07:46:20.567+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001577 seconds, Stopping threads took: 0,0000413 seconds +[2018-06-13T07:46:20.570+0000][32376][safepoint ] Application time: 0,0036375 seconds +[2018-06-13T07:46:20.570+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002993 seconds, Stopping threads took: 0,0000698 seconds +[2018-06-13T07:46:20.577+0000][32376][safepoint ] Application time: 0,0063136 seconds +[2018-06-13T07:46:20.577+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003132 seconds, Stopping threads took: 0,0001366 seconds +[2018-06-13T07:46:20.578+0000][32376][safepoint ] Application time: 0,0004299 seconds +[2018-06-13T07:46:20.578+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003413 seconds, Stopping threads took: 0,0001316 seconds +[2018-06-13T07:46:20.578+0000][32376][safepoint ] Application time: 0,0000545 seconds +[2018-06-13T07:46:20.578+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001914 seconds, Stopping threads took: 0,0000382 seconds +[2018-06-13T07:46:20.578+0000][32376][safepoint ] Application time: 0,0001185 seconds +[2018-06-13T07:46:20.579+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002663 seconds, Stopping threads took: 0,0000450 seconds +[2018-06-13T07:46:20.581+0000][32376][safepoint ] Application time: 0,0019486 seconds +[2018-06-13T07:46:20.581+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002965 seconds, Stopping threads took: 0,0001203 seconds +[2018-06-13T07:46:20.581+0000][32376][safepoint ] Application time: 0,0000627 seconds +[2018-06-13T07:46:20.581+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001294 seconds, Stopping threads took: 0,0000329 seconds +[2018-06-13T07:46:20.586+0000][32376][safepoint ] Application time: 0,0044926 seconds +[2018-06-13T07:46:20.586+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002913 seconds, Stopping threads took: 0,0000591 seconds +[2018-06-13T07:46:20.586+0000][32376][safepoint ] Application time: 0,0000571 seconds +[2018-06-13T07:46:20.586+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001699 seconds, Stopping threads took: 0,0000200 seconds +[2018-06-13T07:46:20.590+0000][32376][safepoint ] Application time: 0,0035016 seconds +[2018-06-13T07:46:20.590+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002618 seconds, Stopping threads took: 0,0000984 seconds +[2018-06-13T07:46:20.590+0000][32376][safepoint ] Application time: 0,0003233 seconds +[2018-06-13T07:46:20.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001662 seconds, Stopping threads took: 0,0000353 seconds +[2018-06-13T07:46:20.601+0000][32376][safepoint ] Application time: 0,0100573 seconds +[2018-06-13T07:46:20.601+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003433 seconds, Stopping threads took: 0,0001084 seconds +[2018-06-13T07:46:20.603+0000][32376][safepoint ] Application time: 0,0019060 seconds +[2018-06-13T07:46:20.603+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003712 seconds, Stopping threads took: 0,0001918 seconds +[2018-06-13T07:46:20.604+0000][32376][safepoint ] Application time: 0,0010273 seconds +[2018-06-13T07:46:20.605+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002856 seconds, Stopping threads took: 0,0001123 seconds +[2018-06-13T07:46:20.610+0000][32376][safepoint ] Application time: 0,0048795 seconds +[2018-06-13T07:46:20.610+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003073 seconds, Stopping threads took: 0,0000592 seconds +[2018-06-13T07:46:20.612+0000][32376][safepoint ] Application time: 0,0018691 seconds +[2018-06-13T07:46:20.612+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003123 seconds, Stopping threads took: 0,0000884 seconds +[2018-06-13T07:46:20.615+0000][32376][safepoint ] Application time: 0,0024504 seconds +[2018-06-13T07:46:20.615+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002886 seconds, Stopping threads took: 0,0000505 seconds +[2018-06-13T07:46:20.618+0000][32376][safepoint ] Application time: 0,0031172 seconds +[2018-06-13T07:46:20.619+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013605 seconds, Stopping threads took: 0,0000703 seconds +[2018-06-13T07:46:20.622+0000][32376][safepoint ] Application time: 0,0021308 seconds +[2018-06-13T07:46:20.622+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002870 seconds, Stopping threads took: 0,0000523 seconds +[2018-06-13T07:46:20.706+0000][32376][safepoint ] Application time: 0,0836352 seconds +[2018-06-13T07:46:20.706+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002813 seconds, Stopping threads took: 0,0000654 seconds +[2018-06-13T07:46:20.769+0000][32376][safepoint ] Application time: 0,0634745 seconds +[2018-06-13T07:46:20.770+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003614 seconds, Stopping threads took: 0,0000724 seconds +[2018-06-13T07:46:20.820+0000][32376][safepoint ] Application time: 0,0505671 seconds +[2018-06-13T07:46:20.821+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004191 seconds, Stopping threads took: 0,0000652 seconds +[2018-06-13T07:46:20.821+0000][32376][safepoint ] Application time: 0,0000352 seconds +[2018-06-13T07:46:20.821+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002029 seconds, Stopping threads took: 0,0000428 seconds +[2018-06-13T07:46:20.861+0000][32376][safepoint ] Application time: 0,0402038 seconds +[2018-06-13T07:46:20.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0013628 seconds, Stopping threads took: 0,0000471 seconds +[2018-06-13T07:46:20.863+0000][32376][safepoint ] Application time: 0,0000943 seconds +[2018-06-13T07:46:20.863+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002049 seconds, Stopping threads took: 0,0000439 seconds +[2018-06-13T07:46:20.868+0000][32376][safepoint ] Application time: 0,0048511 seconds +[2018-06-13T07:46:20.868+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003942 seconds, Stopping threads took: 0,0000823 seconds +[2018-06-13T07:46:20.895+0000][32376][safepoint ] Application time: 0,0270665 seconds +[2018-06-13T07:46:20.896+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003476 seconds, Stopping threads took: 0,0000544 seconds +[2018-06-13T07:46:20.904+0000][32376][safepoint ] Application time: 0,0082473 seconds +[2018-06-13T07:46:20.905+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0011618 seconds, Stopping threads took: 0,0000574 seconds +[2018-06-13T07:46:20.976+0000][32376][safepoint ] Application time: 0,0707504 seconds +[2018-06-13T07:46:20.976+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004011 seconds, Stopping threads took: 0,0000690 seconds +[2018-06-13T07:46:21.007+0000][32376][safepoint ] Application time: 0,0309388 seconds +[2018-06-13T07:46:21.008+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002326 seconds, Stopping threads took: 0,0000451 seconds +[2018-06-13T07:46:21.118+0000][32376][safepoint ] Application time: 0,1107115 seconds +[2018-06-13T07:46:21.119+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003999 seconds, Stopping threads took: 0,0000823 seconds +[2018-06-13T07:46:21.162+0000][32376][safepoint ] Application time: 0,0435552 seconds +[2018-06-13T07:46:21.163+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003678 seconds, Stopping threads took: 0,0000843 seconds +[2018-06-13T07:46:21.207+0000][32376][safepoint ] Application time: 0,0437651 seconds +[2018-06-13T07:46:21.207+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003516 seconds, Stopping threads took: 0,0001137 seconds +[2018-06-13T07:46:21.225+0000][32376][safepoint ] Application time: 0,0175643 seconds +[2018-06-13T07:46:21.225+0000][32376][gc,start ] GC(61) Pause Young (Allocation Failure) +[2018-06-13T07:46:21.225+0000][32376][gc,task ] GC(61) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:21.232+0000][32376][gc,age ] GC(61) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:21.232+0000][32376][gc,age ] GC(61) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:21.232+0000][32376][gc,age ] GC(61) - age 1: 6800376 bytes, 6800376 total +[2018-06-13T07:46:21.232+0000][32376][gc,age ] GC(61) - age 2: 611608 bytes, 7411984 total +[2018-06-13T07:46:21.232+0000][32376][gc,age ] GC(61) - age 3: 324376 bytes, 7736360 total +[2018-06-13T07:46:21.232+0000][32376][gc,age ] GC(61) - age 4: 62352 bytes, 7798712 total +[2018-06-13T07:46:21.232+0000][32376][gc,heap ] GC(61) ParNew: 281284K->8079K(314560K) +[2018-06-13T07:46:21.232+0000][32376][gc,heap ] GC(61) CMS: 491082K->491082K(699072K) +[2018-06-13T07:46:21.232+0000][32376][gc,metaspace ] GC(61) Metaspace: 89175K->89175K(1134592K) +[2018-06-13T07:46:21.232+0000][32376][gc ] GC(61) Pause Young (Allocation Failure) 754M->487M(989M) 7,294ms +[2018-06-13T07:46:21.232+0000][32376][gc,cpu ] GC(61) User=0,05s Sys=0,00s Real=0,01s +[2018-06-13T07:46:21.232+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0078275 seconds, Stopping threads took: 0,0001136 seconds +[2018-06-13T07:46:21.237+0000][32376][safepoint ] Application time: 0,0048511 seconds +[2018-06-13T07:46:21.238+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004213 seconds, Stopping threads took: 0,0000919 seconds +[2018-06-13T07:46:21.241+0000][32376][safepoint ] Application time: 0,0032794 seconds +[2018-06-13T07:46:21.242+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004448 seconds, Stopping threads took: 0,0001030 seconds +[2018-06-13T07:46:21.247+0000][32376][safepoint ] Application time: 0,0051401 seconds +[2018-06-13T07:46:21.247+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004598 seconds, Stopping threads took: 0,0001170 seconds +[2018-06-13T07:46:21.260+0000][32376][safepoint ] Application time: 0,0127471 seconds +[2018-06-13T07:46:21.260+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004211 seconds, Stopping threads took: 0,0000899 seconds +[2018-06-13T07:46:21.270+0000][32376][safepoint ] Application time: 0,0094626 seconds +[2018-06-13T07:46:21.270+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004106 seconds, Stopping threads took: 0,0001055 seconds +[2018-06-13T07:46:21.271+0000][32376][safepoint ] Application time: 0,0005722 seconds +[2018-06-13T07:46:21.271+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004375 seconds, Stopping threads took: 0,0001108 seconds +[2018-06-13T07:46:21.272+0000][32376][safepoint ] Application time: 0,0005268 seconds +[2018-06-13T07:46:21.275+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0030733 seconds, Stopping threads took: 0,0026476 seconds +[2018-06-13T07:46:21.285+0000][32376][safepoint ] Application time: 0,0100229 seconds +[2018-06-13T07:46:21.286+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003955 seconds, Stopping threads took: 0,0000880 seconds +[2018-06-13T07:46:21.287+0000][32376][safepoint ] Application time: 0,0009615 seconds +[2018-06-13T07:46:21.287+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003892 seconds, Stopping threads took: 0,0000755 seconds +[2018-06-13T07:46:21.291+0000][32376][safepoint ] Application time: 0,0039804 seconds +[2018-06-13T07:46:21.291+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003668 seconds, Stopping threads took: 0,0000816 seconds +[2018-06-13T07:46:21.298+0000][32376][safepoint ] Application time: 0,0067585 seconds +[2018-06-13T07:46:21.301+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0024374 seconds, Stopping threads took: 0,0021224 seconds +[2018-06-13T07:46:21.301+0000][32376][safepoint ] Application time: 0,0000889 seconds +[2018-06-13T07:46:21.301+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003416 seconds, Stopping threads took: 0,0000657 seconds +[2018-06-13T07:46:21.304+0000][32376][safepoint ] Application time: 0,0024739 seconds +[2018-06-13T07:46:21.304+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003523 seconds, Stopping threads took: 0,0001181 seconds +[2018-06-13T07:46:21.305+0000][32376][safepoint ] Application time: 0,0007164 seconds +[2018-06-13T07:46:21.305+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002876 seconds, Stopping threads took: 0,0000716 seconds +[2018-06-13T07:46:21.423+0000][32376][safepoint ] Application time: 0,1179571 seconds +[2018-06-13T07:46:21.423+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004063 seconds, Stopping threads took: 0,0001201 seconds +[2018-06-13T07:46:21.436+0000][32376][safepoint ] Application time: 0,0120505 seconds +[2018-06-13T07:46:21.436+0000][32376][gc,start ] GC(62) Pause Young (Allocation Failure) +[2018-06-13T07:46:21.436+0000][32376][gc,task ] GC(62) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:21.441+0000][32376][gc,age ] GC(62) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:21.441+0000][32376][gc,age ] GC(62) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:21.441+0000][32376][gc,age ] GC(62) - age 1: 7751808 bytes, 7751808 total +[2018-06-13T07:46:21.441+0000][32376][gc,age ] GC(62) - age 2: 3106512 bytes, 10858320 total +[2018-06-13T07:46:21.441+0000][32376][gc,age ] GC(62) - age 3: 609184 bytes, 11467504 total +[2018-06-13T07:46:21.441+0000][32376][gc,age ] GC(62) - age 4: 323584 bytes, 11791088 total +[2018-06-13T07:46:21.441+0000][32376][gc,age ] GC(62) - age 5: 62056 bytes, 11853144 total +[2018-06-13T07:46:21.441+0000][32376][gc,heap ] GC(62) ParNew: 287695K->13479K(314560K) +[2018-06-13T07:46:21.441+0000][32376][gc,heap ] GC(62) CMS: 491082K->491082K(699072K) +[2018-06-13T07:46:21.441+0000][32376][gc,metaspace ] GC(62) Metaspace: 89182K->89182K(1134592K) +[2018-06-13T07:46:21.441+0000][32376][gc ] GC(62) Pause Young (Allocation Failure) 760M->492M(989M) 5,248ms +[2018-06-13T07:46:21.441+0000][32376][gc,cpu ] GC(62) User=0,02s Sys=0,00s Real=0,00s +[2018-06-13T07:46:21.441+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0056229 seconds, Stopping threads took: 0,0000802 seconds +[2018-06-13T07:46:21.454+0000][32376][safepoint ] Application time: 0,0125719 seconds +[2018-06-13T07:46:21.454+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003489 seconds, Stopping threads took: 0,0001079 seconds +[2018-06-13T07:46:21.494+0000][32376][safepoint ] Application time: 0,0395786 seconds +[2018-06-13T07:46:21.494+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002682 seconds, Stopping threads took: 0,0000498 seconds +[2018-06-13T07:46:21.509+0000][32376][safepoint ] Application time: 0,0146527 seconds +[2018-06-13T07:46:21.509+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002866 seconds, Stopping threads took: 0,0000655 seconds +[2018-06-13T07:46:21.625+0000][32376][safepoint ] Application time: 0,1155576 seconds +[2018-06-13T07:46:21.625+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004136 seconds, Stopping threads took: 0,0000732 seconds +[2018-06-13T07:46:22.244+0000][32376][safepoint ] Application time: 0,6193323 seconds +[2018-06-13T07:46:22.245+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002893 seconds, Stopping threads took: 0,0000538 seconds +[2018-06-13T07:46:22.245+0000][32376][safepoint ] Application time: 0,0003313 seconds +[2018-06-13T07:46:22.245+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003219 seconds, Stopping threads took: 0,0001175 seconds +[2018-06-13T07:46:22.245+0000][32376][safepoint ] Application time: 0,0000657 seconds +[2018-06-13T07:46:22.246+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001822 seconds, Stopping threads took: 0,0000429 seconds +[2018-06-13T07:46:22.246+0000][32376][safepoint ] Application time: 0,0000546 seconds +[2018-06-13T07:46:22.246+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001826 seconds, Stopping threads took: 0,0000394 seconds +[2018-06-13T07:46:22.309+0000][32376][safepoint ] Application time: 0,0633752 seconds +[2018-06-13T07:46:22.310+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002909 seconds, Stopping threads took: 0,0000756 seconds +[2018-06-13T07:46:22.315+0000][32376][safepoint ] Application time: 0,0052517 seconds +[2018-06-13T07:46:22.315+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003463 seconds, Stopping threads took: 0,0000752 seconds +[2018-06-13T07:46:22.323+0000][32376][safepoint ] Application time: 0,0078753 seconds +[2018-06-13T07:46:22.324+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004928 seconds, Stopping threads took: 0,0001986 seconds +[2018-06-13T07:46:22.324+0000][32376][safepoint ] Application time: 0,0000613 seconds +[2018-06-13T07:46:22.324+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002329 seconds, Stopping threads took: 0,0000489 seconds +[2018-06-13T07:46:22.332+0000][32376][safepoint ] Application time: 0,0079789 seconds +[2018-06-13T07:46:22.332+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003925 seconds, Stopping threads took: 0,0000771 seconds +[2018-06-13T07:46:22.335+0000][32376][safepoint ] Application time: 0,0019998 seconds +[2018-06-13T07:46:22.335+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004820 seconds, Stopping threads took: 0,0001294 seconds +[2018-06-13T07:46:22.360+0000][32376][safepoint ] Application time: 0,0246923 seconds +[2018-06-13T07:46:22.360+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002884 seconds, Stopping threads took: 0,0000704 seconds +[2018-06-13T07:46:22.360+0000][32376][safepoint ] Application time: 0,0004137 seconds +[2018-06-13T07:46:22.361+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002250 seconds, Stopping threads took: 0,0000416 seconds +[2018-06-13T07:46:22.377+0000][32376][safepoint ] Application time: 0,0158875 seconds +[2018-06-13T07:46:22.377+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003949 seconds, Stopping threads took: 0,0000861 seconds +[2018-06-13T07:46:22.390+0000][32376][safepoint ] Application time: 0,0133312 seconds +[2018-06-13T07:46:22.391+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004077 seconds, Stopping threads took: 0,0000797 seconds +[2018-06-13T07:46:22.400+0000][32376][safepoint ] Application time: 0,0089698 seconds +[2018-06-13T07:46:22.400+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003413 seconds, Stopping threads took: 0,0000879 seconds +[2018-06-13T07:46:22.415+0000][32376][safepoint ] Application time: 0,0148883 seconds +[2018-06-13T07:46:22.416+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004034 seconds, Stopping threads took: 0,0000871 seconds +[2018-06-13T07:46:22.416+0000][32376][safepoint ] Application time: 0,0000789 seconds +[2018-06-13T07:46:22.416+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002625 seconds, Stopping threads took: 0,0000290 seconds +[2018-06-13T07:46:22.416+0000][32376][safepoint ] Application time: 0,0000237 seconds +[2018-06-13T07:46:22.416+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002397 seconds, Stopping threads took: 0,0000410 seconds +[2018-06-13T07:46:22.423+0000][32376][safepoint ] Application time: 0,0068707 seconds +[2018-06-13T07:46:22.423+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003680 seconds, Stopping threads took: 0,0000824 seconds +[2018-06-13T07:46:22.517+0000][32376][safepoint ] Application time: 0,0933633 seconds +[2018-06-13T07:46:22.517+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003350 seconds, Stopping threads took: 0,0000614 seconds +[2018-06-13T07:46:22.523+0000][32376][safepoint ] Application time: 0,0053579 seconds +[2018-06-13T07:46:22.523+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003651 seconds, Stopping threads took: 0,0000537 seconds +[2018-06-13T07:46:22.563+0000][32376][safepoint ] Application time: 0,0399675 seconds +[2018-06-13T07:46:22.563+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003341 seconds, Stopping threads took: 0,0000581 seconds +[2018-06-13T07:46:22.566+0000][32376][safepoint ] Application time: 0,0030635 seconds +[2018-06-13T07:46:22.568+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0019158 seconds, Stopping threads took: 0,0002177 seconds +[2018-06-13T07:46:23.104+0000][32376][safepoint ] Application time: 0,5358413 seconds +[2018-06-13T07:46:23.105+0000][32376][gc,start ] GC(63) Pause Young (Allocation Failure) +[2018-06-13T07:46:23.105+0000][32376][gc,task ] GC(63) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) - age 1: 6328344 bytes, 6328344 total +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) - age 2: 523384 bytes, 6851728 total +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) - age 3: 1696776 bytes, 8548504 total +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) - age 4: 601984 bytes, 9150488 total +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) - age 5: 323584 bytes, 9474072 total +[2018-06-13T07:46:23.118+0000][32376][gc,age ] GC(63) - age 6: 62056 bytes, 9536128 total +[2018-06-13T07:46:23.118+0000][32376][gc,heap ] GC(63) ParNew: 293095K->12414K(314560K) +[2018-06-13T07:46:23.118+0000][32376][gc,heap ] GC(63) CMS: 491082K->491082K(699072K) +[2018-06-13T07:46:23.118+0000][32376][gc,metaspace ] GC(63) Metaspace: 89190K->89190K(1134592K) +[2018-06-13T07:46:23.118+0000][32376][gc ] GC(63) Pause Young (Allocation Failure) 765M->491M(989M) 12,981ms +[2018-06-13T07:46:23.118+0000][32376][gc,cpu ] GC(63) User=0,07s Sys=0,00s Real=0,02s +[2018-06-13T07:46:23.118+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0134681 seconds, Stopping threads took: 0,0000606 seconds +[2018-06-13T07:46:23.435+0000][32376][safepoint ] Application time: 0,3173777 seconds +[2018-06-13T07:46:23.436+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004416 seconds, Stopping threads took: 0,0001086 seconds +[2018-06-13T07:46:23.455+0000][32376][safepoint ] Application time: 0,0191955 seconds +[2018-06-13T07:46:23.455+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003168 seconds, Stopping threads took: 0,0000962 seconds +[2018-06-13T07:46:23.455+0000][32376][safepoint ] Application time: 0,0000327 seconds +[2018-06-13T07:46:23.456+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001976 seconds, Stopping threads took: 0,0000496 seconds +[2018-06-13T07:46:23.460+0000][32376][safepoint ] Application time: 0,0044247 seconds +[2018-06-13T07:46:23.460+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002828 seconds, Stopping threads took: 0,0000757 seconds +[2018-06-13T07:46:23.466+0000][32376][safepoint ] Application time: 0,0060862 seconds +[2018-06-13T07:46:23.467+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003601 seconds, Stopping threads took: 0,0000955 seconds +[2018-06-13T07:46:23.493+0000][32376][safepoint ] Application time: 0,0258775 seconds +[2018-06-13T07:46:23.493+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003512 seconds, Stopping threads took: 0,0001141 seconds +[2018-06-13T07:46:23.496+0000][32376][safepoint ] Application time: 0,0025471 seconds +[2018-06-13T07:46:23.496+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003730 seconds, Stopping threads took: 0,0000880 seconds +[2018-06-13T07:46:23.509+0000][32376][safepoint ] Application time: 0,0130924 seconds +[2018-06-13T07:46:23.510+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004248 seconds, Stopping threads took: 0,0001063 seconds +[2018-06-13T07:46:23.531+0000][32376][safepoint ] Application time: 0,0209039 seconds +[2018-06-13T07:46:23.531+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004045 seconds, Stopping threads took: 0,0000934 seconds +[2018-06-13T07:46:23.560+0000][32376][safepoint ] Application time: 0,0287685 seconds +[2018-06-13T07:46:23.563+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0032406 seconds, Stopping threads took: 0,0029016 seconds +[2018-06-13T07:46:24.166+0000][32376][safepoint ] Application time: 0,6032483 seconds +[2018-06-13T07:46:24.167+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006267 seconds, Stopping threads took: 0,0000870 seconds +[2018-06-13T07:46:24.187+0000][32376][safepoint ] Application time: 0,0200582 seconds +[2018-06-13T07:46:24.187+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003828 seconds, Stopping threads took: 0,0000760 seconds +[2018-06-13T07:46:24.204+0000][32376][safepoint ] Application time: 0,0162495 seconds +[2018-06-13T07:46:24.204+0000][32376][gc,start ] GC(64) Pause Young (Allocation Failure) +[2018-06-13T07:46:24.204+0000][32376][gc,task ] GC(64) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) - age 1: 6694904 bytes, 6694904 total +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) - age 2: 796608 bytes, 7491512 total +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) - age 3: 517688 bytes, 8009200 total +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) - age 4: 1683312 bytes, 9692512 total +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) - age 5: 601896 bytes, 10294408 total +[2018-06-13T07:46:24.239+0000][32376][gc,age ] GC(64) - age 6: 322944 bytes, 10617352 total +[2018-06-13T07:46:24.239+0000][32376][gc,heap ] GC(64) ParNew: 292030K->16637K(314560K) +[2018-06-13T07:46:24.239+0000][32376][gc,heap ] GC(64) CMS: 491082K->491142K(699072K) +[2018-06-13T07:46:24.239+0000][32376][gc,metaspace ] GC(64) Metaspace: 89253K->89253K(1134592K) +[2018-06-13T07:46:24.239+0000][32376][gc ] GC(64) Pause Young (Allocation Failure) 764M->495M(989M) 35,241ms +[2018-06-13T07:46:24.239+0000][32376][gc,cpu ] GC(64) User=0,23s Sys=0,00s Real=0,04s +[2018-06-13T07:46:24.239+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0356805 seconds, Stopping threads took: 0,0000716 seconds +[2018-06-13T07:46:24.567+0000][32376][safepoint ] Application time: 0,3277294 seconds +[2018-06-13T07:46:24.568+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003749 seconds, Stopping threads took: 0,0000678 seconds +[2018-06-13T07:46:24.568+0000][32376][safepoint ] Application time: 0,0002081 seconds +[2018-06-13T07:46:24.568+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004317 seconds, Stopping threads took: 0,0000426 seconds +[2018-06-13T07:46:24.568+0000][32376][safepoint ] Application time: 0,0000449 seconds +[2018-06-13T07:46:24.569+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004670 seconds, Stopping threads took: 0,0000740 seconds +[2018-06-13T07:46:24.590+0000][32376][safepoint ] Application time: 0,0213414 seconds +[2018-06-13T07:46:24.591+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003674 seconds, Stopping threads took: 0,0000698 seconds +[2018-06-13T07:46:24.592+0000][32376][safepoint ] Application time: 0,0009572 seconds +[2018-06-13T07:46:24.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003427 seconds, Stopping threads took: 0,0000826 seconds +[2018-06-13T07:46:24.592+0000][32376][safepoint ] Application time: 0,0000302 seconds +[2018-06-13T07:46:24.592+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002075 seconds, Stopping threads took: 0,0000450 seconds +[2018-06-13T07:46:24.615+0000][32376][safepoint ] Application time: 0,0229278 seconds +[2018-06-13T07:46:24.616+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003647 seconds, Stopping threads took: 0,0001185 seconds +[2018-06-13T07:46:24.616+0000][32376][safepoint ] Application time: 0,0001443 seconds +[2018-06-13T07:46:24.616+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002544 seconds, Stopping threads took: 0,0000559 seconds +[2018-06-13T07:46:24.616+0000][32376][safepoint ] Application time: 0,0001713 seconds +[2018-06-13T07:46:24.617+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003236 seconds, Stopping threads took: 0,0000629 seconds +[2018-06-13T07:46:24.622+0000][32376][safepoint ] Application time: 0,0058665 seconds +[2018-06-13T07:46:24.623+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003159 seconds, Stopping threads took: 0,0000807 seconds +[2018-06-13T07:46:24.627+0000][32376][safepoint ] Application time: 0,0038077 seconds +[2018-06-13T07:46:24.627+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002528 seconds, Stopping threads took: 0,0000678 seconds +[2018-06-13T07:46:24.627+0000][32376][safepoint ] Application time: 0,0000403 seconds +[2018-06-13T07:46:24.627+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002353 seconds, Stopping threads took: 0,0000971 seconds +[2018-06-13T07:46:24.650+0000][32376][safepoint ] Application time: 0,0224755 seconds +[2018-06-13T07:46:24.650+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003166 seconds, Stopping threads took: 0,0000873 seconds +[2018-06-13T07:46:24.650+0000][32376][safepoint ] Application time: 0,0001372 seconds +[2018-06-13T07:46:24.650+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003167 seconds, Stopping threads took: 0,0000479 seconds +[2018-06-13T07:46:24.651+0000][32376][safepoint ] Application time: 0,0008327 seconds +[2018-06-13T07:46:24.652+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003679 seconds, Stopping threads took: 0,0000856 seconds +[2018-06-13T07:46:24.660+0000][32376][safepoint ] Application time: 0,0086437 seconds +[2018-06-13T07:46:24.662+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0016196 seconds, Stopping threads took: 0,0000650 seconds +[2018-06-13T07:46:24.662+0000][32376][safepoint ] Application time: 0,0002230 seconds +[2018-06-13T07:46:24.663+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003385 seconds, Stopping threads took: 0,0000692 seconds +[2018-06-13T07:46:24.663+0000][32376][safepoint ] Application time: 0,0000565 seconds +[2018-06-13T07:46:24.663+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002861 seconds, Stopping threads took: 0,0000686 seconds +[2018-06-13T07:46:24.687+0000][32376][safepoint ] Application time: 0,0237292 seconds +[2018-06-13T07:46:24.687+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004259 seconds, Stopping threads took: 0,0000739 seconds +[2018-06-13T07:46:24.687+0000][32376][safepoint ] Application time: 0,0000768 seconds +[2018-06-13T07:46:24.688+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003380 seconds, Stopping threads took: 0,0000452 seconds +[2018-06-13T07:46:24.706+0000][32376][safepoint ] Application time: 0,0181413 seconds +[2018-06-13T07:46:24.706+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003106 seconds, Stopping threads took: 0,0000556 seconds +[2018-06-13T07:46:24.706+0000][32376][safepoint ] Application time: 0,0001950 seconds +[2018-06-13T07:46:24.707+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002824 seconds, Stopping threads took: 0,0000372 seconds +[2018-06-13T07:46:25.191+0000][32376][safepoint ] Application time: 0,4840959 seconds +[2018-06-13T07:46:25.191+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004157 seconds, Stopping threads took: 0,0000822 seconds +[2018-06-13T07:46:25.191+0000][32376][safepoint ] Application time: 0,0001070 seconds +[2018-06-13T07:46:25.192+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003204 seconds, Stopping threads took: 0,0000515 seconds +[2018-06-13T07:46:25.192+0000][32376][safepoint ] Application time: 0,0001004 seconds +[2018-06-13T07:46:25.192+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002910 seconds, Stopping threads took: 0,0000445 seconds +[2018-06-13T07:46:25.715+0000][32376][safepoint ] Application time: 0,5233364 seconds +[2018-06-13T07:46:25.716+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003023 seconds, Stopping threads took: 0,0000877 seconds +[2018-06-13T07:46:25.716+0000][32376][safepoint ] Application time: 0,0000323 seconds +[2018-06-13T07:46:25.716+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001946 seconds, Stopping threads took: 0,0000494 seconds +[2018-06-13T07:46:25.729+0000][32376][safepoint ] Application time: 0,0132101 seconds +[2018-06-13T07:46:25.730+0000][32376][gc,start ] GC(65) Pause Young (Allocation Failure) +[2018-06-13T07:46:25.730+0000][32376][gc,task ] GC(65) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) - age 1: 6376832 bytes, 6376832 total +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) - age 2: 304288 bytes, 6681120 total +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) - age 3: 426472 bytes, 7107592 total +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) - age 4: 147856 bytes, 7255448 total +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) - age 5: 1266280 bytes, 8521728 total +[2018-06-13T07:46:25.744+0000][32376][gc,age ] GC(65) - age 6: 601896 bytes, 9123624 total +[2018-06-13T07:46:25.744+0000][32376][gc,heap ] GC(65) ParNew: 296253K->15139K(314560K) +[2018-06-13T07:46:25.744+0000][32376][gc,heap ] GC(65) CMS: 491142K->491428K(699072K) +[2018-06-13T07:46:25.744+0000][32376][gc,metaspace ] GC(65) Metaspace: 89288K->89288K(1134592K) +[2018-06-13T07:46:25.744+0000][32376][gc ] GC(65) Pause Young (Allocation Failure) 768M->494M(989M) 14,404ms +[2018-06-13T07:46:25.744+0000][32376][gc,cpu ] GC(65) User=0,11s Sys=0,00s Real=0,01s +[2018-06-13T07:46:25.744+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0148978 seconds, Stopping threads took: 0,0000871 seconds +[2018-06-13T07:46:25.757+0000][32376][safepoint ] Application time: 0,0126844 seconds +[2018-06-13T07:46:25.758+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0012544 seconds, Stopping threads took: 0,0009659 seconds +[2018-06-13T07:46:25.758+0000][32376][safepoint ] Application time: 0,0000243 seconds +[2018-06-13T07:46:25.759+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002398 seconds, Stopping threads took: 0,0000260 seconds +[2018-06-13T07:46:25.776+0000][32376][safepoint ] Application time: 0,0177233 seconds +[2018-06-13T07:46:25.778+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014897 seconds, Stopping threads took: 0,0001440 seconds +[2018-06-13T07:46:25.785+0000][32376][safepoint ] Application time: 0,0076100 seconds +[2018-06-13T07:46:25.786+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004555 seconds, Stopping threads took: 0,0001037 seconds +[2018-06-13T07:46:25.786+0000][32376][safepoint ] Application time: 0,0000578 seconds +[2018-06-13T07:46:25.786+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003278 seconds, Stopping threads took: 0,0000641 seconds +[2018-06-13T07:46:25.807+0000][32376][safepoint ] Application time: 0,0209661 seconds +[2018-06-13T07:46:25.808+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003503 seconds, Stopping threads took: 0,0000715 seconds +[2018-06-13T07:46:25.808+0000][32376][safepoint ] Application time: 0,0000354 seconds +[2018-06-13T07:46:25.809+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014808 seconds, Stopping threads took: 0,0000490 seconds +[2018-06-13T07:46:25.824+0000][32376][safepoint ] Application time: 0,0143999 seconds +[2018-06-13T07:46:25.824+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003935 seconds, Stopping threads took: 0,0000847 seconds +[2018-06-13T07:46:25.829+0000][32376][safepoint ] Application time: 0,0044958 seconds +[2018-06-13T07:46:25.829+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003228 seconds, Stopping threads took: 0,0000927 seconds +[2018-06-13T07:46:26.832+0000][32376][safepoint ] Application time: 1,0025630 seconds +[2018-06-13T07:46:26.832+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003598 seconds, Stopping threads took: 0,0000586 seconds +[2018-06-13T07:46:26.859+0000][32376][safepoint ] Application time: 0,0267101 seconds +[2018-06-13T07:46:26.859+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003097 seconds, Stopping threads took: 0,0000839 seconds +[2018-06-13T07:46:26.859+0000][32376][safepoint ] Application time: 0,0000311 seconds +[2018-06-13T07:46:26.859+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003148 seconds, Stopping threads took: 0,0001172 seconds +[2018-06-13T07:46:26.884+0000][32376][safepoint ] Application time: 0,0248459 seconds +[2018-06-13T07:46:26.885+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003814 seconds, Stopping threads took: 0,0000895 seconds +[2018-06-13T07:46:26.885+0000][32376][safepoint ] Application time: 0,0000268 seconds +[2018-06-13T07:46:26.885+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003215 seconds, Stopping threads took: 0,0000695 seconds +[2018-06-13T07:46:26.897+0000][32376][safepoint ] Application time: 0,0113591 seconds +[2018-06-13T07:46:26.897+0000][32376][gc,start ] GC(66) Pause Young (Allocation Failure) +[2018-06-13T07:46:26.897+0000][32376][gc,task ] GC(66) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) - age 1: 6222792 bytes, 6222792 total +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) - age 2: 1053352 bytes, 7276144 total +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) - age 3: 301144 bytes, 7577288 total +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) - age 4: 425848 bytes, 8003136 total +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) - age 5: 146744 bytes, 8149880 total +[2018-06-13T07:46:26.928+0000][32376][gc,age ] GC(66) - age 6: 1265032 bytes, 9414912 total +[2018-06-13T07:46:26.928+0000][32376][gc,heap ] GC(66) ParNew: 294755K->10990K(314560K) +[2018-06-13T07:46:26.928+0000][32376][gc,heap ] GC(66) CMS: 491428K->492021K(699072K) +[2018-06-13T07:46:26.928+0000][32376][gc,metaspace ] GC(66) Metaspace: 89307K->89307K(1134592K) +[2018-06-13T07:46:26.928+0000][32376][gc ] GC(66) Pause Young (Allocation Failure) 767M->491M(989M) 31,542ms +[2018-06-13T07:46:26.929+0000][32376][gc,cpu ] GC(66) User=0,20s Sys=0,00s Real=0,03s +[2018-06-13T07:46:26.929+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0320083 seconds, Stopping threads took: 0,0001032 seconds +[2018-06-13T07:46:26.936+0000][32376][safepoint ] Application time: 0,0078733 seconds +[2018-06-13T07:46:26.937+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003535 seconds, Stopping threads took: 0,0000803 seconds +[2018-06-13T07:46:26.937+0000][32376][safepoint ] Application time: 0,0005783 seconds +[2018-06-13T07:46:26.938+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002875 seconds, Stopping threads took: 0,0000665 seconds +[2018-06-13T07:46:26.959+0000][32376][safepoint ] Application time: 0,0211474 seconds +[2018-06-13T07:46:26.959+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003127 seconds, Stopping threads took: 0,0000834 seconds +[2018-06-13T07:46:26.959+0000][32376][safepoint ] Application time: 0,0000500 seconds +[2018-06-13T07:46:26.960+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002608 seconds, Stopping threads took: 0,0000425 seconds +[2018-06-13T07:46:26.996+0000][32376][safepoint ] Application time: 0,0358690 seconds +[2018-06-13T07:46:26.997+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0015744 seconds, Stopping threads took: 0,0000879 seconds +[2018-06-13T07:46:26.997+0000][32376][safepoint ] Application time: 0,0000350 seconds +[2018-06-13T07:46:26.997+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002922 seconds, Stopping threads took: 0,0000572 seconds +[2018-06-13T07:46:27.742+0000][32376][safepoint ] Application time: 0,7443447 seconds +[2018-06-13T07:46:27.742+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003058 seconds, Stopping threads took: 0,0000379 seconds +[2018-06-13T07:46:27.758+0000][32376][safepoint ] Application time: 0,0161083 seconds +[2018-06-13T07:46:27.759+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002017 seconds, Stopping threads took: 0,0000390 seconds +[2018-06-13T07:46:27.778+0000][32376][safepoint ] Application time: 0,0198516 seconds +[2018-06-13T07:46:27.779+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002175 seconds, Stopping threads took: 0,0000378 seconds +[2018-06-13T07:46:27.799+0000][32376][safepoint ] Application time: 0,0202918 seconds +[2018-06-13T07:46:27.799+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001941 seconds, Stopping threads took: 0,0000369 seconds +[2018-06-13T07:46:27.803+0000][32376][safepoint ] Application time: 0,0036666 seconds +[2018-06-13T07:46:27.803+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002043 seconds, Stopping threads took: 0,0000430 seconds +[2018-06-13T07:46:27.919+0000][32376][safepoint ] Application time: 0,1160766 seconds +[2018-06-13T07:46:27.919+0000][32376][gc,start ] GC(67) Pause Young (Allocation Failure) +[2018-06-13T07:46:27.919+0000][32376][gc,task ] GC(67) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) - age 1: 5799232 bytes, 5799232 total +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) - age 2: 2282584 bytes, 8081816 total +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) - age 3: 928888 bytes, 9010704 total +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) - age 4: 180872 bytes, 9191576 total +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) - age 5: 303888 bytes, 9495464 total +[2018-06-13T07:46:27.926+0000][32376][gc,age ] GC(67) - age 6: 23008 bytes, 9518472 total +[2018-06-13T07:46:27.926+0000][32376][gc,heap ] GC(67) ParNew: 290606K->12541K(314560K) +[2018-06-13T07:46:27.926+0000][32376][gc,heap ] GC(67) CMS: 492021K->493169K(699072K) +[2018-06-13T07:46:27.926+0000][32376][gc,metaspace ] GC(67) Metaspace: 89328K->89328K(1134592K) +[2018-06-13T07:46:27.926+0000][32376][gc ] GC(67) Pause Young (Allocation Failure) 764M->493M(989M) 6,594ms +[2018-06-13T07:46:27.926+0000][32376][gc,cpu ] GC(67) User=0,03s Sys=0,00s Real=0,00s +[2018-06-13T07:46:27.926+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0068617 seconds, Stopping threads took: 0,0000390 seconds +[2018-06-13T07:46:27.992+0000][32376][safepoint ] Application time: 0,0662968 seconds +[2018-06-13T07:46:27.993+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006904 seconds, Stopping threads took: 0,0001221 seconds +[2018-06-13T07:46:28.050+0000][32376][safepoint ] Application time: 0,0564867 seconds +[2018-06-13T07:46:28.050+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004550 seconds, Stopping threads took: 0,0001101 seconds +[2018-06-13T07:46:28.654+0000][32376][safepoint ] Application time: 0,6039956 seconds +[2018-06-13T07:46:28.654+0000][32376][gc,start ] GC(68) Pause Young (Allocation Failure) +[2018-06-13T07:46:28.655+0000][32376][gc,task ] GC(68) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) - age 1: 7015728 bytes, 7015728 total +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) - age 2: 647568 bytes, 7663296 total +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) - age 3: 625120 bytes, 8288416 total +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) - age 4: 926968 bytes, 9215384 total +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) - age 5: 178824 bytes, 9394208 total +[2018-06-13T07:46:28.664+0000][32376][gc,age ] GC(68) - age 6: 303368 bytes, 9697576 total +[2018-06-13T07:46:28.664+0000][32376][gc,heap ] GC(68) ParNew: 292157K->12472K(314560K) +[2018-06-13T07:46:28.665+0000][32376][gc,heap ] GC(68) CMS: 493169K->493191K(699072K) +[2018-06-13T07:46:28.665+0000][32376][gc,metaspace ] GC(68) Metaspace: 89369K->89369K(1134592K) +[2018-06-13T07:46:28.665+0000][32376][gc ] GC(68) Pause Young (Allocation Failure) 766M->493M(989M) 10,078ms +[2018-06-13T07:46:28.665+0000][32376][gc,cpu ] GC(68) User=0,08s Sys=0,00s Real=0,01s +[2018-06-13T07:46:28.665+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0105214 seconds, Stopping threads took: 0,0000666 seconds +[2018-06-13T07:46:28.922+0000][32376][safepoint ] Application time: 0,2577311 seconds +[2018-06-13T07:46:28.923+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002200 seconds, Stopping threads took: 0,0000405 seconds +[2018-06-13T07:46:28.946+0000][32376][safepoint ] Application time: 0,0235958 seconds +[2018-06-13T07:46:28.946+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002019 seconds, Stopping threads took: 0,0000400 seconds +[2018-06-13T07:46:28.969+0000][32376][safepoint ] Application time: 0,0227353 seconds +[2018-06-13T07:46:28.970+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002882 seconds, Stopping threads took: 0,0000567 seconds +[2018-06-13T07:46:28.991+0000][32376][safepoint ] Application time: 0,0216460 seconds +[2018-06-13T07:46:28.991+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002402 seconds, Stopping threads took: 0,0000417 seconds +[2018-06-13T07:46:29.003+0000][32376][safepoint ] Application time: 0,0115737 seconds +[2018-06-13T07:46:29.003+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002136 seconds, Stopping threads took: 0,0000475 seconds +[2018-06-13T07:46:29.601+0000][32376][safepoint ] Application time: 0,5977710 seconds +[2018-06-13T07:46:29.601+0000][32376][gc,start ] GC(69) Pause Young (Allocation Failure) +[2018-06-13T07:46:29.601+0000][32376][gc,task ] GC(69) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) - age 1: 6494272 bytes, 6494272 total +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) - age 2: 1062136 bytes, 7556408 total +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) - age 3: 643056 bytes, 8199464 total +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) - age 4: 382024 bytes, 8581488 total +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) - age 5: 803800 bytes, 9385288 total +[2018-06-13T07:46:29.606+0000][32376][gc,age ] GC(69) - age 6: 57288 bytes, 9442576 total +[2018-06-13T07:46:29.606+0000][32376][gc,heap ] GC(69) ParNew: 292088K->15203K(314560K) +[2018-06-13T07:46:29.606+0000][32376][gc,heap ] GC(69) CMS: 493191K->493380K(699072K) +[2018-06-13T07:46:29.606+0000][32376][gc,metaspace ] GC(69) Metaspace: 89375K->89375K(1134592K) +[2018-06-13T07:46:29.607+0000][32376][gc ] GC(69) Pause Young (Allocation Failure) 766M->496M(989M) 5,151ms +[2018-06-13T07:46:29.607+0000][32376][gc,cpu ] GC(69) User=0,02s Sys=0,00s Real=0,01s +[2018-06-13T07:46:29.607+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0054981 seconds, Stopping threads took: 0,0000465 seconds +[2018-06-13T07:46:29.810+0000][32376][safepoint ] Application time: 0,2037698 seconds +[2018-06-13T07:46:29.811+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002350 seconds, Stopping threads took: 0,0000477 seconds +[2018-06-13T07:46:29.823+0000][32376][safepoint ] Application time: 0,0118749 seconds +[2018-06-13T07:46:29.823+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002272 seconds, Stopping threads took: 0,0000604 seconds +[2018-06-13T07:46:29.833+0000][32376][safepoint ] Application time: 0,0100731 seconds +[2018-06-13T07:46:29.833+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001976 seconds, Stopping threads took: 0,0000372 seconds +[2018-06-13T07:46:29.845+0000][32376][safepoint ] Application time: 0,0116210 seconds +[2018-06-13T07:46:29.845+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002013 seconds, Stopping threads took: 0,0000488 seconds +[2018-06-13T07:46:29.882+0000][32376][safepoint ] Application time: 0,0369456 seconds +[2018-06-13T07:46:29.883+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0008996 seconds, Stopping threads took: 0,0000460 seconds +[2018-06-13T07:46:30.183+0000][32376][safepoint ] Application time: 0,2997053 seconds +[2018-06-13T07:46:30.183+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002977 seconds, Stopping threads took: 0,0000791 seconds +[2018-06-13T07:46:30.224+0000][32376][safepoint ] Application time: 0,0407745 seconds +[2018-06-13T07:46:30.224+0000][32376][gc,start ] GC(70) Pause Young (Allocation Failure) +[2018-06-13T07:46:30.224+0000][32376][gc,task ] GC(70) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) - age 1: 5816704 bytes, 5816704 total +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) - age 2: 749696 bytes, 6566400 total +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) - age 3: 1013128 bytes, 7579528 total +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) - age 4: 641576 bytes, 8221104 total +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) - age 5: 381688 bytes, 8602792 total +[2018-06-13T07:46:30.233+0000][32376][gc,age ] GC(70) - age 6: 803408 bytes, 9406200 total +[2018-06-13T07:46:30.233+0000][32376][gc,heap ] GC(70) ParNew: 294819K->13850K(314560K) +[2018-06-13T07:46:30.233+0000][32376][gc,heap ] GC(70) CMS: 493380K->493437K(699072K) +[2018-06-13T07:46:30.233+0000][32376][gc,metaspace ] GC(70) Metaspace: 89413K->89413K(1134592K) +[2018-06-13T07:46:30.233+0000][32376][gc ] GC(70) Pause Young (Allocation Failure) 769M->495M(989M) 9,167ms +[2018-06-13T07:46:30.233+0000][32376][gc,cpu ] GC(70) User=0,05s Sys=0,00s Real=0,01s +[2018-06-13T07:46:30.233+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0096020 seconds, Stopping threads took: 0,0000815 seconds +[2018-06-13T07:46:31.062+0000][32376][safepoint ] Application time: 0,8287674 seconds +[2018-06-13T07:46:31.062+0000][32376][gc,start ] GC(71) Pause Young (Allocation Failure) +[2018-06-13T07:46:31.062+0000][32376][gc,task ] GC(71) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) - age 1: 6522848 bytes, 6522848 total +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) - age 2: 2252872 bytes, 8775720 total +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) - age 3: 740640 bytes, 9516360 total +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) - age 4: 1012664 bytes, 10529024 total +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) - age 5: 641000 bytes, 11170024 total +[2018-06-13T07:46:31.073+0000][32376][gc,age ] GC(71) - age 6: 381528 bytes, 11551552 total +[2018-06-13T07:46:31.073+0000][32376][gc,heap ] GC(71) ParNew: 293466K->16078K(314560K) +[2018-06-13T07:46:31.073+0000][32376][gc,heap ] GC(71) CMS: 493437K->494260K(699072K) +[2018-06-13T07:46:31.073+0000][32376][gc,metaspace ] GC(71) Metaspace: 89427K->89427K(1134592K) +[2018-06-13T07:46:31.073+0000][32376][gc ] GC(71) Pause Young (Allocation Failure) 768M->498M(989M) 10,876ms +[2018-06-13T07:46:31.073+0000][32376][gc,cpu ] GC(71) User=0,06s Sys=0,01s Real=0,01s +[2018-06-13T07:46:31.073+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0112976 seconds, Stopping threads took: 0,0000408 seconds +[2018-06-13T07:46:31.327+0000][32376][safepoint ] Application time: 0,2534924 seconds +[2018-06-13T07:46:31.327+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003510 seconds, Stopping threads took: 0,0000725 seconds +[2018-06-13T07:46:31.355+0000][32376][safepoint ] Application time: 0,0275935 seconds +[2018-06-13T07:46:31.355+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003084 seconds, Stopping threads took: 0,0000937 seconds +[2018-06-13T07:46:31.410+0000][32376][safepoint ] Application time: 0,0544046 seconds +[2018-06-13T07:46:31.410+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004215 seconds, Stopping threads took: 0,0001002 seconds +[2018-06-13T07:46:31.414+0000][32376][safepoint ] Application time: 0,0038321 seconds +[2018-06-13T07:46:31.414+0000][32376][gc,start ] GC(72) Pause Young (Allocation Failure) +[2018-06-13T07:46:31.414+0000][32376][gc,task ] GC(72) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) - age 1: 6261768 bytes, 6261768 total +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) - age 2: 497736 bytes, 6759504 total +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) - age 3: 820504 bytes, 7580008 total +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) - age 4: 740504 bytes, 8320512 total +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) - age 5: 1006608 bytes, 9327120 total +[2018-06-13T07:46:31.428+0000][32376][gc,age ] GC(72) - age 6: 640904 bytes, 9968024 total +[2018-06-13T07:46:31.428+0000][32376][gc,heap ] GC(72) ParNew: 295694K->14849K(314560K) +[2018-06-13T07:46:31.428+0000][32376][gc,heap ] GC(72) CMS: 494260K->494651K(699072K) +[2018-06-13T07:46:31.428+0000][32376][gc,metaspace ] GC(72) Metaspace: 89466K->89466K(1134592K) +[2018-06-13T07:46:31.428+0000][32376][gc ] GC(72) Pause Young (Allocation Failure) 771M->497M(989M) 13,632ms +[2018-06-13T07:46:31.428+0000][32376][gc,cpu ] GC(72) User=0,09s Sys=0,00s Real=0,02s +[2018-06-13T07:46:31.428+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0141148 seconds, Stopping threads took: 0,0000905 seconds +[2018-06-13T07:46:32.367+0000][32376][safepoint ] Application time: 0,9386453 seconds +[2018-06-13T07:46:32.367+0000][32376][gc,start ] GC(73) Pause Young (Allocation Failure) +[2018-06-13T07:46:32.367+0000][32376][gc,task ] GC(73) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) - age 1: 2032448 bytes, 2032448 total +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) - age 2: 3187912 bytes, 5220360 total +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) - age 3: 491104 bytes, 5711464 total +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) - age 4: 818640 bytes, 6530104 total +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) - age 5: 739704 bytes, 7269808 total +[2018-06-13T07:46:32.380+0000][32376][gc,age ] GC(73) - age 6: 1005392 bytes, 8275200 total +[2018-06-13T07:46:32.380+0000][32376][gc,heap ] GC(73) ParNew: 294465K->13676K(314560K) +[2018-06-13T07:46:32.380+0000][32376][gc,heap ] GC(73) CMS: 494651K->495308K(699072K) +[2018-06-13T07:46:32.380+0000][32376][gc,metaspace ] GC(73) Metaspace: 89470K->89470K(1134592K) +[2018-06-13T07:46:32.380+0000][32376][gc ] GC(73) Pause Young (Allocation Failure) 770M->497M(989M) 12,586ms +[2018-06-13T07:46:32.380+0000][32376][gc,cpu ] GC(73) User=0,04s Sys=0,00s Real=0,01s +[2018-06-13T07:46:32.380+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0130513 seconds, Stopping threads took: 0,0000714 seconds +[2018-06-13T07:46:33.380+0000][32376][safepoint ] Application time: 1,0000733 seconds +[2018-06-13T07:46:33.380+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001991 seconds, Stopping threads took: 0,0000446 seconds +[2018-06-13T07:46:34.380+0000][32376][safepoint ] Application time: 1,0001186 seconds +[2018-06-13T07:46:34.381+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003089 seconds, Stopping threads took: 0,0000891 seconds +[2018-06-13T07:46:34.912+0000][32376][safepoint ] Application time: 0,5317468 seconds +[2018-06-13T07:46:34.913+0000][32376][gc,start ] GC(74) Pause Young (Allocation Failure) +[2018-06-13T07:46:34.913+0000][32376][gc,task ] GC(74) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) - age 1: 1286256 bytes, 1286256 total +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) - age 2: 52544 bytes, 1338800 total +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) - age 3: 520152 bytes, 1858952 total +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) - age 4: 125480 bytes, 1984432 total +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) - age 5: 424184 bytes, 2408616 total +[2018-06-13T07:46:34.916+0000][32376][gc,age ] GC(74) - age 6: 374448 bytes, 2783064 total +[2018-06-13T07:46:34.916+0000][32376][gc,heap ] GC(74) ParNew: 293292K->5575K(314560K) +[2018-06-13T07:46:34.916+0000][32376][gc,heap ] GC(74) CMS: 495308K->495619K(699072K) +[2018-06-13T07:46:34.916+0000][32376][gc,metaspace ] GC(74) Metaspace: 89482K->89482K(1134592K) +[2018-06-13T07:46:34.916+0000][32376][gc ] GC(74) Pause Young (Allocation Failure) 770M->489M(989M) 3,431ms +[2018-06-13T07:46:34.916+0000][32376][gc,cpu ] GC(74) User=0,02s Sys=0,00s Real=0,01s +[2018-06-13T07:46:34.916+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0037256 seconds, Stopping threads took: 0,0000458 seconds +[2018-06-13T07:46:35.916+0000][32376][safepoint ] Application time: 1,0001071 seconds +[2018-06-13T07:46:35.917+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002127 seconds, Stopping threads took: 0,0000472 seconds +[2018-06-13T07:46:37.917+0000][32376][safepoint ] Application time: 2,0002035 seconds +[2018-06-13T07:46:37.917+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002361 seconds, Stopping threads took: 0,0000539 seconds +[2018-06-13T07:46:39.902+0000][32376][safepoint ] Application time: 1,9849676 seconds +[2018-06-13T07:46:39.903+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005419 seconds, Stopping threads took: 0,0001020 seconds +[2018-06-13T07:46:40.290+0000][32376][safepoint ] Application time: 0,3869722 seconds +[2018-06-13T07:46:40.291+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0014205 seconds, Stopping threads took: 0,0010236 seconds +[2018-06-13T07:46:40.293+0000][32376][safepoint ] Application time: 0,0017080 seconds +[2018-06-13T07:46:40.294+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0006001 seconds, Stopping threads took: 0,0002785 seconds +[2018-06-13T07:46:40.298+0000][32376][safepoint ] Application time: 0,0047426 seconds +[2018-06-13T07:46:40.299+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004776 seconds, Stopping threads took: 0,0001578 seconds +[2018-06-13T07:46:40.305+0000][32376][safepoint ] Application time: 0,0062528 seconds +[2018-06-13T07:46:40.305+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003589 seconds, Stopping threads took: 0,0001162 seconds +[2018-06-13T07:46:40.320+0000][32376][safepoint ] Application time: 0,0142959 seconds +[2018-06-13T07:46:40.320+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002449 seconds, Stopping threads took: 0,0000819 seconds +[2018-06-13T07:46:40.320+0000][32376][safepoint ] Application time: 0,0001108 seconds +[2018-06-13T07:46:40.320+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002615 seconds, Stopping threads took: 0,0000540 seconds +[2018-06-13T07:46:40.321+0000][32376][safepoint ] Application time: 0,0000888 seconds +[2018-06-13T07:46:40.321+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002380 seconds, Stopping threads took: 0,0000998 seconds +[2018-06-13T07:46:40.327+0000][32376][safepoint ] Application time: 0,0064243 seconds +[2018-06-13T07:46:40.328+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0010101 seconds, Stopping threads took: 0,0000638 seconds +[2018-06-13T07:46:40.347+0000][32376][safepoint ] Application time: 0,0188494 seconds +[2018-06-13T07:46:40.347+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002432 seconds, Stopping threads took: 0,0000713 seconds +[2018-06-13T07:46:40.348+0000][32376][safepoint ] Application time: 0,0000999 seconds +[2018-06-13T07:46:40.348+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001342 seconds, Stopping threads took: 0,0000177 seconds +[2018-06-13T07:46:40.348+0000][32376][safepoint ] Application time: 0,0000977 seconds +[2018-06-13T07:46:40.348+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001270 seconds, Stopping threads took: 0,0000170 seconds +[2018-06-13T07:46:40.348+0000][32376][safepoint ] Application time: 0,0002184 seconds +[2018-06-13T07:46:40.348+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001784 seconds, Stopping threads took: 0,0000544 seconds +[2018-06-13T07:46:40.356+0000][32376][safepoint ] Application time: 0,0074572 seconds +[2018-06-13T07:46:40.356+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002521 seconds, Stopping threads took: 0,0000556 seconds +[2018-06-13T07:46:40.366+0000][32376][safepoint ] Application time: 0,0100350 seconds +[2018-06-13T07:46:40.366+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002467 seconds, Stopping threads took: 0,0000666 seconds +[2018-06-13T07:46:41.036+0000][32376][safepoint ] Application time: 0,6696942 seconds +[2018-06-13T07:46:41.036+0000][32376][gc,start ] GC(75) Pause Young (Allocation Failure) +[2018-06-13T07:46:41.037+0000][32376][gc,task ] GC(75) Using 8 workers of 8 for evacuation +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) Desired survivor size 17891328 bytes, new threshold 6 (max threshold 6) +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) Age table with threshold 6 (max threshold 6) +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) - age 1: 2921304 bytes, 2921304 total +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) - age 2: 1096688 bytes, 4017992 total +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) - age 3: 51880 bytes, 4069872 total +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) - age 4: 497088 bytes, 4566960 total +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) - age 5: 124408 bytes, 4691368 total +[2018-06-13T07:46:41.040+0000][32376][gc,age ] GC(75) - age 6: 422888 bytes, 5114256 total +[2018-06-13T07:46:41.040+0000][32376][gc,heap ] GC(75) ParNew: 285121K->6308K(314560K) +[2018-06-13T07:46:41.040+0000][32376][gc,heap ] GC(75) CMS: 495619K->496004K(699072K) +[2018-06-13T07:46:41.040+0000][32376][gc,metaspace ] GC(75) Metaspace: 89547K->89547K(1134592K) +[2018-06-13T07:46:41.040+0000][32376][gc ] GC(75) Pause Young (Allocation Failure) 762M->490M(989M) 3,525ms +[2018-06-13T07:46:41.040+0000][32376][gc,cpu ] GC(75) User=0,02s Sys=0,00s Real=0,00s +[2018-06-13T07:46:41.040+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0039443 seconds, Stopping threads took: 0,0000973 seconds +[2018-06-13T07:46:41.046+0000][32376][safepoint ] Application time: 0,0063765 seconds +[2018-06-13T07:46:41.047+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002714 seconds, Stopping threads took: 0,0000414 seconds +[2018-06-13T07:46:41.059+0000][32376][safepoint ] Application time: 0,0119830 seconds +[2018-06-13T07:46:41.059+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002469 seconds, Stopping threads took: 0,0000787 seconds +[2018-06-13T07:46:41.059+0000][32376][safepoint ] Application time: 0,0002212 seconds +[2018-06-13T07:46:41.060+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003430 seconds, Stopping threads took: 0,0001187 seconds +[2018-06-13T07:46:41.060+0000][32376][safepoint ] Application time: 0,0003947 seconds +[2018-06-13T07:46:41.060+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002515 seconds, Stopping threads took: 0,0001097 seconds +[2018-06-13T07:46:42.060+0000][32376][safepoint ] Application time: 1,0001031 seconds +[2018-06-13T07:46:42.061+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003202 seconds, Stopping threads took: 0,0000971 seconds +[2018-06-13T07:46:43.061+0000][32376][safepoint ] Application time: 1,0001614 seconds +[2018-06-13T07:46:43.061+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002856 seconds, Stopping threads took: 0,0000607 seconds +[2018-06-13T07:46:43.627+0000][32376][safepoint ] Application time: 0,5657461 seconds +[2018-06-13T07:46:43.627+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003712 seconds, Stopping threads took: 0,0000744 seconds +[2018-06-13T07:46:43.630+0000][32376][safepoint ] Application time: 0,0027360 seconds +[2018-06-13T07:46:43.631+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004409 seconds, Stopping threads took: 0,0000838 seconds +[2018-06-13T07:46:43.809+0000][32376][safepoint ] Application time: 0,1778761 seconds +[2018-06-13T07:46:43.809+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005206 seconds, Stopping threads took: 0,0000987 seconds +[2018-06-13T07:46:43.896+0000][32376][safepoint ] Application time: 0,0865056 seconds +[2018-06-13T07:46:43.896+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002816 seconds, Stopping threads took: 0,0000561 seconds +[2018-06-13T07:46:43.967+0000][32376][safepoint ] Application time: 0,0709682 seconds +[2018-06-13T07:46:43.968+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005197 seconds, Stopping threads took: 0,0000742 seconds +[2018-06-13T07:46:44.195+0000][32376][safepoint ] Application time: 0,2268264 seconds +[2018-06-13T07:46:44.195+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003189 seconds, Stopping threads took: 0,0000670 seconds +[2018-06-13T07:46:44.260+0000][32376][safepoint ] Application time: 0,0649665 seconds +[2018-06-13T07:46:44.260+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002154 seconds, Stopping threads took: 0,0000440 seconds +[2018-06-13T07:46:44.404+0000][32376][safepoint ] Application time: 0,1441055 seconds +[2018-06-13T07:46:44.405+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0004810 seconds, Stopping threads took: 0,0000747 seconds +[2018-06-13T07:46:44.475+0000][32376][safepoint ] Application time: 0,0697908 seconds +[2018-06-13T07:46:44.475+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0005544 seconds, Stopping threads took: 0,0001671 seconds +[2018-06-13T07:46:44.475+0000][32376][safepoint ] Application time: 0,0001939 seconds +[2018-06-13T07:46:44.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003199 seconds, Stopping threads took: 0,0000589 seconds +[2018-06-13T07:46:44.476+0000][32376][safepoint ] Application time: 0,0001472 seconds +[2018-06-13T07:46:44.476+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002475 seconds, Stopping threads took: 0,0000326 seconds +[2018-06-13T07:46:44.476+0000][32376][safepoint ] Application time: 0,0001105 seconds +[2018-06-13T07:46:44.477+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002424 seconds, Stopping threads took: 0,0000309 seconds +[2018-06-13T07:46:44.477+0000][32376][safepoint ] Application time: 0,0001455 seconds +[2018-06-13T07:46:44.477+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002371 seconds, Stopping threads took: 0,0000334 seconds +[2018-06-13T07:46:44.712+0000][32376][safepoint ] Application time: 0,2345712 seconds +[2018-06-13T07:46:44.713+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009777 seconds, Stopping threads took: 0,0000489 seconds +[2018-06-13T07:46:44.714+0000][32376][safepoint ] Application time: 0,0012593 seconds +[2018-06-13T07:46:44.714+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002485 seconds, Stopping threads took: 0,0000997 seconds +[2018-06-13T07:46:44.715+0000][32376][safepoint ] Application time: 0,0006001 seconds +[2018-06-13T07:46:44.722+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0066634 seconds, Stopping threads took: 0,0064698 seconds +[2018-06-13T07:46:44.722+0000][32376][safepoint ] Application time: 0,0001030 seconds +[2018-06-13T07:46:44.723+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0009543 seconds, Stopping threads took: 0,0000705 seconds +[2018-06-13T07:46:44.723+0000][32376][safepoint ] Application time: 0,0000887 seconds +[2018-06-13T07:46:44.723+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0003464 seconds, Stopping threads took: 0,0002060 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Application time: 0,0066451 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002264 seconds, Stopping threads took: 0,0000596 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Application time: 0,0000263 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001187 seconds, Stopping threads took: 0,0000232 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Application time: 0,0000201 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001005 seconds, Stopping threads took: 0,0000208 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Application time: 0,0000187 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001023 seconds, Stopping threads took: 0,0000218 seconds +[2018-06-13T07:46:44.730+0000][32376][safepoint ] Application time: 0,0000178 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001233 seconds, Stopping threads took: 0,0000273 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Application time: 0,0000228 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000909 seconds, Stopping threads took: 0,0000096 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Application time: 0,0000209 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000949 seconds, Stopping threads took: 0,0000101 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Application time: 0,0000228 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001104 seconds, Stopping threads took: 0,0000163 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Application time: 0,0000224 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001319 seconds, Stopping threads took: 0,0000294 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Application time: 0,0000191 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001095 seconds, Stopping threads took: 0,0000229 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Application time: 0,0000255 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0001054 seconds, Stopping threads took: 0,0000166 seconds +[2018-06-13T07:46:44.731+0000][32376][safepoint ] Application time: 0,0000188 seconds +[2018-06-13T07:46:44.732+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0000978 seconds, Stopping threads took: 0,0000113 seconds +[2018-06-13T07:46:44.732+0000][32376][safepoint ] Application time: 0,0002462 seconds +[2018-06-13T07:46:44.732+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002622 seconds, Stopping threads took: 0,0001184 seconds +[2018-06-13T07:46:44.733+0000][32376][safepoint ] Application time: 0,0011530 seconds +[2018-06-13T07:46:44.734+0000][32376][safepoint ] Total time for which application threads were stopped: 0,0002898 seconds, Stopping threads took: 0,0000795 seconds +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] Heap +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] par new generation total 314560K, used 273882K [0x00000000c0000000, 0x00000000d5550000, 0x00000000d5550000) +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] eden space 279616K, 95% used [0x00000000c0000000, 0x00000000d054da90, 0x00000000d1110000) +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] from space 34944K, 18% used [0x00000000d1110000, 0x00000000d1739168, 0x00000000d3330000) +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] to space 34944K, 0% used [0x00000000d3330000, 0x00000000d3330000, 0x00000000d5550000) +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] concurrent mark-sweep generation total 699072K, used 496004K [0x00000000d5550000, 0x0000000100000000, 0x0000000100000000) +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] Metaspace used 89668K, capacity 98991K, committed 99196K, reserved 1134592K +[2018-06-13T07:46:44.746+0000][32376][gc,heap,exit ] class space used 11016K, capacity 13156K, committed 13260K, reserved 1048576K +[2018-06-13T07:46:44.747+0000][32376][safepoint ] Application time: 0,0129064 seconds diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.0.current b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.0.current new file mode 100644 index 00000000..512027fa --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.0.current @@ -0,0 +1,702 @@ +2018-06-11 01:51:14 GC log file created /var/log/elasticsearch/gc.log.4 +OpenJDK 64-Bit Server VM (25.171-b11) for linux-amd64 JRE (1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11), built on Apr 27 2018 17:19:03 by "buildd" with gcc 5.4.0 20160609 +Memory: 4k page, physical 4045212k(144384k free), swap 0k(0k free) +CommandLine flags: -XX:+AlwaysPreTouch -XX:CICompilerCount=2 -XX:CMSInitiatingOccupancyFraction=75 -XX:GCLogFileSize=67108864 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=174456832 -XX:MaxTenuringThreshold=6 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=174456832 -XX:NumberOfGCLogFiles=32 -XX:OldPLABSize=16 -XX:OldSize=899284992 -XX:-OmitStackTraceInFastThrow -XX:+PrintGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:ThreadStackSize=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseGCLogFileRotation -XX:+UseParNewGC +2018-06-11T01:51:14.078+0000: 1396021.448: [GC (Allocation Failure) 2018-06-11T01:51:14.078+0000: 1396021.448: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 10248128 bytes, 10248128 total +- age 2: 203616 bytes, 10451744 total +- age 3: 393016 bytes, 10844760 total +- age 4: 166936 bytes, 11011696 total +: 146846K->12312K(153344K), 0.0079246 secs] 520756K->386222K(1031552K), 0.0080233 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:10.104+0000: 1396137.475: Total time for which application threads were stopped: 0.0114333 seconds, Stopping threads took: 0.0025299 seconds +2018-06-11T01:53:10.667+0000: 1396138.037: [GC (Allocation Failure) 2018-06-11T01:53:10.667+0000: 1396138.037: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 11664760 bytes, 11664760 total +- age 2: 700928 bytes, 12365688 total +: 152245K->13854K(153344K), 0.0096113 secs] 559490K->422091K(1031552K), 0.0097213 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:10.677+0000: 1396138.047: Total time for which application threads were stopped: 0.0104320 seconds, Stopping threads took: 0.0001033 seconds +2018-06-11T01:53:11.316+0000: 1396138.686: Total time for which application threads were stopped: 0.0007117 seconds, Stopping threads took: 0.0000980 seconds +2018-06-11T01:53:11.374+0000: 1396138.744: [GC (Allocation Failure) 2018-06-11T01:53:11.374+0000: 1396138.745: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1047768 bytes, 1047768 total +: 149770K->10442K(153344K), 0.0076426 secs] 558007K->419864K(1031552K), 0.0077342 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:53:11.382+0000: 1396138.752: Total time for which application threads were stopped: 0.0083760 seconds, Stopping threads took: 0.0000702 seconds +2018-06-11T01:53:14.354+0000: 1396141.724: [GC (Allocation Failure) 2018-06-11T01:53:14.354+0000: 1396141.724: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16527112 bytes, 16527112 total +- age 2: 350088 bytes, 16877200 total +: 146762K->16814K(153344K), 0.0080806 secs] 556184K->426236K(1031552K), 0.0081906 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:14.362+0000: 1396141.732: Total time for which application threads were stopped: 0.0088543 seconds, Stopping threads took: 0.0000700 seconds +2018-06-11T01:53:15.398+0000: 1396142.768: [GC (Allocation Failure) 2018-06-11T01:53:15.398+0000: 1396142.768: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16316024 bytes, 16316024 total +: 152892K->17024K(153344K), 0.0105851 secs] 562314K->428999K(1031552K), 0.0107022 secs] [Times: user=0.03 sys=0.00, real=0.01 secs] +2018-06-11T01:53:15.409+0000: 1396142.779: Total time for which application threads were stopped: 0.0113722 seconds, Stopping threads took: 0.0000666 seconds +2018-06-11T01:53:16.452+0000: 1396143.822: [GC (Allocation Failure) 2018-06-11T01:53:16.452+0000: 1396143.822: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 9884608 bytes, 9884608 total +: 153344K->15215K(153344K), 0.0086695 secs] 565319K->428184K(1031552K), 0.0087786 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:53:16.461+0000: 1396143.831: Total time for which application threads were stopped: 0.0094948 seconds, Stopping threads took: 0.0000675 seconds +2018-06-11T01:53:30.492+0000: 1396157.862: [GC (Allocation Failure) 2018-06-11T01:53:30.492+0000: 1396157.862: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 13777304 bytes, 13777304 total +: 151535K->16565K(153344K), 0.0094948 secs] 564504K->430156K(1031552K), 0.0096468 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:30.502+0000: 1396157.872: Total time for which application threads were stopped: 0.0103680 seconds, Stopping threads took: 0.0000676 seconds +2018-06-11T01:53:30.532+0000: 1396157.903: Total time for which application threads were stopped: 0.0023381 seconds, Stopping threads took: 0.0018442 seconds +2018-06-11T01:53:30.609+0000: 1396157.979: [GC (Allocation Failure) 2018-06-11T01:53:30.609+0000: 1396157.979: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 935120 bytes, 935120 total +: 152885K->12851K(153344K), 0.0062231 secs] 566476K->427024K(1031552K), 0.0063132 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:53:30.615+0000: 1396157.986: Total time for which application threads were stopped: 0.0069449 seconds, Stopping threads took: 0.0000677 seconds +2018-06-11T01:53:31.569+0000: 1396158.939: [GC (Allocation Failure) 2018-06-11T01:53:31.569+0000: 1396158.940: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 654664 bytes, 654664 total +- age 2: 489432 bytes, 1144096 total +: 149171K->3384K(153344K), 0.0054071 secs] 563344K->417556K(1031552K), 0.0054905 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:53:31.575+0000: 1396158.945: Total time for which application threads were stopped: 0.0061053 seconds, Stopping threads took: 0.0000670 seconds +2018-06-11T01:53:34.616+0000: 1396161.986: [GC (Allocation Failure) 2018-06-11T01:53:34.616+0000: 1396161.986: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 5516200 bytes, 5516200 total +- age 2: 564072 bytes, 6080272 total +- age 3: 299440 bytes, 6379712 total +: 139704K->6752K(153344K), 0.0078117 secs] 553876K->420924K(1031552K), 0.0079319 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:34.624+0000: 1396161.994: Total time for which application threads were stopped: 0.0125793 seconds, Stopping threads took: 0.0040416 seconds +2018-06-11T01:53:35.648+0000: 1396163.019: Total time for which application threads were stopped: 0.0029444 seconds, Stopping threads took: 0.0024233 seconds +2018-06-11T01:53:35.663+0000: 1396163.033: [GC (Allocation Failure) 2018-06-11T01:53:35.663+0000: 1396163.033: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6074336 bytes, 6074336 total +- age 2: 562104 bytes, 6636440 total +- age 3: 552544 bytes, 7188984 total +- age 4: 297680 bytes, 7486664 total +: 143072K->9908K(153344K), 0.0077336 secs] 557244K->424080K(1031552K), 0.0078278 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:35.671+0000: 1396163.041: Total time for which application threads were stopped: 0.0085427 seconds, Stopping threads took: 0.0001110 seconds +2018-06-11T01:53:36.696+0000: 1396164.067: [GC (Allocation Failure) 2018-06-11T01:53:36.696+0000: 1396164.067: [ParNew +Desired survivor size 8716288 bytes, new threshold 4 (max 6) +- age 1: 7496632 bytes, 7496632 total +- age 2: 449792 bytes, 7946424 total +- age 3: 361584 bytes, 8308008 total +- age 4: 412560 bytes, 8720568 total +- age 5: 153232 bytes, 8873800 total +: 145769K->13443K(153344K), 0.0080071 secs] 559942K->427616K(1031552K), 0.0081196 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:53:36.705+0000: 1396164.075: Total time for which application threads were stopped: 0.0088041 seconds, Stopping threads took: 0.0000675 seconds +2018-06-11T01:53:36.712+0000: 1396164.083: Total time for which application threads were stopped: 0.0020710 seconds, Stopping threads took: 0.0016211 seconds +2018-06-11T01:53:48.350+0000: 1396175.720: [GC (Allocation Failure) 2018-06-11T01:53:48.350+0000: 1396175.720: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 760104 bytes, 760104 total +- age 2: 491312 bytes, 1251416 total +- age 3: 203088 bytes, 1454504 total +- age 4: 170808 bytes, 1625312 total +: 149763K->8179K(153344K), 0.0072052 secs] 563936K->422621K(1031552K), 0.0073072 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:48.357+0000: 1396175.727: Total time for which application threads were stopped: 0.0079737 seconds, Stopping threads took: 0.0000680 seconds +2018-06-11T01:53:50.765+0000: 1396178.135: [GC (Allocation Failure) 2018-06-11T01:53:50.765+0000: 1396178.135: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 3685904 bytes, 3685904 total +- age 2: 507832 bytes, 4193736 total +- age 3: 465392 bytes, 4659128 total +- age 4: 196712 bytes, 4855840 total +- age 5: 170544 bytes, 5026384 total +: 144205K->5856K(153344K), 0.0076602 secs] 558647K->420298K(1031552K), 0.0077774 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:53:50.773+0000: 1396178.143: Total time for which application threads were stopped: 0.0084666 seconds, Stopping threads took: 0.0000651 seconds +2018-06-11T01:53:53.762+0000: 1396181.133: [GC (Allocation Failure) 2018-06-11T01:53:53.763+0000: 1396181.133: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6512008 bytes, 6512008 total +- age 2: 390856 bytes, 6902864 total +- age 3: 475928 bytes, 7378792 total +- age 4: 460800 bytes, 7839592 total +- age 5: 196216 bytes, 8035808 total +- age 6: 170008 bytes, 8205816 total +: 142159K->10667K(153344K), 0.0080252 secs] 556601K->425109K(1031552K), 0.0081350 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:53:53.771+0000: 1396181.141: Total time for which application threads were stopped: 0.0087847 seconds, Stopping threads took: 0.0000687 seconds +2018-06-11T01:53:54.541+0000: 1396181.911: [GC (Allocation Failure) 2018-06-11T01:53:54.541+0000: 1396181.911: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 5349328 bytes, 5349328 total +- age 2: 638664 bytes, 5987992 total +- age 3: 348832 bytes, 6336824 total +- age 4: 432976 bytes, 6769800 total +- age 5: 460768 bytes, 7230568 total +- age 6: 196120 bytes, 7426688 total +: 146987K->10615K(153344K), 0.0083347 secs] 561429K->425223K(1031552K), 0.0084628 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:54.550+0000: 1396181.920: Total time for which application threads were stopped: 0.0091169 seconds, Stopping threads took: 0.0000599 seconds +2018-06-11T01:53:55.888+0000: 1396183.259: [GC (Allocation Failure) 2018-06-11T01:53:55.888+0000: 1396183.259: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 13159696 bytes, 13159696 total +- age 2: 558200 bytes, 13717896 total +- age 3: 616816 bytes, 14334712 total +- age 4: 328072 bytes, 14662784 total +- age 5: 432432 bytes, 15095216 total +- age 6: 460704 bytes, 15555920 total +: 146593K->17024K(153344K), 0.0102004 secs] 561202K->431824K(1031552K), 0.0103091 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:53:55.899+0000: 1396183.269: Total time for which application threads were stopped: 0.0110014 seconds, Stopping threads took: 0.0000864 seconds +2018-06-11T01:53:55.926+0000: 1396183.297: Total time for which application threads were stopped: 0.0006541 seconds, Stopping threads took: 0.0000989 seconds +2018-06-11T01:53:55.985+0000: 1396183.355: [GC (Allocation Failure) 2018-06-11T01:53:55.985+0000: 1396183.355: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 903984 bytes, 903984 total +: 153344K->13195K(153344K), 0.0103466 secs] 568144K->430880K(1031552K), 0.0104425 secs] [Times: user=0.02 sys=0.01, real=0.00 secs] +2018-06-11T01:53:55.995+0000: 1396183.365: Total time for which application threads were stopped: 0.0111467 seconds, Stopping threads took: 0.0001058 seconds +2018-06-11T01:54:10.955+0000: 1396198.325: [GC (Allocation Failure) 2018-06-11T01:54:10.955+0000: 1396198.325: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16450472 bytes, 16450472 total +- age 2: 234000 bytes, 16684472 total +: 149515K->17024K(153344K), 0.0102173 secs] 567200K->436618K(1031552K), 0.0103403 secs] [Times: user=0.02 sys=0.00, real=0.02 secs] +2018-06-11T01:54:10.966+0000: 1396198.336: Total time for which application threads were stopped: 0.0110354 seconds, Stopping threads took: 0.0000706 seconds +2018-06-11T01:54:10.987+0000: 1396198.357: Total time for which application threads were stopped: 0.0005585 seconds, Stopping threads took: 0.0000699 seconds +2018-06-11T01:54:12.010+0000: 1396199.380: [GC (Allocation Failure) 2018-06-11T01:54:12.010+0000: 1396199.380: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 7853552 bytes, 7853552 total +: 153344K->13086K(153344K), 0.0090495 secs] 572938K->433906K(1031552K), 0.0091835 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:12.019+0000: 1396199.389: Total time for which application threads were stopped: 0.0098759 seconds, Stopping threads took: 0.0000764 seconds +2018-06-11T01:54:12.028+0000: 1396199.399: Total time for which application threads were stopped: 0.0036973 seconds, Stopping threads took: 0.0032132 seconds +2018-06-11T01:54:14.047+0000: 1396201.417: [GC (Allocation Failure) 2018-06-11T01:54:14.047+0000: 1396201.417: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 15991664 bytes, 15991664 total +- age 2: 392496 bytes, 16384160 total +: 149406K->17024K(153344K), 0.0089253 secs] 570226K->438738K(1031552K), 0.0090443 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:14.056+0000: 1396201.427: Total time for which application threads were stopped: 0.0097482 seconds, Stopping threads took: 0.0000773 seconds +2018-06-11T01:54:15.095+0000: 1396202.466: [GC (Allocation Failure) 2018-06-11T01:54:15.096+0000: 1396202.466: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 7042008 bytes, 7042008 total +: 153344K->13537K(153344K), 0.0089133 secs] 575058K->436368K(1031552K), 0.0090303 secs] [Times: user=0.02 sys=0.00, real=0.02 secs] +2018-06-11T01:54:15.105+0000: 1396202.475: Total time for which application threads were stopped: 0.0097214 seconds, Stopping threads took: 0.0000708 seconds +2018-06-11T01:54:16.144+0000: 1396203.515: Total time for which application threads were stopped: 0.0010909 seconds, Stopping threads took: 0.0005842 seconds +2018-06-11T01:54:16.146+0000: 1396203.517: [GC (Allocation Failure) 2018-06-11T01:54:16.147+0000: 1396203.517: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6421072 bytes, 6421072 total +- age 2: 657624 bytes, 7078696 total +: 149857K->11926K(153344K), 0.0070647 secs] 572688K->434758K(1031552K), 0.0071520 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:54:16.154+0000: 1396203.524: Total time for which application threads were stopped: 0.0077097 seconds, Stopping threads took: 0.0000800 seconds +2018-06-11T01:54:30.085+0000: 1396217.455: [GC (Allocation Failure) 2018-06-11T01:54:30.085+0000: 1396217.455: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 10685952 bytes, 10685952 total +- age 2: 305792 bytes, 10991744 total +- age 3: 375456 bytes, 11367200 total +: 148245K->14290K(153344K), 0.0082666 secs] 571077K->437122K(1031552K), 0.0083861 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] +2018-06-11T01:54:30.094+0000: 1396217.464: Total time for which application threads were stopped: 0.0090744 seconds, Stopping threads took: 0.0000623 seconds +2018-06-11T01:54:30.672+0000: 1396218.042: [GC (Allocation Failure) 2018-06-11T01:54:30.672+0000: 1396218.042: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 13233080 bytes, 13233080 total +: 150610K->17024K(153344K), 0.0102153 secs] 573442K->442734K(1031552K), 0.0103380 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:30.683+0000: 1396218.053: Total time for which application threads were stopped: 0.0150033 seconds, Stopping threads took: 0.0040390 seconds +2018-06-11T01:54:32.248+0000: 1396219.619: [GC (Allocation Failure) 2018-06-11T01:54:32.248+0000: 1396219.619: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 4196936 bytes, 4196936 total +: 153099K->12028K(153344K), 0.0070319 secs] 578810K->438434K(1031552K), 0.0071514 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] +2018-06-11T01:54:32.256+0000: 1396219.626: Total time for which application threads were stopped: 0.0078303 seconds, Stopping threads took: 0.0000726 seconds +2018-06-11T01:54:34.292+0000: 1396221.663: [GC (Allocation Failure) 2018-06-11T01:54:34.293+0000: 1396221.663: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 5818112 bytes, 5818112 total +- age 2: 708288 bytes, 6526400 total +: 148348K->8063K(153344K), 0.0068706 secs] 574754K->434469K(1031552K), 0.0069933 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:34.300+0000: 1396221.670: Total time for which application threads were stopped: 0.0076690 seconds, Stopping threads took: 0.0000634 seconds +2018-06-11T01:54:34.308+0000: 1396221.679: Total time for which application threads were stopped: 0.0006315 seconds, Stopping threads took: 0.0001226 seconds +2018-06-11T01:54:35.312+0000: 1396222.682: [GC (Allocation Failure) 2018-06-11T01:54:35.312+0000: 1396222.682: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16216032 bytes, 16216032 total +- age 2: 506192 bytes, 16722224 total +- age 3: 644592 bytes, 17366816 total +: 144035K->17024K(153344K), 0.0104515 secs] 570440K->443943K(1031552K), 0.0105716 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:35.323+0000: 1396222.693: Total time for which application threads were stopped: 0.0112841 seconds, Stopping threads took: 0.0000699 seconds +2018-06-11T01:54:36.365+0000: 1396223.735: [GC (Allocation Failure) 2018-06-11T01:54:36.365+0000: 1396223.735: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 13089832 bytes, 13089832 total +: 153344K->17024K(153344K), 0.0104376 secs] 580263K->445683K(1031552K), 0.0105614 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] +2018-06-11T01:54:36.375+0000: 1396223.745: Total time for which application threads were stopped: 0.0113359 seconds, Stopping threads took: 0.0000986 seconds +2018-06-11T01:54:45.416+0000: 1396232.787: Total time for which application threads were stopped: 0.0023225 seconds, Stopping threads took: 0.0017871 seconds +2018-06-11T01:54:50.126+0000: 1396237.496: [GC (Allocation Failure) 2018-06-11T01:54:50.126+0000: 1396237.496: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14453000 bytes, 14453000 total +: 153344K->17024K(153344K), 0.0116218 secs] 582003K->448797K(1031552K), 0.0117426 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:50.138+0000: 1396237.508: Total time for which application threads were stopped: 0.0124409 seconds, Stopping threads took: 0.0000752 seconds +2018-06-11T01:54:50.419+0000: 1396237.789: Total time for which application threads were stopped: 0.0009882 seconds, Stopping threads took: 0.0001095 seconds +2018-06-11T01:54:50.451+0000: 1396237.821: [GC (Allocation Failure) 2018-06-11T01:54:50.451+0000: 1396237.821: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1131120 bytes, 1131120 total +: 153039K->13867K(153344K), 0.0069407 secs] 584813K->446446K(1031552K), 0.0070407 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:54:50.458+0000: 1396237.828: Total time for which application threads were stopped: 0.0077138 seconds, Stopping threads took: 0.0000694 seconds +2018-06-11T01:54:51.471+0000: 1396238.841: [GC (Allocation Failure) 2018-06-11T01:54:51.471+0000: 1396238.841: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6231216 bytes, 6231216 total +- age 2: 438248 bytes, 6669464 total +: 150187K->9185K(153344K), 0.0063207 secs] 582766K->441763K(1031552K), 0.0064210 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:54:51.478+0000: 1396238.848: Total time for which application threads were stopped: 0.0070812 seconds, Stopping threads took: 0.0000685 seconds +2018-06-11T01:54:53.819+0000: 1396241.189: [GC (Allocation Failure) 2018-06-11T01:54:53.819+0000: 1396241.189: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14630336 bytes, 14630336 total +- age 2: 500680 bytes, 15131016 total +- age 3: 396608 bytes, 15527624 total +: 145505K->17024K(153344K), 0.0102882 secs] 578083K->452769K(1031552K), 0.0103973 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:53.830+0000: 1396241.200: Total time for which application threads were stopped: 0.0110752 seconds, Stopping threads took: 0.0000674 seconds +2018-06-11T01:54:54.533+0000: 1396241.903: Total time for which application threads were stopped: 0.0006116 seconds, Stopping threads took: 0.0001030 seconds +2018-06-11T01:54:54.573+0000: 1396241.943: [GC (Allocation Failure) 2018-06-11T01:54:54.573+0000: 1396241.943: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1236840 bytes, 1236840 total +: 153342K->12823K(153344K), 0.0090848 secs] 589088K->450718K(1031552K), 0.0091883 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:54.582+0000: 1396241.953: Total time for which application threads were stopped: 0.0098408 seconds, Stopping threads took: 0.0000695 seconds +2018-06-11T01:54:55.573+0000: 1396242.943: [GC (Allocation Failure) 2018-06-11T01:54:55.573+0000: 1396242.943: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 10288048 bytes, 10288048 total +- age 2: 689264 bytes, 10977312 total +: 149143K->12013K(153344K), 0.0079875 secs] 587038K->449908K(1031552K), 0.0080961 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:55.581+0000: 1396242.951: Total time for which application threads were stopped: 0.0087758 seconds, Stopping threads took: 0.0000764 seconds +2018-06-11T01:54:56.619+0000: 1396243.989: [GC (Allocation Failure) 2018-06-11T01:54:56.619+0000: 1396243.989: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 3091912 bytes, 3091912 total +: 148333K->8898K(153344K), 0.0080223 secs] 586228K->447743K(1031552K), 0.0081177 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:54:56.627+0000: 1396243.998: Total time for which application threads were stopped: 0.0087676 seconds, Stopping threads took: 0.0000716 seconds +2018-06-11T01:55:10.663+0000: 1396258.033: [GC (Allocation Failure) 2018-06-11T01:55:10.663+0000: 1396258.033: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16257352 bytes, 16257352 total +- age 2: 732304 bytes, 16989656 total +: 145204K->17024K(153344K), 0.0099206 secs] 584049K->455928K(1031552K), 0.0100273 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:10.673+0000: 1396258.043: Total time for which application threads were stopped: 0.0107555 seconds, Stopping threads took: 0.0001136 seconds +2018-06-11T01:55:10.696+0000: 1396258.066: Total time for which application threads were stopped: 0.0006063 seconds, Stopping threads took: 0.0000997 seconds +2018-06-11T01:55:11.700+0000: 1396259.070: [GC (Allocation Failure) 2018-06-11T01:55:11.700+0000: 1396259.070: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 7517784 bytes, 7517784 total +: 153095K->13188K(153344K), 0.0107917 secs] 592000K->458651K(1031552K), 0.0109119 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:11.711+0000: 1396259.081: Total time for which application threads were stopped: 0.0116374 seconds, Stopping threads took: 0.0000760 seconds +2018-06-11T01:55:14.749+0000: 1396262.119: [GC (Allocation Failure) 2018-06-11T01:55:14.749+0000: 1396262.119: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14787864 bytes, 14787864 total +- age 2: 454984 bytes, 15242848 total +: 149508K->17024K(153344K), 0.0098032 secs] 594971K->463020K(1031552K), 0.0099105 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:14.759+0000: 1396262.129: Total time for which application threads were stopped: 0.0106458 seconds, Stopping threads took: 0.0000709 seconds +2018-06-11T01:55:15.796+0000: 1396263.167: [GC (Allocation Failure) 2018-06-11T01:55:15.797+0000: 1396263.167: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 11838312 bytes, 11838312 total +: 153344K->17024K(153344K), 0.0106097 secs] 599340K->466789K(1031552K), 0.0107417 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:15.807+0000: 1396263.178: Total time for which application threads were stopped: 0.0114510 seconds, Stopping threads took: 0.0000946 seconds +2018-06-11T01:55:16.848+0000: 1396264.218: Total time for which application threads were stopped: 0.0006560 seconds, Stopping threads took: 0.0000968 seconds +2018-06-11T01:55:16.850+0000: 1396264.220: [GC (Allocation Failure) 2018-06-11T01:55:16.850+0000: 1396264.220: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6560992 bytes, 6560992 total +: 153253K->11839K(153344K), 0.0076250 secs] 603018K->462499K(1031552K), 0.0077081 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:16.858+0000: 1396264.228: Total time for which application threads were stopped: 0.0082671 seconds, Stopping threads took: 0.0000977 seconds +2018-06-11T01:55:30.121+0000: 1396277.491: [GC (Allocation Failure) 2018-06-11T01:55:30.121+0000: 1396277.491: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16829392 bytes, 16829392 total +- age 2: 409384 bytes, 17238776 total +: 148159K->17024K(153344K), 0.0089878 secs] 598819K->467691K(1031552K), 0.0091146 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:30.130+0000: 1396277.500: Total time for which application threads were stopped: 0.0098154 seconds, Stopping threads took: 0.0000904 seconds +2018-06-11T01:55:30.889+0000: 1396278.259: Total time for which application threads were stopped: 0.0005507 seconds, Stopping threads took: 0.0000711 seconds +2018-06-11T01:55:31.502+0000: 1396278.872: [GC (Allocation Failure) 2018-06-11T01:55:31.502+0000: 1396278.872: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 10894352 bytes, 10894352 total +: 153344K->13966K(153344K), 0.0090380 secs] 604011K->465663K(1031552K), 0.0091515 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:31.511+0000: 1396278.881: Total time for which application threads were stopped: 0.0098225 seconds, Stopping threads took: 0.0000707 seconds +2018-06-11T01:55:31.941+0000: 1396279.311: Total time for which application threads were stopped: 0.0006292 seconds, Stopping threads took: 0.0000885 seconds +2018-06-11T01:55:32.036+0000: 1396279.406: [GC (Allocation Failure) 2018-06-11T01:55:32.036+0000: 1396279.406: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 745200 bytes, 745200 total +: 150286K->11470K(153344K), 0.0057031 secs] 601983K->463738K(1031552K), 0.0058190 secs] [Times: user=0.01 sys=0.01, real=0.01 secs] +2018-06-11T01:55:32.042+0000: 1396279.412: Total time for which application threads were stopped: 0.0064785 seconds, Stopping threads took: 0.0000740 seconds +2018-06-11T01:55:33.991+0000: 1396281.361: [GC (Allocation Failure) 2018-06-11T01:55:33.991+0000: 1396281.361: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1599552 bytes, 1599552 total +- age 2: 219920 bytes, 1819472 total +: 147790K->3004K(153344K), 0.0060475 secs] 600058K->455272K(1031552K), 0.0061323 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:55:33.997+0000: 1396281.367: Total time for which application threads were stopped: 0.0067745 seconds, Stopping threads took: 0.0000801 seconds +2018-06-11T01:55:36.017+0000: 1396283.387: [GC (Allocation Failure) 2018-06-11T01:55:36.017+0000: 1396283.387: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14608464 bytes, 14608464 total +- age 2: 693296 bytes, 15301760 total +- age 3: 195720 bytes, 15497480 total +: 139324K->16299K(153344K), 0.0098049 secs] 591592K->468567K(1031552K), 0.0099298 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:55:36.027+0000: 1396283.397: Total time for which application threads were stopped: 0.0106180 seconds, Stopping threads took: 0.0000725 seconds +2018-06-11T01:55:36.061+0000: 1396283.431: Total time for which application threads were stopped: 0.0039548 seconds, Stopping threads took: 0.0034265 seconds +2018-06-11T01:55:36.134+0000: 1396283.504: [GC (Allocation Failure) 2018-06-11T01:55:36.134+0000: 1396283.505: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 8730040 bytes, 8730040 total +: 152619K->17024K(153344K), 0.0098317 secs] 604887K->470652K(1031552K), 0.0099528 secs] [Times: user=0.02 sys=0.00, real=0.02 secs] +2018-06-11T01:55:36.144+0000: 1396283.515: Total time for which application threads were stopped: 0.0106286 seconds, Stopping threads took: 0.0000720 seconds +2018-06-11T01:55:50.099+0000: 1396297.469: [GC (Allocation Failure) 2018-06-11T01:55:50.099+0000: 1396297.469: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 8228312 bytes, 8228312 total +: 153344K->9184K(153344K), 0.0084821 secs] 606972K->463300K(1031552K), 0.0085936 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:55:50.107+0000: 1396297.477: Total time for which application threads were stopped: 0.0092589 seconds, Stopping threads took: 0.0000639 seconds +2018-06-11T01:55:51.139+0000: 1396298.509: Total time for which application threads were stopped: 0.0005723 seconds, Stopping threads took: 0.0000715 seconds +2018-06-11T01:55:51.151+0000: 1396298.521: [GC (Allocation Failure) 2018-06-11T01:55:51.151+0000: 1396298.521: [ParNew +Desired survivor size 8716288 bytes, new threshold 2 (max 6) +- age 1: 8354096 bytes, 8354096 total +- age 2: 754968 bytes, 9109064 total +: 145504K->11336K(153344K), 0.0077746 secs] 599620K->465451K(1031552K), 0.0078743 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:51.159+0000: 1396298.529: Total time for which application threads were stopped: 0.0085399 seconds, Stopping threads took: 0.0000680 seconds +2018-06-11T01:55:54.194+0000: 1396301.564: [GC (Allocation Failure) 2018-06-11T01:55:54.194+0000: 1396301.564: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14310952 bytes, 14310952 total +- age 2: 430560 bytes, 14741512 total +: 147293K->17024K(153344K), 0.0101495 secs] 601409K->471835K(1031552K), 0.0102937 secs] [Times: user=0.02 sys=0.00, real=0.02 secs] +2018-06-11T01:55:54.204+0000: 1396301.574: Total time for which application threads were stopped: 0.0109681 seconds, Stopping threads took: 0.0000718 seconds +2018-06-11T01:55:54.212+0000: 1396301.583: Total time for which application threads were stopped: 0.0022113 seconds, Stopping threads took: 0.0017056 seconds +2018-06-11T01:55:54.272+0000: 1396301.643: [GC (Allocation Failure) 2018-06-11T01:55:54.272+0000: 1396301.643: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 788880 bytes, 788880 total +: 153344K->12937K(153344K), 0.0066668 secs] 608155K->468737K(1031552K), 0.0067531 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:55:54.279+0000: 1396301.649: Total time for which application threads were stopped: 0.0074449 seconds, Stopping threads took: 0.0000729 seconds +2018-06-11T01:55:55.270+0000: 1396302.640: [GC (Allocation Failure) 2018-06-11T01:55:55.270+0000: 1396302.640: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 9879936 bytes, 9879936 total +- age 2: 328584 bytes, 10208520 total +: 149257K->11825K(153344K), 0.0077361 secs] 605057K->467625K(1031552K), 0.0078429 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:55.278+0000: 1396302.648: Total time for which application threads were stopped: 0.0085001 seconds, Stopping threads took: 0.0000667 seconds +2018-06-11T01:55:56.320+0000: 1396303.690: [GC (Allocation Failure) 2018-06-11T01:55:56.320+0000: 1396303.690: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 2565728 bytes, 2565728 total +: 148031K->8321K(153344K), 0.0076918 secs] 603831K->465090K(1031552K), 0.0078302 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:55:56.328+0000: 1396303.698: Total time for which application threads were stopped: 0.0084951 seconds, Stopping threads took: 0.0000684 seconds +2018-06-11T01:56:10.346+0000: 1396317.716: Total time for which application threads were stopped: 0.0006233 seconds, Stopping threads took: 0.0000971 seconds +2018-06-11T01:56:10.347+0000: 1396317.718: [GC (Allocation Failure) 2018-06-11T01:56:10.347+0000: 1396317.718: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6141280 bytes, 6141280 total +- age 2: 593080 bytes, 6734360 total +: 144641K->8120K(153344K), 0.0076719 secs] 601410K->464889K(1031552K), 0.0077650 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] +2018-06-11T01:56:10.355+0000: 1396317.725: Total time for which application threads were stopped: 0.0081514 seconds, Stopping threads took: 0.0000529 seconds +2018-06-11T01:56:11.372+0000: 1396318.743: [GC (Allocation Failure) 2018-06-11T01:56:11.372+0000: 1396318.743: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 15646296 bytes, 15646296 total +- age 2: 605768 bytes, 16252064 total +- age 3: 542536 bytes, 16794600 total +: 144440K->17024K(153344K), 0.0097768 secs] 601209K->474043K(1031552K), 0.0098951 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:56:11.382+0000: 1396318.753: Total time for which application threads were stopped: 0.0106376 seconds, Stopping threads took: 0.0001009 seconds +2018-06-11T01:56:11.421+0000: 1396318.791: Total time for which application threads were stopped: 0.0024761 seconds, Stopping threads took: 0.0019427 seconds +2018-06-11T01:56:11.469+0000: 1396318.839: [GC (Allocation Failure) 2018-06-11T01:56:11.469+0000: 1396318.839: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1255208 bytes, 1255208 total +: 153338K->13703K(153344K), 0.0088436 secs] 610358K->472339K(1031552K), 0.0089272 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:56:11.478+0000: 1396318.848: Total time for which application threads were stopped: 0.0095749 seconds, Stopping threads took: 0.0000695 seconds +2018-06-11T01:56:14.448+0000: 1396321.818: [GC (Allocation Failure) 2018-06-11T01:56:14.448+0000: 1396321.818: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 15123352 bytes, 15123352 total +- age 2: 580232 bytes, 15703584 total +: 150023K->16450K(153344K), 0.0085074 secs] 608659K->475086K(1031552K), 0.0086228 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:56:14.456+0000: 1396321.827: Total time for which application threads were stopped: 0.0093019 seconds, Stopping threads took: 0.0000689 seconds +2018-06-11T01:56:15.493+0000: 1396322.863: [GC (Allocation Failure) 2018-06-11T01:56:15.493+0000: 1396322.864: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 15455936 bytes, 15455936 total +: 152606K->17024K(153344K), 0.0109047 secs] 611242K->477156K(1031552K), 0.0110240 secs] [Times: user=0.02 sys=0.00, real=0.02 secs] +2018-06-11T01:56:15.504+0000: 1396322.875: Total time for which application threads were stopped: 0.0116867 seconds, Stopping threads took: 0.0000712 seconds +2018-06-11T01:56:16.545+0000: 1396323.915: [GC (Allocation Failure) 2018-06-11T01:56:16.545+0000: 1396323.915: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 10021200 bytes, 10021200 total +: 153344K->17024K(153344K), 0.0081333 secs] 613476K->478152K(1031552K), 0.0082506 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] +2018-06-11T01:56:16.553+0000: 1396323.923: Total time for which application threads were stopped: 0.0089475 seconds, Stopping threads took: 0.0000680 seconds +2018-06-11T01:56:25.583+0000: 1396332.953: Total time for which application threads were stopped: 0.0006212 seconds, Stopping threads took: 0.0000976 seconds +2018-06-11T01:56:30.584+0000: 1396337.954: [GC (Allocation Failure) 2018-06-11T01:56:30.584+0000: 1396337.954: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14322752 bytes, 14322752 total +: 153344K->17024K(153344K), 0.0108893 secs] 614472K->479949K(1031552K), 0.0110204 secs] [Times: user=0.03 sys=0.00, real=0.01 secs] +2018-06-11T01:56:30.595+0000: 1396337.965: Total time for which application threads were stopped: 0.0117186 seconds, Stopping threads took: 0.0000800 seconds +2018-06-11T01:56:31.634+0000: 1396339.004: [GC (Allocation Failure) 2018-06-11T01:56:31.634+0000: 1396339.004: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14505832 bytes, 14505832 total +: 152959K->17024K(153344K), 0.0098766 secs] 615885K->481064K(1031552K), 0.0099943 secs] [Times: user=0.02 sys=0.00, real=0.02 secs] +2018-06-11T01:56:31.644+0000: 1396339.014: Total time for which application threads were stopped: 0.0106796 seconds, Stopping threads took: 0.0000800 seconds +2018-06-11T01:56:31.656+0000: 1396339.026: Total time for which application threads were stopped: 0.0045695 seconds, Stopping threads took: 0.0040606 seconds +2018-06-11T01:56:31.735+0000: 1396339.105: [GC (Allocation Failure) 2018-06-11T01:56:31.735+0000: 1396339.105: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 916512 bytes, 916512 total +: 153340K->13701K(153344K), 0.0062068 secs] 617380K->478315K(1031552K), 0.0062932 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:56:31.741+0000: 1396339.112: Total time for which application threads were stopped: 0.0069524 seconds, Stopping threads took: 0.0000694 seconds +2018-06-11T01:56:34.712+0000: 1396342.082: [GC (Allocation Failure) 2018-06-11T01:56:34.712+0000: 1396342.082: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6080392 bytes, 6080392 total +- age 2: 317528 bytes, 6397920 total +: 150021K->7186K(153344K), 0.0074600 secs] 614635K->471800K(1031552K), 0.0075589 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:56:34.719+0000: 1396342.090: Total time for which application threads were stopped: 0.0081912 seconds, Stopping threads took: 0.0000647 seconds +2018-06-11T01:56:35.754+0000: 1396343.124: Total time for which application threads were stopped: 0.0006306 seconds, Stopping threads took: 0.0000893 seconds +2018-06-11T01:56:35.756+0000: 1396343.126: [GC (Allocation Failure) 2018-06-11T01:56:35.756+0000: 1396343.126: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 5775568 bytes, 5775568 total +- age 2: 705216 bytes, 6480784 total +- age 3: 288896 bytes, 6769680 total +: 143506K->11168K(153344K), 0.0071027 secs] 608120K->475782K(1031552K), 0.0071875 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:56:35.763+0000: 1396343.133: Total time for which application threads were stopped: 0.0076961 seconds, Stopping threads took: 0.0000698 seconds +2018-06-11T01:56:36.784+0000: 1396344.154: [GC (Allocation Failure) 2018-06-11T01:56:36.784+0000: 1396344.154: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 9125960 bytes, 9125960 total +- age 2: 556336 bytes, 9682296 total +- age 3: 665016 bytes, 10347312 total +- age 4: 286320 bytes, 10633632 total +: 147346K->11625K(153344K), 0.0088003 secs] 611960K->476239K(1031552K), 0.0089164 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:56:36.793+0000: 1396344.163: Total time for which application threads were stopped: 0.0096328 seconds, Stopping threads took: 0.0000688 seconds +2018-06-11T01:56:36.816+0000: 1396344.187: Total time for which application threads were stopped: 0.0024212 seconds, Stopping threads took: 0.0019128 seconds +2018-06-11T01:56:50.072+0000: 1396357.442: [GC (Allocation Failure) 2018-06-11T01:56:50.072+0000: 1396357.442: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1373672 bytes, 1373672 total +: 147945K->8757K(153344K), 0.0084696 secs] 612559K->474901K(1031552K), 0.0085748 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:56:50.080+0000: 1396357.451: Total time for which application threads were stopped: 0.0092434 seconds, Stopping threads took: 0.0000641 seconds +2018-06-11T01:56:50.831+0000: 1396358.201: Total time for which application threads were stopped: 0.0005738 seconds, Stopping threads took: 0.0000768 seconds +2018-06-11T01:56:50.857+0000: 1396358.228: [GC (Allocation Failure) 2018-06-11T01:56:50.858+0000: 1396358.228: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 750144 bytes, 750144 total +- age 2: 877768 bytes, 1627912 total +: 145077K->2440K(153344K), 0.0061629 secs] 611221K->468584K(1031552K), 0.0062477 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:56:50.864+0000: 1396358.234: Total time for which application threads were stopped: 0.0068838 seconds, Stopping threads took: 0.0000705 seconds +2018-06-11T01:56:53.898+0000: 1396361.268: [GC (Allocation Failure) 2018-06-11T01:56:53.898+0000: 1396361.268: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16060200 bytes, 16060200 total +- age 2: 343456 bytes, 16403656 total +- age 3: 480744 bytes, 16884400 total +: 138760K->17024K(153344K), 0.0097393 secs] 604904K->483501K(1031552K), 0.0098581 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:56:53.908+0000: 1396361.278: Total time for which application threads were stopped: 0.0105379 seconds, Stopping threads took: 0.0000737 seconds +2018-06-11T01:56:54.973+0000: 1396362.343: [GC (Allocation Failure) 2018-06-11T01:56:54.973+0000: 1396362.343: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 779272 bytes, 779272 total +: 153344K->12817K(153344K), 0.0078103 secs] 619821K->480619K(1031552K), 0.0079112 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:56:54.981+0000: 1396362.351: Total time for which application threads were stopped: 0.0085470 seconds, Stopping threads took: 0.0000644 seconds +2018-06-11T01:56:55.988+0000: 1396363.358: [GC (Allocation Failure) 2018-06-11T01:56:55.988+0000: 1396363.358: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1056568 bytes, 1056568 total +- age 2: 689456 bytes, 1746024 total +: 148709K->3346K(153344K), 0.0058737 secs] 616512K->471149K(1031552K), 0.0059768 secs] [Times: user=0.01 sys=0.01, real=0.00 secs] +2018-06-11T01:56:55.994+0000: 1396363.364: Total time for which application threads were stopped: 0.0067013 seconds, Stopping threads took: 0.0000904 seconds +2018-06-11T01:57:08.342+0000: 1396375.713: [GC (Allocation Failure) 2018-06-11T01:57:08.343+0000: 1396375.713: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 999064 bytes, 999064 total +- age 2: 458768 bytes, 1457832 total +- age 3: 595976 bytes, 2053808 total +: 139651K->2952K(153344K), 0.0072104 secs] 607454K->470755K(1031552K), 0.0073100 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:57:08.350+0000: 1396375.720: Total time for which application threads were stopped: 0.0079643 seconds, Stopping threads took: 0.0000717 seconds +2018-06-11T01:57:11.026+0000: 1396378.396: Total time for which application threads were stopped: 0.0005983 seconds, Stopping threads took: 0.0000656 seconds +2018-06-11T01:57:11.032+0000: 1396378.402: Total time for which application threads were stopped: 0.0003869 seconds, Stopping threads took: 0.0000781 seconds +2018-06-11T01:57:11.051+0000: 1396378.421: [GC (Allocation Failure) 2018-06-11T01:57:11.051+0000: 1396378.421: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 5293232 bytes, 5293232 total +- age 2: 721760 bytes, 6014992 total +- age 3: 451992 bytes, 6466984 total +- age 4: 595912 bytes, 7062896 total +: 139272K->7492K(153344K), 0.0081421 secs] 607075K->475295K(1031552K), 0.0082407 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:11.059+0000: 1396378.430: Total time for which application threads were stopped: 0.0090029 seconds, Stopping threads took: 0.0001299 seconds +2018-06-11T01:57:11.064+0000: 1396378.434: Total time for which application threads were stopped: 0.0006703 seconds, Stopping threads took: 0.0001073 seconds +2018-06-11T01:57:14.090+0000: 1396381.460: [GC (Allocation Failure) 2018-06-11T01:57:14.090+0000: 1396381.460: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 16365120 bytes, 16365120 total +- age 2: 203840 bytes, 16568960 total +- age 3: 507008 bytes, 17075968 total +- age 4: 147128 bytes, 17223096 total +- age 5: 158216 bytes, 17381312 total +: 143812K->17024K(153344K), 0.0116770 secs] 611615K->486281K(1031552K), 0.0118176 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:14.102+0000: 1396381.472: Total time for which application threads were stopped: 0.0125015 seconds, Stopping threads took: 0.0000705 seconds +2018-06-11T01:57:15.140+0000: 1396382.510: [GC (Allocation Failure) 2018-06-11T01:57:15.140+0000: 1396382.510: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 8715600 bytes, 8715600 total +: 152865K->14140K(153344K), 0.0114714 secs] 622123K->484993K(1031552K), 0.0115834 secs] [Times: user=0.01 sys=0.01, real=0.01 secs] +2018-06-11T01:57:15.151+0000: 1396382.522: Total time for which application threads were stopped: 0.0122567 seconds, Stopping threads took: 0.0000680 seconds +2018-06-11T01:57:15.160+0000: 1396382.531: Total time for which application threads were stopped: 0.0017674 seconds, Stopping threads took: 0.0012513 seconds +2018-06-11T01:57:15.171+0000: 1396382.542: Total time for which application threads were stopped: 0.0006051 seconds, Stopping threads took: 0.0001081 seconds +2018-06-11T01:57:15.252+0000: 1396382.623: [GC (Allocation Failure) 2018-06-11T01:57:15.253+0000: 1396382.623: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 13699072 bytes, 13699072 total +- age 2: 643688 bytes, 14342760 total +: 149975K->17024K(153344K), 0.0099967 secs] 620829K->492670K(1031552K), 0.0101187 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:15.263+0000: 1396382.633: Total time for which application threads were stopped: 0.0123727 seconds, Stopping threads took: 0.0016139 seconds +2018-06-11T01:57:16.201+0000: 1396383.571: [GC (Allocation Failure) 2018-06-11T01:57:16.201+0000: 1396383.571: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 681384 bytes, 681384 total +: 153014K->12984K(153344K), 0.0080241 secs] 628660K->494106K(1031552K), 0.0081178 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:57:16.209+0000: 1396383.579: Total time for which application threads were stopped: 0.0088232 seconds, Stopping threads took: 0.0000772 seconds +2018-06-11T01:57:30.244+0000: 1396397.615: [GC (Allocation Failure) 2018-06-11T01:57:30.244+0000: 1396397.615: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 9704664 bytes, 9704664 total +- age 2: 576024 bytes, 10280688 total +: 148796K->11798K(153344K), 0.0085902 secs] 629919K->492920K(1031552K), 0.0087039 secs] [Times: user=0.02 sys=0.00, real=0.00 secs] +2018-06-11T01:57:30.253+0000: 1396397.623: Total time for which application threads were stopped: 0.0094302 seconds, Stopping threads took: 0.0000775 seconds +2018-06-11T01:57:31.291+0000: 1396398.662: [GC (Allocation Failure) 2018-06-11T01:57:31.291+0000: 1396398.662: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 9565128 bytes, 9565128 total +: 148108K->12558K(153344K), 0.0093612 secs] 629230K->495020K(1031552K), 0.0094714 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:31.301+0000: 1396398.671: Total time for which application threads were stopped: 0.0101807 seconds, Stopping threads took: 0.0000960 seconds +2018-06-11T01:57:34.337+0000: 1396401.708: [GC (Allocation Failure) 2018-06-11T01:57:34.338+0000: 1396401.708: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 15784072 bytes, 15784072 total +: 148878K->17024K(153344K), 0.0089264 secs] 631340K->500016K(1031552K), 0.0090554 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:34.347+0000: 1396401.717: Total time for which application threads were stopped: 0.0097517 seconds, Stopping threads took: 0.0000688 seconds +2018-06-11T01:57:35.381+0000: 1396402.751: [GC (Allocation Failure) 2018-06-11T01:57:35.381+0000: 1396402.751: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 15852872 bytes, 15852872 total +: 153344K->17024K(153344K), 0.0105199 secs] 636336K->501854K(1031552K), 0.0106424 secs] [Times: user=0.03 sys=0.00, real=0.01 secs] +2018-06-11T01:57:35.391+0000: 1396402.761: Total time for which application threads were stopped: 0.0113333 seconds, Stopping threads took: 0.0001089 seconds +2018-06-11T01:57:36.434+0000: 1396403.804: [GC (Allocation Failure) 2018-06-11T01:57:36.434+0000: 1396403.804: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 4318984 bytes, 4318984 total +: 153344K->15069K(153344K), 0.0075881 secs] 638174K->500989K(1031552K), 0.0076848 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:57:36.442+0000: 1396403.812: Total time for which application threads were stopped: 0.0083644 seconds, Stopping threads took: 0.0000655 seconds +2018-06-11T01:57:50.471+0000: 1396417.841: Total time for which application threads were stopped: 0.0006363 seconds, Stopping threads took: 0.0001023 seconds +2018-06-11T01:57:50.473+0000: 1396417.843: [GC (Allocation Failure) 2018-06-11T01:57:50.473+0000: 1396417.843: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 12072192 bytes, 12072192 total +- age 2: 577040 bytes, 12649232 total +: 151014K->14465K(153344K), 0.0090737 secs] 636933K->500385K(1031552K), 0.0091687 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:50.482+0000: 1396417.853: Total time for which application threads were stopped: 0.0097108 seconds, Stopping threads took: 0.0000641 seconds +2018-06-11T01:57:50.620+0000: 1396417.990: [GC (Allocation Failure) 2018-06-11T01:57:50.620+0000: 1396417.990: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6749912 bytes, 6749912 total +: 150785K->15705K(153344K), 0.0089645 secs] 636705K->502973K(1031552K), 0.0090665 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:50.629+0000: 1396418.000: Total time for which application threads were stopped: 0.0097291 seconds, Stopping threads took: 0.0000640 seconds +2018-06-11T01:57:51.536+0000: 1396418.907: Total time for which application threads were stopped: 0.0035568 seconds, Stopping threads took: 0.0030535 seconds +2018-06-11T01:57:51.558+0000: 1396418.928: [GC (Allocation Failure) 2018-06-11T01:57:51.558+0000: 1396418.928: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1247304 bytes, 1247304 total +- age 2: 323856 bytes, 1571160 total +: 151899K->5089K(153344K), 0.0058322 secs] 639168K->492357K(1031552K), 0.0059181 secs] [Times: user=0.01 sys=0.01, real=0.00 secs] +2018-06-11T01:57:51.564+0000: 1396418.934: Total time for which application threads were stopped: 0.0065629 seconds, Stopping threads took: 0.0000660 seconds +2018-06-11T01:57:54.570+0000: 1396421.940: [GC (Allocation Failure) 2018-06-11T01:57:54.570+0000: 1396421.940: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 11721808 bytes, 11721808 total +- age 2: 556040 bytes, 12277848 total +- age 3: 162344 bytes, 12440192 total +: 140959K->13247K(153344K), 0.0086511 secs] 628227K->500515K(1031552K), 0.0087564 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:54.579+0000: 1396421.949: Total time for which application threads were stopped: 0.0094275 seconds, Stopping threads took: 0.0000606 seconds +2018-06-11T01:57:54.602+0000: 1396421.972: Total time for which application threads were stopped: 0.0005954 seconds, Stopping threads took: 0.0001018 seconds +2018-06-11T01:57:55.201+0000: 1396422.571: [GC (Allocation Failure) 2018-06-11T01:57:55.201+0000: 1396422.571: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 9537584 bytes, 9537584 total +: 149536K->14288K(153344K), 0.0086502 secs] 636804K->502791K(1031552K), 0.0087592 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:55.210+0000: 1396422.580: Total time for which application threads were stopped: 0.0094157 seconds, Stopping threads took: 0.0000636 seconds +2018-06-11T01:57:55.648+0000: 1396423.019: Total time for which application threads were stopped: 0.0011619 seconds, Stopping threads took: 0.0006644 seconds +2018-06-11T01:57:56.073+0000: 1396423.443: [GC (Allocation Failure) 2018-06-11T01:57:56.073+0000: 1396423.443: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 830112 bytes, 830112 total +: 150608K->9366K(153344K), 0.0059195 secs] 639111K->498211K(1031552K), 0.0060120 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:57:56.079+0000: 1396423.449: Total time for which application threads were stopped: 0.0066444 seconds, Stopping threads took: 0.0000721 seconds +2018-06-11T01:58:10.077+0000: 1396437.447: [GC (Allocation Failure) 2018-06-11T01:58:10.077+0000: 1396437.447: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 4903920 bytes, 4903920 total +- age 2: 640024 bytes, 5543944 total +: 145686K->6234K(153344K), 0.0075211 secs] 634531K->495078K(1031552K), 0.0076206 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:10.084+0000: 1396437.455: Total time for which application threads were stopped: 0.0109712 seconds, Stopping threads took: 0.0027583 seconds +2018-06-11T01:58:10.707+0000: 1396438.078: [GC (Allocation Failure) 2018-06-11T01:58:10.707+0000: 1396438.078: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 11257728 bytes, 11257728 total +- age 2: 1409592 bytes, 12667320 total +- age 3: 634512 bytes, 13301832 total +: 142554K->16309K(153344K), 0.0091008 secs] 631398K->505154K(1031552K), 0.0092166 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:10.717+0000: 1396438.087: Total time for which application threads were stopped: 0.0099104 seconds, Stopping threads took: 0.0000937 seconds +2018-06-11T01:58:14.585+0000: 1396441.955: [GC (Allocation Failure) 2018-06-11T01:58:14.585+0000: 1396441.955: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 12487384 bytes, 12487384 total +: 152629K->17024K(153344K), 0.0121932 secs] 641474K->512358K(1031552K), 0.0123238 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:14.597+0000: 1396441.967: Total time for which application threads were stopped: 0.0129638 seconds, Stopping threads took: 0.0000603 seconds +2018-06-11T01:58:15.794+0000: 1396443.164: [GC (Allocation Failure) 2018-06-11T01:58:15.794+0000: 1396443.164: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 17261816 bytes, 17261816 total +: 153099K->17024K(153344K), 0.0099750 secs] 648434K->513321K(1031552K), 0.0100887 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:15.804+0000: 1396443.174: Total time for which application threads were stopped: 0.0107554 seconds, Stopping threads took: 0.0000698 seconds +2018-06-11T01:58:16.842+0000: 1396444.212: [GC (Allocation Failure) 2018-06-11T01:58:16.842+0000: 1396444.212: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 13437776 bytes, 13437776 total +: 153344K->17024K(153344K), 0.0084257 secs] 649641K->513776K(1031552K), 0.0085361 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:16.851+0000: 1396444.221: Total time for which application threads were stopped: 0.0092395 seconds, Stopping threads took: 0.0000713 seconds +2018-06-11T01:58:16.859+0000: 1396444.229: Total time for which application threads were stopped: 0.0006172 seconds, Stopping threads took: 0.0000907 seconds +2018-06-11T01:58:16.918+0000: 1396444.289: [GC (Allocation Failure) 2018-06-11T01:58:16.918+0000: 1396444.289: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 910728 bytes, 910728 total +: 153344K->13744K(153344K), 0.0058693 secs] 650096K->511050K(1031552K), 0.0059643 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:58:16.924+0000: 1396444.295: Total time for which application threads were stopped: 0.0066195 seconds, Stopping threads took: 0.0000674 seconds +2018-06-11T01:58:30.896+0000: 1396458.266: Total time for which application threads were stopped: 0.0006041 seconds, Stopping threads took: 0.0000618 seconds +2018-06-11T01:58:30.910+0000: 1396458.280: Total time for which application threads were stopped: 0.0005638 seconds, Stopping threads took: 0.0000720 seconds +2018-06-11T01:58:30.916+0000: 1396458.286: [GC (Allocation Failure) 2018-06-11T01:58:30.916+0000: 1396458.286: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 6504616 bytes, 6504616 total +- age 2: 321664 bytes, 6826280 total +: 150064K->9007K(153344K), 0.0071293 secs] 647370K->506313K(1031552K), 0.0072223 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:58:30.923+0000: 1396458.293: Total time for which application threads were stopped: 0.0077680 seconds, Stopping threads took: 0.0000895 seconds +2018-06-11T01:58:30.924+0000: 1396458.294: Total time for which application threads were stopped: 0.0005147 seconds, Stopping threads took: 0.0000864 seconds +2018-06-11T01:58:31.943+0000: 1396459.313: [GC (Allocation Failure) 2018-06-11T01:58:31.943+0000: 1396459.313: [ParNew +Desired survivor size 8716288 bytes, new threshold 2 (max 6) +- age 1: 8562728 bytes, 8562728 total +- age 2: 790592 bytes, 9353320 total +- age 3: 271096 bytes, 9624416 total +: 145327K->11800K(153344K), 0.0076890 secs] 642633K->509106K(1031552K), 0.0077968 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:58:31.950+0000: 1396459.321: Total time for which application threads were stopped: 0.0085143 seconds, Stopping threads took: 0.0000777 seconds +2018-06-11T01:58:31.977+0000: 1396459.347: Total time for which application threads were stopped: 0.0026845 seconds, Stopping threads took: 0.0017894 seconds +2018-06-11T01:58:33.983+0000: 1396461.353: [GC (Allocation Failure) 2018-06-11T01:58:33.983+0000: 1396461.353: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 14391440 bytes, 14391440 total +- age 2: 27248 bytes, 14418688 total +: 147807K->17024K(153344K), 0.0110354 secs] 645113K->518844K(1031552K), 0.0111540 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:33.994+0000: 1396461.365: Total time for which application threads were stopped: 0.0118252 seconds, Stopping threads took: 0.0000716 seconds +2018-06-11T01:58:35.031+0000: 1396462.401: [GC (Allocation Failure) 2018-06-11T01:58:35.031+0000: 1396462.401: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 5812992 bytes, 5812992 total +: 153344K->12691K(153344K), 0.0083933 secs] 655164K->515576K(1031552K), 0.0084997 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:58:35.039+0000: 1396462.409: Total time for which application threads were stopped: 0.0091567 seconds, Stopping threads took: 0.0000676 seconds +2018-06-11T01:58:36.074+0000: 1396463.444: [GC (Allocation Failure) 2018-06-11T01:58:36.074+0000: 1396463.444: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 7635304 bytes, 7635304 total +- age 2: 668824 bytes, 8304128 total +: 149011K->10603K(153344K), 0.0074096 secs] 651896K->513488K(1031552K), 0.0075124 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:36.082+0000: 1396463.452: Total time for which application threads were stopped: 0.0082722 seconds, Stopping threads took: 0.0001133 seconds +2018-06-11T01:58:40.559+0000: 1396467.929: [GC (Allocation Failure) 2018-06-11T01:58:40.559+0000: 1396467.929: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 858576 bytes, 858576 total +- age 2: 465968 bytes, 1324544 total +- age 3: 543072 bytes, 1867616 total +: 146923K->7407K(153344K), 0.0069103 secs] 649808K->510292K(1031552K), 0.0070135 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T01:58:40.566+0000: 1396467.936: Total time for which application threads were stopped: 0.0076917 seconds, Stopping threads took: 0.0000951 seconds +2018-06-11T01:58:50.154+0000: 1396477.524: [GC (Allocation Failure) 2018-06-11T01:58:50.154+0000: 1396477.524: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 5237560 bytes, 5237560 total +- age 2: 674024 bytes, 5911584 total +- age 3: 457488 bytes, 6369072 total +- age 4: 540400 bytes, 6909472 total +: 143563K->8077K(153344K), 0.0082105 secs] 646448K->510962K(1031552K), 0.0083111 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:50.162+0000: 1396477.532: Total time for which application threads were stopped: 0.0089872 seconds, Stopping threads took: 0.0000677 seconds +2018-06-11T01:58:51.200+0000: 1396478.570: [GC (Allocation Failure) 2018-06-11T01:58:51.200+0000: 1396478.570: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 4649064 bytes, 4649064 total +- age 2: 509184 bytes, 5158248 total +- age 3: 645376 bytes, 5803624 total +- age 4: 457456 bytes, 6261080 total +- age 5: 538480 bytes, 6799560 total +: 144397K->11275K(153344K), 0.0082846 secs] 647282K->514160K(1031552K), 0.0083900 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T01:58:51.208+0000: 1396478.578: Total time for which application threads were stopped: 0.0090778 seconds, Stopping threads took: 0.0000795 seconds +2018-06-11T01:58:54.239+0000: 1396481.609: Total time for which application threads were stopped: 0.0006243 seconds, Stopping threads took: 0.0000909 seconds +2018-06-11T01:58:54.243+0000: 1396481.613: [GC (Allocation Failure) 2018-06-11T01:58:54.243+0000: 1396481.613: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 10747664 bytes, 10747664 total +- age 2: 502056 bytes, 11249720 total +- age 3: 465688 bytes, 11715408 total +- age 4: 635816 bytes, 12351224 total +- age 5: 457024 bytes, 12808248 total +- age 6: 538032 bytes, 13346280 total +: 147595K->13648K(153344K), 0.0095226 secs] 650480K->516533K(1031552K), 0.0096197 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-11T02:00:11.023+0000: 1396558.393: Total time for which application threads were stopped: 0.0127240 seconds, Stopping threads took: 0.0000691 seconds +2018-06-11T02:00:11.036+0000: 1396558.407: Total time for which application threads were stopped: 0.0023815 seconds, Stopping threads took: 0.0018780 seconds +2018-06-11T02:00:11.097+0000: 1396558.467: [GC (Allocation Failure) 2018-06-11T02:00:11.097+0000: 1396558.467: [ParNew +Desired survivor size 8716288 bytes, new threshold 6 (max 6) +- age 1: 1142528 bytes, 1142528 total +: 153138K->12252K(153344K), 0.0077785 secs] 680068K->540560K(1031552K), 0.0078609 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-11T02:00:11.105+0000: 1396558.475: Total time for which application threads were stopped: 0.0085331 seconds, Stopping threads took: 0.0000801 seconds +2018-06-11T02:00:14.091+0000: 1396561.462: [GC (Allocation Failure) 2018-06-11T02:00:14.091+0000: 1396561.462: [ParNew +Desired survivor size 8716288 bytes, new threshold 1 (max 6) +- age 1: 11312016 bytes, 11312016 total +2018-06-12T19:36:14.761+0000: 99.404: [GC (CMS Initial Mark) [1 CMS-initial-mark: 87423K(87424K)] 103696K(126720K), 0.0090294 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] +2018-06-12T19:36:14.770+0000: 99.413: Total time for which application threads were stopped: 0.0093158 seconds, Stopping threads took: 0.0000633 seconds +2018-06-12T19:36:14.770+0000: 99.413: [CMS-concurrent-mark-start] +2018-06-12T19:36:14.859+0000: 99.503: [CMS-concurrent-mark: 0.089/0.089 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] +2018-06-12T19:36:14.859+0000: 99.503: [CMS-concurrent-preclean-start] +2018-06-12T19:36:14.861+0000: 99.505: [CMS-concurrent-preclean: 0.002/0.002 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] +2018-06-12T19:36:14.861+0000: 99.505: [CMS-concurrent-abortable-preclean-start] +2018-06-12T19:36:14.861+0000: 99.505: [CMS-concurrent-abortable-preclean: 0.000/0.000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] +2018-06-12T19:36:14.862+0000: 99.505: [GC (CMS Final Remark) [YG occupancy: 16272 K (39296 K)]2018-06-12T19:36:14.862+0000: 99.505: [Rescan (parallel) , 0.0098034 secs]2018-06-12T19:36:14.872+0000: 99.515: [weak refs processing, 0.0002425 secs]2018-06-12T19:36:14.872+0000: 99.515: [class unloading, 0.0129300 secs]2018-06-12T19:36:14.885+0000: 99.528: [scrub symbol table, 0.0160416 secs]2018-06-12T19:36:14.901+0000: 99.544: [scrub string table, 0.0009964 secs][1 CMS-remark: 87423K(87424K)] 103696K(126720K), 0.0404047 secs] [Times: user=0.05 sys=0.00, real=0.04 secs] +2018-06-12T19:36:14.902+0000: 99.546: Total time for which application threads were stopped: 0.0406230 seconds, Stopping threads took: 0.0000402 seconds +2018-06-12T19:36:14.902+0000: 99.546: [CMS-concurrent-sweep-start] +2018-06-12T19:36:14.929+0000: 99.573: [CMS-concurrent-sweep: 0.027/0.027 secs] [Times: user=0.03 sys=0.00, real=0.03 secs] +2018-06-12T19:36:14.929+0000: 99.573: [CMS-concurrent-reset-start] +2018-06-12T19:36:14.930+0000: 99.573: [CMS-concurrent-reset: 0.000/0.000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] +2018-06-12T19:36:15.749+0000: 100.393: Total time for which application threads were stopped: 0.0002630 seconds, Stopping threads took: 0.0000831 seconds +2018-06-12T19:36:15.751+0000: 100.395: Total time for which application threads were stopped: 0.0001511 seconds, Stopping threads took: 0.0000524 seconds +2018-06-12T19:36:15.753+0000: 100.396: Total time for which application threads were stopped: 0.0001362 seconds, Stopping threads took: 0.0000503 seconds +2018-06-12T19:36:15.754+0000: 100.397: Total time for which application threads were stopped: 0.0001313 seconds, Stopping threads took: 0.0000488 seconds +2018-06-12T19:36:16.754+0000: 101.398: Total time for which application threads were stopped: 0.0002159 seconds, Stopping threads took: 0.0000777 seconds +2018-06-12T19:36:16.930+0000: 101.573: [GC (CMS Initial Mark) [1 CMS-initial-mark: 87423K(87424K)] 106940K(126720K), 0.0090374 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] +2018-06-12T19:36:16.939+0000: 101.582: Total time for which application threads were stopped: 0.0093302 seconds, Stopping threads took: 0.0000585 seconds +2018-06-12T19:36:16.939+0000: 101.582: [CMS-concurrent-mark-start] +2018-06-12T19:36:17.027+0000: 101.671: [CMS-concurrent-mark: 0.089/0.089 secs] [Times: user=0.09 sys=0.00, real=0.09 secs] +2018-06-12T19:36:17.028+0000: 101.671: [CMS-concurrent-preclean-start] +2018-06-12T19:36:17.030+0000: 101.673: [CMS-concurrent-preclean: 0.002/0.002 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] +2018-06-12T19:36:17.030+0000: 101.673: [CMS-concurrent-abortable-preclean-start] +2018-06-12T19:36:17.030+0000: 101.673: [CMS-concurrent-abortable-preclean: 0.000/0.000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] +2018-06-12T19:36:17.030+0000: 101.673: [GC (CMS Final Remark) [YG occupancy: 19516 K (39296 K)]2018-06-12T19:36:17.030+0000: 101.673: [Rescan (parallel) , 0.0099186 secs]2018-06-12T19:36:17.040+0000: 101.683: [weak refs processing, 0.0002308 secs]2018-06-12T19:36:17.040+0000: 101.684: [class unloading, 0.0127845 secs]2018-06-12T19:36:17.053+0000: 101.696: [scrub symbol table, 0.0162614 secs]2018-06-12T19:36:17.069+0000: 101.713: [scrub string table, 0.0010035 secs][1 CMS-remark: 87423K(87424K)] 106940K(126720K), 0.0406054 secs] [Times: user=0.05 sys=0.00, real=0.04 secs] +2018-06-12T19:36:17.071+0000: 101.714: Total time for which application threads were stopped: 0.0408231 seconds, Stopping threads took: 0.0000414 seconds diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.00 b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.00 new file mode 100644 index 00000000..d02f8cd5 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.00 @@ -0,0 +1,845 @@ +[2018-06-14T08:51:34.931+0000][16362][gc] Using Concurrent Mark Sweep +[2018-06-14T08:51:34.931+0000][16362][gc,heap,coops] Heap address: 0x00000000c0000000, size: 1024 MB, Compressed Oops mode: 32-bit +[2018-06-14T08:51:34.997+0000][16362][safepoint ] Application time: 0,0013776 seconds +[2018-06-14T08:51:34.997+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000465 seconds, Stopping threads took: 0,0000081 seconds +[2018-06-14T08:51:35.083+0000][16362][safepoint ] Application time: 0,0857120 seconds +[2018-06-14T08:51:35.083+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000613 seconds, Stopping threads took: 0,0000083 seconds +[2018-06-14T08:51:35.108+0000][16362][safepoint ] Application time: 0,0251701 seconds +[2018-06-14T08:51:35.108+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000544 seconds, Stopping threads took: 0,0000090 seconds +[2018-06-14T08:51:35.178+0000][16362][safepoint ] Application time: 0,0695913 seconds +[2018-06-14T08:51:35.178+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001067 seconds, Stopping threads took: 0,0000312 seconds +[2018-06-14T08:51:35.281+0000][16362][safepoint ] Application time: 0,1030248 seconds +[2018-06-14T08:51:35.281+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001140 seconds, Stopping threads took: 0,0000117 seconds +[2018-06-14T08:51:35.323+0000][16362][safepoint ] Application time: 0,0420679 seconds +[2018-06-14T08:51:35.323+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001653 seconds, Stopping threads took: 0,0000280 seconds +[2018-06-14T08:51:35.668+0000][16362][safepoint ] Application time: 0,3447341 seconds +[2018-06-14T08:51:35.668+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001630 seconds, Stopping threads took: 0,0000186 seconds +[2018-06-14T08:51:35.694+0000][16362][safepoint ] Application time: 0,0259603 seconds +[2018-06-14T08:51:35.694+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001532 seconds, Stopping threads took: 0,0000110 seconds +[2018-06-14T08:51:35.718+0000][16362][safepoint ] Application time: 0,0234962 seconds +[2018-06-14T08:51:35.718+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001549 seconds, Stopping threads took: 0,0000105 seconds +[2018-06-14T08:51:35.935+0000][16362][safepoint ] Application time: 0,2165754 seconds +[2018-06-14T08:51:35.935+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002723 seconds, Stopping threads took: 0,0000469 seconds +[2018-06-14T08:51:35.960+0000][16362][safepoint ] Application time: 0,0249139 seconds +[2018-06-14T08:51:35.960+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002749 seconds, Stopping threads took: 0,0000222 seconds +[2018-06-14T08:51:35.961+0000][16362][safepoint ] Application time: 0,0005559 seconds +[2018-06-14T08:51:35.961+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001305 seconds, Stopping threads took: 0,0000139 seconds +[2018-06-14T08:51:36.023+0000][16362][safepoint ] Application time: 0,0620753 seconds +[2018-06-14T08:51:36.023+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002743 seconds, Stopping threads took: 0,0000737 seconds +[2018-06-14T08:51:36.080+0000][16362][safepoint ] Application time: 0,0564153 seconds +[2018-06-14T08:51:36.080+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002067 seconds, Stopping threads took: 0,0000429 seconds +[2018-06-14T08:51:36.095+0000][16362][safepoint ] Application time: 0,0148334 seconds +[2018-06-14T08:51:36.095+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001947 seconds, Stopping threads took: 0,0000221 seconds +[2018-06-14T08:51:36.153+0000][16362][safepoint ] Application time: 0,0578379 seconds +[2018-06-14T08:51:36.153+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001668 seconds, Stopping threads took: 0,0000403 seconds +[2018-06-14T08:51:36.298+0000][16362][safepoint ] Application time: 0,1454838 seconds +[2018-06-14T08:51:36.299+0000][16362][gc,start ] GC(0) Pause Young (Allocation Failure) +[2018-06-14T08:51:36.299+0000][16362][gc,task ] GC(0) Using 8 workers of 8 for evacuation +[2018-06-14T08:51:36.317+0000][16362][gc,age ] GC(0) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-14T08:51:36.317+0000][16362][gc,age ] GC(0) Age table with threshold 1 (max threshold 6) +[2018-06-14T08:51:36.317+0000][16362][gc,age ] GC(0) - age 1: 22876888 bytes, 22876888 total +[2018-06-14T08:51:36.317+0000][16362][gc,heap ] GC(0) ParNew: 279616K->22442K(314560K) +[2018-06-14T08:51:36.317+0000][16362][gc,heap ] GC(0) CMS: 0K->0K(699072K) +[2018-06-14T08:51:36.317+0000][16362][gc,metaspace ] GC(0) Metaspace: 22102K->22102K(1069056K) +[2018-06-14T08:51:36.317+0000][16362][gc ] GC(0) Pause Young (Allocation Failure) 273M->21M(989M) 18,081ms +[2018-06-14T08:51:36.317+0000][16362][gc,cpu ] GC(0) User=0,07s Sys=0,00s Real=0,02s +[2018-06-14T08:51:36.317+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0182581 seconds, Stopping threads took: 0,0000382 seconds +[2018-06-14T08:51:36.317+0000][16362][safepoint ] Application time: 0,0000929 seconds +[2018-06-14T08:51:36.317+0000][16362][gc,start ] GC(1) Pause Initial Mark +[2018-06-14T08:51:36.322+0000][16362][gc ] GC(1) Pause Initial Mark 27M->27M(989M) 4,584ms +[2018-06-14T08:51:36.322+0000][16362][gc,cpu ] GC(1) User=0,01s Sys=0,00s Real=0,00s +[2018-06-14T08:51:36.322+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0047200 seconds, Stopping threads took: 0,0000424 seconds +[2018-06-14T08:51:36.322+0000][16362][gc ] GC(1) Concurrent Mark +[2018-06-14T08:51:36.322+0000][16362][gc,task ] GC(1) Using 2 workers of 2 for marking +[2018-06-14T08:51:36.322+0000][16362][gc ] GC(1) Concurrent Mark 0,448ms +[2018-06-14T08:51:36.322+0000][16362][gc,cpu ] GC(1) User=0,00s Sys=0,00s Real=0,00s +[2018-06-14T08:51:36.322+0000][16362][gc ] GC(1) Concurrent Preclean +[2018-06-14T08:51:36.324+0000][16362][gc ] GC(1) Concurrent Preclean 1,930ms +[2018-06-14T08:51:36.324+0000][16362][gc,cpu ] GC(1) User=0,01s Sys=0,00s Real=0,01s +[2018-06-14T08:51:36.324+0000][16362][gc ] GC(1) Concurrent Abortable Preclean +[2018-06-14T08:51:36.330+0000][16362][safepoint ] Application time: 0,0086761 seconds +[2018-06-14T08:51:36.330+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001865 seconds, Stopping threads took: 0,0000211 seconds +[2018-06-14T08:51:36.341+0000][16362][safepoint ] Application time: 0,0108866 seconds +[2018-06-14T08:51:36.342+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002705 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-14T08:51:36.345+0000][16362][safepoint ] Application time: 0,0034809 seconds +[2018-06-14T08:51:36.345+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001782 seconds, Stopping threads took: 0,0000203 seconds +[2018-06-14T08:51:36.351+0000][16362][safepoint ] Application time: 0,0054978 seconds +[2018-06-14T08:51:36.351+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002228 seconds, Stopping threads took: 0,0000189 seconds +[2018-06-14T08:51:36.357+0000][16362][safepoint ] Application time: 0,0061981 seconds +[2018-06-14T08:51:36.358+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001449 seconds, Stopping threads took: 0,0000177 seconds +[2018-06-14T08:51:36.358+0000][16362][safepoint ] Application time: 0,0008906 seconds +[2018-06-14T08:51:36.359+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002331 seconds, Stopping threads took: 0,0000142 seconds +[2018-06-14T08:51:36.400+0000][16362][safepoint ] Application time: 0,0408569 seconds +[2018-06-14T08:51:36.400+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001782 seconds, Stopping threads took: 0,0000195 seconds +[2018-06-14T08:51:36.402+0000][16362][safepoint ] Application time: 0,0018498 seconds +[2018-06-14T08:51:36.402+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000736 seconds, Stopping threads took: 0,0000437 seconds +[2018-06-14T08:51:36.454+0000][16362][safepoint ] Application time: 0,0523837 seconds +[2018-06-14T08:51:36.454+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002349 seconds, Stopping threads took: 0,0000234 seconds +[2018-06-14T08:51:36.481+0000][16362][safepoint ] Application time: 0,0267564 seconds +[2018-06-14T08:51:36.481+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001691 seconds, Stopping threads took: 0,0000204 seconds +[2018-06-14T08:51:36.588+0000][16362][safepoint ] Application time: 0,1063695 seconds +[2018-06-14T08:51:36.588+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001962 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-14T08:51:36.639+0000][16362][safepoint ] Application time: 0,0508469 seconds +[2018-06-14T08:51:36.639+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001402 seconds, Stopping threads took: 0,0000237 seconds +[2018-06-14T08:51:36.677+0000][16362][safepoint ] Application time: 0,0384305 seconds +[2018-06-14T08:51:36.678+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001639 seconds, Stopping threads took: 0,0000193 seconds +[2018-06-14T08:51:36.721+0000][16362][safepoint ] Application time: 0,0435383 seconds +[2018-06-14T08:51:36.721+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001489 seconds, Stopping threads took: 0,0000186 seconds +[2018-06-14T08:51:36.739+0000][16362][safepoint ] Application time: 0,0173663 seconds +[2018-06-14T08:51:36.739+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001924 seconds, Stopping threads took: 0,0000285 seconds +[2018-06-14T08:51:36.749+0000][16362][safepoint ] Application time: 0,0104712 seconds +[2018-06-14T08:51:36.750+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001681 seconds, Stopping threads took: 0,0000170 seconds +[2018-06-14T08:51:36.869+0000][16362][safepoint ] Application time: 0,1197164 seconds +[2018-06-14T08:51:36.870+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002316 seconds, Stopping threads took: 0,0000227 seconds +[2018-06-14T08:51:36.895+0000][16362][safepoint ] Application time: 0,0252741 seconds +[2018-06-14T08:51:36.895+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001727 seconds, Stopping threads took: 0,0000243 seconds +[2018-06-14T08:51:36.984+0000][16362][safepoint ] Application time: 0,0890138 seconds +[2018-06-14T08:51:36.984+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001581 seconds, Stopping threads took: 0,0000390 seconds +[2018-06-14T08:51:36.984+0000][16362][gc ] GC(1) Concurrent Abortable Preclean 660,217ms +[2018-06-14T08:51:36.984+0000][16362][gc,cpu ] GC(1) User=2,79s Sys=0,01s Real=0,66s +[2018-06-14T08:51:36.984+0000][16362][safepoint ] Application time: 0,0000632 seconds +[2018-06-14T08:51:36.984+0000][16362][gc,start ] GC(1) Pause Remark +[2018-06-14T08:51:37.021+0000][16362][gc ] GC(1) Pause Remark 235M->235M(989M) 36,981ms +[2018-06-14T08:51:37.021+0000][16362][gc,cpu ] GC(1) User=0,22s Sys=0,00s Real=0,03s +[2018-06-14T08:51:37.021+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0371064 seconds, Stopping threads took: 0,0000366 seconds +[2018-06-14T08:51:37.022+0000][16362][gc ] GC(1) Concurrent Sweep +[2018-06-14T08:51:37.022+0000][16362][gc ] GC(1) Concurrent Sweep 0,034ms +[2018-06-14T08:51:37.022+0000][16362][gc,cpu ] GC(1) User=0,00s Sys=0,00s Real=0,00s +[2018-06-14T08:51:37.022+0000][16362][gc ] GC(1) Concurrent Reset +[2018-06-14T08:51:37.022+0000][16362][gc ] GC(1) Concurrent Reset 0,617ms +[2018-06-14T08:51:37.022+0000][16362][gc,cpu ] GC(1) User=0,01s Sys=0,00s Real=0,00s +[2018-06-14T08:51:37.022+0000][16362][gc,heap ] GC(1) Old: 0K->0K(699072K) +[2018-06-14T08:51:37.071+0000][16362][safepoint ] Application time: 0,0494728 seconds +[2018-06-14T08:51:37.071+0000][16362][gc,start ] GC(2) Pause Young (Allocation Failure) +[2018-06-14T08:51:37.071+0000][16362][gc,task ] GC(2) Using 8 workers of 8 for evacuation +[2018-06-14T08:51:37.116+0000][16362][gc,age ] GC(2) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-14T08:51:37.116+0000][16362][gc,age ] GC(2) Age table with threshold 1 (max threshold 6) +[2018-06-14T08:51:37.116+0000][16362][gc,age ] GC(2) - age 1: 23032120 bytes, 23032120 total +[2018-06-14T08:51:37.116+0000][16362][gc,heap ] GC(2) ParNew: 302058K->25355K(314560K) +[2018-06-14T08:51:37.116+0000][16362][gc,heap ] GC(2) CMS: 0K->8029K(699072K) +[2018-06-14T08:51:37.116+0000][16362][gc,metaspace ] GC(2) Metaspace: 26661K->26661K(1075200K) +[2018-06-14T08:51:37.116+0000][16362][gc ] GC(2) Pause Young (Allocation Failure) 294M->32M(989M) 44,557ms +[2018-06-14T08:51:37.116+0000][16362][gc,cpu ] GC(2) User=0,19s Sys=0,00s Real=0,05s +[2018-06-14T08:51:37.116+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0447119 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-14T08:51:37.367+0000][16362][safepoint ] Application time: 0,2513078 seconds +[2018-06-14T08:51:37.367+0000][16362][gc,start ] GC(3) Pause Young (Allocation Failure) +[2018-06-14T08:51:37.367+0000][16362][gc,task ] GC(3) Using 8 workers of 8 for evacuation +[2018-06-14T08:51:37.389+0000][16362][gc,age ] GC(3) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-14T08:51:37.389+0000][16362][gc,age ] GC(3) Age table with threshold 1 (max threshold 6) +[2018-06-14T08:51:37.389+0000][16362][gc,age ] GC(3) - age 1: 18651576 bytes, 18651576 total +[2018-06-14T08:51:37.389+0000][16362][gc,heap ] GC(3) ParNew: 304971K->19887K(314560K) +[2018-06-14T08:51:37.389+0000][16362][gc,heap ] GC(3) CMS: 8029K->13651K(699072K) +[2018-06-14T08:51:37.389+0000][16362][gc,metaspace ] GC(3) Metaspace: 27395K->27395K(1075200K) +[2018-06-14T08:51:37.389+0000][16362][gc ] GC(3) Pause Young (Allocation Failure) 305M->32M(989M) 21,652ms +[2018-06-14T08:51:37.389+0000][16362][gc,cpu ] GC(3) User=0,09s Sys=0,00s Real=0,02s +[2018-06-14T08:51:37.389+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0217930 seconds, Stopping threads took: 0,0000241 seconds +[2018-06-14T08:51:37.613+0000][16362][safepoint ] Application time: 0,2240724 seconds +[2018-06-14T08:51:37.613+0000][16362][gc,start ] GC(4) Pause Young (Allocation Failure) +[2018-06-14T08:51:37.613+0000][16362][gc,task ] GC(4) Using 8 workers of 8 for evacuation +[2018-06-14T08:51:37.642+0000][16362][gc,age ] GC(4) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-14T08:51:37.642+0000][16362][gc,age ] GC(4) Age table with threshold 1 (max threshold 6) +[2018-06-14T08:51:37.642+0000][16362][gc,age ] GC(4) - age 1: 21544568 bytes, 21544568 total +[2018-06-14T08:51:37.642+0000][16362][gc,heap ] GC(4) ParNew: 299503K->24138K(314560K) +[2018-06-14T08:51:37.642+0000][16362][gc,heap ] GC(4) CMS: 13651K->17147K(699072K) +[2018-06-14T08:51:37.642+0000][16362][gc,metaspace ] GC(4) Metaspace: 28070K->28070K(1075200K) +[2018-06-14T08:51:37.642+0000][16362][gc ] GC(4) Pause Young (Allocation Failure) 305M->40M(989M) 28,936ms +[2018-06-14T08:51:37.642+0000][16362][gc,cpu ] GC(4) User=0,09s Sys=0,00s Real=0,02s +[2018-06-14T08:51:37.642+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0290959 seconds, Stopping threads took: 0,0000244 seconds +[2018-06-14T08:51:37.760+0000][16362][safepoint ] Application time: 0,1182362 seconds +[2018-06-14T08:51:37.761+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004286 seconds, Stopping threads took: 0,0000210 seconds +[2018-06-14T08:51:38.243+0000][16362][safepoint ] Application time: 0,4824845 seconds +[2018-06-14T08:51:38.244+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004303 seconds, Stopping threads took: 0,0000247 seconds +[2018-06-14T08:51:38.308+0000][16362][safepoint ] Application time: 0,0645735 seconds +[2018-06-14T08:51:38.309+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0005214 seconds, Stopping threads took: 0,0000356 seconds +[2018-06-14T08:51:38.951+0000][16362][safepoint ] Application time: 0,6425351 seconds +[2018-06-14T08:51:38.952+0000][16362][gc,start ] GC(5) Pause Young (Allocation Failure) +[2018-06-14T08:51:38.952+0000][16362][gc,task ] GC(5) Using 8 workers of 8 for evacuation +[2018-06-14T08:51:38.984+0000][16362][gc,age ] GC(5) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-14T08:51:38.984+0000][16362][gc,age ] GC(5) Age table with threshold 1 (max threshold 6) +[2018-06-14T08:51:38.984+0000][16362][gc,age ] GC(5) - age 1: 24694288 bytes, 24694288 total +[2018-06-14T08:51:38.984+0000][16362][gc,heap ] GC(5) ParNew: 303754K->24961K(314560K) +[2018-06-14T08:51:38.984+0000][16362][gc,heap ] GC(5) CMS: 17147K->17582K(699072K) +[2018-06-14T08:51:38.984+0000][16362][gc,metaspace ] GC(5) Metaspace: 34503K->34503K(1081344K) +[2018-06-14T08:51:38.984+0000][16362][gc ] GC(5) Pause Young (Allocation Failure) 313M->41M(989M) 32,461ms +[2018-06-14T08:51:38.984+0000][16362][gc,cpu ] GC(5) User=0,18s Sys=0,00s Real=0,04s +[2018-06-14T08:51:38.984+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0326552 seconds, Stopping threads took: 0,0000258 seconds +[2018-06-14T08:51:39.001+0000][16362][safepoint ] Application time: 0,0173506 seconds +[2018-06-14T08:51:39.002+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0005243 seconds, Stopping threads took: 0,0000425 seconds +[2018-06-14T08:51:39.332+0000][16362][safepoint ] Application time: 0,3303608 seconds +[2018-06-14T08:51:39.333+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001153 seconds, Stopping threads took: 0,0000235 seconds +[2018-06-14T08:51:39.358+0000][16362][safepoint ] Application time: 0,0251687 seconds +[2018-06-14T08:51:39.358+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004354 seconds, Stopping threads took: 0,0000806 seconds +[2018-06-14T08:51:39.372+0000][16362][safepoint ] Application time: 0,0138182 seconds +[2018-06-14T08:51:39.372+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000789 seconds, Stopping threads took: 0,0000381 seconds +[2018-06-14T08:51:39.462+0000][16362][safepoint ] Application time: 0,0896554 seconds +[2018-06-14T08:51:39.462+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000729 seconds, Stopping threads took: 0,0000200 seconds +[2018-06-14T08:51:39.729+0000][16362][safepoint ] Application time: 0,2668070 seconds +[2018-06-14T08:51:39.729+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002930 seconds, Stopping threads took: 0,0000217 seconds +[2018-06-14T08:51:39.749+0000][16362][safepoint ] Application time: 0,0198484 seconds +[2018-06-14T08:51:39.749+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001315 seconds, Stopping threads took: 0,0000194 seconds +[2018-06-14T08:51:39.772+0000][16362][safepoint ] Application time: 0,0230753 seconds +[2018-06-14T08:51:39.772+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001172 seconds, Stopping threads took: 0,0000163 seconds +[2018-06-14T08:51:39.796+0000][16362][safepoint ] Application time: 0,0236529 seconds +[2018-06-14T08:51:39.796+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001824 seconds, Stopping threads took: 0,0000204 seconds +[2018-06-14T08:51:39.821+0000][16362][safepoint ] Application time: 0,0246474 seconds +[2018-06-14T08:51:39.821+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001550 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-14T08:51:39.839+0000][16362][safepoint ] Application time: 0,0181780 seconds +[2018-06-14T08:51:39.839+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001717 seconds, Stopping threads took: 0,0000206 seconds +[2018-06-14T08:51:39.853+0000][16362][safepoint ] Application time: 0,0136168 seconds +[2018-06-14T08:51:39.853+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001737 seconds, Stopping threads took: 0,0000206 seconds +[2018-06-14T08:51:39.868+0000][16362][safepoint ] Application time: 0,0147586 seconds +[2018-06-14T08:51:39.868+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001435 seconds, Stopping threads took: 0,0000341 seconds +[2018-06-14T08:51:39.888+0000][16362][safepoint ] Application time: 0,0200703 seconds +[2018-06-14T08:51:39.888+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001522 seconds, Stopping threads took: 0,0000381 seconds +[2018-06-14T08:51:39.904+0000][16362][safepoint ] Application time: 0,0159442 seconds +[2018-06-14T08:51:39.905+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001951 seconds, Stopping threads took: 0,0000237 seconds +[2018-06-14T08:51:39.921+0000][16362][safepoint ] Application time: 0,0163132 seconds +[2018-06-14T08:51:39.921+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001396 seconds, Stopping threads took: 0,0000164 seconds +[2018-06-14T08:51:39.942+0000][16362][safepoint ] Application time: 0,0209721 seconds +[2018-06-14T08:51:39.942+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001416 seconds, Stopping threads took: 0,0000165 seconds +[2018-06-14T08:51:39.960+0000][16362][safepoint ] Application time: 0,0177758 seconds +[2018-06-14T08:51:39.960+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001360 seconds, Stopping threads took: 0,0000141 seconds +[2018-06-14T08:51:40.130+0000][16362][safepoint ] Application time: 0,1697866 seconds +[2018-06-14T08:51:40.130+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001661 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-14T08:51:40.220+0000][16362][safepoint ] Application time: 0,0900979 seconds +[2018-06-14T08:51:40.220+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001691 seconds, Stopping threads took: 0,0000199 seconds +[2018-06-14T08:51:40.306+0000][16362][safepoint ] Application time: 0,0854200 seconds +[2018-06-14T08:51:40.306+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001878 seconds, Stopping threads took: 0,0000277 seconds +[2018-06-14T08:51:40.335+0000][16362][safepoint ] Application time: 0,0290283 seconds +[2018-06-14T08:51:40.335+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001392 seconds, Stopping threads took: 0,0000200 seconds +[2018-06-14T08:51:40.355+0000][16362][safepoint ] Application time: 0,0196613 seconds +[2018-06-14T08:51:40.355+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001411 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-14T08:51:40.376+0000][16362][safepoint ] Application time: 0,0208562 seconds +[2018-06-14T08:51:40.376+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001798 seconds, Stopping threads took: 0,0000198 seconds +[2018-06-14T08:51:40.389+0000][16362][safepoint ] Application time: 0,0122574 seconds +[2018-06-14T08:51:40.389+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000904 seconds, Stopping threads took: 0,0000323 seconds +[2018-06-14T08:51:40.418+0000][16362][safepoint ] Application time: 0,0295200 seconds +[2018-06-14T08:51:40.418+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001534 seconds, Stopping threads took: 0,0000267 seconds +[2018-06-14T08:51:40.441+0000][16362][safepoint ] Application time: 0,0221963 seconds +[2018-06-14T08:51:40.441+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001097 seconds, Stopping threads took: 0,0000179 seconds +[2018-06-14T08:51:40.463+0000][16362][safepoint ] Application time: 0,0221172 seconds +[2018-06-14T08:51:40.463+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001408 seconds, Stopping threads took: 0,0000194 seconds +[2018-06-14T08:51:40.491+0000][16362][safepoint ] Application time: 0,0280564 seconds +[2018-06-14T08:51:40.491+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001989 seconds, Stopping threads took: 0,0000378 seconds +[2018-06-14T08:51:40.513+0000][16362][safepoint ] Application time: 0,0214317 seconds +[2018-06-14T08:51:40.513+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001698 seconds, Stopping threads took: 0,0000307 seconds +[2018-06-14T08:51:40.559+0000][16362][safepoint ] Application time: 0,0460948 seconds +[2018-06-14T08:51:40.559+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002047 seconds, Stopping threads took: 0,0000261 seconds +[2018-06-14T08:51:40.561+0000][16362][safepoint ] Application time: 0,0019543 seconds +[2018-06-14T08:51:40.561+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001334 seconds, Stopping threads took: 0,0000855 seconds +[2018-06-14T08:51:40.564+0000][16362][safepoint ] Application time: 0,0024272 seconds +[2018-06-14T08:51:40.564+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000928 seconds, Stopping threads took: 0,0000372 seconds +[2018-06-14T08:51:40.565+0000][16362][safepoint ] Application time: 0,0009413 seconds +[2018-06-14T08:51:40.565+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001162 seconds, Stopping threads took: 0,0000449 seconds +[2018-06-14T08:51:40.566+0000][16362][safepoint ] Application time: 0,0012354 seconds +[2018-06-14T08:51:40.566+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001834 seconds, Stopping threads took: 0,0001322 seconds +[2018-06-14T08:51:40.581+0000][16362][safepoint ] Application time: 0,0144779 seconds +[2018-06-14T08:51:40.581+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001120 seconds, Stopping threads took: 0,0000182 seconds +[2018-06-14T08:51:40.624+0000][16362][safepoint ] Application time: 0,0431552 seconds +[2018-06-14T08:51:40.624+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001829 seconds, Stopping threads took: 0,0000325 seconds +[2018-06-14T08:51:40.644+0000][16362][safepoint ] Application time: 0,0196341 seconds +[2018-06-14T08:51:40.644+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001109 seconds, Stopping threads took: 0,0000181 seconds +[2018-06-14T08:51:40.667+0000][16362][safepoint ] Application time: 0,0230741 seconds +[2018-06-14T08:51:40.667+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000543 seconds, Stopping threads took: 0,0000252 seconds +[2018-06-14T08:51:40.679+0000][16362][safepoint ] Application time: 0,0120256 seconds +[2018-06-14T08:51:40.680+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001767 seconds, Stopping threads took: 0,0000194 seconds +[2018-06-14T08:51:40.705+0000][16362][safepoint ] Application time: 0,0257074 seconds +[2018-06-14T08:51:40.706+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001215 seconds, Stopping threads took: 0,0000224 seconds +[2018-06-14T08:51:40.724+0000][16362][safepoint ] Application time: 0,0182948 seconds +[2018-06-14T08:51:40.724+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001463 seconds, Stopping threads took: 0,0000181 seconds +[2018-06-14T08:51:40.742+0000][16362][safepoint ] Application time: 0,0177480 seconds +[2018-06-14T08:51:40.742+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000829 seconds, Stopping threads took: 0,0000195 seconds +[2018-06-14T08:51:40.758+0000][16362][safepoint ] Application time: 0,0159158 seconds +[2018-06-14T08:51:40.758+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001753 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-14T08:51:40.768+0000][16362][safepoint ] Application time: 0,0100798 seconds +[2018-06-14T08:51:40.768+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001751 seconds, Stopping threads took: 0,0000206 seconds +[2018-06-14T08:51:40.804+0000][16362][safepoint ] Application time: 0,0355588 seconds +[2018-06-14T08:51:40.804+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000868 seconds, Stopping threads took: 0,0000392 seconds +[2018-06-14T08:51:40.804+0000][16362][safepoint ] Application time: 0,0000732 seconds +[2018-06-14T08:51:40.804+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000409 seconds, Stopping threads took: 0,0000139 seconds +[2018-06-14T08:51:40.808+0000][16362][safepoint ] Application time: 0,0034044 seconds +[2018-06-14T08:51:40.808+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002149 seconds, Stopping threads took: 0,0000269 seconds +[2018-06-14T08:51:40.817+0000][16362][safepoint ] Application time: 0,0096844 seconds +[2018-06-14T08:51:40.818+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000424 seconds, Stopping threads took: 0,0000193 seconds +[2018-06-14T08:51:40.838+0000][16362][safepoint ] Application time: 0,0200936 seconds +[2018-06-14T08:51:40.838+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001458 seconds, Stopping threads took: 0,0000185 seconds +[2018-06-14T08:51:40.873+0000][16362][safepoint ] Application time: 0,0352531 seconds +[2018-06-14T08:51:40.873+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001120 seconds, Stopping threads took: 0,0000198 seconds +[2018-06-14T08:51:40.894+0000][16362][safepoint ] Application time: 0,0208565 seconds +[2018-06-14T08:51:40.894+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000946 seconds, Stopping threads took: 0,0000395 seconds +[2018-06-14T08:51:40.901+0000][16362][safepoint ] Application time: 0,0063649 seconds +[2018-06-14T08:51:40.901+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001979 seconds, Stopping threads took: 0,0000205 seconds +[2018-06-14T08:51:40.935+0000][16362][safepoint ] Application time: 0,0341098 seconds +[2018-06-14T08:51:40.935+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001404 seconds, Stopping threads took: 0,0000213 seconds +[2018-06-14T08:51:40.957+0000][16362][safepoint ] Application time: 0,0216910 seconds +[2018-06-14T08:51:40.957+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001834 seconds, Stopping threads took: 0,0000200 seconds +[2018-06-14T08:51:40.975+0000][16362][safepoint ] Application time: 0,0175447 seconds +[2018-06-14T08:51:40.975+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0005813 seconds, Stopping threads took: 0,0004210 seconds +[2018-06-14T08:51:40.983+0000][16362][safepoint ] Application time: 0,0081661 seconds +[2018-06-14T08:51:40.990+0000][16362][gc,start ] GC(6) Pause Initial Mark +[2018-06-14T08:51:41.020+0000][16362][gc ] GC(6) Pause Initial Mark 301M->301M(989M) 30,521ms +[2018-06-14T08:51:41.020+0000][16362][gc,cpu ] GC(6) User=0,19s Sys=0,00s Real=0,03s +[2018-06-14T08:51:41.020+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0306529 seconds, Stopping threads took: 0,0000343 seconds +[2018-06-14T08:51:41.020+0000][16362][gc ] GC(6) Concurrent Mark +[2018-06-14T08:51:41.020+0000][16362][gc,task ] GC(6) Using 2 workers of 2 for marking +[2018-06-14T08:51:41.021+0000][16362][safepoint ] Application time: 0,0006964 seconds +[2018-06-14T08:51:41.021+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001800 seconds, Stopping threads took: 0,0000325 seconds +[2018-06-14T08:51:41.034+0000][16362][gc ] GC(6) Concurrent Mark 13,494ms +[2018-06-14T08:51:41.034+0000][16362][gc,cpu ] GC(6) User=0,07s Sys=0,00s Real=0,02s +[2018-06-14T08:51:41.034+0000][16362][gc ] GC(6) Concurrent Preclean +[2018-06-14T08:51:41.038+0000][16362][gc ] GC(6) Concurrent Preclean 4,138ms +[2018-06-14T08:51:41.038+0000][16362][gc,cpu ] GC(6) User=0,02s Sys=0,00s Real=0,00s +[2018-06-14T08:51:41.038+0000][16362][gc ] GC(6) Concurrent Abortable Preclean +[2018-06-14T08:51:41.073+0000][16362][safepoint ] Application time: 0,0521271 seconds +[2018-06-14T08:51:41.074+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002408 seconds, Stopping threads took: 0,0000251 seconds +[2018-06-14T08:51:41.104+0000][16362][safepoint ] Application time: 0,0302355 seconds +[2018-06-14T08:51:41.104+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001814 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-14T08:51:41.104+0000][16362][safepoint ] Application time: 0,0000393 seconds +[2018-06-14T08:51:41.104+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000335 seconds, Stopping threads took: 0,0000144 seconds +[2018-06-14T08:51:41.130+0000][16362][safepoint ] Application time: 0,0260363 seconds +[2018-06-14T08:51:41.130+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001562 seconds, Stopping threads took: 0,0000227 seconds +[2018-06-14T08:51:41.150+0000][16362][safepoint ] Application time: 0,0196948 seconds +[2018-06-14T08:51:41.150+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001832 seconds, Stopping threads took: 0,0000207 seconds +[2018-06-14T08:51:41.174+0000][16362][safepoint ] Application time: 0,0239209 seconds +[2018-06-14T08:51:41.174+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001450 seconds, Stopping threads took: 0,0000282 seconds +[2018-06-14T08:51:41.198+0000][16362][safepoint ] Application time: 0,0235092 seconds +[2018-06-14T08:51:41.198+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001949 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-14T08:51:41.231+0000][16362][safepoint ] Application time: 0,0333107 seconds +[2018-06-14T08:51:41.232+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002201 seconds, Stopping threads took: 0,0000240 seconds +[2018-06-14T08:51:41.246+0000][16362][safepoint ] Application time: 0,0138114 seconds +[2018-06-14T08:51:41.246+0000][16362][gc,start ] GC(7) Pause Young (Allocation Failure) +[2018-06-14T08:51:41.246+0000][16362][gc,task ] GC(7) Using 8 workers of 8 for evacuation +[2018-06-14T08:51:41.294+0000][16362][gc,age ] GC(7) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-14T08:51:41.294+0000][16362][gc,age ] GC(7) Age table with threshold 1 (max threshold 6) +[2018-06-14T08:51:41.294+0000][16362][gc,age ] GC(7) - age 1: 30789256 bytes, 30789256 total +[2018-06-14T08:51:41.294+0000][16362][gc,heap ] GC(7) ParNew: 304577K->34943K(314560K) +[2018-06-14T08:51:41.294+0000][16362][gc,heap ] GC(7) CMS: 17582K->35638K(699072K) +[2018-06-14T08:51:41.294+0000][16362][gc,metaspace ] GC(7) Metaspace: 57556K->57556K(1103872K) +[2018-06-14T08:51:41.294+0000][16362][gc ] GC(7) Pause Young (Allocation Failure) 314M->68M(989M) 48,106ms +[2018-06-14T08:51:41.294+0000][16362][gc,cpu ] GC(7) User=0,28s Sys=0,00s Real=0,05s +[2018-06-14T08:51:41.294+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0482527 seconds, Stopping threads took: 0,0000325 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Application time: 0,0028884 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0003468 seconds, Stopping threads took: 0,0002594 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Application time: 0,0000341 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001227 seconds, Stopping threads took: 0,0000779 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Application time: 0,0000346 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000522 seconds, Stopping threads took: 0,0000248 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Application time: 0,0000223 seconds +[2018-06-14T08:51:41.297+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000472 seconds, Stopping threads took: 0,0000239 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000187 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000507 seconds, Stopping threads took: 0,0000181 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000212 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000895 seconds, Stopping threads took: 0,0000296 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000225 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000711 seconds, Stopping threads took: 0,0000210 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000305 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000527 seconds, Stopping threads took: 0,0000132 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000203 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000488 seconds, Stopping threads took: 0,0000122 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000177 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000511 seconds, Stopping threads took: 0,0000156 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000193 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002620 seconds, Stopping threads took: 0,0002181 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Application time: 0,0000276 seconds +[2018-06-14T08:51:41.298+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000439 seconds, Stopping threads took: 0,0000153 seconds +[2018-06-14T08:51:41.299+0000][16362][safepoint ] Application time: 0,0000183 seconds +[2018-06-14T08:51:41.299+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000466 seconds, Stopping threads took: 0,0000235 seconds +[2018-06-14T08:51:41.300+0000][16362][safepoint ] Application time: 0,0011576 seconds +[2018-06-14T08:51:41.300+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000817 seconds, Stopping threads took: 0,0000302 seconds +[2018-06-14T08:51:41.300+0000][16362][safepoint ] Application time: 0,0000933 seconds +[2018-06-14T08:51:41.300+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000579 seconds, Stopping threads took: 0,0000140 seconds +[2018-06-14T08:51:41.300+0000][16362][safepoint ] Application time: 0,0000232 seconds +[2018-06-14T08:51:41.300+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004030 seconds, Stopping threads took: 0,0003601 seconds +[2018-06-14T08:51:41.301+0000][16362][safepoint ] Application time: 0,0000304 seconds +[2018-06-14T08:51:41.301+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000479 seconds, Stopping threads took: 0,0000210 seconds +[2018-06-14T08:51:41.304+0000][16362][safepoint ] Application time: 0,0031690 seconds +[2018-06-14T08:51:41.304+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000877 seconds, Stopping threads took: 0,0000229 seconds +[2018-06-14T08:51:41.304+0000][16362][safepoint ] Application time: 0,0000268 seconds +[2018-06-14T08:51:41.304+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000636 seconds, Stopping threads took: 0,0000131 seconds +[2018-06-14T08:51:41.304+0000][16362][safepoint ] Application time: 0,0000265 seconds +[2018-06-14T08:51:41.304+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000877 seconds, Stopping threads took: 0,0000125 seconds +[2018-06-14T08:51:41.315+0000][16362][safepoint ] Application time: 0,0110828 seconds +[2018-06-14T08:51:41.315+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002298 seconds, Stopping threads took: 0,0000297 seconds +[2018-06-14T08:51:41.321+0000][16362][safepoint ] Application time: 0,0057527 seconds +[2018-06-14T08:51:41.321+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000591 seconds, Stopping threads took: 0,0000252 seconds +[2018-06-14T08:51:41.353+0000][16362][safepoint ] Application time: 0,0319928 seconds +[2018-06-14T08:51:41.354+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001807 seconds, Stopping threads took: 0,0000237 seconds +[2018-06-14T08:51:41.383+0000][16362][safepoint ] Application time: 0,0292158 seconds +[2018-06-14T08:51:41.383+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002646 seconds, Stopping threads took: 0,0000254 seconds +[2018-06-14T08:51:41.416+0000][16362][safepoint ] Application time: 0,0329888 seconds +[2018-06-14T08:51:41.416+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001979 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-14T08:51:41.436+0000][16362][safepoint ] Application time: 0,0194050 seconds +[2018-06-14T08:51:41.436+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001073 seconds, Stopping threads took: 0,0000275 seconds +[2018-06-14T08:51:41.441+0000][16362][safepoint ] Application time: 0,0050149 seconds +[2018-06-14T08:51:41.441+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001270 seconds, Stopping threads took: 0,0000678 seconds +[2018-06-14T08:51:41.441+0000][16362][safepoint ] Application time: 0,0001475 seconds +[2018-06-14T08:51:41.441+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000718 seconds, Stopping threads took: 0,0000275 seconds +[2018-06-14T08:51:41.444+0000][16362][safepoint ] Application time: 0,0030078 seconds +[2018-06-14T08:51:41.444+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001249 seconds, Stopping threads took: 0,0000772 seconds +[2018-06-14T08:51:41.471+0000][16362][safepoint ] Application time: 0,0267534 seconds +[2018-06-14T08:51:41.471+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001762 seconds, Stopping threads took: 0,0000384 seconds +[2018-06-14T08:51:41.507+0000][16362][safepoint ] Application time: 0,0354683 seconds +[2018-06-14T08:51:41.507+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001912 seconds, Stopping threads took: 0,0000277 seconds +[2018-06-14T08:51:41.533+0000][16362][safepoint ] Application time: 0,0255760 seconds +[2018-06-14T08:51:41.533+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001632 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-14T08:51:41.605+0000][16362][safepoint ] Application time: 0,0716369 seconds +[2018-06-14T08:51:41.605+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004029 seconds, Stopping threads took: 0,0000206 seconds +[2018-06-14T08:51:41.614+0000][16362][safepoint ] Application time: 0,0085563 seconds +[2018-06-14T08:51:41.614+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001602 seconds, Stopping threads took: 0,0000204 seconds +[2018-06-14T08:51:41.649+0000][16362][safepoint ] Application time: 0,0350231 seconds +[2018-06-14T08:51:41.649+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001476 seconds, Stopping threads took: 0,0000189 seconds +[2018-06-14T08:51:41.672+0000][16362][safepoint ] Application time: 0,0226100 seconds +[2018-06-14T08:51:41.672+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001494 seconds, Stopping threads took: 0,0000186 seconds +[2018-06-14T08:51:41.723+0000][16362][safepoint ] Application time: 0,0516548 seconds +[2018-06-14T08:51:41.724+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001575 seconds, Stopping threads took: 0,0000283 seconds +[2018-06-14T08:51:41.783+0000][16362][safepoint ] Application time: 0,0593610 seconds +[2018-06-14T08:51:41.783+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002072 seconds, Stopping threads took: 0,0000231 seconds +[2018-06-14T08:51:41.816+0000][16362][safepoint ] Application time: 0,0330307 seconds +[2018-06-14T08:51:41.816+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001953 seconds, Stopping threads took: 0,0000246 seconds +[2018-06-14T08:51:41.850+0000][16362][safepoint ] Application time: 0,0334107 seconds +[2018-06-14T08:51:41.850+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001816 seconds, Stopping threads took: 0,0000231 seconds +[2018-06-14T08:51:41.884+0000][16362][safepoint ] Application time: 0,0336901 seconds +[2018-06-14T08:51:41.884+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001868 seconds, Stopping threads took: 0,0000234 seconds +[2018-06-14T08:51:41.922+0000][16362][safepoint ] Application time: 0,0378443 seconds +[2018-06-14T08:51:41.922+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001622 seconds, Stopping threads took: 0,0000193 seconds +[2018-06-14T08:51:41.967+0000][16362][safepoint ] Application time: 0,0451040 seconds +[2018-06-14T08:51:41.967+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001881 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-14T08:51:42.000+0000][16362][safepoint ] Application time: 0,0328833 seconds +[2018-06-14T08:51:42.001+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002393 seconds, Stopping threads took: 0,0000289 seconds +[2018-06-14T08:51:42.024+0000][16362][safepoint ] Application time: 0,0235513 seconds +[2018-06-14T08:51:42.024+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001921 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-14T08:51:42.047+0000][16362][safepoint ] Application time: 0,0227962 seconds +[2018-06-14T08:51:42.047+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001940 seconds, Stopping threads took: 0,0000219 seconds +[2018-06-14T08:51:42.082+0000][16362][safepoint ] Application time: 0,0341833 seconds +[2018-06-14T08:51:42.082+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002036 seconds, Stopping threads took: 0,0000311 seconds +[2018-06-14T08:51:42.115+0000][16362][safepoint ] Application time: 0,0332724 seconds +[2018-06-14T08:51:42.115+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002050 seconds, Stopping threads took: 0,0000216 seconds +[2018-06-14T08:51:42.125+0000][16362][safepoint ] Application time: 0,0097647 seconds +[2018-06-14T08:51:42.125+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001270 seconds, Stopping threads took: 0,0000355 seconds +[2018-06-14T08:51:42.138+0000][16362][safepoint ] Application time: 0,0129702 seconds +[2018-06-14T08:51:42.139+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0005835 seconds, Stopping threads took: 0,0000257 seconds +[2018-06-14T08:51:42.142+0000][16362][safepoint ] Application time: 0,0032683 seconds +[2018-06-14T08:51:42.142+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001931 seconds, Stopping threads took: 0,0000221 seconds +[2018-06-14T08:51:42.152+0000][16362][safepoint ] Application time: 0,0095197 seconds +[2018-06-14T08:51:42.152+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001797 seconds, Stopping threads took: 0,0000813 seconds +[2018-06-14T08:51:42.153+0000][16362][safepoint ] Application time: 0,0005634 seconds +[2018-06-14T08:51:42.153+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001263 seconds, Stopping threads took: 0,0000375 seconds +[2018-06-14T08:51:42.153+0000][16362][safepoint ] Application time: 0,0006337 seconds +[2018-06-14T08:51:42.154+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000620 seconds, Stopping threads took: 0,0000210 seconds +[2018-06-14T08:51:42.154+0000][16362][safepoint ] Application time: 0,0007699 seconds +[2018-06-14T08:51:42.154+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000731 seconds, Stopping threads took: 0,0000228 seconds +[2018-06-14T08:51:42.155+0000][16362][safepoint ] Application time: 0,0001548 seconds +[2018-06-14T08:51:42.155+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000787 seconds, Stopping threads took: 0,0000184 seconds +[2018-06-14T08:51:42.156+0000][16362][safepoint ] Application time: 0,0009707 seconds +[2018-06-14T08:51:42.156+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000803 seconds, Stopping threads took: 0,0000352 seconds +[2018-06-14T08:51:42.156+0000][16362][safepoint ] Application time: 0,0000909 seconds +[2018-06-14T08:51:42.156+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000414 seconds, Stopping threads took: 0,0000114 seconds +[2018-06-14T08:51:42.156+0000][16362][safepoint ] Application time: 0,0000269 seconds +[2018-06-14T08:51:42.156+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000320 seconds, Stopping threads took: 0,0000098 seconds +[2018-06-14T08:51:42.159+0000][16362][safepoint ] Application time: 0,0027143 seconds +[2018-06-14T08:51:42.159+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001172 seconds, Stopping threads took: 0,0000465 seconds +[2018-06-14T08:51:42.160+0000][16362][safepoint ] Application time: 0,0010384 seconds +[2018-06-14T08:51:42.161+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0005788 seconds, Stopping threads took: 0,0000199 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Application time: 0,0013340 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000581 seconds, Stopping threads took: 0,0000191 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Application time: 0,0000583 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000414 seconds, Stopping threads took: 0,0000121 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Application time: 0,0000441 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000391 seconds, Stopping threads took: 0,0000108 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Application time: 0,0000575 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000391 seconds, Stopping threads took: 0,0000113 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Application time: 0,0000569 seconds +[2018-06-14T08:51:42.162+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000397 seconds, Stopping threads took: 0,0000110 seconds +[2018-06-14T08:51:42.181+0000][16362][safepoint ] Application time: 0,0189917 seconds +[2018-06-14T08:51:42.182+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001450 seconds, Stopping threads took: 0,0000232 seconds +[2018-06-14T08:51:42.191+0000][16362][safepoint ] Application time: 0,0091917 seconds +[2018-06-14T08:51:42.191+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001891 seconds, Stopping threads took: 0,0000235 seconds +[2018-06-14T08:51:42.198+0000][16362][safepoint ] Application time: 0,0064460 seconds +[2018-06-14T08:51:42.198+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000885 seconds, Stopping threads took: 0,0000336 seconds +[2018-06-14T08:51:42.199+0000][16362][safepoint ] Application time: 0,0017350 seconds +[2018-06-14T08:51:42.200+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000815 seconds, Stopping threads took: 0,0000267 seconds +[2018-06-14T08:51:42.201+0000][16362][safepoint ] Application time: 0,0018839 seconds +[2018-06-14T08:51:42.202+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001030 seconds, Stopping threads took: 0,0000689 seconds +[2018-06-14T08:51:42.202+0000][16362][safepoint ] Application time: 0,0000448 seconds +[2018-06-14T08:51:42.202+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001593 seconds, Stopping threads took: 0,0001285 seconds +[2018-06-14T08:51:42.202+0000][16362][safepoint ] Application time: 0,0004925 seconds +[2018-06-14T08:51:42.202+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000668 seconds, Stopping threads took: 0,0000372 seconds +[2018-06-14T08:51:42.202+0000][16362][safepoint ] Application time: 0,0000289 seconds +[2018-06-14T08:51:42.203+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000768 seconds, Stopping threads took: 0,0000383 seconds +[2018-06-14T08:51:42.203+0000][16362][safepoint ] Application time: 0,0007761 seconds +[2018-06-14T08:51:42.204+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004164 seconds, Stopping threads took: 0,0003574 seconds +[2018-06-14T08:51:42.204+0000][16362][safepoint ] Application time: 0,0000808 seconds +[2018-06-14T08:51:42.204+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001359 seconds, Stopping threads took: 0,0000635 seconds +[2018-06-14T08:51:42.204+0000][16362][safepoint ] Application time: 0,0002319 seconds +[2018-06-14T08:51:42.204+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001128 seconds, Stopping threads took: 0,0000679 seconds +[2018-06-14T08:51:42.205+0000][16362][safepoint ] Application time: 0,0005129 seconds +[2018-06-14T08:51:42.205+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001730 seconds, Stopping threads took: 0,0001149 seconds +[2018-06-14T08:51:42.205+0000][16362][safepoint ] Application time: 0,0000273 seconds +[2018-06-14T08:51:42.205+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000595 seconds, Stopping threads took: 0,0000136 seconds +[2018-06-14T08:51:42.206+0000][16362][safepoint ] Application time: 0,0007109 seconds +[2018-06-14T08:51:42.206+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001068 seconds, Stopping threads took: 0,0000630 seconds +[2018-06-14T08:51:42.208+0000][16362][safepoint ] Application time: 0,0018580 seconds +[2018-06-14T08:51:42.208+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001325 seconds, Stopping threads took: 0,0000273 seconds +[2018-06-14T08:51:42.215+0000][16362][safepoint ] Application time: 0,0067300 seconds +[2018-06-14T08:51:42.215+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000908 seconds, Stopping threads took: 0,0000312 seconds +[2018-06-14T08:51:42.218+0000][16362][safepoint ] Application time: 0,0034251 seconds +[2018-06-14T08:51:42.219+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001018 seconds, Stopping threads took: 0,0000496 seconds +[2018-06-14T08:51:42.219+0000][16362][safepoint ] Application time: 0,0001484 seconds +[2018-06-14T08:51:42.219+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000823 seconds, Stopping threads took: 0,0000383 seconds +[2018-06-14T08:51:42.219+0000][16362][safepoint ] Application time: 0,0000605 seconds +[2018-06-14T08:51:42.219+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000827 seconds, Stopping threads took: 0,0000302 seconds +[2018-06-14T08:51:42.220+0000][16362][safepoint ] Application time: 0,0007024 seconds +[2018-06-14T08:51:42.223+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0032009 seconds, Stopping threads took: 0,0030949 seconds +[2018-06-14T08:51:42.223+0000][16362][safepoint ] Application time: 0,0000745 seconds +[2018-06-14T08:51:42.223+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001349 seconds, Stopping threads took: 0,0001009 seconds +[2018-06-14T08:51:42.228+0000][16362][safepoint ] Application time: 0,0045839 seconds +[2018-06-14T08:51:42.228+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000965 seconds, Stopping threads took: 0,0000373 seconds +[2018-06-14T08:51:42.228+0000][16362][safepoint ] Application time: 0,0000566 seconds +[2018-06-14T08:51:42.228+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000867 seconds, Stopping threads took: 0,0000541 seconds +[2018-06-14T08:51:42.228+0000][16362][safepoint ] Application time: 0,0001127 seconds +[2018-06-14T08:51:42.228+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000964 seconds, Stopping threads took: 0,0000378 seconds +[2018-06-14T08:51:42.229+0000][16362][safepoint ] Application time: 0,0007805 seconds +[2018-06-14T08:51:42.229+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000973 seconds, Stopping threads took: 0,0000327 seconds +[2018-06-14T08:51:42.232+0000][16362][safepoint ] Application time: 0,0030727 seconds +[2018-06-14T08:51:42.232+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001176 seconds, Stopping threads took: 0,0000217 seconds +[2018-06-14T08:51:42.233+0000][16362][safepoint ] Application time: 0,0006524 seconds +[2018-06-14T08:51:42.233+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001326 seconds, Stopping threads took: 0,0000531 seconds +[2018-06-14T08:51:42.233+0000][16362][safepoint ] Application time: 0,0000438 seconds +[2018-06-14T08:51:42.234+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0003876 seconds, Stopping threads took: 0,0000251 seconds +[2018-06-14T08:51:42.236+0000][16362][safepoint ] Application time: 0,0019995 seconds +[2018-06-14T08:51:42.236+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002444 seconds, Stopping threads took: 0,0001983 seconds +[2018-06-14T08:51:42.236+0000][16362][safepoint ] Application time: 0,0001152 seconds +[2018-06-14T08:51:42.236+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000795 seconds, Stopping threads took: 0,0000399 seconds +[2018-06-14T08:51:42.239+0000][16362][safepoint ] Application time: 0,0025636 seconds +[2018-06-14T08:51:42.239+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002186 seconds, Stopping threads took: 0,0000492 seconds +[2018-06-14T08:51:42.239+0000][16362][safepoint ] Application time: 0,0000401 seconds +[2018-06-14T08:51:42.239+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000769 seconds, Stopping threads took: 0,0000332 seconds +[2018-06-14T08:51:42.239+0000][16362][safepoint ] Application time: 0,0000278 seconds +[2018-06-14T08:51:42.239+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000655 seconds, Stopping threads took: 0,0000316 seconds +[2018-06-14T08:51:42.240+0000][16362][safepoint ] Application time: 0,0001401 seconds +[2018-06-14T08:51:42.240+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001919 seconds, Stopping threads took: 0,0000888 seconds +[2018-06-14T08:51:42.240+0000][16362][safepoint ] Application time: 0,0000480 seconds +[2018-06-14T08:51:42.240+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000724 seconds, Stopping threads took: 0,0000285 seconds +[2018-06-14T08:51:42.240+0000][16362][safepoint ] Application time: 0,0000893 seconds +[2018-06-14T08:51:42.240+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000694 seconds, Stopping threads took: 0,0000226 seconds +[2018-06-14T08:51:42.242+0000][16362][safepoint ] Application time: 0,0018976 seconds +[2018-06-14T08:51:42.242+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000819 seconds, Stopping threads took: 0,0000323 seconds +[2018-06-14T08:51:42.242+0000][16362][safepoint ] Application time: 0,0000538 seconds +[2018-06-14T08:51:42.242+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0003074 seconds, Stopping threads took: 0,0000361 seconds +[2018-06-14T08:51:42.242+0000][16362][safepoint ] Application time: 0,0000649 seconds +[2018-06-14T08:51:42.243+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001080 seconds, Stopping threads took: 0,0000719 seconds +[2018-06-14T08:51:42.243+0000][16362][safepoint ] Application time: 0,0006339 seconds +[2018-06-14T08:51:42.243+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001116 seconds, Stopping threads took: 0,0000514 seconds +[2018-06-14T08:51:42.246+0000][16362][safepoint ] Application time: 0,0028118 seconds +[2018-06-14T08:51:42.246+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001035 seconds, Stopping threads took: 0,0000352 seconds +[2018-06-14T08:51:42.246+0000][16362][safepoint ] Application time: 0,0000255 seconds +[2018-06-14T08:51:42.246+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000743 seconds, Stopping threads took: 0,0000317 seconds +[2018-06-14T08:51:42.247+0000][16362][safepoint ] Application time: 0,0000614 seconds +[2018-06-14T08:51:42.247+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000717 seconds, Stopping threads took: 0,0000253 seconds +[2018-06-14T08:51:42.247+0000][16362][safepoint ] Application time: 0,0000911 seconds +[2018-06-14T08:51:42.247+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000738 seconds, Stopping threads took: 0,0000204 seconds +[2018-06-14T08:51:42.249+0000][16362][safepoint ] Application time: 0,0026441 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000782 seconds, Stopping threads took: 0,0000240 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Application time: 0,0000564 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000795 seconds, Stopping threads took: 0,0000318 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Application time: 0,0000507 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000754 seconds, Stopping threads took: 0,0000272 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Application time: 0,0000514 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001123 seconds, Stopping threads took: 0,0000620 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Application time: 0,0000449 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000776 seconds, Stopping threads took: 0,0000322 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Application time: 0,0000470 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000704 seconds, Stopping threads took: 0,0000382 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Application time: 0,0000688 seconds +[2018-06-14T08:51:42.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000608 seconds, Stopping threads took: 0,0000224 seconds +[2018-06-14T08:51:42.251+0000][16362][safepoint ] Application time: 0,0000418 seconds +[2018-06-14T08:51:42.251+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000444 seconds, Stopping threads took: 0,0000119 seconds +[2018-06-14T08:51:42.251+0000][16362][safepoint ] Application time: 0,0008087 seconds +[2018-06-14T08:51:42.252+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001567 seconds, Stopping threads took: 0,0000646 seconds +[2018-06-14T08:51:42.252+0000][16362][safepoint ] Application time: 0,0004341 seconds +[2018-06-14T08:51:42.252+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001252 seconds, Stopping threads took: 0,0000401 seconds +[2018-06-14T08:51:42.253+0000][16362][safepoint ] Application time: 0,0004309 seconds +[2018-06-14T08:51:42.253+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001121 seconds, Stopping threads took: 0,0000272 seconds +[2018-06-14T08:51:42.253+0000][16362][safepoint ] Application time: 0,0000208 seconds +[2018-06-14T08:51:42.253+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000863 seconds, Stopping threads took: 0,0000375 seconds +[2018-06-14T08:51:42.254+0000][16362][safepoint ] Application time: 0,0015366 seconds +[2018-06-14T08:51:42.255+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004128 seconds, Stopping threads took: 0,0000730 seconds +[2018-06-14T08:51:42.256+0000][16362][safepoint ] Application time: 0,0014132 seconds +[2018-06-14T08:51:42.256+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001239 seconds, Stopping threads took: 0,0000493 seconds +[2018-06-14T08:51:43.215+0000][16362][safepoint ] Application time: 0,9588062 seconds +[2018-06-14T08:51:43.215+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000628 seconds, Stopping threads took: 0,0000163 seconds +[2018-06-14T08:51:43.217+0000][16362][safepoint ] Application time: 0,0012567 seconds +[2018-06-14T08:51:43.217+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001217 seconds, Stopping threads took: 0,0000494 seconds +[2018-06-14T08:51:43.217+0000][16362][safepoint ] Application time: 0,0003578 seconds +[2018-06-14T08:51:43.217+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001858 seconds, Stopping threads took: 0,0000716 seconds +[2018-06-14T08:51:43.218+0000][16362][safepoint ] Application time: 0,0005081 seconds +[2018-06-14T08:51:43.218+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001267 seconds, Stopping threads took: 0,0000708 seconds +[2018-06-14T08:51:43.218+0000][16362][safepoint ] Application time: 0,0000601 seconds +[2018-06-14T08:51:43.218+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000840 seconds, Stopping threads took: 0,0000279 seconds +[2018-06-14T08:51:43.218+0000][16362][safepoint ] Application time: 0,0000680 seconds +[2018-06-14T08:51:43.218+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001427 seconds, Stopping threads took: 0,0000839 seconds +[2018-06-14T08:51:43.219+0000][16362][safepoint ] Application time: 0,0010230 seconds +[2018-06-14T08:51:43.220+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001691 seconds, Stopping threads took: 0,0000429 seconds +[2018-06-14T08:51:43.221+0000][16362][safepoint ] Application time: 0,0014812 seconds +[2018-06-14T08:51:43.221+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001456 seconds, Stopping threads took: 0,0000283 seconds +[2018-06-14T08:51:43.222+0000][16362][safepoint ] Application time: 0,0011009 seconds +[2018-06-14T08:51:43.223+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000846 seconds, Stopping threads took: 0,0000176 seconds +[2018-06-14T08:51:43.223+0000][16362][gc ] GC(6) Concurrent Abortable Preclean 2184,550ms +[2018-06-14T08:51:43.223+0000][16362][gc,cpu ] GC(6) User=6,61s Sys=0,04s Real=2,18s +[2018-06-14T08:51:43.223+0000][16362][safepoint ] Application time: 0,0000687 seconds +[2018-06-14T08:51:43.223+0000][16362][gc,start ] GC(6) Pause Remark +[2018-06-14T08:51:43.251+0000][16362][gc ] GC(6) Pause Remark 208M->208M(989M) 27,988ms +[2018-06-14T08:51:43.251+0000][16362][gc,cpu ] GC(6) User=0,09s Sys=0,00s Real=0,03s +[2018-06-14T08:51:43.251+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0281965 seconds, Stopping threads took: 0,0000823 seconds +[2018-06-14T08:51:43.251+0000][16362][gc ] GC(6) Concurrent Sweep +[2018-06-14T08:51:43.251+0000][16362][safepoint ] Application time: 0,0001052 seconds +[2018-06-14T08:51:43.251+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000739 seconds, Stopping threads took: 0,0000314 seconds +[2018-06-14T08:51:43.251+0000][16362][safepoint ] Application time: 0,0000553 seconds +[2018-06-14T08:51:43.251+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000919 seconds, Stopping threads took: 0,0000572 seconds +[2018-06-14T08:51:43.251+0000][16362][safepoint ] Application time: 0,0001589 seconds +[2018-06-14T08:51:43.251+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000860 seconds, Stopping threads took: 0,0000264 seconds +[2018-06-14T08:51:43.252+0000][16362][safepoint ] Application time: 0,0001478 seconds +[2018-06-14T08:51:43.252+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000878 seconds, Stopping threads took: 0,0000364 seconds +[2018-06-14T08:51:43.252+0000][16362][safepoint ] Application time: 0,0000739 seconds +[2018-06-14T08:51:43.252+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001324 seconds, Stopping threads took: 0,0000903 seconds +[2018-06-14T08:51:43.252+0000][16362][safepoint ] Application time: 0,0000634 seconds +[2018-06-14T08:51:43.252+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000750 seconds, Stopping threads took: 0,0000384 seconds +[2018-06-14T08:51:43.261+0000][16362][gc ] GC(6) Concurrent Sweep 9,915ms +[2018-06-14T08:51:43.261+0000][16362][gc,cpu ] GC(6) User=0,00s Sys=0,01s Real=0,01s +[2018-06-14T08:51:43.261+0000][16362][gc ] GC(6) Concurrent Reset +[2018-06-14T08:51:43.261+0000][16362][gc ] GC(6) Concurrent Reset 0,435ms +[2018-06-14T08:51:43.261+0000][16362][gc,cpu ] GC(6) User=0,01s Sys=0,00s Real=0,00s +[2018-06-14T08:51:43.261+0000][16362][gc,heap ] GC(6) Old: 17582K->35442K(699072K) +[2018-06-14T08:51:44.215+0000][16362][safepoint ] Application time: 0,9632641 seconds +[2018-06-14T08:51:44.215+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000728 seconds, Stopping threads took: 0,0000198 seconds +[2018-06-14T08:51:44.216+0000][16362][safepoint ] Application time: 0,0005996 seconds +[2018-06-14T08:51:44.217+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004105 seconds, Stopping threads took: 0,0001125 seconds +[2018-06-14T08:51:44.217+0000][16362][safepoint ] Application time: 0,0001848 seconds +[2018-06-14T08:51:44.217+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004058 seconds, Stopping threads took: 0,0001140 seconds +[2018-06-14T08:51:44.217+0000][16362][safepoint ] Application time: 0,0001291 seconds +[2018-06-14T08:51:44.217+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001394 seconds, Stopping threads took: 0,0000935 seconds +[2018-06-14T08:51:44.218+0000][16362][safepoint ] Application time: 0,0001840 seconds +[2018-06-14T08:51:44.218+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004120 seconds, Stopping threads took: 0,0000836 seconds +[2018-06-14T08:51:44.218+0000][16362][safepoint ] Application time: 0,0001150 seconds +[2018-06-14T08:51:44.218+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001701 seconds, Stopping threads took: 0,0001100 seconds +[2018-06-14T08:51:44.219+0000][16362][safepoint ] Application time: 0,0004191 seconds +[2018-06-14T08:51:44.219+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0003406 seconds, Stopping threads took: 0,0000188 seconds +[2018-06-14T08:51:45.219+0000][16362][safepoint ] Application time: 1,0000166 seconds +[2018-06-14T08:51:45.219+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001168 seconds, Stopping threads took: 0,0000228 seconds +[2018-06-14T08:51:45.220+0000][16362][safepoint ] Application time: 0,0000950 seconds +[2018-06-14T08:51:45.220+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000454 seconds, Stopping threads took: 0,0000097 seconds +[2018-06-14T08:51:45.240+0000][16362][safepoint ] Application time: 0,0199903 seconds +[2018-06-14T08:51:45.240+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002336 seconds, Stopping threads took: 0,0001545 seconds +[2018-06-14T08:51:45.241+0000][16362][safepoint ] Application time: 0,0016453 seconds +[2018-06-14T08:51:45.242+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001445 seconds, Stopping threads took: 0,0000844 seconds +[2018-06-14T08:51:45.242+0000][16362][safepoint ] Application time: 0,0004448 seconds +[2018-06-14T08:51:45.242+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000875 seconds, Stopping threads took: 0,0000315 seconds +[2018-06-14T08:51:45.245+0000][16362][safepoint ] Application time: 0,0027621 seconds +[2018-06-14T08:51:45.245+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001194 seconds, Stopping threads took: 0,0000396 seconds +[2018-06-14T08:51:45.249+0000][16362][safepoint ] Application time: 0,0035188 seconds +[2018-06-14T08:51:45.249+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001512 seconds, Stopping threads took: 0,0000897 seconds +[2018-06-14T08:51:45.249+0000][16362][safepoint ] Application time: 0,0001153 seconds +[2018-06-14T08:51:45.249+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001021 seconds, Stopping threads took: 0,0000568 seconds +[2018-06-14T08:51:45.250+0000][16362][safepoint ] Application time: 0,0007785 seconds +[2018-06-14T08:51:45.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000789 seconds, Stopping threads took: 0,0000349 seconds +[2018-06-14T08:51:45.250+0000][16362][safepoint ] Application time: 0,0000560 seconds +[2018-06-14T08:51:45.250+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000540 seconds, Stopping threads took: 0,0000223 seconds +[2018-06-14T08:51:45.253+0000][16362][safepoint ] Application time: 0,0027738 seconds +[2018-06-14T08:51:45.253+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000750 seconds, Stopping threads took: 0,0000225 seconds +[2018-06-14T08:51:45.279+0000][16362][safepoint ] Application time: 0,0257805 seconds +[2018-06-14T08:51:45.279+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002361 seconds, Stopping threads took: 0,0001142 seconds +[2018-06-14T08:51:45.283+0000][16362][safepoint ] Application time: 0,0037806 seconds +[2018-06-14T08:51:45.283+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0005859 seconds, Stopping threads took: 0,0000438 seconds +[2018-06-14T08:51:45.285+0000][16362][safepoint ] Application time: 0,0014088 seconds +[2018-06-14T08:51:45.285+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001308 seconds, Stopping threads took: 0,0000547 seconds +[2018-06-14T08:51:45.312+0000][16362][safepoint ] Application time: 0,0273052 seconds +[2018-06-14T08:51:45.313+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001850 seconds, Stopping threads took: 0,0000928 seconds +[2018-06-14T08:51:45.315+0000][16362][safepoint ] Application time: 0,0021229 seconds +[2018-06-14T08:51:45.315+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001776 seconds, Stopping threads took: 0,0001270 seconds +[2018-06-14T08:51:45.317+0000][16362][safepoint ] Application time: 0,0023550 seconds +[2018-06-14T08:51:45.318+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001981 seconds, Stopping threads took: 0,0001243 seconds +[2018-06-14T08:51:45.394+0000][16362][safepoint ] Application time: 0,0759444 seconds +[2018-06-14T08:51:45.394+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0006485 seconds, Stopping threads took: 0,0002091 seconds +[2018-06-14T08:51:45.464+0000][16362][safepoint ] Application time: 0,0698179 seconds +[2018-06-14T08:51:45.464+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002183 seconds, Stopping threads took: 0,0000556 seconds +[2018-06-14T08:51:45.494+0000][16362][safepoint ] Application time: 0,0299109 seconds +[2018-06-14T08:51:45.494+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001538 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-14T08:51:45.524+0000][16362][safepoint ] Application time: 0,0291210 seconds +[2018-06-14T08:51:45.524+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001520 seconds, Stopping threads took: 0,0000619 seconds +[2018-06-14T08:51:45.560+0000][16362][safepoint ] Application time: 0,0366550 seconds +[2018-06-14T08:51:45.561+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002969 seconds, Stopping threads took: 0,0000789 seconds +[2018-06-14T08:51:45.600+0000][16362][safepoint ] Application time: 0,0396216 seconds +[2018-06-14T08:51:45.601+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001202 seconds, Stopping threads took: 0,0000438 seconds +[2018-06-14T08:51:45.628+0000][16362][safepoint ] Application time: 0,0273974 seconds +[2018-06-14T08:51:45.628+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001563 seconds, Stopping threads took: 0,0000497 seconds +[2018-06-14T08:51:45.653+0000][16362][safepoint ] Application time: 0,0247952 seconds +[2018-06-14T08:51:45.653+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001552 seconds, Stopping threads took: 0,0000554 seconds +[2018-06-14T08:51:45.718+0000][16362][safepoint ] Application time: 0,0651317 seconds +[2018-06-14T08:51:45.719+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001446 seconds, Stopping threads took: 0,0000307 seconds +[2018-06-14T08:51:45.743+0000][16362][safepoint ] Application time: 0,0242399 seconds +[2018-06-14T08:51:45.743+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001251 seconds, Stopping threads took: 0,0000375 seconds +[2018-06-14T08:51:46.743+0000][16362][safepoint ] Application time: 1,0001354 seconds +[2018-06-14T08:51:46.743+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001481 seconds, Stopping threads took: 0,0000438 seconds +[2018-06-14T08:51:47.743+0000][16362][safepoint ] Application time: 1,0001291 seconds +[2018-06-14T08:51:47.744+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001009 seconds, Stopping threads took: 0,0000302 seconds +[2018-06-14T08:51:49.744+0000][16362][safepoint ] Application time: 2,0002390 seconds +[2018-06-14T08:51:49.744+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002529 seconds, Stopping threads took: 0,0000653 seconds +[2018-06-14T08:51:50.744+0000][16362][safepoint ] Application time: 1,0001150 seconds +[2018-06-14T08:51:50.745+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002458 seconds, Stopping threads took: 0,0000667 seconds +[2018-06-14T08:51:52.745+0000][16362][safepoint ] Application time: 2,0002719 seconds +[2018-06-14T08:51:52.745+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001912 seconds, Stopping threads took: 0,0000549 seconds +[2018-06-14T08:51:53.745+0000][16362][safepoint ] Application time: 1,0001101 seconds +[2018-06-14T08:51:53.746+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002052 seconds, Stopping threads took: 0,0000617 seconds +[2018-06-14T08:51:54.746+0000][16362][safepoint ] Application time: 1,0001439 seconds +[2018-06-14T08:51:54.746+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002307 seconds, Stopping threads took: 0,0000745 seconds +[2018-06-14T08:51:55.746+0000][16362][safepoint ] Application time: 1,0001003 seconds +[2018-06-14T08:51:55.747+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002295 seconds, Stopping threads took: 0,0000597 seconds +[2018-06-14T08:51:57.747+0000][16362][safepoint ] Application time: 2,0002617 seconds +[2018-06-14T08:51:57.747+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001675 seconds, Stopping threads took: 0,0000456 seconds +[2018-06-14T08:52:00.748+0000][16362][safepoint ] Application time: 3,0003854 seconds +[2018-06-14T08:52:00.748+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002417 seconds, Stopping threads took: 0,0000794 seconds +[2018-06-14T08:52:02.748+0000][16362][safepoint ] Application time: 2,0002478 seconds +[2018-06-14T08:52:02.748+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002016 seconds, Stopping threads took: 0,0000599 seconds +[2018-06-14T08:52:12.750+0000][16362][safepoint ] Application time: 10,0010156 seconds +[2018-06-14T08:52:12.750+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001714 seconds, Stopping threads took: 0,0000697 seconds +[2018-06-14T08:52:15.750+0000][16362][safepoint ] Application time: 3,0002439 seconds +[2018-06-14T08:52:15.750+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002375 seconds, Stopping threads took: 0,0000563 seconds +[2018-06-14T08:52:17.751+0000][16362][safepoint ] Application time: 2,0002757 seconds +[2018-06-14T08:52:17.751+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002133 seconds, Stopping threads took: 0,0000574 seconds +[2018-06-14T08:52:21.752+0000][16362][safepoint ] Application time: 4,0006570 seconds +[2018-06-14T08:52:21.752+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001285 seconds, Stopping threads took: 0,0000270 seconds +[2018-06-14T08:52:27.753+0000][16362][safepoint ] Application time: 6,0008362 seconds +[2018-06-14T08:52:27.753+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002503 seconds, Stopping threads took: 0,0000769 seconds +[2018-06-14T08:52:35.754+0000][16362][safepoint ] Application time: 8,0010903 seconds +[2018-06-14T08:52:35.754+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001765 seconds, Stopping threads took: 0,0000517 seconds +[2018-06-14T08:52:37.755+0000][16362][safepoint ] Application time: 2,0002255 seconds +[2018-06-14T08:52:37.755+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002166 seconds, Stopping threads took: 0,0000658 seconds +[2018-06-14T08:52:40.755+0000][16362][safepoint ] Application time: 3,0003818 seconds +[2018-06-14T08:52:40.755+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001019 seconds, Stopping threads took: 0,0000356 seconds +[2018-06-14T08:52:43.762+0000][16362][safepoint ] Application time: 3,0004078 seconds +[2018-06-14T08:52:43.762+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002470 seconds, Stopping threads took: 0,0000609 seconds +[2018-06-14T08:52:45.762+0000][16362][safepoint ] Application time: 2,0002168 seconds +[2018-06-14T08:52:45.762+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002086 seconds, Stopping threads took: 0,0000776 seconds +[2018-06-14T08:52:49.324+0000][16362][safepoint ] Application time: 3,5594683 seconds +[2018-06-14T08:52:49.324+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001749 seconds, Stopping threads took: 0,0001159 seconds +[2018-06-14T08:52:49.326+0000][16362][safepoint ] Application time: 0,0021177 seconds +[2018-06-14T08:52:49.326+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000938 seconds, Stopping threads took: 0,0000380 seconds +[2018-06-14T08:52:49.327+0000][16362][safepoint ] Application time: 0,0002746 seconds +[2018-06-14T08:52:49.327+0000][16362][gc,start ] GC(8) Pause Young (Allocation Failure) +[2018-06-14T08:52:49.327+0000][16362][gc,task ] GC(8) Using 8 workers of 8 for evacuation +[2018-06-14T08:52:49.345+0000][16362][gc,age ] GC(8) Desired survivor size 17891328 bytes, new threshold 1 (max threshold 6) +[2018-06-14T08:52:49.345+0000][16362][gc,age ] GC(8) Age table with threshold 1 (max threshold 6) +[2018-06-14T08:52:49.345+0000][16362][gc,age ] GC(8) - age 1: 18434176 bytes, 18434176 total +[2018-06-14T08:52:49.345+0000][16362][gc,heap ] GC(8) ParNew: 314559K->25972K(314560K) +[2018-06-14T08:52:49.345+0000][16362][gc,heap ] GC(8) CMS: 35442K->46551K(699072K) +[2018-06-14T08:52:49.345+0000][16362][gc,metaspace ] GC(8) Metaspace: 70247K->70247K(1116160K) +[2018-06-14T08:52:49.345+0000][16362][gc ] GC(8) Pause Young (Allocation Failure) 341M->70M(989M) 18,681ms +[2018-06-14T08:52:49.345+0000][16362][gc,cpu ] GC(8) User=0,10s Sys=0,00s Real=0,02s +[2018-06-14T08:52:49.345+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0187972 seconds, Stopping threads took: 0,0000137 seconds +[2018-06-14T08:52:49.346+0000][16362][safepoint ] Application time: 0,0003864 seconds +[2018-06-14T08:52:49.346+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000814 seconds, Stopping threads took: 0,0000169 seconds +[2018-06-14T08:52:49.346+0000][16362][safepoint ] Application time: 0,0001702 seconds +[2018-06-14T08:52:49.346+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001560 seconds, Stopping threads took: 0,0000995 seconds +[2018-06-14T08:52:49.346+0000][16362][safepoint ] Application time: 0,0002243 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000913 seconds, Stopping threads took: 0,0000209 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Application time: 0,0001058 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000674 seconds, Stopping threads took: 0,0000268 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Application time: 0,0000773 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000553 seconds, Stopping threads took: 0,0000215 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Application time: 0,0000993 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000452 seconds, Stopping threads took: 0,0000116 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Application time: 0,0001218 seconds +[2018-06-14T08:52:49.347+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001150 seconds, Stopping threads took: 0,0000723 seconds +[2018-06-14T08:52:49.348+0000][16362][safepoint ] Application time: 0,0006903 seconds +[2018-06-14T08:52:49.348+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001347 seconds, Stopping threads took: 0,0000887 seconds +[2018-06-14T08:52:49.348+0000][16362][safepoint ] Application time: 0,0000907 seconds +[2018-06-14T08:52:49.349+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0007697 seconds, Stopping threads took: 0,0000312 seconds +[2018-06-14T08:52:49.352+0000][16362][safepoint ] Application time: 0,0027508 seconds +[2018-06-14T08:52:49.352+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004287 seconds, Stopping threads took: 0,0001043 seconds +[2018-06-14T08:52:49.352+0000][16362][safepoint ] Application time: 0,0001008 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001676 seconds, Stopping threads took: 0,0000928 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000506 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000725 seconds, Stopping threads took: 0,0000412 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000198 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000852 seconds, Stopping threads took: 0,0000444 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000167 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000906 seconds, Stopping threads took: 0,0000514 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000189 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000589 seconds, Stopping threads took: 0,0000197 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000230 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000708 seconds, Stopping threads took: 0,0000350 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000155 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000548 seconds, Stopping threads took: 0,0000278 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000128 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000483 seconds, Stopping threads took: 0,0000211 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Application time: 0,0000139 seconds +[2018-06-14T08:52:49.353+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000539 seconds, Stopping threads took: 0,0000263 seconds +[2018-06-14T08:52:49.356+0000][16362][safepoint ] Application time: 0,0023642 seconds +[2018-06-14T08:52:49.356+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001232 seconds, Stopping threads took: 0,0000516 seconds +[2018-06-14T08:52:49.356+0000][16362][safepoint ] Application time: 0,0000653 seconds +[2018-06-14T08:52:49.356+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002138 seconds, Stopping threads took: 0,0001431 seconds +[2018-06-14T08:52:49.357+0000][16362][safepoint ] Application time: 0,0003754 seconds +[2018-06-14T08:52:49.357+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0004766 seconds, Stopping threads took: 0,0001443 seconds +[2018-06-14T08:52:49.357+0000][16362][safepoint ] Application time: 0,0002023 seconds +[2018-06-14T08:52:49.358+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001324 seconds, Stopping threads took: 0,0000394 seconds +[2018-06-14T08:52:49.358+0000][16362][safepoint ] Application time: 0,0003320 seconds +[2018-06-14T08:52:49.358+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001611 seconds, Stopping threads took: 0,0000928 seconds +[2018-06-14T08:52:49.358+0000][16362][safepoint ] Application time: 0,0001964 seconds +[2018-06-14T08:52:49.358+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000882 seconds, Stopping threads took: 0,0000323 seconds +[2018-06-14T08:52:49.358+0000][16362][safepoint ] Application time: 0,0000438 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000724 seconds, Stopping threads took: 0,0000381 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Application time: 0,0000657 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000642 seconds, Stopping threads took: 0,0000209 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Application time: 0,0001358 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000739 seconds, Stopping threads took: 0,0000314 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Application time: 0,0001265 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000752 seconds, Stopping threads took: 0,0000347 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Application time: 0,0000891 seconds +[2018-06-14T08:52:49.359+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000639 seconds, Stopping threads took: 0,0000254 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Application time: 0,0004151 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000802 seconds, Stopping threads took: 0,0000262 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Application time: 0,0001653 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000723 seconds, Stopping threads took: 0,0000237 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Application time: 0,0000557 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000679 seconds, Stopping threads took: 0,0000361 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Application time: 0,0000960 seconds +[2018-06-14T08:52:49.360+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000357 seconds, Stopping threads took: 0,0000073 seconds +[2018-06-14T08:52:49.361+0000][16362][safepoint ] Application time: 0,0008766 seconds +[2018-06-14T08:52:49.361+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001044 seconds, Stopping threads took: 0,0000247 seconds +[2018-06-14T08:52:49.362+0000][16362][safepoint ] Application time: 0,0003148 seconds +[2018-06-14T08:52:49.362+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000606 seconds, Stopping threads took: 0,0000134 seconds +[2018-06-14T08:52:49.542+0000][16362][safepoint ] Application time: 0,1802479 seconds +[2018-06-14T08:52:49.542+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000892 seconds, Stopping threads took: 0,0000189 seconds +[2018-06-14T08:52:49.543+0000][16362][safepoint ] Application time: 0,0007697 seconds +[2018-06-14T08:52:49.543+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000461 seconds, Stopping threads took: 0,0000216 seconds +[2018-06-14T08:52:49.543+0000][16362][safepoint ] Application time: 0,0000666 seconds +[2018-06-14T08:52:49.543+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000386 seconds, Stopping threads took: 0,0000190 seconds +[2018-06-14T08:52:49.543+0000][16362][safepoint ] Application time: 0,0001896 seconds +[2018-06-14T08:52:49.543+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000574 seconds, Stopping threads took: 0,0000150 seconds +[2018-06-14T08:52:49.545+0000][16362][safepoint ] Application time: 0,0019139 seconds +[2018-06-14T08:52:49.546+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002357 seconds, Stopping threads took: 0,0001932 seconds +[2018-06-14T08:52:49.546+0000][16362][safepoint ] Application time: 0,0000353 seconds +[2018-06-14T08:52:49.546+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000326 seconds, Stopping threads took: 0,0000095 seconds +[2018-06-14T08:52:49.546+0000][16362][safepoint ] Application time: 0,0001626 seconds +[2018-06-14T08:52:49.546+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000544 seconds, Stopping threads took: 0,0000179 seconds +[2018-06-14T08:52:49.546+0000][16362][safepoint ] Application time: 0,0001414 seconds +[2018-06-14T08:52:49.546+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000519 seconds, Stopping threads took: 0,0000211 seconds +[2018-06-14T08:52:49.548+0000][16362][safepoint ] Application time: 0,0015835 seconds +[2018-06-14T08:52:49.548+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001770 seconds, Stopping threads took: 0,0000769 seconds +[2018-06-14T08:52:49.548+0000][16362][safepoint ] Application time: 0,0001582 seconds +[2018-06-14T08:52:49.549+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0005883 seconds, Stopping threads took: 0,0000367 seconds +[2018-06-14T08:52:49.549+0000][16362][safepoint ] Application time: 0,0000198 seconds +[2018-06-14T08:52:49.549+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0000685 seconds, Stopping threads took: 0,0000269 seconds +[2018-06-14T08:52:49.549+0000][16362][safepoint ] Application time: 0,0001457 seconds +[2018-06-14T08:52:49.549+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0001048 seconds, Stopping threads took: 0,0000668 seconds +[2018-06-14T08:52:49.549+0000][16362][safepoint ] Application time: 0,0002355 seconds +[2018-06-14T08:52:49.550+0000][16362][safepoint ] Total time for which application threads were stopped: 0,0002841 seconds, Stopping threads took: 0,0000876 seconds +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] Heap +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] par new generation total 314560K, used 74011K [0x00000000c0000000, 0x00000000d5550000, 0x00000000d5550000) +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] eden space 279616K, 17% used [0x00000000c0000000, 0x00000000c2ee99c8, 0x00000000d1110000) +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] from space 34944K, 74% used [0x00000000d3330000, 0x00000000d4c8d270, 0x00000000d5550000) +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] to space 34944K, 0% used [0x00000000d1110000, 0x00000000d1110000, 0x00000000d3330000) +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] concurrent mark-sweep generation total 699072K, used 46551K [0x00000000d5550000, 0x0000000100000000, 0x0000000100000000) +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] Metaspace used 70380K, capacity 76872K, committed 76980K, reserved 1116160K +[2018-06-14T08:52:49.560+0000][16362][gc,heap,exit ] class space used 9240K, capacity 10992K, committed 11036K, reserved 1048576K +[2018-06-14T08:52:49.560+0000][16362][safepoint ] Application time: 0,0108063 seconds diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.1.current b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.1.current new file mode 100644 index 00000000..8e982d85 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/gc.log.1.current @@ -0,0 +1,463 @@ +Java HotSpot(TM) 64-Bit Server VM (25.171-b11) for linux-amd64 JRE (1.8.0_171-b11), built on Mar 28 2018 17:07:08 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8) +Memory: 4k page, physical 32786832k(6022744k free), swap 2097148k(2097148k free) +CommandLine flags: -XX:+AlwaysPreTouch -XX:CMSInitiatingOccupancyFraction=75 -XX:ErrorFile=logs/hs_err_pid%p.log -XX:GCLogFileSize=67108864 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=357916672 -XX:MaxTenuringThreshold=6 -XX:NewSize=357916672 -XX:NumberOfGCLogFiles=32 -XX:OldPLABSize=16 -XX:OldSize=715825152 -XX:-OmitStackTraceInFastThrow -XX:+PrintGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:ThreadStackSize=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseGCLogFileRotation -XX:+UseParNewGC +2018-06-21T16:19:29.803+0200: 0,419: Total time for which application threads were stopped: 0,0000668 seconds, Stopping threads took: 0,0000086 seconds +2018-06-21T16:19:29.922+0200: 0,538: Total time for which application threads were stopped: 0,0001312 seconds, Stopping threads took: 0,0000148 seconds +2018-06-21T16:19:30.042+0200: 0,658: Total time for which application threads were stopped: 0,0001222 seconds, Stopping threads took: 0,0000125 seconds +2018-06-21T16:19:30.069+0200: 0,685: Total time for which application threads were stopped: 0,0001108 seconds, Stopping threads took: 0,0000081 seconds +2018-06-21T16:19:30.081+0200: 0,697: Total time for which application threads were stopped: 0,0001075 seconds, Stopping threads took: 0,0000087 seconds +2018-06-21T16:19:30.096+0200: 0,711: Total time for which application threads were stopped: 0,0002827 seconds, Stopping threads took: 0,0000110 seconds +2018-06-21T16:19:30.149+0200: 0,765: Total time for which application threads were stopped: 0,0001144 seconds, Stopping threads took: 0,0000114 seconds +2018-06-21T16:19:30.381+0200: 0,997: Total time for which application threads were stopped: 0,0001958 seconds, Stopping threads took: 0,0000074 seconds +2018-06-21T16:19:30.546+0200: 1,161: Total time for which application threads were stopped: 0,0002056 seconds, Stopping threads took: 0,0000167 seconds +2018-06-21T16:19:30.564+0200: 1,180: Total time for which application threads were stopped: 0,0001842 seconds, Stopping threads took: 0,0000089 seconds +2018-06-21T16:19:30.577+0200: 1,193: Total time for which application threads were stopped: 0,0002120 seconds, Stopping threads took: 0,0000181 seconds +2018-06-21T16:19:30.680+0200: 1,296: Total time for which application threads were stopped: 0,0002005 seconds, Stopping threads took: 0,0000151 seconds +2018-06-21T16:19:30.767+0200: 1,383: Total time for which application threads were stopped: 0,0002200 seconds, Stopping threads took: 0,0000169 seconds +2018-06-21T16:19:31.141+0200: 1,757: [GC (Allocation Failure) 2018-06-21T16:19:31.141+0200: 1,757: [ParNew +Desired survivor size 17891328 bytes, new threshold 1 (max 6) +- age 1: 29694272 bytes, 29694272 total +: 279616K->29092K(314560K), 0,0195866 secs] 279616K->29092K(1013632K), 0,0197027 secs] [Times: user=0,07 sys=0,00, real=0,02 secs] +2018-06-21T16:19:31.161+0200: 1,776: Total time for which application threads were stopped: 0,0199482 seconds, Stopping threads took: 0,0000215 seconds +2018-06-21T16:19:31.309+0200: 1,924: Total time for which application threads were stopped: 0,0002039 seconds, Stopping threads took: 0,0000329 seconds +2018-06-21T16:19:31.315+0200: 1,931: Total time for which application threads were stopped: 0,0002673 seconds, Stopping threads took: 0,0000316 seconds +2018-06-21T16:19:31.322+0200: 1,938: Total time for which application threads were stopped: 0,0001728 seconds, Stopping threads took: 0,0000261 seconds +2018-06-21T16:19:31.440+0200: 2,056: Total time for which application threads were stopped: 0,0001626 seconds, Stopping threads took: 0,0000271 seconds +2018-06-21T16:19:31.452+0200: 2,068: Total time for which application threads were stopped: 0,0001382 seconds, Stopping threads took: 0,0000265 seconds +2018-06-21T16:19:31.553+0200: 2,168: Total time for which application threads were stopped: 0,0001293 seconds, Stopping threads took: 0,0000154 seconds +2018-06-21T16:19:31.623+0200: 2,238: [GC (Allocation Failure) 2018-06-21T16:19:31.623+0200: 2,238: [ParNew +Desired survivor size 17891328 bytes, new threshold 1 (max 6) +- age 1: 27809848 bytes, 27809848 total +: 308708K->34842K(314560K), 0,0518912 secs] 308708K->42851K(1013632K), 0,0519597 secs] [Times: user=0,18 sys=0,00, real=0,05 secs] +2018-06-21T16:19:31.675+0200: 2,290: Total time for which application threads were stopped: 0,0520463 seconds, Stopping threads took: 0,0000142 seconds +2018-06-21T16:19:31.675+0200: 2,291: [GC (CMS Initial Mark) [1 CMS-initial-mark: 8009K(699072K)] 48311K(1013632K), 0,0097485 secs] [Times: user=0,02 sys=0,01, real=0,01 secs] +2018-06-21T16:19:31.685+0200: 2,300: Total time for which application threads were stopped: 0,0098671 seconds, Stopping threads took: 0,0000542 seconds +2018-06-21T16:19:31.685+0200: 2,300: [CMS-concurrent-mark-start] +2018-06-21T16:19:31.694+0200: 2,310: [CMS-concurrent-mark: 0,010/0,010 secs] [Times: user=0,05 sys=0,00, real=0,01 secs] +2018-06-21T16:19:31.694+0200: 2,310: [CMS-concurrent-preclean-start] +2018-06-21T16:19:31.696+0200: 2,312: [CMS-concurrent-preclean: 0,001/0,001 secs] [Times: user=0,00 sys=0,00, real=0,00 secs] +2018-06-21T16:19:31.696+0200: 2,312: [CMS-concurrent-abortable-preclean-start] +2018-06-21T16:19:31.849+0200: 2,465: Total time for which application threads were stopped: 0,0001896 seconds, Stopping threads took: 0,0000292 seconds +2018-06-21T16:19:31.907+0200: 2,523: Total time for which application threads were stopped: 0,0001012 seconds, Stopping threads took: 0,0000183 seconds +2018-06-21T16:19:31.909+0200: 2,524: [CMS-concurrent-abortable-preclean: 0,185/0,213 secs] [Times: user=0,86 sys=0,01, real=0,21 secs] +2018-06-21T16:19:31.913+0200: 2,528: [GC (CMS Final Remark) [YG occupancy: 195995 K (314560 K)]2018-06-21T16:19:31.913+0200: 2,528: [Rescan (parallel) , 0,0169483 secs]2018-06-21T16:19:31.930+0200: 2,545: [weak refs processing, 0,0000400 secs]2018-06-21T16:19:31.930+0200: 2,545: [class unloading, 0,0031980 secs]2018-06-21T16:19:31.933+0200: 2,549: [scrub symbol table, 0,0017836 secs]2018-06-21T16:19:31.935+0200: 2,550: [scrub string table, 0,0003016 secs][1 CMS-remark: 8009K(699072K)] 204004K(1013632K), 0,0229208 secs] [Times: user=0,12 sys=0,00, real=0,02 secs] +2018-06-21T16:19:31.936+0200: 2,551: Total time for which application threads were stopped: 0,0229964 seconds, Stopping threads took: 0,0000215 seconds +2018-06-21T16:19:31.936+0200: 2,551: [CMS-concurrent-sweep-start] +2018-06-21T16:19:31.939+0200: 2,555: [CMS-concurrent-sweep: 0,004/0,004 secs] [Times: user=0,01 sys=0,00, real=0,00 secs] +2018-06-21T16:19:31.939+0200: 2,555: [CMS-concurrent-reset-start] +2018-06-21T16:19:31.940+0200: 2,555: [CMS-concurrent-reset: 0,000/0,000 secs] [Times: user=0,00 sys=0,00, real=0,00 secs] +2018-06-21T16:19:32.090+0200: 2,705: [GC (Allocation Failure) 2018-06-21T16:19:32.090+0200: 2,706: [ParNew +Desired survivor size 17891328 bytes, new threshold 1 (max 6) +- age 1: 22577760 bytes, 22577760 total +: 314458K->23634K(314560K), 0,0325242 secs] 322463K->33325K(1013632K), 0,0325878 secs] [Times: user=0,09 sys=0,00, real=0,04 secs] +2018-06-21T16:19:32.122+0200: 2,738: Total time for which application threads were stopped: 0,0327330 seconds, Stopping threads took: 0,0000242 seconds +2018-06-21T16:19:32.373+0200: 2,989: Total time for which application threads were stopped: 0,0004533 seconds, Stopping threads took: 0,0000543 seconds +2018-06-21T16:19:32.707+0200: 3,322: [GC (Allocation Failure) 2018-06-21T16:19:32.707+0200: 3,322: [ParNew +Desired survivor size 17891328 bytes, new threshold 1 (max 6) +- age 1: 23703952 bytes, 23703952 total +: 303250K->23796K(314560K), 0,0333004 secs] 312941K->36001K(1013632K), 0,0333576 secs] [Times: user=0,11 sys=0,00, real=0,03 secs] +2018-06-21T16:19:32.740+0200: 3,356: Total time for which application threads were stopped: 0,0335635 seconds, Stopping threads took: 0,0000230 seconds +2018-06-21T16:19:32.856+0200: 3,472: Total time for which application threads were stopped: 0,0003089 seconds, Stopping threads took: 0,0000203 seconds +2018-06-21T16:19:32.911+0200: 3,527: Total time for which application threads were stopped: 0,0003669 seconds, Stopping threads took: 0,0000194 seconds +2018-06-21T16:19:32.974+0200: 3,590: Total time for which application threads were stopped: 0,0003923 seconds, Stopping threads took: 0,0000220 seconds +2018-06-21T16:19:33.713+0200: 4,329: [GC (Allocation Failure) 2018-06-21T16:19:33.713+0200: 4,329: [ParNew +Desired survivor size 17891328 bytes, new threshold 1 (max 6) +- age 1: 18662632 bytes, 18662632 total +: 303412K->19103K(314560K), 0,0187299 secs] 315617K->33170K(1013632K), 0,0188029 secs] [Times: user=0,12 sys=0,00, real=0,01 secs] +2018-06-21T16:19:33.732+0200: 4,348: Total time for which application threads were stopped: 0,0194255 seconds, Stopping threads took: 0,0000226 seconds +2018-06-21T16:19:34.034+0200: 4,650: Total time for which application threads were stopped: 0,0005184 seconds, Stopping threads took: 0,0000237 seconds +2018-06-21T16:19:34.353+0200: 4,969: Total time for which application threads were stopped: 0,0002289 seconds, Stopping threads took: 0,0000100 seconds +2018-06-21T16:19:34.367+0200: 4,982: Total time for which application threads were stopped: 0,0001532 seconds, Stopping threads took: 0,0000205 seconds +2018-06-21T16:19:34.381+0200: 4,997: Total time for which application threads were stopped: 0,0001133 seconds, Stopping threads took: 0,0000183 seconds +2018-06-21T16:19:34.393+0200: 5,009: Total time for which application threads were stopped: 0,0001069 seconds, Stopping threads took: 0,0000271 seconds +2018-06-21T16:19:34.414+0200: 5,030: Total time for which application threads were stopped: 0,0001189 seconds, Stopping threads took: 0,0000174 seconds +2018-06-21T16:19:34.431+0200: 5,046: Total time for which application threads were stopped: 0,0001151 seconds, Stopping threads took: 0,0000168 seconds +2018-06-21T16:19:34.445+0200: 5,060: Total time for which application threads were stopped: 0,0001303 seconds, Stopping threads took: 0,0000230 seconds +2018-06-21T16:19:34.461+0200: 5,077: Total time for which application threads were stopped: 0,0001226 seconds, Stopping threads took: 0,0000155 seconds +2018-06-21T16:19:34.479+0200: 5,095: Total time for which application threads were stopped: 0,0000831 seconds, Stopping threads took: 0,0000137 seconds +2018-06-21T16:19:34.496+0200: 5,112: Total time for which application threads were stopped: 0,0001634 seconds, Stopping threads took: 0,0000164 seconds +2018-06-21T16:19:34.514+0200: 5,129: Total time for which application threads were stopped: 0,0001590 seconds, Stopping threads took: 0,0000241 seconds +2018-06-21T16:19:34.532+0200: 5,148: Total time for which application threads were stopped: 0,0001066 seconds, Stopping threads took: 0,0000104 seconds +2018-06-21T16:19:34.553+0200: 5,168: Total time for which application threads were stopped: 0,0000920 seconds, Stopping threads took: 0,0000107 seconds +2018-06-21T16:19:34.563+0200: 5,179: Total time for which application threads were stopped: 0,0001331 seconds, Stopping threads took: 0,0000092 seconds +2018-06-21T16:19:34.582+0200: 5,198: Total time for which application threads were stopped: 0,0001498 seconds, Stopping threads took: 0,0000092 seconds +2018-06-21T16:19:34.603+0200: 5,218: Total time for which application threads were stopped: 0,0001108 seconds, Stopping threads took: 0,0000103 seconds +2018-06-21T16:19:34.864+0200: 5,480: Total time for which application threads were stopped: 0,0001846 seconds, Stopping threads took: 0,0000162 seconds +2018-06-21T16:19:34.972+0200: 5,587: Total time for which application threads were stopped: 0,0002205 seconds, Stopping threads took: 0,0001052 seconds +2018-06-21T16:19:35.049+0200: 5,665: Total time for which application threads were stopped: 0,0001516 seconds, Stopping threads took: 0,0000244 seconds +2018-06-21T16:19:35.061+0200: 5,677: Total time for which application threads were stopped: 0,0001067 seconds, Stopping threads took: 0,0000141 seconds +2018-06-21T16:19:35.088+0200: 5,704: Total time for which application threads were stopped: 0,0001406 seconds, Stopping threads took: 0,0000241 seconds +2018-06-21T16:19:35.091+0200: 5,707: Total time for which application threads were stopped: 0,0003562 seconds, Stopping threads took: 0,0000171 seconds +2018-06-21T16:19:35.108+0200: 5,723: Total time for which application threads were stopped: 0,0000494 seconds, Stopping threads took: 0,0000152 seconds +2018-06-21T16:19:35.124+0200: 5,739: Total time for which application threads were stopped: 0,0001269 seconds, Stopping threads took: 0,0000176 seconds +2018-06-21T16:19:35.150+0200: 5,766: Total time for which application threads were stopped: 0,0001236 seconds, Stopping threads took: 0,0000145 seconds +2018-06-21T16:19:35.172+0200: 5,788: Total time for which application threads were stopped: 0,0001695 seconds, Stopping threads took: 0,0000310 seconds +2018-06-21T16:19:35.191+0200: 5,806: Total time for which application threads were stopped: 0,0001207 seconds, Stopping threads took: 0,0000149 seconds +2018-06-21T16:19:35.223+0200: 5,839: Total time for which application threads were stopped: 0,0002145 seconds, Stopping threads took: 0,0000932 seconds +2018-06-21T16:19:35.255+0200: 5,871: Total time for which application threads were stopped: 0,0001252 seconds, Stopping threads took: 0,0000287 seconds +2018-06-21T16:19:35.287+0200: 5,903: Total time for which application threads were stopped: 0,0001945 seconds, Stopping threads took: 0,0001048 seconds +2018-06-21T16:19:35.298+0200: 5,914: Total time for which application threads were stopped: 0,0000829 seconds, Stopping threads took: 0,0000346 seconds +2018-06-21T16:19:35.313+0200: 5,928: Total time for which application threads were stopped: 0,0001180 seconds, Stopping threads took: 0,0000163 seconds +2018-06-21T16:19:35.333+0200: 5,948: Total time for which application threads were stopped: 0,0001317 seconds, Stopping threads took: 0,0000577 seconds +2018-06-21T16:19:35.347+0200: 5,963: Total time for which application threads were stopped: 0,0001234 seconds, Stopping threads took: 0,0000179 seconds +2018-06-21T16:19:35.365+0200: 5,981: Total time for which application threads were stopped: 0,0000420 seconds, Stopping threads took: 0,0000150 seconds +2018-06-21T16:19:35.373+0200: 5,989: Total time for which application threads were stopped: 0,0001179 seconds, Stopping threads took: 0,0000146 seconds +2018-06-21T16:19:35.396+0200: 6,012: Total time for which application threads were stopped: 0,0001442 seconds, Stopping threads took: 0,0000178 seconds +2018-06-21T16:19:35.414+0200: 6,030: Total time for which application threads were stopped: 0,0001545 seconds, Stopping threads took: 0,0000315 seconds +2018-06-21T16:19:35.427+0200: 6,043: Total time for which application threads were stopped: 0,0001648 seconds, Stopping threads took: 0,0000369 seconds +2018-06-21T16:19:35.439+0200: 6,055: Total time for which application threads were stopped: 0,0001413 seconds, Stopping threads took: 0,0000149 seconds +2018-06-21T16:19:35.463+0200: 6,079: Total time for which application threads were stopped: 0,0001395 seconds, Stopping threads took: 0,0000330 seconds +2018-06-21T16:19:35.473+0200: 6,089: Total time for which application threads were stopped: 0,0001676 seconds, Stopping threads took: 0,0001264 seconds +2018-06-21T16:19:35.473+0200: 6,089: Total time for which application threads were stopped: 0,0000548 seconds, Stopping threads took: 0,0000240 seconds +2018-06-21T16:19:35.484+0200: 6,099: Total time for which application threads were stopped: 0,0001228 seconds, Stopping threads took: 0,0000149 seconds +2018-06-21T16:19:35.507+0200: 6,122: Total time for which application threads were stopped: 0,0001240 seconds, Stopping threads took: 0,0000163 seconds +2018-06-21T16:19:35.525+0200: 6,140: Total time for which application threads were stopped: 0,0001510 seconds, Stopping threads took: 0,0000277 seconds +2018-06-21T16:19:35.538+0200: 6,154: Total time for which application threads were stopped: 0,0001714 seconds, Stopping threads took: 0,0001385 seconds +2018-06-21T16:19:35.547+0200: 6,163: Total time for which application threads were stopped: 0,0001447 seconds, Stopping threads took: 0,0000297 seconds +2018-06-21T16:19:35.571+0200: 6,186: Total time for which application threads were stopped: 0,0001218 seconds, Stopping threads took: 0,0000149 seconds +2018-06-21T16:19:35.589+0200: 6,205: Total time for which application threads were stopped: 0,0001252 seconds, Stopping threads took: 0,0000164 seconds +2018-06-21T16:19:35.602+0200: 6,218: [GC (Allocation Failure) 2018-06-21T16:19:35.602+0200: 6,218: [ParNew +Desired survivor size 17891328 bytes, new threshold 1 (max 6) +- age 1: 28000016 bytes, 28000016 total +: 298719K->34670K(314560K), 0,0286764 secs] 312786K->67614K(1013632K), 0,0287483 secs] [Times: user=0,16 sys=0,00, real=0,02 secs] +2018-06-21T16:19:35.631+0200: 6,247: Total time for which application threads were stopped: 0,0288660 seconds, Stopping threads took: 0,0000301 seconds +2018-06-21T16:19:35.631+0200: 6,247: [GC (CMS Initial Mark) [1 CMS-initial-mark: 32943K(699072K)] 67621K(1013632K), 0,0029171 secs] [Times: user=0,02 sys=0,00, real=0,01 secs] +2018-06-21T16:19:35.634+0200: 6,250: Total time for which application threads were stopped: 0,0031098 seconds, Stopping threads took: 0,0001048 seconds +2018-06-21T16:19:35.634+0200: 6,250: [CMS-concurrent-mark-start] +2018-06-21T16:19:35.636+0200: 6,252: Total time for which application threads were stopped: 0,0000736 seconds, Stopping threads took: 0,0000194 seconds +2018-06-21T16:19:35.636+0200: 6,252: Total time for which application threads were stopped: 0,0000546 seconds, Stopping threads took: 0,0000242 seconds +2018-06-21T16:19:35.636+0200: 6,252: Total time for which application threads were stopped: 0,0000328 seconds, Stopping threads took: 0,0000167 seconds +2018-06-21T16:19:35.636+0200: 6,252: Total time for which application threads were stopped: 0,0000292 seconds, Stopping threads took: 0,0000130 seconds +2018-06-21T16:19:35.636+0200: 6,252: Total time for which application threads were stopped: 0,0000324 seconds, Stopping threads took: 0,0000189 seconds +2018-06-21T16:19:35.637+0200: 6,253: Total time for which application threads were stopped: 0,0000731 seconds, Stopping threads took: 0,0000274 seconds +2018-06-21T16:19:35.639+0200: 6,255: Total time for which application threads were stopped: 0,0001108 seconds, Stopping threads took: 0,0000379 seconds +2018-06-21T16:19:35.673+0200: 6,289: [CMS-concurrent-mark: 0,036/0,038 secs] [Times: user=0,20 sys=0,00, real=0,04 secs] +2018-06-21T16:19:35.673+0200: 6,289: [CMS-concurrent-preclean-start] +2018-06-21T16:19:35.675+0200: 6,291: [CMS-concurrent-preclean: 0,002/0,002 secs] [Times: user=0,01 sys=0,00, real=0,00 secs] +2018-06-21T16:19:35.675+0200: 6,291: [CMS-concurrent-abortable-preclean-start] +2018-06-21T16:19:35.690+0200: 6,305: Total time for which application threads were stopped: 0,0001550 seconds, Stopping threads took: 0,0000233 seconds +2018-06-21T16:19:35.703+0200: 6,319: Total time for which application threads were stopped: 0,0001066 seconds, Stopping threads took: 0,0000235 seconds +2018-06-21T16:19:35.727+0200: 6,343: Total time for which application threads were stopped: 0,0002107 seconds, Stopping threads took: 0,0000456 seconds +2018-06-21T16:19:35.753+0200: 6,369: Total time for which application threads were stopped: 0,0001447 seconds, Stopping threads took: 0,0000190 seconds +2018-06-21T16:19:35.771+0200: 6,386: Total time for which application threads were stopped: 0,0001609 seconds, Stopping threads took: 0,0000206 seconds +2018-06-21T16:19:35.810+0200: 6,426: Total time for which application threads were stopped: 0,0010584 seconds, Stopping threads took: 0,0009099 seconds +2018-06-21T16:19:35.846+0200: 6,462: Total time for which application threads were stopped: 0,0001429 seconds, Stopping threads took: 0,0000189 seconds +2018-06-21T16:19:35.879+0200: 6,495: Total time for which application threads were stopped: 0,0003391 seconds, Stopping threads took: 0,0000404 seconds +2018-06-21T16:19:35.880+0200: 6,496: Total time for which application threads were stopped: 0,0000637 seconds, Stopping threads took: 0,0000358 seconds +2018-06-21T16:19:35.899+0200: 6,514: Total time for which application threads were stopped: 0,0001579 seconds, Stopping threads took: 0,0000172 seconds +2018-06-21T16:19:35.929+0200: 6,545: Total time for which application threads were stopped: 0,0001314 seconds, Stopping threads took: 0,0000195 seconds +2018-06-21T16:19:35.962+0200: 6,578: Total time for which application threads were stopped: 0,0001608 seconds, Stopping threads took: 0,0000450 seconds +2018-06-21T16:19:35.963+0200: 6,579: Total time for which application threads were stopped: 0,0000408 seconds, Stopping threads took: 0,0000143 seconds +2018-06-21T16:19:35.964+0200: 6,579: Total time for which application threads were stopped: 0,0000260 seconds, Stopping threads took: 0,0000083 seconds +2018-06-21T16:19:35.964+0200: 6,579: Total time for which application threads were stopped: 0,0000319 seconds, Stopping threads took: 0,0000156 seconds +2018-06-21T16:19:35.966+0200: 6,581: Total time for which application threads were stopped: 0,0000536 seconds, Stopping threads took: 0,0000162 seconds +2018-06-21T16:19:35.993+0200: 6,608: Total time for which application threads were stopped: 0,0001556 seconds, Stopping threads took: 0,0000160 seconds +2018-06-21T16:19:36.037+0200: 6,652: Total time for which application threads were stopped: 0,0001490 seconds, Stopping threads took: 0,0000166 seconds +2018-06-21T16:19:36.099+0200: 6,715: Total time for which application threads were stopped: 0,0001714 seconds, Stopping threads took: 0,0000223 seconds +2018-06-21T16:19:36.140+0200: 6,756: Total time for which application threads were stopped: 0,0004401 seconds, Stopping threads took: 0,0000291 seconds +2018-06-21T16:19:36.157+0200: 6,773: Total time for which application threads were stopped: 0,0002316 seconds, Stopping threads took: 0,0000239 seconds +2018-06-21T16:19:36.196+0200: 6,812: Total time for which application threads were stopped: 0,0001152 seconds, Stopping threads took: 0,0000183 seconds +2018-06-21T16:19:36.231+0200: 6,847: Total time for which application threads were stopped: 0,0001397 seconds, Stopping threads took: 0,0000186 seconds +2018-06-21T16:19:36.282+0200: 6,898: Total time for which application threads were stopped: 0,0001504 seconds, Stopping threads took: 0,0000361 seconds +2018-06-21T16:19:36.312+0200: 6,928: Total time for which application threads were stopped: 0,0001507 seconds, Stopping threads took: 0,0000208 seconds +2018-06-21T16:19:36.342+0200: 6,958: Total time for which application threads were stopped: 0,0001461 seconds, Stopping threads took: 0,0000232 seconds +2018-06-21T16:19:36.368+0200: 6,984: Total time for which application threads were stopped: 0,0001840 seconds, Stopping threads took: 0,0000224 seconds +2018-06-21T16:19:36.417+0200: 7,033: Total time for which application threads were stopped: 0,0001701 seconds, Stopping threads took: 0,0000205 seconds +2018-06-21T16:19:36.437+0200: 7,053: Total time for which application threads were stopped: 0,0001714 seconds, Stopping threads took: 0,0000216 seconds +2018-06-21T16:19:36.457+0200: 7,073: Total time for which application threads were stopped: 0,0000791 seconds, Stopping threads took: 0,0000282 seconds +2018-06-21T16:19:36.471+0200: 7,087: Total time for which application threads were stopped: 0,0002023 seconds, Stopping threads took: 0,0000211 seconds +2018-06-21T16:19:36.486+0200: 7,102: Total time for which application threads were stopped: 0,0004347 seconds, Stopping threads took: 0,0000228 seconds +2018-06-21T16:19:36.491+0200: 7,107: Total time for which application threads were stopped: 0,0001578 seconds, Stopping threads took: 0,0000177 seconds +2018-06-21T16:19:36.513+0200: 7,129: Total time for which application threads were stopped: 0,0001691 seconds, Stopping threads took: 0,0000205 seconds +2018-06-21T16:19:36.549+0200: 7,165: Total time for which application threads were stopped: 0,0002330 seconds, Stopping threads took: 0,0000789 seconds +2018-06-21T16:19:36.574+0200: 7,190: Total time for which application threads were stopped: 0,0001466 seconds, Stopping threads took: 0,0000209 seconds +2018-06-21T16:19:36.586+0200: 7,202: Total time for which application threads were stopped: 0,0001317 seconds, Stopping threads took: 0,0000215 seconds +2018-06-21T16:19:36.595+0200: 7,211: Total time for which application threads were stopped: 0,0003354 seconds, Stopping threads took: 0,0000177 seconds +2018-06-21T16:19:36.605+0200: 7,221: Total time for which application threads were stopped: 0,0001499 seconds, Stopping threads took: 0,0000231 seconds +2018-06-21T16:19:36.606+0200: 7,221: Total time for which application threads were stopped: 0,0000600 seconds, Stopping threads took: 0,0000229 seconds +2018-06-21T16:19:36.606+0200: 7,222: Total time for which application threads were stopped: 0,0000356 seconds, Stopping threads took: 0,0000170 seconds +2018-06-21T16:19:36.606+0200: 7,222: Total time for which application threads were stopped: 0,0000320 seconds, Stopping threads took: 0,0000113 seconds +2018-06-21T16:19:36.607+0200: 7,223: Total time for which application threads were stopped: 0,0000433 seconds, Stopping threads took: 0,0000164 seconds +2018-06-21T16:19:36.607+0200: 7,223: Total time for which application threads were stopped: 0,0000385 seconds, Stopping threads took: 0,0000098 seconds +2018-06-21T16:19:36.607+0200: 7,223: Total time for which application threads were stopped: 0,0000340 seconds, Stopping threads took: 0,0000099 seconds +2018-06-21T16:19:36.608+0200: 7,224: Total time for which application threads were stopped: 0,0000384 seconds, Stopping threads took: 0,0000127 seconds +2018-06-21T16:19:36.608+0200: 7,224: Total time for which application threads were stopped: 0,0000271 seconds, Stopping threads took: 0,0000096 seconds +2018-06-21T16:19:36.609+0200: 7,224: Total time for which application threads were stopped: 0,0000268 seconds, Stopping threads took: 0,0000107 seconds +2018-06-21T16:19:36.609+0200: 7,224: Total time for which application threads were stopped: 0,0000218 seconds, Stopping threads took: 0,0000080 seconds +2018-06-21T16:19:36.609+0200: 7,224: Total time for which application threads were stopped: 0,0000245 seconds, Stopping threads took: 0,0000104 seconds +2018-06-21T16:19:36.609+0200: 7,224: Total time for which application threads were stopped: 0,0000223 seconds, Stopping threads took: 0,0000080 seconds +2018-06-21T16:19:36.609+0200: 7,224: Total time for which application threads were stopped: 0,0000223 seconds, Stopping threads took: 0,0000080 seconds +2018-06-21T16:19:36.609+0200: 7,224: Total time for which application threads were stopped: 0,0000215 seconds, Stopping threads took: 0,0000079 seconds +2018-06-21T16:19:36.609+0200: 7,225: Total time for which application threads were stopped: 0,0000217 seconds, Stopping threads took: 0,0000080 seconds +2018-06-21T16:19:36.609+0200: 7,225: Total time for which application threads were stopped: 0,0000276 seconds, Stopping threads took: 0,0000085 seconds +2018-06-21T16:19:36.609+0200: 7,225: Total time for which application threads were stopped: 0,0000487 seconds, Stopping threads took: 0,0000146 seconds +2018-06-21T16:19:36.609+0200: 7,225: Total time for which application threads were stopped: 0,0000556 seconds, Stopping threads took: 0,0000127 seconds +2018-06-21T16:19:36.610+0200: 7,225: Total time for which application threads were stopped: 0,0000365 seconds, Stopping threads took: 0,0000109 seconds +2018-06-21T16:19:36.610+0200: 7,225: Total time for which application threads were stopped: 0,0000334 seconds, Stopping threads took: 0,0000104 seconds +2018-06-21T16:19:36.611+0200: 7,227: Total time for which application threads were stopped: 0,0000885 seconds, Stopping threads took: 0,0000372 seconds +2018-06-21T16:19:36.611+0200: 7,227: Total time for which application threads were stopped: 0,0000448 seconds, Stopping threads took: 0,0000150 seconds +2018-06-21T16:19:36.611+0200: 7,227: Total time for which application threads were stopped: 0,0000852 seconds, Stopping threads took: 0,0000603 seconds +2018-06-21T16:19:36.612+0200: 7,228: Total time for which application threads were stopped: 0,0000629 seconds, Stopping threads took: 0,0000205 seconds +2018-06-21T16:19:36.612+0200: 7,228: Total time for which application threads were stopped: 0,0000508 seconds, Stopping threads took: 0,0000176 seconds +2018-06-21T16:19:36.614+0200: 7,229: Total time for which application threads were stopped: 0,0000831 seconds, Stopping threads took: 0,0000261 seconds +2018-06-21T16:19:36.615+0200: 7,230: Total time for which application threads were stopped: 0,0000632 seconds, Stopping threads took: 0,0000198 seconds +2018-06-21T16:19:36.615+0200: 7,231: Total time for which application threads were stopped: 0,0000515 seconds, Stopping threads took: 0,0000199 seconds +2018-06-21T16:19:36.618+0200: 7,233: Total time for which application threads were stopped: 0,0004597 seconds, Stopping threads took: 0,0000194 seconds +2018-06-21T16:19:36.619+0200: 7,234: Total time for which application threads were stopped: 0,0000466 seconds, Stopping threads took: 0,0000161 seconds +2018-06-21T16:19:36.619+0200: 7,235: Total time for which application threads were stopped: 0,0000366 seconds, Stopping threads took: 0,0000174 seconds +2018-06-21T16:19:36.619+0200: 7,235: Total time for which application threads were stopped: 0,0000320 seconds, Stopping threads took: 0,0000092 seconds +2018-06-21T16:19:36.619+0200: 7,235: Total time for which application threads were stopped: 0,0000257 seconds, Stopping threads took: 0,0000098 seconds +2018-06-21T16:19:36.619+0200: 7,235: Total time for which application threads were stopped: 0,0000245 seconds, Stopping threads took: 0,0000090 seconds +2018-06-21T16:19:36.620+0200: 7,236: Total time for which application threads were stopped: 0,0000756 seconds, Stopping threads took: 0,0000476 seconds +2018-06-21T16:19:36.620+0200: 7,236: Total time for which application threads were stopped: 0,0000301 seconds, Stopping threads took: 0,0000100 seconds +2018-06-21T16:19:36.620+0200: 7,236: Total time for which application threads were stopped: 0,0000270 seconds, Stopping threads took: 0,0000103 seconds +2018-06-21T16:19:36.620+0200: 7,236: Total time for which application threads were stopped: 0,0000257 seconds, Stopping threads took: 0,0000093 seconds +2018-06-21T16:19:36.620+0200: 7,236: Total time for which application threads were stopped: 0,0000278 seconds, Stopping threads took: 0,0000108 seconds +2018-06-21T16:19:36.654+0200: 7,270: Total time for which application threads were stopped: 0,0001469 seconds, Stopping threads took: 0,0000281 seconds +2018-06-21T16:19:36.654+0200: 7,270: Total time for which application threads were stopped: 0,0002497 seconds, Stopping threads took: 0,0002174 seconds +2018-06-21T16:19:36.655+0200: 7,271: Total time for which application threads were stopped: 0,0000472 seconds, Stopping threads took: 0,0000109 seconds +2018-06-21T16:19:36.656+0200: 7,271: Total time for which application threads were stopped: 0,0000521 seconds, Stopping threads took: 0,0000280 seconds +2018-06-21T16:19:36.657+0200: 7,273: Total time for which application threads were stopped: 0,0001366 seconds, Stopping threads took: 0,0001057 seconds +2018-06-21T16:19:36.657+0200: 7,273: Total time for which application threads were stopped: 0,0000470 seconds, Stopping threads took: 0,0000220 seconds +2018-06-21T16:19:36.658+0200: 7,274: Total time for which application threads were stopped: 0,0001295 seconds, Stopping threads took: 0,0000863 seconds +2018-06-21T16:19:36.658+0200: 7,274: Total time for which application threads were stopped: 0,0000485 seconds, Stopping threads took: 0,0000251 seconds +2018-06-21T16:19:36.659+0200: 7,274: Total time for which application threads were stopped: 0,0000405 seconds, Stopping threads took: 0,0000103 seconds +2018-06-21T16:19:36.662+0200: 7,277: Total time for which application threads were stopped: 0,0020147 seconds, Stopping threads took: 0,0019677 seconds +2018-06-21T16:19:36.662+0200: 7,277: [CMS-concurrent-abortable-preclean: 0,969/0,987 secs] [Times: user=4,36 sys=0,02, real=0,99 secs] +2018-06-21T16:19:36.662+0200: 7,278: [GC (CMS Final Remark) [YG occupancy: 175119 K (314560 K)]2018-06-21T16:19:36.662+0200: 7,278: [Rescan (parallel) , 0,0127406 secs]2018-06-21T16:19:36.675+0200: 7,291: [weak refs processing, 0,0016489 secs]2018-06-21T16:19:36.677+0200: 7,292: [class unloading, 0,0056818 secs]2018-06-21T16:19:36.682+0200: 7,298: [scrub symbol table, 0,0073041 secs]2018-06-21T16:19:36.690+0200: 7,305: [scrub string table, 0,0005420 secs][1 CMS-remark: 32943K(699072K)] 208063K(1013632K), 0,0282249 secs] [Times: user=0,11 sys=0,00, real=0,02 secs] +2018-06-21T16:19:36.690+0200: 7,306: Total time for which application threads were stopped: 0,0286311 seconds, Stopping threads took: 0,0003614 seconds +2018-06-21T16:19:36.691+0200: 7,306: [CMS-concurrent-sweep-start] +2018-06-21T16:19:36.691+0200: 7,307: Total time for which application threads were stopped: 0,0001645 seconds, Stopping threads took: 0,0001096 seconds +2018-06-21T16:19:36.691+0200: 7,307: Total time for which application threads were stopped: 0,0001934 seconds, Stopping threads took: 0,0001465 seconds +2018-06-21T16:19:36.692+0200: 7,307: Total time for which application threads were stopped: 0,0001627 seconds, Stopping threads took: 0,0000884 seconds +2018-06-21T16:19:36.692+0200: 7,308: Total time for which application threads were stopped: 0,0000625 seconds, Stopping threads took: 0,0000332 seconds +2018-06-21T16:19:36.695+0200: 7,311: Total time for which application threads were stopped: 0,0000948 seconds, Stopping threads took: 0,0000317 seconds +2018-06-21T16:19:36.700+0200: 7,316: Total time for which application threads were stopped: 0,0001667 seconds, Stopping threads took: 0,0001101 seconds +2018-06-21T16:19:36.701+0200: 7,316: Total time for which application threads were stopped: 0,0001844 seconds, Stopping threads took: 0,0001426 seconds +2018-06-21T16:19:36.701+0200: 7,317: Total time for which application threads were stopped: 0,0000978 seconds, Stopping threads took: 0,0000510 seconds +2018-06-21T16:19:36.704+0200: 7,319: Total time for which application threads were stopped: 0,0000959 seconds, Stopping threads took: 0,0000561 seconds +2018-06-21T16:19:36.704+0200: 7,320: Total time for which application threads were stopped: 0,0000678 seconds, Stopping threads took: 0,0000401 seconds +2018-06-21T16:19:36.704+0200: 7,320: Total time for which application threads were stopped: 0,0000678 seconds, Stopping threads took: 0,0000363 seconds +2018-06-21T16:19:36.704+0200: 7,320: Total time for which application threads were stopped: 0,0001639 seconds, Stopping threads took: 0,0001377 seconds +2018-06-21T16:19:36.705+0200: 7,320: Total time for which application threads were stopped: 0,0001588 seconds, Stopping threads took: 0,0001264 seconds +2018-06-21T16:19:36.705+0200: 7,321: Total time for which application threads were stopped: 0,0001247 seconds, Stopping threads took: 0,0000990 seconds +2018-06-21T16:19:36.708+0200: 7,324: Total time for which application threads were stopped: 0,0001185 seconds, Stopping threads took: 0,0000424 seconds +2018-06-21T16:19:36.708+0200: 7,324: Total time for which application threads were stopped: 0,0002387 seconds, Stopping threads took: 0,0000428 seconds +2018-06-21T16:19:36.709+0200: 7,324: Total time for which application threads were stopped: 0,0000964 seconds, Stopping threads took: 0,0000336 seconds +2018-06-21T16:19:36.709+0200: 7,325: [CMS-concurrent-sweep: 0,011/0,019 secs] [Times: user=0,06 sys=0,01, real=0,02 secs] +2018-06-21T16:19:36.709+0200: 7,325: [CMS-concurrent-reset-start] +2018-06-21T16:19:36.710+0200: 7,326: [CMS-concurrent-reset: 0,001/0,001 secs] [Times: user=0,00 sys=0,00, real=0,00 secs] +2018-06-21T16:19:36.712+0200: 7,327: Total time for which application threads were stopped: 0,0000920 seconds, Stopping threads took: 0,0000397 seconds +2018-06-21T16:19:36.713+0200: 7,329: Total time for which application threads were stopped: 0,0001588 seconds, Stopping threads took: 0,0001059 seconds +2018-06-21T16:19:36.713+0200: 7,329: Total time for which application threads were stopped: 0,0000752 seconds, Stopping threads took: 0,0000348 seconds +2018-06-21T16:19:36.713+0200: 7,329: Total time for which application threads were stopped: 0,0001082 seconds, Stopping threads took: 0,0000710 seconds +2018-06-21T16:19:36.713+0200: 7,329: Total time for which application threads were stopped: 0,0000350 seconds, Stopping threads took: 0,0000094 seconds +2018-06-21T16:19:36.717+0200: 7,333: Total time for which application threads were stopped: 0,0001548 seconds, Stopping threads took: 0,0001102 seconds +2018-06-21T16:19:36.717+0200: 7,333: Total time for which application threads were stopped: 0,0000664 seconds, Stopping threads took: 0,0000315 seconds +2018-06-21T16:19:36.721+0200: 7,337: Total time for which application threads were stopped: 0,0000973 seconds, Stopping threads took: 0,0000332 seconds +2018-06-21T16:19:36.721+0200: 7,337: Total time for which application threads were stopped: 0,0002703 seconds, Stopping threads took: 0,0002072 seconds +2018-06-21T16:19:36.721+0200: 7,337: Total time for which application threads were stopped: 0,0000797 seconds, Stopping threads took: 0,0000374 seconds +2018-06-21T16:19:36.722+0200: 7,337: Total time for which application threads were stopped: 0,0000974 seconds, Stopping threads took: 0,0000657 seconds +2018-06-21T16:19:36.722+0200: 7,337: Total time for which application threads were stopped: 0,0000771 seconds, Stopping threads took: 0,0000517 seconds +2018-06-21T16:19:36.722+0200: 7,337: Total time for which application threads were stopped: 0,0000369 seconds, Stopping threads took: 0,0000118 seconds +2018-06-21T16:19:36.722+0200: 7,338: Total time for which application threads were stopped: 0,0001786 seconds, Stopping threads took: 0,0001405 seconds +2018-06-21T16:19:36.723+0200: 7,339: Total time for which application threads were stopped: 0,0000700 seconds, Stopping threads took: 0,0000317 seconds +2018-06-21T16:19:36.723+0200: 7,339: Total time for which application threads were stopped: 0,0000680 seconds, Stopping threads took: 0,0000321 seconds +2018-06-21T16:19:36.723+0200: 7,339: Total time for which application threads were stopped: 0,0001225 seconds, Stopping threads took: 0,0000869 seconds +2018-06-21T16:19:36.724+0200: 7,339: Total time for which application threads were stopped: 0,0004223 seconds, Stopping threads took: 0,0003867 seconds +2018-06-21T16:19:36.724+0200: 7,340: Total time for which application threads were stopped: 0,0000441 seconds, Stopping threads took: 0,0000130 seconds +2018-06-21T16:19:36.724+0200: 7,340: Total time for which application threads were stopped: 0,0000367 seconds, Stopping threads took: 0,0000088 seconds +2018-06-21T16:19:36.725+0200: 7,341: Total time for which application threads were stopped: 0,0001736 seconds, Stopping threads took: 0,0001256 seconds +2018-06-21T16:19:36.725+0200: 7,341: Total time for which application threads were stopped: 0,0000851 seconds, Stopping threads took: 0,0000342 seconds +2018-06-21T16:19:36.725+0200: 7,341: Total time for which application threads were stopped: 0,0000585 seconds, Stopping threads took: 0,0000259 seconds +2018-06-21T16:19:36.727+0200: 7,343: Total time for which application threads were stopped: 0,0001036 seconds, Stopping threads took: 0,0000316 seconds +2018-06-21T16:19:36.729+0200: 7,344: Total time for which application threads were stopped: 0,0001239 seconds, Stopping threads took: 0,0000557 seconds +2018-06-21T16:19:36.729+0200: 7,345: Total time for which application threads were stopped: 0,0001043 seconds, Stopping threads took: 0,0000624 seconds +2018-06-21T16:19:36.729+0200: 7,345: Total time for which application threads were stopped: 0,0000503 seconds, Stopping threads took: 0,0000221 seconds +2018-06-21T16:19:36.729+0200: 7,345: Total time for which application threads were stopped: 0,0000843 seconds, Stopping threads took: 0,0000412 seconds +2018-06-21T16:19:36.729+0200: 7,345: Total time for which application threads were stopped: 0,0000595 seconds, Stopping threads took: 0,0000255 seconds +2018-06-21T16:19:36.729+0200: 7,345: Total time for which application threads were stopped: 0,0000580 seconds, Stopping threads took: 0,0000235 seconds +2018-06-21T16:19:36.729+0200: 7,345: Total time for which application threads were stopped: 0,0000487 seconds, Stopping threads took: 0,0000088 seconds +2018-06-21T16:19:36.732+0200: 7,348: Total time for which application threads were stopped: 0,0000709 seconds, Stopping threads took: 0,0000193 seconds +2018-06-21T16:19:36.732+0200: 7,348: Total time for which application threads were stopped: 0,0000501 seconds, Stopping threads took: 0,0000208 seconds +2018-06-21T16:19:36.732+0200: 7,348: Total time for which application threads were stopped: 0,0001114 seconds, Stopping threads took: 0,0000518 seconds +2018-06-21T16:19:36.732+0200: 7,348: Total time for which application threads were stopped: 0,0000628 seconds, Stopping threads took: 0,0000244 seconds +2018-06-21T16:19:36.732+0200: 7,348: Total time for which application threads were stopped: 0,0000588 seconds, Stopping threads took: 0,0000318 seconds +2018-06-21T16:19:36.732+0200: 7,348: Total time for which application threads were stopped: 0,0000529 seconds, Stopping threads took: 0,0000230 seconds +2018-06-21T16:19:36.732+0200: 7,348: Total time for which application threads were stopped: 0,0000780 seconds, Stopping threads took: 0,0000226 seconds +2018-06-21T16:19:36.733+0200: 7,348: Total time for which application threads were stopped: 0,0000682 seconds, Stopping threads took: 0,0000228 seconds +2018-06-21T16:19:36.733+0200: 7,348: Total time for which application threads were stopped: 0,0001219 seconds, Stopping threads took: 0,0000789 seconds +2018-06-21T16:19:36.733+0200: 7,349: Total time for which application threads were stopped: 0,0001979 seconds, Stopping threads took: 0,0000281 seconds +2018-06-21T16:19:36.734+0200: 7,349: Total time for which application threads were stopped: 0,0001593 seconds, Stopping threads took: 0,0000187 seconds +2018-06-21T16:19:36.735+0200: 7,351: Total time for which application threads were stopped: 0,0000918 seconds, Stopping threads took: 0,0000263 seconds +2018-06-21T16:19:36.735+0200: 7,351: Total time for which application threads were stopped: 0,0000669 seconds, Stopping threads took: 0,0000316 seconds +2018-06-21T16:19:36.735+0200: 7,351: Total time for which application threads were stopped: 0,0000688 seconds, Stopping threads took: 0,0000295 seconds +2018-06-21T16:19:36.736+0200: 7,352: Total time for which application threads were stopped: 0,0001119 seconds, Stopping threads took: 0,0000500 seconds +2018-06-21T16:19:36.736+0200: 7,352: Total time for which application threads were stopped: 0,0000740 seconds, Stopping threads took: 0,0000372 seconds +2018-06-21T16:19:36.738+0200: 7,354: Total time for which application threads were stopped: 0,0001111 seconds, Stopping threads took: 0,0000456 seconds +2018-06-21T16:19:36.741+0200: 7,357: Total time for which application threads were stopped: 0,0002595 seconds, Stopping threads took: 0,0001743 seconds +2018-06-21T16:19:36.751+0200: 7,366: Total time for which application threads were stopped: 0,0001050 seconds, Stopping threads took: 0,0000327 seconds +2018-06-21T16:19:36.756+0200: 7,372: Total time for which application threads were stopped: 0,0000649 seconds, Stopping threads took: 0,0000203 seconds +2018-06-21T16:19:36.757+0200: 7,372: Total time for which application threads were stopped: 0,0001130 seconds, Stopping threads took: 0,0000295 seconds +2018-06-21T16:19:36.773+0200: 7,388: Total time for which application threads were stopped: 0,0000756 seconds, Stopping threads took: 0,0000227 seconds +2018-06-21T16:19:36.784+0200: 7,400: Total time for which application threads were stopped: 0,0001543 seconds, Stopping threads took: 0,0000749 seconds +2018-06-21T16:19:36.787+0200: 7,403: Total time for which application threads were stopped: 0,0000810 seconds, Stopping threads took: 0,0000327 seconds +2018-06-21T16:19:36.787+0200: 7,403: Total time for which application threads were stopped: 0,0000786 seconds, Stopping threads took: 0,0000247 seconds +2018-06-21T16:19:36.790+0200: 7,406: Total time for which application threads were stopped: 0,0001804 seconds, Stopping threads took: 0,0000897 seconds +2018-06-21T16:19:36.790+0200: 7,406: Total time for which application threads were stopped: 0,0002102 seconds, Stopping threads took: 0,0001413 seconds +2018-06-21T16:19:36.792+0200: 7,408: Total time for which application threads were stopped: 0,0001066 seconds, Stopping threads took: 0,0000336 seconds +2018-06-21T16:19:36.797+0200: 7,413: Total time for which application threads were stopped: 0,0001519 seconds, Stopping threads took: 0,0000788 seconds +2018-06-21T16:19:36.798+0200: 7,413: Total time for which application threads were stopped: 0,0001385 seconds, Stopping threads took: 0,0000713 seconds +2018-06-21T16:19:37.697+0200: 8,312: Total time for which application threads were stopped: 0,0001907 seconds, Stopping threads took: 0,0001266 seconds +2018-06-21T16:19:37.697+0200: 8,313: Total time for which application threads were stopped: 0,0001083 seconds, Stopping threads took: 0,0000563 seconds +2018-06-21T16:19:37.697+0200: 8,313: Total time for which application threads were stopped: 0,0001125 seconds, Stopping threads took: 0,0000572 seconds +2018-06-21T16:19:37.698+0200: 8,313: Total time for which application threads were stopped: 0,0001083 seconds, Stopping threads took: 0,0000679 seconds +2018-06-21T16:19:37.698+0200: 8,314: Total time for which application threads were stopped: 0,0000898 seconds, Stopping threads took: 0,0000442 seconds +2018-06-21T16:19:37.698+0200: 8,314: Total time for which application threads were stopped: 0,0000794 seconds, Stopping threads took: 0,0000426 seconds +2018-06-21T16:19:37.701+0200: 8,316: Total time for which application threads were stopped: 0,0026478 seconds, Stopping threads took: 0,0026042 seconds +2018-06-21T16:19:37.701+0200: 8,317: Total time for which application threads were stopped: 0,0002388 seconds, Stopping threads took: 0,0000483 seconds +2018-06-21T16:19:37.701+0200: 8,317: Total time for which application threads were stopped: 0,0000479 seconds, Stopping threads took: 0,0000111 seconds +2018-06-21T16:19:37.701+0200: 8,317: Total time for which application threads were stopped: 0,0000859 seconds, Stopping threads took: 0,0000512 seconds +2018-06-21T16:19:37.702+0200: 8,317: Total time for which application threads were stopped: 0,0002913 seconds, Stopping threads took: 0,0001077 seconds +2018-06-21T16:19:37.702+0200: 8,318: Total time for which application threads were stopped: 0,0001444 seconds, Stopping threads took: 0,0001014 seconds +2018-06-21T16:19:37.702+0200: 8,318: Total time for which application threads were stopped: 0,0001019 seconds, Stopping threads took: 0,0000619 seconds +2018-06-21T16:19:37.702+0200: 8,318: Total time for which application threads were stopped: 0,0001099 seconds, Stopping threads took: 0,0000583 seconds +2018-06-21T16:19:37.702+0200: 8,318: Total time for which application threads were stopped: 0,0000630 seconds, Stopping threads took: 0,0000249 seconds +2018-06-21T16:19:37.702+0200: 8,318: Total time for which application threads were stopped: 0,0000903 seconds, Stopping threads took: 0,0000341 seconds +2018-06-21T16:19:37.703+0200: 8,319: Total time for which application threads were stopped: 0,0001183 seconds, Stopping threads took: 0,0000459 seconds +2018-06-21T16:19:37.710+0200: 8,326: Total time for which application threads were stopped: 0,0021048 seconds, Stopping threads took: 0,0019991 seconds +2018-06-21T16:19:37.711+0200: 8,326: Total time for which application threads were stopped: 0,0004719 seconds, Stopping threads took: 0,0001904 seconds +2018-06-21T16:19:37.711+0200: 8,327: Total time for which application threads were stopped: 0,0001180 seconds, Stopping threads took: 0,0000381 seconds +2018-06-21T16:19:37.718+0200: 8,334: Total time for which application threads were stopped: 0,0049022 seconds, Stopping threads took: 0,0048242 seconds +2018-06-21T16:19:37.719+0200: 8,335: Total time for which application threads were stopped: 0,0001618 seconds, Stopping threads took: 0,0001094 seconds +2018-06-21T16:19:37.719+0200: 8,335: Total time for which application threads were stopped: 0,0001051 seconds, Stopping threads took: 0,0000673 seconds +2018-06-21T16:19:37.721+0200: 8,337: Total time for which application threads were stopped: 0,0007433 seconds, Stopping threads took: 0,0006720 seconds +2018-06-21T16:19:37.721+0200: 8,337: Total time for which application threads were stopped: 0,0001669 seconds, Stopping threads took: 0,0001159 seconds +2018-06-21T16:19:37.722+0200: 8,338: Total time for which application threads were stopped: 0,0001265 seconds, Stopping threads took: 0,0000627 seconds +2018-06-21T16:19:37.722+0200: 8,338: Total time for which application threads were stopped: 0,0001063 seconds, Stopping threads took: 0,0000612 seconds +2018-06-21T16:19:37.723+0200: 8,339: Total time for which application threads were stopped: 0,0000996 seconds, Stopping threads took: 0,0000462 seconds +2018-06-21T16:19:38.696+0200: 9,312: Total time for which application threads were stopped: 0,0002473 seconds, Stopping threads took: 0,0001541 seconds +2018-06-21T16:19:38.697+0200: 9,313: Total time for which application threads were stopped: 0,0001878 seconds, Stopping threads took: 0,0001177 seconds +2018-06-21T16:19:38.697+0200: 9,313: Total time for which application threads were stopped: 0,0000949 seconds, Stopping threads took: 0,0000427 seconds +2018-06-21T16:19:38.697+0200: 9,313: Total time for which application threads were stopped: 0,0001196 seconds, Stopping threads took: 0,0000605 seconds +2018-06-21T16:19:38.698+0200: 9,313: Total time for which application threads were stopped: 0,0001880 seconds, Stopping threads took: 0,0001169 seconds +2018-06-21T16:19:38.698+0200: 9,314: Total time for which application threads were stopped: 0,0001411 seconds, Stopping threads took: 0,0000364 seconds +2018-06-21T16:19:38.699+0200: 9,315: Total time for which application threads were stopped: 0,0002268 seconds, Stopping threads took: 0,0001259 seconds +2018-06-21T16:19:38.700+0200: 9,315: Total time for which application threads were stopped: 0,0001201 seconds, Stopping threads took: 0,0000299 seconds +2018-06-21T16:19:38.700+0200: 9,316: Total time for which application threads were stopped: 0,0003461 seconds, Stopping threads took: 0,0000787 seconds +2018-06-21T16:19:38.711+0200: 9,326: Total time for which application threads were stopped: 0,0006402 seconds, Stopping threads took: 0,0005589 seconds +2018-06-21T16:19:38.711+0200: 9,327: [GC (Allocation Failure) 2018-06-21T16:19:38.711+0200: 9,327: [ParNew +Desired survivor size 17891328 bytes, new threshold 1 (max 6) +- age 1: 32411088 bytes, 32411088 total +: 297978K->34944K(314560K), 0,0222015 secs] 330567K->126269K(1013632K), 0,0222806 secs] [Times: user=0,13 sys=0,00, real=0,03 secs] +2018-06-21T16:19:38.733+0200: 9,349: Total time for which application threads were stopped: 0,0224493 seconds, Stopping threads took: 0,0000372 seconds +2018-06-21T16:19:38.735+0200: 9,351: Total time for which application threads were stopped: 0,0016127 seconds, Stopping threads took: 0,0015160 seconds +2018-06-21T16:19:38.736+0200: 9,351: Total time for which application threads were stopped: 0,0002023 seconds, Stopping threads took: 0,0001467 seconds +2018-06-21T16:19:38.737+0200: 9,353: Total time for which application threads were stopped: 0,0012289 seconds, Stopping threads took: 0,0011752 seconds +2018-06-21T16:19:38.737+0200: 9,353: Total time for which application threads were stopped: 0,0001859 seconds, Stopping threads took: 0,0001228 seconds +2018-06-21T16:19:38.738+0200: 9,353: Total time for which application threads were stopped: 0,0000980 seconds, Stopping threads took: 0,0000555 seconds +2018-06-21T16:19:38.738+0200: 9,354: Total time for which application threads were stopped: 0,0001579 seconds, Stopping threads took: 0,0001118 seconds +2018-06-21T16:19:38.738+0200: 9,354: Total time for which application threads were stopped: 0,0001228 seconds, Stopping threads took: 0,0000976 seconds +2018-06-21T16:19:38.738+0200: 9,354: Total time for which application threads were stopped: 0,0000720 seconds, Stopping threads took: 0,0000448 seconds +2018-06-21T16:19:38.738+0200: 9,354: Total time for which application threads were stopped: 0,0000700 seconds, Stopping threads took: 0,0000452 seconds +2018-06-21T16:19:38.738+0200: 9,354: Total time for which application threads were stopped: 0,0000514 seconds, Stopping threads took: 0,0000260 seconds +2018-06-21T16:19:38.739+0200: 9,354: Total time for which application threads were stopped: 0,0000569 seconds, Stopping threads took: 0,0000332 seconds +2018-06-21T16:19:38.739+0200: 9,354: Total time for which application threads were stopped: 0,0001486 seconds, Stopping threads took: 0,0000209 seconds +2018-06-21T16:19:38.739+0200: 9,355: Total time for which application threads were stopped: 0,0000683 seconds, Stopping threads took: 0,0000330 seconds +2018-06-21T16:19:38.739+0200: 9,355: Total time for which application threads were stopped: 0,0000539 seconds, Stopping threads took: 0,0000290 seconds +2018-06-21T16:19:38.739+0200: 9,355: Total time for which application threads were stopped: 0,0000414 seconds, Stopping threads took: 0,0000149 seconds +2018-06-21T16:19:38.739+0200: 9,355: Total time for which application threads were stopped: 0,0001504 seconds, Stopping threads took: 0,0000252 seconds +2018-06-21T16:19:38.740+0200: 9,355: Total time for which application threads were stopped: 0,0000582 seconds, Stopping threads took: 0,0000197 seconds +2018-06-21T16:19:38.740+0200: 9,355: Total time for which application threads were stopped: 0,0000815 seconds, Stopping threads took: 0,0000278 seconds +2018-06-21T16:19:39.710+0200: 10,326: Total time for which application threads were stopped: 0,0004019 seconds, Stopping threads took: 0,0002039 seconds +2018-06-21T16:19:39.710+0200: 10,326: Total time for which application threads were stopped: 0,0001110 seconds, Stopping threads took: 0,0000226 seconds +2018-06-21T16:19:39.786+0200: 10,401: Total time for which application threads were stopped: 0,0003021 seconds, Stopping threads took: 0,0000933 seconds +2018-06-21T16:19:39.787+0200: 10,403: Total time for which application threads were stopped: 0,0003172 seconds, Stopping threads took: 0,0001414 seconds +2018-06-21T16:19:39.789+0200: 10,404: Total time for which application threads were stopped: 0,0002826 seconds, Stopping threads took: 0,0001557 seconds +2018-06-21T16:19:39.793+0200: 10,409: Total time for which application threads were stopped: 0,0004366 seconds, Stopping threads took: 0,0003150 seconds +2018-06-21T16:19:39.809+0200: 10,424: Total time for which application threads were stopped: 0,0005314 seconds, Stopping threads took: 0,0004293 seconds +2018-06-21T16:19:39.809+0200: 10,425: Total time for which application threads were stopped: 0,0001910 seconds, Stopping threads took: 0,0001255 seconds +2018-06-21T16:19:39.810+0200: 10,426: Total time for which application threads were stopped: 0,0001819 seconds, Stopping threads took: 0,0000707 seconds +2018-06-21T16:19:39.811+0200: 10,426: Total time for which application threads were stopped: 0,0001157 seconds, Stopping threads took: 0,0000456 seconds +2018-06-21T16:19:39.812+0200: 10,428: Total time for which application threads were stopped: 0,0001761 seconds, Stopping threads took: 0,0000651 seconds +2018-06-21T16:19:39.813+0200: 10,429: Total time for which application threads were stopped: 0,0004011 seconds, Stopping threads took: 0,0003162 seconds +2018-06-21T16:19:39.814+0200: 10,430: Total time for which application threads were stopped: 0,0001678 seconds, Stopping threads took: 0,0000787 seconds +2018-06-21T16:19:39.815+0200: 10,430: Total time for which application threads were stopped: 0,0002697 seconds, Stopping threads took: 0,0000179 seconds +2018-06-21T16:19:39.815+0200: 10,431: Total time for which application threads were stopped: 0,0001808 seconds, Stopping threads took: 0,0000997 seconds +2018-06-21T16:19:39.836+0200: 10,452: Total time for which application threads were stopped: 0,0001620 seconds, Stopping threads took: 0,0000395 seconds +2018-06-21T16:19:39.841+0200: 10,457: Total time for which application threads were stopped: 0,0001510 seconds, Stopping threads took: 0,0000544 seconds +2018-06-21T16:19:39.845+0200: 10,461: Total time for which application threads were stopped: 0,0001403 seconds, Stopping threads took: 0,0000570 seconds +2018-06-21T16:19:39.845+0200: 10,461: Total time for which application threads were stopped: 0,0000824 seconds, Stopping threads took: 0,0000292 seconds +2018-06-21T16:19:39.846+0200: 10,461: Total time for which application threads were stopped: 0,0000998 seconds, Stopping threads took: 0,0000468 seconds +2018-06-21T16:19:39.846+0200: 10,461: Total time for which application threads were stopped: 0,0000772 seconds, Stopping threads took: 0,0000308 seconds +2018-06-21T16:19:39.846+0200: 10,462: Total time for which application threads were stopped: 0,0001192 seconds, Stopping threads took: 0,0000300 seconds +2018-06-21T16:19:39.852+0200: 10,467: Total time for which application threads were stopped: 0,0001075 seconds, Stopping threads took: 0,0000389 seconds +2018-06-21T16:19:39.852+0200: 10,467: Total time for which application threads were stopped: 0,0000470 seconds, Stopping threads took: 0,0000105 seconds +2018-06-21T16:19:39.876+0200: 10,492: Total time for which application threads were stopped: 0,0001202 seconds, Stopping threads took: 0,0000458 seconds +2018-06-21T16:19:39.876+0200: 10,492: Total time for which application threads were stopped: 0,0002140 seconds, Stopping threads took: 0,0001565 seconds +2018-06-21T16:19:39.877+0200: 10,492: Total time for which application threads were stopped: 0,0002656 seconds, Stopping threads took: 0,0002157 seconds +2018-06-21T16:19:39.879+0200: 10,494: Total time for which application threads were stopped: 0,0004676 seconds, Stopping threads took: 0,0003802 seconds +2018-06-21T16:19:39.880+0200: 10,496: Total time for which application threads were stopped: 0,0001318 seconds, Stopping threads took: 0,0000500 seconds +2018-06-21T16:19:39.885+0200: 10,500: Total time for which application threads were stopped: 0,0002130 seconds, Stopping threads took: 0,0001262 seconds +2018-06-21T16:19:39.885+0200: 10,501: Total time for which application threads were stopped: 0,0001261 seconds, Stopping threads took: 0,0000398 seconds +2018-06-21T16:19:39.885+0200: 10,501: Total time for which application threads were stopped: 0,0001084 seconds, Stopping threads took: 0,0000298 seconds +2018-06-21T16:19:39.887+0200: 10,503: Total time for which application threads were stopped: 0,0001445 seconds, Stopping threads took: 0,0000653 seconds +2018-06-21T16:19:39.887+0200: 10,503: Total time for which application threads were stopped: 0,0000524 seconds, Stopping threads took: 0,0000123 seconds +2018-06-21T16:19:40.006+0200: 10,621: Total time for which application threads were stopped: 0,0002535 seconds, Stopping threads took: 0,0000443 seconds +2018-06-21T16:19:40.036+0200: 10,651: Total time for which application threads were stopped: 0,0002160 seconds, Stopping threads took: 0,0001035 seconds +2018-06-21T16:19:40.076+0200: 10,692: Total time for which application threads were stopped: 0,0002994 seconds, Stopping threads took: 0,0001868 seconds +2018-06-21T16:19:40.085+0200: 10,701: Total time for which application threads were stopped: 0,0001586 seconds, Stopping threads took: 0,0000594 seconds +2018-06-21T16:19:40.086+0200: 10,702: Total time for which application threads were stopped: 0,0001219 seconds, Stopping threads took: 0,0000575 seconds +2018-06-21T16:19:40.087+0200: 10,702: Total time for which application threads were stopped: 0,0000613 seconds, Stopping threads took: 0,0000220 seconds +2018-06-21T16:19:40.108+0200: 10,724: Total time for which application threads were stopped: 0,0001280 seconds, Stopping threads took: 0,0000343 seconds +2018-06-21T16:19:40.147+0200: 10,763: Total time for which application threads were stopped: 0,0001568 seconds, Stopping threads took: 0,0000389 seconds +2018-06-21T16:19:40.179+0200: 10,794: Total time for which application threads were stopped: 0,0001824 seconds, Stopping threads took: 0,0000683 seconds +2018-06-21T16:19:40.205+0200: 10,821: Total time for which application threads were stopped: 0,0001372 seconds, Stopping threads took: 0,0000369 seconds +2018-06-21T16:19:40.265+0200: 10,881: Total time for which application threads were stopped: 0,0001336 seconds, Stopping threads took: 0,0000409 seconds +2018-06-21T16:19:40.292+0200: 10,907: Total time for which application threads were stopped: 0,0001177 seconds, Stopping threads took: 0,0000324 seconds +2018-06-21T16:19:41.292+0200: 11,908: Total time for which application threads were stopped: 0,0002347 seconds, Stopping threads took: 0,0000553 seconds +2018-06-21T16:19:42.292+0200: 12,908: Total time for which application threads were stopped: 0,0001690 seconds, Stopping threads took: 0,0000444 seconds +2018-06-21T16:19:43.293+0200: 13,909: Total time for which application threads were stopped: 0,0002209 seconds, Stopping threads took: 0,0000618 seconds +2018-06-21T16:19:44.293+0200: 14,909: Total time for which application threads were stopped: 0,0002280 seconds, Stopping threads took: 0,0000536 seconds +2018-06-21T16:19:45.294+0200: 15,909: Total time for which application threads were stopped: 0,0002563 seconds, Stopping threads took: 0,0000443 seconds +2018-06-21T16:19:47.733+0200: 18,349: Total time for which application threads were stopped: 0,0004209 seconds, Stopping threads took: 0,0001824 seconds +2018-06-21T16:19:47.743+0200: 18,358: Total time for which application threads were stopped: 0,0003091 seconds, Stopping threads took: 0,0000722 seconds +2018-06-21T16:19:47.746+0200: 18,362: Total time for which application threads were stopped: 0,0017465 seconds, Stopping threads took: 0,0001387 seconds +2018-06-21T16:19:47.753+0200: 18,369: Total time for which application threads were stopped: 0,0046033 seconds, Stopping threads took: 0,0043909 seconds +2018-06-21T16:19:47.755+0200: 18,371: Total time for which application threads were stopped: 0,0005923 seconds, Stopping threads took: 0,0003023 seconds +2018-06-21T16:19:47.755+0200: 18,371: Total time for which application threads were stopped: 0,0003184 seconds, Stopping threads took: 0,0001394 seconds +2018-06-21T16:19:47.756+0200: 18,372: Total time for which application threads were stopped: 0,0003198 seconds, Stopping threads took: 0,0001605 seconds +2018-06-21T16:19:47.756+0200: 18,372: Total time for which application threads were stopped: 0,0002243 seconds, Stopping threads took: 0,0001173 seconds +2018-06-21T16:19:47.757+0200: 18,372: Total time for which application threads were stopped: 0,0002375 seconds, Stopping threads took: 0,0000601 seconds +2018-06-21T16:19:47.757+0200: 18,373: Total time for which application threads were stopped: 0,0001903 seconds, Stopping threads took: 0,0000555 seconds +2018-06-21T16:19:47.758+0200: 18,373: Total time for which application threads were stopped: 0,0002710 seconds, Stopping threads took: 0,0000853 seconds +2018-06-21T16:19:47.764+0200: 18,379: Total time for which application threads were stopped: 0,0005375 seconds, Stopping threads took: 0,0001210 seconds +2018-06-21T16:19:47.764+0200: 18,380: Total time for which application threads were stopped: 0,0001739 seconds, Stopping threads took: 0,0000524 seconds +2018-06-21T16:19:47.765+0200: 18,380: Total time for which application threads were stopped: 0,0001134 seconds, Stopping threads took: 0,0000138 seconds +2018-06-21T16:19:47.765+0200: 18,381: Total time for which application threads were stopped: 0,0001214 seconds, Stopping threads took: 0,0000236 seconds +2018-06-21T16:19:47.765+0200: 18,381: Total time for which application threads were stopped: 0,0001171 seconds, Stopping threads took: 0,0000287 seconds +2018-06-21T16:19:47.765+0200: 18,381: Total time for which application threads were stopped: 0,0001012 seconds, Stopping threads took: 0,0000162 seconds +2018-06-21T16:19:47.765+0200: 18,381: Total time for which application threads were stopped: 0,0000761 seconds, Stopping threads took: 0,0000126 seconds +2018-06-21T16:19:47.765+0200: 18,381: Total time for which application threads were stopped: 0,0000721 seconds, Stopping threads took: 0,0000121 seconds +2018-06-21T16:19:47.766+0200: 18,381: Total time for which application threads were stopped: 0,0000722 seconds, Stopping threads took: 0,0000110 seconds +2018-06-21T16:19:47.768+0200: 18,384: Total time for which application threads were stopped: 0,0001734 seconds, Stopping threads took: 0,0000367 seconds +2018-06-21T16:19:47.768+0200: 18,384: Total time for which application threads were stopped: 0,0001242 seconds, Stopping threads took: 0,0000470 seconds +2018-06-21T16:19:48.080+0200: 18,695: Total time for which application threads were stopped: 0,0003592 seconds, Stopping threads took: 0,0001250 seconds +2018-06-21T16:19:48.080+0200: 18,696: Total time for which application threads were stopped: 0,0002882 seconds, Stopping threads took: 0,0001154 seconds +2018-06-21T16:19:48.082+0200: 18,698: Total time for which application threads were stopped: 0,0002055 seconds, Stopping threads took: 0,0000464 seconds +2018-06-21T16:19:48.083+0200: 18,698: Total time for which application threads were stopped: 0,0001870 seconds, Stopping threads took: 0,0000427 seconds +2018-06-21T16:19:48.083+0200: 18,699: Total time for which application threads were stopped: 0,0001599 seconds, Stopping threads took: 0,0000355 seconds +2018-06-21T16:19:48.090+0200: 18,705: Total time for which application threads were stopped: 0,0005611 seconds, Stopping threads took: 0,0004292 seconds +2018-06-21T16:19:48.090+0200: 18,706: Total time for which application threads were stopped: 0,0002832 seconds, Stopping threads took: 0,0001812 seconds +2018-06-21T16:19:48.091+0200: 18,706: Total time for which application threads were stopped: 0,0002833 seconds, Stopping threads took: 0,0001869 seconds +2018-06-21T16:19:48.091+0200: 18,707: Total time for which application threads were stopped: 0,0002451 seconds, Stopping threads took: 0,0001376 seconds +2018-06-21T16:19:48.092+0200: 18,708: Total time for which application threads were stopped: 0,0004004 seconds, Stopping threads took: 0,0002343 seconds +2018-06-21T16:19:48.092+0200: 18,708: Total time for which application threads were stopped: 0,0004856 seconds, Stopping threads took: 0,0001285 seconds +Heap + par new generation total 314560K, used 194992K [0x00000000c0000000, 0x00000000d5550000, 0x00000000d5550000) + eden space 279616K, 57% used [0x00000000c0000000, 0x00000000c9c4c150, 0x00000000d1110000) + from space 34944K, 100% used [0x00000000d3330000, 0x00000000d5550000, 0x00000000d5550000) + to space 34944K, 0% used [0x00000000d1110000, 0x00000000d1110000, 0x00000000d3330000) + concurrent mark-sweep generation total 699072K, used 91325K [0x00000000d5550000, 0x0000000100000000, 0x0000000100000000) + Metaspace used 64268K, capacity 69567K, committed 69748K, reserved 1107968K + class space used 9171K, capacity 10893K, committed 10904K, reserved 1048576K diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/test.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/test.log new file mode 100644 index 00000000..d5f893d4 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/test.log @@ -0,0 +1,3 @@ +2018-03-03T19:37:06.157+0500: 14597.826: [GC (CMS Initial Mark) [1 CMS-initial-mark: 131804K(174784K)] 142444K(253440K), 0.0021716 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] +2018-06-11T01:53:11.382+0000: 1396138.752: Total time for which application threads were stopped: 0.0083760 seconds, Stopping threads took: 0.0000702 seconds +2018-06-30T16:35:26.632+0500: 224.671: [GC (CMS Final Remark) [YG occupancy: 113198 K (157248 K)]224.671: [Rescan (parallel) , 0.0148273 secs]224.686: [weak refs processing, 0.0003647 secs]224.687: [class unloading, 0.0188407 secs]224.705: [scrub symbol table, 0.0100207 secs]224.715: [scrub string table, 0.0005253 secs][1 CMS-remark: 277821K(349568K)] 391020K(506816K), 0.0457689 secs] [Times: user=0.12 sys=0.00, real=0.04 secs] diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/test.log-expected.json new file mode 100644 index 00000000..c9d0621a --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/gc/test/test.log-expected.json @@ -0,0 +1,62 @@ +[ + { + "@timestamp": "2018-03-03T14:37:06.157Z", + "elasticsearch.gc.heap.size_kb": "253440", + "elasticsearch.gc.heap.used_kb": "142444", + "elasticsearch.gc.jvm_runtime_sec": "14597.826", + "elasticsearch.gc.old_gen.size_kb": "174784", + "elasticsearch.gc.old_gen.used_kb": "131804", + "elasticsearch.gc.phase.cpu_time.real_sec": "0.00", + "elasticsearch.gc.phase.cpu_time.sys_sec": "0.00", + "elasticsearch.gc.phase.cpu_time.user_sec": "0.01", + "elasticsearch.gc.phase.duration_sec": "0.0021716", + "elasticsearch.gc.phase.name": "CMS Initial Mark", + "fileset.module": "elasticsearch", + "fileset.name": "gc", + "input.type": "log", + "message": "2018-03-03T19:37:06.157+0500: 14597.826: [GC (CMS Initial Mark) [1 CMS-initial-mark: 131804K(174784K)] 142444K(253440K), 0.0021716 secs] [Times: user=0.01 sys=0.00, real=0.00 secs]", + "offset": 0, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-11T01:53:11.382Z", + "elasticsearch.gc.jvm_runtime_sec": "1396138.752", + "elasticsearch.gc.stopping_threads_time_sec": "0.0000702", + "elasticsearch.gc.threads_total_stop_time_sec": "0.0083760", + "fileset.module": "elasticsearch", + "fileset.name": "gc", + "input.type": "log", + "message": "2018-06-11T01:53:11.382+0000: 1396138.752: Total time for which application threads were stopped: 0.0083760 seconds, Stopping threads took: 0.0000702 seconds", + "offset": 181, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-30T11:35:26.632Z", + "elasticsearch.gc.heap.size_kb": "506816", + "elasticsearch.gc.heap.used_kb": "391020", + "elasticsearch.gc.jvm_runtime_sec": "224.671", + "elasticsearch.gc.old_gen.size_kb": "349568", + "elasticsearch.gc.old_gen.used_kb": "277821", + "elasticsearch.gc.phase.class_unload_time_sec": "0.0188407", + "elasticsearch.gc.phase.cpu_time.real_sec": "0.04", + "elasticsearch.gc.phase.cpu_time.sys_sec": "0.00", + "elasticsearch.gc.phase.cpu_time.user_sec": "0.12", + "elasticsearch.gc.phase.duration_sec": "0.0457689", + "elasticsearch.gc.phase.name": "CMS Final Remark", + "elasticsearch.gc.phase.parallel_rescan_time_sec": "0.0148273", + "elasticsearch.gc.phase.scrub_string_table_time_sec": "0.0005253", + "elasticsearch.gc.phase.scrub_symbol_table_time_sec": "0.0100207", + "elasticsearch.gc.phase.weak_refs_processing_time_sec": "0.0003647", + "elasticsearch.gc.young_gen.size_kb": "157248", + "elasticsearch.gc.young_gen.used_kb": "113198", + "fileset.module": "elasticsearch", + "fileset.name": "gc", + "input.type": "log", + "message": "2018-06-30T16:35:26.632+0500: 224.671: [GC (CMS Final Remark) [YG occupancy: 113198 K (157248 K)]224.671: [Rescan (parallel) , 0.0148273 secs]224.686: [weak refs processing, 0.0003647 secs]224.687: [class unloading, 0.0188407 secs]224.705: [scrub symbol table, 0.0100207 secs]224.715: [scrub string table, 0.0005253 secs][1 CMS-remark: 277821K(349568K)] 391020K(506816K), 0.0457689 secs] [Times: user=0.12 sys=0.00, real=0.04 secs]", + "offset": 339, + "prospector.type": "log", + "service.name": "elasticsearch" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/module.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/module.yml index 9ab9494e..54dcdd30 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/module.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/module.yml @@ -1,2 +1,3 @@ dashboards: + diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/_meta/fields.yml index 14ba5556..47bb4a96 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/_meta/fields.yml @@ -1,8 +1,29 @@ - name: server + description: "Server log file" type: group - description: > fields: - - name: component - type: keyword - description: > - Elasticsearch component. + - name: component + description: "Log component" + example: "o.e.c.m.MetaDataCreateIndexService" + type: keyword + - name: gc + description: "GC log" + type: group + fields: + - name: young + description: "Young GC" + example: "" + type: group + fields: + - name: one + description: "" + example: "" + type: long + - name: two + description: "" + example: "" + type: long + - name: gc_overhead + description: "" + example: "" + type: long diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/config/log.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/config/log.yml index 789d14fb..19a0839f 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/config/log.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/config/log.yml @@ -8,3 +8,8 @@ multiline: pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}' negate: true match: after + +fields: + service.name: "elasticsearch" + +fields_under_root: true diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/ingest/pipeline.json index 755c7da0..5145babf 100755 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/ingest/pipeline.json +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/ingest/pipeline.json @@ -9,42 +9,28 @@ } ], "processors": [ + { + "rename": { + "field": "@timestamp", + "target_field": "event.created" + } + }, { "grok": { "field": "message", "pattern_definitions": { - "GREEDYMULTILINE": "(.|\n)*" + "GREEDYMULTILINE": "(.|\n)*", + "INDEXNAME": "[a-zA-Z0-9_.-]*" }, "patterns": [ - "\\[%{TIMESTAMP_ISO8601:timestamp}\\]\\[%{LOGLEVEL:log.level}%{SPACE}?\\]\\[%{DATA:elasticsearch.server.component}%{SPACE}*\\]%{GREEDYMULTILINE:message}" + "\\[%{TIMESTAMP_ISO8601:elasticsearch.server.timestamp}\\]\\[%{LOGLEVEL:log.level}%{SPACE}?\\]\\[%{DATA:elasticsearch.server.component}%{SPACE}*\\](%{SPACE}*)?(\\[%{DATA:elasticsearch.node.name}\\])?(%{SPACE}*)?(\\[gc\\](\\[young\\]\\[%{NUMBER:elasticsearch.server.gc.young.one}\\]\\[%{NUMBER:elasticsearch.server.gc.young.two}\\]|\\[%{NUMBER:elasticsearch.server.gc_overhead}\\]))?%{SPACE}*((\\[%{INDEXNAME:elasticsearch.index.name}\\]|\\[%{INDEXNAME:elasticsearch.index.name}\\/%{DATA:elasticsearch.index.id}\\]))?%{SPACE}*%{GREEDYMULTILINE:message}" ] } }, { "rename": { - "field": "@timestamp", - "target_field": "read_timestamp" - } - }, - { - "date": { - "field": "timestamp", - "target_field": "@timestamp", - "formats": [ - "ISO8601", - "YYYY-MM-dd HH:mm:ss,SSS" - ] - } - }, - { - "remove": { - "field": "timestamp" - } - }, - { - "append": { - "field": "service.name", - "value": "elasticsearch" + "field": "elasticsearch.server.timestamp", + "target_field": "@timestamp" } } ] diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log index f5190a80..7cd1e008 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log @@ -1 +1,100 @@ [2018-05-17T08:29:12,177][INFO ][o.e.c.m.MetaDataCreateIndexService] [vWNJsZ3] [test-filebeat-modules] creating index, cause [auto(bulk api)], templates [test-filebeat-modules], shards [5]/[1], mappings [doc] +[2018-05-17T08:19:35,939][INFO ][o.e.n.Node ] [] initializing ... +[2018-05-17T08:19:36,089][INFO ][o.e.e.NodeEnvironment ] [vWNJsZ3] using [1] data paths, mounts [[/ (/dev/disk1s1)]], net usable_space [32.4gb], net total_space [233.5gb], types [apfs] +[2018-05-17T08:19:36,090][INFO ][o.e.e.NodeEnvironment ] [vWNJsZ3] heap size [990.7mb], compressed ordinary object pointers [true] +[2018-05-17T08:19:36,116][INFO ][o.e.n.Node ] node name [vWNJsZ3] derived from node ID [vWNJsZ3nTIKh5a1ai-ftYQ]; set [node.name] to override +[2018-05-17T08:23:48,941][INFO ][o.e.c.r.a.DiskThresholdMonitor] [vWNJsZ3] low disk watermark [85%] exceeded on [vWNJsZ3nTIKh5a1ai-ftYQ][vWNJsZ3][/Users/ruflin/Downloads/elasticsearch-6.2.4/data/nodes/0] free: 33.4gb[14.3%], replicas will not be assigned to this node +[2018-05-17T08:29:09,245][INFO ][o.e.c.m.MetaDataCreateIndexService] [vWNJsZ3] [filebeat-test-input] creating index, cause [auto(bulk api)], templates [filebeat-test-input], shards [5]/[1], mappings [doc] +[2018-05-17T08:29:09,576][INFO ][o.e.c.m.MetaDataMappingService] [vWNJsZ3] [filebeat-test-input/aOGgDwbURfCV57AScqbCgw] update_mapping [doc] +[2018-07-09T12:47:33,959][INFO ][o.e.c.m.MetaDataMappingService] [QGY1F5P] [.kibana/3tWftqb4RLKdyCAga9syGA] update_mapping [doc] +[2018-05-17T08:29:25,598][INFO ][o.e.n.Node ] [vWNJsZ3] closing ... +[2018-05-17T08:29:25,612][INFO ][o.e.n.Node ] [vWNJsZ3] closed +[2018-07-03T11:45:48,548][INFO ][o.e.d.z.ZenDiscovery ] [srvmulpvlsk252_md] master_left [{srvmulpvlsk250_md}{igrwSoPGSJ6u_5b8k26tgQ}{PuRqciBFRbiQvL2_lS7LrQ}{srvmulpvlsk250.loganalytics.santanderuk.corp}{180.39.9.91:9300}{ml.max_open_jobs=10, ml.enabled=true}], reason [failed to ping, tried [3] times, each with maximum [30s] timeout] +[2018-07-03T11:45:48,548][WARN ][o.e.d.z.ZenDiscovery ] [srvmulpvlsk252_md] master left (reason = failed to ping, tried [3] times, each with maximum [30s] timeout), current nodes: nodes: + {srvmulpvlsk252_md}{uc5xdiQgRhaBIY-sszgjvQ}{X9pC0t1UQQix_NNOM0J6JQ}{srvmulpvlsk252.loganalytics.santanderuk.corp}{180.39.9.93:9300}{ml.max_open_jobs=10, ml.enabled=true}, local + {srvmulpvlsk258_md}{HgW6EDn5QCmWVmICy4saHw}{o8zku7OJR4CTp0IjY8Ag4Q}{srvmulpvlsk258.loganalytics.santanderuk.corp}{180.39.9.99:9300}{ml.max_open_jobs=10, ml.enabled=true} + {srvmulpvlsk250_md}{igrwSoPGSJ6u_5b8k26tgQ}{PuRqciBFRbiQvL2_lS7LrQ}{srvmulpvlsk250.loganalytics.santanderuk.corp}{180.39.9.91:9300}{ml.max_open_jobs=10, ml.enabled=true}, master + {srvmulpvlsk254_id}{wZYeAh2URc2NwBIHZolLWQ}{3nduupo-TzSPaXjQaNu4Sg}{srvmulpvlsk254.loganalytics.santanderuk.corp}{180.39.9.95:9300}{ml.max_open_jobs=10, ml.enabled=true} +[2018-07-03T11:45:52,666][WARN ][r.suppressed ] path: /_xpack/monitoring/_bulk, params: {system_id=logstash, system_api_version=2, interval=1s} +org.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAILABLE/2/no master]; + at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedException(ClusterBlocks.java:165) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedRaiseException(ClusterBlocks.java:151) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.xpack.monitoring.action.TransportMonitoringBulkAction.doExecute(TransportMonitoringBulkAction.java:57) ~[?:?] + at org.elasticsearch.xpack.monitoring.action.TransportMonitoringBulkAction.doExecute(TransportMonitoringBulkAction.java:40) ~[?:?] + at org.elasticsearch.action.support.TransportAction.doExecute(TransportAction.java:146) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:170) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$apply$1(SecurityActionFilter.java:133) ~[?:?] + at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:59) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$authorizeRequest$4(SecurityActionFilter.java:208) ~[?:?] + at org.elasticsearch.xpack.security.authz.AuthorizationUtils$AsyncAuthorizer.maybeRun(AuthorizationUtils.java:127) ~[?:?] + at org.elasticsearch.xpack.security.authz.AuthorizationUtils$AsyncAuthorizer.setRunAsRoles(AuthorizationUtils.java:121) ~[?:?] + at org.elasticsearch.xpack.security.authz.AuthorizationUtils$AsyncAuthorizer.authorize(AuthorizationUtils.java:109) ~[?:?] + at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.authorizeRequest(SecurityActionFilter.java:210) ~[?:?] + at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$applyInternal$3(SecurityActionFilter.java:186) ~[?:?] + at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:59) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.lambda$authenticateAsync$2(AuthenticationService.java:212) ~[?:?] + at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.lambda$lookForExistingAuthentication$4(AuthenticationService.java:246) ~[?:?] + at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.lookForExistingAuthentication(AuthenticationService.java:257) ~[?:?] + at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.authenticateAsync(AuthenticationService.java:210) ~[?:?] + at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.access$000(AuthenticationService.java:159) ~[?:?] + at org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:122) ~[?:?] + at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.applyInternal(SecurityActionFilter.java:185) ~[?:?] + at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.apply(SecurityActionFilter.java:145) ~[?:?] + at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:168) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:142) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:84) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:83) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:72) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:408) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.xpack.monitoring.rest.action.RestMonitoringBulkAction.lambda$doPrepareRequest$0(RestMonitoringBulkAction.java:77) ~[?:?] + at org.elasticsearch.rest.BaseRestHandler.handleReques +[2018-07-03T11:48:02,552][WARN ][r.suppressed ] path: /_xpack/license, params: {} +org.elasticsearch.discovery.MasterNotDiscoveredException: NodeDisconnectedException[[srvmulpvlsk250_md][180.39.9.91:9300][cluster:monitor/xpack/license/get] disconnected] + at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:209) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:311) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.cluster.ClusterStateObserver.waitForNextChange(ClusterStateObserver.java:139) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.cluster.ClusterStateObserver.waitForNextChange(ClusterStateObserver.java:111) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.retry(TransportMasterNodeAction.java:194) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.access$500(TransportMasterNodeAction.java:107) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$3.handleException(TransportMasterNodeAction.java:183) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1067) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1067) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.transport.TransportService$Adapter.lambda$onConnectionClosed$6(TransportService.java:893) ~[elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569) [elasticsearch-5.6.3.jar:5.6.3] + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161] + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161] + at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161] +Caused by: org.elasticsearch.transport.NodeDisconnectedException: [srvmulpvlsk250_md][180.39.9.91:9300][cluster:monitor/xpack/license/get] disconnected +[2018-07-03T11:45:27,896][WARN ][o.e.m.j.JvmGcMonitorService] [srvmulpvlsk252_md] [gc][young][3449979][986594] duration [3.8s], collections [1]/[4.3s], total [3.8s]/[8.8h], memory [16.5gb]->[15.7gb]/[30.8gb], all_po +ols {[young] [1.2gb]->[24mb]/[1.4gb]}{[survivor] [191.3mb]->[191.3mb]/[191.3mb]}{[old] [15.1gb]->[15.5gb]/[29.1gb]} +[2018-07-03T11:45:45,604][WARN ][o.e.m.j.JvmGcMonitorService] [srvmulpvlsk252_md] [gc][3449992] overhead, spent [1.6s] collecting in the last [1.8s] +[2018-07-03T11:48:02,541][WARN ][o.e.a.b.TransportShardBulkAction] [srvmulpvlsk252_md] [[pro_neocrmbigdata_paas-2018-27][0]] failed to perform indices:data/write/bulk[s] on replica [pro_neocrmbigdata_paas-2018-27][0], node[igrwSoPGSJ6u_5b8k26tgQ], [R], s[STARTED], a[id=DKK34YLHRMmJMkWg8jQH6w] +[2018-07-03T20:10:07,376][WARN ][o.e.x.m.MonitoringService] [srvmulpvlsk252_md] monitoring execution failed +org.elasticsearch.xpack.monitoring.exporter.ExportException: Exception when closing export bulk + at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$1$1.(ExportBulk.java:106) ~[?:?] + at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$1.onFailure(ExportBulk.java:104) ~[?:?] + at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$Compound$1.onResponse(ExportBulk.java:217) ~[?:?] + at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$Compound$1.onResponse(ExportBulk.java:211) ~[?:?] + at org.elasticsearch.xpack.common.IteratingActionListener.onResponse(IteratingActionListener.java:108) ~[?:?] + at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:59) [elasticsearch-5.6.3.jar:5.6.3] + at org.elasticsearch.xpack.monitoring.exporter.http.HttpExportBulk$1.onSuccess(HttpExportBulk.java:115) [x-pack-5.6.3.jar:5.6.3] + at org.elasticsearch.client.RestClient$FailureTrackingResponseListener.onSuccess(RestClient.java:597) [elasticsearch-rest-client-5.6.3.jar:5.6.3] + at org.elasticsearch.client.RestClient$1.completed(RestClient.java:352) [elasticsearch-rest-client-5.6.3.jar:5.6.3] + at org.elasticsearch.client.RestClient$1.completed(RestClient.java:343) [elasticsearch-rest-client-5.6.3.jar:5.6.3] + at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119) [httpcore-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:177) [httpasyncclient-4.1.2.jar:4.1.2] + at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:436) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:326) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) [httpasyncclient-4.1.2.jar:4.1.2] + at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) [httpasyncclient-4.1.2.jar:4.1.2] + at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) [httpcore-nio-4.4.5.jar:4.4.5] + at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) [httpcore-nio-4.4.5.jar:4.4.5] + at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161] + diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log-expected.json index eb7ccf5c..d5842954 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/server/test/test.log-expected.json @@ -1,38 +1,255 @@ [ - { - "_index": "test-filebeat-modules", - "_type": "doc", - "_id": "OJjlbGMBLvTnJwyR-YUx", - "_score": 1, - "_source": { - "offset": 209, - "log": { - "level": "INFO" - }, - "prospector": { - "type": "log" - }, - "read_timestamp": "2018-05-17T06:59:59.786Z", - "source": "/Users/ruflin/Dev/gopath/src/github.com/elastic/beats/filebeat/module/elasticsearch/log/test/test.log", - "fileset": { - "module": "elasticsearch", - "name": "log" - }, - "message": " [vWNJsZ3] [test-filebeat-modules] creating index, cause [auto(bulk api)], templates [test-filebeat-modules], shards [5]/[1], mappings [doc]", - "input": { - "type": "log" - }, - "@timestamp": "2018-05-17T08:29:12.177Z", - "elasticsearch": { - "server": { - "component": "o.e.c.m.MetaDataCreateIndexService" - } - }, - "beat": { - "hostname": "ruflin", - "name": "ruflin", - "version": "7.0.0-alpha1" - } - } + { + "@timestamp": "2018-05-17T08:29:12,177", + "elasticsearch.index.name": "test-filebeat-modules", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.c.m.MetaDataCreateIndexService", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "creating index, cause [auto(bulk api)], templates [test-filebeat-modules], shards [5]/[1], mappings [doc]", + "offset": 0, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:19:35,939", + "elasticsearch.node.name": "", + "elasticsearch.server.component": "o.e.n.Node", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "initializing ...", + "offset": 209, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:19:36,089", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.e.NodeEnvironment", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "using [1] data paths, mounts [[/ (/dev/disk1s1)]], net usable_space [32.4gb], net total_space [233.5gb], types [apfs]", + "offset": 289, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:19:36,090", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.e.NodeEnvironment", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "heap size [990.7mb], compressed ordinary object pointers [true]", + "offset": 477, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:19:36,116", + "elasticsearch.server.component": "o.e.n.Node", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "node name [vWNJsZ3] derived from node ID [vWNJsZ3nTIKh5a1ai-ftYQ]; set [node.name] to override", + "offset": 611, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:23:48,941", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.c.r.a.DiskThresholdMonitor", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "low disk watermark [85%] exceeded on [vWNJsZ3nTIKh5a1ai-ftYQ][vWNJsZ3][/Users/ruflin/Downloads/elasticsearch-6.2.4/data/nodes/0] free: 33.4gb[14.3%], replicas will not be assigned to this node", + "offset": 766, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:29:09,245", + "elasticsearch.index.name": "filebeat-test-input", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.c.m.MetaDataCreateIndexService", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "creating index, cause [auto(bulk api)], templates [filebeat-test-input], shards [5]/[1], mappings [doc]", + "offset": 1034, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:29:09,576", + "elasticsearch.index.id": "aOGgDwbURfCV57AScqbCgw", + "elasticsearch.index.name": "filebeat-test-input", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.c.m.MetaDataMappingService", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "update_mapping [doc]", + "offset": 1239, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-09T12:47:33,959", + "elasticsearch.index.id": "3tWftqb4RLKdyCAga9syGA", + "elasticsearch.index.name": ".kibana", + "elasticsearch.node.name": "QGY1F5P", + "elasticsearch.server.component": "o.e.c.m.MetaDataMappingService", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "update_mapping [doc]", + "offset": 1380, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:29:25,598", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.n.Node", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "closing ...", + "offset": 1509, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-05-17T08:29:25,612", + "elasticsearch.node.name": "vWNJsZ3", + "elasticsearch.server.component": "o.e.n.Node", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "closed", + "offset": 1591, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T11:45:48,548", + "elasticsearch.node.name": "srvmulpvlsk252_md", + "elasticsearch.server.component": "o.e.d.z.ZenDiscovery", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "INFO", + "message": "master_left [{srvmulpvlsk250_md}{igrwSoPGSJ6u_5b8k26tgQ}{PuRqciBFRbiQvL2_lS7LrQ}{srvmulpvlsk250.loganalytics.santanderuk.corp}{180.39.9.91:9300}{ml.max_open_jobs=10, ml.enabled=true}], reason [failed to ping, tried [3] times, each with maximum [30s] timeout]", + "offset": 1668, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T11:45:48,548", + "elasticsearch.node.name": "srvmulpvlsk252_md", + "elasticsearch.server.component": "o.e.d.z.ZenDiscovery", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "WARN", + "message": "master left (reason = failed to ping, tried [3] times, each with maximum [30s] timeout), current nodes: nodes:\n {srvmulpvlsk252_md}{uc5xdiQgRhaBIY-sszgjvQ}{X9pC0t1UQQix_NNOM0J6JQ}{srvmulpvlsk252.loganalytics.santanderuk.corp}{180.39.9.93:9300}{ml.max_open_jobs=10, ml.enabled=true}, local\n {srvmulpvlsk258_md}{HgW6EDn5QCmWVmICy4saHw}{o8zku7OJR4CTp0IjY8Ag4Q}{srvmulpvlsk258.loganalytics.santanderuk.corp}{180.39.9.99:9300}{ml.max_open_jobs=10, ml.enabled=true}\n {srvmulpvlsk250_md}{igrwSoPGSJ6u_5b8k26tgQ}{PuRqciBFRbiQvL2_lS7LrQ}{srvmulpvlsk250.loganalytics.santanderuk.corp}{180.39.9.91:9300}{ml.max_open_jobs=10, ml.enabled=true}, master\n {srvmulpvlsk254_id}{wZYeAh2URc2NwBIHZolLWQ}{3nduupo-TzSPaXjQaNu4Sg}{srvmulpvlsk254.loganalytics.santanderuk.corp}{180.39.9.95:9300}{ml.max_open_jobs=10, ml.enabled=true}", + "offset": 2008, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T11:45:52,666", + "elasticsearch.server.component": "r.suppressed", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "WARN", + "message": "path: /_xpack/monitoring/_bulk, params: {system_id=logstash, system_api_version=2, interval=1s}\norg.elasticsearch.cluster.block.ClusterBlockException: blocked by: [SERVICE_UNAVAILABLE/2/no master];\n at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedException(ClusterBlocks.java:165) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.cluster.block.ClusterBlocks.globalBlockedRaiseException(ClusterBlocks.java:151) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.xpack.monitoring.action.TransportMonitoringBulkAction.doExecute(TransportMonitoringBulkAction.java:57) ~[?:?]\n at org.elasticsearch.xpack.monitoring.action.TransportMonitoringBulkAction.doExecute(TransportMonitoringBulkAction.java:40) ~[?:?]\n at org.elasticsearch.action.support.TransportAction.doExecute(TransportAction.java:146) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:170) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$apply$1(SecurityActionFilter.java:133) ~[?:?]\n at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:59) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$authorizeRequest$4(SecurityActionFilter.java:208) ~[?:?]\n at org.elasticsearch.xpack.security.authz.AuthorizationUtils$AsyncAuthorizer.maybeRun(AuthorizationUtils.java:127) ~[?:?]\n at org.elasticsearch.xpack.security.authz.AuthorizationUtils$AsyncAuthorizer.setRunAsRoles(AuthorizationUtils.java:121) ~[?:?]\n at org.elasticsearch.xpack.security.authz.AuthorizationUtils$AsyncAuthorizer.authorize(AuthorizationUtils.java:109) ~[?:?]\n at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.authorizeRequest(SecurityActionFilter.java:210) ~[?:?]\n at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.lambda$applyInternal$3(SecurityActionFilter.java:186) ~[?:?]\n at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:59) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.lambda$authenticateAsync$2(AuthenticationService.java:212) ~[?:?]\n at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.lambda$lookForExistingAuthentication$4(AuthenticationService.java:246) ~[?:?]\n at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.lookForExistingAuthentication(AuthenticationService.java:257) ~[?:?]\n at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.authenticateAsync(AuthenticationService.java:210) ~[?:?]\n at org.elasticsearch.xpack.security.authc.AuthenticationService$Authenticator.access$000(AuthenticationService.java:159) ~[?:?]\n at org.elasticsearch.xpack.security.authc.AuthenticationService.authenticate(AuthenticationService.java:122) ~[?:?]\n at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.applyInternal(SecurityActionFilter.java:185) ~[?:?]\n at org.elasticsearch.xpack.security.action.filter.SecurityActionFilter.apply(SecurityActionFilter.java:145) ~[?:?]\n at org.elasticsearch.action.support.TransportAction$RequestFilterChain.proceed(TransportAction.java:168) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:142) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:84) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.client.node.NodeClient.executeLocally(NodeClient.java:83) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:72) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:408) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:80) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.xpack.monitoring.rest.action.RestMonitoringBulkAction.lambda$doPrepareRequest$0(RestMonitoringBulkAction.java:77) ~[?:?]\n at org.elasticsearch.rest.BaseRestHandler.handleReques", + "offset": 2907, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T11:48:02,552", + "elasticsearch.server.component": "r.suppressed", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "WARN", + "message": "path: /_xpack/license, params: {}\norg.elasticsearch.discovery.MasterNotDiscoveredException: NodeDisconnectedException[[srvmulpvlsk250_md][180.39.9.91:9300][cluster:monitor/xpack/license/get] disconnected]\n at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:209) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:311) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.cluster.ClusterStateObserver.waitForNextChange(ClusterStateObserver.java:139) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.cluster.ClusterStateObserver.waitForNextChange(ClusterStateObserver.java:111) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.retry(TransportMasterNodeAction.java:194) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.access$500(TransportMasterNodeAction.java:107) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$3.handleException(TransportMasterNodeAction.java:183) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1067) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1067) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.transport.TransportService$Adapter.lambda$onConnectionClosed$6(TransportService.java:893) ~[elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569) [elasticsearch-5.6.3.jar:5.6.3]\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]\n at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]\nCaused by: org.elasticsearch.transport.NodeDisconnectedException: [srvmulpvlsk250_md][180.39.9.91:9300][cluster:monitor/xpack/license/get] disconnected", + "offset": 7412, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T11:45:27,896", + "elasticsearch.node.name": "srvmulpvlsk252_md", + "elasticsearch.server.component": "o.e.m.j.JvmGcMonitorService", + "elasticsearch.server.gc.young.one": "3449979", + "elasticsearch.server.gc.young.two": "986594", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "WARN", + "message": "duration [3.8s], collections [1]/[4.3s], total [3.8s]/[8.8h], memory [16.5gb]->[15.7gb]/[30.8gb], all_po\nols {[young] [1.2gb]->[24mb]/[1.4gb]}{[survivor] [191.3mb]->[191.3mb]/[191.3mb]}{[old] [15.1gb]->[15.5gb]/[29.1gb]}", + "offset": 9873, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T11:45:45,604", + "elasticsearch.node.name": "srvmulpvlsk252_md", + "elasticsearch.server.component": "o.e.m.j.JvmGcMonitorService", + "elasticsearch.server.gc_overhead": "3449992", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "WARN", + "message": "overhead, spent [1.6s] collecting in the last [1.8s]", + "offset": 10205, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T11:48:02,541", + "elasticsearch.node.name": "srvmulpvlsk252_md", + "elasticsearch.server.component": "o.e.a.b.TransportShardBulkAction", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "WARN", + "message": "[[pro_neocrmbigdata_paas-2018-27][0]] failed to perform indices:data/write/bulk[s] on replica [pro_neocrmbigdata_paas-2018-27][0], node[igrwSoPGSJ6u_5b8k26tgQ], [R], s[STARTED], a[id=DKK34YLHRMmJMkWg8jQH6w]", + "offset": 10354, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-03T20:10:07,376", + "elasticsearch.node.name": "srvmulpvlsk252_md", + "elasticsearch.server.component": "o.e.x.m.MonitoringService", + "fileset.module": "elasticsearch", + "fileset.name": "server", + "input.type": "log", + "log.level": "WARN", + "message": "monitoring execution failed\norg.elasticsearch.xpack.monitoring.exporter.ExportException: Exception when closing export bulk\n at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$1$1.(ExportBulk.java:106) ~[?:?]\n at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$1.onFailure(ExportBulk.java:104) ~[?:?]\n at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$Compound$1.onResponse(ExportBulk.java:217) ~[?:?]\n at org.elasticsearch.xpack.monitoring.exporter.ExportBulk$Compound$1.onResponse(ExportBulk.java:211) ~[?:?]\n at org.elasticsearch.xpack.common.IteratingActionListener.onResponse(IteratingActionListener.java:108) ~[?:?]\n at org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:59) [elasticsearch-5.6.3.jar:5.6.3]\n at org.elasticsearch.xpack.monitoring.exporter.http.HttpExportBulk$1.onSuccess(HttpExportBulk.java:115) [x-pack-5.6.3.jar:5.6.3]\n at org.elasticsearch.client.RestClient$FailureTrackingResponseListener.onSuccess(RestClient.java:597) [elasticsearch-rest-client-5.6.3.jar:5.6.3]\n at org.elasticsearch.client.RestClient$1.completed(RestClient.java:352) [elasticsearch-rest-client-5.6.3.jar:5.6.3]\n at org.elasticsearch.client.RestClient$1.completed(RestClient.java:343) [elasticsearch-rest-client-5.6.3.jar:5.6.3]\n at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119) [httpcore-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:177) [httpasyncclient-4.1.2.jar:4.1.2]\n at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:436) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:326) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) [httpasyncclient-4.1.2.jar:4.1.2]\n at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) [httpasyncclient-4.1.2.jar:4.1.2]\n at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) [httpcore-nio-4.4.5.jar:4.4.5]\n at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) [httpcore-nio-4.4.5.jar:4.4.5]\n at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]\n", + "offset": 10648, + "prospector.type": "log", + "service.name": "elasticsearch" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/_meta/fields.yml new file mode 100644 index 00000000..36c5119e --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/_meta/fields.yml @@ -0,0 +1,57 @@ +- name: slowlog + description: "Slowlog events from Elasticsearch" + example: "[2018-06-29T10:06:14,933][INFO ][index.search.slowlog.query] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[4.5ms], took_millis[4], total_hits[19435], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{\"query\":{\"match_all\":{\"boost\":1.0}}}]," + type: group + fields: + - name: logger + description: "Logger name" + example: "index.search.slowlog.fetch" + type: keyword + - name: took + description: "Time it took to execute the query" + example: "300ms" + type: text + - name: types + description: "Types" + example: "" + type: keyword + - name: stats + description: "Statistics" + example: "" + type: text + - name: search_type + description: "Search type" + example: "QUERY_THEN_FETCH" + type: keyword + - name: source_query + description: "Slow query" + example: "{\"query\":{\"match_all\":{\"boost\":1.0}}}" + type: text + - name: extra_source + description: "Extra source information" + example: "" + type: text + - name: took_millis + description: "Time took in milliseconds" + example: 42 + type: keyword + - name: total_hits + description: "Total hits" + example: 42 + type: keyword + - name: total_shards + description: "Total queried shards" + example: 22 + type: keyword + - name: routing + description: "Routing" + example: "s01HZ2QBk9jw4gtgaFtn" + type: keyword + - name: id + description: Id + example: "" + type: keyword + - name: type + description: "Type" + example: "doc" + type: keyword diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/config/slowlog.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/config/slowlog.yml new file mode 100644 index 00000000..c65f00f5 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/config/slowlog.yml @@ -0,0 +1,15 @@ +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +exclude_files: [".gz$"] + +multiline: + pattern: '^\[?[0-9]{4}-[0-9]{2}-[0-9]{2}' + negate: true + match: after + +fields: + service.name: "elasticsearch" +fields_under_root: true diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/ingest/pipeline.json new file mode 100644 index 00000000..84a6801f --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/ingest/pipeline.json @@ -0,0 +1,35 @@ +{ + "description": "Pipeline for parsing elasticsearch slowlog logs", + "processors": [ + { + "rename": { + "field": "@timestamp", + "target_field": "event.created" + } + }, + { + "grok": { + "field": "message", + "pattern_definitions" : { + "GREEDYMULTILINE" : "(.|\n)*", + "INDEXNAME": "[a-zA-Z0-9_.-]*" + }, + "patterns": [ + "\\[%{TIMESTAMP_ISO8601:elasticsearch.slowlog.timestamp}\\]\\[%{WORD:log.level}(%{SPACE}*)?\\]\\[%{DATA:elasticsearch.slowlog.logger}\\]%{SPACE}*\\[%{WORD:elasticsearch.node.name}\\](%{SPACE}*)?(\\[%{INDEXNAME:elasticsearch.index.name}\\]\\[%{NUMBER:elasticsearch.shard.id}\\])?(%{SPACE}*)?(\\[%{INDEXNAME:elasticsearch.index.name}\\/%{DATA:elasticsearch.index.id}\\])?(%{SPACE}*)?%{SPACE}*(took\\[%{DATA:elasticsearch.slowlog.took}\\],)?%{SPACE}*(took_millis\\[%{NUMBER:elasticsearch.slowlog.took_millis:int}\\],)?%{SPACE}*(type\\[%{DATA:elasticsearch.slowlog.type}\\],)?%{SPACE}*(id\\[%{DATA:elasticsearch.slowlog.id}\\],)?%{SPACE}*(routing\\[%{DATA:elasticsearch.slowlog.routing}\\],)?%{SPACE}*(total_hits\\[%{NUMBER:elasticsearch.slowlog.total_hits:int}\\],)?%{SPACE}*(types\\[%{DATA:elasticsearch.slowlog.types}\\],)?%{SPACE}*(stats\\[%{DATA:elasticsearch.slowlog.stats}\\],)?%{SPACE}*(search_type\\[%{DATA:elasticsearch.slowlog.search_type}\\],)?%{SPACE}*(total_shards\\[%{NUMBER:elasticsearch.slowlog.total_shards:int}\\],)?%{SPACE}*(source\\[%{GREEDYMULTILINE:elasticsearch.slowlog.source_query}\\])?,?%{SPACE}*(extra_source\\[%{DATA:elasticsearch.slowlog.extra_source}\\])?,?" + ] + } + }, + { + "rename": { + "field": "elasticsearch.slowlog.timestamp", + "target_field": "@timestamp" + } + } + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/manifest.yml b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/manifest.yml new file mode 100644 index 00000000..ec46d411 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/manifest.yml @@ -0,0 +1,16 @@ +module_version: 1.0 + +var: + - name: paths + default: + - /var/log/elasticsearch/*_index_search_slowlog.log + - /var/log/elasticsearch/*_index_indexing_slowlog.log + os.darwin: + - /usr/local/elasticsearch/*_index_search_slowlog.log + - /usr/local/elasticsearch/*_index_indexing_slowlog.log + os.windows: + - c:/ProgramData/Elastic/Elasticsearch/logs/*_index_search_slowlog.log + - c:/ProgramData/Elastic/Elasticsearch/logs/*_index_indexing_slowlog.log + +ingest_pipeline: ingest/pipeline.json +input: config/slowlog.yml diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log new file mode 100644 index 00000000..dba8a235 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log @@ -0,0 +1,37 @@ +[2018-07-04T21:51:29,536][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[221micros], took_millis[0], type[doc], id[sE1HZ2QBk9jw4gtgZFvo], routing[], source[{"@timestamp":"2018-07-04T21:50:40.799Z","metricset":{"module":"system","rtt":9610,"name":"network"},"system":{"network":{"name":"bridg","in":{"packets":0,"errors":0,"dropped":0,"bytes":0},"out":{"errors":0,"dropped":0,"packets":1,"bytes":342}}},"beat":{"name":"Rados-MacBook-Pro.local","hostname":"Rados-MacBook-Pro.local","version":"6.3.0"},"host":{"name":"Rados-MacBook-Pro.local"}}] +[2018-07-04T21:51:29,537][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[388.6micros], took_millis[0], type[doc], id[sU1HZ2QBk9jw4gtgZFvo], routing[], source[{"@timestamp":"2018-07-04T21:50:40.799Z","metricset":{"rtt":9616,"name":"network","module":"system"},"system":{"network":{"name":"utun0","in":{"dropped":0,"bytes":0,"packets":0,"errors":0},"out":{"packets":2,"bytes":200,"errors":0,"dropped":0}}},"beat":{"version":"6.3.0","name":"Rados-MacBook-Pro.local","hostname":"Rados-MacBook-Pro.local"},"host":{"name":"Rados-MacBook-Pro.local"}}] +[2018-07-04T21:51:29,538][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[287.1micros], took_millis[0], type[doc], id[sk1HZ2QBk9jw4gtgZFvo], routing[], source[{"@timestamp":"2018-07-04T21:50:40.799Z","metricset":{"rtt":9640,"name":"network","module":"system"},"system":{"network":{"name":"utun1","in":{"packets":200,"errors":0,"dropped":0,"bytes":44296},"out":{"errors":0,"dropped":0,"packets":208,"bytes":59626}}},"beat":{"name":"Rados-MacBook-Pro.local","hostname":"Rados-MacBook-Pro.local","version":"6.3.0"},"host":{"name":"Rados-MacBook-Pro.local"}}] +[2018-07-04T21:51:30,411][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[1.7ms], took_millis[1], type[doc], id[s01HZ2QBk9jw4gtgaFtn], routing[], source[ +{ + "@timestamp":"2018-07-04T21:27:30.730Z", + "metricset":{ + "name":"network", + "module":"system", + "rtt":7264}, + "system":{ + "network":{ + "name":"lo0", + "in":{ + "errors":0, + "dropped":0, + "bytes":77666873, + "packets":244595}, + "out":{ + "packets":244595, + "bytes":77666873, + "errors":0, + "dropped":0 + } + } + }, + "beat":{ + "name":"Rados-MacBook-Pro.local", + "hostname":"Rados-MacBook-Pro.local", + "version":"6.3.0" + }, + "host":{ + "name":"Rados-MacBook-Pro.local" + } + }] +[2018-07-04T21:51:30,963][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[560.6micros], took_millis[0], type[doc], id[tE1HZ2QBk9jw4gtgaluR], routing[], source[{"@timestamp":"2018-07-04T21:50:42.117Z","beat":{"name":"Rados-MacBook-Pro.local","hostname":"Rados-MacBook-Pro.local","version":"6.3.0"},"host":{"name":"Rados-MacBook-Pro.local"},"metricset":{"module":"system","rtt":39463,"name":"process"},"system":{"process":{"state":"running","pid":6274,"name":"iTerm2","cmdline":"/Applications/iTerm.app/Contents/MacOS/iTerm2","ppid":1,"pgid":6274,"username":"rado","memory":{"size":6263349248,"rss":{"bytes":226975744,"pct":0.0132},"share":0},"cpu":{"total":{"value":921790,"pct":0.1368,"norm":{"pct":0.0342}},"start_time":"2018-07-02T10:40:29.756Z"}}}}] +[2018-07-04T21:51:30,965][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[469.9micros], took_millis[0], type[doc], id[tU1HZ2QBk9jw4gtgaluR], routing[], source[{"@timestamp":"2018-07-04T21:50:42.117Z","beat":{"name":"Rados-MacBook-Pro.local","hostname":"Rados-MacBook-Pro.local","version":"6.3.0"},"host":{"name":"Rados-MacBook-Pro.local"},"metricset":{"name":"process","module":"system","rtt":39476},"system":{"process":{"username":"rado","state":"running","cmdline":"com.docker.hyperkit -A -u -F vms/0/hyperkit.pid -c 2 -m 6144M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-vpnkit,path=s50,uuid=18fcb277-636a-4fd7-99d2-9bd2dd50a58c -U b1496a26-aed9-4ee1-818d-a3683593b754 -s 2:0,ahci-hd,file:///Users/rado/Library/Containers/com.docker.docker/Data/vms/0/Docker.qcow2?sync=os\u0026buffered=1,format=qcow,qcow-config=discard=true;compact_after_unmaps=262144;keep_erased=262144;runtime_asserts=false -s 3,virtio-sock,guest_cid=3,path=vms/0,guest_forwards=2376;1525 -s 4,ahci-cd,/Applications/Docker.app/Contents/Resources/linuxkit/docker-for-mac.iso -s 5,ahci-cd,vms/0/config.iso -s 6,virtio-rnd -s 7,virtio-9p,path=s51,tag=port -l com1,autopty=vms/0/tty,log=vms/0/console-ring -f bootrom,/Applications/Docker.app/Contents/Resources/uefi/UEFI.fd,,","ppid":559,"pgid":555,"name":"com.docker.hype","cpu":{"total":{"pct":0.1181,"norm":{"pct":0.0295},"value":8.7575e+06},"start_time":"2018-07-01T22:13:07.748Z"},"pid":567,"memory":{"share":0,"size":11128897536,"rss":{"pct":0.0205,"bytes":352854016}}}}}] diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/test.log b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/test.log new file mode 100644 index 00000000..8f072b06 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/test.log @@ -0,0 +1,37 @@ +[2018-06-29T10:06:14,933][INFO ][index.search.slowlog.query] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[4.5ms], took_millis[4], total_hits[19435], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{"query":{"match_all":{"boost":1.0}}}], +[2018-06-29T10:06:14,943][INFO ][index.search.slowlog.fetch] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[10.8ms], took_millis[10], total_hits[19435], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{"query":{"match_all":{"boost":1.0}}}], +[2018-06-29T09:01:01,821][INFO ][index.search.slowlog.query] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[124.3ms], took_millis[124], total_hits[0], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{"size":500,"query":{"match_none":{"boost":1.0}},"version":true,"_source":{"includes":[],"excludes":[]},"stored_fields":"*","docvalue_fields":["@timestamp","ceph.monitor_health.last_updated","docker.container.created","docker.healthcheck.event.end_date","docker.healthcheck.event.start_date","docker.image.created","kubernetes.container.start_time","kubernetes.event.metadata.timestamp.created","kubernetes.node.start_time","kubernetes.pod.start_time","kubernetes.system.start_time","mongodb.status.background_flushing.last_finished","mongodb.status.local_time","php_fpm.pool.start_time","postgresql.activity.backend_start","postgresql.activity.query_start","postgresql.activity.state_change","postgresql.activity.transaction_start","postgresql.bgwriter.stats_reset","postgresql.database.stats_reset","system.process.cpu.start_time"],"script_fields":{},"sort":[{"@timestamp":{"order":"desc","unmapped_type":"boolean"}}],"aggregations":{"2":{"date_histogram":{"field":"@timestamp","time_zone":"Europe/Berlin","interval":"30s","offset":0,"order":{"_key":"asc"},"keyed":false,"min_doc_count":1}}},"highlight":{"pre_tags":["@kibana-highlighted-field@"],"post_tags":["@/kibana-highlighted-field@"],"fragment_size":2147483647,"fields":{"*":{}}}}], +[2018-06-29T09:01:01,827][INFO ][index.search.slowlog.fetch] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[7.2ms], took_millis[7], total_hits[0], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{"size":500,"query":{"match_none":{"boost":1.0}},"version":true,"_source":{"includes":[],"excludes":[]},"stored_fields":"*","docvalue_fields":["@timestamp","ceph.monitor_health.last_updated","docker.container.created","docker.healthcheck.event.end_date","docker.healthcheck.event.start_date","docker.image.created","kubernetes.container.start_time","kubernetes.event.metadata.timestamp.created","kubernetes.node.start_time","kubernetes.pod.start_time","kubernetes.system.start_time","mongodb.status.background_flushing.last_finished","mongodb.status.local_time","php_fpm.pool.start_time","postgresql.activity.backend_start","postgresql.activity.query_start","postgresql.activity.state_change","postgresql.activity.transaction_start","postgresql.bgwriter.stats_reset","postgresql.database.stats_reset","system.process.cpu.start_time"],"script_fields":{},"sort":[{"@timestamp":{"order":"desc","unmapped_type":"boolean"}}],"aggregations":{"2":{"date_histogram":{"field":"@timestamp","time_zone":"Europe/Berlin","interval":"30s","offset":0,"order":{"_key":"asc"},"keyed":false,"min_doc_count":1}}},"highlight":{"pre_tags":["@kibana-highlighted-field@"],"post_tags":["@/kibana-highlighted-field@"],"fragment_size":2147483647,"fields":{"*":{}}}}], +[2018-07-04T13:48:07,452][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[1.4ms], took_millis[1], type[doc], id[KUyMZWQBk9jw4gtg2y5-], routing[], source[{"@timestamp":"2018-07-04T13:47:50.747Z","system":{"process":{"ppid":34526,"state":"running","cpu":{"total":{"value":734879,"pct":0.0173,"norm":{"pct":0.0043}},"start_time":"2018-07-04T06:56:34.863Z"},"pgid":34526,"cmdline":"/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 1 -isForBrowser -prefsLen 22119 -schedulerPrefs 0001,2 -greomni /Applications/Firefox.app/Contents/Resources/omni.ja -appomni /Applications/Firefox.app/Contents/Resources/browser/omni.ja -appdir /Applications/Firefox.app/Contents/Resources/browser -profile /Users/rado/Library/Application Support/Firefox/Profiles/pt6eoq1j.default-1484133908360 34526 gecko-crash-server-pipe.34526 org.mozilla.machname.231926932 tab","name":"plugin-containe","memory":{"size":7489249280,"rss":{"bytes":567619584,"pct":0.033},"share":0},"pid":34528,"username":"rado"}},"metricset":{"name":"process","module":"system","rtt":43856},"beat":{"hostname":"Rados-MacBook-Pro.local","version":"6.3.0","name":"Rados-MacBook-Pro.local"},"host":{"name":"Rados-MacBook-Pro.local"}}] +[2018-07-04T21:51:30,411][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[1.7ms], took_millis[1], type[doc], id[s01HZ2QBk9jw4gtgaFtn], routing[], source[ +{ + "@timestamp":"2018-07-04T21:27:30.730Z", + "metricset":{ + "name":"network", + "module":"system", + "rtt":7264}, + "system":{ + "network":{ + "name":"lo0", + "in":{ + "errors":0, + "dropped":0, + "bytes":77666873, + "packets":244595}, + "out":{ + "packets":244595, + "bytes":77666873, + "errors":0, + "dropped":0 + } + } + }, + "beat":{ + "name":"Rados-MacBook-Pro.local", + "hostname":"Rados-MacBook-Pro.local", + "version":"6.3.0" + }, + "host":{ + "name":"Rados-MacBook-Pro.local" + } + }] diff --git a/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json new file mode 100644 index 00000000..b1c1828b --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json @@ -0,0 +1,136 @@ +[ + { + "@timestamp": "2018-06-29T10:06:14,933", + "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", + "elasticsearch.node.name": "v_VJhjV", + "elasticsearch.shard.id": "0", + "elasticsearch.slowlog.logger": "index.search.slowlog.query", + "elasticsearch.slowlog.search_type": "QUERY_THEN_FETCH", + "elasticsearch.slowlog.source_query": "{\"query\":{\"match_all\":{\"boost\":1.0}}}", + "elasticsearch.slowlog.stats": "", + "elasticsearch.slowlog.took": "4.5ms", + "elasticsearch.slowlog.took_millis": 4, + "elasticsearch.slowlog.total_hits": 19435, + "elasticsearch.slowlog.total_shards": 1, + "elasticsearch.slowlog.types": "", + "fileset.module": "elasticsearch", + "fileset.name": "slowlog", + "input.type": "log", + "log.level": "INFO", + "message": "[2018-06-29T10:06:14,933][INFO ][index.search.slowlog.query] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[4.5ms], took_millis[4], total_hits[19435], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{\"query\":{\"match_all\":{\"boost\":1.0}}}],", + "offset": 0, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-29T10:06:14,943", + "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", + "elasticsearch.node.name": "v_VJhjV", + "elasticsearch.shard.id": "0", + "elasticsearch.slowlog.logger": "index.search.slowlog.fetch", + "elasticsearch.slowlog.search_type": "QUERY_THEN_FETCH", + "elasticsearch.slowlog.source_query": "{\"query\":{\"match_all\":{\"boost\":1.0}}}", + "elasticsearch.slowlog.stats": "", + "elasticsearch.slowlog.took": "10.8ms", + "elasticsearch.slowlog.took_millis": 10, + "elasticsearch.slowlog.total_hits": 19435, + "elasticsearch.slowlog.total_shards": 1, + "elasticsearch.slowlog.types": "", + "fileset.module": "elasticsearch", + "fileset.name": "slowlog", + "input.type": "log", + "log.level": "INFO", + "message": "[2018-06-29T10:06:14,943][INFO ][index.search.slowlog.fetch] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[10.8ms], took_millis[10], total_hits[19435], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{\"query\":{\"match_all\":{\"boost\":1.0}}}],", + "offset": 265, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-29T09:01:01,821", + "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", + "elasticsearch.node.name": "v_VJhjV", + "elasticsearch.shard.id": "0", + "elasticsearch.slowlog.logger": "index.search.slowlog.query", + "elasticsearch.slowlog.search_type": "QUERY_THEN_FETCH", + "elasticsearch.slowlog.source_query": "{\"size\":500,\"query\":{\"match_none\":{\"boost\":1.0}},\"version\":true,\"_source\":{\"includes\":[],\"excludes\":[]},\"stored_fields\":\"*\",\"docvalue_fields\":[\"@timestamp\",\"ceph.monitor_health.last_updated\",\"docker.container.created\",\"docker.healthcheck.event.end_date\",\"docker.healthcheck.event.start_date\",\"docker.image.created\",\"kubernetes.container.start_time\",\"kubernetes.event.metadata.timestamp.created\",\"kubernetes.node.start_time\",\"kubernetes.pod.start_time\",\"kubernetes.system.start_time\",\"mongodb.status.background_flushing.last_finished\",\"mongodb.status.local_time\",\"php_fpm.pool.start_time\",\"postgresql.activity.backend_start\",\"postgresql.activity.query_start\",\"postgresql.activity.state_change\",\"postgresql.activity.transaction_start\",\"postgresql.bgwriter.stats_reset\",\"postgresql.database.stats_reset\",\"system.process.cpu.start_time\"],\"script_fields\":{},\"sort\":[{\"@timestamp\":{\"order\":\"desc\",\"unmapped_type\":\"boolean\"}}],\"aggregations\":{\"2\":{\"date_histogram\":{\"field\":\"@timestamp\",\"time_zone\":\"Europe/Berlin\",\"interval\":\"30s\",\"offset\":0,\"order\":{\"_key\":\"asc\"},\"keyed\":false,\"min_doc_count\":1}}},\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fragment_size\":2147483647,\"fields\":{\"*\":{}}}}", + "elasticsearch.slowlog.stats": "", + "elasticsearch.slowlog.took": "124.3ms", + "elasticsearch.slowlog.took_millis": 124, + "elasticsearch.slowlog.total_hits": 0, + "elasticsearch.slowlog.total_shards": 1, + "elasticsearch.slowlog.types": "", + "fileset.module": "elasticsearch", + "fileset.name": "slowlog", + "input.type": "log", + "log.level": "INFO", + "message": "[2018-06-29T09:01:01,821][INFO ][index.search.slowlog.query] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[124.3ms], took_millis[124], total_hits[0], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{\"size\":500,\"query\":{\"match_none\":{\"boost\":1.0}},\"version\":true,\"_source\":{\"includes\":[],\"excludes\":[]},\"stored_fields\":\"*\",\"docvalue_fields\":[\"@timestamp\",\"ceph.monitor_health.last_updated\",\"docker.container.created\",\"docker.healthcheck.event.end_date\",\"docker.healthcheck.event.start_date\",\"docker.image.created\",\"kubernetes.container.start_time\",\"kubernetes.event.metadata.timestamp.created\",\"kubernetes.node.start_time\",\"kubernetes.pod.start_time\",\"kubernetes.system.start_time\",\"mongodb.status.background_flushing.last_finished\",\"mongodb.status.local_time\",\"php_fpm.pool.start_time\",\"postgresql.activity.backend_start\",\"postgresql.activity.query_start\",\"postgresql.activity.state_change\",\"postgresql.activity.transaction_start\",\"postgresql.bgwriter.stats_reset\",\"postgresql.database.stats_reset\",\"system.process.cpu.start_time\"],\"script_fields\":{},\"sort\":[{\"@timestamp\":{\"order\":\"desc\",\"unmapped_type\":\"boolean\"}}],\"aggregations\":{\"2\":{\"date_histogram\":{\"field\":\"@timestamp\",\"time_zone\":\"Europe/Berlin\",\"interval\":\"30s\",\"offset\":0,\"order\":{\"_key\":\"asc\"},\"keyed\":false,\"min_doc_count\":1}}},\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fragment_size\":2147483647,\"fields\":{\"*\":{}}}}],", + "offset": 532, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-06-29T09:01:01,827", + "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", + "elasticsearch.node.name": "v_VJhjV", + "elasticsearch.shard.id": "0", + "elasticsearch.slowlog.logger": "index.search.slowlog.fetch", + "elasticsearch.slowlog.search_type": "QUERY_THEN_FETCH", + "elasticsearch.slowlog.source_query": "{\"size\":500,\"query\":{\"match_none\":{\"boost\":1.0}},\"version\":true,\"_source\":{\"includes\":[],\"excludes\":[]},\"stored_fields\":\"*\",\"docvalue_fields\":[\"@timestamp\",\"ceph.monitor_health.last_updated\",\"docker.container.created\",\"docker.healthcheck.event.end_date\",\"docker.healthcheck.event.start_date\",\"docker.image.created\",\"kubernetes.container.start_time\",\"kubernetes.event.metadata.timestamp.created\",\"kubernetes.node.start_time\",\"kubernetes.pod.start_time\",\"kubernetes.system.start_time\",\"mongodb.status.background_flushing.last_finished\",\"mongodb.status.local_time\",\"php_fpm.pool.start_time\",\"postgresql.activity.backend_start\",\"postgresql.activity.query_start\",\"postgresql.activity.state_change\",\"postgresql.activity.transaction_start\",\"postgresql.bgwriter.stats_reset\",\"postgresql.database.stats_reset\",\"system.process.cpu.start_time\"],\"script_fields\":{},\"sort\":[{\"@timestamp\":{\"order\":\"desc\",\"unmapped_type\":\"boolean\"}}],\"aggregations\":{\"2\":{\"date_histogram\":{\"field\":\"@timestamp\",\"time_zone\":\"Europe/Berlin\",\"interval\":\"30s\",\"offset\":0,\"order\":{\"_key\":\"asc\"},\"keyed\":false,\"min_doc_count\":1}}},\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fragment_size\":2147483647,\"fields\":{\"*\":{}}}}", + "elasticsearch.slowlog.stats": "", + "elasticsearch.slowlog.took": "7.2ms", + "elasticsearch.slowlog.took_millis": 7, + "elasticsearch.slowlog.total_hits": 0, + "elasticsearch.slowlog.total_shards": 1, + "elasticsearch.slowlog.types": "", + "fileset.module": "elasticsearch", + "fileset.name": "slowlog", + "input.type": "log", + "log.level": "INFO", + "message": "[2018-06-29T09:01:01,827][INFO ][index.search.slowlog.fetch] [v_VJhjV] [metricbeat-6.3.0-2018.06.26][0] took[7.2ms], took_millis[7], total_hits[0], types[], stats[], search_type[QUERY_THEN_FETCH], total_shards[1], source[{\"size\":500,\"query\":{\"match_none\":{\"boost\":1.0}},\"version\":true,\"_source\":{\"includes\":[],\"excludes\":[]},\"stored_fields\":\"*\",\"docvalue_fields\":[\"@timestamp\",\"ceph.monitor_health.last_updated\",\"docker.container.created\",\"docker.healthcheck.event.end_date\",\"docker.healthcheck.event.start_date\",\"docker.image.created\",\"kubernetes.container.start_time\",\"kubernetes.event.metadata.timestamp.created\",\"kubernetes.node.start_time\",\"kubernetes.pod.start_time\",\"kubernetes.system.start_time\",\"mongodb.status.background_flushing.last_finished\",\"mongodb.status.local_time\",\"php_fpm.pool.start_time\",\"postgresql.activity.backend_start\",\"postgresql.activity.query_start\",\"postgresql.activity.state_change\",\"postgresql.activity.transaction_start\",\"postgresql.bgwriter.stats_reset\",\"postgresql.database.stats_reset\",\"system.process.cpu.start_time\"],\"script_fields\":{},\"sort\":[{\"@timestamp\":{\"order\":\"desc\",\"unmapped_type\":\"boolean\"}}],\"aggregations\":{\"2\":{\"date_histogram\":{\"field\":\"@timestamp\",\"time_zone\":\"Europe/Berlin\",\"interval\":\"30s\",\"offset\":0,\"order\":{\"_key\":\"asc\"},\"keyed\":false,\"min_doc_count\":1}}},\"highlight\":{\"pre_tags\":[\"@kibana-highlighted-field@\"],\"post_tags\":[\"@/kibana-highlighted-field@\"],\"fragment_size\":2147483647,\"fields\":{\"*\":{}}}}],", + "offset": 1999, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-04T13:48:07,452", + "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", + "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", + "elasticsearch.node.name": "v_VJhjV", + "elasticsearch.slowlog.id": "KUyMZWQBk9jw4gtg2y5-", + "elasticsearch.slowlog.logger": "index.indexing.slowlog.index", + "elasticsearch.slowlog.routing": "", + "elasticsearch.slowlog.source_query": "{\"@timestamp\":\"2018-07-04T13:47:50.747Z\",\"system\":{\"process\":{\"ppid\":34526,\"state\":\"running\",\"cpu\":{\"total\":{\"value\":734879,\"pct\":0.0173,\"norm\":{\"pct\":0.0043}},\"start_time\":\"2018-07-04T06:56:34.863Z\"},\"pgid\":34526,\"cmdline\":\"/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 1 -isForBrowser -prefsLen 22119 -schedulerPrefs 0001,2 -greomni /Applications/Firefox.app/Contents/Resources/omni.ja -appomni /Applications/Firefox.app/Contents/Resources/browser/omni.ja -appdir /Applications/Firefox.app/Contents/Resources/browser -profile /Users/rado/Library/Application Support/Firefox/Profiles/pt6eoq1j.default-1484133908360 34526 gecko-crash-server-pipe.34526 org.mozilla.machname.231926932 tab\",\"name\":\"plugin-containe\",\"memory\":{\"size\":7489249280,\"rss\":{\"bytes\":567619584,\"pct\":0.033},\"share\":0},\"pid\":34528,\"username\":\"rado\"}},\"metricset\":{\"name\":\"process\",\"module\":\"system\",\"rtt\":43856},\"beat\":{\"hostname\":\"Rados-MacBook-Pro.local\",\"version\":\"6.3.0\",\"name\":\"Rados-MacBook-Pro.local\"},\"host\":{\"name\":\"Rados-MacBook-Pro.local\"}}", + "elasticsearch.slowlog.took": "1.4ms", + "elasticsearch.slowlog.took_millis": 1, + "elasticsearch.slowlog.type": "doc", + "fileset.module": "elasticsearch", + "fileset.name": "slowlog", + "input.type": "log", + "log.level": "INFO", + "message": "[2018-07-04T13:48:07,452][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[1.4ms], took_millis[1], type[doc], id[KUyMZWQBk9jw4gtg2y5-], routing[], source[{\"@timestamp\":\"2018-07-04T13:47:50.747Z\",\"system\":{\"process\":{\"ppid\":34526,\"state\":\"running\",\"cpu\":{\"total\":{\"value\":734879,\"pct\":0.0173,\"norm\":{\"pct\":0.0043}},\"start_time\":\"2018-07-04T06:56:34.863Z\"},\"pgid\":34526,\"cmdline\":\"/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 1 -isForBrowser -prefsLen 22119 -schedulerPrefs 0001,2 -greomni /Applications/Firefox.app/Contents/Resources/omni.ja -appomni /Applications/Firefox.app/Contents/Resources/browser/omni.ja -appdir /Applications/Firefox.app/Contents/Resources/browser -profile /Users/rado/Library/Application Support/Firefox/Profiles/pt6eoq1j.default-1484133908360 34526 gecko-crash-server-pipe.34526 org.mozilla.machname.231926932 tab\",\"name\":\"plugin-containe\",\"memory\":{\"size\":7489249280,\"rss\":{\"bytes\":567619584,\"pct\":0.033},\"share\":0},\"pid\":34528,\"username\":\"rado\"}},\"metricset\":{\"name\":\"process\",\"module\":\"system\",\"rtt\":43856},\"beat\":{\"hostname\":\"Rados-MacBook-Pro.local\",\"version\":\"6.3.0\",\"name\":\"Rados-MacBook-Pro.local\"},\"host\":{\"name\":\"Rados-MacBook-Pro.local\"}}]", + "offset": 3462, + "prospector.type": "log", + "service.name": "elasticsearch" + }, + { + "@timestamp": "2018-07-04T21:51:30,411", + "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", + "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", + "elasticsearch.node.name": "v_VJhjV", + "elasticsearch.slowlog.id": "s01HZ2QBk9jw4gtgaFtn", + "elasticsearch.slowlog.logger": "index.indexing.slowlog.index", + "elasticsearch.slowlog.routing": "", + "elasticsearch.slowlog.source_query": "\n{\n \"@timestamp\":\"2018-07-04T21:27:30.730Z\",\n \"metricset\":{\n \"name\":\"network\",\n \"module\":\"system\",\n \"rtt\":7264},\n \"system\":{\n \"network\":{\n \"name\":\"lo0\",\n \"in\":{\n \"errors\":0,\n \"dropped\":0,\n \"bytes\":77666873,\n \"packets\":244595},\n \"out\":{\n \"packets\":244595,\n \"bytes\":77666873,\n \"errors\":0,\n \"dropped\":0\n }\n }\n },\n \"beat\":{\n \"name\":\"Rados-MacBook-Pro.local\",\n \"hostname\":\"Rados-MacBook-Pro.local\",\n \"version\":\"6.3.0\"\n },\n \"host\":{\n \"name\":\"Rados-MacBook-Pro.local\"\n }\n }", + "elasticsearch.slowlog.took": "1.7ms", + "elasticsearch.slowlog.took_millis": 1, + "elasticsearch.slowlog.type": "doc", + "fileset.module": "elasticsearch", + "fileset.name": "slowlog", + "input.type": "log", + "log.level": "INFO", + "message": "[2018-07-04T21:51:30,411][INFO ][index.indexing.slowlog.index] [v_VJhjV] [metricbeat-6.3.0-2018.07.04/VLKxBLvUSYuIMKzpacGjRg] took[1.7ms], took_millis[1], type[doc], id[s01HZ2QBk9jw4gtgaFtn], routing[], source[\n{\n \"@timestamp\":\"2018-07-04T21:27:30.730Z\",\n \"metricset\":{\n \"name\":\"network\",\n \"module\":\"system\",\n \"rtt\":7264},\n \"system\":{\n \"network\":{\n \"name\":\"lo0\",\n \"in\":{\n \"errors\":0,\n \"dropped\":0,\n \"bytes\":77666873,\n \"packets\":244595},\n \"out\":{\n \"packets\":244595,\n \"bytes\":77666873,\n \"errors\":0,\n \"dropped\":0\n }\n }\n },\n \"beat\":{\n \"name\":\"Rados-MacBook-Pro.local\",\n \"hostname\":\"Rados-MacBook-Pro.local\",\n \"version\":\"6.3.0\"\n },\n \"host\":{\n \"name\":\"Rados-MacBook-Pro.local\"\n }\n }]", + "offset": 4753, + "prospector.type": "log", + "service.name": "elasticsearch" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/icinga/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/icinga/_meta/docs.asciidoc index c930bdf5..49e1dad3 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/icinga/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/icinga/_meta/docs.asciidoc @@ -49,7 +49,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "icinga.main.var.paths=[/path/to/log/icinga2/icinga2.log*]" -M "icinga.debug.var.paths=[/path/to/log/icinga2/debug.log*]" -M "icinga.startup.var.paths=[/path/to/log/icinga2/startup.log]" +-M "icinga.main.var.paths=[/path/to/log/icinga2/icinga2.log*]" -M "icinga.debug.var.paths=[/path/to/log/icinga2/debug.log*]" -M "icinga.startup.var.paths=[/path/to/log/icinga2/startup.log]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/icinga/debug/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/icinga/debug/test/test.log-expected.json index 20e628b9..2a8ec5db 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/icinga/debug/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/icinga/debug/test/test.log-expected.json @@ -1,125 +1,35 @@ [ { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs46val2BrA1a1-fCdy", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T11:43:09.000Z", - "offset": 1763, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "debug": { - "severity": "debug", - "message": "Query: UPDATE icinga_servicestatus SET acknowledgement_type = '0', active_checks_enabled = '1', check_command = 'mysql_health', check_source = 'demo', check_type = '0', current_check_attempt = '1', current_notification_number = '180', current_state = '2', endpoint_object_id = 242, event_handler = '', event_handler_enabled = '1', execution_time = '0.355594', flap_detection_enabled = '0', has_been_checked = '1', instance_id = 1, is_flapping = '0', is_reachable = '1', last_check = FROM_UNIXTIME(1491306189), last_hard_state = '2', last_hard_state_change = FROM_UNIXTIME(1491290599), last_notification = FROM_UNIXTIME(1491304989), last_state_change = FROM_UNIXTIME(1491290599), last_time_critical = FROM_UNIXTIME(1491306189), last_time_unknown = FROM_UNIXTIME(1491290589), latency = '0.001466', long_output = '', max_check_attempts = '5', next_check = FROM_UNIXTIME(1491306198), next_notification = FROM_UNIXTIME(1491306789), normal_check_interval = '0.166667', notifications_enabled = '1', original_attributes = 'null', output = 'CRITICAL - cannot connect to information_schema. Access denied for user \\'test1\\'@\\'blerims-mbp.int.netways.de\\' (using password: YES)', passive_checks_enabled = '1', percent_state_change = '0', perfdata = '', problem_has_been_acknowledged = '0', process_performance_data = '1', retry_check_interval = '0.166667', scheduled_downtime_depth = '0', service_object_id = 333, should_be_scheduled = '1', state_type = '1', status_update_time = FROM_UNIXTIME(1491306189) WHERE service_object_id = 333", - "facility": "IdoMysqlConnection" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/debug.log", - "fileset": { - "module": "icinga", - "name": "debug" - } - }, - "fields": { - "@timestamp": [ - 1491306189000 - ] - }, - "sort": [ - 1491306189000 - ] - }, + "@timestamp": "2017-04-04T11:43:09.000Z", + "fileset.module": "icinga", + "fileset.name": "debug", + "icinga.debug.facility": "GraphiteWriter", + "icinga.debug.message": "Add to metric list:'icinga2.demo.services.procs.procs.perfdata.procs.warn 250 1491306189'.", + "icinga.debug.severity": "debug", + "input.type": "log", + "offset": 0, + "prospector.type": "log" + }, { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs46val2BrA1a1-fCdx", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T11:43:09.000Z", - "offset": 141, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "debug": { - "severity": "debug", - "message": "Add to metric list:'icinga2.demo.services.procs.procs.perfdata.procs.warn 250 1491306189'.", - "facility": "GraphiteWriter" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/debug.log", - "fileset": { - "module": "icinga", - "name": "debug" - } - }, - "fields": { - "@timestamp": [ - 1491306189000 - ] - }, - "sort": [ - 1491306189000 - ] - }, + "@timestamp": "2017-04-04T11:43:09.000Z", + "fileset.module": "icinga", + "fileset.name": "debug", + "icinga.debug.facility": "IdoMysqlConnection", + "icinga.debug.message": "Query: UPDATE icinga_servicestatus SET acknowledgement_type = '0', active_checks_enabled = '1', check_command = 'mysql_health', check_source = 'demo', check_type = '0', current_check_attempt = '1', current_notification_number = '180', current_state = '2', endpoint_object_id = 242, event_handler = '', event_handler_enabled = '1', execution_time = '0.355594', flap_detection_enabled = '0', has_been_checked = '1', instance_id = 1, is_flapping = '0', is_reachable = '1', last_check = FROM_UNIXTIME(1491306189), last_hard_state = '2', last_hard_state_change = FROM_UNIXTIME(1491290599), last_notification = FROM_UNIXTIME(1491304989), last_state_change = FROM_UNIXTIME(1491290599), last_time_critical = FROM_UNIXTIME(1491306189), last_time_unknown = FROM_UNIXTIME(1491290589), latency = '0.001466', long_output = '', max_check_attempts = '5', next_check = FROM_UNIXTIME(1491306198), next_notification = FROM_UNIXTIME(1491306789), normal_check_interval = '0.166667', notifications_enabled = '1', original_attributes = 'null', output = 'CRITICAL - cannot connect to information_schema. Access denied for user \\'test1\\'@\\'blerims-mbp.int.netways.de\\' (using password: YES)', passive_checks_enabled = '1', percent_state_change = '0', perfdata = '', problem_has_been_acknowledged = '0', process_performance_data = '1', retry_check_interval = '0.166667', scheduled_downtime_depth = '0', service_object_id = 333, should_be_scheduled = '1', state_type = '1', status_update_time = FROM_UNIXTIME(1491306189) WHERE service_object_id = 333", + "icinga.debug.severity": "debug", + "input.type": "log", + "offset": 141, + "prospector.type": "log" + }, { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs46wjD2BrA1a1-fCdz", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T11:43:11.000Z", - "offset": 1927, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "debug": { - "severity": "notice", - "message": "Running command '/usr/lib/nagios/plugins/check_ping' '-H' 'mysql.icinga.com' '-c' '5000,100%' '-w' '3000,80%': PID 8288", - "facility": "Process" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/debug.log", - "fileset": { - "module": "icinga", - "name": "debug" - } - }, - "fields": { - "@timestamp": [ - 1491306191000 - ] - }, - "sort": [ - 1491306191000 - ] + "@timestamp": "2017-04-04T11:43:11.000Z", + "fileset.module": "icinga", + "fileset.name": "debug", + "icinga.debug.facility": "Process", + "icinga.debug.message": "Running command '/usr/lib/nagios/plugins/check_ping' '-H' 'mysql.icinga.com' '-c' '5000,100%' '-w' '3000,80%': PID 8288", + "icinga.debug.severity": "notice", + "input.type": "log", + "offset": 1763, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/icinga/main/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/icinga/main/test/test.log-expected.json index e1019e29..57174332 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/icinga/main/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/icinga/main/test/test.log-expected.json @@ -1,125 +1,35 @@ [ { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs4ouOJ2BrA1a1-e_FX", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T09:16:34.000Z", - "offset": 518, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "main": { - "severity": "warning", - "message": "Notification command for object 'demo!load' (PID: 19401, arguments: '/etc/icinga2/scripts/mail-service-notification.sh') terminated with exit code 127, output: /etc/icinga2/scripts/mail-service-notification.sh: 20: /etc/icinga2/scripts/mail-service-notification.sh: mail: not found\n/usr/bin/printf: write error: Broken pipe\n", - "facility": "PluginNotificationTask" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/icinga2.log", - "fileset": { - "module": "icinga", - "name": "main" - } - }, - "fields": { - "@timestamp": [ - 1491297394000 - ] - }, - "sort": [ - 1491297394000 - ] - }, + "@timestamp": "2017-04-04T09:16:34.000Z", + "fileset.module": "icinga", + "fileset.name": "main", + "icinga.main.facility": "Notification", + "icinga.main.message": "Sending 'Recovery' notification 'demo!load!mail-icingaadmin for user 'on-call'", + "icinga.main.severity": "information", + "input.type": "log", + "offset": 0, + "prospector.type": "log" + }, { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs4ouOJ2BrA1a1-e_FW", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T09:16:34.000Z", - "offset": 133, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "main": { - "severity": "information", - "message": "Sending 'Recovery' notification 'demo!load!mail-icingaadmin for user 'on-call'", - "facility": "Notification" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/icinga2.log", - "fileset": { - "module": "icinga", - "name": "main" - } - }, - "fields": { - "@timestamp": [ - 1491297394000 - ] - }, - "sort": [ - 1491297394000 - ] - }, + "@timestamp": "2017-04-04T09:16:34.000Z", + "fileset.module": "icinga", + "fileset.name": "main", + "icinga.main.facility": "PluginNotificationTask", + "icinga.main.message": "Notification command for object 'demo!load' (PID: 19401, arguments: '/etc/icinga2/scripts/mail-service-notification.sh') terminated with exit code 127, output: /etc/icinga2/scripts/mail-service-notification.sh: 20: /etc/icinga2/scripts/mail-service-notification.sh: mail: not found\n/usr/bin/printf: write error: Broken pipe\n", + "icinga.main.severity": "warning", + "input.type": "log", + "offset": 133, + "prospector.type": "log" + }, { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs4ovY82BrA1a1-e_FY", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T09:16:48.000Z", - "offset": 654, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "main": { - "severity": "information", - "message": "Query queue items: 0, query rate: 5.38333/s (323/min 1610/5min 4778/15min);", - "facility": "IdoMysqlConnection" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/icinga2.log", - "fileset": { - "module": "icinga", - "name": "main" - } - }, - "fields": { - "@timestamp": [ - 1491297408000 - ] - }, - "sort": [ - 1491297408000 - ] + "@timestamp": "2017-04-04T09:16:48.000Z", + "fileset.module": "icinga", + "fileset.name": "main", + "icinga.main.facility": "IdoMysqlConnection", + "icinga.main.message": "Query queue items: 0, query rate: 5.38333/s (323/min 1610/5min 4778/15min);", + "icinga.main.severity": "information", + "input.type": "log", + "offset": 518, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/icinga/startup/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/icinga/startup/test/test.log-expected.json index 68450a09..8222a7c1 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/icinga/startup/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/icinga/startup/test/test.log-expected.json @@ -1,84 +1,24 @@ [ { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs5obub2BrA1a1-fVkV", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T15:42:27.138Z", - "offset": 63, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "startup": { - "severity": "information", - "message": "Icinga application loader (version: r2.6.3-1)", - "facility": "cli" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/startup.log", - "fileset": { - "module": "icinga", - "name": "startup" - } - }, - "fields": { - "@timestamp": [ - 1491320547138 - ] - }, - "sort": [ - 1491320547138 - ] - }, + "@timestamp": "2018-07-24T21:15:27.590Z", + "fileset.module": "icinga", + "fileset.name": "startup", + "icinga.startup.facility": "cli", + "icinga.startup.message": "Icinga application loader (version: r2.6.3-1)", + "icinga.startup.severity": "information", + "input.type": "log", + "offset": 0, + "prospector.type": "log" + }, { - "_index": "filebeat-2017.04.04", - "_type": "log", - "_id": "AVs5obub2BrA1a1-fVkW", - "_score": null, - "_source": { - "@timestamp": "2017-04-04T15:42:27.138Z", - "offset": 111, - "beat": { - "hostname": "blerims-mbp.int.netways.de", - "name": "blerims-mbp.int.netways.de", - "version": "5.3.0" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "icinga": { - "startup": { - "severity": "information", - "message": "Loading configuration file(s).", - "facility": "cli" - } - }, - "source": "/usr/local/icinga2/var/log/icinga2/startup.log", - "fileset": { - "module": "icinga", - "name": "startup" - } - }, - "fields": { - "@timestamp": [ - 1491320547138 - ] - }, - "sort": [ - 1491320547138 - ] + "@timestamp": "2018-07-24T21:15:27.590Z", + "fileset.module": "icinga", + "fileset.name": "startup", + "icinga.startup.facility": "cli", + "icinga.startup.message": "Loading configuration file(s).", + "icinga.startup.severity": "information", + "input.type": "log", + "offset": 63, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/iis/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/iis/_meta/docs.asciidoc index bd3efcbc..d8067db7 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/iis/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/iis/_meta/docs.asciidoc @@ -46,7 +46,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "iis.access.var.paths=[C:/inetpub/logs/LogFiles/*/*.log]" -M "iis.error.var.paths=[C:/Windows/System32/LogFiles/HTTPERR/*.log]" +-M "iis.access.var.paths=[C:/inetpub/logs/LogFiles/*/*.log]" -M "iis.error.var.paths=[C:/Windows/System32/LogFiles/HTTPERR/*.log]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/iis/access/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/iis/access/_meta/fields.yml index c38779f1..0a8181fe 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/iis/access/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/iis/access/_meta/fields.yml @@ -157,3 +157,7 @@ type: keyword description: > The city name. + - name: region_iso_code + type: keyword + description: > + Region ISO code. diff --git a/vendor/github.com/elastic/beats/filebeat/module/iis/access/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/iis/access/test/test.log-expected.json index 70a6d065..7544fbbb 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/iis/access/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/iis/access/test/test.log-expected.json @@ -1,197 +1,103 @@ [ - { - "_index": "filebeat-6.1.3-alpha1-2018.01.20", - "_type": "doc", - "_id": "dL-VFGEBcLJksy_1Pk15", - "_version": 1, - "_score": null, - "_source": { - "iis": { - "access": { - "response_code": "200", - "geoip": { - "continent_name": "Europe", - "city_name": "Berlin", - "location": { - "lat": 52.5167, - "lon": 13.4 - }, - "region_name": "Land Berlin", - "country_iso_code": "DE" - }, - "method": "GET", - "sub_status": "0", - "user_name": "-", - "request_time_ms": "123", - "url": "/", - "referrer": "-", - "remote_ip": "85.181.35.98", - "port": "80", - "server_ip": "127.0.0.1", - "win32_status": "0", - "query_string": "q=100", - "user_agent": { - "major": "57", - "minor": "0", - "os": "Windows", - "name": "Firefox", - "os_name": "Windows", - "device": "Other" - } - } - }, - "@timestamp": "2018-01-01T08:09:10.000Z", - "offset": 405, - "beat": { - "hostname": "MACHINE-NAME", - "name": "MACHINE-NAME", - "version": "6.1.3-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2018-01-20T17:19:39.236Z", - "source": "/go/src/github.com/elastic/beats/filebeat/module/iis/access/test/test.log", - "fileset": { - "module": "iis", - "name": "access" - } + { + "@timestamp": "2018-01-01T08:09:10.000Z", + "fileset.module": "iis", + "fileset.name": "access", + "iis.access.geoip.city_name": "Berlin", + "iis.access.geoip.continent_name": "Europe", + "iis.access.geoip.country_iso_code": "DE", + "iis.access.geoip.location.lat": 52.5167, + "iis.access.geoip.location.lon": 13.4, + "iis.access.geoip.region_name": "Land Berlin", + "iis.access.method": "GET", + "iis.access.port": "80", + "iis.access.query_string": "q=100", + "iis.access.referrer": "-", + "iis.access.remote_ip": "85.181.35.98", + "iis.access.request_time_ms": "123", + "iis.access.response_code": "200", + "iis.access.server_ip": "127.0.0.1", + "iis.access.sub_status": "0", + "iis.access.url": "/", + "iis.access.user_agent.device": "Other", + "iis.access.user_agent.major": "57", + "iis.access.user_agent.minor": "0", + "iis.access.user_agent.name": "Firefox", + "iis.access.user_agent.os": "Windows", + "iis.access.user_agent.os_name": "Windows", + "iis.access.user_name": "-", + "iis.access.win32_status": "0", + "input.type": "log", + "offset": 257, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-01T09:10:11.000Z", + "fileset.module": "iis", + "fileset.name": "access", + "iis.access.body_received.bytes": "456", + "iis.access.body_sent.bytes": "123", + "iis.access.cookie": "-", + "iis.access.hostname": "example.com", + "iis.access.method": "GET", + "iis.access.port": "80", + "iis.access.query_string": "-", + "iis.access.referrer": "-", + "iis.access.remote_ip": "127.0.0.1", + "iis.access.request_time_ms": "789", + "iis.access.response_code": "200", + "iis.access.site_name": "W3SVC1", + "iis.access.sub_status": "0", + "iis.access.url": "/", + "iis.access.user_agent.device": "Other", + "iis.access.user_agent.major": "57", + "iis.access.user_agent.minor": "0", + "iis.access.user_agent.name": "Firefox", + "iis.access.user_agent.os": "Windows", + "iis.access.user_agent.os_name": "Windows", + "iis.access.user_name": "-", + "iis.access.win32_status": "0", + "input.type": "log", + "offset": 709, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-01T10:11:12.000Z", + "fileset.module": "iis", + "fileset.name": "access", + "iis.access.body_received.bytes": "456", + "iis.access.body_sent.bytes": "123", + "iis.access.cookie": "-", + "iis.access.geoip.city_name": "Berlin", + "iis.access.geoip.continent_name": "Europe", + "iis.access.geoip.country_iso_code": "DE", + "iis.access.geoip.location.lat": 52.5167, + "iis.access.geoip.location.lon": 13.4, + "iis.access.geoip.region_name": "Land Berlin", + "iis.access.hostname": "example.com", + "iis.access.http_version": "1.1", + "iis.access.method": "GET", + "iis.access.port": "80", + "iis.access.query_string": "-", + "iis.access.referrer": "-", + "iis.access.remote_ip": "85.181.35.98", + "iis.access.request_time_ms": "789", + "iis.access.response_code": "200", + "iis.access.server_ip": "127.0.0.1", + "iis.access.server_name": "MACHINE-NAME", + "iis.access.site_name": "W3SVC1", + "iis.access.sub_status": "0", + "iis.access.url": "/", + "iis.access.user_agent.device": "Other", + "iis.access.user_agent.major": "57", + "iis.access.user_agent.minor": "0", + "iis.access.user_agent.name": "Firefox", + "iis.access.user_agent.os": "Windows", + "iis.access.user_agent.os_name": "Windows", + "iis.access.user_name": "-", + "iis.access.win32_status": "0", + "input.type": "log", + "offset": 1204, + "prospector.type": "log" } - }, - { - "_index": "filebeat-6.1.3-alpha1-2018.01.20", - "_type": "doc", - "_id": "db-VFGEBcLJksy_1Pk15", - "_version": 1, - "_score": null, - "_source": { - "iis": { - "access": { - "response_code": "200", - "cookie": "-", - "method": "GET", - "sub_status": "0", - "user_name": "-", - "request_time_ms": "789", - "url": "/", - "site_name": "W3SVC1", - "referrer": "-", - "body_received": { - "bytes": "456" - }, - "hostname": "example.com", - "remote_ip": "127.0.0.1", - "port": "80", - "body_sent": { - "bytes": "123" - }, - "win32_status": "0", - "query_string": "-", - "user_agent": { - "major": "57", - "minor": "0", - "os": "Windows", - "name": "Firefox", - "os_name": "Windows", - "device": "Other" - } - } - }, - "@timestamp": "2018-01-01T09:10:11.000Z", - "offset": 869, - "beat": { - "hostname": "MACHINE-NAME", - "name": "MACHINE-NAME", - "version": "6.1.3-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2018-01-20T17:19:39.237Z", - "source": "/go/src/github.com/elastic/beats/filebeat/module/iis/access/test/test.log", - "fileset": { - "module": "iis", - "name": "access" - } - } - }, - { - "_index": "filebeat-6.1.3-alpha1-2018.01.20", - "_type": "doc", - "_id": "dr-VFGEBcLJksy_1Pk15", - "_version": 1, - "_score": null, - "_source": { - "iis": { - "access": { - "server_name": "MACHINE-NAME", - "response_code": "200", - "geoip": { - "continent_name": "Europe", - "city_name": "Berlin", - "location": { - "lat": 52.5167, - "lon": 13.4 - }, - "region_name": "Land Berlin", - "country_iso_code": "DE" - }, - "cookie": "-", - "method": "GET", - "sub_status": "0", - "user_name": "-", - "request_time_ms": "789", - "http_version": "1.1", - "url": "/", - "site_name": "W3SVC1", - "referrer": "-", - "body_received": { - "bytes": "456" - }, - "hostname": "example.com", - "remote_ip": "85.181.35.98", - "port": "80", - "server_ip": "127.0.0.1", - "body_sent": { - "bytes": "123" - }, - "win32_status": "0", - "query_string": "-", - "user_agent": { - "major": "57", - "minor": "0", - "os": "Windows", - "name": "Firefox", - "os_name": "Windows", - "device": "Other" - } - } - }, - "@timestamp": "2018-01-01T10:11:12.000Z", - "offset": 1399, - "beat": { - "hostname": "MACHINE-NAME", - "name": "MACHINE-NAME", - "version": "6.1.3-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2018-01-20T17:19:39.237Z", - "source": "/go/src/github.com/elastic/beats/filebeat/module/iis/access/test/test.log", - "fileset": { - "module": "iis", - "name": "access" - } - } - } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/iis/error/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/iis/error/_meta/fields.yml index ff48d740..90ff367b 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/iis/error/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/iis/error/_meta/fields.yml @@ -71,3 +71,7 @@ type: keyword description: > The city name. + - name: region_iso_code + type: keyword + description: > + Region ISO code. diff --git a/vendor/github.com/elastic/beats/filebeat/module/iis/error/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/iis/error/test/test.log-expected.json index 5974b636..2730859e 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/iis/error/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/iis/error/test/test.log-expected.json @@ -1,195 +1,88 @@ [ - { - "_index": "filebeat-6.1.3-alpha1-2018.01.20", - "_type": "doc", - "_id": "cL-VFGEBcLJksy_1Pk15", - "_score": 1, - "_source": { - "iis": { - "error": { - "queue_name": "-", - "response_code": "503", - "remote_ip": "172.31.77.6", - "method": "GET", - "server_ip": "172.31.77.6", - "remote_port": "2094", - "http_version": "1.1", - "server_port": "80", - "reason_phrase": "ConnLimit", - "url": "/qos/1kbfile.txt" - } - }, - "@timestamp": "2018-01-01T08:09:10.000Z", - "offset": 291, - "beat": { - "hostname": "MACHINE-NAME", - "name": "MACHINE-NAME", - "version": "6.1.3-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2018-01-20T17:19:39.229Z", - "source": "/go/src/github.com/elastic/beats/filebeat/module/iis/error/test/test.log", - "fileset": { - "module": "iis", - "name": "error" - } + { + "@timestamp": "2018-01-01T08:09:10.000Z", + "fileset.module": "iis", + "fileset.name": "error", + "iis.error.http_version": "1.1", + "iis.error.method": "GET", + "iis.error.queue_name": "-", + "iis.error.reason_phrase": "ConnLimit", + "iis.error.remote_ip": "172.31.77.6", + "iis.error.remote_port": "2094", + "iis.error.response_code": "503", + "iis.error.server_ip": "172.31.77.6", + "iis.error.server_port": "80", + "iis.error.url": "/qos/1kbfile.txt", + "input.type": "log", + "offset": 186, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-01T09:10:11.000Z", + "fileset.module": "iis", + "fileset.name": "error", + "iis.error.geoip.city_name": "Berlin", + "iis.error.geoip.continent_name": "Europe", + "iis.error.geoip.country_iso_code": "DE", + "iis.error.geoip.location.lat": 52.5167, + "iis.error.geoip.location.lon": 13.4, + "iis.error.geoip.region_name": "Land Berlin", + "iis.error.http_version": "1.1", + "iis.error.method": "GET", + "iis.error.queue_name": "-", + "iis.error.reason_phrase": "Hostname", + "iis.error.remote_ip": "85.181.35.98", + "iis.error.remote_port": "2780", + "iis.error.response_code": "400", + "iis.error.server_ip": "127.0.0.1", + "iis.error.server_port": "80", + "iis.error.url": "/ThisIsMyUrl.htm", + "input.type": "log", + "offset": 286, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-01T10:11:12.000Z", + "fileset.module": "iis", + "fileset.name": "error", + "iis.error.geoip.city_name": "Berlin", + "iis.error.geoip.continent_name": "Europe", + "iis.error.geoip.country_iso_code": "DE", + "iis.error.geoip.location.lat": 52.5167, + "iis.error.geoip.location.lon": 13.4, + "iis.error.geoip.region_name": "Land Berlin", + "iis.error.http_version": "2.0", + "iis.error.method": "GET", + "iis.error.queue_name": "-", + "iis.error.reason_phrase": "Version_N/S", + "iis.error.remote_ip": "85.181.35.98", + "iis.error.remote_port": "2894", + "iis.error.response_code": "505", + "iis.error.server_ip": "127.0.0.1", + "iis.error.server_port": "80", + "iis.error.url": "/", + "input.type": "log", + "offset": 384, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-01T11:12:13.000Z", + "fileset.module": "iis", + "fileset.name": "error", + "iis.error.geoip.city_name": "Berlin", + "iis.error.geoip.continent_name": "Europe", + "iis.error.geoip.country_iso_code": "DE", + "iis.error.geoip.location.lat": 52.5167, + "iis.error.geoip.location.lon": 13.4, + "iis.error.geoip.region_name": "Land Berlin", + "iis.error.queue_name": "-", + "iis.error.reason_phrase": "Timer_MinBytesPerSecond", + "iis.error.remote_ip": "85.181.35.98", + "iis.error.remote_port": "64388", + "iis.error.server_ip": "127.0.0.1", + "iis.error.server_port": "80", + "input.type": "log", + "offset": 470, + "prospector.type": "log" } - }, - { - "_index": "filebeat-6.1.3-alpha1-2018.01.20", - "_type": "doc", - "_id": "cb-VFGEBcLJksy_1Pk15", - "_version": 1, - "_score": null, - "_source": { - "iis": { - "error": { - "queue_name": "-", - "response_code": "400", - "remote_ip": "85.181.35.98", - "geoip": { - "continent_name": "Europe", - "city_name": "Berlin", - "location": { - "lat": 52.5167, - "lon": 13.4 - }, - "region_name": "Land Berlin", - "country_iso_code": "DE" - }, - "method": "GET", - "server_ip": "127.0.0.1", - "remote_port": "2780", - "http_version": "1.1", - "server_port": "80", - "reason_phrase": "Hostname", - "url": "/ThisIsMyUrl.htm" - } - }, - "@timestamp": "2018-01-01T09:10:11.000Z", - "offset": 390, - "beat": { - "hostname": "MACHINE-NAME", - "name": "MACHINE-NAME", - "version": "6.1.3-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2018-01-20T17:19:39.229Z", - "source": "/go/src/github.com/elastic/beats/filebeat/module/iis/error/test/test.log", - "fileset": { - "module": "iis", - "name": "error" - } - } - }, - { - "_index": "filebeat-6.1.3-alpha1-2018.01.20", - "_type": "doc", - "_id": "cr-VFGEBcLJksy_1Pk15", - "_version": 1, - "_score": null, - "_source": { - "iis": { - "error": { - "queue_name": "-", - "response_code": "505", - "remote_ip": "85.181.35.98", - "geoip": { - "continent_name": "Europe", - "city_name": "Berlin", - "location": { - "lat": 52.5167, - "lon": 13.4 - }, - "region_name": "Land Berlin", - "country_iso_code": "DE" - }, - "method": "GET", - "server_ip": "127.0.0.1", - "remote_port": "2894", - "http_version": "2.0", - "server_port": "80", - "reason_phrase": "Version_N/S", - "url": "/" - } - }, - "@timestamp": "2018-01-01T10:11:12.000Z", - "offset": 477, - "beat": { - "hostname": "MACHINE-NAME", - "name": "MACHINE-NAME", - "version": "6.1.3-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2018-01-20T17:19:39.229Z", - "source": "/go/src/github.com/elastic/beats/filebeat/module/iis/error/test/test.log", - "fileset": { - "module": "iis", - "name": "error" - } - } - }, - { - "_index": "filebeat-6.1.3-alpha1-2018.01.20", - "_type": "doc", - "_id": "c7-VFGEBcLJksy_1Pk15", - "_version": 1, - "_score": null, - "_source": { - "iis": { - "error": { - "queue_name": "-", - "remote_ip": "85.181.35.98", - "geoip": { - "continent_name": "Europe", - "city_name": "Berlin", - "location": { - "lat": 52.5167, - "lon": 13.4 - }, - "region_name": "Land Berlin", - "country_iso_code": "DE" - }, - "server_ip": "127.0.0.1", - "remote_port": "64388", - "server_port": "80", - "reason_phrase": "Timer_MinBytesPerSecond" - } - }, - "@timestamp": "2018-01-01T11:12:13.000Z", - "offset": 566, - "beat": { - "hostname": "MACHINE-NAME", - "name": "MACHINE-NAME", - "version": "6.1.3-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2018-01-20T17:19:39.229Z", - "source": "/go/src/github.com/elastic/beats/filebeat/module/iis/error/test/test.log", - "fileset": { - "module": "iis", - "name": "error" - } - } - } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/config.yml b/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/config.yml index fe568e8e..9193a87a 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/config.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/config.yml @@ -11,3 +11,5 @@ # Filebeat will choose the paths depending on your OS. #var.paths: + # Convert the timestamp to UTC. Requires Elasticsearch >= 6.1. + #var.convert_timezone: false diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/docs.asciidoc index bdce41e9..52a22d8f 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/_meta/docs.asciidoc @@ -10,7 +10,7 @@ include::../include/what-happens.asciidoc[] [float] === Compatibility -The +{modulename}+ module was tested with logs from versions 2.11. +The +{modulename}+ module was tested with logs from versions 0.9 and 1.11. include::../include/running-modules.asciidoc[] @@ -44,7 +44,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "kafka.log.var.paths=[/path/to/logs/controller.log*, /path/to/logs/server.log*, /path/to/logs/state-change.log*, /path/to/logs/kafka-*.log*]" +-M "kafka.log.var.paths=[/path/to/logs/controller.log*, /path/to/logs/server.log*, /path/to/logs/state-change.log*, /path/to/logs/kafka-*.log*]" ----- @@ -57,3 +57,5 @@ include::../include/config-option-intro.asciidoc[] ==== `log` fileset settings include::../include/var-paths.asciidoc[] + +include::../include/var-convert-timezone.asciidoc[] diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/config/log.yml b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/config/log.yml index 98c684ef..2aec4b7b 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/config/log.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/config/log.yml @@ -8,3 +8,7 @@ multiline: pattern: '^\[' negate: true match: after +{{ if .convert_timezone }} +processors: +- add_locale: ~ +{{ end }} diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/ingest/pipeline.json index 9ba9a248..4f38d6cd 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/ingest/pipeline.json +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/ingest/pipeline.json @@ -13,8 +13,11 @@ { "grok": { "field": "kafka.log.message", + "pattern_definitions": { + "KAFKA_COMPONENT": "[^\\]]*" + }, "patterns": [ - "\\[%{DATA:kafka.log.component}\\][,:. ] +%{JAVALOGMESSAGE:kafka.log.message}" + "\\[%{KAFKA_COMPONENT:kafka.log.component}\\][,:.]? +%{JAVALOGMESSAGE:kafka.log.message}" ], "on_failure": [ { @@ -52,7 +55,9 @@ "date": { "field": "kafka.log.timestamp", "target_field": "@timestamp", - "formats": ["yyyy-MM-dd HH:mm:ss,SSS"] + "formats": ["yyyy-MM-dd HH:mm:ss,SSS"], + {< if .convert_timezone >}"timezone": "{{ beat.timezone }}",{< end >} + "ignore_failure": true } }, {"remove": {"field": "kafka.log.timestamp" }} diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/manifest.yml b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/manifest.yml index 97ea201e..bdf24847 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/manifest.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/manifest.yml @@ -9,6 +9,13 @@ var: - "{{.kafka_home}}/logs/server.log*" - "{{.kafka_home}}/logs/state-change.log*" - "{{.kafka_home}}/logs/kafka-*.log*" + - name: convert_timezone + default: false + # if ES < 6.1.0, this flag switches to false automatically when evaluating the + # pipeline + min_elasticsearch_version: + version: 6.1.0 + value: false ingest_pipeline: ingest/pipeline.json input: config/log.yml diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log-expected.json index 02c88963..698fde1e 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log-expected.json @@ -1,1021 +1,262 @@ [ - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "wItR0l0Bed9fOYVUjezS", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.113Z", - "offset": 2695, - "kafka": { - "log": { - "component": "Controller-0-to-broker-0-send-thread", - "level": "INFO", - "message": "Shutdown completed", - "class": "kafka.controller.RequestSendThread" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.376Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 11:44:25,113] INFO [Controller-0-to-broker-0-send-thread]: Shutdown completed (kafka.controller.RequestSendThread)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.113Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065113 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "notR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.112Z", - "offset": 2452, - "kafka": { - "log": { - "component": "Controller-0-to-broker-0-send-thread", - "level": "INFO", - "message": "Shutting down", - "class": "kafka.controller.RequestSendThread" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.374Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 11:44:25,112] INFO [Controller-0-to-broker-0-send-thread]: Shutting down (kafka.controller.RequestSendThread)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.112Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065112 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "n4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.112Z", - "offset": 2568, - "kafka": { - "log": { - "component": "Controller-0-to-broker-0-send-thread", - "level": "INFO", - "message": "Stopped", - "class": "kafka.controller.RequestSendThread" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.376Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 11:44:25,112] INFO [Controller-0-to-broker-0-send-thread]: Stopped (kafka.controller.RequestSendThread)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.112Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065112 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "nYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.111Z", - "offset": 2330, - "kafka": { - "log": { - "component": "Replica state machine on controller 0", - "level": "INFO", - "message": "Stopped replica state machine", - "class": "kafka.controller.ReplicaStateMachine" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.373Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 11:44:25,111] INFO [Replica state machine on controller 0]: Stopped replica state machine (kafka.controller.ReplicaStateMachine)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.111Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065111 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "nItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.105Z", - "offset": 2189, - "kafka": { - "log": { - "component": "Partition state machine on Controller 0", - "level": "INFO", - "message": "Stopped partition state machine", - "class": "kafka.controller.PartitionStateMachine" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.372Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 11:44:25,105] INFO [Partition state machine on Controller 0]: Stopped partition state machine (kafka.controller.PartitionStateMachine)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.105Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065105 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "m4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.100Z", - "offset": 2042, - "kafka": { - "log": { - "component": "Controller 0", - "level": "DEBUG", - "message": "De-registering IsrChangeNotificationListener", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.372Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 11:44:25,100] DEBUG [Controller 0]: De-registering IsrChangeNotificationListener (kafka.controller.KafkaController)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.100Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065100 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "motR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.099Z", - "offset": 1914, - "kafka": { - "log": { - "component": "Controller 0", - "level": "DEBUG", - "message": "Controller resigning, broker id 0", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.372Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 11:44:25,099] DEBUG [Controller 0]: Controller resigning, broker id 0 (kafka.controller.KafkaController)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.099Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065099 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "mYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.097Z", - "offset": 1797, - "kafka": { - "log": { - "component": "controller-event-thread", - "level": "INFO", - "message": "Shutdown completed", - "class": "kafka.controller.ControllerEventManager$ControllerEventThread" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.370Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 11:44:25,097] INFO [controller-event-thread]: Shutdown completed (kafka.controller.ControllerEventManager$ControllerEventThread)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.097Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065097 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "mItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.095Z", - "offset": 1656, - "kafka": { - "log": { - "component": "controller-event-thread", - "level": "INFO", - "message": "Stopped", - "class": "kafka.controller.ControllerEventManager$ControllerEventThread" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.369Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 11:44:25,095] INFO [controller-event-thread]: Stopped (kafka.controller.ControllerEventManager$ControllerEventThread)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.095Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065095 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "l4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:25.094Z", - "offset": 1526, - "kafka": { - "log": { - "component": "controller-event-thread", - "level": "INFO", - "message": "Shutting down", - "class": "kafka.controller.ControllerEventManager$ControllerEventThread" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.367Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 11:44:25,094] INFO [controller-event-thread]: Shutting down (kafka.controller.ControllerEventManager$ControllerEventThread)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:25.094Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847065094 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "lotR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T11:44:22.588Z", - "offset": 1390, - "kafka": { - "log": { - "component": "Controller 0", - "level": "DEBUG", - "message": "Live brokers: ", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.365Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 11:44:22,588] DEBUG [Controller 0]: Live brokers: (kafka.controller.KafkaController)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T11:44:22.588Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501847062588 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "lYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.165Z", - "offset": 1292, - "kafka": { - "log": { - "component": "Partition state machine on Controller 0", - "level": "INFO", - "message": "Invoking state change to OnlinePartition for partitions ", - "class": "kafka.controller.PartitionStateMachine" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.364Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 10:48:21,165] INFO [Partition state machine on Controller 0]: Invoking state change to OnlinePartition for partitions (kafka.controller.PartitionStateMachine)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.165Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701165 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "lItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.157Z", - "offset": 1120, - "kafka": { - "log": { - "component": "Controller 0", - "level": "INFO", - "message": "Broker 0 is ready to serve as the new controller with epoch 1", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.363Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:21,157] INFO [Controller 0]: Broker 0 is ready to serve as the new controller with epoch 1 (kafka.controller.KafkaController)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.157Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701157 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "k4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.156Z", - "offset": 976, - "kafka": { - "log": { - "component": "Partition state machine on Controller 0", - "level": "INFO", - "message": "Started partition state machine with initial state -> Map()", - "class": "kafka.controller.PartitionStateMachine" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.362Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 10:48:21,156] INFO [Partition state machine on Controller 0]: Started partition state machine with initial state -> Map() (kafka.controller.PartitionStateMachine)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.156Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701156 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "kotR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.154Z", - "offset": 801, - "kafka": { - "log": { - "component": "Replica state machine on controller 0", - "level": "INFO", - "message": "Started replica state machine with initial state -> Map()", - "class": "kafka.controller.ReplicaStateMachine" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.361Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 10:48:21,154] INFO [Replica state machine on controller 0]: Started replica state machine with initial state -> Map() (kafka.controller.ReplicaStateMachine)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.154Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701154 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "kYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.085Z", - "offset": 632, - "kafka": { - "log": { - "component": "Controller 0", - "level": "DEBUG", - "message": "Registering IsrChangeNotificationListener", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.360Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:21,085] DEBUG [Controller 0]: Registering IsrChangeNotificationListener (kafka.controller.KafkaController)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.085Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701085 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "kItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.082Z", - "offset": 507, - "kafka": { - "log": { - "component": "Controller 0", - "level": "INFO", - "message": "Controller 0 incremented epoch to 1", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.358Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 10:48:21,082] INFO [Controller 0]: Controller 0 incremented epoch to 1 (kafka.controller.KafkaController)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.082Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701082 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "j4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.064Z", - "offset": 389, - "kafka": { - "log": { - "component": "Controller 0", - "level": "INFO", - "message": "Broker 0 starting become controller state transition", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.358Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "message": "[2017-08-04 10:48:21,064] INFO [Controller 0]: Broker 0 starting become controller state transition (kafka.controller.KafkaController)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.064Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701064 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "jotR0l0Bed9fOYVUfexP", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.063Z", - "offset": 254, - "kafka": { - "log": { - "component": "Controller 0", - "level": "INFO", - "message": "0 successfully elected as the controller", - "class": "kafka.controller.KafkaController" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.358Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:21,063] INFO [Controller 0]: 0 successfully elected as the controller (kafka.controller.KafkaController)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.063Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701063 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "jYtR0l0Bed9fOYVUfOzU", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.048Z", - "offset": 131, - "kafka": { - "log": { - "component": "controller-event-thread", - "level": "INFO", - "message": "Starting", - "class": "kafka.controller.ControllerEventManager$ControllerEventThread" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.358Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:21,048] INFO [controller-event-thread]: Starting (kafka.controller.ControllerEventManager$ControllerEventThread)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.048Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/controller.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701048 - ] - } -] + { + "@timestamp": "2017-08-04T10:48:21.048Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.ControllerEventManager$ControllerEventThread", + "kafka.log.component": "controller-event-thread", + "kafka.log.level": "INFO", + "kafka.log.message": "Starting", + "message": "[2017-08-04 10:48:21,048] INFO [controller-event-thread]: Starting (kafka.controller.ControllerEventManager$ControllerEventThread)", + "offset": 0, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.063Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "0 successfully elected as the controller", + "message": "[2017-08-04 10:48:21,063] INFO [Controller 0]: 0 successfully elected as the controller (kafka.controller.KafkaController)", + "offset": 131, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.064Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Broker 0 starting become controller state transition", + "message": "[2017-08-04 10:48:21,064] INFO [Controller 0]: Broker 0 starting become controller state transition (kafka.controller.KafkaController)", + "offset": 254, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.082Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Controller 0 incremented epoch to 1", + "message": "[2017-08-04 10:48:21,082] INFO [Controller 0]: Controller 0 incremented epoch to 1 (kafka.controller.KafkaController)", + "offset": 389, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.085Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "DEBUG", + "kafka.log.message": "Registering IsrChangeNotificationListener", + "message": "[2017-08-04 10:48:21,085] DEBUG [Controller 0]: Registering IsrChangeNotificationListener (kafka.controller.KafkaController)", + "offset": 507, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.154Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.ReplicaStateMachine", + "kafka.log.component": "Replica state machine on controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Started replica state machine with initial state -> Map()", + "message": "[2017-08-04 10:48:21,154] INFO [Replica state machine on controller 0]: Started replica state machine with initial state -> Map() (kafka.controller.ReplicaStateMachine)", + "offset": 632, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.156Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.PartitionStateMachine", + "kafka.log.component": "Partition state machine on Controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Started partition state machine with initial state -> Map()", + "message": "[2017-08-04 10:48:21,156] INFO [Partition state machine on Controller 0]: Started partition state machine with initial state -> Map() (kafka.controller.PartitionStateMachine)", + "offset": 801, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.157Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Broker 0 is ready to serve as the new controller with epoch 1", + "message": "[2017-08-04 10:48:21,157] INFO [Controller 0]: Broker 0 is ready to serve as the new controller with epoch 1 (kafka.controller.KafkaController)", + "offset": 976, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.165Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.PartitionStateMachine", + "kafka.log.component": "Partition state machine on Controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Invoking state change to OnlinePartition for partitions ", + "message": "[2017-08-04 10:48:21,165] INFO [Partition state machine on Controller 0]: Invoking state change to OnlinePartition for partitions (kafka.controller.PartitionStateMachine)", + "offset": 1120, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:22.588Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "DEBUG", + "kafka.log.message": "Live brokers: ", + "message": "[2017-08-04 11:44:22,588] DEBUG [Controller 0]: Live brokers: (kafka.controller.KafkaController)", + "offset": 1292, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.094Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.ControllerEventManager$ControllerEventThread", + "kafka.log.component": "controller-event-thread", + "kafka.log.level": "INFO", + "kafka.log.message": "Shutting down", + "message": "[2017-08-04 11:44:25,094] INFO [controller-event-thread]: Shutting down (kafka.controller.ControllerEventManager$ControllerEventThread)", + "offset": 1390, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.095Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.ControllerEventManager$ControllerEventThread", + "kafka.log.component": "controller-event-thread", + "kafka.log.level": "INFO", + "kafka.log.message": "Stopped", + "message": "[2017-08-04 11:44:25,095] INFO [controller-event-thread]: Stopped (kafka.controller.ControllerEventManager$ControllerEventThread)", + "offset": 1526, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.097Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.ControllerEventManager$ControllerEventThread", + "kafka.log.component": "controller-event-thread", + "kafka.log.level": "INFO", + "kafka.log.message": "Shutdown completed", + "message": "[2017-08-04 11:44:25,097] INFO [controller-event-thread]: Shutdown completed (kafka.controller.ControllerEventManager$ControllerEventThread)", + "offset": 1656, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.099Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "DEBUG", + "kafka.log.message": "Controller resigning, broker id 0", + "message": "[2017-08-04 11:44:25,099] DEBUG [Controller 0]: Controller resigning, broker id 0 (kafka.controller.KafkaController)", + "offset": 1797, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.100Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.KafkaController", + "kafka.log.component": "Controller 0", + "kafka.log.level": "DEBUG", + "kafka.log.message": "De-registering IsrChangeNotificationListener", + "message": "[2017-08-04 11:44:25,100] DEBUG [Controller 0]: De-registering IsrChangeNotificationListener (kafka.controller.KafkaController)", + "offset": 1914, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.105Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.PartitionStateMachine", + "kafka.log.component": "Partition state machine on Controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Stopped partition state machine", + "message": "[2017-08-04 11:44:25,105] INFO [Partition state machine on Controller 0]: Stopped partition state machine (kafka.controller.PartitionStateMachine)", + "offset": 2042, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.111Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.ReplicaStateMachine", + "kafka.log.component": "Replica state machine on controller 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Stopped replica state machine", + "message": "[2017-08-04 11:44:25,111] INFO [Replica state machine on controller 0]: Stopped replica state machine (kafka.controller.ReplicaStateMachine)", + "offset": 2189, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.112Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.RequestSendThread", + "kafka.log.component": "Controller-0-to-broker-0-send-thread", + "kafka.log.level": "INFO", + "kafka.log.message": "Shutting down", + "message": "[2017-08-04 11:44:25,112] INFO [Controller-0-to-broker-0-send-thread]: Shutting down (kafka.controller.RequestSendThread)", + "offset": 2330, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.112Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.RequestSendThread", + "kafka.log.component": "Controller-0-to-broker-0-send-thread", + "kafka.log.level": "INFO", + "kafka.log.message": "Stopped", + "message": "[2017-08-04 11:44:25,112] INFO [Controller-0-to-broker-0-send-thread]: Stopped (kafka.controller.RequestSendThread)", + "offset": 2452, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T11:44:25.113Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.controller.RequestSendThread", + "kafka.log.component": "Controller-0-to-broker-0-send-thread", + "kafka.log.level": "INFO", + "kafka.log.message": "Shutdown completed", + "message": "[2017-08-04 11:44:25,113] INFO [Controller-0-to-broker-0-send-thread]: Shutdown completed (kafka.controller.RequestSendThread)", + "offset": 2568, + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log-expected.json index 5d00a3b2..15b904ad 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log-expected.json @@ -1,1021 +1,262 @@ [ - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "wYtR0l0Bed9fOYVUjuwB", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.167Z", - "offset": 2641, - "kafka": { - "log": { - "component": "Transaction Marker Channel Manager 0", - "level": "INFO", - "message": "Starting", - "class": "kafka.coordinator.transaction.TransactionMarkerChannelManager" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.385Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:21,167] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.coordinator.transaction.TransactionMarkerChannelManager)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.167Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701167 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "sotR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.162Z", - "offset": 2497, - "kafka": { - "log": { - "component": "Transaction Coordinator 0", - "level": "INFO", - "message": "Starting up.", - "class": "kafka.coordinator.transaction.TransactionCoordinator" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.384Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:21,162] INFO [Transaction Coordinator 0]: Starting up. (kafka.coordinator.transaction.TransactionCoordinator)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.162Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701162 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "sYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.127Z", - "offset": 2369, - "kafka": { - "log": { - "component": "ProducerId Manager 0", - "level": "INFO", - "message": "Acquired new producerId block (brokerId:0,blockStartProducerId:0,blockEndProducerId:999) by writing to Zk with path version 1", - "class": "kafka.coordinator.transaction.ProducerIdManager" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.384Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:21,127] INFO [ProducerId Manager 0]: Acquired new producerId block (brokerId:0,blockStartProducerId:0,blockEndProducerId:999) by writing to Zk with path version 1 (kafka.coordinator.transaction.ProducerIdManager)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.127Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701127 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "sItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.095Z", - "offset": 2138, - "kafka": { - "log": { - "component": "Group Metadata Manager on Broker 0", - "level": "INFO", - "message": "Removed 0 expired offsets in 1 milliseconds.", - "class": "kafka.coordinator.group.GroupMetadataManager" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.384Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:21,095] INFO [Group Metadata Manager on Broker 0]: Removed 0 expired offsets in 1 milliseconds. (kafka.coordinator.group.GroupMetadataManager)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.095Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701095 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "r4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.063Z", - "offset": 1977, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Result of znode creation is: OK", - "class": "kafka.utils.ZKCheckedEphemeral" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.384Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:21,063] INFO Result of znode creation is: OK (kafka.utils.ZKCheckedEphemeral)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.063Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701063 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "rotR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.062Z", - "offset": 1881, - "kafka": { - "log": { - "component": "ExpirationReaper-0-Heartbeat", - "level": "INFO", - "message": "Starting", - "class": "kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.381Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:21,062] INFO [ExpirationReaper-0-Heartbeat]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.062Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701062 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "rYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.873Z", - "offset": 1745, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Loading logs.", - "class": "kafka.log.LogManager" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.381Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,873] INFO Loading logs. (kafka.log.LogManager)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.873Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700873 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "rItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.866Z", - "offset": 1677, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Log directory '/tmp/kafka-logs' not found, creating it.", - "class": "kafka.log.LogManager" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.381Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:20,866] INFO Log directory '/tmp/kafka-logs' not found, creating it. (kafka.log.LogManager)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.866Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700866 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "q4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.800Z", - "offset": 1567, - "kafka": { - "log": { - "component": "ThrottledRequestReaper-Fetch", - "level": "INFO", - "message": "Starting", - "class": "kafka.server.ClientQuotaManager$ThrottledRequestReaper" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.380Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,800] INFO [ThrottledRequestReaper-Fetch]: Starting (kafka.server.ClientQuotaManager$ThrottledRequestReaper)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.800Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700800 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "qotR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.748Z", - "offset": 1438, - "kafka": { - "log": { - "component": "unknown", - "level": "WARN", - "message": "No meta.properties file under dir /tmp/kafka-logs/meta.properties", - "class": "kafka.server.BrokerMetadataCheckpoint" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.380Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,748] WARN No meta.properties file under dir /tmp/kafka-logs/meta.properties (kafka.server.BrokerMetadataCheckpoint)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.748Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700748 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "qYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.458Z", - "offset": 1301, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "zookeeper state changed (SyncConnected)", - "class": "org.I0Itec.zkclient.ZkClient" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.379Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:20,458] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.458Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700458 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "qItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.457Z", - "offset": 1199, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x15dabf8d4140000, negotiated timeout = 6000", - "class": "org.apache.zookeeper.ClientCnxn" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.379Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,457] INFO Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x15dabf8d4140000, negotiated timeout = 6000 (org.apache.zookeeper.ClientCnxn)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.457Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700457 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "p4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.420Z", - "offset": 1004, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session", - "class": "org.apache.zookeeper.ClientCnxn" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.379Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,420] INFO Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session (org.apache.zookeeper.ClientCnxn)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.420Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700420 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "potR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.415Z", - "offset": 855, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)", - "class": "org.apache.zookeeper.ClientCnxn" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.379Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,415] INFO Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.415Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700415 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "pYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.413Z", - "offset": 662, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Waiting for keeper state SyncConnected", - "class": "org.I0Itec.zkclient.ZkClient" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.378Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,413] INFO Waiting for keeper state SyncConnected (org.I0Itec.zkclient.ZkClient)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.413Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700413 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "pItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.401Z", - "offset": 561, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Initiating client connection, connectString=localhost:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@5ffead27", - "class": "org.apache.zookeeper.ZooKeeper" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.378Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,401] INFO Initiating client connection, connectString=localhost:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@5ffead27 (org.apache.zookeeper.ZooKeeper)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.401Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700401 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "o4tR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.400Z", - "offset": 372, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Client environment:java.compiler=", - "class": "org.apache.zookeeper.ZooKeeper" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.359Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,400] INFO Client environment:java.compiler= (org.apache.zookeeper.ZooKeeper)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.400Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700400 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "ootR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.400Z", - "offset": 270, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Client environment:java.io.tmpdir=/tmp", - "class": "org.apache.zookeeper.ZooKeeper" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.359Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,400] INFO Client environment:java.io.tmpdir=/tmp (org.apache.zookeeper.ZooKeeper)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.400Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700400 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "oYtR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.379Z", - "offset": 167, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "Connecting to zookeeper on localhost:2181", - "class": "kafka.server.KafkaServer" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.359Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "message": "[2017-08-04 10:48:20,379] INFO Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.379Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700379 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "oItR0l0Bed9fOYVUfeyz", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:20.377Z", - "offset": 67, - "kafka": { - "log": { - "component": "unknown", - "level": "INFO", - "message": "starting", - "class": "kafka.server.KafkaServer" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.359Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log", - "fileset": { - "module": "kafka", - "name": "log" - }, - "message": "[2017-08-04 10:48:20,377] INFO starting (kafka.server.KafkaServer)" - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:20.377Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/server.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843700377 - ] - } -] + { + "@timestamp": "2017-08-04T10:48:20.377Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.server.KafkaServer", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "starting", + "message": "[2017-08-04 10:48:20,377] INFO starting (kafka.server.KafkaServer)", + "offset": 0, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.379Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.server.KafkaServer", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Connecting to zookeeper on localhost:2181", + "message": "[2017-08-04 10:48:20,379] INFO Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer)", + "offset": 67, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.400Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.apache.zookeeper.ZooKeeper", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Client environment:java.io.tmpdir=/tmp", + "message": "[2017-08-04 10:48:20,400] INFO Client environment:java.io.tmpdir=/tmp (org.apache.zookeeper.ZooKeeper)", + "offset": 167, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.400Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.apache.zookeeper.ZooKeeper", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Client environment:java.compiler=", + "message": "[2017-08-04 10:48:20,400] INFO Client environment:java.compiler= (org.apache.zookeeper.ZooKeeper)", + "offset": 270, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.401Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.apache.zookeeper.ZooKeeper", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Initiating client connection, connectString=localhost:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@5ffead27", + "message": "[2017-08-04 10:48:20,401] INFO Initiating client connection, connectString=localhost:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@5ffead27 (org.apache.zookeeper.ZooKeeper)", + "offset": 372, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.413Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.I0Itec.zkclient.ZkClient", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Waiting for keeper state SyncConnected", + "message": "[2017-08-04 10:48:20,413] INFO Waiting for keeper state SyncConnected (org.I0Itec.zkclient.ZkClient)", + "offset": 561, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.415Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.apache.zookeeper.ClientCnxn", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)", + "message": "[2017-08-04 10:48:20,415] INFO Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)", + "offset": 662, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.420Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.apache.zookeeper.ClientCnxn", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session", + "message": "[2017-08-04 10:48:20,420] INFO Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session (org.apache.zookeeper.ClientCnxn)", + "offset": 855, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.457Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.apache.zookeeper.ClientCnxn", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x15dabf8d4140000, negotiated timeout = 6000", + "message": "[2017-08-04 10:48:20,457] INFO Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x15dabf8d4140000, negotiated timeout = 6000 (org.apache.zookeeper.ClientCnxn)", + "offset": 1004, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.458Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "org.I0Itec.zkclient.ZkClient", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "zookeeper state changed (SyncConnected)", + "message": "[2017-08-04 10:48:20,458] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)", + "offset": 1199, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.748Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.server.BrokerMetadataCheckpoint", + "kafka.log.component": "unknown", + "kafka.log.level": "WARN", + "kafka.log.message": "No meta.properties file under dir /tmp/kafka-logs/meta.properties", + "message": "[2017-08-04 10:48:20,748] WARN No meta.properties file under dir /tmp/kafka-logs/meta.properties (kafka.server.BrokerMetadataCheckpoint)", + "offset": 1301, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.800Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.server.ClientQuotaManager$ThrottledRequestReaper", + "kafka.log.component": "ThrottledRequestReaper-Fetch", + "kafka.log.level": "INFO", + "kafka.log.message": "Starting", + "message": "[2017-08-04 10:48:20,800] INFO [ThrottledRequestReaper-Fetch]: Starting (kafka.server.ClientQuotaManager$ThrottledRequestReaper)", + "offset": 1438, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.866Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.log.LogManager", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Log directory '/tmp/kafka-logs' not found, creating it.", + "message": "[2017-08-04 10:48:20,866] INFO Log directory '/tmp/kafka-logs' not found, creating it. (kafka.log.LogManager)", + "offset": 1567, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:20.873Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.log.LogManager", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Loading logs.", + "message": "[2017-08-04 10:48:20,873] INFO Loading logs. (kafka.log.LogManager)", + "offset": 1677, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.062Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper", + "kafka.log.component": "ExpirationReaper-0-Heartbeat", + "kafka.log.level": "INFO", + "kafka.log.message": "Starting", + "message": "[2017-08-04 10:48:21,062] INFO [ExpirationReaper-0-Heartbeat]: Starting (kafka.server.DelayedOperationPurgatory$ExpiredOperationReaper)", + "offset": 1745, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.063Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.utils.ZKCheckedEphemeral", + "kafka.log.component": "unknown", + "kafka.log.level": "INFO", + "kafka.log.message": "Result of znode creation is: OK", + "message": "[2017-08-04 10:48:21,063] INFO Result of znode creation is: OK (kafka.utils.ZKCheckedEphemeral)", + "offset": 1881, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.095Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.coordinator.group.GroupMetadataManager", + "kafka.log.component": "Group Metadata Manager on Broker 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Removed 0 expired offsets in 1 milliseconds.", + "message": "[2017-08-04 10:48:21,095] INFO [Group Metadata Manager on Broker 0]: Removed 0 expired offsets in 1 milliseconds. (kafka.coordinator.group.GroupMetadataManager)", + "offset": 1977, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.127Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.coordinator.transaction.ProducerIdManager", + "kafka.log.component": "ProducerId Manager 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Acquired new producerId block (brokerId:0,blockStartProducerId:0,blockEndProducerId:999) by writing to Zk with path version 1", + "message": "[2017-08-04 10:48:21,127] INFO [ProducerId Manager 0]: Acquired new producerId block (brokerId:0,blockStartProducerId:0,blockEndProducerId:999) by writing to Zk with path version 1 (kafka.coordinator.transaction.ProducerIdManager)", + "offset": 2138, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.162Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.coordinator.transaction.TransactionCoordinator", + "kafka.log.component": "Transaction Coordinator 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Starting up.", + "message": "[2017-08-04 10:48:21,162] INFO [Transaction Coordinator 0]: Starting up. (kafka.coordinator.transaction.TransactionCoordinator)", + "offset": 2369, + "prospector.type": "log" + }, + { + "@timestamp": "2017-08-04T10:48:21.167Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "kafka.coordinator.transaction.TransactionMarkerChannelManager", + "kafka.log.component": "Transaction Marker Channel Manager 0", + "kafka.log.level": "INFO", + "kafka.log.message": "Starting", + "message": "[2017-08-04 10:48:21,167] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.coordinator.transaction.TransactionMarkerChannelManager)", + "offset": 2497, + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change-1.1.0.log b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change-1.1.0.log new file mode 100644 index 00000000..0da1d61b --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change-1.1.0.log @@ -0,0 +1 @@ +[2018-07-16 10:17:06,489] TRACE [Broker id=30] Cached leader info PartitionState(controllerEpoch=25, leader=-1, leaderEpoch=15, isr=[10], zkVersion=15, replicas=[10], offlineReplicas=[10]) for partition __consumer_offsets-16 in response to UpdateMetadata request sent by controller 20 epoch 25 with correlation id 8 (state.change.logger) diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change-1.1.0.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change-1.1.0.log-expected.json new file mode 100644 index 00000000..be011b17 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change-1.1.0.log-expected.json @@ -0,0 +1,15 @@ +[ + { + "@timestamp": "2018-07-16T10:17:06.489Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "state.change.logger", + "kafka.log.component": "Broker id=30", + "kafka.log.level": "TRACE", + "kafka.log.message": "Cached leader info PartitionState(controllerEpoch=25, leader=-1, leaderEpoch=15, isr=[10], zkVersion=15, replicas=[10], offlineReplicas=[10]) for partition __consumer_offsets-16 in response to UpdateMetadata request sent by controller 20 epoch 25 with correlation id 8", + "message": "[2018-07-16 10:17:06,489] TRACE [Broker id=30] Cached leader info PartitionState(controllerEpoch=25, leader=-1, leaderEpoch=15, isr=[10], zkVersion=15, replicas=[10], offlineReplicas=[10]) for partition __consumer_offsets-16 in response to UpdateMetadata request sent by controller 20 epoch 25 with correlation id 8 (state.change.logger)", + "offset": 0, + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change.log-expected.json index e73b094e..f6c4112a 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change.log-expected.json @@ -1,52 +1,15 @@ [ - { - "_index": "filebeat-7.0.0-alpha1-2017.08.11", - "_type": "doc", - "_id": "v4tR0l0Bed9fOYVUjey6", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-08-04T10:48:21.428Z", - "offset": 168, - "kafka": { - "log": { - "component": "unknown", - "level": "TRACE", - "message": "Controller 0 epoch 1 received response {error_code=0} for a request sent to broker baldur:9092 (id: 0 rack: null)", - "class": "state.change.logger" - } - }, - "beat": { - "hostname": "baldur", - "read_time": "2017-08-11T17:22:21.359Z", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change.log", - "message": "[2017-08-04 10:48:21,428] TRACE Controller 0 epoch 1 received response {error_code=0} for a request sent to broker baldur:9092 (id: 0 rack: null) (state.change.logger)", - "fileset": { - "module": "kafka", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-08-04T10:48:21.428Z" - ] - }, - "highlight": { - "source": [ - "@kibana-highlighted-field@/home/n/go/src/github.com/elastic/beats/filebeat/module/kafka/log/test/state-change.log@/kibana-highlighted-field@" - ] - }, - "sort": [ - 1501843701428 - ] - } -] + { + "@timestamp": "2017-08-04T10:48:21.428Z", + "fileset.module": "kafka", + "fileset.name": "log", + "input.type": "log", + "kafka.log.class": "state.change.logger", + "kafka.log.component": "unknown", + "kafka.log.level": "TRACE", + "kafka.log.message": "Controller 0 epoch 1 received response {error_code=0} for a request sent to broker baldur:9092 (id: 0 rack: null)", + "message": "[2017-08-04 10:48:21,428] TRACE Controller 0 epoch 1 received response {error_code=0} for a request sent to broker baldur:9092 (id: 0 rack: null) (state.change.logger)", + "offset": 0, + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/kibana/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/kibana/_meta/docs.asciidoc index 1d622a1d..a7a8ca9e 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kibana/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/kibana/_meta/docs.asciidoc @@ -18,12 +18,14 @@ include::../include/running-modules.asciidoc[] include::../include/configuring-intro.asciidoc[] -//set the fileset name used in the included example +//set the fileset name used in the included file :fileset_ex: log include::../include/config-option-intro.asciidoc[] [float] -==== `{fileset}` log fileset settings +==== `log` fileset settings include::../include/var-paths.asciidoc[] + +:fileset_ex!: diff --git a/vendor/github.com/elastic/beats/filebeat/module/kibana/log/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/kibana/log/ingest/pipeline.json index 32640f18..2e4d4281 100755 --- a/vendor/github.com/elastic/beats/filebeat/module/kibana/log/ingest/pipeline.json +++ b/vendor/github.com/elastic/beats/filebeat/module/kibana/log/ingest/pipeline.json @@ -46,6 +46,34 @@ "target_field": "kibana.log.tags" } }, + { + "rename": { + "field": "kibana.log.meta.res.statusCode", + "target_field": "http.response.status_code", + "ignore_missing": true + } + }, + { + "rename": { + "field": "kibana.log.meta.res.responseTime", + "target_field": "http.response.elapsed_time", + "ignore_missing": true + } + }, + { + "rename": { + "field": "kibana.log.meta.res.contentLength", + "target_field": "http.response.content_length", + "ignore_missing": true + } + }, + { + "rename": { + "field": "kibana.log.meta.req.method", + "target_field": "http.request.method", + "ignore_missing": true + } + }, { "date": { "field": "read_timestamp", diff --git a/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.expected.json b/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.expected.json deleted file mode 100644 index e6538017..00000000 --- a/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.expected.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_index": "filebeat-7.0.0-alpha1-2018.05.09", - "_type": "doc", - "_id": "ZWiiRGMBDInET1s1jXXw", - "_score": 1, - "_source": { - "offset": 920, - "prospector": { - "type": "log" - }, - "read_timestamp": "2018-05-09T10:57:55Z", - "source": "/Users/ruflin/Dev/gopath/src/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log", - "fileset": { - "module": "kibana", - "name": "log" - }, - "input": { - "type": "log" - }, - "@timestamp": "2018-05-09T10:57:55.000Z", - "service": { - "name": [ - "kibana" - ] - }, - "beat": { - "hostname": "ruflin", - "name": "ruflin", - "version": "7.0.0-alpha1" - }, - "kibana": { - "log": { - "res": { - "responseTime": 26, - "contentLength": 9, - "statusCode": 304 - }, - "method": "get", - "pid": 69410, - "message": "GET /ui/fonts/open_sans/open_sans_v15_latin_600.woff2 304 26ms - 9.0B", - "type": "response", - "req": { - "referer": "http://localhost:5601/app/kibana", - "headers": { - "if-modified-since": "Thu, 03 May 2018 09:45:28 GMT", - "referer": "http://localhost:5601/app/kibana", - "if-none-match": """"24234c1c81b3948758c1a0be8e5a65386ca94c52"""", - "accept-language": "en-US,en;q=0.9,de;q=0.8", - "origin": "http://localhost:5601", - "host": "localhost:5601", - "connection": "keep-alive", - "accept-encoding": "gzip, deflate, br", - "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36", - "accept": "*/*" - }, - "method": "get", - "userAgent": "127.0.0.1", - "url": "/ui/fonts/open_sans/open_sans_v15_latin_600.woff2", - "remoteAddress": "127.0.0.1" - }, - "tags": [], - "statusCode": 304 - } - } - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log b/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log index 8a01c483..a7600166 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log +++ b/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log @@ -1 +1,3 @@ {"type":"response","@timestamp":"2018-05-09T10:57:55Z","tags":[],"pid":69410,"method":"get","statusCode":304,"req":{"url":"/ui/fonts/open_sans/open_sans_v15_latin_600.woff2","method":"get","headers":{"host":"localhost:5601","connection":"keep-alive","origin":"http://localhost:5601","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36","accept":"*/*","referer":"http://localhost:5601/app/kibana","accept-encoding":"gzip, deflate, br","accept-language":"en-US,en;q=0.9,de;q=0.8","if-none-match":"\"24234c1c81b3948758c1a0be8e5a65386ca94c52\"","if-modified-since":"Thu, 03 May 2018 09:45:28 GMT"},"remoteAddress":"127.0.0.1","userAgent":"127.0.0.1","referer":"http://localhost:5601/app/kibana"},"res":{"statusCode":304,"responseTime":26,"contentLength":9},"message":"GET /ui/fonts/open_sans/open_sans_v15_latin_600.woff2 304 26ms - 9.0B"} +{"type":"log","@timestamp":"2018-05-09T10:59:12Z","tags":["debug","monitoring-ui","kibana-monitoring"],"pid":69776,"message":"Fetching data from kibana_stats collector"} +{"type":"log","@timestamp":"2018-05-09T10:59:12Z","tags":["reporting","debug","exportTypes"],"pid":69776,"message":"Found exportType at /Users/ruflin/Downloads/6.3/kibana-6.3.0-darwin-x86_64/node_modules/x-pack/plugins/reporting/export_types/csv/server/index.js"} diff --git a/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log-expected.json new file mode 100644 index 00000000..61401461 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/kibana/log/test/test.log-expected.json @@ -0,0 +1,75 @@ +[ + { + "@timestamp": "2018-05-09T10:57:55.000Z", + "fileset.module": "kibana", + "fileset.name": "log", + "http.request.method": "get", + "http.response.content_length": 9, + "http.response.elapsed_time": 26, + "http.response.status_code": 304, + "input.type": "log", + "kibana.log.meta.method": "get", + "kibana.log.meta.req.headers.accept": "*/*", + "kibana.log.meta.req.headers.accept-encoding": "gzip, deflate, br", + "kibana.log.meta.req.headers.accept-language": "en-US,en;q=0.9,de;q=0.8", + "kibana.log.meta.req.headers.connection": "keep-alive", + "kibana.log.meta.req.headers.host": "localhost:5601", + "kibana.log.meta.req.headers.if-modified-since": "Thu, 03 May 2018 09:45:28 GMT", + "kibana.log.meta.req.headers.if-none-match": "\"24234c1c81b3948758c1a0be8e5a65386ca94c52\"", + "kibana.log.meta.req.headers.origin": "http://localhost:5601", + "kibana.log.meta.req.headers.referer": "http://localhost:5601/app/kibana", + "kibana.log.meta.req.headers.user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36", + "kibana.log.meta.req.referer": "http://localhost:5601/app/kibana", + "kibana.log.meta.req.remoteAddress": "127.0.0.1", + "kibana.log.meta.req.url": "/ui/fonts/open_sans/open_sans_v15_latin_600.woff2", + "kibana.log.meta.req.userAgent": "127.0.0.1", + "kibana.log.meta.statusCode": 304, + "kibana.log.meta.type": "response", + "kibana.log.tags": [], + "message": "GET /ui/fonts/open_sans/open_sans_v15_latin_600.woff2 304 26ms - 9.0B", + "offset": 0, + "process.pid": 69410, + "prospector.type": "log", + "service.name": [ + "kibana" + ] + }, + { + "@timestamp": "2018-05-09T10:59:12.000Z", + "fileset.module": "kibana", + "fileset.name": "log", + "input.type": "log", + "kibana.log.meta.type": "log", + "kibana.log.tags": [ + "debug", + "monitoring-ui", + "kibana-monitoring" + ], + "message": "Fetching data from kibana_stats collector", + "offset": 920, + "process.pid": 69776, + "prospector.type": "log", + "service.name": [ + "kibana" + ] + }, + { + "@timestamp": "2018-05-09T10:59:12.000Z", + "fileset.module": "kibana", + "fileset.name": "log", + "input.type": "log", + "kibana.log.meta.type": "log", + "kibana.log.tags": [ + "reporting", + "debug", + "exportTypes" + ], + "message": "Found exportType at /Users/ruflin/Downloads/6.3/kibana-6.3.0-darwin-x86_64/node_modules/x-pack/plugins/reporting/export_types/csv/server/index.js", + "offset": 1090, + "process.pid": 69776, + "prospector.type": "log", + "service.name": [ + "kibana" + ] + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/logstash/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/logstash/_meta/docs.asciidoc index 17595f88..19235ae5 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/logstash/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/logstash/_meta/docs.asciidoc @@ -57,7 +57,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "logstash.log.var.paths=[/path/to/log/logstash/logstash-server.log*]" -M "logstash.slowlog.var.paths=[/path/to/log/logstash/logstash-slowlog.log*]" +-M "logstash.log.var.paths=[/path/to/log/logstash/logstash-server.log*]" -M "logstash.slowlog.var.paths=[/path/to/log/logstash/logstash-slowlog.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/logstash/log/test/logstash-plain.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/logstash/log/test/logstash-plain.log-expected.json index e688a7d6..2157da60 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/logstash/log/test/logstash-plain.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/logstash/log/test/logstash-plain.log-expected.json @@ -1,45 +1,13 @@ [ { - "_id": "ODTMbl8Bn67eEiQ32rRH", - "_index": "filebeat-7.0.0-alpha1-2017.10.30", - "_score": null, - "_source": { - "@timestamp": "2017-10-23T14:21:54,698", - "beat": { - "hostname": "sashimi", - "name": "sashimi", - "version": "7.0.0-alpha1" - }, - "fileset": { - "module": "logstash", - "name": "log" - }, - "logstash": { - "log": { - "level": "INFO", - "message": "Initializing module {:module_name=>\"fb_apache\", :directory=>\"/usr/share/logstash/modules/fb_apache/configuration\"}", - "module": "logstash.modules.scaffold" - } - }, - "offset": 897, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2017-10-30T19:40:38.780Z", - "source": "/tmp/logstash-plain.log" - }, - "_type": "doc", - "_version": 1, - "fields": { - "@timestamp": [ - "2017-10-23T14:21:54.698Z" - ] - }, - "sort": [ - 1508768514698 - ] + "@timestamp": "2017-10-23T14:20:12,046", + "fileset.module": "logstash", + "fileset.name": "log", + "input.type": "log", + "logstash.log.level": "INFO", + "logstash.log.message": "Initializing module {:module_name=>\"fb_apache\", :directory=>\"/usr/share/logstash/modules/fb_apache/configuration\"}", + "logstash.log.module": "logstash.modules.scaffold", + "offset": 0, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json index 5f8d9574..835106bf 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json @@ -1,42 +1,19 @@ [ { - "_id": "ylwS3V8BAiQJCIBNBJ_P", - "_index": "filebeat-7.0.0-alpha1-2017.11.21", - "_score": 1.0, - "_source": { - "@timestamp": "2017-10-30T09:57:58,243", - "beat": { - "hostname": "sashimi", - "name": "sashimi", - "version": "7.0.0-alpha1" - }, - "fileset": { - "module": "logstash", - "name": "slowlog" - }, - "logstash": { - "slowlog": { - "event": "\"{\\\"@version\\\":\\\"1\\\",\\\"@timestamp\\\":\\\"2017-10-30T13:57:55.130Z\\\",\\\"host\\\":\\\"sashimi\\\",\\\"sequence\\\":0,\\\"message\\\":\\\"Hello world!\\\"}\"", - "level": "WARN", - "message": "event processing time {:plugin_params=>{\"time\"=>3, \"id\"=>\"e4e12a4e3082615c5427079bf4250dbfa338ebac10f8ea9912d7b98a14f56b8c\"}, :took_in_nanos=>3027675106, :took_in_millis=>3027, :event=>\"{\\\"@version\\\":\\\"1\\\",\\\"@timestamp\\\":\\\"2017-10-30T13:57:55.130Z\\\",\\\"host\\\":\\\"sashimi\\\",\\\"sequence\\\":0,\\\"message\\\":\\\"Hello world!\\\"}\"}", - "module": "slowlog.logstash.filters.sleep", - "plugin_name": "sleep", - "plugin_params": "{\"time\"=>3, \"id\"=>\"e4e12a4e3082615c5427079bf4250dbfa338ebac10f8ea9912d7b98a14f56b8c\"}", - "plugin_type": "filters", - "took_in_millis": 3027, - "took_in_nanos": 3027675106 - } - }, - "offset": 383, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2017-11-21T05:34:25.435Z", - "source": "/Users/ph/go/src/github.com/elastic/beats/filebeat/module/logstash/slowlog/test/slowlog-plain.log" - }, - "_type": "doc" + "@timestamp": "2017-10-30T09:57:58,243", + "fileset.module": "logstash", + "fileset.name": "slowlog", + "input.type": "log", + "logstash.slowlog.event": "\"{\\\"@version\\\":\\\"1\\\",\\\"@timestamp\\\":\\\"2017-10-30T13:57:55.130Z\\\",\\\"host\\\":\\\"sashimi\\\",\\\"sequence\\\":0,\\\"message\\\":\\\"Hello world!\\\"}\"", + "logstash.slowlog.level": "WARN", + "logstash.slowlog.message": "event processing time {:plugin_params=>{\"time\"=>3, \"id\"=>\"e4e12a4e3082615c5427079bf4250dbfa338ebac10f8ea9912d7b98a14f56b8c\"}, :took_in_nanos=>3027675106, :took_in_millis=>3027, :event=>\"{\\\"@version\\\":\\\"1\\\",\\\"@timestamp\\\":\\\"2017-10-30T13:57:55.130Z\\\",\\\"host\\\":\\\"sashimi\\\",\\\"sequence\\\":0,\\\"message\\\":\\\"Hello world!\\\"}\"}", + "logstash.slowlog.module": "slowlog.logstash.filters.sleep", + "logstash.slowlog.plugin_name": "sleep", + "logstash.slowlog.plugin_params": "{\"time\"=>3, \"id\"=>\"e4e12a4e3082615c5427079bf4250dbfa338ebac10f8ea9912d7b98a14f56b8c\"}", + "logstash.slowlog.plugin_type": "filters", + "logstash.slowlog.took_in_millis": 3027, + "logstash.slowlog.took_in_nanos": 3027675106, + "offset": 0, + "prospector.type": "log" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/mongodb/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/mongodb/_meta/docs.asciidoc index 9db6f633..9d6c5b94 100755 --- a/vendor/github.com/elastic/beats/filebeat/module/mongodb/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/mongodb/_meta/docs.asciidoc @@ -41,7 +41,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "mongodb.log.var.paths=[/path/to/log/mongodb/*.log*]" +-M "mongodb.log.var.paths=[/path/to/log/mongodb/*.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/ingest/pipeline.json index b0a39f2a..5ec2adcd 100755 --- a/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/ingest/pipeline.json +++ b/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/ingest/pipeline.json @@ -4,7 +4,7 @@ "grok": { "field": "message", "patterns":[ - "%{TIMESTAMP_ISO8601:mongodb.log.timestamp} %{WORD:mongodb.log.severity} %{WORD:mongodb.log.component} *\\[%{WORD:mongodb.log.context}\\] %{GREEDYDATA:mongodb.log.message}" + "%{TIMESTAMP_ISO8601:mongodb.log.timestamp} %{WORD:mongodb.log.severity} %{WORD:mongodb.log.component} \\s*\\[%{WORD:mongodb.log.context}\\] %{GREEDYDATA:mongodb.log.message}" ], "ignore_missing": true } diff --git a/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log b/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log new file mode 100644 index 00000000..a3cb5d56 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log @@ -0,0 +1,34 @@ +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] git version: 009580ad490190ba33d1c6253ebd8d91808923e4 +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] modules: none +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2l 25 May 2017 +2018-02-05T13:44:56.677+0100 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), +2018-02-05T13:44:56.724+0100 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data' +2018-02-05T13:44:56.724+0100 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker +2018-02-05T13:44:56.744+0100 I NETWORK [initandlisten] waiting for connections on port 27017 +2018-02-05T13:50:55.170+0100 I NETWORK [conn1] end connection 127.0.0.1:55404 (0 connections now open) +2018-02-05T13:50:55.487+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:55406 #2 (1 connection now open) +2018-02-05T14:49:45.606+0100 I CONTROL [signalProcessingThread] now exiting +2018-02-05T14:49:45.606+0100 I NETWORK [signalProcessingThread] closing listening socket: 7 +2018-02-05T14:49:45.606+0100 I NETWORK [signalProcessingThread] removing socket file: /run/mongodb/mongodb-27017.sock +2018-02-05T14:49:45.606+0100 I NETWORK [signalProcessingThread] shutdown: going to flush diaglog... +2018-02-05T14:49:45.606+0100 I NETWORK [signalProcessingThread] shutdown: going to close sockets... +2018-02-05T14:49:45.688+0100 I STORAGE [signalProcessingThread] shutdown: removing fs lock... +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] db version v3.2.11 +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] build environment: +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] distarch: x86_64 +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] options: { config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1", unixDomainSocket: { pathPrefix: "/run/mongodb" } }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } } +2018-02-05T13:50:55.170+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:55404 #1 (1 connection now open) +2018-02-05T13:50:56.180+0100 I NETWORK [conn3] end connection 127.0.0.1:55414 (0 connections now open) +2018-02-05T14:15:42.095+0100 I NETWORK [conn4] end connection 127.0.0.1:58336 (0 connections now open) +2018-02-05T14:49:45.606+0100 I NETWORK [signalProcessingThread] shutdown: going to close listening sockets... +2018-02-05T14:49:45.606+0100 I STORAGE [signalProcessingThread] WiredTigerKVEngine shutting down +2018-02-05T14:49:45.688+0100 I CONTROL [signalProcessingThread] dbexit: rc: 0 +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] MongoDB starting : pid=29803 port=27017 dbpath=/var/lib/mongodb 64-bit host=sleipnir +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] allocator: tcmalloc +2018-02-05T13:44:56.657+0100 I CONTROL [initandlisten] target_arch: x86_64 +2018-02-05T13:50:55.487+0100 I NETWORK [conn2] end connection 127.0.0.1:55406 (0 connections now open) +2018-02-05T13:50:56.180+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:55414 #3 (1 connection now open) +2018-02-05T14:11:41.401+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:58336 #4 (1 connection now open) +2018-02-05T14:49:45.605+0100 I CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends +2018-02-05T14:49:45.605+0100 I FTDC [signalProcessingThread] Shutting down full-time diagnostic data capture +2018-02-05T14:49:45.606+0100 I NETWORK [signalProcessingThread] closing listening socket: 6 diff --git a/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json index 3229854f..fcf9b6d3 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json @@ -1,1080 +1,410 @@ [ - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "2IHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 326, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": "git version: 009580ad490190ba33d1c6253ebd8d91808923e4", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "24HaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 573, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": "modules: none", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "4IHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 1482, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "STORAGE", - "context": "initandlisten", - "message": "wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),", - "timestamp": "2018-02-05T13:44:56.677+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "4YHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 1635, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "message": "2018-02-05T13:44:56.724+0100 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data'", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "error": { - "message": "Provided Grok expressions do not match field value: [2018-02-05T13:44:56.724+0100 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data']" - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "4oHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 1750, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "HostnameCanonicalizationWorker", - "message": "Starting hostname canonicalization worker", - "timestamp": "2018-02-05T13:44:56.724+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "44HaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 1844, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "initandlisten", - "message": "waiting for connections on port 27017", - "timestamp": "2018-02-05T13:44:56.744+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "5YHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2072, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "conn1", - "message": "end connection 127.0.0.1:55404 (0 connections now open)", - "timestamp": "2018-02-05T13:50:55.170+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "5oHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2196, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "initandlisten", - "message": "connection accepted from 127.0.0.1:55406 #2 (1 connection now open)", - "timestamp": "2018-02-05T13:50:55.487+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "7oHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3077, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "signalProcessingThread", - "message": "now exiting", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "8YHaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3374, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "signalProcessingThread", - "message": "closing listening socket: 7", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "8oHaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3493, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "signalProcessingThread", - "message": "removing socket file: /run/mongodb/mongodb-27017.sock", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "84HaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3594, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "signalProcessingThread", - "message": "shutdown: going to flush diaglog...", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "9IHaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3695, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "signalProcessingThread", - "message": "shutdown: going to close sockets...", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "9oHaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3888, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "STORAGE", - "context": "signalProcessingThread", - "message": "shutdown: removing fs lock...", - "timestamp": "2018-02-05T14:49:45.688+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "14HaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 216, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": "db version v3.2.11", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "3IHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 648, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": "build environment:", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "3YHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 725, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": " distarch: x86_64", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "34HaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 1142, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": """options: { config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1", unixDomainSocket: { pathPrefix: "/run/mongodb" } }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } }""", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "5IHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 1968, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "initandlisten", - "message": "connection accepted from 127.0.0.1:55404 #1 (1 connection now open)", - "timestamp": "2018-02-05T13:50:55.170+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "6YHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2528, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "conn3", - "message": "end connection 127.0.0.1:55414 (0 connections now open)", - "timestamp": "2018-02-05T13:50:56.180+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "64HaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2756, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "conn4", - "message": "end connection 127.0.0.1:58336 (0 connections now open)", - "timestamp": "2018-02-05T14:15:42.095+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "74HaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3188, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "signalProcessingThread", - "message": "shutdown: going to close listening sockets...", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "9YHaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3793, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "STORAGE", - "context": "signalProcessingThread", - "message": "WiredTigerKVEngine shutting down", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "94HaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3968, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "signalProcessingThread", - "message": "dbexit: rc: 0", - "timestamp": "2018-02-05T14:49:45.688+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "1oHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 141, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": "MongoDB starting : pid=29803 port=27017 dbpath=/var/lib/mongodb 64-bit host=sleipnir", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "2YHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 427, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": "OpenSSL version: OpenSSL 1.0.2l 25 May 2017", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "2oHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 503, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": "allocator: tcmalloc", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "3oHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 805, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "initandlisten", - "message": " target_arch: x86_64", - "timestamp": "2018-02-05T13:44:56.657+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "54HaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2300, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "conn2", - "message": "end connection 127.0.0.1:55406 (0 connections now open)", - "timestamp": "2018-02-05T13:50:55.487+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "6IHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2424, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "initandlisten", - "message": "connection accepted from 127.0.0.1:55414 #3 (1 connection now open)", - "timestamp": "2018-02-05T13:50:56.180+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "6oHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2652, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "initandlisten", - "message": "connection accepted from 127.0.0.1:58336 #4 (1 connection now open)", - "timestamp": "2018-02-05T14:11:41.401+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "7IHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 2887, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "CONTROL", - "context": "signalProcessingThread", - "message": "got signal 15 (Terminated), will terminate after current cmd ends", - "timestamp": "2018-02-05T14:49:45.605+0100" - } - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "7YHaZmEBQXBNR1UUaDmZ", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3000, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "message": "2018-02-05T14:49:45.605+0100 I FTDC [signalProcessingThread] Shutting down full-time diagnostic data capture", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "error": { - "message": "Provided Grok expressions do not match field value: [2018-02-05T14:49:45.605+0100 I FTDC [signalProcessingThread] Shutting down full-time diagnostic data capture]" - } - } - }, - { - "_index": "filebeat-7.0.0-alpha1-2018.02.05", - "_type": "doc", - "_id": "8IHaZmEBQXBNR1UUaDma", - "_score": 1, - "_source": { - "@timestamp": "2018-02-05T16:44:04.007Z", - "offset": 3281, - "beat": { - "hostname": "sleipnir", - "name": "sleipnir", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log", - "fileset": { - "module": "mongodb", - "name": "log" - }, - "mongodb": { - "log": { - "severity": "I", - "component": "NETWORK", - "context": "signalProcessingThread", - "message": "closing listening socket: 6", - "timestamp": "2018-02-05T14:49:45.606+0100" - } - } - } - } -] + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "git version: 009580ad490190ba33d1c6253ebd8d91808923e4", + "mongodb.log.severity": "I", + "offset": 0, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "modules: none", + "mongodb.log.severity": "I", + "offset": 110, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "OpenSSL version: OpenSSL 1.0.2l 25 May 2017", + "mongodb.log.severity": "I", + "offset": 180, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.677Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "STORAGE", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),", + "mongodb.log.severity": "I", + "offset": 281, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.724Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "FTDC", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data'", + "mongodb.log.severity": "I", + "offset": 621, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.724Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "HostnameCanonicalizationWorker", + "mongodb.log.message": "Starting hostname canonicalization worker", + "mongodb.log.severity": "I", + "offset": 774, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.744Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "waiting for connections on port 27017", + "mongodb.log.severity": "I", + "offset": 889, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:50:55.170Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "conn1", + "mongodb.log.message": "end connection 127.0.0.1:55404 (0 connections now open)", + "mongodb.log.severity": "I", + "offset": 983, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:50:55.487Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "connection accepted from 127.0.0.1:55406 #2 (1 connection now open)", + "mongodb.log.severity": "I", + "offset": 1087, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "now exiting", + "mongodb.log.severity": "I", + "offset": 1211, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "closing listening socket: 7", + "mongodb.log.severity": "I", + "offset": 1288, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "removing socket file: /run/mongodb/mongodb-27017.sock", + "mongodb.log.severity": "I", + "offset": 1381, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "shutdown: going to flush diaglog...", + "mongodb.log.severity": "I", + "offset": 1500, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "shutdown: going to close sockets...", + "mongodb.log.severity": "I", + "offset": 1601, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.688Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "STORAGE", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "shutdown: removing fs lock...", + "mongodb.log.severity": "I", + "offset": 1702, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "db version v3.2.11", + "mongodb.log.severity": "I", + "offset": 1797, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "build environment:", + "mongodb.log.severity": "I", + "offset": 1872, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": " distarch: x86_64", + "mongodb.log.severity": "I", + "offset": 1947, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "options: { config: \"/etc/mongodb.conf\", net: { bindIp: \"127.0.0.1\", unixDomainSocket: { pathPrefix: \"/run/mongodb\" } }, storage: { dbPath: \"/var/lib/mongodb\", journal: { enabled: true } }, systemLog: { destination: \"file\", logAppend: true, path: \"/var/log/mongodb/mongodb.log\" } }", + "mongodb.log.severity": "I", + "offset": 2024, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:50:55.170Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "connection accepted from 127.0.0.1:55404 #1 (1 connection now open)", + "mongodb.log.severity": "I", + "offset": 2361, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:50:56.180Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "conn3", + "mongodb.log.message": "end connection 127.0.0.1:55414 (0 connections now open)", + "mongodb.log.severity": "I", + "offset": 2485, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:15:42.095Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "conn4", + "mongodb.log.message": "end connection 127.0.0.1:58336 (0 connections now open)", + "mongodb.log.severity": "I", + "offset": 2589, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "shutdown: going to close listening sockets...", + "mongodb.log.severity": "I", + "offset": 2693, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "STORAGE", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "WiredTigerKVEngine shutting down", + "mongodb.log.severity": "I", + "offset": 2804, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.688Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "dbexit: rc: 0", + "mongodb.log.severity": "I", + "offset": 2902, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "MongoDB starting : pid=29803 port=27017 dbpath=/var/lib/mongodb 64-bit host=sleipnir", + "mongodb.log.severity": "I", + "offset": 2982, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "allocator: tcmalloc", + "mongodb.log.severity": "I", + "offset": 3123, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:44:56.657Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": " target_arch: x86_64", + "mongodb.log.severity": "I", + "offset": 3199, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:50:55.487Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "conn2", + "mongodb.log.message": "end connection 127.0.0.1:55406 (0 connections now open)", + "mongodb.log.severity": "I", + "offset": 3279, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T12:50:56.180Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "connection accepted from 127.0.0.1:55414 #3 (1 connection now open)", + "mongodb.log.severity": "I", + "offset": 3383, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:11:41.401Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "initandlisten", + "mongodb.log.message": "connection accepted from 127.0.0.1:58336 #4 (1 connection now open)", + "mongodb.log.severity": "I", + "offset": 3507, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.605Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "CONTROL", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "got signal 15 (Terminated), will terminate after current cmd ends", + "mongodb.log.severity": "I", + "offset": 3631, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.605Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "FTDC", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "Shutting down full-time diagnostic data capture", + "mongodb.log.severity": "I", + "offset": 3762, + "prospector.type": "log" + }, + { + "@timestamp": "2018-01-05T13:49:45.606Z", + "fileset.module": "mongodb", + "fileset.name": "log", + "input.type": "log", + "mongodb.log.component": "NETWORK", + "mongodb.log.context": "signalProcessingThread", + "mongodb.log.message": "closing listening socket: 6", + "mongodb.log.severity": "I", + "offset": 3875, + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/mysql/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/mysql/_meta/docs.asciidoc index ed62d25e..c0fe6f8b 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/mysql/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/mysql/_meta/docs.asciidoc @@ -46,7 +46,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "mysql.error.var.paths=[/path/to/log/mysql/error.log*]" -M "mysql.slowlog.var.paths=[/path/to/log/mysql/mysql-slow.log*]" +-M "mysql.error.var.paths=[/path/to/log/mysql/error.log*]" -M "mysql.slowlog.var.paths=[/path/to/log/mysql/mysql-slow.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/nginx/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/nginx/_meta/docs.asciidoc index 90009b64..421a7f78 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/nginx/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/nginx/_meta/docs.asciidoc @@ -50,7 +50,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "nginx.access.var.paths=[/path/to/log/nginx/access.log*]" -M "nginx.error.var.paths=[/path/to/log/nginx/error.log*]" +-M "nginx.access.var.paths=[/path/to/log/nginx/access.log*]" -M "nginx.error.var.paths=[/path/to/log/nginx/error.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/nginx/access/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/nginx/access/_meta/fields.yml index 38e89be9..a3ea4de9 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/nginx/access/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/nginx/access/_meta/fields.yml @@ -119,4 +119,7 @@ type: keyword description: > The city name. - + - name: region_iso_code + type: keyword + description: > + Region ISO code. diff --git a/vendor/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log-expected.json index 36f59492..1d8b69e5 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log-expected.json @@ -1,412 +1,208 @@ [ - { - "_index" : "filebeat-6.0.0-alpha2-2017.05.30", - "_type" : "doc", - "_id" : "AVxWUuZ8OMOtQBaTipsE", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2016-12-07T10:05:07.000Z", - "offset" : 527, - "nginx" : { - "access" : { - "referrer" : "-", - "response_code" : "200", - "remote_ip" : "85.181.35.98", - "geoip" : { - "continent_name" : "Europe", - "country_iso_code" : "DE", - "location" : { - "lon" : 13.4, - "lat" : 52.5167 - }, - "region_name": "Land Berlin", - "city_name": "Berlin" - }, - "method" : "GET", - "user_name" : "-", - "http_version" : "1.1", - "body_sent" : { - "bytes" : "571" - }, - "remote_ip_list" : [ - "10.0.0.2", - "10.0.0.1", - "85.181.35.98" - ], - "url" : "/ocelot", - "user_agent" : { - "major" : "49", - "minor" : "0", - "os" : "Mac OS X 10.12", - "os_minor" : "12", - "os_major" : "10", - "name" : "Firefox", - "os_name" : "Mac OS X", - "device" : "Other" - } - } - }, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "input" : { - "type" : "log" - }, - "read_timestamp" : "2017-05-29T22:28:06.246Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log", - "fileset" : { - "module" : "nginx", - "name" : "access" - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.05.30", - "_type" : "doc", - "_id" : "AVxWUuZ8OMOtQBaTipsD", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2017-05-29T19:02:48.000Z", - "offset" : 341, - "nginx" : { - "access" : { - "referrer" : "-", - "response_code" : "404", - "remote_ip" : "172.17.0.1", - "method" : "GET", - "user_name" : "-", - "http_version" : "1.1", - "body_sent" : { - "bytes" : "612" - }, - "remote_ip_list" : [ + { + "@timestamp": "2016-12-07T10:05:07.000Z", + "fileset.module": "nginx", + "fileset.name": "access", + "input.type": "log", + "nginx.access.body_sent.bytes": "571", + "nginx.access.http_version": "1.1", + "nginx.access.method": "GET", + "nginx.access.referrer": "-", + "nginx.access.remote_ip": "10.0.0.2", + "nginx.access.remote_ip_list": [ + "10.0.0.2", + "10.0.0.1", + "127.0.0.1" + ], + "nginx.access.response_code": "200", + "nginx.access.url": "/ocelot", + "nginx.access.user_agent.device": "Other", + "nginx.access.user_agent.major": "49", + "nginx.access.user_agent.minor": "0", + "nginx.access.user_agent.name": "Firefox", + "nginx.access.user_agent.os": "Mac OS X 10.12", + "nginx.access.user_agent.os_major": "10", + "nginx.access.user_agent.os_minor": "12", + "nginx.access.user_agent.os_name": "Mac OS X", + "nginx.access.user_name": "-", + "offset": 0, + "prospector.type": "log" + }, + { + "@timestamp": "2017-05-29T19:02:48.000Z", + "fileset.module": "nginx", + "fileset.name": "access", + "input.type": "log", + "nginx.access.body_sent.bytes": "612", + "nginx.access.http_version": "1.1", + "nginx.access.method": "GET", + "nginx.access.referrer": "-", + "nginx.access.remote_ip": "172.17.0.1", + "nginx.access.remote_ip_list": [ "172.17.0.1" - ], - "url" : "/stringpatch", - "user_agent" : { - "patch" : "a2", - "major" : "15", - "minor" : "0", - "os" : "Windows 7", - "name" : "Firefox Alpha", - "os_name" : "Windows 7", - "device" : "Other" - } - } - }, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "" : { - "type" : "log" - }, - "read_timestamp" : "2017-05-29T22:28:06.246Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log", - "fileset" : { - "module" : "nginx", - "name" : "access" - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.05.30", - "_type" : "doc", - "_id" : "AVxWUuZ8OMOtQBaTipsF", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2016-12-07T10:05:07.000Z", - "offset" : 693, - "nginx" : { - "access" : { - "referrer" : "-", - "response_code" : "200", - "remote_ip" : "85.181.35.98", - "geoip" : { - "continent_name" : "Europe", - "country_iso_code" : "DE", - "location" : { - "lon" : 13.4, - "lat" : 52.5167 - }, - "region_name": "Land Berlin", - "city_name": "Berlin" - }, - "method" : "GET", - "user_name" : "-", - "http_version" : "1.1", - "body_sent" : { - "bytes" : "571" - }, - "remote_ip_list" : [ + ], + "nginx.access.response_code": "404", + "nginx.access.url": "/stringpatch", + "nginx.access.user_agent.device": "Other", + "nginx.access.user_agent.major": "15", + "nginx.access.user_agent.minor": "0", + "nginx.access.user_agent.name": "Firefox Alpha", + "nginx.access.user_agent.os": "Windows 7", + "nginx.access.user_agent.os_name": "Windows 7", + "nginx.access.user_agent.patch": "a2", + "nginx.access.user_name": "-", + "offset": 183, + "prospector.type": "log" + }, + { + "@timestamp": "2016-12-07T10:05:07.000Z", + "fileset.module": "nginx", + "fileset.name": "access", + "input.type": "log", + "nginx.access.body_sent.bytes": "571", + "nginx.access.geoip.city_name": "Berlin", + "nginx.access.geoip.continent_name": "Europe", + "nginx.access.geoip.country_iso_code": "DE", + "nginx.access.geoip.location.lat": 52.5167, + "nginx.access.geoip.location.lon": 13.4, + "nginx.access.geoip.region_name": "Land Berlin", + "nginx.access.http_version": "1.1", + "nginx.access.method": "GET", + "nginx.access.referrer": "-", + "nginx.access.remote_ip": "85.181.35.98", + "nginx.access.remote_ip_list": [ + "10.0.0.2", + "10.0.0.1", "85.181.35.98" - ], - "url" : "/ocelot", - "user_agent" : { - "major" : "49", - "minor" : "0", - "os" : "Mac OS X 10.12", - "os_minor" : "12", - "os_major" : "10", - "name" : "Firefox", - "os_name" : "Mac OS X", - "device" : "Other" - } - } - }, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "input" : { - "type" : "log" - }, - "read_timestamp" : "2017-05-29T22:28:06.246Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log", - "fileset" : { - "module" : "nginx", - "name" : "access" - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.05.30", - "_type" : "doc", - "_id" : "AVxWUuZ8OMOtQBaTipsC", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2016-12-07T10:05:07.000Z", - "offset" : 183, - "nginx" : { - "access" : { - "referrer" : "-", - "response_code" : "200", - "remote_ip" : "10.0.0.2", - "method" : "GET", - "user_name" : "-", - "http_version" : "1.1", - "body_sent" : { - "bytes" : "571" - }, - "remote_ip_list" : [ - "10.0.0.2", - "10.0.0.1", - "127.0.0.1" - ], - "url" : "/ocelot", - "user_agent" : { - "major" : "49", - "minor" : "0", - "os" : "Mac OS X 10.12", - "os_minor" : "12", - "os_major" : "10", - "name" : "Firefox", - "os_name" : "Mac OS X", - "device" : "Other" - } - } - }, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "input" : { - "type" : "log" - }, - "read_timestamp" : "2017-05-29T22:28:06.245Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log", - "fileset" : { - "module" : "nginx", - "name" : "access" - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.05.30", - "_type" : "doc", - "_id" : "AVxWUuZ8OMOtQBaTipsG", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2016-01-22T13:18:29.000Z", - "offset" : 845, - "nginx" : { - "access" : { - "referrer" : "-", - "response_code" : "200", - "remote_ip" : "199.96.1.1", - "geoip" : { - "continent_name" : "North America", - "city_name" : "Springfield", - "country_iso_code" : "US", - "region_name" : "Illinois", - "location" : { - "lon" : -89.6859, - "lat" : 39.772 - } - }, - "method" : "GET", - "user_name" : "-", - "http_version" : "1.1", - "body_sent" : { - "bytes" : "25507" - }, - "remote_ip_list" : [ - "10.5.102.222", - "199.96.1.1", - "204.246.1.1", + ], + "nginx.access.response_code": "200", + "nginx.access.url": "/ocelot", + "nginx.access.user_agent.device": "Other", + "nginx.access.user_agent.major": "49", + "nginx.access.user_agent.minor": "0", + "nginx.access.user_agent.name": "Firefox", + "nginx.access.user_agent.os": "Mac OS X 10.12", + "nginx.access.user_agent.os_major": "10", + "nginx.access.user_agent.os_minor": "12", + "nginx.access.user_agent.os_name": "Mac OS X", + "nginx.access.user_name": "-", + "offset": 341, + "prospector.type": "log" + }, + { + "@timestamp": "2016-12-07T10:05:07.000Z", + "fileset.module": "nginx", + "fileset.name": "access", + "input.type": "log", + "nginx.access.body_sent.bytes": "571", + "nginx.access.geoip.city_name": "Berlin", + "nginx.access.geoip.continent_name": "Europe", + "nginx.access.geoip.country_iso_code": "DE", + "nginx.access.geoip.location.lat": 52.5167, + "nginx.access.geoip.location.lon": 13.4, + "nginx.access.geoip.region_name": "Land Berlin", + "nginx.access.http_version": "1.1", + "nginx.access.method": "GET", + "nginx.access.referrer": "-", + "nginx.access.remote_ip": "85.181.35.98", + "nginx.access.remote_ip_list": [ + "85.181.35.98" + ], + "nginx.access.response_code": "200", + "nginx.access.url": "/ocelot", + "nginx.access.user_agent.device": "Other", + "nginx.access.user_agent.major": "49", + "nginx.access.user_agent.minor": "0", + "nginx.access.user_agent.name": "Firefox", + "nginx.access.user_agent.os": "Mac OS X 10.12", + "nginx.access.user_agent.os_major": "10", + "nginx.access.user_agent.os_minor": "12", + "nginx.access.user_agent.os_name": "Mac OS X", + "nginx.access.user_name": "-", + "offset": 527, + "prospector.type": "log" + }, + { + "@timestamp": "2016-01-22T13:18:29.000Z", + "fileset.module": "nginx", + "fileset.name": "access", + "input.type": "log", + "nginx.access.body_sent.bytes": "25507", + "nginx.access.geoip.city_name": "Springfield", + "nginx.access.geoip.continent_name": "North America", + "nginx.access.geoip.country_iso_code": "US", + "nginx.access.geoip.location.lat": 39.772, + "nginx.access.geoip.location.lon": -89.6859, + "nginx.access.geoip.region_name": "Illinois", + "nginx.access.http_version": "1.1", + "nginx.access.method": "GET", + "nginx.access.referrer": "-", + "nginx.access.remote_ip": "199.96.1.1", + "nginx.access.remote_ip_list": [ + "10.5.102.222", + "199.96.1.1", + "204.246.1.1", "10.2.1.185" - ], - "url" : "/assets/xxxx?q=100", - "user_agent" : { - "os" : "Other", - "name" : "Other", - "os_name" : "Other", - "device" : "Other" - } - } - }, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "input" : { - "type" : "log" - }, - "read_timestamp" : "2017-05-29T22:28:06.246Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log", - "fileset" : { - "module" : "nginx", - "name" : "access" - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.05.30", - "_type" : "doc", - "_id" : "AVxWUuZ8OMOtQBaTipsH", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2016-12-30T06:47:09.000Z", - "offset" : 1085, - "nginx" : { - "access" : { - "referrer" : "-", - "response_code" : "404", - "remote_ip" : "2a03:0000:10ff:f00f:0000:0000:0:8000", - "geoip" : { - "continent_name" : "Europe", - "country_iso_code" : "PT", - "location" : { - "lon" : -8.0, - "lat" : 39.5 - } - }, - "method" : "GET", - "user_name" : "-", - "http_version" : "1.1", - "body_sent" : { - "bytes" : "8571" - }, - "remote_ip_list" : [ - "2a03:0000:10ff:f00f:0000:0000:0:8000", - "10.225.192.17", + ], + "nginx.access.response_code": "200", + "nginx.access.url": "/assets/xxxx?q=100", + "nginx.access.user_agent.device": "Other", + "nginx.access.user_agent.name": "Other", + "nginx.access.user_agent.os": "Other", + "nginx.access.user_agent.os_name": "Other", + "nginx.access.user_name": "-", + "offset": 693, + "prospector.type": "log" + }, + { + "@timestamp": "2016-12-30T06:47:09.000Z", + "fileset.module": "nginx", + "fileset.name": "access", + "input.type": "log", + "nginx.access.body_sent.bytes": "8571", + "nginx.access.geoip.continent_name": "Europe", + "nginx.access.geoip.country_iso_code": "PT", + "nginx.access.geoip.location.lat": 39.5, + "nginx.access.geoip.location.lon": -8.0, + "nginx.access.http_version": "1.1", + "nginx.access.method": "GET", + "nginx.access.referrer": "-", + "nginx.access.remote_ip": "2a03:0000:10ff:f00f:0000:0000:0:8000", + "nginx.access.remote_ip_list": [ + "2a03:0000:10ff:f00f:0000:0000:0:8000", + "10.225.192.17", "10.2.2.121" - ], - "url" : "/test.html", - "user_agent" : { - "major" : "1", - "minor" : "0", - "os" : "Other", - "name" : "Facebot", - "os_name" : "Other", - "device" : "Spider" - } - } - }, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "input" : { - "type" : "log" - }, - "read_timestamp" : "2017-05-29T22:28:06.246Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log", - "fileset" : { - "module" : "nginx", - "name" : "access" - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.05.30", - "_type" : "doc", - "_id" : "AVxWUuZ8OMOtqbaTipsE", - "_score" : 1.0, - "_source": { - "@timestamp": "2018-04-12T07:48:40.000Z", - "nginx": { - "access": { - "body_sent": { - "bytes": "0" - }, - "referrer": "-", - "remote_ip": "127.0.0.1", - "remote_ip_list": [ - "127.0.0.1" - ], - "response_code": "400", - "user_agent": { - "device": "Other", - "name": "Other", - "os": "Other", - "os_name": "Other" - }, - "user_name": "-" - } - }, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "input" : { - "type" : "log" - }, - "read_timestamp": "2018-04-13T11:13:43.103Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/nginx/access/test/test.log", - "fileset" : { - "module" : "nginx", - "name" : "access" - } + ], + "nginx.access.response_code": "404", + "nginx.access.url": "/test.html", + "nginx.access.user_agent.device": "Spider", + "nginx.access.user_agent.major": "1", + "nginx.access.user_agent.minor": "0", + "nginx.access.user_agent.name": "Facebot", + "nginx.access.user_agent.os": "Other", + "nginx.access.user_agent.os_name": "Other", + "nginx.access.user_name": "-", + "offset": 845, + "prospector.type": "log" + }, + { + "@timestamp": "2018-04-12T07:48:40.000Z", + "fileset.module": "nginx", + "fileset.name": "access", + "input.type": "log", + "nginx.access.body_sent.bytes": "0", + "nginx.access.referrer": "-", + "nginx.access.remote_ip": "127.0.0.1", + "nginx.access.remote_ip_list": [ + "127.0.0.1" + ], + "nginx.access.response_code": "400", + "nginx.access.user_agent.device": "Other", + "nginx.access.user_agent.name": "Other", + "nginx.access.user_agent.os": "Other", + "nginx.access.user_agent.os_name": "Other", + "nginx.access.user_name": "-", + "offset": 1085, + "prospector.type": "log" } - } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/osquery/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/osquery/_meta/docs.asciidoc index 54551234..38bc701f 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/osquery/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/osquery/_meta/docs.asciidoc @@ -48,7 +48,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "osquery.result.var.paths=[/path/to/osqueryd.results.log*]" +-M "osquery.result.var.paths=[/path/to/osqueryd.results.log*]" ----- include::../include/config-option-intro.asciidoc[] diff --git a/vendor/github.com/elastic/beats/filebeat/module/osquery/result/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/osquery/result/test/test.log-expected.json index 15e016af..64901cce 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/osquery/result/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/osquery/result/test/test.log-expected.json @@ -1,56 +1,30 @@ [ - { - "_index": "filebeat-7.0.0-alpha1-2018.01.01", - "_type": "doc", - "_id": "2tYQsmAB8Jfw7mP_O73E", - "_score": 1, - "_source": { - "@timestamp": "2017-12-28T14:40:08.000Z", - "offset": 574, - "osquery": { - "result": { - "columns": { - "path": "/private/var/vm", - "inodes": "9223372036854775807", - "blocks": "122061322", - "flags": "345018372", - "inodes_free": "9223372036854775804", - "blocks_size": "4096", - "blocks_available": "75966945", - "type": "apfs", - "device_alias": "/dev/disk1s4", - "device": "/dev/disk1s4", - "blocks_free": "121274885" - }, - "name": "pack_it-compliance_mounts", - "unix_time": "1514472008", - "action": "removed", - "epoch": "0", - "decorations": { - "host_uuid": "4AB2906D-5516-5794-AF54-86D1D7F533F3", - "username": "tsg" - }, - "counter": "1", - "calendar_time": "Thu Dec 28 14:40:08 2017 UTC", - "host_identifier": "192-168-0-4.rdsnet.ro" - } - }, - "beat": { - "hostname": "where-is-my-esc-key.local", - "name": "where-is-my-esc-key.local", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/osquery/result/test/test.log", - "fileset": { - "module": "osquery", - "name": "result" - } - } - } -] + { + "@timestamp": "2017-12-28T14:40:08.000Z", + "fileset.module": "osquery", + "fileset.name": "result", + "input.type": "log", + "offset": 0, + "osquery.result.action": "removed", + "osquery.result.calendar_time": "Thu Dec 28 14:40:08 2017 UTC", + "osquery.result.columns.blocks": "122061322", + "osquery.result.columns.blocks_available": "75966945", + "osquery.result.columns.blocks_free": "121274885", + "osquery.result.columns.blocks_size": "4096", + "osquery.result.columns.device": "/dev/disk1s4", + "osquery.result.columns.device_alias": "/dev/disk1s4", + "osquery.result.columns.flags": "345018372", + "osquery.result.columns.inodes": "9223372036854775807", + "osquery.result.columns.inodes_free": "9223372036854775804", + "osquery.result.columns.path": "/private/var/vm", + "osquery.result.columns.type": "apfs", + "osquery.result.counter": "1", + "osquery.result.decorations.host_uuid": "4AB2906D-5516-5794-AF54-86D1D7F533F3", + "osquery.result.decorations.username": "tsg", + "osquery.result.epoch": "0", + "osquery.result.host_identifier": "192-168-0-4.rdsnet.ro", + "osquery.result.name": "pack_it-compliance_mounts", + "osquery.result.unix_time": "1514472008", + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/postgresql/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/postgresql/_meta/docs.asciidoc index 89c867c5..9e11ea36 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/postgresql/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/postgresql/_meta/docs.asciidoc @@ -49,7 +49,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "postgresql.log.var.paths=[/path/to/log/postgres/*.log*]" +-M "postgresql.log.var.paths=[/path/to/log/postgres/*.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/ingest/pipeline.json b/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/ingest/pipeline.json index 1d1904b1..c9c33c0b 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/ingest/pipeline.json +++ b/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/ingest/pipeline.json @@ -6,16 +6,11 @@ "field": "message", "ignore_missing": true, "patterns": [ - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] %{USERNAME:postgresql.log.user}@%{POSTGRESQL_DB_NAME:postgresql.log.database} %{WORD:postgresql.log.level}: duration: %{NUMBER:postgresql.log.duration} ms statement: %{MULTILINEQUERY:postgresql.log.query}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] \\[%{USERNAME:postgresql.log.user}\\]@\\[%{POSTGRESQL_DB_NAME:postgresql.log.database}\\] %{WORD:postgresql.log.level}: duration: %{NUMBER:postgresql.log.duration} ms statement: %{MULTILINEQUERY:postgresql.log.query}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] %{USERNAME:postgresql.log.user}@%{POSTGRESQL_DB_NAME:postgresql.log.database} %{WORD:postgresql.log.level}: ?%{GREEDYDATA:postgresql.log.message}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] \\[%{USERNAME:postgresql.log.user}\\]@\\[%{POSTGRESQL_DB_NAME:postgresql.log.database}\\] %{WORD:postgresql.log.level}: ?%{GREEDYDATA:postgresql.log.message}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] %{WORD:postgresql.log.level}: ?%{GREEDYDATA:postgresql.log.message}" + "^%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] ((\\[%{USERNAME:postgresql.log.user}\\]@\\[%{POSTGRESQL_DB_NAME:postgresql.log.database}\\]|%{USERNAME:postgresql.log.user}@%{POSTGRESQL_DB_NAME:postgresql.log.database}) )?%{WORD:postgresql.log.level}: (duration: %{NUMBER:postgresql.log.duration} ms statement: %{GREEDYDATA:postgresql.log.query}|%{GREEDYDATA:postgresql.log.message})" ], "pattern_definitions": { "LOCALDATETIME": "[-0-9]+ %{TIME}", - "GREEDYDATA": ".*", - "MULTILINEQUERY" : "(.|\n|\t)*?;$", + "GREEDYDATA": "(.|\n|\t)*", "POSTGRESQL_DB_NAME": "[a-zA-Z0-9_]+[a-zA-Z0-9_\\$]*" } } diff --git a/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json index 9c001e73..9ee8cba1 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json @@ -1,868 +1,293 @@ [ - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "t8S2ml0BVlT2mTAm4zRv", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:42.585Z", - "offset": 100, - "postgresql": { - "log": { - "thread_id": "4974", - "level": "LOG", - "timezone": "CEST", - "message": "database system was shut down at 2017-06-17 16:58:04 CEST", - "timestamp": "2017-07-31 13:36:42.585" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:36:42.585 CEST [4974] LOG: database system was shut down at 2017-06-17 16:58:04 CEST", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:42.585Z" - ] - }, - "sort": [ - 1501508202585 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "tcS2ml0BVlT2mTAm4jSf", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:42.605Z", - "offset": 198, - "postgresql": { - "log": { - "thread_id": "4974", - "level": "LOG", - "timezone": "CEST", - "message": "MultiXact member wraparound protections are now enabled", - "timestamp": "2017-07-31 13:36:42.605" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:36:42.605 CEST [4974] LOG: MultiXact member wraparound protections are now enabled", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:42.605Z" - ] - }, - "sort": [ - 1501508202605 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "tsS2ml0BVlT2mTAm4jSf", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:42.615Z", - "offset": 268, - "postgresql": { - "log": { - "thread_id": "4978", - "level": "LOG", - "timezone": "CEST", - "message": "autovacuum launcher started", - "timestamp": "2017-07-31 13:36:42.615" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:36:42.615 CEST [4978] LOG: autovacuum launcher started", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:42.615Z" - ] - }, - "sort": [ - 1501508202615 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "uMS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:42.616Z", - "offset": 357, - "postgresql": { - "log": { - "thread_id": "4973", - "level": "LOG", - "timezone": "CEST", - "message": "database system is ready to accept connections", - "timestamp": "2017-07-31 13:36:42.616" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:36:42.616 CEST [4973] LOG: database system is ready to accept connections", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:42.616Z" - ] - }, - "sort": [ - 1501508202616 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "ucS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:42.956Z", - "offset": 445, - "postgresql": { - "log": { - "thread_id": "4980", - "database": "unknown", - "level": "LOG", - "timezone": "CEST", - "message": "incomplete startup packet", - "user": "unknown", - "timestamp": "2017-07-31 13:36:42.956" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "fileset": { - "module": "postgresql", - "name": "log" - }, - "message": "2017-07-31 13:36:42.956 CEST [4980] [unknown]@[unknown] LOG: incomplete startup packet" - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:42.956Z" - ] - }, - "sort": [ - 1501508202956 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "usS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:43.557Z", - "offset": 873, - "postgresql": { - "log": { - "duration": "37.118", - "thread_id": "4983", - "database": "postgres", - "level": "LOG", - "timezone": "CEST", - "query": "SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", - "user": "postgres", - "timestamp": "2017-07-31 13:36:43.557" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "fileset": { - "module": "postgresql", - "name": "log" - }, - "message": "2017-07-31 13:36:43.557 CEST [4983] postgres@postgres LOG: duration: 37.118 ms statement: SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;" - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:43.557Z" - ] - }, - "sort": [ - 1501508203557 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "u8S2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:44.104Z", - "offset": 1300, - "postgresql": { - "log": { - "duration": "2.895", - "thread_id": "4986", - "database": "postgres", - "level": "LOG", - "timezone": "CEST", - "query": "SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", - "user": "postgres", - "timestamp": "2017-07-31 13:36:44.104" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:36:44.104 CEST [4986] postgres@postgres LOG: duration: 2.895 ms statement: SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:44.104Z" - ] - }, - "sort": [ - 1501508204104 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "vMS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:36:44.642Z", - "offset": 1727, - "postgresql": { - "log": { - "duration": "2.809", - "thread_id": "4989", - "database": "postgres", - "level": "LOG", - "timezone": "CEST", - "query": "SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", - "user": "postgres", - "timestamp": "2017-07-31 13:36:44.642" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "fileset": { - "module": "postgresql", - "name": "log" - }, - "message": "2017-07-31 13:36:44.642 CEST [4989] postgres@postgres LOG: duration: 2.809 ms statement: SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;" - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:36:44.642Z" - ] - }, - "sort": [ - 1501508204642 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "vcS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:39:16.249Z", - "offset": 1818, - "postgresql": { - "log": { - "thread_id": "5407", - "database": "users", - "level": "FATAL", - "timezone": "CEST", - "message": "database \"users\" does not exist", - "user": "postgres", - "timestamp": "2017-07-31 13:39:16.249" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:39:16.249 CEST [5407] postgres@users FATAL: database \"users\" does not exist", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:39:16.249Z" - ] - }, - "sort": [ - 1501508356249 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "vsS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:39:17.945Z", - "offset": 1907, - "postgresql": { - "log": { - "thread_id": "5500", - "database": "user", - "level": "FATAL", - "timezone": "CEST", - "message": "database \"user\" does not exist", - "user": "postgres", - "timestamp": "2017-07-31 13:39:17.945" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "fileset": { - "module": "postgresql", - "name": "log" - }, - "message": "2017-07-31 13:39:17.945 CEST [5500] postgres@user FATAL: database \"user\" does not exist" - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:39:17.945Z" - ] - }, - "sort": [ - 1501508357945 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "v8S2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:39:21.025Z", - "offset": 2620, - "postgresql": { - "log": { - "duration": "37.598", - "thread_id": "5404", - "database": "postgres", - "level": "LOG", - "timezone": "CEST", - "query": "SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", - "user": "postgres", - "timestamp": "2017-07-31 13:39:21.025" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:39:21.025 CEST [5404] postgres@postgres LOG: duration: 37.598 ms statement: SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:39:21.025Z" - ] - }, - "sort": [ - 1501508361025 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "wMS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:39:31.619Z", - "offset": 2733, - "postgresql": { - "log": { - "duration": "9.482", - "thread_id": "5502", - "database": "clients", - "level": "LOG", - "timezone": "CEST", - "query": "select * from clients;", - "user": "postgres", - "timestamp": "2017-07-31 13:39:31.619" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:39:31.619 CEST [5502] postgres@clients LOG: duration: 9.482 ms statement: select * from clients;", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:39:31.619Z" - ] - }, - "sort": [ - 1501508371619 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "wcS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:39:40.147Z", - "offset": 2847, - "postgresql": { - "log": { - "duration": "0.765", - "thread_id": "5502", - "database": "clients", - "level": "LOG", - "timezone": "CEST", - "query": "select id from clients;", - "user": "postgres", - "timestamp": "2017-07-31 13:39:40.147" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "fileset": { - "module": "postgresql", - "name": "log" - }, - "message": "2017-07-31 13:39:40.147 CEST [5502] postgres@clients LOG: duration: 0.765 ms statement: select id from clients;" - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:39:40.147Z" - ] - }, - "sort": [ - 1501508380147 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "wsS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:40:54.310Z", - "offset": 3559, - "postgresql": { - "log": { - "duration": "26.082", - "thread_id": "5502", - "database": "clients", - "level": "LOG", - "timezone": "CEST", - "query": "SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", - "user": "postgres", - "timestamp": "2017-07-31 13:40:54.310" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:40:54.310 CEST [5502] postgres@clients LOG: duration: 26.082 ms statement: SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:40:54.310Z" - ] - }, - "sort": [ - 1501508454310 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "w8S2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:43:22.645Z", - "offset": 3751, - "postgresql": { - "log": { - "duration": "36.162", - "thread_id": "5502", - "database": "clients", - "level": "LOG", - "timezone": "CEST", - "query": "create table cats(name varchar(50) primary key, toy varchar (50) not null, born timestamp not null);", - "user": "postgres", - "timestamp": "2017-07-31 13:43:22.645" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:43:22.645 CEST [5502] postgres@clients LOG: duration: 36.162 ms statement: create table cats(name varchar(50) primary key, toy varchar (50) not null, born timestamp not null);", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:43:22.645Z" - ] - }, - "sort": [ - 1501508602645 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "xMS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:46:02.670Z", - "offset": 3907, - "postgresql": { - "log": { - "duration": "10.540", - "thread_id": "5502", - "database": "c$lients", - "level": "LOG", - "timezone": "CEST", - "query": "insert into cats(name, toy, born) values('kate', 'ball', now());", - "user": "postgres", - "timestamp": "2017-07-31 13:46:02.670" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "fileset": { - "module": "postgresql", - "name": "log" - }, - "message": "2017-07-31 13:46:02.670 CEST [5502] postgres@clients LOG: duration: 10.540 ms statement: insert into cats(name, toy, born) values('kate', 'ball', now());" - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:46:02.670Z" - ] - }, - "sort": [ - 1501508762670 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "xcS2ml0BVlT2mTAm4zST", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:46:23.016Z", - "offset": 4064, - "postgresql": { - "log": { - "duration": "5.156", - "thread_id": "5502", - "database": "_clients$db", - "level": "LOG", - "timezone": "CEST", - "query": "insert into cats(name, toy, born) values('frida', 'horse', now());", - "user": "postgres", - "timestamp": "2017-07-31 13:46:23.016" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:46:23.016 CEST [5502] postgres@clients LOG: duration: 5.156 ms statement: insert into cats(name, toy, born) values('frida', 'horse', now());", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:46:23.016Z" - ] - }, - "sort": [ - 1501508783016 - ] - }, - - { - "_index": "filebeat-7.0.0-alpha1-2017.08.01", - "_type": "doc", - "_id": "x8S2ml0BVlT2mTAm8zQ2", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-07-31T13:46:55.637Z", - "offset": 4258, - "postgresql": { - "log": { - "duration": "25.871", - "thread_id": "5502", - "database": "clients_db", - "level": "LOG", - "timezone": "CEST", - "query": "create table dogs(name varchar(50) primary key, owner varchar (50) not null, born timestamp not null);", - "user": "postgres", - "timestamp": "2017-07-31 13:46:55.637" - } - }, - "beat": { - "hostname": "baldur", - "name": "baldur", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/home/n/go/src/github.com/elastic/beats/filebeat/module/postgresql/log/test/postgresql-9.6-debian.log", - "message": "2017-07-31 13:46:55.637 CEST [5502] postgres@clients LOG: duration: 25.871 ms statement: create table dogs(name varchar(50) primary key, owner varchar (50) not null, born timestamp not null);", - "fileset": { - "module": "postgresql", - "name": "log" - } - }, - "fields": { - "@timestamp": [ - "2017-07-31T13:46:55.637Z" - ] - }, - "sort": [ - 1501508815637 - ] - } -] + { + "@timestamp": "2017-07-31T13:36:42.585Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:42.585 CEST [4974] LOG: database system was shut down at 2017-06-17 16:58:04 CEST", + "offset": 0, + "postgresql.log.level": "LOG", + "postgresql.log.message": "database system was shut down at 2017-06-17 16:58:04 CEST", + "postgresql.log.thread_id": "4974", + "postgresql.log.timestamp": "2017-07-31 13:36:42.585", + "postgresql.log.timezone": "CEST", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:36:42.605Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:42.605 CEST [4974] LOG: MultiXact member wraparound protections are now enabled", + "offset": 100, + "postgresql.log.level": "LOG", + "postgresql.log.message": "MultiXact member wraparound protections are now enabled", + "postgresql.log.thread_id": "4974", + "postgresql.log.timestamp": "2017-07-31 13:36:42.605", + "postgresql.log.timezone": "CEST", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:36:42.615Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:42.615 CEST [4978] LOG: autovacuum launcher started", + "offset": 198, + "postgresql.log.level": "LOG", + "postgresql.log.message": "autovacuum launcher started", + "postgresql.log.thread_id": "4978", + "postgresql.log.timestamp": "2017-07-31 13:36:42.615", + "postgresql.log.timezone": "CEST", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:36:42.616Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:42.616 CEST [4973] LOG: database system is ready to accept connections", + "offset": 268, + "postgresql.log.level": "LOG", + "postgresql.log.message": "database system is ready to accept connections", + "postgresql.log.thread_id": "4973", + "postgresql.log.timestamp": "2017-07-31 13:36:42.616", + "postgresql.log.timezone": "CEST", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:36:42.956Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:42.956 CEST [4980] [unknown]@[unknown] LOG: incomplete startup packet", + "offset": 357, + "postgresql.log.database": "unknown", + "postgresql.log.level": "LOG", + "postgresql.log.message": "incomplete startup packet", + "postgresql.log.thread_id": "4980", + "postgresql.log.timestamp": "2017-07-31 13:36:42.956", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "unknown", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:36:43.557Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:43.557 CEST [4983] postgres@postgres LOG: duration: 37.118 ms statement: SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", + "offset": 445, + "postgresql.log.database": "postgres", + "postgresql.log.duration": "37.118", + "postgresql.log.level": "LOG", + "postgresql.log.query": "SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", + "postgresql.log.thread_id": "4983", + "postgresql.log.timestamp": "2017-07-31 13:36:43.557", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:36:44.104Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:44.104 CEST [4986] postgres@postgres LOG: duration: 2.895 ms statement: SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", + "offset": 873, + "postgresql.log.database": "postgres", + "postgresql.log.duration": "2.895", + "postgresql.log.level": "LOG", + "postgresql.log.query": "SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", + "postgresql.log.thread_id": "4986", + "postgresql.log.timestamp": "2017-07-31 13:36:44.104", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:36:44.642Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:36:44.642 CEST [4989] postgres@postgres LOG: duration: 2.809 ms statement: SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", + "offset": 1300, + "postgresql.log.database": "postgres", + "postgresql.log.duration": "2.809", + "postgresql.log.level": "LOG", + "postgresql.log.query": "SELECT d.datname as \"Name\",\n\t pg_catalog.pg_get_userbyid(d.datdba) as \"Owner\",\n\t pg_catalog.pg_encoding_to_char(d.encoding) as \"Encoding\",\n\t d.datcollate as \"Collate\",\n\t d.datctype as \"Ctype\",\n\t pg_catalog.array_to_string(d.datacl, E'\\n') AS \"Access privileges\"\n\tFROM pg_catalog.pg_database d\n\tORDER BY 1;", + "postgresql.log.thread_id": "4989", + "postgresql.log.timestamp": "2017-07-31 13:36:44.642", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:39:16.249Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:39:16.249 CEST [5407] postgres@users FATAL: database \"users\" does not exist", + "offset": 1727, + "postgresql.log.database": "users", + "postgresql.log.level": "FATAL", + "postgresql.log.message": "database \"users\" does not exist", + "postgresql.log.thread_id": "5407", + "postgresql.log.timestamp": "2017-07-31 13:39:16.249", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:39:17.945Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:39:17.945 CEST [5500] postgres@user FATAL: database \"user\" does not exist", + "offset": 1818, + "postgresql.log.database": "user", + "postgresql.log.level": "FATAL", + "postgresql.log.message": "database \"user\" does not exist", + "postgresql.log.thread_id": "5500", + "postgresql.log.timestamp": "2017-07-31 13:39:17.945", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:39:21.025Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:39:21.025 CEST [5404] postgres@postgres LOG: duration: 37.598 ms statement: SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", + "offset": 1907, + "postgresql.log.database": "postgres", + "postgresql.log.duration": "37.598", + "postgresql.log.level": "LOG", + "postgresql.log.query": "SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", + "postgresql.log.thread_id": "5404", + "postgresql.log.timestamp": "2017-07-31 13:39:21.025", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:39:31.619Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:39:31.619 CEST [5502] postgres@clients LOG: duration: 9.482 ms statement: select * from clients;", + "offset": 2620, + "postgresql.log.database": "clients", + "postgresql.log.duration": "9.482", + "postgresql.log.level": "LOG", + "postgresql.log.query": "select * from clients;", + "postgresql.log.thread_id": "5502", + "postgresql.log.timestamp": "2017-07-31 13:39:31.619", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:39:40.147Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:39:40.147 CEST [5502] postgres@clients LOG: duration: 0.765 ms statement: select id from clients;", + "offset": 2733, + "postgresql.log.database": "clients", + "postgresql.log.duration": "0.765", + "postgresql.log.level": "LOG", + "postgresql.log.query": "select id from clients;", + "postgresql.log.thread_id": "5502", + "postgresql.log.timestamp": "2017-07-31 13:39:40.147", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:40:54.310Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:40:54.310 CEST [5502] postgres@clients LOG: duration: 26.082 ms statement: SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", + "offset": 2847, + "postgresql.log.database": "clients", + "postgresql.log.duration": "26.082", + "postgresql.log.level": "LOG", + "postgresql.log.query": "SELECT n.nspname as \"Schema\",\n\t c.relname as \"Name\",\n\t CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as \"Type\",\n\t pg_catalog.pg_get_userbyid(c.relowner) as \"Owner\"\n\tFROM pg_catalog.pg_class c\n\t LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace\n\tWHERE c.relkind IN ('r','')\n\t AND n.nspname <> 'pg_catalog'\n\t AND n.nspname <> 'information_schema'\n\t AND n.nspname !~ '^pg_toast'\n\t AND pg_catalog.pg_table_is_visible(c.oid)\n\tORDER BY 1,2;", + "postgresql.log.thread_id": "5502", + "postgresql.log.timestamp": "2017-07-31 13:40:54.310", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:43:22.645Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:43:22.645 CEST [5502] postgres@clients LOG: duration: 36.162 ms statement: create table cats(name varchar(50) primary key, toy varchar (50) not null, born timestamp not null);", + "offset": 3559, + "postgresql.log.database": "clients", + "postgresql.log.duration": "36.162", + "postgresql.log.level": "LOG", + "postgresql.log.query": "create table cats(name varchar(50) primary key, toy varchar (50) not null, born timestamp not null);", + "postgresql.log.thread_id": "5502", + "postgresql.log.timestamp": "2017-07-31 13:43:22.645", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:46:02.670Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:46:02.670 CEST [5502] postgres@c$lients LOG: duration: 10.540 ms statement: insert into cats(name, toy, born) values('kate', 'ball', now());", + "offset": 3751, + "postgresql.log.database": "c$lients", + "postgresql.log.duration": "10.540", + "postgresql.log.level": "LOG", + "postgresql.log.query": "insert into cats(name, toy, born) values('kate', 'ball', now());", + "postgresql.log.thread_id": "5502", + "postgresql.log.timestamp": "2017-07-31 13:46:02.670", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:46:23.016Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:46:23.016 CEST [5502] postgres@_clients$db LOG: duration: 5.156 ms statement: insert into cats(name, toy, born) values('frida', 'horse', now());", + "offset": 3908, + "postgresql.log.database": "_clients$db", + "postgresql.log.duration": "5.156", + "postgresql.log.level": "LOG", + "postgresql.log.query": "insert into cats(name, toy, born) values('frida', 'horse', now());", + "postgresql.log.thread_id": "5502", + "postgresql.log.timestamp": "2017-07-31 13:46:23.016", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + }, + { + "@timestamp": "2017-07-31T13:46:55.637Z", + "fileset.module": "postgresql", + "fileset.name": "log", + "input.type": "log", + "message": "2017-07-31 13:46:55.637 CEST [5502] postgres@clients_db LOG: duration: 25.871 ms statement: create table dogs(name varchar(50) primary key, owner varchar (50) not null, born timestamp not null);", + "offset": 4069, + "postgresql.log.database": "clients_db", + "postgresql.log.duration": "25.871", + "postgresql.log.level": "LOG", + "postgresql.log.query": "create table dogs(name varchar(50) primary key, owner varchar (50) not null, born timestamp not null);", + "postgresql.log.thread_id": "5502", + "postgresql.log.timestamp": "2017-07-31 13:46:55.637", + "postgresql.log.timezone": "CEST", + "postgresql.log.user": "postgres", + "prospector.type": "log" + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/redis/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/redis/_meta/docs.asciidoc index f4d6ddb4..e72f8221 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/redis/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/redis/_meta/docs.asciidoc @@ -63,7 +63,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "redis.log.var.paths=[/path/to/log/redis/redis-server.log*]" -M "redis.slowlog.var.hosts=[localhost:6378]" -M "redis.slowlog.var.password=[YOUR_PASSWORD]" +-M "redis.log.var.paths=[/path/to/log/redis/redis-server.log*]" -M "redis.slowlog.var.hosts=[localhost:6378]" -M "redis.slowlog.var.password=[YOUR_PASSWORD]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/redis/log/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/redis/log/test/test.log-expected.json index 586dc2f0..3fd7f8f3 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/redis/log/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/redis/log/test/test.log-expected.json @@ -1,136 +1,44 @@ [ - { - "_index" : "filebeat-6.0.0-alpha2-2017.06.02", - "_type" : "doc", - "_id" : "AVxl1DGcOMOtQBaTiyoi", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2017-05-30T10:05:20.000Z", - "offset" : 165, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "event" : { - "type" : "log" - }, - "read_timestamp" : "2017-06-01T22:43:37.024Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/redis/log/test/test.log", - "fileset" : { - "module" : "redis", - "name" : "log" - }, - "redis" : { - "log" : { - "level" : "debug", - "message" : "0 clients connected (0 slaves), 618932 bytes in use, 0 shared objects." - } - } + { + "@timestamp": "2018-05-30T12:23:52.442Z", + "fileset.module": "redis", + "fileset.name": "log", + "input.type": "log", + "offset": 0, + "prospector.type": "log", + "redis.log.level": "notice", + "redis.log.message": "Saving the final RDB snapshot before exiting.", + "redis.log.pid": "98738", + "redis.log.role": "master" + }, + { + "@timestamp": "2018-05-30T10:05:20.000Z", + "fileset.module": "redis", + "fileset.name": "log", + "input.type": "log", + "offset": 76, + "prospector.type": "log", + "redis.log.level": "debug", + "redis.log.message": "0 clients connected (0 slaves), 618932 bytes in use, 0 shared objects." + }, + { + "@timestamp": "2018-05-31T04:32:08.000Z", + "fileset.module": "redis", + "fileset.name": "log", + "input.type": "log", + "offset": 165, + "prospector.type": "log", + "redis.log.level": "notice", + "redis.log.message": "The server is now ready to accept connections on port 6379\"" + }, + { + "@timestamp": "2017-05-30T10:57:24.000Z", + "fileset.module": "redis", + "fileset.name": "log", + "input.type": "log", + "offset": 250, + "prospector.type": "log", + "redis.log.message": "Received SIGINT scheduling shutdown...", + "redis.log.pid": "5092" } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.06.02", - "_type" : "doc", - "_id" : "AVxl1DGcOMOtQBaTiyoh", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2017-05-30T12:23:52.442Z", - "offset" : 76, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "event" : { - "type" : "log" - }, - "read_timestamp" : "2017-06-01T22:43:37.024Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/redis/log/test/test.log", - "fileset" : { - "module" : "redis", - "name" : "log" - }, - "redis" : { - "log" : { - "role" : "master", - "level" : "notice", - "pid" : "98738", - "message" : "Saving the final RDB snapshot before exiting." - } - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.06.02", - "_type" : "doc", - "_id" : "AVxl1DGcOMOtQBaTiyoj", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2017-05-31T04:32:08.000Z", - "offset" : 250, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "event" : { - "type" : "log" - }, - "read_timestamp" : "2017-06-01T22:43:37.024Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/redis/log/test/test.log", - "fileset" : { - "module" : "redis", - "name" : "log" - }, - "redis" : { - "log" : { - "level" : "notice", - "message" : "The server is now ready to accept connections on port 6379\"" - } - } - } - }, - { - "_index" : "filebeat-6.0.0-alpha2-2017.06.02", - "_type" : "doc", - "_id" : "AVxl1DGcOMOtQBaTiyok", - "_score" : 1.0, - "_source" : { - "@timestamp" : "2017-05-30T10:56:31.232Z", - "offset" : 322, - "beat" : { - "hostname" : "a-mac-with-esc-key-2.local", - "name" : "a-mac-with-esc-key-2.local", - "version" : "6.0.0-alpha2" - }, - "prospector" : { - "type" : "log" - }, - "event" : { - "type" : "log" - }, - "read_timestamp" : "2017-06-01T22:43:37.024Z", - "source" : "/Users/tsg/src/github.com/elastic/beats/filebeat/module/redis/log/test/test.log", - "fileset" : { - "module" : "redis", - "name" : "log" - }, - "redis" : { - "log" : { - "pid" : "5092", - "message" : "Received SIGINT scheduling shutdown..." - } - } - } - } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/system/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/system/_meta/docs.asciidoc index 2ae2881c..d8be36a4 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/system/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/system/_meta/docs.asciidoc @@ -50,7 +50,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules {modulename} -M "system.syslog.var.paths=[/path/to/log/syslog*]" -M "system.auth.var.paths=[/path/to/log/auth.log*]" +-M "system.syslog.var.paths=[/path/to/log/syslog*]" -M "system.auth.var.paths=[/path/to/log/auth.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/system/auth/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/system/auth/_meta/fields.yml index 1e94e3df..92fe1689 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/system/auth/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/system/auth/_meta/fields.yml @@ -79,7 +79,10 @@ type: geo_point description: > The longitude and latitude. - + - name: region_iso_code + type: keyword + description: > + Region ISO code. - name: sudo type: group description: > diff --git a/vendor/github.com/elastic/beats/filebeat/module/system/auth/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/system/auth/test/test.log-expected.json index db420118..276558f3 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/system/auth/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/system/auth/test/test.log-expected.json @@ -1,402 +1,158 @@ [ { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjF", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-23T00:13:35.000Z", - "system": { - "auth": { - "hostname": "localhost", - "ssh": { - "method": "password", - "port": "58803", - "ip": "192.168.33.1", - "event": "Accepted" - }, - "pid": "7483", - "user": "vagrant", - "timestamp": "Feb 23 00:13:35" - } - }, - "offset": 254, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-21T21:54:44.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 0, + "prospector.type": "log", + "system.auth.hostname": "localhost", + "system.auth.pid": "3402", + "system.auth.ssh.event": "Accepted", + "system.auth.ssh.ip": "10.0.2.2", + "system.auth.ssh.method": "publickey", + "system.auth.ssh.port": "63673", + "system.auth.ssh.signature": "RSA 39:33:99:e9:a0:dc:f2:33:a3:e5:72:3b:7c:3a:56:84", + "system.auth.timestamp": "Feb 21 21:54:44", + "system.auth.user": "vagrant" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjK", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-23T00:08:48.000Z", - "system": { - "auth": { - "hostname": "localhost", - "sudo": { - "tty": "pts/1", - "pwd": "/home/vagrant", - "user": "root", - "command": "/bin/cat /var/log/secure" - }, - "user": "vagrant", - "timestamp": "Feb 23 00:08:48" - } - }, - "offset": 736, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-23T00:13:35.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 152, + "prospector.type": "log", + "system.auth.hostname": "localhost", + "system.auth.pid": "7483", + "system.auth.ssh.event": "Accepted", + "system.auth.ssh.ip": "192.168.33.1", + "system.auth.ssh.method": "password", + "system.auth.ssh.port": "58803", + "system.auth.timestamp": "Feb 23 00:13:35", + "system.auth.user": "vagrant" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjG", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-21T21:56:12.000Z", - "system": { - "auth": { - "hostname": "localhost", - "ssh": { - "ip": "10.0.2.2", - "event": "Invalid" - }, - "pid": "3430", - "user": "test", - "timestamp": "Feb 21 21:56:12" - } - }, - "offset": 324, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-21T21:56:12.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 254, + "prospector.type": "log", + "system.auth.hostname": "localhost", + "system.auth.pid": "3430", + "system.auth.ssh.event": "Invalid", + "system.auth.ssh.ip": "10.0.2.2", + "system.auth.timestamp": "Feb 21 21:56:12", + "system.auth.user": "test" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjJ", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-19T15:30:04.000Z", - "system": { - "auth": { - "hostname": "slave22", - "ssh": { - "dropped_ip": "123.57.245.163" - }, - "pid": "18406", - "timestamp": "Feb 19 15:30:04" - } - }, - "offset": 617, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-20T08:35:22.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 324, + "prospector.type": "log", + "system.auth.hostname": "slave22", + "system.auth.pid": "5774", + "system.auth.ssh.event": "Failed", + "system.auth.ssh.geoip.city_name": "Shenzhen", + "system.auth.ssh.geoip.continent_name": "Asia", + "system.auth.ssh.geoip.country_iso_code": "CN", + "system.auth.ssh.geoip.location.lat": 22.5333, + "system.auth.ssh.geoip.location.lon": 114.1333, + "system.auth.ssh.geoip.region_name": "Guangdong", + "system.auth.ssh.ip": "116.31.116.24", + "system.auth.ssh.method": "password", + "system.auth.ssh.port": "29160", + "system.auth.timestamp": "Feb 20 08:35:22", + "system.auth.user": "root" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjL", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-24T00:13:02.000Z", - "system": { - "auth": { - "hostname": "precise32", - "sudo": { - "tty": "pts/1", - "pwd": "/home/vagrant", - "error": "user NOT in sudoers", - "user": "root", - "command": "/bin/ls" - }, - "user": "tsg", - "timestamp": "Feb 24 00:13:02" - } - }, - "offset": 861, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-21T23:35:33.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 420, + "prospector.type": "log", + "system.auth.hostname": "localhost", + "system.auth.sudo.command": "/bin/ls", + "system.auth.sudo.pwd": "/home/vagrant", + "system.auth.sudo.tty": "pts/0", + "system.auth.sudo.user": "root", + "system.auth.timestamp": "Feb 21 23:35:33", + "system.auth.user": "vagrant" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjM", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-22T11:47:05.000Z", - "system": { - "auth": { - "hostname": "localhost", - "pid": "6991", - "groupadd": { - "gid": "48", - "name": "apache" - }, - "timestamp": "Feb 22 11:47:05" - } - }, - "offset": 934, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-19T15:30:04.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 522, + "prospector.type": "log", + "system.auth.hostname": "slave22", + "system.auth.pid": "18406", + "system.auth.ssh.dropped_ip": "123.57.245.163", + "system.auth.timestamp": "Feb 19 15:30:04" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjN", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-22T11:47:05.000Z", - "system": { - "auth": { - "hostname": "localhost", - "pid": "6995", - "useradd": { - "uid": "48", - "gid": "48", - "shell": "/sbin/nologin", - "name": "apache", - "home": "/usr/share/httpd" - }, - "timestamp": "Feb 22 11:47:05" - } - }, - "offset": 1057, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-23T00:08:48.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 617, + "prospector.type": "log", + "system.auth.hostname": "localhost", + "system.auth.sudo.command": "/bin/cat /var/log/secure", + "system.auth.sudo.pwd": "/home/vagrant", + "system.auth.sudo.tty": "pts/1", + "system.auth.sudo.user": "root", + "system.auth.timestamp": "Feb 23 00:08:48", + "system.auth.user": "vagrant" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjE", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-21T21:54:44.000Z", - "system": { - "auth": { - "hostname": "localhost", - "ssh": { - "method": "publickey", - "signature": "RSA 39:33:99:e9:a0:dc:f2:33:a3:e5:72:3b:7c:3a:56:84", - "port": "63673", - "ip": "10.0.2.2", - "event": "Accepted" - }, - "pid": "3402", - "user": "vagrant", - "timestamp": "Feb 21 21:54:44" - } - }, - "offset": 152, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-24T00:13:02.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 736, + "prospector.type": "log", + "system.auth.hostname": "precise32", + "system.auth.sudo.command": "/bin/ls", + "system.auth.sudo.error": "user NOT in sudoers", + "system.auth.sudo.pwd": "/home/vagrant", + "system.auth.sudo.tty": "pts/1", + "system.auth.sudo.user": "root", + "system.auth.timestamp": "Feb 24 00:13:02", + "system.auth.user": "tsg" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjH", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-20T08:35:22.000Z", - "system": { - "auth": { - "hostname": "slave22", - "ssh": { - "geoip": { - "continent_name": "Asia", - "city_name": "Shenzhen", - "country_iso_code": "CN", - "region_name": "Guangdong", - "location": { - "lon": 114.1333, - "lat": 22.5333 - } - }, - "method": "password", - "port": "29160", - "ip": "116.31.116.24", - "event": "Failed" - }, - "pid": "5774", - "user": "root", - "timestamp": "Feb 20 08:35:22" - } - }, - "offset": 420, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } - }, + "@timestamp": "2018-02-22T11:47:05.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 861, + "prospector.type": "log", + "system.auth.groupadd.gid": "48", + "system.auth.groupadd.name": "apache", + "system.auth.hostname": "localhost", + "system.auth.pid": "6991", + "system.auth.timestamp": "Feb 22 11:47:05" + }, { - "_index": "test-filebeat-modules", - "_type": "log", - "_id": "AVpwYhxbd3MQAzSWoGjI", - "_score": 1.0, - "_source": { - "@timestamp": "2017-02-21T23:35:33.000Z", - "system": { - "auth": { - "hostname": "localhost", - "sudo": { - "tty": "pts/0", - "pwd": "/home/vagrant", - "user": "root", - "command": "/bin/ls" - }, - "user": "vagrant", - "timestamp": "Feb 21 23:35:33" - } - }, - "offset": 522, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/auth/test/test.log", - "fileset": { - "module": "system", - "name": "auth" - } - } + "@timestamp": "2018-02-22T11:47:05.000Z", + "fileset.module": "system", + "fileset.name": "auth", + "input.type": "log", + "offset": 934, + "prospector.type": "log", + "system.auth.hostname": "localhost", + "system.auth.pid": "6995", + "system.auth.timestamp": "Feb 22 11:47:05", + "system.auth.useradd.gid": "48", + "system.auth.useradd.home": "/usr/share/httpd", + "system.auth.useradd.name": "apache", + "system.auth.useradd.shell": "/sbin/nologin", + "system.auth.useradd.uid": "48" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json index f9a53e85..8bf8a368 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json @@ -1,102 +1,38 @@ [ { - "_index": "filebeat-2017.01.27", - "_type": "log", - "_id": "AVngMBcpUmQau8zc_UuM", - "_score": 1.0, - "_source": { - "@timestamp": "2017-12-13T11:35:28.000Z", - "system": { - "syslog": { - "hostname": "a-mac-with-esc-key", - "pid": "21412", - "program": "GoogleSoftwareUpdateAgent", - "message": "2016-12-13 11:35:28.420 GoogleSoftwareUpdateAgent[21412/0x700007399000] [lvl=2] -[KSAgentApp updateProductWithProductID:usingEngine:] Checking for updates for \"All Products\" using engine \n\t\t>>\n\t\tprocessor=\n\t\t\tisProcessing=NO actionsCompleted=0 progress=0.00\n\t\t\terrors=0 currentActionErrors=0\n\t\t\tevents=0 currentActionEvents=0\n\t\t\tactionQueue=( )\n\t\t>\n\t\tdelegate=(null)\n\t\tserverInfoStore=(null)\n\t\terrors=0\n\t>", - "timestamp": "Dec 13 11:35:28" - } - }, - "offset": 907, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "module/system/syslog/test/darwin-syslog-sample.log", - "fields": { - "source_type": "system-syslog" - } - } - }, + "@timestamp": "2018-12-13T11:35:28.000Z", + "fileset.module": "system", + "fileset.name": "syslog", + "input.type": "log", + "offset": 0, + "prospector.type": "log", + "system.syslog.hostname": "a-mac-with-esc-key", + "system.syslog.message": "2016-12-13 11:35:28.420 GoogleSoftwareUpdateAgent[21412/0x700007399000] [lvl=2] -[KSAgentApp updateProductWithProductID:usingEngine:] Checking for updates for \"All Products\" using engine \n\t\t>>\n\t\tprocessor=\n\t\t\tisProcessing=NO actionsCompleted=0 progress=0.00\n\t\t\terrors=0 currentActionErrors=0\n\t\t\tevents=0 currentActionEvents=0\n\t\t\tactionQueue=( )\n\t\t>\n\t\tdelegate=(null)\n\t\tserverInfoStore=(null)\n\t\terrors=0\n\t>", + "system.syslog.pid": "21412", + "system.syslog.program": "GoogleSoftwareUpdateAgent", + "system.syslog.timestamp": "Dec 13 11:35:28" + }, { - "_index": "filebeat-2017.01.27", - "_type": "log", - "_id": "AVngMCdNUmQau8zc_UuN", - "_score": 1.0, - "_source": { - "@timestamp": "2017-12-13T11:35:28.000Z", - "system": { - "syslog": { - "hostname": "a-mac-with-esc-key", - "pid": "21412", - "program": "GoogleSoftwareUpdateAgent", - "message": "2016-12-13 11:35:28.421 GoogleSoftwareUpdateAgent[21412/0x700007399000] [lvl=2] -[KSUpdateEngine updateAllExceptProduct:] KSUpdateEngine updating all installed products, except:'com.google.Keystone'.", - "timestamp": "Dec 13 11:35:28" - } - }, - "offset": 1176, - "beat": { - "hostname": "a-mac-with-esc-key.local", - "name": "a-mac-with-esc-key.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "module/system/syslog/test/darwin-syslog-sample.log", - "fields": { - "source_type": "system-syslog" - } - } - }, + "@timestamp": "2018-12-13T11:35:28.000Z", + "fileset.module": "system", + "fileset.name": "syslog", + "input.type": "log", + "offset": 907, + "prospector.type": "log", + "system.syslog.hostname": "a-mac-with-esc-key", + "system.syslog.message": "2016-12-13 11:35:28.421 GoogleSoftwareUpdateAgent[21412/0x700007399000] [lvl=2] -[KSUpdateEngine updateAllExceptProduct:] KSUpdateEngine updating all installed products, except:'com.google.Keystone'.", + "system.syslog.pid": "21412", + "system.syslog.program": "GoogleSoftwareUpdateAgent", + "system.syslog.timestamp": "Dec 13 11:35:28" + }, { - "_index": "test-filebeat-modules", - "_type": "doc", - "_id": "AVtFVFY1nbkdi71WgGxo", - "_score": 1, - "_source": { - "@timestamp": "2017-04-04T03:39:57.000Z", - "system": { - "syslog": { - "message": "--- last message repeated 1 time ---", - "timestamp": "Apr 4 03:39:57" - } - }, - "offset": 1228, - "beat": { - "hostname": "a-mac-with-esc-key-2.local", - "name": "a-mac-with-esc-key-2.local", - "version": "6.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "source": "/Users/tsg/src/github.com/elastic/beats/filebeat/module/system/syslog/test/darwin-syslog-sample.log", - "fileset": { - "module": "system", - "name": "syslog" - } - } + "@timestamp": "2018-04-04T03:39:57.000Z", + "fileset.module": "system", + "fileset.name": "syslog", + "input.type": "log", + "offset": 1176, + "prospector.type": "log", + "system.syslog.message": "--- last message repeated 1 time ---", + "system.syslog.timestamp": "Apr 4 03:39:57" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/module/traefik/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/module/traefik/_meta/docs.asciidoc index 6264e00f..07900a3e 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/traefik/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/module/traefik/_meta/docs.asciidoc @@ -42,7 +42,7 @@ To specify the same settings at the command line, you use: ["source","sh",subs="attributes"] ----- -./{beatname_lc} --modules traefik -M "traefik.access.var.paths=[/path/to/traefik/access.log*]" +-M "traefik.access.var.paths=[/path/to/traefik/access.log*]" ----- diff --git a/vendor/github.com/elastic/beats/filebeat/module/traefik/access/_meta/fields.yml b/vendor/github.com/elastic/beats/filebeat/module/traefik/access/_meta/fields.yml index 01250f8f..f205f72a 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/traefik/access/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/filebeat/module/traefik/access/_meta/fields.yml @@ -112,6 +112,10 @@ type: keyword description: > The city name. + - name: region_iso_code + type: keyword + description: > + Region ISO code. - name: request_count type: long description: > diff --git a/vendor/github.com/elastic/beats/filebeat/module/traefik/access/test/test.log-expected.json b/vendor/github.com/elastic/beats/filebeat/module/traefik/access/test/test.log-expected.json index e4cab9aa..d75a0d93 100644 --- a/vendor/github.com/elastic/beats/filebeat/module/traefik/access/test/test.log-expected.json +++ b/vendor/github.com/elastic/beats/filebeat/module/traefik/access/test/test.log-expected.json @@ -1,130 +1,54 @@ [ { - "_index": "filebeat-2017.10", - "_type": "doc", - "_id": "AV8CftO9KnxqdH7bMrjU", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-10-02T20:22:08.000Z", - "offset": 552, - "traefik": { - "access": { - "referrer": "http://example.com/login", - "response_code": "304", - "remote_ip": "85.181.35.98", - "geoip": { - "continent_name": "Europe", - "country_iso_code": "DE", - "city_name": "Berlin", - "location": { - "lon": 13.4, - "lat": 52.5167 - }, - "region_name": "Land Berlin" - }, - "method": "GET", - "user_name": "-", - "http_version": "1.1", - "body_sent": { - "bytes": "0" - }, - "url": "/ui/favicons/favicon.ico", - "user_agent": { - "patch": "3163", - "major": "61", - "minor": "0", - "os": "Linux", - "name": "Chrome", - "os_name": "Linux", - "device": "Other" - } - } - }, - "beat": { - "hostname": "MM-XPS-15", - "name": "MM-XPS-15", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2017-10-09T18:56:25.032Z", - "source": "/var/log/traefik/access.log", - "fileset": { - "module": "traefik", - "name": "access" - } - }, - "fields": { - "@timestamp": [ - 1506975728000 - ] - }, - "sort": [ - 1506975728000 - ] - }, + "@timestamp": "2017-10-02T20:22:07.000Z", + "fileset.module": "traefik", + "fileset.name": "access", + "input.type": "log", + "offset": 0, + "prospector.type": "log", + "traefik.access.body_sent.bytes": "0", + "traefik.access.http_version": "1.1", + "traefik.access.method": "GET", + "traefik.access.referrer": "http://example.com/login", + "traefik.access.remote_ip": "192.168.33.1", + "traefik.access.response_code": "304", + "traefik.access.url": "/ui/favicons/favicon-16x16.png", + "traefik.access.user_agent.device": "Other", + "traefik.access.user_agent.major": "61", + "traefik.access.user_agent.minor": "0", + "traefik.access.user_agent.name": "Chrome", + "traefik.access.user_agent.os": "Linux", + "traefik.access.user_agent.os_name": "Linux", + "traefik.access.user_agent.patch": "3163", + "traefik.access.user_name": "-" + }, { - "_index": "filebeat-2017.10", - "_type": "doc", - "_id": "AV8CftO9KnxqdH7bMrjT", - "_version": 1, - "_score": null, - "_source": { - "@timestamp": "2017-10-02T20:22:07.000Z", - "offset": 280, - "traefik": { - "access": { - "referrer": "http://example.com/login", - "response_code": "304", - "remote_ip": "192.168.33.1", - "method": "GET", - "user_name": "-", - "http_version": "1.1", - "body_sent": { - "bytes": "0" - }, - "url": "/ui/favicons/favicon-16x16.png", - "user_agent": { - "patch": "3163", - "major": "61", - "minor": "0", - "os": "Linux", - "name": "Chrome", - "os_name": "Linux", - "device": "Other" - } - } - }, - "beat": { - "hostname": "MM-XPS-15", - "name": "MM-XPS-15", - "version": "7.0.0-alpha1" - }, - "prospector": { - "type": "log" - }, - "input": { - "type": "log" - }, - "read_timestamp": "2017-10-09T18:56:25.031Z", - "source": "/var/log/traefik/access.log", - "fileset": { - "module": "traefik", - "name": "access" - } - }, - "fields": { - "@timestamp": [ - 1506975727000 - ] - }, - "sort": [ - 1506975727000 - ] + "@timestamp": "2017-10-02T20:22:08.000Z", + "fileset.module": "traefik", + "fileset.name": "access", + "input.type": "log", + "offset": 280, + "prospector.type": "log", + "traefik.access.body_sent.bytes": "0", + "traefik.access.geoip.city_name": "Berlin", + "traefik.access.geoip.continent_name": "Europe", + "traefik.access.geoip.country_iso_code": "DE", + "traefik.access.geoip.location.lat": 52.5167, + "traefik.access.geoip.location.lon": 13.4, + "traefik.access.geoip.region_name": "Land Berlin", + "traefik.access.http_version": "1.1", + "traefik.access.method": "GET", + "traefik.access.referrer": "http://example.com/login", + "traefik.access.remote_ip": "85.181.35.98", + "traefik.access.response_code": "304", + "traefik.access.url": "/ui/favicons/favicon.ico", + "traefik.access.user_agent.device": "Other", + "traefik.access.user_agent.major": "61", + "traefik.access.user_agent.minor": "0", + "traefik.access.user_agent.name": "Chrome", + "traefik.access.user_agent.os": "Linux", + "traefik.access.user_agent.os_name": "Linux", + "traefik.access.user_agent.patch": "3163", + "traefik.access.user_name": "-" } -] +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/filebeat/modules.d/elasticsearch.yml.disabled b/vendor/github.com/elastic/beats/filebeat/modules.d/elasticsearch.yml.disabled index 6358721f..0c2562f2 100644 --- a/vendor/github.com/elastic/beats/filebeat/modules.d/elasticsearch.yml.disabled +++ b/vendor/github.com/elastic/beats/filebeat/modules.d/elasticsearch.yml.disabled @@ -6,3 +6,27 @@ # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. #var.paths: + + gc: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + audit: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + slowlog: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + deprecation: + enabled: true + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: diff --git a/vendor/github.com/elastic/beats/filebeat/modules.d/kafka.yml.disabled b/vendor/github.com/elastic/beats/filebeat/modules.d/kafka.yml.disabled index fe568e8e..9193a87a 100644 --- a/vendor/github.com/elastic/beats/filebeat/modules.d/kafka.yml.disabled +++ b/vendor/github.com/elastic/beats/filebeat/modules.d/kafka.yml.disabled @@ -11,3 +11,5 @@ # Filebeat will choose the paths depending on your OS. #var.paths: + # Convert the timestamp to UTC. Requires Elasticsearch >= 6.1. + #var.convert_timezone: false diff --git a/vendor/github.com/elastic/beats/filebeat/processor/add_kubernetes_metadata/matchers.go b/vendor/github.com/elastic/beats/filebeat/processor/add_kubernetes_metadata/matchers.go index 06ec4366..bac49354 100644 --- a/vendor/github.com/elastic/beats/filebeat/processor/add_kubernetes_metadata/matchers.go +++ b/vendor/github.com/elastic/beats/filebeat/processor/add_kubernetes_metadata/matchers.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( diff --git a/vendor/github.com/elastic/beats/filebeat/processor/add_kubernetes_metadata/matchers_test.go b/vendor/github.com/elastic/beats/filebeat/processor/add_kubernetes_metadata/matchers_test.go deleted file mode 100644 index a460f5fa..00000000 --- a/vendor/github.com/elastic/beats/filebeat/processor/add_kubernetes_metadata/matchers_test.go +++ /dev/null @@ -1,98 +0,0 @@ -package add_kubernetes_metadata - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -// A random container ID that we use for our tests -const cid = "0069869de9adf97f574c62029aeba65d1ecd85a2a112e87fbc28afe4dec2b843" - -// A random pod UID that we use for our tests -const puid = "005f3b90-4b9d-12f8-acf0-31020a840133" - -func TestLogsPathMatcher_InvalidSource1(t *testing.T) { - cfgLogsPath := "" // use the default matcher configuration - source := "/var/log/messages" - expectedResult := "" - executeTest(t, cfgLogsPath, source, expectedResult) -} - -func TestLogsPathMatcher_InvalidSource2(t *testing.T) { - cfgLogsPath := "" // use the default matcher configuration - source := "/var/lib/docker/containers/01234567/89abcdef-json.log" - expectedResult := "" - executeTest(t, cfgLogsPath, source, expectedResult) -} - -func TestLogsPathMatcher_InvalidSource3(t *testing.T) { - cfgLogsPath := "/var/log/containers/" - source := "/var/log/containers/pod_ns_container_01234567.log" - expectedResult := "" - executeTest(t, cfgLogsPath, source, expectedResult) -} - -func TestLogsPathMatcher_VarLibDockerContainers(t *testing.T) { - cfgLogsPath := "" // use the default matcher configuration - source := fmt.Sprintf("/var/lib/docker/containers/%s/%s-json.log", cid, cid) - expectedResult := cid - executeTest(t, cfgLogsPath, source, expectedResult) -} - -func TestLogsPathMatcher_VarLogContainers(t *testing.T) { - cfgLogsPath := "/var/log/containers/" - source := fmt.Sprintf("/var/log/containers/kube-proxy-4d7nt_kube-system_kube-proxy-%s.log", cid) - expectedResult := cid - executeTest(t, cfgLogsPath, source, expectedResult) -} - -func TestLogsPathMatcher_AnotherLogDir(t *testing.T) { - cfgLogsPath := "/var/log/other/" - source := fmt.Sprintf("/var/log/other/%s.log", cid) - expectedResult := cid - executeTest(t, cfgLogsPath, source, expectedResult) -} - -func TestLogsPathMatcher_VarLibKubeletPods(t *testing.T) { - cfgLogsPath := "/var/lib/kubelet/pods/" - cfgResourceType := "pod" - source := fmt.Sprintf("/var/lib/kubelet/pods/%s/volumes/kubernetes.io~empty-dir/applogs/server.log", puid) - expectedResult := puid - executeTestWithResourceType(t, cfgLogsPath, cfgResourceType, source, expectedResult) -} - -func TestLogsPathMatcher_InvalidSource4(t *testing.T) { - cfgLogsPath := "/var/lib/kubelet/pods/" - cfgResourceType := "pod" - source := fmt.Sprintf("/invalid/dir/%s/volumes/kubernetes.io~empty-dir/applogs/server.log", puid) - expectedResult := "" - executeTestWithResourceType(t, cfgLogsPath, cfgResourceType, source, expectedResult) -} - -func executeTest(t *testing.T, cfgLogsPath string, source string, expectedResult string) { - executeTestWithResourceType(t, cfgLogsPath, "", source, expectedResult) -} - -func executeTestWithResourceType(t *testing.T, cfgLogsPath string, cfgResourceType string, source string, expectedResult string) { - var testConfig = common.NewConfig() - if cfgLogsPath != "" { - testConfig.SetString("logs_path", -1, cfgLogsPath) - } - - if cfgResourceType != "" { - testConfig.SetString("resource_type", -1, cfgResourceType) - } - - logMatcher, err := newLogsPathMatcher(*testConfig) - assert.Nil(t, err) - - input := common.MapStr{ - "source": source, - } - output := logMatcher.MetadataIndex(input) - assert.Equal(t, expectedResult, output) -} diff --git a/vendor/github.com/elastic/beats/filebeat/prospector/prospector.go b/vendor/github.com/elastic/beats/filebeat/prospector/prospector.go index c6e4ca2c..a997e0cc 100644 --- a/vendor/github.com/elastic/beats/filebeat/prospector/prospector.go +++ b/vendor/github.com/elastic/beats/filebeat/prospector/prospector.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 prospector allows to define new way of reading data in Filebeat // Deprecated: See the input package package prospector diff --git a/vendor/github.com/elastic/beats/filebeat/reader/doc.go b/vendor/github.com/elastic/beats/filebeat/reader/doc.go new file mode 100644 index 00000000..619e9826 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/doc.go @@ -0,0 +1,30 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 reader provides interface and struct to read messages and report them to a harvester + +The interface used is: + + type Reader interface { + Next() (Message, error) + } + +Each time Next is called on a reader, a Message object is returned. + +*/ +package reader diff --git a/vendor/github.com/elastic/beats/filebeat/reader/docker_json/docker_json.go b/vendor/github.com/elastic/beats/filebeat/reader/docker_json/docker_json.go new file mode 100644 index 00000000..a2849f3e --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/docker_json/docker_json.go @@ -0,0 +1,188 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker_json + +import ( + "bytes" + "encoding/json" + "strings" + "time" + + "github.com/elastic/beats/filebeat/reader" + "github.com/elastic/beats/libbeat/common" + + "github.com/pkg/errors" +) + +// Reader processor renames a given field +type Reader struct { + reader reader.Reader + // stream filter, `all`, `stderr` or `stdout` + stream string + + // join partial lines + partial bool + + // parse CRI flags + criflags bool +} + +type logLine struct { + Partial bool `json:"-"` + Timestamp time.Time `json:"-"` + Time string `json:"time"` + Stream string `json:"stream"` + Log string `json:"log"` +} + +// New creates a new reader renaming a field +func New(r reader.Reader, stream string, partial bool, CRIFlags bool) *Reader { + return &Reader{ + stream: stream, + partial: partial, + reader: r, + criflags: CRIFlags, + } +} + +// parseCRILog parses logs in CRI log format. +// CRI log format example : +// 2017-09-12T22:32:21.212861448Z stdout 2017-09-12 22:32:21.212 [INFO][88] table.go 710: Invalidating dataplane cache +func (p *Reader) parseCRILog(message *reader.Message, msg *logLine) error { + split := 3 + // read line tags if split is enabled: + if p.criflags { + split = 4 + } + + // current field + i := 0 + + // timestamp + log := strings.SplitN(string(message.Content), " ", split) + if len(log) < split { + return errors.New("invalid CRI log format") + } + ts, err := time.Parse(time.RFC3339, log[i]) + if err != nil { + return errors.Wrap(err, "parsing CRI timestamp") + } + message.Ts = ts + i++ + + // stream + msg.Stream = log[i] + i++ + + // tags + partial := false + if p.criflags { + // currently only P(artial) or F(ull) are available + tags := strings.Split(log[i], ":") + for _, tag := range tags { + if tag == "P" { + partial = true + } + } + i++ + } + + msg.Partial = partial + message.AddFields(common.MapStr{ + "stream": msg.Stream, + }) + // Remove ending \n for partial messages + message.Content = []byte(log[i]) + if partial { + message.Content = bytes.TrimRightFunc(message.Content, func(r rune) bool { + return r == '\n' || r == '\r' + }) + } + + return nil +} + +// parseReaderLog parses logs in Docker JSON log format. +// Docker JSON log format example: +// {"log":"1:M 09 Nov 13:27:36.276 # User requested shutdown...\n","stream":"stdout"} +func (p *Reader) parseDockerJSONLog(message *reader.Message, msg *logLine) error { + dec := json.NewDecoder(bytes.NewReader(message.Content)) + + if err := dec.Decode(&msg); err != nil { + return errors.Wrap(err, "decoding docker JSON") + } + + // Parse timestamp + ts, err := time.Parse(time.RFC3339, msg.Time) + if err != nil { + return errors.Wrap(err, "parsing docker timestamp") + } + + message.AddFields(common.MapStr{ + "stream": msg.Stream, + }) + message.Content = []byte(msg.Log) + message.Ts = ts + msg.Partial = message.Content[len(message.Content)-1] != byte('\n') + + return nil +} + +func (p *Reader) parseLine(message *reader.Message, msg *logLine) error { + if strings.HasPrefix(string(message.Content), "{") { + return p.parseDockerJSONLog(message, msg) + } + + return p.parseCRILog(message, msg) +} + +// Next returns the next line. +func (p *Reader) Next() (reader.Message, error) { + for { + message, err := p.reader.Next() + if err != nil { + return message, err + } + + var logLine logLine + err = p.parseLine(&message, &logLine) + if err != nil { + return message, err + } + + // Handle multiline messages, join partial lines + for p.partial && logLine.Partial { + next, err := p.reader.Next() + if err != nil { + return message, err + } + err = p.parseLine(&next, &logLine) + if err != nil { + return message, err + } + message.Content = append(message.Content, next.Content...) + message.Bytes += next.Bytes + } + + if p.stream != "all" && p.stream != logLine.Stream { + continue + } + + return message, err + } +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/encode/encode.go b/vendor/github.com/elastic/beats/filebeat/reader/encode/encode.go new file mode 100644 index 00000000..d0306689 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/encode/encode.go @@ -0,0 +1,56 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 encode + +import ( + "io" + "time" + + "github.com/elastic/beats/filebeat/reader" + "github.com/elastic/beats/filebeat/reader/encode/encoding" + "github.com/elastic/beats/filebeat/reader/line" +) + +// Reader produces lines by reading lines from an io.Reader +// through a decoder converting the reader it's encoding to utf-8. +type Reader struct { + reader *line.Reader +} + +// New creates a new Encode reader from input reader by applying +// the given codec. +func New( + r io.Reader, + codec encoding.Encoding, + bufferSize int, +) (Reader, error) { + eReader, err := line.New(r, codec, bufferSize) + return Reader{eReader}, err +} + +// Next reads the next line from it's initial io.Reader +// This converts a io.Reader to a reader.reader +func (r Reader) Next() (reader.Message, error) { + c, sz, err := r.reader.Next() + // Creating message object + return reader.Message{ + Ts: time.Now(), + Content: c, + Bytes: sz, + }, err +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/encoding.go b/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/encoding.go new file mode 100644 index 00000000..d7ffff72 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/encoding.go @@ -0,0 +1,89 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 encoding + +import ( + "io" + "strings" + + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/charmap" + "golang.org/x/text/encoding/htmlindex" + "golang.org/x/text/encoding/simplifiedchinese" +) + +type EncodingFactory func(io.Reader) (Encoding, error) + +type Encoding encoding.Encoding + +var encodings = map[string]EncodingFactory{ + // default + "nop": Plain, + "plain": Plain, + + // utf8 (validate input) - shadow htmlindex utf8 codecs not validating input + "unicode-1-1-utf-8": utf8Encoding, + "utf-8": utf8Encoding, + "utf8": utf8Encoding, + + // simplified chinese + "gbk": enc(simplifiedchinese.GBK), // shadow htmlindex using 'GB10830' for GBK + + // 8bit charmap encodings + "iso8859-6e": enc(charmap.ISO8859_6E), + "iso8859-6i": enc(charmap.ISO8859_6I), + "iso8859-8e": enc(charmap.ISO8859_8E), + "iso8859-8i": enc(charmap.ISO8859_8I), + + // utf16 bom codecs (seekable data source required) + "utf-16-bom": utf16BOMRequired, + "utf-16be-bom": utf16BOMBigEndian, + "utf-16le-bom": utf16BOMLittleEndian, +} + +// Plain file encoding not transforming any read bytes. +var Plain = enc(encoding.Nop) + +// UTF-8 encoding copying input to output sequence replacing invalid UTF-8 +// converted to '\uFFFD'. +// +// See: http://encoding.spec.whatwg.org/#replacement +var utf8Encoding = enc(mixed{}) + +// FindEncoding searches for an EncodingFactoryby name. +func FindEncoding(name string) (EncodingFactory, bool) { + if name == "" { + return Plain, true + } + d, ok := encodings[strings.ToLower(name)] + if ok { + return d, ok + } + + codec, err := htmlindex.Get(name) + if err != nil { + return nil, false + } + return enc(codec), true +} + +func enc(e Encoding) EncodingFactory { + return func(io.Reader) (Encoding, error) { + return e, nil + } +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/mixed.go b/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/mixed.go new file mode 100644 index 00000000..5784a962 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/mixed.go @@ -0,0 +1,34 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 encoding + +import "golang.org/x/text/encoding" + +// mixed encoder is a copy of encoding.Replacement +// The difference between the two is that for the Decoder the Encoder is used +// The reasons is that during decoding UTF-8 we want to have the behaviour of the encoding, +// means copying all and replacing invalid UTF-8 chars. +type mixed struct{} + +func (mixed) NewDecoder() *encoding.Decoder { + return &encoding.Decoder{Transformer: encoding.Replacement.NewEncoder().Transformer} +} + +func (mixed) NewEncoder() *encoding.Encoder { + return &encoding.Encoder{Transformer: encoding.Replacement.NewEncoder().Transformer} +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/utf16.go b/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/utf16.go new file mode 100644 index 00000000..0c7c4b67 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/encode/encoding/utf16.go @@ -0,0 +1,123 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 encoding + +import ( + "errors" + "io" + "os" + + "golang.org/x/text/encoding/unicode" + "golang.org/x/text/transform" +) + +type endianness int8 + +const ( + unknownEndianness endianness = iota + bigEndian + littleEndian +) + +var ErrUnsupportedSourceTypeBOM = errors.New("source type not support by BOM based encoding") + +// utf16 BOM based encodings. Only seekable data sources are supported for +// the need to check the optional Byte Order Marker being available in data source +// before configuring the actual decoder and encoder. +var ( + // BOM is required, as no fallback is specified + utf16BOMRequired = utf16BOM(unknownEndianness) + + // BOM is optional. Falls back to BigEndian if missing + utf16BOMBigEndian = utf16BOM(bigEndian) + + // BOM is optional. Falls back to LittleEndian if missing + utf16BOMLittleEndian = utf16BOM(littleEndian) +) + +var utf16Map = map[endianness]Encoding{ + bigEndian: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), + littleEndian: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), +} + +func utf16BOM(e endianness) EncodingFactory { + return func(in_ io.Reader) (Encoding, error) { + in, ok := in_.(io.ReadSeeker) + if !ok { + return nil, ErrUnsupportedSourceTypeBOM + } + + return utf16Seekable(in, e) + } +} + +func utf16Seekable(in io.ReadSeeker, endianness endianness) (Encoding, error) { + // remember file offset in case we have to back off + offset, err := in.Seek(0, os.SEEK_CUR) + if err != nil { + return nil, err + } + + // goto beginning of file + keepOffset := offset == 0 + if _, err = in.Seek(0, os.SEEK_SET); err != nil { + return nil, err + } + + // read Byte Order Marker (BOM) + var buf [2]byte + n, err := in.Read(buf[:]) + if err != nil { + in.Seek(offset, os.SEEK_SET) + return nil, err + } + if n < 2 { + in.Seek(offset, os.SEEK_SET) + return nil, transform.ErrShortSrc + } + + // determine endianness from BOM + inEndianness := unknownEndianness + switch { + case buf[0] == 0xfe && buf[1] == 0xff: + inEndianness = bigEndian + case buf[0] == 0xff && buf[1] == 0xfe: + inEndianness = littleEndian + } + + // restore offset if BOM is missing or this function was not + // called with read pointer at beginning of file + if !keepOffset || inEndianness == unknownEndianness { + if _, err = in.Seek(offset, os.SEEK_SET); err != nil { + return nil, err + } + } + + // choose encoding based on BOM + if encoding, ok := utf16Map[inEndianness]; ok { + return encoding, nil + } + + // fall back to configured endianness + if encoding, ok := utf16Map[endianness]; ok { + return encoding, nil + } + + // no encoding for configured endianness found => fail + return nil, unicode.ErrMissingBOM +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/json/json.go b/vendor/github.com/elastic/beats/filebeat/reader/json/json.go new file mode 100644 index 00000000..0f62bca6 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/json/json.go @@ -0,0 +1,152 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 json + +import ( + "bytes" + gojson "encoding/json" + "fmt" + "time" + + "github.com/elastic/beats/filebeat/reader" + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/jsontransform" + "github.com/elastic/beats/libbeat/logp" +) + +type JSON struct { + reader reader.Reader + cfg *Config +} + +// NewJSONReader creates a new reader that can decode JSON. +func New(r reader.Reader, cfg *Config) *JSON { + return &JSON{reader: r, cfg: cfg} +} + +// decodeJSON unmarshals the text parameter into a MapStr and +// returns the new text column if one was requested. +func (r *JSON) decode(text []byte) ([]byte, common.MapStr) { + var jsonFields map[string]interface{} + + err := unmarshal(text, &jsonFields) + if err != nil || jsonFields == nil { + if !r.cfg.IgnoreDecodingError { + logp.Err("Error decoding JSON: %v", err) + } + if r.cfg.AddErrorKey { + jsonFields = common.MapStr{"error": createJSONError(fmt.Sprintf("Error decoding JSON: %v", err))} + } + return text, jsonFields + } + + if len(r.cfg.MessageKey) == 0 { + return []byte(""), jsonFields + } + + textValue, ok := jsonFields[r.cfg.MessageKey] + if !ok { + if r.cfg.AddErrorKey { + jsonFields["error"] = createJSONError(fmt.Sprintf("Key '%s' not found", r.cfg.MessageKey)) + } + return []byte(""), jsonFields + } + + textString, ok := textValue.(string) + if !ok { + if r.cfg.AddErrorKey { + jsonFields["error"] = createJSONError(fmt.Sprintf("Value of key '%s' is not a string", r.cfg.MessageKey)) + } + return []byte(""), jsonFields + } + + return []byte(textString), jsonFields +} + +// unmarshal is equivalent with json.Unmarshal but it converts numbers +// to int64 where possible, instead of using always float64. +func unmarshal(text []byte, fields *map[string]interface{}) error { + dec := gojson.NewDecoder(bytes.NewReader(text)) + dec.UseNumber() + err := dec.Decode(fields) + if err != nil { + return err + } + jsontransform.TransformNumbers(*fields) + return nil +} + +// Next decodes JSON and returns the filled Line object. +func (r *JSON) Next() (reader.Message, error) { + message, err := r.reader.Next() + if err != nil { + return message, err + } + + var fields common.MapStr + message.Content, fields = r.decode(message.Content) + message.AddFields(common.MapStr{"json": fields}) + return message, nil +} + +func createJSONError(message string) common.MapStr { + return common.MapStr{"message": message, "type": "json"} +} + +// MergeJSONFields writes the JSON fields in the event map, +// respecting the KeysUnderRoot and OverwriteKeys configuration options. +// If MessageKey is defined, the Text value from the event always +// takes precedence. +func MergeJSONFields(data common.MapStr, jsonFields common.MapStr, text *string, config Config) time.Time { + // The message key might have been modified by multiline + if len(config.MessageKey) > 0 && text != nil { + jsonFields[config.MessageKey] = *text + } + + // handle the case in which r.cfg.AddErrorKey is set and len(jsonFields) == 1 + // and only thing it contains is `error` key due to error in json decoding + // which results in loss of message key in the main beat event + if len(jsonFields) == 1 && jsonFields["error"] != nil { + data["message"] = *text + } + + if config.KeysUnderRoot { + // Delete existing json key + delete(data, "json") + + var ts time.Time + if v, ok := data["@timestamp"]; ok { + switch t := v.(type) { + case time.Time: + ts = t + case common.Time: + ts = time.Time(ts) + } + delete(data, "@timestamp") + } + event := &beat.Event{ + Timestamp: ts, + Fields: data, + } + jsontransform.WriteJSONKeys(event, jsonFields, config.OverwriteKeys) + + return event.Timestamp + } + return time.Time{} +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/json/json_config.go b/vendor/github.com/elastic/beats/filebeat/reader/json/json_config.go new file mode 100644 index 00000000..edadceb9 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/json/json_config.go @@ -0,0 +1,32 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 json + +// Config holds the options a JSON reader. +type Config struct { + MessageKey string `config:"message_key"` + KeysUnderRoot bool `config:"keys_under_root"` + OverwriteKeys bool `config:"overwrite_keys"` + AddErrorKey bool `config:"add_error_key"` + IgnoreDecodingError bool `config:"ignore_decoding_error"` +} + +// Validate validates the Config option for JSON reader. +func (c *Config) Validate() error { + return nil +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/limit/limit.go b/vendor/github.com/elastic/beats/filebeat/reader/limit/limit.go new file mode 100644 index 00000000..356ba439 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/limit/limit.go @@ -0,0 +1,43 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 limit + +import ( + "github.com/elastic/beats/filebeat/reader" +) + +// Reader sets an upper limited on line length. Lines longer +// then the max configured line length will be snapped short. +type Reader struct { + reader reader.Reader + maxBytes int +} + +// New creates a new reader limiting the line length. +func New(r reader.Reader, maxBytes int) *Reader { + return &Reader{reader: r, maxBytes: maxBytes} +} + +// Next returns the next line. +func (r *Reader) Next() (reader.Message, error) { + message, err := r.reader.Next() + if len(message.Content) > r.maxBytes { + message.Content = message.Content[:r.maxBytes] + } + return message, err +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/line/line.go b/vendor/github.com/elastic/beats/filebeat/reader/line/line.go new file mode 100644 index 00000000..e3b3c176 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/line/line.go @@ -0,0 +1,194 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 line + +import ( + "io" + + "golang.org/x/text/encoding" + "golang.org/x/text/transform" + + "github.com/elastic/beats/libbeat/common/streambuf" + "github.com/elastic/beats/libbeat/logp" +) + +// lineReader reads lines from underlying reader, decoding the input stream +// using the configured codec. The reader keeps track of bytes consumed +// from raw input stream for every decoded line. +type Reader struct { + reader io.Reader + codec encoding.Encoding + bufferSize int + nl []byte + inBuffer *streambuf.Buffer + outBuffer *streambuf.Buffer + inOffset int // input buffer read offset + byteCount int // number of bytes decoded from input buffer into output buffer + decoder transform.Transformer +} + +// New creates a new reader object +func New(input io.Reader, codec encoding.Encoding, bufferSize int) (*Reader, error) { + encoder := codec.NewEncoder() + + // Create newline char based on encoding + nl, _, err := transform.Bytes(encoder, []byte{'\n'}) + if err != nil { + return nil, err + } + + return &Reader{ + reader: input, + codec: codec, + bufferSize: bufferSize, + nl: nl, + decoder: codec.NewDecoder(), + inBuffer: streambuf.New(nil), + outBuffer: streambuf.New(nil), + }, nil +} + +// Next reads the next line until the new line character +func (r *Reader) Next() ([]byte, int, error) { + // This loop is need in case advance detects an line ending which turns out + // not to be one when decoded. If that is the case, reading continues. + for { + // read next 'potential' line from input buffer/reader + err := r.advance() + if err != nil { + return nil, 0, err + } + + // Check last decoded byte really being '\n' also unencoded + // if not, continue reading + buf := r.outBuffer.Bytes() + + // This can happen if something goes wrong during decoding + if len(buf) == 0 { + logp.Err("Empty buffer returned by advance") + continue + } + + if buf[len(buf)-1] == '\n' { + break + } else { + logp.Debug("line", "Line ending char found which wasn't one: %s", buf[len(buf)-1]) + } + } + + // output buffer contains complete line ending with '\n'. Extract + // byte slice from buffer and reset output buffer. + bytes, err := r.outBuffer.Collect(r.outBuffer.Len()) + r.outBuffer.Reset() + if err != nil { + // This should never happen as otherwise we have a broken state + panic(err) + } + + // return and reset consumed bytes count + sz := r.byteCount + r.byteCount = 0 + return bytes, sz, nil +} + +// Reads from the buffer until a new line character is detected +// Returns an error otherwise +func (r *Reader) advance() error { + // Initial check if buffer has already a newLine character + idx := r.inBuffer.IndexFrom(r.inOffset, r.nl) + + // fill inBuffer until '\n' sequence has been found in input buffer + for idx == -1 { + // increase search offset to reduce iterations on buffer when looping + newOffset := r.inBuffer.Len() - len(r.nl) + if newOffset > r.inOffset { + r.inOffset = newOffset + } + + buf := make([]byte, r.bufferSize) + + // try to read more bytes into buffer + n, err := r.reader.Read(buf) + + // Appends buffer also in case of err + r.inBuffer.Append(buf[:n]) + if err != nil { + return err + } + + // empty read => return buffer error (more bytes required error) + if n == 0 { + return streambuf.ErrNoMoreBytes + } + + // Check if buffer has newLine character + idx = r.inBuffer.IndexFrom(r.inOffset, r.nl) + } + + // found encoded byte sequence for '\n' in buffer + // -> decode input sequence into outBuffer + sz, err := r.decode(idx + len(r.nl)) + if err != nil { + logp.Err("Error decoding line: %s", err) + // In case of error increase size by unencoded length + sz = idx + len(r.nl) + } + + // consume transformed bytes from input buffer + err = r.inBuffer.Advance(sz) + r.inBuffer.Reset() + + // continue scanning input buffer from last position + 1 + r.inOffset = idx + 1 - sz + if r.inOffset < 0 { + // fix inOffset if '\n' has encoding > 8bits + firl line has been decoded + r.inOffset = 0 + } + + return err +} + +func (r *Reader) decode(end int) (int, error) { + var err error + buffer := make([]byte, 1024) + inBytes := r.inBuffer.Bytes() + start := 0 + + for start < end { + var nDst, nSrc int + + nDst, nSrc, err = r.decoder.Transform(buffer, inBytes[start:end], false) + if err != nil { + // Check if error is different from destination buffer too short + if err != transform.ErrShortDst { + r.outBuffer.Write(inBytes[0:end]) + start = end + break + } + + // Reset error as decoding continues + err = nil + } + + start += nSrc + r.outBuffer.Write(buffer[:nDst]) + } + + r.byteCount += start + return start, err +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/message.go b/vendor/github.com/elastic/beats/filebeat/reader/message.go new file mode 100644 index 00000000..c5e965b1 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/message.go @@ -0,0 +1,61 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 reader + +import ( + "time" + + "github.com/elastic/beats/libbeat/common" +) + +// Message represents a reader event with timestamp, content and actual number +// of bytes read from input before decoding. +type Message struct { + Ts time.Time // timestamp the content was read + Content []byte // actual content read + Bytes int // total number of bytes read to generate the message + Fields common.MapStr // optional fields that can be added by reader +} + +// IsEmpty returns true in case the message is empty +// A message with only newline character is counted as an empty message +func (m *Message) IsEmpty() bool { + // If no Bytes were read, event is empty + // For empty line Bytes is at least 1 because of the newline char + if m.Bytes == 0 { + return true + } + + // Content length can be 0 because of JSON events. Content and Fields must be empty. + if len(m.Content) == 0 && len(m.Fields) == 0 { + return true + } + + return false +} + +func (msg *Message) AddFields(fields common.MapStr) { + if fields == nil { + return + } + + if msg.Fields == nil { + msg.Fields = common.MapStr{} + } + msg.Fields.Update(fields) +} diff --git a/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline.go b/vendor/github.com/elastic/beats/filebeat/reader/multiline/multiline.go similarity index 75% rename from vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline.go rename to vendor/github.com/elastic/beats/filebeat/reader/multiline/multiline.go index 6b5d4d73..f1b871f6 100644 --- a/vendor/github.com/elastic/beats/filebeat/harvester/reader/multiline.go +++ b/vendor/github.com/elastic/beats/filebeat/reader/multiline/multiline.go @@ -1,10 +1,29 @@ -package reader +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 multiline import ( "errors" "fmt" "time" + "github.com/elastic/beats/filebeat/reader" + "github.com/elastic/beats/filebeat/reader/timeout" "github.com/elastic/beats/libbeat/common/match" "github.com/elastic/beats/libbeat/logp" ) @@ -20,8 +39,8 @@ import ( // // Errors will force the multiline reader to return the currently active // multiline event first and finally return the actual error on next call to Next. -type Multiline struct { - reader Reader +type Reader struct { + reader reader.Reader pred matcher flushMatcher *match.Matcher maxBytes int // bytes stored in content @@ -30,8 +49,8 @@ type Multiline struct { last []byte numLines int err error // last seen error - state func(*Multiline) (Message, error) - message Message + state func(*Reader) (reader.Message, error) + message reader.Message } const ( @@ -47,17 +66,17 @@ const ( type matcher func(last, current []byte) bool var ( - sigMultilineTimeout = errors.New("multline timeout") + sigMultilineTimeout = errors.New("multiline timeout") ) -// NewMultiline creates a new multi-line reader combining stream of +// New creates a new multi-line reader combining stream of // line events into stream of multi-line events. -func NewMultiline( - reader Reader, +func New( + r reader.Reader, separator string, maxBytes int, - config *MultilineConfig, -) (*Multiline, error) { + config *Config, +) (*Reader, error) { types := map[string]func(match.Matcher) (matcher, error){ "before": beforeMatcher, "after": afterMatcher, @@ -84,37 +103,37 @@ func NewMultiline( maxLines = *config.MaxLines } - timeout := defaultMultilineTimeout + tout := defaultMultilineTimeout if config.Timeout != nil { - timeout = *config.Timeout - if timeout < 0 { + tout = *config.Timeout + if tout < 0 { return nil, fmt.Errorf("timeout %v must not be negative", config.Timeout) } } - if timeout > 0 { - reader = NewTimeout(reader, sigMultilineTimeout, timeout) + if tout > 0 { + r = timeout.New(r, sigMultilineTimeout, tout) } - mlr := &Multiline{ - reader: reader, + mlr := &Reader{ + reader: r, pred: matcher, flushMatcher: flushMatcher, - state: (*Multiline).readFirst, + state: (*Reader).readFirst, maxBytes: maxBytes, maxLines: maxLines, separator: []byte(separator), - message: Message{}, + message: reader.Message{}, } return mlr, nil } // Next returns next multi-line event. -func (mlr *Multiline) Next() (Message, error) { +func (mlr *Reader) Next() (reader.Message, error) { return mlr.state(mlr) } -func (mlr *Multiline) readFirst() (Message, error) { +func (mlr *Reader) readFirst() (reader.Message, error) { for { message, err := mlr.reader.Next() if err != nil { @@ -136,12 +155,12 @@ func (mlr *Multiline) readFirst() (Message, error) { // Start new multiline event mlr.clear() mlr.load(message) - mlr.setState((*Multiline).readNext) + mlr.setState((*Reader).readNext) return mlr.readNext() } } -func (mlr *Multiline) readNext() (Message, error) { +func (mlr *Reader) readNext() (reader.Message, error) { for { message, err := mlr.reader.Next() if err != nil { @@ -165,13 +184,13 @@ func (mlr *Multiline) readNext() (Message, error) { if message.Bytes == 0 { // no lines buffered -> return error if mlr.numLines == 0 { - return Message{}, err + return reader.Message{}, err } // lines buffered, return multiline and error on next read msg := mlr.finalize() mlr.err = err - mlr.setState((*Multiline).readFailed) + mlr.setState((*Reader).readFailed) return msg, nil } @@ -183,11 +202,11 @@ func (mlr *Multiline) readNext() (Message, error) { // return multiline and error on next read msg := mlr.finalize() mlr.err = err - mlr.setState((*Multiline).readFailed) + mlr.setState((*Reader).readFailed) return msg, nil } - // no match, return current multline and retry with current line on next + // no match, return current multiline and retry with current line on next // call to readNext awaiting the error being reproduced (or resolved) // in next call to Next msg := mlr.finalize() @@ -222,16 +241,16 @@ func (mlr *Multiline) readNext() (Message, error) { } // readFailed returns empty message and error and resets line reader -func (mlr *Multiline) readFailed() (Message, error) { +func (mlr *Reader) readFailed() (reader.Message, error) { err := mlr.err mlr.err = nil mlr.resetState() - return Message{}, err + return reader.Message{}, err } // load loads the reader with the given message. It is recommend to either // run clear or finalize before. -func (mlr *Multiline) load(m Message) { +func (mlr *Reader) load(m reader.Message) { mlr.addLine(m) // Timestamp of first message is taken as overall timestamp mlr.message.Ts = m.Ts @@ -239,15 +258,15 @@ func (mlr *Multiline) load(m Message) { } // clearBuffer resets the reader buffer variables -func (mlr *Multiline) clear() { - mlr.message = Message{} +func (mlr *Reader) clear() { + mlr.message = reader.Message{} mlr.last = nil mlr.numLines = 0 mlr.err = nil } // finalize writes the existing content into the returned message and resets all reader variables. -func (mlr *Multiline) finalize() Message { +func (mlr *Reader) finalize() reader.Message { // Copy message from existing content msg := mlr.message mlr.clear() @@ -257,7 +276,7 @@ func (mlr *Multiline) finalize() Message { // addLine adds the read content to the message // The content is only added if maxBytes and maxLines is not exceed. In case one of the // two is exceeded, addLine keeps processing but does not add it to the content. -func (mlr *Multiline) addLine(m Message) { +func (mlr *Reader) addLine(m reader.Message) { if m.Bytes <= 0 { return } @@ -292,12 +311,12 @@ func (mlr *Multiline) addLine(m Message) { } // resetState sets state of the reader to readFirst -func (mlr *Multiline) resetState() { - mlr.setState((*Multiline).readFirst) +func (mlr *Reader) resetState() { + mlr.setState((*Reader).readFirst) } // setState sets state to the given function -func (mlr *Multiline) setState(next func(mlr *Multiline) (Message, error)) { +func (mlr *Reader) setState(next func(mlr *Reader) (reader.Message, error)) { mlr.state = next } diff --git a/vendor/github.com/elastic/beats/filebeat/reader/multiline/multiline_config.go b/vendor/github.com/elastic/beats/filebeat/reader/multiline/multiline_config.go new file mode 100644 index 00000000..94e9c447 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/multiline/multiline_config.go @@ -0,0 +1,43 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 multiline + +import ( + "fmt" + "time" + + "github.com/elastic/beats/libbeat/common/match" +) + +// Config holds the options of multiline readers. +type Config struct { + Negate bool `config:"negate"` + Match string `config:"match" validate:"required"` + MaxLines *int `config:"max_lines"` + Pattern *match.Matcher `config:"pattern" validate:"required"` + Timeout *time.Duration `config:"timeout" validate:"positive"` + FlushPattern *match.Matcher `config:"flush_pattern"` +} + +// Validate validates the Config option for multiline reader. +func (c *Config) Validate() error { + if c.Match != "after" && c.Match != "before" { + return fmt.Errorf("unknown matcher type: %s", c.Match) + } + return nil +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/reader.go b/vendor/github.com/elastic/beats/filebeat/reader/reader.go new file mode 100644 index 00000000..653ceb8f --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/reader.go @@ -0,0 +1,26 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 reader + +// Reader is the interface that wraps the basic Next method for +// getting a new message. +// Next returns the message being read or and error. EOF is returned +// if reader will not return any new message on subsequent calls. +type Reader interface { + Next() (Message, error) +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/strip_newline/strip_newline.go b/vendor/github.com/elastic/beats/filebeat/reader/strip_newline/strip_newline.go new file mode 100644 index 00000000..b62ba438 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/strip_newline/strip_newline.go @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 strip_newline + +import ( + "github.com/elastic/beats/filebeat/reader" +) + +// StripNewline reader removes the last trailing newline characters from +// read lines. +type StripNewline struct { + reader reader.Reader +} + +// New creates a new line reader stripping the last tailing newline. +func New(r reader.Reader) *StripNewline { + return &StripNewline{r} +} + +// Next returns the next line. +func (p *StripNewline) Next() (reader.Message, error) { + message, err := p.reader.Next() + if err != nil { + return message, err + } + + L := message.Content + message.Content = L[:len(L)-lineEndingChars(L)] + + return message, err +} + +// isLine checks if the given byte array is a line, means has a line ending \n +func isLine(l []byte) bool { + return l != nil && len(l) > 0 && l[len(l)-1] == '\n' +} + +// lineEndingChars returns the number of line ending chars the given by array has +// In case of Unix/Linux files, it is -1, in case of Windows mostly -2 +func lineEndingChars(l []byte) int { + if !isLine(l) { + return 0 + } + + if len(l) > 1 && l[len(l)-2] == '\r' { + return 2 + } + return 1 +} diff --git a/vendor/github.com/elastic/beats/filebeat/reader/timeout/timeout.go b/vendor/github.com/elastic/beats/filebeat/reader/timeout/timeout.go new file mode 100644 index 00000000..2e3fe3ef --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/reader/timeout/timeout.go @@ -0,0 +1,88 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 timeout + +import ( + "errors" + "time" + + "github.com/elastic/beats/filebeat/reader" +) + +var ( + errTimeout = errors.New("timeout") +) + +// timeoutProcessor will signal some configurable timeout error if no +// new line can be returned in time. +type Reader struct { + reader reader.Reader + timeout time.Duration + signal error + running bool + ch chan lineMessage +} + +type lineMessage struct { + line reader.Message + err error +} + +// New returns a new timeout reader from an input line reader. +func New(reader reader.Reader, signal error, t time.Duration) *Reader { + if signal == nil { + signal = errTimeout + } + + return &Reader{ + reader: reader, + signal: signal, + timeout: t, + ch: make(chan lineMessage, 1), + } +} + +// Next returns the next line. If no line was returned before timeout, the +// configured timeout error is returned. +// For handline timeouts a goroutine is started for reading lines from +// configured line reader. Only when underlying reader returns an error, the +// goroutine will be finished. +func (r *Reader) Next() (reader.Message, error) { + if !r.running { + r.running = true + go func() { + for { + message, err := r.reader.Next() + r.ch <- lineMessage{message, err} + if err != nil { + break + } + } + }() + } + + select { + case msg := <-r.ch: + if msg.err != nil { + r.running = false + } + return msg.line, msg.err + case <-time.After(r.timeout): + return reader.Message{}, r.signal + } +} diff --git a/vendor/github.com/elastic/beats/filebeat/registrar/registrar.go b/vendor/github.com/elastic/beats/filebeat/registrar/registrar.go index c884afdf..54b06a7c 100644 --- a/vendor/github.com/elastic/beats/filebeat/registrar/registrar.go +++ b/vendor/github.com/elastic/beats/filebeat/registrar/registrar.go @@ -1,8 +1,26 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 registrar import ( "encoding/json" "fmt" + "io" "os" "path/filepath" "sync" @@ -25,7 +43,7 @@ type Registrar struct { states *file.States // Map with all file paths inside and the corresponding state gcRequired bool // gcRequired is set if registry state needs to be gc'ed before the next write - gcEnabled bool // gcEnabled indictes the registry contains some state that can be gc'ed in the future + gcEnabled bool // gcEnabled indicates the registry contains some state that can be gc'ed in the future flushTimeout time.Duration bufferedStateUpdates int } @@ -115,20 +133,111 @@ func (r *Registrar) loadStates() error { logp.Info("Loading registrar data from %s", r.registryFile) - decoder := json.NewDecoder(f) - states := []file.State{} - err = decoder.Decode(&states) + states, err := readStatesFrom(f) if err != nil { - return fmt.Errorf("Error decoding states: %s", err) + return err } - - states = resetStates(states) r.states.SetStates(states) logp.Info("States Loaded from registrar: %+v", len(states)) return nil } +func readStatesFrom(in io.Reader) ([]file.State, error) { + states := []file.State{} + decoder := json.NewDecoder(in) + if err := decoder.Decode(&states); err != nil { + return nil, fmt.Errorf("Error decoding states: %s", err) + } + + states = fixStates(states) + states = resetStates(states) + return states, nil +} + +// fixStates cleans up the registry states when updating from an older version +// of filebeat potentially writing invalid entries. +func fixStates(states []file.State) []file.State { + if len(states) == 0 { + return states + } + + // we use a map of states here, so to identify and merge duplicate entries. + idx := map[string]*file.State{} + for i := range states { + state := &states[i] + fixState(state) + + id := state.ID() + old, exists := idx[id] + if !exists { + idx[id] = state + } else { + mergeStates(old, state) // overwrite the entry in 'old' + } + } + + if len(idx) == len(states) { + return states + } + + i := 0 + newStates := make([]file.State, len(idx)) + for _, state := range idx { + newStates[i] = *state + i++ + } + return newStates +} + +// fixState updates a read state to fullfil required invariantes: +// - "Meta" must be nil if len(Meta) == 0 +func fixState(st *file.State) { + if len(st.Meta) == 0 { + st.Meta = nil + } +} + +// mergeStates merges 2 states by trying to determine the 'newer' state. +// The st state is overwritten with the updated fields. +func mergeStates(st, other *file.State) { + st.Finished = st.Finished || other.Finished + if st.Offset < other.Offset { // always select the higher offset + st.Offset = other.Offset + } + + // update file meta-data. As these are updated concurrently by the + // prospectors, select the newer state based on the update timestamp. + var meta, metaOld, metaNew map[string]string + if st.Timestamp.Before(other.Timestamp) { + st.Source = other.Source + st.Timestamp = other.Timestamp + st.TTL = other.TTL + st.FileStateOS = other.FileStateOS + + metaOld, metaNew = st.Meta, other.Meta + } else { + metaOld, metaNew = other.Meta, st.Meta + } + + if len(metaOld) == 0 || len(metaNew) == 0 { + meta = metaNew + } else { + meta = map[string]string{} + for k, v := range metaOld { + meta[k] = v + } + for k, v := range metaNew { + meta[k] = v + } + } + + if len(meta) == 0 { + meta = nil + } + st.Meta = meta +} + // resetStates sets all states to finished and disable TTL on restart // For all states covered by an input, TTL will be overwritten with the input value func resetStates(states []file.State) []file.State { diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/generator/fields/main.go b/vendor/github.com/elastic/beats/filebeat/scripts/generator/fields/main.go index c4ae1099..be289426 100644 --- a/vendor/github.com/elastic/beats/filebeat/scripts/generator/fields/main.go +++ b/vendor/github.com/elastic/beats/filebeat/scripts/generator/fields/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( @@ -16,6 +33,10 @@ import ( const ( pipelinePath = "%s/module/%s/%s/ingest/pipeline.json" fieldsYmlPath = "%s/module/%s/%s/_meta/fields.yml" + + typeIdx = 0 + elementsIdx = 1 + hintIdx = 2 ) var ( @@ -47,8 +68,9 @@ type pipeline struct { } type field struct { - Type string - Elements []string + Syntax string + SemanticElements []string + Type string } type fieldYml struct { @@ -75,23 +97,41 @@ func newFieldYml(name, typeName string, noDoc bool) *fieldYml { } } -func newField(lp string) field { - lp = lp[1 : len(lp)-1] - ee := strings.Split(lp, ":") - if len(ee) != 2 { - return field{ - Type: ee[0], - Elements: nil, - } +func newField(pattern string) field { + if len(pattern) <= 2 { + return field{} + } + pattern = pattern[1 : len(pattern)-1] + + elements := strings.Split(pattern, ":") + if !isValidFormat(elements) { + return field{} + } + + hint := "" + if containsType(elements) { + hint = elements[hintIdx] } - e := strings.Split(ee[1], ".") return field{ - Type: ee[0], - Elements: e, + Syntax: elements[typeIdx], + SemanticElements: strings.Split(elements[elementsIdx], "."), + Type: hint, } } +// isValidFormat checks if the input can be split correctly +// 1. if length is 2, the format is {type}:{field.elements} +// 2. if the length is 3, the format is {type}:{field.elements}:{hint} +func isValidFormat(ee []string) bool { + return len(ee) == 2 || len(ee) == 3 +} + +// the last element is the type hint +func containsType(ee []string) bool { + return len(ee) == 3 +} + func readPipeline(beatsPath, module, fileset string) (*pipeline, error) { pp := fmt.Sprintf(pipelinePath, beatsPath, module, fileset) r, err := ioutil.ReadFile(pp) @@ -117,7 +157,7 @@ func addNewField(fs []field, f field) []field { return append(fs, f) } -func getElementsFromPatterns(patterns []string) ([]field, error) { +func getSemanticElementsFromPatterns(patterns []string) ([]field, error) { r, err := regexp.Compile("{[\\.\\w\\:]*}") if err != nil { return nil, err @@ -128,7 +168,7 @@ func getElementsFromPatterns(patterns []string) ([]field, error) { pp := r.FindAllString(lp, -1) for _, p := range pp { f := newField(p) - if f.Elements == nil { + if f.SemanticElements == nil { continue } fs = addNewField(fs, f) @@ -197,16 +237,16 @@ type processors struct { } func (p *processors) processFields() ([]field, error) { - f, err := getElementsFromPatterns(p.patterns) + f, err := getSemanticElementsFromPatterns(p.patterns) if err != nil { return nil, err } for i, ff := range f { - fs := strings.Join(ff.Elements, ".") + fs := strings.Join(ff.SemanticElements, ".") for k, mv := range p.rename { if k == fs { - ff.Elements = strings.Split(mv, ".") + ff.SemanticElements = strings.Split(mv, ".") } } for _, rm := range p.remove { @@ -258,18 +298,22 @@ func getFieldByName(f []*fieldYml, name string) *fieldYml { return nil } -func insertLastField(f []*fieldYml, name, typeName string, noDoc bool) []*fieldYml { +func insertLastField(f []*fieldYml, name string, field field, noDoc bool) []*fieldYml { ff := getFieldByName(f, name) if ff != nil { return f } - nf := newFieldYml(name, types[typeName], noDoc) + fieldType := field.Type + if fieldType == "" { + fieldType = types[field.Syntax] + } + nf := newFieldYml(name, fieldType, noDoc) return append(f, nf) } func insertGroup(out []*fieldYml, field field, index, count int, noDoc bool) []*fieldYml { - g := getFieldByName(out, field.Elements[index]) + g := getFieldByName(out, field.SemanticElements[index]) if g != nil { g.Fields = generateField(g.Fields, field, index+1, count, noDoc) return out @@ -277,14 +321,14 @@ func insertGroup(out []*fieldYml, field field, index, count int, noDoc bool) []* var groupFields []*fieldYml groupFields = generateField(groupFields, field, index+1, count, noDoc) - group := newFieldYml(field.Elements[index], "group", noDoc) + group := newFieldYml(field.SemanticElements[index], "group", noDoc) group.Fields = groupFields return append(out, group) } func generateField(out []*fieldYml, field field, index, count int, noDoc bool) []*fieldYml { if index+1 == count { - return insertLastField(out, field.Elements[index], field.Type, noDoc) + return insertLastField(out, field.SemanticElements[index], field, noDoc) } return insertGroup(out, field, index, count, noDoc) } @@ -293,10 +337,10 @@ func generateFields(f []field, noDoc bool) []*fieldYml { var out []*fieldYml for _, ff := range f { index := 1 - if len(ff.Elements) == 1 { + if len(ff.SemanticElements) == 1 { index = 0 } - out = generateField(out, ff, index, len(ff.Elements), noDoc) + out = generateField(out, ff, index, len(ff.SemanticElements), noDoc) } return out } diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/generator/fields/main_test.go b/vendor/github.com/elastic/beats/filebeat/scripts/generator/fields/main_test.go deleted file mode 100644 index d642c71b..00000000 --- a/vendor/github.com/elastic/beats/filebeat/scripts/generator/fields/main_test.go +++ /dev/null @@ -1,201 +0,0 @@ -package main - -import ( - "reflect" - "testing" - - "github.com/stretchr/testify/assert" -) - -type FieldsGeneratorTestCase struct { - patterns []string - fields []*fieldYml -} - -type RemoveProcessorTestCase struct { - processor map[string]interface{} - fields []string -} - -func TestFieldsGenerator(t *testing.T) { - tests := []FieldsGeneratorTestCase{ - FieldsGeneratorTestCase{ - patterns: []string{ - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] %{USERNAME:postgresql.log.user}@%{HOSTNAME:postgresql.log.database} %{WORD:postgresql.log.level}: duration: %{NUMBER:postgresql.log.duration} ms statement: %{MULTILINEQUERY:postgresql.log.query}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] \\[%{USERNAME:postgresql.log.user}\\]@\\[%{HOSTNAME:postgresql.log.database}\\] %{WORD:postgresql.log.level}: duration: %{NUMBER:postgresql.log.duration} ms statement: %{MULTILINEQUERY:postgresql.log.query}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] %{USERNAME:postgresql.log.user}@%{HOSTNAME:postgresql.log.database} %{WORD:postgresql.log.level}: ?%{GREEDYDATA:postgresql.log.message}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] \\[%{USERNAME:postgresql.log.user}\\]@\\[%{HOSTNAME:postgresql.log.database}\\] %{WORD:postgresql.log.level}: ?%{GREEDYDATA:postgresql.log.message}", - "%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] %{WORD:postgresql.log.level}: ?%{GREEDYDATA:postgresql.log.message}", - }, - fields: []*fieldYml{ - &fieldYml{Name: "log", Description: "Please add description", Example: "Please add example", Type: "group", Fields: []*fieldYml{ - &fieldYml{Name: "timestamp", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "timezone", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "thread_id", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "user", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "database", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "level", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "duration", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "query", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "message", Description: "Please add description", Example: "Please add example", Type: "text"}, - }, - }, - }, - }, - FieldsGeneratorTestCase{ - patterns: []string{ - "%{DATA:nginx.error.time} \\[%{DATA:nginx.error.level}\\] %{NUMBER:nginx.error.pid}#%{NUMBER:nginx.error.tid}: (\\*%{NUMBER:nginx.error.connection_id} )?%{GREEDYDATA:nginx.error.message}", - }, - fields: []*fieldYml{ - &fieldYml{Name: "error", Description: "Please add description", Example: "Please add example", Type: "group", Fields: []*fieldYml{ - &fieldYml{Name: "time", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "level", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "pid", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "tid", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "connection_id", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "message", Description: "Please add description", Example: "Please add example", Type: "text"}, - }, - }, - }, - }, - FieldsGeneratorTestCase{ - patterns: []string{ - "\\[%{TIMESTAMP:icinga.main.timestamp}\\] %{WORD:icinga.main.severity}/%{WORD:icinga.main.facility}: %{GREEDYMULTILINE:icinga.main.message}", - }, - fields: []*fieldYml{ - &fieldYml{Name: "main", Description: "Please add description", Example: "Please add example", Type: "group", Fields: []*fieldYml{ - &fieldYml{Name: "timestamp", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "severity", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "facility", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "message", Description: "Please add description", Example: "Please add example", Type: "text"}, - }, - }, - }, - }, - FieldsGeneratorTestCase{ - patterns: []string{ - "(%{POSINT:redis.log.pid}:%{CHAR:redis.log.role} )?%{REDISTIMESTAMP:redis.log.timestamp} %{REDISLEVEL:redis.log.level} %{GREEDYDATA:redis.log.message}", - "%{POSINT:redis.log.pid}:signal-handler \\(%{POSINT:redis.log.timestamp}\\) %{GREEDYDATA:redis.log.message}", - }, - fields: []*fieldYml{ - &fieldYml{Name: "log", Description: "Please add description", Example: "Please add example", Type: "group", Fields: []*fieldYml{ - &fieldYml{Name: "pid", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "role", Description: "Please add description", Example: "Please add example"}, - &fieldYml{Name: "timestamp", Description: "Please add description", Example: "Please add example"}, - &fieldYml{Name: "level", Description: "Please add description", Example: "Please add example"}, - &fieldYml{Name: "message", Description: "Please add description", Example: "Please add example", Type: "text"}, - }, - }, - }, - }, - FieldsGeneratorTestCase{ - patterns: []string{ - "\\[%{TIMESTAMP:timestamp}\\] %{WORD:severity}/%{WORD:facility}: %{GREEDYMULTILINE:message}", - }, - fields: []*fieldYml{ - &fieldYml{Name: "timestamp", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "severity", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "facility", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "message", Description: "Please add description", Example: "Please add example", Type: "text"}, - }, - }, - FieldsGeneratorTestCase{ - patterns: []string{ - "\\[%{TIMESTAMP:timestamp}\\] %{WORD:severity}/%{WORD}: %{GREEDYMULTILINE:message}", - }, - fields: []*fieldYml{ - &fieldYml{Name: "timestamp", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "severity", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "message", Description: "Please add description", Example: "Please add example", Type: "text"}, - }, - }, - } - - for _, tc := range tests { - var proc processors - proc.patterns = tc.patterns - fs, err := proc.processFields() - if err != nil { - t.Error(err) - return - } - - f := generateFields(fs, false) - assert.True(t, reflect.DeepEqual(f, tc.fields)) - } -} - -// Known limitations -func TestFieldsGeneratorKnownLimitations(t *testing.T) { - tests := []FieldsGeneratorTestCase{ - // FIXME Field names including dots are not parsed properly - FieldsGeneratorTestCase{ - patterns: []string{ - "^# User@Host: %{USER:mysql.slowlog.user}(\\[[^\\]]+\\])? @ %{HOSTNAME:mysql.slowlog.host} \\[(%{IP:mysql.slowlog.ip})?\\](\\s*Id:\\s* %{NUMBER:mysql.slowlog.id})?\n# Query_time: %{NUMBER:mysql.slowlog.query_time.sec}\\s* Lock_time: %{NUMBER:mysql.slowlog.lock_time.sec}\\s* Rows_sent: %{NUMBER:mysql.slowlog.rows_sent}\\s* Rows_examined: %{NUMBER:mysql.slowlog.rows_examined}\n(SET timestamp=%{NUMBER:mysql.slowlog.timestamp};\n)?%{GREEDYMULTILINE:mysql.slowlog.query}", - }, - fields: []*fieldYml{ - &fieldYml{Name: "slowlog", Description: "Please add description", Example: "Please add example", Type: "group", Fields: []*fieldYml{ - &fieldYml{Name: "user", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "host", Description: "Please add description", Example: "Please add example", Type: "keyword"}, - &fieldYml{Name: "ip", Description: "Please add description", Example: "Please add example"}, - &fieldYml{Name: "id", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "query_time.ms", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "lock_time.ms", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "rows_sent", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "rows_examined", Description: "Please add description", Example: "Please add example", Type: "long"}, - &fieldYml{Name: "timestamp", Description: "Please add description", Example: "Please add example", Type: "text"}, - &fieldYml{Name: "query", Description: "Please add description", Example: "Please add example", Type: "text"}, - }, - }, - }, - }, - } - - for _, tc := range tests { - var proc processors - proc.patterns = tc.patterns - fs, err := proc.processFields() - if err != nil { - t.Error(err) - return - } - - f := generateFields(fs, false) - assert.False(t, reflect.DeepEqual(f, tc.fields)) - } -} - -func TestRemoveProcessor(t *testing.T) { - tests := []RemoveProcessorTestCase{ - RemoveProcessorTestCase{ - processor: map[string]interface{}{ - "field": []string{}, - }, - fields: []string{}, - }, - RemoveProcessorTestCase{ - processor: map[string]interface{}{ - "field": []interface{}{}, - }, - fields: []string{}, - }, - RemoveProcessorTestCase{ - processor: map[string]interface{}{ - "field": "prospector.type", - }, - fields: []string{"prospector.type"}, - }, - RemoveProcessorTestCase{ - processor: map[string]interface{}{ - "field": []string{"prospector.type", "input.type"}, - }, - fields: []string{"prospector.type", "input.type"}, - }, - } - - for _, tc := range tests { - out := []string{} - res := accumulateRemoveFields(tc.processor, out) - assert.True(t, reflect.DeepEqual(res, tc.fields)) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/generator/fileset/main.go b/vendor/github.com/elastic/beats/filebeat/scripts/generator/fileset/main.go index 0872e3b2..94d0ac6b 100644 --- a/vendor/github.com/elastic/beats/filebeat/scripts/generator/fileset/main.go +++ b/vendor/github.com/elastic/beats/filebeat/scripts/generator/fileset/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/generator/generator.go b/vendor/github.com/elastic/beats/filebeat/scripts/generator/generator.go index f9be861c..e5aaf771 100644 --- a/vendor/github.com/elastic/beats/filebeat/scripts/generator/generator.go +++ b/vendor/github.com/elastic/beats/filebeat/scripts/generator/generator.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 generator import ( @@ -87,7 +104,7 @@ func readTemplate(template string, replace map[string]string) ([]byte, error) { return c, nil } -// RenameConfigYml renemas config.yml to the name of the fileset, otherwise Filebeat refuses to start +// RenameConfigYml renames config.yml to the name of the fileset, otherwise Filebeat refuses to start func RenameConfigYml(modulesPath, module, fileset string) error { old := path.Join(modulesPath, "module", module, fileset, "config", "config.yml") new := path.Join(modulesPath, "module", module, fileset, "config", fileset+".yml") diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/generator/module/main.go b/vendor/github.com/elastic/beats/filebeat/scripts/generator/module/main.go index 49ad9ba9..dedf1f3e 100644 --- a/vendor/github.com/elastic/beats/filebeat/scripts/generator/module/main.go +++ b/vendor/github.com/elastic/beats/filebeat/scripts/generator/module/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/module/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/filebeat/scripts/module/_meta/docs.asciidoc index c5e316ec..51f180d4 100644 --- a/vendor/github.com/elastic/beats/filebeat/scripts/module/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/filebeat/scripts/module/_meta/docs.asciidoc @@ -37,3 +37,7 @@ the relevant file. For example: ==== `{fileset}` log fileset settings include::../include/var-paths.asciidoc[] + +:fileset_ex!: + +:modulename!: diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/tester/main.go b/vendor/github.com/elastic/beats/filebeat/scripts/tester/main.go index 8cc051fb..5e4538ba 100644 --- a/vendor/github.com/elastic/beats/filebeat/scripts/tester/main.go +++ b/vendor/github.com/elastic/beats/filebeat/scripts/tester/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( @@ -12,8 +29,12 @@ import ( "strings" "time" - "github.com/elastic/beats/filebeat/harvester/encoding" - "github.com/elastic/beats/filebeat/harvester/reader" + "github.com/elastic/beats/filebeat/reader" + "github.com/elastic/beats/filebeat/reader/encode" + "github.com/elastic/beats/filebeat/reader/encode/encoding" + "github.com/elastic/beats/filebeat/reader/limit" + "github.com/elastic/beats/filebeat/reader/multiline" + "github.com/elastic/beats/filebeat/reader/strip_newline" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/match" ) @@ -114,12 +135,12 @@ func getLogsFromFile(logfile string, conf *logReaderConfig) ([]string, error) { } var r reader.Reader - r, err = reader.NewEncode(f, enc, 4096) + r, err = encode.New(f, enc, 4096) if err != nil { return nil, err } - r = reader.NewStripNewline(r) + r = strip_newline.New(r) if conf.multiPattern != "" { p, err := match.Compile(conf.multiPattern) @@ -127,17 +148,17 @@ func getLogsFromFile(logfile string, conf *logReaderConfig) ([]string, error) { return nil, err } - c := reader.MultilineConfig{ + c := multiline.Config{ Negate: conf.multiNegate, Match: conf.matchMode, Pattern: &p, } - r, err = reader.NewMultiline(r, "\n", 1<<20, &c) + r, err = multiline.New(r, "\n", 1<<20, &c) if err != nil { return nil, err } } - r = reader.NewLimit(r, conf.maxBytes) + r = limit.New(r, conf.maxBytes) var logs []string for { diff --git a/vendor/github.com/elastic/beats/filebeat/scripts/tester/main_test.go b/vendor/github.com/elastic/beats/filebeat/scripts/tester/main_test.go deleted file mode 100644 index 1267fa45..00000000 --- a/vendor/github.com/elastic/beats/filebeat/scripts/tester/main_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package main - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestGetPipelinePath(t *testing.T) { - testCases := []struct { - pipelinePath string - count int - }{ - { - pipelinePath: "../../module/postgresql/log/ingest/pipeline.json", - count: 1, - }, - { - pipelinePath: "../../module/postgresql/log/ingest", - count: 1, - }, - { - pipelinePath: "postgresql/log", - count: 1, - }, - } - - for _, tc := range testCases { - paths, err := getPipelinePath(tc.pipelinePath, "../../module") - if err != nil { - t.Fatal(err) - } - assert.Equal(t, tc.count, len(paths)) - } - - testCasesError := []string{ - "non-such-pipeline.json", - "no/such/path/to/pipeline", - "not/module", - } - for _, p := range testCasesError { - paths, err := getPipelinePath(p, "./module") - if err == nil { - t.Fatal(paths) - } - assert.Equal(t, 0, len(paths)) - } -} diff --git a/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.0 b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.0 new file mode 100644 index 00000000..5f7414b9 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.0 @@ -0,0 +1 @@ +[{"source":"test.log","offset":10,"timestamp":"2018-07-18T21:51:43.529893808+02:00","ttl":-1,"type":"log","FileStateOS":{"inode":8604592318,"device":16777220}}] diff --git a/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.1 b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.1 new file mode 100644 index 00000000..a4c2ccf1 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.1 @@ -0,0 +1 @@ +[{"source":"test.log","offset":10,"timestamp":"2018-07-18T21:51:43.529893808+02:00","ttl":-1,"type":"log","meta":{},"FileStateOS":{"inode":8604592318,"device":16777220}}] diff --git a/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.1-faulty b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.1-faulty new file mode 100644 index 00000000..2606e69b --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-6.3.1-faulty @@ -0,0 +1,4 @@ +[ + {"source":"test.log","offset":10,"timestamp":"2018-07-18T21:51:43.529893808+02:00","ttl":-1,"type":"log","meta":{},"FileStateOS":{"inode":8604592318,"device":16777220}}, + {"source":"test.log","offset":0,"timestamp":"2018-07-18T21:51:43.529893808+02:00","ttl":-1,"type":"log","meta":null,"FileStateOS":{"inode":8604592318,"device":16777220}} +] diff --git a/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-latest b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-latest new file mode 100644 index 00000000..110dc161 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/tests/files/registry/test-2lines-registry-latest @@ -0,0 +1 @@ +[{"source":"test.log","offset":10,"timestamp":"2018-07-18T21:51:43.529893808+02:00","ttl":-1,"type":"log","meta":null,"FileStateOS":{"inode":8604592318,"device":16777220}}] diff --git a/vendor/github.com/elastic/beats/filebeat/tests/open-file-handlers/log_stdout.py b/vendor/github.com/elastic/beats/filebeat/tests/open-file-handlers/log_stdout.py index dc1108f0..75d3667a 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/open-file-handlers/log_stdout.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/open-file-handlers/log_stdout.py @@ -12,7 +12,7 @@ lines_per_file = 10 # Each line should have the same length + line ending -# Some spare capacity is added to make sure all events are presisted +# Some spare capacity is added to make sure all events are persisted line_length = len(str(total_lines)) + 1 # Setup python log handler diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/filebeat.py b/vendor/github.com/elastic/beats/filebeat/tests/system/filebeat.py index 4d34de9c..6b217c64 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/filebeat.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/filebeat.py @@ -45,15 +45,3 @@ def get_registry_entry_by_path(self, path): tmp_entry = entry return tmp_entry - - def assert_fields_are_documented(self, evt): - """ - Assert that all keys present in evt are documented in fields.yml. - This reads from the global fields.yml, means `make collect` has to be run before the check. - """ - expected_fields, dict_fields = self.load_fields() - flat = self.flatten_object(evt, dict_fields) - - for key in flat.keys(): - if key not in expected_fields: - raise Exception("Key '{}' found in event is not documented!".format(key)) diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_load.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_load.py index bc33dbda..3e40d11d 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/test_load.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_load.py @@ -34,7 +34,7 @@ def test_no_missing_events(self): total_lines = 1000 lines_per_file = 10 # Each line should have the same length + line ending - # Some spare capacity is added to make sure all events are presisted + # Some spare capacity is added to make sure all events are persisted line_length = len(str(total_lines)) + 1 # Setup python log handler @@ -78,7 +78,7 @@ def test_no_missing_events(self): v = int(content["message"]) entry_list.append(v) - ### This lines can be uncomemnted for debugging ### + ### This lines can be uncommented for debugging ### # Prints out the missing entries # for i in range(total_lines): # if i not in entry_list: diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_ml.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_ml.py new file mode 100644 index 00000000..068a0f77 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_ml.py @@ -0,0 +1,130 @@ +from filebeat import BaseTest +from beat.beat import INTEGRATION_TESTS +import os +import unittest +import shutil +import subprocess +from elasticsearch import Elasticsearch +import logging +from parameterized import parameterized + + +class Test(BaseTest): + + def init(self): + self.elasticsearch_url = self.get_elasticsearch_url() + self.kibana_url = self.get_kibana_url() + print("Using elasticsearch: {}".format(self.elasticsearch_url)) + self.es = Elasticsearch([self.elasticsearch_url]) + logging.getLogger("urllib3").setLevel(logging.WARNING) + logging.getLogger("elasticsearch").setLevel(logging.ERROR) + + self.modules_path = os.path.abspath(self.working_dir + + "/../../../../module") + + self.kibana_path = os.path.abspath(self.working_dir + + "/../../../../_meta/kibana.generated") + + self.filebeat = os.path.abspath(self.working_dir + + "/../../../../filebeat.test") + + self.index_name = "test-filebeat-ml" + + @parameterized.expand([ + (True, False), + (True, True), + (False, False), + (False, True), + ]) + @unittest.skipIf(not INTEGRATION_TESTS, + "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") + @unittest.skipIf(os.getenv("TESTING_ENVIRONMENT") == "2x", + "integration test not available on 2.x") + def test_ml_setup(self, setup_flag, modules_flag): + """ Test ML are installed in all possible ways """ + self._run_ml_test(setup_flag, modules_flag) + + def _run_ml_test(self, setup_flag, modules_flag): + self.init() + + print("Test setup_flag: {}, modules_flag: {}".format(setup_flag, modules_flag)) + + # Clean any previous state + for df in self.es.transport.perform_request("GET", "/_xpack/ml/datafeeds/")["datafeeds"]: + if df["datafeed_id"] == 'filebeat-nginx-access-response_code': + self.es.transport.perform_request( + "DELETE", "/_xpack/ml/datafeeds/" + df["datafeed_id"]) + + for df in self.es.transport.perform_request("GET", "/_xpack/ml/anomaly_detectors/")["jobs"]: + if df["job_id"] == 'datafeed-filebeat-nginx-access-response_code': + self.es.transport.perform_request( + "DELETE", "/_xpack/ml/anomaly_detectors/" + df["job_id"]) + + shutil.rmtree(os.path.join(self.working_dir, + "modules.d"), ignore_errors=True) + + # generate a minimal configuration + cfgfile = os.path.join(self.working_dir, "filebeat.yml") + self.render_config_template( + template_name="filebeat_modules", + output=cfgfile, + index_name=self.index_name, + elasticsearch_url=self.elasticsearch_url, + kibana_url=self.kibana_url, + kibana_path=self.kibana_path) + + if not modules_flag: + # Enable nginx + os.mkdir(os.path.join(self.working_dir, "modules.d")) + with open(os.path.join(self.working_dir, "modules.d/nginx.yml"), "wb") as nginx: + nginx.write("- module: nginx") + + cmd = [ + self.filebeat, "-systemTest", + "-e", "-d", "*", + "-c", cfgfile + ] + + if setup_flag: + cmd += ["--setup"] + else: + cmd += ["setup", "--machine-learning"] + + if modules_flag: + cmd += ["--modules=nginx"] + + output_path = os.path.join(self.working_dir, "output.log") + output = open(output_path, "ab") + output.write(" ".join(cmd) + "\n") + beat = subprocess.Popen(cmd, + stdin=None, + stdout=output, + stderr=output, + bufsize=0) + + # Check result + self.wait_until(lambda: "filebeat-nginx-access-response_code" in + (df["job_id"] for df in self.es.transport.perform_request( + "GET", "/_xpack/ml/anomaly_detectors/")["jobs"]), + max_timeout=60) + self.wait_until(lambda: "datafeed-filebeat-nginx-access-response_code" in + (df["datafeed_id"] for df in self.es.transport.perform_request("GET", "/_xpack/ml/datafeeds/")["datafeeds"])) + + beat.kill() + + # check if fails during trying to setting it up again + output = open(output_path, "ab") + output.write(" ".join(cmd) + "\n") + beat = subprocess.Popen(cmd, + stdin=None, + stdout=output, + stderr=output, + bufsize=0) + + output = open(output_path, "r") + for obj in ["Datafeed", "Job", "Dashboard", "Search", "Visualization"]: + self.wait_log_contains("{obj} already exists".format(obj=obj), + logfile=output_path, + max_timeout=30) + + beat.kill() diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_modules.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_modules.py index 35bc6bb9..456acabd 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/test_modules.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_modules.py @@ -53,7 +53,6 @@ class Test(BaseTest): def init(self): self.elasticsearch_url = self.get_elasticsearch_url() - self.kibana_url = self.get_kibana_url() print("Using elasticsearch: {}".format(self.elasticsearch_url)) self.es = Elasticsearch([self.elasticsearch_url]) logging.getLogger("urllib3").setLevel(logging.WARNING) @@ -62,9 +61,6 @@ def init(self): self.modules_path = os.path.abspath(self.working_dir + "/../../../../module") - self.kibana_path = os.path.abspath(self.working_dir + - "/../../../../_meta/kibana") - self.filebeat = os.path.abspath(self.working_dir + "/../../../../filebeat.test") @@ -93,29 +89,6 @@ def test_fileset_file(self, module, fileset, test_file): test_file=test_file, cfgfile=cfgfile) - def _test_expected_events(self, module, test_file, res, objects): - with open(test_file + "-expected.json", "r") as f: - expected = json.load(f) - - if len(expected) > len(objects): - res = self.es.search(index=self.index_name, - body={"query": {"match_all": {}}, - "size": len(expected)}) - objects = [o["_source"] for o in res["hits"]["hits"]] - - assert len(expected) == res['hits']['total'], "expected {} but got {}".format( - len(expected), res['hits']['total']) - - for ev in expected: - found = False - for obj in objects: - if ev["_source"][module] == obj[module]: - found = True - break - - assert found, "The following expected object was not found:\n {}\nSearched in: \n{}".format( - ev["_source"][module], objects) - def run_on_file(self, module, fileset, test_file, cfgfile): print("Testing {}/{} on {}".format(module, fileset, test_file)) @@ -131,7 +104,8 @@ def run_on_file(self, module, fileset, test_file, cfgfile): "-c", cfgfile, "-modules={}".format(module), "-M", "{module}.*.enabled=false".format(module=module), - "-M", "{module}.{fileset}.enabled=true".format(module=module, fileset=fileset), + "-M", "{module}.{fileset}.enabled=true".format( + module=module, fileset=fileset), "-M", "{module}.{fileset}.var.paths=[{test_file}]".format( module=module, fileset=fileset, test_file=test_file), "-M", "*.*.input.close_eof=true", @@ -150,15 +124,17 @@ def run_on_file(self, module, fileset, test_file, cfgfile): self.wait_until(lambda: self.es.indices.exists(self.index_name)) self.es.indices.refresh(index=self.index_name) + # Loads the first 100 events to be checked res = self.es.search(index=self.index_name, - body={"query": {"match_all": {}}}) + body={"query": {"match_all": {}}, "size": 100, "sort": {"offset": {"order": "asc"}}}) objects = [o["_source"] for o in res["hits"]["hits"]] assert len(objects) > 0 for obj in objects: assert obj["fileset"]["module"] == module, "expected fileset.module={} but got {}".format( module, obj["fileset"]["module"]) - assert "error" not in obj, "not error expected but got: {}".format(obj) + assert "error" not in obj, "not error expected but got: {}".format( + obj) if (module == "auditd" and fileset == "log") \ or (module == "osquery" and fileset == "result"): @@ -168,159 +144,63 @@ def run_on_file(self, module, fileset, test_file, cfgfile): self.assert_fields_are_documented(obj) if os.path.exists(test_file + "-expected.json"): - self._test_expected_events(module, test_file, res, objects) + self._test_expected_events(test_file, objects) - @unittest.skipIf(not INTEGRATION_TESTS, - "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") - @unittest.skipIf(os.getenv("TESTING_ENVIRONMENT") == "2x", - "integration test not available on 2.x") - def test_input_pipeline_config(self): - """ - Tests that the pipeline configured in the input overwrites - the one from the output. - """ - self.init() - index_name = "filebeat-test-input" - try: - self.es.indices.delete(index=index_name) - except: - pass - self.wait_until(lambda: not self.es.indices.exists(index_name)) + def _test_expected_events(self, test_file, objects): - self.render_config_template( - path=os.path.abspath(self.working_dir) + "/log/*", - elasticsearch=dict( - host=self.elasticsearch_url, - pipeline="estest", - index=index_name), - pipeline="test", - setup_template_name=index_name, - setup_template_pattern=index_name + "*", - ) + # Generate expected files if GENERATE env variable is set + if os.getenv("GENERATE"): + with open(test_file + "-expected.json", 'w') as f: + # Flatten an cleanup objects + # This makes sure when generated on different machines / version the expected.json stays the same. + for k, obj in enumerate(objects): + objects[k] = self.flatten_object(obj, {}, "") + clean_keys(objects[k]) + json.dump(objects, f, indent=4, sort_keys=True) + + with open(test_file + "-expected.json", "r") as f: + expected = json.load(f) - os.mkdir(self.working_dir + "/log/") - testfile = self.working_dir + "/log/test.log" - with open(testfile, 'a') as file: - file.write("Hello World1\n") - - # put pipeline - self.es.transport.perform_request("PUT", "/_ingest/pipeline/test", - body={ - "processors": [{ - "set": { - "field": "x-pipeline", - "value": "test-pipeline", - } - }]}) - - filebeat = self.start_beat() - - # Wait until the event is in ES - self.wait_until(lambda: self.es.indices.exists(index_name)) - - def search_objects(): - try: - self.es.indices.refresh(index=index_name) - res = self.es.search(index=index_name, - body={"query": {"match_all": {}}}) - return [o["_source"] for o in res["hits"]["hits"]] - except: - return [] - - self.wait_until(lambda: len(search_objects()) > 0, max_timeout=20) - filebeat.check_kill_and_wait() - - objects = search_objects() - assert len(objects) == 1 - o = objects[0] - assert o["x-pipeline"] == "test-pipeline" + assert len(expected) == len(objects), "expected {} events to compare but got {}".format( + len(expected), len(objects)) - @unittest.skipIf(not INTEGRATION_TESTS, - "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") - @unittest.skipIf(os.getenv("TESTING_ENVIRONMENT") == "2x", - "integration test not available on 2.x") - def test_ml_setup(self): - """ Test ML are installed in all possible ways """ - for setup_flag in (True, False): - for modules_flag in (True, False): - self._run_ml_test(setup_flag, modules_flag) + for ev in expected: + found = False + for obj in objects: - def _run_ml_test(self, setup_flag, modules_flag): - self.init() + # Flatten objects for easier comparing + obj = self.flatten_object(obj, {}, "") + clean_keys(obj) - # Clean any previous state - for df in self.es.transport.perform_request("GET", "/_xpack/ml/datafeeds/")["datafeeds"]: - if df["datafeed_id"] == 'filebeat-nginx-access-response_code': - self.es.transport.perform_request("DELETE", "/_xpack/ml/datafeeds/" + df["datafeed_id"]) + # Remove timestamp for comparison where timestamp is not part of the log line + if obj["fileset.module"] == "icinga" and obj["fileset.name"] == "startup": + delete_key(obj, "@timestamp") + delete_key(ev, "@timestamp") - for df in self.es.transport.perform_request("GET", "/_xpack/ml/anomaly_detectors/")["jobs"]: - if df["job_id"] == 'datafeed-filebeat-nginx-access-response_code': - self.es.transport.perform_request("DELETE", "/_xpack/ml/anomaly_detectors/" + df["job_id"]) + if ev == obj: + found = True + break - shutil.rmtree(os.path.join(self.working_dir, "modules.d"), ignore_errors=True) + assert found, "The following expected object was not found:\n {}\nSearched in: \n{}".format( + pretty_json(ev), pretty_json(objects)) - # generate a minimal configuration - cfgfile = os.path.join(self.working_dir, "filebeat.yml") - self.render_config_template( - template_name="filebeat_modules", - output=cfgfile, - index_name=self.index_name, - elasticsearch_url=self.elasticsearch_url, - kibana_url=self.kibana_url, - kibana_path=self.kibana_path) - if not modules_flag: - # Enable nginx - os.mkdir(os.path.join(self.working_dir, "modules.d")) - with open(os.path.join(self.working_dir, "modules.d/nginx.yml"), "wb") as nginx: - nginx.write("- module: nginx") +def clean_keys(obj): + # These keys are host dependent + host_keys = ["host.name", "beat.hostname", "beat.name"] + # The create timestamps area always new + time_keys = ["read_timestamp", "event.created"] + # source path and beat.version can be different for each run + other_keys = ["source", "beat.version"] - cmd = [ - self.filebeat, "-systemTest", - "-e", "-d", "*", - "-c", cfgfile - ] + for key in host_keys + time_keys + other_keys: + delete_key(obj, key) - if setup_flag: - cmd += ["--setup"] - else: - cmd += ["setup", "--machine-learning"] - if modules_flag: - cmd += ["--modules=nginx"] +def delete_key(obj, key): + if key in obj: + del obj[key] - output_path = os.path.join(self.working_dir, "output.log") - output = open(output_path, "ab") - output.write(" ".join(cmd) + "\n") - beat = subprocess.Popen(cmd, - stdin=None, - stdout=output, - stderr=output, - bufsize=0) - - # Check result - self.wait_until(lambda: "filebeat-nginx-access-response_code" in - (df["job_id"] for df in self.es.transport.perform_request( - "GET", "/_xpack/ml/anomaly_detectors/")["jobs"]), - max_timeout=30) - self.wait_until(lambda: "datafeed-filebeat-nginx-access-response_code" in - (df["datafeed_id"] for df in self.es.transport.perform_request("GET", "/_xpack/ml/datafeeds/")["datafeeds"])) - - beat.kill() - - # check if fails during trying to setting it up again - output = open(output_path, "ab") - output.write(" ".join(cmd) + "\n") - beat = subprocess.Popen(cmd, - stdin=None, - stdout=output, - stderr=output, - bufsize=0) - - output = open(output_path, "r") - for obj in ["Datafeed", "Job", "Dashboard", "Search", "Visualization"]: - self.wait_log_contains("{obj} already exists".format(obj=obj), - logfile=output_path, - max_timeout=30) - - beat.kill() + +def pretty_json(obj): + return json.dumps(obj, indent=2, separators=(',', ': ')) diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_multiline.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_multiline.py index 9abc9f8a..bc219d07 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/test_multiline.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_multiline.py @@ -227,7 +227,7 @@ def test_max_bytes(self): # Check that first 60 chars are sent assert True == self.log_contains("cluster.metadata", "output/filebeat") - # Checks that chars aferwards are not sent + # Checks that chars afterwards are not sent assert False == self.log_contains("Zach", "output/filebeat") # Check that output file has the same number of lines as the log file diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_pipeline.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_pipeline.py new file mode 100644 index 00000000..d2f2e222 --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_pipeline.py @@ -0,0 +1,94 @@ +from filebeat import BaseTest +from beat.beat import INTEGRATION_TESTS +import os +import unittest +from elasticsearch import Elasticsearch +import json +import logging + + +class Test(BaseTest): + + def init(self): + self.elasticsearch_url = self.get_elasticsearch_url() + self.kibana_url = self.get_kibana_url() + print("Using elasticsearch: {}".format(self.elasticsearch_url)) + self.es = Elasticsearch([self.elasticsearch_url]) + logging.getLogger("urllib3").setLevel(logging.WARNING) + logging.getLogger("elasticsearch").setLevel(logging.ERROR) + + self.modules_path = os.path.abspath(self.working_dir + + "/../../../../module") + + self.kibana_path = os.path.abspath(self.working_dir + + "/../../../../_meta/kibana.generated") + + self.filebeat = os.path.abspath(self.working_dir + + "/../../../../filebeat.test") + + self.index_name = "test-filebeat-pipeline" + + @unittest.skipIf(not INTEGRATION_TESTS, + "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") + @unittest.skipIf(os.getenv("TESTING_ENVIRONMENT") == "2x", + "integration test not available on 2.x") + def test_input_pipeline_config(self): + """ + Tests that the pipeline configured in the input overwrites + the one from the output. + """ + self.init() + index_name = "filebeat-test-input" + try: + self.es.indices.delete(index=index_name) + except: + pass + self.wait_until(lambda: not self.es.indices.exists(index_name)) + + self.render_config_template( + path=os.path.abspath(self.working_dir) + "/log/*", + elasticsearch=dict( + host=self.elasticsearch_url, + pipeline="estest", + index=index_name), + pipeline="test", + setup_template_name=index_name, + setup_template_pattern=index_name + "*", + ) + + os.mkdir(self.working_dir + "/log/") + testfile = self.working_dir + "/log/test.log" + with open(testfile, 'a') as file: + file.write("Hello World1\n") + + # put pipeline + self.es.transport.perform_request("PUT", "/_ingest/pipeline/test", + body={ + "processors": [{ + "set": { + "field": "x-pipeline", + "value": "test-pipeline", + } + }]}) + + filebeat = self.start_beat() + + # Wait until the event is in ES + self.wait_until(lambda: self.es.indices.exists(index_name)) + + def search_objects(): + try: + self.es.indices.refresh(index=index_name) + res = self.es.search(index=index_name, + body={"query": {"match_all": {}}}) + return [o["_source"] for o in res["hits"]["hits"]] + except: + return [] + + self.wait_until(lambda: len(search_objects()) > 0, max_timeout=20) + filebeat.check_kill_and_wait() + + objects = search_objects() + assert len(objects) == 1 + o = objects[0] + assert o["x-pipeline"] == "test-pipeline" diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_registrar.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_registrar.py index 514a52f0..9b7f7532 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/test_registrar.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_registrar.py @@ -70,6 +70,7 @@ def test_registrar_file_content(self): "offset": iterations * line_len, }, record) self.assertTrue("FileStateOS" in record) + self.assertIsNone(record["meta"]) file_state_os = record["FileStateOS"] if os.name == "nt": @@ -282,7 +283,7 @@ def test_registry_file_update_permissions(self): "a/b/c/registry_x")), max_timeout=1) - # Wait a momemt to make sure registry is completely written + # Wait a moment to make sure registry is completely written time.sleep(1) filebeat.check_kill_and_wait() @@ -477,7 +478,7 @@ def test_restart_continue(self): lambda: self.output_has(lines=1), max_timeout=10) - # Wait a momemt to make sure registry is completely written + # Wait a moment to make sure registry is completely written time.sleep(1) assert os.stat(testfile_path).st_ino == self.get_registry_entry_by_path( @@ -547,7 +548,7 @@ def test_rotating_file_with_restart(self): lambda: self.output_has(lines=1), max_timeout=10) - # Wait a momemt to make sure registry is completely written + # Wait a moment to make sure registry is completely written time.sleep(1) data = self.get_registry() @@ -570,7 +571,7 @@ def test_rotating_file_with_restart(self): "Updating state for renamed file"), max_timeout=10) - # Wait a momemt to make sure registry is completely written + # Wait a moment to make sure registry is completely written time.sleep(1) data = self.get_registry() @@ -761,7 +762,7 @@ def test_state_after_rotation_ignore_older(self): "Registry file updated. 2 states written.") >= 1, max_timeout=15) - # Wait a momemt to make sure registry is completely written + # Wait a moment to make sure registry is completely written time.sleep(1) filebeat.kill_and_wait() @@ -894,6 +895,9 @@ def test_clean_removed(self): lambda: self.output_has(lines=3), max_timeout=10) + # Make sure all states are cleaned up + self.wait_until(lambda: self.log_contains("Before: 1, After: 1, Pending: 0")) + filebeat.check_kill_and_wait() # Check that the first to files were removed from the registry @@ -946,20 +950,15 @@ def test_clean_removed_with_clean_inactive(self): os.remove(testfile_path1) # Wait until states are removed from inputs - self.wait_until( - lambda: self.log_contains( - "Remove state for file as file removed"), - max_timeout=15) + self.wait_until(lambda: self.log_contains("Remove state for file as file removed")) # Add one more line to make sure registry is written with open(testfile_path2, 'a') as testfile2: testfile2.write("make sure registry is written\n") - self.wait_until( - lambda: self.output_has(lines=3), - max_timeout=10) - - time.sleep(3) + self.wait_until(lambda: self.output_has(lines=3)) + # Check is > as the same log line might happen before but afterwards it is repeated + self.wait_until(lambda: self.log_contains_count("Before: 1, After: 1, Pending: 1") > 5) filebeat.check_kill_and_wait() @@ -1468,7 +1467,7 @@ def test_registrar_files_with_input_level_processors(self): "registry")), max_timeout=10) - # Wait a momemt to make sure registry is completely written + # Wait a moment to make sure registry is completely written time.sleep(2) filebeat.check_kill_and_wait() @@ -1506,3 +1505,58 @@ def test_registrar_files_with_input_level_processors(self): "inode": stat.st_ino, "device": stat.st_dev, }, file_state_os) + + def test_registrar_meta(self): + """ + Check that multiple entries for the same file are on the registry when they have + different meta + """ + + self.render_config_template( + type='docker', + input_raw=''' + containers: + path: {path} + stream: stdout + ids: + - container_id +- type: docker + containers: + path: {path} + stream: stderr + ids: + - container_id + '''.format(path=os.path.abspath(self.working_dir) + "/log/") + ) + os.mkdir(self.working_dir + "/log/") + os.mkdir(self.working_dir + "/log/container_id") + testfile_path1 = self.working_dir + "/log/container_id/test.log" + + with open(testfile_path1, 'w') as f: + for i in range(0, 10): + f.write('{"log":"hello\\n","stream":"stdout","time":"2018-04-13T13:39:57.924216596Z"}\n') + f.write('{"log":"hello\\n","stream":"stderr","time":"2018-04-13T13:39:57.924216596Z"}\n') + + filebeat = self.start_beat() + + self.wait_until( + lambda: self.output_has(lines=20), + max_timeout=15) + + # wait until the registry file exist. Needed to avoid a race between + # the logging and actual writing the file. Seems to happen on Windows. + + self.wait_until( + lambda: os.path.isfile(os.path.join(self.working_dir, + "registry")), + max_timeout=1) + + filebeat.check_kill_and_wait() + + # Check registry contains 2 entries with meta + data = self.get_registry() + assert len(data) == 2 + assert data[0]["source"] == data[1]["source"] + assert data[0]["meta"]["stream"] in ("stdout", "stderr") + assert data[1]["meta"]["stream"] in ("stdout", "stderr") + assert data[0]["meta"]["stream"] != data[1]["meta"]["stream"] diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_registrar_upgrade.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_registrar_upgrade.py new file mode 100644 index 00000000..21569e9c --- /dev/null +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_registrar_upgrade.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python +"""Test the registrar with old registry file formats""" + +import os +import json + +from nose.plugins.skip import Skip, SkipTest + +from filebeat import BaseTest + + +class Test(BaseTest): + def test_upgrade_from_6_3_0(self): + template = "test-2lines-registry-6.3.0" + self.run_with_single_registry_format(template) + + def test_upgrade_from_6_3_1(self): + template = "test-2lines-registry-6.3.1" + self.run_with_single_registry_format(template) + + def test_upgrade_from_faulty_6_3_1(self): + template = "test-2lines-registry-6.3.1-faulty" + self.run_with_single_registry_format(template) + + def test_upgrade_from_latest(self): + template = "test-2lines-registry-latest" + self.run_with_single_registry_format(template) + + def run_with_single_registry_format(self, template): + # prepare log file + testfile, file_state = self.prepare_log() + + # prepare registry file + self.apply_registry_template(template, testfile, file_state) + + self.run_and_validate() + + def apply_registry_template(self, template, testfile, file_state): + source = self.beat_path + "/tests/files/registry/" + template + with open(source) as f: + registry = json.loads(f.read()) + + for state in registry: + state["source"] = testfile + state["FileStateOS"] = file_state + with open(self.working_dir + "/registry", 'w') as f: + f.write(json.dumps(registry)) + + def prepare_log(self): + # test is current skipped on windows, due to FileStateOS must match the + # current OS format. + if os.name == "nt": + raise SkipTest + + self.render_config_template( + path=os.path.abspath(self.working_dir) + "/log/*" + ) + + os.mkdir(self.working_dir + "/log/") + + testfile_path = self.working_dir + "/log/test.log" + with open(testfile_path, 'w') as f: + f.write("123456789\n") + f.write("abcdefghi\n") + + st = os.stat(testfile_path) + file_state = {"inode": st.st_ino, "device": st.st_dev} + return testfile_path, file_state + + def run_and_validate(self): + filebeat = self.start_beat() + self.wait_until( + lambda: self.output_has(lines=1), + max_timeout=15) + + # stop filebeat and enforce one last registry update + filebeat.check_kill_and_wait() + + data = self.get_registry() + assert len(data) == 1 + assert data[0]["offset"] == 20 + + # check only second line has been written + output = self.read_output() + assert len(output) == 1 + assert output[0]["message"] == "abcdefghi" diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_reload_inputs.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_reload_inputs.py index e0757cfa..4de554fe 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/test_reload_inputs.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_reload_inputs.py @@ -120,7 +120,7 @@ def test_start_stop_replace(self): with open(self.working_dir + "/configs/input.yml", 'w') as f: f.write(inputConfigTemplate.format(self.working_dir + "/logs/test2.log")) - # Update both log files, only 1 change should be picke dup + # Update both log files, only 1 change should be picked up with open(logfile1, 'a') as f: f.write("First log file 1\n") with open(logfile2, 'a') as f: @@ -180,7 +180,7 @@ def test_reload_same_input(self): lambda: self.log_contains("Stopping runner:"), max_timeout=15) - # Update both log files, only 1 change should be picke dup + # Update both log files, only 1 change should be picked up with open(logfile, 'a') as f: f.write(second_line + "\n") @@ -229,7 +229,7 @@ def test_load_configs(self): self.wait_until(lambda: self.output_lines() == 1) - # Update both log files, only 1 change should be picke dup + # Update both log files, only 1 change should be picked up with open(logfile, 'a') as f: f.write(second_line + "\n") diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_shutdown.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_shutdown.py index b362414f..4577b61b 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/test_shutdown.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_shutdown.py @@ -64,8 +64,13 @@ def test_shutdown_wait_ok(self): # we allow for a potential race in the harvester shutdown here. # In some cases the registry offset might match the penultimate offset. - assert (offset == outputs[-1]["offset"] or - offset == outputs[-2]["offset"]) + + eol_offset = 1 + if os.name == "nt": + eol_offset += 1 + + assert (offset == (outputs[-1]["offset"] + eol_offset + len(outputs[-1]["message"])) or + offset == (outputs[-2]["offset"] + eol_offset + len(outputs[-2]["message"]))) def test_shutdown_wait_timeout(self): """ diff --git a/vendor/github.com/elastic/beats/filebeat/tests/system/test_tcp_tls.py b/vendor/github.com/elastic/beats/filebeat/tests/system/test_tcp_tls.py index f7ea32e4..2250defb 100644 --- a/vendor/github.com/elastic/beats/filebeat/tests/system/test_tcp_tls.py +++ b/vendor/github.com/elastic/beats/filebeat/tests/system/test_tcp_tls.py @@ -10,7 +10,7 @@ CERTPATH = path.abspath(path.join(CURRENT_PATH, "config/certificates")) -# Self signed certificate used without mutual and failling scenario. +# Self signed certificate used without mutual and failing scenario. CERTIFICATE1 = path.join(CERTPATH, "beats1.crt") KEY1 = path.join(CERTPATH, "beats1.key") diff --git a/vendor/github.com/elastic/beats/filebeat/util/data.go b/vendor/github.com/elastic/beats/filebeat/util/data.go index a47b4cb2..132209e7 100644 --- a/vendor/github.com/elastic/beats/filebeat/util/data.go +++ b/vendor/github.com/elastic/beats/filebeat/util/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 util import ( @@ -28,7 +45,7 @@ func (d *Data) GetState() file.State { // HasState returns true if the data object contains state data func (d *Data) HasState() bool { - return d.state != file.State{} + return !d.state.IsEmpty() } // GetEvent returns the event in the data object diff --git a/vendor/github.com/elastic/beats/filebeat/util/data_test.go b/vendor/github.com/elastic/beats/filebeat/util/data_test.go deleted file mode 100644 index 39171818..00000000 --- a/vendor/github.com/elastic/beats/filebeat/util/data_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package util - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/filebeat/input/file" - "github.com/elastic/beats/libbeat/common" -) - -func TestNewData(t *testing.T) { - data := NewData() - - assert.False(t, data.HasEvent()) - assert.False(t, data.HasState()) - - data.SetState(file.State{Source: "-"}) - - assert.False(t, data.HasEvent()) - assert.True(t, data.HasState()) - - data.Event.Fields = common.MapStr{} - - assert.True(t, data.HasEvent()) - assert.True(t, data.HasState()) -} - -func TestGetEvent(t *testing.T) { - data := NewData() - data.Event.Fields = common.MapStr{"hello": "world"} - out := common.MapStr{"hello": "world"} - assert.Equal(t, out, data.GetEvent().Fields) -} diff --git a/vendor/github.com/elastic/beats/generator/beat/Makefile b/vendor/github.com/elastic/beats/generator/beat/Makefile index 0e5913ea..dd1e5be8 100644 --- a/vendor/github.com/elastic/beats/generator/beat/Makefile +++ b/vendor/github.com/elastic/beats/generator/beat/Makefile @@ -1,4 +1 @@ -override FIELDS_FILE_PATH= -export FIELDS_FILE_PATH - include ../common/Makefile diff --git a/vendor/github.com/elastic/beats/generator/beat/{beat}/.travis.yml b/vendor/github.com/elastic/beats/generator/beat/{beat}/.travis.yml index 907cee35..0138ce5b 100644 --- a/vendor/github.com/elastic/beats/generator/beat/{beat}/.travis.yml +++ b/vendor/github.com/elastic/beats/generator/beat/{beat}/.travis.yml @@ -6,7 +6,7 @@ services: language: go go: - - 1.10.2 + - 1.10.3 os: - linux diff --git a/vendor/github.com/elastic/beats/generator/beat/{beat}/LICENSE b/vendor/github.com/elastic/beats/generator/beat/{beat}/LICENSE.txt similarity index 100% rename from vendor/github.com/elastic/beats/generator/beat/{beat}/LICENSE rename to vendor/github.com/elastic/beats/generator/beat/{beat}/LICENSE.txt diff --git a/vendor/github.com/elastic/beats/generator/beat/{beat}/Makefile b/vendor/github.com/elastic/beats/generator/beat/{beat}/Makefile index 4d5248b7..8fdde0a7 100644 --- a/vendor/github.com/elastic/beats/generator/beat/{beat}/Makefile +++ b/vendor/github.com/elastic/beats/generator/beat/{beat}/Makefile @@ -1,48 +1,37 @@ BEAT_NAME={beat} BEAT_PATH={beat_path} BEAT_GOPATH=$(firstword $(subst :, ,${GOPATH})) -BEAT_URL=https://${BEAT_PATH} SYSTEM_TESTS=false TEST_ENVIRONMENT=false ES_BEATS?=./vendor/github.com/elastic/beats GOPACKAGES=$(shell govendor list -no-status +local) -PREFIX?=. -NOTICE_FILE=NOTICE GOBUILD_FLAGS=-i -ldflags "-X $(BEAT_PATH)/vendor/github.com/elastic/beats/libbeat/version.buildTime=$(NOW) -X $(BEAT_PATH)/vendor/github.com/elastic/beats/libbeat/version.commit=$(COMMIT_ID)" +MAGE_IMPORT_PATH=${BEAT_PATH}/vendor/github.com/magefile/mage # Path to the libbeat Makefile -include $(ES_BEATS)/libbeat/scripts/Makefile # Initial beat setup .PHONY: setup -setup: copy-vendor - $(MAKE) update +setup: copy-vendor git-init update git-add # Copy beats into vendor directory .PHONY: copy-vendor copy-vendor: - mkdir -p vendor/github.com/elastic/ + mkdir -p vendor/github.com/elastic cp -R ${BEAT_GOPATH}/src/github.com/elastic/beats vendor/github.com/elastic/ rm -rf vendor/github.com/elastic/beats/.git vendor/github.com/elastic/beats/x-pack + mkdir -p vendor/github.com/magefile + cp -R ${BEAT_GOPATH}/src/github.com/elastic/beats/vendor/github.com/magefile/mage vendor/github.com/magefile .PHONY: git-init git-init: git init - git add README.md CONTRIBUTING.md - git commit -m "Initial commit" - git add LICENSE - git commit -m "Add the LICENSE" - git add .gitignore - git commit -m "Add git settings" - git add . - git reset -- .travis.yml - git commit -m "Add {beat}" - git add .travis.yml - git commit -m "Add Travis CI" -# This is called by the beats packer before building starts -.PHONY: before-build -before-build: +.PHONY: git-add +git-add: + git add -A + git commit -m "Add generated {beat} files" # Collects all dependencies and then calls update .PHONY: collect diff --git a/vendor/github.com/elastic/beats/generator/beat/{beat}/NOTICE b/vendor/github.com/elastic/beats/generator/beat/{beat}/NOTICE.txt similarity index 100% rename from vendor/github.com/elastic/beats/generator/beat/{beat}/NOTICE rename to vendor/github.com/elastic/beats/generator/beat/{beat}/NOTICE.txt diff --git a/vendor/github.com/elastic/beats/generator/beat/{beat}/README.md b/vendor/github.com/elastic/beats/generator/beat/{beat}/README.md index 97764e73..db9ece02 100644 --- a/vendor/github.com/elastic/beats/generator/beat/{beat}/README.md +++ b/vendor/github.com/elastic/beats/generator/beat/{beat}/README.md @@ -111,7 +111,7 @@ For further development, check out the [beat developer guide](https://www.elasti The beat frameworks provides tools to crosscompile and package your beat for different platforms. This requires [docker](https://www.docker.com/) and vendoring as described above. To build packages of your beat, run the following command: ``` -make package +make release ``` This will fetch and create all images required for the build process. The whole process to finish can take several minutes. diff --git a/vendor/github.com/elastic/beats/generator/beat/{beat}/magefile.go b/vendor/github.com/elastic/beats/generator/beat/{beat}/magefile.go new file mode 100644 index 00000000..13c6184b --- /dev/null +++ b/vendor/github.com/elastic/beats/generator/beat/{beat}/magefile.go @@ -0,0 +1,96 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "fmt" + "time" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + + "github.com/elastic/beats/dev-tools/mage" +) + +func init() { + mage.SetBuildVariableSources(mage.DefaultBeatBuildVariableSources) + + mage.BeatDescription = "One sentence description of the Beat." +} + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// GolangCrossBuild build the Beat binary inside of the golang-builder. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) +} + +// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). +func BuildGoDaemon() error { + return mage.BuildGoDaemon() +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return mage.CrossBuild() +} + +// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. +func CrossBuildGoDaemon() error { + return mage.CrossBuildGoDaemon() +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Package packages the Beat for distribution. +// Use SNAPSHOT=true to build snapshots. +// Use PLATFORMS to control the target platforms. +func Package() { + start := time.Now() + defer func() { fmt.Println("package ran for", time.Since(start)) }() + + mage.UseCommunityBeatPackaging() + + mg.Deps(Update) + mg.Deps(CrossBuild, CrossBuildGoDaemon) + mg.SerialDeps(mage.Package, TestPackages) +} + +// TestPackages tests the generated packages (i.e. file modes, owners, groups). +func TestPackages() error { + return mage.TestPackages() +} + +// Update updates the generated files (aka make update). +func Update() error { + return sh.Run("make", "update") +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML() +} diff --git a/vendor/github.com/elastic/beats/generator/beat/{beat}/make.bat b/vendor/github.com/elastic/beats/generator/beat/{beat}/make.bat new file mode 100644 index 00000000..72de5798 --- /dev/null +++ b/vendor/github.com/elastic/beats/generator/beat/{beat}/make.bat @@ -0,0 +1,11 @@ +@echo off + +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. +REM +REM After running this once you may invoke mage.exe directly. + +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install {beat_path}/vendor/github.com/magefile/mage + +mage %* diff --git a/vendor/github.com/elastic/beats/generator/common/Makefile b/vendor/github.com/elastic/beats/generator/common/Makefile index 3fec8c45..34694dd5 100644 --- a/vendor/github.com/elastic/beats/generator/common/Makefile +++ b/vendor/github.com/elastic/beats/generator/common/Makefile @@ -6,29 +6,43 @@ BEAT_PATH=${BUILD_DIR}/src/beatpath/testbeat ES_BEATS=${GOPATH}/src/github.com/elastic/beats PREPARE_COMMAND?= - # Runs test build for mock beat .PHONY: test test: prepare-test . ${PYTHON_ENV}/bin/activate; \ export GOPATH=${PWD}/build ; \ - export PATH=${PATH}:${PWD}/build/bin; \ + export PATH=$${GOPATH}/bin:${PATH}; \ cd ${BEAT_PATH} ; \ $(MAKE) copy-vendor || exit 1 ; \ ${PREPARE_COMMAND} \ + $(MAKE) git-init || exit 1 ; \ $(MAKE) update || exit 1 ; \ - $(MAKE) check || exit 1 ; \ + git config user.email "beats-jenkins@test.com" || exit 1 ; \ + git config user.name "beats-jenkins" || exit 1 ; \ + $(MAKE) git-add || exit 1 ; \ + $(MAKE) check CHECK_HEADERS_DISABLED=y || exit 1 ; \ $(MAKE) || exit 1 ; \ $(MAKE) unit +.PHONY: prepare-test prepare-test:: python-env # Makes sure to use current version of beats for testing mkdir -p ${BUILD_DIR}/src/github.com/elastic/beats/ - rsync -a --exclude=build ${PWD}/../../* ${BUILD_DIR}/src/github.com/elastic/beats/ + rsync -a \ + --include=vendor/github.com/magefile/mage/build \ + --exclude=build/ \ + --exclude=.git/ \ + ${PWD}/../../* ${BUILD_DIR}/src/github.com/elastic/beats/ mkdir -p ${BEAT_PATH} export GOPATH=${PWD}/build ; \ - . ${PYTHON_ENV}/bin/activate && python ${PWD}/build/src/github.com/elastic/beats/script/generate.py --type=${BEAT_TYPE} --project_name=Testbeat --github_name=ruflin --beat_path=beatpath/testbeat --full_name="Nicolas Ruflin" + . ${PYTHON_ENV}/bin/activate && \ + python ${PWD}/build/src/github.com/elastic/beats/script/generate.py \ + --type=${BEAT_TYPE} \ + --project_name=Testbeat \ + --github_name=ruflin \ + --beat_path=beatpath/testbeat \ + --full_name="Nicolas Ruflin" # Runs test build for the created beat .PHONY: test-build diff --git a/vendor/github.com/elastic/beats/generator/metricbeat/Makefile b/vendor/github.com/elastic/beats/generator/metricbeat/Makefile index 11203d15..f91acb87 100644 --- a/vendor/github.com/elastic/beats/generator/metricbeat/Makefile +++ b/vendor/github.com/elastic/beats/generator/metricbeat/Makefile @@ -1,16 +1,14 @@ -BEAT_TYPE=metricbeat -PREPARE_COMMAND=MODULE=elastic METRICSET=test make create-metricset ; FIELDS_FILE_PATH=module -override FIELDS_FILE_PATH= -export FIELDS_FILE_PATH - +BEAT_TYPE = metricbeat +PREPARE_COMMAND = MODULE=elastic METRICSET=test make create-metricset; include ../common/Makefile +.PHONY: prepare-test prepare-test:: python-env - mkdir -p ${BEAT_PATH}/scripts rsync -a --exclude=build ${PWD}/../../metricbeat/scripts/generate_imports_helper.py ${BEAT_PATH}/scripts # Collects all dependencies and then calls update .PHONY: collect collect: fields + diff --git a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/LICENSE b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/LICENSE.txt similarity index 100% rename from vendor/github.com/elastic/beats/generator/metricbeat/{beat}/LICENSE rename to vendor/github.com/elastic/beats/generator/metricbeat/{beat}/LICENSE.txt diff --git a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/Makefile b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/Makefile index 80d6cb98..478a3f7a 100644 --- a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/Makefile +++ b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/Makefile @@ -1,29 +1,35 @@ BEAT_NAME={beat} BEAT_PATH={beat_path} -BEAT_URL=https://${BEAT_PATH} +BEAT_GOPATH=$(firstword $(subst :, ,${GOPATH})) SYSTEM_TESTS=false TEST_ENVIRONMENT=false ES_BEATS?=./vendor/github.com/elastic/beats GOPACKAGES=$(shell govendor list -no-status +local) -PREFIX?=. -NOTICE_FILE=NOTICE +GOBUILD_FLAGS=-i -ldflags "-X $(BEAT_PATH)/vendor/github.com/elastic/beats/libbeat/version.buildTime=$(NOW) -X $(BEAT_PATH)/vendor/github.com/elastic/beats/libbeat/version.commit=$(COMMIT_ID)" +MAGE_IMPORT_PATH=${BEAT_PATH}/vendor/github.com/magefile/mage # Path to the libbeat Makefile -include $(ES_BEATS)/metricbeat/Makefile # Initial beat setup .PHONY: setup -setup: copy-vendor - $(MAKE) create-metricset - $(MAKE) collect +setup: copy-vendor git-init create-metricset collect git-add # Copy beats into vendor directory .PHONY: copy-vendor copy-vendor: - mkdir -p vendor/github.com/elastic/ + mkdir -p vendor/github.com/elastic cp -R ${GOPATH}/src/github.com/elastic/beats vendor/github.com/elastic/ + ln -sf ${PWD}/vendor/github.com/elastic/beats/metricbeat/scripts/generate_imports_helper.py ${PWD}/vendor/github.com/elastic/beats/script/generate_imports_helper.py rm -rf vendor/github.com/elastic/beats/.git vendor/github.com/elastic/beats/x-pack + mkdir -p vendor/github.com/magefile + cp -R ${BEAT_GOPATH}/src/github.com/elastic/beats/vendor/github.com/magefile/mage vendor/github.com/magefile -# This is called by the beats packer before building starts -.PHONY: before-build -before-build: +.PHONY: git-init +git-init: + git init + +.PHONY: git-add +git-add: + git add -A + git commit -m "Add generated {beat} files" diff --git a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/NOTICE b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/NOTICE.txt similarity index 100% rename from vendor/github.com/elastic/beats/generator/metricbeat/{beat}/NOTICE rename to vendor/github.com/elastic/beats/generator/metricbeat/{beat}/NOTICE.txt diff --git a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/README.md b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/README.md index 4c167726..cf71741f 100644 --- a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/README.md +++ b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/README.md @@ -76,7 +76,7 @@ git commit -m "Add {beat}" The beat frameworks provides tools to crosscompile and package your beat for different platforms. This requires [docker](https://www.docker.com/) and vendoring as described above. To build packages of your beat, run the following command: ``` -make package +make release ``` This will fetch and create all images required for the build process. The hole process to finish can take several minutes. diff --git a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/magefile.go b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/magefile.go new file mode 100644 index 00000000..fa75eff3 --- /dev/null +++ b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/magefile.go @@ -0,0 +1,96 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "fmt" + "time" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + + "github.com/elastic/beats/dev-tools/mage" +) + +func init() { + mage.SetBuildVariableSources(mage.DefaultBeatBuildVariableSources) + + mage.BeatDescription = "One sentence description of the Beat." +} + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// GolangCrossBuild build the Beat binary inside of the golang-builder. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) +} + +// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). +func BuildGoDaemon() error { + return mage.BuildGoDaemon() +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return mage.CrossBuild() +} + +// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. +func CrossBuildGoDaemon() error { + return mage.CrossBuildGoDaemon() +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Package packages the Beat for distribution. +// Use SNAPSHOT=true to build snapshots. +// Use PLATFORMS to control the target platforms. +func Package() { + start := time.Now() + defer func() { fmt.Println("package ran for", time.Since(start)) }() + + mage.UseCommunityBeatPackaging() + + mg.Deps(Update) + mg.Deps(CrossBuild, CrossBuildGoDaemon) + mg.SerialDeps(mage.Package, TestPackages) +} + +// TestPackages tests the generated packages (i.e. file modes, owners, groups). +func TestPackages() error { + return mage.TestPackages() +} + +// Update updates the generated files (aka make update). +func Update() error { + return sh.Run("make", "update") +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML("module") +} diff --git a/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/make.bat b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/make.bat new file mode 100644 index 00000000..72de5798 --- /dev/null +++ b/vendor/github.com/elastic/beats/generator/metricbeat/{beat}/make.bat @@ -0,0 +1,11 @@ +@echo off + +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. +REM +REM After running this once you may invoke mage.exe directly. + +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install {beat_path}/vendor/github.com/magefile/mage + +mage %* diff --git a/vendor/github.com/elastic/beats/heartbeat/.gitignore b/vendor/github.com/elastic/beats/heartbeat/.gitignore index a0878a8a..059cb601 100644 --- a/vendor/github.com/elastic/beats/heartbeat/.gitignore +++ b/vendor/github.com/elastic/beats/heartbeat/.gitignore @@ -4,7 +4,5 @@ heartbeat -_meta/kibana - build /tests/load/logs diff --git a/vendor/github.com/elastic/beats/heartbeat/Makefile b/vendor/github.com/elastic/beats/heartbeat/Makefile index dd15c8f8..498c1074 100644 --- a/vendor/github.com/elastic/beats/heartbeat/Makefile +++ b/vendor/github.com/elastic/beats/heartbeat/Makefile @@ -1,18 +1,11 @@ BEAT_NAME=heartbeat BEAT_TITLE=Heartbeat -BEAT_PACKAGE_NAME=heartbeat-elastic -BEAT_DESCRIPTION?=Ping remote services for availability and log results to Elasticsearch or send to Logstash. SYSTEM_TESTS=true TEST_ENVIRONMENT=false -FIELDS_FILE_PATH=monitors/active # Path to the libbeat Makefile -include ../libbeat/scripts/Makefile -# This is called by the beats packer before building starts -.PHONY: before-build -before-build: - # Collects all dependencies and then calls update .PHONY: collect collect: fields imports kibana @@ -31,8 +24,6 @@ create-monitor: # Collects all module dashboards .PHONY: kibana kibana: - @rm -rf _meta/kibana - @mkdir -p _meta/kibana - @-cp -r monitors/active/*/_meta/kibana _meta/ - @# Convert all dashboards to string - @python ${ES_BEATS}/libbeat/scripts/unpack_dashboards.py --glob="./_meta/kibana/6/dashboard/*.json" + @rm -rf _meta/kibana.generated + @mkdir -p _meta/kibana.generated + @-cp -r monitors/active/*/_meta/kibana/* _meta/kibana.generated diff --git a/vendor/github.com/elastic/beats/heartbeat/_meta/beat.reference.yml b/vendor/github.com/elastic/beats/heartbeat/_meta/beat.reference.yml index 9c3d6bef..513cda15 100644 --- a/vendor/github.com/elastic/beats/heartbeat/_meta/beat.reference.yml +++ b/vendor/github.com/elastic/beats/heartbeat/_meta/beat.reference.yml @@ -163,7 +163,7 @@ heartbeat.monitors: # Interval between file file changed checks. #interval: 5s - # Optional HTTP proxy url. If not set HTTP_PROXY environment variable will be used. + # Optional HTTP proxy url. #proxy_url: '' # Total test connection and data exchange timeout diff --git a/vendor/github.com/elastic/beats/heartbeat/beater/heartbeat.go b/vendor/github.com/elastic/beats/heartbeat/beater/heartbeat.go index 0dd7db5b..036f48db 100644 --- a/vendor/github.com/elastic/beats/heartbeat/beater/heartbeat.go +++ b/vendor/github.com/elastic/beats/heartbeat/beater/heartbeat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( @@ -11,6 +28,7 @@ import ( "github.com/elastic/beats/heartbeat/config" "github.com/elastic/beats/heartbeat/monitors" "github.com/elastic/beats/heartbeat/scheduler" + "github.com/elastic/beats/libbeat/common/cfgwarn" ) type Heartbeat struct { @@ -21,7 +39,7 @@ type Heartbeat struct { } func New(b *beat.Beat, cfg *common.Config) (beat.Beater, error) { - logp.Warn("Beta: Heartbeat is beta software") + cfgwarn.Beta("Heartbeat is beta software") config := config.DefaultConfig if err := cfg.Unpack(&config); err != nil { diff --git a/vendor/github.com/elastic/beats/heartbeat/beater/manager.go b/vendor/github.com/elastic/beats/heartbeat/beater/manager.go index 6a4d3a85..fd0edd65 100644 --- a/vendor/github.com/elastic/beats/heartbeat/beater/manager.go +++ b/vendor/github.com/elastic/beats/heartbeat/beater/manager.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( @@ -62,8 +79,6 @@ type jobCanceller func() error var defaultFilePollInterval = 5 * time.Second -const defaultEventType = "monitor" - func newMonitorManager( pipeline beat.Pipeline, jobControl jobControl, @@ -291,10 +306,6 @@ func (m *monitorTask) prepareSchedulerJob(client beat.Client, meta common.MapStr if event.Fields != nil { event.Fields.DeepUpdate(meta) - if _, exists := event.Fields["type"]; !exists { - event.Fields["type"] = defaultEventType - } - client.Publish(event) } diff --git a/vendor/github.com/elastic/beats/heartbeat/cmd/root.go b/vendor/github.com/elastic/beats/heartbeat/cmd/root.go index 651cfa28..0ffda016 100644 --- a/vendor/github.com/elastic/beats/heartbeat/cmd/root.go +++ b/vendor/github.com/elastic/beats/heartbeat/cmd/root.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/config/config.go b/vendor/github.com/elastic/beats/heartbeat/config/config.go index 3e37d984..935de5a3 100644 --- a/vendor/github.com/elastic/beats/heartbeat/config/config.go +++ b/vendor/github.com/elastic/beats/heartbeat/config/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Config is put into a different package to prevent cyclic imports in case // it is needed in several locations diff --git a/vendor/github.com/elastic/beats/heartbeat/config/config_test.go b/vendor/github.com/elastic/beats/heartbeat/config/config_test.go deleted file mode 100644 index d177de3a..00000000 --- a/vendor/github.com/elastic/beats/heartbeat/config/config_test.go +++ /dev/null @@ -1,3 +0,0 @@ -// +build !integration - -package config diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/configuring-howto.asciidoc b/vendor/github.com/elastic/beats/heartbeat/docs/configuring-howto.asciidoc index 0cf72900..8eed8095 100644 --- a/vendor/github.com/elastic/beats/heartbeat/docs/configuring-howto.asciidoc +++ b/vendor/github.com/elastic/beats/heartbeat/docs/configuring-howto.asciidoc @@ -36,6 +36,7 @@ The following topics describe how to configure Heartbeat: * <> * <> * <> +* <> * <<{beatname_lc}-reference-yml>> -- @@ -72,4 +73,6 @@ include::../../libbeat/docs/yaml.asciidoc[] include::../../libbeat/docs/regexp.asciidoc[] +include::../../libbeat/docs/http-endpoint.asciidoc[] + include::../../libbeat/docs/reference-yml.asciidoc[] diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/fields.asciidoc b/vendor/github.com/elastic/beats/heartbeat/docs/fields.asciidoc index 0bc6cb66..03144a26 100644 --- a/vendor/github.com/elastic/beats/heartbeat/docs/fields.asciidoc +++ b/vendor/github.com/elastic/beats/heartbeat/docs/fields.asciidoc @@ -573,6 +573,15 @@ Duration in microseconds -- +*`http.rtt.content.us`*:: ++ +-- +type: long + +Time required to retrieved the content in micro seconds. + +-- + [float] == total fields @@ -655,7 +664,7 @@ Kubernetes pod name -- type: keyword -Kubernetes pod uid +Kubernetes Pod UID -- diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/getting-started.asciidoc b/vendor/github.com/elastic/beats/heartbeat/docs/getting-started.asciidoc index c51824e3..18c3ed4b 100644 --- a/vendor/github.com/elastic/beats/heartbeat/docs/getting-started.asciidoc +++ b/vendor/github.com/elastic/beats/heartbeat/docs/getting-started.asciidoc @@ -1,18 +1,7 @@ [[heartbeat-getting-started]] == Getting Started With Heartbeat -To get started with your own Heartbeat setup, install and configure these -related products: - - * Elasticsearch for storage and indexing the data. - * Kibana for the UI. - * Logstash (optional) for inserting data into Elasticsearch. - -See {libbeat}/getting-started.html[Getting Started with Beats and the Elastic Stack] -for more information. - -After installing the Elastic Stack, read the following topics to learn how to -install, configure, and run Heartbeat: +include::../../libbeat/docs/shared-getting-started-intro.asciidoc[] * <> * <> @@ -203,18 +192,7 @@ was started. Heartbeat adds the `@every` keyword to the syntax provided by the See <> for a full description of each configuration option. -. If you are sending output directly to Elasticsearch (and not using Logstash), -set the IP address and port where Heartbeat can find the Elasticsearch -installation: -+ -[source,yaml] ----------------------------------------------------------------------- -output.elasticsearch: - hosts: ["192.168.1.42:9200"] ----------------------------------------------------------------------- -+ -If you are sending output to Logstash, make sure you -<> instead. +include::../../libbeat/docs/step-configure-output.asciidoc[] include::../../libbeat/docs/step-configure-kibana-endpoint.asciidoc[] @@ -269,7 +247,7 @@ sudo chown root heartbeat.yml <1> sudo ./heartbeat -e -c heartbeat.yml -d "publish" ---------------------------------------------------------------------- <1> You'll be running Heartbeat as root, so you need to change ownership of the -configuration file, or run Heartbeat with `-strict.perms=false` specified. See +configuration file, or run Heartbeat with `--strict.perms=false` specified. See {libbeat}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. @@ -297,4 +275,5 @@ include::../../libbeat/docs/opendashboards.asciidoc[] The dashboards are provided as examples. We recommend that you {kibana-ref}/dashboard.html[customize] them to meet your needs. +[role="screenshot"] image:./images/heartbeat-statistics.png[Heartbeat statistics] diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-devguide.asciidoc b/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-devguide.asciidoc index c61e99fd..1939648b 100644 --- a/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-devguide.asciidoc +++ b/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-devguide.asciidoc @@ -11,7 +11,7 @@ are available. As a developer, you can use Heartbeat in two different ways: * Create your own Beat and use Heartbeat as a library We recommend that you start by creating your own Beat to keep the development of -your own monintors independent of Heartbeat. At a later stage, if you decide to +your own monitors independent of Heartbeat. At a later stage, if you decide to add a monitor to Heartbeat, you can reuse the code without making additional changes. The following topics describe how to contribute to Heartbeat by adding new monitors diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-options.asciidoc b/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-options.asciidoc index 4e09c2db..b6aa9bfa 100644 --- a/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-options.asciidoc +++ b/vendor/github.com/elastic/beats/heartbeat/docs/heartbeat-options.asciidoc @@ -112,7 +112,7 @@ If `mode` is `any`, the monitor pings only one IP address for a hostname. If ping every IP address for the specified hostname. The default is `any`. [float] -[[monitor-timieout]] +[[monitor-timeout]] ==== `timeout` The total running time for each ping test. This is the total time allowed for @@ -172,7 +172,7 @@ Heartbeat checks this file periodically and starts a new monitor instance for each new JSON object added to the file. For example, imagine that you add 10 new entries to the JSON file, each for a different hostname. When Heartbeat picks up the changes in the file, it merges the original config -(`hearbeat.yml`) plus the JSON objects, and starts a monitor for each new host +(`heartbeat.yml`) plus the JSON objects, and starts a monitor for each new host that you've configured. If you delete an object from the JSON file and it doesn't exist in the main config, Heartbeat stops the monitor instance running for that object. @@ -390,8 +390,7 @@ Example configuration: [[monitor-http-proxy-url]] ==== `proxy_url` -The HTTP proxy URL. This setting is optional. If not set, the HTTP_PROXY -environment variable is used. +The HTTP proxy URL. This setting is optional. [float] [[monitor-http-username]] diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/images/heartbeat-statistics.png b/vendor/github.com/elastic/beats/heartbeat/docs/images/heartbeat-statistics.png index 07a76e33..80c83bad 100644 Binary files a/vendor/github.com/elastic/beats/heartbeat/docs/images/heartbeat-statistics.png and b/vendor/github.com/elastic/beats/heartbeat/docs/images/heartbeat-statistics.png differ diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/index.asciidoc b/vendor/github.com/elastic/beats/heartbeat/docs/index.asciidoc index 88187205..e0ece667 100644 --- a/vendor/github.com/elastic/beats/heartbeat/docs/index.asciidoc +++ b/vendor/github.com/elastic/beats/heartbeat/docs/index.asciidoc @@ -17,20 +17,12 @@ include::../../libbeat/docs/shared-beats-attributes.asciidoc[] include::./overview.asciidoc[] -include::../../libbeat/docs/contributing-to-beats.asciidoc[] - include::./getting-started.asciidoc[] include::../../libbeat/docs/repositories.asciidoc[] include::./setting-up-running.asciidoc[] -// -//include::./upgrading.asciidoc[] - -// -//include::./how-heartbeat-works.asciidoc[] - include::./configuring-howto.asciidoc[] include::./fields.asciidoc[] @@ -43,5 +35,5 @@ include::./troubleshooting.asciidoc[] include::./faq.asciidoc[] -// -//include::./heartbeat-devguide.asciidoc[] +include::../../libbeat/docs/contributing-to-beats.asciidoc[] + diff --git a/vendor/github.com/elastic/beats/heartbeat/docs/setting-up-running.asciidoc b/vendor/github.com/elastic/beats/heartbeat/docs/setting-up-running.asciidoc index 4e179b40..a9991cef 100644 --- a/vendor/github.com/elastic/beats/heartbeat/docs/setting-up-running.asciidoc +++ b/vendor/github.com/elastic/beats/heartbeat/docs/setting-up-running.asciidoc @@ -4,7 +4,7 @@ // that is unique to each beat. ///// -[[seting-up-and-running]] +[[setting-up-and-running]] == Setting up and running {beatname_uc} Before reading this section, see the @@ -20,7 +20,7 @@ This section includes additional information on how to set up and run * <> -//MAINTAINERS: If you add a new file to this section, make sure you update the bulletedl ist ^^ too. +//MAINTAINERS: If you add a new file to this section, make sure you update the bulleted list ^^ too. include::../../libbeat/docs/shared-directory-layout.asciidoc[] @@ -29,3 +29,5 @@ include::../../libbeat/docs/keystore.asciidoc[] include::../../libbeat/docs/command-reference.asciidoc[] include::./running-on-docker.asciidoc[] + +include::../../libbeat/docs/shared-shutdown.asciidoc[] diff --git a/vendor/github.com/elastic/beats/heartbeat/hbtest/hbtestutil.go b/vendor/github.com/elastic/beats/heartbeat/hbtest/hbtestutil.go new file mode 100644 index 00000000..006b878b --- /dev/null +++ b/vendor/github.com/elastic/beats/heartbeat/hbtest/hbtestutil.go @@ -0,0 +1,90 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 hbtest + +import ( + "io" + "net/http" + "net/url" + "strconv" + + "net/http/httptest" + + "github.com/elastic/beats/libbeat/common/mapval" +) + +// HelloWorldBody is the body of the HelloWorldHandler. +const HelloWorldBody = "hello, world!" + +// HelloWorldHandler is a handler for an http server that returns +// HelloWorldBody and a 200 OK status. +var HelloWorldHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + io.WriteString(w, HelloWorldBody) +}) + +// BadGatewayBody is the body of the BadGatewayHandler. +const BadGatewayBody = "Bad Gateway" + +// BadGatewayHandler is a handler for an http server that returns +// BadGatewayBody and a 200 OK status. +var BadGatewayHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusBadGateway) + io.WriteString(w, BadGatewayBody) +}) + +// ServerPort takes an httptest.Server and returns its port as a uint16. +func ServerPort(server *httptest.Server) (uint16, error) { + u, err := url.Parse(server.URL) + if err != nil { + return 0, err + } + p, err := strconv.Atoi(u.Port()) + if err != nil { + return 0, err + } + return uint16(p), nil +} + +// MonitorChecks creates a skima.Validator that represents the "monitor" field present +// in all heartbeat events. +func MonitorChecks(id string, host string, ip string, scheme string, status string) mapval.Validator { + return mapval.Schema(mapval.Map{ + "monitor": mapval.Map{ + // TODO: This is only optional because, for some reason, TCP returns + // this value, but HTTP does not. We should fix this + "host": mapval.Optional(mapval.IsEqual(host)), + "duration.us": mapval.IsDuration, + "id": id, + "ip": ip, + "scheme": scheme, + "status": status, + }, + }) +} + +// TCPChecks creates a skima.Validator that represents the "tcp" field present +// in all heartbeat events that use a Tcp connection as part of their DialChain +func TCPChecks(port uint16) mapval.Validator { + return mapval.Schema(mapval.Map{ + "tcp": mapval.Map{ + "port": port, + "rtt.connect.us": mapval.IsDuration, + }, + }) +} diff --git a/vendor/github.com/elastic/beats/heartbeat/heartbeat.reference.yml b/vendor/github.com/elastic/beats/heartbeat/heartbeat.reference.yml index c0aa5b4b..99393893 100644 --- a/vendor/github.com/elastic/beats/heartbeat/heartbeat.reference.yml +++ b/vendor/github.com/elastic/beats/heartbeat/heartbeat.reference.yml @@ -163,7 +163,7 @@ heartbeat.monitors: # Interval between file file changed checks. #interval: 5s - # Optional HTTP proxy url. If not set HTTP_PROXY environment variable will be used. + # Optional HTTP proxy url. #proxy_url: '' # Total test connection and data exchange timeout @@ -444,6 +444,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 0 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" @@ -484,7 +487,18 @@ output.elasticsearch: # The default is 50. #bulk_max_size: 50 - # Configure http request timeout before failing an request to Elasticsearch. + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + + # Configure http request timeout before failing a request to Elasticsearch. #timeout: 90 # Use SSL settings for HTTPS. @@ -538,6 +552,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 3 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional maximum time to live for a connection to Logstash, after which the # connection will be re-established. A value of `0s` (the default) will # disable this feature. @@ -548,7 +565,7 @@ output.elasticsearch: # Optional load balance the events between the Logstash hosts. Default is false. #loadbalance: false - # Number of batches to be sent asynchronously to logstash while processing + # Number of batches to be sent asynchronously to Logstash while processing # new batches. #pipelining: 2 @@ -557,6 +574,17 @@ output.elasticsearch: # if no error is encountered. #slow_start: false + # The number of seconds to wait before trying to reconnect to Logstash + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Logstash after a network error. The default is 60s. + #backoff.max: 60s + # Optional index name. The default index name is set to heartbeat # in all lowercase. #index: 'heartbeat' @@ -603,6 +631,21 @@ output.elasticsearch: # never, once, and freely. Default is never. #ssl.renegotiation: never + # The number of times to retry publishing an event after a publishing failure. + # After the specified number of retries, the events are typically dropped. + # Some Beats, such as Filebeat and Winlogbeat, ignore the max_retries setting + # and retry until all events are published. Set max_retries to a value less + # than 0 to retry until all events are published. The default is 3. + #max_retries: 3 + + # The maximum number of events to bulk in a single Logstash request. The + # default is 2048. + #bulk_max_size: 2048 + + # The number of seconds to wait for responses from the Logstash server before + # timing out. The default is 30s. + #timeout: 30s + #------------------------------- Kafka output ---------------------------------- #output.kafka: # Boolean flag to enable or disable the output module. @@ -638,9 +681,16 @@ output.elasticsearch: #username: '' #password: '' - # Kafka version heartbeat is assumed to run against. Defaults to the oldest - # supported stable version (currently version 0.8.2.0) - #version: 0.8.2 + # Kafka version heartbeat is assumed to run against. Defaults to the "1.0.0". + #version: '1.0.0' + + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true # Metadata update configuration. Metadata do contain leader information # deciding which broker to use when publishing. @@ -688,6 +738,10 @@ output.elasticsearch: # default is gzip. #compression: gzip + # Set the compression level. Currently only gzip provides a compression level + # between 0 and 9. The default value is chosen by the compression algorithm. + #compression_level: 4 + # The maximum permitted size of JSON-encoded messages. Bigger messages will be # dropped. The default value is 1000000 (bytes). This value should be equal to # or less than the broker's message.max.bytes. @@ -744,6 +798,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # The list of Redis servers to connect to. If load balancing is enabled, the # events are distributed to the servers in the list. If one server becomes # unreachable, the events are distributed to the reachable servers only. @@ -791,6 +853,17 @@ output.elasticsearch: # until all events are published. The default is 3. #max_retries: 3 + # The number of seconds to wait before trying to reconnect to Redis + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Redis after a network error. The default is 60s. + #backoff.max: 60s + # The maximum number of events to bulk in a single Redis request or pipeline. # The default is 2048. #bulk_max_size: 2048 @@ -845,6 +918,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # Path to the directory where to save the generated files. The option is # mandatory. #path: "/tmp/heartbeat" @@ -872,8 +953,13 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true - # Pretty print json event - #pretty: false + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true #================================= Paths ====================================== @@ -971,6 +1057,13 @@ output.elasticsearch: # Path to fields.yml file to generate the template #setup.template.fields: "${path.config}/fields.yml" +# A list of fields to be added to the template and Kibana index pattern. Also +# specify setup.template.overwrite: true to overwrite the existing template. +# This setting is experimental. +#setup.template.append_fields: +#- name: field_name +# type: field_type + # Enable json template loading. If this is enabled, the fields.yml is ignored. #setup.template.json.enabled: false @@ -1157,6 +1250,17 @@ logging.files: # The default is 50. #bulk_max_size: 50 + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + # Configure http request timeout before failing an request to Elasticsearch. #timeout: 90 @@ -1196,6 +1300,9 @@ logging.files: # never, once, and freely. Default is never. #ssl.renegotiation: never + #metrics.period: 10s + #state.period: 1m + #================================ HTTP Endpoint ====================================== # Each beat can expose internal metrics through a HTTP endpoint. For security # reasons the endpoint is disabled by default. This feature is currently experimental. diff --git a/vendor/github.com/elastic/beats/heartbeat/include/fields.go b/vendor/github.com/elastic/beats/heartbeat/include/fields.go index ae6fcca8..26e46ac2 100644 --- a/vendor/github.com/elastic/beats/heartbeat/include/fields.go +++ b/vendor/github.com/elastic/beats/heartbeat/include/fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. package include @@ -7,12 +24,12 @@ import ( ) func init() { - if err := asset.SetFields("heartbeat/fields.yml", Asset); err != nil { + if err := asset.SetFields("heartbeat", "fields.yml", Asset); err != nil { panic(err) } } // Asset returns asset data func Asset() string { - return "eJzsW19z27gRf/en2MlTOyNrmqTJdPzQaeqkPc1d7jy2+yxDwErEGQQYALSsm374Dv6RoEjqj6Vc3ZnqJSYJ7C52f/jtLshcXMIjbq5ggcReAFhuBV7B38MVQ0M1ryxX8gr+egEAcK2kJVwaoKoslfTzYMlRMAPkiXBBFgKBSyBCAD6htGA3FZrpBcRhVxde0CVIUmJQPHV/+ruDOt3vvkA/AdQSbIHeQjAoGZcrf0OoFZRoDFmhmcIsG+WncdOIMmidge45VXLJV7UmTh0sucCJu+8eEgtPRNRuJtQGmZfJrbuUyubC/BQolLFRUxx/r7yqjh0T98zfenCXD40c5Vc8bte077Skcb/jGtuIAY221hIZLDZelarQqZErMBtjsQQlYV1wWrSGZ77TtZRcrgassbzE35Q8wJo08nta84TacCX3GxMHJlh5OPvgr1A6U5CBLbgJUJ52ofvmb24pxpKyehOFOqxfASM2+UHjt5prZFdgdZ1uLpUuie2Mw2dSVm7rfapXtbHw7qMt4N2f3n6cwNt3V+8/XH14P33//t1h3vUmwToAGeM2dBtEI1WawZqYdn1bi7JkZXZr+aQX3GqiN35s8BYljgo83ivUIVBEMn9hNZGGUNvGI/hpS3Fgh44f1eJXpGmvhYt5ePKIm7XSbLehDVfVBnW7pxxBBWVbFqDWSncMWGlVV7uVfHGTEgPSoNHhlzDG3VgigMulcjubEuP5y+sx0wSGyIpJYLImkllzP9lk8dlmN0fMak2LcqY9BVSxvnSh5OoY6U5IX7ST1RPdjdlB0gNMYoqiQtWszVHX7hIqrZ44Q7dMSxixZDhtfY1PYalVGSQ1U42LVUtBhLG5HzBPIt1IisYoPZrF3NCpnzVNYrc3NtI9u/fnLL11LZzCjTKGO+D6nGSAaHQCJ7CiOAGlgfEVt0QoikROR23j0lgiKc75nq0ziwNh9jmZ5JIIlIQWXG5v3SEN+zNToyPP64dpiQPmGc4aP9t30xIZr8vd2r8GER5ixymPZQ4X3G7mWcprLKjNJRJjL9/SPUSaCQKfEXmb7bgJ5nDTprkdkPPc2ES1MSU+uXw+HHpxirPln0qtBIadNq5d42pvqr31Y/atL250puij3z9xp39O1wPCwzMwllhHv0IgdTnbb/PwzO1ZUyht5yEDXMGSCOOCRiQtlE76LptdftEl5bTkxiwYzA9jPB5zAuopZ6dx4r8k/1ZjKxA4G2L1Rl05lD6O0pjjwotL1Wk0wBUSi5oLC0ruMiUjgxdact3odLJ26RJkgcL0tHVqCdhdT+yxZeY9EfQ0oHVgbiH7Q7gaEDJzxUAGVJfletTTYtPd34vMqPs4XJ4ekx9iW9GPxpmQHghiAORE04JbpLbWZ1hDRxz8AaerKTz/5eP8458nQHQ5gaqiEyh5Zf7YN0WZaSWIdSX9aZb8cgdJULSBorTKTKBe1NLWE1hzydR6xIhux/NyG6KcQR1LUnKxOVlFEBMXqZEVxE6A4YITOYGlRlwYtmu1vOqZ0Lm1Q/tP3FhHaLObS8KYRmPQ9BWUhJ62yKSmIJqticZW2QRqUxMhNvD103VuQ+KRx3qBWqJF07LJj/m9AbXt86YM7ta0rVDIuWR3Wmwn7SWgjtFwFA1Vip0hPWQeqBQL3Daoqj6VmrY0OXmD1GoqQs+3qFZiX5nrwM7qQSdxxIWHJtfDFAVpUJKqr4lIqaw//zqbukzksM5zFiyZXtqpXXapPUPJNqg3yE19tD+5bdnlzXU4yi2QaOsPwEoluVX6zRbbjGz+OHp054+eznitcXb3RGacLk4/WbgvsFGaHUPBWUujTIlpTp5wjJhO5aSOtmUtBPyqFq51J+Es2qWBJroD62XxpLlnRR7Gng33yhKR9PpjeDR2SNZ2LHPVtencHjmG6un+nM7GuYSSU60MUiWZ6a/N0AJPjeankKah1iLKm8I/lE5tNjxYWj1M4MEK4/4prHWXRLLwt3kY8HlWs7/QqlR+u0LDoH7iFGGBLhAxJsimcB0OZktuDJerCfB2LO+6vpnk0DK7GTD5hLprdrPTylluVdeS9O5i0pHn36Dw6iFgKzGd8fc1GiWekAGvIBZYTZtFa61RWi91YIXGEttB5ODx/QvjNZOMU+Johy8bBqKqFgyeiOCM2NBeJ09Y5SLXvFRrS8S4wIzBfRcjlHqsqwNJu5UBx5B2pqhh7PBkjLB/H5yfG6wtbmrZNukr/oRyDDva9te5kz8bDksgcxGPcQEinRn+GKvotdm/M6VG2BlFH82HDHV3v1z/ePfBdRTPmwNh18g4CnW5ItAo/Gu5rgvG4Hd0VLYy6093IMgGNWiPBKt5FV6xHRoNqqTsFqvjhuwxxhvES+wABo0lC8FNASTpckF84iS5zQ2SrFJcblsBsCCuPFAye3efCbGq4/rp1vShZcMuIMIuMPYWPw7IhEgrsib5jYsVSqo34VW6D9uBsLRivHEde9faIqMDyH18+F8HZEEkMwV5xO8GySWXDo/O1EZZhjShkbBNhjiJdq30Y09wi8RXg7x02Gttlaff+/ubI5umKGHY8WPJ16k5Dm21Fj20Hf4C+S5mW1f3pj4iLjOPSFkLy+f9mDSQJ+uLfiD6NcAepN1ntdGQRXBfcOPqRwJSyUsiidj8ljwVPlMI3+Ysa7GNJ6WBrFYaV+F4YCi9o6mUNP0a8IjNm/yZZEFFNCnRoj5494YKdb717r61hkuLq+Yt1UF+BbhN9gTpIy/1T2Quj97TqCuVyS9jrn/31t3s8wXaNaKEJdfGwmJjfbEZ99u32vW1oeJca24tStfb9aQ1UQ1D45lpwGi03KG0VbrFiD2BPYbsMGJv+M/KOgAsW2XxYzVw4p1JC8U2oDQoKTZAoNK45M8T/zJ2gBLdT9blAjUwhUHSshbClWCVRuO/7Stcn2KJ8IEEiciw75kYJuUNCd9ZKfZ6yokhZQlqc2fp2fGm8iB1y3/C/MFBpyMc4J7wC278PxLgOyLBbXmcRxp4ERJ24iD/hpWqshJoscM8A4zRZ4qxmuo11lBDyhLC5wUS1ktfL3RztzBNHJ873Fii7XYUnPMHyD2kAbc3syzhG/QYrQ77u3i0kdvRd/2vR87v+bMTZM6JMZE2sck/KJ3CnQuhgTW3RU+c/2xFcsuJgPvrm7y1JdZiWdkpfJEszAaytKhbyuxJY5wBLZA+djj5NdPvawFO7Jo4LfOuaXb99ebAbinOhGO6pdkNVM7XB7blYX/33zX2C+pd30uFKPEluMXBF1qo2yjYU8w5jg0byXCbcdItVg4P3cL6wLL63AeG6XSG5tF2+++oIxl6dMSdisSeLzmaqZTux+Ko+KcGz0mKW/YcId86Aro+tY8685nkIGvn55Jb3HtE49Mexb8WLvsOjekOj7aNgrsyFqvWe/jMjf+vMl33vhZH/ScAAP//+HFU/w==" + return "eJzsW99v5Lbxf/dfMbin7xdYC81d71D4oejVlzaL5BLj7DyvueTsijFF6kjK9gb94wv+kqiVtD+8e6kLdB8SS6JmhjMffmaG1F1cwgNurmCJxF4AWG4FXsHfwxVDQzWvLVfyCv56AQBwraQlXBqgqqqU9O/BiqNgBsgj4YIsBQKXQIQAfERpwW5qNMUFxGFXF17QJUhSYVBcuD/93VGd7ndXon8B1Apsid5CMCgZl2t/Q6g1VGgMWaMpYJ6N8q9x04oyaJ2B7jlVcsXXjSZOHay4wJm77x4SC49ENO5NaAwyL5NbdymVzYX5V6BUxkZNcfyd8qp6dszcM3/r3l3et3KUn/G0XcXQaUnjfse1thEDGm2jJTJYbrwqVaNTI9dgNsZiBUrCU8lp2Rme+U43UnK5HrHG8gp/V/IAa9LIb2nNI2rDldxvTByYYOXh7IO/RulMQQa25CZAuehD983f3FSMJVX9Jgp1WL8CRmzyg8avDdfIrsDqJt1cKV0R2xuHz6Sq3dL72KwbY+HtB1vC2z9992EG3729evf+6v274t27t4d515sETwHIGJehWyAaqdIMnojp5rc1KUvWZreWj3rJrSZ648cGb1HiqMDjvUYdAkUk8xdWE2kItV08gp+2FAd26PlRLX9DmtZauFiEJw+4eVKa7Ta05arGoO7WlCOooGzLAtRa6Z4Ba62aereS791LiQFp0OjwSxjjbiwRwOVKuZVNifH85fWYIoEhsmISmKyJZNbeTzZZfLbZzQmzOtOinGKggCo2lC6UXB8j3QkZinayBqL7MTtIeoBJTFFUqIZ1OeraXUKt1SNn6KZpCSOWjKetz/EprLSqgqT2VeNi1VEQYWzhByySSDeSojFKT2YxN7TwbxVJ7PbCRrpn9f6cpbe+hQXcKGO4A67PSQaIRidwBmuKM1AaGF9zS4SiSGQxaRuXxhJJccH3LJ15HAjzT8kkl0SgIrTkcnvpjmnYn5laHXleP0xLHLDIcNb62b4tKmS8qXZr/xxEeIgdpzyWOVxwu1lkKa+1oDGXSIy9/I7uIdJMEPiMyLtsx00wh5suze2AnOfGNqqtKfHJ5fPh0IuvOFv+qdRaYFhp09o1rvem2i9+zL75xYXOFH3w6yeu9E/pekR4eAbGEuvoVwikLmf7ZR6euTVrSqXtImSAK1gRYVzQiKSl0knfZbvKL/qknKbcmgWj+WGKx2NOQF1wdhon/ir51wY7gcDZGKu36qqx9HGUxhwXXlyqTqMBrpBYNlxYUHKXKRkZvNCS61ank7VLlyBLFGagrVdLwO56Yo8tc++JoKcFrQNzB9kfwtWIkLkrBjKguiw3oJ4Om+7+XmRG3cfh8vSY/BDbimE0zoT0QBAjICealtwitY0+wxx64uD/sFgX8PyXD4sPf54B0dUM6prOoOK1+f+hKcoUtSDWlfSnWfLLLSRB0QaK0iozg2bZSNvM4IlLpp4mjOh3PC+3IcoZ1bEiFRebk1UEMXGSGllJ7AwYLjmRM1hpxKVhu2bL64EJvVs7tP/EjXWENr+5JIxpNAbNUEFF6GmTTGpKotkT0dgpm0FjGiLEBj5/vM5tSDzy0CxRS7RoOjb5Mb83orZ73pbB/Zq2Ewo5l+xOi91LewmoZzQcRUO1YmdID5kHasUCt42qak6lpkzTjWLw6/zTUJH7r6kJPd+kOolDZa4DO6sHncQJFx6aXA9TFKRBReqhJiKlsn7/62zqMpHjOs9ZsGR6aa922aX2DCXbqN4gN/XRfue2Y5c312Ert0Sird8Aq5TkVuk3W2wzsfjj6MmVP7k747XGt/s7MtN0cfrOwl2JrdJsGwrOWhplSky784RTxHQqJ/W0rRoh4De1dK07CXvRLg200R2ZL4s7zQMr8jAObLhTloik12/Do7FjsrZjmatuTO/2xDbUQPentDfOJVScamWQKsnMcG6GlnhqND+GNA2NFlFeAf9QOrXZcG9pfT+DeyuM+19prbskkoW/zf2Iz7Oa/YVWpfLbFRoG9SOnCEt0gYgxQVbAddiYrbgxXK5nwLuxvO/69iWHlvnNiMkn1F3zm51WznOr+paks4tZT54/QeH1fcBWYjrj72s0SjwiA15DLLDaNos2WqO0XurIDI0ltofI0e37F8ZrLhmnxNEOX7UMRFUjGDwSwRmxob1OnrDKRa49VOtKxDjBjMF9FyOUemjqA0m7kwHHkHamqGXs8GSKsP8YnJ8brB1uGtk16Wv+iHIKO9oO57mTP1sOSyBzEY9xASKdGX4bqxy02X8wpUbYGUUfzPsMdbe/XP94+951FM+bA2HXyjgKdbki0Cj8sVzfBVPwOzoqW5n1p1sQZIMatEeC1bwOR2yHRoMqKfvF6rQhe4zxBvEKe4BBY8lScFMCSbpcEB85SW5zgySrFZfbVgAsiSsPlMzO7jMhVvVcX2y9PjZt2AVE2AXGweSnAZkQaUXWJL9xsUJJ9SYcpfuwHQhLK6Yb16mz1g4ZPUDu48P/OCBLIpkpyQN+M0iuuHR4dKa2yjKkCY2EbTLESbRPSj8MBHdIfDXIS5u91tZ5+r27uzmyaYoSxh0/lXydmuPQ1mgxQNvhB8i3Mdu6ujf1EXGaeUSqRli+GMakhTx5uhgGYlgD7EHaXVYbjVkEdyU3rn4kIJW8JJKIze/JU+EzhfBtzqoR23hSGsh6rXEdtgfG0juaWkkzrAGPWLzJn0kW1ESTCi3qg1dvqFAXW2f3nTVcWly3p1QH+RXgS7InSJ841D+RuTx6T6OuVCa/jLn+NZh3u86XaJ8QJay4NhaWG+uLzbjevjaurw0V55Pm1qJ0vd1AWhvVMDTumQaMRssdSjulW4w4EDhgyB4jDob/rKwDwKpTFj9WAyfembRUbANKg5JiAwRqjSv+PPOHsSOU6H6yqZaogSkMklaNEK4EqzUa/21f6foUS4QPJEhEhkPPxDApb0j4zkqx11NOjClLUFs4S8+ON5UHqV/+E+Y3Dnod4Qj3hF9w4/+QAN8QCW7J4yLSwIuQsBMH+TesVFW1QIs95hlhjCFTTNVUr7GGGlOWEL4okbBB+nqhm/uFaeL43OHGEm23o+CcP0LuIQ24tZllCd+gx2j12N/Fo4vcjr7rvz1yVEmL0hYv23XY30xotJrjI7L20xPHNsk0iLYV48Z5Qjo7e+fmxSzfAif/2rWAW4cvA0/clgNx/psayS0nAu6ub/K+m1iLVW0L+F6y8DaQlUXd8flAGuMMaIn0oZcwXnNueC2oji0dp1Xe0s2vP98c2MrFN+GYVm5+A7Xz9YF7BoF8hgehw2p/18dcIUp8BW5y8D0t1Zco2PPfOfY0W8nwJSPML1g7PPSr/gNr/nPvZqatI5pH262/o/aL6NERdyoStb9k36hWehiLo+Kfuk8nKS7Zc4R8a3/q+tQm78wbpqOsnW+abnHvEV1Zd07wWrjsG3TNOzzadTHuylisO+/hMzf+3/H03ftaHPXvAAAA///qNX+b" } diff --git a/vendor/github.com/elastic/beats/heartbeat/look/look.go b/vendor/github.com/elastic/beats/heartbeat/look/look.go index 0fd0e4a3..b22281f6 100644 --- a/vendor/github.com/elastic/beats/heartbeat/look/look.go +++ b/vendor/github.com/elastic/beats/heartbeat/look/look.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 look defines common formatters for fields/types to be used when // generating heartbeat events. package look diff --git a/vendor/github.com/elastic/beats/heartbeat/magefile.go b/vendor/github.com/elastic/beats/heartbeat/magefile.go new file mode 100644 index 00000000..a23b8687 --- /dev/null +++ b/vendor/github.com/elastic/beats/heartbeat/magefile.go @@ -0,0 +1,95 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "fmt" + "time" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + + "github.com/elastic/beats/dev-tools/mage" +) + +func init() { + mage.BeatDescription = "Ping remote services for availability and log " + + "results to Elasticsearch or send to Logstash." + mage.BeatServiceName = "heartbeat-elastic" +} + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// GolangCrossBuild build the Beat binary inside of the golang-builder. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) +} + +// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). +func BuildGoDaemon() error { + return mage.BuildGoDaemon() +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return mage.CrossBuild() +} + +// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. +func CrossBuildGoDaemon() error { + return mage.CrossBuildGoDaemon() +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Package packages the Beat for distribution. +// Use SNAPSHOT=true to build snapshots. +// Use PLATFORMS to control the target platforms. +func Package() { + start := time.Now() + defer func() { fmt.Println("package ran for", time.Since(start)) }() + + mage.UseElasticBeatPackaging() + mg.Deps(Update) + mg.Deps(CrossBuild, CrossBuildGoDaemon) + mg.SerialDeps(mage.Package, TestPackages) +} + +// TestPackages tests the generated packages (i.e. file modes, owners, groups). +func TestPackages() error { + return mage.TestPackages() +} + +// Update updates the generated files (aka make update). +func Update() error { + return sh.Run("make", "update") +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML("monitors/active") +} diff --git a/vendor/github.com/elastic/beats/heartbeat/main.go b/vendor/github.com/elastic/beats/heartbeat/main.go index 130e422b..009752fd 100644 --- a/vendor/github.com/elastic/beats/heartbeat/main.go +++ b/vendor/github.com/elastic/beats/heartbeat/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/main_test.go b/vendor/github.com/elastic/beats/heartbeat/main_test.go deleted file mode 100644 index f4c05080..00000000 --- a/vendor/github.com/elastic/beats/heartbeat/main_test.go +++ /dev/null @@ -1,25 +0,0 @@ -package main - -// This file is mandatory as otherwise the heartbeat.test binary is not generated correctly. - -import ( - "flag" - "testing" - - "github.com/elastic/beats/heartbeat/cmd" -) - -var systemTest *bool - -func init() { - systemTest = flag.Bool("systemTest", false, "Set to true when running system tests") - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("systemTest")) - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("test.coverprofile")) -} - -// Test started when the test binary is started. Only calls main. -func TestSystem(t *testing.T) { - if *systemTest { - main() - } -} diff --git a/vendor/github.com/elastic/beats/heartbeat/make.bat b/vendor/github.com/elastic/beats/heartbeat/make.bat new file mode 100644 index 00000000..81de1ba9 --- /dev/null +++ b/vendor/github.com/elastic/beats/heartbeat/make.bat @@ -0,0 +1,11 @@ +@echo off + +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. +REM +REM After running this once you may invoke mage.exe directly. + +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install github.com/elastic/beats/vendor/github.com/magefile/mage + +mage %* diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/builder.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/builder.go index bf2d42c5..3f1431ae 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/builder.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/builder.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dialchain import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/dialchain.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/dialchain.go index ceeab0a4..2222b475 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/dialchain.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/dialchain.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dialchain import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/net.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/net.go index 848d41c8..101663a9 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/net.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/net.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dialchain import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/socks5.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/socks5.go index 59023a85..6d61886d 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/socks5.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/socks5.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dialchain import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/tls.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/tls.go index e3354b54..2add021b 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/tls.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/tls.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dialchain import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/util.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/util.go index d0e9322f..fdf7db18 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/util.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/dialchain/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dialchain import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/_meta/fields.yml b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/_meta/fields.yml index 082c1f2e..6cb7f0aa 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/_meta/fields.yml @@ -82,6 +82,11 @@ type: long description: Duration in microseconds + - name: content.us + type: long + description: + Time required to retrieved the content in micro seconds. + - name: total type: group description: | diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/check.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/check.go index 69dba158..5eb822c2 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/check.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/check.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/check_test.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/check_test.go deleted file mode 100644 index 64a288f3..00000000 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/check_test.go +++ /dev/null @@ -1,110 +0,0 @@ -package http - -import ( - "fmt" - "log" - "net/http" - "net/http/httptest" - "testing" - - "github.com/elastic/beats/libbeat/common/match" -) - -func TestCheckBody(t *testing.T) { - - var matchTests = []struct { - description string - body string - patterns []string - result bool - }{ - { - "Single regex that matches", - "ok", - []string{"ok"}, - true, - }, - { - "Regex matching json example", - `{"status": "ok"}`, - []string{`{"status": "ok"}`}, - true, - }, - { - "Regex matching first line of multiline body string", - `first line - second line`, - []string{"first"}, - true, - }, - { - "Regex matching lastline of multiline body string", - `first line - second line`, - []string{"second"}, - true, - }, - { - "Regex matching multiple lines of multiline body string", - `first line - second line - third line`, - []string{"(?s)first.*second.*third"}, - true, - }, - { - "Regex not matching multiple lines of multiline body string", - `first line - second line - third line`, - []string{"(?s)first.*fourth.*third"}, - false, - }, - { - "Single regex that doesn't match", - "ok", - []string{"notok"}, - false, - }, - { - "Multiple regex match where at least one must match", - "ok", - []string{"ok", "yay"}, - true, - }, - { - "Multiple regex match where none of the patterns match", - "ok", - []string{"notok", "yay"}, - false, - }, - } - - for _, test := range matchTests { - t.Run(test.description, func(t *testing.T) { - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - fmt.Fprintln(w, test.body) - })) - defer ts.Close() - - res, err := http.Get(ts.URL) - if err != nil { - log.Fatal(err) - } - - patterns := []match.Matcher{} - for _, pattern := range test.patterns { - patterns = append(patterns, match.MustCompile(pattern)) - } - check := checkBody(patterns)(res) - - if result := (check == nil); result != test.result { - if test.result { - t.Fatalf("Expected at least one of patterns: %s to match body: %s", test.patterns, test.body) - } else { - t.Fatalf("Did not expect patterns: %s to match body: %s", test.patterns, test.body) - } - } - }) - } -} diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/config.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/config.go index 8328e1b3..e9c20974 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/config.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/enc.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/enc.go index 46582790..26e4545e 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/enc.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/enc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/http.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/http.go index 986f1b0f..c93e2139 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/http.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/http.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/simple_transp.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/simple_transp.go index 4a97f997..9f43c4fe 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/simple_transp.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/simple_transp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/task.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/task.go index 250f76ac..c1f02ce8 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/task.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/task.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http import ( @@ -201,29 +218,58 @@ func execPing( body []byte, timeout time.Duration, validator func(*http.Response) error, -) (time.Time, time.Time, common.MapStr, reason.Reason) { +) (start, end time.Time, event common.MapStr, errReason reason.Reason) { ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() - req = req.WithContext(ctx) + req = attachRequestBody(&ctx, req, body) + start, end, resp, errReason := execRequest(client, req, validator) + + if errReason != nil { + if resp != nil { + return start, end, makeEvent(end.Sub(start), resp), errReason + } + return start, end, nil, errReason + } + + event = makeEvent(end.Sub(start), resp) + + return start, end, event, nil +} + +func attachRequestBody(ctx *context.Context, req *http.Request, body []byte) *http.Request { + req = req.WithContext(*ctx) if len(body) > 0 { req.Body = ioutil.NopCloser(bytes.NewBuffer(body)) req.ContentLength = int64(len(body)) } - start := time.Now() + return req +} + +func execRequest(client *http.Client, req *http.Request, validator func(*http.Response) error) (start time.Time, end time.Time, resp *http.Response, errReason reason.Reason) { + start = time.Now() resp, err := client.Do(req) - end := time.Now() + if resp != nil { // If above errors, the response will be nil + defer resp.Body.Close() + } + end = time.Now() + if err != nil { return start, end, nil, reason.IOFailed(err) } - defer resp.Body.Close() err = validator(resp) end = time.Now() + if err != nil { + return start, end, resp, reason.ValidateFailed(err) + } - rtt := end.Sub(start) - event := common.MapStr{"http": common.MapStr{ + return start, end, resp, nil +} + +func makeEvent(rtt time.Duration, resp *http.Response) common.MapStr { + return common.MapStr{"http": common.MapStr{ "response": common.MapStr{ "status_code": resp.StatusCode, }, @@ -231,11 +277,6 @@ func execPing( "total": look.RTT(rtt), }, }} - - if err != nil { - return start, end, event, reason.ValidateFailed(err) - } - return start, end, event, nil } func splitHostnamePort(requ *http.Request) (string, uint16, error) { diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/task_test.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/task_test.go deleted file mode 100644 index 1d26fdf5..00000000 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/http/task_test.go +++ /dev/null @@ -1,93 +0,0 @@ -package http - -import ( - "net" - "net/http" - "net/url" - "reflect" - "testing" -) - -func TestSplitHostnamePort(t *testing.T) { - var urlTests = []struct { - scheme string - host string - expectedHost string - expectedPort uint16 - expectedError error - }{ - { - "http", - "foo", - "foo", - 80, - nil, - }, - { - "http", - "www.foo.com", - "www.foo.com", - 80, - nil, - }, - { - "http", - "www.foo.com:8080", - "www.foo.com", - 8080, - nil, - }, - { - "https", - "foo", - "foo", - 443, - nil, - }, - { - "http", - "foo:81", - "foo", - 81, - nil, - }, - { - "https", - "foo:444", - "foo", - 444, - nil, - }, - { - "httpz", - "foo", - "foo", - 81, - &net.AddrError{}, - }, - } - for _, test := range urlTests { - url := &url.URL{ - Scheme: test.scheme, - Host: test.host, - } - request := &http.Request{ - URL: url, - } - host, port, err := splitHostnamePort(request) - if err != nil { - if test.expectedError == nil { - t.Error(err) - } else if reflect.TypeOf(err) != reflect.TypeOf(test.expectedError) { - t.Errorf("Expected %T but got %T", err, test.expectedError) - } - continue - } - if host != test.expectedHost { - t.Errorf("Unexpected host for %#v: expected %q, got %q", request, test.expectedHost, host) - } - if port != test.expectedPort { - t.Errorf("Unexpected port for %#v: expected %q, got %q", request, test.expectedPort, port) - } - } -} diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/config.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/config.go index e91efb82..619f6325 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/config.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 icmp import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/icmp.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/icmp.go index 2b85f680..0c445eab 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/icmp.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/icmp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 icmp import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/loop.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/loop.go index 8254260c..4cd97d59 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/loop.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/loop.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 icmp import ( @@ -325,7 +342,7 @@ func createListener(name, network string) *icmp.PacketConn { // XXX: need to check for conn == nil, as 'err != nil' seems always to be // true, even if error value itself is `nil`. Checking for conn suppresses - // missleading log message. + // misleading log message. if conn == nil && err != nil { logp.Info("%v ICMP not supported: %v", name, err) return nil diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/util.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/util.go index 88bfb10b..94cb4ae3 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/util.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/icmp/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 icmp import "net" diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/check.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/check.go index ad88fc21..0f8d631c 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/check.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/check.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/config.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/config.go index 98b80167..0c43bafb 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/config.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/task.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/task.go index c1996dff..90043081 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/task.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/task.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/tcp.go b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/tcp.go index c58876ce..4e37cd0a 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/tcp.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/active/tcp/tcp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/defaults/default.go b/vendor/github.com/elastic/beats/heartbeat/monitors/defaults/default.go index 16adb25b..35bb76fb 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/defaults/default.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/defaults/default.go @@ -1,3 +1,22 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by 'make imports' - DO NOT EDIT. + /* Package defaults imports all Monitor packages so that they register with the global monitor registry. This package can be imported in the @@ -7,7 +26,6 @@ modules. package defaults import ( - // This list is automatically generated by `make imports` _ "github.com/elastic/beats/heartbeat/monitors/active/http" _ "github.com/elastic/beats/heartbeat/monitors/active/icmp" _ "github.com/elastic/beats/heartbeat/monitors/active/tcp" diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/monitors.go b/vendor/github.com/elastic/beats/heartbeat/monitors/monitors.go index 199786c7..be1c897a 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/monitors.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/monitors.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitors import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/plugin.go b/vendor/github.com/elastic/beats/heartbeat/monitors/plugin.go index 6f6c3890..b6e3f9eb 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/plugin.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitors import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/monitors/util.go b/vendor/github.com/elastic/beats/heartbeat/monitors/util.go index efd6c755..1e16b285 100644 --- a/vendor/github.com/elastic/beats/heartbeat/monitors/util.go +++ b/vendor/github.com/elastic/beats/heartbeat/monitors/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitors import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/reason/reason.go b/vendor/github.com/elastic/beats/heartbeat/reason/reason.go index 8949f22e..08c7724f 100644 --- a/vendor/github.com/elastic/beats/heartbeat/reason/reason.go +++ b/vendor/github.com/elastic/beats/heartbeat/reason/reason.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 reason import "github.com/elastic/beats/libbeat/common" diff --git a/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/cron/cron.go b/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/cron/cron.go index e7ade343..51b530b2 100644 --- a/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/cron/cron.go +++ b/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/cron/cron.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cron import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/schedule.go b/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/schedule.go index 1d8a47d4..737c6468 100644 --- a/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/schedule.go +++ b/vendor/github.com/elastic/beats/heartbeat/scheduler/schedule/schedule.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 schedule import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/scheduler/scheduler.go b/vendor/github.com/elastic/beats/heartbeat/scheduler/scheduler.go index 96f1d0e5..369a31f7 100644 --- a/vendor/github.com/elastic/beats/heartbeat/scheduler/scheduler.go +++ b/vendor/github.com/elastic/beats/heartbeat/scheduler/scheduler.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 scheduler import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/scheduler/util.go b/vendor/github.com/elastic/beats/heartbeat/scheduler/util.go index 8f904c52..fb8f8ccc 100644 --- a/vendor/github.com/elastic/beats/heartbeat/scheduler/util.go +++ b/vendor/github.com/elastic/beats/heartbeat/scheduler/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 scheduler import "sort" diff --git a/vendor/github.com/elastic/beats/heartbeat/scripts/generate_monitor/main.go b/vendor/github.com/elastic/beats/heartbeat/scripts/generate_monitor/main.go index 5f2b8bd2..0fa3109f 100644 --- a/vendor/github.com/elastic/beats/heartbeat/scripts/generate_monitor/main.go +++ b/vendor/github.com/elastic/beats/heartbeat/scripts/generate_monitor/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/heartbeat/scripts/generator/README.md b/vendor/github.com/elastic/beats/heartbeat/scripts/generator/README.md index 77f7bb4d..f1b0b9aa 100644 --- a/vendor/github.com/elastic/beats/heartbeat/scripts/generator/README.md +++ b/vendor/github.com/elastic/beats/heartbeat/scripts/generator/README.md @@ -26,7 +26,7 @@ Monitor structure: monitoring jobs. - `_meta/fields.yml`: Document the monitors event field. - `_meta/config.yml`: Minimal sample configuration file -- `_meta/config.reference.yml`: Reference configuration file. All availalbe +- `_meta/config.reference.yml`: Reference configuration file. All available settings are documented in the reference file. Code comments tagged with `IMPLEMENT_ME` in the go and meta files give details diff --git a/vendor/github.com/elastic/beats/heartbeat/tests/system/test_monitor.py b/vendor/github.com/elastic/beats/heartbeat/tests/system/test_monitor.py index 6f4ff2a8..c00e847d 100644 --- a/vendor/github.com/elastic/beats/heartbeat/tests/system/test_monitor.py +++ b/vendor/github.com/elastic/beats/heartbeat/tests/system/test_monitor.py @@ -2,6 +2,8 @@ import BaseHTTPServer import threading from parameterized import parameterized +import os +from nose.plugins.skip import SkipTest class Test(BaseTest): @@ -19,7 +21,7 @@ def test_http(self, status_code): self.render_config_template( monitors=[{ "type": "http", - "urls": ["http://localhost:8181"], + "urls": ["http://localhost:8185"], }], ) @@ -35,9 +37,14 @@ def test_http(self, status_code): output = self.read_output() assert status_code == output[0]["http.response.status_code"] + if os.name == "nt": + # Currently skipped on Windows as fields.yml not generated + raise SkipTest + self.assert_fields_are_documented(output[0]) + @parameterized.expand([ - ("8181", "up"), - ("8182", "down"), + ("8185", "up"), + ("8186", "down"), ]) def test_tcp(self, port, status): """ @@ -63,6 +70,10 @@ def test_tcp(self, port, status): output = self.read_output() assert status == output[0]["monitor.status"] + if os.name == "nt": + # Currently skipped on Windows as fields.yml not generated + raise SkipTest + self.assert_fields_are_documented(output[0]) def start_server(self, content, status_code): class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): @@ -72,7 +83,7 @@ def do_GET(self): self.end_headers() self.wfile.write(content) - server = BaseHTTPServer.HTTPServer(('localhost', 8181), HTTPHandler) + server = BaseHTTPServer.HTTPServer(('localhost', 8185), HTTPHandler) thread = threading.Thread(target=server.serve_forever) thread.start() diff --git a/vendor/github.com/elastic/beats/heartbeat/watcher/watcher.go b/vendor/github.com/elastic/beats/heartbeat/watcher/watcher.go index 7c17c8df..d0669127 100644 --- a/vendor/github.com/elastic/beats/heartbeat/watcher/watcher.go +++ b/vendor/github.com/elastic/beats/heartbeat/watcher/watcher.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 watcher import ( diff --git a/vendor/github.com/elastic/beats/libbeat/Dockerfile b/vendor/github.com/elastic/beats/libbeat/Dockerfile index 35e29c2d..4c9a303b 100644 --- a/vendor/github.com/elastic/beats/libbeat/Dockerfile +++ b/vendor/github.com/elastic/beats/libbeat/Dockerfile @@ -1,5 +1,5 @@ # Beats dockerfile used for testing -FROM golang:1.10.2 +FROM golang:1.10.3 MAINTAINER Nicolas Ruflin RUN set -x && \ diff --git a/vendor/github.com/elastic/beats/libbeat/Makefile b/vendor/github.com/elastic/beats/libbeat/Makefile index d63820fe..93b34f77 100644 --- a/vendor/github.com/elastic/beats/libbeat/Makefile +++ b/vendor/github.com/elastic/beats/libbeat/Makefile @@ -1,7 +1,6 @@ BEAT_NAME=libbeat TEST_ENVIRONMENT?=true SYSTEM_TESTS=true -FIELDS_FILE_PATH=processors include scripts/Makefile diff --git a/vendor/github.com/elastic/beats/libbeat/_meta/config.reference.yml b/vendor/github.com/elastic/beats/libbeat/_meta/config.reference.yml index be93f76b..61066c4a 100644 --- a/vendor/github.com/elastic/beats/libbeat/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/libbeat/_meta/config.reference.yml @@ -230,6 +230,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 0 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" @@ -270,7 +273,18 @@ output.elasticsearch: # The default is 50. #bulk_max_size: 50 - # Configure http request timeout before failing an request to Elasticsearch. + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + + # Configure http request timeout before failing a request to Elasticsearch. #timeout: 90 # Use SSL settings for HTTPS. @@ -324,6 +338,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 3 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional maximum time to live for a connection to Logstash, after which the # connection will be re-established. A value of `0s` (the default) will # disable this feature. @@ -334,7 +351,7 @@ output.elasticsearch: # Optional load balance the events between the Logstash hosts. Default is false. #loadbalance: false - # Number of batches to be sent asynchronously to logstash while processing + # Number of batches to be sent asynchronously to Logstash while processing # new batches. #pipelining: 2 @@ -343,6 +360,17 @@ output.elasticsearch: # if no error is encountered. #slow_start: false + # The number of seconds to wait before trying to reconnect to Logstash + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Logstash after a network error. The default is 60s. + #backoff.max: 60s + # Optional index name. The default index name is set to beat-index-prefix # in all lowercase. #index: 'beat-index-prefix' @@ -389,6 +417,21 @@ output.elasticsearch: # never, once, and freely. Default is never. #ssl.renegotiation: never + # The number of times to retry publishing an event after a publishing failure. + # After the specified number of retries, the events are typically dropped. + # Some Beats, such as Filebeat and Winlogbeat, ignore the max_retries setting + # and retry until all events are published. Set max_retries to a value less + # than 0 to retry until all events are published. The default is 3. + #max_retries: 3 + + # The maximum number of events to bulk in a single Logstash request. The + # default is 2048. + #bulk_max_size: 2048 + + # The number of seconds to wait for responses from the Logstash server before + # timing out. The default is 30s. + #timeout: 30s + #------------------------------- Kafka output ---------------------------------- #output.kafka: # Boolean flag to enable or disable the output module. @@ -424,9 +467,16 @@ output.elasticsearch: #username: '' #password: '' - # Kafka version beatname is assumed to run against. Defaults to the oldest - # supported stable version (currently version 0.8.2.0) - #version: 0.8.2 + # Kafka version beatname is assumed to run against. Defaults to the "1.0.0". + #version: '1.0.0' + + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true # Metadata update configuration. Metadata do contain leader information # deciding which broker to use when publishing. @@ -474,6 +524,10 @@ output.elasticsearch: # default is gzip. #compression: gzip + # Set the compression level. Currently only gzip provides a compression level + # between 0 and 9. The default value is chosen by the compression algorithm. + #compression_level: 4 + # The maximum permitted size of JSON-encoded messages. Bigger messages will be # dropped. The default value is 1000000 (bytes). This value should be equal to # or less than the broker's message.max.bytes. @@ -530,6 +584,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # The list of Redis servers to connect to. If load balancing is enabled, the # events are distributed to the servers in the list. If one server becomes # unreachable, the events are distributed to the reachable servers only. @@ -577,6 +639,17 @@ output.elasticsearch: # until all events are published. The default is 3. #max_retries: 3 + # The number of seconds to wait before trying to reconnect to Redis + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Redis after a network error. The default is 60s. + #backoff.max: 60s + # The maximum number of events to bulk in a single Redis request or pipeline. # The default is 2048. #bulk_max_size: 2048 @@ -631,6 +704,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # Path to the directory where to save the generated files. The option is # mandatory. #path: "/tmp/beatname" @@ -658,8 +739,13 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true - # Pretty print json event - #pretty: false + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true #================================= Paths ====================================== @@ -757,6 +843,13 @@ output.elasticsearch: # Path to fields.yml file to generate the template #setup.template.fields: "${path.config}/fields.yml" +# A list of fields to be added to the template and Kibana index pattern. Also +# specify setup.template.overwrite: true to overwrite the existing template. +# This setting is experimental. +#setup.template.append_fields: +#- name: field_name +# type: field_type + # Enable json template loading. If this is enabled, the fields.yml is ignored. #setup.template.json.enabled: false @@ -943,6 +1036,17 @@ logging.files: # The default is 50. #bulk_max_size: 50 + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + # Configure http request timeout before failing an request to Elasticsearch. #timeout: 90 @@ -982,6 +1086,9 @@ logging.files: # never, once, and freely. Default is never. #ssl.renegotiation: never + #metrics.period: 10s + #state.period: 1m + #================================ HTTP Endpoint ====================================== # Each beat can expose internal metrics through a HTTP endpoint. For security # reasons the endpoint is disabled by default. This feature is currently experimental. diff --git a/vendor/github.com/elastic/beats/libbeat/api/config.go b/vendor/github.com/elastic/beats/libbeat/api/config.go index 4182a61e..0ba30634 100644 --- a/vendor/github.com/elastic/beats/libbeat/api/config.go +++ b/vendor/github.com/elastic/beats/libbeat/api/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 api type Config struct { diff --git a/vendor/github.com/elastic/beats/libbeat/api/server.go b/vendor/github.com/elastic/beats/libbeat/api/server.go index c38cbf5d..3280cceb 100644 --- a/vendor/github.com/elastic/beats/libbeat/api/server.go +++ b/vendor/github.com/elastic/beats/libbeat/api/server.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 api import ( @@ -24,6 +41,7 @@ func Start(cfg *common.Config) { // register handlers mux.HandleFunc("/", rootHandler()) + mux.HandleFunc("/state", stateHandler) mux.HandleFunc("/stats", statsHandler) mux.HandleFunc("/dataset", datasetHandler) @@ -44,12 +62,21 @@ func rootHandler() func(http.ResponseWriter, *http.Request) { w.Header().Set("Content-Type", "application/json; charset=utf-8") - data := monitoring.CollectStructSnapshot(monitoring.GetNamespace("state").GetRegistry(), monitoring.Full, false) + data := monitoring.CollectStructSnapshot(monitoring.GetNamespace("info").GetRegistry(), monitoring.Full, false) print(w, data, r.URL) } } +// stateHandler reports state metrics +func stateHandler(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json; charset=utf-8") + + data := monitoring.CollectStructSnapshot(monitoring.GetNamespace("state").GetRegistry(), monitoring.Full, false) + + print(w, data, r.URL) +} + // statsHandler report expvar and all libbeat/monitoring metrics func statsHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=utf-8") diff --git a/vendor/github.com/elastic/beats/libbeat/asset/asset.go b/vendor/github.com/elastic/beats/libbeat/asset/asset.go new file mode 100644 index 00000000..afc6be73 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/asset/asset.go @@ -0,0 +1,66 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 asset + +import "text/template" + +var Template = template.Must(template.New("normalizations").Parse(` +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package {{ .Package }} + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("{{ .Beat }}", "{{ .Name }}", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "{{ .Data }}" +} + +`)) + +type Data struct { + Beat string + Name string + Data string + Package string +} diff --git a/vendor/github.com/elastic/beats/libbeat/asset/registry.go b/vendor/github.com/elastic/beats/libbeat/asset/registry.go index 23a94d03..634e4e38 100644 --- a/vendor/github.com/elastic/beats/libbeat/asset/registry.go +++ b/vendor/github.com/elastic/beats/libbeat/asset/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 asset import ( @@ -11,22 +28,24 @@ import ( // As each entry is an array of bytes multiple fields.yml can be added under one path. // This can become useful as we don't have to generate anymore the fields.yml but can // package each local fields.yml from things like processors. -var FieldsRegistry = map[string][]string{} +var FieldsRegistry = map[string]map[string]string{} -// SetFields sets the fields for a given path -func SetFields(path string, asset func() string) error { +// SetFields sets the fields for a given beat and asset name +func SetFields(beat, name string, asset func() string) error { data := asset() - FieldsRegistry[path] = append(FieldsRegistry[path], data) + if _, ok := FieldsRegistry[beat]; !ok { + FieldsRegistry[beat] = map[string]string{} + } + FieldsRegistry[beat][name] = data return nil } -// GetFields returns a byte array contains all fields for the given path -func GetFields(path string) ([]byte, error) { +// GetFields returns a byte array contains all fields for the given beat +func GetFields(beat string) ([]byte, error) { var fields []byte - for _, data := range FieldsRegistry[path] { - + for _, data := range FieldsRegistry[beat] { output, err := DecodeData(data) if err != nil { return nil, err diff --git a/vendor/github.com/elastic/beats/libbeat/asset/registry_test.go b/vendor/github.com/elastic/beats/libbeat/asset/registry_test.go deleted file mode 100644 index 85af341b..00000000 --- a/vendor/github.com/elastic/beats/libbeat/asset/registry_test.go +++ /dev/null @@ -1,23 +0,0 @@ -package asset - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestGetFields(t *testing.T) { - - data := "hello world" - d, err := EncodeData(data) - assert.NoError(t, err) - - f := func() string { - return d - } - - SetFields("test", f) - newData, err := GetFields("test") - assert.NoError(t, err) - assert.Equal(t, data, string(newData)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/appender.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/appender.go index 9c1a3fd8..6bb80aac 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/appender.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/appender.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/appender_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/appender_test.go deleted file mode 100644 index 2531c6b3..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/appender_test.go +++ /dev/null @@ -1,77 +0,0 @@ -package autodiscover - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" -) - -type fakeAppender struct{} - -func (f *fakeAppender) Append(event bus.Event) { - event["foo"] = "bar" -} - -func newFakeAppender(_ *common.Config) (Appender, error) { - return &fakeAppender{}, nil -} - -func TestAppenderRegistry(t *testing.T) { - // Add a new builder - reg := NewRegistry() - reg.AddAppender("fake", newFakeAppender) - - // Check if that appender is available in registry - b := reg.GetAppender("fake") - assert.NotNil(t, b) - - // Generate a config with type fake - config := AppenderConfig{ - Type: "fake", - } - - cfg, err := common.NewConfigFrom(&config) - - // Make sure that config building doesn't fail - assert.Nil(t, err) - appender, err := reg.BuildAppender(cfg) - assert.Nil(t, err) - assert.NotNil(t, appender) - - // Attempt to build using an array of configs - Registry.AddAppender("fake", newFakeAppender) - cfgs := []*common.Config{cfg} - appenders, err := NewAppenders(cfgs) - assert.Nil(t, err) - assert.Equal(t, len(appenders), 1) - - // Attempt to build using an incorrect config - incorrectConfig := AppenderConfig{ - Type: "wrong", - } - icfg, err := common.NewConfigFrom(&incorrectConfig) - assert.Nil(t, err) - cfgs = append(cfgs, icfg) - appenders, err = NewAppenders(cfgs) - assert.NotNil(t, err) - assert.Nil(t, appenders) - - // Try to append onto an event using fakeAppender and the result should have one item - event := bus.Event{} - appender.Append(event) - assert.Equal(t, len(event), 1) - assert.Equal(t, event["foo"], "bar") - - appenders = Appenders{} - appenders = append(appenders, appender) - - // Try using appenders object for the same as above and expect - // the same result - event = bus.Event{} - appenders.Append(event) - assert.Equal(t, len(event), 1) - assert.Equal(t, event["foo"], "bar") -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/config/config.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/config/config.go index 9ef2ef79..070d5380 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/config/config.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/config/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 config import ( @@ -8,8 +25,8 @@ import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/bus" "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/conditions" "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/processors" ) func init() { @@ -17,14 +34,14 @@ func init() { } type config struct { - ConditionConfig *processors.ConditionConfig `config:"condition"` - Config *common.Config `config:"config"` + ConditionConfig *conditions.Config `config:"condition"` + Config *common.Config `config:"config"` } type configs []config type configMap struct { - condition *processors.Condition + condition conditions.Condition config common.MapStr } @@ -44,11 +61,10 @@ func NewConfigAppender(cfg *common.Config) (autodiscover.Appender, error) { var configMaps []configMap for _, conf := range confs { - // Unpack the condition - var cond *processors.Condition + var cond conditions.Condition if conf.ConditionConfig != nil { - cond, err = processors.NewCondition(conf.ConditionConfig) + cond, err = conditions.NewCondition(conf.ConditionConfig) if err != nil { logp.Warn("config", "unable to create condition due to error: %v", err) continue diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/config/config_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/config/config_test.go deleted file mode 100644 index 539299c6..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/config/config_test.go +++ /dev/null @@ -1,106 +0,0 @@ -package config - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" -) - -func TestGenerateAppender(t *testing.T) { - tests := []struct { - eventConfig common.MapStr - event bus.Event - result common.MapStr - config string - }{ - // Appender without a condition should apply the config regardless - { - event: bus.Event{}, - result: common.MapStr{ - "test": "bar", - "test1": "foo", - "test2": "foo", - }, - eventConfig: common.MapStr{ - "test": "bar", - }, - config: ` -- config: - "test1": foo -- config: - "test2": foo -`, - }, - // Appender with a condition check that fails. Only appender with no condition should pass - { - event: bus.Event{ - "foo": "bar", - }, - result: common.MapStr{ - "test": "bar", - "test1": "foo", - }, - eventConfig: common.MapStr{ - "test": "bar", - }, - config: ` -- config: - "test1": foo -- config: - "test2": foo - condition.equals: - "foo": "bar1" -`, - }, - // Appender with a condition check that passes. It should get appended - { - event: bus.Event{ - "foo": "bar", - }, - result: common.MapStr{ - "test": "bar", - "test1": "foo", - "test2": "foo", - }, - eventConfig: common.MapStr{ - "test": "bar", - }, - config: ` -- config: - "test1": foo -- config: - "test2": foo - condition.equals: - "foo": "bar" -`, - }, - } - for _, test := range tests { - config, err := common.NewConfigWithYAML([]byte(test.config), "") - if err != nil { - t.Fatal(err) - } - - appender, err := NewConfigAppender(config) - assert.Nil(t, err) - assert.NotNil(t, appender) - - eveConfig, err := common.NewConfigFrom(&test.eventConfig) - assert.Nil(t, err) - - test.event["config"] = []*common.Config{eveConfig} - appender.Append(test.event) - - cfgs, _ := test.event["config"].([]*common.Config) - assert.Equal(t, len(cfgs), 1) - - out := common.MapStr{} - cfgs[0].Unpack(&out) - - assert.Equal(t, out, test.result) - - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/registry.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/registry.go index 89c82c40..e72700fc 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/registry.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/appenders/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 appenders import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/autodiscover.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/autodiscover.go index 8c4888fe..a9319ce3 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/autodiscover.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/autodiscover.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( @@ -28,9 +45,6 @@ type Adapter interface { // CreateConfig generates a valid list of configs from the given event, the received event will have all keys defined by `StartFilter` CreateConfig(bus.Event) ([]*common.Config, error) - // CheckConfig tests given config to check if it will work or not, returns errors in case it won't work - CheckConfig(*common.Config) error - // RunnerFactory provides runner creation by feeding valid configs cfgfile.RunnerFactory diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/autodiscover_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/autodiscover_test.go deleted file mode 100644 index 4c8236d0..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/autodiscover_test.go +++ /dev/null @@ -1,268 +0,0 @@ -package autodiscover - -import ( - "sync" - "testing" - "time" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/cfgfile" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" - - "github.com/stretchr/testify/assert" -) - -type mockRunner struct { - mutex sync.Mutex - config *common.Config - meta *common.MapStrPointer - started, stopped bool -} - -func (m *mockRunner) Start() { - m.mutex.Lock() - defer m.mutex.Unlock() - m.started = true -} -func (m *mockRunner) Stop() { - m.mutex.Lock() - defer m.mutex.Unlock() - m.stopped = true -} -func (m *mockRunner) Clone() *mockRunner { - m.mutex.Lock() - defer m.mutex.Unlock() - return &mockRunner{ - config: m.config, - meta: m.meta, - started: m.started, - stopped: m.stopped, - } -} -func (m *mockRunner) String() string { - m.mutex.Lock() - defer m.mutex.Unlock() - return "runner" -} - -type mockAdapter struct { - mutex sync.Mutex - configs []*common.Config - runners []*mockRunner -} - -// CreateConfig generates a valid list of configs from the given event, the received event will have all keys defined by `StartFilter` -func (m *mockAdapter) CreateConfig(bus.Event) ([]*common.Config, error) { - return m.configs, nil -} - -// CheckConfig tests given config to check if it will work or not, returns errors in case it won't work -func (m *mockAdapter) CheckConfig(*common.Config) error { - return nil -} - -func (m *mockAdapter) Create(_ beat.Pipeline, config *common.Config, meta *common.MapStrPointer) (cfgfile.Runner, error) { - runner := &mockRunner{ - config: config, - meta: meta, - } - m.mutex.Lock() - defer m.mutex.Unlock() - m.runners = append(m.runners, runner) - return runner, nil -} - -func (m *mockAdapter) Runners() []*mockRunner { - m.mutex.Lock() - defer m.mutex.Unlock() - var res []*mockRunner - for _, r := range m.runners { - res = append(res, r.Clone()) - } - return res -} - -func (m *mockAdapter) EventFilter() []string { - return []string{"meta"} -} - -type mockProvider struct{} - -// Start the autodiscover process, send all configured events to the bus -func (d *mockProvider) Start() {} - -// Stop the autodiscover process -func (d *mockProvider) Stop() {} - -func (d *mockProvider) String() string { - return "mock" -} - -func TestNilAutodiscover(t *testing.T) { - var autodiscover *Autodiscover - autodiscover.Start() - autodiscover.Stop() -} - -func TestAutodiscover(t *testing.T) { - // Register mock autodiscover provider - busChan := make(chan bus.Bus, 1) - Registry = NewRegistry() - Registry.AddProvider("mock", func(b bus.Bus, c *common.Config) (Provider, error) { - // intercept bus to mock events - busChan <- b - - return &mockProvider{}, nil - }) - - // Create a mock adapter - runnerConfig, _ := common.NewConfigFrom(map[string]string{ - "runner": "1", - }) - adapter := mockAdapter{ - configs: []*common.Config{runnerConfig}, - } - - // and settings: - providerConfig, _ := common.NewConfigFrom(map[string]string{ - "type": "mock", - }) - config := Config{ - Providers: []*common.Config{providerConfig}, - } - - // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &config) - if err != nil { - t.Fatal(err) - } - - // Start it - autodiscover.Start() - defer autodiscover.Stop() - eventBus := <-busChan - - // Test start event - eventBus.Publish(bus.Event{ - "start": true, - "meta": common.MapStr{ - "foo": "bar", - }, - }) - time.Sleep(10 * time.Millisecond) - runners := adapter.Runners() - assert.Equal(t, len(runners), 1) - assert.Equal(t, runners[0].meta.Get()["foo"], "bar") - assert.True(t, runners[0].started) - assert.False(t, runners[0].stopped) - - // Test update - eventBus.Publish(bus.Event{ - "start": true, - "meta": common.MapStr{ - "foo": "baz", - }, - }) - time.Sleep(10 * time.Millisecond) - runners = adapter.Runners() - assert.Equal(t, len(runners), 1) - assert.Equal(t, runners[0].meta.Get()["foo"], "baz") // meta is updated - assert.True(t, runners[0].started) - assert.False(t, runners[0].stopped) - - // Test stop/start - eventBus.Publish(bus.Event{ - "stop": true, - "meta": common.MapStr{ - "foo": "baz", - }, - }) - eventBus.Publish(bus.Event{ - "start": true, - "meta": common.MapStr{ - "foo": "baz", - }, - }) - time.Sleep(10 * time.Millisecond) - runners = adapter.Runners() - assert.Equal(t, len(runners), 2) - assert.True(t, runners[0].stopped) - assert.Equal(t, runners[1].meta.Get()["foo"], "baz") - assert.True(t, runners[1].started) - assert.False(t, runners[1].stopped) - - // Test stop event - eventBus.Publish(bus.Event{ - "stop": true, - "meta": common.MapStr{ - "foo": "baz", - }, - }) - time.Sleep(10 * time.Millisecond) - runners = adapter.Runners() - assert.Equal(t, len(runners), 2) - assert.Equal(t, runners[1].meta.Get()["foo"], "baz") - assert.True(t, runners[1].started) - assert.True(t, runners[1].stopped) -} - -func TestAutodiscoverHash(t *testing.T) { - // Register mock autodiscover provider - busChan := make(chan bus.Bus, 1) - - Registry = NewRegistry() - Registry.AddProvider("mock", func(b bus.Bus, c *common.Config) (Provider, error) { - // intercept bus to mock events - busChan <- b - - return &mockProvider{}, nil - }) - - // Create a mock adapter - runnerConfig1, _ := common.NewConfigFrom(map[string]string{ - "runner": "1", - }) - runnerConfig2, _ := common.NewConfigFrom(map[string]string{ - "runner": "2", - }) - adapter := mockAdapter{ - configs: []*common.Config{runnerConfig1, runnerConfig2}, - } - - // and settings: - providerConfig, _ := common.NewConfigFrom(map[string]string{ - "type": "mock", - }) - config := Config{ - Providers: []*common.Config{providerConfig}, - } - - // Create autodiscover manager - autodiscover, err := NewAutodiscover("test", nil, &adapter, &config) - if err != nil { - t.Fatal(err) - } - - // Start it - autodiscover.Start() - defer autodiscover.Stop() - eventBus := <-busChan - - // Test start event - eventBus.Publish(bus.Event{ - "start": true, - "meta": common.MapStr{ - "foo": "bar", - }, - }) - time.Sleep(10 * time.Millisecond) - runners := adapter.Runners() - assert.Equal(t, len(runners), 2) - assert.Equal(t, runners[0].meta.Get()["foo"], "bar") - assert.True(t, runners[0].started) - assert.False(t, runners[0].stopped) - assert.Equal(t, runners[1].meta.Get()["foo"], "bar") - assert.True(t, runners[1].started) - assert.False(t, runners[1].stopped) -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder.go index f485746e..6569758a 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( @@ -54,7 +71,7 @@ func (r *registry) GetBuilder(name string) BuilderConstructor { return r.builders[name] } -// BuildBuilder reads provider configuration and instatiate one +// BuildBuilder reads provider configuration and instantiate one func (r *registry) BuildBuilder(c *common.Config) (Builder, error) { var config BuilderConfig err := c.Unpack(&config) @@ -70,7 +87,7 @@ func (r *registry) BuildBuilder(c *common.Config) (Builder, error) { return builder(c) } -// GetConfig creates configs for all builders initalized. +// GetConfig creates configs for all builders initialized. func (b Builders) GetConfig(event bus.Event) []*common.Config { var configs []*common.Config diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go index 7a9be7e8..e8a81cfd 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper.go @@ -1,11 +1,31 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 builder import ( + "encoding/json" "fmt" + "sort" "strconv" "strings" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" ) // GetContainerID returns the id of a container @@ -51,6 +71,43 @@ func GetHintAsList(hints common.MapStr, key, config string) []string { return nil } +// GetProcessors gets processor definitions from the hints and returns a list of configs as a MapStr +func GetProcessors(hints common.MapStr, key string) []common.MapStr { + rawProcs := GetHintMapStr(hints, key, "processors") + if rawProcs == nil { + return nil + } + + var words, nums []string + + for key := range rawProcs { + if _, err := strconv.Atoi(key); err != nil { + words = append(words, key) + continue + } else { + nums = append(nums, key) + } + } + + sort.Strings(nums) + + var configs []common.MapStr + for _, key := range nums { + rawCfg, _ := rawProcs[key] + if config, ok := rawCfg.(common.MapStr); ok { + configs = append(configs, config) + } + } + + for _, word := range words { + configs = append(configs, common.MapStr{ + word: rawProcs[word], + }) + } + + return configs +} + func getStringAsList(input string) []string { if input == "" { return []string{} @@ -64,6 +121,29 @@ func getStringAsList(input string) []string { return list } +// GetHintAsConfigs can read a hint in the form of a stringified JSON and return a common.MapStr +func GetHintAsConfigs(hints common.MapStr, key string) []common.MapStr { + if str := GetHintString(hints, key, "raw"); str != "" { + // check if it is a single config + if str[0] != '[' { + cfg := common.MapStr{} + if err := json.Unmarshal([]byte(str), &cfg); err != nil { + logp.Debug("autodiscover.builder", "unable to unmarshal json due to error: %v", err) + return nil + } + return []common.MapStr{cfg} + } + + cfg := []common.MapStr{} + if err := json.Unmarshal([]byte(str), &cfg); err != nil { + logp.Debug("autodiscover.builder", "unable to unmarshal json due to error: %v", err) + return nil + } + return cfg + } + return nil +} + // IsNoOp is a big red button to prevent spinning up Runners in case of issues. func IsNoOp(hints common.MapStr, key string) bool { if value, err := hints.GetValue(fmt.Sprintf("%s.disable", key)); err == nil { diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper_test.go deleted file mode 100644 index 740f2ecb..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/helper_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package builder - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestGenerateHints(t *testing.T) { - tests := []struct { - annotations map[string]string - result common.MapStr - }{ - // Empty annotations should return empty hints - { - annotations: map[string]string{}, - result: common.MapStr{}, - }, - - // Scenarios being tested: - // logs/multiline.pattern must be a nested common.MapStr under hints.logs - // metrics/module must be found in hints.metrics - // not.to.include must not be part of hints - // period is annotated at both container and pod level. Container level value must be in hints - { - annotations: map[string]string{ - "co.elastic.logs/multiline.pattern": "^test", - "co.elastic.metrics/module": "prometheus", - "co.elastic.metrics/period": "10s", - "co.elastic.metrics.foobar/period": "15s", - "co.elastic.metrics.foobar1/period": "15s", - "not.to.include": "true", - }, - result: common.MapStr{ - "logs": common.MapStr{ - "multiline": common.MapStr{ - "pattern": "^test", - }, - }, - "metrics": common.MapStr{ - "module": "prometheus", - "period": "15s", - }, - }, - }, - } - - for _, test := range tests { - annMap := common.MapStr{} - for k, v := range test.annotations { - annMap.Put(k, v) - } - assert.Equal(t, GenerateHints(annMap, "foobar", "co.elastic"), test.result) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/plugin.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/plugin.go index 165b7a62..87f33cda 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/plugin.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 builder import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/builder_test.go deleted file mode 100644 index 23da96a0..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/builder_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package autodiscover - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" -) - -type fakeBuilder struct{} - -func (f *fakeBuilder) CreateConfig(event bus.Event) []*common.Config { - return []*common.Config{common.NewConfig()} -} - -func newFakeBuilder(_ *common.Config) (Builder, error) { - return &fakeBuilder{}, nil -} - -func TestBuilderRegistry(t *testing.T) { - // Add a new builder - reg := NewRegistry() - reg.AddBuilder("fake", newFakeBuilder) - - // Check if that builder is available in registry - b := reg.GetBuilder("fake") - assert.NotNil(t, b) - - // Generate a config with type fake - config := BuilderConfig{ - Type: "fake", - } - - cfg, err := common.NewConfigFrom(&config) - - // Make sure that config building doesn't fail - assert.Nil(t, err) - - builder, err := reg.BuildBuilder(cfg) - assert.Nil(t, err) - assert.NotNil(t, builder) - - // Try to create a config with fake builder and assert length - // of configs returned is one - res := builder.CreateConfig(nil) - assert.Equal(t, len(res), 1) - - builders := Builders{} - builders = append(builders, builder) - - // Try using builders object for the same as above and expect - // the same result - res = builders.GetConfig(nil) - assert.Equal(t, len(res), 1) -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/config.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/config.go index 89bbc8b5..d139b127 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/config.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/config.go @@ -1,8 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/processors" + "github.com/elastic/beats/libbeat/conditions" ) // Config settings for Autodiscover @@ -22,6 +39,6 @@ type BuilderConfig struct { // AppenderConfig settings type AppenderConfig struct { - Type string `config:"type"` - ConditionConfig *processors.ConditionConfig `config:"condition"` + Type string `config:"type"` + ConditionConfig *conditions.Config `config:"condition"` } diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/meta/meta.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/meta/meta.go index 7757bce4..28464dfd 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/meta/meta.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/meta/meta.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 meta import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/meta/meta_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/meta/meta_test.go deleted file mode 100644 index 83743533..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/meta/meta_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package meta - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -func TestStoreNil(t *testing.T) { - m := NewMap() - assert.Equal(t, common.MapStrPointer{}, m.Store(0, nil)) -} - -func TestStore(t *testing.T) { - m := NewMap() - - // Store meta - res := m.Store(0, common.MapStr{"foo": "bar"}) - assert.Equal(t, res.Get(), common.MapStr{"foo": "bar"}) - - // Update it - res = m.Store(0, common.MapStr{"foo": "baz"}) - assert.Equal(t, res.Get(), common.MapStr{"foo": "baz"}) - - m.Remove(0) - assert.Equal(t, len(m.meta), 0) -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/provider.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/provider.go index 417bee45..df1ba4d8 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/provider.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/provider.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( @@ -50,7 +67,7 @@ func (r *registry) GetProvider(name string) ProviderBuilder { return r.providers[name] } -// BuildProvider reads provider configuration and instatiate one +// BuildProvider reads provider configuration and instantiate one func (r *registry) BuildProvider(bus bus.Bus, c *common.Config) (Provider, error) { var config ProviderConfig err := c.Unpack(&config) diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/config.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/config.go index 6c8d000c..0b76887a 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/config.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker.go index af83f3a9..4f9478c4 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( @@ -109,7 +126,6 @@ func (d *Provider) emitContainer(event bus.Event, flag string) { if len(container.IPAddresses) > 0 { host = container.IPAddresses[0] } - labelMap := common.MapStr{} for k, v := range container.Labels { safemapstr.Put(labelMap, k, v) diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker_integration_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker_integration_test.go deleted file mode 100644 index 1facd50e..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker_integration_test.go +++ /dev/null @@ -1,91 +0,0 @@ -// +build integration - -package docker - -import ( - "testing" - "time" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" - dk "github.com/elastic/beats/libbeat/tests/docker" - - "github.com/stretchr/testify/assert" -) - -// Test docker start emits an autodiscover event -func TestDockerStart(t *testing.T) { - d, err := dk.NewClient() - if err != nil { - t.Fatal(err) - } - - bus := bus.New("test") - config := common.NewConfig() - provider, err := AutodiscoverBuilder(bus, config) - if err != nil { - t.Fatal(err) - } - - provider.Start() - defer provider.Stop() - - listener := bus.Subscribe() - defer listener.Stop() - - // Start - cmd := []string{"echo", "Hi!"} - labels := map[string]string{"label": "foo", "label.child": "bar"} - ID, err := d.ContainerStart("busybox", cmd, labels) - if err != nil { - t.Fatal(err) - } - checkEvent(t, listener, true) - - // Kill - d.ContainerKill(ID) - checkEvent(t, listener, false) -} - -func getValue(e bus.Event, key string) interface{} { - val, err := common.MapStr(e).GetValue(key) - if err != nil { - return nil - } - return val -} - -func checkEvent(t *testing.T, listener bus.Listener, start bool) { - for { - select { - case e := <-listener.Events(): - // Ignore any other container - if getValue(e, "docker.container.image") != "busybox" { - continue - } - if start { - assert.Equal(t, getValue(e, "start"), true) - assert.Nil(t, getValue(e, "stop")) - } else { - assert.Equal(t, getValue(e, "stop"), true) - assert.Nil(t, getValue(e, "start")) - } - assert.Equal(t, getValue(e, "docker.container.image"), "busybox") - assert.Equal(t, getValue(e, "docker.container.labels"), common.MapStr{ - "label": common.MapStr{ - "value": "foo", - "child": "bar", - }, - }) - assert.NotNil(t, getValue(e, "docker.container.id")) - assert.NotNil(t, getValue(e, "docker.container.name")) - assert.NotNil(t, getValue(e, "host")) - assert.Equal(t, getValue(e, "docker"), getValue(e, "meta.docker")) - return - - case <-time.After(10 * time.Second): - t.Fatal("Timeout waiting for provider events") - return - } - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker_test.go deleted file mode 100644 index 91c8cc04..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/docker/docker_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package docker - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" -) - -func TestGenerateHints(t *testing.T) { - tests := []struct { - event bus.Event - result bus.Event - }{ - // Empty events should return empty hints - { - event: bus.Event{}, - result: bus.Event{}, - }, - // Docker meta must be present in the hints - { - event: bus.Event{ - "docker": common.MapStr{ - "container": common.MapStr{ - "id": "abc", - "name": "foobar", - }, - }, - }, - result: bus.Event{ - "container": common.MapStr{ - "id": "abc", - "name": "foobar", - }, - }, - }, - // Docker labels are testing with the following scenarios - // do.not.include must not be part of the hints - // logs/disable should be present in hints.logs.disable=true - { - event: bus.Event{ - "docker": common.MapStr{ - "container": common.MapStr{ - "id": "abc", - "name": "foobar", - "labels": getNestedAnnotations(common.MapStr{ - "do.not.include": "true", - "co.elastic.logs/disable": "true", - }), - }, - }, - }, - result: bus.Event{ - "container": common.MapStr{ - "id": "abc", - "name": "foobar", - "labels": getNestedAnnotations(common.MapStr{ - "do.not.include": "true", - "co.elastic.logs/disable": "true", - }), - }, - "hints": common.MapStr{ - "logs": common.MapStr{ - "disable": "true", - }, - }, - }, - }, - } - - cfg := defaultConfig() - - p := Provider{ - config: cfg, - } - for _, test := range tests { - assert.Equal(t, p.generateHints(test.event), test.result) - } -} - -func getNestedAnnotations(in common.MapStr) common.MapStr { - out := common.MapStr{} - - for k, v := range in { - out.Put(k, v) - } - return out -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/config.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/config.go index 2df5d7ed..7bde0b93 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/config.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jolokia import ( @@ -16,7 +33,7 @@ var ( // Config for Jolokia Discovery autodiscover provider type Config struct { // List of network interfaces to use for discovery probes - Interfaces []InterfaceConfig `config:"interfaces" validate:"nonzero"` + Interfaces []InterfaceConfig `config:"interfaces,replace" validate:"nonzero"` Builders []*common.Config `config:"builders"` Appenders []*common.Config `config:"appenders"` diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/config_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/config_test.go deleted file mode 100644 index dc324e71..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/config_test.go +++ /dev/null @@ -1,80 +0,0 @@ -package jolokia - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestInterfaceConfigsUnpack(t *testing.T) { - cases := []struct { - Description string - Config map[string]interface{} - Valid bool - }{ - { - Description: "interface without name", - Config: map[string]interface{}{}, - Valid: false, - }, - { - Description: "interface with empty name", - Config: map[string]interface{}{ - "name": "", - }, - Valid: false, - }, - { - Description: "interface with zero interval", - Config: map[string]interface{}{ - "name": "br0", - "interval": "0s", - }, - Valid: false, - }, - { - Description: "valid interface", - Config: map[string]interface{}{ - "name": "br0", - "interval": "100s", - }, - Valid: true, - }, - } - - for _, c := range cases { - var ic InterfaceConfig - config, err := common.NewConfigFrom(c.Config) - if !assert.NoError(t, err, c.Description) { - continue - } - err = config.Unpack(&ic) - if c.Valid { - assert.NoError(t, err, c.Description) - } else { - assert.Error(t, err, c.Description) - } - } -} - -func TestDefaultConfigUnpack(t *testing.T) { - rawConfig, err := common.NewConfigFrom(map[string]interface{}{}) - assert.NoError(t, err) - config := defaultConfig() - err = rawConfig.Unpack(&config) - assert.NoError(t, err) - assert.NotEmpty(t, config.Interfaces) - assert.NotEmpty(t, config.Interfaces[0].Name) -} - -func TestConfigUnpackEmptyInterfaces(t *testing.T) { - rawConfig, err := common.NewConfigFrom(map[string]interface{}{ - "interfaces": []interface{}{}, - }) - assert.NoError(t, err) - config := defaultConfig() - err = rawConfig.Unpack(&config) - assert.Error(t, err) -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/discovery.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/discovery.go index 8416cc41..fc704daf 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/discovery.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/discovery.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jolokia import ( @@ -41,14 +58,14 @@ import ( // Message contains the information of a Jolokia Discovery message var messageSchema = s.Schema{ "agent": s.Object{ - "id": c.Str("agent_id"), - "version": c.Str("agent_version", s.Optional), + "id": c.Str("agent_id", s.Required), + "version": c.Str("agent_version"), }, - "secured": c.Bool("secured", s.Optional), + "secured": c.Bool("secured"), "server": s.Object{ - "product": c.Str("server_product", s.Optional), - "vendor": c.Str("server_vendor", s.Optional), - "version": c.Str("server_version", s.Optional), + "product": c.Str("server_product"), + "vendor": c.Str("server_vendor"), + "version": c.Str("server_version"), }, "url": c.Str("url"), } @@ -228,7 +245,11 @@ func (d *Discovery) sendProbe(config InterfaceConfig) { logp.Err(err.Error()) continue } - message, _ := messageSchema.Apply(m) + message, err := messageSchema.Apply(m, s.FailOnRequired) + if err != nil { + logp.Err(err.Error()) + continue + } d.update(config, message) } }() diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/jolokia.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/jolokia.go index 9e185464..57f764ae 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/jolokia.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/jolokia/jolokia.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jolokia import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/config.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/config.go index 038d1688..5ba5f789 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/config.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes.go index d3b3880f..c2f3b133 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes import ( @@ -119,9 +136,9 @@ func (p *Provider) emit(pod *kubernetes.Pod, flag string) { p.emitEvents(pod, flag, pod.Spec.InitContainers, pod.Status.InitContainerStatuses) } -func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []kubernetes.Container, - containerstatuses []kubernetes.PodContainerStatus) { - host := pod.Status.PodIP +func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []*kubernetes.Container, + containerstatuses []*kubernetes.PodContainerStatus) { + host := pod.Status.GetPodIP() // Do not emit events without host (container is still being configured) if host == "" { @@ -132,20 +149,27 @@ func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []kub containerIDs := map[string]string{} runtimes := map[string]string{} for _, c := range containerstatuses { - cid, runtime := c.GetContainerIDWithRuntime() - containerIDs[c.Name] = cid - runtimes[c.Name] = runtime + cid, runtime := kubernetes.ContainerIDWithRuntime(c) + containerIDs[c.GetName()] = cid + runtimes[c.GetName()] = runtime } // Emit container and port information for _, c := range containers { + cid := containerIDs[c.GetName()] + + // If there is a container ID that is empty then ignore it. It either means that the container is still starting + // up or the container is shutting down. + if cid == "" { + continue + } cmeta := common.MapStr{ - "id": containerIDs[c.Name], - "name": c.Name, - "image": c.Image, - "runtime": runtimes[c.Name], + "id": cid, + "name": c.GetName(), + "image": c.GetImage(), + "runtime": runtimes[c.GetName()], } - meta := p.metagen.ContainerMetadata(pod, c.Name) + meta := p.metagen.ContainerMetadata(pod, c.GetName()) // Information that can be used in discovering a workload kubemeta := meta.Clone() @@ -175,7 +199,7 @@ func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []kub event := bus.Event{ flag: true, "host": host, - "port": port.ContainerPort, + "port": port.GetContainerPort(), "kubernetes": kubemeta, "meta": common.MapStr{ "kubernetes": meta, diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes_test.go deleted file mode 100644 index 4a005597..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/kubernetes/kubernetes_test.go +++ /dev/null @@ -1,276 +0,0 @@ -package kubernetes - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/autodiscover/template" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" - "github.com/elastic/beats/libbeat/common/kubernetes" -) - -func TestGenerateHints(t *testing.T) { - tests := []struct { - event bus.Event - result bus.Event - }{ - // Empty events should return empty hints - { - event: bus.Event{}, - result: bus.Event{}, - }, - // Only kubernetes payload must return only kubernetes as part of the hint - { - event: bus.Event{ - "kubernetes": common.MapStr{ - "pod": common.MapStr{ - "name": "foobar", - }, - }, - }, - result: bus.Event{ - "kubernetes": common.MapStr{ - "pod": common.MapStr{ - "name": "foobar", - }, - }, - }, - }, - // Kubernetes payload with container info must be bubbled to top level - { - event: bus.Event{ - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - "runtime": "rkt", - }, - }, - }, - result: bus.Event{ - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - "runtime": "rkt", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - "runtime": "rkt", - }, - }, - }, - // Scenarios being tested: - // logs/multiline.pattern must be a nested common.MapStr under hints.logs - // metrics/module must be found in hints.metrics - // not.to.include must not be part of hints - // period is annotated at both container and pod level. Container level value must be in hints - { - event: bus.Event{ - "kubernetes": common.MapStr{ - "annotations": getNestedAnnotations(common.MapStr{ - "co.elastic.logs/multiline.pattern": "^test", - "co.elastic.metrics/module": "prometheus", - "co.elastic.metrics/period": "10s", - "co.elastic.metrics.foobar/period": "15s", - "not.to.include": "true", - }), - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - "runtime": "docker", - }, - }, - }, - result: bus.Event{ - "kubernetes": common.MapStr{ - "annotations": getNestedAnnotations(common.MapStr{ - "co.elastic.logs/multiline.pattern": "^test", - "co.elastic.metrics/module": "prometheus", - "not.to.include": "true", - "co.elastic.metrics/period": "10s", - "co.elastic.metrics.foobar/period": "15s", - }), - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - "runtime": "docker", - }, - }, - "hints": common.MapStr{ - "logs": common.MapStr{ - "multiline": common.MapStr{ - "pattern": "^test", - }, - }, - "metrics": common.MapStr{ - "module": "prometheus", - "period": "15s", - }, - }, - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - "runtime": "docker", - }, - }, - }, - } - - cfg := defaultConfig() - - p := Provider{ - config: cfg, - } - for _, test := range tests { - assert.Equal(t, p.generateHints(test.event), test.result) - } -} - -func TestEmitEvent(t *testing.T) { - tests := []struct { - Message string - Flag string - Pod *kubernetes.Pod - Expected bus.Event - }{ - { - Message: "Test common pod start", - Flag: "start", - Pod: &kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: "filebeat", - Namespace: "default", - Labels: map[string]string{}, - Annotations: map[string]string{}, - }, - Status: kubernetes.PodStatus{ - PodIP: "127.0.0.1", - ContainerStatuses: []kubernetes.PodContainerStatus{ - { - Name: "filebeat", - ContainerID: "docker://foobar", - }, - }, - }, - Spec: kubernetes.PodSpec{ - NodeName: "node", - Containers: []kubernetes.Container{ - { - Image: "elastic/filebeat:6.3.0", - Name: "filebeat", - }, - }, - }, - }, - Expected: bus.Event{ - "start": true, - "host": "127.0.0.1", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "id": "foobar", - "name": "filebeat", - "image": "elastic/filebeat:6.3.0", - "runtime": "docker", - }, - "pod": common.MapStr{ - "name": "filebeat", - }, - "node": common.MapStr{ - "name": "node", - }, - "namespace": "default", - "annotations": common.MapStr{}, - }, - "meta": common.MapStr{ - "kubernetes": common.MapStr{ - "namespace": "default", - "container": common.MapStr{ - "name": "filebeat", - }, "pod": common.MapStr{ - "name": "filebeat", - }, "node": common.MapStr{ - "name": "node", - }, - }, - }, - }, - }, - { - Message: "Test pod without host", - Flag: "start", - Pod: &kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: "filebeat", - Namespace: "default", - Labels: map[string]string{}, - Annotations: map[string]string{}, - }, - Status: kubernetes.PodStatus{ - ContainerStatuses: []kubernetes.PodContainerStatus{ - { - Name: "filebeat", - ContainerID: "docker://foobar", - }, - }, - }, - Spec: kubernetes.PodSpec{ - NodeName: "node", - Containers: []kubernetes.Container{ - { - Image: "elastic/filebeat:6.3.0", - Name: "filebeat", - }, - }, - }, - }, - Expected: nil, - }, - } - - for _, test := range tests { - mapper, err := template.NewConfigMapper(nil) - if err != nil { - t.Fatal(err) - } - - metaGen, err := kubernetes.NewMetaGenerator(common.NewConfig()) - if err != nil { - t.Fatal(err) - } - - p := &Provider{ - config: defaultConfig(), - bus: bus.New("test"), - metagen: metaGen, - templates: mapper, - } - - listener := p.bus.Subscribe() - - p.emit(test.Pod, test.Flag) - - select { - case event := <-listener.Events(): - assert.Equal(t, test.Expected, event) - case <-time.After(2 * time.Second): - if test.Expected != nil { - t.Fatal("Timeout while waiting for event") - } - } - } -} - -func getNestedAnnotations(in common.MapStr) common.MapStr { - out := common.MapStr{} - - for k, v := range in { - out.Put(k, v) - } - return out -} diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/plugin.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/plugin.go index cfdc88a7..6ace05aa 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/plugin.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/providers/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 providers import ( diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/registry.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/registry.go index 65bc6ca7..038288fc 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/registry.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import "sync" diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/template/config.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/template/config.go index eee88659..5f5359b7 100644 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/template/config.go +++ b/vendor/github.com/elastic/beats/libbeat/autodiscover/template/config.go @@ -1,12 +1,28 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 template import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/bus" + "github.com/elastic/beats/libbeat/conditions" "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/processors" - - ucfg "github.com/elastic/go-ucfg" + "github.com/elastic/go-ucfg" ) // Mapper maps config templates with conditions, if a match happens on a discover event @@ -15,21 +31,21 @@ type Mapper []*ConditionMap // ConditionMap maps a condition to the configs to use when it's triggered type ConditionMap struct { - Condition *processors.Condition + Condition conditions.Condition Configs []*common.Config } // MapperSettings holds user settings to build Mapper type MapperSettings []*struct { - ConditionConfig *processors.ConditionConfig `config:"condition"` - Configs []*common.Config `config:"config"` + ConditionConfig *conditions.Config `config:"condition"` + Configs []*common.Config `config:"config"` } // NewConfigMapper builds a template Mapper from given settings func NewConfigMapper(configs MapperSettings) (*Mapper, error) { var mapper Mapper for _, c := range configs { - condition, err := processors.NewCondition(c.ConditionConfig) + condition, err := conditions.NewCondition(c.ConditionConfig) if err != nil { return nil, err } diff --git a/vendor/github.com/elastic/beats/libbeat/autodiscover/template/config_test.go b/vendor/github.com/elastic/beats/libbeat/autodiscover/template/config_test.go deleted file mode 100644 index e6895fa3..00000000 --- a/vendor/github.com/elastic/beats/libbeat/autodiscover/template/config_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package template - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" - - "github.com/stretchr/testify/assert" -) - -func TestConfigsMapping(t *testing.T) { - config, _ := common.NewConfigFrom(map[string]interface{}{ - "correct": "config", - }) - - tests := []struct { - mapping string - event bus.Event - expected []*common.Config - }{ - // No match - { - mapping: ` -- condition.equals: - foo: 3 - config: - - type: config1`, - event: bus.Event{ - "foo": "no match", - }, - expected: nil, - }, - // Match config - { - mapping: ` -- condition.equals: - foo: 3 - config: - - correct: config`, - event: bus.Event{ - "foo": 3, - }, - expected: []*common.Config{config}, - }, - } - - for _, test := range tests { - var mappings MapperSettings - config, err := common.NewConfigWithYAML([]byte(test.mapping), "") - if err != nil { - t.Fatal(err) - } - - if err := config.Unpack(&mappings); err != nil { - t.Fatal(err) - } - - mapper, err := NewConfigMapper(mappings) - if err != nil { - t.Fatal(err) - } - - res := mapper.GetConfig(test.event) - assert.Equal(t, test.expected, res) - } -} - -func TestNilConditionConfig(t *testing.T) { - var mappings MapperSettings - data := ` -- config: - - type: config1` - config, err := common.NewConfigWithYAML([]byte(data), "") - if err != nil { - t.Fatal(err) - } - - if err := config.Unpack(&mappings); err != nil { - t.Fatal(err) - } - - _, err = NewConfigMapper(mappings) - assert.Error(t, err) -} diff --git a/vendor/github.com/elastic/beats/libbeat/beat/beat.go b/vendor/github.com/elastic/beats/libbeat/beat/beat.go index e25b023d..84e8c428 100644 --- a/vendor/github.com/elastic/beats/libbeat/beat/beat.go +++ b/vendor/github.com/elastic/beats/libbeat/beat/beat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beat import ( diff --git a/vendor/github.com/elastic/beats/libbeat/beat/error.go b/vendor/github.com/elastic/beats/libbeat/beat/error.go index 14a74ddd..ab92b36a 100644 --- a/vendor/github.com/elastic/beats/libbeat/beat/error.go +++ b/vendor/github.com/elastic/beats/libbeat/beat/error.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beat import "errors" diff --git a/vendor/github.com/elastic/beats/libbeat/beat/event.go b/vendor/github.com/elastic/beats/libbeat/beat/event.go index c3a71d38..8b25349e 100644 --- a/vendor/github.com/elastic/beats/libbeat/beat/event.go +++ b/vendor/github.com/elastic/beats/libbeat/beat/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beat import ( diff --git a/vendor/github.com/elastic/beats/libbeat/beat/info.go b/vendor/github.com/elastic/beats/libbeat/beat/info.go index 36fe041d..5f24c8cd 100644 --- a/vendor/github.com/elastic/beats/libbeat/beat/info.go +++ b/vendor/github.com/elastic/beats/libbeat/beat/info.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beat import "github.com/satori/go.uuid" diff --git a/vendor/github.com/elastic/beats/libbeat/beat/pipeline.go b/vendor/github.com/elastic/beats/libbeat/beat/pipeline.go index 6780df92..823ae8de 100644 --- a/vendor/github.com/elastic/beats/libbeat/beat/pipeline.go +++ b/vendor/github.com/elastic/beats/libbeat/beat/pipeline.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beat import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/cfgfile.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/cfgfile.go index 66459e04..13407864 100644 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/cfgfile.go +++ b/vendor/github.com/elastic/beats/libbeat/cfgfile/cfgfile.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgfile import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/cfgfile_test.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/cfgfile_test.go deleted file mode 100644 index 74d104df..00000000 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/cfgfile_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// +build !integration - -package cfgfile - -import ( - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" -) - -type TestConfig struct { - Output ElasticsearchConfig - Env string `config:"env.test_key"` - EnvDefault string `config:"env.default"` -} - -type ElasticsearchConfig struct { - Elasticsearch Connection -} - -type Connection struct { - Port int - Host string -} - -func TestRead(t *testing.T) { - absPath, err := filepath.Abs("../tests/files/") - os.Setenv("TEST_KEY", "test_value") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - config := &TestConfig{} - - if err = Read(config, absPath+"/config.yml"); err != nil { - t.Fatal(err) - } - - // validate - assert.Equal(t, "localhost", config.Output.Elasticsearch.Host) - assert.Equal(t, 9200, config.Output.Elasticsearch.Port) - assert.Equal(t, "test_value", config.Env) - assert.Equal(t, "default", config.EnvDefault) -} diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_manager.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_manager.go index 95c131f6..0a90357b 100644 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_manager.go +++ b/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_manager.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgfile import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_manager_test.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_manager_test.go deleted file mode 100644 index b709af86..00000000 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_manager_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package cfgfile - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestGlobManagerInit(t *testing.T) { - // Wrong settings return error - manager, err := NewGlobManager("dir/*.yml", ".noyml", ".disabled") - assert.Error(t, err) - assert.Nil(t, manager) -} - -func TestGlobManager(t *testing.T) { - // Create random temp directory - dir, err := ioutil.TempDir("", "glob_manager") - defer os.RemoveAll(dir) - if err != nil { - t.Fatal(err) - } - - // Prepare scenario: - content := []byte("test\n") - err = ioutil.WriteFile(dir+"/config1.yml", content, 0644) - assert.NoError(t, err) - err = ioutil.WriteFile(dir+"/config2.yml", content, 0644) - assert.NoError(t, err) - err = ioutil.WriteFile(dir+"/config3.yml.disabled", content, 0644) - assert.NoError(t, err) - - // Init Glob Manager - glob := dir + "/*.yml" - manager, err := NewGlobManager(glob, ".yml", ".disabled") - if err != nil { - t.Fatal(err) - } - - assert.True(t, manager.Exists("config1")) - assert.True(t, manager.Exists("config2")) - assert.True(t, manager.Exists("config3")) - assert.False(t, manager.Exists("config4")) - - assert.True(t, manager.Enabled("config1")) - assert.True(t, manager.Enabled("config2")) - assert.False(t, manager.Enabled("config3")) - - assert.Equal(t, len(manager.ListEnabled()), 2) - assert.Equal(t, len(manager.ListDisabled()), 1) - - // Test disable - if err = manager.Disable("config2"); err != nil { - t.Fatal(err) - } - - assert.Equal(t, len(manager.ListEnabled()), 1) - assert.Equal(t, len(manager.ListDisabled()), 2) - - enabled := manager.ListEnabled() - assert.Equal(t, enabled[0].Name, "config1") - assert.Equal(t, enabled[0].Enabled, true) - - // Test enable - if err = manager.Enable("config3"); err != nil { - t.Fatal(err) - } - - assert.Equal(t, len(manager.ListEnabled()), 2) - assert.Equal(t, len(manager.ListDisabled()), 1) - - disabled := manager.ListDisabled() - assert.Equal(t, disabled[0].Name, "config2") - assert.Equal(t, disabled[0].Enabled, false) - - // Check correct files layout: - files, err := filepath.Glob(dir + "/*") - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, files, []string{ - filepath.Join(dir, "config1.yml"), - filepath.Join(dir, "config2.yml.disabled"), - filepath.Join(dir, "config3.yml"), - }) -} diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_watcher.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_watcher.go index d925f05b..2aff04ad 100644 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_watcher.go +++ b/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_watcher.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgfile import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_watcher_test.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_watcher_test.go deleted file mode 100644 index f1ea1801..00000000 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/glob_watcher_test.go +++ /dev/null @@ -1,58 +0,0 @@ -package cfgfile - -import ( - "io/ioutil" - "math/rand" - "os" - "strconv" - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestGlobWatcher(t *testing.T) { - // Create random temp directory - id := strconv.Itoa(rand.New(rand.NewSource(int64(time.Now().Nanosecond()))).Int()) - dir, err := ioutil.TempDir("", id) - defer os.RemoveAll(dir) - assert.NoError(t, err) - glob := dir + "/*.yml" - - gcd := NewGlobWatcher(glob) - - content := []byte("test\n") - err = ioutil.WriteFile(dir+"/config1.yml", content, 0644) - assert.NoError(t, err) - err = ioutil.WriteFile(dir+"/config2.yml", content, 0644) - assert.NoError(t, err) - - // Make sure not inside compensation time - time.Sleep(2 * time.Second) - - files, changed, err := gcd.Scan() - assert.Equal(t, 2, len(files)) - assert.NoError(t, err) - assert.True(t, changed) - - files, changed, err = gcd.Scan() - assert.Equal(t, 2, len(files)) - assert.NoError(t, err) - assert.False(t, changed) - - err = ioutil.WriteFile(dir+"/config3.yml", content, 0644) - assert.NoError(t, err) - - files, changed, err = gcd.Scan() - assert.Equal(t, 3, len(files)) - assert.NoError(t, err) - assert.True(t, changed) - - err = os.Remove(dir + "/config3.yml") - assert.NoError(t, err) - - files, changed, err = gcd.Scan() - assert.Equal(t, 2, len(files)) - assert.NoError(t, err) - assert.True(t, changed) -} diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/list.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/list.go index 66af059e..67417d56 100644 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/list.go +++ b/vendor/github.com/elastic/beats/libbeat/cfgfile/list.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgfile import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/list_test.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/list_test.go deleted file mode 100644 index 390340aa..00000000 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/list_test.go +++ /dev/null @@ -1,166 +0,0 @@ -package cfgfile - -import ( - "testing" - - "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -type runner struct { - id int64 - started bool - stopped bool -} - -func (r *runner) Start() { r.started = true } -func (r *runner) Stop() { r.stopped = true } - -type runnerFactory struct{ runners []*runner } - -func (r *runnerFactory) Create(x beat.Pipeline, c *common.Config, meta *common.MapStrPointer) (Runner, error) { - config := struct { - ID int64 `config:"id"` - }{} - - err := c.Unpack(&config) - if err != nil { - return nil, err - } - - // id < 0 is an invalid config - if config.ID < 0 { - return nil, errors.New("Invalid config") - } - - runner := &runner{id: config.ID} - r.runners = append(r.runners, runner) - return runner, err -} - -func TestNewConfigs(t *testing.T) { - factory := &runnerFactory{} - list := NewRunnerList("", factory, nil) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(2), - createConfig(3), - }) - - assert.Equal(t, len(list.copyRunnerList()), 3) -} - -func TestReloadSameConfigs(t *testing.T) { - factory := &runnerFactory{} - list := NewRunnerList("", factory, nil) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(2), - createConfig(3), - }) - - state := list.copyRunnerList() - assert.Equal(t, len(state), 3) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(2), - createConfig(3), - }) - - // nothing changed - assert.Equal(t, state, list.copyRunnerList()) -} - -func TestReloadStopConfigs(t *testing.T) { - factory := &runnerFactory{} - list := NewRunnerList("", factory, nil) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(2), - createConfig(3), - }) - - assert.Equal(t, len(list.copyRunnerList()), 3) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(3), - }) - - assert.Equal(t, len(list.copyRunnerList()), 2) -} - -func TestReloadStartStopConfigs(t *testing.T) { - factory := &runnerFactory{} - list := NewRunnerList("", factory, nil) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(2), - createConfig(3), - }) - - state := list.copyRunnerList() - assert.Equal(t, len(state), 3) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(3), - createConfig(4), - }) - - assert.Equal(t, len(list.copyRunnerList()), 3) - assert.NotEqual(t, state, list.copyRunnerList()) -} - -func TestStopAll(t *testing.T) { - factory := &runnerFactory{} - list := NewRunnerList("", factory, nil) - - list.Reload([]*ConfigWithMeta{ - createConfig(1), - createConfig(2), - createConfig(3), - }) - - assert.Equal(t, len(list.copyRunnerList()), 3) - list.Stop() - assert.Equal(t, len(list.copyRunnerList()), 0) - - for _, r := range list.runners { - assert.False(t, r.(*runner).stopped) - } -} - -func TestHas(t *testing.T) { - factory := &runnerFactory{} - list := NewRunnerList("", factory, nil) - config := createConfig(1) - - hash, err := HashConfig(config.Config) - if err != nil { - t.Fatal(err) - } - - list.Reload([]*ConfigWithMeta{ - config, - }) - - assert.True(t, list.Has(hash)) - assert.False(t, list.Has(0)) -} - -func createConfig(id int64) *ConfigWithMeta { - c := common.NewConfig() - c.SetInt("id", -1, id) - return &ConfigWithMeta{ - Config: c, - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go b/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go index 228b4b42..7ac63f18 100644 --- a/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go +++ b/vendor/github.com/elastic/beats/libbeat/cfgfile/reload.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgfile import ( @@ -46,6 +63,7 @@ type Reload struct { type RunnerFactory interface { Create(p beat.Pipeline, config *common.Config, meta *common.MapStrPointer) (Runner, error) + CheckConfig(config *common.Config) error } type Runner interface { diff --git a/vendor/github.com/elastic/beats/libbeat/cloudid/cloudid.go b/vendor/github.com/elastic/beats/libbeat/cloudid/cloudid.go index fc5b3b6a..0a3c6392 100644 --- a/vendor/github.com/elastic/beats/libbeat/cloudid/cloudid.go +++ b/vendor/github.com/elastic/beats/libbeat/cloudid/cloudid.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cloudid contains functions for parsing the cloud.id and cloud.auth // settings and modifying the configuration to take them into account. package cloudid @@ -14,6 +31,8 @@ import ( "github.com/elastic/beats/libbeat/logp" ) +const defaultCloudPort = "443" + // OverwriteSettings modifies the received config object by overwriting the // output.elasticsearch.hosts, output.elasticsearch.username, output.elasticsearch.password, // setup.kibana.host settings based on values derived from the cloud.id and cloud.auth @@ -88,6 +107,16 @@ func OverwriteSettings(cfg *common.Config) error { return nil } +// extractPortFromName takes a string in the form `id:port` and returns the +// ID and the port. If there's no `:`, the default port is returned +func extractPortFromName(word string, defaultPort string) (id, port string) { + idx := strings.LastIndex(word, ":") + if idx >= 0 { + return word[:idx], word[idx+1:] + } + return word, defaultPort +} + // decodeCloudID decodes the cloud.id into elasticsearch-URL and kibana-URL func decodeCloudID(cloudID string) (string, string, error) { @@ -109,9 +138,14 @@ func decodeCloudID(cloudID string) (string, string, error) { return "", "", errors.Errorf("Expected at least 3 parts in %s", string(decoded)) } - // 4. form the URLs - esURL := url.URL{Scheme: "https", Host: fmt.Sprintf("%s.%s:443", words[1], words[0])} - kibanaURL := url.URL{Scheme: "https", Host: fmt.Sprintf("%s.%s:443", words[2], words[0])} + // 4. extract port from the ES and Kibana host, or use 443 as the default + host, port := extractPortFromName(words[0], defaultCloudPort) + esID, esPort := extractPortFromName(words[1], port) + kbID, kbPort := extractPortFromName(words[2], port) + + // 5. form the URLs + esURL := url.URL{Scheme: "https", Host: fmt.Sprintf("%s.%s:%s", esID, host, esPort)} + kibanaURL := url.URL{Scheme: "https", Host: fmt.Sprintf("%s.%s:%s", kbID, host, kbPort)} return esURL.String(), kibanaURL.String(), nil } diff --git a/vendor/github.com/elastic/beats/libbeat/cloudid/cloudid_test.go b/vendor/github.com/elastic/beats/libbeat/cloudid/cloudid_test.go deleted file mode 100644 index 68ef48e7..00000000 --- a/vendor/github.com/elastic/beats/libbeat/cloudid/cloudid_test.go +++ /dev/null @@ -1,209 +0,0 @@ -package cloudid - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestDecode(t *testing.T) { - tests := []struct { - cloudID string - expectedEsURL string - expectedKibanaURL string - }{ - { - cloudID: "staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw==", - expectedEsURL: "https://cec6f261a74bf24ce33bb8811b84294f.us-east-1.aws.found.io:443", - expectedKibanaURL: "https://c6c2ca6d042249af0cc7d7a9e9625743.us-east-1.aws.found.io:443", - }, - { - cloudID: "dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw==", - expectedEsURL: "https://cec6f261a74bf24ce33bb8811b84294f.us-east-1.aws.found.io:443", - expectedKibanaURL: "https://c6c2ca6d042249af0cc7d7a9e9625743.us-east-1.aws.found.io:443", - }, - { - cloudID: ":dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw==", - expectedEsURL: "https://cec6f261a74bf24ce33bb8811b84294f.us-east-1.aws.found.io:443", - expectedKibanaURL: "https://c6c2ca6d042249af0cc7d7a9e9625743.us-east-1.aws.found.io:443", - }, - { - cloudID: "gcp-cluster:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJDhhMDI4M2FmMDQxZjE5NWY3NzI5YmMwNGM2NmEwZmNlJDBjZDVjZDU2OGVlYmU1M2M4OWViN2NhZTViYWM4YjM3", - expectedEsURL: "https://8a0283af041f195f7729bc04c66a0fce.us-central1.gcp.cloud.es.io:443", - expectedKibanaURL: "https://0cd5cd568eebe53c89eb7cae5bac8b37.us-central1.gcp.cloud.es.io:443", - }, - } - - for _, test := range tests { - esURL, kbURL, err := decodeCloudID(test.cloudID) - assert.NoError(t, err, test.cloudID) - - assert.Equal(t, esURL, test.expectedEsURL, test.cloudID) - assert.Equal(t, kbURL, test.expectedKibanaURL, test.cloudID) - } -} - -func TestDecodeError(t *testing.T) { - tests := []struct { - cloudID string - errorMsg string - }{ - { - cloudID: "staging:garbagedXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw==", - errorMsg: "base64 decoding failed", - }, - { - cloudID: "dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJDhhMDI4M2FmMDQxZjE5NWY3NzI5YmMwNGM2NmEwZg==", - errorMsg: "Expected at least 3 parts", - }, - } - - for _, test := range tests { - _, _, err := decodeCloudID(test.cloudID) - assert.Error(t, err, test.cloudID) - assert.Contains(t, err.Error(), test.errorMsg, test.cloudID) - } -} - -func TestOverwriteSettings(t *testing.T) { - tests := []struct { - name string - inCfg map[string]interface{} - outCfg map[string]interface{} - }{ - { - name: "No cloud-id specified, nothing should change", - inCfg: map[string]interface{}{ - "output.elasticsearch.hosts": "localhost:9200", - }, - outCfg: map[string]interface{}{ - "output.elasticsearch.hosts": "localhost:9200", - }, - }, - { - name: "cloudid realistic example", - inCfg: map[string]interface{}{ - "output.elasticsearch.hosts": "localhost:9200", - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - "cloud.auth": "elastic:changeme", - }, - outCfg: map[string]interface{}{ - "output.elasticsearch.hosts": []interface{}{"https://249f3af1f4eee24a84e3b401e68a1b2a.us-east-1.aws.found.io:443"}, - "output.elasticsearch.username": "elastic", - "output.elasticsearch.password": "changeme", - "setup.kibana.host": "https://d4ac7559d4674b7c91abe10856d84304.us-east-1.aws.found.io:443", - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - "cloud.auth": "elastic:changeme", - }, - }, - { - name: "only cloudid specified", - inCfg: map[string]interface{}{ - "output.elasticsearch.hosts": "localhost:9200", - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - }, - outCfg: map[string]interface{}{ - "output.elasticsearch.hosts": []interface{}{"https://249f3af1f4eee24a84e3b401e68a1b2a.us-east-1.aws.found.io:443"}, - "setup.kibana.host": "https://d4ac7559d4674b7c91abe10856d84304.us-east-1.aws.found.io:443", - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - }, - }, - { - name: "no output defined", - inCfg: map[string]interface{}{ - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - }, - outCfg: map[string]interface{}{ - "output.elasticsearch.hosts": []interface{}{"https://249f3af1f4eee24a84e3b401e68a1b2a.us-east-1.aws.found.io:443"}, - "setup.kibana.host": "https://d4ac7559d4674b7c91abe10856d84304.us-east-1.aws.found.io:443", - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - }, - }, - { - name: "multiple hosts to overwrite", - inCfg: map[string]interface{}{ - "output.elasticsearch.hosts": []string{"localhost:9200", "test", "test1"}, - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - }, - outCfg: map[string]interface{}{ - "output.elasticsearch.hosts": []interface{}{"https://249f3af1f4eee24a84e3b401e68a1b2a.us-east-1.aws.found.io:443"}, - "setup.kibana.host": "https://d4ac7559d4674b7c91abe10856d84304.us-east-1.aws.found.io:443", - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - }, - }, - } - - for _, test := range tests { - t.Logf("Executing test: %s", test.name) - - cfg, err := common.NewConfigFrom(test.inCfg) - assert.NoError(t, err) - - err = OverwriteSettings(cfg) - assert.NoError(t, err) - - var res map[string]interface{} - err = cfg.Unpack(&res) - assert.NoError(t, err) - - var expected map[string]interface{} - expectedCfg, err := common.NewConfigFrom(test.outCfg) - assert.NoError(t, err) - err = expectedCfg.Unpack(&expected) - assert.NoError(t, err) - - assert.Equal(t, res, expected) - } -} - -func TestOverwriteErrors(t *testing.T) { - tests := []struct { - name string - inCfg map[string]interface{} - errMsg string - }{ - { - name: "cloud.auth specified but cloud.id not", - inCfg: map[string]interface{}{ - "cloud.auth": "elastic:changeme", - }, - errMsg: "cloud.auth specified but cloud.id is empty", - }, - { - name: "invalid cloud.id", - inCfg: map[string]interface{}{ - "cloud.id": "blah", - }, - errMsg: "Error decoding cloud.id", - }, - { - name: "invalid cloud.auth", - inCfg: map[string]interface{}{ - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - "cloud.auth": "blah", - }, - errMsg: "cloud.auth setting doesn't contain `:`", - }, - { - name: "logstash output enabled", - inCfg: map[string]interface{}{ - "cloud.id": "cloudidtest:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyQyNDlmM2FmMWY0ZWVlMjRhODRlM2I0MDFlNjhhMWIyYSRkNGFjNzU1OWQ0Njc0YjdjOTFhYmUxMDg1NmQ4NDMwNA==", - "output.logstash.hosts": "localhost:544", - }, - errMsg: "The cloud.id setting enables the Elasticsearch output, but you already have the logstash output enabled", - }, - } - - for _, test := range tests { - t.Logf("Executing test: %s", test.name) - - cfg, err := common.NewConfigFrom(test.inCfg) - assert.NoError(t, err) - - err = OverwriteSettings(cfg) - assert.Error(t, err) - assert.Contains(t, err.Error(), test.errMsg) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/completion.go b/vendor/github.com/elastic/beats/libbeat/cmd/completion.go index 4f24c5ab..47fb7ef2 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/completion.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/completion.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/export.go b/vendor/github.com/elastic/beats/libbeat/cmd/export.go index b4c62741..a6bb63f0 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/export.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/export.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/export/config.go b/vendor/github.com/elastic/beats/libbeat/cmd/export/config.go index 77b8592d..6f99b04f 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/export/config.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/export/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 export import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/export/dashboard.go b/vendor/github.com/elastic/beats/libbeat/cmd/export/dashboard.go index d9905117..59a6fa04 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/export/dashboard.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/export/dashboard.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 export import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/export/template.go b/vendor/github.com/elastic/beats/libbeat/cmd/export/template.go index 2a29c3a2..4cd73525 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/export/template.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/export/template.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 export import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/instance/beat.go b/vendor/github.com/elastic/beats/libbeat/cmd/instance/beat.go index f2c97dfd..ca1155ce 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/instance/beat.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/instance/beat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 instance import ( @@ -31,6 +48,7 @@ import ( "github.com/elastic/beats/libbeat/keystore" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/logp/configure" + "github.com/elastic/beats/libbeat/metric/system/host" "github.com/elastic/beats/libbeat/monitoring" "github.com/elastic/beats/libbeat/monitoring/report" "github.com/elastic/beats/libbeat/monitoring/report/log" @@ -149,14 +167,24 @@ func Run(name, idxPrefix, version string, bt beat.Creator) error { return err } - registry := monitoring.NewRegistry() - monitoring.GetNamespace("state").SetRegistry(registry) + // Add basic info + registry := monitoring.GetNamespace("info").GetRegistry() monitoring.NewString(registry, "version").Set(b.Info.Version) monitoring.NewString(registry, "beat").Set(b.Info.Beat) monitoring.NewString(registry, "name").Set(b.Info.Name) monitoring.NewString(registry, "uuid").Set(b.Info.UUID.String()) monitoring.NewString(registry, "hostname").Set(b.Info.Hostname) + // Add additional info to state registry. This is also reported to monitoring + stateRegistry := monitoring.GetNamespace("state").GetRegistry() + serviceRegistry := stateRegistry.NewRegistry("service") + monitoring.NewString(serviceRegistry, "version").Set(b.Info.Version) + monitoring.NewString(serviceRegistry, "name").Set(b.Info.Beat) + monitoring.NewString(serviceRegistry, "id").Set(b.Info.UUID.String()) + beatRegistry := stateRegistry.NewRegistry("beat") + monitoring.NewString(beatRegistry, "name").Set(b.Info.Name) + monitoring.NewFunc(stateRegistry, "host", host.ReportInfo, monitoring.Report) + return b.launch(bt) }()) } @@ -175,7 +203,7 @@ func NewBeat(name, indexPrefix, v string) (*Beat, error) { return nil, err } - fields, err := asset.GetFields(name + "/fields.yml") + fields, err := asset.GetFields(name) if err != nil { return nil, err } @@ -262,7 +290,7 @@ func (b *Beat) createBeater(bt beat.Creator) (beat.Beater, error) { debugf("Initializing output plugins") pipeline, err := pipeline.Load(b.Info, reg, b.Config.Pipeline, b.Config.Output) if err != nil { - return nil, fmt.Errorf("error initializing publisher: %v", err) + return nil, fmt.Errorf("error initializing publisher: %+v", err) } // TODO: some beats race on shutdown with publisher.Stop -> do not call Stop yet, diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/instance/beat_test.go b/vendor/github.com/elastic/beats/libbeat/cmd/instance/beat_test.go deleted file mode 100644 index 412ed64f..00000000 --- a/vendor/github.com/elastic/beats/libbeat/cmd/instance/beat_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// +build !integration - -package instance - -import ( - "testing" - - "github.com/satori/go.uuid" - "github.com/stretchr/testify/assert" -) - -func TestNewInstance(t *testing.T) { - b, err := NewBeat("testbeat", "testidx", "0.9") - if err != nil { - panic(err) - } - - assert.Equal(t, "testbeat", b.Info.Beat) - assert.Equal(t, "testidx", b.Info.IndexPrefix) - assert.Equal(t, "0.9", b.Info.Version) - - // UUID4 should be 36 chars long - assert.Equal(t, 16, len(b.Info.UUID)) - assert.Equal(t, 36, len(b.Info.UUID.String())) - - // indexPrefix set to name if empty - b, err = NewBeat("testbeat", "", "0.9") - if err != nil { - panic(err) - } - assert.Equal(t, "testbeat", b.Info.Beat) - assert.Equal(t, "testbeat", b.Info.IndexPrefix) - -} - -func TestNewInstanceUUID(t *testing.T) { - b, err := NewBeat("testbeat", "", "0.9") - if err != nil { - panic(err) - } - - // Make sure the UUID's are different - assert.NotEqual(t, b.Info.UUID, uuid.NewV4()) -} diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/instance/doc.go b/vendor/github.com/elastic/beats/libbeat/cmd/instance/doc.go index 307fd232..1819e6d9 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/instance/doc.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/instance/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 instance provides the functions required to manage the life-cycle of a Beat. It provides the standard mechanism for launching a Beat. It manages diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics.go b/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics.go index d2d0f53d..bca0363a 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin,cgo freebsd,cgo linux windows package instance diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_common.go b/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_common.go index bdec5fe1..d5a3a1e9 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_common.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_common.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 instance import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_other.go b/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_other.go index f8325bbf..37e092be 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_other.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/instance/metrics_other.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !darwin !cgo // +build !freebsd !cgo // +build !linux,!windows diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/instance/setup.go b/vendor/github.com/elastic/beats/libbeat/cmd/instance/setup.go index e1f19193..a058100f 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/instance/setup.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/instance/setup.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 instance type TemplateConfig struct { diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/keystore.go b/vendor/github.com/elastic/beats/libbeat/cmd/keystore.go index d9ab7077..aed55d02 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/keystore.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/keystore.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( @@ -13,7 +30,6 @@ import ( "github.com/spf13/pflag" tml "golang.org/x/crypto/ssh/terminal" - "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/cmd/instance" "github.com/elastic/beats/libbeat/common/cli" "github.com/elastic/beats/libbeat/common/terminal" @@ -42,7 +58,6 @@ func getKeystore(name, version string) (keystore.Keystore, error) { // - list func genKeystoreCmd( name, idxPrefix, version string, - beatCreator beat.Creator, runFlags *pflag.FlagSet, ) *cobra.Command { keystoreCmd := cobra.Command{ diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/modules.go b/vendor/github.com/elastic/beats/libbeat/cmd/modules.go index ed117e6d..609e40a5 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/modules.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/modules.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/root.go b/vendor/github.com/elastic/beats/libbeat/cmd/root.go index 77bf0733..2702ba32 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/root.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/root.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( @@ -68,7 +85,7 @@ func GenRootCmdWithIndexPrefixWithRunFlags(name, indexPrefix, version string, be rootCmd.CompletionCmd = genCompletionCmd(name, version, rootCmd) rootCmd.ExportCmd = genExportCmd(name, indexPrefix, version) rootCmd.TestCmd = genTestCmd(name, version, beatCreator) - rootCmd.KeystoreCmd = genKeystoreCmd(name, indexPrefix, version, beatCreator, runFlags) + rootCmd.KeystoreCmd = genKeystoreCmd(name, indexPrefix, version, runFlags) // Root command is an alias for run rootCmd.Run = rootCmd.RunCmd.Run diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/run.go b/vendor/github.com/elastic/beats/libbeat/cmd/run.go index 00bcb71c..97e6b47e 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/run.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/run.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/setup.go b/vendor/github.com/elastic/beats/libbeat/cmd/setup.go index fa04e97b..d8745cf7 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/setup.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/setup.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/test.go b/vendor/github.com/elastic/beats/libbeat/cmd/test.go index b38342b7..aedc9a97 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/test.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/test.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/test/config.go b/vendor/github.com/elastic/beats/libbeat/cmd/test/config.go index 43e55b2e..6d2423ff 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/test/config.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/test/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 test import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/test/output.go b/vendor/github.com/elastic/beats/libbeat/cmd/test/output.go index 912509c7..a94f9053 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/test/output.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/test/output.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 test import ( diff --git a/vendor/github.com/elastic/beats/libbeat/cmd/version.go b/vendor/github.com/elastic/beats/libbeat/cmd/version.go index cdecb527..61c11e8e 100644 --- a/vendor/github.com/elastic/beats/libbeat/cmd/version.go +++ b/vendor/github.com/elastic/beats/libbeat/cmd/version.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic.go b/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic.go index 060da41f..09e83614 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic.go +++ b/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 atomic provides common primitive types with atomic accessors. package atomic diff --git a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic32.go b/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic32.go index bd3f640a..17c41392 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic32.go +++ b/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic32.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build 386 arm mips mipsle package atomic diff --git a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic64.go b/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic64.go index fc34a8d3..5d7de520 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic64.go +++ b/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic64.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build amd64 arm64 ppc64 ppc64le mips64 mips64le s390x package atomic diff --git a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic_test.go b/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic_test.go deleted file mode 100644 index 015291d8..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/atomic/atomic_test.go +++ /dev/null @@ -1,256 +0,0 @@ -package atomic - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestAtomicBool(t *testing.T) { - assert := assert.New(t) - - var b Bool - assert.False(b.Load(), "check zero value is false") - - b = MakeBool(true) - assert.True(b.Load(), "check value initializer with 'true' value") - - b.Store(false) - assert.False(b.Load(), "check store to false") - - old := b.Swap(true) - assert.False(old, "check old value of swap operation is 'false'") - assert.True(b.Load(), "check new value after swap is 'true'") - - old = b.Swap(false) - assert.True(old, "check old value of second swap operation is 'true'") - assert.False(b.Load(), "check new value after second swap is 'false'") - - ok := b.CAS(true, true) - assert.False(ok, "check CAS fails with wrong 'old' value") - assert.False(b.Load(), "check failed CAS did not change value 'false'") - - ok = b.CAS(false, true) - assert.True(ok, "check CAS succeeds with correct 'old' value") - assert.True(b.Load(), "check CAS did change value to 'true'") -} - -func TestAtomicInt32(t *testing.T) { - assert := assert.New(t) - check := func(expected, actual int32, msg string) { - assert.Equal(expected, actual, msg) - } - - var v Int32 - check(0, v.Load(), "check zero value") - - v = MakeInt32(23) - check(23, v.Load(), "check value initializer") - - v.Store(42) - check(42, v.Load(), "check store new value") - - new := v.Inc() - check(43, new, "check increment returns new value") - check(43, v.Load(), "check increment did store new value") - - new = v.Dec() - check(42, new, "check decrement returns new value") - check(42, v.Load(), "check decrement did store new value") - - new = v.Add(8) - check(50, new, "check add returns new value") - check(50, v.Load(), "check add did store new value") - - new = v.Sub(8) - check(42, new, "check sub returns new value") - check(42, v.Load(), "check sub did store new value") - - old := v.Swap(101) - check(42, old, "check swap returns old value") - check(101, v.Load(), "check swap stores new value") - - ok := v.CAS(0, 23) - assert.False(ok, "check CAS with wrong old value fails") - check(101, v.Load(), "check failed CAS did not change value") - - ok = v.CAS(101, 23) - assert.True(ok, "check CAS succeeds") - check(23, v.Load(), "check CAS did store new value") -} - -func TestAtomicInt64(t *testing.T) { - assert := assert.New(t) - check := func(expected, actual int64, msg string) { - assert.Equal(expected, actual, msg) - } - - var v Int64 - check(0, v.Load(), "check zero value") - - v = MakeInt64(23) - check(23, v.Load(), "check value initializer") - - v.Store(42) - check(42, v.Load(), "check store new value") - - new := v.Inc() - check(43, new, "check increment returns new value") - check(43, v.Load(), "check increment did store new value") - - new = v.Dec() - check(42, new, "check decrement returns new value") - check(42, v.Load(), "check decrement did store new value") - - new = v.Add(8) - check(50, new, "check add returns new value") - check(50, v.Load(), "check add did store new value") - - new = v.Sub(8) - check(42, new, "check sub returns new value") - check(42, v.Load(), "check sub did store new value") - - old := v.Swap(101) - check(42, old, "check swap returns old value") - check(101, v.Load(), "check swap stores new value") - - ok := v.CAS(0, 23) - assert.False(ok, "check CAS with wrong old value fails") - check(101, v.Load(), "check failed CAS did not change value") - - ok = v.CAS(101, 23) - assert.True(ok, "check CAS succeeds") - check(23, v.Load(), "check CAS did store new value") -} - -func TestAtomicUint32(t *testing.T) { - assert := assert.New(t) - check := func(expected, actual uint32, msg string) { - assert.Equal(expected, actual, msg) - } - - var v Uint32 - check(0, v.Load(), "check zero value") - - v = MakeUint32(23) - check(23, v.Load(), "check value initializer") - - v.Store(42) - check(42, v.Load(), "check store new value") - - new := v.Inc() - check(43, new, "check increment returns new value") - check(43, v.Load(), "check increment did store new value") - - new = v.Dec() - check(42, new, "check decrement returns new value") - check(42, v.Load(), "check decrement did store new value") - - new = v.Add(8) - check(50, new, "check add returns new value") - check(50, v.Load(), "check add did store new value") - - new = v.Sub(8) - check(42, new, "check sub returns new value") - check(42, v.Load(), "check sub did store new value") - - old := v.Swap(101) - check(42, old, "check swap returns old value") - check(101, v.Load(), "check swap stores new value") - - ok := v.CAS(0, 23) - assert.False(ok, "check CAS with wrong old value fails") - check(101, v.Load(), "check failed CAS did not change value") - - ok = v.CAS(101, 23) - assert.True(ok, "check CAS succeeds") - check(23, v.Load(), "check CAS did store new value") -} - -func TestAtomicUint64(t *testing.T) { - assert := assert.New(t) - check := func(expected, actual uint64, msg string) { - assert.Equal(expected, actual, msg) - } - - var v Uint64 - check(0, v.Load(), "check zero value") - - v = MakeUint64(23) - check(23, v.Load(), "check value initializer") - - v.Store(42) - check(42, v.Load(), "check store new value") - - new := v.Inc() - check(43, new, "check increment returns new value") - check(43, v.Load(), "check increment did store new value") - - new = v.Dec() - check(42, new, "check decrement returns new value") - check(42, v.Load(), "check decrement did store new value") - - new = v.Add(8) - check(50, new, "check add returns new value") - check(50, v.Load(), "check add did store new value") - - new = v.Sub(8) - check(42, new, "check sub returns new value") - check(42, v.Load(), "check sub did store new value") - - old := v.Swap(101) - check(42, old, "check swap returns old value") - check(101, v.Load(), "check swap stores new value") - - ok := v.CAS(0, 23) - assert.False(ok, "check CAS with wrong old value fails") - check(101, v.Load(), "check failed CAS did not change value") - - ok = v.CAS(101, 23) - assert.True(ok, "check CAS succeeds") - check(23, v.Load(), "check CAS did store new value") -} - -func TestAtomicUint(t *testing.T) { - assert := assert.New(t) - check := func(expected, actual uint, msg string) { - assert.Equal(expected, actual, msg) - } - - var v Uint - check(0, v.Load(), "check zero value") - - v = MakeUint(23) - check(23, v.Load(), "check value initializer") - - v.Store(42) - check(42, v.Load(), "check store new value") - - new := v.Inc() - check(43, new, "check increment returns new value") - check(43, v.Load(), "check increment did store new value") - - new = v.Dec() - check(42, new, "check decrement returns new value") - check(42, v.Load(), "check decrement did store new value") - - new = v.Add(8) - check(50, new, "check add returns new value") - check(50, v.Load(), "check add did store new value") - - new = v.Sub(8) - check(42, new, "check sub returns new value") - check(42, v.Load(), "check sub did store new value") - - old := v.Swap(101) - check(42, old, "check swap returns old value") - check(101, v.Load(), "check swap stores new value") - - ok := v.CAS(0, 23) - assert.False(ok, "check CAS with wrong old value fails") - check(101, v.Load(), "check failed CAS did not change value") - - ok = v.CAS(101, 23) - assert.True(ok, "check CAS succeeds") - check(23, v.Load(), "check CAS did store new value") -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/backoff.go b/vendor/github.com/elastic/beats/libbeat/common/backoff.go index d865b0dc..575bb333 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/backoff.go +++ b/vendor/github.com/elastic/beats/libbeat/common/backoff.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 "time" diff --git a/vendor/github.com/elastic/beats/libbeat/common/bus/bus.go b/vendor/github.com/elastic/beats/libbeat/common/bus/bus.go index 259e077c..e1a28189 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/bus/bus.go +++ b/vendor/github.com/elastic/beats/libbeat/common/bus/bus.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 bus import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/bus/bus_test.go b/vendor/github.com/elastic/beats/libbeat/common/bus/bus_test.go deleted file mode 100644 index e6cb2a35..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/bus/bus_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package bus - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestEmit(t *testing.T) { - bus := New("name") - listener := bus.Subscribe() - - bus.Publish(Event{ - "foo": "bar", - }) - - event := <-listener.Events() - assert.Equal(t, event["foo"], "bar") -} - -func TestEmitOrder(t *testing.T) { - bus := New("name") - listener := bus.Subscribe() - bus.Publish(Event{"first": "event"}) - bus.Publish(Event{"second": "event"}) - - event1 := <-listener.Events() - event2 := <-listener.Events() - assert.Equal(t, event1, Event{"first": "event"}) - assert.Equal(t, event2, Event{"second": "event"}) -} - -func TestSubscribeFilter(t *testing.T) { - bus := New("name") - listener := bus.Subscribe("second") - - bus.Publish(Event{"first": "event"}) - bus.Publish(Event{"second": "event"}) - - event := <-listener.Events() - assert.Equal(t, event, Event{"second": "event"}) -} - -func TestMultipleListeners(t *testing.T) { - bus := New("name") - listener1 := bus.Subscribe("a") - listener2 := bus.Subscribe("a", "b") - - bus.Publish(Event{"a": "event"}) - bus.Publish(Event{"a": 1, "b": 2}) - - event1 := <-listener1.Events() - event2 := <-listener1.Events() - assert.Equal(t, event1, Event{"a": "event"}) - assert.Equal(t, event2, Event{"a": 1, "b": 2}) - - event1 = <-listener2.Events() - assert.Equal(t, event1, Event{"a": 1, "b": 2}) - - select { - case event2 = <-listener2.Events(): - t.Error("Got unexpected event:", event2) - default: - } -} - -func TestListenerClose(t *testing.T) { - bus := New("name") - listener := bus.Subscribe() - - bus.Publish(Event{"first": "event"}) - bus.Publish(Event{"second": "event"}) - - listener.Stop() - - bus.Publish(Event{"third": "event"}) - - event := <-listener.Events() - assert.Equal(t, event, Event{"first": "event"}) - event = <-listener.Events() - assert.Equal(t, event, Event{"second": "event"}) - - // Channel was closed, we get an empty event - event = <-listener.Events() - assert.Equal(t, event, Event(nil)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/bytes.go b/vendor/github.com/elastic/beats/libbeat/common/bytes.go index 08d026ed..a2a7aa39 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/bytes.go +++ b/vendor/github.com/elastic/beats/libbeat/common/bytes.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/bytes_test.go b/vendor/github.com/elastic/beats/libbeat/common/bytes_test.go deleted file mode 100644 index 7dd36955..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/bytes_test.go +++ /dev/null @@ -1,241 +0,0 @@ -// +build !integration - -package common - -import ( - "bytes" - "errors" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestBytes_Ntohs(t *testing.T) { - type io struct { - Input []byte - Output uint16 - } - - tests := []io{ - { - Input: []byte{0, 1}, - Output: 1, - }, - { - Input: []byte{1, 0}, - Output: 256, - }, - { - Input: []byte{1, 2}, - Output: 258, - }, - { - Input: []byte{2, 3}, - Output: 515, - }, - } - - for _, test := range tests { - assert.Equal(t, test.Output, BytesNtohs(test.Input)) - } -} - -func TestBytes_Ntohl(t *testing.T) { - type io struct { - Input []byte - Output uint32 - } - - tests := []io{ - { - Input: []byte{0, 0, 0, 1}, - Output: 1, - }, - { - Input: []byte{0, 0, 1, 0}, - Output: 256, - }, - { - Input: []byte{0, 1, 0, 0}, - Output: 1 << 16, - }, - { - Input: []byte{1, 0, 0, 0}, - Output: 1 << 24, - }, - { - Input: []byte{1, 0, 15, 0}, - Output: 0x01000f00, - }, - } - - for _, test := range tests { - assert.Equal(t, test.Output, BytesNtohl(test.Input)) - } -} - -func TestBytes_Htohl(t *testing.T) { - type io struct { - Input []byte - Output uint32 - } - - tests := []io{ - { - Input: []byte{0, 0, 0, 1}, - Output: 1 << 24, - }, - { - Input: []byte{0, 0, 1, 0}, - Output: 1 << 16, - }, - { - Input: []byte{0, 1, 0, 0}, - Output: 256, - }, - { - Input: []byte{1, 0, 0, 0}, - Output: 1, - }, - { - Input: []byte{1, 0, 15, 0}, - Output: 0x000f0001, - }, - } - - for _, test := range tests { - assert.Equal(t, test.Output, BytesHtohl(test.Input)) - } -} - -func TestBytes_Ntohll(t *testing.T) { - type io struct { - Input []byte - Output uint64 - } - - tests := []io{ - { - Input: []byte{0, 0, 0, 0, 0, 0, 0, 1}, - Output: 1, - }, - { - Input: []byte{0, 0, 0, 0, 0, 0, 1, 0}, - Output: 256, - }, - { - Input: []byte{0, 0, 0, 0, 0, 1, 0, 0}, - Output: 1 << 16, - }, - { - Input: []byte{0, 0, 0, 0, 1, 0, 0, 0}, - Output: 1 << 24, - }, - { - Input: []byte{0, 0, 0, 1, 0, 0, 0, 0}, - Output: 1 << 32, - }, - { - Input: []byte{0, 0, 1, 0, 0, 0, 0, 0}, - Output: 1 << 40, - }, - { - Input: []byte{0, 1, 0, 0, 0, 0, 0, 0}, - Output: 1 << 48, - }, - { - Input: []byte{1, 0, 0, 0, 0, 0, 0, 0}, - Output: 1 << 56, - }, - { - Input: []byte{0, 1, 0, 0, 1, 0, 15, 0}, - Output: 0x0001000001000f00, - }, - } - - for _, test := range tests { - assert.Equal(t, test.Output, BytesNtohll(test.Input)) - } -} - -func TestIpv4_Ntoa(t *testing.T) { - type io struct { - Input uint32 - Output string - } - - tests := []io{ - { - Input: 0x7f000001, - Output: "127.0.0.1", - }, - { - Input: 0xc0a80101, - Output: "192.168.1.1", - }, - { - Input: 0, - Output: "0.0.0.0", - }, - } - - for _, test := range tests { - assert.Equal(t, test.Output, IPv4Ntoa(test.Input)) - } -} - -func TestReadString(t *testing.T) { - type io struct { - Input []byte - Output string - Err error - } - - tests := []io{ - { - Input: []byte{'a', 'b', 'c', 0, 'd', 'e', 'f'}, - Output: "abc", - Err: nil, - }, - { - Input: []byte{0}, - Output: "", - Err: nil, - }, - { - Input: []byte{'a', 'b', 'c'}, - Output: "", - Err: errors.New("No string found"), - }, - { - Input: []byte{}, - Output: "", - Err: errors.New("No string found"), - }, - } - - for _, test := range tests { - res, err := ReadString(test.Input) - assert.Equal(t, test.Err, err) - assert.Equal(t, test.Output, res) - } -} - -func TestRandomBytesLength(t *testing.T) { - r1, _ := RandomBytes(5) - assert.Equal(t, len(r1), 5) - - r2, _ := RandomBytes(4) - assert.Equal(t, len(r2), 4) - assert.NotEqual(t, string(r1[:]), string(r2[:])) -} - -func TestRandomBytes(t *testing.T) { - v1, err := RandomBytes(10) - assert.NoError(t, err) - v2, err := RandomBytes(10) - assert.NoError(t, err) - - // unlikely to get 2 times the same results - assert.False(t, bytes.Equal(v1, v2)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/cache.go b/vendor/github.com/elastic/beats/libbeat/common/cache.go index 09e6bcc7..25f3be7d 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/cache.go +++ b/vendor/github.com/elastic/beats/libbeat/common/cache.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/cache_test.go b/vendor/github.com/elastic/beats/libbeat/common/cache_test.go deleted file mode 100644 index f6ad36aa..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/cache_test.go +++ /dev/null @@ -1,169 +0,0 @@ -// +build !integration - -package common - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -const ( - Timeout time.Duration = 1 * time.Minute - InitalSize int = 10 -) - -const ( - alphaKey = "alphaKey" - alphaValue = "a" - bravoKey = "bravoKey" - bravoValue = "b" -) - -// Current time as simulated by the fakeClock function. -var ( - currentTime time.Time - fakeClock clock = func() time.Time { - return currentTime - } -) - -// RemovalListener callback. -var ( - callbackKey Key - callbackValue Value - removalListener RemovalListener = func(k Key, v Value) { - callbackKey = k - callbackValue = v - } -) - -// Test that the removal listener is invoked with the expired key/value. -func TestExpireWithRemovalListener(t *testing.T) { - callbackKey = nil - callbackValue = nil - c := newCache(Timeout, InitalSize, removalListener, fakeClock) - c.Put(alphaKey, alphaValue) - currentTime = currentTime.Add(Timeout).Add(time.Nanosecond) - assert.Equal(t, 1, c.CleanUp()) - assert.Equal(t, alphaKey, callbackKey) - assert.Equal(t, alphaValue, callbackValue) -} - -// Test that the number of removed elements is returned by Expire. -func TestExpireWithoutRemovalListener(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - c.Put(alphaKey, alphaValue) - c.Put(bravoKey, bravoValue) - currentTime = currentTime.Add(Timeout).Add(time.Nanosecond) - assert.Equal(t, 2, c.CleanUp()) -} - -func TestPutIfAbsent(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - oldValue := c.PutIfAbsent(alphaKey, alphaValue) - assert.Nil(t, oldValue) - oldValue = c.PutIfAbsent(alphaKey, bravoValue) - assert.Equal(t, alphaValue, oldValue) -} - -func TestPut(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - oldValue := c.Put(alphaKey, alphaValue) - assert.Nil(t, oldValue) - oldValue = c.Put(bravoKey, bravoValue) - assert.Nil(t, oldValue) - - oldValue = c.Put(alphaKey, bravoValue) - assert.Equal(t, alphaValue, oldValue) - oldValue = c.Put(bravoKey, alphaValue) - assert.Equal(t, bravoValue, oldValue) -} - -func TestReplace(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - - // Nil is returned when the value does not exist and no element is added. - assert.Nil(t, c.Replace(alphaKey, alphaValue)) - assert.Equal(t, 0, c.Size()) - - // alphaKey is replaced with the new value. - assert.Nil(t, c.Put(alphaKey, alphaValue)) - assert.Equal(t, alphaValue, c.Replace(alphaKey, bravoValue)) - assert.Equal(t, 1, c.Size()) -} - -func TestGetUpdatesLastAccessTime(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - c.Put(alphaKey, alphaValue) - - currentTime = currentTime.Add(Timeout / 2) - assert.Equal(t, alphaValue, c.Get(alphaKey)) - currentTime = currentTime.Add(Timeout / 2) - assert.Equal(t, alphaValue, c.Get(alphaKey)) -} - -func TestDeleteNonExistentKey(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - assert.Nil(t, c.Delete(alphaKey)) -} - -func TestDeleteExistingKey(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - c.Put(alphaKey, alphaValue) - assert.Equal(t, alphaValue, c.Delete(alphaKey)) -} - -func TestDeleteExpiredKey(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - c.Put(alphaKey, alphaValue) - currentTime = currentTime.Add(Timeout).Add(time.Nanosecond) - assert.Nil(t, c.Delete(alphaKey)) -} - -// Test that Entries returns the non-expired map entries. -func TestEntries(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - c.Put(alphaKey, alphaValue) - currentTime = currentTime.Add(Timeout).Add(time.Nanosecond) - c.Put(bravoKey, bravoValue) - m := c.Entries() - assert.Equal(t, 1, len(m)) - assert.Equal(t, bravoValue, m[bravoKey]) -} - -// Test that Size returns a count of both expired and non-expired elements. -func TestSize(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - c.Put(alphaKey, alphaValue) - currentTime = currentTime.Add(Timeout).Add(time.Nanosecond) - c.Put(bravoKey, bravoValue) - assert.Equal(t, 2, c.Size()) -} - -func TestGetExpiredValue(t *testing.T) { - c := newCache(Timeout, InitalSize, nil, fakeClock) - c.Put(alphaKey, alphaValue) - v := c.Get(alphaKey) - assert.Equal(t, alphaValue, v) - - currentTime = currentTime.Add(Timeout).Add(time.Nanosecond) - v = c.Get(alphaKey) - assert.Nil(t, v) -} - -// Test that the janitor invokes CleanUp on the cache and that the -// RemovalListener is invoked during clean up. -func TestJanitor(t *testing.T) { - keyChan := make(chan Key) - c := newCache(Timeout, InitalSize, func(k Key, v Value) { - keyChan <- k - }, fakeClock) - c.Put(alphaKey, alphaValue) - currentTime = currentTime.Add(Timeout).Add(time.Nanosecond) - c.StartJanitor(time.Millisecond) - key := <-keyChan - c.StopJanitor() - assert.Equal(t, alphaKey, key) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/cfgtype/byte_size.go b/vendor/github.com/elastic/beats/libbeat/common/cfgtype/byte_size.go index b6bc106c..9667fbaa 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/cfgtype/byte_size.go +++ b/vendor/github.com/elastic/beats/libbeat/common/cfgtype/byte_size.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgtype import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/cfgtype/byte_size_test.go b/vendor/github.com/elastic/beats/libbeat/common/cfgtype/byte_size_test.go deleted file mode 100644 index 1596a2a1..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/cfgtype/byte_size_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package cfgtype - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestUnpack(t *testing.T) { - tests := []struct { - name string - s string - expected ByteSize - }{ - { - name: "friendly human value", - s: "1KiB", - expected: ByteSize(1024), - }, - { - name: "raw bytes", - s: "2024", - expected: ByteSize(2024), - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - s := ByteSize(0) - err := s.Unpack(test.s) - if !assert.NoError(t, err) { - return - } - assert.Equal(t, test.expected, s) - }) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/cfgwarn.go b/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/cfgwarn.go index 56eb5d66..f7ef2fba 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/cfgwarn.go +++ b/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/cfgwarn.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgwarn import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/removed.go b/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/removed.go index 05a7b82e..ba11bcb6 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/removed.go +++ b/vendor/github.com/elastic/beats/libbeat/common/cfgwarn/removed.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cfgwarn import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/cli/cli.go b/vendor/github.com/elastic/beats/libbeat/common/cli/cli.go index b608f955..54e0ac87 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/cli/cli.go +++ b/vendor/github.com/elastic/beats/libbeat/common/cli/cli.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cli import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/cli/cli_test.go b/vendor/github.com/elastic/beats/libbeat/common/cli/cli_test.go deleted file mode 100644 index fb4812d5..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/cli/cli_test.go +++ /dev/null @@ -1,79 +0,0 @@ -package cli - -import ( - "bytes" - "fmt" - "os" - "os/exec" - "testing" - - "github.com/spf13/cobra" - "github.com/stretchr/testify/assert" -) - -func runCli(testName string) (*bytes.Buffer, error) { - cmd := exec.Command(os.Args[0], "-test.run="+testName) - cmd.Env = append(os.Environ(), "TEST_RUNWITH=1") - stderr := new(bytes.Buffer) - cmd.Stderr = stderr - - err := cmd.Run() - return stderr, err -} - -// Example taken from slides from Andrew Gerrand -// https://talks.golang.org/2014/testing.slide#23 -func TestExitWithError(t *testing.T) { - if os.Getenv("TEST_RUNWITH") == "1" { - func() { - var cmd *cobra.Command - var args []string - RunWith(func(cmd *cobra.Command, args []string) error { - return fmt.Errorf("Something bad") - })(cmd, args) - return - }() - } - - stderr, err := runCli("TestExitWithError") - if assert.Error(t, err) { - assert.Equal(t, err.Error(), "exit status 1") - } - assert.Equal(t, "Something bad\n", stderr.String()) -} - -func TestExitWithoutError(t *testing.T) { - if os.Getenv("TEST_RUNWITH") == "1" { - func() { - var cmd *cobra.Command - var args []string - RunWith(func(cmd *cobra.Command, args []string) error { - return nil - })(cmd, args) - }() - return - } - - stderr, err := runCli("TestExitWithoutError") - assert.NoError(t, err) - assert.Equal(t, "", stderr.String()) -} - -func TestExitWithPanic(t *testing.T) { - if os.Getenv("TEST_RUNWITH") == "1" { - func() { - var cmd *cobra.Command - var args []string - RunWith(func(cmd *cobra.Command, args []string) error { - panic("something really bad happened") - })(cmd, args) - }() - return - } - - stderr, err := runCli("TestExitWithPanic") - if assert.Error(t, err) { - assert.Equal(t, err.Error(), "exit status 1") - } - assert.Contains(t, stderr.String(), "something really bad happened") -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/coerce.go b/vendor/github.com/elastic/beats/libbeat/common/coerce.go index e7d68cec..ed96ec45 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/coerce.go +++ b/vendor/github.com/elastic/beats/libbeat/common/coerce.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 "strconv" diff --git a/vendor/github.com/elastic/beats/libbeat/common/coerce_test.go b/vendor/github.com/elastic/beats/libbeat/common/coerce_test.go deleted file mode 100644 index c61661d3..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/coerce_test.go +++ /dev/null @@ -1,57 +0,0 @@ -package common - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestTryToInt(t *testing.T) { - tests := []struct { - input interface{} - result int - resultB bool - }{ - { - int(4), - int(4), - true, - }, - { - int64(3), - int(3), - true, - }, - { - "5", - int(5), - true, - }, - { - uint32(12), - int(12), - true, - }, - { - "abc", - 0, - false, - }, - { - []string{"123"}, - 0, - false, - }, - { - uint64(55), - int(55), - true, - }, - } - - for _, test := range tests { - a, b := TryToInt(test.input) - assert.Equal(t, a, test.result) - assert.Equal(t, b, test.resultB) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/config.go b/vendor/github.com/elastic/beats/libbeat/common/config.go index 98f8cfaf..b1d5aba7 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/config.go +++ b/vendor/github.com/elastic/beats/libbeat/common/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( @@ -70,11 +87,38 @@ func NewConfig() *Config { return fromConfig(ucfg.New()) } +// NewConfigFrom creates a new Config object from the given input. +// From can be any kind of structured data (struct, map, array, slice). +// +// If from is a string, the contents is treated like raw YAML input. The string +// will be parsed and a structure config object is build from the parsed +// result. func NewConfigFrom(from interface{}) (*Config, error) { + if str, ok := from.(string); ok { + c, err := yaml.NewConfig([]byte(str), configOpts...) + return fromConfig(c), err + } + c, err := ucfg.NewFrom(from, configOpts...) return fromConfig(c), err } +// MustNewConfigFrom creates a new Config object from the given input. +// From can be any kind of structured data (struct, map, array, slice). +// +// If from is a string, the contents is treated like raw YAML input. The string +// will be parsed and a structure config object is build from the parsed +// result. +// +// MustNewConfigFrom panics if an error occurs. +func MustNewConfigFrom(from interface{}) *Config { + cfg, err := NewConfigFrom(from) + if err != nil { + panic(err) + } + return cfg +} + func MergeConfigs(cfgs ...*Config) (*Config, error) { config := NewConfig() for _, c := range cfgs { diff --git a/vendor/github.com/elastic/beats/libbeat/common/config_test.go b/vendor/github.com/elastic/beats/libbeat/common/config_test.go deleted file mode 100644 index 6e9f2a3c..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/config_test.go +++ /dev/null @@ -1,150 +0,0 @@ -package common - -import ( - "fmt" - "io/ioutil" - "os" - "runtime" - "strings" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestConfigPrintDebug(t *testing.T) { - tests := []struct { - name string - selectors string - config map[string]interface{} - expected string - }{ - { - "No selector -> no output", - "", - map[string]interface{}{"name": "test"}, - "", - }, - { - "config selector redacts password in nested config", - "config", - map[string]interface{}{ - "config": map[string]interface{}{ - "password": "secret", - }, - }, - `test: -{ - "config": { - "password": "xxxxx" - } -} -`, - }, - { - "config selector redacts password in nested array", - "config", - map[string]interface{}{ - "arr": []interface{}{ - map[string]interface{}{ - "password": "secret", - }, - }, - }, - `test: -{ - "arr": [ - { - "password": "xxxxx" - } - ] -} -`, - }, - { - "config-with-passwords does not redact", - "config-with-passwords", - map[string]interface{}{ - "config": map[string]interface{}{ - "password": "secret", - }, - }, - `test: -{ - "config": { - "password": "secret" - } -} -`, - }, - } - - origSelector := hasSelector - origDebugf := configDebugf - defer func() { - hasSelector = origSelector - configDebugf = origDebugf - }() - - var buf string - configDebugf = func(selector, msg string, extra ...interface{}) { - if hasSelector(selector) { - buf = buf + fmt.Sprintf(msg, extra...) + "\n" - } - } - - for i, test := range tests { - t.Logf("run test (%v): %v", i, test.name) - - // reset selector and output buffer - selectors := MakeStringSet(strings.Split(test.selectors, ",")...) - buf = "" - hasSelector = selectors.Has - - // create config - cfg, err := NewConfigFrom(test.config) - if err != nil { - t.Fatal(err) - } - - // create debug output - cfg.PrintDebugf("test:") - - // validate debug output - assert.Equal(t, test.expected, buf) - } -} - -func TestConfigFilePermissions(t *testing.T) { - if !IsStrictPerms() { - t.Skip("Skipping test because strict.perms is disabled") - } - - f, err := ioutil.TempFile("", "writableConfig.yml") - if err != nil { - t.Fatal(err) - } - defer os.Remove(f.Name()) - defer f.Close() - - f.WriteString(`test.data: [1, 2, 3, 4]`) - f.Sync() - - if _, err = LoadFile(f.Name()); err != nil { - t.Fatal(err) - } - - // Permissions checking isn't implemented for Windows DACLs. - if runtime.GOOS == "windows" { - return - } - - if err = os.Chmod(f.Name(), 0460); err != nil { - t.Fatal(err) - } - - // Read will fail because config is group writable. - _, err = LoadFile(f.Name()) - if assert.Error(t, err, "expected writable error") { - assert.Contains(t, err.Error(), "writable") - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/csv.go b/vendor/github.com/elastic/beats/libbeat/common/csv.go index ef42ea25..9c38ea66 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/csv.go +++ b/vendor/github.com/elastic/beats/libbeat/common/csv.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/csv_test.go b/vendor/github.com/elastic/beats/libbeat/common/csv_test.go deleted file mode 100644 index 8b99c968..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/csv_test.go +++ /dev/null @@ -1,48 +0,0 @@ -// +build !integration - -package common - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func Test_CSVDump(t *testing.T) { - type io struct { - Fields []string - Rows [][]string - Output string - } - - tests := []io{ - { - Fields: []string{"f1", "f2"}, - Rows: [][]string{ - {"11", "12"}, - {"21", "22"}, - }, - Output: "f1,f2\n11,12\n21,22\n", - }, - { - Fields: []string{"f1", "f2"}, - Rows: [][]string{ - {"11"}, - {"21", "22", "23"}, - }, - Output: "f1,f2\n11\n21,22,23\n", - }, - { - Fields: []string{"f\n\n1", "f\n2"}, - Rows: [][]string{ - {"11"}, - {"2\r\n1", "2\r\n2", "23"}, - }, - Output: "f\\n\\n1,f\\n2\n11\n2\\r\\n1,2\\r\\n2,23\n", - }, - } - - for _, test := range tests { - assert.Equal(t, test.Output, DumpInCSVFormat(test.Fields, test.Rows)) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/datetime.go b/vendor/github.com/elastic/beats/libbeat/common/datetime.go index f464aa30..c0eac0cc 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/datetime.go +++ b/vendor/github.com/elastic/beats/libbeat/common/datetime.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/datetime_test.go b/vendor/github.com/elastic/beats/libbeat/common/datetime_test.go deleted file mode 100644 index 2ab899bd..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/datetime_test.go +++ /dev/null @@ -1,88 +0,0 @@ -// +build !integration - -package common - -import ( - "encoding/json" - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestParseTime(t *testing.T) { - type inputOutput struct { - Input string - Output time.Time - } - - tests := []inputOutput{ - { - Input: "2015-01-24T14:06:05.071Z", - Output: time.Date(2015, time.January, 24, 14, 06, 05, 71*1e6, time.UTC), - }, - { - Input: "2015-03-01T11:19:05.112Z", - Output: time.Date(2015, time.March, 1, 11, 19, 05, 112*1e6, time.UTC), - }, - { - Input: "2015-02-28T11:19:05.112Z", - Output: time.Date(2015, time.February, 28, 11, 19, 05, 112*1e6, time.UTC), - }, - } - - for _, test := range tests { - result, err := ParseTime(test.Input) - assert.Nil(t, err) - assert.Equal(t, test.Output, time.Time(result)) - } -} - -func TestParseTimeNegative(t *testing.T) { - type inputOutput struct { - Input string - Err string - } - - tests := []inputOutput{ - { - Input: "2015-02-29TT14:06:05.071Z", - Err: "parsing time \"2015-02-29TT14:06:05.071Z\" as \"2006-01-02T15:04:05.000Z\": cannot parse \"T14:06:05.071Z\" as \"15\"", - }, - } - - for _, test := range tests { - _, err := ParseTime(test.Input) - assert.NotNil(t, err) - assert.Equal(t, test.Err, err.Error()) - } -} - -func TestTimeMarshal(t *testing.T) { - type inputOutput struct { - Input MapStr - Output string - } - - tests := []inputOutput{ - { - Input: MapStr{ - "@timestamp": Time(time.Date(2015, time.March, 01, 11, 19, 05, 112*1e6, time.UTC)), - }, - Output: `{"@timestamp":"2015-03-01T11:19:05.112Z"}`, - }, - { - Input: MapStr{ - "@timestamp": MustParseTime("2015-03-01T11:19:05.112Z"), - "another": MustParseTime("2015-03-01T14:19:05.112Z"), - }, - Output: `{"@timestamp":"2015-03-01T11:19:05.112Z","another":"2015-03-01T14:19:05.112Z"}`, - }, - } - - for _, test := range tests { - result, err := json.Marshal(test.Input) - assert.Nil(t, err) - assert.Equal(t, test.Output, string(result)) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/docker/client.go b/vendor/github.com/elastic/beats/libbeat/common/docker/client.go index 965fbb44..61175b30 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/docker/client.go +++ b/vendor/github.com/elastic/beats/libbeat/common/docker/client.go @@ -1,7 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( "net/http" + "os" "github.com/elastic/beats/libbeat/logp" @@ -11,31 +29,35 @@ import ( "golang.org/x/net/context" ) -// Select Docker API version -const dockerAPIVersion = api.DefaultVersion - // NewClient builds and returns a new Docker client -// It uses version 1.26 by default, and negotiates it with the server so it is downgraded if 1.26 is too high +// It uses version 1.30 by default, and negotiates it with the server so it is downgraded if 1.30 is too high func NewClient(host string, httpClient *http.Client, httpHeaders map[string]string) (*client.Client, error) { - c, err := client.NewClient(host, dockerAPIVersion, httpClient, nil) - if err != nil { - return c, err + version := os.Getenv("DOCKER_API_VERSION") + if version == "" { + version = api.DefaultVersion } - logp.Debug("docker", "Negotiating client version") - ping, err := c.Ping(context.Background()) + c, err := client.NewClient(host, version, httpClient, nil) if err != nil { - logp.Debug("docker", "Failed to perform ping: %s", err) + return c, err } - // try the latest version before versioning headers existed - if ping.APIVersion == "" { - ping.APIVersion = "1.24" - } + if os.Getenv("DOCKER_API_VERSION") == "" { + logp.Debug("docker", "Negotiating client version") + ping, err := c.Ping(context.Background()) + if err != nil { + logp.Debug("docker", "Failed to perform ping: %s", err) + } + + // try a really old version, before versioning headers existed + if ping.APIVersion == "" { + ping.APIVersion = "1.22" + } - // if server version is lower than the client version, downgrade - if versions.LessThan(ping.APIVersion, dockerAPIVersion) { - c.UpdateClientVersion(ping.APIVersion) + // if server version is lower than the client version, downgrade + if versions.LessThan(ping.APIVersion, version) { + c.UpdateClientVersion(ping.APIVersion) + } } logp.Debug("docker", "Client version set to %s", c.ClientVersion()) diff --git a/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go b/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go index 5c2e03fe..def5b5ee 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go +++ b/vendor/github.com/elastic/beats/libbeat/common/docker/watcher.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( @@ -76,6 +93,7 @@ type Container struct { // Client for docker interface type Client interface { ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) + ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error) Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error) } @@ -290,7 +308,20 @@ func (w *watcher) listContainers(options types.ContainerListOptions) ([]*Contain for _, c := range containers { var ipaddresses []string for _, net := range c.NetworkSettings.Networks { - ipaddresses = append(ipaddresses, net.IPAddress) + if net.IPAddress != "" { + ipaddresses = append(ipaddresses, net.IPAddress) + } + } + + // If there are no network interfaces, assume that the container is on host network + // Inspect the container directly and use the hostname as the IP address in order + if len(ipaddresses) == 0 { + info, err := w.client.ContainerInspect(w.ctx, c.ID) + if err == nil { + ipaddresses = append(ipaddresses, info.Config.Hostname) + } else { + logp.Warn("unable to inspect container %s due to error %v", c.ID, err) + } } result = append(result, &Container{ ID: c.ID, diff --git a/vendor/github.com/elastic/beats/libbeat/common/docker/watcher_test.go b/vendor/github.com/elastic/beats/libbeat/common/docker/watcher_test.go deleted file mode 100644 index a0a541ab..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/docker/watcher_test.go +++ /dev/null @@ -1,459 +0,0 @@ -package docker - -import ( - "testing" - "time" - - "github.com/docker/docker/api/types" - "github.com/docker/docker/api/types/events" - "github.com/stretchr/testify/assert" - "golang.org/x/net/context" - - "github.com/elastic/beats/libbeat/logp" -) - -type MockClient struct { - // containers to return on ContainerList call - containers [][]types.Container - // event list to send on Events call - events []interface{} - - done chan interface{} -} - -func (m *MockClient) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) { - res := m.containers[0] - m.containers = m.containers[1:] - return res, nil -} - -func (m *MockClient) Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error) { - eventsC := make(chan events.Message) - errorsC := make(chan error) - - go func() { - for _, event := range m.events { - switch e := event.(type) { - case events.Message: - eventsC <- e - case error: - errorsC <- e - } - } - close(m.done) - }() - - return eventsC, errorsC -} - -func TestWatcherInitialization(t *testing.T) { - watcher := runWatcher(t, true, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "0332dbd79e20", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - types.Container{ - ID: "6ac6ee8df5d4", - Names: []string{"/other"}, - Image: "nginx", - Labels: map[string]string{}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - nil) - - assert.Equal(t, map[string]*Container{ - "0332dbd79e20": &Container{ - ID: "0332dbd79e20", - Name: "containername", - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - }, - "6ac6ee8df5d4": &Container{ - ID: "6ac6ee8df5d4", - Name: "other", - Image: "nginx", - Labels: map[string]string{}, - }, - }, watcher.Containers()) -} - -func TestWatcherInitializationShortID(t *testing.T) { - watcher := runWatcherShortID(t, true, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "1234567890123", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - types.Container{ - ID: "2345678901234", - Names: []string{"/other"}, - Image: "nginx", - Labels: map[string]string{}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - nil, true) - - assert.Equal(t, map[string]*Container{ - "1234567890123": &Container{ - ID: "1234567890123", - Name: "containername", - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - }, - "2345678901234": &Container{ - ID: "2345678901234", - Name: "other", - Image: "nginx", - Labels: map[string]string{}, - }, - }, watcher.Containers()) - - assert.Equal(t, &Container{ - ID: "1234567890123", - Name: "containername", - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - }, watcher.Container("123456789012")) -} - -func TestWatcherAddEvents(t *testing.T) { - watcher := runWatcher(t, true, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "0332dbd79e20", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - []types.Container{ - types.Container{ - ID: "6ac6ee8df5d4", - Names: []string{"/other"}, - Image: "nginx", - Labels: map[string]string{"label": "value"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - []interface{}{ - events.Message{ - Action: "start", - Actor: events.Actor{ - ID: "6ac6ee8df5d4", - Attributes: map[string]string{ - "name": "other", - "image": "nginx", - "label": "value", - }, - }, - }, - }, - ) - - assert.Equal(t, map[string]*Container{ - "0332dbd79e20": &Container{ - ID: "0332dbd79e20", - Name: "containername", - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - }, - "6ac6ee8df5d4": &Container{ - ID: "6ac6ee8df5d4", - Name: "other", - Image: "nginx", - Labels: map[string]string{"label": "value"}, - }, - }, watcher.Containers()) -} - -func TestWatcherAddEventsShortID(t *testing.T) { - watcher := runWatcherShortID(t, true, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "1234567890123", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - []types.Container{ - types.Container{ - ID: "2345678901234", - Names: []string{"/other"}, - Image: "nginx", - Labels: map[string]string{"label": "value"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - []interface{}{ - events.Message{ - Action: "start", - Actor: events.Actor{ - ID: "2345678901234", - Attributes: map[string]string{ - "name": "other", - "image": "nginx", - "label": "value", - }, - }, - }, - }, - true, - ) - - assert.Equal(t, map[string]*Container{ - "1234567890123": &Container{ - ID: "1234567890123", - Name: "containername", - Image: "busybox", - Labels: map[string]string{"foo": "bar"}, - }, - "2345678901234": &Container{ - ID: "2345678901234", - Name: "other", - Image: "nginx", - Labels: map[string]string{"label": "value"}, - }, - }, watcher.Containers()) -} - -func TestWatcherUpdateEvent(t *testing.T) { - watcher := runWatcher(t, true, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "0332dbd79e20", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"label": "foo"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - []types.Container{ - types.Container{ - ID: "0332dbd79e20", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"label": "bar"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - []interface{}{ - events.Message{ - Action: "update", - Actor: events.Actor{ - ID: "0332dbd79e20", - Attributes: map[string]string{ - "name": "containername", - "image": "busybox", - "label": "bar", - }, - }, - }, - }, - ) - - assert.Equal(t, map[string]*Container{ - "0332dbd79e20": &Container{ - ID: "0332dbd79e20", - Name: "containername", - Image: "busybox", - Labels: map[string]string{"label": "bar"}, - }, - }, watcher.Containers()) - assert.Equal(t, 0, len(watcher.deleted)) -} - -func TestWatcherUpdateEventShortID(t *testing.T) { - watcher := runWatcherShortID(t, true, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "1234567890123", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"label": "foo"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - []types.Container{ - types.Container{ - ID: "1234567890123", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"label": "bar"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - []interface{}{ - events.Message{ - Action: "update", - Actor: events.Actor{ - ID: "1234567890123", - Attributes: map[string]string{ - "name": "containername", - "image": "busybox", - "label": "bar", - }, - }, - }, - }, - true, - ) - - assert.Equal(t, map[string]*Container{ - "1234567890123": &Container{ - ID: "1234567890123", - Name: "containername", - Image: "busybox", - Labels: map[string]string{"label": "bar"}, - }, - }, watcher.Containers()) - assert.Equal(t, 0, len(watcher.deleted)) -} - -func TestWatcherDie(t *testing.T) { - watcher := runWatcher(t, false, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "0332dbd79e20", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"label": "foo"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - []interface{}{ - events.Message{ - Action: "die", - Actor: events.Actor{ - ID: "0332dbd79e20", - }, - }, - }, - ) - defer watcher.Stop() - - // Check it doesn't get removed while we request meta for the container - for i := 0; i < 18; i++ { - watcher.Container("0332dbd79e20") - assert.Equal(t, 1, len(watcher.Containers())) - time.Sleep(50 * time.Millisecond) - } - - // Checks a max of 10s for the watcher containers to be updated - for i := 0; i < 100; i++ { - // Now it should get removed - time.Sleep(100 * time.Millisecond) - - if len(watcher.Containers()) == 0 { - break - } - } - - assert.Equal(t, 0, len(watcher.Containers())) -} - -func TestWatcherDieShortID(t *testing.T) { - watcher := runWatcherShortID(t, false, - [][]types.Container{ - []types.Container{ - types.Container{ - ID: "0332dbd79e20aaa", - Names: []string{"/containername", "othername"}, - Image: "busybox", - Labels: map[string]string{"label": "foo"}, - NetworkSettings: &types.SummaryNetworkSettings{}, - }, - }, - }, - []interface{}{ - events.Message{ - Action: "die", - Actor: events.Actor{ - ID: "0332dbd79e20aaa", - }, - }, - }, - true, - ) - defer watcher.Stop() - - // Check it doesn't get removed while we request meta for the container - for i := 0; i < 18; i++ { - watcher.Container("0332dbd79e20") - assert.Equal(t, 1, len(watcher.Containers())) - time.Sleep(50 * time.Millisecond) - } - - // Checks a max of 10s for the watcher containers to be updated - for i := 0; i < 100; i++ { - // Now it should get removed - time.Sleep(100 * time.Millisecond) - - if len(watcher.Containers()) == 0 { - break - } - } - - assert.Equal(t, 0, len(watcher.Containers())) -} - -func runWatcher(t *testing.T, kill bool, containers [][]types.Container, events []interface{}) *watcher { - return runWatcherShortID(t, kill, containers, events, false) -} - -func runWatcherShortID(t *testing.T, kill bool, containers [][]types.Container, events []interface{}, enable bool) *watcher { - logp.TestingSetup() - - client := &MockClient{ - containers: containers, - events: events, - done: make(chan interface{}), - } - - w, err := NewWatcherWithClient(client, 200*time.Millisecond, enable) - if err != nil { - t.Fatal(err) - } - watcher, ok := w.(*watcher) - if !ok { - t.Fatal("'watcher' was supposed to be pointer to the watcher structure") - } - - err = watcher.Start() - if err != nil { - t.Fatal(err) - } - - <-client.done - if kill { - watcher.Stop() - watcher.stopped.Wait() - } - - return watcher -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/builder.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/builder.go index 04cf4f9e..935a2478 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/builder.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/builder.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt type builder struct { diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/ctx.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/ctx.go index b14e1245..7b8314f0 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/ctx.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/ctx.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/doc.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/doc.go index 5e43f05f..a204929f 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/doc.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt provides time formatter support with pattern syntax mostly // similar to joda DateTimeFormat. The pattern syntax supported is a subset // (mostly compatible) with joda DateTimeFormat. diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/dtfmt.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/dtfmt.go index 65f3e25b..3c35a381 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/dtfmt.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/dtfmt.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/dtfmt_test.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/dtfmt_test.go deleted file mode 100644 index 46aaeee5..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/dtfmt_test.go +++ /dev/null @@ -1,110 +0,0 @@ -package dtfmt - -import ( - "fmt" - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestFormat(t *testing.T) { - tests := []struct { - time time.Time - pattern string - expected string - }{ - // year.month.day of month - {mkDate(6, 8, 1), "y.M.d", "6.8.1"}, - {mkDate(2006, 8, 1), "y.M.d", "2006.8.1"}, - {mkDate(2006, 8, 1), "yy.MM.dd", "06.08.01"}, - {mkDate(6, 8, 1), "yy.MM.dd", "06.08.01"}, - {mkDate(2006, 8, 1), "yyy.MMM.dd", "2006.Aug.01"}, - {mkDate(2006, 8, 1), "yyyy.MMMM.d", "2006.August.1"}, - {mkDate(2006, 8, 1), "yyyyyy.MM.ddd", "002006.08.001"}, - - // year of era.month.day - {mkDate(6, 8, 1), "Y.M.d", "6.8.1"}, - {mkDate(2006, 8, 1), "Y.M.d", "2006.8.1"}, - {mkDate(2006, 8, 1), "YY.MM.dd", "06.08.01"}, - {mkDate(6, 8, 1), "YY.MM.dd", "06.08.01"}, - {mkDate(2006, 8, 1), "YYY.MMM.dd", "2006.Aug.01"}, - {mkDate(2006, 8, 1), "YYYY.MMMM.d", "2006.August.1"}, - {mkDate(2006, 8, 1), "YYYYYY.MM.ddd", "002006.08.001"}, - - // week year + week of year + day of week - {mkDate(2015, 1, 1), "xx.ww.e", "15.01.4"}, - {mkDate(2014, 12, 31), "xx.ww.e", "15.01.3"}, - {mkDate(2015, 1, 1), "xx.w.E", "15.1.Thu"}, - {mkDate(2014, 12, 31), "xx.w.E", "15.1.Wed"}, - {mkDate(2015, 1, 1), "xx.w.EEEE", "15.1.Thursday"}, - {mkDate(2014, 12, 31), "xx.w.EEEE", "15.1.Wednesday"}, - {mkDate(2015, 1, 1), "xxxx.ww", "2015.01"}, - {mkDate(2014, 12, 31), "xxxx.ww", "2015.01"}, - {mkDate(2015, 1, 1), "xxxx.ww.e", "2015.01.4"}, - {mkDate(2014, 12, 31), "xxxx.ww.e", "2015.01.3"}, - {mkDate(2015, 1, 1), "xxxx.w.E", "2015.1.Thu"}, - {mkDate(2014, 12, 31), "xxxx.w.E", "2015.1.Wed"}, - {mkDate(2015, 1, 1), "xxxx.w.EEEE", "2015.1.Thursday"}, - {mkDate(2014, 12, 31), "xxxx.w.EEEE", "2015.1.Wednesday"}, - - // time - {mkTime(8, 5, 24, 0), "K:m:s a", "8:5:24 AM"}, - {mkTime(8, 5, 24, 0), "KK:mm:ss aa", "08:05:24 AM"}, - {mkTime(20, 5, 24, 0), "K:m:s a", "8:5:24 PM"}, - {mkTime(20, 5, 24, 0), "KK:mm:ss aa", "08:05:24 PM"}, - {mkTime(8, 5, 24, 0), "h:m:s a", "9:5:24 AM"}, - {mkTime(8, 5, 24, 0), "hh:mm:ss aa", "09:05:24 AM"}, - {mkTime(20, 5, 24, 0), "h:m:s a", "9:5:24 PM"}, - {mkTime(20, 5, 24, 0), "hh:mm:ss aa", "09:05:24 PM"}, - {mkTime(8, 5, 24, 0), "H:m:s a", "8:5:24 AM"}, - {mkTime(8, 5, 24, 0), "HH:mm:ss aa", "08:05:24 AM"}, - {mkTime(20, 5, 24, 0), "H:m:s a", "20:5:24 PM"}, - {mkTime(20, 5, 24, 0), "HH:mm:ss aa", "20:05:24 PM"}, - {mkTime(8, 5, 24, 0), "k:m:s a", "9:5:24 AM"}, - {mkTime(8, 5, 24, 0), "kk:mm:ss aa", "09:05:24 AM"}, - {mkTime(20, 5, 24, 0), "k:m:s a", "21:5:24 PM"}, - {mkTime(20, 5, 24, 0), "kk:mm:ss aa", "21:05:24 PM"}, - {mkTime(1, 2, 3, 123), "S", "1"}, - {mkTime(1, 2, 3, 123), "SS", "12"}, - {mkTime(1, 2, 3, 123), "SSS", "123"}, - {mkTime(1, 2, 3, 123), "SSSS", "1230"}, - - // literals - {time.Now(), "--=++,_!/?\\[]{}@#$%^&*()", "--=++,_!/?\\[]{}@#$%^&*()"}, - {time.Now(), "'plain text'", "plain text"}, - {time.Now(), "'plain' 'text'", "plain text"}, - {time.Now(), "'plain' '' 'text'", "plain ' text"}, - {time.Now(), "'plain '' text'", "plain ' text"}, - - // beats timestamp - {mkDateTime(2017, 1, 2, 4, 6, 7, 123), - "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", - "2017-01-02T04:06:07.123Z"}, - } - - for i, test := range tests { - name := fmt.Sprintf("run (%v): %v -> %v", i, test.pattern, test.expected) - t.Run(name, func(t *testing.T) { - actual, err := Format(test.time, test.pattern) - if err != nil { - t.Error(err) - return - } - - assert.Equal(t, test.expected, actual) - }) - } -} - -func mkDate(y, m, d int) time.Time { - return mkDateTime(y, m, d, 0, 0, 0, 0) -} - -func mkTime(h, m, s, S int) time.Time { - return mkDateTime(2000, 1, 1, h, m, s, S) -} - -func mkDateTime(y, M, d, h, m, s, S int) time.Time { - return time.Date(y, time.Month(M), d, h, m, s, S*1000000, time.UTC) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/elems.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/elems.go index d0eb7a04..4ffb6cd9 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/elems.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/elems.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fields.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fields.go index 41355d61..29fc2a1d 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fields.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fmt.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fmt.go index 7103a1d6..d4ae87a1 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fmt.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/fmt.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/prog.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/prog.go index 1ef7962a..cee6f3d4 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/prog.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/prog.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/util.go b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/util.go index 84dc4bce..f6b5a0c4 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/dtfmt/util.go +++ b/vendor/github.com/elastic/beats/libbeat/common/dtfmt/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dtfmt import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/endpoint.go b/vendor/github.com/elastic/beats/libbeat/common/endpoint.go index 8150b84d..70989ba9 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/endpoint.go +++ b/vendor/github.com/elastic/beats/libbeat/common/endpoint.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 // Endpoint represents an endpoint in the communication. diff --git a/vendor/github.com/elastic/beats/libbeat/common/event.go b/vendor/github.com/elastic/beats/libbeat/common/event.go index 65e7a4ce..e2c4fe42 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/event.go +++ b/vendor/github.com/elastic/beats/libbeat/common/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/event_test.go b/vendor/github.com/elastic/beats/libbeat/common/event_test.go deleted file mode 100644 index 6f80dbef..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/event_test.go +++ /dev/null @@ -1,455 +0,0 @@ -package common - -import ( - "encoding/json" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/logp" -) - -func TestConvertNestedMapStr(t *testing.T) { - logp.TestingSetup() - - type io struct { - Input MapStr - Output MapStr - } - - type String string - - tests := []io{ - { - Input: MapStr{ - "key": MapStr{ - "key1": "value1", - }, - }, - Output: MapStr{ - "key": MapStr{ - "key1": "value1", - }, - }, - }, - { - Input: MapStr{ - "key": MapStr{ - "key1": String("value1"), - }, - }, - Output: MapStr{ - "key": MapStr{ - "key1": "value1", - }, - }, - }, - { - Input: MapStr{ - "key": MapStr{ - "key1": []string{"value1", "value2"}, - }, - }, - Output: MapStr{ - "key": MapStr{ - "key1": []string{"value1", "value2"}, - }, - }, - }, - { - Input: MapStr{ - "key": MapStr{ - "key1": []String{"value1", "value2"}, - }, - }, - Output: MapStr{ - "key": MapStr{ - "key1": []interface{}{"value1", "value2"}, - }, - }, - }, - { - Input: MapStr{ - "@timestamp": MustParseTime("2015-03-01T12:34:56.123Z"), - }, - Output: MapStr{ - "@timestamp": MustParseTime("2015-03-01T12:34:56.123Z"), - }, - }, - { - Input: MapStr{ - "env": nil, - "key2": uintptr(88), - "key3": func() { t.Log("hello") }, - }, - Output: MapStr{}, - }, - { - Input: MapStr{ - "key": []MapStr{ - {"keyX": []String{"value1", "value2"}}, - }, - }, - Output: MapStr{ - "key": []MapStr{ - {"keyX": []interface{}{"value1", "value2"}}, - }, - }, - }, - { - Input: MapStr{ - "key": []interface{}{ - MapStr{"key1": []string{"value1", "value2"}}, - }, - }, - Output: MapStr{ - "key": []interface{}{ - MapStr{"key1": []string{"value1", "value2"}}, - }, - }, - }, - { - MapStr{"k": map[string]int{"hits": 1}}, - MapStr{"k": MapStr{"hits": float64(1)}}, - }, - } - - for i, test := range tests { - assert.Equal(t, test.Output, ConvertToGenericEvent(test.Input), "Test case %d", i) - } -} - -func TestConvertNestedStruct(t *testing.T) { - logp.TestingSetup() - - type io struct { - Input MapStr - Output MapStr - } - - type TestStruct struct { - A string - B int - } - - tests := []io{ - { - Input: MapStr{ - "key": MapStr{ - "key1": TestStruct{ - A: "hello", - B: 5, - }, - }, - }, - Output: MapStr{ - "key": MapStr{ - "key1": MapStr{ - "A": "hello", - "B": float64(5), - }, - }, - }, - }, - { - Input: MapStr{ - "key": []interface{}{ - TestStruct{ - A: "hello", - B: 5, - }, - }, - }, - Output: MapStr{ - "key": []interface{}{ - MapStr{ - "A": "hello", - "B": float64(5), - }, - }, - }, - }, - } - - for i, test := range tests { - assert.EqualValues(t, test.Output, ConvertToGenericEvent(test.Input), "Test case %v", i) - } -} - -func TestNormalizeValue(t *testing.T) { - logp.TestingSetup() - - var nilStringPtr *string - someString := "foo" - - type mybool bool - type myint int32 - type myuint uint8 - - var tests = []struct { - in interface{} - out interface{} - }{ - {nil, nil}, - {&someString, someString}, // Pointers are dereferenced. - {nilStringPtr, nil}, // Nil pointers are dropped. - {NetString("test"), "test"}, // It honors the TextMarshaler contract. - {true, true}, - {int8(8), int8(8)}, - {uint8(8), uint8(8)}, - {"hello", "hello"}, - {map[string]interface{}{"foo": "bar"}, MapStr{"foo": "bar"}}, - - // Other map types are converted using marshalUnmarshal which will lose - // type information for arrays which become []interface{} and numbers - // which all become float64. - {map[string]string{"foo": "bar"}, MapStr{"foo": "bar"}}, - {map[string][]string{"list": {"foo", "bar"}}, MapStr{"list": []interface{}{"foo", "bar"}}}, - - {[]string{"foo", "bar"}, []string{"foo", "bar"}}, - {[]bool{true, false}, []bool{true, false}}, - {[]string{"foo", "bar"}, []string{"foo", "bar"}}, - {[]int{10, 11}, []int{10, 11}}, - {[]MapStr{{"foo": "bar"}}, []MapStr{{"foo": "bar"}}}, - {[]map[string]interface{}{{"foo": "bar"}}, []MapStr{{"foo": "bar"}}}, - - // Wrapper types are converted to primitives using reflection. - {mybool(true), true}, - {myint(32), int64(32)}, - {myuint(8), uint64(8)}, - - // Slices of wrapper types are converted to an []interface{} of primitives. - {[]mybool{true, false}, []interface{}{true, false}}, - {[]myint{32}, []interface{}{int64(32)}}, - {[]myuint{8}, []interface{}{uint64(8)}}, - } - - for i, test := range tests { - out, err := normalizeValue(test.in) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.out, out, "Test case %v", i) - } - - var floatTests = []struct { - in interface{} - out interface{} - }{ - {float32(1), float64(1)}, - {float64(1), float64(1)}, - } - - for i, test := range floatTests { - out, err := normalizeValue(test.in) - if err != nil { - t.Error(err) - continue - } - assert.InDelta(t, test.out, float64(out.(Float)), 0.000001, "(approximate) Test case %v", i) - } -} - -func TestNormalizeMapError(t *testing.T) { - badInputs := []MapStr{ - {"func": func() {}}, - {"chan": make(chan struct{})}, - {"uintptr": uintptr(123)}, - } - - for i, in := range badInputs { - _, errs := normalizeMap(in, "bad.type") - if assert.Len(t, errs, 1) { - t.Log(errs[0]) - assert.Contains(t, errs[0].Error(), "key=bad.type", "Test case %v", i) - } - } -} - -func TestJoinKeys(t *testing.T) { - assert.Equal(t, "", joinKeys("")) - assert.Equal(t, "co", joinKeys("co")) - assert.Equal(t, "co.elastic", joinKeys("", "co", "elastic")) - assert.Equal(t, "co.elastic", joinKeys("co", "elastic")) -} - -func TestMarshalUnmarshalMap(t *testing.T) { - tests := []struct { - in MapStr - out MapStr - }{ - {MapStr{"names": []string{"a", "b"}}, MapStr{"names": []interface{}{"a", "b"}}}, - } - - for i, test := range tests { - var out MapStr - err := marshalUnmarshal(test.in, &out) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.out, out, "Test case %v", i) - } -} - -func TestMarshalUnmarshalArray(t *testing.T) { - tests := []struct { - in interface{} - out interface{} - }{ - {[]string{"a", "b"}, []interface{}{"a", "b"}}, - } - - for i, test := range tests { - var out interface{} - err := marshalUnmarshal(test.in, &out) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.out, out, "Test case %v", i) - } -} - -func TestMarshalFloatValues(t *testing.T) { - assert := assert.New(t) - - var f float64 - - f = 5 - - a := MapStr{ - "f": Float(f), - } - - b, err := json.Marshal(a) - assert.Nil(err) - assert.Equal(string(b), "{\"f\":5.000000}") -} - -func TestNormalizeTime(t *testing.T) { - ny, err := time.LoadLocation("America/New_York") - if err != nil { - t.Fatal(err) - } - - now := time.Now().In(ny) - v, errs := normalizeValue(now, "@timestamp") - if len(errs) > 0 { - t.Fatal(errs) - } - - utcCommonTime, ok := v.(Time) - if !ok { - t.Fatalf("expected common.Time, but got %T (%v)", v, v) - } - - assert.Equal(t, time.UTC, time.Time(utcCommonTime).Location()) - assert.True(t, now.Equal(time.Time(utcCommonTime))) -} - -// Uses TextMarshaler interface. -func BenchmarkConvertToGenericEventNetString(b *testing.B) { - for i := 0; i < b.N; i++ { - ConvertToGenericEvent(MapStr{"key": NetString("hola")}) - } -} - -// Uses reflection. -func BenchmarkConvertToGenericEventMapStringString(b *testing.B) { - for i := 0; i < b.N; i++ { - ConvertToGenericEvent(MapStr{"key": map[string]string{"greeting": "hola"}}) - } -} - -// Uses recursion to step into the nested MapStr. -func BenchmarkConvertToGenericEventMapStr(b *testing.B) { - for i := 0; i < b.N; i++ { - ConvertToGenericEvent(MapStr{"key": map[string]interface{}{"greeting": "hola"}}) - } -} - -// No reflection required. -func BenchmarkConvertToGenericEventStringSlice(b *testing.B) { - for i := 0; i < b.N; i++ { - ConvertToGenericEvent(MapStr{"key": []string{"foo", "bar"}}) - } -} - -// Uses reflection to convert the string array. -func BenchmarkConvertToGenericEventCustomStringSlice(b *testing.B) { - type myString string - for i := 0; i < b.N; i++ { - ConvertToGenericEvent(MapStr{"key": []myString{"foo", "bar"}}) - } -} - -// Pointers require reflection to generically dereference. -func BenchmarkConvertToGenericEventStringPointer(b *testing.B) { - val := "foo" - for i := 0; i < b.N; i++ { - ConvertToGenericEvent(MapStr{"key": &val}) - } -} -func TestDeDotJSON(t *testing.T) { - var tests = []struct { - input []byte - output []byte - valuer func() interface{} - }{ - { - input: []byte(`[ - {"key_with_dot.1":"value1_1"}, - {"key_without_dot_2":"value1_2"}, - {"key_with_multiple.dots.3": {"key_with_dot.2":"value2_1"}} - ] - `), - output: []byte(`[ - {"key_with_dot_1":"value1_1"}, - {"key_without_dot_2":"value1_2"}, - {"key_with_multiple_dots_3": {"key_with_dot_2":"value2_1"}} - ] - `), - valuer: func() interface{} { return []interface{}{} }, - }, - { - input: []byte(`{ - "key_without_dot_l1": { - "key_with_dot.l2": 1, - "key.with.multiple.dots_l2": 2, - "key_without_dot_l2": { - "key_with_dot.l3": 3, - "key.with.multiple.dots_l3": 4 - } - } - } - `), - output: []byte(`{ - "key_without_dot_l1": { - "key_with_dot_l2": 1, - "key_with_multiple_dots_l2": 2, - "key_without_dot_l2": { - "key_with_dot_l3": 3, - "key_with_multiple_dots_l3": 4 - } - } - } - `), - valuer: func() interface{} { return map[string]interface{}{} }, - }, - } - for _, test := range tests { - input, output := test.valuer(), test.valuer() - assert.Nil(t, json.Unmarshal(test.input, &input)) - assert.Nil(t, json.Unmarshal(test.output, &output)) - assert.Equal(t, output, DeDotJSON(input)) - if _, ok := test.valuer().(map[string]interface{}); ok { - assert.Equal(t, MapStr(output.(map[string]interface{})), DeDotJSON(MapStr(input.(map[string]interface{})))) - } - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/field.go b/vendor/github.com/elastic/beats/libbeat/common/field.go index 76818708..d69a75e9 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/field.go +++ b/vendor/github.com/elastic/beats/libbeat/common/field.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( @@ -35,6 +52,7 @@ type Field struct { DocValues *bool `config:"doc_values"` CopyTo string `config:"copy_to"` IgnoreAbove int `config:"ignore_above"` + AliasPath string `config:"path"` // Kibana specific Analyzed *bool `config:"analyzed"` diff --git a/vendor/github.com/elastic/beats/libbeat/common/field_test.go b/vendor/github.com/elastic/beats/libbeat/common/field_test.go deleted file mode 100644 index 6c128b9b..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/field_test.go +++ /dev/null @@ -1,174 +0,0 @@ -package common - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/go-ucfg/yaml" -) - -func TestFieldsHasKey(t *testing.T) { - tests := []struct { - key string - fields Fields - result bool - }{ - { - key: "test.find", - fields: Fields{}, - result: false, - }, - { - key: "test.find", - fields: Fields{ - Field{Name: "test"}, - Field{Name: "find"}, - }, - result: false, - }, - { - key: "test.find", - fields: Fields{ - Field{ - Name: "test", Fields: Fields{ - Field{ - Name: "find", - }, - }, - }, - }, - result: true, - }, - { - key: "test", - fields: Fields{ - Field{ - Name: "test", Fields: Fields{ - Field{ - Name: "find", - }, - }, - }, - }, - result: false, - }, - } - - for _, test := range tests { - assert.Equal(t, test.result, test.fields.HasKey(test.key)) - } -} - -func TestDynamicYaml(t *testing.T) { - tests := []struct { - input []byte - output Field - error bool - }{ - { - input: []byte(` -name: test -dynamic: true`), - output: Field{ - Name: "test", - Dynamic: DynamicType{true}, - }, - }, - { - input: []byte(` -name: test -dynamic: "true"`), - output: Field{ - Name: "test", - Dynamic: DynamicType{true}, - }, - }, - { - input: []byte(` -name: test -dynamic: "blue"`), - error: true, - }, - { - input: []byte(` -name: test -dynamic: "strict"`), - output: Field{ - Name: "test", - Dynamic: DynamicType{"strict"}, - }, - }, - } - - for _, test := range tests { - keys := Field{} - - cfg, err := yaml.NewConfig(test.input) - assert.NoError(t, err) - err = cfg.Unpack(&keys) - - if err != nil { - assert.True(t, test.error) - } else { - assert.Equal(t, test.output.Dynamic, keys.Dynamic) - } - } -} - -func TestGetKeys(t *testing.T) { - tests := []struct { - fields Fields - keys []string - }{ - { - fields: Fields{ - Field{ - Name: "test", Fields: Fields{ - Field{ - Name: "find", - }, - }, - }, - }, - keys: []string{"test.find"}, - }, - { - fields: Fields{ - Field{ - Name: "a", Fields: Fields{ - Field{ - Name: "b", - }, - }, - }, - Field{ - Name: "a", Fields: Fields{ - Field{ - Name: "c", - }, - }, - }, - }, - keys: []string{"a.b", "a.c"}, - }, - { - fields: Fields{ - Field{ - Name: "a", - }, - Field{ - Name: "b", - }, - Field{ - Name: "c", - }, - }, - keys: []string{"a", "b", "c"}, - }, - } - - for _, test := range tests { - assert.Equal(t, test.keys, test.fields.GetKeys()) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/file_other.go b/vendor/github.com/elastic/beats/libbeat/common/file/file_other.go index 9e1fb967..1ac4ecb2 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/file_other.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/file_other.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !windows package file diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/file_other_test.go b/vendor/github.com/elastic/beats/libbeat/common/file/file_other_test.go deleted file mode 100644 index 29c3cf68..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/file/file_other_test.go +++ /dev/null @@ -1,69 +0,0 @@ -// +build !windows,!integration - -package file - -import ( - "io/ioutil" - "math" - "os" - "runtime" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestGetOSFileState(t *testing.T) { - file, err := ioutil.TempFile("", "") - assert.Nil(t, err) - - fileinfo, err := file.Stat() - assert.Nil(t, err) - - state := GetOSState(fileinfo) - - assert.True(t, state.Inode > 0) - - if runtime.GOOS == "openbsd" { - // The first device on OpenBSD has an ID of 0 so allow this. - assert.True(t, state.Device >= 0, "Device %d", state.Device) - } else { - assert.True(t, state.Device > 0, "Device %d", state.Device) - } -} - -func TestGetOSFileStateStat(t *testing.T) { - file, err := ioutil.TempFile("", "") - assert.Nil(t, err) - - fileinfo, err := os.Stat(file.Name()) - assert.Nil(t, err) - - state := GetOSState(fileinfo) - - assert.True(t, state.Inode > 0) - - if runtime.GOOS == "openbsd" { - // The first device on OpenBSD has an ID of 0 so allow this. - assert.True(t, state.Device >= 0, "Device %d", state.Device) - } else { - assert.True(t, state.Device > 0, "Device %d", state.Device) - } -} - -func BenchmarkStateString(b *testing.B) { - var samples [50]uint64 - for i, v := 0, uint64(0); i < len(samples); i, v = i+1, v+math.MaxUint64/uint64(len(samples)) { - samples[i] = v - } - - for i := 0; i < b.N; i++ { - for _, inode := range samples { - for _, device := range samples { - st := StateOS{Inode: inode, Device: device} - if st.String() == "" { - b.Fatal("empty state string") - } - } - } - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/file_windows.go b/vendor/github.com/elastic/beats/libbeat/common/file/file_windows.go index dd31ccac..98ae70a0 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/file_windows.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/file_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/file_windows_test.go b/vendor/github.com/elastic/beats/libbeat/common/file/file_windows_test.go deleted file mode 100644 index d77643a2..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/file/file_windows_test.go +++ /dev/null @@ -1,39 +0,0 @@ -// +build !integration - -package file - -import ( - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestGetOSState(t *testing.T) { - file, err := ioutil.TempFile("", "") - assert.Nil(t, err) - - fileinfo, err := file.Stat() - assert.Nil(t, err) - - state := GetOSState(fileinfo) - - assert.True(t, state.IdxHi > 0) - assert.True(t, state.IdxLo > 0) - assert.True(t, state.Vol > 0) -} - -func TestGetOSStateStat(t *testing.T) { - file, err := ioutil.TempFile("", "") - assert.Nil(t, err) - - fileinfo, err := os.Stat(file.Name()) - assert.Nil(t, err) - - state := GetOSState(fileinfo) - - assert.True(t, state.IdxHi > 0) - assert.True(t, state.IdxLo > 0) - assert.True(t, state.Vol > 0) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo.go b/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo.go index 05e9f2d2..6b3027ad 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_test.go b/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_test.go deleted file mode 100644 index edec76d1..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_test.go +++ /dev/null @@ -1,78 +0,0 @@ -// +build !windows,!openbsd - -// Test for openbsd are excluded here as info.GID() returns 0 instead of the actual value -// As the code does not seem to be used in any of the beats, this should be ok -// Still it would be interesting to know why it returns 0. - -package file_test - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common/file" -) - -func TestStat(t *testing.T) { - f, err := ioutil.TempFile("", "teststat") - if err != nil { - t.Fatal(err) - } - defer os.Remove(f.Name()) - - link := filepath.Join(os.TempDir(), "teststat-link") - if err := os.Symlink(f.Name(), link); err != nil { - t.Fatal(err) - } - defer os.Remove(link) - - info, err := file.Stat(link) - if err != nil { - t.Fatal(err) - } - - assert.True(t, info.Mode().IsRegular()) - - uid, err := info.UID() - if err != nil { - t.Fatal(err) - } - assert.EqualValues(t, os.Geteuid(), uid) - - gid, err := info.GID() - if err != nil { - t.Fatal(err) - } - assert.EqualValues(t, os.Getegid(), gid) -} - -func TestLstat(t *testing.T) { - link := filepath.Join(os.TempDir(), "link") - if err := os.Symlink("dummy", link); err != nil { - t.Fatal(err) - } - defer os.Remove(link) - - info, err := file.Lstat(link) - if err != nil { - t.Fatal(err) - } - - assert.True(t, info.Mode()&os.ModeSymlink > 0) - - uid, err := info.UID() - if err != nil { - t.Fatal(err) - } - assert.EqualValues(t, os.Geteuid(), uid) - - gid, err := info.GID() - if err != nil { - t.Fatal(err) - } - assert.EqualValues(t, os.Getegid(), gid) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_unix.go b/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_unix.go index 68d60b1c..80f5ccf7 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_unix.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_unix.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !windows package file diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_windows.go b/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_windows.go index e6ae54ae..5d8e3dfa 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_windows.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/fileinfo_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/helper_other.go b/vendor/github.com/elastic/beats/libbeat/common/file/helper_other.go index 43282eb5..7c9f8766 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/helper_other.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/helper_other.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !windows package file diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/helper_test.go b/vendor/github.com/elastic/beats/libbeat/common/file/helper_test.go deleted file mode 100644 index a4df8770..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/file/helper_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// +build !integration - -package file - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestSafeFileRotateExistingFile(t *testing.T) { - tempdir, err := ioutil.TempDir("", "") - assert.NoError(t, err) - defer func() { - assert.NoError(t, os.RemoveAll(tempdir)) - }() - - // create an existing registry file - err = ioutil.WriteFile(filepath.Join(tempdir, "registry"), - []byte("existing filebeat"), 0x777) - assert.NoError(t, err) - - // create a new registry.new file - err = ioutil.WriteFile(filepath.Join(tempdir, "registry.new"), - []byte("new filebeat"), 0x777) - assert.NoError(t, err) - - // rotate registry.new into registry - err = SafeFileRotate(filepath.Join(tempdir, "registry"), - filepath.Join(tempdir, "registry.new")) - assert.NoError(t, err) - - contents, err := ioutil.ReadFile(filepath.Join(tempdir, "registry")) - assert.NoError(t, err) - assert.Equal(t, []byte("new filebeat"), contents) - - // do it again to make sure we deal with deleting the old file - - err = ioutil.WriteFile(filepath.Join(tempdir, "registry.new"), - []byte("new filebeat 1"), 0x777) - assert.NoError(t, err) - - err = SafeFileRotate(filepath.Join(tempdir, "registry"), - filepath.Join(tempdir, "registry.new")) - assert.NoError(t, err) - - contents, err = ioutil.ReadFile(filepath.Join(tempdir, "registry")) - assert.NoError(t, err) - assert.Equal(t, []byte("new filebeat 1"), contents) - - // and again for good measure - - err = ioutil.WriteFile(filepath.Join(tempdir, "registry.new"), - []byte("new filebeat 2"), 0x777) - assert.NoError(t, err) - - err = SafeFileRotate(filepath.Join(tempdir, "registry"), - filepath.Join(tempdir, "registry.new")) - assert.NoError(t, err) - - contents, err = ioutil.ReadFile(filepath.Join(tempdir, "registry")) - assert.NoError(t, err) - assert.Equal(t, []byte("new filebeat 2"), contents) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/helper_windows.go b/vendor/github.com/elastic/beats/libbeat/common/file/helper_windows.go index 43aca36e..a6922423 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/helper_windows.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/helper_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/rotator.go b/vendor/github.com/elastic/beats/libbeat/common/file/rotator.go index d208ce07..45446a9c 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/file/rotator.go +++ b/vendor/github.com/elastic/beats/libbeat/common/file/rotator.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 file import ( @@ -13,6 +30,28 @@ import ( // greater will result in an error. const MaxBackupsLimit = 1024 +// rotateReason is the reason why file rotation occurred. +type rotateReason uint32 + +const ( + rotateReasonInitializing rotateReason = iota + 1 + rotateReasonFileSize + rotateReasonManualTrigger +) + +func (rr rotateReason) String() string { + switch rr { + case rotateReasonInitializing: + return "initializing" + case rotateReasonFileSize: + return "file size" + case rotateReasonManualTrigger: + return "manual trigger" + default: + return "unknown" + } +} + // Rotator is a io.WriteCloser that automatically rotates the file it is // writing to when it reaches a maximum size. It also purges the oldest rotated // files when the maximum number of backups is reached. @@ -21,12 +60,18 @@ type Rotator struct { maxSizeBytes uint maxBackups uint permissions os.FileMode + log Logger // Optional Logger (may be nil). file *os.File size uint mutex sync.Mutex } +// Logger allows the rotator to write debug information. +type Logger interface { + Debugw(msg string, keysAndValues ...interface{}) // Debug +} + // RotatorOption is a configuration option for Rotator. type RotatorOption func(r *Rotator) @@ -55,6 +100,14 @@ func Permissions(m os.FileMode) RotatorOption { } } +// WithLogger injects a logger implementation for logging debug information. +// If no logger is injected then the no logging will occur. +func WithLogger(l Logger) RotatorOption { + return func(r *Rotator) { + r.log = l + } +} + // NewFileRotator returns a new Rotator. func NewFileRotator(filename string, options ...RotatorOption) (*Rotator, error) { r := &Rotator{ @@ -78,6 +131,15 @@ func NewFileRotator(filename string, options ...RotatorOption) (*Rotator, error) return nil, errors.Errorf("file rotator permissions mask of %o is invalid", r.permissions) } + if r.log != nil { + r.log.Debugw("Initialized file rotator", + "filename", r.filename, + "max_size_bytes", r.maxSizeBytes, + "max_backups", r.maxBackups, + "permissions", r.permissions, + ) + } + return r, nil } @@ -99,7 +161,7 @@ func (r *Rotator) Write(data []byte) (int, error) { return 0, err } } else if r.size+dataLen > r.maxSizeBytes { - if err := r.rotate(); err != nil { + if err := r.rotate(rotateReasonFileSize); err != nil { return 0, err } if err := r.openFile(); err != nil { @@ -128,7 +190,7 @@ func (r *Rotator) Sync() error { func (r *Rotator) Rotate() error { r.mutex.Lock() defer r.mutex.Unlock() - return r.rotate() + return r.rotate(rotateReasonManualTrigger) } // Close closes the currently open file. @@ -168,7 +230,7 @@ func (r *Rotator) openNew() error { _, err = os.Stat(r.filename) if err == nil { - if err = r.rotate(); err != nil { + if err = r.rotate(rotateReasonInitializing); err != nil { return err } } @@ -220,7 +282,7 @@ func (r *Rotator) purgeOldBackups() error { return nil } -func (r *Rotator) rotate() error { +func (r *Rotator) rotate(reason rotateReason) error { if err := r.closeFile(); err != nil { return errors.Wrap(err, "error file closing current file") } @@ -240,6 +302,11 @@ func (r *Rotator) rotate() error { } if err := os.Rename(old, older); err != nil { return errors.Wrap(err, "failed to rotate backups") + } else if i == 1 { + // Log when rotation of the main file occurs. + if r.log != nil { + r.log.Debugw("Rotating file", "filename", old, "reason", reason) + } } } diff --git a/vendor/github.com/elastic/beats/libbeat/common/file/rotator_test.go b/vendor/github.com/elastic/beats/libbeat/common/file/rotator_test.go deleted file mode 100644 index 134fa408..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/file/rotator_test.go +++ /dev/null @@ -1,111 +0,0 @@ -package file - -import ( - "io/ioutil" - "os" - "path/filepath" - "sort" - "sync" - "testing" - - "github.com/stretchr/testify/assert" -) - -const logMessage = "Test file rotator.\n" - -func TestFileRotator(t *testing.T) { - dir, err := ioutil.TempDir("", "file_rotator") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - filename := filepath.Join(dir, "sample.log") - r, err := NewFileRotator(filename, MaxBackups(2)) - if err != nil { - t.Fatal(err) - } - defer r.Close() - - WriteMsg(t, r) - AssertDirContents(t, dir, "sample.log") - - Rotate(t, r) - AssertDirContents(t, dir, "sample.log.1") - - WriteMsg(t, r) - AssertDirContents(t, dir, "sample.log", "sample.log.1") - - Rotate(t, r) - AssertDirContents(t, dir, "sample.log.1", "sample.log.2") - - WriteMsg(t, r) - AssertDirContents(t, dir, "sample.log", "sample.log.1", "sample.log.2") - - Rotate(t, r) - AssertDirContents(t, dir, "sample.log.1", "sample.log.2") - - Rotate(t, r) - AssertDirContents(t, dir, "sample.log.2") -} - -func TestFileRotatorConcurrently(t *testing.T) { - dir, err := ioutil.TempDir("", "file_rotator") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - filename := filepath.Join(dir, "sample.log") - r, err := NewFileRotator(filename, MaxBackups(2)) - if err != nil { - t.Fatal(err) - } - defer r.Close() - - var wg sync.WaitGroup - wg.Add(1000) - for i := 0; i < 1000; i++ { - go func() { - defer wg.Done() - WriteMsg(t, r) - }() - } - wg.Wait() -} - -func AssertDirContents(t *testing.T, dir string, files ...string) { - t.Helper() - - f, err := os.Open(dir) - if err != nil { - t.Fatal(err) - } - - names, err := f.Readdirnames(-1) - if err != nil { - t.Fatal(err) - } - - sort.Strings(files) - sort.Strings(names) - assert.EqualValues(t, files, names) -} - -func WriteMsg(t *testing.T, r *Rotator) { - t.Helper() - - n, err := r.Write([]byte(logMessage)) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, len(logMessage), n) -} - -func Rotate(t *testing.T, r *Rotator) { - t.Helper() - - if err := r.Rotate(); err != nil { - t.Fatal(err) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/flags.go b/vendor/github.com/elastic/beats/libbeat/common/flags.go index a78201d6..959aef46 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/flags.go +++ b/vendor/github.com/elastic/beats/libbeat/common/flags.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/flags_test.go b/vendor/github.com/elastic/beats/libbeat/common/flags_test.go deleted file mode 100644 index d77a9882..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/flags_test.go +++ /dev/null @@ -1,177 +0,0 @@ -package common - -import ( - "bytes" - "flag" - "fmt" - "io" - "os" - "strings" - "testing" - - "github.com/spf13/cobra" - "github.com/stretchr/testify/assert" -) - -func TestStringArrFlag(t *testing.T) { - tests := []struct { - init []string - def string - in []string - expected []string - }{ - {nil, "test", nil, []string{"test"}}, - {nil, "test", []string{"new"}, []string{"new"}}, - {nil, "test", []string{"a", "b"}, []string{"a", "b"}}, - {[]string{"default"}, "newdefault", nil, []string{"newdefault"}}, - {[]string{"default"}, "newdefault", []string{"arg"}, []string{"arg"}}, - {[]string{"default"}, "newdefault", []string{"a", "b"}, []string{"a", "b"}}, - {[]string{"default"}, "newdefault", []string{"a", "b", "a", "b"}, []string{"a", "b"}}, - } - - for _, test := range tests { - test := test - name := fmt.Sprintf("init=%v,default=%v,in=%v,out=%v", test.init, test.def, test.in, test.expected) - - t.Run(name, func(t *testing.T) { - init := make([]string, len(test.init)) - copy(init, test.init) - - fs := flag.NewFlagSet("test", flag.ContinueOnError) - flag := StringArrVarFlag(fs, &init, "a", "add") - - if test.def != "" { - flag.SetDefault(test.def) - } - - defaultValue := flag.String() - - goflagUsage, _ := withStderr(fs.PrintDefaults) - goflagExpectedUsage := fmt.Sprintf(" -a value\n \tadd (default %v)\n", defaultValue) - - cmd := cobra.Command{} - cmd.PersistentFlags().AddGoFlag(fs.Lookup("a")) - cobraUsage := cmd.LocalFlags().FlagUsages() - cobraExpectedUsage := fmt.Sprintf(" -a, --a string add (default \"%v\")\n", defaultValue) - - for _, v := range test.in { - err := flag.Set(v) - if err != nil { - t.Error(err) - } - } - - assert.Equal(t, goflagExpectedUsage, goflagUsage) - assert.Equal(t, cobraExpectedUsage, cobraUsage) - assert.Equal(t, test.expected, init) - assert.Equal(t, test.expected, flag.List()) - }) - } -} - -func TestSettingsFlag(t *testing.T) { - tests := []struct { - in []string - expected map[string]interface{} - }{ - {nil, nil}, - {[]string{"a=1"}, map[string]interface{}{"a": uint64(1)}}, - {[]string{"a=1", "b=false"}, map[string]interface{}{"a": uint64(1), "b": false}}, - {[]string{"a=1", "b"}, map[string]interface{}{"a": uint64(1), "b": true}}, - {[]string{"a=1", "c=${a}"}, map[string]interface{}{"a": uint64(1), "c": uint64(1)}}, - } - - for _, test := range tests { - test := test - name := strings.Join(test.in, ",") - - t.Run(name, func(t *testing.T) { - config := NewConfig() - f := NewSettingsFlag(config) - - fs := flag.NewFlagSet("test", flag.ContinueOnError) - fs.Var(f, "s", "message") - - goflagUsage, _ := withStderr(fs.PrintDefaults) - goflagExpectedUsage := " -s value\n \tmessage\n" - - cmd := cobra.Command{} - cmd.PersistentFlags().AddGoFlag(fs.Lookup("s")) - cobraUsage := cmd.LocalFlags().FlagUsages() - cobraExpectedUsage := " -s, --s setting=value message\n" - - for _, in := range test.in { - err := f.Set(in) - if err != nil { - t.Error(err) - } - } - - var result map[string]interface{} - err := config.Unpack(&result) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, goflagExpectedUsage, goflagUsage) - assert.Equal(t, cobraExpectedUsage, cobraUsage) - assert.Equal(t, test.expected, result) - }) - } -} - -func TestOverwriteFlag(t *testing.T) { - config, err := NewConfigFrom(map[string]interface{}{ - "a": "test", - }) - if err != nil { - panic(err) - } - - fs := flag.NewFlagSet("test", flag.ContinueOnError) - ConfigOverwriteFlag(fs, config, "a", "a", "", "message") - - goflagUsage, _ := withStderr(fs.PrintDefaults) - goflagExpectedUsage := " -a value\n \tmessage\n" - assert.Equal(t, goflagExpectedUsage, goflagUsage) - - cmd := cobra.Command{} - cmd.PersistentFlags().AddGoFlag(fs.Lookup("a")) - cobraUsage := cmd.LocalFlags().FlagUsages() - cobraExpectedUsage := " -a, --a string message\n" - assert.Equal(t, cobraExpectedUsage, cobraUsage) - - fs.Set("a", "overwrite") - final, err := config.String("a", -1) - assert.NoError(t, err) - assert.Equal(t, "overwrite", final) -} - -// capture stderr and return captured string -func withStderr(fn func()) (string, error) { - stderr := os.Stderr - - r, w, err := os.Pipe() - if err != nil { - return "", err - } - - os.Stderr = w - defer func() { - os.Stderr = stderr - }() - - outC := make(chan string) - go func() { - // capture all output - var buf bytes.Buffer - _, err = io.Copy(&buf, r) - r.Close() - outC <- buf.String() - }() - - fn() - w.Close() - result := <-outC - return result, err -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatevents.go b/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatevents.go index 724d66e3..de201e4a 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatevents.go +++ b/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatevents.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fmtstr import ( @@ -90,7 +107,7 @@ func releaseCtx(c *eventEvalContext) { eventCtxPool.Put(c) } -// MustCompileEvent copmiles an event format string into an runnable +// MustCompileEvent compiles an event format string into an runnable // EventFormatString. Generates a panic if compilation fails. func MustCompileEvent(in string) *EventFormatString { fs, err := CompileEvent(in) diff --git a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatevents_test.go b/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatevents_test.go deleted file mode 100644 index 3d2cdeb4..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatevents_test.go +++ /dev/null @@ -1,246 +0,0 @@ -package fmtstr - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -func TestEventFormatString(t *testing.T) { - tests := []struct { - title string - format string - event beat.Event - expected string - fields []string - }{ - { - "no fields configured", - "format string", - beat.Event{}, - "format string", - nil, - }, - { - "expand event field", - "%{[key]}", - beat.Event{Fields: common.MapStr{"key": "value"}}, - "value", - []string{"key"}, - }, - { - "expand with default", - "%{[key]:default}", - beat.Event{Fields: common.MapStr{}}, - "default", - nil, - }, - { - "expand nested event field", - "%{[nested.key]}", - beat.Event{Fields: common.MapStr{"nested": common.MapStr{"key": "value"}}}, - "value", - []string{"nested.key"}, - }, - { - "expand nested event field (alt. syntax)", - "%{[nested][key]}", - beat.Event{Fields: common.MapStr{"nested": common.MapStr{"key": "value"}}}, - "value", - []string{"nested.key"}, - }, - { - "multiple event fields", - "%{[key1]} - %{[key2]}", - beat.Event{Fields: common.MapStr{"key1": "v1", "key2": "v2"}}, - "v1 - v2", - []string{"key1", "key2"}, - }, - { - "same fields", - "%{[key]} - %{[key]}", - beat.Event{Fields: common.MapStr{"key": "value"}}, - "value - value", - []string{"key"}, - }, - { - "same fields with default (first)", - "%{[key]:default} - %{[key]}", - beat.Event{Fields: common.MapStr{"key": "value"}}, - "value - value", - []string{"key"}, - }, - { - "same fields with default (second)", - "%{[key]} - %{[key]:default}", - beat.Event{Fields: common.MapStr{"key": "value"}}, - "value - value", - []string{"key"}, - }, - { - "test timestamp formatter", - "%{[key]}: %{+YYYY.MM.dd}", - beat.Event{ - Timestamp: time.Date(2015, 5, 1, 20, 12, 34, 0, time.Local), - Fields: common.MapStr{ - "key": "timestamp", - }, - }, - "timestamp: 2015.05.01", - []string{"key"}, - }, - { - "test timestamp formatter", - "%{[@timestamp]}: %{+YYYY.MM.dd}", - beat.Event{ - Timestamp: time.Date(2015, 5, 1, 20, 12, 34, 0, time.Local), - Fields: common.MapStr{ - "key": "timestamp", - }, - }, - "2015-05-01T20:12:34.000Z: 2015.05.01", - []string{"@timestamp"}, - }, - } - - for i, test := range tests { - t.Logf("test(%v): %v", i, test.title) - - fs, err := CompileEvent(test.format) - if err != nil { - t.Error(err) - continue - } - - actual, err := fs.Run(&test.event) - - assert.NoError(t, err) - assert.Equal(t, test.expected, actual) - assert.Equal(t, test.fields, fs.Fields()) - } -} - -func TestEventFormatStringErrors(t *testing.T) { - tests := []struct { - title string - format string - expectCompiles bool - event beat.Event - }{ - { - "empty field", - "%{[]}", - false, beat.Event{}, - }, - { - "field not closed", - "%{[field}", - false, beat.Event{}, - }, - { - "no field accessor", - "%{field}", - false, beat.Event{}, - }, - { - "unknown operator", - "%{[field]:?fail}", - false, beat.Event{}, - }, - { - "too many operators", - "%{[field]:a:b}", - false, beat.Event{}, - }, - { - "invalid timestamp formatter", - "%{+abc}", - false, beat.Event{}, - }, - { - "missing required field", - "%{[key]}", - true, - beat.Event{Fields: common.MapStr{}}, - }, - } - - for i, test := range tests { - t.Logf("run (%v): %v", i, test.title) - - fs, err := CompileEvent(test.format) - if !test.expectCompiles { - assert.Error(t, err) - continue - } - if err != nil { - t.Error(err) - continue - } - - _, err = fs.Run(&test.event) - assert.Error(t, err) - } -} - -func TestEventFormatStringFromConfig(t *testing.T) { - tests := []struct { - v interface{} - event beat.Event - expected string - }{ - { - "plain string", - beat.Event{Fields: common.MapStr{}}, - "plain string", - }, - { - 100, - beat.Event{Fields: common.MapStr{}}, - "100", - }, - { - true, - beat.Event{Fields: common.MapStr{}}, - "true", - }, - { - "%{[key]}", - beat.Event{Fields: common.MapStr{"key": "value"}}, - "value", - }, - } - - for i, test := range tests { - t.Logf("run (%v): %v -> %v", i, test.v, test.expected) - - config, err := common.NewConfigFrom(common.MapStr{ - "test": test.v, - }) - if err != nil { - t.Error(err) - continue - } - - testConfig := struct { - Test *EventFormatString `config:"test"` - }{} - err = config.Unpack(&testConfig) - if err != nil { - t.Error(err) - continue - } - - actual, err := testConfig.Test.Run(&test.event) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.expected, actual) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatstring.go b/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatstring.go index ee46a057..1ded5c49 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatstring.go +++ b/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatstring.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fmtstr import ( @@ -28,7 +45,7 @@ type StringFormatter interface { } // VariableOp defines one expansion variable, including operator and parameter. -// variable operations are always introduced by a collon ':'. +// variable operations are always introduced by a colon ':'. // For example the format string %{x:p1:?p2} has 2 variable operations // (":", "p1") and (":?", "p2"). It's up to concrete format string implementation // to compile and interpret variable ops. @@ -103,7 +120,7 @@ var ( // // Variable expansion are enclosed in expansion braces `%{}`. // The `` can contain additional parameters separated by ops -// introduced by collons ':'. For example the format string `%{value:v1:?v2}` +// introduced by colons ':'. For example the format string `%{value:v1:?v2}` // will be parsed into variable expansion on `value` with variable ops // `[(":", "v1"), (":?", "v2")]`. It's up to the variable compiler to interpret // content and variable ops. diff --git a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatstring_test.go b/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatstring_test.go deleted file mode 100644 index 111efc66..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/fmtstr/formatstring_test.go +++ /dev/null @@ -1,156 +0,0 @@ -package fmtstr - -import ( - "errors" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestFormatString(t *testing.T) { - tests := []struct { - title string - pattern string - dyn, lookup map[string]string - expected string - }{ - { - "no interpolations", - "no interpolations", - nil, nil, - "no interpolations", - }, - { - "simple lookup standalone", - "%{k}", - nil, map[string]string{"k": "v"}, - "v", - }, - { - "simple lookup start of string", - "%{k} test", - nil, map[string]string{"k": "v"}, - "v test", - }, - { - "simple lookup end of string", - "test %{k}", - nil, map[string]string{"k": "v"}, - "test v", - }, - { - "simple lookup middle of string", - "pre %{k} post", - nil, map[string]string{"k": "v"}, - "pre v post", - }, - { - "compile lookup default", - "%{unknown:default}", - nil, nil, - "default", - }, - { - "just with % symbol", - "just with % symbol", - nil, nil, - "just with % symbol", - }, - { - "with escaped % symbol", - `\%{abc}`, - nil, nil, - "%{abc}", - }, - { - "with dynamic evaluation", - "my dynamic %{key}", - map[string]string{"key": "value"}, nil, - "my dynamic value", - }, - { - "test mixed", - "pre %{c} abc %{d} def %{c} post", - map[string]string{"d": "dynamic"}, - map[string]string{"c": "const"}, - "pre const abc dynamic def const post", - }, - } - - for i, test := range tests { - // stringElement wraps StringElement in order to disable - // optimization and enforce evaluation of formatter. - type stringElement struct { - StringElement - } - - t.Logf("run (%v): '%v'", i, test.title) - - // compile format string with test key lookup - sf, err := Compile(test.pattern, - func(key string, ops []VariableOp) (FormatEvaler, error) { - if test.lookup != nil { - if v, found := test.lookup[key]; found { - return StringElement{v}, nil - } - } - - if test.dyn != nil { - if v, found := test.dyn[key]; found { - return stringElement{StringElement{v}}, nil - } - } - - if len(ops) == 0 { - return nil, errors.New("no default operator") - } - - op := ops[0] - if op.op != ":" { - return nil, fmt.Errorf("invalid op: '%v'", op.op) - } - - return StringElement{ops[0].param}, nil - }, - ) - - // validate compile ok - if err != nil { - t.Error(err) - continue - } - - // run string formatter - actual, err := sf.Run(nil) - if err != nil { - t.Error(err) - continue - } - - // test validation - if test.dyn == nil { - assert.True(t, sf.IsConst()) - } else { - assert.False(t, sf.IsConst()) - } - assert.Equal(t, test.expected, actual) - } -} - -func TestFormatStringErrors(t *testing.T) { - tests := []struct { - title string - format string - }{ - {"missing close", "%{key"}, - {"nesting not allowed", "%{key %{nested}}"}, - } - - for i, test := range tests { - t.Logf("run (%v): %v", i, test.title) - - _, err := Compile(test.format, nil) - assert.Error(t, err) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/jsontransform/jsonhelper.go b/vendor/github.com/elastic/beats/libbeat/common/jsontransform/jsonhelper.go index 58f7df65..98a1da5e 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/jsontransform/jsonhelper.go +++ b/vendor/github.com/elastic/beats/libbeat/common/jsontransform/jsonhelper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jsontransform import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/jsontransform/transform.go b/vendor/github.com/elastic/beats/libbeat/common/jsontransform/transform.go index a6d065ee..dbb2d27c 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/jsontransform/transform.go +++ b/vendor/github.com/elastic/beats/libbeat/common/jsontransform/transform.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jsontransform import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/eventhandler.go b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/eventhandler.go index b651e465..a80a7894 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/eventhandler.go +++ b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/eventhandler.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes // ResourceEventHandler can handle notifications for events that happen to a diff --git a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/metadata.go b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/metadata.go index 2879b7ab..cc997d5c 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/metadata.go +++ b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/metadata.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes import ( @@ -9,6 +26,9 @@ import ( // MetaGenerator builds metadata objects for pods and containers type MetaGenerator interface { + // ResourceMetadata generates metadata for the given kubernetes object taking to account certain filters + ResourceMetadata(obj Resource) common.MapStr + // PodMetadata generates metadata for the given pod taking to account certain filters PodMetadata(pod *Pod) common.MapStr @@ -16,14 +36,19 @@ type MetaGenerator interface { ContainerMetadata(pod *Pod, container string) common.MapStr } -type metaGenerator struct { - IncludeLabels []string `config:"include_labels"` - ExcludeLabels []string `config:"exclude_labels"` - IncludeAnnotations []string `config:"include_annotations"` - IncludePodUID bool `config:"include_pod_uid"` - IncludeCreatorMetadata bool `config:"include_creator_metadata"` +// MetaGeneratorConfig settings +type MetaGeneratorConfig struct { + IncludeLabels []string `config:"include_labels"` + ExcludeLabels []string `config:"exclude_labels"` + IncludeAnnotations []string `config:"include_annotations"` + + // Undocumented settings, to be deprecated in favor of `drop_fields` processor: + IncludePodUID bool `config:"include_pod_uid"` + IncludeCreatorMetadata bool `config:"include_creator_metadata"` } +type metaGenerator = MetaGeneratorConfig + // NewMetaGenerator initializes and returns a new kubernetes metadata generator func NewMetaGenerator(cfg *common.Config) (MetaGenerator, error) { // default settings: @@ -35,15 +60,21 @@ func NewMetaGenerator(cfg *common.Config) (MetaGenerator, error) { return &generator, err } -// PodMetadata generates metadata for the given pod taking to account certain filters -func (g *metaGenerator) PodMetadata(pod *Pod) common.MapStr { +// NewMetaGeneratorFromConfig initializes and returns a new kubernetes metadata generator +func NewMetaGeneratorFromConfig(cfg *MetaGeneratorConfig) MetaGenerator { + return cfg +} + +// ResourceMetadata generates metadata for the given kubernetes object taking to account certain filters +func (g *metaGenerator) ResourceMetadata(obj Resource) common.MapStr { + objMeta := obj.GetMetadata() labelMap := common.MapStr{} if len(g.IncludeLabels) == 0 { - for k, v := range pod.Metadata.Labels { + for k, v := range obj.GetMetadata().Labels { safemapstr.Put(labelMap, k, v) } } else { - labelMap = generateMapSubset(pod.Metadata.Labels, g.IncludeLabels) + labelMap = generateMapSubset(objMeta.Labels, g.IncludeLabels) } // Exclude any labels that are present in the exclude_labels config @@ -51,32 +82,22 @@ func (g *metaGenerator) PodMetadata(pod *Pod) common.MapStr { delete(labelMap, label) } - annotationsMap := generateMapSubset(pod.Metadata.Annotations, g.IncludeAnnotations) - meta := common.MapStr{ - "pod": common.MapStr{ - "name": pod.Metadata.Name, - }, - "node": common.MapStr{ - "name": pod.Spec.NodeName, - }, - "namespace": pod.Metadata.Namespace, - } - - // Add Pod UID metadata if enabled - if g.IncludePodUID { - safemapstr.Put(meta, "pod.uid", pod.Metadata.UID) + annotationsMap := generateMapSubset(objMeta.Annotations, g.IncludeAnnotations) + meta := common.MapStr{} + if objMeta.GetNamespace() != "" { + meta["namespace"] = objMeta.GetNamespace() } // Add controller metadata if present if g.IncludeCreatorMetadata { - for _, ref := range pod.Metadata.OwnerReferences { - if ref.Controller { - switch ref.Kind { + for _, ref := range objMeta.OwnerReferences { + if ref.GetController() { + switch ref.GetKind() { // TODO grow this list as we keep adding more `state_*` metricsets case "Deployment", "ReplicaSet", "StatefulSet": - safemapstr.Put(meta, strings.ToLower(ref.Kind)+".name", ref.Name) + safemapstr.Put(meta, strings.ToLower(ref.GetKind())+".name", ref.GetName()) } } } @@ -93,6 +114,21 @@ func (g *metaGenerator) PodMetadata(pod *Pod) common.MapStr { return meta } +// PodMetadata generates metadata for the given pod taking to account certain filters +func (g *metaGenerator) PodMetadata(pod *Pod) common.MapStr { + podMeta := g.ResourceMetadata(pod) + + // Add UID metadata if enabled + if g.IncludePodUID { + safemapstr.Put(podMeta, "pod.uid", pod.GetMetadata().GetUid()) + } + + safemapstr.Put(podMeta, "pod.name", pod.GetMetadata().GetName()) + safemapstr.Put(podMeta, "node.name", pod.Spec.GetNodeName()) + + return podMeta +} + // Containermetadata generates metadata for the given container of a pod func (g *metaGenerator) ContainerMetadata(pod *Pod, container string) common.MapStr { podMeta := g.PodMetadata(pod) diff --git a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/metadata_test.go b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/metadata_test.go deleted file mode 100644 index 9b46c796..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/metadata_test.go +++ /dev/null @@ -1,92 +0,0 @@ -package kubernetes - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestPodMetadataDeDot(t *testing.T) { - withPodUID, _ := common.NewConfigFrom(map[string]interface{}{"include_pod_uid": true}) - - tests := []struct { - pod *Pod - meta common.MapStr - config *common.Config - }{ - { - pod: &Pod{ - Metadata: ObjectMeta{ - Labels: map[string]string{"a.key": "foo", "a": "bar"}, - UID: "005f3b90-4b9d-12f8-acf0-31020a840133", - }, - }, - meta: common.MapStr{ - "pod": common.MapStr{"name": ""}, - "namespace": "", - "node": common.MapStr{"name": ""}, - "labels": common.MapStr{"a": common.MapStr{"value": "bar", "key": "foo"}}, - }, - config: common.NewConfig(), - }, - { - pod: &Pod{ - Metadata: ObjectMeta{ - Labels: map[string]string{"a.key": "foo", "a": "bar"}, - UID: "005f3b90-4b9d-12f8-acf0-31020a840133", - }, - }, - meta: common.MapStr{ - "pod": common.MapStr{"name": "", "uid": "005f3b90-4b9d-12f8-acf0-31020a840133"}, - "namespace": "", - "node": common.MapStr{"name": ""}, - "labels": common.MapStr{"a": common.MapStr{"value": "bar", "key": "foo"}}, - }, - config: withPodUID, - }, - { - pod: &Pod{ - Metadata: ObjectMeta{ - Labels: map[string]string{"a.key": "foo", "a": "bar"}, - UID: "005f3b90-4b9d-12f8-acf0-31020a840133", - OwnerReferences: []struct { - APIVersion string `json:"apiVersion"` - Controller bool `json:"controller"` - Kind string `json:"kind"` - Name string `json:"name"` - UID string `json:"uid"` - }{ - { - Kind: "Deployment", - Name: "test", - Controller: true, - }, - { - Kind: "Replicaset", - Name: "replicaset", - Controller: false, - }, - }, - }, - }, - meta: common.MapStr{ - "pod": common.MapStr{"name": ""}, - "namespace": "", - "node": common.MapStr{"name": ""}, - "labels": common.MapStr{"a": common.MapStr{"value": "bar", "key": "foo"}}, - "deployment": common.MapStr{"name": "test"}, - }, - config: common.NewConfig(), - }, - } - - for _, test := range tests { - metaGen, err := NewMetaGenerator(test.config) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, metaGen.PodMetadata(test.pod), test.meta) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/types.go b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/types.go index efd09728..fd7cc95f 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/types.go +++ b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/types.go @@ -1,12 +1,31 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes import ( - "encoding/json" "strings" "time" "github.com/ericchiang/k8s" + appsv1 "github.com/ericchiang/k8s/apis/apps/v1beta1" "github.com/ericchiang/k8s/apis/core/v1" + extv1 "github.com/ericchiang/k8s/apis/extensions/v1beta1" + metav1 "github.com/ericchiang/k8s/apis/meta/v1" ) func init() { @@ -14,132 +33,59 @@ func init() { k8s.RegisterList("", "v1", "events", true, &v1.EventList{}) } -// Resource is kind of kubernetes resource like pod, event, etc... -// It has a GetMetadata method for getting ObjectMeta which containing useful info like labels -type Resource interface { - GetMetadata() *ObjectMeta -} +// Resource data +type Resource = k8s.Resource -func resourceConverter(k8sObj k8s.Resource, r Resource) Resource { - bytes, _ := json.Marshal(k8sObj) - json.Unmarshal(bytes, r) - return r -} +// ObjectMeta data +type ObjectMeta = metav1.ObjectMeta -type ObjectMeta struct { - Annotations map[string]string `json:"annotations"` - CreationTimestamp string `json:"creationTimestamp"` - DeletionTimestamp string `json:"deletionTimestamp"` - GenerateName string `json:"generateName"` - Labels map[string]string `json:"labels"` - Name string `json:"name"` - Namespace string `json:"namespace"` - OwnerReferences []struct { - APIVersion string `json:"apiVersion"` - Controller bool `json:"controller"` - Kind string `json:"kind"` - Name string `json:"name"` - UID string `json:"uid"` - } `json:"ownerReferences"` - ResourceVersion string `json:"resourceVersion"` - SelfLink string `json:"selfLink"` - UID string `json:"uid"` -} +// Pod data +type Pod = v1.Pod -type Container struct { - Image string `json:"image"` - ImagePullPolicy string `json:"imagePullPolicy"` - Name string `json:"name"` - Ports []ContainerPort `json:"ports"` - Resources struct{} `json:"resources"` - TerminationMessagePath string `json:"terminationMessagePath"` - VolumeMounts []struct { - MountPath string `json:"mountPath"` - Name string `json:"name"` - ReadOnly bool `json:"readOnly"` - } `json:"volumeMounts"` -} +// PodSpec data +type PodSpec = v1.PodSpec -type ContainerPort struct { - Name string `json:"name"` - ContainerPort int64 `json:"containerPort"` - Protocol string `json:"protocol"` -} +// PodStatus data +type PodStatus = v1.PodStatus -type PodSpec struct { - Containers []Container `json:"containers"` - InitContainers []Container `json:"initContainers"` - DNSPolicy string `json:"dnsPolicy"` - NodeName string `json:"nodeName"` - RestartPolicy string `json:"restartPolicy"` - SecurityContext struct{} `json:"securityContext"` - ServiceAccount string `json:"serviceAccount"` - ServiceAccountName string `json:"serviceAccountName"` - TerminationGracePeriodSeconds int64 `json:"terminationGracePeriodSeconds"` -} +// Node data +type Node = v1.Node -type PodStatusCondition struct { - LastProbeTime interface{} `json:"lastProbeTime"` - LastTransitionTime string `json:"lastTransitionTime"` - Status string `json:"status"` - Type string `json:"type"` -} +// Container data +type Container = v1.Container -type PodContainerStatus struct { - ContainerID string `json:"containerID"` - Image string `json:"image"` - ImageID string `json:"imageID"` - LastState struct { - Terminated struct { - ContainerID string `json:"containerID"` - ExitCode int64 `json:"exitCode"` - FinishedAt string `json:"finishedAt"` - Reason string `json:"reason"` - StartedAt string `json:"startedAt"` - } `json:"terminated"` - } `json:"lastState"` - Name string `json:"name"` - Ready bool `json:"ready"` - RestartCount int64 `json:"restartCount"` - State struct { - Running struct { - StartedAt string `json:"startedAt"` - } `json:"running"` - } `json:"state"` -} +// ContainerPort data +type ContainerPort = v1.ContainerPort -type PodStatus struct { - Conditions []PodStatusCondition `json:"conditions"` - ContainerStatuses []PodContainerStatus `json:"containerStatuses"` - InitContainerStatuses []PodContainerStatus `json:"initContainerStatuses"` - HostIP string `json:"hostIP"` - Phase string `json:"phase"` - PodIP string `json:"podIP"` - StartTime string `json:"startTime"` -} +// Event data +type Event = v1.Event -type Pod struct { - APIVersion string `json:"apiVersion"` - Kind string `json:"kind"` - Metadata ObjectMeta `json:"metadata"` - Spec PodSpec `json:"spec"` - Status PodStatus `json:"status"` -} +// PodContainerStatus data +type PodContainerStatus = v1.ContainerStatus + +// Deployment data +type Deployment = appsv1.Deployment + +// ReplicaSet data +type ReplicaSet = extv1.ReplicaSet + +// StatefulSet data +type StatefulSet = appsv1.StatefulSet -// GetMetadata implements Resource -func (p *Pod) GetMetadata() *ObjectMeta { - return &p.Metadata +// Time extracts time from k8s.Time type +func Time(t *metav1.Time) time.Time { + return time.Unix(t.GetSeconds(), int64(t.GetNanos())) } -// GetContainerID parses the container ID to get the actual ID string -func (s *PodContainerStatus) GetContainerID() string { - cID, _ := s.GetContainerIDWithRuntime() +// ContainerID parses the container ID to get the actual ID string +func ContainerID(s *PodContainerStatus) string { + cID, _ := ContainerIDWithRuntime(s) return cID } -// GetContainerIDWithRuntime parses the container ID to get the actual ID string -func (s *PodContainerStatus) GetContainerIDWithRuntime() (string, string) { - cID := s.ContainerID +// ContainerIDWithRuntime parses the container ID to get the actual ID string +func ContainerIDWithRuntime(s *PodContainerStatus) (string, string) { + cID := s.GetContainerID() if cID != "" { parts := strings.Split(cID, "://") if len(parts) == 2 { @@ -148,32 +94,3 @@ func (s *PodContainerStatus) GetContainerIDWithRuntime() (string, string) { } return "", "" } - -// Event is kubernetes event -type Event struct { - APIVersion string `json:"apiVersion"` - Count int64 `json:"count"` - FirstTimestamp *time.Time `json:"firstTimestamp"` - InvolvedObject struct { - APIVersion string `json:"apiVersion"` - Kind string `json:"kind"` - Name string `json:"name"` - ResourceVersion string `json:"resourceVersion"` - UID string `json:"uid"` - } `json:"involvedObject"` - Kind string `json:"kind"` - LastTimestamp *time.Time `json:"lastTimestamp"` - Message string `json:"message"` - Metadata ObjectMeta `json:"metadata"` - Reason string `json:"reason"` - Source struct { - Component string `json:"component"` - Host string `json:"host"` - } `json:"source"` - Type string `json:"type"` -} - -// GetMetadata implements Resource -func (e *Event) GetMetadata() *ObjectMeta { - return &e.Metadata -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/types_test.go b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/types_test.go deleted file mode 100644 index c947a7e4..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/types_test.go +++ /dev/null @@ -1,68 +0,0 @@ -package kubernetes - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestPodContainerStatus_GetContainerID(t *testing.T) { - tests := []struct { - status *PodContainerStatus - result string - }{ - // Check to see if x://y is parsed to return y as the container id - { - status: &PodContainerStatus{ - Name: "foobar", - ContainerID: "docker://abc", - Image: "foobar:latest", - }, - result: "abc", - }, - // Check to see if x://y is not the format then "" is returned - { - status: &PodContainerStatus{ - Name: "foobar", - ContainerID: "abc", - Image: "foobar:latest", - }, - result: "", - }, - } - - for _, test := range tests { - assert.Equal(t, test.status.GetContainerID(), test.result) - } -} - -func TestPodContainerStatus_GetContainerIDWithRuntime(t *testing.T) { - tests := []struct { - status *PodContainerStatus - result string - }{ - // Check to see if x://y is parsed to return x as the runtime - { - status: &PodContainerStatus{ - Name: "foobar", - ContainerID: "docker://abc", - Image: "foobar:latest", - }, - result: "docker", - }, - // Check to see if x://y is not the format then "" is returned - { - status: &PodContainerStatus{ - Name: "foobar", - ContainerID: "abc", - Image: "foobar:latest", - }, - result: "", - }, - } - - for _, test := range tests { - _, runtime := test.status.GetContainerIDWithRuntime() - assert.Equal(t, runtime, test.result) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/util.go b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/util.go index a86c8b45..b8e1a0b5 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/util.go +++ b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/watcher.go b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/watcher.go index 29b64c25..27b1bd33 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/kubernetes/watcher.go +++ b/vendor/github.com/elastic/beats/libbeat/common/kubernetes/watcher.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes import ( @@ -7,7 +24,9 @@ import ( "time" "github.com/ericchiang/k8s" + appsv1 "github.com/ericchiang/k8s/apis/apps/v1beta1" "github.com/ericchiang/k8s/apis/core/v1" + extv1 "github.com/ericchiang/k8s/apis/extensions/v1beta1" "github.com/elastic/beats/libbeat/logp" ) @@ -49,7 +68,6 @@ type watcher struct { stop context.CancelFunc resourceList k8s.ResourceList k8sResourceFactory func() k8s.Resource - resourceFactory func() Resource items func() []k8s.Resource handler ResourceEventHandler } @@ -75,7 +93,6 @@ func NewWatcher(client *k8s.Client, resource Resource, options WatchOptions) (Wa list := &v1.PodList{} w.resourceList = list w.k8sResourceFactory = func() k8s.Resource { return &v1.Pod{} } - w.resourceFactory = func() Resource { return &Pod{} } w.items = func() []k8s.Resource { rs := make([]k8s.Resource, 0, len(list.Items)) for _, item := range list.Items { @@ -87,7 +104,50 @@ func NewWatcher(client *k8s.Client, resource Resource, options WatchOptions) (Wa list := &v1.EventList{} w.resourceList = list w.k8sResourceFactory = func() k8s.Resource { return &v1.Event{} } - w.resourceFactory = func() Resource { return &Event{} } + w.items = func() []k8s.Resource { + rs := make([]k8s.Resource, 0, len(list.Items)) + for _, item := range list.Items { + rs = append(rs, item) + } + return rs + } + case *Node: + list := &v1.NodeList{} + w.resourceList = list + w.k8sResourceFactory = func() k8s.Resource { return &v1.Node{} } + w.items = func() []k8s.Resource { + rs := make([]k8s.Resource, 0, len(list.Items)) + for _, item := range list.Items { + rs = append(rs, item) + } + return rs + } + case *Deployment: + list := &appsv1.DeploymentList{} + w.resourceList = list + w.k8sResourceFactory = func() k8s.Resource { return &appsv1.Deployment{} } + w.items = func() []k8s.Resource { + rs := make([]k8s.Resource, 0, len(list.Items)) + for _, item := range list.Items { + rs = append(rs, item) + } + return rs + } + case *ReplicaSet: + list := &extv1.ReplicaSetList{} + w.resourceList = list + w.k8sResourceFactory = func() k8s.Resource { return &extv1.ReplicaSet{} } + w.items = func() []k8s.Resource { + rs := make([]k8s.Resource, 0, len(list.Items)) + for _, item := range list.Items { + rs = append(rs, item) + } + return rs + } + case *StatefulSet: + list := &appsv1.StatefulSetList{} + w.resourceList = list + w.k8sResourceFactory = func() k8s.Resource { return &appsv1.StatefulSet{} } w.items = func() []k8s.Resource { rs := make([]k8s.Resource, 0, len(list.Items)) for _, item := range list.Items { @@ -135,21 +195,20 @@ func (w *watcher) sync() error { return nil } -func (w *watcher) onAdd(obj k8s.Resource) { - w.handler.OnAdd(resourceConverter(obj, w.resourceFactory())) +func (w *watcher) onAdd(obj Resource) { + w.handler.OnAdd(obj) } -func (w *watcher) onUpdate(obj k8s.Resource) { - w.handler.OnUpdate(resourceConverter(obj, w.resourceFactory())) +func (w *watcher) onUpdate(obj Resource) { + w.handler.OnUpdate(obj) } -func (w *watcher) onDelete(obj k8s.Resource) { - w.handler.OnDelete(resourceConverter(obj, w.resourceFactory())) +func (w *watcher) onDelete(obj Resource) { + w.handler.OnDelete(obj) } // Start watching pods func (w *watcher) Start() error { - // Make sure that events don't flow into the annotator before informer is fully set up // Sync initial state: err := w.sync() @@ -195,7 +254,7 @@ func (w *watcher) watch() { logp.Err("kubernetes: Watching API error %v", err) watcher.Close() if !(err == io.EOF || err == io.ErrUnexpectedEOF) { - // This is an error event which can be recovered by moving to the latest resource verison + // This is an error event which can be recovered by moving to the latest resource version logp.Info("kubernetes: Ignoring event, moving to most recent resource version") w.lastResourceVersion = "" } diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapstr.go b/vendor/github.com/elastic/beats/libbeat/common/mapstr.go index 508bd46c..0bc2d4b2 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/mapstr.go +++ b/vendor/github.com/elastic/beats/libbeat/common/mapstr.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapstr_pointer.go b/vendor/github.com/elastic/beats/libbeat/common/mapstr_pointer.go index 9042cfd8..3129bfcd 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/mapstr_pointer.go +++ b/vendor/github.com/elastic/beats/libbeat/common/mapstr_pointer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( @@ -8,7 +25,7 @@ import ( // MapStrPointer stores a pointer to atomically get/set a MapStr object // This should give faster access for use cases with lots of reads and a few // changes. -// It's imortant to note that modifying the map is not thread safe, only fully +// It's important to note that modifying the map is not thread safe, only fully // replacing it. type MapStrPointer struct { p *unsafe.Pointer diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapstr_pointer_test.go b/vendor/github.com/elastic/beats/libbeat/common/mapstr_pointer_test.go deleted file mode 100644 index 2b77b171..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/mapstr_pointer_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package common - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestMapStrPointer(t *testing.T) { - data := MapStr{ - "foo": "bar", - } - - p := NewMapStrPointer(data) - assert.Equal(t, p.Get(), data) - - newData := MapStr{ - "new": "data", - } - p.Set(newData) - assert.Equal(t, p.Get(), newData) -} - -func BenchmarkMapStrPointer(b *testing.B) { - p := NewMapStrPointer(MapStr{"counter": 0}) - go func() { - counter := 0 - for { - counter++ - p.Set(MapStr{"counter": counter}) - time.Sleep(10 * time.Millisecond) - } - }() - - for n := 0; n < b.N; n++ { - _ = p.Get() - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapstr_test.go b/vendor/github.com/elastic/beats/libbeat/common/mapstr_test.go deleted file mode 100644 index ab321d13..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/mapstr_test.go +++ /dev/null @@ -1,736 +0,0 @@ -// +build !integration - -package common - -import ( - "encoding/json" - "fmt" - "strings" - "testing" - - "github.com/stretchr/testify/assert" - "go.uber.org/zap/zapcore" - - "github.com/elastic/beats/libbeat/logp" -) - -func TestMapStrUpdate(t *testing.T) { - assert := assert.New(t) - - a := MapStr{ - "a": 1, - "b": 2, - } - b := MapStr{ - "b": 3, - "c": 4, - } - - a.Update(b) - - assert.Equal(a, MapStr{"a": 1, "b": 3, "c": 4}) -} - -func TestMapStrDeepUpdate(t *testing.T) { - tests := []struct { - a, b, expected MapStr - }{ - { - MapStr{"a": 1}, - MapStr{"b": 2}, - MapStr{"a": 1, "b": 2}, - }, - { - MapStr{"a": 1}, - MapStr{"a": 2}, - MapStr{"a": 2}, - }, - { - MapStr{"a": 1}, - MapStr{"a": MapStr{"b": 1}}, - MapStr{"a": MapStr{"b": 1}}, - }, - { - MapStr{"a": MapStr{"b": 1}}, - MapStr{"a": MapStr{"c": 2}}, - MapStr{"a": MapStr{"b": 1, "c": 2}}, - }, - { - MapStr{"a": MapStr{"b": 1}}, - MapStr{"a": 1}, - MapStr{"a": 1}, - }, - { - MapStr{"a.b": 1}, - MapStr{"a": 1}, - MapStr{"a": 1, "a.b": 1}, - }, - { - MapStr{"a": 1}, - MapStr{"a.b": 1}, - MapStr{"a": 1, "a.b": 1}, - }, - } - - for i, test := range tests { - a, b, expected := test.a, test.b, test.expected - name := fmt.Sprintf("%v: %v + %v = %v", i, a, b, expected) - - t.Run(name, func(t *testing.T) { - a.DeepUpdate(b) - assert.Equal(t, expected, a) - }) - } -} - -func TestMapStrUnion(t *testing.T) { - assert := assert.New(t) - - a := MapStr{ - "a": 1, - "b": 2, - } - b := MapStr{ - "b": 3, - "c": 4, - } - - c := MapStrUnion(a, b) - - assert.Equal(c, MapStr{"a": 1, "b": 3, "c": 4}) -} - -func TestMapStrCopyFieldsTo(t *testing.T) { - assert := assert.New(t) - - m := MapStr{ - "a": MapStr{ - "a1": 2, - "a2": 3, - }, - "b": 2, - "c": MapStr{ - "c1": 1, - "c2": 2, - "c3": MapStr{ - "c31": 1, - "c32": 2, - }, - }, - } - c := MapStr{} - - err := m.CopyFieldsTo(c, "dd") - assert.Error(err) - assert.Equal(MapStr{}, c) - - err = m.CopyFieldsTo(c, "a") - assert.Equal(nil, err) - assert.Equal(MapStr{"a": MapStr{"a1": 2, "a2": 3}}, c) - - err = m.CopyFieldsTo(c, "c.c1") - assert.Equal(nil, err) - assert.Equal(MapStr{"a": MapStr{"a1": 2, "a2": 3}, "c": MapStr{"c1": 1}}, c) - - err = m.CopyFieldsTo(c, "b") - assert.Equal(nil, err) - assert.Equal(MapStr{"a": MapStr{"a1": 2, "a2": 3}, "c": MapStr{"c1": 1}, "b": 2}, c) - - err = m.CopyFieldsTo(c, "c.c3.c32") - assert.Equal(nil, err) - assert.Equal(MapStr{"a": MapStr{"a1": 2, "a2": 3}, "c": MapStr{"c1": 1, "c3": MapStr{"c32": 2}}, "b": 2}, c) -} - -func TestMapStrDelete(t *testing.T) { - assert := assert.New(t) - - m := MapStr{ - "c": MapStr{ - "c1": 1, - "c2": 2, - "c3": MapStr{ - "c31": 1, - "c32": 2, - }, - }, - } - - err := m.Delete("c.c2") - assert.Equal(nil, err) - assert.Equal(MapStr{"c": MapStr{"c1": 1, "c3": MapStr{"c31": 1, "c32": 2}}}, m) - - err = m.Delete("c.c2.c21") - assert.NotEqual(nil, err) - assert.Equal(MapStr{"c": MapStr{"c1": 1, "c3": MapStr{"c31": 1, "c32": 2}}}, m) - - err = m.Delete("c.c3.c31") - assert.Equal(nil, err) - assert.Equal(MapStr{"c": MapStr{"c1": 1, "c3": MapStr{"c32": 2}}}, m) - - err = m.Delete("c") - assert.Equal(nil, err) - assert.Equal(MapStr{}, m) -} - -func TestHasKey(t *testing.T) { - assert := assert.New(t) - - m := MapStr{ - "c": MapStr{ - "c1": 1, - "c2": 2, - "c3": MapStr{ - "c31": 1, - "c32": 2, - }, - "c4.f": 19, - }, - "d.f": 1, - } - - hasKey, err := m.HasKey("c.c2") - assert.Equal(nil, err) - assert.Equal(true, hasKey) - - hasKey, err = m.HasKey("c.c4") - assert.Equal(nil, err) - assert.Equal(false, hasKey) - - hasKey, err = m.HasKey("c.c3.c32") - assert.Equal(nil, err) - assert.Equal(true, hasKey) - - hasKey, err = m.HasKey("dd") - assert.Equal(nil, err) - assert.Equal(false, hasKey) - - hasKey, err = m.HasKey("d.f") - assert.Equal(nil, err) - assert.Equal(true, hasKey) - - hasKey, err = m.HasKey("c.c4.f") - assert.Equal(nil, err) - assert.Equal(true, hasKey) -} - -func TestMapStrPut(t *testing.T) { - m := MapStr{ - "subMap": MapStr{ - "a": 1, - }, - } - - // Add new value to the top-level. - v, err := m.Put("a", "ok") - assert.NoError(t, err) - assert.Nil(t, v) - assert.Equal(t, MapStr{"a": "ok", "subMap": MapStr{"a": 1}}, m) - - // Add new value to subMap. - v, err = m.Put("subMap.b", 2) - assert.NoError(t, err) - assert.Nil(t, v) - assert.Equal(t, MapStr{"a": "ok", "subMap": MapStr{"a": 1, "b": 2}}, m) - - // Overwrite a value in subMap. - v, err = m.Put("subMap.a", 2) - assert.NoError(t, err) - assert.Equal(t, 1, v) - assert.Equal(t, MapStr{"a": "ok", "subMap": MapStr{"a": 2, "b": 2}}, m) - - // Add value to map that does not exist. - m = MapStr{} - v, err = m.Put("subMap.newMap.a", 1) - assert.NoError(t, err) - assert.Nil(t, v) - assert.Equal(t, MapStr{"subMap": MapStr{"newMap": MapStr{"a": 1}}}, m) -} - -func TestMapStrGetValue(t *testing.T) { - - tests := []struct { - input MapStr - key string - output interface{} - error bool - }{ - { - MapStr{"a": 1}, - "a", - 1, - false, - }, - { - MapStr{"a": MapStr{"b": 1}}, - "a", - MapStr{"b": 1}, - false, - }, - { - MapStr{"a": MapStr{"b": 1}}, - "a.b", - 1, - false, - }, - { - MapStr{"a": MapStr{"b.c": 1}}, - "a", - MapStr{"b.c": 1}, - false, - }, - { - MapStr{"a": MapStr{"b.c": 1}}, - "a.b", - nil, - true, - }, - { - MapStr{"a.b": MapStr{"c": 1}}, - "a.b", - MapStr{"c": 1}, - false, - }, - { - MapStr{"a.b": MapStr{"c": 1}}, - "a.b.c", - nil, - true, - }, - { - MapStr{"a": MapStr{"b.c": 1}}, - "a.b.c", - 1, - false, - }, - } - - for _, test := range tests { - v, err := test.input.GetValue(test.key) - if test.error { - assert.Error(t, err) - } else { - assert.NoError(t, err) - } - assert.Equal(t, test.output, v) - - } -} - -func TestClone(t *testing.T) { - assert := assert.New(t) - - m := MapStr{ - "c1": 1, - "c2": 2, - "c3": MapStr{ - "c31": 1, - "c32": 2, - }, - } - - c := m.Clone() - assert.Equal(MapStr{"c31": 1, "c32": 2}, c["c3"]) -} - -func TestString(t *testing.T) { - type io struct { - Input MapStr - Output string - } - tests := []io{ - { - Input: MapStr{ - "a": "b", - }, - Output: `{"a":"b"}`, - }, - { - Input: MapStr{ - "a": []int{1, 2, 3}, - }, - Output: `{"a":[1,2,3]}`, - }, - } - for _, test := range tests { - assert.Equal(t, test.Output, test.Input.String()) - } -} - -// Smoke test. The method has no observable outputs so this -// is only verifying there are no panics. -func TestStringToPrint(t *testing.T) { - m := MapStr{} - - assert.Equal(t, "{}", m.StringToPrint()) - assert.Equal(t, true, len(m.StringToPrint()) > 0) -} - -func TestMergeFields(t *testing.T) { - type io struct { - UnderRoot bool - Event MapStr - Fields MapStr - Output MapStr - Err string - } - tests := []io{ - // underRoot = true, merges - { - UnderRoot: true, - Event: MapStr{ - "a": "1", - }, - Fields: MapStr{ - "b": 2, - }, - Output: MapStr{ - "a": "1", - "b": 2, - }, - }, - - // underRoot = true, overwrites existing - { - UnderRoot: true, - Event: MapStr{ - "a": "1", - }, - Fields: MapStr{ - "a": 2, - }, - Output: MapStr{ - "a": 2, - }, - }, - - // underRoot = false, adds new 'fields' when it doesn't exist - { - UnderRoot: false, - Event: MapStr{ - "a": "1", - }, - Fields: MapStr{ - "a": 2, - }, - Output: MapStr{ - "a": "1", - "fields": MapStr{ - "a": 2, - }, - }, - }, - - // underRoot = false, merge with existing 'fields' and overwrites existing keys - { - UnderRoot: false, - Event: MapStr{ - "fields": MapStr{ - "a": "1", - "b": 2, - }, - }, - Fields: MapStr{ - "a": 3, - "c": 4, - }, - Output: MapStr{ - "fields": MapStr{ - "a": 3, - "b": 2, - "c": 4, - }, - }, - }, - - // underRoot = false, error when 'fields' is wrong type - { - UnderRoot: false, - Event: MapStr{ - "fields": "not a MapStr", - }, - Fields: MapStr{ - "a": 3, - }, - Output: MapStr{ - "fields": "not a MapStr", - }, - Err: "expected map", - }, - } - - for _, test := range tests { - err := MergeFields(test.Event, test.Fields, test.UnderRoot) - assert.Equal(t, test.Output, test.Event) - if test.Err != "" { - assert.Contains(t, err.Error(), test.Err) - } else { - assert.NoError(t, err) - } - } -} - -func TestAddTag(t *testing.T) { - type io struct { - Event MapStr - Tags []string - Output MapStr - Err string - } - tests := []io{ - // No existing tags, creates new tag array - { - Event: MapStr{}, - Tags: []string{"json"}, - Output: MapStr{ - "tags": []string{"json"}, - }, - }, - // Existing tags is a []string, appends - { - Event: MapStr{ - "tags": []string{"json"}, - }, - Tags: []string{"docker"}, - Output: MapStr{ - "tags": []string{"json", "docker"}, - }, - }, - // Existing tags is a []interface{}, appends - { - Event: MapStr{ - "tags": []interface{}{"json"}, - }, - Tags: []string{"docker"}, - Output: MapStr{ - "tags": []interface{}{"json", "docker"}, - }, - }, - // Existing tags is not a []string or []interface{} - { - Event: MapStr{ - "tags": "not a slice", - }, - Tags: []string{"docker"}, - Output: MapStr{ - "tags": "not a slice", - }, - Err: "expected string array", - }, - } - - for _, test := range tests { - err := AddTags(test.Event, test.Tags) - assert.Equal(t, test.Output, test.Event) - if test.Err != "" { - assert.Contains(t, err.Error(), test.Err) - } else { - assert.NoError(t, err) - } - } -} - -func TestFlatten(t *testing.T) { - type data struct { - Event MapStr - Expected MapStr - } - tests := []data{ - { - Event: MapStr{ - "hello": MapStr{ - "world": 15, - }, - }, - Expected: MapStr{ - "hello.world": 15, - }, - }, - { - Event: MapStr{ - "test": 15, - }, - Expected: MapStr{ - "test": 15, - }, - }, - { - Event: MapStr{ - "test": 15, - "hello": MapStr{ - "world": MapStr{ - "ok": "test", - }, - }, - "elastic": MapStr{ - "for": "search", - }, - }, - Expected: MapStr{ - "test": 15, - "hello.world.ok": "test", - "elastic.for": "search", - }, - }, - } - - for _, test := range tests { - assert.Equal(t, test.Expected, test.Event.Flatten()) - } -} - -func BenchmarkMapStrFlatten(b *testing.B) { - m := MapStr{ - "test": 15, - "hello": MapStr{ - "world": MapStr{ - "ok": "test", - }, - }, - "elastic": MapStr{ - "for": "search", - }, - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - _ = m.Flatten() - } -} - -// Ensure the MapStr is marshaled in logs the same way it is by json.Marshal. -func TestMapStrJSONLog(t *testing.T) { - logp.DevelopmentSetup(logp.ToObserverOutput()) - - m := MapStr{ - "test": 15, - "hello": MapStr{ - "world": MapStr{ - "ok": "test", - }, - }, - "elastic": MapStr{ - "for": "search", - }, - } - - data, err := json.Marshal(MapStr{"m": m}) - if err != nil { - t.Fatal(err) - } - expectedJSON := string(data) - - logp.NewLogger("test").Infow("msg", "m", m) - logs := logp.ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - log := logs[0] - - // Encode like zap does. - e := zapcore.NewJSONEncoder(zapcore.EncoderConfig{}) - buf, err := e.EncodeEntry(log.Entry, log.Context) - if err != nil { - t.Fatal(err) - } - - // Zap adds a newline to end the JSON object. - actualJSON := strings.TrimSpace(buf.String()) - - assert.Equal(t, string(expectedJSON), actualJSON) - } -} - -func BenchmarkMapStrLogging(b *testing.B) { - logp.DevelopmentSetup(logp.ToDiscardOutput()) - logger := logp.NewLogger("benchtest") - - m := MapStr{ - "test": 15, - "hello": MapStr{ - "world": MapStr{ - "ok": "test", - }, - }, - "elastic": MapStr{ - "for": "search", - }, - } - - b.ResetTimer() - for i := 0; i < b.N; i++ { - logger.Infow("test", "mapstr", m) - } -} - -func BenchmarkWalkMap(b *testing.B) { - - globalM := MapStr{ - "hello": MapStr{ - "world": MapStr{ - "ok": "test", - }, - }, - } - - b.Run("Get", func(b *testing.B) { - b.ResetTimer() - - for i := 0; i < b.N; i++ { - globalM.GetValue("test.world.ok") - } - }) - - b.Run("Put", func(b *testing.B) { - b.ResetTimer() - for i := 0; i < b.N; i++ { - m := MapStr{ - "hello": MapStr{ - "world": MapStr{ - "ok": "test", - }, - }, - } - - m.Put("hello.world.new", 17) - } - }) - - b.Run("PutMissing", func(b *testing.B) { - b.ResetTimer() - for i := 0; i < b.N; i++ { - m := MapStr{} - - m.Put("a.b.c", 17) - } - }) - - b.Run("HasKey", func(b *testing.B) { - b.ResetTimer() - - for i := 0; i < b.N; i++ { - globalM.HasKey("hello.world.ok") - globalM.HasKey("hello.world.no_ok") - } - }) - - b.Run("HasKeyFirst", func(b *testing.B) { - b.ResetTimer() - - for i := 0; i < b.N; i++ { - globalM.HasKey("hello") - } - }) - - b.Run("Delete", func(b *testing.B) { - b.ResetTimer() - - for i := 0; i < b.N; i++ { - m := MapStr{ - "hello": MapStr{ - "world": MapStr{ - "ok": "test", - }, - }, - } - m.Put("hello.world.test", 17) - } - }) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapval/core.go b/vendor/github.com/elastic/beats/libbeat/common/mapval/core.go new file mode 100644 index 00000000..c8ae21de --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/common/mapval/core.go @@ -0,0 +1,143 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapval + +import ( + "sort" + "strings" + + "github.com/elastic/beats/libbeat/common" +) + +// Is creates a named IsDef with the given checker. +func Is(name string, checker ValueValidator) IsDef { + return IsDef{name: name, checker: checker} +} + +// Optional wraps an IsDef to mark the field's presence as optional. +func Optional(id IsDef) IsDef { + id.name = "optional " + id.name + id.optional = true + return id +} + +// Map is the type used to define schema definitions for Schema. +type Map map[string]interface{} + +// Validator is the result of Schema and is run against the map you'd like to test. +type Validator func(common.MapStr) Results + +// Compose combines multiple SchemaValidators into a single one. +func Compose(validators ...Validator) Validator { + return func(actual common.MapStr) Results { + results := make([]Results, len(validators)) + for idx, validator := range validators { + results[idx] = validator(actual) + } + + combined := Results{} + for _, r := range results { + r.EachResult(func(path string, vr ValueResult) bool { + combined.recordResult(path, vr) + return true + }) + } + return combined + } +} + +// Strict is used when you want any unspecified keys that are encountered to be considered errors. +func Strict(laxValidator Validator) Validator { + return func(actual common.MapStr) Results { + validatedResults := laxValidator(actual) + + // The inner workings of this are a little weird + // We use a hash of dotted paths to track the results + // We can check if a key had a test associated with it by looking up the laxValidator + // result data + // What's trickier is intermediate maps, maps don't usually have explicit tests, they usually just have + // their properties tested. + // This method counts an intermediate map as tested if a subkey is tested. + // Since the datastructure we have to search is a flattened hashmap of the original map we take that hashmap + // and turn it into a sorted string array, then do a binary prefix search to determine if a subkey was tested. + // It's a little weird, but is fairly efficient. We could stop using the flattened map as a datastructure, but + // that would add complexity elsewhere. Probably a good refactor at some point, but not worth it now. + validatedPaths := []string{} + for k := range validatedResults { + validatedPaths = append(validatedPaths, k) + } + sort.Strings(validatedPaths) + + walk(actual, func(woi walkObserverInfo) { + _, validatedExactly := validatedResults[woi.dottedPath] + if validatedExactly { + return // This key was tested, passes strict test + } + + // Search returns the point just before an actual match (since we ruled out an exact match with the cheaper + // hash check above. We have to validate the actual match with a prefix check as well + matchIdx := sort.SearchStrings(validatedPaths, woi.dottedPath) + if matchIdx < len(validatedPaths) && strings.HasPrefix(validatedPaths[matchIdx], woi.dottedPath) { + return + } + + validatedResults.recordResult(woi.dottedPath, StrictFailureVR) + }) + + return validatedResults + } +} + +// Schema takes a Map and returns an executable Validator function. +func Schema(expected Map) Validator { + return func(actual common.MapStr) Results { + return walkValidate(expected, actual) + } +} + +func walkValidate(expected Map, actual common.MapStr) (results Results) { + results = Results{} + walk( + common.MapStr(expected), + func(expInfo walkObserverInfo) { + + actualKeyExists, _ := actual.HasKey(expInfo.dottedPath) + actualV, _ := actual.GetValue(expInfo.dottedPath) + + // If this is a definition use it, if not, check exact equality + isDef, isIsDef := expInfo.value.(IsDef) + if !isIsDef { + // We don't check maps for equality, we check their properties + // individual via our own traversal, so bail early + if _, isMS := actualV.(common.MapStr); isMS { + return + } + + isDef = IsEqual(expInfo.value) + } + + if !isDef.optional || isDef.optional && actualKeyExists { + results.recordResult( + expInfo.dottedPath, + isDef.check(actualV, actualKeyExists), + ) + } + }) + + return results +} diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapval/is_defs.go b/vendor/github.com/elastic/beats/libbeat/common/mapval/is_defs.go new file mode 100644 index 00000000..9525533c --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/common/mapval/is_defs.go @@ -0,0 +1,103 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapval + +import ( + "fmt" + "time" + + "github.com/stretchr/testify/assert" +) + +// KeyPresent checks that the given key is in the map, even if it has a nil value. +var KeyPresent = IsDef{name: "check key present"} + +// KeyMissing checks that the given key is not present defined. +var KeyMissing = IsDef{name: "check key not present", checkKeyMissing: true} + +// IsDuration tests that the given value is a duration. +var IsDuration = Is("is a duration", func(v interface{}) ValueResult { + if _, ok := v.(time.Duration); ok { + return ValidVR + } + return ValueResult{ + false, + fmt.Sprintf("Expected a time.duration, got '%v' which is a %T", v, v), + } +}) + +// IsEqual tests that the given object is equal to the actual object. +func IsEqual(to interface{}) IsDef { + return Is("equals", func(v interface{}) ValueResult { + if assert.ObjectsAreEqual(v, to) { + return ValidVR + } + return ValueResult{ + false, + fmt.Sprintf("objects not equal: %v != %v", v, to), + } + }) +} + +// IsEqualToValue tests that the given value is equal to the actual value. +func IsEqualToValue(to interface{}) IsDef { + return Is("equals", func(v interface{}) ValueResult { + if assert.ObjectsAreEqualValues(v, to) { + return ValidVR + } + return ValueResult{ + false, + fmt.Sprintf("values not equal: %v != %v", v, to), + } + }) +} + +// IsNil tests that a value is nil. +var IsNil = Is("is nil", func(v interface{}) ValueResult { + if v == nil { + return ValidVR + } + return ValueResult{ + false, + fmt.Sprintf("Value %v is not nil", v), + } +}) + +func intGtChecker(than int) ValueValidator { + return func(v interface{}) ValueResult { + n, ok := v.(int) + if !ok { + msg := fmt.Sprintf("%v is a %T, but was expecting an int!", v, v) + return ValueResult{false, msg} + } + + if n > than { + return ValidVR + } + + return ValueResult{ + false, + fmt.Sprintf("%v is not greater than %v", n, than), + } + } +} + +// IsIntGt tests that a value is an int greater than. +func IsIntGt(than int) IsDef { + return Is("greater than", intGtChecker(than)) +} diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapval/results.go b/vendor/github.com/elastic/beats/libbeat/common/mapval/results.go new file mode 100644 index 00000000..56e53f69 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/common/mapval/results.go @@ -0,0 +1,93 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapval + +import "fmt" + +// Results the results of executing a schema. +// They are a flattened map (using dotted paths) of all the values []ValueResult representing the results +// of the IsDefs. +type Results map[string][]ValueResult + +func (r Results) recordResult(path string, result ValueResult) { + if r[path] == nil { + r[path] = []ValueResult{result} + } else { + r[path] = append(r[path], result) + } +} + +// EachResult executes the given callback once per Value result. +// The provided callback can return true to keep iterating, or false +// to stop. +func (r Results) EachResult(f func(string, ValueResult) bool) { + for path, pathResults := range r { + for _, result := range pathResults { + if !f(path, result) { + return + } + } + } +} + +// DetailedErrors returns a new Results object consisting only of error data. +func (r Results) DetailedErrors() Results { + errors := Results{} + r.EachResult(func(path string, vr ValueResult) bool { + if !vr.Valid { + errors.recordResult(path, vr) + } + + return true + }) + return errors +} + +// ValueResultError is used to represent an error validating an individual value. +type ValueResultError struct { + path string + valueResult ValueResult +} + +// Error returns the error that occurred during validation with its context included. +func (vre ValueResultError) Error() string { + return fmt.Sprintf("@path '%s': %s", vre.path, vre.valueResult.Message) +} + +// Errors returns a list of error objects, one per failed value validation. +func (r Results) Errors() []error { + var errors []error + + r.EachResult(func(path string, vr ValueResult) bool { + if !vr.Valid { + errors = append(errors, ValueResultError{path, vr}) + } + return true + }) + + return errors +} + +// Valid returns true if there are no errors. +func (r Results) Valid() bool { + r.EachResult(func(_ string, vr ValueResult) bool { + return vr.Valid + }) + // TODO: this is a pretty slow way to do this. + return len(r.Errors()) == 0 +} diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapval/value.go b/vendor/github.com/elastic/beats/libbeat/common/mapval/value.go new file mode 100644 index 00000000..b6944d9e --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/common/mapval/value.go @@ -0,0 +1,69 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapval + +// ValueResult represents the result of checking a leaf value. +type ValueResult struct { + Valid bool + Message string // Reason this is invalid +} + +// A ValueValidator is used to validate a value in a Map. +type ValueValidator func(v interface{}) ValueResult + +// An IsDef defines the type of check to do. +// Generally only name and checker are set. optional and checkKeyMissing are +// needed for weird checks like key presence. +type IsDef struct { + name string + checker ValueValidator + optional bool + checkKeyMissing bool +} + +func (id IsDef) check(v interface{}, keyExists bool) ValueResult { + if id.checkKeyMissing { + if !keyExists { + return ValidVR + } + + return ValueResult{false, "key should not exist!"} + } + + if !id.optional && !keyExists { + return KeyMissingVR + } + + if id.checker != nil { + return id.checker(v) + } + + return ValidVR +} + +// ValidVR is a convenience value for Valid results. +var ValidVR = ValueResult{true, ""} + +// KeyMissingVR is emitted when a key was expected, but was not present. +var KeyMissingVR = ValueResult{ + false, + "expected to see a key here", +} + +// StrictFailureVR is emitted when Strict() is used, and an unexpected field is found. +var StrictFailureVR = ValueResult{false, "unexpected field encountered during strict validation"} diff --git a/vendor/github.com/elastic/beats/libbeat/common/mapval/walk.go b/vendor/github.com/elastic/beats/libbeat/common/mapval/walk.go new file mode 100644 index 00000000..94bd1066 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/common/mapval/walk.go @@ -0,0 +1,73 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapval + +import ( + "strings" + + "github.com/elastic/beats/libbeat/common" +) + +type walkObserverInfo struct { + key string + value interface{} + currentMap common.MapStr + rootMap common.MapStr + path []string + dottedPath string +} + +// walkObserver functions run once per object in the tree. +type walkObserver func(info walkObserverInfo) + +// walk is a shorthand way to walk a tree. +func walk(m common.MapStr, wo walkObserver) { + walkFull(m, m, []string{}, wo) +} + +// walkFull walks the given MapStr tree. +// TODO: Handle slices/arrays. We intentionally don't handle list types now because we don't need it (yet) +// and it isn't clear in the context of validation what the right thing is to do there beyond letting the user +// perform a custom validation +func walkFull(m common.MapStr, root common.MapStr, path []string, wo walkObserver) { + for k, v := range m { + splitK := strings.Split(k, ".") + newPath := make([]string, len(path)+len(splitK)) + copy(newPath, path) + copy(newPath[len(path):], splitK) + + dottedPath := strings.Join(newPath, ".") + + wo(walkObserverInfo{k, v, m, root, newPath, dottedPath}) + + // Walk nested maps + vIsMap := false + var mapV common.MapStr + if convertedMS, ok := v.(common.MapStr); ok { + mapV = convertedMS + vIsMap = true + } else if convertedM, ok := v.(Map); ok { + mapV = common.MapStr(convertedM) + vIsMap = true + } + + if vIsMap { + walkFull(mapV, root, newPath, wo) + } + } +} diff --git a/vendor/github.com/elastic/beats/libbeat/common/match/cmp.go b/vendor/github.com/elastic/beats/libbeat/common/match/cmp.go index aaef2465..1b04ac08 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/match/cmp.go +++ b/vendor/github.com/elastic/beats/libbeat/common/match/cmp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 match import "regexp/syntax" diff --git a/vendor/github.com/elastic/beats/libbeat/common/match/compile.go b/vendor/github.com/elastic/beats/libbeat/common/match/compile.go index 2cf633cc..fbdc8fc0 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/match/compile.go +++ b/vendor/github.com/elastic/beats/libbeat/common/match/compile.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 match import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/match/matcher.go b/vendor/github.com/elastic/beats/libbeat/common/match/matcher.go index c9577a2b..21c50bdc 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/match/matcher.go +++ b/vendor/github.com/elastic/beats/libbeat/common/match/matcher.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 match import "regexp/syntax" diff --git a/vendor/github.com/elastic/beats/libbeat/common/match/matcher_bench_test.go b/vendor/github.com/elastic/beats/libbeat/common/match/matcher_bench_test.go deleted file mode 100644 index 4b2f5d6e..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/match/matcher_bench_test.go +++ /dev/null @@ -1,146 +0,0 @@ -package match - -import ( - "bytes" - "fmt" - "regexp" - "testing" -) - -type testContent struct { - name string - lines [][]byte -} - -type benchRunner struct { - title string - f func(*testing.B) -} - -var allContents = []testContent{ - mixedContent, - logContent, - logContent2, - logContentLevel, -} - -var mixedContent = makeContent("mixed", `Lorem ipsum dolor sit amet, -PATTERN consectetur adipiscing elit. Nam vitae turpis augue. - Quisque euismod erat tortor, posuere auctor elit fermentum vel. Proin in odio - -23-08-2016 eleifend, maximus turpis non, lacinia ligula. Nullam vel pharetra quam, id egestas - -massa. Sed a vestibulum libero. Sed tellus lorem, imperdiet non nisl ac, - aliquet placerat magna. Sed PATTERN in bibendum eros. Curabitur ut pretium neque. Sed -23-08-2016 egestas elit et leo consectetur, nec dignissim arcu ultricies. Sed molestie tempor - -erat, a maximus sapien rutrum ut. Curabitur congue condimentum dignissim. - Mauris hendrerit, velit nec accumsan egestas, augue justo tincidunt risus, - -a facilisis nulla augue PATTERN eu metus. Duis vel neque sit amet nunc elementum viverra -eu ut ligula. Mauris et libero lacus.`) - -var logContent = makeContent("simple_log", `23-08-2016 15:10:01 - Lorem ipsum dolor sit amet, -23-08-2016 15:10:02 - PATTERN consectetur adipiscing elit. Nam vitae turpis augue. -23-08-2016 15:10:03 - Quisque euismod erat tortor, posuere auctor elit fermentum vel. Proin in odio -23-08-2016 15:10:05 - 23-08-2016 eleifend, maximus turpis non, lacinia ligula. Nullam vel pharetra quam, id egestas -23-08-2016 15:10:07 - massa. Sed a vestibulum libero. Sed tellus lorem, imperdiet non nisl ac, -23-08-2016 15:10:08 - aliquet placerat magna. Sed PATTERN in bibendum eros. Curabitur ut pretium neque. Sed -23-08-2016 15:10:09 - 23-08-2016 egestas elit et leo consectetur, nec dignissim arcu ultricies. Sed molestie tempor -23-08-2016 15:10:11 - erat, a maximus sapien rutrum ut. Curabitur congue condimentum dignissim. -23-08-2016 15:10:12 - Mauris hendrerit, velit nec accumsan egestas, augue justo tincidunt risus, -23-08-2016 15:10:14 - a facilisis nulla augue PATTERN eu metus. Duis vel neque sit amet nunc elementum viverra -eu ut ligula. Mauris et libero lacus. -`) - -var logContent2 = makeContent("simple_log2", `2016-08-23 15:10:01 - DEBUG - Lorem ipsum dolor sit amet, -2016-08-23 15:10:02 - INFO - PATTERN consectetur adipiscing elit. Nam vitae turpis augue. -2016-08-23 15:10:03 - DEBUG - Quisque euismod erat tortor, posuere auctor elit fermentum vel. Proin in odio -2016-08-23 15:10:05 - ERROR - 23-08-2016 eleifend, maximus turpis non, lacinia ligula. Nullam vel pharetra quam, id egestas -2016-08-23 15:10:07 - WARN - massa. Sed a vestibulum libero. Sed tellus lorem, imperdiet non nisl ac, -2016-08-23 15:10:08 - CRIT - aliquet placerat magna. Sed PATTERN in bibendum eros. Curabitur ut pretium neque. Sed -2016-08-23 15:10:09 - DEBUG - 23-08-2016 egestas elit et leo consectetur, nec dignissim arcu ultricies. Sed molestie tempor -2016-08-23 15:10:11 - ERROR - erat, a maximus sapien rutrum ut. Curabitur congue condimentum dignissim. -2016-08-23 15:10:12 - INFO - Mauris hendrerit, velit nec accumsan egestas, augue justo tincidunt risus, -2016-08-23 15:10:14 - INFO - a facilisis nulla augue PATTERN eu metus. Duis vel neque sit amet nunc elementum viverra eu ut ligula. Mauris et libero lacus. -`) - -var logContentLevel = makeContent("simple_log_with_level", `DEBUG - 2016-08-23 15:10:01 - Lorem ipsum dolor sit amet, -INFO - 2016-08-23 15:10:02 - PATTERN consectetur adipiscing elit. Nam vitae turpis augue. -DEBUG - 2016-08-23 15:10:03 - Quisque euismod erat tortor, posuere auctor elit fermentum vel. Proin in odio -ERROR - 2016-08-23 15:10:05 - 23-08-2016 eleifend, maximus turpis non, lacinia ligula. Nullam vel pharetra quam, id egestas -WARN - 2016-08-23 15:10:07 - massa. Sed a vestibulum libero. Sed tellus lorem, imperdiet non nisl ac, -CRIT - 2016-08-23 15:10:08 - aliquet placerat magna. Sed PATTERN in bibendum eros. Curabitur ut pretium neque. Sed -DEBUG - 2016-08-23 15:10:09 - 23-08-2016 egestas elit et leo consectetur, nec dignissim arcu ultricies. Sed molestie tempor -ERROR -2016-08-23 15:10:11 - erat, a maximus sapien rutrum ut. Curabitur congue condimentum dignissim. -DEBUG - 2016-08-23 15:10:12 - Mauris hendrerit, velit nec accumsan egestas, augue justo tincidunt risus, -INFO - 2016-08-23 15:10:14 - a facilisis nulla augue PATTERN eu metus. Duis vel neque sit amet nunc elementum viverra -eu ut ligula. Mauris et libero lacus. -`) - -func BenchmarkPatterns(b *testing.B) { - patterns := []struct { - title string - regex string - }{ - {"match any 1", `^.*$`}, - {"match any 2", `.*`}, - {"startsWith 'PATTERN'", `^PATTERN`}, - {"startsWith ' '", `^ `}, - {"startsWithDate", `^\d{2}-\d{2}-\d{4}`}, - {"startsWithDate2", `^\d{4}-\d{2}-\d{2}`}, - {"startsWithDate3", `^\d\d\d\d-\d\d-\d\d`}, - {"startsWithDate4", `^20\d{2}-\d{2}-\d{2}`}, - {"startsWithDateAndSpace", `^\d{4}-\d{2}-\d{2} `}, - {"startsWithLevel", `^(DEBUG|INFO|WARN|ERR|CRIT)`}, - {"hasLevel", `(DEBUG|INFO|WARN|ERR|CRIT)`}, - {"contains 'PATTERN'", `PATTERN`}, - {"contains 'PATTERN' with '.*", `.*PATTERN.*`}, - {"empty line", `^$`}, - {"empty line with optional whitespace", `^\s*$`}, - } - - runTitle := func(matcher, name, content string) string { - return fmt.Sprintf("Name=%v, Matcher=%v, Content=%v", name, matcher, content) - } - - for i, pattern := range patterns { - b.Logf("benchmark (%v): %v", i, pattern.title) - - regex := regexp.MustCompile(pattern.regex) - matcher := MustCompile(pattern.regex) - - b.Logf("regex: %v", regex) - b.Logf("matcher: %v", matcher) - - for _, content := range allContents { - title := runTitle("Regex", pattern.title, content.name) - runner := makeRunner(title, content.lines, regex.Match) - b.Run(runner.title, runner.f) - - title = runTitle("Match", pattern.title, content.name) - runner = makeRunner(title, content.lines, matcher.Match) - b.Run(runner.title, runner.f) - } - } -} - -func makeRunner(title string, content [][]byte, m func([]byte) bool) benchRunner { - return benchRunner{ - title, - func(b *testing.B) { - for i := 0; i < b.N; i++ { - for _, line := range content { - m(line) - } - } - }, - } -} - -func makeContent(name, s string) testContent { - return testContent{ - name, - bytes.Split([]byte(s), []byte("\n")), - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/match/matcher_test.go b/vendor/github.com/elastic/beats/libbeat/common/match/matcher_test.go deleted file mode 100644 index 082c3061..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/match/matcher_test.go +++ /dev/null @@ -1,385 +0,0 @@ -package match - -import ( - "reflect" - "testing" -) - -func TestMatchers(t *testing.T) { - typeOf := func(v interface{}) reflect.Type { - return reflect.TypeOf(v) - } - - tests := []struct { - pattern string - matcherType reflect.Type - matches []string - noMatches []string - }{ - { - `.*`, - typeOf((*matchAny)(nil)), - []string{ - "any matches always", - }, - nil, - }, - { - `^$`, - typeOf((*emptyStringMatcher)(nil)), - []string{""}, - []string{"not empty"}, - }, - { - `^\s*$`, - typeOf((*emptyWhiteStringMatcher)(nil)), - []string{"", " ", " ", "\t", "\n"}, - []string{"not empty"}, - }, - { - `substring`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `^.*substring`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `substring.*$`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `^.*substring.*$`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `^equals$`, - typeOf((*equalsMatcher)(nil)), - []string{"equals"}, - []string{"not equals"}, - }, - { - `(alt|substring)`, - typeOf((*altSubstringMatcher)(nil)), - []string{ - "has alt in middle", - "alt at beginning", - "uses substring", - }, - []string{"missing sub-string"}, - }, - { - `alt|substring`, - typeOf((*altSubstringMatcher)(nil)), - []string{ - "has alt in middle", - "alt at beginning", - "uses substring", - }, - []string{"missing sub-string"}, - }, - { - `^prefix`, - typeOf((*prefixMatcher)(nil)), - []string{"prefix string match"}, - []string{"missing prefix string"}, - }, - { - `^(DEBUG|INFO|ERROR)`, - typeOf((*altPrefixMatcher)(nil)), - []string{ - "DEBUG - should match", - "INFO - should match too", - "ERROR - yep", - }, - []string{ - "This should not match", - }, - }, - { - `^\d\d\d\d-\d\d-\d\d`, - typeOf((*prefixNumDate)(nil)), - []string{ - "2017-01-02 should match", - "2017-01-03 should also match", - }, - []string{ - "- 2017-01-02 should not match", - "fail", - }, - }, - { - `^\d{4}-\d{2}-\d{2}`, - typeOf((*prefixNumDate)(nil)), - []string{ - "2017-01-02 should match", - "2017-01-03 should also match", - }, - []string{ - "- 2017-01-02 should not match", - "fail", - }, - }, - { - `^(\d{2}){2}-\d{2}-\d{2}`, - typeOf((*prefixNumDate)(nil)), - []string{ - "2017-01-02 should match", - "2017-01-03 should also match", - }, - []string{ - "- 2017-01-02 should not match", - "fail", - }, - }, - { - `^\d{4}-\d{2}-\d{2} - `, - typeOf((*prefixNumDate)(nil)), - []string{ - "2017-01-02 - should match", - "2017-01-03 - should also match", - }, - []string{ - "- 2017-01-02 should not match", - "fail", - }, - }, - { - `^20\d{2}-\d{2}-\d{2}`, - typeOf((*prefixNumDate)(nil)), - []string{ - "2017-01-02 should match", - "2017-01-03 should also match", - }, - []string{ - "- 2017-01-02 should not match", - "fail", - }, - }, - { - `^20\d{2}-\d{2}-\d{2} \d{2}:\d{2}`, - typeOf((*prefixNumDate)(nil)), - []string{ - "2017-01-02 10:10 should match", - "2017-01-03 10:11 should also match", - }, - []string{ - "- 2017-01-02 should not match", - "fail", - }, - }, - } - - for i, test := range tests { - t.Logf("run test (%v): %v", i, test.pattern) - - matcher, err := Compile(test.pattern) - if err != nil { - t.Error(err) - continue - } - - t.Logf(" matcher: %v", matcher) - - matcherType := reflect.TypeOf(matcher.stringMatcher) - if matcherType != test.matcherType { - t.Errorf(" Matcher type mismatch (expected=%v, actual=%v)", - test.matcherType, - matcherType, - ) - } - - for _, content := range test.matches { - if !matcher.MatchString(content) { - t.Errorf(" failed to match string: '%v'", content) - continue - } - - if !matcher.Match([]byte(content)) { - t.Errorf(" failed to match byte string: '%v'", content) - continue - } - } - - for _, content := range test.noMatches { - if matcher.MatchString(content) { - t.Errorf(" should not match string: '%v'", content) - continue - } - - if matcher.Match([]byte(content)) { - t.Errorf(" should not match string: '%v'", content) - continue - } - } - } -} - -func TestExactMatchers(t *testing.T) { - typeOf := func(v interface{}) reflect.Type { - return reflect.TypeOf(v) - } - - tests := []struct { - pattern string - matcherType reflect.Type - matches []string - noMatches []string - }{ - { - `.*`, - typeOf((*matchAny)(nil)), - []string{ - "any matches always", - }, - nil, - }, - { - `^$`, - typeOf((*emptyStringMatcher)(nil)), - []string{""}, - []string{"not empty"}, - }, - { - `^\s*$`, - typeOf((*emptyWhiteStringMatcher)(nil)), - []string{"", " ", " ", "\t", "\n"}, - []string{"not empty"}, - }, - { - `.*substring.*`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `^.*substring.*`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `.*substring.*$`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `^.*substring.*$`, - typeOf((*substringMatcher)(nil)), - []string{ - "has substring in middle", - "substring at beginning", - "ends with substring", - }, - []string{"missing sub-string"}, - }, - { - `equals`, - typeOf((*equalsMatcher)(nil)), - []string{"equals"}, - []string{"not equals"}, - }, - { - `^equals`, - typeOf((*equalsMatcher)(nil)), - []string{"equals"}, - []string{"not equals"}, - }, - { - `equals$`, - typeOf((*equalsMatcher)(nil)), - []string{"equals"}, - []string{"not equals"}, - }, - { - `DEBUG|INFO`, - typeOf((*oneOfMatcher)(nil)), - []string{ - "DEBUG", - "INFO", - }, - []string{"none"}, - }, - } - - for i, test := range tests { - t.Logf("run test (%v): %v", i, test.pattern) - - matcher, err := CompileExact(test.pattern) - if err != nil { - t.Error(err) - continue - } - - t.Logf(" matcher: %v", matcher) - - matcherType := reflect.TypeOf(matcher.stringMatcher) - if matcherType != test.matcherType { - t.Errorf(" Matcher type mismatch (expected=%v, actual=%v)", - test.matcherType, - matcherType, - ) - } - - for _, content := range test.matches { - if !matcher.MatchString(content) { - t.Errorf(" failed to match string: '%v'", content) - continue - } - - if !matcher.Match([]byte(content)) { - t.Errorf(" failed to match byte string: '%v'", content) - continue - } - } - - for _, content := range test.noMatches { - if matcher.MatchString(content) { - t.Errorf(" should not match string: '%v'", content) - continue - } - - if matcher.Match([]byte(content)) { - t.Errorf(" should not match string: '%v'", content) - continue - } - } - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/match/matchers.go b/vendor/github.com/elastic/beats/libbeat/common/match/matchers.go index c62dd85e..d0c7e8f3 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/match/matchers.go +++ b/vendor/github.com/elastic/beats/libbeat/common/match/matchers.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 match import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/match/optimize.go b/vendor/github.com/elastic/beats/libbeat/common/match/optimize.go index aa757c6a..891b8847 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/match/optimize.go +++ b/vendor/github.com/elastic/beats/libbeat/common/match/optimize.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 match import "regexp/syntax" diff --git a/vendor/github.com/elastic/beats/libbeat/common/math.go b/vendor/github.com/elastic/beats/libbeat/common/math.go index 9c039568..9200a1bb 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/math.go +++ b/vendor/github.com/elastic/beats/libbeat/common/math.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 "math" diff --git a/vendor/github.com/elastic/beats/libbeat/common/math_test.go b/vendor/github.com/elastic/beats/libbeat/common/math_test.go deleted file mode 100644 index f2d5a1d1..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/math_test.go +++ /dev/null @@ -1,17 +0,0 @@ -package common - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestRound(t *testing.T) { - assert.EqualValues(t, 0.5, Round(0.5, DefaultDecimalPlacesCount)) - assert.EqualValues(t, 0.5, Round(0.50004, DefaultDecimalPlacesCount)) - assert.EqualValues(t, 0.5001, Round(0.50005, DefaultDecimalPlacesCount)) - - assert.EqualValues(t, 1234.5, Round(1234.5, DefaultDecimalPlacesCount)) - assert.EqualValues(t, 1234.5, Round(1234.50004, DefaultDecimalPlacesCount)) - assert.EqualValues(t, 1234.5001, Round(1234.50005, DefaultDecimalPlacesCount)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/net.go b/vendor/github.com/elastic/beats/libbeat/common/net.go index 0d258046..6b7517d4 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/net.go +++ b/vendor/github.com/elastic/beats/libbeat/common/net.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/net_test.go b/vendor/github.com/elastic/beats/libbeat/common/net_test.go deleted file mode 100644 index acaeb464..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/net_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// +build !integration - -package common - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestIsLoopback(t *testing.T) { - check, err := IsLoopback("127.0.0.1") - - assert.Nil(t, err) - assert.True(t, check) -} - -func TestIsLoopback_false(t *testing.T) { - check, err := IsLoopback("192.168.1.1") - assert.Nil(t, err) - assert.False(t, check) -} - -func TestIsLoopback_error(t *testing.T) { - check, err := IsLoopback("19216811") - assert.Error(t, err) - assert.False(t, check) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/op/cancel.go b/vendor/github.com/elastic/beats/libbeat/common/op/cancel.go index 6e9f287d..78434626 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/op/cancel.go +++ b/vendor/github.com/elastic/beats/libbeat/common/op/cancel.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 op import "sync" diff --git a/vendor/github.com/elastic/beats/libbeat/common/op/signal.go b/vendor/github.com/elastic/beats/libbeat/common/op/signal.go index e18d9b6e..d57bf596 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/op/signal.go +++ b/vendor/github.com/elastic/beats/libbeat/common/op/signal.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 op import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/op/signal_util.go b/vendor/github.com/elastic/beats/libbeat/common/op/signal_util.go index f7e6322a..9c38d07e 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/op/signal_util.go +++ b/vendor/github.com/elastic/beats/libbeat/common/op/signal_util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 op // Sig will send the Completed or Failed event to s depending diff --git a/vendor/github.com/elastic/beats/libbeat/common/safemapstr/safemapstr.go b/vendor/github.com/elastic/beats/libbeat/common/safemapstr/safemapstr.go index 80b4268b..75afe812 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/safemapstr/safemapstr.go +++ b/vendor/github.com/elastic/beats/libbeat/common/safemapstr/safemapstr.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 safemapstr import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/safemapstr/safemapstr_test.go b/vendor/github.com/elastic/beats/libbeat/common/safemapstr/safemapstr_test.go deleted file mode 100644 index e7279cd9..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/safemapstr/safemapstr_test.go +++ /dev/null @@ -1,65 +0,0 @@ -package safemapstr - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -func TestPut(t *testing.T) { - m := common.MapStr{ - "subMap": common.MapStr{ - "a": 1, - }, - } - - // Add new value to the top-level. - err := Put(m, "a", "ok") - assert.NoError(t, err) - assert.Equal(t, common.MapStr{"a": "ok", "subMap": common.MapStr{"a": 1}}, m) - - // Add new value to subMap. - err = Put(m, "subMap.b", 2) - assert.NoError(t, err) - assert.Equal(t, common.MapStr{"a": "ok", "subMap": common.MapStr{"a": 1, "b": 2}}, m) - - // Overwrite a value in subMap. - err = Put(m, "subMap.a", 2) - assert.NoError(t, err) - assert.Equal(t, common.MapStr{"a": "ok", "subMap": common.MapStr{"a": 2, "b": 2}}, m) - - // Add value to map that does not exist. - m = common.MapStr{} - err = Put(m, "subMap.newMap.a", 1) - assert.NoError(t, err) - assert.Equal(t, common.MapStr{"subMap": common.MapStr{"newMap": common.MapStr{"a": 1}}}, m) -} - -func TestPutRenames(t *testing.T) { - assert := assert.New(t) - - a := common.MapStr{} - Put(a, "com.docker.swarm.task", "x") - Put(a, "com.docker.swarm.task.id", 1) - Put(a, "com.docker.swarm.task.name", "foobar") - assert.Equal(common.MapStr{"com": common.MapStr{"docker": common.MapStr{"swarm": common.MapStr{ - "task": common.MapStr{ - "id": 1, - "name": "foobar", - "value": "x", - }}}}}, a) - - // order is not important: - b := common.MapStr{} - Put(b, "com.docker.swarm.task.id", 1) - Put(b, "com.docker.swarm.task.name", "foobar") - Put(b, "com.docker.swarm.task", "x") - assert.Equal(common.MapStr{"com": common.MapStr{"docker": common.MapStr{"swarm": common.MapStr{ - "task": common.MapStr{ - "id": 1, - "name": "foobar", - "value": "x", - }}}}}, b) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/doc.go b/vendor/github.com/elastic/beats/libbeat/common/schema/doc.go index b28885f8..b136bf03 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/doc.go +++ b/vendor/github.com/elastic/beats/libbeat/common/schema/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 schema contains helper utilities to parse, convert, rename, and reorganize data from the format returned by the various monitored systems to the data model used by diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/error.go b/vendor/github.com/elastic/beats/libbeat/common/schema/error.go index 31b6b50f..05be95ab 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/error.go +++ b/vendor/github.com/elastic/beats/libbeat/common/schema/error.go @@ -1,36 +1,92 @@ -package schema +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. -import "fmt" +package schema -const ( - RequiredType ErrorType = iota - OptionalType ErrorType = iota +import ( + "fmt" ) -type ErrorType int +// KeyError is an error with a field key +type KeyError interface { + Key() string + SetKey(k string) +} + +type errorKey struct { + key string +} + +// Key returns the value of the field key +func (k *errorKey) Key() string { + return k.key +} -type Error struct { - key string - message string - errorType ErrorType +// SetKey sets the value of the field key +func (k *errorKey) SetKey(v string) { + k.key = v } -func NewError(key string, message string) *Error { - return &Error{ - key: key, - message: message, - errorType: RequiredType, +// KeyNotFoundError is an error happening when a field key is not found +type KeyNotFoundError struct { + errorKey + + Err error + Optional bool + Required bool +} + +// NewKeyNotFoundError builds a KeyNotFoundError +func NewKeyNotFoundError(key string) *KeyNotFoundError { + var e KeyNotFoundError + e.SetKey(key) + return &e +} + +// Error returns the error message of a KeyNotFoundError +func (err *KeyNotFoundError) Error() string { + msg := fmt.Sprintf("key `%s` not found", err.Key()) + if err.Err != nil { + msg += ": " + err.Err.Error() } + return msg } -func (err *Error) SetType(errorType ErrorType) { - err.errorType = errorType +// WrongFormatError is an error happening when a field format is incorrect +type WrongFormatError struct { + errorKey + + Msg string } -func (err *Error) IsType(errorType ErrorType) bool { - return err.errorType == errorType +// NewWrongFormatError builds a new WrongFormatError +func NewWrongFormatError(key string, msg string) *WrongFormatError { + e := WrongFormatError{ + Msg: msg, + } + e.SetKey(key) + return &e } -func (err *Error) Error() string { - return fmt.Sprintf("Missing field: %s, Error: %s", err.key, err.message) +// Error returns the error message of a WrongFormatError +func (err *WrongFormatError) Error() string { + msg := fmt.Sprintf("wrong format in `%s`", err.Key()) + if err.Msg != "" { + msg += ": " + err.Msg + } + return msg } diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/error_test.go b/vendor/github.com/elastic/beats/libbeat/common/schema/error_test.go deleted file mode 100644 index 98b025ff..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/error_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package schema - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestIsError(t *testing.T) { - err := NewError("test", "Hello World") - assert.Error(t, err) -} - -func TestType(t *testing.T) { - err := NewError("test", "Hello World") - assert.True(t, err.IsType(RequiredType)) - - err.SetType(OptionalType) - assert.True(t, err.IsType(OptionalType)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/errors.go b/vendor/github.com/elastic/beats/libbeat/common/schema/errors.go deleted file mode 100644 index 461e45b4..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/errors.go +++ /dev/null @@ -1,70 +0,0 @@ -package schema - -import ( - "strings" - - "github.com/elastic/beats/libbeat/logp" -) - -type Errors []Error - -func NewErrors() *Errors { - return &Errors{} -} - -func (errs *Errors) AddError(err *Error) { - *errs = append(*errs, *err) -} - -func (errs *Errors) AddErrors(errors *Errors) { - if errors == nil { - return - } - *errs = append(*errs, *errors...) -} - -func (errs *Errors) HasRequiredErrors() bool { - for _, err := range *errs { - if err.IsType(RequiredType) { - return true - } - } - return false -} - -func (errs *Errors) Error() string { - error := "Required fields are missing: " - for _, err := range *errs { - if err.IsType(RequiredType) { - error = error + "," + err.key - } - } - return error -} - -// Log logs all missing required and optional fields to the debug log. -func (errs *Errors) Log() { - if len(*errs) == 0 { - return - } - var optional, required []string - - for _, err := range *errs { - if err.IsType(RequiredType) { - required = append(required, err.key) - } else { - optional = append(optional, err.key) - } - } - - log := "" - if len(required) > 0 { - log = log + "required: " + strings.Join(required, ",") + "; " - } - - if len(optional) > 0 { - log = log + "optional: " + strings.Join(optional, ",") + ";" - } - - logp.Debug("schema", "Fields missing - %s", log) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/errors_test.go b/vendor/github.com/elastic/beats/libbeat/common/schema/errors_test.go deleted file mode 100644 index 9d773082..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/errors_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package schema - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestErrors(t *testing.T) { - errs := NewErrors() - err := NewError("test", "Hello World") - errs.AddError(err) - - assert.True(t, errs.HasRequiredErrors()) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstriface/mapstriface.go b/vendor/github.com/elastic/beats/libbeat/common/schema/mapstriface/mapstriface.go index a903f5c0..cda5c093 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstriface/mapstriface.go +++ b/vendor/github.com/elastic/beats/libbeat/common/schema/mapstriface/mapstriface.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapstriface contains utilities for transforming map[string]interface{} objects into metricbeat events. For example, given this input object: @@ -58,6 +75,8 @@ import ( "fmt" "time" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/schema" "github.com/elastic/beats/libbeat/logp" @@ -67,29 +86,35 @@ type ConvMap struct { Key string // The key in the data map Schema schema.Schema // The schema describing how to convert the sub-map Optional bool + Required bool } // Map drills down in the data dictionary by using the key -func (convMap ConvMap) Map(key string, event common.MapStr, data map[string]interface{}) *schema.Errors { - subData, ok := data[convMap.Key].(map[string]interface{}) +func (convMap ConvMap) Map(key string, event common.MapStr, data map[string]interface{}) multierror.Errors { + d, err := common.MapStr(data).GetValue(convMap.Key) + if err != nil { + err := schema.NewKeyNotFoundError(convMap.Key) + err.Optional = convMap.Optional + err.Required = convMap.Required + return multierror.Errors{err} + } + subData, ok := d.(map[string]interface{}) if !ok { - err := schema.NewError(convMap.Key, "Error accessing sub-dictionary") - if convMap.Optional { - err.SetType(schema.OptionalType) - } else { - logp.Err("Error accessing sub-dictionary `%s`", convMap.Key) - } - - errors := schema.NewErrors() - errors.AddError(err) - - return errors + msg := fmt.Sprintf("expected dictionary, found %T", subData) + err := schema.NewWrongFormatError(convMap.Key, msg) + logp.Err(err.Error()) + return multierror.Errors{err} } subEvent := common.MapStr{} - convMap.Schema.ApplyTo(subEvent, subData) + _, errors := convMap.Schema.ApplyTo(subEvent, subData) + for _, err := range errors { + if err, ok := err.(schema.KeyError); ok { + err.SetKey(convMap.Key + "." + err.Key()) + } + } event[key] = subEvent - return nil + return errors } func (convMap ConvMap) HasKey(key string) bool { @@ -105,9 +130,9 @@ func Dict(key string, s schema.Schema, opts ...DictSchemaOption) ConvMap { } func toStrFromNum(key string, data map[string]interface{}) (interface{}, error) { - emptyIface, exists := data[key] - if !exists { - return false, fmt.Errorf("Key %s not found", key) + emptyIface, err := common.MapStr(data).GetValue(key) + if err != nil { + return "", schema.NewKeyNotFoundError(key) } switch emptyIface.(type) { case int, int32, int64, uint, uint32, uint64, float32, float64: @@ -115,7 +140,8 @@ func toStrFromNum(key string, data map[string]interface{}) (interface{}, error) case json.Number: return string(emptyIface.(json.Number)), nil default: - return "", fmt.Errorf("Expected number, found %T", emptyIface) + msg := fmt.Sprintf("expected number, found %T", emptyIface) + return "", schema.NewWrongFormatError(key, msg) } } @@ -127,11 +153,12 @@ func StrFromNum(key string, opts ...schema.SchemaOption) schema.Conv { func toStr(key string, data map[string]interface{}) (interface{}, error) { emptyIface, err := common.MapStr(data).GetValue(key) if err != nil { - return "", fmt.Errorf("Key %s not found: %s", key, err.Error()) + return "", schema.NewKeyNotFoundError(key) } str, ok := emptyIface.(string) if !ok { - return "", fmt.Errorf("Expected string, found %T", emptyIface) + msg := fmt.Sprintf("expected string, found %T", emptyIface) + return "", schema.NewWrongFormatError(key, msg) } return str, nil } @@ -144,7 +171,9 @@ func Str(key string, opts ...schema.SchemaOption) schema.Conv { func toIfc(key string, data map[string]interface{}) (interface{}, error) { intf, err := common.MapStr(data).GetValue(key) if err != nil { - return "", fmt.Errorf("Key %s not found: %s", key, err.Error()) + e := schema.NewKeyNotFoundError(key) + e.Err = err + return nil, e } return intf, nil } @@ -155,13 +184,14 @@ func Ifc(key string, opts ...schema.SchemaOption) schema.Conv { } func toBool(key string, data map[string]interface{}) (interface{}, error) { - emptyIface, exists := data[key] - if !exists { - return false, fmt.Errorf("Key %s not found", key) + emptyIface, err := common.MapStr(data).GetValue(key) + if err != nil { + return false, schema.NewKeyNotFoundError(key) } boolean, ok := emptyIface.(bool) if !ok { - return false, fmt.Errorf("Expected bool, found %T", emptyIface) + msg := fmt.Sprintf("expected bool, found %T", emptyIface) + return false, schema.NewWrongFormatError(key, msg) } return boolean, nil } @@ -172,9 +202,9 @@ func Bool(key string, opts ...schema.SchemaOption) schema.Conv { } func toInteger(key string, data map[string]interface{}) (interface{}, error) { - emptyIface, exists := data[key] - if !exists { - return 0, fmt.Errorf("Key %s not found", key) + emptyIface, err := common.MapStr(data).GetValue(key) + if err != nil { + return 0, schema.NewKeyNotFoundError(key) } switch emptyIface.(type) { case int64: @@ -193,9 +223,11 @@ func toInteger(key string, data map[string]interface{}) (interface{}, error) { if err == nil { return int64(f64), nil } - return 0, fmt.Errorf("expected integer, found json.Number (%v) that cannot be converted", num) + msg := fmt.Sprintf("expected integer, found json.Number (%v) that cannot be converted", num) + return 0, schema.NewWrongFormatError(key, msg) default: - return 0, fmt.Errorf("expected integer, found %T", emptyIface) + msg := fmt.Sprintf("expected integer, found %T", emptyIface) + return 0, schema.NewWrongFormatError(key, msg) } } @@ -206,9 +238,9 @@ func Float(key string, opts ...schema.SchemaOption) schema.Conv { } func toFloat(key string, data map[string]interface{}) (interface{}, error) { - emptyIface, exists := data[key] - if !exists { - return 0, fmt.Errorf("key %s not found", key) + emptyIface, err := common.MapStr(data).GetValue(key) + if err != nil { + return 0.0, schema.NewKeyNotFoundError(key) } switch emptyIface.(type) { case float64: @@ -227,9 +259,11 @@ func toFloat(key string, data map[string]interface{}) (interface{}, error) { if err == nil { return f64, nil } - return 0, fmt.Errorf("expected float, found json.Number (%v) that cannot be converted", num) + msg := fmt.Sprintf("expected float, found json.Number (%v) that cannot be converted", num) + return 0.0, schema.NewWrongFormatError(key, msg) default: - return 0, fmt.Errorf("expected float, found %T", emptyIface) + msg := fmt.Sprintf("expected float, found %T", emptyIface) + return 0.0, schema.NewWrongFormatError(key, msg) } } @@ -240,9 +274,9 @@ func Int(key string, opts ...schema.SchemaOption) schema.Conv { } func toTime(key string, data map[string]interface{}) (interface{}, error) { - emptyIface, exists := data[key] - if !exists { - return common.Time(time.Unix(0, 0)), fmt.Errorf("Key %s not found", key) + emptyIface, err := common.MapStr(data).GetValue(key) + if err != nil { + return common.Time(time.Unix(0, 0)), schema.NewKeyNotFoundError(key) } switch emptyIface.(type) { @@ -258,7 +292,8 @@ func toTime(key string, data map[string]interface{}) (interface{}, error) { } } - return common.Time(time.Unix(0, 0)), fmt.Errorf("Expected date, found %T", emptyIface) + msg := fmt.Sprintf("expected date, found %T", emptyIface) + return common.Time(time.Unix(0, 0)), schema.NewWrongFormatError(key, msg) } // Time creates a Conv object for converting Time objects. @@ -270,13 +305,20 @@ func Time(key string, opts ...schema.SchemaOption) schema.Conv { // functions type DictSchemaOption func(c ConvMap) ConvMap -// The optional flag suppresses the error message in case the key -// doesn't exist or results in an error. +// DictOptional sets the optional flag, which suppresses the error in +// case the key doesn't exist or results in an error. func DictOptional(c ConvMap) ConvMap { c.Optional = true return c } +// DictRequired sets the required flag, which forces an error even if fields +// are optional by default +func DictRequired(c ConvMap) ConvMap { + c.Required = true + return c +} + // setOptions adds the optional flags to the Conv object func dictSetOptions(c ConvMap, opts []DictSchemaOption) ConvMap { for _, opt := range opts { diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstriface/mapstriface_test.go b/vendor/github.com/elastic/beats/libbeat/common/schema/mapstriface/mapstriface_test.go deleted file mode 100644 index d2bc20e4..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstriface/mapstriface_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package mapstriface - -import ( - "encoding/json" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - s "github.com/elastic/beats/libbeat/common/schema" -) - -func TestConversions(t *testing.T) { - ts := time.Now() - - cTs := common.Time{} - - input := map[string]interface{}{ - "testString": "hello", - "testInt": 42, - "testIntFromFloat": 42.2, - "testFloat": 42.7, - "testFloatFromInt": 43, - "testIntFromInt32": int32(32), - "testIntFromInt64": int64(42), - "testJsonNumber": json.Number("3910564293633576924"), - "testJsonNumberFloat": json.Number("43.7"), - "testBool": true, - "testObj": map[string]interface{}{ - "testObjString": "hello, object", - }, - "rawObject": map[string]interface{}{ - "nest1": map[string]interface{}{ - "nest2": "world", - }, - }, - "testArray": []string{"a", "b", "c"}, - "testNonNestedObj": "hello from top level", - "testTime": ts, - "commonTime": cTs, - - // wrong types - "testErrorInt": "42", - "testErrorTime": 12, - "testErrorBool": "false", - "testErrorString": 32, - } - - schema := s.Schema{ - "test_string": Str("testString"), - "test_int": Int("testInt"), - "test_int_from_float": Int("testIntFromFloat"), - "test_int_from_int64": Int("testIntFromInt64"), - "test_float": Float("testFloat"), - "test_float_from_int": Float("testFloatFromInt"), - "test_int_from_json": Int("testJsonNumber"), - "test_float_from_json": Float("testJsonNumberFloat"), - "test_string_from_num": StrFromNum("testIntFromInt32"), - "test_string_from_json_num": StrFromNum("testJsonNumber"), - "test_bool": Bool("testBool"), - "test_time": Time("testTime"), - "common_time": Time("commonTime"), - "test_obj_1": s.Object{ - "test": Str("testNonNestedObj"), - }, - "test_obj_2": Dict("testObj", s.Schema{ - "test": Str("testObjString"), - }), - "test_nested": Ifc("rawObject"), - "test_array": Ifc("testArray"), - "test_error_int": Int("testErrorInt", s.Optional), - "test_error_time": Time("testErrorTime", s.Optional), - "test_error_bool": Bool("testErrorBool", s.Optional), - "test_error_string": Str("testErrorString", s.Optional), - } - - expected := common.MapStr{ - "test_string": "hello", - "test_int": int64(42), - "test_int_from_float": int64(42), - "test_int_from_int64": int64(42), - "test_float": float64(42.7), - "test_float_from_int": float64(43), - "test_int_from_json": int64(3910564293633576924), - "test_float_from_json": float64(43.7), - "test_string_from_num": "32", - "test_string_from_json_num": "3910564293633576924", - "test_bool": true, - "test_time": common.Time(ts), - "common_time": cTs, - "test_obj_1": common.MapStr{ - "test": "hello from top level", - }, - "test_obj_2": common.MapStr{ - "test": "hello, object", - }, - "test_nested": map[string]interface{}{ - "nest1": map[string]interface{}{ - "nest2": "world", - }, - }, - "test_array": []string{"a", "b", "c"}, - } - - output, _ := schema.Apply(input) - assert.Equal(t, output, expected) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstrstr/mapstrstr.go b/vendor/github.com/elastic/beats/libbeat/common/schema/mapstrstr/mapstrstr.go index 7a5691b7..7b9dae83 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstrstr/mapstrstr.go +++ b/vendor/github.com/elastic/beats/libbeat/common/schema/mapstrstr/mapstrstr.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapstrstr contains utilities for transforming map[string]string objects into metricbeat events. For example, given this input object: @@ -58,7 +75,8 @@ func toBool(key string, data map[string]interface{}) (interface{}, error) { value, err := strconv.ParseBool(str) if err != nil { - return false, fmt.Errorf("Error converting param to bool: %s", key) + msg := fmt.Sprintf("error converting param to bool: `%s`", str) + return false, schema.NewWrongFormatError(key, msg) } return value, nil @@ -78,7 +96,8 @@ func toFloat(key string, data map[string]interface{}) (interface{}, error) { value, err := strconv.ParseFloat(str, 64) if err != nil { - return 0.0, fmt.Errorf("Error converting param to float: %s", key) + msg := fmt.Sprintf("error converting param to float: `%s`", str) + return 0.0, schema.NewWrongFormatError(key, msg) } return value, nil @@ -98,7 +117,8 @@ func toInt(key string, data map[string]interface{}) (interface{}, error) { value, err := strconv.ParseInt(str, 10, 64) if err != nil { - return 0, fmt.Errorf("Error converting param to int: %s", key) + msg := fmt.Sprintf("error converting param to int: `%s`", str) + return 0, schema.NewWrongFormatError(key, msg) } return value, nil @@ -128,7 +148,8 @@ func Time(layout, key string, opts ...schema.SchemaOption) schema.Conv { value, err := time.Parse(layout, str) if err != nil { - return 0, fmt.Errorf("Error converting param to time.Time: %s. Original: %s", key, str) + msg := fmt.Sprintf("error converting param to time.Time: `%s`", str) + return common.Time{}, schema.NewWrongFormatError(key, msg) } return common.Time(value), nil @@ -145,12 +166,12 @@ func Str(key string, opts ...schema.SchemaOption) schema.Conv { func getString(key string, data map[string]interface{}) (string, error) { val, exists := data[key] if !exists { - return "", fmt.Errorf("Key `%s` not found", key) + return "", schema.NewKeyNotFoundError(key) } str, ok := val.(string) if !ok { - return "", fmt.Errorf("Expected value of `%s` to have type string but has %T", key, val) + return "", schema.NewWrongFormatError(key, fmt.Sprintf("expected type string but has %T", val)) } return str, nil diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstrstr/mapstrstr_test.go b/vendor/github.com/elastic/beats/libbeat/common/schema/mapstrstr/mapstrstr_test.go deleted file mode 100644 index 8dffc81d..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/mapstrstr/mapstrstr_test.go +++ /dev/null @@ -1,59 +0,0 @@ -package mapstrstr - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - s "github.com/elastic/beats/libbeat/common/schema" -) - -func TestConversions(t *testing.T) { - input := map[string]interface{}{ - "testString": "hello", - "testInt": "42", - "testBool": "true", - "testFloat": "42.1", - "testObjString": "hello, object", - "testTime": "2016-08-12T08:00:59.601478Z", - "testError": 42, // invalid, only strings are allowed - "testErrorInt": "12a", // invalid integer - "testErrorFloat": "12,2", // invalid float - "testErrorBool": "yes", // invalid bool - } - - schema := s.Schema{ - "test_string": Str("testString"), - "test_int": Int("testInt"), - "test_bool": Bool("testBool"), - "test_float": Float("testFloat"), - "test_time": Time(time.RFC3339Nano, "testTime"), - "test_obj": s.Object{ - "test_obj_string": Str("testObjString"), - }, - "test_notexistant": Str("notexistant", s.Optional), - "test_error": Str("testError", s.Optional), - "test_error_int": Int("testErrorInt", s.Optional), - "test_error_float": Float("testErrorFloat", s.Optional), - "test_error_bool": Bool("testErrorBool", s.Optional), - } - - ts, err := time.Parse(time.RFC3339Nano, "2016-08-12T08:00:59.601478Z") - assert.NoError(t, err) - - expected := common.MapStr{ - "test_string": "hello", - "test_int": int64(42), - "test_bool": true, - "test_float": 42.1, - "test_time": common.Time(ts), - "test_obj": common.MapStr{ - "test_obj_string": "hello, object", - }, - } - - output, _ := schema.Apply(input) - assert.Equal(t, output, expected) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/options.go b/vendor/github.com/elastic/beats/libbeat/common/schema/options.go new file mode 100644 index 00000000..b7d36536 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/common/schema/options.go @@ -0,0 +1,76 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 schema + +import ( + "github.com/joeshaw/multierror" + + "github.com/elastic/beats/libbeat/common" +) + +// DefaultApplyOptions are the default options for Apply() +var DefaultApplyOptions = []ApplyOption{AllRequired} + +// ApplyOption modifies the result of Apply +type ApplyOption func(common.MapStr, multierror.Errors) (common.MapStr, multierror.Errors) + +// AllRequired considers any missing field as an error, except if explicitly +// set as optional +func AllRequired(event common.MapStr, errors multierror.Errors) (common.MapStr, multierror.Errors) { + k := 0 + for i, err := range errors { + if err, ok := err.(*KeyNotFoundError); ok { + if err.Optional { + continue + } + } + errors[k] = errors[i] + k++ + } + return event, errors[:k] +} + +// FailOnRequired considers missing fields as an error only if they are set +// as required +func FailOnRequired(event common.MapStr, errors multierror.Errors) (common.MapStr, multierror.Errors) { + k := 0 + for i, err := range errors { + if err, ok := err.(*KeyNotFoundError); ok { + if !err.Required { + continue + } + } + errors[k] = errors[i] + k++ + } + return event, errors[:k] +} + +// NotFoundKeys calls a function with the list of missing keys as parameter +func NotFoundKeys(cb func(keys []string)) ApplyOption { + return func(event common.MapStr, errors multierror.Errors) (common.MapStr, multierror.Errors) { + var keys []string + for _, err := range errors { + if err, ok := err.(*KeyNotFoundError); ok { + keys = append(keys, err.Key()) + } + } + cb(keys) + return event, errors + } +} diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/schema.go b/vendor/github.com/elastic/beats/libbeat/common/schema/schema.go index 2516e7ec..491da93d 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/schema.go +++ b/vendor/github.com/elastic/beats/libbeat/common/schema/schema.go @@ -1,6 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 schema import ( + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" ) @@ -13,7 +32,7 @@ type Schema map[string]Mapper type Mapper interface { // Map applies the Mapper conversion on the data and adds the result // to the event on the key. - Map(key string, event common.MapStr, data map[string]interface{}) *Errors + Map(key string, event common.MapStr, data map[string]interface{}) multierror.Errors HasKey(key string) bool } @@ -22,29 +41,25 @@ type Mapper interface { type Conv struct { Func Converter // Convertor function Key string // The key in the data map - Optional bool // Whether to log errors if the key is not found + Optional bool // Whether to ignore errors if the key is not found + Required bool // Whether to provoke errors if the key is not found } -// Convertor function type +// Converter function type type Converter func(key string, data map[string]interface{}) (interface{}, error) // Map applies the conversion on the data and adds the result // to the event on the key. -func (conv Conv) Map(key string, event common.MapStr, data map[string]interface{}) *Errors { +func (conv Conv) Map(key string, event common.MapStr, data map[string]interface{}) multierror.Errors { value, err := conv.Func(conv.Key, data) if err != nil { - err := NewError(key, err.Error()) - if conv.Optional { - err.SetType(OptionalType) + if err, keyNotFound := err.(*KeyNotFoundError); keyNotFound { + err.Optional = conv.Optional + err.Required = conv.Required } - - errs := NewErrors() - errs.AddError(err) - return errs - - } else { - event[key] = value + return multierror.Errors{err} } + event[key] = value return nil } @@ -55,7 +70,8 @@ func (conv Conv) HasKey(key string) bool { // implements Mapper interface for structure type Object map[string]Mapper -func (o Object) Map(key string, event common.MapStr, data map[string]interface{}) *Errors { +// Map applies the schema for an object +func (o Object) Map(key string, event common.MapStr, data map[string]interface{}) multierror.Errors { subEvent := common.MapStr{} errs := applySchemaToEvent(subEvent, data, o) event[key] = subEvent @@ -68,15 +84,21 @@ func (o Object) HasKey(key string) bool { // ApplyTo adds the fields extracted from data, converted using the schema, to the // event map. -func (s Schema) ApplyTo(event common.MapStr, data map[string]interface{}) (common.MapStr, *Errors) { +func (s Schema) ApplyTo(event common.MapStr, data map[string]interface{}, opts ...ApplyOption) (common.MapStr, multierror.Errors) { + if len(opts) == 0 { + opts = DefaultApplyOptions + } errors := applySchemaToEvent(event, data, s) - errors.Log() + for _, opt := range opts { + event, errors = opt(event, errors) + } return event, errors } // Apply converts the fields extracted from data, using the schema, into a new map and reports back the errors. -func (s Schema) Apply(data map[string]interface{}) (common.MapStr, *Errors) { - return s.ApplyTo(common.MapStr{}, data) +func (s Schema) Apply(data map[string]interface{}, opts ...ApplyOption) (common.MapStr, error) { + event, errors := s.ApplyTo(common.MapStr{}, data, opts...) + return event, errors.Err() } // HasKey checks if the key is part of the schema @@ -93,11 +115,11 @@ func hasKey(key string, mappers map[string]Mapper) bool { return false } -func applySchemaToEvent(event common.MapStr, data map[string]interface{}, conversions map[string]Mapper) *Errors { - errs := NewErrors() +func applySchemaToEvent(event common.MapStr, data map[string]interface{}, conversions map[string]Mapper) multierror.Errors { + var errs multierror.Errors for key, mapper := range conversions { errors := mapper.Map(key, event, data) - errs.AddErrors(errors) + errs = append(errs, errors...) } return errs } @@ -106,13 +128,20 @@ func applySchemaToEvent(event common.MapStr, data map[string]interface{}, conver // functions type SchemaOption func(c Conv) Conv -// The optional flag suppresses the error message in case the key -// doesn't exist or results in an error. +// Optional sets the optional flag, that suppresses the error in case +// the key doesn't exist func Optional(c Conv) Conv { c.Optional = true return c } +// Required sets the required flag, that provokes an error in case the key +// doesn't exist, even if other missing keys can be ignored +func Required(c Conv) Conv { + c.Required = true + return c +} + // setOptions adds the optional flags to the Conv object func SetOptions(c Conv, opts []SchemaOption) Conv { for _, opt := range opts { diff --git a/vendor/github.com/elastic/beats/libbeat/common/schema/schema_test.go b/vendor/github.com/elastic/beats/libbeat/common/schema/schema_test.go deleted file mode 100644 index b07c59bd..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/schema/schema_test.go +++ /dev/null @@ -1,68 +0,0 @@ -package schema - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func nop(key string, data map[string]interface{}) (interface{}, error) { - return data[key], nil -} - -func TestSchema(t *testing.T) { - schema := Schema{ - "test": Conv{Key: "test", Func: nop}, - "test_obj": Object{ - "test_a": Conv{Key: "testA", Func: nop}, - "test_b": Conv{Key: "testB", Func: nop}, - }, - } - - source := map[string]interface{}{ - "test": "hello", - "testA": "helloA", - "testB": "helloB", - "other_key": "meh", - } - - event, _ := schema.Apply(source) - assert.Equal(t, event, common.MapStr{ - "test": "hello", - "test_obj": common.MapStr{ - "test_a": "helloA", - "test_b": "helloB", - }, - }) -} - -func TestHasKey(t *testing.T) { - schema := Schema{ - "test": Conv{Key: "Test", Func: nop}, - "test_obj": Object{ - "test_a": Conv{Key: "TestA", Func: nop}, - "test_b": Conv{Key: "TestB", Func: nop}, - }, - } - - assert.True(t, schema.HasKey("Test")) - assert.True(t, schema.HasKey("TestA")) - assert.True(t, schema.HasKey("TestB")) - assert.False(t, schema.HasKey("test")) - assert.False(t, schema.HasKey("test_obj")) - assert.False(t, schema.HasKey("test_a")) - assert.False(t, schema.HasKey("test_b")) - assert.False(t, schema.HasKey("other")) -} - -func test(key string, opts ...SchemaOption) Conv { - return SetOptions(Conv{Key: key, Func: nop}, opts) -} - -func TestOptions(t *testing.T) { - conv := test("test", Optional) - assert.Equal(t, conv.Key, "test") - assert.Equal(t, conv.Optional, true) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/seccomp/README.md b/vendor/github.com/elastic/beats/libbeat/common/seccomp/README.md index a4b4db1b..ee78e41d 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/seccomp/README.md +++ b/vendor/github.com/elastic/beats/libbeat/common/seccomp/README.md @@ -20,7 +20,7 @@ profiles are built based on the binaries you plan to release. The policies are stored at `$beatname/include/seccomp_linux_$goarch.go`. ```sh -make package && make seccomp-package +make release && make seccomp-package ``` If you are developing on Linux you can profile the binary produced by `make`. diff --git a/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_386.go b/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_386.go index ca3a7aa1..043ccf7d 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_386.go +++ b/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_386.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 seccomp import ( @@ -29,6 +46,7 @@ func init() { "fchmod", "fchown32", "fcntl", + "fcntl64", "fdatasync", "flock", "fstat64", diff --git a/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_amd64.go b/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_amd64.go index 4dce9b57..00e5353b 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_amd64.go +++ b/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_amd64.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 seccomp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_arm.go b/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_arm.go index 27558580..78a8f68b 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_arm.go +++ b/vendor/github.com/elastic/beats/libbeat/common/seccomp/policy_linux_arm.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 seccomp import "github.com/elastic/go-seccomp-bpf" diff --git a/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp-profiler-allow.txt b/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp-profiler-allow.txt index cb931276..a166cf6f 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp-profiler-allow.txt +++ b/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp-profiler-allow.txt @@ -11,6 +11,7 @@ stat # cgo tsg/gopacket poll +fcntl64 # system testing binaries w/ race detector clock_gettime diff --git a/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go b/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go index fc98ff38..ff4d682b 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go +++ b/vendor/github.com/elastic/beats/libbeat/common/seccomp/seccomp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 seccomp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/statuses.go b/vendor/github.com/elastic/beats/libbeat/common/statuses.go index 2d5096ae..33a6e2a8 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/statuses.go +++ b/vendor/github.com/elastic/beats/libbeat/common/statuses.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 // standardized status values diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/ascii.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/ascii.go index b44e3a18..5e8e4436 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/ascii.go +++ b/vendor/github.com/elastic/beats/libbeat/common/streambuf/ascii.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 streambuf // ASCII parsing support diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/ascii_test.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/ascii_test.go deleted file mode 100644 index 49c21b1c..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/ascii_test.go +++ /dev/null @@ -1,293 +0,0 @@ -// +build !integration - -package streambuf - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func Test_UntilCRLFOK(t *testing.T) { - b := New([]byte(" test\r\n")) - b.Advance(2) - d, err := b.UntilCRLF() - b.checkInvariants(t) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, d, []byte("test")) - assert.Equal(t, 0, b.Len()) -} - -func Test_UntilCRLFFailed(t *testing.T) { - b := New([]byte(" test\r\nabc")) - b.SetError(ErrTest) - _, err := b.UntilCRLF() - assert.Equal(t, ErrTest, err) -} - -func Test_UntilCRLFCont(t *testing.T) { - b := New([]byte(" test")) - b.Advance(2) - - _, err := b.UntilCRLF() - assert.Equal(t, ErrNoMoreBytes, err) - - err = b.Append([]byte("\r\nabc")) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, 4, b.LeftBehind()) - - d, err := b.UntilCRLF() - b.checkInvariants(t) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, d, []byte("test")) - assert.Equal(t, 3, b.Len()) -} - -func Test_UntilCRLFOnlyCRThenCRLF(t *testing.T) { - b := New([]byte("test\rtest\r\nabc")) - d, err := b.UntilCRLF() - b.checkInvariants(t) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, d, []byte("test\rtest")) - assert.Equal(t, 3, b.Len()) -} - -func Test_UntilCRLFOnlyCRThenCRLFWithCont(t *testing.T) { - b := New([]byte("test\rtest\r")) - - _, err := b.UntilCRLF() - assert.Equal(t, ErrNoMoreBytes, err) - - err = b.Append([]byte("\nabc")) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, 9, b.LeftBehind()) - - d, err := b.UntilCRLF() - b.checkInvariants(t) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, d, []byte("test\rtest")) - assert.Equal(t, 3, b.Len()) -} - -func Test_IgnoreSymbolOK(t *testing.T) { - b := New([]byte(" test")) - err := b.IgnoreSymbol(' ') - b.checkInvariants(t) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, 4, b.Len()) -} - -func Test_IgnoreSymbolFailed(t *testing.T) { - b := New([]byte(" test")) - b.SetError(ErrTest) - err := b.IgnoreSymbol(' ') - assert.Equal(t, ErrTest, err) -} - -func Test_IgnoreSymbolCont(t *testing.T) { - b := New([]byte(" ")) - - err := b.IgnoreSymbol(' ') - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, 4, b.LeftBehind()) - - b.Append([]byte(" test")) - err = b.IgnoreSymbol(' ') - b.checkInvariants(t) - assert.Nil(t, err) - assert.False(t, b.Failed()) - assert.Equal(t, 4, b.Len()) -} - -func Test_UntilSymbolOK(t *testing.T) { - b := New([]byte("test ")) - d, err := b.UntilSymbol(' ', true) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, []byte("test"), d) -} - -func Test_UntilSymbolFailed(t *testing.T) { - b := New([]byte("test ")) - b.SetError(ErrTest) - _, err := b.UntilSymbol(' ', true) - assert.Equal(t, ErrTest, err) -} - -func Test_UntilSymbolCont(t *testing.T) { - b := New([]byte("tes")) - - _, err := b.UntilSymbol(' ', true) - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, 3, b.LeftBehind()) - - b.Append([]byte("t ")) - d, err := b.UntilSymbol(' ', true) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, []byte("test"), d) -} - -func Test_UntilSymbolOrEnd(t *testing.T) { - b := New([]byte("test")) - d, err := b.UntilSymbol(' ', false) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, []byte("test"), d) -} - -func Test_AsciiUintOK(t *testing.T) { - b := New([]byte("123 ")) - v, err := b.UintASCII(false) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, uint64(123), v) -} - -func Test_AsciiUintFailed(t *testing.T) { - b := New([]byte("123 ")) - b.SetError(ErrTest) - _, err := b.UintASCII(false) - assert.Equal(t, ErrTest, err) -} - -func Test_AsciiUintNotDigit(t *testing.T) { - b := New([]byte("test")) - _, err := b.UintASCII(false) - assert.Equal(t, ErrExpectedDigit, err) -} - -func Test_AsciiUintEmpty(t *testing.T) { - b := New([]byte("")) - _, err := b.UintASCII(false) - assert.Equal(t, ErrNoMoreBytes, err) -} - -func Test_AsciiUintCont(t *testing.T) { - b := New([]byte("12")) - _, err := b.UintASCII(true) - assert.Equal(t, ErrNoMoreBytes, err) - - b.Append([]byte("34 ")) - v, err := b.UintASCII(true) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, uint64(1234), v) -} - -func Test_AsciiUintOrEndOK(t *testing.T) { - b := New([]byte("12")) - v, err := b.UintASCII(false) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, uint64(12), v) -} - -func Test_AsciiIntOK(t *testing.T) { - b := New([]byte("123 ")) - v, err := b.IntASCII(false) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, int64(123), v) -} - -func Test_AsciiIntPosOK(t *testing.T) { - b := New([]byte("+123 ")) - v, err := b.IntASCII(false) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, int64(123), v) -} - -func Test_AsciiIntNegOK(t *testing.T) { - b := New([]byte("-123 ")) - v, err := b.IntASCII(false) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, int64(-123), v) -} - -func Test_AsciiIntFailed(t *testing.T) { - b := New([]byte("123 ")) - b.SetError(ErrTest) - _, err := b.IntASCII(false) - assert.Equal(t, ErrTest, err) -} - -func Test_AsciiIntNotDigit(t *testing.T) { - b := New([]byte("test")) - _, err := b.IntASCII(false) - assert.Equal(t, ErrExpectedDigit, err) -} - -func Test_AsciiIntEmpty(t *testing.T) { - b := New([]byte("")) - _, err := b.IntASCII(false) - assert.Equal(t, ErrNoMoreBytes, err) -} - -func Test_AsciiIntCont(t *testing.T) { - b := New([]byte("12")) - _, err := b.IntASCII(true) - assert.Equal(t, ErrNoMoreBytes, err) - - b.Append([]byte("34 ")) - v, err := b.IntASCII(true) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, int64(1234), v) -} - -func Test_AsciiIntOrEndOK(t *testing.T) { - b := New([]byte("12")) - v, err := b.IntASCII(false) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, int64(12), v) -} - -func Test_AsciiMatchOK(t *testing.T) { - b := New([]byte("match test")) - r, err := b.MatchASCII([]byte("match")) - b.checkInvariants(t) - assert.Nil(t, err) - assert.True(t, r) - assert.Equal(t, 10, b.Len()) // check no bytes consumed -} - -func Test_AsciiMatchNo(t *testing.T) { - b := New([]byte("match test")) - r, err := b.MatchASCII([]byte("batch")) - b.checkInvariants(t) - assert.Nil(t, err) - assert.False(t, r) - assert.Equal(t, 10, b.Len()) // check no bytes consumed -} - -func Test_AsciiMatchCont(t *testing.T) { - b := New([]byte("mat")) - - _, err := b.MatchASCII([]byte("match")) - assert.Equal(t, ErrNoMoreBytes, err) - - b.Append([]byte("ch test")) - r, err := b.MatchASCII([]byte("match")) - b.checkInvariants(t) - assert.Nil(t, err) - assert.True(t, r) - assert.Equal(t, 10, b.Len()) // check no bytes consumed -} - -func Test_AsciiMatchFailed(t *testing.T) { - b := New([]byte("match test")) - b.SetError(ErrTest) - _, err := b.MatchASCII([]byte("match")) - assert.Equal(t, ErrTest, err) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/io.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/io.go index b58b8711..bea8e658 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/io.go +++ b/vendor/github.com/elastic/beats/libbeat/common/streambuf/io.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 streambuf import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/io_test.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/io_test.go deleted file mode 100644 index 9e95dabd..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/io_test.go +++ /dev/null @@ -1,332 +0,0 @@ -// +build !integration - -package streambuf - -import ( - "io" - "testing" - - "github.com/stretchr/testify/assert" -) - -func Test_ImplementsInterfaces(t *testing.T) { - b := New(nil) - var _ io.Reader = b - var _ io.Writer = b - var _ io.ReadWriter = b - var _ io.ReaderFrom = b - var _ io.ByteReader = b - var _ io.ByteScanner = b - var _ io.ByteWriter = b - var _ io.RuneReader = b -} - -func Test_ReadByteEOFCheck(t *testing.T) { - b := New(nil) - n, err := b.ReadByte() - assert.Equal(t, byte(0), n) - assert.Equal(t, io.EOF, err) - - b = New(nil) - b.SetError(ErrNoMoreBytes) - n, err = b.ReadByte() - assert.Equal(t, byte(0), n) - assert.Equal(t, io.EOF, err) - - b = New(nil) - b.SetError(ErrUnexpectedEOB) - n, err = b.ReadByte() - assert.Equal(t, byte(0), n) - assert.Equal(t, io.EOF, err) - - b = New(nil) - b.SetError(ErrTest) - n, err = b.ReadByte() - assert.Equal(t, byte(0), n) - assert.Equal(t, ErrTest, err) -} - -func Test_ReadByteOK(t *testing.T) { - b := New([]byte{1}) - v, err := b.ReadByte() - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, byte(1), v) - - _, err = b.ReadByte() - assert.Equal(t, io.EOF, err) -} - -func Test_ReadUnreadByteOK(t *testing.T) { - b := New([]byte{1, 2}) - v, err := b.ReadByte() - b.checkInvariants(t) - assert.Equal(t, byte(1), v) - assert.Nil(t, err) - - err = b.UnreadByte() - assert.Nil(t, err) - assert.Equal(t, 2, b.Len()) -} - -func Test_ReadUnreadByteErrCheck(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - err := b.UnreadByte() - b.checkInvariants(t) - assert.Equal(t, ErrTest, err) -} - -func Test_UnreadByteFail(t *testing.T) { - b := New(nil) - err := b.UnreadByte() - b.checkInvariants(t) - assert.Equal(t, ErrOutOfRange, err) -} - -func Test_UnreadAfterEOFOK(t *testing.T) { - b := New([]byte{1}) - - b.ReadByte() - _, err := b.ReadByte() - assert.Equal(t, io.EOF, err) - - err = b.UnreadByte() - assert.Nil(t, err) -} - -func Test_WriteByte(t *testing.T) { - b := New(nil) - - err := b.WriteByte(1) - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, 1, b.Len()) - assert.Equal(t, byte(1), b.Bytes()[0]) -} - -func Test_WriteByteEOFCheck(t *testing.T) { - b := New(nil) - - _, err := b.ReadByte() - assert.Equal(t, io.EOF, err) - - err = b.WriteByte(1) - b.checkInvariants(t) - assert.Nil(t, err) -} - -func Test_WriteByteFixedFail(t *testing.T) { - b := NewFixed(nil) - err := b.WriteByte(1) - b.checkInvariants(t) - assert.Equal(t, ErrOperationNotAllowed, err) -} - -func Test_ReadBufSmaller(t *testing.T) { - b := New([]byte{1, 2, 3, 4, 5, 6, 7, 8}) - tmp := make([]byte, 5) - - n, err := b.Read(tmp) - b.checkInvariants(t) - assert.Equal(t, 5, n) - assert.Nil(t, err) - assert.Equal(t, []byte{1, 2, 3, 4, 5}, tmp[:n]) - - n, err = b.Read(tmp) - b.checkInvariants(t) - assert.Equal(t, 3, n) - assert.Nil(t, err) - assert.Equal(t, []byte{6, 7, 8}, tmp[:n]) - - n, err = b.Read(tmp) - assert.Equal(t, 0, n) - assert.Equal(t, io.EOF, err) -} - -func Test_ReadBufBigger(t *testing.T) { - b := New([]byte{1, 2, 3, 4, 5, 6, 7, 8}) - tmp := make([]byte, 10) - - n, err := b.Read(tmp) - b.checkInvariants(t) - assert.Equal(t, 8, n) - assert.Nil(t, err) - assert.Equal(t, []byte{1, 2, 3, 4, 5, 6, 7, 8}, tmp[:n]) - - n, err = b.Read(tmp) - assert.Equal(t, 0, n) - assert.Equal(t, io.EOF, err) -} - -func Test_ReadOnFailed(t *testing.T) { - b := New([]byte{1, 2, 3}) - b.SetError(ErrTest) - tmp := make([]byte, 10) - _, err := b.Read(tmp) - assert.Equal(t, ErrTest, err) -} - -func Test_WriteOK(t *testing.T) { - b := New(nil) - n, err := b.Write([]byte{1, 2, 3}) - b.checkInvariants(t) - assert.Equal(t, 3, n) - assert.Nil(t, err) - assert.Equal(t, 3, b.Len()) -} - -func Test_WriteDoesNotRetain(t *testing.T) { - tmp := []byte{1, 2, 3} - - b := New(nil) - n, err := b.Write(tmp) - b.checkInvariants(t) - assert.Equal(t, 3, n) - assert.Nil(t, err) - - b.Bytes()[0] = 'a' - assert.Equal(t, byte(1), tmp[0]) -} - -func Test_WriteFail(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - _, err := b.Write([]byte{1}) - assert.Equal(t, ErrTest, err) -} - -func Test_WriteNil(t *testing.T) { - b := New([]byte{1, 2, 3}) - n, err := b.Write(nil) - assert.Equal(t, 0, n) - assert.Nil(t, err) -} - -func Test_ReadFromOK(t *testing.T) { - b := New(nil) - from := New([]byte{1, 2, 3, 4}) - - n, err := b.ReadFrom(from) - assert.Equal(t, int64(4), n) - assert.Nil(t, err) - assert.Equal(t, []byte{1, 2, 3, 4}, b.Bytes()) - - // check buffers are not retained - b.Bytes()[0] = 'a' - assert.Equal(t, byte(1), from.BufferedBytes()[0]) - - // check from is really eof - _, err = from.ReadByte() - assert.Equal(t, io.EOF, err) -} - -func Test_ReadFromIfEOF(t *testing.T) { - b := New(nil) - from := New([]byte{1, 2, 3, 4}) - - // move buffer into EOF state - _, err := b.ReadByte() - assert.Equal(t, io.EOF, err) - - // copy from - n, err := b.ReadFrom(from) - assert.Equal(t, int64(4), n) - assert.Nil(t, err) - assert.Equal(t, []byte{1, 2, 3, 4}, b.Bytes()) - - // check buffers are not retained - b.Bytes()[0] = 'a' - assert.Equal(t, byte(1), from.BufferedBytes()[0]) - - // check from is really eof - _, err = from.ReadByte() - assert.Equal(t, io.EOF, err) -} - -func Test_ReadFromFailOnFixed(t *testing.T) { - b := NewFixed(nil) - from := NewFixed([]byte{1, 2, 3, 4}) - - n, err := b.ReadFrom(from) - assert.Equal(t, int64(0), n) - assert.Equal(t, err, ErrOperationNotAllowed) -} - -func Test_ReadRuneOK(t *testing.T) { - b := New([]byte("xäüö")) - r, s, err := b.ReadRune() - assert.Nil(t, err) - assert.Equal(t, 'x', r) - assert.Equal(t, 1, s) - - r, s, err = b.ReadRune() - assert.Nil(t, err) - assert.Equal(t, 'ä', r) - assert.Equal(t, 2, s) -} - -func Test_ReadRuneEOFCheck(t *testing.T) { - b := New(nil) - _, _, err := b.ReadRune() - assert.Equal(t, io.EOF, err) -} - -func Test_ReadRuneFailed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - _, _, err := b.ReadRune() - assert.Equal(t, ErrTest, err) -} - -func Test_ReadAtOK(t *testing.T) { - b := New([]byte{1, 2, 3, 4}) - b.Advance(1) - - tmp := make([]byte, 2) - n, err := b.ReadAt(tmp, 1) - assert.Nil(t, err) - assert.Equal(t, 2, n) - assert.Equal(t, []byte{3, 4}, tmp[:n]) - - n, err = b.ReadAt(tmp, 2) - assert.Equal(t, io.EOF, err) - assert.Equal(t, 1, n) - assert.Equal(t, []byte{4}, tmp[:n]) -} - -func Test_ReadAtOutOfRange(t *testing.T) { - b := New([]byte{1, 2, 3, 4}) - b.Advance(1) - - tmp := make([]byte, 2) - _, err := b.ReadAt(tmp, -1) - assert.Equal(t, ErrOutOfRange, err) - - _, err = b.ReadAt(tmp, 10) - assert.Equal(t, ErrOutOfRange, err) -} - -func Test_WriteAtToNil(t *testing.T) { - b := New(nil) - n, err := b.WriteAt([]byte{1, 2, 3}, 4) - assert.Equal(t, 3, n) - assert.Nil(t, err) -} - -func Test_WriteAtOverwrites(t *testing.T) { - b := New([]byte{'a', 'b', 'c', 'd', 'e'}) - b.Advance(1) - n, err := b.WriteAt([]byte{1, 2, 3}, 1) - assert.Equal(t, 3, n) - assert.Nil(t, err) - assert.Equal(t, []byte{'b', 1, 2, 3}, b.Bytes()) - - b = New(make([]byte, 3, 20)) - b.Advance(2) - n, err = b.WriteAt([]byte{1, 2, 3}, 1) - assert.Equal(t, 3, n) - assert.Nil(t, err) - assert.Equal(t, 4, b.Len()) - // assert.Equal(t, []byte{0, 1, 2, 3}, b.Bytes()) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/net.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/net.go index 38ce9e79..10ed4133 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/net.go +++ b/vendor/github.com/elastic/beats/libbeat/common/streambuf/net.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 streambuf // read integers in network byte order diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/net_test.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/net_test.go deleted file mode 100644 index cb42ac0e..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/net_test.go +++ /dev/null @@ -1,241 +0,0 @@ -// +build !integration - -package streambuf - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func Test_ReadNetUint8NoData(t *testing.T) { - b := New(nil) - v, err := b.ReadNetUint8() - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint8(0), v) -} - -func Test_ReadNetUint8Failed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint8() - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint8(0), v) -} - -func Test_ReadNetUint8Data(t *testing.T) { - b := New([]byte{10}) - v, err := b.ReadNetUint8() - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, uint8(10), v) -} - -func Test_ReadNetUint8AtFailed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint8At(4) - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint8(0), v) -} - -func Test_ReadNetUint8AtInRange(t *testing.T) { - b := New([]byte{1, 2, 3}) - v, err := b.ReadNetUint8At(2) - assert.Nil(t, err) - assert.Equal(t, uint8(3), v) -} - -func Test_ReadNetUint8AtOutOfRange(t *testing.T) { - b := New([]byte{1, 2, 3}) - v, err := b.ReadNetUint8At(3) - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint8(0), v) -} - -func Test_WriteNetUint8At(t *testing.T) { - b := New(nil) - err := b.WriteNetUint8At(10, 1) - assert.Nil(t, err) - - b.Advance(1) - tmp, err := b.ReadNetUint8() - assert.Nil(t, err) - assert.Equal(t, uint8(10), tmp) -} - -func Test_ReadNetUint16NoData(t *testing.T) { - b := New(nil) - v, err := b.ReadNetUint16() - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint16(0), v) -} - -func Test_ReadNetUint16Failed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint16() - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint16(0), v) -} - -func Test_ReadNetUint16Data(t *testing.T) { - b := New([]byte{0xf1, 0xf2}) - v, err := b.ReadNetUint16() - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, uint16(0xf1f2), v) -} - -func Test_ReadNetUint16AtFailed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint16At(4) - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint16(0), v) -} - -func Test_ReadNetUint16AtInRange(t *testing.T) { - b := New([]byte{0xf1, 0xf2, 0xf3}) - v, err := b.ReadNetUint16At(1) - assert.Nil(t, err) - assert.Equal(t, uint16(0xf2f3), v) -} - -func Test_ReadNetUint16AtOutOfRange(t *testing.T) { - b := New([]byte{0xf1, 0xf2, 0xf3}) - v, err := b.ReadNetUint16At(2) - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint16(0), v) -} - -func Test_WriteNetUint16At(t *testing.T) { - b := New(nil) - err := b.WriteNetUint16At(0x1f2f, 1) - assert.Nil(t, err) - - b.Advance(1) - tmp, err := b.ReadNetUint16() - assert.Nil(t, err) - assert.Equal(t, uint16(0x1f2f), tmp) -} - -func Test_ReadNetUint32NoData(t *testing.T) { - b := New(nil) - v, err := b.ReadNetUint32() - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint32(0), v) -} - -func Test_ReadNetUint32Failed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint32() - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint32(0), v) -} - -func Test_ReadNetUint32Data(t *testing.T) { - b := New([]byte{0xf1, 0xf2, 0xf3, 0xf4}) - v, err := b.ReadNetUint32() - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, uint32(0xf1f2f3f4), v) -} - -func Test_ReadNetUint32AtFailed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint32At(4) - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint32(0), v) -} - -func Test_ReadNetUint32AtInRange(t *testing.T) { - b := New([]byte{0xf1, 0xf2, 0xf3, 0xf4, 0xf5}) - v, err := b.ReadNetUint32At(1) - assert.Nil(t, err) - assert.Equal(t, uint32(0xf2f3f4f5), v) -} - -func Test_ReadNetUint32AtOutOfRange(t *testing.T) { - b := New([]byte{0xf1, 0xf2, 0xf3}) - v, err := b.ReadNetUint32At(2) - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint32(0), v) -} - -func Test_WriteNetUint32At(t *testing.T) { - b := New(nil) - err := b.WriteNetUint32At(0x1f2f3f4f, 1) - assert.Nil(t, err) - - b.Advance(1) - tmp, err := b.ReadNetUint32() - assert.Nil(t, err) - assert.Equal(t, uint32(0x1f2f3f4f), tmp) -} - -func Test_ReadNetUint64NoData(t *testing.T) { - b := New(nil) - v, err := b.ReadNetUint64() - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint64(0), v) -} - -func Test_ReadNetUint64Failed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint64() - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint64(0), v) -} - -func Test_ReadNetUint64Data(t *testing.T) { - b := New([]byte{ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, - 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, - 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, - }) - v, err := b.ReadNetUint64() - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, uint64(0xf0f1f2f3f4f5f6f7), v) -} - -func Test_ReadNetUint64AtFailed(t *testing.T) { - b := New(nil) - b.SetError(ErrTest) - v, err := b.ReadNetUint64At(4) - assert.Equal(t, ErrTest, err) - assert.Equal(t, uint64(0), v) -} - -func Test_ReadNetUint64AtInRange(t *testing.T) { - b := New([]byte{ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, - 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, - 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, - }) - v, err := b.ReadNetUint64At(1) - assert.Nil(t, err) - assert.Equal(t, uint64(0xf1f2f3f4f5f6f7f8), v) -} - -func Test_ReadNetUint64AtOutOfRange(t *testing.T) { - b := New([]byte{0xf1, 0xf2, 0xf3}) - v, err := b.ReadNetUint64At(2) - assert.Equal(t, ErrNoMoreBytes, err) - assert.Equal(t, uint64(0), v) -} - -func Test_WriteNetUint64At(t *testing.T) { - b := New(nil) - err := b.WriteNetUint64At(0x1f2f3f4f5f6f7f8f, 1) - assert.Nil(t, err) - - b.Advance(1) - tmp, err := b.ReadNetUint64() - assert.Nil(t, err) - assert.Equal(t, uint64(0x1f2f3f4f5f6f7f8f), tmp) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/streambuf.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/streambuf.go index 949b6189..fc3a271d 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/streambuf.go +++ b/vendor/github.com/elastic/beats/libbeat/common/streambuf/streambuf.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 streambuf provides helpers for buffering multiple packet payloads // and some general parsing functions. All parsing functions are re-entrant, // that is if a parse function fails due do not having buffered enough bytes yet diff --git a/vendor/github.com/elastic/beats/libbeat/common/streambuf/streambuf_test.go b/vendor/github.com/elastic/beats/libbeat/common/streambuf/streambuf_test.go deleted file mode 100644 index 8c715ccc..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/streambuf/streambuf_test.go +++ /dev/null @@ -1,305 +0,0 @@ -// +build !integration - -package streambuf - -import ( - "errors" - "testing" - - "github.com/stretchr/testify/assert" -) - -var ErrMarkInvariant = errors.New("mark value not within limits") -var ErrAvailableInvariant = errors.New("available value not within limits") -var ErrSizesInvariant = errors.New("available and mark values not in sync") - -var ErrTest = errors.New("test") - -func checkInvariants(b *Buffer) error { - if !(0 <= b.mark && b.mark <= b.offset) { - return ErrMarkInvariant - } - if !(0 <= b.available && b.available <= len(b.data)) { - return ErrAvailableInvariant - } - if !(b.available == len(b.data)-b.mark) { - return ErrSizesInvariant - } - - return nil -} - -func (b *Buffer) checkInvariants(t *testing.T) { - assert.Nil(t, checkInvariants(b)) -} - -func Test_InvariantsOnNew(t *testing.T) { - var b1 Buffer - b1.checkInvariants(t) - - var b2 Buffer - b2.Init([]byte("test"), false) - b2.checkInvariants(t) - - New([]byte("test")).checkInvariants(t) - - NewFixed([]byte("test")).checkInvariants(t) -} - -func Test_ErrorHandling(t *testing.T) { - b := New(nil) - b.checkInvariants(t) - - assert.False(t, b.Failed()) - assert.Nil(t, b.Err()) - - err := b.SetError(ErrTest) - assert.Equal(t, ErrTest, err) - assert.True(t, b.Failed()) - assert.Equal(t, ErrTest, b.Err()) -} - -func Test_SnapshotRestore(t *testing.T) { - b := NewFixed([]byte("test test")) - snapshot := b.Snapshot() - - err := b.Advance(5) - assert.Equal(t, 5, b.BufferConsumed()) - assert.Equal(t, 4, b.Len()) - assert.Nil(t, err) - assert.False(t, b.Failed()) - - b.Restore(snapshot) - b.checkInvariants(t) - assert.Equal(t, 9, b.Len()) - assert.Equal(t, 0, b.BufferConsumed()) -} - -func Test_SnapshotRestoreAfterErr(t *testing.T) { - b := NewFixed([]byte("test test")) - snapshot := b.Snapshot() - - err := b.Advance(20) - assert.True(t, b.Failed()) - assert.Error(t, err) - assert.Error(t, b.Err()) - - b.Restore(snapshot) - b.checkInvariants(t) - assert.False(t, b.Failed()) - assert.Nil(t, b.Err()) -} - -func Test_AppendNil(t *testing.T) { - b := NewFixed(nil) - b.Append(nil) - b.checkInvariants(t) - assert.Equal(t, 0, b.Len()) -} - -func Test_AppendRetainsBuffer(t *testing.T) { - d := []byte("test") - b := New(nil) - - b.Append(d) - d[0] = 'a' - x, _ := b.Collect(1) - b.checkInvariants(t) - assert.False(t, b.Failed()) - assert.Equal(t, d[0], x[0]) -} - -func Test_AppendOnFixed(t *testing.T) { - b := NewFixed([]byte("abc")) - - err := b.Append([]byte("def")) - assert.Equal(t, ErrOperationNotAllowed, err) - assert.True(t, b.Failed()) - assert.Equal(t, err, b.Err()) -} - -func Test_AppendOnFixedLater(t *testing.T) { - b := New([]byte("abc")) - - err := b.Append([]byte("def")) - assert.Nil(t, err) - - b.Fix() - err = b.Append([]byte("def")) - b.checkInvariants(t) - assert.Equal(t, ErrOperationNotAllowed, err) - assert.True(t, b.Failed()) - assert.Equal(t, err, b.Err()) -} - -func Test_AppendOnFailed(t *testing.T) { - b := New([]byte("abc")) - b.SetError(ErrTest) - err := b.Append([]byte("def")) - assert.Equal(t, ErrTest, err) -} - -func Test_AppendAfterNoMoreBytes(t *testing.T) { - b := New([]byte("a")) - - err := b.Advance(5) - assert.Equal(t, ErrNoMoreBytes, err) - - err = b.Append([]byte(" test")) - assert.Nil(t, err) - assert.False(t, b.Failed()) -} - -func Test_AvailAndLenConsiderRead(t *testing.T) { - b := New([]byte("test")) - b.Advance(3) - b.checkInvariants(t) - assert.Equal(t, 4, b.Total()) - assert.Equal(t, 1, b.Len()) - assert.Equal(t, 3, b.BufferConsumed()) -} - -func Test_AvailAndLenConsiderReset(t *testing.T) { - b := New([]byte("test")) - b.Advance(3) - b.Reset() - b.checkInvariants(t) - assert.Equal(t, 1, b.Total()) - assert.Equal(t, 1, b.Len()) - assert.Equal(t, 0, b.BufferConsumed()) -} - -func Test_ConsumeData(t *testing.T) { - b := New([]byte("test")) - b.Advance(3) - b.Consume(2) - b.checkInvariants(t) - assert.Equal(t, 2, b.Total()) - assert.Equal(t, 1, b.Len()) - assert.Equal(t, 1, b.BufferConsumed()) -} - -func Test_ConsumeFailed(t *testing.T) { - b := New([]byte("test")) - snapshot := b.Snapshot() - - _, err := b.Consume(100) - assert.Equal(t, ErrOutOfRange, err) - - b.Restore(snapshot) - assert.False(t, b.Failed()) - - _, err = b.Consume(3) - assert.Equal(t, ErrOutOfRange, err) -} - -func Test_ByteGetUnconsumed(t *testing.T) { - b := New([]byte("test")) - b.Advance(3) - d := b.Bytes() - - b.checkInvariants(t) - assert.Equal(t, 3, b.mark) - assert.Equal(t, 1, len(d)) - assert.True(t, 't' == d[0]) -} - -func Test_ResetEmpty(t *testing.T) { - b := New(nil) - b.Reset() - b.checkInvariants(t) -} - -func Test_ResetWhileParsing(t *testing.T) { - b := New([]byte("test")) - b.Advance(1) - b.offset += 2 - b.checkInvariants(t) - assert.Equal(t, 3, b.offset) - - b.Reset() - b.checkInvariants(t) - assert.Equal(t, 2, b.offset) -} - -func Test_CollectData(t *testing.T) { - b := New([]byte("test")) - d, err := b.Collect(2) - - b.checkInvariants(t) - assert.Nil(t, err) - assert.Equal(t, []byte("te"), d) -} - -func Test_CollectFailed(t *testing.T) { - b := New([]byte("test")) - b.SetError(ErrTest) - - d, err := b.Collect(2) - assert.Equal(t, ErrTest, err) - assert.Nil(t, d) -} - -func Test_CollectNoData(t *testing.T) { - b := New(nil) - - d, err := b.Collect(2) - assert.True(t, b.Failed()) - assert.Equal(t, ErrNoMoreBytes, err) - assert.Nil(t, d) -} - -func Test_CollectFixedNoData(t *testing.T) { - b := NewFixed(nil) - - d, err := b.Collect(2) - assert.True(t, b.Failed()) - assert.Equal(t, ErrUnexpectedEOB, err) - assert.Nil(t, d) -} - -func Test_CollectWithSuffixData(t *testing.T) { - b := New([]byte("test\r\ntest")) - - d, err := b.CollectWithSuffix(4, []byte("\r\n")) - b.checkInvariants(t) - assert.False(t, b.Failed()) - assert.Nil(t, err) - assert.Equal(t, []byte("test"), d) -} - -func Test_CollectWithSuffixFail(t *testing.T) { - b := New([]byte("test\n\ntest")) - - d, err := b.CollectWithSuffix(4, []byte("\r\n")) - assert.True(t, b.Failed()) - assert.Nil(t, d) - assert.Equal(t, ErrExpectedByteSequenceMismatch, err) -} - -func Test_CollectWithSuffixFailed(t *testing.T) { - b := New([]byte("test\r\ntest")) - b.SetError(ErrTest) - - d, err := b.CollectWithSuffix(4, []byte("\r\n")) - assert.Equal(t, ErrTest, err) - assert.Nil(t, d) -} - -func Test_CollectWithSuffixNoData(t *testing.T) { - b := New(nil) - - d, err := b.CollectWithSuffix(4, []byte("\r\n")) - assert.True(t, b.Failed()) - assert.Equal(t, ErrNoMoreBytes, err) - assert.Nil(t, d) -} - -func Test_CollectWithSuffixFixedNoData(t *testing.T) { - b := NewFixed(nil) - - d, err := b.CollectWithSuffix(4, []byte("\r\n")) - assert.True(t, b.Failed()) - assert.Equal(t, ErrUnexpectedEOB, err) - assert.Nil(t, d) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/string.go b/vendor/github.com/elastic/beats/libbeat/common/string.go index acc1feac..d9cd6215 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/string.go +++ b/vendor/github.com/elastic/beats/libbeat/common/string.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 // NetString store the byte length of the data that follows, making it easier diff --git a/vendor/github.com/elastic/beats/libbeat/common/stringset.go b/vendor/github.com/elastic/beats/libbeat/common/stringset.go index c95496e2..f3fcdd5f 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/stringset.go +++ b/vendor/github.com/elastic/beats/libbeat/common/stringset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 type StringSet map[string]struct{} diff --git a/vendor/github.com/elastic/beats/libbeat/common/terminal/terminal.go b/vendor/github.com/elastic/beats/libbeat/common/terminal/terminal.go index 613c851f..0a670d7a 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/terminal/terminal.go +++ b/vendor/github.com/elastic/beats/libbeat/common/terminal/terminal.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 terminal import ( @@ -19,7 +36,7 @@ func ReadInput() (string, error) { return strings.TrimSuffix(input, "\n"), nil } -// PromptYesNo Returns true if the user has enterred Y or YES, capitalization is ignored, we are +// PromptYesNo Returns true if the user has entered Y or YES, capitalization is ignored, we are // matching elasticsearch behavior func PromptYesNo(prompt string, defaultAnswer bool) bool { var defaultYNprompt string diff --git a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/config.go b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/config.go index 9e89f2ee..b067746f 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/config.go +++ b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tlscommon import ( @@ -74,7 +91,7 @@ func LoadTLSConfig(config *Config) (*TLSConfig, error) { }, nil } -// Validate valies the TLSConfig struct making sure certificate sure we have both a certificate and +// Validate values the TLSConfig struct making sure certificate sure we have both a certificate and // a key. func (c *Config) Validate() error { return c.Certificate.Validate() diff --git a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go index 63b0a4b3..11766be7 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go +++ b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/server_config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tlscommon import ( @@ -72,7 +89,7 @@ func LoadTLSServerConfig(config *ServerConfig) (*TLSConfig, error) { }, nil } -// Validate valies the TLSConfig struct making sure certificate sure we have both a certificate and +// Validate values the TLSConfig struct making sure certificate sure we have both a certificate and // a key. func (c *ServerConfig) Validate() error { return c.Certificate.Validate() diff --git a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls.go b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls.go index d90c2500..6fe79e8d 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls.go +++ b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tlscommon import ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls_config.go b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls_config.go index e4d9bca1..5fdf12ba 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls_config.go +++ b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls_config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tlscommon import ( @@ -49,7 +66,7 @@ type TLSConfig struct { ClientAuth tls.ClientAuthType } -// BuildModuleConfig takes the TLSConfig and tranform it into a `tls.Config`. +// BuildModuleConfig takes the TLSConfig and transform it into a `tls.Config`. func (c *TLSConfig) BuildModuleConfig(host string) *tls.Config { if c == nil { // use default TLS settings, if config is empty. diff --git a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls_test.go b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls_test.go deleted file mode 100644 index 8f11917f..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/tls_test.go +++ /dev/null @@ -1,251 +0,0 @@ -// +build !integration - -package tlscommon - -import ( - "crypto/tls" - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -// test TLS config loading - -func load(yamlStr string) (*Config, error) { - var cfg Config - config, err := common.NewConfigWithYAML([]byte(yamlStr), "") - if err != nil { - return nil, err - } - - if err = config.Unpack(&cfg); err != nil { - return nil, err - } - return &cfg, nil -} - -func mustLoad(t *testing.T, yamlStr string) *Config { - cfg, err := load(yamlStr) - if err != nil { - t.Fatal(err) - } - return cfg -} - -func TestEmptyTlsConfig(t *testing.T) { - cfg, err := load("") - assert.Nil(t, err) - - assert.Equal(t, cfg, &Config{}) -} - -func TestLoadWithEmptyValues(t *testing.T) { - cfg, err := load(` - enabled: - verification_mode: - certificate: - key: - key_passphrase: - certificate_authorities: - cipher_suites: - curve_types: - supported_protocols: - `) - - assert.Nil(t, err) - assert.Equal(t, cfg, &Config{}) -} - -func TestNoLoadNilConfig(t *testing.T) { - cfg, err := LoadTLSConfig(nil) - assert.Nil(t, err) - assert.Nil(t, cfg) -} - -func TestNoLoadDisabledConfig(t *testing.T) { - enabled := false - cfg, err := LoadTLSConfig(&Config{Enabled: &enabled}) - assert.Nil(t, err) - assert.Nil(t, cfg) -} - -func TestValuesSet(t *testing.T) { - cfg, err := load(` - enabled: true - certificate_authorities: ["ca1.pem", "ca2.pem"] - certificate: mycert.pem - key: mycert.key - verification_mode: none - cipher_suites: - - ECDHE-ECDSA-AES-256-CBC-SHA - - ECDHE-ECDSA-AES-256-GCM-SHA384 - supported_protocols: [TLSv1.1, TLSv1.2] - curve_types: - - P-521 - renegotiation: freely - `) - - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, "mycert.pem", cfg.Certificate.Certificate) - assert.Equal(t, "mycert.key", cfg.Certificate.Key) - assert.Len(t, cfg.CAs, 2) - assert.Equal(t, VerifyNone, cfg.VerificationMode) - assert.Len(t, cfg.CipherSuites, 2) - assert.Equal(t, - []TLSVersion{TLSVersion11, TLSVersion12}, - cfg.Versions) - assert.Len(t, cfg.CurveTypes, 1) - assert.Equal(t, - tls.RenegotiateFreelyAsClient, - tls.RenegotiationSupport(cfg.Renegotiation)) -} - -func TestApplyEmptyConfig(t *testing.T) { - tmp, err := LoadTLSConfig(&Config{}) - if err != nil { - t.Fatal(err) - } - - cfg := tmp.BuildModuleConfig("") - assert.Equal(t, int(tls.VersionTLS10), int(cfg.MinVersion)) - assert.Equal(t, int(tls.VersionTLS12), int(cfg.MaxVersion)) - assert.Len(t, cfg.Certificates, 0) - assert.Nil(t, cfg.RootCAs) - assert.Equal(t, false, cfg.InsecureSkipVerify) - assert.Len(t, cfg.CipherSuites, 0) - assert.Len(t, cfg.CurvePreferences, 0) -} - -func TestApplyWithConfig(t *testing.T) { - tmp, err := LoadTLSConfig(mustLoad(t, ` - certificate: ca_test.pem - key: ca_test.key - certificate_authorities: [ca_test.pem] - verification_mode: none - cipher_suites: - - "ECDHE-ECDSA-AES-256-CBC-SHA" - - "ECDHE-ECDSA-AES-256-GCM-SHA384" - curve_types: [P-384] - `)) - if err != nil { - t.Fatal(err) - } - - cfg := tmp.BuildModuleConfig("") - assert.NotNil(t, cfg) - assert.Len(t, cfg.Certificates, 1) - assert.NotNil(t, cfg.RootCAs) - assert.Equal(t, true, cfg.InsecureSkipVerify) - assert.Len(t, cfg.CipherSuites, 2) - assert.Equal(t, int(tls.VersionTLS10), int(cfg.MinVersion)) - assert.Equal(t, int(tls.VersionTLS12), int(cfg.MaxVersion)) - assert.Len(t, cfg.CurvePreferences, 1) -} - -func TestApplyWithServerConfig(t *testing.T) { - yamlStr := ` - certificate: ca_test.pem - key: ca_test.key - certificate_authorities: [ca_test.pem] - verification_mode: none - client_authentication: optional - supported_protocols: [TLSv1.1, TLSv1.2] - cipher_suites: - - "ECDHE-ECDSA-AES-256-CBC-SHA" - - "ECDHE-ECDSA-AES-256-GCM-SHA384" - curve_types: [P-384] - ` - var c ServerConfig - config, err := common.NewConfigWithYAML([]byte(yamlStr), "") - if !assert.NoError(t, err) { - return - } - - err = config.Unpack(&c) - if !assert.NoError(t, err) { - return - } - tmp, err := LoadTLSServerConfig(&c) - if !assert.NoError(t, err) { - return - } - - cfg := tmp.BuildModuleConfig("") - assert.NotNil(t, cfg) - assert.Len(t, cfg.Certificates, 1) - assert.NotNil(t, cfg.ClientCAs) - assert.Equal(t, true, cfg.InsecureSkipVerify) - assert.Len(t, cfg.CipherSuites, 2) - assert.Equal(t, int(tls.VersionTLS11), int(cfg.MinVersion)) - assert.Equal(t, int(tls.VersionTLS12), int(cfg.MaxVersion)) - assert.Len(t, cfg.CurvePreferences, 1) - assert.Equal(t, tls.VerifyClientCertIfGiven, cfg.ClientAuth) -} - -func TestCertificateFails(t *testing.T) { - tests := []struct { - title string - yaml string - }{ - { - "certificate without key", - "certificate: mycert.pem", - }, - { - "key without certificate", - "key: mycert.key", - }, - { - "unknown cipher suite", - "cipher_suites: ['unknown cipher suite']", - }, - { - "unknown version", - "supported_protocols: [UnknwonTLSv1.1]", - }, - { - "unknown curve type", - "curve_types: ['unknown curve type']", - }, - { - "unknown renegotiation type", - "renegotiation: always", - }, - } - - for i, test := range tests { - t.Run(fmt.Sprintf("run test (%v): %v", i, test.title), func(t *testing.T) { - config, err := common.NewConfigWithYAML([]byte(test.yaml), "") - if err != nil { - t.Error(err) - return - } - - // one must fail: validators on Unpack or transformation to *tls.Config - var tlscfg Config - if err = config.Unpack(&tlscfg); err != nil { - t.Log(err) - return - } - _, err = LoadTLSConfig(&tlscfg) - t.Log(err) - assert.Error(t, err) - }) - } -} - -func TestResolveTLSVersion(t *testing.T) { - v := ResolveTLSVersion(tls.VersionTLS11) - assert.Equal(t, "TLSv1.1", v) -} - -func TestResolveCipherSuite(t *testing.T) { - c := ResolveCipherSuite(tls.TLS_RSA_WITH_AES_128_CBC_SHA) - assert.Equal(t, "RSA-AES-128-CBC-SHA", c) -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/types.go b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/types.go index eae535b6..c19f60b1 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/types.go +++ b/vendor/github.com/elastic/beats/libbeat/common/transport/tlscommon/types.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tlscommon import ( @@ -161,7 +178,7 @@ func (m TLSVerificationMode) String() string { return "unknown" } -// Unpack unpacks the string into contants. +// Unpack unpacks the string into constants. func (m *TLSVerificationMode) Unpack(in interface{}) error { if in == nil { *m = VerifyFull @@ -218,7 +235,7 @@ func (cs tlsCipherSuite) String() string { if s, found := tlsCipherSuitesInverse[cs]; found { return s } - return "unkown" + return "unknown" } type tlsCurveType tls.CurveID diff --git a/vendor/github.com/elastic/beats/libbeat/common/tuples.go b/vendor/github.com/elastic/beats/libbeat/common/tuples.go index 506bf325..09664361 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/tuples.go +++ b/vendor/github.com/elastic/beats/libbeat/common/tuples.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( @@ -41,12 +58,12 @@ func NewIPPortTuple(ipLength int, srcIP net.IP, srcPort uint16, DstPort: dstPort, }, } - tuple.ComputeHashebles() + tuple.ComputeHashables() return tuple } -func (t *IPPortTuple) ComputeHashebles() { +func (t *IPPortTuple) ComputeHashables() { copy(t.raw[0:16], t.SrcIP) copy(t.raw[16:18], []byte{byte(t.SrcPort >> 8), byte(t.SrcPort)}) copy(t.raw[18:34], t.DstIP) @@ -102,12 +119,12 @@ func TCPTupleFromIPPort(t *IPPortTuple, streamID uint32) TCPTuple { }, StreamID: streamID, } - tuple.ComputeHashebles() + tuple.ComputeHashables() return tuple } -func (t *TCPTuple) ComputeHashebles() { +func (t *TCPTuple) ComputeHashables() { copy(t.raw[0:16], t.SrcIP) copy(t.raw[16:18], []byte{byte(t.SrcPort >> 8), byte(t.SrcPort)}) copy(t.raw[18:34], t.DstIP) diff --git a/vendor/github.com/elastic/beats/libbeat/common/tuples_test.go b/vendor/github.com/elastic/beats/libbeat/common/tuples_test.go deleted file mode 100644 index 5d09b115..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/tuples_test.go +++ /dev/null @@ -1,73 +0,0 @@ -// +build !integration - -package common - -import ( - "net" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestTuples_tuples_ipv4(t *testing.T) { - assert := assert.New(t) - - var tuple IPPortTuple - - // from net/ip.go - var v4InV6Prefix = []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff} - - tuple = NewIPPortTuple(4, net.IPv4(192, 168, 0, 1), 9200, net.IPv4(192, 168, 0, 2), 9201) - - assert.Equal(v4InV6Prefix, tuple.raw[0:12], "prefix_src") - assert.Equal([]byte{192, 168, 0, 1}, tuple.raw[12:16], "src_ip") - assert.Equal([]byte{0x23, 0xf0}, tuple.raw[16:18], "src_port") - - assert.Equal(v4InV6Prefix, tuple.raw[18:30], "prefix_dst") - assert.Equal([]byte{192, 168, 0, 2}, tuple.raw[30:34], "dst_ip") - assert.Equal([]byte{0x23, 0xf1}, tuple.raw[34:36], "dst_port") - assert.Equal(36, len(tuple.raw)) - - assert.Equal(v4InV6Prefix, tuple.revRaw[0:12], "rev prefix_dst") - assert.Equal([]byte{192, 168, 0, 2}, tuple.revRaw[12:16], "rev dst_ip") - assert.Equal([]byte{0x23, 0xf1}, tuple.revRaw[16:18], "rev dst_port") - - assert.Equal(v4InV6Prefix, tuple.revRaw[18:30], "rev prefix_src") - assert.Equal([]byte{192, 168, 0, 1}, tuple.revRaw[30:34], "rev src_ip") - assert.Equal([]byte{0x23, 0xf0}, tuple.revRaw[34:36], "rev src_port") - assert.Equal(36, len(tuple.revRaw)) - - tcpTuple := TCPTupleFromIPPort(&tuple, 1) - assert.Equal(tuple.raw[:], tcpTuple.raw[0:36], "Wrong TCP tuple hashable") - assert.Equal([]byte{0, 0, 0, 1}, tcpTuple.raw[36:40], "stream_id") -} - -func TestTuples_tuples_ipv6(t *testing.T) { - assert := assert.New(t) - - var tuple IPPortTuple - - tuple = NewIPPortTuple(16, net.ParseIP("2001:db8::1"), - 9200, net.ParseIP("2001:db8::123:12:1"), 9201) - - ip1 := []byte{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1} - ip2 := []byte{0x20, 0x1, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0x1, 0x23, 0, 0x12, 0, 0x1} - - assert.Equal(ip1, tuple.raw[0:16], "src_ip") - assert.Equal([]byte{0x23, 0xf0}, tuple.raw[16:18], "src_port") - - assert.Equal(ip2, tuple.raw[18:34], "dst_ip") - assert.Equal([]byte{0x23, 0xf1}, tuple.raw[34:36], "dst_port") - assert.Equal(36, len(tuple.raw)) - - assert.Equal(ip2, tuple.revRaw[0:16], "rev dst_ip") - assert.Equal([]byte{0x23, 0xf1}, tuple.revRaw[16:18], "rev dst_port") - - assert.Equal(ip1, tuple.revRaw[18:34], "rev src_ip") - assert.Equal([]byte{0x23, 0xf0}, tuple.revRaw[34:36], "rev src_port") - assert.Equal(36, len(tuple.revRaw)) - - tcpTuple := TCPTupleFromIPPort(&tuple, 1) - assert.Equal(tuple.raw[:], tcpTuple.raw[0:36], "Wrong TCP tuple hashable") - assert.Equal([]byte{0, 0, 0, 1}, tcpTuple.raw[36:40], "stream_id") -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/url.go b/vendor/github.com/elastic/beats/libbeat/common/url.go index 1ac6d14a..327edeef 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/url.go +++ b/vendor/github.com/elastic/beats/libbeat/common/url.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/url_test.go b/vendor/github.com/elastic/beats/libbeat/common/url_test.go deleted file mode 100644 index 46c05cda..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/url_test.go +++ /dev/null @@ -1,99 +0,0 @@ -// +build !integration - -package common - -import ( - "fmt" - "net/url" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestGetUrl(t *testing.T) { - // List of inputs / outputs that must match after fetching url - // Setting a path without a scheme is not allowed. Example: 192.168.1.1:9200/hello - inputOutput := map[string]string{ - - "": "http://localhost:9200", - "http://localhost": "http://localhost:9200", - "http://localhost:80": "http://localhost:80", - "http://localhost:80/": "http://localhost:80/", - "http://localhost/": "http://localhost:9200/", - - // no schema + hostname - "33f3600fd5c1bb599af557c36a4efb08.host": "http://33f3600fd5c1bb599af557c36a4efb08.host:9200", - "33f3600fd5c1bb599af557c36a4efb08.host:12345": "http://33f3600fd5c1bb599af557c36a4efb08.host:12345", - "localhost": "http://localhost:9200", - "localhost:80": "http://localhost:80", - "localhost:80/": "http://localhost:80/", - "localhost/": "http://localhost:9200/", - "localhost/mypath": "http://localhost:9200/mypath", - - // shema + ipv4 - "http://192.168.1.1:80": "http://192.168.1.1:80", - "https://192.168.1.1:80/hello": "https://192.168.1.1:80/hello", - "http://192.168.1.1": "http://192.168.1.1:9200", - "http://192.168.1.1/hello": "http://192.168.1.1:9200/hello", - - // no schema + ipv4 - "192.168.1.1": "http://192.168.1.1:9200", - "192.168.1.1:80": "http://192.168.1.1:80", - "192.168.1.1/hello": "http://192.168.1.1:9200/hello", - "192.168.1.1:80/hello": "http://192.168.1.1:80/hello", - - // schema + ipv6 - "http://[2001:db8::1]:80": "http://[2001:db8::1]:80", - "http://[2001:db8::1]": "http://[2001:db8::1]:9200", - "https://[2001:db8::1]:9200": "https://[2001:db8::1]:9200", - "http://FE80:0000:0000:0000:0202:B3FF:FE1E:8329": "http://[FE80:0000:0000:0000:0202:B3FF:FE1E:8329]:9200", - "http://[2001:db8::1]:80/hello": "http://[2001:db8::1]:80/hello", - "http://[2001:db8::1]/hello": "http://[2001:db8::1]:9200/hello", - "https://[2001:db8::1]:9200/hello": "https://[2001:db8::1]:9200/hello", - "http://FE80:0000:0000:0000:0202:B3FF:FE1E:8329/hello": "http://[FE80:0000:0000:0000:0202:B3FF:FE1E:8329]:9200/hello", - - // no schema + ipv6 - "2001:db8::1": "http://[2001:db8::1]:9200", - "[2001:db8::1]:80": "http://[2001:db8::1]:80", - "[2001:db8::1]": "http://[2001:db8::1]:9200", - "2001:db8::1/hello": "http://[2001:db8::1]:9200/hello", - "[2001:db8::1]:80/hello": "http://[2001:db8::1]:80/hello", - "[2001:db8::1]/hello": "http://[2001:db8::1]:9200/hello", - } - - for input, output := range inputOutput { - urlNew, err := MakeURL("", "", input, 9200) - assert.Nil(t, err) - assert.Equal(t, output, urlNew, fmt.Sprintf("input: %v", input)) - } - - inputOutputWithDefaults := map[string]string{ - "http://localhost": "http://localhost:9200/hello", - "http://localhost/test": "http://localhost:9200/test", - "192.156.4.5": "https://192.156.4.5:9200/hello", - "http://username:password@es.found.io:9324": "http://username:password@es.found.io:9324/hello", - } - - for input, output := range inputOutputWithDefaults { - urlNew, err := MakeURL("https", "/hello", input, 9200) - assert.Nil(t, err) - assert.Equal(t, output, urlNew) - } -} - -func TestURLParamsEncode(t *testing.T) { - inputOutputWithParams := map[string]string{ - "http://localhost": "http://localhost:5601?dashboard=first&dashboard=second", - } - - params := url.Values{} - params.Add("dashboard", "first") - params.Add("dashboard", "second") - - for input, output := range inputOutputWithParams { - urlNew, err := MakeURL("", "", input, 5601) - urlWithParams := EncodeURLParams(urlNew, params) - assert.Nil(t, err) - assert.Equal(t, output, urlWithParams) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/common/version.go b/vendor/github.com/elastic/beats/libbeat/common/version.go index b68154a0..795eb2b8 100644 --- a/vendor/github.com/elastic/beats/libbeat/common/version.go +++ b/vendor/github.com/elastic/beats/libbeat/common/version.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ( diff --git a/vendor/github.com/elastic/beats/libbeat/common/version_test.go b/vendor/github.com/elastic/beats/libbeat/common/version_test.go deleted file mode 100644 index bf006482..00000000 --- a/vendor/github.com/elastic/beats/libbeat/common/version_test.go +++ /dev/null @@ -1,192 +0,0 @@ -package common - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestVersion(t *testing.T) { - tests := []struct { - version string - err bool - result Version - }{ - { - version: "1.2.3", - err: false, - result: Version{Major: 1, Minor: 2, Bugfix: 3, version: "1.2.3"}, - }, - { - version: "1.3.3", - err: false, - result: Version{Major: 1, Minor: 3, Bugfix: 3, version: "1.3.3"}, - }, - { - version: "1.3.2-alpha1", - err: false, - result: Version{Major: 1, Minor: 3, Bugfix: 2, version: "1.3.2-alpha1", Meta: "alpha1"}, - }, - { - version: "alpha1", - err: true, - }, - } - - for _, test := range tests { - v, err := NewVersion(test.version) - if test.err { - assert.Error(t, err) - continue - } else { - assert.NoError(t, err) - } - assert.Equal(t, *v, test.result) - } -} - -func TestLessThanOrEqual(t *testing.T) { - tests := []struct { - name string - version string - version1 string - meta bool - result bool - }{ - { - name: "5.4.3 < 6.4.3", - version: "5.4.3", - version1: "6.4.3", - meta: true, - result: true, - }, - { - name: "5.7.3 < 5.8.3", - version: "5.7.3", - version1: "5.8.2", - meta: true, - result: true, - }, - { - name: "5.4.3 > 5.4.2", - version: "5.4.3", - version1: "5.4.2", - meta: true, - result: false, - }, - { - name: "5.4.3 = 5.4.3", - version: "5.4.3", - version1: "5.4.3", - meta: true, - result: true, - }, - { - name: "1.2.3 > 1.2.3-alpha1", - version: "1.2.3", - version1: "1.2.3-alpha1", - meta: true, - result: false, - }, - { - name: "1.2.3.alpha < 1.2.3", - version: "1.2.3-alpha", - version1: "1.2.3", - meta: true, - result: true, - }, - { - name: "1.2.3.alpha < 1.2.3.beta", - version: "1.2.3-alpha", - version1: "1.2.3-beta", - meta: true, - result: true, - }, - { - name: "1.2.3.rc1 < 1.2.3.rc2", - version: "1.2.3-rc1", - version1: "1.2.3-rc2", - meta: true, - result: true, - }, - { - name: "5.4.3 = 5.4.3", - version: "5.4.3", - version1: "5.4.3", - meta: false, - result: true, - }, - { - name: "1.2.3 = 1.2.3-alpha1", - version: "1.2.3", - version1: "1.2.3-alpha1", - meta: false, - result: true, - }, - { - name: "1.2.3.beta1 = 1.2.3-beta2", - version: "1.2.3-beta1", - version1: "1.2.3-beta2", - meta: false, - result: true, - }, - } - - for _, test := range tests { - v, err := NewVersion(test.version) - assert.NoError(t, err) - v1, err := NewVersion(test.version1) - assert.NoError(t, err) - - assert.Equal(t, test.result, v.LessThanOrEqual(test.meta, v1), test.name) - } -} - -func TestVersionLessThan(t *testing.T) { - tests := []struct { - name string - version string - version1 string - result bool - }{ - { - name: "1.2.3 < 2.0.0", - version: "1.2.3", - version1: "2.0.0", - result: true, - }, - { - name: "1.2.3 = 1.2.3-beta1", - version: "1.2.3", - version1: "1.2.3-beta1", - result: false, - }, - { - name: "5.4.1 < 5.4.2", - version: "5.4.1", - version1: "5.4.2", - result: true, - }, - { - name: "5.5.1 > 5.4.2", - version: "5.5.1", - version1: "5.4.2", - result: false, - }, - { - name: "6.1.1-alpha3 < 6.2.0", - version: "6.1.1-alpha3", - version1: "6.2.0", - result: true, - }, - } - - for _, test := range tests { - v, err := NewVersion(test.version) - assert.NoError(t, err) - v1, err := NewVersion(test.version1) - assert.NoError(t, err) - - assert.Equal(t, v.LessThan(v1), test.result, test.name) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/and.go b/vendor/github.com/elastic/beats/libbeat/conditions/and.go new file mode 100644 index 00000000..afde0d43 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/and.go @@ -0,0 +1,44 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +// And is a compound condition that combines multiple conditions with logical AND. +type And []Condition + +// NewAndCondition builds this condition from a slice of Condition objects. +func NewAndCondition(conditions []Condition) And { + return And(conditions) +} + +// Check determines whether the given event matches this condition +func (c And) Check(event ValuesMap) bool { + for _, cond := range c { + if !cond.Check(event) { + return false + } + } + return true +} + +func (c And) String() (s string) { + for _, cond := range c { + s = s + cond.String() + " and " + } + s = s[:len(s)-len(" and ")] //delete the last and + return s +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/conditions.go b/vendor/github.com/elastic/beats/libbeat/conditions/conditions.go new file mode 100644 index 00000000..61681cad --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/conditions.go @@ -0,0 +1,109 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import ( + "errors" + + "github.com/elastic/beats/libbeat/common/match" + "github.com/elastic/beats/libbeat/logp" +) + +// Config represents a configuration for a condition, as you would find it in the config files. +type Config struct { + Equals *Fields `config:"equals"` + Contains *Fields `config:"contains"` + Regexp *Fields `config:"regexp"` + Range *Fields `config:"range"` + HasFields []string `config:"has_fields"` + OR []Config `config:"or"` + AND []Config `config:"and"` + NOT *Config `config:"not"` +} + +// Condition is the interface for all defined conditions +type Condition interface { + Check(event ValuesMap) bool + String() string +} + +// ValuesMap provides a common interface to read matchers for condition checking +type ValuesMap interface { + // GetValue returns the given field from the map + GetValue(string) (interface{}, error) +} + +// NewCondition takes a Config and turns it into a real Condition +func NewCondition(config *Config) (Condition, error) { + + if config == nil { + // empty condition + return nil, errors.New("missing condition config") + } + + var condition Condition + var err error + switch { + case config.Equals != nil: + condition, err = NewEqualsCondition(config.Equals.fields) + case config.Contains != nil: + condition, err = NewMatcherCondition("contains", config.Contains.fields, match.CompileString) + case config.Regexp != nil: + condition, err = NewMatcherCondition("regexp", config.Regexp.fields, match.Compile) + case config.Range != nil: + condition, err = NewRangeCondition(config.Range.fields) + case config.HasFields != nil: + condition = NewHasFieldsCondition(config.HasFields) + case len(config.OR) > 0: + var conditionsList []Condition + conditionsList, err = NewConditionList(config.OR) + condition = NewOrCondition(conditionsList) + case len(config.AND) > 0: + var conditionsList []Condition + conditionsList, err = NewConditionList(config.AND) + condition = NewAndCondition(conditionsList) + case config.NOT != nil: + var inner Condition + inner, err = NewCondition(config.NOT) + if err == nil { + condition, err = NewNotCondition(inner) + } + default: + err = errors.New("missing condition") + } + if err != nil { + return nil, err + } + + logp.Debug("processors", "New condition %s", condition) + return condition, nil +} + +// NewConditionList takes a slice of Config objects and turns them into real Condition objects. +func NewConditionList(config []Config) ([]Condition, error) { + out := make([]Condition, len(config)) + for i, condConfig := range config { + cond, err := NewCondition(&condConfig) + if err != nil { + return nil, err + } + + out[i] = cond + } + return out, nil +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/equals.go b/vendor/github.com/elastic/beats/libbeat/conditions/equals.go new file mode 100644 index 00000000..0be08ebb --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/equals.go @@ -0,0 +1,109 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import ( + "fmt" + + "github.com/elastic/beats/libbeat/logp" +) + +type equalsValue struct { + Int uint64 + Str string + Bool bool +} + +// Equals is a Condition for testing string equality. +type Equals map[string]equalsValue + +// NewEqualsCondition builds a new Equals using the given configuration of string equality checks. +func NewEqualsCondition(fields map[string]interface{}) (c Equals, err error) { + c = Equals{} + + for field, value := range fields { + uintValue, err := ExtractInt(value) + if err == nil { + c[field] = equalsValue{Int: uintValue} + continue + } + + sValue, err := ExtractString(value) + if err == nil { + c[field] = equalsValue{Str: sValue} + continue + } + + bValue, err := ExtractBool(value) + if err == nil { + c[field] = equalsValue{Bool: bValue} + continue + } + + return nil, fmt.Errorf("condition attempted to set '%v' -> '%v' and encountered unexpected type '%T', only strings ints, and bools are allowed", field, value, value) + } + + return c, nil +} + +// Check determines whether the given event matches this condition. +func (c Equals) Check(event ValuesMap) bool { + for field, equalValue := range c { + + value, err := event.GetValue(field) + if err != nil { + return false + } + + intValue, err := ExtractInt(value) + if err == nil { + if intValue != equalValue.Int { + return false + } + + continue + } + + sValue, err := ExtractString(value) + if err == nil { + if sValue != equalValue.Str { + return false + } + + continue + } + + bValue, err := ExtractBool(value) + if err == nil { + if bValue != equalValue.Bool { + return false + } + + continue + } + + logp.Err("unexpected type %T in equals condition as it accepts only integers, strings or bools. ", value) + return false + } + + return true +} + +func (c Equals) String() string { + return fmt.Sprintf("equals: %v", map[string]equalsValue(c)) +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/extractors.go b/vendor/github.com/elastic/beats/libbeat/conditions/extractors.go new file mode 100644 index 00000000..8e33ad66 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/extractors.go @@ -0,0 +1,110 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import ( + "fmt" + "math" + "strconv" +) + +// ExtractFloat extracts a float from an unknown type. +func ExtractFloat(unk interface{}) (float64, error) { + switch i := unk.(type) { + case float64: + return float64(i), nil + case float32: + return float64(i), nil + case int64: + return float64(i), nil + case int32: + return float64(i), nil + case int16: + return float64(i), nil + case int8: + return float64(i), nil + case uint64: + return float64(i), nil + case uint32: + return float64(i), nil + case uint16: + return float64(i), nil + case uint8: + return float64(i), nil + case int: + return float64(i), nil + case uint: + return float64(i), nil + case string: + f, err := strconv.ParseFloat(i, 64) + if err != nil { + return math.NaN(), err + } + return f, err + default: + return math.NaN(), fmt.Errorf("unknown type %T passed to ExtractFloat", unk) + } +} + +// ExtractInt extracts an int from an unknown type. +func ExtractInt(unk interface{}) (uint64, error) { + switch i := unk.(type) { + case int64: + return uint64(i), nil + case int32: + return uint64(i), nil + case int16: + return uint64(i), nil + case int8: + return uint64(i), nil + case uint64: + return uint64(i), nil + case uint32: + return uint64(i), nil + case uint16: + return uint64(i), nil + case uint8: + return uint64(i), nil + case int: + return uint64(i), nil + case uint: + return uint64(i), nil + default: + return 0, fmt.Errorf("unknown type %T passed to extractInt", unk) + } +} + +// ExtractString extracts a string from an unknown type. +func ExtractString(unk interface{}) (string, error) { + switch s := unk.(type) { + case string: + return s, nil + default: + return "", fmt.Errorf("unknown type %T passed to ExtractString", unk) + } +} + +// ExtractBool extracts a bool from an unknown type. +func ExtractBool(unk interface{}) (bool, error) { + switch b := unk.(type) { + case bool: + return b, nil + default: + return false, fmt.Errorf("unknown type %T passed to ExtractBool", unk) + } +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/fields.go b/vendor/github.com/elastic/beats/libbeat/conditions/fields.go new file mode 100644 index 00000000..111fdd7c --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/fields.go @@ -0,0 +1,58 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import "fmt" + +// Fields represents an arbitrary map in a config file. +type Fields struct { + fields map[string]interface{} +} + +// Unpack unpacks nested fields set with dot notation like foo.bar into the proper nesting +// in a nested map/slice structure. +func (f *Fields) Unpack(to interface{}) error { + m, ok := to.(map[string]interface{}) + if !ok { + return fmt.Errorf("wrong type, expect map") + } + + f.fields = map[string]interface{}{} + + var expand func(key string, value interface{}) + + expand = func(key string, value interface{}) { + switch v := value.(type) { + case map[string]interface{}: + for k, val := range v { + expand(fmt.Sprintf("%v.%v", key, k), val) + } + case []interface{}: + for i := range v { + expand(fmt.Sprintf("%v.%v", key, i), v[i]) + } + default: + f.fields[key] = value + } + } + + for k, val := range m { + expand(k, val) + } + return nil +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/has_fields.go b/vendor/github.com/elastic/beats/libbeat/conditions/has_fields.go new file mode 100644 index 00000000..e053262c --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/has_fields.go @@ -0,0 +1,43 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import "fmt" + +// HasFields is a Condition for checking field existence. +type HasFields []string + +// NewHasFieldsCondition builds a new HasFields checking the given list of fields. +func NewHasFieldsCondition(fields []string) (hasFieldsCondition HasFields) { + return HasFields(fields) +} + +// Check determines whether the given event matches this condition +func (c HasFields) Check(event ValuesMap) bool { + for _, field := range c { + _, err := event.GetValue(field) + if err != nil { + return false + } + } + return true +} + +func (c HasFields) String() string { + return fmt.Sprintf("has_fields: %v", []string(c)) +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/matcher.go b/vendor/github.com/elastic/beats/libbeat/conditions/matcher.go new file mode 100644 index 00000000..13e64944 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/matcher.go @@ -0,0 +1,112 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import ( + "fmt" + + "github.com/elastic/beats/libbeat/common/match" + "github.com/elastic/beats/libbeat/logp" +) + +type matcherMap map[string]match.Matcher +type rawMap map[string]interface{} + +// Matcher is a Condition that works with beat's internal notion of a string matcher. +type Matcher struct { + name string + matchers matcherMap + raw rawMap +} + +// NewMatcherCondition builds a new Matcher with the given human name using the provided config fields. +// The compiler function will take those fields and compile them. +func NewMatcherCondition( + name string, + fields map[string]interface{}, + compile func(string) (match.Matcher, error), +) (condition Matcher, err error) { + condition.name = name + condition.raw = fields + condition.matchers = matcherMap{} + condition.raw = rawMap{} + + if len(fields) == 0 { + return condition, nil + } + + for field, value := range fields { + var err error + + switch v := value.(type) { + case string: + condition.matchers[field], err = compile(v) + if err != nil { + return condition, err + } + + default: + return condition, fmt.Errorf("unexpected type %T of %v", value, value) + } + } + + return condition, nil +} + +// Check determines whether the given event matches this condition. +func (c Matcher) Check(event ValuesMap) bool { + if c.matchers == nil { + return true + } + + for field, matcher := range c.matchers { + value, err := event.GetValue(field) + if err != nil { + return false + } + + switch v := value.(type) { + case string: + if !matcher.MatchString(v) { + return false + } + + case []string: + if !matcher.MatchAnyString(v) { + return false + } + + default: + str, err := ExtractString(value) + if err != nil { + logp.Warn("unexpected type %T in %v condition as it accepts only strings.", value, c.name) + return false + } + + if !matcher.MatchString(str) { + return false + } + } + } + + return true +} + +func (c Matcher) String() string { + return fmt.Sprintf("%v: %v", c.name, c.raw) +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/not.go b/vendor/github.com/elastic/beats/libbeat/conditions/not.go new file mode 100644 index 00000000..f86ca1ad --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/not.go @@ -0,0 +1,42 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import "fmt" + +// Not is a condition that negates its inner condition. +type Not struct { + inner Condition +} + +// NewNotCondition builds a new Not condition that negates the provided Condition. +func NewNotCondition(c Condition) (Not, error) { + if c == nil { + return Not{}, fmt.Errorf("Empty not conditions are not allowed") + } + return Not{c}, nil +} + +// Check determines whether the given event matches this condition. +func (c Not) Check(event ValuesMap) bool { + return !c.inner.Check(event) +} + +func (c Not) String() string { + return "!" + c.inner.String() +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/or.go b/vendor/github.com/elastic/beats/libbeat/conditions/or.go new file mode 100644 index 00000000..32e35087 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/or.go @@ -0,0 +1,44 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +// Or is a compound condition that combines multiple conditions with logical OR. +type Or []Condition + +// NewOrCondition builds this condition from a slice of Condition objects. +func NewOrCondition(conditions []Condition) Or { + return Or(conditions) +} + +// Check determines whether the given event matches this condition. +func (c Or) Check(event ValuesMap) bool { + for _, cond := range c { + if cond.Check(event) { + return true + } + } + return false +} + +func (c Or) String() (s string) { + for _, cond := range c { + s = s + cond.String() + " or " + } + s = s[:len(s)-len(" or ")] //delete the last or + return s +} diff --git a/vendor/github.com/elastic/beats/libbeat/conditions/range.go b/vendor/github.com/elastic/beats/libbeat/conditions/range.go new file mode 100644 index 00000000..332d433e --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/conditions/range.go @@ -0,0 +1,150 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 conditions + +import ( + "fmt" + "reflect" + "strings" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" +) + +type rangeValue struct { + gte *float64 + gt *float64 + lte *float64 + lt *float64 +} + +// Range is a Condition type for checking against ranges. +type Range map[string]rangeValue + +// NewRangeCondition builds a new Range from a map of ranges. +func NewRangeCondition(config map[string]interface{}) (c Range, err error) { + c = Range{} + + updateRangeValue := func(key string, op string, value float64) error { + field := strings.TrimSuffix(key, "."+op) + _, exists := c[field] + if !exists { + c[field] = rangeValue{} + } + rv := c[field] + switch op { + case "gte": + rv.gte = &value + case "gt": + rv.gt = &value + case "lt": + rv.lt = &value + case "lte": + rv.lte = &value + default: + return fmt.Errorf("unexpected field %s", op) + } + c[field] = rv + return nil + } + + for key, value := range config { + + floatValue, err := ExtractFloat(value) + if err != nil { + return c, err + } + + list := strings.Split(key, ".") + err = updateRangeValue(key, list[len(list)-1], floatValue) + if err != nil { + return c, err + } + + } + + return c, nil +} + +// Check determines whether the given event matches this condition. +func (c Range) Check(event ValuesMap) bool { + checkValue := func(value float64, rangeValue rangeValue) bool { + if rangeValue.gte != nil { + if value < *rangeValue.gte { + return false + } + } + if rangeValue.gt != nil { + if value <= *rangeValue.gt { + return false + } + } + if rangeValue.lte != nil { + if value > *rangeValue.lte { + return false + } + } + if rangeValue.lt != nil { + if value >= *rangeValue.lt { + return false + } + } + return true + } + + for field, rangeValue := range c { + + value, err := event.GetValue(field) + if err != nil { + return false + } + + switch value.(type) { + case int, int8, int16, int32, int64: + intValue := reflect.ValueOf(value).Int() + + if !checkValue(float64(intValue), rangeValue) { + return false + } + + case uint, uint8, uint16, uint32, uint64: + uintValue := reflect.ValueOf(value).Uint() + + if !checkValue(float64(uintValue), rangeValue) { + return false + } + + case float64, float32, common.Float: + floatValue := reflect.ValueOf(value).Float() + + if !checkValue(floatValue, rangeValue) { + return false + } + + default: + logp.Warn("unexpected type %T in range condition. ", value) + return false + } + + } + return true +} + +func (c Range) String() string { + return fmt.Sprintf("range: %v", map[string]rangeValue(c)) +} diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/config.go b/vendor/github.com/elastic/beats/libbeat/dashboards/config.go index ce7d09b1..bfd4b73d 100644 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/config.go +++ b/vendor/github.com/elastic/beats/libbeat/dashboards/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dashboards import "time" diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/dashboards.go b/vendor/github.com/elastic/beats/libbeat/dashboards/dashboards.go index b22761dd..8bda834f 100644 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/dashboards.go +++ b/vendor/github.com/elastic/beats/libbeat/dashboards/dashboards.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dashboards import ( diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/es_loader.go b/vendor/github.com/elastic/beats/libbeat/dashboards/es_loader.go index 4f63821b..270e2f26 100644 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/es_loader.go +++ b/vendor/github.com/elastic/beats/libbeat/dashboards/es_loader.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dashboards import ( @@ -200,9 +217,12 @@ func (loader ElasticsearchLoader) importVisualization(file string) error { if loader.config.Index != "" { if savedObject, ok := vizContent["kibanaSavedObjectMeta"].(map[string]interface{}); ok { - vizContent["kibanaSavedObjectMeta"] = ReplaceIndexInSavedObject(loader.config.Index, savedObject) } + + if visState, ok := vizContent["visState"].(string); ok { + vizContent["visState"] = ReplaceIndexInVisState(loader.config.Index, visState) + } } vizName := strings.TrimSuffix(filepath.Base(file), filepath.Ext(file)) diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/es_loader_test.go b/vendor/github.com/elastic/beats/libbeat/dashboards/es_loader_test.go deleted file mode 100644 index 66447de9..00000000 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/es_loader_test.go +++ /dev/null @@ -1,82 +0,0 @@ -// +build integration - -package dashboards - -import ( - "strings" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs/elasticsearch/estest" -) - -func TestImporter(t *testing.T) { - logp.TestingSetup() - - dashboardsConfig := Config{ - KibanaIndex: ".kibana-test", - File: "testdata/testbeat-dashboards.zip", - Beat: "testbeat", - } - - client := estest.GetTestingElasticsearch(t) - if strings.HasPrefix(client.Connection.GetVersion(), "6.") || - strings.HasPrefix(client.Connection.GetVersion(), "7.") { - t.Skip("Skipping tests for Elasticsearch 6.x releases") - } - - loader := ElasticsearchLoader{ - client: client, - config: &dashboardsConfig, - } - - err := loader.CreateKibanaIndex() - - assert.NoError(t, err) - - version, _ := common.NewVersion("5.0.0") - - imp, err := NewImporter(*version, &dashboardsConfig, loader) - assert.NoError(t, err) - - err = imp.Import() - assert.NoError(t, err) - - status, _, _ := client.Request("GET", "/.kibana-test/dashboard/1e4389f0-e871-11e6-911d-3f8ed6f72700", "", nil, nil) - assert.Equal(t, 200, status) -} - -func TestImporterEmptyBeat(t *testing.T) { - logp.TestingSetup() - - dashboardsConfig := Config{ - KibanaIndex: ".kibana-test-nobeat", - File: "testdata/testbeat-dashboards.zip", - Beat: "", - } - - client := estest.GetTestingElasticsearch(t) - if strings.HasPrefix(client.Connection.GetVersion(), "6.") || - strings.HasPrefix(client.Connection.GetVersion(), "7.") { - t.Skip("Skipping tests for Elasticsearch 6.x releases") - } - - loader := ElasticsearchLoader{ - client: client, - config: &dashboardsConfig, - } - - version, _ := common.NewVersion("5.0.0") - - imp, err := NewImporter(*version, &dashboardsConfig, loader) - assert.NoError(t, err) - - err = imp.Import() - assert.NoError(t, err) - - status, _, _ := client.Request("GET", "/.kibana-test-nobeat/dashboard/1e4389f0-e871-11e6-911d-3f8ed6f72700", "", nil, nil) - assert.Equal(t, 200, status) -} diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/importer.go b/vendor/github.com/elastic/beats/libbeat/dashboards/importer.go index 7256b3d2..481006ba 100644 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/importer.go +++ b/vendor/github.com/elastic/beats/libbeat/dashboards/importer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dashboards import ( diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/kibana_loader.go b/vendor/github.com/elastic/beats/libbeat/dashboards/kibana_loader.go index 0218c653..8a09e72b 100644 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/kibana_loader.go +++ b/vendor/github.com/elastic/beats/libbeat/dashboards/kibana_loader.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dashboards import ( diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/modify_json.go b/vendor/github.com/elastic/beats/libbeat/dashboards/modify_json.go index 75c9ff15..f844a0bb 100644 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/modify_json.go +++ b/vendor/github.com/elastic/beats/libbeat/dashboards/modify_json.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dashboards import ( @@ -25,24 +42,29 @@ type JSONFormat struct { } func ReplaceIndexInIndexPattern(index string, content common.MapStr) common.MapStr { + if index == "" { + return content + } + + objects, ok := content["objects"].([]interface{}) + if !ok { + return content + } + + // change index pattern name + for i, object := range objects { + objectMap, ok := object.(map[string]interface{}) + if !ok { + continue + } - if index != "" { - // change index pattern name - if objects, ok := content["objects"].([]interface{}); ok { - for i, object := range objects { - if objectMap, ok := object.(map[string]interface{}); ok { - objectMap["id"] = index - - if attributes, ok := objectMap["attributes"].(map[string]interface{}); ok { - attributes["title"] = index - objectMap["attributes"] = attributes - } - objects[i] = objectMap - } - } - content["objects"] = objects + objectMap["id"] = index + if attributes, ok := objectMap["attributes"].(map[string]interface{}); ok { + attributes["title"] = index } + objects[i] = objectMap } + content["objects"] = objects return content } @@ -80,28 +102,71 @@ func ReplaceIndexInSavedObject(index string, kibanaSavedObject map[string]interf return kibanaSavedObject } -func ReplaceIndexInDashboardObject(index string, content common.MapStr) common.MapStr { +// ReplaceIndexInVisState replaces index appearing in visState params objects +func ReplaceIndexInVisState(index string, visStateJSON string) string { + + var visState map[string]interface{} + err := json.Unmarshal([]byte(visStateJSON), &visState) + if err != nil { + logp.Err("Fail to unmarshal visState: %v", err) + return visStateJSON + } + + params, ok := visState["params"].(map[string]interface{}) + if !ok { + return visStateJSON + } + + // Don't set it if it was not set before + if pattern, ok := params["index_pattern"].(string); !ok || len(pattern) == 0 { + return visStateJSON + } + params["index_pattern"] = index + + d, err := json.Marshal(visState) + if err != nil { + logp.Err("Fail to marshal visState: %v", err) + return visStateJSON + } + + return string(d) +} + +// ReplaceIndexInDashboardObject replaces references to the index pattern in dashboard objects +func ReplaceIndexInDashboardObject(index string, content common.MapStr) common.MapStr { if index == "" { return content } - if objects, ok := content["objects"].([]interface{}); ok { - for i, object := range objects { - if objectMap, ok := object.(map[string]interface{}); ok { - if attributes, ok := objectMap["attributes"].(map[string]interface{}); ok { - if kibanaSavedObject, ok := attributes["kibanaSavedObjectMeta"].(map[string]interface{}); ok { + objects, ok := content["objects"].([]interface{}) + if !ok { + return content + } + + for i, object := range objects { + objectMap, ok := object.(map[string]interface{}) + if !ok { + continue + } + + attributes, ok := objectMap["attributes"].(map[string]interface{}) + if !ok { + continue + } - attributes["kibanaSavedObjectMeta"] = ReplaceIndexInSavedObject(index, kibanaSavedObject) - } + if kibanaSavedObject, ok := attributes["kibanaSavedObjectMeta"].(map[string]interface{}); ok { + attributes["kibanaSavedObjectMeta"] = ReplaceIndexInSavedObject(index, kibanaSavedObject) + } - objectMap["attributes"] = attributes - } - objects[i] = objectMap - } + if visState, ok := attributes["visState"].(string); ok { + attributes["visState"] = ReplaceIndexInVisState(index, visState) } - content["objects"] = objects + + objects[i] = objectMap } + content["objects"] = objects + return content } diff --git a/vendor/github.com/elastic/beats/libbeat/dashboards/modify_json_test.go b/vendor/github.com/elastic/beats/libbeat/dashboards/modify_json_test.go deleted file mode 100644 index 9e8c3dcf..00000000 --- a/vendor/github.com/elastic/beats/libbeat/dashboards/modify_json_test.go +++ /dev/null @@ -1,54 +0,0 @@ -package dashboards - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestReplaceStringInDashboard(t *testing.T) { - tests := []struct { - content common.MapStr - old string - new string - expected common.MapStr - }{ - { - content: common.MapStr{"test": "CHANGEME"}, - old: "CHANGEME", - new: "hostname", - expected: common.MapStr{"test": "hostname"}, - }, - { - content: common.MapStr{"test": "hello"}, - old: "CHANGEME", - new: "hostname", - expected: common.MapStr{"test": "hello"}, - }, - { - content: common.MapStr{"test": map[string]interface{}{"key": "\"CHANGEME\""}}, - old: "CHANGEME", - new: "hostname.local", - expected: common.MapStr{"test": map[string]interface{}{"key": "\"hostname.local\""}}, - }, - { - content: common.MapStr{ - "kibanaSavedObjectMeta": map[string]interface{}{ - "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"beat.name:\\\"CHANGEME_HOSTNAME\\\"\",\"language\":\"lucene\"}}"}}, - - old: "CHANGEME_HOSTNAME", - new: "hostname.local", - expected: common.MapStr{ - "kibanaSavedObjectMeta": map[string]interface{}{ - "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"beat.name:\\\"hostname.local\\\"\",\"language\":\"lucene\"}}"}}, - }, - } - - for _, test := range tests { - result, err := ReplaceStringInDashboard(test.old, test.new, test.content) - assert.NoError(t, err) - assert.Equal(t, test.expected, result) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/docs/breaking.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/breaking.asciidoc index 3a7560f0..96ef80ff 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/breaking.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/breaking.asciidoc @@ -1,3 +1,5 @@ +:see-relnotes: See the <> for a complete list of breaking changes, including changes to beta or experimental functionality. + [[breaking-changes]] == Breaking changes @@ -9,16 +11,184 @@ changes, but there are breaking changes between major versions (e.g. 5.x to See the following topics for a description of breaking changes: +* <> +* <> +* <> * <> * {auditbeat}/auditbeat-breaking-changes.html[Breaking changes in Auditbeat 6.2] +[[breaking-changes-6.3]] +=== Breaking changes in 6.3 + +This section discusses the main changes that you should be aware of if you +upgrade the Beats to version 6.3. {see-relnotes} + +[[breaking-changes-monitoring]] +==== Beats monitoring schema changes + +Starting with version 6.3, the monitoring field `beat.cpu.*.time.metrics` is +renamed to `beat.cpu.*.time.ms`. As a result of this change, Beats shippers +released prior to version 6.3 are unable to send monitoring data to clusters +running on Elasticsearch 6.3 and later. {see-relnotes} + +[[breaking-changes-mapping-conflict]] +==== New `host` namespace may cause mapping conflicts for Logstash + +This breaking change applies only to users who send Beats events to Logstash. + +Starting with version 6.3, Beats provides an `add_host_metadata` processor for +adding fields, such as `host.name` and `host.id`, to Beats events. These fields +are grouped under a `host` prefix and conform to the +https://github.com/elastic/ecs[Elastic Common Schema (ECS)]. The `host` object +is defined in the Elasticsearch index template even if the processor is not +used. + +We've also added a `host.name` field to all events sent by Beats. This field +prevents the Beats input plugin in Logstash from adding a default `host` field. +(By default, the plugin adds a `host` field if the event doesn't already have +one. We don't want the plugin to add this field because it causes a mapping +conflict with the `host` object defined in the index template.) + +*What does this mean to you?* + +See the info for your particular use case: + +* <> +* <> +* <> + +[[beats-template-versioned-indices]] +===== Use case: You use the Beats index template and versioned indices + +In this use case, you load the versioned template manually and use the Beats +versioned index pattern, `%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}`, +as recommended in the {logstash-ref}/plugins-inputs-beats.html[Beats input +plugin] documentation. This results in a `host` field in 6.2 indices, and a +`host.name` field in 6.3 indices. There are no mapping conflicts, but +any visualizations or searches that use `host` will no longer show results for +6.3 indices. + +*What do you need to change?* + +If you searched for the `host` field previously, modify your searches to use the +`beat.hostname` field instead. The `beat.hostname` field existed prior to 6.3 +and contains the same information as `host.name`. Using this field ensures that +your queries and aggregations will work as expected in earlier releases and 6.3. + +To save time when you have a large number of objects to update, you can batch +this process. Use either the Kibana UI or API to export the objects to JSON, +make the JSON modification, and then re-import the objects. For more +information, see: + +* {kibana-ref}/managing-saved-objects.html[Managing Saved Objects] +* {kibana-ref}/saved-objects-api.html[Kibana Saved Objects API] + + +[[custom-template-non-versioned-indices]] +===== Use case: You use a custom template and your indices are not versioned + +Mapping conflicts are likely in this use case because two different Beats +versions (6.2 and 6.3) are sending data to the same index. For 6.2, Logstash +adds the default `host` field, and for 6.3, Beats adds the `host.name` field, +which results in a mapping conflict. + +*What do you need to change?* + +To resolve the mapping issue, do *one* of the following: + +* Use versioned indices to prevent the mapping conflict. In the Logstash +pipeline configuration, set `manage_template => false` and use an index naming +pattern that includes `[version]` metadata: ++ +[source,yaml] +---- +manage_template => false +index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" +---- ++ +For more information, see the documentation for the +{logstash-ref}/plugins-inputs-beats.html[Beats input plugin]. + +* Or, in the Beats config file, configure Beats to drop all `host.*` fields: ++ +[source,yaml] +---- + processors: + - drop_fields: + fields: ["host"] +---- ++ +-- +IMPORTANT: If you drop the `host` fields, you cannot use the `add_host_metadata` +processor. + +-- ++ +With this configuration, Beats drops the `host` fields before sending the +event to Logstash, and Logstash adds a default `host` field, as it did with +previous Beats versions. This approach resolves the mapping conflict, but you +should plan to migrate your Logstash configurations to use `host.name` in +future releases. + +[[beats-template-non-versioned-indices]] +===== Use case: You use the Beats index template and your indices are not versioned + +In this use case, you load the Beats index template manually into Elasticsearch, +and send your data through Logstash, but you don’t use the versioned index +pattern to create versioned indices. + +You cannot resolve the problem by dropping the `host.*` fields, because Logstash +will add a default `host` field, resulting in a mapping conflict with the +`host` field defined as an object in the index template. + +*What do you need to change?* + +To resolve the mapping issue, do *one* of the following: + +* Drop the `host.*` fields in a Logstash filter. For example: ++ +[source,yaml] +---- +filter { + mutate { + remove_field => [ "[host]" ] + } +} +---- ++ +With this configuration, there will be no `host` field in the final event at +ingestion time, and the mapping conflict is avoided. + +* Or: +** Modify the Beats index template by removing the `host.*` fields, and +** Configure Beats to drop all `host.*` fields, as described in +<>. ++ +This solution prevents a mapping conflict because the fields are no longer +defined in the Elasticsearch template. Elasticsearch can use the `host` +mapping created when Logstash added a default `host` field. + +The difference between these two approaches is that the first approach, using +a Logstash filter, drops the `host` fields completely. There will be no `host` +field in the final event. The second approach drops the `host` fields from the +Beats event, but because Logstash adds a default `host` field, there will be a +`host` field in the final event. + +[[breaking-changes-6.2]] +=== Breaking changes in 6.2 + +{see-relnotes} + +[[breaking-changes-6.1]] +=== Breaking changes in 6.1 + +{see-relnotes} [[breaking-changes-6.0]] === Breaking changes in 6.0 This section discusses the main changes that you should be aware of if you -upgrade the Beats from version 5.x to 6.x. Please also review the relevant -Breaking Changes sections of the <>. +upgrade the Beats from version 5.x to 6.x. {see-relnotes} // TODO: better link to the consolidated release notes for 6.0.0. @@ -108,7 +278,7 @@ Prior to 6.0, the recommended setting was: ---- -The index templates that ship with 6.0 are applied to new indexes that match the +The index templates that ship with 6.0 are applied to new indices that match the pattern `[beat]-[version]-*`. You must update your Logstash config, or the templates will not be applied. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/command-reference.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/command-reference.asciidoc index fe387f72..a6d666e7 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/command-reference.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/command-reference.asciidoc @@ -14,18 +14,28 @@ :global-flags: Also see <>. -:export-command-short-desc: Exports the configuration or index template to stdout +:export-command-short-desc: Exports the configuration, index template or a dashboard to stdout :help-command-short-desc: Shows help for any command :keystore-command-short-desc: Manages the <> :modules-command-short-desc: Manages configured modules :run-command-short-desc: Runs {beatname_uc}. This command is used by default if you start {beatname_uc} without specifying a command -ifeval::["{has_ml_jobs}"=="yes"] +ifndef::deprecate_dashboard_loading[] + +ifdef::has_ml_jobs[] :setup-command-short-desc: Sets up the initial environment, including the index template, Kibana dashboards (when available), and machine learning jobs (when available) endif::[] -ifeval::["{has_ml_jobs}"!="yes"] -:setup-command-short-desc: Sets up the initial environment, including the index template, Kibana dashboards (when available) +ifndef::has_ml_jobs[] +:setup-command-short-desc: Sets up the initial environment, including the index template and Kibana dashboards (when available) +endif::[] + +endif::[] + +ifdef::deprecate_dashboard_loading[] + +:setup-command-short-desc: Sets up the initial environment, including the ES index template and Kibana dashboards (deprecated). + endif::[] :test-command-short-desc: Tests the configuration @@ -39,9 +49,17 @@ endif::[] Command reference ++++ +ifndef::deprecate_dashboard_loading[] {beatname_uc} provides a command-line interface for starting {beatname_uc} and -performing common tasks, like testing configuration files and loading -dashboards. The command-line also supports <> +performing common tasks, like testing configuration files and loading dashboards. +endif::[] + +ifdef::deprecate_dashboard_loading[] +{beatname_uc} provides a command-line interface for starting {beatname_uc} and +performing common tasks, like testing configuration files and loading dashboards (deprecated). +endif::[] + +The command-line also supports <> for controlling global behaviors. ifeval::["{beatname_lc}"!="winlogbeat"] @@ -57,34 +75,20 @@ Use `sudo` to run the following commands if: endif::[] -[horizontal] -<>:: -{export-command-short-desc}. - -<>:: -{help-command-short-desc}. - -<>:: -{keystore-command-short-desc}. - +[options="header"] +|======================= +|Commands | +|<> |{export-command-short-desc}. +|<> |{help-command-short-desc}. +|<> |{keystore-command-short-desc}. ifeval::[("{beatname_lc}"=="filebeat") or ("{beatname_lc}"=="metricbeat")] - -<>:: -{modules-command-short-desc}. - +|<> |{modules-command-short-desc}. endif::[] - -<>:: -{run-command-short-desc}. - -<>:: -{setup-command-short-desc}. - -<>:: -{test-command-short-desc}. - -<>:: -{version-command-short-desc}. +|<> |{run-command-short-desc}. +|<> |{setup-command-short-desc}. +|<> |{test-command-short-desc}. +|<> |{version-command-short-desc}. +|======================= Also see <>. @@ -92,8 +96,8 @@ Also see <>. ==== `export` command {export-command-short-desc}. You can use this -command to quickly view your configuration or the contents of the index -template. +command to quickly view your configuration, see the contents of the index +template or export a dashboard from Kibana. *SYNOPSIS* @@ -109,6 +113,30 @@ template. Exports the current configuration to stdout. If you use the `-c` flag, this command exports the configuration that's defined in the specified file. + + +*`dashboard`*:: +Exporting a dashboard allows to store a dashboard on disk in a +module and load it automatically. The following command can be used: ++ +["source","shell",subs="attributes"] +---- +{beatname_lc} export dashboard --id="dashboard-id" > dashboard.json +---- ++ +The `dashboard-id` can be found in the Kibana URL. By default `export dashboard` +will write the dashboard to stdout. Above it's written into `dashboard.json` so +it can later imported again. The file contains the dashboard with all +visualizations and searches. The index pattern is removed as it is +expected to be loaded separately for {beatname_uc}. ++ +The generated `dashboard.json` file can be copied into the `kibana/6/dashboard` +directory of {beatname_lc} and next time +{beatname_lc} setup dashboards+ is +run the dashboard will be imported. ++ +In case Kibana is not running on `localhost:5061` the {beatname_uc} +configuration under `setup.kibana` must be adjusted. + [[template-subcommand]] *`template`*:: Exports the index template to stdout. You can specify the `--es.version` and @@ -172,7 +200,7 @@ Specifies the name of the command to show help for. [[keystore-command]] ==== `keystore` command -{keystore-command-short-desc}. +{keystore-command-short-desc}. *SYNOPSIS* @@ -405,8 +433,19 @@ the end of the file is reached. By default harvesters are closed after endif::[] *`--setup`*:: -Loads the sample Kibana dashboards. If you want to load the dashboards without -running {beatname_uc}, use the <> command instead. +ifdef::deprecate_dashboard_loading[] +deprecated[{deprecate_dashboard_loading}] +endif::[] ++ +ifdef::has_ml_jobs[] +Loads the initial setup, including Elasticsearch template, Kibana index pattern, +Kibana dashboards and Machine learning jobs. +endif::[] +ifndef::has_ml_jobs[] +Loads the initial setup, including Elasticsearch template, Kibana index pattern and Kibana dashboards. +endif::[] +If you want to use the command without running {beatname_uc}, use the <> command instead. + ifeval::["{beatname_lc}"=="metricbeat"] @@ -445,13 +484,17 @@ Or: [[setup-command]] ==== `setup` command -{setup-command-short-desc}. +{setup-command-short-desc} * The index template ensures that fields are mapped correctly in Elasticsearch. + * The Kibana dashboards make it easier for you to visualize {beatname_uc} data in Kibana. + +ifdef::has_ml_jobs[] * The machine learning jobs contain the configuration information and metadata necessary to analyze data for anomalies. +endif::[] Use this command instead of `run --setup` when you want to set up the environment without actually running {beatname_uc} and ingesting data. @@ -466,18 +509,32 @@ environment without actually running {beatname_uc} and ingesting data. *FLAGS* +ifndef::deprecate_dashboard_loading[] *`--dashboards`*:: Sets up the Kibana dashboards only. This option loads the dashboards from the {beatname_uc} package. For more options, such as loading customized dashboards, see {beatsdevguide}/import-dashboards.html[Importing Existing Beat Dashboards] in the _Beats Developer Guide_. +endif::[] + +ifdef::deprecate_dashboard_loading[] +*`--dashboards`*:: + +deprecated[{deprecate_dashboard_loading}] ++ +Sets up the Kibana dashboards only. +endif::[] *`-h, --help`*:: Shows help for the `setup` command. +ifdef::has_ml_jobs[] + *`--machine-learning`*:: Sets up machine learning job configurations only. +endif::[] + ifeval::["{beatname_lc}"=="filebeat"] *`--modules MODULE_LIST`*:: @@ -657,4 +714,3 @@ the _Beats Platform Reference_ for more information. *`-v, --v`*:: Logs INFO-level messages. - diff --git a/vendor/github.com/elastic/beats/libbeat/docs/communitybeats.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/communitybeats.asciidoc index 812fee40..8bd93dcc 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/communitybeats.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/communitybeats.asciidoc @@ -4,7 +4,7 @@ ////////////////////////////////////////////////////////////////////////// [[community-beats]] -== Community beats +== Community Beats The open source community has been hard at work developing new Beats. You can check out some of them here. @@ -12,10 +12,14 @@ out some of them here. Have a question about a community Beat? You can post questions and discuss issues in the https://discuss.elastic.co/c/beats/community-beats[Community Beats] category of the Beats discussion forum. -Have you created a Beat that's not listed? If so, add the name and description of your Beat to the source document for -https://github.com/elastic/beats/blob/master/libbeat/docs/communitybeats.asciidoc[Community Beats] and https://help.github.com/articles/using-pull-requests[open a pull request] in the https://github.com/elastic/beats[Beats GitHub repository] to get your change merged. When you're ready, go ahead and https://discuss.elastic.co/c/annoucements[announce] your new Beat in the Elastic +Have you created a Beat that's not listed? Add the name and description of your Beat to the source document for +https://github.com/elastic/beats/blob/master/libbeat/docs/communitybeats.asciidoc[Community Beats] and https://help.github.com/articles/using-pull-requests[open a pull request] in the https://github.com/elastic/beats[Beats GitHub repository] to get your change merged. When you're ready, go ahead and https://discuss.elastic.co/c/announcements[announce] your new Beat in the Elastic discussion forum. +ifndef::dev-guide[] +Want to contribute? See <>. +endif::[] + NOTE: Elastic provides no warranty or support for community-sourced Beats. [horizontal] @@ -24,7 +28,6 @@ https://github.com/radoondas/apachebeat[apachebeat]:: Reads status from Apache H https://github.com/verticle-io/apexbeat[apexbeat]:: Extracts configurable contextual data and metrics from Java applications via the http://toolkits.verticle.io[APEX] toolkit. https://github.com/goomzee/burrowbeat[burrowbeat]:: Monitors Kafka consumer lag using Burrow. https://github.com/hsngerami/hsnburrowbeat[hsnburrowbeat]:: Monitors Kafka consumer lag for Burrow V1.0.0(API V3). -https://github.com/goomzee/cassandrabeat[cassandrabeat]:: Uses Cassandra's nodetool cfstats utility to monitor Cassandra database nodes and lag. https://github.com/hartfordfive/cloudflarebeat[cloudflarebeat]:: Indexes log entries from the Cloudflare Enterprise Log Share API. https://github.com/jarl-tornroos/cloudfrontbeat[cloudfrontbeat]:: Reads log events from Amazon Web Services https://aws.amazon.com/cloudfront/[CloudFront]. https://github.com/aidan-/cloudtrailbeat[cloudtrailbeat]:: Reads events from Amazon Web Services' https://aws.amazon.com/cloudtrail/[CloudTrail]. @@ -56,6 +59,7 @@ https://github.com/devopsmakers/iobeat[iobeat]:: Reads IO stats from /proc/disks https://github.com/radoondas/jmxproxybeat[jmxproxybeat]:: Reads Tomcat JMX metrics exposed over 'JMX Proxy Servlet' to HTTP. https://github.com/mheese/journalbeat[journalbeat]:: Used for log shipping from systemd/journald based Linux systems. https://github.com/justsocialapps/kafkabeat[kafkabeat]:: Reads data from Kafka topics. +https://github.com/arkady-emelyanov/kafkabeat[kafkabeat2]:: Reads data (json or plain) from Kafka topics. https://github.com/PPACI/krakenbeat[krakenbeat]:: Collect information on each transaction on the Kraken crypto platform. https://github.com/eskibars/lmsensorsbeat[lmsensorsbeat]:: Collects data from lm-sensors (such as CPU temperatures, fan speeds, and voltages from i2c and smbus). https://github.com/consulthys/logstashbeat[logstashbeat]:: Collects data from Logstash monitoring API (v5 onwards) and indexes them in Elasticsearch. @@ -81,7 +85,7 @@ https://github.com/GoogleCloudPlatform/pubsubbeat[pubsubbeat]:: Reads data from https://github.com/voigt/redditbeat[redditbeat]:: Collects new Reddit Submissions of one or multiple Subreddits. https://github.com/chrsblck/redisbeat[redisbeat]:: Used for Redis monitoring. https://github.com/consulthys/retsbeat[retsbeat]:: Collects counts of http://www.reso.org[RETS] resource/class records from https://en.wikipedia.org/wiki/Multiple_listing_service[Multiple Listing Service] (MLS) servers. -https://github.com/yourdream/rsbeat[rsbeat]:: Ships redis slow logs to elasticsearch and anlyze by Kibana. +https://github.com/yourdream/rsbeat[rsbeat]:: Ships redis slow logs to elasticsearch and analyze by Kibana. https://github.com/martinhoefling/saltbeat[saltbeat]:: Reads events from salt master event bus. https://github.com/benben/serialbeat[serialbeat]:: Reads from a serial device. https://github.com/consulthys/springbeat[springbeat]:: Collects health and metrics data from Spring Boot applications running with the actuator module. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/config-file-format.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/config-file-format.asciidoc index c4af4afe..efbfb34a 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/config-file-format.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/config-file-format.asciidoc @@ -231,7 +231,7 @@ For example the filebeat registry file defaults to: filebeat.registry: $\{path.data}/registry ------------------------------------------------------------------------------ -With `path.data` being an implicit config setting, that is overwritable from +With `path.data` being an implicit config setting, that is overridable from command line, as well as in the configuration file. Example referencing `es.host` in `output.elasticsearch.hosts`: @@ -324,7 +324,7 @@ to the same ownership and file permission checks. ==== Disabling strict permission checks You can disable strict permission checks from the command line by using -`-strict.perms=false`, but we strongly encourage you to leave the checks enabled. +`--strict.perms=false`, but we strongly encourage you to leave the checks enabled. [[config-file-format-cli]] === Command line arguments diff --git a/vendor/github.com/elastic/beats/libbeat/docs/contributing-to-beats.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/contributing-to-beats.asciidoc index 0f0ab628..7e568148 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/contributing-to-beats.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/contributing-to-beats.asciidoc @@ -9,8 +9,8 @@ //// include::../../libbeat/docs/contributing-to-beats.asciidoc[] ////////////////////////////////////////////////////////////////////////// -[[contributing-to-beats]] -== Contributing to Beats +["appendix",id="contributing-to-beats"] += Contributing to Beats The Beats are open source and we love to receive contributions from our community — you! diff --git a/vendor/github.com/elastic/beats/libbeat/docs/dashboardsconfig.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/dashboardsconfig.asciidoc index bd7f9ab1..83099f84 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/dashboardsconfig.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/dashboardsconfig.asciidoc @@ -11,6 +11,11 @@ [[configuration-dashboards]] == Load the Kibana dashboards +ifdef::deprecate_dashboard_loading[] + +deprecated[{deprecate_dashboard_loading}] + +endif::[] {beatname_uc} comes packaged with example Kibana dashboards, visualizations, and searches for visualizing {beatname_uc} data in Kibana. @@ -40,9 +45,14 @@ You can specify the following options in the `setup.dashboards` section of the ==== `setup.dashboards.enabled` If this option is set to true, {beatname_uc} loads the sample Kibana dashboards -automatically on startup. If no other options are set, the dashboard are loaded -from the local `kibana` directory in the home path of the installation. +from the local `kibana` directory in the home path of the {beatname_uc} installation. + +NOTE: When dashboard loading is enabled, {beatname_uc} overwrites any existing +dashboards that match the names of the dashboards you are loading. This happens +every time {beatname_uc} starts. +If no other options are set, the dashboard are loaded +from the local `kibana` directory in the home path of the {beatname_uc} installation. To load dashboards from a different location, you can configure one of the following options: <>, <>, or diff --git a/vendor/github.com/elastic/beats/libbeat/docs/gettingstarted.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/gettingstarted.asciidoc index 59ea4f40..eedb206f 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/gettingstarted.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/gettingstarted.asciidoc @@ -1,492 +1,26 @@ [[getting-started]] -== Getting started with Beats and the Elastic Stack - -Looking for an "ELK tutorial" that shows how to set up the Elastic stack for Beats? You've -come to the right place. The topics in this section describe how to install and configure -the Elastic stack for Beats. - -A regular _Beats setup_ consists of: - - * Elasticsearch for storage and indexing. See <>. - * Logstash (optional) for inserting data into Elasticsearch. See <>. - * Kibana for the UI. See <>. - * One or more Beats. You install the Beats on your servers to capture operational data. See <>. - * Kibana dashboards for visualizing the data. - -See the https://www.elastic.co/support/matrix[Elastic Support Matrix] for information -about supported operating systems and product compatibility. - -NOTE: To get started, you can install Elasticsearch and Kibana on a -single VM or even on your laptop. The only condition is that the machine must be -accessible from the servers you want to monitor. As you add more Beats and -your traffic grows, you'll want to replace the single Elasticsearch instance with -a cluster. You'll probably also want to automate the installation process. - - -[[elasticsearch-installation]] -=== Install Elasticsearch - -https://www.elastic.co/products/elasticsearch[Elasticsearch] is a real-time, -distributed storage, search, and analytics engine. It can be used for many -purposes, but one context where it excels is indexing streams of semi-structured -data, such as logs or decoded network packets. - -The binary packages of Elasticsearch have only one dependency: Java. The minimum -supported version is Java 8. To download and install -Elasticsearch, use the commands that work with your system -(<> for Debian/Ubuntu, <> for Redhat/Centos/Fedora, <> for OS X, and <> for Windows): - -[[deb]]*deb:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Elasticsearch has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -sudo apt-get install openjdk-8-jre -curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{ES-version}.deb -sudo dpkg -i elasticsearch-{ES-version}.deb -sudo /etc/init.d/elasticsearch start ----------------------------------------------------------------------- - -endif::[] - -[[rpm]]*rpm:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Elasticsearch has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -sudo yum install java-1.8.0-openjdk -curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{ES-version}.rpm -sudo rpm -i elasticsearch-{ES-version}.rpm -sudo service elasticsearch start ----------------------------------------------------------------------- - -endif::[] - -[[mac]]*mac:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Elasticsearch has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -# install Java, e.g. from: https://www.java.com/en/download/manual.jsp -curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{ES-version}.zip -unzip elasticsearch-{ES-version}.zip -cd elasticsearch-{ES-version} -./bin/elasticsearch ----------------------------------------------------------------------- - -endif::[] - -[[win]]*win:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Elasticsearch has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -. If necessary, download and install the latest version of the Java from https://www.java.com[www.java.com]. - -. Download the Elasticsearch {ES-version} Windows zip file from the -https://www.elastic.co/downloads/elasticsearch[downloads page]. - -. Extract the contents of the zip file to a directory on your computer, for example, `C:\Program Files`. - -. Open a command prompt as an Administrator and navigate to the directory that contains the extracted files, for example: -+ -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -cd C:\Program Files\elasticsearch-{ES-version} ----------------------------------------------------------------------- - -. Run the following command to start Elasticsearch: -+ -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -bin\elasticsearch.bat ----------------------------------------------------------------------- - -endif::[] - -You can learn more about installing, configuring, and running Elasticsearch in the -https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html[Elasticsearch Reference]. - -==== Make sure Elasticsearch is up and running - - -To test that the Elasticsearch daemon is up and running, try sending an HTTP GET -request on port 9200. - -[source,shell] ----------------------------------------------------------------------- -curl http://127.0.0.1:9200 ----------------------------------------------------------------------- - -On Windows, if you don't have cURL installed, simply point your browser to the URL. - -You should see a response similar to this: - -["source","sh",subs="attributes"] ----------------------------------------------------------------------- -{ - "name" : "ofgAtrJ", - "cluster_name" : "elasticsearch", - "cluster_uuid" : "3h9xSrVlRJmDHgQ8FLnByA", - "version" : { - "number" : "{ES-version}", - "build_hash" : "db0d481", - "build_date" : "2017-02-09T22:05:32.386Z", - "build_snapshot" : false, - "lucene_version" : "6.4.1" - }, - "tagline" : "You Know, for Search" -} ----------------------------------------------------------------------- - -[[logstash-installation]] -=== Install Logstash (Optional) - -The simplest architecture for the Beats platform setup consists of one or more Beats, -Elasticsearch, and Kibana. This architecture is easy to get started -with and sufficient for networks with low traffic. It also uses the minimum amount of -servers: a single machine running Elasticsearch and Kibana. The Beats -insert the transactions directly into the Elasticsearch instance. - -If you want to perform additional processing or buffering on the data, however, -you'll want to install Logstash. - -An important advantage to this approach is that you can -use Logstash to modify the data captured by Beats in any way you like. You can also -use Logstash's many output plugins to integrate with other systems. - -To download and install Logstash, use the commands that work -with your system: - -*deb:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Logstash has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -sudo apt-get install openjdk-8-jre -curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-{LS-version}.deb -sudo dpkg -i logstash-{LS-version}.deb ----------------------------------------------------------------------- - -endif::[] - -*rpm:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Logstash has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -sudo yum install java-1.8.0-openjdk -curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-{LS-version}.rpm -sudo rpm -i logstash-{LS-version}.rpm ----------------------------------------------------------------------- - -endif::[] - -*mac:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Logstash has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -# install Java, e.g. from: https://www.java.com/en/download/manual.jsp -curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-{LS-version}.zip -unzip logstash-{LS-version}.zip ----------------------------------------------------------------------- - -endif::[] - -*win:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Logstash has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -. If necessary, download and install the latest version of the Java from https://www.java.com[www.java.com]. - -. Download the Logstash {LS-version} Windows zip file from the -https://www.elastic.co/downloads/logstash[downloads page]. - -. Extract the contents of the zip file to a directory on your computer, for example, `C:\Program Files`. - -Don't start Logstash yet. You need to set a couple of configuration options first. - -endif::[] - -[[logstash-setup]] -==== Set up Logstash - -In this setup, the Beat sends events to Logstash. Logstash receives -these events by using the -{logstashdoc}/plugins-inputs-beats.html[Beats input plugin for Logstash] -and then sends the transaction to Elasticsearch by using the -{logstashdoc}/plugins-outputs-elasticsearch.html[Elasticsearch output plugin for Logstash]. -The Elasticsearch output plugin uses the bulk API, making indexing very efficient. - -To set up Logstash, you create a Logstash pipeline configuration file that -configures Logstash to listen on port 5044 for incoming Beats connections -and to index into Elasticsearch. For example, you can save the following -example configuration to a file called `logstash.conf`: - -[source,ruby] ------------------------------------------------------------------------------- -input { - beats { - port => 5044 - } -} - -# The filter part of this file is commented out to indicate that it is -# optional. -# filter { -# -# } - -output { - elasticsearch { - hosts => "localhost:9200" - manage_template => false - index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" <1> - document_type => "%{[@metadata][type]}" <2> - } -} ------------------------------------------------------------------------------- -<1> `%{[@metadata][beat]}` sets the first part of the index name to the value -of the `beat` metadata field, `%{[@metadata][version]}` sets the second part of -the name to the beat's version, and `%{+YYYY.MM.dd}` sets the third part of the -name to a date based on the Logstash `@timestamp` field. For example: -+{beatname_lc}-2017.03.29+. -<2> `%{[@metadata][type]}` sets the document type based on the value of the `type` -metadata field. For Beats, this value resolves to `doc`. - -NOTE: Starting with Logstash 6.0, the `document_type` option is deprecated due to the -https://www.elastic.co/guide/en/elasticsearch/reference/6.0/removal-of-types.html[removal of types in Logstash 6.0]. -It will be removed in the next major version of Logstash. If you are running -Logstash 6.0 or later, you do not need to set `document_type` in your -configuration because Logstash sets the type to `doc` by default. - -When you run Logstash with this configuration, it indexes events into -Elasticsearch in the same way that the Beat would, but you get access to other -capabilities provided by Logstash for collecting, enriching, and transforming -data. See the {logstashdoc}/introduction.html[Logstash introduction] for more -information about these capabilities. - -To use this setup, you'll also need to configure your Beat to use Logstash. -For more information, see the documentation for the Beat. - -[[logstash-input-update]] -===== Update the Beats input plugin for Logstash - -Plugins have their own release cycle and are often released independent of -Logstash’s core release cycle. To ensure that you have the latest version of -the https://www.elastic.co/guide/en/logstash/current/plugins-inputs-beats.html[Beats input plugin for Logstash], -run the following command from your Logstash installation: - -*deb, rpm, and mac:* - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -./bin/logstash-plugin update logstash-input-beats ----------------------------------------------------------------------- - -*win:* - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -bin\logstash-plugin update logstash-input-beats ----------------------------------------------------------------------- - -Keep in mind that you can update to the latest version of the plugin without -having to upgrade to a newer version of Logstash. More details about working -with input plugins in Logstash are available -https://www.elastic.co/guide/en/logstash/current/working-with-plugins.html[here]. - - -==== Start Logstash - -Now you can start Logstash. Use the command that works with your system. If you -installed Logstash as a deb or rpm package, make sure the config file is in the -expected directory. - -*deb:* - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -sudo /etc/init.d/logstash start ----------------------------------------------------------------------- - -*rpm:* - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -sudo service logstash start ----------------------------------------------------------------------- - -*mac:* - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -./bin/logstash -f logstash.conf ----------------------------------------------------------------------- - -*win:* - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -bin\logstash.bat -f logstash.conf ----------------------------------------------------------------------- - -NOTE: The default configuration for Beats and Logstash uses plain TCP. For -encryption you must explicitly enable SSL when you configure Beats and Logstash. - -You can learn more about installing, configuring, and running Logstash -https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html[here]. - -[[kibana-installation]] -=== Install Kibana - -https://www.elastic.co/products/kibana[Kibana] is a visualization application -that gets its data from Elasticsearch. It provides a customizable and -user-friendly UI in which you can combine various widget types to create your -own dashboards. The dashboards can be easily saved, shared, and linked. - -For getting started, we recommend installing Kibana on the same server as -Elasticsearch, but it is not required. If you install the products on different servers, -you'll need to change the URL (IP:PORT) of the Elasticsearch server in the -Kibana configuration file, `config/kibana.yml`, before starting Kibana. - -Use the following commands to download and run Kibana. - -*deb or rpm:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Kibana has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-{Kibana-version}-linux-x86_64.tar.gz -tar xzvf kibana-{Kibana-version}-linux-x86_64.tar.gz -cd kibana-{Kibana-version}-linux-x86_64/ -./bin/kibana ----------------------------------------------------------------------- - -endif::[] - -*mac:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Kibana has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-{Kibana-version}-darwin-x86_64.tar.gz -tar xzvf kibana-{Kibana-version}-darwin-x86_64.tar.gz -cd kibana-{Kibana-version}-darwin-x86_64/ -./bin/kibana ----------------------------------------------------------------------- - -endif::[] - -*win:* - -ifeval::["{release-state}"=="unreleased"] - -Version {stack-version} of Kibana has not yet been released. - -endif::[] - -ifeval::["{release-state}"!="unreleased"] - -. Download the Kibana {Kibana-version} Windows zip file from the -https://www.elastic.co/downloads/kibana[downloads page]. - -. Extract the contents of the zip file to a directory on your computer, for example, `C:\Program Files`. - -. Open a command prompt as an Administrator and navigate to the directory that -contains the extracted files, for example: -+ -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -cd C:\Program Files\kibana-{Kibana-version}-windows ----------------------------------------------------------------------- - -. Run the following command to start Kibana: -+ -["source","sh",subs="attributes,callouts"] ----------------------------------------------------------------------- -bin\kibana.bat ----------------------------------------------------------------------- - -endif::[] - -You can find Kibana binaries for other operating systems on the -https://www.elastic.co/downloads/kibana[Kibana downloads page]. - -==== Launch the Kibana web interface - -To launch the Kibana web interface, point your browser to port 5601. For example, -http://127.0.0.1:5601[http://127.0.0.1:5601]. - -You can learn more about Kibana in the -http://www.elastic.co/guide/en/kibana/current/index.html[Kibana User Guide]. +== Getting started with {beats} + +Each Beat is a separately installable product. Before installing Beats, you need +to install and configure the {stack}. To learn how to get up and running +quickly, see {stack-gs}/get-started-elastic-stack.html[Getting started with the +{stack}]. + +[TIP] +============== +You can skip having to install {es} and {kib} by using our +https://www.elastic.co/cloud/elasticsearch-service[hosted {es} Service] on +Elastic Cloud. The {es} Service is available on both AWS and GCP. +https://www.elastic.co/cloud/elasticsearch-service/signup[Try out the {es} +Service for free]. +============== + +After installing the {stack}, see the {beats} getting started guides: + +* {auditbeat-ref}/auditbeat-getting-started.html[Auditbeat] +* {filebeat-ref}/filebeat-getting-started.html[Filebeat] +* {heartbeat-ref}/heartbeat-getting-started.html[Heartbeat] +* {metricbeat-ref}/metricbeat-getting-started.html[Metricbeat] +* {packetbeat-ref}/packetbeat-getting-started.html[Packetbeat] +* {winlogbeat-ref}/winlogbeat-getting-started.html[Winlogbeat] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/http-endpoint.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/http-endpoint.asciidoc new file mode 100644 index 00000000..1dda3341 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/docs/http-endpoint.asciidoc @@ -0,0 +1,163 @@ +////////////////////////////////////////////////////////////////////////// +//// This content is shared by all Elastic Beats. Make sure you keep the +//// descriptions here generic enough to work for all Beats that include +//// this file. When using cross references, make sure that the cross +//// references resolve correctly for any files that include this one. +//// Use the appropriate variables defined in the index.asciidoc file to +//// resolve Beat names: beatname_uc and beatname_lc. +//// Use the following include to pull this content into a doc file: +//// include::../../libbeat/docs/http-endpoint.asciidoc[] +////////////////////////////////////////////////////////////////////////// + +[[http-endpoint]] +== HTTP Endpoint + +experimental[] + +{beatname_uc} can expose internal metrics through an HTTP endpoint. These are useful to +monitor the internal state of the Beat. For security reasons the endpoint is disabled +by default, as you may want to avoid exposing this info. + +The HTTP endpoint has the following configuration settings: + +`http.enabled`:: (Optional) Enable the HTTP endpoint. Default is `false`. +`http.host`:: (Optional) Bind to this hostname or IP address. +It is recommended to use only localhost. Default is `localhost` +`http.port`:: (Optional) Port on which the HTTP endpoint will bind. Default is `5066`. + +This is the list of paths you can access. For pretty JSON output append ?pretty to the URL. + + +[float] +=== Info + +`/` provides basic info from the {beatname_uc}. Example: + +[source,js] +---- +curl -XGET 'localhost:5066/?pretty' +---- + +["source","js",subs="attributes"] +---- +{ + "beat": "metricbeat", + "hostname": "example.lan", + "name": "example.lan", + "uuid": "34f6c6e1-45a8-4b12-9125-11b3e6e89866", + "version": "{version}" +} +---- + +[float] +=== Stats + +`/stats` reports internal metrics. Example: + +[source,js] +---- +curl -XGET 'localhost:5066/stats?pretty' +---- + +["source","js",subs="attributes"] +---- +{ + "beat": { + "cpu": { + "system": { + "ticks": 1710, + "time": { + "ms": 1712 + } + }, + "total": { + "ticks": 3420, + "time": { + "ms": 3424 + }, + "value": 3420 + }, + "user": { + "ticks": 1710, + "time": { + "ms": 1712 + } + } + }, + "info": { + "ephemeral_id": "ab4287c4-d907-4d9d-b074-d8c3cec4a577", + "uptime": { + "ms": 195547 + } + }, + "memstats": { + "gc_next": 17855152, + "memory_alloc": 9433384, + "memory_total": 492478864, + "rss": 50405376 + } + }, + "libbeat": { + "config": { + "module": { + "running": 0, + "starts": 0, + "stops": 0 + }, + "reloads": 1 + }, + "output": { + "events": { + "acked": 0, + "active": 0, + "batches": 0, + "dropped": 0, + "duplicates": 0, + "failed": 0, + "total": 0 + }, + "read": { + "bytes": 0, + "errors": 0 + }, + "type": "elasticsearch", + "write": { + "bytes": 0, + "errors": 0 + } + }, + "pipeline": { + "clients": 6, + "events": { + "active": 716, + "dropped": 0, + "failed": 0, + "filtered": 0, + "published": 716, + "retry": 278, + "total": 716 + }, + "queue": { + "acked": 0 + } + } + }, + "system": { + "cpu": { + "cores": 4 + }, + "load": { + "1": 2.22, + "15": 1.8, + "5": 1.74, + "norm": { + "1": 0.555, + "15": 0.45, + "5": 0.435 + } + } + } +} +---- + +The actual output may contain more metrics specific to {beatname_uc} diff --git a/vendor/github.com/elastic/beats/libbeat/docs/images/beats-platform.png b/vendor/github.com/elastic/beats/libbeat/docs/images/beats-platform.png index 4fa42274..362c9f0a 100644 Binary files a/vendor/github.com/elastic/beats/libbeat/docs/images/beats-platform.png and b/vendor/github.com/elastic/beats/libbeat/docs/images/beats-platform.png differ diff --git a/vendor/github.com/elastic/beats/libbeat/docs/index.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/index.asciidoc index 368e41c4..a31ef54e 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/index.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/index.asciidoc @@ -11,7 +11,7 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[] :github_repo_name: beats :discuss_forum: beats/{beatname_lc} :beat_default_index_prefix: {beatname_lc} -:has_ml_jobs: yes +:has_ml_jobs: include::../../libbeat/docs/shared-beats-attributes.asciidoc[] @@ -19,12 +19,8 @@ include::./overview.asciidoc[] include::./communitybeats.asciidoc[] -include::../../libbeat/docs/contributing-to-beats.asciidoc[] - include::./gettingstarted.asciidoc[] -include::./installing-beats.asciidoc[] - include::./breaking.asciidoc[] include::./upgrading.asciidoc[] @@ -32,3 +28,5 @@ include::./upgrading.asciidoc[] include::./config-file-format.asciidoc[] include::./release.asciidoc[] + +include::../../libbeat/docs/contributing-to-beats.asciidoc[] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/installing-beats.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/installing-beats.asciidoc deleted file mode 100644 index 01e9c024..00000000 --- a/vendor/github.com/elastic/beats/libbeat/docs/installing-beats.asciidoc +++ /dev/null @@ -1,30 +0,0 @@ - -//////////////////////////////////////////////////////////////////// -///// The content about individual configuration options has been -///// moved to the following files: -///// generalconfig.asciidoc for General options -///// outputconfig.asciidoc for Output options -///// loggingconfig.asciidoc for Logging options -///// runconfig.asciidoc for Run Configuration options -///// The content now appears in the guides for each Beat. You can -///// include the content in the guide for your Beat by using the -///// following asciidoc include statements: -///// include::../../libbeat/docs/outputconfig.asciidoc[] -///// include::../../libbeat/docs/generalconfig.asciidoc[] -///// include::../../libbeat/docs/loggingconfig.asciidoc[] -//////////////////////////////////////////////////////////////////// - -[[installing-beats]] -=== Install Beats - -After <> the Elastic stack, you need to install and configure your Beat. - -Each Beat is a separately installable product. To get up and running quickly with a Beat, see the Getting Started information for your Beat: - -* {packetbeat}/packetbeat-getting-started.html[Packetbeat] -* {metricbeat}/metricbeat-getting-started.html[Metricbeat] -* {filebeat}/filebeat-getting-started.html[Filebeat] -* {winlogbeat}/winlogbeat-getting-started.html[Winlogbeat] -* {heartbeat}/heartbeat-getting-started.html[Heartbeat] - - diff --git a/vendor/github.com/elastic/beats/libbeat/docs/keystore.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/keystore.asciidoc index 9097c795..d5588073 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/keystore.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/keystore.asciidoc @@ -118,6 +118,6 @@ To remove a key from the keystore, use: ["source","sh",subs="attributes"] ---------------------------------------------------------------- -{beatname_lc} remove ES_PWD +{beatname_lc} keystore remove ES_PWD ---------------------------------------------------------------- diff --git a/vendor/github.com/elastic/beats/libbeat/docs/loggingconfig.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/loggingconfig.asciidoc index eeaff84c..f897321f 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/loggingconfig.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/loggingconfig.asciidoc @@ -44,6 +44,8 @@ You can specify the following options in the `logging` section of the When true, writes all logging output to the syslog. +NOTE: This option is not supported on Windows. + [float] ==== `logging.to_eventlog` diff --git a/vendor/github.com/elastic/beats/libbeat/docs/monitoring/monitoring-beats.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/monitoring/monitoring-beats.asciidoc index 784a222a..a1a22fa1 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/monitoring/monitoring-beats.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/monitoring/monitoring-beats.asciidoc @@ -33,20 +33,17 @@ information, see {xpack-ref}/setting-up-authentication.html[Setting Up User Authentication] and {xpack-ref}/built-in-roles.html[Built-in Roles]. -. Add the `xpack.monitoring` settings in the {beatname_uc} configuration file. -If you configured {es} output and you want to use the same {es} production -cluster and credentials, you can specify the following minimal configuration -options: +. Add the `xpack.monitoring` settings in the {beatname_uc} configuration file. If you +configured {es} output, specify the following minimal configuration: + -- [source, yml] -------------------- -xpack.monitoring: - enabled: true - elasticsearch: +xpack.monitoring.enabled: true -------------------- -Otherwise, you must specify additional configuration options. For example: +If you configured a different output, such as {ls}, you must specify additional +configuration options. For example: [source, yml] -------------------- @@ -58,6 +55,10 @@ xpack.monitoring: password: beatspassword -------------------- +NOTE: Currently you must send monitoring data to the same cluster as all other events. +If you configured {es} output, do not specify additional hosts in the monitoring +configuration. + -- . {kibana-ref}/monitoring-xpack-kibana.html[Configure monitoring in {kib}]. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/monitoring/shared-monitor-config.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/monitoring/shared-monitor-config.asciidoc index 2990d8ef..2ea94649 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/monitoring/shared-monitor-config.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/monitoring/shared-monitor-config.asciidoc @@ -39,6 +39,21 @@ configuration option contains the following fields: The maximum number of metrics to bulk in a single {es} bulk API index request. The default is `50`. For more information, see <>. +[float] +==== `backoff.init` + +The number of seconds to wait before trying to reconnect to Elasticsearch after +a network error. After waiting `backoff.init` seconds, {beatname_uc} tries to +reconnect. If the attempt fails, the backoff timer is increased exponentially up +to `backoff.max`. After a successful connection, the backoff timer is reset. The +default is 1s. + +[float] +===== `backoff.max` + +The maximum number of seconds to wait before attempting to connect to +Elasticsearch after a network error. The default is 60s. + [float] ==== `compression_level` @@ -79,10 +94,17 @@ The password that {beatname_uc} uses to authenticate with the {es} instances for shipping monitoring data. [float] -==== `period` +==== `metrics.period` The time interval (in seconds) when metrics are sent to the {es} cluster. A new snapshot of {beatname_uc} metrics is generated and scheduled for publishing each +period. The default value is 10 * time.Second. + +[float] +==== `state.period` + +The time interval (in seconds) when state information are sent to the {es} cluster. A new +snapshot of {beatname_uc} state is generated and scheduled for publishing each period. The default value is 60 * time.Second. [float] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/opendashboards.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/opendashboards.asciidoc index 1157c470..3dbed60d 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/opendashboards.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/opendashboards.asciidoc @@ -9,8 +9,11 @@ //// include::../../libbeat/docs/opendashboards.asciidoc[] ////////////////////////////////////////////////////////////////////////// -To open the dashboards, launch the Kibana web interface by pointing your browser -to port 5601. For example, http://127.0.0.1:5601[http://127.0.0.1:5601]. +To open the dashboards, launch the {kib} web interface by pointing your browser +to port 5601. For example, http://localhost:5601[http://localhost:5601]. +Replace `localhost` with the name of the {kib} host. If you're using an +https://cloud.elastic.co/[Elastic Cloud] instance, log in to your cloud account, +then navigate to the {kib} endpoint in your deployment. On the *Discover* page, make sure that the predefined +{beatname_lc}-*+ index pattern is selected to see {beatname_uc} data. @@ -20,6 +23,9 @@ image:./images/kibana-created-indexes.png[Discover tab with index selected] Go to the *Dashboard* page and select the dashboard that you want to open. +TIP: If you don’t see data in {kib}, try changing the date range to a larger +range. By default, {kib} shows the last 15 minutes. + [role="screenshot"] image:./images/kibana-navigation-vis.png[Navigation widget in Kibana] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/outputconfig.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/outputconfig.asciidoc index c7f4c99f..187ab171 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/outputconfig.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/outputconfig.asciidoc @@ -28,15 +28,22 @@ The following topics describe how to configure each supported output: * <> * <> * <> +ifndef::no-redis-output[] * <> +endif::[] * <> * <> +* <> If you've secured the {stack}, also read <> for more about security-related configuration options. endif::[] +ifdef::beat-specific-output-config[] +include::{beat-specific-output-config}[] +endif::[] + [[elasticsearch-output]] === Configure the Elasticsearch output @@ -138,6 +145,13 @@ Increasing the compression level will reduce the network usage but will increase The default value is 0. +===== `escape_html` + +Configure escaping of HTML in strings. Set to `false` to disable escaping. + +The default value is `true`. + + ===== `worker` The number of workers per configured host publishing events to Elasticsearch. This @@ -203,10 +217,16 @@ The index name to write events to. The default is +"{beatname_lc}-%\{[beat.version]\}-%\{+yyyy.MM.dd\}"+ (for example, +"{beatname_lc}-{version}-2017.04.26"+). If you change this setting, you also need to configure the `setup.template.name` and `setup.template.pattern` options -(see <>). If you are using the pre-built Kibana -dashboards, you also need to set the `setup.dashboards.index` option (see -<>). +(see <>). +If you are using the pre-built Kibana dashboards, +you also need to set the `setup.dashboards.index` option (see <>). + +ifdef::deprecate_dashboard_loading[] + +deprecated[{deprecate_dashboard_loading}] + +endif::[] ===== `indices` @@ -326,6 +346,20 @@ Setting `bulk_max_size` to values less than or equal to 0 disables the splitting of batches. When splitting is disabled, the queue decides on the number of events to be contained in a batch. +===== `backoff.init` + +The number of seconds to wait before trying to reconnect to Elasticsearch after +a network error. After waiting `backoff.init` seconds, {beatname_uc} tries to +reconnect. If the attempt fails, the backoff timer is increased exponentially up +to `backoff.max`. After a successful connection, the backoff timer is reset. The +default is 1s. + + +===== `backoff.max` + +The maximum number of seconds to wait before attempting to connect to +Elasticsearch after a network error. The default is 60s. + ===== `timeout` The http request timeout in seconds for the Elasticsearch request. The default is 90. @@ -351,7 +385,7 @@ The Logstash output sends events directly to Logstash by using the lumberjack protocol, which runs over TCP. Logstash allows for additional processing and routing of generated events. -include::../../libbeat/docs/shared-logstash-config.asciidoc[] +include::./shared-logstash-config.asciidoc[] ==== Accessing metadata fields @@ -452,6 +486,12 @@ Increasing the compression level will reduce the network usage but will increase The default value is 3. +===== `escape_html` + +Configure escaping of HTML in strings. Set to `false` to disable escaping. + +The default value is `true`. + ===== `worker` The number of workers per configured host publishing events to Logstash. This @@ -499,7 +539,7 @@ configured. The default value is 2. deprecated[5.0.0] The default port to use if the port number is not given in <>. The default port number -is 10200. +is 5044. ===== `proxy_url` @@ -590,6 +630,19 @@ On error the number of events per transaction is reduced again. The default is `false`. +===== `backoff.init` + +The number of seconds to wait before trying to reconnect to Logstash after +a network error. After waiting `backoff.init` seconds, {beatname_uc} tries to +reconnect. If the attempt fails, the backoff timer is increased exponentially up +to `backoff.max`. After a successful connection, the backoff timer is reset. The +default is 1s. + +===== `backoff.max` + +The maximum number of seconds to wait before attempting to connect to +Logstash after a network error. The default is 60s. + [[kafka-output]] === Configure the Kafka output @@ -621,7 +674,8 @@ NOTE: Events bigger than <> will be ==== Compatibility -This output works with Kafka 0.8, 0.9, and 0.10. +This output works with all Kafka in between 0.11 and 1.1.1. Older versions +might work as well, but are not supported. ==== Configuration options @@ -641,12 +695,11 @@ The cluster metadata contain the actual Kafka brokers events are published to. ===== `version` -Kafka version ${beatname_lc} is assumed to run against. Defaults to oldest -supported stable version (currently version 0.8.2.0). +Kafka version ${beatname_lc} is assumed to run against. Defaults to 1.0.0. Event timestamps will be added, if version 0.10.0.0+ is enabled. -Valid values are all kafka releases in between `0.8.2.0` and `0.11.0.0`. +Valid values are all kafka releases in between `0.8.2.0` and `1.1.1`. ===== `username` @@ -788,6 +841,15 @@ The keep-alive period for an active network connection. If 0s, keep-alives are d Sets the output compression codec. Must be one of `none`, `snappy`, `lz4` and `gzip`. The default is `gzip`. +===== `compression_level` + +Sets the compression level used by gzip. Setting this value to 0 disables compression. +The compression level must be in the range of 1 (best speed) to 9 (best compression). + +Increasing the compression level will reduce the network usage but will increase the cpu usage. + +The default value is 4. + [[kafka-max_message_bytes]] ===== `max_message_bytes` @@ -804,6 +866,7 @@ Note: If set to 0, no ACKs are returned by Kafka. Messages might be lost silentl Configuration options for SSL parameters like the root CA for Kafka connections. See <> for more information. +ifndef::no-redis-output[] [[redis-output]] === Configure the Redis output @@ -858,15 +921,12 @@ The Redis port to use if `hosts` does not contain a port number. The default is ===== `index` -deprecated[5.0.0,The `index` setting is renamed to `key`] - -The name of the Redis list or channel the events are published to. The default is -"{beatname_lc}". +The index name added to the events metadata for use by Logstash. The default is "{beatname_lc}". ===== `key` -The name of the Redis list or channel the events are published to. The default is -"{beatname_lc}". +The name of the Redis list or channel the events are published to. If not +configured, the value of the `index` setting is used. The redis key can be set dynamically using a format string accessing any fields in the event to be published. @@ -974,6 +1034,19 @@ to another host if the currently selected one becomes unreachable. The default v The Redis connection timeout in seconds. The default is 5 seconds. +===== `backoff.init` + +The number of seconds to wait before trying to reconnect to Redis after +a network error. After waiting `backoff.init` seconds, {beatname_uc} tries to +reconnect. If the attempt fails, the backoff timer is increased exponentially up +to `backoff.max`. After a successful connection, the backoff timer is reset. The +default is 1s. + +===== `backoff.max` + +The maximum number of seconds to wait before attempting to connect to +Redis after a network error. The default is 60s. + ===== `max_retries` ifeval::[("{beatname_lc}"=="filebeat") or ("{beatname_lc}"=="winlogbeat")] @@ -1036,6 +1109,8 @@ client. You can change this behavior by setting the This option determines whether Redis hostnames are resolved locally when using a proxy. The default value is false, which means that name resolution occurs on the proxy server. +endif::[] + [[file-output]] === Configure the File output @@ -1087,8 +1162,8 @@ rotated. The default value is 10240 KB. ===== `number_of_files` The maximum number of files to save under <>. When this number of files is reached, the -oldest file is deleted, and the rest of the files are shifted from last to first. The default -is 7 files. +oldest file is deleted, and the rest of the files are shifted from last to first. +The number of files must be between 2 and 1024. The default is 7. ===== `permissions` @@ -1148,39 +1223,6 @@ Setting `bulk_max_size` to values less than or equal to 0 disables the splitting of batches. When splitting is disabled, the queue decides on the number of events to be contained in a batch. -[[configuration-output-codec]] -=== Configure the output codec - -++++ -Output codec -++++ - -For outputs that do not require a specific encoding, you can change the encoding -by using the codec configuration. You can specify either the `json` or `format` -codec. By default the `json` codec is used. - -*`json.pretty`*: If `pretty` is set to true, events will be nicely formatted. The default is false. - -Example configuration that uses the `json` codec with pretty printing enabled to write events to the console: - -[source,yaml] ------------------------------------------------------------------------------- -output.console: - codec.json: - pretty: true ------------------------------------------------------------------------------- - -*`format.string`*: Configurable format string used to create a custom formatted message. - -Example configurable that uses the `format` codec to print the events timestamp and message field to console: - -[source,yaml] ------------------------------------------------------------------------------- -output.console: - codec.format: - string: '%{[@timestamp]} %{[message]}' ------------------------------------------------------------------------------- - [[configure-cloud-id]] === Configure the output for the Elastic Cloud @@ -1222,4 +1264,36 @@ When specified, the `cloud.auth` overwrites the `output.elasticsearch.username` the username and password from the Elasticsearch output, this can also be used to set the `setup.kibana.username` and `setup.kibana.password` options. +[[configuration-output-codec]] +=== Change the output codec + +For outputs that do not require a specific encoding, you can change the encoding +by using the codec configuration. You can specify either the `json` or `format` +codec. By default the `json` codec is used. + +*`json.pretty`*: If `pretty` is set to true, events will be nicely formatted. The default is false. + +*`json.escape_html`*: If `escape_html` is set to false, html symbols will not be escaped in strings. The default is true. + +Example configuration that uses the `json` codec with pretty printing enabled to write events to the console: + +[source,yaml] +------------------------------------------------------------------------------ +output.console: + codec.json: + pretty: true + escape_html: false +------------------------------------------------------------------------------ + +*`format.string`*: Configurable format string used to create a custom formatted message. + +Example configurable that uses the `format` codec to print the events timestamp and message field to console: + +[source,yaml] +------------------------------------------------------------------------------ +output.console: + codec.format: + string: '%{[@timestamp]} %{[message]}' +------------------------------------------------------------------------------ + endif::[] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/overview.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/overview.asciidoc index 48088777..332115a4 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/overview.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/overview.asciidoc @@ -4,22 +4,34 @@ Beats overview ++++ -The _Beats_ are open source data shippers that you install as _agents_ on -your servers to send different types of operational data to -https://www.elastic.co/products/elasticsearch[Elasticsearch]. Beats can -send data directly to Elasticsearch or send it to Elasticsearch via Logstash, which -you can use to parse and transform the data. - -_Packetbeat_, _Filebeat_, _Metricbeat_, and _Winlogbeat_ are a few examples of _Beats_. Packetbeat -is a network packet analyzer that ships information about the transactions -exchanged between your application servers. Filebeat ships log files from your servers. Metricbeat is a server monitoring agent -that periodically collects metrics from the operating systems and services -running on your servers. And Winlogbeat ships Windows event logs. +{beats} are open source data shippers that you install as agents on your +servers to send operational data to +https://www.elastic.co/products/elasticsearch[{es}]. Elastic provides {beats} +for capturing: + +[horizontal] +Audit data:: https://www.elastic.co/products/beats/auditbeat[Auditbeat] +Log files:: https://www.elastic.co/products/beats/filebeat[Filebeat] +Availability:: https://www.elastic.co/products/beats/heartbeat[Heartbeat] +Metrics:: https://www.elastic.co/products/beats/metricbeat[Metricbeat] +Network traffic:: https://www.elastic.co/products/beats/packetbeat[Packetbeat] +Windows event logs:: https://www.elastic.co/products/beats/winlogbeat[Winlogbeat] + +{beats} can send data directly to {es} or via +https://www.elastic.co/products/logstash[{ls}], where you can further process +and enhance the data, before visualizing it in +https://www.elastic.co/products/logstash[{kib}]. image:./images/beats-platform.png[Beats Platform] -If you have a specific use case to solve, we encourage you to create your own -Beat. We created an infrastructure to simplify the process. The _libbeat_ -library, written entirely in Golang, offers the API that all Beats use to -ship data to Elasticsearch, configure the input options, implement logging, -and more. +To get started, see <>. + +[float] +=== Need to capture other kinds of data? + +If you have a specific use case to solve, we encourage you to create a +<>. We've created an infrastructure to simplify +the process. The _libbeat_ library, written entirely in Golang, offers the API +that all Beats use to ship data to Elasticsearch, configure the input options, +implement logging, and more. To learn how to create a new Beat, see the +{beatsdevguide}/index.html[Beats Developer Guide]. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/processors-using.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/processors-using.asciidoc index 5e4c4333..66a927a6 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/processors-using.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/processors-using.asciidoc @@ -1,25 +1,24 @@ [[defining-processors]] === Define processors -You define processors in the +{beatname_lc}.yml+ file to filter and enhance the -data before sending events to the configured output. - -To define a processor, you specify the processor name, an optional condition, -and a set of parameters: +You can use processors to filter and enhance data before sending it to the +configured output. To define a processor, you specify the processor name, an +optional condition, and a set of parameters: [source,yaml] ------ processors: - - : - - when: - - - : - - when: - -... +- : + when: + + +- : + when: + + + +... ------ Where: @@ -27,11 +26,134 @@ Where: * `` specifies a <> that performs some kind of action, such as selecting the fields that are exported or adding metadata to the event. -* `` specifies an optional <>. If the +* `` specifies an optional <>. If the condition is present, then the action is executed only if the condition is fulfilled. If no condition is passed, then the action is always executed. * `` is the list of parameters to pass to the processor. + +[[where-valid]] +==== Where are processors valid? + +// TODO: ANY NEW BEATS THAT RE-USE THIS TOPIC NEED TO DEFINE processor-scope. + +ifeval::["{beatname_lc}"=="filebeat"] +:processor-scope: input +endif::[] + +ifeval::["{beatname_lc}"=="auditbeat" or "{beatname_lc}"=="metricbeat"] +:processor-scope: module +endif::[] + +ifeval::["{beatname_lc}"=="packetbeat"] +:processor-scope: protocol +endif::[] + +ifeval::["{beatname_lc}"=="heartbeat"] +:processor-scope: monitor +endif::[] + +ifeval::["{beatname_lc}"=="winlogbeat"] +:processor-scope: event log shipper +endif::[] + +Processors are valid: + +* At the top-level in the configuration. The processor is applied to all data +collected by {beatname_uc}. +* Under a specific {processor-scope}. The processor is applied to the data +collected for that {processor-scope}. For example: ++ +ifeval::["{beatname_lc}"=="filebeat"] +[source,yaml] +------ +- type: + processors: + - : + when: + + +... +------ ++ +Similarly, for {beatname_uc} modules, you can define processors under the +`input` section of the module definition. +endif::[] +ifeval::["{beatname_lc}"=="metricbeat"] +[source,yaml] +---- +- module: + metricsets: [""] + processors: + - : + when: + + +---- +endif::[] +ifeval::["{beatname_lc}"=="auditbeat"] +[source,yaml] +---- +auditbeat.modules: +- module: + processors: + - : + when: + + +---- +endif::[] +ifeval::["{beatname_lc}"=="packetbeat"] +[source,yaml] +---- +packetbeat.protocols: +- type: + processors: + - : + when: + + +---- + +* Under `packetbeat.flows`. The processor is applied to the data in +<>: ++ +[source,yaml] +---- +packetbeat.flows: + processors: + - : + when: + + +---- +endif::[] +ifeval::["{beatname_lc}"=="heartbeat"] +[source,yaml] +---- +heartbeat.monitors: +- type: + processors: + - : + when: + + +---- +endif::[] +ifeval::["{beatname_lc}"=="winlogbeat"] +[source,yaml] +---- +winlogbeat.event_logs: +- name: + processors: + - : + when: + + +---- +endif::[] + + [[processors]] ==== Processors @@ -282,6 +404,7 @@ The following cloud providers are supported: - https://www.qcloud.com/?lang=en[Tencent Cloud] (QCloud) - Alibaba Cloud (ECS) - Azure Virtual Machine +- Openstack Nova The simple configuration below enables the processor. @@ -404,6 +527,23 @@ _Azure Virtual Machine_ } ------------------------------------------------------------------------------- +_Openstack Nova_ + +[source,json] +------------------------------------------------------------------------------- +{ + "meta": { + "cloud": { + "provider": "openstack", + "instance_name": "test-998d932195.mycloud.tld", + "availability_zone": "xxxx-az-c", + "instance_id": "i-00011a84", + "machine_type": "m2.large" + } + } +} +------------------------------------------------------------------------------- + [[add-locale]] === Add the local time zone @@ -579,8 +719,6 @@ section. [[add-kubernetes-metadata]] === Add Kubernetes metadata -beta[] - The `add_kubernetes_metadata` processor annotates each event with relevant metadata based on which Kubernetes pod the event originated from. Each event is annotated with: @@ -598,7 +736,7 @@ Indexers take in a pod's metadata and builds indices based on the pod metadata. For example, the `ip_port` indexer can take a Kubernetes pod and index the pod metadata based on all `pod_ip:container_port` combinations. -Matchers are used to contruct lookup keys for querying indices. For example, +Matchers are used to construct lookup keys for querying indices. For example, when the `fields` matcher takes `["metricset.host"]` as a lookup field, it would construct a lookup key with the value of the field `metricset.host`. @@ -652,8 +790,9 @@ The `add_kubernetes_metadata` processor has the following configuration settings `in_cluster`:: (Optional) Use in cluster settings for Kubernetes client, `true` by default. -`host`:: (Optional) In case `in_cluster` is false, use this host to connect to -Kubernetes API. +`host`:: (Optional) Identify the node where {beatname_lc} is running in case it +cannot be accurately detected, as when running {beatname_lc} in host network +mode. `kube_config`:: (Optional) Use given config file as configuration for Kubernetes client. `default_indexers.enabled`:: (Optional) Enable/Disable default pod indexers, in @@ -664,8 +803,6 @@ case you want to specify your own. [[add-docker-metadata]] === Add Docker metadata -beta[] - The `add_docker_metadata` processor annotates each event with relevant metadata from Docker containers: @@ -737,7 +874,7 @@ processors: It has the following settings: -`netinfo.enabled`:: (Optional) Default false. Include IP adresses and MAC addresses as fields host.ip and host.mac +`netinfo.enabled`:: (Optional) Default false. Include IP addresses and MAC addresses as fields host.ip and host.mac The `add_host_metadata` processor annotates each event with relevant metadata from the host machine. The fields added to the event are looking as following: @@ -755,8 +892,8 @@ The fields added to the event are looking as following: "platform":"darwin", "version":"10.12.6" }, - ip: ["192.168.0.1", "10.0.0.1"], - mac: ["00:25:96:12:34:56", "72:00:06:ff:79:f1"] + "ip": ["192.168.0.1", "10.0.0.1"], + "mac": ["00:25:96:12:34:56", "72:00:06:ff:79:f1"] } } ------------------------------------------------------------------------------- diff --git a/vendor/github.com/elastic/beats/libbeat/docs/queueconfig.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/queueconfig.asciidoc index 421af57a..8531ece9 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/queueconfig.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/queueconfig.asciidoc @@ -81,6 +81,8 @@ The default value is 1s. [[configuration-internal-queue-spool]] === Configure the file spool queue +beta[] + The file spool queue stores all events in an on disk ring buffer. The spool has a write buffer, which new events are written to. Events written to the spool are forwarded to the outputs, only after the write buffer has been diff --git a/vendor/github.com/elastic/beats/libbeat/docs/release-notes/5.0.0.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/release-notes/5.0.0.asciidoc index 68169824..60407ffa 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/release-notes/5.0.0.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/release-notes/5.0.0.asciidoc @@ -15,7 +15,7 @@ The list below covers changes between 1.x to 5.0.0 releases. - Remove deprecated `host` option from elasticsearch, logstash and redis outputs. {pull}1474[1474] - All configuration settings under `shipper:` are moved to be top level configuration settings. I.e. `shipper.name:` becomes `name:` in the configuration file. {pull}1570[1570] -- The `topology_expire` option of the Elasticserach output was removed. {pull}1907[1907] +- The `topology_expire` option of the Elasticsearch output was removed. {pull}1907[1907] - The Elasticsearch template is now loaded by default. {pull}1993[1993] - The Redis output `index` setting is renamed to `key`. `index` still works but it's deprecated. {pull}2077[2077] - The undocumented file output `index` setting was removed. Use `filename` instead. {pull}2077[2077] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/release-notes/6.0.0.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/release-notes/6.0.0.asciidoc index 8f1e26ac..dd4691e9 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/release-notes/6.0.0.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/release-notes/6.0.0.asciidoc @@ -108,7 +108,7 @@ upgrade. - Fixed `cmd_set` and `cmd_get` being mixed in the Memcache module. {pull}5189[5189] - Added missing mongodb configuration file to the `modules.d` folder. {pull}4870[4870] - Fix wrong MySQL CRUD queries timelion visualization {pull}4857[4857] -- Add new metrics to CPU metricsset {pull}4969[4969] +- Add new metrics to CPU metricset {pull}4969[4969] - Fix issue affecting Windows services timing out at startup. {pull}4491[4491] - Fix incorrect docker.diskio.total metric calculation. {pull}4507[4507] - Vsphere module: used memory field corrected. {issue}4461[4461] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/release.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/release.asciidoc index 34a2e7d9..8fe9bceb 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/release.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/release.asciidoc @@ -8,6 +8,9 @@ This section summarizes the changes in each release. Also read <> for more detail about changes that affect upgrade. +* <> +* <> +* <> * <> * <> * <> diff --git a/vendor/github.com/elastic/beats/libbeat/docs/security/securing-beats.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/security/securing-beats.asciidoc index 4766bb67..35f0343c 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/security/securing-beats.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/security/securing-beats.asciidoc @@ -53,17 +53,26 @@ After securing {beatname_uc}, make sure your users have the roles (or associated privileges) required to use these {beatname_uc} features. You must create the ++{beat_default_index_prefix}_writer++ and ++{beat_default_index_prefix}_reader++ roles (see <> and -<>). The `machine_learning_admin` and `kibana_user` roles are -{xpack-ref}/built-in-roles.html[built-in]. +<>). +ifdef::has_ml_jobs[] +The `machine_learning_admin` and `kibana_user` roles are {xpack-ref}/built-in-roles.html[built-in]. +endif::[] +ifndef::has_ml_jobs[] +The `kibana_user` role is {xpack-ref}/built-in-roles.html[built-in]. +endif::[] [options="header"] |======= |Feature | Role |Send data to a secured cluster | ++{beat_default_index_prefix}_writer++ +ifeval::["{beatname_lc}"=="filebeat"] |Run Filebeat modules | ++{beat_default_index_prefix}_writer++ +endif::[] |Load index templates | ++{beat_default_index_prefix}_writer++ and `kibana_user` |Load {beatname_uc} dashboards into {kib} | ++{beat_default_index_prefix}_writer++ and `kibana_user` +ifdef::has_ml_jobs[] |Load machine learning jobs | `machine_learning_admin` +endif::[] |Read indices created by {beatname_uc} | ++{beat_default_index_prefix}_reader++ |View {beatname_uc} dashboards in {kib} | `kibana_user` |======= diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-autodiscover.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-autodiscover.asciidoc index f78b9eda..2ddd274e 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-autodiscover.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-autodiscover.asciidoc @@ -15,6 +15,9 @@ Autodiscover providers work by watching for events on the system and translating events with a common format. When you configure the provider, you can use fields from the autodiscover event to set conditions that, when met, launch specific configurations. +On start, {beatname_uc} will scan existing containers and launch the proper configs for them. Then it will watch for new +start/stop events. This ensures you don't need to worry about state, but only define your desired configs. + [float] ===== Docker @@ -62,6 +65,51 @@ For example, with the example event, "`${data.port}`" resolves to `6379`. include::../../{beatname_lc}/docs/autodiscover-docker-config.asciidoc[] + +ifeval::["{beatname_lc}"=="filebeat"] +[WARNING] +======================================= +When using autodiscover, you have to be careful when defining config templates, especially if they are +reading from places holding information for several containers. For instance, under this file structure: + +`/mnt/logs//*.log` + +You can define a config template like this: + +**Wrong settings**: + +[source,yaml] +------------------------------------------------------------------------------------- +autodiscover.providers: + - type: docker + templates: + - condition.contains: + docker.container.image: nginx + config: + - type: log + paths: + - "/mnt/logs/*/*.log" +------------------------------------------------------------------------------------- + +That would read all the files under the given path several times (one per nginx container). What you really +want is to scope your template to the container that matched the autodiscover condition. Good settings: + +[source,yaml] +------------------------------------------------------------------------------------- +autodiscover.providers: + - type: docker + templates: + - condition.contains: + docker.container.image: nginx + config: + - type: log + paths: + - "/mnt/logs/${data.docker.container.id}/*.log" +------------------------------------------------------------------------------------- + +======================================= +endif::[] + [float] ===== Kubernetes @@ -112,6 +160,16 @@ For example: The configuration of templates and conditions is similar to that of the Docker provider. Configuration templates can contain variables from the autodiscover event. They can be accessed under data namespace. +The `kubernetes` autodiscover provider has the following configuration settings: + +`in_cluster`:: (Optional) Use in cluster settings for Kubernetes client, `true` + by default. +`host`:: (Optional) Identify the node where {beatname_lc} is running in case it + cannot be accurately detected, as when running {beatname_lc} in host network + mode. +`kube_config`:: (Optional) Use given config file as configuration for Kubernetes + client. + include::../../{beatname_lc}/docs/autodiscover-kubernetes-config.asciidoc[] [float] @@ -127,7 +185,7 @@ In any case, this feature is controlled with two properties: * `discoveryEnabled`, to enable the feature * `discoveryAgentUrl`, if set, this is the URL announced by the agent when - being discovered, setting this parameter implicitely enables the feature + being discovered, setting this parameter implicitly enables the feature There are multiple ways of setting these properties, and they can vary from application to application, please refer to the documentation of your @@ -154,14 +212,14 @@ The configuration of this provider consists in a set of network interfaces, as well as a set of templates as in other providers. The network interfaces will be the ones used for discovery probes, they have these settings: - * `name`: the name of the interface (e.g. `br0`), it can contain a wildcard - at as suffix to apply the same settings to multiple network interfaces of - the same type (e.g. `br*`). - * `interval`: time between probes (defaults to 10s) - * `grace_period`: time since the last reply to consider a instance stopped - (defaults to 30s) - * `probe_timeout`: max time to wait for responses since a probe is sent - (defaults to 1s) +`name`:: the name of the interface (e.g. `br0`), it can contain a wildcard + as suffix to apply the same settings to multiple network interfaces of + the same type (e.g. `br*`). +`interval`:: time between probes (defaults to 10s) + `grace_period`:: time since the last reply to consider an instance stopped + (defaults to 30s) +`probe_timeout`:: max time to wait for responses since a probe is sent + (defaults to 1s) include::../../{beatname_lc}/docs/autodiscover-jolokia-config.asciidoc[] @@ -206,11 +264,11 @@ metricbeat.autodiscover: - type: kubernetes templates: ... - appenders: - - type: config - condition.equals: - kubernetes.labels.app: "prometheus" - config: - fields: - type: monitoring + appenders: + - type: config + condition.equals: + kubernetes.namespace: "prometheus" + config: + fields: + type: monitoring ------------------------------------------------------------------------------------- diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-docker.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-docker.asciidoc index 0460dd4a..5cd6b217 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-docker.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-docker.asciidoc @@ -2,7 +2,23 @@ === Running {beatname_uc} on Docker Docker images for {beatname_uc} are available from the Elastic Docker -registry. You can retrieve an image with a `docker pull` command. +registry. The base image is https://hub.docker.com/_/centos/[centos:7]. + +A list of all published Docker images and tags is available at +https://www.docker.elastic.co[www.docker.elastic.co]. The source code is in +{dockergithub}[GitHub]. + +These images are free to use under the Elastic license. They contain open source +and free commercial features and access to paid commercial features. +{xpack-ref}/license-management.html[Start a 30-day trial] to try out all of the +paid commercial features. See the +https://www.elastic.co/subscriptions[Subscriptions] page for information about +Elastic license levels. + +==== Pulling the image + +Obtaining Beats for Docker is as simple as issuing a +docker pull+ command +against the Elastic Docker registry. ifeval::["{release-state}"=="unreleased"] @@ -18,30 +34,30 @@ ifeval::["{release-state}"!="unreleased"] docker pull {dockerimage} ------------------------------------------------ -endif::[] +Alternatively, you can download other Docker images that contain only features +available under the Apache 2.0 license. To download the images, go to +https://www.docker.elastic.co[www.docker.elastic.co]. -The base image is https://hub.docker.com/_/centos/[centos:7] and the source -code can be found on -{dockergithub}[GitHub]. +endif::[] [float] ==== Configure {beatname_uc} on Docker The Docker image provides several methods for configuring {beatname_uc}. The -conventional approach is to provide a configuration file via a bind-mounted -volume, but it's also possible to create a custom image with your +conventional approach is to provide a configuration file via a bind mount, but +it's also possible to create a custom image with your configuration included. [float] ===== Bind-mounted configuration -One way to configure {beatname_uc} on Docker is to provide +{beatname_lc}.yml+ via bind-mounting. -With +docker run+, the bind-mount can be specified like this: +One way to configure {beatname_uc} on Docker is to provide +{beatname_lc}.yml+ via a bind mount. +With +docker run+, the bind mount can be specified like this: ["source", "sh", subs="attributes"] -------------------------------------------- docker run \ - -v ~/{beatname_lc}.yml:/usr/share/{beatname_lc}/{beatname_lc}.yml \ + --mount type=bind,source="$(pwd)"/{beatname_lc}.yml,target=/usr/share/{beatname_lc}/{beatname_lc}.yml \ {dockerimage} -------------------------------------------- @@ -58,7 +74,7 @@ ifeval::["{beatname_lc}"!="auditbeat"] FROM {dockerimage} COPY {beatname_lc}.yml /usr/share/{beatname_lc}/{beatname_lc}.yml USER root -RUN chown {beatname_lc} /usr/share/{beatname_lc}/{beatname_lc}.yml +RUN chown root:{beatname_lc} /usr/share/{beatname_lc}/{beatname_lc}.yml USER {beatname_lc} -------------------------------------------- diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-download-and-install.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-download-and-install.asciidoc index aa253bd2..fe719f64 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-download-and-install.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-download-and-install.asciidoc @@ -1,4 +1,7 @@ +*Before you begin*: If you haven't installed the {stack}, do that now. See +{stack-gs}/get-started-elastic-stack.html[Getting started with the {stack}]. + To download and install {beatname_uc}, use the commands that work with your system (<> for Debian/Ubuntu, <> for Redhat/Centos/Fedora, <> for OS X, <> for any Docker platform, and <> for diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-faq.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-faq.asciidoc index dde20cc2..c1fcf22e 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-faq.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-faq.asciidoc @@ -50,9 +50,10 @@ telnet 5044 ---------------------------------------------------------------------- * Verify that the config file for {beatname_uc} specifies the correct port where Logstash is running. * Make sure that the Elasticsearch output is commented out in the config file and the Logstash output is uncommented. -* Confirm that the most recent Beats input plugin for Logstash is installed and configured. Note that Beats will not connect -to the Lumberjack input plugin. See -{libbeat}/logstash-installation.html#logstash-input-update[Updating the Beats Input Plugin for Logstash]. +* Confirm that the most recent {logstash-ref}/plugins-inputs-beats.html[Beats +input plugin for Logstash] is installed and configured. Note that Beats will not +connect to the Lumberjack input plugin. To learn how to install and update +plugins, see {logstash-ref}/working-with-plugins.html[Working with plugins]. [float] [[metadata-missing]] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-getting-started-intro.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-getting-started-intro.asciidoc new file mode 100644 index 00000000..84c6f07f --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-getting-started-intro.asciidoc @@ -0,0 +1,22 @@ + +To get started with your own {beatname_uc} setup, install and configure these +related products: + +* {es} for storing and indexing the data. +* {kib} for the UI. +* {ls} (optional) for parsing and enhancing the data. + +See {stack-gs}/get-started-elastic-stack.html[Getting started with the {stack}] +for more information. + +[TIP] +============== +You can skip having to install {es} and {kib} by using our +https://www.elastic.co/cloud/elasticsearch-service[hosted {es} Service] on +Elastic Cloud. The {es} Service is available on both AWS and GCP. +https://www.elastic.co/cloud/elasticsearch-service/signup[Try out the {es} +Service for free]. +============== + +After installing the {stack}, read the following topics to learn how to +install, configure, and run {beatname_uc}: \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-kibana-config.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-kibana-config.asciidoc index d373a5bc..51ba2f0c 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-kibana-config.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-kibana-config.asciidoc @@ -11,6 +11,11 @@ [[setup-kibana-endpoint]] == Set up the Kibana endpoint +ifdef::deprecate_dashboard_loading[] + +deprecated[{deprecate_dashboard_loading}] + +endif::[] ifeval::["{beatname_lc}" == "apm-server"] The Kibana dashboards are loaded into Kibana via the Kibana API. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-logstash-config.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-logstash-config.asciidoc index 4b3c176a..d5a16ec6 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-logstash-config.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-logstash-config.asciidoc @@ -11,15 +11,19 @@ [IMPORTANT] .Prerequisite -To use Logstash as an output, you must -{libbeat}/logstash-installation.html#logstash-setup[install and configure] the Beats input -plugin for Logstash. +To send events to {ls}, you also need to create a {ls} configuration pipeline +that listens for incoming Beats connections and indexes the received events into +{es}. For more information, see the section about +{stack-gs}/get-started-elastic-stack.html#logstash-setup[configuring {ls}] in +the {stack} getting started tutorial. Also see the documentation for the +{logstash-ref}/plugins-inputs-beats.html[{beats} input] and +{logstash-ref}/plugins-outputs-elasticsearch.html[{es} output] plugins. -If you want to use Logstash to perform additional processing on the data collected by -{beatname_uc}, you need to configure {beatname_uc} to use Logstash. +If you want to use {ls} to perform additional processing on the data collected by +{beatname_uc}, you need to configure {beatname_uc} to use {ls}. To do this, you edit the {beatname_uc} configuration file to disable the Elasticsearch -output by commenting it out and enable the Logstash output by uncommenting the +output by commenting it out and enable the {ls} output by uncommenting the logstash section: [source,yaml] @@ -29,7 +33,7 @@ output.logstash: hosts: ["127.0.0.1:5044"] ------------------------------------------------------------------------------ -The `hosts` option specifies the Logstash server and the port (`5044`) where Logstash is configured to listen for incoming +The `hosts` option specifies the {ls} server and the port (`5044`) where {ls} is configured to listen for incoming Beats connections. For this configuration, you must <> @@ -48,5 +52,3 @@ binary is installed, and run {beatname_uc} in the foreground with the following options specified: +.\winlogbeat.exe test config -c .\winlogbeat.yml -e+. endif::win[] - - diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-securing-beat.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-securing-beat.asciidoc index 58b0f037..379a050b 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-securing-beat.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-securing-beat.asciidoc @@ -13,6 +13,10 @@ the Elastic stack: * <> * <> +ifdef::beat-specific-security[] +include::{beat-specific-security}[] +endif::[] + //sets block macro for https.asciidoc included in next section -- diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-shutdown.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-shutdown.asciidoc new file mode 100644 index 00000000..bbe14b01 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-shutdown.asciidoc @@ -0,0 +1,24 @@ +////////////////////////////////////////////////////////////////////////// +//// This content is shared by all Elastic Beats. Make sure you keep the +//// descriptions here generic enough to work for all Beats that include +//// this file. When using cross references, make sure that the cross +//// references resolve correctly for any files that include this one. +//// Use the appropriate variables defined in the index.asciidoc file to +//// resolve Beat names: beatname_uc and beatname_lc. +//// Use the following include to pull this content into a doc file: +//// include::../../libbeat/docs/shared-shutdown.asciidoc[] +////////////////////////////////////////////////////////////////////////// + +[[shutdown]] +=== Stopping {beatname_uc} + +An orderly shutdown of {beatname_uc} ensures that it has a chance to clean up +and close outstanding resources. You can help ensure an orderly shutdown by +stopping {beatname_uc} properly. + +If you’re running {beatname_uc} as a service, you can stop it via the service +management functionality provided by your installation. + +If you’re running {beatname_uc} directly in the console, you can stop it by +entering *Ctrl-C*. Alternatively, send SIGTERM to the {beatname_uc} process on a +POSIX system. \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-config.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-config.asciidoc index b61c9c12..6034a924 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-config.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-config.asciidoc @@ -82,10 +82,10 @@ might fail if the server requests client authentication. If the SSL server does require client authentication, the certificate will be loaded, but not requested or used by the server. -When this option is configured, the <> option is also required. +When this option is configured, the <> option is also required. [float] -[[certificate_key]] +[[key]] ==== `key: "/etc/pki/client/cert.key"` The client certificate key used for client authentication. This option is required if <> is specified. @@ -200,7 +200,7 @@ are `none`, `optional`, and `required`. The default value is required. NOTE: This option is only valid with the TCP or the Syslog input. -* `none` - Disables client authentification. +* `none` - Disables client authentication. * `optional` - When a client certificate is given, the server will verify it. * `required` - Will require clients to provide a valid certificate. endif::[] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-logstash-config.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-logstash-config.asciidoc index 0a1f9506..dd9c9e85 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-logstash-config.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-ssl-logstash-config.asciidoc @@ -51,7 +51,7 @@ For more information about these configuration options, see < * `ssl_certificate` and `ssl_key`: Specify the certificate and key that Logstash uses to authenticate with the client. * `ssl_verify_mode`: Specifies whether the Logstash server verifies the client certificate against the CA. You need to specify either `peer` or `force_peer` to make the server ask for the certificate and validate it. If you -specify `force_peer`, and {beatname_uc} doesn't provide a certificate, the Logstash connection will be closed. +specify `force_peer`, and {beatname_uc} doesn't provide a certificate, the Logstash connection will be closed. If you choose not to use {elasticsearch}/certutil.html[certutil], the certificates that you obtain must allow for both `clientAuth` and `serverAuth` if the extended key usage extension is present. + For example: + diff --git a/vendor/github.com/elastic/beats/libbeat/docs/shared-template-load.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/shared-template-load.asciidoc index 88aeec5c..6f4f1c7d 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/shared-template-load.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/shared-template-load.asciidoc @@ -33,7 +33,7 @@ You can also set options to change the name of the index and index template. ifndef::only-elasticsearch[] NOTE: A connection to Elasticsearch is required to load the index template. If -the output is Logstash, you must +the output is not Elasticsearch, you must <>. endif::[] @@ -46,7 +46,7 @@ endif::[] ifndef::only-elasticsearch[] * <> -* <> - required for Logstash output +* <> - required for non-Elasticsearch output endif::[] [[load-template-auto]] @@ -94,6 +94,8 @@ that you specify should include the root name of the index plus version and date information. You also need to configure the `setup.template.name` and `setup.template.pattern` options to match the new name. For example: + +ifndef::deprecate_dashboard_loading[] + ["source","sh",subs="attributes,callouts"] ----- output.elasticsearch.index: "customname-%{[beat.version]}-%{+yyyy.MM.dd}" @@ -101,11 +103,28 @@ setup.template.name: "customname" setup.template.pattern: "customname-*" setup.dashboards.index: "customname-*" <1> ----- + <1> If you plan to <>, also set this option to overwrite the index name defined in the dashboards and index pattern. +endif::[] + +ifdef::deprecate_dashboard_loading[] + +["source","sh",subs="attributes,callouts"] +----- +output.elasticsearch.index: "customname-%{[beat.version]}-%{+yyyy.MM.dd}" +setup.template.name: "customname" +setup.template.pattern: "customname-*" +----- ++ +Also ensure to change the index name accordingly in the Kibana dashboards, +when loading via the Kibana UI. + +endif::[] + See <> for the full list of configuration options. @@ -115,8 +134,8 @@ See <> for the full list of configuration options. To load the template manually, run the <> command. A connection to Elasticsearch is required. ifndef::only-elasticsearch[] -If Logstash output is enabled, you need -to temporarily disable the Logstash output and enable Elasticsearch by using the +If another output is enabled, you need +to temporarily disable that output and enable Elasticsearch by using the `-E` option. The examples here assume that Logstash output is enabled. You can omit the `-E` flags if Elasticsearch output is already enabled. endif::[] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/step-configure-credentials.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/step-configure-credentials.asciidoc index e00db3cf..6da1e51e 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/step-configure-credentials.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/step-configure-credentials.asciidoc @@ -1,9 +1,20 @@ -. If you've secured Elasticsearch and Kibana, you need to specify credentials -in the config file before you run the commands that set up and start -{beatname_uc}. For example: +. If {es} and {kib} are secured, set credentials in the +{beatname_lc}.yml+ config +file before you run the commands that set up and start {beatname_uc}. + +* If you're running our +https://www.elastic.co/cloud/elasticsearch-service[hosted {es} Service] +on Elastic Cloud, specify your <> credentials. +For example: ++ +["source","yaml",subs="attributes"] +---------------------------------------------------------------------- +cloud.auth: "elastic:{pwd}" +---------------------------------------------------------------------- + +* If you're running {es} on your own hardware, specify your {es} and {kib} +credentials: + --- -[source,yaml] +["source","yaml",subs="attributes"] ---- output.elasticsearch: hosts: ["myEShost:9200"] @@ -16,13 +27,11 @@ setup.kibana: ---- <1> This examples shows a hard-coded password, but you should store sensitive values in the <>. -<2> The `username` and `password` settings for Kibana are optional. If you don't -specify credentials for Kibana, {beatname_uc} uses the `username` and `password` -specified for the Elasticsearch output. -<3> If you are planning to <>, the user must have the `kibana_user` +<2> The `username` and `password` settings for {kib} are optional. If you don't +specify credentials for {kib}, {beatname_uc} uses the `username` and `password` +specified for the {es} output. +<3> If you are planning to <>, +the user must have the `kibana_user` {xpack-ref}/built-in-roles.html[built-in role] or equivalent privileges. - --- + For more information, see <>. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/step-configure-kibana-endpoint.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/step-configure-kibana-endpoint.asciidoc index 97cc82d1..500b8077 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/step-configure-kibana-endpoint.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/step-configure-kibana-endpoint.asciidoc @@ -1,17 +1,12 @@ -. If you plan to use the sample Kibana dashboards provided with {beatname_uc}, -configure the Kibana endpoint: +. If you plan to use the sample {kib} dashboards provided with {beatname_uc}, +configure the {kib} endpoint. You can skip this step if {kib} is running on +the same host as {es}. + [source,yaml] ---------------------------------------------------------------------- setup.kibana: - host: "localhost:5601" + host: "mykibanahost:5601" <1> ---------------------------------------------------------------------- -+ --- -Where `host` is the hostname and port of the machine where Kibana is running, -for example, `localhost:5601`. - -NOTE: If you specify a path after the port number, you need to include -the scheme and port: `http://localhost:5601/path`. - --- +<1> The hostname and port of the machine where {kib} is running, +for example, `mykibanahost:5601`. If you specify a path after the port number, +include the scheme and port: `http://mykibanahost:5601/path`. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/step-configure-output.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/step-configure-output.asciidoc new file mode 100644 index 00000000..a9dfb316 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/docs/step-configure-output.asciidoc @@ -0,0 +1,40 @@ +ifndef::has_module_steps[] +. Configure the output. {beatname_uc} supports a variety of +<>, but typically you'll either send events directly +to {es}, or to {ls} for additional processing. ++ +To send output directly to {es} (without using {ls}), set the location of the +{es} installation: ++ +-- +endif::[] +* If you're running our +https://www.elastic.co/cloud/elasticsearch-service[hosted {es} Service] +on Elastic Cloud, specify your <>. For example: ++ +[source,yaml] +---------------------------------------------------------------------- +cloud.id: "staging:dXMtZWFzdC0xLmF3cy5mb3VuZC5pbyRjZWM2ZjI2MWE3NGJmMjRjZTMzYmI4ODExYjg0Mjk0ZiRjNmMyY2E2ZDA0MjI0OWFmMGNjN2Q3YTllOTYyNTc0Mw==" +---------------------------------------------------------------------- + +* If you're running {es} on your own hardware, set the host and port where +{beatname_uc} can find the {es} installation. For example: ++ +[source,yaml] +---------------------------------------------------------------------- +output.elasticsearch: + hosts: ["myEShost:9200"] +---------------------------------------------------------------------- +ifndef::has_module_steps[] +-- ++ +ifeval::["{beatname_lc}"!="filebeat" and "{beatname_lc}"!="winlogbeat"] +To send output to {ls}, +<> instead. For all other +outputs, see <>. +endif::[] +ifeval::[("{beatname_lc}"=="filebeat") or ("{beatname_lc}"=="winlogbeat")] +To send output to {ls}, make sure you configure the Logstash output in +<>. For all other outputs, see <>. +endif::[] +endif::[] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/step-look-at-config.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/step-look-at-config.asciidoc index 66d9bd9d..1b49599d 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/step-look-at-config.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/step-look-at-config.asciidoc @@ -1,2 +1,2 @@ -Before starting {beatname_lc}, you should look at the configuration options in the +Before starting {beatname_uc}, you should look at the configuration options in the configuration file. For more information about these options, see <>. diff --git a/vendor/github.com/elastic/beats/libbeat/docs/template-config.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/template-config.asciidoc index 354e90f1..0ab1c356 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/template-config.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/template-config.asciidoc @@ -82,14 +82,44 @@ setup.template.overwrite: false setup.template.settings: _source.enabled: false ---------------------------------------------------------------------- -ifeval::["{beatname_lc}"!="apm-server"] -*`setup.template.append_fields`*:: A list of of fields to be added to the template and Kibana index pattern. experimental[] - -NOTE: With append_fields only new fields can be added an no existing one overwritten or changed. This is especially useful if data is collected through the http/json metricset where the data structure is not known in advance. Changing the config of append_fields means the template has to be overwritten and only applies to new indices. If there are 2 Beats with different append_fields configs the last one writing the template will win. Any changes will also have an affect on the Kibana Index pattern. - -*`setup.template.json.enabled`*:: Set to true to load a json based template file. Specify the path to your Elasticsearch -index template file and set the name of the template. experimental[] +ifeval::["{beatname_lc}"!="apm-server"] +*`setup.template.append_fields`* experimental[]:: A list of fields to be added +to the template and {kib} index pattern. This setting adds new fields. It does +not overwrite or change existing fields. ++ +This setting is useful when your data contains fields that {beatname_uc} doesn't +know about in advance. +ifeval::["{beatname_lc}"=="metricbeat"] +For example, you might want to append fields to the template when you're using +a metricset, such as the <>, and the full data +structure is not known in advance. +endif::[] ++ +If `append_fields` is specified along with `overwrite: true`, {beatname_uc} +overwrites the existing template and applies the new template when creating new +indices. Existing indices are not affected. If you're running multiple +instances of {beatname_uc} with different `append_fields` settings, the last one +writing the template takes precedence. ++ +Any changes to this setting also affect the {kib} index pattern. ++ +Example config: ++ +[source,yaml] +---- +setup.template.overwrite: true +setup.template.append_fields: +- name: test.name + type: keyword +- name: test.hostname + type: long +---- + +*`setup.template.json.enabled`*:: Set to `true` to load a +JSON-based template file. Specify the path to your {es} index template file and +set the name of the template. ++ ["source","yaml",subs="attributes"] ---------------------------------------------------------------------- setup.template.json.enabled: true @@ -97,6 +127,7 @@ setup.template.json.path: "template.json" setup.template.json.name: "template-name ---------------------------------------------------------------------- -NOTE: If the JSON template is used, the fields.yml is skipped for the template generation. +NOTE: If the JSON template is used, the `fields.yml` is skipped for the template +generation. endif::[] diff --git a/vendor/github.com/elastic/beats/libbeat/docs/upgrading.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/upgrading.asciidoc index ffe67612..3fa75bdc 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/upgrading.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/upgrading.asciidoc @@ -33,7 +33,7 @@ changes>> doc. // TODO: link to the stack upgrade docs // -// If you are planning an upgrade of the full stack (Elasticsearch, Kibama, or +// If you are planning an upgrade of the full stack (Elasticsearch, Kibana, or // Logstash, in addition to Beats), please read the stack upgrade guide. We recommend that you fully upgrade Elasticsearch and Kibana to version 6.0 diff --git a/vendor/github.com/elastic/beats/libbeat/docs/version.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/version.asciidoc index dd9b0bd5..f58bcdf6 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/version.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/version.asciidoc @@ -1,8 +1,8 @@ -:stack-version: 7.0.0-alpha1 -:doc-branch: master -:go-version: 1.10.2 -:release-state: unreleased +:stack-version: 6.4.0 +:doc-branch: 6.4 +:go-version: 1.10.3 +:release-state: released :python: 2.7.9 :docker: 1.12 :docker-compose: 1.11 -:branch: master +:branch: 6.4 diff --git a/vendor/github.com/elastic/beats/libbeat/docs/yaml.asciidoc b/vendor/github.com/elastic/beats/libbeat/docs/yaml.asciidoc index 5d535d9d..1266115b 100644 --- a/vendor/github.com/elastic/beats/libbeat/docs/yaml.asciidoc +++ b/vendor/github.com/elastic/beats/libbeat/docs/yaml.asciidoc @@ -43,13 +43,14 @@ simply uncomment the line and change the values. You can test your configuration file to verify that the structure is valid. Simply change to the directory where the binary is installed, and run -the Beat in the foreground with the `-configtest` flag specified. For example: +the Beat in the foreground with the `test config` command specified. For +example: ifdef::allplatforms[] ["source","shell",subs="attributes"] ---------------------------------------------------------------------- -{beatname_lc} -c {beatname_lc}.yml -configtest +{beatname_lc} test config -c {beatname_lc}.yml ---------------------------------------------------------------------- endif::allplatforms[] @@ -58,7 +59,7 @@ ifdef::win[] ["source","shell",subs="attributes"] ---------------------------------------------------------------------- -.\winlogbeat.exe -c .\winlogbeat.yml -configtest -e +.\winlogbeat.exe test config -c .\winlogbeat.yml -e ---------------------------------------------------------------------- endif::win[] diff --git a/vendor/github.com/elastic/beats/libbeat/feature/bundle.go b/vendor/github.com/elastic/beats/libbeat/feature/bundle.go new file mode 100644 index 00000000..fb85e43a --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/feature/bundle.go @@ -0,0 +1,62 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 feature + +// Bundleable merges featurable and bundle interface together. +type bundleable interface { + Features() []Featurable +} + +// Bundle defines a list of features available in the current beat. +type Bundle struct { + features []Featurable +} + +// NewBundle creates a new Bundle of feature to be registered. +func NewBundle(features ...Featurable) *Bundle { + return &Bundle{features: features} +} + +// Filter creates a new bundle with only the feature matching the requested stability. +func (b *Bundle) Filter(stabilities ...Stability) *Bundle { + var filtered []Featurable + + for _, feature := range b.features { + for _, stability := range stabilities { + if feature.Stability() == stability { + filtered = append(filtered, feature) + break + } + } + } + return NewBundle(filtered...) +} + +// Features returns the interface features slice so +func (b *Bundle) Features() []Featurable { + return b.features +} + +// MustBundle takes existing bundle or features and create a new Bundle with all the merged Features. +func MustBundle(bundle ...bundleable) *Bundle { + var merged []Featurable + for _, feature := range bundle { + merged = append(merged, feature.Features()...) + } + return NewBundle(merged...) +} diff --git a/vendor/github.com/elastic/beats/libbeat/feature/feature.go b/vendor/github.com/elastic/beats/libbeat/feature/feature.go new file mode 100644 index 00000000..5dc13c0d --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/feature/feature.go @@ -0,0 +1,120 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 feature + +import ( + "fmt" +) + +// Registry is the global plugin registry, this variable is meant to be temporary to move all the +// internal factory to receive a context that include the current beat registry. +var Registry = newRegistry() + +// Featurable implements the description of a feature. +type Featurable interface { + bundleable + + // Namespace is the kind of plugin or functionality we want to expose as a feature. + // Examples: Autodiscover's provider, processors, outputs. + Namespace() string + + // Name is the name of the feature, the name must unique by namespace and be a description of the + // actual functionality, it is usually the name of the package. + // Examples: dissect, elasticsearch, redis + Name() string + + // Factory returns the function used to create an instance of the Feature, the signature + // of the method is type checked by the 'FindFactory' of each namespace. + Factory() interface{} + + // Stability is the stability of the Feature, this allow the user to filter embedded functionality + // by their maturity at runtime. + // Example: Beta, Experimental, Stable or Undefined. + Stability() Stability + + String() string +} + +// Feature contains the information for a specific feature +type Feature struct { + namespace string + name string + factory interface{} + stability Stability +} + +// Namespace return the namespace of the feature. +func (f *Feature) Namespace() string { + return f.namespace +} + +// Name returns the name of the feature. +func (f *Feature) Name() string { + return f.name +} + +// Factory returns the factory for the feature. +func (f *Feature) Factory() interface{} { + return f.factory +} + +// Stability returns the stability level of the feature, current: stable, beta, experimental. +func (f *Feature) Stability() Stability { + return f.stability +} + +// Features return the current feature as a slice to be compatible with Bundle merging and filtering. +func (f *Feature) Features() []Featurable { + return []Featurable{f} +} + +// String return the debug information +func (f *Feature) String() string { + return fmt.Sprintf("%s/%s (stability: %s)", f.namespace, f.name, f.stability) +} + +// New returns a new Feature. +func New(namespace, name string, factory interface{}, stability Stability) *Feature { + return &Feature{ + namespace: namespace, + name: name, + factory: factory, + stability: stability, + } +} + +// RegisterBundle registers a bundle of features. +func RegisterBundle(bundle *Bundle) error { + for _, f := range bundle.Features() { + Registry.Register(f) + } + return nil +} + +// Register register a new feature on the global registry. +func Register(feature Featurable) error { + return Registry.Register(feature) +} + +// MustRegister register a new Feature on the global registry and panic on error. +func MustRegister(feature Featurable) { + err := Register(feature) + if err != nil { + panic(err) + } +} diff --git a/vendor/github.com/elastic/beats/libbeat/feature/registry.go b/vendor/github.com/elastic/beats/libbeat/feature/registry.go new file mode 100644 index 00000000..905f0f55 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/feature/registry.go @@ -0,0 +1,189 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 feature + +import ( + "fmt" + "reflect" + "strings" + "sync" + + "github.com/elastic/beats/libbeat/logp" +) + +type mapper map[string]map[string]Featurable + +// Registry implements a global registry for any kind of feature in beats. +// feature are grouped by namespace, a namespace is a kind of plugin like outputs, inputs, or queue. +// The feature name must be unique. +type registry struct { + sync.RWMutex + namespaces mapper + log *logp.Logger +} + +// NewRegistry returns a new registry. +func newRegistry() *registry { + return ®istry{ + namespaces: make(mapper), + log: logp.NewLogger("registry"), + } +} + +// Register registers a new feature into a specific namespace, namespace are lazy created. +// Feature name must be unique. +func (r *registry) Register(feature Featurable) error { + r.Lock() + defer r.Unlock() + + ns := normalize(feature.Namespace()) + name := normalize(feature.Name()) + + if feature.Factory() == nil { + return fmt.Errorf("feature '%s' cannot be registered with a nil factory", name) + } + + // Lazy create namespaces + _, found := r.namespaces[ns] + if !found { + r.namespaces[ns] = make(map[string]Featurable) + } + + f, found := r.namespaces[ns][name] + if found { + if featuresEqual(feature, f) { + // Allow both old style and new style of plugin to work together. + r.log.Debugw( + "ignoring, feature '%s' is already registered in the namespace '%s'", + name, + ns, + ) + return nil + } + + return fmt.Errorf( + "could not register new feature '%s' in namespace '%s', feature name must be unique", + name, + ns, + ) + } + + r.log.Debugw( + "registering new feature", + "namespace", + ns, + "name", + name, + ) + + r.namespaces[ns][name] = feature + + return nil +} + +// Unregister removes a feature from the registry. +func (r *registry) Unregister(namespace, name string) error { + r.Lock() + defer r.Unlock() + ns := normalize(namespace) + + v, found := r.namespaces[ns] + if !found { + return fmt.Errorf("unknown namespace named '%s'", ns) + } + + _, found = v[name] + if !found { + return fmt.Errorf("unknown feature '%s' in namespace '%s'", name, ns) + } + + delete(r.namespaces[ns], name) + return nil +} + +// Lookup searches for a Feature by the namespace-name pair. +func (r *registry) Lookup(namespace, name string) (Featurable, error) { + r.RLock() + defer r.RUnlock() + + ns := normalize(namespace) + n := normalize(name) + + v, found := r.namespaces[ns] + if !found { + return nil, fmt.Errorf("unknown namespace named '%s'", ns) + } + + m, found := v[n] + if !found { + return nil, fmt.Errorf("unknown feature '%s' in namespace '%s'", n, ns) + } + + return m, nil +} + +// LookupAll returns all the features for a specific namespace. +func (r *registry) LookupAll(namespace string) ([]Featurable, error) { + r.RLock() + defer r.RUnlock() + + ns := normalize(namespace) + + v, found := r.namespaces[ns] + if !found { + return nil, fmt.Errorf("unknown namespace named '%s'", ns) + } + + list := make([]Featurable, len(v)) + c := 0 + for _, feature := range v { + list[c] = feature + c++ + } + + return list, nil +} + +// Size returns the number of registered features in the registry. +func (r *registry) Size() int { + r.RLock() + defer r.RUnlock() + + c := 0 + for _, namespace := range r.namespaces { + c += len(namespace) + } + + return c +} + +func featuresEqual(f1, f2 Featurable) bool { + // There is no safe way to compare function in go, + // but since the function pointers are global it should be stable. + if f1.Name() == f2.Name() && + f1.Namespace() == f2.Namespace() && + reflect.ValueOf(f1.Factory()).Pointer() == reflect.ValueOf(f2.Factory()).Pointer() { + return true + } + + return false +} + +func normalize(s string) string { + return strings.ToLower(s) +} diff --git a/vendor/github.com/elastic/beats/libbeat/feature/stability.go b/vendor/github.com/elastic/beats/libbeat/feature/stability.go new file mode 100644 index 00000000..47a38322 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/feature/stability.go @@ -0,0 +1,31 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 feature + +//go:generate stringer -type=Stability + +// Stability defines the stability of the feature, this value can be used to filter a bundler. +type Stability int + +// List all the available stability for a feature. +const ( + Undefined Stability = iota + Stable + Beta + Experimental +) diff --git a/vendor/github.com/elastic/beats/libbeat/feature/stability_string.go b/vendor/github.com/elastic/beats/libbeat/feature/stability_string.go new file mode 100644 index 00000000..459700a9 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/feature/stability_string.go @@ -0,0 +1,33 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by "stringer -type=Stability"; DO NOT EDIT. + +package feature + +import "strconv" + +const _Stability_name = "UndefinedStableBetaExperimental" + +var _Stability_index = [...]uint8{0, 9, 15, 19, 31} + +func (i Stability) String() string { + if i < 0 || i >= Stability(len(_Stability_index)-1) { + return "Stability(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Stability_name[_Stability_index[i]:_Stability_index[i+1]] +} diff --git a/vendor/github.com/elastic/beats/libbeat/generator/fields/fields.go b/vendor/github.com/elastic/beats/libbeat/generator/fields/fields.go index af432ff1..02ec5374 100644 --- a/vendor/github.com/elastic/beats/libbeat/generator/fields/fields.go +++ b/vendor/github.com/elastic/beats/libbeat/generator/fields/fields.go @@ -1,13 +1,32 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fields import ( "bufio" - "fmt" + "bytes" "io/ioutil" "os" "path" "path/filepath" "strings" + + "github.com/pkg/errors" ) var ( @@ -30,7 +49,7 @@ func collectBeatFiles(beatPath string, fieldFiles []*YmlFile) ([]*YmlFile, error } files := []*YmlFile{ - &YmlFile{ + { Path: commonFields, Indent: 0, }, @@ -47,33 +66,43 @@ func writeGeneratedFieldsYml(beatsPath string, fieldFiles []*YmlFile) error { } defer f.Close() + data, err := GenerateFieldsYml(fieldFiles) + if err != nil { + return err + } fw := bufio.NewWriter(f) + fw.Write(data) + return fw.Flush() +} + +// GenerateFieldsYml generates a fields.yml based on the given files +func GenerateFieldsYml(fieldFiles []*YmlFile) ([]byte, error) { + buf := bytes.NewBufferString("") for _, p := range fieldFiles { - ff, err := os.Open(p.Path) + file, err := os.Open(p.Path) if err != nil { - return err + return nil, err } - defer ff.Close() + defer file.Close() - fs := bufio.NewScanner(ff) + fs := bufio.NewScanner(file) for fs.Scan() { - err = writeIndentedLine(fw, fs.Text()+"\n", p.Indent) + err = writeIndentedLine(buf, fs.Text()+"\n", p.Indent) if err != nil { - return err + return nil, err } - } if err := fs.Err(); err != nil { - return err + return nil, err } } - return nil + return buf.Bytes(), nil } -func writeIndentedLine(fw *bufio.Writer, l string, indent int) error { - ll := strings.Repeat(" ", indent) + l - fmt.Fprint(fw, ll) - return fw.Flush() +func writeIndentedLine(buf *bytes.Buffer, line string, indent int) error { + newLine := strings.Repeat(" ", indent) + line + _, err := buf.WriteString(newLine) + return err } // Generate collects fields.yml files and concatenates them into one global file. @@ -124,7 +153,7 @@ func createIfNotExists(inPath, outPath string) error { if os.IsNotExist(err) { err := copyFileWithFlag(inPath, outPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC) if err != nil { - fmt.Println("Cannot find _meta/fields.yml") + return err } return nil } @@ -134,16 +163,20 @@ func createIfNotExists(inPath, outPath string) error { func copyFileWithFlag(in, out string, flag int) error { input, err := ioutil.ReadFile(in) if err != nil { - return err + return errors.Wrap(err, "failed to read source in copy") + } + + if err := os.MkdirAll(filepath.Dir(out), 0755); err != nil { + return errors.Wrapf(err, "failed to create destination dir for copy "+ + "at %v", filepath.Dir(out)) } output, err := os.OpenFile(out, flag, 0644) if err != nil { - return err + return errors.Wrap(err, "failed to open destination file for copy") } defer output.Close() _, err = output.Write(input) return err - } diff --git a/vendor/github.com/elastic/beats/libbeat/generator/fields/module_fields_collector.go b/vendor/github.com/elastic/beats/libbeat/generator/fields/module_fields_collector.go index 57256786..1e89b38a 100644 --- a/vendor/github.com/elastic/beats/libbeat/generator/fields/module_fields_collector.go +++ b/vendor/github.com/elastic/beats/libbeat/generator/fields/module_fields_collector.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fields import ( @@ -13,17 +30,34 @@ var indentByModule = map[string]int{ "protos": 8, } +// GetModules returns a the list of modules for the given modules directory +func GetModules(modulesDir string) ([]string, error) { + moduleInfos, err := ioutil.ReadDir(modulesDir) + if err != nil { + return nil, err + } + + var names []string + for _, info := range moduleInfos { + if !info.IsDir() { + continue + } + names = append(names, info.Name()) + } + return names, nil +} + // CollectModuleFiles looks for fields.yml files under the -// specified root directory -func CollectModuleFiles(root string) ([]*YmlFile, error) { - modules, err := ioutil.ReadDir(root) +// specified modules directory +func CollectModuleFiles(modulesDir string) ([]*YmlFile, error) { + modules, err := GetModules(modulesDir) if err != nil { return nil, err } var files []*YmlFile for _, m := range modules { - f, err := collectFiles(m, root) + f, err := CollectFiles(m, modulesDir) if err != nil { return nil, err } @@ -33,13 +67,11 @@ func CollectModuleFiles(root string) ([]*YmlFile, error) { return files, nil } -func collectFiles(module os.FileInfo, modulesPath string) ([]*YmlFile, error) { - if !module.IsDir() { - return nil, nil - } +// CollectFiles collects all files for the given module including filesets +func CollectFiles(module string, modulesPath string) ([]*YmlFile, error) { var files []*YmlFile - fieldsYmlPath := filepath.Join(modulesPath, module.Name(), "_meta", "fields.yml") + fieldsYmlPath := filepath.Join(modulesPath, module, "_meta", "fields.yml") if _, err := os.Stat(fieldsYmlPath); !os.IsNotExist(err) { files = append(files, &YmlFile{ Path: fieldsYmlPath, @@ -50,7 +82,7 @@ func collectFiles(module os.FileInfo, modulesPath string) ([]*YmlFile, error) { } modulesRoot := filepath.Base(modulesPath) - sets, err := ioutil.ReadDir(filepath.Join(modulesPath, module.Name())) + sets, err := ioutil.ReadDir(filepath.Join(modulesPath, module)) if err != nil { return nil, err } @@ -59,8 +91,7 @@ func collectFiles(module os.FileInfo, modulesPath string) ([]*YmlFile, error) { if !s.IsDir() { continue } - - fieldsYmlPath = filepath.Join(modulesPath, module.Name(), s.Name(), "_meta", "fields.yml") + fieldsYmlPath = filepath.Join(modulesPath, module, s.Name(), "_meta", "fields.yml") if _, err = os.Stat(fieldsYmlPath); !os.IsNotExist(err) { files = append(files, &YmlFile{ Path: fieldsYmlPath, diff --git a/vendor/github.com/elastic/beats/libbeat/keystore/config.go b/vendor/github.com/elastic/beats/libbeat/keystore/config.go index 6156d33b..16de2cd4 100644 --- a/vendor/github.com/elastic/beats/libbeat/keystore/config.go +++ b/vendor/github.com/elastic/beats/libbeat/keystore/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 keystore // Config Define keystore configurable options diff --git a/vendor/github.com/elastic/beats/libbeat/keystore/file_keystore.go b/vendor/github.com/elastic/beats/libbeat/keystore/file_keystore.go index 4ca43ec1..0a7e0308 100644 --- a/vendor/github.com/elastic/beats/libbeat/keystore/file_keystore.go +++ b/vendor/github.com/elastic/beats/libbeat/keystore/file_keystore.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 keystore import ( @@ -51,7 +68,7 @@ type serializableSecureString struct { // NewFileKeystore returns an new File based keystore or an error, currently users cannot set their // own password on the keystore, the default password will be an empty string. When the keystore -// is initialied the secrets are automatically loaded into memory. +// is initialized the secrets are automatically loaded into memory. func NewFileKeystore(keystoreFile string) (Keystore, error) { return NewFileKeystoreWithPassword(keystoreFile, NewSecureString([]byte(""))) } @@ -168,7 +185,7 @@ func (k *FileKeystore) IsPersisted() bool { return true } -// doSave lock/unlocking of the ressource need to be done by the caller. +// doSave lock/unlocking of the resource need to be done by the caller. func (k *FileKeystore) doSave(override bool) error { if k.dirty == false { return nil diff --git a/vendor/github.com/elastic/beats/libbeat/keystore/file_keystore_test.go b/vendor/github.com/elastic/beats/libbeat/keystore/file_keystore_test.go deleted file mode 100644 index 4d4a9f8d..00000000 --- a/vendor/github.com/elastic/beats/libbeat/keystore/file_keystore_test.go +++ /dev/null @@ -1,293 +0,0 @@ -package keystore - -import ( - "fmt" - "os" - "path/filepath" - "runtime" - "testing" - - "github.com/docker/docker/pkg/ioutils" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -var keyValue = "output.elasticsearch.password" -var secretValue = []byte("secret") - -func TestCanCreateAKeyStore(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore, err := NewFileKeystore(path) - assert.NoError(t, err) - assert.Nil(t, keystore.Store(keyValue, secretValue)) - assert.Nil(t, keystore.Save()) -} - -func TestCanReadAnExistingKeyStoreWithEmptyString(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - CreateAnExistingKeystore(path) - - keystoreRead, err := NewFileKeystore(path) - assert.NoError(t, err) - - secure, err := keystoreRead.Retrieve(keyValue) - assert.NoError(t, err) - - v, err := secure.Get() - assert.NoError(t, err) - assert.Equal(t, v, secretValue) -} - -func TestCanDeleteAKeyFromTheStoreAndPersistChanges(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - CreateAnExistingKeystore(path) - - keystore, _ := NewFileKeystore(path) - _, err := keystore.Retrieve(keyValue) - assert.NoError(t, err) - - keystore.Delete(keyValue) - _, err = keystore.Retrieve(keyValue) - assert.Error(t, err) - - _ = keystore.Save() - newKeystore, err := NewFileKeystore(path) - _, err = newKeystore.Retrieve(keyValue) - assert.Error(t, err) -} - -func TestFilePermissionOnCreate(t *testing.T) { - // Skip check on windows - if runtime.GOOS == "windows" { - t.Skip("Permission check is not running on windows") - } - if !common.IsStrictPerms() { - t.Skip("Skipping test because strict.perms is disabled") - } - - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - CreateAnExistingKeystore(path) - - stats, err := os.Stat(path) - assert.NoError(t, err) - permissions := stats.Mode().Perm() - if permissions != 0600 { - t.Fatalf("Expecting the file what only readable/writable by the owner, permission found: %v", permissions) - } -} - -func TestFilePermissionOnUpdate(t *testing.T) { - // Skip check on windows - if runtime.GOOS == "windows" { - t.Skip("Permission check is not running on windows") - } - if !common.IsStrictPerms() { - t.Skip("Skipping test because strict.perms is disabled") - } - - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore := CreateAnExistingKeystore(path) - err := keystore.Store("newkey", []byte("newsecret")) - assert.NoError(t, err) - err = keystore.Save() - assert.NoError(t, err) - stats, err := os.Stat(path) - assert.NoError(t, err) - permissions := stats.Mode().Perm() - if permissions != 0600 { - t.Fatalf("Expecting the file what only readable/writable by the owner, permission found: %v", permissions) - } -} - -func TestFilePermissionOnLoadWhenStrictIsOn(t *testing.T) { - // Skip check on windows - if runtime.GOOS == "windows" { - t.Skip("Permission check is not running on windows") - } - - if !common.IsStrictPerms() { - t.Skip("Skipping test because strict.perms is disabled") - } - - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - // Create a world readable keystore file - fd, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666) - assert.NoError(t, err) - fd.WriteString("bad permission") - assert.NoError(t, fd.Close()) - _, err = NewFileKeystore(path) - assert.Error(t, err) -} - -func TestReturnsUsedKeysInTheStore(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore := CreateAnExistingKeystore(path) - - keys, err := keystore.List() - - assert.NoError(t, err) - assert.Equal(t, len(keys), 1) - assert.Equal(t, keys[0], keyValue) -} - -func TestCannotDecryptKeyStoreWithWrongPassword(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore, err := NewFileKeystoreWithPassword(path, NewSecureString([]byte("password"))) - keystore.Store("hello", []byte("world")) - keystore.Save() - - _, err = NewFileKeystoreWithPassword(path, NewSecureString([]byte("wrongpassword"))) - if assert.Error(t, err, "should fail to decrypt the keystore") { - m := `could not decrypt the keystore: could not decrypt keystore data: ` + - `cipher: message authentication failed` - assert.Equal(t, err, fmt.Errorf(m)) - } -} - -func TestUserDefinedPasswordUTF8(t *testing.T) { - createAndReadKeystoreWithPassword(t, []byte("mysecret¥¥password")) -} - -func TestUserDefinedPasswordASCII(t *testing.T) { - createAndReadKeystoreWithPassword(t, []byte("mysecret")) -} - -func TestSecretWithUTF8EncodedSecret(t *testing.T) { - content := []byte("ありがとうございます") // translation: thank you - createAndReadKeystoreSecret(t, []byte("mysuperpassword"), "mykey", content) -} - -func TestSecretWithASCIIEncodedSecret(t *testing.T) { - content := []byte("good news everyone") // translation: thank you - createAndReadKeystoreSecret(t, []byte("mysuperpassword"), "mykey", content) -} - -func TestGetConfig(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore := CreateAnExistingKeystore(path) - - // Add a bit more data of different type - keystore.Store("super.nested", []byte("hello")) - keystore.Save() - - cfg, err := keystore.GetConfig() - assert.NotNil(t, cfg) - assert.NoError(t, err) - - secret, err := cfg.String("output.elasticsearch.password", 0) - assert.NoError(t, err) - assert.Equal(t, secret, "secret") - - port, err := cfg.String("super.nested", 0) - assert.Equal(t, port, "hello") -} - -func TestShouldRaiseAndErrorWhenVersionDontMatch(t *testing.T) { - temporaryPath := GetTemporaryKeystoreFile() - defer os.Remove(temporaryPath) - - badVersion := `v2D/EQwnDNO7yZsjsRFVWGgbkZudhPxVhBkaQAVud66+tK4HRdfPrNrNNgSmhioDGrQ0z/VZpvbw68gb0G - G2QHxlP5s4HGRU/GQge3Nsnx0+kDIcb/37gPN1D1TOPHSiRrzzPn2vInmgaLUfEgBgoa9tuXLZEKdh3JPh/q` - - f, err := os.OpenFile(temporaryPath, os.O_CREATE|os.O_WRONLY, 0600) - assert.NoError(t, err) - f.WriteString(badVersion) - err = f.Close() - assert.NoError(t, err) - - _, err = NewFileKeystoreWithPassword(temporaryPath, NewSecureString([]byte(""))) - if assert.Error(t, err, "Expect version check error") { - assert.Equal(t, err, fmt.Errorf("keystore format doesn't match expected version: 'v1' got 'v2'")) - } -} - -func TestMissingEncryptedBlock(t *testing.T) { - temporaryPath := GetTemporaryKeystoreFile() - defer os.Remove(temporaryPath) - - badVersion := "v1" - - f, err := os.OpenFile(temporaryPath, os.O_CREATE|os.O_WRONLY, 0600) - assert.NoError(t, err) - f.WriteString(badVersion) - err = f.Close() - assert.NoError(t, err) - - _, err = NewFileKeystoreWithPassword(temporaryPath, NewSecureString([]byte(""))) - if assert.Error(t, err) { - assert.Equal(t, err, fmt.Errorf("corrupt or empty keystore")) - } -} - -func createAndReadKeystoreSecret(t *testing.T, password []byte, key string, value []byte) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore, err := NewFileKeystoreWithPassword(path, NewSecureString(password)) - assert.Nil(t, err) - - keystore.Store(key, value) - keystore.Save() - - newStore, err := NewFileKeystoreWithPassword(path, NewSecureString(password)) - s, _ := newStore.Retrieve(key) - v, _ := s.Get() - assert.Equal(t, v, value) -} - -func createAndReadKeystoreWithPassword(t *testing.T, password []byte) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore, err := NewFileKeystoreWithPassword(path, NewSecureString(password)) - assert.NoError(t, err) - - keystore.Store("hello", []byte("world")) - keystore.Save() - - newStore, err := NewFileKeystoreWithPassword(path, NewSecureString(password)) - s, _ := newStore.Retrieve("hello") - v, _ := s.Get() - - assert.Equal(t, v, []byte("world")) -} - -// CreateAnExistingKeystore creates a keystore with an existing key -/// `output.elasticsearch.password` with the value `secret`. -func CreateAnExistingKeystore(path string) Keystore { - keystore, err := NewFileKeystore(path) - // Fail fast in the test suite - if err != nil { - panic(err) - } - keystore.Store(keyValue, secretValue) - keystore.Save() - return keystore -} - -// GetTemporaryKeystoreFile create a temporary file on disk to save the keystore. -func GetTemporaryKeystoreFile() string { - path, err := ioutils.TempDir("", "testing") - if err != nil { - panic(err) - } - return filepath.Join(path, "keystore") -} diff --git a/vendor/github.com/elastic/beats/libbeat/keystore/keystore.go b/vendor/github.com/elastic/beats/libbeat/keystore/keystore.go index b7f29a67..b7ec9820 100644 --- a/vendor/github.com/elastic/beats/libbeat/keystore/keystore.go +++ b/vendor/github.com/elastic/beats/libbeat/keystore/keystore.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 keystore import ( diff --git a/vendor/github.com/elastic/beats/libbeat/keystore/keystore_test.go b/vendor/github.com/elastic/beats/libbeat/keystore/keystore_test.go deleted file mode 100644 index 5b7167db..00000000 --- a/vendor/github.com/elastic/beats/libbeat/keystore/keystore_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package keystore - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - - ucfg "github.com/elastic/go-ucfg" -) - -func TestResolverWhenTheKeyDoesntExist(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore := CreateAnExistingKeystore(path) - - resolver := ResolverWrap(keystore) - _, err := resolver("donotexist") - assert.Equal(t, err, ucfg.ErrMissing) -} - -func TestResolverWhenTheKeyExist(t *testing.T) { - path := GetTemporaryKeystoreFile() - defer os.Remove(path) - - keystore := CreateAnExistingKeystore(path) - - resolver := ResolverWrap(keystore) - v, err := resolver("output.elasticsearch.password") - assert.NoError(t, err) - assert.Equal(t, v, "secret") -} diff --git a/vendor/github.com/elastic/beats/libbeat/keystore/secure_string.go b/vendor/github.com/elastic/beats/libbeat/keystore/secure_string.go index baa3c364..d6f2ce9b 100644 --- a/vendor/github.com/elastic/beats/libbeat/keystore/secure_string.go +++ b/vendor/github.com/elastic/beats/libbeat/keystore/secure_string.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 keystore // SecureString Initial implementation for a SecureString representation in diff --git a/vendor/github.com/elastic/beats/libbeat/keystore/secure_string_test.go b/vendor/github.com/elastic/beats/libbeat/keystore/secure_string_test.go deleted file mode 100644 index 685dfc2b..00000000 --- a/vendor/github.com/elastic/beats/libbeat/keystore/secure_string_test.go +++ /dev/null @@ -1,38 +0,0 @@ -package keystore - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" -) - -var secret = []byte("mysecret") - -func TestGet(t *testing.T) { - s := NewSecureString(secret) - v, err := s.Get() - assert.Equal(t, secret, v) - assert.Nil(t, err) -} - -func TestStringMarshalingS(t *testing.T) { - s := NewSecureString(secret) - v := fmt.Sprintf("%s", s) - - assert.Equal(t, v, "") -} - -func TestStringMarshalingF(t *testing.T) { - s := NewSecureString(secret) - v := fmt.Sprintf("%v", s) - - assert.Equal(t, v, "") -} - -func TestStringGoStringerMarshaling(t *testing.T) { - s := NewSecureString(secret) - v := fmt.Sprintf("%#v", s) - - assert.Equal(t, v, "") -} diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/client.go b/vendor/github.com/elastic/beats/libbeat/kibana/client.go index 2ed12ce3..69b34700 100644 --- a/vendor/github.com/elastic/beats/libbeat/kibana/client.go +++ b/vendor/github.com/elastic/beats/libbeat/kibana/client.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana import ( diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/client_config.go b/vendor/github.com/elastic/beats/libbeat/kibana/client_config.go index c908a8e1..25af90a8 100644 --- a/vendor/github.com/elastic/beats/libbeat/kibana/client_config.go +++ b/vendor/github.com/elastic/beats/libbeat/kibana/client_config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana import ( diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/client_test.go b/vendor/github.com/elastic/beats/libbeat/kibana/client_test.go deleted file mode 100644 index 2a73ec67..00000000 --- a/vendor/github.com/elastic/beats/libbeat/kibana/client_test.go +++ /dev/null @@ -1,59 +0,0 @@ -package kibana - -import ( - "net/http" - "net/http/httptest" - "net/url" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestErrorJson(t *testing.T) { - // also common 200: {"objects":[{"id":"apm-*","type":"index-pattern","error":{"message":"[doc][index-pattern:test-*]: version conflict, document already exists (current version [1])"}}]} - kibanaTs := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Write([]byte(`{"objects":[{"id":"test-*","type":"index-pattern","error":{"message":"action [indices:data/write/bulk[s]] is unauthorized for user [test]"}}]}`)) - })) - defer kibanaTs.Close() - - conn := Connection{ - URL: kibanaTs.URL, - http: http.DefaultClient, - } - code, _, err := conn.Request(http.MethodPost, "", url.Values{}, nil, nil) - assert.Equal(t, http.StatusOK, code) - assert.Error(t, err) -} - -func TestErrorBadJson(t *testing.T) { - kibanaTs := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Write([]byte(`{`)) - })) - defer kibanaTs.Close() - - conn := Connection{ - URL: kibanaTs.URL, - http: http.DefaultClient, - } - code, _, err := conn.Request(http.MethodPost, "", url.Values{}, nil, nil) - assert.Equal(t, http.StatusOK, code) - assert.Error(t, err) -} - -func TestSuccess(t *testing.T) { - kibanaTs := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Write([]byte(`{"objects":[{"id":"test-*","type":"index-pattern","updated_at":"2018-01-24T19:04:13.371Z","version":1}]}`)) - - assert.Equal(t, "application/json", r.Header.Get("Content-Type")) - assert.Equal(t, "bar", r.Header.Get("foo")) - })) - defer kibanaTs.Close() - - conn := Connection{ - URL: kibanaTs.URL, - http: http.DefaultClient, - } - code, _, err := conn.Request(http.MethodPost, "", url.Values{}, http.Header{"foo": []string{"bar"}}, nil) - assert.Equal(t, http.StatusOK, code) - assert.NoError(t, err) -} diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/dashboard.go b/vendor/github.com/elastic/beats/libbeat/kibana/dashboard.go index 47ba251a..6da7f395 100644 --- a/vendor/github.com/elastic/beats/libbeat/kibana/dashboard.go +++ b/vendor/github.com/elastic/beats/libbeat/kibana/dashboard.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana import ( diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/fields_transformer.go b/vendor/github.com/elastic/beats/libbeat/kibana/fields_transformer.go index 777724b2..34b0c960 100644 --- a/vendor/github.com/elastic/beats/libbeat/kibana/fields_transformer.go +++ b/vendor/github.com/elastic/beats/libbeat/kibana/fields_transformer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana import ( diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/fields_transformer_test.go b/vendor/github.com/elastic/beats/libbeat/kibana/fields_transformer_test.go deleted file mode 100644 index 79054867..00000000 --- a/vendor/github.com/elastic/beats/libbeat/kibana/fields_transformer_test.go +++ /dev/null @@ -1,541 +0,0 @@ -package kibana - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -var ( - truthy = true - falsy = false - ctMetaData = 4 - version, _ = common.NewVersion("6.0.0") -) - -func TestEmpty(t *testing.T) { - trans, err := newFieldsTransformer(version, common.Fields{}) - assert.NoError(t, err) - out, err := trans.transform() - assert.NoError(t, err) - expected := common.MapStr{ - "fieldFormatMap": common.MapStr{}, - "fields": []common.MapStr{ - common.MapStr{ - "name": "_id", - "type": "string", - "scripted": false, - "aggregatable": false, - "analyzed": false, - "count": 0, - "indexed": false, - "doc_values": false, - "searchable": false, - }, - common.MapStr{ - "name": "_type", - "type": "string", - "scripted": false, - "count": 0, - "aggregatable": true, - "analyzed": false, - "indexed": false, - "doc_values": false, - "searchable": true, - }, - common.MapStr{ - "name": "_index", - "type": "string", - "scripted": false, - "count": 0, - "aggregatable": false, - "analyzed": false, - "indexed": false, - "doc_values": false, - "searchable": false, - }, - common.MapStr{ - "name": "_score", - "type": "number", - "scripted": false, - "count": 0, - "aggregatable": false, - "analyzed": false, - "indexed": false, - "doc_values": false, - "searchable": false, - }, - }, - } - assert.Equal(t, expected, out) -} - -func TestMissingVersion(t *testing.T) { - var c *common.Version - _, err := newFieldsTransformer(c, common.Fields{}) - assert.Error(t, err) -} - -func TestDuplicateField(t *testing.T) { - commonFields := common.Fields{ - common.Field{Name: "context", Path: "something"}, - common.Field{Name: "context", Path: "something", Type: "keyword"}, - } - trans, err := newFieldsTransformer(version, commonFields) - assert.NoError(t, err) - _, err = trans.transform() - assert.Error(t, err) -} - -func TestInvalidVersion(t *testing.T) { - commonFields := common.Fields{ - common.Field{ - Name: "versionTest", - Format: "url", - UrlTemplate: []common.VersionizedString{ - {MinVersion: "3", Value: ""}, - }, - }, - } - trans, err := newFieldsTransformer(version, commonFields) - assert.NoError(t, err) - _, err = trans.transform() - assert.Error(t, err) -} - -func TestTransformTypes(t *testing.T) { - tests := []struct { - commonField common.Field - expected interface{} - }{ - {commonField: common.Field{}, expected: "string"}, - {commonField: common.Field{Type: "half_float"}, expected: "number"}, - {commonField: common.Field{Type: "scaled_float"}, expected: "number"}, - {commonField: common.Field{Type: "float"}, expected: "number"}, - {commonField: common.Field{Type: "integer"}, expected: "number"}, - {commonField: common.Field{Type: "long"}, expected: "number"}, - {commonField: common.Field{Type: "short"}, expected: "number"}, - {commonField: common.Field{Type: "byte"}, expected: "number"}, - {commonField: common.Field{Type: "keyword"}, expected: "string"}, - {commonField: common.Field{Type: "text"}, expected: "string"}, - {commonField: common.Field{Type: "string"}, expected: nil}, - {commonField: common.Field{Type: "date"}, expected: "date"}, - {commonField: common.Field{Type: "geo_point"}, expected: "geo_point"}, - {commonField: common.Field{Type: "invalid"}, expected: nil}, - } - for idx, test := range tests { - trans, _ := newFieldsTransformer(version, common.Fields{test.commonField}) - transformed, err := trans.transform() - assert.NoError(t, err) - out := transformed["fields"].([]common.MapStr)[0] - assert.Equal(t, test.expected, out["type"], fmt.Sprintf("Failed for idx %v", idx)) - } -} - -func TestTransformGroup(t *testing.T) { - tests := []struct { - commonFields common.Fields - expected []string - }{ - { - commonFields: common.Fields{common.Field{Name: "context", Path: "something"}}, - expected: []string{"context"}, - }, - { - commonFields: common.Fields{ - common.Field{ - Name: "context", - Type: "group", - Fields: common.Fields{ - common.Field{Name: "another", Type: ""}, - }, - }, - common.Field{ - Name: "context", - Type: "group", - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, - common.Field{ - Name: "metric", - Type: "group", - Fields: common.Fields{ - common.Field{Name: "object"}, - }, - }, - }, - }, - }, - expected: []string{"context.another", "context.type", "context.metric.object"}, - }, - } - for idx, test := range tests { - trans, _ := newFieldsTransformer(version, test.commonFields) - transformed, err := trans.transform() - assert.NoError(t, err) - out := transformed["fields"].([]common.MapStr) - assert.Equal(t, len(test.expected)+ctMetaData, len(out)) - for i, e := range test.expected { - assert.Equal(t, e, out[i]["name"], fmt.Sprintf("Failed for idx %v", idx)) - } - } -} - -func TestTransformMisc(t *testing.T) { - tests := []struct { - commonField common.Field - expected interface{} - attr string - }{ - {commonField: common.Field{}, expected: 0, attr: "count"}, - {commonField: common.Field{Count: 4}, expected: 4, attr: "count"}, - - // searchable - {commonField: common.Field{}, expected: true, attr: "searchable"}, - {commonField: common.Field{Searchable: &truthy}, expected: true, attr: "searchable"}, - {commonField: common.Field{Searchable: &falsy}, expected: false, attr: "searchable"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "searchable"}, - {commonField: common.Field{Searchable: &truthy, Type: "binary"}, expected: false, attr: "searchable"}, - - // aggregatable - {commonField: common.Field{}, expected: true, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &truthy}, expected: true, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &falsy}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &truthy, Type: "binary"}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Type: "keyword"}, expected: true, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &truthy, Type: "text"}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Type: "text"}, expected: false, attr: "aggregatable"}, - - // analyzed - {commonField: common.Field{}, expected: false, attr: "analyzed"}, - {commonField: common.Field{Analyzed: &truthy}, expected: true, attr: "analyzed"}, - {commonField: common.Field{Analyzed: &falsy}, expected: false, attr: "analyzed"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "analyzed"}, - {commonField: common.Field{Analyzed: &truthy, Type: "binary"}, expected: false, attr: "analyzed"}, - - // doc_values always set to true except for meta fields - {commonField: common.Field{}, expected: true, attr: "doc_values"}, - {commonField: common.Field{DocValues: &truthy}, expected: true, attr: "doc_values"}, - {commonField: common.Field{DocValues: &falsy}, expected: false, attr: "doc_values"}, - {commonField: common.Field{Script: "doc[]"}, expected: false, attr: "doc_values"}, - {commonField: common.Field{DocValues: &truthy, Script: "doc[]"}, expected: false, attr: "doc_values"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "doc_values"}, - {commonField: common.Field{DocValues: &truthy, Type: "binary"}, expected: true, attr: "doc_values"}, - - // indexed - {commonField: common.Field{Type: "binary"}, expected: false, attr: "indexed"}, - {commonField: common.Field{Index: &truthy, Type: "binary"}, expected: false, attr: "indexed"}, - - // script, scripted - {commonField: common.Field{}, expected: false, attr: "scripted"}, - {commonField: common.Field{}, expected: nil, attr: "script"}, - {commonField: common.Field{Script: "doc[]"}, expected: true, attr: "scripted"}, - {commonField: common.Field{Script: "doc[]"}, expected: "doc[]", attr: "script"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "scripted"}, - - // language - {commonField: common.Field{}, expected: nil, attr: "lang"}, - {commonField: common.Field{Script: "doc[]"}, expected: "painless", attr: "lang"}, - } - for idx, test := range tests { - trans, _ := newFieldsTransformer(version, common.Fields{test.commonField}) - transformed, err := trans.transform() - assert.NoError(t, err) - out := transformed["fields"].([]common.MapStr)[0] - msg := fmt.Sprintf("(%v): expected '%s' to be <%v> but was <%v>", idx, test.attr, test.expected, out[test.attr]) - assert.Equal(t, test.expected, out[test.attr], msg) - } -} - -func TestTransformFieldFormatMap(t *testing.T) { - precision := 3 - version620, _ := common.NewVersion("6.2.0") - truthy := true - falsy := false - - tests := []struct { - commonField common.Field - version *common.Version - expected common.MapStr - }{ - { - commonField: common.Field{Name: "c"}, - expected: common.MapStr{}, - version: version, - }, - { - commonField: common.Field{Name: "c", Format: "url"}, - expected: common.MapStr{"c": common.MapStr{"id": "url"}}, - version: version, - }, - { - commonField: common.Field{Name: "c", Pattern: "p"}, - expected: common.MapStr{"c": common.MapStr{"params": common.MapStr{"pattern": "p"}}}, - version: version, - }, - { - commonField: common.Field{ - Name: "c", - Format: "url", - Pattern: "p", - }, - expected: common.MapStr{ - "c": common.MapStr{ - "id": "url", - "params": common.MapStr{"pattern": "p"}, - }, - }, - version: version, - }, - { - commonField: common.Field{ - Name: "c", - Format: "url", - InputFormat: "string", - }, - expected: common.MapStr{ - "c": common.MapStr{ - "id": "url", - "params": common.MapStr{ - "inputFormat": "string", - }, - }, - }, - version: version, - }, - { - commonField: common.Field{ - Name: "c", - Format: "url", - Pattern: "[^-]", - InputFormat: "string", - OpenLinkInCurrentTab: &falsy, - }, - expected: common.MapStr{ - "c": common.MapStr{ - "id": "url", - "params": common.MapStr{ - "pattern": "[^-]", - "inputFormat": "string", - "openLinkInCurrentTab": false, - }, - }, - }, - version: version, - }, - { - commonField: common.Field{ - Name: "c", - InputFormat: "string", - }, - expected: common.MapStr{}, - version: version, - }, - { - version: version620, - commonField: common.Field{ - Name: "c", - Format: "url", - Pattern: "[^-]", - OpenLinkInCurrentTab: &truthy, - InputFormat: "string", - OutputFormat: "float", - OutputPrecision: &precision, - LabelTemplate: "lblT", - UrlTemplate: []common.VersionizedString{ - {MinVersion: "5.0.0", Value: "5x.urlTemplate"}, - {MinVersion: "6.0.0", Value: "6x.urlTemplate"}, - }, - }, - expected: common.MapStr{ - "c": common.MapStr{ - "id": "url", - "params": common.MapStr{ - "pattern": "[^-]", - "inputFormat": "string", - "outputFormat": "float", - "outputPrecision": 3, - "labelTemplate": "lblT", - "urlTemplate": "6x.urlTemplate", - "openLinkInCurrentTab": true, - }, - }, - }, - }, - { - version: version620, - commonField: common.Field{ - Name: "c", - Format: "url", - UrlTemplate: []common.VersionizedString{ - {MinVersion: "6.4.0", Value: "6x.urlTemplate"}, - }, - }, - expected: common.MapStr{ - "c": common.MapStr{"id": "url"}, - }, - }, - { - version: version620, - commonField: common.Field{ - Name: "c", - Format: "url", - UrlTemplate: []common.VersionizedString{ - {MinVersion: "4.7.2", Value: "4x.urlTemplate"}, - {MinVersion: "6.5.1", Value: "6x.urlTemplate"}, - }, - }, - expected: common.MapStr{ - "c": common.MapStr{ - "id": "url", - "params": common.MapStr{ - "urlTemplate": "4x.urlTemplate", - }, - }, - }, - }, - { - version: version620, - commonField: common.Field{ - Name: "c", - Format: "url", - UrlTemplate: []common.VersionizedString{ - {MinVersion: "6.2.0", Value: "6.2.0.urlTemplate"}, - {MinVersion: "6.2.0-alpha", Value: "6.2.0-alpha.urlTemplate"}, - {MinVersion: "6.2.7", Value: "6.2.7.urlTemplate"}, - }, - }, - expected: common.MapStr{ - "c": common.MapStr{ - "id": "url", - "params": common.MapStr{ - "urlTemplate": "6.2.0.urlTemplate", - }, - }, - }, - }, - { - version: version620, - commonField: common.Field{ - Name: "c", - Format: "url", - UrlTemplate: []common.VersionizedString{ - {MinVersion: "4.1.0", Value: "4x.urlTemplate"}, - {MinVersion: "5.2.0-rc2", Value: "5.2.0-rc2.urlTemplate"}, - {MinVersion: "5.2.0-rc3", Value: "5.2.0-rc3.urlTemplate"}, - {MinVersion: "5.2.0-rc1", Value: "5.2.0-rc1.urlTemplate"}, - }, - }, - expected: common.MapStr{ - "c": common.MapStr{ - "id": "url", - "params": common.MapStr{ - "urlTemplate": "5.2.0-rc3.urlTemplate", - }, - }, - }, - }, - } - for idx, test := range tests { - trans, _ := newFieldsTransformer(test.version, common.Fields{test.commonField}) - transformed, err := trans.transform() - assert.NoError(t, err) - out := transformed["fieldFormatMap"] - assert.Equal(t, test.expected, out, fmt.Sprintf("Failed for idx %v", idx)) - } -} - -func TestTransformGroupAndEnabled(t *testing.T) { - tests := []struct { - commonFields common.Fields - expected []string - }{ - { - commonFields: common.Fields{common.Field{Name: "context", Path: "something"}}, - expected: []string{"context"}, - }, - { - commonFields: common.Fields{ - common.Field{ - Name: "context", - Type: "group", - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, - common.Field{ - Name: "metric", - Type: "group", - Fields: common.Fields{ - common.Field{Name: "object"}, - }, - }, - }, - }, - }, - expected: []string{"context.type", "context.metric.object"}, - }, - { - commonFields: common.Fields{ - common.Field{Name: "enabledField"}, - common.Field{Name: "disabledField", Enabled: &falsy}, //enabled is ignored for Type!=group - common.Field{ - Name: "enabledGroup", - Type: "group", - Enabled: &truthy, - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, - }, - }, - common.Field{ - Name: "context", - Type: "group", - Enabled: &falsy, - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, - common.Field{ - Name: "metric", - Type: "group", - Fields: common.Fields{ - common.Field{Name: "object"}, - }, - }, - }, - }, - }, - expected: []string{"enabledField", "disabledField", "enabledGroup.type"}, - }, - } - for idx, test := range tests { - trans, _ := newFieldsTransformer(version, test.commonFields) - transformed, err := trans.transform() - assert.NoError(t, err) - out := transformed["fields"].([]common.MapStr) - assert.Equal(t, len(test.expected)+ctMetaData, len(out)) - for i, e := range test.expected { - assert.Equal(t, e, out[i]["name"], fmt.Sprintf("Failed for idx %v", idx)) - } - } -} - -func TestTransformMultiField(t *testing.T) { - f := common.Field{ - Name: "context", - Type: "", - MultiFields: common.Fields{ - common.Field{Name: "keyword", Type: "keyword"}, - common.Field{Name: "text", Type: "text"}, - }, - } - trans, _ := newFieldsTransformer(version, common.Fields{f}) - transformed, err := trans.transform() - assert.NoError(t, err) - out := transformed["fields"].([]common.MapStr) - assert.Equal(t, "context", out[0]["name"]) - assert.Equal(t, "context.keyword", out[1]["name"]) - assert.Equal(t, "context.text", out[2]["name"]) - assert.Equal(t, "string", out[0]["type"]) - assert.Equal(t, "string", out[1]["type"]) - assert.Equal(t, "string", out[2]["type"]) -} diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/index_pattern_generator.go b/vendor/github.com/elastic/beats/libbeat/kibana/index_pattern_generator.go index 398921dd..46a1a741 100644 --- a/vendor/github.com/elastic/beats/libbeat/kibana/index_pattern_generator.go +++ b/vendor/github.com/elastic/beats/libbeat/kibana/index_pattern_generator.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana import ( diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/index_pattern_generator_test.go b/vendor/github.com/elastic/beats/libbeat/kibana/index_pattern_generator_test.go deleted file mode 100644 index d1b264cf..00000000 --- a/vendor/github.com/elastic/beats/libbeat/kibana/index_pattern_generator_test.go +++ /dev/null @@ -1,261 +0,0 @@ -package kibana - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestNewGenerator(t *testing.T) { - beatDir := tmpPath() - defer teardown(beatDir) - - v, _ := common.NewVersion("7.0.0") - // checks for fields.yml - generator, err := NewGenerator("beat-index", "mybeat.", filepath.Join(beatDir, "notexistent"), "7.0", *v) - assert.Error(t, err) - - generator, err = NewGenerator("beat-index", "mybeat.", beatDir, "7.0", *v) - assert.NoError(t, err) - assert.Equal(t, "7.0", generator.beatVersion) - assert.Equal(t, "beat-index", generator.indexName) - assert.Equal(t, filepath.Join(beatDir, "fields.yml"), generator.fieldsYaml) - - // creates file dir and sets name - expectedDir := filepath.Join(beatDir, "_meta/kibana.generated/6/index-pattern") - assert.Equal(t, expectedDir, generator.targetDir) - _, err = os.Stat(generator.targetDir) - assert.NoError(t, err) - - v, _ = common.NewVersion("5.0.0") - // checks for fields.yml - generator, err = NewGenerator("beat-index", "mybeat.", beatDir, "7.0", *v) - assert.NoError(t, err) - - expectedDir = filepath.Join(beatDir, "_meta/kibana.generated/5/index-pattern") - assert.Equal(t, expectedDir, generator.targetDir) - _, err = os.Stat(generator.targetDir) - - assert.NoError(t, err) - - assert.Equal(t, "mybeat.json", generator.targetFilename) -} - -func TestCleanName(t *testing.T) { - tests := []struct { - input string - expected string - }{ - {input: " beat index pattern", expected: "beatindexpattern"}, - {input: "Beat@Index.!", expected: "BeatIndex"}, - {input: "beatIndex", expected: "beatIndex"}, - } - for idx, test := range tests { - output := clean(test.input) - msg := fmt.Sprintf("(%v): Expected <%s> Received: <%s>", idx, test.expected, output) - assert.Equal(t, test.expected, output, msg) - } -} - -func TestGenerateFieldsYaml(t *testing.T) { - beatDir := tmpPath() - defer teardown(beatDir) - - v, _ := common.NewVersion("6.0.0") - generator, err := NewGenerator("metricbeat-*", "metric beat ?!", beatDir, "7.0.0-alpha1", *v) - - _, err = generator.Generate() - assert.NoError(t, err) - - generator.fieldsYaml = "" - _, err = generator.Generate() - assert.Error(t, err) -} - -func TestDumpToFile5x(t *testing.T) { - beatDir := tmpPath() - defer teardown(beatDir) - v, _ := common.NewVersion("5.0.0") - generator, err := NewGenerator("metricbeat-*", "metric beat ?!", beatDir, "7.0.0-alpha1", *v) - - _, err = generator.Generate() - assert.NoError(t, err) - - generator.targetDir = "./non-existing/something" - - _, err = generator.Generate() - assert.Error(t, err) -} - -func TestDumpToFileDefault(t *testing.T) { - beatDir := tmpPath() - defer teardown(beatDir) - - v, _ := common.NewVersion("7.0.0") - generator, err := NewGenerator("metricbeat-*", "metric beat ?!", beatDir, "7.0.0-alpha1", *v) - - _, err = generator.Generate() - assert.NoError(t, err) - - generator.targetDir = "./non-existing/something" - - _, err = generator.Generate() - assert.Error(t, err) -} - -func TestGenerate(t *testing.T) { - beatDir := tmpPath() - defer teardown(beatDir) - - v5, _ := common.NewVersion("5.0.0") - v6, _ := common.NewVersion("6.0.0") - versions := []*common.Version{v5, v6} - for _, version := range versions { - generator, err := NewGenerator("beat-*", "b eat ?!", beatDir, "7.0.0-alpha1", *version) - assert.NoError(t, err) - - _, err = generator.Generate() - assert.NoError(t, err) - } - - tests := []map[string]string{ - {"existing": "beat-5.json", "created": "_meta/kibana.generated/5/index-pattern/beat.json"}, - {"existing": "beat-6.json", "created": "_meta/kibana.generated/6/index-pattern/beat.json"}, - } - testGenerate(t, beatDir, tests, true) -} - -func TestGenerateExtensive(t *testing.T) { - beatDir, err := filepath.Abs("./testdata/extensive") - if err != nil { - panic(err) - } - defer teardown(beatDir) - - version5, _ := common.NewVersion("5.0.0") - version6, _ := common.NewVersion("6.0.0") - versions := []*common.Version{version5, version6} - for _, version := range versions { - generator, err := NewGenerator("metricbeat-*", "metric be at ?!", beatDir, "7.0.0-alpha1", *version) - assert.NoError(t, err) - - _, err = generator.Generate() - assert.NoError(t, err) - } - - tests := []map[string]string{ - {"existing": "metricbeat-5.json", "created": "_meta/kibana.generated/5/index-pattern/metricbeat.json"}, - {"existing": "metricbeat-6.json", "created": "_meta/kibana.generated/6/index-pattern/metricbeat.json"}, - } - testGenerate(t, beatDir, tests, false) -} - -func testGenerate(t *testing.T, beatDir string, tests []map[string]string, sourceFilters bool) { - for _, test := range tests { - // compare default - existing, err := readJson(filepath.Join(beatDir, test["existing"])) - assert.NoError(t, err) - created, err := readJson(filepath.Join(beatDir, test["created"])) - assert.NoError(t, err) - - var attrExisting, attrCreated common.MapStr - - if strings.Contains(test["existing"], "6") { - assert.Equal(t, existing["version"], created["version"]) - - objExisting := existing["objects"].([]interface{})[0].(map[string]interface{}) - objCreated := created["objects"].([]interface{})[0].(map[string]interface{}) - - assert.Equal(t, objExisting["version"], objCreated["version"]) - assert.Equal(t, objExisting["id"], objCreated["id"]) - assert.Equal(t, objExisting["type"], objCreated["type"]) - - attrExisting = objExisting["attributes"].(map[string]interface{}) - attrCreated = objCreated["attributes"].(map[string]interface{}) - } else { - attrExisting = existing - attrCreated = created - } - - // check fieldFormatMap - var ffmExisting, ffmCreated map[string]interface{} - err = json.Unmarshal([]byte(attrExisting["fieldFormatMap"].(string)), &ffmExisting) - assert.NoError(t, err) - err = json.Unmarshal([]byte(attrCreated["fieldFormatMap"].(string)), &ffmCreated) - assert.NoError(t, err) - assert.Equal(t, ffmExisting, ffmCreated) - - // check fields - var fieldsExisting, fieldsCreated []map[string]interface{} - err = json.Unmarshal([]byte(attrExisting["fields"].(string)), &fieldsExisting) - assert.NoError(t, err) - err = json.Unmarshal([]byte(attrCreated["fields"].(string)), &fieldsCreated) - assert.NoError(t, err) - assert.Equal(t, len(fieldsExisting), len(fieldsCreated)) - for _, e := range fieldsExisting { - idx := find(fieldsCreated, "name", e["name"].(string)) - assert.NotEqual(t, -1, idx) - assert.Equal(t, e, fieldsCreated[idx]) - } - - // check sourceFilters - if sourceFilters { - var sfExisting, sfCreated []map[string]interface{} - err = json.Unmarshal([]byte(attrExisting["sourceFilters"].(string)), &sfExisting) - assert.NoError(t, err) - err = json.Unmarshal([]byte(attrCreated["sourceFilters"].(string)), &sfCreated) - assert.NoError(t, err) - assert.Equal(t, len(sfExisting), len(sfCreated)) - for _, e := range sfExisting { - idx := find(sfCreated, "value", e["value"].(string)) - assert.NotEqual(t, -1, idx) - assert.Equal(t, e, sfCreated[idx]) - } - } - } -} - -func find(a []map[string]interface{}, key, val string) int { - for idx, e := range a { - if e[key].(string) == val { - return idx - } - } - return -1 -} - -func readJson(path string) (map[string]interface{}, error) { - f, err := ioutil.ReadFile(path) - if err != nil { - return nil, err - } - var data map[string]interface{} - err = json.Unmarshal(f, &data) - if err != nil { - return nil, err - } - return data, nil -} - -func tmpPath() string { - beatDir, err := filepath.Abs("./testdata") - if err != nil { - panic(err) - } - return beatDir -} - -func teardown(path string) { - if path == "" { - path = tmpPath() - } - os.RemoveAll(filepath.Join(path, "_meta")) -} diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/testdata/extensive/fields.yml b/vendor/github.com/elastic/beats/libbeat/kibana/testdata/extensive/fields.yml index 4f513b0f..b7c2f9d3 100644 --- a/vendor/github.com/elastic/beats/libbeat/kibana/testdata/extensive/fields.yml +++ b/vendor/github.com/elastic/beats/libbeat/kibana/testdata/extensive/fields.yml @@ -347,7 +347,7 @@ Namespace name - name: node.host type: keyword - desription: > + description: > Node host - name: node.name type: keyword @@ -5216,7 +5216,7 @@ - name: commands_processed type: long description: - Total number of commands preocessed. + Total number of commands processed. - name: net.input.bytes type: long diff --git a/vendor/github.com/elastic/beats/libbeat/kibana/transformer.go b/vendor/github.com/elastic/beats/libbeat/kibana/transformer.go index 9c32a5f5..9c4649e2 100644 --- a/vendor/github.com/elastic/beats/libbeat/kibana/transformer.go +++ b/vendor/github.com/elastic/beats/libbeat/kibana/transformer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana import ( diff --git a/vendor/github.com/elastic/beats/libbeat/libbeat.go b/vendor/github.com/elastic/beats/libbeat/libbeat.go index bafac2d5..381a36fe 100644 --- a/vendor/github.com/elastic/beats/libbeat/libbeat.go +++ b/vendor/github.com/elastic/beats/libbeat/libbeat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/libbeat/libbeat_test.go b/vendor/github.com/elastic/beats/libbeat/libbeat_test.go deleted file mode 100644 index ea6f7440..00000000 --- a/vendor/github.com/elastic/beats/libbeat/libbeat_test.go +++ /dev/null @@ -1,22 +0,0 @@ -package main - -import ( - "flag" - "testing" -) - -var systemTest *bool - -func init() { - systemTest = flag.Bool("systemTest", false, "Set to true when running system tests") - - RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("systemTest")) - RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("test.coverprofile")) -} - -// Test started when the test binary is started -func TestSystem(t *testing.T) { - if *systemTest { - main() - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/logp/config.go b/vendor/github.com/elastic/beats/libbeat/logp/config.go index d2617c76..dea2d2a4 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/config.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp // Config contains the configuration options for the logger. To create a Config @@ -35,6 +52,7 @@ var defaultConfig = Config{ ToFiles: true, Files: FileConfig{ MaxSize: 10 * 1024 * 1024, + MaxBackups: 7, Permissions: 0600, }, addCaller: true, diff --git a/vendor/github.com/elastic/beats/libbeat/logp/configure/logging.go b/vendor/github.com/elastic/beats/libbeat/logp/configure/logging.go index a1699b8b..c57acd4b 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/configure/logging.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/configure/logging.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 configure import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/core.go b/vendor/github.com/elastic/beats/libbeat/logp/core.go index c5e4d616..f117dc2e 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/core.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/core.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/core_test.go b/vendor/github.com/elastic/beats/libbeat/logp/core_test.go deleted file mode 100644 index 0fab81b3..00000000 --- a/vendor/github.com/elastic/beats/libbeat/logp/core_test.go +++ /dev/null @@ -1,215 +0,0 @@ -package logp - -import ( - "strings" - "testing" - - "github.com/stretchr/testify/assert" - "go.uber.org/zap" -) - -func TestLogger(t *testing.T) { - exerciseLogger := func() { - Info("unnamed global logger") - - log := NewLogger("example") - log.Info("some message") - log.Infof("some message with parameter x=%v, y=%v", 1, 2) - log.Infow("some message", "x", 1, "y", 2) - log.Infow("some message", Int("x", 1)) - log.Infow("some message with namespaced args", Namespace("metrics"), "x", 1, "y", 1) - log.Infow("", "empty_message", true) - - // Add context. - log.With("x", 1, "y", 2).Warn("logger with context") - - someStruct := struct { - X int `json:"x"` - Y int `json:"y"` - }{1, 2} - log.Infow("some message with struct value", "metrics", someStruct) - } - - TestingSetup() - exerciseLogger() - TestingSetup(AsJSON()) - exerciseLogger() -} - -func TestLoggerSelectors(t *testing.T) { - if err := DevelopmentSetup(WithSelectors("good"), ToObserverOutput()); err != nil { - t.Fatal(err) - } - - good := NewLogger("good") - bad := NewLogger("bad") - - good.Debug("is logged") - logs := ObserverLogs().TakeAll() - assert.Len(t, logs, 1) - - // Selectors only apply to debug level logs. - bad.Debug("not logged") - logs = ObserverLogs().TakeAll() - assert.Len(t, logs, 0) - - bad.Info("is also logged") - logs = ObserverLogs().TakeAll() - assert.Len(t, logs, 1) -} - -func TestGlobalLoggerLevel(t *testing.T) { - if err := DevelopmentSetup(ToObserverOutput()); err != nil { - t.Fatal(err) - } - - const loggerName = "tester" - - Debug(loggerName, "debug") - logs := ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.DebugLevel, logs[0].Level) - assert.Equal(t, loggerName, logs[0].LoggerName) - assert.Equal(t, "debug", logs[0].Message) - } - - Info("info") - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.InfoLevel, logs[0].Level) - assert.Equal(t, "", logs[0].LoggerName) - assert.Equal(t, "info", logs[0].Message) - } - - Warn("warning") - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.WarnLevel, logs[0].Level) - assert.Equal(t, "", logs[0].LoggerName) - assert.Equal(t, "warning", logs[0].Message) - } - - Err("error") - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.ErrorLevel, logs[0].Level) - assert.Equal(t, "", logs[0].LoggerName) - assert.Equal(t, "error", logs[0].Message) - } - - Critical("critical") - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.ErrorLevel, logs[0].Level) - assert.Equal(t, "", logs[0].LoggerName) - assert.Equal(t, "critical", logs[0].Message) - } -} - -func TestLoggerLevel(t *testing.T) { - if err := DevelopmentSetup(ToObserverOutput()); err != nil { - t.Fatal(err) - } - - const loggerName = "tester" - logger := NewLogger(loggerName) - - logger.Debug("debug") - logs := ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.DebugLevel, logs[0].Level) - assert.Equal(t, loggerName, logs[0].LoggerName) - assert.Equal(t, "debug", logs[0].Message) - } - - logger.Info("info") - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.InfoLevel, logs[0].Level) - assert.Equal(t, loggerName, logs[0].LoggerName) - assert.Equal(t, "info", logs[0].Message) - } - - logger.Warn("warn") - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.WarnLevel, logs[0].Level) - assert.Equal(t, loggerName, logs[0].LoggerName) - assert.Equal(t, "warn", logs[0].Message) - } - - logger.Error("error") - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, zap.ErrorLevel, logs[0].Level) - assert.Equal(t, loggerName, logs[0].LoggerName) - assert.Equal(t, "error", logs[0].Message) - } -} - -func TestRecover(t *testing.T) { - const recoveryExplanation = "Something went wrong" - const cause = "unexpected condition" - - DevelopmentSetup(ToObserverOutput()) - - defer func() { - logs := ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - log := logs[0] - assert.Equal(t, zap.ErrorLevel, log.Level) - assert.Equal(t, "logp/core_test.go", - strings.Split(log.Caller.TrimmedPath(), ":")[0]) - assert.Contains(t, log.Message, recoveryExplanation+ - ". Recovering, but please report this.") - assert.Contains(t, log.ContextMap(), "panic") - } - }() - - defer Recover(recoveryExplanation) - panic(cause) -} - -func TestHasSelector(t *testing.T) { - DevelopmentSetup(WithSelectors("*", "config")) - assert.True(t, HasSelector("config")) - assert.False(t, HasSelector("publish")) -} - -func TestIsDebug(t *testing.T) { - DevelopmentSetup() - assert.True(t, IsDebug("all")) - - DevelopmentSetup(WithSelectors("*")) - assert.True(t, IsDebug("all")) - - DevelopmentSetup(WithSelectors("only_this")) - assert.False(t, IsDebug("all")) - assert.True(t, IsDebug("only_this")) -} - -func TestL(t *testing.T) { - if err := DevelopmentSetup(ToObserverOutput()); err != nil { - t.Fatal(err) - } - - L().Infow("infow", "rate", 2) - logs := ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - log := logs[0] - assert.Equal(t, zap.InfoLevel, log.Level) - assert.Equal(t, "", log.LoggerName) - assert.Equal(t, "infow", log.Message) - assert.Contains(t, log.ContextMap(), "rate") - } - - const loggerName = "tester" - L().Named(loggerName).Warnf("warning %d", 1) - logs = ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - log := logs[0] - assert.Equal(t, zap.WarnLevel, log.Level) - assert.Equal(t, loggerName, log.LoggerName) - assert.Equal(t, "warning 1", log.Message) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/logp/encoding.go b/vendor/github.com/elastic/beats/libbeat/logp/encoding.go index 77a4a3b1..9475d9ec 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/encoding.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/encoding.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/eventlog_unsupported.go b/vendor/github.com/elastic/beats/libbeat/logp/eventlog_unsupported.go index f2b8ab78..c6473f5c 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/eventlog_unsupported.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/eventlog_unsupported.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !windows package logp diff --git a/vendor/github.com/elastic/beats/libbeat/logp/eventlog_windows.go b/vendor/github.com/elastic/beats/libbeat/logp/eventlog_windows.go index e83a6841..8a5473a5 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/eventlog_windows.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/eventlog_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/fields.go b/vendor/github.com/elastic/beats/libbeat/logp/fields.go index bbf3d575..d9d1655f 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/fields.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/global.go b/vendor/github.com/elastic/beats/libbeat/logp/global.go index 17481041..cece7359 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/global.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/global.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/level.go b/vendor/github.com/elastic/beats/libbeat/logp/level.go index 56fc8db6..57428534 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/level.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/level.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/logger.go b/vendor/github.com/elastic/beats/libbeat/logp/logger.go index 24cc7ad7..19bcb252 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/logger.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/logger.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/options.go b/vendor/github.com/elastic/beats/libbeat/logp/options.go index 34e316a3..2ce7989c 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/options.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/options.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp // Option configures the logp package behavior. diff --git a/vendor/github.com/elastic/beats/libbeat/logp/selective.go b/vendor/github.com/elastic/beats/libbeat/logp/selective.go index 3ac5464e..a5d6a7a7 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/selective.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/selective.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logp import ( diff --git a/vendor/github.com/elastic/beats/libbeat/logp/syslog_unix.go b/vendor/github.com/elastic/beats/libbeat/logp/syslog_unix.go index 56f35fe6..45f70ebe 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/syslog_unix.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/syslog_unix.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !windows,!nacl,!plan9 package logp diff --git a/vendor/github.com/elastic/beats/libbeat/logp/syslog_unsupported.go b/vendor/github.com/elastic/beats/libbeat/logp/syslog_unsupported.go index 62d9e465..222146cd 100644 --- a/vendor/github.com/elastic/beats/libbeat/logp/syslog_unsupported.go +++ b/vendor/github.com/elastic/beats/libbeat/logp/syslog_unsupported.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build windows nacl plan9 package logp diff --git a/vendor/github.com/elastic/beats/libbeat/magefile.go b/vendor/github.com/elastic/beats/libbeat/magefile.go new file mode 100644 index 00000000..939eac4a --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/magefile.go @@ -0,0 +1,39 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "github.com/elastic/beats/dev-tools/mage" +) + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML("processors") +} diff --git a/vendor/github.com/elastic/beats/libbeat/make.bat b/vendor/github.com/elastic/beats/libbeat/make.bat new file mode 100644 index 00000000..81de1ba9 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/make.bat @@ -0,0 +1,11 @@ +@echo off + +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. +REM +REM After running this once you may invoke mage.exe directly. + +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install github.com/elastic/beats/vendor/github.com/magefile/mage + +mage %* diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/cpu.go b/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/cpu.go index 229a477d..b5cb6981 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/cpu.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/cpu.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package cpu @@ -17,7 +34,7 @@ var ( // CPU Monitor -// Monitor is used to monitor the overal CPU usage of the system. +// Monitor is used to monitor the overall CPU usage of the system. type Monitor struct { lastSample *sigar.Cpu } @@ -99,7 +116,9 @@ func cpuPercentages(s0, s1 *sigar.Cpu, numCPU int) Percentages { } calculateTotalPct := func() float64 { - return common.Round(float64(numCPU)-calculatePct(s0.Idle, s1.Idle), common.DefaultDecimalPlacesCount) + // IOWait time is excluded from the total as per #7627. + idle := calculatePct(s0.Idle, s1.Idle) + calculatePct(s0.Wait, s1.Wait) + return common.Round(float64(numCPU)-idle, common.DefaultDecimalPlacesCount) } return Percentages{ diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/cpu_test.go b/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/cpu_test.go deleted file mode 100644 index 7e8eaff4..00000000 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/cpu_test.go +++ /dev/null @@ -1,123 +0,0 @@ -// +build !integration -// +build darwin freebsd linux openbsd windows - -package cpu - -import ( - "runtime" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/gosigar" -) - -func TestMonitorSample(t *testing.T) { - cpu := &Monitor{lastSample: &gosigar.Cpu{}} - s, err := cpu.Sample() - if err != nil { - t.Fatal(err) - } - - pct := s.Percentages() - assert.True(t, pct.User > 0) - assert.True(t, pct.System > 0) - - normPct := s.NormalizedPercentages() - assert.True(t, normPct.User > 0) - assert.True(t, normPct.System > 0) - assert.True(t, normPct.User <= 100) - assert.True(t, normPct.System <= 100) - - assert.True(t, pct.User > normPct.User) - assert.True(t, pct.System > normPct.System) - - ticks := s.Ticks() - assert.True(t, ticks.User > 0) - assert.True(t, ticks.System > 0) -} - -func TestCoresMonitorSample(t *testing.T) { - cores := &CoresMonitor{lastSample: make([]gosigar.Cpu, NumCores)} - sample, err := cores.Sample() - if err != nil { - t.Fatal(err) - } - - for _, s := range sample { - normPct := s.Percentages() - assert.True(t, normPct.User > 0) - assert.True(t, normPct.User <= 100) - assert.True(t, normPct.System > 0) - assert.True(t, normPct.System <= 100) - assert.True(t, normPct.Idle > 0) - assert.True(t, normPct.Idle <= 100) - assert.True(t, normPct.Total > 0) - assert.True(t, normPct.Total <= 100) - - ticks := s.Ticks() - assert.True(t, ticks.User > 0) - assert.True(t, ticks.System > 0) - } -} - -// TestMetricsRounding tests that the returned percentages are rounded to -// four decimal places. -func TestMetricsRounding(t *testing.T) { - sample := Metrics{ - previousSample: &gosigar.Cpu{ - User: 10855311, - Sys: 2021040, - Idle: 17657874, - }, - currentSample: &gosigar.Cpu{ - User: 10855693, - Sys: 2021058, - Idle: 17657876, - }, - } - - pct := sample.NormalizedPercentages() - assert.Equal(t, pct.User, 0.9502) - assert.Equal(t, pct.System, 0.0448) -} - -// TestMetricsPercentages tests that Metrics returns the correct -// percentages and normalized percentages. -func TestMetricsPercentages(t *testing.T) { - NumCores = 10 - defer func() { NumCores = runtime.NumCPU() }() - - // This test simulates 30% user and 70% system (normalized), or 3% and 7% - // respectively when there are 10 CPUs. - const user, system = 30., 70. - - s0 := gosigar.Cpu{ - User: 10000000, - Sys: 10000000, - Idle: 20000000, - Nice: 0, - } - s1 := gosigar.Cpu{ - User: s0.User + uint64(user), - Sys: s0.Sys + uint64(system), - Idle: s0.Idle, - Nice: 0, - } - sample := Metrics{ - previousSample: &s0, - currentSample: &s1, - } - - pct := sample.NormalizedPercentages() - assert.EqualValues(t, .3, pct.User) - assert.EqualValues(t, .7, pct.System) - assert.EqualValues(t, .0, pct.Idle) - assert.EqualValues(t, 1., pct.Total) - - pct = sample.Percentages() - assert.EqualValues(t, .3*float64(NumCores), pct.User) - assert.EqualValues(t, .7*float64(NumCores), pct.System) - assert.EqualValues(t, .0*float64(NumCores), pct.Idle) - assert.EqualValues(t, 1.*float64(NumCores), pct.Total) -} diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/doc.go b/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/doc.go index 51dd3315..ce8f92d5 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/doc.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/cpu/doc.go @@ -1 +1,18 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cpu diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/host/host.go b/vendor/github.com/elastic/beats/libbeat/metric/system/host/host.go new file mode 100644 index 00000000..9eba3392 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/host/host.go @@ -0,0 +1,90 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 host + +import ( + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/monitoring" + "github.com/elastic/go-sysinfo" + "github.com/elastic/go-sysinfo/types" +) + +// MapHostInfo converts the HostInfo to a MapStr based on ECS. +func MapHostInfo(info types.HostInfo) common.MapStr { + data := common.MapStr{ + "host": common.MapStr{ + "name": info.Hostname, + "architecture": info.Architecture, + "os": common.MapStr{ + "platform": info.OS.Platform, + "version": info.OS.Version, + "family": info.OS.Family, + }, + }, + } + + // Optional params + if info.UniqueID != "" { + data.Put("host.id", info.UniqueID) + } + if info.Containerized != nil { + data.Put("host.containerized", *info.Containerized) + } + if info.OS.Codename != "" { + data.Put("host.os.codename", info.OS.Codename) + } + if info.OS.Build != "" { + data.Put("host.os.build", info.OS.Build) + } + + return data +} + +// ReportInfo reports the HostInfo to monitoring. +func ReportInfo(_ monitoring.Mode, V monitoring.Visitor) { + V.OnRegistryStart() + defer V.OnRegistryFinished() + + h, err := sysinfo.Host() + if err != nil { + return + } + info := h.Info() + + monitoring.ReportString(V, "name", info.Hostname) + monitoring.ReportString(V, "architecture", info.Architecture) + monitoring.ReportNamespace(V, "os", func() { + monitoring.ReportString(V, "platform", info.OS.Platform) + monitoring.ReportString(V, "version", info.OS.Version) + monitoring.ReportString(V, "family", info.OS.Family) + + if info.OS.Codename != "" { + monitoring.ReportString(V, "codename", info.OS.Codename) + } + if info.OS.Build != "" { + monitoring.ReportString(V, "build", info.OS.Build) + } + }) + + if info.UniqueID != "" { + monitoring.ReportString(V, "id", info.UniqueID) + } + if info.Containerized != nil { + monitoring.ReportBool(V, "containerized", *info.Containerized) + } +} diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/memory/doc.go b/vendor/github.com/elastic/beats/libbeat/metric/system/memory/doc.go index 05af74b9..150cf078 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/memory/doc.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/memory/doc.go @@ -1 +1,18 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memory diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/memory/memory.go b/vendor/github.com/elastic/beats/libbeat/metric/system/memory/memory.go index b31819a0..594fc616 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/memory/memory.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/memory/memory.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package memory diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/memory/memory_test.go b/vendor/github.com/elastic/beats/libbeat/metric/system/memory/memory_test.go deleted file mode 100644 index 8505b61b..00000000 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/memory/memory_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// +build !integration -// +build darwin freebsd linux openbsd windows - -package memory - -import ( - "runtime" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/gosigar" -) - -func TestGetMemory(t *testing.T) { - mem, err := Get() - - assert.NotNil(t, mem) - assert.Nil(t, err) - - assert.True(t, (mem.Total > 0)) - assert.True(t, (mem.Used > 0)) - assert.True(t, (mem.Free >= 0)) - assert.True(t, (mem.ActualFree >= 0)) - assert.True(t, (mem.ActualUsed > 0)) -} - -func TestGetSwap(t *testing.T) { - if runtime.GOOS == "windows" { - return //no load data on windows - } - - swap, err := GetSwap() - - assert.NotNil(t, swap) - assert.Nil(t, err) - - assert.True(t, (swap.Total >= 0)) - assert.True(t, (swap.Used >= 0)) - assert.True(t, (swap.Free >= 0)) -} - -func TestMemPercentage(t *testing.T) { - m := MemStat{ - Mem: gosigar.Mem{ - Total: 7, - Used: 5, - Free: 2, - }, - } - AddMemPercentage(&m) - assert.Equal(t, m.UsedPercent, 0.7143) - - m = MemStat{ - Mem: gosigar.Mem{Total: 0}, - } - AddMemPercentage(&m) - assert.Equal(t, m.UsedPercent, 0.0) -} - -func TestActualMemPercentage(t *testing.T) { - m := MemStat{ - Mem: gosigar.Mem{ - Total: 7, - ActualUsed: 5, - ActualFree: 2, - }, - } - AddMemPercentage(&m) - assert.Equal(t, m.ActualUsedPercent, 0.7143) - - m = MemStat{ - Mem: gosigar.Mem{ - Total: 0, - }, - } - AddMemPercentage(&m) - assert.Equal(t, m.ActualUsedPercent, 0.0) -} diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/process/config.go b/vendor/github.com/elastic/beats/libbeat/metric/system/process/config.go index 391c3a38..4fd2ba2c 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/process/config.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/process/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 process // IncludeTopConfig is the configuration for the "top N processes diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go index 66f3387c..189b0964 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux windows package process @@ -345,7 +362,7 @@ func (procStats *Stats) matchProcess(name string) bool { return false } -// Init initizalizes a Stats instance. It returns erros if the provided process regexes +// Init initializes a Stats instance. It returns errors if the provided process regexes // cannot be compiled. func (procStats *Stats) Init() error { procStats.ProcsMap = make(ProcsMap) diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_linux.go b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_linux.go index 9400a43d..68346323 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_linux.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_linux.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 process import ( diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_other.go b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_other.go index f829eac1..b0132cdf 100644 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_other.go +++ b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_other.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !linux package process diff --git a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_test.go b/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_test.go deleted file mode 100644 index 4bd6bcf9..00000000 --- a/vendor/github.com/elastic/beats/libbeat/metric/system/process/process_test.go +++ /dev/null @@ -1,322 +0,0 @@ -// +build !integration -// +build darwin freebsd linux windows - -package process - -import ( - "os" - "runtime" - "sort" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/gosigar" -) - -func TestPids(t *testing.T) { - pids, err := Pids() - - assert.NotNil(t, pids) - assert.Nil(t, err) - - // Assuming at least 2 processes are running - assert.True(t, (len(pids) > 1)) -} - -func TestGetProcess(t *testing.T) { - process, err := newProcess(os.Getpid(), "", nil) - if err != nil { - t.Fatal(err) - } - if err = process.getDetails(nil); err != nil { - t.Fatal(err) - } - - assert.True(t, (process.Pid > 0)) - assert.True(t, (process.Ppid >= 0)) - assert.True(t, (process.Pgid >= 0)) - assert.True(t, (len(process.Name) > 0)) - assert.True(t, (len(process.Username) > 0)) - assert.NotEqual(t, "unknown", process.State) - - // Memory Checks - assert.True(t, (process.Mem.Size >= 0)) - assert.True(t, (process.Mem.Resident >= 0)) - assert.True(t, (process.Mem.Share >= 0)) - - // CPU Checks - assert.True(t, (process.Cpu.StartTime > 0)) - assert.True(t, (process.Cpu.Total >= 0)) - assert.True(t, (process.Cpu.User >= 0)) - assert.True(t, (process.Cpu.Sys >= 0)) - - assert.True(t, (process.SampleTime.Unix() <= time.Now().Unix())) - - switch runtime.GOOS { - case "darwin", "linux", "freebsd": - assert.True(t, len(process.Env) > 0, "empty environment") - } - - switch runtime.GOOS { - case "linux": - assert.True(t, (len(process.Cwd) > 0)) - } -} - -// See https://github.com/elastic/beats/issues/6620 -func TestGetSelfPid(t *testing.T) { - pid, err := GetSelfPid() - assert.NoError(t, err) - assert.Equal(t, os.Getpid(), pid) -} - -func TestProcState(t *testing.T) { - assert.Equal(t, getProcState('R'), "running") - assert.Equal(t, getProcState('S'), "sleeping") - assert.Equal(t, getProcState('s'), "unknown") - assert.Equal(t, getProcState('D'), "idle") - assert.Equal(t, getProcState('T'), "stopped") - assert.Equal(t, getProcState('Z'), "zombie") -} - -func TestMatchProcs(t *testing.T) { - var procStats = Stats{} - - procStats.Procs = []string{".*"} - err := procStats.Init() - assert.NoError(t, err) - - assert.True(t, procStats.matchProcess("metricbeat")) - - procStats.Procs = []string{"metricbeat"} - err = procStats.Init() - assert.NoError(t, err) - assert.False(t, procStats.matchProcess("burn")) - - // match no processes - procStats.Procs = []string{"$^"} - err = procStats.Init() - assert.NoError(t, err) - assert.False(t, procStats.matchProcess("burn")) -} - -func TestProcMemPercentage(t *testing.T) { - procStats := Stats{} - - p := Process{ - Pid: 3456, - Mem: gosigar.ProcMem{ - Resident: 1416, - Size: 145164088, - }, - } - - procStats.ProcsMap = make(ProcsMap) - procStats.ProcsMap[p.Pid] = &p - - rssPercent := GetProcMemPercentage(&p, 10000) - assert.Equal(t, rssPercent, 0.1416) -} - -func TestProcCpuPercentage(t *testing.T) { - p1 := &Process{ - Cpu: gosigar.ProcTime{ - User: 11345, - Sys: 37, - Total: 11382, - }, - SampleTime: time.Now(), - } - - p2 := &Process{ - Cpu: gosigar.ProcTime{ - User: 14794, - Sys: 47, - Total: 14841, - }, - SampleTime: p1.SampleTime.Add(time.Second), - } - - NumCPU = 48 - defer func() { NumCPU = runtime.NumCPU() }() - - totalPercentNormalized, totalPercent, totalValue := GetProcCPUPercentage(p1, p2) - assert.EqualValues(t, 0.0721, totalPercentNormalized) - assert.EqualValues(t, 3.459, totalPercent) - assert.EqualValues(t, 14841, totalValue) -} - -// BenchmarkGetProcess runs a benchmark of the GetProcess method with caching -// of the command line and environment variables. -func BenchmarkGetProcess(b *testing.B) { - pids, err := Pids() - if err != nil { - b.Fatal(err) - } - nPids := len(pids) - procs := make(ProcsMap, nPids) - - b.ResetTimer() - for i := 0; i < b.N; i++ { - pid := pids[i%nPids] - - var cmdline string - var env common.MapStr - if p := procs[pid]; p != nil { - cmdline = p.CmdLine - env = p.Env - } - - process, err := newProcess(pid, cmdline, env) - if err != nil { - continue - } - err = process.getDetails(nil) - assert.NoError(b, err) - - procs[pid] = process - } -} - -func TestIncludeTopProcesses(t *testing.T) { - processes := []Process{ - { - Pid: 1, - cpuTotalPct: 10, - Mem: gosigar.ProcMem{Resident: 3000}, - }, - { - Pid: 2, - cpuTotalPct: 5, - Mem: gosigar.ProcMem{Resident: 4000}, - }, - { - Pid: 3, - cpuTotalPct: 7, - Mem: gosigar.ProcMem{Resident: 2000}, - }, - { - Pid: 4, - cpuTotalPct: 5, - Mem: gosigar.ProcMem{Resident: 8000}, - }, - { - Pid: 5, - cpuTotalPct: 12, - Mem: gosigar.ProcMem{Resident: 9000}, - }, - { - Pid: 6, - cpuTotalPct: 5, - Mem: gosigar.ProcMem{Resident: 7000}, - }, - { - Pid: 7, - cpuTotalPct: 80, - Mem: gosigar.ProcMem{Resident: 11000}, - }, - { - Pid: 8, - cpuTotalPct: 50, - Mem: gosigar.ProcMem{Resident: 13000}, - }, - { - Pid: 9, - cpuTotalPct: 15, - Mem: gosigar.ProcMem{Resident: 1000}, - }, - { - Pid: 10, - cpuTotalPct: 60, - Mem: gosigar.ProcMem{Resident: 500}, - }, - } - - tests := []struct { - Name string - Cfg IncludeTopConfig - ExpectedPids []int - }{ - { - Name: "top 2 processes by CPU", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 2}, - ExpectedPids: []int{7, 10}, - }, - { - Name: "top 4 processes by CPU", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 4}, - ExpectedPids: []int{7, 10, 8, 9}, - }, - { - Name: "top 2 processes by memory", - Cfg: IncludeTopConfig{Enabled: true, ByMemory: 2}, - ExpectedPids: []int{8, 7}, - }, - { - Name: "top 4 processes by memory", - Cfg: IncludeTopConfig{Enabled: true, ByMemory: 4}, - ExpectedPids: []int{8, 7, 5, 4}, - }, - { - Name: "top 2 processes by CPU + top 2 by memory", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 2, ByMemory: 2}, - ExpectedPids: []int{7, 10, 8}, - }, - { - Name: "top 4 processes by CPU + top 4 by memory", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 4, ByMemory: 4}, - ExpectedPids: []int{7, 10, 8, 9, 5, 4}, - }, - { - Name: "enabled false", - Cfg: IncludeTopConfig{Enabled: false, ByCPU: 4, ByMemory: 4}, - ExpectedPids: []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - }, - { - Name: "enabled true but cpu & mem not configured", - Cfg: IncludeTopConfig{Enabled: true}, - ExpectedPids: []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - }, - { - Name: "top 12 by cpu (out of 10)", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 12}, - ExpectedPids: []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - }, - { - Name: "top 12 by cpu and top 14 memory (out of 10)", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 12, ByMemory: 14}, - ExpectedPids: []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - }, - { - Name: "top 14 by cpu and top 12 memory (out of 10)", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 14, ByMemory: 12}, - ExpectedPids: []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - }, - { - Name: "top 1 by cpu and top 3 memory", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 1, ByMemory: 3}, - ExpectedPids: []int{5, 7, 8}, - }, - { - Name: "top 3 by cpu and top 1 memory", - Cfg: IncludeTopConfig{Enabled: true, ByCPU: 3, ByMemory: 1}, - ExpectedPids: []int{7, 8, 10}, - }, - } - - for _, test := range tests { - procStats := Stats{IncludeTop: test.Cfg} - res := procStats.includeTopProcesses(processes) - - resPids := []int{} - for _, p := range res { - resPids = append(resPids, p.Pid) - } - sort.Ints(test.ExpectedPids) - sort.Ints(resPids) - assert.Equal(t, resPids, test.ExpectedPids, test.Name) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/ml-importer/importer.go b/vendor/github.com/elastic/beats/libbeat/ml-importer/importer.go index 550ebf6d..47b8b93b 100644 --- a/vendor/github.com/elastic/beats/libbeat/ml-importer/importer.go +++ b/vendor/github.com/elastic/beats/libbeat/ml-importer/importer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mlimporter contains code for loading Elastic X-Pack Machine Learning job configurations. package mlimporter diff --git a/vendor/github.com/elastic/beats/libbeat/ml-importer/importer_integration_test.go b/vendor/github.com/elastic/beats/libbeat/ml-importer/importer_integration_test.go deleted file mode 100644 index d13a770b..00000000 --- a/vendor/github.com/elastic/beats/libbeat/ml-importer/importer_integration_test.go +++ /dev/null @@ -1,173 +0,0 @@ -// +build integration - -package mlimporter - -import ( - "encoding/json" - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs/elasticsearch/estest" -) - -const sampleJob = ` -{ - "description" : "Anomaly detector for changes in event rates of nginx.access.response_code responses", - "analysis_config" : { - "bucket_span": "1h", - "summary_count_field_name": "doc_count", - "detectors": [ - { - "detector_description": "Event rate for nginx.access.response_code", - "function": "count", - "partition_field_name": "nginx.access.response_code" - } - ], - "influencers": ["nginx.access.response_code"] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "model_plot_config": { - "enabled": true - } -} -` - -const sampleDatafeed = ` -{ - "job_id": "PLACEHOLDER", - "indexes": [ - "filebeat-*" - ], - "types": [ - "doc", - "log" - ], - "query": { - "match_all": { - "boost": 1 - } - }, - "aggregations": { - "buckets": { - "date_histogram": { - "field": "@timestamp", - "interval": 3600000, - "offset": 0, - "order": { - "_key": "asc" - }, - "keyed": false, - "min_doc_count": 0 - }, - "aggregations": { - "@timestamp": { - "max": { - "field": "@timestamp" - } - }, - "nginx.access.response_code": { - "terms": { - "field": "nginx.access.response_code", - "size": 10000 - } - } - } - } - } -} -` - -func TestImportJobs(t *testing.T) { - logp.TestingSetup() - - client := estest.GetTestingElasticsearch(t) - - haveXpack, err := HaveXpackML(client) - assert.NoError(t, err) - if !haveXpack { - t.Skip("Skip ML tests because xpack/ML is not available in Elasticsearch") - } - - workingDir, err := ioutil.TempDir("", "machine-learning") - assert.NoError(t, err) - defer os.RemoveAll(workingDir) - - assert.NoError(t, ioutil.WriteFile(workingDir+"/job.json", []byte(sampleJob), 0644)) - assert.NoError(t, ioutil.WriteFile(workingDir+"/datafeed.json", []byte(sampleDatafeed), 0644)) - - mlconfig := MLConfig{ - ID: "test-ml-config", - JobPath: workingDir + "/job.json", - DatafeedPath: workingDir + "/datafeed.json", - } - - err = ImportMachineLearningJob(client, &mlconfig) - assert.NoError(t, err) - - // check by GETing back - - status, response, err := client.Request("GET", "/_xpack/ml/anomaly_detectors", "", nil, nil) - assert.NoError(t, err) - assert.Equal(t, 200, status) - - logp.Debug("mltest", "Response: %s", response) - - type jobRes struct { - Count int `json:"count"` - Jobs []struct { - JobId string `json:"job_id"` - JobType string `json:"job_type"` - } - } - var res jobRes - - err = json.Unmarshal(response, &res) - assert.NoError(t, err) - assert.True(t, res.Count >= 1) - found := false - for _, job := range res.Jobs { - if job.JobId == "test-ml-config" { - found = true - assert.Equal(t, job.JobType, "anomaly_detector") - } - } - assert.True(t, found) - - status, response, err = client.Request("GET", "/_xpack/ml/datafeeds", "", nil, nil) - assert.NoError(t, err) - assert.Equal(t, 200, status) - - logp.Debug("mltest", "Response: %s", response) - type datafeedRes struct { - Count int `json:"count"` - Datafeeds []struct { - DatafeedId string `json:"datafeed_id"` - JobId string `json:"job_id"` - QueryDelay string `json:"query_delay"` - } - } - var df datafeedRes - err = json.Unmarshal(response, &df) - assert.NoError(t, err) - assert.True(t, df.Count >= 1) - found = false - for _, datafeed := range df.Datafeeds { - if datafeed.DatafeedId == "datafeed-test-ml-config" { - found = true - assert.Equal(t, datafeed.JobId, "test-ml-config") - assert.Equal(t, datafeed.QueryDelay, "87034ms") - } - } - assert.True(t, found) - - // importing again should not error out - err = ImportMachineLearningJob(client, &mlconfig) - assert.NoError(t, err) -} diff --git a/vendor/github.com/elastic/beats/libbeat/mock/mockbeat.go b/vendor/github.com/elastic/beats/libbeat/mock/mockbeat.go index 1d763afc..88eea09a 100644 --- a/vendor/github.com/elastic/beats/libbeat/mock/mockbeat.go +++ b/vendor/github.com/elastic/beats/libbeat/mock/mockbeat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mock import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/filters.go b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/filters.go index 7ec431c6..c596a7f8 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/filters.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/filters.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 adapter import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/filters_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/filters_test.go deleted file mode 100644 index 477a9e82..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/filters_test.go +++ /dev/null @@ -1,77 +0,0 @@ -package adapter - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestFilters(t *testing.T) { - tests := []struct { - start state - filters *metricFilters - expected state - }{ - { - state{action: actIgnore, name: "test"}, - nil, - state{action: actIgnore, name: "test"}, - }, - { - state{action: actIgnore, name: "test"}, - makeFilters(), - state{action: actIgnore, name: "test"}, - }, - { - state{action: actIgnore, name: "test"}, - makeFilters( - WhitelistIf(func(_ string) bool { return true }), - ), - state{action: actAccept, name: "test"}, - }, - { - state{action: actIgnore, name: "test"}, - makeFilters( - WhitelistIf(func(_ string) bool { return false }), - ), - state{action: actIgnore, name: "test"}, - }, - { - state{action: actIgnore, name: "test"}, - makeFilters(Whitelist("other")), - state{action: actIgnore, name: "test"}, - }, - { - state{action: actIgnore, name: "test"}, - makeFilters(Whitelist("test")), - state{action: actAccept, name: "test"}, - }, - { - state{action: actIgnore, name: "test"}, - makeFilters(Rename("test", "new")), - state{action: actAccept, name: "new"}, - }, - { - state{action: actIgnore, name: "t-e-s-t"}, - makeFilters(NameReplace("-", ".")), - state{action: actIgnore, name: "t.e.s.t"}, - }, - { - state{action: actIgnore, name: "test"}, - makeFilters(ToUpperName), - state{action: actIgnore, name: "TEST"}, - }, - { - state{action: actIgnore, name: "TEST"}, - makeFilters(ToLowerName), - state{action: actIgnore, name: "test"}, - }, - } - - for i, test := range tests { - t.Logf("run test (%v): %v => %v", i, test.start, test.expected) - - actual := test.filters.apply(test.start) - assert.Equal(t, test.expected, actual) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics-wrapper.go b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics-wrapper.go index 448d25f8..0f974efd 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics-wrapper.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics-wrapper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 adapter import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics.go b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics.go index 1e2d6e43..303c169f 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 adapter import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics_test.go deleted file mode 100644 index fb2f68d9..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/adapter/go-metrics_test.go +++ /dev/null @@ -1,89 +0,0 @@ -package adapter - -import ( - "strings" - "testing" - - metrics "github.com/rcrowley/go-metrics" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/monitoring" -) - -func TestGoMetricsAdapter(t *testing.T) { - filters := []MetricFilter{ - WhitelistIf(func(name string) bool { - return strings.HasPrefix(name, "mon") - }), - ApplyIf( - func(name string) bool { - return strings.HasPrefix(name, "ign") - }, - GoMetricsNilify, - ), - } - - counters := map[string]int64{ - "mon-counter": 42, - "ign-counter": 0, - "counter": 42, - } - meters := map[string]int64{ - "mon-meter": 23, - "ign-meter": 0, - "meter": 23, - } - - monReg := monitoring.NewRegistry() - var reg metrics.Registry = GetGoMetrics(monReg, "test", filters...) - - // register some metrics and check they're satisfying the go-metrics interface - // no matter if owned by monitoring or go-metrics - for name := range counters { - cnt := reg.GetOrRegister(name, func() interface{} { - return metrics.NewCounter() - }).(metrics.Counter) - cnt.Clear() - } - - for name := range meters { - meter := reg.GetOrRegister(name, func() interface{} { - return metrics.NewMeter() - }).(metrics.Meter) - meter.Count() - } - - // get and increase registered metrics - for name := range counters { - cnt := reg.Get(name).(metrics.Counter) - cnt.Inc(21) - cnt.Inc(21) - } - for name := range meters { - meter := reg.Get(name).(metrics.Meter) - meter.Mark(11) - meter.Mark(12) - } - - // compare metric values to expected values - for name, value := range counters { - cnt := reg.Get(name).(metrics.Counter) - assert.Equal(t, value, cnt.Count()) - } - for name, value := range meters { - meter := reg.Get(name).(metrics.Meter) - assert.Equal(t, value, meter.Count()) - } - - // check Each only returns metrics not registered with monitoring.Registry - reg.Each(func(name string, v interface{}) { - if strings.HasPrefix(name, "mon") { - t.Errorf("metric %v should not have been reported by each", name) - } - }) - monReg.Do(monitoring.Full, func(name string, v interface{}) { - if !strings.HasPrefix(name, "test.mon") { - t.Errorf("metric %v should not have been reported by each", name) - } - }) -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/list.go b/vendor/github.com/elastic/beats/libbeat/monitoring/list.go new file mode 100644 index 00000000..0b00d6dd --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/list.go @@ -0,0 +1,72 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring + +import ( + "sync" +) + +// UniqueList is used to collect a list of items (strings) and get the total count and all unique strings. +type UniqueList struct { + sync.Mutex + list map[string]int +} + +// NewUniqueList create a new UniqueList +func NewUniqueList() *UniqueList { + return &UniqueList{ + list: map[string]int{}, + } +} + +// Add adds an item to the list and increases the count for it. +func (l *UniqueList) Add(item string) { + l.Lock() + defer l.Unlock() + l.list[item]++ +} + +// Remove removes and item for the list and decreases the count. +func (l *UniqueList) Remove(item string) { + l.Lock() + defer l.Unlock() + l.list[item]-- +} + +// Report can be used as reporting function for monitoring. +// It reports a total count value and a names array with all the items. +func (l *UniqueList) Report(m Mode, V Visitor) { + V.OnRegistryStart() + defer V.OnRegistryFinished() + + var items []string + var count int64 + + l.Lock() + defer l.Unlock() + + for key, val := range l.list { + if val > 0 { + items = append(items, key) + } + count += int64(val) + } + + ReportInt(V, "count", count) + ReportStringSlice(V, "names", items) +} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/metrics.go b/vendor/github.com/elastic/beats/libbeat/monitoring/metrics.go index 0188ce73..ab0d9d56 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/metrics.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/metrics.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/mode_string.go b/vendor/github.com/elastic/beats/libbeat/monitoring/mode_string.go index 3ede9b2f..886c8afd 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/mode_string.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/mode_string.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Code generated by "stringer -type=Mode"; DO NOT EDIT package monitoring diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/monitoring.go b/vendor/github.com/elastic/beats/libbeat/monitoring/monitoring.go index 59e9f379..943f4e79 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/monitoring.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/monitoring.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring import "errors" diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/namespace.go b/vendor/github.com/elastic/beats/libbeat/monitoring/namespace.go index d8002597..5f6d2ed4 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/namespace.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/namespace.go @@ -1,15 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring -import ( - "sync" -) +import "sync" -var namespaces = struct { - sync.Mutex - m map[string]*Namespace -}{ - m: make(map[string]*Namespace), -} +var namespaces = NewNamespaces() // Namespace contains the name of the namespace and it's registry type Namespace struct { @@ -17,18 +27,17 @@ type Namespace struct { registry *Registry } +func newNamespace(name string) *Namespace { + n := &Namespace{ + name: name, + } + return n +} + // GetNamespace gets the namespace with the given name. // If the namespace does not exist yet, a new one is created. func GetNamespace(name string) *Namespace { - namespaces.Lock() - defer namespaces.Unlock() - - n, ok := namespaces.m[name] - if !ok { - n = &Namespace{name: name} - namespaces.m[name] = n - } - return n + return namespaces.Get(name) } // SetRegistry sets the registry of the namespace @@ -43,3 +52,28 @@ func (n *Namespace) GetRegistry() *Registry { } return n.registry } + +// Namespaces is a list of Namespace structs +type Namespaces struct { + sync.Mutex + namespaces map[string]*Namespace +} + +// NewNamespaces creates a new namespaces list +func NewNamespaces() *Namespaces { + return &Namespaces{ + namespaces: map[string]*Namespace{}, + } +} + +// Get returns the namespace for the given key. If the key does not exist, new namespace is created. +func (n *Namespaces) Get(key string) *Namespace { + n.Lock() + defer n.Unlock() + if namespace, ok := n.namespaces[key]; ok { + return namespace + } + + n.namespaces[key] = newNamespace(key) + return n.namespaces[key] +} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/opts.go b/vendor/github.com/elastic/beats/libbeat/monitoring/opts.go index 46fe38ce..d7251a85 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/opts.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/opts.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring // Option type for passing additional options to NewRegistry. diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/opts_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/opts_test.go deleted file mode 100644 index fb72f1fc..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/opts_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// +build !integration - -package monitoring - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestOptions(t *testing.T) { - tests := []struct { - name string - parent *options - options []Option - expected options - }{ - { - "empty parent without opts should generate defaults", - nil, - nil, - defaultOptions, - }, - { - "non empty parent should return same options", - &options{}, - nil, - options{}, - }, - { - "apply publishexpvar", - &options{publishExpvar: false}, - []Option{PublishExpvar}, - options{publishExpvar: true}, - }, - { - "apply disable publishexpvar", - &options{publishExpvar: true}, - []Option{IgnorePublishExpvar}, - options{publishExpvar: false}, - }, - } - - for i, test := range tests { - t.Logf("run test (%v): %v", i, test.name) - - origParent := options{} - if test.parent != nil { - origParent = *test.parent - } - actual := applyOpts(test.parent, test.options) - assert.NotNil(t, actual) - - // test parent has not been modified by accident - if test.parent != nil { - assert.Equal(t, origParent, *test.parent) - } - - // check parent and actual are same object if options is nil - if test.parent != nil && test.options == nil { - assert.Equal(t, test.parent, actual) - } - - // validate output - assert.Equal(t, test.expected, *actual) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/registry.go b/vendor/github.com/elastic/beats/libbeat/monitoring/registry.go index 8a2bbed0..5a0c0b63 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/registry.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring import ( @@ -41,7 +58,7 @@ func (r *Registry) Do(mode Mode, f func(string, interface{})) { r.doVisit(mode, NewKeyValueVisitor(f)) } -// Visit uses the Visitor interface to iterate the complete metrics hieararchie. +// Visit uses the Visitor interface to iterate the complete metrics hierarchies. // In case of the visitor reporting an error, Visit will return immediately, // reporting the very same error. func (r *Registry) Visit(mode Mode, vs Visitor) { diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/registry_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/registry_test.go deleted file mode 100644 index d3970ce8..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/registry_test.go +++ /dev/null @@ -1,126 +0,0 @@ -// +build !integration - -package monitoring - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestRegistryEmpty(t *testing.T) { - defer Clear() - - // get value - v := Get("missing") - if v != nil { - t.Errorf("got %v, wanted nil", v) - } - - // get value with recursive lookup - v = Get("missing.value") - if v != nil { - t.Errorf("got %v, wanted nil", v) - } - - // get missing registry - reg := GetRegistry("missing") - if reg != nil { - t.Errorf("got %v, wanted nil", reg) - } - - // get registry with recursive lookup - reg = GetRegistry("missing.registry") - if reg != nil { - t.Errorf("got %v, wanted nil", reg) - } -} - -func TestRegistryGet(t *testing.T) { - defer Clear() - - name1 := "v" - nameSub1 := "sub.registry1" - nameSub2 := "sub.registry2" - name2 := nameSub1 + "." + name1 - name3 := nameSub2 + "." + name1 - - // register top-level and recursive metric - v1 := NewInt(Default, name1, Report) - sub1 := Default.NewRegistry(nameSub1) - sub2 := Default.NewRegistry(nameSub2) - v2 := NewString(nil, name2, Report) - v3 := NewFloat(sub2, name1, Report) - - // get values - v := Get(name1) - assert.Equal(t, v, v1) - - // get nested metric from top-level - v = Get(name2) - assert.Equal(t, v, v2) - v = Get(name3) - assert.Equal(t, v, v3) - - // get sub registry - reg1 := GetRegistry(nameSub1) - assert.Equal(t, sub1, reg1) - reg2 := GetRegistry(nameSub2) - assert.Equal(t, sub2, reg2) - - // get value from sub-registry - v = reg1.Get(name1) - assert.Equal(t, v, v2) - - v = reg2.Get(name1) - assert.Equal(t, v, v3) -} - -func TestRegistryRemove(t *testing.T) { - defer Clear() - - name1 := "v" - nameSub1 := "sub.registry1" - nameSub2 := "sub.registry2" - name2 := nameSub1 + "." + name1 - name3 := nameSub2 + "." + name1 - - // register top-level and recursive metric - NewInt(Default, name1, Report) - sub1 := Default.NewRegistry(nameSub1) - sub2 := Default.NewRegistry(nameSub2) - NewInt(Default, name2, Report) - NewInt(sub2, name1, Report) - - // remove metrics: - Remove(name1) - sub1.Remove(name1) // == Remove(name2) - Remove(name3) // remove name 3 recursively - - // check no variable is reachable - assert.Nil(t, Get(name1)) - assert.Nil(t, Get(name2)) - assert.Nil(t, Get(name3)) -} - -func TestRegistryIter(t *testing.T) { - defer Clear() - - vars := map[string]int64{ - "sub.registry.v1": 1, - "sub.registry.v2": 2, - "v3": 3, - } - - for name, v := range vars { - i := NewInt(Default, name, Report) - i.Add(v) - } - - collected := map[string]int64{} - Do(Full, func(name string, v interface{}) { - collected[name] = v.(int64) - }) - - assert.Equal(t, vars, collected) -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/client.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/client.go index 93b9943c..4da37db6 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/client.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/client.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -5,6 +22,7 @@ import ( "fmt" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/monitoring/report" esout "github.com/elastic/beats/libbeat/outputs/elasticsearch" "github.com/elastic/beats/libbeat/publisher" @@ -21,7 +39,6 @@ var ( actMonitoringBeats = common.MapStr{ "index": common.MapStr{ "_index": "", - "_type": "beats_stats", "_routing": nil, }, } @@ -79,25 +96,63 @@ func (c *publishClient) Close() error { func (c *publishClient) Publish(batch publisher.Batch) error { events := batch.Events() - bulk := make([]interface{}, 0, 2*len(events)) + var failed []publisher.Event + var reason error for _, event := range events { - bulk = append(bulk, - actMonitoringBeats, report.Event{ + + // Extract time + t, err := event.Content.Meta.GetValue("type") + if err != nil { + logp.Err("Type not available in monitoring reported. Please report this error: %s", err) + continue + } + + var params = map[string]string{} + // Copy params + for k, v := range c.params { + params[k] = v + } + // Extract potential additional params + p, err := event.Content.Meta.GetValue("params") + if err == nil { + p2, ok := p.(map[string]string) + if ok { + for k, v := range p2 { + params[k] = v + } + } + } + actMonitoringBeats.Put("index._type", t) + + bulk := [2]interface{}{ + actMonitoringBeats, + report.Event{ Timestamp: event.Content.Timestamp, Fields: event.Content.Fields, - }) - } + }, + } - _, err := c.es.BulkWith("_xpack", "monitoring", c.params, nil, bulk) - if err != nil { - batch.Retry() - return err + // Currently one request per event is sent. Reason is that each event can contain different + // interval params and X-Pack requires to send the interval param. + _, err = c.es.BulkWith("_xpack", "monitoring", params, nil, bulk[:]) + if err != nil { + failed = append(failed, event) + reason = err + } } - batch.ACK() - return nil + if len(failed) > 0 { + batch.RetryEvents(failed) + } else { + batch.ACK() + } + return reason } func (c *publishClient) Test(d testing.Driver) { c.es.Test(d) } + +func (c *publishClient) String() string { + return "publish(" + c.es.String() + ")" +} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/config.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/config.go index 073a5c7e..8f59cf79 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/config.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -20,10 +37,17 @@ type config struct { TLS *tlscommon.Config `config:"ssl"` MaxRetries int `config:"max_retries"` Timeout time.Duration `config:"timeout"` - Period time.Duration `config:"period"` + MetricsPeriod time.Duration `config:"metrics.period"` + StatePeriod time.Duration `config:"state.period"` BulkMaxSize int `config:"bulk_max_size" validate:"min=0"` BufferSize int `config:"buffer_size"` Tags []string `config:"tags"` + Backoff backoff `config:"backoff"` +} + +type backoff struct { + Init time.Duration + Max time.Duration } var defaultConfig = config{ @@ -38,8 +62,13 @@ var defaultConfig = config{ TLS: nil, MaxRetries: 3, Timeout: 60 * time.Second, - Period: 10 * time.Second, + MetricsPeriod: 10 * time.Second, + StatePeriod: 1 * time.Minute, BulkMaxSize: 50, BufferSize: 50, Tags: nil, + Backoff: backoff{ + Init: 1 * time.Second, + Max: 60 * time.Second, + }, } diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/elasticsearch.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/elasticsearch.go index eccedd9e..83115a9f 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/elasticsearch.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/elasticsearch.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -8,6 +25,8 @@ import ( "strings" "time" + "strconv" + "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/transport/tlscommon" @@ -26,7 +45,6 @@ import ( type reporter struct { done *stopper - period time.Duration checkRetry time.Duration // event metadata @@ -36,7 +54,8 @@ type reporter struct { // pipeline pipeline *pipeline.Pipeline client beat.Client - out outputs.Group + + out []outputs.NetworkClient } var debugf = logp.MakeDebug("monitoring") @@ -85,24 +104,22 @@ func makeReporter(beat beat.Info, cfg *common.Config) (report.Reporter, error) { for k, v := range config.Params { params[k] = v } - params["interval"] = config.Period.String() - - out := outputs.Group{ - Clients: nil, - BatchSize: windowSize, - Retry: 0, // no retry. on error drop events - } hosts, err := outputs.ReadHostList(cfg) if err != nil { return nil, err } + if len(hosts) == 0 { + return nil, errors.New("empty hosts list") + } + + var clients []outputs.NetworkClient for _, host := range hosts { client, err := makeClient(host, params, proxyURL, tlsConfig, &config) if err != nil { return nil, err } - out.Clients = append(out.Clients, client) + clients = append(clients, client) } queueFactory := func(e queue.Eventer) (queue.Queue, error) { @@ -112,12 +129,21 @@ func makeReporter(beat beat.Info, cfg *common.Config) (report.Reporter, error) { }), nil } - monitoring := monitoring.Default.NewRegistry("xpack.monitoring") + monitoring := monitoring.Default.GetRegistry("xpack.monitoring") + + outClient := outputs.NewFailoverClient(clients) + outClient = outputs.WithBackoff(outClient, config.Backoff.Init, config.Backoff.Max) pipeline, err := pipeline.New( beat, monitoring, - queueFactory, out, pipeline.Settings{ + queueFactory, + outputs.Group{ + Clients: []outputs.Client{outClient}, + BatchSize: windowSize, + Retry: 0, // no retry. Drop event on error. + }, + pipeline.Settings{ WaitClose: 0, WaitCloseMode: pipeline.NoWaitOnClose, }) @@ -125,7 +151,7 @@ func makeReporter(beat beat.Info, cfg *common.Config) (report.Reporter, error) { return nil, err } - client, err := pipeline.Connect() + pipeConn, err := pipeline.Connect() if err != nil { pipeline.Close() return nil, err @@ -133,15 +159,14 @@ func makeReporter(beat beat.Info, cfg *common.Config) (report.Reporter, error) { r := &reporter{ done: newStopper(), - period: config.Period, beatMeta: makeMeta(beat), tags: config.Tags, checkRetry: checkRetry, pipeline: pipeline, - client: client, - out: out, + client: pipeConn, + out: clients, } - go r.initLoop() + go r.initLoop(config) return r, nil } @@ -151,7 +176,7 @@ func (r *reporter) Stop() { r.pipeline.Close() } -func (r *reporter) initLoop() { +func (r *reporter) initLoop(c config) { debugf("Start monitoring endpoint init loop.") defer debugf("Finish monitoring endpoint init loop.") @@ -159,7 +184,7 @@ func (r *reporter) initLoop() { for { // Select one configured endpoint by random and check if xpack is available - client := r.out.Clients[rand.Intn(len(r.out.Clients))].(outputs.NetworkClient) + client := r.out[rand.Intn(len(r.out))] err := client.Connect() if err == nil { closing(client) @@ -182,15 +207,17 @@ func (r *reporter) initLoop() { logp.Info("Successfully connected to X-Pack Monitoring endpoint.") // Start collector and send loop if monitoring endpoint has been found. - go r.snapshotLoop() + go r.snapshotLoop("state", "state", c.StatePeriod) + // For backward compatibility stats is named to metrics. + go r.snapshotLoop("stats", "metrics", c.MetricsPeriod) } -func (r *reporter) snapshotLoop() { - ticker := time.NewTicker(r.period) +func (r *reporter) snapshotLoop(namespace, prefix string, period time.Duration) { + ticker := time.NewTicker(period) defer ticker.Stop() - logp.Info("Start monitoring metrics snapshot loop.") - defer logp.Info("Stop monitoring metrics snapshot loop.") + logp.Info("Start monitoring %s metrics snapshot loop with period %s.", namespace, period) + defer logp.Info("Stop monitoring %s metrics snapshot loop.", namespace) for { var ts time.Time @@ -201,23 +228,28 @@ func (r *reporter) snapshotLoop() { case ts = <-ticker.C: } - snapshot := makeSnapshot(monitoring.Default) + snapshot := makeSnapshot(monitoring.GetNamespace(namespace).GetRegistry()) if snapshot == nil { debugf("Empty snapshot.") continue } fields := common.MapStr{ - "beat": r.beatMeta, - "metrics": snapshot, + "beat": r.beatMeta, + prefix: snapshot, } if len(r.tags) > 0 { fields["tags"] = r.tags } - r.client.Publish(beat.Event{ Timestamp: ts, Fields: fields, + Meta: common.MapStr{ + "type": "beats_" + namespace, + "interval_ms": int64(period / time.Millisecond), + // Converting to seconds as interval only accepts `s` as unit + "params": map[string]string{"interval": strconv.Itoa(int(period/time.Second)) + "s"}, + }, }) } } diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/snapshot.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/snapshot.go index 913d5eb7..62766174 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/snapshot.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/snapshot.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/util.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/util.go index 102453a0..28a2b9dd 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/util.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import "sync" diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/util_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/util_test.go deleted file mode 100644 index 45e20ac6..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/elasticsearch/util_test.go +++ /dev/null @@ -1,37 +0,0 @@ -package elasticsearch - -import ( - "testing" - "time" -) - -func TestStopper(t *testing.T) { - runPar := func(name string, f func(*testing.T)) { - t.Run(name, func(t *testing.T) { - t.Parallel() - f(t) - }) - } - - st := newStopper() - runPar("wait on channel stop", func(*testing.T) { <-st.C() }) - runPar("use wait", func(*testing.T) { st.Wait() }) - runPar("use dowait", func(t *testing.T) { - i := 0 - st.DoWait(func() { i = 1 }) - if i != 1 { - t.Error("callback did not run") - } - }) - - // unblock all waiters - time.Sleep(10 * time.Millisecond) - st.Stop() - - // test either blocks or returns as stopper as been stopped - t.Run("wait after stop", func(t *testing.T) { st.Wait() }) - - // check subsequent stop does not panic - st.Stop() - st.Stop() -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/event.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/event.go index 6082520c..bdcab64c 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/event.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 report import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/config.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/config.go index fbea0e4c..4b642518 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/config.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/log.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/log.go index 34c94aae..8a196ab3 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/log.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/log.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 log import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/log_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/log_test.go deleted file mode 100644 index 8fe11d4e..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/log/log_test.go +++ /dev/null @@ -1,96 +0,0 @@ -package log - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/monitoring" -) - -var ( - prevSnap = monitoring.FlatSnapshot{ - Ints: map[string]int64{ - "count": 10, - "gone": 1, - }, - Floats: map[string]float64{ - "system.load.1": 2.0, - "float_counter": 1, - }, - } - curSnap = monitoring.FlatSnapshot{ - Ints: map[string]int64{ - "count": 20, - "new": 1, - }, - Floats: map[string]float64{ - "system.load.1": 1.2, - "float_counter": 3, - }, - } -) - -// Smoke test. -func TestStartStop(t *testing.T) { - r, err := MakeReporter(beat.Info{}, common.NewConfig()) - if err != nil { - t.Fatal(err) - } - r.Stop() -} - -func TestMakeDeltaSnapshot(t *testing.T) { - delta := makeDeltaSnapshot(prevSnap, curSnap) - assert.EqualValues(t, 10, delta.Ints["count"]) - assert.EqualValues(t, 1, delta.Ints["new"]) - assert.EqualValues(t, 1.2, delta.Floats["system.load.1"]) - assert.EqualValues(t, 2, delta.Floats["float_counter"]) - assert.NotContains(t, delta.Ints, "gone") -} - -func TestReporterLog(t *testing.T) { - logp.DevelopmentSetup(logp.ToObserverOutput()) - reporter := reporter{period: 30 * time.Second, logger: logp.NewLogger("monitoring")} - - reporter.logSnapshot(monitoring.FlatSnapshot{}) - logs := logp.ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, "No non-zero metrics in the last 30s", logs[0].Message) - } - - reporter.logSnapshot( - monitoring.FlatSnapshot{ - Bools: map[string]bool{ - "running": true, - }, - }, - ) - logs = logp.ObserverLogs().TakeAll() - if assert.Len(t, logs, 1) { - assert.Equal(t, "Non-zero metrics in the last 30s", logs[0].Message) - assertMapHas(t, logs[0].ContextMap(), "monitoring.metrics.running", true) - } - - reporter.logTotals(curSnap) - logs = logp.ObserverLogs().TakeAll() - if assert.Len(t, logs, 2) { - assert.Equal(t, "Total non-zero metrics", logs[0].Message) - assertMapHas(t, logs[0].ContextMap(), "monitoring.metrics.count", 20) - assertMapHas(t, logs[0].ContextMap(), "monitoring.metrics.new", 1) - assert.Contains(t, logs[1].Message, "Uptime: ") - } -} - -func assertMapHas(t *testing.T, m map[string]interface{}, key string, expectedValue interface{}) { - t.Helper() - v, err := common.MapStr(m).GetValue(key) - if err != nil { - t.Fatal(err) - } - assert.EqualValues(t, expectedValue, v) -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/report/report.go b/vendor/github.com/elastic/beats/libbeat/monitoring/report/report.go index 89b50aca..f5b02d39 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/report/report.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/report/report.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 report import ( diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/snapshot.go b/vendor/github.com/elastic/beats/libbeat/monitoring/snapshot.go index 49e2c149..351a7e3f 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/snapshot.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/snapshot.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring import "strings" @@ -5,10 +22,11 @@ import "strings" // FlatSnapshot represents a flatten snapshot of all metrics. // Names in the tree will be joined with `.` . type FlatSnapshot struct { - Bools map[string]bool - Ints map[string]int64 - Floats map[string]float64 - Strings map[string]string + Bools map[string]bool + Ints map[string]int64 + Floats map[string]float64 + Strings map[string]string + StringSlices map[string][]string } type flatSnapshotVisitor struct { @@ -51,10 +69,11 @@ func CollectFlatSnapshot(r *Registry, mode Mode, expvar bool) FlatSnapshot { func MakeFlatSnapshot() FlatSnapshot { return FlatSnapshot{ - Bools: map[string]bool{}, - Ints: map[string]int64{}, - Floats: map[string]float64{}, - Strings: map[string]string{}, + Bools: map[string]bool{}, + Ints: map[string]int64{}, + Floats: map[string]float64{}, + Strings: map[string]string{}, + StringSlices: map[string][]string{}, } } @@ -125,6 +144,10 @@ func (vs *flatSnapshotVisitor) OnFloat(f float64) { vs.snapshot.Floats[vs.getName()] = f } +func (vs *flatSnapshotVisitor) OnStringSlice(f []string) { + vs.snapshot.StringSlices[vs.getName()] = f +} + func newStructSnapshotVisitor() *structSnapshotVisitor { vs := &structSnapshotVisitor{} vs.key.stack = vs.key.stack0[:0] @@ -162,6 +185,11 @@ func (s *structSnapshotVisitor) OnString(str string) { s.setValue(str) } func (s *structSnapshotVisitor) OnBool(b bool) { s.setValue(b) } func (s *structSnapshotVisitor) OnInt(i int64) { s.setValue(i) } func (s *structSnapshotVisitor) OnFloat(f float64) { s.setValue(f) } +func (s *structSnapshotVisitor) OnStringSlice(f []string) { + c := make([]string, len(f)) + copy(c, f) + s.setValue(c) +} func (s *structSnapshotVisitor) setValue(v interface{}) { if s.event.current == nil { diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/snapshot_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/snapshot_test.go deleted file mode 100644 index e08a5651..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/snapshot_test.go +++ /dev/null @@ -1,89 +0,0 @@ -package monitoring - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestSnapshot(t *testing.T) { - tests := []struct { - name string - expected map[string]interface{} - build func(R *Registry) - }{ - { - "empty registry", - nil, - func(*Registry) {}, - }, - { - "empty if metric is not exposed", - nil, - func(R *Registry) { - NewInt(R, "test").Set(1) - }, - }, - { - "collect exposed metric", - map[string]interface{}{"test": int64(1)}, - func(R *Registry) { - NewInt(R, "test", Report).Set(1) - }, - }, - { - "do not report unexported namespace", - map[string]interface{}{"test": int64(0)}, - func(R *Registry) { - NewInt(R, "test", Report) - NewInt(R, "unexported.test") - }, - }, - { - "do not report empty nested exported", - map[string]interface{}{"test": int64(0)}, - func(R *Registry) { - metrics := R.NewRegistry("exported", Report) - NewInt(metrics, "unexported", DoNotReport) - NewInt(R, "test", Report) - }, - }, - { - "export namespaced as nested-document from registry instance", - map[string]interface{}{"exported": map[string]interface{}{"test": int64(0)}}, - func(R *Registry) { - metrics := R.NewRegistry("exported", Report) - NewInt(metrics, "test", Report) - NewInt(R, "unexported.test") - }, - }, - { - "export unmarked namespaced as nested-document from registry instance", - map[string]interface{}{"exported": map[string]interface{}{"test": int64(0)}}, - func(R *Registry) { - metrics := R.NewRegistry("exported", Report) - NewInt(metrics, "test") - NewInt(R, "unexported.test") - }, - }, - { - "export namespaced as nested-document without intermediate registry instance", - map[string]interface{}{"exported": map[string]interface{}{"test": int64(0)}}, - func(R *Registry) { - NewInt(R, "exported.test", Report) - NewInt(R, "unexported.test") - }, - }, - } - - for i, test := range tests { - t.Logf("run test (%v - %v): %v", i, test.name, test.expected) - - R := NewRegistry() - test.build(R) - snapshot := CollectStructSnapshot(R, Reported, false) - - t.Logf(" actual: %v", snapshot) - assert.Equal(t, test.expected, snapshot) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor.go b/vendor/github.com/elastic/beats/libbeat/monitoring/visitor.go index 2c8a15d6..d0996341 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/visitor.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring // Visitor interface supports traversing a monitoring registry @@ -11,6 +28,7 @@ type ValueVisitor interface { OnBool(b bool) OnInt(i int64) OnFloat(f float64) + OnStringSlice(f []string) } type RegistryVisitor interface { @@ -50,3 +68,8 @@ func ReportFloat(V Visitor, name string, value float64) { V.OnKey(name) V.OnFloat(value) } + +func ReportStringSlice(V Visitor, name string, value []string) { + V.OnKey(name) + V.OnStringSlice(value) +} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_expvar.go b/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_expvar.go index cdb67386..fea0cfb9 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_expvar.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_expvar.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring import ( @@ -59,7 +76,7 @@ func makeExparVisitor(level int, vs Visitor) func(expvar.KeyValue) { } // ignore if `monitoring` variable or some other internals -// autmoatically registered by expvar against our wishes +// automatically registered by expvar against our wishes func ignoreExpvar(level int, kv expvar.KeyValue) bool { switch kv.Value.(type) { case makeExpvar, Var: diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_expvar_test.go b/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_expvar_test.go deleted file mode 100644 index b11ef53c..00000000 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_expvar_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// +build !integration - -package monitoring - -import ( - "expvar" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestIterExpvarIgnoringMonitoringVars(t *testing.T) { - vars := map[string]int64{ - "sub.registry.v1": 1, - "sub.registry.v2": 2, - "v3": 3, - } - collected := map[string]int64{} - - reg := NewRegistry(PublishExpvar) - for name, v := range vars { - i := NewInt(reg, name, Report) - i.Add(v) - } - - DoExpvars(func(name string, v interface{}) { - if _, exists := vars[name]; exists { - collected[name] = v.(int64) - } - }) - assert.Equal(t, map[string]int64{}, collected) -} - -func TestIterExpvarCaptureVars(t *testing.T) { - i := getOrCreateInt("test.integer") - i.Set(42) - - s := getOrCreateString("test.string") - s.Set("testing") - - var m *expvar.Map - if v := expvar.Get("test.map"); v != nil { - m = v.(*expvar.Map) - } else { - m = expvar.NewMap("test.map") - m.Add("i1", 1) - m.Add("i2", 2) - } - - expected := map[string]interface{}{ - "test.integer": int64(42), - "test.string": "testing", - "test.map.i1": int64(1), - "test.map.i2": int64(2), - } - - collected := map[string]interface{}{} - DoExpvars(func(name string, v interface{}) { - if _, exists := expected[name]; exists { - collected[name] = v - } - }) - - assert.Equal(t, collected, expected) -} - -func getOrCreateInt(name string) *expvar.Int { - if v := expvar.Get(name); v != nil { - return v.(*expvar.Int) - } - return expvar.NewInt(name) -} - -func getOrCreateString(name string) *expvar.String { - if v := expvar.Get(name); v != nil { - return v.(*expvar.String) - } - return expvar.NewString(name) -} diff --git a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_kv.go b/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_kv.go index 32c6dbf3..4a3729c6 100644 --- a/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_kv.go +++ b/vendor/github.com/elastic/beats/libbeat/monitoring/visitor_kv.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitoring import "strings" @@ -35,8 +52,9 @@ func (vs *KeyValueVisitor) dropName() { vs.level = vs.level[:len(vs.level)-1] } -func (vs *KeyValueVisitor) OnString(s string) { vs.cb(vs.getName(), s) } -func (vs *KeyValueVisitor) OnBool(b bool) { vs.cb(vs.getName(), b) } -func (vs *KeyValueVisitor) OnNil() { vs.cb(vs.getName(), nil) } -func (vs *KeyValueVisitor) OnInt(i int64) { vs.cb(vs.getName(), i) } -func (vs *KeyValueVisitor) OnFloat(f float64) { vs.cb(vs.getName(), f) } +func (vs *KeyValueVisitor) OnString(s string) { vs.cb(vs.getName(), s) } +func (vs *KeyValueVisitor) OnBool(b bool) { vs.cb(vs.getName(), b) } +func (vs *KeyValueVisitor) OnNil() { vs.cb(vs.getName(), nil) } +func (vs *KeyValueVisitor) OnInt(i int64) { vs.cb(vs.getName(), i) } +func (vs *KeyValueVisitor) OnFloat(f float64) { vs.cb(vs.getName(), f) } +func (vs *KeyValueVisitor) OnStringSlice(f []string) { vs.cb(vs.getName(), f) } diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/backoff.go b/vendor/github.com/elastic/beats/libbeat/outputs/backoff.go index db04a6cc..1484bc42 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/backoff.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/backoff.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs import ( @@ -60,3 +77,7 @@ func (b *backoffClient) Test(d testing.Driver) { c.Test(d) } + +func (b *backoffClient) String() string { + return "backoff(" + b.client.String() + ")" +} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec.go index 9de8a684..790611dd 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 codec import "github.com/elastic/beats/libbeat/beat" diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec_reg.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec_reg.go index 3512db3d..7db8aee5 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec_reg.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/codec/codec_reg.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 codec import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/common.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/common.go index 7c6885e2..0377af86 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/common.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/codec/common.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 codec import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/format/format.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/format/format.go index e26bc269..0416222d 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/format/format.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/codec/format/format.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 format import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/format/format_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/format/format_test.go deleted file mode 100644 index 58a753d2..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/format/format_test.go +++ /dev/null @@ -1,27 +0,0 @@ -package format - -import ( - "testing" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/fmtstr" -) - -func TestFormatStringWriter(t *testing.T) { - t.SkipNow() - - format := fmtstr.MustCompileEvent("test %{[msg]}") - expectedValue := "test message" - - codec := New(format) - output, err := codec.Encode("test", &beat.Event{Fields: common.MapStr{"msg": "message"}}) - - if err != nil { - t.Errorf("Error during event write %v", err) - } else { - if string(output) != expectedValue { - t.Errorf("Expected value (%s) does not equal with output %s", expectedValue, output) - } - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/event.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/event.go index e6905d35..5ea4b420 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/event.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 json import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/json.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/json.go index fe9a4367..3f0433aa 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/json.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/json.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 json import ( @@ -14,18 +31,21 @@ import ( // Encoder for serializing a beat.Event to json. type Encoder struct { - buf bytes.Buffer - folder *gotype.Iterator - pretty bool + buf bytes.Buffer + folder *gotype.Iterator + version string + config config } type config struct { - Pretty bool + Pretty bool + EscapeHTML bool } var defaultConfig = config{ - Pretty: false, + Pretty: false, + EscapeHTML: true, } func init() { @@ -37,19 +57,23 @@ func init() { } } - return New(config.Pretty, info.Version), nil + return New(config.Pretty, config.EscapeHTML, info.Version), nil }) } // New creates a new json Encoder. -func New(pretty bool, version string) *Encoder { - e := &Encoder{pretty: pretty, version: version} +func New(pretty, escapeHTML bool, version string) *Encoder { + e := &Encoder{version: version, config: config{ + Pretty: pretty, + EscapeHTML: escapeHTML, + }} e.reset() return e } func (e *Encoder) reset() { visitor := json.NewVisitor(&e.buf) + visitor.SetEscapeHTML(e.config.EscapeHTML) var err error @@ -65,7 +89,7 @@ func (e *Encoder) reset() { } } -// Encode serializies a beat event to JSON. It adds additional metadata in the +// Encode serializes a beat event to JSON. It adds additional metadata in the // `@metadata` namespace. func (e *Encoder) Encode(index string, event *beat.Event) ([]byte, error) { e.buf.Reset() @@ -76,7 +100,7 @@ func (e *Encoder) Encode(index string, event *beat.Event) ([]byte, error) { } json := e.buf.Bytes() - if !e.pretty { + if !e.config.Pretty { return json, nil } diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/json_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/json_test.go deleted file mode 100644 index 3e9d0718..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/json/json_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package json - -import ( - "testing" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -func TestJsonCodec(t *testing.T) { - expectedValue := `{"@timestamp":"0001-01-01T00:00:00.000Z","@metadata":{"beat":"test","type":"doc","version":"1.2.3"},"msg":"message"}` - - codec := New(false, "1.2.3") - output, err := codec.Encode("test", &beat.Event{Fields: common.MapStr{"msg": "message"}}) - - if err != nil { - t.Errorf("Error during event write %v", err) - } else { - if string(output) != expectedValue { - t.Errorf("Expected value (%s) does not equal with output (%s)", expectedValue, output) - } - } -} - -func TestJsonWriterPrettyPrint(t *testing.T) { - expectedValue := `{ - "@timestamp": "0001-01-01T00:00:00.000Z", - "@metadata": { - "beat": "test", - "type": "doc", - "version": "1.2.3" - }, - "msg": "message" -}` - - codec := New(true, "1.2.3") - output, err := codec.Encode("test", &beat.Event{Fields: common.MapStr{"msg": "message"}}) - - if err != nil { - t.Errorf("Error during event write %v", err) - } else { - if string(output) != expectedValue { - t.Errorf("Expected value (%s) does not equal with output (%s)", expectedValue, output) - } - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/codec/plugin.go b/vendor/github.com/elastic/beats/libbeat/outputs/codec/plugin.go index 0d403d92..951bae24 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/codec/plugin.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/codec/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 codec import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/console/config.go b/vendor/github.com/elastic/beats/libbeat/outputs/console/config.go index c33c0f90..09debf38 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/console/config.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/console/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 console import "github.com/elastic/beats/libbeat/outputs/codec" diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/console/console.go b/vendor/github.com/elastic/beats/libbeat/outputs/console/console.go index 92dec50d..7958b8da 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/console/console.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/console/console.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 console import ( @@ -53,7 +70,7 @@ func makeConsole( return outputs.Fail(err) } } else { - enc = json.New(config.Pretty, beat.Version) + enc = json.New(config.Pretty, true, beat.Version) } index := beat.Beat @@ -143,3 +160,7 @@ func (c *console) writeBuffer(buf []byte) error { } return nil } + +func (c *console) String() string { + return "console" +} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/console/console_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/console/console_test.go deleted file mode 100644 index 4d150967..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/console/console_test.go +++ /dev/null @@ -1,117 +0,0 @@ -// +build !integration - -package console - -import ( - "bytes" - "io" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/fmtstr" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/codec" - "github.com/elastic/beats/libbeat/outputs/codec/format" - "github.com/elastic/beats/libbeat/outputs/codec/json" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/publisher" -) - -// capture stdout and return captured string -func withStdout(fn func()) (string, error) { - stdout := os.Stdout - - r, w, err := os.Pipe() - if err != nil { - return "", err - } - - os.Stdout = w - defer func() { - os.Stdout = stdout - }() - - outC := make(chan string) - go func() { - // capture all output - var buf bytes.Buffer - _, err = io.Copy(&buf, r) - r.Close() - outC <- buf.String() - }() - - fn() - w.Close() - result := <-outC - return result, err -} - -// TODO: add tests with other formatstr codecs - -func TestConsoleOutput(t *testing.T) { - tests := []struct { - title string - codec codec.Codec - events []beat.Event - expected string - }{ - { - "single json event (pretty=false)", - json.New(false, "1.2.3"), - []beat.Event{ - {Fields: event("field", "value")}, - }, - "{\"@timestamp\":\"0001-01-01T00:00:00.000Z\",\"@metadata\":{\"beat\":\"test\",\"type\":\"doc\",\"version\":\"1.2.3\"},\"field\":\"value\"}\n", - }, - { - "single json event (pretty=true)", - json.New(true, "1.2.3"), - []beat.Event{ - {Fields: event("field", "value")}, - }, - "{\n \"@timestamp\": \"0001-01-01T00:00:00.000Z\",\n \"@metadata\": {\n \"beat\": \"test\",\n \"type\": \"doc\",\n \"version\": \"1.2.3\"\n },\n \"field\": \"value\"\n}\n", - }, - // TODO: enable test after update fmtstr support to beat.Event - { - "event with custom format string", - format.New(fmtstr.MustCompileEvent("%{[event]}")), - []beat.Event{ - {Fields: event("event", "myevent")}, - }, - "myevent\n", - }, - } - - for _, test := range tests { - test := test - t.Run(test.title, func(t *testing.T) { - batch := outest.NewBatch(test.events...) - lines, err := run(test.codec, batch) - assert.Nil(t, err) - assert.Equal(t, test.expected, lines) - - // check batch correctly signalled - if !assert.Len(t, batch.Signals, 1) { - return - } - assert.Equal(t, outest.BatchACK, batch.Signals[0].Tag) - }) - } -} - -func run(codec codec.Codec, batches ...publisher.Batch) (string, error) { - return withStdout(func() { - c, _ := newConsole("test", outputs.NewNilObserver(), codec) - for _, b := range batches { - c.Publish(b) - } - }) -} - -func event(k, v string) common.MapStr { - return common.MapStr{k: v} -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api.go index 47870230..0f08a3a9 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_integration_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_integration_test.go deleted file mode 100644 index e8bb7c7e..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_integration_test.go +++ /dev/null @@ -1,134 +0,0 @@ -// +build integration - -package elasticsearch - -import ( - "encoding/json" - "fmt" - "net/http" - "os" - "strings" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/logp" -) - -func TestIndex(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("beats-test-index-%d", os.Getpid()) - - client := getTestingElasticsearch(t) - - body := map[string]interface{}{ - "user": "test", - "post_date": "2009-11-15T14:12:12", - "message": "trying out", - } - params := map[string]string{ - "refresh": "true", - } - _, resp, err := client.Index(index, "test", "1", params, body) - if err != nil { - t.Fatalf("Index() returns error: %s", err) - } - if !resp.Created && resp.Result != "created" { - t.Fatalf("Index() fails: %s", resp) - } - - body = map[string]interface{}{ - "query": map[string]interface{}{ - "match_all": map[string]interface{}{}, - }, - } - _, result, err := client.SearchURIWithBody(index, "", nil, map[string]interface{}{}) - if err != nil { - t.Errorf("SearchUriWithBody() returns an error: %s", err) - } - if result.Hits.Total != 1 { - t.Errorf("Wrong number of search results: %d", result.Hits.Total) - } - - params = map[string]string{ - "q": "user:test", - } - _, result, err = client.SearchURI(index, "test", params) - if err != nil { - t.Errorf("SearchUri() returns an error: %s", err) - } - if result.Hits.Total != 1 { - t.Errorf("Wrong number of search results: %d", result.Hits.Total) - } - - _, resp, err = client.Delete(index, "test", "1", nil) - if err != nil { - t.Errorf("Delete() returns error: %s", err) - } -} - -func TestIngest(t *testing.T) { - type obj map[string]interface{} - - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("beats-test-ingest-%d", os.Getpid()) - pipeline := fmt.Sprintf("beats-test-pipeline-%d", os.Getpid()) - - pipelineBody := obj{ - "description": "Test pipeline", - "processors": []obj{ - { - "lowercase": obj{ - "field": "testfield", - }, - }, - }, - } - - client := getTestingElasticsearch(t) - if strings.HasPrefix(client.Connection.version, "2.") { - t.Skip("Skipping tests as pipeline not available in 2.x releases") - } - - status, _, err := client.DeletePipeline(pipeline, nil) - if err != nil && status != http.StatusNotFound { - t.Fatal(err) - } - - _, resp, err := client.CreatePipeline(pipeline, nil, pipelineBody) - if err != nil { - t.Fatal(err) - } - if !resp.Acknowledged { - t.Fatalf("Test pipeline %v not created", pipeline) - } - - params := map[string]string{"refresh": "true"} - _, resp, err = client.Ingest(index, "test", pipeline, "1", params, obj{ - "testfield": "TEST", - }) - if err != nil { - t.Fatalf("Ingest() returns error: %s", err) - } - if !resp.Created && resp.Result != "created" { - t.Errorf("Ingest() fails: %s", resp) - } - - // get _source field from indexed document - _, docBody, err := client.apiCall("GET", index, "test", "1/_source", "", nil, nil) - if err != nil { - t.Fatal(err) - } - - doc := struct { - Field string `json:"testfield"` - }{} - err = json.Unmarshal(docBody, &doc) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, "test", doc.Field) -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_mock_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_mock_test.go deleted file mode 100644 index 18a9025c..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_mock_test.go +++ /dev/null @@ -1,121 +0,0 @@ -// +build !integration - -package elasticsearch - -import ( - "fmt" - "os" - - "encoding/json" - "net/http" - "net/http/httptest" - "strings" - "testing" - - "github.com/elastic/beats/libbeat/logp" -) - -func ElasticsearchMock(code int, body []byte) *httptest.Server { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.URL.Path == "/" { // send ok and a minimal JSON on ping - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json") - w.Write([]byte(`{"version":{"number":"5.0.0"}}`)) - return - } - - w.WriteHeader(code) - if body != nil { - w.Header().Set("Content-Type", "application/json") - w.Write(body) - } - })) - - return server -} - -func TestOneHostSuccessResp(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - body := map[string]interface{}{ - "user": "test", - "post_date": "2009-11-15T14:12:12", - "message": "trying out", - } - expectedResp, _ := json.Marshal(QueryResult{Ok: true, Index: index, Type: "test", ID: "1", Version: 1, Created: true}) - - server := ElasticsearchMock(200, expectedResp) - - client := newTestClient(server.URL) - - params := map[string]string{ - "refresh": "true", - } - _, resp, err := client.Index(index, "test", "1", params, body) - if err != nil { - t.Errorf("Index() returns error: %s", err) - } - if !resp.Created { - t.Errorf("Index() fails: %s", resp) - } -} - -func TestOneHost500Resp(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - body := map[string]interface{}{ - "user": "test", - "post_date": "2009-11-15T14:12:12", - "message": "trying out", - } - - server := ElasticsearchMock(http.StatusInternalServerError, []byte("Something wrong happened")) - - client := newTestClient(server.URL) - err := client.Connect() - if err != nil { - t.Fatalf("Failed to connect: %v", err) - } - - params := map[string]string{ - "refresh": "true", - } - _, _, err = client.Index(index, "test", "1", params, body) - - if err == nil { - t.Errorf("Index() should return error.") - } - - if !strings.Contains(err.Error(), "500 Internal Server Error") { - t.Errorf("Should return <500 Internal Server Error> instead of %v", err) - } -} - -func TestOneHost503Resp(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - body := map[string]interface{}{ - "user": "test", - "post_date": "2009-11-15T14:12:12", - "message": "trying out", - } - - server := ElasticsearchMock(503, []byte("Something wrong happened")) - - client := newTestClient(server.URL) - - params := map[string]string{ - "refresh": "true", - } - _, _, err := client.Index(index, "test", "1", params, body) - if err == nil { - t.Errorf("Index() should return error.") - } - - if !strings.Contains(err.Error(), "503 Service Unavailable") { - t.Errorf("Should return <503 Service Unavailable> instead of %v", err) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_test.go deleted file mode 100644 index 04c28baa..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/api_test.go +++ /dev/null @@ -1,155 +0,0 @@ -// Need for unit and integration tests -package elasticsearch - -import ( - "encoding/json" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs/outil" -) - -func GetValidQueryResult() QueryResult { - result := QueryResult{ - Ok: true, - Index: "testIndex", - Type: "testType", - ID: "12", - Source: []byte(`{ - "ok": true, - "_type":"testType", - "_index":"testIndex", - "_id":"12", - "_version": 2, - "found": true, - "exists": true, - "created": true, - "lastname":"ruflin", - "firstname": "nicolas"}`, - ), - Version: 2, - Found: true, - Exists: true, - Created: true, - Matches: []string{"abc", "def"}, - } - - return result -} - -func GetValidSearchResults() SearchResults { - hits := Hits{ - Total: 0, - Hits: nil, - } - - results := SearchResults{ - Took: 19, - Shards: []byte(`{ - "total" : 3, - "successful" : 2, - "failed" : 1 - }`), - Hits: hits, - Aggs: nil, - } - - return results -} - -func TestReadQueryResult(t *testing.T) { - queryResult := GetValidQueryResult() - - json := queryResult.Source - result, err := readQueryResult(json) - - assert.Nil(t, err) - assert.Equal(t, queryResult.Ok, result.Ok) - assert.Equal(t, queryResult.Index, result.Index) - assert.Equal(t, queryResult.Type, result.Type) - assert.Equal(t, queryResult.ID, result.ID) - assert.Equal(t, queryResult.Version, result.Version) - assert.Equal(t, queryResult.Found, result.Found) - assert.Equal(t, queryResult.Exists, result.Exists) - assert.Equal(t, queryResult.Created, result.Created) -} - -// Check empty query result object -func TestReadQueryResult_empty(t *testing.T) { - result, err := readQueryResult(nil) - assert.Nil(t, result) - assert.Nil(t, err) -} - -// Check invalid query result object -func TestReadQueryResult_invalid(t *testing.T) { - // Invalid json string - json := []byte(`{"name":"ruflin","234"}`) - - result, err := readQueryResult(json) - assert.Nil(t, result) - assert.Error(t, err) -} - -func TestReadSearchResult(t *testing.T) { - resultsObject := GetValidSearchResults() - - json := []byte(`{ - "took" : 19, - "_shards" : { - "total" : 3, - "successful" : 2, - "failed" : 1 - }, - "hits" : {}, - "aggs" : {} - }`) - - results, err := readSearchResult(json) - - assert.Nil(t, err) - assert.Equal(t, resultsObject.Took, results.Took) - assert.Equal(t, resultsObject.Hits, results.Hits) - assert.Equal(t, resultsObject.Shards, results.Shards) - assert.Equal(t, resultsObject.Aggs, results.Aggs) -} - -func TestReadSearchResult_empty(t *testing.T) { - results, err := readSearchResult(nil) - assert.Nil(t, results) - assert.Nil(t, err) -} - -func TestReadSearchResult_invalid(t *testing.T) { - // Invalid json string - json := []byte(`{"took":"19","234"}`) - - results, err := readSearchResult(json) - assert.Nil(t, results) - assert.Error(t, err) -} - -func newTestClient(url string) *Client { - client, err := NewClient(ClientSettings{ - URL: url, - Index: outil.MakeSelector(), - Timeout: 60 * time.Second, - CompressionLevel: 3, - }, nil) - if err != nil { - panic(err) - } - return client -} - -func (r QueryResult) String() string { - out, err := json.Marshal(r) - if err != nil { - logp.Warn("failed to marshal QueryResult (%v): %#v", err, r) - return "ERROR" - } - return string(out) -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi.go index 0eb16f08..91eb5a29 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi_integration_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi_integration_test.go deleted file mode 100644 index d7579b58..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi_integration_test.go +++ /dev/null @@ -1,172 +0,0 @@ -// +build integration - -package elasticsearch - -import ( - "fmt" - "os" - "testing" - - "github.com/elastic/beats/libbeat/logp" -) - -func TestBulk(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - client := getTestingElasticsearch(t) - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - - ops := []map[string]interface{}{ - { - "index": map[string]interface{}{ - "_index": index, - "_type": "type1", - "_id": "1", - }, - }, - { - "field1": "value1", - }, - } - - body := make([]interface{}, 0, 10) - for _, op := range ops { - body = append(body, op) - } - - params := map[string]string{ - "refresh": "true", - } - _, err := client.Bulk(index, "type1", params, body) - if err != nil { - t.Fatalf("Bulk() returned error: %s", err) - } - - params = map[string]string{ - "q": "field1:value1", - } - _, result, err := client.SearchURI(index, "type1", params) - if err != nil { - t.Fatalf("SearchUri() returns an error: %s", err) - } - if result.Hits.Total != 1 { - t.Errorf("Wrong number of search results: %d", result.Hits.Total) - } - - _, _, err = client.Delete(index, "", "", nil) - if err != nil { - t.Errorf("Delete() returns error: %s", err) - } -} - -func TestEmptyBulk(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - client := getTestingElasticsearch(t) - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - - body := make([]interface{}, 0, 10) - - params := map[string]string{ - "refresh": "true", - } - resp, err := client.Bulk(index, "type1", params, body) - if err != nil { - t.Fatalf("Bulk() returned error: %s", err) - } - if resp != nil { - t.Errorf("Unexpected response: %s", resp) - } -} - -func TestBulkMoreOperations(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - client := getTestingElasticsearch(t) - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - - ops := []map[string]interface{}{ - { - "index": map[string]interface{}{ - "_index": index, - "_type": "type1", - "_id": "1", - }, - }, - { - "field1": "value1", - }, - - { - "delete": map[string]interface{}{ - "_index": index, - "_type": "type1", - "_id": "2", - }, - }, - - { - "create": map[string]interface{}{ - "_index": index, - "_type": "type1", - "_id": "3", - }, - }, - { - "field1": "value3", - }, - - { - "update": map[string]interface{}{ - "_id": "1", - "_index": index, - "_type": "type1", - }, - }, - { - "doc": map[string]interface{}{ - "field2": "value2", - }, - }, - } - - body := make([]interface{}, 0, 10) - for _, op := range ops { - body = append(body, op) - } - - params := map[string]string{ - "refresh": "true", - } - resp, err := client.Bulk(index, "type1", params, body) - if err != nil { - t.Fatalf("Bulk() returned error: %s [%s]", err, resp) - } - - params = map[string]string{ - "q": "field1:value3", - } - _, result, err := client.SearchURI(index, "type1", params) - if err != nil { - t.Fatalf("SearchUri() returns an error: %s", err) - } - if result.Hits.Total != 1 { - t.Errorf("Wrong number of search results: %d", result.Hits.Total) - } - - params = map[string]string{ - "q": "field2:value2", - } - _, result, err = client.SearchURI(index, "type1", params) - if err != nil { - t.Fatalf("SearchUri() returns an error: %s", err) - } - if result.Hits.Total != 1 { - t.Errorf("Wrong number of search results: %d", result.Hits.Total) - } - - _, _, err = client.Delete(index, "", "", nil) - if err != nil { - t.Errorf("Delete() returns error: %s", err) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi_mock_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi_mock_test.go deleted file mode 100644 index 96d8775d..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/bulkapi_mock_test.go +++ /dev/null @@ -1,134 +0,0 @@ -// +build !integration - -package elasticsearch - -import ( - "encoding/json" - "fmt" - "net/http" - "os" - "strings" - "testing" - - "github.com/elastic/beats/libbeat/logp" -) - -func TestOneHostSuccessResp_Bulk(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - expectedResp, _ := json.Marshal(QueryResult{Ok: true, Index: index, Type: "type1", ID: "1", Version: 1, Created: true}) - - ops := []map[string]interface{}{ - { - "index": map[string]interface{}{ - "_index": index, - "_type": "type1", - "_id": "1", - }, - }, - { - "field1": "value1", - }, - } - - body := make([]interface{}, 0, 10) - for _, op := range ops { - body = append(body, op) - } - - server := ElasticsearchMock(200, expectedResp) - - client := newTestClient(server.URL) - - params := map[string]string{ - "refresh": "true", - } - resp, err := client.Bulk(index, "type1", params, body) - if err != nil { - t.Errorf("Bulk() returns error: %s", err) - } - if !resp.Created { - t.Errorf("Bulk() fails: %s", resp) - } -} - -func TestOneHost500Resp_Bulk(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - - ops := []map[string]interface{}{ - { - "index": map[string]interface{}{ - "_index": index, - "_type": "type1", - "_id": "1", - }, - }, - { - "field1": "value1", - }, - } - - body := make([]interface{}, 0, 10) - for _, op := range ops { - body = append(body, op) - } - - server := ElasticsearchMock(http.StatusInternalServerError, []byte("Something wrong happened")) - - client := newTestClient(server.URL) - - params := map[string]string{ - "refresh": "true", - } - _, err := client.Bulk(index, "type1", params, body) - if err == nil { - t.Errorf("Bulk() should return error.") - } - - if !strings.Contains(err.Error(), "500 Internal Server Error") { - t.Errorf("Should return <500 Internal Server Error> instead of %v", err) - } -} - -func TestOneHost503Resp_Bulk(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := fmt.Sprintf("packetbeat-unittest-%d", os.Getpid()) - - ops := []map[string]interface{}{ - { - "index": map[string]interface{}{ - "_index": index, - "_type": "type1", - "_id": "1", - }, - }, - { - "field1": "value1", - }, - } - - body := make([]interface{}, 0, 10) - for _, op := range ops { - body = append(body, op) - } - - server := ElasticsearchMock(503, []byte("Something wrong happened")) - - client := newTestClient(server.URL) - - params := map[string]string{ - "refresh": "true", - } - _, err := client.Bulk(index, "type1", params, body) - if err == nil { - t.Errorf("Bulk() should return error.") - } - - if !strings.Contains(err.Error(), "503 Service Unavailable") { - t.Errorf("Should return <503 Service Unavailable> instead of %v", err) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client.go index 93c3522e..2bd1c06a 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -49,6 +66,7 @@ type ClientSettings struct { Proxy *url.URL TLS *transport.TLSConfig Username, Password string + EscapeHTML bool Parameters map[string]string Headers map[string]string Index outil.Selector @@ -167,9 +185,9 @@ func NewClient( var encoder bodyEncoder compression := s.CompressionLevel if compression == 0 { - encoder = newJSONEncoder(nil) + encoder = newJSONEncoder(nil, s.EscapeHTML) } else { - encoder, err = newGzipEncoder(compression, nil) + encoder, err = newGzipEncoder(compression, nil, s.EscapeHTML) if err != nil { return nil, err } @@ -300,7 +318,7 @@ func (client *Client) publishEvents( return data, sendErr } - debugf("PublishEvents: %d events have been published to elasticsearch in %v.", + debugf("PublishEvents: %d events have been published to elasticsearch in %v.", len(data), time.Now().Sub(begin)) @@ -445,7 +463,7 @@ func bulkCollectPublishFails( data []publisher.Event, ) ([]publisher.Event, bulkResultStats) { if err := reader.expectDict(); err != nil { - logp.Err("Failed to parse bulk respose: expected JSON object") + logp.Err("Failed to parse bulk response: expected JSON object") return nil, bulkResultStats{} } @@ -472,7 +490,7 @@ func bulkCollectPublishFails( // check items field is an array if err := reader.expectArray(); err != nil { - logp.Err("Failed to parse bulk respose: expected items array") + logp.Err("Failed to parse bulk response: expected items array") return nil, bulkResultStats{} } @@ -646,6 +664,10 @@ func (client *Client) Test(d testing.Driver) { }) } +func (client *Client) String() string { + return "elasticsearch(" + client.Connection.URL + ")" +} + // Connect connects the client. func (conn *Connection) Connect() error { var err error diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client_integration_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client_integration_test.go deleted file mode 100644 index b5f67756..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client_integration_test.go +++ /dev/null @@ -1,288 +0,0 @@ -// +build integration - -package elasticsearch - -import ( - "math/rand" - "strings" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/elasticsearch/internal" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/outputs/outil" -) - -func TestClientConnect(t *testing.T) { - client := getTestingElasticsearch(t) - err := client.Connect() - assert.NoError(t, err) -} - -func TestClientPublishEvent(t *testing.T) { - index := "beat-int-pub-single-event" - output, client := connectTestEs(t, map[string]interface{}{ - "index": index, - }) - - // drop old index preparing test - client.Delete(index, "", "", nil) - - batch := outest.NewBatch(beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "type": "libbeat", - "message": "Test message from libbeat", - }, - }) - - err := output.Publish(batch) - if err != nil { - t.Fatal(err) - } - - _, _, err = client.Refresh(index) - if err != nil { - t.Fatal(err) - } - - _, resp, err := client.CountSearchURI(index, "", nil) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, 1, resp.Count) -} - -func TestClientPublishEventWithPipeline(t *testing.T) { - type obj map[string]interface{} - - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := "beat-int-pub-single-with-pipeline" - pipeline := "beat-int-pub-single-pipeline" - - output, client := connectTestEs(t, obj{ - "index": index, - "pipeline": "%{[pipeline]}", - }) - client.Delete(index, "", "", nil) - - // Check version - if strings.HasPrefix(client.Connection.version, "2.") { - t.Skip("Skipping tests as pipeline not available in 2.x releases") - } - - publish := func(event beat.Event) { - err := output.Publish(outest.NewBatch(event)) - if err != nil { - t.Fatal(err) - } - } - - getCount := func(query string) int { - _, resp, err := client.CountSearchURI(index, "", map[string]string{ - "q": query, - }) - if err != nil { - t.Fatal(err) - } - return resp.Count - } - - pipelineBody := obj{ - "description": "Test pipeline", - "processors": []obj{ - { - "set": obj{ - "field": "testfield", - "value": 1, - }, - }, - }, - } - - client.DeletePipeline(pipeline, nil) - _, resp, err := client.CreatePipeline(pipeline, nil, pipelineBody) - if err != nil { - t.Fatal(err) - } - if !resp.Acknowledged { - t.Fatalf("Test pipeline %v not created", pipeline) - } - - publish(beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "type": "libbeat", - "message": "Test message 1", - "pipeline": pipeline, - "testfield": 0, - }}) - publish(beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "type": "libbeat", - "message": "Test message 2", - "testfield": 0, - }}) - - _, _, err = client.Refresh(index) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, 1, getCount("testfield:1")) // with pipeline 1 - assert.Equal(t, 1, getCount("testfield:0")) // no pipeline -} - -func TestClientBulkPublishEventsWithPipeline(t *testing.T) { - type obj map[string]interface{} - - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - index := "beat-int-pub-bulk-with-pipeline" - pipeline := "beat-int-pub-bulk-pipeline" - - output, client := connectTestEs(t, obj{ - "index": index, - "pipeline": "%{[pipeline]}", - }) - client.Delete(index, "", "", nil) - - if strings.HasPrefix(client.Connection.version, "2.") { - t.Skip("Skipping tests as pipeline not available in 2.x releases") - } - - publish := func(events ...beat.Event) { - err := output.Publish(outest.NewBatch(events...)) - if err != nil { - t.Fatal(err) - } - } - - getCount := func(query string) int { - _, resp, err := client.CountSearchURI(index, "", map[string]string{ - "q": query, - }) - if err != nil { - t.Fatal(err) - } - return resp.Count - } - - pipelineBody := obj{ - "description": "Test pipeline", - "processors": []obj{ - { - "set": obj{ - "field": "testfield", - "value": 1, - }, - }, - }, - } - - client.DeletePipeline(pipeline, nil) - _, resp, err := client.CreatePipeline(pipeline, nil, pipelineBody) - if err != nil { - t.Fatal(err) - } - if !resp.Acknowledged { - t.Fatalf("Test pipeline %v not created", pipeline) - } - - publish( - beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "type": "libbeat", - "message": "Test message 1", - "pipeline": pipeline, - "testfield": 0, - }}, - beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "type": "libbeat", - "message": "Test message 2", - "testfield": 0, - }}, - ) - - _, _, err = client.Refresh(index) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, 1, getCount("testfield:1")) // with pipeline 1 - assert.Equal(t, 1, getCount("testfield:0")) // no pipeline -} - -func connectTestEs(t *testing.T, cfg interface{}) (outputs.Client, *Client) { - config, err := common.NewConfigFrom(map[string]interface{}{ - "hosts": internal.GetEsHost(), - "username": internal.GetUser(), - "password": internal.GetPass(), - "template.enabled": false, - }) - if err != nil { - t.Fatal(err) - } - - tmp, err := common.NewConfigFrom(cfg) - if err != nil { - t.Fatal(err) - } - - err = config.Merge(tmp) - if err != nil { - t.Fatal(err) - } - - output, err := makeES(beat.Info{Beat: "libbeat"}, outputs.NewNilObserver(), config) - if err != nil { - t.Fatal(err) - } - - type clientWrap interface { - outputs.NetworkClient - Client() outputs.NetworkClient - } - client := randomClient(output).(clientWrap).Client().(*Client) - - // Load version number - client.Connect() - - return client, client -} - -// getTestingElasticsearch creates a test client. -func getTestingElasticsearch(t internal.TestLogger) *Client { - client, err := NewClient(ClientSettings{ - URL: internal.GetURL(), - Index: outil.MakeSelector(), - Username: internal.GetUser(), - Password: internal.GetUser(), - Timeout: 60 * time.Second, - CompressionLevel: 3, - }, nil) - internal.InitClient(t, client, err) - return client -} - -func randomClient(grp outputs.Group) outputs.NetworkClient { - L := len(grp.Clients) - if L == 0 { - panic("no elasticsearch client") - } - - client := grp.Clients[rand.Intn(L)] - return client.(outputs.NetworkClient) -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client_test.go deleted file mode 100644 index bd38e329..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/client_test.go +++ /dev/null @@ -1,364 +0,0 @@ -// +build !integration - -package elasticsearch - -import ( - "fmt" - "net/http" - "net/http/httptest" - "strings" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/fmtstr" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/outputs/outil" - "github.com/elastic/beats/libbeat/publisher" -) - -func readStatusItem(in []byte) (int, string, error) { - reader := newJSONReader(in) - code, msg, err := itemStatus(reader) - return code, string(msg), err -} - -func TestESNoErrorStatus(t *testing.T) { - response := []byte(`{"create": {"status": 200}}`) - code, msg, err := readStatusItem(response) - - assert.Nil(t, err) - assert.Equal(t, 200, code) - assert.Equal(t, "", msg) -} - -func TestES1StyleErrorStatus(t *testing.T) { - response := []byte(`{"create": {"status": 400, "error": "test error"}}`) - code, msg, err := readStatusItem(response) - - assert.Nil(t, err) - assert.Equal(t, 400, code) - assert.Equal(t, `"test error"`, msg) -} - -func TestES2StyleErrorStatus(t *testing.T) { - response := []byte(`{"create": {"status": 400, "error": {"reason": "test_error"}}}`) - code, msg, err := readStatusItem(response) - - assert.Nil(t, err) - assert.Equal(t, 400, code) - assert.Equal(t, `{"reason": "test_error"}`, msg) -} - -func TestES2StyleExtendedErrorStatus(t *testing.T) { - response := []byte(` - { - "create": { - "status": 400, - "error": { - "reason": "test_error", - "transient": false, - "extra": null - } - } - }`) - code, _, err := readStatusItem(response) - - assert.Nil(t, err) - assert.Equal(t, 400, code) -} - -func TestCollectPublishFailsNone(t *testing.T) { - N := 100 - item := `{"create": {"status": 200}},` - response := []byte(`{"items": [` + strings.Repeat(item, N) + `]}`) - - event := common.MapStr{"field": 1} - events := make([]publisher.Event, N) - for i := 0; i < N; i++ { - events[i] = publisher.Event{Content: beat.Event{Fields: event}} - } - - reader := newJSONReader(response) - res, _ := bulkCollectPublishFails(reader, events) - assert.Equal(t, 0, len(res)) -} - -func TestCollectPublishFailMiddle(t *testing.T) { - response := []byte(` - { "items": [ - {"create": {"status": 200}}, - {"create": {"status": 429, "error": "ups"}}, - {"create": {"status": 200}} - ]} - `) - - event := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 1}}} - eventFail := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 2}}} - events := []publisher.Event{event, eventFail, event} - - reader := newJSONReader(response) - res, _ := bulkCollectPublishFails(reader, events) - assert.Equal(t, 1, len(res)) - if len(res) == 1 { - assert.Equal(t, eventFail, res[0]) - } -} - -func TestCollectPublishFailAll(t *testing.T) { - response := []byte(` - { "items": [ - {"create": {"status": 429, "error": "ups"}}, - {"create": {"status": 429, "error": "ups"}}, - {"create": {"status": 429, "error": "ups"}} - ]} - `) - - event := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 2}}} - events := []publisher.Event{event, event, event} - - reader := newJSONReader(response) - res, _ := bulkCollectPublishFails(reader, events) - assert.Equal(t, 3, len(res)) - assert.Equal(t, events, res) -} - -func TestCollectPipelinePublishFail(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("elasticsearch")) - - response := []byte(`{ - "took": 0, "ingest_took": 0, "errors": true, - "items": [ - { - "index": { - "_index": "filebeat-2016.08.10", - "_type": "log", - "_id": null, - "status": 500, - "error": { - "type": "exception", - "reason": "java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: field [fail_on_purpose] not present as part of path [fail_on_purpose]", - "caused_by": { - "type": "illegal_argument_exception", - "reason": "java.lang.IllegalArgumentException: field [fail_on_purpose] not present as part of path [fail_on_purpose]", - "caused_by": { - "type": "illegal_argument_exception", - "reason": "field [fail_on_purpose] not present as part of path [fail_on_purpose]" - } - }, - "header": { - "processor_type": "lowercase" - } - } - } - } - ] - }`) - - event := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 2}}} - events := []publisher.Event{event} - - reader := newJSONReader(response) - res, _ := bulkCollectPublishFails(reader, events) - assert.Equal(t, 1, len(res)) - assert.Equal(t, events, res) -} - -func TestGetIndexStandard(t *testing.T) { - ts := time.Now().UTC() - extension := fmt.Sprintf("%d.%02d.%02d", ts.Year(), ts.Month(), ts.Day()) - fields := common.MapStr{"field": 1} - - pattern := "beatname-%{+yyyy.MM.dd}" - fmtstr := fmtstr.MustCompileEvent(pattern) - indexSel := outil.MakeSelector(outil.FmtSelectorExpr(fmtstr, "")) - - event := &beat.Event{Timestamp: ts, Fields: fields} - index, _ := getIndex(event, indexSel) - assert.Equal(t, index, "beatname-"+extension) -} - -func TestGetIndexOverwrite(t *testing.T) { - time := time.Now().UTC() - extension := fmt.Sprintf("%d.%02d.%02d", time.Year(), time.Month(), time.Day()) - - fields := common.MapStr{ - "@timestamp": common.Time(time), - "field": 1, - "beat": common.MapStr{ - "name": "testbeat", - }, - } - - pattern := "beatname-%%{+yyyy.MM.dd}" - fmtstr := fmtstr.MustCompileEvent(pattern) - indexSel := outil.MakeSelector(outil.FmtSelectorExpr(fmtstr, "")) - - event := &beat.Event{ - Timestamp: time, - Meta: map[string]interface{}{ - "index": "dynamicindex", - }, - Fields: fields} - index, _ := getIndex(event, indexSel) - expected := "dynamicindex-" + extension - assert.Equal(t, expected, index) -} - -func BenchmarkCollectPublishFailsNone(b *testing.B) { - response := []byte(` - { "items": [ - {"create": {"status": 200}}, - {"create": {"status": 200}}, - {"create": {"status": 200}} - ]} - `) - - event := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 1}}} - events := []publisher.Event{event, event, event} - - reader := newJSONReader(nil) - for i := 0; i < b.N; i++ { - reader.init(response) - res, _ := bulkCollectPublishFails(reader, events) - if len(res) != 0 { - b.Fail() - } - } -} - -func BenchmarkCollectPublishFailMiddle(b *testing.B) { - response := []byte(` - { "items": [ - {"create": {"status": 200}}, - {"create": {"status": 429, "error": "ups"}}, - {"create": {"status": 200}} - ]} - `) - - event := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 1}}} - eventFail := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 2}}} - events := []publisher.Event{event, eventFail, event} - - reader := newJSONReader(nil) - for i := 0; i < b.N; i++ { - reader.init(response) - res, _ := bulkCollectPublishFails(reader, events) - if len(res) != 1 { - b.Fail() - } - } -} - -func BenchmarkCollectPublishFailAll(b *testing.B) { - response := []byte(` - { "items": [ - {"creatMiddlee": {"status": 429, "error": "ups"}}, - {"creatMiddlee": {"status": 429, "error": "ups"}}, - {"creatMiddlee": {"status": 429, "error": "ups"}} - ]} - `) - - event := publisher.Event{Content: beat.Event{Fields: common.MapStr{"field": 2}}} - events := []publisher.Event{event, event, event} - - reader := newJSONReader(nil) - for i := 0; i < b.N; i++ { - reader.init(response) - res, _ := bulkCollectPublishFails(reader, events) - if len(res) != 3 { - b.Fail() - } - } -} - -func TestClientWithHeaders(t *testing.T) { - requestCount := 0 - // start a mock HTTP server - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - assert.Equal(t, "testing value", r.Header.Get("X-Test")) - // from the documentation: https://golang.org/pkg/net/http/ - // For incoming requests, the Host header is promoted to the - // Request.Host field and removed from the Header map. - assert.Equal(t, "myhost.local", r.Host) - fmt.Fprintln(w, "Hello, client") - requestCount++ - })) - defer ts.Close() - - client, err := NewClient(ClientSettings{ - URL: ts.URL, - Index: outil.MakeSelector(outil.ConstSelectorExpr("test")), - Headers: map[string]string{ - "host": "myhost.local", - "X-Test": "testing value", - }, - }, nil) - assert.NoError(t, err) - - // simple ping - client.Ping() - assert.Equal(t, 1, requestCount) - - // bulk request - event := beat.Event{Fields: common.MapStr{ - "@timestamp": common.Time(time.Now()), - "type": "libbeat", - "message": "Test message from libbeat", - }} - - batch := outest.NewBatch(event, event, event) - err = client.Publish(batch) - assert.NoError(t, err) - assert.Equal(t, 2, requestCount) -} - -func TestAddToURL(t *testing.T) { - type Test struct { - url string - path string - pipeline string - params map[string]string - expected string - } - tests := []Test{ - { - url: "localhost:9200", - path: "/path", - pipeline: "", - params: make(map[string]string), - expected: "localhost:9200/path", - }, - { - url: "localhost:9200/", - path: "/path", - pipeline: "", - params: make(map[string]string), - expected: "localhost:9200/path", - }, - { - url: "localhost:9200", - path: "/path", - pipeline: "pipeline_1", - params: make(map[string]string), - expected: "localhost:9200/path?pipeline=pipeline_1", - }, - { - url: "localhost:9200/", - path: "/path", - pipeline: "", - params: map[string]string{ - "param": "value", - }, - expected: "localhost:9200/path?param=value", - }, - } - for _, test := range tests { - url := addToURL(test.url, test.path, test.pipeline, test.params) - assert.Equal(t, url, test.expected) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/config.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/config.go index e3e16f6f..c398f819 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/config.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -16,6 +33,7 @@ type elasticsearchConfig struct { ProxyURL string `config:"proxy_url"` LoadBalance bool `config:"loadbalance"` CompressionLevel int `config:"compression_level" validate:"min=0, max=9"` + EscapeHTML bool `config:"escape_html"` TLS *tlscommon.Config `config:"ssl"` BulkMaxSize int `config:"bulk_max_size"` MaxRetries int `config:"max_retries"` @@ -43,6 +61,7 @@ var ( Timeout: 90 * time.Second, MaxRetries: 3, CompressionLevel: 0, + EscapeHTML: true, TLS: nil, LoadBalance: true, Backoff: Backoff{ diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/elasticsearch.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/elasticsearch.go index 163b79b8..b058b6f4 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/elasticsearch.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/elasticsearch.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -5,6 +22,8 @@ import ( "fmt" "sync" + uuid "github.com/satori/go.uuid" + "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/transport/tlscommon" @@ -32,20 +51,48 @@ var ( ErrResponseRead = errors.New("bulk item status parse failed") ) +// Callbacks must not depend on the result of a previous one, +// because the ordering is not fixed. type callbacksRegistry struct { - callbacks []connectCallback + callbacks map[uuid.UUID]connectCallback mutex sync.Mutex } // XXX: it would be fantastic to do this without a package global -var connectCallbackRegistry callbacksRegistry +var connectCallbackRegistry = newCallbacksRegistry() + +func newCallbacksRegistry() callbacksRegistry { + return callbacksRegistry{ + callbacks: make(map[uuid.UUID]connectCallback), + } +} // RegisterConnectCallback registers a callback for the elasticsearch output // The callback is called each time the client connects to elasticsearch. -func RegisterConnectCallback(callback connectCallback) { +// It returns the key of the newly added callback, so it can be deregistered later. +func RegisterConnectCallback(callback connectCallback) uuid.UUID { connectCallbackRegistry.mutex.Lock() defer connectCallbackRegistry.mutex.Unlock() - connectCallbackRegistry.callbacks = append(connectCallbackRegistry.callbacks, callback) + + // find the next unique key + var key uuid.UUID + exists := true + for exists { + key = uuid.NewV4() + _, exists = connectCallbackRegistry.callbacks[key] + } + + connectCallbackRegistry.callbacks[key] = callback + return key +} + +// DeregisterConnectCallback deregisters a callback for the elasticsearch output +// specified by its key. If a callback does not exist, nothing happens. +func DeregisterConnectCallback(key uuid.UUID) { + connectCallbackRegistry.mutex.Lock() + defer connectCallbackRegistry.mutex.Unlock() + + delete(connectCallbackRegistry.callbacks, key) } func makeES( @@ -137,6 +184,7 @@ func makeES( Timeout: config.Timeout, CompressionLevel: config.CompressionLevel, Observer: observer, + EscapeHTML: config.EscapeHTML, }, &connectCallbackRegistry) if err != nil { return outputs.Fail(err) diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/enc.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/enc.go index ec073880..c8e91a31 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/enc.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/enc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -36,12 +53,16 @@ type bulkWriter interface { type jsonEncoder struct { buf *bytes.Buffer folder *gotype.Iterator + + escapeHTML bool } type gzipEncoder struct { buf *bytes.Buffer gzip *gzip.Writer folder *gotype.Iterator + + escapeHTML bool } type event struct { @@ -49,11 +70,11 @@ type event struct { Fields common.MapStr `struct:",inline"` } -func newJSONEncoder(buf *bytes.Buffer) *jsonEncoder { +func newJSONEncoder(buf *bytes.Buffer, escapeHTML bool) *jsonEncoder { if buf == nil { buf = bytes.NewBuffer(nil) } - e := &jsonEncoder{buf: buf} + e := &jsonEncoder{buf: buf, escapeHTML: escapeHTML} e.resetState() return e } @@ -65,6 +86,8 @@ func (b *jsonEncoder) Reset() { func (b *jsonEncoder) resetState() { var err error visitor := json.NewVisitor(b.buf) + visitor.SetEscapeHTML(b.escapeHTML) + b.folder, err = gotype.NewIterator(visitor, gotype.Folders( codec.MakeTimestampEncoder(), @@ -120,7 +143,7 @@ func (b *jsonEncoder) Add(meta, obj interface{}) error { return nil } -func newGzipEncoder(level int, buf *bytes.Buffer) (*gzipEncoder, error) { +func newGzipEncoder(level int, buf *bytes.Buffer, escapeHTML bool) (*gzipEncoder, error) { if buf == nil { buf = bytes.NewBuffer(nil) } @@ -129,7 +152,7 @@ func newGzipEncoder(level int, buf *bytes.Buffer) (*gzipEncoder, error) { return nil, err } - g := &gzipEncoder{buf: buf, gzip: w} + g := &gzipEncoder{buf: buf, gzip: w, escapeHTML: escapeHTML} g.resetState() return g, nil } @@ -137,6 +160,8 @@ func newGzipEncoder(level int, buf *bytes.Buffer) (*gzipEncoder, error) { func (g *gzipEncoder) resetState() { var err error visitor := json.NewVisitor(g.gzip) + visitor.SetEscapeHTML(g.escapeHTML) + g.folder, err = gotype.NewIterator(visitor, gotype.Folders( codec.MakeTimestampEncoder(), diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/enc_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/enc_test.go deleted file mode 100644 index fadedf00..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/enc_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package elasticsearch - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/monitoring/report" -) - -func TestJSONEncoderMarshalBeatEvent(t *testing.T) { - encoder := newJSONEncoder(nil) - event := beat.Event{ - Timestamp: time.Date(2017, time.November, 7, 12, 0, 0, 0, time.UTC), - Fields: common.MapStr{ - "field1": "value1", - }, - } - - err := encoder.Marshal(event) - if err != nil { - t.Errorf("Error while marshaling beat.Event using JSONEncoder: %v", err) - } - assert.Equal(t, encoder.buf.String(), "{\"@timestamp\":\"2017-11-07T12:00:00.000Z\",\"field1\":\"value1\"}\n", - "Unexpected marshaled format of beat.Event") -} - -func TestJSONEncoderMarshalMonitoringEvent(t *testing.T) { - encoder := newJSONEncoder(nil) - event := report.Event{ - Timestamp: time.Date(2017, time.November, 7, 12, 0, 0, 0, time.UTC), - Fields: common.MapStr{ - "field1": "value1", - }, - } - - err := encoder.Marshal(event) - if err != nil { - t.Errorf("Error while marshaling report.Event using JSONEncoder: %v", err) - } - assert.Equal(t, encoder.buf.String(), "{\"timestamp\":\"2017-11-07T12:00:00.000Z\",\"field1\":\"value1\"}\n", - "Unexpected marshaled format of report.Event") -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/estest/estest.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/estest/estest.go index 6285457f..b5334edd 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/estest/estest.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/estest/estest.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 estest import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/internal/testing.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/internal/testing.go index 4a4092a0..b0702ec2 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/internal/testing.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/internal/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 internal import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/json_read.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/json_read.go index e41d1140..5b205f4c 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/json_read.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/json_read.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/url.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/url.go index 89c9620b..1c83419a 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/url.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/url.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/url_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/url_test.go deleted file mode 100644 index b0a0d008..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/elasticsearch/url_test.go +++ /dev/null @@ -1,60 +0,0 @@ -// +build !integration - -package elasticsearch - -import "testing" - -func TestUrlEncode(t *testing.T) { - params := map[string]string{ - "q": "agent:appserver1", - } - url := urlEncode("", params) - - if url != "q=agent%3Aappserver1" { - t.Errorf("Fail to encode params: %s", url) - } - - params = map[string]string{ - "wife": "sarah", - "husband": "joe", - } - - url = urlEncode("", params) - - if url != "husband=joe&wife=sarah" { - t.Errorf("Fail to encode params: %s", url) - } -} - -func TestMakePath(t *testing.T) { - path, err := makePath("twitter", "tweet", "1") - if err != nil { - t.Errorf("Fail to create path: %s", err) - } - if path != "/twitter/tweet/1" { - t.Errorf("Wrong path created: %s", path) - } - - path, err = makePath("twitter", "", "_refresh") - if err != nil { - t.Errorf("Fail to create path: %s", err) - } - if path != "/twitter/_refresh" { - t.Errorf("Wrong path created: %s", path) - } - - path, err = makePath("", "", "_bulk") - if err != nil { - t.Errorf("Fail to create path: %s", err) - } - if path != "/_bulk" { - t.Errorf("Wrong path created: %s", path) - } - path, err = makePath("twitter", "", "") - if err != nil { - t.Errorf("Fail to create path: %s", err) - } - if path != "/twitter" { - t.Errorf("Wrong path created: %s", path) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/failover.go b/vendor/github.com/elastic/beats/libbeat/outputs/failover.go index dfa9c2dd..99d379a3 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/failover.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/failover.go @@ -1,9 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs import ( "errors" "fmt" "math/rand" + "strings" "github.com/elastic/beats/libbeat/publisher" "github.com/elastic/beats/libbeat/testing" @@ -92,3 +110,13 @@ func (f *failoverClient) Test(d testing.Driver) { }) } } + +func (f *failoverClient) String() string { + names := make([]string, len(f.clients)) + + for i, client := range f.clients { + names[i] = client.String() + } + + return "failover(" + strings.Join(names, ",") + ")" +} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/fileout/config.go b/vendor/github.com/elastic/beats/libbeat/outputs/fileout/config.go index acbb9e5c..742334ce 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/fileout/config.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/fileout/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileout import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/fileout/file.go b/vendor/github.com/elastic/beats/libbeat/outputs/fileout/file.go index ed140258..75ea3092 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/fileout/file.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/fileout/file.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fileout import ( @@ -18,6 +35,7 @@ func init() { } type fileOutput struct { + filePath string beat beat.Info observer outputs.Observer rotator *file.Rotator @@ -57,12 +75,15 @@ func (out *fileOutput) init(beat beat.Info, c config) error { path = filepath.Join(c.Path, out.beat.Beat) } + out.filePath = path + var err error out.rotator, err = file.NewFileRotator( path, file.MaxSizeBytes(c.RotateEveryKb*1024), file.MaxBackups(c.NumberOfFiles), file.Permissions(os.FileMode(c.Permissions)), + file.WithLogger(logp.NewLogger("rotator").With(logp.Namespace("rotator"))), ) if err != nil { return err @@ -131,3 +152,7 @@ func (out *fileOutput) Publish( return nil } + +func (out *fileOutput) String() string { + return "file(" + out.filePath + ")" +} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/fileout/file_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/fileout/file_test.go deleted file mode 100644 index d6e2247c..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/fileout/file_test.go +++ /dev/null @@ -1,3 +0,0 @@ -// +build !integration - -package fileout diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/hosts.go b/vendor/github.com/elastic/beats/libbeat/outputs/hosts.go index 6b48b19f..f8b192db 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/hosts.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/hosts.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs import "github.com/elastic/beats/libbeat/common" diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/client.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/client.go index 3126606f..cae9c262 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/client.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/client.go @@ -1,8 +1,26 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( "errors" "fmt" + "strings" "sync" "sync/atomic" @@ -124,6 +142,10 @@ func (c *client) Publish(batch publisher.Batch) error { return nil } +func (c *client) String() string { + return "kafka(" + strings.Join(c.hosts, ",") + ")" +} + func (c *client) getEventMessage(data *publisher.Event) (*message, error) { event := &data.Content msg := &message{partition: -1, data: *data} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/common_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/common_test.go deleted file mode 100644 index 3eb512a9..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/common_test.go +++ /dev/null @@ -1,25 +0,0 @@ -package kafka - -import "math/rand" - -// common helpers used by unit+integration tests - -func randString(length int) string { - return string(randASCIIBytes(length)) -} - -func randASCIIBytes(length int) []byte { - b := make([]byte, length) - for i := range b { - b[i] = randChar() - } - return b -} - -func randChar() byte { - start, end := 'a', 'z' - if rand.Int31n(2) == 1 { - start, end = 'A', 'Z' - } - return byte(rand.Int31n(end-start+1) + start) -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go index 4dc4552f..956a8bd8 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( @@ -19,25 +36,26 @@ import ( ) type kafkaConfig struct { - Hosts []string `config:"hosts" validate:"required"` - TLS *tlscommon.Config `config:"ssl"` - Timeout time.Duration `config:"timeout" validate:"min=1"` - Metadata metaConfig `config:"metadata"` - Key *fmtstr.EventFormatString `config:"key"` - Partition map[string]*common.Config `config:"partition"` - KeepAlive time.Duration `config:"keep_alive" validate:"min=0"` - MaxMessageBytes *int `config:"max_message_bytes" validate:"min=1"` - RequiredACKs *int `config:"required_acks" validate:"min=-1"` - BrokerTimeout time.Duration `config:"broker_timeout" validate:"min=1"` - Compression string `config:"compression"` - Version string `config:"version"` - BulkMaxSize int `config:"bulk_max_size"` - MaxRetries int `config:"max_retries" validate:"min=-1,nonzero"` - ClientID string `config:"client_id"` - ChanBufferSize int `config:"channel_buffer_size" validate:"min=1"` - Username string `config:"username"` - Password string `config:"password"` - Codec codec.Config `config:"codec"` + Hosts []string `config:"hosts" validate:"required"` + TLS *tlscommon.Config `config:"ssl"` + Timeout time.Duration `config:"timeout" validate:"min=1"` + Metadata metaConfig `config:"metadata"` + Key *fmtstr.EventFormatString `config:"key"` + Partition map[string]*common.Config `config:"partition"` + KeepAlive time.Duration `config:"keep_alive" validate:"min=0"` + MaxMessageBytes *int `config:"max_message_bytes" validate:"min=1"` + RequiredACKs *int `config:"required_acks" validate:"min=-1"` + BrokerTimeout time.Duration `config:"broker_timeout" validate:"min=1"` + Compression string `config:"compression"` + CompressionLevel int `config:"compression_level"` + Version string `config:"version"` + BulkMaxSize int `config:"bulk_max_size"` + MaxRetries int `config:"max_retries" validate:"min=-1,nonzero"` + ClientID string `config:"client_id"` + ChanBufferSize int `config:"channel_buffer_size" validate:"min=1"` + Username string `config:"username"` + Password string `config:"password"` + Codec codec.Config `config:"codec"` } type metaConfig struct { @@ -72,17 +90,18 @@ func defaultConfig() kafkaConfig { }, RefreshFreq: 10 * time.Minute, }, - KeepAlive: 0, - MaxMessageBytes: nil, // use library default - RequiredACKs: nil, // use library default - BrokerTimeout: 10 * time.Second, - Compression: "gzip", - Version: "1.0.0", - MaxRetries: 3, - ClientID: "beats", - ChanBufferSize: 256, - Username: "", - Password: "", + KeepAlive: 0, + MaxMessageBytes: nil, // use library default + RequiredACKs: nil, // use library default + BrokerTimeout: 10 * time.Second, + Compression: "gzip", + CompressionLevel: 4, + Version: "1.0.0", + MaxRetries: 3, + ClientID: "beats", + ChanBufferSize: 256, + Username: "", + Password: "", } } @@ -103,6 +122,13 @@ func (c *kafkaConfig) Validate() error { return fmt.Errorf("password must be set when username is configured") } + if c.Compression == "gzip" { + lvl := c.CompressionLevel + if lvl != sarama.CompressionLevelDefault && !(0 <= lvl && lvl <= 9) { + return fmt.Errorf("compression_level must be between 0 and 9") + } + } + return nil } @@ -121,6 +147,7 @@ func newSaramaConfig(config *kafkaConfig) (*sarama.Config, error) { k.Net.WriteTimeout = timeout k.Net.KeepAlive = config.KeepAlive k.Producer.Timeout = config.BrokerTimeout + k.Producer.CompressionLevel = config.CompressionLevel tls, err := outputs.LoadTLSConfig(config.TLS) if err != nil { diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config_test.go deleted file mode 100644 index 20ba69ac..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/config_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package kafka - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" -) - -func TestConfigAcceptValid(t *testing.T) { - tests := map[string]common.MapStr{ - "default config is valid": common.MapStr{}, - "lz4 with 0.11": common.MapStr{ - "compression": "lz4", - "version": "0.11", - }, - "lz4 with 1.0": common.MapStr{ - "compression": "lz4", - "version": "1.0.0", - }, - } - - for name, test := range tests { - test := test - t.Run(name, func(t *testing.T) { - c, err := common.NewConfigFrom(test) - if err != nil { - t.Fatalf("Can not create test configuration: %v", err) - } - c.SetString("hosts", 0, "localhost") - - cfg := defaultConfig() - if err := c.Unpack(&cfg); err != nil { - t.Fatalf("Unpacking configuration failed: %v", err) - } - - if _, err := newSaramaConfig(&cfg); err != nil { - t.Fatalf("Failure creating sarama config: %v", err) - } - }) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/kafka.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/kafka.go index 4f135cd4..039d8b80 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/kafka.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/kafka.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/kafka_integration_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/kafka_integration_test.go deleted file mode 100644 index 916b7a0a..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/kafka_integration_test.go +++ /dev/null @@ -1,367 +0,0 @@ -// +build integration - -package kafka - -import ( - "encoding/json" - "fmt" - "math/rand" - "os" - "strconv" - "sync" - "testing" - "time" - - "github.com/Shopify/sarama" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/fmtstr" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/outest" - - _ "github.com/elastic/beats/libbeat/outputs/codec/format" - _ "github.com/elastic/beats/libbeat/outputs/codec/json" -) - -const ( - kafkaDefaultHost = "localhost" - kafkaDefaultPort = "9092" -) - -type eventInfo struct { - events []beat.Event -} - -func TestKafkaPublish(t *testing.T) { - logp.TestingSetup(logp.WithSelectors("kafka")) - - id := strconv.Itoa(rand.New(rand.NewSource(int64(time.Now().Nanosecond()))).Int()) - testTopic := fmt.Sprintf("test-libbeat-%s", id) - logType := fmt.Sprintf("log-type-%s", id) - - tests := []struct { - title string - config map[string]interface{} - topic string - events []eventInfo - }{ - { - "publish single event to test topic", - nil, - testTopic, - single(common.MapStr{ - "host": "test-host", - "message": id, - }), - }, - { - "publish single event with topic from type", - map[string]interface{}{ - "topic": "%{[type]}", - }, - logType, - single(common.MapStr{ - "host": "test-host", - "type": logType, - "message": id, - }), - }, - { - "publish single event with formating to test topic", - map[string]interface{}{ - "codec.format.string": "%{[message]}", - }, - testTopic, - single(common.MapStr{ - "host": "test-host", - "message": id, - }), - }, - { - "batch publish to test topic", - nil, - testTopic, - randMulti(5, 100, common.MapStr{ - "host": "test-host", - }), - }, - { - "batch publish to test topic from type", - map[string]interface{}{ - "topic": "%{[type]}", - }, - logType, - randMulti(5, 100, common.MapStr{ - "host": "test-host", - "type": logType, - }), - }, - { - "batch publish with random partitioner", - map[string]interface{}{ - "partition.random": map[string]interface{}{ - "group_events": 1, - }, - }, - testTopic, - randMulti(1, 10, common.MapStr{ - "host": "test-host", - "type": "log", - }), - }, - { - "batch publish with round robin partitioner", - map[string]interface{}{ - "partition.round_robin": map[string]interface{}{ - "group_events": 1, - }, - }, - testTopic, - randMulti(1, 10, common.MapStr{ - "host": "test-host", - "type": "log", - }), - }, - { - "batch publish with hash partitioner without key (fallback to random)", - map[string]interface{}{ - "partition.hash": map[string]interface{}{}, - }, - testTopic, - randMulti(1, 10, common.MapStr{ - "host": "test-host", - "type": "log", - }), - }, - { - // warning: this test uses random keys. In case keys are reused, test might fail. - "batch publish with hash partitioner with key", - map[string]interface{}{ - "key": "%{[message]}", - "partition.hash": map[string]interface{}{}, - }, - testTopic, - randMulti(1, 10, common.MapStr{ - "host": "test-host", - "type": "log", - }), - }, - { - // warning: this test uses random keys. In case keys are reused, test might fail. - "batch publish with fields hash partitioner", - map[string]interface{}{ - "partition.hash.hash": []string{ - "@timestamp", - "type", - "message", - }, - }, - testTopic, - randMulti(1, 10, common.MapStr{ - "host": "test-host", - "type": "log", - }), - }, - } - - defaultConfig := map[string]interface{}{ - "hosts": []string{getTestKafkaHost()}, - "topic": testTopic, - "timeout": "1s", - } - - for i, test := range tests { - test := test - name := fmt.Sprintf("run test(%v): %v", i, test.title) - - cfg := makeConfig(t, defaultConfig) - if test.config != nil { - cfg.Merge(makeConfig(t, test.config)) - } - - t.Run(name, func(t *testing.T) { - grp, err := makeKafka(beat.Info{Beat: "libbeat"}, outputs.NewNilObserver(), cfg) - if err != nil { - t.Fatal(err) - } - - output := grp.Clients[0].(*client) - if err := output.Connect(); err != nil { - t.Fatal(err) - } - defer output.Close() - - // publish test events - var wg sync.WaitGroup - for i := range test.events { - batch := outest.NewBatch(test.events[i].events...) - batch.OnSignal = func(_ outest.BatchSignal) { - wg.Done() - } - - wg.Add(1) - output.Publish(batch) - } - - // wait for all published batches to be ACKed - wg.Wait() - - expected := flatten(test.events) - - // check we can find all event in topic - timeout := 20 * time.Second - stored := testReadFromKafkaTopic(t, test.topic, len(expected), timeout) - - // validate messages - if len(expected) != len(stored) { - assert.Equal(t, len(stored), len(expected)) - return - } - - validate := validateJSON - if fmt, exists := test.config["codec.format.string"]; exists { - validate = makeValidateFmtStr(fmt.(string)) - } - - for i, d := range expected { - validate(t, stored[i].Value, d) - } - }) - } -} - -func validateJSON(t *testing.T, value []byte, event beat.Event) { - var decoded map[string]interface{} - err := json.Unmarshal(value, &decoded) - if err != nil { - t.Errorf("can not json decode event value: %v", value) - return - } - assert.Equal(t, decoded["type"], event.Fields["type"]) - assert.Equal(t, decoded["message"], event.Fields["message"]) -} - -func makeValidateFmtStr(fmt string) func(*testing.T, []byte, beat.Event) { - fmtString := fmtstr.MustCompileEvent(fmt) - return func(t *testing.T, value []byte, event beat.Event) { - expectedMessage, err := fmtString.Run(&event) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, string(expectedMessage), string(value)) - } -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func getTestKafkaHost() string { - return fmt.Sprintf("%v:%v", - getenv("KAFKA_HOST", kafkaDefaultHost), - getenv("KAFKA_PORT", kafkaDefaultPort), - ) -} - -func makeConfig(t *testing.T, in map[string]interface{}) *common.Config { - cfg, err := common.NewConfigFrom(in) - if err != nil { - t.Fatal(err) - } - return cfg -} - -func newTestConsumer(t *testing.T) sarama.Consumer { - hosts := []string{getTestKafkaHost()} - consumer, err := sarama.NewConsumer(hosts, nil) - if err != nil { - t.Fatal(err) - } - return consumer -} - -var testTopicOffsets = map[string]int64{} - -func testReadFromKafkaTopic( - t *testing.T, topic string, nMessages int, - timeout time.Duration, -) []*sarama.ConsumerMessage { - consumer := newTestConsumer(t) - defer func() { - consumer.Close() - }() - - offset, found := testTopicOffsets[topic] - if !found { - offset = sarama.OffsetOldest - } - - partitionConsumer, err := consumer.ConsumePartition(topic, 0, offset) - if err != nil { - t.Fatal(err) - } - defer func() { - partitionConsumer.Close() - }() - - timer := time.After(timeout) - var messages []*sarama.ConsumerMessage - for i := 0; i < nMessages; i++ { - select { - case msg := <-partitionConsumer.Messages(): - messages = append(messages, msg) - testTopicOffsets[topic] = msg.Offset + 1 - case <-timer: - break - } - } - - return messages -} - -func flatten(infos []eventInfo) []beat.Event { - var out []beat.Event - for _, info := range infos { - out = append(out, info.events...) - } - return out -} - -func single(fields common.MapStr) []eventInfo { - return []eventInfo{ - { - events: []beat.Event{ - {Timestamp: time.Now(), Fields: fields}, - }, - }, - } -} - -func randMulti(batches, n int, event common.MapStr) []eventInfo { - var out []eventInfo - for i := 0; i < batches; i++ { - var data []beat.Event - for j := 0; j < n; j++ { - tmp := common.MapStr{} - for k, v := range event { - tmp[k] = v - } - tmp["message"] = randString(100) - data = append(data, beat.Event{Timestamp: time.Now(), Fields: tmp}) - } - - out = append(out, eventInfo{data}) - } - return out -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/log.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/log.go index 8ab83c6d..027f4764 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/log.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/log.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/message.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/message.go index 110c9618..7254c390 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/message.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/message.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/partition.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/partition.go index fb41fa43..3ce18c24 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/partition.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/partition.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/partition_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/partition_test.go deleted file mode 100644 index cc25fecc..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/partition_test.go +++ /dev/null @@ -1,304 +0,0 @@ -// +build !integration - -package kafka - -import ( - "encoding/json" - "fmt" - "testing" - "time" - - "github.com/Shopify/sarama" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/publisher" -) - -type partTestScenario func(*testing.T, bool, sarama.Partitioner) error - -func TestPartitioners(t *testing.T) { - type obj map[string]interface{} - type arr []interface{} - - nonHashScenarios := []partTestScenario{ - partTestSimple(100, false), - } - - hashScenarios := []partTestScenario{ - partTestSimple(100, true), - partTestHashInvariant(1), - } - - tests := []struct { - title string - reachableOnly bool - scenarios []partTestScenario - config obj - }{ - { - "random every event, non-consistent ", - true, - nonHashScenarios, - obj{"partition.random": obj{ - "reachable_only": true, - "group_events": 1, - }}, - }, - { - "random every event, consistent", - false, - nonHashScenarios, - obj{"partition.random": obj{ - "reachable_only": false, - "group_events": 1, - }}, - }, - { - "random every 3rd event, non-consistent", - true, - nonHashScenarios, - obj{"partition.random": obj{ - "reachable_only": true, - "group_events": 3, - }}, - }, - { - "random every 3rd event, consistent", - false, - nonHashScenarios, - obj{"partition.random": obj{ - "reachable_only": false, - "group_events": 3, - }}, - }, - { - "round-robin every event, non-consistent", - true, - nonHashScenarios, - obj{"partition.round_robin": obj{ - "reachable_only": true, - "group_events": 1, - }}, - }, - { - "round-robin every event, consistent", - false, - nonHashScenarios, - obj{"partition.round_robin": obj{ - "reachable_only": false, - "group_events": 1, - }}, - }, - { - "round-robin every 3rd event, non-consistent", - true, - nonHashScenarios, - obj{"partition.round_robin": obj{ - "reachable_only": true, - "group_events": 3, - }}, - }, - { - "round-robin every 3rd event, consistent", - false, - nonHashScenarios, - obj{"partition.round_robin": obj{ - "reachable_only": false, - "group_events": 3, - }}, - }, - { - "hash without key, fallback random, non-consistent", - true, - nonHashScenarios, - obj{"partition.hash": obj{ - "reachable_only": true, - }}, - }, - { - "hash without key, fallback random, consistent", - false, - nonHashScenarios, - obj{"partition.hash": obj{ - "reachable_only": false, - }}, - }, - { - "hash with key, consistent", - true, - hashScenarios, - obj{"partition.hash": obj{ - "reachable_only": true, - }}, - }, - { - "hash with key, non-consistent", - false, - hashScenarios, - obj{"partition.hash": obj{ - "reachable_only": false, - }}, - }, - { - "hash message field, non-consistent", - true, - hashScenarios, - obj{"partition.hash": obj{ - "reachable_only": true, - "hash": arr{"message"}, - }}, - }, - { - "hash message field, consistent", - false, - hashScenarios, - obj{"partition.hash": obj{ - "reachable_only": false, - "hash": arr{"message"}, - }}, - }, - } - - for i, test := range tests { - t.Logf("run test(%v): %v", i, test.title) - - cfg, err := common.NewConfigFrom(test.config) - if err != nil { - t.Error(err) - continue - } - - pcfg := struct { - Partition map[string]*common.Config `config:"partition"` - }{} - err = cfg.Unpack(&pcfg) - if err != nil { - t.Error(err) - continue - } - - constr, err := makePartitioner(pcfg.Partition) - if err != nil { - t.Error(err) - continue - } - - for _, runner := range test.scenarios { - partitioner := constr("test") - err := runner(t, test.reachableOnly, partitioner) - if err != nil { - t.Error(err) - break - } - } - } -} - -func partTestSimple(N int, makeKey bool) partTestScenario { - numPartitions := int32(15) - - return func(t *testing.T, reachableOnly bool, part sarama.Partitioner) error { - t.Logf(" simple test with %v partitions", numPartitions) - - partitions := make([]int, numPartitions) - - requiresConsistency := !reachableOnly - assert.Equal(t, requiresConsistency, part.RequiresConsistency()) - - for i := 0; i <= N; i++ { - ts := time.Now() - - event := common.MapStr{ - "@timestamp": common.Time(ts), - "message": randString(20), - } - - jsonEvent, err := json.Marshal(event) - if err != nil { - return fmt.Errorf("json encoding failed with %v", err) - } - - msg := &message{partition: -1} - msg.data = publisher.Event{Content: beat.Event{Fields: event}} - msg.topic = "test" - if makeKey { - msg.key = randASCIIBytes(10) - } - msg.value = jsonEvent - msg.ts = ts - msg.initProducerMessage() - - p, err := part.Partition(&msg.msg, numPartitions) - if err != nil { - return err - } - - assert.True(t, 0 <= p && p < numPartitions) - partitions[p]++ - } - - // count number of partitions being used - nPartitions := 0 - for _, p := range partitions { - if p > 0 { - nPartitions++ - } - } - t.Logf(" partitions used: %v/%v", nPartitions, numPartitions) - assert.True(t, nPartitions > 3) - - return nil - } -} - -func partTestHashInvariant(N int) partTestScenario { - numPartitions := int32(15) - - return func(t *testing.T, reachableOnly bool, part sarama.Partitioner) error { - t.Logf(" hash invariant test with %v partitions", numPartitions) - - for i := 0; i <= N; i++ { - ts := time.Now() - - event := common.MapStr{ - "@timestamp": common.Time(ts), - "message": randString(20), - } - - jsonEvent, err := json.Marshal(event) - if err != nil { - return fmt.Errorf("json encoding failed with %v", err) - } - - msg := &message{partition: -1} - msg.data = publisher.Event{Content: beat.Event{Fields: event}} - msg.topic = "test" - msg.key = randASCIIBytes(10) - msg.value = jsonEvent - msg.ts = ts - msg.initProducerMessage() - - p1, err := part.Partition(&msg.msg, numPartitions) - if err != nil { - return err - } - - // reset message state - msg.hash = 0 - msg.partition = -1 - - p2, err := part.Partition(&msg.msg, numPartitions) - if err != nil { - return err - } - - assert.True(t, 0 <= p1 && p1 < numPartitions) - assert.True(t, 0 <= p2 && p2 < numPartitions) - assert.Equal(t, p1, p2) - } - - return nil - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/version.go b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/version.go index a2bd8355..884e6761 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/kafka/version.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/kafka/version.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import "github.com/Shopify/sarama" @@ -10,7 +27,8 @@ var ( v0_11_0_1 = parseKafkaVersion("0.11.0.1") v0_11_0_2 = parseKafkaVersion("0.11.0.2") v1_0_1 = parseKafkaVersion("1.0.1") - v1_1_0 = parseKafkaVersion("1.1.0") + v1_0_2 = parseKafkaVersion("1.0.2") + v1_1_1 = parseKafkaVersion("1.1.1") kafkaVersions = map[string]sarama.KafkaVersion{ "": sarama.V1_0_0_0, @@ -44,10 +62,12 @@ var ( "1.0.0": sarama.V1_0_0_0, "1.0.1": v1_0_1, - "1.0": v1_0_1, - "1.1.0": v1_1_0, - "1.1": v1_1_0, - "1": v1_1_0, + "1.0.2": v1_0_2, + "1.0": v1_0_2, + "1.1.0": sarama.V1_1_0_0, + "1.1.1": v1_1_1, + "1.1": v1_1_1, + "1": v1_1_1, } ) diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/async.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/async.go index e0816ff8..44950853 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/async.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/async.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash import ( @@ -51,7 +68,7 @@ func newAsyncClient( logp.Warn(`The async Logstash client does not support the "ttl" option`) } - enc := makeLogstashEventEncoder(beat, config.Index) + enc := makeLogstashEventEncoder(beat, config.EscapeHTML, config.Index) queueSize := config.Pipelining - 1 timeout := config.Timeout @@ -152,6 +169,10 @@ func (c *asyncClient) Publish(batch publisher.Batch) error { return nil } +func (c *asyncClient) String() string { + return "async(" + c.Client.String() + ")" +} + func (c *asyncClient) publishWindowed( ref *msgRef, events []publisher.Event, diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/async_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/async_test.go deleted file mode 100644 index ea8985c3..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/async_test.go +++ /dev/null @@ -1,104 +0,0 @@ -// +build !integration - -package logstash - -import ( - "sync" - "testing" - "time" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/outputs/transport" -) - -type testAsyncDriver struct { - client outputs.NetworkClient - ch chan testDriverCommand - returns []testClientReturn - wg sync.WaitGroup -} - -func TestAsyncSendZero(t *testing.T) { - testSendZero(t, makeAsyncTestClient) -} - -func TestAsyncSimpleEvent(t *testing.T) { - testSimpleEvent(t, makeAsyncTestClient) -} - -func TestAsyncStructuredEvent(t *testing.T) { - testStructuredEvent(t, makeAsyncTestClient) -} - -func makeAsyncTestClient(conn *transport.Client) testClientDriver { - config := defaultConfig - config.Timeout = 1 * time.Second - config.Pipelining = 3 - client, err := newAsyncClient(beat.Info{}, conn, outputs.NewNilObserver(), &config) - if err != nil { - panic(err) - } - return newAsyncTestDriver(client) -} - -func newAsyncTestDriver(client outputs.NetworkClient) *testAsyncDriver { - driver := &testAsyncDriver{ - client: client, - ch: make(chan testDriverCommand, 1), - returns: nil, - } - - driver.wg.Add(1) - go func() { - defer driver.wg.Done() - - for { - cmd, ok := <-driver.ch - if !ok { - return - } - - switch cmd.code { - case driverCmdQuit: - return - case driverCmdConnect: - driver.client.Connect() - case driverCmdClose: - driver.client.Close() - case driverCmdPublish: - err := driver.client.Publish(cmd.batch) - driver.returns = append(driver.returns, testClientReturn{cmd.batch, err}) - } - } - }() - - return driver -} - -func (t *testAsyncDriver) Close() { - t.ch <- testDriverCommand{code: driverCmdClose} -} - -func (t *testAsyncDriver) Connect() { - t.ch <- testDriverCommand{code: driverCmdConnect} -} - -func (t *testAsyncDriver) Stop() { - if t.ch != nil { - t.ch <- testDriverCommand{code: driverCmdQuit} - t.wg.Wait() - close(t.ch) - t.client.Close() - t.ch = nil - } -} - -func (t *testAsyncDriver) Publish(batch *outest.Batch) { - t.ch <- testDriverCommand{code: driverCmdPublish, batch: batch} -} - -func (t *testAsyncDriver) Returns() []testClientReturn { - return t.returns -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/client_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/client_test.go deleted file mode 100644 index d08a95a1..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/client_test.go +++ /dev/null @@ -1,219 +0,0 @@ -// +build !integration - -package logstash - -import ( - "strings" - "testing" - "time" - - "github.com/elastic/go-lumber/server/v2" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/outputs/transport" - "github.com/elastic/beats/libbeat/outputs/transport/transptest" - - "github.com/stretchr/testify/assert" -) - -const ( - driverCmdQuit = iota - driverCmdPublish - driverCmdConnect - driverCmdClose -) - -type testClientDriver interface { - Connect() - Close() - Stop() - Publish(*outest.Batch) - Returns() []testClientReturn -} - -type clientFactory func(*transport.Client) testClientDriver - -type testClientReturn struct { - batch *outest.Batch - err error -} - -type testDriverCommand struct { - code int - batch *outest.Batch -} - -const testMaxWindowSize = 64 - -func testSendZero(t *testing.T, factory clientFactory) { - enableLogging([]string{"*"}) - - server := transptest.NewMockServerTCP(t, 1*time.Second, "", nil) - defer server.Close() - - sock, transp, err := server.ConnectPair() - if err != nil { - t.Fatalf("Failed to connect server and client: %v", err) - } - - client := factory(transp) - defer sock.Close() - defer transp.Close() - - client.Publish(outest.NewBatch()) - - client.Stop() - returns := client.Returns() - - assert.Equal(t, 1, len(returns)) - if len(returns) == 1 { - assert.Equal(t, outest.BatchACK, returns[0].batch.Signals[0].Tag) - assert.Nil(t, returns[0].err) - } -} - -func testSimpleEvent(t *testing.T, factory clientFactory) { - enableLogging([]string{"*"}) - mock := transptest.NewMockServerTCP(t, 1*time.Second, "", nil) - server, _ := v2.NewWithListener(mock.Listener) - defer server.Close() - - transp, err := mock.Connect() - if err != nil { - t.Fatalf("Failed to connect: %v", err) - } - client := factory(transp) - defer transp.Close() - defer client.Stop() - - event := beat.Event{ - Fields: common.MapStr{ - "name": "me", - "line": 10, - }, - } - go client.Publish(outest.NewBatch(event)) - - // try to receive event from server - batch := server.Receive() - batch.ACK() - - // validate - events := batch.Events - assert.Equal(t, 1, len(events)) - msg := events[0].(map[string]interface{}) - assert.Equal(t, "me", msg["name"]) - assert.Equal(t, 10.0, msg["line"]) -} - -func testSimpleEventWithTTL(t *testing.T, factory clientFactory) { - enableLogging([]string{"*"}) - mock := transptest.NewMockServerTCP(t, 1*time.Second, "", nil) - server, _ := v2.NewWithListener(mock.Listener) - defer server.Close() - - transp, err := mock.Connect() - if err != nil { - t.Fatalf("Failed to connect: %v", err) - } - client := factory(transp) - defer transp.Close() - defer client.Stop() - - event := beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{"type": "test", "name": "me", "line": 10}, - } - go client.Publish(outest.NewBatch(event)) - - // try to receive event from server - batch := server.Receive() - batch.ACK() - - // validate - events := batch.Events - assert.Equal(t, 1, len(events)) - msg := events[0].(map[string]interface{}) - assert.Equal(t, "me", msg["name"]) - assert.Equal(t, 10.0, msg["line"]) - - //wait 10 seconds (ttl: 5 seconds) then send the event again - time.Sleep(10 * time.Second) - - event = beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{"type": "test", "name": "me", "line": 11}, - } - go client.Publish(outest.NewBatch(event)) - - // try to receive event from server - batch = server.Receive() - batch.ACK() - - // validate - events = batch.Events - assert.Equal(t, 1, len(events)) - msg = events[0].(map[string]interface{}) - assert.Equal(t, "me", msg["name"]) - assert.Equal(t, 11.0, msg["line"]) -} - -func testStructuredEvent(t *testing.T, factory clientFactory) { - enableLogging([]string{"*"}) - mock := transptest.NewMockServerTCP(t, 1*time.Second, "", nil) - server, _ := v2.NewWithListener(mock.Listener) - defer server.Close() - - transp, err := mock.Connect() - if err != nil { - t.Fatalf("Failed to connect: %v", err) - } - client := factory(transp) - defer transp.Close() - defer client.Stop() - - event := beat.Event{Fields: common.MapStr{ - "type": "test", - "name": "test", - "struct": common.MapStr{ - "field1": 1, - "field2": true, - "field3": []int{1, 2, 3}, - "field4": []interface{}{ - 1, - "test", - common.MapStr{ - "sub": "field", - }, - }, - "field5": common.MapStr{ - "sub1": 2, - }, - }, - }} - go client.Publish(outest.NewBatch(event)) - defer client.Stop() - - // try to receive event from server - batch := server.Receive() - batch.ACK() - - events := batch.Events - assert.Equal(t, 1, len(events)) - msg := events[0] - assert.Equal(t, "test", eventGet(msg, "name")) - assert.Equal(t, 1.0, eventGet(msg, "struct.field1")) - assert.Equal(t, true, eventGet(msg, "struct.field2")) - assert.Equal(t, 2.0, eventGet(msg, "struct.field5.sub1")) -} - -func eventGet(event interface{}, path string) interface{} { - doc := event.(map[string]interface{}) - elems := strings.Split(path, ".") - for i := 0; i < len(elems)-1; i++ { - doc = doc[elems[i]].(map[string]interface{}) - } - return doc[elems[len(elems)-1]] -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/common_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/common_test.go deleted file mode 100644 index 520c1012..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/common_test.go +++ /dev/null @@ -1,9 +0,0 @@ -package logstash - -import ( - "github.com/elastic/beats/libbeat/logp" -) - -func enableLogging(selectors []string) { - logp.TestingSetup(logp.WithSelectors(selectors...)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/config.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/config.go index fb95f737..36e2a618 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/config.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash import ( @@ -21,6 +38,7 @@ type Config struct { TLS *tlscommon.Config `config:"ssl"` Proxy transport.ProxyConfig `config:",inline"` Backoff Backoff `config:"backoff"` + EscapeHTML bool `config:"escape_html"` } type Backoff struct { @@ -42,6 +60,7 @@ var defaultConfig = Config{ Init: 1 * time.Second, Max: 60 * time.Second, }, + EscapeHTML: true, } func newConfig() *Config { diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/enc.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/enc.go index 63963300..00cb304c 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/enc.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/enc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash import ( @@ -5,8 +22,8 @@ import ( "github.com/elastic/beats/libbeat/outputs/codec/json" ) -func makeLogstashEventEncoder(info beat.Info, index string) func(interface{}) ([]byte, error) { - enc := json.New(false, info.Version) +func makeLogstashEventEncoder(info beat.Info, escapeHTML bool, index string) func(interface{}) ([]byte, error) { + enc := json.New(false, escapeHTML, info.Version) return func(event interface{}) ([]byte, error) { return enc.Encode(index, event.(*beat.Event)) } diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash.go index 72165ace..db9dbebe 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash_integration_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash_integration_test.go deleted file mode 100644 index 4ff27d13..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash_integration_test.go +++ /dev/null @@ -1,535 +0,0 @@ -// +build integration - -package logstash - -import ( - "encoding/json" - "fmt" - "os" - "sync" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/fmtstr" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/elasticsearch" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/outputs/outil" -) - -const ( - logstashTestDefaultTLSPort = "5055" - - elasticsearchDefaultHost = "localhost" - elasticsearchDefaultPort = "9200" - - integrationTestWindowSize = 32 -) - -type esConnection struct { - *elasticsearch.Client - t *testing.T - index string -} - -type testOutputer struct { - outputs.NetworkClient - *esConnection -} - -type esSoure interface { - RefreshIndex() -} - -type esValueReader interface { - esSoure - Read() ([]map[string]interface{}, error) -} - -type esCountReader interface { - esSoure - Count() (int, error) -} - -func getLogstashTLSHost() string { - return fmt.Sprintf("%v:%v", - getenv("LS_HOST", logstashDefaultHost), - getenv("LS_LS_PORT", logstashTestDefaultTLSPort), - ) -} - -func getElasticsearchHost() string { - return fmt.Sprintf("http://%v:%v", - getenv("ES_HOST", elasticsearchDefaultHost), - getenv("ES_PORT", elasticsearchDefaultPort), - ) -} - -func esConnect(t *testing.T, index string) *esConnection { - ts := time.Now().UTC() - - host := getElasticsearchHost() - indexFmt := fmtstr.MustCompileEvent(fmt.Sprintf("%s-%%{+yyyy.MM.dd}", index)) - indexSel := outil.MakeSelector(outil.FmtSelectorExpr(indexFmt, "")) - index, _ = indexSel.Select(&beat.Event{ - Timestamp: ts, - }) - - username := os.Getenv("ES_USER") - password := os.Getenv("ES_PASS") - client, err := elasticsearch.NewClient(elasticsearch.ClientSettings{ - URL: host, - Index: indexSel, - Username: username, - Password: password, - Timeout: 60 * time.Second, - }, nil) - if err != nil { - t.Fatal(err) - } - - // try to drop old index if left over from failed test - _, _, _ = client.Delete(index, "", "", nil) // ignore error - - _, _, err = client.CreateIndex(index, common.MapStr{ - "settings": common.MapStr{ - "number_of_shards": 1, - "number_of_replicas": 0, - }, - }) - if err != nil { - t.Fatalf("failed to create test index: %s", err) - } - - es := &esConnection{} - es.t = t - es.Client = client - es.index = index - return es -} - -func testElasticsearchIndex(test string) string { - return fmt.Sprintf("beat-es-int-%v-%d", test, os.Getpid()) -} - -func newTestLogstashOutput(t *testing.T, test string, tls bool) *testOutputer { - windowSize := integrationTestWindowSize - - config := map[string]interface{}{ - "hosts": []string{getLogstashHost()}, - "index": testLogstashIndex(test), - "bulk_max_size": &windowSize, - } - if tls { - config["hosts"] = []string{getLogstashTLSHost()} - config["ssl.verification_mode"] = "full" - config["ssl.certificate_authorities"] = []string{ - "../../../testing/environments/docker/logstash/pki/tls/certs/logstash.crt", - } - } - - output := newTestLumberjackOutput(t, test, config) - index := testLogstashIndex(test) - connection := esConnect(t, index) - - return &testOutputer{output, connection} -} - -func newTestElasticsearchOutput(t *testing.T, test string) *testOutputer { - plugin := outputs.FindFactory("elasticsearch") - if plugin == nil { - t.Fatalf("No elasticsearch output plugin found") - } - - index := testElasticsearchIndex(test) - connection := esConnect(t, index) - - bulkSize := 0 - config, _ := common.NewConfigFrom(map[string]interface{}{ - "hosts": []string{getElasticsearchHost()}, - "index": connection.index, - "bulk_max_size": &bulkSize, - "username": os.Getenv("ES_USER"), - "password": os.Getenv("ES_PASS"), - "template.enabled": false, - }) - - grp, err := plugin(beat.Info{Beat: "libbeat"}, outputs.NewNilObserver(), config) - if err != nil { - t.Fatalf("init elasticsearch output plugin failed: %v", err) - } - - es := &testOutputer{} - es.NetworkClient = grp.Clients[0].(outputs.NetworkClient) - es.esConnection = connection - return es -} - -func (es *esConnection) Cleanup() { - _, _, err := es.Delete(es.index, "", "", nil) - if err != nil { - es.t.Errorf("Failed to delete index: %s", err) - } -} - -func (es *esConnection) Read() ([]map[string]interface{}, error) { - _, _, err := es.Refresh(es.index) - if err != nil { - es.t.Errorf("Failed to refresh: %s", err) - } - - params := map[string]string{} - _, resp, err := es.SearchURI(es.index, "", params) - if err != nil { - es.t.Errorf("Failed to query elasticsearch for index(%s): %s", es.index, err) - return nil, err - } - - hits := make([]map[string]interface{}, len(resp.Hits.Hits)) - for i, hit := range resp.Hits.Hits { - json.Unmarshal(hit, &hits[i]) - } - - return hits, err -} - -func (es *esConnection) RefreshIndex() { - es.Refresh(es.index) -} - -func (es *esConnection) Count() (int, error) { - _, _, err := es.Refresh(es.index) - if err != nil { - es.t.Errorf("Failed to refresh: %s", err) - } - - params := map[string]string{} - _, resp, err := es.CountSearchURI(es.index, "", params) - if err != nil { - es.t.Errorf("Failed to query elasticsearch for index(%s): %s", es.index, err) - return 0, err - } - - return resp.Count, nil -} - -func waitUntilTrue(duration time.Duration, fn func() bool) bool { - end := time.Now().Add(duration) - for time.Now().Before(end) { - if fn() { - return true - } - time.Sleep(100 * time.Millisecond) - } - return false -} - -func checkIndex(reader esCountReader, minValues int) func() bool { - return func() bool { - reader.RefreshIndex() - resp, err := reader.Count() - return err != nil || resp >= minValues - } -} - -func checkAll(checks ...func() bool) func() bool { - return func() bool { - for _, check := range checks { - if !check() { - return false - } - } - return true - } -} - -func TestSendMessageViaLogstashTCP(t *testing.T) { - testSendMessageViaLogstash(t, "basic-tcp", false) -} - -func TestSendMessageViaLogstashTLS(t *testing.T) { - testSendMessageViaLogstash(t, "basic-tls", true) -} - -func testSendMessageViaLogstash(t *testing.T, name string, tls bool) { - enableLogging([]string{"*"}) - - ls := newTestLogstashOutput(t, name, tls) - defer ls.Cleanup() - - batch := outest.NewBatch( - beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "host": "test-host", - "message": "hello world", - }, - }, - ) - ls.Publish(batch) - - // wait for logstash event flush + elasticsearch - waitUntilTrue(5*time.Second, checkIndex(ls, 1)) - - // search value in logstash elasticsearch index - resp, err := ls.Read() - if err != nil { - return - } - if len(resp) != 1 { - t.Errorf("wrong number of results: %d", len(resp)) - } -} - -func TestSendMultipleViaLogstashTCP(t *testing.T) { - testSendMultipleViaLogstash(t, "multiple-tcp", false) -} - -func TestSendMultipleViaLogstashTLS(t *testing.T) { - testSendMultipleViaLogstash(t, "multiple-tls", true) -} - -func testSendMultipleViaLogstash(t *testing.T, name string, tls bool) { - ls := newTestLogstashOutput(t, name, tls) - defer ls.Cleanup() - for i := 0; i < 10; i++ { - event := beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "host": "test-host", - "type": "log", - "message": fmt.Sprintf("hello world - %v", i), - }, - } - ls.PublishEvent(event) - } - - // wait for logstash event flush + elasticsearch - waitUntilTrue(5*time.Second, checkIndex(ls, 10)) - - // search value in logstash elasticsearch index - resp, err := ls.Read() - if err != nil { - return - } - if len(resp) != 10 { - t.Errorf("wrong number of results: %d", len(resp)) - } -} - -func TestSendMultipleBigBatchesViaLogstashTCP(t *testing.T) { - testSendMultipleBigBatchesViaLogstash(t, "multiple-big-tcp", false) -} - -func TestSendMultipleBigBatchesViaLogstashTLS(t *testing.T) { - testSendMultipleBigBatchesViaLogstash(t, "multiple-big-tls", true) -} - -func testSendMultipleBigBatchesViaLogstash(t *testing.T, name string, tls bool) { - testSendMultipleBatchesViaLogstash(t, name, 15, 4*integrationTestWindowSize, tls) -} - -func TestSendMultipleSmallBatchesViaLogstashTCP(t *testing.T) { - testSendMultipleSmallBatchesViaLogstash(t, "multiple-small-tcp", false) -} - -func TestSendMultipleSmallBatchesViaLogstashTLS(t *testing.T) { - testSendMultipleSmallBatchesViaLogstash(t, "multiple-small-tls", true) -} - -func testSendMultipleSmallBatchesViaLogstash(t *testing.T, name string, tls bool) { - testSendMultipleBatchesViaLogstash(t, name, 15, integrationTestWindowSize/2, tls) -} - -func testSendMultipleBatchesViaLogstash( - t *testing.T, - name string, - numBatches int, - batchSize int, - tls bool, -) { - - ls := newTestLogstashOutput(t, name, tls) - defer ls.Cleanup() - - batches := make([][]beat.Event, 0, numBatches) - for i := 0; i < numBatches; i++ { - batch := make([]beat.Event, 0, batchSize) - for j := 0; j < batchSize; j++ { - event := beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "host": "test-host", - "type": "log", - "message": fmt.Sprintf("batch hello world - %v", i*batchSize+j), - }, - } - batch = append(batch, event) - } - batches = append(batches, batch) - } - - for _, batch := range batches { - ok := ls.BulkPublish(batch) - assert.Equal(t, true, ok) - } - - // wait for logstash event flush + elasticsearch - ok := waitUntilTrue(5*time.Second, checkIndex(ls, numBatches*batchSize)) - assert.True(t, ok) // check number of events matches total number of events - - // search value in logstash elasticsearch index - resp, err := ls.Read() - if err != nil { - return - } - if len(resp) != 10 { - t.Errorf("wrong number of results: %d", len(resp)) - } -} - -func TestLogstashElasticOutputPluginCompatibleMessageTCP(t *testing.T) { - testLogstashElasticOutputPluginCompatibleMessage(t, "cmp-tcp", false) -} - -func TestLogstashElasticOutputPluginCompatibleMessageTLS(t *testing.T) { - testLogstashElasticOutputPluginCompatibleMessage(t, "cmp-tls", true) -} - -func testLogstashElasticOutputPluginCompatibleMessage(t *testing.T, name string, tls bool) { - timeout := 10 * time.Second - - ls := newTestLogstashOutput(t, name, tls) - defer ls.Cleanup() - - es := newTestElasticsearchOutput(t, name) - defer es.Cleanup() - - ts := time.Now() - event := beat.Event{ - Timestamp: ts, - Fields: common.MapStr{ - "host": "test-host", - "type": "log", - "message": "hello world", - }, - } - - es.PublishEvent(event) - ls.PublishEvent(event) - - waitUntilTrue(timeout, checkIndex(es, 1)) - waitUntilTrue(timeout, checkIndex(ls, 1)) - - // search value in logstash elasticsearch index - lsResp, err := ls.Read() - if err != nil { - return - } - esResp, err := es.Read() - if err != nil { - return - } - - // validate - assert.Equal(t, len(lsResp), len(esResp)) - if len(lsResp) != 1 { - t.Fatalf("wrong number of results: %d", len(lsResp)) - } - - checkEvent(t, lsResp[0], esResp[0]) -} - -func TestLogstashElasticOutputPluginBulkCompatibleMessageTCP(t *testing.T) { - testLogstashElasticOutputPluginBulkCompatibleMessage(t, "cmpblk-tcp", false) -} - -func TestLogstashElasticOutputPluginBulkCompatibleMessageTLS(t *testing.T) { - testLogstashElasticOutputPluginBulkCompatibleMessage(t, "cmpblk-tls", true) -} - -func testLogstashElasticOutputPluginBulkCompatibleMessage(t *testing.T, name string, tls bool) { - if testing.Verbose() { - enableLogging([]string{"*"}) - } - - timeout := 10 * time.Second - - ls := newTestLogstashOutput(t, name, tls) - defer ls.Cleanup() - - es := newTestElasticsearchOutput(t, name) - defer es.Cleanup() - - ts := time.Now() - events := []beat.Event{ - { - Timestamp: ts, - Fields: common.MapStr{ - "host": "test-host", - "type": "log", - "message": "hello world", - }, - }, - } - - ls.BulkPublish(events) - es.BulkPublish(events) - - waitUntilTrue(timeout, checkIndex(ls, 1)) - waitUntilTrue(timeout, checkIndex(es, 1)) - - // search value in logstash elasticsearch index - lsResp, err := ls.Read() - if err != nil { - return - } - esResp, err := es.Read() - if err != nil { - return - } - - // validate - if len(lsResp) != len(esResp) { - assert.Equal(t, len(lsResp), len(esResp)) - t.Fatalf("wrong number of results: es=%d, ls=%d", - len(esResp), len(lsResp)) - } - - checkEvent(t, lsResp[0], esResp[0]) -} - -func checkEvent(t *testing.T, ls, es map[string]interface{}) { - lsEvent := ls["_source"].(map[string]interface{}) - esEvent := es["_source"].(map[string]interface{}) - commonFields := []string{"@timestamp", "host", "type", "message"} - for _, field := range commonFields { - assert.NotNil(t, lsEvent[field]) - assert.NotNil(t, esEvent[field]) - assert.Equal(t, lsEvent[field], esEvent[field]) - } -} - -func (t *testOutputer) PublishEvent(event beat.Event) { - t.Publish(outest.NewBatch(event)) -} - -func (t *testOutputer) BulkPublish(events []beat.Event) bool { - ok := false - batch := outest.NewBatch(events...) - - var wg sync.WaitGroup - wg.Add(1) - batch.OnSignal = func(sig outest.BatchSignal) { - ok = sig.Tag == outest.BatchACK - wg.Done() - } - - t.Publish(batch) - wg.Wait() - return ok -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash_test.go deleted file mode 100644 index a0170755..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/logstash_test.go +++ /dev/null @@ -1,195 +0,0 @@ -package logstash - -import ( - "fmt" - "os" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/go-lumber/server/v2" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/outputs/transport/transptest" -) - -const ( - logstashDefaultHost = "localhost" - logstashTestDefaultPort = "5044" -) - -func TestLogstashTCP(t *testing.T) { - enableLogging([]string{"*"}) - - timeout := 2 * time.Second - server := transptest.NewMockServerTCP(t, timeout, "", nil) - - config := map[string]interface{}{ - "hosts": []string{server.Addr()}, - "index": testLogstashIndex("logstash-conn-tcp"), - "timeout": "2s", - } - testConnectionType(t, server, testOutputerFactory(t, "", config)) -} - -func TestLogstashTLS(t *testing.T) { - enableLogging([]string{"*"}) - - certName := "ca_test" - ip := "127.0.0.1" - - timeout := 2 * time.Second - transptest.GenCertForTestingPurpose(t, ip, certName, "") - server := transptest.NewMockServerTLS(t, timeout, certName, nil) - - // create lumberjack output client - config := map[string]interface{}{ - "hosts": []string{server.Addr()}, - "index": testLogstashIndex("logstash-conn-tls"), - "timeout": "2s", - "ssl.certificate_authorities": []string{certName + ".pem"}, - } - testConnectionType(t, server, testOutputerFactory(t, "", config)) -} - -func TestLogstashInvalidTLSInsecure(t *testing.T) { - certName := "ca_invalid_test" - ip := "1.2.3.4" - - timeout := 2 * time.Second - transptest.GenCertForTestingPurpose(t, ip, certName, "") - server := transptest.NewMockServerTLS(t, timeout, certName, nil) - - config := map[string]interface{}{ - "hosts": []string{server.Addr()}, - "index": testLogstashIndex("logstash-conn-tls-invalid"), - "timeout": 2, - "max_retries": 1, - "ssl.verification_mode": "none", - "ssl.certificate_authorities": []string{certName + ".pem"}, - } - testConnectionType(t, server, testOutputerFactory(t, "", config)) -} - -func testLogstashIndex(test string) string { - return fmt.Sprintf("beat-logstash-int-%v-%d", test, os.Getpid()) -} - -func testConnectionType( - t *testing.T, - mock *transptest.MockServer, - makeOutputer func() outputs.NetworkClient, -) { - t.Log("testConnectionType") - server, _ := v2.NewWithListener(mock.Listener) - - // worker loop - go func() { - defer server.Close() - - t.Log("start worker loop") - defer t.Log("stop worker loop") - - t.Log("make outputter") - output := makeOutputer() - t.Logf("new outputter: %v", output) - - err := output.Connect() - if err != nil { - t.Error("test client failed to connect: ", err) - return - } - - sig := make(chan struct{}) - - t.Log("publish event") - batch := outest.NewBatch(testEvent()) - batch.OnSignal = func(_ outest.BatchSignal) { - close(sig) - } - err = output.Publish(batch) - - t.Log("wait signal") - <-sig - - assert.NoError(t, err) - assert.Equal(t, outest.BatchACK, batch.Signals[0].Tag) - }() - - for batch := range server.ReceiveChan() { - batch.ACK() - - events := batch.Events - assert.Equal(t, 1, len(events)) - msg := events[0].(map[string]interface{}) - assert.Equal(t, 10.0, msg["extra"]) - assert.Equal(t, "message", msg["message"]) - } -} - -func testEvent() beat.Event { - return beat.Event{Fields: common.MapStr{ - "@timestamp": common.Time(time.Now()), - "type": "log", - "extra": 10, - "message": "message", - }} -} - -func testOutputerFactory( - t *testing.T, - test string, - config map[string]interface{}, -) func() outputs.NetworkClient { - return func() outputs.NetworkClient { - return newTestLumberjackOutput(t, test, config) - } -} - -func newTestLumberjackOutput( - t *testing.T, - test string, - config map[string]interface{}, -) outputs.NetworkClient { - if config == nil { - config = map[string]interface{}{ - "hosts": []string{getLogstashHost()}, - "index": testLogstashIndex(test), - } - } - - cfg, _ := common.NewConfigFrom(config) - grp, err := outputs.Load(beat.Info{}, nil, "logstash", cfg) - if err != nil { - t.Fatalf("init logstash output plugin failed: %v", err) - } - - client := grp.Clients[0].(outputs.NetworkClient) - if err := client.Connect(); err != nil { - t.Fatalf("Client failed to connected: %v", err) - } - - return client -} - -func getLogstashHost() string { - return fmt.Sprintf("%v:%v", - getenv("LS_HOST", logstashDefaultHost), - getenv("LS_TCP_PORT", logstashTestDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/sync.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/sync.go index 256e4df6..534aebf6 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/sync.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/sync.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash import ( @@ -40,7 +57,7 @@ func newSyncClient( } var err error - enc := makeLogstashEventEncoder(beat, config.Index) + enc := makeLogstashEventEncoder(beat, config.EscapeHTML, config.Index) c.client, err = v2.NewSyncClientWithConn(conn, v2.JSONEncoder(enc), v2.Timeout(config.Timeout), diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/sync_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/sync_test.go deleted file mode 100644 index 29d913be..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/sync_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// +build !integration - -package logstash - -import ( - "sync" - "testing" - "time" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/outest" - "github.com/elastic/beats/libbeat/outputs/transport" - "github.com/elastic/beats/libbeat/outputs/transport/transptest" -) - -type testSyncDriver struct { - client outputs.NetworkClient - ch chan testDriverCommand - returns []testClientReturn - wg sync.WaitGroup -} - -type clientServer struct { - *transptest.MockServer -} - -func TestClientSendZero(t *testing.T) { - testSendZero(t, makeTestClient) -} - -func TestClientSimpleEvent(t *testing.T) { - testSimpleEvent(t, makeTestClient) -} - -func TestClientSimpleEventTTL(t *testing.T) { - testSimpleEventWithTTL(t, makeTestClient) -} - -func TestClientStructuredEvent(t *testing.T) { - testStructuredEvent(t, makeTestClient) -} - -func newClientServerTCP(t *testing.T, to time.Duration) *clientServer { - return &clientServer{transptest.NewMockServerTCP(t, to, "", nil)} -} - -func makeTestClient(conn *transport.Client) testClientDriver { - config := defaultConfig - config.Timeout = 1 * time.Second - config.TTL = 5 * time.Second - client, err := newSyncClient(beat.Info{}, conn, outputs.NewNilObserver(), &config) - if err != nil { - panic(err) - } - - return newClientTestDriver(client) -} - -func newClientTestDriver(client outputs.NetworkClient) *testSyncDriver { - driver := &testSyncDriver{ - client: client, - ch: make(chan testDriverCommand), - returns: nil, - } - - driver.wg.Add(1) - go func() { - defer driver.wg.Done() - - for { - cmd, ok := <-driver.ch - if !ok { - return - } - - switch cmd.code { - case driverCmdQuit: - return - case driverCmdConnect: - driver.client.Connect() - case driverCmdClose: - driver.client.Close() - case driverCmdPublish: - err := driver.client.Publish(cmd.batch) - driver.returns = append(driver.returns, testClientReturn{cmd.batch, err}) - } - } - }() - - return driver -} - -func (t *testSyncDriver) Stop() { - if t.ch != nil { - t.ch <- testDriverCommand{code: driverCmdQuit} - t.wg.Wait() - close(t.ch) - t.client.Close() - t.ch = nil - } -} - -func (t *testSyncDriver) Connect() { - t.ch <- testDriverCommand{code: driverCmdConnect} -} - -func (t *testSyncDriver) Close() { - t.ch <- testDriverCommand{code: driverCmdClose} -} - -func (t *testSyncDriver) Publish(batch *outest.Batch) { - t.ch <- testDriverCommand{code: driverCmdPublish, batch: batch} -} - -func (t *testSyncDriver) Returns() []testClientReturn { - return t.returns -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/window.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/window.go index df7ff1cd..529efad2 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/window.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/window.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/window_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/logstash/window_test.go deleted file mode 100644 index be0eaad5..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/logstash/window_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// +build !integration - -package logstash - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestShrinkWindowSizeNeverZero(t *testing.T) { - enableLogging([]string{"logstash"}) - - windowSize := 124 - var w window - w.init(windowSize, defaultConfig.BulkMaxSize) - - w.windowSize = int32(windowSize) - for i := 0; i < 100; i++ { - w.shrinkWindow() - } - - assert.Equal(t, 1, int(w.windowSize)) -} - -func TestGrowWindowSizeUpToBatchSizes(t *testing.T) { - batchSize := 114 - windowSize := 1024 - testGrowWindowSize(t, 10, 0, windowSize, batchSize, batchSize) -} - -func TestGrowWindowSizeUpToMax(t *testing.T) { - batchSize := 114 - windowSize := 64 - testGrowWindowSize(t, 10, 0, windowSize, batchSize, windowSize) -} - -func TestGrowWindowSizeOf1(t *testing.T) { - batchSize := 114 - windowSize := 1024 - testGrowWindowSize(t, 1, 0, windowSize, batchSize, batchSize) -} - -func TestGrowWindowSizeToMaxOKOnly(t *testing.T) { - batchSize := 114 - windowSize := 1024 - maxOK := 71 - testGrowWindowSize(t, 1, maxOK, windowSize, batchSize, maxOK) -} - -func testGrowWindowSize(t *testing.T, - initial, maxOK, windowSize, batchSize, expected int, -) { - enableLogging([]string{"logstash"}) - var w window - w.init(initial, windowSize) - w.maxOkWindowSize = maxOK - for i := 0; i < 100; i++ { - w.tryGrowWindow(batchSize) - } - - assert.Equal(t, expected, int(w.windowSize)) - assert.Equal(t, expected, int(w.maxOkWindowSize)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/metrics.go b/vendor/github.com/elastic/beats/libbeat/outputs/metrics.go index ae52ff16..43dbf5da 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/metrics.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/metrics.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs import "github.com/elastic/beats/libbeat/monitoring" @@ -73,7 +90,7 @@ func (s *Stats) Failed(n int) { } } -// Duplicate updats the active and duplicate event metrics. +// Duplicate updates the active and duplicate event metrics. func (s *Stats) Duplicate(n int) { if s != nil { s.duplicates.Add(uint64(n)) @@ -83,7 +100,7 @@ func (s *Stats) Duplicate(n int) { // Dropped updates total number of event drops as reported by the output. // Outputs will only report dropped events on fatal errors which lead to the -// event not being publishabel. For example encoding errors or total event size +// event not being publishable. For example encoding errors or total event size // being bigger then maximum supported event size. func (s *Stats) Dropped(n int) { // number of dropped events (e.g. encoding failures) diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/observer.go b/vendor/github.com/elastic/beats/libbeat/outputs/observer.go index e70a1c0b..2cc49953 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/observer.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/observer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs // Observer provides an interface used by outputs to report common events on diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/outest/batch.go b/vendor/github.com/elastic/beats/libbeat/outputs/outest/batch.go index 65f39b34..5cb16f5a 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/outest/batch.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/outest/batch.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outest import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/outil/select.go b/vendor/github.com/elastic/beats/libbeat/outputs/outil/select.go index 3607211b..d6ff4931 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/outil/select.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/outil/select.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outil import ( @@ -6,7 +23,7 @@ import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/fmtstr" - "github.com/elastic/beats/libbeat/processors" + "github.com/elastic/beats/libbeat/conditions" ) type Selector struct { @@ -39,7 +56,7 @@ type listSelector struct { type condSelector struct { s SelectorExpr - cond *processors.Condition + cond conditions.Condition } type constSelector struct { @@ -184,7 +201,7 @@ func ConcatSelectorExpr(s ...SelectorExpr) SelectorExpr { func ConditionalSelectorExpr( s SelectorExpr, - cond *processors.Condition, + cond conditions.Condition, ) SelectorExpr { return &condSelector{s, cond} } @@ -236,19 +253,19 @@ func buildSingle(cfg *common.Config, key string) (SelectorExpr, error) { } // 4. extract conditional - var cond *processors.Condition + var cond conditions.Condition if cfg.HasField("when") { sub, err := cfg.Child("when", -1) if err != nil { return nil, err } - condConfig := processors.ConditionConfig{} + condConfig := conditions.Config{} if err := sub.Unpack(&condConfig); err != nil { return nil, err } - tmp, err := processors.NewCondition(&condConfig) + tmp, err := conditions.NewCondition(&condConfig) if err != nil { return nil, err } diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/outil/select_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/outil/select_test.go deleted file mode 100644 index 899997aa..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/outil/select_test.go +++ /dev/null @@ -1,277 +0,0 @@ -package outil - -import ( - "strings" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -type node map[string]interface{} - -func TestSelector(t *testing.T) { - tests := []struct { - title string - config string - event common.MapStr - expected string - }{ - { - "constant key", - `key: value`, - common.MapStr{}, - "value", - }, - { - "format string key", - `key: '%{[key]}'`, - common.MapStr{"key": "value"}, - "value", - }, - { - "key with empty keys", - `{key: value, keys: }`, - common.MapStr{}, - "value", - }, - { - "constant in multi key", - `keys: [key: 'value']`, - common.MapStr{}, - "value", - }, - { - "format string in multi key", - `keys: [key: '%{[key]}']`, - common.MapStr{"key": "value"}, - "value", - }, - { - "missing format string key with default in rule", - `keys: - - key: '%{[key]}' - default: value`, - common.MapStr{}, - "value", - }, - { - "empty format string key with default in rule", - `keys: - - key: '%{[key]}' - default: value`, - common.MapStr{"key": ""}, - "value", - }, - { - "missing format string key with constant in next rule", - `keys: - - key: '%{[key]}' - - key: value`, - common.MapStr{}, - "value", - }, - { - "missing format string key with constant in top-level rule", - `{ key: value, keys: [key: '%{[key]}']}`, - common.MapStr{}, - "value", - }, - { - "apply mapping", - `keys: - - key: '%{[key]}' - mappings: - v: value`, - common.MapStr{"key": "v"}, - "value", - }, - { - "apply mapping with default on empty key", - `keys: - - key: '%{[key]}' - default: value - mappings: - v: 'v'`, - common.MapStr{"key": ""}, - "value", - }, - { - "apply mapping with default on empty lookup", - `keys: - - key: '%{[key]}' - default: value - mappings: - v: ''`, - common.MapStr{"key": "v"}, - "value", - }, - { - "apply mapping without match", - `keys: - - key: '%{[key]}' - mappings: - v: '' - - key: value`, - common.MapStr{"key": "x"}, - "value", - }, - { - "mapping with constant key", - `keys: - - key: k - mappings: - k: value`, - common.MapStr{}, - "value", - }, - { - "mapping with missing constant key", - `keys: - - key: unknown - mappings: {k: wrong} - - key: value`, - common.MapStr{}, - "value", - }, - { - "mapping with missing constant key, but default", - `keys: - - key: unknown - default: value - mappings: {k: wrong}`, - common.MapStr{}, - "value", - }, - { - "matching condition", - `keys: - - key: value - when.equals.test: test`, - common.MapStr{"test": "test"}, - "value", - }, - { - "failing condition", - `keys: - - key: wrong - when.equals.test: test - - key: value`, - common.MapStr{"test": "x"}, - "value", - }, - } - - for i, test := range tests { - t.Logf("run (%v): %v", i, test.title) - - yaml := strings.Replace(test.config, "\t", " ", -1) - cfg, err := common.NewConfigWithYAML([]byte(yaml), "test") - if err != nil { - t.Errorf("YAML parse error: %v\n%v", err, yaml) - continue - } - - sel, err := BuildSelectorFromConfig(cfg, Settings{ - Key: "key", - MultiKey: "keys", - EnableSingleOnly: true, - FailEmpty: true, - }) - if err != nil { - t.Error(err) - continue - } - - event := beat.Event{ - Timestamp: time.Now(), - Fields: test.event, - } - actual, err := sel.Select(&event) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.expected, actual) - } -} - -func TestSelectorInitFail(t *testing.T) { - tests := []struct { - title string - config string - }{ - { - "keys missing", - `test: no key`, - }, - { - "invalid keys type", - `keys: 5`, - }, - { - "invaid keys element type", - `keys: [5]`, - }, - { - "invalid key type", - `key: {}`, - }, - { - "missing key in list", - `keys: [default: value]`, - }, - { - "invalid key type in list", - `keys: [key: {}]`, - }, - { - "fail on invalid format string", - `key: '%{[abc}'`, - }, - { - "fail on invalid format string in list", - `keys: [key: '%{[abc}']`, - }, - { - "default value type mismatch", - `keys: [{key: ok, default: {}}]`, - }, - { - "mappings type mismatch", - `keys: - - key: '%{[k]}' - mappings: {v: {}}`, - }, - { - "condition empty", - `keys: - - key: value - when:`, - }, - } - - for i, test := range tests { - t.Logf("run (%v): %v", i, test.title) - - cfg, err := common.NewConfigWithYAML([]byte(test.config), "test") - if err != nil { - t.Error(err) - continue - } - - _, err = BuildSelectorFromConfig(cfg, Settings{ - Key: "key", - MultiKey: "keys", - EnableSingleOnly: true, - FailEmpty: true, - }) - - assert.Error(t, err) - t.Log(err) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/output_reg.go b/vendor/github.com/elastic/beats/libbeat/outputs/output_reg.go index 72fdc956..1e441bec 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/output_reg.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/output_reg.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/outputs.go b/vendor/github.com/elastic/beats/libbeat/outputs/outputs.go index eead5b66..aff2bf14 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/outputs.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/outputs.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs defines common types and interfaces to be implemented by // output plugins. @@ -18,6 +35,8 @@ type Client interface { // the publisher pipeline. The publisher pipeline (if configured by the output // factory) will take care of retrying/dropping events. Publish(publisher.Batch) error + + String() string } // NetworkClient defines the required client capabilities for network based diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/plugin.go b/vendor/github.com/elastic/beats/libbeat/outputs/plugin.go index 86c600e4..254f9383 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/plugin.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/redis/backoff.go b/vendor/github.com/elastic/beats/libbeat/outputs/redis/backoff.go new file mode 100644 index 00000000..7c63574d --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/outputs/redis/backoff.go @@ -0,0 +1,118 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis + +import ( + "time" + + "github.com/garyburd/redigo/redis" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/publisher" +) + +type backoffClient struct { + client *client + + reason failReason + + done chan struct{} + backoff *common.Backoff +} + +// failReason is used to track the cause of an error. +// The redis client forces us to reconnect on any error (even for redis +// internal errors). The backoff timer must not be reset on a successful +// reconnect after publishing failed with a redis internal +// error (e.g. OutOfMemory), so we can still guarantee the backoff duration +// increases exponentially. +type failReason uint8 + +const ( + failNone failReason = iota + failRedis + failOther +) + +func newBackoffClient(client *client, init, max time.Duration) *backoffClient { + done := make(chan struct{}) + backoff := common.NewBackoff(done, init, max) + return &backoffClient{ + client: client, + done: done, + backoff: backoff, + } +} + +func (b *backoffClient) Connect() error { + err := b.client.Connect() + if err != nil { + // give the client a chance to promote an internal error to a network error. + b.updateFailReason(err) + b.backoff.Wait() + } else if b.reason != failRedis { // Only reset backoff duration if failure was due to IO errors. + b.resetFail() + } + + return err +} + +func (b *backoffClient) Close() error { + err := b.client.Close() + close(b.done) + return err +} + +func (b *backoffClient) Publish(batch publisher.Batch) error { + err := b.client.Publish(batch) + if err != nil { + b.client.Close() + b.updateFailReason(err) + b.backoff.Wait() + } else { + b.resetFail() + } + return err +} + +func (b *backoffClient) updateFailReason(err error) { + if b.reason == failRedis { + // we only allow 'Publish' to recover from an redis internal error + return + } + + if err == nil { + b.reason = failNone + return + } + + if _, ok := err.(redis.Error); ok { + b.reason = failRedis + } else { + b.reason = failOther + } +} + +func (b *backoffClient) resetFail() { + b.reason = failNone + b.backoff.Reset() +} + +func (b *backoffClient) String() string { + return b.client.String() +} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/redis/client.go b/vendor/github.com/elastic/beats/libbeat/outputs/redis/client.go index e9ec047c..fc395070 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/redis/client.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/redis/client.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis import ( @@ -135,6 +152,10 @@ func (c *client) Publish(batch publisher.Batch) error { return err } +func (c *client) String() string { + return "redis(" + c.Client.String() + ")" +} + func (c *client) makePublish( conn redis.Conn, ) (publishFn, error) { @@ -211,7 +232,7 @@ func (c *client) publishEventsBulk(conn redis.Conn, command string) publishFn { // RPUSH returns total length of list -> fail and retry all on error _, err := conn.Do(command, args...) if err != nil { - logp.Err("Failed to %v to redis list with %v", command, err) + logp.Err("Failed to %v to redis list with: %v", command, err) return okEvents, err } diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/redis/config.go b/vendor/github.com/elastic/beats/libbeat/outputs/redis/config.go index a419eb0a..2a7cd2ce 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/redis/config.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/redis/config.go @@ -1,12 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis import ( - "errors" "fmt" "time" "github.com/elastic/beats/libbeat/common/transport/tlscommon" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/outputs/codec" "github.com/elastic/beats/libbeat/outputs/transport" ) @@ -25,6 +40,12 @@ type redisConfig struct { Codec codec.Config `config:"codec"` Db int `config:"db"` DataType string `config:"datatype"` + Backoff backoff `config:"backoff"` +} + +type backoff struct { + Init time.Duration + Max time.Duration } var ( @@ -37,6 +58,10 @@ var ( TLS: nil, Db: 0, DataType: "list", + Backoff: backoff{ + Init: 1 * time.Second, + Max: 60 * time.Second, + }, } ) @@ -47,15 +72,5 @@ func (c *redisConfig) Validate() error { return fmt.Errorf("redis data type %v not supported", c.DataType) } - if c.Key != "" && c.Index != "" { - return errors.New("Cannot use both `output.redis.key` and `output.redis.index` configuration options." + - " Set only `output.redis.key`") - } - - if c.Key == "" && c.Index != "" { - c.Key = c.Index - logp.Warn("The `output.redis.index` configuration setting is deprecated. Use `output.redis.key` instead.") - } - return nil } diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/redis/config_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/redis/config_test.go deleted file mode 100644 index 5693dd5f..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/redis/config_test.go +++ /dev/null @@ -1,28 +0,0 @@ -package redis - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestValidate(t *testing.T) { - tests := []struct { - Name string - Input redisConfig - Valid bool - }{ - {"No config", redisConfig{Key: "", Index: ""}, true}, - {"Only key", redisConfig{Key: "test", Index: ""}, true}, - {"Only index", redisConfig{Key: "", Index: "test"}, true}, - {"Both", redisConfig{Key: "test", Index: "test"}, false}, - - {"Invalid Datatype", redisConfig{Key: "test", DataType: "something"}, false}, - {"List Datatype", redisConfig{Key: "test", DataType: "list"}, true}, - {"Channel Datatype", redisConfig{Key: "test", DataType: "channel"}, true}, - } - - for _, test := range tests { - assert.Equal(t, test.Input.Validate() == nil, test.Valid, test.Name) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/redis/redis.go b/vendor/github.com/elastic/beats/libbeat/outputs/redis/redis.go index 9fd502ea..ea6e0801 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/redis/redis.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/redis/redis.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis import ( @@ -34,23 +51,13 @@ func makeRedis( observer outputs.Observer, cfg *common.Config, ) (outputs.Group, error) { - config := defaultConfig - if err := cfg.Unpack(&config); err != nil { - return outputs.Fail(err) - } - var dataType redisDataType - switch config.DataType { - case "", "list": - dataType = redisListType - case "channel": - dataType = redisChannelType - default: - return outputs.Fail(errors.New("Bad Redis data type")) + if !cfg.HasField("index") { + cfg.SetString("index", -1, beat.Beat) } // ensure we have a `key` field in settings - if cfg.HasField("index") && !cfg.HasField("key") { + if !cfg.HasField("key") { s, err := cfg.String("index", -1) if err != nil { return outputs.Fail(err) @@ -59,11 +66,20 @@ func makeRedis( return outputs.Fail(err) } } - if !cfg.HasField("index") { - cfg.SetString("index", -1, beat.Beat) + + config := defaultConfig + if err := cfg.Unpack(&config); err != nil { + return outputs.Fail(err) } - if !cfg.HasField("key") { - cfg.SetString("key", -1, beat.Beat) + + var dataType redisDataType + switch config.DataType { + case "", "list": + dataType = redisListType + case "channel": + dataType = redisChannelType + default: + return outputs.Fail(errors.New("Bad Redis data type")) } key, err := outil.BuildSelectorFromConfig(cfg, outil.Settings{ @@ -105,8 +121,9 @@ func makeRedis( return outputs.Fail(err) } - clients[i] = newClient(conn, observer, config.Timeout, + client := newClient(conn, observer, config.Timeout, config.Password, config.Db, key, dataType, config.Index, enc) + clients[i] = newBackoffClient(client, config.Backoff.Init, config.Backoff.Max) } return outputs.SuccessNet(config.LoadBalance, config.BulkMaxSize, config.MaxRetries, clients) diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/redis/redis_integration_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/redis/redis_integration_test.go deleted file mode 100644 index 5cb7ab70..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/redis/redis_integration_test.go +++ /dev/null @@ -1,300 +0,0 @@ -// +build integration - -package redis - -import ( - "encoding/json" - "fmt" - "os" - "sync" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/garyburd/redigo/redis" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/outest" - - _ "github.com/elastic/beats/libbeat/outputs/codec/format" - _ "github.com/elastic/beats/libbeat/outputs/codec/json" -) - -const ( - RedisDefaultHost = "localhost" - RedisDefaultPort = "6379" - - SRedisDefaultHost = "localhost" - SRedisDefaultPort = "6380" -) - -func TestPublishListTCP(t *testing.T) { - key := "test_publist_tcp" - db := 0 - redisConfig := map[string]interface{}{ - "hosts": []string{getRedisAddr()}, - "key": key, - "db": db, - "datatype": "list", - "timeout": "5s", - } - - testPublishList(t, redisConfig) -} - -func TestPublishListTLS(t *testing.T) { - key := "test_publist_tls" - db := 0 - redisConfig := map[string]interface{}{ - "hosts": []string{getSRedisAddr()}, - "key": key, - "db": db, - "datatype": "list", - "timeout": "5s", - - "ssl.verification_mode": "full", - "ssl.certificate_authorities": []string{ - "../../../testing/environments/docker/sredis/pki/tls/certs/sredis.crt", - }, - } - - testPublishList(t, redisConfig) -} - -func testPublishList(t *testing.T, cfg map[string]interface{}) { - batches := 100 - batchSize := 1000 - total := batches & batchSize - - db := 0 - key := cfg["key"].(string) - if v, ok := cfg["db"]; ok { - db = v.(int) - } - - conn, err := redis.Dial("tcp", getRedisAddr(), redis.DialDatabase(db)) - if err != nil { - t.Fatalf("redis.Dial failed %v", err) - } - - // delete old key if present - defer conn.Close() - conn.Do("DEL", key) - - out := newRedisTestingOutput(t, cfg) - err = sendTestEvents(out, batches, batchSize) - assert.NoError(t, err) - - results := make([][]byte, total) - for i := range results { - results[i], err = redis.Bytes(conn.Do("LPOP", key)) - assert.NoError(t, err) - } - - for i, raw := range results { - evt := struct{ Message int }{} - err = json.Unmarshal(raw, &evt) - assert.NoError(t, err) - assert.Equal(t, i+1, evt.Message) - } -} - -func TestPublishChannelTCP(t *testing.T) { - db := 0 - key := "test_pubchan_tcp" - redisConfig := map[string]interface{}{ - "hosts": []string{getRedisAddr()}, - "key": key, - "db": db, - "datatype": "channel", - "timeout": "5s", - } - - testPublishChannel(t, redisConfig) -} - -func TestPublishChannelTLS(t *testing.T) { - db := 0 - key := "test_pubchan_tls" - redisConfig := map[string]interface{}{ - "hosts": []string{getSRedisAddr()}, - "key": key, - "db": db, - "datatype": "channel", - "timeout": "5s", - - "ssl.verification_mode": "full", - "ssl.certificate_authorities": []string{ - "../../../testing/environments/docker/sredis/pki/tls/certs/sredis.crt", - }, - } - - testPublishChannel(t, redisConfig) -} - -func TestPublishChannelTCPWithFormatting(t *testing.T) { - t.Skip("format string not yet supported") - db := 0 - key := "test_pubchan_tcp" - redisConfig := map[string]interface{}{ - "hosts": []string{getRedisAddr()}, - "key": key, - "db": db, - "datatype": "channel", - "timeout": "5s", - "codec.format.string": "%{[message]}", - } - - testPublishChannel(t, redisConfig) -} - -func testPublishChannel(t *testing.T, cfg map[string]interface{}) { - batches := 100 - batchSize := 1000 - total := batches & batchSize - - db := 0 - key := cfg["key"].(string) - if v, ok := cfg["db"]; ok { - db = v.(int) - } - - conn, err := redis.Dial("tcp", getRedisAddr(), redis.DialDatabase(db)) - if err != nil { - t.Fatalf("redis.Dial failed %v", err) - } - - // delete old key if present - defer conn.Close() - conn.Do("DEL", key) - - // subscribe to packetbeat channel - psc := redis.PubSubConn{conn} - if err := psc.Subscribe(key); err != nil { - t.Fatal(err) - } - defer psc.Unsubscribe(key) - - // connect and publish events - var wg sync.WaitGroup - var pubErr error - out := newRedisTestingOutput(t, cfg) - wg.Add(1) - go func() { - defer wg.Done() - pubErr = sendTestEvents(out, batches, batchSize) - }() - - // collect published events by subscription - var messages [][]byte - assert.NoError(t, conn.Err()) - for conn.Err() == nil { - t.Logf("try collect message") - - switch v := psc.Receive().(type) { - case redis.Message: - messages = append(messages, v.Data) - case error: - t.Error(v) - default: - t.Logf("received: %#v", v) - } - - if len(messages) == total { - break - } - } - wg.Wait() - - // validate - assert.NoError(t, pubErr) - assert.Equal(t, total, len(messages)) - for i, raw := range messages { - evt := struct{ Message int }{} - if _, hasFmt := cfg["codec.format.string"]; hasFmt { - t.Fatal("format string not yet supported") - /* - fmtString := fmtstr.MustCompileEvent(fmt.(string)) - expectedMessage, _ := fmtString.Run(createEvent(i + 1)) - assert.NoError(t, err) - assert.Equal(t, string(expectedMessage), string(raw)) - */ - } else { - err = json.Unmarshal(raw, &evt) - assert.NoError(t, err) - assert.Equal(t, i+1, evt.Message) - } - } -} - -func getEnv(name, or string) string { - if x := os.Getenv(name); x != "" { - return x - } - return or -} - -func getRedisAddr() string { - return fmt.Sprintf("%v:%v", - getEnv("REDIS_HOST", RedisDefaultHost), - getEnv("REDIS_PORT", RedisDefaultPort)) -} - -func getSRedisAddr() string { - return fmt.Sprintf("%v:%v", - getEnv("SREDIS_HOST", SRedisDefaultHost), - getEnv("SREDIS_PORT", SRedisDefaultPort)) -} - -func newRedisTestingOutput(t *testing.T, cfg map[string]interface{}) *client { - config, err := common.NewConfigFrom(cfg) - if err != nil { - t.Fatalf("Error reading config: %v", err) - } - - plugin := outputs.FindFactory("redis") - if plugin == nil { - t.Fatalf("redis output module not registered") - } - - out, err := plugin(beat.Info{Beat: "libbeat"}, outputs.NewNilObserver(), config) - if err != nil { - t.Fatalf("Failed to initialize redis output: %v", err) - } - - client := out.Clients[0].(*client) - if err := client.Connect(); err != nil { - t.Fatalf("Failed to connect to redis host: %v", err) - } - - return client -} - -func sendTestEvents(out *client, batches, N int) error { - i := 1 - for b := 0; b < batches; b++ { - events := make([]beat.Event, N) - for n := range events { - events[n] = createEvent(i) - i++ - } - - batch := outest.NewBatch(events...) - err := out.Publish(batch) - if err != nil { - return err - } - } - - return nil -} - -func createEvent(message int) beat.Event { - return beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{"message": message}, - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/tls.go b/vendor/github.com/elastic/beats/libbeat/outputs/tls.go index 5d21ec90..468a8f64 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/tls.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/tls.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/client.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/client.go index 2b3b6f1d..8313b592 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/client.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/client.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import ( @@ -230,3 +247,7 @@ func (c *Client) Test(d testing.Driver) { d.Fatal("talk to server", err) }) } + +func (c *Client) String() string { + return c.network + "://" + c.host +} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/proxy.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/proxy.go index ce75f4e5..95bc7f4d 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/proxy.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/proxy.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/stats.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/stats.go index a6eb1ff9..56f97761 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/stats.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/stats.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/tcp.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/tcp.go index 5a741170..b87bfb8b 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/tcp.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/tcp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/tls.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/tls.go index dc4976d2..af824602 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/tls.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/tls.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/transport.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/transport.go index 14f1f559..28367129 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/transport.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/transport.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/transptest/testing.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/transptest/testing.go index 369ba206..f657b173 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/transptest/testing.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/transptest/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transptest import ( diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/transptest/testing_test.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/transptest/testing_test.go deleted file mode 100644 index fdfced8f..00000000 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/transptest/testing_test.go +++ /dev/null @@ -1,161 +0,0 @@ -// Need for unit and integration tests - -package transptest - -import ( - "fmt" - "net" - "testing" - "time" - - socks5 "github.com/armon/go-socks5" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/outputs/transport" -) - -// netSOCKS5Proxy starts a new SOCKS5 proxy server that listens on localhost. -// -// Usage: -// l, tcpAddr := newSOCKS5Proxy(t) -// defer l.Close() -func newSOCKS5Proxy(t *testing.T) (net.Listener, transport.ProxyConfig) { - // Create a SOCKS5 server - conf := &socks5.Config{} - server, err := socks5.New(conf) - if err != nil { - t.Fatal(err) - } - - // Create a local listener - l, err := net.Listen("tcp", "localhost:0") - if err != nil { - t.Fatalf("err: %v", err) - } - - // Listen - go func() { - err := server.Serve(l) - if err != nil { - t.Log(err) - } - }() - - tcpAddr := l.Addr().(*net.TCPAddr) - config := transport.ProxyConfig{URL: fmt.Sprintf("socks5://%s", tcpAddr.String())} - return l, config -} - -func TestTransportReconnectsOnConnect(t *testing.T) { - l, config := newSOCKS5Proxy(t) - defer l.Close() - - certName := "ca_test" - timeout := 2 * time.Second - GenCertForTestingPurpose(t, "127.0.0.1", certName, "") - - testServer(t, &config, func(t *testing.T, makeServer MockServerFactory, proxy *transport.ProxyConfig) { - server := makeServer(t, timeout, certName, proxy) - defer server.Close() - - transp, err := server.Transp() - if err != nil { - t.Fatalf("Failed to create client: %v", err) - } - - await := server.Await() - err = transp.Connect() - if err != nil { - t.Fatalf("Failed to connect: %v", err) - } - client := <-await - - // force reconnect - client = nil - await = server.Await() - err = transp.Connect() - assert.NoError(t, err) - if err != nil { - client = <-await - client.Close() - } - - transp.Close() - }) -} - -func TestTransportFailConnectUnknownAddress(t *testing.T) { - l, config := newSOCKS5Proxy(t) - defer l.Close() - - certName := "ca_test" - GenCertForTestingPurpose(t, "127.0.0.1", certName, "") - - invalidAddr := "invalid.dns.fqdn-unknown.invalid:100" - - run := func(makeTransp TransportFactory, proxy *transport.ProxyConfig) func(*testing.T) { - return func(t *testing.T) { - transp, err := makeTransp(invalidAddr, proxy) - if err != nil { - t.Fatalf("failed to generate transport client: %v", err) - } - - err = transp.Connect() - assert.NotNil(t, err) - } - } - - factoryTests := func(f TransportFactory) func(*testing.T) { - return func(t *testing.T) { - t.Run("connect", run(f, nil)) - t.Run("socks5", run(f, &config)) - } - } - - timeout := 100 * time.Millisecond - t.Run("tcp", factoryTests(connectTCP(timeout))) - t.Run("tls", factoryTests(connectTLS(timeout, certName))) -} - -func TestTransportClosedOnWriteReadError(t *testing.T) { - l, config := newSOCKS5Proxy(t) - defer l.Close() - - certName := "ca_test" - timeout := 2 * time.Second - GenCertForTestingPurpose(t, "127.0.0.1", certName, "") - - testServer(t, &config, func(t *testing.T, makeServer MockServerFactory, proxy *transport.ProxyConfig) { - server := makeServer(t, timeout, certName, proxy) - defer server.Close() - - client, transp, err := server.ConnectPair() - if err != nil { - t.Fatalf("Failed to create client: %v", err) - } - client.Close() - - var buf [10]byte - transp.Write([]byte("test3")) - _, err = transp.Read(buf[:]) - assert.NotNil(t, err) - }) -} - -func testServer(t *testing.T, config *transport.ProxyConfig, run func(*testing.T, MockServerFactory, *transport.ProxyConfig)) { - runner := func(f MockServerFactory, c *transport.ProxyConfig) func(t *testing.T) { - return func(t *testing.T) { - run(t, f, config) - } - } - - factoryTests := func(f MockServerFactory) func(t *testing.T) { - return func(t *testing.T) { - t.Run("connect", runner(f, nil)) - t.Run("socks5", runner(f, config)) - } - } - - t.Run("tcp", factoryTests(NewMockServerTCP)) - t.Run("tls", factoryTests(NewMockServerTLS)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/util.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/util.go index 41e4be6d..b86bf46d 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/util.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import ( @@ -48,7 +65,7 @@ func DialWith( // // https://tools.ietf.org/html/rfc1794 // > "Clients, of course, may reorder this information" - with respect to - // > handling order of dns records in a response.orwarded. Really required? + // > handling order of dns records in a response.forwarded. Really required? for _, i := range rand.Perm(len(addresses)) { c, err = dialer.Dial(network, net.JoinHostPort(addresses[i], port)) if err == nil && c != nil { diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/transport/wrap.go b/vendor/github.com/elastic/beats/libbeat/outputs/transport/wrap.go index 350d60db..7bde4735 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/transport/wrap.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/transport/wrap.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 transport import "net" diff --git a/vendor/github.com/elastic/beats/libbeat/outputs/util.go b/vendor/github.com/elastic/beats/libbeat/outputs/util.go index dfd517d1..15068910 100644 --- a/vendor/github.com/elastic/beats/libbeat/outputs/util.go +++ b/vendor/github.com/elastic/beats/libbeat/outputs/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 outputs // Fail helper can be used by output factories, to create a failure response when diff --git a/vendor/github.com/elastic/beats/libbeat/paths/paths.go b/vendor/github.com/elastic/beats/libbeat/paths/paths.go index 971aad85..6e33940d 100644 --- a/vendor/github.com/elastic/beats/libbeat/paths/paths.go +++ b/vendor/github.com/elastic/beats/libbeat/paths/paths.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 paths provides a common way to handle paths // configuration for all Beats. // diff --git a/vendor/github.com/elastic/beats/libbeat/paths/paths_test.go b/vendor/github.com/elastic/beats/libbeat/paths/paths_test.go deleted file mode 100644 index 8782c74d..00000000 --- a/vendor/github.com/elastic/beats/libbeat/paths/paths_test.go +++ /dev/null @@ -1,159 +0,0 @@ -package paths - -import ( - "os" - "path/filepath" - "runtime" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestHomePath(t *testing.T) { - type io struct { - Home string // cli flag home setting - Path string // requested path - ResultHome string // expected home path - ResultData string // expected data path - } - - binDir, err := filepath.Abs(filepath.Dir(os.Args[0])) - if err != nil { - t.Fatal(err) - } - - tests := []io{ - { - Home: binDir, - Path: "test", - ResultHome: filepath.Join(binDir, "test"), - ResultData: filepath.Join(binDir, "data", "test"), - }, - { - Home: rootDir("/tmp"), - Path: "test", - ResultHome: rootDir("/tmp/test"), - ResultData: rootDir("/tmp/data/test"), - }, - { - Home: rootDir("/home"), - Path: rootDir("/abc/test"), - ResultHome: rootDir("/abc/test"), - ResultData: rootDir("/abc/test"), - }, - } - - for _, test := range tests { - cfg := Path{Home: test.Home} - if err := Paths.initPaths(&cfg); err != nil { - t.Errorf("error on %+v: %v", test, err) - continue - } - - assert.Equal(t, test.ResultHome, Resolve(Home, test.Path), "failed on %+v", test) - - // config path same as home path - assert.Equal(t, test.ResultHome, Resolve(Config, test.Path), "failed on %+v", test) - - // data path under home path - assert.Equal(t, test.ResultData, Resolve(Data, test.Path), "failed on %+v", test) - } -} - -func TestDataPath(t *testing.T) { - type io struct { - Home string // cli flag home setting - Data string // cli flag for data setting - Path string // requested path - ResultData string // expected data path - } - - binDir, err := filepath.Abs(filepath.Dir(os.Args[0])) - if err != nil { - t.Fatal(err) - } - - tests := []io{ - { - Home: binDir, - Data: "", - Path: "test", - ResultData: filepath.Join(binDir, "data", "test"), - }, - { - Home: rootDir("/tmp"), - Data: rootDir("/root"), - Path: "test", - ResultData: rootDir("/root/test"), - }, - { - Home: rootDir("/tmp"), - Data: rootDir("root"), - Path: rootDir("/var/data"), - ResultData: rootDir("/var/data"), - }, - } - - for _, test := range tests { - cfg := Path{Home: test.Home, Data: test.Data} - if err := Paths.initPaths(&cfg); err != nil { - t.Errorf("error on %+v: %v", test, err) - continue - } - - assert.Equal(t, test.ResultData, Resolve(Data, test.Path), "failed on %+v", test) - } -} - -func TestLogsPath(t *testing.T) { - type io struct { - Home string // cli flag home setting - Logs string // cli flag for data setting - Path string // requested path - ResultLogs string // expected logs path - } - - binDir, err := filepath.Abs(filepath.Dir(os.Args[0])) - if err != nil { - t.Fatal(err) - } - - tests := []io{ - { - Home: binDir, - Logs: "", - Path: "test", - ResultLogs: filepath.Join(binDir, "logs", "test"), - }, - { - Home: rootDir("/tmp"), - Logs: rootDir("/var"), - Path: "log", - ResultLogs: rootDir("/var/log"), - }, - { - Home: rootDir("tmp"), - Logs: rootDir("root"), - Path: rootDir("/var/log"), - ResultLogs: rootDir("/var/log"), - }, - } - - for _, test := range tests { - cfg := Path{Home: test.Home, Logs: test.Logs} - if err := Paths.initPaths(&cfg); err != nil { - t.Errorf("error on %+v: %v", test, err) - continue - } - - assert.Equal(t, test.ResultLogs, Resolve(Logs, test.Path)) - } -} - -// rootDir builds an OS specific absolute root directory. -func rootDir(path string) string { - if runtime.GOOS == "windows" { - return filepath.Join(`c:\`, path) - } - return filepath.Join("/", path) -} diff --git a/vendor/github.com/elastic/beats/libbeat/plugin/cli.go b/vendor/github.com/elastic/beats/libbeat/plugin/cli.go index 7e7c15ac..6171bef7 100644 --- a/vendor/github.com/elastic/beats/libbeat/plugin/cli.go +++ b/vendor/github.com/elastic/beats/libbeat/plugin/cli.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + //+build linux,go1.8 darwin,go1.10 //+build cgo @@ -7,6 +24,7 @@ import ( "flag" "strings" + "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/libbeat/logp" ) @@ -37,7 +55,7 @@ func init() { func Initialize() error { if len(plugins.paths) > 0 { - logp.Warn("EXPERIMENTAL: loadable plugin support is experimental") + cfgwarn.Experimental("loadable plugin support is experimental") } for _, path := range plugins.paths { diff --git a/vendor/github.com/elastic/beats/libbeat/plugin/cli_stub.go b/vendor/github.com/elastic/beats/libbeat/plugin/cli_stub.go index 6ee9af43..3be1dc33 100644 --- a/vendor/github.com/elastic/beats/libbeat/plugin/cli_stub.go +++ b/vendor/github.com/elastic/beats/libbeat/plugin/cli_stub.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + //+build linux,!go1.8 darwin,!go1.10 !linux,!darwin !cgo package plugin diff --git a/vendor/github.com/elastic/beats/libbeat/plugin/load.go b/vendor/github.com/elastic/beats/libbeat/plugin/load.go index d68a1183..f0717430 100644 --- a/vendor/github.com/elastic/beats/libbeat/plugin/load.go +++ b/vendor/github.com/elastic/beats/libbeat/plugin/load.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + //+build linux,go1.8 darwin,go1.10 //+build cgo diff --git a/vendor/github.com/elastic/beats/libbeat/plugin/load_stub.go b/vendor/github.com/elastic/beats/libbeat/plugin/load_stub.go index d6e917b3..829292bf 100644 --- a/vendor/github.com/elastic/beats/libbeat/plugin/load_stub.go +++ b/vendor/github.com/elastic/beats/libbeat/plugin/load_stub.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + //+build linux,!go1.8 darwin,!go1.10 !linux,!darwin !cgo package plugin diff --git a/vendor/github.com/elastic/beats/libbeat/plugin/plugin.go b/vendor/github.com/elastic/beats/libbeat/plugin/plugin.go index 8454c96e..82414ec9 100644 --- a/vendor/github.com/elastic/beats/libbeat/plugin/plugin.go +++ b/vendor/github.com/elastic/beats/libbeat/plugin/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 plugin import "fmt" diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/checks.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/checks.go index 651a15fe..2800ecef 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/checks.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/checks.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 actions import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_json_fields.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_json_fields.go index 9b7ff709..d8832858 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_json_fields.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_json_fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 actions import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_json_fields_test.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_json_fields_test.go deleted file mode 100644 index 9174d9c5..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/decode_json_fields_test.go +++ /dev/null @@ -1,196 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -var fields = [1]string{"msg"} -var testConfig, _ = common.NewConfigFrom(map[string]interface{}{ - "fields": fields, - "processArray": false, -}) - -func TestMissingKey(t *testing.T) { - input := common.MapStr{ - "pipeline": "us1", - } - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "pipeline": "us1", - } - - assert.Equal(t, expected.String(), actual.String()) -} - -func TestFieldNotString(t *testing.T) { - input := common.MapStr{ - "msg": 123, - "pipeline": "us1", - } - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "msg": 123, - "pipeline": "us1", - } - - assert.Equal(t, expected.String(), actual.String()) -} - -func TestInvalidJSON(t *testing.T) { - input := common.MapStr{ - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3", - "pipeline": "us1", - } - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3", - "pipeline": "us1", - } - assert.Equal(t, expected.String(), actual.String()) -} - -func TestInvalidJSONMultiple(t *testing.T) { - input := common.MapStr{ - "msg": "11:38:04,323 |-INFO testing", - "pipeline": "us1", - } - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "msg": "11:38:04,323 |-INFO testing", - "pipeline": "us1", - } - assert.Equal(t, expected.String(), actual.String()) -} - -func TestValidJSONDepthOne(t *testing.T) { - input := common.MapStr{ - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3}", - "pipeline": "us1", - } - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "msg": map[string]interface{}{ - "log": "{\"level\":\"info\"}", - "stream": "stderr", - "count": 3, - }, - "pipeline": "us1", - } - - assert.Equal(t, expected.String(), actual.String()) -} - -func TestValidJSONDepthTwo(t *testing.T) { - input := common.MapStr{ - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3}", - "pipeline": "us1", - } - - testConfig, _ = common.NewConfigFrom(map[string]interface{}{ - "fields": fields, - "process_array": false, - "max_depth": 2, - }) - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "msg": map[string]interface{}{ - "log": map[string]interface{}{ - "level": "info", - }, - "stream": "stderr", - "count": 3, - }, - "pipeline": "us1", - } - - assert.Equal(t, expected.String(), actual.String()) -} - -func TestTargetOption(t *testing.T) { - input := common.MapStr{ - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3}", - "pipeline": "us1", - } - - testConfig, _ = common.NewConfigFrom(map[string]interface{}{ - "fields": fields, - "process_array": false, - "max_depth": 2, - "target": "doc", - }) - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "doc": map[string]interface{}{ - "log": map[string]interface{}{ - "level": "info", - }, - "stream": "stderr", - "count": 3, - }, - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3}", - "pipeline": "us1", - } - - assert.Equal(t, expected.String(), actual.String()) -} - -func TestTargetRootOption(t *testing.T) { - input := common.MapStr{ - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3}", - "pipeline": "us1", - } - - testConfig, _ = common.NewConfigFrom(map[string]interface{}{ - "fields": fields, - "process_array": false, - "max_depth": 2, - "target": "", - }) - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "log": map[string]interface{}{ - "level": "info", - }, - "stream": "stderr", - "count": 3, - "msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3}", - "pipeline": "us1", - } - - assert.Equal(t, expected.String(), actual.String()) -} - -func getActualValue(t *testing.T, config *common.Config, input common.MapStr) common.MapStr { - logp.TestingSetup() - - p, err := newDecodeJSONFields(config) - if err != nil { - logp.Err("Error initializing decode_json_fields") - t.Fatal(err) - } - - actual, _ := p.Run(&beat.Event{Fields: input}) - return actual.Fields -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_event.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_event.go index c59cf7d7..b6b73511 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_event.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 actions import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_fields.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_fields.go index 76ef347c..f3c52872 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_fields.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/drop_fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 actions import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/extract_field.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/extract_field.go index 68ee10f3..4b03f8f8 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/extract_field.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/extract_field.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 actions import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/extract_field_test.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/extract_field_test.go deleted file mode 100644 index e7fcf679..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/extract_field_test.go +++ /dev/null @@ -1,103 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -func TestCommonPaths(t *testing.T) { - var tests = []struct { - Value, Field, Separator, Target, Result string - Index int - Error bool - }{ - // Common docker case - { - Value: "/var/lib/docker/containers/f1510836197d7c34da22cf796dba5640f87c04de5c95cf0adc11b85f1e1c1528/f1510836197d7c34da22cf796dba5640f87c04de5c95cf0adc11b85f1e1c1528-json.log", - Field: "source", - Separator: "/", - Target: "docker.container.id", - Index: 4, - Result: "f1510836197d7c34da22cf796dba5640f87c04de5c95cf0adc11b85f1e1c1528", - }, - { - Value: "/var/lib/foo/bar", - Field: "other_field", - Separator: "/", - Target: "destination", - Index: 3, - Result: "bar", - }, - { - Value: "-var-lib-foo-bar", - Field: "source", - Separator: "-", - Target: "destination", - Index: 2, - Result: "foo", - }, - { - Value: "*var*lib*foo*bar", - Field: "source", - Separator: "*", - Target: "destination", - Index: 0, - Result: "var", - }, - { - Value: "/var/lib/foo/bar", - Field: "source", - Separator: "*", - Target: "destination", - Index: 10, // out of range - Result: "var", - Error: true, - }, - } - - for _, test := range tests { - var testConfig, _ = common.NewConfigFrom(map[string]interface{}{ - "field": test.Field, - "separator": test.Separator, - "index": test.Index, - "target": test.Target, - }) - - // Configure input to - input := common.MapStr{ - test.Field: test.Value, - } - - event, err := runExtractField(t, testConfig, input) - if test.Error { - assert.NotNil(t, err) - } else { - - assert.Nil(t, err) - result, err := event.Fields.GetValue(test.Target) - if err != nil { - t.Fatalf("could not get target field: %s", err) - } - assert.Equal(t, result.(string), test.Result) - } - - // Event must be present, even on error - assert.NotNil(t, event) - } -} - -func runExtractField(t *testing.T, config *common.Config, input common.MapStr) (*beat.Event, error) { - logp.TestingSetup() - - p, err := NewExtractField(config) - if err != nil { - t.Fatalf("error initializing extract_field: %s", err) - } - - return p.Run(&beat.Event{Fields: input}) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/include_fields.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/include_fields.go index 18a3703d..1ce3f234 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/include_fields.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/include_fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 actions import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/include_fields_test.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/include_fields_test.go deleted file mode 100644 index 5c581ab5..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/include_fields_test.go +++ /dev/null @@ -1,59 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -func TestIncludeFields(t *testing.T) { - - var tests = []struct { - Fields []string - Input common.MapStr - Output common.MapStr - }{ - { - Fields: []string{"test"}, - Input: common.MapStr{ - "hello": "world", - "test": 17, - }, - Output: common.MapStr{ - "test": 17, - }, - }, - { - Fields: []string{"test", "a.b"}, - Input: common.MapStr{ - "a.b": "b", - "a.c": "c", - "test": 17, - }, - Output: common.MapStr{ - "test": 17, - "a": common.MapStr{ - "b": "b", - }, - }, - }, - } - - for _, test := range tests { - p := includeFields{ - Fields: test.Fields, - } - - event := &beat.Event{ - Fields: test.Input, - } - - newEvent, err := p.Run(event) - assert.NoError(t, err) - - assert.Equal(t, test.Output, newEvent.Fields) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go index dac988aa..bd39f93a 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/actions/rename.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 actions import ( @@ -7,7 +24,6 @@ import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/processors" ) @@ -34,8 +50,6 @@ func init() { } func newRenameFields(c *common.Config) (processors.Processor, error) { - - cfgwarn.Beta("Beta rename processor is used.") config := renameFieldsConfig{ IgnoreMissing: false, FailOnError: true, @@ -83,7 +97,7 @@ func (f *renameFields) renameField(from string, to string, fields common.MapStr) if f.config.IgnoreMissing && errors.Cause(err) == common.ErrKeyNotFound { return nil } - return fmt.Errorf("could not fetch value for key: %s, Error: %s", to, err) + return fmt.Errorf("could not fetch value for key: %s, Error: %s", from, err) } // Deletion must happen first to support cases where a becomes a.b diff --git a/vendor/github.com/elastic/beats/libbeat/processors/actions/rename_test.go b/vendor/github.com/elastic/beats/libbeat/processors/actions/rename_test.go deleted file mode 100644 index 55bc17d0..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/actions/rename_test.go +++ /dev/null @@ -1,343 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "reflect" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -func TestRenameRun(t *testing.T) { - var tests = []struct { - description string - Fields []fromTo - IgnoreMissing bool - FailOnError bool - Input common.MapStr - Output common.MapStr - error bool - }{ - { - description: "simple field renaming", - Fields: []fromTo{ - { - From: "a", - To: "b", - }, - }, - Input: common.MapStr{ - "a": "c", - }, - Output: common.MapStr{ - "b": "c", - }, - IgnoreMissing: false, - FailOnError: true, - error: false, - }, - { - description: "Add one more hierarchy to event", - Fields: []fromTo{ - { - From: "a.b", - To: "a.b.c", - }, - }, - Input: common.MapStr{ - "a.b": 1, - }, - Output: common.MapStr{ - "a": common.MapStr{ - "b": common.MapStr{ - "c": 1, - }, - }, - }, - IgnoreMissing: false, - FailOnError: true, - error: false, - }, - { - description: "overwrites an existing field which is not allowed", - Fields: []fromTo{ - { - From: "a", - To: "b", - }, - }, - Input: common.MapStr{ - "a": 2, - "b": "q", - }, - Output: common.MapStr{ - "a": 2, - "b": "q", - }, - error: true, - FailOnError: true, - IgnoreMissing: false, - }, - { - description: "overwrites existing field but renames it first, order matters", - Fields: []fromTo{ - { - From: "b", - To: "c", - }, - { - From: "a", - To: "b", - }, - }, - Input: common.MapStr{ - "a": 2, - "b": "q", - }, - Output: common.MapStr{ - "b": 2, - "c": "q", - }, - error: false, - FailOnError: true, - IgnoreMissing: false, - }, - { - description: "take an invalid ES event with key / object conflict and convert it to a valid event", - Fields: []fromTo{ - { - From: "a", - To: "a.value", - }, - }, - Input: common.MapStr{ - "a": 5, - "a.b": 6, - }, - Output: common.MapStr{ - "a.b": 6, - "a": common.MapStr{ - "value": 5, - }, - }, - error: false, - FailOnError: true, - IgnoreMissing: false, - }, - { - description: "renames two fields into the same namespace. order matters as a is first key and then object", - Fields: []fromTo{ - { - From: "a", - To: "a.value", - }, - { - From: "c", - To: "a.c", - }, - }, - Input: common.MapStr{ - "a": 7, - "c": 8, - }, - Output: common.MapStr{ - "a": common.MapStr{ - "value": 7, - "c": 8, - }, - }, - error: false, - IgnoreMissing: false, - FailOnError: true, - }, - { - description: "rename two fields into the same name space. this fails because a is already a key, renaming of a needs to happen first", - Fields: []fromTo{ - { - From: "c", - To: "a.c", - }, - { - From: "a", - To: "a.value", - }, - }, - Input: common.MapStr{ - "a": 9, - "c": 10, - }, - Output: common.MapStr{ - "a": 9, - "c": 10, - }, - error: true, - IgnoreMissing: false, - FailOnError: true, - }, - { - description: "renames conflicting keys. partially works because fail_on_error is false", - Fields: []fromTo{ - { - From: "c", - To: "a.c", - }, - { - From: "a", - To: "a.value", - }, - }, - Input: common.MapStr{ - "a": 9, - "c": 10, - }, - Output: common.MapStr{ - "a": common.MapStr{ - "value": 9, - }, - }, - error: false, - IgnoreMissing: false, - FailOnError: false, - }, - } - - for _, test := range tests { - t.Run(test.description, func(t *testing.T) { - f := &renameFields{ - config: renameFieldsConfig{ - Fields: test.Fields, - IgnoreMissing: test.IgnoreMissing, - FailOnError: test.FailOnError, - }, - } - event := &beat.Event{ - Fields: test.Input, - } - - newEvent, err := f.Run(event) - if !test.error { - assert.Nil(t, err) - } else { - assert.NotNil(t, err) - } - - assert.True(t, reflect.DeepEqual(newEvent.Fields, test.Output)) - }) - } -} - -func TestRenameField(t *testing.T) { - var tests = []struct { - From string - To string - ignoreMissing bool - failOnError bool - Input common.MapStr - Output common.MapStr - error bool - description string - }{ - { - description: "simple rename of field", - From: "a", - To: "c", - Input: common.MapStr{ - "a": "b", - }, - Output: common.MapStr{ - "c": "b", - }, - error: false, - failOnError: true, - ignoreMissing: false, - }, - { - description: "Add hierarchy to event", - From: "a.b", - To: "a.b.c", - Input: common.MapStr{ - "a.b": 1, - }, - Output: common.MapStr{ - "a": common.MapStr{ - "b": common.MapStr{ - "c": 1, - }, - }, - }, - error: false, - failOnError: true, - ignoreMissing: false, - }, - { - description: "overwrite an existing field that should lead to an error", - From: "a", - To: "b", - Input: common.MapStr{ - "a": 2, - "b": "q", - }, - Output: common.MapStr{ - "a": 2, - "b": "q", - }, - error: true, - failOnError: true, - ignoreMissing: false, - }, - { - description: "resolve dotted event conflict", - From: "a", - To: "a.value", - Input: common.MapStr{ - "a": 5, - "a.b": 6, - }, - Output: common.MapStr{ - "a.b": 6, - "a": common.MapStr{ - "value": 5, - }, - }, - error: false, - failOnError: true, - ignoreMissing: false, - }, - { - description: "try to rename no existing field with failOnError true", - From: "a", - To: "b", - Input: common.MapStr{ - "c": 5, - }, - Output: common.MapStr{ - "c": 5, - }, - failOnError: true, - ignoreMissing: false, - error: true, - }, - } - - for _, test := range tests { - t.Run(test.description, func(t *testing.T) { - - f := &renameFields{ - config: renameFieldsConfig{ - IgnoreMissing: test.ignoreMissing, - FailOnError: test.failOnError, - }, - } - - err := f.renameField(test.From, test.To, test.Input) - if err != nil { - assert.Equal(t, test.error, true) - } - - assert.True(t, reflect.DeepEqual(test.Input, test.Output)) - }) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go index 9d55e3c9..c281dd79 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata import ( @@ -264,6 +281,10 @@ func setupFetchers(c *common.Config) ([]*metadataFetcher, error) { if err != nil { return fetchers, err } + osFetcher, err := newOpenstackNovaMetadataFetcher(c) + if err != nil { + return fetchers, err + } fetchers = []*metadataFetcher{ doFetcher, @@ -272,6 +293,7 @@ func setupFetchers(c *common.Config) ([]*metadataFetcher, error) { qcloudFetcher, ecsFetcher, azFetcher, + osFetcher, } return fetchers, nil } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud.go index e0425d59..2e88107c 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata import "github.com/elastic/beats/libbeat/common" diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud_test.go deleted file mode 100644 index b2dbc4b7..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package add_cloud_metadata - -import ( - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -func initECSTestServer() *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.RequestURI == "/latest/meta-data/instance-id" { - w.Write([]byte("i-wz9g2hqiikg0aliyun2b")) - return - } - if r.RequestURI == "/latest/meta-data/region-id" { - w.Write([]byte("cn-shenzhen")) - return - } - if r.RequestURI == "/latest/meta-data/zone-id" { - w.Write([]byte("cn-shenzhen-a")) - return - } - - http.Error(w, "not found", http.StatusNotFound) - })) -} - -func TestRetrieveAlibabaCloudMetadata(t *testing.T) { - logp.TestingSetup() - - server := initECSTestServer() - defer server.Close() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "host": server.Listener.Addr().String(), - }) - - if err != nil { - t.Fatal(err) - } - - p, err := newCloudMetadata(config) - if err != nil { - t.Fatal(err) - } - - actual, err := p.Run(&beat.Event{Fields: common.MapStr{}}) - if err != nil { - t.Fatal(err) - } - - expected := common.MapStr{ - "meta": common.MapStr{ - "cloud": common.MapStr{ - "provider": "ecs", - "instance_id": "i-wz9g2hqiikg0aliyun2b", - "region": "cn-shenzhen", - "availability_zone": "cn-shenzhen-a", - }, - }, - } - assert.Equal(t, expected, actual.Fields) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_aws_ec2.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_aws_ec2.go index 70293772..3b6925c6 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_aws_ec2.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_aws_ec2.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_aws_ec2_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_aws_ec2_test.go deleted file mode 100644 index 55d4980a..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_aws_ec2_test.go +++ /dev/null @@ -1,78 +0,0 @@ -package add_cloud_metadata - -import ( - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -const ec2InstanceIdentityDocument = `{ - "devpayProductCodes" : null, - "privateIp" : "10.0.0.1", - "availabilityZone" : "us-east-1c", - "accountId" : "111111111111111", - "version" : "2010-08-31", - "instanceId" : "i-11111111", - "billingProducts" : null, - "instanceType" : "t2.medium", - "imageId" : "ami-6869aa05", - "pendingTime" : "2016-09-20T15:43:02Z", - "architecture" : "x86_64", - "kernelId" : null, - "ramdiskId" : null, - "region" : "us-east-1" -}` - -func initEC2TestServer() *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.RequestURI == "/2014-02-25/dynamic/instance-identity/document" { - w.Write([]byte(ec2InstanceIdentityDocument)) - return - } - - http.Error(w, "not found", http.StatusNotFound) - })) -} - -func TestRetrieveAWSMetadata(t *testing.T) { - logp.TestingSetup() - - server := initEC2TestServer() - defer server.Close() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "host": server.Listener.Addr().String(), - }) - if err != nil { - t.Fatal(err) - } - - p, err := newCloudMetadata(config) - if err != nil { - t.Fatal(err) - } - - actual, err := p.Run(&beat.Event{Fields: common.MapStr{}}) - if err != nil { - t.Fatal(err) - } - - expected := common.MapStr{ - "meta": common.MapStr{ - "cloud": common.MapStr{ - "provider": "ec2", - "instance_id": "i-11111111", - "machine_type": "t2.medium", - "region": "us-east-1", - "availability_zone": "us-east-1c", - }, - }, - } - assert.Equal(t, expected, actual.Fields) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_azure_vm.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_azure_vm.go index 10193d9c..0f7d0239 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_azure_vm.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_azure_vm.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_azure_vm_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_azure_vm_test.go deleted file mode 100644 index 87bb5c79..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_azure_vm_test.go +++ /dev/null @@ -1,75 +0,0 @@ -package add_cloud_metadata - -import ( - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -const azInstanceIdentityDocument = `{ - "location": "eastus2", - "name": "test-az-vm", - "offer": "UbuntuServer", - "osType": "Linux", - "platformFaultDomain": "0", - "platformUpdateDomain": "0", - "publisher": "Canonical", - "sku": "14.04.4-LTS", - "version": "14.04.201605091", - "vmId": "04ab04c3-63de-4709-a9f9-9ab8c0411d5e", - "vmSize": "Standard_D3_v2" -}` - -func initAzureTestServer() *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.RequestURI == "/metadata/instance/compute?api-version=2017-04-02" && r.Header.Get("Metadata") == "true" { - w.Write([]byte(azInstanceIdentityDocument)) - return - } - - http.Error(w, "not found", http.StatusNotFound) - })) -} - -func TestRetrieveAzureMetadata(t *testing.T) { - logp.TestingSetup() - - server := initAzureTestServer() - defer server.Close() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "host": server.Listener.Addr().String(), - }) - if err != nil { - t.Fatal(err) - } - - p, err := newCloudMetadata(config) - if err != nil { - t.Fatal(err) - } - - actual, err := p.Run(&beat.Event{Fields: common.MapStr{}}) - if err != nil { - t.Fatal(err) - } - - expected := common.MapStr{ - "meta": common.MapStr{ - "cloud": common.MapStr{ - "provider": "az", - "instance_id": "04ab04c3-63de-4709-a9f9-9ab8c0411d5e", - "instance_name": "test-az-vm", - "machine_type": "Standard_D3_v2", - "region": "eastus2", - }, - }, - } - assert.Equal(t, expected, actual.Fields) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_digital_ocean.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_digital_ocean.go index 9ae26249..52d17fce 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_digital_ocean.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_digital_ocean.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_digital_ocean_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_digital_ocean_test.go deleted file mode 100644 index 08d1b552..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_digital_ocean_test.go +++ /dev/null @@ -1,107 +0,0 @@ -package add_cloud_metadata - -import ( - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -const digitalOceanMetadataV1 = `{ - "droplet_id":1111111, - "hostname":"sample-droplet", - "vendor_data":"#cloud-config\ndisable_root: false\nmanage_etc_hosts: true\n\ncloud_config_modules:\n - ssh\n - set_hostname\n - [ update_etc_hosts, once-per-instance ]\n\ncloud_final_modules:\n - scripts-vendor\n - scripts-per-once\n - scripts-per-boot\n - scripts-per-instance\n - scripts-user\n", - "public_keys":["ssh-rsa 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 sammy@digitalocean.com"], - "region":"nyc3", - "interfaces":{ - "private":[ - { - "ipv4":{ - "ip_address":"10.0.0.2", - "netmask":"255.255.0.0", - "gateway":"10.10.0.1" - }, - "mac":"54:11:00:00:00:00", - "type":"private" - } - ], - "public":[ - { - "ipv4":{ - "ip_address":"192.168.20.105", - "netmask":"255.255.192.0", - "gateway":"192.168.20.1" - }, - "ipv6":{ - "ip_address":"1111:1111:0000:0000:0000:0000:0000:0000", - "cidr":64, - "gateway":"0000:0000:0800:0010:0000:0000:0000:0001" - }, - "mac":"34:00:00:ff:00:00", - "type":"public"} - ] - }, - "floating_ip": { - "ipv4": { - "active": false - } - }, - "dns":{ - "nameservers":[ - "2001:4860:4860::8844", - "2001:4860:4860::8888", - "8.8.8.8" - ] - } -}` - -func initDigitalOceanTestServer() *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.RequestURI == "/metadata/v1.json" { - w.Write([]byte(digitalOceanMetadataV1)) - return - } - - http.Error(w, "not found", http.StatusNotFound) - })) -} - -func TestRetrieveDigitalOceanMetadata(t *testing.T) { - logp.TestingSetup() - - server := initDigitalOceanTestServer() - defer server.Close() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "host": server.Listener.Addr().String(), - }) - if err != nil { - t.Fatal(err) - } - - p, err := newCloudMetadata(config) - if err != nil { - t.Fatal(err) - } - - actual, err := p.Run(&beat.Event{Fields: common.MapStr{}}) - if err != nil { - t.Fatal(err) - } - - expected := common.MapStr{ - "meta": common.MapStr{ - "cloud": common.MapStr{ - "provider": "digitalocean", - "instance_id": "1111111", - "region": "nyc3", - }, - }, - } - assert.Equal(t, expected, actual.Fields) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_google_gce.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_google_gce.go index 442ade46..fd799ab4 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_google_gce.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_google_gce.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go deleted file mode 100644 index 1f6574e0..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go +++ /dev/null @@ -1,149 +0,0 @@ -package add_cloud_metadata - -import ( - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -const gceMetadataV1 = `{ - "instance": { - "attributes": {}, - "cpuPlatform": "Intel Haswell", - "description": "", - "disks": [ - { - "deviceName": "test-gce-dev", - "index": 0, - "mode": "READ_WRITE", - "type": "PERSISTENT" - } - ], - "hostname": "test-gce-dev.c.test-dev.internal", - "name": "test-gce-dev", - "id": 3910564293633576924, - "image": "", - "licenses": [ - { - "id": "1000000" - } - ], - "machineType": "projects/111111111111/machineTypes/f1-micro", - "maintenanceEvent": "NONE", - "networkInterfaces": [ - { - "accessConfigs": [ - { - "externalIp": "10.10.10.10", - "type": "ONE_TO_ONE_NAT" - } - ], - "forwardedIps": [], - "ip": "10.10.0.2", - "ipAliases": [], - "mac": "44:00:00:00:00:01", - "network": "projects/111111111111/networks/default" - } - ], - "scheduling": { - "automaticRestart": "TRUE", - "onHostMaintenance": "MIGRATE", - "preemptible": "FALSE" - }, - "serviceAccounts": { - "111111111111-compute@developer.gserviceaccount.com": { - "aliases": [ - "default" - ], - "email": "111111111111-compute@developer.gserviceaccount.com", - "scopes": [ - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring.write", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/service.management.readonly" - ] - }, - "default": { - "aliases": [ - "default" - ], - "email": "111111111111-compute@developer.gserviceaccount.com", - "scopes": [ - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring.write", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/service.management.readonly" - ] - } - }, - "tags": [], - "virtualClock": { - "driftToken": "0" - }, - "zone": "projects/111111111111/zones/us-east1-b" - }, - "project": { - "attributes": { - "sshKeys": "developer:ssh-rsa 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 google-ssh {\"userName\":\"foo@bar.com\",\"expireOn\":\"2016-10-06T20:20:41+0000\"}\ndev:ecdsa-sha2-nistp256 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444= google-ssh {\"userName\":\"foo@bar.com\",\"expireOn\":\"2016-10-06T20:20:40+0000\"}\ndev:ssh-rsa 444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444 dev" - }, - "numericProjectId": 111111111111, - "projectId": "test-dev" - } -}` - -func initGCETestServer() *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.RequestURI == "/computeMetadata/v1/?recursive=true&alt=json" { - w.Write([]byte(gceMetadataV1)) - return - } - - http.Error(w, "not found", http.StatusNotFound) - })) -} - -func TestRetrieveGCEMetadata(t *testing.T) { - logp.TestingSetup() - - server := initGCETestServer() - defer server.Close() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "host": server.Listener.Addr().String(), - }) - if err != nil { - t.Fatal(err) - } - - p, err := newCloudMetadata(config) - if err != nil { - t.Fatal(err) - } - - actual, err := p.Run(&beat.Event{Fields: common.MapStr{}}) - if err != nil { - t.Fatal(err) - } - - expected := common.MapStr{ - "meta": common.MapStr{ - "cloud": common.MapStr{ - "provider": "gce", - "instance_id": "3910564293633576924", - "instance_name": "test-gce-dev", - "machine_type": "projects/111111111111/machineTypes/f1-micro", - "availability_zone": "projects/111111111111/zones/us-east1-b", - "project_id": "test-dev", - }, - }, - } - assert.Equal(t, expected, actual.Fields) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_openstack_nova.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_openstack_nova.go new file mode 100644 index 00000000..27913054 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_openstack_nova.go @@ -0,0 +1,70 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata + +import ( + "github.com/elastic/beats/libbeat/common" +) + +const ( + osMetadataInstanceIDURI = "/2009-04-04/meta-data/instance-id" + osMetadataInstanceTypeURI = "/2009-04-04/meta-data/instance-type" + osMetadataHostnameURI = "/2009-04-04/meta-data/hostname" + osMetadataZoneURI = "/2009-04-04/meta-data/placement/availability-zone" +) + +// newOpenstackNovaMetadataFetcher returns a metadataFetcher for the +// OpenStack Nova Metadata Service +// Document https://docs.openstack.org/nova/latest/user/metadata-service.html +func newOpenstackNovaMetadataFetcher(c *common.Config) (*metadataFetcher, error) { + + osSchema := func(m map[string]interface{}) common.MapStr { + return common.MapStr(m) + } + + urls, err := getMetadataURLs(c, metadataHost, []string{ + osMetadataInstanceIDURI, + osMetadataInstanceTypeURI, + osMetadataHostnameURI, + osMetadataZoneURI, + }) + if err != nil { + return nil, err + } + + responseHandlers := map[string]responseHandler{ + urls[0]: func(all []byte, result *result) error { + result.metadata["instance_id"] = string(all) + return nil + }, + urls[1]: func(all []byte, result *result) error { + result.metadata["machine_type"] = string(all) + return nil + }, + urls[2]: func(all []byte, result *result) error { + result.metadata["instance_name"] = string(all) + return nil + }, + urls[3]: func(all []byte, result *result) error { + result.metadata["availability_zone"] = string(all) + return nil + }, + } + fetcher := &metadataFetcher{"openstack", nil, responseHandlers, osSchema} + return fetcher, nil +} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_tencent_cloud.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_tencent_cloud.go index 4883ea18..6fbe6026 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_tencent_cloud.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_tencent_cloud.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_cloud_metadata import "github.com/elastic/beats/libbeat/common" diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_tencent_cloud_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_tencent_cloud_test.go deleted file mode 100644 index 748af476..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_cloud_metadata/provider_tencent_cloud_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package add_cloud_metadata - -import ( - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -func initQCloudTestServer() *httptest.Server { - return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.RequestURI == "/meta-data/instance-id" { - w.Write([]byte("ins-qcloudv5")) - return - } - if r.RequestURI == "/meta-data/placement/region" { - w.Write([]byte("china-south-gz")) - return - } - if r.RequestURI == "/meta-data/placement/zone" { - w.Write([]byte("gz-azone2")) - return - } - - http.Error(w, "not found", http.StatusNotFound) - })) -} - -func TestRetrieveQCloudMetadata(t *testing.T) { - logp.TestingSetup() - - server := initQCloudTestServer() - defer server.Close() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "host": server.Listener.Addr().String(), - }) - - if err != nil { - t.Fatal(err) - } - - p, err := newCloudMetadata(config) - if err != nil { - t.Fatal(err) - } - - actual, err := p.Run(&beat.Event{Fields: common.MapStr{}}) - if err != nil { - t.Fatal(err) - } - - expected := common.MapStr{ - "meta": common.MapStr{ - "cloud": common.MapStr{ - "provider": "qcloud", - "instance_id": "ins-qcloudv5", - "region": "china-south-gz", - "availability_zone": "gz-azone2", - }, - }, - } - assert.Equal(t, expected, actual.Fields) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/add_docker_metadata.go b/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/add_docker_metadata.go index b936b4b2..5a81f5a6 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/add_docker_metadata.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/add_docker_metadata.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_docker_metadata import ( @@ -164,7 +181,7 @@ func (d *addDockerMetadata) Run(event *beat.Event) (*beat.Event, error) { meta.Put("container.id", container.ID) meta.Put("container.image", container.Image) meta.Put("container.name", container.Name) - event.Fields["docker"] = meta + event.Fields["docker"] = meta.Clone() } else { d.log.Debugf("Container not found: cid=%s", cid) } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/add_docker_metadata_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/add_docker_metadata_test.go deleted file mode 100644 index 4ab3132b..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/add_docker_metadata_test.go +++ /dev/null @@ -1,336 +0,0 @@ -package add_docker_metadata - -import ( - "fmt" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" - "github.com/elastic/beats/libbeat/common/docker" -) - -func init() { - // Stub out the procfs. - processCgroupPaths = func(_ string, pid int) (map[string]string, error) { - switch pid { - case 1000: - return map[string]string{ - "cpu": "/docker/FABADA", - }, nil - case 2000: - return map[string]string{ - "memory": "/user.slice", - }, nil - case 3000: - // Parser error (hopefully this never happens). - return nil, fmt.Errorf("cgroup parse failure") - default: - return nil, os.ErrNotExist - } - } -} - -func TestInitialization(t *testing.T) { - var testConfig = common.NewConfig() - - p, err := buildDockerMetadataProcessor(testConfig, MockWatcherFactory(nil)) - assert.NoError(t, err, "initializing add_docker_metadata processor") - - input := common.MapStr{} - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - - assert.Equal(t, common.MapStr{}, result.Fields) -} - -func TestNoMatch(t *testing.T) { - testConfig, err := common.NewConfigFrom(map[string]interface{}{ - "match_fields": []string{"foo"}, - }) - assert.NoError(t, err) - - p, err := buildDockerMetadataProcessor(testConfig, MockWatcherFactory(nil)) - assert.NoError(t, err, "initializing add_docker_metadata processor") - - input := common.MapStr{ - "field": "value", - } - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - - assert.Equal(t, common.MapStr{"field": "value"}, result.Fields) -} - -func TestMatchNoContainer(t *testing.T) { - testConfig, err := common.NewConfigFrom(map[string]interface{}{ - "match_fields": []string{"foo"}, - }) - assert.NoError(t, err) - - p, err := buildDockerMetadataProcessor(testConfig, MockWatcherFactory(nil)) - assert.NoError(t, err, "initializing add_docker_metadata processor") - - input := common.MapStr{ - "foo": "garbage", - } - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - - assert.Equal(t, common.MapStr{"foo": "garbage"}, result.Fields) -} - -func TestMatchContainer(t *testing.T) { - testConfig, err := common.NewConfigFrom(map[string]interface{}{ - "match_fields": []string{"foo"}, - }) - assert.NoError(t, err) - - p, err := buildDockerMetadataProcessor(testConfig, MockWatcherFactory( - map[string]*docker.Container{ - "container_id": &docker.Container{ - ID: "container_id", - Image: "image", - Name: "name", - Labels: map[string]string{ - "a.x": "1", - "b": "2", - "b.foo": "3", - }, - }, - })) - assert.NoError(t, err, "initializing add_docker_metadata processor") - - input := common.MapStr{ - "foo": "container_id", - } - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - - assert.EqualValues(t, common.MapStr{ - "docker": common.MapStr{ - "container": common.MapStr{ - "id": "container_id", - "image": "image", - "labels": common.MapStr{ - "a": common.MapStr{ - "x": "1", - }, - "b": common.MapStr{ - "value": "2", - "foo": "3", - }, - }, - "name": "name", - }, - }, - "foo": "container_id", - }, result.Fields) -} - -func TestMatchSource(t *testing.T) { - // Use defaults - testConfig, err := common.NewConfigFrom(map[string]interface{}{}) - assert.NoError(t, err) - - p, err := buildDockerMetadataProcessor(testConfig, MockWatcherFactory( - map[string]*docker.Container{ - "FABADA": &docker.Container{ - ID: "FABADA", - Image: "image", - Name: "name", - Labels: map[string]string{ - "a": "1", - "b": "2", - }, - }, - })) - assert.NoError(t, err, "initializing add_docker_metadata processor") - - input := common.MapStr{ - "source": "/var/lib/docker/containers/FABADA/foo.log", - } - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - - assert.EqualValues(t, common.MapStr{ - "docker": common.MapStr{ - "container": common.MapStr{ - "id": "FABADA", - "image": "image", - "labels": common.MapStr{ - "a": "1", - "b": "2", - }, - "name": "name", - }, - }, - "source": "/var/lib/docker/containers/FABADA/foo.log", - }, result.Fields) -} - -func TestDisableSource(t *testing.T) { - // Use defaults - testConfig, err := common.NewConfigFrom(map[string]interface{}{ - "match_source": false, - }) - assert.NoError(t, err) - - p, err := buildDockerMetadataProcessor(testConfig, MockWatcherFactory( - map[string]*docker.Container{ - "FABADA": &docker.Container{ - ID: "FABADA", - Image: "image", - Name: "name", - Labels: map[string]string{ - "a": "1", - "b": "2", - }, - }, - })) - assert.NoError(t, err, "initializing add_docker_metadata processor") - - input := common.MapStr{ - "source": "/var/lib/docker/containers/FABADA/foo.log", - } - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - - // remains unchanged - assert.EqualValues(t, input, result.Fields) -} - -func TestMatchPIDs(t *testing.T) { - p, err := buildDockerMetadataProcessor(common.NewConfig(), MockWatcherFactory( - map[string]*docker.Container{ - "FABADA": &docker.Container{ - ID: "FABADA", - Image: "image", - Name: "name", - Labels: map[string]string{ - "a": "1", - "b": "2", - }, - }, - }, - )) - assert.NoError(t, err, "initializing add_docker_metadata processor") - - dockerMetadata := common.MapStr{ - "docker": common.MapStr{ - "container": common.MapStr{ - "id": "FABADA", - "image": "image", - "labels": common.MapStr{ - "a": "1", - "b": "2", - }, - "name": "name", - }, - }, - } - - t.Run("pid is not containerized", func(t *testing.T) { - input := common.MapStr{} - input.Put("process.pid", 2000) - input.Put("process.ppid", 1000) - - expected := common.MapStr{} - expected.DeepUpdate(input) - - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - assert.EqualValues(t, expected, result.Fields) - }) - - t.Run("pid does not exist", func(t *testing.T) { - input := common.MapStr{} - input.Put("process.pid", 9999) - - expected := common.MapStr{} - expected.DeepUpdate(input) - - result, err := p.Run(&beat.Event{Fields: input}) - assert.NoError(t, err, "processing an event") - assert.EqualValues(t, expected, result.Fields) - }) - - t.Run("pid is containerized", func(t *testing.T) { - fields := common.MapStr{} - fields.Put("process.pid", "1000") - - expected := common.MapStr{} - expected.DeepUpdate(dockerMetadata) - expected.DeepUpdate(fields) - - result, err := p.Run(&beat.Event{Fields: fields}) - assert.NoError(t, err, "processing an event") - assert.EqualValues(t, expected, result.Fields) - }) - - t.Run("pid exited and ppid is containerized", func(t *testing.T) { - fields := common.MapStr{} - fields.Put("process.pid", 9999) - fields.Put("process.ppid", 1000) - - expected := common.MapStr{} - expected.DeepUpdate(dockerMetadata) - expected.DeepUpdate(fields) - - result, err := p.Run(&beat.Event{Fields: fields}) - assert.NoError(t, err, "processing an event") - assert.EqualValues(t, expected, result.Fields) - }) - - t.Run("cgroup error", func(t *testing.T) { - fields := common.MapStr{} - fields.Put("process.pid", 3000) - - expected := common.MapStr{} - expected.DeepUpdate(fields) - - result, err := p.Run(&beat.Event{Fields: fields}) - assert.NoError(t, err, "processing an event") - assert.EqualValues(t, expected, result.Fields) - }) -} - -// Mock container watcher - -func MockWatcherFactory(containers map[string]*docker.Container) docker.WatcherConstructor { - if containers == nil { - containers = make(map[string]*docker.Container) - } - return func(host string, tls *docker.TLSConfig, shortID bool) (docker.Watcher, error) { - return &mockWatcher{containers: containers}, nil - } -} - -type mockWatcher struct { - containers map[string]*docker.Container -} - -func (m *mockWatcher) Start() error { - return nil -} - -func (m *mockWatcher) Stop() {} - -func (m *mockWatcher) Container(ID string) *docker.Container { - return m.containers[ID] -} - -func (m *mockWatcher) Containers() map[string]*docker.Container { - return m.containers -} - -func (m *mockWatcher) ListenStart() bus.Listener { - return nil -} - -func (m *mockWatcher) ListenStop() bus.Listener { - return nil -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/config.go b/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/config.go index 5755bc07..a88caa97 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/config.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_docker_metadata/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_docker_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/add_host_metadata.go b/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/add_host_metadata.go index f27557e7..f9597cb7 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/add_host_metadata.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/add_host_metadata.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_host_metadata import ( @@ -11,6 +28,7 @@ import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/metric/system/host" "github.com/elastic/beats/libbeat/processors" "github.com/elastic/go-sysinfo" "github.com/elastic/go-sysinfo/types" @@ -52,7 +70,7 @@ func newHostMetadataProcessor(cfg *common.Config) (processors.Processor, error) // Run enriches the given event with the host meta data func (p *addHostMetadata) Run(event *beat.Event) (*beat.Event, error) { p.loadData() - event.Fields.DeepUpdate(p.data) + event.Fields.DeepUpdate(p.data.Clone()) return event, nil } @@ -60,31 +78,7 @@ func (p *addHostMetadata) loadData() { // Check if cache is expired if p.lastUpdate.Add(cacheExpiration).Before(time.Now()) { - p.data = common.MapStr{ - "host": common.MapStr{ - "name": p.info.Hostname, - "architecture": p.info.Architecture, - "os": common.MapStr{ - "platform": p.info.OS.Platform, - "version": p.info.OS.Version, - "family": p.info.OS.Family, - }, - }, - } - - // Optional params - if p.info.UniqueID != "" { - p.data.Put("host.id", p.info.UniqueID) - } - if p.info.Containerized != nil { - p.data.Put("host.containerized", *p.info.Containerized) - } - if p.info.OS.Codename != "" { - p.data.Put("host.os.codename", p.info.OS.Codename) - } - if p.info.OS.Build != "" { - p.data.Put("host.os.build", p.info.OS.Build) - } + p.data = host.MapHostInfo(p.info) if p.config.NetInfoEnabled { // IP-address and MAC-address @@ -100,7 +94,6 @@ func (p *addHostMetadata) loadData() { p.data.Put("host.mac", hwList) } } - p.lastUpdate = time.Now() } } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/add_host_metadata_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/add_host_metadata_test.go deleted file mode 100644 index d8e42594..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/add_host_metadata_test.go +++ /dev/null @@ -1,78 +0,0 @@ -package add_host_metadata - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "runtime" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/go-sysinfo/types" -) - -func TestConfigDefault(t *testing.T) { - event := &beat.Event{ - Fields: common.MapStr{}, - Timestamp: time.Now(), - } - testConfig, err := common.NewConfigFrom(map[string]interface{}{}) - assert.NoError(t, err) - - p, err := newHostMetadataProcessor(testConfig) - if runtime.GOOS != "windows" && runtime.GOOS != "darwin" && runtime.GOOS != "linux" { - assert.IsType(t, types.ErrNotImplemented, err) - return - } - assert.NoError(t, err) - - newEvent, err := p.Run(event) - assert.NoError(t, err) - - v, err := newEvent.GetValue("host.os.family") - assert.NoError(t, err) - assert.NotNil(t, v) - - v, err = newEvent.GetValue("host.ip") - assert.Error(t, err) - assert.Nil(t, v) - - v, err = newEvent.GetValue("host.mac") - assert.Error(t, err) - assert.Nil(t, v) -} - -func TestConfigNetInfoEnabled(t *testing.T) { - event := &beat.Event{ - Fields: common.MapStr{}, - Timestamp: time.Now(), - } - testConfig, err := common.NewConfigFrom(map[string]interface{}{ - "netinfo.enabled": true, - }) - assert.NoError(t, err) - - p, err := newHostMetadataProcessor(testConfig) - if runtime.GOOS != "windows" && runtime.GOOS != "darwin" && runtime.GOOS != "linux" { - assert.IsType(t, types.ErrNotImplemented, err) - return - } - assert.NoError(t, err) - - newEvent, err := p.Run(event) - assert.NoError(t, err) - - v, err := newEvent.GetValue("host.os.family") - assert.NoError(t, err) - assert.NotNil(t, v) - - v, err = newEvent.GetValue("host.ip") - assert.NoError(t, err) - assert.NotNil(t, v) - - v, err = newEvent.GetValue("host.mac") - assert.NoError(t, err) - assert.NotNil(t, v) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/config.go b/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/config.go index 5ead35b4..30f2e293 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/config.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_host_metadata/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_host_metadata // Config for add_host_metadata processor. diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml index 6a7f5875..623c0795 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml @@ -16,7 +16,7 @@ - name: pod.uid type: keyword description: > - Kubernetes pod uid + Kubernetes Pod UID - name: namespace type: keyword diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/cache.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/cache.go index 279b1aa2..156ae38e 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/cache.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/cache.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/config.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/config.go index ce805f96..a4270a58 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/config.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexers.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexers.go index 4ada610e..49e23665 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexers.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexers.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( @@ -43,7 +60,7 @@ type Indexers struct { // IndexerConstructor builds a new indexer from its settings type IndexerConstructor func(config common.Config, metaGen kubernetes.MetaGenerator) (Indexer, error) -// NewIndexers builds indexers object +// NewIndexers builds indexers object func NewIndexers(configs PluginConfig, metaGen kubernetes.MetaGenerator) *Indexers { indexers := []Indexer{} for _, pluginConfigs := range configs { @@ -57,6 +74,7 @@ func NewIndexers(configs PluginConfig, metaGen kubernetes.MetaGenerator) *Indexe indexer, err := indexFunc(pluginConfig, metaGen) if err != nil { logp.Warn("Unable to initialize indexing plugin %s due to error %v", name, err) + continue } indexers = append(indexers, indexer) @@ -96,6 +114,8 @@ func (i *Indexers) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { // Empty returns true if indexers list is empty func (i *Indexers) Empty() bool { + i.RLock() + defer i.RUnlock() if len(i.indexers) == 0 { return true } @@ -118,7 +138,7 @@ func (p *PodNameIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { data := p.metaGen.PodMetadata(pod) return []MetadataIndex{ { - Index: fmt.Sprintf("%s/%s", pod.Metadata.Namespace, pod.Metadata.Name), + Index: fmt.Sprintf("%s/%s", pod.Metadata.GetNamespace(), pod.Metadata.GetName()), Data: data, }, } @@ -126,7 +146,7 @@ func (p *PodNameIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { // GetIndexes returns the indexes for the given Pod func (p *PodNameIndexer) GetIndexes(pod *kubernetes.Pod) []string { - return []string{fmt.Sprintf("%s/%s", pod.Metadata.Namespace, pod.Metadata.Name)} + return []string{fmt.Sprintf("%s/%s", pod.Metadata.GetNamespace(), pod.Metadata.GetName())} } // PodUIDIndexer indexes pods based on the pod UID @@ -144,7 +164,7 @@ func (p *PodUIDIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { data := p.metaGen.PodMetadata(pod) return []MetadataIndex{ { - Index: pod.Metadata.UID, + Index: pod.Metadata.GetUid(), Data: data, }, } @@ -152,7 +172,7 @@ func (p *PodUIDIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { // GetIndexes returns the indexes for the given Pod func (p *PodUIDIndexer) GetIndexes(pod *kubernetes.Pod) []string { - return []string{pod.Metadata.UID} + return []string{pod.Metadata.GetUid()} } // ContainerIndexer indexes pods based on all their containers IDs @@ -169,13 +189,13 @@ func NewContainerIndexer(_ common.Config, metaGen kubernetes.MetaGenerator) (Ind func (c *ContainerIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { var metadata []MetadataIndex for _, status := range append(pod.Status.ContainerStatuses, pod.Status.InitContainerStatuses...) { - cID := status.GetContainerID() + cID := kubernetes.ContainerID(status) if cID == "" { continue } metadata = append(metadata, MetadataIndex{ Index: cID, - Data: c.metaGen.ContainerMetadata(pod, status.Name), + Data: c.metaGen.ContainerMetadata(pod, status.GetName()), }) } @@ -186,7 +206,7 @@ func (c *ContainerIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { func (c *ContainerIndexer) GetIndexes(pod *kubernetes.Pod) []string { var containers []string for _, status := range append(pod.Status.ContainerStatuses, pod.Status.InitContainerStatuses...) { - cID := status.GetContainerID() + cID := kubernetes.ContainerID(status) if cID == "" { continue } @@ -209,23 +229,23 @@ func NewIPPortIndexer(_ common.Config, metaGen kubernetes.MetaGenerator) (Indexe func (h *IPPortIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { var metadata []MetadataIndex - if pod.Status.PodIP == "" { + if pod.Status.GetPodIP() == "" { return metadata } // Add pod IP metadata = append(metadata, MetadataIndex{ - Index: pod.Status.PodIP, + Index: pod.Status.GetPodIP(), Data: h.metaGen.PodMetadata(pod), }) for _, container := range pod.Spec.Containers { for _, port := range container.Ports { - if port.ContainerPort != int64(0) { + if port.GetContainerPort() != 0 { metadata = append(metadata, MetadataIndex{ - Index: fmt.Sprintf("%s:%d", pod.Status.PodIP, port.ContainerPort), - Data: h.metaGen.ContainerMetadata(pod, container.Name), + Index: fmt.Sprintf("%s:%d", pod.Status.GetPodIP(), port.GetContainerPort()), + Data: h.metaGen.ContainerMetadata(pod, container.GetName()), }) } } @@ -238,19 +258,19 @@ func (h *IPPortIndexer) GetMetadata(pod *kubernetes.Pod) []MetadataIndex { func (h *IPPortIndexer) GetIndexes(pod *kubernetes.Pod) []string { var hostPorts []string - if pod.Status.PodIP == "" { + if pod.Status.GetPodIP() == "" { return hostPorts } // Add pod IP - hostPorts = append(hostPorts, pod.Status.PodIP) + hostPorts = append(hostPorts, pod.Status.GetPodIP()) for _, container := range pod.Spec.Containers { ports := container.Ports for _, port := range ports { - if port.ContainerPort != int64(0) { - hostPorts = append(hostPorts, fmt.Sprintf("%s:%d", pod.Status.PodIP, port.ContainerPort)) + if port.GetContainerPort() != 0 { + hostPorts = append(hostPorts, fmt.Sprintf("%s:%d", pod.Status.GetPodIP(), port.GetContainerPort())) } } } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexers_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexers_test.go deleted file mode 100644 index a97e163a..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexers_test.go +++ /dev/null @@ -1,389 +0,0 @@ -package add_kubernetes_metadata - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/kubernetes" -) - -var metagen, _ = kubernetes.NewMetaGenerator(common.NewConfig()) - -func TestPodIndexer(t *testing.T) { - var testConfig = common.NewConfig() - - podIndexer, err := NewPodNameIndexer(*testConfig, metagen) - assert.Nil(t, err) - - podName := "testpod" - ns := "testns" - pod := kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: podName, - Namespace: ns, - Labels: map[string]string{ - "labelkey": "labelvalue", - }, - }, - Spec: kubernetes.PodSpec{ - NodeName: "testnode", - }, - } - - indexers := podIndexer.GetMetadata(&pod) - assert.Equal(t, len(indexers), 1) - assert.Equal(t, indexers[0].Index, fmt.Sprintf("%s/%s", ns, podName)) - - expected := common.MapStr{ - "pod": common.MapStr{ - "name": "testpod", - }, - "namespace": "testns", - "labels": common.MapStr{ - "labelkey": "labelvalue", - }, - "node": common.MapStr{ - "name": "testnode", - }, - } - - assert.Equal(t, expected.String(), indexers[0].Data.String()) - - indices := podIndexer.GetIndexes(&pod) - assert.Equal(t, len(indices), 1) - assert.Equal(t, indices[0], fmt.Sprintf("%s/%s", ns, podName)) -} - -func TestPodUIDIndexer(t *testing.T) { - var testConfig = common.NewConfig() - - metaGenWithPodUID, err := kubernetes.NewMetaGenerator(common.NewConfig()) - assert.Nil(t, err) - - podUIDIndexer, err := NewPodUIDIndexer(*testConfig, metaGenWithPodUID) - assert.Nil(t, err) - - podName := "testpod" - ns := "testns" - uid := "005f3b90-4b9d-12f8-acf0-31020a840133" - pod := kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: podName, - Namespace: ns, - UID: uid, - Labels: map[string]string{ - "labelkey": "labelvalue", - }, - }, - Spec: kubernetes.PodSpec{ - NodeName: "testnode", - }, - } - - indexers := podUIDIndexer.GetMetadata(&pod) - assert.Equal(t, len(indexers), 1) - assert.Equal(t, indexers[0].Index, uid) - - expected := common.MapStr{ - "pod": common.MapStr{ - "name": "testpod", - }, - "namespace": "testns", - "labels": common.MapStr{ - "labelkey": "labelvalue", - }, - "node": common.MapStr{ - "name": "testnode", - }, - } - - assert.Equal(t, expected.String(), indexers[0].Data.String()) - - indices := podUIDIndexer.GetIndexes(&pod) - assert.Equal(t, len(indices), 1) - assert.Equal(t, indices[0], uid) -} - -func TestContainerIndexer(t *testing.T) { - var testConfig = common.NewConfig() - - conIndexer, err := NewContainerIndexer(*testConfig, metagen) - assert.Nil(t, err) - - podName := "testpod" - ns := "testns" - container := "container" - initContainer := "initcontainer" - - pod := kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: podName, - Namespace: ns, - Labels: map[string]string{ - "labelkey": "labelvalue", - }, - }, - Status: kubernetes.PodStatus{ - ContainerStatuses: make([]kubernetes.PodContainerStatus, 0), - InitContainerStatuses: make([]kubernetes.PodContainerStatus, 0), - }, - } - - indexers := conIndexer.GetMetadata(&pod) - indices := conIndexer.GetIndexes(&pod) - assert.Equal(t, len(indexers), 0) - assert.Equal(t, len(indices), 0) - expected := common.MapStr{ - "pod": common.MapStr{ - "name": "testpod", - }, - "namespace": "testns", - "labels": common.MapStr{ - "labelkey": "labelvalue", - }, - "node": common.MapStr{ - "name": "testnode", - }, - } - pod.Spec.NodeName = "testnode" - pod.Status.ContainerStatuses = []kubernetes.PodContainerStatus{ - { - Name: container, - ContainerID: "docker://abcde", - }, - } - pod.Status.InitContainerStatuses = []kubernetes.PodContainerStatus{ - { - Name: initContainer, - ContainerID: "docker://fghij", - }, - } - - indexers = conIndexer.GetMetadata(&pod) - assert.Equal(t, len(indexers), 2) - assert.Equal(t, indexers[0].Index, "abcde") - assert.Equal(t, indexers[1].Index, "fghij") - - indices = conIndexer.GetIndexes(&pod) - assert.Equal(t, len(indices), 2) - assert.Equal(t, indices[0], "abcde") - assert.Equal(t, indices[1], "fghij") - - expected["container"] = common.MapStr{ - "name": container, - } - assert.Equal(t, expected.String(), indexers[0].Data.String()) - - expected["container"] = common.MapStr{ - "name": initContainer, - } - assert.Equal(t, expected.String(), indexers[1].Data.String()) -} - -func TestFilteredGenMeta(t *testing.T) { - var testConfig = common.NewConfig() - - podIndexer, err := NewPodNameIndexer(*testConfig, metagen) - assert.Nil(t, err) - - podName := "testpod" - ns := "testns" - pod := kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: podName, - Namespace: ns, - Labels: map[string]string{ - "foo": "bar", - "x": "y", - }, - Annotations: map[string]string{ - "a": "b", - "c": "d", - }, - }, - Spec: kubernetes.PodSpec{}, - } - - indexers := podIndexer.GetMetadata(&pod) - assert.Equal(t, len(indexers), 1) - - rawLabels, _ := indexers[0].Data["labels"] - assert.NotNil(t, rawLabels) - - labelMap, ok := rawLabels.(common.MapStr) - assert.Equal(t, ok, true) - assert.Equal(t, len(labelMap), 2) - - rawAnnotations := indexers[0].Data["annotations"] - assert.Nil(t, rawAnnotations) - - config, err := common.NewConfigFrom(map[string]interface{}{ - "include_annotations": []string{"a"}, - "include_labels": []string{"foo"}, - }) - assert.Nil(t, err) - - filteredGen, err := kubernetes.NewMetaGenerator(config) - assert.Nil(t, err) - - podIndexer, err = NewPodNameIndexer(*testConfig, filteredGen) - assert.Nil(t, err) - - indexers = podIndexer.GetMetadata(&pod) - assert.Equal(t, len(indexers), 1) - - rawLabels, _ = indexers[0].Data["labels"] - assert.NotNil(t, rawLabels) - - labelMap, ok = rawLabels.(common.MapStr) - assert.Equal(t, ok, true) - assert.Equal(t, len(labelMap), 1) - - ok, _ = labelMap.HasKey("foo") - assert.Equal(t, ok, true) - - rawAnnotations = indexers[0].Data["annotations"] - assert.NotNil(t, rawAnnotations) - annotationsMap, ok := rawAnnotations.(common.MapStr) - - assert.Equal(t, ok, true) - assert.Equal(t, len(annotationsMap), 1) - - ok, _ = annotationsMap.HasKey("a") - assert.Equal(t, ok, true) -} - -func TestFilteredGenMetaExclusion(t *testing.T) { - var testConfig = common.NewConfig() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "exclude_labels": []string{"x"}, - }) - assert.Nil(t, err) - - filteredGen, err := kubernetes.NewMetaGenerator(config) - assert.Nil(t, err) - - podIndexer, err := NewPodNameIndexer(*testConfig, filteredGen) - assert.Nil(t, err) - - podName := "testpod" - ns := "testns" - pod := kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: podName, - Namespace: ns, - Labels: map[string]string{ - "foo": "bar", - "x": "y", - }, - Annotations: map[string]string{ - "a": "b", - "c": "d", - }, - }, - Spec: kubernetes.PodSpec{}, - } - - assert.Nil(t, err) - - indexers := podIndexer.GetMetadata(&pod) - assert.Equal(t, len(indexers), 1) - - rawLabels, _ := indexers[0].Data["labels"] - assert.NotNil(t, rawLabels) - - labelMap, ok := rawLabels.(common.MapStr) - assert.Equal(t, ok, true) - assert.Equal(t, len(labelMap), 1) - - ok, _ = labelMap.HasKey("foo") - assert.Equal(t, ok, true) - - ok, _ = labelMap.HasKey("x") - assert.Equal(t, ok, false) -} - -func TestIpPortIndexer(t *testing.T) { - var testConfig = common.NewConfig() - - ipIndexer, err := NewIPPortIndexer(*testConfig, metagen) - assert.Nil(t, err) - - podName := "testpod" - ns := "testns" - container := "container" - ip := "1.2.3.4" - port := int64(80) - pod := kubernetes.Pod{ - Metadata: kubernetes.ObjectMeta{ - Name: podName, - Namespace: ns, - Labels: map[string]string{ - "labelkey": "labelvalue", - }, - }, - Spec: kubernetes.PodSpec{ - Containers: make([]kubernetes.Container, 0), - }, - - Status: kubernetes.PodStatus{ - PodIP: ip, - }, - } - - indexers := ipIndexer.GetMetadata(&pod) - indices := ipIndexer.GetIndexes(&pod) - - assert.Equal(t, 1, len(indexers)) - assert.Equal(t, 1, len(indices)) - assert.Equal(t, ip, indices[0]) - assert.Equal(t, ip, indexers[0].Index) - - // Meta doesn't have container info - _, err = indexers[0].Data.GetValue("kubernetes.container.name") - assert.NotNil(t, err) - - expected := common.MapStr{ - "pod": common.MapStr{ - "name": "testpod", - }, - "namespace": "testns", - "labels": common.MapStr{ - "labelkey": "labelvalue", - }, - "node": common.MapStr{ - "name": "testnode", - }, - } - - pod.Spec.Containers = []kubernetes.Container{ - { - Name: container, - Ports: []kubernetes.ContainerPort{ - { - Name: container, - ContainerPort: port, - }, - }, - }, - } - pod.Spec.NodeName = "testnode" - - indexers = ipIndexer.GetMetadata(&pod) - assert.Equal(t, 2, len(indexers)) - assert.Equal(t, ip, indexers[0].Index) - assert.Equal(t, fmt.Sprintf("%s:%d", ip, port), indexers[1].Index) - - indices = ipIndexer.GetIndexes(&pod) - assert.Equal(t, 2, len(indices)) - assert.Equal(t, ip, indices[0]) - assert.Equal(t, fmt.Sprintf("%s:%d", ip, port), indices[1]) - - assert.Equal(t, expected.String(), indexers[0].Data.String()) - expected["container"] = common.MapStr{"name": container} - assert.Equal(t, expected.String(), indexers[1].Data.String()) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexing.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexing.go index 21015b87..e5485abe 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexing.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/indexing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/kubernetes.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/kubernetes.go index a14a5344..63915e4b 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/kubernetes.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/kubernetes.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( @@ -137,16 +154,9 @@ func (k *kubernetesAnnotator) Run(event *beat.Event) (*beat.Event, error) { return event, nil } - meta := common.MapStr{} - metaIface, ok := event.Fields["kubernetes"] - if !ok { - event.Fields["kubernetes"] = common.MapStr{} - } else { - meta = metaIface.(common.MapStr) - } - - meta.Update(metadata) - event.Fields["kubernetes"] = meta + event.Fields.DeepUpdate(common.MapStr{ + "kubernetes": metadata.Clone(), + }) return event, nil } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/matchers.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/matchers.go index 04dc9639..61590821 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/matchers.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/matchers.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( @@ -45,6 +62,7 @@ func NewMatchers(configs PluginConfig) *Matchers { matcher, err := matchFunc(pluginConfig) if err != nil { logp.Warn("Unable to initialize matcher plugin %s due to error %v", name, err) + continue } matchers = append(matchers, matcher) @@ -72,6 +90,8 @@ func (m *Matchers) MetadataIndex(event common.MapStr) string { } func (m *Matchers) Empty() bool { + m.RLock() + defer m.RUnlock() if len(m.matchers) == 0 { return true } diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/matchers_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/matchers_test.go deleted file mode 100644 index 0b7dd1f5..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/matchers_test.go +++ /dev/null @@ -1,87 +0,0 @@ -package add_kubernetes_metadata - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestFieldMatcher(t *testing.T) { - testCfg := map[string]interface{}{ - "lookup_fields": []string{}, - } - fieldCfg, err := common.NewConfigFrom(testCfg) - - assert.Nil(t, err) - matcher, err := NewFieldMatcher(*fieldCfg) - assert.NotNil(t, err) - - testCfg["lookup_fields"] = "foo" - fieldCfg, _ = common.NewConfigFrom(testCfg) - - matcher, err = NewFieldMatcher(*fieldCfg) - assert.NotNil(t, matcher) - assert.Nil(t, err) - - input := common.MapStr{ - "foo": "bar", - } - - out := matcher.MetadataIndex(input) - assert.Equal(t, out, "bar") - - nonMatchInput := common.MapStr{ - "not": "match", - } - - out = matcher.MetadataIndex(nonMatchInput) - assert.Equal(t, out, "") -} - -func TestFieldFormatMatcher(t *testing.T) { - testCfg := map[string]interface{}{} - fieldCfg, err := common.NewConfigFrom(testCfg) - - assert.Nil(t, err) - matcher, err := NewFieldFormatMatcher(*fieldCfg) - assert.NotNil(t, err) - - testCfg["format"] = `%{[namespace]}/%{[pod]}` - fieldCfg, _ = common.NewConfigFrom(testCfg) - - matcher, err = NewFieldFormatMatcher(*fieldCfg) - assert.NotNil(t, matcher) - assert.Nil(t, err) - - event := common.MapStr{ - "namespace": "foo", - "pod": "bar", - } - - out := matcher.MetadataIndex(event) - assert.Equal(t, "foo/bar", out) - - event = common.MapStr{ - "foo": "bar", - } - out = matcher.MetadataIndex(event) - assert.Empty(t, out) - - testCfg["format"] = `%{[dimensions.namespace]}/%{[dimensions.pod]}` - fieldCfg, _ = common.NewConfigFrom(testCfg) - matcher, err = NewFieldFormatMatcher(*fieldCfg) - assert.NotNil(t, matcher) - assert.Nil(t, err) - - event = common.MapStr{ - "dimensions": common.MapStr{ - "pod": "bar", - "namespace": "foo", - }, - } - - out = matcher.MetadataIndex(event) - assert.Equal(t, "foo/bar", out) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/registry.go b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/registry.go index 4fd66e39..7198f485 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/registry.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_kubernetes_metadata import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_locale/add_locale.go b/vendor/github.com/elastic/beats/libbeat/processors/add_locale/add_locale.go index 77d29d80..113824ef 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_locale/add_locale.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/add_locale/add_locale.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 add_locale import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/add_locale/add_locale_test.go b/vendor/github.com/elastic/beats/libbeat/processors/add_locale/add_locale_test.go deleted file mode 100644 index 91fe7dea..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/add_locale/add_locale_test.go +++ /dev/null @@ -1,96 +0,0 @@ -package add_locale - -import ( - "regexp" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -func TestExportTimezone(t *testing.T) { - testConfig, err := common.NewConfigFrom(map[string]interface{}{ - "format": "abbreviation", - }) - if err != nil { - t.Fatal(err) - } - - input := common.MapStr{} - - zone, _ := time.Now().In(time.Local).Zone() - - actual := getActualValue(t, testConfig, input) - - expected := common.MapStr{ - "beat": map[string]string{ - "timezone": zone, - }, - } - - assert.Equal(t, expected.String(), actual.String()) -} - -func TestTimezoneFormat(t *testing.T) { - // Test positive format - - posLoc, err := time.LoadLocation("Africa/Asmara") - if err != nil { - t.Fatal(err) - } - - posZone, posOffset := time.Now().In(posLoc).Zone() - - posAddLocal := addLocale{TimezoneFormat: Offset} - - posVal := posAddLocal.Format(posZone, posOffset) - - assert.Regexp(t, regexp.MustCompile(`\+[\d]{2}\:[\d]{2}`), posVal) - - // Test negative format - - negLoc, err := time.LoadLocation("America/Curacao") - if err != nil { - t.Fatal(err) - } - - negZone, negOffset := time.Now().In(negLoc).Zone() - - negAddLocal := addLocale{TimezoneFormat: Offset} - - negVal := negAddLocal.Format(negZone, negOffset) - - assert.Regexp(t, regexp.MustCompile(`\-[\d]{2}\:[\d]{2}`), negVal) -} - -func getActualValue(t *testing.T, config *common.Config, input common.MapStr) common.MapStr { - logp.TestingSetup() - - p, err := newAddLocale(config) - if err != nil { - logp.Err("Error initializing add_locale") - t.Fatal(err) - } - - actual, err := p.Run(&beat.Event{Fields: input}) - return actual.Fields -} - -func BenchmarkConstruct(b *testing.B) { - var testConfig = common.NewConfig() - - input := common.MapStr{} - - p, err := newAddLocale(testConfig) - if err != nil { - b.Fatal(err) - } - - for i := 0; i < b.N; i++ { - _, err = p.Run(&beat.Event{Fields: input}) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/condition.go b/vendor/github.com/elastic/beats/libbeat/processors/condition.go deleted file mode 100644 index 0a8c9434..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/condition.go +++ /dev/null @@ -1,530 +0,0 @@ -package processors - -import ( - "errors" - "fmt" - "reflect" - "strconv" - "strings" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/match" - "github.com/elastic/beats/libbeat/logp" -) - -type RangeValue struct { - gte *float64 - gt *float64 - lte *float64 - lt *float64 -} - -type EqualsValue struct { - Int uint64 - Str string - Bool bool -} - -type Condition struct { - equals map[string]EqualsValue - matches struct { - name string - filters map[string]match.Matcher - } - hasfields []string - rangexp map[string]RangeValue - or []Condition - and []Condition - not *Condition -} - -type WhenProcessor struct { - condition *Condition - p Processor -} - -// ValuesMap provides a common interface to read fields for condition checking -type ValuesMap interface { - // GetValue returns the given field from the map - GetValue(string) (interface{}, error) -} - -func NewConditional( - ruleFactory Constructor, -) Constructor { - return func(cfg *common.Config) (Processor, error) { - rule, err := ruleFactory(cfg) - if err != nil { - return nil, err - } - - return addCondition(cfg, rule) - } -} - -func NewCondition(config *ConditionConfig) (*Condition, error) { - c := Condition{} - - if config == nil { - // empty condition - return nil, errors.New("missing condition config") - } - - var err error - switch { - case config.Equals != nil: - err = c.setEquals(config.Equals) - case config.Contains != nil: - c.matches.name = "contains" - c.matches.filters, err = compileMatches(config.Contains.fields, match.CompileString) - case config.Regexp != nil: - c.matches.name = "regexp" - c.matches.filters, err = compileMatches(config.Regexp.fields, match.Compile) - case config.Range != nil: - err = c.setRange(config.Range) - case config.HasFields != nil: - c.hasfields = config.HasFields - case len(config.OR) > 0: - c.or, err = NewConditionList(config.OR) - case len(config.AND) > 0: - c.and, err = NewConditionList(config.AND) - case config.NOT != nil: - c.not, err = NewCondition(config.NOT) - default: - err = errors.New("missing condition") - } - if err != nil { - return nil, err - } - - logp.Debug("processors", "New condition %s", c) - return &c, nil -} - -func NewConditionList(config []ConditionConfig) ([]Condition, error) { - out := make([]Condition, len(config)) - for i, condConfig := range config { - cond, err := NewCondition(&condConfig) - if err != nil { - return nil, err - } - - out[i] = *cond - } - return out, nil -} - -func (c *Condition) setEquals(cfg *ConditionFields) error { - c.equals = map[string]EqualsValue{} - - for field, value := range cfg.fields { - uintValue, err := extractInt(value) - if err == nil { - c.equals[field] = EqualsValue{Int: uintValue} - continue - } - - sValue, err := extractString(value) - if err == nil { - c.equals[field] = EqualsValue{Str: sValue} - continue - } - - bValue, err := extractBool(value) - if err == nil { - c.equals[field] = EqualsValue{Bool: bValue} - continue - } - - return fmt.Errorf("unexpected type %T in equals condition", value) - } - - return nil -} - -func compileMatches( - fields map[string]interface{}, - compile func(string) (match.Matcher, error), -) (map[string]match.Matcher, error) { - if len(fields) == 0 { - return nil, nil - } - - out := map[string]match.Matcher{} - for field, value := range fields { - var err error - - switch v := value.(type) { - case string: - out[field], err = compile(v) - if err != nil { - return nil, err - } - - default: - return nil, fmt.Errorf("unexpected type %T of %v", value, value) - } - } - return out, nil -} - -func (c *Condition) setRange(cfg *ConditionFields) error { - c.rangexp = map[string]RangeValue{} - - updateRangeValue := func(key string, op string, value float64) error { - - field := strings.TrimSuffix(key, "."+op) - _, exists := c.rangexp[field] - if !exists { - c.rangexp[field] = RangeValue{} - } - rv := c.rangexp[field] - switch op { - case "gte": - rv.gte = &value - case "gt": - rv.gt = &value - case "lt": - rv.lt = &value - case "lte": - rv.lte = &value - default: - return fmt.Errorf("unexpected field %s", op) - } - c.rangexp[field] = rv - return nil - } - - for key, value := range cfg.fields { - - floatValue, err := extractFloat(value) - if err != nil { - return err - } - - list := strings.Split(key, ".") - err = updateRangeValue(key, list[len(list)-1], floatValue) - if err != nil { - return err - } - - } - - return nil -} - -func (c *Condition) Check(event ValuesMap) bool { - if len(c.or) > 0 { - return c.checkOR(event) - } - - if len(c.and) > 0 { - return c.checkAND(event) - } - - if c.not != nil { - return c.checkNOT(event) - } - - return c.checkEquals(event) && - c.checkMatches(event) && - c.checkRange(event) && - c.checkHasFields(event) -} - -func (c *Condition) checkOR(event ValuesMap) bool { - for _, cond := range c.or { - if cond.Check(event) { - return true - } - } - return false -} - -func (c *Condition) checkAND(event ValuesMap) bool { - for _, cond := range c.and { - if !cond.Check(event) { - return false - } - } - return true -} - -func (c *Condition) checkNOT(event ValuesMap) bool { - if c.not.Check(event) { - return false - } - return true -} - -func (c *Condition) checkEquals(event ValuesMap) bool { - for field, equalValue := range c.equals { - - value, err := event.GetValue(field) - if err != nil { - return false - } - - intValue, err := extractInt(value) - if err == nil { - if intValue != equalValue.Int { - return false - } - - continue - } - - sValue, err := extractString(value) - if err == nil { - if sValue != equalValue.Str { - return false - } - - continue - } - - bValue, err := extractBool(value) - if err == nil { - if bValue != equalValue.Bool { - return false - } - - continue - } - - logp.Err("unexpected type %T in equals condition as it accepts only integers, strings or bools. ", value) - return false - } - - return true -} - -func (c *Condition) checkMatches(event ValuesMap) bool { - matchers := c.matches.filters - if matchers == nil { - return true - } - - for field, matcher := range matchers { - value, err := event.GetValue(field) - if err != nil { - return false - } - - switch v := value.(type) { - case string: - if !matcher.MatchString(v) { - return false - } - - case []string: - if !matcher.MatchAnyString(v) { - return false - } - - default: - str, err := extractString(value) - if err != nil { - logp.Warn("unexpected type %T in %v condition as it accepts only strings.", value, c.matches.name) - return false - } - - if !matcher.MatchString(str) { - return false - } - } - } - - return true -} - -func (c *Condition) checkRange(event ValuesMap) bool { - checkValue := func(value float64, rangeValue RangeValue) bool { - - if rangeValue.gte != nil { - if value < *rangeValue.gte { - return false - } - } - if rangeValue.gt != nil { - if value <= *rangeValue.gt { - return false - } - } - if rangeValue.lte != nil { - if value > *rangeValue.lte { - return false - } - } - if rangeValue.lt != nil { - if value >= *rangeValue.lt { - return false - } - } - return true - } - - for field, rangeValue := range c.rangexp { - - value, err := event.GetValue(field) - if err != nil { - return false - } - - switch value.(type) { - case int, int8, int16, int32, int64: - intValue := reflect.ValueOf(value).Int() - - if !checkValue(float64(intValue), rangeValue) { - return false - } - - case uint, uint8, uint16, uint32, uint64: - uintValue := reflect.ValueOf(value).Uint() - - if !checkValue(float64(uintValue), rangeValue) { - return false - } - - case float64, float32, common.Float: - floatValue := reflect.ValueOf(value).Float() - - if !checkValue(floatValue, rangeValue) { - return false - } - - default: - logp.Warn("unexpected type %T in range condition. ", value) - return false - } - - } - return true -} - -func (c *Condition) checkHasFields(event ValuesMap) bool { - for _, field := range c.hasfields { - _, err := event.GetValue(field) - if err != nil { - return false - } - } - return true -} - -func (c Condition) String() string { - s := "" - - if len(c.equals) > 0 { - s = s + fmt.Sprintf("equals: %v", c.equals) - } - if len(c.matches.filters) > 0 { - s = s + fmt.Sprintf("%v: %v", c.matches.name, c.matches.filters) - } - if len(c.rangexp) > 0 { - s = s + fmt.Sprintf("range: %v", c.rangexp) - } - if len(c.hasfields) > 0 { - s = s + fmt.Sprintf("has_fields: %v", c.hasfields) - } - if len(c.or) > 0 { - for _, cond := range c.or { - s = s + cond.String() + " or " - } - s = s[:len(s)-len(" or ")] //delete the last or - } - if len(c.and) > 0 { - for _, cond := range c.and { - s = s + cond.String() + " and " - } - s = s[:len(s)-len(" and ")] //delete the last and - } - if c.not != nil { - s = s + "not " + c.not.String() - } - - return s -} - -func (r RangeValue) String() string { - s := "" - if r.gte != nil { - s = s + fmt.Sprintf(">= %v", *r.gte) - } - - if r.gt != nil { - if len(s) > 0 { - s = s + " and " - } - s = s + fmt.Sprintf("> %v", *r.gt) - } - - if r.lte != nil { - if len(s) > 0 { - s = s + " and " - } - s = s + fmt.Sprintf("<= %v", *r.lte) - } - if r.lt != nil { - if len(s) > 0 { - s = s + " and " - } - s = s + fmt.Sprintf("< %v", *r.lt) - } - return s -} - -func (e EqualsValue) String() string { - if len(e.Str) > 0 { - return e.Str - } - return strconv.Itoa(int(e.Int)) -} - -func NewConditionRule( - config ConditionConfig, - p Processor, -) (Processor, error) { - cond, err := NewCondition(&config) - if err != nil { - logp.Err("Failed to initialize lookup condition: %v", err) - return nil, err - } - - if cond == nil { - return p, nil - } - return &WhenProcessor{cond, p}, nil -} - -func (r *WhenProcessor) Run(event *beat.Event) (*beat.Event, error) { - if !r.condition.Check(event) { - return event, nil - } - return r.p.Run(event) -} - -func (r *WhenProcessor) String() string { - return fmt.Sprintf("%v, condition=%v", r.p.String(), r.condition.String()) -} - -func addCondition( - cfg *common.Config, - p Processor, -) (Processor, error) { - if !cfg.HasField("when") { - return p, nil - } - sub, err := cfg.Child("when", -1) - if err != nil { - return nil, err - } - - condConfig := ConditionConfig{} - if err := sub.Unpack(&condConfig); err != nil { - return nil, err - } - - return NewConditionRule(condConfig, p) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/condition_test.go b/vendor/github.com/elastic/beats/libbeat/processors/condition_test.go deleted file mode 100644 index cc67a1e3..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/condition_test.go +++ /dev/null @@ -1,663 +0,0 @@ -package processors - -import ( - "errors" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -type countFilter struct { - N int -} - -func (c *countFilter) Run(e *beat.Event) (*beat.Event, error) { - c.N++ - return e, nil -} - -func (c *countFilter) String() string { return "count" } - -func TestCreateConditions(t *testing.T) { - logp.TestingSetup() - - configs := []ConditionConfig{ - { - Equals: &ConditionFields{fields: map[string]interface{}{ - "proc.pid": 0.08, - }}, - }, - - { - Range: &ConditionFields{fields: map[string]interface{}{ - "gtr": 0.3, - }}, - }, - - { - Range: &ConditionFields{fields: map[string]interface{}{ - "gt": "fdfdd", - }}, - }, - { - Regexp: &ConditionFields{fields: map[string]interface{}{ - "proc.name": "58gdhsga-=kw++w00", - }}, - }, - } - - for _, config := range configs { - _, err := NewCondition(&config) - assert.NotNil(t, err) - } -} - -func TestCreateNilCondition(t *testing.T) { - cond, err := NewCondition(nil) - assert.Nil(t, cond) - assert.Error(t, err) -} - -func GetConditions(t *testing.T, configs []ConditionConfig) []Condition { - conds := []Condition{} - - for _, config := range configs { - - cond, err := NewCondition(&config) - assert.Nil(t, err) - conds = append(conds, *cond) - } - assert.True(t, len(conds) == len(configs)) - - return conds -} - -func TestCondition(t *testing.T) { - logp.TestingSetup() - - tests := []struct { - config ConditionConfig - result bool - }{ - { - config: ConditionConfig{ - Equals: &ConditionFields{fields: map[string]interface{}{ - "type": "process", - }}, - }, - result: true, - }, - { - config: ConditionConfig{ - Equals: &ConditionFields{fields: map[string]interface{}{ - "type": "process", - "proc.pid": 305, - }}, - }, - result: true, - }, - { - config: ConditionConfig{ - Range: &ConditionFields{fields: map[string]interface{}{ - "proc.cpu.total_p.gt": 0.5, - }}, - }, - result: false, - }, - { - config: ConditionConfig{ - Contains: &ConditionFields{fields: map[string]interface{}{ - "proc.name": "sec", - "proc.username": "monica", - }}, - }, - result: true, - }, - { - config: ConditionConfig{ - Contains: &ConditionFields{fields: map[string]interface{}{ - "type": "process", - "proc.name": "secddd", - }}, - }, - result: false, - }, - { - config: ConditionConfig{ - Contains: &ConditionFields{fields: map[string]interface{}{ - "proc.keywords": "bar", - }}, - }, - result: true, - }, - { - config: ConditionConfig{ - Equals: &ConditionFields{fields: map[string]interface{}{ - "final": true, - }}, - }, - result: false, - }, - { - config: ConditionConfig{ - Equals: &ConditionFields{fields: map[string]interface{}{ - "final": false, - }}, - }, - result: true, - }, - { - config: ConditionConfig{ - HasFields: []string{"proc.cmdline", "type"}, - }, - result: true, - }, - { - config: ConditionConfig{ - HasFields: []string{"cpu"}, - }, - result: false, - }, - { - config: ConditionConfig{ - HasFields: []string{"proc", "beat"}, - }, - result: false, - }, - } - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "proc": common.MapStr{ - "cmdline": "/usr/libexec/secd", - "cpu": common.MapStr{ - "start_time": "Apr10", - "system": 1988, - "total": 6029, - "total_p": 0.08, - "user": 4041, - }, - "name": "secd", - "pid": 305, - "ppid": 1, - "state": "running", - "username": "monica", - "keywords": []string{"foo", "bar"}, - }, - "type": "process", - "final": false, - }, - } - - for _, test := range tests { - cond, err := NewCondition(&test.config) - assert.Nil(t, err) - assert.Equal(t, test.result, cond.Check(event)) - } -} - -func TestRegexpCondition(t *testing.T) { - logp.TestingSetup() - - configs := []ConditionConfig{ - { - Regexp: &ConditionFields{fields: map[string]interface{}{ - "source": "apache2/error.*", - }}, - }, - - { - Regexp: &ConditionFields{fields: map[string]interface{}{ - "source": "apache2/access.*", - }}, - }, - - { - Regexp: &ConditionFields{fields: map[string]interface{}{ - "source": "apache2/error.*", - "message": "[client 1.2.3.4]", - }}, - }, - } - - conds := GetConditions(t, configs) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "message": `[Fri Dec 16 01:46:23 2005] [error] [client 1.2.3.4] Directory index forbidden by rule: /home/test/`, - "source": "/var/log/apache2/error.log", - "type": "log", - "input_type": "log", - "offset": 30, - }, - } - - event1 := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "message": `127.0.0.1 - - [28/Jul/2006:10:27:32 -0300] "GET /hidden/ HTTP/1.0" 404 7218`, - "source": "/var/log/apache2/access.log", - "type": "log", - "input_type": "log", - "offset": 30, - }, - } - - assert.True(t, conds[0].Check(event)) - assert.False(t, conds[1].Check(event)) - assert.True(t, conds[2].Check(event)) - - assert.True(t, conds[1].Check(event1)) - assert.False(t, conds[2].Check(event1)) -} - -func TestRangeCondition(t *testing.T) { - logp.TestingSetup() - - configs := []ConditionConfig{ - { - Range: &ConditionFields{fields: map[string]interface{}{ - "http.code.gte": 400, - "http.code.lt": 500, - }}, - }, - - { - Range: &ConditionFields{fields: map[string]interface{}{ - "bytes_out.gte": 2800, - }}, - }, - - { - Range: &ConditionFields{fields: map[string]interface{}{ - "bytes_out.gte": 2800, - "responsetime.gt": 30, - }}, - }, - - { - Range: &ConditionFields{fields: map[string]interface{}{ - "proc.cpu.total_p.gte": 0.5, - }}, - }, - } - - conds := GetConditions(t, configs) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "bytes_in": 126, - "bytes_out": 28033, - "client_ip": "127.0.0.1", - "client_port": 42840, - "client_proc": "", - "client_server": "mar.local", - "http": common.MapStr{ - "code": 404, - "content_length": 76985, - "phrase": "Not found", - }, - "ip": "127.0.0.1", - "method": "GET", - "params": "", - "path": "/jszip.min.js", - "port": 8000, - "proc": "", - "query": "GET /jszip.min.js", - "responsetime": 30, - "server": "mar.local", - "status": "OK", - "type": "http", - }, - } - - event1 := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "proc": common.MapStr{ - "cmdline": "/System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mdworker -s mdworker -c MDSImporterWorker -m com.apple.mdworker.single", - "cpu": common.MapStr{ - "start_time": "09:19", - "system": 22, - "total": 66, - "total_p": 0.6, - "user": 44, - }, - "name": "mdworker", - "pid": 44978, - "ppid": 1, - "state": "running", - "username": "test", - }, - "type": "process", - }, - } - - assert.True(t, conds[0].Check(event)) - assert.True(t, conds[1].Check(event)) - assert.False(t, conds[2].Check(event)) - assert.True(t, conds[3].Check(event1)) - assert.False(t, conds[3].Check(event)) -} - -func TestORCondition(t *testing.T) { - logp.TestingSetup() - - configs := []ConditionConfig{ - { - OR: []ConditionConfig{ - { - Range: &ConditionFields{fields: map[string]interface{}{ - "http.code.gte": 400, - "http.code.lt": 500, - }}, - }, - { - Range: &ConditionFields{fields: map[string]interface{}{ - "http.code.gte": 200, - "http.code.lt": 300, - }}, - }, - }, - }, - } - - conds := GetConditions(t, configs) - for _, cond := range conds { - logp.Debug("test", "%s", cond) - } - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "bytes_in": 126, - "bytes_out": 28033, - "client_ip": "127.0.0.1", - "client_port": 42840, - "client_proc": "", - "client_server": "mar.local", - "http": common.MapStr{ - "code": 404, - "content_length": 76985, - "phrase": "Not found", - }, - "ip": "127.0.0.1", - "method": "GET", - "params": "", - "path": "/jszip.min.js", - "port": 8000, - "proc": "", - "query": "GET /jszip.min.js", - "responsetime": 30, - "server": "mar.local", - "status": "OK", - "type": "http", - }, - } - - assert.True(t, conds[0].Check(event)) -} - -func TestANDCondition(t *testing.T) { - logp.TestingSetup() - configs := []ConditionConfig{ - { - AND: []ConditionConfig{ - { - Equals: &ConditionFields{fields: map[string]interface{}{ - "client_server": "mar.local", - }}, - }, - { - Range: &ConditionFields{fields: map[string]interface{}{ - "http.code.gte": 400, - "http.code.lt": 500, - }}, - }, - }, - }, - } - - conds := GetConditions(t, configs) - for _, cond := range conds { - logp.Debug("test", "%s", cond) - } - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "bytes_in": 126, - "bytes_out": 28033, - "client_ip": "127.0.0.1", - "client_port": 42840, - "client_proc": "", - "client_server": "mar.local", - "http": common.MapStr{ - "code": 404, - "content_length": 76985, - "phrase": "Not found", - }, - "ip": "127.0.0.1", - "method": "GET", - "params": "", - "path": "/jszip.min.js", - "port": 8000, - "proc": "", - "query": "GET /jszip.min.js", - "responsetime": 30, - "server": "mar.local", - "status": "OK", - "type": "http", - }, - } - - assert.True(t, conds[0].Check(event)) -} - -func TestNOTCondition(t *testing.T) { - logp.TestingSetup() - - configs := []ConditionConfig{ - { - NOT: &ConditionConfig{ - Equals: &ConditionFields{fields: map[string]interface{}{ - "method": "GET", - }}, - }, - }, - } - - conds := GetConditions(t, configs) - for _, cond := range conds { - logp.Debug("test", "%s", cond) - } - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "@timestamp": "2015-06-11T09:51:23.642Z", - "bytes_in": 126, - "bytes_out": 28033, - "client_ip": "127.0.0.1", - "client_port": 42840, - "client_proc": "", - "client_server": "mar.local", - "http": common.MapStr{ - "code": 404, - "content_length": 76985, - "phrase": "Not found", - }, - "ip": "127.0.0.1", - "method": "GET", - "params": "", - "path": "/jszip.min.js", - "port": 8000, - "proc": "", - "query": "GET /jszip.min.js", - "responsetime": 30, - "server": "mar.local", - "status": "OK", - "type": "http", - }, - } - - assert.False(t, conds[0].Check(event)) -} - -func TestCombinedCondition(t *testing.T) { - logp.TestingSetup() - configs := []ConditionConfig{ - { - OR: []ConditionConfig{ - { - Range: &ConditionFields{fields: map[string]interface{}{ - "http.code.gte": 100, - "http.code.lt": 300, - }}, - }, - { - AND: []ConditionConfig{ - { - Equals: &ConditionFields{fields: map[string]interface{}{ - "status": 200, - }}, - }, - { - Equals: &ConditionFields{fields: map[string]interface{}{ - "type": "http", - }}, - }, - }, - }, - }, - }, - } - - conds := GetConditions(t, configs) - for _, cond := range conds { - logp.Debug("test", "%s", cond) - } - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "@timestamp": "2015-06-11T09:51:23.642Z", - "bytes_in": 126, - "bytes_out": 28033, - "client_ip": "127.0.0.1", - "client_port": 42840, - "client_proc": "", - "client_server": "mar.local", - "http": common.MapStr{ - "code": 200, - "content_length": 76985, - "phrase": "OK", - }, - "ip": "127.0.0.1", - "method": "GET", - "params": "", - "path": "/jszip.min.js", - "port": 8000, - "proc": "", - "query": "GET /jszip.min.js", - "responsetime": 30, - "server": "mar.local", - "status": "OK", - "type": "http", - }, - } - - assert.True(t, conds[0].Check(event)) -} - -func TestWhenProcessor(t *testing.T) { - type config map[string]interface{} - - tests := []struct { - title string - filter config - events []common.MapStr - expected int - }{ - { - "condition_matches", - config{"when.equals.i": 10}, - []common.MapStr{{"i": 10}}, - 1, - }, - { - "condition_fails", - config{"when.equals.i": 11}, - []common.MapStr{{"i": 10}}, - 0, - }, - { - "no_condition", - config{}, - []common.MapStr{{"i": 10}}, - 1, - }, - { - "condition_matches", - config{"when.has_fields": []string{"i"}}, - []common.MapStr{{"i": 10}}, - 1, - }, - { - "condition_fails", - config{"when.has_fields": []string{"j"}}, - []common.MapStr{{"i": 10}}, - 0, - }, - } - - for i, test := range tests { - t.Logf("run test (%v): %v", i, test.title) - - config, err := common.NewConfigFrom(test.filter) - if err != nil { - t.Error(err) - continue - } - - cf := &countFilter{} - filter, err := NewConditional(func(_ *common.Config) (Processor, error) { - return cf, nil - })(config) - if err != nil { - t.Error(err) - continue - } - - for _, fields := range test.events { - event := &beat.Event{ - Timestamp: time.Now(), - Fields: fields, - } - _, err := filter.Run(event) - if err != nil { - t.Error(err) - } - } - - assert.Equal(t, test.expected, cf.N) - } -} - -func TestConditionRuleInitErrorPropagates(t *testing.T) { - testErr := errors.New("test") - filter, err := NewConditional(func(_ *common.Config) (Processor, error) { - return nil, testErr - })(common.NewConfig()) - - assert.Equal(t, testErr, err) - assert.Nil(t, filter) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/conditionals.go b/vendor/github.com/elastic/beats/libbeat/processors/conditionals.go new file mode 100644 index 00000000..427aa7b0 --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/processors/conditionals.go @@ -0,0 +1,110 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 processors + +import ( + "fmt" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/conditions" + "github.com/elastic/beats/libbeat/logp" +) + +// WhenProcessor is a tuple of condition plus a Processor. +type WhenProcessor struct { + condition conditions.Condition + p Processor +} + +// NewConditional returns a constructor suitable for registering when conditionals as a plugin. +func NewConditional( + ruleFactory Constructor, +) Constructor { + return func(cfg *common.Config) (Processor, error) { + rule, err := ruleFactory(cfg) + if err != nil { + return nil, err + } + + return addCondition(cfg, rule) + } +} + +// NewConditionList takes a slice of Config objects and turns them into real Condition objects. +func NewConditionList(config []conditions.Config) ([]conditions.Condition, error) { + out := make([]conditions.Condition, len(config)) + for i, condConfig := range config { + cond, err := conditions.NewCondition(&condConfig) + if err != nil { + return nil, err + } + + out[i] = cond + } + return out, nil +} + +// NewConditionRule returns a processor that will execute the provided processor if the condition is true. +func NewConditionRule( + config conditions.Config, + p Processor, +) (Processor, error) { + cond, err := conditions.NewCondition(&config) + if err != nil { + logp.Err("Failed to initialize lookup condition: %v", err) + return nil, err + } + + if cond == nil { + return p, nil + } + return &WhenProcessor{cond, p}, nil +} + +// Run executes this WhenProcessor. +func (r *WhenProcessor) Run(event *beat.Event) (*beat.Event, error) { + if !(r.condition).Check(event) { + return event, nil + } + return r.p.Run(event) +} + +func (r *WhenProcessor) String() string { + return fmt.Sprintf("%v, condition=%v", r.p.String(), r.condition.String()) +} + +func addCondition( + cfg *common.Config, + p Processor, +) (Processor, error) { + if !cfg.HasField("when") { + return p, nil + } + sub, err := cfg.Child("when", -1) + if err != nil { + return nil, err + } + + condConfig := conditions.Config{} + if err := sub.Unpack(&condConfig); err != nil { + return nil, err + } + + return NewConditionRule(condConfig, p) +} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/config.go b/vendor/github.com/elastic/beats/libbeat/processors/config.go index b5668dfe..075cff5f 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/config.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/config.go @@ -1,142 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 processors import ( - "fmt" - "math" - "strconv" - "github.com/elastic/beats/libbeat/common" ) -type ConditionConfig struct { - Equals *ConditionFields `config:"equals"` - Contains *ConditionFields `config:"contains"` - Regexp *ConditionFields `config:"regexp"` - Range *ConditionFields `config:"range"` - HasFields []string `config:"has_fields"` - OR []ConditionConfig `config:"or"` - AND []ConditionConfig `config:"and"` - NOT *ConditionConfig `config:"not"` -} - -type ConditionFields struct { - fields map[string]interface{} -} - type PluginConfig []map[string]*common.Config // fields that should be always exported var MandatoryExportedFields = []string{"type"} - -func (f *ConditionFields) Unpack(to interface{}) error { - m, ok := to.(map[string]interface{}) - if !ok { - return fmt.Errorf("wrong type, expect map") - } - - f.fields = map[string]interface{}{} - - var expand func(key string, value interface{}) - - expand = func(key string, value interface{}) { - switch v := value.(type) { - case map[string]interface{}: - for k, val := range v { - expand(fmt.Sprintf("%v.%v", key, k), val) - } - case []interface{}: - for i := range v { - expand(fmt.Sprintf("%v.%v", key, i), v[i]) - } - default: - f.fields[key] = value - } - } - - for k, val := range m { - expand(k, val) - } - return nil -} - -func extractFloat(unk interface{}) (float64, error) { - switch i := unk.(type) { - case float64: - return float64(i), nil - case float32: - return float64(i), nil - case int64: - return float64(i), nil - case int32: - return float64(i), nil - case int16: - return float64(i), nil - case int8: - return float64(i), nil - case uint64: - return float64(i), nil - case uint32: - return float64(i), nil - case uint16: - return float64(i), nil - case uint8: - return float64(i), nil - case int: - return float64(i), nil - case uint: - return float64(i), nil - case string: - f, err := strconv.ParseFloat(i, 64) - if err != nil { - return math.NaN(), err - } - return f, err - default: - return math.NaN(), fmt.Errorf("unknown type %T passed to extractFloat", unk) - } -} - -func extractInt(unk interface{}) (uint64, error) { - switch i := unk.(type) { - case int64: - return uint64(i), nil - case int32: - return uint64(i), nil - case int16: - return uint64(i), nil - case int8: - return uint64(i), nil - case uint64: - return uint64(i), nil - case uint32: - return uint64(i), nil - case uint16: - return uint64(i), nil - case uint8: - return uint64(i), nil - case int: - return uint64(i), nil - case uint: - return uint64(i), nil - default: - return 0, fmt.Errorf("unknown type %T passed to extractInt", unk) - } -} - -func extractString(unk interface{}) (string, error) { - switch s := unk.(type) { - case string: - return s, nil - default: - return "", fmt.Errorf("unknown type %T passed to extractString", unk) - } -} - -func extractBool(unk interface{}) (bool, error) { - switch b := unk.(type) { - case bool: - return b, nil - default: - return false, fmt.Errorf("unknown type %T passed to extractBool", unk) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/config_test.go b/vendor/github.com/elastic/beats/libbeat/processors/config_test.go deleted file mode 100644 index f8eb23c5..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/config_test.go +++ /dev/null @@ -1,27 +0,0 @@ -package processors - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestExtractString(t *testing.T) { - input := "test" - - v, err := extractString(input) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, input, v) -} - -func TestExtractBool(t *testing.T) { - input := true - - v, err := extractBool(input) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, input, v) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/config.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/config.go index 1a61fbc4..e3051497 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/config.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/dissect/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dissect type config struct { diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/config_test.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/config_test.go deleted file mode 100644 index 96d048c7..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/config_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package dissect - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestTokenizerType(t *testing.T) { - t.Run("valid", func(t *testing.T) { - c, err := common.NewConfigFrom(map[string]interface{}{ - "tokenizer": "%{value1}", - "field": "message", - }) - if !assert.NoError(t, err) { - return - } - - cfg := config{} - err = c.Unpack(&cfg) - if !assert.NoError(t, err) { - return - } - }) - - t.Run("invalid", func(t *testing.T) { - c, err := common.NewConfigFrom(map[string]interface{}{ - "tokenizer": "%value1}", - "field": "message", - }) - if !assert.NoError(t, err) { - return - } - - cfg := config{} - err = c.Unpack(&cfg) - if !assert.Error(t, err) { - return - } - }) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/const.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/const.go index 079aa165..78be8372 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/const.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/dissect/const.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dissect import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/delimiter.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/delimiter.go index b60978fb..b4ec8d25 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/delimiter.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/dissect/delimiter.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dissect import ( @@ -21,7 +38,7 @@ type delimiter interface { // Delimiter returns the actual delimiter string. Delimiter() string - // IsGreedy return true if the next key should be greedy (end of string) or when explicitely + // IsGreedy return true if the next key should be greedy (end of string) or when explicitly // configured. IsGreedy() bool diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/delimiter_test.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/delimiter_test.go deleted file mode 100644 index ded44e23..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/delimiter_test.go +++ /dev/null @@ -1,17 +0,0 @@ -package dissect - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestMultiByte(t *testing.T) { - m := newDelimiter("needle") - assert.Equal(t, 3, m.IndexOf(" needle", 1)) -} - -func TestSingleByte(t *testing.T) { - m := newDelimiter("") - assert.Equal(t, 5, m.IndexOf(" needle", 5)) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/dissect.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/dissect.go index 74e096bb..12dcbd7c 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/dissect.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/dissect/dissect.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dissect import "fmt" @@ -101,7 +118,8 @@ func (d *Dissector) extract(s string) (positions, error) { dl = dl.Next() } - if offset < len(s) { + // If we have remaining contents and have not captured all the requested fields + if offset < len(s) && i < len(d.parser.fields) { positions[i] = position{start: offset, end: len(s)} } return positions, nil diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/dissect_test.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/dissect_test.go deleted file mode 100644 index 6cd427a0..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/dissect_test.go +++ /dev/null @@ -1,336 +0,0 @@ -package dissect - -import ( - "encoding/json" - "flag" - "io/ioutil" - "regexp" - "testing" - - "github.com/stretchr/testify/assert" -) - -var export = flag.Bool("test.export-dissect", false, "export dissect tests to JSON.") - -func TestNoToken(t *testing.T) { - _, err := New("hello") - assert.Equal(t, errInvalidTokenizer, err) -} - -func TestEmptyString(t *testing.T) { - d, err := New("%{hello}") - _, err = d.Dissect("") - assert.Equal(t, errEmpty, err) -} - -// JSON tags are used to create a common test file for the `logstash-filter-dissect` and the -// beat implementation. -type dissectTest struct { - Name string `json:"name"` - Tok string `json:"tok"` - Msg string `json:"msg"` - Expected Map `json:"expected"` - Skip bool `json:"skip"` - Fail bool `json:"fail"` -} - -var tests = []dissectTest{ - { - Name: "Complex stack trace", - Tok: "%{day}-%{month}-%{year} %{hour} %{severity} [%{thread_id}] %{origin} %{message}", - Msg: `18-Apr-2018 06:53:20.411 INFO [http-nio-8080-exec-1] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header - Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. - java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens - at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:426) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:687) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:748)`, - Expected: Map{ - "day": "18", - "month": "Apr", - "year": "2018", - "hour": "06:53:20.411", - "severity": "INFO", - "thread_id": "http-nio-8080-exec-1", - "origin": "org.apache.coyote.http11.Http11Processor.service", - "message": `Error parsing HTTP request header - Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. - java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens - at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:426) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:687) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:748)`, - }, - }, - { - Name: "fails when delimiter is not found at the beginning of the string", - Tok: "/var/log/%{key}.log", - Msg: "foobar", - Fail: true, - }, - { - Name: "fails when delimiter is not found after the key", - Tok: "/var/log/%{key}.log", - Msg: "/var/log/foobar", - Fail: true, - }, - { - Name: "simple dissect", - Tok: "%{key}", - Msg: "foobar", - Expected: Map{"key": "foobar"}, - }, - { - Name: "dissect two replacement", - Tok: "%{key1} %{key2}", - Msg: "foo bar", - Expected: Map{"key1": "foo", "key2": "bar"}, - }, - { - Name: "one level dissect not end of string", - Tok: "/var/%{key}/log", - Msg: "/var/foobar/log", - Expected: Map{"key": "foobar"}, - }, - { - Name: "one level dissect", - Tok: "/var/%{key}", - Msg: "/var/foobar/log", - Expected: Map{"key": "foobar/log"}, - }, - { - Name: "multiple keys dissect end of string", - Tok: "/var/%{key}/log/%{key1}", - Msg: "/var/foobar/log/apache", - Expected: Map{"key": "foobar", "key1": "apache"}, - }, - { - Name: "multiple keys not end of string", - Tok: "/var/%{key}/log/%{key1}.log", - Msg: "/var/foobar/log/apache.log", - Expected: Map{"key": "foobar", "key1": "apache"}, - }, - { - Name: "simple ordered", - Tok: "%{+key/3} %{+key/1} %{+key/2}", - Msg: "1 2 3", - Expected: Map{"key": "2 3 1"}, - }, - { - Name: "simple append", - Tok: "%{key}-%{+key}-%{+key}", - Msg: "1-2-3", - Expected: Map{"key": "1-2-3"}, - }, - { - Name: "indirect field", - Tok: "%{key} %{&key}", - Msg: "hello world", - Expected: Map{"key": "hello", "hello": "world"}, - }, - { - Name: "skip field", - Tok: "%{} %{key}", - Msg: "hello world", - Expected: Map{"key": "world"}, - }, - { - Name: "named skiped field with indirect", - Tok: "%{?key} %{&key}", - Msg: "hello world", - Expected: Map{"hello": "world"}, - }, - { - Name: "missing fields", - Tok: "%{name},%{addr1},%{addr2},%{addr3},%{city},%{zip}", - Msg: "Jane Doe,4321 Fifth Avenue,,,New York,87432", - Expected: Map{ - "name": "Jane Doe", - "addr1": "4321 Fifth Avenue", - "addr2": "", - "addr3": "", - "city": "New York", - "zip": "87432", - }, - }, - { - Name: "ignore right padding", - Tok: "%{id} %{function->} %{server}", - Msg: "00000043 ViewReceive machine-321", - Expected: Map{ - "id": "00000043", - "function": "ViewReceive", - "server": "machine-321", - }, - }, - { - Name: "padding on the last key need a delimiter", - Tok: "%{id} %{function} %{server->} ", - Msg: "00000043 ViewReceive machine-321 ", - Expected: Map{ - "id": "00000043", - "function": "ViewReceive", - "server": "machine-321", - }, - }, - { - Name: "ignore left padding", - Tok: "%{id->} %{function} %{server}", - Msg: "00000043 ViewReceive machine-321", - Expected: Map{ - "id": "00000043", - "function": "ViewReceive", - "server": "machine-321", - }, - }, - { - Name: "when the delimiters contains `{` and `}`", - Tok: "{%{a}}{%{b}} %{rest}", - Msg: "{c}{d} anything", - Expected: Map{ - "a": "c", - "b": "d", - "rest": "anything", - }, - }, -} - -func TestDissect(t *testing.T) { - if export != nil && *export { - dumpJSON() - return - } - - for _, test := range tests { - if test.Skip { - continue - } - t.Run(test.Name, func(t *testing.T) { - d, err := New(test.Tok) - if !assert.NoError(t, err) { - return - } - - if test.Fail { - _, err := d.Dissect(test.Msg) - assert.Error(t, err) - return - } - - r, err := d.Dissect(test.Msg) - if !assert.NoError(t, err) { - return - } - - assert.Equal(t, test.Expected, r) - }) - } -} - -var results Map -var o [][]string - -func BenchmarkDissect(b *testing.B) { - for _, test := range tests { - if test.Skip { - continue - } - b.Run(test.Name, func(b *testing.B) { - tok := test.Tok - msg := test.Msg - d, err := New(tok) - if !assert.NoError(b, err) { - return - } - b.ReportAllocs() - for n := 0; n < b.N; n++ { - r, err := d.Dissect(msg) - if test.Fail { - assert.Error(b, err) - return - } - assert.NoError(b, err) - results = r - } - }) - } - - // Add a few regular expression matches agains the same string the test suite, - // this give us a baseline to compare to, note that we only test a raw match against the string. - b.Run("Regular expression", func(b *testing.B) { - re := regexp.MustCompile("/var/log/([a-z]+)/log/([a-z]+)/apache/([a-b]+)") - by := "/var/log/docker/more/apache/super" - b.ReportAllocs() - for n := 0; n < b.N; n++ { - o = re.FindAllStringSubmatch(by, -1) - } - }) - - b.Run("Larger regular expression", func(b *testing.B) { - re := regexp.MustCompile("^(\\d{2})-(\\w{3})-(\\d{4})\\s([0-9:.]+)\\s(\\w+)\\s\\[([a-zA-Z0-9-]+)\\]\\s([a-zA-Z0-9.]+)\\s(.+)") - - by := `18-Apr-2018 06:53:20.411 INFO [http-nio-8080-exec-1] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header - Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. - java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens - at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:426) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:687) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:748)` - b.ReportAllocs() - for n := 0; n < b.N; n++ { - o = re.FindAllStringSubmatch(by, -1) - } - }) - - b.Run("regular expression to match end of line", func(b *testing.B) { - re := regexp.MustCompile("MACHINE\\[(\\w+)\\]$") - - by := `18-Apr-2018 06:53:20.411 INFO [http-nio-8080-exec-1] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header - Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. - java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens - at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:426) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:687) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) - at java.lang.Thread.run(Thread.java:748) MACHINE[hello]` - b.ReportAllocs() - for n := 0; n < b.N; n++ { - o = re.FindAllStringSubmatch(by, -1) - } - }) -} - -func dumpJSON() { - b, err := json.MarshalIndent(&tests, "", "\t") - if err != nil { - panic("could not marshal json") - } - - err = ioutil.WriteFile("dissect_tests.json", b, 0666) - if err != nil { - panic("could not write to file") - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/field.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/field.go index 06b42868..73a3b492 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/field.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/dissect/field.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dissect import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/parser.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/parser.go index 40237e42..d8d4d23d 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/parser.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/dissect/parser.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dissect import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/processor.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/processor.go index e4082968..613ea38d 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/processor.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/dissect/processor.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dissect import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/dissect/processor_test.go b/vendor/github.com/elastic/beats/libbeat/processors/dissect/processor_test.go deleted file mode 100644 index 71df98de..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/dissect/processor_test.go +++ /dev/null @@ -1,161 +0,0 @@ -package dissect - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -func TestProcessor(t *testing.T) { - tests := []struct { - name string - c map[string]interface{} - fields common.MapStr - values map[string]string - }{ - { - name: "default field/default target", - c: map[string]interface{}{"tokenizer": "hello %{key}"}, - fields: common.MapStr{"message": "hello world"}, - values: map[string]string{"dissect.key": "world"}, - }, - { - name: "default field/target root", - c: map[string]interface{}{"tokenizer": "hello %{key}", "target_prefix": ""}, - fields: common.MapStr{"message": "hello world"}, - values: map[string]string{"key": "world"}, - }, - { - name: "specific field/target root", - c: map[string]interface{}{ - "tokenizer": "hello %{key}", - "target_prefix": "", - "field": "new_field", - }, - fields: common.MapStr{"new_field": "hello world"}, - values: map[string]string{"key": "world"}, - }, - { - name: "specific field/specific target", - c: map[string]interface{}{ - "tokenizer": "hello %{key}", - "target_prefix": "new_target", - "field": "new_field", - }, - fields: common.MapStr{"new_field": "hello world"}, - values: map[string]string{"new_target.key": "world"}, - }, - { - name: "extract to already existing namespace not conflicting", - c: map[string]interface{}{ - "tokenizer": "hello %{key} %{key2}", - "target_prefix": "extracted", - "field": "message", - }, - fields: common.MapStr{"message": "hello world super", "extracted": common.MapStr{"not": "hello"}}, - values: map[string]string{"extracted.key": "world", "extracted.key2": "super", "extracted.not": "hello"}, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - c, err := common.NewConfigFrom(test.c) - if !assert.NoError(t, err) { - return - } - - processor, err := newProcessor(c) - if !assert.NoError(t, err) { - return - } - - e := beat.Event{Fields: test.fields} - newEvent, err := processor.Run(&e) - if !assert.NoError(t, err) { - return - } - - for field, value := range test.values { - v, err := newEvent.GetValue(field) - if !assert.NoError(t, err) { - return - } - - assert.Equal(t, value, v) - } - }) - } -} - -func TestFieldDoesntExist(t *testing.T) { - c, err := common.NewConfigFrom(map[string]interface{}{"tokenizer": "hello %{key}"}) - if !assert.NoError(t, err) { - return - } - - processor, err := newProcessor(c) - if !assert.NoError(t, err) { - return - } - - e := beat.Event{Fields: common.MapStr{"hello": "world"}} - _, err = processor.Run(&e) - if !assert.Error(t, err) { - return - } -} - -func TestFieldAlreadyExist(t *testing.T) { - tests := []struct { - name string - tokenizer string - prefix string - fields common.MapStr - }{ - { - name: "no prefix", - tokenizer: "hello %{key}", - prefix: "", - fields: common.MapStr{"message": "hello world", "key": "exists"}, - }, - { - name: "with prefix", - tokenizer: "hello %{key}", - prefix: "extracted", - fields: common.MapStr{"message": "hello world", "extracted": "exists"}, - }, - { - name: "with conflicting key in prefix", - tokenizer: "hello %{key}", - prefix: "extracted", - fields: common.MapStr{"message": "hello world", "extracted": common.MapStr{"key": "exists"}}, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - c, err := common.NewConfigFrom(map[string]interface{}{ - "tokenizer": test.tokenizer, - "target_prefix": test.prefix, - }) - - if !assert.NoError(t, err) { - return - } - - processor, err := newProcessor(c) - if !assert.NoError(t, err) { - return - } - - e := beat.Event{Fields: test.fields} - _, err = processor.Run(&e) - if !assert.Error(t, err) { - return - } - }) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/namespace.go b/vendor/github.com/elastic/beats/libbeat/processors/namespace.go index d86b8ae7..0cba00ec 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/namespace.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/namespace.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 processors import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/namespace_test.go b/vendor/github.com/elastic/beats/libbeat/processors/namespace_test.go deleted file mode 100644 index 8ae17c56..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/namespace_test.go +++ /dev/null @@ -1,129 +0,0 @@ -package processors - -import ( - "errors" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -type testFilterRule struct { - str func() string - run func(*beat.Event) (*beat.Event, error) -} - -func TestNamespace(t *testing.T) { - tests := []struct { - name string - }{ - {"test"}, - {"test.test"}, - {"abc.def.test"}, - } - - for i, test := range tests { - t.Logf("run (%v): %v", i, test.name) - - ns := NewNamespace() - err := ns.Register(test.name, newTestFilterRule) - fatalError(t, err) - - cfg, _ := common.NewConfigFrom(map[string]interface{}{ - test.name: nil, - }) - - filter, err := ns.Plugin()(cfg) - - assert.NoError(t, err) - assert.NotNil(t, filter) - } -} - -func TestNamespaceRegisterFail(t *testing.T) { - ns := NewNamespace() - err := ns.Register("test", newTestFilterRule) - fatalError(t, err) - - err = ns.Register("test", newTestFilterRule) - assert.Error(t, err) -} - -func TestNamespaceError(t *testing.T) { - tests := []struct { - title string - factory Constructor - config interface{} - }{ - { - "no module configured", - newTestFilterRule, - map[string]interface{}{}, - }, - { - "unknown module configured", - newTestFilterRule, - map[string]interface{}{ - "notTest": nil, - }, - }, - { - "too many modules", - newTestFilterRule, - map[string]interface{}{ - "a": nil, - "b": nil, - "test": nil, - }, - }, - { - "filter init fail", - func(_ *common.Config) (Processor, error) { - return nil, errors.New("test") - }, - map[string]interface{}{ - "test": nil, - }, - }, - } - - for i, test := range tests { - t.Logf("run (%v): %v", i, test.title) - - ns := NewNamespace() - err := ns.Register("test", test.factory) - fatalError(t, err) - - config, err := common.NewConfigFrom(test.config) - fatalError(t, err) - - _, err = ns.Plugin()(config) - assert.Error(t, err) - } -} - -func newTestFilterRule(_ *common.Config) (Processor, error) { - return &testFilterRule{}, nil -} - -func (r *testFilterRule) String() string { - if r.str == nil { - return "test" - } - return r.str() -} - -func (r *testFilterRule) Run(evt *beat.Event) (*beat.Event, error) { - if r.run == nil { - return evt, nil - } - return r.Run(evt) -} - -func fatalError(t *testing.T, err error) { - if err != nil { - t.Fatal(err) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/processor.go b/vendor/github.com/elastic/beats/libbeat/processors/processor.go index b40bdaf7..f530d01e 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/processor.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/processor.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 processors import ( diff --git a/vendor/github.com/elastic/beats/libbeat/processors/processor_test.go b/vendor/github.com/elastic/beats/libbeat/processors/processor_test.go deleted file mode 100644 index 6d0949d7..00000000 --- a/vendor/github.com/elastic/beats/libbeat/processors/processor_test.go +++ /dev/null @@ -1,603 +0,0 @@ -package processors_test - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/processors" - - _ "github.com/elastic/beats/libbeat/processors/actions" - _ "github.com/elastic/beats/libbeat/processors/add_cloud_metadata" -) - -func GetProcessors(t *testing.T, yml []map[string]interface{}) *processors.Processors { - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) - - c[name] = actionConfig - } - config = append(config, c) - - } - - list, err := processors.New(config) - assert.Nil(t, err) - - return list -} - -func TestBadConfig(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "include_fields": map[string]interface{}{ - "when": map[string]interface{}{ - "contains": map[string]string{ - "proc.name": "test", - }, - }, - "fields": []string{"proc.cpu.total_p", "proc.mem", "dd"}, - }, - "drop_fields": map[string]interface{}{ - "fields": []string{"proc.cpu"}, - }, - }, - } - - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) - assert.NotNil(t, err) -} - -func TestIncludeFields(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "include_fields": map[string]interface{}{ - "when": map[string]interface{}{ - "contains": map[string]string{ - "proc.name": "test", - }, - }, - "fields": []string{"proc.cpu.total_p", "proc.mem", "dd"}, - }, - }, - } - - processors := GetProcessors(t, yml) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - "name": "test-1", - "cmdline": "/sbin/launchd", - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - }, - "type": "process", - }, - } - - processedEvent := processors.Run(event) - - expectedEvent := common.MapStr{ - "proc": common.MapStr{ - "cpu": common.MapStr{ - "total_p": 0, - }, - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - }, - "type": "process", - } - - assert.Equal(t, expectedEvent, processedEvent.Fields) -} - -func TestIncludeFields1(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "include_fields": map[string]interface{}{ - "when": map[string]interface{}{ - "regexp": map[string]string{ - "proc.cmdline": "launchd", - }, - }, - "fields": []string{"proc.cpu.total_add"}, - }, - }, - } - - processors := GetProcessors(t, yml) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - "cmdline": "/sbin/launchd", - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - }, - "type": "process", - }, - } - - processedEvent := processors.Run(event) - - expectedEvent := common.MapStr{ - "type": "process", - } - - assert.Equal(t, expectedEvent, processedEvent.Fields) -} - -func TestDropFields(t *testing.T) { - yml := []map[string]interface{}{ - { - "drop_fields": map[string]interface{}{ - "when": map[string]interface{}{ - "equals": map[string]string{ - "beat.hostname": "mar", - }, - }, - "fields": []string{"proc.cpu.start_time", "mem", "proc.cmdline", "beat", "dd"}, - }, - }, - } - - processors := GetProcessors(t, yml) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - "cmdline": "/sbin/launchd", - }, - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - "type": "process", - }, - } - - processedEvent := processors.Run(event) - - expectedEvent := common.MapStr{ - "proc": common.MapStr{ - "cpu": common.MapStr{ - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - }, - "type": "process", - } - - assert.Equal(t, expectedEvent, processedEvent.Fields) -} - -func TestMultipleIncludeFields(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "include_fields": map[string]interface{}{ - "when": map[string]interface{}{ - "contains": map[string]string{ - "beat.name": "my-shipper", - }, - }, - "fields": []string{"proc"}, - }, - }, - { - "include_fields": map[string]interface{}{ - "fields": []string{"proc.cpu.start_time", "proc.cpu.total_p", "proc.mem.rss_p", "proc.cmdline"}, - }, - }, - } - - processors := GetProcessors(t, yml) - - event1 := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "@timestamp": "2016-01-24T18:35:19.308Z", - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - "cmdline": "/sbin/launchd", - }, - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - "type": "process", - }, - } - - event2 := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - "fs": common.MapStr{ - "device_name": "devfs", - "total": 198656, - "used": 198656, - "used_p": 1, - "free": 0, - "avail": 0, - "files": 677, - "free_files": 0, - "mount_point": "/dev", - }, - "type": "process", - }, - } - - expected1 := common.MapStr{ - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "total_p": 0, - }, - "cmdline": "/sbin/launchd", - }, - - "type": "process", - } - - expected2 := common.MapStr{ - "type": "process", - } - - actual1 := processors.Run(event1) - actual2 := processors.Run(event2) - - assert.Equal(t, expected1, actual1.Fields) - assert.Equal(t, expected2, actual2.Fields) -} - -func TestDropEvent(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "drop_event": map[string]interface{}{ - "when": map[string]interface{}{ - "range": map[string]interface{}{ - "proc.cpu.total_p": map[string]float64{ - "lt": 0.5, - }, - }, - }, - }, - }, - } - - processors := GetProcessors(t, yml) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - "name": "test-1", - "cmdline": "/sbin/launchd", - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - }, - "type": "process", - }, - } - - processedEvent := processors.Run(event) - - assert.Nil(t, processedEvent) -} - -func TestEmptyCondition(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "drop_event": map[string]interface{}{}, - }, - } - - processors := GetProcessors(t, yml) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - "name": "test-1", - "cmdline": "/sbin/launchd", - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - }, - "type": "process", - }, - } - - processedEvent := processors.Run(event) - - assert.Nil(t, processedEvent) -} - -func TestBadCondition(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "drop_event": map[string]interface{}{ - "when": map[string]interface{}{ - "equal": map[string]string{ - "type": "process", - }, - }, - }, - }, - } - - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - if err != nil { - t.Fatal(err) - } - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) - assert.Error(t, err) -} - -func TestMissingFields(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "include_fields": map[string]interface{}{ - "when": map[string]interface{}{ - "equals": map[string]string{ - "type": "process", - }, - }, - }, - }, - } - - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) - assert.NotNil(t, err) -} - -func TestBadConditionConfig(t *testing.T) { - logp.TestingSetup() - - yml := []map[string]interface{}{ - { - "include_fields": map[string]interface{}{ - "when": map[string]interface{}{ - "fake": map[string]string{ - "type": "process", - }, - }, - "fields": []string{"proc.cpu.start_time", "proc.cpu.total_p", "proc.mem.rss_p", "proc.cmdline"}, - }, - }, - } - - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) - assert.NotNil(t, err) -} - -func TestDropMissingFields(t *testing.T) { - yml := []map[string]interface{}{ - { - "drop_fields": map[string]interface{}{ - "fields": []string{"foo.bar", "proc.cpu", "proc.sss", "beat", "mem"}, - }, - }, - } - - processors := GetProcessors(t, yml) - - event := &beat.Event{ - Timestamp: time.Now(), - Fields: common.MapStr{ - "beat": common.MapStr{ - "hostname": "mar", - "name": "my-shipper-1", - }, - - "proc": common.MapStr{ - "cpu": common.MapStr{ - "start_time": "Jan14", - "system": 26027, - "total": 79390, - "total_p": 0, - "user": 53363, - }, - "cmdline": "/sbin/launchd", - }, - "mem": common.MapStr{ - "rss": 11194368, - "rss_p": 0, - "share": 0, - "size": int64(2555572224), - }, - "type": "process", - }, - } - - processedEvent := processors.Run(event) - - expectedEvent := common.MapStr{ - "proc": common.MapStr{ - "cmdline": "/sbin/launchd", - }, - "type": "process", - } - - assert.Equal(t, expectedEvent, processedEvent.Fields) -} diff --git a/vendor/github.com/elastic/beats/libbeat/processors/registry.go b/vendor/github.com/elastic/beats/libbeat/processors/registry.go index 487c0909..ca5947fa 100644 --- a/vendor/github.com/elastic/beats/libbeat/processors/registry.go +++ b/vendor/github.com/elastic/beats/libbeat/processors/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 processors import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/event.go b/vendor/github.com/elastic/beats/libbeat/publisher/event.go index 4f5dbedd..dfcd930e 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/event.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 publisher import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/includes/includes.go b/vendor/github.com/elastic/beats/libbeat/publisher/includes/includes.go index 99b65e09..c66b307a 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/includes/includes.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/includes/includes.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 includes import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/acker.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/acker.go index 231d85e4..1d415567 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/acker.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/acker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/batch.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/batch.go index 8d5ffaef..7ce87bd7 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/batch.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/batch.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client.go index 313a7158..9901fa20 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client_ack.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client_ack.go index a9dfd6e7..123a1c6f 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client_ack.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/client_ack.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/config.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/config.go index 1c002cbb..0a0c2924 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/config.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( @@ -28,7 +45,7 @@ func validateClientConfig(c *beat.ClientConfig) error { case beat.DropIfFull: withDrop = true default: - return fmt.Errorf("unknown publishe mode %v", m) + return fmt.Errorf("unknown publish mode %v", m) } fnCount := 0 diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/consumer.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/consumer.go index 391824cf..cb1aec86 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/consumer.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/consumer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/controller.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/controller.go index 7595a0cd..303792ad 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/controller.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/controller.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/module.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/module.go index 6bcefa0a..4fb5282f 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/module.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/module.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( @@ -117,6 +134,10 @@ func loadOutput( monitoring.NewString(outReg, "type").Set(outcfg.Name()) } + stateRegistry := monitoring.GetNamespace("state").GetRegistry() + outputRegistry := stateRegistry.NewRegistry("output") + monitoring.NewString(outputRegistry, "name").Set(outcfg.Name()) + return out, nil } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/monitoring.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/monitoring.go index 8ba2ad37..4fbf3ff8 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/monitoring.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/monitoring.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import "github.com/elastic/beats/libbeat/monitoring" diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/output.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/output.go index 7995f8db..60ed3519 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/output.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/output.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( @@ -60,21 +77,33 @@ func (w *netClientWorker) Close() error { func (w *netClientWorker) run() { for !w.closed.Load() { + reconnectAttempts := 0 + // start initial connect loop from first batch, but return // batch to pipeline for other outputs to catch up while we're trying to connect for batch := range w.qu { batch.Cancelled() if w.closed.Load() { + logp.Info("Closed connection to %v", w.client) return } + if reconnectAttempts > 0 { + logp.Info("Attempting to reconnect to %v with %d reconnect attempt(s)", w.client, reconnectAttempts) + } else { + logp.Info("Connecting to %v", w.client) + } + err := w.client.Connect() if err != nil { - logp.Err("Failed to connect: %v", err) + logp.Err("Failed to connect to %v: %v", w.client, err) + reconnectAttempts++ continue } + logp.Info("Connection to %v established", w.client) + reconnectAttempts = 0 break } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go index 8ffa1911..ef727ebe 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline combines all publisher functionality (processors, queue, // outputs) to create instances of complete publisher pipelines, beats can // connect to publish events to. @@ -22,7 +39,7 @@ import ( // Pipeline implementation providint all beats publisher functionality. // The pipeline consists of clients, processors, a central queue, an output // controller and the actual outputs. -// The queue implementing the queue.Queue interface is the most entral entity +// The queue implementing the queue.Queue interface is the most central entity // to the pipeline, providing support for pushung, batching and pulling events. // The pipeline adds different ACKing strategies and wait close support on top // of the queue. For handling ACKs, the pipeline keeps track of filtered out events, diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline_ack.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline_ack.go index 1fd39f41..b9be8c42 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline_ack.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/pipeline_ack.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( @@ -232,7 +249,7 @@ func (p *pipelineEventCB) worker() { return } - // short circuite dropped events, but have client block until all events + // short circuit dropped events, but have client block until all events // have been processed by pipeline ack handler case msg := <-p.droppedEvents: p.reportEventsData(msg.data, msg.total) diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/processor.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/processor.go index 5f058cdd..e2dcb7c7 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/processor.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/processor.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( @@ -278,7 +295,7 @@ func debugPrintProcessor(info beat.Info) *processorFn { // beat.Client is shared between multiple go-routines by accident) var mux sync.Mutex - encoder := json.New(true, info.Version) + encoder := json.New(true, false, info.Version) return newProcessor("debugPrint", func(event *beat.Event) (*beat.Event, error) { mux.Lock() defer mux.Unlock() diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/processor_test.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/processor_test.go deleted file mode 100644 index 3666e852..00000000 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/processor_test.go +++ /dev/null @@ -1,338 +0,0 @@ -package pipeline - -import ( - "sync" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -func TestProcessors(t *testing.T) { - info := beat.Info{} - - type local struct { - config beat.ClientConfig - events []common.MapStr - expected []common.MapStr - } - - tests := []struct { - name string - global pipelineProcessors - local []local - }{ - { - "user global fields and tags", - pipelineProcessors{ - fields: common.MapStr{"global": 1}, - tags: []string{"tag"}, - }, - []local{ - { - config: beat.ClientConfig{}, - events: []common.MapStr{{"value": "abc", "user": nil}}, - expected: []common.MapStr{ - {"value": "abc", "global": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - "no normalization", - pipelineProcessors{ - fields: common.MapStr{"global": 1}, - tags: []string{"tag"}, - }, - []local{ - { - config: beat.ClientConfig{SkipNormalization: true}, - events: []common.MapStr{{"value": "abc", "user": nil}}, - expected: []common.MapStr{ - {"value": "abc", "user": nil, "global": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - "beat local fields", - pipelineProcessors{}, - []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "local": 1}}, - }, - }, - }, - { - "beat local and user global fields", - pipelineProcessors{ - fields: common.MapStr{"global": 1}, - tags: []string{"tag"}, - }, - []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "local": 1, "global": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - "user global fields overwrite beat local fields", - pipelineProcessors{ - fields: common.MapStr{"global": 1, "shared": "global"}, - tags: []string{"tag"}, - }, - []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1, "shared": "local"}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "local": 1, "global": 1, "shared": "global", "tags": []string{"tag"}}, - }, - }, - }, - }, - { - "beat local fields isolated", - pipelineProcessors{}, - []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "local": 1}}, - }, - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 2}, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "local": 2}}, - }, - }, - }, - - { - "beat local fields + user global fields isolated", - pipelineProcessors{ - fields: common.MapStr{"global": 0}, - }, - []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "global": 0, "local": 1}}, - }, - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 2}, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "global": 0, "local": 2}}, - }, - }, - }, - { - "user local fields and tags", - pipelineProcessors{}, - []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - Tags: []string{"tag"}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "fields": common.MapStr{"local": 1}, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - "user local fields (under root) and tags", - pipelineProcessors{}, - []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - FieldsUnderRoot: true, - Tags: []string{"tag"}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "local": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - "user local fields overwrite user global fields", - pipelineProcessors{ - fields: common.MapStr{"global": 0, "shared": "global"}, - tags: []string{"global"}, - }, - []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1, "shared": "local"}, - FieldsUnderRoot: true, - Tags: []string{"local"}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - { - "value": "abc", - "global": 0, "local": 1, "shared": "local", - "tags": []string{"global", "local"}, - }, - }, - }, - }, - }, - { - "user local fields isolated", - pipelineProcessors{}, - []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "fields": common.MapStr{"local": 1}}}, - }, - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 2}, - }, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "fields": common.MapStr{"local": 2}}}, - }, - }, - }, - { - "user local + global fields isolated", - pipelineProcessors{ - fields: common.MapStr{"fields": common.MapStr{"global": 0}}, - }, - []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "fields": common.MapStr{"global": 0, "local": 1}}}, - }, - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 2}, - }, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "fields": common.MapStr{"global": 0, "local": 2}}}, - }, - }, - }, - { - "user local + global fields isolated (fields with root)", - pipelineProcessors{ - fields: common.MapStr{"global": 0}, - }, - []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - FieldsUnderRoot: true, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "global": 0, "local": 1}}, - }, - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 2}, - FieldsUnderRoot: true, - }, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "global": 0, "local": 2}}, - }, - }, - }, - } - - for _, test := range tests { - test := test - t.Run(test.name, func(t *testing.T) { - // create processor pipelines - programs := make([]beat.Processor, len(test.local)) - for i, local := range test.local { - programs[i] = newProcessorPipeline(info, test.global, local.config) - } - - // run processor pipelines in parallel - var ( - wg sync.WaitGroup - mux sync.Mutex - results = make([][]common.MapStr, len(programs)) - ) - for id, local := range test.local { - wg.Add(1) - id, program, local := id, programs[id], local - go func() { - defer wg.Done() - - actual := make([]common.MapStr, len(local.events)) - for i, event := range local.events { - out, _ := program.Run(&beat.Event{ - Timestamp: time.Now(), - Fields: event, - }) - actual[i] = out.Fields - } - - mux.Lock() - defer mux.Unlock() - results[id] = actual - }() - } - wg.Wait() - - // validate - for i, local := range test.local { - assert.Equal(t, local.expected, results[i]) - } - }) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/retry.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/retry.go index d2a40b0f..250713b0 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/retry.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/retry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/gen.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/gen.go index e3c7bd30..d33049bc 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/gen.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/gen.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stress import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/out.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/out.go index 1b4ff6b6..5bc72ed3 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/out.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/out.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stress import ( @@ -89,3 +106,7 @@ func (t *testOutput) Publish(batch publisher.Batch) error { return nil } + +func (t *testOutput) String() string { + return "test" +} diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/run.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/run.go index 27125a9d..3a71f889 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/run.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/run.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stress import ( @@ -43,7 +60,7 @@ func RunTests( // reg := monitoring.NewRegistry() pipeline, err := pipeline.Load(info, nil, config.Pipeline, config.Output) if err != nil { - return fmt.Errorf("loading pipeline failed: %v", err) + return fmt.Errorf("loading pipeline failed: %+v", err) } defer func() { logp.Info("Stop pipeline") diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/sig.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/sig.go index 61643a5d..913e4b7a 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/sig.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/sig.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stress import "github.com/elastic/beats/libbeat/common/atomic" diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/stress_test.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/stress_test.go deleted file mode 100644 index 93f30214..00000000 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/stress/stress_test.go +++ /dev/null @@ -1,118 +0,0 @@ -// +build stresstest - -package stress_test - -import ( - "flag" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "strings" - "testing" - "time" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - - // import queue types - "github.com/elastic/beats/libbeat/publisher/pipeline/stress" - _ "github.com/elastic/beats/libbeat/publisher/queue/memqueue" - _ "github.com/elastic/beats/libbeat/publisher/queue/spool" -) - -// additional flags -var ( - duration time.Duration // -duration -) - -func init() { - flag.DurationVar(&duration, "duration", 0, "configure max run duration") -} - -func TestPipeline(t *testing.T) { - genConfigs := collectConfigs(t, "configs/gen/*.yml") - pipelineConfigs := collectConfigs(t, "configs/pipeline/*.yml") - outConfigs := collectConfigs(t, "configs/out/*.yml") - - info := beat.Info{ - Beat: "stresser", - Version: "0", - Name: "stresser.test", - Hostname: "stresser.test", - } - - if duration == 0 { - duration = 15 * time.Second - } - - configTest(t, "gen", genConfigs, func(t *testing.T, gen string) { - configTest(t, "pipeline", pipelineConfigs, func(t *testing.T, pipeline string) { - configTest(t, "out", outConfigs, func(t *testing.T, out string) { - - if testing.Verbose() { - start := time.Now() - fmt.Printf("%v Start stress test %v\n", start.Format(time.RFC3339), t.Name()) - defer func() { - end := time.Now() - fmt.Printf("%v Finished stress test %v. Duration=%v\n", end.Format(time.RFC3339), t.Name(), end.Sub(start)) - }() - } - - config, err := common.LoadFiles(gen, pipeline, out) - if err != nil { - t.Fatal(err) - } - - name := t.Name() - name = strings.Replace(name, "/", "-", -1) - name = strings.Replace(name, "\\", "-", -1) - - dir, err := ioutil.TempDir("", "") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - // Merge test info into config object - config.Merge(map[string]interface{}{ - "test": map[string]interface{}{ - "tmpdir": dir, - "name": name, - }, - }) - - // check if the pipeline configuration allows for parallel tests - onErr := func(err error) { - t.Error(err) - } - - if err := stress.RunTests(info, duration, config, onErr); err != nil { - t.Error("Test failed with:", err) - } - }) - }) - }) -} - -func configTest(t *testing.T, typ string, configs []string, fn func(t *testing.T, config string)) { - for _, config := range configs { - config := config - t.Run(testName(typ, config), func(t *testing.T) { - t.Parallel() - fn(t, config) - }) - } -} - -func collectConfigs(t *testing.T, pattern string) []string { - files, err := filepath.Glob(pattern) - if err != nil { - t.Fatal(err) - } - return files -} - -func testName(typ, path string) string { - return fmt.Sprintf("%v=%v", typ, filepath.Base(path[:len(path)-4])) -} diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/util.go b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/util.go index 8b9949e4..db656f4a 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/util.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/pipeline/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pipeline import "sync" diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ackloop.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ackloop.go index 21af8bf9..5c79dab3 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ackloop.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ackloop.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue // ackLoop implements the brokers asynchronous ACK worker. @@ -32,7 +49,7 @@ func (l *ackLoop) run() { // Buffer up acked event counter in acked. If acked > 0, acks will be set to // the broker.acks channel for sending the ACKs while potentially receiving // new batches from the broker event loop. - // This concurrent bidirectionaly communication pattern requiring 'select' + // This concurrent bidirectionally communication pattern requiring 'select' // ensures we can not have any deadlock between the event loop and the ack // loop, as the ack loop will not block on any channel acked int diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/batchbuf.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/batchbuf.go index 41ff0e20..d84c8717 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/batchbuf.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/batchbuf.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import "github.com/elastic/beats/libbeat/publisher" diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/broker.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/broker.go index 4f02e38a..66bf1621 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/broker.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/broker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import ( @@ -5,10 +22,14 @@ import ( "time" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/feature" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/publisher/queue" ) +// Feature exposes a memory queue. +var Feature = queue.Feature("mem", create, feature.Stable) + type Broker struct { done chan struct{} @@ -80,7 +101,7 @@ func create(eventer queue.Eventer, cfg *common.Config) (queue.Queue, error) { func NewBroker( settings Settings, ) *Broker { - // define internal channel size for procuder/client requests + // define internal channel size for producer/client requests // to the broker chanSize := 20 diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/buf.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/buf.go index b180473a..bca06d9b 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/buf.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/buf.go @@ -1 +1,18 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/config.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/config.go index 54da7aeb..a86db9c1 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/config.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/consume.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/consume.go index 3f1f75c8..013642ea 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/consume.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/consume.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/doc.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/doc.go index 159c2ba7..333fe04b 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/doc.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue provides an in-memory queue.Queue implementation for // use with the publisher pipeline. // The queue implementation is registered as queue type "mem". diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/eventloop.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/eventloop.go index e3f6a529..79769da5 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/eventloop.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/eventloop.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import ( @@ -87,7 +104,7 @@ func (l *directEventLoop) run() { case req := <-l.events: // producer pushing new event l.handleInsert(&req) - case req := <-l.pubCancel: // producer cancellig active events + case req := <-l.pubCancel: // producer cancelling active events l.handleCancel(&req) case req := <-l.get: // consumer asking for next batch diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/internal_api.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/internal_api.go index 13d7bbd6..c73260c2 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/internal_api.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/internal_api.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import "github.com/elastic/beats/libbeat/publisher" diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/log.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/log.go index 8d17b56d..b85c2a0f 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/log.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/log.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue type logger interface { diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/produce.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/produce.go index a10a2e7e..1409ea99 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/produce.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/produce.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import ( @@ -7,7 +24,7 @@ import ( "github.com/elastic/beats/libbeat/publisher/queue" ) -type forgetfullProducer struct { +type forgetfulProducer struct { broker *Broker openState openState } @@ -50,22 +67,22 @@ func newProducer(b *Broker, cb ackHandler, dropCB func(beat.Event), dropOnCancel p.state.dropCB = dropCB return p } - return &forgetfullProducer{broker: b, openState: openState} + return &forgetfulProducer{broker: b, openState: openState} } -func (p *forgetfullProducer) Publish(event publisher.Event) bool { +func (p *forgetfulProducer) Publish(event publisher.Event) bool { return p.openState.publish(p.makeRequest(event)) } -func (p *forgetfullProducer) TryPublish(event publisher.Event) bool { +func (p *forgetfulProducer) TryPublish(event publisher.Event) bool { return p.openState.tryPublish(p.makeRequest(event)) } -func (p *forgetfullProducer) makeRequest(event publisher.Event) pushRequest { +func (p *forgetfulProducer) makeRequest(event publisher.Event) pushRequest { return pushRequest{event: event} } -func (p *forgetfullProducer) Cancel() int { +func (p *forgetfulProducer) Cancel() int { p.openState.Close() return 0 } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/queue_test.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/queue_test.go deleted file mode 100644 index cea01228..00000000 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/queue_test.go +++ /dev/null @@ -1,65 +0,0 @@ -package memqueue - -import ( - "flag" - "math/rand" - "testing" - "time" - - "github.com/elastic/beats/libbeat/publisher/queue" - "github.com/elastic/beats/libbeat/publisher/queue/queuetest" -) - -var seed int64 - -func init() { - flag.Int64Var(&seed, "seed", time.Now().UnixNano(), "test random seed") -} - -func TestProduceConsumer(t *testing.T) { - maxEvents := 1024 - minEvents := 32 - - rand.Seed(seed) - events := rand.Intn(maxEvents-minEvents) + minEvents - batchSize := rand.Intn(events-8) + 4 - bufferSize := rand.Intn(batchSize*2) + 4 - - // events := 4 - // batchSize := 1 - // bufferSize := 2 - - t.Log("seed: ", seed) - t.Log("events: ", events) - t.Log("batchSize: ", batchSize) - t.Log("bufferSize: ", bufferSize) - - testWith := func(factory queuetest.QueueFactory) func(t *testing.T) { - return func(t *testing.T) { - t.Run("single", func(t *testing.T) { - queuetest.TestSingleProducerConsumer(t, events, batchSize, factory) - }) - t.Run("multi", func(t *testing.T) { - queuetest.TestMultiProducerConsumer(t, events, batchSize, factory) - }) - } - } - - t.Run("direct", testWith(makeTestQueue(bufferSize, 0, 0))) - t.Run("flush", testWith(makeTestQueue(bufferSize, batchSize/2, 100*time.Millisecond))) -} - -func TestProducerCancelRemovesEvents(t *testing.T) { - queuetest.TestProducerCancelRemovesEvents(t, makeTestQueue(1024, 0, 0)) -} - -func makeTestQueue(sz, minEvents int, flushTimeout time.Duration) queuetest.QueueFactory { - return func(_ *testing.T) queue.Queue { - return NewBroker(Settings{ - Events: sz, - FlushMinEvents: minEvents, - FlushTimeout: flushTimeout, - WaitOnClose: true, - }) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ringbuf.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ringbuf.go index 5f8b9903..24af319c 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ringbuf.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/memqueue/ringbuf.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memqueue import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue.go index a7da768f..201af049 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queue import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue_reg.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue_reg.go index b445c642..0bc0ca3e 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue_reg.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queue_reg.go @@ -1,38 +1,54 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queue import ( - "fmt" - - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/feature" ) +// Namespace is the feature namespace for queue definition. +var Namespace = "libbeat.queue" + // Global queue type registry for configuring and loading a queue instance // via common.Config var queueReg = map[string]Factory{} // RegisterType registers a new queue type. -func RegisterType(name string, f Factory) { - if queueReg[name] != nil { - panic(fmt.Errorf("queue type '%v' exists already", name)) - } - queueReg[name] = f +func RegisterType(name string, fn Factory) { + f := feature.New(Namespace, name, fn, feature.Undefined) + feature.MustRegister(f) } // FindFactory retrieves a queue types constructor. Returns nil if queue type is unknown func FindFactory(name string) Factory { - return queueReg[name] -} - -// Load instantiates a new queue. -func Load(eventer Eventer, config common.ConfigNamespace) (Queue, error) { - t, cfg := config.Name(), config.Config() - if t == "" { - t = "mem" + f, err := feature.Registry.Lookup(Namespace, name) + if err != nil { + return nil } - - factory := FindFactory(t) - if factory == nil { - return nil, fmt.Errorf("queue type %v undefined", t) + factory, ok := f.Factory().(Factory) + if !ok { + return nil } - return factory(eventer, cfg) + + return factory +} + +// Feature creates a new type of queue. +func Feature(name string, factory Factory, stability feature.Stability) *feature.Feature { + return feature.New(Namespace, name, factory, stability) } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/doc.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/doc.go index 9ed1958e..29a53512 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/doc.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queuetest provides common functionality tests all queue implementations // must pass. These tests guarantee a queue fits well into the publisher pipeline. package queuetest diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/event.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/event.go index 4cffd6b3..ff30f960 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/event.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queuetest import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/log.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/log.go index 8b8c6bb4..32cab97c 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/log.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/log.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queuetest import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/producer_cancel.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/producer_cancel.go index 8633201c..19e5c81a 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/producer_cancel.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/producer_cancel.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queuetest import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/queuetest.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/queuetest.go index 835da001..d08d0ecb 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/queuetest.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/queuetest/queuetest.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queuetest import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/codec.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/codec.go index 051ae656..db0a3542 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/codec.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/codec.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/config.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/config.go index 48d56957..acff07f7 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/config.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/consume.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/consume.go index 5e543fc2..a8f55775 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/consume.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/consume.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/inbroker.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/inbroker.go index a3fcc8d3..98354149 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/inbroker.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/inbroker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( @@ -27,6 +44,7 @@ type inBroker struct { // queue state queue *pq.Queue + writer *pq.Writer clientStates clientStates // Event contents, that still needs to be send to the queue. An event is @@ -66,6 +84,11 @@ func newInBroker( return nil, err } + writer, err := qu.Writer() + if err != nil { + return nil, err + } + b := &inBroker{ ctx: ctx, eventer: eventer, @@ -80,6 +103,7 @@ func newInBroker( // queue state queue: qu, + writer: writer, clientStates: clientStates{}, pending: nil, bufferedEvents: 0, @@ -197,6 +221,7 @@ func (b *inBroker) eventLoop() { // notify ackLoop to stop only after eventLoop has finished (after last flush) defer close(b.ackDone) + defer b.eventloopShutdown() for { ok := b.state(b) @@ -204,23 +229,24 @@ func (b *inBroker) eventLoop() { break } } +} +func (b *inBroker) eventloopShutdown() { // try to flush events/buffers on shutdown. if b.bufferedEvents == 0 { return } - // try to append pending events + // Try to flush pending events. + w := b.writer for len(b.pending) > 0 { - n, err := b.queue.Writer().Write(b.pending) + n, err := w.Write(b.pending) b.pending = b.pending[n:] if err != nil { return } } - - // final flush - b.queue.Writer().Flush() + w.Flush() } // stateEmpty is the brokers active state if the write buffer is empty and the @@ -393,8 +419,8 @@ func (b *inBroker) stateWithTimer() bool { // ignored in the future. // // stateBlocked transitions: -// -> stateEmpty if flush was successfull and write buffer is empty -// -> stateWithTimer if flush was successfull, but we still have some pending events +// -> stateEmpty if flush was successful and write buffer is empty +// -> stateWithTimer if flush was successful, but we still have some pending events // -> stateBlocked if flush failed (still not enough space) func (b *inBroker) stateBlocked() bool { log := b.ctx.logger @@ -425,7 +451,7 @@ func (b *inBroker) stateBlocked() bool { b.pending = nil err := b.writeEvent(tmp) if err != nil || len(b.pending) > 0 { - log.Debug("writing pending event failed: ", err) + log.Debugf("writing pending event failed: %+v", err) break } } @@ -486,7 +512,7 @@ func (b *inBroker) addEvent(buf []byte, st clientState) error { log.Debug(" add event -> active:", count) err := b.writeEvent(buf) - log.Debug(" inbroker write ->", err, b.bufferedEvents) + log.Debugf(" inbroker write -> events=%v, err=%+v ", b.bufferedEvents, err) return err } @@ -495,28 +521,27 @@ func (b *inBroker) writeEvent(buf []byte) error { log := b.ctx.logger // append event to queue - queueWriter := b.queue.Writer() - n, err := queueWriter.Write(buf) + w := b.writer + n, err := w.Write(buf) buf = buf[n:] if len(buf) > 0 { b.pending = buf } else if err == nil { log.Debug("writer: finalize event in buffer") - err = queueWriter.Next() + err = w.Next() } if err != nil { - log := b.ctx.logger - log.Debugf("appending event content to write buffer failed with %v", err) + log.Debugf("Appending event content to write buffer failed with %+v", err) } return err } func (b *inBroker) flushBuffer() error { - err := b.queue.Writer().Flush() + err := b.writer.Flush() if err != nil { log := b.ctx.logger - log.Debugf("spool flush failed with: %v", err) + log.Errorf("Spool flush failed with: %+v", err) } return err } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/internal_api.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/internal_api.go index 28a1a99a..e4a38b31 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/internal_api.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/internal_api.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/log.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/log.go index 5dd17048..f85bc035 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/log.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/log.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/module.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/module.go index 78930f8b..912417c0 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/module.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/module.go @@ -1,13 +1,34 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/feature" "github.com/elastic/beats/libbeat/paths" "github.com/elastic/beats/libbeat/publisher/queue" "github.com/elastic/go-txfile" ) +// Feature exposes a spooling to disk queue. +var Feature = queue.Feature("spool", create, feature.Beta) + func init() { queue.RegisterType("spool", create) } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/outbroker.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/outbroker.go index cc4d74fe..f2fb878e 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/outbroker.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/outbroker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( @@ -24,6 +41,7 @@ type outBroker struct { // queue state queue *pq.Queue + reader *pq.Reader available uint // number of available events. getRequests are only accepted if available > 0 events []publisher.Event required int @@ -64,6 +82,12 @@ var ackChanPool = sync.Pool{ var errRetry = errors.New("retry") func newOutBroker(ctx *spoolCtx, qu *pq.Queue, flushTimeout time.Duration) (*outBroker, error) { + reader := qu.Reader() + avail, err := reader.Available() + if err != nil { + return nil, err + } + b := &outBroker{ ctx: ctx, state: nil, @@ -79,7 +103,8 @@ func newOutBroker(ctx *spoolCtx, qu *pq.Queue, flushTimeout time.Duration) (*out // queue state queue: qu, - available: qu.Reader().Available(), + reader: reader, + available: avail, events: nil, required: 0, total: 0, @@ -140,7 +165,7 @@ func (b *outBroker) ackLoop() { log.Debugf("receive ACK of %v events\n", ackCh.total) err := b.queue.ACK(uint(ackCh.total)) if err != nil { - log.Debug("ack failed with:", err) + log.Debugf("ack failed with: %+v", err) time.Sleep(1 * time.Second) continue } @@ -407,7 +432,14 @@ func (b *outBroker) collectEvents( N int, ) ([]publisher.Event, int, error) { log := b.ctx.logger - reader := b.queue.Reader() + reader := b.reader + + // ensure all read operations happen within same transaction + err := reader.Begin() + if err != nil { + return nil, 0, err + } + defer reader.Done() count := 0 for N > 0 { diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/produce.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/produce.go index 839dac06..fb2efb8d 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/produce.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/produce.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( @@ -9,9 +26,9 @@ import ( "github.com/elastic/beats/libbeat/publisher/queue" ) -// forgetfullProducer forwards event to the inBroker. The forgetfullProducer +// forgetfulProducer forwards event to the inBroker. The forgetfulProducer // provides no event ACK handling and no callbacks. -type forgetfullProducer struct { +type forgetfulProducer struct { openState openState } @@ -72,7 +89,7 @@ func newProducer( } if ackCB == nil { - return &forgetfullProducer{openState: openState} + return &forgetfulProducer{openState: openState} } p := &ackProducer{ @@ -86,19 +103,19 @@ func newProducer( return p } -func (p *forgetfullProducer) Publish(event publisher.Event) bool { +func (p *forgetfulProducer) Publish(event publisher.Event) bool { return p.openState.publish(p.makeRequest(event)) } -func (p *forgetfullProducer) TryPublish(event publisher.Event) bool { +func (p *forgetfulProducer) TryPublish(event publisher.Event) bool { return p.openState.tryPublish(p.makeRequest(event)) } -func (p *forgetfullProducer) makeRequest(event publisher.Event) pushRequest { +func (p *forgetfulProducer) makeRequest(event publisher.Event) pushRequest { return pushRequest{event: event} } -func (p *forgetfullProducer) Cancel() int { +func (p *forgetfulProducer) Cancel() int { p.openState.Close() return 0 } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/spool.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/spool.go index 222b9034..fe3d260a 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/spool.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/spool.go @@ -1,8 +1,26 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( "fmt" "os" + "runtime" "sync" "time" @@ -75,14 +93,14 @@ func NewSpool(logger logger, path string, settings Settings) (*Spool, error) { if !os.IsNotExist(err) { return nil, err } - } else { + } else if runtime.GOOS != "windows" { perm := info.Mode().Perm() cfgPerm := settings.Mode.Perm() // check if file has permissions set, that must not be set via config if (perm | cfgPerm) != cfgPerm { - return nil, fmt.Errorf("file permissions must be more strict (required permissions: %v, actual permissions: %v)", - cfgPerm, perm) + return nil, fmt.Errorf("file permissions for '%v' must be more strict (required permissions: %v, actual permissions: %v)", + path, cfgPerm, perm) } } diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/spool_test.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/spool_test.go deleted file mode 100644 index c661e0e8..00000000 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/spool_test.go +++ /dev/null @@ -1,130 +0,0 @@ -package spool - -import ( - "flag" - "fmt" - "math/rand" - "testing" - "time" - - humanize "github.com/dustin/go-humanize" - - "github.com/elastic/beats/libbeat/publisher/queue" - "github.com/elastic/beats/libbeat/publisher/queue/queuetest" - "github.com/elastic/go-txfile" - "github.com/elastic/go-txfile/txfiletest" -) - -var seed int64 -var debug bool - -type testQueue struct { - *Spool - teardown func() -} - -type testLogger struct { - t *testing.T -} - -func init() { - flag.Int64Var(&seed, "seed", time.Now().UnixNano(), "test random seed") - flag.BoolVar(&debug, "noisy", false, "print test logs to console") -} - -func TestProduceConsumer(t *testing.T) { - maxEvents := 4096 - minEvents := 32 - - rand.Seed(seed) - events := rand.Intn(maxEvents-minEvents) + minEvents - batchSize := rand.Intn(events-8) + 4 - - t.Log("seed: ", seed) - t.Log("events: ", events) - t.Log("batchSize: ", batchSize) - - testWith := func(factory queuetest.QueueFactory) func(t *testing.T) { - return func(test *testing.T) { - t.Run("single", func(t *testing.T) { - queuetest.TestSingleProducerConsumer(t, events, batchSize, factory) - }) - t.Run("multi", func(t *testing.T) { - queuetest.TestMultiProducerConsumer(t, events, batchSize, factory) - }) - } - } - - testWith(makeTestQueue( - 128*humanize.KiByte, 4*humanize.KiByte, 16*humanize.KiByte, - 100*time.Millisecond, - ))(t) -} - -func makeTestQueue( - maxSize, pageSize, writeBuffer uint, - flushTimeout time.Duration, -) func(*testing.T) queue.Queue { - return func(t *testing.T) queue.Queue { - if debug { - fmt.Println("Test:", t.Name()) - } - - ok := false - path, cleanPath := txfiletest.SetupPath(t, "") - defer func() { - if !ok { - cleanPath() - } - }() - - spool, err := NewSpool(&testLogger{t}, path, Settings{ - WriteBuffer: writeBuffer, - WriteFlushTimeout: flushTimeout, - Codec: codecCBORL, - File: txfile.Options{ - MaxSize: uint64(maxSize), - PageSize: uint32(pageSize), - Prealloc: true, - Readonly: false, - }, - }) - if err != nil { - t.Fatal(err) - } - - tq := &testQueue{Spool: spool, teardown: cleanPath} - return tq - } -} - -func (t *testQueue) Close() error { - err := t.Spool.Close() - t.teardown() - return err -} - -func (l *testLogger) Debug(vs ...interface{}) { l.report("Debug", vs) } -func (l *testLogger) Debugf(fmt string, vs ...interface{}) { l.reportf("Debug: ", fmt, vs) } - -func (l *testLogger) Info(vs ...interface{}) { l.report("Info", vs) } -func (l *testLogger) Infof(fmt string, vs ...interface{}) { l.reportf("Info", fmt, vs) } - -func (l *testLogger) Error(vs ...interface{}) { l.report("Error", vs) } -func (l *testLogger) Errorf(fmt string, vs ...interface{}) { l.reportf("Error", fmt, vs) } - -func (l *testLogger) report(level string, vs []interface{}) { - args := append([]interface{}{level, ":"}, vs...) - l.t.Log(args...) - if debug { - fmt.Println(args...) - } -} - -func (l *testLogger) reportf(level string, str string, vs []interface{}) { - str = level + ": " + str - l.t.Logf(str, vs...) - if debug { - fmt.Printf(str, vs...) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/timer.go b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/timer.go index 8c4650b5..9f08dcfc 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/timer.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/queue/spool/timer.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 spool import ( diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing.go b/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing.go index 3eb7c1ce..87a1ac2c 100644 --- a/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing.go +++ b/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 testing // ChanClient implements Client interface, forwarding published events to some diff --git a/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing_test.go b/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing_test.go deleted file mode 100644 index e340715d..00000000 --- a/vendor/github.com/elastic/beats/libbeat/publisher/testing/testing_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package testing - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" -) - -var cnt = 0 - -func testEvent() beat.Event { - event := beat.Event{ - Fields: common.MapStr{ - "message": "test", - "idx": cnt, - }, - } - cnt++ - return event -} - -// Test that ChanClient writes an event to its Channel. -func TestChanClientPublishEvent(t *testing.T) { - cc := NewChanClient(1) - e1 := testEvent() - cc.Publish(e1) - assert.Equal(t, e1, cc.ReceiveEvent()) -} - -// Test that ChanClient write events to its Channel. -func TestChanClientPublishEvents(t *testing.T) { - cc := NewChanClient(1) - - e1, e2 := testEvent(), testEvent() - go cc.PublishAll([]beat.Event{e1, e2}) - assert.Equal(t, e1, cc.ReceiveEvent()) - assert.Equal(t, e2, cc.ReceiveEvent()) -} diff --git a/vendor/github.com/elastic/beats/libbeat/scripts/Makefile b/vendor/github.com/elastic/beats/libbeat/scripts/Makefile index d8a412a6..3e0f763e 100755 --- a/vendor/github.com/elastic/beats/libbeat/scripts/Makefile +++ b/vendor/github.com/elastic/beats/libbeat/scripts/Makefile @@ -2,7 +2,6 @@ ### Application using libbeat may override the following variables in their Makefile BEAT_NAME?=libbeat## @packaging Name of the binary BEAT_TITLE?=${BEAT_NAME}## @packaging Title of the application -BEAT_DESCRIPTION?=Sends events to Elasticsearch or Logstash ## @packaging Description of the application BEAT_PATH?=github.com/elastic/beats/${BEAT_NAME} BEAT_PACKAGE_NAME?=${BEAT_NAME} BEAT_INDEX_PREFIX?=${BEAT_NAME} @@ -14,13 +13,16 @@ BEAT_GOPATH=$(firstword $(subst :, ,${GOPATH})) BEAT_REF_YAML?=true ES_BEATS?=..## @community_beat Must be set to ./vendor/github.com/elastic/beats. It must always be a relative path. GOPACKAGES?=$(shell go list ${BEAT_PATH}/... | grep -v /vendor/ | grep -v /scripts/cmd/ ) -PACKER_TEMPLATES_DIR?=${ES_BEATS}/dev-tools/packer ## @Building Directory of templates that are used by "make package" +PACKER_TEMPLATES_DIR?=${ES_BEATS}/dev-tools/packer ## @Building Directory of templates that are used by "make release" NOTICE_FILE?=../NOTICE.txt LICENSE_FILE?=../licenses/APACHE-LICENSE-2.0.txt ELASTIC_LICENSE_FILE?=../licenses/ELASTIC-LICENSE.txt SECCOMP_BINARY?=${BEAT_NAME} SECCOMP_BLACKLIST?=${ES_BEATS}/libbeat/common/seccomp/seccomp-profiler-blacklist.txt SECCOMP_ALLOWLIST?=${ES_BEATS}/libbeat/common/seccomp/seccomp-profiler-allow.txt +MAGE_PRESENT := $(shell command -v mage 2> /dev/null) +MAGE_IMPORT_PATH?=github.com/elastic/beats/vendor/github.com/magefile/mage +export MAGE_IMPORT_PATH space:=$() # comma:=, @@ -81,16 +83,6 @@ INTEGRATION_TESTS?= FIND=. ${PYTHON_ENV}/bin/activate; find . -type f -not -path "*/vendor/*" -not -path "*/build/*" -not -path "*/.git/*" PERM_EXEC?=$(shell [ `uname -s` = "Darwin" ] && echo "+111" || echo "/a+x") -# Cross compiling targets -CGO?=true ## @building if true, Build with C Go support -TARGETS?="windows/amd64 windows/386 darwin/amd64 linux/arm" ## @building list of platforms/architecture to be built by "make package" -TARGETS_OLD?="linux/amd64 linux/386" ## @building list of Debian6 architecture to be built by "make package" when CGO is true -PACKAGES?=${BEAT_NAME}/deb ${BEAT_NAME}/rpm ${BEAT_NAME}/darwin ${BEAT_NAME}/win ${BEAT_NAME}/bin ## @Building List of OS to be supported by "make package" -PACKAGES_EXPERIMENTAL?=${BEAT_NAME}/arm ## @Building List of experimental OS by "make package". Only build when SNAPSHOT=yes -SNAPSHOT?=yes ## @Building If yes, builds a snapshot version -BEATS_BUILDER_IMAGE?=tudorg/beats-builder ## @Building Name of the docker image to use when packaging the application -BEATS_BUILDER_DEB_IMAGE?=tudorg/beats-builder-deb7 ## @Building Name of the docker image to use when packaging the application for Debian 7 - ifeq ($(DOCKER_CACHE),0) DOCKER_NOCACHE=--no-cache endif @@ -100,11 +92,6 @@ ifeq ($(RACE_DETECTOR),1) RACE=-race endif -# Only build experimental targets for snapshots -ifneq ($(SNAPSHOT),yes) - PACKAGES_EXPERIMENTAL= -endif - ### BUILDING ### @@ -124,19 +111,33 @@ crosscompile: $(GOFILES) gox -output="${BUILD_DIR}/bin/{{.Dir}}-{{.OS}}-{{.Arch}}" -os="$(strip $(GOX_OS))" -osarch="$(strip $(GOX_OSARCH))" ${GOX_FLAGS} .PHONY: check -check: python-env prepare-tests ## @build Checks project and source code if everything is according to standard +check: check-headers python-env prepare-tests ## @build Checks project and source code if everything is according to standard @go vet ${GOPACKAGES} @go get $(GOIMPORTS_REPO) @goimports -local ${GOIMPORTS_LOCAL_PREFIX} -l ${GOFILES_NOVENDOR} | (! grep .) || (echo "Code differs from goimports' style ^" && false) - @${FIND} -name *.py -exec autopep8 -d --max-line-length 120 {} \; | (! grep . -q) || (echo "Code differs from autopep8's style" && false) + @${FIND} -name '*.py' -exec autopep8 -d --max-line-length 120 {} \; | (! grep . -q) || (echo "Code differs from autopep8's style" && false) @${FIND} -wholename "*tests/system/test_*.py" -perm ${PERM_EXEC} -exec false {} + || (echo "Python test files shouldn't be executable, otherwise nose doesn't find them" && false) @${FIND} -name "*.yml" -perm ${PERM_EXEC} -exec false {} + || (echo "YAML files should not be executable" && false) +.PHONY: check-headers +check-headers: +ifndef CHECK_HEADERS_DISABLED + @go get github.com/elastic/go-licenser + @go-licenser -d +endif + +.PHONY: add-headers +add-headers: +ifndef CHECK_HEADERS_DISABLED + @go get github.com/elastic/go-licenser + @go-licenser +endif + .PHONY: fmt -fmt: python-env ## @build Runs `goimports -l -w` and `autopep8`on the project's source code, modifying any files that do not match its style. +fmt: add-headers python-env ## @build Runs `goimports -l -w` and `autopep8`on the project's source code, modifying any files that do not match its style. @go get $(GOIMPORTS_REPO) @goimports -local ${GOIMPORTS_LOCAL_PREFIX} -l -w ${GOFILES_NOVENDOR} - @${FIND} -name *.py -exec ${PYTHON_ENV}/bin/autopep8 --in-place --max-line-length 120 {} \; + @${FIND} -name '*.py' -exec ${PYTHON_ENV}/bin/autopep8 --in-place --max-line-length 120 {} \; .PHONY: lint lint: @@ -149,8 +150,9 @@ clean:: ## @build Cleans up all files generated by the build steps @rm -f docker-compose.yml.lock @rm -f ${BEAT_NAME} ${BEAT_NAME}.test ${BEAT_NAME}.exe ${BEAT_NAME}.test.exe @rm -f _meta/fields.generated.yml fields.yml - @rm -fr $(PWD)/_meta/kibana.generated + @rm -rf $(PWD)/_meta/kibana.generated @rm -f ${BEAT_NAME}.template*.json + @-mage -clean 2> /dev/null .PHONY: ci ci: ## @build Shortcut for continuous integration. This should always run before merging. @@ -161,7 +163,7 @@ ci: ## @build Shortcut for continuous integration. This should always run befor ### Testing ### # Unless stated otherwise, all tests are always run with coverage reporting enabled. -# Prepration for tests +# Preparation for tests .PHONY: prepare-tests prepare-tests: mkdir -p ${COVERAGE_DIR} @@ -304,10 +306,8 @@ coverage-report: .PHONY: fields -fields: - echo $(PWD) - @go run ${ES_BEATS}/libbeat/scripts/cmd/global_fields/main.go --es_beats_path $(ES_BEATS) --beat_path $(PWD) $(FIELDS_FILE_PATH) - +fields: mage + mage -v fields .PHONY: libbeat_fields libbeat_fields: @@ -333,7 +333,7 @@ ifeq ($(BEAT_REF_YAML),true) @chmod 0640 ${BEAT_NAME}.reference.yml endif -ifneq ($(BEAT_NAME), libbeat) +ifneq ($(shell [[ $(BEAT_NAME) == libbeat || $(BEAT_NAME) == metricbeat ]] && echo true ),true) mkdir -p include go run ${ES_BEATS}/dev-tools/cmd/asset/asset.go -pkg include fields.yml $(BEAT_NAME) > include/fields.go endif @@ -342,10 +342,13 @@ endif @mkdir -p docs @${PYTHON_ENV}/bin/python ${ES_BEATS}/libbeat/scripts/generate_fields_docs.py $(PWD) ${BEAT_TITLE} ${ES_BEATS} + @mkdir -p $(PWD)/_meta/kibana.generated @# Generate Kibana index pattern and copy dashboard files if [ -d $(PWD)/_meta/kibana ]; then \ - cp -r $(PWD)/_meta/kibana/ $(PWD)/_meta/kibana.generated; \ + cp -pr $(PWD)/_meta/kibana/* $(PWD)/_meta/kibana.generated ; \ fi + @# Convert all dashboards to string + @python ${ES_BEATS}/libbeat/scripts/unpack_dashboards.py --glob="./_meta/kibana.generated/6/dashboard/*.json" @mkdir -p $(PWD)/_meta/kibana.generated/5/index-pattern @mkdir -p $(PWD)/_meta/kibana.generated/6/index-pattern @go run ${ES_BEATS}/dev-tools/cmd/kibana_index_pattern/kibana_index_pattern.go -index '${BEAT_INDEX_PREFIX}-*' -beat-name ${BEAT_NAME} -beat-dir $(PWD) -version ${BEAT_VERSION} @@ -354,7 +357,6 @@ endif docs: ## @build Builds the documents for the beat sh ${ES_BEATS}/script/build_docs.sh ${BEAT_NAME} ${BEAT_PATH}/docs ${BUILD_DIR} - .PHONY: docs-preview docs-preview: ## @build Preview the documents for the beat in the browser PREVIEW=1 $(MAKE) docs @@ -401,152 +403,6 @@ write-environment: env-logs: ${DOCKER_COMPOSE} logs -f - -### Packaging targets #### - -# Installs the files that need to get to the home path on installations -HOME_PREFIX?=/tmp/${BEAT_NAME} -.PHONY: install-home -install-home: - if [ -a ${NOTICE_FILE} ]; then \ - install -m 644 ${NOTICE_FILE} ${HOME_PREFIX}/; \ - fi - if [ -a ${LICENSE_FILE} ]; then \ - install -m 644 ${LICENSE_FILE} ${HOME_PREFIX}/LICENSE.txt; \ - fi - if [ -d _meta/module.generated ]; then \ - install -d -m 755 ${HOME_PREFIX}/module; \ - rsync -av _meta/module.generated/ ${HOME_PREFIX}/module/; \ - chmod -R go-w ${HOME_PREFIX}/module/; \ - fi - if [ -d _meta/kibana.generated ]; then \ - install -d -m 755 ${HOME_PREFIX}/kibana; \ - rsync -av _meta/kibana.generated/ ${HOME_PREFIX}/kibana/; \ - fi - -# Prepares for packaging. Builds binaries and creates homedir data -.PHONY: prepare-package -prepare-package: - # cross compile on ubuntu - docker run --rm \ - -v $(abspath ${ES_BEATS}/dev-tools/packer/xgo-scripts):/scripts \ - -v $(abspath ${PACKER_TEMPLATES_DIR}):/templates \ - -v $(abspath ../):/source \ - -v $(PKG_BUILD_DIR):/build \ - -e PUREGO="yes" \ - -e PACK=${BEAT_NAME} \ - -e BEFORE_BUILD=before_build.sh \ - -e SOURCE=/source \ - -e TARGETS=${TARGETS} \ - -e BUILDID=${BUILDID} \ - -e ES_BEATS=${ES_BEATS} \ - -e BEAT_PATH=${BEAT_PATH} \ - -e BEAT_NAME=${BEAT_NAME} \ - -e LICENSE_FILE=${LICENSE_FILE} \ - -e BEAT_REF_YAML=${BEAT_REF_YAML} \ - ${BEATS_BUILDER_IMAGE} - -# Prepares for packaging. Builds binaries with cgo -.PHONY: prepare-package-cgo -prepare-package-cgo: - - # cross compile on ubuntu - docker run --rm \ - -v $(abspath ${ES_BEATS}/dev-tools/packer/xgo-scripts):/scripts \ - -v $(abspath ${PACKER_TEMPLATES_DIR}):/templates \ - -v $(abspath ../):/source \ - -v $(PKG_BUILD_DIR):/build \ - -e PACK=${BEAT_NAME} \ - -e BEFORE_BUILD=before_build.sh \ - -e SOURCE=/source \ - -e TARGETS=${TARGETS} \ - -e BUILDID=${BUILDID} \ - -e ES_BEATS=${ES_BEATS} \ - -e BEAT_PATH=${BEAT_PATH} \ - -e BEAT_NAME=${BEAT_NAME} \ - -e LICENSE_FILE=${LICENSE_FILE} \ - -e BEAT_REF_YAML=${BEAT_REF_YAML} \ - ${BEATS_BUILDER_IMAGE} - - # linux builds on older debian for compatibility - docker run --rm \ - -v $(abspath ${ES_BEATS}/dev-tools/packer/xgo-scripts):/scripts \ - -v $(abspath ${PACKER_TEMPLATES_DIR}):/templates \ - -v $(abspath ..):/source \ - -v ${PKG_BUILD_DIR}:/build \ - -e PACK=${BEAT_NAME} \ - -e BEFORE_BUILD=before_build.sh \ - -e SOURCE=/source \ - -e TARGETS=${TARGETS_OLD} \ - -e BUILDID=${BUILDID} \ - -e ES_BEATS=${ES_BEATS} \ - -e BEAT_PATH=${BEAT_PATH} \ - -e BEAT_NAME=${BEAT_NAME} \ - -e LICENSE_FILE=${LICENSE_FILE} \ - -e BEAT_REF_YAML=${BEAT_REF_YAML} \ - ${BEATS_BUILDER_DEB_IMAGE} - -# Prepares images for packaging -.PHONY: package-setup -package-setup: - $(MAKE) -C ${ES_BEATS}/dev-tools/packer deps images - -.PHONY: package -package: ## @packaging Create binary packages for the beat. -package: update package-setup - echo "Start building packages for ${BEAT_NAME}" - - rm -rf ${PKG_BUILD_DIR} - mkdir -p ${PKG_BUILD_DIR} - mkdir -p ${PKG_UPLOAD_DIR} - - # Generates the package.yml file with all information needed to create packages - echo "beat_name: ${BEAT_NAME}" > ${PKG_BUILD_DIR}/package.yml - echo "beat_url: ${BEAT_URL}" >> ${PKG_BUILD_DIR}/package.yml - echo "beat_repo: ${BEAT_PATH}" >> ${PKG_BUILD_DIR}/package.yml - echo "beat_pkg_name: ${BEAT_PACKAGE_NAME}" >> ${PKG_BUILD_DIR}/package.yml - echo "beat_pkg_suffix: '${PKG_SUFFIX}'" >> ${PKG_BUILD_DIR}/package.yml - echo "beat_description: ${BEAT_DESCRIPTION}" >> ${PKG_BUILD_DIR}/package.yml - echo "beat_vendor: ${BEAT_VENDOR}" >> ${PKG_BUILD_DIR}/package.yml - echo "beat_license: ${BEAT_LICENSE}" >> ${PKG_BUILD_DIR}/package.yml - echo "beat_doc_url: ${BEAT_DOC_URL}" >> ${PKG_BUILD_DIR}/package.yml - - if [ -a version.yml ]; then \ - cat version.yml >> ${PKG_BUILD_DIR}/package.yml; \ - else \ - cat ${ES_BEATS}/dev-tools/packer/version.yml >> ${PKG_BUILD_DIR}/package.yml; \ - fi - - if [ $(CGO) = true ]; then \ - $(MAKE) prepare-package-cgo; \ - else \ - $(MAKE) prepare-package; \ - fi - - SNAPSHOT=${SNAPSHOT} BUILDID=${BUILDID} BEAT_PATH=${BEAT_PATH} BUILD_DIR=${PKG_BUILD_DIR} UPLOAD_DIR=${PKG_UPLOAD_DIR} $(MAKE) BEAT_REF_YAML=${BEAT_REF_YAML} -C ${ES_BEATS}/dev-tools/packer ${PACKAGES} ${PACKAGES_EXPERIMENTAL} ${BUILD_DIR}/upload/build_id.txt - - $(MAKE) fix-permissions - echo "Finished packages for ${BEAT_NAME}" - -# Packages the Beat without Elastic X-Pack content (OSS only). -.PHONY: package-oss -package-oss: - @$(MAKE) PKG_SUFFIX=-oss package - -# Packages the Beat with Elastic X-Pack content. -.PHONY: package-elastic -package-elastic: - @$(MAKE) BEAT_LICENSE="Elastic License" LICENSE_FILE=$(ELASTIC_LICENSE_FILE) package - -.PHONY: package-all -package-all: package-elastic package-oss - -package-dashboards: package-setup - mkdir -p ${BUILD_DIR} - cp -r _meta/kibana.generated ${BUILD_DIR}/dashboards - # build the dashboards package - BEAT_NAME=${BEAT_NAME} BUILD_DIR=${BUILD_DIR} SNAPSHOT=$(SNAPSHOT) $(MAKE) -C ${ES_BEATS}/dev-tools/packer package-dashboards ${shell pwd}/build/upload/build_id.txt - fix-permissions: # Change ownership of all files inside /build folder from root/root to current user/group docker run -v ${PWD}:/beat alpine:3.4 sh -c "find /beat -user 0 -exec chown -h $(shell id -u):$(shell id -g) {} \;" @@ -580,5 +436,21 @@ seccomp: # Generates seccomp profiles based on the binaries produced by the package target. .PHONY: seccomp-package seccomp-package: - SECCOMP_BINARY=build/package/${BEAT_NAME}-linux-386 $(MAKE) seccomp - SECCOMP_BINARY=build/package/${BEAT_NAME}-linux-amd64 $(MAKE) seccomp + SECCOMP_BINARY=build/golang-crossbuild/${BEAT_NAME}-linux-386 $(MAKE) seccomp + SECCOMP_BINARY=build/golang-crossbuild/${BEAT_NAME}-linux-amd64 $(MAKE) seccomp + +### Packaging targets #### + +.PHONY: mage +mage: +ifndef MAGE_PRESENT + go install ${MAGE_IMPORT_PATH} +endif + +.PHONY: release +release: mage + @mage package + +.PHONY: package +snapshot: mage + @SNAPSHOT=true mage package diff --git a/vendor/github.com/elastic/beats/libbeat/scripts/cmd/global_fields/main.go b/vendor/github.com/elastic/beats/libbeat/scripts/cmd/global_fields/main.go index ccee1ffc..74fc94a6 100644 --- a/vendor/github.com/elastic/beats/libbeat/scripts/cmd/global_fields/main.go +++ b/vendor/github.com/elastic/beats/libbeat/scripts/cmd/global_fields/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( @@ -14,41 +31,46 @@ func main() { beatPath := flag.String("beat_path", ".", "Path to your Beat") flag.Parse() - beatFieldsPath := flag.Args() + beatFieldsPaths := flag.Args() name := filepath.Base(*beatPath) - err := os.MkdirAll(filepath.Join(*beatPath, "_meta"), 0744) + if *beatPath == "" { + fmt.Fprintf(os.Stderr, "beat_path cannot be empty") + os.Exit(1) + } + + err := os.MkdirAll(filepath.Join(*beatPath, "_meta"), 0755) if err != nil { - fmt.Printf("Cannot creata _meta dir for %s: %v\n", name, err) + fmt.Fprintf(os.Stderr, "Cannot create _meta dir for %s: %+v\n", name, err) os.Exit(1) } - if len(beatFieldsPath) == 0 { + if len(beatFieldsPaths) == 0 { fmt.Println("No field files to collect") err = fields.AppendFromLibbeat(*esBeatsPath, *beatPath) if err != nil { - fmt.Printf("Cannot generate global fields.yml for %s: %v\n", name, err) + fmt.Fprintf(os.Stderr, "Cannot generate global fields.yml for %s: %+v\n", name, err) os.Exit(2) } return } - if *beatPath == "" { - fmt.Println("beat_path cannot be empty") - os.Exit(1) - } + var fieldsFiles []*fields.YmlFile + for _, fieldsFilePath := range beatFieldsPaths { + pathToModules := filepath.Join(*beatPath, fieldsFilePath) - pathToModules := filepath.Join(*beatPath, beatFieldsPath[0]) - fieldFiles, err := fields.CollectModuleFiles(pathToModules) - if err != nil { - fmt.Printf("Cannot collect fields.yml files: %v\n", err) - os.Exit(2) + fieldsFile, err := fields.CollectModuleFiles(pathToModules) + if err != nil { + fmt.Fprintf(os.Stderr, "Cannot collect fields.yml files: %+v\n", err) + os.Exit(2) + } + fieldsFiles = append(fieldsFiles, fieldsFile...) } - err = fields.Generate(*esBeatsPath, *beatPath, fieldFiles) + err = fields.Generate(*esBeatsPath, *beatPath, fieldsFiles) if err != nil { - fmt.Printf("Cannot generate global fields.yml file for %s: %v\n", name, err) + fmt.Fprintf(os.Stderr, "Cannot generate global fields.yml file for %s: %+v\n", name, err) os.Exit(3) } diff --git a/vendor/github.com/elastic/beats/libbeat/scripts/cmd/global_fields/main_test.go b/vendor/github.com/elastic/beats/libbeat/scripts/cmd/global_fields/main_test.go deleted file mode 100644 index 5957e26f..00000000 --- a/vendor/github.com/elastic/beats/libbeat/scripts/cmd/global_fields/main_test.go +++ /dev/null @@ -1,792 +0,0 @@ -package main - -import ( - "path/filepath" - "reflect" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/generator/fields" -) - -type testcase struct { - fieldsPath string - files []*fields.YmlFile -} - -var ( - beatsPath = filepath.Join("..", "..", "..", "..") - filebeatFiles = []*fields.YmlFile{ - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "apache2", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "apache2", "access", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "apache2", "error", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "auditd", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "auditd", "log", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "icinga", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "icinga", "debug", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "icinga", "main", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "icinga", "startup", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "iis", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "iis", "access", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "iis", "error", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "kafka", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "kafka", "log", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "logstash", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "logstash", "log", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "logstash", "slowlog", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "mongodb", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "mongodb", "log", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "mysql", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "mysql", "error", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "mysql", "slowlog", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "nginx", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "nginx", "access", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "nginx", "error", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "osquery", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "osquery", "result", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "postgresql", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "postgresql", "log", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "redis", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "redis", "log", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "redis", "slowlog", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "system", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "system", "auth", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "system", "syslog", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "traefik", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "filebeat", "module", "traefik", "access", "_meta", "fields.yml"), - Indent: 8, - }, - } - heartbeatFiles = []*fields.YmlFile{ - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "heartbeat", "monitors", "active", "dialchain", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "heartbeat", "monitors", "active", "http", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "heartbeat", "monitors", "active", "icmp", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "heartbeat", "monitors", "active", "tcp", "_meta", "fields.yml"), - Indent: 0, - }, - } - libbeatFiles = []*fields.YmlFile{ - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "libbeat", "processors", "add_cloud_metadata", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "libbeat", "processors", "add_docker_metadata", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "libbeat", "processors", "add_host_metadata", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "libbeat", "processors", "add_kubernetes_metadata", "_meta", "fields.yml"), - Indent: 0, - }, - } - metricbeatFiles = []*fields.YmlFile{ - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "aerospike", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "aerospike", "namespace", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "apache", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "apache", "status", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "cluster_disk", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "cluster_health", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "cluster_status", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "monitor_health", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "osd_df", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "osd_tree", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "ceph", "pool_disk", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "couchbase", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "couchbase", "bucket", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "couchbase", "cluster", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "couchbase", "node", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "container", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "cpu", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "diskio", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "healthcheck", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "image", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "info", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "memory", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "docker", "network", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "dropwizard", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "dropwizard", "collector", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "elasticsearch", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "elasticsearch", "index", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "elasticsearch", "node", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "elasticsearch", "node_stats", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "etcd", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "etcd", "leader", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "etcd", "self", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "etcd", "store", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "golang", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "golang", "expvar", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "golang", "heap", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "graphite", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "graphite", "server", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "haproxy", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "haproxy", "info", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "haproxy", "stat", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "http", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "http", "json", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "http", "server", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "jolokia", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "jolokia", "jmx", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kafka", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kafka", "consumergroup", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kafka", "partition", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kibana", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kibana", "status", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "container", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "event", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "node", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "pod", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "state_container", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "state_deployment", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "state_node", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "state_pod", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "state_replicaset", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "state_statefulset", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "system", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kubernetes", "volume", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kvm", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "kvm", "dommemstat", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "logstash", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "logstash", "node", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "logstash", "node_stats", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "memcached", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "memcached", "stats", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "mongodb", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "mongodb", "collstats", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "mongodb", "dbstats", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "mongodb", "status", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "munin", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "munin", "node", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "mysql", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "mysql", "status", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "nginx", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "nginx", "stubstatus", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "php_fpm", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "php_fpm", "pool", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "postgresql", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "postgresql", "activity", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "postgresql", "bgwriter", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "postgresql", "database", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "prometheus", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "prometheus", "collector", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "prometheus", "stats", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "rabbitmq", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "rabbitmq", "connection", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "rabbitmq", "node", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "rabbitmq", "queue", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "redis", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "redis", "info", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "redis", "keyspace", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "core", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "cpu", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "diskio", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "filesystem", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "fsstat", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "load", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "memory", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "network", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "process", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "process_summary", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "raid", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "socket", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "system", "uptime", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "uwsgi", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "uwsgi", "status", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "vsphere", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "vsphere", "datastore", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "vsphere", "host", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "vsphere", "virtualmachine", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "windows", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "windows", "perfmon", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "windows", "service", "_meta", "fields.yml"), - Indent: 8, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "zookeeper", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "metricbeat", "module", "zookeeper", "mntr", "_meta", "fields.yml"), - Indent: 8, - }, - } - packetbeatFiles = []*fields.YmlFile{ - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "amqp", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "cassandra", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "dns", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "http", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "icmp", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "memcache", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "mongodb", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "mysql", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "nfs", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "pgsql", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "redis", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "thrift", "_meta", "fields.yml"), - Indent: 0, - }, - &fields.YmlFile{ - Path: filepath.Join(beatsPath, "packetbeat", "protos", "tls", "_meta", "fields.yml"), - Indent: 0, - }, - } -) - -// TestCollectModuleFiles validates if the required files are collected -func TestCollectModuleFiles(t *testing.T) { - cases := []testcase{ - testcase{ - fieldsPath: filepath.Join(beatsPath, "filebeat", "module"), - files: filebeatFiles, - }, - testcase{ - fieldsPath: filepath.Join(beatsPath, "heartbeat", "monitors", "active"), - files: heartbeatFiles, - }, - testcase{ - fieldsPath: filepath.Join(beatsPath, "libbeat", "processors"), - files: libbeatFiles, - }, - testcase{ - fieldsPath: filepath.Join(beatsPath, "metricbeat", "module"), - files: metricbeatFiles, - }, - testcase{ - fieldsPath: filepath.Join(beatsPath, "packetbeat", "protos"), - files: packetbeatFiles, - }, - } - - for _, c := range cases { - fieldFiles, err := fields.CollectModuleFiles(c.fieldsPath) - if err != nil { - t.Fatal(err) - } - assert.True(t, reflect.DeepEqual(fieldFiles, c.files)) - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/scripts/cmd/stress_pipeline/main.go b/vendor/github.com/elastic/beats/libbeat/scripts/cmd/stress_pipeline/main.go index fb65c327..b23ca52f 100644 --- a/vendor/github.com/elastic/beats/libbeat/scripts/cmd/stress_pipeline/main.go +++ b/vendor/github.com/elastic/beats/libbeat/scripts/cmd/stress_pipeline/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/libbeat/scripts/generate_makefile_doc.py b/vendor/github.com/elastic/beats/libbeat/scripts/generate_makefile_doc.py index 55fa066e..5c53d399 100644 --- a/vendor/github.com/elastic/beats/libbeat/scripts/generate_makefile_doc.py +++ b/vendor/github.com/elastic/beats/libbeat/scripts/generate_makefile_doc.py @@ -31,7 +31,7 @@ r'^((?P(-|_|\w)+)|(\${(?P(-|_|\w)+)}))\s*:.*\#\#+\s*@(?P(\w+))\s+(?P(.*))') -# Parse a Makefile variable assignement: +# Parse a Makefile variable assignment: # # Example 1: # BEAT_LICENSE?=ASL 2.0 ## @packaging Software license of the application @@ -54,7 +54,7 @@ # Parse a Makefile line according to the given regexp # - insert the dict { name, default, is_variable, category, doc} to the categories dictionary # - insert the category to the categories_set -# - return a pair [name, value] if the line is a Makefile variable assignement +# - return a pair [name, value] if the line is a Makefile variable assignment def parse_line(line, regexp, categories, categories_set): matches = regexp.match(line) variable = None diff --git a/vendor/github.com/elastic/beats/libbeat/service/service.go b/vendor/github.com/elastic/beats/libbeat/service/service.go index b05d20c2..f98eb831 100644 --- a/vendor/github.com/elastic/beats/libbeat/service/service.go +++ b/vendor/github.com/elastic/beats/libbeat/service/service.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 service import ( diff --git a/vendor/github.com/elastic/beats/libbeat/service/service_unix.go b/vendor/github.com/elastic/beats/libbeat/service/service_unix.go index 5e80ca46..7c6bfb4d 100644 --- a/vendor/github.com/elastic/beats/libbeat/service/service_unix.go +++ b/vendor/github.com/elastic/beats/libbeat/service/service_unix.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !windows package service diff --git a/vendor/github.com/elastic/beats/libbeat/service/service_windows.go b/vendor/github.com/elastic/beats/libbeat/service/service_windows.go index a358c1c9..db5b09e8 100644 --- a/vendor/github.com/elastic/beats/libbeat/service/service_windows.go +++ b/vendor/github.com/elastic/beats/libbeat/service/service_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 service import ( diff --git a/vendor/github.com/elastic/beats/libbeat/template/config.go b/vendor/github.com/elastic/beats/libbeat/template/config.go index ab583412..77e93d72 100644 --- a/vendor/github.com/elastic/beats/libbeat/template/config.go +++ b/vendor/github.com/elastic/beats/libbeat/template/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 template import "github.com/elastic/beats/libbeat/common" diff --git a/vendor/github.com/elastic/beats/libbeat/template/load.go b/vendor/github.com/elastic/beats/libbeat/template/load.go index baa91bdc..157e2c7e 100644 --- a/vendor/github.com/elastic/beats/libbeat/template/load.go +++ b/vendor/github.com/elastic/beats/libbeat/template/load.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 template import ( @@ -105,7 +122,7 @@ func (l *Loader) Load() error { err = l.LoadTemplate(templateName, template) if err != nil { - return fmt.Errorf("could not load template. Elasticsearh returned: %v. Template is: %s", err, template) + return fmt.Errorf("could not load template. Elasticsearch returned: %v. Template is: %s", err, template) } } else { diff --git a/vendor/github.com/elastic/beats/libbeat/template/load_integration_test.go b/vendor/github.com/elastic/beats/libbeat/template/load_integration_test.go deleted file mode 100644 index 79bfac41..00000000 --- a/vendor/github.com/elastic/beats/libbeat/template/load_integration_test.go +++ /dev/null @@ -1,373 +0,0 @@ -// +build integration - -package template - -import ( - "encoding/json" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/outputs/elasticsearch/estest" - "github.com/elastic/beats/libbeat/version" - - "github.com/stretchr/testify/assert" -) - -func TestCheckTemplate(t *testing.T) { - client := estest.GetTestingElasticsearch(t) - if err := client.Connect(); err != nil { - t.Fatal(err) - } - - loader := &Loader{ - client: client, - } - - // Check for non existent template - assert.False(t, loader.CheckTemplate("libbeat-notexists")) -} - -func TestLoadTemplate(t *testing.T) { - // Setup ES - client := estest.GetTestingElasticsearch(t) - if err := client.Connect(); err != nil { - t.Fatal(err) - } - - // Load template - absPath, err := filepath.Abs("../") - assert.NotNil(t, absPath) - assert.Nil(t, err) - - fieldsPath := absPath + "/fields.yml" - index := "testbeat" - - tmpl, err := New(version.GetDefaultVersion(), index, client.GetVersion(), TemplateConfig{}) - assert.NoError(t, err) - content, err := tmpl.LoadFile(fieldsPath) - assert.NoError(t, err) - - loader := &Loader{ - client: client, - } - - // Load template - err = loader.LoadTemplate(tmpl.GetName(), content) - assert.Nil(t, err) - - // Make sure template was loaded - assert.True(t, loader.CheckTemplate(tmpl.GetName())) - - // Delete template again to clean up - client.Request("DELETE", "/_template/"+tmpl.GetName(), "", nil, nil) - - // Make sure it was removed - assert.False(t, loader.CheckTemplate(tmpl.GetName())) -} - -func TestLoadInvalidTemplate(t *testing.T) { - // Invalid Template - template := map[string]interface{}{ - "json": "invalid", - } - - // Setup ES - client := estest.GetTestingElasticsearch(t) - if err := client.Connect(); err != nil { - t.Fatal(err) - } - - templateName := "invalidtemplate" - - loader := &Loader{ - client: client, - } - - // Try to load invalid template - err := loader.LoadTemplate(templateName, template) - assert.Error(t, err) - - // Make sure template was not loaded - assert.False(t, loader.CheckTemplate(templateName)) -} - -func getTemplate(t *testing.T, client ESClient, templateName string) common.MapStr { - status, body, err := client.Request("GET", "/_template/"+templateName, "", nil, nil) - assert.NoError(t, err) - assert.Equal(t, status, 200) - - var response common.MapStr - err = json.Unmarshal(body, &response) - assert.NoError(t, err) - - return common.MapStr(response[templateName].(map[string]interface{})) -} - -func newConfigFrom(t *testing.T, from interface{}) *common.Config { - cfg, err := common.NewConfigFrom(from) - assert.NoError(t, err) - return cfg -} - -// Tests loading the templates for each beat -func TestLoadBeatsTemplate(t *testing.T) { - beats := []string{ - "libbeat", - } - - for _, beat := range beats { - // Load template - absPath, err := filepath.Abs("../../" + beat) - assert.NotNil(t, absPath) - assert.Nil(t, err) - - // Setup ES - client := estest.GetTestingElasticsearch(t) - if err := client.Connect(); err != nil { - t.Fatal(err) - } - - fieldsPath := absPath + "/fields.yml" - index := beat - - tmpl, err := New(version.GetDefaultVersion(), index, client.GetVersion(), TemplateConfig{}) - assert.NoError(t, err) - content, err := tmpl.LoadFile(fieldsPath) - assert.NoError(t, err) - - loader := &Loader{ - client: client, - } - - // Load template - err = loader.LoadTemplate(tmpl.GetName(), content) - assert.Nil(t, err) - - // Make sure template was loaded - assert.True(t, loader.CheckTemplate(tmpl.GetName())) - - // Delete template again to clean up - client.Request("DELETE", "/_template/"+tmpl.GetName(), "", nil, nil) - - // Make sure it was removed - assert.False(t, loader.CheckTemplate(tmpl.GetName())) - } -} - -func TestTemplateSettings(t *testing.T) { - // Setup ES - client := estest.GetTestingElasticsearch(t) - if err := client.Connect(); err != nil { - t.Fatal(err) - } - - // Load template - absPath, err := filepath.Abs("../") - assert.NotNil(t, absPath) - assert.Nil(t, err) - - fieldsPath := absPath + "/fields.yml" - - settings := TemplateSettings{ - Index: common.MapStr{ - "number_of_shards": 1, - }, - Source: common.MapStr{ - "enabled": false, - }, - } - config := TemplateConfig{ - Settings: settings, - } - tmpl, err := New(version.GetDefaultVersion(), "testbeat", client.GetVersion(), config) - assert.NoError(t, err) - content, err := tmpl.LoadFile(fieldsPath) - assert.NoError(t, err) - - loader := &Loader{ - client: client, - } - - // Load template - err = loader.LoadTemplate(tmpl.GetName(), content) - assert.Nil(t, err) - - // Check that it contains the mapping - templateJSON := getTemplate(t, client, tmpl.GetName()) - val, err := templateJSON.GetValue("settings.index.number_of_shards") - assert.NoError(t, err) - assert.Equal(t, val.(string), "1") - - val, err = templateJSON.GetValue("mappings.doc._source.enabled") - assert.NoError(t, err) - assert.Equal(t, val.(bool), false) - - // Delete template again to clean up - client.Request("DELETE", "/_template/"+tmpl.GetName(), "", nil, nil) - - // Make sure it was removed - assert.False(t, loader.CheckTemplate(tmpl.GetName())) -} - -func TestOverwrite(t *testing.T) { - // Setup ES - client := estest.GetTestingElasticsearch(t) - if err := client.Connect(); err != nil { - t.Fatal(err) - } - - beatInfo := beat.Info{ - Beat: "testbeat", - IndexPrefix: "testbeatidx", - Version: version.GetDefaultVersion(), - } - templateName := "testbeatidx-" + version.GetDefaultVersion() - - absPath, err := filepath.Abs("../") - assert.NotNil(t, absPath) - assert.Nil(t, err) - - // make sure no template is already there - client.Request("DELETE", "/_template/"+templateName, "", nil, nil) - - // Load template - config := newConfigFrom(t, TemplateConfig{ - Enabled: true, - Fields: absPath + "/fields.yml", - }) - loader, err := NewLoader(config, client, beatInfo, nil) - assert.NoError(t, err) - err = loader.Load() - assert.NoError(t, err) - - // Load template again, this time with custom settings - config = newConfigFrom(t, TemplateConfig{ - Enabled: true, - Fields: absPath + "/fields.yml", - Settings: TemplateSettings{ - Source: map[string]interface{}{ - "enabled": false, - }, - }, - }) - loader, err = NewLoader(config, client, beatInfo, nil) - assert.NoError(t, err) - err = loader.Load() - assert.NoError(t, err) - - // Overwrite was not enabled, so the first version should still be there - templateJSON := getTemplate(t, client, templateName) - _, err = templateJSON.GetValue("mappings.doc._source.enabled") - assert.Error(t, err) - - // Load template again, this time with custom settings AND overwrite: true - config = newConfigFrom(t, TemplateConfig{ - Enabled: true, - Overwrite: true, - Fields: absPath + "/fields.yml", - Settings: TemplateSettings{ - Source: map[string]interface{}{ - "enabled": false, - }, - }, - }) - loader, err = NewLoader(config, client, beatInfo, nil) - assert.NoError(t, err) - err = loader.Load() - assert.NoError(t, err) - - // Overwrite was enabled, so the custom setting should be there - templateJSON = getTemplate(t, client, templateName) - val, err := templateJSON.GetValue("mappings.doc._source.enabled") - assert.NoError(t, err) - assert.Equal(t, val.(bool), false) - - // Delete template again to clean up - client.Request("DELETE", "/_template/"+templateName, "", nil, nil) -} - -var dataTests = []struct { - data common.MapStr - error bool -}{ - { - data: common.MapStr{ - "keyword": "test keyword", - "array": [...]int{1, 2, 3}, - "object": common.MapStr{ - "hello": "world", - }, - }, - error: false, - }, - { - // Invalid array - data: common.MapStr{ - "array": common.MapStr{ - "hello": "world", - }, - }, - error: true, - }, - { - // Invalid object - data: common.MapStr{ - "object": [...]int{1, 2, 3}, - }, - error: true, - }, - { - // tests enabled: false values - data: common.MapStr{ - "array_disabled": [...]int{1, 2, 3}, - "object_disabled": common.MapStr{ - "hello": "world", - }, - }, - error: false, - }, -} - -// Tests if data can be loaded into elasticsearch with right types -func TestTemplateWithData(t *testing.T) { - fieldsPath, err := filepath.Abs("./testdata/fields.yml") - assert.NotNil(t, fieldsPath) - assert.Nil(t, err) - - // Setup ES - client := estest.GetTestingElasticsearch(t) - - tmpl, err := New(version.GetDefaultVersion(), "testindex", client.GetVersion(), TemplateConfig{}) - assert.NoError(t, err) - content, err := tmpl.LoadFile(fieldsPath) - assert.NoError(t, err) - - loader := &Loader{ - client: client, - } - - // Load template - err = loader.LoadTemplate(tmpl.GetName(), content) - assert.Nil(t, err) - - // Make sure template was loaded - assert.True(t, loader.CheckTemplate(tmpl.GetName())) - - for _, test := range dataTests { - _, _, err = client.Index(tmpl.GetName(), "doc", "", nil, test.data) - if test.error { - assert.NotNil(t, err) - - } else { - assert.Nil(t, err) - } - } - - // Delete template again to clean up - client.Request("DELETE", "/_template/"+tmpl.GetName(), "", nil, nil) - - // Make sure it was removed - assert.False(t, loader.CheckTemplate(tmpl.GetName())) -} diff --git a/vendor/github.com/elastic/beats/libbeat/template/processor.go b/vendor/github.com/elastic/beats/libbeat/template/processor.go index f2a0bcb2..32399b5f 100644 --- a/vendor/github.com/elastic/beats/libbeat/template/processor.go +++ b/vendor/github.com/elastic/beats/libbeat/template/processor.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 template import ( @@ -45,6 +62,8 @@ func (p *Processor) Process(fields common.Fields, path string, output common.Map mapping = p.object(&field) case "array": mapping = p.array(&field) + case "alias": + mapping = p.alias(&field) case "group": var newPath string if path == "" { @@ -151,9 +170,12 @@ func (p *Processor) keyword(f *common.Field) common.MapStr { defaultFields = append(defaultFields, fullName) property["type"] = "keyword" - if f.IgnoreAbove == 0 { + + switch f.IgnoreAbove { + case 0: // Use libbeat default property["ignore_above"] = defaultIgnoreAbove - } else { + case -1: // Use ES default + default: // Use user value property["ignore_above"] = f.IgnoreAbove } @@ -222,6 +244,13 @@ func (p *Processor) array(f *common.Field) common.MapStr { return properties } +func (p *Processor) alias(f *common.Field) common.MapStr { + properties := getDefaultProperties(f) + properties["type"] = "alias" + properties["path"] = f.AliasPath + return properties +} + func (p *Processor) object(f *common.Field) common.MapStr { dynProperties := getDefaultProperties(f) @@ -247,7 +276,7 @@ func (p *Processor) object(f *common.Field) common.MapStr { case "keyword": dynProperties["type"] = f.ObjectType addDynamicTemplate(f, dynProperties, matchType("string")) - case "long", "double": + case "byte", "double", "float", "long", "short": dynProperties["type"] = f.ObjectType addDynamicTemplate(f, dynProperties, matchType(f.ObjectType)) } diff --git a/vendor/github.com/elastic/beats/libbeat/template/processor_test.go b/vendor/github.com/elastic/beats/libbeat/template/processor_test.go deleted file mode 100644 index 32bec016..00000000 --- a/vendor/github.com/elastic/beats/libbeat/template/processor_test.go +++ /dev/null @@ -1,450 +0,0 @@ -package template - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -func TestProcessor(t *testing.T) { - esVersion2, err := common.NewVersion("2.0.0") - assert.NoError(t, err) - - falseVar := false - trueVar := true - p := &Processor{} - pEsVersion2 := &Processor{EsVersion: *esVersion2} - - tests := []struct { - output common.MapStr - expected common.MapStr - }{ - { - output: p.other(&common.Field{Type: "long"}), - expected: common.MapStr{"type": "long"}, - }, - { - output: p.scaledFloat(&common.Field{Type: "scaled_float"}), - expected: common.MapStr{ - "type": "scaled_float", - "scaling_factor": 1000, - }, - }, - { - output: p.scaledFloat(&common.Field{Type: "scaled_float", ScalingFactor: 100}), - expected: common.MapStr{ - "type": "scaled_float", - "scaling_factor": 100, - }, - }, - { - output: pEsVersion2.scaledFloat(&common.Field{Type: "scaled_float"}), - expected: common.MapStr{"type": "float"}, - }, - { - output: p.object(&common.Field{Type: "object", Enabled: &falseVar}), - expected: common.MapStr{ - "type": "object", - "enabled": false, - }, - }, - { - output: p.integer(&common.Field{Type: "long", CopyTo: "hello.world"}), - expected: common.MapStr{ - "type": "long", - "copy_to": "hello.world", - }, - }, - { - output: p.array(&common.Field{Type: "array"}), - expected: common.MapStr{}, - }, - { - output: p.array(&common.Field{Type: "array", ObjectType: "text"}), - expected: common.MapStr{"type": "text"}, - }, - { - output: p.array(&common.Field{Type: "array", Index: &falseVar, ObjectType: "keyword"}), - expected: common.MapStr{"index": false, "type": "keyword"}, - }, - { - output: p.object(&common.Field{Type: "object", Enabled: &falseVar}), - expected: common.MapStr{ - "type": "object", - "enabled": false, - }, - }, - { - output: p.text(&common.Field{Type: "text", Analyzer: "autocomplete"}), - expected: common.MapStr{ - "type": "text", - "analyzer": "autocomplete", - "norms": false, - }, - }, - { - output: p.text(&common.Field{Type: "text", Analyzer: "autocomplete", Norms: true}), - expected: common.MapStr{ - "type": "text", - "analyzer": "autocomplete", - }, - }, - { - output: p.text(&common.Field{Type: "text", SearchAnalyzer: "standard", Norms: true}), - expected: common.MapStr{ - "type": "text", - "search_analyzer": "standard", - }, - }, - { - output: p.text(&common.Field{Type: "text", Analyzer: "autocomplete", SearchAnalyzer: "standard", Norms: true}), - expected: common.MapStr{ - "type": "text", - "analyzer": "autocomplete", - "search_analyzer": "standard", - }, - }, - { - output: p.text(&common.Field{Type: "text", MultiFields: common.Fields{common.Field{Name: "raw", Type: "keyword"}}, Norms: true}), - expected: common.MapStr{ - "type": "text", - "fields": common.MapStr{ - "raw": common.MapStr{ - "type": "keyword", - "ignore_above": 1024, - }, - }, - }, - }, - { - output: p.keyword(&common.Field{Type: "keyword", MultiFields: common.Fields{common.Field{Name: "analyzed", Type: "text", Norms: true}}}), - expected: common.MapStr{ - "type": "keyword", - "ignore_above": 1024, - "fields": common.MapStr{ - "analyzed": common.MapStr{ - "type": "text", - }, - }, - }, - }, - { - output: p.keyword(&common.Field{Type: "keyword", IgnoreAbove: 256}), - expected: common.MapStr{ - "type": "keyword", - "ignore_above": 256, - }, - }, - { - output: p.keyword(&common.Field{Type: "keyword"}), - expected: common.MapStr{ - "type": "keyword", - "ignore_above": 1024, - }, - }, - { - output: p.text(&common.Field{Type: "text", MultiFields: common.Fields{ - common.Field{Name: "raw", Type: "keyword"}, - common.Field{Name: "indexed", Type: "text"}, - }, Norms: true}), - expected: common.MapStr{ - "type": "text", - "fields": common.MapStr{ - "raw": common.MapStr{ - "type": "keyword", - "ignore_above": 1024, - }, - "indexed": common.MapStr{ - "type": "text", - "norms": false, - }, - }, - }, - }, - { - output: p.text(&common.Field{Type: "text", MultiFields: common.Fields{ - common.Field{Name: "raw", Type: "keyword"}, - common.Field{Name: "indexed", Type: "text"}, - }, Norms: true}), - expected: common.MapStr{ - "type": "text", - "fields": common.MapStr{ - "raw": common.MapStr{ - "type": "keyword", - "ignore_above": 1024, - }, - "indexed": common.MapStr{ - "type": "text", - "norms": false, - }, - }, - }, - }, - { - output: p.object(&common.Field{Dynamic: common.DynamicType{Value: false}}), - expected: common.MapStr{ - "dynamic": false, "type": "object", - }, - }, - { - output: p.object(&common.Field{Dynamic: common.DynamicType{Value: true}}), - expected: common.MapStr{ - "dynamic": true, "type": "object", - }, - }, - { - output: p.object(&common.Field{Dynamic: common.DynamicType{Value: "strict"}}), - expected: common.MapStr{ - "dynamic": "strict", "type": "object", - }, - }, - { - output: p.other(&common.Field{Type: "long", Index: &falseVar}), - expected: common.MapStr{ - "type": "long", "index": false, - }, - }, - { - output: p.other(&common.Field{Type: "text", Index: &trueVar}), - expected: common.MapStr{ - "type": "text", "index": true, - }, - }, - { - output: p.other(&common.Field{Type: "long", DocValues: &falseVar}), - expected: common.MapStr{ - "type": "long", "doc_values": false, - }, - }, - { - output: p.other(&common.Field{Type: "double", DocValues: &falseVar}), - expected: common.MapStr{ - "type": "double", "doc_values": false, - }, - }, - { - output: p.other(&common.Field{Type: "text", DocValues: &trueVar}), - expected: common.MapStr{ - "type": "text", "doc_values": true, - }, - }, - } - - for _, test := range tests { - assert.Equal(t, test.expected, test.output) - } -} - -func TestDynamicTemplate(t *testing.T) { - p := &Processor{} - tests := []struct { - field common.Field - expected common.MapStr - }{ - { - field: common.Field{ - Type: "object", ObjectType: "keyword", - Name: "context", - }, - expected: common.MapStr{ - "context": common.MapStr{ - "mapping": common.MapStr{"type": "keyword"}, - "match_mapping_type": "string", - "path_match": "context.*", - }, - }, - }, - { - field: common.Field{ - Type: "object", ObjectType: "long", ObjectTypeMappingType: "futuretype", - Path: "language", Name: "english", - }, - expected: common.MapStr{ - "language.english": common.MapStr{ - "mapping": common.MapStr{"type": "long"}, - "match_mapping_type": "futuretype", - "path_match": "language.english.*", - }, - }, - }, - { - field: common.Field{ - Type: "object", ObjectType: "long", ObjectTypeMappingType: "*", - Path: "language", Name: "english", - }, - expected: common.MapStr{ - "language.english": common.MapStr{ - "mapping": common.MapStr{"type": "long"}, - "match_mapping_type": "*", - "path_match": "language.english.*", - }, - }, - }, - { - field: common.Field{ - Type: "object", ObjectType: "long", - Path: "language", Name: "english", - }, - expected: common.MapStr{ - "language.english": common.MapStr{ - "mapping": common.MapStr{"type": "long"}, - "match_mapping_type": "long", - "path_match": "language.english.*", - }, - }, - }, - { - field: common.Field{ - Type: "object", ObjectType: "text", - Path: "language", Name: "english", - }, - expected: common.MapStr{ - "language.english": common.MapStr{ - "mapping": common.MapStr{"type": "text"}, - "match_mapping_type": "string", - "path_match": "language.english.*", - }, - }, - }, - { - field: common.Field{ - Type: "object", ObjectType: "scaled_float", - Name: "core.*.pct", - }, - expected: common.MapStr{ - "core.*.pct": common.MapStr{ - "mapping": common.MapStr{ - "type": "scaled_float", - "scaling_factor": defaultScalingFactor, - }, - "match_mapping_type": "*", - "path_match": "core.*.pct", - }, - }, - }, - { - field: common.Field{ - Type: "object", ObjectType: "scaled_float", - Name: "core.*.pct", ScalingFactor: 100, ObjectTypeMappingType: "float", - }, - expected: common.MapStr{ - "core.*.pct": common.MapStr{ - "mapping": common.MapStr{ - "type": "scaled_float", - "scaling_factor": 100, - }, - "match_mapping_type": "float", - "path_match": "core.*.pct", - }, - }, - }, - } - - for _, test := range tests { - dynamicTemplates = nil - p.object(&test.field) - assert.Equal(t, test.expected, dynamicTemplates[0]) - } -} - -func TestPropertiesCombine(t *testing.T) { - // Test common fields are combined even if they come from different objects - fields := common.Fields{ - common.Field{ - Name: "test", - Type: "group", - Fields: common.Fields{ - common.Field{ - Name: "one", - Type: "text", - }, - }, - }, - common.Field{ - Name: "test", - Type: "group", - Fields: common.Fields{ - common.Field{ - Name: "two", - Type: "text", - }, - }, - }, - } - - output := common.MapStr{} - version, err := common.NewVersion("6.0.0") - if err != nil { - t.Fatal(err) - } - - p := Processor{EsVersion: *version} - err = p.Process(fields, "", output) - if err != nil { - t.Fatal(err) - } - - v1, err := output.GetValue("test.properties.one") - if err != nil { - t.Fatal(err) - } - v2, err := output.GetValue("test.properties.two") - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, v1, common.MapStr{"type": "text", "norms": false}) - assert.Equal(t, v2, common.MapStr{"type": "text", "norms": false}) -} - -func TestProcessNoName(t *testing.T) { - // Test common fields are combined even if they come from different objects - fields := common.Fields{ - common.Field{ - Fields: common.Fields{ - common.Field{ - Name: "one", - Type: "text", - }, - }, - }, - common.Field{ - Name: "test", - Type: "group", - Fields: common.Fields{ - common.Field{ - Name: "two", - Type: "text", - }, - }, - }, - } - - output := common.MapStr{} - version, err := common.NewVersion("6.0.0") - if err != nil { - t.Fatal(err) - } - - p := Processor{EsVersion: *version} - err = p.Process(fields, "", output) - if err != nil { - t.Fatal(err) - } - - // Make sure fields without a name are skipped during template generation - expectedOutput := common.MapStr{ - "test": common.MapStr{ - "properties": common.MapStr{ - "two": common.MapStr{ - "norms": false, - "type": "text", - }, - }, - }, - } - - assert.Equal(t, expectedOutput, output) -} diff --git a/vendor/github.com/elastic/beats/libbeat/template/template.go b/vendor/github.com/elastic/beats/libbeat/template/template.go index e329b799..49e274f3 100644 --- a/vendor/github.com/elastic/beats/libbeat/template/template.go +++ b/vendor/github.com/elastic/beats/libbeat/template/template.go @@ -1,7 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 template import ( "fmt" + "sync" "time" "github.com/elastic/beats/libbeat/beat" @@ -24,6 +42,7 @@ var ( ) type Template struct { + sync.Mutex name string pattern string beatVersion common.Version @@ -97,6 +116,13 @@ func New(beatVersion string, beatName string, esVersion string, config TemplateC func (t *Template) load(fields common.Fields) (common.MapStr, error) { + // Locking to make sure dynamicTemplates and defaultFields is not accessed in parallel + t.Lock() + defer t.Unlock() + + dynamicTemplates = nil + defaultFields = nil + var err error if len(t.config.AppendFields) > 0 { cfgwarn.Experimental("append_fields is used.") diff --git a/vendor/github.com/elastic/beats/libbeat/template/template_test.go b/vendor/github.com/elastic/beats/libbeat/template/template_test.go deleted file mode 100644 index 79f46724..00000000 --- a/vendor/github.com/elastic/beats/libbeat/template/template_test.go +++ /dev/null @@ -1,161 +0,0 @@ -// +build !integration - -package template - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestNumberOfRoutingShards(t *testing.T) { - - beatVersion := "6.1.0" - beatName := "testbeat" - config := TemplateConfig{} - - // Test it exists in 6.1 - template, err := New(beatVersion, beatName, "6.1.0", config) - assert.NoError(t, err) - - data := template.Generate(nil, nil) - shards, err := data.GetValue("settings.index.number_of_routing_shards") - assert.NoError(t, err) - - assert.Equal(t, 30, shards.(int)) - - // Test it does not exist in 6.0 - template, err = New(beatVersion, beatName, "6.0.0", config) - assert.NoError(t, err) - - data = template.Generate(nil, nil) - shards, err = data.GetValue("settings.index.number_of_routing_shards") - assert.Error(t, err) - assert.Equal(t, nil, shards) -} - -func TestNumberOfRoutingShardsOverwrite(t *testing.T) { - - beatVersion := "6.1.0" - beatName := "testbeat" - config := TemplateConfig{ - Settings: TemplateSettings{ - Index: map[string]interface{}{"number_of_routing_shards": 5}, - }, - } - - // Test it exists in 6.1 - template, err := New(beatVersion, beatName, "6.1.0", config) - assert.NoError(t, err) - - data := template.Generate(nil, nil) - shards, err := data.GetValue("settings.index.number_of_routing_shards") - assert.NoError(t, err) - - assert.Equal(t, 5, shards.(int)) -} - -func TestAppendFields(t *testing.T) { - tests := []struct { - fields common.Fields - appendFields common.Fields - error bool - }{ - { - fields: common.Fields{ - common.Field{ - Name: "a", - Fields: common.Fields{ - common.Field{ - Name: "b", - }, - }, - }, - }, - appendFields: common.Fields{ - common.Field{ - Name: "a", - Fields: common.Fields{ - common.Field{ - Name: "c", - }, - }, - }, - }, - error: false, - }, - { - fields: common.Fields{ - common.Field{ - Name: "a", - Fields: common.Fields{ - common.Field{ - Name: "b", - }, - common.Field{ - Name: "c", - }, - }, - }, - }, - appendFields: common.Fields{ - common.Field{ - Name: "a", - Fields: common.Fields{ - common.Field{ - Name: "c", - }, - }, - }, - }, - error: true, - }, - { - fields: common.Fields{ - common.Field{ - Name: "a", - }, - }, - appendFields: common.Fields{ - common.Field{ - Name: "a", - Fields: common.Fields{ - common.Field{ - Name: "c", - }, - }, - }, - }, - error: true, - }, - { - fields: common.Fields{ - common.Field{ - Name: "a", - Fields: common.Fields{ - common.Field{ - Name: "c", - }, - }, - }, - }, - appendFields: common.Fields{ - common.Field{ - Name: "a", - }, - }, - error: true, - }, - } - - for _, test := range tests { - _, err := appendFields(test.fields, test.appendFields) - if test.error { - assert.Error(t, err) - } else { - assert.NoError(t, err) - } - } -} diff --git a/vendor/github.com/elastic/beats/libbeat/testing/console.go b/vendor/github.com/elastic/beats/libbeat/testing/console.go index bf3558f1..dafc5008 100644 --- a/vendor/github.com/elastic/beats/libbeat/testing/console.go +++ b/vendor/github.com/elastic/beats/libbeat/testing/console.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 testing import ( diff --git a/vendor/github.com/elastic/beats/libbeat/testing/console_test.go b/vendor/github.com/elastic/beats/libbeat/testing/console_test.go deleted file mode 100644 index 1b4a2620..00000000 --- a/vendor/github.com/elastic/beats/libbeat/testing/console_test.go +++ /dev/null @@ -1,106 +0,0 @@ -package testing - -import ( - "bufio" - "bytes" - "errors" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestConsoleDriverInfo(t *testing.T) { - buffer, output, driver := createDriver(nil) - - driver.Info("field", "value") - - output.Flush() - assert.Equal(t, buffer.String(), "field: value\n") -} - -func TestConsoleDriverWarn(t *testing.T) { - buffer, output, driver := createDriver(nil) - - driver.Warn("warning", "you got a warning") - - output.Flush() - assert.Equal(t, buffer.String(), "warning... WARN you got a warning\n") -} - -func TestConsoleDriverError(t *testing.T) { - buffer, output, driver := createDriver(nil) - - err := errors.New("This is an error") - - driver.Error("no error", nil) - driver.Error("error", err) - - output.Flush() - assert.Equal(t, buffer.String(), "no error... OK\nerror... ERROR This is an error\n") -} - -func TestConsoleDriverFatal(t *testing.T) { - var killed bool - buffer, output, driver := createDriver(func() { killed = true }) - - err := errors.New("This is an error") - - driver.Fatal("no error", nil) - driver.Fatal("error", err) - - output.Flush() - assert.True(t, killed) - assert.Equal(t, buffer.String(), "no error... OK\nerror... ERROR This is an error\n") -} - -func TestConsoleDriverRun(t *testing.T) { - buffer, output, driver := createDriver(nil) - - var called bool - driver.Run("test", func(d Driver) { - called = true - }) - - output.Flush() - assert.True(t, called) - assert.Equal(t, buffer.String(), "test...OK\n") -} - -func TestConsoleDriverResult(t *testing.T) { - buffer, output, driver := createDriver(nil) - - driver.Run("test", func(d Driver) { - d.Result("This is a multiline\nresult") - }) - - output.Flush() - assert.Equal(t, buffer.String(), "test...OK\n result: \n This is a multiline\n result\n\n") -} - -func TestConsoleDriverRunWithReports(t *testing.T) { - buffer, output, driver := createDriver(nil) - - var called bool - err := errors.New("This is an error") - driver.Run("test", func(d Driver) { - called = true - d.Info("field", "value") - d.Error("error", err) - }) - - output.Flush() - assert.True(t, called) - assert.Equal(t, buffer.String(), "test...\n field: value\n error... ERROR This is an error\n") -} - -func createDriver(killer func()) (*bytes.Buffer, *bufio.Writer, *ConsoleDriver) { - buffer := bytes.NewBufferString("") - output := bufio.NewWriter(buffer) - var driver *ConsoleDriver - if killer != nil { - driver = NewConsoleDriverWithKiller(output, killer) - } else { - driver = NewConsoleDriver(output) - } - return buffer, output, driver -} diff --git a/vendor/github.com/elastic/beats/libbeat/testing/mapvaltest/mapvaltest.go b/vendor/github.com/elastic/beats/libbeat/testing/mapvaltest/mapvaltest.go new file mode 100644 index 00000000..20f8420e --- /dev/null +++ b/vendor/github.com/elastic/beats/libbeat/testing/mapvaltest/mapvaltest.go @@ -0,0 +1,39 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mapvaltest + +// skimatest is a separate package from skima since we don't want to import "testing" +// into skima, since there is a good chance we'll use skima for running user-defined +// tests in heartbeat at runtime. + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/common/mapval" +) + +// Test takes the output from a Validator invocation and runs test assertions on the result. +// If you are using this library for testing you will probably want to run Test(t, Schema(Map{...})(actual)) as a pattern. +func Test(t *testing.T, r mapval.Results) mapval.Results { + for _, err := range r.Errors() { + assert.NoError(t, err) + } + return r +} diff --git a/vendor/github.com/elastic/beats/libbeat/testing/null.go b/vendor/github.com/elastic/beats/libbeat/testing/null.go index c20945bb..8335b65b 100644 --- a/vendor/github.com/elastic/beats/libbeat/testing/null.go +++ b/vendor/github.com/elastic/beats/libbeat/testing/null.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 testing type nullDriver struct{} diff --git a/vendor/github.com/elastic/beats/libbeat/testing/testing.go b/vendor/github.com/elastic/beats/libbeat/testing/testing.go index 7300c3eb..559bba77 100644 --- a/vendor/github.com/elastic/beats/libbeat/testing/testing.go +++ b/vendor/github.com/elastic/beats/libbeat/testing/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 testing // Driver for testing, manages test flow and controls output diff --git a/vendor/github.com/elastic/beats/libbeat/tests/compose/compose.go b/vendor/github.com/elastic/beats/libbeat/tests/compose/compose.go index e37f9fc7..3a8cc4a3 100644 --- a/vendor/github.com/elastic/beats/libbeat/tests/compose/compose.go +++ b/vendor/github.com/elastic/beats/libbeat/tests/compose/compose.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 compose import ( @@ -143,7 +160,7 @@ func (c *composeProject) KillOld(except []string) error { // it can happen that an other package tries to start them at the same time // which leads to a conflict. We need a better solution long term but that should // solve the problem for now. - except = append(except, "elasticsearch", "kibana", "logstash") + except = append(except, "elasticsearch", "kibana", "logstash", "kubernetes") servicesStatus, err := c.getServices() if err != nil { diff --git a/vendor/github.com/elastic/beats/libbeat/tests/docker/docker.go b/vendor/github.com/elastic/beats/libbeat/tests/docker/docker.go index 433d8dfd..a2e1e181 100644 --- a/vendor/github.com/elastic/beats/libbeat/tests/docker/docker.go +++ b/vendor/github.com/elastic/beats/libbeat/tests/docker/docker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( diff --git a/vendor/github.com/elastic/beats/libbeat/tests/system/beat/beat.py b/vendor/github.com/elastic/beats/libbeat/tests/system/beat/beat.py index fe0ad480..d54077c4 100644 --- a/vendor/github.com/elastic/beats/libbeat/tests/system/beat/beat.py +++ b/vendor/github.com/elastic/beats/libbeat/tests/system/beat/beat.py @@ -579,3 +579,17 @@ def get_kibana_url(self): host=os.getenv("KIBANA_HOST", "localhost"), port=os.getenv("KIBANA_PORT", "5601"), ) + + def assert_fields_are_documented(self, evt): + """ + Assert that all keys present in evt are documented in fields.yml. + This reads from the global fields.yml, means `make collect` has to be run before the check. + """ + expected_fields, dict_fields = self.load_fields() + flat = self.flatten_object(evt, dict_fields) + + for key in flat.keys(): + documented = key in expected_fields + metaKey = key.startswith('@metadata.') + if not(documented or metaKey): + raise Exception("Key '{}' found in event is not documented!".format(key)) diff --git a/vendor/github.com/elastic/beats/libbeat/tests/system/beat/compose.py b/vendor/github.com/elastic/beats/libbeat/tests/system/beat/compose.py index 0c7b429b..39cf4249 100644 --- a/vendor/github.com/elastic/beats/libbeat/tests/system/beat/compose.py +++ b/vendor/github.com/elastic/beats/libbeat/tests/system/beat/compose.py @@ -33,6 +33,9 @@ def compose_up(cls): if not INTEGRATION_TESTS or not cls.COMPOSE_SERVICES: return + if os.environ.get('NO_COMPOSE'): + return + def print_logs(container): print("---- " + container.name_without_project) print(container.logs()) diff --git a/vendor/github.com/elastic/beats/libbeat/tests/system/requirements.txt b/vendor/github.com/elastic/beats/libbeat/tests/system/requirements.txt index b26f4c86..743fdf14 100644 --- a/vendor/github.com/elastic/beats/libbeat/tests/system/requirements.txt +++ b/vendor/github.com/elastic/beats/libbeat/tests/system/requirements.txt @@ -28,3 +28,4 @@ texttable==0.9.1 urllib3==1.22 websocket-client==0.47.0 parameterized==0.6.1 +jsondiff==1.1.2 diff --git a/vendor/github.com/elastic/beats/libbeat/version/helper.go b/vendor/github.com/elastic/beats/libbeat/version/helper.go index b34ed5a2..13e4be0c 100644 --- a/vendor/github.com/elastic/beats/libbeat/version/helper.go +++ b/vendor/github.com/elastic/beats/libbeat/version/helper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 version import "time" diff --git a/vendor/github.com/elastic/beats/libbeat/version/version.go b/vendor/github.com/elastic/beats/libbeat/version/version.go index 80ac328a..5706fa0c 100644 --- a/vendor/github.com/elastic/beats/libbeat/version/version.go +++ b/vendor/github.com/elastic/beats/libbeat/version/version.go @@ -1,4 +1,21 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Code generated by dev-tools/set_version package version -const defaultBeatVersion = "7.0.0-alpha1" +const defaultBeatVersion = "6.4.1" diff --git a/vendor/github.com/elastic/beats/magefile.go b/vendor/github.com/elastic/beats/magefile.go new file mode 100644 index 00000000..f278cbd2 --- /dev/null +++ b/vendor/github.com/elastic/beats/magefile.go @@ -0,0 +1,72 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "path/filepath" + + "github.com/elastic/beats/dev-tools/mage" +) + +var ( + // Beats is a list of Beats to collect dashboards from. + Beats = []string{ + "auditbeat", + "filebeat", + "heartbeat", + "metricbeat", + "packetbeat", + "winlogbeat", + } +) + +// PackageBeatDashboards packages the dashboards from all Beats into a zip +// file. The dashboards must be generated first. +func PackageBeatDashboards() error { + version, err := mage.BeatVersion() + if err != nil { + return err + } + + spec := mage.PackageSpec{ + Name: "beats-dashboards", + Version: version, + Snapshot: mage.Snapshot, + Files: map[string]mage.PackageFile{ + ".build_hash.txt": mage.PackageFile{ + Content: "{{ commit }}\n", + }, + }, + OutputFile: "build/distributions/dashboards/{{.Name}}-{{.Version}}{{if .Snapshot}}-SNAPSHOT{{end}}", + } + + for _, beat := range Beats { + spec.Files[beat] = mage.PackageFile{ + Source: filepath.Join(beat, "_meta/kibana.generated"), + } + } + + return mage.PackageZip(spec.Evaluate()) +} + +// DumpVariables writes the template variables and values to stdout. +func DumpVariables() error { + return mage.DumpVariables() +} diff --git a/vendor/github.com/elastic/beats/make.bat b/vendor/github.com/elastic/beats/make.bat new file mode 100644 index 00000000..81de1ba9 --- /dev/null +++ b/vendor/github.com/elastic/beats/make.bat @@ -0,0 +1,11 @@ +@echo off + +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. +REM +REM After running this once you may invoke mage.exe directly. + +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install github.com/elastic/beats/vendor/github.com/magefile/mage + +mage %* diff --git a/vendor/github.com/elastic/beats/metricbeat/.gitignore b/vendor/github.com/elastic/beats/metricbeat/.gitignore index a429f41b..da7e5302 100644 --- a/vendor/github.com/elastic/beats/metricbeat/.gitignore +++ b/vendor/github.com/elastic/beats/metricbeat/.gitignore @@ -1,5 +1,4 @@ build -_meta/kibana _meta/beat.yml _meta/beat.reference.yml diff --git a/vendor/github.com/elastic/beats/metricbeat/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/Dockerfile index bc3bd50d..c2d6ffca 100644 --- a/vendor/github.com/elastic/beats/metricbeat/Dockerfile +++ b/vendor/github.com/elastic/beats/metricbeat/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.10.2 +FROM golang:1.10.3 MAINTAINER Nicolas Ruflin RUN set -x && \ diff --git a/vendor/github.com/elastic/beats/metricbeat/Makefile b/vendor/github.com/elastic/beats/metricbeat/Makefile index c9cfa74f..f42f8cca 100644 --- a/vendor/github.com/elastic/beats/metricbeat/Makefile +++ b/vendor/github.com/elastic/beats/metricbeat/Makefile @@ -1,11 +1,9 @@ # Name can be overwritten, as Metricbeat is also a library BEAT_NAME?=metricbeat BEAT_TITLE?=Metricbeat -BEAT_DESCRIPTION?=Metricbeat is a lightweight shipper for metrics. SYSTEM_TESTS?=true TEST_ENVIRONMENT?=true ES_BEATS?=.. -FIELDS_FILE_PATH?=module # Metricbeat can only be cross-compiled on platforms not requiring CGO. GOX_OS=netbsd linux windows @@ -18,12 +16,9 @@ include ${ES_BEATS}/libbeat/scripts/Makefile # Collects all module dashboards .PHONY: kibana kibana: - @rm -rf _meta/kibana - @mkdir -p _meta/kibana - @-cp -r module/*/_meta/kibana _meta/ - @-cp -r module/*/_meta/kibana _meta/ - @# Convert all dashboards to string - @python ${ES_BEATS}/libbeat/scripts/unpack_dashboards.py --glob="./_meta/kibana/6/dashboard/*.json" + @rm -rf _meta/kibana.generated + @mkdir -p _meta/kibana.generated + @-cp -pr module/*/_meta/kibana/* _meta/kibana.generated # Collects all module docs .PHONY: collect-docs @@ -51,20 +46,9 @@ imports: python-env @mkdir -p include @${PYTHON_ENV}/bin/python ${ES_BEATS}/script/generate_imports.py ${BEAT_PATH} -# This is called by the beats packer before building starts -.PHONY: before-build -before-build: -ifeq ($(BEAT_NAME), metricbeat) - # disable the system/load metricset on windows - sed -i.bk 's/- load/#- load/' $(PREFIX)/modules.d-win/system.yml - rm $(PREFIX)/modules.d-win/system.yml.bk - sed -i.bk 's/- load/#- load/' $(PREFIX)/metricbeat-win.reference.yml - rm $(PREFIX)/metricbeat-win.reference.yml.bk -endif - # Runs all collection steps and updates afterwards .PHONY: collect -collect: fields collect-docs configs kibana imports +collect: fields assets collect-docs configs kibana imports # Creates a new metricset. Requires the params MODULE and METRICSET .PHONY: create-metricset @@ -87,3 +71,10 @@ test-module: ## @testing Tests the given module. Needs $MODULE as param an run-m test-module: python-env update metricbeat.test go test -tags=integration ${BEAT_PATH}/module/${MODULE}/... -v . ${PYTHON_ENV}/bin/activate && INTEGRATION_TESTS=1 nosetests tests/system/test_${MODULE}.py + +.PHONY: assets +assets: libbeat_fields + go run ${ES_BEATS}/metricbeat/scripts/assets/assets.go ${ES_BEATS}/metricbeat/module + mkdir -p include/fields + go run ${ES_BEATS}/dev-tools/cmd/asset/asset.go -pkg include ${ES_BEATS}/metricbeat/_meta/fields.common.yml $(BEAT_NAME) > include/fields.go + go run ${ES_BEATS}/dev-tools/cmd/asset/asset.go -pkg include ${ES_BEATS}/libbeat/fields.yml $(BEAT_NAME) > ./include/fields/fields.go diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/config.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/config.go index 7dbf2b2d..7e1271a6 100644 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/config.go @@ -1,10 +1,29 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 token -import "github.com/elastic/beats/libbeat/processors" +import ( + "github.com/elastic/beats/libbeat/conditions" +) type config struct { - TokenPath string `config:"token_path"` - ConditionConfig *processors.ConditionConfig `config:"condition"` + TokenPath string `config:"token_path"` + ConditionConfig *conditions.Config `config:"condition"` } func defaultConfig() config { diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/token.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/token.go index 5f88f0db..5471f874 100644 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/token.go +++ b/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/token.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 token import ( @@ -8,8 +25,8 @@ import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/bus" "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/conditions" "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/processors" ) func init() { @@ -18,13 +35,13 @@ func init() { type tokenAppender struct { TokenPath string - Condition *processors.Condition + Condition conditions.Condition } // NewTokenAppender creates a token appender that can append a bearer token required to authenticate with // protected endpoints func NewTokenAppender(cfg *common.Config) (autodiscover.Appender, error) { - cfgwarn.Beta("The token appender is beta") + cfgwarn.Deprecate("7.0.0", "token appender is deprecated in favor of bearer_token_file config parameter") conf := defaultConfig() err := cfg.Unpack(&conf) @@ -32,10 +49,10 @@ func NewTokenAppender(cfg *common.Config) (autodiscover.Appender, error) { return nil, fmt.Errorf("unable to unpack config due to error: %v", err) } - var cond *processors.Condition + var cond conditions.Condition if conf.ConditionConfig != nil { // Attempt to create a condition. If fails then report error - cond, err = processors.NewCondition(conf.ConditionConfig) + cond, err = conditions.NewCondition(conf.ConditionConfig) if err != nil { return nil, fmt.Errorf("unable to create condition due to error: %v", err) } diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/token_test.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/token_test.go deleted file mode 100644 index 1721762b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/appender/kubernetes/token/token_test.go +++ /dev/null @@ -1,91 +0,0 @@ -package token - -import ( - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" -) - -func TestTokenAppender(t *testing.T) { - tests := []struct { - eventConfig string - event bus.Event - result common.MapStr - config string - }{ - // Appender without a condition should apply the config regardless - // Empty event config should return a config with only the headers - { - event: bus.Event{}, - result: common.MapStr{ - "headers": map[string]interface{}{ - "Authorization": "Bearer foo bar", - }, - }, - eventConfig: "", - config: ` -token_path: "test" -`, - }, - // Metricbeat module config should return a config that has headers section - { - event: bus.Event{}, - result: common.MapStr{ - "module": "prometheus", - "hosts": []interface{}{"1.2.3.4:8080"}, - "headers": map[string]interface{}{ - "Authorization": "Bearer foo bar", - }, - }, - eventConfig: ` -module: prometheus -hosts: ["1.2.3.4:8080"] -`, - config: ` -token_path: "test" -`, - }, - } - - for _, test := range tests { - config, err := common.NewConfigWithYAML([]byte(test.config), "") - if err != nil { - t.Fatal(err) - } - - eConfig, err := common.NewConfigWithYAML([]byte(test.eventConfig), "") - if err != nil { - t.Fatal(err) - } - - test.event["config"] = []*common.Config{eConfig} - writeFile("test", "foo bar") - - appender, err := NewTokenAppender(config) - assert.Nil(t, err) - assert.NotNil(t, appender) - - appender.Append(test.event) - cfgs, _ := test.event["config"].([]*common.Config) - assert.Equal(t, len(cfgs), 1) - - out := common.MapStr{} - cfgs[0].Unpack(&out) - - assert.Equal(t, out, test.result) - deleteFile("test") - } -} - -func writeFile(name, message string) { - ioutil.WriteFile(name, []byte(message), os.ModePerm) -} - -func deleteFile(name string) { - os.Remove(name) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/autodiscover.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/autodiscover.go index 80fbcb35..669d8e44 100644 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/autodiscover.go +++ b/vendor/github.com/elastic/beats/metricbeat/autodiscover/autodiscover.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( @@ -32,8 +49,7 @@ func (m *AutodiscoverAdapter) CreateConfig(e bus.Event) ([]*common.Config, error // CheckConfig tests given config to check if it will work or not, returns errors in case it won't work func (m *AutodiscoverAdapter) CheckConfig(c *common.Config) error { - // TODO implment config check for all modules - return nil + return m.factory.CheckConfig(c) } // Create a module or prospector from the given config diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/config.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/config.go index d1f8c99a..f3a33b12 100644 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 hints import "github.com/elastic/beats/metricbeat/mb" diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/metrics.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/metrics.go index fc9e284e..42b20062 100644 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/metrics.go +++ b/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/metrics.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 hints import ( @@ -65,6 +82,20 @@ func (m *metricHints) CreateConfig(event bus.Event) []*common.Config { return config } + modulesConfig := m.getModules(hints) + if modulesConfig != nil { + configs := []*common.Config{} + for _, cfg := range modulesConfig { + if config, err := common.NewConfigFrom(cfg); err == nil { + configs = append(configs, config) + } + } + logp.Debug("hints.builder", "generated config %+v", configs) + // Apply information in event to the template to generate the final config + return template.ApplyConfigTemplate(event, configs) + + } + mod := m.getModule(hints) if mod == "" { return config @@ -76,6 +107,7 @@ func (m *metricHints) CreateConfig(event bus.Event) []*common.Config { tout := m.getTimeout(hints) ival := m.getPeriod(hints) sslConf := m.getSSLConfig(hints) + procs := m.getProcessors(hints) moduleConfig := common.MapStr{ "module": mod, @@ -85,6 +117,7 @@ func (m *metricHints) CreateConfig(event bus.Event) []*common.Config { "period": ival, "enabled": true, "ssl": sslConf, + "processors": procs, } if ns != "" { @@ -98,14 +131,13 @@ func (m *metricHints) CreateConfig(event bus.Event) []*common.Config { if err != nil { logp.Debug("hints.builder", "config merge failed with error: %v", err) } - logp.Debug("hints.builder", "generated config: %v", *cfg) + logp.Debug("hints.builder", "generated config: +%v", *cfg) config = append(config, cfg) // Apply information in event to the template to generate the final config // This especially helps in a scenario where endpoints are configured as: // co.elastic.metrics/hosts= "${data.host}:9090" - config = template.ApplyConfigTemplate(event, config) - return config + return template.ApplyConfigTemplate(event, config) } func (m *metricHints) getModule(hints common.MapStr) string { @@ -168,3 +200,12 @@ func (m *metricHints) getTimeout(hints common.MapStr) string { func (m *metricHints) getSSLConfig(hints common.MapStr) common.MapStr { return builder.GetHintMapStr(hints, m.Key, ssl) } + +func (m *metricHints) getModules(hints common.MapStr) []common.MapStr { + return builder.GetHintAsConfigs(hints, m.Key) +} + +func (m *metricHints) getProcessors(hints common.MapStr) []common.MapStr { + return builder.GetProcessors(hints, m.Key) + +} diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/metrics_test.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/metrics_test.go deleted file mode 100644 index 332bd88b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/builder/hints/metrics_test.go +++ /dev/null @@ -1,207 +0,0 @@ -package hints - -import ( - "sort" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/bus" - "github.com/elastic/beats/metricbeat/mb" -) - -func TestGenerateHints(t *testing.T) { - tests := []struct { - message string - event bus.Event - len int - result common.MapStr - }{ - { - message: "Empty event hints should return empty config", - event: bus.Event{ - "host": "1.2.3.4", - "kubernetes": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - "docker": common.MapStr{ - "container": common.MapStr{ - "name": "foobar", - "id": "abc", - }, - }, - }, - len: 0, - result: common.MapStr{}, - }, - { - message: "Hints without host should return nothing", - event: bus.Event{ - "hints": common.MapStr{ - "metrics": common.MapStr{ - "module": "mockmodule", - }, - }, - }, - len: 0, - result: common.MapStr{}, - }, - { - message: "Only module hint should return all metricsets", - event: bus.Event{ - "host": "1.2.3.4", - "hints": common.MapStr{ - "metrics": common.MapStr{ - "module": "mockmodule", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "mockmodule", - "metricsets": []string{"one", "two"}, - "timeout": "3s", - "period": "1m", - "enabled": true, - }, - }, - { - message: "metricsets hint works", - event: bus.Event{ - "host": "1.2.3.4", - "hints": common.MapStr{ - "metrics": common.MapStr{ - "module": "mockmodule", - "metricsets": "one", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "mockmodule", - "metricsets": []string{"one"}, - "timeout": "3s", - "period": "1m", - "enabled": true, - }, - }, - { - message: "Only module, it should return defaults", - event: bus.Event{ - "host": "1.2.3.4", - "hints": common.MapStr{ - "metrics": common.MapStr{ - "module": "mockmoduledefaults", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "mockmoduledefaults", - "metricsets": []string{"default"}, - "timeout": "3s", - "period": "1m", - "enabled": true, - }, - }, - { - message: "Module, namespace, host hint should return valid config with port should return hosts for " + - "docker host network scenario", - event: bus.Event{ - "host": "1.2.3.4", - "hints": common.MapStr{ - "metrics": common.MapStr{ - "module": "mockmoduledefaults", - "namespace": "test", - "hosts": "${data.host}:9090", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "mockmoduledefaults", - "namespace": "test", - "metricsets": []string{"default"}, - "timeout": "3s", - "period": "1m", - "enabled": true, - "hosts": []interface{}{"1.2.3.4:9090"}, - }, - }, - { - message: "Module, namespace, host hint should return valid config", - event: bus.Event{ - "host": "1.2.3.4", - "port": 9090, - "hints": common.MapStr{ - "metrics": common.MapStr{ - "module": "mockmoduledefaults", - "namespace": "test", - "hosts": "${data.host}:9090", - }, - }, - }, - len: 1, - result: common.MapStr{ - "module": "mockmoduledefaults", - "namespace": "test", - "metricsets": []string{"default"}, - "hosts": []interface{}{"1.2.3.4:9090"}, - "timeout": "3s", - "period": "1m", - "enabled": true, - }, - }, - } - for _, test := range tests { - mockRegister := mb.NewRegister() - mockRegister.MustAddMetricSet("mockmodule", "one", NewMockMetricSet, mb.DefaultMetricSet()) - mockRegister.MustAddMetricSet("mockmodule", "two", NewMockMetricSet, mb.DefaultMetricSet()) - mockRegister.MustAddMetricSet("mockmoduledefaults", "default", NewMockMetricSet, mb.DefaultMetricSet()) - mockRegister.MustAddMetricSet("mockmoduledefaults", "other", NewMockMetricSet) - - m := metricHints{ - Key: defaultConfig().Key, - Registry: mockRegister, - } - cfgs := m.CreateConfig(test.event) - assert.Equal(t, len(cfgs), test.len) - - if test.len != 0 { - config := common.MapStr{} - err := cfgs[0].Unpack(&config) - assert.Nil(t, err, test.message) - - // metricests order is random, order it for tests - if v, err := config.GetValue("metricsets"); err == nil { - if msets, ok := v.([]interface{}); ok { - metricsets := make([]string, len(msets)) - for i, v := range msets { - metricsets[i] = v.(string) - } - sort.Strings(metricsets) - config["metricsets"] = metricsets - } - } - - assert.Equal(t, test.result, config, test.message) - } - - } -} - -type MockMetricSet struct { - mb.BaseMetricSet -} - -func NewMockMetricSet(base mb.BaseMetricSet) (mb.MetricSet, error) { - return &MockMetricSet{}, nil -} - -func (ms *MockMetricSet) Fetch(report mb.Reporter) { - -} diff --git a/vendor/github.com/elastic/beats/metricbeat/autodiscover/include.go b/vendor/github.com/elastic/beats/metricbeat/autodiscover/include.go index b2f72b50..37d6a683 100644 --- a/vendor/github.com/elastic/beats/metricbeat/autodiscover/include.go +++ b/vendor/github.com/elastic/beats/metricbeat/autodiscover/include.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 autodiscover import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/beater/config.go b/vendor/github.com/elastic/beats/metricbeat/beater/config.go index c58e7a0f..bdf0786a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/beater/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/beater/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/beater/doc.go b/vendor/github.com/elastic/beats/metricbeat/beater/doc.go index a2c4227c..e6370905 100644 --- a/vendor/github.com/elastic/beats/metricbeat/beater/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/beater/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater provides the implementation of the libbeat Beater interface for Metricbeat and functions for running Metricbeat Modules on their own. diff --git a/vendor/github.com/elastic/beats/metricbeat/beater/metricbeat.go b/vendor/github.com/elastic/beats/metricbeat/beater/metricbeat.go index dd11cba1..fd5ea640 100644 --- a/vendor/github.com/elastic/beats/metricbeat/beater/metricbeat.go +++ b/vendor/github.com/elastic/beats/metricbeat/beater/metricbeat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 beater import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/cmd/modules.go b/vendor/github.com/elastic/beats/metricbeat/cmd/modules.go index c2baf2c2..08362356 100644 --- a/vendor/github.com/elastic/beats/metricbeat/cmd/modules.go +++ b/vendor/github.com/elastic/beats/metricbeat/cmd/modules.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/cmd/root.go b/vendor/github.com/elastic/beats/metricbeat/cmd/root.go index 44e94849..13b7c4bf 100644 --- a/vendor/github.com/elastic/beats/metricbeat/cmd/root.go +++ b/vendor/github.com/elastic/beats/metricbeat/cmd/root.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cmd import ( @@ -11,6 +28,7 @@ import ( // import modules _ "github.com/elastic/beats/metricbeat/include" + _ "github.com/elastic/beats/metricbeat/include/fields" ) // Name of this beat diff --git a/vendor/github.com/elastic/beats/metricbeat/cmd/test/modules.go b/vendor/github.com/elastic/beats/metricbeat/cmd/test/modules.go index c493eb95..14565805 100644 --- a/vendor/github.com/elastic/beats/metricbeat/cmd/test/modules.go +++ b/vendor/github.com/elastic/beats/metricbeat/cmd/test/modules.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 test import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/docker-compose.yml b/vendor/github.com/elastic/beats/metricbeat/docker-compose.yml index 537ecaab..6d98515c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docker-compose.yml +++ b/vendor/github.com/elastic/beats/metricbeat/docker-compose.yml @@ -17,13 +17,14 @@ services: - ./module/couchbase/_meta/env - ./module/dropwizard/_meta/env - ./module/elasticsearch/_meta/env + - ./module/envoyproxy/_meta/env - ./module/etcd/_meta/env - ./module/haproxy/_meta/env - ./module/http/_meta/env - ./module/jolokia/_meta/env - ./module/kafka/_meta/env - ./module/kibana/_meta/env - - ./module/kubernetes/_meta/env + #- ./module/kubernetes/_meta/env - ./module/logstash/_meta/env - ./module/memcached/_meta/env - ./module/mongodb/_meta/env @@ -35,6 +36,7 @@ services: - ./module/prometheus/_meta/env - ./module/rabbitmq/_meta/env - ./module/redis/_meta/env + - ./module/traefik/_meta/env - ./module/uwsgi/_meta/env - ./module/zookeeper/_meta/env @@ -68,6 +70,9 @@ services: - "http.host=0.0.0.0" - "xpack.security.enabled=false" + envoyproxy: + build: ./module/envoyproxy/_meta + etcd: build: ./module/etcd/_meta @@ -91,28 +96,35 @@ services: build: ./module/jolokia/_meta kafka: - build: ./module/kafka/_meta + build: + context: ./module/kafka/_meta + dockerfile: Dockerfile.1.1.0 + + kafka_0_10_2: + build: + context: ./module/kafka/_meta + dockerfile: Dockerfile.0.10.2 kibana: build: ./module/kibana/_meta - kubernetes: - build: ./module/kubernetes/_meta - network_mode: host - pid: host - privileged: true - volumes: - - /:/rootfs:ro - - /sys:/sys - - /var/lib/docker:/var/lib/docker - - /var/run:/var/run - - kubestate: - build: - context: ./module/kubernetes/_meta/ - dockerfile: Dockerfile.kube-state - depends_on: - - kubernetes + #kubernetes: + # build: ./module/kubernetes/_meta + # network_mode: host + # pid: host + # privileged: true + # volumes: + # - /:/rootfs:ro + # - /sys:/sys + # - /var/lib/docker:/var/lib/docker + # - /var/run:/var/run + + #kubestate: + # build: + # context: ./module/kubernetes/_meta/ + # dockerfile: Dockerfile.kube-state + # depends_on: + # - kubernetes logstash: build: ./module/logstash/_meta @@ -147,6 +159,9 @@ services: redis: build: ./module/redis/_meta + traefik: + build: ./module/traefik/_meta + uwsgi_tcp: build: ./module/uwsgi/_meta command: uwsgi --http :8080 --master --processes 1 --threads 2 --stats 0.0.0.0:9191 --memory-report --wsgi-file app.py diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/autodiscover-hints.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/autodiscover-hints.asciidoc index 28495b65..8e5833b3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/autodiscover-hints.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/autodiscover-hints.asciidoc @@ -1,4 +1,72 @@ -Metricbeat supports a autodiscover based on hints from the provider: +{beatname_uc} supports autodiscover based on hints from the provider. The `hints` system looks for +hints in Kubernetes Pod annotations or Docker labels which have the prefix `co.elastic.metrics`. As soon as +the container starts, {beatname_uc} will check if it contains any hints and launch the proper config for +it. Hints tell {beatname_uc} how to get metrics for the given container. This is the full list of supported hints: + +[float] +===== `co.elastic.metrics/module` + +{beatname_uc} module to use to fetch metrics. See <> for the list of supported modules. + +[float] +===== `co.elastic.metrics/hosts` + +Hosts setting to use with the given module. Hosts can include `${data.host}` and `${data.port}` +values from the autodiscover event, ie: `${data.host}:80`. + +[float] +===== `co.elastic.metrics/metricsets` + +List of metricsets to use, comma separated. If no metricsets are provided, default metricsets for the module +are used. + +[float] +===== `co.elastic.metrics/period` + +The time interval for metrics retrieval, ie: 10s + +[float] +===== `co.elastic.metrics/timeout` + +Metrics retrieval timeout, default: 3s + +[float] +===== `co.elastic.metrics/ssl.*` + +SSL parameters, as seen in <>. + +[float] +===== `co.elastic.logs/raw` +When an entire module configuration needs to be completely set the `raw` hint can be used. You can provide a +stringified JSON of the input configuration. `raw` overrides every other hint and can be used to create bot a single or +a list of configurations. + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +co.elastic.metrics/raw: "[{\"enabled\":true,\"metricsets\":[\"default\"],\"module\":\"mockmoduledefaults\",\"period\":\"1m\",\"timeout\":\"3s\"}]" +------------------------------------------------------------------------------------- + +[float] +===== `co.elastic.metrics/processors` + +Define a processor to be added to the {beatname_uc} module configuration. See <> for the list +of supported processors. + +In order to provide ordering of the processor definition, numbers can be provided. If not, the hints builder will do +arbitrary ordering: + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +co.elastic.logs/processors.1.add_locale.abbrevation: "MST" +co.elastic.logs/processors.add_locale.abbrevation: "PST" +------------------------------------------------------------------------------------- + +In the above sample the processor definition tagged with `1` would be executed first. + +[float] +=== Kubernetes + +Kubernetes autodiscover provider supports hints in Pod annotations. To enable it just set `hints.enabled`: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- @@ -11,10 +79,7 @@ metricbeat.autodiscover: This configuration enables the `hints` autodiscover for Kubernetes. The `hints` system looks for hints in Kubernetes annotations or Docker labels which have the prefix `co.elastic.metrics`. -[float] -=== Kubernetes - -You can annotate Kubernetes Pods with useful info to spin up Metricbeat modules: +You can annotate Kubernetes Pods with useful info to spin up {beatname_uc} modules: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- @@ -23,27 +88,33 @@ annotations: co.elastic.metrics/metricsets: collector co.elastic.metrics/hosts: '${data.host}:9090' co.elastic.metrics/period: 1m - co.elastic.metrics.sidecar/hosts: '${data.host}:8080' - co.elastic.metrics.sidecar/period: 10m ------------------------------------------------------------------------------------- The above annotations are used to spin up a Prometheus collector metricset and it polls the -parent container on port `9090` at a 1 minute interval and the container named `sidecar` on -port `8080` every 10 minutes. If no metricsets parameter is given, Metricbeat will use default -metricsets of the module, or all metricsets if there is no default list. +parent container on port `9090` at a 1 minute interval. + +[float] +===== Multiple containers + +When a Pod has multiple containers, these settings are shared. To set hints specific to a container in +the pod you can put the container name in the hint. -Hints can also be provided for the following module configuration parameters: +When a pod has multiple containers, the settings are shared unless you put the container name in the +hint. For example, these hints configure a common behavior for all containers in the Pod, and sets a specific +`hosts` hint for the container called `sidecar`. ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- -timeout -ssl.* +annotations: + co.elastic.metrics/module: apache + co.elastic.metrics/hosts: '${data.host}:80' + co.elastic.metrics.sidecar/hosts: '${data.host}:8080' ------------------------------------------------------------------------------------- [float] === Docker -Docker autodiscover provider supports hints in labels, to enable it just set `hints.enabled`: +Docker autodiscover provider supports hints in labels. To enable it just set `hints.enabled`: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- @@ -53,15 +124,15 @@ metricbeat.autodiscover: hints.enabled: true ------------------------------------------------------------------------------------- -You can label Docker containers with useful info to spin up Metricbeat modules, for example: +You can label Docker containers with useful info to spin up {beatname_uc} modules, for example: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------------- - co.elastic.metrics/module: prometheus - co.elastic.metrics/metricsets: collector - co.elastic.metrics/hosts: '${data.host}:9090' - co.elastic.metrics/period: 1m + co.elastic.metrics/module: nginx + co.elastic.metrics/metricsets: stubstatus + co.elastic.metrics/hosts: '${data.host}:80' + co.elastic.metrics/period: 10s ------------------------------------------------------------------------------------- -The above labels would allow Metricbeat to configure a Prometheus collector to poll port `9090` +The above labels would allow {beatname_uc} to configure a Prometheus collector to poll port `9090` of the Docker container every 1 minute. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/configuring-howto.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/configuring-howto.asciidoc index ee570587..dda9e5b5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/configuring-howto.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/configuring-howto.asciidoc @@ -36,6 +36,7 @@ The following topics describe how to configure Metricbeat: * <> * <> * <> +* <> * <<{beatname_lc}-reference-yml>> -- @@ -76,4 +77,6 @@ include::../../libbeat/docs/yaml.asciidoc[] include::../../libbeat/docs/regexp.asciidoc[] +include::../../libbeat/docs/http-endpoint.asciidoc[] + include::../../libbeat/docs/reference-yml.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/fields.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/fields.asciidoc index 9de7e38b..a20ee767 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/fields.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/fields.asciidoc @@ -23,6 +23,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -47,6 +48,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -358,6 +360,9 @@ Namespace name -- type: keyword +Node host + + -- *`aerospike.namespace.node.name`*:: @@ -3198,7 +3203,7 @@ Network interface name. [float] == in fields -Incoming network stats. +Incoming network stats per second. @@ -3247,7 +3252,7 @@ Total number of incoming packets. [float] == out fields -Outgoing network stats. +Outgoing network stats per second. @@ -3291,6 +3296,104 @@ type: long Total number of outgoing packets. +-- + +[float] +== inbound fields + +Incoming network stats since the container started. + + + +*`docker.network.inbound.bytes`*:: ++ +-- +type: long + +format: bytes + +Total number of incoming bytes. + + +-- + +*`docker.network.inbound.dropped`*:: ++ +-- +type: long + +Total number of dropped incoming packets. + + +-- + +*`docker.network.inbound.errors`*:: ++ +-- +type: long + +Total errors on incoming packets. + + +-- + +*`docker.network.inbound.packets`*:: ++ +-- +type: long + +Total number of incoming packets. + + +-- + +[float] +== outbound fields + +Outgoing network stats since the container started. + + + +*`docker.network.outbound.bytes`*:: ++ +-- +type: long + +format: bytes + +Total number of outgoing bytes. + + +-- + +*`docker.network.outbound.dropped`*:: ++ +-- +type: long + +Total number of dropped outgoing packets. + + +-- + +*`docker.network.outbound.errors`*:: ++ +-- +type: long + +Total errors on outgoing packets. + + +-- + +*`docker.network.outbound.packets`*:: ++ +-- +type: long + +Total number of outgoing packets. + + -- [[exported-fields-dropwizard]] @@ -3350,141 +3453,132 @@ Elasticsearch state id. -- [float] -== index fields +== cluster.stats fields -index +Cluster stats -*`elasticsearch.index.name`*:: +*`elasticsearch.cluster.stats.status`*:: + -- type: keyword -Index name. +Cluster status (green, yellow, red). -- +[float] +== nodes fields -*`elasticsearch.index.total.docs.count`*:: +Nodes statistics. + + + +*`elasticsearch.cluster.stats.nodes.count`*:: + -- type: long -Total number of documents in the index. +Total number of nodes in cluster. -- -*`elasticsearch.index.total.docs.deleted`*:: +*`elasticsearch.cluster.stats.nodes.master`*:: + -- type: long -Total number of deleted documents in the index. +Number of master-eligible nodes in cluster. -- -*`elasticsearch.index.total.store.size.bytes`*:: +*`elasticsearch.cluster.stats.nodes.data`*:: + -- type: long -format: bytes - -Total size of the index in bytes. +Number of data nodes in cluster. -- -*`elasticsearch.index.total.segments.count`*:: -+ --- -type: long +[float] +== indices fields -Total number of index segments. +Indices statistics. --- -*`elasticsearch.index.total.segments.memory.bytes`*:: +*`elasticsearch.cluster.stats.indices.count`*:: + -- type: long -format: bytes - -Total number of memory used by the segments in bytes. +Total number of indices in cluster. -- [float] -== index.summary fields - -index +== shards fields +Shard statistics. -*`elasticsearch.index.summary.primaries.docs.count`*:: +*`elasticsearch.cluster.stats.indices.shards.count`*:: + -- type: long -Total number of documents in the index. +Total number of shards in cluster. -- -*`elasticsearch.index.summary.primaries.docs.deleted`*:: +*`elasticsearch.cluster.stats.indices.shards.primaries`*:: + -- type: long -Total number of deleted documents in the index. +Total number of primary shards in cluster. -- -*`elasticsearch.index.summary.primaries.store.size.bytes`*:: +*`elasticsearch.cluster.stats.indices.fielddata.memory.bytes`*:: + -- type: long -format: bytes - -Total size of the index in bytes. +Memory used for fielddata. -- -*`elasticsearch.index.summary.primaries.segments.count`*:: -+ --- -type: long +[float] +== index fields -Total number of index segments. +index --- -*`elasticsearch.index.summary.primaries.segments.memory.bytes`*:: +*`elasticsearch.index.name`*:: + -- -type: long - -format: bytes +type: keyword -Total number of memory used by the segments in bytes. +Index name. -- -*`elasticsearch.index.summary.total.docs.count`*:: +*`elasticsearch.index.total.docs.count`*:: + -- type: long @@ -3494,7 +3588,7 @@ Total number of documents in the index. -- -*`elasticsearch.index.summary.total.docs.deleted`*:: +*`elasticsearch.index.total.docs.deleted`*:: + -- type: long @@ -3504,7 +3598,7 @@ Total number of deleted documents in the index. -- -*`elasticsearch.index.summary.total.store.size.bytes`*:: +*`elasticsearch.index.total.store.size.bytes`*:: + -- type: long @@ -3516,7 +3610,7 @@ Total size of the index in bytes. -- -*`elasticsearch.index.summary.total.segments.count`*:: +*`elasticsearch.index.total.segments.count`*:: + -- type: long @@ -3526,7 +3620,7 @@ Total number of index segments. -- -*`elasticsearch.index.summary.total.segments.memory.bytes`*:: +*`elasticsearch.index.total.segments.memory.bytes`*:: + -- type: long @@ -3539,5823 +3633,7789 @@ Total number of memory used by the segments in bytes. -- [float] -== node fields +== index.recovery fields -node +index -*`elasticsearch.node.name`*:: +*`elasticsearch.index.recovery.id`*:: + -- -type: keyword +type: long -Node name. +Shard recovery id. -- -*`elasticsearch.node.version`*:: +*`elasticsearch.index.recovery.type`*:: + -- type: keyword -Node version. +Shard recovery type. -- -[float] -== jvm fields +*`elasticsearch.index.recovery.primary`*:: ++ +-- +type: boolean -JVM Info. +True if primary shard. +-- -*`elasticsearch.node.jvm.version`*:: +*`elasticsearch.index.recovery.stage`*:: + -- type: keyword -JVM version. +Recovery stage. -- -*`elasticsearch.node.jvm.memory.heap.init.bytes`*:: +*`elasticsearch.index.recovery.target.id`*:: + -- -type: long - -format: bytes +type: keyword -Heap init used by the JVM in bytes. +Target node id. -- -*`elasticsearch.node.jvm.memory.heap.max.bytes`*:: +*`elasticsearch.index.recovery.target.host`*:: + -- -type: long - -format: bytes +type: ip -Heap max used by the JVM in bytes. +Target node host address. -- -*`elasticsearch.node.jvm.memory.nonheap.init.bytes`*:: +*`elasticsearch.index.recovery.target.name`*:: + -- -type: long - -format: bytes +type: keyword -Non-Heap init used by the JVM in bytes. +Target node name. -- -*`elasticsearch.node.jvm.memory.nonheap.max.bytes`*:: +*`elasticsearch.index.recovery.source.id`*:: + -- -type: long - -format: bytes +type: keyword -Non-Heap max used by the JVM in bytes. +Source node id. -- -*`elasticsearch.node.process.mlockall`*:: +*`elasticsearch.index.recovery.source.host`*:: + -- -type: boolean +type: ip -If process locked in memory. +Source node host address. -- -[float] -== node.stats fields +*`elasticsearch.index.recovery.source.name`*:: ++ +-- +type: keyword -node_stats +Source node name. +-- [float] -== indices fields - -Node indices stats - - +== index.summary fields -*`elasticsearch.node.stats.indices.docs.count`*:: -+ --- -type: long +index -Total number of existing documents. --- -*`elasticsearch.node.stats.indices.docs.deleted`*:: +*`elasticsearch.index.summary.primaries.docs.count`*:: + -- type: long -Total number of deleted documents. +Total number of documents in the index. -- -*`elasticsearch.node.stats.indices.segments.count`*:: +*`elasticsearch.index.summary.primaries.docs.deleted`*:: + -- type: long -Total number of segments. +Total number of deleted documents in the index. -- -*`elasticsearch.node.stats.indices.segments.memory.bytes`*:: +*`elasticsearch.index.summary.primaries.store.size.bytes`*:: + -- type: long format: bytes -Total size of segments in bytes. +Total size of the index in bytes. -- -*`elasticsearch.node.stats.indices.store.size.bytes`*:: +*`elasticsearch.index.summary.primaries.segments.count`*:: + -- type: long -Total size of the store in bytes. +Total number of index segments. -- -[float] -== jvm.mem.pools fields - -JVM memory pool stats - +*`elasticsearch.index.summary.primaries.segments.memory.bytes`*:: ++ +-- +type: long +format: bytes -[float] -== old fields +Total number of memory used by the segments in bytes. -Old memory pool stats. +-- -*`elasticsearch.node.stats.jvm.mem.pools.old.max.bytes`*:: +*`elasticsearch.index.summary.total.docs.count`*:: + -- type: long -format: bytes +Total number of documents in the index. -Max bytes. -- -*`elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes`*:: +*`elasticsearch.index.summary.total.docs.deleted`*:: + -- type: long -format: bytes +Total number of deleted documents in the index. -Peak bytes. -- -*`elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes`*:: +*`elasticsearch.index.summary.total.store.size.bytes`*:: + -- type: long format: bytes -Peak max bytes. +Total size of the index in bytes. + -- -*`elasticsearch.node.stats.jvm.mem.pools.old.used.bytes`*:: +*`elasticsearch.index.summary.total.segments.count`*:: ++ +-- +type: long + +Total number of index segments. + + +-- + +*`elasticsearch.index.summary.total.segments.memory.bytes`*:: + -- type: long format: bytes -Used bytes. +Total number of memory used by the segments in bytes. + -- [float] -== young fields +== ml.job fields -Young memory pool stats. +ml -*`elasticsearch.node.stats.jvm.mem.pools.young.max.bytes`*:: +*`elasticsearch.ml.job.id`*:: + -- -type: long +type: keyword -format: bytes +Unique ml job id. -Max bytes. -- -*`elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes`*:: +*`elasticsearch.ml.job.state`*:: + -- -type: long +type: keyword -format: bytes +Job state. -Peak bytes. -- -*`elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes`*:: +*`elasticsearch.ml.job.data_counts.processed_record_count`*:: + -- type: long -format: bytes +Processed data events. -Peak max bytes. -- -*`elasticsearch.node.stats.jvm.mem.pools.young.used.bytes`*:: +*`elasticsearch.ml.job.data_counts.invalid_date_count`*:: + -- type: long -format: bytes +The number of records with either a missing date field or a date that could not be parsed. -Used bytes. -- [float] -== survivor fields +== node fields -Survivor memory pool stats. +node -*`elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes`*:: +*`elasticsearch.node.name`*:: ++ +-- +type: keyword + +Node name. + + +-- + +*`elasticsearch.node.version`*:: ++ +-- +type: keyword + +Node version. + + +-- + +[float] +== jvm fields + +JVM Info. + + + +*`elasticsearch.node.jvm.version`*:: ++ +-- +type: keyword + +JVM version. + + +-- + +*`elasticsearch.node.jvm.memory.heap.init.bytes`*:: + -- type: long format: bytes -Max bytes. +Heap init used by the JVM in bytes. + -- -*`elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes`*:: +*`elasticsearch.node.jvm.memory.heap.max.bytes`*:: + -- type: long format: bytes -Peak bytes. +Heap max used by the JVM in bytes. + -- -*`elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes`*:: +*`elasticsearch.node.jvm.memory.nonheap.init.bytes`*:: + -- type: long format: bytes -Peak max bytes. +Non-Heap init used by the JVM in bytes. + -- -*`elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes`*:: +*`elasticsearch.node.jvm.memory.nonheap.max.bytes`*:: + -- type: long format: bytes -Used bytes. +Non-Heap max used by the JVM in bytes. + + +-- + +*`elasticsearch.node.process.mlockall`*:: ++ +-- +type: boolean + +If process locked in memory. + -- [float] -== jvm.gc.collectors fields +== node.stats fields -GC collector stats. +node_stats [float] -== old.collection fields +== indices fields -Old collection gc. +Node indices stats -*`elasticsearch.node.stats.jvm.gc.collectors.old.collection.count`*:: +*`elasticsearch.node.stats.indices.docs.count`*:: + -- type: long +Total number of existing documents. -- -*`elasticsearch.node.stats.jvm.gc.collectors.old.collection.ms`*:: +*`elasticsearch.node.stats.indices.docs.deleted`*:: + -- type: long +Total number of deleted documents. -- -[float] -== young.collection fields +*`elasticsearch.node.stats.indices.segments.count`*:: ++ +-- +type: long -Young collection gc. +Total number of segments. +-- -*`elasticsearch.node.stats.jvm.gc.collectors.young.collection.count`*:: +*`elasticsearch.node.stats.indices.segments.memory.bytes`*:: + -- type: long +format: bytes + +Total size of segments in bytes. -- -*`elasticsearch.node.stats.jvm.gc.collectors.young.collection.ms`*:: +*`elasticsearch.node.stats.indices.store.size.bytes`*:: + -- type: long +Total size of the store in bytes. -- [float] -== fs.summary fields +== jvm.mem.pools fields -File system summary +JVM memory pool stats -*`elasticsearch.node.stats.fs.summary.total.bytes`*:: +[float] +== old fields + +Old memory pool stats. + + + +*`elasticsearch.node.stats.jvm.mem.pools.old.max.bytes`*:: + -- type: long format: bytes - +Max bytes. -- -*`elasticsearch.node.stats.fs.summary.free.bytes`*:: +*`elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes`*:: + -- type: long format: bytes - +Peak bytes. -- -*`elasticsearch.node.stats.fs.summary.available.bytes`*:: +*`elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes`*:: + -- type: long format: bytes +Peak max bytes. + +-- + +*`elasticsearch.node.stats.jvm.mem.pools.old.used.bytes`*:: ++ +-- +type: long + +format: bytes +Used bytes. -- [float] -== cluster.pending_task fields +== young fields -`cluster.pending_task` contains a pending task description. +Young memory pool stats. -*`elasticsearch.cluster.pending_task.insert_order`*:: +*`elasticsearch.node.stats.jvm.mem.pools.young.max.bytes`*:: + -- type: long -Insert order +format: bytes +Max bytes. -- -*`elasticsearch.cluster.pending_task.priority`*:: +*`elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes`*:: + -- type: long -Priority +format: bytes +Peak bytes. -- -*`elasticsearch.cluster.pending_task.source`*:: +*`elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes`*:: + -- -type: keyword +type: long -Source. For example: put-mapping +format: bytes +Peak max bytes. -- -*`elasticsearch.cluster.pending_task.time_in_queue.ms`*:: +*`elasticsearch.node.stats.jvm.mem.pools.young.used.bytes`*:: + -- type: long -Time in queue +format: bytes +Used bytes. -- [float] -== shard fields +== survivor fields -shard fields +Survivor memory pool stats. -*`elasticsearch.shard.primary`*:: +*`elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes`*:: + -- -type: boolean +type: long -True if this is the primary shard. +format: bytes +Max bytes. -- -*`elasticsearch.shard.number`*:: +*`elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes`*:: + -- type: long -The number of this shard. +format: bytes +Peak bytes. -- -*`elasticsearch.shard.state`*:: +*`elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes`*:: + -- -type: keyword +type: long -The state of this shard. +format: bytes +Peak max bytes. -- -[[exported-fields-etcd]] -== Etcd fields +*`elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes`*:: ++ +-- +type: long -etcd Module +format: bytes +Used bytes. +-- [float] -== etcd fields +== jvm.gc.collectors fields -`etcd` contains statistics that were read from Etcd +GC collector stats. [float] -== leader fields +== old.collection fields -Contains etcd leader statistics. +Old collection gc. -[float] -== followers.counts fields +*`elasticsearch.node.stats.jvm.gc.collectors.old.collection.count`*:: ++ +-- +type: long -The number of failed and successful Raft RPC requests. +-- -*`etcd.leader.followers.counts.followers.counts.success`*:: +*`elasticsearch.node.stats.jvm.gc.collectors.old.collection.ms`*:: + -- -type: integer +type: long --- -*`etcd.leader.followers.counts.followers.counts.fail`*:: -+ --- -type: integer -- [float] -== followers.latency fields +== young.collection fields -latency to each peer in the cluster +Young collection gc. -*`etcd.leader.followers.latency.followers.latency.average`*:: +*`elasticsearch.node.stats.jvm.gc.collectors.young.collection.count`*:: + -- -type: scaled_float +type: long --- -*`etcd.leader.followers.latency.followers.latency.current`*:: -+ --- -type: scaled_float -- -*`etcd.leader.followers.latency.followers.latency.maximum`*:: +*`elasticsearch.node.stats.jvm.gc.collectors.young.collection.ms`*:: + -- -type: scaled_float +type: long + + -- -*`etcd.leader.followers.latency.followers.latency.minimum`*:: +[float] +== fs.summary fields + +File system summary + + + +*`elasticsearch.node.stats.fs.summary.total.bytes`*:: + -- -type: integer +type: long + +format: bytes + + -- -*`etcd.leader.followers.latency.follower.latency.standardDeviation`*:: +*`elasticsearch.node.stats.fs.summary.free.bytes`*:: + -- -type: scaled_float +type: long + +format: bytes + + -- -*`etcd.leader.leader`*:: +*`elasticsearch.node.stats.fs.summary.available.bytes`*:: + -- -type: keyword +type: long + +format: bytes + + -- [float] -== self fields +== cluster.pending_task fields -Contains etcd self statistics. +`cluster.pending_task` contains a pending task description. -*`etcd.self.id`*:: +*`elasticsearch.cluster.pending_task.insert_order`*:: + -- -type: keyword +type: long -the unique identifier for the member +Insert order -- -*`etcd.self.leaderinfo.leader`*:: +*`elasticsearch.cluster.pending_task.priority`*:: + -- -type: keyword +type: long -id of the current leader member +Priority -- -*`etcd.self.leaderinfo.starttime`*:: +*`elasticsearch.cluster.pending_task.source`*:: + -- type: keyword +Source. For example: put-mapping + + -- -*`etcd.self.leaderinfo.uptime`*:: +*`elasticsearch.cluster.pending_task.time_in_queue.ms`*:: + -- -type: keyword +type: long -id of the current leader member +Time in queue -- -*`etcd.self.name`*:: +[float] +== shard fields + +shard fields + + + +*`elasticsearch.shard.primary`*:: + -- -type: keyword +type: boolean -this member's name +True if this is the primary shard. -- -*`etcd.self.recv.appendrequest.count`*:: +*`elasticsearch.shard.number`*:: + -- -type: integer +type: long -number of append requests this node has processed +The number of this shard. -- -*`etcd.self.recv.bandwithrate`*:: +*`elasticsearch.shard.state`*:: + -- -type: scaled_float +type: keyword -number of bytes per second this node is receiving (follower only) +The state of this shard. -- -*`etcd.self.recv.pkgrate`*:: +[[exported-fields-envoyproxy]] +== envoyproxy fields + +experimental[] +envoyproxy module + + + +[float] +== envoyproxy fields + + + + +[float] +== server fields + +Contains envoy proxy server stats + + + + +*`envoyproxy.server.cluster_manager.active_clusters`*:: + -- -type: scaled_float +type: integer -number of requests per second this node is receiving (follower only) +Number of currently active (warmed) clusters -- -*`etcd.self.send.appendrequest.count`*:: +*`envoyproxy.server.cluster_manager.cluster_added`*:: + -- type: integer -number of requests that this node has sent +Total clusters added (either via static config or CDS) -- -*`etcd.self.send.bandwithrate`*:: +*`envoyproxy.server.cluster_manager.cluster_modified`*:: + -- -type: scaled_float +type: integer -number of bytes per second this node is sending (leader only). This value is undefined on single member clusters. +Total clusters modified (via CDS) -- -*`etcd.self.send.pkgrate`*:: +*`envoyproxy.server.cluster_manager.cluster_removed`*:: + -- -type: scaled_float +type: integer -number of requests per second this node is sending (leader only). This value is undefined on single member clusters. +Total clusters removed (via CDS) -- -*`etcd.self.starttime`*:: +*`envoyproxy.server.cluster_manager.warming_clusters`*:: + -- -type: keyword +type: integer -the time when this node was started +Number of currently warming (not active) clusters -- -*`etcd.self.state`*:: + +*`envoyproxy.server.filesystem.flushed_by_timer`*:: + -- -type: keyword +type: integer -either leader or follower +Total number of times internal flush buffers are written to a file due to flush timeout -- -[float] -== store fields +*`envoyproxy.server.filesystem.reopen_failed`*:: ++ +-- +type: integer -The store statistics include information about the operations that this node has handled. +Total number of times a file was failed to be opened +-- -*`etcd.store.gets.success`*:: +*`envoyproxy.server.filesystem.write_buffered`*:: + -- type: integer +Total number of times file data is moved to Envoys internal flush buffer + + -- -*`etcd.store.gets.fail`*:: +*`envoyproxy.server.filesystem.write_completed`*:: + -- type: integer +Total number of times a file was written + + -- -*`etcd.store.sets.success`*:: +*`envoyproxy.server.filesystem.write_total_buffered`*:: + -- type: integer +Current total size of internal flush buffer in bytes + + -- -*`etcd.store.sets.fail`*:: + +*`envoyproxy.server.runtime.load_error`*:: + -- type: integer +Total number of load attempts that resulted in an error + + -- -*`etcd.store.delete.success`*:: +*`envoyproxy.server.runtime.load_success`*:: + -- type: integer +Total number of load attempts that were successful + + -- -*`etcd.store.delete.fail`*:: +*`envoyproxy.server.runtime.num_keys`*:: + -- type: integer +Number of keys currently loaded + + -- -*`etcd.store.update.success`*:: +*`envoyproxy.server.runtime.override_dir_exists`*:: + -- type: integer +Total number of loads that did use an override directory + + -- -*`etcd.store.update.fail`*:: +*`envoyproxy.server.runtime.override_dir_not_exists`*:: + -- type: integer +Total number of loads that did not use an override directory + + -- -*`etcd.store.create.success`*:: +*`envoyproxy.server.runtime.admin_overrides_active`*:: + -- type: integer -- -*`etcd.store.create.fail`*:: + +*`envoyproxy.server.listener_manager.listener_added`*:: + -- type: integer +Total listeners added (either via static config or LDS) + + -- -*`etcd.store.compareandswap.success`*:: +*`envoyproxy.server.listener_manager.listener_create_failure`*:: + -- type: integer +Total failed listener object additions to workers + + -- -*`etcd.store.compareandswap.fail`*:: +*`envoyproxy.server.listener_manager.listener_create_success`*:: + -- type: integer +Total listener objects successfully added to workers + + -- -*`etcd.store.compareanddelete.success`*:: +*`envoyproxy.server.listener_manager.listener_modified`*:: + -- type: integer +Total listeners modified (via LDS) + + -- -*`etcd.store.compareanddelete.fail`*:: +*`envoyproxy.server.listener_manager.listener_removed`*:: + -- type: integer +Total listeners removed (via LDS) + + -- -*`etcd.store.expire.count`*:: +*`envoyproxy.server.listener_manager.total_listeners_active`*:: + -- type: integer +Number of currently active listeners + + -- -*`etcd.store.watchers`*:: +*`envoyproxy.server.listener_manager.total_listeners_draining`*:: + -- type: integer --- +Number of currently draining listeners -[[exported-fields-golang]] -== Golang fields -Golang module +-- +*`envoyproxy.server.listener_manager.total_listeners_warming`*:: ++ +-- +type: integer +Number of currently warming listeners -[float] -== golang fields +-- +*`envoyproxy.server.stats.overflow`*:: ++ +-- +type: integer -[float] -== expvar fields +Total number of times Envoy cannot allocate a statistic due to a shortage of shared memory -expvar +-- -*`golang.expvar.cmdline`*:: +*`envoyproxy.server.server.days_until_first_cert_expiring`*:: + -- -type: keyword +type: integer -The cmdline of this golang program start with. +Number of days until the next certificate being managed will expire -- -[float] -== heap fields +*`envoyproxy.server.server.live`*:: ++ +-- +type: integer -The golang program heap information exposed by expvar. +1 if the server is not currently draining, 0 otherwise +-- -*`golang.heap.cmdline`*:: +*`envoyproxy.server.server.memory_allocated`*:: + -- -type: keyword +type: integer -The cmdline of this golang program start with. +Current amount of allocated memory in bytes -- -[float] -== gc fields +*`envoyproxy.server.server.memory_heap_size`*:: ++ +-- +type: integer -Garbage collector summary. +Current reserved heap size in bytes +-- -[float] -== total_pause fields +*`envoyproxy.server.server.parent_connections`*:: ++ +-- +type: integer -Total GC pause duration over lifetime of process. +Total connections of the old Envoy process on hot restart +-- -*`golang.heap.gc.total_pause.ns`*:: +*`envoyproxy.server.server.total_connections`*:: + -- -type: long +type: integer -Duration in Ns. +Total connections of both new and old Envoy processes -- -*`golang.heap.gc.total_count`*:: +*`envoyproxy.server.server.uptime`*:: + -- -type: long +type: integer -Total number of GC was happened. +Current server uptime in seconds -- -*`golang.heap.gc.next_gc_limit`*:: +*`envoyproxy.server.server.version`*:: + -- -type: long +type: integer + +Integer represented version number based on SCM revision + + +-- + +*`envoyproxy.server.server.watchdog_mega_miss`*:: ++ +-- +type: integer + +-- + +*`envoyproxy.server.server.watchdog_miss`*:: ++ +-- +type: integer + +-- + +*`envoyproxy.server.server.hot_restart_epoch`*:: ++ +-- +type: integer + +Current hot restart epoch + + +-- + + +*`envoyproxy.server.http2.header_overflow`*:: ++ +-- +type: integer + +Total number of connections reset due to the headers being larger than Envoy::Http::Http2::ConnectionImpl::StreamImpl::MAX_HEADER_SIZE (63k) + + +-- + +*`envoyproxy.server.http2.headers_cb_no_stream`*:: ++ +-- +type: integer + +Total number of errors where a header callback is called without an associated stream. This tracks an unexpected occurrence due to an as yet undiagnosed bug + + +-- + +*`envoyproxy.server.http2.rx_messaging_error`*:: ++ +-- +type: integer + +Total number of invalid received frames that violated section 8 of the HTTP/2 spec. This will result in a tx_reset + + +-- + +*`envoyproxy.server.http2.rx_reset`*:: ++ +-- +type: integer + +Total number of reset stream frames received by Envoy + + +-- + +*`envoyproxy.server.http2.too_many_header_frames`*:: ++ +-- +type: integer + +Total number of times an HTTP2 connection is reset due to receiving too many headers frames. Envoy currently supports proxying at most one header frame for 100-Continue one non-100 response code header frame and one frame with trailers + + +-- + +*`envoyproxy.server.http2.trailers`*:: ++ +-- +type: integer + +Total number of trailers seen on requests coming from downstream + + +-- + +*`envoyproxy.server.http2.tx_reset`*:: ++ +-- +type: integer + +Total number of reset stream frames transmitted by Envoy + + +-- + +[[exported-fields-etcd]] +== Etcd fields + +etcd Module + + + +[float] +== etcd fields + +`etcd` contains statistics that were read from Etcd + + + +[float] +== leader fields + +Contains etcd leader statistics. + + + +[float] +== followers.counts fields + +The number of failed and successful Raft RPC requests. + + + +*`etcd.leader.followers.counts.followers.counts.success`*:: ++ +-- +type: integer + +-- + +*`etcd.leader.followers.counts.followers.counts.fail`*:: ++ +-- +type: integer + +-- + +[float] +== followers.latency fields + +latency to each peer in the cluster + + + +*`etcd.leader.followers.latency.followers.latency.average`*:: ++ +-- +type: scaled_float + +-- + +*`etcd.leader.followers.latency.followers.latency.current`*:: ++ +-- +type: scaled_float + +-- + +*`etcd.leader.followers.latency.followers.latency.maximum`*:: ++ +-- +type: scaled_float + +-- + +*`etcd.leader.followers.latency.followers.latency.minimum`*:: ++ +-- +type: integer + +-- + +*`etcd.leader.followers.latency.follower.latency.standardDeviation`*:: ++ +-- +type: scaled_float + +-- + +*`etcd.leader.leader`*:: ++ +-- +type: keyword + +-- + +[float] +== self fields + +Contains etcd self statistics. + + + +*`etcd.self.id`*:: ++ +-- +type: keyword + +the unique identifier for the member + + +-- + +*`etcd.self.leaderinfo.leader`*:: ++ +-- +type: keyword + +id of the current leader member + + +-- + +*`etcd.self.leaderinfo.starttime`*:: ++ +-- +type: keyword + +-- + +*`etcd.self.leaderinfo.uptime`*:: ++ +-- +type: keyword + +id of the current leader member + + +-- + +*`etcd.self.name`*:: ++ +-- +type: keyword + +this member's name + + +-- + +*`etcd.self.recv.appendrequest.count`*:: ++ +-- +type: integer + +number of append requests this node has processed + + +-- + +*`etcd.self.recv.bandwidthrate`*:: ++ +-- +type: scaled_float + +number of bytes per second this node is receiving (follower only) + + +-- + +*`etcd.self.recv.pkgrate`*:: ++ +-- +type: scaled_float + +number of requests per second this node is receiving (follower only) + + +-- + +*`etcd.self.send.appendrequest.count`*:: ++ +-- +type: integer + +number of requests that this node has sent + + +-- + +*`etcd.self.send.bandwidthrate`*:: ++ +-- +type: scaled_float + +number of bytes per second this node is sending (leader only). This value is undefined on single member clusters. + + +-- + +*`etcd.self.send.pkgrate`*:: ++ +-- +type: scaled_float + +number of requests per second this node is sending (leader only). This value is undefined on single member clusters. + + +-- + +*`etcd.self.starttime`*:: ++ +-- +type: keyword + +the time when this node was started + + +-- + +*`etcd.self.state`*:: ++ +-- +type: keyword + +either leader or follower + + +-- + +[float] +== store fields + +The store statistics include information about the operations that this node has handled. + + + +*`etcd.store.gets.success`*:: ++ +-- +type: integer + +-- + +*`etcd.store.gets.fail`*:: ++ +-- +type: integer + +-- + +*`etcd.store.sets.success`*:: ++ +-- +type: integer + +-- + +*`etcd.store.sets.fail`*:: ++ +-- +type: integer + +-- + +*`etcd.store.delete.success`*:: ++ +-- +type: integer + +-- + +*`etcd.store.delete.fail`*:: ++ +-- +type: integer + +-- + +*`etcd.store.update.success`*:: ++ +-- +type: integer + +-- + +*`etcd.store.update.fail`*:: ++ +-- +type: integer + +-- + +*`etcd.store.create.success`*:: ++ +-- +type: integer + +-- + +*`etcd.store.create.fail`*:: ++ +-- +type: integer + +-- + +*`etcd.store.compareandswap.success`*:: ++ +-- +type: integer + +-- + +*`etcd.store.compareandswap.fail`*:: ++ +-- +type: integer + +-- + +*`etcd.store.compareanddelete.success`*:: ++ +-- +type: integer + +-- + +*`etcd.store.compareanddelete.fail`*:: ++ +-- +type: integer + +-- + +*`etcd.store.expire.count`*:: ++ +-- +type: integer + +-- + +*`etcd.store.watchers`*:: ++ +-- +type: integer + +-- + +[[exported-fields-golang]] +== Golang fields + +Golang module + + + +[float] +== golang fields + + + + +[float] +== expvar fields + +expvar + + + +*`golang.expvar.cmdline`*:: ++ +-- +type: keyword + +The cmdline of this golang program start with. + + +-- + +[float] +== heap fields + +The golang program heap information exposed by expvar. + + + +*`golang.heap.cmdline`*:: ++ +-- +type: keyword + +The cmdline of this golang program start with. + + +-- + +[float] +== gc fields + +Garbage collector summary. + + + +[float] +== total_pause fields + +Total GC pause duration over lifetime of process. + + + +*`golang.heap.gc.total_pause.ns`*:: ++ +-- +type: long + +Duration in Ns. + + +-- + +*`golang.heap.gc.total_count`*:: ++ +-- +type: long + +Total number of GC was happened. + + +-- + +*`golang.heap.gc.next_gc_limit`*:: ++ +-- +type: long + +format: bytes + +Next collection will happen when HeapAlloc > this amount. + + +-- + +*`golang.heap.gc.cpu_fraction`*:: ++ +-- +type: float + +Fraction of CPU time used by GC. + + +-- + +[float] +== pause fields + +Last GC pause durations during the monitoring period. + + + +*`golang.heap.gc.pause.count`*:: ++ +-- +type: long + +Count of GC pause duration during this collect period. + + +-- + +[float] +== sum fields + +Total GC pause duration during this collect period. + + + +*`golang.heap.gc.pause.sum.ns`*:: ++ +-- +type: long + +Duration in Ns. + + +-- + +[float] +== max fields + +Max GC pause duration during this collect period. + + + +*`golang.heap.gc.pause.max.ns`*:: ++ +-- +type: long + +Duration in Ns. + + +-- + +[float] +== avg fields + +Average GC pause duration during this collect period. + + + +*`golang.heap.gc.pause.avg.ns`*:: ++ +-- +type: long + +Duration in Ns. + + +-- + +[float] +== system fields + +Heap summary,which bytes was obtained from system. + + + +*`golang.heap.system.total`*:: ++ +-- +type: long + +format: bytes + +Total bytes obtained from system (sum of XxxSys below). + + +-- + +*`golang.heap.system.obtained`*:: ++ +-- +type: long + +format: bytes + +Via HeapSys, bytes obtained from system. heap_sys = heap_idle + heap_inuse. + + +-- + +*`golang.heap.system.stack`*:: ++ +-- +type: long + +format: bytes + +Bytes used by stack allocator, and these bytes was obtained from system. + + +-- + +*`golang.heap.system.released`*:: ++ +-- +type: long + +format: bytes + +Bytes released to the OS. + + +-- + +[float] +== allocations fields + +Heap allocations summary. + + + +*`golang.heap.allocations.mallocs`*:: ++ +-- +type: long + +Number of mallocs. + + +-- + +*`golang.heap.allocations.frees`*:: ++ +-- +type: long + +Number of frees. + + +-- + +*`golang.heap.allocations.objects`*:: ++ +-- +type: long + +Total number of allocated objects. + + +-- + +*`golang.heap.allocations.total`*:: ++ +-- +type: long + +format: bytes + +Bytes allocated (even if freed) throughout the lifetime. + + +-- + +*`golang.heap.allocations.allocated`*:: ++ +-- +type: long + +format: bytes + +Bytes allocated and not yet freed (same as Alloc above). + + +-- + +*`golang.heap.allocations.idle`*:: ++ +-- +type: long + +format: bytes + +Bytes in idle spans. + + +-- + +*`golang.heap.allocations.active`*:: ++ +-- +type: long + +format: bytes + +Bytes in non-idle span. + + +-- + +[[exported-fields-graphite]] +== Graphite fields + +graphite Module + + + +[float] +== graphite fields + + + + +[float] +== server fields + +server + + + +*`graphite.server.example`*:: ++ +-- +type: keyword + +Example field + + +-- + +[[exported-fields-haproxy]] +== HAProxy fields + +HAProxy Module + + + +[float] +== haproxy fields + +HAProxy metrics. + + + +[float] +== info fields + +General information about HAProxy processes. + + + +*`haproxy.info.processes`*:: ++ +-- +type: long + +Number of processes. + + +-- + +*`haproxy.info.process_num`*:: ++ +-- +type: long + +Process number. + + +-- + +*`haproxy.info.pid`*:: ++ +-- +type: long + +Process ID. + + +-- + +*`haproxy.info.run_queue`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.tasks`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.uptime.sec`*:: ++ +-- +type: long + +Current uptime in seconds. + + +-- + +*`haproxy.info.memory.max.bytes`*:: ++ +-- +type: long + +format: bytes + +Maximum amount of memory usage in bytes (the 'Memmax_MB' value converted to bytes). + + +-- + +*`haproxy.info.ulimit_n`*:: ++ +-- +type: long + +Maximum number of open files for the process. + + +-- + +[float] +== compress fields + + + + +[float] +== bps fields + + + + +*`haproxy.info.compress.bps.in`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.compress.bps.out`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.compress.bps.rate_limit`*:: ++ +-- +type: long + + + +-- + +[float] +== connection fields + + + + +[float] +== rate fields + + + + +*`haproxy.info.connection.rate.value`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.connection.rate.limit`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.connection.rate.max`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.connection.current`*:: ++ +-- +type: long + +Current connections. + + +-- + +*`haproxy.info.connection.total`*:: ++ +-- +type: long + +Total connections. + + +-- + +*`haproxy.info.connection.ssl.current`*:: ++ +-- +type: long + +Current SSL connections. + + +-- + +*`haproxy.info.connection.ssl.total`*:: ++ +-- +type: long + +Total SSL connections. + + +-- + +*`haproxy.info.connection.ssl.max`*:: ++ +-- +type: long + +Maximum SSL connections. + + +-- + +*`haproxy.info.connection.max`*:: ++ +-- +type: long + +Maximum connections. + + +-- + +*`haproxy.info.connection.hard_max`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.requests.total`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.sockets.max`*:: ++ +-- +type: long + + + +-- + +*`haproxy.info.requests.max`*:: ++ +-- +type: long + + + +-- + +[float] +== pipes fields + + + + +*`haproxy.info.pipes.used`*:: ++ +-- +type: integer + + + +-- + +*`haproxy.info.pipes.free`*:: ++ +-- +type: integer + + + +-- + +*`haproxy.info.pipes.max`*:: ++ +-- +type: integer + + + +-- + +[float] +== session fields + +None + + +*`haproxy.info.session.rate.value`*:: ++ +-- +type: integer + + + +-- + +*`haproxy.info.session.rate.limit`*:: ++ +-- +type: integer + + + +-- + +*`haproxy.info.session.rate.max`*:: ++ +-- +type: integer + + + +-- + +[float] +== ssl fields + +None + + +*`haproxy.info.ssl.rate.value`*:: ++ +-- +type: integer + +None + +-- + +*`haproxy.info.ssl.rate.limit`*:: ++ +-- +type: integer + +None + +-- + +*`haproxy.info.ssl.rate.max`*:: ++ +-- +type: integer + +None + +-- + +[float] +== frontend fields + +None + + +*`haproxy.info.ssl.frontend.key_rate.value`*:: ++ +-- +type: integer + +None + +-- + +*`haproxy.info.ssl.frontend.key_rate.max`*:: ++ +-- +type: integer + +None + +-- + +*`haproxy.info.ssl.frontend.session_reuse.pct`*:: ++ +-- +type: scaled_float + +format: percent + +None + +-- + +[float] +== backend fields + +None + + +*`haproxy.info.ssl.backend.key_rate.value`*:: ++ +-- +type: integer + +None + +-- + +*`haproxy.info.ssl.backend.key_rate.max`*:: ++ +-- +type: integer + +MaxConnRate + +-- + +*`haproxy.info.ssl.cached_lookups`*:: ++ +-- +type: long + +None + +-- + +*`haproxy.info.ssl.cache_misses`*:: ++ +-- +type: long + +None + +-- + +[float] +== zlib_mem_usage fields + + + + +*`haproxy.info.zlib_mem_usage.value`*:: ++ +-- +type: integer + + + +-- + +*`haproxy.info.zlib_mem_usage.max`*:: ++ +-- +type: integer + + + +-- + +*`haproxy.info.idle.pct`*:: ++ +-- +type: scaled_float + +format: percent + + + +-- + +[float] +== stat fields + +Stats collected from HAProxy processes. + + + +*`haproxy.stat.status`*:: ++ +-- +type: keyword + +Status (UP, DOWN, NOLB, MAINT, or MAINT(via)...). + + +-- + +*`haproxy.stat.weight`*:: ++ +-- +type: long + +Total weight (for backends), or server weight (for servers). + + +-- + +*`haproxy.stat.downtime`*:: ++ +-- +type: long + +Total downtime (in seconds). For backends, this value is the downtime for the whole backend, not the sum of the downtime for the servers. + + +-- + +*`haproxy.stat.component_type`*:: ++ +-- +type: integer + +Component type (0=frontend, 1=backend, 2=server, or 3=socket/listener). + + +-- + +*`haproxy.stat.process_id`*:: ++ +-- +type: integer + +Process ID (0 for first instance, 1 for second, and so on). + + +-- + +*`haproxy.stat.service_name`*:: ++ +-- +type: keyword + +Service name (FRONTEND for frontend, BACKEND for backend, or any name for server/listener). + + +-- + +*`haproxy.stat.in.bytes`*:: ++ +-- +type: long format: bytes -Next collection will happen when HeapAlloc > this amount. +Bytes in. + + +-- + +*`haproxy.stat.out.bytes`*:: ++ +-- +type: long + +format: bytes + +Bytes out. + + +-- + +*`haproxy.stat.last_change`*:: ++ +-- +type: integer + +Number of seconds since the last UP->DOWN or DOWN->UP transition. + + +-- + +*`haproxy.stat.throttle.pct`*:: ++ +-- +type: scaled_float + +format: percentage + +Current throttle percentage for the server when slowstart is active, or no value if slowstart is inactive. + + +-- + +*`haproxy.stat.selected.total`*:: ++ +-- +type: long + +Total number of times a server was selected, either for new sessions, or when re-dispatching. For servers, this field reports the the number of times the server was selected. + + +-- + +*`haproxy.stat.tracked.id`*:: ++ +-- +type: long + +ID of the proxy/server if tracking is enabled. + + +-- + + +*`haproxy.stat.connection.total`*:: ++ +-- +type: long + +Cumulative number of connections. -- -*`golang.heap.gc.cpu_fraction`*:: +*`haproxy.stat.connection.retried`*:: + -- type: long -Fraction of CPU time used by GC. +Number of times a connection to a server was retried. -- -[float] -== pause fields +*`haproxy.stat.connection.time.avg`*:: ++ +-- +type: long + +Average connect time in ms over the last 1024 requests. -Last GC pause durations during the monitoring period. +-- -*`golang.heap.gc.pause.count`*:: +*`haproxy.stat.request.denied`*:: + -- type: long -Count of GC pause duration during this collect period. +Requests denied because of security concerns. + + * For TCP this is because of a matched tcp-request content rule. + * For HTTP this is because of a matched http-request or tarpit rule. -- -[float] -== sum fields +*`haproxy.stat.request.queued.current`*:: ++ +-- +type: long -Total GC pause duration during this collect period. +Current queued requests. For backends, this field reports the number of requests queued without a server assigned. +-- -*`golang.heap.gc.pause.sum.ns`*:: +*`haproxy.stat.request.queued.max`*:: + -- type: long -Duration in Ns. +Maximum value of queued.current. -- -[float] -== max fields +*`haproxy.stat.request.errors`*:: ++ +-- +type: long -Max GC pause duration during this collect period. +Request errors. Some of the possible causes are: + + * early termination from the client, before the request has been sent + * read error from the client + * client timeout + * client closed connection + * various bad requests from the client. + * request was tarpitted. +-- -*`golang.heap.gc.pause.max.ns`*:: +*`haproxy.stat.request.redispatched`*:: + -- type: long -Duration in Ns. +Number of times a request was redispatched to another server. For servers, this field reports the number of times the server was switched away from. + + +-- + +*`haproxy.stat.request.connection.errors`*:: ++ +-- +type: long + +Number of requests that encountered an error trying to connect to a server. For backends, this field reports the sum of the stat for all backend servers, plus any connection errors not associated with a particular server (such as the backend having no active servers). -- [float] -== avg fields +== rate fields -Average GC pause duration during this collect period. -*`golang.heap.gc.pause.avg.ns`*:: +*`haproxy.stat.request.rate.value`*:: + -- type: long -Duration in Ns. +Number of HTTP requests per second over the last elapsed second. + + +-- + +*`haproxy.stat.request.rate.max`*:: ++ +-- +type: long + +Maximum number of HTTP requests per second. + + +-- + +*`haproxy.stat.request.total`*:: ++ +-- +type: long + +Total number of HTTP requests received. + + +-- + + +*`haproxy.stat.response.errors`*:: ++ +-- +type: long + +Number of response errors. This value includes the number of data transfers aborted by the server (haproxy.stat.server.aborted). Some other errors are: +* write errors on the client socket (won't be counted for the server stat) * failure applying filters to the response + + +-- + +*`haproxy.stat.response.time.avg`*:: ++ +-- +type: long + +Average response time in ms over the last 1024 requests (0 for TCP). + + +-- + +*`haproxy.stat.response.denied`*:: ++ +-- +type: integer + +Responses denied because of security concerns. For HTTP this is because of a matched http-request rule, or "option checkcache". -- [float] -== system fields +== http fields -Heap summary,which bytes was obtained from system. -*`golang.heap.system.total`*:: +*`haproxy.stat.response.http.1xx`*:: + -- type: long -format: bytes +HTTP responses with 1xx code. -Total bytes obtained from system (sum of XxxSys below). + +-- + +*`haproxy.stat.response.http.2xx`*:: ++ +-- +type: long + +HTTP responses with 2xx code. -- -*`golang.heap.system.obtained`*:: +*`haproxy.stat.response.http.3xx`*:: + -- type: long -format: bytes +HTTP responses with 3xx code. -Via HeapSys, bytes obtained from system. heap_sys = heap_idle + heap_inuse. + +-- + +*`haproxy.stat.response.http.4xx`*:: ++ +-- +type: long + +HTTP responses with 4xx code. -- -*`golang.heap.system.stack`*:: +*`haproxy.stat.response.http.5xx`*:: + -- type: long -format: bytes +HTTP responses with 5xx code. -Bytes used by stack allocator, and these bytes was obtained from system. +-- +*`haproxy.stat.response.http.other`*:: ++ -- +type: long -*`golang.heap.system.released`*:: +HTTP responses with other codes (protocol error). + + +-- + + +*`haproxy.stat.session.current`*:: + -- type: long -format: bytes +Number of current sessions. -Bytes released to the OS. + +-- + +*`haproxy.stat.session.max`*:: ++ +-- +type: long + +Maximum number of sessions. + + +-- + +*`haproxy.stat.session.limit`*:: ++ +-- +type: long + +Configured session limit. + + +-- + + +*`haproxy.stat.session.rate.value`*:: ++ +-- +type: integer + +Number of sessions per second over the last elapsed second. + + +-- + +*`haproxy.stat.session.rate.limit`*:: ++ +-- +type: integer + +Configured limit on new sessions per second. + + +-- + +*`haproxy.stat.session.rate.max`*:: ++ +-- +type: integer + +Maximum number of new sessions per second. -- [float] -== allocations fields +== check fields -Heap allocations summary. -*`golang.heap.allocations.mallocs`*:: +*`haproxy.stat.check.status`*:: ++ +-- +type: keyword + +Status of the last health check. One of: + + UNK -> unknown + INI -> initializing + SOCKERR -> socket error + L4OK -> check passed on layer 4, no upper layers testing enabled + L4TOUT -> layer 1-4 timeout + L4CON -> layer 1-4 connection problem, for example + "Connection refused" (tcp rst) or "No route to host" (icmp) + L6OK -> check passed on layer 6 + L6TOUT -> layer 6 (SSL) timeout + L6RSP -> layer 6 invalid response - protocol error + L7OK -> check passed on layer 7 + L7OKC -> check conditionally passed on layer 7, for example 404 with + disable-on-404 + L7TOUT -> layer 7 (HTTP/SMTP) timeout + L7RSP -> layer 7 invalid response - protocol error + L7STS -> layer 7 response error, for example HTTP 5xx + + +-- + +*`haproxy.stat.check.code`*:: + -- type: long -Number of mallocs. +Layer 5-7 code, if available. -- -*`golang.heap.allocations.frees`*:: +*`haproxy.stat.check.duration`*:: + -- type: long -Number of frees. +Time in ms that it took to finish the last health check. -- -*`golang.heap.allocations.objects`*:: +*`haproxy.stat.check.health.last`*:: + -- -type: long +type: keyword -Total number of allocated objects. +The result of the last health check. -- -*`golang.heap.allocations.total`*:: +*`haproxy.stat.check.health.fail`*:: + -- type: long -format: bytes - -Bytes allocated (even if freed) throughout the lifetime. +Number of failed checks. -- -*`golang.heap.allocations.allocated`*:: +*`haproxy.stat.check.agent.last`*:: + -- -type: long - -format: bytes +type: integer -Bytes allocated and not yet freed (same as Alloc above). -- -*`golang.heap.allocations.idle`*:: +*`haproxy.stat.check.failed`*:: + -- type: long -format: bytes - -Bytes in idle spans. +Number of checks that failed while the server was up. -- -*`golang.heap.allocations.active`*:: +*`haproxy.stat.check.down`*:: + -- type: long -format: bytes - -Bytes in non-idle span. +Number of UP->DOWN transitions. For backends, this value is the number of transitions to the whole backend being down, rather than the sum of the transitions for each server. -- -[[exported-fields-graphite]] -== Graphite fields +*`haproxy.stat.client.aborted`*:: ++ +-- +type: integer -graphite Module +Number of data transfers aborted by the client. +-- [float] -== graphite fields +== server fields -[float] -== server fields +*`haproxy.stat.server.id`*:: ++ +-- +type: integer -server +Server ID (unique inside a proxy). +-- -*`graphite.server.example`*:: +*`haproxy.stat.server.aborted`*:: + -- -type: keyword +type: integer -Example field +Number of data transfers aborted by the server. This value is included in haproxy.stat.response.errors. -- -[[exported-fields-haproxy]] -== HAProxy fields +*`haproxy.stat.server.active`*:: ++ +-- +type: integer -HAProxy Module +Number of backend servers that are active, meaning that they are healthy and can receive requests from the load balancer. +-- -[float] -== haproxy fields +*`haproxy.stat.server.backup`*:: ++ +-- +type: integer -HAProxy metrics. +Number of backend servers that are backup servers. +-- [float] -== info fields +== compressor fields -General information about HAProxy processes. -*`haproxy.info.processes`*:: +*`haproxy.stat.compressor.in.bytes`*:: + -- type: long -Number of processes. +format: bytes + +Number of HTTP response bytes fed to the compressor. -- -*`haproxy.info.process_num`*:: +*`haproxy.stat.compressor.out.bytes`*:: + -- -type: long +type: integer -Process number. +format: bytes + +Number of HTTP response bytes emitted by the compressor. -- -*`haproxy.info.pid`*:: +*`haproxy.stat.compressor.bypassed.bytes`*:: + -- type: long -Process ID. +format: bytes + +Number of bytes that bypassed the HTTP compressor (CPU/BW limit). -- -*`haproxy.info.run_queue`*:: +*`haproxy.stat.compressor.response.bytes`*:: + -- type: long +format: bytes +Number of HTTP responses that were compressed. --- -*`haproxy.info.tasks`*:: -+ -- -type: long + +[float] +== proxy fields --- -*`haproxy.info.uptime.sec`*:: +*`haproxy.stat.proxy.id`*:: + -- -type: long +type: integer -Current uptime in seconds. +Unique proxy ID. -- -*`haproxy.info.memory.max.bytes`*:: +*`haproxy.stat.proxy.name`*:: + -- -type: long - -format: bytes +type: keyword -Maximum amount of memory usage in bytes (the 'Memmax_MB' value converted to bytes). +Proxy name. -- -*`haproxy.info.ulimit_n`*:: +[float] +== queue fields + + + + +*`haproxy.stat.queue.limit`*:: + -- -type: long +type: integer -Maximum number of open files for the process. +Configured queue limit (maxqueue) for the server, or nothing if the value of maxqueue is 0 (meaning no limit). -- -[float] -== compress fields +*`haproxy.stat.queue.time.avg`*:: ++ +-- +type: integer + +The average queue time in ms over the last 1024 requests. +-- +[[exported-fields-host-processor]] +== Host fields -[float] -== bps fields +Info collected for the host machine. -*`haproxy.info.compress.bps.in`*:: +*`host.name`*:: + -- -type: long +type: keyword +Hostname. -- -*`haproxy.info.compress.bps.out`*:: +*`host.id`*:: + -- -type: long +type: keyword +Unique host id. -- -*`haproxy.info.compress.bps.rate_limit`*:: +*`host.architecture`*:: + -- -type: long +type: keyword +Host architecture (e.g. x86_64, arm, ppc, mips). -- -[float] -== connection fields +*`host.os.platform`*:: ++ +-- +type: keyword +OS platform (e.g. centos, ubuntu, windows). +-- -[float] -== rate fields +*`host.os.version`*:: ++ +-- +type: keyword +OS version. +-- -*`haproxy.info.connection.rate.value`*:: +*`host.os.family`*:: + -- -type: long +type: keyword +OS family (e.g. redhat, debian, freebsd, windows). -- -*`haproxy.info.connection.rate.limit`*:: +*`host.ip`*:: + -- -type: long +type: ip +List of IP-addresses. -- -*`haproxy.info.connection.rate.max`*:: +*`host.mac`*:: + -- -type: long +type: keyword +List of hardware-addresses, usually MAC-addresses. -- -*`haproxy.info.connection.current`*:: -+ --- -type: long +[[exported-fields-http]] +== HTTP fields -Current connections. +HTTP module --- -*`haproxy.info.connection.total`*:: +[float] +== http fields + + + + +[float] +== request fields + +HTTP request information + + + +*`http.request.header`*:: + -- -type: long +type: object -Total connections. +The HTTP headers sent -- -*`haproxy.info.connection.ssl.current`*:: +*`http.request.method`*:: + -- -type: long +type: keyword -Current SSL connections. +The HTTP method used -- -*`haproxy.info.connection.ssl.total`*:: +*`http.request.body`*:: + -- -type: long +type: keyword -Total SSL connections. +The HTTP payload sent -- -*`haproxy.info.connection.ssl.max`*:: +[float] +== response fields + +HTTP response information + + + +*`http.response.header`*:: + -- -type: long +type: object -Maximum SSL connections. +The HTTP headers received -- -*`haproxy.info.connection.max`*:: +*`http.response.code`*:: + -- -type: long +type: keyword -Maximum connections. +example: 404 + +The HTTP status code -- -*`haproxy.info.connection.hard_max`*:: +*`http.response.phrase`*:: + -- -type: long +type: keyword + +example: Not found +The HTTP status phrase -- -*`haproxy.info.requests.total`*:: +*`http.response.body`*:: + -- -type: long +type: keyword +The HTTP payload received -- -*`haproxy.info.sockets.max`*:: -+ --- -type: long +[float] +== json fields +json metricset --- +[float] +== server fields -*`haproxy.info.requests.max`*:: -+ --- -type: long +server +[[exported-fields-jolokia]] +== Jolokia fields + +Jolokia module + --- [float] -== pipes fields +== jolokia fields +jolokia contains metrics exposed via jolokia agent -*`haproxy.info.pipes.used`*:: -+ --- -type: integer +[[exported-fields-kafka]] +== Kafka fields +Kafka module --- -*`haproxy.info.pipes.free`*:: -+ --- -type: integer +[float] +== kafka fields --- -*`haproxy.info.pipes.max`*:: -+ --- -type: integer +[float] +== consumergroup fields +consumergroup --- [float] -== session fields +== broker fields -None +Broker Consumer Group Information have been read from (Broker handling the consumer group). -*`haproxy.info.session.rate.value`*:: + +*`kafka.consumergroup.broker.id`*:: + -- -type: integer +type: long +Broker id -- -*`haproxy.info.session.rate.limit`*:: +*`kafka.consumergroup.broker.address`*:: + -- -type: integer +type: keyword +Broker address -- -*`haproxy.info.session.rate.max`*:: +*`kafka.consumergroup.id`*:: + -- -type: integer +type: keyword +Consumer Group ID +-- +*`kafka.consumergroup.topic`*:: ++ -- +type: keyword -[float] -== ssl fields +Topic name -None +-- +*`kafka.consumergroup.partition`*:: ++ +-- +type: long -*`haproxy.info.ssl.rate.value`*:: +Partition ID + +-- + +*`kafka.consumergroup.offset`*:: + -- -type: integer +type: long -None +consumer offset into partition being read -- -*`haproxy.info.ssl.rate.limit`*:: +*`kafka.consumergroup.meta`*:: + -- -type: integer +type: text -None +custom consumer meta data string -- -*`haproxy.info.ssl.rate.max`*:: +*`kafka.consumergroup.error.code`*:: + -- -type: integer +type: long + +kafka consumer/partition error code. -None -- [float] -== frontend fields +== client fields -None +Assigned client reading events from partition -*`haproxy.info.ssl.frontend.key_rate.value`*:: + +*`kafka.consumergroup.client.id`*:: + -- -type: integer +type: keyword -None +Client ID (kafka setting client.id) -- -*`haproxy.info.ssl.frontend.key_rate.max`*:: +*`kafka.consumergroup.client.host`*:: + -- -type: integer +type: keyword -None +Client host -- -*`haproxy.info.ssl.frontend.session_reuse.pct`*:: +*`kafka.consumergroup.client.member_id`*:: + -- -type: scaled_float - -format: percent +type: keyword -None +internal consumer group member ID -- [float] -== backend fields +== partition fields -None +partition -*`haproxy.info.ssl.backend.key_rate.value`*:: + +[float] +== offset fields + +Available offsets of the given partition. + + + +*`kafka.partition.offset.newest`*:: + -- -type: integer +type: long + +Newest offset of the partition. -None -- -*`haproxy.info.ssl.backend.key_rate.max`*:: +*`kafka.partition.offset.oldest`*:: + -- -type: integer +type: long + +Oldest offset of the partition. -MaxConnRate -- -*`haproxy.info.ssl.cached_lookups`*:: +[float] +== partition fields + +Partition data. + + + +*`kafka.partition.partition.id`*:: + -- type: long -None +Partition id. + -- -*`haproxy.info.ssl.cache_misses`*:: +*`kafka.partition.partition.leader`*:: + -- type: long -None +Leader id (broker). + -- -[float] -== zlib_mem_usage fields +*`kafka.partition.partition.isr`*:: ++ +-- +type: array +List of isr ids. +-- -*`haproxy.info.zlib_mem_usage.value`*:: +*`kafka.partition.partition.replica`*:: + -- -type: integer +type: long +Replica id (broker). -- -*`haproxy.info.zlib_mem_usage.max`*:: +*`kafka.partition.partition.insync_replica`*:: + -- -type: integer +type: boolean +Indicates if replica is included in the in-sync replicate set (ISR). -- -*`haproxy.info.idle.pct`*:: +*`kafka.partition.partition.error.code`*:: + -- -type: scaled_float - -format: percent +type: long +Error code from fetching partition. -- -[float] -== stat fields +*`kafka.partition.topic.error.code`*:: ++ +-- +type: long -Stats collected from HAProxy processes. +topic error code. +-- -*`haproxy.stat.status`*:: +*`kafka.partition.topic.name`*:: + -- type: keyword -Status (UP, DOWN, NOLB, MAINT, or MAINT(via)...). +Topic name -- -*`haproxy.stat.weight`*:: +*`kafka.partition.broker.id`*:: + -- type: long -Total weight (for backends), or server weight (for servers). +Broker id -- -*`haproxy.stat.downtime`*:: +*`kafka.partition.broker.address`*:: + -- -type: long +type: keyword -Total downtime (in seconds). For backends, this value is the downtime for the whole backend, not the sum of the downtime for the servers. +Broker address -- -*`haproxy.stat.component_type`*:: -+ --- -type: integer +[[exported-fields-kibana]] +== Kibana fields + +Kibana module + + + +[float] +== kibana fields -Component type (0=frontend, 1=backend, 2=server, or 3=socket/listener). --- -*`haproxy.stat.process_id`*:: -+ --- -type: integer +[float] +== stats fields -Process ID (0 for first instance, 1 for second, and so on). +Kibana stats and run-time metrics. --- -*`haproxy.stat.service_name`*:: +*`kibana.stats.uuid`*:: + -- type: keyword -Service name (FRONTEND for frontend, BACKEND for backend, or any name for server/listener). +Kibana instance UUID -- -*`haproxy.stat.in.bytes`*:: +*`kibana.stats.name`*:: + -- -type: long - -format: bytes +type: text -Bytes in. +Kibana instance name -- -*`haproxy.stat.out.bytes`*:: +*`kibana.stats.index`*:: + -- -type: long - -format: bytes +type: keyword -Bytes out. +Name of Kibana's internal index -- -*`haproxy.stat.last_change`*:: +*`kibana.stats.host.name`*:: + -- -type: integer +type: keyword -Number of seconds since the last UP->DOWN or DOWN->UP transition. +Kibana instance hostname -- -*`haproxy.stat.throttle.pct`*:: +*`kibana.stats.transport_address`*:: + -- -type: scaled_float - -format: percentage +type: keyword -Current throttle percentage for the server when slowstart is active, or no value if slowstart is inactive. +Kibana server's hostname and port -- -*`haproxy.stat.selected.total`*:: +*`kibana.stats.version`*:: + -- -type: long +type: keyword -Total number of times a server was selected, either for new sessions, or when re-dispatching. For servers, this field reports the the number of times the server was selected. +Kibana version -- -*`haproxy.stat.tracked.id`*:: +*`kibana.stats.snapshot`*:: + -- -type: long +type: boolean -ID of the proxy/server if tracking is enabled. +Whether the Kibana build is a snapshot build -- - -*`haproxy.stat.connection.total`*:: +*`kibana.stats.status`*:: + -- -type: long +type: keyword -Cumulative number of connections. +Kibana instance's health status -- -*`haproxy.stat.connection.retried`*:: +*`kibana.stats.concurrent_connections`*:: + -- type: long -Number of times a connection to a server was retried. - +Number of client connections made to the server. Note that browsers can send multiple simultaneous connections to request multiple server assets at once, and they can re-use established connections. --- -*`haproxy.stat.connection.time.avg`*:: -+ -- -type: long -Average connect time in ms over the last 1024 requests. +[float] +== process fields +Process metrics --- -*`haproxy.stat.request.denied`*:: +*`kibana.stats.process.event_loop_delay.ms`*:: + -- -type: long - -Requests denied because of security concerns. +type: scaled_float - * For TCP this is because of a matched tcp-request content rule. - * For HTTP this is because of a matched http-request or tarpit rule. +Event loop delay in milliseconds -- -*`haproxy.stat.request.queued.current`*:: -+ --- -type: long +[float] +== memory.heap fields -Current queued requests. For backends, this field reports the number of requests queued without a server assigned. +Process heap metrics --- -*`haproxy.stat.request.queued.max`*:: +*`kibana.stats.process.memory.heap.total.bytes`*:: + -- type: long -Maximum value of queued.current. +format: bytes + +Total heap allocated to process in bytes -- -*`haproxy.stat.request.errors`*:: +*`kibana.stats.process.memory.heap.used.bytes`*:: + -- type: long -Request errors. Some of the possible causes are: +format: bytes - * early termination from the client, before the request has been sent - * read error from the client - * client timeout - * client closed connection - * various bad requests from the client. - * request was tarpitted. +Heap used by process in bytes -- -*`haproxy.stat.request.redispatched`*:: +*`kibana.stats.process.memory.heap.size_limit.bytes`*:: + -- type: long -Number of times a request was redispatched to another server. For servers, this field reports the number of times the server was switched away from. +format: bytes + +Max. old space size allocated to Node.js process, in bytes -- -*`haproxy.stat.request.connection.errors`*:: +*`kibana.stats.process.memory.heap.uptime.ms`*:: + -- type: long -Number of requests that encountered an error trying to connect to a server. For backends, this field reports the sum of the stat for all backend servers, plus any connection errors not associated with a particular server (such as the backend having no active servers). +Uptime of process in milliseconds -- [float] -== rate fields +== request fields +Request count metrics -*`haproxy.stat.request.rate.value`*:: +*`kibana.stats.request.disconnects`*:: + -- type: long -Number of HTTP requests per second over the last elapsed second. +Number of requests that were disconnected -- -*`haproxy.stat.request.rate.max`*:: +*`kibana.stats.request.total`*:: + -- type: long -Maximum number of HTTP requests per second. - +Total number of requests --- -*`haproxy.stat.request.total`*:: -+ -- -type: long -Total number of HTTP requests received. +[float] +== response_time fields +Response times metrics --- -*`haproxy.stat.response.errors`*:: +*`kibana.stats.response_time.avg.ms`*:: + -- type: long -Number of response errors. This value includes the number of data transfers aborted by the server (haproxy.stat.server.aborted). Some other errors are: -* write errors on the client socket (won't be counted for the server stat) * failure applying filters to the response +Average response time in milliseconds -- -*`haproxy.stat.response.time.avg`*:: +*`kibana.stats.response_time.max.ms`*:: + -- type: long -Average response time in ms over the last 1024 requests (0 for TCP). - - --- - -*`haproxy.stat.response.denied`*:: -+ --- -type: integer - -Responses denied because of security concerns. For HTTP this is because of a matched http-request rule, or "option checkcache". +Maximum response time in milliseconds -- [float] -== http fields +== status fields +Status fields -*`haproxy.stat.response.http.1xx`*:: +*`kibana.status.name`*:: + -- -type: long +type: keyword -HTTP responses with 1xx code. +Kibana instance name. -- -*`haproxy.stat.response.http.2xx`*:: +*`kibana.status.uuid`*:: + -- -type: long +type: keyword -HTTP responses with 2xx code. +Kibana instance uuid. -- -*`haproxy.stat.response.http.3xx`*:: +*`kibana.status.version.number`*:: + -- -type: long +type: keyword -HTTP responses with 3xx code. +Kibana version number. -- -*`haproxy.stat.response.http.4xx`*:: +*`kibana.status.status.overall.state`*:: + -- -type: long +type: keyword -HTTP responses with 4xx code. +Kibana overall state. -- -*`haproxy.stat.response.http.5xx`*:: -+ --- -type: long +[float] +== metrics fields -HTTP responses with 5xx code. +Metrics fields --- -*`haproxy.stat.response.http.other`*:: +*`kibana.status.metrics.concurrent_connections`*:: + -- type: long -HTTP responses with other codes (protocol error). +Current concurrent connections. -- +[float] +== requests fields -*`haproxy.stat.session.current`*:: -+ --- -type: long - -Number of current sessions. +Request statistics. --- -*`haproxy.stat.session.max`*:: +*`kibana.status.metrics.requests.disconnects`*:: + -- type: long -Maximum number of sessions. +Total number of disconnected connections. -- -*`haproxy.stat.session.limit`*:: +*`kibana.status.metrics.requests.total`*:: + -- type: long -Configured session limit. - - --- +Total number of connections. -*`haproxy.stat.session.rate.value`*:: -+ -- -type: integer - -Number of sessions per second over the last elapsed second. - --- +[[exported-fields-kubernetes-processor]] +== Kubernetes fields -*`haproxy.stat.session.rate.limit`*:: -+ --- -type: integer +Kubernetes metadata added by the kubernetes processor -Configured limit on new sessions per second. --- -*`haproxy.stat.session.rate.max`*:: +*`kubernetes.pod.name`*:: + -- -type: integer +type: keyword -Maximum number of new sessions per second. +Kubernetes pod name -- -[float] -== check fields - - - - -*`haproxy.stat.check.status`*:: +*`kubernetes.pod.uid`*:: + -- type: keyword -Status of the last health check. One of: - - UNK -> unknown - INI -> initializing - SOCKERR -> socket error - L4OK -> check passed on layer 4, no upper layers testing enabled - L4TOUT -> layer 1-4 timeout - L4CON -> layer 1-4 connection problem, for example - "Connection refused" (tcp rst) or "No route to host" (icmp) - L6OK -> check passed on layer 6 - L6TOUT -> layer 6 (SSL) timeout - L6RSP -> layer 6 invalid response - protocol error - L7OK -> check passed on layer 7 - L7OKC -> check conditionally passed on layer 7, for example 404 with - disable-on-404 - L7TOUT -> layer 7 (HTTP/SMTP) timeout - L7RSP -> layer 7 invalid response - protocol error - L7STS -> layer 7 response error, for example HTTP 5xx +Kubernetes Pod UID -- -*`haproxy.stat.check.code`*:: +*`kubernetes.namespace`*:: + -- -type: long +type: keyword -Layer 5-7 code, if available. +Kubernetes namespace -- -*`haproxy.stat.check.duration`*:: +*`kubernetes.node.name`*:: + -- -type: long +type: keyword -Time in ms that it took to finish the last health check. +Kubernetes node name -- -*`haproxy.stat.check.health.last`*:: +*`kubernetes.labels`*:: + -- -type: keyword +type: object -The result of the last health check. +Kubernetes labels map -- -*`haproxy.stat.check.health.fail`*:: +*`kubernetes.annotations`*:: + -- -type: long +type: object -Number of failed checks. +Kubernetes annotations map -- -*`haproxy.stat.check.agent.last`*:: +*`kubernetes.container.name`*:: + -- -type: integer +type: keyword +Kubernetes container name -- -*`haproxy.stat.check.failed`*:: +*`kubernetes.container.image`*:: + -- -type: long +type: keyword -Number of checks that failed while the server was up. +Kubernetes container image -- -*`haproxy.stat.check.down`*:: -+ --- -type: long +[[exported-fields-kubernetes]] +== Kubernetes fields -Number of UP->DOWN transitions. For backends, this value is the number of transitions to the whole backend being down, rather than the sum of the transitions for each server. +Kubernetes metrics --- -*`haproxy.stat.client.aborted`*:: -+ --- -type: integer +[float] +== kubernetes fields -Number of data transfers aborted by the client. +Information and statistics of pods managed by kubernetes. --- [float] -== server fields +== apiserver fields +Kubernetes API server metrics -*`haproxy.stat.server.id`*:: +*`kubernetes.apiserver.request.client`*:: + -- -type: integer +type: keyword -Server ID (unique inside a proxy). +Client doing the requests -- -*`haproxy.stat.server.aborted`*:: +*`kubernetes.apiserver.request.resource`*:: + -- -type: integer +type: keyword -Number of data transfers aborted by the server. This value is included in haproxy.stat.response.errors. +Requested resource -- -*`haproxy.stat.server.active`*:: +*`kubernetes.apiserver.request.subresource`*:: + -- -type: integer +type: keyword -Number of backend servers that are active, meaning that they are healthy and can receive requests from the load balancer. +Requested subresource -- -*`haproxy.stat.server.backup`*:: +*`kubernetes.apiserver.request.scope`*:: + -- -type: integer +type: keyword -Number of backend servers that are backup servers. +Request scope (cluster, namespace, resource) -- -[float] -== compressor fields +*`kubernetes.apiserver.request.verb`*:: ++ +-- +type: keyword +Request HTTP verb +-- -*`haproxy.stat.compressor.in.bytes`*:: +*`kubernetes.apiserver.request.count`*:: + -- type: long -format: bytes - -Number of HTTP response bytes fed to the compressor. +Total number of requests -- -*`haproxy.stat.compressor.out.bytes`*:: +*`kubernetes.apiserver.request.latency.sum`*:: + -- -type: integer - -format: bytes +type: long -Number of HTTP response bytes emitted by the compressor. +Requests latency, sum of latencies in microseconds -- -*`haproxy.stat.compressor.bypassed.bytes`*:: +*`kubernetes.apiserver.request.latency.count`*:: + -- type: long -format: bytes - -Number of bytes that bypassed the HTTP compressor (CPU/BW limit). +Request latency, number of requests -- -*`haproxy.stat.compressor.response.bytes`*:: +*`kubernetes.apiserver.request.latency.bucket`*:: + -- -type: long - -format: bytes +type: object -Number of HTTP responses that were compressed. +Request latency histogram buckets -- [float] -== proxy fields +== container fields +kubernetes container metrics -*`haproxy.stat.proxy.id`*:: +*`kubernetes.container.start_time`*:: + -- -type: integer - -Unique proxy ID. +type: date +Start time --- -*`haproxy.stat.proxy.name`*:: -+ -- -type: keyword - -Proxy name. +[float] +== cpu fields --- +CPU usage metrics -[float] -== queue fields -*`haproxy.stat.queue.limit`*:: +*`kubernetes.container.cpu.usage.core.ns`*:: + -- -type: integer +type: long -Configured queue limit (maxqueue) for the server, or nothing if the value of maxqueue is 0 (meaning no limit). +Container CPU Core usage nanoseconds -- -*`haproxy.stat.queue.time.avg`*:: +*`kubernetes.container.cpu.usage.nanocores`*:: + -- -type: integer +type: long -The average queue time in ms over the last 1024 requests. +CPU used nanocores -- -[[exported-fields-host-processor]] -== Host fields +*`kubernetes.container.cpu.usage.node.pct`*:: ++ +-- +type: scaled_float -Info collected for the host machine. +format: percentage +CPU usage as a percentage of the total node allocatable CPU +-- -*`host.name`*:: +*`kubernetes.container.cpu.usage.limit.pct`*:: + -- -type: keyword +type: scaled_float -Hostname. +format: percentage +CPU usage as a percentage of the defined limit for the container (or total node allocatable CPU if unlimited) --- -*`host.id`*:: -+ -- -type: keyword -Unique host id. +[float] +== logs fields +Logs info --- -*`host.architecture`*:: + + +*`kubernetes.container.logs.available.bytes`*:: + -- -type: keyword +type: long -Host architecture (e.g. x86_64, arm, ppc, mips). +format: bytes + +Logs available capacity in bytes -- -*`host.os.platform`*:: + +*`kubernetes.container.logs.capacity.bytes`*:: + -- -type: keyword +type: long -OS platform (e.g. centos, ubuntu, windows). +format: bytes + +Logs total capacity in bytes -- -*`host.os.version`*:: + +*`kubernetes.container.logs.used.bytes`*:: + -- -type: keyword +type: long -OS version. +format: bytes + +Logs used capacity in bytes -- -*`host.os.family`*:: + +*`kubernetes.container.logs.inodes.count`*:: + -- -type: keyword +type: long -OS family (e.g. redhat, debian, freebsd, windows). +Total available inodes -- -*`host.ip`*:: +*`kubernetes.container.logs.inodes.free`*:: + -- -type: ip +type: long -List of IP-addresses. +Total free inodes -- -*`host.mac`*:: +*`kubernetes.container.logs.inodes.used`*:: + -- -type: keyword +type: long -List of hardware-addresses, usually MAC-addresses. +Total used inodes -- -[[exported-fields-http]] -== HTTP fields - -HTTP module - - - -[float] -== http fields +*`kubernetes.container.memory.available.bytes`*:: ++ +-- +type: long +format: bytes -[float] -== request fields +Total available memory -HTTP request information +-- -*`http.request.header`*:: +*`kubernetes.container.memory.usage.bytes`*:: + -- -type: object +type: long -The HTTP headers sent +format: bytes + +Total memory usage -- -*`http.request.method`*:: +*`kubernetes.container.memory.usage.node.pct`*:: + -- -type: keyword +type: scaled_float -The HTTP method used +format: percentage + +Memory usage as a percentage of the total node allocatable memory -- -*`http.request.body`*:: +*`kubernetes.container.memory.usage.limit.pct`*:: + -- -type: keyword - -The HTTP payload sent - +type: scaled_float --- +format: percentage -[float] -== response fields +Memory usage as a percentage of the defined limit for the container (or total node allocatable memory if unlimited) -HTTP response information +-- -*`http.response.header`*:: +*`kubernetes.container.memory.rss.bytes`*:: + -- -type: object +type: long -The HTTP headers received +format: bytes + +RSS memory usage -- -*`http.response.code`*:: + +*`kubernetes.container.memory.workingset.bytes`*:: + -- -type: keyword +type: long -example: 404 +format: bytes -The HTTP status code +Working set memory usage -- -*`http.response.phrase`*:: +*`kubernetes.container.memory.pagefaults`*:: + -- -type: keyword - -example: Not found +type: long -The HTTP status phrase +Number of page faults -- -*`http.response.body`*:: +*`kubernetes.container.memory.majorpagefaults`*:: + -- -type: keyword +type: long -The HTTP payload received +Number of major page faults -- -[float] -== json fields - -json metricset - -[float] -== server fields -server +*`kubernetes.container.rootfs.capacity.bytes`*:: ++ +-- +type: long +format: bytes -[[exported-fields-jolokia]] -== Jolokia fields +Root filesystem total capacity in bytes -Jolokia module +-- -[float] -== jolokia fields +*`kubernetes.container.rootfs.available.bytes`*:: ++ +-- +type: long -jolokia contains metrics exposed via jolokia agent +format: bytes +Root filesystem total available in bytes -[[exported-fields-kafka]] -== Kafka fields +-- -Kafka module +*`kubernetes.container.rootfs.used.bytes`*:: ++ +-- +type: long +format: bytes -[float] -== kafka fields +Root filesystem total used in bytes +-- -[float] -== consumergroup fields +*`kubernetes.container.rootfs.inodes.used`*:: ++ +-- +type: long -consumergroup +Used inodes +-- [float] -== broker fields +== event fields -Broker Consumer Group Information have been read from (Broker handling the consumer group). +The Kubernetes events metricset collects events that are generated by objects running inside of Kubernetes -*`kafka.consumergroup.broker.id`*:: +*`kubernetes.event.count`*:: + -- type: long -Broker id +Count field records the number of times the particular event has occurred -- -*`kafka.consumergroup.broker.address`*:: +*`kubernetes.event.message`*:: + -- type: keyword -Broker address +Message recorded for the given event -- -*`kafka.consumergroup.id`*:: +*`kubernetes.event.reason`*:: + -- type: keyword -Consumer Group ID +Reason recorded for the given event + -- -*`kafka.consumergroup.topic`*:: +*`kubernetes.event.type`*:: + -- type: keyword -Topic name +Type of the given event --- -*`kafka.consumergroup.partition`*:: -+ -- -type: long -Partition ID +[float] +== metadata fields --- +Metadata associated with the given event -*`kafka.consumergroup.offset`*:: -+ --- -type: long -consumer offset into partition being read --- -*`kafka.consumergroup.meta`*:: +*`kubernetes.event.metadata.timestamp.created`*:: + -- -type: text +type: date + +Timestamp of creation of the given event -custom consumer meta data string -- -*`kafka.consumergroup.error.code`*:: +*`kubernetes.event.metadata.name`*:: + -- -type: long +type: keyword -kafka consumer/partition error code. +Name of the event -- -[float] -== client fields - -Assigned client reading events from partition - - - -*`kafka.consumergroup.client.id`*:: +*`kubernetes.event.metadata.namespace`*:: + -- type: keyword -Client ID (kafka setting client.id) +Namespace in which event was generated + -- -*`kafka.consumergroup.client.host`*:: +*`kubernetes.event.metadata.resource_version`*:: + -- type: keyword -Client host +Version of the event resource + -- -*`kafka.consumergroup.client.member_id`*:: +*`kubernetes.event.metadata.uid`*:: + -- type: keyword -internal consumer group member ID +Unique identifier to the event object + -- -[float] -== partition fields +*`kubernetes.event.metadata.self_link`*:: ++ +-- +type: keyword -partition +URL representing the event +-- [float] -== offset fields +== involved_object fields -Available offsets of the given partition. +Metadata associated with the given involved object -*`kafka.partition.offset.newest`*:: +*`kubernetes.event.involved_object.api_version`*:: + -- -type: long +type: keyword -Newest offset of the partition. +API version of the object -- -*`kafka.partition.offset.oldest`*:: +*`kubernetes.event.involved_object.kind`*:: + -- -type: long +type: keyword -Oldest offset of the partition. +API kind of the object -- -[float] -== partition fields - -Partition data. - - - -*`kafka.partition.partition.id`*:: +*`kubernetes.event.involved_object.name`*:: + -- -type: long +type: keyword -Partition id. +name of the object -- -*`kafka.partition.partition.leader`*:: +*`kubernetes.event.involved_object.resource_version`*:: + -- -type: long +type: keyword -Leader id (broker). +resource version of the object -- -*`kafka.partition.partition.isr`*:: +*`kubernetes.event.involved_object.uid`*:: + -- -type: array +type: keyword -List of isr ids. +UUID version of the object -- -*`kafka.partition.partition.replica`*:: -+ --- -type: long +[float] +== node fields -Replica id (broker). +kubernetes node metrics --- -*`kafka.partition.partition.insync_replica`*:: +*`kubernetes.node.start_time`*:: + -- -type: boolean +type: date -Indicates if replica is included in the in-sync replicate set (ISR). +Start time -- -*`kafka.partition.partition.error.code`*:: -+ --- -type: long +[float] +== cpu fields -Error code from fetching partition. +CPU usage metrics --- -*`kafka.partition.topic.error.code`*:: + + +*`kubernetes.node.cpu.usage.core.ns`*:: + -- type: long -topic error code. +Node CPU Core usage nanoseconds -- -*`kafka.partition.topic.name`*:: +*`kubernetes.node.cpu.usage.nanocores`*:: + -- -type: keyword +type: long -Topic name +CPU used nanocores -- -*`kafka.partition.broker.id`*:: + + +*`kubernetes.node.memory.available.bytes`*:: + -- type: long -Broker id +format: bytes + +Total available memory -- -*`kafka.partition.broker.address`*:: + +*`kubernetes.node.memory.usage.bytes`*:: + -- -type: keyword +type: long -Broker address +format: bytes + +Total memory usage -- -[[exported-fields-kibana]] -== Kibana fields -Kibana module +*`kubernetes.node.memory.rss.bytes`*:: ++ +-- +type: long +format: bytes +RSS memory usage -[float] -== kibana fields +-- +*`kubernetes.node.memory.workingset.bytes`*:: ++ +-- +type: long -[float] -== stats fields +format: bytes -Kibana stats and run-time metrics. +Working set memory usage +-- -*`kibana.stats.cluster_uuid`*:: +*`kubernetes.node.memory.pagefaults`*:: + -- -type: keyword +type: long -UUID of the Elasticsearch cluster to which Kibana connects. +Number of page faults -- -*`kibana.stats.name`*:: +*`kubernetes.node.memory.majorpagefaults`*:: + -- -type: keyword +type: long -Kibana instance name. +Number of major page faults -- -*`kibana.stats.uuid`*:: + + +*`kubernetes.node.network.rx.bytes`*:: + -- -type: keyword +type: long -Kibana instance uuid. +format: bytes + +Received bytes -- -*`kibana.stats.version.number`*:: +*`kubernetes.node.network.rx.errors`*:: + -- -type: keyword +type: long -Kibana version number. +Rx errors -- -*`kibana.stats.status.overall.state`*:: + +*`kubernetes.node.network.tx.bytes`*:: + -- -type: keyword - -Kibana overall state. +type: long +format: bytes --- +Transmitted bytes -[float] -== process fields -Kibana process metrics. +-- +*`kubernetes.node.network.tx.errors`*:: ++ +-- +type: long +Tx errors -[float] -== mem fields -Memory usage metrics of the Kibana instance. +-- -*`kibana.stats.process.mem.heap.max.bytes`*:: +*`kubernetes.node.fs.capacity.bytes`*:: + -- type: long format: bytes -Total amount of heap memory used by V8. +Filesystem total capacity in bytes -- -*`kibana.stats.process.mem.heap.used.bytes`*:: + +*`kubernetes.node.fs.available.bytes`*:: + -- type: long format: bytes -Amount of memory in use by V8. +Filesystem total available in bytes -- -*`kibana.stats.process.mem.resident_set_size.bytes`*:: + +*`kubernetes.node.fs.used.bytes`*:: + -- type: long format: bytes -The amount of space occupied in main memory for the process. Includes heap, code segment, and stack. +Filesystem total used in bytes -- -*`kibana.stats.process.mem.external.bytes`*:: + +*`kubernetes.node.fs.inodes.used`*:: + -- type: long -format: bytes - -Memory usage of C++ objects bound to JavaScript objects managed by V8. +Number of used inodes -- -*`kibana.stats.process.pid`*:: +*`kubernetes.node.fs.inodes.count`*:: + -- type: long -Process ID of the Kibana instance. +Number of inodes -- -*`kibana.stats.process.uptime.ms`*:: +*`kubernetes.node.fs.inodes.free`*:: + -- type: long -Amount of time that the Kibana process has been running in milliseconds. +Number of free inodes -- -[float] -== response_times fields -HTTP Server response time metrics +*`kubernetes.node.runtime.imagefs.capacity.bytes`*:: ++ +-- +type: long + +format: bytes + +Image filesystem total capacity in bytes + + +-- + -*`kibana.stats.response_times.avg.ms`*:: +*`kubernetes.node.runtime.imagefs.available.bytes`*:: + -- type: long -Accumulated averages for response times, for all responses in a 5-second time window. +format: bytes + +Image filesystem total available in bytes -- -*`kibana.stats.response_times.max.ms`*:: + +*`kubernetes.node.runtime.imagefs.used.bytes`*:: + -- type: long -Accumulated maximums for response times, for all responses in a 5-second time window. +format: bytes + +Image filesystem total used in bytes -- [float] -== requests fields +== pod fields -HTTP Server request metrics +kubernetes pod metrics -*`kibana.stats.requests.status_codes`*:: +*`kubernetes.pod.start_time`*:: + -- -type: object +type: date -Key-value pairs for each status code sent by the server, and the number of times it sent that code. +Start time -- -*`kibana.stats.requests.total`*:: + + +*`kubernetes.pod.network.rx.bytes`*:: + -- type: long -Total number of requests sent by the server. +format: bytes + +Received bytes -- -*`kibana.stats.requests.disconnects`*:: +*`kubernetes.pod.network.rx.errors`*:: + -- type: long -Total number of client disconnects encountered by the server. +Rx errors -- -*`kibana.stats.concurrent_connections`*:: + +*`kubernetes.pod.network.tx.bytes`*:: + -- type: long -Number of client connections made to the server. Note that browsers can send multiple simultaneous connections to request mulitple server assets at once, and they can re-use established connections. +format: bytes + +Transmitted bytes -- -[float] -== sockets fields +*`kubernetes.pod.network.tx.errors`*:: ++ +-- +type: long -HTTP Web Sockets metrics +Tx errors +-- [float] -== http fields +== cpu fields + +CPU usage metrics -Web Sockets over plaintext HTTP -*`kibana.stats.sockets.http.total`*:: +*`kubernetes.pod.cpu.usage.nanocores`*:: + -- type: long -Number of HTTP web socket connections established +CPU used nanocores + +-- +*`kubernetes.pod.cpu.usage.node.pct`*:: ++ -- +type: scaled_float -[float] -== https fields +format: percentage -Web Sockets over encrypted HTTPS +CPU usage as a percentage of the total node CPU +-- -*`kibana.stats.sockets.https.total`*:: +*`kubernetes.pod.cpu.usage.limit.pct`*:: + -- -type: long +type: scaled_float -Number of HTTPS web socket connections established +format: percentage + +CPU usage as a percentage of the defined limit for the pod containers (or total node CPU if unlimited) -- -*`kibana.stats.event_loop_delay`*:: + + +*`kubernetes.pod.memory.usage.bytes`*:: + -- type: long -Node event loop delay calculated with internal benchmarking. +format: bytes + +Total memory usage -- -[float] -== status fields +*`kubernetes.pod.memory.usage.node.pct`*:: ++ +-- +type: scaled_float -Status fields +format: percentage +Memory usage as a percentage of the total node allocatable memory -*`kibana.status.name`*:: +-- + +*`kubernetes.pod.memory.usage.limit.pct`*:: + -- -type: keyword +type: scaled_float -Kibana instance name. +format: percentage + +Memory usage as a percentage of the defined limit for the pod containers (or total node allocatable memory if unlimited) -- -*`kibana.status.uuid`*:: +[float] +== container fields + +kubernetes container metrics + + + +*`kubernetes.container.id`*:: + -- type: keyword -Kibana instance uuid. - +Container id -- -*`kibana.status.version.number`*:: + +*`kubernetes.container.status.phase`*:: + -- type: keyword -Kibana version number. +Container phase (running, waiting, terminated) -- -*`kibana.status.status.overall.state`*:: +*`kubernetes.container.status.ready`*:: + -- -type: keyword +type: boolean -Kibana overall state. +Container ready status -- -[float] -== metrics fields +*`kubernetes.container.status.restarts`*:: ++ +-- +type: integer -Metrics fields +Container restarts count +-- -*`kibana.status.metrics.concurrent_connections`*:: +*`kubernetes.container.status.reason`*:: + -- -type: long +type: keyword -Current concurrent connections. +Waiting (ContainerCreating, CrashLoopBackoff, ErrImagePull, ImagePullBackoff) or termination (Completed, ContainerCannotRun, Error, OOMKilled) reason. -- -[float] -== requests fields -Request statistics. +*`kubernetes.container.cpu.limit.cores`*:: ++ +-- +type: long +Container CPU cores limit -*`kibana.status.metrics.requests.disconnects`*:: +-- + +*`kubernetes.container.cpu.request.cores`*:: + -- type: long -Total number of disconnected connections. +Container CPU requested cores -- -*`kibana.status.metrics.requests.total`*:: +*`kubernetes.container.cpu.limit.nanocores`*:: + -- type: long -Total number of connections. +Container CPU nanocores limit -- -[[exported-fields-kubernetes-processor]] -== Kubernetes fields +*`kubernetes.container.cpu.request.nanocores`*:: ++ +-- +type: long -Kubernetes metadata added by the kubernetes processor +Container CPU requested nanocores +-- -*`kubernetes.pod.name`*:: +*`kubernetes.container.memory.limit.bytes`*:: + -- -type: keyword +type: long -Kubernetes pod name +format: bytes + +Container memory limit in bytes -- -*`kubernetes.pod.uid`*:: +*`kubernetes.container.memory.request.bytes`*:: + -- -type: keyword +type: long + +format: bytes -Kubernetes pod uid +Container requested memory in bytes -- -*`kubernetes.namespace`*:: +[float] +== deployment fields + +kubernetes deployment metrics + + + +*`kubernetes.deployment.name`*:: + -- type: keyword -Kubernetes namespace +Kubernetes deployment name -- -*`kubernetes.node.name`*:: +*`kubernetes.deployment.paused`*:: + -- -type: keyword +type: boolean -Kubernetes node name +Kubernetes deployment paused status -- -*`kubernetes.labels`*:: -+ --- -type: object +[float] +== replicas fields -Kubernetes labels map +Kubernetes deployment replicas info --- -*`kubernetes.annotations`*:: +*`kubernetes.deployment.replicas.desired`*:: + -- -type: object +type: integer -Kubernetes annotations map +Deployment number of desired replicas (spec) -- -*`kubernetes.container.name`*:: +*`kubernetes.deployment.replicas.available`*:: + -- -type: keyword +type: integer -Kubernetes container name +Deployment available replicas -- -*`kubernetes.container.image`*:: +*`kubernetes.deployment.replicas.unavailable`*:: + -- -type: keyword +type: integer -Kubernetes container image +Deployment unavailable replicas -- -[[exported-fields-kubernetes]] -== Kubernetes fields +*`kubernetes.deployment.replicas.updated`*:: ++ +-- +type: integer -Kubernetes metrics +Deployment updated replicas +-- [float] -== kubernetes fields - -Information and statistics of pods managed by kubernetes. - - +== node fields -[float] -== apiserver fields +kubernetes node metrics -Kubernetes API server metrics -*`kubernetes.apiserver.request.client`*:: +*`kubernetes.node.status.ready`*:: + -- type: keyword -Client doing the requests +Node ready status (true, false or unknown) -- -*`kubernetes.apiserver.request.resource`*:: +*`kubernetes.node.status.unschedulable`*:: + -- -type: keyword - -Requested resource +type: boolean +Node unschedulable status --- -*`kubernetes.apiserver.request.subresource`*:: -+ -- -type: keyword - -Requested subresource --- - -*`kubernetes.apiserver.request.scope`*:: +*`kubernetes.node.cpu.allocatable.cores`*:: + -- -type: keyword +type: float -Request scope (cluster, namespace, resource) +Node CPU allocatable cores -- -*`kubernetes.apiserver.request.verb`*:: +*`kubernetes.node.cpu.capacity.cores`*:: + -- -type: keyword +type: long -Request HTTP verb +Node CPU capacity cores -- -*`kubernetes.apiserver.request.count`*:: + +*`kubernetes.node.memory.allocatable.bytes`*:: + -- type: long -Total number of requests +format: bytes + +Node allocatable memory in bytes -- -*`kubernetes.apiserver.request.latency.sum`*:: +*`kubernetes.node.memory.capacity.bytes`*:: + -- type: long -Requests latency, sum of latencies in microseconds +format: bytes + +Node memory capacity in bytes -- -*`kubernetes.apiserver.request.latency.count`*:: + +*`kubernetes.node.pod.allocatable.total`*:: + -- type: long -Request latency, number of requests +Node allocatable pods -- -*`kubernetes.apiserver.request.latency.bucket`*:: +*`kubernetes.node.pod.capacity.total`*:: + -- -type: object +type: long -Request latency histagram buckets +Node pod capacity -- [float] -== container fields +== pod fields -kubernetes container metrics +kubernetes pod metrics -*`kubernetes.container.start_time`*:: +*`kubernetes.pod.ip`*:: + -- -type: date +type: ip -Start time +Kubernetes pod IP -- -[float] -== cpu fields - -CPU usage metrics - - - - - -*`kubernetes.container.cpu.usage.core.ns`*:: +*`kubernetes.pod.host_ip`*:: + -- -type: long +type: ip -Container CPU Core usage nanoseconds +Kubernetes pod host IP -- -*`kubernetes.container.cpu.usage.nanocores`*:: -+ --- -type: long +[float] +== status fields -CPU used nanocores +Kubernetes pod status metrics --- -*`kubernetes.container.cpu.usage.node.pct`*:: +*`kubernetes.pod.status.phase`*:: + -- -type: scaled_float - -format: percentage +type: keyword -CPU usage as a percentage of the total node allocatable CPU +Kubernetes pod phase (Running, Pending...) -- -*`kubernetes.container.cpu.usage.limit.pct`*:: +*`kubernetes.pod.status.ready`*:: + -- -type: scaled_float - -format: percentage +type: keyword -CPU usage as a percentage of the defined limit for the container (or total node allocatable CPU if unlimited) +Kubernetes pod ready status (true, false or unknown) -- -[float] -== logs fields - -Logs info - - - - -*`kubernetes.container.logs.available.bytes`*:: +*`kubernetes.pod.status.scheduled`*:: + -- -type: long - -format: bytes +type: keyword -Logs available capacity in bytes +Kubernetes pod scheduled status (true, false, unknown) -- +[float] +== replicaset fields -*`kubernetes.container.logs.capacity.bytes`*:: -+ --- -type: long - -format: bytes +kubernetes replica set metrics -Logs total capacity in bytes +*`kubernetes.replicaset.name`*:: ++ -- +type: keyword +Kubernetes replica set name -*`kubernetes.container.logs.used.bytes`*:: -+ --- -type: long -format: bytes +-- -Logs used capacity in bytes +[float] +== replicas fields +Kubernetes replica set paused status --- -*`kubernetes.container.logs.inodes.count`*:: +*`kubernetes.replicaset.replicas.available`*:: + -- type: long -Total available inodes +The number of replicas per ReplicaSet -- -*`kubernetes.container.logs.inodes.free`*:: +*`kubernetes.replicaset.replicas.desired`*:: + -- type: long -Total free inodes +The number of replicas per ReplicaSet -- -*`kubernetes.container.logs.inodes.used`*:: +*`kubernetes.replicaset.replicas.ready`*:: + -- type: long -Total used inodes +The number of ready replicas per ReplicaSet -- - - -*`kubernetes.container.memory.available.bytes`*:: +*`kubernetes.replicaset.replicas.observed`*:: + -- type: long -format: bytes - -Total available memory +The generation observed by the ReplicaSet controller -- - -*`kubernetes.container.memory.usage.bytes`*:: +*`kubernetes.replicaset.replicas.labeled`*:: + -- type: long -format: bytes - -Total memory usage - +The number of fully labeled replicas per ReplicaSet --- -*`kubernetes.container.memory.usage.node.pct`*:: -+ -- -type: scaled_float -format: percentage +[float] +== statefulset fields -Memory usage as a percentage of the total node allocatable memory +kubernetes stateful set metrics --- -*`kubernetes.container.memory.usage.limit.pct`*:: +*`kubernetes.statefulset.name`*:: + -- -type: scaled_float - -format: percentage +type: keyword -Memory usage as a percentage of the defined limit for the container (or total node allocatable memory if unlimited) +Kubernetes stateful set name -- - -*`kubernetes.container.memory.rss.bytes`*:: +*`kubernetes.statefulset.created`*:: + -- type: long -format: bytes - -RSS memory usage - - --- +The creation timestamp (epoch) for StatefulSet -*`kubernetes.container.memory.workingset.bytes`*:: -+ -- -type: long -format: bytes +[float] +== replicas fields -Working set memory usage +Kubernetes stateful set replicas status --- -*`kubernetes.container.memory.pagefaults`*:: +*`kubernetes.statefulset.replicas.observed`*:: + -- type: long -Number of page faults +The number of observed replicas per StatefulSet -- -*`kubernetes.container.memory.majorpagefaults`*:: +*`kubernetes.statefulset.replicas.desired`*:: + -- type: long -Number of major page faults +The number of desired replicas per StatefulSet -- +[float] +== generation fields + +Kubernetes stateful set generation information -*`kubernetes.container.rootfs.capacity.bytes`*:: + +*`kubernetes.statefulset.generation.observed`*:: + -- type: long -format: bytes - -Root filesystem total capacity in bytes +The observed generation per StatefulSet -- - -*`kubernetes.container.rootfs.available.bytes`*:: +*`kubernetes.statefulset.generation.desired`*:: + -- type: long -format: bytes - -Root filesystem total available in bytes +The desired generation per StatefulSet -- +[float] +== system fields + +kubernetes system containers metrics -*`kubernetes.container.rootfs.used.bytes`*:: + + +*`kubernetes.system.container`*:: + -- -type: long - -format: bytes +type: keyword -Root filesystem total used in bytes +Container name -- - -*`kubernetes.container.rootfs.inodes.used`*:: +*`kubernetes.system.start_time`*:: + -- -type: long +type: date -Used inodes +Start time -- [float] -== event fields +== cpu fields -The Kubernetes events metricset collects events that are generated by objects running inside of Kubernetes +CPU usage metrics -*`kubernetes.event.count`*:: + + +*`kubernetes.system.cpu.usage.core.ns`*:: + -- type: long -Count field records the number of times the particular event has occurred +CPU Core usage nanoseconds -- -*`kubernetes.event.message`*:: +*`kubernetes.system.cpu.usage.nanocores`*:: + -- -type: keyword +type: long -Message recorded for the given event +CPU used nanocores -- -*`kubernetes.event.reason`*:: + + +*`kubernetes.system.memory.usage.bytes`*:: + -- -type: keyword +type: long -Reason recorded for the given event +format: bytes +Total memory usage --- -*`kubernetes.event.type`*:: -+ -- -type: keyword - -Type of the given event +*`kubernetes.system.memory.rss.bytes`*:: ++ -- +type: long -[float] -== metadata fields +format: bytes -Metadata associated with the given event +RSS memory usage +-- -*`kubernetes.event.metadata.timestamp.created`*:: +*`kubernetes.system.memory.workingset.bytes`*:: + -- -type: date +type: long -Timestamp of creation of the given event +format: bytes + +Working set memory usage -- -*`kubernetes.event.metadata.name`*:: +*`kubernetes.system.memory.pagefaults`*:: + -- -type: keyword +type: long -Name of the event +Number of page faults -- -*`kubernetes.event.metadata.namespace`*:: +*`kubernetes.system.memory.majorpagefaults`*:: + -- -type: keyword +type: long -Namespace in which event was generated +Number of major page faults -- -*`kubernetes.event.metadata.resource_version`*:: -+ --- -type: keyword +[float] +== volume fields -Version of the event resource +kubernetes volume metrics --- -*`kubernetes.event.metadata.uid`*:: +*`kubernetes.volume.name`*:: + -- type: keyword -Unique identifier to the event object - +Volume name --- -*`kubernetes.event.metadata.self_link`*:: -+ -- -type: keyword -URL representing the event +*`kubernetes.volume.fs.capacity.bytes`*:: ++ -- +type: long -[float] -== involved_object fields +format: bytes + +Filesystem total capacity in bytes -Metadata associated with the given involved object +-- -*`kubernetes.event.involved_object.api_version`*:: +*`kubernetes.volume.fs.available.bytes`*:: + -- -type: keyword +type: long -API version of the object +format: bytes + +Filesystem total available in bytes -- -*`kubernetes.event.involved_object.kind`*:: + +*`kubernetes.volume.fs.used.bytes`*:: + -- -type: keyword +type: long -API kind of the object +format: bytes + +Filesystem total used in bytes -- -*`kubernetes.event.involved_object.name`*:: + +*`kubernetes.volume.fs.inodes.used`*:: + -- -type: keyword +type: long -name of the object +Used inodes -- -*`kubernetes.event.involved_object.resource_version`*:: +*`kubernetes.volume.fs.inodes.free`*:: + -- -type: keyword +type: long -resource version of the object +Free inodes -- -*`kubernetes.event.involved_object.uid`*:: +*`kubernetes.volume.fs.inodes.count`*:: + -- -type: keyword +type: long -UUID version of the object +Total inodes -- -[float] -== node fields +[[exported-fields-kvm]] +== kvm fields -kubernetes node metrics +experimental[] +kvm module -*`kubernetes.node.start_time`*:: -+ --- -type: date +[float] +== kvm fields -Start time --- [float] -== cpu fields +== dommemstat fields -CPU usage metrics +dommemstat +[float] +== stat fields +Memory stat -*`kubernetes.node.cpu.usage.core.ns`*:: + + +*`kvm.dommemstat.stat.name`*:: + -- -type: long +type: keyword -Node CPU Core usage nanoseconds +Memory stat name -- -*`kubernetes.node.cpu.usage.nanocores`*:: +*`kvm.dommemstat.stat.value`*:: + -- type: long -CPU used nanocores +Memory stat value -- - - -*`kubernetes.node.memory.available.bytes`*:: +*`kvm.dommemstat.id`*:: + -- type: long -format: bytes +Domain id -Total available memory +-- +*`kvm.dommemstat.name`*:: ++ -- +type: keyword + +Domain name -*`kubernetes.node.memory.usage.bytes`*:: -+ -- -type: long -format: bytes +[[exported-fields-logstash]] +== Logstash fields -Total memory usage +Logstash module --- +[float] +== logstash fields -*`kubernetes.node.memory.rss.bytes`*:: + + + +[float] +== node fields + +node + + + +*`logstash.node.host`*:: + -- -type: long +type: keyword -format: bytes +Host name -RSS memory usage +-- +*`logstash.node.version`*:: ++ -- +type: keyword + +Logstash Version -*`kubernetes.node.memory.workingset.bytes`*:: -+ -- -type: long -format: bytes +[float] +== jvm fields -Working set memory usage +JVM Info --- -*`kubernetes.node.memory.pagefaults`*:: +*`logstash.node.jvm.version`*:: + -- -type: long +type: keyword -Number of page faults +Version -- -*`kubernetes.node.memory.majorpagefaults`*:: +*`logstash.node.jvm.pid`*:: + -- type: long -Number of major page faults +Pid -- +[float] +== node.stats fields +node_stats metrics. -*`kubernetes.node.network.rx.bytes`*:: -+ --- -type: long -format: bytes -Received bytes +[float] +== events fields +Events stats --- -*`kubernetes.node.network.rx.errors`*:: + +*`logstash.node.stats.events.in`*:: + -- type: long -Rx errors +Incoming events counter. -- - -*`kubernetes.node.network.tx.bytes`*:: +*`logstash.node.stats.events.out`*:: + -- type: long -format: bytes - -Transmitted bytes +Outgoing events counter. -- -*`kubernetes.node.network.tx.errors`*:: +*`logstash.node.stats.events.filtered`*:: + -- type: long -Tx errors +Filtered events counter. -- +[[exported-fields-memcached]] +== Memcached fields +Memcached module -*`kubernetes.node.fs.capacity.bytes`*:: -+ --- -type: long - -format: bytes - -Filesystem total capacity in bytes --- +[float] +== memcached fields -*`kubernetes.node.fs.available.bytes`*:: -+ --- -type: long -format: bytes -Filesystem total available in bytes +[float] +== stats fields +stats --- -*`kubernetes.node.fs.used.bytes`*:: +*`memcached.stats.pid`*:: + -- type: long -format: bytes - -Filesystem total used in bytes +Current process ID of the Memcached task. -- - -*`kubernetes.node.fs.inodes.used`*:: +*`memcached.stats.uptime.sec`*:: + -- type: long -Number of used inodes +Memcached server uptime. -- -*`kubernetes.node.fs.inodes.count`*:: +*`memcached.stats.threads`*:: + -- type: long -Number of inodes +Number of threads used by the current Memcached server process. -- -*`kubernetes.node.fs.inodes.free`*:: +*`memcached.stats.connections.current`*:: + -- type: long -Number of free inodes +Number of open connections to this Memcached server, should be the same value on all servers during normal operation. -- - - - -*`kubernetes.node.runtime.imagefs.capacity.bytes`*:: +*`memcached.stats.connections.total`*:: + -- type: long -format: bytes - -Image filesystem total capacity in bytes +Numer of successful connect attempts to this server since it has been started. -- - -*`kubernetes.node.runtime.imagefs.available.bytes`*:: +*`memcached.stats.get.hits`*:: + -- type: long -format: bytes - -Image filesystem total available in bytes +Number of successful "get" commands (cache hits) since startup, divide them by the "cmd_get" value to get the cache hitrate. -- - -*`kubernetes.node.runtime.imagefs.used.bytes`*:: +*`memcached.stats.get.misses`*:: + -- type: long -format: bytes - -Image filesystem total used in bytes +Number of failed "get" requests because nothing was cached for this key or the cached value was too old. -- -[float] -== pod fields - -kubernetes pod metrics - - - -*`kubernetes.pod.start_time`*:: +*`memcached.stats.cmd.get`*:: + -- -type: date +type: long -Start time +Number of "get" commands received since server startup not counting if they were successful or not. -- - - -*`kubernetes.pod.network.rx.bytes`*:: +*`memcached.stats.cmd.set`*:: + -- type: long -format: bytes - -Received bytes +Number of "set" commands serviced since startup. -- -*`kubernetes.pod.network.rx.errors`*:: +*`memcached.stats.read.bytes`*:: + -- type: long -Rx errors +Total number of bytes received from the network by this server. -- - -*`kubernetes.pod.network.tx.bytes`*:: +*`memcached.stats.written.bytes`*:: + -- type: long -format: bytes - -Transmitted bytes +Total number of bytes send to the network by this server. -- -*`kubernetes.pod.network.tx.errors`*:: +*`memcached.stats.items.current`*:: + -- type: long -Tx errors +Number of items currently in this server's cache. -- -[float] -== cpu fields - -CPU usage metrics - - - - -*`kubernetes.pod.cpu.usage.nanocores`*:: +*`memcached.stats.items.total`*:: + -- type: long -CPU used nanocores +Number of items stored ever stored on this server. This is no "maximum item count" value but a counted increased by every new item stored in the cache. -- -*`kubernetes.pod.cpu.usage.node.pct`*:: +*`memcached.stats.evictions`*:: + -- -type: scaled_float - -format: percentage +type: long -CPU usage as a percentage of the total node CPU +Number of objects removed from the cache to free up memory for new items because Memcached reached it's maximum memory setting (limit_maxbytes). -- -*`kubernetes.pod.cpu.usage.limit.pct`*:: -+ --- -type: scaled_float +[[exported-fields-mongodb]] +== MongoDB fields -format: percentage +Metrics collected from MongoDB servers. -CPU usage as a percentage of the defined limit for the pod containers (or total node CPU if unlimited) --- +[float] +== mongodb fields +MongoDB metrics. -*`kubernetes.pod.memory.usage.bytes`*:: -+ --- -type: long -format: bytes +[float] +== collstats fields -Total memory usage +MongoDB collection statistics metrics. --- -*`kubernetes.pod.memory.usage.node.pct`*:: +*`mongodb.collstats.db`*:: + -- -type: scaled_float - -format: percentage +type: keyword -Memory usage as a percentage of the total node allocatable memory +Database name. -- -*`kubernetes.pod.memory.usage.limit.pct`*:: +*`mongodb.collstats.collection`*:: + -- -type: scaled_float - -format: percentage +type: keyword -Memory usage as a percentage of the defined limit for the pod containers (or total node allocatable memory if unlimited) +Collection name. -- -[float] -== container fields - -kubernetes container metrics - - - -*`kubernetes.container.id`*:: +*`mongodb.collstats.name`*:: + -- type: keyword -Container id +Combination of database and collection name. --- +-- -*`kubernetes.container.status.phase`*:: +*`mongodb.collstats.total.time.us`*:: + -- -type: keyword +type: long -Container phase (running, waiting, terminated) +Total waiting time for locks in microseconds. -- -*`kubernetes.container.status.ready`*:: +*`mongodb.collstats.total.count`*:: + -- -type: boolean +type: long -Container ready status +Total number of lock wait events. -- -*`kubernetes.container.status.restarts`*:: + +*`mongodb.collstats.lock.read.time.us`*:: + -- -type: integer +type: long -Container restarts count +Time waiting for read locks in microseconds. -- -*`kubernetes.container.status.reason`*:: +*`mongodb.collstats.lock.read.count`*:: + -- -type: keyword +type: long -Waiting (ContainerCreating, CrashLoopBackoff, ErrImagePull, ImagePullBackoff) or termination (Completed, ContainerCannotRun, Error, OOMKilled) reason. +Number of read lock wait events. -- - -*`kubernetes.container.cpu.limit.cores`*:: +*`mongodb.collstats.lock.write.time.us`*:: + -- type: long -Container CPU cores limit +Time waiting for write locks in microseconds. -- -*`kubernetes.container.cpu.request.cores`*:: +*`mongodb.collstats.lock.write.count`*:: + -- type: long -Container CPU requested cores +Number of write lock wait events. -- -*`kubernetes.container.cpu.limit.nanocores`*:: +*`mongodb.collstats.queries.time.us`*:: + -- type: long -Container CPU nanocores limit +Time running queries in microseconds. -- -*`kubernetes.container.cpu.request.nanocores`*:: +*`mongodb.collstats.queries.count`*:: + -- type: long -Container CPU requested nanocores +Number of queries executed. -- - -*`kubernetes.container.memory.limit.bytes`*:: +*`mongodb.collstats.getmore.time.us`*:: + -- type: long -format: bytes - -Container memory limit in bytes +Time asking for more cursor rows in microseconds. -- -*`kubernetes.container.memory.request.bytes`*:: +*`mongodb.collstats.getmore.count`*:: + -- type: long -format: bytes - -Container requested memory in bytes +Number of times a cursor asked for more data. -- -[float] -== deployment fields +*`mongodb.collstats.insert.time.us`*:: ++ +-- +type: long -kubernetes deployment metrics +Time inserting new documents in microseconds. +-- -*`kubernetes.deployment.name`*:: +*`mongodb.collstats.insert.count`*:: + -- -type: keyword +type: long -Kubernetes deployment name +Number of document insert events. -- -*`kubernetes.deployment.paused`*:: +*`mongodb.collstats.update.time.us`*:: + -- -type: boolean +type: long -Kubernetes deployment paused status +Time updating documents in microseconds. -- -[float] -== replicas fields +*`mongodb.collstats.update.count`*:: ++ +-- +type: long -Kubernetes deployment replicas info +Number of document update events. +-- -*`kubernetes.deployment.replicas.desired`*:: +*`mongodb.collstats.remove.time.us`*:: + -- -type: integer +type: long -Deployment number of desired replicas (spec) +Time deleting documents in microseconds. -- -*`kubernetes.deployment.replicas.available`*:: +*`mongodb.collstats.remove.count`*:: + -- -type: integer +type: long -Deployment available replicas +Number of document delete events. -- -*`kubernetes.deployment.replicas.unavailable`*:: +*`mongodb.collstats.commands.time.us`*:: + -- -type: integer +type: long -Deployment unavailable replicas +Time executing database commands in microseconds. -- -*`kubernetes.deployment.replicas.updated`*:: +*`mongodb.collstats.commands.count`*:: + -- -type: integer +type: long -Deployment updated replicas +Number of database commands executed. -- [float] -== node fields - -kubernetes node metrics +== dbstats fields +dbstats provides an overview of a particular mongo database. This document is most concerned with data volumes of a database. -*`kubernetes.node.status.ready`*:: +*`mongodb.dbstats.avg_obj_size.bytes`*:: + -- -type: keyword - -Node ready status (true, false or unknown) +type: long +format: bytes -- -*`kubernetes.node.status.unschedulable`*:: +*`mongodb.dbstats.collections`*:: + -- -type: boolean - -Node unschedulable status - +type: integer -- - -*`kubernetes.node.cpu.allocatable.cores`*:: +*`mongodb.dbstats.data_size.bytes`*:: + -- -type: float - -Node CPU allocatable cores +type: long +format: bytes -- -*`kubernetes.node.cpu.capacity.cores`*:: +*`mongodb.dbstats.db`*:: + -- -type: long - -Node CPU capacity cores - +type: keyword -- - -*`kubernetes.node.memory.allocatable.bytes`*:: +*`mongodb.dbstats.file_size.bytes`*:: + -- type: long format: bytes -Node allocatable memory in bytes - - -- -*`kubernetes.node.memory.capacity.bytes`*:: +*`mongodb.dbstats.index_size.bytes`*:: + -- type: long format: bytes -Node memory capacity in bytes - - -- - -*`kubernetes.node.pod.allocatable.total`*:: +*`mongodb.dbstats.indexes`*:: + -- type: long -Node allocatable pods - - -- -*`kubernetes.node.pod.capacity.total`*:: +*`mongodb.dbstats.num_extents`*:: + -- type: long -Node pod capacity - - -- -[float] -== pod fields - -kubernetes pod metrics - - - -*`kubernetes.pod.ip`*:: +*`mongodb.dbstats.objects`*:: + -- -type: ip - -Kubernetes pod IP - +type: long -- -*`kubernetes.pod.host_ip`*:: +*`mongodb.dbstats.storage_size.bytes`*:: + -- -type: ip - -Kubernetes pod host IP +type: long +format: bytes -- -[float] -== status fields - -Kubernetes pod status metrics - - - -*`kubernetes.pod.status.phase`*:: +*`mongodb.dbstats.ns_size_mb.mb`*:: + -- -type: keyword - -Kubernetes pod phase (Running, Pending...) - +type: long -- -*`kubernetes.pod.status.ready`*:: + +*`mongodb.dbstats.data_file_version.major`*:: + -- -type: keyword - -Kubernetes pod ready status (true, false or unknown) - +type: long -- -*`kubernetes.pod.status.scheduled`*:: +*`mongodb.dbstats.data_file_version.minor`*:: + -- -type: keyword - -Kubernetes pod scheduled status (true, false, unknown) - +type: long -- -[float] -== replicaset fields - -kubernetes replica set metrics +*`mongodb.dbstats.extent_free_list.num`*:: ++ +-- +type: long +-- -*`kubernetes.replicaset.name`*:: +*`mongodb.dbstats.extent_free_list.size.bytes`*:: + -- -type: keyword - -Kubernetes replica set name +type: long +format: bytes -- [float] -== replicas fields +== status fields -Kubernetes replica set paused status +MongoDB server status metrics. -*`kubernetes.replicaset.replicas.available`*:: +*`mongodb.status.version`*:: + -- -type: long +type: keyword -The number of replicas per ReplicaSet +Instance version. -- -*`kubernetes.replicaset.replicas.desired`*:: +*`mongodb.status.process`*:: + -- -type: long +type: keyword -The number of replicas per ReplicaSet +The current MongoDB process. Possible values are mongos or mongod. -- -*`kubernetes.replicaset.replicas.ready`*:: +*`mongodb.status.uptime.ms`*:: + -- type: long -The number of ready replicas per ReplicaSet +Instance uptime in milliseconds. -- -*`kubernetes.replicaset.replicas.observed`*:: +*`mongodb.status.local_time`*:: + -- -type: long +type: date -The generation observed by the ReplicaSet controller +Local time as reported by the MongoDB instance. -- -*`kubernetes.replicaset.replicas.labeled`*:: +*`mongodb.status.asserts.regular`*:: + -- type: long -The number of fully labeled replicas per ReplicaSet +Number of regular assertions produced by the server. -- -[float] -== statefulset fields - -kubernetes stateful set metrics - - - -*`kubernetes.statefulset.name`*:: +*`mongodb.status.asserts.warning`*:: + -- -type: keyword +type: long -Kubernetes stateful set name +Number of warning assertions produced by the server. -- -*`kubernetes.statefulset.created`*:: +*`mongodb.status.asserts.msg`*:: + -- type: long -The creation timestamp (epoch) for StatefulSet - - --- - -[float] -== replicas fields - -Kubernetes stateful set replicas status +Number of msg assertions produced by the server. +-- -*`kubernetes.statefulset.replicas.observed`*:: +*`mongodb.status.asserts.user`*:: + -- type: long -The number of observed replicas per StatefulSet +Number of user assertions produced by the server. -- -*`kubernetes.statefulset.replicas.desired`*:: +*`mongodb.status.asserts.rollovers`*:: + -- type: long -The number of desired replicas per StatefulSet +Number of rollovers assertions produced by the server. -- [float] -== generation fields +== connections fields -Kubernetes stateful set generation information +Data regarding the current status of incoming connections and availability of the database server. -*`kubernetes.statefulset.generation.observed`*:: +*`mongodb.status.connections.current`*:: + -- type: long -The observed generation per StatefulSet +The number of connections to the database server from clients. This number includes the current shell session. Consider the value of `available` to add more context to this datum. -- -*`kubernetes.statefulset.generation.desired`*:: +*`mongodb.status.connections.available`*:: + -- type: long -The desired generation per StatefulSet +The number of unused available incoming connections the database can provide. + + +-- + +*`mongodb.status.connections.total_created`*:: ++ +-- +type: long + +A count of all incoming connections created to the server. This number includes connections that have since closed. -- [float] -== system fields +== extra_info fields -kubernetes system containers metrics +Platform specific data. -*`kubernetes.system.container`*:: +*`mongodb.status.extra_info.heap_usage.bytes`*:: + -- -type: keyword +type: long -Container name +format: bytes + +The total size in bytes of heap space used by the database process. Only available on Unix/Linux. -- -*`kubernetes.system.start_time`*:: +*`mongodb.status.extra_info.page_faults`*:: + -- -type: date +type: long -Start time +The total number of page faults that require disk operations. Page faults refer to operations that require the database server to access data that isn't available in active memory. -- [float] -== cpu fields - -CPU usage metrics +== global_lock fields +Reports on lock state of the database. - -*`kubernetes.system.cpu.usage.core.ns`*:: +*`mongodb.status.global_lock.total_time.us`*:: + -- type: long -CPU Core usage nanoseconds +The time, in microseconds, since the database last started and created the globalLock. This is roughly equivalent to total server uptime. -- -*`kubernetes.system.cpu.usage.nanocores`*:: +[float] +== current_queue fields + +The number of operations queued because of a lock. + + + +*`mongodb.status.global_lock.current_queue.total`*:: + -- type: long -CPU used nanocores +The total number of operations queued waiting for the lock (i.e., the sum of current_queue.readers and current_queue.writers). -- - - -*`kubernetes.system.memory.usage.bytes`*:: +*`mongodb.status.global_lock.current_queue.readers`*:: + -- type: long -format: bytes - -Total memory usage +The number of operations that are currently queued and waiting for the read lock. -- - -*`kubernetes.system.memory.rss.bytes`*:: +*`mongodb.status.global_lock.current_queue.writers`*:: + -- type: long -format: bytes - -RSS memory usage +The number of operations that are currently queued and waiting for the write lock. -- +[float] +== active_clients fields + +The number of connected clients and the read and write operations performed by these clients. -*`kubernetes.system.memory.workingset.bytes`*:: + + +*`mongodb.status.global_lock.active_clients.total`*:: + -- type: long -format: bytes - -Working set memory usage +Total number of the active client connections performing read or write operations. -- -*`kubernetes.system.memory.pagefaults`*:: +*`mongodb.status.global_lock.active_clients.readers`*:: + -- type: long -Number of page faults +The number of the active client connections performing read operations. -- -*`kubernetes.system.memory.majorpagefaults`*:: +*`mongodb.status.global_lock.active_clients.writers`*:: + -- type: long -Number of major page faults +The number of the active client connections performing write operations. -- [float] -== volume fields +== locks fields -kubernetes volume metrics +A document that reports for each lock , data on lock s. The possible lock s are global, database, collection, metadata and oplog. The possible s are r, w, R and W which respresent shared, exclusive, intent shared and intent exclusive. +locks..acquire.count. shows the number of times the lock was acquired in the specified mode. locks..wait.count. shows the number of times the locks.acquireCount lock acquisitions encountered waits because the locks were held in a conflicting mode. locks..wait.us. shows the cumulative wait time in microseconds for the lock acquisitions. locks..deadlock.count. shows the number of times the lock acquisitions encountered deadlocks. -*`kubernetes.volume.name`*:: + +*`mongodb.status.locks.global.acquire.count.r`*:: + -- -type: keyword - -Volume name - +type: long -- +*`mongodb.status.locks.global.acquire.count.w`*:: ++ +-- +type: long +-- -*`kubernetes.volume.fs.capacity.bytes`*:: +*`mongodb.status.locks.global.acquire.count.R`*:: + -- type: long -format: bytes +-- -Filesystem total capacity in bytes +*`mongodb.status.locks.global.acquire.count.W`*:: ++ +-- +type: long +-- +*`mongodb.status.locks.global.wait.count.r`*:: ++ -- +type: long +-- -*`kubernetes.volume.fs.available.bytes`*:: +*`mongodb.status.locks.global.wait.count.w`*:: + -- type: long -format: bytes +-- -Filesystem total available in bytes +*`mongodb.status.locks.global.wait.count.R`*:: ++ +-- +type: long +-- +*`mongodb.status.locks.global.wait.count.W`*:: ++ -- +type: long +-- -*`kubernetes.volume.fs.used.bytes`*:: +*`mongodb.status.locks.global.wait.us.r`*:: + -- type: long -format: bytes +-- -Filesystem total used in bytes +*`mongodb.status.locks.global.wait.us.w`*:: ++ +-- +type: long +-- +*`mongodb.status.locks.global.wait.us.R`*:: ++ -- +type: long +-- -*`kubernetes.volume.fs.inodes.used`*:: +*`mongodb.status.locks.global.wait.us.W`*:: + -- type: long -Used inodes +-- +*`mongodb.status.locks.global.deadlock.count.r`*:: ++ +-- +type: long -- -*`kubernetes.volume.fs.inodes.free`*:: +*`mongodb.status.locks.global.deadlock.count.w`*:: + -- type: long -Free inodes +-- +*`mongodb.status.locks.global.deadlock.count.R`*:: ++ +-- +type: long -- -*`kubernetes.volume.fs.inodes.count`*:: +*`mongodb.status.locks.global.deadlock.count.W`*:: + -- type: long -Total inodes +-- +*`mongodb.status.locks.database.acquire.count.r`*:: ++ -- +type: long -[[exported-fields-kvm]] -== kvm fields - -experimental[] -kvm module +-- +*`mongodb.status.locks.database.acquire.count.w`*:: ++ +-- +type: long +-- -[float] -== kvm fields +*`mongodb.status.locks.database.acquire.count.R`*:: ++ +-- +type: long +-- +*`mongodb.status.locks.database.acquire.count.W`*:: ++ +-- +type: long +-- -[float] -== dommemstat fields +*`mongodb.status.locks.database.wait.count.r`*:: ++ +-- +type: long -dommemstat +-- +*`mongodb.status.locks.database.wait.count.w`*:: ++ +-- +type: long +-- -[float] -== stat fields +*`mongodb.status.locks.database.wait.count.R`*:: ++ +-- +type: long -Memory stat +-- +*`mongodb.status.locks.database.wait.count.W`*:: ++ +-- +type: long +-- -*`kvm.dommemstat.stat.name`*:: +*`mongodb.status.locks.database.wait.us.r`*:: + -- -type: keyword +type: long -Memory stat name +-- +*`mongodb.status.locks.database.wait.us.w`*:: ++ +-- +type: long -- -*`kvm.dommemstat.stat.value`*:: +*`mongodb.status.locks.database.wait.us.R`*:: + -- type: long -Memory stat value +-- +*`mongodb.status.locks.database.wait.us.W`*:: ++ +-- +type: long -- -*`kvm.dommemstat.id`*:: +*`mongodb.status.locks.database.deadlock.count.r`*:: + -- type: long -Domain id +-- +*`mongodb.status.locks.database.deadlock.count.w`*:: ++ +-- +type: long -- -*`kvm.dommemstat.name`*:: +*`mongodb.status.locks.database.deadlock.count.R`*:: + -- -type: keyword +type: long -Domain name +-- +*`mongodb.status.locks.database.deadlock.count.W`*:: ++ +-- +type: long -- -[[exported-fields-logstash]] -== Logstash fields -Logstash module +*`mongodb.status.locks.collection.acquire.count.r`*:: ++ +-- +type: long +-- +*`mongodb.status.locks.collection.acquire.count.w`*:: ++ +-- +type: long -[float] -== logstash fields +-- +*`mongodb.status.locks.collection.acquire.count.R`*:: ++ +-- +type: long +-- +*`mongodb.status.locks.collection.acquire.count.W`*:: ++ +-- +type: long -[float] -== node fields +-- -node +*`mongodb.status.locks.collection.wait.count.r`*:: ++ +-- +type: long + +-- +*`mongodb.status.locks.collection.wait.count.w`*:: ++ +-- +type: long +-- -*`logstash.node.host`*:: +*`mongodb.status.locks.collection.wait.count.R`*:: + -- -type: keyword +type: long -Host name +-- +*`mongodb.status.locks.collection.wait.count.W`*:: ++ +-- +type: long -- -*`logstash.node.version`*:: +*`mongodb.status.locks.collection.wait.us.r`*:: + -- -type: keyword +type: long -Logstash Version +-- +*`mongodb.status.locks.collection.wait.us.w`*:: ++ +-- +type: long -- -[float] -== jvm fields +*`mongodb.status.locks.collection.wait.us.R`*:: ++ +-- +type: long -JVM Info +-- +*`mongodb.status.locks.collection.wait.us.W`*:: ++ +-- +type: long +-- -*`logstash.node.jvm.version`*:: +*`mongodb.status.locks.collection.deadlock.count.r`*:: + -- -type: keyword +type: long -Version +-- +*`mongodb.status.locks.collection.deadlock.count.w`*:: ++ +-- +type: long -- -*`logstash.node.jvm.pid`*:: +*`mongodb.status.locks.collection.deadlock.count.R`*:: + -- type: long -Pid - +-- +*`mongodb.status.locks.collection.deadlock.count.W`*:: ++ -- +type: long -[float] -== node.stats fields +-- -node_stats metrics. +*`mongodb.status.locks.meta_data.acquire.count.r`*:: ++ +-- +type: long +-- -[float] -== events fields +*`mongodb.status.locks.meta_data.acquire.count.w`*:: ++ +-- +type: long -Events stats +-- +*`mongodb.status.locks.meta_data.acquire.count.R`*:: ++ +-- +type: long +-- -*`logstash.node.stats.events.in`*:: +*`mongodb.status.locks.meta_data.acquire.count.W`*:: + -- type: long -Incoming events counter. +-- +*`mongodb.status.locks.meta_data.wait.count.r`*:: ++ +-- +type: long -- -*`logstash.node.stats.events.out`*:: +*`mongodb.status.locks.meta_data.wait.count.w`*:: + -- type: long -Outgoing events counter. +-- +*`mongodb.status.locks.meta_data.wait.count.R`*:: ++ +-- +type: long -- -*`logstash.node.stats.events.filtered`*:: +*`mongodb.status.locks.meta_data.wait.count.W`*:: + -- type: long -Filtered events counter. +-- +*`mongodb.status.locks.meta_data.wait.us.r`*:: ++ +-- +type: long -- -[[exported-fields-memcached]] -== Memcached fields +*`mongodb.status.locks.meta_data.wait.us.w`*:: ++ +-- +type: long -Memcached module +-- +*`mongodb.status.locks.meta_data.wait.us.R`*:: ++ +-- +type: long +-- -[float] -== memcached fields +*`mongodb.status.locks.meta_data.wait.us.W`*:: ++ +-- +type: long +-- +*`mongodb.status.locks.meta_data.deadlock.count.r`*:: ++ +-- +type: long +-- -[float] -== stats fields +*`mongodb.status.locks.meta_data.deadlock.count.w`*:: ++ +-- +type: long -stats +-- +*`mongodb.status.locks.meta_data.deadlock.count.R`*:: ++ +-- +type: long +-- -*`memcached.stats.pid`*:: +*`mongodb.status.locks.meta_data.deadlock.count.W`*:: + -- type: long -Current process ID of the Memcached task. +-- +*`mongodb.status.locks.oplog.acquire.count.r`*:: ++ -- +type: long -*`memcached.stats.uptime.sec`*:: +-- + +*`mongodb.status.locks.oplog.acquire.count.w`*:: + -- type: long -Memcached server uptime. +-- +*`mongodb.status.locks.oplog.acquire.count.R`*:: ++ +-- +type: long -- -*`memcached.stats.threads`*:: +*`mongodb.status.locks.oplog.acquire.count.W`*:: + -- type: long -Number of threads used by the current Memcached server process. +-- +*`mongodb.status.locks.oplog.wait.count.r`*:: ++ +-- +type: long -- -*`memcached.stats.connections.current`*:: +*`mongodb.status.locks.oplog.wait.count.w`*:: + -- type: long -Number of open connections to this Memcached server, should be the same value on all servers during normal operation. +-- +*`mongodb.status.locks.oplog.wait.count.R`*:: ++ +-- +type: long -- -*`memcached.stats.connections.total`*:: +*`mongodb.status.locks.oplog.wait.count.W`*:: + -- type: long -Numer of successful connect attempts to this server since it has been started. +-- +*`mongodb.status.locks.oplog.wait.us.r`*:: ++ +-- +type: long -- -*`memcached.stats.get.hits`*:: +*`mongodb.status.locks.oplog.wait.us.w`*:: + -- type: long -Number of successful "get" commands (cache hits) since startup, divide them by the "cmd_get" value to get the cache hitrate. +-- +*`mongodb.status.locks.oplog.wait.us.R`*:: ++ +-- +type: long -- -*`memcached.stats.get.misses`*:: +*`mongodb.status.locks.oplog.wait.us.W`*:: + -- type: long -Number of failed "get" requests because nothing was cached for this key or the cached value was too old. +-- +*`mongodb.status.locks.oplog.deadlock.count.r`*:: ++ +-- +type: long -- -*`memcached.stats.cmd.get`*:: +*`mongodb.status.locks.oplog.deadlock.count.w`*:: + -- type: long -Number of "get" commands received since server startup not counting if they were successful or not. +-- +*`mongodb.status.locks.oplog.deadlock.count.R`*:: ++ +-- +type: long -- -*`memcached.stats.cmd.set`*:: +*`mongodb.status.locks.oplog.deadlock.count.W`*:: + -- type: long -Number of "set" commands serviced since startup. +-- +[float] +== network fields --- +Platform specific data. -*`memcached.stats.read.bytes`*:: + + +*`mongodb.status.network.in.bytes`*:: + -- type: long -Total number of bytes received from the network by this server. +format: bytes + +The amount of network traffic, in bytes, received by this database. -- -*`memcached.stats.written.bytes`*:: +*`mongodb.status.network.out.bytes`*:: + -- type: long -Total number of bytes send to the network by this server. +format: bytes + +The amount of network traffic, in bytes, sent from this database. -- -*`memcached.stats.items.current`*:: +*`mongodb.status.network.requests`*:: + -- type: long -Number of items currently in this server's cache. +The total number of requests received by the server. -- -*`memcached.stats.items.total`*:: +[float] +== ops.latencies fields + +Operation latencies for the database as a whole. Only mongod instances report this metric. + + + +*`mongodb.status.ops.latencies.reads.latency`*:: + -- type: long -Number of items stored ever stored on this server. This is no "maximum item count" value but a counted increased by every new item stored in the cache. +Total combined latency in microseconds. -- -*`memcached.stats.evictions`*:: +*`mongodb.status.ops.latencies.reads.count`*:: + -- type: long -Number of objects removed from the cache to free up memory for new items because Memcached reached it's maximum memory setting (limit_maxbytes). +Total number of read operations performed on the collection since startup. -- -[[exported-fields-mongodb]] -== MongoDB fields +*`mongodb.status.ops.latencies.writes.latency`*:: ++ +-- +type: long -Metrics collected from MongoDB servers. +Total combined latency in microseconds. +-- -[float] -== mongodb fields +*`mongodb.status.ops.latencies.writes.count`*:: ++ +-- +type: long -MongoDB metrics. +Total number of write operations performed on the collection since startup. +-- -[float] -== collstats fields +*`mongodb.status.ops.latencies.commands.latency`*:: ++ +-- +type: long -MongoDB collection statistics metrics. +Total combined latency in microseconds. +-- -*`mongodb.collstats.db`*:: +*`mongodb.status.ops.latencies.commands.count`*:: + -- -type: keyword +type: long -Database name. +Total number of commands performed on the collection since startup. -- -*`mongodb.collstats.collection`*:: -+ --- -type: keyword +[float] +== ops.counters fields -Collection name. +An overview of database operations by type. --- -*`mongodb.collstats.name`*:: +*`mongodb.status.ops.counters.insert`*:: + -- -type: keyword +type: long -Combination of database and collection name. +The total number of insert operations received since the mongod instance last started. -- -*`mongodb.collstats.total.time.us`*:: +*`mongodb.status.ops.counters.query`*:: + -- type: long -Total waiting time for locks in microseconds. +The total number of queries received since the mongod instance last started. -- -*`mongodb.collstats.total.count`*:: +*`mongodb.status.ops.counters.update`*:: + -- type: long -Total number of lock wait events. +The total number of update operations received since the mongod instance last started. -- - -*`mongodb.collstats.lock.read.time.us`*:: +*`mongodb.status.ops.counters.delete`*:: + -- type: long -Time waiting for read locks in microseconds. +The total number of delete operations received since the mongod instance last started. -- -*`mongodb.collstats.lock.read.count`*:: +*`mongodb.status.ops.counters.getmore`*:: + -- type: long -Number of read lock wait events. +The total number of getmore operations received since the mongod instance last started. -- -*`mongodb.collstats.lock.write.time.us`*:: +*`mongodb.status.ops.counters.command`*:: + -- type: long -Time waiting for write locks in microseconds. +The total number of commands issued to the database since the mongod instance last started. -- -*`mongodb.collstats.lock.write.count`*:: +[float] +== ops.replicated fields + +An overview of database replication operations by type. + + + +*`mongodb.status.ops.replicated.insert`*:: + -- type: long -Number of write lock wait events. +The total number of replicated insert operations received since the mongod instance last started. -- -*`mongodb.collstats.queries.time.us`*:: +*`mongodb.status.ops.replicated.query`*:: + -- type: long -Time running queries in microseconds. +The total number of replicated queries received since the mongod instance last started. -- -*`mongodb.collstats.queries.count`*:: +*`mongodb.status.ops.replicated.update`*:: + -- type: long -Number of queries executed. +The total number of replicated update operations received since the mongod instance last started. -- -*`mongodb.collstats.getmore.time.us`*:: +*`mongodb.status.ops.replicated.delete`*:: + -- type: long -Time asking for more cursor rows in microseconds. +The total number of replicated delete operations received since the mongod instance last started. -- -*`mongodb.collstats.getmore.count`*:: +*`mongodb.status.ops.replicated.getmore`*:: + -- type: long -Number of times a cursor asked for more data. +The total number of replicated getmore operations received since the mongod instance last started. -- -*`mongodb.collstats.insert.time.us`*:: +*`mongodb.status.ops.replicated.command`*:: + -- type: long -Time inserting new documents in microseconds. +The total number of replicated commands issued to the database since the mongod instance last started. -- -*`mongodb.collstats.insert.count`*:: +[float] +== memory fields + +Data about the current memory usage of the mongod server. + + + +*`mongodb.status.memory.bits`*:: + -- type: long -Number of document insert events. +Either 64 or 32, depending on which target architecture was specified during the mongod compilation process. -- -*`mongodb.collstats.update.time.us`*:: +*`mongodb.status.memory.resident.mb`*:: + -- type: long -Time updating documents in microseconds. +The amount of RAM, in megabytes (MB), currently used by the database process. -- -*`mongodb.collstats.update.count`*:: +*`mongodb.status.memory.virtual.mb`*:: + -- type: long -Number of document update events. +The amount, in megabytes (MB), of virtual memory used by the mongod process. -- -*`mongodb.collstats.remove.time.us`*:: +*`mongodb.status.memory.mapped.mb`*:: + -- type: long -Time deleting documents in microseconds. +The amount of mapped memory, in megabytes (MB), used by the database. Because MongoDB uses memory-mapped files, this value is likely to be to be roughly equivalent to the total size of your database or databases. -- -*`mongodb.collstats.remove.count`*:: +*`mongodb.status.memory.mapped_with_journal.mb`*:: + -- type: long -Number of document delete events. +The amount of mapped memory, in megabytes (MB), including the memory used for journaling. -- -*`mongodb.collstats.commands.time.us`*:: +*`mongodb.status.write_backs_queued`*:: + -- -type: long +type: boolean -Time executing database commands in microseconds. +True when there are operations from a mongos instance queued for retrying. -- -*`mongodb.collstats.commands.count`*:: +*`mongodb.status.storage_engine.name`*:: + -- -type: long +type: keyword -Number of database commands executed. +A string that represents the name of the current storage engine. -- [float] -== dbstats fields - -dbstats provides an overview of a particular mongo database. This document is most concerned with data volumes of a database. +== wired_tiger fields +Statistics about the WiredTiger storage engine. -*`mongodb.dbstats.avg_obj_size.bytes`*:: -+ --- -type: long -format: bytes +[float] +== concurrent_transactions fields --- +Statistics about the transactions currently in progress. -*`mongodb.dbstats.collections`*:: -+ --- -type: integer --- -*`mongodb.dbstats.data_size.bytes`*:: +*`mongodb.status.wired_tiger.concurrent_transactions.write.out`*:: + -- type: long -format: bytes +Number of concurrent write transaction in progress. + -- -*`mongodb.dbstats.db`*:: +*`mongodb.status.wired_tiger.concurrent_transactions.write.available`*:: + -- -type: keyword +type: long + +Number of concurrent write tickets available. + -- -*`mongodb.dbstats.file_size.bytes`*:: +*`mongodb.status.wired_tiger.concurrent_transactions.write.total_tickets`*:: + -- type: long -format: bytes +Number of total write tickets. + -- -*`mongodb.dbstats.index_size.bytes`*:: +*`mongodb.status.wired_tiger.concurrent_transactions.read.out`*:: + -- type: long -format: bytes +Number of concurrent read transaction in progress. + -- -*`mongodb.dbstats.indexes`*:: +*`mongodb.status.wired_tiger.concurrent_transactions.read.available`*:: + -- type: long +Number of concurrent read tickets available. + + -- -*`mongodb.dbstats.num_extents`*:: +*`mongodb.status.wired_tiger.concurrent_transactions.read.total_tickets`*:: + -- type: long +Number of total read tickets. + + -- -*`mongodb.dbstats.objects`*:: +[float] +== cache fields + +Statistics about the cache and page evictions from the cache. + + + +*`mongodb.status.wired_tiger.cache.maximum.bytes`*:: + -- type: long +format: bytes + +Maximum cache size. + + -- -*`mongodb.dbstats.storage_size.bytes`*:: +*`mongodb.status.wired_tiger.cache.used.bytes`*:: + -- type: long format: bytes +Size in byte of the data currently in cache. + + -- -*`mongodb.dbstats.ns_size_mb.mb`*:: +*`mongodb.status.wired_tiger.cache.dirty.bytes`*:: + -- type: long --- +format: bytes +Size in bytes of the dirty data in the cache. -*`mongodb.dbstats.data_file_version.major`*:: -+ --- -type: long -- -*`mongodb.dbstats.data_file_version.minor`*:: +*`mongodb.status.wired_tiger.cache.pages.read`*:: + -- type: long --- +Number of pages read into the cache. -*`mongodb.dbstats.extent_free_list.num`*:: +-- + +*`mongodb.status.wired_tiger.cache.pages.write`*:: + -- type: long +Number of pages written from the cache. + + -- -*`mongodb.dbstats.extent_free_list.size.bytes`*:: +*`mongodb.status.wired_tiger.cache.pages.evicted`*:: + -- type: long -format: bytes +Number of pages evicted from the cache. + -- [float] -== status fields +== log fields -MongoDB server status metrics. +Statistics about the write ahead log used by WiredTiger. -*`mongodb.status.version`*:: +*`mongodb.status.wired_tiger.log.size.bytes`*:: + -- -type: keyword +type: long -Instance version. +format: bytes + +Total log size in bytes. -- -*`mongodb.status.uptime.ms`*:: +*`mongodb.status.wired_tiger.log.write.bytes`*:: + -- type: long -Instance uptime in milliseconds. - - --- - -*`mongodb.status.local_time`*:: -+ --- -type: date +format: bytes -Local time as reported by the MongoDB instance. +Number of bytes written into the log. -- -*`mongodb.status.asserts.regular`*:: +*`mongodb.status.wired_tiger.log.max_file_size.bytes`*:: + -- type: long -Number of regular assertions produced by the server. +format: bytes + +Maximum file size. -- -*`mongodb.status.asserts.warning`*:: +*`mongodb.status.wired_tiger.log.flushes`*:: + -- type: long -Number of warning assertions produced by the server. +Number of flush operations. -- -*`mongodb.status.asserts.msg`*:: +*`mongodb.status.wired_tiger.log.writes`*:: + -- type: long -Number of msg assertions produced by the server. +Number of write operations. -- -*`mongodb.status.asserts.user`*:: +*`mongodb.status.wired_tiger.log.scans`*:: + -- type: long -Number of user assertions produced by the server. +Number of scan operations. -- -*`mongodb.status.asserts.rollovers`*:: +*`mongodb.status.wired_tiger.log.syncs`*:: + -- type: long -Number of rollovers assertions produced by the server. +Number of sync operations. -- @@ -9415,43 +11475,6 @@ type: date A timestamp of the last completed flush operation. --- - -[float] -== connections fields - -Data regarding the current status of incoming connections and availability of the database server. - - - -*`mongodb.status.connections.current`*:: -+ --- -type: long - -The number of connections to the database server from clients. This number includes the current shell session. Consider the value of `available` to add more context to this datum. - - --- - -*`mongodb.status.connections.available`*:: -+ --- -type: long - -The number of unused available incoming connections the database can provide. - - --- - -*`mongodb.status.connections.total_created`*:: -+ --- -type: long - -A count of all incoming connections created to the server. This number includes connections that have since closed. - - -- [float] @@ -9598,545 +11621,527 @@ The amount of time spent for commits that occurred while a write lock was held. -- +[[exported-fields-munin]] +== Munin fields + +Munin node metrics exporter + + + [float] -== extra_info fields +== munin fields -Platform specific data. +munin contains metrics exposed by a munin node agent -*`mongodb.status.extra_info.heap_usage.bytes`*:: -+ --- -type: long +[[exported-fields-mysql]] +== MySQL fields -format: bytes +MySQL server status metrics collected from MySQL. -The total size in bytes of heap space used by the database process. Only available on Unix/Linux. --- +[float] +== mysql fields + +`mysql` contains the metrics that were obtained from MySQL query. + + -*`mongodb.status.extra_info.page_faults`*:: -+ --- -type: long +[float] +== galera_status fields -The total number of page faults that require disk operations. Page faults refer to operations that require the database server to access data that isn't available in active memory. +`galera_status` contains the metrics that were obtained by the status SQL query on Galera. --- [float] -== network fields +== apply fields -Platform specific data. +Apply status fields. -*`mongodb.status.network.in.bytes`*:: +*`mysql.galera_status.apply.oooe`*:: + -- -type: long - -format: bytes +type: double -The amount of network traffic, in bytes, received by this database. +How often applier started write-set applying out-of-order (parallelization efficiency). -- -*`mongodb.status.network.out.bytes`*:: +*`mysql.galera_status.apply.oool`*:: + -- -type: long +type: double -format: bytes - -The amount of network traffic, in bytes, sent from this database. +How often write-set was so slow to apply that write-set with higher seqno's were applied earlier. Values closer to 0 refer to a greater gap between slow and fast write-sets. -- -*`mongodb.status.network.requests`*:: +*`mysql.galera_status.apply.window`*:: + -- -type: long +type: double -The total number of requests received by the server. +Average distance between highest and lowest concurrently applied seqno. -- [float] -== opcounters fields +== cert fields -An overview of database operations by type. +Certification status fields. -*`mongodb.status.opcounters.insert`*:: +*`mysql.galera_status.cert.deps_distance`*:: + -- -type: long +type: double -The total number of insert operations received since the mongod instance last started. +Average distance between highest and lowest seqno value that can be possibly applied in parallel (potential degree of parallelization). -- -*`mongodb.status.opcounters.query`*:: +*`mysql.galera_status.cert.index_size`*:: + -- type: long -The total number of queries received since the mongod instance last started. +The number of entries in the certification index. -- -*`mongodb.status.opcounters.update`*:: +*`mysql.galera_status.cert.interval`*:: + -- -type: long +type: double -The total number of update operations received since the mongod instance last started. +Average number of transactions received while a transaction replicates. -- -*`mongodb.status.opcounters.delete`*:: +[float] +== cluster fields + +Cluster status fields. + + + +*`mysql.galera_status.cluster.conf_id`*:: + -- type: long -The total number of delete operations received since the mongod instance last started. +Total number of cluster membership changes happened. -- -*`mongodb.status.opcounters.getmore`*:: +*`mysql.galera_status.cluster.size`*:: + -- type: long -The total number of getmore operations received since the mongod instance last started. +Current number of members in the cluster. -- -*`mongodb.status.opcounters.command`*:: +*`mysql.galera_status.cluster.status`*:: + -- -type: long +type: keyword -The total number of commands issued to the database since the mongod instance last started. +Status of this cluster component. That is, whether the node is part of a PRIMARY or NON_PRIMARY component. -- [float] -== opcounters_replicated fields +== commit fields -An overview of database replication operations by type. +Commit status fields. -*`mongodb.status.opcounters_replicated.insert`*:: +*`mysql.galera_status.commit.oooe`*:: + -- -type: long +type: double -The total number of replicated insert operations received since the mongod instance last started. +How often a transaction was committed out of order. -- -*`mongodb.status.opcounters_replicated.query`*:: +*`mysql.galera_status.commit.window`*:: + -- type: long -The total number of replicated queries received since the mongod instance last started. +Average distance between highest and lowest concurrently committed seqno. -- -*`mongodb.status.opcounters_replicated.update`*:: +*`mysql.galera_status.connected`*:: + -- -type: long +type: keyword -The total number of replicated update operations received since the mongod instance last started. +If the value is OFF, the node has not yet connected to any of the cluster components. This may be due to misconfiguration. Check the error log for proper diagnostics. -- -*`mongodb.status.opcounters_replicated.delete`*:: -+ --- -type: long +[float] +== evs fields -The total number of replicated delete operations received since the mongod instance last started. +Evs Fields. --- -*`mongodb.status.opcounters_replicated.getmore`*:: +*`mysql.galera_status.evs.evict`*:: + -- -type: long +type: keyword -The total number of replicated getmore operations received since the mongod instance last started. +Lists the UUID's of all nodes evicted from the cluster. Evicted nodes cannot rejoin the cluster until you restart their mysqld processes. -- -*`mongodb.status.opcounters_replicated.command`*:: +*`mysql.galera_status.evs.state`*:: + -- -type: long +type: keyword -The total number of replicated commands issued to the database since the mongod instance last started. +Shows the internal state of the EVS Protocol. -- [float] -== memory fields +== flow_ctl fields -Data about the current memory usage of the mongod server. +Flow Control fields. -*`mongodb.status.memory.bits`*:: +*`mysql.galera_status.flow_ctl.paused`*:: + -- -type: long +type: double -Either 64 or 32, depending on which target architecture was specified during the mongod compilation process. +The fraction of time since the last FLUSH STATUS command that replication was paused due to flow control. In other words, how much the slave lag is slowing down the cluster. -- -*`mongodb.status.memory.resident.mb`*:: +*`mysql.galera_status.flow_ctl.paused_ns`*:: + -- type: long -The amount of RAM, in megabytes (MB), currently used by the database process. +The total time spent in a paused state measured in nanoseconds. -- -*`mongodb.status.memory.virtual.mb`*:: +*`mysql.galera_status.flow_ctl.recv`*:: + -- type: long -The amount, in megabytes (MB), of virtual memory used by the mongod process. +Returns the number of FC_PAUSE events the node has received, including those the node has sent. Unlike most status variables, the counter for this one does not reset every time you run the query. -- -*`mongodb.status.memory.mapped.mb`*:: +*`mysql.galera_status.flow_ctl.sent`*:: + -- type: long -The amount of mapped memory, in megabytes (MB), used by the database. Because MongoDB uses memory-mapped files, this value is likely to be to be roughly equivalent to the total size of your database or databases. +Returns the number of FC_PAUSE events the node has sent. Unlike most status variables, the counter for this one does not reset every time you run the query. -- -*`mongodb.status.memory.mapped_with_journal.mb`*:: +*`mysql.galera_status.last_committed`*:: + -- type: long -The amount of mapped memory, in megabytes (MB), including the memory used for journaling. +The sequence number, or seqno, of the last committed transaction. -- -*`mongodb.status.write_backs_queued`*:: -+ --- -type: boolean +[float] +== local fields -True when there are operations from a mongos instance queued for retrying. +Node specific Cluster status fields. --- -*`mongodb.status.storage_engine.name`*:: +*`mysql.galera_status.local.bf_aborts`*:: + -- -type: keyword +type: long -A string that represents the name of the current storage engine. +Total number of local transactions that were aborted by slave transactions while in execution. -- -[float] -== wired_tiger fields - -Statistics about the WiredTiger storage engine. - - - -[float] -== concurrent_transactions fields +*`mysql.galera_status.local.cert_failures`*:: ++ +-- +type: long -Statistics about the transactions currently in progress. +Total number of local transactions that failed certification test. +-- -*`mongodb.status.wired_tiger.concurrent_transactions.write.out`*:: +*`mysql.galera_status.local.commits`*:: + -- type: long -Number of concurrent write transaction in progress. +Total number of local transactions committed. -- -*`mongodb.status.wired_tiger.concurrent_transactions.write.available`*:: +[float] +== recv fields + +Node specific recv fields. + + + +*`mysql.galera_status.local.recv.queue`*:: + -- type: long -Number of concurrent write tickets available. +Current (instantaneous) length of the recv queue. -- -*`mongodb.status.wired_tiger.concurrent_transactions.write.total_tickets`*:: +*`mysql.galera_status.local.recv.queue_avg`*:: + -- -type: long +type: double -Number of total write tickets. +Recv queue length averaged over interval since the last FLUSH STATUS command. Values considerably larger than 0.0 mean that the node cannot apply write-sets as fast as they are received and will generate a lot of replication throttling. -- -*`mongodb.status.wired_tiger.concurrent_transactions.read.out`*:: +*`mysql.galera_status.local.recv.queue_max`*:: + -- type: long -Number of concurrent read transaction in progress. +The maximum length of the recv queue since the last FLUSH STATUS command. -- -*`mongodb.status.wired_tiger.concurrent_transactions.read.available`*:: +*`mysql.galera_status.local.recv.queue_min`*:: + -- type: long -Number of concurrent read tickets available. +The minimum length of the recv queue since the last FLUSH STATUS command. -- -*`mongodb.status.wired_tiger.concurrent_transactions.read.total_tickets`*:: +*`mysql.galera_status.local.replays`*:: + -- type: long -Number of total read tickets. +Total number of transaction replays due to asymmetric lock granularity. -- [float] -== cache fields +== send fields -Statistics about the cache and page evictions from the cache. +Node specific sent fields. -*`mongodb.status.wired_tiger.cache.maximum.bytes`*:: +*`mysql.galera_status.local.send.queue`*:: + -- type: long -format: bytes - -Maximum cache size. +Current (instantaneous) length of the send queue. -- -*`mongodb.status.wired_tiger.cache.used.bytes`*:: +*`mysql.galera_status.local.send.queue_avg`*:: + -- -type: long - -format: bytes +type: double -Size in byte of the data currently in cache. +Send queue length averaged over time since the last FLUSH STATUS command. Values considerably larger than 0.0 indicate replication throttling or network throughput issue. -- -*`mongodb.status.wired_tiger.cache.dirty.bytes`*:: +*`mysql.galera_status.local.send.queue_max`*:: + -- type: long -format: bytes - -Size in bytes of the dirty data in the cache. +The maximum length of the send queue since the last FLUSH STATUS command. -- -*`mongodb.status.wired_tiger.cache.pages.read`*:: +*`mysql.galera_status.local.send.queue_min`*:: + -- type: long -Number of pages read into the cache. +The minimum length of the send queue since the last FLUSH STATUS command. -- -*`mongodb.status.wired_tiger.cache.pages.write`*:: +*`mysql.galera_status.local.state`*:: + -- -type: long +type: keyword -Number of pages written from the cache. +Internal Galera Cluster FSM state number. -- -*`mongodb.status.wired_tiger.cache.pages.evicted`*:: +*`mysql.galera_status.ready`*:: + -- -type: long +type: keyword -Number of pages evicted from the cache. +Whether the server is ready to accept queries. -- [float] -== log fields +== received fields -Statistics about the write ahead log used by WiredTiger. +Write-Set receive status fields. -*`mongodb.status.wired_tiger.log.size.bytes`*:: +*`mysql.galera_status.received.count`*:: + -- type: long -format: bytes - -Total log size in bytes. +Total number of write-sets received from other nodes. -- -*`mongodb.status.wired_tiger.log.write.bytes`*:: +*`mysql.galera_status.received.bytes`*:: + -- type: long -format: bytes - -Number of bytes written into the log. - +Total size of write-sets received from other nodes. --- -*`mongodb.status.wired_tiger.log.max_file_size.bytes`*:: -+ -- -type: long -format: bytes +[float] +== repl fields -Maximum file size. +Replication status fields. --- -*`mongodb.status.wired_tiger.log.flushes`*:: +*`mysql.galera_status.repl.data_bytes`*:: + -- type: long -Number of flush operations. +Total size of data replicated. -- -*`mongodb.status.wired_tiger.log.writes`*:: +*`mysql.galera_status.repl.keys`*:: + -- type: long -Number of write operations. +Total number of keys replicated. -- -*`mongodb.status.wired_tiger.log.scans`*:: +*`mysql.galera_status.repl.keys_bytes`*:: + -- type: long -Number of scan operations. +Total size of keys replicated. -- -*`mongodb.status.wired_tiger.log.syncs`*:: +*`mysql.galera_status.repl.other_bytes`*:: + -- type: long -Number of sync operations. +Total size of other bits replicated. -- -[[exported-fields-munin]] -== Munin fields - -experimental[] -Munin node metrics exporter - - - -[float] -== munin fields - -munin contains metrics exposed by a munin node agent - - - -[[exported-fields-mysql]] -== MySQL fields +*`mysql.galera_status.repl.count`*:: ++ +-- +type: long -MySQL server status metrics collected from MySQL. +Total number of write-sets replicated (sent to other nodes). +-- -[float] -== mysql fields +*`mysql.galera_status.repl.bytes`*:: ++ +-- +type: long -`mysql` contains the metrics that were obtained from MySQL query. +Total size of write-sets replicated. +-- [float] == status fields @@ -13041,7 +15046,7 @@ Total number of connections rejected. -- type: long -Total number of commands preocessed. +Total number of commands processed. -- @@ -13562,7 +15567,7 @@ type: scaled_float format: percent -The percentage of CPU time spent in non-idle state. +The percentage of CPU time spent in states other than Idle and IOWait. -- @@ -13670,17 +15675,7 @@ type: scaled_float format: percent -The percentage of CPU time spent in non-idle state. - - --- - -*`system.cpu.total.value`*:: -+ --- -type: long - -The value of CPU usage since starting the process. +The percentage of CPU time in states other than Idle and IOWait, normalised by the number of cores. -- @@ -15822,6 +17817,74 @@ format: duration The OS uptime in milliseconds. +-- + +[[exported-fields-traefik]] +== traefik fields + +Traefik reverse proxy / load balancer metrics + + + +[float] +== traefik fields + +Traefik reverse proxy / load balancer metrics + + + +[float] +== health fields + +Metrics obtained from Traefik's health API endpoint + + + +*`traefik.health.uptime.sec`*:: ++ +-- +type: long + +Uptime of Traefik instance in seconds + + +-- + +[float] +== response fields + +Response metrics + + + +*`traefik.health.response.count`*:: ++ +-- +type: long + +Number of responses + + +-- + +*`traefik.health.response.avg_time.us`*:: ++ +-- +type: long + +Average response time in microseconds + + +-- + +*`traefik.health.response.status_code`*:: ++ +-- +type: object + +Number of responses per status code + + -- [[exported-fields-uwsgi]] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/gettingstarted.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/gettingstarted.asciidoc index f70b33c3..4861f0ed 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/gettingstarted.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/gettingstarted.asciidoc @@ -4,16 +4,7 @@ {beatname_uc} helps you monitor your servers and the services they host by collecting metrics from the operating system and services. -To get started with your own {beatname_uc} setup, install and configure these -related products: - - * Elasticsearch for storage and indexing the data. - * Kibana for the UI. - * Logstash (optional) for inserting data into Elasticsearch. - -See {libbeat}/getting-started.html[Getting Started with Beats and the Elastic Stack] for more information. - -After installing the Elastic Stack, read the following topics to learn how to install, configure, and run {beatname_uc}: +include::../../libbeat/docs/shared-getting-started-intro.asciidoc[] * <<{beatname_lc}-installation>> * <<{beatname_lc}-configuration>> @@ -210,18 +201,7 @@ settings. See <> if you want to add the module configs to the +{beatname_lc}.yml+ file rather than using the `modules.d` directory. -. If you are sending output directly to Elasticsearch (and not using Logstash), -set the IP address and port where {beatname_uc} can find the Elasticsearch -installation. For example: -+ -[source,yaml] ----------------------------------------------------------------------- -output.elasticsearch: - hosts: ["192.168.1.42:9200"] ----------------------------------------------------------------------- -+ -If you are sending output to Logstash, make sure you -<> instead. +include::../../libbeat/docs/step-configure-output.asciidoc[] include::../../libbeat/docs/step-configure-kibana-endpoint.asciidoc[] @@ -282,7 +262,7 @@ sudo ./{beatname_lc} -e -c {beatname_lc}.yml -d "publish" ---------------------------------------------------------------------- <1> You'll be running {beatname_uc} as root, so you need to change ownership of the configuration file and any configurations enabled in the `modules.d` directory, -or run {beatname_uc} with `-strict.perms=false` specified. See +or run {beatname_uc} with `--strict.perms=false` specified. See {libbeat}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/index.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/index.asciidoc index 634395ac..6168cb2f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/index.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/index.asciidoc @@ -17,8 +17,6 @@ include::../../libbeat/docs/shared-beats-attributes.asciidoc[] include::./overview.asciidoc[] -include::../../libbeat/docs/contributing-to-beats.asciidoc[] - include::./gettingstarted.asciidoc[] include::../../libbeat/docs/repositories.asciidoc[] @@ -42,3 +40,5 @@ include::../../libbeat/docs/shared-securing-beat.asciidoc[] include::./troubleshooting.asciidoc[] include::./faq.asciidoc[] + +include::../../libbeat/docs/contributing-to-beats.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/metricbeat-options.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/metricbeat-options.asciidoc index 426dccaf..9eb64ebc 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/metricbeat-options.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/metricbeat-options.asciidoc @@ -216,3 +216,27 @@ The username to use for basic authentication. ==== `password` The password to use for basic authentication. + +[float] +==== `headers` + +A list of headers to use with the HTTP request. For example: + +[source,yaml] +---- +headers: + Cookie: abcdef=123456 + My-Custom-Header: my-custom-value +---- + +[float] +==== `bearer_token_file` + +If defined, Metricbeat will read the contents of the file once at initialization +and then use the value in an HTTP Authorization header. + +[float] +==== `basepath` + +An optional base path to be used in HTTP URIs. If defined, Metricbeat will insert this value +as the first segment in the HTTP URI path. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/aerospike.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/aerospike.asciidoc index 638ab236..b1115a86 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/aerospike.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/aerospike.asciidoc @@ -12,7 +12,7 @@ The Aerospike module uses the http://www.aerospike.com/docs/reference/info[Info [float] === Compatibility -The Aeropsike metricsets were tested with Aerospike 3.9 and are expected to work with all versions >= 3.9. +The Aerospike metricsets were tested with Aerospike 3.9 and are expected to work with all versions >= 3.9. [float] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/docker.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/docker.asciidoc index e050e5c8..5419685b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/docker.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/docker.asciidoc @@ -42,8 +42,8 @@ metricbeat.modules: period: 10s enabled: true - # Replace dots in labels with `_`. Set to false to keep dots - labels.dedot: true + # If set to true, replace dots in labels with `_`. + #labels.dedot: false # To connect to Docker over TLS you must specify a client and CA certificate. #ssl: diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch.asciidoc index 4fe4565c..270b3906 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch.asciidoc @@ -26,10 +26,15 @@ metricbeat.modules: - node - node_stats #- index + #- index_recovery #- index_summary #- shard + #- ml_job period: 10s hosts: ["localhost:9200"] + + # Set to false to fetch all entries + #index_recovery.active_only: true ---- This module supports TLS connection when using `ssl` config field, as described in <>. It also supports the options described in <>. @@ -39,10 +44,16 @@ This module supports TLS connection when using `ssl` config field, as described The following metricsets are available: +* <> + * <> +* <> + * <> +* <> + * <> * <> @@ -51,10 +62,16 @@ The following metricsets are available: * <> +include::elasticsearch/cluster_stats.asciidoc[] + include::elasticsearch/index.asciidoc[] +include::elasticsearch/index_recovery.asciidoc[] + include::elasticsearch/index_summary.asciidoc[] +include::elasticsearch/ml_job.asciidoc[] + include::elasticsearch/node.asciidoc[] include::elasticsearch/node_stats.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/cluster_stats.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/cluster_stats.asciidoc new file mode 100644 index 00000000..c66c9200 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/cluster_stats.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-elasticsearch-cluster_stats]] +=== Elasticsearch cluster_stats metricset + +beta[] + +include::../../../module/elasticsearch/cluster_stats/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/elasticsearch/cluster_stats/_meta/data.json[] +---- diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index.asciidoc index ac7068b7..a0507662 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index.asciidoc @@ -5,7 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-elasticsearch-index]] === Elasticsearch index metricset -experimental[] +beta[] include::../../../module/elasticsearch/index/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index_recovery.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index_recovery.asciidoc new file mode 100644 index 00000000..b93dae1a --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index_recovery.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-elasticsearch-index_recovery]] +=== Elasticsearch index_recovery metricset + +beta[] + +include::../../../module/elasticsearch/index_recovery/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/elasticsearch/index_recovery/_meta/data.json[] +---- diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index_summary.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index_summary.asciidoc index 3ec0e62e..41fe5686 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index_summary.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/index_summary.asciidoc @@ -5,7 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-elasticsearch-index_summary]] === Elasticsearch index_summary metricset -experimental[] +beta[] include::../../../module/elasticsearch/index_summary/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/ml_job.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/ml_job.asciidoc new file mode 100644 index 00000000..374c9dfc --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/ml_job.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-elasticsearch-ml_job]] +=== Elasticsearch ml_job metricset + +beta[] + +include::../../../module/elasticsearch/ml_job/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/elasticsearch/ml_job/_meta/data.json[] +---- diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/pending_tasks.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/pending_tasks.asciidoc index 4a6ed458..eef6ac66 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/pending_tasks.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/pending_tasks.asciidoc @@ -5,7 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-elasticsearch-pending_tasks]] === Elasticsearch pending_tasks metricset -experimental[] +beta[] include::../../../module/elasticsearch/pending_tasks/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/shard.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/shard.asciidoc index c4636107..9c13a654 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/shard.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/elasticsearch/shard.asciidoc @@ -5,7 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-elasticsearch-shard]] === Elasticsearch shard metricset -experimental[] +beta[] include::../../../module/elasticsearch/shard/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/envoyproxy.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/envoyproxy.asciidoc new file mode 100644 index 00000000..030b7115 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/envoyproxy.asciidoc @@ -0,0 +1,40 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-module-envoyproxy]] +== envoyproxy module + +experimental[] + +== envoyproxy module + +This is the envoyproxy module. + +The default metricset is `server`. + + +[float] +=== Example configuration + +The envoyproxy module supports the standard configuration options that are described +in <>. Here is an example configuration: + +[source,yaml] +---- +metricbeat.modules: +- module: envoyproxy + metricsets: ["server"] + period: 10s + hosts: ["localhost:9901"] +---- + +[float] +=== Metricsets + +The following metricsets are available: + +* <> + +include::envoyproxy/server.asciidoc[] + diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/envoyproxy/server.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/envoyproxy/server.asciidoc new file mode 100644 index 00000000..66b3bf50 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/envoyproxy/server.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-envoyproxy-server]] +=== envoyproxy server metricset + +experimental[] + +include::../../../module/envoyproxy/server/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/envoyproxy/server/_meta/data.json[] +---- diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/http.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/http.asciidoc index eccfe520..58eb7cb3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/http.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/http.asciidoc @@ -13,7 +13,7 @@ This module is inspired by the Logstash https://www.elastic.co/guide/en/logstash This is often necessary in security restricted network setups, where Logstash is not able to reach all servers. Instead the server to be monitored itself has Metricbeat installed and can send the data or a collector server has Metricbeat installed which is deployed in the secured network environment and can reach all servers to be monitored. -NOTE: As the HTTP mertricsets also fetch headers, this can lead to lots of fields in Elasticsearch in case there are many different headers. If this is the case for you and you don't need the headers, we recommend to use processors to filter out the header field. +NOTE: As the HTTP metricsets also fetch headers, this can lead to lots of fields in Elasticsearch in case there are many different headers. If this is the case for you and you don't need the headers, we recommend to use processors to filter out the header field. [float] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/jolokia.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/jolokia.asciidoc index 6674ed18..e2f6044a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/jolokia.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/jolokia.asciidoc @@ -5,7 +5,18 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-module-jolokia]] == Jolokia module -This is the Jolokia module. +This module collects metrics from +https://jolokia.org/reference/html/agents.html[Jolokia agents] running on a +target JMX server or dedicated proxy server. The default metricset is `jmx`. + +To collect metrics, {beatname_uc} communicates with a Jolokia HTTP/REST +endpoint that exposes the JMX metrics over HTTP/REST/JSON. + +[float] +=== Compatibility + +The Jolokia module is tested with Jolokia 1.5.0. It should work with version +1.2.2 and later. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kafka.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kafka.asciidoc index ad1a0de3..faacaaea 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kafka.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kafka.asciidoc @@ -11,6 +11,8 @@ This is the Kafka module. The default metricsets are `consumergroup` and `partition`. +This module is tested with Kafka 0.10.2 and 1.1.0. + [float] === Example configuration diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kibana.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kibana.asciidoc index 4fcc0620..0aa7ce4c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kibana.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kibana.asciidoc @@ -25,7 +25,8 @@ metricbeat.modules: metricsets: ["status"] period: 10s hosts: ["localhost:5601"] - enabled: default + basepath: "" + enabled: true ---- This module supports TLS connection when using `ssl` config field, as described in <>. It also supports the options described in <>. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kubernetes.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kubernetes.asciidoc index a3b8cc2f..d2398036 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kubernetes.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kubernetes.asciidoc @@ -35,10 +35,19 @@ metricbeat.modules: period: 10s hosts: ["localhost:10255"] enabled: true - #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] + #bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + #ssl.certificate_authorities: + # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt #ssl.certificate: "/etc/pki/client/cert.pem" #ssl.key: "/etc/pki/client/cert.key" + # Enriching parameters: + add_metadata: true + in_cluster: true + # When used outside the cluster: + #host: node_name + #kube_config: ~/.kube/config + # State metrics from kube-state-metrics service: - module: kubernetes enabled: true @@ -52,6 +61,13 @@ metricbeat.modules: period: 10s hosts: ["kube-state-metrics:8080"] + # Enriching parameters: + add_metadata: true + in_cluster: true + # When used outside the cluster: + #host: node_name + #kube_config: ~/.kube/config + # Kubernetes events - module: kubernetes enabled: true @@ -73,6 +89,8 @@ This module supports TLS connection when using `ssl` config field, as described The following metricsets are available: +* <> + * <> * <> @@ -97,6 +115,8 @@ The following metricsets are available: * <> +include::kubernetes/apiserver.asciidoc[] + include::kubernetes/container.asciidoc[] include::kubernetes/event.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kubernetes/apiserver.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kubernetes/apiserver.asciidoc new file mode 100644 index 00000000..f32fa961 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kubernetes/apiserver.asciidoc @@ -0,0 +1,17 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-kubernetes-apiserver]] +=== Kubernetes apiserver metricset + +beta[] + +include::../../../module/kubernetes/apiserver/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kvm.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kvm.asciidoc index 0aec7ec7..b5acf887 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/kvm.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/kvm.asciidoc @@ -7,8 +7,6 @@ This file is generated! See scripts/docs_collector.py experimental[] -== kvm module - This is the kvm module. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/mongodb.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/mongodb.asciidoc index 6ecd0517..0b9129ee 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/mongodb.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/mongodb.asciidoc @@ -77,6 +77,21 @@ metricbeat.modules: # password configuration options. hosts: ["localhost:27017"] + # Optional SSL. By default is off. + #ssl.enabled: true + + # Mode of verification of server certificate ('none' or 'full') + #ssl.verification_mode: 'full' + + # List of root certificates for TLS server verifications + #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] + + # Certificate for SSL client authentication + #ssl.certificate: "/etc/pki/client/cert.pem" + + # Client Certificate Key + #ssl.key: "/etc/pki/client/cert.key" + # Username to use when connecting to MongoDB. Empty by default. #username: user @@ -84,6 +99,8 @@ metricbeat.modules: #password: pass ---- +This module supports TLS connection when using `ssl` config field, as described in <>. It also supports the options described in <>. + [float] === Metricsets diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin.asciidoc index 517211e0..08fd4fb2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin.asciidoc @@ -5,9 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-module-munin]] == Munin module -experimental[] - -== munin module +beta[] This is the munin module. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin/node.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin/node.asciidoc index 9e40635b..a485a6a7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin/node.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/munin/node.asciidoc @@ -5,7 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-munin-node]] === Munin node metricset -experimental[] +beta[] include::../../../module/munin/node/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/mysql.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/mysql.asciidoc index 3330ab76..5a7f0e6d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/mysql.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/mysql.asciidoc @@ -56,7 +56,9 @@ in <>. Here is an example configuration: ---- metricbeat.modules: - module: mysql - metricsets: ["status"] + metricsets: + - "status" + # - "galera_status" period: 10s # Host DSN should be defined as "user:pass@tcp(127.0.0.1:3306)/" @@ -79,7 +81,11 @@ metricbeat.modules: The following metricsets are available: +* <> + * <> +include::mysql/galera_status.asciidoc[] + include::mysql/status.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/mysql/galera_status.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/mysql/galera_status.asciidoc new file mode 100644 index 00000000..f8dbde5e --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/mysql/galera_status.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-mysql-galera_status]] +=== MySQL galera_status metricset + +experimental[] + +include::../../../module/mysql/galera_status/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/mysql/galera_status/_meta/data.json[] +---- diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus.asciidoc index d25d1618..4d0d5f59 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus.asciidoc @@ -5,8 +5,6 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-module-prometheus]] == Prometheus module -beta[] - This module periodically fetches metrics from https://prometheus.io/docs/[Prometheus]. @@ -37,6 +35,11 @@ metricbeat.modules: hosts: ["localhost:9090"] #metrics_path: /metrics #namespace: example + + # This can be used for service account based authorization: + # bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + #ssl.certificate_authorities: + # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt ---- This module supports TLS connection when using `ssl` config field, as described in <>. It also supports the options described in <>. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus/collector.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus/collector.asciidoc index c97efda5..6ba85fbc 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus/collector.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/prometheus/collector.asciidoc @@ -5,8 +5,6 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-prometheus-collector]] === Prometheus collector metricset -beta[] - include::../../../module/prometheus/collector/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/raid.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/raid.asciidoc index f172194e..8a90a2fe 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/raid.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/raid.asciidoc @@ -5,8 +5,6 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-system-raid]] === System raid metricset -beta[] - include::../../../module/system/raid/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/socket.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/socket.asciidoc index 9f399ac2..117c0532 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/socket.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/system/socket.asciidoc @@ -5,8 +5,6 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-metricset-system-socket]] === System socket metricset -beta[] - include::../../../module/system/socket/_meta/docs.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/traefik.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/traefik.asciidoc new file mode 100644 index 00000000..1082690d --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/traefik.asciidoc @@ -0,0 +1,41 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-module-traefik]] +== traefik module + +beta[] + +This module periodically fetches metrics from a https://traefik.io/[Traefik] +instance. The Traefik instance must be configured to expose it's HTTP API. + +=== Compatibility + +The Traefik metricsets were tested with Traefik 1.6. + + +[float] +=== Example configuration + +The traefik module supports the standard configuration options that are described +in <>. Here is an example configuration: + +[source,yaml] +---- +metricbeat.modules: +- module: traefik + metricsets: ["health"] + period: 10s + hosts: ["localhost:8080"] +---- + +[float] +=== Metricsets + +The following metricsets are available: + +* <> + +include::traefik/health.asciidoc[] + diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/traefik/health.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/traefik/health.asciidoc new file mode 100644 index 00000000..c282d1fa --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/traefik/health.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-traefik-health]] +=== traefik health metricset + +experimental[] + +include::../../../module/traefik/health/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/traefik/health/_meta/data.json[] +---- diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules/uwsgi.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules/uwsgi.asciidoc index bb8df6c8..2f102716 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules/uwsgi.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules/uwsgi.asciidoc @@ -7,8 +7,6 @@ This file is generated! See scripts/docs_collector.py beta[] -== uwsgi module - This is the uwsgi module. By default collects the `stats` metricset, using http://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html[StatsServer]. diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/modules_list.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/modules_list.asciidoc index e215aa67..dcc11eed 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/modules_list.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/modules_list.asciidoc @@ -33,12 +33,17 @@ This file is generated! See scripts/docs_collector.py |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | .1+| .1+| |<> beta[] |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | -.6+| .6+| |<> experimental[] -|<> experimental[] +.9+| .9+| |<> beta[] +|<> beta[] +|<> beta[] +|<> beta[] +|<> beta[] |<> beta[] |<> beta[] -|<> experimental[] -|<> experimental[] +|<> beta[] +|<> beta[] +|<> experimental[] |image:./images/icon-no.png[No prebuilt dashboards] | +.1+| .1+| |<> experimental[] |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | .3+| .3+| |<> beta[] |<> beta[] @@ -63,7 +68,8 @@ This file is generated! See scripts/docs_collector.py .2+| .2+| |<> beta[] |<> beta[] |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | -.12+| .12+| |<> +.13+| .13+| |<> beta[] +|<> |<> beta[] |<> |<> @@ -86,10 +92,11 @@ This file is generated! See scripts/docs_collector.py .3+| .3+| |<> |<> |<> -|<> experimental[] |image:./images/icon-no.png[No prebuilt dashboards] | -.1+| .1+| |<> experimental[] +|<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | +.1+| .1+| |<> beta[] |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | -.1+| .1+| |<> +.2+| .2+| |<> experimental[] +|<> |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | @@ -99,8 +106,8 @@ This file is generated! See scripts/docs_collector.py |<> |<> |<> beta[] -|<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | -.2+| .2+| |<> beta[] +|<> |image:./images/icon-no.png[No prebuilt dashboards] | +.2+| .2+| |<> |<> beta[] |<> beta[] |image:./images/icon-yes.png[Prebuilt dashboards are available] | .4+| .4+| |<> beta[] @@ -121,9 +128,11 @@ This file is generated! See scripts/docs_collector.py |<> |<> |<> -|<> beta[] -|<> beta[] +|<> +|<> |<> +|<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | +.1+| .1+| |<> experimental[] |<> beta[] |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> beta[] |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | @@ -146,6 +155,7 @@ include::modules/couchbase.asciidoc[] include::modules/docker.asciidoc[] include::modules/dropwizard.asciidoc[] include::modules/elasticsearch.asciidoc[] +include::modules/envoyproxy.asciidoc[] include::modules/etcd.asciidoc[] include::modules/golang.asciidoc[] include::modules/graphite.asciidoc[] @@ -168,6 +178,7 @@ include::modules/prometheus.asciidoc[] include::modules/rabbitmq.asciidoc[] include::modules/redis.asciidoc[] include::modules/system.asciidoc[] +include::modules/traefik.asciidoc[] include::modules/uwsgi.asciidoc[] include::modules/vsphere.asciidoc[] include::modules/windows.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/running-on-docker.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/running-on-docker.asciidoc index 60b809f1..bef686c7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/running-on-docker.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/running-on-docker.asciidoc @@ -15,9 +15,9 @@ host machine from within the container. ["source","sh",subs="attributes"] ---- docker run \ - --volume=/proc:/hostfs/proc:ro \ <1> - --volume=/sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro \ <2> - --volume=/:/hostfs:ro \ <3> + --mount type=bind,source=/proc,target=/hostfs/proc,readonly \ <1> + --mount type=bind,source=/sys/fs/cgroup,target=/hostfs/sys/fs/cgroup,readonly \ <2> + --mount type=bind,source=/,target=/hostfs,readonly \ <3> --net=host <4> {dockerimage} -system.hostfs=/hostfs ---- diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/running-on-kubernetes.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/running-on-kubernetes.asciidoc index dd7105ff..6a0efbe9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/running-on-kubernetes.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/running-on-kubernetes.asciidoc @@ -36,6 +36,13 @@ To get the manifests just run: curl -L -O https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/kubernetes/metricbeat-kubernetes.yaml ------------------------------------------------ +[WARNING] +======================================= +If you are using Kubernetes 1.7 or earlier: {beatname_uc} uses a hostPath volume to persist internal data, it's located +under /var/lib/{beatname_lc}-data. The manifest uses folder autocreation (`DirectoryOrCreate`), which was introduced in +Kubernetes 1.8. You will need to remove `type: DirectoryOrCreate` from the manifest and create the host folder yourself. +======================================= + [float] ==== Settings diff --git a/vendor/github.com/elastic/beats/metricbeat/docs/setting-up-running.asciidoc b/vendor/github.com/elastic/beats/metricbeat/docs/setting-up-running.asciidoc index 13f28655..fafad811 100644 --- a/vendor/github.com/elastic/beats/metricbeat/docs/setting-up-running.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/docs/setting-up-running.asciidoc @@ -4,7 +4,7 @@ // that is unique to each beat. ///// -[[seting-up-and-running]] +[[setting-up-and-running]] == Setting up and running {beatname_uc} Before reading this section, see the @@ -22,7 +22,7 @@ This section includes additional information on how to set up and run * <> -//MAINTAINERS: If you add a new file to this section, make sure you update the bulletedl ist ^^ too. +//MAINTAINERS: If you add a new file to this section, make sure you update the bulleted list ^^ too. include::../../libbeat/docs/shared-directory-layout.asciidoc[] @@ -33,3 +33,5 @@ include::../../libbeat/docs/command-reference.asciidoc[] include::./running-on-docker.asciidoc[] include::./running-on-kubernetes.asciidoc[] + +include::../../libbeat/docs/shared-shutdown.asciidoc[] diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/elastic/elastic.go b/vendor/github.com/elastic/beats/metricbeat/helper/elastic/elastic.go new file mode 100644 index 00000000..a075a858 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/helper/elastic/elastic.go @@ -0,0 +1,88 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elastic + +import ( + "fmt" + "strings" + + "github.com/elastic/beats/metricbeat/mb" +) + +// Product supported by X-Pack Monitoring +type Product int + +const ( + // Elasticsearch product + Elasticsearch Product = iota + + // Kibana product + Kibana + + // Logstash product + Logstash + + // Beats product + Beats +) + +func (p Product) xPackMonitoringIndexString() string { + indexProductNames := []string{ + "es", + "kibana", + "logstash", + "beats", + } + + if int(p) < 0 || int(p) > len(indexProductNames) { + panic("Unknown product") + } + + return indexProductNames[p] +} + +func (p Product) String() string { + productNames := []string{ + "elasticsearch", + "kibana", + "logstash", + "beats", + } + + if int(p) < 0 || int(p) > len(productNames) { + panic("Unknown product") + } + + return productNames[p] +} + +// MakeXPackMonitoringIndexName method returns the name of the monitoring index for +// a given product { elasticsearch, kibana, logstash, beats } +func MakeXPackMonitoringIndexName(product Product) string { + const version = "6" + + return fmt.Sprintf(".monitoring-%v-%v-mb", product.xPackMonitoringIndexString(), version) +} + +// ReportErrorForMissingField reports and returns an error message for the given +// field being missing in API response received from a given product +func ReportErrorForMissingField(field string, product Product, r mb.ReporterV2) error { + err := fmt.Errorf("Could not find field '%v' in %v stats API response", field, strings.Title(product.String())) + r.Error(err) + return err +} diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/http.go b/vendor/github.com/elastic/beats/metricbeat/helper/http.go index 0a478e59..b01fa781 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/http.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/http.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 helper import ( @@ -10,6 +27,8 @@ import ( "net/http" "time" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common/transport/tlscommon" "github.com/elastic/beats/libbeat/outputs/transport" "github.com/elastic/beats/metricbeat/mb" @@ -27,9 +46,10 @@ type HTTP struct { // NewHTTP creates new http helper func NewHTTP(base mb.BaseMetricSet) (*HTTP, error) { config := struct { - TLS *tlscommon.Config `config:"ssl"` - Timeout time.Duration `config:"timeout"` - Headers map[string]string `config:"headers"` + TLS *tlscommon.Config `config:"ssl"` + Timeout time.Duration `config:"timeout"` + Headers map[string]string `config:"headers"` + BearerTokenFile string `config:"bearer_token_file"` }{} if err := base.Module().UnpackConfig(&config); err != nil { return nil, err @@ -39,6 +59,14 @@ func NewHTTP(base mb.BaseMetricSet) (*HTTP, error) { config.Headers = map[string]string{} } + if config.BearerTokenFile != "" { + header, err := getAuthHeaderFromToken(config.BearerTokenFile) + if err != nil { + return nil, err + } + config.Headers["Authorization"] = header + } + tlsConfig, err := tlscommon.LoadTLSConfig(config.TLS) if err != nil { return nil, err @@ -162,3 +190,22 @@ func (h *HTTP) FetchJSON() (map[string]interface{}, error) { return data, nil } + +// getAuthHeaderFromToken reads a bearer authorizaiton token from the given file +func getAuthHeaderFromToken(path string) (string, error) { + var token string + + b, err := ioutil.ReadFile(path) + if err != nil { + return "", errors.Wrap(err, "reading bearer token file") + } + + if len(b) != 0 { + if b[len(b)-1] == '\n' { + b = b[0 : len(b)-1] + } + token = fmt.Sprintf("Bearer %s", string(b)) + } + + return token, nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/privileges_windows.go b/vendor/github.com/elastic/beats/metricbeat/helper/privileges_windows.go index 20fa051b..9e182a8c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/privileges_windows.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/privileges_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 helper import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/label.go b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/label.go index 8ac879a9..117ce4fa 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/label.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/label.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 prometheus // LabelMap defines the mapping from Prometheus label to a Metricbeat field diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/metric.go b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/metric.go index 7039b75e..716ea1a3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/metric.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/metric.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 prometheus import ( @@ -12,6 +29,9 @@ import ( // MetricMap defines the mapping from Prometheus metric to a Metricbeat field type MetricMap interface { + // GetOptions returns the list of metric options + GetOptions() []MetricOption + // GetField returns the resulting field name GetField() string @@ -19,47 +39,84 @@ type MetricMap interface { GetValue(m *dto.Metric) interface{} } +// MetricOption adds settings to Metric objects behavior +type MetricOption interface { + // Process a tuple of field, value and labels from a metric, return the same tuple updated + Process(field string, value interface{}, labels common.MapStr) (string, interface{}, common.MapStr) +} + +// OpFilter only processes metrics matching the given filter +func OpFilter(filter map[string]string) MetricOption { + return opFilter{ + labels: filter, + } +} + +// OpLowercaseValue lowercases the value if it's a string +func OpLowercaseValue() MetricOption { + return opLowercaseValue{} +} + // Metric directly maps a Prometheus metric to a Metricbeat field -func Metric(field string) MetricMap { +func Metric(field string, options ...MetricOption) MetricMap { return &commonMetric{ - field: field, + field: field, + options: options, } } // KeywordMetric maps a Prometheus metric to a Metricbeat field, stores the // given keyword when source metric value is 1 -func KeywordMetric(field, keyword string) MetricMap { +func KeywordMetric(field, keyword string, options ...MetricOption) MetricMap { return &keywordMetric{ commonMetric{ - field: field, + field: field, + options: options, }, keyword, } } // BooleanMetric maps a Prometheus metric to a Metricbeat field of bool type -func BooleanMetric(field string) MetricMap { +func BooleanMetric(field string, options ...MetricOption) MetricMap { return &booleanMetric{ commonMetric{ - field: field, + field: field, + options: options, }, } } // LabelMetric maps a Prometheus metric to a Metricbeat field, stores the value // of a given label on it if the gauge value is 1 -func LabelMetric(field, label string, lowercase bool) MetricMap { +func LabelMetric(field, label string, options ...MetricOption) MetricMap { return &labelMetric{ commonMetric{ - field: field, + field: field, + options: options, }, label, - lowercase, + } +} + +// InfoMetric obtains info labels from the given metric and puts them +// into events matching all the key labels present in the metric +func InfoMetric(options ...MetricOption) MetricMap { + return &infoMetric{ + commonMetric{ + options: options, + }, } } type commonMetric struct { - field string + field string + options []MetricOption +} + +// GetOptions returns the list of metric options +func (m *commonMetric) GetOptions() []MetricOption { + return m.options } // GetField returns the resulting field name @@ -153,18 +210,13 @@ func (m *booleanMetric) GetValue(metric *dto.Metric) interface{} { type labelMetric struct { commonMetric - label string - lowercase bool + label string } // GetValue returns the resulting value func (m *labelMetric) GetValue(metric *dto.Metric) interface{} { if gauge := metric.GetGauge(); gauge != nil && gauge.GetValue() == 1 { - value := getLabel(metric, m.label) - if m.lowercase { - return strings.ToLower(value) - } - return value + return getLabel(metric, m.label) } return nil } @@ -177,3 +229,41 @@ func getLabel(metric *dto.Metric, name string) string { } return "" } + +type infoMetric struct { + commonMetric +} + +// GetValue returns the resulting value +func (m *infoMetric) GetValue(metric *dto.Metric) interface{} { + return "" +} + +// GetField returns the resulting field name +func (m *infoMetric) GetField() string { + return "" +} + +type opFilter struct { + labels map[string]string +} + +// Process will return nil if labels don't match the filter +func (o opFilter) Process(field string, value interface{}, labels common.MapStr) (string, interface{}, common.MapStr) { + for k, v := range o.labels { + if labels[k] != v { + return "", nil, nil + } + } + return field, value, labels +} + +type opLowercaseValue struct{} + +// Process will lowercase the given value if it's a string +func (o opLowercaseValue) Process(field string, value interface{}, labels common.MapStr) (string, interface{}, common.MapStr) { + if val, ok := value.(string); ok { + value = strings.ToLower(val) + } + return field, value, labels +} diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/module.go b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/module.go index 7d509456..9ac6f48b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/module.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/module.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 prometheus import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/prometheus.go b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/prometheus.go index b9fcb436..27456b09 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/prometheus.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/prometheus.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 prometheus import ( @@ -93,6 +110,7 @@ func (p *prometheus) GetProcessedMetrics(mapping *MetricsMapping) ([]common.MapS } eventsMap := map[string]common.MapStr{} + infoMetrics := []*infoMetricData{} for _, family := range families { for _, metric := range family.GetMetric() { m, ok := mapping.Metrics[family.GetName()] @@ -110,26 +128,41 @@ func (p *prometheus) GetProcessedMetrics(mapping *MetricsMapping) ([]common.MapS continue } + // Apply extra options + allLabels := getLabels(metric) + for _, option := range m.GetOptions() { + field, value, allLabels = option.Process(field, value, allLabels) + } + // Convert labels labels := common.MapStr{} keyLabels := common.MapStr{} - for k, v := range getLabels(metric) { + for k, v := range allLabels { if l, ok := mapping.Labels[k]; ok { if l.IsKey() { - keyLabels[l.GetField()] = v + keyLabels.Put(l.GetField(), v) } else { - labels[l.GetField()] = v + labels.Put(l.GetField(), v) } } } - event := getEvent(eventsMap, keyLabels) - // Empty field means we ignore the metric but still process its labels - if field != "" { - event[field] = value + // Keep a info document if it's an infoMetric + if _, ok = m.(*infoMetric); ok { + labels.DeepUpdate(keyLabels) + infoMetrics = append(infoMetrics, &infoMetricData{ + Labels: keyLabels, + Meta: labels, + }) + continue } - event.Update(labels) + if field != "" { + // Put it in the event if it's a common metric + event := getEvent(eventsMap, keyLabels) + event.Put(field, value) + event.DeepUpdate(labels) + } } } @@ -143,10 +176,36 @@ func (p *prometheus) GetProcessedMetrics(mapping *MetricsMapping) ([]common.MapS events = append(events, event) } + + // fill info from infoMetrics + for _, info := range infoMetrics { + for _, event := range events { + found := true + for k, v := range info.Labels.Flatten() { + value, err := event.GetValue(k) + if err != nil || v != value { + found = false + break + } + } + + // fill info from this metric + if found { + event.DeepUpdate(info.Meta) + } + } + } + return events, nil } +// infoMetricData keeps data about an infoMetric +type infoMetricData struct { + Labels common.MapStr + Meta common.MapStr +} + func (p *prometheus) ReportProcessedMetrics(mapping *MetricsMapping, r mb.ReporterV2) { events, err := p.GetProcessedMetrics(mapping) if err != nil { @@ -172,7 +231,7 @@ func getLabels(metric *dto.Metric) common.MapStr { labels := common.MapStr{} for _, label := range metric.GetLabel() { if label.GetName() != "" && label.GetValue() != "" { - labels[label.GetName()] = label.GetValue() + labels.Put(label.GetName(), label.GetValue()) } } return labels diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/prometheus_test.go b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/prometheus_test.go deleted file mode 100644 index 86ec120e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/prometheus_test.go +++ /dev/null @@ -1,274 +0,0 @@ -package prometheus - -import ( - "bytes" - "io/ioutil" - "net/http" - "net/http/httptest" - "sort" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -const promMetrics = ` -# TYPE first_metric gauge -first_metric{label1="value1",label2="value2",label3="Value3",label4="FOO"} 1 -# TYPE second_metric gauge -second_metric{label1="value1",label3="othervalue"} 0 -# TYPE summary_metric summary -summary_metric{quantile="0.5"} 29735 -summary_metric{quantile="0.9"} 47103 -summary_metric{quantile="0.99"} 50681 -summary_metric_sum 234892394 -summary_metric_count 44000 -# TYPE histogram_metric histogram -histogram_metric_bucket{le="1000"} 1 -histogram_metric_bucket{le="10000"} 1 -histogram_metric_bucket{le="100000"} 1 -histogram_metric_bucket{le="1e+06"} 1 -histogram_metric_bucket{le="1e+08"} 1 -histogram_metric_bucket{le="1e+09"} 1 -histogram_metric_bucket{le="+Inf"} 1 -histogram_metric_sum 117 -histogram_metric_count 1 - -` - -type mockFetcher struct{} - -func (m mockFetcher) FetchResponse() (*http.Response, error) { - return &http.Response{ - Header: make(http.Header), - Body: ioutil.NopCloser(bytes.NewReader([]byte(promMetrics))), - }, nil -} - -func TestPrometheus(t *testing.T) { - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(promMetrics)) - })) - - server.Start() - defer server.Close() - - p := &prometheus{mockFetcher{}} - - tests := []struct { - mapping *MetricsMapping - msg string - expected []common.MapStr - }{ - { - msg: "Simple field map", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": Metric("first.metric"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": 1.0, - }, - }, - }, - { - msg: "Simple field map with labels", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": Metric("first.metric"), - }, - Labels: map[string]LabelMap{ - "label1": Label("labels.label1"), - "label2": Label("labels.label2"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": 1.0, - "labels.label1": "value1", - "labels.label2": "value2", - }, - }, - }, - { - msg: "Several metrics", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": Metric("first.metric"), - "second_metric": Metric("second.metric"), - }, - Labels: map[string]LabelMap{ - "label3": KeyLabel("labels.label3"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": 1.0, - "labels.label3": "Value3", - }, - common.MapStr{ - "second.metric": 0.0, - "labels.label3": "othervalue", - }, - }, - }, - { - msg: "Grouping by key labels", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": Metric("first.metric"), - "second_metric": Metric("second.metric"), - }, - Labels: map[string]LabelMap{ - "label1": KeyLabel("labels.label1"), - "label2": Label("labels.label2"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": 1.0, - "second.metric": 0.0, - "labels.label1": "value1", - "labels.label2": "value2", - }, - }, - }, - { - msg: "Keyword metrics", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": KeywordMetric("first.metric", "works"), - "second_metric": KeywordMetric("second.metric", "itsnot"), - }, - Labels: map[string]LabelMap{ - "label1": KeyLabel("labels.label1"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": "works", - "labels.label1": "value1", - }, - }, - }, - { - msg: "Boolean metrics", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": BooleanMetric("first.metric"), - "second_metric": BooleanMetric("second.metric"), - }, - Labels: map[string]LabelMap{ - "label1": KeyLabel("labels.label1"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": true, - "second.metric": false, - "labels.label1": "value1", - }, - }, - }, - { - msg: "Label metrics", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": LabelMetric("first.metric", "label3", false), - }, - Labels: map[string]LabelMap{ - "label1": Label("labels.label1"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": "Value3", - "labels.label1": "value1", - }, - }, - }, - { - msg: "Label metrics, lowercase", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "first_metric": LabelMetric("first.metric", "label4", true), - }, - Labels: map[string]LabelMap{ - "label1": Label("labels.label1"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "first.metric": "foo", - "labels.label1": "value1", - }, - }, - }, - { - msg: "Summary metric", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "summary_metric": Metric("summary.metric"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "summary.metric": common.MapStr{ - "sum": 234892394.0, - "count": uint64(44000), - "percentile": common.MapStr{ - "50": 29735.0, - "90": 47103.0, - "99": 50681.0, - }, - }, - }, - }, - }, - { - msg: "Histogram metric", - mapping: &MetricsMapping{ - Metrics: map[string]MetricMap{ - "histogram_metric": Metric("histogram.metric"), - }, - }, - expected: []common.MapStr{ - common.MapStr{ - "histogram.metric": common.MapStr{ - "count": uint64(1), - "bucket": common.MapStr{ - "1000000000": uint64(1), - "+Inf": uint64(1), - "1000": uint64(1), - "10000": uint64(1), - "100000": uint64(1), - "1000000": uint64(1), - "100000000": uint64(1), - }, - "sum": 117.0, - }, - }, - }, - }, - } - - for _, test := range tests { - reporter := &mbtest.CapturingReporterV2{} - p.ReportProcessedMetrics(test.mapping, reporter) - assert.Nil(t, reporter.GetErrors(), test.msg) - // Sort slice to avoid randomness - res := reporter.GetEvents() - sort.Slice(res, func(i, j int) bool { - return res[i].MetricSetFields.String() < res[j].MetricSetFields.String() - }) - for j, ev := range res { - assert.Equal(t, test.expected[j], ev.MetricSetFields, test.msg) - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/ptest/ptest.go b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/ptest/ptest.go index e00bc241..c91a2690 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/ptest/ptest.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/prometheus/ptest/ptest.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ptest import ( @@ -7,8 +24,11 @@ import ( "net/http" "net/http/httptest" "os" + "sort" "testing" + "github.com/mitchellh/hashstructure" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/mb" mbtest "github.com/elastic/beats/metricbeat/mb/testing" @@ -60,6 +80,11 @@ func TestMetricSetEventsFetcher(t *testing.T, module, metricset string, cases Te assert.Nil(t, err, "Errors while fetching metrics") if *expectedFlag { + sort.SliceStable(events, func(i, j int) bool { + h1, _ := hashstructure.Hash(events[i], nil) + h2, _ := hashstructure.Hash(events[j], nil) + return h1 < h2 + }) eventsJSON, _ := json.MarshalIndent(events, "", "\t") err = ioutil.WriteFile(test.ExpectedFile, eventsJSON, 0644) assert.NoError(t, err) @@ -137,7 +162,13 @@ func TestMetricSet(t *testing.T, module, metricset string, cases TestCases) { assert.Nil(t, reporter.GetErrors(), "Errors while fetching metrics") if *expectedFlag { - eventsJSON, _ := json.MarshalIndent(reporter.GetEvents(), "", "\t") + events := reporter.GetEvents() + sort.SliceStable(events, func(i, j int) bool { + h1, _ := hashstructure.Hash(events[i], nil) + h2, _ := hashstructure.Hash(events[j], nil) + return h1 < h2 + }) + eventsJSON, _ := json.MarshalIndent(events, "", "\t") err = ioutil.WriteFile(test.ExpectedFile, eventsJSON, 0644) assert.NoError(t, err) } diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/http/config.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/http/config.go index 115c747a..d303e8c9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/http/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/server/http/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http type HttpConfig struct { diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/http/http.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/http/http.go index c4867418..38935f4d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/http/http.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/server/http/http.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/http/http_test.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/http/http_test.go deleted file mode 100644 index 15bbfe1b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/http/http_test.go +++ /dev/null @@ -1,74 +0,0 @@ -// +build !integration - -package http - -import ( - "bytes" - "context" - "fmt" - "net/http" - "testing" - "time" - - "github.com/elastic/beats/metricbeat/helper/server" - - "github.com/stretchr/testify/assert" -) - -func GetHttpServer(host string, port int) (server.Server, error) { - ctx, cancel := context.WithCancel(context.Background()) - h := &HttpServer{ - done: make(chan struct{}), - eventQueue: make(chan server.Event, 1), - ctx: ctx, - stop: cancel, - } - - httpServer := &http.Server{ - Addr: fmt.Sprintf("%s:%d", host, port), - Handler: http.HandlerFunc(h.handleFunc), - } - h.server = httpServer - - return h, nil -} - -func TestHttpServer(t *testing.T) { - host := "127.0.0.1" - port := 40050 - svc, err := GetHttpServer(host, port) - if err != nil { - t.Error(err) - t.FailNow() - } - - svc.Start() - defer svc.Stop() - // make sure server is up before writing data into it. - time.Sleep(2 * time.Second) - writeToServer(t, "test1", host, port) - msg := <-svc.GetEvents() - - assert.True(t, msg.GetEvent() != nil) - ok, _ := msg.GetEvent().HasKey("data") - assert.True(t, ok) - bytes, _ := msg.GetEvent()["data"].([]byte) - assert.True(t, string(bytes) == "test1") - -} - -func writeToServer(t *testing.T, message, host string, port int) { - url := fmt.Sprintf("http://%s:%d/", host, port) - var str = []byte(message) - req, err := http.NewRequest("POST", url, bytes.NewBuffer(str)) - req.Header.Set("Content-Type", "text/plain") - - client := &http.Client{} - resp, err := client.Do(req) - if err != nil { - t.Error(err) - t.FailNow() - } - defer resp.Body.Close() - -} diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/server.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/server.go index c10f560c..70e903f9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/server.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/server/server.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import "github.com/elastic/beats/libbeat/common" diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/config.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/config.go index 1b240b27..88c03970 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp type TcpConfig struct { diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/tcp.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/tcp.go index 81431676..7b8529d7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/tcp.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/tcp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 tcp import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/tcp_test.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/tcp_test.go deleted file mode 100644 index a57848e2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/tcp/tcp_test.go +++ /dev/null @@ -1,79 +0,0 @@ -// +build !integration - -package tcp - -import ( - "fmt" - "net" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/metricbeat/helper/server" -) - -func GetTestTcpServer(host string, port int) (server.Server, error) { - addr, err := net.ResolveTCPAddr("tcp", fmt.Sprintf("%s:%d", host, port)) - - if err != nil { - return nil, err - } - - logp.Info("Started listening for TCP on: %s:%d", host, port) - return &TcpServer{ - tcpAddr: addr, - receiveBufferSize: 1024, - done: make(chan struct{}), - eventQueue: make(chan server.Event), - }, nil -} - -func TestTcpServer(t *testing.T) { - host := "127.0.0.1" - port := 2003 - svc, err := GetTestTcpServer(host, port) - if err != nil { - t.Error(err) - t.FailNow() - } - - err = svc.Start() - if err != nil { - t.Error(err) - t.FailNow() - } - - defer svc.Stop() - writeToServer(t, "test1", host, port) - msg := <-svc.GetEvents() - - assert.True(t, msg.GetEvent() != nil) - ok, _ := msg.GetEvent().HasKey("data") - assert.True(t, ok) - bytes, _ := msg.GetEvent()["data"].([]byte) - assert.True(t, string(bytes) == "test1") - -} - -func writeToServer(t *testing.T, message, host string, port int) { - servAddr := fmt.Sprintf("%s:%d", host, port) - tcpAddr, err := net.ResolveTCPAddr("tcp", servAddr) - if err != nil { - t.Error(err) - t.FailNow() - } - - conn, err := net.DialTCP("tcp", nil, tcpAddr) - if err != nil { - t.Error(err) - t.FailNow() - } - - defer conn.Close() - _, err = conn.Write([]byte(message)) - if err != nil { - t.Error(err) - t.FailNow() - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/config.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/config.go index fdce2be2..38ca4b82 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 udp type UdpConfig struct { diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/udp.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/udp.go index 124e4b0a..94f084f4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/udp.go +++ b/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/udp.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 udp import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/udp_test.go b/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/udp_test.go deleted file mode 100644 index bb2c0a10..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/helper/server/udp/udp_test.go +++ /dev/null @@ -1,72 +0,0 @@ -// +build !integration - -package udp - -import ( - "fmt" - "net" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/metricbeat/helper/server" -) - -func GetTestUdpServer(host string, port int) (server.Server, error) { - addr, err := net.ResolveUDPAddr("udp", fmt.Sprintf("%s:%d", host, port)) - - if err != nil { - return nil, err - } - - logp.Info("Started listening for UDP on: %s:%d", host, port) - return &UdpServer{ - udpaddr: addr, - receiveBufferSize: 1024, - done: make(chan struct{}), - eventQueue: make(chan server.Event), - }, nil -} - -func TestUdpServer(t *testing.T) { - host := "127.0.0.1" - port := 2003 - svc, err := GetTestUdpServer(host, port) - if err != nil { - t.Error(err) - t.FailNow() - } - - svc.Start() - if err != nil { - t.Error(err) - t.FailNow() - } - - defer svc.Stop() - writeToServer(t, "test1", host, port) - msg := <-svc.GetEvents() - - assert.True(t, msg.GetEvent() != nil) - ok, _ := msg.GetEvent().HasKey("data") - assert.True(t, ok) - bytes, _ := msg.GetEvent()["data"].([]byte) - assert.True(t, string(bytes) == "test1") -} - -func writeToServer(t *testing.T, message, host string, port int) { - servAddr := fmt.Sprintf("%s:%d", host, port) - conn, err := net.Dial("udp", servAddr) - if err != nil { - t.Error(err) - t.FailNow() - } - - defer conn.Close() - _, err = conn.Write([]byte(message)) - if err != nil { - t.Error(err) - t.FailNow() - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/include/fields.go b/vendor/github.com/elastic/beats/metricbeat/include/fields.go index 805ce469..ddae3fca 100644 --- a/vendor/github.com/elastic/beats/metricbeat/include/fields.go +++ b/vendor/github.com/elastic/beats/metricbeat/include/fields.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. package include @@ -7,12 +24,12 @@ import ( ) func init() { - if err := asset.SetFields("metricbeat/fields.yml", Asset); err != nil { + if err := asset.SetFields("metricbeat", "../metricbeat/_meta/fields.common.yml", Asset); err != nil { panic(err) } } // Asset returns asset data func Asset() string { - return "eJzsvftzJLeRP/i7/wrEXFyIs8tpSbbs/YYuduNGHMnieh7cIce+i42NHnQVuhtmFVACUGy27u5/v0ACqCdQr65qUvbwB1tDdmd+kAASiUQ+fvcK3ZPj92hDsPodQoqqhHyPfjD/iomMBM0U5ex79B+/QwihK84UpkyiiKcpZ/A9tKUkiSXCD5gmeJMQRBnCSYLIA2EKqWNG5Op3yH7s+98BoVeI4ZQYxiv9n/BbL0/9c7cn8AXEt0jtCSBEkrCYsh38IuE7lBIp8Y7IFbqufAq+RmVBShKlAeq/R5xt6S4XWLNDW5qQS/17/Ues0ANOcv1NlEsSA02q9D8ZV1Vi8BW051JZTvbzdxxY1XBc6r/Brz7rf34u6HAYcRjXqi00x7FfcAU2LJEgKheMxGhzBFY8I5oN2yF5lIqkiDN02NNoXwKvyE7kjFG286BRNCW/cjYAjfvkkmgeiJCUs34w9oNuWcFyhsnfEaahkBipPZVmKa/qS/fF/6mHIhVOsxeWqF7r36MYKycHQX7JqSDx90iJ3P1yy0WKVe1z5BGnmd56r/NdLhX6/Z/UHv3+m2//dIm+/f33f/jj93/8w+oPf/j9MOkCJHQwC5nYbag3iCARFzE6YFmOrzEohXeym8trsaFKYHGEzxppRVirAljvGRFmojCL4R9KYCZxpMr5MHJqMDbaoSZHvvk7idxeM/9Ym7/ck+OBi7gbaKGrcklEuae0gjLMGgiIEFzUAOwEz7NuJj/qLzkNGBmOev3iOKb6szhBlG253tkRlqC/gI9cucVgtaIj6NBYZVb83mFS5FFVfhmAVUKzdFYtBhGP29QTznZjqGsibdKaVot0fc4GUTfLxB5RUcLzuDyjrvQ/USb4A42JHqbCMVbYf2y9s39FW8FTQ6n4qtRzVaogHMdr+MDakdSfjIiUXARPMf3RFXxr5cg2NzaJenbv+8rxVke4QjdcSqoXLpxJEmFBNMFLtIvIJeICxXRHFU54RDBbBbFRJhVmEVnTnq1zbT+Irt84SPoQQSmO9pQ1t66PQ//JVPConuvDuNgPrCvrrJCz+v0qJTHN027u7wwJWGLjmFszhyZUHdeVI69AkMtXBEv16tuoR5FWCCE4EWl52lFp4FBZHnMdSw50YzGrBRT7l1ePw5ee/YrG8mfOdwkxOy3MXZBd71H7ET7TNz670WMe3cP+sTv9jfu3h7j5G5IKK61+k4RE+syGbW7+pves3HOh1uYE+B5tcSL1pGEW7blw/F4Vu/x3daXshlzAQt7zIaTH7ZlAxIrGp+nET4z+kpOSIKKxT6sX7FLf8TGKY3VdADlnnVoA2pDY5DRRiLMuKBVlMBHJVcFT0+rileANSWSLW82WQN32RA+Wa5CE4VMsWr2YyyX7s/mXh8i1NgYqC1Wfci3VU65N/fvelWl5j1uXp8/Jz/Za0Z6NmVa6URCeRY5FtKeKRCoXM4yhRg5dkNVuhR7/15/Wf/ruEmGRXqIsiy5RSjP5sg2Fy1WWYKVN+tOQfLhFjpDFEBGmuLxE+SZnKr9EB8pifgiAqN94pmOwdLw8tjilyfFkFoaMHaQg8R6rSxSTDcXsEm0FIRsZd42WZi0ItV91cH9LpdIK7frmFY5jQaQkss0gxdFpg3Rs9ljEByxIyewS5TLHSXJE715fVTE4PXKfb4hgRBFZapO/VH/nYVv+vTCD6zZtSRRVdUn3sVh+qVcB1UCjUWoo4/EMx0NFAhmPjW7zsspPVU0NTpqeV7XKDEfzDaqk2Gamb2CzSlBTDIhw6OE6jJGhhlKctTlhxrgC/9ds7Cok/TznNFgqfKOa7dLFdgaTzcvX0HX3aPDcVi7S7t8D3L2neHpTogSNJFGrlMd5MtLha77T9s0Rr2uu5DXetVx8dzyziiEWYOZspoKZvYbChaX0dJYYtIldmIsrdLev+D9BzCjFR8S4Qht9dyNST0Th+oOjoEYCJTzS509wDELVbcmKR8jrzAz5xWBFCJ6zGClBM3BM6uWS0khwSSLOWg64+qxVNegIr99791Ut4vjIcEqjknKTZcWD4B1dcZMuKfSvpphHeeo2xAq9Tg74KM1jAEcvYh69aKCQRDzQqKbGS79RgqXSnLWVOvwab0la3OaZhqhoT2S5MPSiKy4wmAguM3pPSs3w4rX73Qu/eij+jootLUhCsAQ/PDjjfOZClRUa7mztusn4j9sqyR696SPSHEtt31WAVMFECSVM1f4UQtODSP9cATXj3lg1/upDUUUSk4Qo0vpzF5oBiCqoDIOqf1/6kXahRQEHvB90wz09Erf+eZ+nGyL0LonCowDFv8U0ITE6ULVHmBlwvpFVTTG13mqN92zGIIjME6319TkNpwTg6x6GzCNt7Z9tEJbfNk86xtMNWR8uPG9uu+Ug98ld44kRz1UbtoMsCPatk7k2pyb/W9+azTE0Xs78SJ9sE7bQtnbgb2b/tRbPs9x9foEP2HoHQRc9GIH+b33zeQYx8Vh8+vXcHsuzXNAhkQeWdGnoaUt/LpPzDZX3SCou8I6YZTvS7iycA6ss8onQIJMRTki83iYc+z7kQmQyIqK2PT1gGAhe/bHMhb3xpJTRNE/BK0J3Oc8limGocFfE+lIqwZehfyutweQuBWFdshXk6Qd6Y76sZ0xfevWwIpzhiKojALTPTFQOGZHiCierzbH05rYHFVj8bjChLw8Yyp3mbggUY7FTlCQ8Mo4Y3hgMAuVPjesyPDKIy3t+A9OwjKd+4JiKd79Dut4IgqM9aVo7ZjQbzhOC2TgFcL0FB8hl5Xa/xxI5RuirPd3tXx2wIuLVf+th/L8pSbk4/s+rLFJf9S610tmjvzSX1noH1Op6a+yF+RluZSOk3s08Zv3HWOEn2wSvU54zVRkZj6I8o2b9G5/USYOjLCaPz3N0EEOh4Z04RPmMx2jculgczUiJPHGsz+oosuOdrK0bb0qo431nAMDSzd2iW3sZrDxJDOTaxZTHBLUodr1EnjrK4inSx9C8AzZnd/IZ8hGiowN3tb7DI8VSEd8lrXOVDliF5S1BWHzVpWbfjLDQJqyiD8QC8VxwavbdWYBS1twlpToIbhOpeLaGm5B/Yk+xaZpwqERRLgRhKjFvaNrGPFC2M1exMrpLn7/72ssI/CL0LAJ/RD/f3d28gYcYE59s34+aYYr6YLDfOJCN/Xw4arF4lNjh30H+iaJsJ79H//1CyuTF/4SeXNwA0Jjg9s/ma5/dU7KsPk6au+mBCIJkJHDmxmPG0hferjdZ3n7ab27b+mgHzPZnQ3gc5MoUmK+jrBYy3/3k00jEqQ9oktqzWPatADvU3MdrDL6OwF7xbOYezubMY8VWNuThbZTIplasI7n3HbVz4binCTcnMeyP2A/EwVxnRKwlibxgOqz43gPCkIe0FmPr+HEA0oVA/ABSGI7AymQxFJa+H8aBi3t9GG1y6b/qjV8Z5TGjiRYcOtnTOPHvzlPYa6Ld7PNM0YBamGCefAJq06wTc6isvYA6pTEAl/65NYecoa/P/SLAI4ToPFD88xJl+VyTcnXzadqMJLzj+a/H0TDkJeLmE3rLseelqXLBCpur8wCAvLukE4VJ81wQx63JI42yPAwi2tMkFoStzyATvi3YgXwGoFpcRk1chmFg73DGSNSMy0Qn7aGC5LSttNSFxtgglQGH5wrLI4tW+tJAvdxOhfJa069AQZZVH6J7QrI1TujDEprWgNIsSIyAyRhhRQmXiwor4ZLEYUQdinjyStYaF+EHIqAKwchl/OLbF1P3uP4zZbv1FkeKi+/Rt998M0101QEUuUkJlgqllOWqw1/34o/PGf0fLf6OVfni22c9gm8DQygO0ogLsuG4ddWcvJhvC4ru+jza6lRYaC219sZTnGzoWeooz7qjrDQC/y1oDhgfDYfAFbkmDlOuZC1IljRvQ7MIxJZD+ajph2Fohb3UkfAXQjJzFIT5x0yuE87vF1kUb5hEb4F4x0TYo2ddng0LILkyTIYdiQnf7ZY5DN8GKDvOO4Ejss2T5LjeUkblfhkYfy7YoIJNWBz6ar2OEoLZIovkWt/cLfmOSeGZNr4TvoTW+JBpOzvhXfrigMHGW2+5WHap/s0wggNn0HJd1OIuC36QbF9xuV+RbB9wuOs/lSkIPX5zG8w/1HNuUaBRfnP9pXEu6Ksfb37u85lHSS4VEeuYyvvfNaU+ItchQGdKukMZ7DWn9/d1kV9WvL6aqii555Et/NLbH9F0mnt6FnDBoKSp2D6ZB+qJ0JprbU9wovZzrLYWpSnrjWvbOEnWrecjdNqLywdD1z3/dAiuGiMa7Ul0L1ck49F+ptl7hzPUzuX3soXkuhVUBJqJeUHcJO4NAzD3VNzWpqAOpLk6x74iNlbagFXb4tC1On0TN3024FSz0uhcEgJvtzRa6bvOepQm6QqS6c1MA/nYIPy94Plun+Wq8jDViRXe188O1gZYj0YLkuVZ54vehPmtipDyTI4T3mJ4jJSGAEqpzBIckZXPIDwVhiOOsp19CO7G0BUNNAMKS34QFCjc6QXS4UjqDh8dC7cNoUwX2Akcu+i6mcXliPdMWoFhmUkrUAyYtALK001aATc8adkOAnfPrjGznQnLDduv2c5UxDs7NFy/JITAmeCUc4NT5QUhBEwb/mfHlReXgwAsMHgIGHW1Io694HoA3OzAtibVz3VDiHgeSKQfz/12zw8S7fkBpZgdUbYzJTQps6D4tnfoLXwzG3t2gmS/vcdlvNrmiV91TwuPlJooahGtcmQEi0W4asI9rPN0zWU81ynRWAyaclF4u+PC55Dk2dJg9NLkBlCxPD/ddIKi7ClAXb/vBCVIirOMxOtsd25kH3989/rm5sc3QXxz3tmBVtPGKIxCzqjigx0pE66qdQ62Fqqthex+hvnw2slPp3vwrGXk7vPvPvjXTEs86DQvws9GGD1cy6Hfb2Yf+V9+6GNvHJOzsTZeyX624HKcjSv4G/uZJliqdZ7FWAWSFSvV8IeOl6bE1Lo6YIl8tJfLvekbrlRckLWJZ0r4blYP71u+Kx28TQBDfM5VcCmV0azo3lEZzQdPSjUrutvbu/nALf6wcCrA3k03YfFhqVp7rXKyruPt8EOOPGZE0JSwuieiyy9Lsj2YjZBAnUu8I9BgQUulbjB3HXl0LmmAActj0qTYq3gabRzGsApeTUwhiHWU4Fa1jRO0XcFX07hENEnIDifwL0RZlOQxQfs4vkRSxoioqCNHBLbKGW67xfow1/AHnuQBkRWvb+dEZVZtB6qJr6pzYCu9Kh34st2a5c2I5KlbSDbv5sjVeXCJjlz6NxdMXshmXcpp15jFrMjX9ypDJchJZQkLdacJgaIbcFc4m+bjAm3y6J6oc+rABtOgNlT1JjTodC3Y4NyhD7mMLyF97xIJzlWHWjxmlW4sdZyzzIkmde2/Brt4/5nmxnItsggSqocvSYZN+dzNEaoI40Begcjlfn0gdLf37+cJSWrFyQXEkYd4eXJmgcvn+EkAjm2CjhV5pDLw4DHJi+YSwaWiSWKo6zXAuLr49tWRyEv0zSvGX/r1uKApFsc13m4po8qfojdB8ApymbW0TTq4iZAtGzBZvkHFLkjHQpgQ1rAnBUkNKMR27kiGMpgE9AFV+qzLkxhtCMozaNvED34f7zKmHFT+BcoIKBfQEqjy02vEbbHat+KITsSTYUGYVVZwpzYHfkOPtQ7XjPPk5EA4H5EnPVSv46INE+d+h/hyrowgS3OXPGuoXwvLsJuvxjnvk3KZ7+vekodJ6wxhfSfIaAEP4P2mhqtoNpBH+w2W1doZV+53gWjedzZStlEno/iazWaWA2pkjI31raBF4wJ+3TdHRv26r/WF/hpVeIquK8Vn1aonqWeK7ltOHxmcYbt5Pq53lSaAXVyhdlpwZ3ddvye7K+mvgAxSqU03B6r2lFmYhS6QGYnolpLYPoHBesNC2z2SxvqApQx9fP0uMC4q71e2PcDsehMuy5Z4B/uzirWsYmav8iRGF8DgZVe1wqcC2So9VmziTtC/5FzhlcDpE0D++PrdRLy59D1Edvtsel0+fdEptaqLBfaLLReurpY9/l8ivNPaXdUadetxmgFKvWEv/vfACHnWXRbmJPvE9M7mrL86DFUkXc8ZX1OpiqJIKhGWkkcUrv1QKNqnWBux3POcbZGLg5zncNvH8QrKgp5rA/0kCIG2cSgWetXZOmW16JTuTaQhm40Ufp1aAvnPJWhgb33vLol5MPbzojbvbS2Bl15wqDU8Aj6cEJCT8RSSbxYUHgt8c1wH68OeHTqYO2OWfoof10bLzKrc3uHHwrkJx5u9TnQdYlD/dG2thnSui5atcmz2l0VR7LBrKC7r+j5dvNOS6jxoz4qumMAuXNpUqequ8+4jfexPVl1N6PqUhyKX50df2/6mvKV9nxmxl8rxPIFGC4xlAu7zTwNOp01DcDRPcSDqCaidgYNl/0SrZdI6eZIjr4l20ClXOFuqrvCTDGVYiTNZyVEar3dk/rvEDk7cNMUs9jszweu2inkkV/oev9aXr6fyIdTtFxA00si6l2F1BFjh847gjV560nqYKoibtzdsVsuAgcgMK4qTnrGc6gwzV/GyX4Dlih4oOQySdwGzc9EssjBGY4UPPgVSsyDG4jzrxA+HmOXrXNGE/goekrXAKhztPt2NdLcnpvBlyQppVmGHkDUM1uA2mTWXv9JdyhofhscAGHMmhjYLOYf9Q+GS8CRbb3Zr40Ke66XV759GGRFa05IYScoiUrTSJQJizKGiWaj69I6o9Z4u8PKoz0FNOHB5n738+F2l9rh7YAjPThrF7qJbtGh6Gh95ZBoUWW952S+q22lQwhfEFhc/E0LHb9DTQ9ANOdvzQqW5EBlw4ltcS8XAu1lseuIGA5v9Bf5d+xWmHwzPFohEqHn6rb7irP2aXIciDzhbbLo0cWNLDtx3gGb2OSoXtQFUWjSdYGy18PmeZSA1Kc4F9BIp2vqbji0Y0k2LSUQXkkQBXA8bqBZJI7zWR7Q5n2dfT0D1a9e1XlYfj4F32Qcl5tE9PNW4WI438ItAIIf5o01IbERzmL+t2g1NvAEdvmCNAgsaE6lxXeaKIMzMczmFBvsIb3iuLNmvJBI5Y7aAo8KUVar8B+uzuU+eckW3QitodV7Sd4Ov6OYaPZ+NcGUI2sAWLBF5JFFuGx3rtd4cRyjsl8yYEPhG29qQEGgfZ60INT7LKdR0aN7Iz6uCtaEceIbN1jiORbh/y4m8r29QQT8wbvrrbP0pKmPWx8DEmsGCc7Xejm731oMNfuxBZe+SOElglWxpQsr8f/9qrQE8LIHN3XBLRLCx9viBoA0hzC1fxAWK9pjtihsK/IFyFoiTwoHUeywEbsZ79wWnpnhHgKLnEb/WUmO00vuYM+gcoi/Ps+i7eyIYSWZIDqom9gySUj2UxPVDMXhQRz9Ui1jR6H62ckg3nxDQG4bAtn14epnBPjXg0+K5pKsphf3b3LIzZI0IA3ajJOIZCMyKCYIEOyYY0C62wPq423fR8wvrrlhPkLIXcmIKsvqXIDzjeWz8yfxyfebZrm8MKg30rkGFp7x/WKfcK2rLwwO1Gv9Zq3s23mim8h5df/1hnsNDkPlagryOojzNEzi7NV3pboXQ2YFui1Pfd3kIAUWdDgY0g0FSbeY5AXQlcN1zue8FOEPzXtOgDkprTsYu2heQXuijZOs880bGPcU24UNjdWdMMkHAG/M9dECdupVHIYUCoktsINOV9be2g6ahfi5bSKNXhP0GdpGV85DF+eT7aBhWmacpFv603FnOIsx+q5tKH/YVP/hvdHPB+eQm4bexy7xpBmGD/6k2Wmt9e8AWL6hQKw6K2p9khC7iud1imlC2k0oQfO+VJmWK7FpLo0dSEWdRDhOqGZAYNYe/nHP051LcLkU+qse1VZ7+H0LJPhP0HxCzwh7rlyQsXnsc0qjLWz0AUlMehMV+SpXJEOocSIBRNxaeqywPd0fyL44JUAJ8KhU11Lq1gqpI/DtkmlBay7Xw5qf1i/1U/QF05tEdgboEE7bO3Z5YYAk+EiERJJXSLW27yvt2kj1Illk26BOjv+QOawkS7egDYSjPOENUyYDXvArT1KVYCOV1Ccye8AD4EtEtosrWiLk0L6Xl83ERyAWDi6kgkUqOwJC0mm0v+MIG735F7c0C/YBnthmfm8xrBLzmmCU5dh0+UKHyRdqY1V5zQDRdDSp3eYLDXadne+/SWHCSIBuCBLBqgXgu0626yErc3vlM8IYkUz2Lk2yHa6uDNN8ecOd6+moUZRut9q/Zlhd1IjZYmlievVKZ/P7rr01ouAmWiHj6NWE7ysjXgmyJICwiX+OMfm3+vhYk5YqscUbXD9+ufv/d1//b1zH0Azm+Mk8Zrw40Jq8q5TJPDSpwkRFzbWrXhiuqvZ+P3toZzmVL5aEZ9lQzmtUw8oSItDHZcJIzgAoHrrRRScWz7CyispwGoVq2o3uJCc7ZLlH1GFKTVJi1UKy1t+dSeY0pPw7Q2l4sp4dmF9IwXNqazgRWnqLrbAjlZOM2eEPu6BYyPZz/J0wTk/IbCl9KaEoH5z2dUJ7Vyg3YBfLZAnXiJijhj7e3Lvp2kvadtHtncKnV4oaLujfSFuXosPRbdgoasnjQkJfdgdDfBUBXCIee9Ns8J0/8J2luntOnPsWPTzDx7/BjWSKn09p+PlPdrB4882E493ZqyLXIRyXqwMVJXtP3hsTMZwLVOnuLozlLk1mgBWlgFbAX/EV1p1xzWcRTfShbUU/bl0/1ytHK/nKjAZrhNR+LbrO0Z69OQGY5lggzDAXWwhiJELx180GzWamGvL4KDodkP3AGy7kbU8VBPNvNMFc7/g+zD7gbzbPdBwXC57MPhkM63z5oY3KZMoJnB/orhlOmyJYpfhnImLn1psoU31oNrG06IommChMNT6Rpp8DUcVkpkARDbg3BArqtOUH8WP19QBa1z6CUx3kytLbr8PE3AZ4kAlatZ7dq5OSGLI+ORVeXgCsOYqyOINuaq2I2pjTuYGn6Yc7L2JQxpbHP3xqTx1MsziaB81W3NSW6wmZjOGLCd2L2HXbgOvb5RdACirDMHrTx+iDljpMN/NokIe23qUXgGU6jYUIzrVWwoEUv1Nlsh+ozDmDWA+ixHiTZwVjPtgioLUFn2fYDs6naz8Us89TZdVA94vZrplU7aG9RDWV6adCAV/iL3jgR3he98UVv9OIfpzfQlxP/y879snN/gzu3uBWcWIax8f1n0HbDddILlCEhQtabq87Bz1L1s/z7g7+/5ATX4X/+9R0E2YwOEPOOum/kAwA5UF4BoHYloz3B2Yoy6u+EjM6wbX4mOEMaQW2n6DH066TqIFL8+LRjSPHj9CEwzp5+Kt5z9mqG6XBjecoZKYYyfFbKWw+PiJSrNOHRPU78JtSkforXW0ccadqmoI0VmvcgAPeXPPU4WDepTOpDx2IajbgJDtHSliZq4gthQU9ljxbhS4XF93xt0Wdkwf3WbDdnFvdcsNCMJv0kkx2Y9mixvz+kWqirjPNAGPVEc8eatZrupI3Lk/C28EEaKKUPSdyG1p63MD5UjzUKTifqm1I0YEk2BxX4iG0Q4l+CVcAZwffPBPENwfdDIa+fj6ABdjpM2sHSkueHXbbuDOuoI887gsNP2HP/tyb8Zdc9B8Rfdt1z23UyFw/0gYfTr07YeLeW9pe99xwQf9l7T733ghbwLlrZiKd2HNlkK/jPV6ggOi1WkCexw9XlBTzRHC45oF00VTGE7opoyKQPAFoooMkrq4dJzQpaWOrGIPrnlrt3L26lJ3YBnbIJf6KJK9wZqGU0KJfoSTwOhVRCfRfOBaDogHBWFM0Yv4ywmLLdWmF5UrrHZx/BStN8jOwfkP5DlVJ1k3Y7QSURas1F3Kr4MTVT8hpIojbJShAOF1T5N854fjc+coXNynMxZ17LLdBboZ+4QOQRp1miB5SrVynOsmbGcrEvaUrWlK1/yUlOVrP1JLizdU2BbGstyj0W7SDTEYsPCNjFM3A1mfAq/8ROel+4EzlBdGvqoVIJvkLLxODzuwqNw3YuMe9JxQMMSBqs/StPteuFnLDw7sBLihVpgnDB4yqqBs//qKJQ2Lz+JHo3JkLcGwtu+KHhIeAIfdZfqqivSjsJ0xmBQBsNbEP5fyxZhMLHE4LjU7uhWzAgFkOvAsybYTfikWnLk4QfiLBPFLNZ7PVFaauSQYuOPIqIlNs8QR/xVqGPN1dIkF9yIscb9U3wK0s8eKqGSkcFCWrgg6n1GGQF7QQrwqLZ7DJk6SHFEcHRHmWEiEYT0smCtbRX+IEIf5bsgNylMNm+8lETyab4kaZ5M+bkdLKUdZIdurwKglJhFmMRvyEPFHdekYKIg5oGBfV5+ygmyXY+HaWpzaihZqzWoTdEbkuKlTW7XJO0lNQO5Q4pU7blqxECH4IN0bioD2qLNlll38AVgAMV/rQhNxiRh4jpnHX+MfmNpFmD4sAkMWy/knXaXu6CRA8rnOn7iz2eOqqSTCraWR6Phk1xDBqs0F5sj6ULYCGhQuLRw2qDWXygau+pG3tq2ZQSJdw5K5VXKzCp1DgIfdBXvQun5hBnyTHQCl2jzu53iwIu5Dkds99yJixedmn4BgEWaH1lyObRWUP4DBaFtLf/C7vtQbgrdKc/A+1x9YdyFpMtZaZSmqRslzhd7KyXUL8rPconX0TzjzF0XRup3weoRFKr/OgGVemNe9YrJKFqT4Q7Irgo7KW2waK4OClm+66I6anc8SiLkhyC5CpdBaGNoJZUpVS2ZyvuMYuTeqXMKcbOjgRvMWF1Uvuy58bSc1upCfYU/vJ0/ia2bjIC+/XTMORZjE/AYL9+GgZTeHUyBvv1EzHwNMOCYBZDd9fJWOpk5sJ04kppERqPy0uXPGZUkBH2gJfKAatoH6rE6ShYx9qOJxhchs619mf4RcC5Zv5YFmDwF1eY6nQrsKDTKy+Qx+wBn+Q6a1GYopGjNE4om9lRaokWrlIjN23p7wRObbV2bbu1g9T3BGennnwNdnuTgFAeeuQx4zaA38jw1GPtuQjRf2z620RPCVPAYoN3pBqrYN5JJxVdXEM92vbd4PRHcxvg/OcrU/IWxbltXs0ftP1FtwTMQl4kT0x9UmdLhRi4nzcOOWXofV8N2vVSUfitMPw/X4ERvYdLYrN+ehUXI49qvYvWvtKjvchmiMJH78mjqoZPHGiSWNzmWvAzwdnrJOER+g+zzTA0ZQ8PKcry9Vbg7oiPE2T9k6Vd657o8o3+fNVVR2qp7fQWS9XeTbU+RilnVHH4Z0YE5Z418TyiVODnyvXdb6uIYky0KG3VMaJqcKbPb4565T8GdkitjcXcPRNoiIJDQ6ZjzNgGKDtUjy5dXNzv8OM/rrBHSRs/hLjOJ+3X5gXun1DifmcDBKLNZblB4qo11i5Njxbj2dTHON9AOXn76u9rXf3cy2ibsfjGgS5knmpN/389Pt4eJdqQhB9ehg9RR+MJhvJXimGebo/ysmNEK7jPrOVRon83/0njhKB/tf/NctlRnlkqHDX7sp1jbKaBoLNiAAXC2urCiotL06NnTyQZuSqrDy5wa3uKeXPNEQ0A15nmw23PBrfD14bUrLu8Qnfq9SwFGsu2xLQ8wjO6FWSR5NcSAnDoUgV/J9FZ6rLaKSOx4/n86qubRV4CvSAPhCFqhBi/RGoveL7bu8cEd8cOD6Qg9QwGo9UP4wodiTLjQRcSpwRhiczVEG/4A+k4NbQGfrJxUAb8kcww61g5+lb58KQoGWevCqRF4ORO4GxvWnAXHl77q4CP130jHETp9d2WfNDp3ltJxMNpgY8tClMcjzYE2nuATHI8/mgIGqZuivY4E/zxWJmhn1/f6N8EJsj+tZyfHi/8LjRnJeMRU1byb3RpCM3lqT3R/kwYETjxvKs6IC7E5cQOmQUZ73yPj6wuj0IPwC4Ea9bydkzPHjDla8xp2Mc+ECw3ne31mx6WIrd5Aycy9hJXWN6fOplewibQbSWJ3/c/Xl5XNr7NENba3MSK9C0YW4UllKMahHNK+ykTHGsdubW6edBm1RY5QRfaUPnqHUlT/Lh+98NXNpol4uyBCNtjEj75smeMOXi31/6Kc+NF7fBX6vZnhKEtTYgsgjlbDxdeZBFPMxF6Ph5xwRh5f9h0tNMf6Yf2mSQDvMitljZ1ECfmIDa5tTuHLMpOYEWCLyqzcS3XEGPe/NalV5En7K2b7XDWXeyrEEAjnHNqF5/VJsM+P/oM7IqF1JMLMf0+7Q6ncqmGFCM69So9+HY/DouUSW+uyOnyub19OwHXsnKahmlC674BiNzJOx7TsnjGYdljEa/nA+S3il1GW7gk+IkWrOSmRVF7ILOQLwawEP2MZnOVtuw7Jzu7R4dStsar760g4eN4PjZdC/c0LqXrRgbrQ/dNzgQTZhUyIuaWHDDrDrSZmdkyc+WfNDm88cBzmLAzTtfZJmuIjuBMEXZaOc6Jtvo9Oa47p2/IcIcP2cu6z5qem7FVZWtBcklW/n7BaFhWsPlp9A0+CWjhDcDR/Zc1MQNjbQ9eccY++i7GxS0LR3sSrxPO7/MON8wAG7CbxTqlHk/0NAbdqv/XhG7WKUnXs7QPH3kgnOvwXt7soXHiUxG9qqFbJfQUZJKqRm/004q3xegMryp+G0NhlfuN9mm1ioAeuvh0c4nefPjb+0v0/sPbHy7Ru9fX7+8uERfmvy4eKH65Wq363MwHQnd7//RNKKoDl29DEl1suXBqWr4EZOZ1svYB86teb3jMDyyYxzkVqCOKLsqXh5emCpTDfWkCBIuUVLUnISyocKMf9jwhjsQlBAFAOXQTM1YlUXzFimGA550zwtRaD9wri0mZ01eOLhBBF9/8u7O5LtG3/14M5Pf/bmDCXP7h381l+uuESkUYEX1T6F75Aq9tk4CXD27o4hsQ5pYKqRBlUmEWkUv0LTKrTE+uCQmTHHHWB1YPlEZkPW85hVtDFXigi58+fnh/9+P7NwZ3IfAfXl/9xf22ED0XCLOj+WK5bQbLnrKzPZS5wIweRDz3949ZDpLm2I0pwVKtoz1mAYNg0hJ9X2kzARoGScoiYgKasFTo082r/9CKXM+x/v9X//HpBimBmaSqVvPPi1ntBVdqlkO4bQcNfL51GCqEGorNZMXIhB8gwaxFiUobSQQrnXGncLfld/RnKDOf6t285mCfxY/ofprhdVp9S4SLAUJlCcP30iXlayEwcmjRsjcsCaMF0QjyKqYywyraU7YzZ5A9E+wRBMYGEiTjAupatI8fVS9pB/iqU1BB2LeohNY78Wq2wIjrN+7kg9Cbry0kujWsKNvp6SUMb5JecBOeDjsNNXSG15urPM0TrJduZYbGOeAFUYIu0qrnfWtNl8iQ4vU1bmEMeQmjKVn5czxOReyyOixO5KJHUmmSMQvd+u03v//OUyjPu67sx+ZfVDFhy0zcR1dlxXBAGxJBjos5a3JB1VGLKCKic4WZn38BnXN3dVOU5ayQwyiF5PoYqSh7ZSUFJR+1/hd54onJrZL9+e6uh+5eqZKwPjuwyGiTdFDEEEsVn+Gx0zAql5TvstDS1P7KpeanWizHEj9QBSHPxb7DUtIdG7TprCCWfTk0hzPfNsQ+AB4Rol3gfg5oditYBit0y9OiDVXGpaSbhCBYdhJhQXrcbXrZEiySI1JEpJSZ6EtwE5jykJQwdYk2ZMuFseTcyt1jvb61rRN2dP6LqYYKUJtEg18xfwZNFw4MKj4WJVCKIHhUll94wILyXKINrpRSa4AK7203bH0ymB0bNi5QTdc6a+dMJ1oVaJU5nG+Mg7VmdhtsaS/VHnusx/bykzxQAwMf8BHEPkB45ayuFttP7wOl1AiDVGoiIMHBrmEljpBKyb2kikO6tCQGqk3jMPESVbZwMpjYOEkcsXKSsiSXcGeuGDNGXIhx/wbCUvKIQvKG1sEIowwLRaM8wYXv6kLm0R5hA9Ax3WOoh8f8AjB3lj5PF1ooSK38earYtOZPubbALPDViqtbcSTBmVZn5o+npXCfDr8dSRsaxpOHi4UgmhKOXk0dMI1lxlmrDsQMtvFZFJgBX9gG1SKDpnhdU3/HuJYrU0ElMJNbIiTCGw7h3EXHdKMdbG4JNMRdWWVnP+rJ9ELQe0BbKnAAWfXUb5/8CzoIqtyIEGeVw9rGOKGLA2dfKbQhpvgFiZsuGQ3xZYD8FtMkFwThLEtAt29povSwbR5qa0E8i+tgMdPD7oPOZXx3dTNEKfdc40a/p1V/Plrkw65yrSuVl2b/NUtfrsAF9YIDOhTtSXQPD7EvhoQEKuU7h84ZSv3t49La3ipONz1gF3z7+IgiHnddTKsgf/8kIH8/DuQfngTkH8aB/O5JQH43DuQfnwTkH8eBhAPnCWCag04DlegiE1zxiCfmHPPpYK81MjbUcrAxspz7qLRGXEl39wTw5GHg1TbogyFNqrw2xM0Gyby5AGMf0BhWS92Z5rkSjQi2GnIrcvMw/kLUOY7+LKBZxlGZQuCorVNGDr5RDQQ+Y6zbmFvdcNBeLQW21GAdNU9cmTfWCPXELAwUko07sj5VWIZ7ghO1NyNdoQ9QVbTXs/rp/V8M5v9AObtn/BDyTV6/v3YfpIwqihP6a7MXWwXeh6u//Pjxo/60vQDBoRL49NvvPvzF0gb0KMNSmjrzCT4Sgb67RIyjPNPzDr+RSBGp9FXIvlIGKd99+HQHlA2lb1991+O1ffvd1Yf3qPGVitcqE3yTkPQSLiv+2gztnxdXJQFBtrkk8Qt0oaIMCalegtH/niPBc0X0pW7PpXqBLmiUZv47IUJv/9Qjsz8Fv9gQyZ/Qxe3t25d9YvnTx9sbVPsaZQ84oXF50XuF6jZEiNS/9UD/t44vXlW/qDUAhGXgJDm2ydTmCH33zXdg9fROVkylXlOvOHv13TffBbE0xPhv6EKbWF/fvru76RXmvzWE+W8nCPP27rZOqu5iqQsBrMCqTRw2v3g8upLMAMX1FkD+8dW/AYNLRLeVfqIDrv22vt4CyO5KNwU416lCivN7vR+3lFG5D6jaAVdz+PhKf3WZ0+DOOIHyRIVPhMEwO/vFzVKTy3TSA1hDzFu8I0x1S2/GFDgAt+ylAwZuFpmVxWFPE9IMD8qzIRvCf2TPh7YIiCuD4PwP7dWoXC/NyotcScr5MGtRumhD9Nmux3aprxJ7MLdbjU3tUOvBvFXaoPlwtHcPXT02onletQ5ir7F4YsxhjBUOe62bz7t99+5GbSk0X/ppcLW1QtD6RDNAPMiG4hIBgcOuuR2TNCYImxC1IR5h/7zNBHDoHLoX1VrrJC9F+9gR6yOn9k7hjm/7nDxk5N1l32YaeONN1+gvLEgRK5oSzEwRX2gtRI76r16i5qQ5QgB4hJl7AfOEPCQcx2iDE8yi4P5FjUQ0r2/hPKIw7DvyB/yKx5bwaRl5S99QA4Ho6AwVA1vPztZmNXWbtmWR1VI4A6Y/FMeOBqyAxQdFUgjIKdT9mIFtjuZ28wzmywwGlrxDBeOBIZeDQhdXN5++/uFvxu80KM7CKb6nH2PDWV52znbj642LrhY1rONfcDsvdPh9MkcyDClcTa+KxJOog+a56pi0QE1/qHYNV/ZbbiZmLtFQ/al4dGFk1q97keJH+PfLRmSBzeFQewjr3wat8yKM1BHSpvw36MKd6owP38m90QUnSUDfdm0vbyuCyRHnnv9w9VDNc3pRDPXu7iZUCVXrirRVpnY3pulY5fG+vTRHFa1tx82PTshFtfikasnTyse6apjuw22lTfHrcfenO3e4GLodPWNTovZ8vl7bJWdDuF2GpzieeexX9qexzfARDODagDvCwKZPtTVUnt9cu+C4gOHc8lHOIXbzcOOjbt2o36OmY7g49vcCByLz/JgKiu+5Qluet4pojATtAXCmRdqaKcf377K2mkYvUv19V+eZVNfTsDoAQYfJaCCjy3nbs+TvPOH3FFeOk/80vwmcKPavgztcjjpqSjB+GQTHb78IeUaYMummpGi1+EBx8SHw2QaPqipyK6N7vL2vSugv+t8B+cDfxvb/9MnCMR0hidDqijiTeUpEczmNXmQhQlNKx28Ev5/LR4jQD0BNG6AAEP1Zk0DXlYroe/xATMIN5NSAF+fCfg26S/tejM1d2NIEWK3Y3BMuPtNd4BY3DTQQr/LHcewpwYzmufFYHE0e3gkPpAgPUPDNWX3TzUjxjPrrjg/gdae/XL8j+g9TLBQNphb35T3fuG/3DoZvt/WDZTiTYuEaGvpiw0vc9h1Db4ZuBClphbgb/oo8dlpQUS4VT0sYmpBxUUslqrvNyxY8zKugFTU+sxwUaoHm61IQJjWpIySy/ggzl8p6bXM1XTS+ngmIGnkgzLmZQ6vsBKUzcL9fGVDXb9CFEZw9w91LEI1f9uuePT/9VdkCqZEKMkxJuiGiXThmNFfKFBHM1FGuaH/LoLpruxTC6APWR2TK4dqhNaasVBcEYekWsV07+kBYCXrs0cjIoZ1Gj+Z4IQbCTu+55N4QzIrYkngZQB+AcD+gCUfNhPksTx+tjZ+FQVNCokOS4RLfzX4OHG+BMKIxujAGalfXLRlGgIXAzQvtUAgUVoomj2jc0VFLkCyhkS/97PQceaDsF0NYHkweWbTug7XhPCHeeIkByK5ZTCMMdaO2TgCm3k/5Yq33FmWvNBj3EUX0+YUurm8/DhlJ0PZAMwj3x8LcMGf8lphSPoP1Adi3q9ntIyDrNYbazOctdjbU5jZLcb5aQ+1blIeb//50wmj77kyF14FuMKu5HeAXIb8D/HGs42GoY6bAgk73RkiFa10tRxtJdqhAB8I0RM5ewTNLo+Eammg9RUkuFRHrPJ9+Z23P+6dPZW2rHxMsFY0kwSLaO35IcWR6I9sR2shu6d+J8+5By9KVQ2y8Ylb5ziuVJl9N3c/3gQiplaO3RM7pCCz5ViM41MqaWPEHInCSQEjU/FNgqQOzwBTYAplz2YOWsaXq20VoSNfeVrvwblADgOmfd9Xmac6ta7dRY/H40uaH5G3tCc6CLeLqA+nIdewL8hg4XlTUZCgbyGmAZRc5E6bz1//VXd4CBpV3heWce1Svmw3xKNOjGTIYQSSNCVNrSdRa0l/DcTjnHhQ8+BcDkxmOCOJRlGfUGKMp1v9jxttsnoeuXVEJPVmXxiaUZJdCzSioQKtwNTzeJxryaDwVz0YitQ3Lt+jqX//V9ZVGG54ziJ77T/yAb4Fa8bcUM7wLr+1C9y1z/yzLAw/VLcV5aHpdpkvUJim3DNg3Lnq1qbGLWmIiZxAQo9ccTRLaapKJPI/0ayhCNddhAu+uNma6XmbDKu+Rxwp+2C0k2ygytTZJ7EJ2TFR+DbW8LApHlTF3lCGM/vjKZtzC4A6UxfwQXiX6eFl8GKlJTZ15GI3wnYVWignombZGjF22hmIBQRF7Qz4GCvkv5PjKBKFlmIpq8kYZjgGRMPVYe6PEfRXfqDIfhx3dvm2jJyj8VAS4t8cRBhdT6W4pZ4BoX0oqTGtl5jowV57CbV2FdaWo7kz+hPdNoBUWKMUxcXHjLhPjPVdWqW8EP0giJKQcSMJilOaJollCkKT6PzEjHBZaSVHxctvkCVXw4aIOKNGXY4U41La3y/BoMxpeabOLSIU3CZX7WvnHwFlh2+HNuvX/Rjbo1tCduO/nrCtU/akig6DNLMGUKfKoAPnEa0ZoI6PlKuYdyMYluVdXTmXqO2U7Wxvl6k9LuIRF4pjp80tjvv3NSPd2rHgLk/1B65+E82wdk6T1TjBZ/ehDCGgjTRsBbRThJLLmAdTVKV42N4RF+xSLe8p2K6+XLj/JTWfLQJi5O9Ej98XXNSuC35Kvy38yTD553lkPUmtZogHnzSDrAc1R3ajsKB11NZduAgyY6N0SG4jJFc7Wc0XBez3V39ZtNKIZFXbTgCw5dxk9TbznOFpapm4VnHsRyjdEMGI8NMWrUPHL0MtQ8YHKXuqPz/U/IHkfh6qw0JjA3Wp8pnV32aWlRZDxuOYVKvm46Qo9MeGMnh5RXZHb65trZ1m31dGU88zu01VHRNkktWqDpWJucp2JXyE0UQgieS6iGdW71RXQ/8BDuwlA5pslMYTIt2BEPNAr7RQACMiiC/vKdwlMwVF8WUjnZSeuByI288OCC0KLdGuF6tv1TAZqyOPQCUCbriw6rmTefF6aCqNohmJJX7oSHebf1HjGUhoJbv2ngwDOKSk3RwXCiULb5Ppy4gXldYeZX65ngo32VCq8EzhFBohsaWqbsHGapi4PhpJel6LuTMlBdRtYqHWwm2TcNol7BHQL/claBAtpZPlcdu7Vzaf6m+lIU9fX7LYbUBfV2iB5oPJGH/E+BlUmXqu8zqbDZkPD7TZk0p7totNSv+KCWNEzzLwqpIUWM67FsrQ5bBYFiXsYFrB4vERXb//CGj0MLWAsEa72EnR1lsxBw2OCcJLwCCuIXr66+dQ5XlNA9rc44JhsKSvqqLp35lIZXujfBIWC6BblDL5LYr8pkvDdbFfwt3wnIZt3pEoqavEtopaey/M5SKcYKopwhiOqIFjCT73Qq/aT//jSMSt5uGRaqfFV3P8wUgHFPlwolHW+lp52wrct4Tr1ufwl5T4JDqeEtRVk6YZFBpVmNARQYF3ODwiWhgdQJXSPi+EVgb4oauRZgV4hnsOgfl4CSSvhX79J67IWvzbOwAwsAfRbsDGHDPsEM9OFfAYtzaqQREe++j/CTvl4e9u9TxzgA4fn2XYuJ/qHksffzDAhR2uQXDK8I1ucJ4tEHZWv/Bn0p/fzKQP7/s7FmfAAryCqYvdwrrbDb2u9j57/DPeKj5wrtKUJkUepSDr6ivHPYfL4pVQ1wv/Zb2J+CVn7++luZGe4aXzy3DFqAU+/6xtQB6O7Pam+x9oSGUXdLRTxJDHhoOYvRdHjHWFEYFvZ1mUa2Cj5Ggdb05tvK3wqHxj+yBu+BAck3SnfK4j/dw2PIy7icAfpSgtiEwW2xxJyUYRozH7XmwfQUzhtLrWxB0hx66ZCqrWFwVoPvB1vKQOW3p0DC70bNCdUctK/a668KrIEnwkYlPvsxlXexGXL8Am/9XbCeGdI2WVT6epqqnaEEAiCZaPUxEQAH4HSWP6a2Rzc744ZqdcpCctc4VYf39By7xG5odTqDx4Gcd7NGAmCfX0IZlvqwIBy1i35pQI73+O0mPNunhB/MS9jk/tHmc3hNir4gGV5BvmtdRsCsrZBmfOB+quN8qwKpDseZ958d9ssIyZM0S01+e0lEE/8QfHsTpLtOqHM3xRvGpiPb5EgmSBSo7HBUSGFQNkDTx5IvPZgXEovOJ4+uXRpCJzR+VfO65vrIkbYrp6O6bqnrcKwJ/LWFAcwnld5sIry6GC63H51lEeIfv4CFd28q77bU+z5SsQOeAq/BOt8CdYJ/MwdrANZMr/tOJ0vz3a+ny/Pdo2f+Z7tvrzLNAB/eZfxA//yLtPxLsOI0utmNn0tws3+/xEW30fbs6GDVuFfhm6ECx/KHx9DfApvzT/2hNwJzGTRJ+5ZzMmdd04K1/OXR1DzM1CaP315/xwpoC9Pn+VPSzj/DK+epQ0QirFsgjpHcGyJ6nmExVb6qwdCYwubJmdBD84UvU1TbQEuFOYcPhP6GfQxQQN3OBrqIhmy09E4V8p1Chbv+FMDDTw50D+zGAecLWiMsvsnFKH/BCouq7V2jKf4sDMe/yZd2F9upObny420/PktTchv7kb6T/Fm9ExeSVqwnmm+yZhs5n+2DGZ9sBbpJbKZXzIsdXnmV7IvD0IN2M91X33J45p1sw1O5vptlHaZHDjTPogLXIFGQq1SmmFJhFBXyWX7dhfvvgE0B9GlqYvhACN0YaPlL9EBUwX/oYhIKcPdKXwEtzp6lyhP6gFWIgQmfvnWArb0LSjsA6JMkZ23m9xIMIZPwMPXEV9dBXPS/P3NzBC6KFBdQTyunrQrgeX+LefZDzi659vtJfpRCLg33+RJcomK/7R/b0+t/tE6wc4+5UwzSrOEKBJflpK4woxx9TFnl6bX2SX68OHdX2iSkPilHX6gOPcI67hvlxj9HLIKT336rVf8AS6GY8e0u3pq50Akitp3fn51KXXZzz24MkEirQi+R0rkPq00GnoBZqBAu8APwLeU3M8auWWmMWT6dQ6xz24cJQJrFxizovflx83g0+Mup63sTOT3GcYkS/gxPTGdrWLVlARnMWvmDYn+ixdni0cZ/eNxQncd+JPYGy6+U79cWND0c7aCVX4cjsuUUlYxkbSZlFcFeZJJ8qYyVWXlY8OxRH0hMxKF7bf+B/25MJbvHIF5q9y92flgVXgNAJbF3ryq2UEZPm1Azzwwf877T/fN4iT7GWLDq5cKdKHNhktT/lobvzm7Z/zAwvsmZzLakzjvXqQn3X8AZY1PlzKc06iu+AB6DNmQx2Po8LQxVfU4dJux7sV5Meu6wFS8bZ8vKr8i86eylN6HHEBDaxI+LXKLtjsuwf8qjGabu6XaeLXmJuOeLJbWhCwKBzyJzeiY5/vsTv3p1a1fDzcTNbLrGy+zPZdqvQxHTTrEduQhPI6xPSynPUQu6M9swLQOzY/OoXlDWEzZbrVaTfVjzonuNLvDWgMdNuicWAtuPryXbbTNmxmZ6/psCdoMlWd8f64CDV6gF7y4VvmHb9BzJAme0O6xVtimuKlmRKCP5h+3noSroXfqp8LVrUHmQ6W1x1hsfANtbZYSmq18AfnklpNr0lmCg4c9wZPEcz8uHJx4Q7p021xS3OZJcnTceqVZPVvJNk/mU2uO4vPXazWkQcXmrzsTnLse9nrOikIzRYkcdEEyHu1fwnv2rYXVXPxn0LQ1iRRLaJKyXXh7luu+2J21JR8SInoCrdvyX3YBdOBK/bP0PFc0HS2bmj2v6S4muQL2eUyzm9wBwAqdC3Hec6lbEzReCX6ZQ+f6AmDQaYq3fLIKqtovZVBaP1/KoLR/vlRA8ZD7Etv5pdhHG/CXYh9+4F+KfTS4OTQPPMnTuZ5hDbFneAn8qwEWNES+VF+wP1+qL3ypvuD/wJfqC6cN2ldz3gflDCUOfhrY8+t8vdEsGNc7/iGtNI2/f0gD3eLJY0YETQlTOPnv//kd/O7+IUUpj/Mk2AH+wd3E28vGiznUuD3maUpSqfBJjlQvle7C2I0PdzEeOBU2D8dLOLx9Oo7qKqbwW97ARVJBF+JVWDM48UZO967X0UB8nIL5Op3se1m/4SmmrE21U/7dsh/KE0jbXZnwnVRY7itb8639VWB/uj+XG7LZmkISpfR15Xv03y+kTF78T2DTVnij03fuqYGHje8P77dRj6yYz7z9mcuOB43Ziz8X8/pXD2XH9e8P/h74E3xt//nXd+h6fOCyf9x9Yx+AB5UF68MXTo8SOP1md1OhWstp1TpJnrqm10DFXd9WJy5x095mrjXwo2mW0xxnCASq2Y0LzMQ1i3hK2c518QFbiYhVEAXPwy6Z6TA+5GrHx8DY0kSRZV5HfrKkW1jsAZKSNMLRHni7E+Sd+13gCCn+Xp4hcs+FWkecbenuexPF4zlZfKdIFQA6/Rg5ec81CUzZZW09M/Wl+gpa/iiUCR4RKdH1G5eCXU6CwvK+XFteQHmmaEpWkkQz4Sq5w5OgcBy6Yai9ILj1QDAVQ+lRs3TNldXGh0RWci2kVpQ9UCPOGIk0a7mypGaHzTPCqoxMfxMqW5gv9f7KkxhtCIxN+oxLMH4RZwgnif2eRHEutCJiXKQ40QzN6+iIwfvifE8Yuhm5zCM9B9s8cbwQVoqkmSqFYKdLUhYRRE0zsg0hzDxQkrhnDDuiVnsaOOtOmbUK9hc7ol6giKcpZrFEFzBpSHN9aXED1jy7RDF9oDHMXtMCQ27FvojSeA0UzVQqrgdhFrMjLLDq22R64CmVsuVHOH3oW0wTEtth25xHPSkRziVBjKu9XmwHLJFdvqYyBJX6rGnRdd1/zUfNmPV3FeeIJ33zG6Xxatd6UTl9jI05Fa5kl51PuyjNtOohmxNVj5uCYm6P80AEqa4aLvT3Bgyv/WA0w/BkbXh6PDQqh2fG1YNNK1tvQkYQnvFTBrydfcFapoRIMQIgUc7LVvDUdDQ0tejMbir0R89QDoIqRdhTj0YSFrvuVpPGQRVJlzuogLo7URN4T6hA+8pu90EQRx0npwi6iV4qbs1g4f6b14axQnf6H1QixtGLFD/SNE/hyy3asOWdmt7kCmFrV8eIskhoexHsEM3siBg5ABnHFqRHBsmMPFBzDJ9XYkWfU5Ly2h4z55Dipgxvnrl3Xq3n3TDb7mt3QJRmjSDm/6n6SiInakvLup/QBVQBWKf4EcbysryycLbj8aZ6YdG/efND8LoCV2fX49WNx37JmUqr/lvMLniHKRCh4TcYVCBo3O1DVxuN/+TrjeNphUE52FOKSqVF1OVlGPxKXAiiDnKSV+sNVniDpXkl7rVa3ZDm439VimkAgnnfx694unF1cvgWxU4UmMXV6RuAC5TuCi5ogRSuCTHUcJDZkk4Q3QdaIOHRvdQqLqWRcBFh/mo9BpXvPes0TOXhqsEAROv96BGT/rgXydQs84DIO4c4YJjINk0tpK8Fr/kNkX4LY+hBcb6AlwLagLlADeOMnFOGwHCsEA3K5aVYghuxpH/JiaBEzr33teBsWTfHYtied3jm3PWliBwU8kiifJCLIOUitMJOEg6W925RaRbadpZ6k/LDQEE5bMsIyvR8xw4Wlvf2sg5g9UnTZ8wzSYRaQnKGMjityAHFPMpTcFwPkpqFtYzQHBbLZdgGNAVXlhAUUNZyGikji2hhGRkuw2RkrhlLyCgmCZkiI4toYRkBuoEych6bJaRk1CWIydmYhYNokLgKcAsJrIWqreDLy8fJVyRLAmWCP9BY60mG+AMRD5QcNByMMiwUjfIEC3P1KxBaH4Kb4RpZKlHKJWSrRkQw18Eb2nqbGF1pqBfETrqF4Yfdmm/+vpb0V3/dlx4fQtOF0HPl8lNvlq3y3xexwsvCHHgj9X53SxOyLDrKYvJ4BhZDKPuvtXm6Jo8qGDnQT8E6lCZ+Wyou8G7hWWAS6K/TzSr1L5d+oLCSYcF0hfdMuU1CzsCw60WYBmWTaBTOSFgC660gZJ3QQKjUlMGxvO1iHTe04MoIEKpg866QYNGbyf628uGoUujmNA0/ewjZNZMKs4g4yiH7EUyQlp936jlfcDWEjcWRJLTT4kh4hJM5k1TfaoLGjYWh2AkXqgwmcLNILdYeYw1LfUGQK0F22kiY3SCydC0fCB3IBI/zqETcfDXywTtgoW/ws8OzdE+Fl8r5oaXyZFi5DCRkn4JLEz0VmOBJou3U+d/9C8pjIHqxbnB0r7Uni9fbJJf70PKbEIz4RhvSeMNzEzLhIqbc1s0lgdgS40YDq1txFFN574x2/SvaPkA4S46VTKEtF4UakEjtsdKkjZZ49/rm4VtnriDCdpSRpuOw7zAEsSxSgxK9dtF/BrY13qV5dW74hqDLh7t37T2Va81gAGwMIUcgWFkINThA4/b3PBPOUwpCNd4AqmcJukjlSzN4PT7zbOdWCpFojx/8iQoy0/d1PUJ4maQrskJu/b5sLKYf7Gunsq/J3iqtCOGN5EmuiHlFvtTXQkljYmJibCzXFn22y+EzvPp8xg8ELOFUfkaqGXptfuytFW2I0jMdcabIoyojcWKs8jQ8O5bDcvNjGZij1sjVSdLJEGp3wC+NbySMNsFSLQg11dvF7YnLpmVyWa4kjcMiLmLsvGQV5/d6mJFte9E9tPWWMir3HYHBHkNn4ABfVwof2ZBSGIVDFjfHMzxmcFaNLsgOixhWRyWq09rR0KDYxnxXAykxa4vMqnCaUHUs+hg5Dec7XwekFXvjbdDstYtaMaIt5CakIUoouBLhQPPStTQpi5I8tmq+kOmeQOSoBNsfXfkUkpfo5+J01FoJ4Ti2jx5W97iIzl7Vs1xlwIZAcwahwtX8X88qqsrZTzXCzCncngNv7a9gNsfY7LEOzsMk8Q/FcnerpxrxNGid1MWCFRyVNmgwSrjsfWv7O88Fw8ly9l7J4JUgCQy2UF2gEPSpArd9fX9D/xnCg6r1t6zxl2UEC2kfyMBm6LQAWxTrFiGAAfmVmBFheh3GozUQT9N2kDOaXQMpgZnEdgHYoEm3mOwoXKy5O0m8VN1nYb4tevASiwechLeQ/RqJ2765ucZaHvbmIsBQSnbYhGdevPvhZXXU7RF7ycJ5OnHEYE2vFV8XPkX5DMYOp4wbkZl+L1EgA6Cbq2KqPLRZIszRtJAQKhwQqI2qkRBY85149cZcU7Y2U+kJLpoD+VVhopohaKZGJ/EIDvYYHfY0IQjXA0gk2pOkpW4cTUOGsvq3KItphJWm5W7VzLSS0GYCRnuCH47mC/79wHFsotf0OaW16TYXak8EiineMS5pR5gNwSI5rs+m7+AS7EZZtnfCbsVuyFabOHCYdlTOnqzxAEBwmKGyGoNyJMvTreItKc9Gt5gaJ12fsnvAgvJcmhrpYJlXTjcb8hxUAF6KYSENqx8SB66GaM5KGa1rIjwV6z0X7ZvBttr+2hO7tupBNs2fT86BAAPVWsfd62tGNUEc9o8haT4LprpnI1VFkwmSrRO+W2/y7ZaIJ5GTuftrJFjYy7/RNX0q1v3cpjhJiLADLrWT9Xy4dVY1+zqFUhy5jvPTSQVHKsdJcixcTg2ZQLWeIFlbxkdmhMTG9I3JA42I2VFbrM1WfXPB2y2J1AQBVW2SJ5NRRTQVcwNvK3NP2S68fLQIFxOVICnO1pmgD1iR9QMlhyeUFIDJzJUwO77i7JXZaDbhQv8xWGkJIQ1ermbfbfYkf0KxaAPEoRgCtW7LPQ/gXaZekHDABPTe28mjEnjt6VA4+d5+k2Cll4geTES3NPIehX0X3z3B2RrKSz5Za6jytUHSX8sScnqyNDokMxyRWk564bRr5aBXfz7UH5w4Q58Yffz6LWX5Y9hgzPCOrBerXul7WalUsDTLUJvJVBDjwy+dLyt0E2pKb78tyFYbMbzqsalR9Hk8A+8fGPJs7ZuMpkEl+0rVS/3hSNEHp//6cnpMOubzWv3Un7GKzrTqS63kklWVwNstjS6LXXBZZui6RFZfXGN9WDx/uma+g8clQQWbjMhBo3KJ8mfalkVefn0CBj7Q88y+Ec/2ivO6Hj1bbOPKXtcAj9nop3ITh38msdqg/wrqRmmA8s4cuM3aezRcgls1LJpj+yUnrbrkSw3Npc0EB1QH76XbOyCTEHCmEdnsg3NNlgnkP9PYbNbAucZmE5HONDjL7WyjsxkFZxpdmVUhZV6+xpWWzQwj7NHqa9v/JtRMaUYF7zjBO9pvS9mXQhqk9710farzeen9yih7j4A5NttZj4DK4IacBjNO4VlPg8owhxwMMw7zvAdDZZyDzogZB3reM6Iy0EHHhZdwyHQbeFyM7IozLlDDhRtVW4Q03pymRWNtlnkY/JHCE8ufvkNcoD/8/hLFJDN9fxFn9qFHYbEjCmER7akikcqFKWVmL/kB72rladwOPOJpRhPbwCzkIyrvlZLGhKlzxAV8fP3ush0XcFmpCeXzc3kJ947rgQqV42SRYZWj8g6Hbx33cnmWwwqfhL1jMj72c8yU4WThewfpmym/J9KFMtdi6A3lV5YPvLpcGleICRKkEiX0niRHra82Af2k/4IEz3f75IjILzl9wIlWClbFVdyqfIuOPBcVv4Evhw0Vf++dhPWBqn35xvccZsSE2RW6wKd9zQ9M3ZaHH7jqT3UbHN3L9S85yQPW/obzhLQC1PtyxkVO0GFP4E1fEITrZzG4xrDZLLI8fgwKW6pGiWMQusv2tOkT89ZUeo2kskoX3MuZIBLKAkAOBE6Lk6gMNPYnc/ilTgWJ14ruAhlCEw7P27I4V3mE/k3zudNsTkw2iTizA11XI/yCW+KEuBPvQGphhbX6gpngOxF4IhkS/GGq8vjre6MZH+neV4O03aKxcQzl4PpG1MTdFQp9LvQ0uidKlg8nQ3CbUGf71bNhN6dFDXbf6zyOn2ptQDGsSUsDUD/pyjDYxy0MUwftCddFFXTHJQ9H3kvjMnrP1NGEoHRQ3q7MZ6PS5lTlZytqBt/S0BBxz9hb7J2t8GmGDcn6nfi1mfNswN9WHvdrIcG18yo4XxW/EBXq+CyHJYtxaYhFEHjnOqxHHsiV3mZn29nA0uxsyuydYTDSruCYpaDWAuhHoQXdsHgjvCZey7UXb1mPwQdgGeVpDnq8N1Uld8V9trSKp+rNzjIi6Mwb1BQz1QOshRcNMcOeyxDeN8qcu11Q7NmEBwI0KyfZursC01OMy51nWwgh7T3Owin9g4CPFnYjcXfIkjkfOLN7h4KTEQ52tZ8fm+Y2HNqRRWeEdmRRDZorhp4zaKVVlELX/x7RmhM+b9J4bFEi/TEuFLgwiqJE1a+GiqBbJMir+IMDhq9BVgOmTNZAWL2O7WcAJN6VCdftQul+vE5UR/lLUhXV8fa/3oZqxuu/+Ys2terI64+eVD3e4holuM/wrc+l4Izn0CAE5xa0HeEb/dca1IIEPDX3FZ0/vQLWZ0NiOFQXrmakruehhhRNK4e4gYJOc7nlXhtyDqThPNr7ZtL1g4bTIuUDCnlbiRTdGcDKA0QoprY6pTa5ooTLovxCQQllQmujJBQ+i9qlIZYfqO1PVG0l5dpLWYOjuq/7ShVR1rZqJy6Y/v702rqOqbxf595nsyly6uG2EKNCfME6jRO22w+mS47CbRdOfx1+ExrguxL0WITzLk5f3yKcJEXRjv55kxNqjcwUGe1pWAR7qn8ARUJrR++/CSvizrb8m7Qmag0n23Bm07u2P6OBOkRRLlYjpAHMVQMZjsyo0XNgc5xGoLOtCBbH5loedCMbWhFpeEU+P3nvYlnogFJpZo4nhTfJbMqykx1EFpyD0XJDqkQE4uO5pooIwVvZG7MMB7XCcdd+rT47t6CPYrYpAp/J2kXcLbFfU/yojbt4vbBe4BkZXnf6pJV2lh0qlSB4thJ/YUWwuBLQ80JivwKd50DwxqkuNPeLBjmXJ+6bH9/+ePdjEZ4+pEspOlfSQIny+v3tjx/vJqOUJCHR8ihvf3z749V0lItG75coP928eR2ecevKYzvKHiuuvPf63wFXHvxtmCvP1bAxbe0Ht4S0HSvl9+i/X0iZvPifgKPPoUajHH3wrV7vmYwEztw44Cv9nr18M4t3z5EZhxEC7naP671S2VoTWRsqayN8N1MZ3p3YCGXPpZo3iNCsKEc3UJQbUsxPVPPu564SkFjuFJvFbn12VSdfGU/6N9vdrtrRPYA3Itls3dJ9iQ2GA4k9gP2Q9pjF7apac0KyHAYjigX3lEqZE5HlMBhRILd8TkgWiuMU6AA1a+dp/3ofBERfR+braRAAUtlqBwiBNhqBSscetJsFivYEx6Ha/baI0VPBLWooAVyZcSYJ1Oh3/nIj8wB2vDx2GideDVft2omdpAvzINtn622WVgyEm59v1j/dvAuYCBuisHsQvfn55tVPN++GGQz2wwMMBc1ihKlQjgCNMhbs90a+CxZjrpsDEJsY4STpMyUyzpOTjAhNYCRm/RmH26bf1Ghqkl7Dwc6E++kyHeY1G+4aKQZNhNXyfDCedYoZDuUSTIIA8VTRJYqPDKc0QlwgzmKir42hzn6zV3W/Kt8Q9XojZSWcshH5MId+3Xbx+KY7bia995L6raQoql1UVylq/zcUxh7LAtD/4aELiTO4+pJKyy8gqswp0ui7n1CpCDM5NE3ZVDLH22k+p8ug+zwpa4FvCAR2UUWxIvEl2uQKMe671R6JKga8QtfbRvIY4+zVr0RwLQt1zGgEhRBTgh07nCS+Wyj0lnBFnuxklK09sCCVgN1NLo+XEH9dpjAxXz2pCoGCtuKGvLnCkMfCJFmhj5hK/0PE5yxdpfhxHe1pEgvCPqMLW9EzrhTngVqDxipFVL3Uh0qexGhPEl8A5T0hmRGenZyEH2wzG/M6r45oy5OEHyqB5VscKZCjh6Bbyma5SfRAMcJI8uieKHRxd3WjFQYEvW2wJPFLJ8JcXzn2RPgTcCWvpFXtscCRIsJGdfKtJd/a8lW3qcFjEtlmX+A2WN5XQcnGQANfiI01eb8eQtU9YVwWWo5aFwTSy4vA2crQ1knLc3v68FwSJSwyM5PN8fRfM4ptMNchcGO7M810AmgzcUHtbzZnsR4+O+vTlOXVA/lsR2JaA/n1Xql+ND1okAYm1ku7Z40GtFt+i5NEmyoHYvIsQyqFsrXMsCBri9E2CrLapvEnW7vT5W6G9R2ylofWx5+tsfA5tIS9ro4lxO+OIguylCB6ZUxGymAna9DffvaQvZAcOgohro/gba4PFrhhGA6X7h6UJwodKEyAnkuTaPD5m88vQyKAO/OS5ocG+a/O41Psxi6dudCstLVlE9Q4/Vc9E9eC+AMzTgHdaHp/WWsOl9CUKoAJ5ovlfxky27IUKfBKaxNAj8v2ubH40cWBi3tpmoZsvXnqWYq+svvpK9ipXzn7+6uXgXTohB/WC7h5mrXui1u0awfOmak5q6VDHiNCYs/MfLZfWmuYCd9BS06eq8+h3G4s1NpXt2TqUCoR0rbH24DlV4czpouoC6ciGY/2a8NyvOyhHBGYTlrALajOi8Gl2glSD1q+Mb/siFwOeCqK7zl1ekrIcg0aGuOhqOBoNMENORdAv1B1PMXB8IGRsu1+RkTjfnCpBXEwjQrK7giujZBzhXlcnA6bMbCwqhDMoz3CzsCBphf29DLBzOiqmJ9NvdYD/F1jyXbwJLJ2TE57BikqfXA6lwP7w/WbViM1uI5scHRPWKwP4ko4Fw841R2wmR9pKp6WE9Bls0nLmbxOaCUSP+dcErFaYq6g12zCdztSZE8OwuKZnxFzMIErzooCguvTmFcouaLQtbkfAMZ6wnEci6arsRfK9Q2y3yvuwTWX9kgMgRfNHhA/c6nqJU4K5obuZbPztTYJ9ElB0Jv3tyjh/D7PyoeYtR5SJ05NaS6L5eoGaXLObCm8b1aQVKJcugeBiKdpztx8H6jag2xbRK2sLxEX6NW3iG4RhlLr7p4MREO2g/3yGk7toeZD3yi1OWBvZ8aJAxrjUBoHl0hfMC+LK5xvIbXN554G0pVqFGcYzlfFSVitgnHos9XgWFwMXtU5aC80wLAuey70IjFHOngq29d88+XKBEHZvRatoD2qyDraY9aqlz/PIA10jcP0egVOATBdz3vT60bRbfsQLiTv/CpwPYcmG2ExjeN9ZZccfyACJ4kVRPMc1tappJuEOE8JFqS0pjzXuX+x8/09mPWVMdk7FHgoWtlr5bf1vb713frbJiOHcpOn7ZeaKilwUJWbqkUZGrpVPmC89IGVjGouqxEDaqBAFzbT7OX3xs9V7B9JU5pgaPxgv+cFUQOsb6KZQpyVTk1NLoUiXtY/V2UOuW3+6gmYmVhp/0i2WKoMqz3a5syRSpLOidZfeVX7jp90TCU0+2zKozh7KTTcjO6d6U8JdBJ33zPj7DMWfJWE+3YoeVTNTfGVRKm2HASJKreX64oatPqybFfWoqtvV7KhZUvBOZIMsolMQzMgLi8RVeWXW2QrqtW8EmM3H94Kp8XJvYNwcnHKhdJbmEJLTNNgsQlYL+6XX8nipli9+OXS11DPXfsczDmyX6M9ie4zTpmSq1C7whk8MI5ylV/zidA2iAqdOlWkRdvF2ZGWDR3nQQouNFNYpt0XysDdJrz15ta3HSESq9ECyoK0HkvTEMrqPa09oNj6tgKuRbXiPTfRQLZxmiDVJqcxlfetjvdDBSGPLPoty0Hj3wvO6K/mZjZCGKaholxVhDL76rU8iumydYSr89CNzWO7zY/KpvG3lOIAbOtt3nrjPx2g8XP7FbVUJu4SIwCgxQnFQFxyvKdF6R7HlQ3DUYrZsRhG5xjtybr8uqCCRBDuoO/yncZCA9p6q7fAQjNQQAERKu7ObESVRPzAEDA3TYIvGBcpTpJ2OVz/PJrYCT3LXBLz1ldcfhzXmGtzyvBqkQU6LztlhJOEhxtozDGBBYfw/UeuBZFk1quwtqBMNfM9kaTyFm/C78DaAqarlknlKfg9yUcv+AHc845e6Zh3v3l1oHEVW92RXjjPvRaVB+V4U+q5uc+fpdfceOnWfLu2X1vgELSEK1eKtjfVX97c4/eSK28j6hlUXrXCsbu3VSRbszgNhuC+r+EVPEm0DJ4WsUahdx4O+Wo2CY/uvdUhT0cKfSYNA1cLcsi0W0j7JWbbtPau4ALVuYUjCica5NFZqUbZmyIRl0j63LZYgQ9eGxoYnDSIEW2zYnFEFzBSCDUw6T5Eoj0tnSDlQ2uLcJ2zJgudxE1xMW35QFPkr6Stb2daJMOnAzEKVqJ69DDTIdt/gt+/2sXYpFYUzZ6diDfHUhk0V8Clz6k0wIqvDKjzVnfSiFz2xTlGJPhB70KVC7bEfZof9BY01N05DF6rQTsSwG2J8gT/zITNEp8IzaQRL4XNUZ8IzuTlLoTNEp8IzSSJLwTNEh8PLeJsm9B2PbLTcTkcEWYR0edinBNbhMxwNI+RgkT8gYijw9ui2GO2kDTjAoujt0TKDIeYo289Iq5aUJeg0WtPUH6TEMTgQx/C+BIJssNC39XgTfywN96C+lf0sdei6uBckNVupQ9OYd6MIPViT9nOhqXXGdhqs2vNYO0vXGFzs/qEHi5sNuEwaHi24CSoeOGaEmxPQXjt6CmZMAU9swiWiJ2CJeQcExzDITi/tegoo5goc00Ypi+ez3W7de8u3r5OvXjXguPMk4r+Lwja8V/IPZFyNaqUPXDX/NMGxwHdMjQuynLb/Q1CIWErgMU1IjaufPw7NdfvnOFWpS/KtCHCRZ5J81317NF71bgHkTPUfMOsvS7OJ68SSzGjXXwVeRz5hvBf5pmw+b062QgnyQLnaeF3NqItw83zTuFqK2fWc4Z12+uBpQdb0pfgMBeY6uXF3fVsob0+WGnrLjQV1DubOzIPLPw4F6xWusUpsOZ79nlHMJsHlFRxTB5mgnXDs9y2z5QKsxiLGMXkgZbnUMWfUAU48HXPtOZbyT0WJJ7Rg9TcEoaBcQfYrjng27Fvah0yrSOc0e02ACJ4qsZCjKlQ7QapC6K0DEcDtWb5+YA2HlL7gSY8wsmCqxLon7AoDb4F12Qb4LglaQAuuyLbGEcvSANz2fXYhjl6Oeor4JKzremfMNkAb1khthD6ZejyvQRPidoTqMBS5HsVvwzke93q22kr26v41gKlaaow0fDcr45uHbVrWu3afcq91kimDM8rheKJhp9UHoYrurVpBrNlxr+vEJ1W3byoJbBT+9aHTi/XeFXmseUEGTbtONfukmlz4HjfKppmEJGHpjvAU8dgxTPC1tsF3qU1YeMpc1/hoXgg27t3Fe1zdi/Xiq8zIiSV879L2mbmhpF9WBQmt/1IwOmj2ZbBboVOEnizoSr9paKRPsKv3v1XQB+5P9simicomgpvdIqaaVYyOkWneKk8v9JSlepC8OLAOHv1+vbq+roswCIRkRGU48TgTL7yr9GHPQ+sx0lA/2q76++LZLQT8eVyzvpYnyQRKFzUk/F4zlgbHpMOZtEeM0Zm80c1uixY4oizxoLpBLOez7PhLyZR4MJJwg8kHopvK3BKZkTn/C4ZESm1OUGukg423NCFa8n4UqtNRnYcal+ZFd1qimJ+wu1YCqfIMZtTMRwzj1II1Fuddaff2nJoNle1rN73QGt5pSarTslqkizd1jJPbVsnLsAr7bJgAic8IWI170huyCLj0IcvYV1DmS991k6GptghthkZgsw62OHonugrSc7UytPW6HSLx3CwjYoGKpEaqkDfqPmQFZ2gpqDzVyKbD5yrDDYQG4/UstMJDMbNZhXTYpNpcQ2ZS4eLPLYSfEeboR4az88INdexf3D7M86FVuFehJOypP+2J5AByUURmWkEKXPxQB+Ic14gQSCXPFTPPVd87W3SMQO26uyaKmkuGEuzTbGyRTsh9YJx2GEmmiBw1FGmiGCBF8aTobrdYlKgDSdTSAFFmGkpb0iZLJPlm4TKvbkMQ+ZMVxHsBe4fhz2vdGgr4XviQFDNrSkldIy3A1hTtgLtN5PSQ1cuSslxqojqBWUvoB8gK+BaCcMixveQIR1FjoTgeTgGyDeSmChME7kS7WCbyXmFCP3MDyjNTQxOuUws21fQl1gD3mPpaiXY6lERZ7GLtK6mR0ucZokJj1FEPOBAgefWCHmuzjhZPFcv4CbTmq1TZ0qP4ymmChrVzjdXgQv/6HO68f0pZzS447aC+LvfT10fb6i8R5oqkhmOoGQDkB9/Xy3xQTHFWVHecMpULVDO5FbgBIvUnD07jvh2Ox72Np41puWnhsO3LBcd8FfEK09diqncP0kSD/Q576IVy9NZdU1pDf/5Ktg9v8JfkCjBNCXxrGvlz1dlh11LfvSioBxCqtcmi9S8Edhm0iv8sJsvCQSWi63zDQ8G+GGHWnUoh8CacyLbqGwj7RAqyPVZTDDwnNsnGIAwq2bEChfZZD7Cg5YRwJpzbkpY5Q4LM9eztwR7WBX9ACQh9/OuC+CvyfYuCOA9+9CB9YCBH1m0xMCPLOofuOY9/8A16/6BmyS5+UcOdHuHbrjPrgUM81PUgAE2+6QYYD2zkpL0PCaZfVyewSjTkMFJMCfidwaephswcwv2jEiKoc/1Sj0uZCO9Ayb1LGsjS0/lIZsfQH7JqSC2yIUsH+k7BiFw+qzGENPYltKHsQwbitytpOKCrGc/TquhEfZ+3BwAHLZF2xT7MYjZCNj0Jdz5t/0AvNW0sWGAZy4d4Z6zvbwywaNZb1ztyPgfRYLZLtQdoQZkxrvX+yB/rW3yUFKZ/VS7U/vpOCIuSCXJDbMY5fBkijZHCzKYdpKTFWUxeVz9neeC4WTRpSxIxEUsmyvXeJYBBrIw+vEuqCEczLpCqKDsR/e0UgxkaOds5euoNBXR6wcitMIJb0hU6ZsTzH0ytZfP5JyBGqu5JFCp39eHqoFqRr3RAgUGSh+OeaNDQGXr7wfeNrJga4wJC1bzMhTbftbmOhztaG0S+PIaOgTjl9fQZ/kaSh6jJJeh9uEzYYXaxZaPbVu2x1ATj4h1RuNAqZ+zhkD6Cn2fuCUrhb+tJFbova0xiL6yOYFfmcLYKT7q2Xzx/8gjiyjbXaJ3cgcPa//fC1PIvCLMomaopGy3Qv+lf++MdCwIshX9EGdIS10RAbKsRGOXhcxifmDFYpJ78y+1R9i1I+Zb9JX+0FeB5S52uUmKT/HjOhOUi3oDHTSr4e0YoIQ8kETCoVrKRnEk8ywcCxZxJvMUan8uYh+V9HvY54omVIJHZZVFg4E4t0ZGRESYwq3S/X2GgLClyu2ihBTVC9f675vVN2DBf7v65mXZ9aJYda4hKU1TElOsiF49JKFaJRY3RVOBxo7S1Bw3tU0RVO1Qe8w0fb2ki8+ZNUtTaiu/MKIOXNzrD+yINHgFygSBykrm7bXnjRhMulkn+TZPjQWM46O55zAc3TN+SEi8I3EpgQsjsJhkah9QbA2YSzxi156wK4gWjC8A0SztiTDyV9wefXrxmegZbxB0AOPiAo9aEREG93LCr6/GpWfBJ3nXhdn2XK6AGYX8fHMT2sALRuDY3Cc271tqMxW0ZFMOqtZe+ALOe5wc8FHqjfSNOUYFZpIW6XYyqLwgpXWU2zzsju8d3A/w0F7JKzOnRpF8W7/4Iywlj6AtuGvGZAd9aUtXQtFJhaP7S7QnOANV7gL1kFQij1QuQg498B/rrTyvAdHK5YUqLpUF2fYTm7qfR1NTyl5ToBklVd19f2AIxiP+NGNoFP7vHYTLDiQxrSYrf9T/DuUF6r+5no/NfGX442pQ60nHEw1PCYQ2pTGVn/VCVZgyU42nWsFKr7hKBa46KNSRVqiJnOK4+KwJDAdWrdkDraiv3//04bOvM9CEJiHmzPCuvQmJzGbCbeuiSYnMRT3n1ifmzB6ud1CDt6wLuBk3W6ObVSET/FDTw0H4iTGV1zxXWa6gif0CA3lruCDDBfrJI5xyDd0marcHOAD8hu4APGUa+ybfLgD9B8MDAQ9XlXgO7AmP7s+yamqJMtgwhlUDvQt+eHvz4eYS/fCx/L+3N59ufw4tnnIjgn9g7o1onA4V5TJ2P9pstaBc/Z6pgaK9ZjGNsHIOEa3cGsBlO13OL74sn1d0VzefWtUohsgLPHzy2K6A6RDJCCckXvus54FSuzXFuTXCphFmsDcrXfSCLbqxL4ga0hzmwuzJwJgTa4eEK+1HPI/O/aifVNQjwNdvGfPuLXuDmGQfgCChU+Psqr7rcmR+IOba3rsGzrlo9Q3uBdqHY9gKcECRkIMXaEZws7fEudFqCEPhJjl+YrRJjgeATfHjtCU7A1obCWeCAodBzXhCo3bzpe5nmCYcL5gfH6hxexsW+uqZS9uqNq0ANY0xcbQPnvtVzLZzEg+fCMMgd0uw4NKjMAunT+R3m51ukYxVmQnHnrxxNNKE658HEW+CPHyjDnLoH1pteFiq9f/P3vc1t5Ejeb73p0D4YqLlO4lteWZ6Z/3mtrp3ddtu6yz7euL2NiiwCiQxKgJlAEVK/vQbSAD1F/WPRJH0ROthxi2Rmb9MAIlEIpEp8ZbMTLBQziF24f1Oz3obLnMZwGIF3Cmbp4KvPJ3iq7zb1b0f+0J+T+bG9GIb9nBF2cm7fQ0ezt4UlSX15nXTC2+PrEcCkBs83n4yn3ChtR8F0WSTWxCTRneqxeX4tzXQPQ73E01yx/64sxxVlllFBScwM8flXmg+TWw9yHBORBvJPv9B8EZ21xCJx9m0PO47N8HWQ053Q9xcqaBX4bLZ4CMwK33mTvhqZjqmH4eXpF+PxGlJhVRzfT45qjLXVKqkI4ayN7M8Cw3CUaHWni3FVbs3QgPW3lafJhorFgVffiuq5nKNr4/CKKaikZkWntMio0k8b3QrCc9o00yPDM+Et1vEUCywiNbzBW2EvMNz2mSJomlCnihbzXFKp591UTQ/1lKykdWumRfEFoqMHWN2qyide4oEBhbG++wgMI/112npJyKbRwlvtOcNzMbUdIc+a5MMfjkRO3BiwCEZAaYBsr+mH9pLw+WfetZMOQXAMR0Qiqxi/cfBiQx7YDVMB2GF/BE5d1dBx0BqWKJUEMtzAFBG1AzSBby5bsFQ2mRnk5jQfDTeCc8kYhwFn835GAGQMqkwU5gRnskZT+U8JWLuP8cHtFNVtian5HGRBrkZHy20Scc5HnsozLHMPA1Sg+oY2KRYKIqTGZ9446kwI6L9uiUIt0fyLGfkKaUikGHq4bSlwYx1J6cUR2S27vKyw7LaUCmnDqek2UJmi1lL9fppmKVYKSIaPVgCM0uwIlLNl1w8zrPJTeaGrgRWZA6Ng+K5fRUclmd9gnxXpzomkdUR6UpmzXvxuA9Pm9Ha0p50r8eD/2ERIxoTpuiStmYo5Wfo7WquVKhH7O55vVJJD1+t20BMi3xHTdQ9WMjtSTcOY7D3hWJTzCWkX5VyzE0+VlszLJOsZV9J2mTzS5TQRwJ35pjl6RrQefiy9PqympGu5bQFltjKomj20lIiI4Oy1nMx0Ki0dfO10ooybdnMr518fSnqEReHrWzD7krTKUHR+nTp/EsuEEaSslVCgJ/pkwGxHfheSYPuJ9hyHj+tNfR3GpU5jrTM4/+B7vInnf56VdAzuu2paIcPWXsyOg78pzUpvTXVitbilBqbmrIzAg1ZoyCBosH6rWtwRTv7A4DZ+XKOyn0kgpFkjBQBFdyr4RHoGI3I+WmYM5Tw3VX+qHxodipIczRN74uSxskZ6hxQDQB+vIk8ABDfYarOUJcM6hyhC87gMV3faw8rxzFtxDh84sv5KVkSsaURlKpnsSkYrP9jjUW8094cvB4VWap616P4cjzVB0Mt+VJ9S+Oi8e4n4anHZg/kiuDk/EaGMkTZlicZU1g8GxNgj9xbWwZKf2O3pgmB366fU60S6cml3mFZ0ReH2kJ5ScNmN9i3ecE1zpJnvXl+ZvRpkCKPaRfPV0H+t23jj3JRmjVOk95k8j2eD/P9D/u+gSquiszzJUHgrqjcAmzNpZqZD3N2xaCME/3qidwWK0Oaukrw9B3nDSjhRYZm9XD96tWf0P807B6AdoNYwadCFye2Dgp+JOb1vKFKmeJ5QxVjWzy5Xx4sGso/9dEUfWDNEIG8bJB95hkULIJBK6s8D96soF2SsKWMtN7QL1wg8oQ3aUIuEV2iPzfImimlv44V+vHVnzS0Sz2vzOSyYY9ZlGYzp82HvCrX9d9aB+ef6wj7z3VI/HaPX/8sp51vyGv9wy/3SPiHdxvGuzVl5s5RkdqX0hbJ1Mps9UB+K9ygQc6IdpvOUt6xMemzFWTsrn6eghy0tZ+nSMP39zPFv8cmf56SBN/pvykx993uz1PIb3XPP1tt9m78NQ/gU6NHQ1VQX52LQyJCeWREQ89MdxsoTQh1CaGxhJbSDNoA+I3I4rdyK37O98nfxg3sGV5knvUF4KmvYfbfoE+NfN899497j7JO9DylhxVa1SRKdx9Q5/b2Q1tF2rb8P/cz/n6EjWsvY2PXb5CMG09xBww3iMcqnTX8k40IipO5uWwZAW8ghO+l5eBS7Uz7gQ1+hrLkC9iutzQ2+b84SQqlN2ja+4EegYI3AtOiqNrjJSg3jSKuR0hPGZlFeoYvsyRpqwZXLSIxNUDbXnEvhONbKh9QStwH3vXxxjXY6ANDv1KWPZnrNdrMhleVe0NJIuisBZTsO2NqZxpDWJp6iOZTSNKv4Fv+9fr1oBE8vYJc0e4gOnLEBqqpQbVfbTCtAjYU8ylmQ5OEmt4A0m5v1qyYAvFDBvZkEG0B+D5ncWqAfowx1/vg7Q8f+gHq06PpxyjIl4xINdsQsSJtTw0N9j06SNTTBGCZW5YSAc9Kswi4Ld4RYZsPxK5TYky2tPdsY8UyU+S4cpluzxMLVhmvow5UgZ5K2UBfknOPATruyISVBEbECtCx2wQQ46div8193wbmxlN975bWPzRHlMgMz5QiuXmGt6u5p9DSgfJg++QL9twLytxm/dK1Chs484ZZANMMb1pJTD+RhLCVWk8iBNbH12mwl47MSy4K2N61bpphQeWovnL1Frk5NpN56+5++DQyHGyDOcoq2/xLEOr2hw9hx2ORSX/B8L2kufMHsONMaOfE9FqsiNBujC8WmMU7Gqs1gr5/X80LVde60Hzq5QzdmI9LrDJhPsKjKNMOs8kTK9L8JIoSLmHoq5l7TiVLmpDKO0C0VxyjINPI5Cz+FCKhM++SfKRTDoQszBvbokGz4voQkrFU0C1NiPZ8IFrerHlRhm6Gbz4y5DIqrFJOMHyDHn6IyfYH/dfrBy8iFbRxcw5F06hDIU/qL34QEAKcp5y2xB72xgKE9RoE2g3d+NHAbJ3wIKPp2x6r9uEy/KYZyytBEuSks717Vmt089BaK+lLELKP0ka1ag8SCSnprltj0BrgmJEaaOI+Dt7pb4JroLtuTvOpKPUGc9A+ZqeUoVTaykqbmIvN49VKkBXOg/M4SYzJqaX6F189+C3DvuHZ36rmx6JBS57VzxuV5XPAsq4X1gJKXaw87n3XrB9Y5+03ImF8CqlRzKPRFd48FrhTFX3oGzj9jR2MEsEC1tZAHWC2R3G0YABhpfYA9Jnj4yE0Zu8CgKZJJkGnL5vOcMJxfIj50M6/puFONwcu+BfXL8YaYf0nylbzJdaH8jfa6R9niH8twc8PHgmWCm0oy1RLT/wXfz0npH+1WFsMzovrs0J77YHrxw05WqeaE565gGKa35JWL3DgFdMgcU41FP4JE0Kik82ulll1oEzwIb9E0z6hbFjnRqe38e6dIdEIUbT1extvso927IB9rbPT20mOG/0N6E5wqjXnsyLXCDwqO+b5WcjkgJiwWcyJhFQQ0wmc+FqKW3cSKuFJhFnT/zK9YyW6kCQ/q1rV4EhlOJnV3JCzP44NGlgj237+uqfCHFAr6qORGDLZtOb6vPhOb3m/UrgBPFIrUEmfpTl4q5Ag1hiaSoUx1ZOIsIigBVE7Yt8B2ykN96zlWI0dIe8Tcf1T/ySKSUpYLJ3l/XBv4mQbLgiKicI0kZcoBTOIojWJHvMzcmkOPwwo8nuiM5RVt3/J30IjvwgnUZbAQX6B9bCUdJEnrlDo9yypVNLdEZVoelnDSaOwD84eANEP939Hpo0gRjLb1K2SG1jKTFeWfFw/MPQ7ZTHfyUv7ffKludqsank+VvbrQ8eqxeagoaWIu23PwJFr2iDcWDp9eYQ7XDc37YYoFWRJn96gF/8JYv1X3eepxjf0ZgFUCl+i0hHfzCd7vaNxVEo8uinmi2D2hyNOfJguhBk6lU5la8EbGYf3VGYqt8t7qPf8Vmo2TPFOinW2Imnjoe4JFqsGggDJydepN/m5IZp/QIp4b0kge3OSct5Wqxedy7p9X/L2KHOdbUlcEifE2ugR4KA1Uc0KqMyrQT0lDrFDYaZO4SruPYm0Iyv26IYSVhCHAi0yBac633waKZnMhHbvTisY3xIR8c2Gjl4aMVniLFG+W5fBMhywvm8Me5NDtuTCCz5/omL6inxXhzcm7mNplAI/rltJ6bFNpV500W1FEbGs3W0c750NUeuRoUAIsdXBD3l0w1v6w0wVlam/HNBn3r78LXZShD19lsqKTLGvM0KYsKmlPVBh0yEROZKBiqFsRoTgYhq1GNL2SaBBRNlqwFgdC5MkLO5HRNksFjxNG7tmGESURXwDSVF27IqESst2gMamBMgzteLdAMuhWioRTna40VwCoVfaeb/BYqc9SBajn+5v0IJEOJPEhk60LyBIyoUqbkfan1c6BdiHowftR5ZGaT+yv9GbEY6xwpflVgaX5R4RtQYL6Bj70ZBwsRWgutOgyhNirCZiampDVDP8XoiMMcpWL/xo0mCNG8pAUtqSUJNOxA8LwlQH29UkbM1huo1ptIkTygIP9TJLEteA50qTN8dDxU2hjXKVjUt7b2OLbzTIYbHKNhBhlyTFAtvl70lhKdfeCL9kHFUXUIYcYjB3EZQOjSulQ9Bt8SkPFoQizOzz5ZgoIjaUkfjSZkuSJDZVQq3BySl93zScLNsQQaNSTyF08fn25mU1+gxZ5oawvSWTXURjvsHWEFNpHTMtIZbowfzt/zvBHlpm1S5g4ySt/igTsHi0q6ynSkwFPGV5duORa/5TSVYJRQGac6pUM8BcGfilIGzrlYIv/kEaoQrzy/mBchK2pYIzPePRFguqUcr21WNqF+s9yPdQtyLnL4KQn+5vLo3AZpf6cI/+3jKAlTLRKFx8793d5yuZkoguaVQO7KVFmYexobvWYjuo73g8MF7qqXyhyhtaVxWeOtj2wkah0O5Z5MgP9PzC1bXiI9YVzMcCJM0za7I0BmfjVpV8UEk3NMHCXvh42f5Jc8kVWWYQU5km+LlwQhVP3Vbnqo80C034ldtSx+ub0jDZVk62Vcplz79U9LyR3FQkF8Geo5DArHnDYIUWfINeNR9J1VXcUekKHdku+Ctg1QGbOTElXpOI0Dm8HfrU1sP3uLBAFzfPDGPQaUw7VzzdKREKAmnWpMWB9V7qD0xhMXcXY/ejvv2ub786USC3mAGuKpM9pJbVvcYdU0BIebJrJo3+I5Hg56J7otA9/UpmtWXoEYhHUZZSczcFXq39zMXHt+9fdot6fpY5nHxyjcWpJiHwjn3CZLL15Zr/PLFHktovNCH5Z7iwHpIL1JhNSxI7ncxlA5UlV3rpqVpm0o703mW97NAmg6eEHbQp1B7qVXUggf7gnSChG6pmki9H39YOnSB8qQwXd6ffAz33KbwkK2elEu0IM30Aj9ba2Yjrfg5WCLNn2JX6VLHGjaNeKFVo0lOpokRbqwLq5y0IEphKQ0VwrlqOh76Ft/eSfO9e6TGLRxY1NwwnqJUCr/PB5cby0aTjbUi1/ar7sd/Kn/8JUgSPGy7GGktLSK5pCkkMzTgLZ1daHZYyKFCSCgPQX19ooX+pN2KAqCd6MkDByM6m2xs4quiZxOENpJFGIiwljyiEsXZUrU3ASKvZ79mb6BZURmDfK4Qd1dsbE6qw9agc9VL4yXa/8VLFi45bsrKKUqzW0ylJU3fJgHYeQdYR3ZLar2W2MKeM76V5TWoer49SGXA7htKaER3UuWZHaCxKs0IXSEZrEmcJMQ2eMZSWM+9dsHzMczfsOvLSfGu+4+wzZ0rwJLGWbcfzSHDOSshL9O6XezAgHz/5ieq/S4VZbMC4wobJM1piKgpS1s6kgmt7QTnDiSeECNqBtzomkpofqlzitxvGPEt5R+hqrWbo46cSDC9dQXBiT2g1UJIoWWr05T1/ev1RVBQ3rg4AKNk+lXBlUDBa0S1h2vekvCv/qd2YoT6DhgasV1Sfgbc3LhpTnz2dAFrMxV4Q/ItA/9ztYzZaqfnMSaeQ0VLO7IB5U51Qn0MyRlTgA2Oh5xwUAooEd/X+IEmI75AgqyzBQu+KraSMSr6Xzk4oDnNZEMkzERGJ5JpnSQx+CclzwUbo5EvGFZ5eJZ9qz5ZaFWMWMk78zwAAkjOTuLxGRcbc+uSM2LWJLrBEMVlS4/a1a7k8OdoeMfm0B0e1qXX3lkHy04oIGy2EazUblCHa4OULCfCUDV4r0UoBIOc0VtQ6K0XLHbPYWsd2TaaZVYpxvzeZhFu810hPerpal73RTvUKdcbrNV+X7fptWa9U7rFQhZqJjMFR6xyUAcFtzlZEwkMiRVnGM2nXXCthympHlOoiNg1D/VobqCbz5tXAmFpNReaqNTWQn7jFiQSjU1kwelFUTUy7cdNLG1RBEpx2p1c3RVdrwZVKSHx0Jei5IttGdWFe+lls6AKEpJ4+pO7HJTbvzLWutu0u20mtybNV0NMaZ1ASBaqaLzvtUsnc6VldGSETD6ACwV441PzXNc4m30Lz+LSryWfK5V1QhhhmvFJn0K60fDx6HAzfOA07M+GoIwo86NxkT0GuwJknJcz9/OFN5z8n9qbt/exxvMb88Fad6JUX7NoElM/PPfN91Bo3zRXDyJrLUgafA4cEiQ2P29Lb/fhc18SjIbwwF7Yvx0BNifBHWFB32pD7qaQPHT6zcikb1jMXmzNEcLSGj9ZmWMf2TWX/FOu8mkXjrKd9XmbDwia19g8DOpEBHW8oN2Qzgxu01othNGSF9t0sjhC8XG3FXu4tnlvDXxeuwMBQt6gQeIOfzkfoNcmjguXyG6ElN/dd5yh1EXoxm0y1fISW1mUZ63N7+/aJozV5aY4pnng1XPSUPPdMDt0ftPaWmCbZ9PGU6l2vPbmAQOu8aIW59ruojelLtMPtXpTQ28XgE9uGbOTu3GzDmrgKHi6huGIooAoIPIU3VQjtGmqlF3Jt5co6V7vSSLPRm3FTWRWldDgShyrr7E2RiyTZCVdXGgx2d5wktAGSu3MyQfXFBgPaSvGiMepgrEYapcdz9Vdsiuhkbsvj+fstdRX0ui+tVMdr5uyNCV/W9NNlINqjhPsYjsfzdF3q4xbSd9G05ypKz9JUVGyE3mQ+vbvL6xc2y8WPEfRcTUPZJtQl9tiInuDYftYT1PQt2AmrrLqeGgajT0t7exq5ts7TaNQHsv2yarx/YQKWpg7gHDPur4ExWAEB58pbxtnzhmey8EDhrIs4Q7ZuYUKwVFeCRISp5PkKVtvFrx8/tysooVJVHvBu0qVEF3K9IZuXl2ONUUV5+pR+ZOX9QhNytcDRY5GcXijn14+fc3H3kAp0fWR57vQGAYxDj9GaEoFFtKYRTuZGVfPzMo3lsHF+EnOwrfeU13Mo2Qlj+9pvboOoS+7OU1vFiWyw3lpJVvW5n95cRdVvx5LmNWDL5qKy8toPuPUVuZemTmA22zXlN6heHe0xOzY4TUl8XhLf2x7gRtorAxHZ/4O+Ou2mOKzNSfGKzKFy29GTZLSNwPnriurpVAm6WhFBYv2JrgAYQB85H/7BxfwbkBuA9giOXrzXn3ph/lOitZ5CrHi7YoMBpspy8gxvWBTvOv6aAiVQKgIe18S0/Lpj4IyS89awywSJZ1DrUf8vZJ/xUsF0ah7lmTZbg1Muy3LwrC3WOK0gPCsd0g4VpetB7iBRjrEtXhQlZwRm0lZByssIv7xEjLfHfcM6rkLKueZ8Nlr7rVa2kC8RzhXp1de41JkdTs9G1vv82mPP0csY2dJI4cUZ7fjvS+HYoqiTIFGC6YbEgyR1Ui6SR+qz4SPSZX5KeFQulPpHlkzoLJk9kmRMNuG5zNh6u0djeMDWLIkQJtpn+rbYTpkLmFSmJXL7Aab9smaUmig/TtZloYDbHz64UpKcQZq/1rbJkNPi7y845GGT4mm9zT02fY4TGj23VqycyWyzwdUOWlQl5A26s/7lffMDY0tbWhKVosqlh9FEIluW0d/ra/KeW4P6apVq7eawuW2sXsdbenFiBAuEpFS/3CpsDBYaD++QPhiIJjoKhUwISadQiSM8Do0KWbW2BMbQHYXlK98saPgRMmRHIcnYI+O7+gnscCgFhtLbijUxpVr1ySSJ2ffWsVGCkq02jkKfWyyiph0TmB7UnrX2/dzSLIg6Td3c30rFP82O4B8jCG5R9TwPXELX0b0ygzIAiT7hu/uUQFOm3HLCBPEMkw7+U1p84FDSQ7ntlx8TuDJhQZWOcEC8jGfNk7hFOxaJfGbRBHbOQrH7tkVjIlQCHppovs1VK3n0SA7qyv7p3Z2lIgt+Zq54PYcR69nUfKXcb/96mjO4WurjFPrvfGcMIUgEF8KUUQWVUmbojktJF4l9RCytag2fy7w4ejOwywXEvQnrrzC/xBvaKD8xTOB0+5dxwr6NYwG1OoBnDzBoxjqj/hpAjV/nqK7/9fXs1ez17For4fWrV9dvXt389Lc3b3/6+ebN3/765x/fvLkeB/pXaAp7e4ewQW9DarZ2CGbo9m77F83s9m77Y/6hIbKlXAzu4J/L9/r1PvA1qx5Mgmy4Imeg8I8AJLDGrXRHUbkVYLjOtT+2zwr8lx+vXl9fX11f/8vVn3+csd3M/mUW8UZ7sh7Md58+IkEiLmJPqSZigaLbO9cmky8UhqIQW4qRIFsiZPOq5fYOJZw/tp7Pa2ogKonnaZLJOR9VL77oj7Ov+FAYe7kkkY3LpFcJ2ZLE1Sm/IJ9+vXnpPCKrCz1o5kKbMwItUutUE7wgSaUPgSnArqn9r2vwhF8sOZ8tsJiteILZasbFavZC6/dF+ReNGFtek1vTcPXdXeFlTR5FfENskTPMENksSByTGEU8zQuaawJ1wvCFtVLpmx9+SLNFQiOZLZf0CXAMnstz6HQSzjP9WZOzH1o4Mc1r9nxMYAba6YZsXlgPYhcJCdeMoQhFuks68FBs2bxinx8IzFZ9nuaI4UpKX0AqhgnKvX6FojU2OY+m6W1fQ+ocaqguD51cyFPA887bheRJpqr12MgTiTJzAdANCd40B5s4n4uZA6/LXJTHWy6zHc90B9J+VDmQtFY2Z3xDHEPioZo/Ve/FYxnZ2OJhQUNXCmK2Gd1NzH219mfK0kzN3Yc2NEmofSA98kAKq9DJCrVkClKz7670yL5B2U6u6Hd5BPcF/PeL77zU4W9ow+MMgoL1c1JZTfmQWvL+0fRKUNd2+Z4t62+X1HZ669AWgJwZ+i7gTJQFMnAemAsCQb5kRIbrkgYxBUcUrTGLk9qBvMqfPEUEqIVF0EK2ynsnqCLzsE3QqvIDB+ThUB8EHE+DA8f93MO5BO42hfpHfMfFY8iN5Heg18MtnHSWXTpISBzBBAx2A3Dv4pSG/iW6RnSJpKJJgnJeiJFdMfm4WhOxo5KgV11IA1uAcvdZC8Q1oX02EXnDtwtSTBKF5ycChvBSEeH+AyqwJRzHrtaxfcKA3r/9+/zjz//n88/3n+67ZAlu4H7OCdri0l3c11jgRyroHBKiAiG4Md0ICz0uTGXvehZYDYukK4aTYGrYUGijZamipoBe9vMvGWk0CwpwE2ZR7DA1TYE4WpDO7c+hqvsI6DA/1hop6xpcRGuC00uU6vPjpUZ5iRaZfL6EG82XnWZBBkTl6TXhUtpN5YCkeKOKi7rqdGlbXKKvRHCkxDN6uLqy6cCmBPkD4sAValWUXDevTFv5NdDI/1/b9KMhDzR2xlLPB5v7MZ049ojiayNz6A6en37qpBubh0zxjgU1Lx8Nzf4VrZ5CeUsCM5nbk6+dEuPtaj48rtp3LN8SgVcEaTVyJkm7viMuSDjPyW5utzftvMxH5gGdQ5z3HCQC3XXxdhvLRDeLquqkezr1+9FAQ6Mo/N4BZE0FXMDid9arWATPVLCbzo9ADHkdLj97vlwapygQgg+O3gAQExzbisFYYppoV0/z6FRE6BNbA4JmIV3QYyvTNYGouwt7bO/hNy2BD/vXcaGPggk6PPgRY4Wlqt4UjI6O+YicPnnlxqFq0s1vmqWmH47lLzQhNhTYIJxPTJziiKrnWXuG7GHhhDyp3t2o1IcGdebWNnAuBfGnnu8L8xdBSHCU2i8NivKzcXQnQNnssXYQRtsubSjKenu2hkmoXf2Otga175/eEPw7l6rdBkRpZoZlsw517IBheXf3GVGG3teoltkaCxCOb1Fat4cxLOlwfGFB97C1j7+mWabvq5UPR69PC24qixwI3jSG+FBwjCh9WJjr/woYi/jNkEVVsrkPZA72Gxytq1e8o61VK6V97NbIrJmD7FZYG+kiJe+NHs7OXJbNx0qfPCYzInyJ/k0zOHi5AlbIa58QKsyRMHYvvFor1i+YXsEMhgdbNoaHY40yqfhm3rjqLRB6K6NXKqLvtZDfAePmHfORDbY9EO8oi/lOlg7Ev5vftByIta39z/+Cf76HMzGkk/2eU5FrLtQ84mxJV2/QEidy6Km5QIIOOTX7d4U8lYCILY0OyzSxNGqpJvamoKQNx0wemmLeEjrsSWxc//7n3/73L9H125F9T9+ijNEvGfTlzKvFGklcIidGayzX7jxjd+bvJfq3z7c38EjTV4PH0gCZevKSRu6cuci/k0hu64HFAckyI6DFVKYJfp7vDdHOjZ+3+kT4jicJiVQj73EAZgsEYLmRcMPULYLtmR80rvLJrAChshTI1BGZHqaelwkPbzPFN1jR6KH5JOHhJ87VwyV6uKESLxIS63+/xyzDycMlTLSHewjmPPSLHPLVE/R3hyInqPLuqV/ad6ZxF2Urn7h3OJPwJ/NPI+9Hc4Wk/3mvNZz/m6ep+bdRhHlD2KcJ8kS1eY5DxtS4KNjnRs+kAlBjHCHCizRb20bPLjhzWdd8xAwZAtJKixQ3LyQpW9m0ftt7FmivCCOCRnWr26BZwpCxxOTZFks/Fdz0TcXuV1e2V1VU+mZfYuvwS57iKcSrfx35VAD07WaFX9+ldHyXZnN3e9OXDQr5gueZzmil/F66rMZKqzdvfuNXzh8JSSFDxvk2/4/z/4DftXg3+d/z1+eRsdBFJ/Ylz8RVQpSCpkGMKg7tL21mNOz1PT7Qqs0DKiNGw30ghB7ybz7U6wcaKfI244vnQsb862XsqOMqYsOUOMhz0gQGIKyr2XyvQspCPiyDVx/9wh7Si/njaLc8x01TwZ/oBisyj7HC88Zt+QF34QVtk0XBlyVcmpsfU4IVYdHzDG9D5dq5W3lLOe9CTZgkG70zaiXJ5gL2oSPpmmyIwIkMmiNR3BbmDNBXxmPSAmPJofbwFLeVjnKlNodrCNL++n6Dn6Da4Nxx4iKoht7bUs7F+2a4YC+4ybweszstFLOtkfCPPBNug0PlnzisbsINmlk5jEYRub1hUDYeBss2c5zQLdEbBzNPisPPshJt7VYVI5W/ii4SyQCNHyxPCZt01v3WPts0b7c8Bs40ninobk/Zarps2BKTIicG1MqISWFbFHU18n0uSjJZKbCHKuWm4Mn6TJCI0HpuTQjMhf5szMmxRI5lNzBJJhjxdlCaXQsgYkZXPrMo/NBa6lCeANZNhIV4hqqJlUWUb2y5MW+pI0PElojQtTg+8oS4Sk9NTC1IoNDDfLptzTAo7W65owdnPIz0ZltRiD7DJATHbYtiS4QcV25hsNNmScOBepHRJEZSCbOeDWg/oh1W0Xoi8we0iSyZZUmUq6ABJQGGGkFwayZCaVymhhPfiu+/AwAA//8vV8xX" + return "eJyUk0Fu3DAMRfdzio/s4wN4UaAICnTVVS7AkTiREEl0RXpc376QaieZQTODeCfL/O+T/H7EK68jnOQs5QBYtMQjnvazZ3U1ThaljPh2AIAnKUax6FaEU+TkFXSmmOiYGLGAUgKfuRhsnViHA7bPxkPXeEShzCMyW41O2YYsfk7cL/9Lbc9z4F4HOcEC418NLJDhhQtXMvb9prOHz1jt/EXSXvt1WBC127CfonYBIxdiYZyqZCwhunDlYaE2/JTYGfsBzyHqm1gfMzKtKGI4MqbK2haxBC5dx5PRpQSSOEpp/bSHansLbZ0jkpSX7UXl33Os7EdYne9M9UdPRJW5eFiNEyzmHpccXRVlJ8Xrza3pRI4vrLzyukj1t8G/9tI2Yr8WytG9K18jm/Ct7vgP5Sl99Kb30+TFzXn/IQZ8Twutip4owYMX93DlQrmeo+OPYX0DcyK1Rqbqwv3W92BtkpvvI5PhxOYC63swWuiGw98AAAD//53pSR0=" } diff --git a/vendor/github.com/elastic/beats/metricbeat/include/fields/fields.go b/vendor/github.com/elastic/beats/metricbeat/include/fields/fields.go new file mode 100644 index 00000000..24002de7 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/include/fields/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package include + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "../libbeat/fields.yml", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJy0WF1v3LYSffevGOTpXkAr3Ng3RrEPRVOnaBZt2qBNnjez5KzEWiIVDuX19tcXJPVpaT8cb/1gmF/nHJIzZyhfLeCe9kvYELorAKdcQUv4MbYksbCqcsroJXx/BQBwZ7RDpRmEKUujwzrYKiokAz6gKnBTECgNWBRAD6QduH1FnF5BM215FYAWoLGkSJz6P0PvLKf/+ZRTWABmCy6noBCYtFQ6Cx2FyaAkZsyIU1gNZoVlijsoJucF+nFh9FZltUVPB1tVUOL7/SA6eMCi9iuhZpIBUznf1MYNwcISyA27hqmZ/8kEqpGOxI+Fri+++aXDMWHHh3Wl00NrGU8fXKcNGSy52mqSsNkHKlORp9EZ8J4dlWA07HIl8l744OxsrbXS2Ywap0r62+gz1LQz/001D2RZGX1aTDOxDasQzuHyM9JeCklwueIYyuk4dF/94LfCDsvqVQPqY30JEl17Dpa+1sqSXIKzddu5NbZEN5pHj1hWPvXe1lnNDq5vXQ7X/3t9m8Dr6+XNm+Wbm/Tm5vq80w2SYBcDmZo09AliSRgrYYfc7+/JphxmfJzlrd0oZ9Huw9x4WgK9FYR4r8jGi0ItQ8NZ1IzC9fcRz+kJcXSH0TmazV8k2lyLjXUcuaf9zlh5XGjnVTWT7XPKG1Qke6KArDV2JCCzpq6Ok/zkF7UOKCKjj1+UUvm5WIDSW+MzWyAH/wo8nLbB0LhiC9iqacys6281OXp0g84DsnppDU46IRBGTtELo7PnoHuQKbTHmkCP7+ws9BgmTYkShallX6PufBMqax6UJL9NhxIdzpetD80obK0pI1K3lP1d9RaEUq7DhHUL6WcKYjb2YBXzU9OwKm1hnyY2iRPZ+9ugvI0VpvDRMCsfuKEmMaAlD5hAJigBY0GqTDksjCDU6UFtSrNDLWitTqTOqpkIq3etJF9EoESRK/00decYTlemjmNY189jaSasB3HWnbO7TkuSqi6Ps3+IECHEnkfePHNUodx+PSh5nYKaF4TsFq/FCSMdAEGoiKqvdoqjHMV9mTsScsEbu1vtpDQji8fzQ69Z4rX8bExWUMy0w+yWspOl9o8w59T+mkSXRtyH/Gky/V3bngGPY8AOnbffoiDha3ZI8zjmc5ZzY906VoAlbLFgf2moRW5sy7fosvxqbMrtljtZMFsfDvl4UxPIpkq+zBM/a/W1ph4QlJxz9Y6unCsfz2IcxkWAa1+njQD/kNjUqnBg9DEpAzP4RiV3HafHOsZV4IYKnrCN3hJw/D1xQssqnETk6YLWB3Mfsu9jawZk5R8Dg0D1VW5iPX1s+v6TkdlwPy8uX34n75vPiultXCjSo0HMBDlakStHwtX2AnsYwcF/KM1SePzudn37/wTQlglUlUigVBX/dyrFcFoV6PyT/mVKfv8TWqBGgyDtDCdQb2rt6gR2SkuzOyBi/MXz7RoanFmOLZaq2L+YIsI0m7Qkc3QJSNoo1AlsLdGG5bHdqmoiYdR1hP1Xxc4b2urjAqW0xEw8JShRvGyTLU2OVu7QUk+WQM01FsUePry9G2pofeS+3pDV5Ih7N/ll2DdD2493z+Dxm7YHhaGXHC+L/aKTBjQSDc+yocrIC5SHwQlURkZvm6WqX2pNA6aPRsLn1bspkf/NFYrLbapHnJL5L7CLnqBHPHCE5xbX84giGpRYTZlQa+PC/78uRjeAnOe85INlwCtGb5djtBd4ss3yRtx/AgAA//9ghmf1" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/include/list.go b/vendor/github.com/elastic/beats/metricbeat/include/list.go index 5b5d76be..4ce91bdc 100644 --- a/vendor/github.com/elastic/beats/metricbeat/include/list.go +++ b/vendor/github.com/elastic/beats/metricbeat/include/list.go @@ -1,3 +1,22 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by 'make imports' - DO NOT EDIT. + /* Package include imports all Module and MetricSet packages so that they register their factories with the global registry. This package can be imported in the @@ -7,7 +26,6 @@ modules. package include import ( - // This list is automatically generated by `make imports` _ "github.com/elastic/beats/metricbeat/module/aerospike" _ "github.com/elastic/beats/metricbeat/module/aerospike/namespace" _ "github.com/elastic/beats/metricbeat/module/apache" @@ -36,12 +54,17 @@ import ( _ "github.com/elastic/beats/metricbeat/module/dropwizard" _ "github.com/elastic/beats/metricbeat/module/dropwizard/collector" _ "github.com/elastic/beats/metricbeat/module/elasticsearch" + _ "github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats" _ "github.com/elastic/beats/metricbeat/module/elasticsearch/index" + _ "github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery" _ "github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary" + _ "github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job" _ "github.com/elastic/beats/metricbeat/module/elasticsearch/node" _ "github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats" _ "github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks" _ "github.com/elastic/beats/metricbeat/module/elasticsearch/shard" + _ "github.com/elastic/beats/metricbeat/module/envoyproxy" + _ "github.com/elastic/beats/metricbeat/module/envoyproxy/server" _ "github.com/elastic/beats/metricbeat/module/etcd" _ "github.com/elastic/beats/metricbeat/module/etcd/leader" _ "github.com/elastic/beats/metricbeat/module/etcd/self" @@ -94,6 +117,7 @@ import ( _ "github.com/elastic/beats/metricbeat/module/munin" _ "github.com/elastic/beats/metricbeat/module/munin/node" _ "github.com/elastic/beats/metricbeat/module/mysql" + _ "github.com/elastic/beats/metricbeat/module/mysql/galera_status" _ "github.com/elastic/beats/metricbeat/module/mysql/status" _ "github.com/elastic/beats/metricbeat/module/nginx" _ "github.com/elastic/beats/metricbeat/module/nginx/stubstatus" @@ -129,6 +153,8 @@ import ( _ "github.com/elastic/beats/metricbeat/module/system/raid" _ "github.com/elastic/beats/metricbeat/module/system/socket" _ "github.com/elastic/beats/metricbeat/module/system/uptime" + _ "github.com/elastic/beats/metricbeat/module/traefik" + _ "github.com/elastic/beats/metricbeat/module/traefik/health" _ "github.com/elastic/beats/metricbeat/module/uwsgi" _ "github.com/elastic/beats/metricbeat/module/uwsgi/status" _ "github.com/elastic/beats/metricbeat/module/vsphere" diff --git a/vendor/github.com/elastic/beats/metricbeat/magefile.go b/vendor/github.com/elastic/beats/metricbeat/magefile.go new file mode 100644 index 00000000..056189f6 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/magefile.go @@ -0,0 +1,165 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// +build mage + +package main + +import ( + "fmt" + "regexp" + "time" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/pkg/errors" + + "github.com/elastic/beats/dev-tools/mage" +) + +func init() { + mage.BeatDescription = "Metricbeat is a lightweight shipper for metrics." +} + +// Build builds the Beat binary. +func Build() error { + return mage.Build(mage.DefaultBuildArgs()) +} + +// GolangCrossBuild build the Beat binary inside of the golang-builder. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return mage.GolangCrossBuild(mage.DefaultGolangCrossBuildArgs()) +} + +// BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). +func BuildGoDaemon() error { + return mage.BuildGoDaemon() +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return mage.CrossBuild() +} + +// CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. +func CrossBuildGoDaemon() error { + return mage.CrossBuildGoDaemon() +} + +// Clean cleans all generated files and build artifacts. +func Clean() error { + return mage.Clean() +} + +// Package packages the Beat for distribution. +// Use SNAPSHOT=true to build snapshots. +// Use PLATFORMS to control the target platforms. +func Package() { + start := time.Now() + defer func() { fmt.Println("package ran for", time.Since(start)) }() + + mage.UseElasticBeatPackaging() + customizePackaging() + + mg.Deps(Update) + mg.Deps(CrossBuild, CrossBuildGoDaemon) + mg.SerialDeps(mage.Package, TestPackages) +} + +// TestPackages tests the generated packages (i.e. file modes, owners, groups). +func TestPackages() error { + return mage.TestPackages(mage.WithModulesD()) +} + +// Update updates the generated files (aka make update). +func Update() error { + return sh.Run("make", "update") +} + +// Fields generates a fields.yml for the Beat. +func Fields() error { + return mage.GenerateFieldsYAML("module") +} + +// ----------------------------------------------------------------------------- +// Customizations specific to Metricbeat. +// - Include modules.d directory in packages. +// - Disable system/load metricset for Windows. + +// customizePackaging modifies the package specs to add the modules.d directory. +// And for Windows it comments out the system/load metricset because it's +// not supported. +func customizePackaging() { + var ( + archiveModulesDir = "modules.d" + unixModulesDir = "/etc/{{.BeatName}}/modules.d" + + modulesDir = mage.PackageFile{ + Mode: 0644, + Source: "modules.d", + Config: true, + } + windowsModulesDir = mage.PackageFile{ + Mode: 0644, + Source: "{{.PackageDir}}/modules.d", + Config: true, + Dep: func(spec mage.PackageSpec) error { + if err := mage.Copy("modules.d", spec.MustExpand("{{.PackageDir}}/modules.d")); err != nil { + return errors.Wrap(err, "failed to copy modules.d dir") + } + + return mage.FindReplace( + spec.MustExpand("{{.PackageDir}}/modules.d/system.yml"), + regexp.MustCompile(`- load`), `#- load`) + }, + } + windowsReferenceConfig = mage.PackageFile{ + Mode: 0644, + Source: "{{.PackageDir}}/metricbeat.reference.yml", + Dep: func(spec mage.PackageSpec) error { + err := mage.Copy("metricbeat.reference.yml", + spec.MustExpand("{{.PackageDir}}/metricbeat.reference.yml")) + if err != nil { + return errors.Wrap(err, "failed to copy reference config") + } + + return mage.FindReplace( + spec.MustExpand("{{.PackageDir}}/metricbeat.reference.yml"), + regexp.MustCompile(`- load`), `#- load`) + }, + } + ) + + for _, args := range mage.Packages { + switch args.OS { + case "windows": + args.Spec.Files[archiveModulesDir] = windowsModulesDir + args.Spec.ReplaceFile("{{.BeatName}}.reference.yml", windowsReferenceConfig) + default: + pkgType := args.Types[0] + switch pkgType { + case mage.TarGz, mage.Zip: + args.Spec.Files[archiveModulesDir] = modulesDir + case mage.Deb, mage.RPM, mage.DMG: + args.Spec.Files[unixModulesDir] = modulesDir + default: + panic(errors.Errorf("unhandled package type: %v", pkgType)) + } + } + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/main.go b/vendor/github.com/elastic/beats/metricbeat/main.go index 78a9589d..bba266fd 100644 --- a/vendor/github.com/elastic/beats/metricbeat/main.go +++ b/vendor/github.com/elastic/beats/metricbeat/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 metricbeat contains the entrypoint to Metricbeat which is a lightweight data shipper for operating system and service metrics. It ships events directly diff --git a/vendor/github.com/elastic/beats/metricbeat/main_test.go b/vendor/github.com/elastic/beats/metricbeat/main_test.go deleted file mode 100644 index 284aa4a6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/main_test.go +++ /dev/null @@ -1,25 +0,0 @@ -package main - -// This file is mandatory as otherwise the packetbeat.test binary is not generated correctly. - -import ( - "flag" - "testing" - - "github.com/elastic/beats/metricbeat/cmd" -) - -var systemTest *bool - -func init() { - systemTest = flag.Bool("systemTest", false, "Set to true when running system tests") - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("systemTest")) - cmd.RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("test.coverprofile")) -} - -// Test started when the test binary is started. Only calls main. -func TestSystem(t *testing.T) { - if *systemTest { - main() - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/make.bat b/vendor/github.com/elastic/beats/metricbeat/make.bat index 7edecf7a..81de1ba9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/make.bat +++ b/vendor/github.com/elastic/beats/metricbeat/make.bat @@ -1,34 +1,11 @@ @echo off +REM Windows wrapper for Mage (https://magefile.org/) that installs it +REM to %GOPATH%\bin from the Beats vendor directory. REM -REM Batch script to build and test on Windows. You can use this in conjunction -REM with the Vagrant machine. -REM - -go install github.com/elastic/beats/vendor/github.com/pierrre/gotestcover -if %errorlevel% neq 0 exit /b %errorlevel% - -echo Building -go build -if %errorlevel% neq 0 exit /b %errorlevel% - -echo Testing -mkdir build\coverage -gotestcover -race -coverprofile=build/coverage/integration.cov github.com/elastic/beats/metricbeat/... -if %errorlevel% neq 0 exit /b %errorlevel% - -echo System Testing -go test -c -covermode=atomic -coverpkg ./... -if %errorlevel% neq 0 exit /b %errorlevel% -nosetests -v -w tests\system --process-timeout=30 -if %errorlevel% neq 0 exit /b %errorlevel% +REM After running this once you may invoke mage.exe directly. -echo Aggregating Coverage Reports -python ..\dev-tools\aggregate_coverage.py -o build\coverage\system.cov .\build\system-tests\run -if %errorlevel% neq 0 exit /b %errorlevel% -python ..\dev-tools\aggregate_coverage.py -o build\coverage\full.cov .\build\coverage -if %errorlevel% neq 0 exit /b %errorlevel% -go tool cover -html=build\coverage\full.cov -o build\coverage\full.html -if %errorlevel% neq 0 exit /b %errorlevel% +WHERE mage +IF %ERRORLEVEL% NEQ 0 go install github.com/elastic/beats/vendor/github.com/magefile/mage -echo Success +mage %* diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/builders.go b/vendor/github.com/elastic/beats/metricbeat/mb/builders.go index 260481d4..3c50c416 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/builders.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/builders.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mb import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/event.go b/vendor/github.com/elastic/beats/metricbeat/mb/event.go index 0eb73fd3..4a2d3c64 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/event.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mb import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/event_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/event_test.go deleted file mode 100644 index 91887f5a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/event_test.go +++ /dev/null @@ -1,196 +0,0 @@ -// +build !integration - -package mb - -import ( - "errors" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestEventConversionToBeatEvent(t *testing.T) { - var ( - timestamp = time.Now() - module = "docker" - metricSet = "uptime" - ) - - t.Run("all levels", func(t *testing.T) { - e := (&Event{ - Timestamp: timestamp, - RootFields: common.MapStr{ - "type": "docker", - }, - ModuleFields: common.MapStr{ - "container": common.MapStr{ - "name": "wordpress", - }, - }, - MetricSetFields: common.MapStr{ - "ms": 1000, - }, - }).BeatEvent(module, metricSet) - - assert.Equal(t, timestamp, e.Timestamp) - assert.Equal(t, common.MapStr{ - "type": "docker", - "docker": common.MapStr{ - "container": common.MapStr{ - "name": "wordpress", - }, - "uptime": common.MapStr{ - "ms": 1000, - }, - }, - }, e.Fields) - }) - - t.Run("idempotent", func(t *testing.T) { - mbEvent := &Event{ - Timestamp: timestamp, - RootFields: common.MapStr{ - "type": "docker", - }, - ModuleFields: common.MapStr{ - "container": common.MapStr{ - "name": "wordpress", - }, - }, - MetricSetFields: common.MapStr{ - "ms": 1000, - }, - } - e := mbEvent.BeatEvent(module, metricSet) - e = mbEvent.BeatEvent(module, metricSet) - - assert.Equal(t, timestamp, e.Timestamp) - assert.Equal(t, common.MapStr{ - "type": "docker", - "docker": common.MapStr{ - "container": common.MapStr{ - "name": "wordpress", - }, - "uptime": common.MapStr{ - "ms": 1000, - }, - }, - }, e.Fields) - }) - - t.Run("with event modifiers", func(t *testing.T) { - modifier := func(m, ms string, e *Event) { - e.RootFields.Put("module", m) - e.RootFields.Put("metricset", ms) - } - - e := (&Event{}).BeatEvent(module, metricSet, modifier) - assert.Equal(t, common.MapStr{ - "module": module, - "metricset": metricSet, - }, e.Fields) - }) - - t.Run("error message", func(t *testing.T) { - msg := "something failed" - e := (&Event{ - Error: errors.New(msg), - }).BeatEvent(module, metricSet) - - errorMessage, err := e.Fields.GetValue("error.message") - if err != nil { - t.Fatal(err) - } - assert.Equal(t, msg, errorMessage) - }) -} - -func TestAddMetricSetInfo(t *testing.T) { - const ( - host = "localhost" - elapsed = time.Duration(500 * time.Millisecond) - ) - - t.Run("all fields", func(t *testing.T) { - e := Event{ - Host: host, - Took: elapsed, - } - - AddMetricSetInfo(moduleName, metricSetName, &e) - - assert.Equal(t, common.MapStr{ - "metricset": common.MapStr{ - "host": host, - "module": moduleName, - "name": metricSetName, - "rtt": time.Duration(500000), - }, - }, e.RootFields) - }) - - t.Run("no optional fields", func(t *testing.T) { - e := Event{} - - AddMetricSetInfo(moduleName, metricSetName, &e) - - assert.Equal(t, common.MapStr{ - "metricset": common.MapStr{ - "module": moduleName, - "name": metricSetName, - }, - }, e.RootFields) - }) -} - -func TestTransformMapStrToEvent(t *testing.T) { - var ( - timestamp = time.Now() - took = time.Duration(1) - moduleData = common.MapStr{ - "container_id": "busybox", - } - metricSetData = common.MapStr{ - "uptime": "1 day", - } - failure = errors.New("failed") - ) - - m := common.MapStr{ - TimestampKey: timestamp, - RTTKey: took, - ModuleDataKey: moduleData, - } - m.DeepUpdate(metricSetData) - - t.Run("normal", func(t *testing.T) { - m := m.Clone() - e := TransformMapStrToEvent("module", m, failure) - - assert.Equal(t, timestamp, e.Timestamp) - assert.Equal(t, took, e.Took) - assert.Empty(t, e.RootFields) - assert.Equal(t, moduleData, e.ModuleFields) - assert.Equal(t, metricSetData, e.MetricSetFields) - assert.Equal(t, failure, e.Error) - }) - - t.Run("namespace", func(t *testing.T) { - const namespace = "foo.bar" - - mapWithNamespace := m.Clone() - mapWithNamespace.Put(NamespaceKey, namespace) - - e := TransformMapStrToEvent("module", mapWithNamespace, nil) - - assert.Equal(t, timestamp, e.Timestamp) - assert.Equal(t, took, e.Took) - assert.Empty(t, e.RootFields) - assert.Equal(t, moduleData, e.ModuleFields) - assert.Equal(t, "module."+namespace, e.Namespace) - assert.Equal(t, metricSetData, e.MetricSetFields) - }) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/example_metricset_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/example_metricset_test.go deleted file mode 100644 index 5d4da021..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/example_metricset_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package mb_test - -import ( - "fmt" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/mb" - "github.com/elastic/beats/metricbeat/mb/parse" -) - -var hostParser = parse.URLHostParserBuilder{ - DefaultScheme: "http", -}.Build() - -func init() { - // Register the MetricSetFactory function for the "status" MetricSet. - mb.Registry.MustAddMetricSet("someapp", "status", NewMetricSet, - mb.WithHostParser(hostParser), - ) -} - -type MetricSet struct { - mb.BaseMetricSet -} - -func NewMetricSet(base mb.BaseMetricSet) (mb.MetricSet, error) { - fmt.Println("someapp-status url=", base.HostData().SanitizedURI) - return &MetricSet{BaseMetricSet: base}, nil -} - -// Fetch will be called periodically by the framework. -func (ms *MetricSet) Fetch(report mb.Reporter) { - // Fetch data from the host at ms.HostData().URI and return the data. - data, err := common.MapStr{ - "some_metric": 18.0, - "answer_to_everything": 42, - }, error(nil) - if err != nil { - // Report an error if it occurs. - report.Error(err) - return - } - - // Otherwise report the collected data. - report.Event(data) -} - -// ExampleReportingMetricSet demonstrates how to register a MetricSetFactory -// and implement a ReportingMetricSet. -func ExampleReportingMetricSet() {} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/example_module_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/example_module_test.go deleted file mode 100644 index 7dd4d08c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/example_module_test.go +++ /dev/null @@ -1,35 +0,0 @@ -package mb_test - -import ( - "github.com/elastic/beats/metricbeat/mb" -) - -func init() { - // Register the ModuleFactory function for the "example" module. - if err := mb.Registry.AddModule("example", NewModule); err != nil { - panic(err) - } -} - -type Module struct { - mb.BaseModule - Protocol string -} - -func NewModule(base mb.BaseModule) (mb.Module, error) { - // Unpack additional configuration options. - config := struct { - Protocol string `config:"protocol"` - }{ - Protocol: "udp", - } - if err := base.UnpackConfig(&config); err != nil { - return nil, err - } - - return &Module{BaseModule: base, Protocol: config.Protocol}, nil -} - -// ExampleModuleFactory demonstrates how to register a custom ModuleFactory -// and unpack additional configuration data. -func ExampleModuleFactory() {} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/mb.go b/vendor/github.com/elastic/beats/metricbeat/mb/mb.go index bed0a1d3..e19b3fb1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/mb.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/mb.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mb (short for Metricbeat) contains the public interfaces that are used to implement Modules and their associated MetricSets. diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/mb_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/mb_test.go deleted file mode 100644 index 7c73132d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/mb_test.go +++ /dev/null @@ -1,360 +0,0 @@ -// +build !integration - -package mb - -import ( - "testing" - "time" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -type testModule struct { - BaseModule - hostParser func(string) (HostData, error) -} - -func (m testModule) ParseHost(host string) (HostData, error) { - return m.hostParser(host) -} - -// EventFetcher - -type testMetricSet struct { - BaseMetricSet -} - -func (m *testMetricSet) Fetch() (common.MapStr, error) { - return nil, nil -} - -// EventsFetcher - -type testMetricSetEventsFetcher struct { - BaseMetricSet -} - -func (m *testMetricSetEventsFetcher) Fetch() ([]common.MapStr, error) { - return nil, nil -} - -// ReportingFetcher - -type testMetricSetReportingFetcher struct { - BaseMetricSet -} - -func (m *testMetricSetReportingFetcher) Fetch(r Reporter) {} - -// PushMetricSet - -type testPushMetricSet struct { - BaseMetricSet -} - -func (m *testPushMetricSet) Run(r PushReporter) {} - -func TestModuleConfig(t *testing.T) { - tests := []struct { - in interface{} - out ModuleConfig - err string - }{ - { - in: map[string]interface{}{}, - err: "missing required field accessing 'module'", - }, - { - in: map[string]interface{}{ - "module": "example", - "metricsets": []string{"test"}, - }, - out: ModuleConfig{ - Module: "example", - MetricSets: []string{"test"}, - Enabled: true, - Period: time.Second * 10, - Timeout: 0, - }, - }, - { - in: map[string]interface{}{ - "module": "example", - "metricsets": []string{"test"}, - "period": -1, - }, - err: "negative value accessing 'period'", - }, - { - in: map[string]interface{}{ - "module": "example", - "metricsets": []string{"test"}, - "timeout": -1, - }, - err: "negative value accessing 'timeout'", - }, - } - - for i, test := range tests { - c, err := common.NewConfigFrom(test.in) - if err != nil { - t.Fatal(err) - } - - unpackedConfig := DefaultModuleConfig() - err = c.Unpack(&unpackedConfig) - if err != nil && test.err == "" { - t.Errorf("unexpected error while unpacking in testcase %d: %v", i, err) - continue - } - if test.err != "" { - if err != nil { - assert.Contains(t, err.Error(), test.err, "testcase %d", i) - } else { - t.Errorf("expected error '%v' in testcase %d", test.err, i) - } - continue - } - - assert.Equal(t, test.out, unpackedConfig) - } -} - -// TestModuleConfigDefaults validates that the default values are not changed. -// Any changes to this test case are probably indicators of non-backwards -// compatible changes affect all modules (including community modules). -func TestModuleConfigDefaults(t *testing.T) { - c, err := common.NewConfigFrom(map[string]interface{}{ - "module": "mymodule", - "metricsets": []string{"mymetricset"}, - }) - if err != nil { - t.Fatal(err) - } - - mc := DefaultModuleConfig() - err = c.Unpack(&mc) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, true, mc.Enabled) - assert.Equal(t, time.Second*10, mc.Period) - assert.Equal(t, time.Second*0, mc.Timeout) - assert.Empty(t, mc.Hosts) -} - -// TestNewModulesDuplicateHosts verifies that an error is returned by -// NewModules if any module configuration contains duplicate hosts. -func TestNewModulesDuplicateHosts(t *testing.T) { - r := newTestRegistry(t) - - c := newConfig(t, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{metricSetName}, - "hosts": []string{"a", "b", "a"}, - }) - - _, _, err := NewModule(c, r) - assert.Error(t, err) -} - -// TestNewModulesWithDefaultMetricSet verifies that the default MetricSet is -// instantiated when no metricsets are specified in the config. -func TestNewModulesWithDefaultMetricSet(t *testing.T) { - r := newTestRegistry(t, DefaultMetricSet()) - - c := newConfig(t, map[string]interface{}{ - "module": moduleName, - }) - - _, metricSets, err := NewModule(c, r) - if err != nil { - t.Fatal(err) - } - if assert.Len(t, metricSets, 1) { - assert.Equal(t, metricSetName, metricSets[0].Name()) - } -} - -func TestNewModulesHostParser(t *testing.T) { - const ( - name = "HostParser" - host = "example.com" - uri = "http://" + host - ) - - r := newTestRegistry(t) - - factory := func(base BaseMetricSet) (MetricSet, error) { - return &testMetricSet{base}, nil - } - - hostParser := func(m Module, rawHost string) (HostData, error) { - return HostData{URI: uri, Host: host}, nil - } - - if err := r.AddMetricSet(moduleName, name, factory, hostParser); err != nil { - t.Fatal(err) - } - - t.Run("MetricSet without HostParser", func(t *testing.T) { - ms := newTestMetricSet(t, r, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{metricSetName}, - "hosts": []string{uri}, - }) - - // The URI is passed through in the Host() and HostData().URI. - assert.Equal(t, uri, ms.Host()) - assert.Equal(t, HostData{URI: uri}, ms.HostData()) - }) - - t.Run("MetricSet with HostParser", func(t *testing.T) { - ms := newTestMetricSet(t, r, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{name}, - "hosts": []string{uri}, - }) - - // The URI is passed through in the Host() and HostData().URI. - assert.Equal(t, host, ms.Host()) - assert.Equal(t, HostData{URI: uri, Host: host}, ms.HostData()) - }) -} - -func TestNewModulesMetricSetTypes(t *testing.T) { - r := newTestRegistry(t) - - factory := func(base BaseMetricSet) (MetricSet, error) { - return &testMetricSet{base}, nil - } - - name := "EventFetcher" - if err := r.AddMetricSet(moduleName, name, factory); err != nil { - t.Fatal(err) - } - - t.Run(name+" MetricSet", func(t *testing.T) { - ms := newTestMetricSet(t, r, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{name}, - }) - _, ok := ms.(EventFetcher) - assert.True(t, ok, name+" not implemented") - }) - - factory = func(base BaseMetricSet) (MetricSet, error) { - return &testMetricSetEventsFetcher{base}, nil - } - - name = "EventsFetcher" - if err := r.AddMetricSet(moduleName, name, factory); err != nil { - t.Fatal(err) - } - - t.Run(name+" MetricSet", func(t *testing.T) { - ms := newTestMetricSet(t, r, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{name}, - }) - _, ok := ms.(EventsFetcher) - assert.True(t, ok, name+" not implemented") - }) - - factory = func(base BaseMetricSet) (MetricSet, error) { - return &testMetricSetReportingFetcher{base}, nil - } - - name = "ReportingFetcher" - if err := r.AddMetricSet(moduleName, name, factory); err != nil { - t.Fatal(err) - } - - t.Run(name+" MetricSet", func(t *testing.T) { - ms := newTestMetricSet(t, r, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{name}, - }) - - _, ok := ms.(ReportingMetricSet) - assert.True(t, ok, name+" not implemented") - }) - - factory = func(base BaseMetricSet) (MetricSet, error) { - return &testPushMetricSet{base}, nil - } - - name = "Push" - if err := r.AddMetricSet(moduleName, name, factory); err != nil { - t.Fatal(err) - } - - t.Run(name+" MetricSet", func(t *testing.T) { - ms := newTestMetricSet(t, r, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{name}, - }) - _, ok := ms.(PushMetricSet) - assert.True(t, ok, name+" not implemented") - }) -} - -// TestNewBaseModuleFromModuleConfigStruct tests the creation a new BaseModule. -func TestNewBaseModuleFromModuleConfigStruct(t *testing.T) { - moduleConf := DefaultModuleConfig() - moduleConf.Module = moduleName - moduleConf.MetricSets = []string{metricSetName} - - c := newConfig(t, moduleConf) - - baseModule, err := newBaseModuleFromConfig(c) - assert.NoError(t, err) - - assert.Equal(t, moduleName, baseModule.Name()) - assert.Equal(t, moduleName, baseModule.Config().Module) - assert.Equal(t, true, baseModule.Config().Enabled) - assert.Equal(t, time.Second*10, baseModule.Config().Period) - assert.Equal(t, time.Second*10, baseModule.Config().Timeout) - assert.Empty(t, baseModule.Config().Hosts) -} - -func newTestRegistry(t testing.TB, metricSetOptions ...MetricSetOption) *Register { - r := NewRegister() - - if err := r.AddModule(moduleName, DefaultModuleFactory); err != nil { - t.Fatal(err) - } - - factory := func(base BaseMetricSet) (MetricSet, error) { - return &testMetricSet{base}, nil - } - - if err := r.addMetricSet(moduleName, metricSetName, factory, metricSetOptions...); err != nil { - t.Fatal(err) - } - - return r -} - -func newTestMetricSet(t testing.TB, r *Register, config map[string]interface{}) MetricSet { - _, metricsets, err := NewModule(newConfig(t, config), r) - if err != nil { - t.Fatal(err) - } - if !assert.Len(t, metricsets, 1) { - assert.FailNow(t, "invalid number of metricsets") - } - - return metricsets[0] -} - -func newConfig(t testing.TB, moduleConfig interface{}) *common.Config { - config, err := common.NewConfigFrom(moduleConfig) - if err != nil { - t.Fatal(err) - } - return config -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/connector.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/connector.go index 4db466d5..2da153d9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/connector.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/connector.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/doc.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/doc.go index ad9747a8..1b6b13b1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module contains the low-level utilities for running Metricbeat // modules and metricsets. This is useful for building your own tool that // has a module and sub-module concept. If you want to reuse the whole diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/example_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/example_test.go deleted file mode 100644 index efa8e07e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/example_test.go +++ /dev/null @@ -1,148 +0,0 @@ -// +build !integration - -package module_test - -import ( - stdjson "encoding/json" - "fmt" - "sync" - "time" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/outputs/codec/json" - - "github.com/elastic/beats/metricbeat/mb" - "github.com/elastic/beats/metricbeat/mb/module" -) - -// ExampleWrapper demonstrates how to create a single Wrapper -// from configuration, start the module, and consume events generated by the -// module. -func ExampleWrapper() { - // Build a configuration object. - config, err := common.NewConfigFrom(map[string]interface{}{ - "module": moduleName, - "metricsets": []string{eventFetcherName}, - }) - if err != nil { - fmt.Println("Error:", err) - return - } - - // Create a new Wrapper based on the configuration. - m, err := module.NewWrapper(config, mb.Registry, module.WithMetricSetInfo()) - if err != nil { - fmt.Println("Error:", err) - return - } - - // Run the module until done is closed. - done := make(chan struct{}) - output := m.Start(done) - - // Process events from the output channel until it is closed. - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - for event := range output { - event.Fields.Put("metricset.rtt", 111) - - output, err := encodeEvent(event) - if err == nil { - fmt.Println(output) - } - } - }() - - // Simulate running for a while. - time.Sleep(50 * time.Millisecond) - - // When finished with the module, close the done channel. When the Module - // stops it will automatically close its output channel so that the output - // for loop stops. - close(done) - wg.Wait() - - // Output: - // { - // "@metadata": { - // "beat": "noindex", - // "type": "doc", - // "version": "1.2.3" - // }, - // "@timestamp": "2016-05-10T23:27:58.485Z", - // "fake": { - // "eventfetcher": { - // "metric": 1 - // } - // }, - // "metricset": { - // "module": "fake", - // "name": "eventfetcher", - // "rtt": 111 - // } - // } -} - -// ExampleRunner demonstrates how to use Runner to start and stop -// a module. -func ExampleRunner() { - // A *beat.Beat is injected into a Beater when it runs and contains the - // Publisher used to publish events. This Beat pointer is created here only - // for demonstration purposes. - var b *beat.Beat - - config, err := common.NewConfigFrom(map[string]interface{}{ - "module": moduleName, - "metricsets": []string{eventFetcherName}, - }) - if err != nil { - return - } - - // Create a new Wrapper based on the configuration. - m, err := module.NewWrapper(config, mb.Registry, module.WithMetricSetInfo()) - if err != nil { - return - } - - connector, err := module.NewConnector(b.Publisher, config, nil) - if err != nil { - return - } - - client, err := connector.Connect() - if err != nil { - return - } - - // Create the Runner facade. - runner := module.NewRunner(client, m) - - // Start the module and have it publish to a new publisher.Client. - runner.Start() - - // Stop the module. This blocks until all MetricSets in the Module have - // stopped and the publisher.Client is closed. - runner.Stop() -} - -func encodeEvent(event beat.Event) (string, error) { - output, err := json.New(false, "1.2.3").Encode("noindex", &event) - if err != nil { - return "", nil - } - - // FIX: need to parse and re-encode, so fields ordering in final json document - // keeps stable. - - var tmp interface{} - if err := stdjson.Unmarshal(output, &tmp); err != nil { - panic(err) - } - - output, err = stdjson.MarshalIndent(tmp, "", " ") - return string(output), err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/factory.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/factory.go index b580c1d2..49385647 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/factory.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/factory.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( @@ -52,3 +69,13 @@ func (r *Factory) Create(p beat.Pipeline, c *common.Config, meta *common.MapStrP mr := NewRunner(client, w) return mr, nil } + +// CheckConfig checks if a config is valid or not +func (r *Factory) CheckConfig(config *common.Config) error { + _, err := NewWrapper(config, mb.Registry, r.options...) + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/options.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/options.go index 21440710..cf5c7ac0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/options.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/options.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/options_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/options_test.go deleted file mode 100644 index e094422f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/options_test.go +++ /dev/null @@ -1,31 +0,0 @@ -package module - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/metricbeat/mb" -) - -func TestWithMaxStartDelay(t *testing.T) { - w := &Wrapper{} - WithMaxStartDelay(1)(w) - assert.EqualValues(t, 1, w.maxStartDelay) -} - -func TestWithMetricSetInfo(t *testing.T) { - w := &Wrapper{} - WithMetricSetInfo()(w) - assert.Len(t, w.eventModifiers, 1) -} - -func TestWithEventModifier(t *testing.T) { - f1 := func(module, metricset string, event *mb.Event) {} - f2 := func(module, metricset string, event *mb.Event) {} - - w := &Wrapper{} - WithEventModifier(f1)(w) - WithEventModifier(f2)(w) - assert.Len(t, w.eventModifiers, 2) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/publish.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/publish.go index 855998a3..40ce0154 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/publish.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/publish.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/runner.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/runner.go index 6710a46f..84f24dec 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/runner.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/runner.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( @@ -5,8 +22,18 @@ import ( "sync" "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/monitoring" +) + +var ( + moduleList *monitoring.UniqueList ) +func init() { + moduleList = monitoring.NewUniqueList() + monitoring.NewFunc(monitoring.GetNamespace("state").GetRegistry(), "module", moduleList.Report, monitoring.Report) +} + // Runner is a facade for a Wrapper that provides a simple interface // for starting and stopping a Module. type Runner interface { @@ -44,6 +71,7 @@ func (mr *runner) Start() { mr.startOnce.Do(func() { output := mr.mod.Start(mr.done) mr.wg.Add(1) + moduleList.Add(mr.mod.Name()) go func() { defer mr.wg.Done() PublishChannels(mr.client, output) @@ -56,6 +84,7 @@ func (mr *runner) Stop() { close(mr.done) mr.client.Close() mr.wg.Wait() + moduleList.Remove(mr.mod.Name()) }) } diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/runner_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/runner_test.go deleted file mode 100644 index b8d1a259..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/runner_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// +build !integration - -package module_test - -import ( - "testing" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - pubtest "github.com/elastic/beats/libbeat/publisher/testing" - "github.com/elastic/beats/metricbeat/mb" - "github.com/elastic/beats/metricbeat/mb/module" - - "github.com/stretchr/testify/assert" -) - -func TestRunner(t *testing.T) { - pubClient, factory := newPubClientFactory() - - config, err := common.NewConfigFrom(map[string]interface{}{ - "module": moduleName, - "metricsets": []string{eventFetcherName}, - }) - if err != nil { - t.Fatal(err) - } - - // Create a new Wrapper based on the configuration. - m, err := module.NewWrapper(config, mb.Registry, module.WithMetricSetInfo()) - if err != nil { - t.Fatal(err) - } - - // Create the Runner facade. - runner := module.NewRunner(factory(), m) - - // Start the module and have it publish to a new publisher.Client. - runner.Start() - - assert.NotNil(t, <-pubClient.Channel) - - // Stop the module. This blocks until all MetricSets in the Module have - // stopped and the publisher.Client is closed. - runner.Stop() -} - -// newPubClientFactory returns a new ChanClient and a function that returns -// the same Client when invoked. This simulates the return value of -// Publisher.Connect. -func newPubClientFactory() (*pubtest.ChanClient, func() beat.Client) { - client := pubtest.NewChanClient(10) - return client, func() beat.Client { return client } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/testing.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/testing.go index 27b83c04..c7ac928e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/wrapper.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/wrapper.go index 36462fab..c835447e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/wrapper.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/module/wrapper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/module/wrapper_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/module/wrapper_test.go deleted file mode 100644 index cc9326bc..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/module/wrapper_test.go +++ /dev/null @@ -1,212 +0,0 @@ -// +build !integration - -package module_test - -import ( - "testing" - "time" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/mb" - "github.com/elastic/beats/metricbeat/mb/module" - - "github.com/stretchr/testify/assert" -) - -const ( - moduleName = "fake" - eventFetcherName = "EventFetcher" - reportingFetcherName = "ReportingFetcher" - pushMetricSetName = "PushMetricSet" -) - -// fakeMetricSet - -func init() { - if err := mb.Registry.AddMetricSet(moduleName, eventFetcherName, newFakeEventFetcher); err != nil { - panic(err) - } - if err := mb.Registry.AddMetricSet(moduleName, reportingFetcherName, newFakeReportingFetcher); err != nil { - panic(err) - } - if err := mb.Registry.AddMetricSet(moduleName, pushMetricSetName, newFakePushMetricSet); err != nil { - panic(err) - } -} - -// EventFetcher - -type fakeEventFetcher struct { - mb.BaseMetricSet -} - -func (ms *fakeEventFetcher) Fetch() (common.MapStr, error) { - t, _ := time.Parse(time.RFC3339, "2016-05-10T23:27:58.485Z") - return common.MapStr{"@timestamp": common.Time(t), "metric": 1}, nil -} - -func (ms *fakeEventFetcher) Close() error { - return nil -} - -func newFakeEventFetcher(base mb.BaseMetricSet) (mb.MetricSet, error) { - return &fakeEventFetcher{BaseMetricSet: base}, nil -} - -// ReportingFetcher - -type fakeReportingFetcher struct { - mb.BaseMetricSet -} - -func (ms *fakeReportingFetcher) Fetch(r mb.Reporter) { - t, _ := time.Parse(time.RFC3339, "2016-05-10T23:27:58.485Z") - r.Event(common.MapStr{"@timestamp": common.Time(t), "metric": 1}) -} - -func newFakeReportingFetcher(base mb.BaseMetricSet) (mb.MetricSet, error) { - return &fakeReportingFetcher{BaseMetricSet: base}, nil -} - -// PushMetricSet - -type fakePushMetricSet struct { - mb.BaseMetricSet -} - -func (ms *fakePushMetricSet) Run(r mb.PushReporter) { - t, _ := time.Parse(time.RFC3339, "2016-05-10T23:27:58.485Z") - event := common.MapStr{"@timestamp": common.Time(t), "metric": 1} - r.Event(event) - <-r.Done() -} - -func newFakePushMetricSet(base mb.BaseMetricSet) (mb.MetricSet, error) { - return &fakePushMetricSet{BaseMetricSet: base}, nil -} - -// test utilities - -func newTestRegistry(t testing.TB) *mb.Register { - r := mb.NewRegister() - - if err := r.AddMetricSet(moduleName, eventFetcherName, newFakeEventFetcher); err != nil { - t.Fatal(err) - } - if err := r.AddMetricSet(moduleName, reportingFetcherName, newFakeReportingFetcher); err != nil { - t.Fatal(err) - } - if err := r.AddMetricSet(moduleName, pushMetricSetName, newFakePushMetricSet); err != nil { - t.Fatal(err) - } - - return r -} - -func newConfig(t testing.TB, moduleConfig interface{}) *common.Config { - config, err := common.NewConfigFrom(moduleConfig) - if err != nil { - t.Fatal(err) - } - return config -} - -// test cases - -func TestWrapperOfEventFetcher(t *testing.T) { - hosts := []string{"alpha", "beta"} - c := newConfig(t, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{eventFetcherName}, - "hosts": hosts, - }) - - m, err := module.NewWrapper(c, newTestRegistry(t)) - if err != nil { - t.Fatal(err) - } - - done := make(chan struct{}) - output := m.Start(done) - - <-output - <-output - close(done) - - // Validate that the channel is closed after receiving the two - // initial events. - select { - case _, ok := <-output: - if !ok { - // Channel is closed. - return - } else { - assert.Fail(t, "received unexpected event") - } - } -} - -func TestWrapperOfReportingFetcher(t *testing.T) { - hosts := []string{"alpha", "beta"} - c := newConfig(t, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{reportingFetcherName}, - "hosts": hosts, - }) - - m, err := module.NewWrapper(c, newTestRegistry(t)) - if err != nil { - t.Fatal(err) - } - - done := make(chan struct{}) - output := m.Start(done) - - <-output - <-output - close(done) - - // Validate that the channel is closed after receiving the two - // initial events. - select { - case _, ok := <-output: - if !ok { - // Channel is closed. - return - } else { - assert.Fail(t, "received unexpected event") - } - } -} - -func TestWrapperOfPushMetricSet(t *testing.T) { - hosts := []string{"alpha"} - c := newConfig(t, map[string]interface{}{ - "module": moduleName, - "metricsets": []string{pushMetricSetName}, - "hosts": hosts, - }) - - m, err := module.NewWrapper(c, newTestRegistry(t)) - if err != nil { - t.Fatal(err) - } - - done := make(chan struct{}) - output := m.Start(done) - - <-output - close(done) - - // Validate that the channel is closed after receiving the two - // initial events. - select { - case _, ok := <-output: - if !ok { - // Channel is closed. - return - } else { - assert.Fail(t, "received unexpected event") - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/parse/hostparsers.go b/vendor/github.com/elastic/beats/metricbeat/mb/parse/hostparsers.go index aba29316..5e193e1b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/parse/hostparsers.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/parse/hostparsers.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 parse import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/parse/url.go b/vendor/github.com/elastic/beats/metricbeat/mb/parse/url.go index 35e2199d..e8945d9d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/parse/url.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/parse/url.go @@ -1,9 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 parse import ( "fmt" "net" "net/url" + p "path" "strings" "github.com/elastic/beats/metricbeat/mb" @@ -32,7 +50,7 @@ func (b URLHostParserBuilder) Build() mb.HostParser { return mb.HostData{}, err } - var user, pass, path string + var user, pass, path, basePath string t, ok := conf["username"] if ok { user, ok = t.(string) @@ -60,8 +78,23 @@ func (b URLHostParserBuilder) Build() mb.HostParser { } else { path = b.DefaultPath } + // Normalize path + path = strings.Trim(path, "/") + + t, ok = conf["basepath"] + if ok { + basePath, ok = t.(string) + if !ok { + return mb.HostData{}, errors.Errorf("'basepath' config for module %v is not a string", module.Name()) + } + } + // Normalize basepath + basePath = strings.Trim(basePath, "/") + + // Combine paths and normalize + fullPath := strings.Trim(p.Join(basePath, path), "/") - return ParseURL(host, b.DefaultScheme, user, pass, path, b.QueryParams) + return ParseURL(host, b.DefaultScheme, user, pass, fullPath, b.QueryParams) } } diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/parse/url_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/parse/url_test.go deleted file mode 100644 index d585c53b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/parse/url_test.go +++ /dev/null @@ -1,113 +0,0 @@ -package parse - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestParseURL(t *testing.T) { - t.Run("http", func(t *testing.T) { - rawURL := "https://admin:secret@127.0.0.1:8080?hello=world" - hostData, err := ParseURL(rawURL, "http", "root", "passwd", "/test", "auto") - if assert.NoError(t, err) { - assert.Equal(t, "https://admin:secret@127.0.0.1:8080/test?auto=&hello=world", hostData.URI) - assert.Equal(t, "https://127.0.0.1:8080/test?auto=&hello=world", hostData.SanitizedURI) - assert.Equal(t, "127.0.0.1:8080", hostData.Host) - assert.Equal(t, "admin", hostData.User) - assert.Equal(t, "secret", hostData.Password) - } - }) - - t.Run("http+ipv6", func(t *testing.T) { - rawURL := "[2001:db8:85a3:0:0:8a2e:370:7334]:8080" - hostData, err := ParseURL(rawURL, "https", "", "", "", "") - if assert.NoError(t, err) { - assert.Equal(t, "https://[2001:db8:85a3:0:0:8a2e:370:7334]:8080", hostData.URI) - } - }) - - t.Run("unix", func(t *testing.T) { - rawURL := "unix:///var/lib/docker.sock" - hostData, err := ParseURL(rawURL, "tcp", "", "", "", "") - if assert.NoError(t, err) { - assert.Equal(t, "unix:///var/lib/docker.sock", hostData.URI) - assert.Equal(t, "unix:///var/lib/docker.sock", hostData.SanitizedURI) - assert.Equal(t, "/var/lib/docker.sock", hostData.Host) - assert.Equal(t, "", hostData.User) - assert.Equal(t, "", hostData.Password) - } - }) - - t.Run("npipe", func(t *testing.T) { - rawURL := "npipe://./pipe/docker_engine" - hostData, err := ParseURL(rawURL, "tcp", "", "", "", "") - if assert.NoError(t, err) { - assert.Equal(t, "npipe://./pipe/docker_engine", hostData.URI) - assert.Equal(t, "npipe://./pipe/docker_engine", hostData.SanitizedURI) - assert.Equal(t, "/pipe/docker_engine", hostData.Host) - assert.Equal(t, "", hostData.User) - assert.Equal(t, "", hostData.Password) - } - }) - - t.Run("set default user", func(t *testing.T) { - rawURL := "http://:secret@localhost" - h, err := ParseURL(rawURL, "https", "root", "passwd", "", "") - if assert.NoError(t, err) { - assert.Equal(t, "http://root:secret@localhost", h.URI) - assert.Equal(t, "root", h.User) - assert.Equal(t, "secret", h.Password) - } - }) - - t.Run("set default password", func(t *testing.T) { - rawURL := "http://admin@localhost" - h, err := ParseURL(rawURL, "https", "root", "passwd", "", "") - if assert.NoError(t, err) { - assert.Equal(t, "http://admin:passwd@localhost", h.URI) - assert.Equal(t, "admin", h.User) - assert.Equal(t, "passwd", h.Password) - } - }) - - t.Run("don't overwrite empty password", func(t *testing.T) { - rawURL := "http://admin:@localhost" - h, err := ParseURL(rawURL, "https", "root", "passwd", "", "") - if assert.NoError(t, err) { - assert.Equal(t, "http://admin:@localhost", h.URI) - assert.Equal(t, "admin", h.User) - assert.Equal(t, "", h.Password) - } - }) -} - -func TestURLHostParserBuilder(t *testing.T) { - const rawURL = "http://example.com" - - var cases = []struct { - config map[string]interface{} - builder URLHostParserBuilder - url string - }{ - {map[string]interface{}{"path": "/path"}, URLHostParserBuilder{PathConfigKey: "path", DefaultPath: "/default"}, "http://example.com/path"}, - {map[string]interface{}{}, URLHostParserBuilder{PathConfigKey: "path", DefaultPath: "/default"}, "http://example.com/default"}, - {map[string]interface{}{}, URLHostParserBuilder{DefaultPath: "/default"}, "http://example.com/default"}, - {map[string]interface{}{"username": "guest"}, URLHostParserBuilder{}, "http://guest@example.com"}, - {map[string]interface{}{"username": "guest", "password": "secret"}, URLHostParserBuilder{}, "http://guest:secret@example.com"}, - } - - for _, test := range cases { - m := mbtest.NewTestModule(t, test.config) - hostParser := test.builder.Build() - - hp, err := hostParser(m, rawURL) - if err != nil { - t.Fatal(err) - } - - assert.Equal(t, test.url, hp.URI) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/registry.go b/vendor/github.com/elastic/beats/metricbeat/mb/registry.go index db58d6e0..51f98cb1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/registry.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/registry.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mb import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/registry_test.go b/vendor/github.com/elastic/beats/metricbeat/mb/registry_test.go deleted file mode 100644 index 8585a1bb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/mb/registry_test.go +++ /dev/null @@ -1,227 +0,0 @@ -// +build !integration - -package mb - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -const ( - moduleName = "mymodule" - metricSetName = "mymetricset" -) - -var fakeModuleFactory = func(b BaseModule) (Module, error) { return nil, nil } -var fakeMetricSetFactory = func(b BaseMetricSet) (MetricSet, error) { return nil, nil } - -func TestAddModuleEmptyName(t *testing.T) { - registry := NewRegister() - err := registry.AddModule("", fakeModuleFactory) - if assert.Error(t, err) { - assert.Equal(t, "module name is required", err.Error()) - } -} - -func TestAddModuleNilFactory(t *testing.T) { - registry := NewRegister() - err := registry.AddModule(moduleName, nil) - if assert.Error(t, err) { - assert.Equal(t, "module 'mymodule' cannot be registered with a nil factory", err.Error()) - } -} - -func TestAddModuleDuplicateName(t *testing.T) { - registry := NewRegister() - err := registry.AddModule(moduleName, fakeModuleFactory) - if err != nil { - t.Fatal(err) - } - - err = registry.AddModule(moduleName, fakeModuleFactory) - if assert.Error(t, err) { - assert.Equal(t, "module 'mymodule' is already registered", err.Error()) - } -} - -func TestAddModule(t *testing.T) { - registry := NewRegister() - err := registry.AddModule(moduleName, fakeModuleFactory) - if err != nil { - t.Fatal(err) - } - factory, found := registry.modules[moduleName] - assert.True(t, found, "module not found") - assert.NotNil(t, factory, "factory fuction is nil") -} - -func TestAddMetricSetEmptyModuleName(t *testing.T) { - registry := NewRegister() - err := registry.AddMetricSet("", metricSetName, fakeMetricSetFactory) - if assert.Error(t, err) { - assert.Equal(t, "module name is required", err.Error()) - } -} - -func TestAddMetricSetEmptyName(t *testing.T) { - registry := NewRegister() - err := registry.AddMetricSet(moduleName, "", fakeMetricSetFactory) - if assert.Error(t, err) { - assert.Equal(t, "metricset name is required", err.Error()) - } -} - -func TestAddMetricSetNilFactory(t *testing.T) { - registry := NewRegister() - err := registry.AddMetricSet(moduleName, metricSetName, nil) - if assert.Error(t, err) { - assert.Equal(t, "metricset 'mymodule/mymetricset' cannot be registered with a nil factory", err.Error()) - } -} - -func TestAddMetricSetDuplicateName(t *testing.T) { - registry := NewRegister() - err := registry.AddMetricSet(moduleName, metricSetName, fakeMetricSetFactory) - if err != nil { - t.Fatal(err) - } - - err = registry.AddMetricSet(moduleName, metricSetName, fakeMetricSetFactory) - if assert.Error(t, err) { - assert.Equal(t, "metricset 'mymodule/mymetricset' is already registered", err.Error()) - } -} - -func TestAddMetricSet(t *testing.T) { - registry := NewRegister() - err := registry.AddMetricSet(moduleName, metricSetName, fakeMetricSetFactory) - if err != nil { - t.Fatal(err) - } - f, found := registry.metricSets[moduleName][metricSetName] - assert.True(t, found, "metricset not found") - assert.NotNil(t, f, "factory function is nil") -} - -func TestModuleFactory(t *testing.T) { - registry := NewRegister() - registry.modules[moduleName] = fakeModuleFactory - - module := registry.moduleFactory(moduleName) - assert.NotNil(t, module) -} - -func TestModuleFactoryUnknownModule(t *testing.T) { - registry := NewRegister() - module := registry.moduleFactory("unknown") - assert.Nil(t, module) -} - -func TestMetricSetFactory(t *testing.T) { - t.Run("without HostParser", func(t *testing.T) { - registry := NewRegister() - err := registry.AddMetricSet(moduleName, metricSetName, fakeMetricSetFactory) - if err != nil { - t.Fatal(err) - } - - reg, err := registry.metricSetRegistration(moduleName, metricSetName) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, metricSetName, reg.Name) - assert.NotNil(t, reg.Factory) - assert.Nil(t, reg.HostParser) - assert.False(t, reg.IsDefault) - assert.Empty(t, reg.Namespace) - }) - - t.Run("with HostParser", func(t *testing.T) { - registry := NewRegister() - hostParser := func(Module, string) (HostData, error) { return HostData{}, nil } - err := registry.AddMetricSet(moduleName, metricSetName, fakeMetricSetFactory, hostParser) - if err != nil { - t.Fatal(err) - } - - reg, err := registry.metricSetRegistration(moduleName, metricSetName) - if err != nil { - t.Fatal(err) - } - assert.NotNil(t, reg.HostParser) // Can't compare functions in Go so just check for non-nil. - }) - - t.Run("with options HostParser", func(t *testing.T) { - registry := NewRegister() - hostParser := func(Module, string) (HostData, error) { return HostData{}, nil } - err := registry.addMetricSet(moduleName, metricSetName, fakeMetricSetFactory, WithHostParser(hostParser)) - if err != nil { - t.Fatal(err) - } - - reg, err := registry.metricSetRegistration(moduleName, metricSetName) - if err != nil { - t.Fatal(err) - } - assert.NotNil(t, reg.HostParser) // Can't compare functions in Go so just check for non-nil. - }) - - t.Run("with namespace", func(t *testing.T) { - const ns = moduleName + "foo.bar" - - registry := NewRegister() - err := registry.addMetricSet(moduleName, metricSetName, fakeMetricSetFactory, WithNamespace(ns)) - if err != nil { - t.Fatal(err) - } - - reg, err := registry.metricSetRegistration(moduleName, metricSetName) - if err != nil { - t.Fatal(err) - } - assert.Equal(t, metricSetName, reg.Name) - assert.NotNil(t, reg.Factory) - assert.Nil(t, reg.HostParser) - assert.False(t, reg.IsDefault) - assert.Equal(t, ns, reg.Namespace) - }) -} - -func TestDefaultMetricSet(t *testing.T) { - registry := NewRegister() - err := registry.addMetricSet(moduleName, metricSetName, fakeMetricSetFactory, DefaultMetricSet()) - if err != nil { - t.Fatal(err) - } - - names, err := registry.DefaultMetricSets(moduleName) - if err != nil { - t.Fatal(err) - } - assert.Contains(t, names, metricSetName) -} - -func TestMetricSetQuery(t *testing.T) { - registry := NewRegister() - err := registry.AddMetricSet(moduleName, metricSetName, fakeMetricSetFactory) - if err != nil { - t.Fatal(err) - } - - metricsets := registry.MetricSets(moduleName) - assert.Equal(t, len(metricsets), 1) - assert.Equal(t, metricsets[0], metricSetName) - - metricsets = registry.MetricSets("foo") - assert.Equal(t, len(metricsets), 0) -} - -func TestModuleQuery(t *testing.T) { - registry := NewRegister() - registry.modules[moduleName] = fakeModuleFactory - - modules := registry.Modules() - assert.Equal(t, len(modules), 1) - assert.Equal(t, modules[0], moduleName) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/testing/data_generator.go b/vendor/github.com/elastic/beats/metricbeat/mb/testing/data_generator.go index 955e7419..b5087d27 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/testing/data_generator.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/testing/data_generator.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 testing import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/mb/testing/modules.go b/vendor/github.com/elastic/beats/metricbeat/mb/testing/modules.go index e14ab9b8..88d3ce78 100644 --- a/vendor/github.com/elastic/beats/metricbeat/mb/testing/modules.go +++ b/vendor/github.com/elastic/beats/metricbeat/mb/testing/modules.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 testing provides utility functions for testing Module and MetricSet implementations. diff --git a/vendor/github.com/elastic/beats/metricbeat/metricbeat.reference.yml b/vendor/github.com/elastic/beats/metricbeat/metricbeat.reference.yml index 907cf6f2..a5f55cb3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/metricbeat.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/metricbeat.reference.yml @@ -175,8 +175,8 @@ metricbeat.modules: period: 10s enabled: true - # Replace dots in labels with `_`. Set to false to keep dots - labels.dedot: true + # If set to true, replace dots in labels with `_`. + #labels.dedot: false # To connect to Docker over TLS you must specify a client and CA certificate. #ssl: @@ -199,11 +199,22 @@ metricbeat.modules: - node - node_stats #- index + #- index_recovery #- index_summary #- shard + #- ml_job period: 10s hosts: ["localhost:9200"] + # Set to false to fetch all entries + #index_recovery.active_only: true + +#----------------------------- envoyproxy Module ----------------------------- +- module: envoyproxy + metricsets: ["server"] + period: 10s + hosts: ["localhost:9901"] + #-------------------------------- Etcd Module -------------------------------- - module: etcd metricsets: ["leader", "self", "store"] @@ -346,7 +357,8 @@ metricbeat.modules: metricsets: ["status"] period: 10s hosts: ["localhost:5601"] - enabled: default + basepath: "" + enabled: true #----------------------------- Kubernetes Module ----------------------------- # Node metrics, from kubelet: @@ -360,10 +372,19 @@ metricbeat.modules: period: 10s hosts: ["localhost:10255"] enabled: true - #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] + #bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + #ssl.certificate_authorities: + # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt #ssl.certificate: "/etc/pki/client/cert.pem" #ssl.key: "/etc/pki/client/cert.key" + # Enriching parameters: + add_metadata: true + in_cluster: true + # When used outside the cluster: + #host: node_name + #kube_config: ~/.kube/config + # State metrics from kube-state-metrics service: - module: kubernetes enabled: true @@ -377,6 +398,13 @@ metricbeat.modules: period: 10s hosts: ["kube-state-metrics:8080"] + # Enriching parameters: + add_metadata: true + in_cluster: true + # When used outside the cluster: + #host: node_name + #kube_config: ~/.kube/config + # Kubernetes events - module: kubernetes enabled: true @@ -427,6 +455,21 @@ metricbeat.modules: # password configuration options. hosts: ["localhost:27017"] + # Optional SSL. By default is off. + #ssl.enabled: true + + # Mode of verification of server certificate ('none' or 'full') + #ssl.verification_mode: 'full' + + # List of root certificates for TLS server verifications + #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] + + # Certificate for SSL client authentication + #ssl.certificate: "/etc/pki/client/cert.pem" + + # Client Certificate Key + #ssl.key: "/etc/pki/client/cert.key" + # Username to use when connecting to MongoDB. Empty by default. #username: user @@ -443,7 +486,9 @@ metricbeat.modules: #-------------------------------- MySQL Module ------------------------------- - module: mysql - metricsets: ["status"] + metricsets: + - "status" + # - "galera_status" period: 10s # Host DSN should be defined as "user:pass@tcp(127.0.0.1:3306)/" @@ -524,6 +569,11 @@ metricbeat.modules: #metrics_path: /metrics #namespace: example + # This can be used for service account based authorization: + # bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + #ssl.certificate_authorities: + # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt + #------------------------------ RabbitMQ Module ------------------------------ - module: rabbitmq metricsets: ["node", "queue", "connection"] @@ -570,6 +620,12 @@ metricbeat.modules: # Redis AUTH password. Empty by default. #password: foobared +#------------------------------- traefik Module ------------------------------ +- module: traefik + metricsets: ["health"] + period: 10s + hosts: ["localhost:8080"] + #-------------------------------- uwsgi Module ------------------------------- - module: uwsgi metricsets: ["status"] @@ -848,6 +904,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 0 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" @@ -888,7 +947,18 @@ output.elasticsearch: # The default is 50. #bulk_max_size: 50 - # Configure http request timeout before failing an request to Elasticsearch. + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + + # Configure http request timeout before failing a request to Elasticsearch. #timeout: 90 # Use SSL settings for HTTPS. @@ -942,6 +1012,9 @@ output.elasticsearch: # Set gzip compression level. #compression_level: 3 + # Configure escaping html symbols in strings. + #escape_html: true + # Optional maximum time to live for a connection to Logstash, after which the # connection will be re-established. A value of `0s` (the default) will # disable this feature. @@ -952,7 +1025,7 @@ output.elasticsearch: # Optional load balance the events between the Logstash hosts. Default is false. #loadbalance: false - # Number of batches to be sent asynchronously to logstash while processing + # Number of batches to be sent asynchronously to Logstash while processing # new batches. #pipelining: 2 @@ -961,6 +1034,17 @@ output.elasticsearch: # if no error is encountered. #slow_start: false + # The number of seconds to wait before trying to reconnect to Logstash + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Logstash after a network error. The default is 60s. + #backoff.max: 60s + # Optional index name. The default index name is set to metricbeat # in all lowercase. #index: 'metricbeat' @@ -1007,6 +1091,21 @@ output.elasticsearch: # never, once, and freely. Default is never. #ssl.renegotiation: never + # The number of times to retry publishing an event after a publishing failure. + # After the specified number of retries, the events are typically dropped. + # Some Beats, such as Filebeat and Winlogbeat, ignore the max_retries setting + # and retry until all events are published. Set max_retries to a value less + # than 0 to retry until all events are published. The default is 3. + #max_retries: 3 + + # The maximum number of events to bulk in a single Logstash request. The + # default is 2048. + #bulk_max_size: 2048 + + # The number of seconds to wait for responses from the Logstash server before + # timing out. The default is 30s. + #timeout: 30s + #------------------------------- Kafka output ---------------------------------- #output.kafka: # Boolean flag to enable or disable the output module. @@ -1042,9 +1141,16 @@ output.elasticsearch: #username: '' #password: '' - # Kafka version metricbeat is assumed to run against. Defaults to the oldest - # supported stable version (currently version 0.8.2.0) - #version: 0.8.2 + # Kafka version metricbeat is assumed to run against. Defaults to the "1.0.0". + #version: '1.0.0' + + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true # Metadata update configuration. Metadata do contain leader information # deciding which broker to use when publishing. @@ -1092,6 +1198,10 @@ output.elasticsearch: # default is gzip. #compression: gzip + # Set the compression level. Currently only gzip provides a compression level + # between 0 and 9. The default value is chosen by the compression algorithm. + #compression_level: 4 + # The maximum permitted size of JSON-encoded messages. Bigger messages will be # dropped. The default value is 1000000 (bytes). This value should be equal to # or less than the broker's message.max.bytes. @@ -1148,6 +1258,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # The list of Redis servers to connect to. If load balancing is enabled, the # events are distributed to the servers in the list. If one server becomes # unreachable, the events are distributed to the reachable servers only. @@ -1195,6 +1313,17 @@ output.elasticsearch: # until all events are published. The default is 3. #max_retries: 3 + # The number of seconds to wait before trying to reconnect to Redis + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Redis after a network error. The default is 60s. + #backoff.max: 60s + # The maximum number of events to bulk in a single Redis request or pipeline. # The default is 2048. #bulk_max_size: 2048 @@ -1249,6 +1378,14 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true + # Path to the directory where to save the generated files. The option is # mandatory. #path: "/tmp/metricbeat" @@ -1276,8 +1413,13 @@ output.elasticsearch: # Boolean flag to enable or disable the output module. #enabled: true - # Pretty print json event - #pretty: false + # Configure JSON encoding + #codec.json: + # Pretty print json event + #pretty: false + + # Configure escaping html symbols in strings. + #escape_html: true #================================= Paths ====================================== @@ -1375,6 +1517,13 @@ output.elasticsearch: # Path to fields.yml file to generate the template #setup.template.fields: "${path.config}/fields.yml" +# A list of fields to be added to the template and Kibana index pattern. Also +# specify setup.template.overwrite: true to overwrite the existing template. +# This setting is experimental. +#setup.template.append_fields: +#- name: field_name +# type: field_type + # Enable json template loading. If this is enabled, the fields.yml is ignored. #setup.template.json.enabled: false @@ -1561,6 +1710,17 @@ logging.files: # The default is 50. #bulk_max_size: 50 + # The number of seconds to wait before trying to reconnect to Elasticsearch + # after a network error. After waiting backoff.init seconds, the Beat + # tries to reconnect. If the attempt fails, the backoff timer is increased + # exponentially up to backoff.max. After a successful connection, the backoff + # timer is reset. The default is 1s. + #backoff.init: 1s + + # The maximum number of seconds to wait before attempting to connect to + # Elasticsearch after a network error. The default is 60s. + #backoff.max: 60s + # Configure http request timeout before failing an request to Elasticsearch. #timeout: 90 @@ -1600,6 +1760,9 @@ logging.files: # never, once, and freely. Default is never. #ssl.renegotiation: never + #metrics.period: 10s + #state.period: 1m + #================================ HTTP Endpoint ====================================== # Each beat can expose internal metrics through a HTTP endpoint. For security # reasons the endpoint is disabled by default. This feature is currently experimental. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/_meta/docs.asciidoc index 3cbf6660..7ec7e96d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/_meta/docs.asciidoc @@ -3,4 +3,4 @@ The Aerospike module uses the http://www.aerospike.com/docs/reference/info[Info [float] === Compatibility -The Aeropsike metricsets were tested with Aerospike 3.9 and are expected to work with all versions >= 3.9. +The Aerospike metricsets were tested with Aerospike 3.9 and are expected to work with all versions >= 3.9. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/aerospike.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/aerospike.go index 83173d90..8c9e9078 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/aerospike.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/aerospike.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 aerospike import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/aerospike_test.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/aerospike_test.go deleted file mode 100644 index 67315947..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/aerospike_test.go +++ /dev/null @@ -1,81 +0,0 @@ -package aerospike - -import ( - "errors" - "testing" - - "github.com/stretchr/testify/assert" - - as "github.com/aerospike/aerospike-client-go" -) - -func TestParseHost(t *testing.T) { - tests := []struct { - Name string - Host string - expectedHost *as.Host - expectedErr error - }{ - { - Name: "with hostname and port", - Host: "localhost:3000", - expectedHost: as.NewHost("localhost", 3000), - }, - { - Name: "without port", - Host: "localhost", - expectedErr: errors.New("Can't parse host localhost"), - }, - { - Name: "with wrong port", - Host: "localhost:wrong", - expectedErr: errors.New("Can't parse port: strconv.Atoi: parsing \"wrong\": invalid syntax"), - }, - } - - for _, test := range tests { - result, err := ParseHost(test.Host) - if err != nil { - if test.expectedErr != nil { - assert.Equal(t, test.expectedErr.Error(), err.Error()) - continue - } - t.Error(err) - continue - } - - assert.Equal(t, test.expectedHost.String(), result.String(), test.Name) - } -} - -func TestParseInfo(t *testing.T) { - tests := []struct { - Name string - info string - expected map[string]interface{} - }{ - { - Name: "with kv", - info: "key1=value1;key2=value2", - expected: map[string]interface{}{ - "key1": "value1", - "key2": "value2", - }, - }, - { - Name: "without kv", - info: "wrong result", - expected: map[string]interface{}{}, - }, - { - Name: "mixed", - info: "wrong result;key=value", - expected: map[string]interface{}{"key": "value"}, - }, - } - - for _, test := range tests { - result := ParseInfo(test.info) - assert.Equal(t, test.expected, result, test.Name) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/doc.go index 356b03de..ed73cfb9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 aerospike is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/fields.go new file mode 100644 index 00000000..8ceb6d37 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package aerospike + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "aerospike", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzUmMGO4zYMhu95CmIve2nyADkUWLSXHnZRFL0VxYCR6FgdWTQkalIDffhCdjzj2HKSycxuPDrkYFnk/8mkRGYNj9RsAclzqM0jrQDEiKUtfPrSP/u0AtAUlDe1GHZb+HkFAPA8DxXraNNST5Yw0BZ2JLgCKAxZHbbt62twWNGpqzSkqWkLe8+xPj7J+Do1NTSXfkONip5nciZnzXYjZ2TM0o+xkKEYZQ05OZmaU3NBURq/tNYgCErYjGZzKoZKNFkSmkyfU3OFooGqzgGIRxdQpQUhr/Sc2qFi8p599o1etGW3n3nhCt1pfIvVjjxwcfxSWQopUaBAY0nDwUgJ6DpxObJBILI8FBydXgyDpxCtkAbjAJM+aPWdxwhRKQrhh0Ec/RXRnuE5L1lMRRzHaff9JF/a96RHA0eZyu4le8JcnLxXcibzHz01xwydiguhcLcknKidZOCHyb9J8Cwy+/IbfkXqHbz5rhdja/+jJ18G4sZr8f7xPGVZZEDPbflMSL8Uek9GjeP55pLzVxMeIQh73FMXtq+sO/EJjcWdpU2tclvYKQsKLemHwjLmXirYVyhbqMmraT19BUYaXwlD9JR2kaAyzlSxAsVOzD5yDKBb1FT0AyrPIQBa2z4Nx4Kpbwrmz5LC0/1Bf+8Wpy/GRYelsEZlpGkFJi8gpQnXEAkL2s2uEcql7Nng72HmFl+B8mfy3hl4Zjl+ImtZYbpKhUcw0B7+6QnrM2QxkF4gWJIFu+Z6pp6nPFQPO0+oShpXOx3NjtkSutcdAL8VID7ST4PuvsQAvSP4XJp9uT6gkF//lTD+q6hi3/y9rpV8vhhqvfhu0XudWl9ba6fn1msb5gWmcrdJF5P5NfGvUfBuSfCl4uhkQMZKxdp08Z+UvRHOOE3/LpMu3UGtvDcihgUzBlLsNPqmI6XwRtZFXUVH3ptP6/SbPe4eqTmwH5/gFwR+e/Y8sfvSCWvalBzy/0be5pU1wcTkicN3xkwOZwl59w+pSYF68yXyByn2eqZZu3R7VBiEcl3a2TC9Igxf2gR/1DeMNTiURpWAPtWwYp7oKCTT4ZwUeD9EqHHjNHk5D2bzJAjXD20rlP+wbylqxnJMABW9Jye2af+eSUXmwbh914uFzer/AAAA///Vf1x3" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/_meta/fields.yml index f9f094cd..c5540bee 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/_meta/fields.yml @@ -133,7 +133,7 @@ Namespace name - name: node.host type: keyword - desription: > + description: > Node host - name: node.name type: keyword diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/data.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/data.go index a404b348..9a0b3bd3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 namespace import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/namespace.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/namespace.go index c7e0afcb..dd3cad0c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/namespace.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/namespace.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 namespace import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/namespace_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/namespace_integration_test.go deleted file mode 100644 index 0f4b4ec2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/namespace/namespace_integration_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// +build integration - -package namespace - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/aerospike" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "aerospike") - - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "aerospike", - "metricsets": []string{"namespace"}, - "hosts": []string{aerospike.GetAerospikeEnvHost() + ":" + aerospike.GetAerospikeEnvPort()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/testing.go index e66df0e8..298634e8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/aerospike/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/aerospike/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 aerospike import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/apache/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/apache/doc.go index b0090c6c..cea585d1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/apache/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/apache/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 apache is Metricbeat module for the Apache HTTPD server. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/apache/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/apache/fields.go new file mode 100644 index 00000000..f68ffd9f --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/apache/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package apache + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "apache", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzMl8Fu4zYQhu9+ioHva2wOe/GhwHYXaIsG7SLJooei0NLUSCZMc1QOFcNvX5CUVcURtbJrFtEpsKL//2Y4nCHfwQ6PaxCNkFtcADjlNK5h+TH8sFwAlMjSqsYpMmv4YQEAEF/Cz09PXz4Do31GC3t0VklGxyBJa5QOS6gs7cFt8fTFATfd/68WALwl6wpJplL1Giqh2RNY1CgY11AL/z/onDI1r+HPJbNe/rUAqBTqktcB5R0YscdBAP5xx8Z/b6ltul9GgvDPt/jZN5BknFCGA2wXCritcHBAi8DSiuYUT4xl1YkMYYZA7IRruf95DMo/L6M9PQncgByFL0MeLEH8HBpR9yGMhTEMZUvs/F8vXp4C2uHxQLY8ezcRwKCATsKrUVtHTuhCSInMyKPmmkx9mfOTFwXT7jdogSqI8mDx7xbZ8RTJbnN02Th2SlPQj/ujHAc5YRYN2oJRjsKwFBrLotIk3GVQD508NGiBUZJJcATSTBA/hizMJ+hyko2i0x/HOJDdoeXVpuXjjSrjt74mvGjvMGmvSj2+O/+LvRedtm8bpxJt4bzPzXD+GtRCgzrzG29PQ5I4VIpRoMlszODyz2McclEflOlq8xXnd3Jzc5TxdZFNe6tF+fTl63UrokmcDwWYsy9nZsFz3ZMoJxaA0WYG8BYh0DQFH9nhPiPHYzDwS56GkFulS4um+B9yQlVvF/Izgyp7js65omFi75AxKL3a+Ki/Zg/1ktdtpXD8yNBJ4hlkEHB6rQQfjVwdrPKH8QwoH73+AAU6q+8R7RCbQmj1nKPTRihvgSUEk0uSJTVx1mRpYizTRBON+OpK9h0XxDNaUePFZby8W167x/1rZeqiEtKRXcPd+/fXpW4YAFRkw81IC3awV6Z1mF7U5Ye3TP+h45+oyuXdm47gLhFCP0glWdyQeHXVvLqYH3vF0/X54lOnE9Z3qeKVNdzioNepQ9ukV9WiKD3B+C3oFhgP0SFxRX6RDjQdS6PPb0M3SUjUhwevn8bwDTvXSPgVsYmjIO1fGi400S5LUXw2DPdBfGIhutFT/DsbMpB8iibzRqKmus4zDO8Tyifn2gqJVav1saiUUbzNg/FTbwO9TTod/mpdSI3CZCmSX/zNvZOfWBRq/OFbU46u8Xvjz9mapvrFQYQzXlGRzVuqf0SjMHBmlWvWE/dq8U8AAAD//9qCufU=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/data.go b/vendor/github.com/elastic/beats/metricbeat/module/apache/status/data.go index aa124aaa..f20c61d0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/apache/status/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( @@ -76,17 +93,17 @@ var ( } ) -func applySchema(event common.MapStr, fullEvent map[string]interface{}) *s.Errors { +func applySchema(event common.MapStr, fullEvent map[string]interface{}) error { applicableSchema := schema if _, found := fullEvent["ServerUptimeSeconds"]; !found { applicableSchema = schemaOld } _, err := applicableSchema.ApplyTo(event, fullEvent) - return err + return err.Err() } // Map body to MapStr -func eventMapping(scanner *bufio.Scanner, hostname string) (common.MapStr, *s.Errors) { +func eventMapping(scanner *bufio.Scanner, hostname string) (common.MapStr, error) { var ( totalS int totalR int diff --git a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status.go b/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status.go index 88a70d1f..c1d6761e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status reads Apache HTTPD server status from the mod_status module. package status diff --git a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status_integration_test.go deleted file mode 100644 index 23408a3f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status_integration_test.go +++ /dev/null @@ -1,49 +0,0 @@ -// +build integration - -package status - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/apache" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "apache") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check number of fields. - if len(event) < 11 { - t.Fatal("Too few top-level elements in the event") - } -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "apache") - - f := mbtest.NewEventFetcher(t, getConfig()) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "apache", - "metricsets": []string{"status"}, - "hosts": []string{apache.GetApacheEnvHost()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status_test.go b/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status_test.go deleted file mode 100644 index 77a62823..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/apache/status/status_test.go +++ /dev/null @@ -1,241 +0,0 @@ -// +build !integration - -package status - -import ( - "bufio" - "net" - "net/http" - "net/http/httptest" - "os" - "path/filepath" - "sync" - "testing" - "time" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -// response is a raw response copied from an Apache web server. -const response = `apache -ServerVersion: Apache/2.4.18 (Unix) -ServerMPM: event -Server Built: Mar 2 2016 21:08:47 -CurrentTime: Thursday, 12-May-2016 20:30:25 UTC -RestartTime: Saturday, 30-Apr-2016 23:17:22 UTC -ParentServerConfigGeneration: 1 -ParentServerMPMGeneration: 0 -ServerUptimeSeconds: 1026782 -ServerUptime: 11 days 21 hours 13 minutes 2 seconds -Load1: 0.02 -Load5: 0.01 -Load15: 0.05 -Total Accesses: 167 -Total kBytes: 63 -CPUUser: 14076.6 -CPUSystem: 6750.8 -CPUChildrenUser: 10.1 -CPUChildrenSystem: 11.2 -CPULoad: 2.02841 -Uptime: 1026782 -ReqPerSec: .000162644 -BytesPerSec: .0628293 -BytesPerReq: 386.299 -BusyWorkers: 1 -IdleWorkers: 99 -ConnsTotal: 6 -ConnsAsyncWriting: 1 -ConnsAsyncKeepAlive: 2 -ConnsAsyncClosing: 3 -Scoreboard: __________________________________________________________________________________W_________________............................................................................................................................................................................................................................................................................................................` - -// TestFetchEventContents verifies the contents of the returned event against -// the raw Apache response. -func TestFetchEventContents(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "apache", - "metricsets": []string{"status"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.Equal(t, 386.299, event["bytes_per_request"]) - assert.Equal(t, .0628293, event["bytes_per_sec"]) - - workers := event["workers"].(common.MapStr) - assert.EqualValues(t, 1, workers["busy"]) - assert.EqualValues(t, 99, workers["idle"]) - - connections := event["connections"].(common.MapStr) - async := connections["async"].(common.MapStr) - assert.EqualValues(t, 3, async["closing"]) - assert.EqualValues(t, 2, async["keep_alive"]) - assert.EqualValues(t, 1, async["writing"]) - assert.EqualValues(t, 6, connections["total"]) - - cpu := event["cpu"].(common.MapStr) - assert.Equal(t, 11.2, cpu["children_system"]) - assert.Equal(t, 10.1, cpu["children_user"]) - assert.Equal(t, 2.02841, cpu["load"]) - assert.Equal(t, 6750.8, cpu["system"]) - assert.Equal(t, 14076.6, cpu["user"]) - - assert.Equal(t, server.URL[7:], event["hostname"]) - - load := event["load"].(common.MapStr) - assert.Equal(t, .02, load["1"]) - assert.Equal(t, .05, load["15"]) - assert.Equal(t, .01, load["5"]) - - assert.Equal(t, .000162644, event["requests_per_sec"]) - - scoreboard := event["scoreboard"].(common.MapStr) - assert.Equal(t, 0, scoreboard["closing_connection"]) - assert.Equal(t, 0, scoreboard["dns_lookup"]) - assert.Equal(t, 0, scoreboard["gracefully_finishing"]) - assert.Equal(t, 0, scoreboard["idle_cleanup"]) - assert.Equal(t, 0, scoreboard["keepalive"]) - assert.Equal(t, 0, scoreboard["logging"]) - assert.Equal(t, 300, scoreboard["open_slot"]) // Number of '.' - assert.Equal(t, 0, scoreboard["reading_request"]) - assert.Equal(t, 1, scoreboard["sending_reply"]) // Number of 'W' - assert.Equal(t, 400, scoreboard["total"]) // Number of scorecard chars. - assert.Equal(t, 99, scoreboard["waiting_for_connection"]) // Number of '_' - - assert.EqualValues(t, 167, event["total_accesses"]) - assert.EqualValues(t, 63, event["total_kbytes"]) - - uptime := event["uptime"].(common.MapStr) - assert.EqualValues(t, 1026782, uptime["uptime"]) - assert.EqualValues(t, 1026782, uptime["server_uptime"]) -} - -// TestFetchTimeout verifies that the HTTP request times out and an error is -// returned. -func TestFetchTimeout(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(response)) - time.Sleep(100 * time.Millisecond) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "apache", - "metricsets": []string{"status"}, - "hosts": []string{server.URL}, - "timeout": "50ms", - } - - f := mbtest.NewEventFetcher(t, config) - - start := time.Now() - _, err := f.Fetch() - elapsed := time.Since(start) - if assert.Error(t, err) { - assert.Contains(t, err.Error(), "request canceled (Client.Timeout exceeded") - } - - // Elapsed should be ~50ms, sometimes it can be up to 1s - assert.True(t, elapsed < 5*time.Second, "elapsed time: %s", elapsed.String()) -} - -// TestMultipleFetches verifies that the server connection is reused when HTTP -// keep-alive is supported by the server. -func TestMultipleFetches(t *testing.T) { - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(response)) - })) - - connLock := sync.Mutex{} - conns := map[string]struct{}{} - server.Config.ConnState = func(conn net.Conn, state http.ConnState) { - connLock.Lock() - conns[conn.RemoteAddr().String()] = struct{}{} - connLock.Unlock() - } - - server.Start() - defer server.Close() - - config := map[string]interface{}{ - "module": "apache", - "metricsets": []string{"status"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventFetcher(t, config) - - for i := 0; i < 20; i++ { - _, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - } - - connLock.Lock() - assert.Len(t, conns, 1, - "only a single connection should exist because of keep-alives") - connLock.Unlock() -} - -func TestHostParser(t *testing.T) { - var tests = []struct { - host string - url string - err string - }{ - {"", "", "empty host"}, - {":80", "", "empty host"}, - {"localhost", "http://localhost/server-status?auto=", ""}, - {"localhost/ServerStatus", "http://localhost/ServerStatus?auto=", ""}, - {"127.0.0.1", "http://127.0.0.1/server-status?auto=", ""}, - {"https://127.0.0.1", "https://127.0.0.1/server-status?auto=", ""}, - {"[2001:db8:0:1]:80", "http://[2001:db8:0:1]:80/server-status?auto=", ""}, - {"https://admin:secret@127.0.0.1", "https://admin:secret@127.0.0.1/server-status?auto=", ""}, - } - - for _, test := range tests { - hostData, err := hostParser(mbtest.NewTestModule(t, map[string]interface{}{}), test.host) - if err != nil && test.err != "" { - assert.Contains(t, err.Error(), test.err) - } else if assert.NoError(t, err, "unexpected error") { - assert.Equal(t, test.url, hostData.URI) - } - } -} - -// Test event mapping for different apache status outputs -func TestStatusOutputs(t *testing.T) { - files, err := filepath.Glob("./_meta/test/status_*") - assert.NoError(t, err) - - for _, filename := range files { - f, err := os.Open(filename) - assert.NoError(t, err, "cannot open test file "+filename) - scanner := bufio.NewScanner(f) - - _, errors := eventMapping(scanner, "localhost") - assert.False(t, errors.HasRequiredErrors(), "error mapping "+filename) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/apache/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/apache/testing.go index 47e37b6c..4b2e0571 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/apache/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/apache/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 apache import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/ceph/_meta/Dockerfile index 97baf668..075f1d48 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/_meta/Dockerfile +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/_meta/Dockerfile @@ -1,7 +1,4 @@ -FROM ceph/demo:tag-build-master-jewel-centos-7 - -ENV MON_IP 0.0.0.0 -ENV CEPH_PUBLIC_NETWORK 0.0.0.0/0 +FROM ceph/daemon:master-6373c6a-jewel-centos-7-x86_64 RUN yum -q install -y jq && yum clean all && rm -fr /var/cache/yum @@ -11,3 +8,8 @@ HEALTHCHECK --interval=1s --retries=300 \ | jq .output.health.health_services[0].mons[0] \ | grep health EXPOSE 5000 + +ENV NETWORK_AUTO_DETECT 4 +ENV DEMO_DAEMONS osd,rest_api + +CMD ["demo"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk.go index d6cde915..5168c4bc 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_disk import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk_integration_test.go deleted file mode 100644 index 3937c7e9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk_integration_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package cluster_disk - -import ( - "fmt" - "os" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"cluster_disk"}, - "hosts": getTestCephHost(), - } -} - -const ( - cephDefaultHost = "127.0.0.1" - cephDefaultPort = "5000" -) - -func getTestCephHost() string { - return fmt.Sprintf("%v:%v", - getenv("CEPH_HOST", cephDefaultHost), - getenv("CEPH_PORT", cephDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk_test.go deleted file mode 100644 index 028f99e6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/cluster_disk_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package cluster_disk - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("../_meta/testdata/") - assert.NoError(t, err) - - response, err := ioutil.ReadFile(absPath + "/df_sample_response.json") - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"cluster_disk"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - used := event["used"].(common.MapStr) - assert.EqualValues(t, 1428520960, used["bytes"]) - - total := event["total"].(common.MapStr) - assert.EqualValues(t, uint64(6431965184), total["bytes"]) - - available := event["available"].(common.MapStr) - assert.EqualValues(t, uint64(5003444224), available["bytes"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/data.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/data.go index 70f2026d..d4245aa8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_disk/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_disk import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health.go index 0fe98a60..59b15bb4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_health import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health_integration_test.go deleted file mode 100644 index ea60f917..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health_integration_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package cluster_health - -import ( - "fmt" - "os" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"cluster_health"}, - "hosts": getTestCephHost(), - } -} - -const ( - cephDefaultHost = "127.0.0.1" - cephDefaultPort = "5000" -) - -func getTestCephHost() string { - return fmt.Sprintf("%v:%v", - getenv("CEPH_HOST", cephDefaultHost), - getenv("CEPH_PORT", cephDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health_test.go deleted file mode 100644 index f1b0ff7e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/cluster_health_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package cluster_health - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("../_meta/testdata/") - assert.NoError(t, err) - - response, err := ioutil.ReadFile(absPath + "/sample_response.json") - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"cluster_health"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, "HEALTH_OK", event["overall_status"]) - - timechecks := event["timechecks"].(common.MapStr) - assert.EqualValues(t, 3, timechecks["epoch"]) - - round := timechecks["round"].(common.MapStr) - assert.EqualValues(t, 0, round["value"]) - assert.EqualValues(t, "finished", round["status"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/data.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/data.go index 564ffaf3..e2dd642e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_health/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_health import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status.go index f04631a2..34bcd20e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_status import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status_integration_test.go deleted file mode 100644 index 6ac2bcae..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status_integration_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package cluster_status - -import ( - "fmt" - "os" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"cluster_status"}, - "hosts": getTestCephHost(), - } -} - -const ( - cephDefaultHost = "127.0.0.1" - cephDefaultPort = "5000" -) - -func getTestCephHost() string { - return fmt.Sprintf("%v:%v", - getenv("CEPH_HOST", cephDefaultHost), - getenv("CEPH_PORT", cephDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status_test.go deleted file mode 100644 index 5d84059e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/cluster_status_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package cluster_status - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("../_meta/testdata/") - assert.NoError(t, err) - - response, err := ioutil.ReadFile(absPath + "/status_sample_response.json") - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"cluster_status"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - //check status version number - assert.EqualValues(t, 813, event["version"]) - - //check osd info - osdmap := event["osd"].(common.MapStr) - assert.EqualValues(t, false, osdmap["full"]) - assert.EqualValues(t, false, osdmap["nearfull"]) - assert.EqualValues(t, 6, osdmap["osd_count"]) - assert.EqualValues(t, 3, osdmap["up_osd_count"]) - assert.EqualValues(t, 4, osdmap["in_osd_count"]) - assert.EqualValues(t, 240, osdmap["remapped_pg_count"]) - assert.EqualValues(t, 264, osdmap["epoch"]) - - //check traffic info - trafficInfo := event["traffic"].(common.MapStr) - assert.EqualValues(t, 55667788, trafficInfo["read_bytes"]) - assert.EqualValues(t, 1234, trafficInfo["read_op_per_sec"]) - assert.EqualValues(t, 11996158, trafficInfo["write_bytes"]) - assert.EqualValues(t, 10, trafficInfo["write_op_per_sec"]) - - //check misplace info - misplaceInfo := event["misplace"].(common.MapStr) - assert.EqualValues(t, 768, misplaceInfo["total"]) - assert.EqualValues(t, 88, misplaceInfo["objects"]) - assert.EqualValues(t, 0.114583, misplaceInfo["pct"]) - - //check degraded info - degradedInfo := event["degraded"].(common.MapStr) - assert.EqualValues(t, 768, degradedInfo["total"]) - assert.EqualValues(t, 294, degradedInfo["objects"]) - assert.EqualValues(t, 0.382812, degradedInfo["pct"]) - - //check pg info - pgInfo := event["pg"].(common.MapStr) - assert.EqualValues(t, 1054023794, pgInfo["data_bytes"]) - assert.EqualValues(t, 9965821952, pgInfo["avail_bytes"]) - assert.EqualValues(t, 12838682624, pgInfo["total_bytes"]) - assert.EqualValues(t, 2872860672, pgInfo["used_bytes"]) - - //check pg_state info - pg_stateInfo := events[1]["pg_state"].(common.MapStr) - assert.EqualValues(t, "active+undersized+degraded", pg_stateInfo["state_name"]) - assert.EqualValues(t, 109, pg_stateInfo["count"]) - assert.EqualValues(t, 813, pg_stateInfo["version"]) - - pg_stateInfo = events[2]["pg_state"].(common.MapStr) - assert.EqualValues(t, "undersized+degraded+peered", pg_stateInfo["state_name"]) - assert.EqualValues(t, 101, pg_stateInfo["count"]) - assert.EqualValues(t, 813, pg_stateInfo["version"]) - - pg_stateInfo = events[3]["pg_state"].(common.MapStr) - assert.EqualValues(t, "active+remapped", pg_stateInfo["state_name"]) - assert.EqualValues(t, 55, pg_stateInfo["count"]) - assert.EqualValues(t, 813, pg_stateInfo["version"]) - - pg_stateInfo = events[4]["pg_state"].(common.MapStr) - assert.EqualValues(t, "active+undersized+degraded+remapped", pg_stateInfo["state_name"]) - assert.EqualValues(t, 55, pg_stateInfo["count"]) - assert.EqualValues(t, 813, pg_stateInfo["version"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/data.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/data.go index 58be2931..ad49607a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/cluster_status/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_status import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/doc.go index 031b80e3..d324be0e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ceph is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/fields.go new file mode 100644 index 00000000..cb2cb9ae --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package ceph + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "ceph", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzEml9v2zYQwN/zKQ552oDE2F79MKDrCjTY0gZL+zQMKk2eJM4USZBUXH/7gdQfx/pvh3b11FrK3U93x+Pdifewxf0aKOr8BsBxJ3ANt+9R57c3AAwtNVw7ruQafrsBAPC3oFCsFHgDYHNlXEKVTHm2hpQI6381KJBYXMMGHfFPoXNcZnYN/9xaK27/vQFIOQpm10HmPUhSYEvhL7fXuIbMqFLXvwyw+Oub/6NvQJV0hEsLLkco0BlO/b+Jgx0aBEsN0cggNaqA9x+ePq5qAa8xjlBEaR2ahHG7bW8OYU2g+WtETtdCzdXFeY1EXggXZCNwtdk7tEfPNGRCyaxzYwLOX+8aqRCkgkqDCWvuzuOpMgVxa+gDNJBOOSKiAn7xEuPAlRZZVLavFtn5aN1Yy5EIl8eItp6kc+JNvaAhQiTWEVcOW2yL+50y7DSjfa7kQiV3ynBtUPECaY50a1eoFc0jee+RaHhBY7mSc2qNKiVbvRBRYiTlrXAIspcBxHbF85ELjkG60dnTPRydY5G2IGp7Gqaic8hx53sj7Gq1NSZDwpA05XRlkLDkpEwynp3m4Sr7gFcKLjeqzHJdOtBowCJVY9FTs+4Md3h12KD1DNpgWaUT7QMCaSz/vjYhV9qeZryL8VRWWgJUcKsFobgKO2xkjEY46AxkWWxG8nDLoDb/IXWxdtEeRS1+EYohjqtBEEuJQJakQhE3Et8aDUXZvXsqbh+hoWSYGcKQXcRpjfAZp7UMl3FaS7HAaS3Kj3NaizvuNJ2tGHHk6hlTZ+D1TtSvOluFJuDqaOS4SRiDC1F+dTh3aBDGwHzhf3Wusm0ORrBCwYOhqMPE/xhpaT5lobbG189NI1BV9hbUudqfc7WzkKsdFETuQWcWiEHgsoZS6eyr9/giF3u1g+x8vacsW6WlGE7dG6UEki7VjPIH64VCT+hrjRKJuYhWL3hGdVkkyrJYu0QnGLxkHwlzDV9DUupLw/jQVBVQG55fnyahuPwRUA+fJqEMFkRrZInOrk3294fHd09PH/4Y5YvZswdZ3RqjLQqV5E4tHqSc0aoeawg2sGHXXti1HmZ4msZKuIcJXl0ZNf384+fhmOmZB942RfhYGWNG6+HVt5vob/7n73Pqq8FkNNXVVHJebRg5RtMa5o3zSgWxLik1Iw67rqw0+zsnvi8vEHY5StgRC0OyG+WjhcxZsfWJFDj3utYpg6FSsCuhsqgT3r9UdhjwdgGWzJxfwxXc0qh0j9zSeHjWuqh0z89f4sFd/MPCWwFnF90ZwUes6621VztrwtLlmxx+12h4gfJ4EjE1l0Wdh7KRcbuF0pLMl/GVVY4L5qktj8eyRihgFcOuxNnE4/D7idOCVtVoa8LwhVNMqCA24jy+1etl3AEXAjMiwv+ASypKhpAzdgfWMkBHVxNbnY/aK3S7bXxUbfiLEuWIydqvb9ekqqJ2gurMr6ox2A5TlQk+nSWyLCItIdvtzUEo6rNLVdTz0CWOO2+sZr3U0K7jxVoGyXAwGTqDOJsOl6Q7LygkugW9wtUynzKwKekW3TVzYEfpaDb0OuJmwY7miXyoLLuDXFl3B0YpN5EW9xqTS/rEi3oYboNpzgUzODzBOt03tdZGKgjuX9+iJias5s0eqCoKMmwIakqbJzvkWT68nocW8tKdKwiHAeGHnVOPNJ+nOyFo7AtsVOF3bkc+eJw1ReO20mgdF6KS7mNAKvfTr/d7tHfwy71UPw/nccMLYvYJSVMuudvHMrxvjCpr+yLWIGFc1h8SwmGnWu9oYjc4EQhnHGvIsRXpgcbUxj7JcDhMEvIBd36vKwWDDUKpvZeY2g3PeC9TynlDVJIhSG7RBN8uKeJS4vLeOaI38mhiUNbJKvTU1YbfyWO9zVUrJd58EG5IyA/dVB9YM1fwaKftpm8eZYyqrHrJqx7167Es63w9Z9xPyp/CVDcslPpb8jJrXeFY3xtsdIEJ4HZzxPV/AAAA///CdzJc" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/data.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/data.go index 5794bd49..aa461e74 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitor_health import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health.go index b37e7040..9411220d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 monitor_health import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health_integration_test.go deleted file mode 100644 index 9760b882..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health_integration_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package monitor_health - -import ( - "fmt" - "os" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"monitor_health"}, - "hosts": getTestCephHost(), - } -} - -const ( - cephDefaultHost = "127.0.0.1" - cephDefaultPort = "5000" -) - -func getTestCephHost() string { - return fmt.Sprintf("%v:%v", - getenv("CEPH_HOST", cephDefaultHost), - getenv("CEPH_PORT", cephDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health_test.go deleted file mode 100644 index 5260c8de..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/monitor_health/monitor_health_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package monitor_health - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("../_meta/testdata/") - - response, err := ioutil.ReadFile(absPath + "/sample_response.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"monitor_health"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - mon := event - assert.EqualValues(t, "HEALTH_OK", mon["health"]) - assert.EqualValues(t, "ceph", mon["name"]) - assert.EqualValues(t, "2017-01-19 11:34:50.700723 +0000 UTC", mon["last_updated"].(Tick).Time.String()) - - available := mon["available"].(common.MapStr) - assert.EqualValues(t, 4091244, available["kb"]) - assert.EqualValues(t, 65, available["pct"]) - - total := mon["total"].(common.MapStr) - assert.EqualValues(t, 6281216, total["kb"]) - - used := mon["used"].(common.MapStr) - assert.EqualValues(t, 2189972, used["kb"]) - - store_stats := mon["store_stats"].(common.MapStr) - assert.EqualValues(t, "0.000000", store_stats["last_updated"]) - - misc := store_stats["misc"].(common.MapStr) - assert.EqualValues(t, 840, misc["bytes"]) - - log := store_stats["log"].(common.MapStr) - assert.EqualValues(t, 8488103, log["bytes"]) - - sst := store_stats["sst"].(common.MapStr) - assert.EqualValues(t, 0, sst["bytes"]) - - total = store_stats["total"].(common.MapStr) - assert.EqualValues(t, 8488943, total["bytes"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/data.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/data.go index e85fce98..2e341fb9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 osd_df import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df.go index af4efc1a..9f754e6d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 osd_df import ( @@ -33,7 +50,7 @@ type MetricSet struct { } func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Beta("The ceph osd_df metricset is experimental") + cfgwarn.Experimental("The ceph osd_df metricset is experimental") http, err := helper.NewHTTP(base) if err != nil { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df_integration_test.go deleted file mode 100644 index a0d7ce7d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df_integration_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package osd_df - -import ( - "fmt" - "os" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"osd_df"}, - "hosts": getTestCephHost(), - } -} - -const ( - cephDefaultHost = "127.0.0.1" - cephDefaultPort = "5000" -) - -func getTestCephHost() string { - return fmt.Sprintf("%v:%v", - getenv("CEPH_HOST", cephDefaultHost), - getenv("CEPH_PORT", cephDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df_test.go deleted file mode 100644 index 7476f623..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_df/osd_df_test.go +++ /dev/null @@ -1,63 +0,0 @@ -package osd_df - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("../_meta/testdata/") - assert.NoError(t, err) - - response, err := ioutil.ReadFile(absPath + "/osd_df_sample_response.json") - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"osd_df"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - //check osd0 df info - nodeInfo := events[0] - assert.EqualValues(t, 0, nodeInfo["pg_num"]) - assert.EqualValues(t, 52325356, nodeInfo["total.byte"]) - assert.EqualValues(t, 1079496, nodeInfo["used.byte"]) - assert.EqualValues(t, 51245860, nodeInfo["available.byte"]) - assert.EqualValues(t, "hdd", nodeInfo["device_class"]) - assert.EqualValues(t, 0.020630456866839092, nodeInfo["used.pct"]) - assert.EqualValues(t, 0, nodeInfo["id"]) - assert.EqualValues(t, "osd.0", nodeInfo["name"]) - - //check osd1 df info - nodeInfo = events[1] - assert.EqualValues(t, 0, nodeInfo["pg_num"]) - assert.EqualValues(t, 52325356, nodeInfo["total.byte"]) - assert.EqualValues(t, 1079496, nodeInfo["used.byte"]) - assert.EqualValues(t, 51245860, nodeInfo["available.byte"]) - assert.EqualValues(t, "hdd", nodeInfo["device_class"]) - assert.EqualValues(t, 0.020630456866839092, nodeInfo["used.pct"]) - assert.EqualValues(t, 1, nodeInfo["id"]) - assert.EqualValues(t, "osd.1", nodeInfo["name"]) - -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/data.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/data.go index abec86d6..25dee184 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 osd_tree import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree.go index 2e232aa1..b59da7c4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 osd_tree import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree_integration_test.go deleted file mode 100644 index 12464c6b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree_integration_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package osd_tree - -import ( - "fmt" - "os" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"osd_tree"}, - "hosts": getTestCephHost(), - } -} - -const ( - cephDefaultHost = "127.0.0.1" - cephDefaultPort = "5000" -) - -func getTestCephHost() string { - return fmt.Sprintf("%v:%v", - getenv("CEPH_HOST", cephDefaultHost), - getenv("CEPH_PORT", cephDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree_test.go deleted file mode 100644 index 4a476323..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/osd_tree/osd_tree_test.go +++ /dev/null @@ -1,88 +0,0 @@ -package osd_tree - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("../_meta/testdata/") - assert.NoError(t, err) - - response, err := ioutil.ReadFile(absPath + "/osd_tree_sample_response.json") - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"osd_tree"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - //check root bucket info - nodeInfo := events[0] - assert.EqualValues(t, "default", nodeInfo["name"]) - assert.EqualValues(t, "root", nodeInfo["type"]) - assert.EqualValues(t, "-3", nodeInfo["children"]) - assert.EqualValues(t, -1, nodeInfo["id"]) - assert.EqualValues(t, 10, nodeInfo["type_id"]) - assert.EqualValues(t, "", nodeInfo["father"]) - - //check host bucket info - nodeInfo = events[1] - assert.EqualValues(t, "ceph-mon1", nodeInfo["name"]) - assert.EqualValues(t, "host", nodeInfo["type"]) - assert.EqualValues(t, "1,0", nodeInfo["children"]) - assert.EqualValues(t, -3, nodeInfo["id"]) - assert.EqualValues(t, 1, nodeInfo["type_id"]) - assert.EqualValues(t, "default", nodeInfo["father"]) - - //check osd bucket info - nodeInfo = events[2] - assert.EqualValues(t, "up", nodeInfo["status"]) - assert.EqualValues(t, "osd.0", nodeInfo["name"]) - assert.EqualValues(t, "osd", nodeInfo["type"]) - assert.EqualValues(t, 1, nodeInfo["primary_affinity"]) - assert.EqualValues(t, true, nodeInfo["exists"]) - assert.EqualValues(t, 0, nodeInfo["id"]) - assert.EqualValues(t, 0, nodeInfo["type_id"]) - assert.EqualValues(t, 0.048691, nodeInfo["crush_weight"]) - assert.EqualValues(t, "hdd", nodeInfo["device_class"]) - assert.EqualValues(t, 1, nodeInfo["reweight"]) - assert.EqualValues(t, "ceph-mon1", nodeInfo["father"]) - assert.EqualValues(t, 2, nodeInfo["depth"]) - - nodeInfo = events[3] - assert.EqualValues(t, "up", nodeInfo["status"]) - assert.EqualValues(t, "osd.1", nodeInfo["name"]) - assert.EqualValues(t, "osd", nodeInfo["type"]) - assert.EqualValues(t, 1, nodeInfo["primary_affinity"]) - assert.EqualValues(t, true, nodeInfo["exists"]) - assert.EqualValues(t, 1, nodeInfo["id"]) - assert.EqualValues(t, 0, nodeInfo["type_id"]) - assert.EqualValues(t, 0.048691, nodeInfo["crush_weight"]) - assert.EqualValues(t, "hdd", nodeInfo["device_class"]) - assert.EqualValues(t, 1, nodeInfo["reweight"]) - assert.EqualValues(t, "ceph-mon1", nodeInfo["father"]) - assert.EqualValues(t, 2, nodeInfo["depth"]) - -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/data.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/data.go index 95ac62db..6a89f0d4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pool_disk import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk.go index 61db26b8..64d638ea 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pool_disk import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk_integration_test.go deleted file mode 100644 index 3202bf3a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk_integration_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package pool_disk - -import ( - "fmt" - "os" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"pool_disk"}, - "hosts": getTestCephHost(), - } -} - -const ( - cephDefaultHost = "127.0.0.1" - cephDefaultPort = "5000" -) - -func getTestCephHost() string { - return fmt.Sprintf("%v:%v", - getenv("CEPH_HOST", cephDefaultHost), - getenv("CEPH_PORT", cephDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk_test.go b/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk_test.go deleted file mode 100644 index feed9092..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/ceph/pool_disk/pool_disk_test.go +++ /dev/null @@ -1,53 +0,0 @@ -package pool_disk - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("../_meta/testdata/") - - response, err := ioutil.ReadFile(absPath + "/df_sample_response.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "ceph", - "metricsets": []string{"pool_disk"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, "rbd", event["name"]) - assert.EqualValues(t, 0, event["id"]) - - stats := event["stats"].(common.MapStr) - - used := stats["used"].(common.MapStr) - assert.EqualValues(t, 0, used["bytes"]) - assert.EqualValues(t, 0, used["kb"]) - - available := stats["available"].(common.MapStr) - assert.EqualValues(t, uint64(5003444224), available["bytes"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/_meta/Dockerfile index 565fca64..2131f21f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/_meta/Dockerfile +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/_meta/Dockerfile @@ -1,6 +1,5 @@ FROM couchbase:4.5.1 -HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost:8091 - +HEALTHCHECK --interval=1s --retries=90 CMD [ "$(curl -s -o /dev/null -w ''%{http_code}'' http://localhost:8091/pools/default/buckets)" -eq "200" ] COPY configure-node.sh /opt/couchbase CMD ["/opt/couchbase/configure-node.sh"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket.go index 32783ae3..5975e59d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 bucket import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket_integration_test.go deleted file mode 100644 index e7f909d1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket_integration_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build integration - -package bucket - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/couchbase" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"bucket"}, - "hosts": []string{couchbase.GetEnvDSN()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket_test.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket_test.go deleted file mode 100644 index bbdcce3f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/bucket_test.go +++ /dev/null @@ -1,70 +0,0 @@ -// +build !integration - -package bucket - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("./testdata/") - // response is a raw response from a couchbase - response, err := ioutil.ReadFile(absPath + "/sample_response.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"bucket"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, "membase", event["type"]) - assert.EqualValues(t, "beer-sample", event["name"]) - - data := event["data"].(common.MapStr) - data_used := data["used"].(common.MapStr) - assert.EqualValues(t, 12597731, data_used["bytes"]) - - disk := event["disk"].(common.MapStr) - assert.EqualValues(t, 0, disk["fetches"]) - - disk_used := disk["used"].(common.MapStr) - assert.EqualValues(t, 16369008, disk_used["bytes"]) - - memory := event["memory"].(common.MapStr) - memory_used := memory["used"].(common.MapStr) - assert.EqualValues(t, 53962160, memory_used["bytes"]) - - quota := event["quota"].(common.MapStr) - quota_ram := quota["ram"].(common.MapStr) - assert.EqualValues(t, 104857600, quota_ram["bytes"]) - - quota_use := quota["use"].(common.MapStr) - assert.EqualValues(t, 51.46232604980469, quota_use["pct"]) - - assert.EqualValues(t, 7303, event["item_count"]) - assert.EqualValues(t, 0, event["ops_per_sec"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/data.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/data.go index dc3c859a..95fd950e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/bucket/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 bucket import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster.go index 7190fea5..fabf1602 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster_integration_test.go deleted file mode 100644 index a5e480fc..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster_integration_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build integration - -package cluster - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/couchbase" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"cluster"}, - "hosts": []string{couchbase.GetEnvDSN()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster_test.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster_test.go deleted file mode 100644 index ddd8b30a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/cluster_test.go +++ /dev/null @@ -1,97 +0,0 @@ -// +build !integration - -package cluster - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("./testdata/") - // response is a raw response from a couchbase - response, err := ioutil.ReadFile(absPath + "/sample_response.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"cluster"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - hdd := event["hdd"].(common.MapStr) - hdd_free := hdd["free"].(common.MapStr) - assert.EqualValues(t, 46902679716, hdd_free["bytes"]) - - hdd_total := hdd["total"].(common.MapStr) - assert.EqualValues(t, 63381999616, hdd_total["bytes"]) - - hdd_used := hdd["used"].(common.MapStr) - hdd_used_value := hdd_used["value"].(common.MapStr) - assert.EqualValues(t, 16479319900, hdd_used_value["bytes"]) - - hdd_used_by_data := hdd_used["by_data"].(common.MapStr) - assert.EqualValues(t, 16369010, hdd_used_by_data["bytes"]) - - hdd_quota := hdd["quota"].(common.MapStr) - hdd_quota_total := hdd_quota["total"].(common.MapStr) - assert.EqualValues(t, 63381999616, hdd_quota_total["bytes"]) - - assert.EqualValues(t, 10, event["max_bucket_count"]) - - quota := event["quota"].(common.MapStr) - quota_index_memory := quota["index_memory"].(common.MapStr) - assert.EqualValues(t, 300, quota_index_memory["mb"]) - - quota_memory := quota["memory"].(common.MapStr) - assert.EqualValues(t, 300, quota_memory["mb"]) - - ram := event["ram"].(common.MapStr) - - ram_quota := ram["quota"].(common.MapStr) - - ram_quota_total := ram_quota["total"].(common.MapStr) - ram_quota_total_value := ram_quota_total["value"].(common.MapStr) - assert.EqualValues(t, 314572800, ram_quota_total_value["bytes"]) - - ram_quota_total_per_node := ram_quota_total["per_node"].(common.MapStr) - assert.EqualValues(t, 314572800, ram_quota_total_per_node["bytes"]) - - ram_quota_used := ram_quota["used"].(common.MapStr) - ram_quota_used_value := ram_quota_used["value"].(common.MapStr) - assert.EqualValues(t, 104857600, ram_quota_used_value["bytes"]) - - ram_quota_used_per_node := ram_quota_used["per_node"].(common.MapStr) - assert.EqualValues(t, 104857600, ram_quota_used_per_node["bytes"]) - - ram_total := ram["total"].(common.MapStr) - assert.EqualValues(t, 8359174144, ram_total["bytes"]) - - ram_used := ram["used"].(common.MapStr) - ram_used_value := ram_used["value"].(common.MapStr) - assert.EqualValues(t, 8004751360, ram_used_value["bytes"]) - - ram_used_by_data := ram_used["by_data"].(common.MapStr) - assert.EqualValues(t, 53962016, ram_used_by_data["bytes"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/data.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/data.go index b6f83472..064160f2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/cluster/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/doc.go index c7150227..870a187f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 couchbase is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/fields.go new file mode 100644 index 00000000..1881caff --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package couchbase + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "couchbase", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzMmVFv4zYMgN/zK4gCA3oP573nYUBxw3B76OFw656GwUdLTKLVtjxRTpr79QMlO3HcOHVaN5kf+hC75EeRIinqIzzSdg7K1mqVIdMMwBuf0xxuPrW/3cwANLFypvLGlnP4ZQYAcE/eGcWgbJ6T8qRh4WwBu38DJrcmx8kMgFfW+VTZcmGWc1hgHjQ5ygmZ5pCRR/mKvDflkufw1w1zfvP3DGBhKNc8Dxo/QokFHdLK47cVzWHpbF01vxzBlef77j+/g7KlR1My+BVB0djiV+hhQ46AlcPqmU1JI6pL1SXLavVIfvfzMbQTePLsly/KatGSzlf9dWufPlWXTP4evGjZHmm7sU733p0glOcLFgR2EdYuciZHtYqK6bQ+bKtRWjV6TGomnWRbT9yTs7CuQD+HY+8iXG7L5Xlkf5gfgaxmckE9bIxfmbLB5JaaK1JmYUgDe/QU4w0dgSM2mkoPpoRvd/cDdhl+TBbk1Woy8C91kZETPBEOjfAT6i+6rHeFrUu/oxPdcBsUfDiOWFBh3fZakFF7xMy2nTA9Df1vbT0mDosrIH+7u38lb82UVMoP0FbkFJX9t5GXFeak00Vusf/BC9xfo1Rc0gH77cI6QOXNmsBm/5Dy/AFwKdndB6ti4amd2BkNZNmwtz8NWGgrTityKZOafJ/ZihzKZyyLBEzKlvo4hvFUpEpcNTmFiGZAZqsMSu2WfHU0se6Kbl6zJzdNbWuETVXcVlonC0d0sQ30myOCFToN2knUcYWKJHeHaGuMO7mJBDluJG895hcj/7yHDuohqBdV57FflvohQD5bcFyjyTHLCbw9Dz9UiDXm9eVi5nOfvpt3zwPPtmnocf4X6KHdOSf0C3xKY5aZNLnd41Ob3YPY9jhxqoiZUtNT2nQNRTYVSewD4v5qKHY77HdRGc5GRhHc3stKnSy0F6XbOfAUl7Qq3dx12X0kZf/VqauPLlW+tPoa9Afbv3ZOun9BOWsv7e25QkYbsOUV3Jd3Axavc8OgNdcoiOKAgxo4eu2vFC2vipOrlLw+7agqtxu2WE3TNMohEifqklWh0yVNf5ZYhopbFFhqPq5YzEm0VZzIOT6Vw9e1ZgiH/UtYaBCy02HYtQA9XtaCXyX0uJkwdYj7pzeM0TLCEK7QG8xfsOWtw7B4FI87R4p0oxXWhjaj1nuHeTJo3iUwzmYNH16DNAbEuZwXdfx4xKpOa29y8yNMSFKH/tiQ6a1jpIcVwaevf0JHFYiq4YFQ0xikYWwS6+bkabRtPqKOERih45i0nyhHzIdCm3aUjqo0W6ZxhNyf7E87n4aKnGRa0sCmVBRn6+G6CTbIwB6dp4Gp2pJ8ujJ++gm61EERPHB4t+ynvYSRMG6lthcMw94plG4PupjnVolXrzMjVygB0k7LdzAvDA32+I6Cq4/TvwNhq2/U1cPgGHKy6wXRsDv0vlzxG67h48nbUkbrxf4kbjTY4F3NG+cb3eb9ZRhbTZ8PDif9Tb6y5fPb5EMU3mD1bu4S4bGXHLnvAs3kPtoHdQTadzQnYerKm4KS6a5lHkxBoGtnyiVsVkbtS1yoI6bcOxFumdQA1zpLHVW5UZhKiY71efJ4ClJ/1lbVBZWeu5fHQTcns/8CAAD///DTDyA=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/data.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/data.go index d2a1d71a..990887a2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node.go index 3f40985f..250b8ce3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node_integration_test.go deleted file mode 100644 index 0acfa5c2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node_integration_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build integration - -package node - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/couchbase" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"node"}, - "hosts": []string{couchbase.GetEnvDSN()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node_test.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node_test.go deleted file mode 100644 index 21f05922..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/node/node_test.go +++ /dev/null @@ -1,110 +0,0 @@ -// +build !integration - -package node - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("./testdata/") - // response is a raw response from a couchbase - response, err := ioutil.ReadFile(absPath + "/sample_response.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"node"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, 0, event["cmd_get"]) - - couch := event["couch"].(common.MapStr) - - couch_docs := couch["docs"].(common.MapStr) - couch_docs_disk_size := couch_docs["disk_size"].(common.MapStr) - assert.EqualValues(t, 13563791, couch_docs_disk_size["bytes"]) - - couch_docs_data_size := couch_docs["data_size"].(common.MapStr) - assert.EqualValues(t, 9792512, couch_docs_data_size["bytes"]) - - couch_spatial := couch["spatial"].(common.MapStr) - couch_spatial_data_size := couch_spatial["data_size"].(common.MapStr) - assert.EqualValues(t, 0, couch_spatial_data_size["bytes"]) - - couch_spatial_disk_size := couch_spatial["disk_size"].(common.MapStr) - assert.EqualValues(t, 0, couch_spatial_disk_size["bytes"]) - - couch_views := couch["views"].(common.MapStr) - couch_views_disk_size := couch_views["disk_size"].(common.MapStr) - assert.EqualValues(t, 2805219, couch_views_disk_size["bytes"]) - - couch_views_data_size := couch_views["data_size"].(common.MapStr) - assert.EqualValues(t, 2805219, couch_views_data_size["bytes"]) - - event_cpu_utilization_rate := event["cpu_utilization_rate"].(common.MapStr) - assert.EqualValues(t, 29.64705882352941, event_cpu_utilization_rate["pct"]) - - current_items := event["current_items"].(common.MapStr) - assert.EqualValues(t, 7303, current_items["value"]) - assert.EqualValues(t, 7303, current_items["total"]) - - assert.EqualValues(t, 0, event["ep_bg_fetched"]) - assert.EqualValues(t, 0, event["get_hits"]) - assert.Equal(t, "172.17.0.2:8091", event["hostname"]) - - mcd_memory := event["mcd_memory"].(common.MapStr) - mcd_memory_reserved := mcd_memory["reserved"].(common.MapStr) - assert.EqualValues(t, 6377, mcd_memory_reserved["bytes"]) - - mcd_memory_allocated := mcd_memory["allocated"].(common.MapStr) - assert.EqualValues(t, 6377, mcd_memory_allocated["bytes"]) - - memory := event["memory"].(common.MapStr) - memory_total := memory["total"].(common.MapStr) - assert.EqualValues(t, 8359174144, memory_total["bytes"]) - - memory_free := memory["free"].(common.MapStr) - assert.EqualValues(t, 4678324224, memory_free["bytes"]) - - memory_used := memory["used"].(common.MapStr) - assert.EqualValues(t, 53962016, memory_used["bytes"]) - - assert.EqualValues(t, 0, event["ops"]) - - swap := event["swap"].(common.MapStr) - swap_total := swap["total"].(common.MapStr) - assert.EqualValues(t, 4189057024, swap_total["bytes"]) - - swap_used := swap["used"].(common.MapStr) - assert.EqualValues(t, 135168, swap_used["bytes"]) - - event_uptime := event["uptime"].(common.MapStr) - assert.EqualValues(t, 7260, event_uptime["sec"]) - - assert.EqualValues(t, 0, event["vb_replica_curr_items"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/testing.go index d3b28ca0..7fe66530 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/couchbase/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/couchbase/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 couchbase import "os" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/doc.go index f4af6725..0fbba0a9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module contains Metricbeat modules and their MetricSet implementations. @@ -30,7 +47,7 @@ List of standardised words and units across all metricsets. On the left are the * count: * day: days, d * der: derivative -* max: maximumg +* max: maximum * min: minimum * pct: percentage * request: req diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.reference.yml index 22ee422c..b06bafdd 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.reference.yml @@ -12,8 +12,8 @@ period: 10s enabled: true - # Replace dots in labels with `_`. Set to false to keep dots - labels.dedot: true + # If set to true, replace dots in labels with `_`. + #labels.dedot: false # To connect to Docker over TLS you must specify a client and CA certificate. #ssl: diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.yml index 58e0880b..44d6b61b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/_meta/config.yml @@ -10,8 +10,8 @@ period: 10s hosts: ["unix:///var/run/docker.sock"] - # Replace dots in labels with `_`. Set to false to keep dots - labels.dedot: true + # If set to true, replace dots in labels with `_`. + #labels.dedot: false # To connect to Docker over TLS you must specify a client and CA certificate. #ssl: diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/config.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/config.go index aa1ccc18..3931b038 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker type Config struct { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/container/container.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/container/container.go index eb6ca0b0..0247c179 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/container/container.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/container/container.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 container import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/container/container_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/container/container_integration_test.go deleted file mode 100644 index 0233f340..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/container/container_integration_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build integration - -package container - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"container"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/container/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/container/data.go index 75b9363f..80e4179f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/container/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/container/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 container import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu.go index ab7c8d19..4e78f031 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cpu import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu_integration_test.go deleted file mode 100644 index a781a8ea..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu_integration_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build integration - -package cpu - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"cpu"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu_test.go deleted file mode 100644 index db09f1a9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/cpu_test.go +++ /dev/null @@ -1,147 +0,0 @@ -package cpu - -import ( - "reflect" - "testing" - - "github.com/docker/docker/api/types" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/module/docker" -) - -var cpuService CPUService - -func cpuUsageFor(stats types.StatsJSON) *cpuUsage { - u := cpuUsage{ - Stat: &docker.Stat{Stats: stats}, - systemDelta: 1000000000, // Nanoseconds in a second - } - if len(stats.CPUStats.CPUUsage.PercpuUsage) == 0 { - u.cpus = 1 - } - return &u -} - -func TestCPUService_PerCpuUsage(t *testing.T) { - oldPerCpuValuesTest := [][]uint64{{1, 9, 9, 5}, {1, 2, 3, 4}, {0, 0, 0, 0}} - newPerCpuValuesTest := [][]uint64{{100000001, 900000009, 900000009, 500000005}, {101, 202, 303, 404}, {0, 0, 0, 0}} - var statsList = make([]types.StatsJSON, 3) - for index := range statsList { - statsList[index].PreCPUStats.CPUUsage.PercpuUsage = oldPerCpuValuesTest[index] - statsList[index].CPUStats.CPUUsage.PercpuUsage = newPerCpuValuesTest[index] - } - testCase := []struct { - given types.StatsJSON - expected common.MapStr - }{ - {statsList[0], common.MapStr{ - "0": common.MapStr{"pct": float64(0.40)}, - "1": common.MapStr{"pct": float64(3.60)}, - "2": common.MapStr{"pct": float64(3.60)}, - "3": common.MapStr{"pct": float64(2.00)}, - }}, - {statsList[1], common.MapStr{ - "0": common.MapStr{"pct": float64(0.0000004)}, - "1": common.MapStr{"pct": float64(0.0000008)}, - "2": common.MapStr{"pct": float64(0.0000012)}, - "3": common.MapStr{"pct": float64(0.0000016)}, - }}, - {statsList[2], common.MapStr{ - "0": common.MapStr{"pct": float64(0)}, - "1": common.MapStr{"pct": float64(0)}, - "2": common.MapStr{"pct": float64(0)}, - "3": common.MapStr{"pct": float64(0)}, - }}, - } - for _, tt := range testCase { - usage := cpuUsageFor(tt.given) - out := usage.PerCPU() - // Remove ticks for test - for _, s := range out { - s.(common.MapStr).Delete("ticks") - } - if !equalEvent(tt.expected, out) { - t.Errorf("PerCpuUsage(%v) => %v, want %v", tt.given.CPUStats.CPUUsage.PercpuUsage, out, tt.expected) - } - } -} - -func TestCPUService_TotalUsage(t *testing.T) { - oldTotalValuesTest := []uint64{100, 50, 10} - totalValuesTest := []uint64{2, 500000050, 10} - var statsList = make([]types.StatsJSON, 3) - for index := range statsList { - statsList[index].PreCPUStats.CPUUsage.TotalUsage = oldTotalValuesTest[index] - statsList[index].CPUStats.CPUUsage.TotalUsage = totalValuesTest[index] - } - testCase := []struct { - given types.StatsJSON - expected float64 - }{ - {statsList[0], -1}, - {statsList[1], 0.50}, - {statsList[2], 0}, - } - for _, tt := range testCase { - usage := cpuUsageFor(tt.given) - out := usage.Total() - if tt.expected != out { - t.Errorf("totalUsage(%v) => %v, want %v", tt.given.CPUStats.CPUUsage.TotalUsage, out, tt.expected) - } - } -} - -func TestCPUService_UsageInKernelmode(t *testing.T) { - usageOldValuesTest := []uint64{100, 10, 500000050} - usageValuesTest := []uint64{3, 500000010, 500000050} - var statsList = make([]types.StatsJSON, 3) - for index := range statsList { - statsList[index].PreCPUStats.CPUUsage.UsageInKernelmode = usageOldValuesTest[index] - statsList[index].CPUStats.CPUUsage.UsageInKernelmode = usageValuesTest[index] - } - testCase := []struct { - given types.StatsJSON - expected float64 - }{ - {statsList[0], -1}, - {statsList[1], 0.50}, - {statsList[2], 0}, - } - for _, tt := range testCase { - usage := cpuUsageFor(tt.given) - out := usage.InKernelMode() - if out != tt.expected { - t.Errorf("usageInKernelmode(%v) => %v, want %v", tt.given.CPUStats.CPUUsage.UsageInKernelmode, out, tt.expected) - } - } -} - -func TestCPUService_UsageInUsermode(t *testing.T) { - usageOldValuesTest := []uint64{0, 1965, 500} - usageValuesTest := []uint64{500000000, 325, 1000000500} - var statsList = make([]types.StatsJSON, 3) - for index := range statsList { - statsList[index].PreCPUStats.CPUUsage.UsageInUsermode = usageOldValuesTest[index] - statsList[index].CPUStats.CPUUsage.UsageInUsermode = usageValuesTest[index] - } - testCase := []struct { - given types.StatsJSON - expected float64 - }{ - {statsList[0], 0.50}, - {statsList[1], -1}, - {statsList[2], 1}, - } - for _, tt := range testCase { - usage := cpuUsageFor(tt.given) - out := usage.InUserMode() - if out != tt.expected { - t.Errorf("usageInUsermode(%v) => %v, want %v", tt.given.CPUStats.CPUUsage.UsageInUsermode, out, tt.expected) - } - } -} - -func equalEvent(expectedEvent common.MapStr, event common.MapStr) bool { - return reflect.DeepEqual(expectedEvent, event) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/data.go index ca9c4414..3cf93fe9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cpu import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/helper.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/helper.go index 0d61b78d..03accc22 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/helper.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/cpu/helper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cpu import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/data.go index b87313ef..5613c4f7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 diskio import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio.go index 61f148af..994823bb 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 diskio import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio_integration_test.go deleted file mode 100644 index e5588b4f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio_integration_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build integration - -package diskio - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"diskio"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio_test.go deleted file mode 100644 index 9cd4108d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/diskio_test.go +++ /dev/null @@ -1,256 +0,0 @@ -package diskio - -import ( - "encoding/json" - "testing" - "time" - - "github.com/docker/docker/api/types" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/metricbeat/module/docker" -) - -var blkioService BlkioService -var oldBlkioRaw = make([]BlkioRaw, 3) -var newBlkioRaw = make([]BlkioRaw, 3) - -func TestDeltaMultipleContainers(t *testing.T) { - var apiContainer1 docker.Stat - var apiContainer2 docker.Stat - metrics := types.BlkioStatEntry{ - Major: 123, - Minor: 123, - Op: "Total", - Value: 123, - } - jsonContainers := `[ - { - "Id": "8dfafdbc3a40", - "Names": ["container"] - },{ - "Id": "8dfafdbc3a41", - "Names": ["container1"] - }]` - var containers []types.Container - err := json.Unmarshal([]byte(jsonContainers), &containers) - if err != nil { - t.Fatal(err) - } - - apiContainer1.Stats.Read = time.Now() - apiContainer1.Container = &containers[0] - apiContainer1.Stats.BlkioStats.IoServicedRecursive = append(apiContainer1.Stats.BlkioStats.IoServicedRecursive, metrics) - apiContainer2.Stats.Read = time.Now() - apiContainer2.Container = &containers[1] - apiContainer2.Stats.BlkioStats.IoServicedRecursive = append(apiContainer2.Stats.BlkioStats.IoServicedRecursive, metrics) - dockerStats := []docker.Stat{apiContainer1, apiContainer2} - stats := blkioService.getBlkioStatsList(dockerStats, true) - totals := make([]float64, 2) - for _, stat := range stats { - totals[0] = stat.totals - } - - dockerStats[0].Stats.BlkioStats.IoServicedRecursive[0].Value = 1000 - dockerStats[0].Stats.Read = dockerStats[0].Stats.Read.Add(time.Second * 10) - dockerStats[1].Stats.BlkioStats.IoServicedRecursive[0].Value = 1000 - dockerStats[1].Stats.Read = dockerStats[0].Stats.Read.Add(time.Second * 10) - stats = blkioService.getBlkioStatsList(dockerStats, true) - for _, stat := range stats { - totals[1] = stat.totals - if stat.totals < totals[0] { - t.Errorf("getBlkioStatsList(%v) => %v, want value bigger than %v", dockerStats, stat.totals, totals[0]) - } - } - - dockerStats[0].Stats.Read = dockerStats[0].Stats.Read.Add(time.Second * 15) - dockerStats[0].Stats.BlkioStats.IoServicedRecursive[0].Value = 2000 - dockerStats[1].Stats.BlkioStats.IoServicedRecursive[0].Value = 2000 - dockerStats[1].Stats.Read = dockerStats[0].Stats.Read.Add(time.Second * 15) - stats = blkioService.getBlkioStatsList(dockerStats, true) - for _, stat := range stats { - if stat.totals < totals[1] || stat.totals < totals[0] { - t.Errorf("getBlkioStatsList(%v) => %v, want value bigger than %v", dockerStats, stat.totals, totals[1]) - } - } - -} - -func TestDeltaOneContainer(t *testing.T) { - var apiContainer docker.Stat - metrics := types.BlkioStatEntry{ - Major: 123, - Minor: 123, - Op: "Total", - Value: 123, - } - jsonContainers := ` - { - "Id": "8dfafdbc3a40", - "Names": ["container"] - }` - var containers types.Container - err := json.Unmarshal([]byte(jsonContainers), &containers) - if err != nil { - t.Fatal(err) - } - - apiContainer.Stats.Read = time.Now() - apiContainer.Container = &containers - apiContainer.Stats.BlkioStats.IoServicedRecursive = append(apiContainer.Stats.BlkioStats.IoServicedRecursive, metrics) - dockerStats := []docker.Stat{apiContainer} - stats := blkioService.getBlkioStatsList(dockerStats, true) - totals := make([]float64, 2) - for _, stat := range stats { - totals[0] = stat.totals - } - - dockerStats[0].Stats.BlkioStats.IoServicedRecursive[0].Value = 1000 - dockerStats[0].Stats.Read = dockerStats[0].Stats.Read.Add(time.Second * 10) - stats = blkioService.getBlkioStatsList(dockerStats, true) - for _, stat := range stats { - if stat.totals < totals[0] { - t.Errorf("getBlkioStatsList(%v) => %v, want value bigger than %v", dockerStats, stat.totals, totals[0]) - } - } - - dockerStats[0].Stats.BlkioStats.IoServicedRecursive[0].Value = 2000 - dockerStats[0].Stats.Read = dockerStats[0].Stats.Read.Add(time.Second * 15) - stats = blkioService.getBlkioStatsList(dockerStats, true) - for _, stat := range stats { - if stat.totals < totals[1] || stat.totals < totals[0] { - t.Errorf("getBlkioStatsList(%v) => %v, want value bigger than %v", dockerStats, stat.totals, totals[1]) - } - } - -} - -func TestWritePs(t *testing.T) { - oldWritePs := []uint64{220, 951, 0} - newWritePs := []uint64{120, 2951, 0} - for index := range oldBlkioRaw { - setTime(index) - oldBlkioRaw[index].writes = oldWritePs[index] - newBlkioRaw[index].writes = newWritePs[index] - } - writePsTest := []struct { - givenOld BlkioRaw - givenNew BlkioRaw - expected float64 - }{ - {oldBlkioRaw[0], newBlkioRaw[0], 0}, - {oldBlkioRaw[1], newBlkioRaw[1], 1000}, - {oldBlkioRaw[2], newBlkioRaw[2], 0}, - } - for _, tt := range writePsTest { - out := blkioService.getWritePs(&tt.givenOld, &tt.givenNew) - if out != tt.expected { - t.Errorf("getWritePs(%v,%v) => %v, want %v", tt.givenOld, tt.givenNew, out, tt.expected) - } - } -} - -func TestReadPS(t *testing.T) { - oldReasPs := []uint64{0, 951, 235} - newReadPs := []uint64{120, 3951, 62} - for index := range oldBlkioRaw { - setTime(index) - oldBlkioRaw[index].reads = oldReasPs[index] - newBlkioRaw[index].reads = newReadPs[index] - } - readPsTest := []struct { - givenOld BlkioRaw - givenNew BlkioRaw - expected float64 - }{ - {oldBlkioRaw[0], newBlkioRaw[0], 60}, - {oldBlkioRaw[1], newBlkioRaw[1], 1500}, - {oldBlkioRaw[2], newBlkioRaw[2], 0}, - } - for _, tt := range readPsTest { - out := blkioService.getReadPs(&tt.givenOld, &tt.givenNew) - if out != tt.expected { - t.Errorf("getReadPs(%v,%v) => %v, want %v", tt.givenOld, tt.givenNew, out, tt.expected) - } - } -} - -func TestBlkioTotal(t *testing.T) { - oldTotal := []uint64{40, 1954, 235} - newTotal := []uint64{120, 1964, 62} - for index := range oldBlkioRaw { - setTime(index) - oldBlkioRaw[index].totals = oldTotal[index] - newBlkioRaw[index].totals = newTotal[index] - } - totalPsTest := []struct { - givenOld BlkioRaw - givenNew BlkioRaw - expected float64 - }{ - {oldBlkioRaw[0], newBlkioRaw[0], 40}, - {oldBlkioRaw[1], newBlkioRaw[1], 5}, - {oldBlkioRaw[2], newBlkioRaw[2], 0}, - } - for _, tt := range totalPsTest { - out := blkioService.getTotalPs(&tt.givenOld, &tt.givenNew) - if out != tt.expected { - t.Errorf("getTotalPs(%v,%v) => %v, want %v", tt.givenOld, tt.givenNew, out, tt.expected) - } - } -} - -func setTime(index int) { - oldBlkioRaw[index].Time = time.Now() - newBlkioRaw[index].Time = oldBlkioRaw[index].Time.Add(time.Duration(2000000000)) -} - -func TestGetBlkioStats(t *testing.T) { - start := time.Now() - later := start.Add(10 * time.Second) - - blkioService := BlkioService{ - map[string]BlkioRaw{ - "cebada": {Time: start, reads: 100, writes: 200, totals: 300}, - }, - } - - dockerStats := &docker.Stat{ - Container: &types.Container{ - ID: "cebada", - Names: []string{"test"}, - }, - Stats: types.StatsJSON{Stats: types.Stats{ - Read: later, - BlkioStats: types.BlkioStats{ - IoServicedRecursive: []types.BlkioStatEntry{ - {Major: 1, Minor: 1, Op: "Read", Value: 100}, - {Major: 1, Minor: 1, Op: "Write", Value: 200}, - {Major: 1, Minor: 1, Op: "Total", Value: 300}, - {Major: 1, Minor: 2, Op: "Read", Value: 50}, - {Major: 1, Minor: 2, Op: "Write", Value: 100}, - {Major: 1, Minor: 2, Op: "Total", Value: 150}, - }, - IoServiceBytesRecursive: []types.BlkioStatEntry{ - {Major: 1, Minor: 1, Op: "Read", Value: 1000}, - {Major: 1, Minor: 1, Op: "Write", Value: 2000}, - {Major: 1, Minor: 1, Op: "Total", Value: 3000}, - {Major: 1, Minor: 2, Op: "Read", Value: 500}, - {Major: 1, Minor: 2, Op: "Write", Value: 1000}, - {Major: 1, Minor: 2, Op: "Total", Value: 1500}, - }, - }, - }}, - } - - stats := blkioService.getBlkioStats(dockerStats, true) - assert.Equal(t, float64(5), stats.reads) - assert.Equal(t, float64(10), stats.writes) - assert.Equal(t, float64(15), stats.totals) - assert.Equal(t, - BlkioRaw{Time: later, reads: 150, writes: 300, totals: 450}, - stats.serviced) - assert.Equal(t, - BlkioRaw{Time: later, reads: 1500, writes: 3000, totals: 4500}, - stats.servicedBytes) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/helper.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/helper.go index 4aa1ab37..71ee7733 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/helper.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/diskio/helper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 diskio import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/doc.go index 959431e2..71a5e230 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/docker.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/docker.go index 02408c36..adee725a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/docker.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/docker.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/fields.go new file mode 100644 index 00000000..2d6b69f2 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package docker + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "docker", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzsm09v2zYUwO/5FA/dYcDQ2Niwkw8DthbDfGgbtM3ZoKknibNEaiQVx/30A//Ili1KshTZSYr6aMXv/fj+k1RuYYO7BUSCblDeAGimM1zAm/f2izc3ABEqKlmhmeAL+OMGAMA9BKWJVkBFliHVGEEsRe6fzW4AJGZIFC4gITcAKhVSr6jgMUsWEJNM4Q1AzDCL1MJKvQVOcqyxmI/eFUaCFGXhvwnwmM+Sx0LmxHwNhEcWjinNqAKyFqX2Yn9WIEvOGU+ACq4J4yjVzEup09SJ9n+5fxIC64CrGW0vC3LUktG9cvM5Nln1OcU6RstzwqOjZxXcBndbIU+fdSCazzsnEHRKNGyJAnxEWhr3Mg46xcY6ZmEuiURjmCsiGodBvScaYZuiIziY0PB5TWEMEwWlmtI6lWonOayVFSsSRRKVwovoXt7BXn7Lutm3UxOHA3bYmtk3DIUttARpnUgKoVfxqTkOYJngSeBhD5v9fBWaZA5OxECyzEZJzDJUVdC2ROsR4PYSbF881YHIJlZKHhDWiLwKXxASaEp4ghEoxim6B0zwsIM1ScKhRaQku2EOXuYkQStx1ix9RfmUove55JrlCO/u7qepdxuUHLNZQXVw9YqSDKNVnAly+geuPSygQEmRa5IMrEF3+99Zf5pVMe55QBWEYthTnlgzugl7LBBdfRl5dw9W3nkEaqc05i/AZjZPHbyznskKT9dFPrXtnFhnwrDiUqF8AQbzZjI0XQ62tBcLsD7t1q3PYayv+3gqFUla6KiQOPulFU+s/8XGI/fl6srePk4Mphx616LaXd6/rOFB8bHM1ygPpD48Aqj7SZ6pDRNPGpqZ2sBy/mma5iGRhCfSEVPRn5SWeZnZ3m3kKohKabYVpqZlLN53/dDmoQ20DiuKSwxLByeOgj7grXe6Mdz2AlYJ0/bjMxbwl/mphR/PLpsbkF70QbalpZTItbdxYeonUnGyTatHZTiLO0pPhIVEaqJvAVqWAwvPSNKtZA3DTZJAVvCry6Bx1C8lhQy9Rv4Kssjb+ZzgfPY8Oo9VlXlO5Ok2bcJeRPhrTSrT7EWB0u59X21y2f5UOeF1ZFnN6D3Rawf+50q0RnwHYCvQFEmmU5oi3TxpCL3IyW1MWMZ4orREsglak3GNSSM0eixFBaeldahRgBGcLv9yh6P/HMztZQMVEQZ14wPy8I5sRP2zwryxh55LIo9WgQNp6DqtPgPp1B7Io7CkmjOkvgaJVdTNIkpdlKfegZ7gGIHSomfvmkemV40IqpOEM2ScURrhuj/Nz4839mPrh5UzTe1gk21jv6bowTKyQ6mARcg1i1nzqLwvk3wjuUzYwD1n/5UV6wESEvaAHMpCcGBatZya1zELckHK5QHMd3gL/BZYDEybiFZavXU3pduU0dRNAb4Fu8VFTCLV2c4qRH5a0i54w2bv/Vheu2pzRP3XbBNeN7nbCHub40JyaBw+MKnLxoACU9/mWNN0XCdhUmYkVJomvu8yLCTLgBKaYuSwFBClBGV2R6BFM8gO3EF/ZmSN2diTxVGzw9LXIKO3B+5aV1+Mx086u1zyWFTlHtZEYQSCQ6p1oRbzeSSomrl3EmZU5HPkCeM4lxijRE5xTgo2d89XEnOhcUUKtnr4dfbb7/Of5hFTRUZ2t+4q43bLIrxlh1cgnvpSQfVmxFRJ/ekBpQ3So/vzwaldkFI1Sh5MkFMupfh+l+EUBV4RaTL510muANX+4kqTSmlRFFcxldd0FlVo53gJJttnu0zVM0iNKmF+QvHTXiqUDg5TYQ5btYMswy9qWq3htDQrXY65ODqNGlzrPlgJ44fb1h3yjIqyZaPYedjQaaC/CTOlqOS67fWljOUsrDXgjq5Tox4SbzerLkwi1WRF+POXL97V46rvqOyd4EjNxbMnl6hsVoFCbWegjkm/MafAOcED59zsnon+oQW6JrjtSr+pc7Tj75XbeY53fU4en8HxH8hjRR244YcX6WoL2upeeGnpdGLXio2j3gr5pFPTj07ExD2BmZodExrOjVF9uwLdi7aqWuYFPiAnn3LgveRU5KZne0/4l60Ph91DM/i57kNOhxFWLczKbM+OSHYPsD1ZPYLMazwQFoRusFkraweUUorGHgkmm2edeLNpPB/J/8EVZuxuptpR8pUy5lOpE/E9ZoyoFvZiM2ZP+HIy5nyk62VMN9OhxaxF2fIfHVfrM+4V9ON/trAXR6cnwK8njaZqPNPFw4+Gc5mGc838aek632H+TNWGps+fH+1nZPv5PwAA//+fqH6s" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/data.go index 930f573b..0b745827 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 healthcheck import ( @@ -30,7 +47,7 @@ func eventMapping(cont *types.Container, m *MetricSet) common.MapStr { container, err := m.dockerClient.ContainerInspect(context.TODO(), cont.ID) if err != nil { - logp.Err("Error inpsecting container %v: %v", cont.ID, err) + logp.Err("Error inspecting container %v: %v", cont.ID, err) return nil } lastEvent := len(container.State.Health.Log) - 1 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/healthcheck.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/healthcheck.go index 6827f45f..78187158 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/healthcheck.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/healthcheck.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 healthcheck import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go deleted file mode 100644 index 8c1356f7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build integration - -package healthcheck - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"healthcheck"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/helper.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/helper.go index 0b81b81d..41b3edda 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/helper.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/helper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 docker import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/helper_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/helper_test.go deleted file mode 100644 index 9e63a74b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/helper_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package docker - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -func TestDeDotLabels(t *testing.T) { - labels := map[string]string{ - "com.docker.swarm.task": "", - "com.docker.swarm.task.id": "1", - "com.docker.swarm.task.name": "foobar", - } - - t.Run("dedot enabled", func(t *testing.T) { - result := DeDotLabels(labels, true) - assert.Equal(t, common.MapStr{ - "com_docker_swarm_task": "", - "com_docker_swarm_task_id": "1", - "com_docker_swarm_task_name": "foobar", - }, result) - }) - - t.Run("dedot disabled", func(t *testing.T) { - result := DeDotLabels(labels, false) - assert.Equal(t, common.MapStr{ - "com": common.MapStr{ - "docker": common.MapStr{ - "swarm": common.MapStr{ - "task": common.MapStr{ - "value": "", - "id": "1", - "name": "foobar", - }, - }, - }, - }, - }, result) - }) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/image/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/image/data.go index 2ab91cd6..f3172a8a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/image/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/image/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 image import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/image/image.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/image/image.go index 7df1423b..3a5a9f82 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/image/image.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/image/image.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 image import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/image/image_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/image/image_integration_test.go deleted file mode 100644 index 988927ab..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/image/image_integration_test.go +++ /dev/null @@ -1,23 +0,0 @@ -package image - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"image"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/info/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/info/data.go index 93d9865e..65d2738d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/info/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/info/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 info import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/info/info.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/info/info.go index 12fe1932..a8d6f9b5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/info/info.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/info/info.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 info import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/info/info_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/info/info_integration_test.go deleted file mode 100644 index 849f0249..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/info/info_integration_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build integration - -package info - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"info"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/data.go index bb03b194..6504a64b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memory import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/helper.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/helper.go index f91560b3..b7c63b91 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/helper.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/helper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memory import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory.go index 7bb0e663..466b6ca3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memory import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory_integration_test.go deleted file mode 100644 index 75e6ede1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory_integration_test.go +++ /dev/null @@ -1,36 +0,0 @@ -// +build integration - -package memory - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -/* -// TODO: Enable -func TestFetch(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - t.Logf(" module : %s metricset : %s event: %+v", f.Module().Name(), f.Name(), event) -}*/ - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"memory"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory_test.go deleted file mode 100644 index 765f2ccc..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/memory/memory_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package memory - -import ( - "reflect" - "testing" - "time" - - "github.com/docker/docker/api/types" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/module/docker" - - "github.com/stretchr/testify/assert" -) - -func TestMemoryService_GetMemoryStats(t *testing.T) { - //Container + dockerstats - containerID := "containerID" - labels := map[string]string{ - "label1": "val1", - "label2": "val2", - "label2.foo": "val3", - } - container := types.Container{ - ID: containerID, - Image: "image", - Command: "command", - Created: 123789, - Status: "Up", - SizeRw: 123, - SizeRootFs: 456, - Names: []string{"/name1", "name1/fake"}, - Labels: labels, - } - memoryService := &MemoryService{} - memorystats := getMemoryStats(time.Now(), 1) - - memoryRawStats := docker.Stat{} - memoryRawStats.Container = &container - memoryRawStats.Stats = memorystats - - totalRSS := memorystats.MemoryStats.Stats["total_rss"] - expectedEvent := common.MapStr{ - "_module": common.MapStr{ - "container": common.MapStr{ - "id": containerID, - "name": "name1", - "labels": common.MapStr{ - "label1": "val1", - "label2": common.MapStr{ - "foo": "val3", - "value": "val2", - }, - }, - }, - }, - "fail": common.MapStr{ - "count": memorystats.MemoryStats.Failcnt, - }, - "limit": memorystats.MemoryStats.Limit, - "rss": common.MapStr{ - "total": totalRSS, - "pct": float64(totalRSS) / float64(memorystats.MemoryStats.Limit), - }, - "usage": common.MapStr{ - "total": memorystats.MemoryStats.Usage, - "pct": float64(memorystats.MemoryStats.Usage) / float64(memorystats.MemoryStats.Limit), - "max": memorystats.MemoryStats.MaxUsage, - }, - } - //WHEN - rawStats := memoryService.getMemoryStats(memoryRawStats, false) - event := eventMapping(&rawStats) - //THEN - assert.True(t, equalEvent(expectedEvent, event)) - t.Logf(" expected : %v", expectedEvent) - t.Logf(" returned : %v", event) -} - -func getMemoryStats(read time.Time, number uint64) types.StatsJSON { - - myMemoryStats := types.StatsJSON{ - Stats: types.Stats{ - Read: read, - MemoryStats: types.MemoryStats{ - MaxUsage: number, - Usage: number * 2, - Failcnt: number * 3, - Limit: number * 4, - Stats: map[string]uint64{}, - }, - }, - } - - myMemoryStats.MemoryStats.Stats["total_rss"] = number * 5 - - return myMemoryStats -} -func equalEvent(expectedEvent common.MapStr, event common.MapStr) bool { - return reflect.DeepEqual(expectedEvent, event) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/data.json index f7b4524c..ddb3c827 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/data.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/data.json @@ -6,19 +6,16 @@ }, "docker": { "container": { - "id": "da57ef738524e5a4f6ae17b477f134d30719603db7b96d2c01b6f34010412e66", + "id": "452523bf833fd9fd1a8425135b720de4cb9b5a32096deac5b52a97e97bb6d16d", "labels": { - "build-date": "20170911", - "com_docker_compose_config-hash": "13a74b89a90a6fdcb6bbbc7eb37b7cb0615bdaf8", + "com_docker_compose_config-hash": "68a840a9e1c606ca1026492e50620e139ca342c585f330025a90f39a5fd32538", "com_docker_compose_container-number": "1", "com_docker_compose_oneoff": "False", "com_docker_compose_project": "metricbeat", "com_docker_compose_service": "elasticsearch", - "com_docker_compose_version": "1.5.0", - "license": "GPLv2", + "com_docker_compose_version": "1.21.0", "maintainer": "Elastic Docker Team \u003cdocker@elastic.co\u003e", - "name": "CentOS Base Image", - "vendor": "CentOS" + "org_label-schema_schema-version": "= 1.0 org.label-schema.name=CentOS Base Image org.label-schema.vendor=CentOS org.label-schema.license=GPLv2 org.label-schema.build-date=20180402" }, "name": "metricbeat_elasticsearch_1" }, @@ -29,12 +26,24 @@ "errors": 0, "packets": 0 }, + "inbound": { + "bytes": 61694097, + "dropped": 0, + "errors": 0, + "packets": 714036 + }, "interface": "eth0", "out": { "bytes": 0, "dropped": 0, "errors": 0, "packets": 0 + }, + "outbound": { + "bytes": 69114459, + "dropped": 0, + "errors": 0, + "packets": 713985 } } }, @@ -44,4 +53,4 @@ "name": "network", "rtt": 115 } -} \ No newline at end of file +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/fields.yml index cb10ad1b..f66b8492 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/_meta/fields.yml @@ -11,8 +11,9 @@ Network interface name. - name: in type: group + deprecated: true description: > - Incoming network stats. + Incoming network stats per second. fields: - name: bytes type: long @@ -33,8 +34,9 @@ Total number of incoming packets. - name: out type: group + deprecated: true description: > - Outgoing network stats. + Outgoing network stats per second. fields: - name: bytes type: long @@ -53,3 +55,49 @@ type: long description: > Total number of outgoing packets. + - name: inbound + type: group + deprecated: true + description: > + Incoming network stats since the container started. + fields: + - name: bytes + type: long + format: bytes + description: > + Total number of incoming bytes. + - name: dropped + type: long + description: > + Total number of dropped incoming packets. + - name: errors + type: long + description: > + Total errors on incoming packets. + - name: packets + type: long + description: > + Total number of incoming packets. + - name: outbound + type: group + deprecated: true + description: > + Outgoing network stats since the container started. + fields: + - name: bytes + type: long + format: bytes + description: > + Total number of outgoing bytes. + - name: dropped + type: long + description: > + Total number of dropped outgoing packets. + - name: errors + type: long + description: > + Total errors on outgoing packets. + - name: packets + type: long + description: > + Total number of outgoing packets. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/data.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/data.go index 0844e276..80273317 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 network import ( @@ -5,32 +22,44 @@ import ( "github.com/elastic/beats/metricbeat/mb" ) -func eventsMapping(netsStatsList []NetStats) []common.MapStr { - myEvents := []common.MapStr{} +func eventsMapping(r mb.ReporterV2, netsStatsList []NetStats) { for _, netsStats := range netsStatsList { - myEvents = append(myEvents, eventMapping(&netsStats)) + eventMapping(r, &netsStats) } - return myEvents } -func eventMapping(stats *NetStats) common.MapStr { - event := common.MapStr{ - mb.ModuleDataKey: common.MapStr{ +func eventMapping(r mb.ReporterV2, stats *NetStats) { + // Deprecated fields + r.Event(mb.Event{ + ModuleFields: common.MapStr{ "container": stats.Container.ToMapStr(), }, - "interface": stats.NameInterface, - "in": common.MapStr{ - "bytes": stats.RxBytes, - "dropped": stats.RxDropped, - "errors": stats.RxErrors, - "packets": stats.RxPackets, - }, - "out": common.MapStr{ - "bytes": stats.TxBytes, - "dropped": stats.TxDropped, - "errors": stats.TxErrors, - "packets": stats.TxPackets, + MetricSetFields: common.MapStr{ + "interface": stats.NameInterface, + "in": common.MapStr{ + "bytes": stats.RxBytes, + "dropped": stats.RxDropped, + "errors": stats.RxErrors, + "packets": stats.RxPackets, + }, + "out": common.MapStr{ + "bytes": stats.TxBytes, + "dropped": stats.TxDropped, + "errors": stats.TxErrors, + "packets": stats.TxPackets, + }, + "inbound": common.MapStr{ + "bytes": stats.Total.RxBytes, + "dropped": stats.Total.RxDropped, + "errors": stats.Total.RxErrors, + "packets": stats.Total.RxPackets, + }, + "outbound": common.MapStr{ + "bytes": stats.Total.TxBytes, + "dropped": stats.Total.TxDropped, + "errors": stats.Total.TxErrors, + "packets": stats.Total.TxPackets, + }, }, - } - return event + }) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/helper.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/helper.go index 6df1b8e9..3b6f58bf 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/helper.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/helper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 network import ( @@ -47,6 +64,7 @@ type NetStats struct { TxDropped float64 TxErrors float64 TxPackets float64 + Total *types.NetworkStats } func (n *NetService) getNetworkStatsPerContainer(rawStats []docker.Stat, dedot bool) []NetStats { @@ -68,6 +86,7 @@ func (n *NetService) getNetworkStats(nameInterface string, rawNetStats *types.Ne Container: docker.NewContainer(myRawstats.Container, dedot), Time: myRawstats.Stats.Read, NameInterface: nameInterface, + Total: rawNetStats, } if exist { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network.go index 5915b465..67dd2423 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network.go @@ -1,9 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 network import ( "github.com/docker/docker/client" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) @@ -45,12 +61,13 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch methods creates a list of network events for each container. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(r mb.ReporterV2) { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - return nil, err + r.Error(err) + return } formattedStats := m.netService.getNetworkStatsPerContainer(stats, m.dedot) - return eventsMapping(formattedStats), nil + eventsMapping(r, formattedStats) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network_integration_test.go deleted file mode 100644 index 55bdfe4f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network_integration_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build integration - -package network - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "docker", - "metricsets": []string{"network"}, - "hosts": []string{"unix:///var/run/docker.sock"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network_test.go b/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network_test.go deleted file mode 100644 index 1b2cfa8e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/docker/network/network_test.go +++ /dev/null @@ -1,217 +0,0 @@ -package network - -import ( - "testing" - "time" -) - -var oldNetRaw = make([]NetRaw, 3) -var newNetRaw = make([]NetRaw, 3) -var netService = &NetService{ - NetworkStatPerContainer: make(map[string]map[string]NetRaw), -} - -func TestGetRxBytesPerSecond(t *testing.T) { - oldRxBytes := []uint64{20, 0, 210} - newRxBytes := []uint64{120, 0, 103} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].RxBytes = oldRxBytes[index] - newNetRaw[index].RxBytes = newRxBytes[index] - } - rxBytesTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 50}, - {oldNetRaw[1], newNetRaw[1], 0}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range rxBytesTest { - out := netService.getRxBytesPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getRxBytesPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func TestGetRxDroppedPerSeconde(t *testing.T) { - oldRxDroppedBytes := []uint64{40, 645789, 0} - newRxDroppedBytes := []uint64{240, 12345, 0} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].RxDropped = oldRxDroppedBytes[index] - newNetRaw[index].RxDropped = newRxDroppedBytes[index] - } - rxDroppedTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 100}, - {oldNetRaw[1], newNetRaw[1], 0}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range rxDroppedTest { - out := netService.getRxDroppedPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getRxDroppedPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func TestGetRxPacketsPerSeconde(t *testing.T) { - oldRxPacketsBytes := []uint64{40, 265, 0} - newRxPacketsBytes := []uint64{140, 26, 0} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].RxPackets = oldRxPacketsBytes[index] - newNetRaw[index].RxPackets = newRxPacketsBytes[index] - } - rxPacketTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 50}, - {oldNetRaw[1], newNetRaw[1], 0}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range rxPacketTest { - out := netService.getRxPacketsPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getRxPacketsPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func TestGetRxErrorsPerSeconde(t *testing.T) { - oldRxErrorsBytes := []uint64{0, 150, 986} - newRxErrorsBytes := []uint64{0, 1150, 653} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].RxErrors = oldRxErrorsBytes[index] - newNetRaw[index].RxErrors = newRxErrorsBytes[index] - } - rxPacketTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 0}, - {oldNetRaw[1], newNetRaw[1], 500}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range rxPacketTest { - out := netService.getRxErrorsPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getRxErrorsPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func TestGetTxBytesPerSecond(t *testing.T) { - oldTxBytes := []uint64{0, 995, 986} - newTxBytes := []uint64{0, 2995, 653} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].TxBytes = oldTxBytes[index] - newNetRaw[index].TxBytes = newTxBytes[index] - } - txBytesTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 0}, - {oldNetRaw[1], newNetRaw[1], 1000}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range txBytesTest { - out := netService.getTxBytesPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getTxBytesPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func TestGetTxDroppedPerSeconde(t *testing.T) { - oldTxDropped := []uint64{0, 5, 1236} - newTxDropped := []uint64{0, 15, 569} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].TxDropped = oldTxDropped[index] - newNetRaw[index].TxDropped = newTxDropped[index] - } - txDroppedTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 0}, - {oldNetRaw[1], newNetRaw[1], 5}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range txDroppedTest { - out := netService.getTxDroppedPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getTxDroppedPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func TestGetTxPacketsPerSeconde(t *testing.T) { - oldTxPacket := []uint64{102, 52, 0} - newTxPacket := []uint64{2102, 15, 0} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].TxPackets = oldTxPacket[index] - newNetRaw[index].TxPackets = newTxPacket[index] - } - txPacketTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 1000}, - {oldNetRaw[1], newNetRaw[1], 0}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range txPacketTest { - out := netService.getTxPacketsPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getTxPacketsPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func TestGetTxErrorsPerSecond(t *testing.T) { - oldTxErrors := []uint64{995, 0, 30} - newTxErrors := []uint64{1995, 0, 10} - for index := range oldNetRaw { - setTime(index) - oldNetRaw[index].TxErrors = oldTxErrors[index] - newNetRaw[index].TxErrors = newTxErrors[index] - } - txErrorsTest := []struct { - givenOld NetRaw - givenNew NetRaw - expected float64 - }{ - {oldNetRaw[0], newNetRaw[0], 500}, - {oldNetRaw[1], newNetRaw[1], 0}, - {oldNetRaw[2], newNetRaw[2], 0}, - } - for _, tt := range txErrorsTest { - out := netService.getTxErrorsPerSecond(&tt.givenNew, &tt.givenOld) - if out != tt.expected { - t.Errorf("getTxErrorsPerSecond(%v,%v) => %v, want %v", tt.givenNew, tt.givenOld, out, tt.expected) - } - } -} - -func setTime(index int) { - oldNetRaw[index].Time = time.Now() - newNetRaw[index].Time = oldNetRaw[index].Time.Add(time.Duration(2000000000)) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/collector.go b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/collector.go index 4355c25a..39448697 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/collector.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/collector.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 collector import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/collector_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/collector_integration_test.go deleted file mode 100644 index 7b26d9d7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/collector_integration_test.go +++ /dev/null @@ -1,97 +0,0 @@ -// +build integration - -package collector - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "dropwizard") - - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - - hasTag := false - doesntHaveTag := false - for _, event := range events { - - ok, _ := event.HasKey("my_histogram") - if ok { - _, err := event.GetValue("tags") - if err == nil { - t.Fatal("write", "my_counter not supposed to have tags") - } - doesntHaveTag = true - } - - ok, _ = event.HasKey("my_counter") - if ok { - tagsRaw, err := event.GetValue("tags") - if err != nil { - t.Fatal("write", err) - } else { - tags, ok := tagsRaw.(common.MapStr) - if !ok { - t.Fatal("write", "unable to cast tags to common.MapStr") - } else { - assert.Equal(t, len(tags), 1) - hasTag = true - } - } - } - } - assert.Equal(t, hasTag, true) - assert.Equal(t, doesntHaveTag, true) - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "dropwizard") - - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getEnvHost() string { - host := os.Getenv("DROPWIZARD_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func getEnvPort() string { - port := os.Getenv("DROPWIZARD_PORT") - - if len(port) == 0 { - port = "8080" - } - return port -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "dropwizard", - "metricsets": []string{"collector"}, - "hosts": []string{getEnvHost() + ":" + getEnvPort()}, - "namespace": "testnamespace", - "metrics_path": "/test/metrics", - "enabled": true, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/data.go b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/data.go index 12d66177..199db679 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/collector/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 collector import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/doc.go index f7be050f..1fc8c8e7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dropwizard is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/fields.go new file mode 100644 index 00000000..99457bea --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/dropwizard/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package dropwizard + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "dropwizard", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJxsjkGqAjEQBfc5xSP7+QfoxV95A5ciEpPOGMwkId0i4+llVJQRe1nQ9WrAmWdC6LVd0831YABNmplgN29oDRBYfE9NUy2EfwMAW3Uq8DVn9soBsdcJn68/A3TO7IQJR1ZnAGHVVEYh7KxItvuFnWrXg68lppEQXRY2QEycg9BjaEBxE39lLqdzY8LY66W9yI/MtevpW3fdAwAA///TV1G0" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/Dockerfile index b6b7753a..4de23503 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/Dockerfile +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/Dockerfile @@ -1,2 +1,2 @@ -FROM docker.elastic.co/elasticsearch/elasticsearch:6.2.4 +FROM docker.elastic.co/elasticsearch/elasticsearch:6.3.0 HEALTHCHECK --interval=1s --retries=300 CMD curl -f http://localhost:9200 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/config.reference.yml index 3a322d4d..f813caa8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/_meta/config.reference.yml @@ -3,7 +3,12 @@ - node - node_stats #- index + #- index_recovery #- index_summary #- shard + #- ml_job period: 10s hosts: ["localhost:9200"] + + # Set to false to fetch all entries + #index_recovery.active_only: true diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/data.json new file mode 100644 index 00000000..62e4288c --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/data.json @@ -0,0 +1,43 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "beat": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "elasticsearch": { + "cluster": { + "id": "6UTQ_iuNSzWP49zv99vxDg", + "name": "elasticsearch", + "stats": { + "indices": { + "fielddata": { + "memory": { + "bytes": 1208 + } + }, + "shards": { + "count": 18, + "primaries": 18 + }, + "total": 18 + }, + "nodes": { + "count": 1, + "data": 1, + "master": 1 + }, + "status": "yellow" + } + } + }, + "metricset": { + "host": "127.0.0.1:9200", + "module": "elasticsearch", + "name": "cluster_stats", + "namespace": "elasticsearch.cluster.stats", + "rtt": 115 + }, + "service": { + "name": "elasticsearch" + } +} \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/docs.asciidoc new file mode 100644 index 00000000..1b685ab5 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/docs.asciidoc @@ -0,0 +1,3 @@ +This is the `cluster_stats` metricset of the Elasticsearch module. It interrogates the +https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html[Cluster Stats API endpoint] +to fetch information about the Elasticsearch cluster. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/fields.yml new file mode 100644 index 00000000..a4271342 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/fields.yml @@ -0,0 +1,53 @@ +- name: cluster.stats + type: group + description: > + Cluster stats + release: beta + fields: + - name: status + type: keyword + description: > + Cluster status (green, yellow, red). + - name: nodes + type: group + description: > + Nodes statistics. + fields: + - name: count + type: long + description: > + Total number of nodes in cluster. + - name: master + type: long + description: > + Number of master-eligible nodes in cluster. + - name: data + type: long + description: > + Number of data nodes in cluster. + - name: indices + type: group + description: > + Indices statistics. + fields: + - name: count + type: long + description: > + Total number of indices in cluster. + - name: shards + type: group + description: > + Shard statistics. + fields: + - name: count + type: long + description: > + Total number of shards in cluster. + - name: primaries + type: long + description: > + Total number of primary shards in cluster. + - name: fielddata.memory.bytes + type: long + description: > + Memory used for fielddata. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/test/cluster_stats.630.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/test/cluster_stats.630.json new file mode 100644 index 00000000..82156112 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/test/cluster_stats.630.json @@ -0,0 +1,170 @@ +{ + "_nodes":{ + "total":1, + "successful":1, + "failed":0 + }, + "cluster_name":"docker-cluster", + "timestamp":1532386151704, + "status":"yellow", + "indices":{ + "count":1, + "shards":{ + "total":4, + "primaries":4, + "replication":0.0, + "index":{ + "shards":{ + "min":4, + "max":4, + "avg":4.0 + }, + "primaries":{ + "min":4, + "max":4, + "avg":4.0 + }, + "replication":{ + "min":0.0, + "max":0.0, + "avg":0.0 + } + } + }, + "docs":{ + "count":2, + "deleted":0 + }, + "store":{ + "size_in_bytes":6024 + }, + "fielddata":{ + "memory_size_in_bytes":0, + "evictions":0 + }, + "query_cache":{ + "memory_size_in_bytes":0, + "total_count":0, + "hit_count":0, + "miss_count":0, + "cache_size":0, + "cache_count":0, + "evictions":0 + }, + "completion":{ + "size_in_bytes":0 + }, + "segments":{ + "count":2, + "memory_in_bytes":1342, + "terms_memory_in_bytes":578, + "stored_fields_memory_in_bytes":624, + "term_vectors_memory_in_bytes":0, + "norms_memory_in_bytes":0, + "points_memory_in_bytes":4, + "doc_values_memory_in_bytes":136, + "index_writer_memory_in_bytes":0, + "version_map_memory_in_bytes":0, + "fixed_bit_set_memory_in_bytes":0, + "max_unsafe_auto_id_timestamp":-1, + "file_sizes":{ + + } + } + }, + "nodes":{ + "count":{ + "total":1, + "data":1, + "coordinating_only":0, + "master":1, + "ingest":1 + }, + "versions":[ + "6.3.0" + ], + "os":{ + "available_processors":4, + "allocated_processors":4, + "names":[ + { + "name":"Linux", + "count":1 + } + ], + "mem":{ + "total_in_bytes":2095771648, + "free_in_bytes":66191360, + "used_in_bytes":2029580288, + "free_percent":3, + "used_percent":97 + } + }, + "process":{ + "cpu":{ + "percent":1 + }, + "open_file_descriptors":{ + "min":256, + "max":256, + "avg":256 + } + }, + "jvm":{ + "max_uptime_in_millis":220179, + "versions":[ + { + "version":"10.0.1", + "vm_name":"OpenJDK 64-Bit Server VM", + "vm_version":"10.0.1+10", + "vm_vendor":"Oracle Corporation", + "count":1 + } + ], + "mem":{ + "heap_used_in_bytes":412775576, + "heap_max_in_bytes":1038876672 + }, + "threads":45 + }, + "fs":{ + "total_in_bytes":62725623808, + "free_in_bytes":40728297472, + "available_in_bytes":37511581696 + }, + "plugins":[ + { + "name":"ingest-user-agent", + "version":"6.3.0", + "elasticsearch_version":"6.3.0", + "java_version":"1.8", + "description":"Ingest processor that extracts information from a user agent", + "classname":"org.elasticsearch.ingest.useragent.IngestUserAgentPlugin", + "extended_plugins":[ + + ], + "has_native_controller":false + }, + { + "name":"ingest-geoip", + "version":"6.3.0", + "elasticsearch_version":"6.3.0", + "java_version":"1.8", + "description":"Ingest processor that uses looksup geo data based on ip adresses using the Maxmind geo database", + "classname":"org.elasticsearch.ingest.geoip.IngestGeoIpPlugin", + "extended_plugins":[ + + ], + "has_native_controller":false + } + ], + "network_types":{ + "transport_types":{ + "security4":1 + }, + "http_types":{ + "security4":1 + } + } + } + } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/test/cluster_stats.700.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/test/cluster_stats.700.json new file mode 100644 index 00000000..50180bfd --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/_meta/test/cluster_stats.700.json @@ -0,0 +1,147 @@ +{ + "_nodes":{ + "total":2, + "successful":2, + "failed":0 + }, + "cluster_name":"elasticsearch", + "timestamp":1532433421874, + "status":"yellow", + "indices":{ + "count":4, + "shards":{ + "total":16, + "primaries":8, + "replication":1, + "index":{ + "shards":{ + "min":2, + "max":10, + "avg":4 + }, + "primaries":{ + "min":1, + "max":5, + "avg":2 + }, + "replication":{ + "min":1, + "max":1, + "avg":1 + } + } + }, + "docs":{ + "count":145, + "deleted":0 + }, + "store":{ + "size_in_bytes":1030085 + }, + "fielddata":{ + "memory_size_in_bytes":0, + "evictions":0 + }, + "query_cache":{ + "memory_size_in_bytes":0, + "total_count":0, + "hit_count":0, + "miss_count":0, + "cache_size":0, + "cache_count":0, + "evictions":0 + }, + "completion":{ + "size_in_bytes":0 + }, + "segments":{ + "count":26, + "memory_in_bytes":108394, + "terms_memory_in_bytes":83123, + "stored_fields_memory_in_bytes":8112, + "term_vectors_memory_in_bytes":0, + "norms_memory_in_bytes":0, + "points_memory_in_bytes":3047, + "doc_values_memory_in_bytes":14112, + "index_writer_memory_in_bytes":0, + "version_map_memory_in_bytes":0, + "fixed_bit_set_memory_in_bytes":0, + "max_unsafe_auto_id_timestamp":1532433381676, + "file_sizes":{ + + } + } + }, + "nodes":{ + "count":{ + "total":2, + "data":2, + "coordinating_only":0, + "master":2, + "ingest":2 + }, + "versions":[ + "7.0.0-alpha1" + ], + "os":{ + "available_processors":16, + "allocated_processors":16, + "names":[ + { + "name":"Mac OS X", + "count":2 + } + ], + "mem":{ + "total_in_bytes":34359738368, + "free_in_bytes":735543296, + "used_in_bytes":33624195072, + "free_percent":2, + "used_percent":98 + } + }, + "process":{ + "cpu":{ + "percent":0 + }, + "open_file_descriptors":{ + "min":364, + "max":371, + "avg":367 + } + }, + "jvm":{ + "max_uptime_in_millis":228721, + "versions":[ + { + "version":"10.0.1", + "vm_name":"Java HotSpot(TM) 64-Bit Server VM", + "vm_version":"10.0.1+10", + "vm_vendor":"Oracle Corporation", + "count":2 + } + ], + "mem":{ + "heap_used_in_bytes":420771816, + "heap_max_in_bytes":2075918336 + }, + "threads":164 + }, + "fs":{ + "total_in_bytes":499963170816, + "free_in_bytes":410995167232, + "available_in_bytes":408143978496 + }, + "plugins":[ + + ], + "network_types":{ + "transport_types":{ + "security4":2 + }, + "http_types":{ + "security4":2 + } + } + } + } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/cluster_stats.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/cluster_stats.go new file mode 100644 index 00000000..c6d848e7 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/cluster_stats.go @@ -0,0 +1,77 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_stats + +import ( + "fmt" + + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/module/elasticsearch" +) + +func init() { + mb.Registry.MustAddMetricSet("elasticsearch", "cluster_stats", New, + mb.WithHostParser(elasticsearch.HostParser), + mb.WithNamespace("elasticsearch.cluster.stats"), + ) +} + +const ( + clusterStatsPath = "/_cluster/stats" +) + +// MetricSet defines all fields of the MetricSet +type MetricSet struct { + *elasticsearch.MetricSet +} + +// New create a new instance of the MetricSet +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Beta("The elasticsearch cluster_stats metricset is beta") + + ms, err := elasticsearch.NewMetricSet(base, clusterStatsPath) + if err != nil { + return nil, err + } + return &MetricSet{MetricSet: ms}, nil +} + +// Fetch methods implements the data gathering and data conversion to the right format +func (m *MetricSet) Fetch(r mb.ReporterV2) { + isMaster, err := elasticsearch.IsMaster(m.HTTP, m.HostData().SanitizedURI+clusterStatsPath) + if err != nil { + r.Error(fmt.Errorf("Error fetching master info: %s", err)) + return + } + + // Not master, no event sent + if !isMaster { + logp.Debug("elasticsearch", "Trying to fetch index recovery stats from a non master node.") + return + } + + content, err := m.HTTP.FetchContent() + if err != nil { + r.Error(err) + return + } + + eventMapping(r, content) +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/data.go new file mode 100644 index 00000000..9f16b495 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/cluster_stats/data.go @@ -0,0 +1,96 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cluster_stats + +import ( + "encoding/json" + "fmt" + + "github.com/elastic/beats/libbeat/common" + + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstriface" + "github.com/elastic/beats/metricbeat/mb" +) + +var ( + schema = s.Schema{ + "status": c.Str("status"), + "nodes": c.Dict("nodes", s.Schema{ + "count": c.Int("count.total"), + "master": c.Int("count.master"), + "data": c.Int("count.data"), + }), + "indices": c.Dict("indices", s.Schema{ + "total": c.Int("count"), + "shards": c.Dict("shards", s.Schema{ + "count": c.Int("total"), + "primaries": c.Int("primaries"), + }), + "fielddata": c.Dict("fielddata", s.Schema{ + "memory": s.Object{ + "bytes": c.Int("memory_size_in_bytes"), + }, + }), + }), + } +) + +// TODO: Remove this function and use the one implemented (currently) in the kibana +// module, after extracting it into the metricbeat helper package +func reportErrorForMissingField(field string, r mb.ReporterV2) error { + err := fmt.Errorf("Could not find field '%v' in Kibana stats API response", field) + r.Error(err) + return err +} + +func eventMapping(r mb.ReporterV2, content []byte) error { + var data map[string]interface{} + err := json.Unmarshal(content, &data) + if err != nil { + r.Error(err) + return err + } + + metricSetFields, err := schema.Apply(data) + if err != nil { + r.Error(err) + return err + } + + clusterName, ok := data["cluster_name"] + if !ok { + return reportErrorForMissingField("cluster_name", r) + } + + var event mb.Event + event.RootFields = common.MapStr{} + event.RootFields.Put("service.name", "elasticsearch") + + event.ModuleFields = common.MapStr{} + event.ModuleFields.Put("cluster.name", clusterName) + clusterUUID, ok := data["cluster_uuid"] + if ok { + event.ModuleFields.Put("cluster.id", clusterUUID) + } + + event.MetricSetFields = metricSetFields + + r.Event(event) + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/doc.go index 3b4b7b24..6cc8b28f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/elasticsearch.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/elasticsearch.go index f97f80d9..43be677a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/elasticsearch.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/elasticsearch.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( @@ -101,15 +118,8 @@ func getMasterName(http *helper.HTTP, uri string) (string, error) { // GetInfo returns the data for the Elasticsearch / endpoint func GetInfo(http *helper.HTTP, uri string) (*Info, error) { - defer http.SetURI(uri) - // Parses the uri to replace the path - u, _ := url.Parse(uri) - u.Path = "" - - // Http helper includes the HostData with username and password - http.SetURI(u.String()) - content, err := http.FetchContent() + content, err := fetchPath(http, uri, "/") if err != nil { return nil, err } @@ -126,6 +136,7 @@ func fetchPath(http *helper.HTTP, uri, path string) ([]byte, error) { // Parses the uri to replace the path u, _ := url.Parse(uri) u.Path = path + u.RawQuery = "" // Http helper includes the HostData with username and password http.SetURI(u.String()) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/elasticsearch_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/elasticsearch_integration_test.go deleted file mode 100644 index 9b15da53..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/elasticsearch_integration_test.go +++ /dev/null @@ -1,123 +0,0 @@ -// +build integration - -package elasticsearch_test - -import ( - "fmt" - "net/http" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - _ "github.com/elastic/beats/metricbeat/module/elasticsearch/index" - _ "github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary" - _ "github.com/elastic/beats/metricbeat/module/elasticsearch/node" - _ "github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats" - _ "github.com/elastic/beats/metricbeat/module/elasticsearch/shard" -) - -var metricSets = []string{ - "index", - "index_summary", - "node", - "node_stats", - "shard", -} - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "elasticsearch") - - err := createIndex(getEnvHost() + ":" + getEnvPort()) - assert.NoError(t, err) - - for _, metricSet := range metricSets { - t.Run(metricSet, func(t *testing.T) { - f := mbtest.NewReportingMetricSetV2(t, getConfig(metricSet)) - events, errs := mbtest.ReportingFetchV2(f) - - assert.NotNil(t, events) - assert.Nil(t, errs) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0].BeatEvent("elasticsearch", metricSet).Fields.StringToPrint()) - }) - } -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "elasticsearch") - - for _, metricSet := range metricSets { - t.Run(metricSet, func(t *testing.T) { - f := mbtest.NewReportingMetricSetV2(t, getConfig(metricSet)) - err := mbtest.WriteEventsReporterV2(f, t, metricSet) - if err != nil { - t.Fatal("write", err) - } - }) - } -} - -// GetEnvHost returns host for Elasticsearch -func getEnvHost() string { - host := os.Getenv("ES_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -// GetEnvPort returns port for Elasticsearch -func getEnvPort() string { - port := os.Getenv("ES_PORT") - - if len(port) == 0 { - port = "9200" - } - return port -} - -// GetConfig returns config for elasticsearch module -func getConfig(metricset string) map[string]interface{} { - return map[string]interface{}{ - "module": "elasticsearch", - "metricsets": []string{metricset}, - "hosts": []string{getEnvHost() + ":" + getEnvPort()}, - } -} - -// createIndex creates and elasticsearch index in case it does not exit yet -func createIndex(host string) error { - client := &http.Client{} - - resp, err := http.Get("http://" + host + "/testindex") - if err != nil { - return err - } - resp.Body.Close() - - // This means index already exists - if resp.StatusCode == 200 { - return nil - } - - req, err := http.NewRequest("PUT", "http://"+host+"/testindex", nil) - if err != nil { - return err - } - - resp, err = client.Do(req) - if err != nil { - return err - } - defer resp.Body.Close() - - if resp.StatusCode != 200 { - return fmt.Errorf("HTTP error %d: %s", resp.StatusCode, resp.Status) - } - - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/fields.go new file mode 100644 index 00000000..6ad6d798 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package elasticsearch + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "elasticsearch", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzsW81u4zYQvvspBjm1wEYP4EMvi26bApsuutkCRVF4aXEsM+GPlqScuE9fkJIc/VCWIimxF7Vvkezv+2Y4Q86QzDU84H4JyImxLDZIdLxdAFhmOS7h6ufq86sFAEUTa5ZapuQSfloAANS+A0LRjOMCQCNHYnAJa7RkAWDQWiYTs4S/r4zhV/+4Z1ul7SpWcsOSJWwIN+6XG4acmqUHvwZJBLYFuo/dp7iERKssLZ4E1NXhqpAxz4xFHbm/Di9L1AfcPypNK8+D2Pmn7oEC17NEi05aRl+DlNEjlMYSizMTe0xPe4zVtCirw9ZD+L6wrQnUjLDy0xzwqiiHkZnaq24n9OhqassM/JBoRPkO9si5enwHGumPUVCIVBTDOpqeGaDi1oF5DcwPTdT4RsgjlYFSmbQtzFwMVzJpvepRA3CnLOEgM7FGDWqTGwtMHmKiQ4kg7u2sUm4PInLwa+QsYWuOg0VRUouuOSU56B4dpQomKYvni5ibHO6MY6YweMAAmS3RtOmZY74ZoOazwzzinS7/9HnoqI8G6Gr7Kbf+iJueJaWaCaJZK4peQ1bOte+XV4rz/nQJEQkUSu+j9d4GlE4JsY8eGDKDFDZKVyhbixeTFJ+mLFpNgDGLVaMygWlL1Y1TVFQlITbrRnDw/NIX/lTFJnqrHKAqzgRK6+PMbjH3fncieHEUOVpsOvFV5OVML5ZprNIYGfYvdiRDj9SN0oLYJXT9eLApToIz5KDZGeBRj4jHxNv6ZkGQCzvQ9gs7Os+8lWuf9YvK7LTee1+XUgPuDs9YkcZY7VDvTz11sWZedXqzx1P5QlyaVWs0qnwOfr6pskHqkMK0xSoXZF4rxZHIlzHf6QyBNZbPMLexJJnR5j9Kaz1uINCq3JboBG3UMcqj+O88pK+Gu0c5p90q05xQcmL2wiq4yulAgVCq0Zij7POuylUJ9bU5POgq0zHO6vjPHvK44wva2Rxf5ex3fME+r+OrEuqOr8+oJhONFD/JhNpVu18qtFnkXSq0S4XWq/9lFRpceqtL5l4y9zvM3MN2NI/u1XrKyi/46/RRoyqeL5J9yxAEh3u17i71LLEzllm/qXUOGWajxJKVj2ITpVrFaAzSleu8NF2FontsH/mpBM833XHXDuSQJiZ3hDO6osTirHrutliJz9xgA4/MbgGZ3aIGAoIZw2TiBGEeJaDcc/+33RILsco4BaksrBFSog3SQAPRCmxX9E4J68bvT7+3eduu4qtkO9SGqWYrPpWvQA1T3u/E4PW+L4X+/Ag3cqOGndD0Wd1n+QBBpaigA6oKilVgiySNmGT2ZOvBr0hScApqS4CzoX+xrRohyNNpbRDkabwJUsnTD8WtktczDEdpyylH5GDK8FF5buf9chQJruIHwsO9wagdxJtNCQ4OG6lTUjgtuBBMv6DhUFZz3M6Y+ZDbz9KsctLdRD6rRgufmLF+uS9bmfNtss6oNfnempKy3+vZOYAZe9VRvagn7ZnF7nfCOTVKleKzZa2bPIt+zeGOSlzFu9MifCNkkJd+57QtrT1u3fqgdtmpe+WCviGFASHZNKrjKwAfyVNXCFYFp0gezkTxJyQPQyWvzsfRXrYY5m1XT5yJ7C95aXN0jtqrLChkcs795YAvWXcOii9Zd25ZZzK9YzvVvjI7Q+J9LrAvuXcOii+5d+rc66yAkziKFecYW6Vnq4J/eQ8H0HDWDaiBS13HdgEnlsPPDJDEYyeGrl4Rhgz6AKGHCWh0ZPWQ1KqgV/Z6XhD9v/0ezMWNCVzWgSlJ+IFxBLM3FgWEofuS0B/8n2TH4eAVjac54i4FkB1hnKz526po/hdaipIymawsMQ+LJvUL9jq/hgC/QqykJUwaIFC8APeiilRN0nGbowa1XSlNW/8iNfYQ8sZDQhuycutMaWbDCTXmEDYAV7/lF2SacMEvgg9KAz4RkXJnUGavBUlT1pB+yFcmcMXk6luGGUateWv0aS8Tfi/Nw7Zi1F/ynRKUHqAInolR9mo3mu2WGWDG7y0OuN2cb/DO5f7aYbtX0qAOR+S8VyHu/K4qsdgU8V8AAAD//yuE2oA=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/_meta/fields.yml index 1e9ee003..01772e33 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/_meta/fields.yml @@ -2,6 +2,7 @@ type: group description: > index + release: beta fields: - name: name type: keyword diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/data.go index 88c0dca1..95dfe7e3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/data.go @@ -1,8 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 index import ( "encoding/json" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -32,8 +51,7 @@ var ( } ) -func eventsMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) []error { - +func eventsMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) error { var indicesStruct struct { Indices map[string]map[string]interface{} `json:"indices"` } @@ -41,15 +59,16 @@ func eventsMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) []e err := json.Unmarshal(content, &indicesStruct) if err != nil { r.Error(err) - return []error{err} + return err } - var errs []error + var errors multierror.Errors for name, index := range indicesStruct.Indices { event := mb.Event{} event.MetricSetFields, err = schema.Apply(index) if err != nil { - errs = append(errs, err) + r.Error(err) + errors = append(errors, err) } // Write name here as full name only available as key event.MetricSetFields["name"] = name @@ -60,5 +79,6 @@ func eventsMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) []e event.ModuleFields.Put("cluster.id", info.ClusterID) r.Event(event) } - return errs + + return errors.Err() } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/data_test.go deleted file mode 100644 index a77c9f16..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/data_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// +build !integration - -package index - -import ( - "io/ioutil" - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/elasticsearch" -) - -var info = elasticsearch.Info{ - ClusterID: "1234", - ClusterName: "helloworld", -} - -func TestMapper(t *testing.T) { - elasticsearch.TestMapperWithInfo(t, "../index/_meta/test/stats.*.json", eventsMapping) -} - -func TestEmpty(t *testing.T) { - input, err := ioutil.ReadFile("./_meta/test/empty.512.json") - assert.NoError(t, err) - - reporter := &mbtest.CapturingReporterV2{} - eventsMapping(reporter, info, input) - assert.Equal(t, 0, len(reporter.GetEvents())) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/index.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/index.go index 9f2f96c8..622d9079 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/index.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index/index.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 index import ( @@ -26,7 +43,7 @@ type MetricSet struct { // New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The elasticsearch index metricset is experimental") + cfgwarn.Beta("The elasticsearch index metricset is beta") // TODO: This currently gets index data for all indices. Make it configurable. ms, err := elasticsearch.NewMetricSet(base, statsPath) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/data.json new file mode 100644 index 00000000..2320ddc1 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/data.json @@ -0,0 +1,34 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "beat": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "elasticsearch": { + "index": { + "name": "test-index", + "recovery": { + "id": 0, + "primary": true, + "source": {}, + "stage": "DONE", + "target": { + "host": "127.0.0.1", + "id": "ODWb5m6zT9q0lf8YTPyWWg", + "name": "ODWb5m6" + }, + "type": "EMPTY_STORE" + } + } + }, + "metricset": { + "host": "127.0.0.1:9200", + "module": "elasticsearch", + "name": "index_recovery", + "namespace": "elasticsearch.index.recovery", + "rtt": 115 + }, + "service": { + "name": "elasticsearch" + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/docs.asciidoc new file mode 100644 index 00000000..648df623 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/docs.asciidoc @@ -0,0 +1,15 @@ +This is the index_recovery metricset of the module Elasticsearch. + +By default only data about indices which are under active recovery are fetched. +To gather data about all indices set `index_recovery.active_only: false`: + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +- module: elasticsearch + metricsets: + - index_recovery + hosts: ["localhost:9200"] + index_recovery.active_only: false +------------------------------------------------------------------------------------- + + diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/fields.yml new file mode 100644 index 00000000..0df22465 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/fields.yml @@ -0,0 +1,48 @@ +- name: index.recovery + type: group + description: > + index + release: beta + fields: + - name: id + type: long + description: > + Shard recovery id. + - name: type + type: keyword + description: > + Shard recovery type. + - name: primary + type: boolean + description: > + True if primary shard. + - name: stage + type: keyword + description: > + Recovery stage. + + - name: target.id + type: keyword + description: > + Target node id. + - name: target.host + type: ip + description: > + Target node host address. + - name: target.name + type: keyword + description: > + Target node name. + + - name: source.id + type: keyword + description: > + Source node id. + - name: source.host + type: ip + description: > + Source node host address. + - name: source.name + type: keyword + description: > + Source node name. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/test/recovery.624.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/test/recovery.624.json new file mode 100644 index 00000000..5b292f43 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/_meta/test/recovery.624.json @@ -0,0 +1,17089 @@ +{ + ".watcher-history-7-2018.05.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663047242, + "stop_time_in_millis": 1527663059205, + "total_time_in_millis": 11962, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 4407893, + "reused_in_bytes": 0, + "recovered_in_bytes": 4407893, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 1611, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 2459, + "total": 2459, + "percent": "100.0%", + "total_on_start": 2459, + "total_time_in_millis": 8885 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.31": { + "shards": [ + { + "id": 0, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527724805198, + "stop_time_in_millis": 1527724805212, + "total_time_in_millis": 13, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 8 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.05.29": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663259707, + "stop_time_in_millis": 1527663285125, + "total_time_in_millis": 25418, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 49061494, + "reused_in_bytes": 0, + "recovered_in_bytes": 49061494, + "percent": "100.0%" + }, + "files": { + "total": 46, + "reused": 0, + "recovered": 46, + "percent": "100.0%" + }, + "total_time_in_millis": 9821, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 33741, + "total": 33741, + "percent": "100.0%", + "total_on_start": 33741, + "total_time_in_millis": 11581 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663285205, + "stop_time_in_millis": 1527663314114, + "total_time_in_millis": 28909, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 49373374, + "reused_in_bytes": 0, + "recovered_in_bytes": 49373374, + "percent": "100.0%" + }, + "files": { + "total": 52, + "reused": 0, + "recovered": 52, + "percent": "100.0%" + }, + "total_time_in_millis": 8631, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 33653, + "total": 33653, + "percent": "100.0%", + "total_on_start": 33653, + "total_time_in_millis": 18573 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663226116, + "stop_time_in_millis": 1527663259504, + "total_time_in_millis": 33387, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 49081521, + "reused_in_bytes": 0, + "recovered_in_bytes": 49081521, + "percent": "100.0%" + }, + "files": { + "total": 43, + "reused": 0, + "recovered": 43, + "percent": "100.0%" + }, + "total_time_in_millis": 11799, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 33761, + "total": 33761, + "percent": "100.0%", + "total_on_start": 33761, + "total_time_in_millis": 19893 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.24": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664109312, + "stop_time_in_millis": 1527664114211, + "total_time_in_millis": 4899, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12127030, + "reused_in_bytes": 0, + "recovered_in_bytes": 12127030, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 3194, + "source_throttle_time_in_millis": 11, + "target_throttle_time_in_millis": 76 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 98 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664020436, + "stop_time_in_millis": 1527664023824, + "total_time_in_millis": 3388, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12118635, + "reused_in_bytes": 0, + "recovered_in_bytes": 12118635, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 2223, + "source_throttle_time_in_millis": 56, + "target_throttle_time_in_millis": 64 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 86 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663889406, + "stop_time_in_millis": 1527663893917, + "total_time_in_millis": 4510, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12018031, + "reused_in_bytes": 0, + "recovered_in_bytes": 12018031, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 2118, + "source_throttle_time_in_millis": 6, + "target_throttle_time_in_millis": 189 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 184 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.04.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664318717, + "stop_time_in_millis": 1527664324317, + "total_time_in_millis": 5599, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 23804286, + "reused_in_bytes": 0, + "recovered_in_bytes": 23804286, + "percent": "100.0%" + }, + "files": { + "total": 49, + "reused": 0, + "recovered": 49, + "percent": "100.0%" + }, + "total_time_in_millis": 3894, + "source_throttle_time_in_millis": 42, + "target_throttle_time_in_millis": 190 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 109 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663829710, + "stop_time_in_millis": 1527663834920, + "total_time_in_millis": 5209, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14274830, + "reused_in_bytes": 0, + "recovered_in_bytes": 14274830, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 2296, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 101 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.04.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664324611, + "stop_time_in_millis": 1527664331215, + "total_time_in_millis": 6604, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24448265, + "reused_in_bytes": 0, + "recovered_in_bytes": 24448265, + "percent": "100.0%" + }, + "files": { + "total": 58, + "reused": 0, + "recovered": 58, + "percent": "100.0%" + }, + "total_time_in_millis": 5306, + "source_throttle_time_in_millis": 91, + "target_throttle_time_in_millis": 233 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 281 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.04.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664332007, + "stop_time_in_millis": 1527664344510, + "total_time_in_millis": 12503, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24368431, + "reused_in_bytes": 0, + "recovered_in_bytes": 24368431, + "percent": "100.0%" + }, + "files": { + "total": 43, + "reused": 0, + "recovered": 43, + "percent": "100.0%" + }, + "total_time_in_millis": 8717, + "source_throttle_time_in_millis": 70, + "target_throttle_time_in_millis": 207 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 281 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663596303, + "stop_time_in_millis": 1527663599729, + "total_time_in_millis": 3425, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14595322, + "reused_in_bytes": 0, + "recovered_in_bytes": 14595322, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1873, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 20 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663314303, + "stop_time_in_millis": 1527663334910, + "total_time_in_millis": 20607, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14746998, + "reused_in_bytes": 0, + "recovered_in_bytes": 14746998, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 6801, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 1968, + "total": 1968, + "percent": "100.0%", + "total_on_start": 1968, + "total_time_in_millis": 11002 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.04.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664345925, + "stop_time_in_millis": 1527664350823, + "total_time_in_millis": 4897, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24336261, + "reused_in_bytes": 0, + "recovered_in_bytes": 24336261, + "percent": "100.0%" + }, + "files": { + "total": 49, + "reused": 0, + "recovered": 49, + "percent": "100.0%" + }, + "total_time_in_millis": 3736, + "source_throttle_time_in_millis": 16, + "target_throttle_time_in_millis": 89 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 70 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.20": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664170743, + "stop_time_in_millis": 1527664175334, + "total_time_in_millis": 4590, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12133176, + "reused_in_bytes": 0, + "recovered_in_bytes": 12133176, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 2485, + "source_throttle_time_in_millis": 51, + "target_throttle_time_in_millis": 118 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 23 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.21": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664159509, + "stop_time_in_millis": 1527664163115, + "total_time_in_millis": 3605, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12050246, + "reused_in_bytes": 0, + "recovered_in_bytes": 12050246, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2290, + "source_throttle_time_in_millis": 61, + "target_throttle_time_in_millis": 177 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 296 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.22": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664144030, + "stop_time_in_millis": 1527664147310, + "total_time_in_millis": 3279, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12192658, + "reused_in_bytes": 0, + "recovered_in_bytes": 12192658, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 1800, + "source_throttle_time_in_millis": 17, + "target_throttle_time_in_millis": 69 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 384 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.23": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664127809, + "stop_time_in_millis": 1527664133808, + "total_time_in_millis": 5998, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12148740, + "reused_in_bytes": 0, + "recovered_in_bytes": 12148740, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 4113, + "source_throttle_time_in_millis": 25, + "target_throttle_time_in_millis": 81 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 282 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.21": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664397338, + "stop_time_in_millis": 1527664407148, + "total_time_in_millis": 9809, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 66160217, + "reused_in_bytes": 0, + "recovered_in_bytes": 66160217, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 8201, + "source_throttle_time_in_millis": 200, + "target_throttle_time_in_millis": 420 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 33 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664405627, + "stop_time_in_millis": 1527664418524, + "total_time_in_millis": 12897, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 66519931, + "reused_in_bytes": 0, + "recovered_in_bytes": 66519931, + "percent": "100.0%" + }, + "files": { + "total": 42, + "reused": 0, + "recovered": 42, + "percent": "100.0%" + }, + "total_time_in_millis": 11116, + "source_throttle_time_in_millis": 12, + "target_throttle_time_in_millis": 418 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 88 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664393104, + "stop_time_in_millis": 1527664405614, + "total_time_in_millis": 12510, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 66196844, + "reused_in_bytes": 0, + "recovered_in_bytes": 66196844, + "percent": "100.0%" + }, + "files": { + "total": 42, + "reused": 0, + "recovered": 42, + "percent": "100.0%" + }, + "total_time_in_millis": 8713, + "source_throttle_time_in_millis": 163, + "target_throttle_time_in_millis": 578 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 286 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.20": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664419554, + "stop_time_in_millis": 1527664429031, + "total_time_in_millis": 9477, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62114806, + "reused_in_bytes": 0, + "recovered_in_bytes": 62114806, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 8396, + "source_throttle_time_in_millis": 147, + "target_throttle_time_in_millis": 402 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 22 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664427444, + "stop_time_in_millis": 1527664438309, + "total_time_in_millis": 10864, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62641342, + "reused_in_bytes": 0, + "recovered_in_bytes": 62641342, + "percent": "100.0%" + }, + "files": { + "total": 42, + "reused": 0, + "recovered": 42, + "percent": "100.0%" + }, + "total_time_in_millis": 9023, + "source_throttle_time_in_millis": 52, + "target_throttle_time_in_millis": 304 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 175 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664418546, + "stop_time_in_millis": 1527664427428, + "total_time_in_millis": 8882, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62557453, + "reused_in_bytes": 0, + "recovered_in_bytes": 62557453, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 7725, + "source_throttle_time_in_millis": 144, + "target_throttle_time_in_millis": 728 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 83 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".ml-anomalies-shared": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664880816, + "stop_time_in_millis": 1527664885820, + "total_time_in_millis": 5004, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12305853, + "reused_in_bytes": 0, + "recovered_in_bytes": 12305853, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 2800, + "source_throttle_time_in_millis": 39, + "target_throttle_time_in_millis": 33 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 100 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 3, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664886231, + "stop_time_in_millis": 1527664893204, + "total_time_in_millis": 6973, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12359167, + "reused_in_bytes": 0, + "recovered_in_bytes": 12359167, + "percent": "100.0%" + }, + "files": { + "total": 45, + "reused": 0, + "recovered": 45, + "percent": "100.0%" + }, + "total_time_in_millis": 4897, + "source_throttle_time_in_millis": 12, + "target_throttle_time_in_millis": 17 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 390 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664885015, + "stop_time_in_millis": 1527664890306, + "total_time_in_millis": 5291, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12460365, + "reused_in_bytes": 0, + "recovered_in_bytes": 12460365, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 3480, + "source_throttle_time_in_millis": 6, + "target_throttle_time_in_millis": 12 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 196 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 4, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664890315, + "stop_time_in_millis": 1527664897310, + "total_time_in_millis": 6994, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12400652, + "reused_in_bytes": 0, + "recovered_in_bytes": 12400652, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 5100, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 294 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664878222, + "stop_time_in_millis": 1527664880803, + "total_time_in_millis": 2581, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12265048, + "reused_in_bytes": 0, + "recovered_in_bytes": 12265048, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 1304, + "source_throttle_time_in_millis": 42, + "target_throttle_time_in_millis": 84 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 102 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663022017, + "stop_time_in_millis": 1527663029238, + "total_time_in_millis": 7220, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 311469, + "reused_in_bytes": 0, + "recovered_in_bytes": 311469, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 261, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 1590, + "total": 1590, + "percent": "100.0%", + "total_on_start": 1590, + "total_time_in_millis": 1927 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.31": { + "shards": [ + { + "id": 0, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527717650411, + "stop_time_in_millis": 1527717650428, + "total_time_in_millis": 16, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 10 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.23": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664357907, + "stop_time_in_millis": 1527664367431, + "total_time_in_millis": 9524, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 41644276, + "reused_in_bytes": 0, + "recovered_in_bytes": 41644276, + "percent": "100.0%" + }, + "files": { + "total": 26, + "reused": 0, + "recovered": 26, + "percent": "100.0%" + }, + "total_time_in_millis": 8320, + "source_throttle_time_in_millis": 129, + "target_throttle_time_in_millis": 311 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 98 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664366430, + "stop_time_in_millis": 1527664374808, + "total_time_in_millis": 8378, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 41622747, + "reused_in_bytes": 0, + "recovered_in_bytes": 41622747, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 6807, + "source_throttle_time_in_millis": 41, + "target_throttle_time_in_millis": 114 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 490 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664357050, + "stop_time_in_millis": 1527664366417, + "total_time_in_millis": 9367, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 41839443, + "reused_in_bytes": 0, + "recovered_in_bytes": 41839443, + "percent": "100.0%" + }, + "files": { + "total": 41, + "reused": 0, + "recovered": 41, + "percent": "100.0%" + }, + "total_time_in_millis": 8102, + "source_throttle_time_in_millis": 92, + "target_throttle_time_in_millis": 463 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 198 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.22": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664376992, + "stop_time_in_millis": 1527664386813, + "total_time_in_millis": 9821, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 65572419, + "reused_in_bytes": 0, + "recovered_in_bytes": 65572419, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 8693, + "source_throttle_time_in_millis": 221, + "target_throttle_time_in_millis": 340 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 93 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664384811, + "stop_time_in_millis": 1527664397324, + "total_time_in_millis": 12512, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 65513871, + "reused_in_bytes": 0, + "recovered_in_bytes": 65513871, + "percent": "100.0%" + }, + "files": { + "total": 45, + "reused": 0, + "recovered": 45, + "percent": "100.0%" + }, + "total_time_in_millis": 10794, + "source_throttle_time_in_millis": 87, + "target_throttle_time_in_millis": 220 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 119 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664375746, + "stop_time_in_millis": 1527664384710, + "total_time_in_millis": 8964, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 65457285, + "reused_in_bytes": 0, + "recovered_in_bytes": 65457285, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 7720, + "source_throttle_time_in_millis": 147, + "target_throttle_time_in_millis": 378 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 173 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.24": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664122417, + "stop_time_in_millis": 1527664127713, + "total_time_in_millis": 5295, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24800910, + "reused_in_bytes": 0, + "recovered_in_bytes": 24800910, + "percent": "100.0%" + }, + "files": { + "total": 32, + "reused": 0, + "recovered": 32, + "percent": "100.0%" + }, + "total_time_in_millis": 2990, + "source_throttle_time_in_millis": 74, + "target_throttle_time_in_millis": 195 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 105 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.23": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664138709, + "stop_time_in_millis": 1527664144010, + "total_time_in_millis": 5300, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24522863, + "reused_in_bytes": 0, + "recovered_in_bytes": 24522863, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 4187, + "source_throttle_time_in_millis": 83, + "target_throttle_time_in_millis": 255 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 99 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.22": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664150758, + "stop_time_in_millis": 1527664159442, + "total_time_in_millis": 8683, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25465070, + "reused_in_bytes": 0, + "recovered_in_bytes": 25465070, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 7501, + "source_throttle_time_in_millis": 42, + "target_throttle_time_in_millis": 209 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 118 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.21": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664165639, + "stop_time_in_millis": 1527664170717, + "total_time_in_millis": 5077, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24406581, + "reused_in_bytes": 0, + "recovered_in_bytes": 24406581, + "percent": "100.0%" + }, + "files": { + "total": 47, + "reused": 0, + "recovered": 47, + "percent": "100.0%" + }, + "total_time_in_millis": 3794, + "source_throttle_time_in_millis": 101, + "target_throttle_time_in_millis": 289 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 205 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.20": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664178115, + "stop_time_in_millis": 1527664184936, + "total_time_in_millis": 6821, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25172062, + "reused_in_bytes": 0, + "recovered_in_bytes": 25172062, + "percent": "100.0%" + }, + "files": { + "total": 47, + "reused": 0, + "recovered": 47, + "percent": "100.0%" + }, + "total_time_in_millis": 5337, + "source_throttle_time_in_millis": 51, + "target_throttle_time_in_millis": 31 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 355 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664600549, + "stop_time_in_millis": 1527664606308, + "total_time_in_millis": 5758, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 5181840, + "reused_in_bytes": 0, + "recovered_in_bytes": 5181840, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 2788, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 394 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663574603, + "stop_time_in_millis": 1527663593720, + "total_time_in_millis": 19116, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24315166, + "reused_in_bytes": 0, + "recovered_in_bytes": 24315166, + "percent": "100.0%" + }, + "files": { + "total": 52, + "reused": 0, + "recovered": 52, + "percent": "100.0%" + }, + "total_time_in_millis": 6597, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 20233, + "total": 20233, + "percent": "100.0%", + "total_on_start": 20233, + "total_time_in_millis": 8294 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663822105, + "stop_time_in_millis": 1527663829623, + "total_time_in_millis": 7518, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 23900921, + "reused_in_bytes": 0, + "recovered_in_bytes": 23900921, + "percent": "100.0%" + }, + "files": { + "total": 40, + "reused": 0, + "recovered": 40, + "percent": "100.0%" + }, + "total_time_in_millis": 3903, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 104 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663884818, + "stop_time_in_millis": 1527663889328, + "total_time_in_millis": 4510, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 23877532, + "reused_in_bytes": 0, + "recovered_in_bytes": 23877532, + "percent": "100.0%" + }, + "files": { + "total": 46, + "reused": 0, + "recovered": 46, + "percent": "100.0%" + }, + "total_time_in_millis": 3417, + "source_throttle_time_in_millis": 104, + "target_throttle_time_in_millis": 188 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 79 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.20": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664175404, + "stop_time_in_millis": 1527664177906, + "total_time_in_millis": 2502, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 842274, + "reused_in_bytes": 0, + "recovered_in_bytes": 842274, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 713, + "source_throttle_time_in_millis": 1, + "target_throttle_time_in_millis": 5 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 103 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663977506, + "stop_time_in_millis": 1527663984219, + "total_time_in_millis": 6713, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 23671202, + "reused_in_bytes": 0, + "recovered_in_bytes": 23671202, + "percent": "100.0%" + }, + "files": { + "total": 40, + "reused": 0, + "recovered": 40, + "percent": "100.0%" + }, + "total_time_in_millis": 4206, + "source_throttle_time_in_millis": 73, + "target_throttle_time_in_millis": 106 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 197 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664029815, + "stop_time_in_millis": 1527664036705, + "total_time_in_millis": 6889, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24406546, + "reused_in_bytes": 0, + "recovered_in_bytes": 24406546, + "percent": "100.0%" + }, + "files": { + "total": 47, + "reused": 0, + "recovered": 47, + "percent": "100.0%" + }, + "total_time_in_millis": 5432, + "source_throttle_time_in_millis": 101, + "target_throttle_time_in_millis": 404 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 281 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.23": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664133909, + "stop_time_in_millis": 1527664138618, + "total_time_in_millis": 4709, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 759989, + "reused_in_bytes": 0, + "recovered_in_bytes": 759989, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 617, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 1 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 82 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.24": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664119229, + "stop_time_in_millis": 1527664122212, + "total_time_in_millis": 2983, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 847136, + "reused_in_bytes": 0, + "recovered_in_bytes": 847136, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 1301, + "source_throttle_time_in_millis": 4, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 94 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.21": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664163210, + "stop_time_in_millis": 1527664165612, + "total_time_in_millis": 2402, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 845658, + "reused_in_bytes": 0, + "recovered_in_bytes": 845658, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 726, + "source_throttle_time_in_millis": 6, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 68 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.22": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664147407, + "stop_time_in_millis": 1527664150633, + "total_time_in_millis": 3225, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 778984, + "reused_in_bytes": 0, + "recovered_in_bytes": 778984, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 992, + "source_throttle_time_in_millis": 2, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 22 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663883304, + "stop_time_in_millis": 1527663884731, + "total_time_in_millis": 1427, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 746229, + "reused_in_bytes": 0, + "recovered_in_bytes": 746229, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 309, + "source_throttle_time_in_millis": 1, + "target_throttle_time_in_millis": 1 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 12 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663815907, + "stop_time_in_millis": 1527663819909, + "total_time_in_millis": 4001, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 775091, + "reused_in_bytes": 0, + "recovered_in_bytes": 775091, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 1594, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 198 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664027566, + "stop_time_in_millis": 1527664029769, + "total_time_in_millis": 2203, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 803144, + "reused_in_bytes": 0, + "recovered_in_bytes": 803144, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 631, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 1 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 16 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663972811, + "stop_time_in_millis": 1527663977107, + "total_time_in_millis": 4295, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 759012, + "reused_in_bytes": 0, + "recovered_in_bytes": 759012, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 500, + "source_throttle_time_in_millis": 2, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 290 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663558203, + "stop_time_in_millis": 1527663572904, + "total_time_in_millis": 14701, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 786962, + "reused_in_bytes": 0, + "recovered_in_bytes": 786962, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 2498, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 624, + "total": 624, + "percent": "100.0%", + "total_on_start": 624, + "total_time_in_millis": 703 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.31": { + "shards": [ + { + "id": 0, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527717603627, + "stop_time_in_millis": 1527717603640, + "total_time_in_millis": 12, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 7 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663021809, + "stop_time_in_millis": 1527663047004, + "total_time_in_millis": 25194, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 8303781, + "reused_in_bytes": 0, + "recovered_in_bytes": 8303781, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 1591, + "source_throttle_time_in_millis": 3, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 50690, + "total": 50690, + "percent": "100.0%", + "total_on_start": 50690, + "total_time_in_millis": 18832 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".ml-state": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664865605, + "stop_time_in_millis": 1527664870520, + "total_time_in_millis": 4915, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 517678, + "reused_in_bytes": 0, + "recovered_in_bytes": 517678, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 897, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 12 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 3, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664871922, + "stop_time_in_millis": 1527664875314, + "total_time_in_millis": 3392, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 620094, + "reused_in_bytes": 0, + "recovered_in_bytes": 620094, + "percent": "100.0%" + }, + "files": { + "total": 23, + "reused": 0, + "recovered": 23, + "percent": "100.0%" + }, + "total_time_in_millis": 999, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 199 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664869609, + "stop_time_in_millis": 1527664873431, + "total_time_in_millis": 3821, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 609433, + "reused_in_bytes": 0, + "recovered_in_bytes": 609433, + "percent": "100.0%" + }, + "files": { + "total": 17, + "reused": 0, + "recovered": 17, + "percent": "100.0%" + }, + "total_time_in_millis": 811, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 493 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 4, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664876197, + "stop_time_in_millis": 1527664878206, + "total_time_in_millis": 2009, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 817274, + "reused_in_bytes": 0, + "recovered_in_bytes": 817274, + "percent": "100.0%" + }, + "files": { + "total": 35, + "reused": 0, + "recovered": 35, + "percent": "100.0%" + }, + "total_time_in_millis": 604, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 389 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664859117, + "stop_time_in_millis": 1527664865515, + "total_time_in_millis": 6397, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 633235, + "reused_in_bytes": 0, + "recovered_in_bytes": 633235, + "percent": "100.0%" + }, + "files": { + "total": 20, + "reused": 0, + "recovered": 20, + "percent": "100.0%" + }, + "total_time_in_millis": 2600, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 401 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.12": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664235205, + "stop_time_in_millis": 1527664237420, + "total_time_in_millis": 2214, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 844054, + "reused_in_bytes": 0, + "recovered_in_bytes": 844054, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 1101, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 94 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.13": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664229804, + "stop_time_in_millis": 1527664231622, + "total_time_in_millis": 1818, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 788273, + "reused_in_bytes": 0, + "recovered_in_bytes": 788273, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 692, + "source_throttle_time_in_millis": 6, + "target_throttle_time_in_millis": 6 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 110 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.10": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664245836, + "stop_time_in_millis": 1527664249812, + "total_time_in_millis": 3975, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 842079, + "reused_in_bytes": 0, + "recovered_in_bytes": 842079, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 1986, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 401 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.11": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664240336, + "stop_time_in_millis": 1527664241604, + "total_time_in_millis": 1268, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 765531, + "reused_in_bytes": 0, + "recovered_in_bytes": 765531, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 466, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 200 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.16": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664204225, + "stop_time_in_millis": 1527664205923, + "total_time_in_millis": 1698, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 790463, + "reused_in_bytes": 0, + "recovered_in_bytes": 790463, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 509, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.17": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664198146, + "stop_time_in_millis": 1527664200329, + "total_time_in_millis": 2182, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 785412, + "reused_in_bytes": 0, + "recovered_in_bytes": 785412, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 597, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 16 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.14": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664219537, + "stop_time_in_millis": 1527664224503, + "total_time_in_millis": 4966, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 762274, + "reused_in_bytes": 0, + "recovered_in_bytes": 762274, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 2001, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 699 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.15": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664210023, + "stop_time_in_millis": 1527664212908, + "total_time_in_millis": 2884, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 747036, + "reused_in_bytes": 0, + "recovered_in_bytes": 747036, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 901, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 384 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.18": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664193007, + "stop_time_in_millis": 1527664195114, + "total_time_in_millis": 2106, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 762597, + "reused_in_bytes": 0, + "recovered_in_bytes": 762597, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 301, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 92 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.19": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664187058, + "stop_time_in_millis": 1527664188720, + "total_time_in_millis": 1662, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 757805, + "reused_in_bytes": 0, + "recovered_in_bytes": 757805, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 535, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 107 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.02": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664300738, + "stop_time_in_millis": 1527664305932, + "total_time_in_millis": 5193, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25222491, + "reused_in_bytes": 0, + "recovered_in_bytes": 25222491, + "percent": "100.0%" + }, + "files": { + "total": 32, + "reused": 0, + "recovered": 32, + "percent": "100.0%" + }, + "total_time_in_millis": 4001, + "source_throttle_time_in_millis": 43, + "target_throttle_time_in_millis": 97 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 20 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.01": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664306717, + "stop_time_in_millis": 1527664311416, + "total_time_in_millis": 4698, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24494767, + "reused_in_bytes": 0, + "recovered_in_bytes": 24494767, + "percent": "100.0%" + }, + "files": { + "total": 46, + "reused": 0, + "recovered": 46, + "percent": "100.0%" + }, + "total_time_in_millis": 3487, + "source_throttle_time_in_millis": 74, + "target_throttle_time_in_millis": 70 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 196 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.04.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664311909, + "stop_time_in_millis": 1527664318416, + "total_time_in_millis": 6506, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24297659, + "reused_in_bytes": 0, + "recovered_in_bytes": 24297659, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 4113, + "source_throttle_time_in_millis": 59, + "target_throttle_time_in_millis": 122 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.09": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664259215, + "stop_time_in_millis": 1527664265610, + "total_time_in_millis": 6395, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24761654, + "reused_in_bytes": 0, + "recovered_in_bytes": 24761654, + "percent": "100.0%" + }, + "files": { + "total": 29, + "reused": 0, + "recovered": 29, + "percent": "100.0%" + }, + "total_time_in_millis": 5215, + "source_throttle_time_in_millis": 37, + "target_throttle_time_in_millis": 137 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 81 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.08": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664266409, + "stop_time_in_millis": 1527664269830, + "total_time_in_millis": 3421, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25522884, + "reused_in_bytes": 0, + "recovered_in_bytes": 25522884, + "percent": "100.0%" + }, + "files": { + "total": 29, + "reused": 0, + "recovered": 29, + "percent": "100.0%" + }, + "total_time_in_millis": 2796, + "source_throttle_time_in_millis": 45, + "target_throttle_time_in_millis": 93 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 111 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.07": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664270512, + "stop_time_in_millis": 1527664276203, + "total_time_in_millis": 5690, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24560760, + "reused_in_bytes": 0, + "recovered_in_bytes": 24560760, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 3896, + "source_throttle_time_in_millis": 58, + "target_throttle_time_in_millis": 71 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 126 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.06": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664276007, + "stop_time_in_millis": 1527664280005, + "total_time_in_millis": 3998, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24943099, + "reused_in_bytes": 0, + "recovered_in_bytes": 24943099, + "percent": "100.0%" + }, + "files": { + "total": 29, + "reused": 0, + "recovered": 29, + "percent": "100.0%" + }, + "total_time_in_millis": 2805, + "source_throttle_time_in_millis": 36, + "target_throttle_time_in_millis": 279 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 103 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664310007, + "stop_time_in_millis": 1527664313409, + "total_time_in_millis": 3402, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 842498, + "reused_in_bytes": 0, + "recovered_in_bytes": 842498, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 1691, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 192 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.05": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664280521, + "stop_time_in_millis": 1527664287624, + "total_time_in_millis": 7102, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25289401, + "reused_in_bytes": 0, + "recovered_in_bytes": 25289401, + "percent": "100.0%" + }, + "files": { + "total": 38, + "reused": 0, + "recovered": 38, + "percent": "100.0%" + }, + "total_time_in_millis": 5911, + "source_throttle_time_in_millis": 48, + "target_throttle_time_in_millis": 75 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 100 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.04": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664288225, + "stop_time_in_millis": 1527664294807, + "total_time_in_millis": 6582, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25353682, + "reused_in_bytes": 0, + "recovered_in_bytes": 25353682, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 5852, + "source_throttle_time_in_millis": 38, + "target_throttle_time_in_millis": 42 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 220 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.03": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664294912, + "stop_time_in_millis": 1527664300007, + "total_time_in_millis": 5095, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24697245, + "reused_in_bytes": 0, + "recovered_in_bytes": 24697245, + "percent": "100.0%" + }, + "files": { + "total": 29, + "reused": 0, + "recovered": 29, + "percent": "100.0%" + }, + "total_time_in_millis": 3895, + "source_throttle_time_in_millis": 71, + "target_throttle_time_in_millis": 197 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 95 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.01": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664305935, + "stop_time_in_millis": 1527664306803, + "total_time_in_millis": 868, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 792535, + "reused_in_bytes": 0, + "recovered_in_bytes": 792535, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 207, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 17 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.02": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664299907, + "stop_time_in_millis": 1527664301915, + "total_time_in_millis": 2007, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 809736, + "reused_in_bytes": 0, + "recovered_in_bytes": 809736, + "percent": "100.0%" + }, + "files": { + "total": 28, + "reused": 0, + "recovered": 28, + "percent": "100.0%" + }, + "total_time_in_millis": 889, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 104 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.05": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664279646, + "stop_time_in_millis": 1527664281524, + "total_time_in_millis": 1878, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 761578, + "reused_in_bytes": 0, + "recovered_in_bytes": 761578, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 798, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 16 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.06": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664274404, + "stop_time_in_millis": 1527664275914, + "total_time_in_millis": 1509, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 830168, + "reused_in_bytes": 0, + "recovered_in_bytes": 830168, + "percent": "100.0%" + }, + "files": { + "total": 34, + "reused": 0, + "recovered": 34, + "percent": "100.0%" + }, + "total_time_in_millis": 392, + "source_throttle_time_in_millis": 9, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 102 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.03": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664292108, + "stop_time_in_millis": 1527664295605, + "total_time_in_millis": 3496, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 791052, + "reused_in_bytes": 0, + "recovered_in_bytes": 791052, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 705, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 20 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.04": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664287504, + "stop_time_in_millis": 1527664288161, + "total_time_in_millis": 657, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 753077, + "reused_in_bytes": 0, + "recovered_in_bytes": 753077, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 132, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 14 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.09": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664257015, + "stop_time_in_millis": 1527664259305, + "total_time_in_millis": 2290, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 762309, + "reused_in_bytes": 0, + "recovered_in_bytes": 762309, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 495, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 100 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.07": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664268130, + "stop_time_in_millis": 1527664269521, + "total_time_in_millis": 1390, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 749732, + "reused_in_bytes": 0, + "recovered_in_bytes": 749732, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 291, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 13 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 13 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.05.08": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664265704, + "stop_time_in_millis": 1527664266340, + "total_time_in_millis": 635, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 749755, + "reused_in_bytes": 0, + "recovered_in_bytes": 749755, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 111, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 12 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.13": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664229725, + "stop_time_in_millis": 1527664235127, + "total_time_in_millis": 5402, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24346654, + "reused_in_bytes": 0, + "recovered_in_bytes": 24346654, + "percent": "100.0%" + }, + "files": { + "total": 35, + "reused": 0, + "recovered": 35, + "percent": "100.0%" + }, + "total_time_in_millis": 4213, + "source_throttle_time_in_millis": 59, + "target_throttle_time_in_millis": 76 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.12": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664236204, + "stop_time_in_millis": 1527664240306, + "total_time_in_millis": 4102, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24420202, + "reused_in_bytes": 0, + "recovered_in_bytes": 24420202, + "percent": "100.0%" + }, + "files": { + "total": 43, + "reused": 0, + "recovered": 43, + "percent": "100.0%" + }, + "total_time_in_millis": 2400, + "source_throttle_time_in_millis": 62, + "target_throttle_time_in_millis": 113 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 22 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.11": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664241111, + "stop_time_in_millis": 1527664249208, + "total_time_in_millis": 8096, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25362143, + "reused_in_bytes": 0, + "recovered_in_bytes": 25362143, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 5701, + "source_throttle_time_in_millis": 39, + "target_throttle_time_in_millis": 76 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 790 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.05.30": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663085522, + "stop_time_in_millis": 1527663177311, + "total_time_in_millis": 91788, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 23606682, + "reused_in_bytes": 0, + "recovered_in_bytes": 23606682, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 13895, + "source_throttle_time_in_millis": 89, + "target_throttle_time_in_millis": 350 + }, + "translog": { + "recovered": 89589, + "total": 89589, + "percent": "100.0%", + "total_on_start": 89549, + "total_time_in_millis": 75892 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663177407, + "stop_time_in_millis": 1527663224303, + "total_time_in_millis": 46895, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 23585722, + "reused_in_bytes": 0, + "recovered_in_bytes": 23585722, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 5002, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 89390, + "total": 89390, + "percent": "100.0%", + "total_on_start": 89368, + "total_time_in_millis": 39195 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663068125, + "stop_time_in_millis": 1527663085505, + "total_time_in_millis": 17379, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 23565596, + "reused_in_bytes": 0, + "recovered_in_bytes": 23565596, + "percent": "100.0%" + }, + "files": { + "total": 53, + "reused": 0, + "recovered": 53, + "percent": "100.0%" + }, + "total_time_in_millis": 4996, + "source_throttle_time_in_millis": 271, + "target_throttle_time_in_millis": 128 + }, + "translog": { + "recovered": 88958, + "total": 88958, + "percent": "100.0%", + "total_on_start": 88932, + "total_time_in_millis": 11041 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.10": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664249505, + "stop_time_in_millis": 1527664256906, + "total_time_in_millis": 7401, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25605040, + "reused_in_bytes": 0, + "recovered_in_bytes": 25605040, + "percent": "100.0%" + }, + "files": { + "total": 50, + "reused": 0, + "recovered": 50, + "percent": "100.0%" + }, + "total_time_in_millis": 4406, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 193 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.05.31": { + "shards": [ + { + "id": 1, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527717602240, + "stop_time_in_millis": 1527717602304, + "total_time_in_millis": 63, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 8 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527717602247, + "stop_time_in_millis": 1527717602304, + "total_time_in_millis": 56, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 8 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527717602251, + "stop_time_in_millis": 1527717602304, + "total_time_in_millis": 53, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 47 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".triggered_watches-6": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663030705, + "stop_time_in_millis": 1527663044524, + "total_time_in_millis": 13819, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 166605, + "reused_in_bytes": 0, + "recovered_in_bytes": 166605, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 5369, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 8848, + "total": 8848, + "percent": "100.0%", + "total_on_start": 8848, + "total_time_in_millis": 5641 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.19": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664189719, + "stop_time_in_millis": 1527664194935, + "total_time_in_millis": 5216, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25303728, + "reused_in_bytes": 0, + "recovered_in_bytes": 25303728, + "percent": "100.0%" + }, + "files": { + "total": 38, + "reused": 0, + "recovered": 38, + "percent": "100.0%" + }, + "total_time_in_millis": 4681, + "source_throttle_time_in_millis": 68, + "target_throttle_time_in_millis": 45 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 23 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.18": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664195107, + "stop_time_in_millis": 1527664198106, + "total_time_in_millis": 2998, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24411395, + "reused_in_bytes": 0, + "recovered_in_bytes": 24411395, + "percent": "100.0%" + }, + "files": { + "total": 32, + "reused": 0, + "recovered": 32, + "percent": "100.0%" + }, + "total_time_in_millis": 2394, + "source_throttle_time_in_millis": 1, + "target_throttle_time_in_millis": 11 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 24 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.17": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664199840, + "stop_time_in_millis": 1527664204415, + "total_time_in_millis": 4574, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24213957, + "reused_in_bytes": 0, + "recovered_in_bytes": 24213957, + "percent": "100.0%" + }, + "files": { + "total": 29, + "reused": 0, + "recovered": 29, + "percent": "100.0%" + }, + "total_time_in_millis": 3410, + "source_throttle_time_in_millis": 69, + "target_throttle_time_in_millis": 117 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 88 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.16": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664205412, + "stop_time_in_millis": 1527664209828, + "total_time_in_millis": 4415, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24887849, + "reused_in_bytes": 0, + "recovered_in_bytes": 24887849, + "percent": "100.0%" + }, + "files": { + "total": 29, + "reused": 0, + "recovered": 29, + "percent": "100.0%" + }, + "total_time_in_millis": 3289, + "source_throttle_time_in_millis": 41, + "target_throttle_time_in_millis": 29 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 106 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.15": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664211905, + "stop_time_in_millis": 1527664220105, + "total_time_in_millis": 8199, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 24993799, + "reused_in_bytes": 0, + "recovered_in_bytes": 24993799, + "percent": "100.0%" + }, + "files": { + "total": 35, + "reused": 0, + "recovered": 35, + "percent": "100.0%" + }, + "total_time_in_millis": 5705, + "source_throttle_time_in_millis": 39, + "target_throttle_time_in_millis": 185 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 108 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "metricbeat-6.2.3-2018.05.14": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664222311, + "stop_time_in_millis": 1527664229008, + "total_time_in_millis": 6697, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25547936, + "reused_in_bytes": 0, + "recovered_in_bytes": 25547936, + "percent": "100.0%" + }, + "files": { + "total": 47, + "reused": 0, + "recovered": 47, + "percent": "100.0%" + }, + "total_time_in_millis": 2903, + "source_throttle_time_in_millis": 74, + "target_throttle_time_in_millis": 115 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 194 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.22": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664373405, + "stop_time_in_millis": 1527664376805, + "total_time_in_millis": 3399, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1462063, + "reused_in_bytes": 0, + "recovered_in_bytes": 1462063, + "percent": "100.0%" + }, + "files": { + "total": 25, + "reused": 0, + "recovered": 25, + "percent": "100.0%" + }, + "total_time_in_millis": 704, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 18 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.23": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664355676, + "stop_time_in_millis": 1527664357329, + "total_time_in_millis": 1652, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1164856, + "reused_in_bytes": 0, + "recovered_in_bytes": 1164856, + "percent": "100.0%" + }, + "files": { + "total": 31, + "reused": 0, + "recovered": 31, + "percent": "100.0%" + }, + "total_time_in_millis": 588, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 18 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.20": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664414208, + "stop_time_in_millis": 1527664418710, + "total_time_in_millis": 4502, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1431215, + "reused_in_bytes": 0, + "recovered_in_bytes": 1431215, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 388, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 101 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.21": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664390528, + "stop_time_in_millis": 1527664392804, + "total_time_in_millis": 2276, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1423195, + "reused_in_bytes": 0, + "recovered_in_bytes": 1423195, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 510, + "source_throttle_time_in_millis": 10, + "target_throttle_time_in_millis": 4 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 94 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664344613, + "stop_time_in_millis": 1527664346217, + "total_time_in_millis": 1604, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 787454, + "reused_in_bytes": 0, + "recovered_in_bytes": 787454, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 398, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 101 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664330633, + "stop_time_in_millis": 1527664338004, + "total_time_in_millis": 7371, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 794100, + "reused_in_bytes": 0, + "recovered_in_bytes": 794100, + "percent": "100.0%" + }, + "files": { + "total": 25, + "reused": 0, + "recovered": 25, + "percent": "100.0%" + }, + "total_time_in_millis": 4798, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 1392 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.24": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664352153, + "stop_time_in_millis": 1527664354507, + "total_time_in_millis": 2354, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 759314, + "reused_in_bytes": 0, + "recovered_in_bytes": 759314, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 704, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 86 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664349912, + "stop_time_in_millis": 1527664351803, + "total_time_in_millis": 1891, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 801619, + "reused_in_bytes": 0, + "recovered_in_bytes": 801619, + "percent": "100.0%" + }, + "files": { + "total": 25, + "reused": 0, + "recovered": 25, + "percent": "100.0%" + }, + "total_time_in_millis": 781, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 19 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664323219, + "stop_time_in_millis": 1527664324622, + "total_time_in_millis": 1402, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 838107, + "reused_in_bytes": 0, + "recovered_in_bytes": 838107, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 219, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 71 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".kibana-6": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664599652, + "stop_time_in_millis": 1527664601112, + "total_time_in_millis": 1460, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 495517, + "reused_in_bytes": 0, + "recovered_in_bytes": 495517, + "percent": "100.0%" + }, + "files": { + "total": 4, + "reused": 0, + "recovered": 4, + "percent": "100.0%" + }, + "total_time_in_millis": 298, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 102 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664317336, + "stop_time_in_millis": 1527664319924, + "total_time_in_millis": 2588, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 839322, + "reused_in_bytes": 0, + "recovered_in_bytes": 839322, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 891, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 116 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.11": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664519208, + "stop_time_in_millis": 1527664524204, + "total_time_in_millis": 4996, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 760599, + "reused_in_bytes": 0, + "recovered_in_bytes": 760599, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 1293, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 399 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.12": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664510664, + "stop_time_in_millis": 1527664519008, + "total_time_in_millis": 8343, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 835076, + "reused_in_bytes": 0, + "recovered_in_bytes": 835076, + "percent": "100.0%" + }, + "files": { + "total": 34, + "reused": 0, + "recovered": 34, + "percent": "100.0%" + }, + "total_time_in_millis": 5099, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 1602 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.10": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664526208, + "stop_time_in_millis": 1527664528217, + "total_time_in_millis": 2008, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 754945, + "reused_in_bytes": 0, + "recovered_in_bytes": 754945, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 316, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 89 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.15": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664499959, + "stop_time_in_millis": 1527664502508, + "total_time_in_millis": 2549, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 770888, + "reused_in_bytes": 0, + "recovered_in_bytes": 770888, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 806, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 186 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.16": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664496513, + "stop_time_in_millis": 1527664498819, + "total_time_in_millis": 2306, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 772536, + "reused_in_bytes": 0, + "recovered_in_bytes": 772536, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 608, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 97 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.07": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664704239, + "stop_time_in_millis": 1527664707519, + "total_time_in_millis": 3279, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 4148587, + "reused_in_bytes": 0, + "recovered_in_bytes": 4148587, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 1482, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 107 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664706707, + "stop_time_in_millis": 1527664709908, + "total_time_in_millis": 3200, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 4204289, + "reused_in_bytes": 0, + "recovered_in_bytes": 4204289, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 1217, + "source_throttle_time_in_millis": 23, + "target_throttle_time_in_millis": 9 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 381 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664701712, + "stop_time_in_millis": 1527664706617, + "total_time_in_millis": 4905, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 4161967, + "reused_in_bytes": 0, + "recovered_in_bytes": 4161967, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 2028, + "source_throttle_time_in_millis": 6, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 181 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.13": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664507012, + "stop_time_in_millis": 1527664508525, + "total_time_in_millis": 1512, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 785063, + "reused_in_bytes": 0, + "recovered_in_bytes": 785063, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 399, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.14": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664503209, + "stop_time_in_millis": 1527664506023, + "total_time_in_millis": 2814, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 844174, + "reused_in_bytes": 0, + "recovered_in_bytes": 844174, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 597, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 104 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.19": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664435134, + "stop_time_in_millis": 1527664436913, + "total_time_in_millis": 1778, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1436038, + "reused_in_bytes": 0, + "recovered_in_bytes": 1436038, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 503, + "source_throttle_time_in_millis": 6, + "target_throttle_time_in_millis": 5 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 102 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.04": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664770980, + "stop_time_in_millis": 1527664784020, + "total_time_in_millis": 13040, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 58229657, + "reused_in_bytes": 0, + "recovered_in_bytes": 58229657, + "percent": "100.0%" + }, + "files": { + "total": 57, + "reused": 0, + "recovered": 57, + "percent": "100.0%" + }, + "total_time_in_millis": 11310, + "source_throttle_time_in_millis": 165, + "target_throttle_time_in_millis": 768 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 195 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664782206, + "stop_time_in_millis": 1527664795419, + "total_time_in_millis": 13213, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 57760055, + "reused_in_bytes": 0, + "recovered_in_bytes": 57760055, + "percent": "100.0%" + }, + "files": { + "total": 60, + "reused": 0, + "recovered": 60, + "percent": "100.0%" + }, + "total_time_in_millis": 11413, + "source_throttle_time_in_millis": 104, + "target_throttle_time_in_millis": 79 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 187 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664769923, + "stop_time_in_millis": 1527664782122, + "total_time_in_millis": 12199, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 58438220, + "reused_in_bytes": 0, + "recovered_in_bytes": 58438220, + "percent": "100.0%" + }, + "files": { + "total": 72, + "reused": 0, + "recovered": 72, + "percent": "100.0%" + }, + "total_time_in_millis": 10887, + "source_throttle_time_in_millis": 202, + "target_throttle_time_in_millis": 232 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 297 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.03": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664795507, + "stop_time_in_millis": 1527664810406, + "total_time_in_millis": 14898, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 74544370, + "reused_in_bytes": 0, + "recovered_in_bytes": 74544370, + "percent": "100.0%" + }, + "files": { + "total": 38, + "reused": 0, + "recovered": 38, + "percent": "100.0%" + }, + "total_time_in_millis": 12484, + "source_throttle_time_in_millis": 197, + "target_throttle_time_in_millis": 271 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 208 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664805206, + "stop_time_in_millis": 1527664826116, + "total_time_in_millis": 20909, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 74182831, + "reused_in_bytes": 0, + "recovered_in_bytes": 74182831, + "percent": "100.0%" + }, + "files": { + "total": 56, + "reused": 0, + "recovered": 56, + "percent": "100.0%" + }, + "total_time_in_millis": 17516, + "source_throttle_time_in_millis": 88, + "target_throttle_time_in_millis": 206 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 92 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664789903, + "stop_time_in_millis": 1527664805111, + "total_time_in_millis": 15208, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 74346241, + "reused_in_bytes": 0, + "recovered_in_bytes": 74346241, + "percent": "100.0%" + }, + "files": { + "total": 47, + "reused": 0, + "recovered": 47, + "percent": "100.0%" + }, + "total_time_in_millis": 12684, + "source_throttle_time_in_millis": 237, + "target_throttle_time_in_millis": 630 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 398 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.17": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664492909, + "stop_time_in_millis": 1527664496314, + "total_time_in_millis": 3404, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1380122, + "reused_in_bytes": 0, + "recovered_in_bytes": 1380122, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 1108, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 191 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.06": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664713405, + "stop_time_in_millis": 1527664739118, + "total_time_in_millis": 25712, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 131357310, + "reused_in_bytes": 0, + "recovered_in_bytes": 131357310, + "percent": "100.0%" + }, + "files": { + "total": 76, + "reused": 0, + "recovered": 76, + "percent": "100.0%" + }, + "total_time_in_millis": 23360, + "source_throttle_time_in_millis": 414, + "target_throttle_time_in_millis": 1243 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 143 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664736807, + "stop_time_in_millis": 1527664757836, + "total_time_in_millis": 21029, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 131724885, + "reused_in_bytes": 0, + "recovered_in_bytes": 131724885, + "percent": "100.0%" + }, + "files": { + "total": 76, + "reused": 0, + "recovered": 76, + "percent": "100.0%" + }, + "total_time_in_millis": 18726, + "source_throttle_time_in_millis": 331, + "target_throttle_time_in_millis": 562 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664710706, + "stop_time_in_millis": 1527664736713, + "total_time_in_millis": 26007, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 131280266, + "reused_in_bytes": 0, + "recovered_in_bytes": 131280266, + "percent": "100.0%" + }, + "files": { + "total": 82, + "reused": 0, + "recovered": 82, + "percent": "100.0%" + }, + "total_time_in_millis": 23585, + "source_throttle_time_in_millis": 403, + "target_throttle_time_in_millis": 1049 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 901 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.05": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664755906, + "stop_time_in_millis": 1527664767322, + "total_time_in_millis": 11415, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 58035822, + "reused_in_bytes": 0, + "recovered_in_bytes": 58035822, + "percent": "100.0%" + }, + "files": { + "total": 81, + "reused": 0, + "recovered": 81, + "percent": "100.0%" + }, + "total_time_in_millis": 9608, + "source_throttle_time_in_millis": 152, + "target_throttle_time_in_millis": 334 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 190 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664757850, + "stop_time_in_millis": 1527664768416, + "total_time_in_millis": 10566, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 57863993, + "reused_in_bytes": 0, + "recovered_in_bytes": 57863993, + "percent": "100.0%" + }, + "files": { + "total": 69, + "reused": 0, + "recovered": 69, + "percent": "100.0%" + }, + "total_time_in_millis": 8724, + "source_throttle_time_in_millis": 126, + "target_throttle_time_in_millis": 370 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 85 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664745011, + "stop_time_in_millis": 1527664755826, + "total_time_in_millis": 10815, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 57888785, + "reused_in_bytes": 0, + "recovered_in_bytes": 57888785, + "percent": "100.0%" + }, + "files": { + "total": 60, + "reused": 0, + "recovered": 60, + "percent": "100.0%" + }, + "total_time_in_millis": 9609, + "source_throttle_time_in_millis": 218, + "target_throttle_time_in_millis": 381 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 102 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.18": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664456009, + "stop_time_in_millis": 1527664458004, + "total_time_in_millis": 1994, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1451277, + "reused_in_bytes": 0, + "recovered_in_bytes": 1451277, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 788, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 4 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 116 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.02": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664826128, + "stop_time_in_millis": 1527664833407, + "total_time_in_millis": 7279, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 59009307, + "reused_in_bytes": 0, + "recovered_in_bytes": 59009307, + "percent": "100.0%" + }, + "files": { + "total": 48, + "reused": 0, + "recovered": 48, + "percent": "100.0%" + }, + "total_time_in_millis": 5813, + "source_throttle_time_in_millis": 164, + "target_throttle_time_in_millis": 288 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 300 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664829419, + "stop_time_in_millis": 1527664840510, + "total_time_in_millis": 11091, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 59074106, + "reused_in_bytes": 0, + "recovered_in_bytes": 59074106, + "percent": "100.0%" + }, + "files": { + "total": 42, + "reused": 0, + "recovered": 42, + "percent": "100.0%" + }, + "total_time_in_millis": 9877, + "source_throttle_time_in_millis": 104, + "target_throttle_time_in_millis": 170 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 197 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664823123, + "stop_time_in_millis": 1527664829407, + "total_time_in_millis": 6284, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 59088618, + "reused_in_bytes": 0, + "recovered_in_bytes": 59088618, + "percent": "100.0%" + }, + "files": { + "total": 48, + "reused": 0, + "recovered": 48, + "percent": "100.0%" + }, + "total_time_in_millis": 4506, + "source_throttle_time_in_millis": 169, + "target_throttle_time_in_millis": 355 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 176 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.01": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664840849, + "stop_time_in_millis": 1527664850214, + "total_time_in_millis": 9365, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62219793, + "reused_in_bytes": 0, + "recovered_in_bytes": 62219793, + "percent": "100.0%" + }, + "files": { + "total": 42, + "reused": 0, + "recovered": 42, + "percent": "100.0%" + }, + "total_time_in_millis": 7040, + "source_throttle_time_in_millis": 228, + "target_throttle_time_in_millis": 322 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 166 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664848142, + "stop_time_in_millis": 1527664869408, + "total_time_in_millis": 21266, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62244977, + "reused_in_bytes": 0, + "recovered_in_bytes": 62244977, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 19387, + "source_throttle_time_in_millis": 44, + "target_throttle_time_in_millis": 19 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 800 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664839609, + "stop_time_in_millis": 1527664848132, + "total_time_in_millis": 8523, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62341409, + "reused_in_bytes": 0, + "recovered_in_bytes": 62341409, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 7341, + "source_throttle_time_in_millis": 161, + "target_throttle_time_in_millis": 460 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 81 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-es-6-2018.05.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663061604, + "stop_time_in_millis": 1527663538512, + "total_time_in_millis": 476907, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 333548249, + "reused_in_bytes": 0, + "recovered_in_bytes": 333548249, + "percent": "100.0%" + }, + "files": { + "total": 79, + "reused": 0, + "recovered": 79, + "percent": "100.0%" + }, + "total_time_in_millis": 49091, + "source_throttle_time_in_millis": 274, + "target_throttle_time_in_millis": 601 + }, + "translog": { + "recovered": 668119, + "total": 668119, + "percent": "100.0%", + "total_on_start": 663664, + "total_time_in_millis": 424413 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-es-6-2018.05.31": { + "shards": [ + { + "id": 0, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527724808764, + "stop_time_in_millis": 1527724808776, + "total_time_in_millis": 12, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 6 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.31": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664596322, + "stop_time_in_millis": 1527664599014, + "total_time_in_millis": 2691, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1138311, + "reused_in_bytes": 0, + "recovered_in_bytes": 1138311, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 505, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 89 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.05": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664739138, + "stop_time_in_millis": 1527664741610, + "total_time_in_millis": 2472, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6365644, + "reused_in_bytes": 0, + "recovered_in_bytes": 6365644, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 1198, + "source_throttle_time_in_millis": 31, + "target_throttle_time_in_millis": 21 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 196 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.06": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664708032, + "stop_time_in_millis": 1527664710015, + "total_time_in_millis": 1983, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6336416, + "reused_in_bytes": 0, + "recovered_in_bytes": 6336416, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1369, + "source_throttle_time_in_millis": 24, + "target_throttle_time_in_millis": 22 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 103 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664602911, + "stop_time_in_millis": 1527664607316, + "total_time_in_millis": 4404, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2146534, + "reused_in_bytes": 0, + "recovered_in_bytes": 2146534, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1403, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 199 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.01": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664565712, + "stop_time_in_millis": 1527664568510, + "total_time_in_millis": 2798, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 775256, + "reused_in_bytes": 0, + "recovered_in_bytes": 775256, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 615, + "source_throttle_time_in_millis": 11, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 70 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.03": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664784108, + "stop_time_in_millis": 1527664788208, + "total_time_in_millis": 4099, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6434596, + "reused_in_bytes": 0, + "recovered_in_bytes": 6434596, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 1410, + "source_throttle_time_in_millis": 51, + "target_throttle_time_in_millis": 45 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 76 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.04": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664767340, + "stop_time_in_millis": 1527664769903, + "total_time_in_millis": 2563, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6479504, + "reused_in_bytes": 0, + "recovered_in_bytes": 6479504, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 1312, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 97 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.01": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664833509, + "stop_time_in_millis": 1527664837146, + "total_time_in_millis": 3636, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6379124, + "reused_in_bytes": 0, + "recovered_in_bytes": 6379124, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 910, + "source_throttle_time_in_millis": 17, + "target_throttle_time_in_millis": 78 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 18 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.04": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664548104, + "stop_time_in_millis": 1527664550610, + "total_time_in_millis": 2506, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 809482, + "reused_in_bytes": 0, + "recovered_in_bytes": 809482, + "percent": "100.0%" + }, + "files": { + "total": 22, + "reused": 0, + "recovered": 22, + "percent": "100.0%" + }, + "total_time_in_millis": 915, + "source_throttle_time_in_millis": 11, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 68 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.05": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664543207, + "stop_time_in_millis": 1527664546215, + "total_time_in_millis": 3008, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 826360, + "reused_in_bytes": 0, + "recovered_in_bytes": 826360, + "percent": "100.0%" + }, + "files": { + "total": 43, + "reused": 0, + "recovered": 43, + "percent": "100.0%" + }, + "total_time_in_millis": 1305, + "source_throttle_time_in_millis": 1, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 101 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.02": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664810421, + "stop_time_in_millis": 1527664821208, + "total_time_in_millis": 10786, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6516856, + "reused_in_bytes": 0, + "recovered_in_bytes": 6516856, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 7303, + "source_throttle_time_in_millis": 15, + "target_throttle_time_in_millis": 38 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 694 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.02": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664559009, + "stop_time_in_millis": 1527664561506, + "total_time_in_millis": 2497, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 67049, + "reused_in_bytes": 0, + "recovered_in_bytes": 67049, + "percent": "100.0%" + }, + "files": { + "total": 7, + "reused": 0, + "recovered": 7, + "percent": "100.0%" + }, + "total_time_in_millis": 696, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 111 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.03": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664552448, + "stop_time_in_millis": 1527664556512, + "total_time_in_millis": 4064, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 860081, + "reused_in_bytes": 0, + "recovered_in_bytes": 860081, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 1395, + "source_throttle_time_in_millis": 8, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 300 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-es-6-2018.05.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663335011, + "stop_time_in_millis": 1527663879330, + "total_time_in_millis": 544318, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1131098076, + "reused_in_bytes": 0, + "recovered_in_bytes": 1131098076, + "percent": "100.0%" + }, + "files": { + "total": 115, + "reused": 0, + "recovered": 115, + "percent": "100.0%" + }, + "total_time_in_millis": 211617, + "source_throttle_time_in_millis": 26, + "target_throttle_time_in_millis": 93 + }, + "translog": { + "recovered": 636592, + "total": 636592, + "percent": "100.0%", + "total_on_start": 636592, + "total_time_in_millis": 329902 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.08": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664534011, + "stop_time_in_millis": 1527664537305, + "total_time_in_millis": 3294, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 738379, + "reused_in_bytes": 0, + "recovered_in_bytes": 738379, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 496, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 21 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.09": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664530210, + "stop_time_in_millis": 1527664532618, + "total_time_in_millis": 2407, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 761577, + "reused_in_bytes": 0, + "recovered_in_bytes": 761577, + "percent": "100.0%" + }, + "files": { + "total": 16, + "reused": 0, + "recovered": 16, + "percent": "100.0%" + }, + "total_time_in_millis": 696, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 104 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.06": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664540122, + "stop_time_in_millis": 1527664542013, + "total_time_in_millis": 1890, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 802880, + "reused_in_bytes": 0, + "recovered_in_bytes": 802880, + "percent": "100.0%" + }, + "files": { + "total": 25, + "reused": 0, + "recovered": 25, + "percent": "100.0%" + }, + "total_time_in_millis": 703, + "source_throttle_time_in_millis": 16, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 99 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-es-6-2018.05.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663837710, + "stop_time_in_millis": 1527663963106, + "total_time_in_millis": 125396, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1102695882, + "reused_in_bytes": 0, + "recovered_in_bytes": 1102695882, + "percent": "100.0%" + }, + "files": { + "total": 124, + "reused": 0, + "recovered": 124, + "percent": "100.0%" + }, + "total_time_in_millis": 121492, + "source_throttle_time_in_millis": 2480, + "target_throttle_time_in_millis": 6365 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 2703 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.04.07": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664537840, + "stop_time_in_millis": 1527664539225, + "total_time_in_millis": 1385, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 741320, + "reused_in_bytes": 0, + "recovered_in_bytes": 741320, + "percent": "100.0%" + }, + "files": { + "total": 13, + "reused": 0, + "recovered": 13, + "percent": "100.0%" + }, + "total_time_in_millis": 297, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 15 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-es-6-2018.05.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663599813, + "stop_time_in_millis": 1527663811733, + "total_time_in_millis": 211920, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1125061737, + "reused_in_bytes": 0, + "recovered_in_bytes": 1125061737, + "percent": "100.0%" + }, + "files": { + "total": 129, + "reused": 0, + "recovered": 129, + "percent": "100.0%" + }, + "total_time_in_millis": 207403, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 2313 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-es-6-2018.05.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663984241, + "stop_time_in_millis": 1527664109253, + "total_time_in_millis": 125012, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1130906227, + "reused_in_bytes": 0, + "recovered_in_bytes": 1130906227, + "percent": "100.0%" + }, + "files": { + "total": 121, + "reused": 0, + "recovered": 121, + "percent": "100.0%" + }, + "total_time_in_millis": 121805, + "source_throttle_time_in_millis": 2786, + "target_throttle_time_in_millis": 9070 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 2131 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.09": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664688203, + "stop_time_in_millis": 1527664691208, + "total_time_in_millis": 3004, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6343409, + "reused_in_bytes": 0, + "recovered_in_bytes": 6343409, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1795, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 191 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-es-6-2018.05.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663894008, + "stop_time_in_millis": 1527664020410, + "total_time_in_millis": 126401, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1091321627, + "reused_in_bytes": 0, + "recovered_in_bytes": 1091321627, + "percent": "100.0%" + }, + "files": { + "total": 104, + "reused": 0, + "recovered": 104, + "percent": "100.0%" + }, + "total_time_in_millis": 123609, + "source_throttle_time_in_millis": 3173, + "target_throttle_time_in_millis": 9176 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 1186 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.07": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664698607, + "stop_time_in_millis": 1527664700806, + "total_time_in_millis": 2198, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6351949, + "reused_in_bytes": 0, + "recovered_in_bytes": 6351949, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 997, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 104 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.08": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664691814, + "stop_time_in_millis": 1527664697313, + "total_time_in_millis": 5498, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6457157, + "reused_in_bytes": 0, + "recovered_in_bytes": 6457157, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 2997, + "source_throttle_time_in_millis": 9, + "target_throttle_time_in_millis": 6 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 298 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.09": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664527807, + "stop_time_in_millis": 1527664531112, + "total_time_in_millis": 3304, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12139244, + "reused_in_bytes": 0, + "recovered_in_bytes": 12139244, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 2096, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 192 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.01": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664561610, + "stop_time_in_millis": 1527664568724, + "total_time_in_millis": 7114, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14120592, + "reused_in_bytes": 0, + "recovered_in_bytes": 14120592, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 3107, + "source_throttle_time_in_millis": 11, + "target_throttle_time_in_millis": 11 + }, + "translog": { + "recovered": 2, + "total": 2, + "percent": "100.0%", + "total_on_start": 2, + "total_time_in_millis": 101 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.02": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664556607, + "stop_time_in_millis": 1527664558917, + "total_time_in_millis": 2309, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 261, + "reused_in_bytes": 0, + "recovered_in_bytes": 261, + "percent": "100.0%" + }, + "files": { + "total": 1, + "reused": 0, + "recovered": 1, + "percent": "100.0%" + }, + "total_time_in_millis": 96, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 102 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.03": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664550625, + "stop_time_in_millis": 1527664565213, + "total_time_in_millis": 14587, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 36311659, + "reused_in_bytes": 0, + "recovered_in_bytes": 36311659, + "percent": "100.0%" + }, + "files": { + "total": 46, + "reused": 0, + "recovered": 46, + "percent": "100.0%" + }, + "total_time_in_millis": 11896, + "source_throttle_time_in_millis": 6, + "target_throttle_time_in_millis": 10 + }, + "translog": { + "recovered": 101, + "total": 101, + "percent": "100.0%", + "total_on_start": 101, + "total_time_in_millis": 1099 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.04": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664546310, + "stop_time_in_millis": 1527664552422, + "total_time_in_millis": 6111, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 27375113, + "reused_in_bytes": 0, + "recovered_in_bytes": 27375113, + "percent": "100.0%" + }, + "files": { + "total": 44, + "reused": 0, + "recovered": 44, + "percent": "100.0%" + }, + "total_time_in_millis": 4720, + "source_throttle_time_in_millis": 2, + "target_throttle_time_in_millis": 21 + }, + "translog": { + "recovered": 102, + "total": 102, + "percent": "100.0%", + "total_on_start": 102, + "total_time_in_millis": 290 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.05": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664542025, + "stop_time_in_millis": 1527664548025, + "total_time_in_millis": 5999, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 25022913, + "reused_in_bytes": 0, + "recovered_in_bytes": 25022913, + "percent": "100.0%" + }, + "files": { + "total": 53, + "reused": 0, + "recovered": 53, + "percent": "100.0%" + }, + "total_time_in_millis": 4598, + "source_throttle_time_in_millis": 12, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 130, + "total": 130, + "percent": "100.0%", + "total_on_start": 130, + "total_time_in_millis": 309 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.06": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664539231, + "stop_time_in_millis": 1527664542729, + "total_time_in_millis": 3497, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 13536063, + "reused_in_bytes": 0, + "recovered_in_bytes": 13536063, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 2079, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 14 + }, + "translog": { + "recovered": 79, + "total": 79, + "percent": "100.0%", + "total_on_start": 79, + "total_time_in_millis": 402 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.07": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664536928, + "stop_time_in_millis": 1527664539213, + "total_time_in_millis": 2285, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12286409, + "reused_in_bytes": 0, + "recovered_in_bytes": 12286409, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 1018, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 179 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.08": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664531710, + "stop_time_in_millis": 1527664536914, + "total_time_in_millis": 5203, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12100724, + "reused_in_bytes": 0, + "recovered_in_bytes": 12100724, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2999, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.20": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664644314, + "stop_time_in_millis": 1527664647611, + "total_time_in_millis": 3297, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2095276, + "reused_in_bytes": 0, + "recovered_in_bytes": 2095276, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1122, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 68 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.16": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664657807, + "stop_time_in_millis": 1527664661103, + "total_time_in_millis": 3296, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6462215, + "reused_in_bytes": 0, + "recovered_in_bytes": 6462215, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 1020, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 80 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.17": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664652413, + "stop_time_in_millis": 1527664657715, + "total_time_in_millis": 5302, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6402981, + "reused_in_bytes": 0, + "recovered_in_bytes": 6402981, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2392, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 203 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.22": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664630781, + "stop_time_in_millis": 1527664637206, + "total_time_in_millis": 6425, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2160629, + "reused_in_bytes": 0, + "recovered_in_bytes": 2160629, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 4094, + "source_throttle_time_in_millis": 21, + "target_throttle_time_in_millis": 4 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 1298 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.14": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664666110, + "stop_time_in_millis": 1527664670012, + "total_time_in_millis": 3902, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6329881, + "reused_in_bytes": 0, + "recovered_in_bytes": 6329881, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 2110, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 95 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.15": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664661117, + "stop_time_in_millis": 1527664666019, + "total_time_in_millis": 4902, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6474523, + "reused_in_bytes": 0, + "recovered_in_bytes": 6474523, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 2422, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 189 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.21": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664640518, + "stop_time_in_millis": 1527664643803, + "total_time_in_millis": 3285, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2108991, + "reused_in_bytes": 0, + "recovered_in_bytes": 2108991, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1406, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 191 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.12": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664672910, + "stop_time_in_millis": 1527664679703, + "total_time_in_millis": 6792, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6485230, + "reused_in_bytes": 0, + "recovered_in_bytes": 6485230, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 3097, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 203 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.24": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664625209, + "stop_time_in_millis": 1527664627918, + "total_time_in_millis": 2709, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2137268, + "reused_in_bytes": 0, + "recovered_in_bytes": 2137268, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 911, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 196 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.23": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664628212, + "stop_time_in_millis": 1527664630206, + "total_time_in_millis": 1993, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2158331, + "reused_in_bytes": 0, + "recovered_in_bytes": 2158331, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 681, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 110 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.13": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664671117, + "stop_time_in_millis": 1527664673906, + "total_time_in_millis": 2788, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6405871, + "reused_in_bytes": 0, + "recovered_in_bytes": 6405871, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 1883, + "source_throttle_time_in_millis": 8, + "target_throttle_time_in_millis": 10 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 394 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.10": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664685610, + "stop_time_in_millis": 1527664688135, + "total_time_in_millis": 2525, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6383724, + "reused_in_bytes": 0, + "recovered_in_bytes": 6383724, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 979, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 24 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664618645, + "stop_time_in_millis": 1527664620107, + "total_time_in_millis": 1461, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2112317, + "reused_in_bytes": 0, + "recovered_in_bytes": 2112317, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 852, + "source_throttle_time_in_millis": 1, + "target_throttle_time_in_millis": 4 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 97 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664621412, + "stop_time_in_millis": 1527664624717, + "total_time_in_millis": 3305, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2055465, + "reused_in_bytes": 0, + "recovered_in_bytes": 2055465, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 1608, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 97 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.11": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664679805, + "stop_time_in_millis": 1527664685520, + "total_time_in_millis": 5714, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6433025, + "reused_in_bytes": 0, + "recovered_in_bytes": 6433025, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 2300, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 111 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664610979, + "stop_time_in_millis": 1527664613303, + "total_time_in_millis": 2324, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2132355, + "reused_in_bytes": 0, + "recovered_in_bytes": 2132355, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 999, + "source_throttle_time_in_millis": 7, + "target_throttle_time_in_millis": 3 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 212 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.03.31": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664594710, + "stop_time_in_millis": 1527664598737, + "total_time_in_millis": 4026, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11820543, + "reused_in_bytes": 0, + "recovered_in_bytes": 11820543, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2799, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 19 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664615109, + "stop_time_in_millis": 1527664617811, + "total_time_in_millis": 2701, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2096131, + "reused_in_bytes": 0, + "recovered_in_bytes": 2096131, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 898, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 195 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.03.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664598810, + "stop_time_in_millis": 1527664600536, + "total_time_in_millis": 1726, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2816846, + "reused_in_bytes": 0, + "recovered_in_bytes": 2816846, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 685, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 23 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664607932, + "stop_time_in_millis": 1527664610833, + "total_time_in_millis": 2901, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2136991, + "reused_in_bytes": 0, + "recovered_in_bytes": 2136991, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 1237, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 80 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.18": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664648912, + "stop_time_in_millis": 1527664651807, + "total_time_in_millis": 2895, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6507288, + "reused_in_bytes": 0, + "recovered_in_bytes": 6507288, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 1390, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 368 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.19": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664646303, + "stop_time_in_millis": 1527664648830, + "total_time_in_millis": 2527, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6509389, + "reused_in_bytes": 0, + "recovered_in_bytes": 6509389, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 825, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 79 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.20": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664642305, + "stop_time_in_millis": 1527664646243, + "total_time_in_millis": 3937, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6435887, + "reused_in_bytes": 0, + "recovered_in_bytes": 6435887, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 1797, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 19 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".ml-notifications": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664876193, + "stop_time_in_millis": 1527664885006, + "total_time_in_millis": 8813, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 42486277, + "reused_in_bytes": 0, + "recovered_in_bytes": 42486277, + "percent": "100.0%" + }, + "files": { + "total": 70, + "reused": 0, + "recovered": 70, + "percent": "100.0%" + }, + "total_time_in_millis": 7603, + "source_throttle_time_in_millis": 113, + "target_throttle_time_in_millis": 101 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 112 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-kibana-6-2018.05.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663054027, + "stop_time_in_millis": 1527663061223, + "total_time_in_millis": 7195, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 737489, + "reused_in_bytes": 0, + "recovered_in_bytes": 737489, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 1089, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 2465, + "total": 2465, + "percent": "100.0%", + "total_on_start": 2465, + "total_time_in_millis": 4416 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-kibana-6-2018.05.31": { + "shards": [ + { + "id": 0, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527724807139, + "stop_time_in_millis": 1527724807154, + "total_time_in_millis": 15, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 9 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-kibana-6-2018.05.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663538718, + "stop_time_in_millis": 1527663543808, + "total_time_in_millis": 5089, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2276956, + "reused_in_bytes": 0, + "recovered_in_bytes": 2276956, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 1705, + "source_throttle_time_in_millis": 23, + "target_throttle_time_in_millis": 80 + }, + "translog": { + "recovered": 1973, + "total": 1973, + "percent": "100.0%", + "total_on_start": 1973, + "total_time_in_millis": 1095 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664613322, + "stop_time_in_millis": 1527664617203, + "total_time_in_millis": 3881, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6419775, + "reused_in_bytes": 0, + "recovered_in_bytes": 6419775, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 2006, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 18 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664610975, + "stop_time_in_millis": 1527664613808, + "total_time_in_millis": 2832, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6372606, + "reused_in_bytes": 0, + "recovered_in_bytes": 6372606, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1706, + "source_throttle_time_in_millis": 38, + "target_throttle_time_in_millis": 7 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 89 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664619808, + "stop_time_in_millis": 1527664623803, + "total_time_in_millis": 3995, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6482855, + "reused_in_bytes": 0, + "recovered_in_bytes": 6482855, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 2277, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 116 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.11": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664683310, + "stop_time_in_millis": 1527664686708, + "total_time_in_millis": 3397, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2114424, + "reused_in_bytes": 0, + "recovered_in_bytes": 2114424, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 995, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664617222, + "stop_time_in_millis": 1527664619714, + "total_time_in_millis": 2491, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6508218, + "reused_in_bytes": 0, + "recovered_in_bytes": 6508218, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 800, + "source_throttle_time_in_millis": 19, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 98 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.10": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664687065, + "stop_time_in_millis": 1527664689004, + "total_time_in_millis": 1938, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2085154, + "reused_in_bytes": 0, + "recovered_in_bytes": 2085154, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 714, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 94 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-kibana-6-2018.05.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664023909, + "stop_time_in_millis": 1527664025226, + "total_time_in_millis": 1317, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2239412, + "reused_in_bytes": 0, + "recovered_in_bytes": 2239412, + "percent": "100.0%" + }, + "files": { + "total": 12, + "reused": 0, + "recovered": 12, + "percent": "100.0%" + }, + "total_time_in_millis": 286, + "source_throttle_time_in_millis": 4, + "target_throttle_time_in_millis": 10 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 14 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.13": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664671112, + "stop_time_in_millis": 1527664672812, + "total_time_in_millis": 1700, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2154957, + "reused_in_bytes": 0, + "recovered_in_bytes": 2154957, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 999, + "source_throttle_time_in_millis": 12, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 188 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.23": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664627006, + "stop_time_in_millis": 1527664629360, + "total_time_in_millis": 2353, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6424212, + "reused_in_bytes": 0, + "recovered_in_bytes": 6424212, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 1308, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 19 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.12": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664676310, + "stop_time_in_millis": 1527664681704, + "total_time_in_millis": 5394, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2133838, + "reused_in_bytes": 0, + "recovered_in_bytes": 2133838, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 2297, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 301 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.24": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664623906, + "stop_time_in_millis": 1527664626903, + "total_time_in_millis": 2997, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6533023, + "reused_in_bytes": 0, + "recovered_in_bytes": 6533023, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 1789, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 41 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-kibana-6-2018.05.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663963209, + "stop_time_in_millis": 1527663968812, + "total_time_in_millis": 5603, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2313956, + "reused_in_bytes": 0, + "recovered_in_bytes": 2313956, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 2096, + "source_throttle_time_in_millis": 9, + "target_throttle_time_in_millis": 18 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 199 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-kibana-6-2018.05.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663835003, + "stop_time_in_millis": 1527663837628, + "total_time_in_millis": 2624, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2590841, + "reused_in_bytes": 0, + "recovered_in_bytes": 2590841, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 992, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 108 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.21": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664637010, + "stop_time_in_millis": 1527664642206, + "total_time_in_millis": 5195, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6366653, + "reused_in_bytes": 0, + "recovered_in_bytes": 6366653, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1496, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 21 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.15": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664663308, + "stop_time_in_millis": 1527664667805, + "total_time_in_millis": 4497, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2185289, + "reused_in_bytes": 0, + "recovered_in_bytes": 2185289, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 1996, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 303 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.14": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664667910, + "stop_time_in_millis": 1527664670807, + "total_time_in_millis": 2896, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2105510, + "reused_in_bytes": 0, + "recovered_in_bytes": 2105510, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1194, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 19 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-kibana-6-2018.05.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663593811, + "stop_time_in_millis": 1527663596217, + "total_time_in_millis": 2406, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2229067, + "reused_in_bytes": 0, + "recovered_in_bytes": 2229067, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 689, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 104 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.22": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664630777, + "stop_time_in_millis": 1527664636907, + "total_time_in_millis": 6130, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6450286, + "reused_in_bytes": 0, + "recovered_in_bytes": 6450286, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 4200, + "source_throttle_time_in_millis": 5, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 800 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.17": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664655110, + "stop_time_in_millis": 1527664659210, + "total_time_in_millis": 4100, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2110770, + "reused_in_bytes": 0, + "recovered_in_bytes": 2110770, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 2208, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 188 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.16": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664659731, + "stop_time_in_millis": 1527664662707, + "total_time_in_millis": 2976, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2163399, + "reused_in_bytes": 0, + "recovered_in_bytes": 2163399, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 1500, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 387 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.19": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664647758, + "stop_time_in_millis": 1527664649740, + "total_time_in_millis": 1982, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2143928, + "reused_in_bytes": 0, + "recovered_in_bytes": 2143928, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 910, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 20 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.18": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664650572, + "stop_time_in_millis": 1527664654116, + "total_time_in_millis": 3544, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2057804, + "reused_in_bytes": 0, + "recovered_in_bytes": 2057804, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1508, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 300 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-6-2018.03.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664606405, + "stop_time_in_millis": 1527664609510, + "total_time_in_millis": 3104, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 6448642, + "reused_in_bytes": 0, + "recovered_in_bytes": 6448642, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 1400, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 98 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.23": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664354615, + "stop_time_in_millis": 1527664357029, + "total_time_in_millis": 2414, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14973128, + "reused_in_bytes": 0, + "recovered_in_bytes": 14973128, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 1301, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 15 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.24": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664350910, + "stop_time_in_millis": 1527664355020, + "total_time_in_millis": 4110, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14938802, + "reused_in_bytes": 0, + "recovered_in_bytes": 14938802, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 2908, + "source_throttle_time_in_millis": 16, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 99 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664346858, + "stop_time_in_millis": 1527664349824, + "total_time_in_millis": 2965, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14778637, + "reused_in_bytes": 0, + "recovered_in_bytes": 14778637, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 2439, + "source_throttle_time_in_millis": 35, + "target_throttle_time_in_millis": 162 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 14 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664338209, + "stop_time_in_millis": 1527664345107, + "total_time_in_millis": 6897, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14888473, + "reused_in_bytes": 0, + "recovered_in_bytes": 14888473, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 4303, + "source_throttle_time_in_millis": 22, + "target_throttle_time_in_millis": 140 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 289 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664325519, + "stop_time_in_millis": 1527664330615, + "total_time_in_millis": 5096, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 15007363, + "reused_in_bytes": 0, + "recovered_in_bytes": 15007363, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 3305, + "source_throttle_time_in_millis": 69, + "target_throttle_time_in_millis": 98 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 100 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664320163, + "stop_time_in_millis": 1527664323206, + "total_time_in_millis": 3042, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12437716, + "reused_in_bytes": 0, + "recovered_in_bytes": 12437716, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1899, + "source_throttle_time_in_millis": 70, + "target_throttle_time_in_millis": 162 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 22 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664313910, + "stop_time_in_millis": 1527664317319, + "total_time_in_millis": 3409, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12393771, + "reused_in_bytes": 0, + "recovered_in_bytes": 12393771, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1138, + "source_throttle_time_in_millis": 42, + "target_throttle_time_in_millis": 89 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 68 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.02": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664821223, + "stop_time_in_millis": 1527664823042, + "total_time_in_millis": 1818, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1114693, + "reused_in_bytes": 0, + "recovered_in_bytes": 1114693, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 710, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 6 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 13 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.01": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664837207, + "stop_time_in_millis": 1527664839539, + "total_time_in_millis": 2332, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1113106, + "reused_in_bytes": 0, + "recovered_in_bytes": 1113106, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 694, + "source_throttle_time_in_millis": 3, + "target_throttle_time_in_millis": 7 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 18 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.19": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664438605, + "stop_time_in_millis": 1527664448826, + "total_time_in_millis": 10221, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62579174, + "reused_in_bytes": 0, + "recovered_in_bytes": 62579174, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 8600, + "source_throttle_time_in_millis": 132, + "target_throttle_time_in_millis": 324 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 101 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664447105, + "stop_time_in_millis": 1527664459718, + "total_time_in_millis": 12612, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62464032, + "reused_in_bytes": 0, + "recovered_in_bytes": 62464032, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 11023, + "source_throttle_time_in_millis": 47, + "target_throttle_time_in_millis": 105 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 68 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664437012, + "stop_time_in_millis": 1527664447026, + "total_time_in_millis": 10013, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 62500616, + "reused_in_bytes": 0, + "recovered_in_bytes": 62500616, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 8202, + "source_throttle_time_in_millis": 143, + "target_throttle_time_in_millis": 440 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 202 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.20": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664408436, + "stop_time_in_millis": 1527664414115, + "total_time_in_millis": 5678, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14243531, + "reused_in_bytes": 0, + "recovered_in_bytes": 14243531, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 4160, + "source_throttle_time_in_millis": 39, + "target_throttle_time_in_millis": 87 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 504 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.21": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664386837, + "stop_time_in_millis": 1527664390509, + "total_time_in_millis": 3672, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14964799, + "reused_in_bytes": 0, + "recovered_in_bytes": 14964799, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 2407, + "source_throttle_time_in_millis": 52, + "target_throttle_time_in_millis": 122 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 188 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.04": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664768433, + "stop_time_in_millis": 1527664770403, + "total_time_in_millis": 1970, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1109724, + "reused_in_bytes": 0, + "recovered_in_bytes": 1109724, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 705, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 107 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.03": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664788225, + "stop_time_in_millis": 1527664789822, + "total_time_in_millis": 1597, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1110760, + "reused_in_bytes": 0, + "recovered_in_bytes": 1110760, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 429, + "source_throttle_time_in_millis": 7, + "target_throttle_time_in_millis": 5 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 80 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.22": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664367675, + "stop_time_in_millis": 1527664373315, + "total_time_in_millis": 5639, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 14976534, + "reused_in_bytes": 0, + "recovered_in_bytes": 14976534, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 3922, + "source_throttle_time_in_millis": 31, + "target_throttle_time_in_millis": 89 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 172 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.06": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664710668, + "stop_time_in_millis": 1527664713312, + "total_time_in_millis": 2644, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1925966, + "reused_in_bytes": 0, + "recovered_in_bytes": 1925966, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 990, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 98 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.05": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664741625, + "stop_time_in_millis": 1527664744911, + "total_time_in_millis": 3285, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 1131793, + "reused_in_bytes": 0, + "recovered_in_bytes": 1131793, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 1410, + "source_throttle_time_in_millis": 7, + "target_throttle_time_in_millis": 6 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 188 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.18": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664459804, + "stop_time_in_millis": 1527664470712, + "total_time_in_millis": 10907, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 64864942, + "reused_in_bytes": 0, + "recovered_in_bytes": 64864942, + "percent": "100.0%" + }, + "files": { + "total": 48, + "reused": 0, + "recovered": 48, + "percent": "100.0%" + }, + "total_time_in_millis": 9004, + "source_throttle_time_in_millis": 179, + "target_throttle_time_in_millis": 478 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 297 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664467646, + "stop_time_in_millis": 1527664478910, + "total_time_in_millis": 11264, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 64885743, + "reused_in_bytes": 0, + "recovered_in_bytes": 64885743, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 10099, + "source_throttle_time_in_millis": 172, + "target_throttle_time_in_millis": 296 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 95 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664458110, + "stop_time_in_millis": 1527664467631, + "total_time_in_millis": 9520, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 64576914, + "reused_in_bytes": 0, + "recovered_in_bytes": 64576914, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 7821, + "source_throttle_time_in_millis": 144, + "target_throttle_time_in_millis": 342 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 92 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.08": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664696210, + "stop_time_in_millis": 1527664699405, + "total_time_in_millis": 3195, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2094032, + "reused_in_bytes": 0, + "recovered_in_bytes": 2094032, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 900, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 20 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.17": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664478924, + "stop_time_in_millis": 1527664488908, + "total_time_in_millis": 9983, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 51786292, + "reused_in_bytes": 0, + "recovered_in_bytes": 51786292, + "percent": "100.0%" + }, + "files": { + "total": 48, + "reused": 0, + "recovered": 48, + "percent": "100.0%" + }, + "total_time_in_millis": 8715, + "source_throttle_time_in_millis": 115, + "target_throttle_time_in_millis": 241 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 178 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664480703, + "stop_time_in_millis": 1527664491309, + "total_time_in_millis": 10605, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 51732678, + "reused_in_bytes": 0, + "recovered_in_bytes": 51732678, + "percent": "100.0%" + }, + "files": { + "total": 57, + "reused": 0, + "recovered": 57, + "percent": "100.0%" + }, + "total_time_in_millis": 6403, + "source_throttle_time_in_millis": 121, + "target_throttle_time_in_millis": 207 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 397 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664470734, + "stop_time_in_millis": 1527664480523, + "total_time_in_millis": 9788, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 51838386, + "reused_in_bytes": 0, + "recovered_in_bytes": 51838386, + "percent": "100.0%" + }, + "files": { + "total": 57, + "reused": 0, + "recovered": 57, + "percent": "100.0%" + }, + "total_time_in_millis": 7498, + "source_throttle_time_in_millis": 101, + "target_throttle_time_in_millis": 172 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 109 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.07": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664699911, + "stop_time_in_millis": 1527664704128, + "total_time_in_millis": 4216, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2191163, + "reused_in_bytes": 0, + "recovered_in_bytes": 2191163, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 2424, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 197 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "heartbeat-6.0.0-rc1-2018.03.09": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664691809, + "stop_time_in_millis": 1527664696125, + "total_time_in_millis": 4315, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2107043, + "reused_in_bytes": 0, + "recovered_in_bytes": 2107043, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 1500, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 8 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 97 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.03.31": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664586335, + "stop_time_in_millis": 1527664594612, + "total_time_in_millis": 8276, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 21475379, + "reused_in_bytes": 0, + "recovered_in_bytes": 21475379, + "percent": "100.0%" + }, + "files": { + "total": 32, + "reused": 0, + "recovered": 32, + "percent": "100.0%" + }, + "total_time_in_millis": 6705, + "source_throttle_time_in_millis": 43, + "target_throttle_time_in_millis": 297 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 397 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664587411, + "stop_time_in_millis": 1527664596306, + "total_time_in_millis": 8895, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 21520570, + "reused_in_bytes": 0, + "recovered_in_bytes": 21520570, + "percent": "100.0%" + }, + "files": { + "total": 38, + "reused": 0, + "recovered": 38, + "percent": "100.0%" + }, + "total_time_in_millis": 6899, + "source_throttle_time_in_millis": 74, + "target_throttle_time_in_millis": 61 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 395 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664579229, + "stop_time_in_millis": 1527664586324, + "total_time_in_millis": 7095, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 21313250, + "reused_in_bytes": 0, + "recovered_in_bytes": 21313250, + "percent": "100.0%" + }, + "files": { + "total": 26, + "reused": 0, + "recovered": 26, + "percent": "100.0%" + }, + "total_time_in_millis": 5921, + "source_throttle_time_in_millis": 91, + "target_throttle_time_in_millis": 294 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 79 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.12": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664508310, + "stop_time_in_millis": 1527664511817, + "total_time_in_millis": 3507, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12122566, + "reused_in_bytes": 0, + "recovered_in_bytes": 12122566, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 2184, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 304 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-beats-6-2018.05.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663061519, + "stop_time_in_millis": 1527663068029, + "total_time_in_millis": 6509, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 2593861, + "reused_in_bytes": 0, + "recovered_in_bytes": 2593861, + "percent": "100.0%" + }, + "files": { + "total": 24, + "reused": 0, + "recovered": 24, + "percent": "100.0%" + }, + "total_time_in_millis": 1043, + "source_throttle_time_in_millis": 4, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 4934, + "total": 4934, + "percent": "100.0%", + "total_on_start": 4934, + "total_time_in_millis": 3079 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.13": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664505721, + "stop_time_in_millis": 1527664508238, + "total_time_in_millis": 2516, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11933570, + "reused_in_bytes": 0, + "recovered_in_bytes": 11933570, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1408, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 17 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.14": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664501310, + "stop_time_in_millis": 1527664505703, + "total_time_in_millis": 4392, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12033793, + "reused_in_bytes": 0, + "recovered_in_bytes": 12033793, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2226, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 16 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.15": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664498711, + "stop_time_in_millis": 1527664501136, + "total_time_in_millis": 2424, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11957109, + "reused_in_bytes": 0, + "recovered_in_bytes": 11957109, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1388, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 20 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.16": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664494824, + "stop_time_in_millis": 1527664498639, + "total_time_in_millis": 3814, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11997154, + "reused_in_bytes": 0, + "recovered_in_bytes": 11997154, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2197, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 21 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.17": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664488926, + "stop_time_in_millis": 1527664494314, + "total_time_in_millis": 5387, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12170258, + "reused_in_bytes": 0, + "recovered_in_bytes": 12170258, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 3591, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 202 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.18": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664450017, + "stop_time_in_millis": 1527664455943, + "total_time_in_millis": 5925, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12085812, + "reused_in_bytes": 0, + "recovered_in_bytes": 12085812, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 4229, + "source_throttle_time_in_millis": 34, + "target_throttle_time_in_millis": 303 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 98 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.19": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664430710, + "stop_time_in_millis": 1527664435113, + "total_time_in_millis": 4403, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12127783, + "reused_in_bytes": 0, + "recovered_in_bytes": 12127783, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 2704, + "source_throttle_time_in_millis": 48, + "target_throttle_time_in_millis": 91 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 176 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-beats-6-2018.05.31": { + "shards": [ + { + "id": 0, + "type": "EMPTY_STORE", + "stage": "DONE", + "primary": true, + "start_time_in_millis": 1527724800223, + "stop_time_in_millis": 1527724800240, + "total_time_in_millis": 16, + "source": {}, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 0, + "reused_in_bytes": 0, + "recovered_in_bytes": 0, + "percent": "0.0%" + }, + "files": { + "total": 0, + "reused": 0, + "recovered": 0, + "percent": "0.0%" + }, + "total_time_in_millis": 0, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 11 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-beats-6-2018.05.27": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663879349, + "stop_time_in_millis": 1527663883217, + "total_time_in_millis": 3867, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 8950013, + "reused_in_bytes": 0, + "recovered_in_bytes": 8950013, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 2104, + "source_throttle_time_in_millis": 28, + "target_throttle_time_in_millis": 175 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 198 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-beats-6-2018.05.26": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663968909, + "stop_time_in_millis": 1527663972703, + "total_time_in_millis": 3794, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 9053856, + "reused_in_bytes": 0, + "recovered_in_bytes": 9053856, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 1992, + "source_throttle_time_in_millis": 27, + "target_throttle_time_in_millis": 32 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 193 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-beats-6-2018.05.25": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664025246, + "stop_time_in_millis": 1527664027543, + "total_time_in_millis": 2296, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 8999280, + "reused_in_bytes": 0, + "recovered_in_bytes": 8999280, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 1131, + "source_throttle_time_in_millis": 40, + "target_throttle_time_in_millis": 75 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 94 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.10": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664522708, + "stop_time_in_millis": 1527664527769, + "total_time_in_millis": 5061, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11987952, + "reused_in_bytes": 0, + "recovered_in_bytes": 11987952, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 1721, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 19 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-beats-6-2018.05.29": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663543828, + "stop_time_in_millis": 1527663550818, + "total_time_in_millis": 6989, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 9182206, + "reused_in_bytes": 0, + "recovered_in_bytes": 9182206, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 2412, + "source_throttle_time_in_millis": 17, + "target_throttle_time_in_millis": 30 + }, + "translog": { + "recovered": 3924, + "total": 3924, + "percent": "100.0%", + "total_on_start": 3924, + "total_time_in_millis": 2694 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-beats-6-2018.05.28": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663811810, + "stop_time_in_millis": 1527663815810, + "total_time_in_millis": 4000, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 9067403, + "reused_in_bytes": 0, + "recovered_in_bytes": 9067403, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 1710, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 93 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.11": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664512608, + "stop_time_in_millis": 1527664522623, + "total_time_in_millis": 10015, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11910415, + "reused_in_bytes": 0, + "recovered_in_bytes": 11910415, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 5519, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 91 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + "packetbeat-6.0.0-rc1-2018.04.01": { + "shards": [ + { + "id": 1, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664570791, + "stop_time_in_millis": 1527664579204, + "total_time_in_millis": 8413, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 44351038, + "reused_in_bytes": 0, + "recovered_in_bytes": 44351038, + "percent": "100.0%" + }, + "files": { + "total": 55, + "reused": 0, + "recovered": 55, + "percent": "100.0%" + }, + "total_time_in_millis": 6704, + "source_throttle_time_in_millis": 148, + "target_throttle_time_in_millis": 152 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 31 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 2, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664576329, + "stop_time_in_millis": 1527664586606, + "total_time_in_millis": 10276, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 44353343, + "reused_in_bytes": 0, + "recovered_in_bytes": 44353343, + "percent": "100.0%" + }, + "files": { + "total": 49, + "reused": 0, + "recovered": 49, + "percent": "100.0%" + }, + "total_time_in_millis": 8506, + "source_throttle_time_in_millis": 121, + "target_throttle_time_in_millis": 191 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 108 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + }, + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664568532, + "stop_time_in_millis": 1527664576318, + "total_time_in_millis": 7785, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 44107723, + "reused_in_bytes": 0, + "recovered_in_bytes": 44107723, + "percent": "100.0%" + }, + "files": { + "total": 37, + "reused": 0, + "recovered": 37, + "percent": "100.0%" + }, + "total_time_in_millis": 6600, + "source_throttle_time_in_millis": 126, + "target_throttle_time_in_millis": 143 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 100 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watches-6": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527663047275, + "stop_time_in_millis": 1527663053941, + "total_time_in_millis": 6666, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 67323, + "reused_in_bytes": 0, + "recovered_in_bytes": 67323, + "percent": "100.0%" + }, + "files": { + "total": 19, + "reused": 0, + "recovered": 19, + "percent": "100.0%" + }, + "total_time_in_millis": 402, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 4426, + "total": 4426, + "percent": "100.0%", + "total_on_start": 4426, + "total_time_in_millis": 5130 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.13": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664225716, + "stop_time_in_millis": 1527664229016, + "total_time_in_millis": 3299, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12091603, + "reused_in_bytes": 0, + "recovered_in_bytes": 12091603, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 1577, + "source_throttle_time_in_millis": 54, + "target_throttle_time_in_millis": 90 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 107 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.14": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664214107, + "stop_time_in_millis": 1527664219516, + "total_time_in_millis": 5408, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12233357, + "reused_in_bytes": 0, + "recovered_in_bytes": 12233357, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 3201, + "source_throttle_time_in_millis": 63, + "target_throttle_time_in_millis": 74 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 95 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.15": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664206473, + "stop_time_in_millis": 1527664210514, + "total_time_in_millis": 4041, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12119172, + "reused_in_bytes": 0, + "recovered_in_bytes": 12119172, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 2294, + "source_throttle_time_in_millis": 23, + "target_throttle_time_in_millis": 64 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 200 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.16": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664200758, + "stop_time_in_millis": 1527664204120, + "total_time_in_millis": 3362, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12177338, + "reused_in_bytes": 0, + "recovered_in_bytes": 12177338, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 2221, + "source_throttle_time_in_millis": 48, + "target_throttle_time_in_millis": 70 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 87 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.17": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664195763, + "stop_time_in_millis": 1527664199806, + "total_time_in_millis": 4042, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12135321, + "reused_in_bytes": 0, + "recovered_in_bytes": 12135321, + "percent": "100.0%" + }, + "files": { + "total": 39, + "reused": 0, + "recovered": 39, + "percent": "100.0%" + }, + "total_time_in_millis": 2377, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 28 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.18": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664189723, + "stop_time_in_millis": 1527664192906, + "total_time_in_millis": 3183, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11975254, + "reused_in_bytes": 0, + "recovered_in_bytes": 11975254, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2481, + "source_throttle_time_in_millis": 41, + "target_throttle_time_in_millis": 60 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 192 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.19": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664185008, + "stop_time_in_millis": 1527664188806, + "total_time_in_millis": 3798, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11962201, + "reused_in_bytes": 0, + "recovered_in_bytes": 11962201, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1475, + "source_throttle_time_in_millis": 23, + "target_throttle_time_in_millis": 8 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 187 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".kibana": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664407269, + "stop_time_in_millis": 1527664408417, + "total_time_in_millis": 1147, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 71305, + "reused_in_bytes": 0, + "recovered_in_bytes": 71305, + "percent": "100.0%" + }, + "files": { + "total": 7, + "reused": 0, + "recovered": 7, + "percent": "100.0%" + }, + "total_time_in_millis": 73, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 31 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.10": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664242713, + "stop_time_in_millis": 1527664245807, + "total_time_in_millis": 3094, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12021539, + "reused_in_bytes": 0, + "recovered_in_bytes": 12021539, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1985, + "source_throttle_time_in_millis": 58, + "target_throttle_time_in_millis": 64 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 95 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.11": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664237909, + "stop_time_in_millis": 1527664240334, + "total_time_in_millis": 2424, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12220471, + "reused_in_bytes": 0, + "recovered_in_bytes": 12220471, + "percent": "100.0%" + }, + "files": { + "total": 36, + "reused": 0, + "recovered": 36, + "percent": "100.0%" + }, + "total_time_in_millis": 1301, + "source_throttle_time_in_millis": 23, + "target_throttle_time_in_millis": 114 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 24 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".monitoring-alerts-6": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664850305, + "stop_time_in_millis": 1527664858903, + "total_time_in_millis": 8598, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 52033, + "reused_in_bytes": 0, + "recovered_in_bytes": 52033, + "percent": "100.0%" + }, + "files": { + "total": 33, + "reused": 0, + "recovered": 33, + "percent": "100.0%" + }, + "total_time_in_millis": 3198, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 835, + "total": 835, + "percent": "100.0%", + "total_on_start": 835, + "total_time_in_millis": 2398 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.12": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664231704, + "stop_time_in_millis": 1527664235322, + "total_time_in_millis": 3618, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12045182, + "reused_in_bytes": 0, + "recovered_in_bytes": 12045182, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1290, + "source_throttle_time_in_millis": 35, + "target_throttle_time_in_millis": 69 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 102 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.02": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664296177, + "stop_time_in_millis": 1527664299828, + "total_time_in_millis": 3650, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12371116, + "reused_in_bytes": 0, + "recovered_in_bytes": 12371116, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 2591, + "source_throttle_time_in_millis": 54, + "target_throttle_time_in_millis": 61 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 19 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.03": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664288222, + "stop_time_in_millis": 1527664292011, + "total_time_in_millis": 3789, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12063029, + "reused_in_bytes": 0, + "recovered_in_bytes": 12063029, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 3086, + "source_throttle_time_in_millis": 13, + "target_throttle_time_in_millis": 140 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 193 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.04": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664281809, + "stop_time_in_millis": 1527664287436, + "total_time_in_millis": 5627, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12012423, + "reused_in_bytes": 0, + "recovered_in_bytes": 12012423, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 2297, + "source_throttle_time_in_millis": 47, + "target_throttle_time_in_millis": 83 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 20 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.05": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664276810, + "stop_time_in_millis": 1527664279629, + "total_time_in_millis": 2819, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12087764, + "reused_in_bytes": 0, + "recovered_in_bytes": 12087764, + "percent": "100.0%" + }, + "files": { + "total": 18, + "reused": 0, + "recovered": 18, + "percent": "100.0%" + }, + "total_time_in_millis": 1699, + "source_throttle_time_in_millis": 43, + "target_throttle_time_in_millis": 72 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 15 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.06": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664270507, + "stop_time_in_millis": 1527664274317, + "total_time_in_millis": 3809, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 11980357, + "reused_in_bytes": 0, + "recovered_in_bytes": 11980357, + "percent": "100.0%" + }, + "files": { + "total": 15, + "reused": 0, + "recovered": 15, + "percent": "100.0%" + }, + "total_time_in_millis": 2108, + "source_throttle_time_in_millis": 58, + "target_throttle_time_in_millis": 105 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 96 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.07": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664266413, + "stop_time_in_millis": 1527664268114, + "total_time_in_millis": 1701, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12064165, + "reused_in_bytes": 0, + "recovered_in_bytes": 12064165, + "percent": "100.0%" + }, + "files": { + "total": 21, + "reused": 0, + "recovered": 21, + "percent": "100.0%" + }, + "total_time_in_millis": 1084, + "source_throttle_time_in_millis": 59, + "target_throttle_time_in_millis": 108 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 106 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.08": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664260483, + "stop_time_in_millis": 1527664265712, + "total_time_in_millis": 5228, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12131337, + "reused_in_bytes": 0, + "recovered_in_bytes": 12131337, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 3523, + "source_throttle_time_in_millis": 17, + "target_throttle_time_in_millis": 285 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 79 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.09": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664254258, + "stop_time_in_millis": 1527664259012, + "total_time_in_millis": 4754, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12122597, + "reused_in_bytes": 0, + "recovered_in_bytes": 12122597, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 3089, + "source_throttle_time_in_millis": 0, + "target_throttle_time_in_millis": 0 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 105 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.04.30": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664307482, + "stop_time_in_millis": 1527664309927, + "total_time_in_millis": 2444, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12359720, + "reused_in_bytes": 0, + "recovered_in_bytes": 12359720, + "percent": "100.0%" + }, + "files": { + "total": 27, + "reused": 0, + "recovered": 27, + "percent": "100.0%" + }, + "total_time_in_millis": 1902, + "source_throttle_time_in_millis": 68, + "target_throttle_time_in_millis": 200 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 18 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + }, + ".watcher-history-7-2018.05.01": { + "shards": [ + { + "id": 0, + "type": "PEER", + "stage": "DONE", + "primary": false, + "start_time_in_millis": 1527664302108, + "stop_time_in_millis": 1527664305914, + "total_time_in_millis": 3806, + "source": { + "id": "r4XD9O8eTrCHyN_GJswZ5A", + "host": "172.25.133.112", + "transport_address": "172.25.133.112:19608", + "ip": "172.25.133.112", + "name": "instance-0000000016" + }, + "target": { + "id": "jes3gI7iTGG7v6NFyR1Yfw", + "host": "172.25.25.23", + "transport_address": "172.25.25.23:19544", + "ip": "172.25.25.23", + "name": "instance-0000000018" + }, + "index": { + "size": { + "total_in_bytes": 12450145, + "reused_in_bytes": 0, + "recovered_in_bytes": 12450145, + "percent": "100.0%" + }, + "files": { + "total": 30, + "reused": 0, + "recovered": 30, + "percent": "100.0%" + }, + "total_time_in_millis": 2606, + "source_throttle_time_in_millis": 38, + "target_throttle_time_in_millis": 212 + }, + "translog": { + "recovered": 0, + "total": 0, + "percent": "100.0%", + "total_on_start": 0, + "total_time_in_millis": 101 + }, + "verify_index": { + "check_index_time_in_millis": 0, + "total_time_in_millis": 0 + } + } + ] + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/data.go new file mode 100644 index 00000000..972d2837 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/data.go @@ -0,0 +1,78 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 index_recovery + +import ( + "encoding/json" + + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstriface" + "github.com/elastic/beats/metricbeat/mb" +) + +var ( + schema = s.Schema{ + // This is all shard information and should be linked to elasticsearch.shard.* + // as soon as field aliases are available. + "id": c.Int("id"), + "type": c.Str("type"), + "primary": c.Bool("primary"), + "stage": c.Str("stage"), + + // As soon as we have field alias feature available, source and target should + // link to elasticsearch.node.* as it's not specific information. + "source": c.Dict("source", s.Schema{ + "id": c.Str("id", s.Optional), + "host": c.Str("host", s.Optional), + "name": c.Str("name", s.Optional), + }), + "target": c.Dict("target", s.Schema{ + "id": c.Str("id", s.Optional), + "host": c.Str("host", s.Optional), + "name": c.Str("name", s.Optional), + }), + } +) + +func eventsMapping(r mb.ReporterV2, content []byte) error { + + var data map[string]map[string][]map[string]interface{} + + err := json.Unmarshal(content, &data) + if err != nil { + return err + } + + for indexName, d := range data { + shards, ok := d["shards"] + if !ok { + continue + } + for _, data := range shards { + event := mb.Event{} + event.ModuleFields = common.MapStr{} + event.MetricSetFields, _ = schema.Apply(data) + event.ModuleFields.Put("index.name", indexName) + event.RootFields = common.MapStr{} + event.RootFields.Put("service.name", "elasticsearch") + r.Event(event) + } + } + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/index_recovery.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/index_recovery.go new file mode 100644 index 00000000..769839a6 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_recovery/index_recovery.go @@ -0,0 +1,96 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 index_recovery + +import ( + "fmt" + + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/module/elasticsearch" +) + +func init() { + mb.Registry.MustAddMetricSet("elasticsearch", "index_recovery", New, + mb.WithHostParser(elasticsearch.HostParser), + mb.WithNamespace("elasticsearch.index.recovery"), + ) +} + +const ( + recoveryPath = "/_recovery" +) + +// MetricSet type defines all fields of the MetricSet +type MetricSet struct { + *elasticsearch.MetricSet + recoveryPath string +} + +// New create a new instance of the MetricSet +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Beta("The elasticsearch index_recovery metricset is beta") + + config := struct { + ActiveOnly bool `config:"index_recovery.active_only"` + }{ + ActiveOnly: true, + } + if err := base.Module().UnpackConfig(&config); err != nil { + return nil, err + } + + localRecoveryPath := recoveryPath + if config.ActiveOnly { + localRecoveryPath = localRecoveryPath + "?active_only=true" + } + + ms, err := elasticsearch.NewMetricSet(base, localRecoveryPath) + if err != nil { + return nil, err + } + return &MetricSet{MetricSet: ms, recoveryPath: localRecoveryPath}, nil +} + +// Fetch gathers stats for each index from the _stats API +func (m *MetricSet) Fetch(r mb.ReporterV2) { + + isMaster, err := elasticsearch.IsMaster(m.HTTP, m.HostData().SanitizedURI+m.recoveryPath) + if err != nil { + r.Error(fmt.Errorf("Error fetch master info: %s", err)) + return + } + + // Not master, no event sent + if !isMaster { + logp.Debug("elasticsearch", "Trying to fetch index recovery stats from a non master node.") + return + } + + content, err := m.HTTP.FetchContent() + if err != nil { + r.Error(err) + return + } + + err = eventsMapping(r, content) + if err != nil { + r.Error(err) + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/_meta/fields.yml index 98396cff..0ae26e02 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/_meta/fields.yml @@ -2,6 +2,7 @@ type: group description: > index + release: beta fields: - name: primaries type: group diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data.go index f598dff5..6b7fe459 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 index_summary import ( @@ -49,7 +66,7 @@ var ( } ) -func eventMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) []error { +func eventMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) error { var all struct { Data map[string]interface{} `json:"_all"` } @@ -57,17 +74,16 @@ func eventMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) []er err := json.Unmarshal(content, &all) if err != nil { r.Error(err) - return []error{err} + return err } - var errs []error - - fields, err := schema.Apply(all.Data) + fields, err := schema.Apply(all.Data, s.FailOnRequired) if err != nil { - errs = append(errs, err) + r.Error(err) + return err } - event := mb.Event{} + var event mb.Event event.RootFields = common.MapStr{} event.RootFields.Put("service.name", "elasticsearch") @@ -79,5 +95,5 @@ func eventMapping(r mb.ReporterV2, info elasticsearch.Info, content []byte) []er r.Event(event) - return errs + return nil } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data_test.go deleted file mode 100644 index 15f29b6e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// +build !integration - -package index_summary - -import ( - "io/ioutil" - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/elasticsearch" -) - -var info = elasticsearch.Info{ - ClusterID: "1234", - ClusterName: "helloworld", -} - -func TestMapper(t *testing.T) { - elasticsearch.TestMapperWithInfo(t, "../index/_meta/test/stats.*.json", eventMapping) -} - -func TestEmpty(t *testing.T) { - input, err := ioutil.ReadFile("../index/_meta/test/empty.512.json") - assert.NoError(t, err) - - reporter := &mbtest.CapturingReporterV2{} - eventMapping(reporter, info, input) - assert.Equal(t, 1, len(reporter.GetEvents())) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data_xpack.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data_xpack.go index bc20be21..78145580 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data_xpack.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/data_xpack.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 index_summary import ( @@ -82,7 +99,7 @@ func eventMappingXPack(r mb.ReporterV2, m *MetricSet, info elasticsearch.Info, c event := mb.Event{} event.RootFields = common.MapStr{} event.RootFields.Put("indices_stats._all", fields) - event.RootFields.Put("cluser_uuid", info.ClusterID) + event.RootFields.Put("cluster_uuid", info.ClusterID) event.RootFields.Put("timestamp", common.Time(time.Now())) event.RootFields.Put("interval_ms", m.Module().Config().Period/time.Millisecond) event.RootFields.Put("type", "indices_stats") diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/index_summary.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/index_summary.go index 83f2f345..379c6aa6 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/index_summary.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/index_summary/index_summary.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 index_summary import ( @@ -35,7 +52,7 @@ type MetricSet struct { // New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The elasticsearch index_summary metricset is experimental") + cfgwarn.Beta("The elasticsearch index_summary metricset is beta") // Get the stats from the local node ms, err := elasticsearch.NewMetricSet(base, statsPath) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/metricset.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/metricset.go index 5bb9209b..1921b8df 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/metricset.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/metricset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 elasticsearch import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/data.json new file mode 100644 index 00000000..93a05322 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/data.json @@ -0,0 +1,28 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "beat": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "elasticsearch": { + "ml": { + "job": { + "data_counts": { + "processed_record_count": 0 + }, + "id": "filebeat-apache2-access-low_request_rate", + "state": "closed" + } + } + }, + "metricset": { + "host": "127.0.0.1:9200", + "module": "elasticsearch", + "name": "ml_job", + "namespace": "elasticsearch.ml.job", + "rtt": 115 + }, + "service": { + "name": "elasticsearch" + } +} \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/docs.asciidoc new file mode 100644 index 00000000..40a5fe65 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/docs.asciidoc @@ -0,0 +1,3 @@ +=== elasticsearch ml_job MetricSet + +This is the ml_job metricset of the module Elasticsearch. This metricset requires https://www.elastic.co/products/x-pack/machine-learning[Machine Learning] to be enabled. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/fields.yml new file mode 100644 index 00000000..41b7b1b9 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/fields.yml @@ -0,0 +1,24 @@ +- name: ml.job + type: group + description: > + ml + release: beta + fields: + - name: id + type: keyword + description: > + Unique ml job id. + - name: state + type: keyword + description: > + Job state. + - name: data_counts.processed_record_count + type: long + description: > + Processed data events. + - name: data_counts.invalid_date_count + type: long + description: > + The number of records with either a missing date field or a date that could not be parsed. + + diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/ml.700.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/ml.700.json new file mode 100644 index 00000000..035ced73 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/ml.700.json @@ -0,0 +1,68 @@ +{ + "count": 2, + "jobs": [ + { + "job_id": "55", + "data_counts": { + "job_id": "55", + "processed_record_count": 14, + "processed_field_count": 28, + "input_bytes": 1254, + "input_field_count": 28, + "invalid_date_count": 0, + "missing_field_count": 0, + "out_of_order_timestamp_count": 0, + "empty_bucket_count": 0, + "sparse_bucket_count": 0, + "bucket_count": 2, + "earliest_record_timestamp": 1525847665298, + "latest_record_timestamp": 1525847795423, + "last_data_time": 1525848008257, + "input_record_count": 14 + }, + "model_size_stats": { + "job_id": "55", + "result_type": "model_size_stats", + "model_bytes": 49176, + "total_by_field_count": 3, + "total_over_field_count": 0, + "total_partition_field_count": 2, + "bucket_allocation_failures_count": 0, + "memory_status": "ok", + "log_time": 1525848008000, + "timestamp": 1525847700000 + }, + "state": "closed" + }, + { + "job_id": "test", + "data_counts": { + "job_id": "test", + "processed_record_count": 0, + "processed_field_count": 0, + "input_bytes": 0, + "input_field_count": 0, + "invalid_date_count": 0, + "missing_field_count": 0, + "out_of_order_timestamp_count": 0, + "empty_bucket_count": 0, + "sparse_bucket_count": 0, + "bucket_count": 0, + "input_record_count": 0 + }, + "model_size_stats": { + "job_id": "test", + "result_type": "model_size_stats", + "model_bytes": 1280, + "total_by_field_count": 0, + "total_over_field_count": 0, + "total_partition_field_count": 0, + "bucket_allocation_failures_count": 0, + "memory_status": "ok", + "log_time": 1525847934000, + "timestamp": -900000 + }, + "state": "closed" + } + ] +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/test_job.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/test_job.json new file mode 100644 index 00000000..5dbf82c9 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/test_job.json @@ -0,0 +1,17 @@ +{ + "description" : "Total sum of requests", + "analysis_config" : { + "bucket_span":"10m", + "detectors": [ + { + "detector_description": "Sum of total", + "function": "sum", + "field_name": "total" + } + ] + }, + "data_description" : { + "time_field":"timestamp", + "time_format": "epoch_ms" + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/xpack.job.stats.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/xpack.job.stats.json new file mode 100644 index 00000000..2da640cc --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/_meta/test/xpack.job.stats.json @@ -0,0 +1,62 @@ +{ + "_index": ".monitoring-es-6-2018.05.09", + "_type": "doc", + "_id": "1QWfQ2MBM5SQsInIyGuQ", + "_score": 2.6701682, + "_source": { + "cluster_uuid": "EFdYsDSoSZmU7fXE2wvJ0g", + "timestamp": "2018-05-09T06:38:55.058Z", + "interval_ms": 10000, + "type": "job_stats", + "source_node": { + "uuid": "q7ya3ngBTS2cxzYi0duQdA", + "host": "127.0.0.1", + "transport_address": "127.0.0.1:9300", + "ip": "127.0.0.1", + "name": "q7ya3ng", + "timestamp": "2018-05-09T06:38:54.931Z" + }, + "job_stats": { + "job_id": "test", + "data_counts": { + "job_id": "test", + "processed_record_count": 0, + "processed_field_count": 0, + "input_bytes": 0, + "input_field_count": 0, + "invalid_date_count": 0, + "missing_field_count": 0, + "out_of_order_timestamp_count": 0, + "empty_bucket_count": 0, + "sparse_bucket_count": 0, + "bucket_count": 0, + "input_record_count": 0 + }, + "model_size_stats": { + "job_id": "test", + "result_type": "model_size_stats", + "model_bytes": 0, + "total_by_field_count": 0, + "total_over_field_count": 0, + "total_partition_field_count": 0, + "bucket_allocation_failures_count": 0, + "memory_status": "ok", + "log_time": 1525847933184 + }, + "state": "closing", + "node": { + "id": "q7ya3ngBTS2cxzYi0duQdA", + "name": "q7ya3ng", + "ephemeral_id": "NrFp0cqSQky6zvxDhSJ-5w", + "transport_address": "127.0.0.1:9300", + "attributes": { + "ml.machine_memory": "2096066560", + "ml.max_open_jobs": "20", + "ml.enabled": "true" + } + }, + "assignment_explanation": "", + "open_time": "1s" + } + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/data.go new file mode 100644 index 00000000..85cd87c7 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/data.go @@ -0,0 +1,69 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ml_job + +import ( + "encoding/json" + + "github.com/joeshaw/multierror" + + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstriface" + "github.com/elastic/beats/metricbeat/mb" +) + +var ( + schema = s.Schema{ + "id": c.Str("job_id"), + "state": c.Str("state"), + "data_counts": c.Dict("data_counts", s.Schema{ + "processed_record_count": c.Int("processed_record_count"), + "invalid_date_count": c.Int("invalid_date_count"), + }), + } +) + +type jobsStruct struct { + Jobs []map[string]interface{} `json:"jobs"` +} + +func eventsMapping(r mb.ReporterV2, content []byte) error { + + jobsData := &jobsStruct{} + err := json.Unmarshal(content, jobsData) + if err != nil { + return err + } + + var errs multierror.Errors + for _, job := range jobsData.Jobs { + + event := mb.Event{} + + event.MetricSetFields, err = schema.Apply(job) + if err != nil { + errs = append(errs, err) + } + + event.RootFields = common.MapStr{} + event.RootFields.Put("service.name", "elasticsearch") + r.Event(event) + } + return errs.Err() +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/ml_job.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/ml_job.go new file mode 100644 index 00000000..c712024b --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/ml_job/ml_job.go @@ -0,0 +1,82 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 ml_job + +import ( + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/module/elasticsearch" +) + +func init() { + mb.Registry.MustAddMetricSet("elasticsearch", "ml_job", New, + mb.WithHostParser(elasticsearch.HostParser), + mb.WithNamespace("elasticsearch.ml.job"), + ) +} + +const ( + jobPath = "/_xpack/ml/anomaly_detectors/_all/_stats" +) + +// MetricSet for ml job +type MetricSet struct { + *elasticsearch.MetricSet +} + +// New creates a new instance of the MetricSet. New is responsible for unpacking +// any MetricSet specific configuration options if there are any. +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Beta("The elasticsearch ml_job metricset is beta.") + + // Get the stats from the local node + ms, err := elasticsearch.NewMetricSet(base, jobPath) + if err != nil { + return nil, err + } + return &MetricSet{MetricSet: ms}, nil +} + +// Fetch methods implements the data gathering and data conversion to the right format +func (m *MetricSet) Fetch(r mb.ReporterV2) { + + isMaster, err := elasticsearch.IsMaster(m.HTTP, m.HostData().SanitizedURI+jobPath) + if err != nil { + r.Error(err) + return + } + + // Not master, no event sent + if !isMaster { + logp.Debug("elasticsearch", "Trying to fetch machine learning job stats from a non-master node.") + return + } + + content, err := m.HTTP.FetchContent() + if err != nil { + r.Error(err) + return + } + + err = eventsMapping(r, content) + if err != nil { + r.Error(err) + return + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/invalid.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/invalid.json index 4847a231..a5e5ac07 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/invalid.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/invalid.json @@ -172,7 +172,7 @@ { "name" : "ingest-geoip", "version" : "5.2.2", - "description" : "Ingest processor that uses looksup geo data based on ip adresses using the Maxmind geo database", + "description" : "Ingest processor that uses looksup geo data based on ip addresses using the Maxmind geo database", "classname" : "org.elasticsearch.ingest.geoip.IngestGeoIpPlugin" }, { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/node.522.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/node.522.json index 78eb3e89..2f43ce30 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/node.522.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/_meta/test/node.522.json @@ -200,7 +200,7 @@ { "name" : "ingest-geoip", "version" : "5.2.2", - "description" : "Ingest processor that uses looksup geo data based on ip adresses using the Maxmind geo database", + "description" : "Ingest processor that uses looksup geo data based on ip addresses using the Maxmind geo database", "classname" : "org.elasticsearch.ingest.geoip.IngestGeoIpPlugin" }, { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/data.go index 6001369d..62f18896 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/data.go @@ -1,8 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( "encoding/json" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -40,7 +59,7 @@ var ( } ) -func eventsMapping(r mb.ReporterV2, content []byte) []error { +func eventsMapping(r mb.ReporterV2, content []byte) error { nodesStruct := struct { ClusterName string `json:"cluster_name"` Nodes map[string]map[string]interface{} `json:"nodes"` @@ -49,15 +68,12 @@ func eventsMapping(r mb.ReporterV2, content []byte) []error { err := json.Unmarshal(content, &nodesStruct) if err != nil { r.Error(err) - return []error{err} + return err } - var errs []error - + var errs multierror.Errors for name, node := range nodesStruct.Nodes { - event := mb.Event{} - event.MetricSetFields, err = eventMapping(node) if err != nil { errs = append(errs, err) @@ -75,9 +91,9 @@ func eventsMapping(r mb.ReporterV2, content []byte) []error { r.Event(event) } - return errs + return errs.Err() } -func eventMapping(node map[string]interface{}) (common.MapStr, *s.Errors) { +func eventMapping(node map[string]interface{}) (common.MapStr, error) { return schema.Apply(node) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/data_test.go deleted file mode 100644 index 207b04f4..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/data_test.go +++ /dev/null @@ -1,36 +0,0 @@ -// +build !integration - -package node - -import ( - "io/ioutil" - "testing" - - s "github.com/elastic/beats/libbeat/common/schema" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/metricbeat/module/elasticsearch" -) - -func TestGetMappings(t *testing.T) { - elasticsearch.TestMapper(t, "./_meta/test/node.*.json", eventsMapping) -} - -func TestInvalid(t *testing.T) { - file := "./_meta/test/invalid.json" - - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - reporter := &mbtest.CapturingReporterV2{} - errs := eventsMapping(reporter, content) - - errors, ok := errs[0].(*s.Errors) - if ok { - assert.True(t, errors.HasRequiredErrors(), "mapping error: %s", errors) - } else { - t.Error(err) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/node.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/node.go index 4309ef6b..007f03f5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/node.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/node.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/node_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/node_test.go deleted file mode 100644 index 254977d3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node/node_test.go +++ /dev/null @@ -1,51 +0,0 @@ -// +build !integration - -package node - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestFetch(t *testing.T) { - - files, err := filepath.Glob("./_meta/test/node.*.json") - assert.NoError(t, err) - // Makes sure glob matches at least 1 file - assert.True(t, len(files) > 0) - - for _, f := range files { - t.Run(f, func(t *testing.T) { - response, err := ioutil.ReadFile(f) - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - assert.Equal(t, "/_nodes/_local", r.RequestURI) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "elasticsearch", - "metricsets": []string{"node"}, - "hosts": []string{server.URL}, - } - reporter := &mbtest.CapturingReporterV2{} - - metricSet := mbtest.NewReportingMetricSetV2(t, config) - metricSet.Fetch(reporter) - - e := mbtest.StandardizeEvent(metricSet, reporter.GetEvents()[0]) - t.Logf("%s/%s event: %+v", metricSet.Module().Name(), metricSet.Name(), e.Fields.StringToPrint()) - }) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data.go index 33976882..576a3a86 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data.go @@ -1,8 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node_stats import ( "encoding/json" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -86,22 +105,22 @@ type nodesStruct struct { Nodes map[string]map[string]interface{} `json:"nodes"` } -func eventsMapping(r mb.ReporterV2, content []byte) []error { +func eventsMapping(r mb.ReporterV2, content []byte) error { nodeData := &nodesStruct{} err := json.Unmarshal(content, nodeData) if err != nil { r.Error(err) - return []error{err} + return err } - var errs []error + var errs multierror.Errors for name, node := range nodeData.Nodes { event := mb.Event{} event.MetricSetFields, err = schema.Apply(node) if err != nil { - errs = append(errs, err) + r.Error(err) } event.ModuleFields = common.MapStr{ @@ -116,5 +135,5 @@ func eventsMapping(r mb.ReporterV2, content []byte) []error { event.RootFields.Put("service.name", "elasticsearch") r.Event(event) } - return errs + return errs.Err() } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data_test.go deleted file mode 100644 index 5219f1e9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data_test.go +++ /dev/null @@ -1,13 +0,0 @@ -// +build !integration - -package node_stats - -import ( - "testing" - - "github.com/elastic/beats/metricbeat/module/elasticsearch" -) - -func TestStats(t *testing.T) { - elasticsearch.TestMapper(t, "./_meta/test/node_stats.*.json", eventsMapping) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data_xpack.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data_xpack.go index 990f9b11..ebfd77c5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data_xpack.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/data_xpack.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node_stats import ( @@ -9,6 +26,7 @@ import ( s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/helper/elastic" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/elasticsearch" ) @@ -212,9 +230,7 @@ func eventsMappingXPack(r mb.ReporterV2, m *MetricSet, content []byte) { "node_stats": nodeData, } - // Hard coded index prefix for monitoring, no detection done for ES version at the moment - // It has an additonal md in the name to make it clear the data is coming from metricbeat - event.Index = ".monitoring-es-6-mb" + event.Index = elastic.MakeXPackMonitoringIndexName(elastic.Elasticsearch) r.Event(event) } } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/node_stats.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/node_stats.go index 84f3db41..d7414ea1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/node_stats.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/node_stats/node_stats.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node_stats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/fields.yml index 2b9ad086..f30856f8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/fields.yml @@ -2,6 +2,7 @@ type: group description: > `cluster.pending_task` contains a pending task description. + release: beta fields: - name: insert_order type: long diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/test/invalid_format.json b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/test/invalid_format.json index 6f8c7376..6ff68b56 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/test/invalid_format.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/_meta/test/invalid_format.json @@ -8,4 +8,4 @@ "time_in_queue": "86ms" } ] - } \ No newline at end of file + } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/data.go index 6d4ec504..28c87c20 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/data.go @@ -1,8 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pending_tasks import ( "encoding/json" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -17,7 +36,7 @@ var ( } ) -func eventsMapping(content []byte) ([]common.MapStr, error) { +func eventsMapping(content []byte, applyOpts ...s.ApplyOption) ([]common.MapStr, error) { tasksStruct := struct { Tasks []map[string]interface{} `json:"tasks"` }{} @@ -25,15 +44,21 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { if err := json.Unmarshal(content, &tasksStruct); err != nil { return nil, err } + if tasksStruct.Tasks == nil { + return nil, s.NewKeyNotFoundError("tasks") + } var events []common.MapStr - errors := s.NewErrors() + var errors multierror.Errors + opts := append(applyOpts, s.AllRequired) for _, task := range tasksStruct.Tasks { - event, errs := schema.Apply(task) - errors.AddErrors(errs) + event, err := schema.Apply(task, opts...) + if err != nil { + errors = append(errors, err) + } events = append(events, event) } - return events, errors + return events, errors.Err() } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/data_test.go deleted file mode 100644 index 7a5d8b68..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/data_test.go +++ /dev/null @@ -1,144 +0,0 @@ -// +build !integration - -package pending_tasks - -import ( - "io/ioutil" - "reflect" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - s "github.com/elastic/beats/libbeat/common/schema" -) - -//Events Mapping - -func TestEmptyQueueShouldGiveNoError(t *testing.T) { - file := "./_meta/test/empty.json" - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - _, errs := eventsMapping(content) - - errors, ok := errs.(*s.Errors) - if ok { - assert.False(t, errors.HasRequiredErrors(), "mapping error: %s", errors) - } else { - t.Error(err) - } -} - -func TestNotEmptyQueueShouldGiveNoError(t *testing.T) { - file := "./_meta/test/tasks.622.json" - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - _, errs := eventsMapping(content) - - errors, ok := errs.(*s.Errors) - if ok { - assert.False(t, errors.HasRequiredErrors(), "mapping error: %s", errors) - } else { - t.Error(err) - } -} - -func TestEmptyQueueShouldGiveZeroEvent(t *testing.T) { - file := "./_meta/test/empty.json" - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - events, _ := eventsMapping(content) - - assert.Zero(t, len(events)) -} - -func TestEmptyQueueShouldGiveNilEvent(t *testing.T) { - file := "./_meta/test/empty.json" - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - events, _ := eventsMapping(content) - - assert.Nil(t, events) -} - -func TestNotEmptyQueueShouldGiveSeveralEvents(t *testing.T) { - file := "./_meta/test/tasks.622.json" - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - events, _ := eventsMapping(content) - - assert.Equal(t, 3, len(events)) -} - -func TestInvalidJsonForRequiredFieldShouldThrowError(t *testing.T) { - file := "./_meta/test/invalid_required_field.json" - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - _, errs := eventsMapping(content) - - errors, ok := errs.(*s.Errors) - if ok { - assert.True(t, errors.HasRequiredErrors(), "mapping error: %s", errors) - assert.EqualError(t, errors, "Required fields are missing: ,source") - } else { - t.Error(err) - } -} - -func TestInvalidJsonForBadFormatShouldThrowError(t *testing.T) { - file := "./_meta/test/invalid_format.json" - content, err := ioutil.ReadFile(file) - assert.NoError(t, err) - - _, err = eventsMapping(content) - - assert.Error(t, err) -} - -func TestEventsMappedMatchToContentReceived(t *testing.T) { - testCases := []struct { - given string - expected []common.MapStr - }{ - {"./_meta/test/empty.json", []common.MapStr(nil)}, - {"./_meta/test/task.622.json", []common.MapStr{common.MapStr{ - "priority": "URGENT", - "source": "create-index [foo_9], cause [api]", - "time_in_queue.ms": int64(86), - "insert_order": int64(101), - }}}, - {"./_meta/test/tasks.622.json", []common.MapStr{common.MapStr{ - "priority": "URGENT", - "source": "create-index [foo_9], cause [api]", - "time_in_queue.ms": int64(86), - "insert_order": int64(101)}, - common.MapStr{ - "priority": "HIGH", - "source": "shard-started ([foo_2][1], node[tMTocMvQQgGCkj7QDHl3OA], [P], s[INITIALIZING]), reason [after recovery from shard_store]", - "time_in_queue.ms": int64(842), - "insert_order": int64(46), - }, common.MapStr{ - "priority": "HIGH", - "source": "shard-started ([foo_2][0], node[tMTocMvQQgGCkj7QDHl3OA], [P], s[INITIALIZING]), reason [after recovery from shard_store]", - "time_in_queue.ms": int64(858), - "insert_order": int64(45), - }}}, - } - - for _, testCase := range testCases { - content, err := ioutil.ReadFile(testCase.given) - assert.NoError(t, err) - - events, _ := eventsMapping(content) - - if !reflect.DeepEqual(testCase.expected, events) { - t.Errorf("Expected %v, actual: %v", testCase.expected, events) - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/pending_tasks.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/pending_tasks.go index ae0d292c..c6cb6d5d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/pending_tasks.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/pending_tasks/pending_tasks.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pending_tasks import ( @@ -36,7 +53,7 @@ type MetricSet struct { // New creates a new instance of the MetricSet. New is responsible for unpacking // any MetricSet specific configuration options if there are any. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The elasticsearch pending_tasks metricset is experimental.") + cfgwarn.Beta("The elasticsearch pending_tasks metricset is beta.") http, err := helper.NewHTTP(base) if err != nil { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/_meta/fields.yml index ee4c7f28..97337cfc 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/_meta/fields.yml @@ -2,6 +2,7 @@ type: group description: > shard fields + release: beta fields: - name: primary type: boolean diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data.go index b95176c6..00de2076 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 shard import ( @@ -45,7 +62,6 @@ func eventsMapping(r mb.ReporterV2, content []byte) { event := mb.Event{} fields, _ := schema.Apply(shard) - event.ModuleFields = common.MapStr{} event.ModuleFields.Put("node.name", fields["node"]) delete(fields, "node") diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data_test.go deleted file mode 100644 index 321078a6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data_test.go +++ /dev/null @@ -1,27 +0,0 @@ -package shard - -import ( - "io/ioutil" - "path/filepath" - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestStats(t *testing.T) { - files, err := filepath.Glob("./_meta/test/routing_table.*.json") - assert.NoError(t, err) - - for _, f := range files { - input, err := ioutil.ReadFile(f) - assert.NoError(t, err) - - reporter := &mbtest.CapturingReporterV2{} - eventsMapping(reporter, input) - - assert.True(t, len(reporter.GetEvents()) >= 1) - assert.Equal(t, 0, len(reporter.GetErrors())) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data_xpack.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data_xpack.go index 4692681a..6ed9c917 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data_xpack.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/data_xpack.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 shard import ( @@ -45,7 +62,11 @@ func eventsMappingXPack(r mb.ReporterV2, m *MetricSet, content []byte) { for _, shards := range index.Shards { for _, shard := range shards { event := mb.Event{} - fields, _ := schema.Apply(shard) + fields, err := schema.Apply(shard) + if err != nil { + r.Error(err) + continue + } fields["shard"] = fields["number"] delete(fields, "number") diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/shard.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/shard.go index c152db23..bdec76b4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/shard.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/shard/shard.go @@ -1,7 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 shard import ( + "fmt" + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/elasticsearch" ) @@ -15,7 +35,6 @@ func init() { } const ( - // Get the stats from the local node statePath = "/_cluster/state/version,master_node,routing_table" ) @@ -38,6 +57,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right format func (m *MetricSet) Fetch(r mb.ReporterV2) { + isMaster, err := elasticsearch.IsMaster(m.HTTP, m.HostData().SanitizedURI+statePath) + if err != nil { + r.Error(fmt.Errorf("Error fetch master info: %s", err)) + return + } + + // Not master, no event sent + if !isMaster { + logp.Debug("elasticsearch", "Trying to fetch shard stats from a non master node.") + return + } + content, err := m.HTTP.FetchContent() if err != nil { r.Error(err) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/test_elasticsearch.py b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/test_elasticsearch.py index a8d113bf..90906ac6 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/test_elasticsearch.py +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/test_elasticsearch.py @@ -4,6 +4,7 @@ import unittest from elasticsearch import Elasticsearch, TransportError from parameterized import parameterized +import json sys.path.append(os.path.join(os.path.dirname(__file__), '../../tests/system')) @@ -18,6 +19,8 @@ class Test(metricbeat.BaseTest): @parameterized.expand([ "index", "index_summary", + "ml_job", + "index_recovery", "node_stats", "node", "shard" @@ -27,10 +30,38 @@ def test_metricsets(self, metricset): """ elasticsearch metricset tests """ + if metricset == "ml_job": + self.create_ml_job() + es = Elasticsearch(self.get_hosts()) es.indices.create(index='test-index', ignore=400) - self.check_metricset("elasticsearch", metricset, self.get_hosts(), self.FIELDS + ["service.name"]) + self.check_metricset("elasticsearch", metricset, self.get_hosts(), self.FIELDS + + ["service.name"], extras={"index_recovery.active_only": "false"}) def get_hosts(self): return [os.getenv('ES_HOST', 'localhost') + ':' + os.getenv('ES_PORT', '9200')] + + def create_ml_job(self): + es = Elasticsearch(self.get_hosts()) + + # Enable xpack trial + try: + es.transport.perform_request('POST', "/_xpack/license/start_trial?acknowledge=true") + except: + e = sys.exc_info()[0] + print "Trial already enabled. Error: {}".format(e) + + # Check if an ml job already exists + response = es.transport.perform_request('GET', "/_xpack/ml/anomaly_detectors/_all/") + if response["count"] > 0: + return + + file = os.path.join(self.beat_path, "module", "elasticsearch", "ml_job", "_meta", "test", "test_job.json") + + body = {} + with open(file, 'r') as f: + body = json.load(f) + + path = "/_xpack/ml/anomaly_detectors/test" + es.transport.perform_request('PUT', path, body=body) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/testing.go index cfd16e95..612ba74a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/elasticsearch/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !integration package elasticsearch @@ -7,7 +24,6 @@ import ( "path/filepath" "testing" - s "github.com/elastic/beats/libbeat/common/schema" "github.com/elastic/beats/metricbeat/mb" mbtest "github.com/elastic/beats/metricbeat/mb/testing" @@ -15,7 +31,7 @@ import ( ) // TestMapper tests mapping methods -func TestMapper(t *testing.T, glob string, mapper func(mb.ReporterV2, []byte) []error) { +func TestMapper(t *testing.T, glob string, mapper func(mb.ReporterV2, []byte) error) { files, err := filepath.Glob(glob) assert.NoError(t, err) // Makes sure glob matches at least 1 file @@ -27,12 +43,8 @@ func TestMapper(t *testing.T, glob string, mapper func(mb.ReporterV2, []byte) [] assert.NoError(t, err) reporter := &mbtest.CapturingReporterV2{} - errors := mapper(reporter, input) - for _, errs := range errors { - if e, ok := errs.(*s.Errors); ok { - assert.False(t, e.HasRequiredErrors(), "mapping error: %s", e) - } - } + err = mapper(reporter, input) + assert.NoError(t, err) assert.True(t, len(reporter.GetEvents()) >= 1) assert.Equal(t, 0, len(reporter.GetErrors())) }) @@ -40,7 +52,7 @@ func TestMapper(t *testing.T, glob string, mapper func(mb.ReporterV2, []byte) [] } // TestMapperWithInfo tests mapping methods with Info fields -func TestMapperWithInfo(t *testing.T, glob string, mapper func(mb.ReporterV2, Info, []byte) []error) { +func TestMapperWithInfo(t *testing.T, glob string, mapper func(mb.ReporterV2, Info, []byte) error) { files, err := filepath.Glob(glob) assert.NoError(t, err) // Makes sure glob matches at least 1 file @@ -57,12 +69,8 @@ func TestMapperWithInfo(t *testing.T, glob string, mapper func(mb.ReporterV2, In assert.NoError(t, err) reporter := &mbtest.CapturingReporterV2{} - errors := mapper(reporter, info, input) - for _, errs := range errors { - if e, ok := errs.(*s.Errors); ok { - assert.False(t, e.HasRequiredErrors(), "mapping error: %s", e) - } - } + err = mapper(reporter, info, input) + assert.NoError(t, err) assert.True(t, len(reporter.GetEvents()) >= 1) assert.Equal(t, 0, len(reporter.GetErrors())) }) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/Dockerfile new file mode 100644 index 00000000..1de4e17c --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/Dockerfile @@ -0,0 +1,7 @@ +FROM envoyproxy/envoy:v1.7.0 +RUN apt-get update +COPY ./envoy.json /etc/envoy.json +EXPOSE 10000 9901 +HEALTHCHECK --interval=1s --retries=90 CMD wget -O - http://localhost:9901/clusters | grep health_flags | grep healthy +CMD /usr/local/bin/envoy -c /etc/envoy.json + diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/config.reference.yml new file mode 100644 index 00000000..5ecc38dd --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/config.reference.yml @@ -0,0 +1,4 @@ +- module: envoyproxy + metricsets: ["server"] + period: 10s + hosts: ["localhost:9901"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/config.yml new file mode 100644 index 00000000..dde6380c --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/config.yml @@ -0,0 +1,5 @@ +- module: envoyproxy + #metricsets: + # - server + period: 10s + hosts: ["localhost:9901"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/docs.asciidoc new file mode 100644 index 00000000..45ba4494 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/docs.asciidoc @@ -0,0 +1,5 @@ +== envoyproxy module + +This is the envoyproxy module. + +The default metricset is `server`. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/env b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/env new file mode 100644 index 00000000..75a2386e --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/env @@ -0,0 +1,2 @@ +ENVOYPROXY_HOST=envoyproxy +ENVOYPROXY_PORT=9901 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/envoy.json b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/envoy.json new file mode 100644 index 00000000..dbd258d4 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/envoy.json @@ -0,0 +1,49 @@ +{ + "listeners": [{ + "address": "tcp://0.0.0.0:10000", + "filters": [{ + "name": "http_connection_manager", + "config": { + "codec_type": "auto", + "stat_prefix": "ingress_http", + "route_config": { + "virtual_hosts": [{ + "name": "local_service", + "domains": [ + "*" + ], + "routes": [{ + "timeout_ms": 0, + "prefix": "/", + "host_rewrite": "www.google.com", + "cluster": "service_google" + }] + }] + }, + "filters": [{ + "name": "router", + "config": {} + }] + } + }] + }], + "admin": { + "access_log_path": "/tmp/admin_access.log", + "address": "tcp://0.0.0.0:9901" + }, + "cluster_manager": { + "clusters": [{ + "name": "service_google", + "connect_timeout_ms": 250, + "type": "logical_dns", + "lb_type": "round_robin", + "hosts": [{ + "url": "tcp://google.com:443" + }], + "ssl_context": { + "sni": "www.google.com" + } + }] + } +} + diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/fields.yml new file mode 100644 index 00000000..d3738a61 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/fields.yml @@ -0,0 +1,11 @@ +- key: envoyproxy + title: "envoyproxy" + description: > + experimental[] + + envoyproxy module + fields: + - name: envoyproxy + type: group + description: > + fields: diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/test/serverstats b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/test/serverstats new file mode 100644 index 00000000..34375203 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/_meta/test/serverstats @@ -0,0 +1,41 @@ +cluster_manager.active_clusters: 1 +cluster_manager.cluster_added: 1 +cluster_manager.cluster_modified: 0 +cluster_manager.cluster_removed: 0 +cluster_manager.warming_clusters: 0 +filesystem.flushed_by_timer: 389 +filesystem.reopen_failed: 0 +filesystem.write_buffered: 44 +filesystem.write_completed: 43 +filesystem.write_total_buffered: 0 +listener_manager.listener_added: 1 +listener_manager.listener_create_failure: 0 +listener_manager.listener_create_success: 4 +listener_manager.listener_modified: 0 +listener_manager.listener_removed: 0 +listener_manager.total_listeners_active: 1 +listener_manager.total_listeners_draining: 0 +listener_manager.total_listeners_warming: 0 +runtime.admin_overrides_active: 0 +runtime.load_error: 0 +runtime.load_success: 0 +runtime.num_keys: 0 +runtime.override_dir_exists: 0 +runtime.override_dir_not_exists: 0 +server.days_until_first_cert_expiring: 2147483647 +server.live: 1 +server.memory_allocated: 3120760 +server.memory_heap_size: 4194304 +server.parent_connections: 0 +server.total_connections: 0 +server.uptime: 5025 +server.version: 16364036 +server.watchdog_mega_miss: 4 +server.watchdog_miss: 4 +stats.overflow: 0 +http2.header_overflow: 0 +http2.headers_cb_no_stream: 0 +http2.rx_reset: 0 +http2.too_many_header_frames: 0 +http2.trailers: 0 +http2.tx_reset: 0 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/doc.go new file mode 100644 index 00000000..380fe05f --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/doc.go @@ -0,0 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 envoyproxy is a Metricbeat module that contains MetricSets. +package envoyproxy diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/fields.go new file mode 100644 index 00000000..cd38beb5 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package envoyproxy + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "envoyproxy", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzEmV9v2zgSwN/zKQZ9SoFLL80Bh4MfDijSAC1wPSw2eVjsYkHQ5MjiRuJoyZEd76dfDCkpji07ThsrfigSV5z5zWj+Mhdwj+sZoF/Sugn0sD4DYMcVzuDd45fvzgAsRhNcw478DP57BgCADw0GV6NnXf32+1n+bjgENdm2wjOAwmFl4yz9/wV4XeOWRvnwusEZLAK1TffNiMansjblRQxLDMPXY/L2ysyfa/KsnY8ZDbINWSxE1hw3nt6m2CQxVRsZg6q114snSPux9snclKsNuyWqTnyEnQd74c4z7ip+xvr+8/+2nmMAKsC0IaDnat1phvOVDjXa972FcS9q7wJtLdrTcN4R62oggaQJztFxiQGWTqdX5gwY8oVbAAW4/nz7/lnimqwr3ETQvTI4F+Cj+ALWtJwIr9N1BJ0EhvMLtTcwThaanWY498RdnI7E52ieFq7CuI6M9aulaFG1sUSr5mvFrh6189Vekx+8IapiEhm8rjIEzNuiSIkREFbBMaMHJtDJbLAtym/5UTlPLe+1KiA16FWhXXXayNs2qYNd6QhZuTDPEQRnhGSIxuAYVXbAtMDZt5o1OMnuZSa+kX6y5wU9Y4ShuqmQ38ztXeQ8Q8kiZnD4iRrTdc55SMogur9QiEedCs7DfM34TAEIrReDXy37K9JWYQg0Ud6LPtDMWDccgUvNEDC2FaMVD2gP4zBPeGNrDMYTVewjiFcYEDqIoq32wvq2Vve4Pv3Yk5Q8NhhBPlBraIkhOIvKuqDwwUWe0JWdC62z0EaUF97jgHUBDVNYH0fuid+SXpr3yy3QtnZe9Qeiyu3/aANGa0LlIqM/wfQ+CD75TNxrOmoo/t+hsW5gNgE1Y5oA2nC8h78DvuvzvWag+R9oWCxxcjhKP11RuD+0fWxjT1DitnjjRkWT/Sm9h5eQT7GGPMbJ0z3kuJCYYBF5BHyyiRzky6PIcPKlNeFFlAdW5QHgaFAbtPPOL6ZD7TV+B2y3dU2/5u2ijlbx7esa+KHSLR2mqGg15QyedgYw2qe9tqrIaEboCniUGt6tcBpiSYH1Io3DsdQygddYbzbOcR9tX5gd5aQRgZtCrV5HJWN1pQoXIiuDQSaLxoUJ4kW0Q9IOXCJ4fGAQAFe45L45Sgzlzm5h5aoKEtpufXgsd6cqHh/BFYmyu2F0MU1Bu+n5D7gEkga+cnE/aH7jqo+UE9XlfgfTNbWexeWDwo5gd/XaQ1qibpRscaclDZj8a0H05a3xWcJGy1FlyHs0aeo46XXbo5qU/iUCVbYrAE0gGSOAPJSUrGEd9t/U5Dr9NuBz4hI8rkB7u2vBAXe3zcgW/kqkfRh0SZZVSQRENOTtfqglhuho9+LjVai+5sMQsJH49JI+ncK+Ecx1RCuv/fb6GwRculGax/tXNqWlhapxoVXtvmPY3RX1I1JKYtUFq8KGTHna17uRG/BU3WjrK5mbq1cbD0rUFoOadkrYTD6JIe7nAakfmSh2/a7SQYKNS+1zTs5mX5ib/O/VbHY9iPpaN9VsdssBdZ1//vbpF/Xl5tPnm5/V7ddfb+D83/+63z98d3qVmStPKiY507gjXXRFWJUYZErKIGB0Vc21uZfmKj+nps8ltQzag46RjEu9K6N+gLvSReCgzX2UJ1qPDw0aeYJM7sxmuDtPEmCNDK23Ti88ScbO290pZ7hvfFA1xqgXzi+mvCd0fqkrZyGgQSe9sAhaZsx0/bJ0VGUf5BiA//Rd6Mvd3U//vILYoOk8kyamfMWYLhiBH1QKvkMmjz9wEkNzIuSX2Rs5GD1f5+g/0DxJ1dqn0UQSOguYcujXPjn9aiO7JXSf5He2R/KaiWSWXQ/pnoE/9LvDMEnGtmkocMx/0pajmqGmyEC+Lxb5MBQU4OPl5cU1eXa+xfSEJ3/x8fJSOBryEcGQ3TqXer7H7jdJMkkjVx1cKvc9cBoPd9ogInpprAH/bDFyBENptSwC1WBp5ffUrQH7zUOag/axdsybUf13AAAA//+UGApY" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/data.json new file mode 100644 index 00000000..9c81813c --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/data.json @@ -0,0 +1,74 @@ +{ + "@timestamp": "2018-07-06T14:01:31.031Z", + "beat":{ + "hostname":"beathost", + "name":"beathost" + }, + "metricset":{ + "host":"localhost", + "module":"envoyproxy", + "name":"server", + "rtt":44269 + }, + "envoyproxy": { + "server": { + "filesystem": { + "write_buffered": 30, + "write_completed": 29, + "write_total_buffered": 0, + "flushed_by_timer": 311, + "reopen_failed": 0 + }, + "runtime": { + "override_dir_not_exists": 0, + "admin_overrides_active": 0, + "load_error": 0, + "load_success": 0, + "num_keys": 0, + "override_dir_exists": 0 + }, + "listener_manager": { + "listener_modified": 0, + "listener_removed": 0, + "total_listeners_active": 1, + "total_listeners_draining": 0, + "total_listeners_warming": 0, + "listener_added": 1, + "listener_create_failure": 0, + "listener_create_success": 4 + }, + "stats": { + "overflow": 0 + }, + "server": { + "version": 4151803, + "memory_allocated": 3170848, + "watchdog_miss": 0, + "uptime": 3146, + "watchdog_mega_miss": 0, + "hot_restart_epoch": 0, + "days_until_first_cert_expiring": 2147483647, + "live": 1, + "memory_heap_size": 4194304, + "parent_connections": 0, + "total_connections": 0 + }, + "http2": { + "header_overflow":0, + "headers_cb_no_stream":0, + "rx_reset":0, + "too_many_header_frames":0, + "trailers":0, + "tx_reset":0 + }, + "cluster_manager": { + "active_clusters": 1, + "cluster_added": 1, + "cluster_modified": 0, + "cluster_removed": 0, + "warming_clusters": 0 + } + } + }, + "type":"metricsets" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/docs.asciidoc new file mode 100644 index 00000000..a0c6c79d --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/docs.asciidoc @@ -0,0 +1,3 @@ +=== envoyproxy server MetricSet + +This is the server metricset of the module envoyproxy. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/fields.yml new file mode 100644 index 00000000..6c9efefe --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/_meta/fields.yml @@ -0,0 +1,198 @@ +- name: server + type: group + description: > + Contains envoy proxy server stats + fields: + - name: cluster_manager + type: group + fields: + - name: active_clusters + type: integer + description: > + Number of currently active (warmed) clusters + - name: cluster_added + type: integer + description: > + Total clusters added (either via static config or CDS) + - name: cluster_modified + type: integer + description: > + Total clusters modified (via CDS) + - name: cluster_removed + type: integer + description: > + Total clusters removed (via CDS) + - name: warming_clusters + type: integer + description: > + Number of currently warming (not active) clusters + + - name: filesystem + type: group + fields: + - name: flushed_by_timer + type: integer + description: > + Total number of times internal flush buffers are written to a file due to flush timeout + - name: reopen_failed + type: integer + description: > + Total number of times a file was failed to be opened + - name: write_buffered + type: integer + description: > + Total number of times file data is moved to Envoys internal flush buffer + - name: write_completed + type: integer + description: > + Total number of times a file was written + - name: write_total_buffered + type: integer + description: > + Current total size of internal flush buffer in bytes + + - name: runtime + type: group + fields: + - name: load_error + type: integer + description: > + Total number of load attempts that resulted in an error + - name: load_success + type: integer + description: > + Total number of load attempts that were successful + - name: num_keys + type: integer + description: > + Number of keys currently loaded + - name: override_dir_exists + type: integer + description: > + Total number of loads that did use an override directory + - name: override_dir_not_exists + type: integer + description: > + Total number of loads that did not use an override directory + - name: admin_overrides_active + type: integer + + - name: listener_manager + type: group + fields: + - name: listener_added + type: integer + description: > + Total listeners added (either via static config or LDS) + - name: listener_create_failure + type: integer + description: > + Total failed listener object additions to workers + - name: listener_create_success + type: integer + description: > + Total listener objects successfully added to workers + - name: listener_modified + type: integer + description: > + Total listeners modified (via LDS) + - name: listener_removed + type: integer + description: > + Total listeners removed (via LDS) + - name: total_listeners_active + type: integer + description: > + Number of currently active listeners + - name: total_listeners_draining + type: integer + description: > + Number of currently draining listeners + - name: total_listeners_warming + type: integer + description: > + Number of currently warming listeners + + - name: stats + type: group + fields: + - name: overflow + type: integer + description: > + Total number of times Envoy cannot allocate a statistic due to a shortage of shared memory + + - name: server + type: group + fields: + - name: days_until_first_cert_expiring + type: integer + description: > + Number of days until the next certificate being managed will expire + - name: live + type: integer + description: > + 1 if the server is not currently draining, 0 otherwise + - name: memory_allocated + type: integer + description: > + Current amount of allocated memory in bytes + - name: memory_heap_size + type: integer + description: > + Current reserved heap size in bytes + - name: parent_connections + type: integer + description: > + Total connections of the old Envoy process on hot restart + - name: total_connections + type: integer + description: > + Total connections of both new and old Envoy processes + - name: uptime + type: integer + description: > + Current server uptime in seconds + - name: version + type: integer + description: > + Integer represented version number based on SCM revision + - name: watchdog_mega_miss + type: integer + - name: watchdog_miss + type: integer + - name: hot_restart_epoch + type: integer + description: > + Current hot restart epoch + + - name: http2 + type: group + fields: + - name: header_overflow + type: integer + description: > + Total number of connections reset due to the headers being larger than Envoy::Http::Http2::ConnectionImpl::StreamImpl::MAX_HEADER_SIZE (63k) + - name: headers_cb_no_stream + type: integer + description: > + Total number of errors where a header callback is called without an associated stream. This tracks an unexpected occurrence due to an as yet undiagnosed bug + - name: rx_messaging_error + type: integer + description: > + Total number of invalid received frames that violated section 8 of the HTTP/2 spec. This will result in a tx_reset + - name: rx_reset + type: integer + description: > + Total number of reset stream frames received by Envoy + - name: too_many_header_frames + type: integer + description: > + Total number of times an HTTP2 connection is reset due to receiving too many headers frames. Envoy currently supports proxying at most one header frame for 100-Continue one non-100 response code header frame and one frame with trailers + - name: trailers + type: integer + description: > + Total number of trailers seen on requests coming from downstream + - name: tx_reset + type: integer + description: > + Total number of reset stream frames transmitted by Envoy diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/data.go b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/data.go new file mode 100644 index 00000000..07f49a71 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/data.go @@ -0,0 +1,115 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server + +import ( + "regexp" + "strings" + + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstrstr" +) + +var ( + schema = s.Schema{ + "cluster_manager": s.Object{ + "active_clusters": c.Int("active_clusters"), + "cluster_added": c.Int("cluster_added"), + "cluster_modified": c.Int("cluster_modified"), + "cluster_removed": c.Int("cluster_removed"), + "warming_clusters": c.Int("warming_clusters"), + }, + "filesystem": s.Object{ + "flushed_by_timer": c.Int("flushed_by_timer"), + "reopen_failed": c.Int("reopen_failed"), + "write_buffered": c.Int("write_buffered"), + "write_completed": c.Int("write_completed"), + "write_total_buffered": c.Int("write_total_buffered"), + }, + "runtime": s.Object{ + "load_error": c.Int("load_error"), + "load_success": c.Int("load_success"), + "num_keys": c.Int("num_keys"), + "override_dir_exists": c.Int("override_dir_exists"), + "override_dir_not_exists": c.Int("override_dir_not_exists"), + "admin_overrides_active": c.Int("admin_overrides_active", s.Optional), + }, + "listener_manager": s.Object{ + "listener_added": c.Int("listener_added"), + "listener_create_failure": c.Int("listener_create_failure"), + "listener_create_success": c.Int("listener_create_success"), + "listener_modified": c.Int("listener_modified"), + "listener_removed": c.Int("listener_removed"), + "total_listeners_active": c.Int("total_listeners_active"), + "total_listeners_draining": c.Int("total_listeners_draining"), + "total_listeners_warming": c.Int("total_listeners_warming"), + }, + "stats": s.Object{ + "overflow": c.Int("overflow"), + }, + "server": s.Object{ + "days_until_first_cert_expiring": c.Int("days_until_first_cert_expiring"), + "live": c.Int("live"), + "memory_allocated": c.Int("memory_allocated"), + "memory_heap_size": c.Int("memory_heap_size"), + "parent_connections": c.Int("parent_connections"), + "total_connections": c.Int("total_connections"), + "uptime": c.Int("uptime"), + "version": c.Int("version"), + "watchdog_mega_miss": c.Int("watchdog_mega_miss", s.Optional), + "watchdog_miss": c.Int("watchdog_miss", s.Optional), + "hot_restart_epoch": c.Int("hot_restart_epoch", s.Optional), + }, + "http2": s.Object{ + "header_overflow": c.Int("header_overflow", s.Optional), + "headers_cb_no_stream": c.Int("headers_cb_no_stream", s.Optional), + "rx_messaging_error": c.Int("rx_messaging_error", s.Optional), + "rx_reset": c.Int("rx_reset", s.Optional), + "too_many_header_frames": c.Int("too_many_header_frames", s.Optional), + "trailers": c.Int("trailers", s.Optional), + "tx_reset": c.Int("tx_reset", s.Optional), + }, + } +) +var reStats *regexp.Regexp = regexp.MustCompile(`cluster_manager.*|filesystem.*|runtime.*|listener_manager.*|stats.*|server.*|http2\..*`) + +func eventMapping(response []byte) (common.MapStr, error) { + data := map[string]interface{}{} + var events common.MapStr + var err error + + data = findStats(data, response) + events, err = schema.Apply(data) + if err != nil { + return nil, err + } + return events, nil +} + +func findStats(data common.MapStr, response []byte) common.MapStr { + matches := reStats.FindAllString(string(response), -1) + for i := 0; i < len(matches); i++ { + entries := strings.Split(matches[i], ": ") + if len(entries) == 2 { + temp := strings.Split(entries[0], ".") + data[temp[len(temp)-1]] = entries[1] + } + } + return data +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/server.go b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/server.go new file mode 100644 index 00000000..f1fc8249 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/envoyproxy/server/server.go @@ -0,0 +1,80 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server + +import ( + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/metricbeat/helper" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/mb/parse" +) + +const ( + defaultScheme = "http" + defaultPath = "/stats" +) + +var ( + hostParser = parse.URLHostParserBuilder{ + DefaultScheme: defaultScheme, + DefaultPath: defaultPath, + }.Build() +) + +func init() { + mb.Registry.MustAddMetricSet("envoyproxy", "server", New, + mb.WithHostParser(hostParser), + mb.DefaultMetricSet(), + ) +} + +type MetricSet struct { + mb.BaseMetricSet + http *helper.HTTP +} + +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Experimental("The envoyproxy server metricset is experimental.") + + config := struct{}{} + if err := base.Module().UnpackConfig(&config); err != nil { + return nil, err + } + http, err := helper.NewHTTP(base) + if err != nil { + return nil, err + } + + return &MetricSet{ + base, + http, + }, nil +} + +func (m *MetricSet) Fetch() (common.MapStr, error) { + content, err := m.http.FetchContent() + if err != nil { + return nil, err + } + event, err := eventMapping(content) + if err != nil { + return nil, err + } + return event, nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/doc.go index e877a465..1b6de3f7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 etcd is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/fields.go new file mode 100644 index 00000000..13d32940 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package etcd + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "etcd", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzMl8+O2zYQxu9+isFe2h7iB/ChlzTHAkWQW1E0Y/KTRSxFKuTQjt++oCx5LZvyn5WDhofFQuZ885shORx+oFfsVwRRekEkRixW9PJJlH5ZEGlEFUwrxrsV/b4gom4m/el1slgQBVhwxIrWEF4QRYgYt4kr+vslRvvyz4KoMrA6rjrrD+S4wdFfHrJvsaJN8KntvxS85vE1G30l5Z2wcZGisJgoRkWSmoV2CKAA1lQF39CnNxenBKcUFqwRjp9LLFd48vg4wHRpOeidgC1PJp+nahjncKeAlbfW7xDiUvnkJI4mTeHeQM7jSw1yqVkjkK+oYmOhiZ2mmJRCjFWy9Jkroc9/faSAbwlRRsFMgV+DX/biFwZDIMYJNqP1uCGYwe9Wu/ynrG1Z4NT+WammXo/EE1jV1AKBjCOpQcqmKBcR35/YXnvJWwTeYDIXUbGF/reynuUBWZVCgLu0mCnb8HfTpObpssZdlb13ex0Fo7DTHPQf2BrO6/s48WSlebN9xX7ng77cnoNthK2eV6Oy2hMrlNF3BXUTMlvWoOTMtwQyGk5MZRCo8qH7pUEuV9cP8SHLxlV++UDC72Ejo3Ol7M7s4VAMxf6MawInCgcR05wf0WmigkhqH1J4WkxFrvz3eShSm9i7/SWOtYveA9R2yW0Lp/vr6XAnFInKB/8G0dv1eHBzvAYPrM5rUM2R2uDzpYby6nWca3Z6Z7TUgaWcsysV727M9V4Qqc39B5R3+oTTxAwCszVuQ78OdY68s/vfprHb180PBT4m9P3MRfgIp3/s3igF0bWg460Rz+/OEeHPsCsySJff/uB32V3SlzxnyzZ1k5LTqIyDJu8oGrexQzUe+pez1nAU5v++i54fYznYhyv8HUURlBVpV8OdBLXjeHCHQtdwxjSR+XfxwEiNMFwSPhw7psuWRXzAnJ4lP1A6kdNXnnHKpryorvKh6Toy4rVP0mXKtwjdt+JZrNlpCz233dlg8h0zXU9GxoU3y433yiixc/zH+f41LATvJujN5zGkVvMMht58HoMKmMPQm89k8E3LAex03HH7fpaxzLOYZu6UC6HHuYq6+N6agAcagqLKjkXVCNfD+i8AAP//Sz8tKw==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/data.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/data.go index f88b9fbb..e2f2f6ed 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 leader import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader.go index 415c4c55..f8ba0f3c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 leader import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader_integration_test.go deleted file mode 100644 index 07ec2e3c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader_integration_test.go +++ /dev/null @@ -1,62 +0,0 @@ -// +build integration - -package leader - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "etcd") - - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "etcd") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "etcd", - "metricsets": []string{"leader"}, - "hosts": []string{GetEnvHost() + ":" + GetEnvPort()}, - } -} - -func GetEnvHost() string { - host := os.Getenv("ETCD_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func GetEnvPort() string { - port := os.Getenv("ETCD_PORT") - - if len(port) == 0 { - port = "2379" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader_test.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader_test.go deleted file mode 100644 index 481c4775..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/leader/leader_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package leader - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "testing" -) - -func TestEventMapping(t *testing.T) { - content, err := ioutil.ReadFile("../_meta/test/leaderstats.json") - assert.NoError(t, err) - - event := eventMapping(content) - - assert.Equal(t, event["leader"], string("924e2e83e93f2560")) -} - -func TestFetchEventContent(t *testing.T) { - absPath, err := filepath.Abs("../_meta/test/") - - response, err := ioutil.ReadFile(absPath + "/leaderstats.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "etcd", - "metricsets": []string{"leader"}, - "hosts": []string{server.URL}, - } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/data.json index c2e0598d..350fb8b4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/data.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/data.json @@ -17,14 +17,14 @@ "appendrequest": { "count": 0 }, - "bandwithrate": 0, + "bandwidthrate": 0, "pkgrate": 0 }, "send": { "appendrequest": { "count": 0 }, - "bandwithrate": 0, + "bandwidthrate": 0, "pkgrate": 0 }, "starttime": "2017-12-07T07:20:32.340598119Z", diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/fields.yml index 7415c100..a35bbcd3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/_meta/fields.yml @@ -29,7 +29,7 @@ type: integer description: > number of append requests this node has processed - - name: recv.bandwithrate + - name: recv.bandwidthrate type: scaled_float description: > number of bytes per second this node is receiving (follower only) @@ -42,7 +42,7 @@ type: integer description: > number of requests that this node has sent - - name: send.bandwithrate + - name: send.bandwidthrate type: scaled_float description: > number of bytes per second this node is sending (leader only). This value is undefined on single member clusters. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/data.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/data.go index 9db7fbbf..e6c655c1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 self import ( @@ -18,7 +35,7 @@ type AppendRequest struct { type Recv struct { Appendrequest AppendRequest - Bandwithrate float64 `json:"recvBandwithRate"` + Bandwidthrate float64 `json:"recvBandwidthRate"` Pkgrate float64 `json:"recvPkgRate"` } @@ -28,7 +45,7 @@ type sendAppendRequest struct { type Send struct { AppendRequest sendAppendRequest - BandwithRate float64 `json:"sendBandwidthRate"` + BandwidthRate float64 `json:"sendBandwidthRate"` PkgRate float64 `json:"sendPkgRate"` } @@ -57,15 +74,15 @@ func eventMapping(content []byte) common.MapStr { "appendrequest": common.MapStr{ "count": data.Recv.Appendrequest.Count, }, - "bandwithrate": data.Recv.Bandwithrate, - "pkgrate": data.Recv.Pkgrate, + "bandwidthrate": data.Recv.Bandwidthrate, + "pkgrate": data.Recv.Pkgrate, }, "send": common.MapStr{ "appendrequest": common.MapStr{ "count": data.Send.AppendRequest.Cnt, }, - "bandwithrate": data.Send.BandwithRate, - "pkgrate": data.Send.PkgRate, + "bandwidthrate": data.Send.BandwidthRate, + "pkgrate": data.Send.PkgRate, }, "starttime": data.StartTime, "state": data.State, diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self.go index f890c98e..801d88bf 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 self import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self_integration_test.go deleted file mode 100644 index 24eaa0ca..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self_integration_test.go +++ /dev/null @@ -1,62 +0,0 @@ -// +build integration - -package self - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "etcd") - - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "etcd") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "etcd", - "metricsets": []string{"self"}, - "hosts": []string{GetEnvHost() + ":" + GetEnvPort()}, - } -} - -func GetEnvHost() string { - host := os.Getenv("ETCD_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func GetEnvPort() string { - port := os.Getenv("ETCD_PORT") - - if len(port) == 0 { - port = "2379" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self_test.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self_test.go deleted file mode 100644 index 1d290b38..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/self/self_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package self - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "testing" -) - -func TestEventMapping(t *testing.T) { - content, err := ioutil.ReadFile("../_meta/test/selfstats.json") - assert.NoError(t, err) - - event := eventMapping(content) - - assert.Equal(t, event["id"], string("8e9e05c52164694d")) -} - -func TestFetchEventContent(t *testing.T) { - absPath, err := filepath.Abs("../_meta/test/") - - response, err := ioutil.ReadFile(absPath + "/selfstats.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "etcd", - "metricsets": []string{"self"}, - "hosts": []string{server.URL}, - } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/data.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/data.go index f1658274..202fcefe 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 store import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store.go index 842fb4c2..fe82c1ba 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 store import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store_integration_test.go deleted file mode 100644 index 778ca003..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store_integration_test.go +++ /dev/null @@ -1,62 +0,0 @@ -// +build integration - -package store - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "etcd") - - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "etcd") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "etcd", - "metricsets": []string{"store"}, - "hosts": []string{GetEnvHost() + ":" + GetEnvPort()}, - } -} - -func GetEnvHost() string { - host := os.Getenv("ETCD_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func GetEnvPort() string { - port := os.Getenv("ETCD_PORT") - - if len(port) == 0 { - port = "2379" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store_test.go b/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store_test.go deleted file mode 100644 index 65a19526..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/etcd/store/store_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package store - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "testing" -) - -func TestEventMapping(t *testing.T) { - content, err := ioutil.ReadFile("../_meta/test/storestats.json") - assert.NoError(t, err) - - event := eventMapping(content) - - assert.Equal(t, event["gets"].(common.MapStr)["fail"], int64(3)) -} - -func TestFetchEventContent(t *testing.T) { - absPath, err := filepath.Abs("../_meta/test/") - - response, err := ioutil.ReadFile(absPath + "/storestats.json") - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "etcd", - "metricsets": []string{"store"}, - "hosts": []string{server.URL}, - } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/golang/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/golang/doc.go index 8aeb829a..f5e12033 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/golang/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/golang/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 golang is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/golang/expvar/expvar.go b/vendor/github.com/elastic/beats/metricbeat/module/golang/expvar/expvar.go index e7c7dbf4..d1137906 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/golang/expvar/expvar.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/golang/expvar/expvar.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 expvar import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/golang/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/golang/fields.go new file mode 100644 index 00000000..83dd1493 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/golang/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package golang + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "golang", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzkV9tu40YMffdXEHnKokk+wEAX2Lqo+9CmBdIWBYrCoCVKmmYuwpCyrb8vZiQ5jiJp5WwCF1s9KSOHPOfwMuQtPFK9hNxptPkCQJRoWsLVOh5cLQBS4sSrUpSzS/i4AABoPoJxaaVpAcCF87JJnM1UvoQMNYdTT5qQaQlbEgy/IhFlc17CX1fM+urvBUCmSKe8jFZvwaKhEyzhkboMR95VZXsygOe5nVNbdCh36I/HQ/ZGbTbPCwt9Wt3Th3AKIzGpVpaefeuwPFK9dz7tfZtAFJ7fCuqMgstACsWtblB6l3s0wIJeYK+kuHshS0FYfokowX3PXTAJymbOGwz/EoRzTCls61bDu69ExEFweTKIq6/pDFRr9FvMCRKnNSXiPHBlDPr6rvfTIa1OIYkT1JsSK+5rNo1vBsZGvmAf1iuILiCtfBN4tyMPWmUkykRhS+8SYu7jn+JwysPysP+WgnbHZvEaFgDwfYdcWbgfgPlc0MRVVkYFHUEzX09bmS35INt6BXtkKLAsyVI6jsvSQTZ5stHKqLORNQW7hG0tNCT0HOT3dJAuX4OOe6V1ixv2BVn4kbD8pLVL4GNTZmiCiuOUkrLaZB6juVFGmXY4xHcO5B9a40Ho1a+/Q8zVqu1X69U4sverp5+Q5WU5cXhTNgcpCIyzSlz8sySv3EBSzKupsSSGNywrWAUnbSb3esSRk+IucSYYPeHmykyiHtP/HNhjfe1czNORgDkdDuaE4xxuM7rdKTCDh3eX+2c8fL1in6U27sa8vp3an3bkw3Tx/1N8cGzjmoX6LeXVo1u45rpp7WZfqKRortV4j7utoLKUQuadaR2/aqS7wA3ftMSGyxAPuObKhE7/5+HwUDNsSbv9h/FLtLNxASp/KIxxeqj5ZoLRXVxoNlwzfNu8qlQTfNO+24ppnB4LJo8X4PZdpNNNMREFYBi7UJy/AbRpmCKYzszKJ2Lt2naJuDXcOgAgLg5Evzx8psBb+mGQetMqP7H72v3MRBtDcnzpKnF/3CFaH+MRzTwNRuTtIEQPU63gH0rkPSD096k2ZJR2Pj+z6V0syZ+AXtOOLKhGxPQDSOFdlReukpj93ZI9TuRo6j9AJrQf6wRqkoYPXDMaAmRodkPcuh1N3BqhA1+Mh7LRP3CJdiJzwla5uyhK6+ztEend4t8AAAD//8IfSX8=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/_meta/fields.yml index b37a746b..70715dce 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/_meta/fields.yml @@ -33,7 +33,7 @@ description: > Next collection will happen when HeapAlloc > this amount. - name: cpu_fraction - type: long + type: float description: > Fraction of CPU time used by GC. - name: pause diff --git a/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/heap.go b/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/heap.go index 61da13df..fe5fb01d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/heap.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/golang/heap/heap.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 heap import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/golang/util.go b/vendor/github.com/elastic/beats/metricbeat/module/golang/util.go index 308a11ca..18a118d9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/golang/util.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/golang/util.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 golang import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/doc.go index 67de69d7..38533500 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/graphite/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/graphite/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 graphite is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/fields.go new file mode 100644 index 00000000..d044f1bd --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/graphite/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package graphite + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "graphite", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJx8j0sSwiAYg/ecItN9L8DCnePKQ6BEZUoLA1Tt7Z0+p8VqlvnJl1CiYidxD8o/TKIAkkmWEsVpsgoBaMZrMD4Z10gcBIAlgbPTre2DgZYqUuLCpARwM7Q6yuF1iUbV3PT0Sp0fTNf6ydlp2pLWtMjwZFjsPd5P5qgvQv6JWfmE9Qy+Ve0tN7d5S8Xu5YLObn8W9TqOwLFUfAIAAP//VtVwNQ==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/config.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/config.go index 982d1183..7f02a110 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/data.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/data.go index 7527225f..6e6c164e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/data_test.go deleted file mode 100644 index 543c2e08..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/data_test.go +++ /dev/null @@ -1,92 +0,0 @@ -// +build !integration - -package server - -import ( - "math" - "testing" - "time" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func GetMetricProcessor() *metricProcessor { - templates := []TemplateConfig{ - { - Namespace: "foo", - Filter: "test.localhost.*", - Template: ".host.shell.metric", - Delimiter: ".", - }, - { - Namespace: "foo", - Filter: "test.xyz.*", - Template: ".host.metric*", - Delimiter: "_", - Tags: map[string]string{ - "a": "b", - }, - }, - } - - defaultTemplate := DefaultGraphiteCollectorConfig().DefaultTemplate - return NewMetricProcessor(templates, defaultTemplate) -} - -func TestMetricProcessorAddTemplate(t *testing.T) { - processor := GetMetricProcessor() - temp := TemplateConfig{ - Namespace: "xyz", - Filter: "a.b.*", - Template: ".host.shell.metric", - Delimiter: ".", - } - processor.AddTemplate(temp) - out := processor.templates.Search([]string{"a", "b", "c"}) - assert.NotNil(t, out) - assert.Equal(t, out.Namespace, temp.Namespace) -} - -func TestMetricProcessorDeleteTemplate(t *testing.T) { - processor := GetMetricProcessor() - temp := TemplateConfig{ - Namespace: "xyz", - Filter: "a.b.*", - Template: ".host.shell.metric", - Delimiter: ".", - } - processor.AddTemplate(temp) - processor.RemoveTemplate(temp) - out := processor.templates.Search([]string{"a", "b", "c"}) - assert.Nil(t, out) - -} - -func TestMetricProcessorProcess(t *testing.T) { - processor := GetMetricProcessor() - event, err := processor.Process("test.localhost.bash.stats 42 1500934723") - assert.Nil(t, err) - assert.NotNil(t, event) - - tag := event["tag"].(common.MapStr) - assert.Equal(t, len(tag), 2) - assert.Equal(t, tag["host"], "localhost") - assert.Equal(t, tag["shell"], "bash") - - assert.NotNil(t, event["stats"]) - assert.Equal(t, event["stats"], float64(42)) - - ts := float64(1500934723) - timestamp := common.Time(time.Unix(int64(ts), int64((ts-math.Floor(ts))*float64(time.Second)))) - - assert.Equal(t, event["@timestamp"], timestamp) - - event, err = processor.Process("test.localhost.bash.stats 42") - assert.Nil(t, err) - assert.NotNil(t, event) - - assert.NotNil(t, event["stats"]) - assert.Equal(t, event["stats"], float64(42)) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/server.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/server.go index caa2f9bc..af079dda 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/server.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/server.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/tree.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/tree.go index cd84b4db..86ed60a4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/tree.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/tree.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/tree_test.go b/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/tree_test.go deleted file mode 100644 index ea2a87ba..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/graphite/server/tree_test.go +++ /dev/null @@ -1,99 +0,0 @@ -// +build !integration - -package server - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func NewTestTree() *tree { - defaultTemplate := template{ - Parts: []string{"metric*"}, - Namespace: "foo", - Delimiter: ".", - } - - return NewTree(defaultTemplate) -} -func TestTreeInsert(t *testing.T) { - test := NewTestTree() - temp := template{ - Delimiter: "_", - Namespace: "foo", - Parts: []string{"", "host", "metric*"}, - } - test.Insert("test.localhost.*", temp) - - assert.Equal(t, len(test.root.children), 1) - child := test.root.children["test"] - assert.NotNil(t, child) - assert.Nil(t, child.GetTemplate()) - - cur := child - assert.Equal(t, len(cur.children), 1) - child = cur.children["localhost"] - assert.NotNil(t, child) - assert.Nil(t, child.GetTemplate()) - - cur = child - assert.Equal(t, len(cur.children), 1) - child = cur.children["*"] - assert.NotNil(t, child) - assert.NotNil(t, child.GetTemplate()) - assert.Equal(t, &temp, child.GetTemplate()) - - cur = child - assert.Equal(t, len(cur.children), 0) - test.Insert("test.localhost.*.foo", temp) - assert.Equal(t, len(cur.children), 1) - - test.Insert("a.b.c.d", temp) - assert.Equal(t, len(test.root.children), 2) -} - -func TestTreeSearch(t *testing.T) { - test := NewTestTree() - temp := template{ - Delimiter: "_", - Namespace: "foo", - Parts: []string{"", "host", "metric*"}, - } - test.Insert("test.localhost.*", temp) - - // Search for a valid scenario - outTemp := test.Search([]string{"test", "localhost", "bash", "stats"}) - assert.NotNil(t, outTemp) - assert.Equal(t, outTemp, &temp) - - // Search for a case where only half the tree is traversed and there is no entry - outTemp = test.Search([]string{"test"}) - assert.Nil(t, outTemp) - - // Search for a default case where root data is returned - outTemp = test.Search([]string{"a.b.c.d"}) - assert.NotNil(t, outTemp) - assert.Equal(t, outTemp, test.root.entry.value) -} - -func TestTreeDelete(t *testing.T) { - test := NewTestTree() - temp := template{ - Delimiter: "_", - Namespace: "foo", - Parts: []string{"", "host", "metric*"}, - } - test.Insert("test.localhost.*", temp) - test.Delete("test.localhost.*") - - assert.Equal(t, len(test.root.children), 0) - - test.Insert("test.localhost.*", temp) - test.Insert("test.*", temp) - test.Delete("test.*") - - assert.Equal(t, len(test.root.children), 1) - assert.NotNil(t, test.root.FindChild("test")) - -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/doc.go index 019acc1f..d77763e9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 haproxy is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/fields.go new file mode 100644 index 00000000..559136b1 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package haproxy + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "haproxy", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzsXNtu27jTv+9TDHqzzsJxD5ttgQAt0Ka73xZNkyBxsJcGLY0jIhSpJak43qf/QFInK9TBseTsxV83bSxp5sfhcM72Mdzj5hQikkjxuHkFoKlmeAqv//pyZT55/QogRBVImmgq+Cl8fgUAkN2FnyJMGb4CUJGQehEIvqJ3p7AiTJlPJTIkCk/hjrwCWFFkoTq1BI6BkxirjM2lN4l5WIo0yT7x8K7yj1FLGqhZdqPKocqF8pUoPvSxaWFlrv9DjpIwS0fGxDwCZClSXQBJpAhQKSygmGt7+flVB1kFWpDZupsjZoLf1W60gDbXRRovUYJY+QC2IVjwNB4Iw5WjCNxi6WJPw4HZfv/WwVKmfPFPiinuydhLXBN1v+9megmniaYxzhQGA8nrLJUSuc4IA+WgMBA87FKYGGMhN7OYPM6WG91fc91JOgXfSx1Qf5JHGqcxkFikXBvtdiAgVeTOQrdEYaIjhF9+YhyTx8XPr7/AA2EpQiD4A0qNIWjhnjzqWGPKaEz1gg8k6hw/L06nSJDDijJURi5gcGcHsQNZIOJEovJLvW7hWqDVN8djo6psl0mdYzvX/pzbuMOWSffebtmU3XGU3ESqD8lOEo0Lq3Njci11iHMMzKMH1iKzzBdWI2sRDrm1o+9qnWFMHsdmVyiScyGNW9rAqsNaQsU5laraZBireLTQhI2AZm7o7ohFKTYbXz43N+fPwDWunJ6Hya+2+yLKPe/umMbFsxuWiMhwMRwgf1SM/6SotPIqxyARrBLBPWrl2elByBcLGIl+QpOGYHcHh+muLj+ZKqxnRSU3yjXeodzDU+ZsVhKb3fFwbNoUdz8uhWahUs+NZp4RwsyagoihJWeZNQUQozAbZ6/8m6b8Vua/umEH3K6DbVYfGyG4Rt5sjvqE7c+M1e9xs2jdvj7L7b9kL+uuaHpoxpkpW0hMFc6SoD11UAFhGC5WTJCmB/OyS4Iy8Mei/YEW1QAS3P9PJwZgbOLBM8H5tS8xLrIsEkQYLpgQ92lLGaZHDNjOYhFTTyX6eQzaTf+/jC4XMcYLW7/bN6ba0SEcynmPH/bQkPlMRKdpaDcJDQgKA6W36O3cWrnRRCsIBGMYaAyNg4mH6Kr4YwxNdOoP2u9xsxaybsM6UrgbSw8mt1dT+Hb598UULi7Pv07h55fvF/MpCOn+N3mg5Gg2m3WVmddI7yL/9u1eZHbJtyMJk5WQuZlWRxaZQvmAcusB91FnNTwUa65pvG+/ZBtoThQmZefhaAZ/VnBPQUdUZUV8qmyVvAELFGX0dSQY5iSmwIW2H6s0BrHaIlG8komhR+VdcOR6YRbulYX/WHf1YXK6lghM3n7KY64pvPtULOT9JwfT7uVvn1wy/YZRpZGj7NrCvMvX0G17FvCy4QaTt1aYKyqVBsqVJjzAKbwDp2Vmc6dAeAhKgOBdYM1CaYAL89eAZ9dRtTxg8uf15cX8j4tvDnch8K9fzn7knxaiFxII37gXy2PTW/aUH6xR9tW2wSjvQCRSfWBIhmM7JkaUXgQR4Q0BwbNUtGyHZxYGFOUB2lNvGMLt1fFnY8jNHpt/jz/fXoGWhCtqaHZg1pEUWg/ihJ/GQT3btzmGCqGaYYN1hBwUE2uliXyaAVAFJND0Aa2mc5Eb3FX5jnmGcvdU5+F1jn2QOmJ+OZdRtk+N+VZAigUSVfCdAlIdobRC4Lh+QivLsJRdrRWNxOOQqoToIKL8zvmgzCdkLsgGGyAxEVJbP/SEqhF3HV91CyoIu5RKGrsTzgYbjPj+Lfd8dvTmTQaJrhwryu/M9iInS9YJ7hmtw9ZADQ7QvTlL45QRo7qVHdqtAC9RS9pSk30+uIsnOl0iAy22dTyD0acTRmOckQcfqH0Rf3lAaYxMhhPy6ZFYgTBAC9v67u37k7Iq365X2WPDK1WIfJyNu84WlnGAJQYkVZj5mlRSvTEiClC2api7frU2Z3525cwNVVVyBGJjmjAEHSTHmaQMbW3sv0wZzlrJ/jWfd9CNtC4JG99BZELrpBtFbGepwgM0Ox2jUqV8ycITS52deS9hsSqI5cTXVEci1eW5I0rRO97r0GWCGLdz6JyzWNXE3gMeSinkXuWd9qOQMZjBjYixcDlCKbpkCFbtFBCJHeU2o7ZIJNuARhlT7qYvbZnAEAwYRa6nsMSVkC6SyzU3Ika/TazTXOj8FSSS0EGtE218xd22lq55MKh4LGBCYdjsKssXHoikIlWwJKVW10E1n+182cYzuBPbHFzAlq3No50DebQq0Cpz69+4sNGaO232SHupdsRjHbGXn+SaOhhkTTZW7D2EV+7qbLTzVEqwUAodEQ3IA5FyjdJg5pkOa7kxEZwWXlKFky4jiZ5m0xVMvETtbU20DbEJYzmxcpMSliqbM1eCGScu4MJ/gIhSIqBEZzYYCCREahqkjBS1q4lKgwiIA5gzjciDEQD3C8DlLF2VLhhpSK28Xmo2rX6VumXDgkLBEswLNbUoDhlJjDlzN/3WaLzRs/r1dJK2aRkvPi7WBFFigPTBa6kbQmOVCK76t0l6x8YHMWAOfBEbzCsVXR6wNMS6/Q6JJn6zIwlXK5QKyFLYce7lpmrnJ9l3S2bGNs0yY5c9euRXXBepWAeUmafu+ORXWEuq8xWBSdMKZ53NOMFkLfgvGpYmSzIWO6yXZAzEowbyK0JZKhFIkjBr21eUabNsLbJwp6YQ/4l0sNjpfvlgXjKen131McodadzO/bTqdZ0h75fKPUmpvDS70yyTXNkS1Gth0UEQYXBvG7Gv+4wEau3zQ4ccpX73OLa1zwxnvj02Lnj3+AiBCNsS0yrI9y8C8v1uIH97EZC/7Qby5EVAnuwG8vcXAfn7biCtw3kBmM7RGaAKJokUWgSCOT/ms8HeaGTXUcvewch45aMyGsl4FC2AFx8D55X+VG9I7ROGe5TZ7Jd5U2mDfYvGsRorZxomJdph2KpPVpTvw+4JUes6ur8FNMg6KltoOZrolOPat6qewAecddslq+sP2mulbCzV20YNM1fmnTWCjpmFnkLK5o6ymqpVwwgJ05Fb6QwuuYk1Oyurtxc/HObPkPJ7LtZNtcnvF9/zBymnmhJG/6WNPunm8uzHH9fX5uksAbJOpeHp85PLHxltix4SosyBMvaGbFDCyRS4gDQx+24/UaBRaZMKZV3KRsrzy9u5pewovTs+6ajanp+cXV5A7ZVK1SqRYskwntpkBR9JnLAme1Rer89KAhJXqcLwNUx0kIBU+sgG/RcCpEg1mqQuEkq/hgkN4sSfEwKcf+iQ2YfGF2si+QCTm5vzoy6xfLi+uYKt1yh/IIyGZaJ3DNsxRBOpjx3QP7a8eFZ90VgAO5ZBGNs8JbO1R3Dy9sRGPZ2bFVJldOpY8OOTtyeNWGpi/AgTE2K9ufk5v+oU5seaMD/uIcyb+c02qe0Sy7YQbBRYjYmbwy8RNnvw58cU5xbk78cfLYMp0BWQB0KZkXiftD+VpKGDsneRrixT2OI61aCFuDfncUU5VVGDqe2RmtvHZ+bVcbzB3BWBUqabPUJvmCtCx6iBlhGVYYChg9UnvCV3yHW79Ab8CpwFN27SYRfulCyTxTqiDOvjQWnS50D4XfZwaIuBuHIIzt9or07lemlWOnIlqbyGuTWlC0s0vt2sbWpSiciG28Qfm9SGeau0reUjQZQ3ujpiRNdezQrE3mBxz5nDkGjSXLWut3e78m6zpH1DWnf1zsmfjKB1iaaHeCAbxUVpB4dTTv+xvQBFQwTiRtT6VIT9+zYQwL57mHdUq10Nf0E4a3aExuVs9Sly9521k/us3LY0x154rafr7BeRWMyKxki47TybGzrCjbnrJeo8zcYOgAeE5x0wz8gDEySEJWGEB43nF2pfRPPWFg4jCse+5fsDfsOT/YTPkyBv7Ay1YRAduhxI2/R3C7rq9aTtnMWs7nebVm4WxFrFQjg9tr9pjh16aMDoi8LYDuQU5n6XhS03Lrv5D+yXW4xV+RyVXY9dcrkomJxd3b75+rerO/Was8gN38uvsVYst4tdoyw3rXMuuvqjhtv4RzzOIzm/W+eS7ZKaf02visTzRR0YJtVxXws09Pta1+Zf9htvJwb+iYbqVano2pVldd1JTB7t30e1yYLsOxw6smP9q8bovBgjzQmZUP4tTHKvzkX/k9w5XbCXBEy2S7IhA4f02RPnnv/8fwAAAP//v8+AxQ==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/haproxy.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/haproxy.go index 361789eb..9e76758a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/haproxy.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/haproxy.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 haproxy import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/haproxy_test.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/haproxy_test.go deleted file mode 100644 index c00efcc1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/haproxy_test.go +++ /dev/null @@ -1,31 +0,0 @@ -package haproxy - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestHostParser(t *testing.T) { - tests := []struct { - host, expected string - }{ - {"localhost", "tcp://localhost"}, - {"localhost:123", "tcp://localhost:123"}, - {"tcp://localhost:123", "tcp://localhost:123"}, - {"unix:///var/lib/haproxy/stats", "unix:///var/lib/haproxy/stats"}, - } - - m := mbtest.NewTestModule(t, map[string]interface{}{}) - - for _, test := range tests { - hi, err := HostParser(m, test.host) - if err != nil { - t.Error("failed on", test.host, err) - continue - } - assert.Equal(t, test.expected, hi.URI) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/data.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/data.go index 77dbec31..b695108a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 info import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/info.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/info.go index 02b30107..377caec7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/info.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/info.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 info import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/info_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/info_integration_test.go deleted file mode 100644 index 05a60769..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/info/info_integration_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build integration - -package info - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/haproxy" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "haproxy", - "metricsets": []string{"info"}, - "hosts": []string{"tcp://" + haproxy.GetEnvHost() + ":" + haproxy.GetEnvPort()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/data.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/data.go index cf670f44..544a48fc 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stat import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/stat.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/stat.go index 8b74cac2..0e563af0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/stat.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/stat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stat import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/stat_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/stat_integration_test.go deleted file mode 100644 index f2c0f00b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/stat/stat_integration_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build integration - -package stat - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/haproxy" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "haproxy", - "metricsets": []string{"stat"}, - "hosts": []string{"tcp://" + haproxy.GetEnvHost() + ":" + haproxy.GetEnvPort()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/testing.go index e3cc03cc..f5bf9913 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/haproxy/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/haproxy/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 haproxy import "os" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/Dockerfile index c53f935d..d67abee2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/Dockerfile +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.10.2 +FROM golang:1.10.3 COPY test/main.go main.go diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/docs.asciidoc index 07dfaacb..d8b845e8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/docs.asciidoc @@ -6,4 +6,4 @@ This module is inspired by the Logstash https://www.elastic.co/guide/en/logstash This is often necessary in security restricted network setups, where Logstash is not able to reach all servers. Instead the server to be monitored itself has Metricbeat installed and can send the data or a collector server has Metricbeat installed which is deployed in the secured network environment and can reach all servers to be monitored. -NOTE: As the HTTP mertricsets also fetch headers, this can lead to lots of fields in Elasticsearch in case there are many different headers. If this is the case for you and you don't need the headers, we recommend to use processors to filter out the header field. +NOTE: As the HTTP metricsets also fetch headers, this can lead to lots of fields in Elasticsearch in case there are many different headers. If this is the case for you and you don't need the headers, we recommend to use processors to filter out the header field. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/test/main.go b/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/test/main.go index 40e02dee..386061f4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/test/main.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/_meta/test/main.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/http/doc.go index fadec87d..8520ffcd 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 http is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/http/fields.go new file mode 100644 index 00000000..4a51f84c --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package http + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "http", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzMlDFT+zAMxfd8Cl323v2HThn+MxPH0I1jcOPXxm1iG0sp5NtzbkhoUpejB+XwGFm/92QpWtAeXUGViM+IxEiNgvK71eohz4g0uAzGi3G2oP8ZEVEMUeN0WyMjCqihGAVtVUbEEDF2ywU95sx1/pQRbQxqzcUxd0FWNRjV4pHOx+zg2uFLQnNKOSUFPLdgGb+ngBehwzmW9E4iYzcuNCrePLk2159UA6URZszehlvvUMos9KkXolWF3lHPZWJYSQo3kMrppPAe3YsL89hXlXswtQydFF473d1A1quudkpPC/7oNHtnGT/S6h71B3sdUMIcLjx76TRu8OwsSlpO0fGqGh8XwvLfMunIV0HxNZ5G4r0T2rjWftN0wsAvDelZpwbdHU+m6eohjfnxDwymZJzO03TXDufSZmSEw2RSrzZyRhgNrCEpC28BAAD//9KJlTU=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/json/json.go b/vendor/github.com/elastic/beats/metricbeat/module/http/json/json.go index 532fa493..faa8ef72 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/json/json.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/json/json.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 json import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/json/json_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/http/json/json_integration_test.go deleted file mode 100644 index 44e19ae4..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/json/json_integration_test.go +++ /dev/null @@ -1,87 +0,0 @@ -// +build integration - -package json - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestFetchObject(t *testing.T) { - compose.EnsureUp(t, "http") - - f := mbtest.NewEventsFetcher(t, getConfig("object")) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func TestFetchArray(t *testing.T) { - compose.EnsureUp(t, "http") - - f := mbtest.NewEventsFetcher(t, getConfig("array")) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} -func TestData(t *testing.T) { - compose.EnsureUp(t, "http") - - f := mbtest.NewEventsFetcher(t, getConfig("object")) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } - -} - -func getConfig(jsonType string) map[string]interface{} { - var path string - var responseIsArray bool - switch jsonType { - case "object": - path = "/jsonobj" - responseIsArray = false - case "array": - path = "/jsonarr" - responseIsArray = true - } - - return map[string]interface{}{ - "module": "http", - "metricsets": []string{"json"}, - "hosts": []string{getEnvHost() + ":" + getEnvPort()}, - "path": path, - "namespace": "testnamespace", - "json.is_array": responseIsArray, - } -} - -func getEnvHost() string { - host := os.Getenv("HTTP_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func getEnvPort() string { - port := os.Getenv("HTTP_PORT") - - if len(port) == 0 { - port = "8080" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/server/config.go b/vendor/github.com/elastic/beats/metricbeat/module/http/server/config.go index 03b2eddd..cb601fc7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/server/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/server/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/server/data.go b/vendor/github.com/elastic/beats/metricbeat/module/http/server/data.go index 5f8e8311..b3c4d665 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/server/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/server/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/server/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/http/server/data_test.go deleted file mode 100644 index 4ab37e47..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/server/data_test.go +++ /dev/null @@ -1,79 +0,0 @@ -package server - -import ( - "fmt" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func GetMetricProcessor() *metricProcessor { - paths := []PathConfig{ - { - Namespace: "foo", - Path: "/foo", - Fields: common.MapStr{ - "a": "b", - }, - }, - { - Namespace: "bar", - Path: "/bar", - }, - } - - defaultPath := defaultHttpServerConfig().DefaultPath - return NewMetricProcessor(paths, defaultPath) -} - -func TestMetricProcessorAddPath(t *testing.T) { - processor := GetMetricProcessor() - temp := PathConfig{ - Namespace: "xyz", - Path: "/abc", - } - processor.AddPath(temp) - out, _ := processor.paths[temp.Path] - assert.NotNil(t, out) - assert.Equal(t, out.Namespace, temp.Namespace) -} - -func TestMetricProcessorDeletePath(t *testing.T) { - processor := GetMetricProcessor() - processor.RemovePath(processor.paths["bar"]) - _, ok := processor.paths["bar"] - assert.Equal(t, ok, false) -} - -func TestFindPath(t *testing.T) { - processor := GetMetricProcessor() - tests := []struct { - a string - expected PathConfig - }{ - { - a: "/foo/bar", - expected: processor.paths["/foo"], - }, - { - a: "/", - expected: processor.defaultPath, - }, - { - a: "/abc", - expected: processor.defaultPath, - }, - } - - for i, test := range tests { - a, expected := test.a, test.expected - name := fmt.Sprintf("%v: %v = %v", i, a, expected) - - t.Run(name, func(t *testing.T) { - b := processor.findPath(a) - assert.Equal(t, expected, *b) - }) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/http/server/server.go b/vendor/github.com/elastic/beats/metricbeat/module/http/server/server.go index 739e46d4..283ba1d5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/http/server/server.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/http/server/server.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 server import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/_meta/docs.asciidoc index e6756451..42124d9b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/_meta/docs.asciidoc @@ -1,2 +1,13 @@ -This is the Jolokia module. +This module collects metrics from +https://jolokia.org/reference/html/agents.html[Jolokia agents] running on a +target JMX server or dedicated proxy server. The default metricset is `jmx`. + +To collect metrics, {beatname_uc} communicates with a Jolokia HTTP/REST +endpoint that exposes the JMX metrics over HTTP/REST/JSON. + +[float] +=== Compatibility + +The Jolokia module is tested with Jolokia 1.5.0. It should work with version +1.2.2 and later. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/doc.go index 149effe7..e4eb0af8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jolokia is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/fields.go new file mode 100644 index 00000000..b77bb229 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package jolokia + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "jolokia", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJxsjkFuBCEMBO+8osV9P8AhD8gXoihC4CHOMhhhb5T5fUQGRXPYPrbdpbrhTkfAl1S5c3SAsVUK8K9n4x2QSdPgbiwt4MUBwLpil/yo5AD9lGEfSdrGJWCLVWc7qFJUCigTrWTGrWjAm1et/t0BG1PNGv6gN7S401Vmxo4+AUMefTVPfM6sIZI0i9wUO9ngpKCfLkoZ3xz/n2KhZmt8tThNrua/AQAA//9JPFm3" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc index b31a4c88..f2f07f9a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc @@ -1,58 +1,68 @@ -This is the `jmx` metricset of the Jolokia module. +The `jmx` metricset collects metrics from +https://jolokia.org/reference/html/agents.html[Jolokia agents]. [float] === Features and configuration -Tested with Jolokia 1.3.4. +Tested with Jolokia 1.5.0. -Metrics to be collected from each Jolokia instance are defined in the mapping section with an MBean ObjectName and -an array of Attributes to be requested with Elastic field names under which the return values should be saved. +To collect metrics from a Jolokia instance, define a mapping section that +specifies an MBean `ObjectName` followed by an array of attributes to fetch. For +each attribute in the array, specify the Elastic field name where the +returned value will be saved. -For example: to get the "Uptime" attribute from the "java.lang:type=Runtime" MBean and map it to something like -"uptime" (actually "jolokia.jmx.uptime", the prexif is added by beats framework) you have to configure following -mapping: +For example, to get the `Uptime` attribute from the `java.lang:type=Runtime` +MBean and map it to an event field called `jolokia.testnamespace.uptime`, +configure the following mapping: [source,yaml] ---- +---- - module: jolokia metricsets: ["jmx"] hosts: ["localhost:8778"] - namespace: "metrics" + namespace: "testnamespace" <1> jmx.mappings: - mbean: 'java.lang:type=Runtime' attributes: - attr: Uptime - field: uptime - event: uptime + field: uptime <2> + event: uptime <3> target: url: "service:jmx:rmi:///jndi/rmi://targethost:9999/jmxrmi" user: "jolokia" password: "s!cr!t" ---- +---- +<1> The `namespace` setting is required. This setting is used along with the +module name to qualify field names in the output event. +<2> The field where the returned value will be saved. This field will be called +`jolokia.testnamespace.uptime` in the output event. +<3> The `event` setting is optional. Use this setting to group all attributes +with the same `event` value into the same event when sending data to Elastic. -In case the underlying attribute is an object (e.g. see HeapMemoryUsage attribute in java.lang:type=Memory) its -structure will be published to Elastic "as is". +If the underlying attribute is an object (such as the `HeapMemoryUsage` +attribute in `java.lang:type=Memory`), its structure will be published to +Elastic "as is". -It is possible to configure nested metric aliases by using dots in the mapping name (e.g. gc.cms_collection_time). For examples please refer to the +You can configure nested metric aliases by using dots in the mapping name (for +example, `gc.cms_collection_time`). For more examples, see https://github.com/elastic/beats/blob/{doc-branch}/metricbeat/module/jolokia/jmx/_meta/test/config.yml[/jolokia/jmx/test/config.yml]. -All metrics from a single mapping will be POSTed to the defined host/port and sent to Elastic as a single event. -To make it possible to differentiate between metrics from multiple similar applications running on the same host, -please configure multiple modules. +All metrics from a single mapping will be POSTed to the defined host/port and +sent to Elastic as a single event. To make it possible to differentiate between +metrics from multiple similar applications running on the same host, you should +configure multiple modules. -When wildcards are used, an event will be sent to Elastic for each matching mbean, in that case a `mbean` field is added. - -Optionally, an `event` name can be added to each attribute, this makes all metrics with the same `event` -to be grouped in the same event when being sent to Elastic. - -It is required to set a namespace in the general module config section. +When wildcards are used, an event is sent to Elastic for each matching +MBean, and an `mbean` field is added to the event. [float] === Limitations -No authentication against Jolokia is supported yet. -All Jolokia requests have canonicalNaming set to false (details see here: https://jolokia.org/reference/html/protocol.html). +All Jolokia requests have `canonicalNaming` set to `false`. See the +https://jolokia.org/reference/html/protocol.html[Jolokia Protocol] documentation +for more detail about this parameter. [float] === Exposed fields, dashboards, indexes, etc. -Since this is a very general module that can be tailored for any application that exposes its metrics over Jolokia, it -comes with no exposed fields description, dashboards or index patterns. +Because this module is very general and can be tailored for any application that +exposes its metrics over Jolokia, it comes with no exposed field descriptions, +dashboards, or index patterns. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/config.go b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/config.go index 56eb6d65..0ad6a734 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/config.go @@ -1,6 +1,29 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jmx -import "encoding/json" +import ( + "encoding/json" + "fmt" + "regexp" + "sort" + "strings" +) type JMXMapping struct { MBean string @@ -80,18 +103,61 @@ func (m AttributeMapping) Get(mbean, attr string) (Attribute, bool) { return a, found } +// Parse strings with properties with the format key=value, being: +// - key a nonempty string of characters which may not contain any of the characters, +// comma (,), equals (=), colon, asterisk, or question mark. +// - value a string that can be quoted or unquoted, if unquoted it cannot be empty and +// cannot contain any of the characters comma, equals, colon, or quote. +var propertyRegexp = regexp.MustCompile("[^,=:*?]+=([^,=:\"]+|\".*\")") + +func canonicalizeMBeanName(name string) (string, error) { + // From https://docs.oracle.com/javase/8/docs/api/javax/management/ObjectName.html#getCanonicalName-- + // + // Returns the canonical form of the name; that is, a string representation where the + // properties are sorted in lexical order. + // The canonical form of the name is a String consisting of the domain part, + // a colon (:), the canonical key property list, and a pattern indication. + // + parts := strings.SplitN(name, ":", 2) + if len(parts) != 2 || parts[0] == "" || parts[1] == "" { + return name, fmt.Errorf("domain and properties needed in mbean name: %s", name) + } + domain := parts[0] + + // Using this regexp instead of just splitting by commas because values can be quoted + // and contain commas, what complicates the parsing. + properties := propertyRegexp.FindAllString(parts[1], -1) + propertyList := strings.Join(properties, ",") + if len(propertyList) != len(parts[1]) { + // Some property didn't match + return name, fmt.Errorf("mbean properties must be in the form key=value: %s", name) + } + + sort.Strings(properties) + return domain + ":" + strings.Join(properties, ","), nil +} + func buildRequestBodyAndMapping(mappings []JMXMapping) ([]byte, AttributeMapping, error) { responseMapping := make(AttributeMapping) var blocks []RequestBlock + // At least Jolokia 1.5 responses with canonicalized MBean names when using + // wildcards, even when canonicalNaming is set to false, this makes mappings to fail. + // So use canonicalized names everywhere. + // If Jolokia returns non-canonicalized MBean names, then we'll need to canonicalize + // them or change our approach to mappings. config := map[string]interface{}{ "ignoreErrors": true, - "canonicalNaming": false, + "canonicalNaming": true, } for _, mapping := range mappings { + mbean, err := canonicalizeMBeanName(mapping.MBean) + if err != nil { + return nil, nil, err + } rb := RequestBlock{ Type: "read", - MBean: mapping.MBean, + MBean: mbean, Config: config, } @@ -104,7 +170,7 @@ func buildRequestBodyAndMapping(mappings []JMXMapping) ([]byte, AttributeMapping for _, attribute := range mapping.Attributes { rb.Attribute = append(rb.Attribute, attribute.Attr) - responseMapping[attributeMappingKey{mapping.MBean, attribute.Attr}] = attribute + responseMapping[attributeMappingKey{mbean, attribute.Attr}] = attribute } blocks = append(blocks, rb) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/data.go b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/data.go index 8088acfc..74a91a0d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jmx import ( @@ -8,6 +25,7 @@ import ( "github.com/pkg/errors" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" ) const ( @@ -149,7 +167,10 @@ func parseResponseEntry( ) error { field, exists := mapping.Get(requestMbeanName, attributeName) if !exists { - return errors.Errorf("metric key '%v' for mbean '%s' not found in mapping (%+v)", attributeName, requestMbeanName, mapping) + // This shouldn't ever happen, if it does it is probably that some of our + // assumptions when building the request and the mapping is wrong. + logp.Debug("jolokia.jmx", "mapping: %+v", mapping) + return errors.Errorf("metric key '%v' for mbean '%s' not found in mapping", attributeName, requestMbeanName) } var key eventKey diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/data_test.go deleted file mode 100644 index 1762b7bf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/data_test.go +++ /dev/null @@ -1,223 +0,0 @@ -package jmx - -import ( - "io/ioutil" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestEventMapper(t *testing.T) { - absPath, err := filepath.Abs("./_meta/test") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response.json") - - assert.Nil(t, err) - - var mapping = AttributeMapping{ - attributeMappingKey{"java.lang:type=Runtime", "Uptime"}: Attribute{ - Attr: "Uptime", Field: "uptime"}, - attributeMappingKey{"java.lang:type=GarbageCollector,name=ConcurrentMarkSweep", "CollectionTime"}: Attribute{ - Attr: "CollectionTime", Field: "gc.cms_collection_time"}, - attributeMappingKey{"java.lang:type=GarbageCollector,name=ConcurrentMarkSweep", "CollectionCount"}: Attribute{ - Attr: "CollectionCount", Field: "gc.cms_collection_count"}, - attributeMappingKey{"java.lang:type=Memory", "HeapMemoryUsage"}: Attribute{ - Attr: "HeapMemoryUsage", Field: "memory.heap_usage"}, - attributeMappingKey{"java.lang:type=Memory", "NonHeapMemoryUsage"}: Attribute{ - Attr: "NonHEapMemoryUsage", Field: "memory.non_heap_usage"}, - attributeMappingKey{"org.springframework.boot:type=Endpoint,name=metricsEndpoint", "Metrics"}: Attribute{ - Attr: "Metrics", Field: "metrics"}, - attributeMappingKey{"Catalina:type=Server", "serverInfo"}: Attribute{ - Attr: "serverInfo", Field: "server_info"}, - } - - events, err := eventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) - - expected := []common.MapStr{ - { - "uptime": float64(47283), - "gc": common.MapStr{ - "cms_collection_time": float64(53), - "cms_collection_count": float64(1), - }, - "memory": common.MapStr{ - "heap_usage": map[string]interface{}{ - "init": float64(1073741824), - "committed": float64(1037959168), - "max": float64(1037959168), - "used": float64(227420472), - }, - "non_heap_usage": map[string]interface{}{ - "init": float64(2555904), - "committed": float64(53477376), - "max": float64(-1), - "used": float64(50519768), - }, - }, - "metrics": map[string]interface{}{ - "atomikos_nbTransactions": float64(0), - "classes": float64(18857), - "classes_loaded": float64(19127), - "classes_unloaded": float64(270), - }, - "server_info": "Apache Tomcat/9.0.7", - }, - } - - assert.ElementsMatch(t, expected, events) -} - -func TestEventGroupingMapper(t *testing.T) { - absPath, err := filepath.Abs("./_meta/test") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response.json") - - assert.Nil(t, err) - - var mapping = AttributeMapping{ - attributeMappingKey{"java.lang:type=Runtime", "Uptime"}: Attribute{ - Attr: "Uptime", Field: "uptime"}, - attributeMappingKey{"java.lang:type=GarbageCollector,name=ConcurrentMarkSweep", "CollectionTime"}: Attribute{ - Attr: "CollectionTime", Field: "gc.cms_collection_time", Event: "gc"}, - attributeMappingKey{"java.lang:type=GarbageCollector,name=ConcurrentMarkSweep", "CollectionCount"}: Attribute{ - Attr: "CollectionCount", Field: "gc.cms_collection_count", Event: "gc"}, - attributeMappingKey{"java.lang:type=Memory", "HeapMemoryUsage"}: Attribute{ - Attr: "HeapMemoryUsage", Field: "memory.heap_usage", Event: "memory"}, - attributeMappingKey{"java.lang:type=Memory", "NonHeapMemoryUsage"}: Attribute{ - Attr: "NonHEapMemoryUsage", Field: "memory.non_heap_usage", Event: "memory"}, - attributeMappingKey{"org.springframework.boot:type=Endpoint,name=metricsEndpoint", "Metrics"}: Attribute{ - Attr: "Metrics", Field: "metrics"}, - attributeMappingKey{"Catalina:type=Server", "serverInfo"}: Attribute{ - Attr: "serverInfo", Field: "server_info"}, - } - - events, err := eventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) - - expected := []common.MapStr{ - { - "uptime": float64(47283), - "metrics": map[string]interface{}{ - "atomikos_nbTransactions": float64(0), - "classes": float64(18857), - "classes_loaded": float64(19127), - "classes_unloaded": float64(270), - }, - "server_info": "Apache Tomcat/9.0.7", - }, - { - "gc": common.MapStr{ - "cms_collection_time": float64(53), - "cms_collection_count": float64(1), - }, - }, - { - "memory": common.MapStr{ - "heap_usage": map[string]interface{}{ - "init": float64(1073741824), - "committed": float64(1037959168), - "max": float64(1037959168), - "used": float64(227420472), - }, - "non_heap_usage": map[string]interface{}{ - "init": float64(2555904), - "committed": float64(53477376), - "max": float64(-1), - "used": float64(50519768), - }, - }, - }, - } - - assert.ElementsMatch(t, expected, events) -} - -func TestEventMapperWithWildcard(t *testing.T) { - absPath, err := filepath.Abs("./_meta/test") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response_wildcard.json") - - assert.Nil(t, err) - - var mapping = AttributeMapping{ - attributeMappingKey{"Catalina:name=*,type=ThreadPool", "port"}: Attribute{ - Attr: "port", Field: "port"}, - attributeMappingKey{"Catalina:name=*,type=ThreadPool", "maxConnections"}: Attribute{ - Attr: "maxConnections", Field: "max_connections"}, - } - - events, err := eventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) - assert.Equal(t, 2, len(events)) - - expected := []common.MapStr{ - { - "mbean": "Catalina:name=\"http-bio-8080\",type=ThreadPool", - "max_connections": float64(200), - "port": float64(8080), - }, - { - "mbean": "Catalina:name=\"ajp-bio-8009\",type=ThreadPool", - "max_connections": float64(200), - "port": float64(8009), - }, - } - - assert.ElementsMatch(t, expected, events) -} - -func TestEventGroupingMapperWithWildcard(t *testing.T) { - absPath, err := filepath.Abs("./_meta/test") - - assert.NotNil(t, absPath) - assert.Nil(t, err) - - jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response_wildcard.json") - - assert.Nil(t, err) - - var mapping = AttributeMapping{ - attributeMappingKey{"Catalina:name=*,type=ThreadPool", "port"}: Attribute{ - Attr: "port", Field: "port", Event: "port"}, - attributeMappingKey{"Catalina:name=*,type=ThreadPool", "maxConnections"}: Attribute{ - Attr: "maxConnections", Field: "max_connections", Event: "network"}, - } - - events, err := eventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) - assert.Equal(t, 4, len(events)) - - expected := []common.MapStr{ - { - "mbean": "Catalina:name=\"http-bio-8080\",type=ThreadPool", - "port": float64(8080), - }, - { - "mbean": "Catalina:name=\"http-bio-8080\",type=ThreadPool", - "max_connections": float64(200), - }, - { - "mbean": "Catalina:name=\"ajp-bio-8009\",type=ThreadPool", - "port": float64(8009), - }, - { - "mbean": "Catalina:name=\"ajp-bio-8009\",type=ThreadPool", - "max_connections": float64(200), - }, - } - - assert.ElementsMatch(t, expected, events) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/jmx.go b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/jmx.go index 5b84d987..c6f32089 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/jmx.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/jmx.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 jmx import ( @@ -45,7 +62,6 @@ type MetricSet struct { // New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - config := struct { Namespace string `config:"namespace" validate:"required"` Mappings []JMXMapping `config:"jmx.mappings" validate:"required"` diff --git a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/jmx_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/jmx_integration_test.go deleted file mode 100644 index bc588548..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/jolokia/jmx/jmx_integration_test.go +++ /dev/null @@ -1,156 +0,0 @@ -// +build integration - -package jmx - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "jolokia") - - for _, config := range getConfigs() { - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - t.Logf("%s/%s events: %+v", f.Module().Name(), f.Name(), events) - if len(events) == 0 || len(events[0]) <= 1 { - t.Fatal("Empty events") - } - } -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "jolokia") - - for _, config := range getConfigs() { - f := mbtest.NewEventsFetcher(t, config) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } - } -} - -func getConfigs() []map[string]interface{} { - return []map[string]interface{}{ - { - "module": "jolokia", - "metricsets": []string{"jmx"}, - "hosts": []string{getEnvHost() + ":" + getEnvPort()}, - "namespace": "testnamespace", - "jmx.mappings": []map[string]interface{}{ - { - "mbean": "java.lang:type=Runtime", - "attributes": []map[string]string{ - { - "attr": "Uptime", - "field": "uptime", - }, - }, - }, - { - "mbean": "java.lang:type=GarbageCollector,name=ConcurrentMarkSweep", - "attributes": []map[string]string{ - { - "attr": "CollectionTime", - "field": "gc.cms_collection_time", - }, - { - "attr": "CollectionCount", - "field": "gc.cms_collection_count", - }, - }, - }, - { - "mbean": "java.lang:type=Memory", - "attributes": []map[string]string{ - { - "attr": "HeapMemoryUsage", - "field": "memory.heap_usage", - }, - { - "attr": "NonHeapMemoryUsage", - "field": "memory.non_heap_usage", - }, - }, - }, - }, - }, - { - "module": "jolokia", - "metricsets": []string{"jmx"}, - "hosts": []string{getEnvHost() + ":" + getEnvPort()}, - "namespace": "testnamespace", - "jmx.mappings": []map[string]interface{}{ - { - "mbean": "Catalina:name=*,type=ThreadPool", - "attributes": []map[string]string{ - { - "attr": "maxConnections", - "field": "max_connections", - }, - { - "attr": "port", - "field": "port", - }, - }, - }, - { - "mbean": "Catalina:type=Server", - "attributes": []map[string]string{ - { - "attr": "serverNumber", - "field": "server_number_dosntconnect", - }, - }, - "target": &TargetBlock{ - URL: "service:jmx:rmi:///jndi/rmi://localhost:7091/jmxrmi", - User: "monitorRole", - Password: "IGNORE", - }, - }, - { - "mbean": "Catalina:type=Server", - "attributes": []map[string]string{ - { - "attr": "serverInfo", - "field": "server_info_proxy", - }, - }, - "target": &TargetBlock{ - URL: "service:jmx:rmi:///jndi/rmi://localhost:7091/jmxrmi", - User: "monitorRole", - Password: "QED", - }, - }, - }, - }, - } -} - -func getEnvHost() string { - host := os.Getenv("JOLOKIA_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func getEnvPort() string { - port := os.Getenv("JOLOKIA_PORT") - - if len(port) == 0 { - port = "8778" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile deleted file mode 100644 index 4a49c5d6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -FROM debian:stretch - -ENV KAFKA_HOME /kafka -# The advertised host is kafka. This means it will not work if container is started locally and connected from localhost to it -ENV KAFKA_ADVERTISED_HOST kafka -ENV KAFKA_LOGS_DIR="/kafka-logs" -ENV KAFKA_VERSION 0.10.2.1 -ENV _JAVA_OPTIONS "-Djava.net.preferIPv4Stack=true" -ENV TERM=linux - -RUN apt-get update && apt-get install -y curl openjdk-8-jre-headless netcat - -RUN mkdir -p ${KAFKA_LOGS_DIR} && mkdir -p ${KAFKA_HOME} && curl -s -o $INSTALL_DIR/kafka.tgz \ - "http://ftp.wayne.edu/apache/kafka/${KAFKA_VERSION}/kafka_2.11-${KAFKA_VERSION}.tgz" && \ - tar xzf ${INSTALL_DIR}/kafka.tgz -C ${KAFKA_HOME} --strip-components 1 - -ADD run.sh /run.sh -ADD healthcheck.sh /healthcheck.sh - -EXPOSE 9092 -EXPOSE 2181 - -# Healtcheck creates an empty topic foo. As soon as a topic is created, it assumes broke is available -HEALTHCHECK --interval=1s --retries=90 CMD /healthcheck.sh - -ENTRYPOINT ["/run.sh"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile.0.10.2 b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile.0.10.2 new file mode 100644 index 00000000..52ae3ff0 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile.0.10.2 @@ -0,0 +1,25 @@ +FROM debian:stretch + +ENV KAFKA_HOME /kafka +# The advertised host is kafka. This means it will not work if container is started locally and connected from localhost to it +ENV KAFKA_LOGS_DIR="/kafka-logs" +ENV KAFKA_VERSION 0.10.2.1 +ENV _JAVA_OPTIONS "-Djava.net.preferIPv4Stack=true" +ENV TERM=linux + +RUN apt-get update && apt-get install -y curl openjdk-8-jre-headless netcat dnsutils + +RUN mkdir -p ${KAFKA_LOGS_DIR} && mkdir -p ${KAFKA_HOME} && curl -s -o $INSTALL_DIR/kafka.tgz \ + "http://ftp.wayne.edu/apache/kafka/${KAFKA_VERSION}/kafka_2.11-${KAFKA_VERSION}.tgz" && \ + tar xzf ${INSTALL_DIR}/kafka.tgz -C ${KAFKA_HOME} --strip-components 1 + +ADD run.sh /run.sh +ADD healthcheck.sh /healthcheck.sh + +EXPOSE 9092 +EXPOSE 2181 + +# Healthcheck creates an empty topic foo. As soon as a topic is created, it assumes broke is available +HEALTHCHECK --interval=1s --retries=90 CMD /healthcheck.sh + +ENTRYPOINT ["/run.sh"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile.1.1.0 b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile.1.1.0 new file mode 100644 index 00000000..54f0d105 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/Dockerfile.1.1.0 @@ -0,0 +1,25 @@ +FROM debian:stretch + +ENV KAFKA_HOME /kafka +# The advertised host is kafka. This means it will not work if container is started locally and connected from localhost to it +ENV KAFKA_LOGS_DIR="/kafka-logs" +ENV KAFKA_VERSION 1.1.0 +ENV _JAVA_OPTIONS "-Djava.net.preferIPv4Stack=true" +ENV TERM=linux + +RUN apt-get update && apt-get install -y curl openjdk-8-jre-headless netcat dnsutils + +RUN mkdir -p ${KAFKA_LOGS_DIR} && mkdir -p ${KAFKA_HOME} && curl -s -o $INSTALL_DIR/kafka.tgz \ + "http://ftp.wayne.edu/apache/kafka/${KAFKA_VERSION}/kafka_2.11-${KAFKA_VERSION}.tgz" && \ + tar xzf ${INSTALL_DIR}/kafka.tgz -C ${KAFKA_HOME} --strip-components 1 + +ADD run.sh /run.sh +ADD healthcheck.sh /healthcheck.sh + +EXPOSE 9092 +EXPOSE 2181 + +# Healthcheck creates an empty topic foo. As soon as a topic is created, it assumes broke is available +HEALTHCHECK --interval=1s --retries=90 CMD /healthcheck.sh + +ENTRYPOINT ["/run.sh"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/docs.asciidoc index 98a1435c..a8682ea1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/docs.asciidoc @@ -1,3 +1,5 @@ This is the Kafka module. The default metricsets are `consumergroup` and `partition`. + +This module is tested with Kafka 0.10.2 and 1.1.0. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/env b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/env index caf67871..227657f4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/env +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/env @@ -1,2 +1,3 @@ +KAFKA_0_10_2_HOST=kafka_0_10_2 KAFKA_HOST=kafka KAFKA_PORT=9092 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/run.sh b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/run.sh index adec90dd..36b42a6a 100755 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/run.sh +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/_meta/run.sh @@ -1,5 +1,7 @@ #!/bin/bash +KAFKA_ADVERTISED_HOST=$(dig +short $HOSTNAME) + wait_for_port() { count=20 port=$1 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/broker.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/broker.go index 59e33d5a..dd5a15b4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/broker.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/broker.go @@ -1,7 +1,23 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( - "bytes" "crypto/tls" "fmt" "io" @@ -353,7 +369,7 @@ func findMatchingAddress( } // get connection 'port' - _, port, err := net.SplitHostPort(addr) + host, port, err := net.SplitHostPort(addr) if err != nil || port == "" { port = "9092" } @@ -376,6 +392,19 @@ func findMatchingAddress( } } + // try matching ip of configured host with broker list, this would + // match if hosts of advertised addresses are IPs, but configured host + // is a hostname + ips, err := net.LookupIP(host) + if err == nil { + for _, ip := range ips { + addr := net.JoinHostPort(ip.String(), port) + if i, found := indexOf(addr, brokers); found { + return i, true + } + } + } + // try to find broker id by comparing the machines local hostname to // broker hostnames in metadata if host, err := os.Hostname(); err == nil { @@ -449,7 +478,7 @@ func lookupHosts(ips []net.IP) []string { func anyIPsMatch(as, bs []net.IP) bool { for _, a := range as { for _, b := range bs { - if bytes.Equal(a, b) { + if a.Equal(b) { return true } } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/config.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/config.go index 11573a9f..df0ebb85 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 consumergroup import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/consumergroup.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/consumergroup.go index 6e4b5385..613f35a8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/consumergroup.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/consumergroup.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 consumergroup import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/mock_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/mock_test.go deleted file mode 100644 index 9c143ff7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/mock_test.go +++ /dev/null @@ -1,130 +0,0 @@ -package consumergroup - -import ( - "fmt" - "math/rand" - - "github.com/Shopify/sarama" - - "github.com/elastic/beats/metricbeat/module/kafka" -) - -type mockClient struct { - listGroups func() ([]string, error) - describeGroups func(group []string) (map[string]kafka.GroupDescription, error) - fetchGroupOffsets func(group string) (*sarama.OffsetFetchResponse, error) -} - -type mockState struct { - // group -> topics -> partitions -> offset - partitions map[string]map[string][]int64 // topics with group partition offsets - - // groups->client->topic->partitions ids - groups map[string][]map[string][]int32 // group/client assignments to topics and partition IDs -} - -func defaultMockClient(state mockState) *mockClient { - return &mockClient{ - listGroups: makeListGroups(state), - describeGroups: makeDescribeGroups(state), - fetchGroupOffsets: makeFetchGroupOffsets(state), - } -} - -func (c *mockClient) with(fn func(*mockClient)) *mockClient { - fn(c) - return c -} - -func makeListGroups(state mockState) func() ([]string, error) { - names := make([]string, 0, len(state.groups)) - for name := range state.groups { - names = append(names, name) - } - - return func() ([]string, error) { - return names, nil - } -} - -func makeDescribeGroups( - state mockState, -) func([]string) (map[string]kafka.GroupDescription, error) { - groups := map[string]kafka.GroupDescription{} - for name, st := range state.groups { - members := map[string]kafka.MemberDescription{} - for i, member := range st { - clientID := fmt.Sprintf("consumer-%v", i) - memberID := fmt.Sprintf("%v-%v", clientID, rand.Int()) - members[memberID] = kafka.MemberDescription{ - ClientID: clientID, - ClientHost: "/" + clientID, - Topics: member, - } - } - groups[name] = kafka.GroupDescription{Members: members} - } - - return func(group []string) (map[string]kafka.GroupDescription, error) { - ret := map[string]kafka.GroupDescription{} - for _, name := range group { - if g, found := groups[name]; found { - ret[name] = g - } - } - - if len(ret) == 0 { - ret = nil - } - return ret, nil - } -} - -func makeDescribeGroupsFail( - err error, -) func([]string) (map[string]kafka.GroupDescription, error) { - return func(_ []string) (map[string]kafka.GroupDescription, error) { - return nil, err - } -} - -func makeFetchGroupOffsets( - state mockState, -) func(group string) (*sarama.OffsetFetchResponse, error) { - return func(group string) (*sarama.OffsetFetchResponse, error) { - topics := state.partitions[group] - if topics == nil { - return &sarama.OffsetFetchResponse{}, nil - } - - blocks := map[string]map[int32]*sarama.OffsetFetchResponseBlock{} - for topic, partition := range topics { - T := map[int32]*sarama.OffsetFetchResponseBlock{} - blocks[topic] = T - - for i, offset := range partition { - T[int32(i)] = &sarama.OffsetFetchResponseBlock{ - Offset: int64(offset), - } - } - } - - return &sarama.OffsetFetchResponse{Blocks: blocks}, nil - } -} - -func makeFetchGroupOffsetsFail( - err error, -) func(string) (*sarama.OffsetFetchResponse, error) { - return func(_ string) (*sarama.OffsetFetchResponse, error) { - return nil, err - } -} - -func (c *mockClient) ListGroups() ([]string, error) { return c.listGroups() } -func (c *mockClient) DescribeGroups(groups []string) (map[string]kafka.GroupDescription, error) { - return c.describeGroups(groups) -} -func (c *mockClient) FetchGroupOffsets(group string, partitions map[string][]int32) (*sarama.OffsetFetchResponse, error) { - return c.fetchGroupOffsets(group) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/nameset.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/nameset.go index 53435766..b9ddc5a8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/nameset.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/nameset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 consumergroup type nameSet map[string]struct{} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/query.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/query.go index 9a37b088..1a2514c5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/query.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/query.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 consumergroup import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/query_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/query_test.go deleted file mode 100644 index b3a0bdae..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/consumergroup/query_test.go +++ /dev/null @@ -1,266 +0,0 @@ -package consumergroup - -import ( - "fmt" - "io" - "reflect" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func TestFetchGroupInfo(t *testing.T) { - noEvents := func(events []common.MapStr) { - assert.Len(t, events, 0) - } - - tests := []struct { - name string - client client - groups []string - topics []string - err error - expected []common.MapStr - validate func([]common.MapStr) - }{ - { - name: "Test all groups", - client: defaultMockClient(mockState{ - partitions: map[string]map[string][]int64{ - "group1": { - "topic1": {10, 11, 12}, - "topic3": {6, 7}, - }, - "group2": { - "topic2": {3}, - "topic3": {9, 10}, - }, - }, - groups: map[string][]map[string][]int32{ - "group1": { - {"topic1": {0, 2}, "topic3": {1}}, - {"topic1": {1}, "topic3": {0}}, - }, - "group2": { - {"topic2": {0}, "topic3": {0, 1}}, - }, - }, - }), - expected: []common.MapStr{ - testEvent("group1", "topic1", 0, common.MapStr{ - "client": clientMeta(0), - "offset": int64(10), - }), - testEvent("group1", "topic1", 1, common.MapStr{ - "client": clientMeta(1), - "offset": int64(11), - }), - testEvent("group1", "topic1", 2, common.MapStr{ - "client": clientMeta(0), - "offset": int64(12), - }), - testEvent("group1", "topic3", 0, common.MapStr{ - "client": clientMeta(1), - "offset": int64(6), - }), - testEvent("group1", "topic3", 1, common.MapStr{ - "client": clientMeta(0), - "offset": int64(7), - }), - testEvent("group2", "topic2", 0, common.MapStr{ - "client": clientMeta(0), - "offset": int64(3), - }), - testEvent("group2", "topic3", 0, common.MapStr{ - "client": clientMeta(0), - "offset": int64(9), - }), - testEvent("group2", "topic3", 1, common.MapStr{ - "client": clientMeta(0), - "offset": int64(10), - }), - }, - }, - - { - name: "filter topics and groups", - client: defaultMockClient(mockState{ - partitions: map[string]map[string][]int64{ - "group1": { - "topic1": {1, 2}, - "topic2": {3, 4}, - }, - "group2": { - "topic2": {5, 6}, - "topic3": {7, 8}, - }, - }, - groups: map[string][]map[string][]int32{ - "group1": { - {"topic1": {0, 1}, "topic2": {0, 1}}, - }, - "group2": { - {"topic1": {0, 1}, "topic2": {0, 1}}, - }, - }, - }), - groups: []string{"group1"}, - topics: []string{"topic1"}, - expected: []common.MapStr{ - testEvent("group1", "topic1", 0, common.MapStr{ - "client": clientMeta(0), - "offset": int64(1), - }), - testEvent("group1", "topic1", 1, common.MapStr{ - "client": clientMeta(0), - "offset": int64(2), - }), - }, - }, - - { - name: "no events on empty group", - client: defaultMockClient(mockState{}), - validate: noEvents, - }, - - { - name: "fail to list groups", - client: defaultMockClient(mockState{}).with(func(c *mockClient) { - c.listGroups = func() ([]string, error) { - return nil, io.EOF - } - }), - err: io.EOF, - validate: noEvents, - }, - - { - name: "fail if assignment query fails", - client: defaultMockClient(mockState{ - partitions: map[string]map[string][]int64{ - "group1": {"topic1": {1}}, - }, - groups: map[string][]map[string][]int32{ - "group1": {{"topic1": {0}}}, - }, - }).with(func(c *mockClient) { - c.describeGroups = makeDescribeGroupsFail(io.EOF) - }), - err: io.EOF, - validate: noEvents, - }, - - { - name: "fail when fetching group offsets", - client: defaultMockClient(mockState{ - partitions: map[string]map[string][]int64{ - "group1": {"topic1": {1}}, - }, - groups: map[string][]map[string][]int32{ - "group1": {{"topic1": {0}}}, - }, - }).with(func(c *mockClient) { - c.fetchGroupOffsets = makeFetchGroupOffsetsFail(io.EOF) - }), - err: io.EOF, - validate: noEvents, - }, - } - - for i, test := range tests { - t.Logf("run test (%v): %v", i, test.name) - - var events []common.MapStr - collectEvents := func(event common.MapStr) { - t.Logf("new event: %v", event) - events = append(events, event) - } - - indexEvents := func(events []common.MapStr) map[string]common.MapStr { - index := map[string]common.MapStr{} - for _, e := range events { - key := fmt.Sprintf("%v::%v::%v", - e["id"], e["topic"], e["partition"], - ) - index[key] = e - } - return index - } - - groups := makeNameSet(test.groups...).pred() - topics := makeNameSet(test.topics...).pred() - err := fetchGroupInfo(collectEvents, test.client, groups, topics) - if err != nil { - switch { - case test.err == nil: - t.Fatal(err) - case test.err != err: - t.Error(err) - } - continue - } - - indexed := indexEvents(events) - for key, expected := range indexEvents(test.expected) { - event, found := indexed[key] - if !found { - t.Errorf("Missing event: %v", key) - continue - } - assertEvent(t, expected, event) - } - - if test.validate != nil { - test.validate(events) - } - } -} - -func assertEvent(t *testing.T, expected, event common.MapStr) { - for field, exp := range expected { - val, found := event[field] - if !found { - t.Errorf("Missing field: %v", field) - continue - } - - if sub, ok := exp.(common.MapStr); ok { - assertEvent(t, sub, val.(common.MapStr)) - } else { - if !assert.Equal(t, exp, val) { - t.Logf("failed in field: %v", field) - t.Logf("type expected: %v", reflect.TypeOf(exp)) - t.Logf("type event: %v", reflect.TypeOf(val)) - t.Logf("------------------------------") - } - } - } -} - -func testEvent( - group, topic string, - partition int, - fields ...common.MapStr, -) common.MapStr { - event := common.MapStr{ - "id": group, - "topic": topic, - "partition": int32(partition), - } - - for _, extra := range fields { - for k, v := range extra { - event[k] = v - } - } - return event -} - -func clientMeta(id int) common.MapStr { - return common.MapStr{ - "id": fmt.Sprintf("consumer-%v", id), - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/doc.go index ec4807c2..1b1defe5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka is a Metricbeat module that contains MetricSets. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/fields.go new file mode 100644 index 00000000..ea385ac6 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package kafka + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "kafka", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzMl09v2zwMxu/5FERP6aF57z68wNYOQ7BhG7rdC9miEyKyFEhKunz7QbId/5Ns182A+dY6ep4fKYmkH+CAlwQOLD+wFYAlKzCBuy/u77sVAEeTaTpaUjKB/1cAAP4dFIqfBK4AzF5p+5IpmdMugZwJ4/6rUSAzmECK1gnnhIKbxAs8gGQFNqbusZcjJrDT6nSs/hNw7sq0pTIlzalA3RYIy0alyycm1I+nfvpAbahUqwPqzqsY0QSVez56NXisAOGzk4CtzJUumFsEe3ZGSBElaGQccq0KWFfL9kxyQXI3kLV7vAZdYt1vej8KxdiOk/jgVR2nUAHLyVBb4ba0o/6Mc43GRCEOeHlVOgQ5n6PvEdzwQSLG/Dve/V19Gjey6kjZUq9fbrEXGjc5Mm3JLQkaBXa24/KjXj0ZjMpzg3aRyfXglhpA0qqGG1IkufOXYZyg6N7pxt/i7z5Y1/9krCoaDCcEnFkGxur2bQvaotZKbzLFcVHww/PqC+qV5r8mEd4JnNNmHCkThDK8FwtK1gdjaCeRV7J+J9yO4BmlNWWBip2ydxSdmff9sYTaPsG6TJxBax1eSbshfj9de/bK9NO1FKQjFTUssEhRv7w/fJIWtWSiV/0rg/atHSsIb26wIZElzXWkaiw5qWdGgqUCK10DKvetcUdnlA30W1ujxFccOSDL2+M3L1zXvQo2itlKm+B/B+i7F54GWtBqFuxn031cNf4nBpoGiXgkHW0GgYwPhsdbcHz1wkAc1uWAOpj3WokwcQKmNbssRCB/Upw8EDdxf41HQVm/N98iC8+lcjgN8XxIc5HZyxRWqpRA1j/MM8m2klPGLBqgvE4AkAGSmThx5EDS3y2SDw6m/olF179gvf35PCeS6OwBN0jup+u4Ufb4HG22d511bj3w8+3m5vORlw0OQ0Pzznzctp0xYQ+d587c5VHcRD4k3h7x8Csq4Bb+fnpHtFPfTKs/AQAA//+jYgeO" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/kafka.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/kafka.go index d482bf1a..fac31084 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/kafka.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/kafka.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import "github.com/elastic/beats/libbeat/logp" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/config.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/config.go index 5502b170..ce9e00bf 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 partition import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/partition.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/partition.go index 5947efc2..420f62af 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/partition.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/partition.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 partition import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/partition_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/partition_integration_test.go deleted file mode 100644 index 240ad5d9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/partition/partition_integration_test.go +++ /dev/null @@ -1,168 +0,0 @@ -// +build integration - -package partition - -import ( - "fmt" - "math/rand" - "os" - "strconv" - "testing" - "time" - - "github.com/Shopify/sarama" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -const ( - kafkaDefaultHost = "localhost" - kafkaDefaultPort = "9092" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "kafka") - - generateKafkaData(t, "metricbeat-generate-data") - - f := mbtest.NewEventsFetcher(t, getConfig("")) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func TestTopic(t *testing.T) { - - compose.EnsureUp(t, "kafka") - - logp.TestingSetup(logp.WithSelectors("kafka")) - - id := strconv.Itoa(rand.New(rand.NewSource(int64(time.Now().Nanosecond()))).Int()) - testTopic := fmt.Sprintf("test-metricbeat-%s", id) - - // Create initial topic - generateKafkaData(t, testTopic) - - f := mbtest.NewEventsFetcher(t, getConfig(testTopic)) - dataBefore, err := f.Fetch() - if err != nil { - t.Fatal("write", err) - } - if len(dataBefore) == 0 { - t.Errorf("No offsets fetched from topic (before): %v", testTopic) - } - t.Logf("before: %v", dataBefore) - - var n int64 = 10 - var i int64 = 0 - // Create n messages - for ; i < n; i++ { - generateKafkaData(t, testTopic) - } - - dataAfter, err := f.Fetch() - if err != nil { - t.Fatal("write", err) - } - if len(dataAfter) == 0 { - t.Errorf("No offsets fetched from topic (after): %v", testTopic) - } - t.Logf("after: %v", dataAfter) - - // Checks that no new topics / partitions were added - assert.True(t, len(dataBefore) == len(dataAfter)) - - var offsetBefore int64 = 0 - var offsetAfter int64 = 0 - - // Its possible that other topics exists -> select the right data - for _, data := range dataBefore { - if data["topic"].(common.MapStr)["name"] == testTopic { - offsetBefore = data["offset"].(common.MapStr)["newest"].(int64) - } - } - - for _, data := range dataAfter { - if data["topic"].(common.MapStr)["name"] == testTopic { - offsetAfter = data["offset"].(common.MapStr)["newest"].(int64) - } - } - - // Compares offset before and after - if offsetBefore+n != offsetAfter { - t.Errorf("Offset before: %v", offsetBefore) - t.Errorf("Offset after: %v", offsetAfter) - } - assert.True(t, offsetBefore+n == offsetAfter) -} - -func generateKafkaData(t *testing.T, topic string) { - t.Logf("Send Kafka Event to topic: %v", topic) - - config := sarama.NewConfig() - config.Producer.Return.Successes = true - // Retry for 10 seconds - config.Producer.Retry.Max = 20 - config.Producer.Retry.Backoff = 500 * time.Millisecond - config.Metadata.Retry.Max = 20 - config.Metadata.Retry.Backoff = 500 * time.Millisecond - client, err := sarama.NewClient([]string{getTestKafkaHost()}, config) - if err != nil { - t.Errorf("%s", err) - } - - producer, err := sarama.NewSyncProducerFromClient(client) - if err != nil { - t.Error(err) - } - defer producer.Close() - - msg := &sarama.ProducerMessage{ - Topic: topic, - Value: sarama.StringEncoder("Hello World"), - } - - _, _, err = producer.SendMessage(msg) - if err != nil { - t.Errorf("FAILED to send message: %s\n", err) - } - - client.RefreshMetadata(topic) -} - -func getConfig(topic string) map[string]interface{} { - var topics []string - if topic != "" { - topics = []string{topic} - } - - return map[string]interface{}{ - "module": "kafka", - "metricsets": []string{"partition"}, - "hosts": []string{getTestKafkaHost()}, - "topics": topics, - } -} - -func getTestKafkaHost() string { - return fmt.Sprintf("%v:%v", - getenv("KAFKA_HOST", kafkaDefaultHost), - getenv("KAFKA_PORT", kafkaDefaultPort), - ) -} - -func getenv(name, defaultValue string) string { - return strDefault(os.Getenv(name), defaultValue) -} - -func strDefault(a, defaults string) string { - if len(a) == 0 { - return defaults - } - return a -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kafka/version.go b/vendor/github.com/elastic/beats/metricbeat/module/kafka/version.go index 16cc9444..01ba381a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kafka/version.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kafka/version.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kafka import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/Dockerfile index 94c508b5..690694f5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/Dockerfile +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/Dockerfile @@ -1,2 +1,2 @@ -FROM docker.elastic.co/kibana/kibana:6.2.4 +FROM docker.elastic.co/kibana/kibana:6.3.0 HEALTHCHECK --interval=1s --retries=300 CMD curl -f http://localhost:5601/api/status | grep '"disconnects"' diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.reference.yml index 56b87956..328a5e0b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.reference.yml @@ -2,4 +2,5 @@ metricsets: ["status"] period: 10s hosts: ["localhost:5601"] - enabled: default + basepath: "" + enabled: true diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.yml index 838670f8..f997985d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/_meta/config.yml @@ -3,5 +3,6 @@ # - status period: 10s hosts: ["localhost:5601"] + #basepath: "" #username: "user" #password: "secret" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/config.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/config.go new file mode 100644 index 00000000..748ba6bb --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/config.go @@ -0,0 +1,30 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana + +// Config defines the structure for the Kibana module configuration options +type Config struct { + XPackEnabled bool `config:"xpack.enabled"` +} + +// DefaultConfig returns the default configuration for the Kibana module +func DefaultConfig() Config { + return Config{ + XPackEnabled: false, + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/doc.go index 2ddab58b..33d8e955 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/fields.go new file mode 100644 index 00000000..aaa6179d --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package kibana + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "kibana", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzEmM1u4zYQx+9+ikEue9noAXQoULQFWhQJim2DHorCGIljiw1FqpyRY/fpC+rDkWUqVnYlRIcgkez//8fhfIi5h2c6pfCsM7S4ARAthlK4+7W5cbcBUMS515VoZ1P4bgMA0D6E0qna0AaAC+dlmzu70/sUdmg43PVkCJlSyEiCNJOItntO4a87ZnP39wZgp8koThvVe7BY0oAlXHKqKIW9d3XV3YnwXOoMtVhQ+Hw3Jjcp2V7dUhsdQKvA1/ZedElQknidczL4+HjF/TWmGxLWtVYXD3rIZzq9OD9+9gbqAFdbFrQ5wdPTLz9GbcPPqK3QUb7N80q699RW0XG5tT5iSeB2nf8nBm2FvEUTMeoRCseSTK59kZAHi8kQiEfLVagWVMoT8+IcTP5A/hOfOZqsDZZRoAN51s4ujhHTPRelxYoLN06z1jRzzhCOgW6Y/lmQFORBCuoBslobBZoBz37tvTiSoNTLb0afFGE7CI0UMaOeIXc2r70n27RSS3kQjzMZZ/fvLJa6zMiHcsmNJiswsIASFYG4Jnxt/iTw6IRAChTIvHth8gw5WmCyCsraiK4MAevwK1pyNV8oigNP/9bEMvhwowzITKGXCjib0+cmPaWgUyPv6b5mAmLBzGguSA1lk2jcKu/yqUoad/oZkfqtlev7++h5rJW/otAh7J5xrtoqMnhKyvH3ezDO0ZDa7ozDcR3cJAT4KfhA8IHGB7SFUhujmXJn1di0xyupdP6UFITjmLwVrxk8fcyC8kTgpkI36I1O0CTZSej6u28kfiPtfImSwtSXby4A4I/g3i4AjXE5CqmQxl12hQjH1c+DnEl9GP3PgTsQQHaaj8z6P9oaXWr5MPAHPCbgjAKuMKeG6DL+j05R8g/3i/o8YyOq8H4WK70by5mB+9RohzY6CPJk5fVEXStcqkMBfOl6a+5qK+/qVK9QSnPXWtcI1Ou86RbP7TB5IU8DaxrP1VE7WIGsLXR7xTexc1w5y7QN277U/n3pRCGIvm/QvJLhYb9Oin9/II97Oi+9obwxYAYjBo/rYD3gUZd1ORNr8r3u3QfA3xuFbju+8ay37sEjqMffkNY9Ywb1uG93CEjaYlvrjNHVchyhTYDEhaQ2Jgl/Lr8FnXpjNrEF8SL/6hby0MpdpyXMaB2zDhqwQM3+0LoMDKff5uF6Xk4jxV9TZzH1ozPslWYZ/Qenv6ZCCLMHKNyK30xeiIys4fx8O6IwY6CuSXoB938AAAD//7lPNR0=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/kibana.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/kibana.go new file mode 100644 index 00000000..2e643831 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/kibana.go @@ -0,0 +1,83 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kibana + +import ( + "encoding/json" + "fmt" + "net/url" + "strings" + + "github.com/elastic/beats/libbeat/common" + + "github.com/elastic/beats/metricbeat/helper" + "github.com/elastic/beats/metricbeat/mb" +) + +// ReportErrorForMissingField reports and returns an error message for the given +// field being missing in API response received from Kibana +func ReportErrorForMissingField(field string, r mb.ReporterV2) error { + err := fmt.Errorf("Could not find field '%v' in Kibana stats API response", field) + r.Error(err) + return err +} + +// GetVersion returns the version of the Kibana instance +func GetVersion(http *helper.HTTP, currentPath string) (string, error) { + const statusPath = "api/status" + content, err := fetchPath(http, currentPath, statusPath) + if err != nil { + return "", err + } + + var data common.MapStr + err = json.Unmarshal(content, &data) + if err != nil { + return "", err + } + + version, err := data.GetValue("version.number") + if err != nil { + return "", err + } + + versionStr, ok := version.(string) + if !ok { + return "", fmt.Errorf("Could not parse Kibana version in status API response") + } + + return versionStr, nil +} + +func fetchPath(http *helper.HTTP, currentPath, newPath string) ([]byte, error) { + currentURI := http.GetURI() + defer http.SetURI(currentURI) // Reset after this request + + // Parse the URI to replace the path + u, err := url.Parse(currentURI) + if err != nil { + return nil, err + } + + u.Path = strings.Replace(u.Path, currentPath, newPath, 1) // HACK: to account for base paths + u.RawQuery = "" + + // Http helper includes the HostData with username and password + http.SetURI(u.String()) + return http.FetchContent() +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/mtest/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/mtest/testing.go index 210f9157..a6dbc1f2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/mtest/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/mtest/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mtest import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/data.json index db704021..7097d36b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/data.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/data.json @@ -6,65 +6,53 @@ }, "elasticsearch": { "cluster": { - "id": "PKEQ1V5kT4yPng_sgiqF9g" + "id": "njqU4EQaTROIDlWPeUMQyw" } }, "kibana": { "stats": { - "concurrent_connections": 17, - "event_loop_delay": 718.5184001922607, - "name": "kibana", + "concurrent_connections": 6, + "host": { + "name": "localhost" + }, + "index": "Shaunaks-MBP-2", + "name": "Shaunaks-MBP-2", "process": { + "event_loop_delay": { + "ms": 0.23628300055861473 + }, "memory": { - "external": { - "bytes": 1969666 - }, "heap": { - "max": { - "bytes": 200028160 + "size_limit": { + "bytes": 1501560832 + }, + "total": { + "bytes": 215003136 }, "used": { - "bytes": 138875320 + "bytes": 185343400 } - }, - "resident_set_size": { - "bytes": 247865344 } }, - "pid": 1, "uptime": { - "ms": 260863 + "ms": 1343714 } }, - "requests": { + "request": { "disconnects": 0, - "total": 91 + "total": 0 }, - "response_times": { - "avg": { - "ms": 1347.2500000000002 - }, + "response_time": { + "avg": {}, "max": { - "ms": 4293 - } - }, - "sockets": { - "http": { - "total": 56 - }, - "https": { - "total": 0 + "ms": 0 } }, - "status": { - "overall": { - "state": "green" - } - }, - "uuid": "b4b34609-03b3-463c-8699-17109e72df70", - "version": { - "number": "7.0.0-alpha1" - } + "snapshot": false, + "status": "green", + "transport_address": "localhost:5601", + "uuid": "5b2de169-2785-441b-ae8c-186a1936b17d", + "version": "7.0.0-alpha1" } }, "metricset": { @@ -73,6 +61,9 @@ "name": "stats", "rtt": 115 }, + "process": { + "pid": 20173 + }, "service": { "name": "kibana" } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/docs.asciidoc index 3f432a78..316a68e6 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/docs.asciidoc @@ -1,3 +1,7 @@ This is the `stats` metricset of the Kibana module. This stats endpoint is available in 6.4 by default. The intention of the Kibana module is to have a minimal data set that works across Kibana versions. + +=== Module-specific configuration notes + +If the Kibana instance is using a basepath in its URL, you must set the `basepath` setting for this module with the same value. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/fields.yml index 40733d99..28889766 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/fields.yml @@ -4,122 +4,98 @@ Kibana stats and run-time metrics. release: beta fields: - - name: cluster_uuid + - name: uuid type: keyword description: > - UUID of the Elasticsearch cluster to which Kibana connects. + Kibana instance UUID - name: name + type: text + description: > + Kibana instance name + - name: index type: keyword description: > - Kibana instance name. - - name: uuid + Name of Kibana's internal index + - name: host.name + type: keyword + description: > + Kibana instance hostname + - name: transport_address type: keyword description: > - Kibana instance uuid. - - name: version.number + Kibana server's hostname and port + - name: version type: keyword description: > - Kibana version number. - - name: status.overall.state + Kibana version + - name: snapshot + type: boolean + description: > + Whether the Kibana build is a snapshot build + - name: status type: keyword description: > - Kibana overall state. + Kibana instance's health status + - name: concurrent_connections + type: long + description: > + Number of client connections made to the server. Note that browsers can send multiple simultaneous connections to request multiple server assets at once, and they can re-use established connections. - name: process type: group description: > - Kibana process metrics. + Process metrics fields: - - name: mem - type: group - description: > - Memory usage metrics of the Kibana instance. - fields: - - name: heap.max.bytes - type: long - format: bytes - description: > - Total amount of heap memory used by V8. - - name: heap.used.bytes - type: long - format: bytes - description: > - Amount of memory in use by V8. - - name: resident_set_size.bytes - type: long - format: bytes - description: > - The amount of space occupied in main memory for the process. Includes heap, code segment, and stack. - - name: external.bytes - type: long - format: bytes - description: > - Memory usage of C++ objects bound to JavaScript objects managed by V8. - - name: pid + - name: event_loop_delay.ms + type: scaled_float + description: > + Event loop delay in milliseconds + - name: memory.heap + type: group + description: > + Process heap metrics + fields: + - name: total.bytes type: long + format: bytes description: > - Process ID of the Kibana instance. - - name: uptime.ms + Total heap allocated to process in bytes + - name: used.bytes type: long + format: bytes description: > - Amount of time that the Kibana process has been running in milliseconds. - - name: response_times - type: group - description: > - HTTP Server response time metrics - fields: - - name: avg.ms + Heap used by process in bytes + - name: size_limit.bytes type: long + format: bytes description: > - Accumulated averages for response times, for all responses in a 5-second time window. - - name: max.ms + Max. old space size allocated to Node.js process, in bytes + - name: uptime.ms type: long description: > - Accumulated maximums for response times, for all responses in a 5-second time window. - - name: requests + Uptime of process in milliseconds + - name: request type: group description: > - HTTP Server request metrics + Request count metrics fields: - - name: status_codes - type: object - description: > - Key-value pairs for each status code sent by the server, and the number of times it sent that code. - - name: total + - name: disconnects type: long description: > - Total number of requests sent by the server. - - name: disconnects + Number of requests that were disconnected + - name: total type: long description: > - Total number of client disconnects encountered by the server. - - name: concurrent_connections - type: long - description: > - Number of client connections made to the server. Note that browsers can send multiple simultaneous connections to request mulitple server assets at once, and they can re-use established connections. - - name: sockets + Total number of requests + - name: response_time type: group description: > - HTTP Web Sockets metrics + Response times metrics fields: - - name: http - type: group + - name: avg.ms + type: long description: > - Web Sockets over plaintext HTTP - fields: - - name: total - type: long - description: > - Number of HTTP web socket connections established - - name: https - type: group + Average response time in milliseconds + - name: max.ms + type: long description: > - Web Sockets over encrypted HTTPS - fields: - - name: total - type: long - description: > - Number of HTTPS web socket connections established - - name: event_loop_delay - type: long - description: > - Node event loop delay calculated with internal benchmarking. + Maximum response time in milliseconds diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/test/stats.700.json b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/test/stats.700.json index 01ad405e..0f74c8b8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/test/stats.700.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/_meta/test/stats.700.json @@ -1,53 +1,144 @@ { - "cluster_uuid": "G279hqGeSDqjj_OgBq6wUw", - "name": "ruflin", - "uuid": "3a64c6a4-b758-41b4-9564-375ca3165039", - "version": { - "number": "6.4.0" - }, - "status": { - "overall": { - "state": "green" - } - }, - "response_times": { - "avg_in_millis": 401, - "max_in_millis": 411 - }, - "requests": { - "status_codes": {} - }, - "concurrent_connections": 0, - "sockets": { - "http": { - "total": 76 + "kibana":{ + "uuid":"5b2de169-2785-441b-ae8c-186a1936b17d", + "name":"Shaunaks-MBP-2", + "index":".kibana", + "host":"localhost", + "transport_address":"localhost:5601", + "version":"7.0.0-alpha1", + "snapshot":false, + "status":"green" }, - "https": { - "total": 0 - } - }, - "event_loop_delay": 46.37134699523449, - "process": { - "mem": { - "heap_max_in_bytes": 171405312, - "heap_used_in_bytes": 143607728, - "resident_set_size_in_bytes": 237985792, - "external_in_bytes": 2075915 + "last_updated":"2018-07-18T00:32:00.948Z", + "collection_interval_ms":5000, + "process":{ + "memory":{ + "heap":{ + "total_bytes":223391744, + "used_bytes":198413592, + "size_limit":1501560832 + }, + "resident_set_size_bytes":347242496 + }, + "event_loop_delay":0.25226891040802, + "pid":46426, + "uptime_ms":1753889 }, - "pid": 18204, - "uptime_ms": 584494 - }, - "os": { - "cpu": { - "load_average": { - "1m": 1.96044921875, - "5m": 2.00732421875, - "15m": 2.07470703125 + "os":{ + "load":{ + "1m":3.50634765625, + "5m":3.76904296875, + "15m":3.54833984375 + }, + "memory":{ + "total_bytes":17179869184, + "free_bytes":31711232, + "used_bytes":17148157952 + }, + "uptime_ms":2187246000 + }, + "response_times":{ + "max_ms":0 + }, + "requests":{ + "total":0, + "disconnects":0, + "status_codes":{ + + } + }, + "concurrent_connections":3, + "usage":{ + "kibana":{ + "index":".kibana", + "dashboard":{ + "total":0 + }, + "visualization":{ + "total":0 + }, + "search":{ + "total":0 + }, + "index_pattern":{ + "total":0 + }, + "graph_workspace":{ + "total":0 + }, + "timelion_sheet":{ + "total":0 + } + }, + "reporting":{ + "available":true, + "enabled":true, + "browser_type":"phantom", + "all":0, + "csv":{ + "available":true, + "total":0 + }, + "printable_pdf":{ + "available":true, + "total":0, + "app":{ + "visualization":0, + "dashboard":0 + }, + "layout":{ + "print":0, + "preserve_layout":0 + } + }, + "status":{ + + }, + "last_day":{ + "all":0, + "csv":{ + "available":true, + "total":0 + }, + "printable_pdf":{ + "available":true, + "total":0, + "app":{ + "visualization":0, + "dashboard":0 + }, + "layout":{ + "print":0, + "preserve_layout":0 + } + }, + "status":{ + + } + }, + "last_7_days":{ + "all":0, + "csv":{ + "available":true, + "total":0 + }, + "printable_pdf":{ + "available":true, + "total":0, + "app":{ + "visualization":0, + "dashboard":0 + }, + "layout":{ + "print":0, + "preserve_layout":0 + } + }, + "status":{ + + } + } } }, - "mem": { - "free_in_bytes": 896122880, - "total_in_bytes": 17179869184 - } + "cluster_uuid":"NkfU5AinRnyFnqBD36zhEw" } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data.go index 0f24e188..79098625 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stats import ( @@ -6,67 +23,60 @@ import ( "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" + "github.com/elastic/beats/metricbeat/helper/elastic" "github.com/elastic/beats/metricbeat/mb" ) var ( schema = s.Schema{ - "cluster_uuid": c.Str("cluster_uuid"), - "name": c.Str("name"), - "uuid": c.Str("uuid"), - "version": c.Dict("version", s.Schema{ - "number": c.Str("number"), - }), - "status": c.Dict("status", s.Schema{ - "overall": c.Dict("overall", s.Schema{ - "state": c.Str("state"), - }), - }), - "response_times": c.Dict("response_times", s.Schema{ - "avg": s.Object{ - "ms": c.Float("avg_in_millis"), - }, - "max": s.Object{ - "ms": c.Int("max_in_millis"), - }, - }), - "requests": c.Dict("requests", s.Schema{ - "total": c.Int("total"), - "disconnects": c.Int("disconnects"), - }), + "uuid": c.Str("kibana.uuid"), + "name": c.Str("kibana.name"), + "index": c.Str("kibana.name"), + "host": s.Object{ + "name": c.Str("kibana.host"), + }, + "transport_address": c.Str("kibana.transport_address"), + "version": c.Str("kibana.version"), + "snapshot": c.Bool("kibana.snapshot"), + "status": c.Str("kibana.status"), "concurrent_connections": c.Int("concurrent_connections"), - "sockets": c.Dict("sockets", s.Schema{ - "http": c.Dict("http", s.Schema{ - "total": c.Int("total"), - }), - "https": c.Dict("https", s.Schema{ - "total": c.Int("total"), - }), - }), - "event_loop_delay": c.Float("event_loop_delay"), "process": c.Dict("process", s.Schema{ - "memory": c.Dict("mem", s.Schema{ - "heap": s.Object{ - "max": s.Object{ - "bytes": c.Int("heap_max_in_bytes"), + "event_loop_delay": s.Object{ + "ms": c.Float("event_loop_delay"), + }, + "memory": c.Dict("memory", s.Schema{ + "heap": c.Dict("heap", s.Schema{ + "total": s.Object{ + "bytes": c.Int("total_bytes"), }, "used": s.Object{ - "bytes": c.Int("heap_used_in_bytes"), + "bytes": c.Int("used_bytes"), }, - }, - "resident_set_size": s.Object{ - "bytes": c.Int("resident_set_size_in_bytes"), - }, - "external": s.Object{ - "bytes": c.Int("external_in_bytes"), - }, + "size_limit": s.Object{ + "bytes": c.Int("size_limit"), + }, + }), }), - "pid": c.Int("pid"), "uptime": s.Object{ "ms": c.Int("uptime_ms"), }, }), + "request": RequestsDict, + "response_time": c.Dict("response_times", s.Schema{ + "avg": s.Object{ + "ms": c.Int("avg_ms", s.Optional), + }, + "max": s.Object{ + "ms": c.Int("max_ms", s.Optional), + }, + }), } + + // RequestsDict defines how to convert the requests field + RequestsDict = c.Dict("requests", s.Schema{ + "disconnects": c.Int("disconnects", s.Optional), + "total": c.Int("total", s.Optional), + }) ) func eventMapping(r mb.ReporterV2, content []byte) error { @@ -78,16 +88,31 @@ func eventMapping(r mb.ReporterV2, content []byte) error { } dataFields, err := schema.Apply(data) - event := mb.Event{} + if err != nil { + r.Error(err) + } + var event mb.Event event.RootFields = common.MapStr{} event.RootFields.Put("service.name", "kibana") // Set elasticsearch cluster id - if clusterID, ok := dataFields["cluster_uuid"]; ok { - delete(dataFields, "cluster_uuid") - event.RootFields.Put("elasticsearch.cluster.id", clusterID) + elasticsearchClusterID, ok := data["cluster_uuid"] + if !ok { + return elastic.ReportErrorForMissingField("cluster_uuid", elastic.Kibana, r) + } + event.RootFields.Put("elasticsearch.cluster.id", elasticsearchClusterID) + + // Set process PID + process, ok := data["process"].(map[string]interface{}) + if !ok { + return elastic.ReportErrorForMissingField("process", elastic.Kibana, r) + } + pid, ok := process["pid"].(float64) + if !ok { + return elastic.ReportErrorForMissingField("process.pid", elastic.Kibana, r) } + event.RootFields.Put("process.pid", int(pid)) event.MetricSetFields = dataFields diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data_test.go deleted file mode 100644 index 4f19c0bf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data_test.go +++ /dev/null @@ -1,34 +0,0 @@ -// +build !integration - -package stats - -import ( - "io/ioutil" - "path/filepath" - "testing" - - s "github.com/elastic/beats/libbeat/common/schema" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestStats(t *testing.T) { - - files, err := filepath.Glob("./_meta/test/stats.*.json") - assert.NoError(t, err) - - for _, f := range files { - input, err := ioutil.ReadFile(f) - assert.NoError(t, err) - - reporter := &mbtest.CapturingReporterV2{} - err = eventMapping(reporter, input) - if e, ok := err.(*s.Errors); ok { - assert.False(t, e.HasRequiredErrors(), "mapping error: %s", e) - } - - assert.True(t, len(reporter.GetEvents()) >= 1) - assert.Equal(t, 0, len(reporter.GetErrors())) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data_xpack.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data_xpack.go new file mode 100644 index 00000000..614ac1cf --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/data_xpack.go @@ -0,0 +1,187 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stats + +import ( + "encoding/json" + "time" + + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstriface" + "github.com/elastic/beats/metricbeat/helper/elastic" + "github.com/elastic/beats/metricbeat/mb" +) + +var ( + schemaXPackMonitoring = s.Schema{ + "concurrent_connections": c.Int("concurrent_connections"), + "os": c.Dict("os", s.Schema{ + "load": c.Dict("load", s.Schema{ + "1m": c.Float("1m"), + "5m": c.Float("5m"), + "15m": c.Float("15m"), + }), + "memory": c.Dict("memory", s.Schema{ + "total_in_bytes": c.Int("total_bytes"), + "free_in_bytes": c.Int("free_bytes"), + "used_in_bytes": c.Int("used_bytes"), + }), + "uptime_in_millis": c.Int("uptime_ms"), + }), + "process": c.Dict("process", s.Schema{ + "event_loop_delay": c.Float("event_loop_delay"), + "memory": c.Dict("memory", s.Schema{ + "heap": c.Dict("heap", s.Schema{ + "total_in_bytes": c.Int("total_bytes"), + "used_in_bytes": c.Int("used_bytes"), + "size_limit": c.Int("size_limit"), + }), + }), + "uptime_in_millis": c.Int("uptime_ms"), + }), + "requests": RequestsDict, + "response_times": c.Dict("response_times", s.Schema{ + "average": c.Int("avg_ms", s.Optional), + "max": c.Int("max_ms", s.Optional), + }, c.DictOptional), + "kibana": c.Dict("kibana", s.Schema{ + "uuid": c.Str("uuid"), + "name": c.Str("name"), + "index": c.Str("index"), + "host": c.Str("host"), + "transport_address": c.Str("transport_address"), + "version": c.Str("version"), + "snapshot": c.Bool("snapshot"), + "status": c.Str("status"), + }), + "usage": c.Dict("usage", s.Schema{ + "index": c.Str("kibana.index"), + "index_pattern": c.Dict("kibana.index_pattern", s.Schema{ + "total": c.Int("total"), + }), + "search": c.Dict("kibana.search", s.Schema{ + "total": c.Int("total"), + }), + "visualization": c.Dict("kibana.visualization", s.Schema{ + "total": c.Int("total"), + }), + "dashboard": c.Dict("kibana.dashboard", s.Schema{ + "total": c.Int("total"), + }), + "timelion_sheet": c.Dict("kibana.timelion_sheet", s.Schema{ + "total": c.Int("total"), + }), + "graph_workspace": c.Dict("kibana.graph_workspace", s.Schema{ + "total": c.Int("total"), + }), + "xpack": s.Object{ + "reporting": c.Dict("reporting", s.Schema{ + "available": c.Bool("available"), + "enabled": c.Bool("enabled"), + "browser_type": c.Str("browser_type"), + "_all": c.Int("all"), + "csv": reportingCsvDict, + "printable_pdf": reportingPrintablePdfDict, + "status": reportingStatusDict, + "lastDay": c.Dict("last_day", reportingPeriodSchema, c.DictOptional), + "last7Days": c.Dict("last_7_days", reportingPeriodSchema, c.DictOptional), + }, c.DictOptional), + }, + }), + } + + reportingCsvDict = c.Dict("csv", s.Schema{ + "available": c.Bool("available"), + "total": c.Int("total"), + }, c.DictOptional) + + reportingPrintablePdfDict = c.Dict("printable_pdf", s.Schema{ + "available": c.Bool("available"), + "total": c.Int("total"), + "app": c.Dict("app", s.Schema{ + "visualization": c.Int("visualization"), + "dashboard": c.Int("dashboard"), + }, c.DictOptional), + "layout": c.Dict("layout", s.Schema{ + "print": c.Int("print"), + "preserve_layout": c.Int("preserve_layout"), + }, c.DictOptional), + }, c.DictOptional) + + reportingStatusDict = c.Dict("status", s.Schema{ + "completed": c.Int("completed", s.Optional), + "failed": c.Int("failed", s.Optional), + "processing": c.Int("processing", s.Optional), + "pending": c.Int("pending", s.Optional), + }, c.DictOptional) + + reportingPeriodSchema = s.Schema{ + "_all": c.Int("all"), + "csv": reportingCsvDict, + "printable_pdf": reportingPrintablePdfDict, + "status": reportingStatusDict, + } +) + +func eventMappingXPack(r mb.ReporterV2, intervalMs int64, content []byte) error { + var data map[string]interface{} + err := json.Unmarshal(content, &data) + if err != nil { + r.Error(err) + return err + } + + kibanaStatsFields, err := schemaXPackMonitoring.Apply(data) + if err != nil { + r.Error(err) + return err + } + + process, ok := data["process"].(map[string]interface{}) + if !ok { + return elastic.ReportErrorForMissingField("process", elastic.Kibana, r) + } + memory, ok := process["memory"].(map[string]interface{}) + if !ok { + return elastic.ReportErrorForMissingField("process.memory", elastic.Kibana, r) + } + + rss, ok := memory["resident_set_size_bytes"].(float64) + if !ok { + return elastic.ReportErrorForMissingField("process.memory.resident_set_size_bytes", elastic.Kibana, r) + } + kibanaStatsFields.Put("process.memory.resident_set_size_in_bytes", int64(rss)) + + timestamp := time.Now() + kibanaStatsFields.Put("timestamp", timestamp) + + var event mb.Event + event.RootFields = common.MapStr{ + "cluster_uuid": data["cluster_uuid"].(string), + "timestamp": timestamp, + "interval_ms": intervalMs, + "type": "kibana_stats", + "kibana_stats": kibanaStatsFields, + } + + event.Index = elastic.MakeXPackMonitoringIndexName(elastic.Kibana) + r.Event(event) + + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/stats.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/stats.go index 71a8aabe..5a73e5c8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/stats.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/stats.go @@ -1,10 +1,31 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stats import ( + "fmt" + + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kibana" ) // init registers the MetricSet with the central registry. @@ -15,11 +36,15 @@ func init() { ) } +const ( + statsPath = "api/stats" + kibanaStatsAPIAvailableVersion = "6.4.0" +) + var ( hostParser = parse.URLHostParserBuilder{ DefaultScheme: "http", - PathConfigKey: "path", - DefaultPath: "api/stats", + DefaultPath: statsPath, QueryParams: "extended=true", // make Kibana fetch the cluster_uuid }.Build() ) @@ -27,20 +52,61 @@ var ( // MetricSet type defines all fields of the MetricSet type MetricSet struct { mb.BaseMetricSet - http *helper.HTTP + http *helper.HTTP + xPackEnabled bool +} + +func isKibanaStatsAPIAvailable(kibanaVersion string) (bool, error) { + currentVersion, err := common.NewVersion(kibanaVersion) + if err != nil { + return false, err + } + + wantVersion, err := common.NewVersion(kibanaStatsAPIAvailableVersion) + if err != nil { + return false, err + } + + return !currentVersion.LessThan(wantVersion), nil } // New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { cfgwarn.Experimental("The kibana stats metricset is experimental") + config := kibana.DefaultConfig() + if err := base.Module().UnpackConfig(&config); err != nil { + return nil, err + } + + if config.XPackEnabled { + cfgwarn.Experimental("The experimental xpack.enabled flag in kibana/stats metricset is enabled.") + } + http, err := helper.NewHTTP(base) if err != nil { return nil, err } + + kibanaVersion, err := kibana.GetVersion(http, statsPath) + if err != nil { + return nil, err + } + + isAPIAvailable, err := isKibanaStatsAPIAvailable(kibanaVersion) + if err != nil { + return nil, err + } + + if !isAPIAvailable { + const errorMsg = "The kibana stats metricset is only supported with Kibana >= %v. You are currently running Kibana %v" + return nil, fmt.Errorf(errorMsg, kibanaStatsAPIAvailableVersion, kibanaVersion) + } + return &MetricSet{ base, http, + config.XPackEnabled, }, nil } @@ -54,5 +120,11 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { return } - eventMapping(r, content) + if m.xPackEnabled { + intervalMs := m.Module().Config().Period.Nanoseconds() / 1000 / 1000 + eventMappingXPack(r, intervalMs, content) + } else { + eventMapping(r, content) + } + } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/stats_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/stats_integration_test.go deleted file mode 100644 index 9314c3c8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/stats/stats_integration_test.go +++ /dev/null @@ -1,21 +0,0 @@ -// +build integration - -package stats - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/kibana/mtest" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "kibana") - - f := mbtest.NewReportingMetricSetV2(t, mtest.GetConfig("stats")) - err := mbtest.WriteEventsReporterV2(f, t, "") - if err != nil { - t.Fatal("write", err) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/data.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/data.go index 97d0a3c8..f37ec3d4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/data_test.go deleted file mode 100644 index decfce20..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/data_test.go +++ /dev/null @@ -1,21 +0,0 @@ -// +build !integration - -package status - -import ( - "io/ioutil" - "testing" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -func TestEventMapping(t *testing.T) { - content, err := ioutil.ReadFile("./_meta/test/input.json") - assert.NoError(t, err) - - event := eventMapping(content) - - assert.Equal(t, event["metrics"].(common.MapStr)["concurrent_connections"], int64(12)) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/status.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/status.go index e193ed80..1b559ea3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/status.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/status.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( @@ -33,7 +50,7 @@ type MetricSet struct { // New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Beta("The kafka partition metricset is beta") + cfgwarn.Beta("The Kibana status metricset is beta") http, err := helper.NewHTTP(base) if err != nil { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/status_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/status_integration_test.go deleted file mode 100644 index 63fda8ab..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kibana/status/status_integration_test.go +++ /dev/null @@ -1,35 +0,0 @@ -// +build integration - -package status - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/kibana/mtest" -) - -func TestFetch(t *testing.T) { - compose.EnsureUpWithTimeout(t, 600, "elasticsearch", "kibana") - - f := mbtest.NewEventFetcher(t, mtest.GetConfig("status")) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "elasticsearch", "kibana") - - f := mbtest.NewEventFetcher(t, mtest.GetConfig("status")) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.reference.yml index b5ef0867..bc24b4e1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.reference.yml @@ -9,10 +9,19 @@ period: 10s hosts: ["localhost:10255"] enabled: true - #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] + #bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + #ssl.certificate_authorities: + # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt #ssl.certificate: "/etc/pki/client/cert.pem" #ssl.key: "/etc/pki/client/cert.key" + # Enriching parameters: + add_metadata: true + in_cluster: true + # When used outside the cluster: + #host: node_name + #kube_config: ~/.kube/config + # State metrics from kube-state-metrics service: - module: kubernetes enabled: true @@ -26,6 +35,13 @@ period: 10s hosts: ["kube-state-metrics:8080"] + # Enriching parameters: + add_metadata: true + in_cluster: true + # When used outside the cluster: + #host: node_name + #kube_config: ~/.kube/config + # Kubernetes events - module: kubernetes enabled: true diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.yml index 5492b0a3..82288c62 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/_meta/config.yml @@ -7,13 +7,21 @@ # - container # - volume period: 10s - hosts: ["localhost:10255"] - #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] - #ssl.certificate: "/etc/pki/client/cert.pem" - #ssl.key: "/etc/pki/client/cert.key" + hosts: ["localhost:10250"] + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + ssl.certificate_authorities: + - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt #username: "user" #password: "secret" + # Enriching parameters: + #add_metadata: true + #in_cluster: true + # When used outside the cluster: + #in_cluster: false + #host: node_name + #kube_config: ~/.kube/config + # State metrics from kube-state-metrics service: #- module: kubernetes # metricsets: @@ -25,6 +33,8 @@ # - state_container # period: 10s # hosts: ["kube-state-metrics:8080"] +# add_metadata: true +# in_cluster: true # Kubernetes events #- module: kubernetes diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/docs.asciidoc new file mode 100644 index 00000000..bc9e3173 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/docs.asciidoc @@ -0,0 +1 @@ +This is the `apiserver` metricset of the Kubernetes module. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/fields.yml index 7d83df38..a8ceb71e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/fields.yml @@ -40,4 +40,4 @@ type: object object_type: long description: > - Request latency histagram buckets \ No newline at end of file + Request latency histogram buckets \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics index 98e4e589..2153901f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics @@ -135,7 +135,7 @@ apiserver_client_certificate_expiration_seconds_bucket{le="3.1104e+07"} 0 apiserver_client_certificate_expiration_seconds_bucket{le="+Inf"} 733059 apiserver_client_certificate_expiration_seconds_sum 1.1534874692275488e+14 apiserver_client_certificate_expiration_seconds_count 733059 -# HELP apiserver_current_inflight_requests Maximal mumber of currently used inflight request limit of this apiserver per request kind in last second. +# HELP apiserver_current_inflight_requests Maximal number of currently used inflight request limit of this apiserver per request kind in last second. # TYPE apiserver_current_inflight_requests gauge apiserver_current_inflight_requests{requestKind="mutating"} 1 apiserver_current_inflight_requests{requestKind="readOnly"} 1 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics.expected b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics.expected index 414fdaa1..8ddfc9fe 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics.expected +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/_meta/test/metrics.expected @@ -3,11 +3,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 10998, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1467, + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -20,11 +22,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", - "request.count": 10, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 1472, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1472, + "sum": 659755004696 + }, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -37,11 +53,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "roles", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -54,11 +72,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 7198, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 31, + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -71,11 +92,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", - "request.count": 45, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1482, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -88,11 +111,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 3, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -105,12 +130,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 15, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "log", - "request.verb": "CONNECT" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1478, + "resource": "daemonsets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -123,11 +149,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 65986, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1467, + "resource": "pods", + "scope": "namespace", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -140,11 +168,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1474, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2928, + "resource": "deployments", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -157,23 +187,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 3552 - }, - "request.resource": "limitranges", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "events", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -186,24 +206,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 9, - "1000000": 9, - "125000": 9, - "2000000": 9, - "250000": 9, - "4000000": 9, - "500000": 9, - "8000000": 9 - }, - "count": 9, - "sum": 99447 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2936, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -216,11 +225,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1473, - "request.resource": "serviceaccounts", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 15, + "resource": "pods", + "scope": "namespace", + "subresource": "log", + "verb": "CONNECT" + } }, "Index": "", "Namespace": "", @@ -233,11 +245,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "podtemplates", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 2, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -250,11 +264,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", - "request.count": 2, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 2, + "125000": 2, + "2000000": 3, + "250000": 2, + "4000000": 3, + "500000": 2, + "8000000": 3 + }, + "count": 3, + "sum": 1678278 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -267,11 +295,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 43994, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "dashboard/v1.8.0", + "count": 10, + "resource": "services", + "scope": "resource", + "verb": "proxy" + } }, "Index": "", "Namespace": "", @@ -284,11 +314,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 1, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1464, + "resource": "statefulsets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -301,24 +333,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 15, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 1 - }, - "count": 15, - "sum": 9995258313 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "log", - "request.verb": "CONNECT" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -331,11 +352,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", - "request.count": 65893, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -348,11 +371,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 4, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 14, + "125000": 14, + "2000000": 15, + "250000": 14, + "4000000": 15, + "500000": 14, + "8000000": 15 + }, + "count": 15, + "sum": 1450354 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -365,11 +402,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "daemonsets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -382,11 +421,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 192618 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -399,12 +452,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format", - "request.count": 8, - "request.resource": "nodes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 2939, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2939, + "sum": 1319265103606 + }, + "resource": "storageclasses", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -417,11 +483,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "persistentvolumeclaims", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -434,11 +502,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller", - "request.count": 65929, - "request.resource": "cronjobs", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 39, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -451,11 +521,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 28, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -468,11 +540,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 25903 + }, + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -485,23 +572,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 0, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 138053 - }, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 14, + "resource": "deployments", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -514,11 +591,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", - "request.count": 1467, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 4446, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -531,24 +610,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 293, - "1000000": 293, - "125000": 291, - "2000000": 293, - "250000": 293, - "4000000": 293, - "500000": 293, - "8000000": 293 + "request": { + "latency": { + "bucket": { + "+Inf": 43992, + "1000000": 43992, + "125000": 43992, + "2000000": 43992, + "250000": 43992, + "4000000": 43992, + "500000": 43992, + "8000000": 43992 + }, + "count": 43992, + "sum": 112112515 }, - "count": 293, - "sum": 4833955 - }, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "resource": "services", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -561,11 +641,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleCloudConsole", - "request.count": 20, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 41871 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "approval", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -578,11 +673,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 160, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 13, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -595,11 +692,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 7, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 21998, + "1000000": 21998, + "125000": 21998, + "2000000": 21998, + "250000": 21998, + "4000000": 21998, + "500000": 21998, + "8000000": 21998 + }, + "count": 21998, + "sum": 37531190 + }, + "resource": "services", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -612,11 +723,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1469, + "resource": "jobs", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -629,11 +742,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 10998, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 711, + "1000000": 710, + "125000": 710, + "2000000": 711, + "250000": 710, + "4000000": 711, + "500000": 710, + "8000000": 711 + }, + "count": 711, + "sum": 3695657 + }, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -646,23 +773,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 3, - "125000": 3, - "2000000": 3, - "250000": 3, - "4000000": 3, - "500000": 3, - "8000000": 3 + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 16257 }, - "count": 3, - "sum": 16257 - }, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "DELETE" + "resource": "clusterroles", + "scope": "cluster", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -675,23 +804,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 710, - "1000000": 710, - "125000": 710, - "2000000": 710, - "250000": 710, - "4000000": 710, - "500000": 710, - "8000000": 710 - }, - "count": 710, - "sum": 1057701 - }, - "request.resource": "podtemplates", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21996, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -704,11 +823,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 31, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "services", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -721,11 +842,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 8, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "GoogleContainerEngine", + "count": 14, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -738,11 +861,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 43991, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "PATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 203, + "1000000": 203, + "125000": 202, + "2000000": 203, + "250000": 203, + "4000000": 203, + "500000": 203, + "8000000": 203 + }, + "count": 203, + "sum": 2941687 + }, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -755,11 +892,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 2, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 24784 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -772,11 +923,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 4, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "secrets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -789,11 +942,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -806,11 +961,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "jobs", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 18, + "resource": "limitranges", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -823,11 +980,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1469, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -840,11 +999,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1468, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -857,11 +1018,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", - "request.count": 1, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -874,11 +1037,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 4446, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 4, + "1000000": 4, + "125000": 3, + "2000000": 4, + "250000": 3, + "4000000": 4, + "500000": 3, + "8000000": 4 + }, + "count": 4, + "sum": 695137 + }, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -891,11 +1068,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "rolebindings", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -908,11 +1087,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 6, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 15, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -925,24 +1106,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", "count": 1, - "sum": 2419 - }, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -955,23 +1125,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2926, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2926, - "sum": 1319580992038 - }, - "request.resource": "rolebindings", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 8, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -984,11 +1144,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 8582 + }, + "resource": "limitranges", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1001,11 +1175,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1018,11 +1194,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 87983, + "1000000": 87983, + "125000": 87983, + "2000000": 87983, + "250000": 87983, + "4000000": 87983, + "500000": 87983, + "8000000": 87983 + }, + "count": 87983, + "sum": 161403153 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -1035,11 +1225,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 11041, + "1000000": 11041, + "125000": 11041, + "2000000": 11041, + "250000": 11041, + "4000000": 11041, + "500000": 11041, + "8000000": 11041 + }, + "count": 11041, + "sum": 26980827 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1052,11 +1256,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "statefulsets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 19, + "resource": "jobs", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1069,23 +1275,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 7286, - "1000000": 7285, - "125000": 7259, - "2000000": 7285, - "250000": 7275, - "4000000": 7285, - "500000": 7284, - "8000000": 7285 - }, - "count": 7286, - "sum": 79006880 - }, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1098,11 +1294,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1459, - "request.resource": "horizontalpodautoscalers", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "jobs", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1115,12 +1313,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", - "request.count": 5, - "request.resource": "nodes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PATCH" + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 5, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1133,12 +1332,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", - "request.count": 22, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1464, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1151,11 +1351,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 2950, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2950, + "sum": 1319502090736 + }, + "resource": "roles", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1168,11 +1382,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 65696, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 328348, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -1185,23 +1401,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 656937, - "1000000": 656930, - "125000": 656912, - "2000000": 656937, - "250000": 656919, - "4000000": 656937, - "500000": 656926, - "8000000": 656937 - }, - "count": 656937, - "sum": 1660247858 - }, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 34, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1214,23 +1420,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 19, - "1000000": 18, - "125000": 18, - "2000000": 19, - "250000": 18, - "4000000": 19, - "500000": 18, - "8000000": 19 + "request": { + "latency": { + "bucket": { + "+Inf": 711, + "1000000": 711, + "125000": 711, + "2000000": 711, + "250000": 711, + "4000000": 711, + "500000": 711, + "8000000": 711 + }, + "count": 711, + "sum": 1286718 }, - "count": 19, - "sum": 1525720 - }, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "POST" + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1243,11 +1451,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1469, - "request.resource": "jobs", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 18, + "resource": "deployments", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1260,11 +1470,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1468, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 80, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1277,11 +1489,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "ingresses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -1294,11 +1509,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1311,11 +1528,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller", - "request.count": 2, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 10998, + "1000000": 10998, + "125000": 10998, + "2000000": 10998, + "250000": 10998, + "4000000": 10998, + "500000": 10998, + "8000000": 10998 + }, + "count": 10998, + "sum": 46349882 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -1328,11 +1559,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", - "request.count": 30, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 41, + "resource": "clusterroles", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1345,11 +1578,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1471, - "request.resource": "persistentvolumeclaims", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 202551, + "1000000": 202551, + "125000": 202550, + "2000000": 202551, + "250000": 202551, + "4000000": 202551, + "500000": 202551, + "8000000": 202551 + }, + "count": 202551, + "sum": 56134705 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1362,11 +1609,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1476, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "dashboard/v1.8.0", + "count": 4, + "resource": "secrets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1379,11 +1628,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 29407747 + }, + "resource": "ingresses", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1396,23 +1659,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21997, - "1000000": 21997, - "125000": 21997, - "2000000": 21997, - "250000": 21997, - "4000000": 21997, - "500000": 21997, - "8000000": 21997 - }, - "count": 21997, - "sum": 31133138 - }, - "request.resource": "replicationcontrollers", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1482, + "resource": "roles", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1425,11 +1678,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "networkpolicies", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "daemonsets", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -1442,11 +1697,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector", + "count": 12, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -1459,11 +1716,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", - "request.count": 328381, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "clusterroles", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1476,11 +1735,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", - "request.count": 1, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 27, + "resource": "replicasets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1493,11 +1754,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4408, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1510,11 +1773,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller", + "count": 65929, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1527,11 +1792,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 31, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1544,23 +1811,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 2, - "125000": 2, - "2000000": 3, - "250000": 2, - "4000000": 3, - "500000": 2, - "8000000": 3 - }, - "count": 3, - "sum": 1678278 - }, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1573,22 +1830,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 1, - "sum": 60000198 - }, - "request.resource": "configmaps", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider", + "count": 1462, + "resource": "configmaps", + "scope": "namespace", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1601,23 +1849,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 66815, - "1000000": 66815, - "125000": 66815, - "2000000": 66815, - "250000": 66815, - "4000000": 66815, - "500000": 66815, - "8000000": 66815 + "request": { + "latency": { + "bucket": { + "+Inf": 7286, + "1000000": 7285, + "125000": 7259, + "2000000": 7285, + "250000": 7275, + "4000000": 7285, + "500000": 7284, + "8000000": 7285 + }, + "count": 7286, + "sum": 79006880 }, - "count": 66815, - "sum": 93487208 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1630,11 +1880,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "deployments", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10998, + "resource": "daemonsets", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -1647,12 +1899,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", - "request.count": 1, - "request.resource": "services", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10998, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1665,11 +1918,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 4408, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1682,23 +1937,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1469, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 1469, - "sum": 659704930318 - }, - "request.resource": "jobs", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 70, + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -1711,23 +1957,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 8712, - "1000000": 8712, - "125000": 8712, - "2000000": 8712, - "250000": 8712, - "4000000": 8712, - "500000": 8712, - "8000000": 8712 - }, - "count": 8712, - "sum": 16083150 - }, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 1468, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1740,11 +1976,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 17682, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 17682, + "sum": 7916402902308 + }, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1757,11 +2007,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 68, + "1000000": 68, + "125000": 68, + "2000000": 68, + "250000": 68, + "4000000": 68, + "500000": 68, + "8000000": 68 + }, + "count": 68, + "sum": 117705 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1774,11 +2038,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 14, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 9, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -1791,11 +2058,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 5, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10997, + "resource": "configmaps", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -1808,11 +2077,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 2, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 1462, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1462, + "sum": 659801007214 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1825,23 +2108,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 202551, - "1000000": 202551, - "125000": 202550, - "2000000": 202551, - "250000": 202551, - "4000000": 202551, - "500000": 202551, - "8000000": 202551 + "request": { + "latency": { + "bucket": { + "+Inf": 65930, + "1000000": 65930, + "125000": 65929, + "2000000": 65930, + "250000": 65930, + "4000000": 65930, + "500000": 65930, + "8000000": 65930 + }, + "count": 65930, + "sum": 88828794 }, - "count": 202551, - "sum": 56134705 - }, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "GET" + "resource": "cronjobs", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1854,11 +2139,24 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "poddisruptionbudgets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 60000198 + }, + "resource": "configmaps", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -1871,24 +2169,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 230098, - "1000000": 230094, - "125000": 230033, - "2000000": 230098, - "250000": 230085, - "4000000": 230098, - "500000": 230091, - "8000000": 230098 - }, - "count": 230098, - "sum": 2438676783 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1901,23 +2188,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 2, - "500000": 1, - "8000000": 2 - }, - "count": 2, - "sum": 2306787 - }, - "request.resource": "roles", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "clusterroles", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1930,23 +2207,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 711, - "1000000": 711, - "125000": 711, - "2000000": 711, - "250000": 711, - "4000000": 711, - "500000": 711, - "8000000": 711 - }, - "count": 711, - "sum": 1029136 - }, - "request.resource": "statefulsets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 9, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -1959,11 +2226,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1467, + "resource": "cronjobs", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -1976,11 +2245,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", - "request.count": 27, - "request.resource": "tokenreviews", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -1993,11 +2264,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "roles", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2010,23 +2283,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 10319, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 197492, + "1000000": 197485, + "125000": 197485, + "2000000": 197485, + "250000": 197485, + "4000000": 197485, + "500000": 197485, + "8000000": 197485 + }, + "count": 197492, + "sum": 668178451 }, - "count": 10319, - "sum": 4618957403529 - }, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -2039,23 +2314,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2941, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 16, + "1000000": 16, + "125000": 15, + "2000000": 16, + "250000": 15, + "4000000": 16, + "500000": 15, + "8000000": 16 + }, + "count": 16, + "sum": 793020 }, - "count": 2941, - "sum": 1319639948582 - }, - "request.resource": "ingresses", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "namespaces", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -2068,11 +2345,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 4414, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4414, + "sum": 1978079922988 + }, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2085,11 +2376,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", - "request.count": 38, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 293, + "1000000": 293, + "125000": 291, + "2000000": 293, + "250000": 293, + "4000000": 293, + "500000": 293, + "8000000": 293 + }, + "count": 293, + "sum": 4833955 + }, + "resource": "replicasets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -2102,23 +2408,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 + "request": { + "latency": { + "bucket": { + "+Inf": 22004, + "1000000": 22004, + "125000": 22004, + "2000000": 22004, + "250000": 22004, + "4000000": 22004, + "500000": 22004, + "8000000": 22004 + }, + "count": 22004, + "sum": 23746483 }, - "count": 1, - "sum": 2145 - }, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "PUT" + "resource": "roles", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -2131,11 +2439,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "limitranges", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2148,11 +2458,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -2165,11 +2477,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "customresourcedefinitions", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 1 + }, + "count": 15, + "sum": 9995258313 + }, + "resource": "pods", + "scope": "namespace", + "subresource": "log", + "verb": "CONNECT" + } }, "Index": "", "Namespace": "", @@ -2182,11 +2509,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "jobs", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 2944, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 2944, + "sum": 1319072288505 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2199,11 +2540,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 2, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2216,11 +2559,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "statefulsets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 38610514 + }, + "resource": "endpoints", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2233,23 +2590,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 713, - "1000000": 713, - "125000": 713, - "2000000": 713, - "250000": 713, - "4000000": 713, - "500000": 713, - "8000000": 713 - }, - "count": 713, - "sum": 1104285 - }, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "ingresses", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2262,11 +2609,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 7195, - "request.resource": "componentstatuses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2279,23 +2628,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 11023, - "1000000": 11023, - "125000": 11023, - "2000000": 11023, - "250000": 11023, - "4000000": 11023, - "500000": 11023, - "8000000": 11023 - }, - "count": 11023, - "sum": 15416410 - }, - "request.resource": "resourcequotas", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -2308,11 +2647,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1467, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1467, + "sum": 659897009038 + }, + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2325,23 +2678,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 22009, - "1000000": 22009, - "125000": 22009, - "2000000": 22009, - "250000": 22009, - "4000000": 22009, - "500000": 22009, - "8000000": 22009 - }, - "count": 22009, - "sum": 91312572 - }, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2354,23 +2697,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 713, - "1000000": 713, - "125000": 713, - "2000000": 713, - "250000": 713, - "4000000": 713, - "500000": 713, - "8000000": 713 + "request": { + "latency": { + "bucket": { + "+Inf": 1468, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1468, + "sum": 660607341894 }, - "count": 713, - "sum": 1783238 - }, - "request.resource": "daemonsets", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "pods", + "scope": "namespace", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2383,23 +2728,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21965, - "1000000": 21960, - "125000": 21957, - "2000000": 21960, - "250000": 21960, - "4000000": 21960, - "500000": 21960, - "8000000": 21960 + "request": { + "latency": { + "bucket": { + "+Inf": 116, + "1000000": 116, + "125000": 116, + "2000000": 116, + "250000": 116, + "4000000": 116, + "500000": 116, + "8000000": 116 + }, + "count": 116, + "sum": 1336329 }, - "count": 21965, - "sum": 465256128 - }, - "request.resource": "services", - "request.scope": "resource", - "request.verb": "PROXY" + "resource": "daemonsets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -2412,11 +2760,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "ingresses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1465, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1465, + "sum": 659555023618 + }, + "resource": "apiservices", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2429,11 +2791,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", - "request.count": 15, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "WATCH" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2446,11 +2810,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 10, + "resource": "subjectaccessreviews", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -2463,11 +2829,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21996, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -2480,23 +2849,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 22004, - "1000000": 22004, - "125000": 22004, - "2000000": 22004, - "250000": 22004, - "4000000": 22004, - "500000": 22004, - "8000000": 22004 - }, - "count": 22004, - "sum": 23746483 - }, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller", + "count": 7, + "resource": "subjectaccessreviews", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -2509,23 +2868,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2, - "1000000": 1, - "125000": 1, - "2000000": 2, - "250000": 1, - "4000000": 2, - "500000": 1, - "8000000": 2 - }, - "count": 2, - "sum": 1806364 - }, - "request.resource": "secrets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "endpoints", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2538,11 +2887,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 2, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -2555,23 +2906,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 7, - "1000000": 7, - "125000": 7, - "2000000": 7, - "250000": 7, - "4000000": 7, - "500000": 7, - "8000000": 7 - }, - "count": 7, - "sum": 88537 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller", + "count": 65929, + "resource": "cronjobs", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2584,11 +2925,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1470, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 3, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -2601,11 +2944,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1465, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1461, + "resource": "storageclasses", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2618,11 +2963,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1456, - "request.resource": "deployments", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2635,11 +2982,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "replicationcontrollers", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2652,23 +3001,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2944, - "1000000": 7, - "125000": 7, - "2000000": 7, - "250000": 7, - "4000000": 7, - "500000": 7, - "8000000": 7 - }, - "count": 2944, - "sum": 1319072288505 - }, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 23, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -2681,23 +3020,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2599, - "1000000": 1129, - "125000": 1128, - "2000000": 1129, - "250000": 1129, - "4000000": 1129, - "500000": 1129, - "8000000": 1129 - }, - "count": 2599, - "sum": 658396349345 - }, - "request.resource": "events", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 38, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -2710,11 +3039,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 36, + "resource": "pods", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -2727,11 +3058,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2744,11 +3077,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 3, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 21995, + "1000000": 21995, + "125000": 21995, + "2000000": 21995, + "250000": 21995, + "4000000": 21995, + "500000": 21995, + "8000000": 21995 + }, + "count": 21995, + "sum": 42319790 + }, + "resource": "roles", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -2761,23 +3108,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 36425, - "1000000": 36425, - "125000": 36411, - "2000000": 36425, - "250000": 36412, - "4000000": 36425, - "500000": 36421, - "8000000": 36425 + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 2306787 }, - "count": 36425, - "sum": 153386026 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "LIST" + "resource": "roles", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2790,23 +3139,12 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 10999, - "1000000": 10999, - "125000": 10999, - "2000000": 10999, - "250000": 10999, - "4000000": 10999, - "500000": 10999, - "8000000": 10999 - }, - "count": 10999, - "sum": 28899398 - }, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "verb": "UPDATE" + } }, "Index": "", "Namespace": "", @@ -2819,12 +3157,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", - "request.count": 1, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "pods", + "scope": "namespace", + "subresource": "exec", + "verb": "CONNECT" + } }, "Index": "", "Namespace": "", @@ -2837,24 +3177,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 116, - "1000000": 116, - "125000": 116, - "2000000": 116, - "250000": 116, - "4000000": 116, - "500000": 116, - "8000000": 116 + "request": { + "latency": { + "bucket": { + "+Inf": 38, + "1000000": 38, + "125000": 38, + "2000000": 38, + "250000": 38, + "4000000": 38, + "500000": 38, + "8000000": 38 + }, + "count": 38, + "sum": 390430 }, - "count": 116, - "sum": 1336329 - }, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -2867,11 +3208,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "dashboard/v1.8.0", - "request.count": 10, - "request.resource": "services", - "request.scope": "resource", - "request.verb": "PROXY" + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 33805681 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2884,23 +3239,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 109953, - "1000000": 109952, - "125000": 109950, - "2000000": 109953, - "250000": 109950, - "4000000": 109953, - "500000": 109951, - "8000000": 109953 - }, - "count": 109953, - "sum": 142476285 - }, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2913,11 +3258,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2599, - "request.resource": "events", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2930,11 +3277,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 15, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -2947,11 +3296,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 90, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1464, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -2964,11 +3315,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 3, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -2981,24 +3334,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 44000, - "1000000": 44000, - "125000": 44000, - "2000000": 44000, - "250000": 44000, - "4000000": 44000, - "500000": 44000, - "8000000": 44000 + "request": { + "latency": { + "bucket": { + "+Inf": 11, + "1000000": 11, + "125000": 11, + "2000000": 11, + "250000": 11, + "4000000": 11, + "500000": 11, + "8000000": 11 + }, + "count": 11, + "sum": 56853 }, - "count": 44000, - "sum": 69726863 - }, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3011,23 +3365,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 6, - "1000000": 6, - "125000": 6, - "2000000": 6, - "250000": 6, - "4000000": 6, - "500000": 6, - "8000000": 6 - }, - "count": 6, - "sum": 10013 - }, - "request.resource": "controllerrevisions", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3040,11 +3384,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", - "request.count": 1, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1258, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3057,11 +3403,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3074,11 +3422,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1482, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 21965, + "1000000": 21960, + "125000": 21957, + "2000000": 21960, + "250000": 21960, + "4000000": 21960, + "500000": 21960, + "8000000": 21960 + }, + "count": 21965, + "sum": 464443049 + }, + "resource": "services", + "scope": "resource", + "verb": "proxy" + } }, "Index": "", "Namespace": "", @@ -3091,11 +3453,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 3, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3108,11 +3472,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 16, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 22003, + "1000000": 22003, + "125000": 22003, + "2000000": 22003, + "250000": 22003, + "4000000": 22003, + "500000": 22003, + "8000000": 22003 + }, + "count": 22003, + "sum": 23608438 + }, + "resource": "rolebindings", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3125,11 +3503,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1463, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1463, + "sum": 659457907105 + }, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3142,23 +3534,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21998, - "1000000": 21998, - "125000": 21998, - "2000000": 21998, - "250000": 21998, - "4000000": 21998, - "500000": 21998, - "8000000": 21998 - }, - "count": 21998, - "sum": 54318333 - }, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller", + "count": 2, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -3171,11 +3553,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1461, - "request.resource": "serviceaccounts", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 30, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3188,10 +3572,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "configmaps", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1479, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3204,11 +3591,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1470, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 6, + "1000000": 6, + "125000": 6, + "2000000": 6, + "250000": 6, + "4000000": 6, + "500000": 6, + "8000000": 6 + }, + "count": 6, + "sum": 10013 + }, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3221,11 +3622,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", - "request.count": 6, - "request.resource": "controllerrevisions", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "limitranges", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3238,11 +3641,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "rolebindings", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3255,23 +3660,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 9, - "1000000": 9, - "125000": 9, - "2000000": 9, - "250000": 9, - "4000000": 9, - "500000": 9, - "8000000": 9 - }, - "count": 9, - "sum": 24784 - }, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 27, + "resource": "secrets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3284,24 +3679,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", "count": 1, - "sum": 25903 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.subresource": "scale", - "request.verb": "PUT" + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3314,23 +3698,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 157377, - "1000000": 157373, - "125000": 157353, - "2000000": 157377, - "250000": 157363, - "4000000": 157377, - "500000": 157370, - "8000000": 157377 - }, - "count": 157377, - "sum": 478451230 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "daemonsets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3343,11 +3717,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleCloudConsole", - "request.count": 7, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2947, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3360,11 +3736,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", - "request.count": 50, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1475, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3377,12 +3755,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:route-controller", - "request.count": 7, - "request.resource": "nodes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2938, + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3395,11 +3774,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 1, - "request.resource": "limitranges", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", + "count": 4, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3412,23 +3793,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 7, - "1000000": 7, - "125000": 7, - "2000000": 7, - "250000": 7, - "4000000": 7, - "500000": 7, - "8000000": 7 - }, - "count": 7, - "sum": 37113 - }, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3441,22 +3812,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 24, + "1000000": 24, + "125000": 23, + "2000000": 24, + "250000": 24, + "4000000": 24, + "500000": 24, + "8000000": 24 + }, + "count": 24, + "sum": 410336 }, - "count": 1, - "sum": 60000155 - }, - "request.resource": "nodes", - "request.verb": "GET" + "resource": "deployments", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3469,11 +3843,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 2, - "request.resource": "deployments", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3486,12 +3862,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", - "request.count": 10, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 5, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -3504,12 +3881,24 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", - "request.count": 65893, - "request.resource": "deployments", - "request.scope": "namespace", - "request.subresource": "scale", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 60000155 + }, + "resource": "nodes", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3522,11 +3911,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 43979, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 8, + "1000000": 8, + "125000": 8, + "2000000": 8, + "250000": 8, + "4000000": 8, + "500000": 8, + "8000000": 8 + }, + "count": 8, + "sum": 27618 + }, + "resource": "rolebindings", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3539,11 +3942,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider", - "request.count": 1462, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 347, + "1000000": 347, + "125000": 343, + "2000000": 347, + "250000": 346, + "4000000": 347, + "500000": 347, + "8000000": 347 + }, + "count": 347, + "sum": 5307111 + }, + "resource": "deployments", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -3556,11 +3974,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "daemonsets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "services", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3573,11 +3993,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 15, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 8712, + "1000000": 8712, + "125000": 8712, + "2000000": 8712, + "250000": 8712, + "4000000": 8712, + "500000": 8712, + "8000000": 8712 + }, + "count": 8712, + "sum": 16083150 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3590,23 +4024,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 16, - "1000000": 15, - "125000": 15, - "2000000": 16, - "250000": 15, - "4000000": 16, - "500000": 15, - "8000000": 16 - }, - "count": 16, - "sum": 1437944 - }, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 328381, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -3619,11 +4043,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1482, - "request.resource": "roles", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3636,11 +4062,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1478, - "request.resource": "persistentvolumeclaims", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 23, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3653,23 +4081,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 18, - "1000000": 18, - "125000": 18, - "2000000": 18, - "250000": 18, - "4000000": 18, - "500000": 18, - "8000000": 18 + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 2, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 1654312 }, - "count": 18, - "sum": 134182 - }, - "request.resource": "limitranges", - "request.scope": "namespace", - "request.verb": "LIST" + "resource": "limitranges", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3682,11 +4112,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "limitranges", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3699,11 +4131,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 2941, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2941, + "sum": 1319639948582 + }, + "resource": "ingresses", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3716,12 +4162,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 70, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -3734,11 +4181,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1496, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "roles", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3751,11 +4200,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 90, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -3768,11 +4219,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21995, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3785,23 +4238,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 15, - "1000000": 15, - "125000": 15, - "2000000": 15, - "250000": 15, - "4000000": 15, - "500000": 15, - "8000000": 15 - }, - "count": 15, - "sum": 171645 - }, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "podtemplates", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3814,11 +4257,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "roles", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -3831,23 +4276,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2928, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2928, - "sum": 1319357064565 - }, - "request.resource": "statefulsets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "clusterroles", + "scope": "cluster", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -3860,11 +4295,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1465, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 24266 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -3877,11 +4327,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 68, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -3894,11 +4346,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller", - "request.count": 7, - "request.resource": "subjectaccessreviews", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 5, + "resource": "daemonsets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -3911,23 +4365,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 5655 - }, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1466, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3940,23 +4384,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 38, - "1000000": 38, - "125000": 38, - "2000000": 38, - "250000": 38, - "4000000": 38, - "500000": 38, - "8000000": 38 - }, - "count": 38, - "sum": 137225 - }, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 5, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -3969,11 +4403,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1478, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4417, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -3986,12 +4422,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", - "request.count": 1, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 1464, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1464, + "sum": 659859975068 + }, + "resource": "podtemplates", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4004,11 +4453,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 6, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4021,11 +4472,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleCloudConsole", - "request.count": 20, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 38, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4038,11 +4491,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 41, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 17332, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 17332, + "sum": 10380663647634 + }, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4055,23 +4522,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2939, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2939, - "sum": 1319265103606 - }, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4084,23 +4541,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 17, - "1000000": 17, - "125000": 17, - "2000000": 17, - "250000": 17, - "4000000": 17, - "500000": 17, - "8000000": 17 - }, - "count": 17, - "sum": 12218 - }, - "request.resource": "subjectaccessreviews", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4113,11 +4560,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 22717, + "1000000": 22716, + "125000": 22716, + "2000000": 22716, + "250000": 22716, + "4000000": 22717, + "500000": 22716, + "8000000": 22717 + }, + "count": 22717, + "sum": 33164863 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4130,11 +4591,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", - "request.count": 2, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 88537 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4147,23 +4622,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21999, - "1000000": 21999, - "125000": 21999, - "2000000": 21999, - "250000": 21999, - "4000000": 21999, - "500000": 21999, - "8000000": 21999 - }, - "count": 21999, - "sum": 42542811 - }, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 91, + "resource": "pods", + "scope": "namespace", + "subresource": "binding", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4176,24 +4642,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 91, - "1000000": 91, - "125000": 90, - "2000000": 91, - "250000": 91, - "4000000": 91, - "500000": 91, - "8000000": 91 - }, - "count": 91, - "sum": 1467975 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "binding", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10999, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4206,23 +4661,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 65986, - "1000000": 65986, - "125000": 65986, - "2000000": 65986, - "250000": 65986, - "4000000": 65986, - "500000": 65986, - "8000000": 65986 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 242 }, - "count": 65986, - "sum": 112424509 - }, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "PATCH" + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4235,11 +4692,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 5, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 66026, + "1000000": 66025, + "125000": 66025, + "2000000": 66026, + "250000": 66025, + "4000000": 66026, + "500000": 66025, + "8000000": 66026 + }, + "count": 66026, + "sum": 98827970 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4252,23 +4723,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 22024, - "1000000": 22024, - "125000": 22023, - "2000000": 22024, - "250000": 22024, - "4000000": 22024, - "500000": 22024, - "8000000": 22024 - }, - "count": 22024, - "sum": 72887687 - }, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4281,23 +4742,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 8067, - "1000000": 8067, - "125000": 8066, - "2000000": 8067, - "250000": 8066, - "4000000": 8067, - "500000": 8067, - "8000000": 8067 + "request": { + "latency": { + "bucket": { + "+Inf": 38, + "1000000": 38, + "125000": 38, + "2000000": 38, + "250000": 38, + "4000000": 38, + "500000": 38, + "8000000": 38 + }, + "count": 38, + "sum": 137225 }, - "count": 8067, - "sum": 16999211 - }, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4310,11 +4773,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1131, - "request.resource": "events", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 21995, + "1000000": 21995, + "125000": 21995, + "2000000": 21995, + "250000": 21995, + "4000000": 21995, + "500000": 21995, + "8000000": 21995 + }, + "count": 21995, + "sum": 41165835 + }, + "resource": "rolebindings", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -4327,11 +4804,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1472, - "request.resource": "limitranges", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1476, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4344,11 +4823,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", - "request.count": 34, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1471, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4361,11 +4842,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 2961, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2961, + "sum": 1319737924064 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4378,22 +4873,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 10319, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 10319, + "sum": 4618957403529 }, - "count": 1, - "sum": 60000399 - }, - "request.resource": "jobs", - "request.verb": "UPDATE" + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4406,23 +4904,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2, - "1000000": 2, - "125000": 2, - "2000000": 2, - "250000": 2, - "4000000": 2, - "500000": 2, - "8000000": 2 - }, + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", "count": 2, - "sum": 6185 - }, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "PUT" + "resource": "clusterroles", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4435,11 +4923,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1465, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 11099, + "1000000": 11099, + "125000": 11099, + "2000000": 11099, + "250000": 11099, + "4000000": 11099, + "500000": 11099, + "8000000": 11099 + }, + "count": 11099, + "sum": 17674492 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4452,11 +4954,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 4, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "DELETE" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 14, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4469,11 +4973,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:ttl-controller", - "request.count": 7, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "PATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 8, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4486,23 +4992,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 5876, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 5876, - "sum": 2637626661333 - }, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4515,24 +5011,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 4441 - }, - "request.resource": "services", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "GoogleContainerEngine", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4545,11 +5030,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 10998, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 18, + "1000000": 18, + "125000": 18, + "2000000": 18, + "250000": 18, + "4000000": 18, + "500000": 18, + "8000000": 18 + }, + "count": 18, + "sum": 134182 + }, + "resource": "limitranges", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4562,23 +5061,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1463, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 1463, - "sum": 659457907105 - }, - "request.resource": "controllerrevisions", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1470, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4591,11 +5080,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 2, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4608,11 +5099,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 4, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 60, + "resource": "deployments", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -4625,11 +5119,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1478, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 43992, + "resource": "services", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -4642,11 +5138,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1461, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 123, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4659,11 +5157,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", - "request.count": 1468, - "request.resource": "networkpolicies", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4676,11 +5176,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", - "request.count": 38, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 1469, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1469, + "sum": 659704930318 + }, + "resource": "jobs", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4693,11 +5207,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 3, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4710,23 +5226,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 298 - }, - "request.resource": "controllerrevisions", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1470, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4739,23 +5245,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1459, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 157377, + "1000000": 157373, + "125000": 157353, + "2000000": 157377, + "250000": 157363, + "4000000": 157377, + "500000": 157370, + "8000000": 157377 + }, + "count": 157377, + "sum": 478451230 }, - "count": 1459, - "sum": 659831109566 - }, - "request.resource": "horizontalpodautoscalers", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4768,11 +5276,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 10, - "request.resource": "subjectaccessreviews", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "Go-http-client/2.0", + "count": 14, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4785,23 +5295,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 38, - "1000000": 38, - "125000": 38, - "2000000": 38, - "250000": 38, - "4000000": 38, - "500000": 38, - "8000000": 38 - }, - "count": 38, - "sum": 137375 - }, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -4814,11 +5314,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 15, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4831,11 +5333,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", - "request.count": 27, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 714, + "1000000": 714, + "125000": 714, + "2000000": 714, + "250000": 714, + "4000000": 714, + "500000": 714, + "8000000": 714 + }, + "count": 714, + "sum": 2514414 + }, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4848,12 +5364,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 11, - "request.resource": "nodes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 14251 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -4866,23 +5395,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 16, - "1000000": 16, - "125000": 15, - "2000000": 16, - "250000": 15, - "4000000": 16, - "500000": 15, - "8000000": 16 + "request": { + "latency": { + "bucket": { + "+Inf": 22024, + "1000000": 22024, + "125000": 22023, + "2000000": 22024, + "250000": 22024, + "4000000": 22024, + "500000": 22024, + "8000000": 22024 + }, + "count": 22024, + "sum": 72887687 }, - "count": 16, - "sum": 793020 - }, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "POST" + "resource": "secrets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4895,11 +5426,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4912,11 +5445,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 109953, + "1000000": 109952, + "125000": 109950, + "2000000": 109953, + "250000": 109950, + "4000000": 109953, + "500000": 109951, + "8000000": 109953 + }, + "count": 109953, + "sum": 142476285 + }, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -4929,23 +5476,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 17682, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 43994, + "1000000": 43994, + "125000": 43994, + "2000000": 43994, + "250000": 43994, + "4000000": 43994, + "500000": 43994, + "8000000": 43994 + }, + "count": 43994, + "sum": 116859281 }, - "count": 17682, - "sum": 7916402902308 - }, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "deployments", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4958,11 +5507,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "Go-http-client/2.0", - "request.count": 20, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -4975,11 +5526,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "secrets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 4412, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4412, + "sum": 1978402804959 + }, + "resource": "daemonsets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -4992,11 +5557,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1463, - "request.resource": "controllerrevisions", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1483, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -5009,11 +5576,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1476, - "request.resource": "rolebindings", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1456, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -5026,11 +5595,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", - "request.count": 36, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5043,11 +5614,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 14, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 49, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5060,11 +5633,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "Go-http-client/2.0", - "request.count": 14, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 6, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5077,11 +5652,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1471, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "dashboard/v1.8.0", + "count": 10, + "resource": "services", + "scope": "resource", + "verb": "PROXY" + } }, "Index": "", "Namespace": "", @@ -5094,11 +5671,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", - "request.count": 14, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5111,11 +5690,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5128,11 +5709,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -5145,23 +5729,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2, - "1000000": 1, - "125000": 1, - "2000000": 2, - "250000": 1, - "4000000": 2, - "500000": 1, - "8000000": 2 + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 19136 }, - "count": 2, - "sum": 1654312 - }, - "request.resource": "limitranges", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "secrets", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -5174,11 +5760,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "horizontalpodautoscalers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 88021, + "1000000": 88021, + "125000": 88021, + "2000000": 88021, + "250000": 88021, + "4000000": 88021, + "500000": 88021, + "8000000": 88021 + }, + "count": 88021, + "sum": 94043104 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5191,23 +5791,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 13, - "1000000": 13, - "125000": 12, - "2000000": 13, - "250000": 13, - "4000000": 13, - "500000": 13, - "8000000": 13 - }, - "count": 13, - "sum": 133887 - }, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5220,23 +5810,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4, - "1000000": 4, - "125000": 3, - "2000000": 4, - "250000": 3, - "4000000": 4, - "500000": 3, - "8000000": 4 + "request": { + "latency": { + "bucket": { + "+Inf": 8067, + "1000000": 8067, + "125000": 8066, + "2000000": 8067, + "250000": 8066, + "4000000": 8067, + "500000": 8067, + "8000000": 8067 + }, + "count": 8067, + "sum": 16999211 }, - "count": 4, - "sum": 695137 - }, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5249,11 +5841,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "serviceaccounts", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 87994, + "1000000": 87994, + "125000": 87991, + "2000000": 87994, + "250000": 87993, + "4000000": 87994, + "500000": 87994, + "8000000": 87994 + }, + "count": 87994, + "sum": 95827906 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5266,11 +5872,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 4420, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 14, + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5283,11 +5891,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "deployments", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5300,11 +5910,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 2, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -5317,23 +5929,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 51, - "1000000": 51, - "125000": 50, - "2000000": 51, - "250000": 51, - "4000000": 51, - "500000": 51, - "8000000": 51 - }, - "count": 51, - "sum": 453911 - }, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "GoogleContainerEngine", + "count": 7190, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5346,24 +5948,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 65893, - "1000000": 65893, - "125000": 65893, - "2000000": 65893, - "250000": 65893, - "4000000": 65893, - "500000": 65893, - "8000000": 65893 - }, - "count": 65893, - "sum": 82149159 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.subresource": "scale", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "services", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5376,11 +5967,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5393,23 +5986,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 3, - "125000": 3, - "2000000": 3, - "250000": 3, - "4000000": 3, - "500000": 3, - "8000000": 3 - }, - "count": 3, - "sum": 19136 - }, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5422,11 +6005,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 73, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 66815, + "1000000": 66815, + "125000": 66815, + "2000000": 66815, + "250000": 66815, + "4000000": 66815, + "500000": 66815, + "8000000": 66815 + }, + "count": 66815, + "sum": 93487208 + }, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5439,11 +6036,12 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1464, - "request.resource": "statefulsets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "configmaps", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5456,11 +6054,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5473,11 +6073,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 65988, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 27124 + }, + "resource": "roles", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5490,11 +6104,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 8712, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", + "count": 20, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5507,23 +6123,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 45, - "1000000": 45, - "125000": 45, - "2000000": 45, - "250000": 45, - "4000000": 45, - "500000": 45, - "8000000": 45 - }, - "count": 45, - "sum": 242600 - }, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5536,11 +6142,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1459, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1131, + "resource": "events", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5553,23 +6161,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21997, - "1000000": 21997, - "125000": 21997, - "2000000": 21997, - "250000": 21997, - "4000000": 21997, - "500000": 21997, - "8000000": 21997 - }, - "count": 21997, - "sum": 28334415 - }, - "request.resource": "statefulsets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5582,11 +6180,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1473, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5599,11 +6199,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21995, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -5616,23 +6218,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 15, - "1000000": 14, - "125000": 14, - "2000000": 15, - "250000": 14, - "4000000": 15, - "500000": 14, - "8000000": 15 - }, - "count": 15, - "sum": 1450354 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5645,23 +6237,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 203, - "1000000": 203, - "125000": 202, - "2000000": 203, - "250000": 203, - "4000000": 203, - "500000": 203, - "8000000": 203 - }, - "count": 203, - "sum": 2941687 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1460, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -5674,11 +6256,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5691,12 +6275,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 9, - "request.resource": "nodes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "roles", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -5709,11 +6294,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 43992, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5726,11 +6313,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 56, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 710, + "1000000": 710, + "125000": 710, + "2000000": 710, + "250000": 710, + "4000000": 710, + "500000": 710, + "8000000": 710 + }, + "count": 710, + "sum": 1024073 + }, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5743,23 +6344,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2947, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2947, - "sum": 1319410001462 - }, - "request.resource": "networkpolicies", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "GoogleCloudConsole", + "count": 7, + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5772,23 +6363,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2, - "1000000": 1, - "125000": 1, - "2000000": 2, - "250000": 1, - "4000000": 2, - "500000": 1, - "8000000": 2 + "request": { + "latency": { + "bucket": { + "+Inf": 710, + "1000000": 710, + "125000": 710, + "2000000": 710, + "250000": 710, + "4000000": 710, + "500000": 710, + "8000000": 710 + }, + "count": 710, + "sum": 1057701 }, - "count": 2, - "sum": 1761331 - }, - "request.resource": "rolebindings", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "podtemplates", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5801,11 +6394,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1471, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1476, + "resource": "secrets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -5818,23 +6413,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 3, - "125000": 2, - "2000000": 3, - "250000": 2, - "4000000": 3, - "500000": 2, - "8000000": 3 - }, - "count": 3, - "sum": 751587 - }, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5847,11 +6432,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1472, - "request.resource": "podsecuritypolicies", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "limitranges", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -5864,11 +6451,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1466, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 21999, + "1000000": 21999, + "125000": 21999, + "2000000": 21999, + "250000": 21999, + "4000000": 21999, + "500000": 21999, + "8000000": 21999 + }, + "count": 21999, + "sum": 42542811 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5881,11 +6482,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "persistentvolumeclaims", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 43991, + "1000000": 43991, + "125000": 43991, + "2000000": 43991, + "250000": 43991, + "4000000": 43991, + "500000": 43991, + "8000000": 43991 + }, + "count": 43991, + "sum": 79881493 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -5898,11 +6513,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1482, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "services", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5915,11 +6532,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "dashboard/v1.8.0", - "request.count": 10, - "request.resource": "services", - "request.scope": "resource", - "request.verb": "proxy" + "request": { + "latency": { + "bucket": { + "+Inf": 38, + "1000000": 38, + "125000": 38, + "2000000": 38, + "250000": 38, + "4000000": 38, + "500000": 38, + "8000000": 38 + }, + "count": 38, + "sum": 137375 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -5932,11 +6563,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 4428, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1485, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -5949,11 +6582,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", - "request.count": 9, - "request.resource": "controllerrevisions", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 21965, + "1000000": 21960, + "125000": 21957, + "2000000": 21960, + "250000": 21960, + "4000000": 21960, + "500000": 21960, + "8000000": 21960 + }, + "count": 21965, + "sum": 465256128 + }, + "resource": "services", + "scope": "resource", + "verb": "PROXY" + } }, "Index": "", "Namespace": "", @@ -5966,11 +6613,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 1, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -5983,11 +6632,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 388, + "1000000": 388, + "125000": 386, + "2000000": 388, + "250000": 388, + "4000000": 388, + "500000": 388, + "8000000": 388 + }, + "count": 388, + "sum": 4031187 + }, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -6000,11 +6663,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "replicationcontrollers", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 123, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -6017,23 +6682,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 44036, - "1000000": 44036, - "125000": 44036, - "2000000": 44036, - "250000": 44036, - "4000000": 44036, - "500000": 44036, - "8000000": 44036 - }, - "count": 44036, - "sum": 46748890 - }, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -6046,23 +6702,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 24, - "1000000": 24, - "125000": 23, - "2000000": 24, - "250000": 24, - "4000000": 24, - "500000": 24, - "8000000": 24 - }, - "count": 24, - "sum": 410336 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", + "count": 1, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6075,23 +6721,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 168, - "1000000": 168, - "125000": 167, - "2000000": 168, - "250000": 168, - "4000000": 168, - "500000": 168, - "8000000": 168 - }, - "count": 168, - "sum": 3433972 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6104,11 +6740,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 2, + "125000": 2, + "2000000": 2, + "250000": 2, + "4000000": 2, + "500000": 2, + "8000000": 2 + }, + "count": 2, + "sum": 770 + }, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6121,11 +6771,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1478, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21995, + "resource": "roles", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -6138,11 +6790,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 2938, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6155,11 +6809,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "cronjobs", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6172,23 +6828,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 3500 }, - "count": 1, - "sum": 1192 - }, - "request.resource": "configmaps", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "persistentvolumes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -6201,23 +6860,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 444870, - "1000000": 444869, - "125000": 444861, - "2000000": 444869, - "250000": 444863, - "4000000": 444869, - "500000": 444866, - "8000000": 444869 - }, - "count": 444870, - "sum": 1016382203 - }, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1482, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6230,11 +6879,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1483, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6247,11 +6898,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", - "request.count": 58, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6264,11 +6917,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", - "request.count": 41, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 22, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -6281,11 +6936,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 3, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 66639, + "1000000": 66637, + "125000": 66635, + "2000000": 66639, + "250000": 66636, + "4000000": 66639, + "500000": 66636, + "8000000": 66639 + }, + "count": 66639, + "sum": 120279290 + }, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6298,11 +6967,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 6, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:ttl-controller", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -6315,23 +6986,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4384, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 4384, - "sum": 1978039440788 - }, - "request.resource": "deployments", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6344,11 +7005,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "serviceaccounts", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 2, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 1761331 + }, + "resource": "rolebindings", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6361,11 +7036,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 10999, + "1000000": 10999, + "125000": 10999, + "2000000": 10999, + "250000": 10999, + "4000000": 10999, + "500000": 10999, + "8000000": 10999 + }, + "count": 10999, + "sum": 28899398 + }, + "resource": "storageclasses", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -6378,11 +7067,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 6, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1472, + "resource": "limitranges", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6395,11 +7086,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 4, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -6412,23 +7105,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1483, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 0, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 148703 }, - "count": 1483, - "sum": 659897025212 - }, - "request.resource": "configmaps", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6441,11 +7136,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6458,11 +7155,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1464, - "request.resource": "secrets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "ingresses", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6475,11 +7174,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1469, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 30, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -6492,11 +7193,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1464, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1459, + "resource": "clusterroles", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6509,23 +7212,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", "count": 1, - "sum": 4186 - }, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "PATCH" + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6538,11 +7231,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1450, + "resource": "rolebindings", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6555,23 +7250,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2940, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 21998, + "1000000": 21998, + "125000": 21998, + "2000000": 21998, + "250000": 21998, + "4000000": 21998, + "500000": 21998, + "8000000": 21998 + }, + "count": 21998, + "sum": 54318333 }, - "count": 2940, - "sum": 1319158063084 - }, - "request.resource": "limitranges", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "configmaps", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6584,23 +7281,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 38, - "1000000": 38, - "125000": 38, - "2000000": 38, - "250000": 38, - "4000000": 38, - "500000": 38, - "8000000": 38 - }, - "count": 38, - "sum": 390430 - }, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10998, + "resource": "storageclasses", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -6613,23 +7300,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21995, - "1000000": 21995, - "125000": 21995, - "2000000": 21995, - "250000": 21995, - "4000000": 21995, - "500000": 21995, - "8000000": 21995 - }, - "count": 21995, - "sum": 42319790 - }, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1461, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6642,23 +7319,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4, - "1000000": 4, - "125000": 4, - "2000000": 4, - "250000": 4, - "4000000": 4, - "500000": 4, - "8000000": 4 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 1192 }, - "count": 4, - "sum": 19435 - }, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "DELETE" + "resource": "configmaps", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6671,23 +7350,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21997, - "1000000": 21997, - "125000": 21997, - "2000000": 21997, - "250000": 21997, - "4000000": 21997, - "500000": 21997, - "8000000": 21997 - }, - "count": 21997, - "sum": 33805681 - }, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1460, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6700,23 +7369,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 27, - "1000000": 27, - "125000": 27, - "2000000": 27, - "250000": 27, - "4000000": 27, - "500000": 27, - "8000000": 27 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 15199 }, - "count": 27, - "sum": 149618 - }, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "POST" + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -6729,23 +7400,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 66139, - "1000000": 66138, - "125000": 66138, - "2000000": 66139, - "250000": 66138, - "4000000": 66139, - "500000": 66138, - "8000000": 66139 + "request": { + "latency": { + "bucket": { + "+Inf": 712, + "1000000": 712, + "125000": 712, + "2000000": 712, + "250000": 712, + "4000000": 712, + "500000": 712, + "8000000": 712 + }, + "count": 712, + "sum": 1102127 }, - "count": 66139, - "sum": 78537675 - }, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "GET" + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6758,11 +7431,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6775,11 +7450,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "roles", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6792,11 +7469,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 14, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 0, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 138053 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -6809,23 +7500,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 7195, - "1000000": 7195, - "125000": 0, - "2000000": 7195, - "250000": 0, - "4000000": 7195, - "500000": 1419, - "8000000": 7195 + "request": { + "latency": { + "bucket": { + "+Inf": 2927, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2927, + "sum": 1319595133369 }, - "count": 7195, - "sum": 3270551868 - }, - "request.resource": "componentstatuses", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "clusterroles", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6838,23 +7531,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 10998, - "1000000": 10998, - "125000": 10998, - "2000000": 10998, - "250000": 10998, - "4000000": 10998, - "500000": 10998, - "8000000": 10998 + "request": { + "latency": { + "bucket": { + "+Inf": 36, + "1000000": 36, + "125000": 36, + "2000000": 36, + "250000": 36, + "4000000": 36, + "500000": 36, + "8000000": 36 + }, + "count": 36, + "sum": 900579 }, - "count": 10998, - "sum": 46349882 - }, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "PATCH" + "resource": "pods", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -6867,11 +7562,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "rolebindings", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6884,11 +7581,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1465, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6901,11 +7600,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 19, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 6, + "1000000": 6, + "125000": 6, + "2000000": 6, + "250000": 6, + "4000000": 6, + "500000": 6, + "8000000": 6 + }, + "count": 6, + "sum": 81365 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -6918,23 +7631,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 11, - "1000000": 11, - "125000": 11, - "2000000": 11, - "250000": 11, - "4000000": 11, - "500000": 11, - "8000000": 11 - }, - "count": 11, - "sum": 56853 - }, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6947,11 +7650,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "secrets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -6964,11 +7669,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1483, - "request.resource": "configmaps", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -6981,11 +7688,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 17, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 4436, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4436, + "sum": 1978507486290 + }, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -6998,11 +7719,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-account-controller", - "request.count": 3, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7337, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7015,11 +7738,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7032,11 +7757,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 2, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "limitranges", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7049,23 +7776,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 6, - "1000000": 6, - "125000": 6, - "2000000": 6, - "250000": 6, - "4000000": 6, - "500000": 6, - "8000000": 6 + "request": { + "latency": { + "bucket": { + "+Inf": 45, + "1000000": 45, + "125000": 45, + "2000000": 45, + "250000": 45, + "4000000": 45, + "500000": 45, + "8000000": 45 + }, + "count": 45, + "sum": 242600 }, - "count": 6, - "sum": 81365 - }, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "POST" + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7078,23 +7807,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 15199 - }, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1476, + "resource": "rolebindings", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7107,11 +7826,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1468, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7124,12 +7845,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", - "request.count": 1, - "request.resource": "jobs", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 43994, + "resource": "deployments", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7142,11 +7864,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 4, + "1000000": 4, + "125000": 4, + "2000000": 4, + "250000": 4, + "4000000": 4, + "500000": 4, + "8000000": 4 + }, + "count": 4, + "sum": 19435 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -7159,11 +7895,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 5, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 23, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -7176,11 +7914,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1474, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "rolebindings", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7193,11 +7933,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "poddisruptionbudgets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 2928, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2928, + "sum": 1319357064565 + }, + "resource": "statefulsets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7210,23 +7964,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 87983, - "1000000": 87983, - "125000": 87983, - "2000000": 87983, - "250000": 87983, - "4000000": 87983, - "500000": 87983, - "8000000": 87983 + "request": { + "latency": { + "bucket": { + "+Inf": 4384, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4384, + "sum": 1978039440788 }, - "count": 87983, - "sum": 161403153 - }, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "PATCH" + "resource": "deployments", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7239,23 +7995,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2940, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2940, - "sum": 1319248184423 - }, - "request.resource": "secrets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7268,12 +8014,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller", - "request.count": 7, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.subresource": "approval", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 44036, + "1000000": 44036, + "125000": 44036, + "2000000": 44036, + "250000": 44036, + "4000000": 44036, + "500000": 44036, + "8000000": 44036 + }, + "count": 44036, + "sum": 46748890 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -7286,23 +8045,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4392, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 4392, - "sum": 1979690652276 - }, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1472, + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7315,11 +8064,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1472, - "request.resource": "poddisruptionbudgets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "configmaps", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7332,23 +8083,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21997, - "1000000": 21997, - "125000": 21997, - "2000000": 21997, - "250000": 21997, - "4000000": 21997, - "500000": 21997, - "8000000": 21997 + "request": { + "latency": { + "bucket": { + "+Inf": 51, + "1000000": 51, + "125000": 50, + "2000000": 51, + "250000": 51, + "4000000": 51, + "500000": 51, + "8000000": 51 + }, + "count": 51, + "sum": 453911 }, - "count": 21997, - "sum": 38610514 - }, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "LIST" + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7361,23 +8114,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 17, - "1000000": 15, - "125000": 15, - "2000000": 15, - "250000": 15, - "4000000": 16, - "500000": 15, - "8000000": 16 + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 29952 }, - "count": 17, - "sum": 62613720 - }, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "PUT" + "resource": "daemonsets", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -7390,23 +8145,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2934, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2934, - "sum": 1319449062336 - }, - "request.resource": "serviceaccounts", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7419,23 +8164,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21998, - "1000000": 21998, - "125000": 21998, - "2000000": 21998, - "250000": 21998, - "4000000": 21998, - "500000": 21998, - "8000000": 21998 + "request": { + "latency": { + "bucket": { + "+Inf": 4406, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 4406, + "sum": 1979024165553 }, - "count": 21998, - "sum": 37531190 - }, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "LIST" + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7448,12 +8195,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 44000, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "daemonsets", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -7466,11 +8214,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1464, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 22009, + "1000000": 22009, + "125000": 22009, + "2000000": 22009, + "250000": 22009, + "4000000": 22009, + "500000": 22009, + "8000000": 22009 + }, + "count": 22009, + "sum": 91312572 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7483,24 +8245,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 7, - "1000000": 7, - "125000": 7, - "2000000": 7, - "250000": 7, - "4000000": 7, - "500000": 7, - "8000000": 7 - }, - "count": 7, - "sum": 24266 - }, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 8712, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -7513,23 +8264,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 733671, - "1000000": 733664, - "125000": 733634, - "2000000": 733671, - "250000": 733639, - "4000000": 733671, - "500000": 733649, - "8000000": 733671 + "request": { + "latency": { + "bucket": { + "+Inf": 66139, + "1000000": 66138, + "125000": 66138, + "2000000": 66139, + "250000": 66138, + "4000000": 66139, + "500000": 66138, + "8000000": 66139 + }, + "count": 66139, + "sum": 78537675 }, - "count": 733671, - "sum": 834805253 - }, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "GET" + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -7542,11 +8295,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 7, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2599, + "resource": "events", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7559,11 +8314,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 20, + "1000000": 20, + "125000": 20, + "2000000": 20, + "250000": 20, + "4000000": 20, + "500000": 20, + "8000000": 20 + }, + "count": 20, + "sum": 518921 + }, + "resource": "apiservices", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7576,11 +8345,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "podsecuritypolicies", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 6, + "resource": "deployments", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7593,11 +8364,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 14, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1473, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7610,10 +8383,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "jobs", - "request.verb": "UPDATE" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -7626,11 +8402,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleCloudConsole", - "request.count": 7, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7643,11 +8421,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1467, - "request.resource": "customresourcedefinitions", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 2, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -7660,23 +8440,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 8712, - "1000000": 8712, - "125000": 8712, - "2000000": 8712, - "250000": 8712, - "4000000": 8712, - "500000": 8712, - "8000000": 8712 - }, - "count": 8712, - "sum": 9535813 - }, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7689,23 +8459,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1472, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 5876, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 5876, + "sum": 2637626661333 }, - "count": 1472, - "sum": 659545988637 - }, - "request.resource": "podsecuritypolicies", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7718,23 +8490,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4414, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 4414, - "sum": 1978079922988 - }, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "services", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -7747,11 +8509,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 5, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1483, + "resource": "configmaps", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7764,23 +8528,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 20, - "1000000": 20, - "125000": 20, - "2000000": 20, - "250000": 20, - "4000000": 20, - "500000": 20, - "8000000": 20 - }, - "count": 20, - "sum": 518921 - }, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -7793,23 +8547,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 712, - "1000000": 712, - "125000": 712, - "2000000": 712, - "250000": 712, - "4000000": 712, - "500000": 712, - "8000000": 712 - }, - "count": 712, - "sum": 1102127 - }, - "request.resource": "ingresses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7822,11 +8566,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1468, - "request.resource": "ingresses", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 4, + "1000000": 4, + "125000": 4, + "2000000": 4, + "250000": 4, + "4000000": 4, + "500000": 4, + "8000000": 4 + }, + "count": 4, + "sum": 32628 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -7839,12 +8597,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 91, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "binding", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21995, + "resource": "rolebindings", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -7857,11 +8616,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 16, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "secrets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7874,11 +8635,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "GoogleContainerEngine", + "count": 7198, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7891,23 +8654,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 27, - "1000000": 27, - "125000": 27, - "2000000": 27, - "250000": 27, - "4000000": 27, - "500000": 27, - "8000000": 27 - }, - "count": 27, - "sum": 108241 - }, - "request.resource": "tokenreviews", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 11023, + "resource": "resourcequotas", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7920,11 +8673,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 18, - "request.resource": "limitranges", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2934, + "resource": "daemonsets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -7937,11 +8692,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 2, + "125000": 2, + "2000000": 2, + "250000": 2, + "4000000": 2, + "500000": 2, + "8000000": 2 + }, + "count": 2, + "sum": 10407 + }, + "resource": "events", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -7954,23 +8723,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2927, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2927, - "sum": 1319595133369 - }, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 30, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -7983,23 +8742,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1467, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 168, + "1000000": 168, + "125000": 167, + "2000000": 168, + "250000": 168, + "4000000": 168, + "500000": 168, + "8000000": 168 + }, + "count": 168, + "sum": 3433972 }, - "count": 1467, - "sum": 659897009038 - }, - "request.resource": "customresourcedefinitions", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -8012,11 +8773,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", - "request.count": 23, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 44000, + "1000000": 44000, + "125000": 44000, + "2000000": 44000, + "250000": 44000, + "4000000": 44000, + "500000": 44000, + "8000000": 44000 + }, + "count": 44000, + "sum": 69726863 + }, + "resource": "apiservices", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -8029,11 +8805,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "cronjobs", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1131, + "1000000": 1131, + "125000": 1131, + "2000000": 1131, + "250000": 1131, + "4000000": 1131, + "500000": 1131, + "8000000": 1131 + }, + "count": 1131, + "sum": 2194490 + }, + "resource": "events", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8046,11 +8836,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "ingresses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "pods", + "scope": "namespace", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8063,11 +8855,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -8080,11 +8874,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.8.7 (linux/amd64) kubernetes/b30876a", - "request.count": 1, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 5655 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -8097,23 +8905,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", "count": 1, - "sum": 104 - }, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8126,23 +8924,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4406, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 4406, - "sum": 1979024165553 - }, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8155,11 +8943,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 1, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "PATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 4392, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4392, + "sum": 1979690652276 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8172,11 +8974,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 444870, + "1000000": 444869, + "125000": 444861, + "2000000": 444869, + "250000": 444863, + "4000000": 444869, + "500000": 444866, + "8000000": 444869 + }, + "count": 444870, + "sum": 1016382203 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8189,11 +9005,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 7, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -8206,23 +9024,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 87994, - "1000000": 87994, - "125000": 87991, - "2000000": 87994, - "250000": 87993, - "4000000": 87994, - "500000": 87994, - "8000000": 87994 - }, - "count": 87994, - "sum": 95827906 - }, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8235,11 +9043,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 65893, + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8252,11 +9063,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", - "request.count": 14, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 38, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8269,11 +9082,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 2, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 7, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -8286,11 +9101,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4409, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8303,11 +9120,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 6, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1463, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8320,23 +9139,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 9, - "1000000": 9, - "125000": 9, - "2000000": 9, - "250000": 9, - "4000000": 9, - "500000": 9, - "8000000": 9 - }, - "count": 9, - "sum": 30051 - }, - "request.resource": "controllerrevisions", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 68, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8349,11 +9158,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 11023, - "request.resource": "resourcequotas", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 733671, + "1000000": 733664, + "125000": 733634, + "2000000": 733671, + "250000": 733639, + "4000000": 733671, + "500000": 733649, + "8000000": 733671 + }, + "count": 733671, + "sum": 834805253 + }, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8366,11 +9189,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", - "request.count": 3, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 13, + "1000000": 13, + "125000": 12, + "2000000": 13, + "250000": 13, + "4000000": 13, + "500000": 13, + "8000000": 13 + }, + "count": 13, + "sum": 133887 + }, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8383,12 +9220,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 10, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8401,23 +9239,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 9, - "1000000": 9, - "125000": 9, - "2000000": 9, - "250000": 9, - "4000000": 9, - "500000": 9, - "8000000": 9 + "request": { + "latency": { + "bucket": { + "+Inf": 711, + "1000000": 711, + "125000": 711, + "2000000": 711, + "250000": 711, + "4000000": 711, + "500000": 711, + "8000000": 711 + }, + "count": 711, + "sum": 1029136 }, - "count": 9, - "sum": 27124 - }, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "POST" + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8430,11 +9270,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1463, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 3, + "resource": "secrets", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -8447,23 +9289,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2, - "1000000": 2, - "125000": 2, - "2000000": 2, - "250000": 2, - "4000000": 2, - "500000": 2, - "8000000": 2 - }, - "count": 2, - "sum": 770 - }, - "request.resource": "networkpolicies", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "storageclasses", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8476,11 +9308,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", - "request.count": 23, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1465, + "resource": "apiservices", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8493,11 +9327,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", - "request.count": 23, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 22, + "resource": "replicasets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -8510,11 +9347,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", - "request.count": 22, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8527,11 +9366,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", - "request.count": 328348, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 2949, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2949, + "sum": 1319045104600 + }, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8544,23 +9397,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 66639, - "1000000": 66637, - "125000": 66635, - "2000000": 66639, - "250000": 66636, - "4000000": 66639, - "500000": 66636, - "8000000": 66639 + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 2, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 1806364 }, - "count": 66639, - "sum": 120279290 - }, - "request.resource": "jobs", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "secrets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8573,23 +9428,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 + "request": { + "latency": { + "bucket": { + "+Inf": 230098, + "1000000": 230094, + "125000": 230033, + "2000000": 230098, + "250000": 230085, + "4000000": 230098, + "500000": 230091, + "8000000": 230098 + }, + "count": 230098, + "sum": 2438676783 }, - "count": 1, - "sum": 8582 - }, - "request.resource": "limitranges", - "request.scope": "namespace", - "request.verb": "POST" + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -8602,23 +9460,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21995, - "1000000": 21995, - "125000": 21995, - "2000000": 21995, - "250000": 21995, - "4000000": 21995, - "500000": 21995, - "8000000": 21995 - }, - "count": 21995, - "sum": 41165835 - }, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8631,11 +9479,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 4, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 37113 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -8648,11 +9510,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", - "request.count": 1, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 15, + "500000": 15, + "8000000": 15 + }, + "count": 15, + "sum": 213078 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -8665,11 +9541,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1485, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 8711, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8682,11 +9560,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1473, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "GoogleContainerEngine", + "count": 14465, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8699,11 +9579,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 2, - "request.resource": "daemonsets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 5, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8716,23 +9598,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 36, - "1000000": 36, - "125000": 36, - "2000000": 36, - "250000": 36, - "4000000": 36, - "500000": 36, - "8000000": 36 + "request": { + "latency": { + "bucket": { + "+Inf": 710, + "1000000": 710, + "125000": 710, + "2000000": 710, + "250000": 710, + "4000000": 710, + "500000": 710, + "8000000": 710 + }, + "count": 710, + "sum": 1012232 }, - "count": 36, - "sum": 900579 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "PATCH" + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8745,24 +9629,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", "count": 1, - "sum": 61438916 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "exec", - "request.verb": "CONNECT" + "resource": "limitranges", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8775,11 +9648,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 2, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 65989, + "1000000": 65989, + "125000": 65989, + "2000000": 65989, + "250000": 65989, + "4000000": 65989, + "500000": 65989, + "8000000": 65989 + }, + "count": 65989, + "sum": 227196113 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -8792,11 +9679,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller", - "request.count": 65929, - "request.resource": "jobs", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleCloudConsole", + "count": 7, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8809,11 +9698,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 9, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -8826,11 +9717,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 87983, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "PATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 16, + "resource": "secrets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8843,11 +9736,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector", - "request.count": 12, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 22, + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -8860,11 +9755,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1478, - "request.resource": "daemonsets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 298 + }, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8877,23 +9786,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4, - "1000000": 4, - "125000": 4, - "2000000": 4, - "250000": 4, - "4000000": 4, - "500000": 4, - "8000000": 4 - }, - "count": 4, - "sum": 32628 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "DELETE" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -8906,23 +9805,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4436, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 4436, - "sum": 1978507486290 - }, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -8935,11 +9824,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 14, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 4, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -8952,11 +9843,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 4186 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -8969,11 +9874,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 30, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 2926, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2926, + "sum": 1319580992038 + }, + "resource": "rolebindings", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -8986,12 +9905,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 31, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "dashboard/v1.8.0", + "count": 1, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9004,23 +9924,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 65930, - "1000000": 65930, - "125000": 65929, - "2000000": 65930, - "250000": 65930, - "4000000": 65930, - "500000": 65930, - "8000000": 65930 + "request": { + "latency": { + "bucket": { + "+Inf": 65893, + "1000000": 65893, + "125000": 65893, + "2000000": 65893, + "250000": 65893, + "4000000": 65893, + "500000": 65893, + "8000000": 65893 + }, + "count": 65893, + "sum": 82149159 }, - "count": 65930, - "sum": 88828794 - }, - "request.resource": "cronjobs", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9033,23 +9956,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 11099, - "1000000": 11099, - "125000": 11099, - "2000000": 11099, - "250000": 11099, - "4000000": 11099, - "500000": 11099, - "8000000": 11099 - }, - "count": 11099, - "sum": 17674492 - }, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.8.7 (linux/amd64) kubernetes/b30876a", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9062,11 +9975,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 3, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 3552 + }, + "resource": "limitranges", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9079,11 +10006,12 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 1, - "request.resource": "limitranges", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "nodes", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9096,11 +10024,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "statefulsets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9113,11 +10043,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1475, - "request.resource": "resourcequotas", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 4, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9130,23 +10062,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 22003, - "1000000": 22003, - "125000": 22003, - "2000000": 22003, - "250000": 22003, - "4000000": 22003, - "500000": 22003, - "8000000": 22003 - }, - "count": 22003, - "sum": 23608438 - }, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 73, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9159,11 +10081,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 14465, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 6, + "resource": "rolebindings", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9176,11 +10100,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "statefulsets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 55, + "1000000": 55, + "125000": 54, + "2000000": 55, + "250000": 55, + "4000000": 55, + "500000": 55, + "8000000": 55 + }, + "count": 55, + "sum": 744329 + }, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9193,23 +10131,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 10997, - "1000000": 10997, - "125000": 10997, - "2000000": 10997, - "250000": 10997, - "4000000": 10997, - "500000": 10997, - "8000000": 10997 + "request": { + "latency": { + "bucket": { + "+Inf": 22013, + "1000000": 22013, + "125000": 22013, + "2000000": 22013, + "250000": 22013, + "4000000": 22013, + "500000": 22013, + "8000000": 22013 + }, + "count": 22013, + "sum": 49092249 }, - "count": 10997, - "sum": 27035169 - }, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "PATCH" + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9222,23 +10162,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 4412, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 4412, - "sum": 1978402804959 - }, - "request.resource": "daemonsets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9251,11 +10181,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1483, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 2947, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2947, + "sum": 1319410001462 + }, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -9268,11 +10212,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 4, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 27, + "1000000": 27, + "125000": 27, + "2000000": 27, + "250000": 27, + "4000000": 27, + "500000": 27, + "8000000": 27 + }, + "count": 27, + "sum": 149618 + }, + "resource": "replicasets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9285,11 +10243,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 4, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9302,23 +10262,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 15, - "1000000": 15, - "125000": 15, - "2000000": 15, - "250000": 15, - "4000000": 15, - "500000": 15, - "8000000": 15 - }, - "count": 15, - "sum": 213078 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "secrets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -9331,23 +10281,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 710, - "1000000": 710, - "125000": 710, - "2000000": 710, - "250000": 710, - "4000000": 710, - "500000": 710, - "8000000": 710 - }, - "count": 710, - "sum": 1012232 - }, - "request.resource": "poddisruptionbudgets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1470, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -9360,11 +10300,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1465, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 2419 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -9377,23 +10332,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 242 - }, - "request.resource": "podsecuritypolicies", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1496, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -9406,23 +10351,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21965, - "1000000": 21960, - "125000": 21957, - "2000000": 21960, - "250000": 21960, - "4000000": 21960, - "500000": 21960, - "8000000": 21960 - }, - "count": 21965, - "sum": 464443049 - }, - "request.resource": "services", - "request.scope": "resource", - "request.verb": "proxy" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "roles", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9435,11 +10370,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "horizontalpodautoscalers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9452,11 +10389,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", + "count": 21, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9469,11 +10408,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 8711, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -9486,11 +10427,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 14380, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 29995607 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9503,11 +10458,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 15, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", + "count": 1, + "resource": "services", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -9520,11 +10478,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", - "request.count": 21, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 2940, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2940, + "sum": 1319248184423 + }, + "resource": "secrets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -9537,23 +10509,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 711, - "1000000": 711, - "125000": 711, - "2000000": 711, - "250000": 711, - "4000000": 711, - "500000": 711, - "8000000": 711 + "request": { + "latency": { + "bucket": { + "+Inf": 27, + "1000000": 27, + "125000": 27, + "2000000": 27, + "250000": 27, + "4000000": 27, + "500000": 27, + "8000000": 27 + }, + "count": 27, + "sum": 108241 }, - "count": 711, - "sum": 1286718 - }, - "request.resource": "persistentvolumeclaims", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "tokenreviews", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9566,11 +10540,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "limitranges", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 65986, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -9583,11 +10559,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "persistentvolumeclaims", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9600,11 +10578,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9617,11 +10597,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "serviceaccounts", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 1, + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -9634,11 +10616,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 30051 + }, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9651,23 +10647,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 711, - "1000000": 710, - "125000": 710, - "2000000": 711, - "250000": 710, - "4000000": 711, - "500000": 710, - "8000000": 711 + "request": { + "latency": { + "bucket": { + "+Inf": 36425, + "1000000": 36425, + "125000": 36411, + "2000000": 36425, + "250000": 36412, + "4000000": 36425, + "500000": 36421, + "8000000": 36425 + }, + "count": 36425, + "sum": 153386026 }, - "count": 711, - "sum": 3695657 - }, - "request.resource": "serviceaccounts", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9680,11 +10678,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 14, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -9697,11 +10697,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 2928, - "request.resource": "deployments", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1473, + "resource": "ingresses", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -9714,11 +10716,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1456, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9731,11 +10735,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 123, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9748,23 +10754,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 0, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 - }, - "count": 1, - "sum": 148703 - }, - "request.resource": "customresourcedefinitions", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9777,23 +10773,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21997, - "1000000": 21997, - "125000": 21997, - "2000000": 21997, - "250000": 21997, - "4000000": 21997, - "500000": 21997, - "8000000": 21997 + "request": { + "latency": { + "bucket": { + "+Inf": 713, + "1000000": 713, + "125000": 713, + "2000000": 713, + "250000": 713, + "4000000": 713, + "500000": 713, + "8000000": 713 + }, + "count": 713, + "sum": 1104285 }, - "count": 21997, - "sum": 29407747 - }, - "request.resource": "ingresses", - "request.scope": "namespace", - "request.verb": "LIST" + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9806,12 +10804,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "deployments", - "request.scope": "namespace", - "request.subresource": "scale", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 2, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -9824,11 +10823,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 30, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 656937, + "1000000": 656930, + "125000": 656912, + "2000000": 656937, + "250000": 656919, + "4000000": 656937, + "500000": 656926, + "8000000": 656937 + }, + "count": 656937, + "sum": 1660247858 + }, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -9841,11 +10854,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", - "request.count": 22, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector", + "count": 32985, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9858,11 +10873,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", - "request.count": 4, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 6, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9875,23 +10892,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 11041, - "1000000": 11041, - "125000": 11041, - "2000000": 11041, - "250000": 11041, - "4000000": 11041, - "500000": 11041, - "8000000": 11041 - }, - "count": 11041, - "sum": 26980827 - }, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "GoogleContainerEngine", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -9904,11 +10911,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "controllerrevisions", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "statefulsets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9921,11 +10930,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 2, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9938,11 +10949,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", - "request.count": 9, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 713, + "1000000": 713, + "125000": 713, + "2000000": 713, + "250000": 713, + "4000000": 713, + "500000": 713, + "8000000": 713 + }, + "count": 713, + "sum": 1783238 + }, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9955,11 +10980,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", - "request.count": 20, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "rolebindings", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -9972,11 +10999,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 6, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -9989,11 +11018,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 4409, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1456, + "resource": "deployments", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10006,23 +11037,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 17686, - "1000000": 0, - "125000": 0, - "2000000": 1, - "250000": 0, - "4000000": 1, - "500000": 0, - "8000000": 2 - }, - "count": 17686, - "sum": 7918564532837 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1474, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10035,11 +11056,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "dashboard/v1.8.0", - "request.count": 4, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 28334415 + }, + "resource": "statefulsets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10052,11 +11087,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 8712, + "1000000": 8712, + "125000": 8712, + "2000000": 8712, + "250000": 8712, + "4000000": 8712, + "500000": 8712, + "8000000": 8712 + }, + "count": 8712, + "sum": 9535813 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -10069,11 +11118,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1479, - "request.resource": "networkpolicies", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10086,11 +11137,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", - "request.count": 2, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 41, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -10103,11 +11156,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 13, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 20, + "resource": "apiservices", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -10120,11 +11175,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 68, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 16, + "1000000": 15, + "125000": 15, + "2000000": 16, + "250000": 15, + "4000000": 16, + "500000": 15, + "8000000": 16 + }, + "count": 16, + "sum": 1437944 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -10137,11 +11206,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 80, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10154,23 +11225,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 14, - "1000000": 14, - "125000": 14, - "2000000": 14, - "250000": 14, - "4000000": 14, - "500000": 14, - "8000000": 14 - }, - "count": 14, - "sum": 139646 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1471, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10183,24 +11244,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1, - "1000000": 1, - "125000": 1, - "2000000": 1, - "250000": 1, - "4000000": 1, - "500000": 1, - "8000000": 1 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 4441 }, - "count": 1, - "sum": 3500 - }, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "resource": "services", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -10213,11 +11276,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 43979, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10230,23 +11295,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 197492, - "1000000": 197485, - "125000": 197485, - "2000000": 197485, - "250000": 197485, - "4000000": 197485, - "500000": 197485, - "8000000": 197485 - }, - "count": 197492, - "sum": 668178451 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "Go-http-client/2.0", + "count": 20, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10259,11 +11314,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -10276,11 +11333,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 41, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -10293,11 +11352,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1464, - "request.resource": "statefulsets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 6, + "1000000": 6, + "125000": 6, + "2000000": 6, + "250000": 6, + "4000000": 6, + "500000": 6, + "8000000": 6 + }, + "count": 6, + "sum": 40480 + }, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -10310,23 +11383,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 6, - "1000000": 6, - "125000": 6, - "2000000": 6, - "250000": 6, - "4000000": 6, - "500000": 6, - "8000000": 6 - }, + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", "count": 6, - "sum": 40480 - }, - "request.resource": "controllerrevisions", - "request.scope": "namespace", - "request.verb": "DELETE" + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -10339,23 +11402,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 713, - "1000000": 713, - "125000": 713, - "2000000": 713, - "250000": 713, - "4000000": 713, - "500000": 713, - "8000000": 713 - }, - "count": 713, - "sum": 2461062 - }, - "request.resource": "deployments", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1478, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10368,11 +11421,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 2, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 50, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -10385,11 +11440,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 18, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10402,11 +11459,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 1483, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1483, + "sum": 659897025212 + }, + "resource": "configmaps", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10419,23 +11490,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 388, - "1000000": 388, - "125000": 386, - "2000000": 388, - "250000": 388, - "4000000": 388, - "500000": 388, - "8000000": 388 - }, - "count": 388, - "sum": 4031187 - }, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4428, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10448,11 +11509,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", - "request.count": 38, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 91, + "1000000": 91, + "125000": 90, + "2000000": 91, + "250000": 91, + "4000000": 91, + "500000": 91, + "8000000": 91 + }, + "count": 91, + "sum": 1467975 + }, + "resource": "pods", + "scope": "namespace", + "subresource": "binding", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -10465,24 +11541,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 40, - "1000000": 40, - "125000": 40, - "2000000": 40, - "250000": 40, - "4000000": 40, - "500000": 40, - "8000000": 40 + "request": { + "latency": { + "bucket": { + "+Inf": 717, + "1000000": 717, + "125000": 715, + "2000000": 717, + "250000": 717, + "4000000": 717, + "500000": 717, + "8000000": 717 + }, + "count": 717, + "sum": 6031823 }, - "count": 40, - "sum": 408553 - }, - "request.resource": "jobs", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -10495,11 +11573,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1467, - "request.resource": "cronjobs", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 17686, + "1000000": 0, + "125000": 0, + "2000000": 1, + "250000": 0, + "4000000": 1, + "500000": 0, + "8000000": 2 + }, + "count": 17686, + "sum": 7918564532837 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10512,11 +11604,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1460, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4420, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10529,11 +11623,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 3, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -10546,11 +11643,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 15, + "500000": 15, + "8000000": 15 + }, + "count": 15, + "sum": 337373 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10563,11 +11674,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "daemonsets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2941, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10580,11 +11693,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", - "request.count": 27, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 14, + "resource": "replicasets", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -10597,11 +11712,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 4, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 65986, + "1000000": 65986, + "125000": 65986, + "2000000": 65986, + "250000": 65986, + "4000000": 65986, + "500000": 65986, + "8000000": 65986 + }, + "count": 65986, + "sum": 112424509 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -10614,23 +11743,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1464, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 1464, - "sum": 659859975068 - }, - "request.resource": "podtemplates", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "roles", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -10643,11 +11762,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 11, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "GoogleContainerEngine", + "count": 7195, + "resource": "componentstatuses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10660,23 +11781,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1659, - "1000000": 1657, - "125000": 1652, - "2000000": 1657, - "250000": 1654, - "4000000": 1657, - "500000": 1657, - "8000000": 1659 - }, - "count": 1659, - "sum": 31122339 - }, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 65988, + "resource": "deployments", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -10689,23 +11800,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 7, - "1000000": 7, - "125000": 7, - "2000000": 7, - "250000": 7, - "4000000": 7, - "500000": 7, - "8000000": 7 - }, - "count": 7, - "sum": 192618 - }, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "PATCH" + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1473, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10718,23 +11819,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2961, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2961, - "sum": 1319737924064 - }, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 1, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10747,23 +11838,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 43991, - "1000000": 43991, - "125000": 43991, - "2000000": 43991, - "250000": 43991, - "4000000": 43991, - "500000": 43991, - "8000000": 43991 - }, - "count": 43991, - "sum": 79881493 - }, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "PATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "configmaps", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10776,23 +11857,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 55, - "1000000": 55, - "125000": 54, - "2000000": 55, - "250000": 55, - "4000000": 55, - "500000": 55, - "8000000": 55 - }, - "count": 55, - "sum": 744329 - }, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "podtemplates", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10805,11 +11876,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 68, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "secrets", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10822,11 +11895,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 2, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 2599, + "1000000": 1129, + "125000": 1128, + "2000000": 1129, + "250000": 1129, + "4000000": 1129, + "500000": 1129, + "8000000": 1129 + }, + "count": 2599, + "sum": 658396349345 + }, + "resource": "events", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -10839,11 +11926,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector", - "request.count": 32985, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 61438916 + }, + "resource": "pods", + "scope": "namespace", + "subresource": "exec", + "verb": "CONNECT" + } }, "Index": "", "Namespace": "", @@ -10856,11 +11958,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2936, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -10873,24 +11978,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 7, - "1000000": 7, - "125000": 7, - "2000000": 7, - "250000": 7, - "4000000": 7, - "500000": 7, - "8000000": 7 + "request": { + "latency": { + "bucket": { + "+Inf": 8, + "1000000": 8, + "125000": 8, + "2000000": 8, + "250000": 8, + "4000000": 8, + "500000": 8, + "8000000": 8 + }, + "count": 8, + "sum": 80513 }, - "count": 7, - "sum": 41871 - }, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.subresource": "approval", - "request.verb": "PUT" + "resource": "services", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -10903,23 +12009,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 43994, - "1000000": 43994, - "125000": 43994, - "2000000": 43994, - "250000": 43994, - "4000000": 43994, - "500000": 43994, - "8000000": 43994 - }, - "count": 43994, - "sum": 116859281 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "GoogleCloudConsole", + "count": 20, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10932,11 +12028,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 17, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10949,11 +12047,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 6, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10966,11 +12066,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -10983,23 +12085,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1472, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 1472, - "sum": 659755004696 - }, - "request.resource": "poddisruptionbudgets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11012,11 +12104,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 29194, + "1000000": 29194, + "125000": 29194, + "2000000": 29194, + "250000": 29194, + "4000000": 29194, + "500000": 29194, + "8000000": 29194 + }, + "count": 29194, + "sum": 44608509 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11029,11 +12135,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 5, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 16, + "resource": "jobs", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -11046,11 +12154,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", - "request.count": 6, - "request.resource": "controllerrevisions", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "latency": { + "bucket": { + "+Inf": 1472, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1472, + "sum": 659545988637 + }, + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11063,11 +12185,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 4417, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1471, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11080,23 +12204,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1131, - "1000000": 1131, - "125000": 1131, - "2000000": 1131, - "250000": 1131, - "4000000": 1131, - "500000": 1131, - "8000000": 1131 - }, - "count": 1131, - "sum": 2194490 - }, - "request.resource": "events", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-account-controller", + "count": 3, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -11109,23 +12223,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 15, - "1000000": 15, - "125000": 15, - "2000000": 15, - "250000": 15, - "4000000": 15, - "500000": 15, - "8000000": 15 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 104 }, - "count": 15, - "sum": 337373 - }, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "WATCH" + "resource": "apiservices", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11138,11 +12254,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11155,11 +12273,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1473, - "request.resource": "ingresses", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "GoogleContainerEngine", + "count": 14380, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11172,11 +12292,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1450, - "request.resource": "rolebindings", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 58, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -11189,11 +12311,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 2, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11206,11 +12330,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 8, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 1459, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1459, + "sum": 659831109566 + }, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11223,10 +12361,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "nodes", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -11239,23 +12380,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 3, - "125000": 3, - "2000000": 3, - "250000": 3, - "4000000": 3, - "500000": 3, - "8000000": 3 - }, + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", "count": 3, - "sum": 21094 - }, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "DELETE" + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -11268,24 +12399,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 347, - "1000000": 347, - "125000": 343, - "2000000": 347, - "250000": 346, - "4000000": 347, - "500000": 347, - "8000000": 347 - }, - "count": 347, - "sum": 5307111 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -11298,11 +12418,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 10997, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 2, + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11315,11 +12437,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", - "request.count": 1, - "request.resource": "networkpolicies", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1472, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11332,11 +12456,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", - "request.count": 1460, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 40, + "1000000": 40, + "125000": 40, + "2000000": 40, + "250000": 40, + "4000000": 40, + "500000": 40, + "8000000": 40 + }, + "count": 40, + "sum": 408553 + }, + "resource": "jobs", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -11349,12 +12488,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", - "request.count": 60, - "request.resource": "deployments", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "roles", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11367,11 +12507,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 21094 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -11384,11 +12538,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 4, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1463, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11401,11 +12557,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1258, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11418,23 +12576,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 22717, - "1000000": 22716, - "125000": 22716, - "2000000": 22716, - "250000": 22716, - "4000000": 22717, - "500000": 22716, - "8000000": 22717 - }, - "count": 22717, - "sum": 33164863 - }, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 13, + "resource": "namespaces", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -11447,11 +12595,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1464, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 1467, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1467, + "sum": 659673062825 + }, + "resource": "cronjobs", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11464,23 +12626,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 8, - "1000000": 8, - "125000": 8, - "2000000": 8, - "250000": 8, - "4000000": 8, - "500000": 8, - "8000000": 8 + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 31133138 }, - "count": 8, - "sum": 27618 - }, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "POST" + "resource": "replicationcontrollers", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11493,11 +12657,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "dashboard/v1.8.0", - "request.count": 1, - "request.resource": "secrets", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1465, + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11510,11 +12676,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 2, - "request.resource": "clusterroles", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "podtemplates", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11527,11 +12695,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "ingresses", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format", + "count": 8, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -11544,11 +12715,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "replicationcontrollers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11561,11 +12734,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", - "request.count": 39, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11578,11 +12753,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", - "request.count": 2, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 15, + "resource": "secrets", + "scope": "namespace", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11595,11 +12772,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2947, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1474, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11612,11 +12791,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 2934, - "request.resource": "daemonsets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11629,23 +12810,24 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 29194, - "1000000": 29194, - "125000": 29194, - "2000000": 29194, - "250000": 29194, - "4000000": 29194, - "500000": 29194, - "8000000": 29194 + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 60000399 }, - "count": 29194, - "sum": 44608509 - }, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "jobs", + "verb": "UPDATE" + } }, "Index": "", "Namespace": "", @@ -11658,23 +12840,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 22013, - "1000000": 22013, - "125000": 22013, - "2000000": 22013, - "250000": 22013, - "4000000": 22013, - "500000": 22013, - "8000000": 22013 - }, - "count": 22013, - "sum": 49092249 - }, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1472, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11687,23 +12859,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 9, - "1000000": 9, - "125000": 8, - "2000000": 9, - "250000": 9, - "4000000": 9, - "500000": 9, - "8000000": 9 + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 8, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 218590 }, - "count": 9, - "sum": 218590 - }, - "request.resource": "storageclasses", - "request.scope": "cluster", - "request.verb": "LIST" + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11716,11 +12890,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", - "request.count": 1, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 11, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11733,11 +12909,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -11750,11 +12928,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", - "request.count": 28, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 5, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -11767,11 +12948,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2941, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 14, + "resource": "deployments", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -11784,23 +12967,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 65989, - "1000000": 65989, - "125000": 65989, - "2000000": 65989, - "250000": 65989, - "4000000": 65989, - "500000": 65989, - "8000000": 65989 - }, - "count": 65989, - "sum": 227196113 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "clusterroles", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -11813,23 +12986,26 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 43992, - "1000000": 43992, - "125000": 43992, - "2000000": 43992, - "250000": 43992, - "4000000": 43992, - "500000": 43992, - "8000000": 43992 + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 99447 }, - "count": 43992, - "sum": 112112515 - }, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "PATCH" + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -11842,11 +13018,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", - "request.count": 123, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 2, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -11859,23 +13037,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1462, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 1462, - "sum": 659801007214 - }, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 45, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -11888,12 +13056,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", - "request.count": 7, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.subresource": "status", - "request.verb": "PUT" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 41, + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -11906,11 +13075,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 11, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -11923,23 +13094,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1465, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 17, + "1000000": 17, + "125000": 17, + "2000000": 17, + "250000": 17, + "4000000": 17, + "500000": 17, + "8000000": 17 + }, + "count": 17, + "sum": 12218 }, - "count": 1465, - "sum": 659555023618 - }, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "subjectaccessreviews", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -11952,23 +13125,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 714, - "1000000": 714, - "125000": 714, - "2000000": 714, - "250000": 714, - "4000000": 714, - "500000": 714, - "8000000": 714 - }, - "count": 714, - "sum": 2514414 - }, - "request.resource": "replicasets", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11981,11 +13144,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1468, - "request.resource": "limitranges", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "apiservices", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -11998,11 +13163,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", - "request.count": 1, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 15, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12015,11 +13182,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1467, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "replicasets", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -12032,23 +13201,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 3, - "125000": 3, - "2000000": 3, - "250000": 3, - "4000000": 3, - "500000": 3, - "8000000": 3 - }, - "count": 3, - "sum": 19942 - }, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "DELETE" + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 65696, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -12061,23 +13220,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2949, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2949, - "sum": 1319045104600 - }, - "request.resource": "persistentvolumeclaims", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1473, + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12090,11 +13239,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1468, - "request.resource": "roles", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 6, + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -12107,11 +13258,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 11, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "statefulsets", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12124,23 +13277,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1467, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 + "request": { + "latency": { + "bucket": { + "+Inf": 2940, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2940, + "sum": 1319158063084 }, - "count": 1467, - "sum": 659673062825 - }, - "request.resource": "cronjobs", - "request.scope": "cluster", - "request.verb": "WATCH" + "resource": "limitranges", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12153,11 +13308,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1476, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 713, + "1000000": 713, + "125000": 713, + "2000000": 713, + "250000": 713, + "4000000": 713, + "500000": 713, + "8000000": 713 + }, + "count": 713, + "sum": 2461062 + }, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12170,24 +13339,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 717, - "1000000": 717, - "125000": 715, - "2000000": 717, - "250000": 717, - "4000000": 717, - "500000": 717, - "8000000": 717 + "request": { + "latency": { + "bucket": { + "+Inf": 14, + "1000000": 14, + "125000": 14, + "2000000": 14, + "250000": 14, + "4000000": 14, + "500000": 14, + "8000000": 14 + }, + "count": 14, + "sum": 139646 }, - "count": 717, - "sum": 6031823 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "status", - "request.verb": "PUT" + "resource": "deployments", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -12200,23 +13370,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2950, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 2950, - "sum": 1319502090736 - }, - "request.resource": "roles", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 160, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -12229,11 +13389,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "latency": { + "bucket": { + "+Inf": 17, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 16, + "500000": 15, + "8000000": 16 + }, + "count": 17, + "sum": 62613720 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -12246,11 +13420,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", - "request.count": 49, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 2, + "2000000": 3, + "250000": 2, + "4000000": 3, + "500000": 2, + "8000000": 3 + }, + "count": 3, + "sum": 751587 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12263,23 +13451,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 88021, - "1000000": 88021, - "125000": 88021, - "2000000": 88021, - "250000": 88021, - "4000000": 88021, - "500000": 88021, - "8000000": 88021 - }, - "count": 88021, - "sum": 94043104 - }, - "request.resource": "clusterrolebindings", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 87983, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -12292,23 +13470,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 1468, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 1468, - "sum": 660607341894 - }, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "WATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 10, + "resource": "daemonsets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -12321,11 +13490,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 20, - "request.resource": "apiservices", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 27, + "resource": "tokenreviews", + "scope": "cluster", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -12338,11 +13509,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "roles", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 11023, + "1000000": 11023, + "125000": 11023, + "2000000": 11023, + "250000": 11023, + "4000000": 11023, + "500000": 11023, + "8000000": 11023 + }, + "count": 11023, + "sum": 15416410 + }, + "resource": "resourcequotas", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12355,11 +13540,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1478, - "request.resource": "nodes", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 6, + "resource": "rolebindings", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -12372,11 +13559,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "Go-http-client/2.0", - "request.count": 1165, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 56, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -12389,11 +13578,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 709, - "request.resource": "podtemplates", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "latency": { + "bucket": { + "+Inf": 10997, + "1000000": 10997, + "125000": 10997, + "2000000": 10997, + "250000": 10997, + "4000000": 10997, + "500000": 10997, + "8000000": 10997 + }, + "count": 10997, + "sum": 27035169 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -12406,11 +13609,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 4, - "request.resource": "endpoints", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", + "count": 1467, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12423,23 +13628,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 8, - "1000000": 8, - "125000": 8, - "2000000": 8, - "250000": 8, - "4000000": 8, - "500000": 8, - "8000000": 8 - }, - "count": 8, - "sum": 80513 - }, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 4, + "resource": "configmaps", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -12452,11 +13647,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 6, - "request.resource": "rolebindings", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -12469,11 +13666,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", - "request.count": 1, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "PATCH" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 14, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -12486,11 +13685,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12503,12 +13704,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 1, - "request.resource": "pods", - "request.scope": "namespace", - "request.subresource": "exec", - "request.verb": "CONNECT" + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12521,11 +13723,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 47, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "rolebindings", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12538,11 +13742,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1483, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12555,23 +13761,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 3, - "125000": 3, - "2000000": 3, - "250000": 3, - "4000000": 3, - "500000": 3, - "8000000": 3 - }, - "count": 3, - "sum": 29952 - }, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "PUT" + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 4, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12584,23 +13780,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 710, - "1000000": 710, - "125000": 710, - "2000000": 710, - "250000": 710, - "4000000": 710, - "500000": 710, - "8000000": 710 - }, - "count": 710, - "sum": 1024073 - }, - "request.resource": "horizontalpodautoscalers", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12613,11 +13799,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1476, - "request.resource": "secrets", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 19942 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -12630,11 +13830,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 13, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 19, + "1000000": 18, + "125000": 18, + "2000000": 19, + "250000": 18, + "4000000": 19, + "500000": 18, + "8000000": 19 + }, + "count": 19, + "sum": 1525720 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -12647,11 +13861,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 2, - "request.resource": "pods", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12664,11 +13880,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 6, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -12681,23 +13899,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 21997, - "1000000": 21997, - "125000": 21997, - "2000000": 21997, - "250000": 21997, - "4000000": 21997, - "500000": 21997, - "8000000": 21997 + "request": { + "latency": { + "bucket": { + "+Inf": 7195, + "1000000": 7195, + "125000": 0, + "2000000": 7195, + "250000": 0, + "4000000": 7195, + "500000": 1419, + "8000000": 7195 + }, + "count": 7195, + "sum": 3270551868 }, - "count": 21997, - "sum": 29995607 - }, - "request.resource": "persistentvolumeclaims", - "request.scope": "namespace", - "request.verb": "LIST" + "resource": "componentstatuses", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12710,23 +13930,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 3, - "1000000": 3, - "125000": 3, - "2000000": 3, - "250000": 3, - "4000000": 3, - "500000": 3, - "8000000": 3 - }, - "count": 3, - "sum": 14251 - }, - "request.resource": "serviceaccounts", - "request.scope": "namespace", - "request.verb": "DELETE" + "request": { + "client": "Go-http-client/2.0", + "count": 1165, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12739,11 +13949,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 2, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:route-controller", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -12756,11 +13969,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", - "request.count": 1472, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "daemonsets", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -12773,11 +13988,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 1, - "request.resource": "daemonsets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 65893, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12790,11 +14007,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 10999, - "request.resource": "endpoints", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1465, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12807,23 +14026,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 2, - "1000000": 2, - "125000": 2, - "2000000": 2, - "250000": 2, - "4000000": 2, - "500000": 2, - "8000000": 2 - }, - "count": 2, - "sum": 10407 - }, - "request.resource": "events", - "request.scope": "namespace", - "request.verb": "LIST" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "approval", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -12836,11 +14046,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "services", - "request.scope": "namespace", - "request.verb": "POST" + "request": { + "latency": { + "bucket": { + "+Inf": 1659, + "1000000": 1657, + "125000": 1652, + "2000000": 1657, + "250000": 1654, + "4000000": 1657, + "500000": 1657, + "8000000": 1659 + }, + "count": 1659, + "sum": 31122339 + }, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } }, "Index": "", "Namespace": "", @@ -12853,11 +14077,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", - "request.count": 1, - "request.resource": "persistentvolumes", - "request.scope": "cluster", - "request.verb": "GET" + "request": { + "client": "GoogleCloudConsole", + "count": 20, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12870,11 +14096,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", - "request.count": 21997, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 11, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", @@ -12887,23 +14116,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 66026, - "1000000": 66025, - "125000": 66025, - "2000000": 66026, - "250000": 66025, - "4000000": 66026, - "500000": 66025, - "8000000": 66026 + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 15, + "500000": 15, + "8000000": 15 + }, + "count": 15, + "sum": 171645 }, - "count": 66026, - "sum": 98827970 - }, - "request.resource": "deployments", - "request.scope": "namespace", - "request.verb": "GET" + "resource": "replicasets", + "scope": "namespace", + "verb": "DELETE" + } }, "Index": "", "Namespace": "", @@ -12916,11 +14147,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "GoogleContainerEngine", - "request.count": 7190, - "request.resource": "namespaces", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1476, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -12933,11 +14166,14 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 7337, - "request.resource": "services", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 44000, + "resource": "apiservices", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -12950,11 +14186,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 47, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } }, "Index": "", "Namespace": "", @@ -12967,11 +14205,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1, - "request.resource": "configmaps", - "request.scope": "cluster", - "request.verb": "LIST" + "request": { + "client": "GoogleContainerEngine", + "count": 14, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } }, "Index": "", "Namespace": "", @@ -12984,11 +14224,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1470, - "request.resource": "certificatesigningrequests", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 2, + "125000": 2, + "2000000": 2, + "250000": 2, + "4000000": 2, + "500000": 2, + "8000000": 2 + }, + "count": 2, + "sum": 6185 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -13001,11 +14255,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", - "request.count": 1464, - "request.resource": "podtemplates", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 2145 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "PUT" + } }, "Index": "", "Namespace": "", @@ -13018,11 +14286,25 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", - "request.count": 4, - "request.resource": "replicasets", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "latency": { + "bucket": { + "+Inf": 2934, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2934, + "sum": 1319449062336 + }, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -13035,23 +14317,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 68, - "1000000": 68, - "125000": 68, - "2000000": 68, - "250000": 68, - "4000000": 68, - "500000": 68, - "8000000": 68 - }, - "count": 68, - "sum": 117705 - }, - "request.resource": "jobs", - "request.scope": "namespace", - "request.verb": "GET" + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1459, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "WATCH" + } }, "Index": "", "Namespace": "", @@ -13064,23 +14336,13 @@ "RootFields": null, "ModuleFields": null, "MetricSetFields": { - "request.latency": { - "bucket": { - "+Inf": 17332, - "1000000": 0, - "125000": 0, - "2000000": 0, - "250000": 0, - "4000000": 0, - "500000": 0, - "8000000": 0 - }, - "count": 17332, - "sum": 10380663647634 - }, - "request.resource": "pods", - "request.scope": "cluster", - "request.verb": "WATCH" + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 43991, + "resource": "clusterroles", + "scope": "cluster", + "verb": "PATCH" + } }, "Index": "", "Namespace": "", diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/apiserver.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/apiserver.go index 0ea3f696..5ce29a76 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/apiserver.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/apiserver.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 apiserver import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/apiserver_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/apiserver_test.go deleted file mode 100644 index f611a591..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/apiserver/apiserver_test.go +++ /dev/null @@ -1,22 +0,0 @@ -// +build !integration - -package apiserver - -import ( - "testing" - - "github.com/elastic/beats/metricbeat/helper/prometheus/ptest" -) - -const testFile = "_meta/test/metrics" - -func TestEventMapping(t *testing.T) { - ptest.TestMetricSet(t, "kubernetes", "apiserver", - ptest.TestCases{ - { - MetricsFile: "./_meta/test/metrics", - ExpectedFile: "./_meta/test/metrics.expected", - }, - }, - ) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/container.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/container.go index d85a32c3..83896472 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/container.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/container.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 container import ( @@ -35,7 +52,8 @@ func init() { // multiple fetch calls. type MetricSet struct { mb.BaseMetricSet - http *helper.HTTP + http *helper.HTTP + enricher util.Enricher } // New create a new instance of the MetricSet @@ -49,6 +67,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ BaseMetricSet: base, http: http, + enricher: util.NewContainerMetadataEnricher(base, true), }, nil } @@ -56,6 +75,8 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { + m.enricher.Start() + body, err := m.http.FetchContent() if err != nil { return nil, err @@ -66,5 +87,13 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { return nil, err } + m.enricher.Enrich(events) + return events, nil } + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/container_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/container_test.go deleted file mode 100644 index 025256bb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/container_test.go +++ /dev/null @@ -1,76 +0,0 @@ -// +build !integration - -package container - -import ( - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/module/kubernetes/util" -) - -const testFile = "../_meta/test/stats_summary.json" - -func TestEventMapping(t *testing.T) { - f, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(f) - assert.NoError(t, err, "cannot read test file "+testFile) - - cache := util.NewPerfMetricsCache() - cache.NodeCoresAllocatable.Set("gke-beats-default-pool-a5b33e2e-hdww", 2) - cache.NodeMemAllocatable.Set("gke-beats-default-pool-a5b33e2e-hdww", 146227200) - cache.ContainerMemLimit.Set(util.ContainerUID("default", "nginx-deployment-2303442956-pcqfc", "nginx"), 14622720) - - events, err := eventMapping(body, cache) - assert.NoError(t, err, "error mapping "+testFile) - - assert.Len(t, events, 1, "got wrong number of events") - - testCases := map[string]interface{}{ - "cpu.usage.core.ns": 43959424, - "cpu.usage.nanocores": 11263994, - - "logs.available.bytes": 98727014400, - "logs.capacity.bytes": 101258067968, - "logs.used.bytes": 28672, - "logs.inodes.count": 6258720, - "logs.inodes.free": 6120096, - "logs.inodes.used": 138624, - - "memory.available.bytes": 0, - "memory.usage.bytes": 1462272, - "memory.rss.bytes": 1409024, - "memory.workingset.bytes": 1454080, - "memory.pagefaults": 841, - "memory.majorpagefaults": 0, - - // calculated pct fields: - "cpu.usage.node.pct": 0.005631997, - "cpu.usage.limit.pct": 0.005631997, - "memory.usage.node.pct": 0.01, - "memory.usage.limit.pct": 0.1, - - "name": "nginx", - - "rootfs.available.bytes": 98727014400, - "rootfs.capacity.bytes": 101258067968, - "rootfs.used.bytes": 61440, - "rootfs.inodes.used": 21, - } - - for k, v := range testCases { - testValue(t, events[0], k, v) - } -} - -func testValue(t *testing.T, event common.MapStr, field string, value interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, "Could not read field "+field) - assert.EqualValues(t, data, value, "Wrong value for field "+field) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/data.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/data.go index d38bca96..b48677ec 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/container/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 container import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/doc.go index e2bc36e4..f608cb9f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/config.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/config.go index 9599be0f..d2117634 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 event import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/event.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/event.go index 551e5bb9..6aeab899 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/event.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/event/event.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 event import ( @@ -76,7 +93,7 @@ func (m *MetricSet) Run(reporter mb.PushReporter) { // skip events happened before watch FilterFunc: func(obj kubernetes.Resource) bool { eve := obj.(*kubernetes.Event) - if eve.LastTimestamp.Before(now) { + if kubernetes.Time(eve.LastTimestamp).Before(now) { return false } return true @@ -93,14 +110,14 @@ func (m *MetricSet) Run(reporter mb.PushReporter) { func generateMapStrFromEvent(eve *kubernetes.Event) common.MapStr { eventMeta := common.MapStr{ "timestamp": common.MapStr{ - "created": eve.Metadata.CreationTimestamp, + "created": kubernetes.Time(eve.Metadata.CreationTimestamp).UTC(), }, - "name": eve.Metadata.Name, - "namespace": eve.Metadata.Namespace, - "self_link": eve.Metadata.SelfLink, - "generate_name": eve.Metadata.GenerateName, - "uid": eve.Metadata.UID, - "resource_version": eve.Metadata.ResourceVersion, + "name": eve.Metadata.GetName(), + "namespace": eve.Metadata.GetNamespace(), + "self_link": eve.Metadata.GetSelfLink(), + "generate_name": eve.Metadata.GetGenerateName(), + "uid": eve.Metadata.GetUid(), + "resource_version": eve.Metadata.GetResourceVersion(), } if len(eve.Metadata.Labels) != 0 { @@ -122,16 +139,16 @@ func generateMapStrFromEvent(eve *kubernetes.Event) common.MapStr { } output := common.MapStr{ - "message": eve.Message, - "reason": eve.Reason, - "type": eve.Type, - "count": eve.Count, + "message": eve.GetMessage(), + "reason": eve.GetReason(), + "type": eve.GetType(), + "count": eve.GetCount(), "involved_object": common.MapStr{ - "api_version": eve.InvolvedObject.APIVersion, - "resource_version": eve.InvolvedObject.ResourceVersion, - "name": eve.InvolvedObject.Name, - "kind": eve.InvolvedObject.Kind, - "uid": eve.InvolvedObject.UID, + "api_version": eve.GetInvolvedObject().GetApiVersion(), + "resource_version": eve.GetInvolvedObject().GetResourceVersion(), + "name": eve.GetInvolvedObject().GetName(), + "kind": eve.GetInvolvedObject().GetKind(), + "uid": eve.GetInvolvedObject().GetUid(), }, "metadata": eventMeta, } @@ -139,11 +156,11 @@ func generateMapStrFromEvent(eve *kubernetes.Event) common.MapStr { tsMap := make(common.MapStr) if eve.FirstTimestamp != nil { - tsMap["first_occurrence"] = eve.FirstTimestamp.UTC() + tsMap["first_occurrence"] = kubernetes.Time(eve.FirstTimestamp).UTC() } if eve.LastTimestamp != nil { - tsMap["last_occurrence"] = eve.LastTimestamp.UTC() + tsMap["last_occurrence"] = kubernetes.Time(eve.LastTimestamp).UTC() } if len(tsMap) != 0 { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/fields.go new file mode 100644 index 00000000..8b2d449d --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package kubernetes + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "kubernetes", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzsXV9v4zYSf99PMdinLJDmA+ThgF56xQX7p0E22z4cDgEtjW02EqmSlFN/+4KURMkSScs27TiJ9LQrOzM/DofD+Uf6J3jC9TU8lTMUDBXKDwCKqgyv4eNn+/LjB4AUZSJooShn1/CvDwAA7RcgRyVoov9aYIZE4jUsyAcAiUpRtpDX8L+PUmYf/6/fLblQjwlnc7q4hjnJJH4AmFPMUnltCP8EjOTYg6UftS40ZcHLon7jgKWfWzbnIif6NRCWglREUaloIoHPoeCphJwwssAUZusOn6uaQhdNFxEpqESxQmE/cYEKAOvJ7ee7W6gIdkTYPFaUM1Sk874PrgtQ4F8lSnWVZBSZ2vhKg/QJ189cpL3PAnj1c2PoQcopW4BaYsNIBlEIlLwUCcbDcV9RxhSctPsAZDk7JgYf+QGMhBfxAYAhCxdJVkqF4tIwlQVJ8NJK51MQ1wrFLD6s/z483MGA9EBDeelR0IyzxW6cH7giGbAyn6HQC3yUcmZEIUvWV7LMI8GoBSChJn0Jssw1nur/FCVQBjlNBJeYcJaOAxhTUs0cWYR7Cm1WJk/oBsVnf2LS/6h6+RgJNiypVHwhSA4VEDmw1AlnilB2mKVuN4aWXshQL8aaaamIUI+K5m6rkBLV/2CLgL5rgjAgaKVRlE5GfVmM4HRz9wNKSRboEIRv2F0o5m8Hn4YAhahuDJILF+HtxLcx6DJh/fEO2TjUu/tskW/3ubFKp6V+wwXWomeEOU3IAC1hXIvFB3or4JFgK6XAdAtDC4uneFUMjMQmKpmQDNPHecaJ74uVk3cNBYoEmXIr1s7D0AImEkiHrLaP2utR1UbDUwSSZTwhiswy1H8XHG9Gc6pe5YBTnFOGaTUCzd68bY3hhX7jFQrQOZTM/C2mblck44u+ruxtmr7whd5h53xHk0RWhGYa81HM0myt9l9/zYSHiIycayMdO1RISEESqtbaJXFTt3a1/ubbl06lyeMlo03e25eKMezjhUK1JXDxjbHDDz3hTeqHb2VVLNGuE+9wWlhzgWHHIxYqzWgMII9exgdkVMMBqAGSY85F33D49WAy1ODQQKcQT+FQn5dAKjF4h3v+3uXXzgB2dDA9KgCvwcccM+wD3MxaLfyeZldIQh5nYzqXlXL//Xt4nTSAn7l4omwhBzkceFPy+KMaJkhU4+RSkAXOSZkpv554kI9A9M3m2jQb8PCxeyf5k4sT4TG8vKjs6uFczcdHa9t283cRV9xzrmBOM5RrqTDfOcR4Hy6PW0pdJ/y9R2JuCdX+98tFZCeINH44YoyGPa42q5w7Z/gfltitxxp6tpyNChKeZZgo+4laEgVEICyQoSCqKiBX1Q0JomSM9sZLmaSpcXQ+98vZsFOR1x8EeyQdlO+NplJxAYEJF6k0PldbD1I0x+pdQYSiSZkRUYkBlkQCT5JSiN7sh2oehp4ieV/Vdt1AbNRNhVSPNQw2KPAGaikjVO+hAaslYThBy0m/62teF1lGTgRMM9qCq43E5cDx8dd6gzC+VqRqtcHU+usLukLmRSCQSM5iALg3lHblr5nF4P6wLmzcEuaYoyIp2VjWfnXfIvKKEhApeUKN3XmmahkAcdrFmAjUoI6n6oYB5Sws+W7ly1Nb3au14RvJ7ZyHeZr+i7iMDUm9yz8vabKsTfAzke0e5PbW6xaQxxUKSXsr7yBQv1cENwQS7scpaZ/FAex/MPpXiUBTZIrOKQpQvAPE0X9gy+6YzR8zyp4igrn/AgILgVKjqZujfAaBshXPVpg+OjAeyy40PF1yCVkIUtD4mvPz3S2sNrUnMF1PlEVUG81bUxzBOK7xYB3jEWB6vPXaUN5B9HEX7I/bX7bw7uZuD/HnOx07JlM4NetMzTqeJ3azzjetb6+7T2cq27meqWzXe+KV7aa6TA/wVJdxA5/qMoG6DEOl9SaavRZ/v2nlu8cE6cpkbn20bH5ZCC6OvSnf/+3jY7M1b3tCHgRhMqdKnc+cPDjnxKaepyJo9YyU5q9T/XNHAU2lz/YZCOc9VD1bH8DXY9kHdYrm2BbVebTFtnh8rbHWpymZN4Ozj92mufYAj9Tm7N8TtjPYxgRGrnAYmyIZs9Jht1TKbW483t13DRi5c8B7FuOIvQV2MXbvUITuHcgGq7wrsENy2AVPX2UKe4pIq2eKSNvnNU3Iq4tI30XN6EyqJANYZ3reZJfTzO/tBLPeWO3xEtk/XzLu6HLkKtlUEOrBPtd1NZ3jirrYRh/meh1Xu+zdODPciC0u6u7wk4qoMl4qulgS6TdA7gH0BxGy1HY4hhFc1N3yl/BMqDL/UChyykj4CB+S1J8tn3GeIen3To1E2SI0TNzy3WjY0lGQPwdEmcLFhpruCabi48nwBfqru2AOmr8/qhmCC4vqxvTj6km7EUQuv3Be/JskT3w+v4T/CGHi5rsyyy7B/rP+fDi1+tE2oZ59yplmlBcZKkwvW0ncEMa4ui+ZYcHFJfz229fPNMsw/VQP/+pg73jbKqnss88rPLT0u3njj+FScQxMe3Of2ikQCXv3nZvfppRC/vMWXIXARBuCa1CidFmlnaFbMCMFGgI/At+x5H7Szq1qGn2uX3CI2/zGnURQ+wWVW7G18tPM4Mvjbqet8Wx8OcMUi4yv8wOPs3W8mpZgFLcmbkv0ZyfOAY+2+8eRhA5t+Huxr7i4dv1WsYqMJiTahVVuHA2Xfa6ySlHS/qG8LsiDXJJfOlNlC281xxb1hSww8ftv2wv6sTC2dQ7PvHVib3Y6WB1eI4AVqfNcVXRQFZ8hoDNvzI8Z/4Qji4P8Z9Mb3g0q4EK7DZfV9dfa+S3ZE+PPzL9uSiaTJaZlWEkPin8Myg0+IWMY06nu5AC2OLK+jMfY4WlnqptxCLuxTcX5aN61xWRr26fryu/I/KU8pW++BNDYOwlfFnmNNtyX4K4KQ7S5M6m0Y6lmd24K7jjFMpiQo8IxmcR+d8z5lt2p+3j14PV4N1Eju71zMltyqR6Pw1GT9rHdcRPejXG9We5XiDxiPrMHs05o3jcJzTtkKWWLq6urffOYMdEd5nfU3kDAB42J1XJz4b0cou1HZhgrfK4J1idUzjh+7gL1BtBHDFy7/P0RdIxDgvvvHQ8bF9vYSLVAAffVf747DlyNjalfClfYgsRDpa3Hrtj4zPyszbGEVt98Yc6T15xgtjbFxhacKewJnmWO+NgmOMkMQ7YtlhTnZZatG25bpdndW3FeZvHMWkPx/O3aBlKvYXPfO+Oduy3s9ZzZi2bsFTlwgQVPlp9MPft7Dauv/CewtBsSsSq0l7E98vJs9d6uzg2V9wkRXsDqDvKXIYANuNb+HHueO5aOtj9qdl7TbSe5A/Y8prmZ3BHArM01fd6xzG3VNN5pfolhc10NMHCY4W1LVl5TO12DMnima1CGz3QDioPc1Ns5XfYxBDxd9uEGPl320ePWoFnxrMxjlWErYmcYBP5eAfM6ItPtC/Uz3b4w3b7g/sJ0+8Jhg3bdOe+CcoIrDn4d+Ztfp/tttBrMPwEAAP//GmALZw==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/data.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/data.go index 7f2b22bd..fe86dd73 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/node.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/node.go index c5f5809b..f6256670 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/node.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/node.go @@ -1,10 +1,29 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kubernetes/util" ) const ( @@ -34,7 +53,8 @@ func init() { // multiple fetch calls. type MetricSet struct { mb.BaseMetricSet - http *helper.HTTP + http *helper.HTTP + enricher util.Enricher } // New create a new instance of the MetricSet @@ -45,9 +65,11 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { if err != nil { return nil, err } + return &MetricSet{ BaseMetricSet: base, http: http, + enricher: util.NewResourceMetadataEnricher(base, &kubernetes.Node{}, false), }, nil } @@ -55,6 +77,8 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() (common.MapStr, error) { + m.enricher.Start() + body, err := m.http.FetchContent() if err != nil { return nil, err @@ -65,5 +89,13 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { return nil, err } + m.enricher.Enrich([]common.MapStr{event}) + return event, nil } + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/node_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/node_test.go deleted file mode 100644 index 864194d3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/node/node_test.go +++ /dev/null @@ -1,66 +0,0 @@ -// +build !integration - -package node - -import ( - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -const testFile = "../_meta/test/stats_summary.json" - -func TestEventMapping(t *testing.T) { - f, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(f) - assert.NoError(t, err, "cannot read test file "+testFile) - - event, err := eventMapping(body) - assert.NoError(t, err, "error mapping "+testFile) - - testCases := map[string]interface{}{ - "cpu.usage.core.ns": 4189523881380, - "cpu.usage.nanocores": 18691146, - - "memory.available.bytes": 1768316928, - "memory.usage.bytes": 2764943360, - "memory.rss.bytes": 2150400, - "memory.workingset.bytes": 2111090688, - "memory.pagefaults": 131567, - "memory.majorpagefaults": 103, - - "name": "gke-beats-default-pool-a5b33e2e-hdww", - - "fs.available.bytes": 98727014400, - "fs.capacity.bytes": 101258067968, - "fs.used.bytes": 2514276352, - "fs.inodes.used": 138624, - "fs.inodes.free": 6120096, - "fs.inodes.count": 6258720, - - "network.rx.bytes": 1115133198, - "network.rx.errors": 0, - "network.tx.bytes": 812729002, - "network.tx.errors": 0, - - "runtime.imagefs.available.bytes": 98727014400, - "runtime.imagefs.capacity.bytes": 101258067968, - "runtime.imagefs.used.bytes": 860204379, - } - - for k, v := range testCases { - testValue(t, event, k, v) - } -} - -func testValue(t *testing.T, event common.MapStr, field string, value interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, "Could not read field "+field) - assert.EqualValues(t, data, value, "Wrong value for field "+field) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/data.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/data.go index 0a8b7683..91e8b184 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pod import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/pod.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/pod.go index 84be743c..daae3a36 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/pod.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/pod.go @@ -1,7 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pod import ( "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -35,7 +53,8 @@ func init() { // multiple fetch calls. type MetricSet struct { mb.BaseMetricSet - http *helper.HTTP + http *helper.HTTP + enricher util.Enricher } // New create a new instance of the MetricSet @@ -46,9 +65,11 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { if err != nil { return nil, err } + return &MetricSet{ BaseMetricSet: base, http: http, + enricher: util.NewResourceMetadataEnricher(base, &kubernetes.Pod{}, true), }, nil } @@ -56,6 +77,8 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { + m.enricher.Start() + body, err := m.http.FetchContent() if err != nil { return nil, err @@ -66,5 +89,13 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { return nil, err } + m.enricher.Enrich(events) + return events, nil } + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/pod_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/pod_test.go deleted file mode 100644 index e527c64a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/pod/pod_test.go +++ /dev/null @@ -1,62 +0,0 @@ -// +build !integration - -package pod - -import ( - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/module/kubernetes/util" -) - -const testFile = "../_meta/test/stats_summary.json" - -func TestEventMapping(t *testing.T) { - f, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(f) - assert.NoError(t, err, "cannot read test file "+testFile) - - cache := util.NewPerfMetricsCache() - cache.NodeCoresAllocatable.Set("gke-beats-default-pool-a5b33e2e-hdww", 2) - cache.NodeMemAllocatable.Set("gke-beats-default-pool-a5b33e2e-hdww", 146227200) - cache.ContainerMemLimit.Set(util.ContainerUID("default", "nginx-deployment-2303442956-pcqfc", "nginx"), 14622720) - - events, err := eventMapping(body, cache) - assert.NoError(t, err, "error mapping "+testFile) - - assert.Len(t, events, 1, "got wrong number of events") - - testCases := map[string]interface{}{ - "name": "nginx-deployment-2303442956-pcqfc", - - "network.rx.bytes": 107056, - "network.rx.errors": 0, - "network.tx.bytes": 72447, - "network.tx.errors": 0, - - // calculated pct fields: - "cpu.usage.nanocores": 11263994, - "cpu.usage.node.pct": 0.005631997, - "cpu.usage.limit.pct": 0.005631997, - - "memory.usage.bytes": 1462272, - "memory.usage.node.pct": 0.01, - "memory.usage.limit.pct": 0.1, - } - - for k, v := range testCases { - testValue(t, events[0], k, v) - } -} - -func testValue(t *testing.T, event common.MapStr, field string, expected interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, "Could not read field "+field) - assert.EqualValues(t, expected, data, "Wrong value for field "+field) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.expected b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.expected index 67904dd3..c3d5f250 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.expected +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.expected @@ -1,158 +1,313 @@ [ { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-dns-v20-5g5cb", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kubernetes-dashboard-vw0l6" + } + }, "_namespace": "container", - "cpu.request.cores": 0.1, - "cpu.request.nanocores": 100000000, - "id": "docker://fa3d83f648de42492b38fa3e8501d109376f391c50f2bd210c895c8477ae4b62", - "image": "gcr.io/google_containers/kubedns-amd64:1.9", - "memory.limit.bytes": 178257920, - "memory.request.bytes": 73400320, - "name": "kubedns", - "status.phase": "running", - "status.ready": true, - "status.restarts": 2 - }, - { - "_module.namespace": "kube-system", - "_module.pod.name": "tiller-deploy-3067024529-9lpmb", - "_namespace": "container", - "id": "docker://469f5d2b7854eb52e5d13dc0cd3e664c1b682b157aabaf596ffe4984f1516902", - "image": "gcr.io/kubernetes-helm/tiller:v2.3.1", - "name": "tiller", - "status.phase": "running", - "status.ready": true, - "status.restarts": 1 + "id": "docker://3aaee8bdd311c015240e99fa2a5a5f2f26b11b51236a683b39d8c1902e423978", + "image": "gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1", + "name": "kubernetes-dashboard", + "status": { + "phase": "running", + "ready": true, + "restarts": 2 + } }, { - "_module.namespace": "jenkins", - "_module.node.name": "minikube", - "_module.pod.name": "wise-lynx-jenkins-1616735317-svn6k", + "_module": { + "namespace": "jenkins", + "node": { + "name": "minikube" + }, + "pod": { + "name": "wise-lynx-jenkins-1616735317-svn6k" + } + }, "_namespace": "container", - "cpu.request.cores": 0.2, - "cpu.request.nanocores": 200000000, + "cpu": { + "request": { + "cores": 0.2 + } + }, "id": "docker://e2ee1c2c7b8d4e5fd8c834b83cba8377d6b0e39da18157688ccc1a06b7c53117", "image": "jenkinsci/jenkins:2.46.1", - "memory.request.bytes": 268435456, + "memory": { + "request": { + "bytes": 268435456 + } + }, "name": "wise-lynx-jenkins", - "status.phase": "running", - "status.ready": true, - "status.restarts": 1 + "status": { + "phase": "running", + "ready": true, + "restarts": 1 + } }, { - "_module.namespace": "test", - "_module.node.name": "minikube-test", - "_module.pod.name": "kube-dns-v20-5g5cb-test", + "_module": { + "namespace": "default", + "node": { + "name": "minikube" + }, + "pod": { + "name": "jumpy-owl-redis-3481028193-s78x9" + } + }, "_namespace": "container", - "cpu.request.cores": 0.2, - "cpu.request.nanocores": 200000000, - "id": "docker://fa3d83f648de42492b38fa3e8501d109376f391c50f2bd210c895c8477ae4b62-test", - "image": "gcr.io/google_containers/kubedns-amd64:1.9-test", - "memory.limit.bytes": 278257920, - "memory.request.bytes": 83400320, - "name": "kubedns", - "status.phase": "terminated", - "status.ready": false, - "status.restarts": 3 + "cpu": { + "request": { + "cores": 0.1 + } + }, + "id": "docker://4fa227874ee68536bf902394fb662f07b99099798ca9cd5c1506b79075acc065", + "image": "bitnami/redis:3.2.8-r2", + "memory": { + "request": { + "bytes": 268435456 + } + }, + "name": "jumpy-owl-redis", + "status": { + "phase": "waiting", + "ready": false, + "restarts": 270 + } }, { - "_module.namespace": "kube-system", - "_module.pod.name": "kube-state-metrics-1303537707-mnzbp", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-state-metrics-1303537707-7ncd1" + } + }, "_namespace": "container", - "cpu.limit.cores": 0.2, - "cpu.limit.nanocores": 200000000, - "cpu.request.cores": 0.1, - "cpu.request.nanocores": 100000000, - "memory.limit.bytes": 52428800, - "memory.request.bytes": 31457280, - "name": "kube-state-metrics" + "cpu": { + "limit": { + "cores": 0.2 + }, + "request": { + "cores": 0.1 + } + }, + "id": "docker://973cbe45982c5126a5caf8c58d964c0ab1d5bb2c165ccc59715fcc1ebd58ab3d", + "image": "gcr.io/google_containers/kube-state-metrics:v0.4.1", + "memory": { + "limit": { + "bytes": 52428800 + }, + "request": { + "bytes": 31457280 + } + }, + "name": "kube-state-metrics", + "status": { + "phase": "running", + "ready": true, + "restarts": 1 + } + }, + { + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-dns-v20-5g5cb" + } + }, + "_namespace": "container", + "cpu": { + "request": { + "cores": 0.1 + } + }, + "id": "docker://fa3d83f648de42492b38fa3e8501d109376f391c50f2bd210c895c8477ae4b62", + "image": "gcr.io/google_containers/kubedns-amd64:1.9", + "memory": { + "limit": { + "bytes": 178257920 + }, + "request": { + "bytes": 73400320 + } + }, + "name": "kubedns", + "status": { + "phase": "running", + "ready": true, + "restarts": 2 + } }, { - "_module.namespace": "kube-system", - "_module.pod.name": "kube-dns-v20-5g5cb", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-dns-v20-5g5cb" + } + }, "_namespace": "container", "id": "docker://9a4c9462cd078d7be4f0a9b94bcfeb69d5fdd76bff67142df3f58367ac7e8d61", "image": "gcr.io/google_containers/kube-dnsmasq-amd64:1.4", "name": "dnsmasq", - "status.phase": "running", - "status.ready": true, - "status.restarts": 2 + "status": { + "phase": "running", + "ready": true, + "restarts": 2 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-dns-v20-5g5cb", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-dns-v20-5g5cb" + } + }, "_namespace": "container", - "cpu.request.cores": 0.01, - "cpu.request.nanocores": 10000000, + "cpu": { + "request": { + "cores": 0.01 + } + }, "id": "docker://52fa55e051dc5b68e44c027588685b7edd85aaa03b07f7216d399249ff4fc821", "image": "gcr.io/google_containers/exechealthz-amd64:1.2", - "memory.limit.bytes": 52428800, - "memory.request.bytes": 52428800, + "memory": { + "limit": { + "bytes": 52428800 + }, + "request": { + "bytes": 52428800 + } + }, "name": "healthz", - "status.phase": "running", - "status.ready": true, - "status.restarts": 2 + "status": { + "phase": "running", + "ready": true, + "restarts": 2 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-addon-manager-minikube", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "tiller-deploy-3067024529-9lpmb" + } + }, "_namespace": "container", - "cpu.request.cores": 0.005, - "cpu.request.nanocores": 5000000, - "id": "docker://91fdd43f6b1b4c3dd133cfca53e0b1210bc557c2ae56006026b5ccdb5f52826f", - "image": "gcr.io/google-containers/kube-addon-manager:v6.3", - "memory.request.bytes": 52428800, - "name": "kube-addon-manager", - "status.phase": "running", - "status.ready": true, - "status.restarts": 2 + "id": "docker://469f5d2b7854eb52e5d13dc0cd3e664c1b682b157aabaf596ffe4984f1516902", + "image": "gcr.io/kubernetes-helm/tiller:v2.3.1", + "name": "tiller", + "status": { + "phase": "running", + "ready": true, + "restarts": 1 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-state-metrics-1303537707-7ncd1", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-addon-manager-minikube" + } + }, "_namespace": "container", - "cpu.limit.cores": 0.2, - "cpu.limit.nanocores": 200000000, - "cpu.request.cores": 0.1, - "cpu.request.nanocores": 100000000, - "id": "docker://973cbe45982c5126a5caf8c58d964c0ab1d5bb2c165ccc59715fcc1ebd58ab3d", - "image": "gcr.io/google_containers/kube-state-metrics:v0.4.1", - "memory.limit.bytes": 52428800, - "memory.request.bytes": 31457280, - "name": "kube-state-metrics", - "status.phase": "running", - "status.ready": true, - "status.restarts": 1 + "cpu": { + "request": { + "cores": 0.005 + } + }, + "id": "docker://91fdd43f6b1b4c3dd133cfca53e0b1210bc557c2ae56006026b5ccdb5f52826f", + "image": "gcr.io/google-containers/kube-addon-manager:v6.3", + "memory": { + "request": { + "bytes": 52428800 + } + }, + "name": "kube-addon-manager", + "status": { + "phase": "running", + "ready": true, + "restarts": 2 + } }, { - "_module.namespace": "kube-system", - "_module.pod.name": "kubernetes-dashboard-vw0l6", + "_module": { + "namespace": "kube-system", + "pod": { + "name": "kube-state-metrics-1303537707-mnzbp" + } + }, "_namespace": "container", - "id": "docker://3aaee8bdd311c015240e99fa2a5a5f2f26b11b51236a683b39d8c1902e423978", - "image": "gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1", - "name": "kubernetes-dashboard", - "status.phase": "running", - "status.ready": true, - "status.restarts": 2 + "cpu": { + "limit": { + "cores": 0.2 + }, + "request": { + "cores": 0.1 + } + }, + "memory": { + "limit": { + "bytes": 52428800 + }, + "request": { + "bytes": 31457280 + } + }, + "name": "kube-state-metrics" }, { - "_module.namespace": "default", - "_module.node.name": "minikube", - "_module.pod.name": "jumpy-owl-redis-3481028193-s78x9", + "_module": { + "namespace": "test", + "node": { + "name": "minikube-test" + }, + "pod": { + "name": "kube-dns-v20-5g5cb-test" + } + }, "_namespace": "container", - "cpu.request.cores": 0.1, - "cpu.request.nanocores": 100000000, - "id": "docker://4fa227874ee68536bf902394fb662f07b99099798ca9cd5c1506b79075acc065", - "image": "bitnami/redis:3.2.8-r2", - "memory.request.bytes": 268435456, - "name": "jumpy-owl-redis", - "status.phase": "waiting", - "status.ready": false, - "status.restarts": 270 + "cpu": { + "request": { + "cores": 0.2 + } + }, + "id": "docker://fa3d83f648de42492b38fa3e8501d109376f391c50f2bd210c895c8477ae4b62-test", + "image": "gcr.io/google_containers/kubedns-amd64:1.9-test", + "memory": { + "limit": { + "bytes": 278257920 + }, + "request": { + "bytes": 83400320 + } + }, + "name": "kubedns", + "status": { + "phase": "terminated", + "ready": false, + "restarts": 3 + } } ] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.v1.3.0.expected b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.v1.3.0.expected index 7a935a01..8ea63048 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.v1.3.0.expected +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/_meta/test/kube-state-metrics.v1.3.0.expected @@ -1,187 +1,354 @@ [ { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-apiserver-minikube", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-dns-6f4fd4bdf-wlmht" + } + }, "_namespace": "container", - "cpu.request.cores": 0.25, - "cpu.request.nanocores": 250000000, - "id": "docker://e9568dfef1dd249cabac4bf09e6bf4a239fe738ae20eba072b6516676fce4bf6", - "image": "gcr.io/google_containers/kube-apiserver-amd64:v1.9.7", - "name": "kube-apiserver", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "cpu": { + "request": { + "cores": 0.1 + } + }, + "id": "docker://1958e71d048065d38ce83dafda567c5fa9d0c1278cd7292d55b9f1d80b0a67f9", + "image": "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7", + "memory": { + "limit": { + "bytes": 178257920 + }, + "request": { + "bytes": 73400320 + } + }, + "name": "kubedns", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-controller-manager-minikube", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-controller-manager-minikube" + } + }, "_namespace": "container", - "cpu.request.cores": 0.2, - "cpu.request.nanocores": 200000000, + "cpu": { + "request": { + "cores": 0.2 + } + }, "id": "docker://4beb9aab887ca162c9cb3534c4826156636241052cd548153eaa2a170b6d102f", "image": "gcr.io/google_containers/kube-controller-manager-amd64:v1.9.7", "name": "kube-controller-manager", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-dns-6f4fd4bdf-wlmht", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-state-metrics-6479d88c5c-5b6cl" + } + }, "_namespace": "container", - "cpu.request.cores": 0.01, - "cpu.request.nanocores": 10000000, - "id": "docker://aad0addd205dc72dc7abc8f9d02a1b429a2f2e1df3acc60431ca6b79746c093b", - "image": "gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7", - "memory.request.bytes": 20971520, - "name": "sidecar", - "status.phase": "running", - "status.ready": true, - "status.reason": "OOMKilled", - "status.restarts": 0 + "cpu": { + "limit": { + "cores": 0.1 + }, + "request": { + "cores": 0.1 + } + }, + "id": "docker://948c4ebd8ca4fdf352e7fbf7f5c5d381af7e615ced435dc42fde0c1d25851320", + "image": "k8s.gcr.io/addon-resizer:1.7", + "memory": { + "limit": { + "bytes": 31457280 + }, + "request": { + "bytes": 31457280 + } + }, + "name": "addon-resizer", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.pod.name": "storage-provisioner", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-addon-manager-minikube" + } + }, "_namespace": "container", - "id": "docker://f4cc07b8e7ee5952738c69a0bff0c7b331c10af66faa541197684127d393b760", - "image": "gcr.io/k8s-minikube/storage-provisioner:v1.8.1", - "name": "storage-provisioner", - "status.phase": "running", - "status.ready": true, - "status.reason": "ImagePullBackOff", - "status.restarts": 0 + "cpu": { + "request": { + "cores": 0.005 + } + }, + "id": "docker://ab382dbe8f8265f88ee9fec7de142f778da4a5fd9fe0334e3bdb6fe851124c08", + "image": "k8s.gcr.io/kube-addon-manager:v8.6", + "memory": { + "request": { + "bytes": 52428800 + } + }, + "name": "kube-addon-manager", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.pod.name": "etcd-minikube", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-dns-6f4fd4bdf-wlmht" + } + }, "_namespace": "container", - "id": "docker://6e96fd8a687409b2314dcc01f209bb0c813c2fb08b8f75ad1695e120d41e1a2a", - "image": "gcr.io/google_containers/etcd-amd64:3.1.11", - "name": "etcd", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "cpu": { + "request": { + "cores": 0.15 + } + }, + "id": "docker://e9560bbace13ca19de4b3771023198e8568f6b5ed6af3a949f10a5b8137b5be9", + "image": "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7", + "memory": { + "request": { + "bytes": 20971520 + } + }, + "name": "dnsmasq", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-addon-manager-minikube", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "etcd-minikube" + } + }, "_namespace": "container", - "cpu.request.cores": 0.005, - "cpu.request.nanocores": 5000000, - "id": "docker://ab382dbe8f8265f88ee9fec7de142f778da4a5fd9fe0334e3bdb6fe851124c08", - "image": "k8s.gcr.io/kube-addon-manager:v8.6", - "memory.request.bytes": 52428800, - "name": "kube-addon-manager", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "id": "docker://6e96fd8a687409b2314dcc01f209bb0c813c2fb08b8f75ad1695e120d41e1a2a", + "image": "gcr.io/google_containers/etcd-amd64:3.1.11", + "name": "etcd", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.pod.name": "kube-proxy-znhg6", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "storage-provisioner" + } + }, "_namespace": "container", - "id": "docker://76c260259ddfd0267b5acb4e514465215ef1ebfa93a4057d592828772e6b39f5", - "image": "gcr.io/google_containers/kube-proxy-amd64:v1.9.7", - "name": "kube-proxy", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "id": "docker://f4cc07b8e7ee5952738c69a0bff0c7b331c10af66faa541197684127d393b760", + "image": "gcr.io/k8s-minikube/storage-provisioner:v1.8.1", + "name": "storage-provisioner", + "status": { + "phase": "running", + "ready": true, + "reason": "ImagePullBackOff", + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-scheduler-minikube", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kubernetes-dashboard-77d8b98585-vqtzm" + } + }, "_namespace": "container", - "cpu.request.cores": 0.1, - "cpu.request.nanocores": 100000000, - "id": "docker://eadcbd54ba914dff6475ae64805887967cfb973aeb9b07364c94372658a71d11", - "image": "gcr.io/google_containers/kube-scheduler-amd64:v1.9.7", - "name": "kube-scheduler", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "id": "docker://c46bc2164edcb5972be6fc9174155e61179cb04314c4f6da5d25d3a76acadee6", + "image": "k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.1", + "name": "kubernetes-dashboard", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-state-metrics-6479d88c5c-5b6cl", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-state-metrics-6479d88c5c-5b6cl" + } + }, "_namespace": "container", - "cpu.limit.cores": 0.101, - "cpu.limit.nanocores": 101000000, - "cpu.request.cores": 0.101, - "cpu.request.nanocores": 101000000, + "cpu": { + "limit": { + "cores": 0.101 + }, + "request": { + "cores": 0.101 + } + }, "id": "docker://88951e0178ea5131fa3e2d7cafacb3a7e63700795dd6fa0d40ed2e4ac1f52f9c", "image": "quay.io/coreos/kube-state-metrics:v1.3.0", - "memory.limit.bytes": 106954752, - "memory.request.bytes": 106954752, + "memory": { + "limit": { + "bytes": 106954752 + }, + "request": { + "bytes": 106954752 + } + }, "name": "kube-state-metrics", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-dns-6f4fd4bdf-wlmht", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-proxy-znhg6" + } + }, "_namespace": "container", - "cpu.request.cores": 0.1, - "cpu.request.nanocores": 100000000, - "id": "docker://1958e71d048065d38ce83dafda567c5fa9d0c1278cd7292d55b9f1d80b0a67f9", - "image": "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.7", - "memory.limit.bytes": 178257920, - "memory.request.bytes": 73400320, - "name": "kubedns", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "id": "docker://76c260259ddfd0267b5acb4e514465215ef1ebfa93a4057d592828772e6b39f5", + "image": "gcr.io/google_containers/kube-proxy-amd64:v1.9.7", + "name": "kube-proxy", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.pod.name": "kubernetes-dashboard-77d8b98585-vqtzm", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-apiserver-minikube" + } + }, "_namespace": "container", - "id": "docker://c46bc2164edcb5972be6fc9174155e61179cb04314c4f6da5d25d3a76acadee6", - "image": "k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.1", - "name": "kubernetes-dashboard", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "cpu": { + "request": { + "cores": 0.25 + } + }, + "id": "docker://e9568dfef1dd249cabac4bf09e6bf4a239fe738ae20eba072b6516676fce4bf6", + "image": "gcr.io/google_containers/kube-apiserver-amd64:v1.9.7", + "name": "kube-apiserver", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-state-metrics-6479d88c5c-5b6cl", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-dns-6f4fd4bdf-wlmht" + } + }, "_namespace": "container", - "cpu.limit.cores": 0.1, - "cpu.limit.nanocores": 100000000, - "cpu.request.cores": 0.1, - "cpu.request.nanocores": 100000000, - "id": "docker://948c4ebd8ca4fdf352e7fbf7f5c5d381af7e615ced435dc42fde0c1d25851320", - "image": "k8s.gcr.io/addon-resizer:1.7", - "memory.limit.bytes": 31457280, - "memory.request.bytes": 31457280, - "name": "addon-resizer", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "cpu": { + "request": { + "cores": 0.01 + } + }, + "id": "docker://aad0addd205dc72dc7abc8f9d02a1b429a2f2e1df3acc60431ca6b79746c093b", + "image": "gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.7", + "memory": { + "request": { + "bytes": 20971520 + } + }, + "name": "sidecar", + "status": { + "phase": "running", + "ready": true, + "reason": "OOMKilled", + "restarts": 0 + } }, { - "_module.namespace": "kube-system", - "_module.node.name": "minikube", - "_module.pod.name": "kube-dns-6f4fd4bdf-wlmht", + "_module": { + "namespace": "kube-system", + "node": { + "name": "minikube" + }, + "pod": { + "name": "kube-scheduler-minikube" + } + }, "_namespace": "container", - "cpu.request.cores": 0.15, - "cpu.request.nanocores": 150000000, - "id": "docker://e9560bbace13ca19de4b3771023198e8568f6b5ed6af3a949f10a5b8137b5be9", - "image": "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.7", - "memory.request.bytes": 20971520, - "name": "dnsmasq", - "status.phase": "running", - "status.ready": true, - "status.restarts": 0 + "cpu": { + "request": { + "cores": 0.1 + } + }, + "id": "docker://eadcbd54ba914dff6475ae64805887967cfb973aeb9b07364c94372658a71d11", + "image": "gcr.io/google_containers/kube-scheduler-amd64:v1.9.7", + "name": "kube-scheduler", + "status": { + "phase": "running", + "ready": true, + "restarts": 0 + } } ] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/state_container.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/state_container.go index b30c9fa1..2343319d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/state_container.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/state_container.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 state_container import ( @@ -5,6 +22,7 @@ import ( p "github.com/elastic/beats/metricbeat/helper/prometheus" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kubernetes/util" ) const ( @@ -20,9 +38,11 @@ var ( DefaultPath: defaultPath, }.Build() + // Mapping of state metrics mapping = &p.MetricsMapping{ Metrics: map[string]p.MetricMap{ - "kube_pod_container_info": p.Metric(""), + "kube_pod_info": p.InfoMetric(), + "kube_pod_container_info": p.InfoMetric(), "kube_pod_container_resource_limits_cpu_cores": p.Metric("cpu.limit.cores"), "kube_pod_container_resource_requests_cpu_cores": p.Metric("cpu.request.cores"), "kube_pod_container_resource_limits_memory_bytes": p.Metric("memory.limit.bytes"), @@ -33,8 +53,8 @@ var ( "kube_pod_container_status_running": p.KeywordMetric("status.phase", "running"), "kube_pod_container_status_terminated": p.KeywordMetric("status.phase", "terminated"), "kube_pod_container_status_waiting": p.KeywordMetric("status.phase", "waiting"), - "kube_pod_container_status_terminated_reason": p.LabelMetric("status.reason", "reason", false), - "kube_pod_container_status_waiting_reason": p.LabelMetric("status.reason", "reason", false), + "kube_pod_container_status_terminated_reason": p.LabelMetric("status.reason", "reason"), + "kube_pod_container_status_waiting_reason": p.LabelMetric("status.reason", "reason"), }, Labels: map[string]p.LabelMap{ @@ -68,6 +88,7 @@ func init() { type MetricSet struct { mb.BaseMetricSet prometheus p.Prometheus + enricher util.Enricher } // New create a new instance of the MetricSet @@ -81,6 +102,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ BaseMetricSet: base, prometheus: prometheus, + enricher: util.NewContainerMetadataEnricher(base, false), }, nil } @@ -88,11 +110,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { + m.enricher.Start() + events, err := m.prometheus.GetProcessedMetrics(mapping) if err != nil { return nil, err } + m.enricher.Enrich(events) + + // Calculate deprecated nanocores values for _, event := range events { if request, ok := event["cpu.request.cores"]; ok { if requestCores, ok := request.(float64); ok { @@ -109,3 +136,9 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { return events, err } + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/state_container_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/state_container_test.go deleted file mode 100644 index 826213c7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_container/state_container_test.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build !integration - -package state_container - -import ( - "testing" - - "github.com/elastic/beats/metricbeat/helper/prometheus/ptest" -) - -func TestEventMapping(t *testing.T) { - ptest.TestMetricSetEventsFetcher(t, "kubernetes", "state_container", - ptest.TestCases{ - { - MetricsFile: "../_meta/test/kube-state-metrics", - ExpectedFile: "./_meta/test/kube-state-metrics.expected", - }, - { - MetricsFile: "../_meta/test/kube-state-metrics.v1.3.0", - ExpectedFile: "./_meta/test/kube-state-metrics.v1.3.0.expected", - }, - }, - ) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_deployment/state_deployment.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_deployment/state_deployment.go index 7f4bd8d0..28e7b70c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_deployment/state_deployment.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_deployment/state_deployment.go @@ -1,11 +1,30 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 state_deployment import ( "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" p "github.com/elastic/beats/metricbeat/helper/prometheus" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kubernetes/util" ) const ( @@ -21,7 +40,7 @@ var ( mapping = &p.MetricsMapping{ Metrics: map[string]p.MetricMap{ - "kube_deployment_metadata_generation": p.Metric(""), + "kube_deployment_metadata_generation": p.InfoMetric(), "kube_deployment_status_replicas_updated": p.Metric("replicas.updated"), "kube_deployment_status_replicas_unavailable": p.Metric("replicas.unavailable"), "kube_deployment_status_replicas_available": p.Metric("replicas.available"), @@ -55,6 +74,7 @@ func init() { type MetricSet struct { mb.BaseMetricSet prometheus p.Prometheus + enricher util.Enricher } // New create a new instance of the MetricSet @@ -68,6 +88,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ BaseMetricSet: base, prometheus: prometheus, + enricher: util.NewResourceMetadataEnricher(base, &kubernetes.Deployment{}, false), }, nil } @@ -75,5 +96,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { - return m.prometheus.GetProcessedMetrics(mapping) + m.enricher.Start() + + events, err := m.prometheus.GetProcessedMetrics(mapping) + if err == nil { + m.enricher.Enrich(events) + } + + return events, err +} + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_deployment/state_deployment_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_deployment/state_deployment_test.go deleted file mode 100644 index 3a2761a3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_deployment/state_deployment_test.go +++ /dev/null @@ -1,119 +0,0 @@ -// +build !integration - -package state_deployment - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "os" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -const testFile = "../_meta/test/kube-state-metrics" - -func TestEventMapping(t *testing.T) { - file, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(file) - assert.NoError(t, err, "cannot read test file "+testFile) - - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(body)) - })) - - server.Start() - defer server.Close() - - config := map[string]interface{}{ - "module": "kubernetes", - "metricsets": []string{"state_deployment"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - - events, err := f.Fetch() - assert.NoError(t, err) - - assert.Equal(t, 5, len(events), "Wrong number of returned events") - - testCases := testCases() - for _, event := range events { - name, err := event.GetValue("name") - if err == nil { - namespace, err := event.GetValue("_module.namespace") - if err == nil { - eventKey := namespace.(string) + "@" + name.(string) - oneTestCase, oneTestCaseFound := testCases[eventKey] - if oneTestCaseFound { - for k, v := range oneTestCase { - testValue(eventKey, t, event, k, v) - } - delete(testCases, eventKey) - } - } - } - } - - if len(testCases) > 0 { - t.Errorf("Test reference events not found: %v, \n\ngot: %v", testCases, events) - } -} - -func testValue(eventKey string, t *testing.T, event common.MapStr, field string, expected interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, eventKey+": Could not read field "+field) - assert.EqualValues(t, expected, data, eventKey+": Wrong value for field "+field) -} - -// Test cases built to match 3 examples in 'module/kubernetes/_meta/test/kube-state-metrics'. -// In particular, test same named deployments in different namespaces -func testCases() map[string]map[string]interface{} { - return map[string]map[string]interface{}{ - "default@jumpy-owl-redis": { - "_namespace": "deployment", - "_module.namespace": "default", - - "name": "jumpy-owl-redis", - "paused": false, - - "replicas.available": 0, - "replicas.desired": 1, - "replicas.unavailable": 1, - "replicas.updated": 1, - }, - "test@jumpy-owl-redis": { - "_namespace": "deployment", - "_module.namespace": "test", - - "name": "jumpy-owl-redis", - "paused": true, - - "replicas.available": 6, - "replicas.desired": 2, - "replicas.unavailable": 7, - "replicas.updated": 8, - }, - "kube-system@tiller-deploy": { - "_namespace": "deployment", - "_module.namespace": "kube-system", - - "name": "tiller-deploy", - "paused": false, - - "replicas.available": 1, - "replicas.desired": 1, - "replicas.unavailable": 0, - "replicas.updated": 1, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.expected b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.expected new file mode 100644 index 00000000..90b0abf2 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.expected @@ -0,0 +1,66 @@ +[ + { + "_namespace": "node", + "cpu": { + "allocatable": { + "cores": 3 + }, + "capacity": { + "cores": 4 + } + }, + "memory": { + "allocatable": { + "bytes": 3097786880 + }, + "capacity": { + "bytes": 4097786880 + } + }, + "name": "minikube-test", + "pod": { + "allocatable": { + "total": 210 + }, + "capacity": { + "total": 310 + } + }, + "status": { + "ready": "true", + "unschedulable": true + } + }, + { + "_namespace": "node", + "cpu": { + "allocatable": { + "cores": 2 + }, + "capacity": { + "cores": 2 + } + }, + "memory": { + "allocatable": { + "bytes": 2097786880 + }, + "capacity": { + "bytes": 2097786880 + } + }, + "name": "minikube", + "pod": { + "allocatable": { + "total": 110 + }, + "capacity": { + "total": 110 + } + }, + "status": { + "ready": "true", + "unschedulable": false + } + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.v1.3.0.expected b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.v1.3.0.expected new file mode 100644 index 00000000..2d13051b --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.v1.3.0.expected @@ -0,0 +1,34 @@ +[ + { + "_namespace": "node", + "cpu": { + "allocatable": { + "cores": 2 + }, + "capacity": { + "cores": 2 + } + }, + "memory": { + "allocatable": { + "bytes": 1992347648 + }, + "capacity": { + "bytes": 2097205248 + } + }, + "name": "minikube", + "pod": { + "allocatable": { + "total": 110 + }, + "capacity": { + "total": 110 + } + }, + "status": { + "ready": "true", + "unschedulable": false + } + } +] \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/state_node.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/state_node.go index 1bb5425d..ab9e2b2e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/state_node.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/state_node.go @@ -1,10 +1,29 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 state_node import ( "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" p "github.com/elastic/beats/metricbeat/helper/prometheus" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kubernetes/util" ) const ( @@ -20,7 +39,7 @@ var ( mapping = &p.MetricsMapping{ Metrics: map[string]p.MetricMap{ - "kube_node_info": p.Metric(""), + "kube_node_info": p.InfoMetric(), "kube_node_status_allocatable_pods": p.Metric("pod.allocatable.total"), "kube_node_status_capacity_pods": p.Metric("pod.capacity.total"), "kube_node_status_capacity_memory_bytes": p.Metric("memory.capacity.bytes"), @@ -28,7 +47,11 @@ var ( "kube_node_status_capacity_cpu_cores": p.Metric("cpu.capacity.cores"), "kube_node_status_allocatable_cpu_cores": p.Metric("cpu.allocatable.cores"), "kube_node_spec_unschedulable": p.BooleanMetric("status.unschedulable"), - "kube_node_status_ready": p.LabelMetric("status.ready", "condition", false), + "kube_node_status_ready": p.LabelMetric("status.ready", "condition"), + "kube_node_status_condition": p.LabelMetric("status.ready", "status", + p.OpFilter(map[string]string{ + "condition": "Ready", + })), }, Labels: map[string]p.LabelMap{ @@ -56,6 +79,7 @@ func init() { type MetricSet struct { mb.BaseMetricSet prometheus p.Prometheus + enricher util.Enricher } // New create a new instance of the MetricSet @@ -66,9 +90,11 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { if err != nil { return nil, err } + return &MetricSet{ BaseMetricSet: base, prometheus: prometheus, + enricher: util.NewResourceMetadataEnricher(base, &kubernetes.Node{}, false), }, nil } @@ -76,5 +102,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { - return m.prometheus.GetProcessedMetrics(mapping) + m.enricher.Start() + + events, err := m.prometheus.GetProcessedMetrics(mapping) + if err == nil { + m.enricher.Enrich(events) + } + + return events, err +} + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/state_node_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/state_node_test.go deleted file mode 100644 index ed282bbc..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_node/state_node_test.go +++ /dev/null @@ -1,110 +0,0 @@ -// +build !integration - -package state_node - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "os" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -const testFile = "../_meta/test/kube-state-metrics" - -func TestEventMapping(t *testing.T) { - file, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(file) - assert.NoError(t, err, "cannot read test file "+testFile) - - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(body)) - })) - - server.Start() - defer server.Close() - - config := map[string]interface{}{ - "module": "kubernetes", - "metricsets": []string{"state_node"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - - events, err := f.Fetch() - assert.NoError(t, err) - - assert.Equal(t, 2, len(events), "Wrong number of returned events") - - testCases := testCases() - for _, event := range events { - name, err := event.GetValue("name") - if err == nil { - eventKey := name.(string) - oneTestCase, oneTestCaseFound := testCases[eventKey] - if oneTestCaseFound { - for k, v := range oneTestCase { - testValue(eventKey, t, event, k, v) - } - delete(testCases, eventKey) - } - } - } - - if len(testCases) > 0 { - t.Errorf("Test reference events not found: %v, \n\ngot: %v", testCases, events) - } -} - -func testValue(eventKey string, t *testing.T, event common.MapStr, field string, expected interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, eventKey+": Could not read field "+field) - assert.EqualValues(t, expected, data, eventKey+": Wrong value for field "+field) -} - -func testCases() map[string]map[string]interface{} { - return map[string]map[string]interface{}{ - "minikube": { - "_namespace": "node", - "name": "minikube", - - "status.ready": "true", - "status.unschedulable": false, - - "cpu.allocatable.cores": 2, - "cpu.capacity.cores": 2, - - "memory.allocatable.bytes": 2097786880, - "memory.capacity.bytes": 2097786880, - - "pod.allocatable.total": 110, - "pod.capacity.total": 110, - }, - "minikube-test": { - "_namespace": "node", - "name": "minikube-test", - - "status.ready": "true", - "status.unschedulable": true, - - "cpu.allocatable.cores": 3, - "cpu.capacity.cores": 4, - - "memory.allocatable.bytes": 3097786880, - "memory.capacity.bytes": 4097786880, - - "pod.allocatable.total": 210, - "pod.capacity.total": 310, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_pod/state_pod.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_pod/state_pod.go index 3218ead3..db4dd578 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_pod/state_pod.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_pod/state_pod.go @@ -1,10 +1,29 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 state_pod import ( "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" p "github.com/elastic/beats/metricbeat/helper/prometheus" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kubernetes/util" ) const ( @@ -20,10 +39,10 @@ var ( mapping = &p.MetricsMapping{ Metrics: map[string]p.MetricMap{ - "kube_pod_info": p.Metric(""), - "kube_pod_status_phase": p.LabelMetric("status.phase", "phase", true), - "kube_pod_status_ready": p.LabelMetric("status.ready", "condition", true), - "kube_pod_status_scheduled": p.LabelMetric("status.scheduled", "condition", true), + "kube_pod_info": p.InfoMetric(), + "kube_pod_status_phase": p.LabelMetric("status.phase", "phase", p.OpLowercaseValue()), + "kube_pod_status_ready": p.LabelMetric("status.ready", "condition", p.OpLowercaseValue()), + "kube_pod_status_scheduled": p.LabelMetric("status.scheduled", "condition", p.OpLowercaseValue()), }, Labels: map[string]p.LabelMap{ @@ -56,6 +75,7 @@ func init() { type MetricSet struct { mb.BaseMetricSet prometheus p.Prometheus + enricher util.Enricher } // New create a new instance of the MetricSet @@ -66,9 +86,11 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { if err != nil { return nil, err } + return &MetricSet{ BaseMetricSet: base, prometheus: prometheus, + enricher: util.NewResourceMetadataEnricher(base, &kubernetes.Pod{}, false), }, nil } @@ -76,5 +98,17 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { - return m.prometheus.GetProcessedMetrics(mapping) + m.enricher.Start() + + events, err := m.prometheus.GetProcessedMetrics(mapping) + if err == nil { + m.enricher.Enrich(events) + } + return events, err +} + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_pod/state_pod_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_pod/state_pod_test.go deleted file mode 100644 index 31c2d379..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_pod/state_pod_test.go +++ /dev/null @@ -1,122 +0,0 @@ -// +build !integration - -package state_pod - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "os" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -const testFile = "../_meta/test/kube-state-metrics" - -func TestEventMapping(t *testing.T) { - file, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(file) - assert.NoError(t, err, "cannot read test file "+testFile) - - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(body)) - })) - - server.Start() - defer server.Close() - - config := map[string]interface{}{ - "module": "kubernetes", - "metricsets": []string{"state_pod"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - - events, err := f.Fetch() - assert.NoError(t, err) - - assert.Equal(t, 9, len(events), "Wrong number of returned events") - - testCases := testCases() - for _, event := range events { - name, err := event.GetValue("name") - if err == nil { - namespace, err := event.GetValue("_module.namespace") - if err == nil { - eventKey := namespace.(string) + "@" + name.(string) - oneTestCase, oneTestCaseFound := testCases[eventKey] - if oneTestCaseFound { - for k, v := range oneTestCase { - testValue(eventKey, t, event, k, v) - } - delete(testCases, eventKey) - } - } - } - } - - if len(testCases) > 0 { - t.Errorf("Test reference events not found: %v\n\n got: %v", testCases, events) - } -} - -func testValue(eventKey string, t *testing.T, event common.MapStr, field string, expected interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, eventKey+": Could not read field "+field) - assert.EqualValues(t, expected, data, eventKey+": Wrong value for field "+field) -} - -// Test cases built to match 3 examples in 'module/kubernetes/_meta/test/kube-state-metrics'. -// In particular, test same named pods in different namespaces -func testCases() map[string]map[string]interface{} { - return map[string]map[string]interface{}{ - "default@jumpy-owl-redis-3481028193-s78x9": { - "_namespace": "pod", - "_module.namespace": "default", - "_module.node.name": "minikube", - "name": "jumpy-owl-redis-3481028193-s78x9", - - "host_ip": "192.168.99.100", - "ip": "172.17.0.4", - - "status.phase": "succeeded", - "status.ready": "false", - "status.scheduled": "true", - }, - "test@jumpy-owl-redis-3481028193-s78x9": { - "_namespace": "pod", - "_module.namespace": "test", - "_module.node.name": "minikube-test", - "name": "jumpy-owl-redis-3481028193-s78x9", - - "host_ip": "192.168.99.200", - "ip": "172.17.0.5", - - "status.phase": "running", - "status.ready": "true", - "status.scheduled": "false", - }, - "jenkins@wise-lynx-jenkins-1616735317-svn6k": { - "_namespace": "pod", - "_module.namespace": "jenkins", - "_module.node.name": "minikube", - "name": "wise-lynx-jenkins-1616735317-svn6k", - - "host_ip": "192.168.99.100", - "ip": "172.17.0.7", - - "status.phase": "running", - "status.ready": "true", - "status.scheduled": "true", - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_replicaset/state_replicaset.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_replicaset/state_replicaset.go index c3be0e65..aaa23414 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_replicaset/state_replicaset.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_replicaset/state_replicaset.go @@ -1,10 +1,29 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 state_replicaset import ( "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" p "github.com/elastic/beats/metricbeat/helper/prometheus" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kubernetes/util" ) const ( @@ -20,7 +39,7 @@ var ( mapping = &p.MetricsMapping{ Metrics: map[string]p.MetricMap{ - "kube_replicaset_metadata_generation": p.Metric(""), + "kube_replicaset_metadata_generation": p.InfoMetric(), "kube_replicaset_status_fully_labeled_replicas": p.Metric("replicas.labeled"), "kube_replicaset_status_observed_generation": p.Metric("replicas.observed"), "kube_replicaset_status_ready_replicas": p.Metric("replicas.ready"), @@ -54,6 +73,7 @@ func init() { type MetricSet struct { mb.BaseMetricSet prometheus p.Prometheus + enricher util.Enricher } // New create a new instance of the MetricSet @@ -67,6 +87,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ BaseMetricSet: base, prometheus: prometheus, + enricher: util.NewResourceMetadataEnricher(base, &kubernetes.ReplicaSet{}, false), }, nil } @@ -74,5 +95,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { - return m.prometheus.GetProcessedMetrics(mapping) + m.enricher.Start() + + events, err := m.prometheus.GetProcessedMetrics(mapping) + if err == nil { + m.enricher.Enrich(events) + } + + return events, err +} + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_replicaset/state_replicaset_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_replicaset/state_replicaset_test.go deleted file mode 100644 index 1cef891a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_replicaset/state_replicaset_test.go +++ /dev/null @@ -1,113 +0,0 @@ -// +build !integration - -package state_replicaset - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "os" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -const testFile = "../_meta/test/kube-state-metrics" - -func TestEventMapping(t *testing.T) { - file, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(file) - assert.NoError(t, err, "cannot read test file "+testFile) - - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(body)) - })) - - server.Start() - defer server.Close() - - config := map[string]interface{}{ - "module": "kubernetes", - "metricsets": []string{"state_replicaset"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - - events, err := f.Fetch() - assert.NoError(t, err) - - assert.Equal(t, 5, len(events), "Wrong number of returned events") - - testCases := testCases() - for _, event := range events { - name, err := event.GetValue("name") - if err == nil { - namespace, err := event.GetValue("_module.namespace") - if err == nil { - eventKey := namespace.(string) + "@" + name.(string) - oneTestCase, oneTestCaseFound := testCases[eventKey] - if oneTestCaseFound { - for k, v := range oneTestCase { - testValue(eventKey, t, event, k, v) - } - delete(testCases, eventKey) - } - } - } - } - - if len(testCases) > 0 { - t.Errorf("Test reference events not found: %v", testCases) - } -} - -func testValue(eventKey string, t *testing.T, event common.MapStr, field string, expected interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, eventKey+": Could not read field "+field) - assert.EqualValues(t, expected, data, eventKey+": Wrong value for field "+field) -} - -// Test cases built to match 3 examples in 'module/kubernetes/_meta/test/kube-state-metrics'. -// In particular, test same named replica sets in different namespaces -func testCases() map[string]map[string]interface{} { - return map[string]map[string]interface{}{ - "kube-system@kube-state-metrics-1303537707": { - "_module.namespace": "kube-system", - "name": "kube-state-metrics-1303537707", - - "replicas.labeled": 2, - "replicas.observed": 1, - "replicas.ready": 1, - "replicas.available": 2, - "replicas.desired": 2, - }, - "test@kube-state-metrics-1303537707": { - "_module.namespace": "test", - "name": "kube-state-metrics-1303537707", - - "replicas.labeled": 4, - "replicas.observed": 5, - "replicas.ready": 6, - "replicas.available": 7, - "replicas.desired": 3, - }, - "kube-system@tiller-deploy-3067024529": { - "_module.namespace": "kube-system", - "name": "tiller-deploy-3067024529", - - "replicas.labeled": 1, - "replicas.observed": 1, - "replicas.ready": 1, - "replicas.available": 1, - "replicas.desired": 1, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go index dadd3bbd..38e4971d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_statefulset/state_statefulset.go @@ -1,10 +1,29 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 state_statefulset import ( "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" p "github.com/elastic/beats/metricbeat/helper/prometheus" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" + "github.com/elastic/beats/metricbeat/module/kubernetes/util" ) const ( @@ -53,6 +72,7 @@ func init() { type MetricSet struct { mb.BaseMetricSet prometheus p.Prometheus + enricher util.Enricher } // New create a new instance of the MetricSet @@ -66,6 +86,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ BaseMetricSet: base, prometheus: prometheus, + enricher: util.NewResourceMetadataEnricher(base, &kubernetes.StatefulSet{}, false), }, nil } @@ -73,5 +94,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. func (m *MetricSet) Fetch() ([]common.MapStr, error) { - return m.prometheus.GetProcessedMetrics(mapping) + m.enricher.Start() + + events, err := m.prometheus.GetProcessedMetrics(mapping) + if err == nil { + m.enricher.Enrich(events) + } + + return events, err +} + +// Close stops this metricset +func (m *MetricSet) Close() error { + m.enricher.Stop() + return nil } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_statefulset/state_statefulset_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_statefulset/state_statefulset_test.go deleted file mode 100644 index 2e6dd8a8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/state_statefulset/state_statefulset_test.go +++ /dev/null @@ -1,111 +0,0 @@ -// +build !integration - -package state_statefulset - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -const testFile = "../_meta/test/kube-state-metrics" - -func TestEventMapping(t *testing.T) { - file, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(file) - assert.NoError(t, err, "cannot read test file "+testFile) - - server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "text/plain; charset=ISO-8859-1") - w.Write([]byte(body)) - })) - - server.Start() - defer server.Close() - - config := map[string]interface{}{ - "module": "kubernetes", - "metricsets": []string{"state_statefulset"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - - events, err := f.Fetch() - assert.NoError(t, err) - - assert.Equal(t, 3, len(events), "Wrong number of returned events") - - testCases := testCases() - for _, event := range events { - name, err := event.GetValue("name") - if err == nil { - namespace, err := event.GetValue("_module.namespace") - if err == nil { - eventKey := namespace.(string) + "@" + name.(string) - oneTestCase, oneTestCaseFound := testCases[eventKey] - if oneTestCaseFound { - for k, v := range oneTestCase { - testValue(t, event, k, v) - } - delete(testCases, eventKey) - } - } - } - } - - if len(testCases) > 0 { - t.Errorf("Test reference events not found: %v", testCases) - } -} - -func testValue(t *testing.T, event common.MapStr, field string, expected interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, "Could not read field "+field) - assert.EqualValues(t, expected, data, "Wrong value for field "+field) -} - -func testCases() map[string]map[string]interface{} { - return map[string]map[string]interface{}{ - "default@elasticsearch": { - "_module.namespace": "default", - "name": "elasticsearch", - - "created": 1511973651, - "replicas.observed": 1, - "replicas.desired": 4, - "generation.observed": 1, - "generation.desired": 3, - }, - "default@mysql": { - "_module.namespace": "default", - "name": "mysql", - - "created": 1511989697, - "replicas.observed": 2, - "replicas.desired": 5, - "generation.observed": 2, - "generation.desired": 4, - }, - "custom@mysql": { - "_module.namespace": "custom", - "name": "mysql", - - "created": 1511999697, - "replicas.observed": 3, - "replicas.desired": 6, - "generation.observed": 3, - "generation.desired": 5, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/data.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/data.go index 1b78a5ff..2ade2e59 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 system import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/system.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/system.go index d63ea771..075c2a92 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/system.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/system.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 system import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/system_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/system_test.go deleted file mode 100644 index c1cb53ca..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/system/system_test.go +++ /dev/null @@ -1,51 +0,0 @@ -// +build !integration - -package system - -import ( - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -const testFile = "../_meta/test/stats_summary.json" - -func TestEventMapping(t *testing.T) { - f, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(f) - assert.NoError(t, err, "cannot read test file "+testFile) - - events, err := eventMapping(body) - assert.NoError(t, err, "error mapping "+testFile) - - assert.Len(t, events, 1, "got wrong number of events") - - testCases := map[string]interface{}{ - "container": "kubelet", - - "memory.usage.bytes": 36683776, - "memory.rss.bytes": 35512320, - "memory.workingset.bytes": 36495360, - "memory.pagefaults": 100835242, - "memory.majorpagefaults": 0, - - "cpu.usage.core.ns": 2357800908948, - "cpu.usage.nanocores": 11263994, - } - - for k, v := range testCases { - testValue(t, events[0], k, v) - } -} - -func testValue(t *testing.T, event common.MapStr, field string, value interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, "Could not read field "+field) - assert.EqualValues(t, data, value, "Wrong value for field "+field) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/types.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/types.go index a4a93bb4..a85e62f0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/types.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/types.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kubernetes type Summary struct { diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/kubernetes.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/kubernetes.go new file mode 100644 index 00000000..43cbbc25 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/kubernetes.go @@ -0,0 +1,310 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 util + +import ( + "strings" + "sync" + "time" + + "github.com/kubernetes/apimachinery/pkg/api/resource" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/kubernetes" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" +) + +// Enricher takes Kubernetes events and enrich them with k8s metadata +type Enricher interface { + // Start will start the Kubernetes watcher on the first call, does nothing on the rest + // errors are logged as warning + Start() + + // Stop will stop the Kubernetes watcher + Stop() + + // Enrich the given list of events + Enrich([]common.MapStr) +} + +type kubernetesConfig struct { + // AddMetadata enables enriching metricset events with metadata from the API server + AddMetadata bool `config:"add_metadata"` + InCluster bool `config:"in_cluster"` + KubeConfig string `config:"kube_config"` + Host string `config:"host"` + SyncPeriod time.Duration `config:"sync_period"` +} + +type enricher struct { + sync.RWMutex + metadata map[string]common.MapStr + index func(common.MapStr) string + watcher kubernetes.Watcher + watcherStarted bool + watcherStartedLock sync.Mutex +} + +// GetWatcher initializes a kubernetes watcher with the given +// scope (node or cluster), and resource type +func GetWatcher(base mb.BaseMetricSet, resource kubernetes.Resource, nodeScope bool) (kubernetes.Watcher, error) { + config := kubernetesConfig{ + AddMetadata: true, + InCluster: true, + } + if err := base.Module().UnpackConfig(&config); err != nil { + return nil, err + } + + // Return nil if metadata enriching is disabled: + if !config.AddMetadata { + return nil, nil + } + + client, err := kubernetes.GetKubernetesClient(config.InCluster, config.KubeConfig) + if err != nil { + return nil, err + } + + options := kubernetes.WatchOptions{ + SyncTimeout: config.SyncPeriod, + } + + // Watch objects in the node only + if nodeScope { + options.Node = kubernetes.DiscoverKubernetesNode(config.Host, config.InCluster, client) + } + + return kubernetes.NewWatcher(client, resource, options) +} + +// NewResourceMetadataEnricher returns an Enricher configured for kubernetes resource events +func NewResourceMetadataEnricher( + base mb.BaseMetricSet, + res kubernetes.Resource, + nodeScope bool) Enricher { + + watcher, err := GetWatcher(base, res, nodeScope) + if err != nil { + logp.Err("Error initializing Kubernetes metadata enricher: %s", err) + return &nilEnricher{} + } + + if watcher == nil { + logp.Info("Kubernetes metricset enriching is disabled") + return &nilEnricher{} + } + + metaConfig := kubernetes.MetaGeneratorConfig{} + if err := base.Module().UnpackConfig(&metaConfig); err != nil { + logp.Err("Error initializing Kubernetes metadata enricher: %s", err) + return &nilEnricher{} + } + + metaGen := kubernetes.NewMetaGeneratorFromConfig(&metaConfig) + enricher := buildMetadataEnricher(watcher, + // update + func(m map[string]common.MapStr, r kubernetes.Resource) { + id := join(r.GetMetadata().GetNamespace(), r.GetMetadata().GetName()) + switch r := r.(type) { + case *kubernetes.Pod: + m[id] = metaGen.PodMetadata(r) + + case *kubernetes.Node: + // Report node allocatable resources to PerfMetrics cache + name := r.GetMetadata().GetName() + if cpu, ok := r.GetStatus().GetCapacity()["cpu"]; ok { + if q, err := resource.ParseQuantity(cpu.GetString_()); err == nil { + PerfMetrics.NodeCoresAllocatable.Set(name, float64(q.MilliValue())/1000) + } + } + if memory, ok := r.GetStatus().GetCapacity()["memory"]; ok { + if q, err := resource.ParseQuantity(memory.GetString_()); err == nil { + PerfMetrics.NodeMemAllocatable.Set(name, float64(q.Value())) + } + } + + m[id] = metaGen.ResourceMetadata(r) + + default: + m[id] = metaGen.ResourceMetadata(r) + } + }, + // delete + func(m map[string]common.MapStr, r kubernetes.Resource) { + id := join(r.GetMetadata().GetNamespace(), r.GetMetadata().GetName()) + delete(m, id) + }, + // index + func(e common.MapStr) string { + return join(getString(e, mb.ModuleDataKey+".namespace"), getString(e, "name")) + }, + ) + + return enricher +} + +// NewContainerMetadataEnricher returns an Enricher configured for container events +func NewContainerMetadataEnricher( + base mb.BaseMetricSet, + nodeScope bool) Enricher { + + watcher, err := GetWatcher(base, &kubernetes.Pod{}, nodeScope) + if err != nil { + logp.Err("Error initializing Kubernetes metadata enricher: %s", err) + return &nilEnricher{} + } + + if watcher == nil { + logp.Info("Kubernetes metricset enriching is disabled") + return &nilEnricher{} + } + + metaConfig := kubernetes.MetaGeneratorConfig{} + if err := base.Module().UnpackConfig(&metaConfig); err != nil { + logp.Err("Error initializing Kubernetes metadata enricher: %s", err) + return &nilEnricher{} + } + + metaGen := kubernetes.NewMetaGeneratorFromConfig(&metaConfig) + enricher := buildMetadataEnricher(watcher, + // update + func(m map[string]common.MapStr, r kubernetes.Resource) { + pod := r.(*kubernetes.Pod) + meta := metaGen.PodMetadata(pod) + + for _, container := range append(pod.GetSpec().GetContainers(), pod.GetSpec().GetInitContainers()...) { + cuid := ContainerUID(pod.GetMetadata().GetNamespace(), r.GetMetadata().GetName(), container.GetName()) + + // Report container limits to PerfMetrics cache + if cpu, ok := container.GetResources().GetLimits()["cpu"]; ok { + if q, err := resource.ParseQuantity(cpu.GetString_()); err == nil { + PerfMetrics.ContainerCoresLimit.Set(cuid, float64(q.MilliValue())/1000) + } + } + if memory, ok := container.GetResources().GetLimits()["memory"]; ok { + if q, err := resource.ParseQuantity(memory.GetString_()); err == nil { + PerfMetrics.ContainerMemLimit.Set(cuid, float64(q.Value())) + } + } + + id := join(r.GetMetadata().GetNamespace(), r.GetMetadata().GetName(), container.GetName()) + m[id] = meta + } + }, + // delete + func(m map[string]common.MapStr, r kubernetes.Resource) { + pod := r.(*kubernetes.Pod) + for _, container := range append(pod.GetSpec().GetContainers(), pod.GetSpec().GetInitContainers()...) { + id := join(r.GetMetadata().GetNamespace(), r.GetMetadata().GetName(), container.GetName()) + delete(m, id) + } + }, + // index + func(e common.MapStr) string { + return join(getString(e, mb.ModuleDataKey+".namespace"), getString(e, mb.ModuleDataKey+".pod.name"), getString(e, "name")) + }, + ) + + return enricher +} + +func getString(m common.MapStr, key string) string { + val, err := m.GetValue(key) + if err != nil { + return "" + } + + str, _ := val.(string) + return str +} + +func join(fields ...string) string { + return strings.Join(fields, ":") +} + +func buildMetadataEnricher( + watcher kubernetes.Watcher, + update func(map[string]common.MapStr, kubernetes.Resource), + delete func(map[string]common.MapStr, kubernetes.Resource), + index func(e common.MapStr) string) Enricher { + + enricher := enricher{ + metadata: map[string]common.MapStr{}, + index: index, + watcher: watcher, + } + + watcher.AddEventHandler(kubernetes.ResourceEventHandlerFuncs{ + AddFunc: func(obj kubernetes.Resource) { + enricher.Lock() + defer enricher.Unlock() + update(enricher.metadata, obj) + }, + UpdateFunc: func(obj kubernetes.Resource) { + enricher.Lock() + defer enricher.Unlock() + update(enricher.metadata, obj) + }, + DeleteFunc: func(obj kubernetes.Resource) { + enricher.Lock() + defer enricher.Unlock() + delete(enricher.metadata, obj) + }, + }) + + return &enricher +} + +func (m *enricher) Start() { + m.watcherStartedLock.Lock() + defer m.watcherStartedLock.Unlock() + if !m.watcherStarted { + err := m.watcher.Start() + if err != nil { + logp.Warn("Error starting Kubernetes watcher: %s", err) + } + m.watcherStarted = true + } +} + +func (m *enricher) Stop() { + m.watcherStartedLock.Lock() + defer m.watcherStartedLock.Unlock() + if m.watcherStarted { + m.watcher.Stop() + m.watcherStarted = false + } +} + +func (m *enricher) Enrich(events []common.MapStr) { + for _, event := range events { + if meta := m.metadata[m.index(event)]; meta != nil { + event.DeepUpdate(common.MapStr{ + mb.ModuleDataKey: meta, + }) + } + } +} + +type nilEnricher struct{} + +func (*nilEnricher) Start() {} +func (*nilEnricher) Stop() {} +func (*nilEnricher) Enrich([]common.MapStr) {} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/metrics_cache.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/metrics_cache.go index 481ef9e9..ffa8f235 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/metrics_cache.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/metrics_cache.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 util import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/metrics_cache_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/metrics_cache_test.go deleted file mode 100644 index 488af7b8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/metrics_cache_test.go +++ /dev/null @@ -1,69 +0,0 @@ -package util - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestTimeout(t *testing.T) { - // Mocknotonic time: - fakeTimeCh := make(chan int64) - go func() { - fakeTime := time.Now().Unix() - for { - fakeTime++ - fakeTimeCh <- fakeTime - } - }() - - now = func() time.Time { - return time.Unix(<-fakeTimeCh, 0) - } - - // Blocking sleep: - sleepCh := make(chan struct{}) - sleep = func(time.Duration) { - <-sleepCh - } - - test := newValueMap(1 * time.Second) - - test.Set("foo", 3.14) - - // Let cleanup do its job - sleepCh <- struct{}{} - sleepCh <- struct{}{} - sleepCh <- struct{}{} - - // Check it expired - assert.Equal(t, 0.0, test.Get("foo")) -} - -func TestValueMap(t *testing.T) { - test := newValueMap(defaultTimeout) - - // no value - assert.Equal(t, 0.0, test.Get("foo")) - - // Set and test - test.Set("foo", 3.14) - assert.Equal(t, 3.14, test.Get("foo")) -} - -func TestGetWithDefault(t *testing.T) { - test := newValueMap(defaultTimeout) - - // Empty + default - assert.Equal(t, 0.0, test.Get("foo")) - assert.Equal(t, 3.14, test.GetWithDefault("foo", 3.14)) - - // Defined value - test.Set("foo", 38.2) - assert.Equal(t, 38.2, test.GetWithDefault("foo", 3.14)) -} - -func TestContainerUID(t *testing.T) { - assert.Equal(t, "a-b-c", ContainerUID("a", "b", "c")) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/prometheus.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/prometheus.go index 70485794..a5236f95 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/prometheus.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/util/prometheus.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 util import dto "github.com/prometheus/client_model/go" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/data.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/data.go index bdfdc96e..756d998a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 volume import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/volume.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/volume.go index 1d0e1057..bb2f9e83 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/volume.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/volume.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 volume import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/volume_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/volume_test.go deleted file mode 100644 index cd086331..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kubernetes/volume/volume_test.go +++ /dev/null @@ -1,49 +0,0 @@ -// +build !integration - -package volume - -import ( - "io/ioutil" - "os" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -const testFile = "../_meta/test/stats_summary.json" - -func TestEventMapping(t *testing.T) { - f, err := os.Open(testFile) - assert.NoError(t, err, "cannot open test file "+testFile) - - body, err := ioutil.ReadAll(f) - assert.NoError(t, err, "cannot read test file "+testFile) - - events, err := eventMapping(body) - assert.NoError(t, err, "error mapping "+testFile) - - assert.Len(t, events, 1, "got wrong number of events") - - testCases := map[string]interface{}{ - "name": "default-token-sg8x5", - - "fs.available.bytes": 1939689472, - "fs.capacity.bytes": 1939701760, - "fs.used.bytes": 12288, - "fs.inodes.used": 9, - "fs.inodes.free": 473551, - "fs.inodes.count": 473560, - } - - for k, v := range testCases { - testValue(t, events[0], k, v) - } -} - -func testValue(t *testing.T, event common.MapStr, field string, value interface{}) { - data, err := event.GetValue(field) - assert.NoError(t, err, "Could not read field "+field) - assert.EqualValues(t, data, value, "Wrong value for field "+field) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/kvm/_meta/docs.asciidoc index b4d11cbf..99141215 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/kvm/_meta/docs.asciidoc @@ -1,4 +1,2 @@ -== kvm module - This is the kvm module. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/doc.go index fb772efa..7cd7b213 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kvm/doc.go @@ -1,2 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 kvm is a Metricbeat module that contains MetricSets. package kvm diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/_meta/docs.asciidoc index 9b34db19..89e2dfff 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/_meta/docs.asciidoc @@ -1,3 +1 @@ -=== kvm dommemstat MetricSet - This is the dommemstat metricset of the module kvm. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/dommemstat.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/dommemstat.go index 77667d99..64fb016a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/dommemstat.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/dommemstat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dommemstat import ( @@ -145,7 +162,7 @@ func getDomainMemoryStatName(tag int32) string { case 5: return "available" case 6: - return "actualballon" + return "actualballoon" case 7: return "rss" case 8: diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/dommemstat_test.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/dommemstat_test.go deleted file mode 100644 index adddf57d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/dommemstat/dommemstat_test.go +++ /dev/null @@ -1,60 +0,0 @@ -package dommemstat - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/digitalocean/go-libvirt/libvirttest" -) - -func TestFetchEventContents(t *testing.T) { - conn := libvirttest.New() - - f := mbtest.NewReportingMetricSetV2(t, getConfig(conn)) - - events, errs := mbtest.ReportingFetchV2(f) - if len(errs) > 0 { - t.Fatal(errs) - } - if len(events) == 0 { - t.Fatal("no events received") - } - - for _, e := range events { - if e.Error != nil { - t.Fatalf("received error: %+v", e.Error) - } - } - if len(events) == 0 { - t.Fatal("received no events") - } - - e := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), e) - - statName, err := e.MetricSetFields.GetValue("stat.name") - if err == nil { - assert.EqualValues(t, statName.(string), "actualballon") - } else { - t.Errorf("error while getting value from event: %v", err) - } - - statValue, err := e.MetricSetFields.GetValue("stat.value") - if err == nil { - assert.EqualValues(t, statValue, uint64(1048576)) - } else { - t.Errorf("error while getting value from event: %v", err) - } -} - -func getConfig(conn *libvirttest.MockLibvirt) map[string]interface{} { - return map[string]interface{}{ - "module": "kvm", - "metricsets": []string{"dommemstat"}, - "hosts": []string{"test://" + conn.RemoteAddr().String() + ":123"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/fields.go new file mode 100644 index 00000000..562ba2e7 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/kvm/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package kvm + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "kvm", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJyskLFuwyAQhnee4lf2vABDp659gqoDKtcIwXEWxm799lXcUCXOBXcogwcOfd/nOyLSYhFnNkANNZHFIc58MICn8b2EoQbJFk8GAOhroBKYcnXp9c2sd3FmsPgpkQE+AiU/2nVwRHZMDX4+dRnI4lRkGi43iuMWcg3ywkw8Vld/RxrzIfcy0ihb5a1487gn3tX/nBdiKYsO1luue85fZdyaIi2fUrz6YrdsU/fI1VJml6ZeS5J8+p8QzdQqwv3PdvS76mdhF/I9tbv//u7/6lzR3wEAAP//jl7YkQ==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/LICENSE b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/LICENSE deleted file mode 100644 index 0cc3543c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2012-2014 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. \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/decode.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/decode.go deleted file mode 100644 index 494dae64..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/decode.go +++ /dev/null @@ -1,873 +0,0 @@ -/* - * Copyright (c) 2012-2014 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 xdr - -import ( - "fmt" - "io" - "math" - "reflect" - "time" -) - -var ( - errMaxSlice = "data exceeds max slice limit" - errIODecode = "%s while decoding %d bytes" -) - -/* -Unmarshal parses XDR-encoded data into the value pointed to by v reading from -reader r and returning the total number of bytes read. An addressable pointer -must be provided since Unmarshal needs to both store the result of the decode as -well as obtain target type information. Unmarhsal traverses v recursively and -automatically indirects pointers through arbitrary depth, allocating them as -necessary, to decode the data into the underlying value pointed to. - -Unmarshal uses reflection to determine the type of the concrete value contained -by v and performs a mapping of underlying XDR types to Go types as follows: - - Go Type <- XDR Type - -------------------- - int8, int16, int32, int <- XDR Integer - uint8, uint16, uint32, uint <- XDR Unsigned Integer - int64 <- XDR Hyper Integer - uint64 <- XDR Unsigned Hyper Integer - bool <- XDR Boolean - float32 <- XDR Floating-Point - float64 <- XDR Double-Precision Floating-Point - string <- XDR String - byte <- XDR Integer - []byte <- XDR Variable-Length Opaque Data - [#]byte <- XDR Fixed-Length Opaque Data - [] <- XDR Variable-Length Array - [#] <- XDR Fixed-Length Array - struct <- XDR Structure - map <- XDR Variable-Length Array of two-element XDR Structures - time.Time <- XDR String encoded with RFC3339 nanosecond precision - -Notes and Limitations: - - * Automatic unmarshalling of variable and fixed-length arrays of uint8s - requires a special struct tag `xdropaque:"false"` since byte slices - and byte arrays are assumed to be opaque data and byte is a Go alias - for uint8 thus indistinguishable under reflection - * Cyclic data structures are not supported and will result in infinite - loops - -If any issues are encountered during the unmarshalling process, an -UnmarshalError is returned with a human readable description as well as -an ErrorCode value for further inspection from sophisticated callers. Some -potential issues are unsupported Go types, attempting to decode a value which is -too large to fit into a specified Go type, and exceeding max slice limitations. -*/ -func Unmarshal(r io.Reader, v interface{}) (int, error) { - d := Decoder{r: r} - return d.Decode(v) -} - -// UnmarshalLimited is identical to Unmarshal but it sets maxReadSize in order -// to cap reads. -func UnmarshalLimited(r io.Reader, v interface{}, maxSize uint) (int, error) { - d := Decoder{r: r, maxReadSize: maxSize} - return d.Decode(v) -} - -// A Decoder wraps an io.Reader that is expected to provide an XDR-encoded byte -// stream and provides several exposed methods to manually decode various XDR -// primitives without relying on reflection. The NewDecoder function can be -// used to get a new Decoder directly. -// -// Typically, Unmarshal should be used instead of manual decoding. A Decoder -// is exposed so it is possible to perform manual decoding should it be -// necessary in complex scenarios where automatic reflection-based decoding -// won't work. -type Decoder struct { - r io.Reader - - // maxReadSize is the default maximum bytes an element can contain. 0 - // is unlimited and provides backwards compatability. Setting it to a - // non-zero value caps reads. - maxReadSize uint -} - -// DecodeInt treats the next 4 bytes as an XDR encoded integer and returns the -// result as an int32 along with the number of bytes actually read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining. -// -// Reference: -// RFC Section 4.1 - Integer -// 32-bit big-endian signed integer in range [-2147483648, 2147483647] -func (d *Decoder) DecodeInt() (int32, int, error) { - var buf [4]byte - n, err := io.ReadFull(d.r, buf[:]) - if err != nil { - msg := fmt.Sprintf(errIODecode, err.Error(), 4) - err := unmarshalError("DecodeInt", ErrIO, msg, buf[:n], err) - return 0, n, err - } - - rv := int32(buf[3]) | int32(buf[2])<<8 | - int32(buf[1])<<16 | int32(buf[0])<<24 - return rv, n, nil -} - -// DecodeUint treats the next 4 bytes as an XDR encoded unsigned integer and -// returns the result as a uint32 along with the number of bytes actually read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining. -// -// Reference: -// RFC Section 4.2 - Unsigned Integer -// 32-bit big-endian unsigned integer in range [0, 4294967295] -func (d *Decoder) DecodeUint() (uint32, int, error) { - var buf [4]byte - n, err := io.ReadFull(d.r, buf[:]) - if err != nil { - msg := fmt.Sprintf(errIODecode, err.Error(), 4) - err := unmarshalError("DecodeUint", ErrIO, msg, buf[:n], err) - return 0, n, err - } - - rv := uint32(buf[3]) | uint32(buf[2])<<8 | - uint32(buf[1])<<16 | uint32(buf[0])<<24 - return rv, n, nil -} - -// DecodeEnum treats the next 4 bytes as an XDR encoded enumeration value and -// returns the result as an int32 after verifying that the value is in the -// provided map of valid values. It also returns the number of bytes actually -// read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining or -// the parsed enumeration value is not one of the provided valid values. -// -// Reference: -// RFC Section 4.3 - Enumeration -// Represented as an XDR encoded signed integer -func (d *Decoder) DecodeEnum(validEnums map[int32]bool) (int32, int, error) { - val, n, err := d.DecodeInt() - if err != nil { - return 0, n, err - } - - if !validEnums[val] { - err := unmarshalError("DecodeEnum", ErrBadEnumValue, - "invalid enum", val, nil) - return 0, n, err - } - return val, n, nil -} - -// DecodeBool treats the next 4 bytes as an XDR encoded boolean value and -// returns the result as a bool along with the number of bytes actually read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining or -// the parsed value is not a 0 or 1. -// -// Reference: -// RFC Section 4.4 - Boolean -// Represented as an XDR encoded enumeration where 0 is false and 1 is true -func (d *Decoder) DecodeBool() (bool, int, error) { - val, n, err := d.DecodeInt() - if err != nil { - return false, n, err - } - switch val { - case 0: - return false, n, nil - case 1: - return true, n, nil - } - - err = unmarshalError("DecodeBool", ErrBadEnumValue, "bool not 0 or 1", - val, nil) - return false, n, err -} - -// DecodeHyper treats the next 8 bytes as an XDR encoded hyper value and -// returns the result as an int64 along with the number of bytes actually read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining. -// -// Reference: -// RFC Section 4.5 - Hyper Integer -// 64-bit big-endian signed integer in range [-9223372036854775808, 9223372036854775807] -func (d *Decoder) DecodeHyper() (int64, int, error) { - var buf [8]byte - n, err := io.ReadFull(d.r, buf[:]) - if err != nil { - msg := fmt.Sprintf(errIODecode, err.Error(), 8) - err := unmarshalError("DecodeHyper", ErrIO, msg, buf[:n], err) - return 0, n, err - } - - rv := int64(buf[7]) | int64(buf[6])<<8 | - int64(buf[5])<<16 | int64(buf[4])<<24 | - int64(buf[3])<<32 | int64(buf[2])<<40 | - int64(buf[1])<<48 | int64(buf[0])<<56 - return rv, n, err -} - -// DecodeUhyper treats the next 8 bytes as an XDR encoded unsigned hyper value -// and returns the result as a uint64 along with the number of bytes actually -// read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining. -// -// Reference: -// RFC Section 4.5 - Unsigned Hyper Integer -// 64-bit big-endian unsigned integer in range [0, 18446744073709551615] -func (d *Decoder) DecodeUhyper() (uint64, int, error) { - var buf [8]byte - n, err := io.ReadFull(d.r, buf[:]) - if err != nil { - msg := fmt.Sprintf(errIODecode, err.Error(), 8) - err := unmarshalError("DecodeUhyper", ErrIO, msg, buf[:n], err) - return 0, n, err - } - - rv := uint64(buf[7]) | uint64(buf[6])<<8 | - uint64(buf[5])<<16 | uint64(buf[4])<<24 | - uint64(buf[3])<<32 | uint64(buf[2])<<40 | - uint64(buf[1])<<48 | uint64(buf[0])<<56 - return rv, n, nil -} - -// DecodeFloat treats the next 4 bytes as an XDR encoded floating point and -// returns the result as a float32 along with the number of bytes actually read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining. -// -// Reference: -// RFC Section 4.6 - Floating Point -// 32-bit single-precision IEEE 754 floating point -func (d *Decoder) DecodeFloat() (float32, int, error) { - var buf [4]byte - n, err := io.ReadFull(d.r, buf[:]) - if err != nil { - msg := fmt.Sprintf(errIODecode, err.Error(), 4) - err := unmarshalError("DecodeFloat", ErrIO, msg, buf[:n], err) - return 0, n, err - } - - val := uint32(buf[3]) | uint32(buf[2])<<8 | - uint32(buf[1])<<16 | uint32(buf[0])<<24 - return math.Float32frombits(val), n, nil -} - -// DecodeDouble treats the next 8 bytes as an XDR encoded double-precision -// floating point and returns the result as a float64 along with the number of -// bytes actually read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining. -// -// Reference: -// RFC Section 4.7 - Double-Precision Floating Point -// 64-bit double-precision IEEE 754 floating point -func (d *Decoder) DecodeDouble() (float64, int, error) { - var buf [8]byte - n, err := io.ReadFull(d.r, buf[:]) - if err != nil { - msg := fmt.Sprintf(errIODecode, err.Error(), 8) - err := unmarshalError("DecodeDouble", ErrIO, msg, buf[:n], err) - return 0, n, err - } - - val := uint64(buf[7]) | uint64(buf[6])<<8 | - uint64(buf[5])<<16 | uint64(buf[4])<<24 | - uint64(buf[3])<<32 | uint64(buf[2])<<40 | - uint64(buf[1])<<48 | uint64(buf[0])<<56 - return math.Float64frombits(val), n, nil -} - -// RFC Section 4.8 - Quadruple-Precision Floating Point -// 128-bit quadruple-precision floating point -// Not Implemented - -// DecodeFixedOpaque treats the next 'size' bytes as XDR encoded opaque data and -// returns the result as a byte slice along with the number of bytes actually -// read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining to -// satisfy the passed size, including the necessary padding to make it a -// multiple of 4. -// -// Reference: -// RFC Section 4.9 - Fixed-Length Opaque Data -// Fixed-length uninterpreted data zero-padded to a multiple of four -func (d *Decoder) DecodeFixedOpaque(size int32) ([]byte, int, error) { - // Nothing to do if size is 0. - if size == 0 { - return nil, 0, nil - } - - pad := (4 - (size % 4)) % 4 - paddedSize := size + pad - if uint(paddedSize) > uint(math.MaxInt32) { - err := unmarshalError("DecodeFixedOpaque", ErrOverflow, - errMaxSlice, paddedSize, nil) - return nil, 0, err - } - - buf := make([]byte, paddedSize) - n, err := io.ReadFull(d.r, buf) - if err != nil { - msg := fmt.Sprintf(errIODecode, err.Error(), paddedSize) - err := unmarshalError("DecodeFixedOpaque", ErrIO, msg, buf[:n], - err) - return nil, n, err - } - return buf[0:size], n, nil -} - -// DecodeOpaque treats the next bytes as variable length XDR encoded opaque -// data and returns the result as a byte slice along with the number of bytes -// actually read. -// -// An UnmarshalError is returned if there are insufficient bytes remaining or -// the opaque data is larger than the max length of a Go slice. -// -// Reference: -// RFC Section 4.10 - Variable-Length Opaque Data -// Unsigned integer length followed by fixed opaque data of that length -func (d *Decoder) DecodeOpaque() ([]byte, int, error) { - dataLen, n, err := d.DecodeUint() - if err != nil { - return nil, n, err - } - if uint(dataLen) > uint(math.MaxInt32) || - (d.maxReadSize != 0 && uint(dataLen) > d.maxReadSize) { - err := unmarshalError("DecodeOpaque", ErrOverflow, errMaxSlice, - dataLen, nil) - return nil, n, err - } - - rv, n2, err := d.DecodeFixedOpaque(int32(dataLen)) - n += n2 - if err != nil { - return nil, n, err - } - return rv, n, nil -} - -// DecodeString treats the next bytes as a variable length XDR encoded string -// and returns the result as a string along with the number of bytes actually -// read. Character encoding is assumed to be UTF-8 and therefore ASCII -// compatible. If the underlying character encoding is not compatibile with -// this assumption, the data can instead be read as variable-length opaque data -// (DecodeOpaque) and manually converted as needed. -// -// An UnmarshalError is returned if there are insufficient bytes remaining or -// the string data is larger than the max length of a Go slice. -// -// Reference: -// RFC Section 4.11 - String -// Unsigned integer length followed by bytes zero-padded to a multiple of -// four -func (d *Decoder) DecodeString() (string, int, error) { - dataLen, n, err := d.DecodeUint() - if err != nil { - return "", n, err - } - if uint(dataLen) > uint(math.MaxInt32) || - (d.maxReadSize != 0 && uint(dataLen) > d.maxReadSize) { - err = unmarshalError("DecodeString", ErrOverflow, errMaxSlice, - dataLen, nil) - return "", n, err - } - - opaque, n2, err := d.DecodeFixedOpaque(int32(dataLen)) - n += n2 - if err != nil { - return "", n, err - } - return string(opaque), n, nil -} - -// decodeFixedArray treats the next bytes as a series of XDR encoded elements -// of the same type as the array represented by the reflection value and decodes -// each element into the passed array. The ignoreOpaque flag controls whether -// or not uint8 (byte) elements should be decoded individually or as a fixed -// sequence of opaque data. It returns the the number of bytes actually read. -// -// An UnmarshalError is returned if any issues are encountered while decoding -// the array elements. -// -// Reference: -// RFC Section 4.12 - Fixed-Length Array -// Individually XDR encoded array elements -func (d *Decoder) decodeFixedArray(v reflect.Value, ignoreOpaque bool) (int, error) { - // Treat [#]byte (byte is alias for uint8) as opaque data unless - // ignored. - if !ignoreOpaque && v.Type().Elem().Kind() == reflect.Uint8 { - data, n, err := d.DecodeFixedOpaque(int32(v.Len())) - if err != nil { - return n, err - } - reflect.Copy(v, reflect.ValueOf(data)) - return n, nil - } - - // Decode each array element. - var n int - for i := 0; i < v.Len(); i++ { - n2, err := d.decode(v.Index(i)) - n += n2 - if err != nil { - return n, err - } - } - return n, nil -} - -// decodeArray treats the next bytes as a variable length series of XDR encoded -// elements of the same type as the array represented by the reflection value. -// The number of elements is obtained by first decoding the unsigned integer -// element count. Then each element is decoded into the passed array. The -// ignoreOpaque flag controls whether or not uint8 (byte) elements should be -// decoded individually or as a variable sequence of opaque data. It returns -// the number of bytes actually read. -// -// An UnmarshalError is returned if any issues are encountered while decoding -// the array elements. -// -// Reference: -// RFC Section 4.13 - Variable-Length Array -// Unsigned integer length followed by individually XDR encoded array -// elements -func (d *Decoder) decodeArray(v reflect.Value, ignoreOpaque bool) (int, error) { - dataLen, n, err := d.DecodeUint() - if err != nil { - return n, err - } - if uint(dataLen) > uint(math.MaxInt32) || - (d.maxReadSize != 0 && uint(dataLen) > d.maxReadSize) { - err := unmarshalError("decodeArray", ErrOverflow, errMaxSlice, - dataLen, nil) - return n, err - } - - // Allocate storage for the slice elements (the underlying array) if - // existing slice does not have enough capacity. - sliceLen := int(dataLen) - if v.Cap() < sliceLen { - v.Set(reflect.MakeSlice(v.Type(), sliceLen, sliceLen)) - } - if v.Len() < sliceLen { - v.SetLen(sliceLen) - } - - // Treat []byte (byte is alias for uint8) as opaque data unless ignored. - if !ignoreOpaque && v.Type().Elem().Kind() == reflect.Uint8 { - data, n2, err := d.DecodeFixedOpaque(int32(sliceLen)) - n += n2 - if err != nil { - return n, err - } - v.SetBytes(data) - return n, nil - } - - // Decode each slice element. - for i := 0; i < sliceLen; i++ { - n2, err := d.decode(v.Index(i)) - n += n2 - if err != nil { - return n, err - } - } - return n, nil -} - -// decodeStruct treats the next bytes as a series of XDR encoded elements -// of the same type as the exported fields of the struct represented by the -// passed reflection value. Pointers are automatically indirected and -// allocated as necessary. It returns the the number of bytes actually read. -// -// An UnmarshalError is returned if any issues are encountered while decoding -// the elements. -// -// Reference: -// RFC Section 4.14 - Structure -// XDR encoded elements in the order of their declaration in the struct -func (d *Decoder) decodeStruct(v reflect.Value) (int, error) { - var n int - vt := v.Type() - for i := 0; i < v.NumField(); i++ { - // Skip unexported fields. - vtf := vt.Field(i) - if vtf.PkgPath != "" { - continue - } - - // Indirect through pointers allocating them as needed and - // ensure the field is settable. - vf := v.Field(i) - vf, err := d.indirect(vf) - if err != nil { - return n, err - } - if !vf.CanSet() { - msg := fmt.Sprintf("can't decode to unsettable '%v'", - vf.Type().String()) - err := unmarshalError("decodeStruct", ErrNotSettable, - msg, nil, nil) - return n, err - } - - // Handle non-opaque data to []uint8 and [#]uint8 based on - // struct tag. - tag := vtf.Tag.Get("xdropaque") - if tag == "false" { - switch vf.Kind() { - case reflect.Slice: - n2, err := d.decodeArray(vf, true) - n += n2 - if err != nil { - return n, err - } - continue - - case reflect.Array: - n2, err := d.decodeFixedArray(vf, true) - n += n2 - if err != nil { - return n, err - } - continue - } - } - - // Decode each struct field. - n2, err := d.decode(vf) - n += n2 - if err != nil { - return n, err - } - } - - return n, nil -} - -// RFC Section 4.15 - Discriminated Union -// RFC Section 4.16 - Void -// RFC Section 4.17 - Constant -// RFC Section 4.18 - Typedef -// RFC Section 4.19 - Optional data -// RFC Sections 4.15 though 4.19 only apply to the data specification language -// which is not implemented by this package. In the case of discriminated -// unions, struct tags are used to perform a similar function. - -// decodeMap treats the next bytes as an XDR encoded variable array of 2-element -// structures whose fields are of the same type as the map keys and elements -// represented by the passed reflection value. Pointers are automatically -// indirected and allocated as necessary. It returns the the number of bytes -// actually read. -// -// An UnmarshalError is returned if any issues are encountered while decoding -// the elements. -func (d *Decoder) decodeMap(v reflect.Value) (int, error) { - dataLen, n, err := d.DecodeUint() - if err != nil { - return n, err - } - - // Allocate storage for the underlying map if needed. - vt := v.Type() - if v.IsNil() { - v.Set(reflect.MakeMap(vt)) - } - - // Decode each key and value according to their type. - keyType := vt.Key() - elemType := vt.Elem() - for i := uint32(0); i < dataLen; i++ { - key := reflect.New(keyType).Elem() - n2, err := d.decode(key) - n += n2 - if err != nil { - return n, err - } - - val := reflect.New(elemType).Elem() - n2, err = d.decode(val) - n += n2 - if err != nil { - return n, err - } - v.SetMapIndex(key, val) - } - return n, nil -} - -// decodeInterface examines the interface represented by the passed reflection -// value to detect whether it is an interface that can be decoded into and -// if it is, extracts the underlying value to pass back into the decode function -// for decoding according to its type. It returns the the number of bytes -// actually read. -// -// An UnmarshalError is returned if any issues are encountered while decoding -// the interface. -func (d *Decoder) decodeInterface(v reflect.Value) (int, error) { - if v.IsNil() || !v.CanInterface() { - msg := fmt.Sprintf("can't decode to nil interface") - err := unmarshalError("decodeInterface", ErrNilInterface, msg, - nil, nil) - return 0, err - } - - // Extract underlying value from the interface and indirect through - // pointers allocating them as needed. - ve := reflect.ValueOf(v.Interface()) - ve, err := d.indirect(ve) - if err != nil { - return 0, err - } - if !ve.CanSet() { - msg := fmt.Sprintf("can't decode to unsettable '%v'", - ve.Type().String()) - err := unmarshalError("decodeInterface", ErrNotSettable, msg, - nil, nil) - return 0, err - } - return d.decode(ve) -} - -// decode is the main workhorse for unmarshalling via reflection. It uses -// the passed reflection value to choose the XDR primitives to decode from -// the encapsulated reader. It is a recursive function, -// so cyclic data structures are not supported and will result in an infinite -// loop. It returns the the number of bytes actually read. -func (d *Decoder) decode(v reflect.Value) (int, error) { - if !v.IsValid() { - msg := fmt.Sprintf("type '%s' is not valid", v.Kind().String()) - err := unmarshalError("decode", ErrUnsupportedType, msg, nil, nil) - return 0, err - } - - // Indirect through pointers allocating them as needed. - ve, err := d.indirect(v) - if err != nil { - return 0, err - } - - // Handle time.Time values by decoding them as an RFC3339 formatted - // string with nanosecond precision. Check the type string rather - // than doing a full blown conversion to interface and type assertion - // since checking a string is much quicker. - if ve.Type().String() == "time.Time" { - // Read the value as a string and parse it. - timeString, n, err := d.DecodeString() - if err != nil { - return n, err - } - ttv, err := time.Parse(time.RFC3339, timeString) - if err != nil { - err := unmarshalError("decode", ErrParseTime, - err.Error(), timeString, err) - return n, err - } - ve.Set(reflect.ValueOf(ttv)) - return n, nil - } - - // Handle native Go types. - switch ve.Kind() { - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int: - i, n, err := d.DecodeInt() - if err != nil { - return n, err - } - if ve.OverflowInt(int64(i)) { - msg := fmt.Sprintf("signed integer too large to fit '%s'", - ve.Kind().String()) - err = unmarshalError("decode", ErrOverflow, msg, i, nil) - return n, err - } - ve.SetInt(int64(i)) - return n, nil - - case reflect.Int64: - i, n, err := d.DecodeHyper() - if err != nil { - return n, err - } - ve.SetInt(i) - return n, nil - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint: - ui, n, err := d.DecodeUint() - if err != nil { - return n, err - } - if ve.OverflowUint(uint64(ui)) { - msg := fmt.Sprintf("unsigned integer too large to fit '%s'", - ve.Kind().String()) - err = unmarshalError("decode", ErrOverflow, msg, ui, nil) - return n, err - } - ve.SetUint(uint64(ui)) - return n, nil - - case reflect.Uint64: - ui, n, err := d.DecodeUhyper() - if err != nil { - return n, err - } - ve.SetUint(ui) - return n, nil - - case reflect.Bool: - b, n, err := d.DecodeBool() - if err != nil { - return n, err - } - ve.SetBool(b) - return n, nil - - case reflect.Float32: - f, n, err := d.DecodeFloat() - if err != nil { - return n, err - } - ve.SetFloat(float64(f)) - return n, nil - - case reflect.Float64: - f, n, err := d.DecodeDouble() - if err != nil { - return n, err - } - ve.SetFloat(f) - return n, nil - - case reflect.String: - s, n, err := d.DecodeString() - if err != nil { - return n, err - } - ve.SetString(s) - return n, nil - - case reflect.Array: - n, err := d.decodeFixedArray(ve, false) - if err != nil { - return n, err - } - return n, nil - - case reflect.Slice: - n, err := d.decodeArray(ve, false) - if err != nil { - return n, err - } - return n, nil - - case reflect.Struct: - n, err := d.decodeStruct(ve) - if err != nil { - return n, err - } - return n, nil - - case reflect.Map: - n, err := d.decodeMap(ve) - if err != nil { - return n, err - } - return n, nil - - case reflect.Interface: - n, err := d.decodeInterface(ve) - if err != nil { - return n, err - } - return n, nil - } - - // The only unhandled types left are unsupported. At the time of this - // writing the only remaining unsupported types that exist are - // reflect.Uintptr and reflect.UnsafePointer. - msg := fmt.Sprintf("unsupported Go type '%s'", ve.Kind().String()) - err = unmarshalError("decode", ErrUnsupportedType, msg, nil, nil) - return 0, err -} - -// indirect dereferences pointers allocating them as needed until it reaches -// a non-pointer. This allows transparent decoding through arbitrary levels -// of indirection. -func (d *Decoder) indirect(v reflect.Value) (reflect.Value, error) { - rv := v - for rv.Kind() == reflect.Ptr { - // Allocate pointer if needed. - isNil := rv.IsNil() - if isNil && !rv.CanSet() { - msg := fmt.Sprintf("unable to allocate pointer for '%v'", - rv.Type().String()) - err := unmarshalError("indirect", ErrNotSettable, msg, - nil, nil) - return rv, err - } - if isNil { - rv.Set(reflect.New(rv.Type().Elem())) - } - rv = rv.Elem() - } - return rv, nil -} - -// Decode operates identically to the Unmarshal function with the exception of -// using the reader associated with the Decoder as the source of XDR-encoded -// data instead of a user-supplied reader. See the Unmarhsal documentation for -// specifics. -func (d *Decoder) Decode(v interface{}) (int, error) { - if v == nil { - msg := "can't unmarshal to nil interface" - return 0, unmarshalError("Unmarshal", ErrNilInterface, msg, nil, - nil) - } - - vv := reflect.ValueOf(v) - if vv.Kind() != reflect.Ptr { - msg := fmt.Sprintf("can't unmarshal to non-pointer '%v' - use "+ - "& operator", vv.Type().String()) - err := unmarshalError("Unmarshal", ErrBadArguments, msg, nil, nil) - return 0, err - } - if vv.IsNil() && !vv.CanSet() { - msg := fmt.Sprintf("can't unmarshal to unsettable '%v' - use "+ - "& operator", vv.Type().String()) - err := unmarshalError("Unmarshal", ErrNotSettable, msg, nil, nil) - return 0, err - } - - return d.decode(vv) -} - -// NewDecoder returns a Decoder that can be used to manually decode XDR data -// from a provided reader. Typically, Unmarshal should be used instead of -// manually creating a Decoder. -func NewDecoder(r io.Reader) *Decoder { - return &Decoder{r: r} -} - -// NewDecoderLimited is identical to NewDecoder but it sets maxReadSize in -// order to cap reads. -func NewDecoderLimited(r io.Reader, maxSize uint) *Decoder { - return &Decoder{r: r, maxReadSize: maxSize} -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/doc.go deleted file mode 100644 index 8823d62f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/doc.go +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2012-2014 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 xdr implements the data representation portion of the External Data -Representation (XDR) standard protocol as specified in RFC 4506 (obsoletes -RFC 1832 and RFC 1014). - -The XDR RFC defines both a data specification language and a data -representation standard. This package implements methods to encode and decode -XDR data per the data representation standard with the exception of 128-bit -quadruple-precision floating points. It does not currently implement parsing of -the data specification language. In other words, the ability to automatically -generate Go code by parsing an XDR data specification file (typically .x -extension) is not supported. In practice, this limitation of the package is -fairly minor since it is largely unnecessary due to the reflection capabilities -of Go as described below. - -This package provides two approaches for encoding and decoding XDR data: - - 1) Marshal/Unmarshal functions which automatically map between XDR and Go types - 2) Individual Encoder/Decoder objects to manually work with XDR primitives - -For the Marshal/Unmarshal functions, Go reflection capabilities are used to -choose the type of the underlying XDR data based upon the Go type to encode or -the target Go type to decode into. A description of how each type is mapped is -provided below, however one important type worth reviewing is Go structs. In -the case of structs, each exported field (first letter capitalized) is reflected -and mapped in order. As a result, this means a Go struct with exported fields -of the appropriate types listed in the expected order can be used to -automatically encode / decode the XDR data thereby eliminating the need to write -a lot of boilerplate code to encode/decode and error check each piece of XDR -data as is typically required with C based XDR libraries. - -Go Type to XDR Type Mappings - -The following chart shows an overview of how Go types are mapped to XDR types -for automatic marshalling and unmarshalling. The documentation for the Marshal -and Unmarshal functions has specific details of how the mapping proceeds. - - Go Type <-> XDR Type - -------------------- - int8, int16, int32, int <-> XDR Integer - uint8, uint16, uint32, uint <-> XDR Unsigned Integer - int64 <-> XDR Hyper Integer - uint64 <-> XDR Unsigned Hyper Integer - bool <-> XDR Boolean - float32 <-> XDR Floating-Point - float64 <-> XDR Double-Precision Floating-Point - string <-> XDR String - byte <-> XDR Integer - []byte <-> XDR Variable-Length Opaque Data - [#]byte <-> XDR Fixed-Length Opaque Data - [] <-> XDR Variable-Length Array - [#] <-> XDR Fixed-Length Array - struct <-> XDR Structure - map <-> XDR Variable-Length Array of two-element XDR Structures - time.Time <-> XDR String encoded with RFC3339 nanosecond precision - -Notes and Limitations: - - * Automatic marshalling and unmarshalling of variable and fixed-length - arrays of uint8s require a special struct tag `xdropaque:"false"` - since byte slices and byte arrays are assumed to be opaque data and - byte is a Go alias for uint8 thus indistinguishable under reflection - * Channel, complex, and function types cannot be encoded - * Interfaces without a concrete value cannot be encoded - * Cyclic data structures are not supported and will result in infinite - loops - * Strings are marshalled and unmarshalled with UTF-8 character encoding - which differs from the XDR specification of ASCII, however UTF-8 is - backwards compatible with ASCII so this should rarely cause issues - - -Encoding - -To encode XDR data, use the Marshal function. - func Marshal(w io.Writer, v interface{}) (int, error) - -For example, given the following code snippet: - - type ImageHeader struct { - Signature [3]byte - Version uint32 - IsGrayscale bool - NumSections uint32 - } - h := ImageHeader{[3]byte{0xAB, 0xCD, 0xEF}, 2, true, 10} - - var w bytes.Buffer - bytesWritten, err := xdr.Marshal(&w, &h) - // Error check elided - -The result, encodedData, will then contain the following XDR encoded byte -sequence: - - 0xAB, 0xCD, 0xEF, 0x00, - 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x0A - - -In addition, while the automatic marshalling discussed above will work for the -vast majority of cases, an Encoder object is provided that can be used to -manually encode XDR primitives for complex scenarios where automatic -reflection-based encoding won't work. The included examples provide a sample of -manual usage via an Encoder. - - -Decoding - -To decode XDR data, use the Unmarshal function. - func Unmarshal(r io.Reader, v interface{}) (int, error) - -For example, given the following code snippet: - - type ImageHeader struct { - Signature [3]byte - Version uint32 - IsGrayscale bool - NumSections uint32 - } - - // Using output from the Encoding section above. - encodedData := []byte{ - 0xAB, 0xCD, 0xEF, 0x00, - 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x0A, - } - - var h ImageHeader - bytesRead, err := xdr.Unmarshal(bytes.NewReader(encodedData), &h) - // Error check elided - -The struct instance, h, will then contain the following values: - - h.Signature = [3]byte{0xAB, 0xCD, 0xEF} - h.Version = 2 - h.IsGrayscale = true - h.NumSections = 10 - -In addition, while the automatic unmarshalling discussed above will work for the -vast majority of cases, a Decoder object is provided that can be used to -manually decode XDR primitives for complex scenarios where automatic -reflection-based decoding won't work. The included examples provide a sample of -manual usage via a Decoder. - -Errors - -All errors are either of type UnmarshalError or MarshalError. Both provide -human-readable output as well as an ErrorCode field which can be inspected by -sophisticated callers if necessary. - -See the documentation of UnmarshalError, MarshalError, and ErrorCode for further -details. -*/ -package xdr diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/encode.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/encode.go deleted file mode 100644 index 7bac2681..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/encode.go +++ /dev/null @@ -1,669 +0,0 @@ -/* - * Copyright (c) 2012-2014 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 xdr - -import ( - "fmt" - "io" - "math" - "reflect" - "time" -) - -var errIOEncode = "%s while encoding %d bytes" - -/* -Marshal writes the XDR encoding of v to writer w and returns the number of bytes -written. It traverses v recursively and automatically indirects pointers -through arbitrary depth to encode the actual value pointed to. - -Marshal uses reflection to determine the type of the concrete value contained by -v and performs a mapping of Go types to the underlying XDR types as follows: - - Go Type -> XDR Type - -------------------- - int8, int16, int32, int -> XDR Integer - uint8, uint16, uint32, uint -> XDR Unsigned Integer - int64 -> XDR Hyper Integer - uint64 -> XDR Unsigned Hyper Integer - bool -> XDR Boolean - float32 -> XDR Floating-Point - float64 -> XDR Double-Precision Floating-Point - string -> XDR String - byte -> XDR Integer - []byte -> XDR Variable-Length Opaque Data - [#]byte -> XDR Fixed-Length Opaque Data - [] -> XDR Variable-Length Array - [#] -> XDR Fixed-Length Array - struct -> XDR Structure - map -> XDR Variable-Length Array of two-element XDR Structures - time.Time -> XDR String encoded with RFC3339 nanosecond precision - -Notes and Limitations: - - * Automatic marshalling of variable and fixed-length arrays of uint8s - requires a special struct tag `xdropaque:"false"` since byte slices and - byte arrays are assumed to be opaque data and byte is a Go alias for uint8 - thus indistinguishable under reflection - * Channel, complex, and function types cannot be encoded - * Interfaces without a concrete value cannot be encoded - * Cyclic data structures are not supported and will result in infinite loops - * Strings are marshalled with UTF-8 character encoding which differs from - the XDR specification of ASCII, however UTF-8 is backwards compatible with - ASCII so this should rarely cause issues - -If any issues are encountered during the marshalling process, a MarshalError is -returned with a human readable description as well as an ErrorCode value for -further inspection from sophisticated callers. Some potential issues are -unsupported Go types, attempting to encode more opaque data than can be -represented by a single opaque XDR entry, and exceeding max slice limitations. -*/ -func Marshal(w io.Writer, v interface{}) (int, error) { - enc := Encoder{w: w} - return enc.Encode(v) -} - -// An Encoder wraps an io.Writer that will receive the XDR encoded byte stream. -// See NewEncoder. -type Encoder struct { - w io.Writer -} - -// EncodeInt writes the XDR encoded representation of the passed 32-bit signed -// integer to the encapsulated writer and returns the number of bytes written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.1 - Integer -// 32-bit big-endian signed integer in range [-2147483648, 2147483647] -func (enc *Encoder) EncodeInt(v int32) (int, error) { - var b [4]byte - b[0] = byte(v >> 24) - b[1] = byte(v >> 16) - b[2] = byte(v >> 8) - b[3] = byte(v) - - n, err := enc.w.Write(b[:]) - if err != nil { - msg := fmt.Sprintf(errIOEncode, err.Error(), 4) - err := marshalError("EncodeInt", ErrIO, msg, b[:n], err) - return n, err - } - - return n, nil -} - -// EncodeUint writes the XDR encoded representation of the passed 32-bit -// unsigned integer to the encapsulated writer and returns the number of bytes -// written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.2 - Unsigned Integer -// 32-bit big-endian unsigned integer in range [0, 4294967295] -func (enc *Encoder) EncodeUint(v uint32) (int, error) { - var b [4]byte - b[0] = byte(v >> 24) - b[1] = byte(v >> 16) - b[2] = byte(v >> 8) - b[3] = byte(v) - - n, err := enc.w.Write(b[:]) - if err != nil { - msg := fmt.Sprintf(errIOEncode, err.Error(), 4) - err := marshalError("EncodeUint", ErrIO, msg, b[:n], err) - return n, err - } - - return n, nil -} - -// EncodeEnum treats the passed 32-bit signed integer as an enumeration value -// and, if it is in the list of passed valid enumeration values, writes the XDR -// encoded representation of it to the encapsulated writer. It returns the -// number of bytes written. -// -// A MarshalError is returned if the enumeration value is not one of the -// provided valid values or if writing the data fails. -// -// Reference: -// RFC Section 4.3 - Enumeration -// Represented as an XDR encoded signed integer -func (enc *Encoder) EncodeEnum(v int32, validEnums map[int32]bool) (int, error) { - if !validEnums[v] { - err := marshalError("EncodeEnum", ErrBadEnumValue, - "invalid enum", v, nil) - return 0, err - } - return enc.EncodeInt(v) -} - -// EncodeBool writes the XDR encoded representation of the passed boolean to the -// encapsulated writer and returns the number of bytes written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.4 - Boolean -// Represented as an XDR encoded enumeration where 0 is false and 1 is true -func (enc *Encoder) EncodeBool(v bool) (int, error) { - i := int32(0) - if v == true { - i = 1 - } - return enc.EncodeInt(i) -} - -// EncodeHyper writes the XDR encoded representation of the passed 64-bit -// signed integer to the encapsulated writer and returns the number of bytes -// written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.5 - Hyper Integer -// 64-bit big-endian signed integer in range [-9223372036854775808, 9223372036854775807] -func (enc *Encoder) EncodeHyper(v int64) (int, error) { - var b [8]byte - 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) - - n, err := enc.w.Write(b[:]) - if err != nil { - msg := fmt.Sprintf(errIOEncode, err.Error(), 8) - err := marshalError("EncodeHyper", ErrIO, msg, b[:n], err) - return n, err - } - - return n, nil -} - -// EncodeUhyper writes the XDR encoded representation of the passed 64-bit -// unsigned integer to the encapsulated writer and returns the number of bytes -// written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.5 - Unsigned Hyper Integer -// 64-bit big-endian unsigned integer in range [0, 18446744073709551615] -func (enc *Encoder) EncodeUhyper(v uint64) (int, error) { - var b [8]byte - 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) - - n, err := enc.w.Write(b[:]) - if err != nil { - msg := fmt.Sprintf(errIOEncode, err.Error(), 8) - err := marshalError("EncodeUhyper", ErrIO, msg, b[:n], err) - return n, err - } - - return n, nil -} - -// EncodeFloat writes the XDR encoded representation of the passed 32-bit -// (single-precision) floating point to the encapsulated writer and returns the -// number of bytes written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.6 - Floating Point -// 32-bit single-precision IEEE 754 floating point -func (enc *Encoder) EncodeFloat(v float32) (int, error) { - ui := math.Float32bits(v) - return enc.EncodeUint(ui) -} - -// EncodeDouble writes the XDR encoded representation of the passed 64-bit -// (double-precision) floating point to the encapsulated writer and returns the -// number of bytes written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.7 - Double-Precision Floating Point -// 64-bit double-precision IEEE 754 floating point -func (enc *Encoder) EncodeDouble(v float64) (int, error) { - ui := math.Float64bits(v) - return enc.EncodeUhyper(ui) -} - -// RFC Section 4.8 - Quadruple-Precision Floating Point -// 128-bit quadruple-precision floating point -// Not Implemented - -// EncodeFixedOpaque treats the passed byte slice as opaque data of a fixed -// size and writes the XDR encoded representation of it to the encapsulated -// writer. It returns the number of bytes written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.9 - Fixed-Length Opaque Data -// Fixed-length uninterpreted data zero-padded to a multiple of four -func (enc *Encoder) EncodeFixedOpaque(v []byte) (int, error) { - l := len(v) - pad := (4 - (l % 4)) % 4 - - // Write the actual bytes. - n, err := enc.w.Write(v) - if err != nil { - msg := fmt.Sprintf(errIOEncode, err.Error(), len(v)) - err := marshalError("EncodeFixedOpaque", ErrIO, msg, v[:n], err) - return n, err - } - - // Write any padding if needed. - if pad > 0 { - b := make([]byte, pad) - n2, err := enc.w.Write(b) - n += n2 - if err != nil { - written := make([]byte, l+n2) - copy(written, v) - copy(written[l:], b[:n2]) - msg := fmt.Sprintf(errIOEncode, err.Error(), l+pad) - err := marshalError("EncodeFixedOpaque", ErrIO, msg, - written, err) - return n, err - } - } - - return n, nil -} - -// EncodeOpaque treats the passed byte slice as opaque data of a variable -// size and writes the XDR encoded representation of it to the encapsulated -// writer. It returns the number of bytes written. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.10 - Variable-Length Opaque Data -// Unsigned integer length followed by fixed opaque data of that length -func (enc *Encoder) EncodeOpaque(v []byte) (int, error) { - // Length of opaque data. - n, err := enc.EncodeUint(uint32(len(v))) - if err != nil { - return n, err - } - - n2, err := enc.EncodeFixedOpaque(v) - n += n2 - return n, err -} - -// EncodeString writes the XDR encoded representation of the passed string -// to the encapsulated writer and returns the number of bytes written. -// Character encoding is assumed to be UTF-8 and therefore ASCII compatible. If -// the underlying character encoding is not compatible with this assumption, the -// data can instead be written as variable-length opaque data (EncodeOpaque) and -// manually converted as needed. -// -// A MarshalError with an error code of ErrIO is returned if writing the data -// fails. -// -// Reference: -// RFC Section 4.11 - String -// Unsigned integer length followed by bytes zero-padded to a multiple of four -func (enc *Encoder) EncodeString(v string) (int, error) { - // Length of string. - n, err := enc.EncodeUint(uint32(len(v))) - if err != nil { - return n, err - } - - n2, err := enc.EncodeFixedOpaque([]byte(v)) - n += n2 - return n, err -} - -// encodeFixedArray writes the XDR encoded representation of each element -// in the passed array represented by the reflection value to the encapsulated -// writer and returns the number of bytes written. The ignoreOpaque flag -// controls whether or not uint8 (byte) elements should be encoded individually -// or as a fixed sequence of opaque data. -// -// A MarshalError is returned if any issues are encountered while encoding -// the array elements. -// -// Reference: -// RFC Section 4.12 - Fixed-Length Array -// Individually XDR encoded array elements -func (enc *Encoder) encodeFixedArray(v reflect.Value, ignoreOpaque bool) (int, error) { - // Treat [#]byte (byte is alias for uint8) as opaque data unless ignored. - if !ignoreOpaque && v.Type().Elem().Kind() == reflect.Uint8 { - // Create a slice of the underlying array for better efficiency - // when possible. Can't create a slice of an unaddressable - // value. - if v.CanAddr() { - return enc.EncodeFixedOpaque(v.Slice(0, v.Len()).Bytes()) - } - - // When the underlying array isn't addressable fall back to - // copying the array into a new slice. This is rather ugly, but - // the inability to create a constant slice from an - // unaddressable array is a limitation of Go. - slice := make([]byte, v.Len(), v.Len()) - reflect.Copy(reflect.ValueOf(slice), v) - return enc.EncodeFixedOpaque(slice) - } - - // Encode each array element. - var n int - for i := 0; i < v.Len(); i++ { - n2, err := enc.encode(v.Index(i)) - n += n2 - if err != nil { - return n, err - } - } - - return n, nil -} - -// encodeArray writes an XDR encoded integer representing the number of -// elements in the passed slice represented by the reflection value followed by -// the XDR encoded representation of each element in slice to the encapsulated -// writer and returns the number of bytes written. The ignoreOpaque flag -// controls whether or not uint8 (byte) elements should be encoded individually -// or as a variable sequence of opaque data. -// -// A MarshalError is returned if any issues are encountered while encoding -// the array elements. -// -// Reference: -// RFC Section 4.13 - Variable-Length Array -// Unsigned integer length followed by individually XDR encoded array elements -func (enc *Encoder) encodeArray(v reflect.Value, ignoreOpaque bool) (int, error) { - numItems := uint32(v.Len()) - n, err := enc.EncodeUint(numItems) - if err != nil { - return n, err - } - - n2, err := enc.encodeFixedArray(v, ignoreOpaque) - n += n2 - return n, err -} - -// encodeStruct writes an XDR encoded representation of each value in the -// exported fields of the struct represented by the passed reflection value to -// the encapsulated writer and returns the number of bytes written. Pointers -// are automatically indirected through arbitrary depth to encode the actual -// value pointed to. -// -// A MarshalError is returned if any issues are encountered while encoding -// the elements. -// -// Reference: -// RFC Section 4.14 - Structure -// XDR encoded elements in the order of their declaration in the struct -func (enc *Encoder) encodeStruct(v reflect.Value) (int, error) { - var n int - vt := v.Type() - for i := 0; i < v.NumField(); i++ { - // Skip unexported fields and indirect through pointers. - vtf := vt.Field(i) - if vtf.PkgPath != "" { - continue - } - vf := v.Field(i) - vf = enc.indirect(vf) - - // Handle non-opaque data to []uint8 and [#]uint8 based on struct tag. - tag := vtf.Tag.Get("xdropaque") - if tag == "false" { - switch vf.Kind() { - case reflect.Slice: - n2, err := enc.encodeArray(vf, true) - n += n2 - if err != nil { - return n, err - } - continue - - case reflect.Array: - n2, err := enc.encodeFixedArray(vf, true) - n += n2 - if err != nil { - return n, err - } - continue - } - } - - // Encode each struct field. - n2, err := enc.encode(vf) - n += n2 - if err != nil { - return n, err - } - } - - return n, nil -} - -// RFC Section 4.15 - Discriminated Union -// RFC Section 4.16 - Void -// RFC Section 4.17 - Constant -// RFC Section 4.18 - Typedef -// RFC Section 4.19 - Optional data -// RFC Sections 4.15 though 4.19 only apply to the data specification language -// which is not implemented by this package. In the case of discriminated -// unions, struct tags are used to perform a similar function. - -// encodeMap treats the map represented by the passed reflection value as a -// variable-length array of 2-element structures whose fields are of the same -// type as the map keys and elements and writes its XDR encoded representation -// to the encapsulated writer. It returns the number of bytes written. -// -// A MarshalError is returned if any issues are encountered while encoding -// the elements. -func (enc *Encoder) encodeMap(v reflect.Value) (int, error) { - // Number of elements. - n, err := enc.EncodeUint(uint32(v.Len())) - if err != nil { - return n, err - } - - // Encode each key and value according to their type. - for _, key := range v.MapKeys() { - n2, err := enc.encode(key) - n += n2 - if err != nil { - return n, err - } - - n2, err = enc.encode(v.MapIndex(key)) - n += n2 - if err != nil { - return n, err - } - } - - return n, nil -} - -// encodeInterface examines the interface represented by the passed reflection -// value to detect whether it is an interface that can be encoded if it is, -// extracts the underlying value to pass back into the encode function for -// encoding according to its type. -// -// A MarshalError is returned if any issues are encountered while encoding -// the interface. -func (enc *Encoder) encodeInterface(v reflect.Value) (int, error) { - if v.IsNil() || !v.CanInterface() { - msg := fmt.Sprintf("can't encode nil interface") - err := marshalError("encodeInterface", ErrNilInterface, msg, - nil, nil) - return 0, err - } - - // Extract underlying value from the interface and indirect through pointers. - ve := reflect.ValueOf(v.Interface()) - ve = enc.indirect(ve) - return enc.encode(ve) -} - -// encode is the main workhorse for marshalling via reflection. It uses -// the passed reflection value to choose the XDR primitives to encode into -// the encapsulated writer and returns the number of bytes written. It is a -// recursive function, so cyclic data structures are not supported and will -// result in an infinite loop. -func (enc *Encoder) encode(v reflect.Value) (int, error) { - if !v.IsValid() { - msg := fmt.Sprintf("type '%s' is not valid", v.Kind().String()) - err := marshalError("encode", ErrUnsupportedType, msg, nil, nil) - return 0, err - } - - // Indirect through pointers to get at the concrete value. - ve := enc.indirect(v) - - // Handle time.Time values by encoding them as an RFC3339 formatted - // string with nanosecond precision. Check the type string before - // doing a full blown conversion to interface and type assertion since - // checking a string is much quicker. - if ve.Type().String() == "time.Time" && ve.CanInterface() { - viface := ve.Interface() - if tv, ok := viface.(time.Time); ok { - return enc.EncodeString(tv.Format(time.RFC3339Nano)) - } - } - - // Handle native Go types. - switch ve.Kind() { - case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int: - return enc.EncodeInt(int32(ve.Int())) - - case reflect.Int64: - return enc.EncodeHyper(ve.Int()) - - case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint: - return enc.EncodeUint(uint32(ve.Uint())) - - case reflect.Uint64: - return enc.EncodeUhyper(ve.Uint()) - - case reflect.Bool: - return enc.EncodeBool(ve.Bool()) - - case reflect.Float32: - return enc.EncodeFloat(float32(ve.Float())) - - case reflect.Float64: - return enc.EncodeDouble(ve.Float()) - - case reflect.String: - return enc.EncodeString(ve.String()) - - case reflect.Array: - return enc.encodeFixedArray(ve, false) - - case reflect.Slice: - return enc.encodeArray(ve, false) - - case reflect.Struct: - return enc.encodeStruct(ve) - - case reflect.Map: - return enc.encodeMap(ve) - - case reflect.Interface: - return enc.encodeInterface(ve) - } - - // The only unhandled types left are unsupported. At the time of this - // writing the only remaining unsupported types that exist are - // reflect.Uintptr and reflect.UnsafePointer. - msg := fmt.Sprintf("unsupported Go type '%s'", ve.Kind().String()) - err := marshalError("encode", ErrUnsupportedType, msg, nil, nil) - return 0, err -} - -// indirect dereferences pointers until it reaches a non-pointer. This allows -// transparent encoding through arbitrary levels of indirection. -func (enc *Encoder) indirect(v reflect.Value) reflect.Value { - rv := v - for rv.Kind() == reflect.Ptr { - rv = rv.Elem() - } - return rv -} - -// Encode operates identically to the Marshal function with the exception of -// using the writer associated with the Encoder for the destination of the -// XDR-encoded data instead of a user-supplied writer. See the Marshal -// documentation for specifics. -func (enc *Encoder) Encode(v interface{}) (int, error) { - if v == nil { - msg := "can't marshal nil interface" - err := marshalError("Marshal", ErrNilInterface, msg, nil, nil) - return 0, err - } - - vv := reflect.ValueOf(v) - vve := vv - for vve.Kind() == reflect.Ptr { - if vve.IsNil() { - msg := fmt.Sprintf("can't marshal nil pointer '%v'", - vv.Type().String()) - err := marshalError("Marshal", ErrBadArguments, msg, - nil, nil) - return 0, err - } - vve = vve.Elem() - } - - return enc.encode(vve) -} - -// NewEncoder returns an object that can be used to manually choose fields to -// XDR encode to the passed writer w. Typically, Marshal should be used instead -// of manually creating an Encoder. An Encoder, along with several of its -// methods to encode XDR primitives, is exposed so it is possible to perform -// manual encoding of data without relying on reflection should it be necessary -// in complex scenarios where automatic reflection-based encoding won't work. -func NewEncoder(w io.Writer) *Encoder { - return &Encoder{w: w} -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/error.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/error.go deleted file mode 100644 index 42079ad3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/davecgh/go-xdr/xdr2/error.go +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2012-2014 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 xdr - -import "fmt" - -// ErrorCode identifies a kind of error. -type ErrorCode int - -const ( - // ErrBadArguments indicates arguments passed to the function are not - // what was expected. - ErrBadArguments ErrorCode = iota - - // ErrUnsupportedType indicates the Go type is not a supported type for - // marshalling and unmarshalling XDR data. - ErrUnsupportedType - - // ErrBadEnumValue indicates an enumeration value is not in the list of - // valid values. - ErrBadEnumValue - - // ErrNotSettable indicates an interface value cannot be written to. - // This usually means the interface value was not passed with the & - // operator, but it can also happen if automatic pointer allocation - // fails. - ErrNotSettable - - // ErrOverflow indicates that the data in question is too large to fit - // into the corresponding Go or XDR data type. For example, an integer - // decoded from XDR that is too large to fit into a target type of int8, - // or opaque data that exceeds the max length of a Go slice. - ErrOverflow - - // ErrNilInterface indicates an interface with no concrete type - // information was encountered. Type information is necessary to - // perform mapping between XDR and Go types. - ErrNilInterface - - // ErrIO indicates an error was encountered while reading or writing to - // an io.Reader or io.Writer, respectively. The actual underlying error - // will be available via the Err field of the MarshalError or - // UnmarshalError struct. - ErrIO - - // ErrParseTime indicates an error was encountered while parsing an - // RFC3339 formatted time value. The actual underlying error will be - // available via the Err field of the UnmarshalError struct. - ErrParseTime -) - -// Map of ErrorCode values back to their constant names for pretty printing. -var errorCodeStrings = map[ErrorCode]string{ - ErrBadArguments: "ErrBadArguments", - ErrUnsupportedType: "ErrUnsupportedType", - ErrBadEnumValue: "ErrBadEnumValue", - ErrNotSettable: "ErrNotSettable", - ErrOverflow: "ErrOverflow", - ErrNilInterface: "ErrNilInterface", - ErrIO: "ErrIO", - ErrParseTime: "ErrParseTime", -} - -// String returns the ErrorCode as a human-readable name. -func (e ErrorCode) String() string { - if s := errorCodeStrings[e]; s != "" { - return s - } - return fmt.Sprintf("Unknown ErrorCode (%d)", e) -} - -// UnmarshalError describes a problem encountered while unmarshaling data. -// Some potential issues are unsupported Go types, attempting to decode a value -// which is too large to fit into a specified Go type, and exceeding max slice -// limitations. -type UnmarshalError struct { - ErrorCode ErrorCode // Describes the kind of error - Func string // Function name - Value interface{} // Value actually parsed where appropriate - Description string // Human readable description of the issue - Err error // The underlying error for IO errors -} - -// Error satisfies the error interface and prints human-readable errors. -func (e *UnmarshalError) Error() string { - switch e.ErrorCode { - case ErrBadEnumValue, ErrOverflow, ErrIO, ErrParseTime: - return fmt.Sprintf("xdr:%s: %s - read: '%v'", e.Func, - e.Description, e.Value) - } - return fmt.Sprintf("xdr:%s: %s", e.Func, e.Description) -} - -// unmarshalError creates an error given a set of arguments and will copy byte -// slices into the Value field since they might otherwise be changed from from -// the original value. -func unmarshalError(f string, c ErrorCode, desc string, v interface{}, err error) *UnmarshalError { - e := &UnmarshalError{ErrorCode: c, Func: f, Description: desc, Err: err} - switch t := v.(type) { - case []byte: - slice := make([]byte, len(t)) - copy(slice, t) - e.Value = slice - default: - e.Value = v - } - - return e -} - -// IsIO returns a boolean indicating whether the error is known to report that -// the underlying reader or writer encountered an ErrIO. -func IsIO(err error) bool { - switch e := err.(type) { - case *UnmarshalError: - return e.ErrorCode == ErrIO - case *MarshalError: - return e.ErrorCode == ErrIO - } - return false -} - -// MarshalError describes a problem encountered while marshaling data. -// Some potential issues are unsupported Go types, attempting to encode more -// opaque data than can be represented by a single opaque XDR entry, and -// exceeding max slice limitations. -type MarshalError struct { - ErrorCode ErrorCode // Describes the kind of error - Func string // Function name - Value interface{} // Value actually parsed where appropriate - Description string // Human readable description of the issue - Err error // The underlying error for IO errors -} - -// Error satisfies the error interface and prints human-readable errors. -func (e *MarshalError) Error() string { - switch e.ErrorCode { - case ErrIO: - return fmt.Sprintf("xdr:%s: %s - wrote: '%v'", e.Func, - e.Description, e.Value) - case ErrBadEnumValue: - return fmt.Sprintf("xdr:%s: %s - value: '%v'", e.Func, - e.Description, e.Value) - } - return fmt.Sprintf("xdr:%s: %s", e.Func, e.Description) -} - -// marshalError creates an error given a set of arguments and will copy byte -// slices into the Value field since they might otherwise be changed from from -// the original value. -func marshalError(f string, c ErrorCode, desc string, v interface{}, err error) *MarshalError { - e := &MarshalError{ErrorCode: c, Func: f, Description: desc, Err: err} - switch t := v.(type) { - case []byte: - slice := make([]byte, len(t)) - copy(slice, t) - e.Value = slice - default: - e.Value = v - } - - return e -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/AUTHORS b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/AUTHORS deleted file mode 100644 index 1db99ced..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/AUTHORS +++ /dev/null @@ -1,19 +0,0 @@ -Maintainer ----------- -DigitalOcean, Inc - -Original Authors ----------------- -Ben LeMasurier -Matt Layher - -Contributors ------------- -Justin Kim -Ricky Medina -Charlie Drage -Michael Koppmann -Simarpreet Singh -Alexander Polyakov -Amanda Andrade -Geoff Hickey diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/CONTRIBUTING.md b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/CONTRIBUTING.md deleted file mode 100644 index 1b5b7410..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/CONTRIBUTING.md +++ /dev/null @@ -1,30 +0,0 @@ -Contributing -============ - -The `go-libvirt` project makes use of the [GitHub Flow](https://guides.github.com/introduction/flow/) -for contributions. - -If you'd like to contribute to the project, please -[open an issue](https://github.com/digitalocean/go-libvirt/issues/new) or find an -[existing issue](https://github.com/digitalocean/go-libvirt/issues) that you'd like -to take on. This ensures that efforts are not duplicated, and that a new feature -aligns with the focus of the rest of the repository. - -Once your suggestion has been submitted and discussed, please be sure that your -code meets the following criteria: - - code is completely `gofmt`'d - - new features or codepaths have appropriate test coverage - - `go test ./...` passes - - `go vet ./...` passes - - `golint ./...` returns no warnings, including documentation comment warnings - -In addition, if this is your first time contributing to the `go-libvirt` project, -add your name and email address to the -[AUTHORS](https://github.com/digitalocean/go-libvirt/blob/master/AUTHORS) file -under the "Contributors" section using the format: -`First Last `. - -Finally, submit a pull request for review! - -Questions? Feel free to join us in [`#go-qemu` on freenode](https://webchat.freenode.net/) -if you'd like to discuss the project. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/LICENSE.md b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/LICENSE.md deleted file mode 100644 index f5f4b8b5..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/LICENSE.md +++ /dev/null @@ -1,195 +0,0 @@ -Apache License -============== - -_Version 2.0, January 2004_ -_<>_ - -### 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/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/README.md b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/README.md deleted file mode 100644 index 969a6b66..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/README.md +++ /dev/null @@ -1,153 +0,0 @@ -libvirt [![GoDoc](http://godoc.org/github.com/digitalocean/go-libvirt?status.svg)](http://godoc.org/github.com/digitalocean/go-libvirt) [![Build Status](https://travis-ci.org/digitalocean/go-libvirt.svg?branch=master)](https://travis-ci.org/digitalocean/go-libvirt) [![Report Card](https://goreportcard.com/badge/github.com/digitalocean/go-libvirt)](https://goreportcard.com/report/github.com/digitalocean/go-libvirt) -==== - -Package `go-libvirt` provides a pure Go interface for interacting with libvirt. - -Rather than using Libvirt's C bindings, this package makes use of -libvirt's RPC interface, as documented [here](https://libvirt.org/internals/rpc.html). -Connections to the libvirt server may be local, or remote. RPC packets are encoded -using the XDR standard as defined by [RFC 4506](https://tools.ietf.org/html/rfc4506.html). - -libvirt's RPC interface is quite extensive, and changes from one version to the next, so -this project uses a code generator to build the go bindings. The code generator should -be run whenever you want to build go-libvirt for a new version of libvirt. To do this, -you'll need to set an environment variable `LIBVIRT_SOURCE` to the directory containing -the untarred libvirt sources, and then run `go generate ./...` from the go-libvirt directory. -The code generator consumes [src/remote/remote_protocol.x](https://github.com/libvirt/libvirt/blob/master/src/remote/remote_protocol.x) -and produces go bindings for all the remote procedures defined there. - -[Pull requests are welcome](https://github.com/digitalocean/go-libvirt/blob/master/CONTRIBUTING.md)! - -How to Use This Library ------------------------ -Once you've vendored go-libvirt into your project, you'll probably want to call -some libvirt functions. There's some example code below showing how to connect -to libvirt and make one such call, but once you get past the introduction you'll -next want to call some other libvirt functions. How do you find them? - -Start with the [libvirt API reference](https://libvirt.org/html/index.html). -Let's say you want to gracefully shutdown a VM, and after reading through the -libvirt docs you determine that virDomainShutdown() is the function you want to -call to do that. Where's that function in go-libvirt? We transform the names -slightly when building the go bindings. There's no need for a global prefix like -"vir" in Go, since all our functions are inside the package namespace, so we -drop it. That means the Go function for `virDomainShutdown()` is just `DomainShutdown()`, -and sure enough, you can find the Go function `DomainShutdown()` in libvirt.gen.go, -with parameters and return values equivalent to those documented in the API -reference. - -Suppose you then decide you need more control over your shutdown, so you switch -over to `virDomainShutdownFlags()`. As its name suggests, this function takes a -flag parameter which has possible values specified in an enum called -`virDomainShutdownFlagValues`. Flag types like this are a little tricky for the -code generator, because the C functions just take an integer type - only the -libvirt documentation actually ties the flags to the enum types. In most cases -though we're able to generate a wrapper function with a distinct flag type, -making it easier for Go tooling to suggest possible flag values while you're -working. Checking the documentation for this function: - -`godoc github.com/digitalocean/go-libvirt DomainShutdownFlags` - -returns this: - -`func (l *Libvirt) DomainShutdownFlags(Dom Domain, Flags DomainShutdownFlagValues) (err error)` - -If you want to see the possible flag values, `godoc` can help again: - -``` -$ godoc github.com/digitalocean/go-libvirt DomainShutdownFlagValues - -type DomainShutdownFlagValues int32 - DomainShutdownFlagValues as declared in libvirt/libvirt-domain.h:1121 - -const ( - DomainShutdownDefault DomainShutdownFlagValues = iota - DomainShutdownAcpiPowerBtn DomainShutdownFlagValues = 1 - DomainShutdownGuestAgent DomainShutdownFlagValues = 2 - DomainShutdownInitctl DomainShutdownFlagValues = 4 - DomainShutdownSignal DomainShutdownFlagValues = 8 - DomainShutdownParavirt DomainShutdownFlagValues = 16 -) - DomainShutdownFlagValues enumeration from libvirt/libvirt-domain.h:1121 -``` - -One other suggestion: most of the code in go-libvirt is now generated, but a few -hand-written routines still exist in libvirt.go, and wrap calls to the generated -code with slightly different parameters or return values. We suggest avoiding -these hand-written routines and calling the generated routines in libvirt.gen.go -instead. Over time these handwritten routines will be removed from go-libvirt. - -Warning -------- - -The libvirt project strongly recommends *against* talking to the RPC interface -directly. They consider it to be a private implementation detail with the -possibility of being entirely rearchitected in the future. - -While these package are reasonably well-tested and have seen some use inside of -DigitalOcean, there may be subtle bugs which could cause the packages to act -in unexpected ways. Use at your own risk! - -In addition, the API is not considered stable at this time. If you would like -to include package `libvirt` in a project, we highly recommend vendoring it into -your project. - -Example -------- - -```go -package main - -import ( - "fmt" - "log" - "net" - "time" - - "github.com/digitalocean/go-libvirt" -) - -func main() { - //c, err := net.DialTimeout("tcp", "127.0.0.1:16509", 2*time.Second) - //c, err := net.DialTimeout("tcp", "192.168.1.12:16509", 2*time.Second) - c, err := net.DialTimeout("unix", "/var/run/libvirt/libvirt-sock", 2*time.Second) - if err != nil { - log.Fatalf("failed to dial libvirt: %v", err) - } - - l := libvirt.New(c) - if err := l.Connect(); err != nil { - log.Fatalf("failed to connect: %v", err) - } - - v, err := l.Version() - if err != nil { - log.Fatalf("failed to retrieve libvirt version: %v", err) - } - fmt.Println("Version:", v) - - domains, err := l.Domains() - if err != nil { - log.Fatalf("failed to retrieve domains: %v", err) - } - - fmt.Println("ID\tName\t\tUUID") - fmt.Printf("--------------------------------------------------------\n") - for _, d := range domains { - fmt.Printf("%d\t%s\t%x\n", d.ID, d.Name, d.UUID) - } - - if err := l.Disconnect(); err != nil { - log.Fatal("failed to disconnect: %v", err) - } -} - -``` - -``` -Version: 1.3.4 -ID Name UUID --------------------------------------------------------- -1 Test-1 dc329f87d4de47198cfd2e21c6105b01 -2 Test-2 dc229f87d4de47198cfd2e21c6105b01 -``` diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/const.gen.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/const.gen.go deleted file mode 100644 index 9f444e8f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/const.gen.go +++ /dev/null @@ -1,1995 +0,0 @@ -// Copyright 2017 The go-libvirt 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. -// - -// WARNING: This file has automatically been generated -// by https://git.io/c-for-go. DO NOT EDIT. - -package libvirt - -const ( - // ExportVar as defined in libvirt/libvirt-common.h:58 - ExportVar = 0 - // TypedParamFieldLength as defined in libvirt/libvirt-common.h:171 - TypedParamFieldLength = 80 - // SecurityLabelBuflen as defined in libvirt/libvirt-host.h:85 - SecurityLabelBuflen = 4097 - // SecurityModelBuflen as defined in libvirt/libvirt-host.h:113 - SecurityModelBuflen = 257 - // SecurityDoiBuflen as defined in libvirt/libvirt-host.h:120 - SecurityDoiBuflen = 257 - // NodeCPUStatsFieldLength as defined in libvirt/libvirt-host.h:177 - NodeCPUStatsFieldLength = 80 - // NodeCPUStatsKernel as defined in libvirt/libvirt-host.h:194 - NodeCPUStatsKernel = "kernel" - // NodeCPUStatsUser as defined in libvirt/libvirt-host.h:202 - NodeCPUStatsUser = "user" - // NodeCPUStatsIdle as defined in libvirt/libvirt-host.h:210 - NodeCPUStatsIdle = "idle" - // NodeCPUStatsIowait as defined in libvirt/libvirt-host.h:218 - NodeCPUStatsIowait = "iowait" - // NodeCPUStatsIntr as defined in libvirt/libvirt-host.h:226 - NodeCPUStatsIntr = "intr" - // NodeCPUStatsUtilization as defined in libvirt/libvirt-host.h:235 - NodeCPUStatsUtilization = "utilization" - // NodeMemoryStatsFieldLength as defined in libvirt/libvirt-host.h:255 - NodeMemoryStatsFieldLength = 80 - // NodeMemoryStatsTotal as defined in libvirt/libvirt-host.h:272 - NodeMemoryStatsTotal = "total" - // NodeMemoryStatsFree as defined in libvirt/libvirt-host.h:281 - NodeMemoryStatsFree = "free" - // NodeMemoryStatsBuffers as defined in libvirt/libvirt-host.h:289 - NodeMemoryStatsBuffers = "buffers" - // NodeMemoryStatsCached as defined in libvirt/libvirt-host.h:297 - NodeMemoryStatsCached = "cached" - // NodeMemorySharedPagesToScan as defined in libvirt/libvirt-host.h:318 - NodeMemorySharedPagesToScan = "shm_pages_to_scan" - // NodeMemorySharedSleepMillisecs as defined in libvirt/libvirt-host.h:326 - NodeMemorySharedSleepMillisecs = "shm_sleep_millisecs" - // NodeMemorySharedPagesShared as defined in libvirt/libvirt-host.h:334 - NodeMemorySharedPagesShared = "shm_pages_shared" - // NodeMemorySharedPagesSharing as defined in libvirt/libvirt-host.h:342 - NodeMemorySharedPagesSharing = "shm_pages_sharing" - // NodeMemorySharedPagesUnshared as defined in libvirt/libvirt-host.h:350 - NodeMemorySharedPagesUnshared = "shm_pages_unshared" - // NodeMemorySharedPagesVolatile as defined in libvirt/libvirt-host.h:358 - NodeMemorySharedPagesVolatile = "shm_pages_volatile" - // NodeMemorySharedFullScans as defined in libvirt/libvirt-host.h:366 - NodeMemorySharedFullScans = "shm_full_scans" - // NodeMemorySharedMergeAcrossNodes as defined in libvirt/libvirt-host.h:378 - NodeMemorySharedMergeAcrossNodes = "shm_merge_across_nodes" - // UUIDBuflen as defined in libvirt/libvirt-host.h:513 - UUIDBuflen = 16 - // UUIDStringBuflen as defined in libvirt/libvirt-host.h:522 - UUIDStringBuflen = 37 - // DomainSchedulerCPUShares as defined in libvirt/libvirt-domain.h:315 - DomainSchedulerCPUShares = "cpu_shares" - // DomainSchedulerGlobalPeriod as defined in libvirt/libvirt-domain.h:323 - DomainSchedulerGlobalPeriod = "global_period" - // DomainSchedulerGlobalQuota as defined in libvirt/libvirt-domain.h:331 - DomainSchedulerGlobalQuota = "global_quota" - // DomainSchedulerVCPUPeriod as defined in libvirt/libvirt-domain.h:339 - DomainSchedulerVCPUPeriod = "vcpu_period" - // DomainSchedulerVCPUQuota as defined in libvirt/libvirt-domain.h:347 - DomainSchedulerVCPUQuota = "vcpu_quota" - // DomainSchedulerEmulatorPeriod as defined in libvirt/libvirt-domain.h:356 - DomainSchedulerEmulatorPeriod = "emulator_period" - // DomainSchedulerEmulatorQuota as defined in libvirt/libvirt-domain.h:365 - DomainSchedulerEmulatorQuota = "emulator_quota" - // DomainSchedulerIothreadPeriod as defined in libvirt/libvirt-domain.h:373 - DomainSchedulerIothreadPeriod = "iothread_period" - // DomainSchedulerIothreadQuota as defined in libvirt/libvirt-domain.h:381 - DomainSchedulerIothreadQuota = "iothread_quota" - // DomainSchedulerWeight as defined in libvirt/libvirt-domain.h:389 - DomainSchedulerWeight = "weight" - // DomainSchedulerCap as defined in libvirt/libvirt-domain.h:397 - DomainSchedulerCap = "cap" - // DomainSchedulerReservation as defined in libvirt/libvirt-domain.h:405 - DomainSchedulerReservation = "reservation" - // DomainSchedulerLimit as defined in libvirt/libvirt-domain.h:413 - DomainSchedulerLimit = "limit" - // DomainSchedulerShares as defined in libvirt/libvirt-domain.h:421 - DomainSchedulerShares = "shares" - // DomainBlockStatsFieldLength as defined in libvirt/libvirt-domain.h:479 - DomainBlockStatsFieldLength = 80 - // DomainBlockStatsReadBytes as defined in libvirt/libvirt-domain.h:487 - DomainBlockStatsReadBytes = "rd_bytes" - // DomainBlockStatsReadReq as defined in libvirt/libvirt-domain.h:495 - DomainBlockStatsReadReq = "rd_operations" - // DomainBlockStatsReadTotalTimes as defined in libvirt/libvirt-domain.h:503 - DomainBlockStatsReadTotalTimes = "rd_total_times" - // DomainBlockStatsWriteBytes as defined in libvirt/libvirt-domain.h:511 - DomainBlockStatsWriteBytes = "wr_bytes" - // DomainBlockStatsWriteReq as defined in libvirt/libvirt-domain.h:519 - DomainBlockStatsWriteReq = "wr_operations" - // DomainBlockStatsWriteTotalTimes as defined in libvirt/libvirt-domain.h:527 - DomainBlockStatsWriteTotalTimes = "wr_total_times" - // DomainBlockStatsFlushReq as defined in libvirt/libvirt-domain.h:535 - DomainBlockStatsFlushReq = "flush_operations" - // DomainBlockStatsFlushTotalTimes as defined in libvirt/libvirt-domain.h:543 - DomainBlockStatsFlushTotalTimes = "flush_total_times" - // DomainBlockStatsErrs as defined in libvirt/libvirt-domain.h:550 - DomainBlockStatsErrs = "errs" - // MigrateParamURI as defined in libvirt/libvirt-domain.h:842 - MigrateParamURI = "migrate_uri" - // MigrateParamDestName as defined in libvirt/libvirt-domain.h:852 - MigrateParamDestName = "destination_name" - // MigrateParamDestXML as defined in libvirt/libvirt-domain.h:871 - MigrateParamDestXML = "destination_xml" - // MigrateParamPersistXML as defined in libvirt/libvirt-domain.h:886 - MigrateParamPersistXML = "persistent_xml" - // MigrateParamBandwidth as defined in libvirt/libvirt-domain.h:896 - MigrateParamBandwidth = "bandwidth" - // MigrateParamGraphicsURI as defined in libvirt/libvirt-domain.h:917 - MigrateParamGraphicsURI = "graphics_uri" - // MigrateParamListenAddress as defined in libvirt/libvirt-domain.h:928 - MigrateParamListenAddress = "listen_address" - // MigrateParamMigrateDisks as defined in libvirt/libvirt-domain.h:937 - MigrateParamMigrateDisks = "migrate_disks" - // MigrateParamDisksPort as defined in libvirt/libvirt-domain.h:947 - MigrateParamDisksPort = "disks_port" - // MigrateParamCompression as defined in libvirt/libvirt-domain.h:957 - MigrateParamCompression = "compression" - // MigrateParamCompressionMtLevel as defined in libvirt/libvirt-domain.h:966 - MigrateParamCompressionMtLevel = "compression.mt.level" - // MigrateParamCompressionMtThreads as defined in libvirt/libvirt-domain.h:974 - MigrateParamCompressionMtThreads = "compression.mt.threads" - // MigrateParamCompressionMtDthreads as defined in libvirt/libvirt-domain.h:982 - MigrateParamCompressionMtDthreads = "compression.mt.dthreads" - // MigrateParamCompressionXbzrleCache as defined in libvirt/libvirt-domain.h:990 - MigrateParamCompressionXbzrleCache = "compression.xbzrle.cache" - // MigrateParamAutoConvergeInitial as defined in libvirt/libvirt-domain.h:999 - MigrateParamAutoConvergeInitial = "auto_converge.initial" - // MigrateParamAutoConvergeIncrement as defined in libvirt/libvirt-domain.h:1009 - MigrateParamAutoConvergeIncrement = "auto_converge.increment" - // DomainCPUStatsCputime as defined in libvirt/libvirt-domain.h:1252 - DomainCPUStatsCputime = "cpu_time" - // DomainCPUStatsUsertime as defined in libvirt/libvirt-domain.h:1258 - DomainCPUStatsUsertime = "user_time" - // DomainCPUStatsSystemtime as defined in libvirt/libvirt-domain.h:1264 - DomainCPUStatsSystemtime = "system_time" - // DomainCPUStatsVcputime as defined in libvirt/libvirt-domain.h:1271 - DomainCPUStatsVcputime = "vcpu_time" - // DomainBlkioWeight as defined in libvirt/libvirt-domain.h:1300 - DomainBlkioWeight = "weight" - // DomainBlkioDeviceWeight as defined in libvirt/libvirt-domain.h:1310 - DomainBlkioDeviceWeight = "device_weight" - // DomainBlkioDeviceReadIops as defined in libvirt/libvirt-domain.h:1321 - DomainBlkioDeviceReadIops = "device_read_iops_sec" - // DomainBlkioDeviceWriteIops as defined in libvirt/libvirt-domain.h:1332 - DomainBlkioDeviceWriteIops = "device_write_iops_sec" - // DomainBlkioDeviceReadBps as defined in libvirt/libvirt-domain.h:1343 - DomainBlkioDeviceReadBps = "device_read_bytes_sec" - // DomainBlkioDeviceWriteBps as defined in libvirt/libvirt-domain.h:1354 - DomainBlkioDeviceWriteBps = "device_write_bytes_sec" - // DomainMemoryParamUnlimited as defined in libvirt/libvirt-domain.h:1373 - DomainMemoryParamUnlimited = 9007199254740991 - // DomainMemoryHardLimit as defined in libvirt/libvirt-domain.h:1382 - DomainMemoryHardLimit = "hard_limit" - // DomainMemorySoftLimit as defined in libvirt/libvirt-domain.h:1391 - DomainMemorySoftLimit = "soft_limit" - // DomainMemoryMinGuarantee as defined in libvirt/libvirt-domain.h:1400 - DomainMemoryMinGuarantee = "min_guarantee" - // DomainMemorySwapHardLimit as defined in libvirt/libvirt-domain.h:1410 - DomainMemorySwapHardLimit = "swap_hard_limit" - // DomainNumaNodeset as defined in libvirt/libvirt-domain.h:1455 - DomainNumaNodeset = "numa_nodeset" - // DomainNumaMode as defined in libvirt/libvirt-domain.h:1463 - DomainNumaMode = "numa_mode" - // DomainBandwidthInAverage as defined in libvirt/libvirt-domain.h:1575 - DomainBandwidthInAverage = "inbound.average" - // DomainBandwidthInPeak as defined in libvirt/libvirt-domain.h:1582 - DomainBandwidthInPeak = "inbound.peak" - // DomainBandwidthInBurst as defined in libvirt/libvirt-domain.h:1589 - DomainBandwidthInBurst = "inbound.burst" - // DomainBandwidthInFloor as defined in libvirt/libvirt-domain.h:1596 - DomainBandwidthInFloor = "inbound.floor" - // DomainBandwidthOutAverage as defined in libvirt/libvirt-domain.h:1603 - DomainBandwidthOutAverage = "outbound.average" - // DomainBandwidthOutPeak as defined in libvirt/libvirt-domain.h:1610 - DomainBandwidthOutPeak = "outbound.peak" - // DomainBandwidthOutBurst as defined in libvirt/libvirt-domain.h:1617 - DomainBandwidthOutBurst = "outbound.burst" - // PerfParamCmt as defined in libvirt/libvirt-domain.h:2073 - PerfParamCmt = "cmt" - // PerfParamMbmt as defined in libvirt/libvirt-domain.h:2084 - PerfParamMbmt = "mbmt" - // PerfParamMbml as defined in libvirt/libvirt-domain.h:2094 - PerfParamMbml = "mbml" - // PerfParamCacheMisses as defined in libvirt/libvirt-domain.h:2104 - PerfParamCacheMisses = "cache_misses" - // PerfParamCacheReferences as defined in libvirt/libvirt-domain.h:2114 - PerfParamCacheReferences = "cache_references" - // PerfParamInstructions as defined in libvirt/libvirt-domain.h:2124 - PerfParamInstructions = "instructions" - // PerfParamCPUCycles as defined in libvirt/libvirt-domain.h:2134 - PerfParamCPUCycles = "cpu_cycles" - // PerfParamBranchInstructions as defined in libvirt/libvirt-domain.h:2144 - PerfParamBranchInstructions = "branch_instructions" - // PerfParamBranchMisses as defined in libvirt/libvirt-domain.h:2154 - PerfParamBranchMisses = "branch_misses" - // PerfParamBusCycles as defined in libvirt/libvirt-domain.h:2164 - PerfParamBusCycles = "bus_cycles" - // PerfParamStalledCyclesFrontend as defined in libvirt/libvirt-domain.h:2175 - PerfParamStalledCyclesFrontend = "stalled_cycles_frontend" - // PerfParamStalledCyclesBackend as defined in libvirt/libvirt-domain.h:2186 - PerfParamStalledCyclesBackend = "stalled_cycles_backend" - // PerfParamRefCPUCycles as defined in libvirt/libvirt-domain.h:2197 - PerfParamRefCPUCycles = "ref_cpu_cycles" - // PerfParamCPUClock as defined in libvirt/libvirt-domain.h:2208 - PerfParamCPUClock = "cpu_clock" - // PerfParamTaskClock as defined in libvirt/libvirt-domain.h:2219 - PerfParamTaskClock = "task_clock" - // PerfParamPageFaults as defined in libvirt/libvirt-domain.h:2229 - PerfParamPageFaults = "page_faults" - // PerfParamContextSwitches as defined in libvirt/libvirt-domain.h:2239 - PerfParamContextSwitches = "context_switches" - // PerfParamCPUMigrations as defined in libvirt/libvirt-domain.h:2249 - PerfParamCPUMigrations = "cpu_migrations" - // PerfParamPageFaultsMin as defined in libvirt/libvirt-domain.h:2259 - PerfParamPageFaultsMin = "page_faults_min" - // PerfParamPageFaultsMaj as defined in libvirt/libvirt-domain.h:2269 - PerfParamPageFaultsMaj = "page_faults_maj" - // PerfParamAlignmentFaults as defined in libvirt/libvirt-domain.h:2279 - PerfParamAlignmentFaults = "alignment_faults" - // PerfParamEmulationFaults as defined in libvirt/libvirt-domain.h:2289 - PerfParamEmulationFaults = "emulation_faults" - // DomainBlockCopyBandwidth as defined in libvirt/libvirt-domain.h:2453 - DomainBlockCopyBandwidth = "bandwidth" - // DomainBlockCopyGranularity as defined in libvirt/libvirt-domain.h:2464 - DomainBlockCopyGranularity = "granularity" - // DomainBlockCopyBufSize as defined in libvirt/libvirt-domain.h:2473 - DomainBlockCopyBufSize = "buf-size" - // DomainBlockIotuneTotalBytesSec as defined in libvirt/libvirt-domain.h:2514 - DomainBlockIotuneTotalBytesSec = "total_bytes_sec" - // DomainBlockIotuneReadBytesSec as defined in libvirt/libvirt-domain.h:2522 - DomainBlockIotuneReadBytesSec = "read_bytes_sec" - // DomainBlockIotuneWriteBytesSec as defined in libvirt/libvirt-domain.h:2530 - DomainBlockIotuneWriteBytesSec = "write_bytes_sec" - // DomainBlockIotuneTotalIopsSec as defined in libvirt/libvirt-domain.h:2538 - DomainBlockIotuneTotalIopsSec = "total_iops_sec" - // DomainBlockIotuneReadIopsSec as defined in libvirt/libvirt-domain.h:2546 - DomainBlockIotuneReadIopsSec = "read_iops_sec" - // DomainBlockIotuneWriteIopsSec as defined in libvirt/libvirt-domain.h:2553 - DomainBlockIotuneWriteIopsSec = "write_iops_sec" - // DomainBlockIotuneTotalBytesSecMax as defined in libvirt/libvirt-domain.h:2561 - DomainBlockIotuneTotalBytesSecMax = "total_bytes_sec_max" - // DomainBlockIotuneReadBytesSecMax as defined in libvirt/libvirt-domain.h:2569 - DomainBlockIotuneReadBytesSecMax = "read_bytes_sec_max" - // DomainBlockIotuneWriteBytesSecMax as defined in libvirt/libvirt-domain.h:2577 - DomainBlockIotuneWriteBytesSecMax = "write_bytes_sec_max" - // DomainBlockIotuneTotalIopsSecMax as defined in libvirt/libvirt-domain.h:2585 - DomainBlockIotuneTotalIopsSecMax = "total_iops_sec_max" - // DomainBlockIotuneReadIopsSecMax as defined in libvirt/libvirt-domain.h:2593 - DomainBlockIotuneReadIopsSecMax = "read_iops_sec_max" - // DomainBlockIotuneWriteIopsSecMax as defined in libvirt/libvirt-domain.h:2600 - DomainBlockIotuneWriteIopsSecMax = "write_iops_sec_max" - // DomainBlockIotuneTotalBytesSecMaxLength as defined in libvirt/libvirt-domain.h:2608 - DomainBlockIotuneTotalBytesSecMaxLength = "total_bytes_sec_max_length" - // DomainBlockIotuneReadBytesSecMaxLength as defined in libvirt/libvirt-domain.h:2616 - DomainBlockIotuneReadBytesSecMaxLength = "read_bytes_sec_max_length" - // DomainBlockIotuneWriteBytesSecMaxLength as defined in libvirt/libvirt-domain.h:2624 - DomainBlockIotuneWriteBytesSecMaxLength = "write_bytes_sec_max_length" - // DomainBlockIotuneTotalIopsSecMaxLength as defined in libvirt/libvirt-domain.h:2632 - DomainBlockIotuneTotalIopsSecMaxLength = "total_iops_sec_max_length" - // DomainBlockIotuneReadIopsSecMaxLength as defined in libvirt/libvirt-domain.h:2640 - DomainBlockIotuneReadIopsSecMaxLength = "read_iops_sec_max_length" - // DomainBlockIotuneWriteIopsSecMaxLength as defined in libvirt/libvirt-domain.h:2648 - DomainBlockIotuneWriteIopsSecMaxLength = "write_iops_sec_max_length" - // DomainBlockIotuneSizeIopsSec as defined in libvirt/libvirt-domain.h:2655 - DomainBlockIotuneSizeIopsSec = "size_iops_sec" - // DomainBlockIotuneGroupName as defined in libvirt/libvirt-domain.h:2662 - DomainBlockIotuneGroupName = "group_name" - // DomainSendKeyMaxKeys as defined in libvirt/libvirt-domain.h:2743 - DomainSendKeyMaxKeys = 16 - // DomainJobOperationStr as defined in libvirt/libvirt-domain.h:3155 - DomainJobOperationStr = "operation" - // DomainJobTimeElapsed as defined in libvirt/libvirt-domain.h:3165 - DomainJobTimeElapsed = "time_elapsed" - // DomainJobTimeElapsedNet as defined in libvirt/libvirt-domain.h:3175 - DomainJobTimeElapsedNet = "time_elapsed_net" - // DomainJobTimeRemaining as defined in libvirt/libvirt-domain.h:3185 - DomainJobTimeRemaining = "time_remaining" - // DomainJobDowntime as defined in libvirt/libvirt-domain.h:3195 - DomainJobDowntime = "downtime" - // DomainJobDowntimeNet as defined in libvirt/libvirt-domain.h:3204 - DomainJobDowntimeNet = "downtime_net" - // DomainJobSetupTime as defined in libvirt/libvirt-domain.h:3213 - DomainJobSetupTime = "setup_time" - // DomainJobDataTotal as defined in libvirt/libvirt-domain.h:3228 - DomainJobDataTotal = "data_total" - // DomainJobDataProcessed as defined in libvirt/libvirt-domain.h:3238 - DomainJobDataProcessed = "data_processed" - // DomainJobDataRemaining as defined in libvirt/libvirt-domain.h:3248 - DomainJobDataRemaining = "data_remaining" - // DomainJobMemoryTotal as defined in libvirt/libvirt-domain.h:3258 - DomainJobMemoryTotal = "memory_total" - // DomainJobMemoryProcessed as defined in libvirt/libvirt-domain.h:3268 - DomainJobMemoryProcessed = "memory_processed" - // DomainJobMemoryRemaining as defined in libvirt/libvirt-domain.h:3278 - DomainJobMemoryRemaining = "memory_remaining" - // DomainJobMemoryConstant as defined in libvirt/libvirt-domain.h:3290 - DomainJobMemoryConstant = "memory_constant" - // DomainJobMemoryNormal as defined in libvirt/libvirt-domain.h:3300 - DomainJobMemoryNormal = "memory_normal" - // DomainJobMemoryNormalBytes as defined in libvirt/libvirt-domain.h:3310 - DomainJobMemoryNormalBytes = "memory_normal_bytes" - // DomainJobMemoryBps as defined in libvirt/libvirt-domain.h:3318 - DomainJobMemoryBps = "memory_bps" - // DomainJobMemoryDirtyRate as defined in libvirt/libvirt-domain.h:3326 - DomainJobMemoryDirtyRate = "memory_dirty_rate" - // DomainJobMemoryIteration as defined in libvirt/libvirt-domain.h:3337 - DomainJobMemoryIteration = "memory_iteration" - // DomainJobDiskTotal as defined in libvirt/libvirt-domain.h:3347 - DomainJobDiskTotal = "disk_total" - // DomainJobDiskProcessed as defined in libvirt/libvirt-domain.h:3357 - DomainJobDiskProcessed = "disk_processed" - // DomainJobDiskRemaining as defined in libvirt/libvirt-domain.h:3367 - DomainJobDiskRemaining = "disk_remaining" - // DomainJobDiskBps as defined in libvirt/libvirt-domain.h:3375 - DomainJobDiskBps = "disk_bps" - // DomainJobCompressionCache as defined in libvirt/libvirt-domain.h:3384 - DomainJobCompressionCache = "compression_cache" - // DomainJobCompressionBytes as defined in libvirt/libvirt-domain.h:3392 - DomainJobCompressionBytes = "compression_bytes" - // DomainJobCompressionPages as defined in libvirt/libvirt-domain.h:3400 - DomainJobCompressionPages = "compression_pages" - // DomainJobCompressionCacheMisses as defined in libvirt/libvirt-domain.h:3409 - DomainJobCompressionCacheMisses = "compression_cache_misses" - // DomainJobCompressionOverflow as defined in libvirt/libvirt-domain.h:3419 - DomainJobCompressionOverflow = "compression_overflow" - // DomainJobAutoConvergeThrottle as defined in libvirt/libvirt-domain.h:3428 - DomainJobAutoConvergeThrottle = "auto_converge_throttle" - // DomainTunableCPUVcpupin as defined in libvirt/libvirt-domain.h:3981 - DomainTunableCPUVcpupin = "cputune.vcpupin%u" - // DomainTunableCPUEmulatorpin as defined in libvirt/libvirt-domain.h:3989 - DomainTunableCPUEmulatorpin = "cputune.emulatorpin" - // DomainTunableCPUIothreadspin as defined in libvirt/libvirt-domain.h:3998 - DomainTunableCPUIothreadspin = "cputune.iothreadpin%u" - // DomainTunableCPUCpuShares as defined in libvirt/libvirt-domain.h:4006 - DomainTunableCPUCpuShares = "cputune.cpu_shares" - // DomainTunableCPUGlobalPeriod as defined in libvirt/libvirt-domain.h:4014 - DomainTunableCPUGlobalPeriod = "cputune.global_period" - // DomainTunableCPUGlobalQuota as defined in libvirt/libvirt-domain.h:4022 - DomainTunableCPUGlobalQuota = "cputune.global_quota" - // DomainTunableCPUVCPUPeriod as defined in libvirt/libvirt-domain.h:4030 - DomainTunableCPUVCPUPeriod = "cputune.vcpu_period" - // DomainTunableCPUVCPUQuota as defined in libvirt/libvirt-domain.h:4038 - DomainTunableCPUVCPUQuota = "cputune.vcpu_quota" - // DomainTunableCPUEmulatorPeriod as defined in libvirt/libvirt-domain.h:4047 - DomainTunableCPUEmulatorPeriod = "cputune.emulator_period" - // DomainTunableCPUEmulatorQuota as defined in libvirt/libvirt-domain.h:4056 - DomainTunableCPUEmulatorQuota = "cputune.emulator_quota" - // DomainTunableCPUIothreadPeriod as defined in libvirt/libvirt-domain.h:4064 - DomainTunableCPUIothreadPeriod = "cputune.iothread_period" - // DomainTunableCPUIothreadQuota as defined in libvirt/libvirt-domain.h:4072 - DomainTunableCPUIothreadQuota = "cputune.iothread_quota" - // DomainTunableBlkdevDisk as defined in libvirt/libvirt-domain.h:4080 - DomainTunableBlkdevDisk = "blkdeviotune.disk" - // DomainTunableBlkdevTotalBytesSec as defined in libvirt/libvirt-domain.h:4088 - DomainTunableBlkdevTotalBytesSec = "blkdeviotune.total_bytes_sec" - // DomainTunableBlkdevReadBytesSec as defined in libvirt/libvirt-domain.h:4096 - DomainTunableBlkdevReadBytesSec = "blkdeviotune.read_bytes_sec" - // DomainTunableBlkdevWriteBytesSec as defined in libvirt/libvirt-domain.h:4104 - DomainTunableBlkdevWriteBytesSec = "blkdeviotune.write_bytes_sec" - // DomainTunableBlkdevTotalIopsSec as defined in libvirt/libvirt-domain.h:4112 - DomainTunableBlkdevTotalIopsSec = "blkdeviotune.total_iops_sec" - // DomainTunableBlkdevReadIopsSec as defined in libvirt/libvirt-domain.h:4120 - DomainTunableBlkdevReadIopsSec = "blkdeviotune.read_iops_sec" - // DomainTunableBlkdevWriteIopsSec as defined in libvirt/libvirt-domain.h:4128 - DomainTunableBlkdevWriteIopsSec = "blkdeviotune.write_iops_sec" - // DomainTunableBlkdevTotalBytesSecMax as defined in libvirt/libvirt-domain.h:4136 - DomainTunableBlkdevTotalBytesSecMax = "blkdeviotune.total_bytes_sec_max" - // DomainTunableBlkdevReadBytesSecMax as defined in libvirt/libvirt-domain.h:4144 - DomainTunableBlkdevReadBytesSecMax = "blkdeviotune.read_bytes_sec_max" - // DomainTunableBlkdevWriteBytesSecMax as defined in libvirt/libvirt-domain.h:4152 - DomainTunableBlkdevWriteBytesSecMax = "blkdeviotune.write_bytes_sec_max" - // DomainTunableBlkdevTotalIopsSecMax as defined in libvirt/libvirt-domain.h:4160 - DomainTunableBlkdevTotalIopsSecMax = "blkdeviotune.total_iops_sec_max" - // DomainTunableBlkdevReadIopsSecMax as defined in libvirt/libvirt-domain.h:4168 - DomainTunableBlkdevReadIopsSecMax = "blkdeviotune.read_iops_sec_max" - // DomainTunableBlkdevWriteIopsSecMax as defined in libvirt/libvirt-domain.h:4176 - DomainTunableBlkdevWriteIopsSecMax = "blkdeviotune.write_iops_sec_max" - // DomainTunableBlkdevSizeIopsSec as defined in libvirt/libvirt-domain.h:4184 - DomainTunableBlkdevSizeIopsSec = "blkdeviotune.size_iops_sec" - // DomainTunableBlkdevGroupName as defined in libvirt/libvirt-domain.h:4192 - DomainTunableBlkdevGroupName = "blkdeviotune.group_name" - // DomainTunableBlkdevTotalBytesSecMaxLength as defined in libvirt/libvirt-domain.h:4201 - DomainTunableBlkdevTotalBytesSecMaxLength = "blkdeviotune.total_bytes_sec_max_length" - // DomainTunableBlkdevReadBytesSecMaxLength as defined in libvirt/libvirt-domain.h:4210 - DomainTunableBlkdevReadBytesSecMaxLength = "blkdeviotune.read_bytes_sec_max_length" - // DomainTunableBlkdevWriteBytesSecMaxLength as defined in libvirt/libvirt-domain.h:4219 - DomainTunableBlkdevWriteBytesSecMaxLength = "blkdeviotune.write_bytes_sec_max_length" - // DomainTunableBlkdevTotalIopsSecMaxLength as defined in libvirt/libvirt-domain.h:4228 - DomainTunableBlkdevTotalIopsSecMaxLength = "blkdeviotune.total_iops_sec_max_length" - // DomainTunableBlkdevReadIopsSecMaxLength as defined in libvirt/libvirt-domain.h:4237 - DomainTunableBlkdevReadIopsSecMaxLength = "blkdeviotune.read_iops_sec_max_length" - // DomainTunableBlkdevWriteIopsSecMaxLength as defined in libvirt/libvirt-domain.h:4246 - DomainTunableBlkdevWriteIopsSecMaxLength = "blkdeviotune.write_iops_sec_max_length" - // DomainSchedFieldLength as defined in libvirt/libvirt-domain.h:4534 - DomainSchedFieldLength = 80 - // DomainBlkioFieldLength as defined in libvirt/libvirt-domain.h:4578 - DomainBlkioFieldLength = 80 - // DomainMemoryFieldLength as defined in libvirt/libvirt-domain.h:4622 - DomainMemoryFieldLength = 80 -) - -// ConnectCloseReason as declared in libvirt/libvirt-common.h:120 -type ConnectCloseReason int32 - -// ConnectCloseReason enumeration from libvirt/libvirt-common.h:120 -const ( - ConnectCloseReasonError ConnectCloseReason = iota - ConnectCloseReasonEOF ConnectCloseReason = 1 - ConnectCloseReasonKeepalive ConnectCloseReason = 2 - ConnectCloseReasonClient ConnectCloseReason = 3 -) - -// TypedParameterType as declared in libvirt/libvirt-common.h:139 -type TypedParameterType int32 - -// TypedParameterType enumeration from libvirt/libvirt-common.h:139 -const ( - TypedParamInt TypedParameterType = 1 - TypedParamUint TypedParameterType = 2 - TypedParamLlong TypedParameterType = 3 - TypedParamUllong TypedParameterType = 4 - TypedParamDouble TypedParameterType = 5 - TypedParamBoolean TypedParameterType = 6 - TypedParamString TypedParameterType = 7 -) - -// TypedParameterFlags as declared in libvirt/libvirt-common.h:164 -type TypedParameterFlags int32 - -// TypedParameterFlags enumeration from libvirt/libvirt-common.h:164 -const ( - TypedParamStringOkay TypedParameterFlags = 4 -) - -// NodeSuspendTarget as declared in libvirt/libvirt-host.h:62 -type NodeSuspendTarget int32 - -// NodeSuspendTarget enumeration from libvirt/libvirt-host.h:62 -const ( - NodeSuspendTargetMem NodeSuspendTarget = iota - NodeSuspendTargetDisk NodeSuspendTarget = 1 - NodeSuspendTargetHybrid NodeSuspendTarget = 2 -) - -// NodeGetCPUStatsAllCPUs as declared in libvirt/libvirt-host.h:186 -type NodeGetCPUStatsAllCPUs int32 - -// NodeGetCPUStatsAllCPUs enumeration from libvirt/libvirt-host.h:186 -const ( - NodeCPUStatsAllCpus NodeGetCPUStatsAllCPUs = -1 -) - -// NodeGetMemoryStatsAllCells as declared in libvirt/libvirt-host.h:264 -type NodeGetMemoryStatsAllCells int32 - -// NodeGetMemoryStatsAllCells enumeration from libvirt/libvirt-host.h:264 -const ( - NodeMemoryStatsAllCells NodeGetMemoryStatsAllCells = -1 -) - -// ConnectFlags as declared in libvirt/libvirt-host.h:443 -type ConnectFlags int32 - -// ConnectFlags enumeration from libvirt/libvirt-host.h:443 -const ( - ConnectRo ConnectFlags = 1 - ConnectNoAliases ConnectFlags = 2 -) - -// ConnectCredentialType as declared in libvirt/libvirt-host.h:460 -type ConnectCredentialType int32 - -// ConnectCredentialType enumeration from libvirt/libvirt-host.h:460 -const ( - CredUsername ConnectCredentialType = 1 - CredAuthname ConnectCredentialType = 2 - CredLanguage ConnectCredentialType = 3 - CredCnonce ConnectCredentialType = 4 - CredPassphrase ConnectCredentialType = 5 - CredEchoprompt ConnectCredentialType = 6 - CredNoechoprompt ConnectCredentialType = 7 - CredRealm ConnectCredentialType = 8 - CredExternal ConnectCredentialType = 9 -) - -// CPUCompareResult as declared in libvirt/libvirt-host.h:633 -type CPUCompareResult int32 - -// CPUCompareResult enumeration from libvirt/libvirt-host.h:633 -const ( - CPUCompareError CPUCompareResult = -1 - CPUCompareIncompatible CPUCompareResult = 0 - CPUCompareIdentical CPUCompareResult = 1 - CPUCompareSuperset CPUCompareResult = 2 -) - -// ConnectCompareCPUFlags as declared in libvirt/libvirt-host.h:638 -type ConnectCompareCPUFlags int32 - -// ConnectCompareCPUFlags enumeration from libvirt/libvirt-host.h:638 -const ( - ConnectCompareCPUFailIncompatible ConnectCompareCPUFlags = 1 -) - -// ConnectBaselineCPUFlags as declared in libvirt/libvirt-host.h:657 -type ConnectBaselineCPUFlags int32 - -// ConnectBaselineCPUFlags enumeration from libvirt/libvirt-host.h:657 -const ( - ConnectBaselineCPUExpandFeatures ConnectBaselineCPUFlags = 1 - ConnectBaselineCPUMigratable ConnectBaselineCPUFlags = 2 -) - -// NodeAllocPagesFlags as declared in libvirt/libvirt-host.h:679 -type NodeAllocPagesFlags int32 - -// NodeAllocPagesFlags enumeration from libvirt/libvirt-host.h:679 -const ( - NodeAllocPagesAdd NodeAllocPagesFlags = iota - NodeAllocPagesSet NodeAllocPagesFlags = 1 -) - -// DomainState as declared in libvirt/libvirt-domain.h:71 -type DomainState int32 - -// DomainState enumeration from libvirt/libvirt-domain.h:71 -const ( - DomainNostate DomainState = iota - DomainRunning DomainState = 1 - DomainBlocked DomainState = 2 - DomainPaused DomainState = 3 - DomainShutdown DomainState = 4 - DomainShutoff DomainState = 5 - DomainCrashed DomainState = 6 - DomainPmsuspended DomainState = 7 -) - -// DomainNostateReason as declared in libvirt/libvirt-domain.h:79 -type DomainNostateReason int32 - -// DomainNostateReason enumeration from libvirt/libvirt-domain.h:79 -const ( - DomainNostateUnknown DomainNostateReason = iota -) - -// DomainRunningReason as declared in libvirt/libvirt-domain.h:98 -type DomainRunningReason int32 - -// DomainRunningReason enumeration from libvirt/libvirt-domain.h:98 -const ( - DomainRunningUnknown DomainRunningReason = iota - DomainRunningBooted DomainRunningReason = 1 - DomainRunningMigrated DomainRunningReason = 2 - DomainRunningRestored DomainRunningReason = 3 - DomainRunningFromSnapshot DomainRunningReason = 4 - DomainRunningUnpaused DomainRunningReason = 5 - DomainRunningMigrationCanceled DomainRunningReason = 6 - DomainRunningSaveCanceled DomainRunningReason = 7 - DomainRunningWakeup DomainRunningReason = 8 - DomainRunningCrashed DomainRunningReason = 9 - DomainRunningPostcopy DomainRunningReason = 10 -) - -// DomainBlockedReason as declared in libvirt/libvirt-domain.h:106 -type DomainBlockedReason int32 - -// DomainBlockedReason enumeration from libvirt/libvirt-domain.h:106 -const ( - DomainBlockedUnknown DomainBlockedReason = iota -) - -// DomainPausedReason as declared in libvirt/libvirt-domain.h:127 -type DomainPausedReason int32 - -// DomainPausedReason enumeration from libvirt/libvirt-domain.h:127 -const ( - DomainPausedUnknown DomainPausedReason = iota - DomainPausedUser DomainPausedReason = 1 - DomainPausedMigration DomainPausedReason = 2 - DomainPausedSave DomainPausedReason = 3 - DomainPausedDump DomainPausedReason = 4 - DomainPausedIoerror DomainPausedReason = 5 - DomainPausedWatchdog DomainPausedReason = 6 - DomainPausedFromSnapshot DomainPausedReason = 7 - DomainPausedShuttingDown DomainPausedReason = 8 - DomainPausedSnapshot DomainPausedReason = 9 - DomainPausedCrashed DomainPausedReason = 10 - DomainPausedStartingUp DomainPausedReason = 11 - DomainPausedPostcopy DomainPausedReason = 12 - DomainPausedPostcopyFailed DomainPausedReason = 13 -) - -// DomainShutdownReason as declared in libvirt/libvirt-domain.h:136 -type DomainShutdownReason int32 - -// DomainShutdownReason enumeration from libvirt/libvirt-domain.h:136 -const ( - DomainShutdownUnknown DomainShutdownReason = iota - DomainShutdownUser DomainShutdownReason = 1 -) - -// DomainShutoffReason as declared in libvirt/libvirt-domain.h:151 -type DomainShutoffReason int32 - -// DomainShutoffReason enumeration from libvirt/libvirt-domain.h:151 -const ( - DomainShutoffUnknown DomainShutoffReason = iota - DomainShutoffShutdown DomainShutoffReason = 1 - DomainShutoffDestroyed DomainShutoffReason = 2 - DomainShutoffCrashed DomainShutoffReason = 3 - DomainShutoffMigrated DomainShutoffReason = 4 - DomainShutoffSaved DomainShutoffReason = 5 - DomainShutoffFailed DomainShutoffReason = 6 - DomainShutoffFromSnapshot DomainShutoffReason = 7 -) - -// DomainCrashedReason as declared in libvirt/libvirt-domain.h:160 -type DomainCrashedReason int32 - -// DomainCrashedReason enumeration from libvirt/libvirt-domain.h:160 -const ( - DomainCrashedUnknown DomainCrashedReason = iota - DomainCrashedPanicked DomainCrashedReason = 1 -) - -// DomainPMSuspendedReason as declared in libvirt/libvirt-domain.h:168 -type DomainPMSuspendedReason int32 - -// DomainPMSuspendedReason enumeration from libvirt/libvirt-domain.h:168 -const ( - DomainPmsuspendedUnknown DomainPMSuspendedReason = iota -) - -// DomainPMSuspendedDiskReason as declared in libvirt/libvirt-domain.h:176 -type DomainPMSuspendedDiskReason int32 - -// DomainPMSuspendedDiskReason enumeration from libvirt/libvirt-domain.h:176 -const ( - DomainPmsuspendedDiskUnknown DomainPMSuspendedDiskReason = iota -) - -// DomainControlState as declared in libvirt/libvirt-domain.h:196 -type DomainControlState int32 - -// DomainControlState enumeration from libvirt/libvirt-domain.h:196 -const ( - DomainControlOk DomainControlState = iota - DomainControlJob DomainControlState = 1 - DomainControlOccupied DomainControlState = 2 - DomainControlError DomainControlState = 3 -) - -// DomainControlErrorReason as declared in libvirt/libvirt-domain.h:216 -type DomainControlErrorReason int32 - -// DomainControlErrorReason enumeration from libvirt/libvirt-domain.h:216 -const ( - DomainControlErrorReasonNone DomainControlErrorReason = iota - DomainControlErrorReasonUnknown DomainControlErrorReason = 1 - DomainControlErrorReasonMonitor DomainControlErrorReason = 2 - DomainControlErrorReasonInternal DomainControlErrorReason = 3 -) - -// DomainModificationImpact as declared in libvirt/libvirt-domain.h:264 -type DomainModificationImpact int32 - -// DomainModificationImpact enumeration from libvirt/libvirt-domain.h:264 -const ( - DomainAffectCurrent DomainModificationImpact = iota - DomainAffectLive DomainModificationImpact = 1 - DomainAffectConfig DomainModificationImpact = 2 -) - -// DomainCreateFlags as declared in libvirt/libvirt-domain.h:304 -type DomainCreateFlags int32 - -// DomainCreateFlags enumeration from libvirt/libvirt-domain.h:304 -const ( - DomainNone DomainCreateFlags = iota - DomainStartPaused DomainCreateFlags = 1 - DomainStartAutodestroy DomainCreateFlags = 2 - DomainStartBypassCache DomainCreateFlags = 4 - DomainStartForceBoot DomainCreateFlags = 8 - DomainStartValidate DomainCreateFlags = 16 -) - -// DomainMemoryStatTags as declared in libvirt/libvirt-domain.h:640 -type DomainMemoryStatTags int32 - -// DomainMemoryStatTags enumeration from libvirt/libvirt-domain.h:640 -const ( - DomainMemoryStatSwapIn DomainMemoryStatTags = iota - DomainMemoryStatSwapOut DomainMemoryStatTags = 1 - DomainMemoryStatMajorFault DomainMemoryStatTags = 2 - DomainMemoryStatMinorFault DomainMemoryStatTags = 3 - DomainMemoryStatUnused DomainMemoryStatTags = 4 - DomainMemoryStatAvailable DomainMemoryStatTags = 5 - DomainMemoryStatActualBalloon DomainMemoryStatTags = 6 - DomainMemoryStatRss DomainMemoryStatTags = 7 - DomainMemoryStatUsable DomainMemoryStatTags = 8 - DomainMemoryStatLastUpdate DomainMemoryStatTags = 9 - DomainMemoryStatNr DomainMemoryStatTags = 10 -) - -// DomainCoreDumpFlags as declared in libvirt/libvirt-domain.h:659 -type DomainCoreDumpFlags int32 - -// DomainCoreDumpFlags enumeration from libvirt/libvirt-domain.h:659 -const ( - DumpCrash DomainCoreDumpFlags = 1 - DumpLive DomainCoreDumpFlags = 2 - DumpBypassCache DomainCoreDumpFlags = 4 - DumpReset DomainCoreDumpFlags = 8 - DumpMemoryOnly DomainCoreDumpFlags = 16 -) - -// DomainCoreDumpFormat as declared in libvirt/libvirt-domain.h:682 -type DomainCoreDumpFormat int32 - -// DomainCoreDumpFormat enumeration from libvirt/libvirt-domain.h:682 -const ( - DomainCoreDumpFormatRaw DomainCoreDumpFormat = iota - DomainCoreDumpFormatKdumpZlib DomainCoreDumpFormat = 1 - DomainCoreDumpFormatKdumpLzo DomainCoreDumpFormat = 2 - DomainCoreDumpFormatKdumpSnappy DomainCoreDumpFormat = 3 -) - -// DomainMigrateFlags as declared in libvirt/libvirt-domain.h:826 -type DomainMigrateFlags int32 - -// DomainMigrateFlags enumeration from libvirt/libvirt-domain.h:826 -const ( - MigrateLive DomainMigrateFlags = 1 - MigratePeer2peer DomainMigrateFlags = 2 - MigrateTunnelled DomainMigrateFlags = 4 - MigratePersistDest DomainMigrateFlags = 8 - MigrateUndefineSource DomainMigrateFlags = 16 - MigratePaused DomainMigrateFlags = 32 - MigrateNonSharedDisk DomainMigrateFlags = 64 - MigrateNonSharedInc DomainMigrateFlags = 128 - MigrateChangeProtection DomainMigrateFlags = 256 - MigrateUnsafe DomainMigrateFlags = 512 - MigrateOffline DomainMigrateFlags = 1024 - MigrateCompressed DomainMigrateFlags = 2048 - MigrateAbortOnError DomainMigrateFlags = 4096 - MigrateAutoConverge DomainMigrateFlags = 8192 - MigrateRdmaPinAll DomainMigrateFlags = 16384 - MigratePostcopy DomainMigrateFlags = 32768 - MigrateTLS DomainMigrateFlags = 65536 -) - -// DomainShutdownFlagValues as declared in libvirt/libvirt-domain.h:1117 -type DomainShutdownFlagValues int32 - -// DomainShutdownFlagValues enumeration from libvirt/libvirt-domain.h:1117 -const ( - DomainShutdownDefault DomainShutdownFlagValues = iota - DomainShutdownAcpiPowerBtn DomainShutdownFlagValues = 1 - DomainShutdownGuestAgent DomainShutdownFlagValues = 2 - DomainShutdownInitctl DomainShutdownFlagValues = 4 - DomainShutdownSignal DomainShutdownFlagValues = 8 - DomainShutdownParavirt DomainShutdownFlagValues = 16 -) - -// DomainRebootFlagValues as declared in libvirt/libvirt-domain.h:1130 -type DomainRebootFlagValues int32 - -// DomainRebootFlagValues enumeration from libvirt/libvirt-domain.h:1130 -const ( - DomainRebootDefault DomainRebootFlagValues = iota - DomainRebootAcpiPowerBtn DomainRebootFlagValues = 1 - DomainRebootGuestAgent DomainRebootFlagValues = 2 - DomainRebootInitctl DomainRebootFlagValues = 4 - DomainRebootSignal DomainRebootFlagValues = 8 - DomainRebootParavirt DomainRebootFlagValues = 16 -) - -// DomainDestroyFlagsValues as declared in libvirt/libvirt-domain.h:1148 -type DomainDestroyFlagsValues int32 - -// DomainDestroyFlagsValues enumeration from libvirt/libvirt-domain.h:1148 -const ( - DomainDestroyDefault DomainDestroyFlagsValues = iota - DomainDestroyGraceful DomainDestroyFlagsValues = 1 -) - -// DomainSaveRestoreFlags as declared in libvirt/libvirt-domain.h:1180 -type DomainSaveRestoreFlags int32 - -// DomainSaveRestoreFlags enumeration from libvirt/libvirt-domain.h:1180 -const ( - DomainSaveBypassCache DomainSaveRestoreFlags = 1 - DomainSaveRunning DomainSaveRestoreFlags = 2 - DomainSavePaused DomainSaveRestoreFlags = 4 -) - -// DomainMemoryModFlags as declared in libvirt/libvirt-domain.h:1429 -type DomainMemoryModFlags int32 - -// DomainMemoryModFlags enumeration from libvirt/libvirt-domain.h:1429 -const ( - DomainMemCurrent DomainMemoryModFlags = iota - DomainMemLive DomainMemoryModFlags = 1 - DomainMemConfig DomainMemoryModFlags = 2 - DomainMemMaximum DomainMemoryModFlags = 4 -) - -// DomainNumatuneMemMode as declared in libvirt/libvirt-domain.h:1447 -type DomainNumatuneMemMode int32 - -// DomainNumatuneMemMode enumeration from libvirt/libvirt-domain.h:1447 -const ( - DomainNumatuneMemStrict DomainNumatuneMemMode = iota - DomainNumatuneMemPreferred DomainNumatuneMemMode = 1 - DomainNumatuneMemInterleave DomainNumatuneMemMode = 2 -) - -// DomainMetadataType as declared in libvirt/libvirt-domain.h:1509 -type DomainMetadataType int32 - -// DomainMetadataType enumeration from libvirt/libvirt-domain.h:1509 -const ( - DomainMetadataDescription DomainMetadataType = iota - DomainMetadataTitle DomainMetadataType = 1 - DomainMetadataElement DomainMetadataType = 2 -) - -// DomainXMLFlags as declared in libvirt/libvirt-domain.h:1539 -type DomainXMLFlags int32 - -// DomainXMLFlags enumeration from libvirt/libvirt-domain.h:1539 -const ( - DomainXMLSecure DomainXMLFlags = 1 - DomainXMLInactive DomainXMLFlags = 2 - DomainXMLUpdateCPU DomainXMLFlags = 4 - DomainXMLMigratable DomainXMLFlags = 8 -) - -// DomainBlockResizeFlags as declared in libvirt/libvirt-domain.h:1644 -type DomainBlockResizeFlags int32 - -// DomainBlockResizeFlags enumeration from libvirt/libvirt-domain.h:1644 -const ( - DomainBlockResizeBytes DomainBlockResizeFlags = 1 -) - -// DomainMemoryFlags as declared in libvirt/libvirt-domain.h:1707 -type DomainMemoryFlags int32 - -// DomainMemoryFlags enumeration from libvirt/libvirt-domain.h:1707 -const ( - MemoryVirtual DomainMemoryFlags = 1 - MemoryPhysical DomainMemoryFlags = 2 -) - -// DomainDefineFlags as declared in libvirt/libvirt-domain.h:1717 -type DomainDefineFlags int32 - -// DomainDefineFlags enumeration from libvirt/libvirt-domain.h:1717 -const ( - DomainDefineValidate DomainDefineFlags = 1 -) - -// DomainUndefineFlagsValues as declared in libvirt/libvirt-domain.h:1741 -type DomainUndefineFlagsValues int32 - -// DomainUndefineFlagsValues enumeration from libvirt/libvirt-domain.h:1741 -const ( - DomainUndefineManagedSave DomainUndefineFlagsValues = 1 - DomainUndefineSnapshotsMetadata DomainUndefineFlagsValues = 2 - DomainUndefineNvram DomainUndefineFlagsValues = 4 - DomainUndefineKeepNvram DomainUndefineFlagsValues = 8 -) - -// ConnectListAllDomainsFlags as declared in libvirt/libvirt-domain.h:1777 -type ConnectListAllDomainsFlags int32 - -// ConnectListAllDomainsFlags enumeration from libvirt/libvirt-domain.h:1777 -const ( - ConnectListDomainsActive ConnectListAllDomainsFlags = 1 - ConnectListDomainsInactive ConnectListAllDomainsFlags = 2 - ConnectListDomainsPersistent ConnectListAllDomainsFlags = 4 - ConnectListDomainsTransient ConnectListAllDomainsFlags = 8 - ConnectListDomainsRunning ConnectListAllDomainsFlags = 16 - ConnectListDomainsPaused ConnectListAllDomainsFlags = 32 - ConnectListDomainsShutoff ConnectListAllDomainsFlags = 64 - ConnectListDomainsOther ConnectListAllDomainsFlags = 128 - ConnectListDomainsManagedsave ConnectListAllDomainsFlags = 256 - ConnectListDomainsNoManagedsave ConnectListAllDomainsFlags = 512 - ConnectListDomainsAutostart ConnectListAllDomainsFlags = 1024 - ConnectListDomainsNoAutostart ConnectListAllDomainsFlags = 2048 - ConnectListDomainsHasSnapshot ConnectListAllDomainsFlags = 4096 - ConnectListDomainsNoSnapshot ConnectListAllDomainsFlags = 8192 -) - -// VCPUState as declared in libvirt/libvirt-domain.h:1808 -type VCPUState int32 - -// VCPUState enumeration from libvirt/libvirt-domain.h:1808 -const ( - VCPUOffline VCPUState = iota - VCPURunning VCPUState = 1 - VCPUBlocked VCPUState = 2 -) - -// DomainVCPUFlags as declared in libvirt/libvirt-domain.h:1830 -type DomainVCPUFlags int32 - -// DomainVCPUFlags enumeration from libvirt/libvirt-domain.h:1830 -const ( - DomainVCPUCurrent DomainVCPUFlags = iota - DomainVCPULive DomainVCPUFlags = 1 - DomainVCPUConfig DomainVCPUFlags = 2 - DomainVCPUMaximum DomainVCPUFlags = 4 - DomainVCPUGuest DomainVCPUFlags = 8 - DomainVCPUHotpluggable DomainVCPUFlags = 16 -) - -// DomainDeviceModifyFlags as declared in libvirt/libvirt-domain.h:2003 -type DomainDeviceModifyFlags int32 - -// DomainDeviceModifyFlags enumeration from libvirt/libvirt-domain.h:2003 -const ( - DomainDeviceModifyCurrent DomainDeviceModifyFlags = iota - DomainDeviceModifyLive DomainDeviceModifyFlags = 1 - DomainDeviceModifyConfig DomainDeviceModifyFlags = 2 - DomainDeviceModifyForce DomainDeviceModifyFlags = 4 -) - -// DomainStatsTypes as declared in libvirt/libvirt-domain.h:2031 -type DomainStatsTypes int32 - -// DomainStatsTypes enumeration from libvirt/libvirt-domain.h:2031 -const ( - DomainStatsState DomainStatsTypes = 1 - DomainStatsCPUTotal DomainStatsTypes = 2 - DomainStatsBalloon DomainStatsTypes = 4 - DomainStatsVCPU DomainStatsTypes = 8 - DomainStatsInterface DomainStatsTypes = 16 - DomainStatsBlock DomainStatsTypes = 32 - DomainStatsPerf DomainStatsTypes = 64 -) - -// ConnectGetAllDomainStatsFlags as declared in libvirt/libvirt-domain.h:2047 -type ConnectGetAllDomainStatsFlags int32 - -// ConnectGetAllDomainStatsFlags enumeration from libvirt/libvirt-domain.h:2047 -const ( - ConnectGetAllDomainsStatsActive ConnectGetAllDomainStatsFlags = 1 - ConnectGetAllDomainsStatsInactive ConnectGetAllDomainStatsFlags = 2 - ConnectGetAllDomainsStatsPersistent ConnectGetAllDomainStatsFlags = 4 - ConnectGetAllDomainsStatsTransient ConnectGetAllDomainStatsFlags = 8 - ConnectGetAllDomainsStatsRunning ConnectGetAllDomainStatsFlags = 16 - ConnectGetAllDomainsStatsPaused ConnectGetAllDomainStatsFlags = 32 - ConnectGetAllDomainsStatsShutoff ConnectGetAllDomainStatsFlags = 64 - ConnectGetAllDomainsStatsOther ConnectGetAllDomainStatsFlags = 128 - ConnectGetAllDomainsStatsBacking ConnectGetAllDomainStatsFlags = 1073741824 - ConnectGetAllDomainsStatsEnforceStats ConnectGetAllDomainStatsFlags = -2147483648 -) - -// DomainBlockJobType as declared in libvirt/libvirt-domain.h:2331 -type DomainBlockJobType int32 - -// DomainBlockJobType enumeration from libvirt/libvirt-domain.h:2331 -const ( - DomainBlockJobTypeUnknown DomainBlockJobType = iota - DomainBlockJobTypePull DomainBlockJobType = 1 - DomainBlockJobTypeCopy DomainBlockJobType = 2 - DomainBlockJobTypeCommit DomainBlockJobType = 3 - DomainBlockJobTypeActiveCommit DomainBlockJobType = 4 -) - -// DomainBlockJobAbortFlags as declared in libvirt/libvirt-domain.h:2343 -type DomainBlockJobAbortFlags int32 - -// DomainBlockJobAbortFlags enumeration from libvirt/libvirt-domain.h:2343 -const ( - DomainBlockJobAbortAsync DomainBlockJobAbortFlags = 1 - DomainBlockJobAbortPivot DomainBlockJobAbortFlags = 2 -) - -// DomainBlockJobInfoFlags as declared in libvirt/libvirt-domain.h:2352 -type DomainBlockJobInfoFlags int32 - -// DomainBlockJobInfoFlags enumeration from libvirt/libvirt-domain.h:2352 -const ( - DomainBlockJobInfoBandwidthBytes DomainBlockJobInfoFlags = 1 -) - -// DomainBlockJobSetSpeedFlags as declared in libvirt/libvirt-domain.h:2381 -type DomainBlockJobSetSpeedFlags int32 - -// DomainBlockJobSetSpeedFlags enumeration from libvirt/libvirt-domain.h:2381 -const ( - DomainBlockJobSpeedBandwidthBytes DomainBlockJobSetSpeedFlags = 1 -) - -// DomainBlockPullFlags as declared in libvirt/libvirt-domain.h:2391 -type DomainBlockPullFlags int32 - -// DomainBlockPullFlags enumeration from libvirt/libvirt-domain.h:2391 -const ( - DomainBlockPullBandwidthBytes DomainBlockPullFlags = 64 -) - -// DomainBlockRebaseFlags as declared in libvirt/libvirt-domain.h:2415 -type DomainBlockRebaseFlags int32 - -// DomainBlockRebaseFlags enumeration from libvirt/libvirt-domain.h:2415 -const ( - DomainBlockRebaseShallow DomainBlockRebaseFlags = 1 - DomainBlockRebaseReuseExt DomainBlockRebaseFlags = 2 - DomainBlockRebaseCopyRaw DomainBlockRebaseFlags = 4 - DomainBlockRebaseCopy DomainBlockRebaseFlags = 8 - DomainBlockRebaseRelative DomainBlockRebaseFlags = 16 - DomainBlockRebaseCopyDev DomainBlockRebaseFlags = 32 - DomainBlockRebaseBandwidthBytes DomainBlockRebaseFlags = 64 -) - -// DomainBlockCopyFlags as declared in libvirt/libvirt-domain.h:2434 -type DomainBlockCopyFlags int32 - -// DomainBlockCopyFlags enumeration from libvirt/libvirt-domain.h:2434 -const ( - DomainBlockCopyShallow DomainBlockCopyFlags = 1 - DomainBlockCopyReuseExt DomainBlockCopyFlags = 2 - DomainBlockCopyTransientJob DomainBlockCopyFlags = 4 -) - -// DomainBlockCommitFlags as declared in libvirt/libvirt-domain.h:2499 -type DomainBlockCommitFlags int32 - -// DomainBlockCommitFlags enumeration from libvirt/libvirt-domain.h:2499 -const ( - DomainBlockCommitShallow DomainBlockCommitFlags = 1 - DomainBlockCommitDelete DomainBlockCommitFlags = 2 - DomainBlockCommitActive DomainBlockCommitFlags = 4 - DomainBlockCommitRelative DomainBlockCommitFlags = 8 - DomainBlockCommitBandwidthBytes DomainBlockCommitFlags = 16 -) - -// DomainDiskErrorCode as declared in libvirt/libvirt-domain.h:2690 -type DomainDiskErrorCode int32 - -// DomainDiskErrorCode enumeration from libvirt/libvirt-domain.h:2690 -const ( - DomainDiskErrorNone DomainDiskErrorCode = iota - DomainDiskErrorUnspec DomainDiskErrorCode = 1 - DomainDiskErrorNoSpace DomainDiskErrorCode = 2 -) - -// KeycodeSet as declared in libvirt/libvirt-domain.h:2736 -type KeycodeSet int32 - -// KeycodeSet enumeration from libvirt/libvirt-domain.h:2736 -const ( - KeycodeSetLinux KeycodeSet = iota - KeycodeSetXt KeycodeSet = 1 - KeycodeSetAtset1 KeycodeSet = 2 - KeycodeSetAtset2 KeycodeSet = 3 - KeycodeSetAtset3 KeycodeSet = 4 - KeycodeSetOsx KeycodeSet = 5 - KeycodeSetXtKbd KeycodeSet = 6 - KeycodeSetUsb KeycodeSet = 7 - KeycodeSetWin32 KeycodeSet = 8 - KeycodeSetRfb KeycodeSet = 9 -) - -// DomainProcessSignal as declared in libvirt/libvirt-domain.h:2838 -type DomainProcessSignal int32 - -// DomainProcessSignal enumeration from libvirt/libvirt-domain.h:2838 -const ( - DomainProcessSignalNop DomainProcessSignal = iota - DomainProcessSignalHup DomainProcessSignal = 1 - DomainProcessSignalInt DomainProcessSignal = 2 - DomainProcessSignalQuit DomainProcessSignal = 3 - DomainProcessSignalIll DomainProcessSignal = 4 - DomainProcessSignalTrap DomainProcessSignal = 5 - DomainProcessSignalAbrt DomainProcessSignal = 6 - DomainProcessSignalBus DomainProcessSignal = 7 - DomainProcessSignalFpe DomainProcessSignal = 8 - DomainProcessSignalKill DomainProcessSignal = 9 - DomainProcessSignalUsr1 DomainProcessSignal = 10 - DomainProcessSignalSegv DomainProcessSignal = 11 - DomainProcessSignalUsr2 DomainProcessSignal = 12 - DomainProcessSignalPipe DomainProcessSignal = 13 - DomainProcessSignalAlrm DomainProcessSignal = 14 - DomainProcessSignalTerm DomainProcessSignal = 15 - DomainProcessSignalStkflt DomainProcessSignal = 16 - DomainProcessSignalChld DomainProcessSignal = 17 - DomainProcessSignalCont DomainProcessSignal = 18 - DomainProcessSignalStop DomainProcessSignal = 19 - DomainProcessSignalTstp DomainProcessSignal = 20 - DomainProcessSignalTtin DomainProcessSignal = 21 - DomainProcessSignalTtou DomainProcessSignal = 22 - DomainProcessSignalUrg DomainProcessSignal = 23 - DomainProcessSignalXcpu DomainProcessSignal = 24 - DomainProcessSignalXfsz DomainProcessSignal = 25 - DomainProcessSignalVtalrm DomainProcessSignal = 26 - DomainProcessSignalProf DomainProcessSignal = 27 - DomainProcessSignalWinch DomainProcessSignal = 28 - DomainProcessSignalPoll DomainProcessSignal = 29 - DomainProcessSignalPwr DomainProcessSignal = 30 - DomainProcessSignalSys DomainProcessSignal = 31 - DomainProcessSignalRt0 DomainProcessSignal = 32 - DomainProcessSignalRt1 DomainProcessSignal = 33 - DomainProcessSignalRt2 DomainProcessSignal = 34 - DomainProcessSignalRt3 DomainProcessSignal = 35 - DomainProcessSignalRt4 DomainProcessSignal = 36 - DomainProcessSignalRt5 DomainProcessSignal = 37 - DomainProcessSignalRt6 DomainProcessSignal = 38 - DomainProcessSignalRt7 DomainProcessSignal = 39 - DomainProcessSignalRt8 DomainProcessSignal = 40 - DomainProcessSignalRt9 DomainProcessSignal = 41 - DomainProcessSignalRt10 DomainProcessSignal = 42 - DomainProcessSignalRt11 DomainProcessSignal = 43 - DomainProcessSignalRt12 DomainProcessSignal = 44 - DomainProcessSignalRt13 DomainProcessSignal = 45 - DomainProcessSignalRt14 DomainProcessSignal = 46 - DomainProcessSignalRt15 DomainProcessSignal = 47 - DomainProcessSignalRt16 DomainProcessSignal = 48 - DomainProcessSignalRt17 DomainProcessSignal = 49 - DomainProcessSignalRt18 DomainProcessSignal = 50 - DomainProcessSignalRt19 DomainProcessSignal = 51 - DomainProcessSignalRt20 DomainProcessSignal = 52 - DomainProcessSignalRt21 DomainProcessSignal = 53 - DomainProcessSignalRt22 DomainProcessSignal = 54 - DomainProcessSignalRt23 DomainProcessSignal = 55 - DomainProcessSignalRt24 DomainProcessSignal = 56 - DomainProcessSignalRt25 DomainProcessSignal = 57 - DomainProcessSignalRt26 DomainProcessSignal = 58 - DomainProcessSignalRt27 DomainProcessSignal = 59 - DomainProcessSignalRt28 DomainProcessSignal = 60 - DomainProcessSignalRt29 DomainProcessSignal = 61 - DomainProcessSignalRt30 DomainProcessSignal = 62 - DomainProcessSignalRt31 DomainProcessSignal = 63 - DomainProcessSignalRt32 DomainProcessSignal = 64 -) - -// DomainEventType as declared in libvirt/libvirt-domain.h:2876 -type DomainEventType int32 - -// DomainEventType enumeration from libvirt/libvirt-domain.h:2876 -const ( - DomainEventDefined DomainEventType = iota - DomainEventUndefined DomainEventType = 1 - DomainEventStarted DomainEventType = 2 - DomainEventSuspended DomainEventType = 3 - DomainEventResumed DomainEventType = 4 - DomainEventStopped DomainEventType = 5 - DomainEventShutdown DomainEventType = 6 - DomainEventPmsuspended DomainEventType = 7 - DomainEventCrashed DomainEventType = 8 -) - -// DomainEventDefinedDetailType as declared in libvirt/libvirt-domain.h:2892 -type DomainEventDefinedDetailType int32 - -// DomainEventDefinedDetailType enumeration from libvirt/libvirt-domain.h:2892 -const ( - DomainEventDefinedAdded DomainEventDefinedDetailType = iota - DomainEventDefinedUpdated DomainEventDefinedDetailType = 1 - DomainEventDefinedRenamed DomainEventDefinedDetailType = 2 - DomainEventDefinedFromSnapshot DomainEventDefinedDetailType = 3 -) - -// DomainEventUndefinedDetailType as declared in libvirt/libvirt-domain.h:2906 -type DomainEventUndefinedDetailType int32 - -// DomainEventUndefinedDetailType enumeration from libvirt/libvirt-domain.h:2906 -const ( - DomainEventUndefinedRemoved DomainEventUndefinedDetailType = iota - DomainEventUndefinedRenamed DomainEventUndefinedDetailType = 1 -) - -// DomainEventStartedDetailType as declared in libvirt/libvirt-domain.h:2923 -type DomainEventStartedDetailType int32 - -// DomainEventStartedDetailType enumeration from libvirt/libvirt-domain.h:2923 -const ( - DomainEventStartedBooted DomainEventStartedDetailType = iota - DomainEventStartedMigrated DomainEventStartedDetailType = 1 - DomainEventStartedRestored DomainEventStartedDetailType = 2 - DomainEventStartedFromSnapshot DomainEventStartedDetailType = 3 - DomainEventStartedWakeup DomainEventStartedDetailType = 4 -) - -// DomainEventSuspendedDetailType as declared in libvirt/libvirt-domain.h:2944 -type DomainEventSuspendedDetailType int32 - -// DomainEventSuspendedDetailType enumeration from libvirt/libvirt-domain.h:2944 -const ( - DomainEventSuspendedPaused DomainEventSuspendedDetailType = iota - DomainEventSuspendedMigrated DomainEventSuspendedDetailType = 1 - DomainEventSuspendedIoerror DomainEventSuspendedDetailType = 2 - DomainEventSuspendedWatchdog DomainEventSuspendedDetailType = 3 - DomainEventSuspendedRestored DomainEventSuspendedDetailType = 4 - DomainEventSuspendedFromSnapshot DomainEventSuspendedDetailType = 5 - DomainEventSuspendedAPIError DomainEventSuspendedDetailType = 6 - DomainEventSuspendedPostcopy DomainEventSuspendedDetailType = 7 - DomainEventSuspendedPostcopyFailed DomainEventSuspendedDetailType = 8 -) - -// DomainEventResumedDetailType as declared in libvirt/libvirt-domain.h:2961 -type DomainEventResumedDetailType int32 - -// DomainEventResumedDetailType enumeration from libvirt/libvirt-domain.h:2961 -const ( - DomainEventResumedUnpaused DomainEventResumedDetailType = iota - DomainEventResumedMigrated DomainEventResumedDetailType = 1 - DomainEventResumedFromSnapshot DomainEventResumedDetailType = 2 - DomainEventResumedPostcopy DomainEventResumedDetailType = 3 -) - -// DomainEventStoppedDetailType as declared in libvirt/libvirt-domain.h:2980 -type DomainEventStoppedDetailType int32 - -// DomainEventStoppedDetailType enumeration from libvirt/libvirt-domain.h:2980 -const ( - DomainEventStoppedShutdown DomainEventStoppedDetailType = iota - DomainEventStoppedDestroyed DomainEventStoppedDetailType = 1 - DomainEventStoppedCrashed DomainEventStoppedDetailType = 2 - DomainEventStoppedMigrated DomainEventStoppedDetailType = 3 - DomainEventStoppedSaved DomainEventStoppedDetailType = 4 - DomainEventStoppedFailed DomainEventStoppedDetailType = 5 - DomainEventStoppedFromSnapshot DomainEventStoppedDetailType = 6 -) - -// DomainEventShutdownDetailType as declared in libvirt/libvirt-domain.h:3003 -type DomainEventShutdownDetailType int32 - -// DomainEventShutdownDetailType enumeration from libvirt/libvirt-domain.h:3003 -const ( - DomainEventShutdownFinished DomainEventShutdownDetailType = iota - DomainEventShutdownGuest DomainEventShutdownDetailType = 1 - DomainEventShutdownHost DomainEventShutdownDetailType = 2 -) - -// DomainEventPMSuspendedDetailType as declared in libvirt/libvirt-domain.h:3017 -type DomainEventPMSuspendedDetailType int32 - -// DomainEventPMSuspendedDetailType enumeration from libvirt/libvirt-domain.h:3017 -const ( - DomainEventPmsuspendedMemory DomainEventPMSuspendedDetailType = iota - DomainEventPmsuspendedDisk DomainEventPMSuspendedDetailType = 1 -) - -// DomainEventCrashedDetailType as declared in libvirt/libvirt-domain.h:3030 -type DomainEventCrashedDetailType int32 - -// DomainEventCrashedDetailType enumeration from libvirt/libvirt-domain.h:3030 -const ( - DomainEventCrashedPanicked DomainEventCrashedDetailType = iota -) - -// DomainJobType as declared in libvirt/libvirt-domain.h:3074 -type DomainJobType int32 - -// DomainJobType enumeration from libvirt/libvirt-domain.h:3074 -const ( - DomainJobNone DomainJobType = iota - DomainJobBounded DomainJobType = 1 - DomainJobUnbounded DomainJobType = 2 - DomainJobCompleted DomainJobType = 3 - DomainJobFailed DomainJobType = 4 - DomainJobCancelled DomainJobType = 5 -) - -// DomainGetJobStatsFlags as declared in libvirt/libvirt-domain.h:3121 -type DomainGetJobStatsFlags int32 - -// DomainGetJobStatsFlags enumeration from libvirt/libvirt-domain.h:3121 -const ( - DomainJobStatsCompleted DomainGetJobStatsFlags = 1 -) - -// DomainJobOperation as declared in libvirt/libvirt-domain.h:3146 -type DomainJobOperation int32 - -// DomainJobOperation enumeration from libvirt/libvirt-domain.h:3146 -const ( - DomainJobOperationStrUnknown DomainJobOperation = iota - DomainJobOperationStrStart DomainJobOperation = 1 - DomainJobOperationStrSave DomainJobOperation = 2 - DomainJobOperationStrRestore DomainJobOperation = 3 - DomainJobOperationStrMigrationIn DomainJobOperation = 4 - DomainJobOperationStrMigrationOut DomainJobOperation = 5 - DomainJobOperationStrSnapshot DomainJobOperation = 6 - DomainJobOperationStrSnapshotRevert DomainJobOperation = 7 - DomainJobOperationStrDump DomainJobOperation = 8 -) - -// DomainEventWatchdogAction as declared in libvirt/libvirt-domain.h:3479 -type DomainEventWatchdogAction int32 - -// DomainEventWatchdogAction enumeration from libvirt/libvirt-domain.h:3479 -const ( - DomainEventWatchdogNone DomainEventWatchdogAction = iota - DomainEventWatchdogPause DomainEventWatchdogAction = 1 - DomainEventWatchdogReset DomainEventWatchdogAction = 2 - DomainEventWatchdogPoweroff DomainEventWatchdogAction = 3 - DomainEventWatchdogShutdown DomainEventWatchdogAction = 4 - DomainEventWatchdogDebug DomainEventWatchdogAction = 5 - DomainEventWatchdogInjectnmi DomainEventWatchdogAction = 6 -) - -// DomainEventIOErrorAction as declared in libvirt/libvirt-domain.h:3510 -type DomainEventIOErrorAction int32 - -// DomainEventIOErrorAction enumeration from libvirt/libvirt-domain.h:3510 -const ( - DomainEventIoErrorNone DomainEventIOErrorAction = iota - DomainEventIoErrorPause DomainEventIOErrorAction = 1 - DomainEventIoErrorReport DomainEventIOErrorAction = 2 -) - -// DomainEventGraphicsPhase as declared in libvirt/libvirt-domain.h:3573 -type DomainEventGraphicsPhase int32 - -// DomainEventGraphicsPhase enumeration from libvirt/libvirt-domain.h:3573 -const ( - DomainEventGraphicsConnect DomainEventGraphicsPhase = iota - DomainEventGraphicsInitialize DomainEventGraphicsPhase = 1 - DomainEventGraphicsDisconnect DomainEventGraphicsPhase = 2 -) - -// DomainEventGraphicsAddressType as declared in libvirt/libvirt-domain.h:3588 -type DomainEventGraphicsAddressType int32 - -// DomainEventGraphicsAddressType enumeration from libvirt/libvirt-domain.h:3588 -const ( - DomainEventGraphicsAddressIpv4 DomainEventGraphicsAddressType = iota - DomainEventGraphicsAddressIpv6 DomainEventGraphicsAddressType = 1 - DomainEventGraphicsAddressUnix DomainEventGraphicsAddressType = 2 -) - -// ConnectDomainEventBlockJobStatus as declared in libvirt/libvirt-domain.h:3676 -type ConnectDomainEventBlockJobStatus int32 - -// ConnectDomainEventBlockJobStatus enumeration from libvirt/libvirt-domain.h:3676 -const ( - DomainBlockJobCompleted ConnectDomainEventBlockJobStatus = iota - DomainBlockJobFailed ConnectDomainEventBlockJobStatus = 1 - DomainBlockJobCanceled ConnectDomainEventBlockJobStatus = 2 - DomainBlockJobReady ConnectDomainEventBlockJobStatus = 3 -) - -// ConnectDomainEventDiskChangeReason as declared in libvirt/libvirt-domain.h:3725 -type ConnectDomainEventDiskChangeReason int32 - -// ConnectDomainEventDiskChangeReason enumeration from libvirt/libvirt-domain.h:3725 -const ( - DomainEventDiskChangeMissingOnStart ConnectDomainEventDiskChangeReason = iota - DomainEventDiskDropMissingOnStart ConnectDomainEventDiskChangeReason = 1 -) - -// DomainEventTrayChangeReason as declared in libvirt/libvirt-domain.h:3766 -type DomainEventTrayChangeReason int32 - -// DomainEventTrayChangeReason enumeration from libvirt/libvirt-domain.h:3766 -const ( - DomainEventTrayChangeOpen DomainEventTrayChangeReason = iota - DomainEventTrayChangeClose DomainEventTrayChangeReason = 1 -) - -// ConnectDomainEventAgentLifecycleState as declared in libvirt/libvirt-domain.h:4281 -type ConnectDomainEventAgentLifecycleState int32 - -// ConnectDomainEventAgentLifecycleState enumeration from libvirt/libvirt-domain.h:4281 -const ( - ConnectDomainEventAgentLifecycleStateConnected ConnectDomainEventAgentLifecycleState = 1 - ConnectDomainEventAgentLifecycleStateDisconnected ConnectDomainEventAgentLifecycleState = 2 -) - -// ConnectDomainEventAgentLifecycleReason as declared in libvirt/libvirt-domain.h:4291 -type ConnectDomainEventAgentLifecycleReason int32 - -// ConnectDomainEventAgentLifecycleReason enumeration from libvirt/libvirt-domain.h:4291 -const ( - ConnectDomainEventAgentLifecycleReasonUnknown ConnectDomainEventAgentLifecycleReason = iota - ConnectDomainEventAgentLifecycleReasonDomainStarted ConnectDomainEventAgentLifecycleReason = 1 - ConnectDomainEventAgentLifecycleReasonChannel ConnectDomainEventAgentLifecycleReason = 2 -) - -// DomainEventID as declared in libvirt/libvirt-domain.h:4395 -type DomainEventID int32 - -// DomainEventID enumeration from libvirt/libvirt-domain.h:4395 -const ( - DomainEventIDLifecycle DomainEventID = iota - DomainEventIDReboot DomainEventID = 1 - DomainEventIDRtcChange DomainEventID = 2 - DomainEventIDWatchdog DomainEventID = 3 - DomainEventIDIoError DomainEventID = 4 - DomainEventIDGraphics DomainEventID = 5 - DomainEventIDIoErrorReason DomainEventID = 6 - DomainEventIDControlError DomainEventID = 7 - DomainEventIDBlockJob DomainEventID = 8 - DomainEventIDDiskChange DomainEventID = 9 - DomainEventIDTrayChange DomainEventID = 10 - DomainEventIDPmwakeup DomainEventID = 11 - DomainEventIDPmsuspend DomainEventID = 12 - DomainEventIDBalloonChange DomainEventID = 13 - DomainEventIDPmsuspendDisk DomainEventID = 14 - DomainEventIDDeviceRemoved DomainEventID = 15 - DomainEventIDBlockJob2 DomainEventID = 16 - DomainEventIDTunable DomainEventID = 17 - DomainEventIDAgentLifecycle DomainEventID = 18 - DomainEventIDDeviceAdded DomainEventID = 19 - DomainEventIDMigrationIteration DomainEventID = 20 - DomainEventIDJobCompleted DomainEventID = 21 - DomainEventIDDeviceRemovalFailed DomainEventID = 22 - DomainEventIDMetadataChange DomainEventID = 23 - DomainEventIDBlockThreshold DomainEventID = 24 -) - -// DomainConsoleFlags as declared in libvirt/libvirt-domain.h:4422 -type DomainConsoleFlags int32 - -// DomainConsoleFlags enumeration from libvirt/libvirt-domain.h:4422 -const ( - DomainConsoleForce DomainConsoleFlags = 1 - DomainConsoleSafe DomainConsoleFlags = 2 -) - -// DomainChannelFlags as declared in libvirt/libvirt-domain.h:4438 -type DomainChannelFlags int32 - -// DomainChannelFlags enumeration from libvirt/libvirt-domain.h:4438 -const ( - DomainChannelForce DomainChannelFlags = 1 -) - -// DomainOpenGraphicsFlags as declared in libvirt/libvirt-domain.h:4447 -type DomainOpenGraphicsFlags int32 - -// DomainOpenGraphicsFlags enumeration from libvirt/libvirt-domain.h:4447 -const ( - DomainOpenGraphicsSkipauth DomainOpenGraphicsFlags = 1 -) - -// DomainSetTimeFlags as declared in libvirt/libvirt-domain.h:4504 -type DomainSetTimeFlags int32 - -// DomainSetTimeFlags enumeration from libvirt/libvirt-domain.h:4504 -const ( - DomainTimeSync DomainSetTimeFlags = 1 -) - -// SchedParameterType as declared in libvirt/libvirt-domain.h:4525 -type SchedParameterType int32 - -// SchedParameterType enumeration from libvirt/libvirt-domain.h:4525 -const ( - DomainSchedFieldInt SchedParameterType = 1 - DomainSchedFieldUint SchedParameterType = 2 - DomainSchedFieldLlong SchedParameterType = 3 - DomainSchedFieldUllong SchedParameterType = 4 - DomainSchedFieldDouble SchedParameterType = 5 - DomainSchedFieldBoolean SchedParameterType = 6 -) - -// BlkioParameterType as declared in libvirt/libvirt-domain.h:4569 -type BlkioParameterType int32 - -// BlkioParameterType enumeration from libvirt/libvirt-domain.h:4569 -const ( - DomainBlkioParamInt BlkioParameterType = 1 - DomainBlkioParamUint BlkioParameterType = 2 - DomainBlkioParamLlong BlkioParameterType = 3 - DomainBlkioParamUllong BlkioParameterType = 4 - DomainBlkioParamDouble BlkioParameterType = 5 - DomainBlkioParamBoolean BlkioParameterType = 6 -) - -// MemoryParameterType as declared in libvirt/libvirt-domain.h:4613 -type MemoryParameterType int32 - -// MemoryParameterType enumeration from libvirt/libvirt-domain.h:4613 -const ( - DomainMemoryParamInt MemoryParameterType = 1 - DomainMemoryParamUint MemoryParameterType = 2 - DomainMemoryParamLlong MemoryParameterType = 3 - DomainMemoryParamUllong MemoryParameterType = 4 - DomainMemoryParamDouble MemoryParameterType = 5 - DomainMemoryParamBoolean MemoryParameterType = 6 -) - -// DomainInterfaceAddressesSource as declared in libvirt/libvirt-domain.h:4650 -type DomainInterfaceAddressesSource int32 - -// DomainInterfaceAddressesSource enumeration from libvirt/libvirt-domain.h:4650 -const ( - DomainInterfaceAddressesSrcLease DomainInterfaceAddressesSource = iota - DomainInterfaceAddressesSrcAgent DomainInterfaceAddressesSource = 1 -) - -// DomainSetUserPasswordFlags as declared in libvirt/libvirt-domain.h:4678 -type DomainSetUserPasswordFlags int32 - -// DomainSetUserPasswordFlags enumeration from libvirt/libvirt-domain.h:4678 -const ( - DomainPasswordEncrypted DomainSetUserPasswordFlags = 1 -) - -// DomainSnapshotCreateFlags as declared in libvirt/libvirt-domain-snapshot.h:73 -type DomainSnapshotCreateFlags int32 - -// DomainSnapshotCreateFlags enumeration from libvirt/libvirt-domain-snapshot.h:73 -const ( - DomainSnapshotCreateRedefine DomainSnapshotCreateFlags = 1 - DomainSnapshotCreateCurrent DomainSnapshotCreateFlags = 2 - DomainSnapshotCreateNoMetadata DomainSnapshotCreateFlags = 4 - DomainSnapshotCreateHalt DomainSnapshotCreateFlags = 8 - DomainSnapshotCreateDiskOnly DomainSnapshotCreateFlags = 16 - DomainSnapshotCreateReuseExt DomainSnapshotCreateFlags = 32 - DomainSnapshotCreateQuiesce DomainSnapshotCreateFlags = 64 - DomainSnapshotCreateAtomic DomainSnapshotCreateFlags = 128 - DomainSnapshotCreateLive DomainSnapshotCreateFlags = 256 -) - -// DomainSnapshotListFlags as declared in libvirt/libvirt-domain-snapshot.h:133 -type DomainSnapshotListFlags int32 - -// DomainSnapshotListFlags enumeration from libvirt/libvirt-domain-snapshot.h:133 -const ( - DomainSnapshotListRoots DomainSnapshotListFlags = 1 - DomainSnapshotListDescendants DomainSnapshotListFlags = 1 - DomainSnapshotListLeaves DomainSnapshotListFlags = 4 - DomainSnapshotListNoLeaves DomainSnapshotListFlags = 8 - DomainSnapshotListMetadata DomainSnapshotListFlags = 2 - DomainSnapshotListNoMetadata DomainSnapshotListFlags = 16 - DomainSnapshotListInactive DomainSnapshotListFlags = 32 - DomainSnapshotListActive DomainSnapshotListFlags = 64 - DomainSnapshotListDiskOnly DomainSnapshotListFlags = 128 - DomainSnapshotListInternal DomainSnapshotListFlags = 256 - DomainSnapshotListExternal DomainSnapshotListFlags = 512 -) - -// DomainSnapshotRevertFlags as declared in libvirt/libvirt-domain-snapshot.h:190 -type DomainSnapshotRevertFlags int32 - -// DomainSnapshotRevertFlags enumeration from libvirt/libvirt-domain-snapshot.h:190 -const ( - DomainSnapshotRevertRunning DomainSnapshotRevertFlags = 1 - DomainSnapshotRevertPaused DomainSnapshotRevertFlags = 2 - DomainSnapshotRevertForce DomainSnapshotRevertFlags = 4 -) - -// DomainSnapshotDeleteFlags as declared in libvirt/libvirt-domain-snapshot.h:204 -type DomainSnapshotDeleteFlags int32 - -// DomainSnapshotDeleteFlags enumeration from libvirt/libvirt-domain-snapshot.h:204 -const ( - DomainSnapshotDeleteChildren DomainSnapshotDeleteFlags = 1 - DomainSnapshotDeleteMetadataOnly DomainSnapshotDeleteFlags = 2 - DomainSnapshotDeleteChildrenOnly DomainSnapshotDeleteFlags = 4 -) - -// EventHandleType as declared in libvirt/libvirt-event.h:44 -type EventHandleType int32 - -// EventHandleType enumeration from libvirt/libvirt-event.h:44 -const ( - EventHandleReadable EventHandleType = 1 - EventHandleWritable EventHandleType = 2 - EventHandleError EventHandleType = 4 - EventHandleHangup EventHandleType = 8 -) - -// ConnectListAllInterfacesFlags as declared in libvirt/libvirt-interface.h:65 -type ConnectListAllInterfacesFlags int32 - -// ConnectListAllInterfacesFlags enumeration from libvirt/libvirt-interface.h:65 -const ( - ConnectListInterfacesInactive ConnectListAllInterfacesFlags = 1 - ConnectListInterfacesActive ConnectListAllInterfacesFlags = 2 -) - -// InterfaceXMLFlags as declared in libvirt/libvirt-interface.h:81 -type InterfaceXMLFlags int32 - -// InterfaceXMLFlags enumeration from libvirt/libvirt-interface.h:81 -const ( - InterfaceXMLInactive InterfaceXMLFlags = 1 -) - -// NetworkXMLFlags as declared in libvirt/libvirt-network.h:33 -type NetworkXMLFlags int32 - -// NetworkXMLFlags enumeration from libvirt/libvirt-network.h:33 -const ( - NetworkXMLInactive NetworkXMLFlags = 1 -) - -// ConnectListAllNetworksFlags as declared in libvirt/libvirt-network.h:85 -type ConnectListAllNetworksFlags int32 - -// ConnectListAllNetworksFlags enumeration from libvirt/libvirt-network.h:85 -const ( - ConnectListNetworksInactive ConnectListAllNetworksFlags = 1 - ConnectListNetworksActive ConnectListAllNetworksFlags = 2 - ConnectListNetworksPersistent ConnectListAllNetworksFlags = 4 - ConnectListNetworksTransient ConnectListAllNetworksFlags = 8 - ConnectListNetworksAutostart ConnectListAllNetworksFlags = 16 - ConnectListNetworksNoAutostart ConnectListAllNetworksFlags = 32 -) - -// NetworkUpdateCommand as declared in libvirt/libvirt-network.h:134 -type NetworkUpdateCommand int32 - -// NetworkUpdateCommand enumeration from libvirt/libvirt-network.h:134 -const ( - NetworkUpdateCommandNone NetworkUpdateCommand = iota - NetworkUpdateCommandModify NetworkUpdateCommand = 1 - NetworkUpdateCommandDelete NetworkUpdateCommand = 2 - NetworkUpdateCommandAddLast NetworkUpdateCommand = 3 - NetworkUpdateCommandAddFirst NetworkUpdateCommand = 4 -) - -// NetworkUpdateSection as declared in libvirt/libvirt-network.h:160 -type NetworkUpdateSection int32 - -// NetworkUpdateSection enumeration from libvirt/libvirt-network.h:160 -const ( - NetworkSectionNone NetworkUpdateSection = iota - NetworkSectionBridge NetworkUpdateSection = 1 - NetworkSectionDomain NetworkUpdateSection = 2 - NetworkSectionIP NetworkUpdateSection = 3 - NetworkSectionIPDhcpHost NetworkUpdateSection = 4 - NetworkSectionIPDhcpRange NetworkUpdateSection = 5 - NetworkSectionForward NetworkUpdateSection = 6 - NetworkSectionForwardInterface NetworkUpdateSection = 7 - NetworkSectionForwardPf NetworkUpdateSection = 8 - NetworkSectionPortgroup NetworkUpdateSection = 9 - NetworkSectionDNSHost NetworkUpdateSection = 10 - NetworkSectionDNSTxt NetworkUpdateSection = 11 - NetworkSectionDNSSrv NetworkUpdateSection = 12 -) - -// NetworkUpdateFlags as declared in libvirt/libvirt-network.h:172 -type NetworkUpdateFlags int32 - -// NetworkUpdateFlags enumeration from libvirt/libvirt-network.h:172 -const ( - NetworkUpdateAffectCurrent NetworkUpdateFlags = iota - NetworkUpdateAffectLive NetworkUpdateFlags = 1 - NetworkUpdateAffectConfig NetworkUpdateFlags = 2 -) - -// NetworkEventLifecycleType as declared in libvirt/libvirt-network.h:230 -type NetworkEventLifecycleType int32 - -// NetworkEventLifecycleType enumeration from libvirt/libvirt-network.h:230 -const ( - NetworkEventDefined NetworkEventLifecycleType = iota - NetworkEventUndefined NetworkEventLifecycleType = 1 - NetworkEventStarted NetworkEventLifecycleType = 2 - NetworkEventStopped NetworkEventLifecycleType = 3 -) - -// NetworkEventID as declared in libvirt/libvirt-network.h:278 -type NetworkEventID int32 - -// NetworkEventID enumeration from libvirt/libvirt-network.h:278 -const ( - NetworkEventIDLifecycle NetworkEventID = iota -) - -// IPAddrType as declared in libvirt/libvirt-network.h:287 -type IPAddrType int32 - -// IPAddrType enumeration from libvirt/libvirt-network.h:287 -const ( - IPAddrTypeIpv4 IPAddrType = iota - IPAddrTypeIpv6 IPAddrType = 1 -) - -// ConnectListAllNodeDeviceFlags as declared in libvirt/libvirt-nodedev.h:85 -type ConnectListAllNodeDeviceFlags int32 - -// ConnectListAllNodeDeviceFlags enumeration from libvirt/libvirt-nodedev.h:85 -const ( - ConnectListNodeDevicesCapSystem ConnectListAllNodeDeviceFlags = 1 - ConnectListNodeDevicesCapPciDev ConnectListAllNodeDeviceFlags = 2 - ConnectListNodeDevicesCapUsbDev ConnectListAllNodeDeviceFlags = 4 - ConnectListNodeDevicesCapUsbInterface ConnectListAllNodeDeviceFlags = 8 - ConnectListNodeDevicesCapNet ConnectListAllNodeDeviceFlags = 16 - ConnectListNodeDevicesCapScsiHost ConnectListAllNodeDeviceFlags = 32 - ConnectListNodeDevicesCapScsiTarget ConnectListAllNodeDeviceFlags = 64 - ConnectListNodeDevicesCapScsi ConnectListAllNodeDeviceFlags = 128 - ConnectListNodeDevicesCapStorage ConnectListAllNodeDeviceFlags = 256 - ConnectListNodeDevicesCapFcHost ConnectListAllNodeDeviceFlags = 512 - ConnectListNodeDevicesCapVports ConnectListAllNodeDeviceFlags = 1024 - ConnectListNodeDevicesCapScsiGeneric ConnectListAllNodeDeviceFlags = 2048 - ConnectListNodeDevicesCapDrm ConnectListAllNodeDeviceFlags = 4096 - ConnectListNodeDevicesCapMdevTypes ConnectListAllNodeDeviceFlags = 8192 - ConnectListNodeDevicesCapMdev ConnectListAllNodeDeviceFlags = 16384 - ConnectListNodeDevicesCapCcwDev ConnectListAllNodeDeviceFlags = 32768 -) - -// NodeDeviceEventID as declared in libvirt/libvirt-nodedev.h:155 -type NodeDeviceEventID int32 - -// NodeDeviceEventID enumeration from libvirt/libvirt-nodedev.h:155 -const ( - NodeDeviceEventIDLifecycle NodeDeviceEventID = iota - NodeDeviceEventIDUpdate NodeDeviceEventID = 1 -) - -// NodeDeviceEventLifecycleType as declared in libvirt/libvirt-nodedev.h:197 -type NodeDeviceEventLifecycleType int32 - -// NodeDeviceEventLifecycleType enumeration from libvirt/libvirt-nodedev.h:197 -const ( - NodeDeviceEventCreated NodeDeviceEventLifecycleType = iota - NodeDeviceEventDeleted NodeDeviceEventLifecycleType = 1 -) - -// SecretUsageType as declared in libvirt/libvirt-secret.h:56 -type SecretUsageType int32 - -// SecretUsageType enumeration from libvirt/libvirt-secret.h:56 -const ( - SecretUsageTypeNone SecretUsageType = iota - SecretUsageTypeVolume SecretUsageType = 1 - SecretUsageTypeCeph SecretUsageType = 2 - SecretUsageTypeIscsi SecretUsageType = 3 - SecretUsageTypeTLS SecretUsageType = 4 -) - -// ConnectListAllSecretsFlags as declared in libvirt/libvirt-secret.h:79 -type ConnectListAllSecretsFlags int32 - -// ConnectListAllSecretsFlags enumeration from libvirt/libvirt-secret.h:79 -const ( - ConnectListSecretsEphemeral ConnectListAllSecretsFlags = 1 - ConnectListSecretsNoEphemeral ConnectListAllSecretsFlags = 2 - ConnectListSecretsPrivate ConnectListAllSecretsFlags = 4 - ConnectListSecretsNoPrivate ConnectListAllSecretsFlags = 8 -) - -// SecretEventID as declared in libvirt/libvirt-secret.h:140 -type SecretEventID int32 - -// SecretEventID enumeration from libvirt/libvirt-secret.h:140 -const ( - SecretEventIDLifecycle SecretEventID = iota - SecretEventIDValueChanged SecretEventID = 1 -) - -// SecretEventLifecycleType as declared in libvirt/libvirt-secret.h:182 -type SecretEventLifecycleType int32 - -// SecretEventLifecycleType enumeration from libvirt/libvirt-secret.h:182 -const ( - SecretEventDefined SecretEventLifecycleType = iota - SecretEventUndefined SecretEventLifecycleType = 1 -) - -// StoragePoolState as declared in libvirt/libvirt-storage.h:58 -type StoragePoolState int32 - -// StoragePoolState enumeration from libvirt/libvirt-storage.h:58 -const ( - StoragePoolInactive StoragePoolState = iota - StoragePoolBuilding StoragePoolState = 1 - StoragePoolRunning StoragePoolState = 2 - StoragePoolDegraded StoragePoolState = 3 - StoragePoolInaccessible StoragePoolState = 4 -) - -// StoragePoolBuildFlags as declared in libvirt/libvirt-storage.h:66 -type StoragePoolBuildFlags int32 - -// StoragePoolBuildFlags enumeration from libvirt/libvirt-storage.h:66 -const ( - StoragePoolBuildNew StoragePoolBuildFlags = iota - StoragePoolBuildRepair StoragePoolBuildFlags = 1 - StoragePoolBuildResize StoragePoolBuildFlags = 2 - StoragePoolBuildNoOverwrite StoragePoolBuildFlags = 4 - StoragePoolBuildOverwrite StoragePoolBuildFlags = 8 -) - -// StoragePoolDeleteFlags as declared in libvirt/libvirt-storage.h:71 -type StoragePoolDeleteFlags int32 - -// StoragePoolDeleteFlags enumeration from libvirt/libvirt-storage.h:71 -const ( - StoragePoolDeleteNormal StoragePoolDeleteFlags = iota - StoragePoolDeleteZeroed StoragePoolDeleteFlags = 1 -) - -// StoragePoolCreateFlags as declared in libvirt/libvirt-storage.h:88 -type StoragePoolCreateFlags int32 - -// StoragePoolCreateFlags enumeration from libvirt/libvirt-storage.h:88 -const ( - StoragePoolCreateNormal StoragePoolCreateFlags = iota - StoragePoolCreateWithBuild StoragePoolCreateFlags = 1 - StoragePoolCreateWithBuildOverwrite StoragePoolCreateFlags = 2 - StoragePoolCreateWithBuildNoOverwrite StoragePoolCreateFlags = 4 -) - -// StorageVolType as declared in libvirt/libvirt-storage.h:130 -type StorageVolType int32 - -// StorageVolType enumeration from libvirt/libvirt-storage.h:130 -const ( - StorageVolFile StorageVolType = iota - StorageVolBlock StorageVolType = 1 - StorageVolDir StorageVolType = 2 - StorageVolNetwork StorageVolType = 3 - StorageVolNetdir StorageVolType = 4 - StorageVolPloop StorageVolType = 5 -) - -// StorageVolDeleteFlags as declared in libvirt/libvirt-storage.h:136 -type StorageVolDeleteFlags int32 - -// StorageVolDeleteFlags enumeration from libvirt/libvirt-storage.h:136 -const ( - StorageVolDeleteNormal StorageVolDeleteFlags = iota - StorageVolDeleteZeroed StorageVolDeleteFlags = 1 - StorageVolDeleteWithSnapshots StorageVolDeleteFlags = 2 -) - -// StorageVolWipeAlgorithm as declared in libvirt/libvirt-storage.h:168 -type StorageVolWipeAlgorithm int32 - -// StorageVolWipeAlgorithm enumeration from libvirt/libvirt-storage.h:168 -const ( - StorageVolWipeAlgZero StorageVolWipeAlgorithm = iota - StorageVolWipeAlgNnsa StorageVolWipeAlgorithm = 1 - StorageVolWipeAlgDod StorageVolWipeAlgorithm = 2 - StorageVolWipeAlgBsi StorageVolWipeAlgorithm = 3 - StorageVolWipeAlgGutmann StorageVolWipeAlgorithm = 4 - StorageVolWipeAlgSchneier StorageVolWipeAlgorithm = 5 - StorageVolWipeAlgPfitzner7 StorageVolWipeAlgorithm = 6 - StorageVolWipeAlgPfitzner33 StorageVolWipeAlgorithm = 7 - StorageVolWipeAlgRandom StorageVolWipeAlgorithm = 8 - StorageVolWipeAlgTrim StorageVolWipeAlgorithm = 9 -) - -// StorageVolInfoFlags as declared in libvirt/libvirt-storage.h:176 -type StorageVolInfoFlags int32 - -// StorageVolInfoFlags enumeration from libvirt/libvirt-storage.h:176 -const ( - StorageVolUseAllocation StorageVolInfoFlags = iota - StorageVolGetPhysical StorageVolInfoFlags = 1 -) - -// StorageXMLFlags as declared in libvirt/libvirt-storage.h:190 -type StorageXMLFlags int32 - -// StorageXMLFlags enumeration from libvirt/libvirt-storage.h:190 -const ( - StorageXMLInactive StorageXMLFlags = 1 -) - -// ConnectListAllStoragePoolsFlags as declared in libvirt/libvirt-storage.h:244 -type ConnectListAllStoragePoolsFlags int32 - -// ConnectListAllStoragePoolsFlags enumeration from libvirt/libvirt-storage.h:244 -const ( - ConnectListStoragePoolsInactive ConnectListAllStoragePoolsFlags = 1 - ConnectListStoragePoolsActive ConnectListAllStoragePoolsFlags = 2 - ConnectListStoragePoolsPersistent ConnectListAllStoragePoolsFlags = 4 - ConnectListStoragePoolsTransient ConnectListAllStoragePoolsFlags = 8 - ConnectListStoragePoolsAutostart ConnectListAllStoragePoolsFlags = 16 - ConnectListStoragePoolsNoAutostart ConnectListAllStoragePoolsFlags = 32 - ConnectListStoragePoolsDir ConnectListAllStoragePoolsFlags = 64 - ConnectListStoragePoolsFs ConnectListAllStoragePoolsFlags = 128 - ConnectListStoragePoolsNetfs ConnectListAllStoragePoolsFlags = 256 - ConnectListStoragePoolsLogical ConnectListAllStoragePoolsFlags = 512 - ConnectListStoragePoolsDisk ConnectListAllStoragePoolsFlags = 1024 - ConnectListStoragePoolsIscsi ConnectListAllStoragePoolsFlags = 2048 - ConnectListStoragePoolsScsi ConnectListAllStoragePoolsFlags = 4096 - ConnectListStoragePoolsMpath ConnectListAllStoragePoolsFlags = 8192 - ConnectListStoragePoolsRbd ConnectListAllStoragePoolsFlags = 16384 - ConnectListStoragePoolsSheepdog ConnectListAllStoragePoolsFlags = 32768 - ConnectListStoragePoolsGluster ConnectListAllStoragePoolsFlags = 65536 - ConnectListStoragePoolsZfs ConnectListAllStoragePoolsFlags = 131072 - ConnectListStoragePoolsVstorage ConnectListAllStoragePoolsFlags = 262144 -) - -// StorageVolCreateFlags as declared in libvirt/libvirt-storage.h:340 -type StorageVolCreateFlags int32 - -// StorageVolCreateFlags enumeration from libvirt/libvirt-storage.h:340 -const ( - StorageVolCreatePreallocMetadata StorageVolCreateFlags = 1 - StorageVolCreateReflink StorageVolCreateFlags = 2 -) - -// StorageVolDownloadFlags as declared in libvirt/libvirt-storage.h:352 -type StorageVolDownloadFlags int32 - -// StorageVolDownloadFlags enumeration from libvirt/libvirt-storage.h:352 -const ( - StorageVolDownloadSparseStream StorageVolDownloadFlags = 1 -) - -// StorageVolUploadFlags as declared in libvirt/libvirt-storage.h:361 -type StorageVolUploadFlags int32 - -// StorageVolUploadFlags enumeration from libvirt/libvirt-storage.h:361 -const ( - StorageVolUploadSparseStream StorageVolUploadFlags = 1 -) - -// StorageVolResizeFlags as declared in libvirt/libvirt-storage.h:392 -type StorageVolResizeFlags int32 - -// StorageVolResizeFlags enumeration from libvirt/libvirt-storage.h:392 -const ( - StorageVolResizeAllocate StorageVolResizeFlags = 1 - StorageVolResizeDelta StorageVolResizeFlags = 2 - StorageVolResizeShrink StorageVolResizeFlags = 4 -) - -// StoragePoolEventID as declared in libvirt/libvirt-storage.h:428 -type StoragePoolEventID int32 - -// StoragePoolEventID enumeration from libvirt/libvirt-storage.h:428 -const ( - StoragePoolEventIDLifecycle StoragePoolEventID = iota - StoragePoolEventIDRefresh StoragePoolEventID = 1 -) - -// StoragePoolEventLifecycleType as declared in libvirt/libvirt-storage.h:472 -type StoragePoolEventLifecycleType int32 - -// StoragePoolEventLifecycleType enumeration from libvirt/libvirt-storage.h:472 -const ( - StoragePoolEventDefined StoragePoolEventLifecycleType = iota - StoragePoolEventUndefined StoragePoolEventLifecycleType = 1 - StoragePoolEventStarted StoragePoolEventLifecycleType = 2 - StoragePoolEventStopped StoragePoolEventLifecycleType = 3 -) - -// StreamFlags as declared in libvirt/libvirt-stream.h:34 -type StreamFlags int32 - -// StreamFlags enumeration from libvirt/libvirt-stream.h:34 -const ( - StreamNonblock StreamFlags = 1 -) - -// StreamRecvFlagsValues as declared in libvirt/libvirt-stream.h:50 -type StreamRecvFlagsValues int32 - -// StreamRecvFlagsValues enumeration from libvirt/libvirt-stream.h:50 -const ( - StreamRecvStopAtHole StreamRecvFlagsValues = 1 -) - -// StreamEventType as declared in libvirt/libvirt-stream.h:223 -type StreamEventType int32 - -// StreamEventType enumeration from libvirt/libvirt-stream.h:223 -const ( - StreamEventReadable StreamEventType = 1 - StreamEventWritable StreamEventType = 2 - StreamEventError StreamEventType = 4 - StreamEventHangup StreamEventType = 8 -) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/doc.go deleted file mode 100644 index 1229f30c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/doc.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2016 The go-libvirt 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 libvirt provides a pure Go interface for Libvirt. - - Rather than using Libvirt's C bindings, this package makes use of - Libvirt's RPC interface, as documented here: https://libvirt.org/internals/rpc.html. - Connections to the libvirt server may be local, or remote. RPC packets are encoded - using the XDR standard as defined by RFC 4506. - - This should be considered a work in progress. Most functionaly provided by the C - bindings have not yet made their way into this library. Pull requests are welcome! - The definition of the RPC protocol is in the libvirt source tree under src/rpc/virnetprotocol.x. - - Example usage: - - package main - - import ( - "fmt" - "log" - "net" - "time" - - "github.com/digitalocean/go-libvirt" - ) - - func main() { - //c, err := net.DialTimeout("tcp", "127.0.0.1:16509", 2*time.Second) - //c, err := net.DialTimeout("tcp", "192.168.1.12:16509", 2*time.Second) - c, err := net.DialTimeout("unix", "/var/run/libvirt/libvirt-sock", 2*time.Second) - if err != nil { - log.Fatalf("failed to dial libvirt: %v", err) - } - - l := libvirt.New(c) - if err := l.Connect(); err != nil { - log.Fatalf("failed to connect: %v", err) - } - - v, err := l.Version() - if err != nil { - log.Fatalf("failed to retrieve libvirt version: %v", err) - } - fmt.Println("Version:", v) - - domains, err := l.Domains() - if err != nil { - log.Fatalf("failed to retrieve domains: %v", err) - } - - fmt.Println("ID\tName\t\tUUID") - fmt.Printf("--------------------------------------------------------\n") - for _, d := range domains { - fmt.Printf("%d\t%s\t%x\n", d.ID, d.Name, d.UUID) - } - - if err := l.Disconnect(); err != nil { - log.Fatal("failed to disconnect: %v", err) - } - } -*/ - -package libvirt diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/internal/constants/constants.gen.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/internal/constants/constants.gen.go deleted file mode 100644 index afbab13c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/internal/constants/constants.gen.go +++ /dev/null @@ -1,937 +0,0 @@ -// Copyright 2017 The go-libvirt 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. - -// -// Code generated by internal/lvgen/generate.go. DO NOT EDIT. -// -// To regenerate, run 'go generate' in internal/lvgen. -// - -// Package constants contains libvirt procedure identifiers and other enums and -// constants. -package constants - -// These are libvirt procedure numbers which correspond to each respective -// API call between remote_internal driver and libvirtd. Each procedure is -// identified by a unique number which *may change in any future libvirt -// update*. -// -// Examples: -// REMOTE_PROC_CONNECT_OPEN = 1 -// REMOTE_PROC_DOMAIN_DEFINE_XML = 11 -// REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED = 207, -const ( - // From enums: - // AuthNone is libvirt's REMOTE_AUTH_NONE - AuthNone = 0 - // AuthSasl is libvirt's REMOTE_AUTH_SASL - AuthSasl = 1 - // AuthPolkit is libvirt's REMOTE_AUTH_POLKIT - AuthPolkit = 2 - // ProcConnectOpen is libvirt's REMOTE_PROC_CONNECT_OPEN - ProcConnectOpen = 1 - // ProcConnectClose is libvirt's REMOTE_PROC_CONNECT_CLOSE - ProcConnectClose = 2 - // ProcConnectGetType is libvirt's REMOTE_PROC_CONNECT_GET_TYPE - ProcConnectGetType = 3 - // ProcConnectGetVersion is libvirt's REMOTE_PROC_CONNECT_GET_VERSION - ProcConnectGetVersion = 4 - // ProcConnectGetMaxVcpus is libvirt's REMOTE_PROC_CONNECT_GET_MAX_VCPUS - ProcConnectGetMaxVcpus = 5 - // ProcNodeGetInfo is libvirt's REMOTE_PROC_NODE_GET_INFO - ProcNodeGetInfo = 6 - // ProcConnectGetCapabilities is libvirt's REMOTE_PROC_CONNECT_GET_CAPABILITIES - ProcConnectGetCapabilities = 7 - // ProcDomainAttachDevice is libvirt's REMOTE_PROC_DOMAIN_ATTACH_DEVICE - ProcDomainAttachDevice = 8 - // ProcDomainCreate is libvirt's REMOTE_PROC_DOMAIN_CREATE - ProcDomainCreate = 9 - // ProcDomainCreateXML is libvirt's REMOTE_PROC_DOMAIN_CREATE_XML - ProcDomainCreateXML = 10 - // ProcDomainDefineXML is libvirt's REMOTE_PROC_DOMAIN_DEFINE_XML - ProcDomainDefineXML = 11 - // ProcDomainDestroy is libvirt's REMOTE_PROC_DOMAIN_DESTROY - ProcDomainDestroy = 12 - // ProcDomainDetachDevice is libvirt's REMOTE_PROC_DOMAIN_DETACH_DEVICE - ProcDomainDetachDevice = 13 - // ProcDomainGetXMLDesc is libvirt's REMOTE_PROC_DOMAIN_GET_XML_DESC - ProcDomainGetXMLDesc = 14 - // ProcDomainGetAutostart is libvirt's REMOTE_PROC_DOMAIN_GET_AUTOSTART - ProcDomainGetAutostart = 15 - // ProcDomainGetInfo is libvirt's REMOTE_PROC_DOMAIN_GET_INFO - ProcDomainGetInfo = 16 - // ProcDomainGetMaxMemory is libvirt's REMOTE_PROC_DOMAIN_GET_MAX_MEMORY - ProcDomainGetMaxMemory = 17 - // ProcDomainGetMaxVcpus is libvirt's REMOTE_PROC_DOMAIN_GET_MAX_VCPUS - ProcDomainGetMaxVcpus = 18 - // ProcDomainGetOsType is libvirt's REMOTE_PROC_DOMAIN_GET_OS_TYPE - ProcDomainGetOsType = 19 - // ProcDomainGetVcpus is libvirt's REMOTE_PROC_DOMAIN_GET_VCPUS - ProcDomainGetVcpus = 20 - // ProcConnectListDefinedDomains is libvirt's REMOTE_PROC_CONNECT_LIST_DEFINED_DOMAINS - ProcConnectListDefinedDomains = 21 - // ProcDomainLookupByID is libvirt's REMOTE_PROC_DOMAIN_LOOKUP_BY_ID - ProcDomainLookupByID = 22 - // ProcDomainLookupByName is libvirt's REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME - ProcDomainLookupByName = 23 - // ProcDomainLookupByUUID is libvirt's REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID - ProcDomainLookupByUUID = 24 - // ProcConnectNumOfDefinedDomains is libvirt's REMOTE_PROC_CONNECT_NUM_OF_DEFINED_DOMAINS - ProcConnectNumOfDefinedDomains = 25 - // ProcDomainPinVcpu is libvirt's REMOTE_PROC_DOMAIN_PIN_VCPU - ProcDomainPinVcpu = 26 - // ProcDomainReboot is libvirt's REMOTE_PROC_DOMAIN_REBOOT - ProcDomainReboot = 27 - // ProcDomainResume is libvirt's REMOTE_PROC_DOMAIN_RESUME - ProcDomainResume = 28 - // ProcDomainSetAutostart is libvirt's REMOTE_PROC_DOMAIN_SET_AUTOSTART - ProcDomainSetAutostart = 29 - // ProcDomainSetMaxMemory is libvirt's REMOTE_PROC_DOMAIN_SET_MAX_MEMORY - ProcDomainSetMaxMemory = 30 - // ProcDomainSetMemory is libvirt's REMOTE_PROC_DOMAIN_SET_MEMORY - ProcDomainSetMemory = 31 - // ProcDomainSetVcpus is libvirt's REMOTE_PROC_DOMAIN_SET_VCPUS - ProcDomainSetVcpus = 32 - // ProcDomainShutdown is libvirt's REMOTE_PROC_DOMAIN_SHUTDOWN - ProcDomainShutdown = 33 - // ProcDomainSuspend is libvirt's REMOTE_PROC_DOMAIN_SUSPEND - ProcDomainSuspend = 34 - // ProcDomainUndefine is libvirt's REMOTE_PROC_DOMAIN_UNDEFINE - ProcDomainUndefine = 35 - // ProcConnectListDefinedNetworks is libvirt's REMOTE_PROC_CONNECT_LIST_DEFINED_NETWORKS - ProcConnectListDefinedNetworks = 36 - // ProcConnectListDomains is libvirt's REMOTE_PROC_CONNECT_LIST_DOMAINS - ProcConnectListDomains = 37 - // ProcConnectListNetworks is libvirt's REMOTE_PROC_CONNECT_LIST_NETWORKS - ProcConnectListNetworks = 38 - // ProcNetworkCreate is libvirt's REMOTE_PROC_NETWORK_CREATE - ProcNetworkCreate = 39 - // ProcNetworkCreateXML is libvirt's REMOTE_PROC_NETWORK_CREATE_XML - ProcNetworkCreateXML = 40 - // ProcNetworkDefineXML is libvirt's REMOTE_PROC_NETWORK_DEFINE_XML - ProcNetworkDefineXML = 41 - // ProcNetworkDestroy is libvirt's REMOTE_PROC_NETWORK_DESTROY - ProcNetworkDestroy = 42 - // ProcNetworkGetXMLDesc is libvirt's REMOTE_PROC_NETWORK_GET_XML_DESC - ProcNetworkGetXMLDesc = 43 - // ProcNetworkGetAutostart is libvirt's REMOTE_PROC_NETWORK_GET_AUTOSTART - ProcNetworkGetAutostart = 44 - // ProcNetworkGetBridgeName is libvirt's REMOTE_PROC_NETWORK_GET_BRIDGE_NAME - ProcNetworkGetBridgeName = 45 - // ProcNetworkLookupByName is libvirt's REMOTE_PROC_NETWORK_LOOKUP_BY_NAME - ProcNetworkLookupByName = 46 - // ProcNetworkLookupByUUID is libvirt's REMOTE_PROC_NETWORK_LOOKUP_BY_UUID - ProcNetworkLookupByUUID = 47 - // ProcNetworkSetAutostart is libvirt's REMOTE_PROC_NETWORK_SET_AUTOSTART - ProcNetworkSetAutostart = 48 - // ProcNetworkUndefine is libvirt's REMOTE_PROC_NETWORK_UNDEFINE - ProcNetworkUndefine = 49 - // ProcConnectNumOfDefinedNetworks is libvirt's REMOTE_PROC_CONNECT_NUM_OF_DEFINED_NETWORKS - ProcConnectNumOfDefinedNetworks = 50 - // ProcConnectNumOfDomains is libvirt's REMOTE_PROC_CONNECT_NUM_OF_DOMAINS - ProcConnectNumOfDomains = 51 - // ProcConnectNumOfNetworks is libvirt's REMOTE_PROC_CONNECT_NUM_OF_NETWORKS - ProcConnectNumOfNetworks = 52 - // ProcDomainCoreDump is libvirt's REMOTE_PROC_DOMAIN_CORE_DUMP - ProcDomainCoreDump = 53 - // ProcDomainRestore is libvirt's REMOTE_PROC_DOMAIN_RESTORE - ProcDomainRestore = 54 - // ProcDomainSave is libvirt's REMOTE_PROC_DOMAIN_SAVE - ProcDomainSave = 55 - // ProcDomainGetSchedulerType is libvirt's REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE - ProcDomainGetSchedulerType = 56 - // ProcDomainGetSchedulerParameters is libvirt's REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS - ProcDomainGetSchedulerParameters = 57 - // ProcDomainSetSchedulerParameters is libvirt's REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS - ProcDomainSetSchedulerParameters = 58 - // ProcConnectGetHostname is libvirt's REMOTE_PROC_CONNECT_GET_HOSTNAME - ProcConnectGetHostname = 59 - // ProcConnectSupportsFeature is libvirt's REMOTE_PROC_CONNECT_SUPPORTS_FEATURE - ProcConnectSupportsFeature = 60 - // ProcDomainMigratePrepare is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PREPARE - ProcDomainMigratePrepare = 61 - // ProcDomainMigratePerform is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PERFORM - ProcDomainMigratePerform = 62 - // ProcDomainMigrateFinish is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_FINISH - ProcDomainMigrateFinish = 63 - // ProcDomainBlockStats is libvirt's REMOTE_PROC_DOMAIN_BLOCK_STATS - ProcDomainBlockStats = 64 - // ProcDomainInterfaceStats is libvirt's REMOTE_PROC_DOMAIN_INTERFACE_STATS - ProcDomainInterfaceStats = 65 - // ProcAuthList is libvirt's REMOTE_PROC_AUTH_LIST - ProcAuthList = 66 - // ProcAuthSaslInit is libvirt's REMOTE_PROC_AUTH_SASL_INIT - ProcAuthSaslInit = 67 - // ProcAuthSaslStart is libvirt's REMOTE_PROC_AUTH_SASL_START - ProcAuthSaslStart = 68 - // ProcAuthSaslStep is libvirt's REMOTE_PROC_AUTH_SASL_STEP - ProcAuthSaslStep = 69 - // ProcAuthPolkit is libvirt's REMOTE_PROC_AUTH_POLKIT - ProcAuthPolkit = 70 - // ProcConnectNumOfStoragePools is libvirt's REMOTE_PROC_CONNECT_NUM_OF_STORAGE_POOLS - ProcConnectNumOfStoragePools = 71 - // ProcConnectListStoragePools is libvirt's REMOTE_PROC_CONNECT_LIST_STORAGE_POOLS - ProcConnectListStoragePools = 72 - // ProcConnectNumOfDefinedStoragePools is libvirt's REMOTE_PROC_CONNECT_NUM_OF_DEFINED_STORAGE_POOLS - ProcConnectNumOfDefinedStoragePools = 73 - // ProcConnectListDefinedStoragePools is libvirt's REMOTE_PROC_CONNECT_LIST_DEFINED_STORAGE_POOLS - ProcConnectListDefinedStoragePools = 74 - // ProcConnectFindStoragePoolSources is libvirt's REMOTE_PROC_CONNECT_FIND_STORAGE_POOL_SOURCES - ProcConnectFindStoragePoolSources = 75 - // ProcStoragePoolCreateXML is libvirt's REMOTE_PROC_STORAGE_POOL_CREATE_XML - ProcStoragePoolCreateXML = 76 - // ProcStoragePoolDefineXML is libvirt's REMOTE_PROC_STORAGE_POOL_DEFINE_XML - ProcStoragePoolDefineXML = 77 - // ProcStoragePoolCreate is libvirt's REMOTE_PROC_STORAGE_POOL_CREATE - ProcStoragePoolCreate = 78 - // ProcStoragePoolBuild is libvirt's REMOTE_PROC_STORAGE_POOL_BUILD - ProcStoragePoolBuild = 79 - // ProcStoragePoolDestroy is libvirt's REMOTE_PROC_STORAGE_POOL_DESTROY - ProcStoragePoolDestroy = 80 - // ProcStoragePoolDelete is libvirt's REMOTE_PROC_STORAGE_POOL_DELETE - ProcStoragePoolDelete = 81 - // ProcStoragePoolUndefine is libvirt's REMOTE_PROC_STORAGE_POOL_UNDEFINE - ProcStoragePoolUndefine = 82 - // ProcStoragePoolRefresh is libvirt's REMOTE_PROC_STORAGE_POOL_REFRESH - ProcStoragePoolRefresh = 83 - // ProcStoragePoolLookupByName is libvirt's REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME - ProcStoragePoolLookupByName = 84 - // ProcStoragePoolLookupByUUID is libvirt's REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID - ProcStoragePoolLookupByUUID = 85 - // ProcStoragePoolLookupByVolume is libvirt's REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME - ProcStoragePoolLookupByVolume = 86 - // ProcStoragePoolGetInfo is libvirt's REMOTE_PROC_STORAGE_POOL_GET_INFO - ProcStoragePoolGetInfo = 87 - // ProcStoragePoolGetXMLDesc is libvirt's REMOTE_PROC_STORAGE_POOL_GET_XML_DESC - ProcStoragePoolGetXMLDesc = 88 - // ProcStoragePoolGetAutostart is libvirt's REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART - ProcStoragePoolGetAutostart = 89 - // ProcStoragePoolSetAutostart is libvirt's REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART - ProcStoragePoolSetAutostart = 90 - // ProcStoragePoolNumOfVolumes is libvirt's REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES - ProcStoragePoolNumOfVolumes = 91 - // ProcStoragePoolListVolumes is libvirt's REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES - ProcStoragePoolListVolumes = 92 - // ProcStorageVolCreateXML is libvirt's REMOTE_PROC_STORAGE_VOL_CREATE_XML - ProcStorageVolCreateXML = 93 - // ProcStorageVolDelete is libvirt's REMOTE_PROC_STORAGE_VOL_DELETE - ProcStorageVolDelete = 94 - // ProcStorageVolLookupByName is libvirt's REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME - ProcStorageVolLookupByName = 95 - // ProcStorageVolLookupByKey is libvirt's REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY - ProcStorageVolLookupByKey = 96 - // ProcStorageVolLookupByPath is libvirt's REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH - ProcStorageVolLookupByPath = 97 - // ProcStorageVolGetInfo is libvirt's REMOTE_PROC_STORAGE_VOL_GET_INFO - ProcStorageVolGetInfo = 98 - // ProcStorageVolGetXMLDesc is libvirt's REMOTE_PROC_STORAGE_VOL_GET_XML_DESC - ProcStorageVolGetXMLDesc = 99 - // ProcStorageVolGetPath is libvirt's REMOTE_PROC_STORAGE_VOL_GET_PATH - ProcStorageVolGetPath = 100 - // ProcNodeGetCellsFreeMemory is libvirt's REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY - ProcNodeGetCellsFreeMemory = 101 - // ProcNodeGetFreeMemory is libvirt's REMOTE_PROC_NODE_GET_FREE_MEMORY - ProcNodeGetFreeMemory = 102 - // ProcDomainBlockPeek is libvirt's REMOTE_PROC_DOMAIN_BLOCK_PEEK - ProcDomainBlockPeek = 103 - // ProcDomainMemoryPeek is libvirt's REMOTE_PROC_DOMAIN_MEMORY_PEEK - ProcDomainMemoryPeek = 104 - // ProcConnectDomainEventRegister is libvirt's REMOTE_PROC_CONNECT_DOMAIN_EVENT_REGISTER - ProcConnectDomainEventRegister = 105 - // ProcConnectDomainEventDeregister is libvirt's REMOTE_PROC_CONNECT_DOMAIN_EVENT_DEREGISTER - ProcConnectDomainEventDeregister = 106 - // ProcDomainEventLifecycle is libvirt's REMOTE_PROC_DOMAIN_EVENT_LIFECYCLE - ProcDomainEventLifecycle = 107 - // ProcDomainMigratePrepare2 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PREPARE2 - ProcDomainMigratePrepare2 = 108 - // ProcDomainMigrateFinish2 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_FINISH2 - ProcDomainMigrateFinish2 = 109 - // ProcConnectGetUri is libvirt's REMOTE_PROC_CONNECT_GET_URI - ProcConnectGetUri = 110 - // ProcNodeNumOfDevices is libvirt's REMOTE_PROC_NODE_NUM_OF_DEVICES - ProcNodeNumOfDevices = 111 - // ProcNodeListDevices is libvirt's REMOTE_PROC_NODE_LIST_DEVICES - ProcNodeListDevices = 112 - // ProcNodeDeviceLookupByName is libvirt's REMOTE_PROC_NODE_DEVICE_LOOKUP_BY_NAME - ProcNodeDeviceLookupByName = 113 - // ProcNodeDeviceGetXMLDesc is libvirt's REMOTE_PROC_NODE_DEVICE_GET_XML_DESC - ProcNodeDeviceGetXMLDesc = 114 - // ProcNodeDeviceGetParent is libvirt's REMOTE_PROC_NODE_DEVICE_GET_PARENT - ProcNodeDeviceGetParent = 115 - // ProcNodeDeviceNumOfCaps is libvirt's REMOTE_PROC_NODE_DEVICE_NUM_OF_CAPS - ProcNodeDeviceNumOfCaps = 116 - // ProcNodeDeviceListCaps is libvirt's REMOTE_PROC_NODE_DEVICE_LIST_CAPS - ProcNodeDeviceListCaps = 117 - // ProcNodeDeviceDettach is libvirt's REMOTE_PROC_NODE_DEVICE_DETTACH - ProcNodeDeviceDettach = 118 - // ProcNodeDeviceReAttach is libvirt's REMOTE_PROC_NODE_DEVICE_RE_ATTACH - ProcNodeDeviceReAttach = 119 - // ProcNodeDeviceReset is libvirt's REMOTE_PROC_NODE_DEVICE_RESET - ProcNodeDeviceReset = 120 - // ProcDomainGetSecurityLabel is libvirt's REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL - ProcDomainGetSecurityLabel = 121 - // ProcNodeGetSecurityModel is libvirt's REMOTE_PROC_NODE_GET_SECURITY_MODEL - ProcNodeGetSecurityModel = 122 - // ProcNodeDeviceCreateXML is libvirt's REMOTE_PROC_NODE_DEVICE_CREATE_XML - ProcNodeDeviceCreateXML = 123 - // ProcNodeDeviceDestroy is libvirt's REMOTE_PROC_NODE_DEVICE_DESTROY - ProcNodeDeviceDestroy = 124 - // ProcStorageVolCreateXMLFrom is libvirt's REMOTE_PROC_STORAGE_VOL_CREATE_XML_FROM - ProcStorageVolCreateXMLFrom = 125 - // ProcConnectNumOfInterfaces is libvirt's REMOTE_PROC_CONNECT_NUM_OF_INTERFACES - ProcConnectNumOfInterfaces = 126 - // ProcConnectListInterfaces is libvirt's REMOTE_PROC_CONNECT_LIST_INTERFACES - ProcConnectListInterfaces = 127 - // ProcInterfaceLookupByName is libvirt's REMOTE_PROC_INTERFACE_LOOKUP_BY_NAME - ProcInterfaceLookupByName = 128 - // ProcInterfaceLookupByMacString is libvirt's REMOTE_PROC_INTERFACE_LOOKUP_BY_MAC_STRING - ProcInterfaceLookupByMacString = 129 - // ProcInterfaceGetXMLDesc is libvirt's REMOTE_PROC_INTERFACE_GET_XML_DESC - ProcInterfaceGetXMLDesc = 130 - // ProcInterfaceDefineXML is libvirt's REMOTE_PROC_INTERFACE_DEFINE_XML - ProcInterfaceDefineXML = 131 - // ProcInterfaceUndefine is libvirt's REMOTE_PROC_INTERFACE_UNDEFINE - ProcInterfaceUndefine = 132 - // ProcInterfaceCreate is libvirt's REMOTE_PROC_INTERFACE_CREATE - ProcInterfaceCreate = 133 - // ProcInterfaceDestroy is libvirt's REMOTE_PROC_INTERFACE_DESTROY - ProcInterfaceDestroy = 134 - // ProcConnectDomainXMLFromNative is libvirt's REMOTE_PROC_CONNECT_DOMAIN_XML_FROM_NATIVE - ProcConnectDomainXMLFromNative = 135 - // ProcConnectDomainXMLToNative is libvirt's REMOTE_PROC_CONNECT_DOMAIN_XML_TO_NATIVE - ProcConnectDomainXMLToNative = 136 - // ProcConnectNumOfDefinedInterfaces is libvirt's REMOTE_PROC_CONNECT_NUM_OF_DEFINED_INTERFACES - ProcConnectNumOfDefinedInterfaces = 137 - // ProcConnectListDefinedInterfaces is libvirt's REMOTE_PROC_CONNECT_LIST_DEFINED_INTERFACES - ProcConnectListDefinedInterfaces = 138 - // ProcConnectNumOfSecrets is libvirt's REMOTE_PROC_CONNECT_NUM_OF_SECRETS - ProcConnectNumOfSecrets = 139 - // ProcConnectListSecrets is libvirt's REMOTE_PROC_CONNECT_LIST_SECRETS - ProcConnectListSecrets = 140 - // ProcSecretLookupByUUID is libvirt's REMOTE_PROC_SECRET_LOOKUP_BY_UUID - ProcSecretLookupByUUID = 141 - // ProcSecretDefineXML is libvirt's REMOTE_PROC_SECRET_DEFINE_XML - ProcSecretDefineXML = 142 - // ProcSecretGetXMLDesc is libvirt's REMOTE_PROC_SECRET_GET_XML_DESC - ProcSecretGetXMLDesc = 143 - // ProcSecretSetValue is libvirt's REMOTE_PROC_SECRET_SET_VALUE - ProcSecretSetValue = 144 - // ProcSecretGetValue is libvirt's REMOTE_PROC_SECRET_GET_VALUE - ProcSecretGetValue = 145 - // ProcSecretUndefine is libvirt's REMOTE_PROC_SECRET_UNDEFINE - ProcSecretUndefine = 146 - // ProcSecretLookupByUsage is libvirt's REMOTE_PROC_SECRET_LOOKUP_BY_USAGE - ProcSecretLookupByUsage = 147 - // ProcDomainMigratePrepareTunnel is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL - ProcDomainMigratePrepareTunnel = 148 - // ProcConnectIsSecure is libvirt's REMOTE_PROC_CONNECT_IS_SECURE - ProcConnectIsSecure = 149 - // ProcDomainIsActive is libvirt's REMOTE_PROC_DOMAIN_IS_ACTIVE - ProcDomainIsActive = 150 - // ProcDomainIsPersistent is libvirt's REMOTE_PROC_DOMAIN_IS_PERSISTENT - ProcDomainIsPersistent = 151 - // ProcNetworkIsActive is libvirt's REMOTE_PROC_NETWORK_IS_ACTIVE - ProcNetworkIsActive = 152 - // ProcNetworkIsPersistent is libvirt's REMOTE_PROC_NETWORK_IS_PERSISTENT - ProcNetworkIsPersistent = 153 - // ProcStoragePoolIsActive is libvirt's REMOTE_PROC_STORAGE_POOL_IS_ACTIVE - ProcStoragePoolIsActive = 154 - // ProcStoragePoolIsPersistent is libvirt's REMOTE_PROC_STORAGE_POOL_IS_PERSISTENT - ProcStoragePoolIsPersistent = 155 - // ProcInterfaceIsActive is libvirt's REMOTE_PROC_INTERFACE_IS_ACTIVE - ProcInterfaceIsActive = 156 - // ProcConnectGetLibVersion is libvirt's REMOTE_PROC_CONNECT_GET_LIB_VERSION - ProcConnectGetLibVersion = 157 - // ProcConnectCompareCPU is libvirt's REMOTE_PROC_CONNECT_COMPARE_CPU - ProcConnectCompareCPU = 158 - // ProcDomainMemoryStats is libvirt's REMOTE_PROC_DOMAIN_MEMORY_STATS - ProcDomainMemoryStats = 159 - // ProcDomainAttachDeviceFlags is libvirt's REMOTE_PROC_DOMAIN_ATTACH_DEVICE_FLAGS - ProcDomainAttachDeviceFlags = 160 - // ProcDomainDetachDeviceFlags is libvirt's REMOTE_PROC_DOMAIN_DETACH_DEVICE_FLAGS - ProcDomainDetachDeviceFlags = 161 - // ProcConnectBaselineCPU is libvirt's REMOTE_PROC_CONNECT_BASELINE_CPU - ProcConnectBaselineCPU = 162 - // ProcDomainGetJobInfo is libvirt's REMOTE_PROC_DOMAIN_GET_JOB_INFO - ProcDomainGetJobInfo = 163 - // ProcDomainAbortJob is libvirt's REMOTE_PROC_DOMAIN_ABORT_JOB - ProcDomainAbortJob = 164 - // ProcStorageVolWipe is libvirt's REMOTE_PROC_STORAGE_VOL_WIPE - ProcStorageVolWipe = 165 - // ProcDomainMigrateSetMaxDowntime is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_DOWNTIME - ProcDomainMigrateSetMaxDowntime = 166 - // ProcConnectDomainEventRegisterAny is libvirt's REMOTE_PROC_CONNECT_DOMAIN_EVENT_REGISTER_ANY - ProcConnectDomainEventRegisterAny = 167 - // ProcConnectDomainEventDeregisterAny is libvirt's REMOTE_PROC_CONNECT_DOMAIN_EVENT_DEREGISTER_ANY - ProcConnectDomainEventDeregisterAny = 168 - // ProcDomainEventReboot is libvirt's REMOTE_PROC_DOMAIN_EVENT_REBOOT - ProcDomainEventReboot = 169 - // ProcDomainEventRtcChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE - ProcDomainEventRtcChange = 170 - // ProcDomainEventWatchdog is libvirt's REMOTE_PROC_DOMAIN_EVENT_WATCHDOG - ProcDomainEventWatchdog = 171 - // ProcDomainEventIOError is libvirt's REMOTE_PROC_DOMAIN_EVENT_IO_ERROR - ProcDomainEventIOError = 172 - // ProcDomainEventGraphics is libvirt's REMOTE_PROC_DOMAIN_EVENT_GRAPHICS - ProcDomainEventGraphics = 173 - // ProcDomainUpdateDeviceFlags is libvirt's REMOTE_PROC_DOMAIN_UPDATE_DEVICE_FLAGS - ProcDomainUpdateDeviceFlags = 174 - // ProcNwfilterLookupByName is libvirt's REMOTE_PROC_NWFILTER_LOOKUP_BY_NAME - ProcNwfilterLookupByName = 175 - // ProcNwfilterLookupByUUID is libvirt's REMOTE_PROC_NWFILTER_LOOKUP_BY_UUID - ProcNwfilterLookupByUUID = 176 - // ProcNwfilterGetXMLDesc is libvirt's REMOTE_PROC_NWFILTER_GET_XML_DESC - ProcNwfilterGetXMLDesc = 177 - // ProcConnectNumOfNwfilters is libvirt's REMOTE_PROC_CONNECT_NUM_OF_NWFILTERS - ProcConnectNumOfNwfilters = 178 - // ProcConnectListNwfilters is libvirt's REMOTE_PROC_CONNECT_LIST_NWFILTERS - ProcConnectListNwfilters = 179 - // ProcNwfilterDefineXML is libvirt's REMOTE_PROC_NWFILTER_DEFINE_XML - ProcNwfilterDefineXML = 180 - // ProcNwfilterUndefine is libvirt's REMOTE_PROC_NWFILTER_UNDEFINE - ProcNwfilterUndefine = 181 - // ProcDomainManagedSave is libvirt's REMOTE_PROC_DOMAIN_MANAGED_SAVE - ProcDomainManagedSave = 182 - // ProcDomainHasManagedSaveImage is libvirt's REMOTE_PROC_DOMAIN_HAS_MANAGED_SAVE_IMAGE - ProcDomainHasManagedSaveImage = 183 - // ProcDomainManagedSaveRemove is libvirt's REMOTE_PROC_DOMAIN_MANAGED_SAVE_REMOVE - ProcDomainManagedSaveRemove = 184 - // ProcDomainSnapshotCreateXML is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_CREATE_XML - ProcDomainSnapshotCreateXML = 185 - // ProcDomainSnapshotGetXMLDesc is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_GET_XML_DESC - ProcDomainSnapshotGetXMLDesc = 186 - // ProcDomainSnapshotNum is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_NUM - ProcDomainSnapshotNum = 187 - // ProcDomainSnapshotListNames is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_NAMES - ProcDomainSnapshotListNames = 188 - // ProcDomainSnapshotLookupByName is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_LOOKUP_BY_NAME - ProcDomainSnapshotLookupByName = 189 - // ProcDomainHasCurrentSnapshot is libvirt's REMOTE_PROC_DOMAIN_HAS_CURRENT_SNAPSHOT - ProcDomainHasCurrentSnapshot = 190 - // ProcDomainSnapshotCurrent is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_CURRENT - ProcDomainSnapshotCurrent = 191 - // ProcDomainRevertToSnapshot is libvirt's REMOTE_PROC_DOMAIN_REVERT_TO_SNAPSHOT - ProcDomainRevertToSnapshot = 192 - // ProcDomainSnapshotDelete is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_DELETE - ProcDomainSnapshotDelete = 193 - // ProcDomainGetBlockInfo is libvirt's REMOTE_PROC_DOMAIN_GET_BLOCK_INFO - ProcDomainGetBlockInfo = 194 - // ProcDomainEventIOErrorReason is libvirt's REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON - ProcDomainEventIOErrorReason = 195 - // ProcDomainCreateWithFlags is libvirt's REMOTE_PROC_DOMAIN_CREATE_WITH_FLAGS - ProcDomainCreateWithFlags = 196 - // ProcDomainSetMemoryParameters is libvirt's REMOTE_PROC_DOMAIN_SET_MEMORY_PARAMETERS - ProcDomainSetMemoryParameters = 197 - // ProcDomainGetMemoryParameters is libvirt's REMOTE_PROC_DOMAIN_GET_MEMORY_PARAMETERS - ProcDomainGetMemoryParameters = 198 - // ProcDomainSetVcpusFlags is libvirt's REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS - ProcDomainSetVcpusFlags = 199 - // ProcDomainGetVcpusFlags is libvirt's REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS - ProcDomainGetVcpusFlags = 200 - // ProcDomainOpenConsole is libvirt's REMOTE_PROC_DOMAIN_OPEN_CONSOLE - ProcDomainOpenConsole = 201 - // ProcDomainIsUpdated is libvirt's REMOTE_PROC_DOMAIN_IS_UPDATED - ProcDomainIsUpdated = 202 - // ProcConnectGetSysinfo is libvirt's REMOTE_PROC_CONNECT_GET_SYSINFO - ProcConnectGetSysinfo = 203 - // ProcDomainSetMemoryFlags is libvirt's REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS - ProcDomainSetMemoryFlags = 204 - // ProcDomainSetBlkioParameters is libvirt's REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS - ProcDomainSetBlkioParameters = 205 - // ProcDomainGetBlkioParameters is libvirt's REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS - ProcDomainGetBlkioParameters = 206 - // ProcDomainMigrateSetMaxSpeed is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED - ProcDomainMigrateSetMaxSpeed = 207 - // ProcStorageVolUpload is libvirt's REMOTE_PROC_STORAGE_VOL_UPLOAD - ProcStorageVolUpload = 208 - // ProcStorageVolDownload is libvirt's REMOTE_PROC_STORAGE_VOL_DOWNLOAD - ProcStorageVolDownload = 209 - // ProcDomainInjectNmi is libvirt's REMOTE_PROC_DOMAIN_INJECT_NMI - ProcDomainInjectNmi = 210 - // ProcDomainScreenshot is libvirt's REMOTE_PROC_DOMAIN_SCREENSHOT - ProcDomainScreenshot = 211 - // ProcDomainGetState is libvirt's REMOTE_PROC_DOMAIN_GET_STATE - ProcDomainGetState = 212 - // ProcDomainMigrateBegin3 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_BEGIN3 - ProcDomainMigrateBegin3 = 213 - // ProcDomainMigratePrepare3 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PREPARE3 - ProcDomainMigratePrepare3 = 214 - // ProcDomainMigratePrepareTunnel3 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3 - ProcDomainMigratePrepareTunnel3 = 215 - // ProcDomainMigratePerform3 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PERFORM3 - ProcDomainMigratePerform3 = 216 - // ProcDomainMigrateFinish3 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_FINISH3 - ProcDomainMigrateFinish3 = 217 - // ProcDomainMigrateConfirm3 is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_CONFIRM3 - ProcDomainMigrateConfirm3 = 218 - // ProcDomainSetSchedulerParametersFlags is libvirt's REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS_FLAGS - ProcDomainSetSchedulerParametersFlags = 219 - // ProcInterfaceChangeBegin is libvirt's REMOTE_PROC_INTERFACE_CHANGE_BEGIN - ProcInterfaceChangeBegin = 220 - // ProcInterfaceChangeCommit is libvirt's REMOTE_PROC_INTERFACE_CHANGE_COMMIT - ProcInterfaceChangeCommit = 221 - // ProcInterfaceChangeRollback is libvirt's REMOTE_PROC_INTERFACE_CHANGE_ROLLBACK - ProcInterfaceChangeRollback = 222 - // ProcDomainGetSchedulerParametersFlags is libvirt's REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS_FLAGS - ProcDomainGetSchedulerParametersFlags = 223 - // ProcDomainEventControlError is libvirt's REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR - ProcDomainEventControlError = 224 - // ProcDomainPinVcpuFlags is libvirt's REMOTE_PROC_DOMAIN_PIN_VCPU_FLAGS - ProcDomainPinVcpuFlags = 225 - // ProcDomainSendKey is libvirt's REMOTE_PROC_DOMAIN_SEND_KEY - ProcDomainSendKey = 226 - // ProcNodeGetCPUStats is libvirt's REMOTE_PROC_NODE_GET_CPU_STATS - ProcNodeGetCPUStats = 227 - // ProcNodeGetMemoryStats is libvirt's REMOTE_PROC_NODE_GET_MEMORY_STATS - ProcNodeGetMemoryStats = 228 - // ProcDomainGetControlInfo is libvirt's REMOTE_PROC_DOMAIN_GET_CONTROL_INFO - ProcDomainGetControlInfo = 229 - // ProcDomainGetVcpuPinInfo is libvirt's REMOTE_PROC_DOMAIN_GET_VCPU_PIN_INFO - ProcDomainGetVcpuPinInfo = 230 - // ProcDomainUndefineFlags is libvirt's REMOTE_PROC_DOMAIN_UNDEFINE_FLAGS - ProcDomainUndefineFlags = 231 - // ProcDomainSaveFlags is libvirt's REMOTE_PROC_DOMAIN_SAVE_FLAGS - ProcDomainSaveFlags = 232 - // ProcDomainRestoreFlags is libvirt's REMOTE_PROC_DOMAIN_RESTORE_FLAGS - ProcDomainRestoreFlags = 233 - // ProcDomainDestroyFlags is libvirt's REMOTE_PROC_DOMAIN_DESTROY_FLAGS - ProcDomainDestroyFlags = 234 - // ProcDomainSaveImageGetXMLDesc is libvirt's REMOTE_PROC_DOMAIN_SAVE_IMAGE_GET_XML_DESC - ProcDomainSaveImageGetXMLDesc = 235 - // ProcDomainSaveImageDefineXML is libvirt's REMOTE_PROC_DOMAIN_SAVE_IMAGE_DEFINE_XML - ProcDomainSaveImageDefineXML = 236 - // ProcDomainBlockJobAbort is libvirt's REMOTE_PROC_DOMAIN_BLOCK_JOB_ABORT - ProcDomainBlockJobAbort = 237 - // ProcDomainGetBlockJobInfo is libvirt's REMOTE_PROC_DOMAIN_GET_BLOCK_JOB_INFO - ProcDomainGetBlockJobInfo = 238 - // ProcDomainBlockJobSetSpeed is libvirt's REMOTE_PROC_DOMAIN_BLOCK_JOB_SET_SPEED - ProcDomainBlockJobSetSpeed = 239 - // ProcDomainBlockPull is libvirt's REMOTE_PROC_DOMAIN_BLOCK_PULL - ProcDomainBlockPull = 240 - // ProcDomainEventBlockJob is libvirt's REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB - ProcDomainEventBlockJob = 241 - // ProcDomainMigrateGetMaxSpeed is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_GET_MAX_SPEED - ProcDomainMigrateGetMaxSpeed = 242 - // ProcDomainBlockStatsFlags is libvirt's REMOTE_PROC_DOMAIN_BLOCK_STATS_FLAGS - ProcDomainBlockStatsFlags = 243 - // ProcDomainSnapshotGetParent is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_GET_PARENT - ProcDomainSnapshotGetParent = 244 - // ProcDomainReset is libvirt's REMOTE_PROC_DOMAIN_RESET - ProcDomainReset = 245 - // ProcDomainSnapshotNumChildren is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_NUM_CHILDREN - ProcDomainSnapshotNumChildren = 246 - // ProcDomainSnapshotListChildrenNames is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_CHILDREN_NAMES - ProcDomainSnapshotListChildrenNames = 247 - // ProcDomainEventDiskChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE - ProcDomainEventDiskChange = 248 - // ProcDomainOpenGraphics is libvirt's REMOTE_PROC_DOMAIN_OPEN_GRAPHICS - ProcDomainOpenGraphics = 249 - // ProcNodeSuspendForDuration is libvirt's REMOTE_PROC_NODE_SUSPEND_FOR_DURATION - ProcNodeSuspendForDuration = 250 - // ProcDomainBlockResize is libvirt's REMOTE_PROC_DOMAIN_BLOCK_RESIZE - ProcDomainBlockResize = 251 - // ProcDomainSetBlockIOTune is libvirt's REMOTE_PROC_DOMAIN_SET_BLOCK_IO_TUNE - ProcDomainSetBlockIOTune = 252 - // ProcDomainGetBlockIOTune is libvirt's REMOTE_PROC_DOMAIN_GET_BLOCK_IO_TUNE - ProcDomainGetBlockIOTune = 253 - // ProcDomainSetNumaParameters is libvirt's REMOTE_PROC_DOMAIN_SET_NUMA_PARAMETERS - ProcDomainSetNumaParameters = 254 - // ProcDomainGetNumaParameters is libvirt's REMOTE_PROC_DOMAIN_GET_NUMA_PARAMETERS - ProcDomainGetNumaParameters = 255 - // ProcDomainSetInterfaceParameters is libvirt's REMOTE_PROC_DOMAIN_SET_INTERFACE_PARAMETERS - ProcDomainSetInterfaceParameters = 256 - // ProcDomainGetInterfaceParameters is libvirt's REMOTE_PROC_DOMAIN_GET_INTERFACE_PARAMETERS - ProcDomainGetInterfaceParameters = 257 - // ProcDomainShutdownFlags is libvirt's REMOTE_PROC_DOMAIN_SHUTDOWN_FLAGS - ProcDomainShutdownFlags = 258 - // ProcStorageVolWipePattern is libvirt's REMOTE_PROC_STORAGE_VOL_WIPE_PATTERN - ProcStorageVolWipePattern = 259 - // ProcStorageVolResize is libvirt's REMOTE_PROC_STORAGE_VOL_RESIZE - ProcStorageVolResize = 260 - // ProcDomainPmSuspendForDuration is libvirt's REMOTE_PROC_DOMAIN_PM_SUSPEND_FOR_DURATION - ProcDomainPmSuspendForDuration = 261 - // ProcDomainGetCPUStats is libvirt's REMOTE_PROC_DOMAIN_GET_CPU_STATS - ProcDomainGetCPUStats = 262 - // ProcDomainGetDiskErrors is libvirt's REMOTE_PROC_DOMAIN_GET_DISK_ERRORS - ProcDomainGetDiskErrors = 263 - // ProcDomainSetMetadata is libvirt's REMOTE_PROC_DOMAIN_SET_METADATA - ProcDomainSetMetadata = 264 - // ProcDomainGetMetadata is libvirt's REMOTE_PROC_DOMAIN_GET_METADATA - ProcDomainGetMetadata = 265 - // ProcDomainBlockRebase is libvirt's REMOTE_PROC_DOMAIN_BLOCK_REBASE - ProcDomainBlockRebase = 266 - // ProcDomainPmWakeup is libvirt's REMOTE_PROC_DOMAIN_PM_WAKEUP - ProcDomainPmWakeup = 267 - // ProcDomainEventTrayChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_TRAY_CHANGE - ProcDomainEventTrayChange = 268 - // ProcDomainEventPmwakeup is libvirt's REMOTE_PROC_DOMAIN_EVENT_PMWAKEUP - ProcDomainEventPmwakeup = 269 - // ProcDomainEventPmsuspend is libvirt's REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND - ProcDomainEventPmsuspend = 270 - // ProcDomainSnapshotIsCurrent is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_IS_CURRENT - ProcDomainSnapshotIsCurrent = 271 - // ProcDomainSnapshotHasMetadata is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_HAS_METADATA - ProcDomainSnapshotHasMetadata = 272 - // ProcConnectListAllDomains is libvirt's REMOTE_PROC_CONNECT_LIST_ALL_DOMAINS - ProcConnectListAllDomains = 273 - // ProcDomainListAllSnapshots is libvirt's REMOTE_PROC_DOMAIN_LIST_ALL_SNAPSHOTS - ProcDomainListAllSnapshots = 274 - // ProcDomainSnapshotListAllChildren is libvirt's REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_ALL_CHILDREN - ProcDomainSnapshotListAllChildren = 275 - // ProcDomainEventBalloonChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_BALLOON_CHANGE - ProcDomainEventBalloonChange = 276 - // ProcDomainGetHostname is libvirt's REMOTE_PROC_DOMAIN_GET_HOSTNAME - ProcDomainGetHostname = 277 - // ProcDomainGetSecurityLabelList is libvirt's REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL_LIST - ProcDomainGetSecurityLabelList = 278 - // ProcDomainPinEmulator is libvirt's REMOTE_PROC_DOMAIN_PIN_EMULATOR - ProcDomainPinEmulator = 279 - // ProcDomainGetEmulatorPinInfo is libvirt's REMOTE_PROC_DOMAIN_GET_EMULATOR_PIN_INFO - ProcDomainGetEmulatorPinInfo = 280 - // ProcConnectListAllStoragePools is libvirt's REMOTE_PROC_CONNECT_LIST_ALL_STORAGE_POOLS - ProcConnectListAllStoragePools = 281 - // ProcStoragePoolListAllVolumes is libvirt's REMOTE_PROC_STORAGE_POOL_LIST_ALL_VOLUMES - ProcStoragePoolListAllVolumes = 282 - // ProcConnectListAllNetworks is libvirt's REMOTE_PROC_CONNECT_LIST_ALL_NETWORKS - ProcConnectListAllNetworks = 283 - // ProcConnectListAllInterfaces is libvirt's REMOTE_PROC_CONNECT_LIST_ALL_INTERFACES - ProcConnectListAllInterfaces = 284 - // ProcConnectListAllNodeDevices is libvirt's REMOTE_PROC_CONNECT_LIST_ALL_NODE_DEVICES - ProcConnectListAllNodeDevices = 285 - // ProcConnectListAllNwfilters is libvirt's REMOTE_PROC_CONNECT_LIST_ALL_NWFILTERS - ProcConnectListAllNwfilters = 286 - // ProcConnectListAllSecrets is libvirt's REMOTE_PROC_CONNECT_LIST_ALL_SECRETS - ProcConnectListAllSecrets = 287 - // ProcNodeSetMemoryParameters is libvirt's REMOTE_PROC_NODE_SET_MEMORY_PARAMETERS - ProcNodeSetMemoryParameters = 288 - // ProcNodeGetMemoryParameters is libvirt's REMOTE_PROC_NODE_GET_MEMORY_PARAMETERS - ProcNodeGetMemoryParameters = 289 - // ProcDomainBlockCommit is libvirt's REMOTE_PROC_DOMAIN_BLOCK_COMMIT - ProcDomainBlockCommit = 290 - // ProcNetworkUpdate is libvirt's REMOTE_PROC_NETWORK_UPDATE - ProcNetworkUpdate = 291 - // ProcDomainEventPmsuspendDisk is libvirt's REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND_DISK - ProcDomainEventPmsuspendDisk = 292 - // ProcNodeGetCPUMap is libvirt's REMOTE_PROC_NODE_GET_CPU_MAP - ProcNodeGetCPUMap = 293 - // ProcDomainFstrim is libvirt's REMOTE_PROC_DOMAIN_FSTRIM - ProcDomainFstrim = 294 - // ProcDomainSendProcessSignal is libvirt's REMOTE_PROC_DOMAIN_SEND_PROCESS_SIGNAL - ProcDomainSendProcessSignal = 295 - // ProcDomainOpenChannel is libvirt's REMOTE_PROC_DOMAIN_OPEN_CHANNEL - ProcDomainOpenChannel = 296 - // ProcNodeDeviceLookupScsiHostByWwn is libvirt's REMOTE_PROC_NODE_DEVICE_LOOKUP_SCSI_HOST_BY_WWN - ProcNodeDeviceLookupScsiHostByWwn = 297 - // ProcDomainGetJobStats is libvirt's REMOTE_PROC_DOMAIN_GET_JOB_STATS - ProcDomainGetJobStats = 298 - // ProcDomainMigrateGetCompressionCache is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_GET_COMPRESSION_CACHE - ProcDomainMigrateGetCompressionCache = 299 - // ProcDomainMigrateSetCompressionCache is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_SET_COMPRESSION_CACHE - ProcDomainMigrateSetCompressionCache = 300 - // ProcNodeDeviceDetachFlags is libvirt's REMOTE_PROC_NODE_DEVICE_DETACH_FLAGS - ProcNodeDeviceDetachFlags = 301 - // ProcDomainMigrateBegin3Params is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_BEGIN3_PARAMS - ProcDomainMigrateBegin3Params = 302 - // ProcDomainMigratePrepare3Params is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PREPARE3_PARAMS - ProcDomainMigratePrepare3Params = 303 - // ProcDomainMigratePrepareTunnel3Params is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3_PARAMS - ProcDomainMigratePrepareTunnel3Params = 304 - // ProcDomainMigratePerform3Params is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_PERFORM3_PARAMS - ProcDomainMigratePerform3Params = 305 - // ProcDomainMigrateFinish3Params is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_FINISH3_PARAMS - ProcDomainMigrateFinish3Params = 306 - // ProcDomainMigrateConfirm3Params is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_CONFIRM3_PARAMS - ProcDomainMigrateConfirm3Params = 307 - // ProcDomainSetMemoryStatsPeriod is libvirt's REMOTE_PROC_DOMAIN_SET_MEMORY_STATS_PERIOD - ProcDomainSetMemoryStatsPeriod = 308 - // ProcDomainCreateXMLWithFiles is libvirt's REMOTE_PROC_DOMAIN_CREATE_XML_WITH_FILES - ProcDomainCreateXMLWithFiles = 309 - // ProcDomainCreateWithFiles is libvirt's REMOTE_PROC_DOMAIN_CREATE_WITH_FILES - ProcDomainCreateWithFiles = 310 - // ProcDomainEventDeviceRemoved is libvirt's REMOTE_PROC_DOMAIN_EVENT_DEVICE_REMOVED - ProcDomainEventDeviceRemoved = 311 - // ProcConnectGetCPUModelNames is libvirt's REMOTE_PROC_CONNECT_GET_CPU_MODEL_NAMES - ProcConnectGetCPUModelNames = 312 - // ProcConnectNetworkEventRegisterAny is libvirt's REMOTE_PROC_CONNECT_NETWORK_EVENT_REGISTER_ANY - ProcConnectNetworkEventRegisterAny = 313 - // ProcConnectNetworkEventDeregisterAny is libvirt's REMOTE_PROC_CONNECT_NETWORK_EVENT_DEREGISTER_ANY - ProcConnectNetworkEventDeregisterAny = 314 - // ProcNetworkEventLifecycle is libvirt's REMOTE_PROC_NETWORK_EVENT_LIFECYCLE - ProcNetworkEventLifecycle = 315 - // ProcConnectDomainEventCallbackRegisterAny is libvirt's REMOTE_PROC_CONNECT_DOMAIN_EVENT_CALLBACK_REGISTER_ANY - ProcConnectDomainEventCallbackRegisterAny = 316 - // ProcConnectDomainEventCallbackDeregisterAny is libvirt's REMOTE_PROC_CONNECT_DOMAIN_EVENT_CALLBACK_DEREGISTER_ANY - ProcConnectDomainEventCallbackDeregisterAny = 317 - // ProcDomainEventCallbackLifecycle is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_LIFECYCLE - ProcDomainEventCallbackLifecycle = 318 - // ProcDomainEventCallbackReboot is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_REBOOT - ProcDomainEventCallbackReboot = 319 - // ProcDomainEventCallbackRtcChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_RTC_CHANGE - ProcDomainEventCallbackRtcChange = 320 - // ProcDomainEventCallbackWatchdog is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_WATCHDOG - ProcDomainEventCallbackWatchdog = 321 - // ProcDomainEventCallbackIOError is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR - ProcDomainEventCallbackIOError = 322 - // ProcDomainEventCallbackGraphics is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_GRAPHICS - ProcDomainEventCallbackGraphics = 323 - // ProcDomainEventCallbackIOErrorReason is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR_REASON - ProcDomainEventCallbackIOErrorReason = 324 - // ProcDomainEventCallbackControlError is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_CONTROL_ERROR - ProcDomainEventCallbackControlError = 325 - // ProcDomainEventCallbackBlockJob is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BLOCK_JOB - ProcDomainEventCallbackBlockJob = 326 - // ProcDomainEventCallbackDiskChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DISK_CHANGE - ProcDomainEventCallbackDiskChange = 327 - // ProcDomainEventCallbackTrayChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TRAY_CHANGE - ProcDomainEventCallbackTrayChange = 328 - // ProcDomainEventCallbackPmwakeup is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP - ProcDomainEventCallbackPmwakeup = 329 - // ProcDomainEventCallbackPmsuspend is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND - ProcDomainEventCallbackPmsuspend = 330 - // ProcDomainEventCallbackBalloonChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BALLOON_CHANGE - ProcDomainEventCallbackBalloonChange = 331 - // ProcDomainEventCallbackPmsuspendDisk is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK - ProcDomainEventCallbackPmsuspendDisk = 332 - // ProcDomainEventCallbackDeviceRemoved is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVED - ProcDomainEventCallbackDeviceRemoved = 333 - // ProcDomainCoreDumpWithFormat is libvirt's REMOTE_PROC_DOMAIN_CORE_DUMP_WITH_FORMAT - ProcDomainCoreDumpWithFormat = 334 - // ProcDomainFsfreeze is libvirt's REMOTE_PROC_DOMAIN_FSFREEZE - ProcDomainFsfreeze = 335 - // ProcDomainFsthaw is libvirt's REMOTE_PROC_DOMAIN_FSTHAW - ProcDomainFsthaw = 336 - // ProcDomainGetTime is libvirt's REMOTE_PROC_DOMAIN_GET_TIME - ProcDomainGetTime = 337 - // ProcDomainSetTime is libvirt's REMOTE_PROC_DOMAIN_SET_TIME - ProcDomainSetTime = 338 - // ProcDomainEventBlockJob2 is libvirt's REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB_2 - ProcDomainEventBlockJob2 = 339 - // ProcNodeGetFreePages is libvirt's REMOTE_PROC_NODE_GET_FREE_PAGES - ProcNodeGetFreePages = 340 - // ProcNetworkGetDhcpLeases is libvirt's REMOTE_PROC_NETWORK_GET_DHCP_LEASES - ProcNetworkGetDhcpLeases = 341 - // ProcConnectGetDomainCapabilities is libvirt's REMOTE_PROC_CONNECT_GET_DOMAIN_CAPABILITIES - ProcConnectGetDomainCapabilities = 342 - // ProcDomainOpenGraphicsFd is libvirt's REMOTE_PROC_DOMAIN_OPEN_GRAPHICS_FD - ProcDomainOpenGraphicsFd = 343 - // ProcConnectGetAllDomainStats is libvirt's REMOTE_PROC_CONNECT_GET_ALL_DOMAIN_STATS - ProcConnectGetAllDomainStats = 344 - // ProcDomainBlockCopy is libvirt's REMOTE_PROC_DOMAIN_BLOCK_COPY - ProcDomainBlockCopy = 345 - // ProcDomainEventCallbackTunable is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TUNABLE - ProcDomainEventCallbackTunable = 346 - // ProcNodeAllocPages is libvirt's REMOTE_PROC_NODE_ALLOC_PAGES - ProcNodeAllocPages = 347 - // ProcDomainEventCallbackAgentLifecycle is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_AGENT_LIFECYCLE - ProcDomainEventCallbackAgentLifecycle = 348 - // ProcDomainGetFsinfo is libvirt's REMOTE_PROC_DOMAIN_GET_FSINFO - ProcDomainGetFsinfo = 349 - // ProcDomainDefineXMLFlags is libvirt's REMOTE_PROC_DOMAIN_DEFINE_XML_FLAGS - ProcDomainDefineXMLFlags = 350 - // ProcDomainGetIothreadInfo is libvirt's REMOTE_PROC_DOMAIN_GET_IOTHREAD_INFO - ProcDomainGetIothreadInfo = 351 - // ProcDomainPinIothread is libvirt's REMOTE_PROC_DOMAIN_PIN_IOTHREAD - ProcDomainPinIothread = 352 - // ProcDomainInterfaceAddresses is libvirt's REMOTE_PROC_DOMAIN_INTERFACE_ADDRESSES - ProcDomainInterfaceAddresses = 353 - // ProcDomainEventCallbackDeviceAdded is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_ADDED - ProcDomainEventCallbackDeviceAdded = 354 - // ProcDomainAddIothread is libvirt's REMOTE_PROC_DOMAIN_ADD_IOTHREAD - ProcDomainAddIothread = 355 - // ProcDomainDelIothread is libvirt's REMOTE_PROC_DOMAIN_DEL_IOTHREAD - ProcDomainDelIothread = 356 - // ProcDomainSetUserPassword is libvirt's REMOTE_PROC_DOMAIN_SET_USER_PASSWORD - ProcDomainSetUserPassword = 357 - // ProcDomainRename is libvirt's REMOTE_PROC_DOMAIN_RENAME - ProcDomainRename = 358 - // ProcDomainEventCallbackMigrationIteration is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_MIGRATION_ITERATION - ProcDomainEventCallbackMigrationIteration = 359 - // ProcConnectRegisterCloseCallback is libvirt's REMOTE_PROC_CONNECT_REGISTER_CLOSE_CALLBACK - ProcConnectRegisterCloseCallback = 360 - // ProcConnectUnregisterCloseCallback is libvirt's REMOTE_PROC_CONNECT_UNREGISTER_CLOSE_CALLBACK - ProcConnectUnregisterCloseCallback = 361 - // ProcConnectEventConnectionClosed is libvirt's REMOTE_PROC_CONNECT_EVENT_CONNECTION_CLOSED - ProcConnectEventConnectionClosed = 362 - // ProcDomainEventCallbackJobCompleted is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_JOB_COMPLETED - ProcDomainEventCallbackJobCompleted = 363 - // ProcDomainMigrateStartPostCopy is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_START_POST_COPY - ProcDomainMigrateStartPostCopy = 364 - // ProcDomainGetPerfEvents is libvirt's REMOTE_PROC_DOMAIN_GET_PERF_EVENTS - ProcDomainGetPerfEvents = 365 - // ProcDomainSetPerfEvents is libvirt's REMOTE_PROC_DOMAIN_SET_PERF_EVENTS - ProcDomainSetPerfEvents = 366 - // ProcDomainEventCallbackDeviceRemovalFailed is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVAL_FAILED - ProcDomainEventCallbackDeviceRemovalFailed = 367 - // ProcConnectStoragePoolEventRegisterAny is libvirt's REMOTE_PROC_CONNECT_STORAGE_POOL_EVENT_REGISTER_ANY - ProcConnectStoragePoolEventRegisterAny = 368 - // ProcConnectStoragePoolEventDeregisterAny is libvirt's REMOTE_PROC_CONNECT_STORAGE_POOL_EVENT_DEREGISTER_ANY - ProcConnectStoragePoolEventDeregisterAny = 369 - // ProcStoragePoolEventLifecycle is libvirt's REMOTE_PROC_STORAGE_POOL_EVENT_LIFECYCLE - ProcStoragePoolEventLifecycle = 370 - // ProcDomainGetGuestVcpus is libvirt's REMOTE_PROC_DOMAIN_GET_GUEST_VCPUS - ProcDomainGetGuestVcpus = 371 - // ProcDomainSetGuestVcpus is libvirt's REMOTE_PROC_DOMAIN_SET_GUEST_VCPUS - ProcDomainSetGuestVcpus = 372 - // ProcStoragePoolEventRefresh is libvirt's REMOTE_PROC_STORAGE_POOL_EVENT_REFRESH - ProcStoragePoolEventRefresh = 373 - // ProcConnectNodeDeviceEventRegisterAny is libvirt's REMOTE_PROC_CONNECT_NODE_DEVICE_EVENT_REGISTER_ANY - ProcConnectNodeDeviceEventRegisterAny = 374 - // ProcConnectNodeDeviceEventDeregisterAny is libvirt's REMOTE_PROC_CONNECT_NODE_DEVICE_EVENT_DEREGISTER_ANY - ProcConnectNodeDeviceEventDeregisterAny = 375 - // ProcNodeDeviceEventLifecycle is libvirt's REMOTE_PROC_NODE_DEVICE_EVENT_LIFECYCLE - ProcNodeDeviceEventLifecycle = 376 - // ProcNodeDeviceEventUpdate is libvirt's REMOTE_PROC_NODE_DEVICE_EVENT_UPDATE - ProcNodeDeviceEventUpdate = 377 - // ProcStorageVolGetInfoFlags is libvirt's REMOTE_PROC_STORAGE_VOL_GET_INFO_FLAGS - ProcStorageVolGetInfoFlags = 378 - // ProcDomainEventCallbackMetadataChange is libvirt's REMOTE_PROC_DOMAIN_EVENT_CALLBACK_METADATA_CHANGE - ProcDomainEventCallbackMetadataChange = 379 - // ProcConnectSecretEventRegisterAny is libvirt's REMOTE_PROC_CONNECT_SECRET_EVENT_REGISTER_ANY - ProcConnectSecretEventRegisterAny = 380 - // ProcConnectSecretEventDeregisterAny is libvirt's REMOTE_PROC_CONNECT_SECRET_EVENT_DEREGISTER_ANY - ProcConnectSecretEventDeregisterAny = 381 - // ProcSecretEventLifecycle is libvirt's REMOTE_PROC_SECRET_EVENT_LIFECYCLE - ProcSecretEventLifecycle = 382 - // ProcSecretEventValueChanged is libvirt's REMOTE_PROC_SECRET_EVENT_VALUE_CHANGED - ProcSecretEventValueChanged = 383 - // ProcDomainSetVcpu is libvirt's REMOTE_PROC_DOMAIN_SET_VCPU - ProcDomainSetVcpu = 384 - // ProcDomainEventBlockThreshold is libvirt's REMOTE_PROC_DOMAIN_EVENT_BLOCK_THRESHOLD - ProcDomainEventBlockThreshold = 385 - // ProcDomainSetBlockThreshold is libvirt's REMOTE_PROC_DOMAIN_SET_BLOCK_THRESHOLD - ProcDomainSetBlockThreshold = 386 - // ProcDomainMigrateGetMaxDowntime is libvirt's REMOTE_PROC_DOMAIN_MIGRATE_GET_MAX_DOWNTIME - ProcDomainMigrateGetMaxDowntime = 387 - // ProcDomainManagedSaveGetXMLDesc is libvirt's REMOTE_PROC_DOMAIN_MANAGED_SAVE_GET_XML_DESC - ProcDomainManagedSaveGetXMLDesc = 388 - // ProcDomainManagedSaveDefineXML is libvirt's REMOTE_PROC_DOMAIN_MANAGED_SAVE_DEFINE_XML - ProcDomainManagedSaveDefineXML = 389 - // ProcDomainSetLifecycleAction is libvirt's REMOTE_PROC_DOMAIN_SET_LIFECYCLE_ACTION - ProcDomainSetLifecycleAction = 390 - - - // From consts: - // StringMax is libvirt's REMOTE_STRING_MAX - StringMax = 4194304 - // DomainListMax is libvirt's REMOTE_DOMAIN_LIST_MAX - DomainListMax = 16384 - // CpumapMax is libvirt's REMOTE_CPUMAP_MAX - CpumapMax = 2048 - // VcpuinfoMax is libvirt's REMOTE_VCPUINFO_MAX - VcpuinfoMax = 16384 - // CpumapsMax is libvirt's REMOTE_CPUMAPS_MAX - CpumapsMax = 8388608 - // IothreadInfoMax is libvirt's REMOTE_IOTHREAD_INFO_MAX - IothreadInfoMax = 16384 - // MigrateCookieMax is libvirt's REMOTE_MIGRATE_COOKIE_MAX - MigrateCookieMax = 4194304 - // NetworkListMax is libvirt's REMOTE_NETWORK_LIST_MAX - NetworkListMax = 16384 - // InterfaceListMax is libvirt's REMOTE_INTERFACE_LIST_MAX - InterfaceListMax = 16384 - // StoragePoolListMax is libvirt's REMOTE_STORAGE_POOL_LIST_MAX - StoragePoolListMax = 16384 - // StorageVolListMax is libvirt's REMOTE_STORAGE_VOL_LIST_MAX - StorageVolListMax = 16384 - // NodeDeviceListMax is libvirt's REMOTE_NODE_DEVICE_LIST_MAX - NodeDeviceListMax = 65536 - // NodeDeviceCapsListMax is libvirt's REMOTE_NODE_DEVICE_CAPS_LIST_MAX - NodeDeviceCapsListMax = 65536 - // NwfilterListMax is libvirt's REMOTE_NWFILTER_LIST_MAX - NwfilterListMax = 16384 - // DomainSchedulerParametersMax is libvirt's REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX - DomainSchedulerParametersMax = 16 - // DomainBlkioParametersMax is libvirt's REMOTE_DOMAIN_BLKIO_PARAMETERS_MAX - DomainBlkioParametersMax = 16 - // DomainMemoryParametersMax is libvirt's REMOTE_DOMAIN_MEMORY_PARAMETERS_MAX - DomainMemoryParametersMax = 16 - // DomainBlockIOTuneParametersMax is libvirt's REMOTE_DOMAIN_BLOCK_IO_TUNE_PARAMETERS_MAX - DomainBlockIOTuneParametersMax = 32 - // DomainNumaParametersMax is libvirt's REMOTE_DOMAIN_NUMA_PARAMETERS_MAX - DomainNumaParametersMax = 16 - // DomainPerfEventsMax is libvirt's REMOTE_DOMAIN_PERF_EVENTS_MAX - DomainPerfEventsMax = 64 - // DomainBlockCopyParametersMax is libvirt's REMOTE_DOMAIN_BLOCK_COPY_PARAMETERS_MAX - DomainBlockCopyParametersMax = 16 - // NodeCPUStatsMax is libvirt's REMOTE_NODE_CPU_STATS_MAX - NodeCPUStatsMax = 16 - // NodeMemoryStatsMax is libvirt's REMOTE_NODE_MEMORY_STATS_MAX - NodeMemoryStatsMax = 16 - // DomainBlockStatsParametersMax is libvirt's REMOTE_DOMAIN_BLOCK_STATS_PARAMETERS_MAX - DomainBlockStatsParametersMax = 16 - // NodeMaxCells is libvirt's REMOTE_NODE_MAX_CELLS - NodeMaxCells = 1024 - // AuthSaslDataMax is libvirt's REMOTE_AUTH_SASL_DATA_MAX - AuthSaslDataMax = 65536 - // AuthTypeListMax is libvirt's REMOTE_AUTH_TYPE_LIST_MAX - AuthTypeListMax = 20 - // DomainMemoryStatsMax is libvirt's REMOTE_DOMAIN_MEMORY_STATS_MAX - DomainMemoryStatsMax = 1024 - // DomainSnapshotListMax is libvirt's REMOTE_DOMAIN_SNAPSHOT_LIST_MAX - DomainSnapshotListMax = 16384 - // DomainBlockPeekBufferMax is libvirt's REMOTE_DOMAIN_BLOCK_PEEK_BUFFER_MAX - DomainBlockPeekBufferMax = 4194304 - // DomainMemoryPeekBufferMax is libvirt's REMOTE_DOMAIN_MEMORY_PEEK_BUFFER_MAX - DomainMemoryPeekBufferMax = 4194304 - // SecurityLabelListMax is libvirt's REMOTE_SECURITY_LABEL_LIST_MAX - SecurityLabelListMax = 64 - // SecretValueMax is libvirt's REMOTE_SECRET_VALUE_MAX - SecretValueMax = 65536 - // SecretListMax is libvirt's REMOTE_SECRET_LIST_MAX - SecretListMax = 16384 - // CPUBaselineMax is libvirt's REMOTE_CPU_BASELINE_MAX - CPUBaselineMax = 256 - // DomainSendKeyMax is libvirt's REMOTE_DOMAIN_SEND_KEY_MAX - DomainSendKeyMax = 16 - // DomainInterfaceParametersMax is libvirt's REMOTE_DOMAIN_INTERFACE_PARAMETERS_MAX - DomainInterfaceParametersMax = 16 - // DomainGetCPUStatsNcpusMax is libvirt's REMOTE_DOMAIN_GET_CPU_STATS_NCPUS_MAX - DomainGetCPUStatsNcpusMax = 128 - // DomainGetCPUStatsMax is libvirt's REMOTE_DOMAIN_GET_CPU_STATS_MAX - DomainGetCPUStatsMax = 2048 - // DomainDiskErrorsMax is libvirt's REMOTE_DOMAIN_DISK_ERRORS_MAX - DomainDiskErrorsMax = 256 - // NodeMemoryParametersMax is libvirt's REMOTE_NODE_MEMORY_PARAMETERS_MAX - NodeMemoryParametersMax = 64 - // DomainMigrateParamListMax is libvirt's REMOTE_DOMAIN_MIGRATE_PARAM_LIST_MAX - DomainMigrateParamListMax = 64 - // DomainJobStatsMax is libvirt's REMOTE_DOMAIN_JOB_STATS_MAX - DomainJobStatsMax = 64 - // ConnectCPUModelsMax is libvirt's REMOTE_CONNECT_CPU_MODELS_MAX - ConnectCPUModelsMax = 8192 - // DomainFsfreezeMountpointsMax is libvirt's REMOTE_DOMAIN_FSFREEZE_MOUNTPOINTS_MAX - DomainFsfreezeMountpointsMax = 256 - // NetworkDhcpLeasesMax is libvirt's REMOTE_NETWORK_DHCP_LEASES_MAX - NetworkDhcpLeasesMax = 65536 - // ConnectGetAllDomainStatsMax is libvirt's REMOTE_CONNECT_GET_ALL_DOMAIN_STATS_MAX - ConnectGetAllDomainStatsMax = 262144 - // DomainEventTunableMax is libvirt's REMOTE_DOMAIN_EVENT_TUNABLE_MAX - DomainEventTunableMax = 2048 - // DomainFsinfoMax is libvirt's REMOTE_DOMAIN_FSINFO_MAX - DomainFsinfoMax = 256 - // DomainFsinfoDisksMax is libvirt's REMOTE_DOMAIN_FSINFO_DISKS_MAX - DomainFsinfoDisksMax = 256 - // DomainInterfaceMax is libvirt's REMOTE_DOMAIN_INTERFACE_MAX - DomainInterfaceMax = 2048 - // DomainIPAddrMax is libvirt's REMOTE_DOMAIN_IP_ADDR_MAX - DomainIPAddrMax = 2048 - // DomainGuestVcpuParamsMax is libvirt's REMOTE_DOMAIN_GUEST_VCPU_PARAMS_MAX - DomainGuestVcpuParamsMax = 64 - // DomainEventGraphicsIdentityMax is libvirt's REMOTE_DOMAIN_EVENT_GRAPHICS_IDENTITY_MAX - DomainEventGraphicsIdentityMax = 20 - // Program is libvirt's REMOTE_PROGRAM - Program = 0x20008086 - // ProtocolVersion is libvirt's REMOTE_PROTOCOL_VERSION - ProtocolVersion = 1 -) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/internal/constants/constants.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/internal/constants/constants.go deleted file mode 100644 index da94c250..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/internal/constants/constants.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2016 The go-libvirt 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 constants provides shared data for the libvirt package. This file -// includes only things not generated automatically by the parser that runs on -// libvirt's remote_protocol.x file - see constants.gen.go for the generated -// definitions. -package constants - -// qemu constants -const ( - ProgramQEMU = 0x20008087 - ProgramKeepAlive = 0x6b656570 -) - -// qemu procedure identifiers -const ( - QEMUDomainMonitor = 1 - QEMUConnectDomainMonitorEventRegister = 4 - QEMUConnectDomainMonitorEventDeregister = 5 - QEMUDomainMonitorEvent = 6 -) - -const ( - // PacketLengthSize is the packet length, in bytes. - PacketLengthSize = 4 - - // HeaderSize is the packet header size, in bytes. - HeaderSize = 24 - - // UUIDSize is the length of a UUID, in bytes. - UUIDSize = 16 - - // TypedParamFieldLength is VIR_TYPED_PARAM_FIELD_LENGTH, and is the maximum - // length of the Field string in virTypedParameter structs. - TypedParamFieldLength = 80 -) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.gen.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.gen.go deleted file mode 100644 index b6aabaf1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.gen.go +++ /dev/null @@ -1,17020 +0,0 @@ -// Copyright 2017 The go-libvirt 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. - -// -// Code generated by internal/lvgen/generate.go. DO NOT EDIT. -// -// To regenerate, run 'go generate' in internal/lvgen. -// - -package libvirt - -import ( - "bytes" - "fmt" - - "github.com/davecgh/go-xdr/xdr2" - "github.com/digitalocean/go-libvirt/internal/constants" -) - -const ( - VirUUIDBuflen = 16 -) - -// -// Typedefs: -// -// OptString is libvirt's remote_string -type OptString []string -// UUID is libvirt's remote_uuid -type UUID [VirUUIDBuflen]byte -// OptDomain is libvirt's remote_domain -type OptDomain []Domain -// OptNetwork is libvirt's remote_network -type OptNetwork []Network -// OptNwfilter is libvirt's remote_nwfilter -type OptNwfilter []Nwfilter -// OptStoragePool is libvirt's remote_storage_pool -type OptStoragePool []StoragePool -// OptStorageVol is libvirt's remote_storage_vol -type OptStorageVol []StorageVol -// OptNodeDevice is libvirt's remote_node_device -type OptNodeDevice []NodeDevice -// OptSecret is libvirt's remote_secret -type OptSecret []Secret - -// -// Enums: -// -// AuthType is libvirt's remote_auth_type -type AuthType int32 -// Procedure is libvirt's remote_procedure -type Procedure int32 - -// -// Structs: -// -// Domain is libvirt's remote_nonnull_domain -type Domain struct { - Name string - UUID UUID - ID int32 -} - -// Network is libvirt's remote_nonnull_network -type Network struct { - Name string - UUID UUID -} - -// Nwfilter is libvirt's remote_nonnull_nwfilter -type Nwfilter struct { - Name string - UUID UUID -} - -// Interface is libvirt's remote_nonnull_interface -type Interface struct { - Name string - Mac string -} - -// StoragePool is libvirt's remote_nonnull_storage_pool -type StoragePool struct { - Name string - UUID UUID -} - -// StorageVol is libvirt's remote_nonnull_storage_vol -type StorageVol struct { - Pool string - Name string - Key string -} - -// NodeDevice is libvirt's remote_nonnull_node_device -type NodeDevice struct { - Name string -} - -// Secret is libvirt's remote_nonnull_secret -type Secret struct { - UUID UUID - UsageType int32 - UsageID string -} - -// DomainSnapshot is libvirt's remote_nonnull_domain_snapshot -type DomainSnapshot struct { - Name string - Dom Domain -} - -// Error is libvirt's remote_error -type Error struct { - Code int32 - OptDomain int32 - Message OptString - Level int32 - Dom OptDomain - Str1 OptString - Str2 OptString - Str3 OptString - Int1 int32 - Int2 int32 - Net OptNetwork -} - -// VcpuInfo is libvirt's remote_vcpu_info -type VcpuInfo struct { - Number uint32 - State int32 - CPUTime uint64 - CPU int32 -} - -// TypedParam is libvirt's remote_typed_param -type TypedParam struct { - Field string - Value TypedParamValue -} - -// NodeGetCPUStats is libvirt's remote_node_get_cpu_stats -type NodeGetCPUStats struct { - Field string - Value uint64 -} - -// NodeGetMemoryStats is libvirt's remote_node_get_memory_stats -type NodeGetMemoryStats struct { - Field string - Value uint64 -} - -// DomainDiskError is libvirt's remote_domain_disk_error -type DomainDiskError struct { - Disk string - Error int32 -} - -// ConnectOpenArgs is libvirt's remote_connect_open_args -type ConnectOpenArgs struct { - Name OptString - Flags ConnectFlags -} - -// ConnectSupportsFeatureArgs is libvirt's remote_connect_supports_feature_args -type ConnectSupportsFeatureArgs struct { - Feature int32 -} - -// ConnectSupportsFeatureRet is libvirt's remote_connect_supports_feature_ret -type ConnectSupportsFeatureRet struct { - Supported int32 -} - -// ConnectGetTypeRet is libvirt's remote_connect_get_type_ret -type ConnectGetTypeRet struct { - Type string -} - -// ConnectGetVersionRet is libvirt's remote_connect_get_version_ret -type ConnectGetVersionRet struct { - HvVer uint64 -} - -// ConnectGetLibVersionRet is libvirt's remote_connect_get_lib_version_ret -type ConnectGetLibVersionRet struct { - LibVer uint64 -} - -// ConnectGetHostnameRet is libvirt's remote_connect_get_hostname_ret -type ConnectGetHostnameRet struct { - Hostname string -} - -// ConnectGetSysinfoArgs is libvirt's remote_connect_get_sysinfo_args -type ConnectGetSysinfoArgs struct { - Flags uint32 -} - -// ConnectGetSysinfoRet is libvirt's remote_connect_get_sysinfo_ret -type ConnectGetSysinfoRet struct { - Sysinfo string -} - -// ConnectGetUriRet is libvirt's remote_connect_get_uri_ret -type ConnectGetUriRet struct { - Uri string -} - -// ConnectGetMaxVcpusArgs is libvirt's remote_connect_get_max_vcpus_args -type ConnectGetMaxVcpusArgs struct { - Type OptString -} - -// ConnectGetMaxVcpusRet is libvirt's remote_connect_get_max_vcpus_ret -type ConnectGetMaxVcpusRet struct { - MaxVcpus int32 -} - -// NodeGetInfoRet is libvirt's remote_node_get_info_ret -type NodeGetInfoRet struct { - Model [32]int8 - Memory uint64 - Cpus int32 - Mhz int32 - Nodes int32 - Sockets int32 - Cores int32 - Threads int32 -} - -// ConnectGetCapabilitiesRet is libvirt's remote_connect_get_capabilities_ret -type ConnectGetCapabilitiesRet struct { - Capabilities string -} - -// ConnectGetDomainCapabilitiesArgs is libvirt's remote_connect_get_domain_capabilities_args -type ConnectGetDomainCapabilitiesArgs struct { - Emulatorbin OptString - Arch OptString - Machine OptString - Virttype OptString - Flags uint32 -} - -// ConnectGetDomainCapabilitiesRet is libvirt's remote_connect_get_domain_capabilities_ret -type ConnectGetDomainCapabilitiesRet struct { - Capabilities string -} - -// NodeGetCPUStatsArgs is libvirt's remote_node_get_cpu_stats_args -type NodeGetCPUStatsArgs struct { - CPUNum int32 - Nparams int32 - Flags uint32 -} - -// NodeGetCPUStatsRet is libvirt's remote_node_get_cpu_stats_ret -type NodeGetCPUStatsRet struct { - Params []NodeGetCPUStats - Nparams int32 -} - -// NodeGetMemoryStatsArgs is libvirt's remote_node_get_memory_stats_args -type NodeGetMemoryStatsArgs struct { - Nparams int32 - CellNum int32 - Flags uint32 -} - -// NodeGetMemoryStatsRet is libvirt's remote_node_get_memory_stats_ret -type NodeGetMemoryStatsRet struct { - Params []NodeGetMemoryStats - Nparams int32 -} - -// NodeGetCellsFreeMemoryArgs is libvirt's remote_node_get_cells_free_memory_args -type NodeGetCellsFreeMemoryArgs struct { - StartCell int32 - Maxcells int32 -} - -// NodeGetCellsFreeMemoryRet is libvirt's remote_node_get_cells_free_memory_ret -type NodeGetCellsFreeMemoryRet struct { - Cells []uint64 -} - -// NodeGetFreeMemoryRet is libvirt's remote_node_get_free_memory_ret -type NodeGetFreeMemoryRet struct { - FreeMem uint64 -} - -// DomainGetSchedulerTypeArgs is libvirt's remote_domain_get_scheduler_type_args -type DomainGetSchedulerTypeArgs struct { - Dom Domain -} - -// DomainGetSchedulerTypeRet is libvirt's remote_domain_get_scheduler_type_ret -type DomainGetSchedulerTypeRet struct { - Type string - Nparams int32 -} - -// DomainGetSchedulerParametersArgs is libvirt's remote_domain_get_scheduler_parameters_args -type DomainGetSchedulerParametersArgs struct { - Dom Domain - Nparams int32 -} - -// DomainGetSchedulerParametersRet is libvirt's remote_domain_get_scheduler_parameters_ret -type DomainGetSchedulerParametersRet struct { - Params []TypedParam -} - -// DomainGetSchedulerParametersFlagsArgs is libvirt's remote_domain_get_scheduler_parameters_flags_args -type DomainGetSchedulerParametersFlagsArgs struct { - Dom Domain - Nparams int32 - Flags uint32 -} - -// DomainGetSchedulerParametersFlagsRet is libvirt's remote_domain_get_scheduler_parameters_flags_ret -type DomainGetSchedulerParametersFlagsRet struct { - Params []TypedParam -} - -// DomainSetSchedulerParametersArgs is libvirt's remote_domain_set_scheduler_parameters_args -type DomainSetSchedulerParametersArgs struct { - Dom Domain - Params []TypedParam -} - -// DomainSetSchedulerParametersFlagsArgs is libvirt's remote_domain_set_scheduler_parameters_flags_args -type DomainSetSchedulerParametersFlagsArgs struct { - Dom Domain - Params []TypedParam - Flags uint32 -} - -// DomainSetBlkioParametersArgs is libvirt's remote_domain_set_blkio_parameters_args -type DomainSetBlkioParametersArgs struct { - Dom Domain - Params []TypedParam - Flags uint32 -} - -// DomainGetBlkioParametersArgs is libvirt's remote_domain_get_blkio_parameters_args -type DomainGetBlkioParametersArgs struct { - Dom Domain - Nparams int32 - Flags uint32 -} - -// DomainGetBlkioParametersRet is libvirt's remote_domain_get_blkio_parameters_ret -type DomainGetBlkioParametersRet struct { - Params []TypedParam - Nparams int32 -} - -// DomainSetMemoryParametersArgs is libvirt's remote_domain_set_memory_parameters_args -type DomainSetMemoryParametersArgs struct { - Dom Domain - Params []TypedParam - Flags uint32 -} - -// DomainGetMemoryParametersArgs is libvirt's remote_domain_get_memory_parameters_args -type DomainGetMemoryParametersArgs struct { - Dom Domain - Nparams int32 - Flags uint32 -} - -// DomainGetMemoryParametersRet is libvirt's remote_domain_get_memory_parameters_ret -type DomainGetMemoryParametersRet struct { - Params []TypedParam - Nparams int32 -} - -// DomainBlockResizeArgs is libvirt's remote_domain_block_resize_args -type DomainBlockResizeArgs struct { - Dom Domain - Disk string - Size uint64 - Flags DomainBlockResizeFlags -} - -// DomainSetNumaParametersArgs is libvirt's remote_domain_set_numa_parameters_args -type DomainSetNumaParametersArgs struct { - Dom Domain - Params []TypedParam - Flags uint32 -} - -// DomainGetNumaParametersArgs is libvirt's remote_domain_get_numa_parameters_args -type DomainGetNumaParametersArgs struct { - Dom Domain - Nparams int32 - Flags uint32 -} - -// DomainGetNumaParametersRet is libvirt's remote_domain_get_numa_parameters_ret -type DomainGetNumaParametersRet struct { - Params []TypedParam - Nparams int32 -} - -// DomainSetPerfEventsArgs is libvirt's remote_domain_set_perf_events_args -type DomainSetPerfEventsArgs struct { - Dom Domain - Params []TypedParam - Flags DomainModificationImpact -} - -// DomainGetPerfEventsArgs is libvirt's remote_domain_get_perf_events_args -type DomainGetPerfEventsArgs struct { - Dom Domain - Flags DomainModificationImpact -} - -// DomainGetPerfEventsRet is libvirt's remote_domain_get_perf_events_ret -type DomainGetPerfEventsRet struct { - Params []TypedParam -} - -// DomainBlockStatsArgs is libvirt's remote_domain_block_stats_args -type DomainBlockStatsArgs struct { - Dom Domain - Path string -} - -// DomainBlockStatsRet is libvirt's remote_domain_block_stats_ret -type DomainBlockStatsRet struct { - RdReq int64 - RdBytes int64 - WrReq int64 - WrBytes int64 - Errs int64 -} - -// DomainBlockStatsFlagsArgs is libvirt's remote_domain_block_stats_flags_args -type DomainBlockStatsFlagsArgs struct { - Dom Domain - Path string - Nparams int32 - Flags uint32 -} - -// DomainBlockStatsFlagsRet is libvirt's remote_domain_block_stats_flags_ret -type DomainBlockStatsFlagsRet struct { - Params []TypedParam - Nparams int32 -} - -// DomainInterfaceStatsArgs is libvirt's remote_domain_interface_stats_args -type DomainInterfaceStatsArgs struct { - Dom Domain - Device string -} - -// DomainInterfaceStatsRet is libvirt's remote_domain_interface_stats_ret -type DomainInterfaceStatsRet struct { - RxBytes int64 - RxPackets int64 - RxErrs int64 - RxDrop int64 - TxBytes int64 - TxPackets int64 - TxErrs int64 - TxDrop int64 -} - -// DomainSetInterfaceParametersArgs is libvirt's remote_domain_set_interface_parameters_args -type DomainSetInterfaceParametersArgs struct { - Dom Domain - Device string - Params []TypedParam - Flags uint32 -} - -// DomainGetInterfaceParametersArgs is libvirt's remote_domain_get_interface_parameters_args -type DomainGetInterfaceParametersArgs struct { - Dom Domain - Device string - Nparams int32 - Flags DomainModificationImpact -} - -// DomainGetInterfaceParametersRet is libvirt's remote_domain_get_interface_parameters_ret -type DomainGetInterfaceParametersRet struct { - Params []TypedParam - Nparams int32 -} - -// DomainMemoryStatsArgs is libvirt's remote_domain_memory_stats_args -type DomainMemoryStatsArgs struct { - Dom Domain - MaxStats uint32 - Flags uint32 -} - -// DomainMemoryStat is libvirt's remote_domain_memory_stat -type DomainMemoryStat struct { - Tag int32 - Val uint64 -} - -// DomainMemoryStatsRet is libvirt's remote_domain_memory_stats_ret -type DomainMemoryStatsRet struct { - Stats []DomainMemoryStat -} - -// DomainBlockPeekArgs is libvirt's remote_domain_block_peek_args -type DomainBlockPeekArgs struct { - Dom Domain - Path string - Offset uint64 - Size uint32 - Flags uint32 -} - -// DomainBlockPeekRet is libvirt's remote_domain_block_peek_ret -type DomainBlockPeekRet struct { - Buffer []byte -} - -// DomainMemoryPeekArgs is libvirt's remote_domain_memory_peek_args -type DomainMemoryPeekArgs struct { - Dom Domain - Offset uint64 - Size uint32 - Flags DomainMemoryFlags -} - -// DomainMemoryPeekRet is libvirt's remote_domain_memory_peek_ret -type DomainMemoryPeekRet struct { - Buffer []byte -} - -// DomainGetBlockInfoArgs is libvirt's remote_domain_get_block_info_args -type DomainGetBlockInfoArgs struct { - Dom Domain - Path string - Flags uint32 -} - -// DomainGetBlockInfoRet is libvirt's remote_domain_get_block_info_ret -type DomainGetBlockInfoRet struct { - Allocation uint64 - Capacity uint64 - Physical uint64 -} - -// ConnectListDomainsArgs is libvirt's remote_connect_list_domains_args -type ConnectListDomainsArgs struct { - Maxids int32 -} - -// ConnectListDomainsRet is libvirt's remote_connect_list_domains_ret -type ConnectListDomainsRet struct { - Ids []int32 -} - -// ConnectNumOfDomainsRet is libvirt's remote_connect_num_of_domains_ret -type ConnectNumOfDomainsRet struct { - Num int32 -} - -// DomainCreateXMLArgs is libvirt's remote_domain_create_xml_args -type DomainCreateXMLArgs struct { - XMLDesc string - Flags DomainCreateFlags -} - -// DomainCreateXMLRet is libvirt's remote_domain_create_xml_ret -type DomainCreateXMLRet struct { - Dom Domain -} - -// DomainCreateXMLWithFilesArgs is libvirt's remote_domain_create_xml_with_files_args -type DomainCreateXMLWithFilesArgs struct { - XMLDesc string - Flags DomainCreateFlags -} - -// DomainCreateXMLWithFilesRet is libvirt's remote_domain_create_xml_with_files_ret -type DomainCreateXMLWithFilesRet struct { - Dom Domain -} - -// DomainLookupByIDArgs is libvirt's remote_domain_lookup_by_id_args -type DomainLookupByIDArgs struct { - ID int32 -} - -// DomainLookupByIDRet is libvirt's remote_domain_lookup_by_id_ret -type DomainLookupByIDRet struct { - Dom Domain -} - -// DomainLookupByUUIDArgs is libvirt's remote_domain_lookup_by_uuid_args -type DomainLookupByUUIDArgs struct { - UUID UUID -} - -// DomainLookupByUUIDRet is libvirt's remote_domain_lookup_by_uuid_ret -type DomainLookupByUUIDRet struct { - Dom Domain -} - -// DomainLookupByNameArgs is libvirt's remote_domain_lookup_by_name_args -type DomainLookupByNameArgs struct { - Name string -} - -// DomainLookupByNameRet is libvirt's remote_domain_lookup_by_name_ret -type DomainLookupByNameRet struct { - Dom Domain -} - -// DomainSuspendArgs is libvirt's remote_domain_suspend_args -type DomainSuspendArgs struct { - Dom Domain -} - -// DomainResumeArgs is libvirt's remote_domain_resume_args -type DomainResumeArgs struct { - Dom Domain -} - -// DomainPmSuspendForDurationArgs is libvirt's remote_domain_pm_suspend_for_duration_args -type DomainPmSuspendForDurationArgs struct { - Dom Domain - Target uint32 - Duration uint64 - Flags uint32 -} - -// DomainPmWakeupArgs is libvirt's remote_domain_pm_wakeup_args -type DomainPmWakeupArgs struct { - Dom Domain - Flags uint32 -} - -// DomainShutdownArgs is libvirt's remote_domain_shutdown_args -type DomainShutdownArgs struct { - Dom Domain -} - -// DomainRebootArgs is libvirt's remote_domain_reboot_args -type DomainRebootArgs struct { - Dom Domain - Flags DomainRebootFlagValues -} - -// DomainResetArgs is libvirt's remote_domain_reset_args -type DomainResetArgs struct { - Dom Domain - Flags uint32 -} - -// DomainDestroyArgs is libvirt's remote_domain_destroy_args -type DomainDestroyArgs struct { - Dom Domain -} - -// DomainDestroyFlagsArgs is libvirt's remote_domain_destroy_flags_args -type DomainDestroyFlagsArgs struct { - Dom Domain - Flags DomainDestroyFlagsValues -} - -// DomainGetOsTypeArgs is libvirt's remote_domain_get_os_type_args -type DomainGetOsTypeArgs struct { - Dom Domain -} - -// DomainGetOsTypeRet is libvirt's remote_domain_get_os_type_ret -type DomainGetOsTypeRet struct { - Type string -} - -// DomainGetMaxMemoryArgs is libvirt's remote_domain_get_max_memory_args -type DomainGetMaxMemoryArgs struct { - Dom Domain -} - -// DomainGetMaxMemoryRet is libvirt's remote_domain_get_max_memory_ret -type DomainGetMaxMemoryRet struct { - Memory uint64 -} - -// DomainSetMaxMemoryArgs is libvirt's remote_domain_set_max_memory_args -type DomainSetMaxMemoryArgs struct { - Dom Domain - Memory uint64 -} - -// DomainSetMemoryArgs is libvirt's remote_domain_set_memory_args -type DomainSetMemoryArgs struct { - Dom Domain - Memory uint64 -} - -// DomainSetMemoryFlagsArgs is libvirt's remote_domain_set_memory_flags_args -type DomainSetMemoryFlagsArgs struct { - Dom Domain - Memory uint64 - Flags uint32 -} - -// DomainSetMemoryStatsPeriodArgs is libvirt's remote_domain_set_memory_stats_period_args -type DomainSetMemoryStatsPeriodArgs struct { - Dom Domain - Period int32 - Flags DomainMemoryModFlags -} - -// DomainGetInfoArgs is libvirt's remote_domain_get_info_args -type DomainGetInfoArgs struct { - Dom Domain -} - -// DomainGetInfoRet is libvirt's remote_domain_get_info_ret -type DomainGetInfoRet struct { - State uint8 - MaxMem uint64 - Memory uint64 - NrVirtCPU uint16 - CPUTime uint64 -} - -// DomainSaveArgs is libvirt's remote_domain_save_args -type DomainSaveArgs struct { - Dom Domain - To string -} - -// DomainSaveFlagsArgs is libvirt's remote_domain_save_flags_args -type DomainSaveFlagsArgs struct { - Dom Domain - To string - Dxml OptString - Flags uint32 -} - -// DomainRestoreArgs is libvirt's remote_domain_restore_args -type DomainRestoreArgs struct { - From string -} - -// DomainRestoreFlagsArgs is libvirt's remote_domain_restore_flags_args -type DomainRestoreFlagsArgs struct { - From string - Dxml OptString - Flags uint32 -} - -// DomainSaveImageGetXMLDescArgs is libvirt's remote_domain_save_image_get_xml_desc_args -type DomainSaveImageGetXMLDescArgs struct { - File string - Flags uint32 -} - -// DomainSaveImageGetXMLDescRet is libvirt's remote_domain_save_image_get_xml_desc_ret -type DomainSaveImageGetXMLDescRet struct { - XML string -} - -// DomainSaveImageDefineXMLArgs is libvirt's remote_domain_save_image_define_xml_args -type DomainSaveImageDefineXMLArgs struct { - File string - Dxml string - Flags uint32 -} - -// DomainCoreDumpArgs is libvirt's remote_domain_core_dump_args -type DomainCoreDumpArgs struct { - Dom Domain - To string - Flags DomainCoreDumpFlags -} - -// DomainCoreDumpWithFormatArgs is libvirt's remote_domain_core_dump_with_format_args -type DomainCoreDumpWithFormatArgs struct { - Dom Domain - To string - Dumpformat uint32 - Flags DomainCoreDumpFlags -} - -// DomainScreenshotArgs is libvirt's remote_domain_screenshot_args -type DomainScreenshotArgs struct { - Dom Domain - Screen uint32 - Flags uint32 -} - -// DomainScreenshotRet is libvirt's remote_domain_screenshot_ret -type DomainScreenshotRet struct { - Mime OptString -} - -// DomainGetXMLDescArgs is libvirt's remote_domain_get_xml_desc_args -type DomainGetXMLDescArgs struct { - Dom Domain - Flags DomainXMLFlags -} - -// DomainGetXMLDescRet is libvirt's remote_domain_get_xml_desc_ret -type DomainGetXMLDescRet struct { - XML string -} - -// DomainMigratePrepareArgs is libvirt's remote_domain_migrate_prepare_args -type DomainMigratePrepareArgs struct { - UriIn OptString - Flags uint64 - Dname OptString - Resource uint64 -} - -// DomainMigratePrepareRet is libvirt's remote_domain_migrate_prepare_ret -type DomainMigratePrepareRet struct { - Cookie []byte - UriOut OptString -} - -// DomainMigratePerformArgs is libvirt's remote_domain_migrate_perform_args -type DomainMigratePerformArgs struct { - Dom Domain - Cookie []byte - Uri string - Flags uint64 - Dname OptString - Resource uint64 -} - -// DomainMigrateFinishArgs is libvirt's remote_domain_migrate_finish_args -type DomainMigrateFinishArgs struct { - Dname string - Cookie []byte - Uri string - Flags uint64 -} - -// DomainMigrateFinishRet is libvirt's remote_domain_migrate_finish_ret -type DomainMigrateFinishRet struct { - Ddom Domain -} - -// DomainMigratePrepare2Args is libvirt's remote_domain_migrate_prepare2_args -type DomainMigratePrepare2Args struct { - UriIn OptString - Flags uint64 - Dname OptString - Resource uint64 - DomXML string -} - -// DomainMigratePrepare2Ret is libvirt's remote_domain_migrate_prepare2_ret -type DomainMigratePrepare2Ret struct { - Cookie []byte - UriOut OptString -} - -// DomainMigrateFinish2Args is libvirt's remote_domain_migrate_finish2_args -type DomainMigrateFinish2Args struct { - Dname string - Cookie []byte - Uri string - Flags uint64 - Retcode int32 -} - -// DomainMigrateFinish2Ret is libvirt's remote_domain_migrate_finish2_ret -type DomainMigrateFinish2Ret struct { - Ddom Domain -} - -// ConnectListDefinedDomainsArgs is libvirt's remote_connect_list_defined_domains_args -type ConnectListDefinedDomainsArgs struct { - Maxnames int32 -} - -// ConnectListDefinedDomainsRet is libvirt's remote_connect_list_defined_domains_ret -type ConnectListDefinedDomainsRet struct { - Names []string -} - -// ConnectNumOfDefinedDomainsRet is libvirt's remote_connect_num_of_defined_domains_ret -type ConnectNumOfDefinedDomainsRet struct { - Num int32 -} - -// DomainCreateArgs is libvirt's remote_domain_create_args -type DomainCreateArgs struct { - Dom Domain -} - -// DomainCreateWithFlagsArgs is libvirt's remote_domain_create_with_flags_args -type DomainCreateWithFlagsArgs struct { - Dom Domain - Flags uint32 -} - -// DomainCreateWithFlagsRet is libvirt's remote_domain_create_with_flags_ret -type DomainCreateWithFlagsRet struct { - Dom Domain -} - -// DomainCreateWithFilesArgs is libvirt's remote_domain_create_with_files_args -type DomainCreateWithFilesArgs struct { - Dom Domain - Flags DomainCreateFlags -} - -// DomainCreateWithFilesRet is libvirt's remote_domain_create_with_files_ret -type DomainCreateWithFilesRet struct { - Dom Domain -} - -// DomainDefineXMLArgs is libvirt's remote_domain_define_xml_args -type DomainDefineXMLArgs struct { - XML string -} - -// DomainDefineXMLRet is libvirt's remote_domain_define_xml_ret -type DomainDefineXMLRet struct { - Dom Domain -} - -// DomainDefineXMLFlagsArgs is libvirt's remote_domain_define_xml_flags_args -type DomainDefineXMLFlagsArgs struct { - XML string - Flags DomainDefineFlags -} - -// DomainDefineXMLFlagsRet is libvirt's remote_domain_define_xml_flags_ret -type DomainDefineXMLFlagsRet struct { - Dom Domain -} - -// DomainUndefineArgs is libvirt's remote_domain_undefine_args -type DomainUndefineArgs struct { - Dom Domain -} - -// DomainUndefineFlagsArgs is libvirt's remote_domain_undefine_flags_args -type DomainUndefineFlagsArgs struct { - Dom Domain - Flags DomainUndefineFlagsValues -} - -// DomainInjectNmiArgs is libvirt's remote_domain_inject_nmi_args -type DomainInjectNmiArgs struct { - Dom Domain - Flags uint32 -} - -// DomainSendKeyArgs is libvirt's remote_domain_send_key_args -type DomainSendKeyArgs struct { - Dom Domain - Codeset uint32 - Holdtime uint32 - Keycodes []uint32 - Flags uint32 -} - -// DomainSendProcessSignalArgs is libvirt's remote_domain_send_process_signal_args -type DomainSendProcessSignalArgs struct { - Dom Domain - PidValue int64 - Signum uint32 - Flags uint32 -} - -// DomainSetVcpusArgs is libvirt's remote_domain_set_vcpus_args -type DomainSetVcpusArgs struct { - Dom Domain - Nvcpus uint32 -} - -// DomainSetVcpusFlagsArgs is libvirt's remote_domain_set_vcpus_flags_args -type DomainSetVcpusFlagsArgs struct { - Dom Domain - Nvcpus uint32 - Flags uint32 -} - -// DomainGetVcpusFlagsArgs is libvirt's remote_domain_get_vcpus_flags_args -type DomainGetVcpusFlagsArgs struct { - Dom Domain - Flags uint32 -} - -// DomainGetVcpusFlagsRet is libvirt's remote_domain_get_vcpus_flags_ret -type DomainGetVcpusFlagsRet struct { - Num int32 -} - -// DomainPinVcpuArgs is libvirt's remote_domain_pin_vcpu_args -type DomainPinVcpuArgs struct { - Dom Domain - Vcpu uint32 - Cpumap []byte -} - -// DomainPinVcpuFlagsArgs is libvirt's remote_domain_pin_vcpu_flags_args -type DomainPinVcpuFlagsArgs struct { - Dom Domain - Vcpu uint32 - Cpumap []byte - Flags uint32 -} - -// DomainGetVcpuPinInfoArgs is libvirt's remote_domain_get_vcpu_pin_info_args -type DomainGetVcpuPinInfoArgs struct { - Dom Domain - Ncpumaps int32 - Maplen int32 - Flags uint32 -} - -// DomainGetVcpuPinInfoRet is libvirt's remote_domain_get_vcpu_pin_info_ret -type DomainGetVcpuPinInfoRet struct { - Cpumaps []byte - Num int32 -} - -// DomainPinEmulatorArgs is libvirt's remote_domain_pin_emulator_args -type DomainPinEmulatorArgs struct { - Dom Domain - Cpumap []byte - Flags DomainModificationImpact -} - -// DomainGetEmulatorPinInfoArgs is libvirt's remote_domain_get_emulator_pin_info_args -type DomainGetEmulatorPinInfoArgs struct { - Dom Domain - Maplen int32 - Flags DomainModificationImpact -} - -// DomainGetEmulatorPinInfoRet is libvirt's remote_domain_get_emulator_pin_info_ret -type DomainGetEmulatorPinInfoRet struct { - Cpumaps []byte - Ret int32 -} - -// DomainGetVcpusArgs is libvirt's remote_domain_get_vcpus_args -type DomainGetVcpusArgs struct { - Dom Domain - Maxinfo int32 - Maplen int32 -} - -// DomainGetVcpusRet is libvirt's remote_domain_get_vcpus_ret -type DomainGetVcpusRet struct { - Info []VcpuInfo - Cpumaps []byte -} - -// DomainGetMaxVcpusArgs is libvirt's remote_domain_get_max_vcpus_args -type DomainGetMaxVcpusArgs struct { - Dom Domain -} - -// DomainGetMaxVcpusRet is libvirt's remote_domain_get_max_vcpus_ret -type DomainGetMaxVcpusRet struct { - Num int32 -} - -// DomainIothreadInfo is libvirt's remote_domain_iothread_info -type DomainIothreadInfo struct { - IothreadID uint32 - Cpumap []byte -} - -// DomainGetIothreadInfoArgs is libvirt's remote_domain_get_iothread_info_args -type DomainGetIothreadInfoArgs struct { - Dom Domain - Flags DomainModificationImpact -} - -// DomainGetIothreadInfoRet is libvirt's remote_domain_get_iothread_info_ret -type DomainGetIothreadInfoRet struct { - Info []DomainIothreadInfo - Ret uint32 -} - -// DomainPinIothreadArgs is libvirt's remote_domain_pin_iothread_args -type DomainPinIothreadArgs struct { - Dom Domain - IothreadsID uint32 - Cpumap []byte - Flags DomainModificationImpact -} - -// DomainAddIothreadArgs is libvirt's remote_domain_add_iothread_args -type DomainAddIothreadArgs struct { - Dom Domain - IothreadID uint32 - Flags DomainModificationImpact -} - -// DomainDelIothreadArgs is libvirt's remote_domain_del_iothread_args -type DomainDelIothreadArgs struct { - Dom Domain - IothreadID uint32 - Flags DomainModificationImpact -} - -// DomainGetSecurityLabelArgs is libvirt's remote_domain_get_security_label_args -type DomainGetSecurityLabelArgs struct { - Dom Domain -} - -// DomainGetSecurityLabelRet is libvirt's remote_domain_get_security_label_ret -type DomainGetSecurityLabelRet struct { - Label []int8 - Enforcing int32 -} - -// DomainGetSecurityLabelListArgs is libvirt's remote_domain_get_security_label_list_args -type DomainGetSecurityLabelListArgs struct { - Dom Domain -} - -// DomainGetSecurityLabelListRet is libvirt's remote_domain_get_security_label_list_ret -type DomainGetSecurityLabelListRet struct { - Labels []DomainGetSecurityLabelRet - Ret int32 -} - -// NodeGetSecurityModelRet is libvirt's remote_node_get_security_model_ret -type NodeGetSecurityModelRet struct { - Model []int8 - Doi []int8 -} - -// DomainAttachDeviceArgs is libvirt's remote_domain_attach_device_args -type DomainAttachDeviceArgs struct { - Dom Domain - XML string -} - -// DomainAttachDeviceFlagsArgs is libvirt's remote_domain_attach_device_flags_args -type DomainAttachDeviceFlagsArgs struct { - Dom Domain - XML string - Flags uint32 -} - -// DomainDetachDeviceArgs is libvirt's remote_domain_detach_device_args -type DomainDetachDeviceArgs struct { - Dom Domain - XML string -} - -// DomainDetachDeviceFlagsArgs is libvirt's remote_domain_detach_device_flags_args -type DomainDetachDeviceFlagsArgs struct { - Dom Domain - XML string - Flags uint32 -} - -// DomainUpdateDeviceFlagsArgs is libvirt's remote_domain_update_device_flags_args -type DomainUpdateDeviceFlagsArgs struct { - Dom Domain - XML string - Flags uint32 -} - -// DomainGetAutostartArgs is libvirt's remote_domain_get_autostart_args -type DomainGetAutostartArgs struct { - Dom Domain -} - -// DomainGetAutostartRet is libvirt's remote_domain_get_autostart_ret -type DomainGetAutostartRet struct { - Autostart int32 -} - -// DomainSetAutostartArgs is libvirt's remote_domain_set_autostart_args -type DomainSetAutostartArgs struct { - Dom Domain - Autostart int32 -} - -// DomainSetMetadataArgs is libvirt's remote_domain_set_metadata_args -type DomainSetMetadataArgs struct { - Dom Domain - Type int32 - Metadata OptString - Key OptString - Uri OptString - Flags DomainModificationImpact -} - -// DomainGetMetadataArgs is libvirt's remote_domain_get_metadata_args -type DomainGetMetadataArgs struct { - Dom Domain - Type int32 - Uri OptString - Flags DomainModificationImpact -} - -// DomainGetMetadataRet is libvirt's remote_domain_get_metadata_ret -type DomainGetMetadataRet struct { - Metadata string -} - -// DomainBlockJobAbortArgs is libvirt's remote_domain_block_job_abort_args -type DomainBlockJobAbortArgs struct { - Dom Domain - Path string - Flags DomainBlockJobAbortFlags -} - -// DomainGetBlockJobInfoArgs is libvirt's remote_domain_get_block_job_info_args -type DomainGetBlockJobInfoArgs struct { - Dom Domain - Path string - Flags uint32 -} - -// DomainGetBlockJobInfoRet is libvirt's remote_domain_get_block_job_info_ret -type DomainGetBlockJobInfoRet struct { - Found int32 - Type int32 - Bandwidth uint64 - Cur uint64 - End uint64 -} - -// DomainBlockJobSetSpeedArgs is libvirt's remote_domain_block_job_set_speed_args -type DomainBlockJobSetSpeedArgs struct { - Dom Domain - Path string - Bandwidth uint64 - Flags DomainBlockJobSetSpeedFlags -} - -// DomainBlockPullArgs is libvirt's remote_domain_block_pull_args -type DomainBlockPullArgs struct { - Dom Domain - Path string - Bandwidth uint64 - Flags DomainBlockPullFlags -} - -// DomainBlockRebaseArgs is libvirt's remote_domain_block_rebase_args -type DomainBlockRebaseArgs struct { - Dom Domain - Path string - Base OptString - Bandwidth uint64 - Flags DomainBlockRebaseFlags -} - -// DomainBlockCopyArgs is libvirt's remote_domain_block_copy_args -type DomainBlockCopyArgs struct { - Dom Domain - Path string - Destxml string - Params []TypedParam - Flags DomainBlockCopyFlags -} - -// DomainBlockCommitArgs is libvirt's remote_domain_block_commit_args -type DomainBlockCommitArgs struct { - Dom Domain - Disk string - Base OptString - Top OptString - Bandwidth uint64 - Flags DomainBlockCommitFlags -} - -// DomainSetBlockIOTuneArgs is libvirt's remote_domain_set_block_io_tune_args -type DomainSetBlockIOTuneArgs struct { - Dom Domain - Disk string - Params []TypedParam - Flags uint32 -} - -// DomainGetBlockIOTuneArgs is libvirt's remote_domain_get_block_io_tune_args -type DomainGetBlockIOTuneArgs struct { - Dom Domain - Disk OptString - Nparams int32 - Flags uint32 -} - -// DomainGetBlockIOTuneRet is libvirt's remote_domain_get_block_io_tune_ret -type DomainGetBlockIOTuneRet struct { - Params []TypedParam - Nparams int32 -} - -// DomainGetCPUStatsArgs is libvirt's remote_domain_get_cpu_stats_args -type DomainGetCPUStatsArgs struct { - Dom Domain - Nparams uint32 - StartCPU int32 - Ncpus uint32 - Flags TypedParameterFlags -} - -// DomainGetCPUStatsRet is libvirt's remote_domain_get_cpu_stats_ret -type DomainGetCPUStatsRet struct { - Params []TypedParam - Nparams int32 -} - -// DomainGetHostnameArgs is libvirt's remote_domain_get_hostname_args -type DomainGetHostnameArgs struct { - Dom Domain - Flags uint32 -} - -// DomainGetHostnameRet is libvirt's remote_domain_get_hostname_ret -type DomainGetHostnameRet struct { - Hostname string -} - -// ConnectNumOfNetworksRet is libvirt's remote_connect_num_of_networks_ret -type ConnectNumOfNetworksRet struct { - Num int32 -} - -// ConnectListNetworksArgs is libvirt's remote_connect_list_networks_args -type ConnectListNetworksArgs struct { - Maxnames int32 -} - -// ConnectListNetworksRet is libvirt's remote_connect_list_networks_ret -type ConnectListNetworksRet struct { - Names []string -} - -// ConnectNumOfDefinedNetworksRet is libvirt's remote_connect_num_of_defined_networks_ret -type ConnectNumOfDefinedNetworksRet struct { - Num int32 -} - -// ConnectListDefinedNetworksArgs is libvirt's remote_connect_list_defined_networks_args -type ConnectListDefinedNetworksArgs struct { - Maxnames int32 -} - -// ConnectListDefinedNetworksRet is libvirt's remote_connect_list_defined_networks_ret -type ConnectListDefinedNetworksRet struct { - Names []string -} - -// NetworkLookupByUUIDArgs is libvirt's remote_network_lookup_by_uuid_args -type NetworkLookupByUUIDArgs struct { - UUID UUID -} - -// NetworkLookupByUUIDRet is libvirt's remote_network_lookup_by_uuid_ret -type NetworkLookupByUUIDRet struct { - Net Network -} - -// NetworkLookupByNameArgs is libvirt's remote_network_lookup_by_name_args -type NetworkLookupByNameArgs struct { - Name string -} - -// NetworkLookupByNameRet is libvirt's remote_network_lookup_by_name_ret -type NetworkLookupByNameRet struct { - Net Network -} - -// NetworkCreateXMLArgs is libvirt's remote_network_create_xml_args -type NetworkCreateXMLArgs struct { - XML string -} - -// NetworkCreateXMLRet is libvirt's remote_network_create_xml_ret -type NetworkCreateXMLRet struct { - Net Network -} - -// NetworkDefineXMLArgs is libvirt's remote_network_define_xml_args -type NetworkDefineXMLArgs struct { - XML string -} - -// NetworkDefineXMLRet is libvirt's remote_network_define_xml_ret -type NetworkDefineXMLRet struct { - Net Network -} - -// NetworkUndefineArgs is libvirt's remote_network_undefine_args -type NetworkUndefineArgs struct { - Net Network -} - -// NetworkUpdateArgs is libvirt's remote_network_update_args -type NetworkUpdateArgs struct { - Net Network - Command uint32 - Section uint32 - ParentIndex int32 - XML string - Flags NetworkUpdateFlags -} - -// NetworkCreateArgs is libvirt's remote_network_create_args -type NetworkCreateArgs struct { - Net Network -} - -// NetworkDestroyArgs is libvirt's remote_network_destroy_args -type NetworkDestroyArgs struct { - Net Network -} - -// NetworkGetXMLDescArgs is libvirt's remote_network_get_xml_desc_args -type NetworkGetXMLDescArgs struct { - Net Network - Flags uint32 -} - -// NetworkGetXMLDescRet is libvirt's remote_network_get_xml_desc_ret -type NetworkGetXMLDescRet struct { - XML string -} - -// NetworkGetBridgeNameArgs is libvirt's remote_network_get_bridge_name_args -type NetworkGetBridgeNameArgs struct { - Net Network -} - -// NetworkGetBridgeNameRet is libvirt's remote_network_get_bridge_name_ret -type NetworkGetBridgeNameRet struct { - Name string -} - -// NetworkGetAutostartArgs is libvirt's remote_network_get_autostart_args -type NetworkGetAutostartArgs struct { - Net Network -} - -// NetworkGetAutostartRet is libvirt's remote_network_get_autostart_ret -type NetworkGetAutostartRet struct { - Autostart int32 -} - -// NetworkSetAutostartArgs is libvirt's remote_network_set_autostart_args -type NetworkSetAutostartArgs struct { - Net Network - Autostart int32 -} - -// ConnectNumOfNwfiltersRet is libvirt's remote_connect_num_of_nwfilters_ret -type ConnectNumOfNwfiltersRet struct { - Num int32 -} - -// ConnectListNwfiltersArgs is libvirt's remote_connect_list_nwfilters_args -type ConnectListNwfiltersArgs struct { - Maxnames int32 -} - -// ConnectListNwfiltersRet is libvirt's remote_connect_list_nwfilters_ret -type ConnectListNwfiltersRet struct { - Names []string -} - -// NwfilterLookupByUUIDArgs is libvirt's remote_nwfilter_lookup_by_uuid_args -type NwfilterLookupByUUIDArgs struct { - UUID UUID -} - -// NwfilterLookupByUUIDRet is libvirt's remote_nwfilter_lookup_by_uuid_ret -type NwfilterLookupByUUIDRet struct { - OptNwfilter Nwfilter -} - -// NwfilterLookupByNameArgs is libvirt's remote_nwfilter_lookup_by_name_args -type NwfilterLookupByNameArgs struct { - Name string -} - -// NwfilterLookupByNameRet is libvirt's remote_nwfilter_lookup_by_name_ret -type NwfilterLookupByNameRet struct { - OptNwfilter Nwfilter -} - -// NwfilterDefineXMLArgs is libvirt's remote_nwfilter_define_xml_args -type NwfilterDefineXMLArgs struct { - XML string -} - -// NwfilterDefineXMLRet is libvirt's remote_nwfilter_define_xml_ret -type NwfilterDefineXMLRet struct { - OptNwfilter Nwfilter -} - -// NwfilterUndefineArgs is libvirt's remote_nwfilter_undefine_args -type NwfilterUndefineArgs struct { - OptNwfilter Nwfilter -} - -// NwfilterGetXMLDescArgs is libvirt's remote_nwfilter_get_xml_desc_args -type NwfilterGetXMLDescArgs struct { - OptNwfilter Nwfilter - Flags uint32 -} - -// NwfilterGetXMLDescRet is libvirt's remote_nwfilter_get_xml_desc_ret -type NwfilterGetXMLDescRet struct { - XML string -} - -// ConnectNumOfInterfacesRet is libvirt's remote_connect_num_of_interfaces_ret -type ConnectNumOfInterfacesRet struct { - Num int32 -} - -// ConnectListInterfacesArgs is libvirt's remote_connect_list_interfaces_args -type ConnectListInterfacesArgs struct { - Maxnames int32 -} - -// ConnectListInterfacesRet is libvirt's remote_connect_list_interfaces_ret -type ConnectListInterfacesRet struct { - Names []string -} - -// ConnectNumOfDefinedInterfacesRet is libvirt's remote_connect_num_of_defined_interfaces_ret -type ConnectNumOfDefinedInterfacesRet struct { - Num int32 -} - -// ConnectListDefinedInterfacesArgs is libvirt's remote_connect_list_defined_interfaces_args -type ConnectListDefinedInterfacesArgs struct { - Maxnames int32 -} - -// ConnectListDefinedInterfacesRet is libvirt's remote_connect_list_defined_interfaces_ret -type ConnectListDefinedInterfacesRet struct { - Names []string -} - -// InterfaceLookupByNameArgs is libvirt's remote_interface_lookup_by_name_args -type InterfaceLookupByNameArgs struct { - Name string -} - -// InterfaceLookupByNameRet is libvirt's remote_interface_lookup_by_name_ret -type InterfaceLookupByNameRet struct { - Iface Interface -} - -// InterfaceLookupByMacStringArgs is libvirt's remote_interface_lookup_by_mac_string_args -type InterfaceLookupByMacStringArgs struct { - Mac string -} - -// InterfaceLookupByMacStringRet is libvirt's remote_interface_lookup_by_mac_string_ret -type InterfaceLookupByMacStringRet struct { - Iface Interface -} - -// InterfaceGetXMLDescArgs is libvirt's remote_interface_get_xml_desc_args -type InterfaceGetXMLDescArgs struct { - Iface Interface - Flags uint32 -} - -// InterfaceGetXMLDescRet is libvirt's remote_interface_get_xml_desc_ret -type InterfaceGetXMLDescRet struct { - XML string -} - -// InterfaceDefineXMLArgs is libvirt's remote_interface_define_xml_args -type InterfaceDefineXMLArgs struct { - XML string - Flags uint32 -} - -// InterfaceDefineXMLRet is libvirt's remote_interface_define_xml_ret -type InterfaceDefineXMLRet struct { - Iface Interface -} - -// InterfaceUndefineArgs is libvirt's remote_interface_undefine_args -type InterfaceUndefineArgs struct { - Iface Interface -} - -// InterfaceCreateArgs is libvirt's remote_interface_create_args -type InterfaceCreateArgs struct { - Iface Interface - Flags uint32 -} - -// InterfaceDestroyArgs is libvirt's remote_interface_destroy_args -type InterfaceDestroyArgs struct { - Iface Interface - Flags uint32 -} - -// InterfaceChangeBeginArgs is libvirt's remote_interface_change_begin_args -type InterfaceChangeBeginArgs struct { - Flags uint32 -} - -// InterfaceChangeCommitArgs is libvirt's remote_interface_change_commit_args -type InterfaceChangeCommitArgs struct { - Flags uint32 -} - -// InterfaceChangeRollbackArgs is libvirt's remote_interface_change_rollback_args -type InterfaceChangeRollbackArgs struct { - Flags uint32 -} - -// AuthListRet is libvirt's remote_auth_list_ret -type AuthListRet struct { - Types []AuthType -} - -// AuthSaslInitRet is libvirt's remote_auth_sasl_init_ret -type AuthSaslInitRet struct { - Mechlist string -} - -// AuthSaslStartArgs is libvirt's remote_auth_sasl_start_args -type AuthSaslStartArgs struct { - Mech string - Nil int32 - Data []int8 -} - -// AuthSaslStartRet is libvirt's remote_auth_sasl_start_ret -type AuthSaslStartRet struct { - Complete int32 - Nil int32 - Data []int8 -} - -// AuthSaslStepArgs is libvirt's remote_auth_sasl_step_args -type AuthSaslStepArgs struct { - Nil int32 - Data []int8 -} - -// AuthSaslStepRet is libvirt's remote_auth_sasl_step_ret -type AuthSaslStepRet struct { - Complete int32 - Nil int32 - Data []int8 -} - -// AuthPolkitRet is libvirt's remote_auth_polkit_ret -type AuthPolkitRet struct { - Complete int32 -} - -// ConnectNumOfStoragePoolsRet is libvirt's remote_connect_num_of_storage_pools_ret -type ConnectNumOfStoragePoolsRet struct { - Num int32 -} - -// ConnectListStoragePoolsArgs is libvirt's remote_connect_list_storage_pools_args -type ConnectListStoragePoolsArgs struct { - Maxnames int32 -} - -// ConnectListStoragePoolsRet is libvirt's remote_connect_list_storage_pools_ret -type ConnectListStoragePoolsRet struct { - Names []string -} - -// ConnectNumOfDefinedStoragePoolsRet is libvirt's remote_connect_num_of_defined_storage_pools_ret -type ConnectNumOfDefinedStoragePoolsRet struct { - Num int32 -} - -// ConnectListDefinedStoragePoolsArgs is libvirt's remote_connect_list_defined_storage_pools_args -type ConnectListDefinedStoragePoolsArgs struct { - Maxnames int32 -} - -// ConnectListDefinedStoragePoolsRet is libvirt's remote_connect_list_defined_storage_pools_ret -type ConnectListDefinedStoragePoolsRet struct { - Names []string -} - -// ConnectFindStoragePoolSourcesArgs is libvirt's remote_connect_find_storage_pool_sources_args -type ConnectFindStoragePoolSourcesArgs struct { - Type string - SrcSpec OptString - Flags uint32 -} - -// ConnectFindStoragePoolSourcesRet is libvirt's remote_connect_find_storage_pool_sources_ret -type ConnectFindStoragePoolSourcesRet struct { - XML string -} - -// StoragePoolLookupByUUIDArgs is libvirt's remote_storage_pool_lookup_by_uuid_args -type StoragePoolLookupByUUIDArgs struct { - UUID UUID -} - -// StoragePoolLookupByUUIDRet is libvirt's remote_storage_pool_lookup_by_uuid_ret -type StoragePoolLookupByUUIDRet struct { - Pool StoragePool -} - -// StoragePoolLookupByNameArgs is libvirt's remote_storage_pool_lookup_by_name_args -type StoragePoolLookupByNameArgs struct { - Name string -} - -// StoragePoolLookupByNameRet is libvirt's remote_storage_pool_lookup_by_name_ret -type StoragePoolLookupByNameRet struct { - Pool StoragePool -} - -// StoragePoolLookupByVolumeArgs is libvirt's remote_storage_pool_lookup_by_volume_args -type StoragePoolLookupByVolumeArgs struct { - Vol StorageVol -} - -// StoragePoolLookupByVolumeRet is libvirt's remote_storage_pool_lookup_by_volume_ret -type StoragePoolLookupByVolumeRet struct { - Pool StoragePool -} - -// StoragePoolCreateXMLArgs is libvirt's remote_storage_pool_create_xml_args -type StoragePoolCreateXMLArgs struct { - XML string - Flags StoragePoolCreateFlags -} - -// StoragePoolCreateXMLRet is libvirt's remote_storage_pool_create_xml_ret -type StoragePoolCreateXMLRet struct { - Pool StoragePool -} - -// StoragePoolDefineXMLArgs is libvirt's remote_storage_pool_define_xml_args -type StoragePoolDefineXMLArgs struct { - XML string - Flags uint32 -} - -// StoragePoolDefineXMLRet is libvirt's remote_storage_pool_define_xml_ret -type StoragePoolDefineXMLRet struct { - Pool StoragePool -} - -// StoragePoolBuildArgs is libvirt's remote_storage_pool_build_args -type StoragePoolBuildArgs struct { - Pool StoragePool - Flags StoragePoolBuildFlags -} - -// StoragePoolUndefineArgs is libvirt's remote_storage_pool_undefine_args -type StoragePoolUndefineArgs struct { - Pool StoragePool -} - -// StoragePoolCreateArgs is libvirt's remote_storage_pool_create_args -type StoragePoolCreateArgs struct { - Pool StoragePool - Flags StoragePoolCreateFlags -} - -// StoragePoolDestroyArgs is libvirt's remote_storage_pool_destroy_args -type StoragePoolDestroyArgs struct { - Pool StoragePool -} - -// StoragePoolDeleteArgs is libvirt's remote_storage_pool_delete_args -type StoragePoolDeleteArgs struct { - Pool StoragePool - Flags StoragePoolDeleteFlags -} - -// StoragePoolRefreshArgs is libvirt's remote_storage_pool_refresh_args -type StoragePoolRefreshArgs struct { - Pool StoragePool - Flags uint32 -} - -// StoragePoolGetXMLDescArgs is libvirt's remote_storage_pool_get_xml_desc_args -type StoragePoolGetXMLDescArgs struct { - Pool StoragePool - Flags StorageXMLFlags -} - -// StoragePoolGetXMLDescRet is libvirt's remote_storage_pool_get_xml_desc_ret -type StoragePoolGetXMLDescRet struct { - XML string -} - -// StoragePoolGetInfoArgs is libvirt's remote_storage_pool_get_info_args -type StoragePoolGetInfoArgs struct { - Pool StoragePool -} - -// StoragePoolGetInfoRet is libvirt's remote_storage_pool_get_info_ret -type StoragePoolGetInfoRet struct { - State uint8 - Capacity uint64 - Allocation uint64 - Available uint64 -} - -// StoragePoolGetAutostartArgs is libvirt's remote_storage_pool_get_autostart_args -type StoragePoolGetAutostartArgs struct { - Pool StoragePool -} - -// StoragePoolGetAutostartRet is libvirt's remote_storage_pool_get_autostart_ret -type StoragePoolGetAutostartRet struct { - Autostart int32 -} - -// StoragePoolSetAutostartArgs is libvirt's remote_storage_pool_set_autostart_args -type StoragePoolSetAutostartArgs struct { - Pool StoragePool - Autostart int32 -} - -// StoragePoolNumOfVolumesArgs is libvirt's remote_storage_pool_num_of_volumes_args -type StoragePoolNumOfVolumesArgs struct { - Pool StoragePool -} - -// StoragePoolNumOfVolumesRet is libvirt's remote_storage_pool_num_of_volumes_ret -type StoragePoolNumOfVolumesRet struct { - Num int32 -} - -// StoragePoolListVolumesArgs is libvirt's remote_storage_pool_list_volumes_args -type StoragePoolListVolumesArgs struct { - Pool StoragePool - Maxnames int32 -} - -// StoragePoolListVolumesRet is libvirt's remote_storage_pool_list_volumes_ret -type StoragePoolListVolumesRet struct { - Names []string -} - -// StorageVolLookupByNameArgs is libvirt's remote_storage_vol_lookup_by_name_args -type StorageVolLookupByNameArgs struct { - Pool StoragePool - Name string -} - -// StorageVolLookupByNameRet is libvirt's remote_storage_vol_lookup_by_name_ret -type StorageVolLookupByNameRet struct { - Vol StorageVol -} - -// StorageVolLookupByKeyArgs is libvirt's remote_storage_vol_lookup_by_key_args -type StorageVolLookupByKeyArgs struct { - Key string -} - -// StorageVolLookupByKeyRet is libvirt's remote_storage_vol_lookup_by_key_ret -type StorageVolLookupByKeyRet struct { - Vol StorageVol -} - -// StorageVolLookupByPathArgs is libvirt's remote_storage_vol_lookup_by_path_args -type StorageVolLookupByPathArgs struct { - Path string -} - -// StorageVolLookupByPathRet is libvirt's remote_storage_vol_lookup_by_path_ret -type StorageVolLookupByPathRet struct { - Vol StorageVol -} - -// StorageVolCreateXMLArgs is libvirt's remote_storage_vol_create_xml_args -type StorageVolCreateXMLArgs struct { - Pool StoragePool - XML string - Flags StorageVolCreateFlags -} - -// StorageVolCreateXMLRet is libvirt's remote_storage_vol_create_xml_ret -type StorageVolCreateXMLRet struct { - Vol StorageVol -} - -// StorageVolCreateXMLFromArgs is libvirt's remote_storage_vol_create_xml_from_args -type StorageVolCreateXMLFromArgs struct { - Pool StoragePool - XML string - Clonevol StorageVol - Flags StorageVolCreateFlags -} - -// StorageVolCreateXMLFromRet is libvirt's remote_storage_vol_create_xml_from_ret -type StorageVolCreateXMLFromRet struct { - Vol StorageVol -} - -// StorageVolDeleteArgs is libvirt's remote_storage_vol_delete_args -type StorageVolDeleteArgs struct { - Vol StorageVol - Flags StorageVolDeleteFlags -} - -// StorageVolWipeArgs is libvirt's remote_storage_vol_wipe_args -type StorageVolWipeArgs struct { - Vol StorageVol - Flags uint32 -} - -// StorageVolWipePatternArgs is libvirt's remote_storage_vol_wipe_pattern_args -type StorageVolWipePatternArgs struct { - Vol StorageVol - Algorithm uint32 - Flags uint32 -} - -// StorageVolGetXMLDescArgs is libvirt's remote_storage_vol_get_xml_desc_args -type StorageVolGetXMLDescArgs struct { - Vol StorageVol - Flags uint32 -} - -// StorageVolGetXMLDescRet is libvirt's remote_storage_vol_get_xml_desc_ret -type StorageVolGetXMLDescRet struct { - XML string -} - -// StorageVolGetInfoArgs is libvirt's remote_storage_vol_get_info_args -type StorageVolGetInfoArgs struct { - Vol StorageVol -} - -// StorageVolGetInfoRet is libvirt's remote_storage_vol_get_info_ret -type StorageVolGetInfoRet struct { - Type int8 - Capacity uint64 - Allocation uint64 -} - -// StorageVolGetInfoFlagsArgs is libvirt's remote_storage_vol_get_info_flags_args -type StorageVolGetInfoFlagsArgs struct { - Vol StorageVol - Flags uint32 -} - -// StorageVolGetInfoFlagsRet is libvirt's remote_storage_vol_get_info_flags_ret -type StorageVolGetInfoFlagsRet struct { - Type int8 - Capacity uint64 - Allocation uint64 -} - -// StorageVolGetPathArgs is libvirt's remote_storage_vol_get_path_args -type StorageVolGetPathArgs struct { - Vol StorageVol -} - -// StorageVolGetPathRet is libvirt's remote_storage_vol_get_path_ret -type StorageVolGetPathRet struct { - Name string -} - -// StorageVolResizeArgs is libvirt's remote_storage_vol_resize_args -type StorageVolResizeArgs struct { - Vol StorageVol - Capacity uint64 - Flags StorageVolResizeFlags -} - -// NodeNumOfDevicesArgs is libvirt's remote_node_num_of_devices_args -type NodeNumOfDevicesArgs struct { - Cap OptString - Flags uint32 -} - -// NodeNumOfDevicesRet is libvirt's remote_node_num_of_devices_ret -type NodeNumOfDevicesRet struct { - Num int32 -} - -// NodeListDevicesArgs is libvirt's remote_node_list_devices_args -type NodeListDevicesArgs struct { - Cap OptString - Maxnames int32 - Flags uint32 -} - -// NodeListDevicesRet is libvirt's remote_node_list_devices_ret -type NodeListDevicesRet struct { - Names []string -} - -// NodeDeviceLookupByNameArgs is libvirt's remote_node_device_lookup_by_name_args -type NodeDeviceLookupByNameArgs struct { - Name string -} - -// NodeDeviceLookupByNameRet is libvirt's remote_node_device_lookup_by_name_ret -type NodeDeviceLookupByNameRet struct { - Dev NodeDevice -} - -// NodeDeviceLookupScsiHostByWwnArgs is libvirt's remote_node_device_lookup_scsi_host_by_wwn_args -type NodeDeviceLookupScsiHostByWwnArgs struct { - Wwnn string - Wwpn string - Flags uint32 -} - -// NodeDeviceLookupScsiHostByWwnRet is libvirt's remote_node_device_lookup_scsi_host_by_wwn_ret -type NodeDeviceLookupScsiHostByWwnRet struct { - Dev NodeDevice -} - -// NodeDeviceGetXMLDescArgs is libvirt's remote_node_device_get_xml_desc_args -type NodeDeviceGetXMLDescArgs struct { - Name string - Flags uint32 -} - -// NodeDeviceGetXMLDescRet is libvirt's remote_node_device_get_xml_desc_ret -type NodeDeviceGetXMLDescRet struct { - XML string -} - -// NodeDeviceGetParentArgs is libvirt's remote_node_device_get_parent_args -type NodeDeviceGetParentArgs struct { - Name string -} - -// NodeDeviceGetParentRet is libvirt's remote_node_device_get_parent_ret -type NodeDeviceGetParentRet struct { - Parent OptString -} - -// NodeDeviceNumOfCapsArgs is libvirt's remote_node_device_num_of_caps_args -type NodeDeviceNumOfCapsArgs struct { - Name string -} - -// NodeDeviceNumOfCapsRet is libvirt's remote_node_device_num_of_caps_ret -type NodeDeviceNumOfCapsRet struct { - Num int32 -} - -// NodeDeviceListCapsArgs is libvirt's remote_node_device_list_caps_args -type NodeDeviceListCapsArgs struct { - Name string - Maxnames int32 -} - -// NodeDeviceListCapsRet is libvirt's remote_node_device_list_caps_ret -type NodeDeviceListCapsRet struct { - Names []string -} - -// NodeDeviceDettachArgs is libvirt's remote_node_device_dettach_args -type NodeDeviceDettachArgs struct { - Name string -} - -// NodeDeviceDetachFlagsArgs is libvirt's remote_node_device_detach_flags_args -type NodeDeviceDetachFlagsArgs struct { - Name string - DriverName OptString - Flags uint32 -} - -// NodeDeviceReAttachArgs is libvirt's remote_node_device_re_attach_args -type NodeDeviceReAttachArgs struct { - Name string -} - -// NodeDeviceResetArgs is libvirt's remote_node_device_reset_args -type NodeDeviceResetArgs struct { - Name string -} - -// NodeDeviceCreateXMLArgs is libvirt's remote_node_device_create_xml_args -type NodeDeviceCreateXMLArgs struct { - XMLDesc string - Flags uint32 -} - -// NodeDeviceCreateXMLRet is libvirt's remote_node_device_create_xml_ret -type NodeDeviceCreateXMLRet struct { - Dev NodeDevice -} - -// NodeDeviceDestroyArgs is libvirt's remote_node_device_destroy_args -type NodeDeviceDestroyArgs struct { - Name string -} - -// ConnectDomainEventRegisterRet is libvirt's remote_connect_domain_event_register_ret -type ConnectDomainEventRegisterRet struct { - CbRegistered int32 -} - -// ConnectDomainEventDeregisterRet is libvirt's remote_connect_domain_event_deregister_ret -type ConnectDomainEventDeregisterRet struct { - CbRegistered int32 -} - -// DomainEventLifecycleMsg is libvirt's remote_domain_event_lifecycle_msg -type DomainEventLifecycleMsg struct { - Dom Domain - Event int32 - Detail int32 -} - -// DomainEventCallbackLifecycleMsg is libvirt's remote_domain_event_callback_lifecycle_msg -type DomainEventCallbackLifecycleMsg struct { - CallbackID int32 - Msg DomainEventLifecycleMsg -} - -// ConnectDomainXMLFromNativeArgs is libvirt's remote_connect_domain_xml_from_native_args -type ConnectDomainXMLFromNativeArgs struct { - NativeFormat string - NativeConfig string - Flags uint32 -} - -// ConnectDomainXMLFromNativeRet is libvirt's remote_connect_domain_xml_from_native_ret -type ConnectDomainXMLFromNativeRet struct { - DomainXML string -} - -// ConnectDomainXMLToNativeArgs is libvirt's remote_connect_domain_xml_to_native_args -type ConnectDomainXMLToNativeArgs struct { - NativeFormat string - DomainXML string - Flags uint32 -} - -// ConnectDomainXMLToNativeRet is libvirt's remote_connect_domain_xml_to_native_ret -type ConnectDomainXMLToNativeRet struct { - NativeConfig string -} - -// ConnectNumOfSecretsRet is libvirt's remote_connect_num_of_secrets_ret -type ConnectNumOfSecretsRet struct { - Num int32 -} - -// ConnectListSecretsArgs is libvirt's remote_connect_list_secrets_args -type ConnectListSecretsArgs struct { - Maxuuids int32 -} - -// ConnectListSecretsRet is libvirt's remote_connect_list_secrets_ret -type ConnectListSecretsRet struct { - Uuids []string -} - -// SecretLookupByUUIDArgs is libvirt's remote_secret_lookup_by_uuid_args -type SecretLookupByUUIDArgs struct { - UUID UUID -} - -// SecretLookupByUUIDRet is libvirt's remote_secret_lookup_by_uuid_ret -type SecretLookupByUUIDRet struct { - OptSecret Secret -} - -// SecretDefineXMLArgs is libvirt's remote_secret_define_xml_args -type SecretDefineXMLArgs struct { - XML string - Flags uint32 -} - -// SecretDefineXMLRet is libvirt's remote_secret_define_xml_ret -type SecretDefineXMLRet struct { - OptSecret Secret -} - -// SecretGetXMLDescArgs is libvirt's remote_secret_get_xml_desc_args -type SecretGetXMLDescArgs struct { - OptSecret Secret - Flags uint32 -} - -// SecretGetXMLDescRet is libvirt's remote_secret_get_xml_desc_ret -type SecretGetXMLDescRet struct { - XML string -} - -// SecretSetValueArgs is libvirt's remote_secret_set_value_args -type SecretSetValueArgs struct { - OptSecret Secret - Value []byte - Flags uint32 -} - -// SecretGetValueArgs is libvirt's remote_secret_get_value_args -type SecretGetValueArgs struct { - OptSecret Secret - Flags uint32 -} - -// SecretGetValueRet is libvirt's remote_secret_get_value_ret -type SecretGetValueRet struct { - Value []byte -} - -// SecretUndefineArgs is libvirt's remote_secret_undefine_args -type SecretUndefineArgs struct { - OptSecret Secret -} - -// SecretLookupByUsageArgs is libvirt's remote_secret_lookup_by_usage_args -type SecretLookupByUsageArgs struct { - UsageType int32 - UsageID string -} - -// SecretLookupByUsageRet is libvirt's remote_secret_lookup_by_usage_ret -type SecretLookupByUsageRet struct { - OptSecret Secret -} - -// DomainMigratePrepareTunnelArgs is libvirt's remote_domain_migrate_prepare_tunnel_args -type DomainMigratePrepareTunnelArgs struct { - Flags uint64 - Dname OptString - Resource uint64 - DomXML string -} - -// ConnectIsSecureRet is libvirt's remote_connect_is_secure_ret -type ConnectIsSecureRet struct { - Secure int32 -} - -// DomainIsActiveArgs is libvirt's remote_domain_is_active_args -type DomainIsActiveArgs struct { - Dom Domain -} - -// DomainIsActiveRet is libvirt's remote_domain_is_active_ret -type DomainIsActiveRet struct { - Active int32 -} - -// DomainIsPersistentArgs is libvirt's remote_domain_is_persistent_args -type DomainIsPersistentArgs struct { - Dom Domain -} - -// DomainIsPersistentRet is libvirt's remote_domain_is_persistent_ret -type DomainIsPersistentRet struct { - Persistent int32 -} - -// DomainIsUpdatedArgs is libvirt's remote_domain_is_updated_args -type DomainIsUpdatedArgs struct { - Dom Domain -} - -// DomainIsUpdatedRet is libvirt's remote_domain_is_updated_ret -type DomainIsUpdatedRet struct { - Updated int32 -} - -// NetworkIsActiveArgs is libvirt's remote_network_is_active_args -type NetworkIsActiveArgs struct { - Net Network -} - -// NetworkIsActiveRet is libvirt's remote_network_is_active_ret -type NetworkIsActiveRet struct { - Active int32 -} - -// NetworkIsPersistentArgs is libvirt's remote_network_is_persistent_args -type NetworkIsPersistentArgs struct { - Net Network -} - -// NetworkIsPersistentRet is libvirt's remote_network_is_persistent_ret -type NetworkIsPersistentRet struct { - Persistent int32 -} - -// StoragePoolIsActiveArgs is libvirt's remote_storage_pool_is_active_args -type StoragePoolIsActiveArgs struct { - Pool StoragePool -} - -// StoragePoolIsActiveRet is libvirt's remote_storage_pool_is_active_ret -type StoragePoolIsActiveRet struct { - Active int32 -} - -// StoragePoolIsPersistentArgs is libvirt's remote_storage_pool_is_persistent_args -type StoragePoolIsPersistentArgs struct { - Pool StoragePool -} - -// StoragePoolIsPersistentRet is libvirt's remote_storage_pool_is_persistent_ret -type StoragePoolIsPersistentRet struct { - Persistent int32 -} - -// InterfaceIsActiveArgs is libvirt's remote_interface_is_active_args -type InterfaceIsActiveArgs struct { - Iface Interface -} - -// InterfaceIsActiveRet is libvirt's remote_interface_is_active_ret -type InterfaceIsActiveRet struct { - Active int32 -} - -// ConnectCompareCPUArgs is libvirt's remote_connect_compare_cpu_args -type ConnectCompareCPUArgs struct { - XML string - Flags ConnectCompareCPUFlags -} - -// ConnectCompareCPURet is libvirt's remote_connect_compare_cpu_ret -type ConnectCompareCPURet struct { - Result int32 -} - -// ConnectBaselineCPUArgs is libvirt's remote_connect_baseline_cpu_args -type ConnectBaselineCPUArgs struct { - XMLCPUs []string - Flags ConnectBaselineCPUFlags -} - -// ConnectBaselineCPURet is libvirt's remote_connect_baseline_cpu_ret -type ConnectBaselineCPURet struct { - CPU string -} - -// DomainGetJobInfoArgs is libvirt's remote_domain_get_job_info_args -type DomainGetJobInfoArgs struct { - Dom Domain -} - -// DomainGetJobInfoRet is libvirt's remote_domain_get_job_info_ret -type DomainGetJobInfoRet struct { - Type int32 - TimeElapsed uint64 - TimeRemaining uint64 - DataTotal uint64 - DataProcessed uint64 - DataRemaining uint64 - MemTotal uint64 - MemProcessed uint64 - MemRemaining uint64 - FileTotal uint64 - FileProcessed uint64 - FileRemaining uint64 -} - -// DomainGetJobStatsArgs is libvirt's remote_domain_get_job_stats_args -type DomainGetJobStatsArgs struct { - Dom Domain - Flags DomainGetJobStatsFlags -} - -// DomainGetJobStatsRet is libvirt's remote_domain_get_job_stats_ret -type DomainGetJobStatsRet struct { - Type int32 - Params []TypedParam -} - -// DomainAbortJobArgs is libvirt's remote_domain_abort_job_args -type DomainAbortJobArgs struct { - Dom Domain -} - -// DomainMigrateGetMaxDowntimeArgs is libvirt's remote_domain_migrate_get_max_downtime_args -type DomainMigrateGetMaxDowntimeArgs struct { - Dom Domain - Flags uint32 -} - -// DomainMigrateGetMaxDowntimeRet is libvirt's remote_domain_migrate_get_max_downtime_ret -type DomainMigrateGetMaxDowntimeRet struct { - Downtime uint64 -} - -// DomainMigrateSetMaxDowntimeArgs is libvirt's remote_domain_migrate_set_max_downtime_args -type DomainMigrateSetMaxDowntimeArgs struct { - Dom Domain - Downtime uint64 - Flags uint32 -} - -// DomainMigrateGetCompressionCacheArgs is libvirt's remote_domain_migrate_get_compression_cache_args -type DomainMigrateGetCompressionCacheArgs struct { - Dom Domain - Flags uint32 -} - -// DomainMigrateGetCompressionCacheRet is libvirt's remote_domain_migrate_get_compression_cache_ret -type DomainMigrateGetCompressionCacheRet struct { - CacheSize uint64 -} - -// DomainMigrateSetCompressionCacheArgs is libvirt's remote_domain_migrate_set_compression_cache_args -type DomainMigrateSetCompressionCacheArgs struct { - Dom Domain - CacheSize uint64 - Flags uint32 -} - -// DomainMigrateSetMaxSpeedArgs is libvirt's remote_domain_migrate_set_max_speed_args -type DomainMigrateSetMaxSpeedArgs struct { - Dom Domain - Bandwidth uint64 - Flags uint32 -} - -// DomainMigrateGetMaxSpeedArgs is libvirt's remote_domain_migrate_get_max_speed_args -type DomainMigrateGetMaxSpeedArgs struct { - Dom Domain - Flags uint32 -} - -// DomainMigrateGetMaxSpeedRet is libvirt's remote_domain_migrate_get_max_speed_ret -type DomainMigrateGetMaxSpeedRet struct { - Bandwidth uint64 -} - -// ConnectDomainEventRegisterAnyArgs is libvirt's remote_connect_domain_event_register_any_args -type ConnectDomainEventRegisterAnyArgs struct { - EventID int32 -} - -// ConnectDomainEventDeregisterAnyArgs is libvirt's remote_connect_domain_event_deregister_any_args -type ConnectDomainEventDeregisterAnyArgs struct { - EventID int32 -} - -// ConnectDomainEventCallbackRegisterAnyArgs is libvirt's remote_connect_domain_event_callback_register_any_args -type ConnectDomainEventCallbackRegisterAnyArgs struct { - EventID int32 - Dom OptDomain -} - -// ConnectDomainEventCallbackRegisterAnyRet is libvirt's remote_connect_domain_event_callback_register_any_ret -type ConnectDomainEventCallbackRegisterAnyRet struct { - CallbackID int32 -} - -// ConnectDomainEventCallbackDeregisterAnyArgs is libvirt's remote_connect_domain_event_callback_deregister_any_args -type ConnectDomainEventCallbackDeregisterAnyArgs struct { - CallbackID int32 -} - -// DomainEventRebootMsg is libvirt's remote_domain_event_reboot_msg -type DomainEventRebootMsg struct { - Dom Domain -} - -// DomainEventCallbackRebootMsg is libvirt's remote_domain_event_callback_reboot_msg -type DomainEventCallbackRebootMsg struct { - CallbackID int32 - Msg DomainEventRebootMsg -} - -// DomainEventRtcChangeMsg is libvirt's remote_domain_event_rtc_change_msg -type DomainEventRtcChangeMsg struct { - Dom Domain - Offset int64 -} - -// DomainEventCallbackRtcChangeMsg is libvirt's remote_domain_event_callback_rtc_change_msg -type DomainEventCallbackRtcChangeMsg struct { - CallbackID int32 - Msg DomainEventRtcChangeMsg -} - -// DomainEventWatchdogMsg is libvirt's remote_domain_event_watchdog_msg -type DomainEventWatchdogMsg struct { - Dom Domain - Action int32 -} - -// DomainEventCallbackWatchdogMsg is libvirt's remote_domain_event_callback_watchdog_msg -type DomainEventCallbackWatchdogMsg struct { - CallbackID int32 - Msg DomainEventWatchdogMsg -} - -// DomainEventIOErrorMsg is libvirt's remote_domain_event_io_error_msg -type DomainEventIOErrorMsg struct { - Dom Domain - SrcPath string - DevAlias string - Action int32 -} - -// DomainEventCallbackIOErrorMsg is libvirt's remote_domain_event_callback_io_error_msg -type DomainEventCallbackIOErrorMsg struct { - CallbackID int32 - Msg DomainEventIOErrorMsg -} - -// DomainEventIOErrorReasonMsg is libvirt's remote_domain_event_io_error_reason_msg -type DomainEventIOErrorReasonMsg struct { - Dom Domain - SrcPath string - DevAlias string - Action int32 - Reason string -} - -// DomainEventCallbackIOErrorReasonMsg is libvirt's remote_domain_event_callback_io_error_reason_msg -type DomainEventCallbackIOErrorReasonMsg struct { - CallbackID int32 - Msg DomainEventIOErrorReasonMsg -} - -// DomainEventGraphicsAddress is libvirt's remote_domain_event_graphics_address -type DomainEventGraphicsAddress struct { - Family int32 - Node string - Service string -} - -// DomainEventGraphicsIdentity is libvirt's remote_domain_event_graphics_identity -type DomainEventGraphicsIdentity struct { - Type string - Name string -} - -// DomainEventGraphicsMsg is libvirt's remote_domain_event_graphics_msg -type DomainEventGraphicsMsg struct { - Dom Domain - Phase int32 - Local DomainEventGraphicsAddress - Remote DomainEventGraphicsAddress - AuthScheme string - Subject []DomainEventGraphicsIdentity -} - -// DomainEventCallbackGraphicsMsg is libvirt's remote_domain_event_callback_graphics_msg -type DomainEventCallbackGraphicsMsg struct { - CallbackID int32 - Msg DomainEventGraphicsMsg -} - -// DomainEventBlockJobMsg is libvirt's remote_domain_event_block_job_msg -type DomainEventBlockJobMsg struct { - Dom Domain - Path string - Type int32 - Status int32 -} - -// DomainEventCallbackBlockJobMsg is libvirt's remote_domain_event_callback_block_job_msg -type DomainEventCallbackBlockJobMsg struct { - CallbackID int32 - Msg DomainEventBlockJobMsg -} - -// DomainEventDiskChangeMsg is libvirt's remote_domain_event_disk_change_msg -type DomainEventDiskChangeMsg struct { - Dom Domain - OldSrcPath OptString - NewSrcPath OptString - DevAlias string - Reason int32 -} - -// DomainEventCallbackDiskChangeMsg is libvirt's remote_domain_event_callback_disk_change_msg -type DomainEventCallbackDiskChangeMsg struct { - CallbackID int32 - Msg DomainEventDiskChangeMsg -} - -// DomainEventTrayChangeMsg is libvirt's remote_domain_event_tray_change_msg -type DomainEventTrayChangeMsg struct { - Dom Domain - DevAlias string - Reason int32 -} - -// DomainEventCallbackTrayChangeMsg is libvirt's remote_domain_event_callback_tray_change_msg -type DomainEventCallbackTrayChangeMsg struct { - CallbackID int32 - Msg DomainEventTrayChangeMsg -} - -// DomainEventPmwakeupMsg is libvirt's remote_domain_event_pmwakeup_msg -type DomainEventPmwakeupMsg struct { - Dom Domain -} - -// DomainEventCallbackPmwakeupMsg is libvirt's remote_domain_event_callback_pmwakeup_msg -type DomainEventCallbackPmwakeupMsg struct { - CallbackID int32 - Reason int32 - Msg DomainEventPmwakeupMsg -} - -// DomainEventPmsuspendMsg is libvirt's remote_domain_event_pmsuspend_msg -type DomainEventPmsuspendMsg struct { - Dom Domain -} - -// DomainEventCallbackPmsuspendMsg is libvirt's remote_domain_event_callback_pmsuspend_msg -type DomainEventCallbackPmsuspendMsg struct { - CallbackID int32 - Reason int32 - Msg DomainEventPmsuspendMsg -} - -// DomainEventBalloonChangeMsg is libvirt's remote_domain_event_balloon_change_msg -type DomainEventBalloonChangeMsg struct { - Dom Domain - Actual uint64 -} - -// DomainEventCallbackBalloonChangeMsg is libvirt's remote_domain_event_callback_balloon_change_msg -type DomainEventCallbackBalloonChangeMsg struct { - CallbackID int32 - Msg DomainEventBalloonChangeMsg -} - -// DomainEventPmsuspendDiskMsg is libvirt's remote_domain_event_pmsuspend_disk_msg -type DomainEventPmsuspendDiskMsg struct { - Dom Domain -} - -// DomainEventCallbackPmsuspendDiskMsg is libvirt's remote_domain_event_callback_pmsuspend_disk_msg -type DomainEventCallbackPmsuspendDiskMsg struct { - CallbackID int32 - Reason int32 - Msg DomainEventPmsuspendDiskMsg -} - -// DomainManagedSaveArgs is libvirt's remote_domain_managed_save_args -type DomainManagedSaveArgs struct { - Dom Domain - Flags uint32 -} - -// DomainHasManagedSaveImageArgs is libvirt's remote_domain_has_managed_save_image_args -type DomainHasManagedSaveImageArgs struct { - Dom Domain - Flags uint32 -} - -// DomainHasManagedSaveImageRet is libvirt's remote_domain_has_managed_save_image_ret -type DomainHasManagedSaveImageRet struct { - Result int32 -} - -// DomainManagedSaveRemoveArgs is libvirt's remote_domain_managed_save_remove_args -type DomainManagedSaveRemoveArgs struct { - Dom Domain - Flags uint32 -} - -// DomainManagedSaveGetXMLDescArgs is libvirt's remote_domain_managed_save_get_xml_desc_args -type DomainManagedSaveGetXMLDescArgs struct { - Dom Domain - Flags DomainXMLFlags -} - -// DomainManagedSaveGetXMLDescRet is libvirt's remote_domain_managed_save_get_xml_desc_ret -type DomainManagedSaveGetXMLDescRet struct { - XML string -} - -// DomainManagedSaveDefineXMLArgs is libvirt's remote_domain_managed_save_define_xml_args -type DomainManagedSaveDefineXMLArgs struct { - Dom Domain - Dxml OptString - Flags DomainSaveRestoreFlags -} - -// DomainSnapshotCreateXMLArgs is libvirt's remote_domain_snapshot_create_xml_args -type DomainSnapshotCreateXMLArgs struct { - Dom Domain - XMLDesc string - Flags uint32 -} - -// DomainSnapshotCreateXMLRet is libvirt's remote_domain_snapshot_create_xml_ret -type DomainSnapshotCreateXMLRet struct { - Snap DomainSnapshot -} - -// DomainSnapshotGetXMLDescArgs is libvirt's remote_domain_snapshot_get_xml_desc_args -type DomainSnapshotGetXMLDescArgs struct { - Snap DomainSnapshot - Flags uint32 -} - -// DomainSnapshotGetXMLDescRet is libvirt's remote_domain_snapshot_get_xml_desc_ret -type DomainSnapshotGetXMLDescRet struct { - XML string -} - -// DomainSnapshotNumArgs is libvirt's remote_domain_snapshot_num_args -type DomainSnapshotNumArgs struct { - Dom Domain - Flags uint32 -} - -// DomainSnapshotNumRet is libvirt's remote_domain_snapshot_num_ret -type DomainSnapshotNumRet struct { - Num int32 -} - -// DomainSnapshotListNamesArgs is libvirt's remote_domain_snapshot_list_names_args -type DomainSnapshotListNamesArgs struct { - Dom Domain - Maxnames int32 - Flags uint32 -} - -// DomainSnapshotListNamesRet is libvirt's remote_domain_snapshot_list_names_ret -type DomainSnapshotListNamesRet struct { - Names []string -} - -// DomainListAllSnapshotsArgs is libvirt's remote_domain_list_all_snapshots_args -type DomainListAllSnapshotsArgs struct { - Dom Domain - NeedResults int32 - Flags uint32 -} - -// DomainListAllSnapshotsRet is libvirt's remote_domain_list_all_snapshots_ret -type DomainListAllSnapshotsRet struct { - Snapshots []DomainSnapshot - Ret int32 -} - -// DomainSnapshotNumChildrenArgs is libvirt's remote_domain_snapshot_num_children_args -type DomainSnapshotNumChildrenArgs struct { - Snap DomainSnapshot - Flags uint32 -} - -// DomainSnapshotNumChildrenRet is libvirt's remote_domain_snapshot_num_children_ret -type DomainSnapshotNumChildrenRet struct { - Num int32 -} - -// DomainSnapshotListChildrenNamesArgs is libvirt's remote_domain_snapshot_list_children_names_args -type DomainSnapshotListChildrenNamesArgs struct { - Snap DomainSnapshot - Maxnames int32 - Flags uint32 -} - -// DomainSnapshotListChildrenNamesRet is libvirt's remote_domain_snapshot_list_children_names_ret -type DomainSnapshotListChildrenNamesRet struct { - Names []string -} - -// DomainSnapshotListAllChildrenArgs is libvirt's remote_domain_snapshot_list_all_children_args -type DomainSnapshotListAllChildrenArgs struct { - Snapshot DomainSnapshot - NeedResults int32 - Flags uint32 -} - -// DomainSnapshotListAllChildrenRet is libvirt's remote_domain_snapshot_list_all_children_ret -type DomainSnapshotListAllChildrenRet struct { - Snapshots []DomainSnapshot - Ret int32 -} - -// DomainSnapshotLookupByNameArgs is libvirt's remote_domain_snapshot_lookup_by_name_args -type DomainSnapshotLookupByNameArgs struct { - Dom Domain - Name string - Flags uint32 -} - -// DomainSnapshotLookupByNameRet is libvirt's remote_domain_snapshot_lookup_by_name_ret -type DomainSnapshotLookupByNameRet struct { - Snap DomainSnapshot -} - -// DomainHasCurrentSnapshotArgs is libvirt's remote_domain_has_current_snapshot_args -type DomainHasCurrentSnapshotArgs struct { - Dom Domain - Flags uint32 -} - -// DomainHasCurrentSnapshotRet is libvirt's remote_domain_has_current_snapshot_ret -type DomainHasCurrentSnapshotRet struct { - Result int32 -} - -// DomainSnapshotGetParentArgs is libvirt's remote_domain_snapshot_get_parent_args -type DomainSnapshotGetParentArgs struct { - Snap DomainSnapshot - Flags uint32 -} - -// DomainSnapshotGetParentRet is libvirt's remote_domain_snapshot_get_parent_ret -type DomainSnapshotGetParentRet struct { - Snap DomainSnapshot -} - -// DomainSnapshotCurrentArgs is libvirt's remote_domain_snapshot_current_args -type DomainSnapshotCurrentArgs struct { - Dom Domain - Flags uint32 -} - -// DomainSnapshotCurrentRet is libvirt's remote_domain_snapshot_current_ret -type DomainSnapshotCurrentRet struct { - Snap DomainSnapshot -} - -// DomainSnapshotIsCurrentArgs is libvirt's remote_domain_snapshot_is_current_args -type DomainSnapshotIsCurrentArgs struct { - Snap DomainSnapshot - Flags uint32 -} - -// DomainSnapshotIsCurrentRet is libvirt's remote_domain_snapshot_is_current_ret -type DomainSnapshotIsCurrentRet struct { - Current int32 -} - -// DomainSnapshotHasMetadataArgs is libvirt's remote_domain_snapshot_has_metadata_args -type DomainSnapshotHasMetadataArgs struct { - Snap DomainSnapshot - Flags uint32 -} - -// DomainSnapshotHasMetadataRet is libvirt's remote_domain_snapshot_has_metadata_ret -type DomainSnapshotHasMetadataRet struct { - Metadata int32 -} - -// DomainRevertToSnapshotArgs is libvirt's remote_domain_revert_to_snapshot_args -type DomainRevertToSnapshotArgs struct { - Snap DomainSnapshot - Flags uint32 -} - -// DomainSnapshotDeleteArgs is libvirt's remote_domain_snapshot_delete_args -type DomainSnapshotDeleteArgs struct { - Snap DomainSnapshot - Flags DomainSnapshotDeleteFlags -} - -// DomainOpenConsoleArgs is libvirt's remote_domain_open_console_args -type DomainOpenConsoleArgs struct { - Dom Domain - DevName OptString - Flags uint32 -} - -// DomainOpenChannelArgs is libvirt's remote_domain_open_channel_args -type DomainOpenChannelArgs struct { - Dom Domain - Name OptString - Flags DomainChannelFlags -} - -// StorageVolUploadArgs is libvirt's remote_storage_vol_upload_args -type StorageVolUploadArgs struct { - Vol StorageVol - Offset uint64 - Length uint64 - Flags StorageVolUploadFlags -} - -// StorageVolDownloadArgs is libvirt's remote_storage_vol_download_args -type StorageVolDownloadArgs struct { - Vol StorageVol - Offset uint64 - Length uint64 - Flags StorageVolDownloadFlags -} - -// DomainGetStateArgs is libvirt's remote_domain_get_state_args -type DomainGetStateArgs struct { - Dom Domain - Flags uint32 -} - -// DomainGetStateRet is libvirt's remote_domain_get_state_ret -type DomainGetStateRet struct { - State int32 - Reason int32 -} - -// DomainMigrateBegin3Args is libvirt's remote_domain_migrate_begin3_args -type DomainMigrateBegin3Args struct { - Dom Domain - Xmlin OptString - Flags uint64 - Dname OptString - Resource uint64 -} - -// DomainMigrateBegin3Ret is libvirt's remote_domain_migrate_begin3_ret -type DomainMigrateBegin3Ret struct { - CookieOut []byte - XML string -} - -// DomainMigratePrepare3Args is libvirt's remote_domain_migrate_prepare3_args -type DomainMigratePrepare3Args struct { - CookieIn []byte - UriIn OptString - Flags uint64 - Dname OptString - Resource uint64 - DomXML string -} - -// DomainMigratePrepare3Ret is libvirt's remote_domain_migrate_prepare3_ret -type DomainMigratePrepare3Ret struct { - CookieOut []byte - UriOut OptString -} - -// DomainMigratePrepareTunnel3Args is libvirt's remote_domain_migrate_prepare_tunnel3_args -type DomainMigratePrepareTunnel3Args struct { - CookieIn []byte - Flags uint64 - Dname OptString - Resource uint64 - DomXML string -} - -// DomainMigratePrepareTunnel3Ret is libvirt's remote_domain_migrate_prepare_tunnel3_ret -type DomainMigratePrepareTunnel3Ret struct { - CookieOut []byte -} - -// DomainMigratePerform3Args is libvirt's remote_domain_migrate_perform3_args -type DomainMigratePerform3Args struct { - Dom Domain - Xmlin OptString - CookieIn []byte - Dconnuri OptString - Uri OptString - Flags uint64 - Dname OptString - Resource uint64 -} - -// DomainMigratePerform3Ret is libvirt's remote_domain_migrate_perform3_ret -type DomainMigratePerform3Ret struct { - CookieOut []byte -} - -// DomainMigrateFinish3Args is libvirt's remote_domain_migrate_finish3_args -type DomainMigrateFinish3Args struct { - Dname string - CookieIn []byte - Dconnuri OptString - Uri OptString - Flags uint64 - Cancelled int32 -} - -// DomainMigrateFinish3Ret is libvirt's remote_domain_migrate_finish3_ret -type DomainMigrateFinish3Ret struct { - Dom Domain - CookieOut []byte -} - -// DomainMigrateConfirm3Args is libvirt's remote_domain_migrate_confirm3_args -type DomainMigrateConfirm3Args struct { - Dom Domain - CookieIn []byte - Flags uint64 - Cancelled int32 -} - -// DomainEventControlErrorMsg is libvirt's remote_domain_event_control_error_msg -type DomainEventControlErrorMsg struct { - Dom Domain -} - -// DomainEventCallbackControlErrorMsg is libvirt's remote_domain_event_callback_control_error_msg -type DomainEventCallbackControlErrorMsg struct { - CallbackID int32 - Msg DomainEventControlErrorMsg -} - -// DomainGetControlInfoArgs is libvirt's remote_domain_get_control_info_args -type DomainGetControlInfoArgs struct { - Dom Domain - Flags uint32 -} - -// DomainGetControlInfoRet is libvirt's remote_domain_get_control_info_ret -type DomainGetControlInfoRet struct { - State uint32 - Details uint32 - StateTime uint64 -} - -// DomainOpenGraphicsArgs is libvirt's remote_domain_open_graphics_args -type DomainOpenGraphicsArgs struct { - Dom Domain - Idx uint32 - Flags DomainOpenGraphicsFlags -} - -// DomainOpenGraphicsFdArgs is libvirt's remote_domain_open_graphics_fd_args -type DomainOpenGraphicsFdArgs struct { - Dom Domain - Idx uint32 - Flags DomainOpenGraphicsFlags -} - -// NodeSuspendForDurationArgs is libvirt's remote_node_suspend_for_duration_args -type NodeSuspendForDurationArgs struct { - Target uint32 - Duration uint64 - Flags uint32 -} - -// DomainShutdownFlagsArgs is libvirt's remote_domain_shutdown_flags_args -type DomainShutdownFlagsArgs struct { - Dom Domain - Flags DomainShutdownFlagValues -} - -// DomainGetDiskErrorsArgs is libvirt's remote_domain_get_disk_errors_args -type DomainGetDiskErrorsArgs struct { - Dom Domain - Maxerrors uint32 - Flags uint32 -} - -// DomainGetDiskErrorsRet is libvirt's remote_domain_get_disk_errors_ret -type DomainGetDiskErrorsRet struct { - Errors []DomainDiskError - Nerrors int32 -} - -// ConnectListAllDomainsArgs is libvirt's remote_connect_list_all_domains_args -type ConnectListAllDomainsArgs struct { - NeedResults int32 - Flags ConnectListAllDomainsFlags -} - -// ConnectListAllDomainsRet is libvirt's remote_connect_list_all_domains_ret -type ConnectListAllDomainsRet struct { - Domains []Domain - Ret uint32 -} - -// ConnectListAllStoragePoolsArgs is libvirt's remote_connect_list_all_storage_pools_args -type ConnectListAllStoragePoolsArgs struct { - NeedResults int32 - Flags ConnectListAllStoragePoolsFlags -} - -// ConnectListAllStoragePoolsRet is libvirt's remote_connect_list_all_storage_pools_ret -type ConnectListAllStoragePoolsRet struct { - Pools []StoragePool - Ret uint32 -} - -// StoragePoolListAllVolumesArgs is libvirt's remote_storage_pool_list_all_volumes_args -type StoragePoolListAllVolumesArgs struct { - Pool StoragePool - NeedResults int32 - Flags uint32 -} - -// StoragePoolListAllVolumesRet is libvirt's remote_storage_pool_list_all_volumes_ret -type StoragePoolListAllVolumesRet struct { - Vols []StorageVol - Ret uint32 -} - -// ConnectListAllNetworksArgs is libvirt's remote_connect_list_all_networks_args -type ConnectListAllNetworksArgs struct { - NeedResults int32 - Flags ConnectListAllNetworksFlags -} - -// ConnectListAllNetworksRet is libvirt's remote_connect_list_all_networks_ret -type ConnectListAllNetworksRet struct { - Nets []Network - Ret uint32 -} - -// ConnectListAllInterfacesArgs is libvirt's remote_connect_list_all_interfaces_args -type ConnectListAllInterfacesArgs struct { - NeedResults int32 - Flags ConnectListAllInterfacesFlags -} - -// ConnectListAllInterfacesRet is libvirt's remote_connect_list_all_interfaces_ret -type ConnectListAllInterfacesRet struct { - Ifaces []Interface - Ret uint32 -} - -// ConnectListAllNodeDevicesArgs is libvirt's remote_connect_list_all_node_devices_args -type ConnectListAllNodeDevicesArgs struct { - NeedResults int32 - Flags uint32 -} - -// ConnectListAllNodeDevicesRet is libvirt's remote_connect_list_all_node_devices_ret -type ConnectListAllNodeDevicesRet struct { - Devices []NodeDevice - Ret uint32 -} - -// ConnectListAllNwfiltersArgs is libvirt's remote_connect_list_all_nwfilters_args -type ConnectListAllNwfiltersArgs struct { - NeedResults int32 - Flags uint32 -} - -// ConnectListAllNwfiltersRet is libvirt's remote_connect_list_all_nwfilters_ret -type ConnectListAllNwfiltersRet struct { - Filters []Nwfilter - Ret uint32 -} - -// ConnectListAllSecretsArgs is libvirt's remote_connect_list_all_secrets_args -type ConnectListAllSecretsArgs struct { - NeedResults int32 - Flags ConnectListAllSecretsFlags -} - -// ConnectListAllSecretsRet is libvirt's remote_connect_list_all_secrets_ret -type ConnectListAllSecretsRet struct { - Secrets []Secret - Ret uint32 -} - -// NodeSetMemoryParametersArgs is libvirt's remote_node_set_memory_parameters_args -type NodeSetMemoryParametersArgs struct { - Params []TypedParam - Flags uint32 -} - -// NodeGetMemoryParametersArgs is libvirt's remote_node_get_memory_parameters_args -type NodeGetMemoryParametersArgs struct { - Nparams int32 - Flags uint32 -} - -// NodeGetMemoryParametersRet is libvirt's remote_node_get_memory_parameters_ret -type NodeGetMemoryParametersRet struct { - Params []TypedParam - Nparams int32 -} - -// NodeGetCPUMapArgs is libvirt's remote_node_get_cpu_map_args -type NodeGetCPUMapArgs struct { - NeedMap int32 - NeedOnline int32 - Flags uint32 -} - -// NodeGetCPUMapRet is libvirt's remote_node_get_cpu_map_ret -type NodeGetCPUMapRet struct { - Cpumap []byte - Online uint32 - Ret int32 -} - -// DomainFstrimArgs is libvirt's remote_domain_fstrim_args -type DomainFstrimArgs struct { - Dom Domain - MountPoint OptString - Minimum uint64 - Flags uint32 -} - -// DomainGetTimeArgs is libvirt's remote_domain_get_time_args -type DomainGetTimeArgs struct { - Dom Domain - Flags uint32 -} - -// DomainGetTimeRet is libvirt's remote_domain_get_time_ret -type DomainGetTimeRet struct { - Seconds int64 - Nseconds uint32 -} - -// DomainSetTimeArgs is libvirt's remote_domain_set_time_args -type DomainSetTimeArgs struct { - Dom Domain - Seconds int64 - Nseconds uint32 - Flags DomainSetTimeFlags -} - -// DomainMigrateBegin3ParamsArgs is libvirt's remote_domain_migrate_begin3_params_args -type DomainMigrateBegin3ParamsArgs struct { - Dom Domain - Params []TypedParam - Flags uint32 -} - -// DomainMigrateBegin3ParamsRet is libvirt's remote_domain_migrate_begin3_params_ret -type DomainMigrateBegin3ParamsRet struct { - CookieOut []byte - XML string -} - -// DomainMigratePrepare3ParamsArgs is libvirt's remote_domain_migrate_prepare3_params_args -type DomainMigratePrepare3ParamsArgs struct { - Params []TypedParam - CookieIn []byte - Flags uint32 -} - -// DomainMigratePrepare3ParamsRet is libvirt's remote_domain_migrate_prepare3_params_ret -type DomainMigratePrepare3ParamsRet struct { - CookieOut []byte - UriOut OptString -} - -// DomainMigratePrepareTunnel3ParamsArgs is libvirt's remote_domain_migrate_prepare_tunnel3_params_args -type DomainMigratePrepareTunnel3ParamsArgs struct { - Params []TypedParam - CookieIn []byte - Flags uint32 -} - -// DomainMigratePrepareTunnel3ParamsRet is libvirt's remote_domain_migrate_prepare_tunnel3_params_ret -type DomainMigratePrepareTunnel3ParamsRet struct { - CookieOut []byte -} - -// DomainMigratePerform3ParamsArgs is libvirt's remote_domain_migrate_perform3_params_args -type DomainMigratePerform3ParamsArgs struct { - Dom Domain - Dconnuri OptString - Params []TypedParam - CookieIn []byte - Flags DomainMigrateFlags -} - -// DomainMigratePerform3ParamsRet is libvirt's remote_domain_migrate_perform3_params_ret -type DomainMigratePerform3ParamsRet struct { - CookieOut []byte -} - -// DomainMigrateFinish3ParamsArgs is libvirt's remote_domain_migrate_finish3_params_args -type DomainMigrateFinish3ParamsArgs struct { - Params []TypedParam - CookieIn []byte - Flags uint32 - Cancelled int32 -} - -// DomainMigrateFinish3ParamsRet is libvirt's remote_domain_migrate_finish3_params_ret -type DomainMigrateFinish3ParamsRet struct { - Dom Domain - CookieOut []byte -} - -// DomainMigrateConfirm3ParamsArgs is libvirt's remote_domain_migrate_confirm3_params_args -type DomainMigrateConfirm3ParamsArgs struct { - Dom Domain - Params []TypedParam - CookieIn []byte - Flags uint32 - Cancelled int32 -} - -// DomainEventDeviceRemovedMsg is libvirt's remote_domain_event_device_removed_msg -type DomainEventDeviceRemovedMsg struct { - Dom Domain - DevAlias string -} - -// DomainEventCallbackDeviceRemovedMsg is libvirt's remote_domain_event_callback_device_removed_msg -type DomainEventCallbackDeviceRemovedMsg struct { - CallbackID int32 - Msg DomainEventDeviceRemovedMsg -} - -// DomainEventBlockJob2Msg is libvirt's remote_domain_event_block_job_2_msg -type DomainEventBlockJob2Msg struct { - CallbackID int32 - Dom Domain - Dst string - Type int32 - Status int32 -} - -// DomainEventBlockThresholdMsg is libvirt's remote_domain_event_block_threshold_msg -type DomainEventBlockThresholdMsg struct { - CallbackID int32 - Dom Domain - Dev string - Path OptString - Threshold uint64 - Excess uint64 -} - -// DomainEventCallbackTunableMsg is libvirt's remote_domain_event_callback_tunable_msg -type DomainEventCallbackTunableMsg struct { - CallbackID int32 - Dom Domain - Params []TypedParam -} - -// DomainEventCallbackDeviceAddedMsg is libvirt's remote_domain_event_callback_device_added_msg -type DomainEventCallbackDeviceAddedMsg struct { - CallbackID int32 - Dom Domain - DevAlias string -} - -// ConnectEventConnectionClosedMsg is libvirt's remote_connect_event_connection_closed_msg -type ConnectEventConnectionClosedMsg struct { - Reason int32 -} - -// ConnectGetCPUModelNamesArgs is libvirt's remote_connect_get_cpu_model_names_args -type ConnectGetCPUModelNamesArgs struct { - Arch string - NeedResults int32 - Flags uint32 -} - -// ConnectGetCPUModelNamesRet is libvirt's remote_connect_get_cpu_model_names_ret -type ConnectGetCPUModelNamesRet struct { - Models []string - Ret int32 -} - -// ConnectNetworkEventRegisterAnyArgs is libvirt's remote_connect_network_event_register_any_args -type ConnectNetworkEventRegisterAnyArgs struct { - EventID int32 - Net OptNetwork -} - -// ConnectNetworkEventRegisterAnyRet is libvirt's remote_connect_network_event_register_any_ret -type ConnectNetworkEventRegisterAnyRet struct { - CallbackID int32 -} - -// ConnectNetworkEventDeregisterAnyArgs is libvirt's remote_connect_network_event_deregister_any_args -type ConnectNetworkEventDeregisterAnyArgs struct { - CallbackID int32 -} - -// NetworkEventLifecycleMsg is libvirt's remote_network_event_lifecycle_msg -type NetworkEventLifecycleMsg struct { - CallbackID int32 - Net Network - Event int32 - Detail int32 -} - -// ConnectStoragePoolEventRegisterAnyArgs is libvirt's remote_connect_storage_pool_event_register_any_args -type ConnectStoragePoolEventRegisterAnyArgs struct { - EventID int32 - Pool OptStoragePool -} - -// ConnectStoragePoolEventRegisterAnyRet is libvirt's remote_connect_storage_pool_event_register_any_ret -type ConnectStoragePoolEventRegisterAnyRet struct { - CallbackID int32 -} - -// ConnectStoragePoolEventDeregisterAnyArgs is libvirt's remote_connect_storage_pool_event_deregister_any_args -type ConnectStoragePoolEventDeregisterAnyArgs struct { - CallbackID int32 -} - -// StoragePoolEventLifecycleMsg is libvirt's remote_storage_pool_event_lifecycle_msg -type StoragePoolEventLifecycleMsg struct { - CallbackID int32 - Pool StoragePool - Event int32 - Detail int32 -} - -// StoragePoolEventRefreshMsg is libvirt's remote_storage_pool_event_refresh_msg -type StoragePoolEventRefreshMsg struct { - CallbackID int32 - Pool StoragePool -} - -// ConnectNodeDeviceEventRegisterAnyArgs is libvirt's remote_connect_node_device_event_register_any_args -type ConnectNodeDeviceEventRegisterAnyArgs struct { - EventID int32 - Dev OptNodeDevice -} - -// ConnectNodeDeviceEventRegisterAnyRet is libvirt's remote_connect_node_device_event_register_any_ret -type ConnectNodeDeviceEventRegisterAnyRet struct { - CallbackID int32 -} - -// ConnectNodeDeviceEventDeregisterAnyArgs is libvirt's remote_connect_node_device_event_deregister_any_args -type ConnectNodeDeviceEventDeregisterAnyArgs struct { - CallbackID int32 -} - -// NodeDeviceEventLifecycleMsg is libvirt's remote_node_device_event_lifecycle_msg -type NodeDeviceEventLifecycleMsg struct { - CallbackID int32 - Dev NodeDevice - Event int32 - Detail int32 -} - -// NodeDeviceEventUpdateMsg is libvirt's remote_node_device_event_update_msg -type NodeDeviceEventUpdateMsg struct { - CallbackID int32 - Dev NodeDevice -} - -// DomainFsfreezeArgs is libvirt's remote_domain_fsfreeze_args -type DomainFsfreezeArgs struct { - Dom Domain - Mountpoints []string - Flags uint32 -} - -// DomainFsfreezeRet is libvirt's remote_domain_fsfreeze_ret -type DomainFsfreezeRet struct { - Filesystems int32 -} - -// DomainFsthawArgs is libvirt's remote_domain_fsthaw_args -type DomainFsthawArgs struct { - Dom Domain - Mountpoints []string - Flags uint32 -} - -// DomainFsthawRet is libvirt's remote_domain_fsthaw_ret -type DomainFsthawRet struct { - Filesystems int32 -} - -// NodeGetFreePagesArgs is libvirt's remote_node_get_free_pages_args -type NodeGetFreePagesArgs struct { - Pages []uint32 - StartCell int32 - CellCount uint32 - Flags uint32 -} - -// NodeGetFreePagesRet is libvirt's remote_node_get_free_pages_ret -type NodeGetFreePagesRet struct { - Counts []uint64 -} - -// NodeAllocPagesArgs is libvirt's remote_node_alloc_pages_args -type NodeAllocPagesArgs struct { - PageSizes []uint32 - PageCounts []uint64 - StartCell int32 - CellCount uint32 - Flags NodeAllocPagesFlags -} - -// NodeAllocPagesRet is libvirt's remote_node_alloc_pages_ret -type NodeAllocPagesRet struct { - Ret int32 -} - -// NetworkDhcpLease is libvirt's remote_network_dhcp_lease -type NetworkDhcpLease struct { - Iface string - Expirytime int64 - Type int32 - Mac OptString - Iaid OptString - Ipaddr string - Prefix uint32 - Hostname OptString - Clientid OptString -} - -// NetworkGetDhcpLeasesArgs is libvirt's remote_network_get_dhcp_leases_args -type NetworkGetDhcpLeasesArgs struct { - Net Network - Mac OptString - NeedResults int32 - Flags uint32 -} - -// NetworkGetDhcpLeasesRet is libvirt's remote_network_get_dhcp_leases_ret -type NetworkGetDhcpLeasesRet struct { - Leases []NetworkDhcpLease - Ret uint32 -} - -// DomainStatsRecord is libvirt's remote_domain_stats_record -type DomainStatsRecord struct { - Dom Domain - Params []TypedParam -} - -// ConnectGetAllDomainStatsArgs is libvirt's remote_connect_get_all_domain_stats_args -type ConnectGetAllDomainStatsArgs struct { - Doms []Domain - Stats uint32 - Flags ConnectGetAllDomainStatsFlags -} - -// DomainEventCallbackAgentLifecycleMsg is libvirt's remote_domain_event_callback_agent_lifecycle_msg -type DomainEventCallbackAgentLifecycleMsg struct { - CallbackID int32 - Dom Domain - State int32 - Reason int32 -} - -// ConnectGetAllDomainStatsRet is libvirt's remote_connect_get_all_domain_stats_ret -type ConnectGetAllDomainStatsRet struct { - RetStats []DomainStatsRecord -} - -// DomainFsinfo is libvirt's remote_domain_fsinfo -type DomainFsinfo struct { - Mountpoint string - Name string - Fstype string - DevAliases []string -} - -// DomainGetFsinfoArgs is libvirt's remote_domain_get_fsinfo_args -type DomainGetFsinfoArgs struct { - Dom Domain - Flags uint32 -} - -// DomainGetFsinfoRet is libvirt's remote_domain_get_fsinfo_ret -type DomainGetFsinfoRet struct { - Info []DomainFsinfo - Ret uint32 -} - -// DomainIPAddr is libvirt's remote_domain_ip_addr -type DomainIPAddr struct { - Type int32 - Addr string - Prefix uint32 -} - -// DomainInterface is libvirt's remote_domain_interface -type DomainInterface struct { - Name string - Hwaddr OptString - Addrs []DomainIPAddr -} - -// DomainInterfaceAddressesArgs is libvirt's remote_domain_interface_addresses_args -type DomainInterfaceAddressesArgs struct { - Dom Domain - Source uint32 - Flags uint32 -} - -// DomainInterfaceAddressesRet is libvirt's remote_domain_interface_addresses_ret -type DomainInterfaceAddressesRet struct { - Ifaces []DomainInterface -} - -// DomainSetUserPasswordArgs is libvirt's remote_domain_set_user_password_args -type DomainSetUserPasswordArgs struct { - Dom Domain - User OptString - Password OptString - Flags DomainSetUserPasswordFlags -} - -// DomainRenameArgs is libvirt's remote_domain_rename_args -type DomainRenameArgs struct { - Dom Domain - NewName OptString - Flags uint32 -} - -// DomainRenameRet is libvirt's remote_domain_rename_ret -type DomainRenameRet struct { - Retcode int32 -} - -// DomainEventCallbackMigrationIterationMsg is libvirt's remote_domain_event_callback_migration_iteration_msg -type DomainEventCallbackMigrationIterationMsg struct { - CallbackID int32 - Dom Domain - Iteration int32 -} - -// DomainEventCallbackJobCompletedMsg is libvirt's remote_domain_event_callback_job_completed_msg -type DomainEventCallbackJobCompletedMsg struct { - CallbackID int32 - Dom Domain - Params []TypedParam -} - -// DomainMigrateStartPostCopyArgs is libvirt's remote_domain_migrate_start_post_copy_args -type DomainMigrateStartPostCopyArgs struct { - Dom Domain - Flags uint32 -} - -// DomainEventCallbackDeviceRemovalFailedMsg is libvirt's remote_domain_event_callback_device_removal_failed_msg -type DomainEventCallbackDeviceRemovalFailedMsg struct { - CallbackID int32 - Dom Domain - DevAlias string -} - -// DomainGetGuestVcpusArgs is libvirt's remote_domain_get_guest_vcpus_args -type DomainGetGuestVcpusArgs struct { - Dom Domain - Flags uint32 -} - -// DomainGetGuestVcpusRet is libvirt's remote_domain_get_guest_vcpus_ret -type DomainGetGuestVcpusRet struct { - Params []TypedParam -} - -// DomainSetGuestVcpusArgs is libvirt's remote_domain_set_guest_vcpus_args -type DomainSetGuestVcpusArgs struct { - Dom Domain - Cpumap string - State int32 - Flags uint32 -} - -// DomainSetVcpuArgs is libvirt's remote_domain_set_vcpu_args -type DomainSetVcpuArgs struct { - Dom Domain - Cpumap string - State int32 - Flags DomainModificationImpact -} - -// DomainEventCallbackMetadataChangeMsg is libvirt's remote_domain_event_callback_metadata_change_msg -type DomainEventCallbackMetadataChangeMsg struct { - CallbackID int32 - Dom Domain - Type int32 - Nsuri OptString -} - -// ConnectSecretEventRegisterAnyArgs is libvirt's remote_connect_secret_event_register_any_args -type ConnectSecretEventRegisterAnyArgs struct { - EventID int32 - OptSecret OptSecret -} - -// ConnectSecretEventRegisterAnyRet is libvirt's remote_connect_secret_event_register_any_ret -type ConnectSecretEventRegisterAnyRet struct { - CallbackID int32 -} - -// ConnectSecretEventDeregisterAnyArgs is libvirt's remote_connect_secret_event_deregister_any_args -type ConnectSecretEventDeregisterAnyArgs struct { - CallbackID int32 -} - -// SecretEventLifecycleMsg is libvirt's remote_secret_event_lifecycle_msg -type SecretEventLifecycleMsg struct { - CallbackID int32 - OptSecret Secret - Event int32 - Detail int32 -} - -// SecretEventValueChangedMsg is libvirt's remote_secret_event_value_changed_msg -type SecretEventValueChangedMsg struct { - CallbackID int32 - OptSecret Secret -} - -// DomainSetBlockThresholdArgs is libvirt's remote_domain_set_block_threshold_args -type DomainSetBlockThresholdArgs struct { - Dom Domain - Dev string - Threshold uint64 - Flags uint32 -} - -// DomainSetLifecycleActionArgs is libvirt's remote_domain_set_lifecycle_action_args -type DomainSetLifecycleActionArgs struct { - Dom Domain - Type uint32 - Action uint32 - Flags DomainModificationImpact -} - - -// TypedParamValue is a discriminated union. -type TypedParamValue interface { - Get() interface{} -} - -// TypedParamValueInt is one of the possible values of the TypedParamValue union. -type TypedParamValueInt struct { - DVal uint32 - I int32 -} -// NewTypedParamValueInt creates a discriminated union value satisfying -// the TypedParamValue interface. -func NewTypedParamValueInt(v int32) *TypedParamValueInt { - return &TypedParamValueInt{DVal: 1, I: v} -} -func decodeTypedParamValueInt(dec *xdr.Decoder) (*TypedParamValueInt, error) { - var v int32 - _, err := dec.Decode(&v) - if err != nil { - return nil, err - } - return NewTypedParamValueInt(v), nil -} -// Get satisfies the TypedParamValue interface. -func (c *TypedParamValueInt) Get() interface{} { return c.I } - -// TypedParamValueUint is one of the possible values of the TypedParamValue union. -type TypedParamValueUint struct { - DVal uint32 - Ui uint32 -} -// NewTypedParamValueUint creates a discriminated union value satisfying -// the TypedParamValue interface. -func NewTypedParamValueUint(v uint32) *TypedParamValueUint { - return &TypedParamValueUint{DVal: 2, Ui: v} -} -func decodeTypedParamValueUint(dec *xdr.Decoder) (*TypedParamValueUint, error) { - var v uint32 - _, err := dec.Decode(&v) - if err != nil { - return nil, err - } - return NewTypedParamValueUint(v), nil -} -// Get satisfies the TypedParamValue interface. -func (c *TypedParamValueUint) Get() interface{} { return c.Ui } - -// TypedParamValueLlong is one of the possible values of the TypedParamValue union. -type TypedParamValueLlong struct { - DVal uint32 - L int64 -} -// NewTypedParamValueLlong creates a discriminated union value satisfying -// the TypedParamValue interface. -func NewTypedParamValueLlong(v int64) *TypedParamValueLlong { - return &TypedParamValueLlong{DVal: 3, L: v} -} -func decodeTypedParamValueLlong(dec *xdr.Decoder) (*TypedParamValueLlong, error) { - var v int64 - _, err := dec.Decode(&v) - if err != nil { - return nil, err - } - return NewTypedParamValueLlong(v), nil -} -// Get satisfies the TypedParamValue interface. -func (c *TypedParamValueLlong) Get() interface{} { return c.L } - -// TypedParamValueUllong is one of the possible values of the TypedParamValue union. -type TypedParamValueUllong struct { - DVal uint32 - Ul uint64 -} -// NewTypedParamValueUllong creates a discriminated union value satisfying -// the TypedParamValue interface. -func NewTypedParamValueUllong(v uint64) *TypedParamValueUllong { - return &TypedParamValueUllong{DVal: 4, Ul: v} -} -func decodeTypedParamValueUllong(dec *xdr.Decoder) (*TypedParamValueUllong, error) { - var v uint64 - _, err := dec.Decode(&v) - if err != nil { - return nil, err - } - return NewTypedParamValueUllong(v), nil -} -// Get satisfies the TypedParamValue interface. -func (c *TypedParamValueUllong) Get() interface{} { return c.Ul } - -// TypedParamValueDouble is one of the possible values of the TypedParamValue union. -type TypedParamValueDouble struct { - DVal uint32 - D float64 -} -// NewTypedParamValueDouble creates a discriminated union value satisfying -// the TypedParamValue interface. -func NewTypedParamValueDouble(v float64) *TypedParamValueDouble { - return &TypedParamValueDouble{DVal: 5, D: v} -} -func decodeTypedParamValueDouble(dec *xdr.Decoder) (*TypedParamValueDouble, error) { - var v float64 - _, err := dec.Decode(&v) - if err != nil { - return nil, err - } - return NewTypedParamValueDouble(v), nil -} -// Get satisfies the TypedParamValue interface. -func (c *TypedParamValueDouble) Get() interface{} { return c.D } - -// TypedParamValueBoolean is one of the possible values of the TypedParamValue union. -type TypedParamValueBoolean struct { - DVal uint32 - B int32 -} -// NewTypedParamValueBoolean creates a discriminated union value satisfying -// the TypedParamValue interface. -func NewTypedParamValueBoolean(v int32) *TypedParamValueBoolean { - return &TypedParamValueBoolean{DVal: 6, B: v} -} -func decodeTypedParamValueBoolean(dec *xdr.Decoder) (*TypedParamValueBoolean, error) { - var v int32 - _, err := dec.Decode(&v) - if err != nil { - return nil, err - } - return NewTypedParamValueBoolean(v), nil -} -// Get satisfies the TypedParamValue interface. -func (c *TypedParamValueBoolean) Get() interface{} { return c.B } - -// TypedParamValueString is one of the possible values of the TypedParamValue union. -type TypedParamValueString struct { - DVal uint32 - S string -} -// NewTypedParamValueString creates a discriminated union value satisfying -// the TypedParamValue interface. -func NewTypedParamValueString(v string) *TypedParamValueString { - return &TypedParamValueString{DVal: 7, S: v} -} -func decodeTypedParamValueString(dec *xdr.Decoder) (*TypedParamValueString, error) { - var v string - _, err := dec.Decode(&v) - if err != nil { - return nil, err - } - return NewTypedParamValueString(v), nil -} -// Get satisfies the TypedParamValue interface. -func (c *TypedParamValueString) Get() interface{} { return c.S } - -func decodeTypedParamValue(dec *xdr.Decoder) (TypedParamValue, error) { - discriminant, _, err := dec.DecodeInt() - if err != nil { - return nil, err - } - var caseval TypedParamValue - switch discriminant { - case 1: - caseval, err = decodeTypedParamValueInt(dec) - case 2: - caseval, err = decodeTypedParamValueUint(dec) - case 3: - caseval, err = decodeTypedParamValueLlong(dec) - case 4: - caseval, err = decodeTypedParamValueUllong(dec) - case 5: - caseval, err = decodeTypedParamValueDouble(dec) - case 6: - caseval, err = decodeTypedParamValueBoolean(dec) - case 7: - caseval, err = decodeTypedParamValueString(dec) - - default: - err = fmt.Errorf("invalid parameter type %v", discriminant) - } - - return caseval, err -} - -// TODO: Generate these. -func decodeTypedParam(dec *xdr.Decoder) (*TypedParam, error) { - name, _, err := dec.DecodeString() - if err != nil { - return nil, err - } - val, err := decodeTypedParamValue(dec) - return &TypedParam{name, val}, nil -} - -func decodeTypedParams(dec *xdr.Decoder) ([]TypedParam, error) { - count, _, err := dec.DecodeInt() - if err != nil { - return nil, err - } - params := make([]TypedParam, count) - for ix := int32(0); ix < count; ix++ { - p, err := decodeTypedParam(dec) - if err != nil { - return nil, err - } - params[ix] = *p - } - - return params, nil -} - - -// ConnectOpen is the go wrapper for REMOTE_PROC_CONNECT_OPEN. -func (l *Libvirt) ConnectOpen(Name OptString, Flags ConnectFlags) (err error) { - var buf bytes.Buffer - - args := ConnectOpenArgs { - Name: Name, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(1, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectClose is the go wrapper for REMOTE_PROC_CONNECT_CLOSE. -func (l *Libvirt) ConnectClose() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(2, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectGetType is the go wrapper for REMOTE_PROC_CONNECT_GET_TYPE. -func (l *Libvirt) ConnectGetType() (rType string, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(3, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Type: string - _, err = dec.Decode(&rType) - if err != nil { - return - } - - return -} - -// ConnectGetVersion is the go wrapper for REMOTE_PROC_CONNECT_GET_VERSION. -func (l *Libvirt) ConnectGetVersion() (rHvVer uint64, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(4, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // HvVer: uint64 - _, err = dec.Decode(&rHvVer) - if err != nil { - return - } - - return -} - -// ConnectGetMaxVcpus is the go wrapper for REMOTE_PROC_CONNECT_GET_MAX_VCPUS. -func (l *Libvirt) ConnectGetMaxVcpus(Type OptString) (rMaxVcpus int32, err error) { - var buf bytes.Buffer - - args := ConnectGetMaxVcpusArgs { - Type: Type, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(5, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // MaxVcpus: int32 - _, err = dec.Decode(&rMaxVcpus) - if err != nil { - return - } - - return -} - -// NodeGetInfo is the go wrapper for REMOTE_PROC_NODE_GET_INFO. -func (l *Libvirt) NodeGetInfo() (rModel [32]int8, rMemory uint64, rCpus int32, rMhz int32, rNodes int32, rSockets int32, rCores int32, rThreads int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(6, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Model: [32]int8 - _, err = dec.Decode(&rModel) - if err != nil { - return - } - // Memory: uint64 - _, err = dec.Decode(&rMemory) - if err != nil { - return - } - // Cpus: int32 - _, err = dec.Decode(&rCpus) - if err != nil { - return - } - // Mhz: int32 - _, err = dec.Decode(&rMhz) - if err != nil { - return - } - // Nodes: int32 - _, err = dec.Decode(&rNodes) - if err != nil { - return - } - // Sockets: int32 - _, err = dec.Decode(&rSockets) - if err != nil { - return - } - // Cores: int32 - _, err = dec.Decode(&rCores) - if err != nil { - return - } - // Threads: int32 - _, err = dec.Decode(&rThreads) - if err != nil { - return - } - - return -} - -// ConnectGetCapabilities is the go wrapper for REMOTE_PROC_CONNECT_GET_CAPABILITIES. -func (l *Libvirt) ConnectGetCapabilities() (rCapabilities string, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(7, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Capabilities: string - _, err = dec.Decode(&rCapabilities) - if err != nil { - return - } - - return -} - -// DomainAttachDevice is the go wrapper for REMOTE_PROC_DOMAIN_ATTACH_DEVICE. -func (l *Libvirt) DomainAttachDevice(Dom Domain, XML string) (err error) { - var buf bytes.Buffer - - args := DomainAttachDeviceArgs { - Dom: Dom, - XML: XML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(8, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainCreate is the go wrapper for REMOTE_PROC_DOMAIN_CREATE. -func (l *Libvirt) DomainCreate(Dom Domain) (err error) { - var buf bytes.Buffer - - args := DomainCreateArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(9, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainCreateXML is the go wrapper for REMOTE_PROC_DOMAIN_CREATE_XML. -func (l *Libvirt) DomainCreateXML(XMLDesc string, Flags DomainCreateFlags) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainCreateXMLArgs { - XMLDesc: XMLDesc, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(10, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainDefineXML is the go wrapper for REMOTE_PROC_DOMAIN_DEFINE_XML. -func (l *Libvirt) DomainDefineXML(XML string) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainDefineXMLArgs { - XML: XML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(11, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainDestroy is the go wrapper for REMOTE_PROC_DOMAIN_DESTROY. -func (l *Libvirt) DomainDestroy(Dom Domain) (err error) { - var buf bytes.Buffer - - args := DomainDestroyArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(12, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainDetachDevice is the go wrapper for REMOTE_PROC_DOMAIN_DETACH_DEVICE. -func (l *Libvirt) DomainDetachDevice(Dom Domain, XML string) (err error) { - var buf bytes.Buffer - - args := DomainDetachDeviceArgs { - Dom: Dom, - XML: XML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(13, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetXMLDesc is the go wrapper for REMOTE_PROC_DOMAIN_GET_XML_DESC. -func (l *Libvirt) DomainGetXMLDesc(Dom Domain, Flags DomainXMLFlags) (rXML string, err error) { - var buf bytes.Buffer - - args := DomainGetXMLDescArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(14, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// DomainGetAutostart is the go wrapper for REMOTE_PROC_DOMAIN_GET_AUTOSTART. -func (l *Libvirt) DomainGetAutostart(Dom Domain) (rAutostart int32, err error) { - var buf bytes.Buffer - - args := DomainGetAutostartArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(15, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Autostart: int32 - _, err = dec.Decode(&rAutostart) - if err != nil { - return - } - - return -} - -// DomainGetInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_INFO. -func (l *Libvirt) DomainGetInfo(Dom Domain) (rState uint8, rMaxMem uint64, rMemory uint64, rNrVirtCPU uint16, rCPUTime uint64, err error) { - var buf bytes.Buffer - - args := DomainGetInfoArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(16, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // State: uint8 - _, err = dec.Decode(&rState) - if err != nil { - return - } - // MaxMem: uint64 - _, err = dec.Decode(&rMaxMem) - if err != nil { - return - } - // Memory: uint64 - _, err = dec.Decode(&rMemory) - if err != nil { - return - } - // NrVirtCPU: uint16 - _, err = dec.Decode(&rNrVirtCPU) - if err != nil { - return - } - // CPUTime: uint64 - _, err = dec.Decode(&rCPUTime) - if err != nil { - return - } - - return -} - -// DomainGetMaxMemory is the go wrapper for REMOTE_PROC_DOMAIN_GET_MAX_MEMORY. -func (l *Libvirt) DomainGetMaxMemory(Dom Domain) (rMemory uint64, err error) { - var buf bytes.Buffer - - args := DomainGetMaxMemoryArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(17, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Memory: uint64 - _, err = dec.Decode(&rMemory) - if err != nil { - return - } - - return -} - -// DomainGetMaxVcpus is the go wrapper for REMOTE_PROC_DOMAIN_GET_MAX_VCPUS. -func (l *Libvirt) DomainGetMaxVcpus(Dom Domain) (rNum int32, err error) { - var buf bytes.Buffer - - args := DomainGetMaxVcpusArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(18, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// DomainGetOsType is the go wrapper for REMOTE_PROC_DOMAIN_GET_OS_TYPE. -func (l *Libvirt) DomainGetOsType(Dom Domain) (rType string, err error) { - var buf bytes.Buffer - - args := DomainGetOsTypeArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(19, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Type: string - _, err = dec.Decode(&rType) - if err != nil { - return - } - - return -} - -// DomainGetVcpus is the go wrapper for REMOTE_PROC_DOMAIN_GET_VCPUS. -func (l *Libvirt) DomainGetVcpus(Dom Domain, Maxinfo int32, Maplen int32) (rInfo []VcpuInfo, rCpumaps []byte, err error) { - var buf bytes.Buffer - - args := DomainGetVcpusArgs { - Dom: Dom, - Maxinfo: Maxinfo, - Maplen: Maplen, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(20, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Info: []VcpuInfo - _, err = dec.Decode(&rInfo) - if err != nil { - return - } - // Cpumaps: []byte - _, err = dec.Decode(&rCpumaps) - if err != nil { - return - } - - return -} - -// ConnectListDefinedDomains is the go wrapper for REMOTE_PROC_CONNECT_LIST_DEFINED_DOMAINS. -func (l *Libvirt) ConnectListDefinedDomains(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListDefinedDomainsArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(21, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// DomainLookupByID is the go wrapper for REMOTE_PROC_DOMAIN_LOOKUP_BY_ID. -func (l *Libvirt) DomainLookupByID(ID int32) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainLookupByIDArgs { - ID: ID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(22, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainLookupByName is the go wrapper for REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME. -func (l *Libvirt) DomainLookupByName(Name string) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainLookupByNameArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(23, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainLookupByUUID is the go wrapper for REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID. -func (l *Libvirt) DomainLookupByUUID(UUID UUID) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainLookupByUUIDArgs { - UUID: UUID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(24, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// ConnectNumOfDefinedDomains is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_DEFINED_DOMAINS. -func (l *Libvirt) ConnectNumOfDefinedDomains() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(25, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// DomainPinVcpu is the go wrapper for REMOTE_PROC_DOMAIN_PIN_VCPU. -func (l *Libvirt) DomainPinVcpu(Dom Domain, Vcpu uint32, Cpumap []byte) (err error) { - var buf bytes.Buffer - - args := DomainPinVcpuArgs { - Dom: Dom, - Vcpu: Vcpu, - Cpumap: Cpumap, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(26, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainReboot is the go wrapper for REMOTE_PROC_DOMAIN_REBOOT. -func (l *Libvirt) DomainReboot(Dom Domain, Flags DomainRebootFlagValues) (err error) { - var buf bytes.Buffer - - args := DomainRebootArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(27, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainResume is the go wrapper for REMOTE_PROC_DOMAIN_RESUME. -func (l *Libvirt) DomainResume(Dom Domain) (err error) { - var buf bytes.Buffer - - args := DomainResumeArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(28, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetAutostart is the go wrapper for REMOTE_PROC_DOMAIN_SET_AUTOSTART. -func (l *Libvirt) DomainSetAutostart(Dom Domain, Autostart int32) (err error) { - var buf bytes.Buffer - - args := DomainSetAutostartArgs { - Dom: Dom, - Autostart: Autostart, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(29, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetMaxMemory is the go wrapper for REMOTE_PROC_DOMAIN_SET_MAX_MEMORY. -func (l *Libvirt) DomainSetMaxMemory(Dom Domain, Memory uint64) (err error) { - var buf bytes.Buffer - - args := DomainSetMaxMemoryArgs { - Dom: Dom, - Memory: Memory, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(30, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetMemory is the go wrapper for REMOTE_PROC_DOMAIN_SET_MEMORY. -func (l *Libvirt) DomainSetMemory(Dom Domain, Memory uint64) (err error) { - var buf bytes.Buffer - - args := DomainSetMemoryArgs { - Dom: Dom, - Memory: Memory, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(31, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetVcpus is the go wrapper for REMOTE_PROC_DOMAIN_SET_VCPUS. -func (l *Libvirt) DomainSetVcpus(Dom Domain, Nvcpus uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetVcpusArgs { - Dom: Dom, - Nvcpus: Nvcpus, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(32, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainShutdown is the go wrapper for REMOTE_PROC_DOMAIN_SHUTDOWN. -func (l *Libvirt) DomainShutdown(Dom Domain) (err error) { - var buf bytes.Buffer - - args := DomainShutdownArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(33, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSuspend is the go wrapper for REMOTE_PROC_DOMAIN_SUSPEND. -func (l *Libvirt) DomainSuspend(Dom Domain) (err error) { - var buf bytes.Buffer - - args := DomainSuspendArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(34, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainUndefine is the go wrapper for REMOTE_PROC_DOMAIN_UNDEFINE. -func (l *Libvirt) DomainUndefine(Dom Domain) (err error) { - var buf bytes.Buffer - - args := DomainUndefineArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(35, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectListDefinedNetworks is the go wrapper for REMOTE_PROC_CONNECT_LIST_DEFINED_NETWORKS. -func (l *Libvirt) ConnectListDefinedNetworks(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListDefinedNetworksArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(36, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// ConnectListDomains is the go wrapper for REMOTE_PROC_CONNECT_LIST_DOMAINS. -func (l *Libvirt) ConnectListDomains(Maxids int32) (rIds []int32, err error) { - var buf bytes.Buffer - - args := ConnectListDomainsArgs { - Maxids: Maxids, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(37, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Ids: []int32 - _, err = dec.Decode(&rIds) - if err != nil { - return - } - - return -} - -// ConnectListNetworks is the go wrapper for REMOTE_PROC_CONNECT_LIST_NETWORKS. -func (l *Libvirt) ConnectListNetworks(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListNetworksArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(38, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// NetworkCreate is the go wrapper for REMOTE_PROC_NETWORK_CREATE. -func (l *Libvirt) NetworkCreate(Net Network) (err error) { - var buf bytes.Buffer - - args := NetworkCreateArgs { - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(39, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NetworkCreateXML is the go wrapper for REMOTE_PROC_NETWORK_CREATE_XML. -func (l *Libvirt) NetworkCreateXML(XML string) (rNet Network, err error) { - var buf bytes.Buffer - - args := NetworkCreateXMLArgs { - XML: XML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(40, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Net: Network - _, err = dec.Decode(&rNet) - if err != nil { - return - } - - return -} - -// NetworkDefineXML is the go wrapper for REMOTE_PROC_NETWORK_DEFINE_XML. -func (l *Libvirt) NetworkDefineXML(XML string) (rNet Network, err error) { - var buf bytes.Buffer - - args := NetworkDefineXMLArgs { - XML: XML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(41, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Net: Network - _, err = dec.Decode(&rNet) - if err != nil { - return - } - - return -} - -// NetworkDestroy is the go wrapper for REMOTE_PROC_NETWORK_DESTROY. -func (l *Libvirt) NetworkDestroy(Net Network) (err error) { - var buf bytes.Buffer - - args := NetworkDestroyArgs { - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(42, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NetworkGetXMLDesc is the go wrapper for REMOTE_PROC_NETWORK_GET_XML_DESC. -func (l *Libvirt) NetworkGetXMLDesc(Net Network, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := NetworkGetXMLDescArgs { - Net: Net, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(43, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// NetworkGetAutostart is the go wrapper for REMOTE_PROC_NETWORK_GET_AUTOSTART. -func (l *Libvirt) NetworkGetAutostart(Net Network) (rAutostart int32, err error) { - var buf bytes.Buffer - - args := NetworkGetAutostartArgs { - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(44, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Autostart: int32 - _, err = dec.Decode(&rAutostart) - if err != nil { - return - } - - return -} - -// NetworkGetBridgeName is the go wrapper for REMOTE_PROC_NETWORK_GET_BRIDGE_NAME. -func (l *Libvirt) NetworkGetBridgeName(Net Network) (rName string, err error) { - var buf bytes.Buffer - - args := NetworkGetBridgeNameArgs { - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(45, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Name: string - _, err = dec.Decode(&rName) - if err != nil { - return - } - - return -} - -// NetworkLookupByName is the go wrapper for REMOTE_PROC_NETWORK_LOOKUP_BY_NAME. -func (l *Libvirt) NetworkLookupByName(Name string) (rNet Network, err error) { - var buf bytes.Buffer - - args := NetworkLookupByNameArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(46, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Net: Network - _, err = dec.Decode(&rNet) - if err != nil { - return - } - - return -} - -// NetworkLookupByUUID is the go wrapper for REMOTE_PROC_NETWORK_LOOKUP_BY_UUID. -func (l *Libvirt) NetworkLookupByUUID(UUID UUID) (rNet Network, err error) { - var buf bytes.Buffer - - args := NetworkLookupByUUIDArgs { - UUID: UUID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(47, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Net: Network - _, err = dec.Decode(&rNet) - if err != nil { - return - } - - return -} - -// NetworkSetAutostart is the go wrapper for REMOTE_PROC_NETWORK_SET_AUTOSTART. -func (l *Libvirt) NetworkSetAutostart(Net Network, Autostart int32) (err error) { - var buf bytes.Buffer - - args := NetworkSetAutostartArgs { - Net: Net, - Autostart: Autostart, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(48, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NetworkUndefine is the go wrapper for REMOTE_PROC_NETWORK_UNDEFINE. -func (l *Libvirt) NetworkUndefine(Net Network) (err error) { - var buf bytes.Buffer - - args := NetworkUndefineArgs { - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(49, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectNumOfDefinedNetworks is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_DEFINED_NETWORKS. -func (l *Libvirt) ConnectNumOfDefinedNetworks() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(50, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectNumOfDomains is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_DOMAINS. -func (l *Libvirt) ConnectNumOfDomains() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(51, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectNumOfNetworks is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_NETWORKS. -func (l *Libvirt) ConnectNumOfNetworks() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(52, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// DomainCoreDump is the go wrapper for REMOTE_PROC_DOMAIN_CORE_DUMP. -func (l *Libvirt) DomainCoreDump(Dom Domain, To string, Flags DomainCoreDumpFlags) (err error) { - var buf bytes.Buffer - - args := DomainCoreDumpArgs { - Dom: Dom, - To: To, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(53, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainRestore is the go wrapper for REMOTE_PROC_DOMAIN_RESTORE. -func (l *Libvirt) DomainRestore(From string) (err error) { - var buf bytes.Buffer - - args := DomainRestoreArgs { - From: From, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(54, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSave is the go wrapper for REMOTE_PROC_DOMAIN_SAVE. -func (l *Libvirt) DomainSave(Dom Domain, To string) (err error) { - var buf bytes.Buffer - - args := DomainSaveArgs { - Dom: Dom, - To: To, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(55, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetSchedulerType is the go wrapper for REMOTE_PROC_DOMAIN_GET_SCHEDULER_TYPE. -func (l *Libvirt) DomainGetSchedulerType(Dom Domain) (rType string, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainGetSchedulerTypeArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(56, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Type: string - _, err = dec.Decode(&rType) - if err != nil { - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainGetSchedulerParameters is the go wrapper for REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS. -func (l *Libvirt) DomainGetSchedulerParameters(Dom Domain, Nparams int32) (rParams []TypedParam, err error) { - var buf bytes.Buffer - - args := DomainGetSchedulerParametersArgs { - Dom: Dom, - Nparams: Nparams, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(57, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - - return -} - -// DomainSetSchedulerParameters is the go wrapper for REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS. -func (l *Libvirt) DomainSetSchedulerParameters(Dom Domain, Params []TypedParam) (err error) { - var buf bytes.Buffer - - args := DomainSetSchedulerParametersArgs { - Dom: Dom, - Params: Params, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(58, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectGetHostname is the go wrapper for REMOTE_PROC_CONNECT_GET_HOSTNAME. -func (l *Libvirt) ConnectGetHostname() (rHostname string, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(59, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Hostname: string - _, err = dec.Decode(&rHostname) - if err != nil { - return - } - - return -} - -// ConnectSupportsFeature is the go wrapper for REMOTE_PROC_CONNECT_SUPPORTS_FEATURE. -func (l *Libvirt) ConnectSupportsFeature(Feature int32) (rSupported int32, err error) { - var buf bytes.Buffer - - args := ConnectSupportsFeatureArgs { - Feature: Feature, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(60, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Supported: int32 - _, err = dec.Decode(&rSupported) - if err != nil { - return - } - - return -} - -// DomainMigratePrepare is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PREPARE. -func (l *Libvirt) DomainMigratePrepare(UriIn OptString, Flags uint64, Dname OptString, Resource uint64) (rCookie []byte, rUriOut OptString, err error) { - var buf bytes.Buffer - - args := DomainMigratePrepareArgs { - UriIn: UriIn, - Flags: Flags, - Dname: Dname, - Resource: Resource, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(61, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Cookie: []byte - _, err = dec.Decode(&rCookie) - if err != nil { - return - } - // UriOut: OptString - _, err = dec.Decode(&rUriOut) - if err != nil { - return - } - - return -} - -// DomainMigratePerform is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PERFORM. -func (l *Libvirt) DomainMigratePerform(Dom Domain, Cookie []byte, Uri string, Flags uint64, Dname OptString, Resource uint64) (err error) { - var buf bytes.Buffer - - args := DomainMigratePerformArgs { - Dom: Dom, - Cookie: Cookie, - Uri: Uri, - Flags: Flags, - Dname: Dname, - Resource: Resource, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(62, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainMigrateFinish is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_FINISH. -func (l *Libvirt) DomainMigrateFinish(Dname string, Cookie []byte, Uri string, Flags uint64) (rDdom Domain, err error) { - var buf bytes.Buffer - - args := DomainMigrateFinishArgs { - Dname: Dname, - Cookie: Cookie, - Uri: Uri, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(63, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Ddom: Domain - _, err = dec.Decode(&rDdom) - if err != nil { - return - } - - return -} - -// DomainBlockStats is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_STATS. -func (l *Libvirt) DomainBlockStats(Dom Domain, Path string) (rRdReq int64, rRdBytes int64, rWrReq int64, rWrBytes int64, rErrs int64, err error) { - var buf bytes.Buffer - - args := DomainBlockStatsArgs { - Dom: Dom, - Path: Path, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(64, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // RdReq: int64 - _, err = dec.Decode(&rRdReq) - if err != nil { - return - } - // RdBytes: int64 - _, err = dec.Decode(&rRdBytes) - if err != nil { - return - } - // WrReq: int64 - _, err = dec.Decode(&rWrReq) - if err != nil { - return - } - // WrBytes: int64 - _, err = dec.Decode(&rWrBytes) - if err != nil { - return - } - // Errs: int64 - _, err = dec.Decode(&rErrs) - if err != nil { - return - } - - return -} - -// DomainInterfaceStats is the go wrapper for REMOTE_PROC_DOMAIN_INTERFACE_STATS. -func (l *Libvirt) DomainInterfaceStats(Dom Domain, Device string) (rRxBytes int64, rRxPackets int64, rRxErrs int64, rRxDrop int64, rTxBytes int64, rTxPackets int64, rTxErrs int64, rTxDrop int64, err error) { - var buf bytes.Buffer - - args := DomainInterfaceStatsArgs { - Dom: Dom, - Device: Device, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(65, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // RxBytes: int64 - _, err = dec.Decode(&rRxBytes) - if err != nil { - return - } - // RxPackets: int64 - _, err = dec.Decode(&rRxPackets) - if err != nil { - return - } - // RxErrs: int64 - _, err = dec.Decode(&rRxErrs) - if err != nil { - return - } - // RxDrop: int64 - _, err = dec.Decode(&rRxDrop) - if err != nil { - return - } - // TxBytes: int64 - _, err = dec.Decode(&rTxBytes) - if err != nil { - return - } - // TxPackets: int64 - _, err = dec.Decode(&rTxPackets) - if err != nil { - return - } - // TxErrs: int64 - _, err = dec.Decode(&rTxErrs) - if err != nil { - return - } - // TxDrop: int64 - _, err = dec.Decode(&rTxDrop) - if err != nil { - return - } - - return -} - -// AuthList is the go wrapper for REMOTE_PROC_AUTH_LIST. -func (l *Libvirt) AuthList() (rTypes []AuthType, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(66, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Types: []AuthType - _, err = dec.Decode(&rTypes) - if err != nil { - return - } - - return -} - -// AuthSaslInit is the go wrapper for REMOTE_PROC_AUTH_SASL_INIT. -func (l *Libvirt) AuthSaslInit() (rMechlist string, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(67, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Mechlist: string - _, err = dec.Decode(&rMechlist) - if err != nil { - return - } - - return -} - -// AuthSaslStart is the go wrapper for REMOTE_PROC_AUTH_SASL_START. -func (l *Libvirt) AuthSaslStart(Mech string, Nil int32, Data []int8) (rComplete int32, rNil int32, rData []int8, err error) { - var buf bytes.Buffer - - args := AuthSaslStartArgs { - Mech: Mech, - Nil: Nil, - Data: Data, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(68, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Complete: int32 - _, err = dec.Decode(&rComplete) - if err != nil { - return - } - // Nil: int32 - _, err = dec.Decode(&rNil) - if err != nil { - return - } - // Data: []int8 - _, err = dec.Decode(&rData) - if err != nil { - return - } - - return -} - -// AuthSaslStep is the go wrapper for REMOTE_PROC_AUTH_SASL_STEP. -func (l *Libvirt) AuthSaslStep(Nil int32, Data []int8) (rComplete int32, rNil int32, rData []int8, err error) { - var buf bytes.Buffer - - args := AuthSaslStepArgs { - Nil: Nil, - Data: Data, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(69, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Complete: int32 - _, err = dec.Decode(&rComplete) - if err != nil { - return - } - // Nil: int32 - _, err = dec.Decode(&rNil) - if err != nil { - return - } - // Data: []int8 - _, err = dec.Decode(&rData) - if err != nil { - return - } - - return -} - -// AuthPolkit is the go wrapper for REMOTE_PROC_AUTH_POLKIT. -func (l *Libvirt) AuthPolkit() (rComplete int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(70, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Complete: int32 - _, err = dec.Decode(&rComplete) - if err != nil { - return - } - - return -} - -// ConnectNumOfStoragePools is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_STORAGE_POOLS. -func (l *Libvirt) ConnectNumOfStoragePools() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(71, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectListStoragePools is the go wrapper for REMOTE_PROC_CONNECT_LIST_STORAGE_POOLS. -func (l *Libvirt) ConnectListStoragePools(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListStoragePoolsArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(72, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// ConnectNumOfDefinedStoragePools is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_DEFINED_STORAGE_POOLS. -func (l *Libvirt) ConnectNumOfDefinedStoragePools() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(73, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectListDefinedStoragePools is the go wrapper for REMOTE_PROC_CONNECT_LIST_DEFINED_STORAGE_POOLS. -func (l *Libvirt) ConnectListDefinedStoragePools(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListDefinedStoragePoolsArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(74, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// ConnectFindStoragePoolSources is the go wrapper for REMOTE_PROC_CONNECT_FIND_STORAGE_POOL_SOURCES. -func (l *Libvirt) ConnectFindStoragePoolSources(Type string, SrcSpec OptString, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := ConnectFindStoragePoolSourcesArgs { - Type: Type, - SrcSpec: SrcSpec, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(75, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// StoragePoolCreateXML is the go wrapper for REMOTE_PROC_STORAGE_POOL_CREATE_XML. -func (l *Libvirt) StoragePoolCreateXML(XML string, Flags StoragePoolCreateFlags) (rPool StoragePool, err error) { - var buf bytes.Buffer - - args := StoragePoolCreateXMLArgs { - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(76, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Pool: StoragePool - _, err = dec.Decode(&rPool) - if err != nil { - return - } - - return -} - -// StoragePoolDefineXML is the go wrapper for REMOTE_PROC_STORAGE_POOL_DEFINE_XML. -func (l *Libvirt) StoragePoolDefineXML(XML string, Flags uint32) (rPool StoragePool, err error) { - var buf bytes.Buffer - - args := StoragePoolDefineXMLArgs { - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(77, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Pool: StoragePool - _, err = dec.Decode(&rPool) - if err != nil { - return - } - - return -} - -// StoragePoolCreate is the go wrapper for REMOTE_PROC_STORAGE_POOL_CREATE. -func (l *Libvirt) StoragePoolCreate(Pool StoragePool, Flags StoragePoolCreateFlags) (err error) { - var buf bytes.Buffer - - args := StoragePoolCreateArgs { - Pool: Pool, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(78, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolBuild is the go wrapper for REMOTE_PROC_STORAGE_POOL_BUILD. -func (l *Libvirt) StoragePoolBuild(Pool StoragePool, Flags StoragePoolBuildFlags) (err error) { - var buf bytes.Buffer - - args := StoragePoolBuildArgs { - Pool: Pool, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(79, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolDestroy is the go wrapper for REMOTE_PROC_STORAGE_POOL_DESTROY. -func (l *Libvirt) StoragePoolDestroy(Pool StoragePool) (err error) { - var buf bytes.Buffer - - args := StoragePoolDestroyArgs { - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(80, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolDelete is the go wrapper for REMOTE_PROC_STORAGE_POOL_DELETE. -func (l *Libvirt) StoragePoolDelete(Pool StoragePool, Flags StoragePoolDeleteFlags) (err error) { - var buf bytes.Buffer - - args := StoragePoolDeleteArgs { - Pool: Pool, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(81, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolUndefine is the go wrapper for REMOTE_PROC_STORAGE_POOL_UNDEFINE. -func (l *Libvirt) StoragePoolUndefine(Pool StoragePool) (err error) { - var buf bytes.Buffer - - args := StoragePoolUndefineArgs { - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(82, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolRefresh is the go wrapper for REMOTE_PROC_STORAGE_POOL_REFRESH. -func (l *Libvirt) StoragePoolRefresh(Pool StoragePool, Flags uint32) (err error) { - var buf bytes.Buffer - - args := StoragePoolRefreshArgs { - Pool: Pool, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(83, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolLookupByName is the go wrapper for REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_NAME. -func (l *Libvirt) StoragePoolLookupByName(Name string) (rPool StoragePool, err error) { - var buf bytes.Buffer - - args := StoragePoolLookupByNameArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(84, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Pool: StoragePool - _, err = dec.Decode(&rPool) - if err != nil { - return - } - - return -} - -// StoragePoolLookupByUUID is the go wrapper for REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_UUID. -func (l *Libvirt) StoragePoolLookupByUUID(UUID UUID) (rPool StoragePool, err error) { - var buf bytes.Buffer - - args := StoragePoolLookupByUUIDArgs { - UUID: UUID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(85, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Pool: StoragePool - _, err = dec.Decode(&rPool) - if err != nil { - return - } - - return -} - -// StoragePoolLookupByVolume is the go wrapper for REMOTE_PROC_STORAGE_POOL_LOOKUP_BY_VOLUME. -func (l *Libvirt) StoragePoolLookupByVolume(Vol StorageVol) (rPool StoragePool, err error) { - var buf bytes.Buffer - - args := StoragePoolLookupByVolumeArgs { - Vol: Vol, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(86, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Pool: StoragePool - _, err = dec.Decode(&rPool) - if err != nil { - return - } - - return -} - -// StoragePoolGetInfo is the go wrapper for REMOTE_PROC_STORAGE_POOL_GET_INFO. -func (l *Libvirt) StoragePoolGetInfo(Pool StoragePool) (rState uint8, rCapacity uint64, rAllocation uint64, rAvailable uint64, err error) { - var buf bytes.Buffer - - args := StoragePoolGetInfoArgs { - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(87, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // State: uint8 - _, err = dec.Decode(&rState) - if err != nil { - return - } - // Capacity: uint64 - _, err = dec.Decode(&rCapacity) - if err != nil { - return - } - // Allocation: uint64 - _, err = dec.Decode(&rAllocation) - if err != nil { - return - } - // Available: uint64 - _, err = dec.Decode(&rAvailable) - if err != nil { - return - } - - return -} - -// StoragePoolGetXMLDesc is the go wrapper for REMOTE_PROC_STORAGE_POOL_GET_XML_DESC. -func (l *Libvirt) StoragePoolGetXMLDesc(Pool StoragePool, Flags StorageXMLFlags) (rXML string, err error) { - var buf bytes.Buffer - - args := StoragePoolGetXMLDescArgs { - Pool: Pool, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(88, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// StoragePoolGetAutostart is the go wrapper for REMOTE_PROC_STORAGE_POOL_GET_AUTOSTART. -func (l *Libvirt) StoragePoolGetAutostart(Pool StoragePool) (rAutostart int32, err error) { - var buf bytes.Buffer - - args := StoragePoolGetAutostartArgs { - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(89, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Autostart: int32 - _, err = dec.Decode(&rAutostart) - if err != nil { - return - } - - return -} - -// StoragePoolSetAutostart is the go wrapper for REMOTE_PROC_STORAGE_POOL_SET_AUTOSTART. -func (l *Libvirt) StoragePoolSetAutostart(Pool StoragePool, Autostart int32) (err error) { - var buf bytes.Buffer - - args := StoragePoolSetAutostartArgs { - Pool: Pool, - Autostart: Autostart, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(90, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolNumOfVolumes is the go wrapper for REMOTE_PROC_STORAGE_POOL_NUM_OF_VOLUMES. -func (l *Libvirt) StoragePoolNumOfVolumes(Pool StoragePool) (rNum int32, err error) { - var buf bytes.Buffer - - args := StoragePoolNumOfVolumesArgs { - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(91, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// StoragePoolListVolumes is the go wrapper for REMOTE_PROC_STORAGE_POOL_LIST_VOLUMES. -func (l *Libvirt) StoragePoolListVolumes(Pool StoragePool, Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := StoragePoolListVolumesArgs { - Pool: Pool, - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(92, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// StorageVolCreateXML is the go wrapper for REMOTE_PROC_STORAGE_VOL_CREATE_XML. -func (l *Libvirt) StorageVolCreateXML(Pool StoragePool, XML string, Flags StorageVolCreateFlags) (rVol StorageVol, err error) { - var buf bytes.Buffer - - args := StorageVolCreateXMLArgs { - Pool: Pool, - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(93, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Vol: StorageVol - _, err = dec.Decode(&rVol) - if err != nil { - return - } - - return -} - -// StorageVolDelete is the go wrapper for REMOTE_PROC_STORAGE_VOL_DELETE. -func (l *Libvirt) StorageVolDelete(Vol StorageVol, Flags StorageVolDeleteFlags) (err error) { - var buf bytes.Buffer - - args := StorageVolDeleteArgs { - Vol: Vol, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(94, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolLookupByName is the go wrapper for REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_NAME. -func (l *Libvirt) StorageVolLookupByName(Pool StoragePool, Name string) (rVol StorageVol, err error) { - var buf bytes.Buffer - - args := StorageVolLookupByNameArgs { - Pool: Pool, - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(95, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Vol: StorageVol - _, err = dec.Decode(&rVol) - if err != nil { - return - } - - return -} - -// StorageVolLookupByKey is the go wrapper for REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_KEY. -func (l *Libvirt) StorageVolLookupByKey(Key string) (rVol StorageVol, err error) { - var buf bytes.Buffer - - args := StorageVolLookupByKeyArgs { - Key: Key, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(96, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Vol: StorageVol - _, err = dec.Decode(&rVol) - if err != nil { - return - } - - return -} - -// StorageVolLookupByPath is the go wrapper for REMOTE_PROC_STORAGE_VOL_LOOKUP_BY_PATH. -func (l *Libvirt) StorageVolLookupByPath(Path string) (rVol StorageVol, err error) { - var buf bytes.Buffer - - args := StorageVolLookupByPathArgs { - Path: Path, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(97, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Vol: StorageVol - _, err = dec.Decode(&rVol) - if err != nil { - return - } - - return -} - -// StorageVolGetInfo is the go wrapper for REMOTE_PROC_STORAGE_VOL_GET_INFO. -func (l *Libvirt) StorageVolGetInfo(Vol StorageVol) (rType int8, rCapacity uint64, rAllocation uint64, err error) { - var buf bytes.Buffer - - args := StorageVolGetInfoArgs { - Vol: Vol, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(98, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Type: int8 - _, err = dec.Decode(&rType) - if err != nil { - return - } - // Capacity: uint64 - _, err = dec.Decode(&rCapacity) - if err != nil { - return - } - // Allocation: uint64 - _, err = dec.Decode(&rAllocation) - if err != nil { - return - } - - return -} - -// StorageVolGetXMLDesc is the go wrapper for REMOTE_PROC_STORAGE_VOL_GET_XML_DESC. -func (l *Libvirt) StorageVolGetXMLDesc(Vol StorageVol, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := StorageVolGetXMLDescArgs { - Vol: Vol, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(99, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// StorageVolGetPath is the go wrapper for REMOTE_PROC_STORAGE_VOL_GET_PATH. -func (l *Libvirt) StorageVolGetPath(Vol StorageVol) (rName string, err error) { - var buf bytes.Buffer - - args := StorageVolGetPathArgs { - Vol: Vol, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(100, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Name: string - _, err = dec.Decode(&rName) - if err != nil { - return - } - - return -} - -// NodeGetCellsFreeMemory is the go wrapper for REMOTE_PROC_NODE_GET_CELLS_FREE_MEMORY. -func (l *Libvirt) NodeGetCellsFreeMemory(StartCell int32, Maxcells int32) (rCells []uint64, err error) { - var buf bytes.Buffer - - args := NodeGetCellsFreeMemoryArgs { - StartCell: StartCell, - Maxcells: Maxcells, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(101, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Cells: []uint64 - _, err = dec.Decode(&rCells) - if err != nil { - return - } - - return -} - -// NodeGetFreeMemory is the go wrapper for REMOTE_PROC_NODE_GET_FREE_MEMORY. -func (l *Libvirt) NodeGetFreeMemory() (rFreeMem uint64, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(102, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // FreeMem: uint64 - _, err = dec.Decode(&rFreeMem) - if err != nil { - return - } - - return -} - -// DomainBlockPeek is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_PEEK. -func (l *Libvirt) DomainBlockPeek(Dom Domain, Path string, Offset uint64, Size uint32, Flags uint32) (rBuffer []byte, err error) { - var buf bytes.Buffer - - args := DomainBlockPeekArgs { - Dom: Dom, - Path: Path, - Offset: Offset, - Size: Size, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(103, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Buffer: []byte - _, err = dec.Decode(&rBuffer) - if err != nil { - return - } - - return -} - -// DomainMemoryPeek is the go wrapper for REMOTE_PROC_DOMAIN_MEMORY_PEEK. -func (l *Libvirt) DomainMemoryPeek(Dom Domain, Offset uint64, Size uint32, Flags DomainMemoryFlags) (rBuffer []byte, err error) { - var buf bytes.Buffer - - args := DomainMemoryPeekArgs { - Dom: Dom, - Offset: Offset, - Size: Size, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(104, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Buffer: []byte - _, err = dec.Decode(&rBuffer) - if err != nil { - return - } - - return -} - -// ConnectDomainEventRegister is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_EVENT_REGISTER. -func (l *Libvirt) ConnectDomainEventRegister() (rCbRegistered int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(105, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CbRegistered: int32 - _, err = dec.Decode(&rCbRegistered) - if err != nil { - return - } - - return -} - -// ConnectDomainEventDeregister is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_EVENT_DEREGISTER. -func (l *Libvirt) ConnectDomainEventDeregister() (rCbRegistered int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(106, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CbRegistered: int32 - _, err = dec.Decode(&rCbRegistered) - if err != nil { - return - } - - return -} - -// DomainEventLifecycle is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_LIFECYCLE. -func (l *Libvirt) DomainEventLifecycle() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(107, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainMigratePrepare2 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PREPARE2. -func (l *Libvirt) DomainMigratePrepare2(UriIn OptString, Flags uint64, Dname OptString, Resource uint64, DomXML string) (rCookie []byte, rUriOut OptString, err error) { - var buf bytes.Buffer - - args := DomainMigratePrepare2Args { - UriIn: UriIn, - Flags: Flags, - Dname: Dname, - Resource: Resource, - DomXML: DomXML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(108, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Cookie: []byte - _, err = dec.Decode(&rCookie) - if err != nil { - return - } - // UriOut: OptString - _, err = dec.Decode(&rUriOut) - if err != nil { - return - } - - return -} - -// DomainMigrateFinish2 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_FINISH2. -func (l *Libvirt) DomainMigrateFinish2(Dname string, Cookie []byte, Uri string, Flags uint64, Retcode int32) (rDdom Domain, err error) { - var buf bytes.Buffer - - args := DomainMigrateFinish2Args { - Dname: Dname, - Cookie: Cookie, - Uri: Uri, - Flags: Flags, - Retcode: Retcode, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(109, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Ddom: Domain - _, err = dec.Decode(&rDdom) - if err != nil { - return - } - - return -} - -// ConnectGetUri is the go wrapper for REMOTE_PROC_CONNECT_GET_URI. -func (l *Libvirt) ConnectGetUri() (rUri string, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(110, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Uri: string - _, err = dec.Decode(&rUri) - if err != nil { - return - } - - return -} - -// NodeNumOfDevices is the go wrapper for REMOTE_PROC_NODE_NUM_OF_DEVICES. -func (l *Libvirt) NodeNumOfDevices(Cap OptString, Flags uint32) (rNum int32, err error) { - var buf bytes.Buffer - - args := NodeNumOfDevicesArgs { - Cap: Cap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(111, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// NodeListDevices is the go wrapper for REMOTE_PROC_NODE_LIST_DEVICES. -func (l *Libvirt) NodeListDevices(Cap OptString, Maxnames int32, Flags uint32) (rNames []string, err error) { - var buf bytes.Buffer - - args := NodeListDevicesArgs { - Cap: Cap, - Maxnames: Maxnames, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(112, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// NodeDeviceLookupByName is the go wrapper for REMOTE_PROC_NODE_DEVICE_LOOKUP_BY_NAME. -func (l *Libvirt) NodeDeviceLookupByName(Name string) (rDev NodeDevice, err error) { - var buf bytes.Buffer - - args := NodeDeviceLookupByNameArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(113, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dev: NodeDevice - _, err = dec.Decode(&rDev) - if err != nil { - return - } - - return -} - -// NodeDeviceGetXMLDesc is the go wrapper for REMOTE_PROC_NODE_DEVICE_GET_XML_DESC. -func (l *Libvirt) NodeDeviceGetXMLDesc(Name string, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := NodeDeviceGetXMLDescArgs { - Name: Name, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(114, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// NodeDeviceGetParent is the go wrapper for REMOTE_PROC_NODE_DEVICE_GET_PARENT. -func (l *Libvirt) NodeDeviceGetParent(Name string) (rParent OptString, err error) { - var buf bytes.Buffer - - args := NodeDeviceGetParentArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(115, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Parent: OptString - _, err = dec.Decode(&rParent) - if err != nil { - return - } - - return -} - -// NodeDeviceNumOfCaps is the go wrapper for REMOTE_PROC_NODE_DEVICE_NUM_OF_CAPS. -func (l *Libvirt) NodeDeviceNumOfCaps(Name string) (rNum int32, err error) { - var buf bytes.Buffer - - args := NodeDeviceNumOfCapsArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(116, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// NodeDeviceListCaps is the go wrapper for REMOTE_PROC_NODE_DEVICE_LIST_CAPS. -func (l *Libvirt) NodeDeviceListCaps(Name string, Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := NodeDeviceListCapsArgs { - Name: Name, - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(117, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// NodeDeviceDettach is the go wrapper for REMOTE_PROC_NODE_DEVICE_DETTACH. -func (l *Libvirt) NodeDeviceDettach(Name string) (err error) { - var buf bytes.Buffer - - args := NodeDeviceDettachArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(118, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeDeviceReAttach is the go wrapper for REMOTE_PROC_NODE_DEVICE_RE_ATTACH. -func (l *Libvirt) NodeDeviceReAttach(Name string) (err error) { - var buf bytes.Buffer - - args := NodeDeviceReAttachArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(119, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeDeviceReset is the go wrapper for REMOTE_PROC_NODE_DEVICE_RESET. -func (l *Libvirt) NodeDeviceReset(Name string) (err error) { - var buf bytes.Buffer - - args := NodeDeviceResetArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(120, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetSecurityLabel is the go wrapper for REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL. -func (l *Libvirt) DomainGetSecurityLabel(Dom Domain) (rLabel []int8, rEnforcing int32, err error) { - var buf bytes.Buffer - - args := DomainGetSecurityLabelArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(121, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Label: []int8 - _, err = dec.Decode(&rLabel) - if err != nil { - return - } - // Enforcing: int32 - _, err = dec.Decode(&rEnforcing) - if err != nil { - return - } - - return -} - -// NodeGetSecurityModel is the go wrapper for REMOTE_PROC_NODE_GET_SECURITY_MODEL. -func (l *Libvirt) NodeGetSecurityModel() (rModel []int8, rDoi []int8, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(122, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Model: []int8 - _, err = dec.Decode(&rModel) - if err != nil { - return - } - // Doi: []int8 - _, err = dec.Decode(&rDoi) - if err != nil { - return - } - - return -} - -// NodeDeviceCreateXML is the go wrapper for REMOTE_PROC_NODE_DEVICE_CREATE_XML. -func (l *Libvirt) NodeDeviceCreateXML(XMLDesc string, Flags uint32) (rDev NodeDevice, err error) { - var buf bytes.Buffer - - args := NodeDeviceCreateXMLArgs { - XMLDesc: XMLDesc, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(123, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dev: NodeDevice - _, err = dec.Decode(&rDev) - if err != nil { - return - } - - return -} - -// NodeDeviceDestroy is the go wrapper for REMOTE_PROC_NODE_DEVICE_DESTROY. -func (l *Libvirt) NodeDeviceDestroy(Name string) (err error) { - var buf bytes.Buffer - - args := NodeDeviceDestroyArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(124, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolCreateXMLFrom is the go wrapper for REMOTE_PROC_STORAGE_VOL_CREATE_XML_FROM. -func (l *Libvirt) StorageVolCreateXMLFrom(Pool StoragePool, XML string, Clonevol StorageVol, Flags StorageVolCreateFlags) (rVol StorageVol, err error) { - var buf bytes.Buffer - - args := StorageVolCreateXMLFromArgs { - Pool: Pool, - XML: XML, - Clonevol: Clonevol, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(125, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Vol: StorageVol - _, err = dec.Decode(&rVol) - if err != nil { - return - } - - return -} - -// ConnectNumOfInterfaces is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_INTERFACES. -func (l *Libvirt) ConnectNumOfInterfaces() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(126, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectListInterfaces is the go wrapper for REMOTE_PROC_CONNECT_LIST_INTERFACES. -func (l *Libvirt) ConnectListInterfaces(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListInterfacesArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(127, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// InterfaceLookupByName is the go wrapper for REMOTE_PROC_INTERFACE_LOOKUP_BY_NAME. -func (l *Libvirt) InterfaceLookupByName(Name string) (rIface Interface, err error) { - var buf bytes.Buffer - - args := InterfaceLookupByNameArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(128, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Iface: Interface - _, err = dec.Decode(&rIface) - if err != nil { - return - } - - return -} - -// InterfaceLookupByMacString is the go wrapper for REMOTE_PROC_INTERFACE_LOOKUP_BY_MAC_STRING. -func (l *Libvirt) InterfaceLookupByMacString(Mac string) (rIface Interface, err error) { - var buf bytes.Buffer - - args := InterfaceLookupByMacStringArgs { - Mac: Mac, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(129, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Iface: Interface - _, err = dec.Decode(&rIface) - if err != nil { - return - } - - return -} - -// InterfaceGetXMLDesc is the go wrapper for REMOTE_PROC_INTERFACE_GET_XML_DESC. -func (l *Libvirt) InterfaceGetXMLDesc(Iface Interface, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := InterfaceGetXMLDescArgs { - Iface: Iface, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(130, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// InterfaceDefineXML is the go wrapper for REMOTE_PROC_INTERFACE_DEFINE_XML. -func (l *Libvirt) InterfaceDefineXML(XML string, Flags uint32) (rIface Interface, err error) { - var buf bytes.Buffer - - args := InterfaceDefineXMLArgs { - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(131, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Iface: Interface - _, err = dec.Decode(&rIface) - if err != nil { - return - } - - return -} - -// InterfaceUndefine is the go wrapper for REMOTE_PROC_INTERFACE_UNDEFINE. -func (l *Libvirt) InterfaceUndefine(Iface Interface) (err error) { - var buf bytes.Buffer - - args := InterfaceUndefineArgs { - Iface: Iface, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(132, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// InterfaceCreate is the go wrapper for REMOTE_PROC_INTERFACE_CREATE. -func (l *Libvirt) InterfaceCreate(Iface Interface, Flags uint32) (err error) { - var buf bytes.Buffer - - args := InterfaceCreateArgs { - Iface: Iface, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(133, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// InterfaceDestroy is the go wrapper for REMOTE_PROC_INTERFACE_DESTROY. -func (l *Libvirt) InterfaceDestroy(Iface Interface, Flags uint32) (err error) { - var buf bytes.Buffer - - args := InterfaceDestroyArgs { - Iface: Iface, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(134, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectDomainXMLFromNative is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_XML_FROM_NATIVE. -func (l *Libvirt) ConnectDomainXMLFromNative(NativeFormat string, NativeConfig string, Flags uint32) (rDomainXML string, err error) { - var buf bytes.Buffer - - args := ConnectDomainXMLFromNativeArgs { - NativeFormat: NativeFormat, - NativeConfig: NativeConfig, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(135, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // DomainXML: string - _, err = dec.Decode(&rDomainXML) - if err != nil { - return - } - - return -} - -// ConnectDomainXMLToNative is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_XML_TO_NATIVE. -func (l *Libvirt) ConnectDomainXMLToNative(NativeFormat string, DomainXML string, Flags uint32) (rNativeConfig string, err error) { - var buf bytes.Buffer - - args := ConnectDomainXMLToNativeArgs { - NativeFormat: NativeFormat, - DomainXML: DomainXML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(136, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // NativeConfig: string - _, err = dec.Decode(&rNativeConfig) - if err != nil { - return - } - - return -} - -// ConnectNumOfDefinedInterfaces is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_DEFINED_INTERFACES. -func (l *Libvirt) ConnectNumOfDefinedInterfaces() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(137, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectListDefinedInterfaces is the go wrapper for REMOTE_PROC_CONNECT_LIST_DEFINED_INTERFACES. -func (l *Libvirt) ConnectListDefinedInterfaces(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListDefinedInterfacesArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(138, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// ConnectNumOfSecrets is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_SECRETS. -func (l *Libvirt) ConnectNumOfSecrets() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(139, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectListSecrets is the go wrapper for REMOTE_PROC_CONNECT_LIST_SECRETS. -func (l *Libvirt) ConnectListSecrets(Maxuuids int32) (rUuids []string, err error) { - var buf bytes.Buffer - - args := ConnectListSecretsArgs { - Maxuuids: Maxuuids, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(140, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Uuids: []string - _, err = dec.Decode(&rUuids) - if err != nil { - return - } - - return -} - -// SecretLookupByUUID is the go wrapper for REMOTE_PROC_SECRET_LOOKUP_BY_UUID. -func (l *Libvirt) SecretLookupByUUID(UUID UUID) (rOptSecret Secret, err error) { - var buf bytes.Buffer - - args := SecretLookupByUUIDArgs { - UUID: UUID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(141, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // OptSecret: Secret - _, err = dec.Decode(&rOptSecret) - if err != nil { - return - } - - return -} - -// SecretDefineXML is the go wrapper for REMOTE_PROC_SECRET_DEFINE_XML. -func (l *Libvirt) SecretDefineXML(XML string, Flags uint32) (rOptSecret Secret, err error) { - var buf bytes.Buffer - - args := SecretDefineXMLArgs { - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(142, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // OptSecret: Secret - _, err = dec.Decode(&rOptSecret) - if err != nil { - return - } - - return -} - -// SecretGetXMLDesc is the go wrapper for REMOTE_PROC_SECRET_GET_XML_DESC. -func (l *Libvirt) SecretGetXMLDesc(OptSecret Secret, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := SecretGetXMLDescArgs { - OptSecret: OptSecret, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(143, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// SecretSetValue is the go wrapper for REMOTE_PROC_SECRET_SET_VALUE. -func (l *Libvirt) SecretSetValue(OptSecret Secret, Value []byte, Flags uint32) (err error) { - var buf bytes.Buffer - - args := SecretSetValueArgs { - OptSecret: OptSecret, - Value: Value, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(144, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// SecretGetValue is the go wrapper for REMOTE_PROC_SECRET_GET_VALUE. -func (l *Libvirt) SecretGetValue(OptSecret Secret, Flags uint32) (rValue []byte, err error) { - var buf bytes.Buffer - - args := SecretGetValueArgs { - OptSecret: OptSecret, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(145, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Value: []byte - _, err = dec.Decode(&rValue) - if err != nil { - return - } - - return -} - -// SecretUndefine is the go wrapper for REMOTE_PROC_SECRET_UNDEFINE. -func (l *Libvirt) SecretUndefine(OptSecret Secret) (err error) { - var buf bytes.Buffer - - args := SecretUndefineArgs { - OptSecret: OptSecret, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(146, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// SecretLookupByUsage is the go wrapper for REMOTE_PROC_SECRET_LOOKUP_BY_USAGE. -func (l *Libvirt) SecretLookupByUsage(UsageType int32, UsageID string) (rOptSecret Secret, err error) { - var buf bytes.Buffer - - args := SecretLookupByUsageArgs { - UsageType: UsageType, - UsageID: UsageID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(147, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // OptSecret: Secret - _, err = dec.Decode(&rOptSecret) - if err != nil { - return - } - - return -} - -// DomainMigratePrepareTunnel is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL. -func (l *Libvirt) DomainMigratePrepareTunnel(Flags uint64, Dname OptString, Resource uint64, DomXML string) (err error) { - var buf bytes.Buffer - - args := DomainMigratePrepareTunnelArgs { - Flags: Flags, - Dname: Dname, - Resource: Resource, - DomXML: DomXML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(148, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectIsSecure is the go wrapper for REMOTE_PROC_CONNECT_IS_SECURE. -func (l *Libvirt) ConnectIsSecure() (rSecure int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(149, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Secure: int32 - _, err = dec.Decode(&rSecure) - if err != nil { - return - } - - return -} - -// DomainIsActive is the go wrapper for REMOTE_PROC_DOMAIN_IS_ACTIVE. -func (l *Libvirt) DomainIsActive(Dom Domain) (rActive int32, err error) { - var buf bytes.Buffer - - args := DomainIsActiveArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(150, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Active: int32 - _, err = dec.Decode(&rActive) - if err != nil { - return - } - - return -} - -// DomainIsPersistent is the go wrapper for REMOTE_PROC_DOMAIN_IS_PERSISTENT. -func (l *Libvirt) DomainIsPersistent(Dom Domain) (rPersistent int32, err error) { - var buf bytes.Buffer - - args := DomainIsPersistentArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(151, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Persistent: int32 - _, err = dec.Decode(&rPersistent) - if err != nil { - return - } - - return -} - -// NetworkIsActive is the go wrapper for REMOTE_PROC_NETWORK_IS_ACTIVE. -func (l *Libvirt) NetworkIsActive(Net Network) (rActive int32, err error) { - var buf bytes.Buffer - - args := NetworkIsActiveArgs { - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(152, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Active: int32 - _, err = dec.Decode(&rActive) - if err != nil { - return - } - - return -} - -// NetworkIsPersistent is the go wrapper for REMOTE_PROC_NETWORK_IS_PERSISTENT. -func (l *Libvirt) NetworkIsPersistent(Net Network) (rPersistent int32, err error) { - var buf bytes.Buffer - - args := NetworkIsPersistentArgs { - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(153, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Persistent: int32 - _, err = dec.Decode(&rPersistent) - if err != nil { - return - } - - return -} - -// StoragePoolIsActive is the go wrapper for REMOTE_PROC_STORAGE_POOL_IS_ACTIVE. -func (l *Libvirt) StoragePoolIsActive(Pool StoragePool) (rActive int32, err error) { - var buf bytes.Buffer - - args := StoragePoolIsActiveArgs { - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(154, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Active: int32 - _, err = dec.Decode(&rActive) - if err != nil { - return - } - - return -} - -// StoragePoolIsPersistent is the go wrapper for REMOTE_PROC_STORAGE_POOL_IS_PERSISTENT. -func (l *Libvirt) StoragePoolIsPersistent(Pool StoragePool) (rPersistent int32, err error) { - var buf bytes.Buffer - - args := StoragePoolIsPersistentArgs { - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(155, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Persistent: int32 - _, err = dec.Decode(&rPersistent) - if err != nil { - return - } - - return -} - -// InterfaceIsActive is the go wrapper for REMOTE_PROC_INTERFACE_IS_ACTIVE. -func (l *Libvirt) InterfaceIsActive(Iface Interface) (rActive int32, err error) { - var buf bytes.Buffer - - args := InterfaceIsActiveArgs { - Iface: Iface, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(156, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Active: int32 - _, err = dec.Decode(&rActive) - if err != nil { - return - } - - return -} - -// ConnectGetLibVersion is the go wrapper for REMOTE_PROC_CONNECT_GET_LIB_VERSION. -func (l *Libvirt) ConnectGetLibVersion() (rLibVer uint64, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(157, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // LibVer: uint64 - _, err = dec.Decode(&rLibVer) - if err != nil { - return - } - - return -} - -// ConnectCompareCPU is the go wrapper for REMOTE_PROC_CONNECT_COMPARE_CPU. -func (l *Libvirt) ConnectCompareCPU(XML string, Flags ConnectCompareCPUFlags) (rResult int32, err error) { - var buf bytes.Buffer - - args := ConnectCompareCPUArgs { - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(158, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Result: int32 - _, err = dec.Decode(&rResult) - if err != nil { - return - } - - return -} - -// DomainMemoryStats is the go wrapper for REMOTE_PROC_DOMAIN_MEMORY_STATS. -func (l *Libvirt) DomainMemoryStats(Dom Domain, MaxStats uint32, Flags uint32) (rStats []DomainMemoryStat, err error) { - var buf bytes.Buffer - - args := DomainMemoryStatsArgs { - Dom: Dom, - MaxStats: MaxStats, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(159, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Stats: []DomainMemoryStat - _, err = dec.Decode(&rStats) - if err != nil { - return - } - - return -} - -// DomainAttachDeviceFlags is the go wrapper for REMOTE_PROC_DOMAIN_ATTACH_DEVICE_FLAGS. -func (l *Libvirt) DomainAttachDeviceFlags(Dom Domain, XML string, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainAttachDeviceFlagsArgs { - Dom: Dom, - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(160, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainDetachDeviceFlags is the go wrapper for REMOTE_PROC_DOMAIN_DETACH_DEVICE_FLAGS. -func (l *Libvirt) DomainDetachDeviceFlags(Dom Domain, XML string, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainDetachDeviceFlagsArgs { - Dom: Dom, - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(161, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectBaselineCPU is the go wrapper for REMOTE_PROC_CONNECT_BASELINE_CPU. -func (l *Libvirt) ConnectBaselineCPU(XMLCPUs []string, Flags ConnectBaselineCPUFlags) (rCPU string, err error) { - var buf bytes.Buffer - - args := ConnectBaselineCPUArgs { - XMLCPUs: XMLCPUs, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(162, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CPU: string - _, err = dec.Decode(&rCPU) - if err != nil { - return - } - - return -} - -// DomainGetJobInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_JOB_INFO. -func (l *Libvirt) DomainGetJobInfo(Dom Domain) (rType int32, rTimeElapsed uint64, rTimeRemaining uint64, rDataTotal uint64, rDataProcessed uint64, rDataRemaining uint64, rMemTotal uint64, rMemProcessed uint64, rMemRemaining uint64, rFileTotal uint64, rFileProcessed uint64, rFileRemaining uint64, err error) { - var buf bytes.Buffer - - args := DomainGetJobInfoArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(163, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Type: int32 - _, err = dec.Decode(&rType) - if err != nil { - return - } - // TimeElapsed: uint64 - _, err = dec.Decode(&rTimeElapsed) - if err != nil { - return - } - // TimeRemaining: uint64 - _, err = dec.Decode(&rTimeRemaining) - if err != nil { - return - } - // DataTotal: uint64 - _, err = dec.Decode(&rDataTotal) - if err != nil { - return - } - // DataProcessed: uint64 - _, err = dec.Decode(&rDataProcessed) - if err != nil { - return - } - // DataRemaining: uint64 - _, err = dec.Decode(&rDataRemaining) - if err != nil { - return - } - // MemTotal: uint64 - _, err = dec.Decode(&rMemTotal) - if err != nil { - return - } - // MemProcessed: uint64 - _, err = dec.Decode(&rMemProcessed) - if err != nil { - return - } - // MemRemaining: uint64 - _, err = dec.Decode(&rMemRemaining) - if err != nil { - return - } - // FileTotal: uint64 - _, err = dec.Decode(&rFileTotal) - if err != nil { - return - } - // FileProcessed: uint64 - _, err = dec.Decode(&rFileProcessed) - if err != nil { - return - } - // FileRemaining: uint64 - _, err = dec.Decode(&rFileRemaining) - if err != nil { - return - } - - return -} - -// DomainAbortJob is the go wrapper for REMOTE_PROC_DOMAIN_ABORT_JOB. -func (l *Libvirt) DomainAbortJob(Dom Domain) (err error) { - var buf bytes.Buffer - - args := DomainAbortJobArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(164, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolWipe is the go wrapper for REMOTE_PROC_STORAGE_VOL_WIPE. -func (l *Libvirt) StorageVolWipe(Vol StorageVol, Flags uint32) (err error) { - var buf bytes.Buffer - - args := StorageVolWipeArgs { - Vol: Vol, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(165, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainMigrateSetMaxDowntime is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_DOWNTIME. -func (l *Libvirt) DomainMigrateSetMaxDowntime(Dom Domain, Downtime uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainMigrateSetMaxDowntimeArgs { - Dom: Dom, - Downtime: Downtime, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(166, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectDomainEventRegisterAny is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_EVENT_REGISTER_ANY. -func (l *Libvirt) ConnectDomainEventRegisterAny(EventID int32) (err error) { - var buf bytes.Buffer - - args := ConnectDomainEventRegisterAnyArgs { - EventID: EventID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(167, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectDomainEventDeregisterAny is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_EVENT_DEREGISTER_ANY. -func (l *Libvirt) ConnectDomainEventDeregisterAny(EventID int32) (err error) { - var buf bytes.Buffer - - args := ConnectDomainEventDeregisterAnyArgs { - EventID: EventID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(168, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventReboot is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_REBOOT. -func (l *Libvirt) DomainEventReboot() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(169, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventRtcChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE. -func (l *Libvirt) DomainEventRtcChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(170, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventWatchdog is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_WATCHDOG. -func (l *Libvirt) DomainEventWatchdog() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(171, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventIOError is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_IO_ERROR. -func (l *Libvirt) DomainEventIOError() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(172, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventGraphics is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_GRAPHICS. -func (l *Libvirt) DomainEventGraphics() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(173, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainUpdateDeviceFlags is the go wrapper for REMOTE_PROC_DOMAIN_UPDATE_DEVICE_FLAGS. -func (l *Libvirt) DomainUpdateDeviceFlags(Dom Domain, XML string, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainUpdateDeviceFlagsArgs { - Dom: Dom, - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(174, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NwfilterLookupByName is the go wrapper for REMOTE_PROC_NWFILTER_LOOKUP_BY_NAME. -func (l *Libvirt) NwfilterLookupByName(Name string) (rOptNwfilter Nwfilter, err error) { - var buf bytes.Buffer - - args := NwfilterLookupByNameArgs { - Name: Name, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(175, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // OptNwfilter: Nwfilter - _, err = dec.Decode(&rOptNwfilter) - if err != nil { - return - } - - return -} - -// NwfilterLookupByUUID is the go wrapper for REMOTE_PROC_NWFILTER_LOOKUP_BY_UUID. -func (l *Libvirt) NwfilterLookupByUUID(UUID UUID) (rOptNwfilter Nwfilter, err error) { - var buf bytes.Buffer - - args := NwfilterLookupByUUIDArgs { - UUID: UUID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(176, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // OptNwfilter: Nwfilter - _, err = dec.Decode(&rOptNwfilter) - if err != nil { - return - } - - return -} - -// NwfilterGetXMLDesc is the go wrapper for REMOTE_PROC_NWFILTER_GET_XML_DESC. -func (l *Libvirt) NwfilterGetXMLDesc(OptNwfilter Nwfilter, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := NwfilterGetXMLDescArgs { - OptNwfilter: OptNwfilter, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(177, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// ConnectNumOfNwfilters is the go wrapper for REMOTE_PROC_CONNECT_NUM_OF_NWFILTERS. -func (l *Libvirt) ConnectNumOfNwfilters() (rNum int32, err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(178, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// ConnectListNwfilters is the go wrapper for REMOTE_PROC_CONNECT_LIST_NWFILTERS. -func (l *Libvirt) ConnectListNwfilters(Maxnames int32) (rNames []string, err error) { - var buf bytes.Buffer - - args := ConnectListNwfiltersArgs { - Maxnames: Maxnames, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(179, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// NwfilterDefineXML is the go wrapper for REMOTE_PROC_NWFILTER_DEFINE_XML. -func (l *Libvirt) NwfilterDefineXML(XML string) (rOptNwfilter Nwfilter, err error) { - var buf bytes.Buffer - - args := NwfilterDefineXMLArgs { - XML: XML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(180, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // OptNwfilter: Nwfilter - _, err = dec.Decode(&rOptNwfilter) - if err != nil { - return - } - - return -} - -// NwfilterUndefine is the go wrapper for REMOTE_PROC_NWFILTER_UNDEFINE. -func (l *Libvirt) NwfilterUndefine(OptNwfilter Nwfilter) (err error) { - var buf bytes.Buffer - - args := NwfilterUndefineArgs { - OptNwfilter: OptNwfilter, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(181, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainManagedSave is the go wrapper for REMOTE_PROC_DOMAIN_MANAGED_SAVE. -func (l *Libvirt) DomainManagedSave(Dom Domain, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainManagedSaveArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(182, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainHasManagedSaveImage is the go wrapper for REMOTE_PROC_DOMAIN_HAS_MANAGED_SAVE_IMAGE. -func (l *Libvirt) DomainHasManagedSaveImage(Dom Domain, Flags uint32) (rResult int32, err error) { - var buf bytes.Buffer - - args := DomainHasManagedSaveImageArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(183, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Result: int32 - _, err = dec.Decode(&rResult) - if err != nil { - return - } - - return -} - -// DomainManagedSaveRemove is the go wrapper for REMOTE_PROC_DOMAIN_MANAGED_SAVE_REMOVE. -func (l *Libvirt) DomainManagedSaveRemove(Dom Domain, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainManagedSaveRemoveArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(184, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSnapshotCreateXML is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_CREATE_XML. -func (l *Libvirt) DomainSnapshotCreateXML(Dom Domain, XMLDesc string, Flags uint32) (rSnap DomainSnapshot, err error) { - var buf bytes.Buffer - - args := DomainSnapshotCreateXMLArgs { - Dom: Dom, - XMLDesc: XMLDesc, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(185, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Snap: DomainSnapshot - _, err = dec.Decode(&rSnap) - if err != nil { - return - } - - return -} - -// DomainSnapshotGetXMLDesc is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_GET_XML_DESC. -func (l *Libvirt) DomainSnapshotGetXMLDesc(Snap DomainSnapshot, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := DomainSnapshotGetXMLDescArgs { - Snap: Snap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(186, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// DomainSnapshotNum is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_NUM. -func (l *Libvirt) DomainSnapshotNum(Dom Domain, Flags uint32) (rNum int32, err error) { - var buf bytes.Buffer - - args := DomainSnapshotNumArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(187, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// DomainSnapshotListNames is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_NAMES. -func (l *Libvirt) DomainSnapshotListNames(Dom Domain, Maxnames int32, Flags uint32) (rNames []string, err error) { - var buf bytes.Buffer - - args := DomainSnapshotListNamesArgs { - Dom: Dom, - Maxnames: Maxnames, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(188, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// DomainSnapshotLookupByName is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_LOOKUP_BY_NAME. -func (l *Libvirt) DomainSnapshotLookupByName(Dom Domain, Name string, Flags uint32) (rSnap DomainSnapshot, err error) { - var buf bytes.Buffer - - args := DomainSnapshotLookupByNameArgs { - Dom: Dom, - Name: Name, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(189, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Snap: DomainSnapshot - _, err = dec.Decode(&rSnap) - if err != nil { - return - } - - return -} - -// DomainHasCurrentSnapshot is the go wrapper for REMOTE_PROC_DOMAIN_HAS_CURRENT_SNAPSHOT. -func (l *Libvirt) DomainHasCurrentSnapshot(Dom Domain, Flags uint32) (rResult int32, err error) { - var buf bytes.Buffer - - args := DomainHasCurrentSnapshotArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(190, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Result: int32 - _, err = dec.Decode(&rResult) - if err != nil { - return - } - - return -} - -// DomainSnapshotCurrent is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_CURRENT. -func (l *Libvirt) DomainSnapshotCurrent(Dom Domain, Flags uint32) (rSnap DomainSnapshot, err error) { - var buf bytes.Buffer - - args := DomainSnapshotCurrentArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(191, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Snap: DomainSnapshot - _, err = dec.Decode(&rSnap) - if err != nil { - return - } - - return -} - -// DomainRevertToSnapshot is the go wrapper for REMOTE_PROC_DOMAIN_REVERT_TO_SNAPSHOT. -func (l *Libvirt) DomainRevertToSnapshot(Snap DomainSnapshot, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainRevertToSnapshotArgs { - Snap: Snap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(192, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSnapshotDelete is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_DELETE. -func (l *Libvirt) DomainSnapshotDelete(Snap DomainSnapshot, Flags DomainSnapshotDeleteFlags) (err error) { - var buf bytes.Buffer - - args := DomainSnapshotDeleteArgs { - Snap: Snap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(193, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetBlockInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_BLOCK_INFO. -func (l *Libvirt) DomainGetBlockInfo(Dom Domain, Path string, Flags uint32) (rAllocation uint64, rCapacity uint64, rPhysical uint64, err error) { - var buf bytes.Buffer - - args := DomainGetBlockInfoArgs { - Dom: Dom, - Path: Path, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(194, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Allocation: uint64 - _, err = dec.Decode(&rAllocation) - if err != nil { - return - } - // Capacity: uint64 - _, err = dec.Decode(&rCapacity) - if err != nil { - return - } - // Physical: uint64 - _, err = dec.Decode(&rPhysical) - if err != nil { - return - } - - return -} - -// DomainEventIOErrorReason is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON. -func (l *Libvirt) DomainEventIOErrorReason() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(195, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainCreateWithFlags is the go wrapper for REMOTE_PROC_DOMAIN_CREATE_WITH_FLAGS. -func (l *Libvirt) DomainCreateWithFlags(Dom Domain, Flags uint32) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainCreateWithFlagsArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(196, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainSetMemoryParameters is the go wrapper for REMOTE_PROC_DOMAIN_SET_MEMORY_PARAMETERS. -func (l *Libvirt) DomainSetMemoryParameters(Dom Domain, Params []TypedParam, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetMemoryParametersArgs { - Dom: Dom, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(197, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetMemoryParameters is the go wrapper for REMOTE_PROC_DOMAIN_GET_MEMORY_PARAMETERS. -func (l *Libvirt) DomainGetMemoryParameters(Dom Domain, Nparams int32, Flags uint32) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainGetMemoryParametersArgs { - Dom: Dom, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(198, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainSetVcpusFlags is the go wrapper for REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS. -func (l *Libvirt) DomainSetVcpusFlags(Dom Domain, Nvcpus uint32, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetVcpusFlagsArgs { - Dom: Dom, - Nvcpus: Nvcpus, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(199, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetVcpusFlags is the go wrapper for REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS. -func (l *Libvirt) DomainGetVcpusFlags(Dom Domain, Flags uint32) (rNum int32, err error) { - var buf bytes.Buffer - - args := DomainGetVcpusFlagsArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(200, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// DomainOpenConsole is the go wrapper for REMOTE_PROC_DOMAIN_OPEN_CONSOLE. -func (l *Libvirt) DomainOpenConsole(Dom Domain, DevName OptString, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainOpenConsoleArgs { - Dom: Dom, - DevName: DevName, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(201, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainIsUpdated is the go wrapper for REMOTE_PROC_DOMAIN_IS_UPDATED. -func (l *Libvirt) DomainIsUpdated(Dom Domain) (rUpdated int32, err error) { - var buf bytes.Buffer - - args := DomainIsUpdatedArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(202, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Updated: int32 - _, err = dec.Decode(&rUpdated) - if err != nil { - return - } - - return -} - -// ConnectGetSysinfo is the go wrapper for REMOTE_PROC_CONNECT_GET_SYSINFO. -func (l *Libvirt) ConnectGetSysinfo(Flags uint32) (rSysinfo string, err error) { - var buf bytes.Buffer - - args := ConnectGetSysinfoArgs { - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(203, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Sysinfo: string - _, err = dec.Decode(&rSysinfo) - if err != nil { - return - } - - return -} - -// DomainSetMemoryFlags is the go wrapper for REMOTE_PROC_DOMAIN_SET_MEMORY_FLAGS. -func (l *Libvirt) DomainSetMemoryFlags(Dom Domain, Memory uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetMemoryFlagsArgs { - Dom: Dom, - Memory: Memory, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(204, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetBlkioParameters is the go wrapper for REMOTE_PROC_DOMAIN_SET_BLKIO_PARAMETERS. -func (l *Libvirt) DomainSetBlkioParameters(Dom Domain, Params []TypedParam, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetBlkioParametersArgs { - Dom: Dom, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(205, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetBlkioParameters is the go wrapper for REMOTE_PROC_DOMAIN_GET_BLKIO_PARAMETERS. -func (l *Libvirt) DomainGetBlkioParameters(Dom Domain, Nparams int32, Flags uint32) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainGetBlkioParametersArgs { - Dom: Dom, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(206, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainMigrateSetMaxSpeed is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_SET_MAX_SPEED. -func (l *Libvirt) DomainMigrateSetMaxSpeed(Dom Domain, Bandwidth uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainMigrateSetMaxSpeedArgs { - Dom: Dom, - Bandwidth: Bandwidth, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(207, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolUpload is the go wrapper for REMOTE_PROC_STORAGE_VOL_UPLOAD. -func (l *Libvirt) StorageVolUpload(Vol StorageVol, Offset uint64, Length uint64, Flags StorageVolUploadFlags) (err error) { - var buf bytes.Buffer - - args := StorageVolUploadArgs { - Vol: Vol, - Offset: Offset, - Length: Length, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(208, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolDownload is the go wrapper for REMOTE_PROC_STORAGE_VOL_DOWNLOAD. -func (l *Libvirt) StorageVolDownload(Vol StorageVol, Offset uint64, Length uint64, Flags StorageVolDownloadFlags) (err error) { - var buf bytes.Buffer - - args := StorageVolDownloadArgs { - Vol: Vol, - Offset: Offset, - Length: Length, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(209, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainInjectNmi is the go wrapper for REMOTE_PROC_DOMAIN_INJECT_NMI. -func (l *Libvirt) DomainInjectNmi(Dom Domain, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainInjectNmiArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(210, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainScreenshot is the go wrapper for REMOTE_PROC_DOMAIN_SCREENSHOT. -func (l *Libvirt) DomainScreenshot(Dom Domain, Screen uint32, Flags uint32) (rMime OptString, err error) { - var buf bytes.Buffer - - args := DomainScreenshotArgs { - Dom: Dom, - Screen: Screen, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(211, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Mime: OptString - _, err = dec.Decode(&rMime) - if err != nil { - return - } - - return -} - -// DomainGetState is the go wrapper for REMOTE_PROC_DOMAIN_GET_STATE. -func (l *Libvirt) DomainGetState(Dom Domain, Flags uint32) (rState int32, rReason int32, err error) { - var buf bytes.Buffer - - args := DomainGetStateArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(212, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // State: int32 - _, err = dec.Decode(&rState) - if err != nil { - return - } - // Reason: int32 - _, err = dec.Decode(&rReason) - if err != nil { - return - } - - return -} - -// DomainMigrateBegin3 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_BEGIN3. -func (l *Libvirt) DomainMigrateBegin3(Dom Domain, Xmlin OptString, Flags uint64, Dname OptString, Resource uint64) (rCookieOut []byte, rXML string, err error) { - var buf bytes.Buffer - - args := DomainMigrateBegin3Args { - Dom: Dom, - Xmlin: Xmlin, - Flags: Flags, - Dname: Dname, - Resource: Resource, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(213, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// DomainMigratePrepare3 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PREPARE3. -func (l *Libvirt) DomainMigratePrepare3(CookieIn []byte, UriIn OptString, Flags uint64, Dname OptString, Resource uint64, DomXML string) (rCookieOut []byte, rUriOut OptString, err error) { - var buf bytes.Buffer - - args := DomainMigratePrepare3Args { - CookieIn: CookieIn, - UriIn: UriIn, - Flags: Flags, - Dname: Dname, - Resource: Resource, - DomXML: DomXML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(214, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - // UriOut: OptString - _, err = dec.Decode(&rUriOut) - if err != nil { - return - } - - return -} - -// DomainMigratePrepareTunnel3 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3. -func (l *Libvirt) DomainMigratePrepareTunnel3(CookieIn []byte, Flags uint64, Dname OptString, Resource uint64, DomXML string) (rCookieOut []byte, err error) { - var buf bytes.Buffer - - args := DomainMigratePrepareTunnel3Args { - CookieIn: CookieIn, - Flags: Flags, - Dname: Dname, - Resource: Resource, - DomXML: DomXML, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(215, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - - return -} - -// DomainMigratePerform3 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PERFORM3. -func (l *Libvirt) DomainMigratePerform3(Dom Domain, Xmlin OptString, CookieIn []byte, Dconnuri OptString, Uri OptString, Flags uint64, Dname OptString, Resource uint64) (rCookieOut []byte, err error) { - var buf bytes.Buffer - - args := DomainMigratePerform3Args { - Dom: Dom, - Xmlin: Xmlin, - CookieIn: CookieIn, - Dconnuri: Dconnuri, - Uri: Uri, - Flags: Flags, - Dname: Dname, - Resource: Resource, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(216, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - - return -} - -// DomainMigrateFinish3 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_FINISH3. -func (l *Libvirt) DomainMigrateFinish3(Dname string, CookieIn []byte, Dconnuri OptString, Uri OptString, Flags uint64, Cancelled int32) (rDom Domain, rCookieOut []byte, err error) { - var buf bytes.Buffer - - args := DomainMigrateFinish3Args { - Dname: Dname, - CookieIn: CookieIn, - Dconnuri: Dconnuri, - Uri: Uri, - Flags: Flags, - Cancelled: Cancelled, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(217, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - - return -} - -// DomainMigrateConfirm3 is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_CONFIRM3. -func (l *Libvirt) DomainMigrateConfirm3(Dom Domain, CookieIn []byte, Flags uint64, Cancelled int32) (err error) { - var buf bytes.Buffer - - args := DomainMigrateConfirm3Args { - Dom: Dom, - CookieIn: CookieIn, - Flags: Flags, - Cancelled: Cancelled, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(218, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetSchedulerParametersFlags is the go wrapper for REMOTE_PROC_DOMAIN_SET_SCHEDULER_PARAMETERS_FLAGS. -func (l *Libvirt) DomainSetSchedulerParametersFlags(Dom Domain, Params []TypedParam, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetSchedulerParametersFlagsArgs { - Dom: Dom, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(219, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// InterfaceChangeBegin is the go wrapper for REMOTE_PROC_INTERFACE_CHANGE_BEGIN. -func (l *Libvirt) InterfaceChangeBegin(Flags uint32) (err error) { - var buf bytes.Buffer - - args := InterfaceChangeBeginArgs { - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(220, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// InterfaceChangeCommit is the go wrapper for REMOTE_PROC_INTERFACE_CHANGE_COMMIT. -func (l *Libvirt) InterfaceChangeCommit(Flags uint32) (err error) { - var buf bytes.Buffer - - args := InterfaceChangeCommitArgs { - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(221, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// InterfaceChangeRollback is the go wrapper for REMOTE_PROC_INTERFACE_CHANGE_ROLLBACK. -func (l *Libvirt) InterfaceChangeRollback(Flags uint32) (err error) { - var buf bytes.Buffer - - args := InterfaceChangeRollbackArgs { - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(222, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetSchedulerParametersFlags is the go wrapper for REMOTE_PROC_DOMAIN_GET_SCHEDULER_PARAMETERS_FLAGS. -func (l *Libvirt) DomainGetSchedulerParametersFlags(Dom Domain, Nparams int32, Flags uint32) (rParams []TypedParam, err error) { - var buf bytes.Buffer - - args := DomainGetSchedulerParametersFlagsArgs { - Dom: Dom, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(223, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - - return -} - -// DomainEventControlError is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR. -func (l *Libvirt) DomainEventControlError() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(224, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainPinVcpuFlags is the go wrapper for REMOTE_PROC_DOMAIN_PIN_VCPU_FLAGS. -func (l *Libvirt) DomainPinVcpuFlags(Dom Domain, Vcpu uint32, Cpumap []byte, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainPinVcpuFlagsArgs { - Dom: Dom, - Vcpu: Vcpu, - Cpumap: Cpumap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(225, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSendKey is the go wrapper for REMOTE_PROC_DOMAIN_SEND_KEY. -func (l *Libvirt) DomainSendKey(Dom Domain, Codeset uint32, Holdtime uint32, Keycodes []uint32, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSendKeyArgs { - Dom: Dom, - Codeset: Codeset, - Holdtime: Holdtime, - Keycodes: Keycodes, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(226, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeGetCPUStats is the go wrapper for REMOTE_PROC_NODE_GET_CPU_STATS. -func (l *Libvirt) NodeGetCPUStats(CPUNum int32, Nparams int32, Flags uint32) (rParams []NodeGetCPUStats, rNparams int32, err error) { - var buf bytes.Buffer - - args := NodeGetCPUStatsArgs { - CPUNum: CPUNum, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(227, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []NodeGetCPUStats - _, err = dec.Decode(&rParams) - if err != nil { - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// NodeGetMemoryStats is the go wrapper for REMOTE_PROC_NODE_GET_MEMORY_STATS. -func (l *Libvirt) NodeGetMemoryStats(Nparams int32, CellNum int32, Flags uint32) (rParams []NodeGetMemoryStats, rNparams int32, err error) { - var buf bytes.Buffer - - args := NodeGetMemoryStatsArgs { - Nparams: Nparams, - CellNum: CellNum, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(228, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []NodeGetMemoryStats - _, err = dec.Decode(&rParams) - if err != nil { - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainGetControlInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_CONTROL_INFO. -func (l *Libvirt) DomainGetControlInfo(Dom Domain, Flags uint32) (rState uint32, rDetails uint32, rStateTime uint64, err error) { - var buf bytes.Buffer - - args := DomainGetControlInfoArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(229, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // State: uint32 - _, err = dec.Decode(&rState) - if err != nil { - return - } - // Details: uint32 - _, err = dec.Decode(&rDetails) - if err != nil { - return - } - // StateTime: uint64 - _, err = dec.Decode(&rStateTime) - if err != nil { - return - } - - return -} - -// DomainGetVcpuPinInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_VCPU_PIN_INFO. -func (l *Libvirt) DomainGetVcpuPinInfo(Dom Domain, Ncpumaps int32, Maplen int32, Flags uint32) (rCpumaps []byte, rNum int32, err error) { - var buf bytes.Buffer - - args := DomainGetVcpuPinInfoArgs { - Dom: Dom, - Ncpumaps: Ncpumaps, - Maplen: Maplen, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(230, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Cpumaps: []byte - _, err = dec.Decode(&rCpumaps) - if err != nil { - return - } - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// DomainUndefineFlags is the go wrapper for REMOTE_PROC_DOMAIN_UNDEFINE_FLAGS. -func (l *Libvirt) DomainUndefineFlags(Dom Domain, Flags DomainUndefineFlagsValues) (err error) { - var buf bytes.Buffer - - args := DomainUndefineFlagsArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(231, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSaveFlags is the go wrapper for REMOTE_PROC_DOMAIN_SAVE_FLAGS. -func (l *Libvirt) DomainSaveFlags(Dom Domain, To string, Dxml OptString, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSaveFlagsArgs { - Dom: Dom, - To: To, - Dxml: Dxml, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(232, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainRestoreFlags is the go wrapper for REMOTE_PROC_DOMAIN_RESTORE_FLAGS. -func (l *Libvirt) DomainRestoreFlags(From string, Dxml OptString, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainRestoreFlagsArgs { - From: From, - Dxml: Dxml, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(233, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainDestroyFlags is the go wrapper for REMOTE_PROC_DOMAIN_DESTROY_FLAGS. -func (l *Libvirt) DomainDestroyFlags(Dom Domain, Flags DomainDestroyFlagsValues) (err error) { - var buf bytes.Buffer - - args := DomainDestroyFlagsArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(234, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSaveImageGetXMLDesc is the go wrapper for REMOTE_PROC_DOMAIN_SAVE_IMAGE_GET_XML_DESC. -func (l *Libvirt) DomainSaveImageGetXMLDesc(File string, Flags uint32) (rXML string, err error) { - var buf bytes.Buffer - - args := DomainSaveImageGetXMLDescArgs { - File: File, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(235, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// DomainSaveImageDefineXML is the go wrapper for REMOTE_PROC_DOMAIN_SAVE_IMAGE_DEFINE_XML. -func (l *Libvirt) DomainSaveImageDefineXML(File string, Dxml string, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSaveImageDefineXMLArgs { - File: File, - Dxml: Dxml, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(236, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainBlockJobAbort is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_JOB_ABORT. -func (l *Libvirt) DomainBlockJobAbort(Dom Domain, Path string, Flags DomainBlockJobAbortFlags) (err error) { - var buf bytes.Buffer - - args := DomainBlockJobAbortArgs { - Dom: Dom, - Path: Path, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(237, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetBlockJobInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_BLOCK_JOB_INFO. -func (l *Libvirt) DomainGetBlockJobInfo(Dom Domain, Path string, Flags uint32) (rFound int32, rType int32, rBandwidth uint64, rCur uint64, rEnd uint64, err error) { - var buf bytes.Buffer - - args := DomainGetBlockJobInfoArgs { - Dom: Dom, - Path: Path, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(238, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Found: int32 - _, err = dec.Decode(&rFound) - if err != nil { - return - } - // Type: int32 - _, err = dec.Decode(&rType) - if err != nil { - return - } - // Bandwidth: uint64 - _, err = dec.Decode(&rBandwidth) - if err != nil { - return - } - // Cur: uint64 - _, err = dec.Decode(&rCur) - if err != nil { - return - } - // End: uint64 - _, err = dec.Decode(&rEnd) - if err != nil { - return - } - - return -} - -// DomainBlockJobSetSpeed is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_JOB_SET_SPEED. -func (l *Libvirt) DomainBlockJobSetSpeed(Dom Domain, Path string, Bandwidth uint64, Flags DomainBlockJobSetSpeedFlags) (err error) { - var buf bytes.Buffer - - args := DomainBlockJobSetSpeedArgs { - Dom: Dom, - Path: Path, - Bandwidth: Bandwidth, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(239, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainBlockPull is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_PULL. -func (l *Libvirt) DomainBlockPull(Dom Domain, Path string, Bandwidth uint64, Flags DomainBlockPullFlags) (err error) { - var buf bytes.Buffer - - args := DomainBlockPullArgs { - Dom: Dom, - Path: Path, - Bandwidth: Bandwidth, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(240, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventBlockJob is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB. -func (l *Libvirt) DomainEventBlockJob() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(241, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainMigrateGetMaxSpeed is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_GET_MAX_SPEED. -func (l *Libvirt) DomainMigrateGetMaxSpeed(Dom Domain, Flags uint32) (rBandwidth uint64, err error) { - var buf bytes.Buffer - - args := DomainMigrateGetMaxSpeedArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(242, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Bandwidth: uint64 - _, err = dec.Decode(&rBandwidth) - if err != nil { - return - } - - return -} - -// DomainBlockStatsFlags is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_STATS_FLAGS. -func (l *Libvirt) DomainBlockStatsFlags(Dom Domain, Path string, Nparams int32, Flags uint32) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainBlockStatsFlagsArgs { - Dom: Dom, - Path: Path, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(243, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainSnapshotGetParent is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_GET_PARENT. -func (l *Libvirt) DomainSnapshotGetParent(Snap DomainSnapshot, Flags uint32) (rSnap DomainSnapshot, err error) { - var buf bytes.Buffer - - args := DomainSnapshotGetParentArgs { - Snap: Snap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(244, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Snap: DomainSnapshot - _, err = dec.Decode(&rSnap) - if err != nil { - return - } - - return -} - -// DomainReset is the go wrapper for REMOTE_PROC_DOMAIN_RESET. -func (l *Libvirt) DomainReset(Dom Domain, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainResetArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(245, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSnapshotNumChildren is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_NUM_CHILDREN. -func (l *Libvirt) DomainSnapshotNumChildren(Snap DomainSnapshot, Flags uint32) (rNum int32, err error) { - var buf bytes.Buffer - - args := DomainSnapshotNumChildrenArgs { - Snap: Snap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(246, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Num: int32 - _, err = dec.Decode(&rNum) - if err != nil { - return - } - - return -} - -// DomainSnapshotListChildrenNames is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_CHILDREN_NAMES. -func (l *Libvirt) DomainSnapshotListChildrenNames(Snap DomainSnapshot, Maxnames int32, Flags uint32) (rNames []string, err error) { - var buf bytes.Buffer - - args := DomainSnapshotListChildrenNamesArgs { - Snap: Snap, - Maxnames: Maxnames, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(247, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Names: []string - _, err = dec.Decode(&rNames) - if err != nil { - return - } - - return -} - -// DomainEventDiskChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE. -func (l *Libvirt) DomainEventDiskChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(248, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainOpenGraphics is the go wrapper for REMOTE_PROC_DOMAIN_OPEN_GRAPHICS. -func (l *Libvirt) DomainOpenGraphics(Dom Domain, Idx uint32, Flags DomainOpenGraphicsFlags) (err error) { - var buf bytes.Buffer - - args := DomainOpenGraphicsArgs { - Dom: Dom, - Idx: Idx, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(249, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeSuspendForDuration is the go wrapper for REMOTE_PROC_NODE_SUSPEND_FOR_DURATION. -func (l *Libvirt) NodeSuspendForDuration(Target uint32, Duration uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := NodeSuspendForDurationArgs { - Target: Target, - Duration: Duration, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(250, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainBlockResize is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_RESIZE. -func (l *Libvirt) DomainBlockResize(Dom Domain, Disk string, Size uint64, Flags DomainBlockResizeFlags) (err error) { - var buf bytes.Buffer - - args := DomainBlockResizeArgs { - Dom: Dom, - Disk: Disk, - Size: Size, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(251, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetBlockIOTune is the go wrapper for REMOTE_PROC_DOMAIN_SET_BLOCK_IO_TUNE. -func (l *Libvirt) DomainSetBlockIOTune(Dom Domain, Disk string, Params []TypedParam, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetBlockIOTuneArgs { - Dom: Dom, - Disk: Disk, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(252, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetBlockIOTune is the go wrapper for REMOTE_PROC_DOMAIN_GET_BLOCK_IO_TUNE. -func (l *Libvirt) DomainGetBlockIOTune(Dom Domain, Disk OptString, Nparams int32, Flags uint32) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainGetBlockIOTuneArgs { - Dom: Dom, - Disk: Disk, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(253, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainSetNumaParameters is the go wrapper for REMOTE_PROC_DOMAIN_SET_NUMA_PARAMETERS. -func (l *Libvirt) DomainSetNumaParameters(Dom Domain, Params []TypedParam, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetNumaParametersArgs { - Dom: Dom, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(254, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetNumaParameters is the go wrapper for REMOTE_PROC_DOMAIN_GET_NUMA_PARAMETERS. -func (l *Libvirt) DomainGetNumaParameters(Dom Domain, Nparams int32, Flags uint32) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainGetNumaParametersArgs { - Dom: Dom, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(255, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainSetInterfaceParameters is the go wrapper for REMOTE_PROC_DOMAIN_SET_INTERFACE_PARAMETERS. -func (l *Libvirt) DomainSetInterfaceParameters(Dom Domain, Device string, Params []TypedParam, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetInterfaceParametersArgs { - Dom: Dom, - Device: Device, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(256, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetInterfaceParameters is the go wrapper for REMOTE_PROC_DOMAIN_GET_INTERFACE_PARAMETERS. -func (l *Libvirt) DomainGetInterfaceParameters(Dom Domain, Device string, Nparams int32, Flags DomainModificationImpact) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainGetInterfaceParametersArgs { - Dom: Dom, - Device: Device, - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(257, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainShutdownFlags is the go wrapper for REMOTE_PROC_DOMAIN_SHUTDOWN_FLAGS. -func (l *Libvirt) DomainShutdownFlags(Dom Domain, Flags DomainShutdownFlagValues) (err error) { - var buf bytes.Buffer - - args := DomainShutdownFlagsArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(258, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolWipePattern is the go wrapper for REMOTE_PROC_STORAGE_VOL_WIPE_PATTERN. -func (l *Libvirt) StorageVolWipePattern(Vol StorageVol, Algorithm uint32, Flags uint32) (err error) { - var buf bytes.Buffer - - args := StorageVolWipePatternArgs { - Vol: Vol, - Algorithm: Algorithm, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(259, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolResize is the go wrapper for REMOTE_PROC_STORAGE_VOL_RESIZE. -func (l *Libvirt) StorageVolResize(Vol StorageVol, Capacity uint64, Flags StorageVolResizeFlags) (err error) { - var buf bytes.Buffer - - args := StorageVolResizeArgs { - Vol: Vol, - Capacity: Capacity, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(260, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainPmSuspendForDuration is the go wrapper for REMOTE_PROC_DOMAIN_PM_SUSPEND_FOR_DURATION. -func (l *Libvirt) DomainPmSuspendForDuration(Dom Domain, Target uint32, Duration uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainPmSuspendForDurationArgs { - Dom: Dom, - Target: Target, - Duration: Duration, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(261, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetCPUStats is the go wrapper for REMOTE_PROC_DOMAIN_GET_CPU_STATS. -func (l *Libvirt) DomainGetCPUStats(Dom Domain, Nparams uint32, StartCPU int32, Ncpus uint32, Flags TypedParameterFlags) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := DomainGetCPUStatsArgs { - Dom: Dom, - Nparams: Nparams, - StartCPU: StartCPU, - Ncpus: Ncpus, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(262, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainGetDiskErrors is the go wrapper for REMOTE_PROC_DOMAIN_GET_DISK_ERRORS. -func (l *Libvirt) DomainGetDiskErrors(Dom Domain, Maxerrors uint32, Flags uint32) (rErrors []DomainDiskError, rNerrors int32, err error) { - var buf bytes.Buffer - - args := DomainGetDiskErrorsArgs { - Dom: Dom, - Maxerrors: Maxerrors, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(263, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Errors: []DomainDiskError - _, err = dec.Decode(&rErrors) - if err != nil { - return - } - // Nerrors: int32 - _, err = dec.Decode(&rNerrors) - if err != nil { - return - } - - return -} - -// DomainSetMetadata is the go wrapper for REMOTE_PROC_DOMAIN_SET_METADATA. -func (l *Libvirt) DomainSetMetadata(Dom Domain, Type int32, Metadata OptString, Key OptString, Uri OptString, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainSetMetadataArgs { - Dom: Dom, - Type: Type, - Metadata: Metadata, - Key: Key, - Uri: Uri, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(264, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetMetadata is the go wrapper for REMOTE_PROC_DOMAIN_GET_METADATA. -func (l *Libvirt) DomainGetMetadata(Dom Domain, Type int32, Uri OptString, Flags DomainModificationImpact) (rMetadata string, err error) { - var buf bytes.Buffer - - args := DomainGetMetadataArgs { - Dom: Dom, - Type: Type, - Uri: Uri, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(265, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Metadata: string - _, err = dec.Decode(&rMetadata) - if err != nil { - return - } - - return -} - -// DomainBlockRebase is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_REBASE. -func (l *Libvirt) DomainBlockRebase(Dom Domain, Path string, Base OptString, Bandwidth uint64, Flags DomainBlockRebaseFlags) (err error) { - var buf bytes.Buffer - - args := DomainBlockRebaseArgs { - Dom: Dom, - Path: Path, - Base: Base, - Bandwidth: Bandwidth, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(266, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainPmWakeup is the go wrapper for REMOTE_PROC_DOMAIN_PM_WAKEUP. -func (l *Libvirt) DomainPmWakeup(Dom Domain, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainPmWakeupArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(267, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventTrayChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_TRAY_CHANGE. -func (l *Libvirt) DomainEventTrayChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(268, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventPmwakeup is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_PMWAKEUP. -func (l *Libvirt) DomainEventPmwakeup() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(269, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventPmsuspend is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND. -func (l *Libvirt) DomainEventPmsuspend() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(270, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSnapshotIsCurrent is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_IS_CURRENT. -func (l *Libvirt) DomainSnapshotIsCurrent(Snap DomainSnapshot, Flags uint32) (rCurrent int32, err error) { - var buf bytes.Buffer - - args := DomainSnapshotIsCurrentArgs { - Snap: Snap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(271, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Current: int32 - _, err = dec.Decode(&rCurrent) - if err != nil { - return - } - - return -} - -// DomainSnapshotHasMetadata is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_HAS_METADATA. -func (l *Libvirt) DomainSnapshotHasMetadata(Snap DomainSnapshot, Flags uint32) (rMetadata int32, err error) { - var buf bytes.Buffer - - args := DomainSnapshotHasMetadataArgs { - Snap: Snap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(272, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Metadata: int32 - _, err = dec.Decode(&rMetadata) - if err != nil { - return - } - - return -} - -// ConnectListAllDomains is the go wrapper for REMOTE_PROC_CONNECT_LIST_ALL_DOMAINS. -func (l *Libvirt) ConnectListAllDomains(NeedResults int32, Flags ConnectListAllDomainsFlags) (rDomains []Domain, rRet uint32, err error) { - var buf bytes.Buffer - - args := ConnectListAllDomainsArgs { - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(273, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Domains: []Domain - _, err = dec.Decode(&rDomains) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainListAllSnapshots is the go wrapper for REMOTE_PROC_DOMAIN_LIST_ALL_SNAPSHOTS. -func (l *Libvirt) DomainListAllSnapshots(Dom Domain, NeedResults int32, Flags uint32) (rSnapshots []DomainSnapshot, rRet int32, err error) { - var buf bytes.Buffer - - args := DomainListAllSnapshotsArgs { - Dom: Dom, - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(274, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Snapshots: []DomainSnapshot - _, err = dec.Decode(&rSnapshots) - if err != nil { - return - } - // Ret: int32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainSnapshotListAllChildren is the go wrapper for REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_ALL_CHILDREN. -func (l *Libvirt) DomainSnapshotListAllChildren(Snapshot DomainSnapshot, NeedResults int32, Flags uint32) (rSnapshots []DomainSnapshot, rRet int32, err error) { - var buf bytes.Buffer - - args := DomainSnapshotListAllChildrenArgs { - Snapshot: Snapshot, - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(275, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Snapshots: []DomainSnapshot - _, err = dec.Decode(&rSnapshots) - if err != nil { - return - } - // Ret: int32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainEventBalloonChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_BALLOON_CHANGE. -func (l *Libvirt) DomainEventBalloonChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(276, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetHostname is the go wrapper for REMOTE_PROC_DOMAIN_GET_HOSTNAME. -func (l *Libvirt) DomainGetHostname(Dom Domain, Flags uint32) (rHostname string, err error) { - var buf bytes.Buffer - - args := DomainGetHostnameArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(277, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Hostname: string - _, err = dec.Decode(&rHostname) - if err != nil { - return - } - - return -} - -// DomainGetSecurityLabelList is the go wrapper for REMOTE_PROC_DOMAIN_GET_SECURITY_LABEL_LIST. -func (l *Libvirt) DomainGetSecurityLabelList(Dom Domain) (rLabels []DomainGetSecurityLabelRet, rRet int32, err error) { - var buf bytes.Buffer - - args := DomainGetSecurityLabelListArgs { - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(278, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Labels: []DomainGetSecurityLabelRet - _, err = dec.Decode(&rLabels) - if err != nil { - return - } - // Ret: int32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainPinEmulator is the go wrapper for REMOTE_PROC_DOMAIN_PIN_EMULATOR. -func (l *Libvirt) DomainPinEmulator(Dom Domain, Cpumap []byte, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainPinEmulatorArgs { - Dom: Dom, - Cpumap: Cpumap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(279, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetEmulatorPinInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_EMULATOR_PIN_INFO. -func (l *Libvirt) DomainGetEmulatorPinInfo(Dom Domain, Maplen int32, Flags DomainModificationImpact) (rCpumaps []byte, rRet int32, err error) { - var buf bytes.Buffer - - args := DomainGetEmulatorPinInfoArgs { - Dom: Dom, - Maplen: Maplen, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(280, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Cpumaps: []byte - _, err = dec.Decode(&rCpumaps) - if err != nil { - return - } - // Ret: int32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectListAllStoragePools is the go wrapper for REMOTE_PROC_CONNECT_LIST_ALL_STORAGE_POOLS. -func (l *Libvirt) ConnectListAllStoragePools(NeedResults int32, Flags ConnectListAllStoragePoolsFlags) (rPools []StoragePool, rRet uint32, err error) { - var buf bytes.Buffer - - args := ConnectListAllStoragePoolsArgs { - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(281, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Pools: []StoragePool - _, err = dec.Decode(&rPools) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// StoragePoolListAllVolumes is the go wrapper for REMOTE_PROC_STORAGE_POOL_LIST_ALL_VOLUMES. -func (l *Libvirt) StoragePoolListAllVolumes(Pool StoragePool, NeedResults int32, Flags uint32) (rVols []StorageVol, rRet uint32, err error) { - var buf bytes.Buffer - - args := StoragePoolListAllVolumesArgs { - Pool: Pool, - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(282, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Vols: []StorageVol - _, err = dec.Decode(&rVols) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectListAllNetworks is the go wrapper for REMOTE_PROC_CONNECT_LIST_ALL_NETWORKS. -func (l *Libvirt) ConnectListAllNetworks(NeedResults int32, Flags ConnectListAllNetworksFlags) (rNets []Network, rRet uint32, err error) { - var buf bytes.Buffer - - args := ConnectListAllNetworksArgs { - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(283, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Nets: []Network - _, err = dec.Decode(&rNets) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectListAllInterfaces is the go wrapper for REMOTE_PROC_CONNECT_LIST_ALL_INTERFACES. -func (l *Libvirt) ConnectListAllInterfaces(NeedResults int32, Flags ConnectListAllInterfacesFlags) (rIfaces []Interface, rRet uint32, err error) { - var buf bytes.Buffer - - args := ConnectListAllInterfacesArgs { - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(284, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Ifaces: []Interface - _, err = dec.Decode(&rIfaces) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectListAllNodeDevices is the go wrapper for REMOTE_PROC_CONNECT_LIST_ALL_NODE_DEVICES. -func (l *Libvirt) ConnectListAllNodeDevices(NeedResults int32, Flags uint32) (rDevices []NodeDevice, rRet uint32, err error) { - var buf bytes.Buffer - - args := ConnectListAllNodeDevicesArgs { - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(285, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Devices: []NodeDevice - _, err = dec.Decode(&rDevices) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectListAllNwfilters is the go wrapper for REMOTE_PROC_CONNECT_LIST_ALL_NWFILTERS. -func (l *Libvirt) ConnectListAllNwfilters(NeedResults int32, Flags uint32) (rFilters []Nwfilter, rRet uint32, err error) { - var buf bytes.Buffer - - args := ConnectListAllNwfiltersArgs { - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(286, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Filters: []Nwfilter - _, err = dec.Decode(&rFilters) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectListAllSecrets is the go wrapper for REMOTE_PROC_CONNECT_LIST_ALL_SECRETS. -func (l *Libvirt) ConnectListAllSecrets(NeedResults int32, Flags ConnectListAllSecretsFlags) (rSecrets []Secret, rRet uint32, err error) { - var buf bytes.Buffer - - args := ConnectListAllSecretsArgs { - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(287, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Secrets: []Secret - _, err = dec.Decode(&rSecrets) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// NodeSetMemoryParameters is the go wrapper for REMOTE_PROC_NODE_SET_MEMORY_PARAMETERS. -func (l *Libvirt) NodeSetMemoryParameters(Params []TypedParam, Flags uint32) (err error) { - var buf bytes.Buffer - - args := NodeSetMemoryParametersArgs { - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(288, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeGetMemoryParameters is the go wrapper for REMOTE_PROC_NODE_GET_MEMORY_PARAMETERS. -func (l *Libvirt) NodeGetMemoryParameters(Nparams int32, Flags uint32) (rParams []TypedParam, rNparams int32, err error) { - var buf bytes.Buffer - - args := NodeGetMemoryParametersArgs { - Nparams: Nparams, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(289, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - // Nparams: int32 - _, err = dec.Decode(&rNparams) - if err != nil { - return - } - - return -} - -// DomainBlockCommit is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_COMMIT. -func (l *Libvirt) DomainBlockCommit(Dom Domain, Disk string, Base OptString, Top OptString, Bandwidth uint64, Flags DomainBlockCommitFlags) (err error) { - var buf bytes.Buffer - - args := DomainBlockCommitArgs { - Dom: Dom, - Disk: Disk, - Base: Base, - Top: Top, - Bandwidth: Bandwidth, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(290, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NetworkUpdate is the go wrapper for REMOTE_PROC_NETWORK_UPDATE. -func (l *Libvirt) NetworkUpdate(Net Network, Command uint32, Section uint32, ParentIndex int32, XML string, Flags NetworkUpdateFlags) (err error) { - var buf bytes.Buffer - - args := NetworkUpdateArgs { - Net: Net, - Command: Command, - Section: Section, - ParentIndex: ParentIndex, - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(291, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventPmsuspendDisk is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND_DISK. -func (l *Libvirt) DomainEventPmsuspendDisk() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(292, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeGetCPUMap is the go wrapper for REMOTE_PROC_NODE_GET_CPU_MAP. -func (l *Libvirt) NodeGetCPUMap(NeedMap int32, NeedOnline int32, Flags uint32) (rCpumap []byte, rOnline uint32, rRet int32, err error) { - var buf bytes.Buffer - - args := NodeGetCPUMapArgs { - NeedMap: NeedMap, - NeedOnline: NeedOnline, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(293, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Cpumap: []byte - _, err = dec.Decode(&rCpumap) - if err != nil { - return - } - // Online: uint32 - _, err = dec.Decode(&rOnline) - if err != nil { - return - } - // Ret: int32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainFstrim is the go wrapper for REMOTE_PROC_DOMAIN_FSTRIM. -func (l *Libvirt) DomainFstrim(Dom Domain, MountPoint OptString, Minimum uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainFstrimArgs { - Dom: Dom, - MountPoint: MountPoint, - Minimum: Minimum, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(294, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSendProcessSignal is the go wrapper for REMOTE_PROC_DOMAIN_SEND_PROCESS_SIGNAL. -func (l *Libvirt) DomainSendProcessSignal(Dom Domain, PidValue int64, Signum uint32, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSendProcessSignalArgs { - Dom: Dom, - PidValue: PidValue, - Signum: Signum, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(295, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainOpenChannel is the go wrapper for REMOTE_PROC_DOMAIN_OPEN_CHANNEL. -func (l *Libvirt) DomainOpenChannel(Dom Domain, Name OptString, Flags DomainChannelFlags) (err error) { - var buf bytes.Buffer - - args := DomainOpenChannelArgs { - Dom: Dom, - Name: Name, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(296, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeDeviceLookupScsiHostByWwn is the go wrapper for REMOTE_PROC_NODE_DEVICE_LOOKUP_SCSI_HOST_BY_WWN. -func (l *Libvirt) NodeDeviceLookupScsiHostByWwn(Wwnn string, Wwpn string, Flags uint32) (rDev NodeDevice, err error) { - var buf bytes.Buffer - - args := NodeDeviceLookupScsiHostByWwnArgs { - Wwnn: Wwnn, - Wwpn: Wwpn, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(297, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dev: NodeDevice - _, err = dec.Decode(&rDev) - if err != nil { - return - } - - return -} - -// DomainGetJobStats is the go wrapper for REMOTE_PROC_DOMAIN_GET_JOB_STATS. -func (l *Libvirt) DomainGetJobStats(Dom Domain, Flags DomainGetJobStatsFlags) (rType int32, rParams []TypedParam, err error) { - var buf bytes.Buffer - - args := DomainGetJobStatsArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(298, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Type: int32 - _, err = dec.Decode(&rType) - if err != nil { - return - } - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - - return -} - -// DomainMigrateGetCompressionCache is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_GET_COMPRESSION_CACHE. -func (l *Libvirt) DomainMigrateGetCompressionCache(Dom Domain, Flags uint32) (rCacheSize uint64, err error) { - var buf bytes.Buffer - - args := DomainMigrateGetCompressionCacheArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(299, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CacheSize: uint64 - _, err = dec.Decode(&rCacheSize) - if err != nil { - return - } - - return -} - -// DomainMigrateSetCompressionCache is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_SET_COMPRESSION_CACHE. -func (l *Libvirt) DomainMigrateSetCompressionCache(Dom Domain, CacheSize uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainMigrateSetCompressionCacheArgs { - Dom: Dom, - CacheSize: CacheSize, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(300, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeDeviceDetachFlags is the go wrapper for REMOTE_PROC_NODE_DEVICE_DETACH_FLAGS. -func (l *Libvirt) NodeDeviceDetachFlags(Name string, DriverName OptString, Flags uint32) (err error) { - var buf bytes.Buffer - - args := NodeDeviceDetachFlagsArgs { - Name: Name, - DriverName: DriverName, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(301, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainMigrateBegin3Params is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_BEGIN3_PARAMS. -func (l *Libvirt) DomainMigrateBegin3Params(Dom Domain, Params []TypedParam, Flags uint32) (rCookieOut []byte, rXML string, err error) { - var buf bytes.Buffer - - args := DomainMigrateBegin3ParamsArgs { - Dom: Dom, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(302, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// DomainMigratePrepare3Params is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PREPARE3_PARAMS. -func (l *Libvirt) DomainMigratePrepare3Params(Params []TypedParam, CookieIn []byte, Flags uint32) (rCookieOut []byte, rUriOut OptString, err error) { - var buf bytes.Buffer - - args := DomainMigratePrepare3ParamsArgs { - Params: Params, - CookieIn: CookieIn, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(303, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - // UriOut: OptString - _, err = dec.Decode(&rUriOut) - if err != nil { - return - } - - return -} - -// DomainMigratePrepareTunnel3Params is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3_PARAMS. -func (l *Libvirt) DomainMigratePrepareTunnel3Params(Params []TypedParam, CookieIn []byte, Flags uint32) (rCookieOut []byte, err error) { - var buf bytes.Buffer - - args := DomainMigratePrepareTunnel3ParamsArgs { - Params: Params, - CookieIn: CookieIn, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(304, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - - return -} - -// DomainMigratePerform3Params is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_PERFORM3_PARAMS. -func (l *Libvirt) DomainMigratePerform3Params(Dom Domain, Dconnuri OptString, Params []TypedParam, CookieIn []byte, Flags DomainMigrateFlags) (rCookieOut []byte, err error) { - var buf bytes.Buffer - - args := DomainMigratePerform3ParamsArgs { - Dom: Dom, - Dconnuri: Dconnuri, - Params: Params, - CookieIn: CookieIn, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(305, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - - return -} - -// DomainMigrateFinish3Params is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_FINISH3_PARAMS. -func (l *Libvirt) DomainMigrateFinish3Params(Params []TypedParam, CookieIn []byte, Flags uint32, Cancelled int32) (rDom Domain, rCookieOut []byte, err error) { - var buf bytes.Buffer - - args := DomainMigrateFinish3ParamsArgs { - Params: Params, - CookieIn: CookieIn, - Flags: Flags, - Cancelled: Cancelled, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(306, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - // CookieOut: []byte - _, err = dec.Decode(&rCookieOut) - if err != nil { - return - } - - return -} - -// DomainMigrateConfirm3Params is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_CONFIRM3_PARAMS. -func (l *Libvirt) DomainMigrateConfirm3Params(Dom Domain, Params []TypedParam, CookieIn []byte, Flags uint32, Cancelled int32) (err error) { - var buf bytes.Buffer - - args := DomainMigrateConfirm3ParamsArgs { - Dom: Dom, - Params: Params, - CookieIn: CookieIn, - Flags: Flags, - Cancelled: Cancelled, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(307, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetMemoryStatsPeriod is the go wrapper for REMOTE_PROC_DOMAIN_SET_MEMORY_STATS_PERIOD. -func (l *Libvirt) DomainSetMemoryStatsPeriod(Dom Domain, Period int32, Flags DomainMemoryModFlags) (err error) { - var buf bytes.Buffer - - args := DomainSetMemoryStatsPeriodArgs { - Dom: Dom, - Period: Period, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(308, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainCreateXMLWithFiles is the go wrapper for REMOTE_PROC_DOMAIN_CREATE_XML_WITH_FILES. -func (l *Libvirt) DomainCreateXMLWithFiles(XMLDesc string, Flags DomainCreateFlags) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainCreateXMLWithFilesArgs { - XMLDesc: XMLDesc, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(309, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainCreateWithFiles is the go wrapper for REMOTE_PROC_DOMAIN_CREATE_WITH_FILES. -func (l *Libvirt) DomainCreateWithFiles(Dom Domain, Flags DomainCreateFlags) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainCreateWithFilesArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(310, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainEventDeviceRemoved is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_DEVICE_REMOVED. -func (l *Libvirt) DomainEventDeviceRemoved() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(311, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectGetCPUModelNames is the go wrapper for REMOTE_PROC_CONNECT_GET_CPU_MODEL_NAMES. -func (l *Libvirt) ConnectGetCPUModelNames(Arch string, NeedResults int32, Flags uint32) (rModels []string, rRet int32, err error) { - var buf bytes.Buffer - - args := ConnectGetCPUModelNamesArgs { - Arch: Arch, - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(312, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Models: []string - _, err = dec.Decode(&rModels) - if err != nil { - return - } - // Ret: int32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectNetworkEventRegisterAny is the go wrapper for REMOTE_PROC_CONNECT_NETWORK_EVENT_REGISTER_ANY. -func (l *Libvirt) ConnectNetworkEventRegisterAny(EventID int32, Net OptNetwork) (rCallbackID int32, err error) { - var buf bytes.Buffer - - args := ConnectNetworkEventRegisterAnyArgs { - EventID: EventID, - Net: Net, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(313, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CallbackID: int32 - _, err = dec.Decode(&rCallbackID) - if err != nil { - return - } - - return -} - -// ConnectNetworkEventDeregisterAny is the go wrapper for REMOTE_PROC_CONNECT_NETWORK_EVENT_DEREGISTER_ANY. -func (l *Libvirt) ConnectNetworkEventDeregisterAny(CallbackID int32) (err error) { - var buf bytes.Buffer - - args := ConnectNetworkEventDeregisterAnyArgs { - CallbackID: CallbackID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(314, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NetworkEventLifecycle is the go wrapper for REMOTE_PROC_NETWORK_EVENT_LIFECYCLE. -func (l *Libvirt) NetworkEventLifecycle() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(315, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectDomainEventCallbackRegisterAny is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_EVENT_CALLBACK_REGISTER_ANY. -func (l *Libvirt) ConnectDomainEventCallbackRegisterAny(EventID int32, Dom OptDomain) (rCallbackID int32, err error) { - var buf bytes.Buffer - - args := ConnectDomainEventCallbackRegisterAnyArgs { - EventID: EventID, - Dom: Dom, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(316, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CallbackID: int32 - _, err = dec.Decode(&rCallbackID) - if err != nil { - return - } - - return -} - -// ConnectDomainEventCallbackDeregisterAny is the go wrapper for REMOTE_PROC_CONNECT_DOMAIN_EVENT_CALLBACK_DEREGISTER_ANY. -func (l *Libvirt) ConnectDomainEventCallbackDeregisterAny(CallbackID int32) (err error) { - var buf bytes.Buffer - - args := ConnectDomainEventCallbackDeregisterAnyArgs { - CallbackID: CallbackID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(317, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackLifecycle is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_LIFECYCLE. -func (l *Libvirt) DomainEventCallbackLifecycle() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(318, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackReboot is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_REBOOT. -func (l *Libvirt) DomainEventCallbackReboot() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(319, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackRtcChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_RTC_CHANGE. -func (l *Libvirt) DomainEventCallbackRtcChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(320, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackWatchdog is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_WATCHDOG. -func (l *Libvirt) DomainEventCallbackWatchdog() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(321, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackIOError is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR. -func (l *Libvirt) DomainEventCallbackIOError() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(322, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackGraphics is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_GRAPHICS. -func (l *Libvirt) DomainEventCallbackGraphics() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(323, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackIOErrorReason is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR_REASON. -func (l *Libvirt) DomainEventCallbackIOErrorReason() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(324, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackControlError is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_CONTROL_ERROR. -func (l *Libvirt) DomainEventCallbackControlError() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(325, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackBlockJob is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BLOCK_JOB. -func (l *Libvirt) DomainEventCallbackBlockJob() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(326, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackDiskChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DISK_CHANGE. -func (l *Libvirt) DomainEventCallbackDiskChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(327, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackTrayChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TRAY_CHANGE. -func (l *Libvirt) DomainEventCallbackTrayChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(328, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackPmwakeup is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP. -func (l *Libvirt) DomainEventCallbackPmwakeup() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(329, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackPmsuspend is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND. -func (l *Libvirt) DomainEventCallbackPmsuspend() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(330, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackBalloonChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BALLOON_CHANGE. -func (l *Libvirt) DomainEventCallbackBalloonChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(331, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackPmsuspendDisk is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK. -func (l *Libvirt) DomainEventCallbackPmsuspendDisk() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(332, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackDeviceRemoved is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVED. -func (l *Libvirt) DomainEventCallbackDeviceRemoved() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(333, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainCoreDumpWithFormat is the go wrapper for REMOTE_PROC_DOMAIN_CORE_DUMP_WITH_FORMAT. -func (l *Libvirt) DomainCoreDumpWithFormat(Dom Domain, To string, Dumpformat uint32, Flags DomainCoreDumpFlags) (err error) { - var buf bytes.Buffer - - args := DomainCoreDumpWithFormatArgs { - Dom: Dom, - To: To, - Dumpformat: Dumpformat, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(334, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainFsfreeze is the go wrapper for REMOTE_PROC_DOMAIN_FSFREEZE. -func (l *Libvirt) DomainFsfreeze(Dom Domain, Mountpoints []string, Flags uint32) (rFilesystems int32, err error) { - var buf bytes.Buffer - - args := DomainFsfreezeArgs { - Dom: Dom, - Mountpoints: Mountpoints, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(335, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Filesystems: int32 - _, err = dec.Decode(&rFilesystems) - if err != nil { - return - } - - return -} - -// DomainFsthaw is the go wrapper for REMOTE_PROC_DOMAIN_FSTHAW. -func (l *Libvirt) DomainFsthaw(Dom Domain, Mountpoints []string, Flags uint32) (rFilesystems int32, err error) { - var buf bytes.Buffer - - args := DomainFsthawArgs { - Dom: Dom, - Mountpoints: Mountpoints, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(336, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Filesystems: int32 - _, err = dec.Decode(&rFilesystems) - if err != nil { - return - } - - return -} - -// DomainGetTime is the go wrapper for REMOTE_PROC_DOMAIN_GET_TIME. -func (l *Libvirt) DomainGetTime(Dom Domain, Flags uint32) (rSeconds int64, rNseconds uint32, err error) { - var buf bytes.Buffer - - args := DomainGetTimeArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(337, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Seconds: int64 - _, err = dec.Decode(&rSeconds) - if err != nil { - return - } - // Nseconds: uint32 - _, err = dec.Decode(&rNseconds) - if err != nil { - return - } - - return -} - -// DomainSetTime is the go wrapper for REMOTE_PROC_DOMAIN_SET_TIME. -func (l *Libvirt) DomainSetTime(Dom Domain, Seconds int64, Nseconds uint32, Flags DomainSetTimeFlags) (err error) { - var buf bytes.Buffer - - args := DomainSetTimeArgs { - Dom: Dom, - Seconds: Seconds, - Nseconds: Nseconds, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(338, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventBlockJob2 is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB_2. -func (l *Libvirt) DomainEventBlockJob2() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(339, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeGetFreePages is the go wrapper for REMOTE_PROC_NODE_GET_FREE_PAGES. -func (l *Libvirt) NodeGetFreePages(Pages []uint32, StartCell int32, CellCount uint32, Flags uint32) (rCounts []uint64, err error) { - var buf bytes.Buffer - - args := NodeGetFreePagesArgs { - Pages: Pages, - StartCell: StartCell, - CellCount: CellCount, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(340, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Counts: []uint64 - _, err = dec.Decode(&rCounts) - if err != nil { - return - } - - return -} - -// NetworkGetDhcpLeases is the go wrapper for REMOTE_PROC_NETWORK_GET_DHCP_LEASES. -func (l *Libvirt) NetworkGetDhcpLeases(Net Network, Mac OptString, NeedResults int32, Flags uint32) (rLeases []NetworkDhcpLease, rRet uint32, err error) { - var buf bytes.Buffer - - args := NetworkGetDhcpLeasesArgs { - Net: Net, - Mac: Mac, - NeedResults: NeedResults, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(341, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Leases: []NetworkDhcpLease - _, err = dec.Decode(&rLeases) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// ConnectGetDomainCapabilities is the go wrapper for REMOTE_PROC_CONNECT_GET_DOMAIN_CAPABILITIES. -func (l *Libvirt) ConnectGetDomainCapabilities(Emulatorbin OptString, Arch OptString, Machine OptString, Virttype OptString, Flags uint32) (rCapabilities string, err error) { - var buf bytes.Buffer - - args := ConnectGetDomainCapabilitiesArgs { - Emulatorbin: Emulatorbin, - Arch: Arch, - Machine: Machine, - Virttype: Virttype, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(342, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Capabilities: string - _, err = dec.Decode(&rCapabilities) - if err != nil { - return - } - - return -} - -// DomainOpenGraphicsFd is the go wrapper for REMOTE_PROC_DOMAIN_OPEN_GRAPHICS_FD. -func (l *Libvirt) DomainOpenGraphicsFd(Dom Domain, Idx uint32, Flags DomainOpenGraphicsFlags) (err error) { - var buf bytes.Buffer - - args := DomainOpenGraphicsFdArgs { - Dom: Dom, - Idx: Idx, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(343, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectGetAllDomainStats is the go wrapper for REMOTE_PROC_CONNECT_GET_ALL_DOMAIN_STATS. -func (l *Libvirt) ConnectGetAllDomainStats(Doms []Domain, Stats uint32, Flags ConnectGetAllDomainStatsFlags) (rRetStats []DomainStatsRecord, err error) { - var buf bytes.Buffer - - args := ConnectGetAllDomainStatsArgs { - Doms: Doms, - Stats: Stats, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(344, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // RetStats: []DomainStatsRecord - _, err = dec.Decode(&rRetStats) - if err != nil { - return - } - - return -} - -// DomainBlockCopy is the go wrapper for REMOTE_PROC_DOMAIN_BLOCK_COPY. -func (l *Libvirt) DomainBlockCopy(Dom Domain, Path string, Destxml string, Params []TypedParam, Flags DomainBlockCopyFlags) (err error) { - var buf bytes.Buffer - - args := DomainBlockCopyArgs { - Dom: Dom, - Path: Path, - Destxml: Destxml, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(345, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackTunable is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TUNABLE. -func (l *Libvirt) DomainEventCallbackTunable() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(346, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeAllocPages is the go wrapper for REMOTE_PROC_NODE_ALLOC_PAGES. -func (l *Libvirt) NodeAllocPages(PageSizes []uint32, PageCounts []uint64, StartCell int32, CellCount uint32, Flags NodeAllocPagesFlags) (rRet int32, err error) { - var buf bytes.Buffer - - args := NodeAllocPagesArgs { - PageSizes: PageSizes, - PageCounts: PageCounts, - StartCell: StartCell, - CellCount: CellCount, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(347, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Ret: int32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainEventCallbackAgentLifecycle is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_AGENT_LIFECYCLE. -func (l *Libvirt) DomainEventCallbackAgentLifecycle() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(348, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetFsinfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_FSINFO. -func (l *Libvirt) DomainGetFsinfo(Dom Domain, Flags uint32) (rInfo []DomainFsinfo, rRet uint32, err error) { - var buf bytes.Buffer - - args := DomainGetFsinfoArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(349, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Info: []DomainFsinfo - _, err = dec.Decode(&rInfo) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainDefineXMLFlags is the go wrapper for REMOTE_PROC_DOMAIN_DEFINE_XML_FLAGS. -func (l *Libvirt) DomainDefineXMLFlags(XML string, Flags DomainDefineFlags) (rDom Domain, err error) { - var buf bytes.Buffer - - args := DomainDefineXMLFlagsArgs { - XML: XML, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(350, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Dom: Domain - _, err = dec.Decode(&rDom) - if err != nil { - return - } - - return -} - -// DomainGetIothreadInfo is the go wrapper for REMOTE_PROC_DOMAIN_GET_IOTHREAD_INFO. -func (l *Libvirt) DomainGetIothreadInfo(Dom Domain, Flags DomainModificationImpact) (rInfo []DomainIothreadInfo, rRet uint32, err error) { - var buf bytes.Buffer - - args := DomainGetIothreadInfoArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(351, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Info: []DomainIothreadInfo - _, err = dec.Decode(&rInfo) - if err != nil { - return - } - // Ret: uint32 - _, err = dec.Decode(&rRet) - if err != nil { - return - } - - return -} - -// DomainPinIothread is the go wrapper for REMOTE_PROC_DOMAIN_PIN_IOTHREAD. -func (l *Libvirt) DomainPinIothread(Dom Domain, IothreadsID uint32, Cpumap []byte, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainPinIothreadArgs { - Dom: Dom, - IothreadsID: IothreadsID, - Cpumap: Cpumap, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(352, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainInterfaceAddresses is the go wrapper for REMOTE_PROC_DOMAIN_INTERFACE_ADDRESSES. -func (l *Libvirt) DomainInterfaceAddresses(Dom Domain, Source uint32, Flags uint32) (rIfaces []DomainInterface, err error) { - var buf bytes.Buffer - - args := DomainInterfaceAddressesArgs { - Dom: Dom, - Source: Source, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(353, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Ifaces: []DomainInterface - _, err = dec.Decode(&rIfaces) - if err != nil { - return - } - - return -} - -// DomainEventCallbackDeviceAdded is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_ADDED. -func (l *Libvirt) DomainEventCallbackDeviceAdded() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(354, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainAddIothread is the go wrapper for REMOTE_PROC_DOMAIN_ADD_IOTHREAD. -func (l *Libvirt) DomainAddIothread(Dom Domain, IothreadID uint32, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainAddIothreadArgs { - Dom: Dom, - IothreadID: IothreadID, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(355, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainDelIothread is the go wrapper for REMOTE_PROC_DOMAIN_DEL_IOTHREAD. -func (l *Libvirt) DomainDelIothread(Dom Domain, IothreadID uint32, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainDelIothreadArgs { - Dom: Dom, - IothreadID: IothreadID, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(356, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetUserPassword is the go wrapper for REMOTE_PROC_DOMAIN_SET_USER_PASSWORD. -func (l *Libvirt) DomainSetUserPassword(Dom Domain, User OptString, Password OptString, Flags DomainSetUserPasswordFlags) (err error) { - var buf bytes.Buffer - - args := DomainSetUserPasswordArgs { - Dom: Dom, - User: User, - Password: Password, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(357, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainRename is the go wrapper for REMOTE_PROC_DOMAIN_RENAME. -func (l *Libvirt) DomainRename(Dom Domain, NewName OptString, Flags uint32) (rRetcode int32, err error) { - var buf bytes.Buffer - - args := DomainRenameArgs { - Dom: Dom, - NewName: NewName, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(358, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Retcode: int32 - _, err = dec.Decode(&rRetcode) - if err != nil { - return - } - - return -} - -// DomainEventCallbackMigrationIteration is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_MIGRATION_ITERATION. -func (l *Libvirt) DomainEventCallbackMigrationIteration() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(359, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectRegisterCloseCallback is the go wrapper for REMOTE_PROC_CONNECT_REGISTER_CLOSE_CALLBACK. -func (l *Libvirt) ConnectRegisterCloseCallback() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(360, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectUnregisterCloseCallback is the go wrapper for REMOTE_PROC_CONNECT_UNREGISTER_CLOSE_CALLBACK. -func (l *Libvirt) ConnectUnregisterCloseCallback() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(361, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectEventConnectionClosed is the go wrapper for REMOTE_PROC_CONNECT_EVENT_CONNECTION_CLOSED. -func (l *Libvirt) ConnectEventConnectionClosed() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(362, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackJobCompleted is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_JOB_COMPLETED. -func (l *Libvirt) DomainEventCallbackJobCompleted() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(363, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainMigrateStartPostCopy is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_START_POST_COPY. -func (l *Libvirt) DomainMigrateStartPostCopy(Dom Domain, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainMigrateStartPostCopyArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(364, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetPerfEvents is the go wrapper for REMOTE_PROC_DOMAIN_GET_PERF_EVENTS. -func (l *Libvirt) DomainGetPerfEvents(Dom Domain, Flags DomainModificationImpact) (rParams []TypedParam, err error) { - var buf bytes.Buffer - - args := DomainGetPerfEventsArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(365, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - - return -} - -// DomainSetPerfEvents is the go wrapper for REMOTE_PROC_DOMAIN_SET_PERF_EVENTS. -func (l *Libvirt) DomainSetPerfEvents(Dom Domain, Params []TypedParam, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainSetPerfEventsArgs { - Dom: Dom, - Params: Params, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(366, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventCallbackDeviceRemovalFailed is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVAL_FAILED. -func (l *Libvirt) DomainEventCallbackDeviceRemovalFailed() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(367, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectStoragePoolEventRegisterAny is the go wrapper for REMOTE_PROC_CONNECT_STORAGE_POOL_EVENT_REGISTER_ANY. -func (l *Libvirt) ConnectStoragePoolEventRegisterAny(EventID int32, Pool OptStoragePool) (rCallbackID int32, err error) { - var buf bytes.Buffer - - args := ConnectStoragePoolEventRegisterAnyArgs { - EventID: EventID, - Pool: Pool, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(368, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CallbackID: int32 - _, err = dec.Decode(&rCallbackID) - if err != nil { - return - } - - return -} - -// ConnectStoragePoolEventDeregisterAny is the go wrapper for REMOTE_PROC_CONNECT_STORAGE_POOL_EVENT_DEREGISTER_ANY. -func (l *Libvirt) ConnectStoragePoolEventDeregisterAny(CallbackID int32) (err error) { - var buf bytes.Buffer - - args := ConnectStoragePoolEventDeregisterAnyArgs { - CallbackID: CallbackID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(369, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolEventLifecycle is the go wrapper for REMOTE_PROC_STORAGE_POOL_EVENT_LIFECYCLE. -func (l *Libvirt) StoragePoolEventLifecycle() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(370, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainGetGuestVcpus is the go wrapper for REMOTE_PROC_DOMAIN_GET_GUEST_VCPUS. -func (l *Libvirt) DomainGetGuestVcpus(Dom Domain, Flags uint32) (rParams []TypedParam, err error) { - var buf bytes.Buffer - - args := DomainGetGuestVcpusArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(371, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Params: []TypedParam - rParams, err = decodeTypedParams(dec) - if err != nil { - fmt.Println("error decoding typedparams") - return - } - - return -} - -// DomainSetGuestVcpus is the go wrapper for REMOTE_PROC_DOMAIN_SET_GUEST_VCPUS. -func (l *Libvirt) DomainSetGuestVcpus(Dom Domain, Cpumap string, State int32, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetGuestVcpusArgs { - Dom: Dom, - Cpumap: Cpumap, - State: State, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(372, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StoragePoolEventRefresh is the go wrapper for REMOTE_PROC_STORAGE_POOL_EVENT_REFRESH. -func (l *Libvirt) StoragePoolEventRefresh() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(373, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectNodeDeviceEventRegisterAny is the go wrapper for REMOTE_PROC_CONNECT_NODE_DEVICE_EVENT_REGISTER_ANY. -func (l *Libvirt) ConnectNodeDeviceEventRegisterAny(EventID int32, Dev OptNodeDevice) (rCallbackID int32, err error) { - var buf bytes.Buffer - - args := ConnectNodeDeviceEventRegisterAnyArgs { - EventID: EventID, - Dev: Dev, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(374, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CallbackID: int32 - _, err = dec.Decode(&rCallbackID) - if err != nil { - return - } - - return -} - -// ConnectNodeDeviceEventDeregisterAny is the go wrapper for REMOTE_PROC_CONNECT_NODE_DEVICE_EVENT_DEREGISTER_ANY. -func (l *Libvirt) ConnectNodeDeviceEventDeregisterAny(CallbackID int32) (err error) { - var buf bytes.Buffer - - args := ConnectNodeDeviceEventDeregisterAnyArgs { - CallbackID: CallbackID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(375, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeDeviceEventLifecycle is the go wrapper for REMOTE_PROC_NODE_DEVICE_EVENT_LIFECYCLE. -func (l *Libvirt) NodeDeviceEventLifecycle() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(376, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// NodeDeviceEventUpdate is the go wrapper for REMOTE_PROC_NODE_DEVICE_EVENT_UPDATE. -func (l *Libvirt) NodeDeviceEventUpdate() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(377, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// StorageVolGetInfoFlags is the go wrapper for REMOTE_PROC_STORAGE_VOL_GET_INFO_FLAGS. -func (l *Libvirt) StorageVolGetInfoFlags(Vol StorageVol, Flags uint32) (rType int8, rCapacity uint64, rAllocation uint64, err error) { - var buf bytes.Buffer - - args := StorageVolGetInfoFlagsArgs { - Vol: Vol, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(378, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Type: int8 - _, err = dec.Decode(&rType) - if err != nil { - return - } - // Capacity: uint64 - _, err = dec.Decode(&rCapacity) - if err != nil { - return - } - // Allocation: uint64 - _, err = dec.Decode(&rAllocation) - if err != nil { - return - } - - return -} - -// DomainEventCallbackMetadataChange is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_CALLBACK_METADATA_CHANGE. -func (l *Libvirt) DomainEventCallbackMetadataChange() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(379, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// ConnectSecretEventRegisterAny is the go wrapper for REMOTE_PROC_CONNECT_SECRET_EVENT_REGISTER_ANY. -func (l *Libvirt) ConnectSecretEventRegisterAny(EventID int32, OptSecret OptSecret) (rCallbackID int32, err error) { - var buf bytes.Buffer - - args := ConnectSecretEventRegisterAnyArgs { - EventID: EventID, - OptSecret: OptSecret, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(380, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // CallbackID: int32 - _, err = dec.Decode(&rCallbackID) - if err != nil { - return - } - - return -} - -// ConnectSecretEventDeregisterAny is the go wrapper for REMOTE_PROC_CONNECT_SECRET_EVENT_DEREGISTER_ANY. -func (l *Libvirt) ConnectSecretEventDeregisterAny(CallbackID int32) (err error) { - var buf bytes.Buffer - - args := ConnectSecretEventDeregisterAnyArgs { - CallbackID: CallbackID, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(381, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// SecretEventLifecycle is the go wrapper for REMOTE_PROC_SECRET_EVENT_LIFECYCLE. -func (l *Libvirt) SecretEventLifecycle() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(382, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// SecretEventValueChanged is the go wrapper for REMOTE_PROC_SECRET_EVENT_VALUE_CHANGED. -func (l *Libvirt) SecretEventValueChanged() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(383, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetVcpu is the go wrapper for REMOTE_PROC_DOMAIN_SET_VCPU. -func (l *Libvirt) DomainSetVcpu(Dom Domain, Cpumap string, State int32, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainSetVcpuArgs { - Dom: Dom, - Cpumap: Cpumap, - State: State, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(384, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainEventBlockThreshold is the go wrapper for REMOTE_PROC_DOMAIN_EVENT_BLOCK_THRESHOLD. -func (l *Libvirt) DomainEventBlockThreshold() (err error) { - var buf bytes.Buffer - - var resp <-chan response - resp, err = l.request(385, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetBlockThreshold is the go wrapper for REMOTE_PROC_DOMAIN_SET_BLOCK_THRESHOLD. -func (l *Libvirt) DomainSetBlockThreshold(Dom Domain, Dev string, Threshold uint64, Flags uint32) (err error) { - var buf bytes.Buffer - - args := DomainSetBlockThresholdArgs { - Dom: Dom, - Dev: Dev, - Threshold: Threshold, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(386, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainMigrateGetMaxDowntime is the go wrapper for REMOTE_PROC_DOMAIN_MIGRATE_GET_MAX_DOWNTIME. -func (l *Libvirt) DomainMigrateGetMaxDowntime(Dom Domain, Flags uint32) (rDowntime uint64, err error) { - var buf bytes.Buffer - - args := DomainMigrateGetMaxDowntimeArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(387, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // Downtime: uint64 - _, err = dec.Decode(&rDowntime) - if err != nil { - return - } - - return -} - -// DomainManagedSaveGetXMLDesc is the go wrapper for REMOTE_PROC_DOMAIN_MANAGED_SAVE_GET_XML_DESC. -func (l *Libvirt) DomainManagedSaveGetXMLDesc(Dom Domain, Flags DomainXMLFlags) (rXML string, err error) { - var buf bytes.Buffer - - args := DomainManagedSaveGetXMLDescArgs { - Dom: Dom, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(388, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - // Return value unmarshaling - rdr := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(rdr) - // XML: string - _, err = dec.Decode(&rXML) - if err != nil { - return - } - - return -} - -// DomainManagedSaveDefineXML is the go wrapper for REMOTE_PROC_DOMAIN_MANAGED_SAVE_DEFINE_XML. -func (l *Libvirt) DomainManagedSaveDefineXML(Dom Domain, Dxml OptString, Flags DomainSaveRestoreFlags) (err error) { - var buf bytes.Buffer - - args := DomainManagedSaveDefineXMLArgs { - Dom: Dom, - Dxml: Dxml, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(389, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - -// DomainSetLifecycleAction is the go wrapper for REMOTE_PROC_DOMAIN_SET_LIFECYCLE_ACTION. -func (l *Libvirt) DomainSetLifecycleAction(Dom Domain, Type uint32, Action uint32, Flags DomainModificationImpact) (err error) { - var buf bytes.Buffer - - args := DomainSetLifecycleActionArgs { - Dom: Dom, - Type: Type, - Action: Action, - Flags: Flags, - } - - buf, err = encode(&args) - if err != nil { - return - } - - var resp <-chan response - resp, err = l.request(390, constants.Program, &buf) - if err != nil { - return - } - - r := <-resp - if r.Status != StatusOK { - err = decodeError(r.Payload) - return - } - - return -} - diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.go deleted file mode 100644 index 7f17dfbb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.go +++ /dev/null @@ -1,505 +0,0 @@ -// Copyright 2016 The go-libvirt 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 libvirt is a pure Go implementation of the libvirt RPC protocol. -// For more information on the protocol, see https://libvirt.org/internals/l.html -package libvirt - -// We'll use c-for-go to extract the consts and typedefs from the libvirt -// sources so we don't have to duplicate them here. -//go:generate scripts/gen-consts.sh - -import ( - "bufio" - "bytes" - "encoding/json" - "errors" - "fmt" - "net" - "net/url" - "sync" - - "github.com/davecgh/go-xdr/xdr2" - "github.com/digitalocean/go-libvirt/internal/constants" -) - -// ErrEventsNotSupported is returned by Events() if event streams -// are unsupported by either QEMU or libvirt. -var ErrEventsNotSupported = errors.New("event monitor is not supported") - -// Libvirt implements libvirt's remote procedure call protocol. -type Libvirt struct { - conn net.Conn - r *bufio.Reader - w *bufio.Writer - mu *sync.Mutex - - // method callbacks - cm sync.Mutex - callbacks map[uint32]chan response - - // event listeners - em sync.Mutex - events map[uint32]chan *DomainEvent - - // next request serial number - s uint32 -} - -// DomainEvent represents a libvirt domain event. -type DomainEvent struct { - CallbackID uint32 - Domain Domain - Event string - Seconds uint64 - Microseconds uint32 - Padding uint8 - Details []byte -} - -// qemuError represents a QEMU process error. -type qemuError struct { - Error struct { - Class string `json:"class"` - Description string `json:"desc"` - } `json:"error"` -} - -// Capabilities returns an XML document describing the host's capabilties. -func (l *Libvirt) Capabilities() ([]byte, error) { - caps, err := l.ConnectGetCapabilities() - return []byte(caps), err -} - -// Connect establishes communication with the libvirt server. -// The underlying libvirt socket connection must be previously established. -func (l *Libvirt) Connect() error { - return l.connect() -} - -// Disconnect shuts down communication with the libvirt server -// and closes the underlying net.Conn. -func (l *Libvirt) Disconnect() error { - // close event streams - for id := range l.events { - if err := l.removeStream(id); err != nil { - return err - } - } - - // inform libvirt we're done - if err := l.disconnect(); err != nil { - return err - } - - return l.conn.Close() -} - -// Domains returns a list of all domains managed by libvirt. -func (l *Libvirt) Domains() ([]Domain, error) { - // these are the flags as passed by `virsh`, defined in: - // src/remote/remote_protocol.x # remote_connect_list_all_domains_args - domains, _, err := l.ConnectListAllDomains(1, 3) - return domains, err -} - -// DomainState returns state of the domain managed by libvirt. -func (l *Libvirt) DomainState(dom string) (DomainState, error) { - d, err := l.lookup(dom) - if err != nil { - return DomainNostate, err - } - - state, _, err := l.DomainGetState(d, 0) - return DomainState(state), err -} - -// Events streams domain events. -// If a problem is encountered setting up the event monitor connection -// an error will be returned. Errors encountered during streaming will -// cause the returned event channel to be closed. -func (l *Libvirt) Events(dom string) (<-chan DomainEvent, error) { - d, err := l.lookup(dom) - if err != nil { - return nil, err - } - - payload := struct { - Padding [4]byte - Domain Domain - Event [2]byte - Flags [2]byte - }{ - Padding: [4]byte{0x0, 0x0, 0x1, 0x0}, - Domain: d, - Event: [2]byte{0x0, 0x0}, - Flags: [2]byte{0x0, 0x0}, - } - - buf, err := encode(&payload) - if err != nil { - return nil, err - } - - resp, err := l.request(constants.QEMUConnectDomainMonitorEventRegister, constants.ProgramQEMU, &buf) - if err != nil { - return nil, err - } - - res := <-resp - if res.Status != StatusOK { - err = decodeError(res.Payload) - if err == ErrUnsupported { - return nil, ErrEventsNotSupported - } - - return nil, decodeError(res.Payload) - } - - dec := xdr.NewDecoder(bytes.NewReader(res.Payload)) - - cbID, _, err := dec.DecodeUint() - if err != nil { - return nil, err - } - - stream := make(chan *DomainEvent) - l.addStream(cbID, stream) - c := make(chan DomainEvent) - go func() { - // process events - for e := range stream { - c <- *e - } - }() - - return c, nil -} - -// Migrate synchronously migrates the domain specified by dom, e.g., -// 'prod-lb-01', to the destination hypervisor specified by dest, e.g., -// 'qemu+tcp://example.com/system'. The flags argument determines the -// type of migration and how it will be performed. For more information -// on available migration flags and their meaning, see MigrateFlag*. -func (l *Libvirt) Migrate(dom string, dest string, flags DomainMigrateFlags) error { - _, err := url.Parse(dest) - if err != nil { - return err - } - - d, err := l.lookup(dom) - if err != nil { - return err - } - - // Two unknowns remain here , Libvirt specifies RemoteParameters - // and CookieIn. In testing both values are always set to 0 by virsh - // and the source does not provide clear definitions of their purpose. - // For now, using the same zero'd values as done by virsh will be Good Enough. - destURI := []string{dest} - remoteParams := []TypedParam{} - cookieIn := []byte{} - _, err = l.DomainMigratePerform3Params(d, destURI, remoteParams, cookieIn, flags) - return err -} - -// MigrateSetMaxSpeed set the maximum migration bandwidth (in MiB/s) for a -// domain which is being migrated to another host. Specifying a negative value -// results in an essentially unlimited value being provided to the hypervisor. -func (l *Libvirt) MigrateSetMaxSpeed(dom string, speed int64) error { - d, err := l.lookup(dom) - if err != nil { - return err - } - - return l.DomainMigrateSetMaxSpeed(d, uint64(speed), 0) -} - -// Run executes the given QAPI command against a domain's QEMU instance. -// For a list of available QAPI commands, see: -// http://git.qemu.org/?p=qemu.git;a=blob;f=qapi-schema.json;hb=HEAD -func (l *Libvirt) Run(dom string, cmd []byte) ([]byte, error) { - d, err := l.lookup(dom) - if err != nil { - return nil, err - } - - payload := struct { - Domain Domain - Command []byte - Flags uint32 - }{ - Domain: d, - Command: cmd, - Flags: 0, - } - - buf, err := encode(&payload) - if err != nil { - return nil, err - } - - resp, err := l.request(constants.QEMUDomainMonitor, constants.ProgramQEMU, &buf) - if err != nil { - return nil, err - } - - res := <-resp - // check for libvirt errors - if res.Status != StatusOK { - return nil, decodeError(res.Payload) - } - - // check for QEMU process errors - if err = getQEMUError(res); err != nil { - return nil, err - } - - r := bytes.NewReader(res.Payload) - dec := xdr.NewDecoder(r) - data, _, err := dec.DecodeFixedOpaque(int32(r.Len())) - if err != nil { - return nil, err - } - - // drop QMP control characters from start of line, and drop - // any trailing NULL characters from the end - return bytes.TrimRight(data[4:], "\x00"), nil -} - -// Secrets returns all secrets managed by the libvirt daemon. -func (l *Libvirt) Secrets() ([]Secret, error) { - secrets, _, err := l.ConnectListAllSecrets(1, 0) - return secrets, err -} - -// StoragePool returns the storage pool associated with the provided name. -// An error is returned if the requested storage pool is not found. -func (l *Libvirt) StoragePool(name string) (StoragePool, error) { - return l.StoragePoolLookupByName(name) -} - -// StoragePools returns a list of defined storage pools. Pools are filtered by -// the provided flags. See StoragePools*. -func (l *Libvirt) StoragePools(flags ConnectListAllStoragePoolsFlags) ([]StoragePool, error) { - pools, _, err := l.ConnectListAllStoragePools(1, flags) - return pools, err -} - -// Undefine undefines the domain specified by dom, e.g., 'prod-lb-01'. -// The flags argument allows additional options to be specified such as -// cleaning up snapshot metadata. For more information on available -// flags, see DomainUndefine*. -func (l *Libvirt) Undefine(dom string, flags DomainUndefineFlagsValues) error { - d, err := l.lookup(dom) - if err != nil { - return err - } - - return l.DomainUndefineFlags(d, flags) -} - -// Destroy destroys the domain specified by dom, e.g., 'prod-lb-01'. -// The flags argument allows additional options to be specified such as -// allowing a graceful shutdown with SIGTERM than SIGKILL. -// For more information on available flags, see DomainDestroy*. -func (l *Libvirt) Destroy(dom string, flags DomainDestroyFlagsValues) error { - d, err := l.lookup(dom) - if err != nil { - return err - } - - return l.DomainDestroyFlags(d, flags) -} - -// XML returns a domain's raw XML definition, akin to `virsh dumpxml `. -// See DomainXMLFlag* for optional flags. -func (l *Libvirt) XML(dom string, flags DomainXMLFlags) ([]byte, error) { - d, err := l.lookup(dom) - if err != nil { - return nil, err - } - - xml, err := l.DomainGetXMLDesc(d, flags) - return []byte(xml), err -} - -// DefineXML defines a domain, but does not start it. -func (l *Libvirt) DefineXML(x []byte, flags DomainDefineFlags) error { - _, err := l.DomainDefineXMLFlags(string(x), flags) - return err -} - -// Version returns the version of the libvirt daemon. -func (l *Libvirt) Version() (string, error) { - ver, err := l.ConnectGetLibVersion() - if err != nil { - return "", err - } - - // The version is provided as an int following this formula: - // version * 1,000,000 + minor * 1000 + micro - // See src/libvirt-host.c # virConnectGetLibVersion - major := ver / 1000000 - ver %= 1000000 - minor := ver / 1000 - ver %= 1000 - micro := ver - - versionString := fmt.Sprintf("%d.%d.%d", major, minor, micro) - return versionString, nil -} - -// Shutdown shuts down a domain. Note that the guest OS may ignore the request. -// If flags is set to 0 then the hypervisor will choose the method of shutdown it considers best. -func (l *Libvirt) Shutdown(dom string, flags DomainShutdownFlagValues) error { - d, err := l.lookup(dom) - if err != nil { - return err - } - - return l.DomainShutdownFlags(d, flags) -} - -// Reboot reboots the domain. Note that the guest OS may ignore the request. -// If flags is set to zero, then the hypervisor will choose the method of shutdown it considers best. -func (l *Libvirt) Reboot(dom string, flags DomainRebootFlagValues) error { - d, err := l.lookup(dom) - if err != nil { - return err - } - - return l.DomainReboot(d, flags) -} - -// Reset resets domain immediately without any guest OS shutdown -func (l *Libvirt) Reset(dom string) error { - d, err := l.lookup(dom) - if err != nil { - return err - } - - return l.DomainReset(d, 0) -} - -// BlockLimit contains a name and value pair for a Get/SetBlockIOTune limit. The -// Name field is the name of the limit (to see a list of the limits that can be -// applied, execute the 'blkdeviotune' command on a VM in virsh). Callers can -// use the QEMUBlockIO... constants below for the Name value. The Value field is -// the limit to apply. -type BlockLimit struct { - Name string - Value uint64 -} - -// SetBlockIOTune changes the per-device block I/O tunables within a guest. -// Parameters are the name of the VM, the name of the disk device to which the -// limits should be applied, and 1 or more BlockLimit structs containing the -// actual limits. -// -// The limits which can be applied here are enumerated in the QEMUBlockIO... -// constants above, and you can also see the full list by executing the -// 'blkdeviotune' command on a VM in virsh. -// -// Example usage: -// SetBlockIOTune("vm-name", "vda", BlockLimit{libvirt.QEMUBlockIOWriteBytesSec, 1000000}) -func (l *Libvirt) SetBlockIOTune(dom string, disk string, limits ...BlockLimit) error { - d, err := l.lookup(dom) - if err != nil { - return err - } - - params := make([]TypedParam, len(limits)) - for ix, limit := range limits { - tpval := NewTypedParamValueUllong(limit.Value) - params[ix] = TypedParam{Field: limit.Name, Value: tpval} - } - - return l.DomainSetBlockIOTune(d, disk, params, uint32(DomainAffectLive)) -} - -// GetBlockIOTune returns a slice containing the current block I/O tunables for -// a disk. -func (l *Libvirt) GetBlockIOTune(dom string, disk string) ([]BlockLimit, error) { - d, err := l.lookup(dom) - if err != nil { - return nil, err - } - - lims, _, err := l.DomainGetBlockIOTune(d, []string{disk}, 32, uint32(TypedParamStringOkay)) - if err != nil { - return nil, err - } - - var limits []BlockLimit - - // now decode each of the returned TypedParams. To do this we read the field - // name and type, then use the type information to decode the value. - for _, lim := range lims { - var l BlockLimit - name := lim.Field - switch lim.Value.Get().(type) { - case uint64: - l = BlockLimit{Name: name, Value: lim.Value.Get().(uint64)} - } - limits = append(limits, l) - } - - return limits, nil -} - -// lookup returns a domain as seen by libvirt. -func (l *Libvirt) lookup(name string) (Domain, error) { - return l.DomainLookupByName(name) -} - -// getQEMUError checks the provided response for QEMU process errors. -// If an error is found, it is extracted an returned, otherwise nil. -func getQEMUError(r response) error { - pl := bytes.NewReader(r.Payload) - dec := xdr.NewDecoder(pl) - - s, _, err := dec.DecodeString() - if err != nil { - return err - } - - var e qemuError - if err = json.Unmarshal([]byte(s), &e); err != nil { - return err - } - - if e.Error.Description != "" { - return errors.New(e.Error.Description) - } - - return nil -} - -// New configures a new Libvirt RPC connection. -func New(conn net.Conn) *Libvirt { - l := &Libvirt{ - conn: conn, - s: 0, - r: bufio.NewReader(conn), - w: bufio.NewWriter(conn), - mu: &sync.Mutex{}, - callbacks: make(map[uint32]chan response), - events: make(map[uint32]chan *DomainEvent), - } - - go l.listen() - - return l -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.yml b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.yml deleted file mode 100644 index 28c2532f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirt.yml +++ /dev/null @@ -1,59 +0,0 @@ -# Configuration file for c-for-go, which go-libvirt uses to translate the const -# and type definitions from the C-language sources in the libvirt project into -# Go. This file is used by the c-for-go binary (github.com/xlab/c-for-go), which -# is called when 'go generate' is run. See libvirt.go for the command line used. ---- -GENERATOR: - PackageName: libvirt - PackageLicense: | - Copyright 2017 The go-libvirt 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. - Includes: [] - -PARSER: - # We can't use environment variables here, but we don't want to process the - # libvirt version installed in the system folders (if any). Instead we'll - # rely on our caller to link the libvirt source directory to lv_source/, and - # run on that code. This isn't ideal, but changes to c-for-go are needed to - # fix it. - IncludePaths: [./lv_source/include] - SourcesPaths: - - libvirt/libvirt.h - -TRANSLATOR: - ConstRules: - defines: eval - Rules: - global: - - {action: accept, from: "^vir"} - post-global: - - {action: replace, from: "^vir"} - - {load: snakecase} - # Follow golint's capitalization conventions. - - {action: replace, from: "Api([A-Z]|$)", to: "API$1"} - - {action: replace, from: "Cpu([A-Z]|$)", to: "CPU$1"} - - {action: replace, from: "Dns([A-Z]|$)", to: "DNS$1"} - - {action: replace, from: "Eof([A-Z]|$)", to: "EOF$1"} - - {action: replace, from: "Id([A-Z]|$)", to: "ID$1"} - - {action: replace, from: "Ip([A-Z]|$)", to: "IP$1"} - - {action: replace, from: "Tls([A-Z]|$)", to: "TLS$1"} - - {action: replace, from: "Uuid([A-Z]|$)", to: "UUID$1"} - - {action: replace, from: "Uri([A-Z]|$)", to: "URI$1"} - - {action: replace, from: "Vcpu([A-Z]|$)", to: "VCPU$1"} - - {action: replace, from: "Xml([A-Z]|$)", to: "XML$1"} - const: - - {action: accept, from: "^VIR_"} - # Special case to prevent a collision with a type: - - {action: replace, from: "^VIR_DOMAIN_JOB_OPERATION", to: "VIR_DOMAIN_JOB_OPERATION_STR"} - - {transform: lower} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirtd.conf b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirtd.conf deleted file mode 100644 index d416d7ba..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirtd.conf +++ /dev/null @@ -1,7 +0,0 @@ -# libvirtd configuration for travis-ci -listen_tls = 0 -listen_tcp = 1 -tcp_port = "16509" -listen_addr = "127.0.0.1" -auth_unix_rw = "none" -auth_tcp = "none" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirttest/libvirt.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirttest/libvirt.go deleted file mode 100644 index 8d650390..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/libvirttest/libvirt.go +++ /dev/null @@ -1,649 +0,0 @@ -// Copyright 2016 The go-libvirt 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 libvirttest provides a mock libvirt server for RPC testing. -package libvirttest - -import ( - "encoding/binary" - "net" - "sync/atomic" - - "fmt" - "os" - - "github.com/digitalocean/go-libvirt/internal/constants" -) - -var testDomainResponse = []byte{ - 0x00, 0x00, 0x00, 0x38, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x17, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // domain name ("test") - 0x00, 0x00, 0x00, 0x04, 0x74, 0x65, 0x73, 0x74, - - // uuid (dc229f87d4de47198cfd2e21c6105b01) - 0xdc, 0x22, 0x9f, 0x87, 0xd4, 0xde, 0x47, 0x19, - 0x8c, 0xfd, 0x2e, 0x21, 0xc6, 0x10, 0x5b, 0x01, - - // domain id (14) - 0x00, 0x00, 0x00, 0x0e, -} - -var testRegisterEvent = []byte{ - 0x00, 0x00, 0x00, 0x20, // length - 0x20, 0x00, 0x80, 0x87, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x04, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - 0x00, 0x00, 0x00, 0x01, // callback id -} - -var testDeregisterEvent = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x87, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x05, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testAuthReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x42, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testConnectReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x01, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testDisconnectReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x02, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testMigrateReply = []byte{ - 0x00, 0x00, 0x00, 0x20, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x01, 0x31, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // cookie out: 0 - 0x00, 0x00, 0x00, 0x00, -} - -var testRunReply = []byte{ - 0x00, 0x00, 0x00, 0x74, // length - 0x20, 0x00, 0x80, 0x87, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x01, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // {"return":{"qemu":{"micro":1,"minor":5,"major":2},"package":""},"id":"libvirt-53"} - 0x00, 0x00, 0x00, 0x52, 0x7b, 0x22, 0x72, 0x65, - 0x74, 0x75, 0x72, 0x6e, 0x22, 0x3a, 0x7b, 0x22, - 0x71, 0x65, 0x6d, 0x75, 0x22, 0x3a, 0x7b, 0x22, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x22, 0x3a, 0x31, - 0x2c, 0x22, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x22, - 0x3a, 0x35, 0x2c, 0x22, 0x6d, 0x61, 0x6a, 0x6f, - 0x72, 0x22, 0x3a, 0x32, 0x7d, 0x2c, 0x22, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x3a, - 0x22, 0x22, 0x7d, 0x2c, 0x22, 0x69, 0x64, 0x22, - 0x3a, 0x22, 0x6c, 0x69, 0x62, 0x76, 0x69, 0x72, - 0x74, 0x2d, 0x35, 0x33, 0x22, 0x7d, - - // All trailing NULL characters should be removed - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -} - -var testRunReplyFail = []byte{ - 0x00, 0x00, 0x00, 0x8c, // length - 0x20, 0x00, 0x80, 0x87, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x01, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x0a, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // {"id":"libvirt-68","error":{"class":"CommandNotFound","desc":"The command drive-foo has not been found"}}` - 0x00, 0x00, 0x00, 0x69, 0x7b, 0x22, 0x69, 0x64, - 0x22, 0x3a, 0x22, 0x6c, 0x69, 0x62, 0x76, 0x69, - 0x72, 0x74, 0x2d, 0x36, 0x38, 0x22, 0x2c, 0x22, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x3a, 0x7b, - 0x22, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x3a, - 0x22, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, - 0x22, 0x2c, 0x22, 0x64, 0x65, 0x73, 0x63, 0x22, - 0x3a, 0x22, 0x54, 0x68, 0x65, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x72, - 0x69, 0x76, 0x65, 0x2d, 0x66, 0x6f, 0x6f, 0x20, - 0x68, 0x61, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x62, 0x65, 0x65, 0x6e, 0x20, 0x66, 0x6f, 0x75, - 0x6e, 0x64, 0x22, 0x7d, 0x7d, 0x00, 0x00, 0x00, -} - -var testSetSpeedReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xcf, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testDomainsReply = []byte{ - 0x00, 0x00, 0x00, 0x6c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x01, 0x11, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // struct of domains - 0x00, 0x00, 0x00, 0x02, - - // first domain - // name - aaaaaaa-1 - 0x00, 0x00, 0x00, 0x09, 0x61, 0x61, 0x61, 0x61, - 0x61, 0x61, 0x61, 0x2d, 0x31, 0x00, 0x00, 0x00, - // uuid - dc:32:9f:87:d4:de:47:19:8c:fd:2e:21:c6:10:5b:01 - 0xdc, 0x32, 0x9f, 0x87, 0xd4, 0xde, 0x47, 0x19, - 0x8c, 0xfd, 0x2e, 0x21, 0xc6, 0x10, 0x5b, 0x01, - // id - 0x00, 0x00, 0x00, 0x01, - - // second domain - // name - aaaaaaa-2 - 0x00, 0x00, 0x00, 0x09, 0x61, 0x61, 0x61, 0x61, - 0x61, 0x61, 0x61, 0x2d, 0x32, 0x00, 0x00, 0x00, - // uuid - dc:22:9f:87:d4:de:47:19:8c:fd:2e:21:c6:10:5b:01 - 0xdc, 0x22, 0x9f, 0x87, 0xd4, 0xde, 0x47, 0x19, 0x8c, - 0xfd, 0x2e, 0x21, 0xc6, 0x10, 0x5b, 0x01, 0x00, 0x00, - // id - 0x00, 0x02, 0x00, - - // count of domains returned - 0x00, 0x00, 0x02, -} - -var testDomainMemoryStatsReply = []byte{ - 0x00, 0x00, 0x00, 0x38, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x9f, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // tag 6 val 1048576 - // tag 7 val 91272 - 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x64, 0x88, -} - -var testDomainStateReply = []byte{ - 0x00, 0x00, 0x00, 0x24, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xd4, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - 0x00, 0x00, 0x00, 0x01, // state - 0x00, 0x00, 0x00, 0x01, // reason -} - -var testSecretsReply = []byte{ - 0x00, 0x00, 0x00, 0x40, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x01, 0x1f, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // list of secrets - 0x00, 0x00, 0x00, 0x01, - - // first secret - // UUID: 19fdc2f2fa64-46f3bacf42a8aafca6dd - 0x19, 0xfd, 0xc2, 0xf2, 0xfa, 0x64, 0x46, 0xf3, - 0xba, 0xcf, 0x42, 0xa8, 0xaa, 0xfc, 0xa6, 0xdd, - - // usage type: (1, volume) - 0x00, 0x00, 0x00, 0x01, - - // usage id: "/tmp" - 0x00, 0x00, 0x00, 0x04, 0x2f, 0x74, 0x6d, 0x70, - - // end of secrets - 0x00, 0x00, 0x00, 0x01, -} - -var testStoragePoolLookup = []byte{ - 0x00, 0x00, 0x00, 0x38, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x54, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - // pool: name = default - 0x00, 0x00, 0x00, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x00, - - // uuid = bb30a11c084648278bba3e6b5cf1b65f - 0xbb, 0x30, 0xa1, 0x1c, 0x08, 0x46, 0x48, 0x27, - 0x8b, 0xba, 0x3e, 0x6b, 0x5c, 0xf1, 0xb6, 0x5f, -} - -var testStoragePoolRefresh = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x53, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testListPoolsReply = []byte{ - 0x00, 0x00, 0x00, 0x40, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x01, 0x19, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - 0x00, 0x00, 0x00, 0x01, // pools - - // first pool, name: "default" - 0x00, 0x00, 0x00, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x00, - - // uuid: bb30a11c084648278bba3e6b5cf1b65f - 0xbb, 0x30, 0xa1, 0x1c, 0x08, 0x46, 0x48, 0x27, - 0x8b, 0xba, 0x3e, 0x6b, 0x5c, 0xf1, 0xb6, 0x5f, - - 0x00, 0x00, 0x00, 0x01, // count -} - -var testUndefineReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xe7, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testDestroyReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xea, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testVersionReply = []byte{ - 0x00, 0x00, 0x00, 0x24, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0x9d, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x4d, 0xfc, // version (1003004) -} - -var testDefineXML = []byte{ - 0x00, 0x00, 0x00, 0x38, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x01, 0x5e, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - 0x00, 0x00, 0x00, 0x04, // dom - 0x74, 0x65, 0x73, 0x74, // name - // uuid - 0xaf, 0xc2, 0xef, 0x71, 0x66, 0xe0, 0x45, 0xa7, - 0xa5, 0xec, 0xd8, 0xba, 0x1e, 0xa8, 0x17, 0x7d, - 0xff, 0xff, 0xff, 0xff, // id -} - -var testCreateWithFlags = []byte{ - 0x00, 0x00, 0x00, 0x38, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x01, 0x5e, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - 0x00, 0x00, 0x00, 0x04, // dom - 0x74, 0x65, 0x73, 0x74, // name - // uuid - 0xaf, 0xc2, 0xef, 0x71, 0x66, 0xe0, 0x45, 0xa7, - 0xa5, 0xec, 0xd8, 0xba, 0x1e, 0xa8, 0x17, 0x7d, - 0xff, 0xff, 0xff, 0xff, // id -} - -var testShutdownReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xea, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testRebootReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xea, // procedure - 0x00, 0x00, 0x00, 0x01, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -var testSetBlockIoTuneReply = []byte{ - 0x00, 0x00, 0x00, 0x1c, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xfc, // procedure - 0x00, 0x00, 0x00, 0x00, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status -} - -// This result block was obtained by calling `fmt.Printf("%#v", r.Payload)` on -// the result returned by an actual call to GetBlockIoTune, and then adding the -// standard header to the beginning. The length parameter has to be correct! -var testGetBlockIoTuneReply = []byte{ - 0x00, 0x00, 0x03, 0x00, // length - 0x20, 0x00, 0x80, 0x86, // program - 0x00, 0x00, 0x00, 0x01, // version - 0x00, 0x00, 0x00, 0xfd, // procedure - 0x00, 0x00, 0x00, 0x00, // type - 0x00, 0x00, 0x00, 0x00, // serial - 0x00, 0x00, 0x00, 0x00, // status - - 0x0, 0x0, 0x0, 0x14, // 14 TypedParams follow - - 0x0, 0x0, 0x0, 0xf, // field name is 15 bytes, padded to a multiple of 4 - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x0, - 0x0, 0x0, 0x0, 0x4, // type - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, // value - - 0x0, 0x0, 0x0, 0xe, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0xf, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xa1, 0x20, - - 0x0, 0x0, 0x0, 0xe, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0xd, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0xe, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x13, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x12, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x13, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc3, 0x50, - - 0x0, 0x0, 0x0, 0x12, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x11, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x12, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0xd, - 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x1a, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x19, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x1a, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, - - 0x0, 0x0, 0x0, 0x19, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x18, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0x19, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x4, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - - 0x0, 0x0, 0x0, 0xa, // This is field "group_name", a string (type 7), whose value is "somename" - 0x67, 0x72, 0x6F, 0x75, 0x70, 0x5F, 0x6E, 0x61, 0x6D, 0x65, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x7, - 0x0, 0x0, 0x0, 0x8, - 0x73, 0x6F, 0x6D, 0x65, 0x6E, 0x61, 0x6D, 0x65, - - 0x0, 0x0, 0x0, 0x0, // End of TypedParams -} - -// MockLibvirt provides a mock libvirt server for testing. -type MockLibvirt struct { - net.Conn - Test net.Conn - Fail bool - serial uint32 -} - -// New creates a new mock Libvirt server. -func New() *MockLibvirt { - serv, conn := net.Pipe() - - m := &MockLibvirt{ - Conn: conn, - Test: serv, - } - - go m.handle(serv) - - return m -} - -func (m *MockLibvirt) handle(conn net.Conn) { - for { - // packetLengthSize + headerSize - buf := make([]byte, 28) - conn.Read(buf) - - // extract program - prog := binary.BigEndian.Uint32(buf[4:8]) - - // extract procedure - proc := binary.BigEndian.Uint32(buf[12:16]) - - switch prog { - case constants.Program: - m.handleRemote(proc, conn) - case constants.ProgramQEMU: - m.handleQEMU(proc, conn) - } - } -} - -func (m *MockLibvirt) handleRemote(procedure uint32, conn net.Conn) { - switch procedure { - case constants.ProcAuthList: - conn.Write(m.reply(testAuthReply)) - case constants.ProcStoragePoolRefresh: - conn.Write(m.reply(testStoragePoolRefresh)) - case constants.ProcStoragePoolLookupByName: - conn.Write(m.reply(testStoragePoolLookup)) - case constants.ProcConnectOpen: - conn.Write(m.reply(testConnectReply)) - case constants.ProcConnectClose: - conn.Write(m.reply(testDisconnectReply)) - case constants.ProcConnectGetLibVersion: - conn.Write(m.reply(testVersionReply)) - case constants.ProcDomainLookupByName: - conn.Write(m.reply(testDomainResponse)) - case constants.ProcConnectListAllDomains: - conn.Write(m.reply(testDomainsReply)) - case constants.ProcConnectListAllStoragePools: - conn.Write(m.reply(testListPoolsReply)) - case constants.ProcConnectListAllSecrets: - conn.Write(m.reply(testSecretsReply)) - case constants.ProcDomainGetState: - conn.Write(m.reply(testDomainStateReply)) - case constants.ProcDomainMemoryStats: - conn.Write(m.reply(testDomainMemoryStatsReply)) - case constants.ProcDomainMigrateSetMaxSpeed: - conn.Write(m.reply(testSetSpeedReply)) - case constants.ProcDomainMigratePerform3Params: - conn.Write(m.reply(testMigrateReply)) - case constants.ProcDomainUndefineFlags: - conn.Write(m.reply(testUndefineReply)) - case constants.ProcDomainDestroyFlags: - conn.Write(m.reply(testDestroyReply)) - case constants.ProcDomainDefineXMLFlags: - conn.Write(m.reply(testDefineXML)) - case constants.ProcDomainReboot: - conn.Write(m.reply(testRebootReply)) - case constants.ProcDomainReset: - conn.Write(m.reply(testRebootReply)) - case constants.ProcDomainCreateWithFlags: - conn.Write(m.reply(testCreateWithFlags)) - case constants.ProcDomainShutdownFlags: - conn.Write(m.reply(testShutdownReply)) - case constants.ProcDomainSetBlockIOTune: - conn.Write(m.reply(testSetBlockIoTuneReply)) - case constants.ProcDomainGetBlockIOTune: - conn.Write(m.reply(testGetBlockIoTuneReply)) - default: - fmt.Fprintln(os.Stderr, "unknown procedure", procedure) - } -} - -func (m *MockLibvirt) handleQEMU(procedure uint32, conn net.Conn) { - switch procedure { - case constants.QEMUConnectDomainMonitorEventRegister: - conn.Write(m.reply(testRegisterEvent)) - case constants.QEMUConnectDomainMonitorEventDeregister: - conn.Write(m.reply(testDeregisterEvent)) - case constants.QEMUDomainMonitor: - if m.Fail { - conn.Write(m.reply(testRunReplyFail)) - } else { - conn.Write(m.reply(testRunReply)) - } - } -} - -// reply automatically injects the correct serial -// number into the provided response buffer. -func (m *MockLibvirt) reply(buf []byte) []byte { - atomic.AddUint32(&m.serial, 1) - binary.BigEndian.PutUint32(buf[20:24], m.serial) - - return buf -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/rpc.go b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/rpc.go deleted file mode 100644 index 0e2bbf07..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/github.com/digitalocean/go-libvirt/rpc.go +++ /dev/null @@ -1,445 +0,0 @@ -// Copyright 2016 The go-libvirt 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 libvirt - -import ( - "bytes" - "encoding/binary" - "errors" - "io" - "strings" - "sync/atomic" - - "github.com/davecgh/go-xdr/xdr2" - "github.com/digitalocean/go-libvirt/internal/constants" -) - -// ErrUnsupported is returned if a procedure is not supported by libvirt -var ErrUnsupported = errors.New("unsupported procedure requested") - -// request and response types -const ( - // Call is used when making calls to the remote server. - Call = iota - - // Reply indicates a server reply. - Reply - - // Message is an asynchronous notification. - Message - - // Stream represents a stream data packet. - Stream - - // CallWithFDs is used by a client to indicate the request has - // arguments with file descriptors. - CallWithFDs - - // ReplyWithFDs is used by a server to indicate the request has - // arguments with file descriptors. - ReplyWithFDs -) - -// request and response statuses -const ( - // StatusOK is always set for method calls or events. - // For replies it indicates successful completion of the method. - // For streams it indicates confirmation of the end of file on the stream. - StatusOK = iota - - // StatusError for replies indicates that the method call failed - // and error information is being returned. For streams this indicates - // that not all data was sent and the stream has aborted. - StatusError - - // StatusContinue is only used for streams. - // This indicates that further data packets will be following. - StatusContinue -) - -// header is a libvirt rpc packet header -type header struct { - // Program identifier - Program uint32 - - // Program version - Version uint32 - - // Remote procedure identifier - Procedure uint32 - - // Call type, e.g., Reply - Type uint32 - - // Call serial number - Serial uint32 - - // Request status, e.g., StatusOK - Status uint32 -} - -// packet represents a RPC request or response. -type packet struct { - // Size of packet, in bytes, including length. - // Len + Header + Payload - Len uint32 - Header header -} - -// internal rpc response -type response struct { - Payload []byte - Status uint32 -} - -// libvirt error response -type libvirtError struct { - Code uint32 - DomainID uint32 - Padding uint8 - Message string - Level uint32 -} - -func (l *Libvirt) connect() error { - payload := struct { - Padding [3]byte - Name string - Flags uint32 - }{ - Padding: [3]byte{0x1, 0x0, 0x0}, - Name: "qemu:///system", - Flags: 0, - } - - buf, err := encode(&payload) - if err != nil { - return err - } - - // libvirt requires that we call auth-list prior to connecting, - // event when no authentication is used. - resp, err := l.request(constants.ProcAuthList, constants.Program, &buf) - if err != nil { - return err - } - - r := <-resp - if r.Status != StatusOK { - return decodeError(r.Payload) - } - - resp, err = l.request(constants.ProcConnectOpen, constants.Program, &buf) - if err != nil { - return err - } - - r = <-resp - if r.Status != StatusOK { - return decodeError(r.Payload) - } - - return nil -} - -func (l *Libvirt) disconnect() error { - resp, err := l.request(constants.ProcConnectClose, constants.Program, nil) - if err != nil { - return err - } - - r := <-resp - if r.Status != StatusOK { - return decodeError(r.Payload) - } - - return nil -} - -// listen processes incoming data and routes -// responses to their respective callback handler. -func (l *Libvirt) listen() { - for { - // response packet length - length, err := pktlen(l.r) - if err != nil { - // When the underlying connection EOFs or is closed, stop - // this goroutine - if err == io.EOF || strings.Contains(err.Error(), "use of closed network connection") { - return - } - - // invalid packet - continue - } - - // response header - h, err := extractHeader(l.r) - if err != nil { - // invalid packet - continue - } - - // payload: packet length minus what was previously read - size := int(length) - (constants.PacketLengthSize + constants.HeaderSize) - buf := make([]byte, size) - _, err = io.ReadFull(l.r, buf) - if err != nil { - // invalid packet - continue - } - - // route response to caller - l.route(h, buf) - } -} - -// callback sends rpc responses to their respective caller. -func (l *Libvirt) callback(id uint32, res response) { - l.cm.Lock() - c, ok := l.callbacks[id] - l.cm.Unlock() - if ok { - c <- res - } - - l.deregister(id) -} - -// route sends incoming packets to their listeners. -func (l *Libvirt) route(h *header, buf []byte) { - // route events to their respective listener - if h.Program == constants.ProgramQEMU && h.Procedure == constants.QEMUDomainMonitorEvent { - l.stream(buf) - return - } - - // send responses to caller - res := response{ - Payload: buf, - Status: h.Status, - } - l.callback(h.Serial, res) -} - -// serial provides atomic access to the next sequential request serial number. -func (l *Libvirt) serial() uint32 { - return atomic.AddUint32(&l.s, 1) -} - -// stream decodes domain events and sends them -// to the respective event listener. -func (l *Libvirt) stream(buf []byte) { - e, err := decodeEvent(buf) - if err != nil { - // event was malformed, drop. - return - } - - // send to event listener - l.em.Lock() - c, ok := l.events[e.CallbackID] - l.em.Unlock() - if ok { - c <- e - } -} - -// addStream configures the routing for an event stream. -func (l *Libvirt) addStream(id uint32, stream chan *DomainEvent) { - l.em.Lock() - l.events[id] = stream - l.em.Unlock() -} - -// removeStream notifies the libvirt server to stop sending events -// for the provided callback id. Upon successful de-registration the -// callback handler is destroyed. -func (l *Libvirt) removeStream(id uint32) error { - close(l.events[id]) - - payload := struct { - CallbackID uint32 - }{ - CallbackID: id, - } - - buf, err := encode(&payload) - if err != nil { - return err - } - - resp, err := l.request(constants.QEMUConnectDomainMonitorEventDeregister, constants.ProgramQEMU, &buf) - if err != nil { - return err - } - - res := <-resp - if res.Status != StatusOK { - return decodeError(res.Payload) - } - - l.em.Lock() - delete(l.events, id) - l.em.Unlock() - - return nil -} - -// register configures a method response callback -func (l *Libvirt) register(id uint32, c chan response) { - l.cm.Lock() - l.callbacks[id] = c - l.cm.Unlock() -} - -// deregister destroys a method response callback -func (l *Libvirt) deregister(id uint32) { - l.cm.Lock() - close(l.callbacks[id]) - delete(l.callbacks, id) - l.cm.Unlock() -} - -// request performs a libvirt RPC request. -// The returned channel is used by the caller to receive the asynchronous -// call response. The channel is closed once a response has been sent. -func (l *Libvirt) request(proc uint32, program uint32, payload *bytes.Buffer) (<-chan response, error) { - serial := l.serial() - c := make(chan response) - - l.register(serial, c) - - size := constants.PacketLengthSize + constants.HeaderSize - if payload != nil { - size += payload.Len() - } - - p := packet{ - Len: uint32(size), - Header: header{ - Program: program, - Version: constants.ProtocolVersion, - Procedure: proc, - Type: Call, - Serial: serial, - Status: StatusOK, - }, - } - - // write header - l.mu.Lock() - defer l.mu.Unlock() - err := binary.Write(l.w, binary.BigEndian, p) - if err != nil { - return nil, err - } - - // write payload - if payload != nil { - err = binary.Write(l.w, binary.BigEndian, payload.Bytes()) - if err != nil { - return nil, err - } - } - - if err := l.w.Flush(); err != nil { - return nil, err - } - - return c, nil -} - -// encode XDR encodes the provided data. -func encode(data interface{}) (bytes.Buffer, error) { - var buf bytes.Buffer - _, err := xdr.Marshal(&buf, data) - - return buf, err -} - -// decodeError extracts an error message from the provider buffer. -func decodeError(buf []byte) error { - var e libvirtError - - dec := xdr.NewDecoder(bytes.NewReader(buf)) - _, err := dec.Decode(&e) - if err != nil { - return err - } - - if strings.Contains(e.Message, "unknown procedure") { - return ErrUnsupported - } - - return errors.New(e.Message) -} - -// decodeEvent extracts an event from the given byte slice. -// Errors encountered will be returned along with a nil event. -func decodeEvent(buf []byte) (*DomainEvent, error) { - var e DomainEvent - - dec := xdr.NewDecoder(bytes.NewReader(buf)) - _, err := dec.Decode(&e) - if err != nil { - return nil, err - } - - return &e, nil -} - -// pktlen determines the length of an incoming rpc response. -// If an error is encountered reading the provided Reader, the -// error is returned and response length will be 0. -func pktlen(r io.Reader) (uint32, error) { - buf := make([]byte, constants.PacketLengthSize) - - for n := 0; n < cap(buf); { - nn, err := r.Read(buf) - if err != nil { - return 0, err - } - - n += nn - } - - return binary.BigEndian.Uint32(buf), nil -} - -// extractHeader returns the decoded header from an incoming response. -func extractHeader(r io.Reader) (*header, error) { - buf := make([]byte, constants.HeaderSize) - - for n := 0; n < cap(buf); { - nn, err := r.Read(buf) - if err != nil { - return nil, err - } - - n += nn - } - - h := &header{ - Program: binary.BigEndian.Uint32(buf[0:4]), - Version: binary.BigEndian.Uint32(buf[4:8]), - Procedure: binary.BigEndian.Uint32(buf[8:12]), - Type: binary.BigEndian.Uint32(buf[12:16]), - Serial: binary.BigEndian.Uint32(buf[16:20]), - Status: binary.BigEndian.Uint32(buf[20:24]), - } - - return h, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/vendor.json b/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/vendor.json deleted file mode 100644 index a0195e6d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/kvm/vendor/vendor.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "comment": "", - "ignore": "test", - "package": [ - { - "checksumSHA1": "2u6FcCnyfRnJvUCWpEZZv6Yy+WE=", - "path": "github.com/davecgh/go-xdr/xdr2", - "revision": "e6a2ba005892b6a5b27cb5352f64c2e96942dd28", - "revisionTime": "2016-11-22T19:31:51Z" - }, - { - "checksumSHA1": "r7EVnpz8g88YB0wTes+hs8VdBBo=", - "path": "github.com/digitalocean/go-libvirt", - "revision": "59d541f19311883ad82708651353009fb207d8a9", - "revisionTime": "2018-01-03T20:19:28Z" - }, - { - "checksumSHA1": "NY8di5qB457jytcEX4DVcNw4u8k=", - "path": "github.com/digitalocean/go-libvirt/internal/constants", - "revision": "59d541f19311883ad82708651353009fb207d8a9", - "revisionTime": "2018-01-03T20:19:28Z" - }, - { - "checksumSHA1": "wTAyp0Z2KqjokzJC3hHxMJTilIQ=", - "path": "github.com/digitalocean/go-libvirt/libvirttest", - "revision": "6075ea3c39a182efd22179110e92d4e8a8892d00", - "revisionTime": "2018-03-01T20:00:12Z" - } - ], - "rootPath": "github.com/elastic/beats/metricbeat/module/kvm" -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/logstash/_meta/Dockerfile index 79832e0c..4c47a068 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/_meta/Dockerfile +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/_meta/Dockerfile @@ -1,4 +1,4 @@ -FROM docker.elastic.co/logstash/logstash:6.2.4 +FROM docker.elastic.co/logstash/logstash:6.3.0 COPY healthcheck.sh / ENV XPACK_MONITORING_ENABLED=FALSE diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/doc.go index 3e020e28..0984835e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/fields.go new file mode 100644 index 00000000..7ff2d5cb --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package logstash + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "logstash", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJy0k8FOwzAMhu99Cqv37QFy4AZiCASnXRBCpfW6sDSuYndob4/WtVMaUla24WOsfv/nxJ3BBncKDJUsGa8TANFiUEH62B2lCUCBnDtdiyar4CYBAOjbUFHRGEwAHBrMGBV8oGQJAKOItiUreE2ZTfqWAKw0moJVS5iBzSocZO9LdjUqKB01dXcSSR+SfJqlAo+HMdoo8VDB9+FQfYXxvsKaWAaNXmODuy9yRdD7RWZf98TSgqNZW3SsyV4v7viuywi5T/3cVtHE8J4n5D0sn2BhVxQ0Yvd7eu5Ts0/w2VdsdD+81jHwIdiQLc9LffGo/jbPWTLhS3f6vaVAheJ0zvMLVxy3aAdO414Tpr9taRDOOSbhi+jxFTj/JRY2p0rbshsTcmqsoJuPWlAT/vDX0HhupKS/aKy0EXT4H8t516F/uHwHAAD///GsgT0=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/data.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/data.go index 54b4ecb8..eb1b5ba6 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( @@ -17,6 +34,6 @@ var ( } ) -func eventMapping(node map[string]interface{}) (common.MapStr, *s.Errors) { +func eventMapping(node map[string]interface{}) (common.MapStr, error) { return schema.Apply(node) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/node.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/node.go index bc6456ba..15a316f8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/node.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/node.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/node_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/node_integration_test.go deleted file mode 100644 index 25fc91e8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node/node_integration_test.go +++ /dev/null @@ -1,36 +0,0 @@ -// +build integration - -package node - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/logstash" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "logstash") - - f := mbtest.NewEventFetcher(t, logstash.GetConfig("node")) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "logstash") - - f := mbtest.NewEventFetcher(t, logstash.GetConfig("node")) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/data.go index e6c67587..6dad0598 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node_stats import ( @@ -16,6 +33,6 @@ var ( } ) -func eventMapping(node map[string]interface{}) (common.MapStr, *s.Errors) { +func eventMapping(node map[string]interface{}) (common.MapStr, error) { return schema.Apply(node) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/node_stats.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/node_stats.go index 54d119a1..0a0671d7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/node_stats.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/node_stats.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node_stats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/node_stats_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/node_stats_integration_test.go deleted file mode 100644 index e2594513..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/node_stats/node_stats_integration_test.go +++ /dev/null @@ -1,36 +0,0 @@ -// +build integration - -package node_stats - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/logstash" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "logstash") - - f := mbtest.NewEventFetcher(t, logstash.GetConfig("node_stats")) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "logstash") - - f := mbtest.NewEventFetcher(t, logstash.GetConfig("node_stats")) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/logstash/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/logstash/testing.go index e90640b1..221b280b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/logstash/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/logstash/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 logstash import "os" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/memcached/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/memcached/doc.go index e5f0920d..6d55f949 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/memcached/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/memcached/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memcached is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/memcached/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/memcached/fields.go new file mode 100644 index 00000000..3d7e9782 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/memcached/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package memcached + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "memcached", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzEVr12MycQ7fUUc9R89jn2PoCKNEmTIqnc+7AwqyUCZsMMkvftc4Bd/ceSEzmhkQTizr3zyytscFyBR6+V7tEsAMSKwxUsf5v3lgsAg6yjHcRSWMFPCwCA/Tl4MsnhAoB7ivKuKXR2vYJOOc67ER0qxhW0KGoB0Fl0hlcF5BWC8nhKIC8ZB1zBOlIapp0rDE6hjuFYlPB+9xrc30LWdQ5wrmFe5wSOSQzWnOzPNByF9dnBJ0zy+jnFiEFgiKSRGX79BagD6fEoCKJ40+xvXiWUBrEeG0b9IF4H64xxi3G28DkN6SMqww/i8HvyLcbqj4ILidFAOxb/6MlzF0wnV96gqikE1Nk0NxPUw2nTgOHYEAiB9JYvOL/k+krOQItFGyuPF7hb5RICBVDOTfcYTIo2rCFQ9Mplg1FlU18QLyTKPU56Vc5J5xh0yc22QImgH+TghClcbINGsAK9YmgRQ67QKGhuaFijNL2VxyfbEfflGmUJmrxXwTA8laBBtvo88S5c0/ACxm6tKdHzF9hTxi61N+8FsYZSKIuoyTwDRyW3iiwL95YZHy+9U9ahmWRH/DMhSw6KVokRAkmfk22nGKb07SjWYG5wvMAtZzj/tWrOd4UIyN2Kr/amWePji/IsphE12m2uxBrPKSlrWLNk0JSCZN22NOZLnTuMeJw1FPO9O+Txd8jjE3lZj9UHeVXXDW652TbtKPdnWJf7j+QheuXWDe5vuQFB2CsoEIe4dJF8yaOAsqO4qdW07x83pOyiFcHwf6thDKY2vn+owwr67xtUBX2eqG4EG46p/ZjK/S6KXxon/8bR5+xZKKIBrOVbvtOJjAbe8g/LEAiWXn1Yn3y5fIFdSn5u020SUHULDdigY34vlndINjZCwF2Bmc0W7+FdPsOtrWP4v/UYtX+gllxknk5qrM4hIegiIqQhv94pjqXPzzLPrcJ+QByeNRHrp5UfDLOrJyxGKe30yVlv5d2rj6LluVn8FQAA///PsXfU" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/data.go index 60c0c559..be6224ea 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/stats.go b/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/stats.go index b951d9fd..95031604 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/stats.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/stats.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/stats_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/stats_integration_test.go deleted file mode 100644 index 02d75af8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/memcached/stats/stats_integration_test.go +++ /dev/null @@ -1,47 +0,0 @@ -// +build integration - -package stats - -import ( - "os" - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "memcached") - - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "memcached", - "metricsets": []string{"stats"}, - "hosts": []string{getEnvHost() + ":" + getEnvPort()}, - } -} - -func getEnvHost() string { - host := os.Getenv("MEMCACHED_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func getEnvPort() string { - port := os.Getenv("MEMCACHED_PORT") - - if len(port) == 0 { - port = "11211" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.reference.yml index 8f2386a2..d99d2938 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.reference.yml @@ -10,6 +10,21 @@ # password configuration options. hosts: ["localhost:27017"] + # Optional SSL. By default is off. + #ssl.enabled: true + + # Mode of verification of server certificate ('none' or 'full') + #ssl.verification_mode: 'full' + + # List of root certificates for TLS server verifications + #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] + + # Certificate for SSL client authentication + #ssl.certificate: "/etc/pki/client/cert.pem" + + # Client Certificate Key + #ssl.key: "/etc/pki/client/cert.key" + # Username to use when connecting to MongoDB. Empty by default. #username: user diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.yml index 18589bb4..e92b3d5f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/config.yml @@ -11,6 +11,21 @@ # password configuration options. hosts: ["localhost:27017"] + # Optional SSL. By default is off. + #ssl.enabled: true + + # Mode of verification of server certificate ('none' or 'full') + #ssl.verification_mode: 'full' + + # List of root certificates for TLS server verifications + #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] + + # Certificate for SSL client authentication + #ssl.certificate: "/etc/pki/client/cert.pem" + + # Client Certificate Key + #ssl.key: "/etc/pki/client/cert.key" + # Username to use when connecting to MongoDB. Empty by default. #username: user diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/fields.yml index 8ed17fb6..a69721ff 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/_meta/fields.yml @@ -4,6 +4,7 @@ Metrics collected from MongoDB servers. short_config: false release: ga + settings: ["ssl"] fields: - name: mongodb type: group diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/_meta/docs.asciidoc index d2ad93f4..cf726fd1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/_meta/docs.asciidoc @@ -1,6 +1,6 @@ This is the `collstats` metricset of the module mongodb. -It is using the `top` adminitrative command to return usage statistics for each collection. It provides the amount of time, in microseconds, used and a count of operations for the following types: +It is using the `top` administrative command to return usage statistics for each collection. It provides the amount of time, in microseconds, used and a count of operations for the following types: - total - readLock diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/collstats.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/collstats.go index 53df2803..d3ed7b2d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/collstats.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/collstats.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 collstats import ( @@ -7,8 +24,6 @@ import ( "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/mongodb" - - "gopkg.in/mgo.v2" ) var debugf = logp.MakeDebug("mongodb.collstats") @@ -25,24 +40,18 @@ func init() { // additional entries. These variables can be used to persist data or configuration between // multiple fetch calls. type MetricSet struct { - mb.BaseMetricSet - dialInfo *mgo.DialInfo + *mongodb.MetricSet } -// New create a new instance of the MetricSet +// New creates a new instance of the MetricSet // Part of new is also setting up the configuration by processing additional // configuration entries if needed. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - dialInfo, err := mgo.ParseURL(base.HostData().URI) + ms, err := mongodb.NewMetricSet(base) if err != nil { return nil, err } - dialInfo.Timeout = base.Module().Config().Timeout - - return &MetricSet{ - BaseMetricSet: base, - dialInfo: dialInfo, - }, nil + return &MetricSet{ms}, nil } // Fetch methods implements the data gathering and data conversion to the right format @@ -53,7 +62,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { var events []common.MapStr // instantiate direct connections to each of the configured Mongo hosts - mongoSession, err := mongodb.NewDirectSession(m.dialInfo) + mongoSession, err := mongodb.NewDirectSession(m.DialInfo) if err != nil { return nil, err } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/collstats_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/collstats_integration_test.go deleted file mode 100644 index f0acaf51..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/collstats_integration_test.go +++ /dev/null @@ -1,52 +0,0 @@ -// +build integration - -package collstats - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/mongodb" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "mongodb") - - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - for _, event := range events { - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check a few event Fields - db := event["db"].(string) - assert.NotEqual(t, db, "") - - collection := event["collection"].(string) - assert.NotEqual(t, collection, "") - } -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "mongodb") - - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "mongodb", - "metricsets": []string{"collstats"}, - "hosts": []string{mongodb.GetEnvHost() + ":" + mongodb.GetEnvPort()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/data.go index b5e6635b..b07e9d8a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 collstats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/data_test.go deleted file mode 100644 index 57db9dc4..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/collstats/data_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build !integration - -package collstats - -import ( - "encoding/json" - "io/ioutil" - "testing" - - "github.com/elastic/beats/libbeat/common" - - "github.com/stretchr/testify/assert" -) - -func TestEventMapping(t *testing.T) { - - content, err := ioutil.ReadFile("./_meta/test/input.json") - assert.NoError(t, err) - - data := common.MapStr{} - json.Unmarshal(content, &data) - - event, _ := eventMapping("unit.test", data) - - assert.Equal(t, event["total"].(common.MapStr)["count"], float64(1)) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/data.go index 8b04cf1c..05514a0e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dbstats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/dbstats.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/dbstats.go index 63d74b56..626d1b7b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/dbstats.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/dbstats.go @@ -1,10 +1,25 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 dbstats import ( "errors" - "gopkg.in/mgo.v2" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" @@ -27,24 +42,18 @@ func init() { // additional entries. These variables can be used to persist data or configuration between // multiple fetch calls. type MetricSet struct { - mb.BaseMetricSet - dialInfo *mgo.DialInfo + *mongodb.MetricSet } // New creates a new instance of the MetricSet // Part of new is also setting up the configuration by processing additional // configuration entries if needed. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - dialInfo, err := mgo.ParseURL(base.HostData().URI) + ms, err := mongodb.NewMetricSet(base) if err != nil { return nil, err } - dialInfo.Timeout = base.Module().Config().Timeout - - return &MetricSet{ - BaseMetricSet: base, - dialInfo: dialInfo, - }, nil + return &MetricSet{ms}, nil } // Fetch methods implements the data gathering and data conversion to the right format @@ -55,7 +64,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { var events []common.MapStr // instantiate direct connections to each of the configured Mongo hosts - mongoSession, err := mongodb.NewDirectSession(m.dialInfo) + mongoSession, err := mongodb.NewDirectSession(m.DialInfo) if err != nil { return nil, err } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/dbstats_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/dbstats_integration_test.go deleted file mode 100644 index ed44c326..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/dbstats/dbstats_integration_test.go +++ /dev/null @@ -1,77 +0,0 @@ -// +build integration - -package dbstats - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/mongodb" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "mongodb") - - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - for _, event := range events { - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check a few event Fields - db := event["db"].(string) - assert.NotEqual(t, db, "") - - collections := event["collections"].(int64) - assert.True(t, collections > 0) - - objects := event["objects"].(int64) - assert.True(t, objects > 0) - - avgObjSize, err := event.GetValue("avg_obj_size.bytes") - assert.NoError(t, err) - assert.True(t, avgObjSize.(int64) > 0) - - dataSize, err := event.GetValue("data_size.bytes") - assert.NoError(t, err) - assert.True(t, dataSize.(int64) > 0) - - storageSize, err := event.GetValue("storage_size.bytes") - assert.NoError(t, err) - assert.True(t, storageSize.(int64) > 0) - - numExtents := event["num_extents"].(int64) - assert.True(t, numExtents >= 0) - - indexes := event["indexes"].(int64) - assert.True(t, indexes >= 0) - - indexSize, err := event.GetValue("index_size.bytes") - assert.NoError(t, err) - assert.True(t, indexSize.(int64) > 0) - } -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "mongodb") - - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "mongodb", - "metricsets": []string{"dbstats"}, - "hosts": []string{mongodb.GetEnvHost() + ":" + mongodb.GetEnvPort()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/doc.go index c43ed399..fe98f601 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mongodb is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/fields.go new file mode 100644 index 00000000..92740eaf --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package mongodb + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "mongodb", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzsfc+v4zaS/73/ikIu3wRw+4v9gT00BgE6PTvALNIzQZJBDouFm5bKNvMoUk1S9vP+9QsWSYm2KUu2Zb8XzNOhD/2s4qeKxapisVh6D0+4/wCVkmtVLt8BWG4FfoBvPrv/+fMP37wDKNEUmteWK/kBvn8HAPAZreaFgUIJgYXFElZaVRBeAoN6i9rM3wGYjdJ2USi54usPsGLC4DsAjQKZwQ+wZu43aC2Xa/MB/vsbY8Q3//MOYMVRlOYDjfYeJKswRekeu68dAa2aOvxPBiiBDagqD3oe/pCOkI7ieDKWWdP+JTfWmfHSMYOAuJLgaHJjndiOkLjnUCLxOcaY4mwFcQjyCfc7pcujv52B6p4/M8uWzCCR7mBlx+1Ymm78T52YRiBw/045drXkktHgagVlFAWTZTp9I3BZZZmYW17hvDFZgELJ9WXofnU0Yce4WyHgaMNKaRCqeDLAJVS80MpgoWR5oE/HqArVSDspJtlUS9ROZA4MQQTcorRmQEzu51kkx+sLelZASkwjK3tEfpbFEWwSq07gUfpO8G68MdI/wZibgCkQ/q2dhhbaiLlI4e00t/hIGdKAlwrRo7y/FDtwF6j01wY1RzP12neC042UTnBhiHFrPuKZctV3IopQ8BmLxmI5IJw12krpPg27STjMPEWlckNA0WjjFqnajRRUxHYfQTmODbAIi5knFylFsM7TDIiOS4Pa3kNynrITnsQdlKpoKqfn46QWYN1HaBFLGGXcAmzqkvUasZsERZSdnC6UUUB0Zxn5UcbJSGOltneRUYkCr5FRQHRnGRG6kTIqVFUxh/cOUvLmksQUY8w43DhxteDuJLATVKcGvtt83LxFCiSg1mrLS2cnJagt6i3HnYPDoGba8qIRTPutX4twDr9uuGln+IAsN1ApY6FQskAtsYQdtxt6FbZKNM4iE/WW2E27MLZdL9Ty94Xh/4vz5d7iaJVZKV0x+wEOXxrYcuWpc2lxjfo8EcfvfWGO3JFm311xgfdFx2WJzw8YYgzl/La2qRb4bJ2VupKCWv6OxdVvG6s0W995FqQh+otqOa/y6jIMlDSZFGaL2vQlIq7ZTVbsd6XHbS/6aXB5FY34vleBxUojLgQ3eTt/DXOyqW5krVczeggl2LIa0mkes80k+TafeQwEp8mzndOxqxJOf5XGMllgpJx39rVWBZr8Erxq2F83tD/SLiSK4gqDzOEnZQxfCoQtE43zxRq9zzWggvct++JcCpWqqUKlVjqesI+MhOBnIyOhCiYW7vdZFC5GvgzFj46gT7cxAxprpS2WsNyD3WArPh6wDgSVzLiNjJlrXLtgZvLALdAN47gowU1s2RQdYr8u8sKL8HZMS36C4nZ4ge6t8CozPbTK3AyrMTj9jDqitwLTSggXT0+1MBN9i5QvgdgT2Ep5LrDNubkRRxluRTBdUsY8sXrBK6gVcFmoyv05AQBMHltUALZlXLAlF9zuKaOzwW6flJuFYTcc0FzqQcckWjeYZOVT1qzKIfeHdoXgtDGmPVWWbqDJZSEat1E7kOkGhQCDhjwZfFLS8BI1/YZ8CahVluiXIFqBXxw8VpYhhaekxWfrIbtNHrNN1Z8WbqncQZ5HAm1kY7DsRsxrUSrnPNWCybjp7eeLTm0WhUZm8VQtb+ftI1ASgbbCQuRZCaNH7QnqPl5PDsXCLGzYFsFw590Locxg5hifrWYLLldqKuvwk2DWxaJgaiz4ihdHWVj/DC3hDbJ60Ri2njQaHs0EBNUkHaGg3EVJRMzNp0MHpmYuhjKdQW4Xfwz6snT/LsU+UXEl4R+SP///H7lsnvu1tXb7xhVrxMnmc1AWF/HaLUY3IvgRvW5p/NpwjVBy8wSqRk0nui60Zev8Qgxva1w5e6WSlw4p5iynPdZI/7DCSdYnm4gGN/L/2QOTAaywfItQYaX0fujoRKglE4uLTkwHBPozxbLGzSwdcjmniMeubeyCOLZX/YeIA1owzh57TeAVzo4TprNgVg7mSjBDTp9CdzrOjwZtg0G0P6riKb8QwOcYuQGtmvVG7MGpw5YJ5/WcRfSLz6tD2ASdkU/wl4uvDTZ5deyf0QsF1C2SRKNp3BKWWLDGoM+Ail7m++cbjue85zeD8z2aJeixAKfMpWfMbopJv7/lc5zPvANrKgqM0qmYa2QlhbJOPw7+QifB2nzXpx/p8f5pmH0/QWRFQNaG6TYwE/soFcfYsWTaUoEh3oIM/ki8dQf459ajt8KLEPw+akGGiAjLGHUTB+2MEDsEP+G+Ru3ihdaRG2xD9j/G2j1at47b4AM9HwdxYuDWTSiJpC0XSVz6q12PF7I2mqOXW4WjOTo/SWnp12Q7/Y/dEW+I13xk4wwBsmLj7f+fHP3vZz4mi0HPnypV4vcZuTvu65gLTd73GVEfM8zaCGOWnMzNoELLaBS3jFUt1HqAfkBBpPUMdjP4md79DXYbXmxAo6k1Gr/NZhrLGeBzIRrDtxQB2e4v9F74n/Y3Z2q/aCLmnrc5KyjQ9cfKc48KzEbt/G5WHtWztK51xwyEd93g3sf6fRW63Xxuf3swsDPdl45qItxPtH8lIPQ/hnulREkUUYeI4HTZxCCoJQk71AgbFMQGczq+ErwgtzKWjcac8lA0VSMYrR6qJesS2l3kehitpJwMjFoiK8nLXTptvdKKFE9GHtoP+3XRu/Prc6HnPFXnp1PdzJ2rwbABzBPbTUns5ymJ/XYbsWRZ3SiwhNKN0koo3SiqhNIUcmrMJEJqzCQSaswk4mnMrbI5si43iuiI2o2SOqJ2o8COqF0ht7QuoSft+2YI3wzhmyF8M4T/HIaw94oYvJnCN1P4ZgrfTOE/jSms0LKFCwzfLOFUxN4s4ThKb5awn8ybJXy4JaSM+JsVnIrYmxUcR+nNCvaTebOCd7eC73LkJNqd0pOVdE1T1MjlixYzsirWowbpgNVsteLFrC1unIHGAvk2lkL46uBswVridhr7+vmiM16qxh7JlcavDZqHVVvG4Y4mYGSVv6rNXDCLsuA9dwqvUPq/x1IDaEm3R6ldDx8DDHYbJTKipEpXf7OpvcgTr/r4afDXxy5dRxpZGfnd32N+aG4K6lqEZeB+f1k3mvwV8unQycOmNNlqJuULBtIOWVTCSQWbTT3QCeY1SzgAfJSIz1SMXS3jttXA65Xy2W4I95Bz2xbhCvn22sVQfTFdUdRhE4XWEibq4Uz3vh5d493FBwb1va4tHTuc0PslQd16nq7Q2xvvLM1o0A9qwPt16WuD+i46nmEtdk/qZegQfJbuIEO+L8yDOApNaB41Wb6fy4N4C81jHsVb6Ef1IObCaA/jLljQB3HXNdcxpumusXVXeSbgsNeua6wFLzKX9ya37HEk6l/5x7LynZBGGfws3ZzNfF0GP+Fy0PZPscoeavsT5sa4gQmn8KFuIGFzjEeYkM3HeoSEz1HOYUJGH+scEkZH+Yks4b6YbaSf8FdAp/IP1PiALVVjDy7o+0GAbivHGx0B83X9C5a5kvrbJ+k/ud2ghv/4d1Aa/u1fZ1BijZJ6OCgZLkRYptdogeliwy0WttFIlxDaSwdZymWjYyeIwHihqpoL7zJ7b0N3+RLDS5T2tF/VFGwfpgh//vjZX23FNfP3ub/9/MN3s+TiW+5Gd5bwIF9brm3DxF3Y6rjKsqNWcfROPTu2+j3hIE8Vq2ssHzFTfqQAP8tkbqbyF71+CPdRYluhxqAJlN+HcVZcoJn5tKRvq8ENCP6EYu/s1bLHPrm/9N1fPmwgoFawV41OEgb545z498FJWOy43Sx+V42Wd1Kyi2fEN6ZobUHO+vqHpm6lNAT4XK7z99ko9bZYsuLJ+EvD+Wh/qZRAdlwMOdSvSzcIuw1Sikkj3RJLfDGdFrDYpKt1P+FirG9VbvW+F3rs9odyzSXO5aQ99T+CscHo+ot5/hpbuJjEqtYTda15CA0ENOf95o5rLBeWr3s6L13hPH/pPs7QudDf3Di/umF68flnsOWPkvFqudVMGpZteXSegRFM9DKSDpr4Ek7eb617moGMKb3wXdlVk09TjbiZOvJe6t/SK9RRaXziO2FuiKNj3OeaBz0KPS+e0JquRcgY3LHZBr36MOzeWxzAPg+WvnvwQrpB505XqQahflHN8NgvUwz/HYwX1IsU9JlNHiuym8b72D0aja5GU7sg3PIicZ7tL641fhV75lVT9ZYXwBhxD5UZjOTfPZ89nsA2NWs9i9+FOa8G/C9JG6u0HdGhv+qdryQvxLXdv0q2TMuXg+i5C9fmR/DlVNhQu5qHrWwa0q9sLsOeYTRSchQPhurGtChHrO9jtGQbehII98MbRh3EG7FeU0F7rfH0jp5tfKugdbuf7aLia+3m2TbS8OAF6k/5HYMHjfTGhGGvhYVOq7yViaugXbPZViRw6MkW5zvwvwRf0Z85ZCPc2Uo0ZnM98IuFTeMNdvE5LAp6GLhxTZPaFVmw7Hb0PtjcaOOh7WXxQGh7WWShZRMRS1Y8ObMrywUpQ1/37Nuz+SHzeZgitCpMs+83qaj3Zfw2CgUXp4JTh/09V0onxY+UrYmdcT5//vjT9l9uzHz0r8lbk3+xgy31GmY21mD1975pM5sb1qNPHmxJDXH9cm2F2sug/7riSff7KTjMHVulrfDh28p855lPzjaCpqChbrtZwqaO+Qcu175BIkT9/e5ImX5oeyX5ZpgnWUz/sKVRorGh5/PM7WZP+0DDl6AOX2hP9oVtkVKQlfnS11A19EmGJVo307E5tC/0HdMdmka43/yEAXxnJy/XKMkoQ6hRB19Bn6A6E90xY+8Itc2UJx1UO22adZpER5hH3i1L1ir15NgsVFULtOcCV2bsYsUldwusl8GeuoVR7axpoVtW1XGTRVxEZOUxPwOWvUv838mgdwO81yjoHDpJ7lPKwleZ0vcl4L/68ABw6UMuqv8h617XyLQJHxo8qm/PmPgTiocmn8BQ5+4OM6B07uPkNH84EV5V9zk+PmpbmCa8YzgcguHARXos3FtnGX9L8x3QU5s9vWWiX9vDa485iYxphMPTrpTrU46zZGnBXMmxPwizatF+m8m8At5pWx058tOfJUpkCPSxVlwrD2d3tP8owp2EkIwAZDYOkmZ5nT9ffMOtWXC58FOZaTk+BfJPrQ/yLLhBvU1SBSX6Stht3HaPHX6I11B3xvxO4VMgQ60bk7e4LKnCB1gbNktVIjTSBSYMNsi2e+hPUwkVWvIWLiB01nTVaCpSKTlbS2X4mUQ3Mi32i4fZO4pyI5fhtpaLZKPGLnGlQit7U2ywbERPrutKfScA90hN/TXxbsl2qPONRzVN7UH4gLHbMs1VY6DeMOMTs4l3C0nZXgOQpdgvpHFZsbIn9oMJN7qncSDVFIfyqqg/YSsVGuV73crdKO2ef8QdAjHqrE4M3A8+54KgaP14kv63/oNjAylajfVCqPVi2axWqF9ETj64d0iYDtF9OAodMLHx+aViQqCOX1hrrVPY2kQ9S8O+4YSSc7ltjc2LSYUVtmFC7Ns95ZFM4C+89yQVwOyNRbq8jKUPfUvc8gL9iloxF7YWTAJbrbCwVwgojUleTEaJaJJwg62SuT+p1Umfv1AS9E6i0lixelFrvmUWF1uOuxeUFIGp/ceI6v17Jd/7hRZKBX2dVy9ZB97MJ19twZO/oFhcABJRjIF6GMu9DuDnQr1ewj0h4Lv/CwAA///tJala" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/metricset.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/metricset.go new file mode 100644 index 00000000..cc75df80 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/metricset.go @@ -0,0 +1,76 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mongodb + +import ( + "crypto/tls" + "net" + + "gopkg.in/mgo.v2" + + "github.com/elastic/beats/libbeat/common/transport/tlscommon" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" +) + +// ModuleConfig contains the common configuration for this module +type ModuleConfig struct { + TLS *tlscommon.Config `config:"ssl"` +} + +// MetricSet type defines all fields of the MetricSet +type MetricSet struct { + mb.BaseMetricSet + DialInfo *mgo.DialInfo +} + +// NewMetricSet creates a new instance of the MetricSet +func NewMetricSet(base mb.BaseMetricSet) (*MetricSet, error) { + var config ModuleConfig + err := base.Module().UnpackConfig(&config) + if err != nil { + return nil, err + } + + dialInfo, err := mgo.ParseURL(base.HostData().URI) + if err != nil { + return nil, err + } + dialInfo.Timeout = base.Module().Config().Timeout + + if config.TLS.IsEnabled() { + tlsConfig, err := tlscommon.LoadTLSConfig(config.TLS) + if err != nil { + return nil, err + } + + dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) { + hostname, _, err := net.SplitHostPort(base.HostData().Host) + if err != nil { + logp.Warn("Failed to obtain hostname from `%s`: %s", hostname, err) + hostname = "" + } + return tls.Dial("tcp", addr.String(), tlsConfig.BuildModuleConfig(hostname)) + } + } + + return &MetricSet{ + BaseMetricSet: base, + DialInfo: dialInfo, + }, nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/mongodb.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/mongodb.go index 92a6d4dd..57747684 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/mongodb.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/mongodb.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mongodb import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/mongodb_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/mongodb_test.go deleted file mode 100644 index d2242e12..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/mongodb_test.go +++ /dev/null @@ -1,98 +0,0 @@ -package mongodb - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestParseMongoURL(t *testing.T) { - tests := []struct { - Name string - URL string - Username string - Password string - ExpectedAddr string - ExpectedUsername string - ExpectedPassword string - }{ - { - Name: "basic test", - URL: "localhost:40001", - Username: "user", - Password: "secret", - - ExpectedAddr: "localhost:40001", - ExpectedUsername: "user", - ExpectedPassword: "secret", - }, - { - Name: "with schema", - URL: "mongodb://localhost:40001", - Username: "user", - Password: "secret", - - ExpectedAddr: "localhost:40001", - ExpectedUsername: "user", - ExpectedPassword: "secret", - }, - { - Name: "user password in url", - URL: "mongodb://user:secret@localhost:40001", - Username: "", - Password: "", - - ExpectedAddr: "localhost:40001", - ExpectedUsername: "user", - ExpectedPassword: "secret", - }, - { - Name: "username and password do not overwride", - URL: "mongodb://user:secret@localhost:40001", - Username: "anotheruser", - Password: "anotherpass", - - ExpectedAddr: "localhost:40001", - ExpectedUsername: "user", - ExpectedPassword: "secret", - }, - { - Name: "with options", - URL: "mongodb://localhost:40001?connect=direct&authSource=me", - Username: "anotheruser", - Password: "anotherpass", - - ExpectedAddr: "localhost:40001", - ExpectedUsername: "anotheruser", - ExpectedPassword: "anotherpass", - }, - { - Name: "multiple hosts", - URL: "mongodb://localhost:40001,localhost:40002", - Username: "", - Password: "", - - ExpectedAddr: "localhost:40001,localhost:40002", - ExpectedUsername: "", - ExpectedPassword: "", - }, - } - - for _, test := range tests { - mod := mbtest.NewTestModule(t, map[string]interface{}{ - "username": test.Username, - "password": test.Password, - }) - hostData, err := ParseURL(mod, test.URL) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.ExpectedAddr, hostData.Host, test.Name) - assert.Equal(t, test.ExpectedUsername, hostData.User, test.Name) - assert.Equal(t, test.ExpectedPassword, hostData.Password, test.Name) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/data.json index 0fa0f589..7fd0937f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/data.json +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/data.json @@ -1,126 +1,209 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { - "hostname": "host.example.com", - "name": "host.example.com" - }, - "metricset": { - "host": "mongodb:27017", - "module": "mongodb", - "name": "status", - "rtt": 115 - }, - "mongodb": { - "status": { - "asserts": { - "msg": 0, - "regular": 0, - "rollovers": 0, - "user": 0, - "warning": 0 - }, - "connections": { - "available": 838859, - "current": 1, - "total_created": 86 - }, - "extra_info": { - "heap_usage": {}, - "page_faults": 31707 - }, - "local_time": "2017-12-07T07:31:22.865Z", - "memory": { - "bits": 64, - "mapped": { - "mb": 0 + "@timestamp": "2017-10-12T08:05:34.853Z", + "beat": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "metricset": { + "host": "mongodb:27017", + "module": "mongodb", + "name": "status", + "rtt": 115 + }, + "mongodb": { + "status": { + "version": "3.4.7", + "ops": { + "latencies": { + "writes": { + "latency": 0, + "count": 0 + }, + "commands": { + "latency": 439756604, + "count": 7607434 + }, + "reads": { + "count": 19245, + "latency": 5504505 + } + }, + "counters": { + "update": 0, + "delete": 0, + "getmore": 14, + "command": 7607435, + "insert": 0, + "query": 19200 + }, + "replicated": { + "query": 0, + "update": 0, + "delete": 0, + "getmore": 0, + "command": 0, + "insert": 0 + } + }, + "uptime": { + "ms": 4909716080 + }, + "asserts": { + "warning": 0, + "msg": 0, + "user": 32, + "rollovers": 0, + "regular": 0 + }, + "local_time": "2018-07-17T18:31:45.823Z", + "global_lock": { + "total_time": { + "us": 4909712143000 }, - "mapped_with_journal": { - "mb": 0 - }, - "resident": { - "mb": 11 - }, - "virtual": { - "mb": 931 - } - }, - "network": { - "in": { - "bytes": 811 - }, - "out": { - "bytes": 24792 - }, - "requests": 27 - }, - "opcounters": { - "command": 14, - "delete": 0, - "getmore": 0, - "insert": 0, - "query": 1, - "update": 0 - }, - "opcounters_replicated": { - "command": 0, - "delete": 0, - "getmore": 0, - "insert": 0, - "query": 0, - "update": 0 - }, - "storage_engine": { - "name": "wiredTiger" - }, - "uptime": { - "ms": 652234 - }, - "version": "3.4.10", - "wired_tiger": { - "cache": { - "dirty": { - "bytes": 0 - }, - "maximum": { - "bytes": 1531969536 - }, - "pages": { - "evicted": 0, - "read": 0, - "write": 16 - }, - "used": { - "bytes": 29567 - } - }, - "concurrent_transactions": { - "read": { - "available": 128, - "out": 0, - "total_tickets": 128 - }, - "write": { - "available": 128, - "out": 0, - "total_tickets": 128 - } - }, - "log": { - "flushes": 3514, - "max_file_size": { - "bytes": 104857600 - }, - "scans": 0, - "size": { - "bytes": 33554432 - }, - "syncs": 18, - "write": { - "bytes": 16640 - }, - "writes": 42 - } - } - } - } -} \ No newline at end of file + "current_queue": { + "total": 0, + "readers": 0, + "writers": 0 + }, + "active_clients": { + "readers": 0, + "writers": 0, + "total": 19 + } + }, + "network": { + "out": { + "bytes": 5137630772 + }, + "requests": 15253359, + "in": { + "bytes": 973355182 + } + }, + "locks": { + "oplog": { + "acquire": { + "count": { + "r": 4909608 + } + }, + "wait": {}, + "deadlock": {} + }, + "global": { + "wait": {}, + "deadlock": {}, + "acquire": { + "count": { + "w": 22, + "W": 2, + "r": 17350359 + } + } + }, + "database": { + "wait": {}, + "deadlock": {}, + "acquire": { + "count": { + "R": 21447, + "W": 22, + "r": 11087051 + } + } + }, + "collection": { + "wait": {}, + "deadlock": {}, + "acquire": { + "count": { + "r": 6155983 + } + } + }, + "meta_data": { + "acquire": { + "count": { + "w": 1 + } + }, + "wait": {}, + "deadlock": {} + } + }, + "wired_tiger": { + "cache": { + "maximum": { + "bytes": 1534066688 + }, + "used": { + "bytes": 65472 + }, + "dirty": { + "bytes": 0 + }, + "pages": { + "write": 63, + "evicted": 0, + "read": 18 + } + }, + "log": { + "syncs": 38, + "size": { + "bytes": 33554432 + }, + "write": { + "bytes": 15104 + }, + "max_file_size": { + "bytes": 104857600 + }, + "flushes": 49022011, + "writes": 47, + "scans": 5 + }, + "concurrent_transactions": { + "write": { + "available": 128, + "total_tickets": 128, + "out": 0 + }, + "read": { + "available": 128, + "total_tickets": 128, + "out": 0 + } + } + }, + "storage_engine": { + "name": "wiredTiger" + }, + "process": "mongod", + "memory": { + "mapped": { + "mb": 0 + }, + "mapped_with_journal": { + "mb": 0 + }, + "bits": 64, + "resident": { + "mb": 21 + }, + "virtual": { + "mb": 1024 + } + }, + "connections": { + "total_created": 66310, + "current": 11, + "available": 51189 + }, + "extra_info": { + "page_faults": 1197, + "heap_usage": {} + } + } + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/fields.yml index c692f345..d3cbb3b8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/_meta/fields.yml @@ -8,6 +8,10 @@ type: keyword description: > Instance version. + - name: process + type: keyword + description: > + The current MongoDB process. Possible values are mongos or mongod. - name: uptime.ms type: long description: > @@ -38,38 +42,6 @@ description: > Number of rollovers assertions produced by the server. - - name: background_flushing - type: group - description: > - Data about the process MongoDB uses to write data to disk. This data is - only available for instances that use the MMAPv1 storage engine. - fields: - - name: flushes - type: long - description: > - A counter that collects the number of times the database has - flushed all writes to disk. - - name: total.ms - type: long - description: > - The total number of milliseconds (ms) that the mongod processes have - spent writing (i.e. flushing) data to disk. Because this is an - absolute value, consider the value of `flushes` and `average_ms` to - provide better context for this datum. - - name: average.ms - type: long - description: > - The average time spent flushing to disk per flush event. - - name: last.ms - type: long - description: > - The amount of time, in milliseconds, that the last flush operation - took to complete. - - name: last_finished - type: date - description: > - A timestamp of the last completed flush operation. - - name: connections type: group description: > @@ -93,85 +65,6 @@ A count of all incoming connections created to the server. This number includes connections that have since closed. - - name: journaling - type: group - description: > - Data about the journaling-related operations and performance. Journaling - information only appears for mongod instances that use the MMAPv1 - storage engine and have journaling enabled. - fields: - - name: commits - type: long - description: > - The number of transactions written to the journal during the last - journal group commit interval. - - name: journaled.mb - type: long - description: > - The amount of data in megabytes (MB) written to journal during the - last journal group commit interval. - - name: write_to_data_files.mb - type: long - description: > - The amount of data in megabytes (MB) written from journal to the - data files during the last journal group commit interval. - - name: compression - type: long - description: > - The compression ratio of the data written to the journal. - - name: commits_in_write_lock - type: long - description: > - Count of the commits that occurred while a write lock was held. - Commits in a write lock indicate a MongoDB node under a heavy write - load and call for further diagnosis. - - name: early_commits - type: long - description: > - The number of times MongoDB requested a commit before the scheduled - journal group commit interval. - - name: times - type: group - description: > - Information about the performance of the mongod instance during the - various phases of journaling in the last journal group commit - interval. - fields: - - name: dt.ms - type: long - description: > - The amount of time over which MongoDB collected the times data. - Use this field to provide context to the other times field values. - - name: prep_log_buffer.ms - type: long - description: > - The amount of time spent preparing to write to the journal. - Smaller values indicate better journal performance. - - name: write_to_journal.ms - type: long - description: > - The amount of time spent actually writing to the journal. File - system speeds and device interfaces can affect performance. - - name: write_to_data_files.ms - type: long - description: > - The amount of time spent writing to data files after journaling. - File system speeds and device interfaces can affect performance. - - name: remap_private_view.ms - type: long - description: > - The amount of time spent remapping copy-on-write memory mapped - views. Smaller values indicate better journal performance. - - name: commits.ms - type: long - description: > - The amount of time spent for commits. - - name: commits_in_write_lock.ms - type: long - description: > - The amount of time spent for commits that occurred while a write - lock was held. - - name: extra_info type: group description: > @@ -190,6 +83,239 @@ faults refer to operations that require the database server to access data that isn't available in active memory. + - name: global_lock + type: group + description: > + Reports on lock state of the database. + fields: + - name: total_time.us + type: long + description: > + The time, in microseconds, since the database last started and created the globalLock. + This is roughly equivalent to total server uptime. + - name: current_queue + type: group + description: > + The number of operations queued because of a lock. + fields: + - name: total + type: long + description: > + The total number of operations queued waiting for the lock (i.e., the sum of current_queue.readers and current_queue.writers). + - name: readers + type: long + description: > + The number of operations that are currently queued and waiting for the read lock. + - name: writers + type: long + description: > + The number of operations that are currently queued and waiting for the write lock. + - name: active_clients + type: group + description: > + The number of connected clients and the read and write operations performed by these clients. + fields: + - name: total + type: long + description: > + Total number of the active client connections performing read or write operations. + - name: readers + type: long + description: > + The number of the active client connections performing read operations. + - name: writers + type: long + description: > + The number of the active client connections performing write operations. + - name: locks + type: group + description: > + A document that reports for each lock , data on lock s. + The possible lock s are global, database, collection, metadata and oplog. + The possible s are r, w, R and W which respresent shared, exclusive, intent shared and intent exclusive. + + locks..acquire.count. shows the number of times the lock was acquired in the specified mode. + locks..wait.count. shows the number of times the locks.acquireCount lock acquisitions encountered waits + because the locks were held in a conflicting mode. + locks..wait.us. shows the cumulative wait time in microseconds for the lock acquisitions. + locks..deadlock.count. shows the number of times the lock acquisitions encountered deadlocks. + fields: + - name: global + type: group + fields: + - name: acquire.count.r + type: long + - name: acquire.count.w + type: long + - name: acquire.count.R + type: long + - name: acquire.count.W + type: long + - name: wait.count.r + type: long + - name: wait.count.w + type: long + - name: wait.count.R + type: long + - name: wait.count.W + type: long + - name: wait.us.r + type: long + - name: wait.us.w + type: long + - name: wait.us.R + type: long + - name: wait.us.W + type: long + - name: deadlock.count.r + type: long + - name: deadlock.count.w + type: long + - name: deadlock.count.R + type: long + - name: deadlock.count.W + type: long + - name: database + type: group + fields: + - name: acquire.count.r + type: long + - name: acquire.count.w + type: long + - name: acquire.count.R + type: long + - name: acquire.count.W + type: long + - name: wait.count.r + type: long + - name: wait.count.w + type: long + - name: wait.count.R + type: long + - name: wait.count.W + type: long + - name: wait.us.r + type: long + - name: wait.us.w + type: long + - name: wait.us.R + type: long + - name: wait.us.W + type: long + - name: deadlock.count.r + type: long + - name: deadlock.count.w + type: long + - name: deadlock.count.R + type: long + - name: deadlock.count.W + type: long + - name: collection + type: group + fields: + - name: acquire.count.r + type: long + - name: acquire.count.w + type: long + - name: acquire.count.R + type: long + - name: acquire.count.W + type: long + - name: wait.count.r + type: long + - name: wait.count.w + type: long + - name: wait.count.R + type: long + - name: wait.count.W + type: long + - name: wait.us.r + type: long + - name: wait.us.w + type: long + - name: wait.us.R + type: long + - name: wait.us.W + type: long + - name: deadlock.count.r + type: long + - name: deadlock.count.w + type: long + - name: deadlock.count.R + type: long + - name: deadlock.count.W + type: long + - name: meta_data + type: group + fields: + - name: acquire.count.r + type: long + - name: acquire.count.w + type: long + - name: acquire.count.R + type: long + - name: acquire.count.W + type: long + - name: wait.count.r + type: long + - name: wait.count.w + type: long + - name: wait.count.R + type: long + - name: wait.count.W + type: long + - name: wait.us.r + type: long + - name: wait.us.w + type: long + - name: wait.us.R + type: long + - name: wait.us.W + type: long + - name: deadlock.count.r + type: long + - name: deadlock.count.w + type: long + - name: deadlock.count.R + type: long + - name: deadlock.count.W + type: long + - name: oplog + type: group + fields: + - name: acquire.count.r + type: long + - name: acquire.count.w + type: long + - name: acquire.count.R + type: long + - name: acquire.count.W + type: long + - name: wait.count.r + type: long + - name: wait.count.w + type: long + - name: wait.count.R + type: long + - name: wait.count.W + type: long + - name: wait.us.r + type: long + - name: wait.us.w + type: long + - name: wait.us.R + type: long + - name: wait.us.W + type: long + - name: deadlock.count.r + type: long + - name: deadlock.count.w + type: long + - name: deadlock.count.R + type: long + - name: deadlock.count.W + type: long + - name: network type: group description: > @@ -210,7 +336,38 @@ description: > The total number of requests received by the server. - - name: opcounters + - name: ops.latencies + type: group + description: > + Operation latencies for the database as a whole. + Only mongod instances report this metric. + fields: + - name: reads.latency + type: long + description: > + Total combined latency in microseconds. + - name: reads.count + type: long + description: > + Total number of read operations performed on the collection since startup. + - name: writes.latency + type: long + description: > + Total combined latency in microseconds. + - name: writes.count + type: long + description: > + Total number of write operations performed on the collection since startup. + - name: commands.latency + type: long + description: > + Total combined latency in microseconds. + - name: commands.count + type: long + description: > + Total number of commands performed on the collection since startup. + + - name: ops.counters type: group description: > An overview of database operations by type. @@ -246,7 +403,7 @@ The total number of commands issued to the database since the mongod instance last started. - - name: opcounters_replicated + - name: ops.replicated type: group description: > An overview of database replication operations by type. @@ -425,3 +582,115 @@ type: long description: > Number of sync operations. + + - name: background_flushing + type: group + description: > + Data about the process MongoDB uses to write data to disk. This data is + only available for instances that use the MMAPv1 storage engine. + fields: + - name: flushes + type: long + description: > + A counter that collects the number of times the database has + flushed all writes to disk. + - name: total.ms + type: long + description: > + The total number of milliseconds (ms) that the mongod processes have + spent writing (i.e. flushing) data to disk. Because this is an + absolute value, consider the value of `flushes` and `average_ms` to + provide better context for this datum. + - name: average.ms + type: long + description: > + The average time spent flushing to disk per flush event. + - name: last.ms + type: long + description: > + The amount of time, in milliseconds, that the last flush operation + took to complete. + - name: last_finished + type: date + description: > + A timestamp of the last completed flush operation. + + - name: journaling + type: group + description: > + Data about the journaling-related operations and performance. Journaling + information only appears for mongod instances that use the MMAPv1 + storage engine and have journaling enabled. + fields: + - name: commits + type: long + description: > + The number of transactions written to the journal during the last + journal group commit interval. + - name: journaled.mb + type: long + description: > + The amount of data in megabytes (MB) written to journal during the + last journal group commit interval. + - name: write_to_data_files.mb + type: long + description: > + The amount of data in megabytes (MB) written from journal to the + data files during the last journal group commit interval. + - name: compression + type: long + description: > + The compression ratio of the data written to the journal. + - name: commits_in_write_lock + type: long + description: > + Count of the commits that occurred while a write lock was held. + Commits in a write lock indicate a MongoDB node under a heavy write + load and call for further diagnosis. + - name: early_commits + type: long + description: > + The number of times MongoDB requested a commit before the scheduled + journal group commit interval. + - name: times + type: group + description: > + Information about the performance of the mongod instance during the + various phases of journaling in the last journal group commit + interval. + fields: + - name: dt.ms + type: long + description: > + The amount of time over which MongoDB collected the times data. + Use this field to provide context to the other times field values. + - name: prep_log_buffer.ms + type: long + description: > + The amount of time spent preparing to write to the journal. + Smaller values indicate better journal performance. + - name: write_to_journal.ms + type: long + description: > + The amount of time spent actually writing to the journal. File + system speeds and device interfaces can affect performance. + - name: write_to_data_files.ms + type: long + description: > + The amount of time spent writing to data files after journaling. + File system speeds and device interfaces can affect performance. + - name: remap_private_view.ms + type: long + description: > + The amount of time spent remapping copy-on-write memory mapped + views. Smaller values indicate better journal performance. + - name: commits.ms + type: long + description: > + The amount of time spent for commits. + - name: commits_in_write_lock.ms + type: long + description: > + The amount of time spent for commits that occurred while a write + lock was held. + diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/data.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/data.go index daa1e2ba..749a6976 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( @@ -7,11 +24,11 @@ import ( var schema = s.Schema{ "version": c.Str("version"), + "process": c.Str("process"), "uptime": s.Object{ "ms": c.Int("uptimeMillis"), }, - "local_time": c.Time("localTime"), - "write_backs_queued": c.Bool("writeBacksQueued", s.Optional), + "local_time": c.Time("localTime"), "asserts": c.Dict("asserts", s.Schema{ "regular": c.Int("regular"), "warning": c.Int("warning"), @@ -19,6 +36,74 @@ var schema = s.Schema{ "user": c.Int("user"), "rollovers": c.Int("rollovers"), }), + "connections": c.Dict("connections", s.Schema{ + "current": c.Int("current"), + "available": c.Int("available"), + "total_created": c.Int("totalCreated"), + }), + "extra_info": c.Dict("extra_info", s.Schema{ + "heap_usage": s.Object{"bytes": c.Int("heap_usage_bytes", s.Optional)}, + "page_faults": c.Int("page_faults"), + }), + "global_lock": c.Dict("globalLock", s.Schema{ + "total_time": s.Object{"us": c.Int("totalTime")}, + "current_queue": c.Dict("currentQueue", globalLockItemSchema), + "active_clients": c.Dict("activeClients", globalLockItemSchema), + }), + "locks": c.Dict("locks", s.Schema{ + "global": c.Dict("Global", lockItemSchema), + "database": c.Dict("Database", lockItemSchema), + "collection": c.Dict("Collection", lockItemSchema), + "meta_data": c.Dict("Metadata", lockItemSchema), + "oplog": c.Dict("oplog", lockItemSchema), + }), + "network": c.Dict("network", s.Schema{ + "in": s.Object{"bytes": c.Int("bytesIn")}, + "out": s.Object{"bytes": c.Int("bytesOut")}, + "requests": c.Int("numRequests"), + }), + "ops": s.Object{ + "latencies": c.Dict("opLatencies", s.Schema{ + "reads": c.Dict("reads", opLatenciesItemSchema), + "writes": c.Dict("writes", opLatenciesItemSchema), + "commands": c.Dict("commands", opLatenciesItemSchema), + }, c.DictOptional), + "counters": c.Dict("opcounters", s.Schema{ + "insert": c.Int("insert"), + "query": c.Int("query"), + "update": c.Int("update"), + "delete": c.Int("delete"), + "getmore": c.Int("getmore"), + "command": c.Int("command"), + }), + "replicated": c.Dict("opcountersRepl", s.Schema{ + "insert": c.Int("insert"), + "query": c.Int("query"), + "update": c.Int("update"), + "delete": c.Int("delete"), + "getmore": c.Int("getmore"), + "command": c.Int("command"), + }), + }, + // ToDo add `repl` field + "storage_engine": c.Dict("storageEngine", s.Schema{ + "name": c.Str("name"), + // supportsCommitedReads boolean + // readOnly boolean + // persistent boolean + }), + // ToDo add `tcmalloc` field + "wired_tiger": c.Dict("wiredTiger", wiredTigerSchema, c.DictOptional), + "write_backs_queued": c.Bool("writeBacksQueued", s.Optional), + "memory": c.Dict("mem", s.Schema{ + "bits": c.Int("bits"), + "resident": s.Object{"mb": c.Int("resident")}, + "virtual": s.Object{"mb": c.Int("virtual")}, + "mapped": s.Object{"mb": c.Int("mapped")}, + "mapped_with_journal": s.Object{"mb": c.Int("mappedWithJournal")}, + }), + + // MMPAV1 only "background_flushing": c.Dict("backgroundFlushing", s.Schema{ "flushes": c.Int("flushes"), "total": s.Object{ @@ -32,11 +117,8 @@ var schema = s.Schema{ }, "last_finished": c.Time("last_finished"), }, c.DictOptional), - "connections": c.Dict("connections", s.Schema{ - "current": c.Int("current"), - "available": c.Int("available"), - "total_created": c.Int("totalCreated"), - }), + + // MMPAV1 only "journaling": c.Dict("dur", s.Schema{ "commits": c.Int("commits"), "journaled": s.Object{ @@ -58,42 +140,6 @@ var schema = s.Schema{ "commits_in_write_lock": s.Object{"ms": c.Int("commitsInWriteLock")}, }), }, c.DictOptional), - "extra_info": c.Dict("extra_info", s.Schema{ - "heap_usage": s.Object{"bytes": c.Int("heap_usage_bytes", s.Optional)}, - "page_faults": c.Int("page_faults"), - }), - "network": c.Dict("network", s.Schema{ - "in": s.Object{"bytes": c.Int("bytesIn")}, - "out": s.Object{"bytes": c.Int("bytesOut")}, - "requests": c.Int("numRequests"), - }), - "memory": c.Dict("mem", s.Schema{ - "bits": c.Int("bits"), - "resident": s.Object{"mb": c.Int("resident")}, - "virtual": s.Object{"mb": c.Int("virtual")}, - "mapped": s.Object{"mb": c.Int("mapped")}, - "mapped_with_journal": s.Object{"mb": c.Int("mappedWithJournal")}, - }), - "opcounters": c.Dict("opcounters", s.Schema{ - "insert": c.Int("insert"), - "query": c.Int("query"), - "update": c.Int("update"), - "delete": c.Int("delete"), - "getmore": c.Int("getmore"), - "command": c.Int("command"), - }), - "opcounters_replicated": c.Dict("opcountersRepl", s.Schema{ - "insert": c.Int("insert"), - "query": c.Int("query"), - "update": c.Int("update"), - "delete": c.Int("delete"), - "getmore": c.Int("getmore"), - "command": c.Int("command"), - }), - "storage_engine": c.Dict("storageEngine", s.Schema{ - "name": c.Str("name"), - }), - "wired_tiger": c.Dict("wiredTiger", wiredTigerSchema, c.DictOptional), } var wiredTigerSchema = s.Schema{ @@ -129,3 +175,34 @@ var wiredTigerSchema = s.Schema{ "syncs": c.Int("log sync operations"), }), } + +var globalLockItemSchema = s.Schema{ + "total": c.Int("total"), + "readers": c.Int("readers"), + "writers": c.Int("writers"), +} + +var lockItemSchema = s.Schema{ + "acquire": s.Object{ + "count": c.Dict("acquireCount", lockItemModesSchema, c.DictOptional), + }, + "wait": s.Object{ + "count": c.Dict("acquireWaitCount", lockItemModesSchema, c.DictOptional), + "us": c.Dict("timeAcquiringMicros", lockItemModesSchema, c.DictOptional), + }, + "deadlock": s.Object{ + "count": c.Dict("deadlockCount", lockItemModesSchema, c.DictOptional), + }, +} + +var lockItemModesSchema = s.Schema{ + "r": c.Int("r", s.Optional), + "w": c.Int("w", s.Optional), + "R": c.Int("R", s.Optional), + "W": c.Int("W", s.Optional), +} + +var opLatenciesItemSchema = s.Schema{ + "latency": c.Int("latency"), + "count": c.Int("ops"), +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/status.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/status.go index 9dc0510b..e7c2bc81 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/status.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/status.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( @@ -6,13 +23,11 @@ import ( "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/mongodb" - "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" ) /* TODOs: - * add metricset for "locks" data * add a metricset for "metrics" data */ @@ -30,24 +45,18 @@ func init() { // additional entries. These variables can be used to persist data or configuration between // multiple fetch calls. type MetricSet struct { - mb.BaseMetricSet - dialInfo *mgo.DialInfo + *mongodb.MetricSet } // New creates a new instance of the MetricSet // Part of new is also setting up the configuration by processing additional // configuration entries if needed. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - dialInfo, err := mgo.ParseURL(base.HostData().URI) + ms, err := mongodb.NewMetricSet(base) if err != nil { return nil, err } - dialInfo.Timeout = base.Module().Config().Timeout - - return &MetricSet{ - BaseMetricSet: base, - dialInfo: dialInfo, - }, nil + return &MetricSet{ms}, nil } // Fetch methods implements the data gathering and data conversion to the right format @@ -56,7 +65,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { func (m *MetricSet) Fetch() (common.MapStr, error) { // instantiate direct connections to each of the configured Mongo hosts - mongoSession, err := mongodb.NewDirectSession(m.dialInfo) + mongoSession, err := mongodb.NewDirectSession(m.DialInfo) if err != nil { return nil, err } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/status_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/status_integration_test.go deleted file mode 100644 index 2aa96103..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/status/status_integration_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// +build integration - -package status - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/mongodb" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "mongodb") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check event fields - current := event["connections"].(common.MapStr)["current"].(int64) - assert.True(t, current >= 0) - - available := event["connections"].(common.MapStr)["available"].(int64) - assert.True(t, available > 0) - - pageFaults := event["extra_info"].(common.MapStr)["page_faults"].(int64) - assert.True(t, pageFaults >= 0) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "mongodb") - - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "mongodb", - "metricsets": []string{"status"}, - "hosts": []string{mongodb.GetEnvHost() + ":" + mongodb.GetEnvPort()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/testing.go index 876e14cf..31d380b8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mongodb/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mongodb/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mongodb import "os" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/docs.asciidoc index d7e009b4..d4148381 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/docs.asciidoc @@ -1,5 +1,3 @@ -== munin module - This is the munin module. The default metricset is `node`. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/fields.yml index 35912fe1..83e41a59 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/_meta/fields.yml @@ -1,10 +1,8 @@ - key: munin title: "Munin" description: > - experimental[] - Munin node metrics exporter - release: experimental + release: beta fields: - name: munin type: group diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/munin/doc.go index 4b993186..72b90d70 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/doc.go @@ -1,2 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 munin is a Metricbeat module that contains MetricSets. package munin diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/munin/fields.go new file mode 100644 index 00000000..eb4ba984 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package munin + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "munin", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJxsjk2qhDAQhPc5ReHeC2TxbvAOEU2NNKOdkLQw3n4wBmaEqV3/FN834snDY9tV1AEmttJj+D/nwQGRdS6STZJ6/DkAaDdoisRGKzJX8JVTMRYHFK4MlR4TLTjgIVxj9a05QsPGD+2MHZkeS0l77psfyCuthjmpBdF6g1dGTAdC/2lyYaFar39bXCZ3z3cAAAD//xiKUG4=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/munin.go b/vendor/github.com/elastic/beats/metricbeat/module/munin/munin.go index ca93abfc..d81a5ab0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/munin.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/munin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 munin import ( @@ -37,14 +54,14 @@ func Connect(address string, timeout time.Duration) (*Node, error) { writer: conn, reader: bufio.NewReader(conn), } - // Cosume and ignore first line returned by munin, it is a comment + // Consume and ignore first line returned by munin, it is a comment // about the node scanner := bufio.NewScanner(n.reader) scanner.Scan() return n, scanner.Err() } -// Close node connection relasing its resources +// Close node connection releasing its resources func (n *Node) Close() error { return n.conn.Close() } @@ -78,7 +95,7 @@ func (n *Node) Fetch(items ...string) (common.MapStr, error) { for scanner.Scan() { name := strings.TrimSpace(scanner.Text()) - // Munin delimites metrics with a dot + // Munin delimits metrics with a dot if name == "." { break } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/munin_test.go b/vendor/github.com/elastic/beats/metricbeat/module/munin/munin_test.go deleted file mode 100644 index adf9c8d6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/munin_test.go +++ /dev/null @@ -1,82 +0,0 @@ -package munin - -import ( - "bufio" - "bytes" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" -) - -func dummyNode(response string) *Node { - return &Node{ - writer: &bytes.Buffer{}, - reader: bufio.NewReader(bytes.NewBuffer([]byte(response))), - } -} - -func TestList(t *testing.T) { - n := dummyNode("cpu df uptime\n") - - list, err := n.List() - - assert.Nil(t, err) - - expected := []string{"cpu", "df", "uptime"} - assert.ElementsMatch(t, expected, list) -} - -func TestFetch(t *testing.T) { - response := `user.value 4679836 -nice.value 59278 -system.value 1979168 -idle.value 59957502 -iowait.value 705373 -irq.value 76 -softirq.value 36404 -steal.value 0 -guest.value 0 -. -` - n := dummyNode(response) - - event, err := n.Fetch("cpu", "swap") - - assert.Nil(t, err) - - expected := common.MapStr{ - "cpu": common.MapStr{ - "user": float64(4679836), - "nice": float64(59278), - "system": float64(1979168), - "idle": float64(59957502), - "iowait": float64(705373), - "irq": float64(76), - "softirq": float64(36404), - "steal": float64(0), - "guest": float64(0), - }, - } - assert.Equal(t, expected, event) -} - -func TestFetchUnknown(t *testing.T) { - response := `some.value U -other.value 42 -. -` - n := dummyNode(response) - - event, err := n.Fetch("test") - - assert.NotNil(t, err) - - expected := common.MapStr{ - "test": common.MapStr{ - "other": float64(42), - }, - } - assert.Equal(t, expected, event) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/docs.asciidoc index a20a538c..403f5fa9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/docs.asciidoc @@ -1,5 +1,3 @@ -=== munin node MetricSet - This is the node metricset of the module munin. [float] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/fields.yml index dd5e036b..8033a27f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/node/_meta/fields.yml @@ -1 +1 @@ -- release: experimental +- release: beta diff --git a/vendor/github.com/elastic/beats/metricbeat/module/munin/node/node.go b/vendor/github.com/elastic/beats/metricbeat/module/munin/node/node.go index 959fd9bc..9fe283db 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/munin/node/node.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/munin/node/node.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( @@ -32,7 +49,7 @@ type MetricSet struct { // New creates a new instance of the MetricSet. New is responsible for unpacking // any MetricSet specific configuration options if there are any. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The munin node metricset is experimental.") + cfgwarn.Beta("The munin node metricset is beta.") config := struct { Namespace string `config:"node.namespace" validate:"required"` diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.reference.yml index afff5ff7..303d7f61 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.reference.yml @@ -1,5 +1,7 @@ - module: mysql - metricsets: ["status"] + metricsets: + - "status" + # - "galera_status" period: 10s # Host DSN should be defined as "user:pass@tcp(127.0.0.1:3306)/" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.yml index b1417fe8..57743008 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/_meta/config.yml @@ -1,6 +1,7 @@ - module: mysql #metricsets: # - status + # - galera_status period: 10s # Host DSN should be defined as "user:pass@tcp(127.0.0.1:3306)/" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/fields.go new file mode 100644 index 00000000..252fb1fc --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package mysql + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "mysql", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzcW11v27jSvs+vGOzNdoE06HUuXiBvmpwN0HZ74mQX58pLS2OJJxRHJSk76q8/GFKyZUeyZVtyi9VVEn3MM8OZZz7IvIcXLK8hK+03dQHgpFN4Db98Lif//vTLBUCMNjIyd5L0NfzfBQCAvwcWzQINWCdcYSFDZ2RkISKlMHIYw9xQFh69ugCwKRk3jUjPZXINc6EsXgAYVCgsXkMiLgDmElVsr72M96BFhmtcfLky50cNFXn1lxZwfP3t3/obItJOSG3BpbhC6FLhYIkGgWZ8dwPq6hPfCjTlVfVrE1gTXCIUGjENJljdbQPK10pZfM3RyAy1E6pxv0MZr9CGpP6KzUr/RLVGvGpeLyAN//JfvGqI2dayqanIc1Vu3OnSco8mfN3wx2pQQerV1kNtWJp4iAjf3KwhxVTMVNvtPbj4+p2WQHOH2qssg4Mb9uelkQ7fW3TBGFInQIV7T/P3ZGI08C4XRiiFSn4XLAFwPpeRRB2Vv63V26WRGlmjtQZLYcESWEVLcBQUqvxn/Yx0KaQySdkG+E3TrzZ4VzBMDCgMG2h76cL1p1AFWogUWTQs4wMYnIcfBSQGhUMDichhhm6JqAMYoWOYC9vAYXvYbil1TMtRrHezQCMShFhaJ3SEK7jeMtZ5xIqW/GNEOiqMQe1UubKSN12HDjX+CI0bKrhu0Tg5l1HwwZOCLMbcTmvFf7h1vSFhwX4VXDUSGmYIOVkrZw2LSw11KMK7nBxqJ4WCGBODCDSHrUDtE51Sx/g6tfJ7tx0U6eQ4KzylCLrIZmgYHWpnJFpWg7k72lhPj6MXXodmIcZhlHrV1pidEdqKiF+yYDBCuWDGTKVCEM27YDBXrAx2xfUqJlRhHZrBwiJ87rSA4PJlKuMxXICcUA2DVtpDhvwXm8ocolToBC2kIs9RY9zDC0by19tAcg24FcyVzwb0fRBul06bGF+wXJJpM3gPmJOw1OyeqbQrk0aU5aRRuyt4YhqR9hKWKTrOcwxeU4wgLbOE45cFfH18+Hzz+B8gA1/++DKtf11/aI8nU5bJ4fjdf+3nr542op7rjWAGrqSo8Ib1ZdPp2f14Pz46t69V6ZXdSWvfErW6QLuL70H/MPeuGpKhtPDH/f3l2nlTYUGTgxLdWrgvvHQZwgHfRsMbJ+K8JC1kouQsG3PWJcikDT1cYXxCuoLbFKMX/0k0hgwoSmBOBnJDORqIpUg0WSejfYSPi20eODpG4G5h4f6o0MCFjLZjdd9i9UEEAJ+kdaFje35++PirZyahlF8zGwTXvWgriW4qGJ4O70ZC83ob/C9tMjAU2kkFJRVg0DcyfFea0FbHvEgRWtuZjGGLqrtZ4zSmTmkZLOPrFi1UkFY7692fE/hqyFFEao8XzRUtp5HbLnyOdqV77kpuSTtD6ki2zUVh3wQ/DMK3XDnOTUWybCyZIVjJXMZ2U9xJ3X96nvwOk6ebp+eJZy5mNV9A17VYzdABaB3qbEk/aDBNozevBw3k0yavvL2ElJaQFVEaZg5KLBhBwvzEvR03zDEtD60QAqip7i4STiu8na+8guFyrmokJ6/KFMELMxS2MKGz0EKTxYh03CdmDEaLEXA/oitMNf1ZF2H3t9OvN8+TO8AF8/lmPqiL8kuQOlJFzKvhUrK4+ZjdKGea17NW8gUhI7sqPhbCSDFTaEPuiajg6PXs7ysu0ggxYUhGBi06hmbKYG1PSkVwh41p2y4OQt1Nzme1509oqNpIHPXTVYnSSoQtptpjJg4Vi98KZG4JNrrkgtgXQJc1UXvCWVdHjRJwH2aK3jSrR3P2F14km2PEffMwnd9sPhUzMm4UFtrq/bwtNlvq9WjXowiT3cCwG8+FjltqwFeMih12h63p03QupCoM/kj9GALGWwMPh7arv4I3PdYPQr9y+FMzQpuv94S56fMspcPTYYe3N4F+K7Boq0pgn017AobGIOGd1NyBOaGRCvsbKNSJS2tS8cp4ODvs+wb6VCy60O2puw5Q4HEFrcYsQk8ZAy3QrMZwfWqy9mwCjVk6aStjNGKmSlDCJH5gITR8uPrANYoOYbRKU1VXEIb763k6COtH7J3ihE91JQiD61keF41LqRQkqNFwVSRAke/jm2WkSw05p6RODlqrTLyO7GqcvzLxKrMi63Svw1apj1pSn0MtqcdUa81cuRLlOSh2e14sSls3JcKWWdjvZCJ+gcQIXShhpOtZPnb3YYORL5eG/xjyZZP9pOQ7WUFrJ9++zfBpxCt17PczOmiQa2SNbknmxf+1SNK8cCCtPdCiP5Ii107wj6LIwdQ6w4jsoR6MhXMbq67mfvK5mlIE/tzTZxkUcfs5jqPm0H819k2q80DSBiGeraMIc+ebVrl3w68uNYbqAv/yFc8EXf3lU/f+ilFmD2+yX6NSW1VffigcZm1+4tvDF2elG7Gbs/I7ngi2WVcMteaPDQ4+7eiDcGJ6HhOyqPW2eB+aecGzlGEs5nBgZ7La4eC8R54JXfD+mXQHYhyLZHZyTI0P3vnK1VEzePscjvkBVPPWpp0nCtrJZNdhy4FOWTY5Z/Oga33tPHEZBn1DMeNNNTc8LQcqiXqcKdvG5L3atO4afWIkimrjIiCCWGLsDyxS4fyZw7C9gY0vVRvSqk+fWL01vqLVyFM4h1nuLMdeJZt/ZAWaZ633JNKZ1Iq2YR3pMHs9QUQpXsXSvkwLO9QZoz3SRhK0i8WODrf/54/5YDs4yDrqYP8qmUy4EQl3wzm9lK2yTihVs8BI23X7dDxSjTq17VegBu9S7mMG84in8LnjfMIHwCjnDjd514upNe9DlP4c9xmABTmHIOs4dDUCtvUJq97oTKG1bBU/LLZKzh5kWzbjtNvq9f13jds/3+osIyUol+UhPTm/8T52hmJxc3kmQeOptD75r0R5rqXy5wZHN5zUFo2btrP64NJ8szLqEs1VYdNpNZscJV4z8Tr1Z69G5gXKcXsGPJKnnSVCrTMosvGJYHQSIP9vBu0EOkxCCM57nrWPUeGO4fxQGffj3ae7p7t65F3tK/iTt0Xe6/927Nv/BRse5cOXyd3j09EoLSrccUp6KJSTu093t8ejLPJ413bMUCifv3686V7x/wUAAP//0gJ9+Q==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/data.json new file mode 100644 index 00000000..15858d76 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/data.json @@ -0,0 +1,81 @@ +{ + "@timestamp":"2016-05-23T08:05:34.853Z", + "beat":{ + "hostname":"host.example.com", + "name":"host.example.com" + }, + "metricset":{ + "host":"localhost:3306", + "module":"mysql", + "name":"galera_status", + "rtt":44269 + }, + "mysql":{ + "galera_status":{ + "apply": { + "oooe": 0, + "oool": 0, + "window": 1 + }, + "connected": "ON", + "flow_ctl": { + "recv": 0, + "sent": 0, + "paused": 0, + "paused_ns": 0 + }, + "ready": "ON", + "received": { + "count": 173, + "bytes": 152425 + }, + "local": { + "state": "Synced", + "bf_aborts": 0, + "cert_failures": 0, + "commits": 1325, + "recv": { + "queue_max": 2, + "queue_min": 0, + "queue": 0, + "queue_avg": 0.011561 + }, + "replays": 0, + "send": { + "queue_min": 0, + "queue": 0, + "queue_avg": 0, + "queue_max": 1 + } + }, + "evs": { + "evict": "", + "state": "OPERATIONAL" + }, + "repl": { + "bytes": 1689804, + "data_bytes": 1540647, + "keys": 4170, + "keys_bytes": 63973, + "other_bytes": 0, + "count": 1331 + }, + "commit": { + "oooe": 0, + "window": 1 + }, + "cluster": { + "conf_id": 930, + "size": 3, + "status": "Primary" + }, + "last_committed": 23944, + "cert": { + "deps_distance": 43.524557, + "index_size": 22, + "interval": 0 + } + } + }, + "type":"metricsets" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/docs.asciidoc new file mode 100644 index 00000000..e874ac6e --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/docs.asciidoc @@ -0,0 +1,37 @@ +This module periodically fetches metrics from http://galeracluster.com/[Galera]-MySQL +cluster servers. + +[float] +=== Module-specific configuration notes + +When configuring the `hosts` option, you must use a MySQL Data Source Name (DSN) +of the following format: + +---- +[username[:password]@][protocol[(address)]]/ +---- + +You can also separately specify the username and password using the respective +configuration options. Usernames and passwords specified in the DSN take +precedence over those specified in the `username` and `password` config options. + +---- +- module: mysql + metricsets: ["status"] + hosts: ["tcp(127.0.0.1:3306)/"] + username: root + password: secret + + +---- +[float] +=== Compatibility + +The galera MetricSets were tested with galera 3.22 (MySQL 5.7.20) and are expected to work with +all versions >= 3.0 (MySQL >= 5.7.0) + + + +=== galera status MetricSet + +This is the status metricset of the module galera. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/fields.yml new file mode 100644 index 00000000..faec0d31 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/_meta/fields.yml @@ -0,0 +1,274 @@ +- name: galera_status + type: group + release: experimental + description: > + `galera_status` contains the metrics that were obtained by the status SQL query on Galera. + fields: + - name: apply + type: group + description: > + Apply status fields. + fields: + - name: oooe + type: double + description: > + How often applier started write-set applying out-of-order (parallelization efficiency). + + - name: oool + type: double + description: > + How often write-set was so slow to apply that write-set with higher seqno's were applied earlier. + Values closer to 0 refer to a greater gap between slow and fast write-sets. + + - name: window + type: double + description: > + Average distance between highest and lowest concurrently applied seqno. + + - name: cert + type: group + description: > + Certification status fields. + fields: + - name: deps_distance + type: double + description: > + Average distance between highest and lowest seqno value that can be possibly applied in parallel (potential degree of parallelization). + + - name: index_size + type: long + description: > + The number of entries in the certification index. + + - name: interval + type: double + description: > + Average number of transactions received while a transaction replicates. + + - name: cluster + type: group + description: > + Cluster status fields. + fields: + - name: conf_id + type: long + description: > + Total number of cluster membership changes happened. + + - name: size + type: long + description: > + Current number of members in the cluster. + + - name: status + type: keyword + description: > + Status of this cluster component. That is, whether the node is part of a PRIMARY or NON_PRIMARY component. + + - name: commit + type: group + description: > + Commit status fields. + fields: + - name: oooe + type: double + description: > + How often a transaction was committed out of order. + + - name: window + type: long + description: > + Average distance between highest and lowest concurrently committed seqno. + + - name: connected + type: keyword + description: > + If the value is OFF, the node has not yet connected to any of the cluster components. + This may be due to misconfiguration. Check the error log for proper diagnostics. + + - name: evs + type: group + description: > + Evs Fields. + fields: + - name: evict + type: keyword + description: > + Lists the UUID's of all nodes evicted from the cluster. + Evicted nodes cannot rejoin the cluster until you restart their mysqld processes. + + - name: state + type: keyword + description: > + Shows the internal state of the EVS Protocol. + + - name: flow_ctl + type: group + description: > + Flow Control fields. + fields: + - name: paused + type: double + description: > + The fraction of time since the last FLUSH STATUS command that replication was paused due to flow control. + In other words, how much the slave lag is slowing down the cluster. + + - name: paused_ns + type: long + description: > + The total time spent in a paused state measured in nanoseconds. + + - name: recv + type: long + description: > + Returns the number of FC_PAUSE events the node has received, including those the node has sent. + Unlike most status variables, the counter for this one does not reset every time you run the query. + + - name: sent + type: long + description: > + Returns the number of FC_PAUSE events the node has sent. + Unlike most status variables, the counter for this one does not reset every time you run the query. + + - name: last_committed + type: long + description: > + The sequence number, or seqno, of the last committed transaction. + + - name: local + type: group + description: > + Node specific Cluster status fields. + fields: + - name: bf_aborts + type: long + description: > + Total number of local transactions that were aborted by slave transactions while in execution. + + - name: cert_failures + type: long + description: > + Total number of local transactions that failed certification test. + + - name: commits + type: long + description: > + Total number of local transactions committed. + + - name: recv + type: group + description: > + Node specific recv fields. + fields: + - name: queue + type: long + description: > + Current (instantaneous) length of the recv queue. + + - name: queue_avg + type: double + description: > + Recv queue length averaged over interval since the last FLUSH STATUS command. + Values considerably larger than 0.0 mean that the node cannot apply write-sets as fast + as they are received and will generate a lot of replication throttling. + + - name: queue_max + type: long + description: > + The maximum length of the recv queue since the last FLUSH STATUS command. + + - name: queue_min + type: long + description: > + The minimum length of the recv queue since the last FLUSH STATUS command. + + - name: replays + type: long + description: > + Total number of transaction replays due to asymmetric lock granularity. + + - name: send + type: group + description: > + Node specific sent fields. + fields: + - name: queue + type: long + description: > + Current (instantaneous) length of the send queue. + + - name: queue_avg + type: double + description: > + Send queue length averaged over time since the last FLUSH STATUS command. + Values considerably larger than 0.0 indicate replication throttling or network throughput issue. + + - name: queue_max + type: long + description: > + The maximum length of the send queue since the last FLUSH STATUS command. + + - name: queue_min + type: long + description: > + The minimum length of the send queue since the last FLUSH STATUS command. + + - name: state + type: keyword + description: > + Internal Galera Cluster FSM state number. + + - name: ready + type: keyword + description: > + Whether the server is ready to accept queries. + + - name: received + type: group + description: > + Write-Set receive status fields. + fields: + - name: count + type: long + description: > + Total number of write-sets received from other nodes. + + - name: bytes + type: long + description: > + Total size of write-sets received from other nodes. + + - name: repl + type: group + description: > + Replication status fields. + fields: + - name: data_bytes + type: long + description: > + Total size of data replicated. + + - name: keys + type: long + description: > + Total number of keys replicated. + + - name: keys_bytes + type: long + description: > + Total size of keys replicated. + + - name: other_bytes + type: long + description: > + Total size of other bits replicated. + + - name: count + type: long + description: > + Total number of write-sets replicated (sent to other nodes). + + - name: bytes + type: long + description: > + Total size of write-sets replicated. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/data.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/data.go new file mode 100644 index 00000000..a15c010c --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/data.go @@ -0,0 +1,120 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 galera_status + +import ( + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstrstr" +) + +var ( + // Schema for mapping all Galera-Status-Variables + schema = s.Schema{ + "apply": s.Object{ + "oooe": c.Float("wsrep_apply_oooe"), + "oool": c.Float("wsrep_apply_oool"), + "window": c.Float("wsrep_apply_window"), + }, + "cert": s.Object{ + "deps_distance": c.Float("wsrep_cert_deps_distance"), + "index_size": c.Int("wsrep_cert_index_size"), + "interval": c.Float("wsrep_cert_interval"), + }, + "cluster": s.Object{ + "conf_id": c.Int("wsrep_cluster_conf_id"), + "size": c.Int("wsrep_cluster_size"), + "status": c.Str("wsrep_cluster_status"), + }, + "commit": s.Object{ + "oooe": c.Float("wsrep_commit_oooe"), + "window": c.Float("wsrep_commit_window"), + }, + "connected": c.Str("wsrep_connected"), + "evs": s.Object{ + "evict": c.Str("wsrep_evs_evict_list"), + "state": c.Str("wsrep_evs_state"), + }, + "flow_ctl": s.Object{ + "paused": c.Float("wsrep_flow_control_paused"), + "paused_ns": c.Int("wsrep_flow_control_paused_ns"), + "recv": c.Int("wsrep_flow_control_recv"), + "sent": c.Int("wsrep_flow_control_sent"), + }, + "last_committed": c.Int("wsrep_last_committed"), + "local": s.Object{ + "bf_aborts": c.Int("wsrep_local_bf_aborts"), + "cert_failures": c.Int("wsrep_local_cert_failures"), + "commits": c.Int("wsrep_local_commits"), + "recv": s.Object{ + "queue": c.Int("wsrep_local_recv_queue"), + "queue_avg": c.Float("wsrep_local_recv_queue_avg"), + "queue_max": c.Int("wsrep_local_recv_queue_max"), + "queue_min": c.Int("wsrep_local_recv_queue_min"), + }, + "replays": c.Int("wsrep_local_replays"), + "send": s.Object{ + "queue": c.Int("wsrep_local_send_queue"), + "queue_avg": c.Float("wsrep_local_send_queue_avg"), + "queue_max": c.Int("wsrep_local_send_queue_max"), + "queue_min": c.Int("wsrep_local_send_queue_min"), + }, + "state": c.Str("wsrep_local_state_comment"), + }, + "ready": c.Str("wsrep_ready"), + "received": s.Object{ + "count": c.Int("wsrep_received"), + "bytes": c.Int("wsrep_received_bytes"), + }, + "repl": s.Object{ + "data_bytes": c.Int("wsrep_repl_data_bytes"), + "keys": c.Int("wsrep_repl_keys"), + "keys_bytes": c.Int("wsrep_repl_keys_bytes"), + "other_bytes": c.Int("wsrep_repl_other_bytes"), + "count": c.Int("wsrep_replicated"), + "bytes": c.Int("wsrep_replicated_bytes"), + }, + } +) + +// Map data to MapStr of server stats variables: http://galeracluster.com/documentation-webpages/galerastatusvariables.html +// queryMode specifies, which subset of the available Variables is used. +func eventMapping(status map[string]string) common.MapStr { + source := map[string]interface{}{} + for key, val := range status { + source[key] = val + } + + data, _ := schema.Apply(source) + return data +} + +// Maps all variables from the status fetch which are not in the predefined schema +func rawEventMapping(status map[string]string) common.MapStr { + source := common.MapStr{} + for key, val := range status { + // Only adds events which are not in the mapping + if schema.HasKey(key) { + continue + } + + source[key] = val + } + + return source +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/status.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/status.go new file mode 100644 index 00000000..824b8f23 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/galera_status/status.go @@ -0,0 +1,112 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 galera_status fetches MySQL Galera server status metrics. + +For more information on the query it uses, see: +http://dev.mysql.com/doc/refman/5.7/en/show-status.html +http://galeracluster.com/documentation-webpages/galerastatusvariables.html +*/ +package galera_status + +import ( + "database/sql" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/module/mysql" + + "github.com/pkg/errors" +) + +var ( + debugf = logp.MakeDebug("mysql-galera-status") +) + +// init registers the MetricSet with the central registry. +func init() { + mb.Registry.MustAddMetricSet("mysql", "galera_status", New, + mb.WithHostParser(mysql.ParseDSN), + ) +} + +// MetricSet for fetching Galera-MySQL server status +type MetricSet struct { + mb.BaseMetricSet + db *sql.DB +} + +// New create a new instance of the MetricSet +// Loads query_mode config setting from the config file +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Experimental("The mysql galera_status metricset is experimental") + + return &MetricSet{BaseMetricSet: base}, nil +} + +// Fetch methods implements the data gathering and data conversion to the right format +// It returns the event which is then forward to the output. +func (m *MetricSet) Fetch() (common.MapStr, error) { + if m.db == nil { + var err error + m.db, err = mysql.NewDB(m.HostData().URI) + if err != nil { + return nil, errors.Wrap(err, "Galera-status fetch failed") + } + } + + status, err := m.loadStatus(m.db) + if err != nil { + return nil, err + } + + event := eventMapping(status) + + if m.Module().Config().Raw { + event["raw"] = rawEventMapping(status) + } + return event, nil +} + +// loadStatus loads all status entries from the given database into an array. +func (m *MetricSet) loadStatus(db *sql.DB) (map[string]string, error) { + // Returns the global status, also for versions previous 5.0.2 + rows, err := db.Query("SHOW /*!50002 GLOBAL */ STATUS LIKE 'wsrep_%';") + if err != nil { + return nil, err + } + defer rows.Close() + + galeraStatus := map[string]string{} + + for rows.Next() { + var name string + var value string + + err = rows.Scan(&name, &value) + if err != nil { + return nil, err + } + + galeraStatus[name] = value + } + + return galeraStatus, nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql.go index 74ee55bd..96d84465 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mysql is Metricbeat module for MySQL server. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql_integration_test.go deleted file mode 100644 index 297ba1cb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql_integration_test.go +++ /dev/null @@ -1,22 +0,0 @@ -// +build integration - -package mysql - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/tests/compose" - _ "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestNewDB(t *testing.T) { - compose.EnsureUp(t, "mysql") - - db, err := NewDB(GetMySQLEnvDSN()) - assert.NoError(t, err) - - err = db.Ping() - assert.NoError(t, err) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql_test.go deleted file mode 100644 index bfe62448..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/mysql_test.go +++ /dev/null @@ -1,53 +0,0 @@ -// +build !integration - -package mysql - -import ( - "testing" - "time" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestParseDSN(t *testing.T) { - const query = "?readTimeout=10s&timeout=10s&writeTimeout=10s" - - var tests = []struct { - host string - username string - password string - uri string - }{ - {"", "", "", "tcp(127.0.0.1:3306)/" + query}, - {"", "root", "secret", "root:secret@tcp(127.0.0.1:3306)/" + query}, - {"unix(/tmp/mysql.sock)/", "root", "", "root@unix(/tmp/mysql.sock)/" + query}, - {"tcp(127.0.0.1:3306)/", "", "", "tcp(127.0.0.1:3306)/" + query}, - {"tcp(127.0.0.1:3306)/", "root", "", "root@tcp(127.0.0.1:3306)/" + query}, - {"tcp(127.0.0.1:3306)/", "root", "secret", "root:secret@tcp(127.0.0.1:3306)/" + query}, - } - - for _, test := range tests { - c := map[string]interface{}{ - "username": test.username, - "password": test.password, - } - mod := mbtest.NewTestModule(t, c) - mod.ModConfig.Timeout = 10 * time.Second - - hostData, err := ParseDSN(mod, test.host) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.uri, hostData.URI) - if test.username != "" { - assert.NotContains(t, hostData.SanitizedURI, test.username) - } - if test.password != "" { - assert.NotContains(t, hostData.SanitizedURI, test.password) - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/data.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/data.go index 889b5d23..6b9b75d3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status.go index 7e6c98b3..904b89ea 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status fetches MySQL server status metrics. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status_integration_test.go deleted file mode 100644 index 54078ad9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status_integration_test.go +++ /dev/null @@ -1,82 +0,0 @@ -// +build integration - -package status - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/mysql" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "mysql") - - f := mbtest.NewEventFetcher(t, getConfig(false)) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check event fields - connections := event["connections"].(int64) - open := event["open"].(common.MapStr) - openTables := open["tables"].(int64) - openFiles := open["files"].(int64) - openStreams := open["streams"].(int64) - - assert.True(t, connections > 0) - assert.True(t, openTables > 0) - assert.True(t, openFiles >= 0) - assert.True(t, openStreams == 0) -} - -func TestFetchRaw(t *testing.T) { - compose.EnsureUp(t, "mysql") - - f := mbtest.NewEventFetcher(t, getConfig(true)) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check event fields - cachedThreads := event["threads"].(common.MapStr)["cached"].(int64) - assert.True(t, cachedThreads >= 0) - - rawData := event["raw"].(common.MapStr) - - // Make sure field was removed from raw fields as in schema - _, exists := rawData["Threads_cached"] - assert.False(t, exists) - - // Check a raw field if it is available - _, exists = rawData["Slow_launch_threads"] - assert.True(t, exists) -} - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig(false)) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig(raw bool) map[string]interface{} { - return map[string]interface{}{ - "module": "mysql", - "metricsets": []string{"status"}, - "hosts": []string{mysql.GetMySQLEnvDSN()}, - "raw": raw, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status_test.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status_test.go deleted file mode 100644 index 0e275c84..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/status/status_test.go +++ /dev/null @@ -1,84 +0,0 @@ -package status - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/mb" - - "github.com/stretchr/testify/assert" -) - -// TestConfigValidation validates that the configuration and the DSN are -// validated when the MetricSet is created. -func TestConfigValidation(t *testing.T) { - tests := []struct { - in interface{} - err string - }{ - { - // Missing 'hosts' - in: map[string]interface{}{ - "module": "mysql", - "metricsets": []string{"status"}, - }, - err: "missing required field accessing 'hosts'", - }, - { - // Invalid DSN - in: map[string]interface{}{ - "module": "mysql", - "metricsets": []string{"status"}, - "hosts": []string{"127.0.0.1"}, - }, - err: "error parsing mysql host: invalid DSN: missing the slash separating the database name", - }, - { - // Local unix socket - in: map[string]interface{}{ - "module": "mysql", - "metricsets": []string{"status"}, - "hosts": []string{"user@unix(/path/to/socket)/"}, - }, - }, - { - // TCP on a remote host, e.g. Amazon RDS: - in: map[string]interface{}{ - "module": "mysql", - "metricsets": []string{"status"}, - "hosts": []string{"id:password@tcp(your-amazonaws-uri.com:3306)/}"}, - }, - }, - { - // TCP on a remote host with user/pass specified separately - in: map[string]interface{}{ - "module": "mysql", - "metricsets": []string{"status"}, - "hosts": []string{"tcp(your-amazonaws-uri.com:3306)/}"}, - "username": "id", - "password": "mypass", - }, - }, - } - - for i, test := range tests { - c, err := common.NewConfigFrom(test.in) - if err != nil { - t.Fatal(err) - } - - _, _, err = mb.NewModule(c, mb.Registry) - if err != nil && test.err == "" { - t.Errorf("unexpected error in testcase %d: %v", i, err) - continue - } - if test.err != "" { - if err != nil { - assert.Contains(t, err.Error(), test.err, "testcase %d", i) - } else { - t.Errorf("expected error '%v' in testcase %d", test.err, i) - } - continue - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/testing.go index b5cc7ea0..6036d717 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/mysql/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mysql import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/AUTHORS b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/AUTHORS deleted file mode 100644 index e47e5425..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/AUTHORS +++ /dev/null @@ -1,59 +0,0 @@ -# This is the official list of Go-MySQL-Driver authors for copyright purposes. - -# If you are submitting a patch, please add your name or the name of the -# organization which holds the copyright to this list in alphabetical order. - -# Names should be added to this file as -# Name -# The email address is not required for organizations. -# Please keep the list sorted. - - -# Individual Persons - -Aaron Hopkins -Arne Hormann -Carlos Nieto -Chris Moos -Daniel Nichter -Daniël van Eeden -DisposaBoy -Egor Smolyakov -Frederick Mayle -Gustavo Kristic -Hanno Braun -Henri Yandell -Hirotaka Yamamoto -INADA Naoki -Jacek Szwec -James Harr -Jian Zhen -Joshua Prunier -Julien Lefevre -Julien Schmidt -Kamil Dziedzic -Kevin Malachowski -Lennart Rudolph -Leonardo YongUk Kim -Luca Looz -Lucas Liu -Luke Scott -Michael Woolnough -Nicola Peduzzi -Olivier Mengué -Paul Bonser -Peter Schultz -Runrioter Wung -Soroush Pour -Stan Putrya -Stanley Gunawan -Xiangyu Hu -Xiaobing Jiang -Xiuming Chen -Zhenye Xie - -# Organizations - -Barracuda Networks, Inc. -Google Inc. -Stripe Inc. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md deleted file mode 100644 index 6bcad7ea..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CHANGELOG.md +++ /dev/null @@ -1,119 +0,0 @@ -## Version 1.3 (2016-12-01) - -Changes: - - - Go 1.1 is no longer supported - - Use decimals fields in MySQL to format time types (#249) - - Buffer optimizations (#269) - - TLS ServerName defaults to the host (#283) - - Refactoring (#400, #410, #437) - - Adjusted documentation for second generation CloudSQL (#485) - - Documented DSN system var quoting rules (#502) - - Made statement.Close() calls idempotent to avoid errors in Go 1.6+ (#512) - -New Features: - - - Enable microsecond resolution on TIME, DATETIME and TIMESTAMP (#249) - - Support for returning table alias on Columns() (#289, #359, #382) - - Placeholder interpolation, can be actived with the DSN parameter `interpolateParams=true` (#309, #318, #490) - - Support for uint64 parameters with high bit set (#332, #345) - - Cleartext authentication plugin support (#327) - - Exported ParseDSN function and the Config struct (#403, #419, #429) - - Read / Write timeouts (#401) - - Support for JSON field type (#414) - - Support for multi-statements and multi-results (#411, #431) - - DSN parameter to set the driver-side max_allowed_packet value manually (#489) - - Native password authentication plugin support (#494, #524) - -Bugfixes: - - - Fixed handling of queries without columns and rows (#255) - - Fixed a panic when SetKeepAlive() failed (#298) - - Handle ERR packets while reading rows (#321) - - Fixed reading NULL length-encoded integers in MySQL 5.6+ (#349) - - Fixed absolute paths support in LOAD LOCAL DATA INFILE (#356) - - Actually zero out bytes in handshake response (#378) - - Fixed race condition in registering LOAD DATA INFILE handler (#383) - - Fixed tests with MySQL 5.7.9+ (#380) - - QueryUnescape TLS config names (#397) - - Fixed "broken pipe" error by writing to closed socket (#390) - - Fixed LOAD LOCAL DATA INFILE buffering (#424) - - Fixed parsing of floats into float64 when placeholders are used (#434) - - Fixed DSN tests with Go 1.7+ (#459) - - Handle ERR packets while waiting for EOF (#473) - - Invalidate connection on error while discarding additional results (#513) - - Allow terminating packets of length 0 (#516) - - -## Version 1.2 (2014-06-03) - -Changes: - - - We switched back to a "rolling release". `go get` installs the current master branch again - - Version v1 of the driver will not be maintained anymore. Go 1.0 is no longer supported by this driver - - Exported errors to allow easy checking from application code - - Enabled TCP Keepalives on TCP connections - - Optimized INFILE handling (better buffer size calculation, lazy init, ...) - - The DSN parser also checks for a missing separating slash - - Faster binary date / datetime to string formatting - - Also exported the MySQLWarning type - - mysqlConn.Close returns the first error encountered instead of ignoring all errors - - writePacket() automatically writes the packet size to the header - - readPacket() uses an iterative approach instead of the recursive approach to merge splitted packets - -New Features: - - - `RegisterDial` allows the usage of a custom dial function to establish the network connection - - Setting the connection collation is possible with the `collation` DSN parameter. This parameter should be preferred over the `charset` parameter - - Logging of critical errors is configurable with `SetLogger` - - Google CloudSQL support - -Bugfixes: - - - Allow more than 32 parameters in prepared statements - - Various old_password fixes - - Fixed TestConcurrent test to pass Go's race detection - - Fixed appendLengthEncodedInteger for large numbers - - Renamed readLengthEnodedString to readLengthEncodedString and skipLengthEnodedString to skipLengthEncodedString (fixed typo) - - -## Version 1.1 (2013-11-02) - -Changes: - - - Go-MySQL-Driver now requires Go 1.1 - - Connections now use the collation `utf8_general_ci` by default. Adding `&charset=UTF8` to the DSN should not be necessary anymore - - Made closing rows and connections error tolerant. This allows for example deferring rows.Close() without checking for errors - - `[]byte(nil)` is now treated as a NULL value. Before, it was treated like an empty string / `[]byte("")` - - DSN parameter values must now be url.QueryEscape'ed. This allows text values to contain special characters, such as '&'. - - Use the IO buffer also for writing. This results in zero allocations (by the driver) for most queries - - Optimized the buffer for reading - - stmt.Query now caches column metadata - - New Logo - - Changed the copyright header to include all contributors - - Improved the LOAD INFILE documentation - - The driver struct is now exported to make the driver directly accessible - - Refactored the driver tests - - Added more benchmarks and moved all to a separate file - - Other small refactoring - -New Features: - - - Added *old_passwords* support: Required in some cases, but must be enabled by adding `allowOldPasswords=true` to the DSN since it is insecure - - Added a `clientFoundRows` parameter: Return the number of matching rows instead of the number of rows changed on UPDATEs - - Added TLS/SSL support: Use a TLS/SSL encrypted connection to the server. Custom TLS configs can be registered and used - -Bugfixes: - - - Fixed MySQL 4.1 support: MySQL 4.1 sends packets with lengths which differ from the specification - - Convert to DB timezone when inserting `time.Time` - - Splitted packets (more than 16MB) are now merged correctly - - Fixed false positive `io.EOF` errors when the data was fully read - - Avoid panics on reuse of closed connections - - Fixed empty string producing false nil values - - Fixed sign byte for positive TIME fields - - -## Version 1.0 (2013-05-14) - -Initial Release diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md deleted file mode 100644 index 8fe16bcb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/CONTRIBUTING.md +++ /dev/null @@ -1,23 +0,0 @@ -# Contributing Guidelines - -## Reporting Issues - -Before creating a new Issue, please check first if a similar Issue [already exists](https://github.com/go-sql-driver/mysql/issues?state=open) or was [recently closed](https://github.com/go-sql-driver/mysql/issues?direction=desc&page=1&sort=updated&state=closed). - -## Contributing Code - -By contributing to this project, you share your code under the Mozilla Public License 2, as specified in the LICENSE file. -Don't forget to add yourself to the AUTHORS file. - -### Code Review - -Everyone is invited to review and comment on pull requests. -If it looks fine to you, comment with "LGTM" (Looks good to me). - -If changes are required, notice the reviewers with "PTAL" (Please take another look) after committing the fixes. - -Before merging the Pull Request, at least one [team member](https://github.com/go-sql-driver?tab=members) must have commented with "LGTM". - -## Development Ideas - -If you are looking for ideas for code contributions, please check our [Development Ideas](https://github.com/go-sql-driver/mysql/wiki/Development-Ideas) Wiki page. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/LICENSE b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/LICENSE deleted file mode 100644 index 14e2f777..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/LICENSE +++ /dev/null @@ -1,373 +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/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/README.md b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/README.md deleted file mode 100644 index a060e3cf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/README.md +++ /dev/null @@ -1,449 +0,0 @@ -# Go-MySQL-Driver - -A MySQL-Driver for Go's [database/sql](https://golang.org/pkg/database/sql/) package - -![Go-MySQL-Driver logo](https://raw.github.com/wiki/go-sql-driver/mysql/gomysql_m.png "Golang Gopher holding the MySQL Dolphin") - ---------------------------------------- - * [Features](#features) - * [Requirements](#requirements) - * [Installation](#installation) - * [Usage](#usage) - * [DSN (Data Source Name)](#dsn-data-source-name) - * [Password](#password) - * [Protocol](#protocol) - * [Address](#address) - * [Parameters](#parameters) - * [Examples](#examples) - * [Connection pool and timeouts](#connection-pool-and-timeouts) - * [LOAD DATA LOCAL INFILE support](#load-data-local-infile-support) - * [time.Time support](#timetime-support) - * [Unicode support](#unicode-support) - * [Testing / Development](#testing--development) - * [License](#license) - ---------------------------------------- - -## Features - * Lightweight and [fast](https://github.com/go-sql-driver/sql-benchmark "golang MySQL-Driver performance") - * Native Go implementation. No C-bindings, just pure Go - * Connections over TCP/IPv4, TCP/IPv6, Unix domain sockets or [custom protocols](https://godoc.org/github.com/go-sql-driver/mysql#DialFunc) - * Automatic handling of broken connections - * Automatic Connection Pooling *(by database/sql package)* - * Supports queries larger than 16MB - * Full [`sql.RawBytes`](https://golang.org/pkg/database/sql/#RawBytes) support. - * Intelligent `LONG DATA` handling in prepared statements - * Secure `LOAD DATA LOCAL INFILE` support with file Whitelisting and `io.Reader` support - * Optional `time.Time` parsing - * Optional placeholder interpolation - -## Requirements - * Go 1.2 or higher - * MySQL (4.1+), MariaDB, Percona Server, Google CloudSQL or Sphinx (2.2.3+) - ---------------------------------------- - -## Installation -Simple install the package to your [$GOPATH](https://github.com/golang/go/wiki/GOPATH "GOPATH") with the [go tool](https://golang.org/cmd/go/ "go command") from shell: -```bash -$ go get github.com/go-sql-driver/mysql -``` -Make sure [Git is installed](https://git-scm.com/downloads) on your machine and in your system's `PATH`. - -## Usage -_Go MySQL Driver_ is an implementation of Go's `database/sql/driver` interface. You only need to import the driver and can use the full [`database/sql`](https://golang.org/pkg/database/sql/) API then. - -Use `mysql` as `driverName` and a valid [DSN](#dsn-data-source-name) as `dataSourceName`: -```go -import "database/sql" -import _ "github.com/go-sql-driver/mysql" - -db, err := sql.Open("mysql", "user:password@/dbname") -``` - -[Examples are available in our Wiki](https://github.com/go-sql-driver/mysql/wiki/Examples "Go-MySQL-Driver Examples"). - - -### DSN (Data Source Name) - -The Data Source Name has a common format, like e.g. [PEAR DB](http://pear.php.net/manual/en/package.database.db.intro-dsn.php) uses it, but without type-prefix (optional parts marked by squared brackets): -``` -[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN] -``` - -A DSN in its fullest form: -``` -username:password@protocol(address)/dbname?param=value -``` - -Except for the databasename, all values are optional. So the minimal DSN is: -``` -/dbname -``` - -If you do not want to preselect a database, leave `dbname` empty: -``` -/ -``` -This has the same effect as an empty DSN string: -``` - -``` - -Alternatively, [Config.FormatDSN](https://godoc.org/github.com/go-sql-driver/mysql#Config.FormatDSN) can be used to create a DSN string by filling a struct. - -#### Password -Passwords can consist of any character. Escaping is **not** necessary. - -#### Protocol -See [net.Dial](https://golang.org/pkg/net/#Dial) for more information which networks are available. -In general you should use an Unix domain socket if available and TCP otherwise for best performance. - -#### Address -For TCP and UDP networks, addresses have the form `host:port`. -If `host` is a literal IPv6 address, it must be enclosed in square brackets. -The functions [net.JoinHostPort](https://golang.org/pkg/net/#JoinHostPort) and [net.SplitHostPort](https://golang.org/pkg/net/#SplitHostPort) manipulate addresses in this form. - -For Unix domain sockets the address is the absolute path to the MySQL-Server-socket, e.g. `/var/run/mysqld/mysqld.sock` or `/tmp/mysql.sock`. - -#### Parameters -*Parameters are case-sensitive!* - -Notice that any of `true`, `TRUE`, `True` or `1` is accepted to stand for a true boolean value. Not surprisingly, false can be specified as any of: `false`, `FALSE`, `False` or `0`. - -##### `allowAllFiles` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`allowAllFiles=true` disables the file Whitelist for `LOAD DATA LOCAL INFILE` and allows *all* files. -[*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html) - -##### `allowCleartextPasswords` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`allowCleartextPasswords=true` allows using the [cleartext client side plugin](http://dev.mysql.com/doc/en/cleartext-authentication-plugin.html) if required by an account, such as one defined with the [PAM authentication plugin](http://dev.mysql.com/doc/en/pam-authentication-plugin.html). Sending passwords in clear text may be a security problem in some configurations. To avoid problems if there is any possibility that the password would be intercepted, clients should connect to MySQL Server using a method that protects the password. Possibilities include [TLS / SSL](#tls), IPsec, or a private network. - -##### `allowNativePasswords` - -``` -Type: bool -Valid Values: true, false -Default: false -``` -`allowNativePasswords=true` allows the usage of the mysql native password method. - -##### `allowOldPasswords` - -``` -Type: bool -Valid Values: true, false -Default: false -``` -`allowOldPasswords=true` allows the usage of the insecure old password method. This should be avoided, but is necessary in some cases. See also [the old_passwords wiki page](https://github.com/go-sql-driver/mysql/wiki/old_passwords). - -##### `charset` - -``` -Type: string -Valid Values: -Default: none -``` - -Sets the charset used for client-server interaction (`"SET NAMES "`). If multiple charsets are set (separated by a comma), the following charset is used if setting the charset failes. This enables for example support for `utf8mb4` ([introduced in MySQL 5.5.3](http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html)) with fallback to `utf8` for older servers (`charset=utf8mb4,utf8`). - -Usage of the `charset` parameter is discouraged because it issues additional queries to the server. -Unless you need the fallback behavior, please use `collation` instead. - -##### `collation` - -``` -Type: string -Valid Values: -Default: utf8_general_ci -``` - -Sets the collation used for client-server interaction on connection. In contrast to `charset`, `collation` does not issue additional queries. If the specified collation is unavailable on the target server, the connection will fail. - -A list of valid charsets for a server is retrievable with `SHOW COLLATION`. - -##### `clientFoundRows` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`clientFoundRows=true` causes an UPDATE to return the number of matching rows instead of the number of rows changed. - -##### `columnsWithAlias` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -When `columnsWithAlias` is true, calls to `sql.Rows.Columns()` will return the table alias and the column name separated by a dot. For example: - -``` -SELECT u.id FROM users as u -``` - -will return `u.id` instead of just `id` if `columnsWithAlias=true`. - -##### `interpolateParams` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -If `interpolateParams` is true, placeholders (`?`) in calls to `db.Query()` and `db.Exec()` are interpolated into a single query string with given parameters. This reduces the number of roundtrips, since the driver has to prepare a statement, execute it with given parameters and close the statement again with `interpolateParams=false`. - -*This can not be used together with the multibyte encodings BIG5, CP932, GB2312, GBK or SJIS. These are blacklisted as they may [introduce a SQL injection vulnerability](http://stackoverflow.com/a/12118602/3430118)!* - -##### `loc` - -``` -Type: string -Valid Values: -Default: UTC -``` - -Sets the location for time.Time values (when using `parseTime=true`). *"Local"* sets the system's location. See [time.LoadLocation](https://golang.org/pkg/time/#LoadLocation) for details. - -Note that this sets the location for time.Time values but does not change MySQL's [time_zone setting](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html). For that see the [time_zone system variable](#system-variables), which can also be set as a DSN parameter. - -Please keep in mind, that param values must be [url.QueryEscape](https://golang.org/pkg/net/url/#QueryEscape)'ed. Alternatively you can manually replace the `/` with `%2F`. For example `US/Pacific` would be `loc=US%2FPacific`. - -##### `maxAllowedPacket` -``` -Type: decimal number -Default: 0 -``` - -Max packet size allowed in bytes. Use `maxAllowedPacket=0` to automatically fetch the `max_allowed_packet` variable from server. - -##### `multiStatements` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -Allow multiple statements in one query. While this allows batch queries, it also greatly increases the risk of SQL injections. Only the result of the first query is returned, all other results are silently discarded. - -When `multiStatements` is used, `?` parameters must only be used in the first statement. - -##### `parseTime` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`parseTime=true` changes the output type of `DATE` and `DATETIME` values to `time.Time` instead of `[]byte` / `string` - - -##### `readTimeout` - -``` -Type: duration -Default: 0 -``` - -I/O read timeout. The value must be a decimal number with a unit suffix (*"ms"*, *"s"*, *"m"*, *"h"*), such as *"30s"*, *"0.5m"* or *"1m30s"*. - -##### `strict` - -``` -Type: bool -Valid Values: true, false -Default: false -``` - -`strict=true` enables a driver-side strict mode in which MySQL warnings are treated as errors. This mode should not be used in production as it may lead to data corruption in certain situations. - -A server-side strict mode, which is safe for production use, can be set via the [`sql_mode`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html) system variable. - -By default MySQL also treats notes as warnings. Use [`sql_notes=false`](http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sql_notes) to ignore notes. - -##### `timeout` - -``` -Type: duration -Default: OS default -``` - -Timeout for establishing connections, aka dial timeout. The value must be a decimal number with a unit suffix (*"ms"*, *"s"*, *"m"*, *"h"*), such as *"30s"*, *"0.5m"* or *"1m30s"*. - -##### `tls` - -``` -Type: bool / string -Valid Values: true, false, skip-verify, -Default: false -``` - -`tls=true` enables TLS / SSL encrypted connection to the server. Use `skip-verify` if you want to use a self-signed or invalid certificate (server side). Use a custom value registered with [`mysql.RegisterTLSConfig`](https://godoc.org/github.com/go-sql-driver/mysql#RegisterTLSConfig). - -##### `writeTimeout` - -``` -Type: duration -Default: 0 -``` - -I/O write timeout. The value must be a decimal number with a unit suffix (*"ms"*, *"s"*, *"m"*, *"h"*), such as *"30s"*, *"0.5m"* or *"1m30s"*. - - -##### System Variables - -Any other parameters are interpreted as system variables: - * `=`: `SET =` - * `=`: `SET =` - * `=%27%27`: `SET =''` - -Rules: -* The values for string variables must be quoted with ' -* The values must also be [url.QueryEscape](http://golang.org/pkg/net/url/#QueryEscape)'ed! - (which implies values of string variables must be wrapped with `%27`) - -Examples: - * `autocommit=1`: `SET autocommit=1` - * [`time_zone=%27Europe%2FParis%27`](https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html): `SET time_zone='Europe/Paris'` - * [`tx_isolation=%27REPEATABLE-READ%27`](https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_tx_isolation): `SET tx_isolation='REPEATABLE-READ'` - - -#### Examples -``` -user@unix(/path/to/socket)/dbname -``` - -``` -root:pw@unix(/tmp/mysql.sock)/myDatabase?loc=Local -``` - -``` -user:password@tcp(localhost:5555)/dbname?tls=skip-verify&autocommit=true -``` - -Treat warnings as errors by setting the system variable [`sql_mode`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html): -``` -user:password@/dbname?sql_mode=TRADITIONAL -``` - -TCP via IPv6: -``` -user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname?timeout=90s&collation=utf8mb4_unicode_ci -``` - -TCP on a remote host, e.g. Amazon RDS: -``` -id:password@tcp(your-amazonaws-uri.com:3306)/dbname -``` - -Google Cloud SQL on App Engine (First Generation MySQL Server): -``` -user@cloudsql(project-id:instance-name)/dbname -``` - -Google Cloud SQL on App Engine (Second Generation MySQL Server): -``` -user@cloudsql(project-id:regionname:instance-name)/dbname -``` - -TCP using default port (3306) on localhost: -``` -user:password@tcp/dbname?charset=utf8mb4,utf8&sys_var=esc%40ped -``` - -Use the default protocol (tcp) and host (localhost:3306): -``` -user:password@/dbname -``` - -No Database preselected: -``` -user:password@/ -``` - - -### Connection pool and timeouts -The connection pool is managed by Go's database/sql package. For details on how to configure the size of the pool and how long connections stay in the pool see `*DB.SetMaxOpenConns`, `*DB.SetMaxIdleConns`, and `*DB.SetConnMaxLifetime` in the [database/sql documentation](https://golang.org/pkg/database/sql/). The read, write, and dial timeouts for each individual connection are configured with the DSN parameters [`readTimeout`](#readtimeout), [`writeTimeout`](#writetimeout), and [`timeout`](#timeout), respectively. - - -### `LOAD DATA LOCAL INFILE` support -For this feature you need direct access to the package. Therefore you must change the import path (no `_`): -```go -import "github.com/go-sql-driver/mysql" -``` - -Files must be whitelisted by registering them with `mysql.RegisterLocalFile(filepath)` (recommended) or the Whitelist check must be deactivated by using the DSN parameter `allowAllFiles=true` ([*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html)). - -To use a `io.Reader` a handler function must be registered with `mysql.RegisterReaderHandler(name, handler)` which returns a `io.Reader` or `io.ReadCloser`. The Reader is available with the filepath `Reader::` then. Choose different names for different handlers and `DeregisterReaderHandler` when you don't need it anymore. - -See the [godoc of Go-MySQL-Driver](https://godoc.org/github.com/go-sql-driver/mysql "golang mysql driver documentation") for details. - - -### `time.Time` support -The default internal output type of MySQL `DATE` and `DATETIME` values is `[]byte` which allows you to scan the value into a `[]byte`, `string` or `sql.RawBytes` variable in your programm. - -However, many want to scan MySQL `DATE` and `DATETIME` values into `time.Time` variables, which is the logical opposite in Go to `DATE` and `DATETIME` in MySQL. You can do that by changing the internal output type from `[]byte` to `time.Time` with the DSN parameter `parseTime=true`. You can set the default [`time.Time` location](https://golang.org/pkg/time/#Location) with the `loc` DSN parameter. - -**Caution:** As of Go 1.1, this makes `time.Time` the only variable type you can scan `DATE` and `DATETIME` values into. This breaks for example [`sql.RawBytes` support](https://github.com/go-sql-driver/mysql/wiki/Examples#rawbytes). - -Alternatively you can use the [`NullTime`](https://godoc.org/github.com/go-sql-driver/mysql#NullTime) type as the scan destination, which works with both `time.Time` and `string` / `[]byte`. - - -### Unicode support -Since version 1.1 Go-MySQL-Driver automatically uses the collation `utf8_general_ci` by default. - -Other collations / charsets can be set using the [`collation`](#collation) DSN parameter. - -Version 1.0 of the driver recommended adding `&charset=utf8` (alias for `SET NAMES utf8`) to the DSN to enable proper UTF-8 support. This is not necessary anymore. The [`collation`](#collation) parameter should be preferred to set another collation / charset than the default. - -See http://dev.mysql.com/doc/refman/5.7/en/charset-unicode.html for more details on MySQL's Unicode support. - - -## Testing / Development -To run the driver tests you may need to adjust the configuration. See the [Testing Wiki-Page](https://github.com/go-sql-driver/mysql/wiki/Testing "Testing") for details. - -Go-MySQL-Driver is not feature-complete yet. Your help is very appreciated. -If you want to contribute, you can work on an [open issue](https://github.com/go-sql-driver/mysql/issues?state=open) or review a [pull request](https://github.com/go-sql-driver/mysql/pulls). - -See the [Contribution Guidelines](https://github.com/go-sql-driver/mysql/blob/master/CONTRIBUTING.md) for details. - ---------------------------------------- - -## License -Go-MySQL-Driver is licensed under the [Mozilla Public License Version 2.0](https://raw.github.com/go-sql-driver/mysql/master/LICENSE) - -Mozilla summarizes the license scope as follows: -> MPL: The copyleft applies to any files containing MPLed code. - - -That means: - * You can **use** the **unchanged** source code both in private and commercially - * When distributing, you **must publish** the source code of any **changed files** licensed under the MPL 2.0 under a) the MPL 2.0 itself or b) a compatible license (e.g. GPL 3.0 or Apache License 2.0) - * You **needn't publish** the source code of your library as long as the files licensed under the MPL 2.0 are **unchanged** - -Please read the [MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) if you have further questions regarding the license. - -You can read the full terms here: [LICENSE](https://raw.github.com/go-sql-driver/mysql/master/LICENSE) - -![Go Gopher and MySQL Dolphin](https://raw.github.com/wiki/go-sql-driver/mysql/go-mysql-driver_m.jpg "Golang Gopher transporting the MySQL Dolphin in a wheelbarrow") - diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/appengine.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/appengine.go deleted file mode 100644 index 565614ee..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/appengine.go +++ /dev/null @@ -1,19 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -// +build appengine - -package mysql - -import ( - "appengine/cloudsql" -) - -func init() { - RegisterDial("cloudsql", cloudsql.Dial) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/buffer.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/buffer.go deleted file mode 100644 index 2001feac..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/buffer.go +++ /dev/null @@ -1,147 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "io" - "net" - "time" -) - -const defaultBufSize = 4096 - -// A buffer which is used for both reading and writing. -// This is possible since communication on each connection is synchronous. -// In other words, we can't write and read simultaneously on the same connection. -// The buffer is similar to bufio.Reader / Writer but zero-copy-ish -// Also highly optimized for this particular use case. -type buffer struct { - buf []byte - nc net.Conn - idx int - length int - timeout time.Duration -} - -func newBuffer(nc net.Conn) buffer { - var b [defaultBufSize]byte - return buffer{ - buf: b[:], - nc: nc, - } -} - -// fill reads into the buffer until at least _need_ bytes are in it -func (b *buffer) fill(need int) error { - n := b.length - - // move existing data to the beginning - if n > 0 && b.idx > 0 { - copy(b.buf[0:n], b.buf[b.idx:]) - } - - // grow buffer if necessary - // TODO: let the buffer shrink again at some point - // Maybe keep the org buf slice and swap back? - if need > len(b.buf) { - // Round up to the next multiple of the default size - newBuf := make([]byte, ((need/defaultBufSize)+1)*defaultBufSize) - copy(newBuf, b.buf) - b.buf = newBuf - } - - b.idx = 0 - - for { - if b.timeout > 0 { - if err := b.nc.SetReadDeadline(time.Now().Add(b.timeout)); err != nil { - return err - } - } - - nn, err := b.nc.Read(b.buf[n:]) - n += nn - - switch err { - case nil: - if n < need { - continue - } - b.length = n - return nil - - case io.EOF: - if n >= need { - b.length = n - return nil - } - return io.ErrUnexpectedEOF - - default: - return err - } - } -} - -// returns next N bytes from buffer. -// The returned slice is only guaranteed to be valid until the next read -func (b *buffer) readNext(need int) ([]byte, error) { - if b.length < need { - // refill - if err := b.fill(need); err != nil { - return nil, err - } - } - - offset := b.idx - b.idx += need - b.length -= need - return b.buf[offset:b.idx], nil -} - -// returns a buffer with the requested size. -// If possible, a slice from the existing buffer is returned. -// Otherwise a bigger buffer is made. -// Only one buffer (total) can be used at a time. -func (b *buffer) takeBuffer(length int) []byte { - if b.length > 0 { - return nil - } - - // test (cheap) general case first - if length <= defaultBufSize || length <= cap(b.buf) { - return b.buf[:length] - } - - if length < maxPacketSize { - b.buf = make([]byte, length) - return b.buf - } - return make([]byte, length) -} - -// shortcut which can be used if the requested buffer is guaranteed to be -// smaller than defaultBufSize -// Only one buffer (total) can be used at a time. -func (b *buffer) takeSmallBuffer(length int) []byte { - if b.length == 0 { - return b.buf[:length] - } - return nil -} - -// takeCompleteBuffer returns the complete existing buffer. -// This can be used if the necessary buffer size is unknown. -// Only one buffer (total) can be used at a time. -func (b *buffer) takeCompleteBuffer() []byte { - if b.length == 0 { - return b.buf - } - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/collations.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/collations.go deleted file mode 100644 index 82079cfb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/collations.go +++ /dev/null @@ -1,250 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2014 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -const defaultCollation = "utf8_general_ci" - -// A list of available collations mapped to the internal ID. -// To update this map use the following MySQL query: -// SELECT COLLATION_NAME, ID FROM information_schema.COLLATIONS -var collations = map[string]byte{ - "big5_chinese_ci": 1, - "latin2_czech_cs": 2, - "dec8_swedish_ci": 3, - "cp850_general_ci": 4, - "latin1_german1_ci": 5, - "hp8_english_ci": 6, - "koi8r_general_ci": 7, - "latin1_swedish_ci": 8, - "latin2_general_ci": 9, - "swe7_swedish_ci": 10, - "ascii_general_ci": 11, - "ujis_japanese_ci": 12, - "sjis_japanese_ci": 13, - "cp1251_bulgarian_ci": 14, - "latin1_danish_ci": 15, - "hebrew_general_ci": 16, - "tis620_thai_ci": 18, - "euckr_korean_ci": 19, - "latin7_estonian_cs": 20, - "latin2_hungarian_ci": 21, - "koi8u_general_ci": 22, - "cp1251_ukrainian_ci": 23, - "gb2312_chinese_ci": 24, - "greek_general_ci": 25, - "cp1250_general_ci": 26, - "latin2_croatian_ci": 27, - "gbk_chinese_ci": 28, - "cp1257_lithuanian_ci": 29, - "latin5_turkish_ci": 30, - "latin1_german2_ci": 31, - "armscii8_general_ci": 32, - "utf8_general_ci": 33, - "cp1250_czech_cs": 34, - "ucs2_general_ci": 35, - "cp866_general_ci": 36, - "keybcs2_general_ci": 37, - "macce_general_ci": 38, - "macroman_general_ci": 39, - "cp852_general_ci": 40, - "latin7_general_ci": 41, - "latin7_general_cs": 42, - "macce_bin": 43, - "cp1250_croatian_ci": 44, - "utf8mb4_general_ci": 45, - "utf8mb4_bin": 46, - "latin1_bin": 47, - "latin1_general_ci": 48, - "latin1_general_cs": 49, - "cp1251_bin": 50, - "cp1251_general_ci": 51, - "cp1251_general_cs": 52, - "macroman_bin": 53, - "utf16_general_ci": 54, - "utf16_bin": 55, - "utf16le_general_ci": 56, - "cp1256_general_ci": 57, - "cp1257_bin": 58, - "cp1257_general_ci": 59, - "utf32_general_ci": 60, - "utf32_bin": 61, - "utf16le_bin": 62, - "binary": 63, - "armscii8_bin": 64, - "ascii_bin": 65, - "cp1250_bin": 66, - "cp1256_bin": 67, - "cp866_bin": 68, - "dec8_bin": 69, - "greek_bin": 70, - "hebrew_bin": 71, - "hp8_bin": 72, - "keybcs2_bin": 73, - "koi8r_bin": 74, - "koi8u_bin": 75, - "latin2_bin": 77, - "latin5_bin": 78, - "latin7_bin": 79, - "cp850_bin": 80, - "cp852_bin": 81, - "swe7_bin": 82, - "utf8_bin": 83, - "big5_bin": 84, - "euckr_bin": 85, - "gb2312_bin": 86, - "gbk_bin": 87, - "sjis_bin": 88, - "tis620_bin": 89, - "ucs2_bin": 90, - "ujis_bin": 91, - "geostd8_general_ci": 92, - "geostd8_bin": 93, - "latin1_spanish_ci": 94, - "cp932_japanese_ci": 95, - "cp932_bin": 96, - "eucjpms_japanese_ci": 97, - "eucjpms_bin": 98, - "cp1250_polish_ci": 99, - "utf16_unicode_ci": 101, - "utf16_icelandic_ci": 102, - "utf16_latvian_ci": 103, - "utf16_romanian_ci": 104, - "utf16_slovenian_ci": 105, - "utf16_polish_ci": 106, - "utf16_estonian_ci": 107, - "utf16_spanish_ci": 108, - "utf16_swedish_ci": 109, - "utf16_turkish_ci": 110, - "utf16_czech_ci": 111, - "utf16_danish_ci": 112, - "utf16_lithuanian_ci": 113, - "utf16_slovak_ci": 114, - "utf16_spanish2_ci": 115, - "utf16_roman_ci": 116, - "utf16_persian_ci": 117, - "utf16_esperanto_ci": 118, - "utf16_hungarian_ci": 119, - "utf16_sinhala_ci": 120, - "utf16_german2_ci": 121, - "utf16_croatian_ci": 122, - "utf16_unicode_520_ci": 123, - "utf16_vietnamese_ci": 124, - "ucs2_unicode_ci": 128, - "ucs2_icelandic_ci": 129, - "ucs2_latvian_ci": 130, - "ucs2_romanian_ci": 131, - "ucs2_slovenian_ci": 132, - "ucs2_polish_ci": 133, - "ucs2_estonian_ci": 134, - "ucs2_spanish_ci": 135, - "ucs2_swedish_ci": 136, - "ucs2_turkish_ci": 137, - "ucs2_czech_ci": 138, - "ucs2_danish_ci": 139, - "ucs2_lithuanian_ci": 140, - "ucs2_slovak_ci": 141, - "ucs2_spanish2_ci": 142, - "ucs2_roman_ci": 143, - "ucs2_persian_ci": 144, - "ucs2_esperanto_ci": 145, - "ucs2_hungarian_ci": 146, - "ucs2_sinhala_ci": 147, - "ucs2_german2_ci": 148, - "ucs2_croatian_ci": 149, - "ucs2_unicode_520_ci": 150, - "ucs2_vietnamese_ci": 151, - "ucs2_general_mysql500_ci": 159, - "utf32_unicode_ci": 160, - "utf32_icelandic_ci": 161, - "utf32_latvian_ci": 162, - "utf32_romanian_ci": 163, - "utf32_slovenian_ci": 164, - "utf32_polish_ci": 165, - "utf32_estonian_ci": 166, - "utf32_spanish_ci": 167, - "utf32_swedish_ci": 168, - "utf32_turkish_ci": 169, - "utf32_czech_ci": 170, - "utf32_danish_ci": 171, - "utf32_lithuanian_ci": 172, - "utf32_slovak_ci": 173, - "utf32_spanish2_ci": 174, - "utf32_roman_ci": 175, - "utf32_persian_ci": 176, - "utf32_esperanto_ci": 177, - "utf32_hungarian_ci": 178, - "utf32_sinhala_ci": 179, - "utf32_german2_ci": 180, - "utf32_croatian_ci": 181, - "utf32_unicode_520_ci": 182, - "utf32_vietnamese_ci": 183, - "utf8_unicode_ci": 192, - "utf8_icelandic_ci": 193, - "utf8_latvian_ci": 194, - "utf8_romanian_ci": 195, - "utf8_slovenian_ci": 196, - "utf8_polish_ci": 197, - "utf8_estonian_ci": 198, - "utf8_spanish_ci": 199, - "utf8_swedish_ci": 200, - "utf8_turkish_ci": 201, - "utf8_czech_ci": 202, - "utf8_danish_ci": 203, - "utf8_lithuanian_ci": 204, - "utf8_slovak_ci": 205, - "utf8_spanish2_ci": 206, - "utf8_roman_ci": 207, - "utf8_persian_ci": 208, - "utf8_esperanto_ci": 209, - "utf8_hungarian_ci": 210, - "utf8_sinhala_ci": 211, - "utf8_german2_ci": 212, - "utf8_croatian_ci": 213, - "utf8_unicode_520_ci": 214, - "utf8_vietnamese_ci": 215, - "utf8_general_mysql500_ci": 223, - "utf8mb4_unicode_ci": 224, - "utf8mb4_icelandic_ci": 225, - "utf8mb4_latvian_ci": 226, - "utf8mb4_romanian_ci": 227, - "utf8mb4_slovenian_ci": 228, - "utf8mb4_polish_ci": 229, - "utf8mb4_estonian_ci": 230, - "utf8mb4_spanish_ci": 231, - "utf8mb4_swedish_ci": 232, - "utf8mb4_turkish_ci": 233, - "utf8mb4_czech_ci": 234, - "utf8mb4_danish_ci": 235, - "utf8mb4_lithuanian_ci": 236, - "utf8mb4_slovak_ci": 237, - "utf8mb4_spanish2_ci": 238, - "utf8mb4_roman_ci": 239, - "utf8mb4_persian_ci": 240, - "utf8mb4_esperanto_ci": 241, - "utf8mb4_hungarian_ci": 242, - "utf8mb4_sinhala_ci": 243, - "utf8mb4_german2_ci": 244, - "utf8mb4_croatian_ci": 245, - "utf8mb4_unicode_520_ci": 246, - "utf8mb4_vietnamese_ci": 247, -} - -// A blacklist of collations which is unsafe to interpolate parameters. -// These multibyte encodings may contains 0x5c (`\`) in their trailing bytes. -var unsafeCollations = map[string]bool{ - "big5_chinese_ci": true, - "sjis_japanese_ci": true, - "gbk_chinese_ci": true, - "big5_bin": true, - "gb2312_bin": true, - "gbk_bin": true, - "sjis_bin": true, - "cp932_japanese_ci": true, - "cp932_bin": true, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/connection.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/connection.go deleted file mode 100644 index 08e5fade..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/connection.go +++ /dev/null @@ -1,391 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "database/sql/driver" - "io" - "net" - "strconv" - "strings" - "time" -) - -type mysqlConn struct { - buf buffer - netConn net.Conn - affectedRows uint64 - insertId uint64 - cfg *Config - maxAllowedPacket int - maxWriteSize int - writeTimeout time.Duration - flags clientFlag - status statusFlag - sequence uint8 - parseTime bool - strict bool -} - -// Handles parameters set in DSN after the connection is established -func (mc *mysqlConn) handleParams() (err error) { - for param, val := range mc.cfg.Params { - switch param { - // Charset - case "charset": - charsets := strings.Split(val, ",") - for i := range charsets { - // ignore errors here - a charset may not exist - err = mc.exec("SET NAMES " + charsets[i]) - if err == nil { - break - } - } - if err != nil { - return - } - - // System Vars - default: - err = mc.exec("SET " + param + "=" + val + "") - if err != nil { - return - } - } - } - - return -} - -func (mc *mysqlConn) Begin() (driver.Tx, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - err := mc.exec("START TRANSACTION") - if err == nil { - return &mysqlTx{mc}, err - } - - return nil, err -} - -func (mc *mysqlConn) Close() (err error) { - // Makes Close idempotent - if mc.netConn != nil { - err = mc.writeCommandPacket(comQuit) - } - - mc.cleanup() - - return -} - -// Closes the network connection and unsets internal variables. Do not call this -// function after successfully authentication, call Close instead. This function -// is called before auth or on auth failure because MySQL will have already -// closed the network connection. -func (mc *mysqlConn) cleanup() { - // Makes cleanup idempotent - if mc.netConn != nil { - if err := mc.netConn.Close(); err != nil { - errLog.Print(err) - } - mc.netConn = nil - } - mc.cfg = nil - mc.buf.nc = nil -} - -func (mc *mysqlConn) Prepare(query string) (driver.Stmt, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := mc.writeCommandPacketStr(comStmtPrepare, query) - if err != nil { - return nil, err - } - - stmt := &mysqlStmt{ - mc: mc, - } - - // Read Result - columnCount, err := stmt.readPrepareResultPacket() - if err == nil { - if stmt.paramCount > 0 { - if err = mc.readUntilEOF(); err != nil { - return nil, err - } - } - - if columnCount > 0 { - err = mc.readUntilEOF() - } - } - - return stmt, err -} - -func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (string, error) { - // Number of ? should be same to len(args) - if strings.Count(query, "?") != len(args) { - return "", driver.ErrSkip - } - - buf := mc.buf.takeCompleteBuffer() - if buf == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return "", driver.ErrBadConn - } - buf = buf[:0] - argPos := 0 - - for i := 0; i < len(query); i++ { - q := strings.IndexByte(query[i:], '?') - if q == -1 { - buf = append(buf, query[i:]...) - break - } - buf = append(buf, query[i:i+q]...) - i += q - - arg := args[argPos] - argPos++ - - if arg == nil { - buf = append(buf, "NULL"...) - continue - } - - switch v := arg.(type) { - case int64: - buf = strconv.AppendInt(buf, v, 10) - case float64: - buf = strconv.AppendFloat(buf, v, 'g', -1, 64) - case bool: - if v { - buf = append(buf, '1') - } else { - buf = append(buf, '0') - } - case time.Time: - if v.IsZero() { - buf = append(buf, "'0000-00-00'"...) - } else { - v := v.In(mc.cfg.Loc) - v = v.Add(time.Nanosecond * 500) // To round under microsecond - year := v.Year() - year100 := year / 100 - year1 := year % 100 - month := v.Month() - day := v.Day() - hour := v.Hour() - minute := v.Minute() - second := v.Second() - micro := v.Nanosecond() / 1000 - - buf = append(buf, []byte{ - '\'', - digits10[year100], digits01[year100], - digits10[year1], digits01[year1], - '-', - digits10[month], digits01[month], - '-', - digits10[day], digits01[day], - ' ', - digits10[hour], digits01[hour], - ':', - digits10[minute], digits01[minute], - ':', - digits10[second], digits01[second], - }...) - - if micro != 0 { - micro10000 := micro / 10000 - micro100 := micro / 100 % 100 - micro1 := micro % 100 - buf = append(buf, []byte{ - '.', - digits10[micro10000], digits01[micro10000], - digits10[micro100], digits01[micro100], - digits10[micro1], digits01[micro1], - }...) - } - buf = append(buf, '\'') - } - case []byte: - if v == nil { - buf = append(buf, "NULL"...) - } else { - buf = append(buf, "_binary'"...) - if mc.status&statusNoBackslashEscapes == 0 { - buf = escapeBytesBackslash(buf, v) - } else { - buf = escapeBytesQuotes(buf, v) - } - buf = append(buf, '\'') - } - case string: - buf = append(buf, '\'') - if mc.status&statusNoBackslashEscapes == 0 { - buf = escapeStringBackslash(buf, v) - } else { - buf = escapeStringQuotes(buf, v) - } - buf = append(buf, '\'') - default: - return "", driver.ErrSkip - } - - if len(buf)+4 > mc.maxAllowedPacket { - return "", driver.ErrSkip - } - } - if argPos != len(args) { - return "", driver.ErrSkip - } - return string(buf), nil -} - -func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - if len(args) != 0 { - if !mc.cfg.InterpolateParams { - return nil, driver.ErrSkip - } - // try to interpolate the parameters to save extra roundtrips for preparing and closing a statement - prepared, err := mc.interpolateParams(query, args) - if err != nil { - return nil, err - } - query = prepared - args = nil - } - mc.affectedRows = 0 - mc.insertId = 0 - - err := mc.exec(query) - if err == nil { - return &mysqlResult{ - affectedRows: int64(mc.affectedRows), - insertId: int64(mc.insertId), - }, err - } - return nil, err -} - -// Internal function to execute commands -func (mc *mysqlConn) exec(query string) error { - // Send command - if err := mc.writeCommandPacketStr(comQuery, query); err != nil { - return err - } - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err != nil { - return err - } - - if resLen > 0 { - // columns - if err := mc.readUntilEOF(); err != nil { - return err - } - - // rows - if err := mc.readUntilEOF(); err != nil { - return err - } - } - - return mc.discardResults() -} - -func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) { - if mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - if len(args) != 0 { - if !mc.cfg.InterpolateParams { - return nil, driver.ErrSkip - } - // try client-side prepare to reduce roundtrip - prepared, err := mc.interpolateParams(query, args) - if err != nil { - return nil, err - } - query = prepared - args = nil - } - // Send command - err := mc.writeCommandPacketStr(comQuery, query) - if err == nil { - // Read Result - var resLen int - resLen, err = mc.readResultSetHeaderPacket() - if err == nil { - rows := new(textRows) - rows.mc = mc - - if resLen == 0 { - rows.rs.done = true - - switch err := rows.NextResultSet(); err { - case nil, io.EOF: - return rows, nil - default: - return nil, err - } - } - // Columns - rows.rs.columns, err = mc.readColumns(resLen) - return rows, err - } - } - return nil, err -} - -// Gets the value of the given MySQL System Variable -// The returned byte slice is only valid until the next read -func (mc *mysqlConn) getSystemVar(name string) ([]byte, error) { - // Send command - if err := mc.writeCommandPacketStr(comQuery, "SELECT @@"+name); err != nil { - return nil, err - } - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err == nil { - rows := new(textRows) - rows.mc = mc - rows.rs.columns = []mysqlField{{fieldType: fieldTypeVarChar}} - - if resLen > 0 { - // Columns - if err := mc.readUntilEOF(); err != nil { - return nil, err - } - } - - dest := make([]driver.Value, resLen) - if err = rows.readRow(dest); err == nil { - return dest[0].([]byte), mc.readUntilEOF() - } - } - return nil, err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/const.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/const.go deleted file mode 100644 index 88cfff3f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/const.go +++ /dev/null @@ -1,163 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -const ( - minProtocolVersion byte = 10 - maxPacketSize = 1<<24 - 1 - timeFormat = "2006-01-02 15:04:05.999999" -) - -// MySQL constants documentation: -// http://dev.mysql.com/doc/internals/en/client-server-protocol.html - -const ( - iOK byte = 0x00 - iLocalInFile byte = 0xfb - iEOF byte = 0xfe - iERR byte = 0xff -) - -// https://dev.mysql.com/doc/internals/en/capability-flags.html#packet-Protocol::CapabilityFlags -type clientFlag uint32 - -const ( - clientLongPassword clientFlag = 1 << iota - clientFoundRows - clientLongFlag - clientConnectWithDB - clientNoSchema - clientCompress - clientODBC - clientLocalFiles - clientIgnoreSpace - clientProtocol41 - clientInteractive - clientSSL - clientIgnoreSIGPIPE - clientTransactions - clientReserved - clientSecureConn - clientMultiStatements - clientMultiResults - clientPSMultiResults - clientPluginAuth - clientConnectAttrs - clientPluginAuthLenEncClientData - clientCanHandleExpiredPasswords - clientSessionTrack - clientDeprecateEOF -) - -const ( - comQuit byte = iota + 1 - comInitDB - comQuery - comFieldList - comCreateDB - comDropDB - comRefresh - comShutdown - comStatistics - comProcessInfo - comConnect - comProcessKill - comDebug - comPing - comTime - comDelayedInsert - comChangeUser - comBinlogDump - comTableDump - comConnectOut - comRegisterSlave - comStmtPrepare - comStmtExecute - comStmtSendLongData - comStmtClose - comStmtReset - comSetOption - comStmtFetch -) - -// https://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnType -const ( - fieldTypeDecimal byte = iota - fieldTypeTiny - fieldTypeShort - fieldTypeLong - fieldTypeFloat - fieldTypeDouble - fieldTypeNULL - fieldTypeTimestamp - fieldTypeLongLong - fieldTypeInt24 - fieldTypeDate - fieldTypeTime - fieldTypeDateTime - fieldTypeYear - fieldTypeNewDate - fieldTypeVarChar - fieldTypeBit -) -const ( - fieldTypeJSON byte = iota + 0xf5 - fieldTypeNewDecimal - fieldTypeEnum - fieldTypeSet - fieldTypeTinyBLOB - fieldTypeMediumBLOB - fieldTypeLongBLOB - fieldTypeBLOB - fieldTypeVarString - fieldTypeString - fieldTypeGeometry -) - -type fieldFlag uint16 - -const ( - flagNotNULL fieldFlag = 1 << iota - flagPriKey - flagUniqueKey - flagMultipleKey - flagBLOB - flagUnsigned - flagZeroFill - flagBinary - flagEnum - flagAutoIncrement - flagTimestamp - flagSet - flagUnknown1 - flagUnknown2 - flagUnknown3 - flagUnknown4 -) - -// http://dev.mysql.com/doc/internals/en/status-flags.html -type statusFlag uint16 - -const ( - statusInTrans statusFlag = 1 << iota - statusInAutocommit - statusReserved // Not in documentation - statusMoreResultsExists - statusNoGoodIndexUsed - statusNoIndexUsed - statusCursorExists - statusLastRowSent - statusDbDropped - statusNoBackslashEscapes - statusMetadataChanged - statusQueryWasSlow - statusPsOutParams - statusInTransReadonly - statusSessionStateChanged -) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/driver.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/driver.go deleted file mode 100644 index 0022d1f1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/driver.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -// Package mysql provides a MySQL driver for Go's database/sql package -// -// The driver should be used via the database/sql package: -// -// import "database/sql" -// import _ "github.com/go-sql-driver/mysql" -// -// db, err := sql.Open("mysql", "user:password@/dbname") -// -// See https://github.com/go-sql-driver/mysql#usage for details -package mysql - -import ( - "database/sql" - "database/sql/driver" - "net" -) - -// MySQLDriver is exported to make the driver directly accessible. -// In general the driver is used via the database/sql package. -type MySQLDriver struct{} - -// DialFunc is a function which can be used to establish the network connection. -// Custom dial functions must be registered with RegisterDial -type DialFunc func(addr string) (net.Conn, error) - -var dials map[string]DialFunc - -// RegisterDial registers a custom dial function. It can then be used by the -// network address mynet(addr), where mynet is the registered new network. -// addr is passed as a parameter to the dial function. -func RegisterDial(net string, dial DialFunc) { - if dials == nil { - dials = make(map[string]DialFunc) - } - dials[net] = dial -} - -// Open new Connection. -// See https://github.com/go-sql-driver/mysql#dsn-data-source-name for how -// the DSN string is formated -func (d MySQLDriver) Open(dsn string) (driver.Conn, error) { - var err error - - // New mysqlConn - mc := &mysqlConn{ - maxAllowedPacket: maxPacketSize, - maxWriteSize: maxPacketSize - 1, - } - mc.cfg, err = ParseDSN(dsn) - if err != nil { - return nil, err - } - mc.parseTime = mc.cfg.ParseTime - mc.strict = mc.cfg.Strict - - // Connect to Server - if dial, ok := dials[mc.cfg.Net]; ok { - mc.netConn, err = dial(mc.cfg.Addr) - } else { - nd := net.Dialer{Timeout: mc.cfg.Timeout} - mc.netConn, err = nd.Dial(mc.cfg.Net, mc.cfg.Addr) - } - if err != nil { - return nil, err - } - - // Enable TCP Keepalives on TCP connections - if tc, ok := mc.netConn.(*net.TCPConn); ok { - if err := tc.SetKeepAlive(true); err != nil { - // Don't send COM_QUIT before handshake. - mc.netConn.Close() - mc.netConn = nil - return nil, err - } - } - - mc.buf = newBuffer(mc.netConn) - - // Set I/O timeouts - mc.buf.timeout = mc.cfg.ReadTimeout - mc.writeTimeout = mc.cfg.WriteTimeout - - // Reading Handshake Initialization Packet - cipher, err := mc.readInitPacket() - if err != nil { - mc.cleanup() - return nil, err - } - - // Send Client Authentication Packet - if err = mc.writeAuthPacket(cipher); err != nil { - mc.cleanup() - return nil, err - } - - // Handle response to auth packet, switch methods if possible - if err = handleAuthResult(mc, cipher); err != nil { - // Authentication failed and MySQL has already closed the connection - // (https://dev.mysql.com/doc/internals/en/authentication-fails.html). - // Do not send COM_QUIT, just cleanup and return the error. - mc.cleanup() - return nil, err - } - - if mc.cfg.MaxAllowedPacket > 0 { - mc.maxAllowedPacket = mc.cfg.MaxAllowedPacket - } else { - // Get max allowed packet size - maxap, err := mc.getSystemVar("max_allowed_packet") - if err != nil { - mc.Close() - return nil, err - } - mc.maxAllowedPacket = stringToInt(maxap) - 1 - } - if mc.maxAllowedPacket < maxPacketSize { - mc.maxWriteSize = mc.maxAllowedPacket - } - - // Handle DSN Params - err = mc.handleParams() - if err != nil { - mc.Close() - return nil, err - } - - return mc, nil -} - -func handleAuthResult(mc *mysqlConn, oldCipher []byte) error { - // Read Result Packet - cipher, err := mc.readResultOK() - if err == nil { - return nil // auth successful - } - - if mc.cfg == nil { - return err // auth failed and retry not possible - } - - // Retry auth if configured to do so. - if mc.cfg.AllowOldPasswords && err == ErrOldPassword { - // Retry with old authentication method. Note: there are edge cases - // where this should work but doesn't; this is currently "wontfix": - // https://github.com/go-sql-driver/mysql/issues/184 - - // If CLIENT_PLUGIN_AUTH capability is not supported, no new cipher is - // sent and we have to keep using the cipher sent in the init packet. - if cipher == nil { - cipher = oldCipher - } - - if err = mc.writeOldAuthPacket(cipher); err != nil { - return err - } - _, err = mc.readResultOK() - } else if mc.cfg.AllowCleartextPasswords && err == ErrCleartextPassword { - // Retry with clear text password for - // http://dev.mysql.com/doc/refman/5.7/en/cleartext-authentication-plugin.html - // http://dev.mysql.com/doc/refman/5.7/en/pam-authentication-plugin.html - if err = mc.writeClearAuthPacket(); err != nil { - return err - } - _, err = mc.readResultOK() - } else if mc.cfg.AllowNativePasswords && err == ErrNativePassword { - if err = mc.writeNativeAuthPacket(cipher); err != nil { - return err - } - _, err = mc.readResultOK() - } - return err -} - -func init() { - sql.Register("mysql", &MySQLDriver{}) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/dsn.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/dsn.go deleted file mode 100644 index ac00dced..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/dsn.go +++ /dev/null @@ -1,548 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2016 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "bytes" - "crypto/tls" - "errors" - "fmt" - "net" - "net/url" - "strconv" - "strings" - "time" -) - -var ( - errInvalidDSNUnescaped = errors.New("invalid DSN: did you forget to escape a param value?") - errInvalidDSNAddr = errors.New("invalid DSN: network address not terminated (missing closing brace)") - errInvalidDSNNoSlash = errors.New("invalid DSN: missing the slash separating the database name") - errInvalidDSNUnsafeCollation = errors.New("invalid DSN: interpolateParams can not be used with unsafe collations") -) - -// Config is a configuration parsed from a DSN string -type Config struct { - User string // Username - Passwd string // Password (requires User) - Net string // Network type - Addr string // Network address (requires Net) - DBName string // Database name - Params map[string]string // Connection parameters - Collation string // Connection collation - Loc *time.Location // Location for time.Time values - MaxAllowedPacket int // Max packet size allowed - TLSConfig string // TLS configuration name - tls *tls.Config // TLS configuration - Timeout time.Duration // Dial timeout - ReadTimeout time.Duration // I/O read timeout - WriteTimeout time.Duration // I/O write timeout - - AllowAllFiles bool // Allow all files to be used with LOAD DATA LOCAL INFILE - AllowCleartextPasswords bool // Allows the cleartext client side plugin - AllowNativePasswords bool // Allows the native password authentication method - AllowOldPasswords bool // Allows the old insecure password method - ClientFoundRows bool // Return number of matching rows instead of rows changed - ColumnsWithAlias bool // Prepend table alias to column names - InterpolateParams bool // Interpolate placeholders into query string - MultiStatements bool // Allow multiple statements in one query - ParseTime bool // Parse time values to time.Time - Strict bool // Return warnings as errors -} - -// FormatDSN formats the given Config into a DSN string which can be passed to -// the driver. -func (cfg *Config) FormatDSN() string { - var buf bytes.Buffer - - // [username[:password]@] - if len(cfg.User) > 0 { - buf.WriteString(cfg.User) - if len(cfg.Passwd) > 0 { - buf.WriteByte(':') - buf.WriteString(cfg.Passwd) - } - buf.WriteByte('@') - } - - // [protocol[(address)]] - if len(cfg.Net) > 0 { - buf.WriteString(cfg.Net) - if len(cfg.Addr) > 0 { - buf.WriteByte('(') - buf.WriteString(cfg.Addr) - buf.WriteByte(')') - } - } - - // /dbname - buf.WriteByte('/') - buf.WriteString(cfg.DBName) - - // [?param1=value1&...¶mN=valueN] - hasParam := false - - if cfg.AllowAllFiles { - hasParam = true - buf.WriteString("?allowAllFiles=true") - } - - if cfg.AllowCleartextPasswords { - if hasParam { - buf.WriteString("&allowCleartextPasswords=true") - } else { - hasParam = true - buf.WriteString("?allowCleartextPasswords=true") - } - } - - if cfg.AllowNativePasswords { - if hasParam { - buf.WriteString("&allowNativePasswords=true") - } else { - hasParam = true - buf.WriteString("?allowNativePasswords=true") - } - } - - if cfg.AllowOldPasswords { - if hasParam { - buf.WriteString("&allowOldPasswords=true") - } else { - hasParam = true - buf.WriteString("?allowOldPasswords=true") - } - } - - if cfg.ClientFoundRows { - if hasParam { - buf.WriteString("&clientFoundRows=true") - } else { - hasParam = true - buf.WriteString("?clientFoundRows=true") - } - } - - if col := cfg.Collation; col != defaultCollation && len(col) > 0 { - if hasParam { - buf.WriteString("&collation=") - } else { - hasParam = true - buf.WriteString("?collation=") - } - buf.WriteString(col) - } - - if cfg.ColumnsWithAlias { - if hasParam { - buf.WriteString("&columnsWithAlias=true") - } else { - hasParam = true - buf.WriteString("?columnsWithAlias=true") - } - } - - if cfg.InterpolateParams { - if hasParam { - buf.WriteString("&interpolateParams=true") - } else { - hasParam = true - buf.WriteString("?interpolateParams=true") - } - } - - if cfg.Loc != time.UTC && cfg.Loc != nil { - if hasParam { - buf.WriteString("&loc=") - } else { - hasParam = true - buf.WriteString("?loc=") - } - buf.WriteString(url.QueryEscape(cfg.Loc.String())) - } - - if cfg.MultiStatements { - if hasParam { - buf.WriteString("&multiStatements=true") - } else { - hasParam = true - buf.WriteString("?multiStatements=true") - } - } - - if cfg.ParseTime { - if hasParam { - buf.WriteString("&parseTime=true") - } else { - hasParam = true - buf.WriteString("?parseTime=true") - } - } - - if cfg.ReadTimeout > 0 { - if hasParam { - buf.WriteString("&readTimeout=") - } else { - hasParam = true - buf.WriteString("?readTimeout=") - } - buf.WriteString(cfg.ReadTimeout.String()) - } - - if cfg.Strict { - if hasParam { - buf.WriteString("&strict=true") - } else { - hasParam = true - buf.WriteString("?strict=true") - } - } - - if cfg.Timeout > 0 { - if hasParam { - buf.WriteString("&timeout=") - } else { - hasParam = true - buf.WriteString("?timeout=") - } - buf.WriteString(cfg.Timeout.String()) - } - - if len(cfg.TLSConfig) > 0 { - if hasParam { - buf.WriteString("&tls=") - } else { - hasParam = true - buf.WriteString("?tls=") - } - buf.WriteString(url.QueryEscape(cfg.TLSConfig)) - } - - if cfg.WriteTimeout > 0 { - if hasParam { - buf.WriteString("&writeTimeout=") - } else { - hasParam = true - buf.WriteString("?writeTimeout=") - } - buf.WriteString(cfg.WriteTimeout.String()) - } - - if cfg.MaxAllowedPacket > 0 { - if hasParam { - buf.WriteString("&maxAllowedPacket=") - } else { - hasParam = true - buf.WriteString("?maxAllowedPacket=") - } - buf.WriteString(strconv.Itoa(cfg.MaxAllowedPacket)) - - } - - // other params - if cfg.Params != nil { - for param, value := range cfg.Params { - if hasParam { - buf.WriteByte('&') - } else { - hasParam = true - buf.WriteByte('?') - } - - buf.WriteString(param) - buf.WriteByte('=') - buf.WriteString(url.QueryEscape(value)) - } - } - - return buf.String() -} - -// ParseDSN parses the DSN string to a Config -func ParseDSN(dsn string) (cfg *Config, err error) { - // New config with some default values - cfg = &Config{ - Loc: time.UTC, - Collation: defaultCollation, - } - - // [user[:password]@][net[(addr)]]/dbname[?param1=value1¶mN=valueN] - // Find the last '/' (since the password or the net addr might contain a '/') - foundSlash := false - for i := len(dsn) - 1; i >= 0; i-- { - if dsn[i] == '/' { - foundSlash = true - var j, k int - - // left part is empty if i <= 0 - if i > 0 { - // [username[:password]@][protocol[(address)]] - // Find the last '@' in dsn[:i] - for j = i; j >= 0; j-- { - if dsn[j] == '@' { - // username[:password] - // Find the first ':' in dsn[:j] - for k = 0; k < j; k++ { - if dsn[k] == ':' { - cfg.Passwd = dsn[k+1 : j] - break - } - } - cfg.User = dsn[:k] - - break - } - } - - // [protocol[(address)]] - // Find the first '(' in dsn[j+1:i] - for k = j + 1; k < i; k++ { - if dsn[k] == '(' { - // dsn[i-1] must be == ')' if an address is specified - if dsn[i-1] != ')' { - if strings.ContainsRune(dsn[k+1:i], ')') { - return nil, errInvalidDSNUnescaped - } - return nil, errInvalidDSNAddr - } - cfg.Addr = dsn[k+1 : i-1] - break - } - } - cfg.Net = dsn[j+1 : k] - } - - // dbname[?param1=value1&...¶mN=valueN] - // Find the first '?' in dsn[i+1:] - for j = i + 1; j < len(dsn); j++ { - if dsn[j] == '?' { - if err = parseDSNParams(cfg, dsn[j+1:]); err != nil { - return - } - break - } - } - cfg.DBName = dsn[i+1 : j] - - break - } - } - - if !foundSlash && len(dsn) > 0 { - return nil, errInvalidDSNNoSlash - } - - if cfg.InterpolateParams && unsafeCollations[cfg.Collation] { - return nil, errInvalidDSNUnsafeCollation - } - - // Set default network if empty - if cfg.Net == "" { - cfg.Net = "tcp" - } - - // Set default address if empty - if cfg.Addr == "" { - switch cfg.Net { - case "tcp": - cfg.Addr = "127.0.0.1:3306" - case "unix": - cfg.Addr = "/tmp/mysql.sock" - default: - return nil, errors.New("default addr for network '" + cfg.Net + "' unknown") - } - - } - - return -} - -// parseDSNParams parses the DSN "query string" -// Values must be url.QueryEscape'ed -func parseDSNParams(cfg *Config, params string) (err error) { - for _, v := range strings.Split(params, "&") { - param := strings.SplitN(v, "=", 2) - if len(param) != 2 { - continue - } - - // cfg params - switch value := param[1]; param[0] { - - // Disable INFILE whitelist / enable all files - case "allowAllFiles": - var isBool bool - cfg.AllowAllFiles, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Use cleartext authentication mode (MySQL 5.5.10+) - case "allowCleartextPasswords": - var isBool bool - cfg.AllowCleartextPasswords, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Use native password authentication - case "allowNativePasswords": - var isBool bool - cfg.AllowNativePasswords, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Use old authentication mode (pre MySQL 4.1) - case "allowOldPasswords": - var isBool bool - cfg.AllowOldPasswords, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Switch "rowsAffected" mode - case "clientFoundRows": - var isBool bool - cfg.ClientFoundRows, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Collation - case "collation": - cfg.Collation = value - break - - case "columnsWithAlias": - var isBool bool - cfg.ColumnsWithAlias, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Compression - case "compress": - return errors.New("compression not implemented yet") - - // Enable client side placeholder substitution - case "interpolateParams": - var isBool bool - cfg.InterpolateParams, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Time Location - case "loc": - if value, err = url.QueryUnescape(value); err != nil { - return - } - cfg.Loc, err = time.LoadLocation(value) - if err != nil { - return - } - - // multiple statements in one query - case "multiStatements": - var isBool bool - cfg.MultiStatements, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // time.Time parsing - case "parseTime": - var isBool bool - cfg.ParseTime, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // I/O read Timeout - case "readTimeout": - cfg.ReadTimeout, err = time.ParseDuration(value) - if err != nil { - return - } - - // Strict mode - case "strict": - var isBool bool - cfg.Strict, isBool = readBool(value) - if !isBool { - return errors.New("invalid bool value: " + value) - } - - // Dial Timeout - case "timeout": - cfg.Timeout, err = time.ParseDuration(value) - if err != nil { - return - } - - // TLS-Encryption - case "tls": - boolValue, isBool := readBool(value) - if isBool { - if boolValue { - cfg.TLSConfig = "true" - cfg.tls = &tls.Config{} - } else { - cfg.TLSConfig = "false" - } - } else if vl := strings.ToLower(value); vl == "skip-verify" { - cfg.TLSConfig = vl - cfg.tls = &tls.Config{InsecureSkipVerify: true} - } else { - name, err := url.QueryUnescape(value) - if err != nil { - return fmt.Errorf("invalid value for TLS config name: %v", err) - } - - if tlsConfig, ok := tlsConfigRegister[name]; ok { - if len(tlsConfig.ServerName) == 0 && !tlsConfig.InsecureSkipVerify { - host, _, err := net.SplitHostPort(cfg.Addr) - if err == nil { - tlsConfig.ServerName = host - } - } - - cfg.TLSConfig = name - cfg.tls = tlsConfig - } else { - return errors.New("invalid value / unknown config name: " + name) - } - } - - // I/O write Timeout - case "writeTimeout": - cfg.WriteTimeout, err = time.ParseDuration(value) - if err != nil { - return - } - case "maxAllowedPacket": - cfg.MaxAllowedPacket, err = strconv.Atoi(value) - if err != nil { - return - } - default: - // lazy init - if cfg.Params == nil { - cfg.Params = make(map[string]string) - } - - if cfg.Params[param[0]], err = url.QueryUnescape(value); err != nil { - return - } - } - } - - return -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/errors.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/errors.go deleted file mode 100644 index 857854e1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/errors.go +++ /dev/null @@ -1,132 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "database/sql/driver" - "errors" - "fmt" - "io" - "log" - "os" -) - -// Various errors the driver might return. Can change between driver versions. -var ( - ErrInvalidConn = errors.New("invalid connection") - ErrMalformPkt = errors.New("malformed packet") - ErrNoTLS = errors.New("TLS requested but server does not support TLS") - ErrCleartextPassword = errors.New("this user requires clear text authentication. If you still want to use it, please add 'allowCleartextPasswords=1' to your DSN") - ErrNativePassword = errors.New("this user requires mysql native password authentication.") - ErrOldPassword = errors.New("this user requires old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords") - ErrUnknownPlugin = errors.New("this authentication plugin is not supported") - ErrOldProtocol = errors.New("MySQL server does not support required protocol 41+") - ErrPktSync = errors.New("commands out of sync. You can't run this command now") - ErrPktSyncMul = errors.New("commands out of sync. Did you run multiple statements at once?") - ErrPktTooLarge = errors.New("packet for query is too large. Try adjusting the 'max_allowed_packet' variable on the server") - ErrBusyBuffer = errors.New("busy buffer") -) - -var errLog = Logger(log.New(os.Stderr, "[mysql] ", log.Ldate|log.Ltime|log.Lshortfile)) - -// Logger is used to log critical error messages. -type Logger interface { - Print(v ...interface{}) -} - -// SetLogger is used to set the logger for critical errors. -// The initial logger is os.Stderr. -func SetLogger(logger Logger) error { - if logger == nil { - return errors.New("logger is nil") - } - errLog = logger - return nil -} - -// MySQLError is an error type which represents a single MySQL error -type MySQLError struct { - Number uint16 - Message string -} - -func (me *MySQLError) Error() string { - return fmt.Sprintf("Error %d: %s", me.Number, me.Message) -} - -// MySQLWarnings is an error type which represents a group of one or more MySQL -// warnings -type MySQLWarnings []MySQLWarning - -func (mws MySQLWarnings) Error() string { - var msg string - for i, warning := range mws { - if i > 0 { - msg += "\r\n" - } - msg += fmt.Sprintf( - "%s %s: %s", - warning.Level, - warning.Code, - warning.Message, - ) - } - return msg -} - -// MySQLWarning is an error type which represents a single MySQL warning. -// Warnings are returned in groups only. See MySQLWarnings -type MySQLWarning struct { - Level string - Code string - Message string -} - -func (mc *mysqlConn) getWarnings() (err error) { - rows, err := mc.Query("SHOW WARNINGS", nil) - if err != nil { - return - } - - var warnings = MySQLWarnings{} - var values = make([]driver.Value, 3) - - for { - err = rows.Next(values) - switch err { - case nil: - warning := MySQLWarning{} - - if raw, ok := values[0].([]byte); ok { - warning.Level = string(raw) - } else { - warning.Level = fmt.Sprintf("%s", values[0]) - } - if raw, ok := values[1].([]byte); ok { - warning.Code = string(raw) - } else { - warning.Code = fmt.Sprintf("%s", values[1]) - } - if raw, ok := values[2].([]byte); ok { - warning.Message = string(raw) - } else { - warning.Message = fmt.Sprintf("%s", values[0]) - } - - warnings = append(warnings, warning) - - case io.EOF: - return warnings - - default: - rows.Close() - return - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/infile.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/infile.go deleted file mode 100644 index 547357cf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/infile.go +++ /dev/null @@ -1,182 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "fmt" - "io" - "os" - "strings" - "sync" -) - -var ( - fileRegister map[string]bool - fileRegisterLock sync.RWMutex - readerRegister map[string]func() io.Reader - readerRegisterLock sync.RWMutex -) - -// RegisterLocalFile adds the given file to the file whitelist, -// so that it can be used by "LOAD DATA LOCAL INFILE ". -// Alternatively you can allow the use of all local files with -// the DSN parameter 'allowAllFiles=true' -// -// filePath := "/home/gopher/data.csv" -// mysql.RegisterLocalFile(filePath) -// err := db.Exec("LOAD DATA LOCAL INFILE '" + filePath + "' INTO TABLE foo") -// if err != nil { -// ... -// -func RegisterLocalFile(filePath string) { - fileRegisterLock.Lock() - // lazy map init - if fileRegister == nil { - fileRegister = make(map[string]bool) - } - - fileRegister[strings.Trim(filePath, `"`)] = true - fileRegisterLock.Unlock() -} - -// DeregisterLocalFile removes the given filepath from the whitelist. -func DeregisterLocalFile(filePath string) { - fileRegisterLock.Lock() - delete(fileRegister, strings.Trim(filePath, `"`)) - fileRegisterLock.Unlock() -} - -// RegisterReaderHandler registers a handler function which is used -// to receive a io.Reader. -// The Reader can be used by "LOAD DATA LOCAL INFILE Reader::". -// If the handler returns a io.ReadCloser Close() is called when the -// request is finished. -// -// mysql.RegisterReaderHandler("data", func() io.Reader { -// var csvReader io.Reader // Some Reader that returns CSV data -// ... // Open Reader here -// return csvReader -// }) -// err := db.Exec("LOAD DATA LOCAL INFILE 'Reader::data' INTO TABLE foo") -// if err != nil { -// ... -// -func RegisterReaderHandler(name string, handler func() io.Reader) { - readerRegisterLock.Lock() - // lazy map init - if readerRegister == nil { - readerRegister = make(map[string]func() io.Reader) - } - - readerRegister[name] = handler - readerRegisterLock.Unlock() -} - -// DeregisterReaderHandler removes the ReaderHandler function with -// the given name from the registry. -func DeregisterReaderHandler(name string) { - readerRegisterLock.Lock() - delete(readerRegister, name) - readerRegisterLock.Unlock() -} - -func deferredClose(err *error, closer io.Closer) { - closeErr := closer.Close() - if *err == nil { - *err = closeErr - } -} - -func (mc *mysqlConn) handleInFileRequest(name string) (err error) { - var rdr io.Reader - var data []byte - packetSize := 16 * 1024 // 16KB is small enough for disk readahead and large enough for TCP - if mc.maxWriteSize < packetSize { - packetSize = mc.maxWriteSize - } - - if idx := strings.Index(name, "Reader::"); idx == 0 || (idx > 0 && name[idx-1] == '/') { // io.Reader - // The server might return an an absolute path. See issue #355. - name = name[idx+8:] - - readerRegisterLock.RLock() - handler, inMap := readerRegister[name] - readerRegisterLock.RUnlock() - - if inMap { - rdr = handler() - if rdr != nil { - if cl, ok := rdr.(io.Closer); ok { - defer deferredClose(&err, cl) - } - } else { - err = fmt.Errorf("Reader '%s' is ", name) - } - } else { - err = fmt.Errorf("Reader '%s' is not registered", name) - } - } else { // File - name = strings.Trim(name, `"`) - fileRegisterLock.RLock() - fr := fileRegister[name] - fileRegisterLock.RUnlock() - if mc.cfg.AllowAllFiles || fr { - var file *os.File - var fi os.FileInfo - - if file, err = os.Open(name); err == nil { - defer deferredClose(&err, file) - - // get file size - if fi, err = file.Stat(); err == nil { - rdr = file - if fileSize := int(fi.Size()); fileSize < packetSize { - packetSize = fileSize - } - } - } - } else { - err = fmt.Errorf("local file '%s' is not registered", name) - } - } - - // send content packets - if err == nil { - data := make([]byte, 4+packetSize) - var n int - for err == nil { - n, err = rdr.Read(data[4:]) - if n > 0 { - if ioErr := mc.writePacket(data[:4+n]); ioErr != nil { - return ioErr - } - } - } - if err == io.EOF { - err = nil - } - } - - // send empty packet (termination) - if data == nil { - data = make([]byte, 4) - } - if ioErr := mc.writePacket(data[:4]); ioErr != nil { - return ioErr - } - - // read OK packet - if err == nil { - _, err = mc.readResultOK() - return err - } - - mc.readPacket() - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/packets.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/packets.go deleted file mode 100644 index 41b4d3d5..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/packets.go +++ /dev/null @@ -1,1281 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "bytes" - "crypto/tls" - "database/sql/driver" - "encoding/binary" - "errors" - "fmt" - "io" - "math" - "time" -) - -// Packets documentation: -// http://dev.mysql.com/doc/internals/en/client-server-protocol.html - -// Read packet to buffer 'data' -func (mc *mysqlConn) readPacket() ([]byte, error) { - var prevData []byte - for { - // read packet header - data, err := mc.buf.readNext(4) - if err != nil { - errLog.Print(err) - mc.Close() - return nil, driver.ErrBadConn - } - - // packet length [24 bit] - pktLen := int(uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16) - - // check packet sync [8 bit] - if data[3] != mc.sequence { - if data[3] > mc.sequence { - return nil, ErrPktSyncMul - } - return nil, ErrPktSync - } - mc.sequence++ - - // packets with length 0 terminate a previous packet which is a - // multiple of (2^24)−1 bytes long - if pktLen == 0 { - // there was no previous packet - if prevData == nil { - errLog.Print(ErrMalformPkt) - mc.Close() - return nil, driver.ErrBadConn - } - - return prevData, nil - } - - // read packet body [pktLen bytes] - data, err = mc.buf.readNext(pktLen) - if err != nil { - errLog.Print(err) - mc.Close() - return nil, driver.ErrBadConn - } - - // return data if this was the last packet - if pktLen < maxPacketSize { - // zero allocations for non-split packets - if prevData == nil { - return data, nil - } - - return append(prevData, data...), nil - } - - prevData = append(prevData, data...) - } -} - -// Write packet buffer 'data' -func (mc *mysqlConn) writePacket(data []byte) error { - pktLen := len(data) - 4 - - if pktLen > mc.maxAllowedPacket { - return ErrPktTooLarge - } - - for { - var size int - if pktLen >= maxPacketSize { - data[0] = 0xff - data[1] = 0xff - data[2] = 0xff - size = maxPacketSize - } else { - data[0] = byte(pktLen) - data[1] = byte(pktLen >> 8) - data[2] = byte(pktLen >> 16) - size = pktLen - } - data[3] = mc.sequence - - // Write packet - if mc.writeTimeout > 0 { - if err := mc.netConn.SetWriteDeadline(time.Now().Add(mc.writeTimeout)); err != nil { - return err - } - } - - n, err := mc.netConn.Write(data[:4+size]) - if err == nil && n == 4+size { - mc.sequence++ - if size != maxPacketSize { - return nil - } - pktLen -= size - data = data[size:] - continue - } - - // Handle error - if err == nil { // n != len(data) - errLog.Print(ErrMalformPkt) - } else { - errLog.Print(err) - } - return driver.ErrBadConn - } -} - -/****************************************************************************** -* Initialisation Process * -******************************************************************************/ - -// Handshake Initialization Packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::Handshake -func (mc *mysqlConn) readInitPacket() ([]byte, error) { - data, err := mc.readPacket() - if err != nil { - return nil, err - } - - if data[0] == iERR { - return nil, mc.handleErrorPacket(data) - } - - // protocol version [1 byte] - if data[0] < minProtocolVersion { - return nil, fmt.Errorf( - "unsupported protocol version %d. Version %d or higher is required", - data[0], - minProtocolVersion, - ) - } - - // server version [null terminated string] - // connection id [4 bytes] - pos := 1 + bytes.IndexByte(data[1:], 0x00) + 1 + 4 - - // first part of the password cipher [8 bytes] - cipher := data[pos : pos+8] - - // (filler) always 0x00 [1 byte] - pos += 8 + 1 - - // capability flags (lower 2 bytes) [2 bytes] - mc.flags = clientFlag(binary.LittleEndian.Uint16(data[pos : pos+2])) - if mc.flags&clientProtocol41 == 0 { - return nil, ErrOldProtocol - } - if mc.flags&clientSSL == 0 && mc.cfg.tls != nil { - return nil, ErrNoTLS - } - pos += 2 - - if len(data) > pos { - // character set [1 byte] - // status flags [2 bytes] - // capability flags (upper 2 bytes) [2 bytes] - // length of auth-plugin-data [1 byte] - // reserved (all [00]) [10 bytes] - pos += 1 + 2 + 2 + 1 + 10 - - // second part of the password cipher [mininum 13 bytes], - // where len=MAX(13, length of auth-plugin-data - 8) - // - // The web documentation is ambiguous about the length. However, - // according to mysql-5.7/sql/auth/sql_authentication.cc line 538, - // the 13th byte is "\0 byte, terminating the second part of - // a scramble". So the second part of the password cipher is - // a NULL terminated string that's at least 13 bytes with the - // last byte being NULL. - // - // The official Python library uses the fixed length 12 - // which seems to work but technically could have a hidden bug. - cipher = append(cipher, data[pos:pos+12]...) - - // TODO: Verify string termination - // EOF if version (>= 5.5.7 and < 5.5.10) or (>= 5.6.0 and < 5.6.2) - // \NUL otherwise - // - //if data[len(data)-1] == 0 { - // return - //} - //return ErrMalformPkt - - // make a memory safe copy of the cipher slice - var b [20]byte - copy(b[:], cipher) - return b[:], nil - } - - // make a memory safe copy of the cipher slice - var b [8]byte - copy(b[:], cipher) - return b[:], nil -} - -// Client Authentication Packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeResponse -func (mc *mysqlConn) writeAuthPacket(cipher []byte) error { - // Adjust client flags based on server support - clientFlags := clientProtocol41 | - clientSecureConn | - clientLongPassword | - clientTransactions | - clientLocalFiles | - clientPluginAuth | - clientMultiResults | - mc.flags&clientLongFlag - - if mc.cfg.ClientFoundRows { - clientFlags |= clientFoundRows - } - - // To enable TLS / SSL - if mc.cfg.tls != nil { - clientFlags |= clientSSL - } - - if mc.cfg.MultiStatements { - clientFlags |= clientMultiStatements - } - - // User Password - scrambleBuff := scramblePassword(cipher, []byte(mc.cfg.Passwd)) - - pktLen := 4 + 4 + 1 + 23 + len(mc.cfg.User) + 1 + 1 + len(scrambleBuff) + 21 + 1 - - // To specify a db name - if n := len(mc.cfg.DBName); n > 0 { - clientFlags |= clientConnectWithDB - pktLen += n + 1 - } - - // Calculate packet length and get buffer with that size - data := mc.buf.takeSmallBuffer(pktLen + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // ClientFlags [32 bit] - data[4] = byte(clientFlags) - data[5] = byte(clientFlags >> 8) - data[6] = byte(clientFlags >> 16) - data[7] = byte(clientFlags >> 24) - - // MaxPacketSize [32 bit] (none) - data[8] = 0x00 - data[9] = 0x00 - data[10] = 0x00 - data[11] = 0x00 - - // Charset [1 byte] - var found bool - data[12], found = collations[mc.cfg.Collation] - if !found { - // Note possibility for false negatives: - // could be triggered although the collation is valid if the - // collations map does not contain entries the server supports. - return errors.New("unknown collation") - } - - // SSL Connection Request Packet - // http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::SSLRequest - if mc.cfg.tls != nil { - // Send TLS / SSL request packet - if err := mc.writePacket(data[:(4+4+1+23)+4]); err != nil { - return err - } - - // Switch to TLS - tlsConn := tls.Client(mc.netConn, mc.cfg.tls) - if err := tlsConn.Handshake(); err != nil { - return err - } - mc.netConn = tlsConn - mc.buf.nc = tlsConn - } - - // Filler [23 bytes] (all 0x00) - pos := 13 - for ; pos < 13+23; pos++ { - data[pos] = 0 - } - - // User [null terminated string] - if len(mc.cfg.User) > 0 { - pos += copy(data[pos:], mc.cfg.User) - } - data[pos] = 0x00 - pos++ - - // ScrambleBuffer [length encoded integer] - data[pos] = byte(len(scrambleBuff)) - pos += 1 + copy(data[pos+1:], scrambleBuff) - - // Databasename [null terminated string] - if len(mc.cfg.DBName) > 0 { - pos += copy(data[pos:], mc.cfg.DBName) - data[pos] = 0x00 - pos++ - } - - // Assume native client during response - pos += copy(data[pos:], "mysql_native_password") - data[pos] = 0x00 - - // Send Auth packet - return mc.writePacket(data) -} - -// Client old authentication packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse -func (mc *mysqlConn) writeOldAuthPacket(cipher []byte) error { - // User password - scrambleBuff := scrambleOldPassword(cipher, []byte(mc.cfg.Passwd)) - - // Calculate the packet length and add a tailing 0 - pktLen := len(scrambleBuff) + 1 - data := mc.buf.takeSmallBuffer(4 + pktLen) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add the scrambled password [null terminated string] - copy(data[4:], scrambleBuff) - data[4+pktLen-1] = 0x00 - - return mc.writePacket(data) -} - -// Client clear text authentication packet -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse -func (mc *mysqlConn) writeClearAuthPacket() error { - // Calculate the packet length and add a tailing 0 - pktLen := len(mc.cfg.Passwd) + 1 - data := mc.buf.takeSmallBuffer(4 + pktLen) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add the clear password [null terminated string] - copy(data[4:], mc.cfg.Passwd) - data[4+pktLen-1] = 0x00 - - return mc.writePacket(data) -} - -// Native password authentication method -// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse -func (mc *mysqlConn) writeNativeAuthPacket(cipher []byte) error { - scrambleBuff := scramblePassword(cipher, []byte(mc.cfg.Passwd)) - - // Calculate the packet length and add a tailing 0 - pktLen := len(scrambleBuff) - data := mc.buf.takeSmallBuffer(4 + pktLen) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add the scramble - copy(data[4:], scrambleBuff) - - return mc.writePacket(data) -} - -/****************************************************************************** -* Command Packets * -******************************************************************************/ - -func (mc *mysqlConn) writeCommandPacket(command byte) error { - // Reset Packet Sequence - mc.sequence = 0 - - data := mc.buf.takeSmallBuffer(4 + 1) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Send CMD packet - return mc.writePacket(data) -} - -func (mc *mysqlConn) writeCommandPacketStr(command byte, arg string) error { - // Reset Packet Sequence - mc.sequence = 0 - - pktLen := 1 + len(arg) - data := mc.buf.takeBuffer(pktLen + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Add arg - copy(data[5:], arg) - - // Send CMD packet - return mc.writePacket(data) -} - -func (mc *mysqlConn) writeCommandPacketUint32(command byte, arg uint32) error { - // Reset Packet Sequence - mc.sequence = 0 - - data := mc.buf.takeSmallBuffer(4 + 1 + 4) - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // Add command byte - data[4] = command - - // Add arg [32 bit] - data[5] = byte(arg) - data[6] = byte(arg >> 8) - data[7] = byte(arg >> 16) - data[8] = byte(arg >> 24) - - // Send CMD packet - return mc.writePacket(data) -} - -/****************************************************************************** -* Result Packets * -******************************************************************************/ - -// Returns error if Packet is not an 'Result OK'-Packet -func (mc *mysqlConn) readResultOK() ([]byte, error) { - data, err := mc.readPacket() - if err == nil { - // packet indicator - switch data[0] { - - case iOK: - return nil, mc.handleOkPacket(data) - - case iEOF: - if len(data) > 1 { - pluginEndIndex := bytes.IndexByte(data, 0x00) - plugin := string(data[1:pluginEndIndex]) - cipher := data[pluginEndIndex+1 : len(data)-1] - - if plugin == "mysql_old_password" { - // using old_passwords - return cipher, ErrOldPassword - } else if plugin == "mysql_clear_password" { - // using clear text password - return cipher, ErrCleartextPassword - } else if plugin == "mysql_native_password" { - // using mysql default authentication method - return cipher, ErrNativePassword - } else { - return cipher, ErrUnknownPlugin - } - } else { - // https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::OldAuthSwitchRequest - return nil, ErrOldPassword - } - - default: // Error otherwise - return nil, mc.handleErrorPacket(data) - } - } - return nil, err -} - -// Result Set Header Packet -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::Resultset -func (mc *mysqlConn) readResultSetHeaderPacket() (int, error) { - data, err := mc.readPacket() - if err == nil { - switch data[0] { - - case iOK: - return 0, mc.handleOkPacket(data) - - case iERR: - return 0, mc.handleErrorPacket(data) - - case iLocalInFile: - return 0, mc.handleInFileRequest(string(data[1:])) - } - - // column count - num, _, n := readLengthEncodedInteger(data) - if n-len(data) == 0 { - return int(num), nil - } - - return 0, ErrMalformPkt - } - return 0, err -} - -// Error Packet -// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-ERR_Packet -func (mc *mysqlConn) handleErrorPacket(data []byte) error { - if data[0] != iERR { - return ErrMalformPkt - } - - // 0xff [1 byte] - - // Error Number [16 bit uint] - errno := binary.LittleEndian.Uint16(data[1:3]) - - pos := 3 - - // SQL State [optional: # + 5bytes string] - if data[3] == 0x23 { - //sqlstate := string(data[4 : 4+5]) - pos = 9 - } - - // Error Message [string] - return &MySQLError{ - Number: errno, - Message: string(data[pos:]), - } -} - -func readStatus(b []byte) statusFlag { - return statusFlag(b[0]) | statusFlag(b[1])<<8 -} - -// Ok Packet -// http://dev.mysql.com/doc/internals/en/generic-response-packets.html#packet-OK_Packet -func (mc *mysqlConn) handleOkPacket(data []byte) error { - var n, m int - - // 0x00 [1 byte] - - // Affected rows [Length Coded Binary] - mc.affectedRows, _, n = readLengthEncodedInteger(data[1:]) - - // Insert id [Length Coded Binary] - mc.insertId, _, m = readLengthEncodedInteger(data[1+n:]) - - // server_status [2 bytes] - mc.status = readStatus(data[1+n+m : 1+n+m+2]) - if mc.status&statusMoreResultsExists != 0 { - return nil - } - - // warning count [2 bytes] - if !mc.strict { - return nil - } - - pos := 1 + n + m + 2 - if binary.LittleEndian.Uint16(data[pos:pos+2]) > 0 { - return mc.getWarnings() - } - return nil -} - -// Read Packets as Field Packets until EOF-Packet or an Error appears -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-Protocol::ColumnDefinition41 -func (mc *mysqlConn) readColumns(count int) ([]mysqlField, error) { - columns := make([]mysqlField, count) - - for i := 0; ; i++ { - data, err := mc.readPacket() - if err != nil { - return nil, err - } - - // EOF Packet - if data[0] == iEOF && (len(data) == 5 || len(data) == 1) { - if i == count { - return columns, nil - } - return nil, fmt.Errorf("column count mismatch n:%d len:%d", count, len(columns)) - } - - // Catalog - pos, err := skipLengthEncodedString(data) - if err != nil { - return nil, err - } - - // Database [len coded string] - n, err := skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - - // Table [len coded string] - if mc.cfg.ColumnsWithAlias { - tableName, _, n, err := readLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - columns[i].tableName = string(tableName) - } else { - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - } - - // Original table [len coded string] - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - pos += n - - // Name [len coded string] - name, _, n, err := readLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - columns[i].name = string(name) - pos += n - - // Original name [len coded string] - n, err = skipLengthEncodedString(data[pos:]) - if err != nil { - return nil, err - } - - // Filler [uint8] - // Charset [charset, collation uint8] - // Length [uint32] - pos += n + 1 + 2 + 4 - - // Field type [uint8] - columns[i].fieldType = data[pos] - pos++ - - // Flags [uint16] - columns[i].flags = fieldFlag(binary.LittleEndian.Uint16(data[pos : pos+2])) - pos += 2 - - // Decimals [uint8] - columns[i].decimals = data[pos] - //pos++ - - // Default value [len coded binary] - //if pos < len(data) { - // defaultVal, _, err = bytesToLengthCodedBinary(data[pos:]) - //} - } -} - -// Read Packets as Field Packets until EOF-Packet or an Error appears -// http://dev.mysql.com/doc/internals/en/com-query-response.html#packet-ProtocolText::ResultsetRow -func (rows *textRows) readRow(dest []driver.Value) error { - mc := rows.mc - - if rows.rs.done { - return io.EOF - } - - data, err := mc.readPacket() - if err != nil { - return err - } - - // EOF Packet - if data[0] == iEOF && len(data) == 5 { - // server_status [2 bytes] - rows.mc.status = readStatus(data[3:]) - rows.rs.done = true - if !rows.HasNextResultSet() { - rows.mc = nil - } - return io.EOF - } - if data[0] == iERR { - rows.mc = nil - return mc.handleErrorPacket(data) - } - - // RowSet Packet - var n int - var isNull bool - pos := 0 - - for i := range dest { - // Read bytes and convert to string - dest[i], isNull, n, err = readLengthEncodedString(data[pos:]) - pos += n - if err == nil { - if !isNull { - if !mc.parseTime { - continue - } else { - switch rows.rs.columns[i].fieldType { - case fieldTypeTimestamp, fieldTypeDateTime, - fieldTypeDate, fieldTypeNewDate: - dest[i], err = parseDateTime( - string(dest[i].([]byte)), - mc.cfg.Loc, - ) - if err == nil { - continue - } - default: - continue - } - } - - } else { - dest[i] = nil - continue - } - } - return err // err != nil - } - - return nil -} - -// Reads Packets until EOF-Packet or an Error appears. Returns count of Packets read -func (mc *mysqlConn) readUntilEOF() error { - for { - data, err := mc.readPacket() - if err != nil { - return err - } - - switch data[0] { - case iERR: - return mc.handleErrorPacket(data) - case iEOF: - if len(data) == 5 { - mc.status = readStatus(data[3:]) - } - return nil - } - } -} - -/****************************************************************************** -* Prepared Statements * -******************************************************************************/ - -// Prepare Result Packets -// http://dev.mysql.com/doc/internals/en/com-stmt-prepare-response.html -func (stmt *mysqlStmt) readPrepareResultPacket() (uint16, error) { - data, err := stmt.mc.readPacket() - if err == nil { - // packet indicator [1 byte] - if data[0] != iOK { - return 0, stmt.mc.handleErrorPacket(data) - } - - // statement id [4 bytes] - stmt.id = binary.LittleEndian.Uint32(data[1:5]) - - // Column count [16 bit uint] - columnCount := binary.LittleEndian.Uint16(data[5:7]) - - // Param count [16 bit uint] - stmt.paramCount = int(binary.LittleEndian.Uint16(data[7:9])) - - // Reserved [8 bit] - - // Warning count [16 bit uint] - if !stmt.mc.strict { - return columnCount, nil - } - - // Check for warnings count > 0, only available in MySQL > 4.1 - if len(data) >= 12 && binary.LittleEndian.Uint16(data[10:12]) > 0 { - return columnCount, stmt.mc.getWarnings() - } - return columnCount, nil - } - return 0, err -} - -// http://dev.mysql.com/doc/internals/en/com-stmt-send-long-data.html -func (stmt *mysqlStmt) writeCommandLongData(paramID int, arg []byte) error { - maxLen := stmt.mc.maxAllowedPacket - 1 - pktLen := maxLen - - // After the header (bytes 0-3) follows before the data: - // 1 byte command - // 4 bytes stmtID - // 2 bytes paramID - const dataOffset = 1 + 4 + 2 - - // Can not use the write buffer since - // a) the buffer is too small - // b) it is in use - data := make([]byte, 4+1+4+2+len(arg)) - - copy(data[4+dataOffset:], arg) - - for argLen := len(arg); argLen > 0; argLen -= pktLen - dataOffset { - if dataOffset+argLen < maxLen { - pktLen = dataOffset + argLen - } - - stmt.mc.sequence = 0 - // Add command byte [1 byte] - data[4] = comStmtSendLongData - - // Add stmtID [32 bit] - data[5] = byte(stmt.id) - data[6] = byte(stmt.id >> 8) - data[7] = byte(stmt.id >> 16) - data[8] = byte(stmt.id >> 24) - - // Add paramID [16 bit] - data[9] = byte(paramID) - data[10] = byte(paramID >> 8) - - // Send CMD packet - err := stmt.mc.writePacket(data[:4+pktLen]) - if err == nil { - data = data[pktLen-dataOffset:] - continue - } - return err - - } - - // Reset Packet Sequence - stmt.mc.sequence = 0 - return nil -} - -// Execute Prepared Statement -// http://dev.mysql.com/doc/internals/en/com-stmt-execute.html -func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error { - if len(args) != stmt.paramCount { - return fmt.Errorf( - "argument count mismatch (got: %d; has: %d)", - len(args), - stmt.paramCount, - ) - } - - const minPktLen = 4 + 1 + 4 + 1 + 4 - mc := stmt.mc - - // Reset packet-sequence - mc.sequence = 0 - - var data []byte - - if len(args) == 0 { - data = mc.buf.takeBuffer(minPktLen) - } else { - data = mc.buf.takeCompleteBuffer() - } - if data == nil { - // can not take the buffer. Something must be wrong with the connection - errLog.Print(ErrBusyBuffer) - return driver.ErrBadConn - } - - // command [1 byte] - data[4] = comStmtExecute - - // statement_id [4 bytes] - data[5] = byte(stmt.id) - data[6] = byte(stmt.id >> 8) - data[7] = byte(stmt.id >> 16) - data[8] = byte(stmt.id >> 24) - - // flags (0: CURSOR_TYPE_NO_CURSOR) [1 byte] - data[9] = 0x00 - - // iteration_count (uint32(1)) [4 bytes] - data[10] = 0x01 - data[11] = 0x00 - data[12] = 0x00 - data[13] = 0x00 - - if len(args) > 0 { - pos := minPktLen - - var nullMask []byte - if maskLen, typesLen := (len(args)+7)/8, 1+2*len(args); pos+maskLen+typesLen >= len(data) { - // buffer has to be extended but we don't know by how much so - // we depend on append after all data with known sizes fit. - // We stop at that because we deal with a lot of columns here - // which makes the required allocation size hard to guess. - tmp := make([]byte, pos+maskLen+typesLen) - copy(tmp[:pos], data[:pos]) - data = tmp - nullMask = data[pos : pos+maskLen] - pos += maskLen - } else { - nullMask = data[pos : pos+maskLen] - for i := 0; i < maskLen; i++ { - nullMask[i] = 0 - } - pos += maskLen - } - - // newParameterBoundFlag 1 [1 byte] - data[pos] = 0x01 - pos++ - - // type of each parameter [len(args)*2 bytes] - paramTypes := data[pos:] - pos += len(args) * 2 - - // value of each parameter [n bytes] - paramValues := data[pos:pos] - valuesCap := cap(paramValues) - - for i, arg := range args { - // build NULL-bitmap - if arg == nil { - nullMask[i/8] |= 1 << (uint(i) & 7) - paramTypes[i+i] = fieldTypeNULL - paramTypes[i+i+1] = 0x00 - continue - } - - // cache types and values - switch v := arg.(type) { - case int64: - paramTypes[i+i] = fieldTypeLongLong - paramTypes[i+i+1] = 0x00 - - if cap(paramValues)-len(paramValues)-8 >= 0 { - paramValues = paramValues[:len(paramValues)+8] - binary.LittleEndian.PutUint64( - paramValues[len(paramValues)-8:], - uint64(v), - ) - } else { - paramValues = append(paramValues, - uint64ToBytes(uint64(v))..., - ) - } - - case float64: - paramTypes[i+i] = fieldTypeDouble - paramTypes[i+i+1] = 0x00 - - if cap(paramValues)-len(paramValues)-8 >= 0 { - paramValues = paramValues[:len(paramValues)+8] - binary.LittleEndian.PutUint64( - paramValues[len(paramValues)-8:], - math.Float64bits(v), - ) - } else { - paramValues = append(paramValues, - uint64ToBytes(math.Float64bits(v))..., - ) - } - - case bool: - paramTypes[i+i] = fieldTypeTiny - paramTypes[i+i+1] = 0x00 - - if v { - paramValues = append(paramValues, 0x01) - } else { - paramValues = append(paramValues, 0x00) - } - - case []byte: - // Common case (non-nil value) first - if v != nil { - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - if len(v) < mc.maxAllowedPacket-pos-len(paramValues)-(len(args)-(i+1))*64 { - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(v)), - ) - paramValues = append(paramValues, v...) - } else { - if err := stmt.writeCommandLongData(i, v); err != nil { - return err - } - } - continue - } - - // Handle []byte(nil) as a NULL value - nullMask[i/8] |= 1 << (uint(i) & 7) - paramTypes[i+i] = fieldTypeNULL - paramTypes[i+i+1] = 0x00 - - case string: - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - if len(v) < mc.maxAllowedPacket-pos-len(paramValues)-(len(args)-(i+1))*64 { - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(v)), - ) - paramValues = append(paramValues, v...) - } else { - if err := stmt.writeCommandLongData(i, []byte(v)); err != nil { - return err - } - } - - case time.Time: - paramTypes[i+i] = fieldTypeString - paramTypes[i+i+1] = 0x00 - - var val []byte - if v.IsZero() { - val = []byte("0000-00-00") - } else { - val = []byte(v.In(mc.cfg.Loc).Format(timeFormat)) - } - - paramValues = appendLengthEncodedInteger(paramValues, - uint64(len(val)), - ) - paramValues = append(paramValues, val...) - - default: - return fmt.Errorf("can not convert type: %T", arg) - } - } - - // Check if param values exceeded the available buffer - // In that case we must build the data packet with the new values buffer - if valuesCap != cap(paramValues) { - data = append(data[:pos], paramValues...) - mc.buf.buf = data - } - - pos += len(paramValues) - data = data[:pos] - } - - return mc.writePacket(data) -} - -func (mc *mysqlConn) discardResults() error { - for mc.status&statusMoreResultsExists != 0 { - resLen, err := mc.readResultSetHeaderPacket() - if err != nil { - return err - } - if resLen > 0 { - // columns - if err := mc.readUntilEOF(); err != nil { - return err - } - // rows - if err := mc.readUntilEOF(); err != nil { - return err - } - } - } - return nil -} - -// http://dev.mysql.com/doc/internals/en/binary-protocol-resultset-row.html -func (rows *binaryRows) readRow(dest []driver.Value) error { - data, err := rows.mc.readPacket() - if err != nil { - return err - } - - // packet indicator [1 byte] - if data[0] != iOK { - // EOF Packet - if data[0] == iEOF && len(data) == 5 { - rows.mc.status = readStatus(data[3:]) - rows.rs.done = true - if !rows.HasNextResultSet() { - rows.mc = nil - } - return io.EOF - } - rows.mc = nil - - // Error otherwise - return rows.mc.handleErrorPacket(data) - } - - // NULL-bitmap, [(column-count + 7 + 2) / 8 bytes] - pos := 1 + (len(dest)+7+2)>>3 - nullMask := data[1:pos] - - for i := range dest { - // Field is NULL - // (byte >> bit-pos) % 2 == 1 - if ((nullMask[(i+2)>>3] >> uint((i+2)&7)) & 1) == 1 { - dest[i] = nil - continue - } - - // Convert to byte-coded string - switch rows.rs.columns[i].fieldType { - case fieldTypeNULL: - dest[i] = nil - continue - - // Numeric Types - case fieldTypeTiny: - if rows.rs.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(data[pos]) - } else { - dest[i] = int64(int8(data[pos])) - } - pos++ - continue - - case fieldTypeShort, fieldTypeYear: - if rows.rs.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(binary.LittleEndian.Uint16(data[pos : pos+2])) - } else { - dest[i] = int64(int16(binary.LittleEndian.Uint16(data[pos : pos+2]))) - } - pos += 2 - continue - - case fieldTypeInt24, fieldTypeLong: - if rows.rs.columns[i].flags&flagUnsigned != 0 { - dest[i] = int64(binary.LittleEndian.Uint32(data[pos : pos+4])) - } else { - dest[i] = int64(int32(binary.LittleEndian.Uint32(data[pos : pos+4]))) - } - pos += 4 - continue - - case fieldTypeLongLong: - if rows.rs.columns[i].flags&flagUnsigned != 0 { - val := binary.LittleEndian.Uint64(data[pos : pos+8]) - if val > math.MaxInt64 { - dest[i] = uint64ToString(val) - } else { - dest[i] = int64(val) - } - } else { - dest[i] = int64(binary.LittleEndian.Uint64(data[pos : pos+8])) - } - pos += 8 - continue - - case fieldTypeFloat: - dest[i] = float32(math.Float32frombits(binary.LittleEndian.Uint32(data[pos : pos+4]))) - pos += 4 - continue - - case fieldTypeDouble: - dest[i] = math.Float64frombits(binary.LittleEndian.Uint64(data[pos : pos+8])) - pos += 8 - continue - - // Length coded Binary Strings - case fieldTypeDecimal, fieldTypeNewDecimal, fieldTypeVarChar, - fieldTypeBit, fieldTypeEnum, fieldTypeSet, fieldTypeTinyBLOB, - fieldTypeMediumBLOB, fieldTypeLongBLOB, fieldTypeBLOB, - fieldTypeVarString, fieldTypeString, fieldTypeGeometry, fieldTypeJSON: - var isNull bool - var n int - dest[i], isNull, n, err = readLengthEncodedString(data[pos:]) - pos += n - if err == nil { - if !isNull { - continue - } else { - dest[i] = nil - continue - } - } - return err - - case - fieldTypeDate, fieldTypeNewDate, // Date YYYY-MM-DD - fieldTypeTime, // Time [-][H]HH:MM:SS[.fractal] - fieldTypeTimestamp, fieldTypeDateTime: // Timestamp YYYY-MM-DD HH:MM:SS[.fractal] - - num, isNull, n := readLengthEncodedInteger(data[pos:]) - pos += n - - switch { - case isNull: - dest[i] = nil - continue - case rows.rs.columns[i].fieldType == fieldTypeTime: - // database/sql does not support an equivalent to TIME, return a string - var dstlen uint8 - switch decimals := rows.rs.columns[i].decimals; decimals { - case 0x00, 0x1f: - dstlen = 8 - case 1, 2, 3, 4, 5, 6: - dstlen = 8 + 1 + decimals - default: - return fmt.Errorf( - "protocol error, illegal decimals value %d", - rows.rs.columns[i].decimals, - ) - } - dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, true) - case rows.mc.parseTime: - dest[i], err = parseBinaryDateTime(num, data[pos:], rows.mc.cfg.Loc) - default: - var dstlen uint8 - if rows.rs.columns[i].fieldType == fieldTypeDate { - dstlen = 10 - } else { - switch decimals := rows.rs.columns[i].decimals; decimals { - case 0x00, 0x1f: - dstlen = 19 - case 1, 2, 3, 4, 5, 6: - dstlen = 19 + 1 + decimals - default: - return fmt.Errorf( - "protocol error, illegal decimals value %d", - rows.rs.columns[i].decimals, - ) - } - } - dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, false) - } - - if err == nil { - pos += int(num) - continue - } else { - return err - } - - // Please report if this happens! - default: - return fmt.Errorf("unknown field type %d", rows.rs.columns[i].fieldType) - } - } - - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/result.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/result.go deleted file mode 100644 index c6438d03..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/result.go +++ /dev/null @@ -1,22 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -type mysqlResult struct { - affectedRows int64 - insertId int64 -} - -func (res *mysqlResult) LastInsertId() (int64, error) { - return res.insertId, nil -} - -func (res *mysqlResult) RowsAffected() (int64, error) { - return res.affectedRows, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/rows.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/rows.go deleted file mode 100644 index 900f548a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/rows.go +++ /dev/null @@ -1,188 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "database/sql/driver" - "io" -) - -type mysqlField struct { - tableName string - name string - flags fieldFlag - fieldType byte - decimals byte -} - -type resultSet struct { - columns []mysqlField - done bool -} - -type mysqlRows struct { - mc *mysqlConn - rs resultSet -} - -type binaryRows struct { - mysqlRows - // stmtCols is a pointer to the statement's cached columns for different - // result sets. - stmtCols *[][]mysqlField - // i is a number of the current result set. It is used to fetch proper - // columns from stmtCols. - i int -} - -type textRows struct { - mysqlRows -} - -func (rows *mysqlRows) Columns() []string { - columns := make([]string, len(rows.rs.columns)) - if rows.mc != nil && rows.mc.cfg.ColumnsWithAlias { - for i := range columns { - if tableName := rows.rs.columns[i].tableName; len(tableName) > 0 { - columns[i] = tableName + "." + rows.rs.columns[i].name - } else { - columns[i] = rows.rs.columns[i].name - } - } - } else { - for i := range columns { - columns[i] = rows.rs.columns[i].name - } - } - return columns -} - -func (rows *mysqlRows) Close() (err error) { - mc := rows.mc - if mc == nil { - return nil - } - if mc.netConn == nil { - return ErrInvalidConn - } - - // Remove unread packets from stream - if !rows.rs.done { - err = mc.readUntilEOF() - } - if err == nil { - if err = mc.discardResults(); err != nil { - return err - } - } - - rows.mc = nil - return err -} - -func (rows *mysqlRows) HasNextResultSet() (b bool) { - if rows.mc == nil { - return false - } - return rows.mc.status&statusMoreResultsExists != 0 -} - -func (rows *mysqlRows) nextResultSet() (int, error) { - if rows.mc == nil { - return 0, io.EOF - } - if rows.mc.netConn == nil { - return 0, ErrInvalidConn - } - - // Remove unread packets from stream - if !rows.rs.done { - if err := rows.mc.readUntilEOF(); err != nil { - return 0, err - } - rows.rs.done = true - } - - if !rows.HasNextResultSet() { - rows.mc = nil - return 0, io.EOF - } - rows.rs = resultSet{} - return rows.mc.readResultSetHeaderPacket() -} - -func (rows *mysqlRows) nextNotEmptyResultSet() (int, error) { - for { - resLen, err := rows.nextResultSet() - if err != nil { - return 0, err - } - - if resLen > 0 { - return resLen, nil - } - - rows.rs.done = true - } -} - -func (rows *binaryRows) NextResultSet() (err error) { - resLen, err := rows.nextNotEmptyResultSet() - if err != nil { - return err - } - - // get columns, if not cached, read them and cache them. - if rows.i >= len(*rows.stmtCols) { - rows.rs.columns, err = rows.mc.readColumns(resLen) - *rows.stmtCols = append(*rows.stmtCols, rows.rs.columns) - } else { - rows.rs.columns = (*rows.stmtCols)[rows.i] - if err := rows.mc.readUntilEOF(); err != nil { - return err - } - } - - rows.i++ - return nil -} - -func (rows *binaryRows) Next(dest []driver.Value) error { - if mc := rows.mc; mc != nil { - if mc.netConn == nil { - return ErrInvalidConn - } - - // Fetch next row from stream - return rows.readRow(dest) - } - return io.EOF -} - -func (rows *textRows) NextResultSet() (err error) { - resLen, err := rows.nextNotEmptyResultSet() - if err != nil { - return err - } - - rows.rs.columns, err = rows.mc.readColumns(resLen) - return err -} - -func (rows *textRows) Next(dest []driver.Value) error { - if mc := rows.mc; mc != nil { - if mc.netConn == nil { - return ErrInvalidConn - } - - // Fetch next row from stream - return rows.readRow(dest) - } - return io.EOF -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/statement.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/statement.go deleted file mode 100644 index b8877167..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/statement.go +++ /dev/null @@ -1,169 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "database/sql/driver" - "fmt" - "io" - "reflect" - "strconv" -) - -type mysqlStmt struct { - mc *mysqlConn - id uint32 - paramCount int - columns [][]mysqlField // cached from the first query -} - -func (stmt *mysqlStmt) Close() error { - if stmt.mc == nil || stmt.mc.netConn == nil { - // driver.Stmt.Close can be called more than once, thus this function - // has to be idempotent. - // See also Issue #450 and golang/go#16019. - //errLog.Print(ErrInvalidConn) - return driver.ErrBadConn - } - - err := stmt.mc.writeCommandPacketUint32(comStmtClose, stmt.id) - stmt.mc = nil - return err -} - -func (stmt *mysqlStmt) NumInput() int { - return stmt.paramCount -} - -func (stmt *mysqlStmt) ColumnConverter(idx int) driver.ValueConverter { - return converter{} -} - -func (stmt *mysqlStmt) Exec(args []driver.Value) (driver.Result, error) { - if stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := stmt.writeExecutePacket(args) - if err != nil { - return nil, err - } - - mc := stmt.mc - - mc.affectedRows = 0 - mc.insertId = 0 - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err != nil { - return nil, err - } - - if resLen > 0 { - // Columns - if err = mc.readUntilEOF(); err != nil { - return nil, err - } - - // Rows - if err := mc.readUntilEOF(); err != nil { - return nil, err - } - } - - if err := mc.discardResults(); err != nil { - return nil, err - } - - return &mysqlResult{ - affectedRows: int64(mc.affectedRows), - insertId: int64(mc.insertId), - }, nil -} - -func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) { - if stmt.mc.netConn == nil { - errLog.Print(ErrInvalidConn) - return nil, driver.ErrBadConn - } - // Send command - err := stmt.writeExecutePacket(args) - if err != nil { - return nil, err - } - - mc := stmt.mc - - // Read Result - resLen, err := mc.readResultSetHeaderPacket() - if err != nil { - return nil, err - } - - rows := new(binaryRows) - rows.stmtCols = &stmt.columns - - if resLen > 0 { - rows.mc = mc - rows.i++ - // Columns - // If not cached, read them and cache them - if len(stmt.columns) == 0 { - rows.rs.columns, err = mc.readColumns(resLen) - stmt.columns = append(stmt.columns, rows.rs.columns) - } else { - rows.rs.columns = stmt.columns[0] - err = mc.readUntilEOF() - } - } else { - rows.rs.done = true - - switch err := rows.NextResultSet(); err { - case nil, io.EOF: - return rows, nil - default: - return nil, err - } - } - - return rows, err -} - -type converter struct{} - -func (c converter) ConvertValue(v interface{}) (driver.Value, error) { - if driver.IsValue(v) { - return v, nil - } - - rv := reflect.ValueOf(v) - switch rv.Kind() { - case reflect.Ptr: - // indirect pointers - if rv.IsNil() { - return nil, nil - } - return c.ConvertValue(rv.Elem().Interface()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return rv.Int(), nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32: - return int64(rv.Uint()), nil - case reflect.Uint64: - u64 := rv.Uint() - if u64 >= 1<<63 { - return strconv.FormatUint(u64, 10), nil - } - return int64(u64), nil - case reflect.Float32, reflect.Float64: - return rv.Float(), nil - } - return nil, fmt.Errorf("unsupported type %T, a %s", v, rv.Kind()) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/transaction.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/transaction.go deleted file mode 100644 index 33c749b3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/transaction.go +++ /dev/null @@ -1,31 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -type mysqlTx struct { - mc *mysqlConn -} - -func (tx *mysqlTx) Commit() (err error) { - if tx.mc == nil || tx.mc.netConn == nil { - return ErrInvalidConn - } - err = tx.mc.exec("COMMIT") - tx.mc = nil - return -} - -func (tx *mysqlTx) Rollback() (err error) { - if tx.mc == nil || tx.mc.netConn == nil { - return ErrInvalidConn - } - err = tx.mc.exec("ROLLBACK") - tx.mc = nil - return -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/utils.go b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/utils.go deleted file mode 100644 index d523b7ff..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/github.com/go-sql-driver/mysql/utils.go +++ /dev/null @@ -1,740 +0,0 @@ -// Go MySQL Driver - A MySQL-Driver for Go's database/sql package -// -// Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. -// -// 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/. - -package mysql - -import ( - "crypto/sha1" - "crypto/tls" - "database/sql/driver" - "encoding/binary" - "fmt" - "io" - "strings" - "time" -) - -var ( - tlsConfigRegister map[string]*tls.Config // Register for custom tls.Configs -) - -// RegisterTLSConfig registers a custom tls.Config to be used with sql.Open. -// Use the key as a value in the DSN where tls=value. -// -// rootCertPool := x509.NewCertPool() -// pem, err := ioutil.ReadFile("/path/ca-cert.pem") -// if err != nil { -// log.Fatal(err) -// } -// if ok := rootCertPool.AppendCertsFromPEM(pem); !ok { -// log.Fatal("Failed to append PEM.") -// } -// clientCert := make([]tls.Certificate, 0, 1) -// certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client-key.pem") -// if err != nil { -// log.Fatal(err) -// } -// clientCert = append(clientCert, certs) -// mysql.RegisterTLSConfig("custom", &tls.Config{ -// RootCAs: rootCertPool, -// Certificates: clientCert, -// }) -// db, err := sql.Open("mysql", "user@tcp(localhost:3306)/test?tls=custom") -// -func RegisterTLSConfig(key string, config *tls.Config) error { - if _, isBool := readBool(key); isBool || strings.ToLower(key) == "skip-verify" { - return fmt.Errorf("key '%s' is reserved", key) - } - - if tlsConfigRegister == nil { - tlsConfigRegister = make(map[string]*tls.Config) - } - - tlsConfigRegister[key] = config - return nil -} - -// DeregisterTLSConfig removes the tls.Config associated with key. -func DeregisterTLSConfig(key string) { - if tlsConfigRegister != nil { - delete(tlsConfigRegister, key) - } -} - -// Returns the bool value of the input. -// The 2nd return value indicates if the input was a valid bool value -func readBool(input string) (value bool, valid bool) { - switch input { - case "1", "true", "TRUE", "True": - return true, true - case "0", "false", "FALSE", "False": - return false, true - } - - // Not a valid bool value - return -} - -/****************************************************************************** -* Authentication * -******************************************************************************/ - -// Encrypt password using 4.1+ method -func scramblePassword(scramble, password []byte) []byte { - if len(password) == 0 { - return nil - } - - // stage1Hash = SHA1(password) - crypt := sha1.New() - crypt.Write(password) - stage1 := crypt.Sum(nil) - - // scrambleHash = SHA1(scramble + SHA1(stage1Hash)) - // inner Hash - crypt.Reset() - crypt.Write(stage1) - hash := crypt.Sum(nil) - - // outer Hash - crypt.Reset() - crypt.Write(scramble) - crypt.Write(hash) - scramble = crypt.Sum(nil) - - // token = scrambleHash XOR stage1Hash - for i := range scramble { - scramble[i] ^= stage1[i] - } - return scramble -} - -// Encrypt password using pre 4.1 (old password) method -// https://github.com/atcurtis/mariadb/blob/master/mysys/my_rnd.c -type myRnd struct { - seed1, seed2 uint32 -} - -const myRndMaxVal = 0x3FFFFFFF - -// Pseudo random number generator -func newMyRnd(seed1, seed2 uint32) *myRnd { - return &myRnd{ - seed1: seed1 % myRndMaxVal, - seed2: seed2 % myRndMaxVal, - } -} - -// Tested to be equivalent to MariaDB's floating point variant -// http://play.golang.org/p/QHvhd4qved -// http://play.golang.org/p/RG0q4ElWDx -func (r *myRnd) NextByte() byte { - r.seed1 = (r.seed1*3 + r.seed2) % myRndMaxVal - r.seed2 = (r.seed1 + r.seed2 + 33) % myRndMaxVal - - return byte(uint64(r.seed1) * 31 / myRndMaxVal) -} - -// Generate binary hash from byte string using insecure pre 4.1 method -func pwHash(password []byte) (result [2]uint32) { - var add uint32 = 7 - var tmp uint32 - - result[0] = 1345345333 - result[1] = 0x12345671 - - for _, c := range password { - // skip spaces and tabs in password - if c == ' ' || c == '\t' { - continue - } - - tmp = uint32(c) - result[0] ^= (((result[0] & 63) + add) * tmp) + (result[0] << 8) - result[1] += (result[1] << 8) ^ result[0] - add += tmp - } - - // Remove sign bit (1<<31)-1) - result[0] &= 0x7FFFFFFF - result[1] &= 0x7FFFFFFF - - return -} - -// Encrypt password using insecure pre 4.1 method -func scrambleOldPassword(scramble, password []byte) []byte { - if len(password) == 0 { - return nil - } - - scramble = scramble[:8] - - hashPw := pwHash(password) - hashSc := pwHash(scramble) - - r := newMyRnd(hashPw[0]^hashSc[0], hashPw[1]^hashSc[1]) - - var out [8]byte - for i := range out { - out[i] = r.NextByte() + 64 - } - - mask := r.NextByte() - for i := range out { - out[i] ^= mask - } - - return out[:] -} - -/****************************************************************************** -* Time related utils * -******************************************************************************/ - -// NullTime represents a time.Time that may be NULL. -// NullTime implements the Scanner interface so -// it can be used as a scan destination: -// -// var nt NullTime -// err := db.QueryRow("SELECT time FROM foo WHERE id=?", id).Scan(&nt) -// ... -// if nt.Valid { -// // use nt.Time -// } else { -// // NULL value -// } -// -// This NullTime implementation is not driver-specific -type NullTime struct { - Time time.Time - Valid bool // Valid is true if Time is not NULL -} - -// Scan implements the Scanner interface. -// The value type must be time.Time or string / []byte (formatted time-string), -// otherwise Scan fails. -func (nt *NullTime) Scan(value interface{}) (err error) { - if value == nil { - nt.Time, nt.Valid = time.Time{}, false - return - } - - switch v := value.(type) { - case time.Time: - nt.Time, nt.Valid = v, true - return - case []byte: - nt.Time, err = parseDateTime(string(v), time.UTC) - nt.Valid = (err == nil) - return - case string: - nt.Time, err = parseDateTime(v, time.UTC) - nt.Valid = (err == nil) - return - } - - nt.Valid = false - return fmt.Errorf("Can't convert %T to time.Time", value) -} - -// Value implements the driver Valuer interface. -func (nt NullTime) Value() (driver.Value, error) { - if !nt.Valid { - return nil, nil - } - return nt.Time, nil -} - -func parseDateTime(str string, loc *time.Location) (t time.Time, err error) { - base := "0000-00-00 00:00:00.0000000" - switch len(str) { - case 10, 19, 21, 22, 23, 24, 25, 26: // up to "YYYY-MM-DD HH:MM:SS.MMMMMM" - if str == base[:len(str)] { - return - } - t, err = time.Parse(timeFormat[:len(str)], str) - default: - err = fmt.Errorf("invalid time string: %s", str) - return - } - - // Adjust location - if err == nil && loc != time.UTC { - y, mo, d := t.Date() - h, mi, s := t.Clock() - t, err = time.Date(y, mo, d, h, mi, s, t.Nanosecond(), loc), nil - } - - return -} - -func parseBinaryDateTime(num uint64, data []byte, loc *time.Location) (driver.Value, error) { - switch num { - case 0: - return time.Time{}, nil - case 4: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - 0, 0, 0, 0, - loc, - ), nil - case 7: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - int(data[4]), // hour - int(data[5]), // minutes - int(data[6]), // seconds - 0, - loc, - ), nil - case 11: - return time.Date( - int(binary.LittleEndian.Uint16(data[:2])), // year - time.Month(data[2]), // month - int(data[3]), // day - int(data[4]), // hour - int(data[5]), // minutes - int(data[6]), // seconds - int(binary.LittleEndian.Uint32(data[7:11]))*1000, // nanoseconds - loc, - ), nil - } - return nil, fmt.Errorf("invalid DATETIME packet length %d", num) -} - -// zeroDateTime is used in formatBinaryDateTime to avoid an allocation -// if the DATE or DATETIME has the zero value. -// It must never be changed. -// The current behavior depends on database/sql copying the result. -var zeroDateTime = []byte("0000-00-00 00:00:00.000000") - -const digits01 = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" -const digits10 = "0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999" - -func formatBinaryDateTime(src []byte, length uint8, justTime bool) (driver.Value, error) { - // length expects the deterministic length of the zero value, - // negative time and 100+ hours are automatically added if needed - if len(src) == 0 { - if justTime { - return zeroDateTime[11 : 11+length], nil - } - return zeroDateTime[:length], nil - } - var dst []byte // return value - var pt, p1, p2, p3 byte // current digit pair - var zOffs byte // offset of value in zeroDateTime - if justTime { - switch length { - case - 8, // time (can be up to 10 when negative and 100+ hours) - 10, 11, 12, 13, 14, 15: // time with fractional seconds - default: - return nil, fmt.Errorf("illegal TIME length %d", length) - } - switch len(src) { - case 8, 12: - default: - return nil, fmt.Errorf("invalid TIME packet length %d", len(src)) - } - // +2 to enable negative time and 100+ hours - dst = make([]byte, 0, length+2) - if src[0] == 1 { - dst = append(dst, '-') - } - if src[1] != 0 { - hour := uint16(src[1])*24 + uint16(src[5]) - pt = byte(hour / 100) - p1 = byte(hour - 100*uint16(pt)) - dst = append(dst, digits01[pt]) - } else { - p1 = src[5] - } - zOffs = 11 - src = src[6:] - } else { - switch length { - case 10, 19, 21, 22, 23, 24, 25, 26: - default: - t := "DATE" - if length > 10 { - t += "TIME" - } - return nil, fmt.Errorf("illegal %s length %d", t, length) - } - switch len(src) { - case 4, 7, 11: - default: - t := "DATE" - if length > 10 { - t += "TIME" - } - return nil, fmt.Errorf("illegal %s packet length %d", t, len(src)) - } - dst = make([]byte, 0, length) - // start with the date - year := binary.LittleEndian.Uint16(src[:2]) - pt = byte(year / 100) - p1 = byte(year - 100*uint16(pt)) - p2, p3 = src[2], src[3] - dst = append(dst, - digits10[pt], digits01[pt], - digits10[p1], digits01[p1], '-', - digits10[p2], digits01[p2], '-', - digits10[p3], digits01[p3], - ) - if length == 10 { - return dst, nil - } - if len(src) == 4 { - return append(dst, zeroDateTime[10:length]...), nil - } - dst = append(dst, ' ') - p1 = src[4] // hour - src = src[5:] - } - // p1 is 2-digit hour, src is after hour - p2, p3 = src[0], src[1] - dst = append(dst, - digits10[p1], digits01[p1], ':', - digits10[p2], digits01[p2], ':', - digits10[p3], digits01[p3], - ) - if length <= byte(len(dst)) { - return dst, nil - } - src = src[2:] - if len(src) == 0 { - return append(dst, zeroDateTime[19:zOffs+length]...), nil - } - microsecs := binary.LittleEndian.Uint32(src[:4]) - p1 = byte(microsecs / 10000) - microsecs -= 10000 * uint32(p1) - p2 = byte(microsecs / 100) - microsecs -= 100 * uint32(p2) - p3 = byte(microsecs) - switch decimals := zOffs + length - 20; decimals { - default: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - digits10[p3], digits01[p3], - ), nil - case 1: - return append(dst, '.', - digits10[p1], - ), nil - case 2: - return append(dst, '.', - digits10[p1], digits01[p1], - ), nil - case 3: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], - ), nil - case 4: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - ), nil - case 5: - return append(dst, '.', - digits10[p1], digits01[p1], - digits10[p2], digits01[p2], - digits10[p3], - ), nil - } -} - -/****************************************************************************** -* Convert from and to bytes * -******************************************************************************/ - -func uint64ToBytes(n uint64) []byte { - return []byte{ - byte(n), - byte(n >> 8), - byte(n >> 16), - byte(n >> 24), - byte(n >> 32), - byte(n >> 40), - byte(n >> 48), - byte(n >> 56), - } -} - -func uint64ToString(n uint64) []byte { - var a [20]byte - i := 20 - - // U+0030 = 0 - // ... - // U+0039 = 9 - - var q uint64 - for n >= 10 { - i-- - q = n / 10 - a[i] = uint8(n-q*10) + 0x30 - n = q - } - - i-- - a[i] = uint8(n) + 0x30 - - return a[i:] -} - -// treats string value as unsigned integer representation -func stringToInt(b []byte) int { - val := 0 - for i := range b { - val *= 10 - val += int(b[i] - 0x30) - } - return val -} - -// returns the string read as a bytes slice, wheter the value is NULL, -// the number of bytes read and an error, in case the string is longer than -// the input slice -func readLengthEncodedString(b []byte) ([]byte, bool, int, error) { - // Get length - num, isNull, n := readLengthEncodedInteger(b) - if num < 1 { - return b[n:n], isNull, n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return b[n-int(num) : n], false, n, nil - } - return nil, false, n, io.EOF -} - -// returns the number of bytes skipped and an error, in case the string is -// longer than the input slice -func skipLengthEncodedString(b []byte) (int, error) { - // Get length - num, _, n := readLengthEncodedInteger(b) - if num < 1 { - return n, nil - } - - n += int(num) - - // Check data length - if len(b) >= n { - return n, nil - } - return n, io.EOF -} - -// returns the number read, whether the value is NULL and the number of bytes read -func readLengthEncodedInteger(b []byte) (uint64, bool, int) { - // See issue #349 - if len(b) == 0 { - return 0, true, 1 - } - switch b[0] { - - // 251: NULL - case 0xfb: - return 0, true, 1 - - // 252: value of following 2 - case 0xfc: - return uint64(b[1]) | uint64(b[2])<<8, false, 3 - - // 253: value of following 3 - case 0xfd: - return uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16, false, 4 - - // 254: value of following 8 - case 0xfe: - return uint64(b[1]) | uint64(b[2])<<8 | uint64(b[3])<<16 | - uint64(b[4])<<24 | uint64(b[5])<<32 | uint64(b[6])<<40 | - uint64(b[7])<<48 | uint64(b[8])<<56, - false, 9 - } - - // 0-250: value of first byte - return uint64(b[0]), false, 1 -} - -// encodes a uint64 value and appends it to the given bytes slice -func appendLengthEncodedInteger(b []byte, n uint64) []byte { - switch { - case n <= 250: - return append(b, byte(n)) - - case n <= 0xffff: - return append(b, 0xfc, byte(n), byte(n>>8)) - - case n <= 0xffffff: - return append(b, 0xfd, byte(n), byte(n>>8), byte(n>>16)) - } - return append(b, 0xfe, byte(n), byte(n>>8), byte(n>>16), byte(n>>24), - byte(n>>32), byte(n>>40), byte(n>>48), byte(n>>56)) -} - -// reserveBuffer checks cap(buf) and expand buffer to len(buf) + appendSize. -// If cap(buf) is not enough, reallocate new buffer. -func reserveBuffer(buf []byte, appendSize int) []byte { - newSize := len(buf) + appendSize - if cap(buf) < newSize { - // Grow buffer exponentially - newBuf := make([]byte, len(buf)*2+appendSize) - copy(newBuf, buf) - buf = newBuf - } - return buf[:newSize] -} - -// escapeBytesBackslash escapes []byte with backslashes (\) -// This escapes the contents of a string (provided as []byte) by adding backslashes before special -// characters, and turning others into specific escape sequences, such as -// turning newlines into \n and null bytes into \0. -// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L823-L932 -func escapeBytesBackslash(buf, v []byte) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for _, c := range v { - switch c { - case '\x00': - buf[pos] = '\\' - buf[pos+1] = '0' - pos += 2 - case '\n': - buf[pos] = '\\' - buf[pos+1] = 'n' - pos += 2 - case '\r': - buf[pos] = '\\' - buf[pos+1] = 'r' - pos += 2 - case '\x1a': - buf[pos] = '\\' - buf[pos+1] = 'Z' - pos += 2 - case '\'': - buf[pos] = '\\' - buf[pos+1] = '\'' - pos += 2 - case '"': - buf[pos] = '\\' - buf[pos+1] = '"' - pos += 2 - case '\\': - buf[pos] = '\\' - buf[pos+1] = '\\' - pos += 2 - default: - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} - -// escapeStringBackslash is similar to escapeBytesBackslash but for string. -func escapeStringBackslash(buf []byte, v string) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for i := 0; i < len(v); i++ { - c := v[i] - switch c { - case '\x00': - buf[pos] = '\\' - buf[pos+1] = '0' - pos += 2 - case '\n': - buf[pos] = '\\' - buf[pos+1] = 'n' - pos += 2 - case '\r': - buf[pos] = '\\' - buf[pos+1] = 'r' - pos += 2 - case '\x1a': - buf[pos] = '\\' - buf[pos+1] = 'Z' - pos += 2 - case '\'': - buf[pos] = '\\' - buf[pos+1] = '\'' - pos += 2 - case '"': - buf[pos] = '\\' - buf[pos+1] = '"' - pos += 2 - case '\\': - buf[pos] = '\\' - buf[pos+1] = '\\' - pos += 2 - default: - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} - -// escapeBytesQuotes escapes apostrophes in []byte by doubling them up. -// This escapes the contents of a string by doubling up any apostrophes that -// it contains. This is used when the NO_BACKSLASH_ESCAPES SQL_MODE is in -// effect on the server. -// https://github.com/mysql/mysql-server/blob/mysql-5.7.5/mysys/charset.c#L963-L1038 -func escapeBytesQuotes(buf, v []byte) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for _, c := range v { - if c == '\'' { - buf[pos] = '\'' - buf[pos+1] = '\'' - pos += 2 - } else { - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} - -// escapeStringQuotes is similar to escapeBytesQuotes but for string. -func escapeStringQuotes(buf []byte, v string) []byte { - pos := len(buf) - buf = reserveBuffer(buf, len(v)*2) - - for i := 0; i < len(v); i++ { - c := v[i] - if c == '\'' { - buf[pos] = '\'' - buf[pos+1] = '\'' - pos += 2 - } else { - buf[pos] = c - pos++ - } - } - - return buf[:pos] -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/vendor.json b/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/vendor.json deleted file mode 100644 index a9041f95..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/mysql/vendor/vendor.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "comment": "", - "ignore": "test github.com/elastic/beats", - "package": [ - { - "checksumSHA1": "42vkdsxNaLyPu+FktCzZ/8zsNSE=", - "path": "github.com/go-sql-driver/mysql", - "revision": "9dee4ca50b83acdf57a35fb9e6fb4be640afa2f3", - "revisionTime": "2017-03-27T11:30:21Z" - } - ], - "rootPath": "github.com/elastic/beats/metricbeat/module/mysql" -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/nginx/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/nginx/doc.go index 90343e4a..16d6a213 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/nginx/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/nginx/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 nginx is Metricbeat module for the Nginx reverse proxy. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/nginx/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/nginx/fields.go new file mode 100644 index 00000000..b2cf1baf --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/nginx/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package nginx + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "nginx", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzElE9u4zoMxvc+xYfsmwN48Y7wVgPMYjBIFYm2hSiSh6ST5vYDOXLjBG6RAjVGK1uU+P34R3zBgS41YuvjWwWo10A1Nv/n/00FOBLLvlefYo3/KgAYbRDiEzFEjQ6CIyl7K7ApBLJKDg2nI06Gfcrm5IZAsq0A6RLrzqbY+LZGY4JQBTAFMkI1WpPPkKqPrdT4tREJm98V0HgKTuqR4AXRHOlGnZde+nyd09CXnQX0vF7HW6+wKarxUaAdvfNrZxRnYoJYNv0Ux3hlW1zMSeY0osP+mo530xLWJ2gj3s3N1xjzkdi+7TrVfped7K5edtfkT5XqTUvbmeJ95qf1GOM8zi6J5q874xTpgS7nxO7B9km8t46a/G4XVY1Vf1rWDCm2XxP80RHswExREYfjnhipKRKwwed9m2Ikmz0IfLRhcD62+Gl8bs259SNeS73KNwJrUhPucLMCuQXgZaTORBfosTbfiVQUniZynPp+VaKi8DQR05+BZNW6FZRJaZmjdOeq/f4UCJPJjb8uyOypnbs82a4TwcskP063AoqOjCNexj3z+D7/FW6RL7jSpyiEvbEHaBo3rzn/gN2sz+5dWJxwRRtNYpgp09vqbwAAAP//VhhOAA==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/data.go b/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/data.go index 7f4ffd92..76044507 100755 --- a/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stubstatus import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/stubstatus.go b/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/stubstatus.go index ea785528..2100e94e 100755 --- a/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/stubstatus.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/stubstatus.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stubstatus reads server status from nginx host under /server-status, ngx_http_stub_status_module is required. package stubstatus diff --git a/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/stubstatus_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/stubstatus_integration_test.go deleted file mode 100644 index 2214c727..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/nginx/stubstatus/stubstatus_integration_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// +build integration - -package stubstatus - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/nginx" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "nginx") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check number of fields. - assert.Equal(t, 10, len(event)) -} - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "nginx", - "metricsets": []string{"stubstatus"}, - "hosts": []string{nginx.GetNginxEnvHost()}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/nginx/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/nginx/testing.go index 6301d6b8..cee26e1d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/nginx/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/nginx/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 nginx /* diff --git a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/doc.go index 3fed1f04..e99030ef 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 php_fpm is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/fields.go new file mode 100644 index 00000000..9678236d --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package php_fpm + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "php_fpm", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJy8V01v3DYQvftXDHyxjdqL9roFegkQpIcEiza3IJBmqdFqYIpUyNGuN7++GIralWXZTYBteQiypDh88+bNhx/gkY5r6JquqLv2CkBYLK3hevNhU7zffLy+AqgomsCdsHdr+OMKAGBLgl++XqX/bz5sHt5vPkKksKcAUVD6CC1JYBPBeGvJCFVQB9+OH6+uAGLjgxTGu5p3a6jRRroCCGQJI63TE/oVibDbxTV8uY7RXn+9AqiZbBXX6fUHcNjS1ANdcuxoDbvg+y7vLDihq8z3SjDeCbKLIA2d0EuDAgcKBH6rpzM3srMnax3uCAxau8pbU6TP0HpvT5tLcN+APMD23v4kZv1mxN0FbyjGZzbV5GqyM4/EuOY+Tf3Sf58djL490vHgQzU7e8NDXZ8bShbB1wn9HOGEz8GfokWHOwqXg/C3oLC5h+rosGUDPoB3FbXoqmUkxjtHRs3FRRTzIP8Ahncnk0lvBLEjwzWb9JOjsImr2a2lIJ1BojHUCc25GDFa73Yvjv4FZI5W324paLzYGd+y20Ggbz1FybqcijAXjAbjCdDvC3YPDTnACbHA5wvAoj8DtX4/FbrlKOTgW089zbkZWUiHl+fA9CGQkwkXE00MLDS4J9gSOWDHwihU3cO2F3BeFqweSU4Or+BPTQaOsEfbkzrvvHv4TsErF3LsWAvQEVrC8Tm0dsGq0oR7ZItbS2MwciJRBAwnV+wRtn083gO6Sq8FSqfOL1idGDjZFj+YT086epJRFCv4CznyAtNa4tpVi0+FadhWgVwJt13we64oYRgBG3TQoKssAcudNpXeVtCQnSeZrkeibiAvB8f6wwo+60YXfEdBjlB7a/0hnqVUo5HE44LBUcqD3CLsGQEhevNIAref3220YNRsCbYYqbobKewjsGsosMyrhK7ozzXPNBjQCIUhz3V7MP8i5UdZK2kDniIp/OICb/GJ276dCPyU4+wS6PSuHnTkquXwTnMisjMEyqPWgigYVOivuDd1rbDkLu5e5O8n9nMk5/5M0b/ZkOhiTWAzGLxUB+DKXl4YZ0EMyXnSQ3lA1ilOK0Fmpsye3PKKVq/UvXP5UXt6H9OIdZdzdqiAOeVrtFZHlYOWVWleepdLCrsidhioyBjLlJJjtZkdpRfi0IKWbWZ3IE8eWo/LPCyUr0kYjfD+/6B/bEUZ5JlBeBhGRnYpkxX0b+WC2dvogfbkwGsLrnttLCqd/MJ9shIo9lbgwCkAGksIhBWUv5Z3r1EgXvBlU7rg+KEgf8lMn7PxrZr5H0XlZbWcg/q5+jftiUUgNM2FZ5hPJ6DCLcUhxqPMLbcsCWYaX/L796+NbV0LEphiGgHUL2i9zhUZP9wefHiM4J3Vxjuf23V1LdzkfLpJmXozzt83d8ulN1p/KMaOtFh+F3j5kb9EnvMCOLY9oCcyfZpM9SSxQ0+GqFqITJkvFQrT+l2hV3wv5SvOKGlFEsiFXPk0qRLGu+qH5PccjkJeRFOhzA9qH1qUNVDnTVMMT/4892p4GJ2U4BdQ/wkAAP//nLyrqw==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/data.go b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/data.go index a44eb311..35649811 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pool import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/pool.go b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/pool.go index 0f753beb..e89e4eda 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/pool.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/pool.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 pool import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/pool_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/pool_integration_test.go deleted file mode 100644 index b91547a1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/php_fpm/pool/pool_integration_test.go +++ /dev/null @@ -1,47 +0,0 @@ -// +build integration - -package pool - -import ( - "os" - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "phpfpm") - - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "php_fpm", - "metricsets": []string{"pool"}, - "hosts": []string{GetEnvHost() + ":" + GetEnvPort()}, - } -} - -func GetEnvHost() string { - host := os.Getenv("PHPFPM_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func GetEnvPort() string { - port := os.Getenv("PHPFPM_PORT") - - if len(port) == 0 { - port = "81" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/plugin.go b/vendor/github.com/elastic/beats/metricbeat/module/plugin.go index 2d314b54..e96175de 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/plugin.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/plugin.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 module import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/activity.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/activity.go index 85ab57d4..9aa83830 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/activity.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/activity.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 activity import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/activity_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/activity_integration_test.go deleted file mode 100644 index c0c36fb0..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/activity_integration_test.go +++ /dev/null @@ -1,61 +0,0 @@ -// +build integration - -package activity - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/postgresql" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "postgresql") - - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.True(t, len(events) > 0) - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check event fields - assert.Contains(t, event, "database") - db_oid := event["database"].(common.MapStr)["oid"].(int64) - assert.True(t, db_oid > 0) - - assert.Contains(t, event, "pid") - assert.True(t, event["pid"].(int64) > 0) - - assert.Contains(t, event, "user") - assert.Contains(t, event["user"].(common.MapStr), "name") - assert.Contains(t, event["user"].(common.MapStr), "id") -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "postgresql", - "metricsets": []string{"activity"}, - "hosts": []string{postgresql.GetEnvDSN()}, - "username": postgresql.GetEnvUsername(), - "password": postgresql.GetEnvPassword(), - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/data.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/data.go index 66cf9375..98d10dd0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/activity/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 activity import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/bgwriter.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/bgwriter.go index f69305cb..bb6a0b3a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/bgwriter.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/bgwriter.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 bgwriter import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/bgwriter_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/bgwriter_integration_test.go deleted file mode 100644 index be033ebd..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/bgwriter_integration_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// +build integration - -package bgwriter - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/postgresql" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "postgresql") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - assert.Contains(t, event, "checkpoints") - assert.Contains(t, event, "buffers") - assert.Contains(t, event, "stats_reset") - - checkpoints := event["checkpoints"].(common.MapStr) - assert.Contains(t, checkpoints, "scheduled") - assert.Contains(t, checkpoints, "requested") - assert.Contains(t, checkpoints, "times") - - buffers := event["buffers"].(common.MapStr) - assert.Contains(t, buffers, "checkpoints") - assert.Contains(t, buffers, "clean") - assert.Contains(t, buffers, "clean_full") - assert.Contains(t, buffers, "backend") - assert.Contains(t, buffers, "backend_fsync") - assert.Contains(t, buffers, "allocated") -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "postgresql") - - f := mbtest.NewEventFetcher(t, getConfig()) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "postgresql", - "metricsets": []string{"bgwriter"}, - "hosts": []string{postgresql.GetEnvDSN()}, - "username": postgresql.GetEnvUsername(), - "password": postgresql.GetEnvPassword(), - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/data.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/data.go index c262dc93..a1ab3940 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/bgwriter/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 bgwriter import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/data.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/data.go index 6d4fee70..90bee79f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 database import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/database.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/database.go index 270425f9..818cace9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/database.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/database.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 database import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/database_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/database_integration_test.go deleted file mode 100644 index 4a64be0f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/database/database_integration_test.go +++ /dev/null @@ -1,64 +0,0 @@ -// +build integration - -package database - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/postgresql" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "postgresql") - - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.True(t, len(events) > 0) - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check event fields - db_oid := event["oid"].(int64) - assert.True(t, db_oid > 0) - assert.Contains(t, event, "name") - _, ok := event["name"].(string) - assert.True(t, ok) - - rows := event["rows"].(common.MapStr) - assert.Contains(t, rows, "returned") - assert.Contains(t, rows, "fetched") - assert.Contains(t, rows, "inserted") - assert.Contains(t, rows, "updated") - assert.Contains(t, rows, "deleted") -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "postgresql") - - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "postgresql", - "metricsets": []string{"database"}, - "hosts": []string{postgresql.GetEnvDSN()}, - "username": postgresql.GetEnvUsername(), - "password": postgresql.GetEnvPassword(), - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/doc.go index 16e3236b..44bece98 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 postgresql is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/fields.go new file mode 100644 index 00000000..3c26dff9 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package postgresql + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "postgresql", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzUWk+P27oRv++nGLxLksIR0OseChR5hwZo8vKQ9GyMyZFFmCIVkrLX/fTFkJIsS7LX3pW2eT7t2uJvfpwZzj/qI+zo+AiV9WHryP/UDwBBBU2P8Nu39OX3P//92wOAJC+cqoKy5hH+8QAA8IWCU8KDsFqTCCQhd7aE0zrw5PbkfPYA4AvrwlpYk6vtI+SoPT0AONKEnh5hiw8AuSIt/WME/wgGSxpQ4084Vvy8s3XVfDNBjT89HmVimjW/9eX0ZaEIaq/CsfthStoVifz5wxBIK+qSTICKXKMDqJwV5P2KFXFQZgvK5NaVyBisBmT9BQuhIBC1c2TCGW7LDWwOocDQA6xFAejBBwwEaGS7Hn7W5I4ZfOrsszmeYcbfmUu1XfPqdSsk6z12bqL2M1RhX40SA27QU2aVPHugVae2Zjv44YpGo1Y//542Th06hEJ52KDYkZGg2A2NSdsMNrtOjP+dZLaj48G6IetnyH3FkmZgV82mrW/JNaBV2onJtOTak8uWsBUDg7bbLUlQJnr3TVwm7HOHDV4gFatKKxEP4/p1wntI6ZwObH8DGaEVmZChlI68v4/K52/QrGsJJbQXciisD/fr41/Wh4jTceiEJ9wVxytHlXUpKgGCI84UBL9//Q7a2l1d8eL0+Jq3dJUnI83kvj8+fQOGA1OXG3LJiD1FKg+156CZWwfClmVtWnsfVCiibkegja5XYB18/DuoHBD+Y9QTeCt21IDSBVs0izlEX9ilxHCniX6okuBQkEm+0CQTOKQ8wmZZgcooW7UPTTrSCJafSwlveivBofGcZax5g+286zJhT25/j9MkY1pcjF6X3vUxJXVKAs91bx07SUrpyoOxQypNRUA9A2n0YYw1vceIvBYFmu10JnztJhN15hFpJUkXyBxQBTU6p4nHxlpNaO6k4mpi/Y2ScKf5RiRYAwjait0VNd0n+1PjcnZPDrVuFDHMw1yderXRBHvUNXlAR6dqagQK8LfG3o/wo6D+nuiJRB33gk3BN7laST1e22qBQxmCocPpkJclDnNDHwqU6R+qEbJivfYeWMGmDpc8mT8n09yxoQELeI+bmFI+MB/lT+fHq1JpdJz7mnWTJM4I05OgKoA1XRqLcFzYx/3xN33hAjmET+KiAXLOuumd5OhDhaGAvDYtlNZXDc1LPp6tmYaWyuNGkxzqo8u9fEgcil1b+ivy/Hu7Lu3zuWIhWunOE0pPYXgo3nkouXJwJHrdy+deGGziZVwUO5ARLndXfhBlT4prIQ3wybSh4P6Mwf0KVDgtHsH2QmusBziuJdh+TBs1lJvtwalA7jUN5feAQfnAjTZubJ1qEdYYYxgJSUKX8nzXKfYbv1SxDHfWtn0tzfFxu7/5EwWJXWWVCT7zoiBZ69GheGlp9jVVZDaHDrkvL5mmwD3Bhshw980t9qWs02fq6GdNPizAtEOeiWlQJfks2isrh4Vmoptri8Mg+9xxtAE1YGlrk44l5/KGpE8cfRWr3xT3OHpwoOISvSM3Qm18kl3vUJAjyJVOqS56beBSwXKs2a0YuFRaK0/CGulvVYQ/GvFX1gPzL5w16r+pM7tDGZs6z8n5rKeU2b23kdGZS9aOd9G3w3VuE7Xb/Kw2x+mgeAO3dV5rPTvB6JsXArUPtqpIAkIkwOr0Ag1sKBYQoMb+U6DsHRgLJZpjt42re2wy6/J+oRwJzrWxl79aLAyorXM+AgtZoKMSVRhsm7NBBQ/2YCAKj+UWvDfWlaj1sJCBC3Ys0EgdrWw9Ae3JnJqfVqq0XE4lWSPYiPPhqo5QaytwibTUGrCTcLn/8WtHnmZthbmCKpQoWFk+1dVNiXPg8BirrSg0G5VU7YD1NSXVH4bA2UMcz7d4p8F8+83Hg5J9bueD9G54PllRTbC8v5T61cbnv+TUPE3p1jZfN8sWSIINcK+lGE9Tu7uF5+ZePuPmehTlZwh5PRld39bT7FnFmThcPPdnfJ3VmnXw/2XMLPjk4aVZzUZbseNSHucPl1yWNQKABYzYXqVULGHtmOD6vGLozGOKQs0kj22VmoI9CBQFx7mpsS2GOIPnQgPjkAYMcc2K7gjv406t0QwodC3JQ6FOQ5DTResI+Fwyw/ICW5HD2JD7ow9UvvOxIm7+S09/uKpR3n209KXa/wVzf05Mqbhn4DYTJGaNijfHUzAYesBqaqh0QxXf29DVru5VO2Lkt9qRswc+haF2Zol+2h74CCb0Ng/HqdVNJzKSyymIYiluDfgLqSnjyS0yh2BuLfoLydWVXKQYjdwa8BdSk6RpMWoN+P3UhDW5VmKBxrzlIdAI4rwoa+JapJOYLiMdCbsnd2z5jhCfKVuorKxDd8zixGL+JNbiNxMR4ehZH4B/jhp2GAGhIxC2NvEuzdEWHfdq8U78UKRpwfkSTnsj1JbOe8q2GSdOl+6MuPnzhTLbD6v4vs25gHgVZ7drFrCe0huAp8BIzyl9cwyzKX042YqZoDeFG2pwbILLvsMmeYEJnrFirEQaEyyhZ0koYxKcv1pskUFSSG3CbfHi12m3R313d/f12sb77OW4dKXCf8WXdqYb8ok35c5Qldnb5g2M9uW4iHt6NU5UNdQet+n1uBCPQqy47ng37nT5N3lBsqFwa1//lq9bnWZRUS8OU8k+ca/65m/v9d97cLWB4R3m2e3ifPo6ceksek1uoKc77xD+TNeEw3XnsAK1XiCfdnPnpNru0sLVV5XLVc6secZcr9cvuF48kvF0LkSm37y0vV5tzOlq+DKtctQLvZTUF2VUWZcz0cKnuWjh04y05rv2+UJo5iHlg5S0n4nWN1vVOiUdH9BIdBIk7dUpD/XmCX2CN97ulVRad8x8gY7kjBOk4ZFIAtI4IE1e0mynuVO7otNzhjOO3W6gGCdV91KUygU1W494A8tG4N1Em7L87YgOLlKfJ6qtQL2gV0b8Vzhl4regT44J3ueSieCyHjnmeLdDJprL+uOY5t3uyC3gktZm/FcYO9JbVokjhtM6/F8AAAD///CjHBI=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/postgresql.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/postgresql.go index ad8ee277..a8677459 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/postgresql.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/postgresql.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 postgresql is Metricbeat module for PostgreSQL server. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/postgresql_test.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/postgresql_test.go deleted file mode 100644 index 1cd3c01a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/postgresql_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package postgresql - -import ( - "testing" - "time" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestParseUrl(t *testing.T) { - tests := []struct { - Name string - URL string - Username string - Password string - Timeout time.Duration - Expected string - }{ - { - Name: "simple test", - URL: "postgres://host1:5432", - Expected: "host=host1 port=5432", - }, - { - Name: "no port", - URL: "postgres://host1", - Expected: "host=host1", - }, - { - Name: "user/pass in URL", - URL: "postgres://user:pass@host1:5432", - Expected: "host=host1 password=pass port=5432 user=user", - }, - { - Name: "user/pass in params", - URL: "postgres://host1:5432", - Username: "user", - Password: "secret", - Expected: "host=host1 password=secret port=5432 user=user", - }, - { - Name: "user/pass in URL take precedence", - URL: "postgres://user1:pass@host1:5432", - Username: "user", - Password: "secret", - Expected: "host=host1 password=pass port=5432 user=user1", - }, - { - Name: "timeout no override", - URL: "postgres://host1:5432?connect_timeout=2", - Expected: "connect_timeout=2 host=host1 port=5432", - }, - { - Name: "timeout from param", - URL: "postgres://host1:5432", - Timeout: 3 * time.Second, - Expected: "connect_timeout=3 host=host1 port=5432", - }, - { - Name: "user/pass in URL take precedence, and timeout override", - URL: "postgres://user1:pass@host1:5432?connect_timeout=2", - Username: "user", - Password: "secret", - Timeout: 3 * time.Second, - Expected: "connect_timeout=3 host=host1 password=pass port=5432 user=user1", - }, - { - Name: "unix socket", - URL: "postgresql:///dbname?host=/var/lib/postgresql", - Expected: "dbname=dbname host=/var/lib/postgresql", - }, - } - - for _, test := range tests { - mod := mbtest.NewTestModule(t, map[string]interface{}{ - "username": test.Username, - "password": test.Password, - }) - mod.ModConfig.Timeout = test.Timeout - hostData, err := ParseURL(mod, test.URL) - if err != nil { - t.Error(err) - continue - } - - assert.Equal(t, test.Expected, hostData.URI, test.Name) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/data.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/data.go index 13e14f96..bb1c9ac0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 statement import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/statement.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/statement.go index 7f58ba0c..dfca09bd 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/statement.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/statement.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 statement import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/statement_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/statement_integration_test.go deleted file mode 100644 index 726a3c8b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/statement/statement_integration_test.go +++ /dev/null @@ -1,94 +0,0 @@ -// +build integration - -package statement - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/postgresql" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "postgresql") - - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - assert.True(t, len(events) > 0) - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check event fields - assert.Contains(t, event, "user") - assert.Contains(t, event["user"].(common.MapStr), "id") - - assert.Contains(t, event, "database") - db_oid := event["database"].(common.MapStr)["oid"].(int64) - assert.True(t, db_oid > 0) - - assert.Contains(t, event, "query") - query := event["query"].(common.MapStr) - assert.Contains(t, query, "id") - assert.Contains(t, query, "text") - assert.Contains(t, query, "calls") - assert.Contains(t, query, "rows") - - assert.Contains(t, query, "time") - time := query["time"].(common.MapStr) - assert.Contains(t, time, "total") - assert.Contains(t, time, "min") - assert.Contains(t, time, "max") - assert.Contains(t, time, "mean") - assert.Contains(t, time, "stddev") - - assert.Contains(t, query["memory"], "shared") - memory := query["memory"].(common.MapStr) - - assert.Contains(t, memory, "shared") - shared := memory["shared"].(common.MapStr) - assert.Contains(t, shared, "hit") - assert.Contains(t, shared, "read") - assert.Contains(t, shared, "dirtied") - assert.Contains(t, shared, "written") - - assert.Contains(t, memory, "local") - local := memory["local"].(common.MapStr) - assert.Contains(t, local, "hit") - assert.Contains(t, local, "read") - assert.Contains(t, local, "dirtied") - assert.Contains(t, local, "written") - - assert.Contains(t, memory, "temp") - temp := memory["temp"].(common.MapStr) - assert.Contains(t, temp, "read") - assert.Contains(t, temp, "written") -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "postgresql", - "metricsets": []string{"statement"}, - "hosts": []string{postgresql.GetEnvDSN()}, - "username": postgresql.GetEnvUsername(), - "password": postgresql.GetEnvPassword(), - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/testing.go index 9afe8798..13673c8c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 postgresql import "os" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/CONTRIBUTING.md b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/CONTRIBUTING.md deleted file mode 100644 index 84c937f1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/CONTRIBUTING.md +++ /dev/null @@ -1,29 +0,0 @@ -## Contributing to pq - -`pq` has a backlog of pull requests, but contributions are still very -much welcome. You can help with patch review, submitting bug reports, -or adding new functionality. There is no formal style guide, but -please conform to the style of existing code and general Go formatting -conventions when submitting patches. - -### Patch review - -Help review existing open pull requests by commenting on the code or -proposed functionality. - -### Bug reports - -We appreciate any bug reports, but especially ones with self-contained -(doesn't depend on code outside of pq), minimal (can't be simplified -further) test cases. It's especially helpful if you can submit a pull -request with just the failing test case (you'll probably want to -pattern it after the tests in -[conn_test.go](https://github.com/lib/pq/blob/master/conn_test.go). - -### New functionality - -There are a number of pending patches for new functionality, so -additional feature patches will take a while to merge. Still, patches -are generally reviewed based on usefulness and complexity in addition -to time-in-queue, so if you have a knockout idea, take a shot. Feel -free to open an issue discussion your proposed patch beforehand. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/LICENSE.md b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/LICENSE.md deleted file mode 100644 index 5773904a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/LICENSE.md +++ /dev/null @@ -1,8 +0,0 @@ -Copyright (c) 2011-2013, 'pq' Contributors -Portions Copyright (C) 2011 Blake Mizerany - -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/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/README.md b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/README.md deleted file mode 100644 index 7670fc87..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# pq - A pure Go postgres driver for Go's database/sql package - -[![Build Status](https://travis-ci.org/lib/pq.svg?branch=master)](https://travis-ci.org/lib/pq) - -## Install - - go get github.com/lib/pq - -## Docs - -For detailed documentation and basic usage examples, please see the package -documentation at . - -## Tests - -`go test` is used for testing. A running PostgreSQL server is -required, with the ability to log in. The default database to connect -to test with is "pqgotest," but it can be overridden using environment -variables. - -Example: - - PGHOST=/run/postgresql go test github.com/lib/pq - -Optionally, a benchmark suite can be run as part of the tests: - - PGHOST=/run/postgresql go test -bench . - -## Features - -* SSL -* Handles bad connections for `database/sql` -* Scan `time.Time` correctly (i.e. `timestamp[tz]`, `time[tz]`, `date`) -* Scan binary blobs correctly (i.e. `bytea`) -* Package for `hstore` support -* COPY FROM support -* pq.ParseURL for converting urls to connection strings for sql.Open. -* Many libpq compatible environment variables -* Unix socket support -* Notifications: `LISTEN`/`NOTIFY` -* pgpass support - -## Future / Things you can help with - -* Better COPY FROM / COPY TO (see discussion in #181) - -## Thank you (alphabetical) - -Some of these contributors are from the original library `bmizerany/pq.go` whose -code still exists in here. - -* Andy Balholm (andybalholm) -* Ben Berkert (benburkert) -* Benjamin Heatwole (bheatwole) -* Bill Mill (llimllib) -* Bjørn Madsen (aeons) -* Blake Gentry (bgentry) -* Brad Fitzpatrick (bradfitz) -* Charlie Melbye (cmelbye) -* Chris Bandy (cbandy) -* Chris Gilling (cgilling) -* Chris Walsh (cwds) -* Dan Sosedoff (sosedoff) -* Daniel Farina (fdr) -* Eric Chlebek (echlebek) -* Eric Garrido (minusnine) -* Eric Urban (hydrogen18) -* Everyone at The Go Team -* Evan Shaw (edsrzf) -* Ewan Chou (coocood) -* Fazal Majid (fazalmajid) -* Federico Romero (federomero) -* Fumin (fumin) -* Gary Burd (garyburd) -* Heroku (heroku) -* James Pozdena (jpoz) -* Jason McVetta (jmcvetta) -* Jeremy Jay (pbnjay) -* Joakim Sernbrant (serbaut) -* John Gallagher (jgallagher) -* Jonathan Rudenberg (titanous) -* Joël Stemmer (jstemmer) -* Kamil Kisiel (kisielk) -* Kelly Dunn (kellydunn) -* Keith Rarick (kr) -* Kir Shatrov (kirs) -* Lann Martin (lann) -* Maciek Sakrejda (uhoh-itsmaciek) -* Marc Brinkmann (mbr) -* Marko Tiikkaja (johto) -* Matt Newberry (MattNewberry) -* Matt Robenolt (mattrobenolt) -* Martin Olsen (martinolsen) -* Mike Lewis (mikelikespie) -* Nicolas Patry (Narsil) -* Oliver Tonnhofer (olt) -* Patrick Hayes (phayes) -* Paul Hammond (paulhammond) -* Ryan Smith (ryandotsmith) -* Samuel Stauffer (samuel) -* Timothée Peignier (cyberdelia) -* Travis Cline (tmc) -* TruongSinh Tran-Nguyen (truongsinh) -* Yaismel Miranda (ympons) -* notedit (notedit) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/array.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/array.go deleted file mode 100644 index e7b2145d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/array.go +++ /dev/null @@ -1,756 +0,0 @@ -package pq - -import ( - "bytes" - "database/sql" - "database/sql/driver" - "encoding/hex" - "fmt" - "reflect" - "strconv" - "strings" -) - -var typeByteSlice = reflect.TypeOf([]byte{}) -var typeDriverValuer = reflect.TypeOf((*driver.Valuer)(nil)).Elem() -var typeSqlScanner = reflect.TypeOf((*sql.Scanner)(nil)).Elem() - -// Array returns the optimal driver.Valuer and sql.Scanner for an array or -// slice of any dimension. -// -// For example: -// db.Query(`SELECT * FROM t WHERE id = ANY($1)`, pq.Array([]int{235, 401})) -// -// var x []sql.NullInt64 -// db.QueryRow('SELECT ARRAY[235, 401]').Scan(pq.Array(&x)) -// -// Scanning multi-dimensional arrays is not supported. Arrays where the lower -// bound is not one (such as `[0:0]={1}') are not supported. -func Array(a interface{}) interface { - driver.Valuer - sql.Scanner -} { - switch a := a.(type) { - case []bool: - return (*BoolArray)(&a) - case []float64: - return (*Float64Array)(&a) - case []int64: - return (*Int64Array)(&a) - case []string: - return (*StringArray)(&a) - - case *[]bool: - return (*BoolArray)(a) - case *[]float64: - return (*Float64Array)(a) - case *[]int64: - return (*Int64Array)(a) - case *[]string: - return (*StringArray)(a) - } - - return GenericArray{a} -} - -// ArrayDelimiter may be optionally implemented by driver.Valuer or sql.Scanner -// to override the array delimiter used by GenericArray. -type ArrayDelimiter interface { - // ArrayDelimiter returns the delimiter character(s) for this element's type. - ArrayDelimiter() string -} - -// BoolArray represents a one-dimensional array of the PostgreSQL boolean type. -type BoolArray []bool - -// Scan implements the sql.Scanner interface. -func (a *BoolArray) Scan(src interface{}) error { - switch src := src.(type) { - case []byte: - return a.scanBytes(src) - case string: - return a.scanBytes([]byte(src)) - case nil: - *a = nil - return nil - } - - return fmt.Errorf("pq: cannot convert %T to BoolArray", src) -} - -func (a *BoolArray) scanBytes(src []byte) error { - elems, err := scanLinearArray(src, []byte{','}, "BoolArray") - if err != nil { - return err - } - if *a != nil && len(elems) == 0 { - *a = (*a)[:0] - } else { - b := make(BoolArray, len(elems)) - for i, v := range elems { - if len(v) != 1 { - return fmt.Errorf("pq: could not parse boolean array index %d: invalid boolean %q", i, v) - } - switch v[0] { - case 't': - b[i] = true - case 'f': - b[i] = false - default: - return fmt.Errorf("pq: could not parse boolean array index %d: invalid boolean %q", i, v) - } - } - *a = b - } - return nil -} - -// Value implements the driver.Valuer interface. -func (a BoolArray) Value() (driver.Value, error) { - if a == nil { - return nil, nil - } - - if n := len(a); n > 0 { - // There will be exactly two curly brackets, N bytes of values, - // and N-1 bytes of delimiters. - b := make([]byte, 1+2*n) - - for i := 0; i < n; i++ { - b[2*i] = ',' - if a[i] { - b[1+2*i] = 't' - } else { - b[1+2*i] = 'f' - } - } - - b[0] = '{' - b[2*n] = '}' - - return string(b), nil - } - - return "{}", nil -} - -// ByteaArray represents a one-dimensional array of the PostgreSQL bytea type. -type ByteaArray [][]byte - -// Scan implements the sql.Scanner interface. -func (a *ByteaArray) Scan(src interface{}) error { - switch src := src.(type) { - case []byte: - return a.scanBytes(src) - case string: - return a.scanBytes([]byte(src)) - case nil: - *a = nil - return nil - } - - return fmt.Errorf("pq: cannot convert %T to ByteaArray", src) -} - -func (a *ByteaArray) scanBytes(src []byte) error { - elems, err := scanLinearArray(src, []byte{','}, "ByteaArray") - if err != nil { - return err - } - if *a != nil && len(elems) == 0 { - *a = (*a)[:0] - } else { - b := make(ByteaArray, len(elems)) - for i, v := range elems { - b[i], err = parseBytea(v) - if err != nil { - return fmt.Errorf("could not parse bytea array index %d: %s", i, err.Error()) - } - } - *a = b - } - return nil -} - -// Value implements the driver.Valuer interface. It uses the "hex" format which -// is only supported on PostgreSQL 9.0 or newer. -func (a ByteaArray) Value() (driver.Value, error) { - if a == nil { - return nil, nil - } - - if n := len(a); n > 0 { - // There will be at least two curly brackets, 2*N bytes of quotes, - // 3*N bytes of hex formatting, and N-1 bytes of delimiters. - size := 1 + 6*n - for _, x := range a { - size += hex.EncodedLen(len(x)) - } - - b := make([]byte, size) - - for i, s := 0, b; i < n; i++ { - o := copy(s, `,"\\x`) - o += hex.Encode(s[o:], a[i]) - s[o] = '"' - s = s[o+1:] - } - - b[0] = '{' - b[size-1] = '}' - - return string(b), nil - } - - return "{}", nil -} - -// Float64Array represents a one-dimensional array of the PostgreSQL double -// precision type. -type Float64Array []float64 - -// Scan implements the sql.Scanner interface. -func (a *Float64Array) Scan(src interface{}) error { - switch src := src.(type) { - case []byte: - return a.scanBytes(src) - case string: - return a.scanBytes([]byte(src)) - case nil: - *a = nil - return nil - } - - return fmt.Errorf("pq: cannot convert %T to Float64Array", src) -} - -func (a *Float64Array) scanBytes(src []byte) error { - elems, err := scanLinearArray(src, []byte{','}, "Float64Array") - if err != nil { - return err - } - if *a != nil && len(elems) == 0 { - *a = (*a)[:0] - } else { - b := make(Float64Array, len(elems)) - for i, v := range elems { - if b[i], err = strconv.ParseFloat(string(v), 64); err != nil { - return fmt.Errorf("pq: parsing array element index %d: %v", i, err) - } - } - *a = b - } - return nil -} - -// Value implements the driver.Valuer interface. -func (a Float64Array) Value() (driver.Value, error) { - if a == nil { - return nil, nil - } - - if n := len(a); n > 0 { - // There will be at least two curly brackets, N bytes of values, - // and N-1 bytes of delimiters. - b := make([]byte, 1, 1+2*n) - b[0] = '{' - - b = strconv.AppendFloat(b, a[0], 'f', -1, 64) - for i := 1; i < n; i++ { - b = append(b, ',') - b = strconv.AppendFloat(b, a[i], 'f', -1, 64) - } - - return string(append(b, '}')), nil - } - - return "{}", nil -} - -// GenericArray implements the driver.Valuer and sql.Scanner interfaces for -// an array or slice of any dimension. -type GenericArray struct{ A interface{} } - -func (GenericArray) evaluateDestination(rt reflect.Type) (reflect.Type, func([]byte, reflect.Value) error, string) { - var assign func([]byte, reflect.Value) error - var del = "," - - // TODO calculate the assign function for other types - // TODO repeat this section on the element type of arrays or slices (multidimensional) - { - if reflect.PtrTo(rt).Implements(typeSqlScanner) { - // dest is always addressable because it is an element of a slice. - assign = func(src []byte, dest reflect.Value) (err error) { - ss := dest.Addr().Interface().(sql.Scanner) - if src == nil { - err = ss.Scan(nil) - } else { - err = ss.Scan(src) - } - return - } - goto FoundType - } - - assign = func([]byte, reflect.Value) error { - return fmt.Errorf("pq: scanning to %s is not implemented; only sql.Scanner", rt) - } - } - -FoundType: - - if ad, ok := reflect.Zero(rt).Interface().(ArrayDelimiter); ok { - del = ad.ArrayDelimiter() - } - - return rt, assign, del -} - -// Scan implements the sql.Scanner interface. -func (a GenericArray) Scan(src interface{}) error { - dpv := reflect.ValueOf(a.A) - switch { - case dpv.Kind() != reflect.Ptr: - return fmt.Errorf("pq: destination %T is not a pointer to array or slice", a.A) - case dpv.IsNil(): - return fmt.Errorf("pq: destination %T is nil", a.A) - } - - dv := dpv.Elem() - switch dv.Kind() { - case reflect.Slice: - case reflect.Array: - default: - return fmt.Errorf("pq: destination %T is not a pointer to array or slice", a.A) - } - - switch src := src.(type) { - case []byte: - return a.scanBytes(src, dv) - case string: - return a.scanBytes([]byte(src), dv) - case nil: - if dv.Kind() == reflect.Slice { - dv.Set(reflect.Zero(dv.Type())) - return nil - } - } - - return fmt.Errorf("pq: cannot convert %T to %s", src, dv.Type()) -} - -func (a GenericArray) scanBytes(src []byte, dv reflect.Value) error { - dtype, assign, del := a.evaluateDestination(dv.Type().Elem()) - dims, elems, err := parseArray(src, []byte(del)) - if err != nil { - return err - } - - // TODO allow multidimensional - - if len(dims) > 1 { - return fmt.Errorf("pq: scanning from multidimensional ARRAY%s is not implemented", - strings.Replace(fmt.Sprint(dims), " ", "][", -1)) - } - - // Treat a zero-dimensional array like an array with a single dimension of zero. - if len(dims) == 0 { - dims = append(dims, 0) - } - - for i, rt := 0, dv.Type(); i < len(dims); i, rt = i+1, rt.Elem() { - switch rt.Kind() { - case reflect.Slice: - case reflect.Array: - if rt.Len() != dims[i] { - return fmt.Errorf("pq: cannot convert ARRAY%s to %s", - strings.Replace(fmt.Sprint(dims), " ", "][", -1), dv.Type()) - } - default: - // TODO handle multidimensional - } - } - - values := reflect.MakeSlice(reflect.SliceOf(dtype), len(elems), len(elems)) - for i, e := range elems { - if err := assign(e, values.Index(i)); err != nil { - return fmt.Errorf("pq: parsing array element index %d: %v", i, err) - } - } - - // TODO handle multidimensional - - switch dv.Kind() { - case reflect.Slice: - dv.Set(values.Slice(0, dims[0])) - case reflect.Array: - for i := 0; i < dims[0]; i++ { - dv.Index(i).Set(values.Index(i)) - } - } - - return nil -} - -// Value implements the driver.Valuer interface. -func (a GenericArray) Value() (driver.Value, error) { - if a.A == nil { - return nil, nil - } - - rv := reflect.ValueOf(a.A) - - switch rv.Kind() { - case reflect.Slice: - if rv.IsNil() { - return nil, nil - } - case reflect.Array: - default: - return nil, fmt.Errorf("pq: Unable to convert %T to array", a.A) - } - - if n := rv.Len(); n > 0 { - // There will be at least two curly brackets, N bytes of values, - // and N-1 bytes of delimiters. - b := make([]byte, 0, 1+2*n) - - b, _, err := appendArray(b, rv, n) - return string(b), err - } - - return "{}", nil -} - -// Int64Array represents a one-dimensional array of the PostgreSQL integer types. -type Int64Array []int64 - -// Scan implements the sql.Scanner interface. -func (a *Int64Array) Scan(src interface{}) error { - switch src := src.(type) { - case []byte: - return a.scanBytes(src) - case string: - return a.scanBytes([]byte(src)) - case nil: - *a = nil - return nil - } - - return fmt.Errorf("pq: cannot convert %T to Int64Array", src) -} - -func (a *Int64Array) scanBytes(src []byte) error { - elems, err := scanLinearArray(src, []byte{','}, "Int64Array") - if err != nil { - return err - } - if *a != nil && len(elems) == 0 { - *a = (*a)[:0] - } else { - b := make(Int64Array, len(elems)) - for i, v := range elems { - if b[i], err = strconv.ParseInt(string(v), 10, 64); err != nil { - return fmt.Errorf("pq: parsing array element index %d: %v", i, err) - } - } - *a = b - } - return nil -} - -// Value implements the driver.Valuer interface. -func (a Int64Array) Value() (driver.Value, error) { - if a == nil { - return nil, nil - } - - if n := len(a); n > 0 { - // There will be at least two curly brackets, N bytes of values, - // and N-1 bytes of delimiters. - b := make([]byte, 1, 1+2*n) - b[0] = '{' - - b = strconv.AppendInt(b, a[0], 10) - for i := 1; i < n; i++ { - b = append(b, ',') - b = strconv.AppendInt(b, a[i], 10) - } - - return string(append(b, '}')), nil - } - - return "{}", nil -} - -// StringArray represents a one-dimensional array of the PostgreSQL character types. -type StringArray []string - -// Scan implements the sql.Scanner interface. -func (a *StringArray) Scan(src interface{}) error { - switch src := src.(type) { - case []byte: - return a.scanBytes(src) - case string: - return a.scanBytes([]byte(src)) - case nil: - *a = nil - return nil - } - - return fmt.Errorf("pq: cannot convert %T to StringArray", src) -} - -func (a *StringArray) scanBytes(src []byte) error { - elems, err := scanLinearArray(src, []byte{','}, "StringArray") - if err != nil { - return err - } - if *a != nil && len(elems) == 0 { - *a = (*a)[:0] - } else { - b := make(StringArray, len(elems)) - for i, v := range elems { - if b[i] = string(v); v == nil { - return fmt.Errorf("pq: parsing array element index %d: cannot convert nil to string", i) - } - } - *a = b - } - return nil -} - -// Value implements the driver.Valuer interface. -func (a StringArray) Value() (driver.Value, error) { - if a == nil { - return nil, nil - } - - if n := len(a); n > 0 { - // There will be at least two curly brackets, 2*N bytes of quotes, - // and N-1 bytes of delimiters. - b := make([]byte, 1, 1+3*n) - b[0] = '{' - - b = appendArrayQuotedBytes(b, []byte(a[0])) - for i := 1; i < n; i++ { - b = append(b, ',') - b = appendArrayQuotedBytes(b, []byte(a[i])) - } - - return string(append(b, '}')), nil - } - - return "{}", nil -} - -// appendArray appends rv to the buffer, returning the extended buffer and -// the delimiter used between elements. -// -// It panics when n <= 0 or rv's Kind is not reflect.Array nor reflect.Slice. -func appendArray(b []byte, rv reflect.Value, n int) ([]byte, string, error) { - var del string - var err error - - b = append(b, '{') - - if b, del, err = appendArrayElement(b, rv.Index(0)); err != nil { - return b, del, err - } - - for i := 1; i < n; i++ { - b = append(b, del...) - if b, del, err = appendArrayElement(b, rv.Index(i)); err != nil { - return b, del, err - } - } - - return append(b, '}'), del, nil -} - -// appendArrayElement appends rv to the buffer, returning the extended buffer -// and the delimiter to use before the next element. -// -// When rv's Kind is neither reflect.Array nor reflect.Slice, it is converted -// using driver.DefaultParameterConverter and the resulting []byte or string -// is double-quoted. -// -// See http://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-IO -func appendArrayElement(b []byte, rv reflect.Value) ([]byte, string, error) { - if k := rv.Kind(); k == reflect.Array || k == reflect.Slice { - if t := rv.Type(); t != typeByteSlice && !t.Implements(typeDriverValuer) { - if n := rv.Len(); n > 0 { - return appendArray(b, rv, n) - } - - return b, "", nil - } - } - - var del string = "," - var err error - var iv interface{} = rv.Interface() - - if ad, ok := iv.(ArrayDelimiter); ok { - del = ad.ArrayDelimiter() - } - - if iv, err = driver.DefaultParameterConverter.ConvertValue(iv); err != nil { - return b, del, err - } - - switch v := iv.(type) { - case nil: - return append(b, "NULL"...), del, nil - case []byte: - return appendArrayQuotedBytes(b, v), del, nil - case string: - return appendArrayQuotedBytes(b, []byte(v)), del, nil - } - - b, err = appendValue(b, iv) - return b, del, err -} - -func appendArrayQuotedBytes(b, v []byte) []byte { - b = append(b, '"') - for { - i := bytes.IndexAny(v, `"\`) - if i < 0 { - b = append(b, v...) - break - } - if i > 0 { - b = append(b, v[:i]...) - } - b = append(b, '\\', v[i]) - v = v[i+1:] - } - return append(b, '"') -} - -func appendValue(b []byte, v driver.Value) ([]byte, error) { - return append(b, encode(nil, v, 0)...), nil -} - -// parseArray extracts the dimensions and elements of an array represented in -// text format. Only representations emitted by the backend are supported. -// Notably, whitespace around brackets and delimiters is significant, and NULL -// is case-sensitive. -// -// See http://www.postgresql.org/docs/current/static/arrays.html#ARRAYS-IO -func parseArray(src, del []byte) (dims []int, elems [][]byte, err error) { - var depth, i int - - if len(src) < 1 || src[0] != '{' { - return nil, nil, fmt.Errorf("pq: unable to parse array; expected %q at offset %d", '{', 0) - } - -Open: - for i < len(src) { - switch src[i] { - case '{': - depth++ - i++ - case '}': - elems = make([][]byte, 0) - goto Close - default: - break Open - } - } - dims = make([]int, i) - -Element: - for i < len(src) { - switch src[i] { - case '{': - if depth == len(dims) { - break Element - } - depth++ - dims[depth-1] = 0 - i++ - case '"': - var elem = []byte{} - var escape bool - for i++; i < len(src); i++ { - if escape { - elem = append(elem, src[i]) - escape = false - } else { - switch src[i] { - default: - elem = append(elem, src[i]) - case '\\': - escape = true - case '"': - elems = append(elems, elem) - i++ - break Element - } - } - } - default: - for start := i; i < len(src); i++ { - if bytes.HasPrefix(src[i:], del) || src[i] == '}' { - elem := src[start:i] - if len(elem) == 0 { - return nil, nil, fmt.Errorf("pq: unable to parse array; unexpected %q at offset %d", src[i], i) - } - if bytes.Equal(elem, []byte("NULL")) { - elem = nil - } - elems = append(elems, elem) - break Element - } - } - } - } - - for i < len(src) { - if bytes.HasPrefix(src[i:], del) && depth > 0 { - dims[depth-1]++ - i += len(del) - goto Element - } else if src[i] == '}' && depth > 0 { - dims[depth-1]++ - depth-- - i++ - } else { - return nil, nil, fmt.Errorf("pq: unable to parse array; unexpected %q at offset %d", src[i], i) - } - } - -Close: - for i < len(src) { - if src[i] == '}' && depth > 0 { - depth-- - i++ - } else { - return nil, nil, fmt.Errorf("pq: unable to parse array; unexpected %q at offset %d", src[i], i) - } - } - if depth > 0 { - err = fmt.Errorf("pq: unable to parse array; expected %q at offset %d", '}', i) - } - if err == nil { - for _, d := range dims { - if (len(elems) % d) != 0 { - err = fmt.Errorf("pq: multidimensional arrays must have elements with matching dimensions") - } - } - } - return -} - -func scanLinearArray(src, del []byte, typ string) (elems [][]byte, err error) { - dims, elems, err := parseArray(src, del) - if err != nil { - return nil, err - } - if len(dims) > 1 { - return nil, fmt.Errorf("pq: cannot convert ARRAY%s to %s", strings.Replace(fmt.Sprint(dims), " ", "][", -1), typ) - } - return elems, err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/buf.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/buf.go deleted file mode 100644 index 666b0012..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/buf.go +++ /dev/null @@ -1,91 +0,0 @@ -package pq - -import ( - "bytes" - "encoding/binary" - - "github.com/lib/pq/oid" -) - -type readBuf []byte - -func (b *readBuf) int32() (n int) { - n = int(int32(binary.BigEndian.Uint32(*b))) - *b = (*b)[4:] - return -} - -func (b *readBuf) oid() (n oid.Oid) { - n = oid.Oid(binary.BigEndian.Uint32(*b)) - *b = (*b)[4:] - return -} - -// N.B: this is actually an unsigned 16-bit integer, unlike int32 -func (b *readBuf) int16() (n int) { - n = int(binary.BigEndian.Uint16(*b)) - *b = (*b)[2:] - return -} - -func (b *readBuf) string() string { - i := bytes.IndexByte(*b, 0) - if i < 0 { - errorf("invalid message format; expected string terminator") - } - s := (*b)[:i] - *b = (*b)[i+1:] - return string(s) -} - -func (b *readBuf) next(n int) (v []byte) { - v = (*b)[:n] - *b = (*b)[n:] - return -} - -func (b *readBuf) byte() byte { - return b.next(1)[0] -} - -type writeBuf struct { - buf []byte - pos int -} - -func (b *writeBuf) int32(n int) { - x := make([]byte, 4) - binary.BigEndian.PutUint32(x, uint32(n)) - b.buf = append(b.buf, x...) -} - -func (b *writeBuf) int16(n int) { - x := make([]byte, 2) - binary.BigEndian.PutUint16(x, uint16(n)) - b.buf = append(b.buf, x...) -} - -func (b *writeBuf) string(s string) { - b.buf = append(b.buf, (s + "\000")...) -} - -func (b *writeBuf) byte(c byte) { - b.buf = append(b.buf, c) -} - -func (b *writeBuf) bytes(v []byte) { - b.buf = append(b.buf, v...) -} - -func (b *writeBuf) wrap() []byte { - p := b.buf[b.pos:] - binary.BigEndian.PutUint32(p, uint32(len(p))) - return b.buf -} - -func (b *writeBuf) next(c byte) { - p := b.buf[b.pos:] - binary.BigEndian.PutUint32(p, uint32(len(p))) - b.pos = len(b.buf) + 1 - b.buf = append(b.buf, c, 0, 0, 0, 0) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn.go deleted file mode 100644 index 3e3a5cab..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn.go +++ /dev/null @@ -1,1815 +0,0 @@ -package pq - -import ( - "bufio" - "crypto/md5" - "database/sql" - "database/sql/driver" - "encoding/binary" - "errors" - "fmt" - "io" - "net" - "os" - "os/user" - "path" - "path/filepath" - "strconv" - "strings" - "time" - "unicode" - - "github.com/lib/pq/oid" -) - -// Common error types -var ( - ErrNotSupported = errors.New("pq: Unsupported command") - ErrInFailedTransaction = errors.New("pq: Could not complete operation in a failed transaction") - ErrSSLNotSupported = errors.New("pq: SSL is not enabled on the server") - ErrSSLKeyHasWorldPermissions = errors.New("pq: Private key file has group or world access. Permissions should be u=rw (0600) or less.") - ErrCouldNotDetectUsername = errors.New("pq: Could not detect default username. Please provide one explicitly.") - - errUnexpectedReady = errors.New("unexpected ReadyForQuery") - errNoRowsAffected = errors.New("no RowsAffected available after the empty statement") - errNoLastInsertId = errors.New("no LastInsertId available after the empty statement") -) - -type Driver struct{} - -func (d *Driver) Open(name string) (driver.Conn, error) { - return Open(name) -} - -func init() { - sql.Register("postgres", &Driver{}) -} - -type parameterStatus struct { - // server version in the same format as server_version_num, or 0 if - // unavailable - serverVersion int - - // the current location based on the TimeZone value of the session, if - // available - currentLocation *time.Location -} - -type transactionStatus byte - -const ( - txnStatusIdle transactionStatus = 'I' - txnStatusIdleInTransaction transactionStatus = 'T' - txnStatusInFailedTransaction transactionStatus = 'E' -) - -func (s transactionStatus) String() string { - switch s { - case txnStatusIdle: - return "idle" - case txnStatusIdleInTransaction: - return "idle in transaction" - case txnStatusInFailedTransaction: - return "in a failed transaction" - default: - errorf("unknown transactionStatus %d", s) - } - - panic("not reached") -} - -type Dialer interface { - Dial(network, address string) (net.Conn, error) - DialTimeout(network, address string, timeout time.Duration) (net.Conn, error) -} - -type defaultDialer struct{} - -func (d defaultDialer) Dial(ntw, addr string) (net.Conn, error) { - return net.Dial(ntw, addr) -} -func (d defaultDialer) DialTimeout(ntw, addr string, timeout time.Duration) (net.Conn, error) { - return net.DialTimeout(ntw, addr, timeout) -} - -type conn struct { - c net.Conn - buf *bufio.Reader - namei int - scratch [512]byte - txnStatus transactionStatus - txnFinish func() - - // Save connection arguments to use during CancelRequest. - dialer Dialer - opts values - - // Cancellation key data for use with CancelRequest messages. - processID int - secretKey int - - parameterStatus parameterStatus - - saveMessageType byte - saveMessageBuffer []byte - - // If true, this connection is bad and all public-facing functions should - // return ErrBadConn. - bad bool - - // If set, this connection should never use the binary format when - // receiving query results from prepared statements. Only provided for - // debugging. - disablePreparedBinaryResult bool - - // Whether to always send []byte parameters over as binary. Enables single - // round-trip mode for non-prepared Query calls. - binaryParameters bool - - // If true this connection is in the middle of a COPY - inCopy bool -} - -// Handle driver-side settings in parsed connection string. -func (c *conn) handleDriverSettings(o values) (err error) { - boolSetting := func(key string, val *bool) error { - if value, ok := o[key]; ok { - if value == "yes" { - *val = true - } else if value == "no" { - *val = false - } else { - return fmt.Errorf("unrecognized value %q for %s", value, key) - } - } - return nil - } - - err = boolSetting("disable_prepared_binary_result", &c.disablePreparedBinaryResult) - if err != nil { - return err - } - err = boolSetting("binary_parameters", &c.binaryParameters) - if err != nil { - return err - } - return nil -} - -func (c *conn) handlePgpass(o values) { - // if a password was supplied, do not process .pgpass - if _, ok := o["password"]; ok { - return - } - filename := os.Getenv("PGPASSFILE") - if filename == "" { - // XXX this code doesn't work on Windows where the default filename is - // XXX %APPDATA%\postgresql\pgpass.conf - user, err := user.Current() - if err != nil { - return - } - filename = filepath.Join(user.HomeDir, ".pgpass") - } - fileinfo, err := os.Stat(filename) - if err != nil { - return - } - mode := fileinfo.Mode() - if mode&(0x77) != 0 { - // XXX should warn about incorrect .pgpass permissions as psql does - return - } - file, err := os.Open(filename) - if err != nil { - return - } - defer file.Close() - scanner := bufio.NewScanner(io.Reader(file)) - hostname := o["host"] - ntw, _ := network(o) - port := o["port"] - db := o["dbname"] - username := o["user"] - // From: https://github.com/tg/pgpass/blob/master/reader.go - getFields := func(s string) []string { - fs := make([]string, 0, 5) - f := make([]rune, 0, len(s)) - - var esc bool - for _, c := range s { - switch { - case esc: - f = append(f, c) - esc = false - case c == '\\': - esc = true - case c == ':': - fs = append(fs, string(f)) - f = f[:0] - default: - f = append(f, c) - } - } - return append(fs, string(f)) - } - for scanner.Scan() { - line := scanner.Text() - if len(line) == 0 || line[0] == '#' { - continue - } - split := getFields(line) - if len(split) != 5 { - continue - } - if (split[0] == "*" || split[0] == hostname || (split[0] == "localhost" && (hostname == "" || ntw == "unix"))) && (split[1] == "*" || split[1] == port) && (split[2] == "*" || split[2] == db) && (split[3] == "*" || split[3] == username) { - o["password"] = split[4] - return - } - } -} - -func (c *conn) writeBuf(b byte) *writeBuf { - c.scratch[0] = b - return &writeBuf{ - buf: c.scratch[:5], - pos: 1, - } -} - -func Open(name string) (_ driver.Conn, err error) { - return DialOpen(defaultDialer{}, name) -} - -func DialOpen(d Dialer, name string) (_ driver.Conn, err error) { - // Handle any panics during connection initialization. Note that we - // specifically do *not* want to use errRecover(), as that would turn any - // connection errors into ErrBadConns, hiding the real error message from - // the user. - defer errRecoverNoErrBadConn(&err) - - o := make(values) - - // A number of defaults are applied here, in this order: - // - // * Very low precedence defaults applied in every situation - // * Environment variables - // * Explicitly passed connection information - o["host"] = "localhost" - o["port"] = "5432" - // N.B.: Extra float digits should be set to 3, but that breaks - // Postgres 8.4 and older, where the max is 2. - o["extra_float_digits"] = "2" - for k, v := range parseEnviron(os.Environ()) { - o[k] = v - } - - if strings.HasPrefix(name, "postgres://") || strings.HasPrefix(name, "postgresql://") { - name, err = ParseURL(name) - if err != nil { - return nil, err - } - } - - if err := parseOpts(name, o); err != nil { - return nil, err - } - - // Use the "fallback" application name if necessary - if fallback, ok := o["fallback_application_name"]; ok { - if _, ok := o["application_name"]; !ok { - o["application_name"] = fallback - } - } - - // We can't work with any client_encoding other than UTF-8 currently. - // However, we have historically allowed the user to set it to UTF-8 - // explicitly, and there's no reason to break such programs, so allow that. - // Note that the "options" setting could also set client_encoding, but - // parsing its value is not worth it. Instead, we always explicitly send - // client_encoding as a separate run-time parameter, which should override - // anything set in options. - if enc, ok := o["client_encoding"]; ok && !isUTF8(enc) { - return nil, errors.New("client_encoding must be absent or 'UTF8'") - } - o["client_encoding"] = "UTF8" - // DateStyle needs a similar treatment. - if datestyle, ok := o["datestyle"]; ok { - if datestyle != "ISO, MDY" { - panic(fmt.Sprintf("setting datestyle must be absent or %v; got %v", - "ISO, MDY", datestyle)) - } - } else { - o["datestyle"] = "ISO, MDY" - } - - // If a user is not provided by any other means, the last - // resort is to use the current operating system provided user - // name. - if _, ok := o["user"]; !ok { - u, err := userCurrent() - if err != nil { - return nil, err - } else { - o["user"] = u - } - } - - cn := &conn{ - opts: o, - dialer: d, - } - err = cn.handleDriverSettings(o) - if err != nil { - return nil, err - } - cn.handlePgpass(o) - - cn.c, err = dial(d, o) - if err != nil { - return nil, err - } - cn.ssl(o) - cn.buf = bufio.NewReader(cn.c) - cn.startup(o) - - // reset the deadline, in case one was set (see dial) - if timeout, ok := o["connect_timeout"]; ok && timeout != "0" { - err = cn.c.SetDeadline(time.Time{}) - } - return cn, err -} - -func dial(d Dialer, o values) (net.Conn, error) { - ntw, addr := network(o) - // SSL is not necessary or supported over UNIX domain sockets - if ntw == "unix" { - o["sslmode"] = "disable" - } - - // Zero or not specified means wait indefinitely. - if timeout, ok := o["connect_timeout"]; ok && timeout != "0" { - seconds, err := strconv.ParseInt(timeout, 10, 0) - if err != nil { - return nil, fmt.Errorf("invalid value for parameter connect_timeout: %s", err) - } - duration := time.Duration(seconds) * time.Second - // connect_timeout should apply to the entire connection establishment - // procedure, so we both use a timeout for the TCP connection - // establishment and set a deadline for doing the initial handshake. - // The deadline is then reset after startup() is done. - deadline := time.Now().Add(duration) - conn, err := d.DialTimeout(ntw, addr, duration) - if err != nil { - return nil, err - } - err = conn.SetDeadline(deadline) - return conn, err - } - return d.Dial(ntw, addr) -} - -func network(o values) (string, string) { - host := o["host"] - - if strings.HasPrefix(host, "/") { - sockPath := path.Join(host, ".s.PGSQL."+o["port"]) - return "unix", sockPath - } - - return "tcp", net.JoinHostPort(host, o["port"]) -} - -type values map[string]string - -// scanner implements a tokenizer for libpq-style option strings. -type scanner struct { - s []rune - i int -} - -// newScanner returns a new scanner initialized with the option string s. -func newScanner(s string) *scanner { - return &scanner{[]rune(s), 0} -} - -// Next returns the next rune. -// It returns 0, false if the end of the text has been reached. -func (s *scanner) Next() (rune, bool) { - if s.i >= len(s.s) { - return 0, false - } - r := s.s[s.i] - s.i++ - return r, true -} - -// SkipSpaces returns the next non-whitespace rune. -// It returns 0, false if the end of the text has been reached. -func (s *scanner) SkipSpaces() (rune, bool) { - r, ok := s.Next() - for unicode.IsSpace(r) && ok { - r, ok = s.Next() - } - return r, ok -} - -// parseOpts parses the options from name and adds them to the values. -// -// The parsing code is based on conninfo_parse from libpq's fe-connect.c -func parseOpts(name string, o values) error { - s := newScanner(name) - - for { - var ( - keyRunes, valRunes []rune - r rune - ok bool - ) - - if r, ok = s.SkipSpaces(); !ok { - break - } - - // Scan the key - for !unicode.IsSpace(r) && r != '=' { - keyRunes = append(keyRunes, r) - if r, ok = s.Next(); !ok { - break - } - } - - // Skip any whitespace if we're not at the = yet - if r != '=' { - r, ok = s.SkipSpaces() - } - - // The current character should be = - if r != '=' || !ok { - return fmt.Errorf(`missing "=" after %q in connection info string"`, string(keyRunes)) - } - - // Skip any whitespace after the = - if r, ok = s.SkipSpaces(); !ok { - // If we reach the end here, the last value is just an empty string as per libpq. - o[string(keyRunes)] = "" - break - } - - if r != '\'' { - for !unicode.IsSpace(r) { - if r == '\\' { - if r, ok = s.Next(); !ok { - return fmt.Errorf(`missing character after backslash`) - } - } - valRunes = append(valRunes, r) - - if r, ok = s.Next(); !ok { - break - } - } - } else { - quote: - for { - if r, ok = s.Next(); !ok { - return fmt.Errorf(`unterminated quoted string literal in connection string`) - } - switch r { - case '\'': - break quote - case '\\': - r, _ = s.Next() - fallthrough - default: - valRunes = append(valRunes, r) - } - } - } - - o[string(keyRunes)] = string(valRunes) - } - - return nil -} - -func (cn *conn) isInTransaction() bool { - return cn.txnStatus == txnStatusIdleInTransaction || - cn.txnStatus == txnStatusInFailedTransaction -} - -func (cn *conn) checkIsInTransaction(intxn bool) { - if cn.isInTransaction() != intxn { - cn.bad = true - errorf("unexpected transaction status %v", cn.txnStatus) - } -} - -func (cn *conn) Begin() (_ driver.Tx, err error) { - if cn.bad { - return nil, driver.ErrBadConn - } - defer cn.errRecover(&err) - - cn.checkIsInTransaction(false) - _, commandTag, err := cn.simpleExec("BEGIN") - if err != nil { - return nil, err - } - if commandTag != "BEGIN" { - cn.bad = true - return nil, fmt.Errorf("unexpected command tag %s", commandTag) - } - if cn.txnStatus != txnStatusIdleInTransaction { - cn.bad = true - return nil, fmt.Errorf("unexpected transaction status %v", cn.txnStatus) - } - return cn, nil -} - -func (cn *conn) closeTxn() { - if finish := cn.txnFinish; finish != nil { - finish() - } -} - -func (cn *conn) Commit() (err error) { - defer cn.closeTxn() - if cn.bad { - return driver.ErrBadConn - } - defer cn.errRecover(&err) - - cn.checkIsInTransaction(true) - // We don't want the client to think that everything is okay if it tries - // to commit a failed transaction. However, no matter what we return, - // database/sql will release this connection back into the free connection - // pool so we have to abort the current transaction here. Note that you - // would get the same behaviour if you issued a COMMIT in a failed - // transaction, so it's also the least surprising thing to do here. - if cn.txnStatus == txnStatusInFailedTransaction { - if err := cn.Rollback(); err != nil { - return err - } - return ErrInFailedTransaction - } - - _, commandTag, err := cn.simpleExec("COMMIT") - if err != nil { - if cn.isInTransaction() { - cn.bad = true - } - return err - } - if commandTag != "COMMIT" { - cn.bad = true - return fmt.Errorf("unexpected command tag %s", commandTag) - } - cn.checkIsInTransaction(false) - return nil -} - -func (cn *conn) Rollback() (err error) { - defer cn.closeTxn() - if cn.bad { - return driver.ErrBadConn - } - defer cn.errRecover(&err) - - cn.checkIsInTransaction(true) - _, commandTag, err := cn.simpleExec("ROLLBACK") - if err != nil { - if cn.isInTransaction() { - cn.bad = true - } - return err - } - if commandTag != "ROLLBACK" { - return fmt.Errorf("unexpected command tag %s", commandTag) - } - cn.checkIsInTransaction(false) - return nil -} - -func (cn *conn) gname() string { - cn.namei++ - return strconv.FormatInt(int64(cn.namei), 10) -} - -func (cn *conn) simpleExec(q string) (res driver.Result, commandTag string, err error) { - b := cn.writeBuf('Q') - b.string(q) - cn.send(b) - - for { - t, r := cn.recv1() - switch t { - case 'C': - res, commandTag = cn.parseComplete(r.string()) - case 'Z': - cn.processReadyForQuery(r) - if res == nil && err == nil { - err = errUnexpectedReady - } - // done - return - case 'E': - err = parseError(r) - case 'I': - res = emptyRows - case 'T', 'D': - // ignore any results - default: - cn.bad = true - errorf("unknown response for simple query: %q", t) - } - } -} - -func (cn *conn) simpleQuery(q string) (res *rows, err error) { - defer cn.errRecover(&err) - - b := cn.writeBuf('Q') - b.string(q) - cn.send(b) - - for { - t, r := cn.recv1() - switch t { - case 'C', 'I': - // We allow queries which don't return any results through Query as - // well as Exec. We still have to give database/sql a rows object - // the user can close, though, to avoid connections from being - // leaked. A "rows" with done=true works fine for that purpose. - if err != nil { - cn.bad = true - errorf("unexpected message %q in simple query execution", t) - } - if res == nil { - res = &rows{ - cn: cn, - } - } - // Set the result and tag to the last command complete if there wasn't a - // query already run. Although queries usually return from here and cede - // control to Next, a query with zero results does not. - if t == 'C' && res.colNames == nil { - res.result, res.tag = cn.parseComplete(r.string()) - } - res.done = true - case 'Z': - cn.processReadyForQuery(r) - // done - return - case 'E': - res = nil - err = parseError(r) - case 'D': - if res == nil { - cn.bad = true - errorf("unexpected DataRow in simple query execution") - } - // the query didn't fail; kick off to Next - cn.saveMessage(t, r) - return - case 'T': - // res might be non-nil here if we received a previous - // CommandComplete, but that's fine; just overwrite it - res = &rows{cn: cn} - res.colNames, res.colFmts, res.colTyps = parsePortalRowDescribe(r) - - // To work around a bug in QueryRow in Go 1.2 and earlier, wait - // until the first DataRow has been received. - default: - cn.bad = true - errorf("unknown response for simple query: %q", t) - } - } -} - -type noRows struct{} - -var emptyRows noRows - -var _ driver.Result = noRows{} - -func (noRows) LastInsertId() (int64, error) { - return 0, errNoLastInsertId -} - -func (noRows) RowsAffected() (int64, error) { - return 0, errNoRowsAffected -} - -// Decides which column formats to use for a prepared statement. The input is -// an array of type oids, one element per result column. -func decideColumnFormats(colTyps []oid.Oid, forceText bool) (colFmts []format, colFmtData []byte) { - if len(colTyps) == 0 { - return nil, colFmtDataAllText - } - - colFmts = make([]format, len(colTyps)) - if forceText { - return colFmts, colFmtDataAllText - } - - allBinary := true - allText := true - for i, o := range colTyps { - switch o { - // This is the list of types to use binary mode for when receiving them - // through a prepared statement. If a type appears in this list, it - // must also be implemented in binaryDecode in encode.go. - case oid.T_bytea: - fallthrough - case oid.T_int8: - fallthrough - case oid.T_int4: - fallthrough - case oid.T_int2: - fallthrough - case oid.T_uuid: - colFmts[i] = formatBinary - allText = false - - default: - allBinary = false - } - } - - if allBinary { - return colFmts, colFmtDataAllBinary - } else if allText { - return colFmts, colFmtDataAllText - } else { - colFmtData = make([]byte, 2+len(colFmts)*2) - binary.BigEndian.PutUint16(colFmtData, uint16(len(colFmts))) - for i, v := range colFmts { - binary.BigEndian.PutUint16(colFmtData[2+i*2:], uint16(v)) - } - return colFmts, colFmtData - } -} - -func (cn *conn) prepareTo(q, stmtName string) *stmt { - st := &stmt{cn: cn, name: stmtName} - - b := cn.writeBuf('P') - b.string(st.name) - b.string(q) - b.int16(0) - - b.next('D') - b.byte('S') - b.string(st.name) - - b.next('S') - cn.send(b) - - cn.readParseResponse() - st.paramTyps, st.colNames, st.colTyps = cn.readStatementDescribeResponse() - st.colFmts, st.colFmtData = decideColumnFormats(st.colTyps, cn.disablePreparedBinaryResult) - cn.readReadyForQuery() - return st -} - -func (cn *conn) Prepare(q string) (_ driver.Stmt, err error) { - if cn.bad { - return nil, driver.ErrBadConn - } - defer cn.errRecover(&err) - - if len(q) >= 4 && strings.EqualFold(q[:4], "COPY") { - s, err := cn.prepareCopyIn(q) - if err == nil { - cn.inCopy = true - } - return s, err - } - return cn.prepareTo(q, cn.gname()), nil -} - -func (cn *conn) Close() (err error) { - // Skip cn.bad return here because we always want to close a connection. - defer cn.errRecover(&err) - - // Ensure that cn.c.Close is always run. Since error handling is done with - // panics and cn.errRecover, the Close must be in a defer. - defer func() { - cerr := cn.c.Close() - if err == nil { - err = cerr - } - }() - - // Don't go through send(); ListenerConn relies on us not scribbling on the - // scratch buffer of this connection. - return cn.sendSimpleMessage('X') -} - -// Implement the "Queryer" interface -func (cn *conn) Query(query string, args []driver.Value) (driver.Rows, error) { - return cn.query(query, args) -} - -func (cn *conn) query(query string, args []driver.Value) (_ *rows, err error) { - if cn.bad { - return nil, driver.ErrBadConn - } - if cn.inCopy { - return nil, errCopyInProgress - } - defer cn.errRecover(&err) - - // Check to see if we can use the "simpleQuery" interface, which is - // *much* faster than going through prepare/exec - if len(args) == 0 { - return cn.simpleQuery(query) - } - - if cn.binaryParameters { - cn.sendBinaryModeQuery(query, args) - - cn.readParseResponse() - cn.readBindResponse() - rows := &rows{cn: cn} - rows.colNames, rows.colFmts, rows.colTyps = cn.readPortalDescribeResponse() - cn.postExecuteWorkaround() - return rows, nil - } else { - st := cn.prepareTo(query, "") - st.exec(args) - return &rows{ - cn: cn, - colNames: st.colNames, - colTyps: st.colTyps, - colFmts: st.colFmts, - }, nil - } -} - -// Implement the optional "Execer" interface for one-shot queries -func (cn *conn) Exec(query string, args []driver.Value) (res driver.Result, err error) { - if cn.bad { - return nil, driver.ErrBadConn - } - defer cn.errRecover(&err) - - // Check to see if we can use the "simpleExec" interface, which is - // *much* faster than going through prepare/exec - if len(args) == 0 { - // ignore commandTag, our caller doesn't care - r, _, err := cn.simpleExec(query) - return r, err - } - - if cn.binaryParameters { - cn.sendBinaryModeQuery(query, args) - - cn.readParseResponse() - cn.readBindResponse() - cn.readPortalDescribeResponse() - cn.postExecuteWorkaround() - res, _, err = cn.readExecuteResponse("Execute") - return res, err - } else { - // Use the unnamed statement to defer planning until bind - // time, or else value-based selectivity estimates cannot be - // used. - st := cn.prepareTo(query, "") - r, err := st.Exec(args) - if err != nil { - panic(err) - } - return r, err - } -} - -func (cn *conn) send(m *writeBuf) { - _, err := cn.c.Write(m.wrap()) - if err != nil { - panic(err) - } -} - -func (cn *conn) sendStartupPacket(m *writeBuf) error { - _, err := cn.c.Write((m.wrap())[1:]) - return err -} - -// Send a message of type typ to the server on the other end of cn. The -// message should have no payload. This method does not use the scratch -// buffer. -func (cn *conn) sendSimpleMessage(typ byte) (err error) { - _, err = cn.c.Write([]byte{typ, '\x00', '\x00', '\x00', '\x04'}) - return err -} - -// saveMessage memorizes a message and its buffer in the conn struct. -// recvMessage will then return these values on the next call to it. This -// method is useful in cases where you have to see what the next message is -// going to be (e.g. to see whether it's an error or not) but you can't handle -// the message yourself. -func (cn *conn) saveMessage(typ byte, buf *readBuf) { - if cn.saveMessageType != 0 { - cn.bad = true - errorf("unexpected saveMessageType %d", cn.saveMessageType) - } - cn.saveMessageType = typ - cn.saveMessageBuffer = *buf -} - -// recvMessage receives any message from the backend, or returns an error if -// a problem occurred while reading the message. -func (cn *conn) recvMessage(r *readBuf) (byte, error) { - // workaround for a QueryRow bug, see exec - if cn.saveMessageType != 0 { - t := cn.saveMessageType - *r = cn.saveMessageBuffer - cn.saveMessageType = 0 - cn.saveMessageBuffer = nil - return t, nil - } - - x := cn.scratch[:5] - _, err := io.ReadFull(cn.buf, x) - if err != nil { - return 0, err - } - - // read the type and length of the message that follows - t := x[0] - n := int(binary.BigEndian.Uint32(x[1:])) - 4 - var y []byte - if n <= len(cn.scratch) { - y = cn.scratch[:n] - } else { - y = make([]byte, n) - } - _, err = io.ReadFull(cn.buf, y) - if err != nil { - return 0, err - } - *r = y - return t, nil -} - -// recv receives a message from the backend, but if an error happened while -// reading the message or the received message was an ErrorResponse, it panics. -// NoticeResponses are ignored. This function should generally be used only -// during the startup sequence. -func (cn *conn) recv() (t byte, r *readBuf) { - for { - var err error - r = &readBuf{} - t, err = cn.recvMessage(r) - if err != nil { - panic(err) - } - - switch t { - case 'E': - panic(parseError(r)) - case 'N': - // ignore - default: - return - } - } -} - -// recv1Buf is exactly equivalent to recv1, except it uses a buffer supplied by -// the caller to avoid an allocation. -func (cn *conn) recv1Buf(r *readBuf) byte { - for { - t, err := cn.recvMessage(r) - if err != nil { - panic(err) - } - - switch t { - case 'A', 'N': - // ignore - case 'S': - cn.processParameterStatus(r) - default: - return t - } - } -} - -// recv1 receives a message from the backend, panicking if an error occurs -// while attempting to read it. All asynchronous messages are ignored, with -// the exception of ErrorResponse. -func (cn *conn) recv1() (t byte, r *readBuf) { - r = &readBuf{} - t = cn.recv1Buf(r) - return t, r -} - -func (cn *conn) ssl(o values) { - upgrade := ssl(o) - if upgrade == nil { - // Nothing to do - return - } - - w := cn.writeBuf(0) - w.int32(80877103) - if err := cn.sendStartupPacket(w); err != nil { - panic(err) - } - - b := cn.scratch[:1] - _, err := io.ReadFull(cn.c, b) - if err != nil { - panic(err) - } - - if b[0] != 'S' { - panic(ErrSSLNotSupported) - } - - cn.c = upgrade(cn.c) -} - -// isDriverSetting returns true iff a setting is purely for configuring the -// driver's options and should not be sent to the server in the connection -// startup packet. -func isDriverSetting(key string) bool { - switch key { - case "host", "port": - return true - case "password": - return true - case "sslmode", "sslcert", "sslkey", "sslrootcert": - return true - case "fallback_application_name": - return true - case "connect_timeout": - return true - case "disable_prepared_binary_result": - return true - case "binary_parameters": - return true - - default: - return false - } -} - -func (cn *conn) startup(o values) { - w := cn.writeBuf(0) - w.int32(196608) - // Send the backend the name of the database we want to connect to, and the - // user we want to connect as. Additionally, we send over any run-time - // parameters potentially included in the connection string. If the server - // doesn't recognize any of them, it will reply with an error. - for k, v := range o { - if isDriverSetting(k) { - // skip options which can't be run-time parameters - continue - } - // The protocol requires us to supply the database name as "database" - // instead of "dbname". - if k == "dbname" { - k = "database" - } - w.string(k) - w.string(v) - } - w.string("") - if err := cn.sendStartupPacket(w); err != nil { - panic(err) - } - - for { - t, r := cn.recv() - switch t { - case 'K': - cn.processBackendKeyData(r) - case 'S': - cn.processParameterStatus(r) - case 'R': - cn.auth(r, o) - case 'Z': - cn.processReadyForQuery(r) - return - default: - errorf("unknown response for startup: %q", t) - } - } -} - -func (cn *conn) auth(r *readBuf, o values) { - switch code := r.int32(); code { - case 0: - // OK - case 3: - w := cn.writeBuf('p') - w.string(o["password"]) - cn.send(w) - - t, r := cn.recv() - if t != 'R' { - errorf("unexpected password response: %q", t) - } - - if r.int32() != 0 { - errorf("unexpected authentication response: %q", t) - } - case 5: - s := string(r.next(4)) - w := cn.writeBuf('p') - w.string("md5" + md5s(md5s(o["password"]+o["user"])+s)) - cn.send(w) - - t, r := cn.recv() - if t != 'R' { - errorf("unexpected password response: %q", t) - } - - if r.int32() != 0 { - errorf("unexpected authentication response: %q", t) - } - default: - errorf("unknown authentication response: %d", code) - } -} - -type format int - -const formatText format = 0 -const formatBinary format = 1 - -// One result-column format code with the value 1 (i.e. all binary). -var colFmtDataAllBinary []byte = []byte{0, 1, 0, 1} - -// No result-column format codes (i.e. all text). -var colFmtDataAllText []byte = []byte{0, 0} - -type stmt struct { - cn *conn - name string - colNames []string - colFmts []format - colFmtData []byte - colTyps []oid.Oid - paramTyps []oid.Oid - closed bool -} - -func (st *stmt) Close() (err error) { - if st.closed { - return nil - } - if st.cn.bad { - return driver.ErrBadConn - } - defer st.cn.errRecover(&err) - - w := st.cn.writeBuf('C') - w.byte('S') - w.string(st.name) - st.cn.send(w) - - st.cn.send(st.cn.writeBuf('S')) - - t, _ := st.cn.recv1() - if t != '3' { - st.cn.bad = true - errorf("unexpected close response: %q", t) - } - st.closed = true - - t, r := st.cn.recv1() - if t != 'Z' { - st.cn.bad = true - errorf("expected ready for query, but got: %q", t) - } - st.cn.processReadyForQuery(r) - - return nil -} - -func (st *stmt) Query(v []driver.Value) (r driver.Rows, err error) { - if st.cn.bad { - return nil, driver.ErrBadConn - } - defer st.cn.errRecover(&err) - - st.exec(v) - return &rows{ - cn: st.cn, - colNames: st.colNames, - colTyps: st.colTyps, - colFmts: st.colFmts, - }, nil -} - -func (st *stmt) Exec(v []driver.Value) (res driver.Result, err error) { - if st.cn.bad { - return nil, driver.ErrBadConn - } - defer st.cn.errRecover(&err) - - st.exec(v) - res, _, err = st.cn.readExecuteResponse("simple query") - return res, err -} - -func (st *stmt) exec(v []driver.Value) { - if len(v) >= 65536 { - errorf("got %d parameters but PostgreSQL only supports 65535 parameters", len(v)) - } - if len(v) != len(st.paramTyps) { - errorf("got %d parameters but the statement requires %d", len(v), len(st.paramTyps)) - } - - cn := st.cn - w := cn.writeBuf('B') - w.byte(0) // unnamed portal - w.string(st.name) - - if cn.binaryParameters { - cn.sendBinaryParameters(w, v) - } else { - w.int16(0) - w.int16(len(v)) - for i, x := range v { - if x == nil { - w.int32(-1) - } else { - b := encode(&cn.parameterStatus, x, st.paramTyps[i]) - w.int32(len(b)) - w.bytes(b) - } - } - } - w.bytes(st.colFmtData) - - w.next('E') - w.byte(0) - w.int32(0) - - w.next('S') - cn.send(w) - - cn.readBindResponse() - cn.postExecuteWorkaround() - -} - -func (st *stmt) NumInput() int { - return len(st.paramTyps) -} - -// parseComplete parses the "command tag" from a CommandComplete message, and -// returns the number of rows affected (if applicable) and a string -// identifying only the command that was executed, e.g. "ALTER TABLE". If the -// command tag could not be parsed, parseComplete panics. -func (cn *conn) parseComplete(commandTag string) (driver.Result, string) { - commandsWithAffectedRows := []string{ - "SELECT ", - // INSERT is handled below - "UPDATE ", - "DELETE ", - "FETCH ", - "MOVE ", - "COPY ", - } - - var affectedRows *string - for _, tag := range commandsWithAffectedRows { - if strings.HasPrefix(commandTag, tag) { - t := commandTag[len(tag):] - affectedRows = &t - commandTag = tag[:len(tag)-1] - break - } - } - // INSERT also includes the oid of the inserted row in its command tag. - // Oids in user tables are deprecated, and the oid is only returned when - // exactly one row is inserted, so it's unlikely to be of value to any - // real-world application and we can ignore it. - if affectedRows == nil && strings.HasPrefix(commandTag, "INSERT ") { - parts := strings.Split(commandTag, " ") - if len(parts) != 3 { - cn.bad = true - errorf("unexpected INSERT command tag %s", commandTag) - } - affectedRows = &parts[len(parts)-1] - commandTag = "INSERT" - } - // There should be no affected rows attached to the tag, just return it - if affectedRows == nil { - return driver.RowsAffected(0), commandTag - } - n, err := strconv.ParseInt(*affectedRows, 10, 64) - if err != nil { - cn.bad = true - errorf("could not parse commandTag: %s", err) - } - return driver.RowsAffected(n), commandTag -} - -type rows struct { - cn *conn - finish func() - colNames []string - colTyps []oid.Oid - colFmts []format - done bool - rb readBuf - result driver.Result - tag string -} - -func (rs *rows) Close() error { - if finish := rs.finish; finish != nil { - defer finish() - } - // no need to look at cn.bad as Next() will - for { - err := rs.Next(nil) - switch err { - case nil: - case io.EOF: - return nil - default: - return err - } - } -} - -func (rs *rows) Columns() []string { - return rs.colNames -} - -func (rs *rows) Result() driver.Result { - if rs.result == nil { - return emptyRows - } - return rs.result -} - -func (rs *rows) Tag() string { - return rs.tag -} - -func (rs *rows) Next(dest []driver.Value) (err error) { - if rs.done { - return io.EOF - } - - conn := rs.cn - if conn.bad { - return driver.ErrBadConn - } - defer conn.errRecover(&err) - - for { - t := conn.recv1Buf(&rs.rb) - switch t { - case 'E': - err = parseError(&rs.rb) - case 'C', 'I': - if t == 'C' { - rs.result, rs.tag = conn.parseComplete(rs.rb.string()) - } - continue - case 'Z': - conn.processReadyForQuery(&rs.rb) - rs.done = true - if err != nil { - return err - } - return io.EOF - case 'D': - n := rs.rb.int16() - if err != nil { - conn.bad = true - errorf("unexpected DataRow after error %s", err) - } - if n < len(dest) { - dest = dest[:n] - } - for i := range dest { - l := rs.rb.int32() - if l == -1 { - dest[i] = nil - continue - } - dest[i] = decode(&conn.parameterStatus, rs.rb.next(l), rs.colTyps[i], rs.colFmts[i]) - } - return - case 'T': - rs.colNames, rs.colFmts, rs.colTyps = parsePortalRowDescribe(&rs.rb) - return io.EOF - default: - errorf("unexpected message after execute: %q", t) - } - } -} - -func (rs *rows) HasNextResultSet() bool { - return !rs.done -} - -func (rs *rows) NextResultSet() error { - return nil -} - -// QuoteIdentifier quotes an "identifier" (e.g. a table or a column name) to be -// used as part of an SQL statement. For example: -// -// tblname := "my_table" -// data := "my_data" -// err = db.Exec(fmt.Sprintf("INSERT INTO %s VALUES ($1)", pq.QuoteIdentifier(tblname)), data) -// -// Any double quotes in name will be escaped. The quoted identifier will be -// case sensitive when used in a query. If the input string contains a zero -// byte, the result will be truncated immediately before it. -func QuoteIdentifier(name string) string { - end := strings.IndexRune(name, 0) - if end > -1 { - name = name[:end] - } - return `"` + strings.Replace(name, `"`, `""`, -1) + `"` -} - -func md5s(s string) string { - h := md5.New() - h.Write([]byte(s)) - return fmt.Sprintf("%x", h.Sum(nil)) -} - -func (cn *conn) sendBinaryParameters(b *writeBuf, args []driver.Value) { - // Do one pass over the parameters to see if we're going to send any of - // them over in binary. If we are, create a paramFormats array at the - // same time. - var paramFormats []int - for i, x := range args { - _, ok := x.([]byte) - if ok { - if paramFormats == nil { - paramFormats = make([]int, len(args)) - } - paramFormats[i] = 1 - } - } - if paramFormats == nil { - b.int16(0) - } else { - b.int16(len(paramFormats)) - for _, x := range paramFormats { - b.int16(x) - } - } - - b.int16(len(args)) - for _, x := range args { - if x == nil { - b.int32(-1) - } else { - datum := binaryEncode(&cn.parameterStatus, x) - b.int32(len(datum)) - b.bytes(datum) - } - } -} - -func (cn *conn) sendBinaryModeQuery(query string, args []driver.Value) { - if len(args) >= 65536 { - errorf("got %d parameters but PostgreSQL only supports 65535 parameters", len(args)) - } - - b := cn.writeBuf('P') - b.byte(0) // unnamed statement - b.string(query) - b.int16(0) - - b.next('B') - b.int16(0) // unnamed portal and statement - cn.sendBinaryParameters(b, args) - b.bytes(colFmtDataAllText) - - b.next('D') - b.byte('P') - b.byte(0) // unnamed portal - - b.next('E') - b.byte(0) - b.int32(0) - - b.next('S') - cn.send(b) -} - -func (c *conn) processParameterStatus(r *readBuf) { - var err error - - param := r.string() - switch param { - case "server_version": - var major1 int - var major2 int - var minor int - _, err = fmt.Sscanf(r.string(), "%d.%d.%d", &major1, &major2, &minor) - if err == nil { - c.parameterStatus.serverVersion = major1*10000 + major2*100 + minor - } - - case "TimeZone": - c.parameterStatus.currentLocation, err = time.LoadLocation(r.string()) - if err != nil { - c.parameterStatus.currentLocation = nil - } - - default: - // ignore - } -} - -func (c *conn) processReadyForQuery(r *readBuf) { - c.txnStatus = transactionStatus(r.byte()) -} - -func (cn *conn) readReadyForQuery() { - t, r := cn.recv1() - switch t { - case 'Z': - cn.processReadyForQuery(r) - return - default: - cn.bad = true - errorf("unexpected message %q; expected ReadyForQuery", t) - } -} - -func (c *conn) processBackendKeyData(r *readBuf) { - c.processID = r.int32() - c.secretKey = r.int32() -} - -func (cn *conn) readParseResponse() { - t, r := cn.recv1() - switch t { - case '1': - return - case 'E': - err := parseError(r) - cn.readReadyForQuery() - panic(err) - default: - cn.bad = true - errorf("unexpected Parse response %q", t) - } -} - -func (cn *conn) readStatementDescribeResponse() (paramTyps []oid.Oid, colNames []string, colTyps []oid.Oid) { - for { - t, r := cn.recv1() - switch t { - case 't': - nparams := r.int16() - paramTyps = make([]oid.Oid, nparams) - for i := range paramTyps { - paramTyps[i] = r.oid() - } - case 'n': - return paramTyps, nil, nil - case 'T': - colNames, colTyps = parseStatementRowDescribe(r) - return paramTyps, colNames, colTyps - case 'E': - err := parseError(r) - cn.readReadyForQuery() - panic(err) - default: - cn.bad = true - errorf("unexpected Describe statement response %q", t) - } - } -} - -func (cn *conn) readPortalDescribeResponse() (colNames []string, colFmts []format, colTyps []oid.Oid) { - t, r := cn.recv1() - switch t { - case 'T': - return parsePortalRowDescribe(r) - case 'n': - return nil, nil, nil - case 'E': - err := parseError(r) - cn.readReadyForQuery() - panic(err) - default: - cn.bad = true - errorf("unexpected Describe response %q", t) - } - panic("not reached") -} - -func (cn *conn) readBindResponse() { - t, r := cn.recv1() - switch t { - case '2': - return - case 'E': - err := parseError(r) - cn.readReadyForQuery() - panic(err) - default: - cn.bad = true - errorf("unexpected Bind response %q", t) - } -} - -func (cn *conn) postExecuteWorkaround() { - // Work around a bug in sql.DB.QueryRow: in Go 1.2 and earlier it ignores - // any errors from rows.Next, which masks errors that happened during the - // execution of the query. To avoid the problem in common cases, we wait - // here for one more message from the database. If it's not an error the - // query will likely succeed (or perhaps has already, if it's a - // CommandComplete), so we push the message into the conn struct; recv1 - // will return it as the next message for rows.Next or rows.Close. - // However, if it's an error, we wait until ReadyForQuery and then return - // the error to our caller. - for { - t, r := cn.recv1() - switch t { - case 'E': - err := parseError(r) - cn.readReadyForQuery() - panic(err) - case 'C', 'D', 'I': - // the query didn't fail, but we can't process this message - cn.saveMessage(t, r) - return - default: - cn.bad = true - errorf("unexpected message during extended query execution: %q", t) - } - } -} - -// Only for Exec(), since we ignore the returned data -func (cn *conn) readExecuteResponse(protocolState string) (res driver.Result, commandTag string, err error) { - for { - t, r := cn.recv1() - switch t { - case 'C': - if err != nil { - cn.bad = true - errorf("unexpected CommandComplete after error %s", err) - } - res, commandTag = cn.parseComplete(r.string()) - case 'Z': - cn.processReadyForQuery(r) - if res == nil && err == nil { - err = errUnexpectedReady - } - return res, commandTag, err - case 'E': - err = parseError(r) - case 'T', 'D', 'I': - if err != nil { - cn.bad = true - errorf("unexpected %q after error %s", t, err) - } - if t == 'I' { - res = emptyRows - } - // ignore any results - default: - cn.bad = true - errorf("unknown %s response: %q", protocolState, t) - } - } -} - -func parseStatementRowDescribe(r *readBuf) (colNames []string, colTyps []oid.Oid) { - n := r.int16() - colNames = make([]string, n) - colTyps = make([]oid.Oid, n) - for i := range colNames { - colNames[i] = r.string() - r.next(6) - colTyps[i] = r.oid() - r.next(6) - // format code not known when describing a statement; always 0 - r.next(2) - } - return -} - -func parsePortalRowDescribe(r *readBuf) (colNames []string, colFmts []format, colTyps []oid.Oid) { - n := r.int16() - colNames = make([]string, n) - colFmts = make([]format, n) - colTyps = make([]oid.Oid, n) - for i := range colNames { - colNames[i] = r.string() - r.next(6) - colTyps[i] = r.oid() - r.next(6) - colFmts[i] = format(r.int16()) - } - return -} - -// parseEnviron tries to mimic some of libpq's environment handling -// -// To ease testing, it does not directly reference os.Environ, but is -// designed to accept its output. -// -// Environment-set connection information is intended to have a higher -// precedence than a library default but lower than any explicitly -// passed information (such as in the URL or connection string). -func parseEnviron(env []string) (out map[string]string) { - out = make(map[string]string) - - for _, v := range env { - parts := strings.SplitN(v, "=", 2) - - accrue := func(keyname string) { - out[keyname] = parts[1] - } - unsupported := func() { - panic(fmt.Sprintf("setting %v not supported", parts[0])) - } - - // The order of these is the same as is seen in the - // PostgreSQL 9.1 manual. Unsupported but well-defined - // keys cause a panic; these should be unset prior to - // execution. Options which pq expects to be set to a - // certain value are allowed, but must be set to that - // value if present (they can, of course, be absent). - switch parts[0] { - case "PGHOST": - accrue("host") - case "PGHOSTADDR": - unsupported() - case "PGPORT": - accrue("port") - case "PGDATABASE": - accrue("dbname") - case "PGUSER": - accrue("user") - case "PGPASSWORD": - accrue("password") - case "PGSERVICE", "PGSERVICEFILE", "PGREALM": - unsupported() - case "PGOPTIONS": - accrue("options") - case "PGAPPNAME": - accrue("application_name") - case "PGSSLMODE": - accrue("sslmode") - case "PGSSLCERT": - accrue("sslcert") - case "PGSSLKEY": - accrue("sslkey") - case "PGSSLROOTCERT": - accrue("sslrootcert") - case "PGREQUIRESSL", "PGSSLCRL": - unsupported() - case "PGREQUIREPEER": - unsupported() - case "PGKRBSRVNAME", "PGGSSLIB": - unsupported() - case "PGCONNECT_TIMEOUT": - accrue("connect_timeout") - case "PGCLIENTENCODING": - accrue("client_encoding") - case "PGDATESTYLE": - accrue("datestyle") - case "PGTZ": - accrue("timezone") - case "PGGEQO": - accrue("geqo") - case "PGSYSCONFDIR", "PGLOCALEDIR": - unsupported() - } - } - - return out -} - -// isUTF8 returns whether name is a fuzzy variation of the string "UTF-8". -func isUTF8(name string) bool { - // Recognize all sorts of silly things as "UTF-8", like Postgres does - s := strings.Map(alnumLowerASCII, name) - return s == "utf8" || s == "unicode" -} - -func alnumLowerASCII(ch rune) rune { - if 'A' <= ch && ch <= 'Z' { - return ch + ('a' - 'A') - } - if 'a' <= ch && ch <= 'z' || '0' <= ch && ch <= '9' { - return ch - } - return -1 // discard -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn_go18.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn_go18.go deleted file mode 100644 index fa3755d9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/conn_go18.go +++ /dev/null @@ -1,107 +0,0 @@ -// +build go1.8 - -package pq - -import ( - "context" - "database/sql/driver" - "errors" - "io" - "io/ioutil" -) - -// Implement the "QueryerContext" interface -func (cn *conn) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Rows, error) { - list := make([]driver.Value, len(args)) - for i, nv := range args { - list[i] = nv.Value - } - finish := cn.watchCancel(ctx) - r, err := cn.query(query, list) - if err != nil { - return nil, err - } - r.finish = finish - return r, nil -} - -// Implement the "ExecerContext" interface -func (cn *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error) { - list := make([]driver.Value, len(args)) - for i, nv := range args { - list[i] = nv.Value - } - - if finish := cn.watchCancel(ctx); finish != nil { - defer finish() - } - - return cn.Exec(query, list) -} - -// Implement the "ConnBeginTx" interface -func (cn *conn) BeginTx(ctx context.Context, opts driver.TxOptions) (driver.Tx, error) { - if opts.Isolation != 0 { - return nil, errors.New("isolation levels not supported") - } - if opts.ReadOnly { - return nil, errors.New("read-only transactions not supported") - } - tx, err := cn.Begin() - if err != nil { - return nil, err - } - cn.txnFinish = cn.watchCancel(ctx) - return tx, nil -} - -func (cn *conn) watchCancel(ctx context.Context) func() { - if done := ctx.Done(); done != nil { - finished := make(chan struct{}) - go func() { - select { - case <-done: - _ = cn.cancel() - finished <- struct{}{} - case <-finished: - } - }() - return func() { - select { - case <-finished: - case finished <- struct{}{}: - } - } - } - return nil -} - -func (cn *conn) cancel() error { - c, err := dial(cn.dialer, cn.opts) - if err != nil { - return err - } - defer c.Close() - - { - can := conn{ - c: c, - } - can.ssl(cn.opts) - - w := can.writeBuf(0) - w.int32(80877102) // cancel request code - w.int32(cn.processID) - w.int32(cn.secretKey) - - if err := can.sendStartupPacket(w); err != nil { - return err - } - } - - // Read until EOF to ensure that the server received the cancel. - { - _, err := io.Copy(ioutil.Discard, c) - return err - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/copy.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/copy.go deleted file mode 100644 index 345c2398..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/copy.go +++ /dev/null @@ -1,282 +0,0 @@ -package pq - -import ( - "database/sql/driver" - "encoding/binary" - "errors" - "fmt" - "sync" -) - -var ( - errCopyInClosed = errors.New("pq: copyin statement has already been closed") - errBinaryCopyNotSupported = errors.New("pq: only text format supported for COPY") - errCopyToNotSupported = errors.New("pq: COPY TO is not supported") - errCopyNotSupportedOutsideTxn = errors.New("pq: COPY is only allowed inside a transaction") - errCopyInProgress = errors.New("pq: COPY in progress") -) - -// CopyIn creates a COPY FROM statement which can be prepared with -// Tx.Prepare(). The target table should be visible in search_path. -func CopyIn(table string, columns ...string) string { - stmt := "COPY " + QuoteIdentifier(table) + " (" - for i, col := range columns { - if i != 0 { - stmt += ", " - } - stmt += QuoteIdentifier(col) - } - stmt += ") FROM STDIN" - return stmt -} - -// CopyInSchema creates a COPY FROM statement which can be prepared with -// Tx.Prepare(). -func CopyInSchema(schema, table string, columns ...string) string { - stmt := "COPY " + QuoteIdentifier(schema) + "." + QuoteIdentifier(table) + " (" - for i, col := range columns { - if i != 0 { - stmt += ", " - } - stmt += QuoteIdentifier(col) - } - stmt += ") FROM STDIN" - return stmt -} - -type copyin struct { - cn *conn - buffer []byte - rowData chan []byte - done chan bool - - closed bool - - sync.Mutex // guards err - err error -} - -const ciBufferSize = 64 * 1024 - -// flush buffer before the buffer is filled up and needs reallocation -const ciBufferFlushSize = 63 * 1024 - -func (cn *conn) prepareCopyIn(q string) (_ driver.Stmt, err error) { - if !cn.isInTransaction() { - return nil, errCopyNotSupportedOutsideTxn - } - - ci := ©in{ - cn: cn, - buffer: make([]byte, 0, ciBufferSize), - rowData: make(chan []byte), - done: make(chan bool, 1), - } - // add CopyData identifier + 4 bytes for message length - ci.buffer = append(ci.buffer, 'd', 0, 0, 0, 0) - - b := cn.writeBuf('Q') - b.string(q) - cn.send(b) - -awaitCopyInResponse: - for { - t, r := cn.recv1() - switch t { - case 'G': - if r.byte() != 0 { - err = errBinaryCopyNotSupported - break awaitCopyInResponse - } - go ci.resploop() - return ci, nil - case 'H': - err = errCopyToNotSupported - break awaitCopyInResponse - case 'E': - err = parseError(r) - case 'Z': - if err == nil { - ci.setBad() - errorf("unexpected ReadyForQuery in response to COPY") - } - cn.processReadyForQuery(r) - return nil, err - default: - ci.setBad() - errorf("unknown response for copy query: %q", t) - } - } - - // something went wrong, abort COPY before we return - b = cn.writeBuf('f') - b.string(err.Error()) - cn.send(b) - - for { - t, r := cn.recv1() - switch t { - case 'c', 'C', 'E': - case 'Z': - // correctly aborted, we're done - cn.processReadyForQuery(r) - return nil, err - default: - ci.setBad() - errorf("unknown response for CopyFail: %q", t) - } - } -} - -func (ci *copyin) flush(buf []byte) { - // set message length (without message identifier) - binary.BigEndian.PutUint32(buf[1:], uint32(len(buf)-1)) - - _, err := ci.cn.c.Write(buf) - if err != nil { - panic(err) - } -} - -func (ci *copyin) resploop() { - for { - var r readBuf - t, err := ci.cn.recvMessage(&r) - if err != nil { - ci.setBad() - ci.setError(err) - ci.done <- true - return - } - switch t { - case 'C': - // complete - case 'N': - // NoticeResponse - case 'Z': - ci.cn.processReadyForQuery(&r) - ci.done <- true - return - case 'E': - err := parseError(&r) - ci.setError(err) - default: - ci.setBad() - ci.setError(fmt.Errorf("unknown response during CopyIn: %q", t)) - ci.done <- true - return - } - } -} - -func (ci *copyin) setBad() { - ci.Lock() - ci.cn.bad = true - ci.Unlock() -} - -func (ci *copyin) isBad() bool { - ci.Lock() - b := ci.cn.bad - ci.Unlock() - return b -} - -func (ci *copyin) isErrorSet() bool { - ci.Lock() - isSet := (ci.err != nil) - ci.Unlock() - return isSet -} - -// setError() sets ci.err if one has not been set already. Caller must not be -// holding ci.Mutex. -func (ci *copyin) setError(err error) { - ci.Lock() - if ci.err == nil { - ci.err = err - } - ci.Unlock() -} - -func (ci *copyin) NumInput() int { - return -1 -} - -func (ci *copyin) Query(v []driver.Value) (r driver.Rows, err error) { - return nil, ErrNotSupported -} - -// Exec inserts values into the COPY stream. The insert is asynchronous -// and Exec can return errors from previous Exec calls to the same -// COPY stmt. -// -// You need to call Exec(nil) to sync the COPY stream and to get any -// errors from pending data, since Stmt.Close() doesn't return errors -// to the user. -func (ci *copyin) Exec(v []driver.Value) (r driver.Result, err error) { - if ci.closed { - return nil, errCopyInClosed - } - - if ci.isBad() { - return nil, driver.ErrBadConn - } - defer ci.cn.errRecover(&err) - - if ci.isErrorSet() { - return nil, ci.err - } - - if len(v) == 0 { - return nil, ci.Close() - } - - numValues := len(v) - for i, value := range v { - ci.buffer = appendEncodedText(&ci.cn.parameterStatus, ci.buffer, value) - if i < numValues-1 { - ci.buffer = append(ci.buffer, '\t') - } - } - - ci.buffer = append(ci.buffer, '\n') - - if len(ci.buffer) > ciBufferFlushSize { - ci.flush(ci.buffer) - // reset buffer, keep bytes for message identifier and length - ci.buffer = ci.buffer[:5] - } - - return driver.RowsAffected(0), nil -} - -func (ci *copyin) Close() (err error) { - if ci.closed { // Don't do anything, we're already closed - return nil - } - ci.closed = true - - if ci.isBad() { - return driver.ErrBadConn - } - defer ci.cn.errRecover(&err) - - if len(ci.buffer) > 0 { - ci.flush(ci.buffer) - } - // Avoid touching the scratch buffer as resploop could be using it. - err = ci.cn.sendSimpleMessage('c') - if err != nil { - return err - } - - <-ci.done - ci.cn.inCopy = false - - if ci.isErrorSet() { - err = ci.err - return err - } - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/doc.go deleted file mode 100644 index 6d252ece..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/doc.go +++ /dev/null @@ -1,235 +0,0 @@ -/* -Package pq is a pure Go Postgres driver for the database/sql package. - -In most cases clients will use the database/sql package instead of -using this package directly. For example: - - import ( - "database/sql" - - _ "github.com/lib/pq" - ) - - func main() { - db, err := sql.Open("postgres", "user=pqgotest dbname=pqgotest sslmode=verify-full") - if err != nil { - log.Fatal(err) - } - - age := 21 - rows, err := db.Query("SELECT name FROM users WHERE age = $1", age) - … - } - -You can also connect to a database using a URL. For example: - - db, err := sql.Open("postgres", "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full") - - -Connection String Parameters - - -Similarly to libpq, when establishing a connection using pq you are expected to -supply a connection string containing zero or more parameters. -A subset of the connection parameters supported by libpq are also supported by pq. -Additionally, pq also lets you specify run-time parameters (such as search_path or work_mem) -directly in the connection string. This is different from libpq, which does not allow -run-time parameters in the connection string, instead requiring you to supply -them in the options parameter. - -For compatibility with libpq, the following special connection parameters are -supported: - - * dbname - The name of the database to connect to - * user - The user to sign in as - * password - The user's password - * host - The host to connect to. Values that start with / are for unix domain sockets. (default is localhost) - * port - The port to bind to. (default is 5432) - * sslmode - Whether or not to use SSL (default is require, this is not the default for libpq) - * fallback_application_name - An application_name to fall back to if one isn't provided. - * connect_timeout - Maximum wait for connection, in seconds. Zero or not specified means wait indefinitely. - * sslcert - Cert file location. The file must contain PEM encoded data. - * sslkey - Key file location. The file must contain PEM encoded data. - * sslrootcert - The location of the root certificate file. The file must contain PEM encoded data. - -Valid values for sslmode are: - - * disable - No SSL - * require - Always SSL (skip verification) - * verify-ca - Always SSL (verify that the certificate presented by the server was signed by a trusted CA) - * verify-full - Always SSL (verify that the certification presented by the server was signed by a trusted CA and the server host name matches the one in the certificate) - -See http://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING -for more information about connection string parameters. - -Use single quotes for values that contain whitespace: - - "user=pqgotest password='with spaces'" - -A backslash will escape the next character in values: - - "user=space\ man password='it\'s valid' - -Note that the connection parameter client_encoding (which sets the -text encoding for the connection) may be set but must be "UTF8", -matching with the same rules as Postgres. It is an error to provide -any other value. - -In addition to the parameters listed above, any run-time parameter that can be -set at backend start time can be set in the connection string. For more -information, see -http://www.postgresql.org/docs/current/static/runtime-config.html. - -Most environment variables as specified at http://www.postgresql.org/docs/current/static/libpq-envars.html -supported by libpq are also supported by pq. If any of the environment -variables not supported by pq are set, pq will panic during connection -establishment. Environment variables have a lower precedence than explicitly -provided connection parameters. - -The pgpass mechanism as described in http://www.postgresql.org/docs/current/static/libpq-pgpass.html -is supported, but on Windows PGPASSFILE must be specified explicitly. - - -Queries - - -database/sql does not dictate any specific format for parameter -markers in query strings, and pq uses the Postgres-native ordinal markers, -as shown above. The same marker can be reused for the same parameter: - - rows, err := db.Query(`SELECT name FROM users WHERE favorite_fruit = $1 - OR age BETWEEN $2 AND $2 + 3`, "orange", 64) - -pq does not support the LastInsertId() method of the Result type in database/sql. -To return the identifier of an INSERT (or UPDATE or DELETE), use the Postgres -RETURNING clause with a standard Query or QueryRow call: - - var userid int - err := db.QueryRow(`INSERT INTO users(name, favorite_fruit, age) - VALUES('beatrice', 'starfruit', 93) RETURNING id`).Scan(&userid) - -For more details on RETURNING, see the Postgres documentation: - - http://www.postgresql.org/docs/current/static/sql-insert.html - http://www.postgresql.org/docs/current/static/sql-update.html - http://www.postgresql.org/docs/current/static/sql-delete.html - -For additional instructions on querying see the documentation for the database/sql package. - - -Data Types - - -Parameters pass through driver.DefaultParameterConverter before they are handled -by this package. When the binary_parameters connection option is enabled, -[]byte values are sent directly to the backend as data in binary format. - -This package returns the following types for values from the PostgreSQL backend: - - - integer types smallint, integer, and bigint are returned as int64 - - floating-point types real and double precision are returned as float64 - - character types char, varchar, and text are returned as string - - temporal types date, time, timetz, timestamp, and timestamptz are returned as time.Time - - the boolean type is returned as bool - - the bytea type is returned as []byte - -All other types are returned directly from the backend as []byte values in text format. - - -Errors - - -pq may return errors of type *pq.Error which can be interrogated for error details: - - if err, ok := err.(*pq.Error); ok { - fmt.Println("pq error:", err.Code.Name()) - } - -See the pq.Error type for details. - - -Bulk imports - -You can perform bulk imports by preparing a statement returned by pq.CopyIn (or -pq.CopyInSchema) in an explicit transaction (sql.Tx). The returned statement -handle can then be repeatedly "executed" to copy data into the target table. -After all data has been processed you should call Exec() once with no arguments -to flush all buffered data. Any call to Exec() might return an error which -should be handled appropriately, but because of the internal buffering an error -returned by Exec() might not be related to the data passed in the call that -failed. - -CopyIn uses COPY FROM internally. It is not possible to COPY outside of an -explicit transaction in pq. - -Usage example: - - txn, err := db.Begin() - if err != nil { - log.Fatal(err) - } - - stmt, err := txn.Prepare(pq.CopyIn("users", "name", "age")) - if err != nil { - log.Fatal(err) - } - - for _, user := range users { - _, err = stmt.Exec(user.Name, int64(user.Age)) - if err != nil { - log.Fatal(err) - } - } - - _, err = stmt.Exec() - if err != nil { - log.Fatal(err) - } - - err = stmt.Close() - if err != nil { - log.Fatal(err) - } - - err = txn.Commit() - if err != nil { - log.Fatal(err) - } - - -Notifications - - -PostgreSQL supports a simple publish/subscribe model over database -connections. See http://www.postgresql.org/docs/current/static/sql-notify.html -for more information about the general mechanism. - -To start listening for notifications, you first have to open a new connection -to the database by calling NewListener. This connection can not be used for -anything other than LISTEN / NOTIFY. Calling Listen will open a "notification -channel"; once a notification channel is open, a notification generated on that -channel will effect a send on the Listener.Notify channel. A notification -channel will remain open until Unlisten is called, though connection loss might -result in some notifications being lost. To solve this problem, Listener sends -a nil pointer over the Notify channel any time the connection is re-established -following a connection loss. The application can get information about the -state of the underlying connection by setting an event callback in the call to -NewListener. - -A single Listener can safely be used from concurrent goroutines, which means -that there is often no need to create more than one Listener in your -application. However, a Listener is always connected to a single database, so -you will need to create a new Listener instance for every database you want to -receive notifications in. - -The channel name in both Listen and Unlisten is case sensitive, and can contain -any characters legal in an identifier (see -http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS -for more information). Note that the channel name will be truncated to 63 -bytes by the PostgreSQL server. - -You can find a complete, working example of Listener usage at -http://godoc.org/github.com/lib/pq/listen_example. - -*/ -package pq diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/encode.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/encode.go deleted file mode 100644 index 88a322cd..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/encode.go +++ /dev/null @@ -1,595 +0,0 @@ -package pq - -import ( - "bytes" - "database/sql/driver" - "encoding/binary" - "encoding/hex" - "errors" - "fmt" - "math" - "strconv" - "strings" - "sync" - "time" - - "github.com/lib/pq/oid" -) - -func binaryEncode(parameterStatus *parameterStatus, x interface{}) []byte { - switch v := x.(type) { - case []byte: - return v - default: - return encode(parameterStatus, x, oid.T_unknown) - } -} - -func encode(parameterStatus *parameterStatus, x interface{}, pgtypOid oid.Oid) []byte { - switch v := x.(type) { - case int64: - return strconv.AppendInt(nil, v, 10) - case float64: - return strconv.AppendFloat(nil, v, 'f', -1, 64) - case []byte: - if pgtypOid == oid.T_bytea { - return encodeBytea(parameterStatus.serverVersion, v) - } - - return v - case string: - if pgtypOid == oid.T_bytea { - return encodeBytea(parameterStatus.serverVersion, []byte(v)) - } - - return []byte(v) - case bool: - return strconv.AppendBool(nil, v) - case time.Time: - return formatTs(v) - - default: - errorf("encode: unknown type for %T", v) - } - - panic("not reached") -} - -func decode(parameterStatus *parameterStatus, s []byte, typ oid.Oid, f format) interface{} { - switch f { - case formatBinary: - return binaryDecode(parameterStatus, s, typ) - case formatText: - return textDecode(parameterStatus, s, typ) - default: - panic("not reached") - } -} - -func binaryDecode(parameterStatus *parameterStatus, s []byte, typ oid.Oid) interface{} { - switch typ { - case oid.T_bytea: - return s - case oid.T_int8: - return int64(binary.BigEndian.Uint64(s)) - case oid.T_int4: - return int64(int32(binary.BigEndian.Uint32(s))) - case oid.T_int2: - return int64(int16(binary.BigEndian.Uint16(s))) - case oid.T_uuid: - b, err := decodeUUIDBinary(s) - if err != nil { - panic(err) - } - return b - - default: - errorf("don't know how to decode binary parameter of type %d", uint32(typ)) - } - - panic("not reached") -} - -func textDecode(parameterStatus *parameterStatus, s []byte, typ oid.Oid) interface{} { - switch typ { - case oid.T_char, oid.T_varchar, oid.T_text: - return string(s) - case oid.T_bytea: - b, err := parseBytea(s) - if err != nil { - errorf("%s", err) - } - return b - case oid.T_timestamptz: - return parseTs(parameterStatus.currentLocation, string(s)) - case oid.T_timestamp, oid.T_date: - return parseTs(nil, string(s)) - case oid.T_time: - return mustParse("15:04:05", typ, s) - case oid.T_timetz: - return mustParse("15:04:05-07", typ, s) - case oid.T_bool: - return s[0] == 't' - case oid.T_int8, oid.T_int4, oid.T_int2: - i, err := strconv.ParseInt(string(s), 10, 64) - if err != nil { - errorf("%s", err) - } - return i - case oid.T_float4, oid.T_float8: - bits := 64 - if typ == oid.T_float4 { - bits = 32 - } - f, err := strconv.ParseFloat(string(s), bits) - if err != nil { - errorf("%s", err) - } - return f - } - - return s -} - -// appendEncodedText encodes item in text format as required by COPY -// and appends to buf -func appendEncodedText(parameterStatus *parameterStatus, buf []byte, x interface{}) []byte { - switch v := x.(type) { - case int64: - return strconv.AppendInt(buf, v, 10) - case float64: - return strconv.AppendFloat(buf, v, 'f', -1, 64) - case []byte: - encodedBytea := encodeBytea(parameterStatus.serverVersion, v) - return appendEscapedText(buf, string(encodedBytea)) - case string: - return appendEscapedText(buf, v) - case bool: - return strconv.AppendBool(buf, v) - case time.Time: - return append(buf, formatTs(v)...) - case nil: - return append(buf, "\\N"...) - default: - errorf("encode: unknown type for %T", v) - } - - panic("not reached") -} - -func appendEscapedText(buf []byte, text string) []byte { - escapeNeeded := false - startPos := 0 - var c byte - - // check if we need to escape - for i := 0; i < len(text); i++ { - c = text[i] - if c == '\\' || c == '\n' || c == '\r' || c == '\t' { - escapeNeeded = true - startPos = i - break - } - } - if !escapeNeeded { - return append(buf, text...) - } - - // copy till first char to escape, iterate the rest - result := append(buf, text[:startPos]...) - for i := startPos; i < len(text); i++ { - c = text[i] - switch c { - case '\\': - result = append(result, '\\', '\\') - case '\n': - result = append(result, '\\', 'n') - case '\r': - result = append(result, '\\', 'r') - case '\t': - result = append(result, '\\', 't') - default: - result = append(result, c) - } - } - return result -} - -func mustParse(f string, typ oid.Oid, s []byte) time.Time { - str := string(s) - - // check for a 30-minute-offset timezone - if (typ == oid.T_timestamptz || typ == oid.T_timetz) && - str[len(str)-3] == ':' { - f += ":00" - } - t, err := time.Parse(f, str) - if err != nil { - errorf("decode: %s", err) - } - return t -} - -var errInvalidTimestamp = errors.New("invalid timestamp") - -type timestampParser struct { - err error -} - -func (p *timestampParser) expect(str string, char byte, pos int) { - if p.err != nil { - return - } - if pos+1 > len(str) { - p.err = errInvalidTimestamp - return - } - if c := str[pos]; c != char && p.err == nil { - p.err = fmt.Errorf("expected '%v' at position %v; got '%v'", char, pos, c) - } -} - -func (p *timestampParser) mustAtoi(str string, begin int, end int) int { - if p.err != nil { - return 0 - } - if begin < 0 || end < 0 || begin > end || end > len(str) { - p.err = errInvalidTimestamp - return 0 - } - result, err := strconv.Atoi(str[begin:end]) - if err != nil { - if p.err == nil { - p.err = fmt.Errorf("expected number; got '%v'", str) - } - return 0 - } - return result -} - -// The location cache caches the time zones typically used by the client. -type locationCache struct { - cache map[int]*time.Location - lock sync.Mutex -} - -// All connections share the same list of timezones. Benchmarking shows that -// about 5% speed could be gained by putting the cache in the connection and -// losing the mutex, at the cost of a small amount of memory and a somewhat -// significant increase in code complexity. -var globalLocationCache = newLocationCache() - -func newLocationCache() *locationCache { - return &locationCache{cache: make(map[int]*time.Location)} -} - -// Returns the cached timezone for the specified offset, creating and caching -// it if necessary. -func (c *locationCache) getLocation(offset int) *time.Location { - c.lock.Lock() - defer c.lock.Unlock() - - location, ok := c.cache[offset] - if !ok { - location = time.FixedZone("", offset) - c.cache[offset] = location - } - - return location -} - -var infinityTsEnabled = false -var infinityTsNegative time.Time -var infinityTsPositive time.Time - -const ( - infinityTsEnabledAlready = "pq: infinity timestamp enabled already" - infinityTsNegativeMustBeSmaller = "pq: infinity timestamp: negative value must be smaller (before) than positive" -) - -// EnableInfinityTs controls the handling of Postgres' "-infinity" and -// "infinity" "timestamp"s. -// -// If EnableInfinityTs is not called, "-infinity" and "infinity" will return -// []byte("-infinity") and []byte("infinity") respectively, and potentially -// cause error "sql: Scan error on column index 0: unsupported driver -> Scan -// pair: []uint8 -> *time.Time", when scanning into a time.Time value. -// -// Once EnableInfinityTs has been called, all connections created using this -// driver will decode Postgres' "-infinity" and "infinity" for "timestamp", -// "timestamp with time zone" and "date" types to the predefined minimum and -// maximum times, respectively. When encoding time.Time values, any time which -// equals or precedes the predefined minimum time will be encoded to -// "-infinity". Any values at or past the maximum time will similarly be -// encoded to "infinity". -// -// If EnableInfinityTs is called with negative >= positive, it will panic. -// Calling EnableInfinityTs after a connection has been established results in -// undefined behavior. If EnableInfinityTs is called more than once, it will -// panic. -func EnableInfinityTs(negative time.Time, positive time.Time) { - if infinityTsEnabled { - panic(infinityTsEnabledAlready) - } - if !negative.Before(positive) { - panic(infinityTsNegativeMustBeSmaller) - } - infinityTsEnabled = true - infinityTsNegative = negative - infinityTsPositive = positive -} - -/* - * Testing might want to toggle infinityTsEnabled - */ -func disableInfinityTs() { - infinityTsEnabled = false -} - -// This is a time function specific to the Postgres default DateStyle -// setting ("ISO, MDY"), the only one we currently support. This -// accounts for the discrepancies between the parsing available with -// time.Parse and the Postgres date formatting quirks. -func parseTs(currentLocation *time.Location, str string) interface{} { - switch str { - case "-infinity": - if infinityTsEnabled { - return infinityTsNegative - } - return []byte(str) - case "infinity": - if infinityTsEnabled { - return infinityTsPositive - } - return []byte(str) - } - t, err := ParseTimestamp(currentLocation, str) - if err != nil { - panic(err) - } - return t -} - -// ParseTimestamp parses Postgres' text format. It returns a time.Time in -// currentLocation iff that time's offset agrees with the offset sent from the -// Postgres server. Otherwise, ParseTimestamp returns a time.Time with the -// fixed offset offset provided by the Postgres server. -func ParseTimestamp(currentLocation *time.Location, str string) (time.Time, error) { - p := timestampParser{} - - monSep := strings.IndexRune(str, '-') - // this is Gregorian year, not ISO Year - // In Gregorian system, the year 1 BC is followed by AD 1 - year := p.mustAtoi(str, 0, monSep) - daySep := monSep + 3 - month := p.mustAtoi(str, monSep+1, daySep) - p.expect(str, '-', daySep) - timeSep := daySep + 3 - day := p.mustAtoi(str, daySep+1, timeSep) - - var hour, minute, second int - if len(str) > monSep+len("01-01")+1 { - p.expect(str, ' ', timeSep) - minSep := timeSep + 3 - p.expect(str, ':', minSep) - hour = p.mustAtoi(str, timeSep+1, minSep) - secSep := minSep + 3 - p.expect(str, ':', secSep) - minute = p.mustAtoi(str, minSep+1, secSep) - secEnd := secSep + 3 - second = p.mustAtoi(str, secSep+1, secEnd) - } - remainderIdx := monSep + len("01-01 00:00:00") + 1 - // Three optional (but ordered) sections follow: the - // fractional seconds, the time zone offset, and the BC - // designation. We set them up here and adjust the other - // offsets if the preceding sections exist. - - nanoSec := 0 - tzOff := 0 - - if remainderIdx < len(str) && str[remainderIdx] == '.' { - fracStart := remainderIdx + 1 - fracOff := strings.IndexAny(str[fracStart:], "-+ ") - if fracOff < 0 { - fracOff = len(str) - fracStart - } - fracSec := p.mustAtoi(str, fracStart, fracStart+fracOff) - nanoSec = fracSec * (1000000000 / int(math.Pow(10, float64(fracOff)))) - - remainderIdx += fracOff + 1 - } - if tzStart := remainderIdx; tzStart < len(str) && (str[tzStart] == '-' || str[tzStart] == '+') { - // time zone separator is always '-' or '+' (UTC is +00) - var tzSign int - switch c := str[tzStart]; c { - case '-': - tzSign = -1 - case '+': - tzSign = +1 - default: - return time.Time{}, fmt.Errorf("expected '-' or '+' at position %v; got %v", tzStart, c) - } - tzHours := p.mustAtoi(str, tzStart+1, tzStart+3) - remainderIdx += 3 - var tzMin, tzSec int - if remainderIdx < len(str) && str[remainderIdx] == ':' { - tzMin = p.mustAtoi(str, remainderIdx+1, remainderIdx+3) - remainderIdx += 3 - } - if remainderIdx < len(str) && str[remainderIdx] == ':' { - tzSec = p.mustAtoi(str, remainderIdx+1, remainderIdx+3) - remainderIdx += 3 - } - tzOff = tzSign * ((tzHours * 60 * 60) + (tzMin * 60) + tzSec) - } - var isoYear int - if remainderIdx+3 <= len(str) && str[remainderIdx:remainderIdx+3] == " BC" { - isoYear = 1 - year - remainderIdx += 3 - } else { - isoYear = year - } - if remainderIdx < len(str) { - return time.Time{}, fmt.Errorf("expected end of input, got %v", str[remainderIdx:]) - } - t := time.Date(isoYear, time.Month(month), day, - hour, minute, second, nanoSec, - globalLocationCache.getLocation(tzOff)) - - if currentLocation != nil { - // Set the location of the returned Time based on the session's - // TimeZone value, but only if the local time zone database agrees with - // the remote database on the offset. - lt := t.In(currentLocation) - _, newOff := lt.Zone() - if newOff == tzOff { - t = lt - } - } - - return t, p.err -} - -// formatTs formats t into a format postgres understands. -func formatTs(t time.Time) []byte { - if infinityTsEnabled { - // t <= -infinity : ! (t > -infinity) - if !t.After(infinityTsNegative) { - return []byte("-infinity") - } - // t >= infinity : ! (!t < infinity) - if !t.Before(infinityTsPositive) { - return []byte("infinity") - } - } - return FormatTimestamp(t) -} - -// FormatTimestamp formats t into Postgres' text format for timestamps. -func FormatTimestamp(t time.Time) []byte { - // Need to send dates before 0001 A.D. with " BC" suffix, instead of the - // minus sign preferred by Go. - // Beware, "0000" in ISO is "1 BC", "-0001" is "2 BC" and so on - bc := false - if t.Year() <= 0 { - // flip year sign, and add 1, e.g: "0" will be "1", and "-10" will be "11" - t = t.AddDate((-t.Year())*2+1, 0, 0) - bc = true - } - b := []byte(t.Format("2006-01-02 15:04:05.999999999Z07:00")) - - _, offset := t.Zone() - offset = offset % 60 - if offset != 0 { - // RFC3339Nano already printed the minus sign - if offset < 0 { - offset = -offset - } - - b = append(b, ':') - if offset < 10 { - b = append(b, '0') - } - b = strconv.AppendInt(b, int64(offset), 10) - } - - if bc { - b = append(b, " BC"...) - } - return b -} - -// Parse a bytea value received from the server. Both "hex" and the legacy -// "escape" format are supported. -func parseBytea(s []byte) (result []byte, err error) { - if len(s) >= 2 && bytes.Equal(s[:2], []byte("\\x")) { - // bytea_output = hex - s = s[2:] // trim off leading "\\x" - result = make([]byte, hex.DecodedLen(len(s))) - _, err := hex.Decode(result, s) - if err != nil { - return nil, err - } - } else { - // bytea_output = escape - for len(s) > 0 { - if s[0] == '\\' { - // escaped '\\' - if len(s) >= 2 && s[1] == '\\' { - result = append(result, '\\') - s = s[2:] - continue - } - - // '\\' followed by an octal number - if len(s) < 4 { - return nil, fmt.Errorf("invalid bytea sequence %v", s) - } - r, err := strconv.ParseInt(string(s[1:4]), 8, 9) - if err != nil { - return nil, fmt.Errorf("could not parse bytea value: %s", err.Error()) - } - result = append(result, byte(r)) - s = s[4:] - } else { - // We hit an unescaped, raw byte. Try to read in as many as - // possible in one go. - i := bytes.IndexByte(s, '\\') - if i == -1 { - result = append(result, s...) - break - } - result = append(result, s[:i]...) - s = s[i:] - } - } - } - - return result, nil -} - -func encodeBytea(serverVersion int, v []byte) (result []byte) { - if serverVersion >= 90000 { - // Use the hex format if we know that the server supports it - result = make([]byte, 2+hex.EncodedLen(len(v))) - result[0] = '\\' - result[1] = 'x' - hex.Encode(result[2:], v) - } else { - // .. or resort to "escape" - for _, b := range v { - if b == '\\' { - result = append(result, '\\', '\\') - } else if b < 0x20 || b > 0x7e { - result = append(result, []byte(fmt.Sprintf("\\%03o", b))...) - } else { - result = append(result, b) - } - } - } - - return result -} - -// NullTime represents a time.Time that may be null. NullTime implements the -// sql.Scanner interface so it can be used as a scan destination, similar to -// sql.NullString. -type NullTime struct { - Time time.Time - Valid bool // Valid is true if Time is not NULL -} - -// Scan implements the Scanner interface. -func (nt *NullTime) Scan(value interface{}) error { - nt.Time, nt.Valid = value.(time.Time) - return nil -} - -// Value implements the driver Valuer interface. -func (nt NullTime) Value() (driver.Value, error) { - if !nt.Valid { - return nil, nil - } - return nt.Time, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/error.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/error.go deleted file mode 100644 index b4bb44ce..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/error.go +++ /dev/null @@ -1,508 +0,0 @@ -package pq - -import ( - "database/sql/driver" - "fmt" - "io" - "net" - "runtime" -) - -// Error severities -const ( - Efatal = "FATAL" - Epanic = "PANIC" - Ewarning = "WARNING" - Enotice = "NOTICE" - Edebug = "DEBUG" - Einfo = "INFO" - Elog = "LOG" -) - -// Error represents an error communicating with the server. -// -// See http://www.postgresql.org/docs/current/static/protocol-error-fields.html for details of the fields -type Error struct { - Severity string - Code ErrorCode - Message string - Detail string - Hint string - Position string - InternalPosition string - InternalQuery string - Where string - Schema string - Table string - Column string - DataTypeName string - Constraint string - File string - Line string - Routine string -} - -// ErrorCode is a five-character error code. -type ErrorCode string - -// Name returns a more human friendly rendering of the error code, namely the -// "condition name". -// -// See http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html for -// details. -func (ec ErrorCode) Name() string { - return errorCodeNames[ec] -} - -// ErrorClass is only the class part of an error code. -type ErrorClass string - -// Name returns the condition name of an error class. It is equivalent to the -// condition name of the "standard" error code (i.e. the one having the last -// three characters "000"). -func (ec ErrorClass) Name() string { - return errorCodeNames[ErrorCode(ec+"000")] -} - -// Class returns the error class, e.g. "28". -// -// See http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html for -// details. -func (ec ErrorCode) Class() ErrorClass { - return ErrorClass(ec[0:2]) -} - -// errorCodeNames is a mapping between the five-character error codes and the -// human readable "condition names". It is derived from the list at -// http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html -var errorCodeNames = map[ErrorCode]string{ - // Class 00 - Successful Completion - "00000": "successful_completion", - // Class 01 - Warning - "01000": "warning", - "0100C": "dynamic_result_sets_returned", - "01008": "implicit_zero_bit_padding", - "01003": "null_value_eliminated_in_set_function", - "01007": "privilege_not_granted", - "01006": "privilege_not_revoked", - "01004": "string_data_right_truncation", - "01P01": "deprecated_feature", - // Class 02 - No Data (this is also a warning class per the SQL standard) - "02000": "no_data", - "02001": "no_additional_dynamic_result_sets_returned", - // Class 03 - SQL Statement Not Yet Complete - "03000": "sql_statement_not_yet_complete", - // Class 08 - Connection Exception - "08000": "connection_exception", - "08003": "connection_does_not_exist", - "08006": "connection_failure", - "08001": "sqlclient_unable_to_establish_sqlconnection", - "08004": "sqlserver_rejected_establishment_of_sqlconnection", - "08007": "transaction_resolution_unknown", - "08P01": "protocol_violation", - // Class 09 - Triggered Action Exception - "09000": "triggered_action_exception", - // Class 0A - Feature Not Supported - "0A000": "feature_not_supported", - // Class 0B - Invalid Transaction Initiation - "0B000": "invalid_transaction_initiation", - // Class 0F - Locator Exception - "0F000": "locator_exception", - "0F001": "invalid_locator_specification", - // Class 0L - Invalid Grantor - "0L000": "invalid_grantor", - "0LP01": "invalid_grant_operation", - // Class 0P - Invalid Role Specification - "0P000": "invalid_role_specification", - // Class 0Z - Diagnostics Exception - "0Z000": "diagnostics_exception", - "0Z002": "stacked_diagnostics_accessed_without_active_handler", - // Class 20 - Case Not Found - "20000": "case_not_found", - // Class 21 - Cardinality Violation - "21000": "cardinality_violation", - // Class 22 - Data Exception - "22000": "data_exception", - "2202E": "array_subscript_error", - "22021": "character_not_in_repertoire", - "22008": "datetime_field_overflow", - "22012": "division_by_zero", - "22005": "error_in_assignment", - "2200B": "escape_character_conflict", - "22022": "indicator_overflow", - "22015": "interval_field_overflow", - "2201E": "invalid_argument_for_logarithm", - "22014": "invalid_argument_for_ntile_function", - "22016": "invalid_argument_for_nth_value_function", - "2201F": "invalid_argument_for_power_function", - "2201G": "invalid_argument_for_width_bucket_function", - "22018": "invalid_character_value_for_cast", - "22007": "invalid_datetime_format", - "22019": "invalid_escape_character", - "2200D": "invalid_escape_octet", - "22025": "invalid_escape_sequence", - "22P06": "nonstandard_use_of_escape_character", - "22010": "invalid_indicator_parameter_value", - "22023": "invalid_parameter_value", - "2201B": "invalid_regular_expression", - "2201W": "invalid_row_count_in_limit_clause", - "2201X": "invalid_row_count_in_result_offset_clause", - "22009": "invalid_time_zone_displacement_value", - "2200C": "invalid_use_of_escape_character", - "2200G": "most_specific_type_mismatch", - "22004": "null_value_not_allowed", - "22002": "null_value_no_indicator_parameter", - "22003": "numeric_value_out_of_range", - "22026": "string_data_length_mismatch", - "22001": "string_data_right_truncation", - "22011": "substring_error", - "22027": "trim_error", - "22024": "unterminated_c_string", - "2200F": "zero_length_character_string", - "22P01": "floating_point_exception", - "22P02": "invalid_text_representation", - "22P03": "invalid_binary_representation", - "22P04": "bad_copy_file_format", - "22P05": "untranslatable_character", - "2200L": "not_an_xml_document", - "2200M": "invalid_xml_document", - "2200N": "invalid_xml_content", - "2200S": "invalid_xml_comment", - "2200T": "invalid_xml_processing_instruction", - // Class 23 - Integrity Constraint Violation - "23000": "integrity_constraint_violation", - "23001": "restrict_violation", - "23502": "not_null_violation", - "23503": "foreign_key_violation", - "23505": "unique_violation", - "23514": "check_violation", - "23P01": "exclusion_violation", - // Class 24 - Invalid Cursor State - "24000": "invalid_cursor_state", - // Class 25 - Invalid Transaction State - "25000": "invalid_transaction_state", - "25001": "active_sql_transaction", - "25002": "branch_transaction_already_active", - "25008": "held_cursor_requires_same_isolation_level", - "25003": "inappropriate_access_mode_for_branch_transaction", - "25004": "inappropriate_isolation_level_for_branch_transaction", - "25005": "no_active_sql_transaction_for_branch_transaction", - "25006": "read_only_sql_transaction", - "25007": "schema_and_data_statement_mixing_not_supported", - "25P01": "no_active_sql_transaction", - "25P02": "in_failed_sql_transaction", - // Class 26 - Invalid SQL Statement Name - "26000": "invalid_sql_statement_name", - // Class 27 - Triggered Data Change Violation - "27000": "triggered_data_change_violation", - // Class 28 - Invalid Authorization Specification - "28000": "invalid_authorization_specification", - "28P01": "invalid_password", - // Class 2B - Dependent Privilege Descriptors Still Exist - "2B000": "dependent_privilege_descriptors_still_exist", - "2BP01": "dependent_objects_still_exist", - // Class 2D - Invalid Transaction Termination - "2D000": "invalid_transaction_termination", - // Class 2F - SQL Routine Exception - "2F000": "sql_routine_exception", - "2F005": "function_executed_no_return_statement", - "2F002": "modifying_sql_data_not_permitted", - "2F003": "prohibited_sql_statement_attempted", - "2F004": "reading_sql_data_not_permitted", - // Class 34 - Invalid Cursor Name - "34000": "invalid_cursor_name", - // Class 38 - External Routine Exception - "38000": "external_routine_exception", - "38001": "containing_sql_not_permitted", - "38002": "modifying_sql_data_not_permitted", - "38003": "prohibited_sql_statement_attempted", - "38004": "reading_sql_data_not_permitted", - // Class 39 - External Routine Invocation Exception - "39000": "external_routine_invocation_exception", - "39001": "invalid_sqlstate_returned", - "39004": "null_value_not_allowed", - "39P01": "trigger_protocol_violated", - "39P02": "srf_protocol_violated", - // Class 3B - Savepoint Exception - "3B000": "savepoint_exception", - "3B001": "invalid_savepoint_specification", - // Class 3D - Invalid Catalog Name - "3D000": "invalid_catalog_name", - // Class 3F - Invalid Schema Name - "3F000": "invalid_schema_name", - // Class 40 - Transaction Rollback - "40000": "transaction_rollback", - "40002": "transaction_integrity_constraint_violation", - "40001": "serialization_failure", - "40003": "statement_completion_unknown", - "40P01": "deadlock_detected", - // Class 42 - Syntax Error or Access Rule Violation - "42000": "syntax_error_or_access_rule_violation", - "42601": "syntax_error", - "42501": "insufficient_privilege", - "42846": "cannot_coerce", - "42803": "grouping_error", - "42P20": "windowing_error", - "42P19": "invalid_recursion", - "42830": "invalid_foreign_key", - "42602": "invalid_name", - "42622": "name_too_long", - "42939": "reserved_name", - "42804": "datatype_mismatch", - "42P18": "indeterminate_datatype", - "42P21": "collation_mismatch", - "42P22": "indeterminate_collation", - "42809": "wrong_object_type", - "42703": "undefined_column", - "42883": "undefined_function", - "42P01": "undefined_table", - "42P02": "undefined_parameter", - "42704": "undefined_object", - "42701": "duplicate_column", - "42P03": "duplicate_cursor", - "42P04": "duplicate_database", - "42723": "duplicate_function", - "42P05": "duplicate_prepared_statement", - "42P06": "duplicate_schema", - "42P07": "duplicate_table", - "42712": "duplicate_alias", - "42710": "duplicate_object", - "42702": "ambiguous_column", - "42725": "ambiguous_function", - "42P08": "ambiguous_parameter", - "42P09": "ambiguous_alias", - "42P10": "invalid_column_reference", - "42611": "invalid_column_definition", - "42P11": "invalid_cursor_definition", - "42P12": "invalid_database_definition", - "42P13": "invalid_function_definition", - "42P14": "invalid_prepared_statement_definition", - "42P15": "invalid_schema_definition", - "42P16": "invalid_table_definition", - "42P17": "invalid_object_definition", - // Class 44 - WITH CHECK OPTION Violation - "44000": "with_check_option_violation", - // Class 53 - Insufficient Resources - "53000": "insufficient_resources", - "53100": "disk_full", - "53200": "out_of_memory", - "53300": "too_many_connections", - "53400": "configuration_limit_exceeded", - // Class 54 - Program Limit Exceeded - "54000": "program_limit_exceeded", - "54001": "statement_too_complex", - "54011": "too_many_columns", - "54023": "too_many_arguments", - // Class 55 - Object Not In Prerequisite State - "55000": "object_not_in_prerequisite_state", - "55006": "object_in_use", - "55P02": "cant_change_runtime_param", - "55P03": "lock_not_available", - // Class 57 - Operator Intervention - "57000": "operator_intervention", - "57014": "query_canceled", - "57P01": "admin_shutdown", - "57P02": "crash_shutdown", - "57P03": "cannot_connect_now", - "57P04": "database_dropped", - // Class 58 - System Error (errors external to PostgreSQL itself) - "58000": "system_error", - "58030": "io_error", - "58P01": "undefined_file", - "58P02": "duplicate_file", - // Class F0 - Configuration File Error - "F0000": "config_file_error", - "F0001": "lock_file_exists", - // Class HV - Foreign Data Wrapper Error (SQL/MED) - "HV000": "fdw_error", - "HV005": "fdw_column_name_not_found", - "HV002": "fdw_dynamic_parameter_value_needed", - "HV010": "fdw_function_sequence_error", - "HV021": "fdw_inconsistent_descriptor_information", - "HV024": "fdw_invalid_attribute_value", - "HV007": "fdw_invalid_column_name", - "HV008": "fdw_invalid_column_number", - "HV004": "fdw_invalid_data_type", - "HV006": "fdw_invalid_data_type_descriptors", - "HV091": "fdw_invalid_descriptor_field_identifier", - "HV00B": "fdw_invalid_handle", - "HV00C": "fdw_invalid_option_index", - "HV00D": "fdw_invalid_option_name", - "HV090": "fdw_invalid_string_length_or_buffer_length", - "HV00A": "fdw_invalid_string_format", - "HV009": "fdw_invalid_use_of_null_pointer", - "HV014": "fdw_too_many_handles", - "HV001": "fdw_out_of_memory", - "HV00P": "fdw_no_schemas", - "HV00J": "fdw_option_name_not_found", - "HV00K": "fdw_reply_handle", - "HV00Q": "fdw_schema_not_found", - "HV00R": "fdw_table_not_found", - "HV00L": "fdw_unable_to_create_execution", - "HV00M": "fdw_unable_to_create_reply", - "HV00N": "fdw_unable_to_establish_connection", - // Class P0 - PL/pgSQL Error - "P0000": "plpgsql_error", - "P0001": "raise_exception", - "P0002": "no_data_found", - "P0003": "too_many_rows", - // Class XX - Internal Error - "XX000": "internal_error", - "XX001": "data_corrupted", - "XX002": "index_corrupted", -} - -func parseError(r *readBuf) *Error { - err := new(Error) - for t := r.byte(); t != 0; t = r.byte() { - msg := r.string() - switch t { - case 'S': - err.Severity = msg - case 'C': - err.Code = ErrorCode(msg) - case 'M': - err.Message = msg - case 'D': - err.Detail = msg - case 'H': - err.Hint = msg - case 'P': - err.Position = msg - case 'p': - err.InternalPosition = msg - case 'q': - err.InternalQuery = msg - case 'W': - err.Where = msg - case 's': - err.Schema = msg - case 't': - err.Table = msg - case 'c': - err.Column = msg - case 'd': - err.DataTypeName = msg - case 'n': - err.Constraint = msg - case 'F': - err.File = msg - case 'L': - err.Line = msg - case 'R': - err.Routine = msg - } - } - return err -} - -// Fatal returns true if the Error Severity is fatal. -func (err *Error) Fatal() bool { - return err.Severity == Efatal -} - -// Get implements the legacy PGError interface. New code should use the fields -// of the Error struct directly. -func (err *Error) Get(k byte) (v string) { - switch k { - case 'S': - return err.Severity - case 'C': - return string(err.Code) - case 'M': - return err.Message - case 'D': - return err.Detail - case 'H': - return err.Hint - case 'P': - return err.Position - case 'p': - return err.InternalPosition - case 'q': - return err.InternalQuery - case 'W': - return err.Where - case 's': - return err.Schema - case 't': - return err.Table - case 'c': - return err.Column - case 'd': - return err.DataTypeName - case 'n': - return err.Constraint - case 'F': - return err.File - case 'L': - return err.Line - case 'R': - return err.Routine - } - return "" -} - -func (err Error) Error() string { - return "pq: " + err.Message -} - -// PGError is an interface used by previous versions of pq. It is provided -// only to support legacy code. New code should use the Error type. -type PGError interface { - Error() string - Fatal() bool - Get(k byte) (v string) -} - -func errorf(s string, args ...interface{}) { - panic(fmt.Errorf("pq: %s", fmt.Sprintf(s, args...))) -} - -func errRecoverNoErrBadConn(err *error) { - e := recover() - if e == nil { - // Do nothing - return - } - var ok bool - *err, ok = e.(error) - if !ok { - *err = fmt.Errorf("pq: unexpected error: %#v", e) - } -} - -func (c *conn) errRecover(err *error) { - e := recover() - switch v := e.(type) { - case nil: - // Do nothing - case runtime.Error: - c.bad = true - panic(v) - case *Error: - if v.Fatal() { - *err = driver.ErrBadConn - } else { - *err = v - } - case *net.OpError: - *err = driver.ErrBadConn - case error: - if v == io.EOF || v.(error).Error() == "remote error: handshake failure" { - *err = driver.ErrBadConn - } else { - *err = v - } - - default: - c.bad = true - panic(fmt.Sprintf("unknown error: %#v", e)) - } - - // Any time we return ErrBadConn, we need to remember it since *Tx doesn't - // mark the connection bad in database/sql. - if *err == driver.ErrBadConn { - c.bad = true - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/notify.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/notify.go deleted file mode 100644 index 09f94244..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/notify.go +++ /dev/null @@ -1,782 +0,0 @@ -package pq - -// Package pq is a pure Go Postgres driver for the database/sql package. -// This module contains support for Postgres LISTEN/NOTIFY. - -import ( - "errors" - "fmt" - "sync" - "sync/atomic" - "time" -) - -// Notification represents a single notification from the database. -type Notification struct { - // Process ID (PID) of the notifying postgres backend. - BePid int - // Name of the channel the notification was sent on. - Channel string - // Payload, or the empty string if unspecified. - Extra string -} - -func recvNotification(r *readBuf) *Notification { - bePid := r.int32() - channel := r.string() - extra := r.string() - - return &Notification{bePid, channel, extra} -} - -const ( - connStateIdle int32 = iota - connStateExpectResponse - connStateExpectReadyForQuery -) - -type message struct { - typ byte - err error -} - -var errListenerConnClosed = errors.New("pq: ListenerConn has been closed") - -// ListenerConn is a low-level interface for waiting for notifications. You -// should use Listener instead. -type ListenerConn struct { - // guards cn and err - connectionLock sync.Mutex - cn *conn - err error - - connState int32 - - // the sending goroutine will be holding this lock - senderLock sync.Mutex - - notificationChan chan<- *Notification - - replyChan chan message -} - -// Creates a new ListenerConn. Use NewListener instead. -func NewListenerConn(name string, notificationChan chan<- *Notification) (*ListenerConn, error) { - return newDialListenerConn(defaultDialer{}, name, notificationChan) -} - -func newDialListenerConn(d Dialer, name string, c chan<- *Notification) (*ListenerConn, error) { - cn, err := DialOpen(d, name) - if err != nil { - return nil, err - } - - l := &ListenerConn{ - cn: cn.(*conn), - notificationChan: c, - connState: connStateIdle, - replyChan: make(chan message, 2), - } - - go l.listenerConnMain() - - return l, nil -} - -// We can only allow one goroutine at a time to be running a query on the -// connection for various reasons, so the goroutine sending on the connection -// must be holding senderLock. -// -// Returns an error if an unrecoverable error has occurred and the ListenerConn -// should be abandoned. -func (l *ListenerConn) acquireSenderLock() error { - // we must acquire senderLock first to avoid deadlocks; see ExecSimpleQuery - l.senderLock.Lock() - - l.connectionLock.Lock() - err := l.err - l.connectionLock.Unlock() - if err != nil { - l.senderLock.Unlock() - return err - } - return nil -} - -func (l *ListenerConn) releaseSenderLock() { - l.senderLock.Unlock() -} - -// setState advances the protocol state to newState. Returns false if moving -// to that state from the current state is not allowed. -func (l *ListenerConn) setState(newState int32) bool { - var expectedState int32 - - switch newState { - case connStateIdle: - expectedState = connStateExpectReadyForQuery - case connStateExpectResponse: - expectedState = connStateIdle - case connStateExpectReadyForQuery: - expectedState = connStateExpectResponse - default: - panic(fmt.Sprintf("unexpected listenerConnState %d", newState)) - } - - return atomic.CompareAndSwapInt32(&l.connState, expectedState, newState) -} - -// Main logic is here: receive messages from the postgres backend, forward -// notifications and query replies and keep the internal state in sync with the -// protocol state. Returns when the connection has been lost, is about to go -// away or should be discarded because we couldn't agree on the state with the -// server backend. -func (l *ListenerConn) listenerConnLoop() (err error) { - defer errRecoverNoErrBadConn(&err) - - r := &readBuf{} - for { - t, err := l.cn.recvMessage(r) - if err != nil { - return err - } - - switch t { - case 'A': - // recvNotification copies all the data so we don't need to worry - // about the scratch buffer being overwritten. - l.notificationChan <- recvNotification(r) - - case 'T', 'D': - // only used by tests; ignore - - case 'E': - // We might receive an ErrorResponse even when not in a query; it - // is expected that the server will close the connection after - // that, but we should make sure that the error we display is the - // one from the stray ErrorResponse, not io.ErrUnexpectedEOF. - if !l.setState(connStateExpectReadyForQuery) { - return parseError(r) - } - l.replyChan <- message{t, parseError(r)} - - case 'C', 'I': - if !l.setState(connStateExpectReadyForQuery) { - // protocol out of sync - return fmt.Errorf("unexpected CommandComplete") - } - // ExecSimpleQuery doesn't need to know about this message - - case 'Z': - if !l.setState(connStateIdle) { - // protocol out of sync - return fmt.Errorf("unexpected ReadyForQuery") - } - l.replyChan <- message{t, nil} - - case 'N', 'S': - // ignore - default: - return fmt.Errorf("unexpected message %q from server in listenerConnLoop", t) - } - } -} - -// This is the main routine for the goroutine receiving on the database -// connection. Most of the main logic is in listenerConnLoop. -func (l *ListenerConn) listenerConnMain() { - err := l.listenerConnLoop() - - // listenerConnLoop terminated; we're done, but we still have to clean up. - // Make sure nobody tries to start any new queries by making sure the err - // pointer is set. It is important that we do not overwrite its value; a - // connection could be closed by either this goroutine or one sending on - // the connection -- whoever closes the connection is assumed to have the - // more meaningful error message (as the other one will probably get - // net.errClosed), so that goroutine sets the error we expose while the - // other error is discarded. If the connection is lost while two - // goroutines are operating on the socket, it probably doesn't matter which - // error we expose so we don't try to do anything more complex. - l.connectionLock.Lock() - if l.err == nil { - l.err = err - } - l.cn.Close() - l.connectionLock.Unlock() - - // There might be a query in-flight; make sure nobody's waiting for a - // response to it, since there's not going to be one. - close(l.replyChan) - - // let the listener know we're done - close(l.notificationChan) - - // this ListenerConn is done -} - -// Send a LISTEN query to the server. See ExecSimpleQuery. -func (l *ListenerConn) Listen(channel string) (bool, error) { - return l.ExecSimpleQuery("LISTEN " + QuoteIdentifier(channel)) -} - -// Send an UNLISTEN query to the server. See ExecSimpleQuery. -func (l *ListenerConn) Unlisten(channel string) (bool, error) { - return l.ExecSimpleQuery("UNLISTEN " + QuoteIdentifier(channel)) -} - -// Send `UNLISTEN *` to the server. See ExecSimpleQuery. -func (l *ListenerConn) UnlistenAll() (bool, error) { - return l.ExecSimpleQuery("UNLISTEN *") -} - -// Ping the remote server to make sure it's alive. Non-nil error means the -// connection has failed and should be abandoned. -func (l *ListenerConn) Ping() error { - sent, err := l.ExecSimpleQuery("") - if !sent { - return err - } - if err != nil { - // shouldn't happen - panic(err) - } - return nil -} - -// Attempt to send a query on the connection. Returns an error if sending the -// query failed, and the caller should initiate closure of this connection. -// The caller must be holding senderLock (see acquireSenderLock and -// releaseSenderLock). -func (l *ListenerConn) sendSimpleQuery(q string) (err error) { - defer errRecoverNoErrBadConn(&err) - - // must set connection state before sending the query - if !l.setState(connStateExpectResponse) { - panic("two queries running at the same time") - } - - // Can't use l.cn.writeBuf here because it uses the scratch buffer which - // might get overwritten by listenerConnLoop. - b := &writeBuf{ - buf: []byte("Q\x00\x00\x00\x00"), - pos: 1, - } - b.string(q) - l.cn.send(b) - - return nil -} - -// Execute a "simple query" (i.e. one with no bindable parameters) on the -// connection. The possible return values are: -// 1) "executed" is true; the query was executed to completion on the -// database server. If the query failed, err will be set to the error -// returned by the database, otherwise err will be nil. -// 2) If "executed" is false, the query could not be executed on the remote -// server. err will be non-nil. -// -// After a call to ExecSimpleQuery has returned an executed=false value, the -// connection has either been closed or will be closed shortly thereafter, and -// all subsequently executed queries will return an error. -func (l *ListenerConn) ExecSimpleQuery(q string) (executed bool, err error) { - if err = l.acquireSenderLock(); err != nil { - return false, err - } - defer l.releaseSenderLock() - - err = l.sendSimpleQuery(q) - if err != nil { - // We can't know what state the protocol is in, so we need to abandon - // this connection. - l.connectionLock.Lock() - // Set the error pointer if it hasn't been set already; see - // listenerConnMain. - if l.err == nil { - l.err = err - } - l.connectionLock.Unlock() - l.cn.c.Close() - return false, err - } - - // now we just wait for a reply.. - for { - m, ok := <-l.replyChan - if !ok { - // We lost the connection to server, don't bother waiting for a - // a response. err should have been set already. - l.connectionLock.Lock() - err := l.err - l.connectionLock.Unlock() - return false, err - } - switch m.typ { - case 'Z': - // sanity check - if m.err != nil { - panic("m.err != nil") - } - // done; err might or might not be set - return true, err - - case 'E': - // sanity check - if m.err == nil { - panic("m.err == nil") - } - // server responded with an error; ReadyForQuery to follow - err = m.err - - default: - return false, fmt.Errorf("unknown response for simple query: %q", m.typ) - } - } -} - -func (l *ListenerConn) Close() error { - l.connectionLock.Lock() - if l.err != nil { - l.connectionLock.Unlock() - return errListenerConnClosed - } - l.err = errListenerConnClosed - l.connectionLock.Unlock() - // We can't send anything on the connection without holding senderLock. - // Simply close the net.Conn to wake up everyone operating on it. - return l.cn.c.Close() -} - -// Err() returns the reason the connection was closed. It is not safe to call -// this function until l.Notify has been closed. -func (l *ListenerConn) Err() error { - return l.err -} - -var errListenerClosed = errors.New("pq: Listener has been closed") - -var ErrChannelAlreadyOpen = errors.New("pq: channel is already open") -var ErrChannelNotOpen = errors.New("pq: channel is not open") - -type ListenerEventType int - -const ( - // Emitted only when the database connection has been initially - // initialized. err will always be nil. - ListenerEventConnected ListenerEventType = iota - - // Emitted after a database connection has been lost, either because of an - // error or because Close has been called. err will be set to the reason - // the database connection was lost. - ListenerEventDisconnected - - // Emitted after a database connection has been re-established after - // connection loss. err will always be nil. After this event has been - // emitted, a nil pq.Notification is sent on the Listener.Notify channel. - ListenerEventReconnected - - // Emitted after a connection to the database was attempted, but failed. - // err will be set to an error describing why the connection attempt did - // not succeed. - ListenerEventConnectionAttemptFailed -) - -type EventCallbackType func(event ListenerEventType, err error) - -// Listener provides an interface for listening to notifications from a -// PostgreSQL database. For general usage information, see section -// "Notifications". -// -// Listener can safely be used from concurrently running goroutines. -type Listener struct { - // Channel for receiving notifications from the database. In some cases a - // nil value will be sent. See section "Notifications" above. - Notify chan *Notification - - name string - minReconnectInterval time.Duration - maxReconnectInterval time.Duration - dialer Dialer - eventCallback EventCallbackType - - lock sync.Mutex - isClosed bool - reconnectCond *sync.Cond - cn *ListenerConn - connNotificationChan <-chan *Notification - channels map[string]struct{} -} - -// NewListener creates a new database connection dedicated to LISTEN / NOTIFY. -// -// name should be set to a connection string to be used to establish the -// database connection (see section "Connection String Parameters" above). -// -// minReconnectInterval controls the duration to wait before trying to -// re-establish the database connection after connection loss. After each -// consecutive failure this interval is doubled, until maxReconnectInterval is -// reached. Successfully completing the connection establishment procedure -// resets the interval back to minReconnectInterval. -// -// The last parameter eventCallback can be set to a function which will be -// called by the Listener when the state of the underlying database connection -// changes. This callback will be called by the goroutine which dispatches the -// notifications over the Notify channel, so you should try to avoid doing -// potentially time-consuming operations from the callback. -func NewListener(name string, - minReconnectInterval time.Duration, - maxReconnectInterval time.Duration, - eventCallback EventCallbackType) *Listener { - return NewDialListener(defaultDialer{}, name, minReconnectInterval, maxReconnectInterval, eventCallback) -} - -// NewDialListener is like NewListener but it takes a Dialer. -func NewDialListener(d Dialer, - name string, - minReconnectInterval time.Duration, - maxReconnectInterval time.Duration, - eventCallback EventCallbackType) *Listener { - - l := &Listener{ - name: name, - minReconnectInterval: minReconnectInterval, - maxReconnectInterval: maxReconnectInterval, - dialer: d, - eventCallback: eventCallback, - - channels: make(map[string]struct{}), - - Notify: make(chan *Notification, 32), - } - l.reconnectCond = sync.NewCond(&l.lock) - - go l.listenerMain() - - return l -} - -// Returns the notification channel for this listener. This is the same -// channel as Notify, and will not be recreated during the life time of the -// Listener. -func (l *Listener) NotificationChannel() <-chan *Notification { - return l.Notify -} - -// Listen starts listening for notifications on a channel. Calls to this -// function will block until an acknowledgement has been received from the -// server. Note that Listener automatically re-establishes the connection -// after connection loss, so this function may block indefinitely if the -// connection can not be re-established. -// -// Listen will only fail in three conditions: -// 1) The channel is already open. The returned error will be -// ErrChannelAlreadyOpen. -// 2) The query was executed on the remote server, but PostgreSQL returned an -// error message in response to the query. The returned error will be a -// pq.Error containing the information the server supplied. -// 3) Close is called on the Listener before the request could be completed. -// -// The channel name is case-sensitive. -func (l *Listener) Listen(channel string) error { - l.lock.Lock() - defer l.lock.Unlock() - - if l.isClosed { - return errListenerClosed - } - - // The server allows you to issue a LISTEN on a channel which is already - // open, but it seems useful to be able to detect this case to spot for - // mistakes in application logic. If the application genuinely does't - // care, it can check the exported error and ignore it. - _, exists := l.channels[channel] - if exists { - return ErrChannelAlreadyOpen - } - - if l.cn != nil { - // If gotResponse is true but error is set, the query was executed on - // the remote server, but resulted in an error. This should be - // relatively rare, so it's fine if we just pass the error to our - // caller. However, if gotResponse is false, we could not complete the - // query on the remote server and our underlying connection is about - // to go away, so we only add relname to l.channels, and wait for - // resync() to take care of the rest. - gotResponse, err := l.cn.Listen(channel) - if gotResponse && err != nil { - return err - } - } - - l.channels[channel] = struct{}{} - for l.cn == nil { - l.reconnectCond.Wait() - // we let go of the mutex for a while - if l.isClosed { - return errListenerClosed - } - } - - return nil -} - -// Unlisten removes a channel from the Listener's channel list. Returns -// ErrChannelNotOpen if the Listener is not listening on the specified channel. -// Returns immediately with no error if there is no connection. Note that you -// might still get notifications for this channel even after Unlisten has -// returned. -// -// The channel name is case-sensitive. -func (l *Listener) Unlisten(channel string) error { - l.lock.Lock() - defer l.lock.Unlock() - - if l.isClosed { - return errListenerClosed - } - - // Similarly to LISTEN, this is not an error in Postgres, but it seems - // useful to distinguish from the normal conditions. - _, exists := l.channels[channel] - if !exists { - return ErrChannelNotOpen - } - - if l.cn != nil { - // Similarly to Listen (see comment in that function), the caller - // should only be bothered with an error if it came from the backend as - // a response to our query. - gotResponse, err := l.cn.Unlisten(channel) - if gotResponse && err != nil { - return err - } - } - - // Don't bother waiting for resync if there's no connection. - delete(l.channels, channel) - return nil -} - -// UnlistenAll removes all channels from the Listener's channel list. Returns -// immediately with no error if there is no connection. Note that you might -// still get notifications for any of the deleted channels even after -// UnlistenAll has returned. -func (l *Listener) UnlistenAll() error { - l.lock.Lock() - defer l.lock.Unlock() - - if l.isClosed { - return errListenerClosed - } - - if l.cn != nil { - // Similarly to Listen (see comment in that function), the caller - // should only be bothered with an error if it came from the backend as - // a response to our query. - gotResponse, err := l.cn.UnlistenAll() - if gotResponse && err != nil { - return err - } - } - - // Don't bother waiting for resync if there's no connection. - l.channels = make(map[string]struct{}) - return nil -} - -// Ping the remote server to make sure it's alive. Non-nil return value means -// that there is no active connection. -func (l *Listener) Ping() error { - l.lock.Lock() - defer l.lock.Unlock() - - if l.isClosed { - return errListenerClosed - } - if l.cn == nil { - return errors.New("no connection") - } - - return l.cn.Ping() -} - -// Clean up after losing the server connection. Returns l.cn.Err(), which -// should have the reason the connection was lost. -func (l *Listener) disconnectCleanup() error { - l.lock.Lock() - defer l.lock.Unlock() - - // sanity check; can't look at Err() until the channel has been closed - select { - case _, ok := <-l.connNotificationChan: - if ok { - panic("connNotificationChan not closed") - } - default: - panic("connNotificationChan not closed") - } - - err := l.cn.Err() - l.cn.Close() - l.cn = nil - return err -} - -// Synchronize the list of channels we want to be listening on with the server -// after the connection has been established. -func (l *Listener) resync(cn *ListenerConn, notificationChan <-chan *Notification) error { - doneChan := make(chan error) - go func() { - for channel := range l.channels { - // If we got a response, return that error to our caller as it's - // going to be more descriptive than cn.Err(). - gotResponse, err := cn.Listen(channel) - if gotResponse && err != nil { - doneChan <- err - return - } - - // If we couldn't reach the server, wait for notificationChan to - // close and then return the error message from the connection, as - // per ListenerConn's interface. - if err != nil { - for _ = range notificationChan { - } - doneChan <- cn.Err() - return - } - } - doneChan <- nil - }() - - // Ignore notifications while synchronization is going on to avoid - // deadlocks. We have to send a nil notification over Notify anyway as - // we can't possibly know which notifications (if any) were lost while - // the connection was down, so there's no reason to try and process - // these messages at all. - for { - select { - case _, ok := <-notificationChan: - if !ok { - notificationChan = nil - } - - case err := <-doneChan: - return err - } - } -} - -// caller should NOT be holding l.lock -func (l *Listener) closed() bool { - l.lock.Lock() - defer l.lock.Unlock() - - return l.isClosed -} - -func (l *Listener) connect() error { - notificationChan := make(chan *Notification, 32) - cn, err := newDialListenerConn(l.dialer, l.name, notificationChan) - if err != nil { - return err - } - - l.lock.Lock() - defer l.lock.Unlock() - - err = l.resync(cn, notificationChan) - if err != nil { - cn.Close() - return err - } - - l.cn = cn - l.connNotificationChan = notificationChan - l.reconnectCond.Broadcast() - - return nil -} - -// Close disconnects the Listener from the database and shuts it down. -// Subsequent calls to its methods will return an error. Close returns an -// error if the connection has already been closed. -func (l *Listener) Close() error { - l.lock.Lock() - defer l.lock.Unlock() - - if l.isClosed { - return errListenerClosed - } - - if l.cn != nil { - l.cn.Close() - } - l.isClosed = true - - return nil -} - -func (l *Listener) emitEvent(event ListenerEventType, err error) { - if l.eventCallback != nil { - l.eventCallback(event, err) - } -} - -// Main logic here: maintain a connection to the server when possible, wait -// for notifications and emit events. -func (l *Listener) listenerConnLoop() { - var nextReconnect time.Time - - reconnectInterval := l.minReconnectInterval - for { - for { - err := l.connect() - if err == nil { - break - } - - if l.closed() { - return - } - l.emitEvent(ListenerEventConnectionAttemptFailed, err) - - time.Sleep(reconnectInterval) - reconnectInterval *= 2 - if reconnectInterval > l.maxReconnectInterval { - reconnectInterval = l.maxReconnectInterval - } - } - - if nextReconnect.IsZero() { - l.emitEvent(ListenerEventConnected, nil) - } else { - l.emitEvent(ListenerEventReconnected, nil) - l.Notify <- nil - } - - reconnectInterval = l.minReconnectInterval - nextReconnect = time.Now().Add(reconnectInterval) - - for { - notification, ok := <-l.connNotificationChan - if !ok { - // lost connection, loop again - break - } - l.Notify <- notification - } - - err := l.disconnectCleanup() - if l.closed() { - return - } - l.emitEvent(ListenerEventDisconnected, err) - - time.Sleep(nextReconnect.Sub(time.Now())) - } -} - -func (l *Listener) listenerMain() { - l.listenerConnLoop() - close(l.Notify) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/doc.go deleted file mode 100644 index caaede24..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/doc.go +++ /dev/null @@ -1,6 +0,0 @@ -// Package oid contains OID constants -// as defined by the Postgres server. -package oid - -// Oid is a Postgres Object ID. -type Oid uint32 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/gen.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/gen.go deleted file mode 100644 index cd4aea80..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/gen.go +++ /dev/null @@ -1,74 +0,0 @@ -// +build ignore - -// Generate the table of OID values -// Run with 'go run gen.go'. -package main - -import ( - "database/sql" - "fmt" - "log" - "os" - "os/exec" - - _ "github.com/lib/pq" -) - -func main() { - datname := os.Getenv("PGDATABASE") - sslmode := os.Getenv("PGSSLMODE") - - if datname == "" { - os.Setenv("PGDATABASE", "pqgotest") - } - - if sslmode == "" { - os.Setenv("PGSSLMODE", "disable") - } - - db, err := sql.Open("postgres", "") - if err != nil { - log.Fatal(err) - } - cmd := exec.Command("gofmt") - cmd.Stderr = os.Stderr - w, err := cmd.StdinPipe() - if err != nil { - log.Fatal(err) - } - f, err := os.Create("types.go") - if err != nil { - log.Fatal(err) - } - cmd.Stdout = f - err = cmd.Start() - if err != nil { - log.Fatal(err) - } - fmt.Fprintln(w, "// generated by 'go run gen.go'; do not edit") - fmt.Fprintln(w, "\npackage oid") - fmt.Fprintln(w, "const (") - rows, err := db.Query(` - SELECT typname, oid - FROM pg_type WHERE oid < 10000 - ORDER BY oid; - `) - if err != nil { - log.Fatal(err) - } - var name string - var oid int - for rows.Next() { - err = rows.Scan(&name, &oid) - if err != nil { - log.Fatal(err) - } - fmt.Fprintf(w, "T_%s Oid = %d\n", name, oid) - } - if err = rows.Err(); err != nil { - log.Fatal(err) - } - fmt.Fprintln(w, ")") - w.Close() - cmd.Wait() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/types.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/types.go deleted file mode 100644 index a3390c23..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/oid/types.go +++ /dev/null @@ -1,173 +0,0 @@ -// generated by 'go run gen.go'; do not edit - -package oid - -const ( - T_bool Oid = 16 - T_bytea Oid = 17 - T_char Oid = 18 - T_name Oid = 19 - T_int8 Oid = 20 - T_int2 Oid = 21 - T_int2vector Oid = 22 - T_int4 Oid = 23 - T_regproc Oid = 24 - T_text Oid = 25 - T_oid Oid = 26 - T_tid Oid = 27 - T_xid Oid = 28 - T_cid Oid = 29 - T_oidvector Oid = 30 - T_pg_ddl_command Oid = 32 - T_pg_type Oid = 71 - T_pg_attribute Oid = 75 - T_pg_proc Oid = 81 - T_pg_class Oid = 83 - T_json Oid = 114 - T_xml Oid = 142 - T__xml Oid = 143 - T_pg_node_tree Oid = 194 - T__json Oid = 199 - T_smgr Oid = 210 - T_index_am_handler Oid = 325 - T_point Oid = 600 - T_lseg Oid = 601 - T_path Oid = 602 - T_box Oid = 603 - T_polygon Oid = 604 - T_line Oid = 628 - T__line Oid = 629 - T_cidr Oid = 650 - T__cidr Oid = 651 - T_float4 Oid = 700 - T_float8 Oid = 701 - T_abstime Oid = 702 - T_reltime Oid = 703 - T_tinterval Oid = 704 - T_unknown Oid = 705 - T_circle Oid = 718 - T__circle Oid = 719 - T_money Oid = 790 - T__money Oid = 791 - T_macaddr Oid = 829 - T_inet Oid = 869 - T__bool Oid = 1000 - T__bytea Oid = 1001 - T__char Oid = 1002 - T__name Oid = 1003 - T__int2 Oid = 1005 - T__int2vector Oid = 1006 - T__int4 Oid = 1007 - T__regproc Oid = 1008 - T__text Oid = 1009 - T__tid Oid = 1010 - T__xid Oid = 1011 - T__cid Oid = 1012 - T__oidvector Oid = 1013 - T__bpchar Oid = 1014 - T__varchar Oid = 1015 - T__int8 Oid = 1016 - T__point Oid = 1017 - T__lseg Oid = 1018 - T__path Oid = 1019 - T__box Oid = 1020 - T__float4 Oid = 1021 - T__float8 Oid = 1022 - T__abstime Oid = 1023 - T__reltime Oid = 1024 - T__tinterval Oid = 1025 - T__polygon Oid = 1027 - T__oid Oid = 1028 - T_aclitem Oid = 1033 - T__aclitem Oid = 1034 - T__macaddr Oid = 1040 - T__inet Oid = 1041 - T_bpchar Oid = 1042 - T_varchar Oid = 1043 - T_date Oid = 1082 - T_time Oid = 1083 - T_timestamp Oid = 1114 - T__timestamp Oid = 1115 - T__date Oid = 1182 - T__time Oid = 1183 - T_timestamptz Oid = 1184 - T__timestamptz Oid = 1185 - T_interval Oid = 1186 - T__interval Oid = 1187 - T__numeric Oid = 1231 - T_pg_database Oid = 1248 - T__cstring Oid = 1263 - T_timetz Oid = 1266 - T__timetz Oid = 1270 - T_bit Oid = 1560 - T__bit Oid = 1561 - T_varbit Oid = 1562 - T__varbit Oid = 1563 - T_numeric Oid = 1700 - T_refcursor Oid = 1790 - T__refcursor Oid = 2201 - T_regprocedure Oid = 2202 - T_regoper Oid = 2203 - T_regoperator Oid = 2204 - T_regclass Oid = 2205 - T_regtype Oid = 2206 - T__regprocedure Oid = 2207 - T__regoper Oid = 2208 - T__regoperator Oid = 2209 - T__regclass Oid = 2210 - T__regtype Oid = 2211 - T_record Oid = 2249 - T_cstring Oid = 2275 - T_any Oid = 2276 - T_anyarray Oid = 2277 - T_void Oid = 2278 - T_trigger Oid = 2279 - T_language_handler Oid = 2280 - T_internal Oid = 2281 - T_opaque Oid = 2282 - T_anyelement Oid = 2283 - T__record Oid = 2287 - T_anynonarray Oid = 2776 - T_pg_authid Oid = 2842 - T_pg_auth_members Oid = 2843 - T__txid_snapshot Oid = 2949 - T_uuid Oid = 2950 - T__uuid Oid = 2951 - T_txid_snapshot Oid = 2970 - T_fdw_handler Oid = 3115 - T_pg_lsn Oid = 3220 - T__pg_lsn Oid = 3221 - T_tsm_handler Oid = 3310 - T_anyenum Oid = 3500 - T_tsvector Oid = 3614 - T_tsquery Oid = 3615 - T_gtsvector Oid = 3642 - T__tsvector Oid = 3643 - T__gtsvector Oid = 3644 - T__tsquery Oid = 3645 - T_regconfig Oid = 3734 - T__regconfig Oid = 3735 - T_regdictionary Oid = 3769 - T__regdictionary Oid = 3770 - T_jsonb Oid = 3802 - T__jsonb Oid = 3807 - T_anyrange Oid = 3831 - T_event_trigger Oid = 3838 - T_int4range Oid = 3904 - T__int4range Oid = 3905 - T_numrange Oid = 3906 - T__numrange Oid = 3907 - T_tsrange Oid = 3908 - T__tsrange Oid = 3909 - T_tstzrange Oid = 3910 - T__tstzrange Oid = 3911 - T_daterange Oid = 3912 - T__daterange Oid = 3913 - T_int8range Oid = 3926 - T__int8range Oid = 3927 - T_pg_shseclabel Oid = 4066 - T_regnamespace Oid = 4089 - T__regnamespace Oid = 4090 - T_regrole Oid = 4096 - T__regrole Oid = 4097 -) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl.go deleted file mode 100644 index 7deb3043..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl.go +++ /dev/null @@ -1,158 +0,0 @@ -package pq - -import ( - "crypto/tls" - "crypto/x509" - "io/ioutil" - "net" - "os" - "os/user" - "path/filepath" -) - -// ssl generates a function to upgrade a net.Conn based on the "sslmode" and -// related settings. The function is nil when no upgrade should take place. -func ssl(o values) func(net.Conn) net.Conn { - verifyCaOnly := false - tlsConf := tls.Config{} - switch mode := o["sslmode"]; mode { - // "require" is the default. - case "", "require": - // We must skip TLS's own verification since it requires full - // verification since Go 1.3. - tlsConf.InsecureSkipVerify = true - - // From http://www.postgresql.org/docs/current/static/libpq-ssl.html: - // - // Note: For backwards compatibility with earlier versions of - // PostgreSQL, if a root CA file exists, the behavior of - // sslmode=require will be the same as that of verify-ca, meaning the - // server certificate is validated against the CA. Relying on this - // behavior is discouraged, and applications that need certificate - // validation should always use verify-ca or verify-full. - if sslrootcert, ok := o["sslrootcert"]; ok { - if _, err := os.Stat(sslrootcert); err == nil { - verifyCaOnly = true - } else { - delete(o, "sslrootcert") - } - } - case "verify-ca": - // We must skip TLS's own verification since it requires full - // verification since Go 1.3. - tlsConf.InsecureSkipVerify = true - verifyCaOnly = true - case "verify-full": - tlsConf.ServerName = o["host"] - case "disable": - return nil - default: - errorf(`unsupported sslmode %q; only "require" (default), "verify-full", "verify-ca", and "disable" supported`, mode) - } - - sslClientCertificates(&tlsConf, o) - sslCertificateAuthority(&tlsConf, o) - sslRenegotiation(&tlsConf) - - return func(conn net.Conn) net.Conn { - client := tls.Client(conn, &tlsConf) - if verifyCaOnly { - sslVerifyCertificateAuthority(client, &tlsConf) - } - return client - } -} - -// sslClientCertificates adds the certificate specified in the "sslcert" and -// "sslkey" settings, or if they aren't set, from the .postgresql directory -// in the user's home directory. The configured files must exist and have -// the correct permissions. -func sslClientCertificates(tlsConf *tls.Config, o values) { - // user.Current() might fail when cross-compiling. We have to ignore the - // error and continue without home directory defaults, since we wouldn't - // know from where to load them. - user, _ := user.Current() - - // In libpq, the client certificate is only loaded if the setting is not blank. - // - // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1036-L1037 - sslcert := o["sslcert"] - if len(sslcert) == 0 && user != nil { - sslcert = filepath.Join(user.HomeDir, ".postgresql", "postgresql.crt") - } - // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1045 - if len(sslcert) == 0 { - return - } - // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1050:L1054 - if _, err := os.Stat(sslcert); os.IsNotExist(err) { - return - } else if err != nil { - panic(err) - } - - // In libpq, the ssl key is only loaded if the setting is not blank. - // - // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L1123-L1222 - sslkey := o["sslkey"] - if len(sslkey) == 0 && user != nil { - sslkey = filepath.Join(user.HomeDir, ".postgresql", "postgresql.key") - } - - if len(sslkey) > 0 { - if err := sslKeyPermissions(sslkey); err != nil { - panic(err) - } - } - - cert, err := tls.LoadX509KeyPair(sslcert, sslkey) - if err != nil { - panic(err) - } - tlsConf.Certificates = []tls.Certificate{cert} -} - -// sslCertificateAuthority adds the RootCA specified in the "sslrootcert" setting. -func sslCertificateAuthority(tlsConf *tls.Config, o values) { - // In libpq, the root certificate is only loaded if the setting is not blank. - // - // https://github.com/postgres/postgres/blob/REL9_6_2/src/interfaces/libpq/fe-secure-openssl.c#L950-L951 - if sslrootcert := o["sslrootcert"]; len(sslrootcert) > 0 { - tlsConf.RootCAs = x509.NewCertPool() - - cert, err := ioutil.ReadFile(sslrootcert) - if err != nil { - panic(err) - } - - if !tlsConf.RootCAs.AppendCertsFromPEM(cert) { - errorf("couldn't parse pem in sslrootcert") - } - } -} - -// sslVerifyCertificateAuthority carries out a TLS handshake to the server and -// verifies the presented certificate against the CA, i.e. the one specified in -// sslrootcert or the system CA if sslrootcert was not specified. -func sslVerifyCertificateAuthority(client *tls.Conn, tlsConf *tls.Config) { - err := client.Handshake() - if err != nil { - panic(err) - } - certs := client.ConnectionState().PeerCertificates - opts := x509.VerifyOptions{ - DNSName: client.ConnectionState().ServerName, - Intermediates: x509.NewCertPool(), - Roots: tlsConf.RootCAs, - } - for i, cert := range certs { - if i == 0 { - continue - } - opts.Intermediates.AddCert(cert) - } - _, err = certs[0].Verify(opts) - if err != nil { - panic(err) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_go1.7.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_go1.7.go deleted file mode 100644 index d7ba43b3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_go1.7.go +++ /dev/null @@ -1,14 +0,0 @@ -// +build go1.7 - -package pq - -import "crypto/tls" - -// Accept renegotiation requests initiated by the backend. -// -// Renegotiation was deprecated then removed from PostgreSQL 9.5, but -// the default configuration of older versions has it enabled. Redshift -// also initiates renegotiations and cannot be reconfigured. -func sslRenegotiation(conf *tls.Config) { - conf.Renegotiation = tls.RenegotiateFreelyAsClient -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_permissions.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_permissions.go deleted file mode 100644 index 3b7c3a2a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_permissions.go +++ /dev/null @@ -1,20 +0,0 @@ -// +build !windows - -package pq - -import "os" - -// sslKeyPermissions checks the permissions on user-supplied ssl key files. -// The key file should have very little access. -// -// libpq does not check key file permissions on Windows. -func sslKeyPermissions(sslkey string) error { - info, err := os.Stat(sslkey) - if err != nil { - return err - } - if info.Mode().Perm()&0077 != 0 { - return ErrSSLKeyHasWorldPermissions - } - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_renegotiation.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_renegotiation.go deleted file mode 100644 index 85ed5e43..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_renegotiation.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !go1.7 - -package pq - -import "crypto/tls" - -// Renegotiation is not supported by crypto/tls until Go 1.7. -func sslRenegotiation(*tls.Config) {} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_windows.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_windows.go deleted file mode 100644 index 5d2c763c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/ssl_windows.go +++ /dev/null @@ -1,9 +0,0 @@ -// +build windows - -package pq - -// sslKeyPermissions checks the permissions on user-supplied ssl key files. -// The key file should have very little access. -// -// libpq does not check key file permissions on Windows. -func sslKeyPermissions(string) error { return nil } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/url.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/url.go deleted file mode 100644 index f4d8a7c2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/url.go +++ /dev/null @@ -1,76 +0,0 @@ -package pq - -import ( - "fmt" - "net" - nurl "net/url" - "sort" - "strings" -) - -// ParseURL no longer needs to be used by clients of this library since supplying a URL as a -// connection string to sql.Open() is now supported: -// -// sql.Open("postgres", "postgres://bob:secret@1.2.3.4:5432/mydb?sslmode=verify-full") -// -// It remains exported here for backwards-compatibility. -// -// ParseURL converts a url to a connection string for driver.Open. -// Example: -// -// "postgres://bob:secret@1.2.3.4:5432/mydb?sslmode=verify-full" -// -// converts to: -// -// "user=bob password=secret host=1.2.3.4 port=5432 dbname=mydb sslmode=verify-full" -// -// A minimal example: -// -// "postgres://" -// -// This will be blank, causing driver.Open to use all of the defaults -func ParseURL(url string) (string, error) { - u, err := nurl.Parse(url) - if err != nil { - return "", err - } - - if u.Scheme != "postgres" && u.Scheme != "postgresql" { - return "", fmt.Errorf("invalid connection protocol: %s", u.Scheme) - } - - var kvs []string - escaper := strings.NewReplacer(` `, `\ `, `'`, `\'`, `\`, `\\`) - accrue := func(k, v string) { - if v != "" { - kvs = append(kvs, k+"="+escaper.Replace(v)) - } - } - - if u.User != nil { - v := u.User.Username() - accrue("user", v) - - v, _ = u.User.Password() - accrue("password", v) - } - - if host, port, err := net.SplitHostPort(u.Host); err != nil { - accrue("host", u.Host) - } else { - accrue("host", host) - accrue("port", port) - } - - if u.Path != "" { - accrue("dbname", u.Path[1:]) - } - - q := u.Query() - for k := range q { - accrue(k, q.Get(k)) - } - - sort.Strings(kvs) // Makes testing easier (not a performance concern) - return strings.Join(kvs, " "), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/user_posix.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/user_posix.go deleted file mode 100644 index bf982524..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/user_posix.go +++ /dev/null @@ -1,24 +0,0 @@ -// Package pq is a pure Go Postgres driver for the database/sql package. - -// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris rumprun - -package pq - -import ( - "os" - "os/user" -) - -func userCurrent() (string, error) { - u, err := user.Current() - if err == nil { - return u.Username, nil - } - - name := os.Getenv("USER") - if name != "" { - return name, nil - } - - return "", ErrCouldNotDetectUsername -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/user_windows.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/user_windows.go deleted file mode 100644 index 2b691267..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/user_windows.go +++ /dev/null @@ -1,27 +0,0 @@ -// Package pq is a pure Go Postgres driver for the database/sql package. -package pq - -import ( - "path/filepath" - "syscall" -) - -// Perform Windows user name lookup identically to libpq. -// -// The PostgreSQL code makes use of the legacy Win32 function -// GetUserName, and that function has not been imported into stock Go. -// GetUserNameEx is available though, the difference being that a -// wider range of names are available. To get the output to be the -// same as GetUserName, only the base (or last) component of the -// result is returned. -func userCurrent() (string, error) { - pw_name := make([]uint16, 128) - pwname_size := uint32(len(pw_name)) - 1 - err := syscall.GetUserNameEx(syscall.NameSamCompatible, &pw_name[0], &pwname_size) - if err != nil { - return "", ErrCouldNotDetectUsername - } - s := syscall.UTF16ToString(pw_name) - u := filepath.Base(s) - return u, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/uuid.go b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/uuid.go deleted file mode 100644 index 9a1b9e07..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/github.com/lib/pq/uuid.go +++ /dev/null @@ -1,23 +0,0 @@ -package pq - -import ( - "encoding/hex" - "fmt" -) - -// decodeUUIDBinary interprets the binary format of a uuid, returning it in text format. -func decodeUUIDBinary(src []byte) ([]byte, error) { - if len(src) != 16 { - return nil, fmt.Errorf("pq: unable to decode uuid; bad length: %d", len(src)) - } - - dst := make([]byte, 36) - dst[8], dst[13], dst[18], dst[23] = '-', '-', '-', '-' - hex.Encode(dst[0:], src[0:4]) - hex.Encode(dst[9:], src[4:6]) - hex.Encode(dst[14:], src[6:8]) - hex.Encode(dst[19:], src[8:10]) - hex.Encode(dst[24:], src[10:16]) - - return dst, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/vendor.json b/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/vendor.json deleted file mode 100644 index e93f617b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/postgresql/vendor/vendor.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "comment": "", - "ignore": "test github.com/elastic/beats", - "package": [ - { - "checksumSHA1": "uTUsjF7bymOuKvXbW2BpkK/w4Vg=", - "path": "github.com/lib/pq", - "revision": "2704adc878c21e1329f46f6e56a1c387d788ff94", - "revisionTime": "2017-03-24T20:46:54Z" - }, - { - "checksumSHA1": "Gk3jTNQ5uGDUE0WMJFWcYz9PMps=", - "path": "github.com/lib/pq/oid", - "revision": "2704adc878c21e1329f46f6e56a1c387d788ff94", - "revisionTime": "2017-03-24T20:46:54Z" - } - ], - "rootPath": "github.com/elastic/beats/metricbeat/module/postgresql" -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.reference.yml b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.reference.yml index dda648a4..59680f2a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.reference.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.reference.yml @@ -13,3 +13,8 @@ hosts: ["localhost:9090"] #metrics_path: /metrics #namespace: example + + # This can be used for service account based authorization: + # bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + #ssl.certificate_authorities: + # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.yml index 176fd562..1ff113c2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/config.yml @@ -7,3 +7,8 @@ #namespace: example #username: "user" #password: "secret" + + # This can be used for service account based authorization: + # bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + #ssl.certificate_authorities: + # - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/fields.yml index ef8c4286..3afbb1c3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/_meta/fields.yml @@ -3,7 +3,7 @@ description: > Stats collected from Prometheus. short_config: false - release: beta + release: ga settings: ["ssl"] fields: - name: prometheus diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/_meta/fields.yml index 8033a27f..a927f3fc 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/_meta/fields.yml @@ -1 +1 @@ -- release: beta +- release: ga diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector.go index 75706a82..72493328 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 collector import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector_integration_test.go deleted file mode 100644 index 0d1b8b32..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector_integration_test.go +++ /dev/null @@ -1,66 +0,0 @@ -// +build integration - -package collector - -import ( - "os" - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -// These tests are running with prometheus metrics as an example as this container is already available -// Every prometheus exporter should work here. - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "prometheus") - - f := mbtest.NewEventsFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "prometheus") - - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "prometheus", - "metricsets": []string{"collector"}, - "hosts": []string{getPrometheusEnvHost() + ":" + getPrometheusEnvPort()}, - "namespace": "collector", - } -} - -func getPrometheusEnvHost() string { - host := os.Getenv("PROMETHEUS_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func getPrometheusEnvPort() string { - port := os.Getenv("PROMETHEUS_PORT") - - if len(port) == 0 { - port = "9090" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector_test.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector_test.go deleted file mode 100644 index 199e0244..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/collector_test.go +++ /dev/null @@ -1,143 +0,0 @@ -// +build !integration - -package collector - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - - "github.com/golang/protobuf/proto" - dto "github.com/prometheus/client_model/go" - "github.com/stretchr/testify/assert" -) - -func TestGetPromEventsFromMetricFamily(t *testing.T) { - labels := common.MapStr{ - "handler": "query", - } - tests := []struct { - Family *dto.MetricFamily - Event PromEvent - }{ - { - Family: &dto.MetricFamily{ - Name: proto.String("http_request_duration_microseconds"), - Help: proto.String("foo"), - Type: dto.MetricType_COUNTER.Enum(), - Metric: []*dto.Metric{ - { - Label: []*dto.LabelPair{ - { - Name: proto.String("handler"), - Value: proto.String("query"), - }, - }, - Counter: &dto.Counter{ - Value: proto.Float64(10), - }, - }, - }, - }, - Event: PromEvent{ - key: "http_request_duration_microseconds", - value: common.MapStr{ - "value": int64(10), - }, - labelHash: labels.String(), - labels: labels, - }, - }, - { - Family: &dto.MetricFamily{ - Name: proto.String("http_request_duration_microseconds"), - Help: proto.String("foo"), - Type: dto.MetricType_GAUGE.Enum(), - Metric: []*dto.Metric{ - { - Gauge: &dto.Gauge{ - Value: proto.Float64(10), - }, - }, - }, - }, - Event: PromEvent{ - key: "http_request_duration_microseconds", - value: common.MapStr{ - "value": float64(10), - }, - labelHash: "#", - }, - }, - { - Family: &dto.MetricFamily{ - Name: proto.String("http_request_duration_microseconds"), - Help: proto.String("foo"), - Type: dto.MetricType_SUMMARY.Enum(), - Metric: []*dto.Metric{ - { - Summary: &dto.Summary{ - SampleCount: proto.Uint64(10), - SampleSum: proto.Float64(10), - Quantile: []*dto.Quantile{ - { - Quantile: proto.Float64(0.99), - Value: proto.Float64(10), - }, - }, - }, - }, - }, - }, - Event: PromEvent{ - key: "http_request_duration_microseconds", - value: common.MapStr{ - "count": uint64(10), - "sum": float64(10), - "percentile": common.MapStr{ - "99": float64(10), - }, - }, - labelHash: "#", - }, - }, - { - Family: &dto.MetricFamily{ - Name: proto.String("http_request_duration_microseconds"), - Help: proto.String("foo"), - Type: dto.MetricType_HISTOGRAM.Enum(), - Metric: []*dto.Metric{ - { - Histogram: &dto.Histogram{ - SampleCount: proto.Uint64(10), - SampleSum: proto.Float64(10), - Bucket: []*dto.Bucket{ - { - UpperBound: proto.Float64(0.99), - CumulativeCount: proto.Uint64(10), - }, - }, - }, - }, - }, - }, - Event: PromEvent{ - key: "http_request_duration_microseconds", - value: common.MapStr{ - "count": uint64(10), - "sum": float64(10), - "bucket": common.MapStr{ - "0.99": uint64(10), - }, - }, - labelHash: "#", - }, - }, - } - - for _, test := range tests { - event := GetPromEventsFromMetricFamily(test.Family) - assert.Equal(t, len(event), 1) - assert.Equal(t, event[0], test.Event) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/data.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/data.go index c51b338e..233c7a9b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/collector/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 collector import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/doc.go index 1324b955..0afe6b37 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 prometheus is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/fields.go new file mode 100644 index 00000000..74c69738 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package prometheus + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "prometheus", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJy0ksGumzAQRfd8xVX2jw9g0U33T5W6rCrkwAWsGA/1DE/K31cuCY9QomzaWQ7jew5jv+HCa4UpyUgbOGsBmLfACqdva/NUAC21SX4yL7HClwIAvpszRSMhsDG26JKM+DxVFoAOkqxuJHa+r9C5oCyAxECnrNC7PEMzH3ut8OOkGk4/C6DzDK1WfzBviG7kTjKXXaeckWSebp0DycesJe+Rf+8uFM0/tXaPIE9BSy1bcWeZDTZwsxAo0wdTuRlfTc40t+nvnbeGUcx3vnEZrg8Tz2xfGOd634QuOyh3M0dKW61fM2fWgbG34a+hu1mQ2B98fCGX6+ucEqMtGCyYveKnTJtkmtj+B4/3eTwzQbo742bED8b90jYvt6EqtZSJse7a42s7kHp1a6tMDkbnA9cjkp7YqElyPctmmONFa5N6YlKv9s+lRo6SrlhAsMEZXGJ+wLjScMOyhQlar5ey+B0AAP//Qe07WA==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/data.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/data.go index e19b5a3c..c1b379ce 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/stats.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/stats.go index 5044e970..05c329d8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/stats.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/stats.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 stats import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/stats_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/stats_integration_test.go deleted file mode 100644 index fedbca0f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/prometheus/stats/stats_integration_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// +build integration - -package stats - -import ( - "os" - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "prometheus") - - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check number of fields. - assert.Equal(t, 3, len(event)) - assert.True(t, event["processes"].(common.MapStr)["open_fds"].(int64) > 0) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "prometheus") - - f := mbtest.NewEventFetcher(t, getConfig()) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "prometheus", - "metricsets": []string{"stats"}, - "hosts": []string{getPrometheusEnvHost() + ":" + getPrometheusEnvPort()}, - } -} - -func getPrometheusEnvHost() string { - host := os.Getenv("PROMETHEUS_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func getPrometheusEnvPort() string { - port := os.Getenv("PROMETHEUS_PORT") - - if len(port) == 0 { - port = "9090" - } - return port -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection.go index 977a7aab..3651dfe9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 connection import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection_integration_test.go deleted file mode 100644 index d5b76cb2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection_integration_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build integration - -package connection - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "rabbitmq") - - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - config := mtest.GetIntegrationConfig() - config["metricsets"] = []string{"connection"} - return config -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection_test.go deleted file mode 100644 index fcabe55c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/connection_test.go +++ /dev/null @@ -1,56 +0,0 @@ -package connection - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - server := mtest.Server(t, mtest.DefaultServerConfig) - defer server.Close() - - config := map[string]interface{}{ - "module": "rabbitmq", - "metricsets": []string{"connection"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, "[::1]:60938 -> [::1]:5672", event["name"]) - assert.EqualValues(t, "/", event["vhost"]) - assert.EqualValues(t, "guest", event["user"]) - assert.EqualValues(t, "nodename", event["node"]) - assert.EqualValues(t, 8, event["channels"]) - assert.EqualValues(t, 65535, event["channel_max"]) - assert.EqualValues(t, 131072, event["frame_max"]) - assert.EqualValues(t, "network", event["type"]) - - packetCount := event["packet_count"].(common.MapStr) - assert.EqualValues(t, 376, packetCount["sent"]) - assert.EqualValues(t, 376, packetCount["received"]) - assert.EqualValues(t, 0, packetCount["pending"]) - - octetCount := event["octet_count"].(common.MapStr) - assert.EqualValues(t, 3840, octetCount["sent"]) - assert.EqualValues(t, 3764, octetCount["received"]) - - assert.EqualValues(t, "::1", event["host"]) - assert.EqualValues(t, 5672, event["port"]) - - peer := event["peer"].(common.MapStr) - assert.EqualValues(t, "::1", peer["host"]) - assert.EqualValues(t, 60938, peer["port"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/data.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/data.go index 2e2a5bcc..b4ee6d20 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/connection/data.go @@ -1,8 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 connection import ( "encoding/json" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -45,19 +64,19 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { return nil, err } - events := []common.MapStr{} - errors := s.NewErrors() - + var events []common.MapStr + var errors multierror.Errors for _, node := range connections { - event, errs := eventMapping(node) + event, err := eventMapping(node) events = append(events, event) - errors.AddErrors(errs) - + if err != nil { + errors = append(errors, err) + } } - return events, errors + return events, errors.Err() } -func eventMapping(connection map[string]interface{}) (common.MapStr, *s.Errors) { +func eventMapping(connection map[string]interface{}) (common.MapStr, error) { return schema.Apply(connection) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/doc.go index c86d5c59..0d9d9e1f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 rabbitmq is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/data.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/data.go index beaabf78..72e869fb 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/data.go @@ -1,8 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 exchange import ( "encoding/json" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -44,18 +63,20 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { return nil, err } - events := []common.MapStr{} - errors := s.NewErrors() + var events []common.MapStr + var errors multierror.Errors for _, exchange := range exchanges { - event, errs := eventMapping(exchange) + event, err := eventMapping(exchange) + if err != nil { + errors = append(errors, err) + } events = append(events, event) - errors.AddErrors(errs) } - return events, errors + return events, errors.Err() } -func eventMapping(exchange map[string]interface{}) (common.MapStr, *s.Errors) { +func eventMapping(exchange map[string]interface{}) (common.MapStr, error) { return schema.Apply(exchange) } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange.go index b35cc97e..646afe57 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 exchange import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange_integration_test.go deleted file mode 100644 index 1932808a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange_integration_test.go +++ /dev/null @@ -1,32 +0,0 @@ -// +build integration - -package exchange - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "rabbitmq") - - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEventsCond(f, t, func(e common.MapStr) bool { - hasIn, _ := e.HasKey("messages.publish_in") - hasOut, _ := e.HasKey("messages.publish_out") - return hasIn && hasOut - }) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - config := mtest.GetIntegrationConfig() - config["metricsets"] = []string{"exchange"} - return config -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange_test.go deleted file mode 100644 index 10801e21..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/exchange/exchange_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package exchange - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - server := mtest.Server(t, mtest.DefaultServerConfig) - defer server.Close() - - config := map[string]interface{}{ - "module": "rabbitmq", - "metricsets": []string{"exchange"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - messagesExpected := common.MapStr{ - "publish_in": common.MapStr{ - "count": int64(100), - "details": common.MapStr{"rate": float64(0.5)}, - }, - "publish_out": common.MapStr{ - "count": int64(99), - "details": common.MapStr{"rate": float64(0.9)}, - }, - } - - assert.Equal(t, "exchange.name", event["name"]) - assert.Equal(t, "guest", event["user"]) - assert.Equal(t, "/", event["vhost"]) - assert.Equal(t, true, event["durable"]) - assert.Equal(t, false, event["auto_delete"]) - assert.Equal(t, false, event["internal"]) - assert.Equal(t, messagesExpected, event["messages"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/fields.go new file mode 100644 index 00000000..50052996 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package rabbitmq + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "rabbitmq", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzsWk9vG7sRv/tTDHxJAjiL9OpDgde89jUHB3lNXnsoCmNEjnZZcckNhytZLfrdi+Gu/nrXkmxuksPTIUAsan6/+cPhzJBvYUHrWwg4m5lYf70CiCZauoXrv6U/3f16fQWgiVUwTTTe3cIfrwAANl9D7XVr6QogkCVkuoUZRbwCYIrRuJJv4Z/XzPb6X1cAc0NW822S8BYc1nSALZ+4bugWyuDbpv/LAPqhpH1pyjtHStZuvxqSOSq3+wxKOVZw8zmmsk9H/j34YkNmQeuVD/rouycoyedLRUki+DnEivZowsrECpx3b3/6/P7DB1AVBlSRAgOxwoY0IINx8L4Y5LmsPMd8RP9uQmzRgkjtGL+QX8sU8tH7jSkkwcNgzuuMTvvoNT0Bpip0jiwPAlrvymeESFvPKEiQbISDd0cB8ySZ+xofMvKp8cHUbT3EC631K9Ln8psHrCkju7ueWUOhNsxmZgnY/CdtMOzQ4LVxMFtH4jcQPTgqfTQY+4hW1pCLXBxJnvtQY7ztfjeoiTDOmBjWzUBSGLZh3p3+mcKSQhLaZaZZRONIw9IgBFpSYIKfP36+AR/ARIYPnwC1DsQMZr6/AuZorIRCgBUyaMM4s6SHlWiIQpFXk080iR7ORyD3lCo+DGtxeTj3zhCJT5gtI2Cy2RNwqBYU75VvXSyYXC7Yj9tE0iEwiPBzk8gBq0CKzJKOYyUfsw3As9g15LR5xCEfuV7+udy8itO6MwFc5s19TpM5s+d1ji83vOhBDrmSXlKGDsj48YrQry21L67vfvT6U7dBUvggw5n3ltBdxvAfFcVKgiukE2JnSG7D0ixJNkFK5oE4YjguMTa8sI3+XpOlOAG3fe9aCzOCDkkn2BqjUWjtGlYVOXA+7TAKUquPHHXGRQoO7TRUN7sFDG+RbsAUVIBCJ1YWDUwgFe0amnZmDVekpaqbrQH7Wu6b9R+ryoMKhGLPffo7AoNMamLGkrjoFbg3rkjZL1PSg/ciTDb3BmnPVNfGXYu90G3p9hZOQYwLOUxQqY2I4NtoXDls0yFNNEU0louAIwE9tx6PVT2lEfzVr6BuVXUYJj3sW+OgI1whQ/edlo4AmJR3WrKC/K6WXCIngIvAWDdWdE1xtkR7poa+jd/QWb6N16mTeeStl3pK9PgervJtzOmrkYb/4nP66PfPOaO14UUxD0TF457x+fHxs+EFiFTgBhXBppW9vF/d8bOmNjEry0/euAgYYVWZ3vMCB2gx1N3ZU3rw8/nltOe6iD6OnDiXM/2LsbRd4wMDLtFYqQxG5hW6kNMwE/pvTBrmRxSGgUtVuLbOmmt21fAv78E3FFBWjuMHUhZNTTprrPzyvvM27MRfHBTGF2LF+wqdtlT4htw9xkh1EwtclkWdi2wKlw5FLOYAlyVEc1SNn0MrpyMfs+pARo0VCPV0hhHpJw2TKGTNjBixg97kxOeEUaKV0zc7WrsdNg4u3psCPkXFaQJMtMgbFwlfxJ4MiISdXfUEfYbia6emUHzt1GnFBTu/4gJ9WvFVMJEm0DzJPal6h549C3TgL0kDHbHsTumInfBKTfW3Kclqqn1Y5yjKhHIaEuRkfNfRE7kjZe4W3hEbLFJFGx8mqpHuEgjEgI4xjQi5t2WFS4IZkZO+RYyV+n+UfuVrawLpzu8sfXbi+JQSAesfSgdtdBoF9LqcpwqXBUcf6D77cbrTZdsfHyuQDtt58HUf5GkZJD6n6Obf9mfwFdBITkx6JuG849/tdfYgVhO8ytpx3T26O/5zsOjKhETMY5s8EcnYe30cxZds0/KI7ftVPuRKczseygdi0BRJpZGs09CmK1OYrXuSw5zSSLcwTtND8W/fBod20lAOpHzQfBy53WQ50YCexmm+E2aIDc3DhLDH8jS772vFYX6hdUValInRT0sKknDGNySs0ETjSqEo6IO02KsFxW80nJGaRPYoIPfAI1mjZ5UxbzwilQqUUzzyvg5JKVt+P3K30Twqul8QsILVSXw8Zz2Ow4sHrccCfr8NPYfj77ehP+RtKD0o27JZTsrV8A4HXqfLnwoZ/MpRuG+MfvMDPIHkOHaF9OwtmUQe7MkCPkpjKh56FVrnjCtf3cCsjVDjWrx5/V9eO2VceQN3XKaLtf9dg5kfGlPWVME7w8aVBfwqf98U6RgIrFfpRtc7EKtHCsmW3LVHskK1IZCLdg3ar9w2mLjq/hcrwES/ZeH/Sha9Ggn3ULZ1en5Y48N9E4wPJq4nK7w3AGBpSZbTobqzTfTAbTP+Fkx5x21NgSeqj3byT8C30VjDaaJSNOpsIpuxRkNBkYtYHkfsqUIgdC30JijlhITXM4or6ereFe9SBf+H4t2bLlQOoi4VMdGDqWvSBiNJ9JA1khK3nWL0e1rCl8owKHQSW5Y4BaAT+RLS23VdzJraSMzO1uAornxYyIKSuOMboAk0p6iq7u71xB1xKumyOvlzW3cVMOp11+c4VAvnV5Z0SXpngdedwTQ1sRpJbEc0p7jEPrjC3mM04fuCZJqpJxGd/aPvjz4Jvu71zOAj6BGOkxtcPXoR0fGezviH0Ti1F4Ysn44xKZzWFOGAzEXMv51vxjbwhC9wKLDhSC7vXeoXySL7Z+QWZqdUz77LBK/TeY92hWuWjfSuO0YDOhZXdqt4NHnVPqwvG5uPj+NPKvendNGegi/N1vtTIx0UotFh4w/I7JVJ1U8qY7ZK34BxyrbppTFHVIsbqAiblMo3D/WAY2hVbMPYQC/Nj2Ur5y0gjh0oxzLvB+TjOXF6m5JMYHjTphinCEyE1J2M7bukQjcR/z467M2OzlLi/wEAAP//8+RGNg==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/metricset.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/metricset.go index 38b847da..e3de5c62 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/metricset.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/metricset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 rabbitmq import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/metricset_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/metricset_test.go deleted file mode 100644 index eb3fa5ef..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/metricset_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package rabbitmq - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/metricbeat/mb" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" - - "github.com/stretchr/testify/assert" -) - -func init() { - mb.Registry.MustAddMetricSet("rabbitmq", "test", newTestMetricSet, - mb.WithHostParser(HostParser), - ) -} - -type testMetricSet struct { - *MetricSet -} - -func newTestMetricSet(base mb.BaseMetricSet) (mb.MetricSet, error) { - ms, err := NewMetricSet(base, "/api/overview") - if err != nil { - return nil, err - } - return &testMetricSet{ms}, nil -} - -// Fetch makes an HTTP request to fetch connections metrics from the connections endpoint. -func (m *testMetricSet) Fetch() ([]common.MapStr, error) { - _, err := m.HTTP.FetchContent() - return nil, err -} - -func TestManagementPathPrefix(t *testing.T) { - server := mtest.Server(t, mtest.ServerConfig{ - ManagementPathPrefix: "/management_prefix", - DataDir: "./_meta/testdata", - }) - defer server.Close() - - config := map[string]interface{}{ - "module": "rabbitmq", - "metricsets": []string{"test"}, - "hosts": []string{server.URL}, - pathConfigKey: "/management_prefix", - } - - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.NoError(t, err) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/integration.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/integration.go index 697cfff8..3160c0cf 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/integration.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/integration.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mtest import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/server.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/server.go index e100ab58..d5353419 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/server.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/mtest/server.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mtest import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/config.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/config.go index ceedb054..6dc623f3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node const ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/data.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/data.go index f22ccc2f..4318887d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( @@ -142,7 +159,11 @@ func eventsMapping(r mb.ReporterV2, content []byte) { } func eventMapping(r mb.ReporterV2, node map[string]interface{}) { - event, _ := schema.Apply(node) + event, err := schema.Apply(node) + if err != nil { + r.Error(err) + return + } r.Event(mb.Event{ MetricSetFields: event, }) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node.go index 0c2e53a7..2ab8283c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 node import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node_integration_test.go deleted file mode 100644 index f0d1a16c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node_integration_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build integration - -package node - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "rabbitmq") - - ms := mbtest.NewReportingMetricSetV2(t, getConfig()) - err := mbtest.WriteEventsReporterV2(ms, t, "") - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - config := mtest.GetIntegrationConfig() - config["metricsets"] = []string{"node"} - return config -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node_test.go deleted file mode 100644 index 0f467123..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/node/node_test.go +++ /dev/null @@ -1,140 +0,0 @@ -package node - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" - - "github.com/stretchr/testify/assert" -) - -func TestFetchNodeEventContents(t *testing.T) { - testFetch(t, configCollectNode) -} - -func TestFetchClusterEventContents(t *testing.T) { - testFetch(t, configCollectCluster) -} - -func testFetch(t *testing.T, collect string) { - server := mtest.Server(t, mtest.DefaultServerConfig) - defer server.Close() - - config := map[string]interface{}{ - "module": "rabbitmq", - "metricsets": []string{"node"}, - "hosts": []string{server.URL}, - "node.collect": collect, - } - - ms := mbtest.NewReportingMetricSetV2(t, config) - events, errors := mbtest.ReportingFetchV2(ms) - if !assert.True(t, len(errors) == 0, "There shouldn't be errors") { - t.Log(errors) - } - if !assert.True(t, len(events) > 0, "There should be events") { - t.FailNow() - } - event := events[0].MetricSetFields - - t.Logf("%s/%s event: %+v", ms.Module().Name(), ms.Name(), event.StringToPrint()) - - disk := event["disk"].(common.MapStr) - free := disk["free"].(common.MapStr) - assert.EqualValues(t, 98317942784, free["bytes"]) - - limit := free["limit"].(common.MapStr) - assert.EqualValues(t, 50000000, limit["bytes"]) - - fd := event["fd"].(common.MapStr) - assert.EqualValues(t, 1048576, fd["total"]) - assert.EqualValues(t, 31, fd["used"]) - - gc := event["gc"].(common.MapStr) - num := gc["num"].(common.MapStr) - assert.EqualValues(t, 1049055, num["count"]) - reclaimed := gc["reclaimed"].(common.MapStr) - assert.EqualValues(t, 27352751800, reclaimed["bytes"]) - - io := event["io"].(common.MapStr) - file_handle := io["file_handle"].(common.MapStr) - open_attempt := file_handle["open_attempt"].(common.MapStr) - avg := open_attempt["avg"].(common.MapStr) - assert.EqualValues(t, 0, avg["ms"]) - assert.EqualValues(t, 597670, open_attempt["count"]) - - read := io["read"].(common.MapStr) - avg = read["avg"].(common.MapStr) - assert.EqualValues(t, 0, avg["ms"]) - assert.EqualValues(t, 1, read["bytes"]) - assert.EqualValues(t, 3, read["count"]) - - reopen := io["reopen"].(common.MapStr) - assert.EqualValues(t, 3, reopen["count"]) - - seek := io["seek"].(common.MapStr) - avg = seek["avg"].(common.MapStr) - assert.EqualValues(t, 0, avg["ms"]) - assert.EqualValues(t, 23, seek["count"]) - - sync := io["sync"].(common.MapStr) - avg = sync["avg"].(common.MapStr) - assert.EqualValues(t, 2, avg["ms"]) - assert.EqualValues(t, 149402, sync["count"]) - - write := io["write"].(common.MapStr) - avg = write["avg"].(common.MapStr) - assert.EqualValues(t, 0, avg["ms"]) - assert.EqualValues(t, 36305460, write["bytes"]) - assert.EqualValues(t, 149402, write["count"]) - - mem := event["mem"].(common.MapStr) - limit = mem["limit"].(common.MapStr) - assert.EqualValues(t, 6628692787, limit["bytes"]) - used := mem["used"].(common.MapStr) - assert.EqualValues(t, 105504768, used["bytes"]) - - mnesia := event["mnesia"].(common.MapStr) - disk = mnesia["disk"].(common.MapStr) - tx := disk["tx"].(common.MapStr) - assert.EqualValues(t, 1, tx["count"]) - ram := mnesia["ram"].(common.MapStr) - tx = ram["tx"].(common.MapStr) - assert.EqualValues(t, 92, tx["count"]) - - msg := event["msg"].(common.MapStr) - store_read := msg["store_read"].(common.MapStr) - assert.EqualValues(t, 0, store_read["count"]) - store_write := msg["store_write"].(common.MapStr) - assert.EqualValues(t, 0, store_write["count"]) - - assert.EqualValues(t, "rabbit@e2b1ae6390fd", event["name"]) - - proc := event["proc"].(common.MapStr) - assert.EqualValues(t, 1048576, proc["total"]) - assert.EqualValues(t, 403, proc["used"]) - - assert.EqualValues(t, 4, event["processors"]) - - queue := event["queue"].(common.MapStr) - index := queue["index"].(common.MapStr) - journal_write := index["journal_write"].(common.MapStr) - assert.EqualValues(t, 448230, journal_write["count"]) - read = index["read"].(common.MapStr) - assert.EqualValues(t, 0, read["count"]) - write = index["write"].(common.MapStr) - assert.EqualValues(t, 2, write["count"]) - - run := event["run"].(common.MapStr) - assert.EqualValues(t, 0, run["queue"]) - - socket := event["socket"].(common.MapStr) - assert.EqualValues(t, 943626, socket["total"]) - assert.EqualValues(t, 3, socket["used"]) - - assert.EqualValues(t, "disc", event["type"]) - - assert.EqualValues(t, 98754834, event["uptime"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/data.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/data.go index bae0122e..56b977ea 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/data.go @@ -1,8 +1,27 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queue import ( "encoding/json" + "github.com/joeshaw/multierror" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -72,18 +91,20 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { return nil, err } - events := []common.MapStr{} - errors := s.NewErrors() - + var events []common.MapStr + var errors multierror.Errors for _, queue := range queues { - event, errs := eventMapping(queue) + event, err := eventMapping(queue) events = append(events, event) - errors.AddErrors(errs) + if err != nil { + errors = append(errors, err) + } } - return events, errors + return events, errors.Err() } -func eventMapping(queue map[string]interface{}) (common.MapStr, *s.Errors) { - return schema.Apply(queue) +func eventMapping(queue map[string]interface{}) (common.MapStr, error) { + event, err := schema.Apply(queue) + return event, err } diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue.go index 75a4abfb..a52611b8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 queue import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue_integration_test.go deleted file mode 100644 index 8146cdac..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue_integration_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// +build integration - -package queue - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "rabbitmq") - - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEventsCond(f, t, func(e common.MapStr) bool { - hasTotal, _ := e.HasKey("messages.total") - return hasTotal - }) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - config := mtest.GetIntegrationConfig() - config["metricsets"] = []string{"queue"} - return config -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue_test.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue_test.go deleted file mode 100644 index 251bd213..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/queue/queue_test.go +++ /dev/null @@ -1,75 +0,0 @@ -package queue - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - server := mtest.Server(t, mtest.DefaultServerConfig) - defer server.Close() - - config := map[string]interface{}{ - "module": "rabbitmq", - "metricsets": []string{"queue"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, "queuenamehere", event["name"]) - assert.EqualValues(t, "/", event["vhost"]) - assert.EqualValues(t, true, event["durable"]) - assert.EqualValues(t, false, event["auto_delete"]) - assert.EqualValues(t, false, event["exclusive"]) - assert.EqualValues(t, "running", event["state"]) - assert.EqualValues(t, "rabbit@localhost", event["node"]) - - arguments := event["arguments"].(common.MapStr) - assert.EqualValues(t, 9, arguments["max_priority"]) - - consumers := event["consumers"].(common.MapStr) - utilisation := consumers["utilisation"].(common.MapStr) - assert.EqualValues(t, 3, consumers["count"]) - assert.EqualValues(t, 0.7, utilisation["pct"]) - - memory := event["memory"].(common.MapStr) - assert.EqualValues(t, 232720, memory["bytes"]) - - messages := event["messages"].(common.MapStr) - total := messages["total"].(common.MapStr) - ready := messages["ready"].(common.MapStr) - unacknowledged := messages["unacknowledged"].(common.MapStr) - persistent := messages["persistent"].(common.MapStr) - assert.EqualValues(t, 74, total["count"]) - assert.EqualValues(t, 71, ready["count"]) - assert.EqualValues(t, 3, unacknowledged["count"]) - assert.EqualValues(t, 73, persistent["count"]) - - totalDetails := total["details"].(common.MapStr) - assert.EqualValues(t, 2.2, totalDetails["rate"]) - - readyDetails := ready["details"].(common.MapStr) - assert.EqualValues(t, 0, readyDetails["rate"]) - - unacknowledgedDetails := unacknowledged["details"].(common.MapStr) - assert.EqualValues(t, 0.5, unacknowledgedDetails["rate"]) - - disk := event["disk"].(common.MapStr) - reads := disk["reads"].(common.MapStr) - writes := disk["writes"].(common.MapStr) - assert.EqualValues(t, 212, reads["count"]) - assert.EqualValues(t, 121, writes["count"]) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/url.go b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/url.go index eb311aa8..a50f73ac 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/url.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/rabbitmq/url.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 rabbitmq import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/fields.go new file mode 100644 index 00000000..d831b638 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package redis + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "redis", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzEms2O2zYQx+/7FEROKdAI6HUPBZqiRYOmySJpzgxFjWzWFClwht51nr4gZflrJUu2KVmXxdoy/78ZzYyGH+/YCjaPzEGh8IExUqThkb35Ev5/88BYASidqklZ88h+fWCMsfgdq4Ccksik1RokQcFKZ6vmy+yBMQcaBMIjW4gHxkoFusDH+Pt3zIgK9prhok0dbnXW19tPOoTD9T3+6juT1pBQBhktgSlTWleJcC8TpmBIghRSwDuGCtchyiFOGGT3YRfRGapIFgYYD+aAvDNQsHwTb/3+4dOfn8PPq0qYIjsY+tiT7XVqxqEpUiswhEff9Vk0YNX+gTeDRhMwO7mnC+YIyBoTg+TVHS2WtmbR8eUAWbg++SoHx2zZEm7FlDXI3sKL1L5QZnH0cYwK1GIN+NPell78AAdI3HqqPXGtkCYw5GOjwhoVFlSYqGxA985Fy14ZOAI+V4sIr0xgz305Afr7RoNFDZb7sgSXhF1buZolapDVYGKchFRthGPUCK3Z2/cfnz4//czef9n/+fj07etffcGzT0SPBC51IsZBD4vLpfkIRuT6jF9zazUIc51rP5hCSUEQSqCgWNxOwLEFGHJf7dO67venb00Bu9BfHqHIcHP6sz0RSqGh4KW2oqs0jPDa1w0SVJFQWoO+2r8aGnYEtwY3ImlaWC6XShcOuh5jKupvCC4Zs8dXqZKS9YyHcyFXIahMwWpnJSDCmPK0o76rqy+Ab8ErqKzbpM2tZszr+oPoyLXQHpKX+qZGPrJ8Q9CVv9GxxZZ+7DN32F8KekCHOMZFQAvKHI4O0BrE6s60AWEsrvbizrTaixGwlXi5LmQT0P6zBVWVopGotdVKnqb8nnUFm2frujqCQ5xOmD/WKjZ0rJFgZMODZM9LMDuPBtDw3ncg5LL3vX/ILLS2UpDtfyOMQz7vwZ3KQMGswaFCAiNPH3eqjuTSkqmtCO3qjS3c8HNwRd6r0WV1r8KwaUfmCSSOYg2ZXIowL+KoXjv/GKcn38bbfAiQL6K6Mrx2duGgs+KzEe6+Tn5vP6lqfrMbeRLkz5vdn4O3ywfDMwQ5u/HbKetMALuCZ/tn5hMmWv9UkE0W3A6enaL7JVerj+Fd5O9l/Z2CvJWfN8rZUZodueAOZWZe9b3na61kXLBJ10T0DTnUPzir+zvXC7vBXpHdui9vFltvmd2NaXORwHFblgg3LdAOS4U5t7aLTEhS65smreO1UP2YSalUDomH+cmszlwqJH1mDeVqsVaoWY5KlXtf42in+0ZsRO6tw2ziVcay5Om3UMRxKX6ZRahQjpLNL/tjxStdcNW/dJ1KqLLF9PXR9lfEVBLCySXP1asl7/RKldekag0vyiy4qNX0USclnyuVtiur5yIvSS103swR3SRrXls3cWH3dc/kNaHG8se042vnudRWXryEenGnVKoFL9VEXdnuFdix+3XjEtYtJwLiPrADCWp92zZvZ3P+ryWhmdlv9R4cAWhFRyxFHrP+d/NBhitYG9FRrPH8CPJ2K2gO0kZyt/s0htMAZfG0QNa3DJ4EEujZutX2XIIyzZr7SLzmHMYsfNsjHxcAKoMkDAkD1mNma+Q1ON49jU9Ypo5lmyMlq7xOsjF+sdHNaZz55HFjZFZ6raf1cZSphSMldGYnfu8ciYHr321JoraCDWbwUiuXqC4NKK1Vslp9VqkWErLluSY7rVSlEKdeTal9jj6P2y8G9DxitSACZyYW04IAiZfWrbifvGRWauEEAZdx55OjlStIHSinAfJwOuol51jbQc6dZc2tb052tTdPe6D11YzoXEM80LT+vSVmqgBDqlS9B5R2U+j1ghOdVv3exzWg/9sanFgAI9IDusG3iUT3xx3DoKHROHx4AxxNwb4W5f8AAAD//+K17E4=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/_meta/fields.yml index 2c5c0cd8..46775c91 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/_meta/fields.yml @@ -298,7 +298,7 @@ - name: commands_processed type: long description: - Total number of commands preocessed. + Total number of commands processed. - name: net.input.bytes type: long diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/data.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/data.go index f5eaa7b6..64d055a8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 info import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/doc.go index dfc7ce4b..30398d11 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 info fetches Redis server information and statistics using the Redis INFO command. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/info.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/info.go index 553a5673..d48ec511 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/info.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/info.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 info import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/info_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/info/info_integration_test.go deleted file mode 100644 index 9606105b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/info/info_integration_test.go +++ /dev/null @@ -1,135 +0,0 @@ -// +build integration - -package info - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/redis" - - rd "github.com/garyburd/redigo/redis" - "github.com/stretchr/testify/assert" -) - -const ( - password = "foobared" -) - -var redisHost = redis.GetRedisEnvHost() + ":" + redis.GetRedisEnvPort() - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "redis") - - f := mbtest.NewEventFetcher(t, getConfig("")) - event, err := f.Fetch() - if err != nil { - t.Fatal("fetch", err) - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) - - // Check fields - assert.Equal(t, 8, len(event)) - server := event["server"].(common.MapStr) - assert.Equal(t, "standalone", server["mode"]) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "redis") - - f := mbtest.NewEventFetcher(t, getConfig("")) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func TestPasswords(t *testing.T) { - compose.EnsureUp(t, "redis") - - // Add password and ensure it gets reset - defer func() { - err := resetPassword(redisHost, password) - if err != nil { - t.Fatal("resetting password", err) - } - }() - - err := addPassword(redisHost, password) - if err != nil { - t.Fatal("adding password", err) - } - - // Test Fetch metrics with missing password - f := mbtest.NewEventFetcher(t, getConfig("")) - _, err = f.Fetch() - if assert.Error(t, err, "missing password") { - assert.Contains(t, err, "NOAUTH Authentication required.") - } - - // Config redis and metricset with an invalid password - f = mbtest.NewEventFetcher(t, getConfig("blah")) - _, err = f.Fetch() - if assert.Error(t, err, "invalid password") { - assert.Contains(t, err, "ERR invalid password") - } - - // Config redis and metricset with a valid password - f = mbtest.NewEventFetcher(t, getConfig(password)) - _, err = f.Fetch() - assert.NoError(t, err, "valid password") -} - -// addPassword will add a password to redis. -func addPassword(host, pass string) error { - c, err := rd.Dial("tcp", host) - if err != nil { - return err - } - defer c.Close() - - _, err = c.Do("CONFIG", "SET", "requirepass", pass) - return err -} - -// resetPassword changes the password to the redis DB. -func resetPassword(host, currentPass string) error { - c, err := rd.Dial("tcp", host) - if err != nil { - return err - } - defer c.Close() - - _, err = c.Do("AUTH", currentPass) - if err != nil { - return err - } - - _, err = c.Do("CONFIG", "SET", "requirepass", "") - return err -} - -// writeToRedis will write to the default DB 0. -func writeToRedis(host string) error { - c, err := rd.Dial("tcp", host) - if err != nil { - return err - } - defer c.Close() - - _, err = c.Do("SET", "foo", "bar") - return err -} - -func getConfig(password string) map[string]interface{} { - return map[string]interface{}{ - "module": "redis", - "metricsets": []string{"info"}, - "hosts": []string{redisHost}, - "password": password, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/data.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/data.go index 0e889876..15eff5b0 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 keyspace import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/keyspace.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/keyspace.go index 257f7440..9eb0e3a2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/keyspace.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/keyspace.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 keyspace import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/keyspace_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/keyspace_integration_test.go deleted file mode 100644 index 6df01f6e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/keyspace/keyspace_integration_test.go +++ /dev/null @@ -1,77 +0,0 @@ -// +build integration - -package keyspace - -import ( - "strings" - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/redis" - - rd "github.com/garyburd/redigo/redis" - "github.com/stretchr/testify/assert" -) - -var host = redis.GetRedisEnvHost() + ":" + redis.GetRedisEnvPort() - -func TestFetch(t *testing.T) { - compose.EnsureUp(t, "redis") - - addEntry(t) - - // Fetch data - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if err != nil { - t.Fatal("fetch", err) - } - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events) - - // Make sure at least 1 db keyspace exists - assert.True(t, len(events) > 0) - - keyspace := events[0] - - assert.True(t, keyspace["avg_ttl"].(int64) >= 0) - assert.True(t, keyspace["expires"].(int64) >= 0) - assert.True(t, keyspace["keys"].(int64) >= 0) - assert.True(t, strings.Contains(keyspace["id"].(string), "db")) -} - -func TestData(t *testing.T) { - compose.EnsureUp(t, "redis") - - addEntry(t) - - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -// addEntry adds an entry to redis -func addEntry(t *testing.T) { - // Insert at least one event to make sure db exists - c, err := rd.Dial("tcp", host) - if err != nil { - t.Fatal("connect", err) - } - defer c.Close() - _, err = c.Do("SET", "foo", "bar") - if err != nil { - t.Fatal("SET", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "redis", - "metricsets": []string{"keyspace"}, - "hosts": []string{host}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/redis.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/redis.go index 84c46c07..061eeee5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/redis.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/redis.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis contains shared Redis functionality for the metric sets */ @@ -32,8 +49,8 @@ func ParseRedisInfo(info string) map[string]string { } // ParseRedisLine parses a single line returned by INFO -func ParseRedisLine(s string, delimeter string) []string { - return strings.Split(s, delimeter) +func ParseRedisLine(s string, delimiter string) []string { + return strings.Split(s, delimiter) } // FetchRedisInfo returns a map of requested stats. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/redis_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/redis_integration_test.go deleted file mode 100644 index 28559da0..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/redis_integration_test.go +++ /dev/null @@ -1,7 +0,0 @@ -// +build integration - -package redis - -import ( - _ "github.com/elastic/beats/metricbeat/mb/testing" -) diff --git a/vendor/github.com/elastic/beats/metricbeat/module/redis/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/redis/testing.go index 25cbde58..3149a304 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/redis/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/redis/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 redis import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/_meta/testing/burn.go b/vendor/github.com/elastic/beats/metricbeat/module/system/_meta/testing/burn.go index ce881bbe..11ef123e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/_meta/testing/burn.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/_meta/testing/burn.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 main import "flag" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/core/config.go b/vendor/github.com/elastic/beats/metricbeat/module/system/core/config.go index ec71d9b4..5efac9aa 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/core/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/core/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 core import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/core/core.go b/vendor/github.com/elastic/beats/metricbeat/module/system/core/core.go index 99547f36..9f2c821a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/core/core.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/core/core.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package core diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/core/core_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/core/core_test.go deleted file mode 100644 index 718a0c23..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/core/core_test.go +++ /dev/null @@ -1,36 +0,0 @@ -// +build darwin freebsd linux openbsd windows - -package core - -import ( - "testing" - "time" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewReportingMetricSet(t, getConfig()) - - mbtest.ReportingFetch(f) - time.Sleep(500 * time.Millisecond) - - events, errs := mbtest.ReportingFetch(f) - if len(errs) > 0 { - t.Fatal(errs) - } - if len(events) == 0 { - t.Fatal("no events returned") - } - - event := mbtest.CreateFullEvent(f, events[1]) - mbtest.WriteEventToDataJSON(t, event, "") -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"core"}, - "core.metrics": []string{"percentages", "ticks"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/core/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/core/doc.go index 0ddd0d71..0dca999b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/core/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/core/doc.go @@ -1,2 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 core collects cpu core metrics from the host OS. package core diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/_meta/fields.yml index df98144f..40614c44 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/_meta/fields.yml @@ -69,7 +69,7 @@ type: scaled_float format: percent description: > - The percentage of CPU time spent in non-idle state. + The percentage of CPU time spent in states other than Idle and IOWait. # Normalized Percentages - name: user.norm.pct @@ -126,14 +126,7 @@ type: scaled_float format: percent description: > - The percentage of CPU time spent in non-idle state. - - - # Total - - name: total.value - type: long - description: > - The value of CPU usage since starting the process. + The percentage of CPU time in states other than Idle and IOWait, normalised by the number of cores. # Ticks diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/config.go b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/config.go index a71e96e0..074f87c7 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cpu import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/cpu.go b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/cpu.go index 504b1090..c7a9dc33 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/cpu.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/cpu.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package cpu diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/cpu_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/cpu_test.go deleted file mode 100644 index 281cdf46..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/cpu_test.go +++ /dev/null @@ -1,35 +0,0 @@ -// +build darwin freebsd linux openbsd windows - -package cpu - -import ( - "testing" - "time" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - _, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - time.Sleep(1 * time.Second) - - fields, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - - event := mbtest.CreateFullEvent(f, fields) - mbtest.WriteEventToDataJSON(t, event, "") -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"cpu"}, - "cpu.metrics": []string{"percentages", "normalized_percentages", "ticks"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/doc.go index 9dd93785..f3c4e90e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/cpu/doc.go @@ -1,2 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 cpu collects CPU metrics from the host OS. package cpu diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskio.go b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskio.go index 7e536f34..7e80c05f 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskio.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskio.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin,cgo freebsd linux windows package diskio diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskio_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskio_test.go deleted file mode 100644 index 4d5d8817..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskio_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build !integration -// +build darwin,cgo freebsd linux windows - -package diskio - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - - if err := mbtest.WriteEvents(f, t); err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"diskio"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat.go b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat.go index dace55cb..518c0bcd 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux windows package diskio diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_linux.go b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_linux.go index 21dc2981..0a89de90 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_linux.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_linux.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build linux package diskio diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_linux_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_linux_test.go deleted file mode 100644 index 342597dc..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_linux_test.go +++ /dev/null @@ -1,66 +0,0 @@ -// +build linux - -package diskio - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/system" -) - -func Test_Get_CLK_TCK(t *testing.T) { - //usually the tick is 100 - assert.Equal(t, uint32(100), Get_CLK_TCK()) -} - -func TestDataNameFilter(t *testing.T) { - oldFS := system.HostFS - newFS := "_meta/testdata" - system.HostFS = &newFS - defer func() { - system.HostFS = oldFS - }() - - conf := map[string]interface{}{ - "module": "system", - "metricsets": []string{"diskio"}, - "diskio.include_devices": []string{"sda", "sda1", "sda2"}, - } - - f := mbtest.NewEventsFetcher(t, conf) - - if err := mbtest.WriteEvents(f, t); err != nil { - t.Fatal("write", err) - } - - data, err := f.Fetch() - assert.NoError(t, err) - assert.Equal(t, 3, len(data)) -} - -func TestDataEmptyFilter(t *testing.T) { - oldFS := system.HostFS - newFS := "_meta/testdata" - system.HostFS = &newFS - defer func() { - system.HostFS = oldFS - }() - - conf := map[string]interface{}{ - "module": "system", - "metricsets": []string{"diskio"}, - } - - f := mbtest.NewEventsFetcher(t, conf) - - if err := mbtest.WriteEvents(f, t); err != nil { - t.Fatal("write", err) - } - - data, err := f.Fetch() - assert.NoError(t, err) - assert.Equal(t, 10, len(data)) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_other.go b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_other.go index 6f94950e..a32f2c66 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_other.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/diskstat_other.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin,cgo freebsd windows package diskio diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/doc.go index d71f5db4..53cad01d 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/diskio/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 diskio fetches disk IO metrics from the OS. It is implemented for darwin (requires cgo), freebsd, linux, and windows. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/doc.go index 76bf8841..1cf80cd1 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 system is a Metricbeat module that contains MetricSets that collect system level information like CPU and memory stats. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/system/fields.go new file mode 100644 index 00000000..48179568 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package system + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "system", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzsXd1vIzeSf5+/ouDDIvadrRnPbrJ7fjhgktngDCQZYz6wC9wdNFR3SeKaTXZItjTKX3/gR393q7ulltQTxA8JxpaKvyoWi1XFYvEOnnH3AGqnNEYvADTVDB/g6oP9xdULgBBVIGmsqeAP8F8vAADcH0FpohMFEWpJA3ULjD4j/PD0CQgPIcJIyB0kiqzwFvSaaCASIRCMYaAxhKUUEeg1gohREk35yqOYvQBQayH1PBB8SVcPoGWCLwAkMiQKH2BFXgAsKbJQPVhAd8BJhAU2zI/exeazUiSx/00DK+bns/vaZwgE14RyBUwEhHlqKX8z//niuMWxAyEx+2XT6HsQFFDcGToFKEaeHgEshQQCivIVQzseiCUQiBKmqf1eQYLpT1lo6U+ViSIjNCz9OmWFCb6q/GEPN+bHQP/BoOJJtECZoyp98t/gCWWAXJMVqkZAiUI5iwPdCEsFhGE4XzJBqh9YChkR/QCxoz8M/Mc1pl8kKytow46mEYKKkWug3AIDFZMAW3grcaBp8KzGEa0BRyKRcH0kMK8vUxTuM0qObAgXIwq4U8ID0HEa4PQkLDgwsb2LJRWS6h3EUgSoFKo+3JxN0oeipCGboMwtqh7Az6fIPQCJLaF6grLkYIDBteAQUvV804+Pc9qIYfjkr9MTskK5oYFxzYxLtyY8ZOYfayLDrfHmKNcoZRLrzvUofz2f6EdDrcRSf03zYvAexuGl5+YA5BoJm97MUA6UbwRLuCZy50zAYmfjnA2VOiHMfmO7pgztb9e72IhECVkbbEtUSV5Cr1GmW6CQs9oX3mwIZWTBEARnO7N5fuL0Sy9BntMuTldAWSwXJ0eFckGc1KJJw5WJmNVx0ZkJ88acKBebpRNlqUMsUXnvy86AUHrmPiz4HTfrh9HfsBomQmFlKNhSxmBNNmgCVPKFRkkEG8ISu2g+37969Sf4dzfcZ0u7Riwfp0SXMIkk3IEmz0Y/qPJUKdcCSBBYtXO2ZVMn2oDFQPldh6bwjtdTBOq2RnYnEggId5NWFHmWvFlJJBql+QV3coMfhQT8QqKY4S3QJfy5RtaplPk60fDdqz8ZaLdGr5xy+bTHLIiTWSrNz057Fgj3f2udnN9XCPv7ChK/3vDr9xLtfEVe6x9+eQOHf3i343i3WuiJCtL4gqjAsW131MeQoVWcx3f/MFaozSn5JfeMevknxpOapAiGpqkny8jQjX6ajBy120+Tpf5b/kTxH7DvT5OT0Tf/r4rNQz2AaTL5tboBU5NmHy/gNk2EKAxTIec5GxtcN/Be8Rg+1rJ7X8vJ9JTPdL+OU9AJHiZO+hDu0kchh++Il0Z+6Cb3x9lDUSZGT6l4URXFkOMHQ6Jw/mD+CY/vsjKynjV46c/wMwrz38b5fMbdVsjqwYHPHz+ACsn98Om27Jkhu5QNJSVs7jbPAfB6QvhG+RHScjf4uKYKIrIDLjQs0CjHhoZuGyeM5UKv0fQ5+g6GJJJwZg88Rlw81lMqeBhmEKMyZoaMyqgkMBq+TBjbdeDbSqrx5ADtKAcitBJc7HT/E7XUFWz60gHgLRkLowwb3nH4ifLkizviotWhoOIHKgy0kJ6SPeyJGfWaxoEolURGMvZToOhv1g/99v51rxm8vIAMDo18HBmlxHqKqUa1W2xWrcy+c0K1jygzMUEgeKj89ubNil2xvSb2YhDdmu10Fk8NsBljKMw++PjyXTdAE73N7GxL/DVBpWcRyhWqeYxyrjBoxN4UYXaArx7V22Xuh1Rgx7Sn5OA4cSe2W5QIvyaYYAha2MUQ4oZ2xjaeLaci5+XLjnlqxkrzddaJytFTpWroC3weMEHnnZlxObEz4hnYs9uMwMb3+X6b+b41zFXfvXlL656aM3LkpueULKV6RjarudkZx+WHbFCSFbo995rydLO+MSwajnpqXj8LYG3HiTmxYwBDvtLrkzBBTPh6GuyFkHkpZA67ca1rYWIbEwpj2A+5C5tx3rq7H69GbgTHiFGn4jZ/Y5l6fPlu3PlYJGo3HjdPzRnjMJHGOdmuabAus9BujK8XhIdbGuo1JJoy+hsxw1oh5J+6mcFb93FFdCLdR0QQJMZhdrVaeamdgoAJZae+XD2XimRJGZbu4sFBeYycTK2aMv/TGEWVJM3NnCnKsSkLm2fOhzbSJBwSHku6oQyN52Oz5ZS7YWaN0N30zQemXAalVYpFfg/w+WWIm5fmr/efGxGZcU8AxdCoQsEv+i/NIGwKcB4L2pJ7OBiLJWzWoKVdk00zGqutJwxkDH3gIkRltMWsavubei6vAEniRbV9v1YbdPOxpVaQl0Q8RGhW7mfNhBRkt19iicLzprLMgAPhXf7otQJ638lpporKbDBH7WNepRylwlZW2MTS3DxZrSSuSJacJ4w5k1Mpt8+/evR9gkPTs7+UzY9HA0uRVOON0vI5Yll/bDB7Lfrmhmpw7/dpffPM1hlHZecn5xpCEahajNUgddhvgfeKogt9DWeTXwleiNYCVtZAFaBZLBcDaFdqB8Amc3w+hM7sXVugMUuUlelN3RlmgoTHmA/j/BsaaXRz5IK/ur8aaoTNnyhfzZfEBOUPxukfZoh/KsDPAg9GlIaI8kRj8xq++nZKSL/1WFsMztX9pNDeN8Btxm2Loi6lEw26ACHNTkn7FTvV2bnUVDQrzBgcXUy7WrTqSJ7sh5o5Ou01xpp1dn2KjnLvHIlaisJ3QBohPXG2sMPuaw53d0eb84Ubn8wW2wvWGaNaF5/ltUbWo/JznsVCrgbEpc1CgcqWglAesCTMPhwI7s6dF7vUnQxIsEYFhNf9r0WyXKJUcK0wi1W9aEigE8JmFTdk8uFYr4l1vB3mr9eRvLHU8h5lGNpKNiO5Li9+r7fcuCLgDB6pZ6ggz4IOPmqQ6I2hcjlfapQIeYCwQL1FfxfXq7Q9Zy3mavwMNV7TNj/VT0KIMfJQpZb33QeXJ4uERAhRE8rULcTWDEKwxuA5i5ELOvy5RSXg8jGUF3fzkn/UNkNOWJAwG8gviJmWgiyywhWq7eqnSqv0jKhAs3FoG2nk9iG1B5bouw//NCSpAgIqiapWKZ1Yykmg6Saf13cc/kF5KLbq1n8ff62vNi9akc2V/3rfuWqxOdDH7kCn7ek5c3UbRGpLp6uOcEuq5qbdEMUSl/TLA1z9j2Xr/6o+Tzm/YTYLSyX3JYz7QJWmgTKOg9Unf7xjcJTaLKYq1pTB7E5HXDiYzpnpq0qXsrXWGxmG91JmKrPLB4h3eis16Sf4lIt1ssK4djP2AovVAAGL5OLrtLH4ucZa84Tk+d4CQ/7kJBaCTX3d/lzw9igHwkyYZqYoZ2eMtdHBwFFrolwVUNKr1uILGMkOjaM6uat4sBIZR1ZuDk9Nj8NIigIWibZRXZM+DeRMJdK4d5dlTGxQBiKK6OClEeKSJEw3nbr05uGI9f3WDe9qyJZCNoLPrqig3gr5/KIKb0jex9MoJH78b4qXbUo9m9O/2wtSy8rZxvnu2aBeD0wF2hRbFXyfSzci0Wc9la7eHDAxb1f9Fr8oQokB0u7aOSPImATPqE9TEuFp9xTY6ZDIDElPwVA+QymFPI1YHGl/JdAhonzVY67OhUkhD7sRUT4LpYjj2q45DiLKAxHZoig/d3lBpR+2h8ROCVAkeiX2AyymaqkCwrZkV9+JXhnn/S2RW+NB8hC+//AWFhiQRKFPnRhfQGIspM5PR9qvV6YC8BdHj9qPPI3CfuR/YzYjEhJNbovPCdwW32moPHIA59iP+qSLPQPlnQZKV4iJPtGglnSlwu9KJpxTvrpqRhOP9nhCEUhMWwpq4hONRyRyvWfY1UmGdcF026BBFDLKR57qZcIYGG+X8PDOkHfhoRZm8qV2zruDd+vPbcwq1g2JcCJXSWQz7ApjIolf/g0lLMXeG+MvmZRqmlC2NcTW3AW2fWdYZGoGj/mnGrAABIT768shapQR5Rje+mpJZKHr1OkNTkbpm7rh5EmEkgZAQ+SaLilKuP70+PamnH22VeaOsD8lU/uIhiIi3hBT5R0zwyFR8Nn97X9Txj63aNW2WZMPFn+QSLt4jKtsVCWk0l5l2aXzkUn+Y4FXZZsC1HWq0DPAHRk0c4F808iFWPwLa6kK98v5kXwi31ApuNF42BBJDUrVvnpc/2CzBzVd1C3x+aNE/P7D21vHsNul3n2Af7ZMYKlVM4yX3/vh6dOdijGgSxoUE3tx3uZhaOqutdkOdIXHPfOlDZ0vdHFD29eFpwrWtUyy/tCJ0GYtmA1YlxlVlAfotMfb2TZZd7d4hAunqyvNR7wrmM2F5TSrrEni0Dobj7rggyoaUUakP/BpHPZPZpRMkMUBQqpiRna5E6pFnG51afeReqOJZuG2NM76qiSMm1JkW6Zc9PwLjcdrxU15cZHdczRIwusnDJ5pKSJ4Vb8kVRXxnk5XcGa70NwBqwrY6cQp8bpChL3Tu0eexno0XS7M0YX1mGEIOoNpmzYwT4VoGwKZobHFgW081O9ZwuLOLobuR137Xdd+daFEbq4BaVcmH6QWxb0me1RAKnWxYyaD/j0q6+fCB9Twgf6Gs8oybGBIBEESU3c2Zb1a/5nr929+vtnP6vQs83j8qTWRl1JCO3bYxEyiWm+uNccTBxSp/UgZZp8R0ntIaaLGbVoKvTq5wwaqCq70sqFrmSs7MnuX97LHNhkiRn7UplC5qFeWgbL0e+8EjEZUz5RYDj6t7asgYqndKOmZfgf0zKdoJFmKlQq0A8JNAB6sjbMRVv0cooHwnd2VukSxJrVQbyxRGNKnEkWBthGF7Z+3QJAkbYoqhdAt4WHTwjt4Sf6c3tLjHo/Ke264kWyvFHs737rcRD27crwIy0+gpj/+W9n1P4l58rjmYqyJ8oTUmsa2iKGeZxH8zojDU7YCVFgawMqvK7XQvdRrOUDoyJ70EDB4bXp8a0MVo0nC3oF03CggSomA2jTWluq1SxgZMTd79i67ZTsj8G80kJTq41uXqvD9qFLqhfSTf4GmkSpZ7DklK4ooJnp9OiEZ6mkxoNcjW3VEN1j5tUoWLsr4RrnbpO7y+iCR2dHOIbR6Rgf2rtkBEgviJJcFqGCNYcLQPbJMbGs5d9+FqOesdsOvo0aab9x3UvssuJaCMW/ZtiLLBGdDSXULP/z4wRqQ9x+biZq/K0146MCkjQ3ZDpaEypyUtzOxFMZeUMEJa0ghWunYuzouk5oFVWnhdzqNWZXyFulqrWfw/mMBRiNdiYT5CK0CSqFWhce2GuPPRn8U8ubG5QmwQvZXJdI2KARWdIPc+J5U7Kt/ajdm0GXQoMd6haoGPr5NszFV7dkLoMVcHASheRGYn6dDzEYrtSZzspfJYKlmfsIaS52gyyEZwqodx86F77ce0UCKtN+fLRISW5C4ShiRZldsJeVE8o1K7YQWVpclKpHIABWotUhYaP0SzGrBBsjk10RocnqRfKxcW2oVjFvIhDVfA7CQUjNJimtUJjxdn4KjX5twTRSEuKTO7WuXclE52i4xNUnPhmqnlt0bboufVih9ttAeq/mkDBqDly0ki6do8FqJlhoApU5jSayzQrY8HSz01rFdknHiheLc7yhR9hTvNRilp6t164P8VfFKPeH1mq3Ldvm2rFeqDlioUs9kwm2oNQVh2OS24CtU9iKRpjwRifJrrpUw5ZUQpbyI3aOdzVLrKSZ359XBOLWY8spVb2psfeKGMGWNTmnBmEVRNjHtxs0sbSsKZCTeX15dZ12vpdCaYXh2IRhdUW2zunA3/Tw2uLZM0oa3QNOftLB56451jW1Pq530GndeQF/WJLEtUWxX8+Veu1Qwd0arSzPk8gFUgt0L+5r/qsT5ybfQLD+d9uRz7fKuKQdOuCj1GfQrLZuPDgejaZ76xUwk2JMF7hU3+SgobXDWUBKW/vzhTWc/F/am/fnsebzG4sNFBUUv3WA3JqAYP3fo+6A17l4zHIfXjJci+Ay4LZCIRNhW3t6ML32m8GwIr92B7c0QqDHK5gwL7C8bSn9K5UPHa1bGZc16ZmwLDkiCtf1oRcP2bN9UdavY3qNZGGY9/fUynxZ2pbV/GNATGdDhhjLCaGZP0FoPhqHPCu06WRzAeLHbij/cW+xa01/XaYOBvm5RznBEvkyH6TVmWcFi+42xOXfnXVPkOk+9uE2m3D7CcJtWGZu4vX37JMEab1yY0pCvdg/u5557ovruD0Z6S0JZcvp8Svms10culqF11rTCHftdV+b0Brak3YuSZrvoHbFFGKnt1GzDGtMOHmlBcclQ2C4g9iq860Lo11ArvTHXViasqdqVWpmN2YzrwioJZY8jcaywJm+K0kySV7iq0Oxk78+TjG2A1HZKJqi62OyEtlK8rs26NVYDjdLzVP0VXyJ6Mrflefp+S1UEne5LK9Xhkpm8MRHLinz2GYj2LOEhhuN5mq5Ldd7G9F0M7bkO4kmaipKNMJvMxx+esv6F9XbxQxidqmko2oQqxw02oiM5dpj1tGL6GuyEF1ZVTjWD0SWlgz2NTFrTNBrViWw/rBruX7iEpesDOCdcNPfA6C2AEXXlDRd8F4lE5R6ojXVBcPB9CxkSpe8kBsg1293Z1Xb90/tP7QJiVOnSBd4oXiq4VusIo5vbocaoJDwTpZ9ZeD9ShncLEjznxem5cH56/ylj9wCurKzPzM+T2SDswGPP0ZqiJDJY04CwuRPVfFqmsZg2ziKxFLb3nrJ+DgU74Wxf+8ntKOJS22lKK4/IesutlWRZnofJLe2o+vVY0qwHbNFclFZee4BbXZEHSeoCZrNdUs0GtVFGB2hHROIYw2lx/MG/Ae64vXMQwf/PvqvTborHtTkxWeHcdm47e5GMsREku11Rjk61pKsVSgzNJ/YlwCz0gfrwLyHnXwHfFmgH43D1s/nUlfungrVRIZ7fXfHJANdlme3sHRYt9oW/rkGJbRVhL9eEtHi7o6dGqXlr2uUEhWe216P5r60+E4WG6dRdynPPbPUuuSzyIZK2XONpGRFJIUg7lpV9F3J7sXKObfE6bzkjCVe+C1LWRvjmFrhoz/uO67hKpeZm5MlI7ZdK20KxBJIJslFew0pntiSeDK8fsmOPA2cv4bihgSaLCe34PxfSsXlTJ4kBIzTCsBenKZcL9kybbPiAcpnvmQiKjVL/qJIZu0rmgCIZV004FY2tPvfoDI+1NUuU0mX73Lst/qXMhVUq9yRyewDTflgzSExUnKfqMhfA48t3aStJwW2Zv5G2q5Az7B/OuK3Dxvxqva89du8cMxrsWjtWzlQSRaT8ghbVDB/gyfuXH+ofGNra0pMoNVUuXIxGBb4tY/NbXyd/c6vXu1qFXrsZbOEfVq/iLdw4cYyNhKTQv9wLbAgWGvZ/Ib03EEN0EArFEONTiCQlPAyNHrNrbQGMozsIy28iWtDxZ8iRHYQk4c9cbKsR2PFQcgyFuxVrdK1aTWTCQv6Nd2y0pLgxxlGauMUjqtsxSehRz7NWvn/prrm/FFp/uv2geYZsaovq3XzkBrop3Ts3JT2QmPg+PU0ZSWGKD064FJ4bZM/4p7T3doSCHIqPfjVjso7MuKAKAZwlXsSzFixskY5HonY8OIGV81D8ru3RuPyUtNdMzLj1NatE8IxHvcn+8YcnT0Xl4zldOc5vcP1eqWi2fR0PM6R91IeJ87/F1hlBy489DKacatslZQZPQim6YP4CsfKCdePcZo3R60ldIW3OG3l3d/kliWit9UQ/huPNX4Yx+yYMpe3TYcfsAGYfYp3R5v4/tV9nqO7/8/Xs1ez17N4I4fWrV/cPr95+/7eHN9///e3D377983cPD/fDQP9kH4R9fALi0Pt0mu8bQjg8Pm3+YgZ7fNp8l32oD2+xkL1f78/4e/36EPhmqA5MEiOhcQICf2+BjCxxz91ZRO4Z6C9z44sdsgL/+t3d6/v7u/v7v979+bsZ3878X2aBqD1N1oH56eN7kBgIGTa0aUIPFB6f0icyxUIT2xBiQwlI3KBU9WOWxydgQjy3xuYVMaBm4TxmiZqLQb3i87dxDmXfNsVeLjHwOZn4juEGWdqj/Bo//vT2JvWHvCzMpLnDbMHRPo9apcrIAlnpDQLXfN1Q+4976wVfLYWYLYicrQQjfDUTcjW7MvK9Kv6ill/L+nEbGmlv97TpsiEPgYjQNzgjHDBaYBhiCIGIs2bmhkCVsP3CWuv44eXLOFkwGqhkuaRfLI7eujy3r5yM55f+3ZDzH1qkbLqb7NmcWA306ga+JqwDcZoFGe8hhjwNmR7QWf/Et8zL9/mewHzH59MEGGk76WtbhuEScq9fQbAmrt7RPXjb9Rh1BnWsFx72joJfRox23iyUYIku92LDLxgkLvm/H5K9zzya4nzKNcfeLEszPI2tMtvxnC4c7UaVAYkrLXOGP4bjSHwu105V3+HxA/m84pGOv28DMYsGvySWfrXyZ8rjRM/TD0WUMeovRw8MR+0qTHm1fWRyUrMX/x8AAP//nxVJ3Q==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/doc.go index 69e2c7b2..d15a2f6b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 filesystem provides a MetricSet implementation that fetches metrics for each of the mounted file systems. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/filesystem.go b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/filesystem.go index 591f8ad8..eb78f5b8 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/filesystem.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/filesystem.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package filesystem diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/filesystem_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/filesystem_test.go deleted file mode 100644 index d76eebab..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/filesystem_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// +build darwin freebsd linux openbsd windows - -package filesystem - -import ( - "testing" - - "time" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - - // Do a first fetch to have percentages - f.Fetch() - time.Sleep(1 * time.Second) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"filesystem"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/helper.go b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/helper.go index 29a26b73..39d34323 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/helper.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/helper.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package filesystem diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/helper_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/helper_test.go deleted file mode 100644 index 9fa62115..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/filesystem/helper_test.go +++ /dev/null @@ -1,156 +0,0 @@ -// +build !integration -// +build darwin freebsd linux openbsd windows - -package filesystem - -import ( - "io/ioutil" - "os" - "runtime" - "testing" - - "github.com/stretchr/testify/assert" - - sigar "github.com/elastic/gosigar" -) - -func TestFileSystemList(t *testing.T) { - if runtime.GOOS == "darwin" && os.Getenv("TRAVIS") == "true" { - t.Skip("FileSystem test fails on Travis/OSX with i/o error") - } - - fss, err := GetFileSystemList() - if err != nil { - t.Fatal("GetFileSystemList", err) - } - assert.True(t, (len(fss) > 0)) - - for _, fs := range fss { - if fs.TypeName == "cdrom" { - continue - } - - stat, err := GetFileSystemStat(fs) - if os.IsPermission(err) { - continue - } - - if assert.NoError(t, err, "filesystem=%v: %v", fs, err) { - assert.True(t, (stat.Total >= 0)) - assert.True(t, (stat.Free >= 0)) - assert.True(t, (stat.Avail >= 0)) - assert.True(t, (stat.Used >= 0)) - - if runtime.GOOS != "windows" { - assert.NotEqual(t, "", stat.SysTypeName) - } - } - } -} - -func TestFileSystemListFiltering(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skip("These cases don't need to work on Windows") - } - - fakeDevDir, err := ioutil.TempDir(os.TempDir(), "dir") - assert.Empty(t, err) - defer os.RemoveAll(fakeDevDir) - - cases := []struct { - description string - fss, expected []sigar.FileSystem - }{ - { - fss: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - {DirName: "/", DevName: "/dev/sda1"}, - }, - expected: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - }, - }, - { - description: "Don't repeat devices, shortest of dir names should be used", - fss: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - {DirName: "/bind", DevName: "/dev/sda1"}, - }, - expected: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - }, - }, - { - description: "Don't repeat devices, shortest of dir names should be used", - fss: []sigar.FileSystem{ - {DirName: "/bind", DevName: "/dev/sda1"}, - {DirName: "/", DevName: "/dev/sda1"}, - }, - expected: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - }, - }, - { - description: "Keep tmpfs", - fss: []sigar.FileSystem{ - {DirName: "/run", DevName: "tmpfs"}, - {DirName: "/tmp", DevName: "tmpfs"}, - }, - expected: []sigar.FileSystem{ - {DirName: "/run", DevName: "tmpfs"}, - {DirName: "/tmp", DevName: "tmpfs"}, - }, - }, - { - description: "Don't repeat devices, shortest of dir names should be used, keep tmpfs", - fss: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - {DirName: "/bind", DevName: "/dev/sda1"}, - {DirName: "/run", DevName: "tmpfs"}, - }, - expected: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - {DirName: "/run", DevName: "tmpfs"}, - }, - }, - { - description: "Don't keep the fs if the device is a directory (it'd be a bind mount)", - fss: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - {DirName: "/bind", DevName: fakeDevDir}, - }, - expected: []sigar.FileSystem{ - {DirName: "/", DevName: "/dev/sda1"}, - }, - }, - { - description: "Don't filter out NFS", - fss: []sigar.FileSystem{ - {DirName: "/srv/data", DevName: "192.168.42.42:/exports/nfs1"}, - }, - expected: []sigar.FileSystem{ - {DirName: "/srv/data", DevName: "192.168.42.42:/exports/nfs1"}, - }, - }, - } - - for _, c := range cases { - filtered := filterFileSystemList(c.fss) - assert.ElementsMatch(t, c.expected, filtered, c.description) - } -} - -func TestFilter(t *testing.T) { - in := []sigar.FileSystem{ - {SysTypeName: "nfs"}, - {SysTypeName: "ext4"}, - {SysTypeName: "proc"}, - {SysTypeName: "smb"}, - } - - out := Filter(in, BuildTypeFilter("nfs", "smb", "proc")) - - if assert.Len(t, out, 1) { - assert.Equal(t, "ext4", out[0].SysTypeName) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/doc.go index fde49639..518c62fe 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 fsstat provides a MetricSet for fetching aggregated filesystem stats. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/fsstat.go b/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/fsstat.go index f8cbadbf..2a9650db 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/fsstat.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/fsstat.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package fsstat diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/fsstat_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/fsstat_test.go deleted file mode 100644 index 34ac8a8f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/fsstat/fsstat_test.go +++ /dev/null @@ -1,31 +0,0 @@ -// +build darwin freebsd linux openbsd windows - -package fsstat - -import ( - "testing" - - "time" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - - // Do a first fetch to have percentages - f.Fetch() - time.Sleep(1 * time.Second) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"fsstat"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/hostnamechange_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/hostnamechange_test.go deleted file mode 100644 index 50e383e4..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/hostnamechange_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package system - -import ( - "bytes" - "io/ioutil" - "testing" -) - -// Checks that the Host Overview dashboard contains the CHANGEME_HOSTNAME variable -// that the dashboard loader code magically changes to the hostname on which the Beat -// is running. -func TestHostDashboardHasChangeableHost(t *testing.T) { - dashPath := "_meta/kibana/6/dashboard/Metricbeat-host-overview.json" - contents, err := ioutil.ReadFile(dashPath) - if err != nil { - t.Fatalf("Error reading file %s: %v", dashPath, err) - } - if !bytes.Contains(contents, []byte("CHANGEME_HOSTNAME")) { - t.Errorf("Dashboard '%s' doesn't contain string 'CHANGEME_HOSTNAME'. See elastic/beats#5340", dashPath) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/load/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/load/doc.go index 35ecb168..1083be9e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/load/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/load/doc.go @@ -1,2 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 load collects system CPU load metrics from the host OS. package load diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/load/load.go b/vendor/github.com/elastic/beats/metricbeat/module/system/load/load.go index e75cc6dc..fea5cc77 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/load/load.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/load/load.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd package load diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/load/load_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/load/load_test.go deleted file mode 100644 index 5ee03112..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/load/load_test.go +++ /dev/null @@ -1,29 +0,0 @@ -// +build !integration -// +build darwin freebsd linux openbsd - -package load - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - - load, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - - event := mbtest.CreateFullEvent(f, load) - mbtest.WriteEventToDataJSON(t, event, "") -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"load"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/memory/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/memory/doc.go index ee318458..e304387a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/memory/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/memory/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 memory collects memory metrics from the host OS. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/memory/memory.go b/vendor/github.com/elastic/beats/metricbeat/module/system/memory/memory.go index 863f8252..71b0f76e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/memory/memory.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/memory/memory.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux openbsd windows package memory diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/memory/memory_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/memory/memory_test.go deleted file mode 100644 index 8ffe39a6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/memory/memory_test.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build darwin freebsd linux openbsd windows - -package memory - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"memory"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/network/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/network/doc.go index 51ff0c7c..011ef48c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/network/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/network/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 network provides network IO metrics from the OS. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/network/network.go b/vendor/github.com/elastic/beats/metricbeat/module/system/network/network.go index 63c4d59b..bb3de22e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/network/network.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/network/network.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux windows package network diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/network/network_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/network/network_test.go deleted file mode 100644 index 04c63f60..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/network/network_test.go +++ /dev/null @@ -1,26 +0,0 @@ -// +build !integration -// +build darwin freebsd linux windows - -package network - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"network"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process/cgroup.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process/cgroup.go index 1ac7d676..464dbb50 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process/cgroup.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/process/cgroup.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 process import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process/config.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process/config.go index 80ec33ce..6a85fd1a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/process/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 process import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process/doc.go index 5c21ec96..aa546367 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/process/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 process collects metrics about the running processes using information from the operating system. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process/process.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process/process.go index 56973691..00b9c1ac 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process/process.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/process/process.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux windows package process diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process/process_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process/process_test.go deleted file mode 100644 index 432d9d95..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process/process_test.go +++ /dev/null @@ -1,30 +0,0 @@ -// +build darwin freebsd linux windows - -package process - -import ( - "testing" - "time" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - - // Do a first fetch to have percentages - f.Fetch() - time.Sleep(1 * time.Second) - - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"process"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/doc.go index bc782c21..dc21ba38 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 process_summary collects high level summary metrics about the running processes. It is implemented on darwin, freebsd, linux, and windows. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/process_summary.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/process_summary.go index 05c409e0..088ab227 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/process_summary.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/process_summary.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin freebsd linux windows package process_summary diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/process_summary_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/process_summary_test.go deleted file mode 100644 index c2b166aa..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/process_summary/process_summary_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// +build darwin freebsd linux windows - -package process_summary - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) - } -} - -func TestFetch(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - assert.NoError(t, err) - assert.Contains(t, event, "total") - assert.Contains(t, event, "sleeping") - assert.Contains(t, event, "running") - assert.Contains(t, event, "idle") - assert.Contains(t, event, "stopped") - assert.Contains(t, event, "zombie") - assert.Contains(t, event, "unknown") - - total := event["sleeping"].(int) + event["running"].(int) + event["idle"].(int) + - event["stopped"].(int) + event["zombie"].(int) + event["unknown"].(int) - - assert.Equal(t, event["total"].(int), total) -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"process_summary"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/docs.asciidoc index 6544b9da..a589d3df 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/docs.asciidoc @@ -1,3 +1,3 @@ -=== system raid MetricSet +This is the raid metricset of the module system. It collects stats about the raid. -This is the raid metricset of the module system. +The config option `raid.mount_point:` can be used to configure the raid mount point. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/fields.yml index 3a06b220..35c6e242 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/_meta/fields.yml @@ -2,7 +2,7 @@ type: group description: > raid - release: beta + release: ga fields: - name: name type: keyword diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/doc.go index 7307d014..bd05ec28 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/doc.go @@ -1 +1,18 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 raid diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/raid.go b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/raid.go index 0167c30b..16f1475e 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/raid.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/raid.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 raid import ( @@ -7,7 +24,6 @@ import ( "github.com/prometheus/procfs" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" "github.com/elastic/beats/metricbeat/module/system" @@ -27,8 +43,6 @@ type MetricSet struct { // New creates a new instance of the raid metricset. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Beta("The system raid metricset is beta") - systemModule, ok := base.Module().(*system.Module) if !ok { return nil, errors.New("unexpected module type") diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/raid_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/raid/raid_test.go deleted file mode 100644 index 9c2e2a58..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/raid/raid_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package raid - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - - if err := mbtest.WriteEvents(f, t); err != nil { - t.Fatal("write", err) - } -} - -func TestFetch(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - data, err := f.Fetch() - assert.NoError(t, err) - assert.Equal(t, 8, len(data)) -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"raid"}, - "raid.mount_point": "./_meta/testdata", - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/_meta/fields.yml index 0a34d09a..a75af1a9 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/_meta/fields.yml +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/_meta/fields.yml @@ -2,7 +2,7 @@ type: group description: > TCP sockets that are active. - release: beta + release: ga fields: - name: direction type: keyword diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/config.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/config.go index fbace279..5ca87a98 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/config.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/config.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 socket import "time" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/doc.go index 84a2bef2..0d3c6587 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 socket captures active sockets and the processes that own them. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/hashset.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/hashset.go index 221ea8c7..e017d248 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/hashset.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/hashset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 socket // hashSet is a simple set built upon a map. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/hashset_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/hashset_test.go deleted file mode 100644 index cd0d0d10..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/hashset_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package socket - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestHashSet(t *testing.T) { - set := hashSet{} - - set.Add(10) - assert.True(t, set.Contains(10)) - assert.False(t, set.Contains(0)) - - set.Reset() - assert.Len(t, set, 0) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/listeners.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/listeners.go index 8c2306c8..2ff6bd6b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/listeners.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/listeners.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 socket import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/listeners_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/listeners_test.go deleted file mode 100644 index e0dd0faf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/listeners_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package socket - -import ( - "net" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestListenerTable(t *testing.T) { - l := NewListenerTable() - - proto := uint8(4) - lAddr := net.ParseIP("192.0.2.1") - httpPort := 80 - rAddr := net.ParseIP("198.18.0.1") - ephemeralPort := 48199 - ipv6Addr := net.ParseIP("2001:db8:fe80::217:f2ff:fe07:ed62") - - // Any socket with remote port of 0 is listening. - assert.Equal(t, Listening, l.Direction(proto, lAddr, httpPort, net.IPv4zero, 0)) - - // Listener on 192.0.2.1:80 - l.Put(proto, lAddr, httpPort) - - assert.Equal(t, Incoming, l.Direction(proto, lAddr, httpPort, rAddr, ephemeralPort)) - assert.Equal(t, Outgoing, l.Direction(0, lAddr, httpPort, rAddr, ephemeralPort)) - assert.Equal(t, Outgoing, l.Direction(proto, lAddr, ephemeralPort, rAddr, ephemeralPort)) - - // Listener on 0.0.0.0:80 - l.Reset() - l.Put(proto, net.IPv4zero, httpPort) - - assert.Equal(t, Incoming, l.Direction(proto, lAddr, httpPort, rAddr, ephemeralPort)) - assert.Equal(t, Outgoing, l.Direction(proto, ipv6Addr, httpPort, rAddr, ephemeralPort)) - - // Listener on :::80 - l.Reset() - l.Put(proto, net.IPv6zero, httpPort) - - assert.Equal(t, Incoming, l.Direction(proto, ipv6Addr, httpPort, rAddr, ephemeralPort)) - assert.Equal(t, Outgoing, l.Direction(proto, lAddr, httpPort, rAddr, ephemeralPort)) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/ptable.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/ptable.go index 5be3ea2a..034337ab 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/ptable.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/ptable.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 socket import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/reverse_lookup.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/reverse_lookup.go index 4b847eef..e2703f6b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/reverse_lookup.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/reverse_lookup.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 socket import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/socket.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/socket.go index 01c76b34..7c45df08 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/socket.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/socket.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build linux package socket @@ -11,7 +28,6 @@ import ( "syscall" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -46,8 +62,6 @@ type MetricSet struct { } func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Beta("The system collector metricset is beta") - c := defaultConfig if err := base.Module().UnpackConfig(&c); err != nil { return nil, err diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/socket_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/socket_test.go deleted file mode 100644 index 9e57e751..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/socket_test.go +++ /dev/null @@ -1,107 +0,0 @@ -// +build linux - -package socket - -import ( - "net" - "os" - "strconv" - "strings" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestData(t *testing.T) { - ln, err := net.Listen("tcp", ":0") - if err != nil { - t.Fatal(err) - } - defer ln.Close() - - f := mbtest.NewEventsFetcher(t, getConfig()) - - if err = mbtest.WriteEvents(f, t); err != nil { - t.Fatal("write", err) - } -} - -func TestFetch(t *testing.T) { - ln, err := net.Listen("tcp", ":0") - if err != nil { - t.Fatal(err) - } - defer ln.Close() - - addr := ln.Addr().String() - i := strings.LastIndex(addr, ":") - listenerPort, err := strconv.Atoi(addr[i+1:]) - if err != nil { - t.Fatal("failed to get port from addr", addr) - } - - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if err != nil { - t.Fatal("fetch", err) - } - - var found bool - for _, evt := range events { - port, ok := getRequiredValue("local.port", evt, t).(int) - if !ok { - t.Fatal("local.port is not an int") - } - if port != listenerPort { - continue - } - - pid, ok := getRequiredValue("process.pid", evt, t).(int) - if !ok { - t.Fatal("proess.pid is not a int") - } - assert.Equal(t, os.Getpid(), pid) - - uid, ok := getRequiredValue("user.id", evt, t).(uint32) - if !ok { - t.Fatal("user.id is not an uint32") - } - assert.EqualValues(t, os.Geteuid(), uid) - - dir, ok := getRequiredValue("direction", evt, t).(string) - if !ok { - t.Fatal("direction is not a string") - } - assert.Equal(t, "listening", dir) - - _ = getRequiredValue("process.cmdline", evt, t).(string) - _ = getRequiredValue("process.command", evt, t).(string) - _ = getRequiredValue("process.exe", evt, t).(string) - - found = true - break - } - - assert.True(t, found, "listener not found") -} - -func getRequiredValue(key string, m common.MapStr, t testing.TB) interface{} { - v, err := m.GetValue(key) - if err != nil { - t.Fatal(err) - } - if v == nil { - t.Fatalf("key %v not found in %v", key, m) - } - return v -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"socket"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/user_cache.go b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/user_cache.go index 729fef4f..7ec6e11c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/socket/user_cache.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/socket/user_cache.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 socket import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/system.go b/vendor/github.com/elastic/beats/metricbeat/module/system/system.go index 5ad1244b..6f0ac639 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/system.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/system.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 system import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/system_linux.go b/vendor/github.com/elastic/beats/metricbeat/module/system/system_linux.go index b5ec941c..72477566 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/system_linux.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/system_linux.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 system import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/system_other.go b/vendor/github.com/elastic/beats/metricbeat/module/system/system_other.go index 8e001337..8d89efbd 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/system_other.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/system_other.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build !linux,!windows package system diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/system_windows.go b/vendor/github.com/elastic/beats/metricbeat/module/system/system_windows.go index a9ba5466..b59e6c94 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/system_windows.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/system_windows.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 system import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/doc.go index 289e4a3f..3a4e38a3 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/doc.go @@ -1,2 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 uptime reports the system's uptime. package uptime diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/metricset.go b/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/metricset.go index 6f07aeb6..2c442547 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/metricset.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/metricset.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + // +build darwin linux openbsd windows package uptime diff --git a/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/metricset_test.go b/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/metricset_test.go deleted file mode 100644 index 96660567..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/system/uptime/metricset_test.go +++ /dev/null @@ -1,28 +0,0 @@ -// +build darwin linux openbsd windows - -package uptime - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - - uptime, err := f.Fetch() - if err != nil { - t.Fatal(err) - } - - event := mbtest.CreateFullEvent(f, uptime) - mbtest.WriteEventToDataJSON(t, event, "") -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "system", - "metricsets": []string{"uptime"}, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/Dockerfile b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/Dockerfile new file mode 100644 index 00000000..a36e1f09 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/Dockerfile @@ -0,0 +1,6 @@ +FROM traefik:1.6-alpine + +COPY ./traefik.toml /etc/traefik/traefik.toml + +RUN apk add --no-cache curl +HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost:8080/health diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/config.yml b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/config.yml new file mode 100644 index 00000000..41f2bd10 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/config.yml @@ -0,0 +1,4 @@ +- module: traefik + metricsets: ["health"] + period: 10s + hosts: ["localhost:8080"] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/docs.asciidoc new file mode 100644 index 00000000..ec3e4ac7 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/docs.asciidoc @@ -0,0 +1,6 @@ +This module periodically fetches metrics from a https://traefik.io/[Traefik] +instance. The Traefik instance must be configured to expose it's HTTP API. + +=== Compatibility + +The Traefik metricsets were tested with Traefik 1.6. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/env b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/env new file mode 100644 index 00000000..d8aa826e --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/env @@ -0,0 +1,2 @@ +TRAEFIK_HOST=traefik +TRAEFIK_API_PORT=8080 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/fields.yml new file mode 100644 index 00000000..6d59279d --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/fields.yml @@ -0,0 +1,11 @@ +- key: traefik + title: "traefik" + description: > + Traefik reverse proxy / load balancer metrics + release: beta + fields: + - name: traefik + type: group + description: > + Traefik reverse proxy / load balancer metrics + fields: diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/traefik.toml b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/traefik.toml new file mode 100644 index 00000000..458075b2 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/_meta/traefik.toml @@ -0,0 +1 @@ +[api] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/traefik/doc.go new file mode 100644 index 00000000..d6cebf63 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/doc.go @@ -0,0 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 traefik is a Metricbeat module that contains MetricSets. +package traefik diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/traefik/fields.go new file mode 100644 index 00000000..db74b6b5 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package traefik + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "traefik", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJy00TGP2kAQBeDev+KJJhVJ7yISZYpEUZSr0Xr9bPawd1aza3T8+5ONAeOzOHSnm3IHZj6/WWPPY46khpXbZ0ByqWGO1fiyyoCS0aoLyYnP8TMDgP+nLpQHaiSCyssRP9CIKVGYxnhLRcukzsYMUDY0kTkKJpMBlWNTxnyYtYY3LaeGvtIxMEet0oXxZYHxEUpf0/VTwo6mSbvL85LijqSv36c9kCIZ51miUmnPxm9x3IDN31+gL4M4nyb/n7umti4k1/J7pL1pn42N+HrWuMPs62kYCKkuETofUx8XnEekFV/GRYoyBvGRi5B5WA9I/o3zZle6l8qUY6W7SfHdYB4g9fWnawtqH9D5g+eyq8Ec6u1wn+7tbz4v2RyopubFgeFyzqN1VmXpVFNbTCZ1cWulnF/sapPimXYpxFNj+wVZIlBHGwbbawAAAP//CW40lQ==" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/data.json b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/data.json new file mode 100644 index 00000000..4ec5ad9e --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/data.json @@ -0,0 +1,29 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "beat": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "metricset": { + "host": "127.0.0.1:8080", + "module": "traefik", + "name": "health", + "rtt": 115 + }, + "traefik": { + "health": { + "response": { + "avg_time": { + "us": 32 + }, + "count": 15, + "status_codes": { + "404": 15 + } + }, + "uptime": { + "sec": 1944 + } + } + } +} \ No newline at end of file diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/docs.asciidoc new file mode 100644 index 00000000..2a1cace1 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/docs.asciidoc @@ -0,0 +1 @@ +This is the health metricset of the module traefik. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/fields.yml b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/fields.yml new file mode 100644 index 00000000..38424ce9 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/fields.yml @@ -0,0 +1,27 @@ +- name: health + type: group + description: > + Metrics obtained from Traefik's health API endpoint + fields: + - name: uptime.sec + type: long + description: > + Uptime of Traefik instance in seconds + - name: response + type: group + description: > + Response metrics + fields: + - name: count + type: long + description: > + Number of responses + - name: avg_time.us + type: long + description: > + Average response time in microseconds + - name: status_code + type: object + object_type: long + description: > + Number of responses per status code diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/test/simple.json b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/test/simple.json new file mode 100644 index 00000000..a5073cfd --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/_meta/test/simple.json @@ -0,0 +1,18 @@ +{ + "pid": 1, + "uptime": "17h51m23.252891567s", + "uptime_sec": 64283.252891567, + "time": "2018-06-27 22:07:28.966768969 +0000 UTC m=+64283.314491879", + "unixtime": 1530137248, + "status_code_count": {}, + "total_status_code_count": { + "200": 17, + "404": 1 + }, + "count": 0, + "total_count": 18, + "total_response_time": "272.119µs", + "total_response_time_sec": 0.000272119, + "average_response_time": "15.117µs", + "average_response_time_sec": 1.5117e-05 +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/data.go b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/data.go new file mode 100644 index 00000000..5cc5bc50 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/data.go @@ -0,0 +1,59 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 health + +import ( + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstriface" +) + +var ( + schema = s.Schema{ + "uptime": s.Object{ + "sec": c.Int("uptime_sec"), + }, + "response": s.Object{ + "count": c.Int("total_count"), + "avg_time": s.Object{ + "us": c.Int("average_response_time_us"), + }, + }, + } +) + +func eventMapping(health map[string]interface{}) (common.MapStr, error) { + if averageResponseTimeSec, ok := health["average_response_time_sec"]; ok { + if averageResponseTimeSec, ok := averageResponseTimeSec.(float64); ok { + health["average_response_time_us"] = averageResponseTimeSec * 1000 * 1000 + } + } + + event, _ := schema.Apply(health) + + statusCodeCountMap, ok := health["total_status_code_count"].(map[string]interface{}) + if !ok { + return event, nil + } + + for code, count := range statusCodeCountMap { + event.Put("response.status_codes."+code, count) + } + + return event, nil +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/health.go b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/health.go new file mode 100644 index 00000000..a9c58c1d --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/health/health.go @@ -0,0 +1,83 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 health + +import ( + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/metricbeat/helper" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/mb/parse" +) + +// init registers the MetricSet with the central registry. +// The New method will be called after the setup of the module and before starting to fetch data +func init() { + mb.Registry.MustAddMetricSet("traefik", "health", New, + mb.WithHostParser(hostParser), + mb.DefaultMetricSet(), + ) +} + +var ( + hostParser = parse.URLHostParserBuilder{ + DefaultScheme: "http", + DefaultPath: "health", + }.Build() +) + +// MetricSet type defines all fields of the MetricSet +type MetricSet struct { + mb.BaseMetricSet + http *helper.HTTP +} + +// New creates a new instance of the MetricSet. +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Beta("The traefik health metricset is beta.") + http, err := helper.NewHTTP(base) + if err != nil { + return nil, err + } + + return &MetricSet{ + base, + http, + }, nil +} + +// Fetch methods gather data, convert it to the right format, and publish it. +// If there are errors, those are published instead. +func (m *MetricSet) Fetch(report mb.ReporterV2) { + data, err := m.http.FetchJSON() + if err != nil { + report.Error(errors.Wrap(err, "failed to sample health")) + return + } + + metricSetFields, _ := eventMapping(data) + event := mb.Event{ + MetricSetFields: metricSetFields, + RootFields: common.MapStr{}, + } + event.RootFields.Put("service.name", "traefik") + + report.Event(event) +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/mtest/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/traefik/mtest/testing.go new file mode 100644 index 00000000..c71b9acc --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/mtest/testing.go @@ -0,0 +1,49 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 mtest + +import "os" + +// GetEnvHost for Traefik +func GetEnvHost() string { + host := os.Getenv("TRAEFIK_HOST") + + if len(host) == 0 { + host = "127.0.0.1" + } + return host +} + +// GetEnvAPIPort for Traefik +func GetEnvAPIPort() string { + port := os.Getenv("TRAEFIK_API_PORT") + + if len(port) == 0 { + port = "8080" + } + return port +} + +// GetConfig for Traefik +func GetConfig(metricset string) map[string]interface{} { + return map[string]interface{}{ + "module": "traefik", + "metricsets": []string{metricset}, + "hosts": []string{GetEnvHost() + ":" + GetEnvAPIPort()}, + } +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/traefik/test_traefik.py b/vendor/github.com/elastic/beats/metricbeat/module/traefik/test_traefik.py new file mode 100644 index 00000000..de8de5f8 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/traefik/test_traefik.py @@ -0,0 +1,29 @@ +import os +import sys +import unittest +import time +from parameterized import parameterized + +sys.path.append(os.path.join(os.path.dirname(__file__), '../../tests/system')) + +import metricbeat + + +class Test(metricbeat.BaseTest): + + COMPOSE_SERVICES = ['traefik'] + FIELDS = ['traefik'] + + @parameterized.expand([ + "health" + ]) + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test") + def test_health(self, metricset): + """ + traefik metricset tests + """ + self.check_metricset("traefik", metricset, self.get_hosts(), self.FIELDS + ["service.name"]) + + def get_hosts(self): + return [os.getenv('TRAEFIK_HOST', 'localhost') + ':' + + os.getenv('TRAEFIK_API_PORT', '8080')] diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/_meta/docs.asciidoc b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/_meta/docs.asciidoc index af530322..89c89dc5 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/_meta/docs.asciidoc +++ b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/_meta/docs.asciidoc @@ -1,5 +1,3 @@ -== uwsgi module - This is the uwsgi module. By default collects the `stats` metricset, using http://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html[StatsServer]. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/doc.go index 25a8bdca..aa0ca8c4 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/doc.go @@ -1,2 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 uwsgi is a Metricbeat module that contains MetricSets. package uwsgi diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/fields.go new file mode 100644 index 00000000..7fba16e7 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package uwsgi + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "uwsgi", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzEl8tu6zYQhvd+ikFWLWAb7daLAgGSRRdtUzvnslNocWQTpkhlOLQiP/0BdfFVVowDGoc7yfT/f8PLzGgCG6xm4Eu3UiMAVqxxBg/188MIQKJLSRWsrJnBXyMAaOZCbqXXOAIg1CgczmCJLEYAmUIt3ayeOgEjcjzIh8FVgTNYkfVF+6bH41TmWMqxYO/2r/v0wjin6kavVzNqyGmjDzkyqdQhtyBHM8/JjunYstBTwnePjt3JlI5UW7M6+2EAKozXIAqdKKyFkRrlgD9+pFirxSW4InvqXZJiTJDI0p3irx2gx+F8E4S8D4eQn7sXSkZyfSGbonOg+ne8tLRBmkaz+1brfeIWL7rWrrgpSJHWB/DC42fNFywYwWat/hj+BJWBY6U17L3AYHk4fJbXSKVyCH8MkUbOAP/6fIkUSPcgDmmLEpYV8Fq51ncISaJmkfwiMBAZI3UPyoX8bIVECeUaTbhT6Rol/PP4PZk////lefG6GIoleoJ73gsCCeWuZNfWfS1IbBSpJLXecCSCJ7JFgfKwjmEBVY7W8xCLUysjdLRlyBUzSmhV4TLAXvvk3aPH6EeqoyiFqi8iW1jiYPnrqM57hAPPBqvS0nn2ui1Jta3Bb+kaRTGGQniH40A5hqV31RiU1Pj7YFpwEanm6JREw7BAhoXa4RRyzC1VkHoiNKwr8K65iqLLsNOQ4YQuReVgh2SBqYK3yaT554SwsMRvYGvXsAnHrVtvTFu3i7TzXxWxF/oyHqd2CMKF84AyHIM7hkPeGGVWSbh7kSt4Kw0X0hfFwxWiNFHTy7zR/PxG80esbomEcft8shuMWGxXCcUK9XGLJFYIYRmtcXh9vVNLGK9zaovb30/XvZopScTmUISL3lm/DHl3hWVaN6jRkzWfNulNF3ADTUiqKo1fO2pZyJTGhqW/WT9lIesZY23NvBaD3oar395mWdMURSL4r9O7AeIOn22HzciE0qHVCx6DCxH7i+0CIVi40Y8AAAD//yl8fTE=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/data.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/data.go index 6c3a0898..dc94f053 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status.go index 6d227be1..5bd9ef8b 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 status import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_integration_test.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_integration_test.go deleted file mode 100644 index 50c32c60..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_integration_test.go +++ /dev/null @@ -1,54 +0,0 @@ -// +build integration - -package status - -import ( - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "github.com/elastic/beats/metricbeat/module/uwsgi" - - "github.com/stretchr/testify/assert" -) - -func TestFetchTCP(t *testing.T) { - compose.EnsureUp(t, "uwsgi_tcp") - - f := mbtest.NewEventsFetcher(t, getConfig("tcp")) - events, err := f.Fetch() - assert.NoError(t, err) - - assert.True(t, len(events) > 0) - totals := findItems(events, "total") - assert.Equal(t, 1, len(totals)) -} - -func TestFetchHTTP(t *testing.T) { - compose.EnsureUp(t, "uwsgi_http") - - f := mbtest.NewEventsFetcher(t, getConfig("http")) - events, err := f.Fetch() - assert.NoError(t, err) - - assert.True(t, len(events) > 0) - totals := findItems(events, "total") - assert.Equal(t, 1, len(totals)) -} - -func getConfig(scheme string) map[string]interface{} { - conf := map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - } - - switch scheme { - case "tcp": - conf["hosts"] = []string{uwsgi.GetEnvTCPServer()} - case "http", "https": - conf["hosts"] = []string{uwsgi.GetEnvHTTPServer()} - default: - conf["hosts"] = []string{uwsgi.GetEnvTCPServer()} - } - return conf -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_linux_test.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_linux_test.go deleted file mode 100644 index e3742a72..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_linux_test.go +++ /dev/null @@ -1,49 +0,0 @@ -package status - -import ( - "io/ioutil" - "net" - "os" - "sync" - "testing" - - "github.com/stretchr/testify/assert" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestFetchDataUnixSock(t *testing.T) { - tmpfile, err := ioutil.TempFile("", "mb_uwsgi_status") - assert.NoError(t, err) - fname := tmpfile.Name() - os.Remove(fname) - - listener, err := net.Listen("unix", fname) - assert.NoError(t, err) - defer os.Remove(fname) - - var wg sync.WaitGroup - wg.Add(1) - go func() { - conn, err := listener.Accept() - assert.NoError(t, err) - - data := testData(t) - conn.Write(data) - conn.Close() - wg.Done() - }() - - config := map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{"unix://" + listener.Addr().String()}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - assert.NoError(t, err) - - assertTestData(t, events) - wg.Wait() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_test.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_test.go deleted file mode 100644 index af0270cd..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/status/status_test.go +++ /dev/null @@ -1,176 +0,0 @@ -package status - -import ( - "io/ioutil" - "net" - "net/http" - "net/http/httptest" - "path/filepath" - "sync" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func testData(t *testing.T) (data []byte) { - absPath, err := filepath.Abs(filepath.Join("..", "_meta", "testdata")) - if err != nil { - t.Fatalf("filepath failed: %s", err.Error()) - return - } - - data, err = ioutil.ReadFile(filepath.Join(absPath, "/data.json")) - if err != nil { - t.Fatalf("ReadFile failed: %s", err.Error()) - return - } - return -} - -func findItems(mp []common.MapStr, key string) []common.MapStr { - result := make([]common.MapStr, 0, 1) - for _, v := range mp { - if el, ok := v[key]; ok { - result = append(result, el.(common.MapStr)) - } - } - - return result -} - -func assertTestData(t *testing.T, mp []common.MapStr) { - totals := findItems(mp, "total") - assert.Equal(t, 1, len(totals)) - assert.Equal(t, 2042, totals[0]["requests"]) - assert.Equal(t, 0, totals[0]["exceptions"]) - assert.Equal(t, 34, totals[0]["write_errors"]) - assert.Equal(t, 38, totals[0]["read_errors"]) - - workers := findItems(mp, "core") - assert.Equal(t, 4, len(workers)) -} - -func TestFetchDataTCP(t *testing.T) { - - listener, err := net.Listen("tcp", "127.0.0.1:0") - assert.NoError(t, err) - - var wg sync.WaitGroup - wg.Add(1) - go func() { - conn, err := listener.Accept() - assert.NoError(t, err) - - data := testData(t) - conn.Write(data) - conn.Close() - wg.Done() - }() - - config := map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{"tcp://" + listener.Addr().String()}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - assert.NoError(t, err) - - assertTestData(t, events) - wg.Wait() -} - -func TestFetchDataHTTP(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - data := testData(t) - - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write(data) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - assert.NoError(t, err) - - assertTestData(t, events) -} - -func TestFetchDataUnmarshalledError(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte("fail json.Unmarshal")) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.Error(t, err) -} - -func TestFetchDataSourceDown(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - })) - server.Close() - - config := map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.Error(t, err) -} - -func TestConfigError(t *testing.T) { - config := map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{"unix://127.0.0.1:8080"}, - } - - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.Error(t, err) - - config = map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{"unknown_url_format"}, - } - - f = mbtest.NewEventsFetcher(t, config) - _, err = f.Fetch() - assert.Error(t, err) - - config = map[string]interface{}{ - "module": "uwsgi", - "metricsets": []string{"status"}, - "hosts": []string{"ftp://127.0.0.1:8080"}, - } - - f = mbtest.NewEventsFetcher(t, config) - _, err = f.Fetch() - assert.Error(t, err) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/testing.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/testing.go index de074f29..b8c46535 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/testing.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/testing.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 uwsgi import "os" diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/uwsgi.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/uwsgi.go index e7fd0f56..4455955c 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/uwsgi.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/uwsgi.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 uwsgi import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/uwsgi_test.go b/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/uwsgi_test.go deleted file mode 100644 index 60a20152..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/uwsgi/uwsgi_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package uwsgi - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestHostParser(t *testing.T) { - tests := []struct { - host, expected string - }{ - {"https://localhost", "https://localhost"}, - {"http://localhost:9191", "http://localhost:9191"}, - {"localhost", "tcp://localhost"}, - {"localhost:9191", "tcp://localhost:9191"}, - {"tcp://localhost:9191", "tcp://localhost:9191"}, - {"unix:///var/lib/uwsgi.sock", "unix:///var/lib/uwsgi.sock"}, - } - - m := mbtest.NewTestModule(t, map[string]interface{}{}) - - for _, test := range tests { - hi, err := HostParser(m, test.host) - if err != nil { - t.Error("failed on", test.host, err) - continue - } - assert.Equal(t, test.expected, hi.URI) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/datastore/datastore.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/datastore/datastore.go index 2069d366..b9772ecb 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/datastore/datastore.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/datastore/datastore.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 datastore import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/datastore/datastore_test.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/datastore/datastore_test.go deleted file mode 100644 index 3c2cb9de..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/datastore/datastore_test.go +++ /dev/null @@ -1,87 +0,0 @@ -package datastore - -import ( - "testing" - - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" - "github.com/vmware/govmomi/simulator" -) - -func TestFetchEventContents(t *testing.T) { - model := simulator.ESX() - if err := model.Create(); err != nil { - t.Fatal(err) - } - - ts := model.Service.NewServer() - defer ts.Close() - - f := mbtest.NewEventsFetcher(t, getConfig(ts)) - events, err := f.Fetch() - if err != nil { - t.Fatal("fetch error", err) - } - - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, "LocalDS_0", event["name"]) - assert.EqualValues(t, "local", event["fstype"]) - - // Values are based on the result 'df -k'. - fields := []string{"capacity.total.bytes", "capacity.free.bytes", - "capacity.used.bytes", "capacity.used.pct"} - for _, field := range fields { - value, err := event.GetValue(field) - if err != nil { - t.Error(err) - } else { - isNonNegativeInt64(t, field, value) - } - } -} - -func isNonNegativeInt64(t testing.TB, field string, v interface{}) { - i, ok := v.(int64) - if !ok { - t.Errorf("%v: got %T, but expected int64", field, v) - return - } - - if i < 0 { - t.Errorf("%v: value is negative (%v)", field, i) - return - } -} - -func TestData(t *testing.T) { - model := simulator.ESX() - if err := model.Create(); err != nil { - t.Fatal(err) - } - - ts := model.Service.NewServer() - defer ts.Close() - - f := mbtest.NewEventsFetcher(t, getConfig(ts)) - - if err := mbtest.WriteEvents(f, t); err != nil { - t.Fatal("write", err) - } -} - -func getConfig(ts *simulator.Server) map[string]interface{} { - urlSimulator := ts.URL.Scheme + "://" + ts.URL.Host + ts.URL.Path - - return map[string]interface{}{ - "module": "vsphere", - "metricsets": []string{"datastore"}, - "hosts": []string{urlSimulator}, - "username": "user", - "password": "pass", - "insecure": true, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/doc.go index 1d3e95e7..b21c7409 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/doc.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/doc.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 vsphere is a Metricbeat module that contains MetricSets. */ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/fields.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/fields.go new file mode 100644 index 00000000..ba4585e6 --- /dev/null +++ b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/fields.go @@ -0,0 +1,35 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package vsphere + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "vsphere", Asset); err != nil { + panic(err) + } +} + +// Asset returns asset data +func Asset() string { + return "eJzMls9unDAQxu/7FKPckwfg0EuqtJetKrXpdeWFYXEXM5Y9JKJPX9mGFX+8SRpMWx8ixQPf99sx88m3cMYugyerKzS4A2DJNWZw8/TN79zsAAq0uZGaJTUZfNgBAPRVUFS0tXvNYI3CYgZHZLEDKCXWhc38w7fQCIVjE7e405jByVCr+52Iz1RoLFYIFpbpIheXvCrblyIi818yrDnIGMb9nRQGljN2z2SKWe0FIrc+DlRL3cGwtE4/neWDrNF2llHBQnjwzIUWueTujolFfXfsGG2UoKbm9Gf2350ieEWgErjC6NG4VZJRgjNY2i84S4OYFPPBICanbC0WSSkfLRbbUOqcUzJqNDk2/FbK/vFLdREJFVlekwaz9/99EHwmy9czINdtOBZV/Up5LPdfH0E2sJ+pjm1DAqTzDfP/BmM/0ul8/UC/YqtQkdlqTPde3NnHpF+fzx5uq0ROhLdNEK+Fa5CfyZwP7r842LuG9kuQhans5Q4kDbeiViKvZLPq7nJV6T25NYu+lS14ObfSZuSP0AbYhz78d3E5jo9Ti5Y3CxEq4ZMzWD2untV9EVui+m8kTe6lb+sk/ZL11cdgethxGK5nzVvLpA4hLKKEdPyJi4tg2DysGOR7bwwR478a2L8DAAD//z6pzyI=" +} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/data.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/data.go index 5b8dc864..6b2b5c2a 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/data.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/data.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 host import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/data_test.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/data_test.go deleted file mode 100644 index 15e7a606..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/data_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package host - -import ( - "math" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -func TestEventMapping(t *testing.T) { - var HostSystemTest = mo.HostSystem{ - Summary: types.HostListSummary{ - Host: &types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, - Hardware: &types.HostHardwareSummary{ - MemorySize: 2251799812636672, - CpuMhz: 2294, - NumCpuCores: 2, - }, - Config: types.HostConfigSummary{ - Name: "localhost.localdomain", - }, - QuickStats: types.HostListSummaryQuickStats{ - OverallCpuUsage: 67, - OverallMemoryUsage: math.MaxInt32, - }, - }, - } - - event := eventMapping(HostSystemTest) - - cpuUsed, _ := event.GetValue("cpu.used.mhz") - assert.EqualValues(t, 67, cpuUsed) - - cpuTotal, _ := event.GetValue("cpu.total.mhz") - assert.EqualValues(t, 4588, cpuTotal) - - cpuFree, _ := event.GetValue("cpu.free.mhz") - assert.EqualValues(t, 4521, cpuFree) - - memoryUsed, _ := event.GetValue("memory.used.bytes") - assert.EqualValues(t, 2251799812636672, memoryUsed) - - memoryTotal, _ := event.GetValue("memory.total.bytes") - assert.EqualValues(t, 2251799812636672, memoryTotal) - - memoryFree, _ := event.GetValue("memory.free.bytes") - assert.EqualValues(t, 0, memoryFree) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/host.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/host.go index d76b80e0..b5db91d2 100644 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/host.go +++ b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/host.go @@ -1,3 +1,20 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you 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 host import ( diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/host_test.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/host_test.go deleted file mode 100644 index f5722bac..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/host/host_test.go +++ /dev/null @@ -1,86 +0,0 @@ -package host - -import ( - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" - "github.com/vmware/govmomi/simulator" -) - -func TestFetchEventContents(t *testing.T) { - model := simulator.ESX() - err := model.Create() - if err := model.Create(); err != nil { - t.Fatal(err) - } - - ts := model.Service.NewServer() - defer ts.Close() - - f := mbtest.NewEventsFetcher(t, getConfig(ts)) - - events, err := f.Fetch() - if err != nil { - t.Fatal("fetch error", err) - } - - event := events[0] - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, "localhost.localdomain", event["name"]) - - cpu := event["cpu"].(common.MapStr) - - cpuUsed := cpu["used"].(common.MapStr) - assert.EqualValues(t, 67, cpuUsed["mhz"]) - - cpuTotal := cpu["total"].(common.MapStr) - assert.EqualValues(t, 4588, cpuTotal["mhz"]) - - cpuFree := cpu["free"].(common.MapStr) - assert.EqualValues(t, 4521, cpuFree["mhz"]) - - memory := event["memory"].(common.MapStr) - - memoryUsed := memory["used"].(common.MapStr) - assert.EqualValues(t, uint64(1472200704), memoryUsed["bytes"]) - - memoryTotal := memory["total"].(common.MapStr) - assert.EqualValues(t, uint64(4294430720), memoryTotal["bytes"]) - - memoryFree := memory["free"].(common.MapStr) - assert.EqualValues(t, uint64(2822230016), memoryFree["bytes"]) -} - -func TestData(t *testing.T) { - model := simulator.ESX() - if err := model.Create(); err != nil { - t.Fatal(err) - } - - ts := model.Service.NewServer() - defer ts.Close() - - f := mbtest.NewEventsFetcher(t, getConfig(ts)) - - if err := mbtest.WriteEvents(f, t); err != nil { - t.Fatal("write", err) - } -} - -func getConfig(ts *simulator.Server) map[string]interface{} { - urlSimulator := ts.URL.Scheme + "://" + ts.URL.Host + ts.URL.Path - - return map[string]interface{}{ - "module": "vsphere", - "metricsets": []string{"host"}, - "hosts": []string{urlSimulator}, - "username": "user", - "password": "pass", - "insecure": true, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/CONTRIBUTING.md b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/CONTRIBUTING.md deleted file mode 100644 index 04fdf09f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/CONTRIBUTING.md +++ /dev/null @@ -1,10 +0,0 @@ -# How to contribute - -We definitely welcome patches and contribution to this project! - -### Legal requirements - -In order to protect both you and ourselves, you will need to sign the -[Contributor License Agreement](https://cla.developers.google.com/clas). - -You may have already signed it for other Google projects. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/CONTRIBUTORS b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/CONTRIBUTORS deleted file mode 100644 index b4bb97f6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/CONTRIBUTORS +++ /dev/null @@ -1,9 +0,0 @@ -Paul Borman -bmatsuo -shawnps -theory -jboverfelt -dsymonds -cd1 -wallclockbuilder -dansouza diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/LICENSE b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/LICENSE deleted file mode 100644 index 5dc68268..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009,2014 Google Inc. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * 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/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/README.md b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/README.md deleted file mode 100644 index 21205eae..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/README.md +++ /dev/null @@ -1,23 +0,0 @@ -**This package is currently in development and the API may not be stable.** - -The API will become stable with v1. - -# uuid ![build status](https://travis-ci.org/google/uuid.svg?branch=master) -The uuid package generates and inspects UUIDs based on -[RFC 4122](http://tools.ietf.org/html/rfc4122) -and DCE 1.1: Authentication and Security Services. - -This package is based on the github.com/pborman/uuid package (previously named -code.google.com/p/go-uuid). It differs from these earlier packages in that -a UUID is a 16 byte array rather than a byte slice. One loss due to this -change is the ability to represent an invalid UUID (vs a NIL UUID). - -###### Install -`go get github.com/google/uuid` - -###### Documentation -[![GoDoc](https://godoc.org/github.com/google/uuid?status.svg)](http://godoc.org/github.com/google/uuid) - -Full `go doc` style documentation for the package can be viewed online without -installing this package by using the GoDoc site here: -http://godoc.org/github.com/google/uuid diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/dce.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/dce.go deleted file mode 100644 index a6479dba..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/dce.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "encoding/binary" - "fmt" - "os" -) - -// A Domain represents a Version 2 domain -type Domain byte - -// Domain constants for DCE Security (Version 2) UUIDs. -const ( - Person = Domain(0) - Group = Domain(1) - Org = Domain(2) -) - -// NewDCESecurity returns a DCE Security (Version 2) UUID. -// -// The domain should be one of Person, Group or Org. -// On a POSIX system the id should be the users UID for the Person -// domain and the users GID for the Group. The meaning of id for -// the domain Org or on non-POSIX systems is site defined. -// -// For a given domain/id pair the same token may be returned for up to -// 7 minutes and 10 seconds. -func NewDCESecurity(domain Domain, id uint32) (UUID, error) { - uuid, err := NewUUID() - if err == nil { - uuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2 - uuid[9] = byte(domain) - binary.BigEndian.PutUint32(uuid[0:], id) - } - return uuid, err -} - -// NewDCEPerson returns a DCE Security (Version 2) UUID in the person -// domain with the id returned by os.Getuid. -// -// NewDCEPerson(Person, uint32(os.Getuid())) -func NewDCEPerson() (UUID, error) { - return NewDCESecurity(Person, uint32(os.Getuid())) -} - -// NewDCEGroup returns a DCE Security (Version 2) UUID in the group -// domain with the id returned by os.Getgid. -// -// NewDCEGroup(Group, uint32(os.Getgid())) -func NewDCEGroup() (UUID, error) { - return NewDCESecurity(Group, uint32(os.Getgid())) -} - -// Domain returns the domain for a Version 2 UUID. Domains are only defined -// for Version 2 UUIDs. -func (uuid UUID) Domain() Domain { - return Domain(uuid[9]) -} - -// ID returns the id for a Version 2 UUID. IDs are only defined for Version 2 -// UUIDs. -func (uuid UUID) ID() uint32 { - return binary.BigEndian.Uint32(uuid[0:4]) -} - -func (d Domain) String() string { - switch d { - case Person: - return "Person" - case Group: - return "Group" - case Org: - return "Org" - } - return fmt.Sprintf("Domain%d", int(d)) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/doc.go deleted file mode 100644 index 5b8a4b9a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/doc.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package uuid generates and inspects UUIDs. -// -// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security -// Services. -// -// A UUID is a 16 byte (128 bit) array. UUIDs may be used as keys to -// maps or compared directly. -package uuid diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/hash.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/hash.go deleted file mode 100644 index 4fc5a77d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/hash.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "crypto/md5" - "crypto/sha1" - "hash" -) - -// Well known namespace IDs and UUIDs -var ( - NameSpaceDNS = Must(Parse("6ba7b810-9dad-11d1-80b4-00c04fd430c8")) - NameSpaceURL = Must(Parse("6ba7b811-9dad-11d1-80b4-00c04fd430c8")) - NameSpaceOID = Must(Parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8")) - NameSpaceX500 = Must(Parse("6ba7b814-9dad-11d1-80b4-00c04fd430c8")) - Nil UUID // empty UUID, all zeros -) - -// NewHash returns a new UUID derived from the hash of space concatenated with -// data generated by h. The hash should be at least 16 byte in length. The -// first 16 bytes of the hash are used to form the UUID. The version of the -// UUID will be the lower 4 bits of version. NewHash is used to implement -// NewMD5 and NewSHA1. -func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID { - h.Reset() - h.Write(space[:]) - h.Write([]byte(data)) - s := h.Sum(nil) - var uuid UUID - copy(uuid[:], s) - uuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4) - uuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant - return uuid -} - -// NewMD5 returns a new MD5 (Version 3) UUID based on the -// supplied name space and data. It is the same as calling: -// -// NewHash(md5.New(), space, data, 3) -func NewMD5(space UUID, data []byte) UUID { - return NewHash(md5.New(), space, data, 3) -} - -// NewSHA1 returns a new SHA1 (Version 5) UUID based on the -// supplied name space and data. It is the same as calling: -// -// NewHash(sha1.New(), space, data, 5) -func NewSHA1(space UUID, data []byte) UUID { - return NewHash(sha1.New(), space, data, 5) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/marshal.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/marshal.go deleted file mode 100644 index 84bbc588..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/marshal.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import "fmt" - -// MarshalText implements encoding.TextMarshaler. -func (uuid UUID) MarshalText() ([]byte, error) { - var js [36]byte - encodeHex(js[:], uuid) - return js[:], nil -} - -// UnmarshalText implements encoding.TextUnmarshaler. -func (uuid *UUID) UnmarshalText(data []byte) error { - // See comment in ParseBytes why we do this. - // id, err := ParseBytes(data) - id, err := ParseBytes(data) - if err == nil { - *uuid = id - } - return err -} - -// MarshalBinary implements encoding.BinaryMarshaler. -func (uuid UUID) MarshalBinary() ([]byte, error) { - return uuid[:], nil -} - -// UnmarshalBinary implements encoding.BinaryUnmarshaler. -func (uuid *UUID) UnmarshalBinary(data []byte) error { - if len(data) != 16 { - return fmt.Errorf("invalid UUID (got %d bytes)", len(data)) - } - copy(uuid[:], data) - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/node.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/node.go deleted file mode 100644 index 5f0156a2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/node.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "net" - "sync" -) - -var ( - nodeMu sync.Mutex - interfaces []net.Interface // cached list of interfaces - ifname string // name of interface being used - nodeID [6]byte // hardware for version 1 UUIDs - zeroID [6]byte // nodeID with only 0's -) - -// NodeInterface returns the name of the interface from which the NodeID was -// derived. The interface "user" is returned if the NodeID was set by -// SetNodeID. -func NodeInterface() string { - defer nodeMu.Unlock() - nodeMu.Lock() - return ifname -} - -// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs. -// If name is "" then the first usable interface found will be used or a random -// Node ID will be generated. If a named interface cannot be found then false -// is returned. -// -// SetNodeInterface never fails when name is "". -func SetNodeInterface(name string) bool { - defer nodeMu.Unlock() - nodeMu.Lock() - return setNodeInterface(name) -} - -func setNodeInterface(name string) bool { - if interfaces == nil { - var err error - interfaces, err = net.Interfaces() - if err != nil && name != "" { - return false - } - } - - for _, ifs := range interfaces { - if len(ifs.HardwareAddr) >= 6 && (name == "" || name == ifs.Name) { - copy(nodeID[:], ifs.HardwareAddr) - ifname = ifs.Name - return true - } - } - - // We found no interfaces with a valid hardware address. If name - // does not specify a specific interface generate a random Node ID - // (section 4.1.6) - if name == "" { - randomBits(nodeID[:]) - return true - } - return false -} - -// NodeID returns a slice of a copy of the current Node ID, setting the Node ID -// if not already set. -func NodeID() []byte { - defer nodeMu.Unlock() - nodeMu.Lock() - if nodeID == zeroID { - setNodeInterface("") - } - nid := nodeID - return nid[:] -} - -// SetNodeID sets the Node ID to be used for Version 1 UUIDs. The first 6 bytes -// of id are used. If id is less than 6 bytes then false is returned and the -// Node ID is not set. -func SetNodeID(id []byte) bool { - if len(id) < 6 { - return false - } - defer nodeMu.Unlock() - nodeMu.Lock() - copy(nodeID[:], id) - ifname = "user" - return true -} - -// NodeID returns the 6 byte node id encoded in uuid. It returns nil if uuid is -// not valid. The NodeID is only well defined for version 1 and 2 UUIDs. -func (uuid UUID) NodeID() []byte { - if len(uuid) != 16 { - return nil - } - var node [6]byte - copy(node[:], uuid[10:]) - return node[:] -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/sql.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/sql.go deleted file mode 100644 index f326b54d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/sql.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "database/sql/driver" - "fmt" -) - -// Scan implements sql.Scanner so UUIDs can be read from databases transparently -// Currently, database types that map to string and []byte are supported. Please -// consult database-specific driver documentation for matching types. -func (uuid *UUID) Scan(src interface{}) error { - switch src := src.(type) { - case nil: - return nil - - case string: - // if an empty UUID comes from a table, we return a null UUID - if src == "" { - return nil - } - - // see Parse for required string format - u, err := Parse(src) - if err != nil { - return fmt.Errorf("Scan: %v", err) - } - - *uuid = u - - case []byte: - // if an empty UUID comes from a table, we return a null UUID - if len(src) == 0 { - return nil - } - - // assumes a simple slice of bytes if 16 bytes - // otherwise attempts to parse - if len(src) != 16 { - return uuid.Scan(string(src)) - } - copy((*uuid)[:], src) - - default: - return fmt.Errorf("Scan: unable to scan type %T into UUID", src) - } - - return nil -} - -// Value implements sql.Valuer so that UUIDs can be written to databases -// transparently. Currently, UUIDs map to strings. Please consult -// database-specific driver documentation for matching types. -func (uuid UUID) Value() (driver.Value, error) { - return uuid.String(), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/time.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/time.go deleted file mode 100644 index fd7fe0ac..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/time.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "encoding/binary" - "sync" - "time" -) - -// A Time represents a time as the number of 100's of nanoseconds since 15 Oct -// 1582. -type Time int64 - -const ( - lillian = 2299160 // Julian day of 15 Oct 1582 - unix = 2440587 // Julian day of 1 Jan 1970 - epoch = unix - lillian // Days between epochs - g1582 = epoch * 86400 // seconds between epochs - g1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs -) - -var ( - timeMu sync.Mutex - lasttime uint64 // last time we returned - clockSeq uint16 // clock sequence for this run - - timeNow = time.Now // for testing -) - -// UnixTime converts t the number of seconds and nanoseconds using the Unix -// epoch of 1 Jan 1970. -func (t Time) UnixTime() (sec, nsec int64) { - sec = int64(t - g1582ns100) - nsec = (sec % 10000000) * 100 - sec /= 10000000 - return sec, nsec -} - -// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and -// clock sequence as well as adjusting the clock sequence as needed. An error -// is returned if the current time cannot be determined. -func GetTime() (Time, uint16, error) { - defer timeMu.Unlock() - timeMu.Lock() - return getTime() -} - -func getTime() (Time, uint16, error) { - t := timeNow() - - // If we don't have a clock sequence already, set one. - if clockSeq == 0 { - setClockSequence(-1) - } - now := uint64(t.UnixNano()/100) + g1582ns100 - - // If time has gone backwards with this clock sequence then we - // increment the clock sequence - if now <= lasttime { - clockSeq = ((clockSeq + 1) & 0x3fff) | 0x8000 - } - lasttime = now - return Time(now), clockSeq, nil -} - -// ClockSequence returns the current clock sequence, generating one if not -// already set. The clock sequence is only used for Version 1 UUIDs. -// -// The uuid package does not use global static storage for the clock sequence or -// the last time a UUID was generated. Unless SetClockSequence is used, a new -// random clock sequence is generated the first time a clock sequence is -// requested by ClockSequence, GetTime, or NewUUID. (section 4.2.1.1) -func ClockSequence() int { - defer timeMu.Unlock() - timeMu.Lock() - return clockSequence() -} - -func clockSequence() int { - if clockSeq == 0 { - setClockSequence(-1) - } - return int(clockSeq & 0x3fff) -} - -// SetClockSeq sets the clock sequence to the lower 14 bits of seq. Setting to -// -1 causes a new sequence to be generated. -func SetClockSequence(seq int) { - defer timeMu.Unlock() - timeMu.Lock() - setClockSequence(seq) -} - -func setClockSequence(seq int) { - if seq == -1 { - var b [2]byte - randomBits(b[:]) // clock sequence - seq = int(b[0])<<8 | int(b[1]) - } - old_seq := clockSeq - clockSeq = uint16(seq&0x3fff) | 0x8000 // Set our variant - if old_seq != clockSeq { - lasttime = 0 - } -} - -// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in -// uuid. The time is only defined for version 1 and 2 UUIDs. -func (uuid UUID) Time() Time { - time := int64(binary.BigEndian.Uint32(uuid[0:4])) - time |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32 - time |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48 - return Time(time) -} - -// ClockSequence returns the clock sequence encoded in uuid. -// The clock sequence is only well defined for version 1 and 2 UUIDs. -func (uuid UUID) ClockSequence() int { - return int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/util.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/util.go deleted file mode 100644 index 5ea6c737..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/util.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "io" -) - -// randomBits completely fills slice b with random data. -func randomBits(b []byte) { - if _, err := io.ReadFull(rander, b); err != nil { - panic(err.Error()) // rand should never fail - } -} - -// xvalues returns the value of a byte as a hexadecimal digit or 255. -var xvalues = [256]byte{ - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255, - 255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, -} - -// xtob converts hex characters x1 and x2 into a byte. -func xtob(x1, x2 byte) (byte, bool) { - b1 := xvalues[x1] - b2 := xvalues[x2] - return (b1 << 4) | b2, b1 != 255 && b2 != 255 -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/uuid.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/uuid.go deleted file mode 100644 index 23161a86..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/uuid.go +++ /dev/null @@ -1,191 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "bytes" - "crypto/rand" - "encoding/hex" - "errors" - "fmt" - "io" - "strings" -) - -// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC -// 4122. -type UUID [16]byte - -// A Version represents a UUID's version. -type Version byte - -// A Variant represents a UUID's variant. -type Variant byte - -// Constants returned by Variant. -const ( - Invalid = Variant(iota) // Invalid UUID - RFC4122 // The variant specified in RFC4122 - Reserved // Reserved, NCS backward compatibility. - Microsoft // Reserved, Microsoft Corporation backward compatibility. - Future // Reserved for future definition. -) - -var rander = rand.Reader // random function - -// Parse decodes s into a UUID or returns an error. Both the UUID form of -// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and -// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded. -func Parse(s string) (UUID, error) { - var uuid UUID - if len(s) != 36 { - if len(s) != 36+9 { - return uuid, fmt.Errorf("invalid UUID length: %d", len(s)) - } - if strings.ToLower(s[:9]) != "urn:uuid:" { - return uuid, fmt.Errorf("invalid urn prefix: %q", s[:9]) - } - s = s[9:] - } - if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { - return uuid, errors.New("invalid UUID format") - } - for i, x := range [16]int{ - 0, 2, 4, 6, - 9, 11, - 14, 16, - 19, 21, - 24, 26, 28, 30, 32, 34} { - if v, ok := xtob(s[x], s[x+1]); !ok { - return uuid, errors.New("invalid UUID format") - } else { - uuid[i] = v - } - } - return uuid, nil -} - -// ParseBytes is like Parse, except it parses a byte slice instead of a string. -func ParseBytes(b []byte) (UUID, error) { - var uuid UUID - if len(b) != 36 { - if len(b) != 36+9 { - return uuid, fmt.Errorf("invalid UUID length: %d", len(b)) - } - if !bytes.Equal(bytes.ToLower(b[:9]), []byte("urn:uuid:")) { - return uuid, fmt.Errorf("invalid urn prefix: %q", b[:9]) - } - b = b[9:] - } - if b[8] != '-' || b[13] != '-' || b[18] != '-' || b[23] != '-' { - return uuid, errors.New("invalid UUID format") - } - for i, x := range [16]int{ - 0, 2, 4, 6, - 9, 11, - 14, 16, - 19, 21, - 24, 26, 28, 30, 32, 34} { - if v, ok := xtob(b[x], b[x+1]); !ok { - return uuid, errors.New("invalid UUID format") - } else { - uuid[i] = v - } - } - return uuid, nil -} - -// Must returns uuid if err is nil and panics otherwise. -func Must(uuid UUID, err error) UUID { - if err != nil { - panic(err) - } - return uuid -} - -// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -// , or "" if uuid is invalid. -func (uuid UUID) String() string { - var buf [36]byte - encodeHex(buf[:], uuid) - return string(buf[:]) -} - -// URN returns the RFC 2141 URN form of uuid, -// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, or "" if uuid is invalid. -func (uuid UUID) URN() string { - var buf [36 + 9]byte - copy(buf[:], "urn:uuid:") - encodeHex(buf[9:], uuid) - return string(buf[:]) -} - -func encodeHex(dst []byte, uuid UUID) { - hex.Encode(dst[:], uuid[:4]) - dst[8] = '-' - hex.Encode(dst[9:13], uuid[4:6]) - dst[13] = '-' - hex.Encode(dst[14:18], uuid[6:8]) - dst[18] = '-' - hex.Encode(dst[19:23], uuid[8:10]) - dst[23] = '-' - hex.Encode(dst[24:], uuid[10:]) -} - -// Variant returns the variant encoded in uuid. -func (uuid UUID) Variant() Variant { - switch { - case (uuid[8] & 0xc0) == 0x80: - return RFC4122 - case (uuid[8] & 0xe0) == 0xc0: - return Microsoft - case (uuid[8] & 0xe0) == 0xe0: - return Future - default: - return Reserved - } -} - -// Version returns the version of uuid. -func (uuid UUID) Version() Version { - return Version(uuid[6] >> 4) -} - -func (v Version) String() string { - if v > 15 { - return fmt.Sprintf("BAD_VERSION_%d", v) - } - return fmt.Sprintf("VERSION_%d", v) -} - -func (v Variant) String() string { - switch v { - case RFC4122: - return "RFC4122" - case Reserved: - return "Reserved" - case Microsoft: - return "Microsoft" - case Future: - return "Future" - case Invalid: - return "Invalid" - } - return fmt.Sprintf("BadVariant%d", int(v)) -} - -// SetRand sets the random number generator to r, which implements io.Reader. -// If r.Read returns an error when the package requests random data then -// a panic will be issued. -// -// Calling SetRand with nil sets the random number generator to the default -// generator. -func SetRand(r io.Reader) { - if r == nil { - rander = rand.Reader - return - } - rander = r -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/version1.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/version1.go deleted file mode 100644 index 199a1ac6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/version1.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import ( - "encoding/binary" -) - -// NewUUID returns a Version 1 UUID based on the current NodeID and clock -// sequence, and the current time. If the NodeID has not been set by SetNodeID -// or SetNodeInterface then it will be set automatically. If the NodeID cannot -// be set NewUUID returns nil. If clock sequence has not been set by -// SetClockSequence then it will be set automatically. If GetTime fails to -// return the current NewUUID returns nil and an error. -// -// In most cases, New should be used. -func NewUUID() (UUID, error) { - nodeMu.Lock() - if nodeID == zeroID { - setNodeInterface("") - } - nodeMu.Unlock() - - var uuid UUID - now, seq, err := GetTime() - if err != nil { - return uuid, err - } - - timeLow := uint32(now & 0xffffffff) - timeMid := uint16((now >> 32) & 0xffff) - timeHi := uint16((now >> 48) & 0x0fff) - timeHi |= 0x1000 // Version 1 - - binary.BigEndian.PutUint32(uuid[0:], timeLow) - binary.BigEndian.PutUint16(uuid[4:], timeMid) - binary.BigEndian.PutUint16(uuid[6:], timeHi) - binary.BigEndian.PutUint16(uuid[8:], seq) - copy(uuid[10:], nodeID[:]) - - return uuid, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/version4.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/version4.go deleted file mode 100644 index 74c4e6c9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/google/uuid/version4.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2016 Google Inc. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package uuid - -import "io" - -// New creates a new random UUID or panics. New is equivalent to -// the expression -// -// uuid.Must(uuid.NewRandom()) -func New() UUID { - return Must(NewRandom()) -} - -// NewRandom returns a Random (Version 4) UUID or panics. -// -// The strength of the UUIDs is based on the strength of the crypto/rand -// package. -// -// A note about uniqueness derived from the UUID Wikipedia entry: -// -// Randomly generated UUIDs have 122 random bits. One's annual risk of being -// hit by a meteorite is estimated to be one chance in 17 billion, that -// means the probability is about 0.00000000006 (6 × 10−11), -// equivalent to the odds of creating a few tens of trillions of UUIDs in a -// year and having one duplicate. -func NewRandom() (UUID, error) { - var uuid UUID - _, err := io.ReadFull(rander, uuid[:]) - if err != nil { - return Nil, err - } - uuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4 - uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10 - return uuid, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CHANGELOG.md b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CHANGELOG.md deleted file mode 100644 index 2dc436bf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CHANGELOG.md +++ /dev/null @@ -1,263 +0,0 @@ -# changelog - -### 0.15.0 (2017-06-19) - -* WaitOptions.MaxWaitSeconds is now optional - -* Support removal of ExtraConfig entries - -* GuestPosixFileAttributes OwnerId and GroupId fields are now pointers, - rather than omitempty ints to allow chown with root uid:gid - -* Updated examples/ using view package - -* Add DatastoreFile.TailFunc method - -* Export VirtualMachine.FindSnapshot method - -* Add AuthorizationManager {Enable,Disable}Methods - -* Add PBM client - -### 0.14.0 (2017-04-08) - -* Add view.ContainerView type and methods - -* Add Collector.RetrieveWithFilter method - -* Add property.Filter type - -* Implement EthernetCardBackingInfo for OpaqueNetwork - -* Finder: support changing object root in find mode - -* Add VirtualDiskManager.QueryVirtualDiskInfo - -* Add performance.Manager APIs - -### 0.13.0 (2017-03-02) - -* Add DatastoreFileManager API wrapper - -* Add HostVsanInternalSystem API wrappers - -* Add Container support to view package - -* Finder supports Folder recursion without specifying a path - -* Add VirtualMachine.QueryConfigTarget method - -* Add device option to VirtualMachine.WaitForNetIP - -* Remove _Task suffix from vapp methods - -### 0.12.1 (2016-12-19) - -* Add DiagnosticLog helper - -* Add DatastorePath helper - -### 0.12.0 (2016-12-01) - -* Disable use of service ticket for datastore HTTP access by default - -* Attach context to HTTP requests for cancellations - -* Update to vim25/6.5 API - -### 0.11.4 (2016-11-15) - -* Add object.AuthorizationManager methods: RetrieveRolePermissions, RetrieveAllPermissions, AddRole, RemoveRole, UpdateRole - -### 0.11.3 (2016-11-08) - -* Allow DatastoreFile.Follow reader to drain current body after stopping - -### 0.11.2 (2016-11-01) - -* Avoid possible NPE in VirtualMachine.Device method - -* Add support for OpaqueNetwork type to Finder - -* Add HostConfigManager.AccountManager support for ESX 5.5 - -### 0.11.1 (2016-10-27) - -* Add Finder.ResourcePoolListAll method - -### 0.11.0 (2016-10-25) - -* Add object.DistributedVirtualPortgroup.Reconfigure method - -### 0.10.0 (2016-10-20) - -* Add option to set soap.Client.UserAgent - -* Add service ticket thumbprint validation - -* Update use of http.DefaultTransport fields to 1.7 - -* Set default locale to en_US (override with GOVMOMI_LOCALE env var) - -* Add object.HostCertificateInfo (types.HostCertificateManagerCertificateInfo helpers) - -* Add object.HostCertificateManager type and HostConfigManager.CertificateManager method - -* Add soap.Client SetRootCAs and SetDialTLS methods - -### 0.9.0 (2016-09-09) - -* Add object.DatastoreFile helpers for streaming and tailing datastore files - -* Add object VirtualMachine.Unregister method - -* Add object.ListView methods: Add, Remove, Reset - -* Update to Go 1.7 - using stdlib's context package - -### 0.8.0 (2016-06-30) - -* Add session.Manager.AcquireLocalTicket - -* Include StoragePod in Finder.FolderList - -* Add Finder methods for finding by ManagedObjectReference: Element, ObjectReference - -* Add mo.ManagedObjectReference methods: Reference, String, FromString - -* Add support using SessionManagerGenericServiceTicket.HostName for Datastore HTTP access - -### 0.7.1 (2016-06-03) - -* Fix object.ObjectName method - -### 0.7.0 (2016-06-02) - -* Move InventoryPath field to object.Common - -* Add HostDatastoreSystem.CreateLocalDatastore method - -* Add DatastoreNamespaceManager methods: CreateDirectory, DeleteDirectory - -* Add HostServiceSystem - -* Add HostStorageSystem methods: MarkAsSdd, MarkAsNonSdd, MarkAsLocal, MarkAsNonLocal - -* Add HostStorageSystem.RescanAllHba method - -### 0.6.2 (2016-05-11) - -* Get complete file details in Datastore.Stat - -* SOAP decoding fixes - -* Add VirtualMachine.RemoveAllSnapshot - -### 0.6.1 (2016-04-30) - -* Fix mo.Entity interface - -### 0.6.0 (2016-04-29) - -* Add Common.Rename method - -* Add mo.Entity interface - -* Add OptionManager - -* Add Finder.FolderList method - -* Add VirtualMachine.WaitForNetIP method - -* Add VirtualMachine.RevertToSnapshot method - -* Add Datastore.Download method - -### 0.5.0 (2016-03-30) - -Generated fields using xsd type 'int' change to Go type 'int32' - -VirtualDevice.UnitNumber field changed to pointer type - -### 0.4.0 (2016-02-26) - -* Add method to convert virtual device list to array with virtual device - changes that can be used in the VirtualMachineConfigSpec. - -* Make datastore cluster traversable in lister - -* Add finder.DatastoreCluster methods (also known as storage pods) - -* Add Drone CI check - -* Add object.Datastore Type and AttachedClusterHosts methods - -* Add finder.*OrDefault methods - -### 0.3.0 (2016-01-16) - -* Add object.VirtualNicManager wrapper - -* Add object.HostVsanSystem wrapper - -* Add object.HostSystem methods: EnterMaintenanceMode, ExitMaintenanceMode, Disconnect, Reconnect - -* Add finder.Folder method - -* Add object.Common.Destroy method - -* Add object.ComputeResource.Reconfigure method - -* Add license.AssignmentManager wrapper - -* Add object.HostFirewallSystem wrapper - -* Add object.DiagnosticManager wrapper - -* Add LoginExtensionByCertificate support - -* Add object.ExtensionManager - -... - -### 0.2.0 (2015-09-15) - -* Update to vim25/6.0 API - -* Stop returning children from `ManagedObjectList` - - Change the `ManagedObjectList` function in the `find` package to only - return the managed objects specified by the path argument and not their - children. The original behavior was used by govc's `ls` command and is - now available in the newly added function `ManagedObjectListChildren`. - -* Add retry functionality to vim25 package - -* Change finder functions to no longer take varargs - - The `find` package had functions to return a list of objects, given a - variable number of patterns. This makes it impossible to distinguish which - patterns produced results and which ones didn't. - - In particular for govc, where multiple arguments can be passed from the - command line, it is useful to let the user know which ones produce results - and which ones don't. - - To evaluate multiple patterns, the user should call the find functions - multiple times (either serially or in parallel). - -* Make optional boolean fields pointers (`vim25/types`). - - False is the zero value of a boolean field, which means they are not serialized - if the field is marked "omitempty". If the field is a pointer instead, the zero - value will be the nil pointer, and both true and false values are serialized. - -### 0.1.0 (2015-03-17) - -Prior to this version the API of this library was in flux. - -Notable changes w.r.t. the state of this library before March 2015 are: - -* All functions that may execute a request take a `context.Context` parameter. -* The `vim25` package contains a minimal client implementation. -* The property collector and its convenience functions live in the `property` package. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTING.md b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTING.md deleted file mode 100644 index f6645cbf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTING.md +++ /dev/null @@ -1,101 +0,0 @@ -# Contributing to govmomi - -## Getting started - -First, fork the repository on GitHub to your personal account. - -Note that _GOPATH_ can be any directory, the example below uses _$HOME/govmomi_. -Change _$USER_ below to your github username if they are not the same. - -``` shell -export GOPATH=$HOME/govmomi -go get github.com/vmware/govmomi -cd $GOPATH/src/github.com/vmware/govmomi -git config push.default nothing # anything to avoid pushing to vmware/govmomi by default -git remote rename origin vmware -git remote add $USER git@github.com:$USER/govmomi.git -git fetch $USER -``` - -## Installing from source - -Compile the govmomi libraries and install govc using: - -``` shell -go install -v github.com/vmware/govmomi/govc -``` - -Note that **govc/build.sh** is only used for building release binaries. - -## Contribution flow - -This is a rough outline of what a contributor's workflow looks like: - -- Create a topic branch from where you want to base your work. -- Make commits of logical units. -- Make sure your commit messages are in the proper format (see below). -- Update CHANGELOG.md and/or govc/CHANGELOG.md when appropriate. -- Push your changes to a topic branch in your fork of the repository. -- Submit a pull request to vmware/govmomi. - -Example: - -``` shell -git checkout -b my-new-feature vmware/master -git commit -a -git push $USER my-new-feature -``` - -### Stay in sync with upstream - -When your branch gets out of sync with the vmware/master branch, use the following to update: - -``` shell -git checkout my-new-feature -git fetch -a -git rebase vmware/master -git push --force-with-lease $USER my-new-feature -``` - -### Updating pull requests - -If your PR fails to pass CI or needs changes based on code review, you'll most likely want to squash these changes into -existing commits. - -If your pull request contains a single commit or your changes are related to the most recent commit, you can simply -amend the commit. - -``` shell -git add . -git commit --amend -git push --force-with-lease $USER my-new-feature -``` - -If you need to squash changes into an earlier commit, you can use: - -``` shell -git add . -git commit --fixup -git rebase -i --autosquash vmware/master -git push --force-with-lease $USER my-new-feature -``` - -Be sure to add a comment to the PR indicating your new changes are ready to review, as github does not generate a -notification when you git push. - -### Code style - -The coding style suggested by the Golang community is used in govmomi. See the -[style doc](https://github.com/golang/go/wiki/CodeReviewComments) for details. - -Try to limit column width to 120 characters for both code and markdown documents such as this one. - -### Format of the Commit Message - -We follow the conventions on [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/). - -Be sure to include any related GitHub issue references in the commit message. - -## Reporting Bugs and Creating Issues - -When opening a new issue, try to roughly follow the commit message format conventions above. diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTORS b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTORS deleted file mode 100644 index 22630d95..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/CONTRIBUTORS +++ /dev/null @@ -1,61 +0,0 @@ -# People who can (and typically have) contributed to this repository. -# -# This script is generated by contributors.sh -# - -abrarshivani -Alvaro Miranda -amandahla -Amit Bathla -Andrew Chin -aniketGslab -Arran Walker -Aryeh Weinreb -Austin Parker -Balu Dontu -bastienbc -Bob Killen -Brad Fitzpatrick -Bruce Downs -Cédric Blomart -Christian Höltje -Clint Greenwood -Danny Lockard -Dave Tucker -Davide Agnello -David Stark -Doug MacEachern -Eloy Coto -Eric Gray -Eric Yutao -Fabio Rapposelli -Faiyaz Ahmed -forkbomber -Gavin Gray -Gavrie Philipson -George Hicken -Gerrit Renker -gthombare -Hasan Mahmood -Henrik Hodne -Isaac Rodman -Ivan Porto Carrero -Jason Kincl -Jeremy Canady -Louie Jiang -Marc Carmier -Mevan Samaratunga -Nicolas Lamirault -Pieter Noordhuis -runner.mei -S.Çağlar Onur -Sergey Ignatov -Steve Purcell -Takaaki Furukawa -Ted Zlatanov -Thibaut Ackermann -Vadim Egorov -Yang Yang -Yuya Kusakabe -Zach Tucker -Zee Yang diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/Makefile b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/Makefile deleted file mode 100644 index 9886b45c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -.PHONY: test - -all: check test - -check: goimports govet - -goimports: - @echo checking go imports... - @go get golang.org/x/tools/cmd/goimports - @! goimports -d . 2>&1 | egrep -v '^$$' - -govet: - @echo checking go vet... - @go tool vet -structtags=false -methods=false $$(find . -mindepth 1 -maxdepth 1 -type d -not -name vendor) - -install: - go install -v github.com/vmware/govmomi/govc - go install -v github.com/vmware/govmomi/vcsim - -go-test: - go test -v $(TEST_OPTS) ./... - -govc-test: install - (cd govc/test && ./vendor/github.com/sstephenson/bats/libexec/bats -t .) - -test: go-test govc-test - -doc: install - ./govc/usage.sh > ./govc/USAGE.md diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/README.md b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/README.md deleted file mode 100644 index b5978ddb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/README.md +++ /dev/null @@ -1,78 +0,0 @@ -[![Build Status](https://travis-ci.org/vmware/govmomi.png?branch=master)](https://travis-ci.org/vmware/govmomi) -[![Go Report Card](https://goreportcard.com/badge/github.com/vmware/govmomi)](https://goreportcard.com/report/github.com/vmware/govmomi) - -# govmomi - -A Go library for interacting with VMware vSphere APIs (ESXi and/or vCenter). - -For `govc`, a CLI built on top of govmomi, check out the [govc](./govc) directory and [USAGE](./govc/USAGE.md) document. - -## Compatibility - -This library is built for and tested against ESXi and vCenter 5.5, 6.0 and 6.5. - -If you're able to use it against older versions of ESXi and/or vCenter, please -leave a note and we'll include it in this compatibility list. - -## Documentation - -The APIs exposed by this library very closely follow the API described in the [VMware vSphere API Reference Documentation][apiref]. -Refer to this document to become familiar with the upstream API. - -The code in the `govmomi` package is a wrapper for the code that is generated from the vSphere API description. -It primarily provides convenience functions for working with the vSphere API. -See [godoc.org][godoc] for documentation. - -[apiref]:http://pubs.vmware.com/vsphere-6-5/index.jsp#com.vmware.wssdk.apiref.doc/right-pane.html -[godoc]:http://godoc.org/github.com/vmware/govmomi -[drone]:https://drone.io -[dronesrc]:https://github.com/drone/drone -[dronecli]:http://readme.drone.io/devs/cli/ - -#### Building with CI -Merges to this repository will trigger builds in both Travis and [Drone][drone]. - -To build locally with Drone: -- Ensure that you have Docker 1.6 or higher installed. -- Install the [Drone command line tools][dronecli]. -- Run `drone exec` from within the root directory of the govmomi repository. - -## Discussion - -Contributors and users are encouraged to collaborate using GitHub issues and/or -[Slack](https://vmwarecode.slack.com/messages/govmomi). -Access to Slack requires a [VMware {code} membership](https://code.vmware.com/join/). - -## Status - -Changes to the API are subject to [semantic versioning](http://semver.org). - -Refer to the [CHANGELOG](CHANGELOG.md) for version to version changes. - -## Projects using govmomi - -* [Docker Machine](https://github.com/docker/machine/tree/master/drivers/vmwarevsphere) - -* [Kubernetes](https://github.com/kubernetes/kubernetes/tree/master/pkg/cloudprovider/providers/vsphere) - -* [Terraform](https://github.com/hashicorp/terraform/tree/master/builtin/providers/vsphere) - -* [VMware VIC Engine](https://github.com/vmware/vic) - -* [Travis CI](https://github.com/travis-ci/jupiter-brain) - -* [collectd-vsphere](https://github.com/travis-ci/collectd-vsphere) - -* [Gru](https://github.com/dnaeon/gru) - -* [Libretto](https://github.com/apcera/libretto/tree/master/virtualmachine/vsphere) - -## Related projects - -* [rbvmomi](https://github.com/vmware/rbvmomi) - -* [pyvmomi](https://github.com/vmware/pyvmomi) - -## License - -govmomi is available under the [Apache 2 license](LICENSE). diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/client.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/client.go deleted file mode 100644 index e3dc7976..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/client.go +++ /dev/null @@ -1,167 +0,0 @@ -/* -Copyright (c) 2014-2016 VMware, 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. -*/ - -/* -This package is the root package of the govmomi library. - -The library is structured as follows: - -Package vim25 - -The minimal usable functionality is available through the vim25 package. -It contains subpackages that contain generated types, managed objects, and all -available methods. The vim25 package is entirely independent of the other -packages in the govmomi tree -- it has no dependencies on its peers. - -The vim25 package itself contains a client structure that is -passed around throughout the entire library. It abstracts a session and its -immutable state. See the vim25 package for more information. - -Package session - -The session package contains an abstraction for the session manager that allows -a user to login and logout. It also provides access to the current session -(i.e. to determine if the user is in fact logged in) - -Package object - -The object package contains wrappers for a selection of managed objects. The -constructors of these objects all take a *vim25.Client, which they pass along -to derived objects, if applicable. - -Package govc - -The govc package contains the govc CLI. The code in this tree is not intended -to be used as a library. Any functionality that govc contains that _could_ be -used as a library function but isn't, _should_ live in a root level package. - -Other packages - -Other packages, such as "event", "guest", or "license", provide wrappers for -the respective subsystems. They are typically not needed in normal workflows so -are kept outside the object package. -*/ -package govmomi - -import ( - "context" - "crypto/tls" - "net/url" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/session" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type Client struct { - *vim25.Client - - SessionManager *session.Manager -} - -// NewClient creates a new client from a URL. The client authenticates with the -// server with username/password before returning if the URL contains user information. -func NewClient(ctx context.Context, u *url.URL, insecure bool) (*Client, error) { - soapClient := soap.NewClient(u, insecure) - vimClient, err := vim25.NewClient(ctx, soapClient) - if err != nil { - return nil, err - } - - c := &Client{ - Client: vimClient, - SessionManager: session.NewManager(vimClient), - } - - // Only login if the URL contains user information. - if u.User != nil { - err = c.Login(ctx, u.User) - if err != nil { - return nil, err - } - } - - return c, nil -} - -// NewClientWithCertificate creates a new client from a URL. The client authenticates with the -// server with the certificate before returning if the URL contains user information. -func NewClientWithCertificate(ctx context.Context, u *url.URL, insecure bool, cert tls.Certificate) (*Client, error) { - soapClient := soap.NewClient(u, insecure) - soapClient.SetCertificate(cert) - vimClient, err := vim25.NewClient(ctx, soapClient) - if err != nil { - return nil, err - } - - c := &Client{ - Client: vimClient, - SessionManager: session.NewManager(vimClient), - } - - if u.User != nil { - err = c.LoginExtensionByCertificate(ctx, u.User.Username(), "") - if err != nil { - return nil, err - } - } - - return c, nil -} - -// Login dispatches to the SessionManager. -func (c *Client) Login(ctx context.Context, u *url.Userinfo) error { - return c.SessionManager.Login(ctx, u) -} - -// Login dispatches to the SessionManager. -func (c *Client) LoginExtensionByCertificate(ctx context.Context, key string, locale string) error { - return c.SessionManager.LoginExtensionByCertificate(ctx, key, locale) -} - -// Logout dispatches to the SessionManager. -func (c *Client) Logout(ctx context.Context) error { - // Close any idle connections after logging out. - defer c.Client.CloseIdleConnections() - return c.SessionManager.Logout(ctx) -} - -// PropertyCollector returns the session's default property collector. -func (c *Client) PropertyCollector() *property.Collector { - return property.DefaultCollector(c.Client) -} - -// RetrieveOne dispatches to the Retrieve function on the default property collector. -func (c *Client) RetrieveOne(ctx context.Context, obj types.ManagedObjectReference, p []string, dst interface{}) error { - return c.PropertyCollector().RetrieveOne(ctx, obj, p, dst) -} - -// Retrieve dispatches to the Retrieve function on the default property collector. -func (c *Client) Retrieve(ctx context.Context, objs []types.ManagedObjectReference, p []string, dst interface{}) error { - return c.PropertyCollector().Retrieve(ctx, objs, p, dst) -} - -// Wait dispatches to property.Wait. -func (c *Client) Wait(ctx context.Context, obj types.ManagedObjectReference, ps []string, f func([]types.PropertyChange) bool) error { - return property.Wait(ctx, c.PropertyCollector(), obj, ps, f) -} - -// IsVC returns true if we are connected to a vCenter -func (c *Client) IsVC() bool { - return c.Client.IsVC() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/doc.go deleted file mode 100644 index 0c8acee0..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/doc.go +++ /dev/null @@ -1,37 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 find implements inventory listing and searching. - -The Finder is an alternative to the object.SearchIndex FindByInventoryPath() and FindChild() methods. -SearchIndex.FindByInventoryPath requires an absolute path, whereas the Finder also supports relative paths -and patterns via path.Match. -SearchIndex.FindChild requires a parent to find the child, whereas the Finder also supports an ancestor via -recursive object traversal. - -The various Finder methods accept a "path" argument, which can absolute or relative to the Folder for the object type. -The Finder supports two modes, "list" and "find". The "list" mode behaves like the "ls" command, only searching within -the immediate path. The "find" mode behaves like the "find" command, with the search starting at the immediate path but -also recursing into sub Folders relative to the Datacenter. The default mode is "list" if the given path contains a "/", -otherwise "find" mode is used. - -The exception is to use a "..." wildcard with a path to find all objects recursively underneath any root object. -For example: VirtualMachineList("/DC1/...") - -See also: https://github.com/vmware/govmomi/blob/master/govc/README.md#usage -*/ -package find diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/error.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/error.go deleted file mode 100644 index 684526da..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/error.go +++ /dev/null @@ -1,64 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 find - -import "fmt" - -type NotFoundError struct { - kind string - path string -} - -func (e *NotFoundError) Error() string { - return fmt.Sprintf("%s '%s' not found", e.kind, e.path) -} - -type MultipleFoundError struct { - kind string - path string -} - -func (e *MultipleFoundError) Error() string { - return fmt.Sprintf("path '%s' resolves to multiple %ss", e.path, e.kind) -} - -type DefaultNotFoundError struct { - kind string -} - -func (e *DefaultNotFoundError) Error() string { - return fmt.Sprintf("no default %s found", e.kind) -} - -type DefaultMultipleFoundError struct { - kind string -} - -func (e DefaultMultipleFoundError) Error() string { - return fmt.Sprintf("default %s resolves to multiple instances, please specify", e.kind) -} - -func toDefaultError(err error) error { - switch e := err.(type) { - case *NotFoundError: - return &DefaultNotFoundError{e.kind} - case *MultipleFoundError: - return &DefaultMultipleFoundError{e.kind} - default: - return err - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/finder.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/finder.go deleted file mode 100644 index 04d0e891..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/finder.go +++ /dev/null @@ -1,1021 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 find - -import ( - "context" - "errors" - "path" - "strings" - - "github.com/vmware/govmomi/list" - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type Finder struct { - client *vim25.Client - r recurser - dc *object.Datacenter - si *object.SearchIndex - folders *object.DatacenterFolders -} - -func NewFinder(client *vim25.Client, all bool) *Finder { - f := &Finder{ - client: client, - si: object.NewSearchIndex(client), - r: recurser{ - Collector: property.DefaultCollector(client), - All: all, - }, - } - - return f -} - -func (f *Finder) SetDatacenter(dc *object.Datacenter) *Finder { - f.dc = dc - f.folders = nil - return f -} - -// findRoot makes it possible to use "find" mode with a different root path. -// Example: ResourcePoolList("/dc1/host/cluster1/...") -func (f *Finder) findRoot(ctx context.Context, root *list.Element, parts []string) bool { - if len(parts) == 0 { - return false - } - - ix := len(parts) - 1 - - if parts[ix] != "..." { - return false - } - - if ix == 0 { - return true // We already have the Object for root.Path - } - - // Lookup the Object for the new root.Path - rootPath := path.Join(root.Path, path.Join(parts[:ix]...)) - - ref, err := f.si.FindByInventoryPath(ctx, rootPath) - if err != nil || ref == nil { - // If we get an error or fail to match, fall through to find() with the original root and path - return false - } - - root.Path = rootPath - root.Object = ref - - return true -} - -func (f *Finder) find(ctx context.Context, arg string, s *spec) ([]list.Element, error) { - isPath := strings.Contains(arg, "/") - - root := list.Element{ - Path: "/", - Object: object.NewRootFolder(f.client), - } - - parts := list.ToParts(arg) - - if len(parts) > 0 { - switch parts[0] { - case "..": // Not supported; many edge case, little value - return nil, errors.New("cannot traverse up a tree") - case ".": // Relative to whatever - pivot, err := s.Relative(ctx) - if err != nil { - return nil, err - } - - mes, err := mo.Ancestors(ctx, f.client, f.client.ServiceContent.PropertyCollector, pivot.Reference()) - if err != nil { - return nil, err - } - - for _, me := range mes { - // Skip root entity in building inventory path. - if me.Parent == nil { - continue - } - root.Path = path.Join(root.Path, me.Name) - } - - root.Object = pivot - parts = parts[1:] - } - } - - if s.listMode(isPath) { - if f.findRoot(ctx, &root, parts) { - parts = []string{"*"} - } else { - return f.r.List(ctx, s, root, parts) - } - } - - s.Parents = append(s.Parents, s.Nested...) - - return f.r.Find(ctx, s, root, parts) -} - -func (f *Finder) datacenter() (*object.Datacenter, error) { - if f.dc == nil { - return nil, errors.New("please specify a datacenter") - } - - return f.dc, nil -} - -// datacenterPath returns the absolute path to the Datacenter containing the given ref -func (f *Finder) datacenterPath(ctx context.Context, ref types.ManagedObjectReference) (string, error) { - mes, err := mo.Ancestors(ctx, f.client, f.client.ServiceContent.PropertyCollector, ref) - if err != nil { - return "", err - } - - // Chop leaves under the Datacenter - for i := len(mes) - 1; i > 0; i-- { - if mes[i].Self.Type == "Datacenter" { - break - } - mes = mes[:i] - } - - var p string - - for _, me := range mes { - // Skip root entity in building inventory path. - if me.Parent == nil { - continue - } - - p = p + "/" + me.Name - } - - return p, nil -} - -func (f *Finder) dcFolders(ctx context.Context) (*object.DatacenterFolders, error) { - if f.folders != nil { - return f.folders, nil - } - - dc, err := f.datacenter() - if err != nil { - return nil, err - } - - folders, err := dc.Folders(ctx) - if err != nil { - return nil, err - } - - f.folders = folders - - return f.folders, nil -} - -func (f *Finder) dcReference(_ context.Context) (object.Reference, error) { - dc, err := f.datacenter() - if err != nil { - return nil, err - } - - return dc, nil -} - -func (f *Finder) vmFolder(ctx context.Context) (object.Reference, error) { - folders, err := f.dcFolders(ctx) - if err != nil { - return nil, err - } - - return folders.VmFolder, nil -} - -func (f *Finder) hostFolder(ctx context.Context) (object.Reference, error) { - folders, err := f.dcFolders(ctx) - if err != nil { - return nil, err - } - - return folders.HostFolder, nil -} - -func (f *Finder) datastoreFolder(ctx context.Context) (object.Reference, error) { - folders, err := f.dcFolders(ctx) - if err != nil { - return nil, err - } - - return folders.DatastoreFolder, nil -} - -func (f *Finder) networkFolder(ctx context.Context) (object.Reference, error) { - folders, err := f.dcFolders(ctx) - if err != nil { - return nil, err - } - - return folders.NetworkFolder, nil -} - -func (f *Finder) rootFolder(_ context.Context) (object.Reference, error) { - return object.NewRootFolder(f.client), nil -} - -func (f *Finder) managedObjectList(ctx context.Context, path string, tl bool, include []string) ([]list.Element, error) { - fn := f.rootFolder - - if f.dc != nil { - fn = f.dcReference - } - - if len(path) == 0 { - path = "." - } - - s := &spec{ - Relative: fn, - Parents: []string{"ComputeResource", "ClusterComputeResource", "HostSystem", "VirtualApp", "StoragePod"}, - Include: include, - } - - if tl { - s.Contents = true - s.ListMode = types.NewBool(true) - } - - return f.find(ctx, path, s) -} - -// Element returns an Element for the given ManagedObjectReference -// This method is only useful for looking up the InventoryPath of a ManagedObjectReference. -func (f *Finder) Element(ctx context.Context, ref types.ManagedObjectReference) (*list.Element, error) { - rl := func(_ context.Context) (object.Reference, error) { - return ref, nil - } - - s := &spec{ - Relative: rl, - } - - e, err := f.find(ctx, "./", s) - if err != nil { - return nil, err - } - - if len(e) == 0 { - return nil, &NotFoundError{ref.Type, ref.Value} - } - - if len(e) > 1 { - panic("ManagedObjectReference must be unique") - } - - return &e[0], nil -} - -// ObjectReference converts the given ManagedObjectReference to a type from the object package via object.NewReference -// with the object.Common.InventoryPath field set. -func (f *Finder) ObjectReference(ctx context.Context, ref types.ManagedObjectReference) (object.Reference, error) { - e, err := f.Element(ctx, ref) - if err != nil { - return nil, err - } - - r := object.NewReference(f.client, ref) - - type common interface { - SetInventoryPath(string) - } - - r.(common).SetInventoryPath(e.Path) - - if f.dc != nil { - if ds, ok := r.(*object.Datastore); ok { - ds.DatacenterPath = f.dc.InventoryPath - } - } - - return r, nil -} - -func (f *Finder) ManagedObjectList(ctx context.Context, path string, include ...string) ([]list.Element, error) { - return f.managedObjectList(ctx, path, false, include) -} - -func (f *Finder) ManagedObjectListChildren(ctx context.Context, path string, include ...string) ([]list.Element, error) { - return f.managedObjectList(ctx, path, true, include) -} - -func (f *Finder) DatacenterList(ctx context.Context, path string) ([]*object.Datacenter, error) { - s := &spec{ - Relative: f.rootFolder, - Include: []string{"Datacenter"}, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var dcs []*object.Datacenter - for _, e := range es { - ref := e.Object.Reference() - if ref.Type == "Datacenter" { - dc := object.NewDatacenter(f.client, ref) - dc.InventoryPath = e.Path - dcs = append(dcs, dc) - } - } - - if len(dcs) == 0 { - return nil, &NotFoundError{"datacenter", path} - } - - return dcs, nil -} - -func (f *Finder) Datacenter(ctx context.Context, path string) (*object.Datacenter, error) { - dcs, err := f.DatacenterList(ctx, path) - if err != nil { - return nil, err - } - - if len(dcs) > 1 { - return nil, &MultipleFoundError{"datacenter", path} - } - - return dcs[0], nil -} - -func (f *Finder) DefaultDatacenter(ctx context.Context) (*object.Datacenter, error) { - dc, err := f.Datacenter(ctx, "*") - if err != nil { - return nil, toDefaultError(err) - } - - return dc, nil -} - -func (f *Finder) DatacenterOrDefault(ctx context.Context, path string) (*object.Datacenter, error) { - if path != "" { - dc, err := f.Datacenter(ctx, path) - if err != nil { - return nil, err - } - return dc, nil - } - - return f.DefaultDatacenter(ctx) -} - -func (f *Finder) DatastoreList(ctx context.Context, path string) ([]*object.Datastore, error) { - s := &spec{ - Relative: f.datastoreFolder, - Parents: []string{"StoragePod"}, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var dss []*object.Datastore - for _, e := range es { - ref := e.Object.Reference() - if ref.Type == "Datastore" { - ds := object.NewDatastore(f.client, ref) - ds.InventoryPath = e.Path - - if f.dc == nil { - // In this case SetDatacenter was not called and path is absolute - ds.DatacenterPath, err = f.datacenterPath(ctx, ref) - if err != nil { - return nil, err - } - } else { - ds.DatacenterPath = f.dc.InventoryPath - } - - dss = append(dss, ds) - } - } - - if len(dss) == 0 { - return nil, &NotFoundError{"datastore", path} - } - - return dss, nil -} - -func (f *Finder) Datastore(ctx context.Context, path string) (*object.Datastore, error) { - dss, err := f.DatastoreList(ctx, path) - if err != nil { - return nil, err - } - - if len(dss) > 1 { - return nil, &MultipleFoundError{"datastore", path} - } - - return dss[0], nil -} - -func (f *Finder) DefaultDatastore(ctx context.Context) (*object.Datastore, error) { - ds, err := f.Datastore(ctx, "*") - if err != nil { - return nil, toDefaultError(err) - } - - return ds, nil -} - -func (f *Finder) DatastoreOrDefault(ctx context.Context, path string) (*object.Datastore, error) { - if path != "" { - ds, err := f.Datastore(ctx, path) - if err != nil { - return nil, err - } - return ds, nil - } - - return f.DefaultDatastore(ctx) -} - -func (f *Finder) DatastoreClusterList(ctx context.Context, path string) ([]*object.StoragePod, error) { - s := &spec{ - Relative: f.datastoreFolder, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var sps []*object.StoragePod - for _, e := range es { - ref := e.Object.Reference() - if ref.Type == "StoragePod" { - sp := object.NewStoragePod(f.client, ref) - sp.InventoryPath = e.Path - sps = append(sps, sp) - } - } - - if len(sps) == 0 { - return nil, &NotFoundError{"datastore cluster", path} - } - - return sps, nil -} - -func (f *Finder) DatastoreCluster(ctx context.Context, path string) (*object.StoragePod, error) { - sps, err := f.DatastoreClusterList(ctx, path) - if err != nil { - return nil, err - } - - if len(sps) > 1 { - return nil, &MultipleFoundError{"datastore cluster", path} - } - - return sps[0], nil -} - -func (f *Finder) DefaultDatastoreCluster(ctx context.Context) (*object.StoragePod, error) { - sp, err := f.DatastoreCluster(ctx, "*") - if err != nil { - return nil, toDefaultError(err) - } - - return sp, nil -} - -func (f *Finder) DatastoreClusterOrDefault(ctx context.Context, path string) (*object.StoragePod, error) { - if path != "" { - sp, err := f.DatastoreCluster(ctx, path) - if err != nil { - return nil, err - } - return sp, nil - } - - return f.DefaultDatastoreCluster(ctx) -} - -func (f *Finder) ComputeResourceList(ctx context.Context, path string) ([]*object.ComputeResource, error) { - s := &spec{ - Relative: f.hostFolder, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var crs []*object.ComputeResource - for _, e := range es { - var cr *object.ComputeResource - - switch o := e.Object.(type) { - case mo.ComputeResource, mo.ClusterComputeResource: - cr = object.NewComputeResource(f.client, o.Reference()) - default: - continue - } - - cr.InventoryPath = e.Path - crs = append(crs, cr) - } - - if len(crs) == 0 { - return nil, &NotFoundError{"compute resource", path} - } - - return crs, nil -} - -func (f *Finder) ComputeResource(ctx context.Context, path string) (*object.ComputeResource, error) { - crs, err := f.ComputeResourceList(ctx, path) - if err != nil { - return nil, err - } - - if len(crs) > 1 { - return nil, &MultipleFoundError{"compute resource", path} - } - - return crs[0], nil -} - -func (f *Finder) DefaultComputeResource(ctx context.Context) (*object.ComputeResource, error) { - cr, err := f.ComputeResource(ctx, "*") - if err != nil { - return nil, toDefaultError(err) - } - - return cr, nil -} - -func (f *Finder) ComputeResourceOrDefault(ctx context.Context, path string) (*object.ComputeResource, error) { - if path != "" { - cr, err := f.ComputeResource(ctx, path) - if err != nil { - return nil, err - } - return cr, nil - } - - return f.DefaultComputeResource(ctx) -} - -func (f *Finder) ClusterComputeResourceList(ctx context.Context, path string) ([]*object.ClusterComputeResource, error) { - s := &spec{ - Relative: f.hostFolder, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var ccrs []*object.ClusterComputeResource - for _, e := range es { - var ccr *object.ClusterComputeResource - - switch o := e.Object.(type) { - case mo.ClusterComputeResource: - ccr = object.NewClusterComputeResource(f.client, o.Reference()) - default: - continue - } - - ccr.InventoryPath = e.Path - ccrs = append(ccrs, ccr) - } - - if len(ccrs) == 0 { - return nil, &NotFoundError{"cluster", path} - } - - return ccrs, nil -} - -func (f *Finder) ClusterComputeResource(ctx context.Context, path string) (*object.ClusterComputeResource, error) { - ccrs, err := f.ClusterComputeResourceList(ctx, path) - if err != nil { - return nil, err - } - - if len(ccrs) > 1 { - return nil, &MultipleFoundError{"cluster", path} - } - - return ccrs[0], nil -} - -func (f *Finder) HostSystemList(ctx context.Context, path string) ([]*object.HostSystem, error) { - s := &spec{ - Relative: f.hostFolder, - Parents: []string{"ComputeResource", "ClusterComputeResource"}, - Include: []string{"HostSystem"}, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var hss []*object.HostSystem - for _, e := range es { - var hs *object.HostSystem - - switch o := e.Object.(type) { - case mo.HostSystem: - hs = object.NewHostSystem(f.client, o.Reference()) - - hs.InventoryPath = e.Path - hss = append(hss, hs) - case mo.ComputeResource, mo.ClusterComputeResource: - cr := object.NewComputeResource(f.client, o.Reference()) - - cr.InventoryPath = e.Path - - hosts, err := cr.Hosts(ctx) - if err != nil { - return nil, err - } - - hss = append(hss, hosts...) - } - } - - if len(hss) == 0 { - return nil, &NotFoundError{"host", path} - } - - return hss, nil -} - -func (f *Finder) HostSystem(ctx context.Context, path string) (*object.HostSystem, error) { - hss, err := f.HostSystemList(ctx, path) - if err != nil { - return nil, err - } - - if len(hss) > 1 { - return nil, &MultipleFoundError{"host", path} - } - - return hss[0], nil -} - -func (f *Finder) DefaultHostSystem(ctx context.Context) (*object.HostSystem, error) { - hs, err := f.HostSystem(ctx, "*/*") - if err != nil { - return nil, toDefaultError(err) - } - - return hs, nil -} - -func (f *Finder) HostSystemOrDefault(ctx context.Context, path string) (*object.HostSystem, error) { - if path != "" { - hs, err := f.HostSystem(ctx, path) - if err != nil { - return nil, err - } - return hs, nil - } - - return f.DefaultHostSystem(ctx) -} - -func (f *Finder) NetworkList(ctx context.Context, path string) ([]object.NetworkReference, error) { - s := &spec{ - Relative: f.networkFolder, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var ns []object.NetworkReference - for _, e := range es { - ref := e.Object.Reference() - switch ref.Type { - case "Network": - r := object.NewNetwork(f.client, ref) - r.InventoryPath = e.Path - ns = append(ns, r) - case "OpaqueNetwork": - r := object.NewOpaqueNetwork(f.client, ref) - r.InventoryPath = e.Path - ns = append(ns, r) - case "DistributedVirtualPortgroup": - r := object.NewDistributedVirtualPortgroup(f.client, ref) - r.InventoryPath = e.Path - ns = append(ns, r) - case "DistributedVirtualSwitch", "VmwareDistributedVirtualSwitch": - r := object.NewDistributedVirtualSwitch(f.client, ref) - r.InventoryPath = e.Path - ns = append(ns, r) - } - } - - if len(ns) == 0 { - return nil, &NotFoundError{"network", path} - } - - return ns, nil -} - -func (f *Finder) Network(ctx context.Context, path string) (object.NetworkReference, error) { - networks, err := f.NetworkList(ctx, path) - if err != nil { - return nil, err - } - - if len(networks) > 1 { - return nil, &MultipleFoundError{"network", path} - } - - return networks[0], nil -} - -func (f *Finder) DefaultNetwork(ctx context.Context) (object.NetworkReference, error) { - network, err := f.Network(ctx, "*") - if err != nil { - return nil, toDefaultError(err) - } - - return network, nil -} - -func (f *Finder) NetworkOrDefault(ctx context.Context, path string) (object.NetworkReference, error) { - if path != "" { - network, err := f.Network(ctx, path) - if err != nil { - return nil, err - } - return network, nil - } - - return f.DefaultNetwork(ctx) -} - -func (f *Finder) ResourcePoolList(ctx context.Context, path string) ([]*object.ResourcePool, error) { - s := &spec{ - Relative: f.hostFolder, - Parents: []string{"ComputeResource", "ClusterComputeResource", "VirtualApp"}, - Nested: []string{"ResourcePool"}, - Contents: true, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var rps []*object.ResourcePool - for _, e := range es { - var rp *object.ResourcePool - - switch o := e.Object.(type) { - case mo.ResourcePool: - rp = object.NewResourcePool(f.client, o.Reference()) - rp.InventoryPath = e.Path - rps = append(rps, rp) - } - } - - if len(rps) == 0 { - return nil, &NotFoundError{"resource pool", path} - } - - return rps, nil -} - -func (f *Finder) ResourcePool(ctx context.Context, path string) (*object.ResourcePool, error) { - rps, err := f.ResourcePoolList(ctx, path) - if err != nil { - return nil, err - } - - if len(rps) > 1 { - return nil, &MultipleFoundError{"resource pool", path} - } - - return rps[0], nil -} - -func (f *Finder) DefaultResourcePool(ctx context.Context) (*object.ResourcePool, error) { - rp, err := f.ResourcePool(ctx, "*/Resources") - if err != nil { - return nil, toDefaultError(err) - } - - return rp, nil -} - -func (f *Finder) ResourcePoolOrDefault(ctx context.Context, path string) (*object.ResourcePool, error) { - if path != "" { - rp, err := f.ResourcePool(ctx, path) - if err != nil { - return nil, err - } - return rp, nil - } - - return f.DefaultResourcePool(ctx) -} - -// ResourcePoolListAll combines ResourcePoolList and VirtualAppList -// VirtualAppList is only called if ResourcePoolList does not find any pools with the given path. -func (f *Finder) ResourcePoolListAll(ctx context.Context, path string) ([]*object.ResourcePool, error) { - pools, err := f.ResourcePoolList(ctx, path) - if err != nil { - if _, ok := err.(*NotFoundError); !ok { - return nil, err - } - - vapps, _ := f.VirtualAppList(ctx, path) - - if len(vapps) == 0 { - return nil, err - } - - for _, vapp := range vapps { - pools = append(pools, vapp.ResourcePool) - } - } - - return pools, nil -} - -func (f *Finder) DefaultFolder(ctx context.Context) (*object.Folder, error) { - ref, err := f.vmFolder(ctx) - if err != nil { - return nil, toDefaultError(err) - } - folder := object.NewFolder(f.client, ref.Reference()) - - return folder, nil -} - -func (f *Finder) FolderOrDefault(ctx context.Context, path string) (*object.Folder, error) { - if path != "" { - folder, err := f.Folder(ctx, path) - if err != nil { - return nil, err - } - return folder, nil - } - return f.DefaultFolder(ctx) -} - -func (f *Finder) VirtualMachineList(ctx context.Context, path string) ([]*object.VirtualMachine, error) { - s := &spec{ - Relative: f.vmFolder, - Parents: []string{"VirtualApp"}, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var vms []*object.VirtualMachine - for _, e := range es { - switch o := e.Object.(type) { - case mo.VirtualMachine: - vm := object.NewVirtualMachine(f.client, o.Reference()) - vm.InventoryPath = e.Path - vms = append(vms, vm) - } - } - - if len(vms) == 0 { - return nil, &NotFoundError{"vm", path} - } - - return vms, nil -} - -func (f *Finder) VirtualMachine(ctx context.Context, path string) (*object.VirtualMachine, error) { - vms, err := f.VirtualMachineList(ctx, path) - if err != nil { - return nil, err - } - - if len(vms) > 1 { - return nil, &MultipleFoundError{"vm", path} - } - - return vms[0], nil -} - -func (f *Finder) VirtualAppList(ctx context.Context, path string) ([]*object.VirtualApp, error) { - s := &spec{ - Relative: f.vmFolder, - } - - es, err := f.find(ctx, path, s) - if err != nil { - return nil, err - } - - var apps []*object.VirtualApp - for _, e := range es { - switch o := e.Object.(type) { - case mo.VirtualApp: - app := object.NewVirtualApp(f.client, o.Reference()) - app.InventoryPath = e.Path - apps = append(apps, app) - } - } - - if len(apps) == 0 { - return nil, &NotFoundError{"app", path} - } - - return apps, nil -} - -func (f *Finder) VirtualApp(ctx context.Context, path string) (*object.VirtualApp, error) { - apps, err := f.VirtualAppList(ctx, path) - if err != nil { - return nil, err - } - - if len(apps) > 1 { - return nil, &MultipleFoundError{"app", path} - } - - return apps[0], nil -} - -func (f *Finder) FolderList(ctx context.Context, path string) ([]*object.Folder, error) { - es, err := f.ManagedObjectList(ctx, path) - if err != nil { - return nil, err - } - - var folders []*object.Folder - - for _, e := range es { - switch o := e.Object.(type) { - case mo.Folder, mo.StoragePod: - folder := object.NewFolder(f.client, o.Reference()) - folder.InventoryPath = e.Path - folders = append(folders, folder) - case *object.Folder: - // RootFolder - folders = append(folders, o) - } - } - - if len(folders) == 0 { - return nil, &NotFoundError{"folder", path} - } - - return folders, nil -} - -func (f *Finder) Folder(ctx context.Context, path string) (*object.Folder, error) { - folders, err := f.FolderList(ctx, path) - if err != nil { - return nil, err - } - - if len(folders) > 1 { - return nil, &MultipleFoundError{"folder", path} - } - - return folders[0], nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/recurser.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/recurser.go deleted file mode 100644 index 80602956..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/find/recurser.go +++ /dev/null @@ -1,253 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 find - -import ( - "context" - "os" - "path" - "strings" - - "github.com/vmware/govmomi/list" - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25/mo" -) - -// spec is used to specify per-search configuration, independent of the Finder instance. -type spec struct { - // Relative returns the root object to resolve Relative paths (starts with ".") - Relative func(ctx context.Context) (object.Reference, error) - - // ListMode can be used to optionally force "ls" behavior, rather than "find" behavior - ListMode *bool - - // Contents configures the Recurser to list the Contents of traversable leaf nodes. - // This is typically set to true when used from the ls command, where listing - // a folder means listing its Contents. This is typically set to false for - // commands that take managed entities that are not folders as input. - Contents bool - - // Parents specifies the types which can contain the child types being searched for. - // for example, when searching for a HostSystem, parent types can be - // "ComputeResource" or "ClusterComputeResource". - Parents []string - - // Include specifies which types to be included in the results, used only in "find" mode. - Include []string - - // Nested should be set to types that can be Nested, used only in "find" mode. - Nested []string - - // ChildType avoids traversing into folders that can't contain the Include types, used only in "find" mode. - ChildType []string -} - -func (s *spec) traversable(o mo.Reference) bool { - ref := o.Reference() - - switch ref.Type { - case "Datacenter": - if len(s.Include) == 1 && s.Include[0] == "Datacenter" { - // No point in traversing deeper as Datacenters cannot be nested - return false - } - return true - case "Folder": - if f, ok := o.(mo.Folder); ok { - // TODO: Not making use of this yet, but here we can optimize when searching the entire - // inventory across Datacenters for specific types, for example: 'govc ls -t VirtualMachine /**' - // should not traverse into a Datacenter's host, network or datatore folders. - if !s.traversableChildType(f.ChildType) { - return false - } - } - - return true - } - - for _, kind := range s.Parents { - if kind == ref.Type { - return true - } - } - - return false -} - -func (s *spec) traversableChildType(ctypes []string) bool { - if len(s.ChildType) == 0 { - return true - } - - for _, t := range ctypes { - for _, c := range s.ChildType { - if t == c { - return true - } - } - } - - return false -} - -func (s *spec) wanted(e list.Element) bool { - if len(s.Include) == 0 { - return true - } - - w := e.Object.Reference().Type - - for _, kind := range s.Include { - if w == kind { - return true - } - } - - return false -} - -// listMode is a global option to revert to the original Finder behavior, -// disabling the newer "find" mode. -var listMode = os.Getenv("GOVMOMI_FINDER_LIST_MODE") == "true" - -func (s *spec) listMode(isPath bool) bool { - if listMode { - return true - } - - if s.ListMode != nil { - return *s.ListMode - } - - return isPath -} - -type recurser struct { - Collector *property.Collector - - // All configures the recurses to fetch complete objects for leaf nodes. - All bool -} - -func (r recurser) List(ctx context.Context, s *spec, root list.Element, parts []string) ([]list.Element, error) { - if len(parts) == 0 { - // Include non-traversable leaf elements in result. For example, consider - // the pattern "./vm/my-vm-*", where the pattern should match the VMs and - // not try to traverse them. - // - // Include traversable leaf elements in result, if the contents - // field is set to false. - // - if !s.Contents || !s.traversable(root.Object.Reference()) { - return []list.Element{root}, nil - } - } - - k := list.Lister{ - Collector: r.Collector, - Reference: root.Object.Reference(), - Prefix: root.Path, - } - - if r.All && len(parts) < 2 { - k.All = true - } - - in, err := k.List(ctx) - if err != nil { - return nil, err - } - - // This folder is a leaf as far as the glob goes. - if len(parts) == 0 { - return in, nil - } - - all := parts - pattern := parts[0] - parts = parts[1:] - - var out []list.Element - for _, e := range in { - matched, err := path.Match(pattern, path.Base(e.Path)) - if err != nil { - return nil, err - } - - if !matched { - matched = strings.HasSuffix(e.Path, path.Join(all...)) - if matched { - // name contains a '/' - out = append(out, e) - } - - continue - } - - nres, err := r.List(ctx, s, e, parts) - if err != nil { - return nil, err - } - - out = append(out, nres...) - } - - return out, nil -} - -func (r recurser) Find(ctx context.Context, s *spec, root list.Element, parts []string) ([]list.Element, error) { - var out []list.Element - - if len(parts) > 0 { - pattern := parts[0] - matched, err := path.Match(pattern, path.Base(root.Path)) - if err != nil { - return nil, err - } - - if matched && s.wanted(root) { - out = append(out, root) - } - } - - if !s.traversable(root.Object) { - return out, nil - } - - k := list.Lister{ - Collector: r.Collector, - Reference: root.Object.Reference(), - Prefix: root.Path, - } - - in, err := k.List(ctx) - if err != nil { - return nil, err - } - - for _, e := range in { - nres, err := r.Find(ctx, s, e, parts) - if err != nil { - return nil, err - } - - out = append(out, nres...) - } - - return out, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/list/lister.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/list/lister.go deleted file mode 100644 index 2ee32e6b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/list/lister.go +++ /dev/null @@ -1,563 +0,0 @@ -/* -Copyright (c) 2014-2016 VMware, 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 list - -import ( - "context" - "fmt" - "path" - "reflect" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type Element struct { - Path string - Object mo.Reference -} - -func (e Element) String() string { - return fmt.Sprintf("%s @ %s", e.Object.Reference(), e.Path) -} - -func ToElement(r mo.Reference, prefix string) Element { - var name string - - // Comments about types to be expected in folders copied from the - // documentation of the Folder managed object: - // http://pubs.vmware.com/vsphere-55/topic/com.vmware.wssdk.apiref.doc/vim.Folder.html - switch m := r.(type) { - case mo.Folder: - name = m.Name - case mo.StoragePod: - name = m.Name - - // { "vim.Datacenter" } - Identifies the root folder and its descendant - // folders. Data center folders can contain child data center folders and - // Datacenter managed objects. Datacenter objects contain virtual machine, - // compute resource, network entity, and datastore folders. - case mo.Datacenter: - name = m.Name - - // { "vim.Virtualmachine", "vim.VirtualApp" } - Identifies a virtual machine - // folder. A virtual machine folder may contain child virtual machine - // folders. It also can contain VirtualMachine managed objects, templates, - // and VirtualApp managed objects. - case mo.VirtualMachine: - name = m.Name - case mo.VirtualApp: - name = m.Name - - // { "vim.ComputeResource" } - Identifies a compute resource - // folder, which contains child compute resource folders and ComputeResource - // hierarchies. - case mo.ComputeResource: - name = m.Name - case mo.ClusterComputeResource: - name = m.Name - case mo.HostSystem: - name = m.Name - case mo.ResourcePool: - name = m.Name - - // { "vim.Network" } - Identifies a network entity folder. - // Network entity folders on a vCenter Server can contain Network, - // DistributedVirtualSwitch, and DistributedVirtualPortgroup managed objects. - // Network entity folders on an ESXi host can contain only Network objects. - case mo.Network: - name = m.Name - case mo.OpaqueNetwork: - name = m.Name - case mo.DistributedVirtualSwitch: - name = m.Name - case mo.DistributedVirtualPortgroup: - name = m.Name - case mo.VmwareDistributedVirtualSwitch: - name = m.Name - - // { "vim.Datastore" } - Identifies a datastore folder. Datastore folders can - // contain child datastore folders and Datastore managed objects. - case mo.Datastore: - name = m.Name - - default: - panic("not implemented for type " + reflect.TypeOf(r).String()) - } - - e := Element{ - Path: path.Join(prefix, name), - Object: r, - } - - return e -} - -type Lister struct { - Collector *property.Collector - Reference types.ManagedObjectReference - Prefix string - All bool -} - -func (l Lister) retrieveProperties(ctx context.Context, req types.RetrieveProperties, dst *[]interface{}) error { - res, err := l.Collector.RetrieveProperties(ctx, req) - if err != nil { - return err - } - - // Instead of using mo.LoadRetrievePropertiesResponse, use a custom loop to - // iterate over the results and ignore entries that have properties that - // could not be retrieved (a non-empty `missingSet` property). Since the - // returned objects are enumerated by vSphere in the first place, any object - // that has a non-empty `missingSet` property is indicative of a race - // condition in vSphere where the object was enumerated initially, but was - // removed before its properties could be collected. - for _, p := range res.Returnval { - v, err := mo.ObjectContentToType(p) - if err != nil { - // Ignore fault if it is ManagedObjectNotFound - if soap.IsVimFault(err) { - switch soap.ToVimFault(err).(type) { - case *types.ManagedObjectNotFound: - continue - } - } - - return err - } - - *dst = append(*dst, v) - } - - return nil -} - -func (l Lister) List(ctx context.Context) ([]Element, error) { - switch l.Reference.Type { - case "Folder", "StoragePod": - return l.ListFolder(ctx) - case "Datacenter": - return l.ListDatacenter(ctx) - case "ComputeResource", "ClusterComputeResource": - // Treat ComputeResource and ClusterComputeResource as one and the same. - // It doesn't matter from the perspective of the lister. - return l.ListComputeResource(ctx) - case "ResourcePool": - return l.ListResourcePool(ctx) - case "HostSystem": - return l.ListHostSystem(ctx) - case "VirtualApp": - return l.ListVirtualApp(ctx) - default: - return nil, fmt.Errorf("cannot traverse type " + l.Reference.Type) - } -} - -func (l Lister) ListFolder(ctx context.Context) ([]Element, error) { - spec := types.PropertyFilterSpec{ - ObjectSet: []types.ObjectSpec{ - { - Obj: l.Reference, - SelectSet: []types.BaseSelectionSpec{ - &types.TraversalSpec{ - Path: "childEntity", - Skip: types.NewBool(false), - Type: "Folder", - }, - }, - Skip: types.NewBool(true), - }, - }, - } - - // Retrieve all objects that we can deal with - childTypes := []string{ - "Folder", - "Datacenter", - "VirtualApp", - "VirtualMachine", - "Network", - "ComputeResource", - "ClusterComputeResource", - "Datastore", - "DistributedVirtualSwitch", - } - - for _, t := range childTypes { - pspec := types.PropertySpec{ - Type: t, - } - - if l.All { - pspec.All = types.NewBool(true) - } else { - pspec.PathSet = []string{"name"} - - // Additional basic properties. - switch t { - case "Folder": - pspec.PathSet = append(pspec.PathSet, "childType") - case "ComputeResource", "ClusterComputeResource": - // The ComputeResource and ClusterComputeResource are dereferenced in - // the ResourcePoolFlag. Make sure they always have their resourcePool - // field populated. - pspec.PathSet = append(pspec.PathSet, "resourcePool") - } - } - - spec.PropSet = append(spec.PropSet, pspec) - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{spec}, - } - - var dst []interface{} - - err := l.retrieveProperties(ctx, req, &dst) - if err != nil { - return nil, err - } - - es := []Element{} - for _, v := range dst { - es = append(es, ToElement(v.(mo.Reference), l.Prefix)) - } - - return es, nil -} - -func (l Lister) ListDatacenter(ctx context.Context) ([]Element, error) { - ospec := types.ObjectSpec{ - Obj: l.Reference, - Skip: types.NewBool(true), - } - - // Include every datastore folder in the select set - fields := []string{ - "vmFolder", - "hostFolder", - "datastoreFolder", - "networkFolder", - } - - for _, f := range fields { - tspec := types.TraversalSpec{ - Path: f, - Skip: types.NewBool(false), - Type: "Datacenter", - } - - ospec.SelectSet = append(ospec.SelectSet, &tspec) - } - - pspec := types.PropertySpec{ - Type: "Folder", - } - - if l.All { - pspec.All = types.NewBool(true) - } else { - pspec.PathSet = []string{"name", "childType"} - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ospec}, - PropSet: []types.PropertySpec{pspec}, - }, - }, - } - - var dst []interface{} - - err := l.retrieveProperties(ctx, req, &dst) - if err != nil { - return nil, err - } - - es := []Element{} - for _, v := range dst { - es = append(es, ToElement(v.(mo.Reference), l.Prefix)) - } - - return es, nil -} - -func (l Lister) ListComputeResource(ctx context.Context) ([]Element, error) { - ospec := types.ObjectSpec{ - Obj: l.Reference, - Skip: types.NewBool(true), - } - - fields := []string{ - "host", - "resourcePool", - } - - for _, f := range fields { - tspec := types.TraversalSpec{ - Path: f, - Skip: types.NewBool(false), - Type: "ComputeResource", - } - - ospec.SelectSet = append(ospec.SelectSet, &tspec) - } - - childTypes := []string{ - "HostSystem", - "ResourcePool", - } - - var pspecs []types.PropertySpec - for _, t := range childTypes { - pspec := types.PropertySpec{ - Type: t, - } - - if l.All { - pspec.All = types.NewBool(true) - } else { - pspec.PathSet = []string{"name"} - } - - pspecs = append(pspecs, pspec) - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ospec}, - PropSet: pspecs, - }, - }, - } - - var dst []interface{} - - err := l.retrieveProperties(ctx, req, &dst) - if err != nil { - return nil, err - } - - es := []Element{} - for _, v := range dst { - es = append(es, ToElement(v.(mo.Reference), l.Prefix)) - } - - return es, nil -} - -func (l Lister) ListResourcePool(ctx context.Context) ([]Element, error) { - ospec := types.ObjectSpec{ - Obj: l.Reference, - Skip: types.NewBool(true), - } - - fields := []string{ - "resourcePool", - } - - for _, f := range fields { - tspec := types.TraversalSpec{ - Path: f, - Skip: types.NewBool(false), - Type: "ResourcePool", - } - - ospec.SelectSet = append(ospec.SelectSet, &tspec) - } - - childTypes := []string{ - "ResourcePool", - } - - var pspecs []types.PropertySpec - for _, t := range childTypes { - pspec := types.PropertySpec{ - Type: t, - } - - if l.All { - pspec.All = types.NewBool(true) - } else { - pspec.PathSet = []string{"name"} - } - - pspecs = append(pspecs, pspec) - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ospec}, - PropSet: pspecs, - }, - }, - } - - var dst []interface{} - - err := l.retrieveProperties(ctx, req, &dst) - if err != nil { - return nil, err - } - - es := []Element{} - for _, v := range dst { - es = append(es, ToElement(v.(mo.Reference), l.Prefix)) - } - - return es, nil -} - -func (l Lister) ListHostSystem(ctx context.Context) ([]Element, error) { - ospec := types.ObjectSpec{ - Obj: l.Reference, - Skip: types.NewBool(true), - } - - fields := []string{ - "datastore", - "network", - "vm", - } - - for _, f := range fields { - tspec := types.TraversalSpec{ - Path: f, - Skip: types.NewBool(false), - Type: "HostSystem", - } - - ospec.SelectSet = append(ospec.SelectSet, &tspec) - } - - childTypes := []string{ - "Datastore", - "Network", - "VirtualMachine", - } - - var pspecs []types.PropertySpec - for _, t := range childTypes { - pspec := types.PropertySpec{ - Type: t, - } - - if l.All { - pspec.All = types.NewBool(true) - } else { - pspec.PathSet = []string{"name"} - } - - pspecs = append(pspecs, pspec) - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ospec}, - PropSet: pspecs, - }, - }, - } - - var dst []interface{} - - err := l.retrieveProperties(ctx, req, &dst) - if err != nil { - return nil, err - } - - es := []Element{} - for _, v := range dst { - es = append(es, ToElement(v.(mo.Reference), l.Prefix)) - } - - return es, nil -} - -func (l Lister) ListVirtualApp(ctx context.Context) ([]Element, error) { - ospec := types.ObjectSpec{ - Obj: l.Reference, - Skip: types.NewBool(true), - } - - fields := []string{ - "resourcePool", - "vm", - } - - for _, f := range fields { - tspec := types.TraversalSpec{ - Path: f, - Skip: types.NewBool(false), - Type: "VirtualApp", - } - - ospec.SelectSet = append(ospec.SelectSet, &tspec) - } - - childTypes := []string{ - "ResourcePool", - "VirtualMachine", - } - - var pspecs []types.PropertySpec - for _, t := range childTypes { - pspec := types.PropertySpec{ - Type: t, - } - - if l.All { - pspec.All = types.NewBool(true) - } else { - pspec.PathSet = []string{"name"} - } - - pspecs = append(pspecs, pspec) - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ospec}, - PropSet: pspecs, - }, - }, - } - - var dst []interface{} - - err := l.retrieveProperties(ctx, req, &dst) - if err != nil { - return nil, err - } - - es := []Element{} - for _, v := range dst { - es = append(es, ToElement(v.(mo.Reference), l.Prefix)) - } - - return es, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/list/path.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/list/path.go deleted file mode 100644 index f3a10652..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/list/path.go +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 list - -import ( - "path" - "strings" -) - -func ToParts(p string) []string { - p = path.Clean(p) - if p == "/" { - return []string{} - } - - if len(p) > 0 { - // Prefix ./ if relative - if p[0] != '/' && p[0] != '.' { - p = "./" + p - } - } - - ps := strings.Split(p, "/") - if ps[0] == "" { - // Start at root - ps = ps[1:] - } - - return ps -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease.go deleted file mode 100644 index 20323805..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease.go +++ /dev/null @@ -1,205 +0,0 @@ -/* -Copyright (c) 2015-2017 VMware, 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 nfc - -import ( - "context" - "errors" - "fmt" - "io" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/progress" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type Lease struct { - types.ManagedObjectReference - - c *vim25.Client -} - -func NewLease(c *vim25.Client, ref types.ManagedObjectReference) *Lease { - return &Lease{ref, c} -} - -// Abort wraps methods.Abort -func (l *Lease) Abort(ctx context.Context, fault *types.LocalizedMethodFault) error { - req := types.HttpNfcLeaseAbort{ - This: l.Reference(), - Fault: fault, - } - - _, err := methods.HttpNfcLeaseAbort(ctx, l.c, &req) - if err != nil { - return err - } - - return nil -} - -// Complete wraps methods.Complete -func (l *Lease) Complete(ctx context.Context) error { - req := types.HttpNfcLeaseComplete{ - This: l.Reference(), - } - - _, err := methods.HttpNfcLeaseComplete(ctx, l.c, &req) - if err != nil { - return err - } - - return nil -} - -// GetManifest wraps methods.GetManifest -func (l *Lease) GetManifest(ctx context.Context) error { - req := types.HttpNfcLeaseGetManifest{ - This: l.Reference(), - } - - _, err := methods.HttpNfcLeaseGetManifest(ctx, l.c, &req) - if err != nil { - return err - } - - return nil -} - -// Progress wraps methods.Progress -func (l *Lease) Progress(ctx context.Context, percent int32) error { - req := types.HttpNfcLeaseProgress{ - This: l.Reference(), - Percent: percent, - } - - _, err := methods.HttpNfcLeaseProgress(ctx, l.c, &req) - if err != nil { - return err - } - - return nil -} - -type LeaseInfo struct { - types.HttpNfcLeaseInfo - - Items []FileItem -} - -func (l *Lease) newLeaseInfo(li *types.HttpNfcLeaseInfo, items []types.OvfFileItem) (*LeaseInfo, error) { - info := &LeaseInfo{ - HttpNfcLeaseInfo: *li, - } - - for _, device := range li.DeviceUrl { - u, err := l.c.ParseURL(device.Url) - if err != nil { - return nil, err - } - - if device.SslThumbprint != "" { - // TODO: prefer host management IP - l.c.SetThumbprint(u.Host, device.SslThumbprint) - } - - for _, item := range items { - if device.ImportKey == item.DeviceId { - info.Items = append(info.Items, NewFileItem(u, item)) - break - } - } - } - - return info, nil -} - -func (l *Lease) Wait(ctx context.Context, items []types.OvfFileItem) (*LeaseInfo, error) { - var lease mo.HttpNfcLease - - pc := property.DefaultCollector(l.c) - err := property.Wait(ctx, pc, l.Reference(), []string{"state", "info", "error"}, func(pc []types.PropertyChange) bool { - done := false - - for _, c := range pc { - if c.Val == nil { - continue - } - - switch c.Name { - case "error": - val := c.Val.(types.LocalizedMethodFault) - lease.Error = &val - done = true - case "info": - val := c.Val.(types.HttpNfcLeaseInfo) - lease.Info = &val - case "state": - lease.State = c.Val.(types.HttpNfcLeaseState) - if lease.State != types.HttpNfcLeaseStateInitializing { - done = true - } - } - } - - return done - }) - - if err != nil { - return nil, err - } - - if lease.State == types.HttpNfcLeaseStateReady { - return l.newLeaseInfo(lease.Info, items) - } - - if lease.Error != nil { - return nil, errors.New(lease.Error.LocalizedMessage) - } - - return nil, fmt.Errorf("unexpected nfc lease state: %s", lease.State) -} - -func (l *Lease) StartUpdater(ctx context.Context, info *LeaseInfo) *LeaseUpdater { - return newLeaseUpdater(ctx, l, info) -} - -func (l *Lease) Upload(ctx context.Context, item FileItem, f io.Reader, opts soap.Upload) error { - if opts.Progress == nil { - opts.Progress = item - } else { - opts.Progress = progress.Tee(item, opts.Progress) - } - - // Non-disk files (such as .iso) use the PUT method. - // Overwrite: t header is also required in this case (ovftool does the same) - if item.Create { - opts.Method = "PUT" - opts.Headers = map[string]string{ - "Overwrite": "t", - } - } else { - opts.Method = "POST" - opts.Type = "application/x-vnd.vmware-streamVmdk" - } - - return l.c.Upload(f, item.URL, &opts) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease_updater.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease_updater.go deleted file mode 100644 index 0b9757d3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/nfc/lease_updater.go +++ /dev/null @@ -1,137 +0,0 @@ -/* -Copyright (c) 2014-2015 VMware, 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 nfc - -import ( - "context" - "log" - "net/url" - "sync" - "sync/atomic" - "time" - - "github.com/vmware/govmomi/vim25/progress" - "github.com/vmware/govmomi/vim25/types" -) - -type FileItem struct { - types.OvfFileItem - URL *url.URL - - ch chan progress.Report -} - -func NewFileItem(u *url.URL, item types.OvfFileItem) FileItem { - return FileItem{ - OvfFileItem: item, - URL: u, - ch: make(chan progress.Report), - } -} - -func (o FileItem) Sink() chan<- progress.Report { - return o.ch -} - -type LeaseUpdater struct { - lease *Lease - - pos int64 // Number of bytes - total int64 // Total number of bytes - - done chan struct{} // When lease updater should stop - - wg sync.WaitGroup // Track when update loop is done -} - -func newLeaseUpdater(ctx context.Context, lease *Lease, info *LeaseInfo) *LeaseUpdater { - l := LeaseUpdater{ - lease: lease, - - done: make(chan struct{}), - } - - for _, item := range info.Items { - l.total += item.Size - go l.waitForProgress(item) - } - - // Kickstart update loop - l.wg.Add(1) - go l.run() - - return &l -} - -func (l *LeaseUpdater) waitForProgress(item FileItem) { - var pos, total int64 - - total = item.Size - - for { - select { - case <-l.done: - return - case p, ok := <-item.ch: - // Return in case of error - if ok && p.Error() != nil { - return - } - - if !ok { - // Last element on the channel, add to total - atomic.AddInt64(&l.pos, total-pos) - return - } - - // Approximate progress in number of bytes - x := int64(float32(total) * (p.Percentage() / 100.0)) - atomic.AddInt64(&l.pos, x-pos) - pos = x - } - } -} - -func (l *LeaseUpdater) run() { - defer l.wg.Done() - - tick := time.NewTicker(2 * time.Second) - defer tick.Stop() - - for { - select { - case <-l.done: - return - case <-tick.C: - // From the vim api HttpNfcLeaseProgress(percent) doc, percent == - // "Completion status represented as an integer in the 0-100 range." - // Always report the current value of percent, as it will renew the - // lease even if the value hasn't changed or is 0. - percent := int32(float32(100*atomic.LoadInt64(&l.pos)) / float32(l.total)) - err := l.lease.Progress(context.TODO(), percent) - if err != nil { - log.Printf("NFC lease progress: %s", err) - return - } - } - } -} - -func (l *LeaseUpdater) Done() { - close(l.done) - l.wg.Wait() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager.go deleted file mode 100644 index b703258f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager.go +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type AuthorizationManager struct { - Common -} - -func NewAuthorizationManager(c *vim25.Client) *AuthorizationManager { - m := AuthorizationManager{ - Common: NewCommon(c, *c.ServiceContent.AuthorizationManager), - } - - return &m -} - -type AuthorizationRoleList []types.AuthorizationRole - -func (l AuthorizationRoleList) ById(id int32) *types.AuthorizationRole { - for _, role := range l { - if role.RoleId == id { - return &role - } - } - - return nil -} - -func (l AuthorizationRoleList) ByName(name string) *types.AuthorizationRole { - for _, role := range l { - if role.Name == name { - return &role - } - } - - return nil -} - -func (m AuthorizationManager) RoleList(ctx context.Context) (AuthorizationRoleList, error) { - var am mo.AuthorizationManager - - err := m.Properties(ctx, m.Reference(), []string{"roleList"}, &am) - if err != nil { - return nil, err - } - - return AuthorizationRoleList(am.RoleList), nil -} - -func (m AuthorizationManager) RetrieveEntityPermissions(ctx context.Context, entity types.ManagedObjectReference, inherited bool) ([]types.Permission, error) { - req := types.RetrieveEntityPermissions{ - This: m.Reference(), - Entity: entity, - Inherited: inherited, - } - - res, err := methods.RetrieveEntityPermissions(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (m AuthorizationManager) RemoveEntityPermission(ctx context.Context, entity types.ManagedObjectReference, user string, isGroup bool) error { - req := types.RemoveEntityPermission{ - This: m.Reference(), - Entity: entity, - User: user, - IsGroup: isGroup, - } - - _, err := methods.RemoveEntityPermission(ctx, m.Client(), &req) - return err -} - -func (m AuthorizationManager) SetEntityPermissions(ctx context.Context, entity types.ManagedObjectReference, permission []types.Permission) error { - req := types.SetEntityPermissions{ - This: m.Reference(), - Entity: entity, - Permission: permission, - } - - _, err := methods.SetEntityPermissions(ctx, m.Client(), &req) - return err -} - -func (m AuthorizationManager) RetrieveRolePermissions(ctx context.Context, id int32) ([]types.Permission, error) { - req := types.RetrieveRolePermissions{ - This: m.Reference(), - RoleId: id, - } - - res, err := methods.RetrieveRolePermissions(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (m AuthorizationManager) RetrieveAllPermissions(ctx context.Context) ([]types.Permission, error) { - req := types.RetrieveAllPermissions{ - This: m.Reference(), - } - - res, err := methods.RetrieveAllPermissions(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (m AuthorizationManager) AddRole(ctx context.Context, name string, ids []string) (int32, error) { - req := types.AddAuthorizationRole{ - This: m.Reference(), - Name: name, - PrivIds: ids, - } - - res, err := methods.AddAuthorizationRole(ctx, m.Client(), &req) - if err != nil { - return -1, err - } - - return res.Returnval, nil -} - -func (m AuthorizationManager) RemoveRole(ctx context.Context, id int32, failIfUsed bool) error { - req := types.RemoveAuthorizationRole{ - This: m.Reference(), - RoleId: id, - FailIfUsed: failIfUsed, - } - - _, err := methods.RemoveAuthorizationRole(ctx, m.Client(), &req) - return err -} - -func (m AuthorizationManager) UpdateRole(ctx context.Context, id int32, name string, ids []string) error { - req := types.UpdateAuthorizationRole{ - This: m.Reference(), - RoleId: id, - NewName: name, - PrivIds: ids, - } - - _, err := methods.UpdateAuthorizationRole(ctx, m.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager_internal.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager_internal.go deleted file mode 100644 index 4fa520f5..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/authorization_manager_internal.go +++ /dev/null @@ -1,86 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type DisabledMethodRequest struct { - Method string `xml:"method"` - Reason string `xml:"reasonId"` -} - -type disableMethodsRequest struct { - This types.ManagedObjectReference `xml:"_this"` - Entity []types.ManagedObjectReference `xml:"entity"` - Method []DisabledMethodRequest `xml:"method"` - Source string `xml:"sourceId"` - Scope bool `xml:"sessionScope,omitempty"` -} - -type disableMethodsBody struct { - Req *disableMethodsRequest `xml:"urn:internalvim25 DisableMethods,omitempty"` - Res interface{} `xml:"urn:vim25 DisableMethodsResponse,omitempty"` - Err *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *disableMethodsBody) Fault() *soap.Fault { return b.Err } - -func (m AuthorizationManager) DisableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []DisabledMethodRequest, source string) error { - var reqBody, resBody disableMethodsBody - - reqBody.Req = &disableMethodsRequest{ - This: m.Reference(), - Entity: entity, - Method: method, - Source: source, - } - - return m.Client().RoundTrip(ctx, &reqBody, &resBody) -} - -type enableMethodsRequest struct { - This types.ManagedObjectReference `xml:"_this"` - Entity []types.ManagedObjectReference `xml:"entity"` - Method []string `xml:"method"` - Source string `xml:"sourceId"` -} - -type enableMethodsBody struct { - Req *enableMethodsRequest `xml:"urn:internalvim25 EnableMethods,omitempty"` - Res interface{} `xml:"urn:vim25 EnableMethodsResponse,omitempty"` - Err *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *enableMethodsBody) Fault() *soap.Fault { return b.Err } - -func (m AuthorizationManager) EnableMethods(ctx context.Context, entity []types.ManagedObjectReference, method []string, source string) error { - var reqBody, resBody enableMethodsBody - - reqBody.Req = &enableMethodsRequest{ - This: m.Reference(), - Entity: entity, - Method: method, - Source: source, - } - - return m.Client().RoundTrip(ctx, &reqBody, &resBody) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go deleted file mode 100644 index 225f41b6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go +++ /dev/null @@ -1,86 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type ClusterComputeResource struct { - ComputeResource -} - -func NewClusterComputeResource(c *vim25.Client, ref types.ManagedObjectReference) *ClusterComputeResource { - return &ClusterComputeResource{ - ComputeResource: *NewComputeResource(c, ref), - } -} - -func (c ClusterComputeResource) ReconfigureCluster(ctx context.Context, spec types.ClusterConfigSpec) (*Task, error) { - req := types.ReconfigureCluster_Task{ - This: c.Reference(), - Spec: spec, - Modify: true, - } - - res, err := methods.ReconfigureCluster_Task(ctx, c.c, &req) - if err != nil { - return nil, err - } - - return NewTask(c.c, res.Returnval), nil -} - -func (c ClusterComputeResource) AddHost(ctx context.Context, spec types.HostConnectSpec, asConnected bool, license *string, resourcePool *types.ManagedObjectReference) (*Task, error) { - req := types.AddHost_Task{ - This: c.Reference(), - Spec: spec, - AsConnected: asConnected, - } - - if license != nil { - req.License = *license - } - - if resourcePool != nil { - req.ResourcePool = resourcePool - } - - res, err := methods.AddHost_Task(ctx, c.c, &req) - if err != nil { - return nil, err - } - - return NewTask(c.c, res.Returnval), nil -} - -func (c ClusterComputeResource) Destroy(ctx context.Context) (*Task, error) { - req := types.Destroy_Task{ - This: c.Reference(), - } - - res, err := methods.Destroy_Task(ctx, c.c, &req) - if err != nil { - return nil, err - } - - return NewTask(c.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/common.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/common.go deleted file mode 100644 index 8f0a94ff..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/common.go +++ /dev/null @@ -1,120 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "errors" - "fmt" - "path" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var ( - ErrNotSupported = errors.New("product/version specific feature not supported by target") -) - -// Common contains the fields and functions common to all objects. -type Common struct { - InventoryPath string - - c *vim25.Client - r types.ManagedObjectReference -} - -func (c Common) String() string { - ref := fmt.Sprintf("%v", c.Reference()) - - if c.InventoryPath == "" { - return ref - } - - return fmt.Sprintf("%s @ %s", ref, c.InventoryPath) -} - -func NewCommon(c *vim25.Client, r types.ManagedObjectReference) Common { - return Common{c: c, r: r} -} - -func (c Common) Reference() types.ManagedObjectReference { - return c.r -} - -func (c Common) Client() *vim25.Client { - return c.c -} - -// Name returns the base name of the InventoryPath field -func (c Common) Name() string { - if c.InventoryPath == "" { - return "" - } - return path.Base(c.InventoryPath) -} - -func (c *Common) SetInventoryPath(p string) { - c.InventoryPath = p -} - -// ObjectName returns the base name of the InventoryPath field if set, -// otherwise fetches the mo.ManagedEntity.Name field via the property collector. -func (c Common) ObjectName(ctx context.Context) (string, error) { - var o mo.ManagedEntity - - err := c.Properties(ctx, c.Reference(), []string{"name"}, &o) - if err != nil { - return "", err - } - - return o.Name, nil -} - -func (c Common) Properties(ctx context.Context, r types.ManagedObjectReference, ps []string, dst interface{}) error { - return property.DefaultCollector(c.c).RetrieveOne(ctx, r, ps, dst) -} - -func (c Common) Destroy(ctx context.Context) (*Task, error) { - req := types.Destroy_Task{ - This: c.Reference(), - } - - res, err := methods.Destroy_Task(ctx, c.c, &req) - if err != nil { - return nil, err - } - - return NewTask(c.c, res.Returnval), nil -} - -func (c Common) Rename(ctx context.Context, name string) (*Task, error) { - req := types.Rename_Task{ - This: c.Reference(), - NewName: name, - } - - res, err := methods.Rename_Task(ctx, c.c, &req) - if err != nil { - return nil, err - } - - return NewTask(c.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/compute_resource.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/compute_resource.go deleted file mode 100644 index ac1c7301..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/compute_resource.go +++ /dev/null @@ -1,124 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "path" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type ComputeResource struct { - Common -} - -func NewComputeResource(c *vim25.Client, ref types.ManagedObjectReference) *ComputeResource { - return &ComputeResource{ - Common: NewCommon(c, ref), - } -} - -func (c ComputeResource) Hosts(ctx context.Context) ([]*HostSystem, error) { - var cr mo.ComputeResource - - err := c.Properties(ctx, c.Reference(), []string{"host"}, &cr) - if err != nil { - return nil, err - } - - if len(cr.Host) == 0 { - return nil, nil - } - - var hs []mo.HostSystem - pc := property.DefaultCollector(c.Client()) - err = pc.Retrieve(ctx, cr.Host, []string{"name"}, &hs) - if err != nil { - return nil, err - } - - var hosts []*HostSystem - - for _, h := range hs { - host := NewHostSystem(c.Client(), h.Reference()) - host.InventoryPath = path.Join(c.InventoryPath, h.Name) - hosts = append(hosts, host) - } - - return hosts, nil -} - -func (c ComputeResource) Datastores(ctx context.Context) ([]*Datastore, error) { - var cr mo.ComputeResource - - err := c.Properties(ctx, c.Reference(), []string{"datastore"}, &cr) - if err != nil { - return nil, err - } - - var dss []*Datastore - for _, ref := range cr.Datastore { - ds := NewDatastore(c.c, ref) - dss = append(dss, ds) - } - - return dss, nil -} - -func (c ComputeResource) ResourcePool(ctx context.Context) (*ResourcePool, error) { - var cr mo.ComputeResource - - err := c.Properties(ctx, c.Reference(), []string{"resourcePool"}, &cr) - if err != nil { - return nil, err - } - - return NewResourcePool(c.c, *cr.ResourcePool), nil -} - -func (c ComputeResource) Reconfigure(ctx context.Context, spec types.BaseComputeResourceConfigSpec, modify bool) (*Task, error) { - req := types.ReconfigureComputeResource_Task{ - This: c.Reference(), - Spec: spec, - Modify: modify, - } - - res, err := methods.ReconfigureComputeResource_Task(ctx, c.c, &req) - if err != nil { - return nil, err - } - - return NewTask(c.c, res.Returnval), nil -} - -func (c ComputeResource) Destroy(ctx context.Context) (*Task, error) { - req := types.Destroy_Task{ - This: c.Reference(), - } - - res, err := methods.Destroy_Task(ctx, c.c, &req) - if err != nil { - return nil, err - } - - return NewTask(c.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/custom_fields_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/custom_fields_manager.go deleted file mode 100644 index 60b78df2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/custom_fields_manager.go +++ /dev/null @@ -1,135 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "errors" - "strconv" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var ( - ErrKeyNameNotFound = errors.New("key name not found") -) - -type CustomFieldsManager struct { - Common -} - -// GetCustomFieldsManager wraps NewCustomFieldsManager, returning ErrNotSupported -// when the client is not connected to a vCenter instance. -func GetCustomFieldsManager(c *vim25.Client) (*CustomFieldsManager, error) { - if c.ServiceContent.CustomFieldsManager == nil { - return nil, ErrNotSupported - } - return NewCustomFieldsManager(c), nil -} - -func NewCustomFieldsManager(c *vim25.Client) *CustomFieldsManager { - m := CustomFieldsManager{ - Common: NewCommon(c, *c.ServiceContent.CustomFieldsManager), - } - - return &m -} - -func (m CustomFieldsManager) Add(ctx context.Context, name string, moType string, fieldDefPolicy *types.PrivilegePolicyDef, fieldPolicy *types.PrivilegePolicyDef) (*types.CustomFieldDef, error) { - req := types.AddCustomFieldDef{ - This: m.Reference(), - Name: name, - MoType: moType, - FieldDefPolicy: fieldDefPolicy, - FieldPolicy: fieldPolicy, - } - - res, err := methods.AddCustomFieldDef(ctx, m.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -func (m CustomFieldsManager) Remove(ctx context.Context, key int32) error { - req := types.RemoveCustomFieldDef{ - This: m.Reference(), - Key: key, - } - - _, err := methods.RemoveCustomFieldDef(ctx, m.c, &req) - return err -} - -func (m CustomFieldsManager) Rename(ctx context.Context, key int32, name string) error { - req := types.RenameCustomFieldDef{ - This: m.Reference(), - Key: key, - Name: name, - } - - _, err := methods.RenameCustomFieldDef(ctx, m.c, &req) - return err -} - -func (m CustomFieldsManager) Set(ctx context.Context, entity types.ManagedObjectReference, key int32, value string) error { - req := types.SetField{ - This: m.Reference(), - Entity: entity, - Key: key, - Value: value, - } - - _, err := methods.SetField(ctx, m.c, &req) - return err -} - -func (m CustomFieldsManager) Field(ctx context.Context) ([]types.CustomFieldDef, error) { - var fm mo.CustomFieldsManager - - err := m.Properties(ctx, m.Reference(), []string{"field"}, &fm) - if err != nil { - return nil, err - } - - return fm.Field, nil -} - -func (m CustomFieldsManager) FindKey(ctx context.Context, key string) (int32, error) { - field, err := m.Field(ctx) - if err != nil { - return -1, err - } - - for _, def := range field { - if def.Name == key { - return def.Key, nil - } - } - - k, err := strconv.Atoi(key) - if err == nil { - // assume literal int key - return int32(k), nil - } - - return -1, ErrKeyNameNotFound -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go deleted file mode 100644 index cb8b965d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go +++ /dev/null @@ -1,166 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type CustomizationSpecManager struct { - Common -} - -func NewCustomizationSpecManager(c *vim25.Client) *CustomizationSpecManager { - cs := CustomizationSpecManager{ - Common: NewCommon(c, *c.ServiceContent.CustomizationSpecManager), - } - - return &cs -} - -func (cs CustomizationSpecManager) DoesCustomizationSpecExist(ctx context.Context, name string) (bool, error) { - req := types.DoesCustomizationSpecExist{ - This: cs.Reference(), - Name: name, - } - - res, err := methods.DoesCustomizationSpecExist(ctx, cs.c, &req) - - if err != nil { - return false, err - } - - return res.Returnval, nil -} - -func (cs CustomizationSpecManager) GetCustomizationSpec(ctx context.Context, name string) (*types.CustomizationSpecItem, error) { - req := types.GetCustomizationSpec{ - This: cs.Reference(), - Name: name, - } - - res, err := methods.GetCustomizationSpec(ctx, cs.c, &req) - - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -func (cs CustomizationSpecManager) CreateCustomizationSpec(ctx context.Context, item types.CustomizationSpecItem) error { - req := types.CreateCustomizationSpec{ - This: cs.Reference(), - Item: item, - } - - _, err := methods.CreateCustomizationSpec(ctx, cs.c, &req) - if err != nil { - return err - } - - return nil -} - -func (cs CustomizationSpecManager) OverwriteCustomizationSpec(ctx context.Context, item types.CustomizationSpecItem) error { - req := types.OverwriteCustomizationSpec{ - This: cs.Reference(), - Item: item, - } - - _, err := methods.OverwriteCustomizationSpec(ctx, cs.c, &req) - if err != nil { - return err - } - - return nil -} - -func (cs CustomizationSpecManager) DeleteCustomizationSpec(ctx context.Context, name string) error { - req := types.DeleteCustomizationSpec{ - This: cs.Reference(), - Name: name, - } - - _, err := methods.DeleteCustomizationSpec(ctx, cs.c, &req) - if err != nil { - return err - } - - return nil -} - -func (cs CustomizationSpecManager) DuplicateCustomizationSpec(ctx context.Context, name string, newName string) error { - req := types.DuplicateCustomizationSpec{ - This: cs.Reference(), - Name: name, - NewName: newName, - } - - _, err := methods.DuplicateCustomizationSpec(ctx, cs.c, &req) - if err != nil { - return err - } - - return nil -} - -func (cs CustomizationSpecManager) RenameCustomizationSpec(ctx context.Context, name string, newName string) error { - req := types.RenameCustomizationSpec{ - This: cs.Reference(), - Name: name, - NewName: newName, - } - - _, err := methods.RenameCustomizationSpec(ctx, cs.c, &req) - if err != nil { - return err - } - - return nil -} - -func (cs CustomizationSpecManager) CustomizationSpecItemToXml(ctx context.Context, item types.CustomizationSpecItem) (string, error) { - req := types.CustomizationSpecItemToXml{ - This: cs.Reference(), - Item: item, - } - - res, err := methods.CustomizationSpecItemToXml(ctx, cs.c, &req) - if err != nil { - return "", err - } - - return res.Returnval, nil -} - -func (cs CustomizationSpecManager) XmlToCustomizationSpecItem(ctx context.Context, xml string) (*types.CustomizationSpecItem, error) { - req := types.XmlToCustomizationSpecItem{ - This: cs.Reference(), - SpecItemXml: xml, - } - - res, err := methods.XmlToCustomizationSpecItem(ctx, cs.c, &req) - if err != nil { - return nil, err - } - return &res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datacenter.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datacenter.go deleted file mode 100644 index adddc5ff..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datacenter.go +++ /dev/null @@ -1,90 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "fmt" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type DatacenterFolders struct { - VmFolder *Folder - HostFolder *Folder - DatastoreFolder *Folder - NetworkFolder *Folder -} - -type Datacenter struct { - Common -} - -func NewDatacenter(c *vim25.Client, ref types.ManagedObjectReference) *Datacenter { - return &Datacenter{ - Common: NewCommon(c, ref), - } -} - -func (d *Datacenter) Folders(ctx context.Context) (*DatacenterFolders, error) { - var md mo.Datacenter - - ps := []string{"name", "vmFolder", "hostFolder", "datastoreFolder", "networkFolder"} - err := d.Properties(ctx, d.Reference(), ps, &md) - if err != nil { - return nil, err - } - - df := &DatacenterFolders{ - VmFolder: NewFolder(d.c, md.VmFolder), - HostFolder: NewFolder(d.c, md.HostFolder), - DatastoreFolder: NewFolder(d.c, md.DatastoreFolder), - NetworkFolder: NewFolder(d.c, md.NetworkFolder), - } - - paths := []struct { - name string - path *string - }{ - {"vm", &df.VmFolder.InventoryPath}, - {"host", &df.HostFolder.InventoryPath}, - {"datastore", &df.DatastoreFolder.InventoryPath}, - {"network", &df.NetworkFolder.InventoryPath}, - } - - for _, p := range paths { - *p.path = fmt.Sprintf("/%s/%s", md.Name, p.name) - } - - return df, nil -} - -func (d Datacenter) Destroy(ctx context.Context) (*Task, error) { - req := types.Destroy_Task{ - This: d.Reference(), - } - - res, err := methods.Destroy_Task(ctx, d.c, &req) - if err != nil { - return nil, err - } - - return NewTask(d.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore.go deleted file mode 100644 index fc696cdf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore.go +++ /dev/null @@ -1,438 +0,0 @@ -/* -Copyright (c) 2015-2016 VMware, 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 object - -import ( - "fmt" - "io" - "math/rand" - "os" - "path" - "strings" - - "context" - "net/http" - "net/url" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/session" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -// DatastoreNoSuchDirectoryError is returned when a directory could not be found. -type DatastoreNoSuchDirectoryError struct { - verb string - subject string -} - -func (e DatastoreNoSuchDirectoryError) Error() string { - return fmt.Sprintf("cannot %s '%s': No such directory", e.verb, e.subject) -} - -// DatastoreNoSuchFileError is returned when a file could not be found. -type DatastoreNoSuchFileError struct { - verb string - subject string -} - -func (e DatastoreNoSuchFileError) Error() string { - return fmt.Sprintf("cannot %s '%s': No such file", e.verb, e.subject) -} - -type Datastore struct { - Common - - DatacenterPath string -} - -func NewDatastore(c *vim25.Client, ref types.ManagedObjectReference) *Datastore { - return &Datastore{ - Common: NewCommon(c, ref), - } -} - -func (d Datastore) Path(path string) string { - return (&DatastorePath{ - Datastore: d.Name(), - Path: path, - }).String() -} - -// NewURL constructs a url.URL with the given file path for datastore access over HTTP. -func (d Datastore) NewURL(path string) *url.URL { - u := d.c.URL() - - return &url.URL{ - Scheme: u.Scheme, - Host: u.Host, - Path: fmt.Sprintf("/folder/%s", path), - RawQuery: url.Values{ - "dcPath": []string{d.DatacenterPath}, - "dsName": []string{d.Name()}, - }.Encode(), - } -} - -// URL is deprecated, use NewURL instead. -func (d Datastore) URL(ctx context.Context, dc *Datacenter, path string) (*url.URL, error) { - return d.NewURL(path), nil -} - -func (d Datastore) Browser(ctx context.Context) (*HostDatastoreBrowser, error) { - var do mo.Datastore - - err := d.Properties(ctx, d.Reference(), []string{"browser"}, &do) - if err != nil { - return nil, err - } - - return NewHostDatastoreBrowser(d.c, do.Browser), nil -} - -func (d Datastore) useServiceTicket() bool { - // If connected to workstation, service ticketing not supported - // If connected to ESX, service ticketing not needed - if !d.c.IsVC() { - return false - } - - key := "GOVMOMI_USE_SERVICE_TICKET" - - val := d.c.URL().Query().Get(key) - if val == "" { - val = os.Getenv(key) - } - - if val == "1" || val == "true" { - return true - } - - return false -} - -func (d Datastore) useServiceTicketHostName(name string) bool { - // No need if talking directly to ESX. - if !d.c.IsVC() { - return false - } - - // If version happens to be < 5.1 - if name == "" { - return false - } - - // If the HostSystem is using DHCP on a network without dynamic DNS, - // HostSystem.Config.Network.DnsConfig.HostName is set to "localhost" by default. - // This resolves to "localhost.localdomain" by default via /etc/hosts on ESX. - // In that case, we will stick with the HostSystem.Name which is the IP address that - // was used to connect the host to VC. - if name == "localhost.localdomain" { - return false - } - - // Still possible to have HostName that don't resolve via DNS, - // so we default to false. - key := "GOVMOMI_USE_SERVICE_TICKET_HOSTNAME" - - val := d.c.URL().Query().Get(key) - if val == "" { - val = os.Getenv(key) - } - - if val == "1" || val == "true" { - return true - } - - return false -} - -type datastoreServiceTicketHostKey struct{} - -// HostContext returns a Context where the given host will be used for datastore HTTP access -// via the ServiceTicket method. -func (d Datastore) HostContext(ctx context.Context, host *HostSystem) context.Context { - return context.WithValue(ctx, datastoreServiceTicketHostKey{}, host) -} - -// ServiceTicket obtains a ticket via AcquireGenericServiceTicket and returns it an http.Cookie with the url.URL -// that can be used along with the ticket cookie to access the given path. An host is chosen at random unless the -// the given Context was created with a specific host via the HostContext method. -func (d Datastore) ServiceTicket(ctx context.Context, path string, method string) (*url.URL, *http.Cookie, error) { - u := d.NewURL(path) - - host, ok := ctx.Value(datastoreServiceTicketHostKey{}).(*HostSystem) - - if !ok { - if !d.useServiceTicket() { - return u, nil, nil - } - - hosts, err := d.AttachedHosts(ctx) - if err != nil { - return nil, nil, err - } - - if len(hosts) == 0 { - // Fallback to letting vCenter choose a host - return u, nil, nil - } - - // Pick a random attached host - host = hosts[rand.Intn(len(hosts))] - } - - ips, err := host.ManagementIPs(ctx) - if err != nil { - return nil, nil, err - } - - if len(ips) > 0 { - // prefer a ManagementIP - u.Host = ips[0].String() - } else { - // fallback to inventory name - u.Host, err = host.ObjectName(ctx) - if err != nil { - return nil, nil, err - } - } - - // VC datacenter path will not be valid against ESX - q := u.Query() - delete(q, "dcPath") - u.RawQuery = q.Encode() - - spec := types.SessionManagerHttpServiceRequestSpec{ - Url: u.String(), - // See SessionManagerHttpServiceRequestSpecMethod enum - Method: fmt.Sprintf("http%s%s", method[0:1], strings.ToLower(method[1:])), - } - - sm := session.NewManager(d.Client()) - - ticket, err := sm.AcquireGenericServiceTicket(ctx, &spec) - if err != nil { - return nil, nil, err - } - - cookie := &http.Cookie{ - Name: "vmware_cgi_ticket", - Value: ticket.Id, - } - - if d.useServiceTicketHostName(ticket.HostName) { - u.Host = ticket.HostName - } - - d.Client().SetThumbprint(u.Host, ticket.SslThumbprint) - - return u, cookie, nil -} - -func (d Datastore) uploadTicket(ctx context.Context, path string, param *soap.Upload) (*url.URL, *soap.Upload, error) { - p := soap.DefaultUpload - if param != nil { - p = *param // copy - } - - u, ticket, err := d.ServiceTicket(ctx, path, p.Method) - if err != nil { - return nil, nil, err - } - - p.Ticket = ticket - - return u, &p, nil -} - -func (d Datastore) downloadTicket(ctx context.Context, path string, param *soap.Download) (*url.URL, *soap.Download, error) { - p := soap.DefaultDownload - if param != nil { - p = *param // copy - } - - u, ticket, err := d.ServiceTicket(ctx, path, p.Method) - if err != nil { - return nil, nil, err - } - - p.Ticket = ticket - - return u, &p, nil -} - -// Upload via soap.Upload with an http service ticket -func (d Datastore) Upload(ctx context.Context, f io.Reader, path string, param *soap.Upload) error { - u, p, err := d.uploadTicket(ctx, path, param) - if err != nil { - return err - } - return d.Client().Upload(f, u, p) -} - -// UploadFile via soap.Upload with an http service ticket -func (d Datastore) UploadFile(ctx context.Context, file string, path string, param *soap.Upload) error { - u, p, err := d.uploadTicket(ctx, path, param) - if err != nil { - return err - } - return d.Client().UploadFile(file, u, p) -} - -// Download via soap.Download with an http service ticket -func (d Datastore) Download(ctx context.Context, path string, param *soap.Download) (io.ReadCloser, int64, error) { - u, p, err := d.downloadTicket(ctx, path, param) - if err != nil { - return nil, 0, err - } - return d.Client().Download(u, p) -} - -// DownloadFile via soap.Download with an http service ticket -func (d Datastore) DownloadFile(ctx context.Context, path string, file string, param *soap.Download) error { - u, p, err := d.downloadTicket(ctx, path, param) - if err != nil { - return err - } - return d.Client().DownloadFile(file, u, p) -} - -// AttachedHosts returns hosts that have this Datastore attached, accessible and writable. -func (d Datastore) AttachedHosts(ctx context.Context) ([]*HostSystem, error) { - var ds mo.Datastore - var hosts []*HostSystem - - pc := property.DefaultCollector(d.Client()) - err := pc.RetrieveOne(ctx, d.Reference(), []string{"host"}, &ds) - if err != nil { - return nil, err - } - - mounts := make(map[types.ManagedObjectReference]types.DatastoreHostMount) - var refs []types.ManagedObjectReference - for _, host := range ds.Host { - refs = append(refs, host.Key) - mounts[host.Key] = host - } - - var hs []mo.HostSystem - err = pc.Retrieve(ctx, refs, []string{"runtime.connectionState", "runtime.powerState"}, &hs) - if err != nil { - return nil, err - } - - for _, host := range hs { - if host.Runtime.ConnectionState == types.HostSystemConnectionStateConnected && - host.Runtime.PowerState == types.HostSystemPowerStatePoweredOn { - - mount := mounts[host.Reference()] - info := mount.MountInfo - - if *info.Mounted && *info.Accessible && info.AccessMode == string(types.HostMountModeReadWrite) { - hosts = append(hosts, NewHostSystem(d.Client(), mount.Key)) - } - } - } - - return hosts, nil -} - -// AttachedClusterHosts returns hosts that have this Datastore attached, accessible and writable and are members of the given cluster. -func (d Datastore) AttachedClusterHosts(ctx context.Context, cluster *ComputeResource) ([]*HostSystem, error) { - var hosts []*HostSystem - - clusterHosts, err := cluster.Hosts(ctx) - if err != nil { - return nil, err - } - - attachedHosts, err := d.AttachedHosts(ctx) - if err != nil { - return nil, err - } - - refs := make(map[types.ManagedObjectReference]bool) - for _, host := range attachedHosts { - refs[host.Reference()] = true - } - - for _, host := range clusterHosts { - if refs[host.Reference()] { - hosts = append(hosts, host) - } - } - - return hosts, nil -} - -func (d Datastore) Stat(ctx context.Context, file string) (types.BaseFileInfo, error) { - b, err := d.Browser(ctx) - if err != nil { - return nil, err - } - - spec := types.HostDatastoreBrowserSearchSpec{ - Details: &types.FileQueryFlags{ - FileType: true, - FileSize: true, - Modification: true, - FileOwner: types.NewBool(true), - }, - MatchPattern: []string{path.Base(file)}, - } - - dsPath := d.Path(path.Dir(file)) - task, err := b.SearchDatastore(ctx, dsPath, &spec) - if err != nil { - return nil, err - } - - info, err := task.WaitForResult(ctx, nil) - if err != nil { - if info == nil || info.Error != nil { - _, ok := info.Error.Fault.(*types.FileNotFound) - if ok { - // FileNotFound means the base path doesn't exist. - return nil, DatastoreNoSuchDirectoryError{"stat", dsPath} - } - } - - return nil, err - } - - res := info.Result.(types.HostDatastoreBrowserSearchResults) - if len(res.File) == 0 { - // File doesn't exist - return nil, DatastoreNoSuchFileError{"stat", d.Path(file)} - } - - return res.File[0], nil - -} - -// Type returns the type of file system volume. -func (d Datastore) Type(ctx context.Context) (types.HostFileSystemVolumeFileSystemType, error) { - var mds mo.Datastore - - if err := d.Properties(ctx, d.Reference(), []string{"summary.type"}, &mds); err != nil { - return types.HostFileSystemVolumeFileSystemType(""), err - } - return types.HostFileSystemVolumeFileSystemType(mds.Summary.Type), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file.go deleted file mode 100644 index a73990f1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file.go +++ /dev/null @@ -1,414 +0,0 @@ -/* -Copyright (c) 2016-2017 VMware, 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 object - -import ( - "bytes" - "context" - "errors" - "fmt" - "io" - "net/http" - "os" - "path" - "sync" - "time" - - "github.com/vmware/govmomi/vim25/soap" -) - -// DatastoreFile implements io.Reader, io.Seeker and io.Closer interfaces for datastore file access. -type DatastoreFile struct { - d Datastore - ctx context.Context - name string - - buf io.Reader - body io.ReadCloser - length int64 - offset struct { - read, seek int64 - } -} - -// Open opens the named file relative to the Datastore. -func (d Datastore) Open(ctx context.Context, name string) (*DatastoreFile, error) { - return &DatastoreFile{ - d: d, - name: name, - length: -1, - ctx: ctx, - }, nil -} - -// Read reads up to len(b) bytes from the DatastoreFile. -func (f *DatastoreFile) Read(b []byte) (int, error) { - if f.offset.read != f.offset.seek { - // A Seek() call changed the offset, we need to issue a new GET - _ = f.Close() - - f.offset.read = f.offset.seek - } else if f.buf != nil { - // f.buf + f behaves like an io.MultiReader - n, err := f.buf.Read(b) - if err == io.EOF { - f.buf = nil // buffer has been drained - } - if n > 0 { - return n, nil - } - } - - body, err := f.get() - if err != nil { - return 0, err - } - - n, err := body.Read(b) - - f.offset.read += int64(n) - f.offset.seek += int64(n) - - return n, err -} - -// Close closes the DatastoreFile. -func (f *DatastoreFile) Close() error { - var err error - - if f.body != nil { - err = f.body.Close() - f.body = nil - } - - f.buf = nil - - return err -} - -// Seek sets the offset for the next Read on the DatastoreFile. -func (f *DatastoreFile) Seek(offset int64, whence int) (int64, error) { - switch whence { - case io.SeekStart: - case io.SeekCurrent: - offset += f.offset.seek - case io.SeekEnd: - if f.length < 0 { - _, err := f.Stat() - if err != nil { - return 0, err - } - } - offset += f.length - default: - return 0, errors.New("Seek: invalid whence") - } - - // allow negative SeekStart for initial Range request - if offset < 0 { - return 0, errors.New("Seek: invalid offset") - } - - f.offset.seek = offset - - return offset, nil -} - -type fileStat struct { - file *DatastoreFile - header http.Header -} - -func (s *fileStat) Name() string { - return path.Base(s.file.name) -} - -func (s *fileStat) Size() int64 { - return s.file.length -} - -func (s *fileStat) Mode() os.FileMode { - return 0 -} - -func (s *fileStat) ModTime() time.Time { - return time.Now() // no Last-Modified -} - -func (s *fileStat) IsDir() bool { - return false -} - -func (s *fileStat) Sys() interface{} { - return s.header -} - -func statusError(res *http.Response) error { - if res.StatusCode == http.StatusNotFound { - return os.ErrNotExist - } - return errors.New(res.Status) -} - -// Stat returns the os.FileInfo interface describing file. -func (f *DatastoreFile) Stat() (os.FileInfo, error) { - // TODO: consider using Datastore.Stat() instead - u, p, err := f.d.downloadTicket(f.ctx, f.name, &soap.Download{Method: "HEAD"}) - if err != nil { - return nil, err - } - - res, err := f.d.Client().DownloadRequest(u, p) - if err != nil { - return nil, err - } - - if res.StatusCode != http.StatusOK { - return nil, statusError(res) - } - - f.length = res.ContentLength - - return &fileStat{f, res.Header}, nil -} - -func (f *DatastoreFile) get() (io.Reader, error) { - if f.body != nil { - return f.body, nil - } - - u, p, err := f.d.downloadTicket(f.ctx, f.name, nil) - if err != nil { - return nil, err - } - - if f.offset.read != 0 { - p.Headers = map[string]string{ - "Range": fmt.Sprintf("bytes=%d-", f.offset.read), - } - } - - res, err := f.d.Client().DownloadRequest(u, p) - if err != nil { - return nil, err - } - - switch res.StatusCode { - case http.StatusOK: - f.length = res.ContentLength - case http.StatusPartialContent: - var start, end int - cr := res.Header.Get("Content-Range") - _, err = fmt.Sscanf(cr, "bytes %d-%d/%d", &start, &end, &f.length) - if err != nil { - f.length = -1 - } - case http.StatusRequestedRangeNotSatisfiable: - // ok: Read() will return io.EOF - default: - return nil, statusError(res) - } - - if f.length < 0 { - _ = res.Body.Close() - return nil, errors.New("unable to determine file size") - } - - f.body = res.Body - - return f.body, nil -} - -func lastIndexLines(s []byte, line *int, include func(l int, m string) bool) (int64, bool) { - i := len(s) - 1 - done := false - - for i > 0 { - o := bytes.LastIndexByte(s[:i], '\n') - if o < 0 { - break - } - - msg := string(s[o+1 : i+1]) - if !include(*line, msg) { - done = true - break - } else { - i = o - *line++ - } - } - - return int64(i), done -} - -// Tail seeks to the position of the last N lines of the file. -func (f *DatastoreFile) Tail(n int) error { - return f.TailFunc(n, func(line int, _ string) bool { return n > line }) -} - -// TailFunc will seek backwards in the datastore file until it hits a line that does -// not satisfy the supplied `include` function. -func (f *DatastoreFile) TailFunc(lines int, include func(line int, message string) bool) error { - // Read the file in reverse using bsize chunks - const bsize = int64(1024 * 16) - - fsize, err := f.Seek(0, io.SeekEnd) - if err != nil { - return err - } - - if lines == 0 { - return nil - } - - chunk := int64(-1) - - buf := bytes.NewBuffer(make([]byte, 0, bsize)) - line := 0 - - for { - var eof bool - var pos int64 - - nread := bsize - - offset := chunk * bsize - remain := fsize + offset - - if remain < 0 { - if pos, err = f.Seek(0, io.SeekStart); err != nil { - return err - } - - nread = bsize + remain - eof = true - } else { - if pos, err = f.Seek(offset, io.SeekEnd); err != nil { - return err - } - } - - if _, err = io.CopyN(buf, f, nread); err != nil { - if err != io.EOF { - return err - } - } - - b := buf.Bytes() - idx, done := lastIndexLines(b, &line, include) - - if done { - if chunk == -1 { - // We found all N lines in the last chunk of the file. - // The seek offset is also now at the current end of file. - // Save this buffer to avoid another GET request when Read() is called. - buf.Next(int(idx + 1)) - f.buf = buf - return nil - } - - if _, err = f.Seek(pos+idx+1, io.SeekStart); err != nil { - return err - } - - break - } - - if eof { - if remain < 0 { - // We found < N lines in the entire file, so seek to the start. - _, _ = f.Seek(0, io.SeekStart) - } - break - } - - chunk-- - buf.Reset() - } - - return nil -} - -type followDatastoreFile struct { - r *DatastoreFile - c chan struct{} - i time.Duration - o sync.Once -} - -// Read reads up to len(b) bytes from the DatastoreFile being followed. -// This method will block until data is read, an error other than io.EOF is returned or Close() is called. -func (f *followDatastoreFile) Read(p []byte) (int, error) { - offset := f.r.offset.seek - stop := false - - for { - n, err := f.r.Read(p) - if err != nil && err == io.EOF { - _ = f.r.Close() // GET request body has been drained. - if stop { - return n, err - } - err = nil - } - - if n > 0 { - return n, err - } - - select { - case <-f.c: - // Wake up and stop polling once the body has been drained - stop = true - case <-time.After(f.i): - } - - info, serr := f.r.Stat() - if serr != nil { - // Return EOF rather than 404 if the file goes away - if serr == os.ErrNotExist { - _ = f.r.Close() - return 0, io.EOF - } - return 0, serr - } - - if info.Size() < offset { - // assume file has be truncated - offset, err = f.r.Seek(0, io.SeekStart) - if err != nil { - return 0, err - } - } - } -} - -// Close will stop Follow polling and close the underlying DatastoreFile. -func (f *followDatastoreFile) Close() error { - f.o.Do(func() { close(f.c) }) - return nil -} - -// Follow returns an io.ReadCloser to stream the file contents as data is appended. -func (f *DatastoreFile) Follow(interval time.Duration) io.ReadCloser { - return &followDatastoreFile{ - r: f, - c: make(chan struct{}), - i: interval, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go deleted file mode 100644 index e4843680..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go +++ /dev/null @@ -1,164 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 object - -import ( - "bufio" - "bytes" - "context" - "fmt" - "io" - "log" - "path" - "strings" - - "github.com/vmware/govmomi/vim25/soap" -) - -// DatastoreFileManager combines FileManager and VirtualDiskManager to manage files on a Datastore -type DatastoreFileManager struct { - Datacenter *Datacenter - Datastore *Datastore - FileManager *FileManager - VirtualDiskManager *VirtualDiskManager - - Force bool -} - -// NewFileManager creates a new instance of DatastoreFileManager -func (d Datastore) NewFileManager(dc *Datacenter, force bool) *DatastoreFileManager { - c := d.Client() - - m := &DatastoreFileManager{ - Datacenter: dc, - Datastore: &d, - FileManager: NewFileManager(c), - VirtualDiskManager: NewVirtualDiskManager(c), - Force: force, - } - - return m -} - -// Delete dispatches to the appropriate Delete method based on file name extension -func (m *DatastoreFileManager) Delete(ctx context.Context, name string) error { - switch path.Ext(name) { - case ".vmdk": - return m.DeleteVirtualDisk(ctx, name) - default: - return m.DeleteFile(ctx, name) - } -} - -// DeleteFile calls FileManager.DeleteDatastoreFile -func (m *DatastoreFileManager) DeleteFile(ctx context.Context, name string) error { - p := m.Path(name) - - task, err := m.FileManager.DeleteDatastoreFile(ctx, p.String(), m.Datacenter) - if err != nil { - return err - } - - return task.Wait(ctx) -} - -// DeleteVirtualDisk calls VirtualDiskManager.DeleteVirtualDisk -// Regardless of the Datastore type, DeleteVirtualDisk will fail if 'ddb.deletable=false', -// so if Force=true this method attempts to set 'ddb.deletable=true' before starting the delete task. -func (m *DatastoreFileManager) DeleteVirtualDisk(ctx context.Context, name string) error { - p := m.Path(name) - - var merr error - - if m.Force { - merr = m.markDiskAsDeletable(ctx, p) - } - - task, err := m.VirtualDiskManager.DeleteVirtualDisk(ctx, p.String(), m.Datacenter) - if err != nil { - log.Printf("markDiskAsDeletable(%s): %s", p, merr) - return err - } - - return task.Wait(ctx) -} - -// Move dispatches to the appropriate Move method based on file name extension -func (m *DatastoreFileManager) Move(ctx context.Context, src string, dst string) error { - srcp := m.Path(src) - dstp := m.Path(dst) - - f := m.FileManager.MoveDatastoreFile - - if srcp.IsVMDK() { - f = m.VirtualDiskManager.MoveVirtualDisk - } - - task, err := f(ctx, srcp.String(), m.Datacenter, dstp.String(), m.Datacenter, m.Force) - if err != nil { - return err - } - - return task.Wait(ctx) -} - -// Path converts path name to a DatastorePath -func (m *DatastoreFileManager) Path(name string) *DatastorePath { - var p DatastorePath - - if !p.FromString(name) { - p.Path = name - p.Datastore = m.Datastore.Name() - } - - return &p -} - -func (m *DatastoreFileManager) markDiskAsDeletable(ctx context.Context, path *DatastorePath) error { - r, _, err := m.Datastore.Download(ctx, path.Path, &soap.DefaultDownload) - if err != nil { - return err - } - - defer r.Close() - - hasFlag := false - buf := new(bytes.Buffer) - - s := bufio.NewScanner(&io.LimitedReader{R: r, N: 2048}) // should be only a few hundred bytes, limit to be sure - - for s.Scan() { - line := s.Text() - if strings.HasPrefix(line, "ddb.deletable") { - hasFlag = true - continue - } - - fmt.Fprintln(buf, line) - } - - if err := s.Err(); err != nil { - return err // any error other than EOF - } - - if !hasFlag { - return nil // already deletable, so leave as-is - } - - // rewrite the .vmdk with ddb.deletable flag removed (the default is true) - return m.Datastore.Upload(ctx, buf, path.Path, &soap.DefaultUpload) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_path.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_path.go deleted file mode 100644 index 1563ee1e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/datastore_path.go +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 object - -import ( - "fmt" - "path" - "strings" -) - -// DatastorePath contains the components of a datastore path. -type DatastorePath struct { - Datastore string - Path string -} - -// FromString parses a datastore path. -// Returns true if the path could be parsed, false otherwise. -func (p *DatastorePath) FromString(s string) bool { - if len(s) == 0 { - return false - } - - s = strings.TrimSpace(s) - - if !strings.HasPrefix(s, "[") { - return false - } - - s = s[1:] - - ix := strings.Index(s, "]") - if ix < 0 { - return false - } - - p.Datastore = s[:ix] - p.Path = strings.TrimSpace(s[ix+1:]) - - return true -} - -// String formats a datastore path. -func (p *DatastorePath) String() string { - s := fmt.Sprintf("[%s]", p.Datastore) - - if p.Path == "" { - return s - } - - return strings.Join([]string{s, p.Path}, " ") -} - -// IsVMDK returns true if Path has a ".vmdk" extension -func (p *DatastorePath) IsVMDK() bool { - return path.Ext(p.Path) == ".vmdk" -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/diagnostic_log.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/diagnostic_log.go deleted file mode 100644 index 466d0ee9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/diagnostic_log.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "fmt" - "io" - "math" -) - -// DiagnosticLog wraps DiagnosticManager.BrowseLog -type DiagnosticLog struct { - m DiagnosticManager - - Key string - Host *HostSystem - - Start int32 -} - -// Seek to log position starting at the last nlines of the log -func (l *DiagnosticLog) Seek(ctx context.Context, nlines int32) error { - h, err := l.m.BrowseLog(ctx, l.Host, l.Key, math.MaxInt32, 0) - if err != nil { - return err - } - - l.Start = h.LineEnd - nlines - - return nil -} - -// Copy log starting from l.Start to the given io.Writer -// Returns on error or when end of log is reached. -func (l *DiagnosticLog) Copy(ctx context.Context, w io.Writer) (int, error) { - const max = 500 // VC max == 500, ESX max == 1000 - written := 0 - - for { - h, err := l.m.BrowseLog(ctx, l.Host, l.Key, l.Start, max) - if err != nil { - return 0, err - } - - for _, line := range h.LineText { - n, err := fmt.Fprintln(w, line) - written += n - if err != nil { - return written, err - } - } - - l.Start += int32(len(h.LineText)) - - if l.Start >= h.LineEnd { - break - } - } - - return written, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go deleted file mode 100644 index 5baf1ad9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go +++ /dev/null @@ -1,104 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type DiagnosticManager struct { - Common -} - -func NewDiagnosticManager(c *vim25.Client) *DiagnosticManager { - m := DiagnosticManager{ - Common: NewCommon(c, *c.ServiceContent.DiagnosticManager), - } - - return &m -} - -func (m DiagnosticManager) Log(ctx context.Context, host *HostSystem, key string) *DiagnosticLog { - return &DiagnosticLog{ - m: m, - Key: key, - Host: host, - } -} - -func (m DiagnosticManager) BrowseLog(ctx context.Context, host *HostSystem, key string, start, lines int32) (*types.DiagnosticManagerLogHeader, error) { - req := types.BrowseDiagnosticLog{ - This: m.Reference(), - Key: key, - Start: start, - Lines: lines, - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - res, err := methods.BrowseDiagnosticLog(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -func (m DiagnosticManager) GenerateLogBundles(ctx context.Context, includeDefault bool, host []*HostSystem) (*Task, error) { - req := types.GenerateLogBundles_Task{ - This: m.Reference(), - IncludeDefault: includeDefault, - } - - if host != nil { - for _, h := range host { - req.Host = append(req.Host, h.Reference()) - } - } - - res, err := methods.GenerateLogBundles_Task(ctx, m.c, &req) - if err != nil { - return nil, err - } - - return NewTask(m.c, res.Returnval), nil -} - -func (m DiagnosticManager) QueryDescriptions(ctx context.Context, host *HostSystem) ([]types.DiagnosticManagerLogDescriptor, error) { - req := types.QueryDescriptions{ - This: m.Reference(), - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - res, err := methods.QueryDescriptions(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go deleted file mode 100644 index 864bb783..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type DistributedVirtualPortgroup struct { - Common -} - -func NewDistributedVirtualPortgroup(c *vim25.Client, ref types.ManagedObjectReference) *DistributedVirtualPortgroup { - return &DistributedVirtualPortgroup{ - Common: NewCommon(c, ref), - } -} - -// EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this DistributedVirtualPortgroup -func (p DistributedVirtualPortgroup) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - var dvp mo.DistributedVirtualPortgroup - var dvs mo.VmwareDistributedVirtualSwitch // TODO: should be mo.BaseDistributedVirtualSwitch - - if err := p.Properties(ctx, p.Reference(), []string{"key", "config.distributedVirtualSwitch"}, &dvp); err != nil { - return nil, err - } - - if err := p.Properties(ctx, *dvp.Config.DistributedVirtualSwitch, []string{"uuid"}, &dvs); err != nil { - return nil, err - } - - backing := &types.VirtualEthernetCardDistributedVirtualPortBackingInfo{ - Port: types.DistributedVirtualSwitchPortConnection{ - PortgroupKey: dvp.Key, - SwitchUuid: dvs.Uuid, - }, - } - - return backing, nil -} - -func (p DistributedVirtualPortgroup) Reconfigure(ctx context.Context, spec types.DVPortgroupConfigSpec) (*Task, error) { - req := types.ReconfigureDVPortgroup_Task{ - This: p.Reference(), - Spec: spec, - } - - res, err := methods.ReconfigureDVPortgroup_Task(ctx, p.Client(), &req) - if err != nil { - return nil, err - } - - return NewTask(p.Client(), res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go deleted file mode 100644 index 29ee52d9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type DistributedVirtualSwitch struct { - Common -} - -func NewDistributedVirtualSwitch(c *vim25.Client, ref types.ManagedObjectReference) *DistributedVirtualSwitch { - return &DistributedVirtualSwitch{ - Common: NewCommon(c, ref), - } -} - -func (s DistributedVirtualSwitch) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - return nil, ErrNotSupported // TODO: just to satisfy NetworkReference interface for the finder -} - -func (s DistributedVirtualSwitch) Reconfigure(ctx context.Context, spec types.BaseDVSConfigSpec) (*Task, error) { - req := types.ReconfigureDvs_Task{ - This: s.Reference(), - Spec: spec, - } - - res, err := methods.ReconfigureDvs_Task(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return NewTask(s.Client(), res.Returnval), nil -} - -func (s DistributedVirtualSwitch) AddPortgroup(ctx context.Context, spec []types.DVPortgroupConfigSpec) (*Task, error) { - req := types.AddDVPortgroup_Task{ - This: s.Reference(), - Spec: spec, - } - - res, err := methods.AddDVPortgroup_Task(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return NewTask(s.Client(), res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/extension_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/extension_manager.go deleted file mode 100644 index 94ade017..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/extension_manager.go +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type ExtensionManager struct { - Common -} - -// GetExtensionManager wraps NewExtensionManager, returning ErrNotSupported -// when the client is not connected to a vCenter instance. -func GetExtensionManager(c *vim25.Client) (*ExtensionManager, error) { - if c.ServiceContent.ExtensionManager == nil { - return nil, ErrNotSupported - } - return NewExtensionManager(c), nil -} - -func NewExtensionManager(c *vim25.Client) *ExtensionManager { - o := ExtensionManager{ - Common: NewCommon(c, *c.ServiceContent.ExtensionManager), - } - - return &o -} - -func (m ExtensionManager) List(ctx context.Context) ([]types.Extension, error) { - var em mo.ExtensionManager - - err := m.Properties(ctx, m.Reference(), []string{"extensionList"}, &em) - if err != nil { - return nil, err - } - - return em.ExtensionList, nil -} - -func (m ExtensionManager) Find(ctx context.Context, key string) (*types.Extension, error) { - req := types.FindExtension{ - This: m.Reference(), - ExtensionKey: key, - } - - res, err := methods.FindExtension(ctx, m.c, &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (m ExtensionManager) Register(ctx context.Context, extension types.Extension) error { - req := types.RegisterExtension{ - This: m.Reference(), - Extension: extension, - } - - _, err := methods.RegisterExtension(ctx, m.c, &req) - return err -} - -func (m ExtensionManager) SetCertificate(ctx context.Context, key string, certificatePem string) error { - req := types.SetExtensionCertificate{ - This: m.Reference(), - ExtensionKey: key, - CertificatePem: certificatePem, - } - - _, err := methods.SetExtensionCertificate(ctx, m.c, &req) - return err -} - -func (m ExtensionManager) Unregister(ctx context.Context, key string) error { - req := types.UnregisterExtension{ - This: m.Reference(), - ExtensionKey: key, - } - - _, err := methods.UnregisterExtension(ctx, m.c, &req) - return err -} - -func (m ExtensionManager) Update(ctx context.Context, extension types.Extension) error { - req := types.UpdateExtension{ - This: m.Reference(), - Extension: extension, - } - - _, err := methods.UpdateExtension(ctx, m.c, &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/file_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/file_manager.go deleted file mode 100644 index ba947be2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/file_manager.go +++ /dev/null @@ -1,126 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type FileManager struct { - Common -} - -func NewFileManager(c *vim25.Client) *FileManager { - f := FileManager{ - Common: NewCommon(c, *c.ServiceContent.FileManager), - } - - return &f -} - -func (f FileManager) CopyDatastoreFile(ctx context.Context, sourceName string, sourceDatacenter *Datacenter, destinationName string, destinationDatacenter *Datacenter, force bool) (*Task, error) { - req := types.CopyDatastoreFile_Task{ - This: f.Reference(), - SourceName: sourceName, - DestinationName: destinationName, - Force: types.NewBool(force), - } - - if sourceDatacenter != nil { - ref := sourceDatacenter.Reference() - req.SourceDatacenter = &ref - } - - if destinationDatacenter != nil { - ref := destinationDatacenter.Reference() - req.DestinationDatacenter = &ref - } - - res, err := methods.CopyDatastoreFile_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} - -// DeleteDatastoreFile deletes the specified file or folder from the datastore. -func (f FileManager) DeleteDatastoreFile(ctx context.Context, name string, dc *Datacenter) (*Task, error) { - req := types.DeleteDatastoreFile_Task{ - This: f.Reference(), - Name: name, - } - - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - res, err := methods.DeleteDatastoreFile_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} - -// MakeDirectory creates a folder using the specified name. -func (f FileManager) MakeDirectory(ctx context.Context, name string, dc *Datacenter, createParentDirectories bool) error { - req := types.MakeDirectory{ - This: f.Reference(), - Name: name, - CreateParentDirectories: types.NewBool(createParentDirectories), - } - - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - _, err := methods.MakeDirectory(ctx, f.c, &req) - return err -} - -func (f FileManager) MoveDatastoreFile(ctx context.Context, sourceName string, sourceDatacenter *Datacenter, destinationName string, destinationDatacenter *Datacenter, force bool) (*Task, error) { - req := types.MoveDatastoreFile_Task{ - This: f.Reference(), - SourceName: sourceName, - DestinationName: destinationName, - Force: types.NewBool(force), - } - - if sourceDatacenter != nil { - ref := sourceDatacenter.Reference() - req.SourceDatacenter = &ref - } - - if destinationDatacenter != nil { - ref := destinationDatacenter.Reference() - req.DestinationDatacenter = &ref - } - - res, err := methods.MoveDatastoreFile_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/folder.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/folder.go deleted file mode 100644 index 7a69949f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/folder.go +++ /dev/null @@ -1,227 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type Folder struct { - Common -} - -func NewFolder(c *vim25.Client, ref types.ManagedObjectReference) *Folder { - return &Folder{ - Common: NewCommon(c, ref), - } -} - -func NewRootFolder(c *vim25.Client) *Folder { - f := NewFolder(c, c.ServiceContent.RootFolder) - f.InventoryPath = "/" - return f -} - -func (f Folder) Children(ctx context.Context) ([]Reference, error) { - var mf mo.Folder - - err := f.Properties(ctx, f.Reference(), []string{"childEntity"}, &mf) - if err != nil { - return nil, err - } - - var rs []Reference - for _, e := range mf.ChildEntity { - if r := NewReference(f.c, e); r != nil { - rs = append(rs, r) - } - } - - return rs, nil -} - -func (f Folder) CreateDatacenter(ctx context.Context, datacenter string) (*Datacenter, error) { - req := types.CreateDatacenter{ - This: f.Reference(), - Name: datacenter, - } - - res, err := methods.CreateDatacenter(ctx, f.c, &req) - if err != nil { - return nil, err - } - - // Response will be nil if this is an ESX host that does not belong to a vCenter - if res == nil { - return nil, nil - } - - return NewDatacenter(f.c, res.Returnval), nil -} - -func (f Folder) CreateCluster(ctx context.Context, cluster string, spec types.ClusterConfigSpecEx) (*ClusterComputeResource, error) { - req := types.CreateClusterEx{ - This: f.Reference(), - Name: cluster, - Spec: spec, - } - - res, err := methods.CreateClusterEx(ctx, f.c, &req) - if err != nil { - return nil, err - } - - // Response will be nil if this is an ESX host that does not belong to a vCenter - if res == nil { - return nil, nil - } - - return NewClusterComputeResource(f.c, res.Returnval), nil -} - -func (f Folder) CreateFolder(ctx context.Context, name string) (*Folder, error) { - req := types.CreateFolder{ - This: f.Reference(), - Name: name, - } - - res, err := methods.CreateFolder(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewFolder(f.c, res.Returnval), err -} - -func (f Folder) CreateStoragePod(ctx context.Context, name string) (*StoragePod, error) { - req := types.CreateStoragePod{ - This: f.Reference(), - Name: name, - } - - res, err := methods.CreateStoragePod(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewStoragePod(f.c, res.Returnval), err -} - -func (f Folder) AddStandaloneHost(ctx context.Context, spec types.HostConnectSpec, addConnected bool, license *string, compResSpec *types.BaseComputeResourceConfigSpec) (*Task, error) { - req := types.AddStandaloneHost_Task{ - This: f.Reference(), - Spec: spec, - AddConnected: addConnected, - } - - if license != nil { - req.License = *license - } - - if compResSpec != nil { - req.CompResSpec = *compResSpec - } - - res, err := methods.AddStandaloneHost_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} - -func (f Folder) CreateVM(ctx context.Context, config types.VirtualMachineConfigSpec, pool *ResourcePool, host *HostSystem) (*Task, error) { - req := types.CreateVM_Task{ - This: f.Reference(), - Config: config, - Pool: pool.Reference(), - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - res, err := methods.CreateVM_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} - -func (f Folder) RegisterVM(ctx context.Context, path string, name string, asTemplate bool, pool *ResourcePool, host *HostSystem) (*Task, error) { - req := types.RegisterVM_Task{ - This: f.Reference(), - Path: path, - AsTemplate: asTemplate, - } - - if name != "" { - req.Name = name - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - if pool != nil { - ref := pool.Reference() - req.Pool = &ref - } - - res, err := methods.RegisterVM_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} - -func (f Folder) CreateDVS(ctx context.Context, spec types.DVSCreateSpec) (*Task, error) { - req := types.CreateDVS_Task{ - This: f.Reference(), - Spec: spec, - } - - res, err := methods.CreateDVS_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} - -func (f Folder) MoveInto(ctx context.Context, list []types.ManagedObjectReference) (*Task, error) { - req := types.MoveIntoFolder_Task{ - This: f.Reference(), - List: list, - } - - res, err := methods.MoveIntoFolder_Task(ctx, f.c, &req) - if err != nil { - return nil, err - } - - return NewTask(f.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/history_collector.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/history_collector.go deleted file mode 100644 index afdcab78..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/history_collector.go +++ /dev/null @@ -1,72 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HistoryCollector struct { - Common -} - -func NewHistoryCollector(c *vim25.Client, ref types.ManagedObjectReference) *HistoryCollector { - return &HistoryCollector{ - Common: NewCommon(c, ref), - } -} - -func (h HistoryCollector) Destroy(ctx context.Context) error { - req := types.DestroyCollector{ - This: h.Reference(), - } - - _, err := methods.DestroyCollector(ctx, h.c, &req) - return err -} - -func (h HistoryCollector) Reset(ctx context.Context) error { - req := types.ResetCollector{ - This: h.Reference(), - } - - _, err := methods.ResetCollector(ctx, h.c, &req) - return err -} - -func (h HistoryCollector) Rewind(ctx context.Context) error { - req := types.RewindCollector{ - This: h.Reference(), - } - - _, err := methods.RewindCollector(ctx, h.c, &req) - return err -} - -func (h HistoryCollector) SetPageSize(ctx context.Context, maxCount int32) error { - req := types.SetCollectorPageSize{ - This: h.Reference(), - MaxCount: maxCount, - } - - _, err := methods.SetCollectorPageSize(ctx, h.c, &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_account_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_account_manager.go deleted file mode 100644 index 640aff86..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_account_manager.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HostAccountManager struct { - Common -} - -func NewHostAccountManager(c *vim25.Client, ref types.ManagedObjectReference) *HostAccountManager { - return &HostAccountManager{ - Common: NewCommon(c, ref), - } -} - -func (m HostAccountManager) Create(ctx context.Context, user *types.HostAccountSpec) error { - req := types.CreateUser{ - This: m.Reference(), - User: user, - } - - _, err := methods.CreateUser(ctx, m.Client(), &req) - return err -} - -func (m HostAccountManager) Update(ctx context.Context, user *types.HostAccountSpec) error { - req := types.UpdateUser{ - This: m.Reference(), - User: user, - } - - _, err := methods.UpdateUser(ctx, m.Client(), &req) - return err -} - -func (m HostAccountManager) Remove(ctx context.Context, userName string) error { - req := types.RemoveUser{ - This: m.Reference(), - UserName: userName, - } - - _, err := methods.RemoveUser(ctx, m.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_certificate_info.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_certificate_info.go deleted file mode 100644 index 52c26a9d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_certificate_info.go +++ /dev/null @@ -1,250 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 object - -import ( - "crypto/sha256" - "crypto/tls" - "crypto/x509" - "crypto/x509/pkix" - "encoding/asn1" - "fmt" - "io" - "net/url" - "strings" - "text/tabwriter" - - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -// HostCertificateInfo provides helpers for types.HostCertificateManagerCertificateInfo -type HostCertificateInfo struct { - types.HostCertificateManagerCertificateInfo - - ThumbprintSHA1 string - ThumbprintSHA256 string - - Err error - Certificate *x509.Certificate `json:"-"` - - subjectName *pkix.Name - issuerName *pkix.Name -} - -// FromCertificate converts x509.Certificate to HostCertificateInfo -func (info *HostCertificateInfo) FromCertificate(cert *x509.Certificate) *HostCertificateInfo { - info.Certificate = cert - info.subjectName = &cert.Subject - info.issuerName = &cert.Issuer - - info.Issuer = info.fromName(info.issuerName) - info.NotBefore = &cert.NotBefore - info.NotAfter = &cert.NotAfter - info.Subject = info.fromName(info.subjectName) - - info.ThumbprintSHA1 = soap.ThumbprintSHA1(cert) - - // SHA-256 for info purposes only, API fields all use SHA-1 - sum := sha256.Sum256(cert.Raw) - hex := make([]string, len(sum)) - for i, b := range sum { - hex[i] = fmt.Sprintf("%02X", b) - } - info.ThumbprintSHA256 = strings.Join(hex, ":") - - if info.Status == "" { - info.Status = string(types.HostCertificateManagerCertificateInfoCertificateStatusUnknown) - } - - return info -} - -// FromURL connects to the given URL.Host via tls.Dial with the given tls.Config and populates the HostCertificateInfo -// via tls.ConnectionState. If the certificate was verified with the given tls.Config, the Err field will be nil. -// Otherwise, Err will be set to the x509.UnknownAuthorityError or x509.HostnameError. -// If tls.Dial returns an error of any other type, that error is returned. -func (info *HostCertificateInfo) FromURL(u *url.URL, config *tls.Config) error { - addr := u.Host - if !(strings.LastIndex(addr, ":") > strings.LastIndex(addr, "]")) { - addr += ":443" - } - - conn, err := tls.Dial("tcp", addr, config) - if err != nil { - switch err.(type) { - case x509.UnknownAuthorityError: - case x509.HostnameError: - default: - return err - } - - info.Err = err - - conn, err = tls.Dial("tcp", addr, &tls.Config{InsecureSkipVerify: true}) - if err != nil { - return err - } - } else { - info.Status = string(types.HostCertificateManagerCertificateInfoCertificateStatusGood) - } - - state := conn.ConnectionState() - _ = conn.Close() - info.FromCertificate(state.PeerCertificates[0]) - - return nil -} - -var emailAddressOID = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 9, 1} - -func (info *HostCertificateInfo) fromName(name *pkix.Name) string { - var attrs []string - - oids := map[string]string{ - emailAddressOID.String(): "emailAddress", - } - - for _, attr := range name.Names { - if key, ok := oids[attr.Type.String()]; ok { - attrs = append(attrs, fmt.Sprintf("%s=%s", key, attr.Value)) - } - } - - attrs = append(attrs, fmt.Sprintf("CN=%s", name.CommonName)) - - add := func(key string, vals []string) { - for _, val := range vals { - attrs = append(attrs, fmt.Sprintf("%s=%s", key, val)) - } - } - - elts := []struct { - key string - val []string - }{ - {"OU", name.OrganizationalUnit}, - {"O", name.Organization}, - {"L", name.Locality}, - {"ST", name.Province}, - {"C", name.Country}, - } - - for _, elt := range elts { - add(elt.key, elt.val) - } - - return strings.Join(attrs, ",") -} - -func (info *HostCertificateInfo) toName(s string) *pkix.Name { - var name pkix.Name - - for _, pair := range strings.Split(s, ",") { - attr := strings.SplitN(pair, "=", 2) - if len(attr) != 2 { - continue - } - - v := attr[1] - - switch strings.ToLower(attr[0]) { - case "cn": - name.CommonName = v - case "ou": - name.OrganizationalUnit = append(name.OrganizationalUnit, v) - case "o": - name.Organization = append(name.Organization, v) - case "l": - name.Locality = append(name.Locality, v) - case "st": - name.Province = append(name.Province, v) - case "c": - name.Country = append(name.Country, v) - case "emailaddress": - name.Names = append(name.Names, pkix.AttributeTypeAndValue{Type: emailAddressOID, Value: v}) - } - } - - return &name -} - -// SubjectName parses Subject into a pkix.Name -func (info *HostCertificateInfo) SubjectName() *pkix.Name { - if info.subjectName != nil { - return info.subjectName - } - - return info.toName(info.Subject) -} - -// IssuerName parses Issuer into a pkix.Name -func (info *HostCertificateInfo) IssuerName() *pkix.Name { - if info.issuerName != nil { - return info.issuerName - } - - return info.toName(info.Issuer) -} - -// Write outputs info similar to the Chrome Certificate Viewer. -func (info *HostCertificateInfo) Write(w io.Writer) error { - tw := tabwriter.NewWriter(w, 2, 0, 2, ' ', 0) - - s := func(val string) string { - if val != "" { - return val - } - return "" - } - - ss := func(val []string) string { - return s(strings.Join(val, ",")) - } - - name := func(n *pkix.Name) { - fmt.Fprintf(tw, " Common Name (CN):\t%s\n", s(n.CommonName)) - fmt.Fprintf(tw, " Organization (O):\t%s\n", ss(n.Organization)) - fmt.Fprintf(tw, " Organizational Unit (OU):\t%s\n", ss(n.OrganizationalUnit)) - } - - status := info.Status - if info.Err != nil { - status = fmt.Sprintf("ERROR %s", info.Err) - } - fmt.Fprintf(tw, "Certificate Status:\t%s\n", status) - - fmt.Fprintln(tw, "Issued To:\t") - name(info.SubjectName()) - - fmt.Fprintln(tw, "Issued By:\t") - name(info.IssuerName()) - - fmt.Fprintln(tw, "Validity Period:\t") - fmt.Fprintf(tw, " Issued On:\t%s\n", info.NotBefore) - fmt.Fprintf(tw, " Expires On:\t%s\n", info.NotAfter) - - if info.ThumbprintSHA1 != "" { - fmt.Fprintln(tw, "Thumbprints:\t") - if info.ThumbprintSHA256 != "" { - fmt.Fprintf(tw, " SHA-256 Thumbprint:\t%s\n", info.ThumbprintSHA256) - } - fmt.Fprintf(tw, " SHA-1 Thumbprint:\t%s\n", info.ThumbprintSHA1) - } - - return tw.Flush() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_certificate_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_certificate_manager.go deleted file mode 100644 index 2875a9fc..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_certificate_manager.go +++ /dev/null @@ -1,162 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -// HostCertificateManager provides helper methods around the HostSystem.ConfigManager.CertificateManager -type HostCertificateManager struct { - Common - Host *HostSystem -} - -// NewHostCertificateManager creates a new HostCertificateManager helper -func NewHostCertificateManager(c *vim25.Client, ref types.ManagedObjectReference, host types.ManagedObjectReference) *HostCertificateManager { - return &HostCertificateManager{ - Common: NewCommon(c, ref), - Host: NewHostSystem(c, host), - } -} - -// CertificateInfo wraps the host CertificateManager certificateInfo property with the HostCertificateInfo helper. -// The ThumbprintSHA1 field is set to HostSystem.Summary.Config.SslThumbprint if the host system is managed by a vCenter. -func (m HostCertificateManager) CertificateInfo(ctx context.Context) (*HostCertificateInfo, error) { - var hs mo.HostSystem - var cm mo.HostCertificateManager - - pc := property.DefaultCollector(m.Client()) - - err := pc.RetrieveOne(ctx, m.Reference(), []string{"certificateInfo"}, &cm) - if err != nil { - return nil, err - } - - _ = pc.RetrieveOne(ctx, m.Host.Reference(), []string{"summary.config.sslThumbprint"}, &hs) - - return &HostCertificateInfo{ - HostCertificateManagerCertificateInfo: cm.CertificateInfo, - ThumbprintSHA1: hs.Summary.Config.SslThumbprint, - }, nil -} - -// GenerateCertificateSigningRequest requests the host system to generate a certificate-signing request (CSR) for itself. -// The CSR is then typically provided to a Certificate Authority to sign and issue the SSL certificate for the host system. -// Use InstallServerCertificate to import this certificate. -func (m HostCertificateManager) GenerateCertificateSigningRequest(ctx context.Context, useIPAddressAsCommonName bool) (string, error) { - req := types.GenerateCertificateSigningRequest{ - This: m.Reference(), - UseIpAddressAsCommonName: useIPAddressAsCommonName, - } - - res, err := methods.GenerateCertificateSigningRequest(ctx, m.Client(), &req) - if err != nil { - return "", err - } - - return res.Returnval, nil -} - -// GenerateCertificateSigningRequestByDn requests the host system to generate a certificate-signing request (CSR) for itself. -// Alternative version similar to GenerateCertificateSigningRequest but takes a Distinguished Name (DN) as a parameter. -func (m HostCertificateManager) GenerateCertificateSigningRequestByDn(ctx context.Context, distinguishedName string) (string, error) { - req := types.GenerateCertificateSigningRequestByDn{ - This: m.Reference(), - DistinguishedName: distinguishedName, - } - - res, err := methods.GenerateCertificateSigningRequestByDn(ctx, m.Client(), &req) - if err != nil { - return "", err - } - - return res.Returnval, nil -} - -// InstallServerCertificate imports the given SSL certificate to the host system. -func (m HostCertificateManager) InstallServerCertificate(ctx context.Context, cert string) error { - req := types.InstallServerCertificate{ - This: m.Reference(), - Cert: cert, - } - - _, err := methods.InstallServerCertificate(ctx, m.Client(), &req) - if err != nil { - return err - } - - // NotifyAffectedService is internal, not exposing as we don't have a use case other than with InstallServerCertificate - // Without this call, hostd needs to be restarted to use the updated certificate - // Note: using Refresh as it has the same struct/signature, we just need to use different xml name tags - body := struct { - Req *types.Refresh `xml:"urn:vim25 NotifyAffectedServices,omitempty"` - Res *types.RefreshResponse `xml:"urn:vim25 NotifyAffectedServicesResponse,omitempty"` - methods.RefreshBody - }{ - Req: &types.Refresh{This: m.Reference()}, - } - - return m.Client().RoundTrip(ctx, &body, &body) -} - -// ListCACertificateRevocationLists returns the SSL CRLs of Certificate Authorities that are trusted by the host system. -func (m HostCertificateManager) ListCACertificateRevocationLists(ctx context.Context) ([]string, error) { - req := types.ListCACertificateRevocationLists{ - This: m.Reference(), - } - - res, err := methods.ListCACertificateRevocationLists(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -// ListCACertificates returns the SSL certificates of Certificate Authorities that are trusted by the host system. -func (m HostCertificateManager) ListCACertificates(ctx context.Context) ([]string, error) { - req := types.ListCACertificates{ - This: m.Reference(), - } - - res, err := methods.ListCACertificates(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -// ReplaceCACertificatesAndCRLs replaces the trusted CA certificates and CRL used by the host system. -// These determine whether the server can verify the identity of an external entity. -func (m HostCertificateManager) ReplaceCACertificatesAndCRLs(ctx context.Context, caCert []string, caCrl []string) error { - req := types.ReplaceCACertificatesAndCRLs{ - This: m.Reference(), - CaCert: caCert, - CaCrl: caCrl, - } - - _, err := methods.ReplaceCACertificatesAndCRLs(ctx, m.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_config_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_config_manager.go deleted file mode 100644 index 123227ec..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_config_manager.go +++ /dev/null @@ -1,196 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HostConfigManager struct { - Common -} - -func NewHostConfigManager(c *vim25.Client, ref types.ManagedObjectReference) *HostConfigManager { - return &HostConfigManager{ - Common: NewCommon(c, ref), - } -} - -func (m HostConfigManager) DatastoreSystem(ctx context.Context) (*HostDatastoreSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.datastoreSystem"}, &h) - if err != nil { - return nil, err - } - - return NewHostDatastoreSystem(m.c, *h.ConfigManager.DatastoreSystem), nil -} - -func (m HostConfigManager) NetworkSystem(ctx context.Context) (*HostNetworkSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.networkSystem"}, &h) - if err != nil { - return nil, err - } - - return NewHostNetworkSystem(m.c, *h.ConfigManager.NetworkSystem), nil -} - -func (m HostConfigManager) FirewallSystem(ctx context.Context) (*HostFirewallSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.firewallSystem"}, &h) - if err != nil { - return nil, err - } - - return NewHostFirewallSystem(m.c, *h.ConfigManager.FirewallSystem), nil -} - -func (m HostConfigManager) StorageSystem(ctx context.Context) (*HostStorageSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.storageSystem"}, &h) - if err != nil { - return nil, err - } - - return NewHostStorageSystem(m.c, *h.ConfigManager.StorageSystem), nil -} - -func (m HostConfigManager) VirtualNicManager(ctx context.Context) (*HostVirtualNicManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.virtualNicManager"}, &h) - if err != nil { - return nil, err - } - - return NewHostVirtualNicManager(m.c, *h.ConfigManager.VirtualNicManager, m.Reference()), nil -} - -func (m HostConfigManager) VsanSystem(ctx context.Context) (*HostVsanSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.vsanSystem"}, &h) - if err != nil { - return nil, err - } - - // Added in 5.5 - if h.ConfigManager.VsanSystem == nil { - return nil, ErrNotSupported - } - - return NewHostVsanSystem(m.c, *h.ConfigManager.VsanSystem), nil -} - -func (m HostConfigManager) VsanInternalSystem(ctx context.Context) (*HostVsanInternalSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.vsanInternalSystem"}, &h) - if err != nil { - return nil, err - } - - // Added in 5.5 - if h.ConfigManager.VsanInternalSystem == nil { - return nil, ErrNotSupported - } - - return NewHostVsanInternalSystem(m.c, *h.ConfigManager.VsanInternalSystem), nil -} - -func (m HostConfigManager) AccountManager(ctx context.Context) (*HostAccountManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.accountManager"}, &h) - if err != nil { - return nil, err - } - - ref := h.ConfigManager.AccountManager // Added in 6.0 - if ref == nil { - // Versions < 5.5 can use the ServiceContent ref, - // but we can only use it when connected directly to ESX. - c := m.Client() - if !c.IsVC() { - ref = c.ServiceContent.AccountManager - } - - if ref == nil { - return nil, ErrNotSupported - } - } - - return NewHostAccountManager(m.c, *ref), nil -} - -func (m HostConfigManager) OptionManager(ctx context.Context) (*OptionManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.advancedOption"}, &h) - if err != nil { - return nil, err - } - - return NewOptionManager(m.c, *h.ConfigManager.AdvancedOption), nil -} - -func (m HostConfigManager) ServiceSystem(ctx context.Context) (*HostServiceSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.serviceSystem"}, &h) - if err != nil { - return nil, err - } - - return NewHostServiceSystem(m.c, *h.ConfigManager.ServiceSystem), nil -} - -func (m HostConfigManager) CertificateManager(ctx context.Context) (*HostCertificateManager, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.certificateManager"}, &h) - if err != nil { - return nil, err - } - - // Added in 6.0 - if h.ConfigManager.CertificateManager == nil { - return nil, ErrNotSupported - } - - return NewHostCertificateManager(m.c, *h.ConfigManager.CertificateManager, m.Reference()), nil -} - -func (m HostConfigManager) DateTimeSystem(ctx context.Context) (*HostDateTimeSystem, error) { - var h mo.HostSystem - - err := m.Properties(ctx, m.Reference(), []string{"configManager.dateTimeSystem"}, &h) - if err != nil { - return nil, err - } - - return NewHostDateTimeSystem(m.c, *h.ConfigManager.DateTimeSystem), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_datastore_browser.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_datastore_browser.go deleted file mode 100644 index b0c9e08a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_datastore_browser.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HostDatastoreBrowser struct { - Common -} - -func NewHostDatastoreBrowser(c *vim25.Client, ref types.ManagedObjectReference) *HostDatastoreBrowser { - return &HostDatastoreBrowser{ - Common: NewCommon(c, ref), - } -} - -func (b HostDatastoreBrowser) SearchDatastore(ctx context.Context, datastorePath string, searchSpec *types.HostDatastoreBrowserSearchSpec) (*Task, error) { - req := types.SearchDatastore_Task{ - This: b.Reference(), - DatastorePath: datastorePath, - SearchSpec: searchSpec, - } - - res, err := methods.SearchDatastore_Task(ctx, b.c, &req) - if err != nil { - return nil, err - } - - return NewTask(b.c, res.Returnval), nil -} - -func (b HostDatastoreBrowser) SearchDatastoreSubFolders(ctx context.Context, datastorePath string, searchSpec *types.HostDatastoreBrowserSearchSpec) (*Task, error) { - req := types.SearchDatastoreSubFolders_Task{ - This: b.Reference(), - DatastorePath: datastorePath, - SearchSpec: searchSpec, - } - - res, err := methods.SearchDatastoreSubFolders_Task(ctx, b.c, &req) - if err != nil { - return nil, err - } - - return NewTask(b.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_datastore_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_datastore_system.go deleted file mode 100644 index 7b738e61..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_datastore_system.go +++ /dev/null @@ -1,119 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HostDatastoreSystem struct { - Common -} - -func NewHostDatastoreSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostDatastoreSystem { - return &HostDatastoreSystem{ - Common: NewCommon(c, ref), - } -} - -func (s HostDatastoreSystem) CreateLocalDatastore(ctx context.Context, name string, path string) (*Datastore, error) { - req := types.CreateLocalDatastore{ - This: s.Reference(), - Name: name, - Path: path, - } - - res, err := methods.CreateLocalDatastore(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return NewDatastore(s.Client(), res.Returnval), nil -} - -func (s HostDatastoreSystem) CreateNasDatastore(ctx context.Context, spec types.HostNasVolumeSpec) (*Datastore, error) { - req := types.CreateNasDatastore{ - This: s.Reference(), - Spec: spec, - } - - res, err := methods.CreateNasDatastore(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return NewDatastore(s.Client(), res.Returnval), nil -} - -func (s HostDatastoreSystem) CreateVmfsDatastore(ctx context.Context, spec types.VmfsDatastoreCreateSpec) (*Datastore, error) { - req := types.CreateVmfsDatastore{ - This: s.Reference(), - Spec: spec, - } - - res, err := methods.CreateVmfsDatastore(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return NewDatastore(s.Client(), res.Returnval), nil -} - -func (s HostDatastoreSystem) Remove(ctx context.Context, ds *Datastore) error { - req := types.RemoveDatastore{ - This: s.Reference(), - Datastore: ds.Reference(), - } - - _, err := methods.RemoveDatastore(ctx, s.Client(), &req) - if err != nil { - return err - } - - return nil -} - -func (s HostDatastoreSystem) QueryAvailableDisksForVmfs(ctx context.Context) ([]types.HostScsiDisk, error) { - req := types.QueryAvailableDisksForVmfs{ - This: s.Reference(), - } - - res, err := methods.QueryAvailableDisksForVmfs(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (s HostDatastoreSystem) QueryVmfsDatastoreCreateOptions(ctx context.Context, devicePath string) ([]types.VmfsDatastoreOption, error) { - req := types.QueryVmfsDatastoreCreateOptions{ - This: s.Reference(), - DevicePath: devicePath, - } - - res, err := methods.QueryVmfsDatastoreCreateOptions(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_date_time_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_date_time_system.go deleted file mode 100644 index 7c9203d7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_date_time_system.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 object - -import ( - "context" - "time" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HostDateTimeSystem struct { - Common -} - -func NewHostDateTimeSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostDateTimeSystem { - return &HostDateTimeSystem{ - Common: NewCommon(c, ref), - } -} - -func (s HostDateTimeSystem) UpdateConfig(ctx context.Context, config types.HostDateTimeConfig) error { - req := types.UpdateDateTimeConfig{ - This: s.Reference(), - Config: config, - } - - _, err := methods.UpdateDateTimeConfig(ctx, s.c, &req) - return err -} - -func (s HostDateTimeSystem) Update(ctx context.Context, date time.Time) error { - req := types.UpdateDateTime{ - This: s.Reference(), - DateTime: date, - } - - _, err := methods.UpdateDateTime(ctx, s.c, &req) - return err -} - -func (s HostDateTimeSystem) Query(ctx context.Context) (*time.Time, error) { - req := types.QueryDateTime{ - This: s.Reference(), - } - - res, err := methods.QueryDateTime(ctx, s.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_firewall_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_firewall_system.go deleted file mode 100644 index 0b144025..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_firewall_system.go +++ /dev/null @@ -1,181 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "errors" - "fmt" - "strings" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HostFirewallSystem struct { - Common -} - -func NewHostFirewallSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostFirewallSystem { - return &HostFirewallSystem{ - Common: NewCommon(c, ref), - } -} - -func (s HostFirewallSystem) DisableRuleset(ctx context.Context, id string) error { - req := types.DisableRuleset{ - This: s.Reference(), - Id: id, - } - - _, err := methods.DisableRuleset(ctx, s.c, &req) - return err -} - -func (s HostFirewallSystem) EnableRuleset(ctx context.Context, id string) error { - req := types.EnableRuleset{ - This: s.Reference(), - Id: id, - } - - _, err := methods.EnableRuleset(ctx, s.c, &req) - return err -} - -func (s HostFirewallSystem) Refresh(ctx context.Context) error { - req := types.RefreshFirewall{ - This: s.Reference(), - } - - _, err := methods.RefreshFirewall(ctx, s.c, &req) - return err -} - -func (s HostFirewallSystem) Info(ctx context.Context) (*types.HostFirewallInfo, error) { - var fs mo.HostFirewallSystem - - err := s.Properties(ctx, s.Reference(), []string{"firewallInfo"}, &fs) - if err != nil { - return nil, err - } - - return fs.FirewallInfo, nil -} - -// HostFirewallRulesetList provides helpers for a slice of types.HostFirewallRuleset -type HostFirewallRulesetList []types.HostFirewallRuleset - -// ByRule returns a HostFirewallRulesetList where Direction, PortType and Protocol are equal and Port is within range -func (l HostFirewallRulesetList) ByRule(rule types.HostFirewallRule) HostFirewallRulesetList { - var matches HostFirewallRulesetList - - for _, rs := range l { - for _, r := range rs.Rule { - if r.PortType != rule.PortType || - r.Protocol != rule.Protocol || - r.Direction != rule.Direction { - continue - } - - if r.EndPort == 0 && rule.Port == r.Port || - rule.Port >= r.Port && rule.Port <= r.EndPort { - matches = append(matches, rs) - break - } - } - } - - return matches -} - -// EnabledByRule returns a HostFirewallRulesetList with Match(rule) applied and filtered via Enabled() -// if enabled param is true, otherwise filtered via Disabled(). -// An error is returned if the resulting list is empty. -func (l HostFirewallRulesetList) EnabledByRule(rule types.HostFirewallRule, enabled bool) (HostFirewallRulesetList, error) { - var matched, skipped HostFirewallRulesetList - var matchedKind, skippedKind string - - l = l.ByRule(rule) - - if enabled { - matched = l.Enabled() - matchedKind = "enabled" - - skipped = l.Disabled() - skippedKind = "disabled" - } else { - matched = l.Disabled() - matchedKind = "disabled" - - skipped = l.Enabled() - skippedKind = "enabled" - } - - if len(matched) == 0 { - msg := fmt.Sprintf("%d %s firewall rulesets match %s %s %s %d, %d %s rulesets match", - len(matched), matchedKind, - rule.Direction, rule.Protocol, rule.PortType, rule.Port, - len(skipped), skippedKind) - - if len(skipped) != 0 { - msg += fmt.Sprintf(": %s", strings.Join(skipped.Keys(), ", ")) - } - - return nil, errors.New(msg) - } - - return matched, nil -} - -// Enabled returns a HostFirewallRulesetList with enabled rules -func (l HostFirewallRulesetList) Enabled() HostFirewallRulesetList { - var matches HostFirewallRulesetList - - for _, rs := range l { - if rs.Enabled { - matches = append(matches, rs) - } - } - - return matches -} - -// Disabled returns a HostFirewallRulesetList with disabled rules -func (l HostFirewallRulesetList) Disabled() HostFirewallRulesetList { - var matches HostFirewallRulesetList - - for _, rs := range l { - if !rs.Enabled { - matches = append(matches, rs) - } - } - - return matches -} - -// Keys returns the HostFirewallRuleset.Key for each ruleset in the list -func (l HostFirewallRulesetList) Keys() []string { - var keys []string - - for _, rs := range l { - keys = append(keys, rs.Key) - } - - return keys -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_network_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_network_system.go deleted file mode 100644 index c21e1ec3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_network_system.go +++ /dev/null @@ -1,358 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HostNetworkSystem struct { - Common -} - -func NewHostNetworkSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostNetworkSystem { - return &HostNetworkSystem{ - Common: NewCommon(c, ref), - } -} - -// AddPortGroup wraps methods.AddPortGroup -func (o HostNetworkSystem) AddPortGroup(ctx context.Context, portgrp types.HostPortGroupSpec) error { - req := types.AddPortGroup{ - This: o.Reference(), - Portgrp: portgrp, - } - - _, err := methods.AddPortGroup(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// AddServiceConsoleVirtualNic wraps methods.AddServiceConsoleVirtualNic -func (o HostNetworkSystem) AddServiceConsoleVirtualNic(ctx context.Context, portgroup string, nic types.HostVirtualNicSpec) (string, error) { - req := types.AddServiceConsoleVirtualNic{ - This: o.Reference(), - Portgroup: portgroup, - Nic: nic, - } - - res, err := methods.AddServiceConsoleVirtualNic(ctx, o.c, &req) - if err != nil { - return "", err - } - - return res.Returnval, nil -} - -// AddVirtualNic wraps methods.AddVirtualNic -func (o HostNetworkSystem) AddVirtualNic(ctx context.Context, portgroup string, nic types.HostVirtualNicSpec) (string, error) { - req := types.AddVirtualNic{ - This: o.Reference(), - Portgroup: portgroup, - Nic: nic, - } - - res, err := methods.AddVirtualNic(ctx, o.c, &req) - if err != nil { - return "", err - } - - return res.Returnval, nil -} - -// AddVirtualSwitch wraps methods.AddVirtualSwitch -func (o HostNetworkSystem) AddVirtualSwitch(ctx context.Context, vswitchName string, spec *types.HostVirtualSwitchSpec) error { - req := types.AddVirtualSwitch{ - This: o.Reference(), - VswitchName: vswitchName, - Spec: spec, - } - - _, err := methods.AddVirtualSwitch(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// QueryNetworkHint wraps methods.QueryNetworkHint -func (o HostNetworkSystem) QueryNetworkHint(ctx context.Context, device []string) error { - req := types.QueryNetworkHint{ - This: o.Reference(), - Device: device, - } - - _, err := methods.QueryNetworkHint(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// RefreshNetworkSystem wraps methods.RefreshNetworkSystem -func (o HostNetworkSystem) RefreshNetworkSystem(ctx context.Context) error { - req := types.RefreshNetworkSystem{ - This: o.Reference(), - } - - _, err := methods.RefreshNetworkSystem(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// RemovePortGroup wraps methods.RemovePortGroup -func (o HostNetworkSystem) RemovePortGroup(ctx context.Context, pgName string) error { - req := types.RemovePortGroup{ - This: o.Reference(), - PgName: pgName, - } - - _, err := methods.RemovePortGroup(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// RemoveServiceConsoleVirtualNic wraps methods.RemoveServiceConsoleVirtualNic -func (o HostNetworkSystem) RemoveServiceConsoleVirtualNic(ctx context.Context, device string) error { - req := types.RemoveServiceConsoleVirtualNic{ - This: o.Reference(), - Device: device, - } - - _, err := methods.RemoveServiceConsoleVirtualNic(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// RemoveVirtualNic wraps methods.RemoveVirtualNic -func (o HostNetworkSystem) RemoveVirtualNic(ctx context.Context, device string) error { - req := types.RemoveVirtualNic{ - This: o.Reference(), - Device: device, - } - - _, err := methods.RemoveVirtualNic(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// RemoveVirtualSwitch wraps methods.RemoveVirtualSwitch -func (o HostNetworkSystem) RemoveVirtualSwitch(ctx context.Context, vswitchName string) error { - req := types.RemoveVirtualSwitch{ - This: o.Reference(), - VswitchName: vswitchName, - } - - _, err := methods.RemoveVirtualSwitch(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// RestartServiceConsoleVirtualNic wraps methods.RestartServiceConsoleVirtualNic -func (o HostNetworkSystem) RestartServiceConsoleVirtualNic(ctx context.Context, device string) error { - req := types.RestartServiceConsoleVirtualNic{ - This: o.Reference(), - Device: device, - } - - _, err := methods.RestartServiceConsoleVirtualNic(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateConsoleIpRouteConfig wraps methods.UpdateConsoleIpRouteConfig -func (o HostNetworkSystem) UpdateConsoleIpRouteConfig(ctx context.Context, config types.BaseHostIpRouteConfig) error { - req := types.UpdateConsoleIpRouteConfig{ - This: o.Reference(), - Config: config, - } - - _, err := methods.UpdateConsoleIpRouteConfig(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateDnsConfig wraps methods.UpdateDnsConfig -func (o HostNetworkSystem) UpdateDnsConfig(ctx context.Context, config types.BaseHostDnsConfig) error { - req := types.UpdateDnsConfig{ - This: o.Reference(), - Config: config, - } - - _, err := methods.UpdateDnsConfig(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateIpRouteConfig wraps methods.UpdateIpRouteConfig -func (o HostNetworkSystem) UpdateIpRouteConfig(ctx context.Context, config types.BaseHostIpRouteConfig) error { - req := types.UpdateIpRouteConfig{ - This: o.Reference(), - Config: config, - } - - _, err := methods.UpdateIpRouteConfig(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateIpRouteTableConfig wraps methods.UpdateIpRouteTableConfig -func (o HostNetworkSystem) UpdateIpRouteTableConfig(ctx context.Context, config types.HostIpRouteTableConfig) error { - req := types.UpdateIpRouteTableConfig{ - This: o.Reference(), - Config: config, - } - - _, err := methods.UpdateIpRouteTableConfig(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateNetworkConfig wraps methods.UpdateNetworkConfig -func (o HostNetworkSystem) UpdateNetworkConfig(ctx context.Context, config types.HostNetworkConfig, changeMode string) (*types.HostNetworkConfigResult, error) { - req := types.UpdateNetworkConfig{ - This: o.Reference(), - Config: config, - ChangeMode: changeMode, - } - - res, err := methods.UpdateNetworkConfig(ctx, o.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -// UpdatePhysicalNicLinkSpeed wraps methods.UpdatePhysicalNicLinkSpeed -func (o HostNetworkSystem) UpdatePhysicalNicLinkSpeed(ctx context.Context, device string, linkSpeed *types.PhysicalNicLinkInfo) error { - req := types.UpdatePhysicalNicLinkSpeed{ - This: o.Reference(), - Device: device, - LinkSpeed: linkSpeed, - } - - _, err := methods.UpdatePhysicalNicLinkSpeed(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdatePortGroup wraps methods.UpdatePortGroup -func (o HostNetworkSystem) UpdatePortGroup(ctx context.Context, pgName string, portgrp types.HostPortGroupSpec) error { - req := types.UpdatePortGroup{ - This: o.Reference(), - PgName: pgName, - Portgrp: portgrp, - } - - _, err := methods.UpdatePortGroup(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateServiceConsoleVirtualNic wraps methods.UpdateServiceConsoleVirtualNic -func (o HostNetworkSystem) UpdateServiceConsoleVirtualNic(ctx context.Context, device string, nic types.HostVirtualNicSpec) error { - req := types.UpdateServiceConsoleVirtualNic{ - This: o.Reference(), - Device: device, - Nic: nic, - } - - _, err := methods.UpdateServiceConsoleVirtualNic(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateVirtualNic wraps methods.UpdateVirtualNic -func (o HostNetworkSystem) UpdateVirtualNic(ctx context.Context, device string, nic types.HostVirtualNicSpec) error { - req := types.UpdateVirtualNic{ - This: o.Reference(), - Device: device, - Nic: nic, - } - - _, err := methods.UpdateVirtualNic(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} - -// UpdateVirtualSwitch wraps methods.UpdateVirtualSwitch -func (o HostNetworkSystem) UpdateVirtualSwitch(ctx context.Context, vswitchName string, spec types.HostVirtualSwitchSpec) error { - req := types.UpdateVirtualSwitch{ - This: o.Reference(), - VswitchName: vswitchName, - Spec: spec, - } - - _, err := methods.UpdateVirtualSwitch(ctx, o.c, &req) - if err != nil { - return err - } - - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_service_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_service_system.go deleted file mode 100644 index a66b32c1..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_service_system.go +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HostServiceSystem struct { - Common -} - -func NewHostServiceSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostServiceSystem { - return &HostServiceSystem{ - Common: NewCommon(c, ref), - } -} - -func (s HostServiceSystem) Service(ctx context.Context) ([]types.HostService, error) { - var ss mo.HostServiceSystem - - err := s.Properties(ctx, s.Reference(), []string{"serviceInfo.service"}, &ss) - if err != nil { - return nil, err - } - - return ss.ServiceInfo.Service, nil -} - -func (s HostServiceSystem) Start(ctx context.Context, id string) error { - req := types.StartService{ - This: s.Reference(), - Id: id, - } - - _, err := methods.StartService(ctx, s.Client(), &req) - return err -} - -func (s HostServiceSystem) Stop(ctx context.Context, id string) error { - req := types.StopService{ - This: s.Reference(), - Id: id, - } - - _, err := methods.StopService(ctx, s.Client(), &req) - return err -} - -func (s HostServiceSystem) Restart(ctx context.Context, id string) error { - req := types.RestartService{ - This: s.Reference(), - Id: id, - } - - _, err := methods.RestartService(ctx, s.Client(), &req) - return err -} - -func (s HostServiceSystem) UpdatePolicy(ctx context.Context, id string, policy string) error { - req := types.UpdateServicePolicy{ - This: s.Reference(), - Id: id, - Policy: policy, - } - - _, err := methods.UpdateServicePolicy(ctx, s.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_storage_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_storage_system.go deleted file mode 100644 index 2a433ff2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_storage_system.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "errors" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HostStorageSystem struct { - Common -} - -func NewHostStorageSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostStorageSystem { - return &HostStorageSystem{ - Common: NewCommon(c, ref), - } -} - -func (s HostStorageSystem) RetrieveDiskPartitionInfo(ctx context.Context, devicePath string) (*types.HostDiskPartitionInfo, error) { - req := types.RetrieveDiskPartitionInfo{ - This: s.Reference(), - DevicePath: []string{devicePath}, - } - - res, err := methods.RetrieveDiskPartitionInfo(ctx, s.c, &req) - if err != nil { - return nil, err - } - - if res.Returnval == nil || len(res.Returnval) == 0 { - return nil, errors.New("no partition info") - } - - return &res.Returnval[0], nil -} - -func (s HostStorageSystem) ComputeDiskPartitionInfo(ctx context.Context, devicePath string, layout types.HostDiskPartitionLayout) (*types.HostDiskPartitionInfo, error) { - req := types.ComputeDiskPartitionInfo{ - This: s.Reference(), - DevicePath: devicePath, - Layout: layout, - } - - res, err := methods.ComputeDiskPartitionInfo(ctx, s.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -func (s HostStorageSystem) UpdateDiskPartitionInfo(ctx context.Context, devicePath string, spec types.HostDiskPartitionSpec) error { - req := types.UpdateDiskPartitions{ - This: s.Reference(), - DevicePath: devicePath, - Spec: spec, - } - - _, err := methods.UpdateDiskPartitions(ctx, s.c, &req) - return err -} - -func (s HostStorageSystem) RescanAllHba(ctx context.Context) error { - req := types.RescanAllHba{ - This: s.Reference(), - } - - _, err := methods.RescanAllHba(ctx, s.c, &req) - return err -} - -func (s HostStorageSystem) MarkAsSsd(ctx context.Context, uuid string) (*Task, error) { - req := types.MarkAsSsd_Task{ - This: s.Reference(), - ScsiDiskUuid: uuid, - } - - res, err := methods.MarkAsSsd_Task(ctx, s.c, &req) - if err != nil { - return nil, err - } - - return NewTask(s.c, res.Returnval), nil -} - -func (s HostStorageSystem) MarkAsNonSsd(ctx context.Context, uuid string) (*Task, error) { - req := types.MarkAsNonSsd_Task{ - This: s.Reference(), - ScsiDiskUuid: uuid, - } - - res, err := methods.MarkAsNonSsd_Task(ctx, s.c, &req) - if err != nil { - return nil, err - } - - return NewTask(s.c, res.Returnval), nil -} - -func (s HostStorageSystem) MarkAsLocal(ctx context.Context, uuid string) (*Task, error) { - req := types.MarkAsLocal_Task{ - This: s.Reference(), - ScsiDiskUuid: uuid, - } - - res, err := methods.MarkAsLocal_Task(ctx, s.c, &req) - if err != nil { - return nil, err - } - - return NewTask(s.c, res.Returnval), nil -} - -func (s HostStorageSystem) MarkAsNonLocal(ctx context.Context, uuid string) (*Task, error) { - req := types.MarkAsNonLocal_Task{ - This: s.Reference(), - ScsiDiskUuid: uuid, - } - - res, err := methods.MarkAsNonLocal_Task(ctx, s.c, &req) - if err != nil { - return nil, err - } - - return NewTask(s.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_system.go deleted file mode 100644 index a350edfd..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_system.go +++ /dev/null @@ -1,153 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - "fmt" - "net" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HostSystem struct { - Common -} - -func NewHostSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostSystem { - return &HostSystem{ - Common: NewCommon(c, ref), - } -} - -func (h HostSystem) ConfigManager() *HostConfigManager { - return NewHostConfigManager(h.c, h.Reference()) -} - -func (h HostSystem) ResourcePool(ctx context.Context) (*ResourcePool, error) { - var mh mo.HostSystem - - err := h.Properties(ctx, h.Reference(), []string{"parent"}, &mh) - if err != nil { - return nil, err - } - - var mcr *mo.ComputeResource - var parent interface{} - - switch mh.Parent.Type { - case "ComputeResource": - mcr = new(mo.ComputeResource) - parent = mcr - case "ClusterComputeResource": - mcc := new(mo.ClusterComputeResource) - mcr = &mcc.ComputeResource - parent = mcc - default: - return nil, fmt.Errorf("unknown host parent type: %s", mh.Parent.Type) - } - - err = h.Properties(ctx, *mh.Parent, []string{"resourcePool"}, parent) - if err != nil { - return nil, err - } - - pool := NewResourcePool(h.c, *mcr.ResourcePool) - return pool, nil -} - -func (h HostSystem) ManagementIPs(ctx context.Context) ([]net.IP, error) { - var mh mo.HostSystem - - err := h.Properties(ctx, h.Reference(), []string{"config.virtualNicManagerInfo.netConfig"}, &mh) - if err != nil { - return nil, err - } - - var ips []net.IP - for _, nc := range mh.Config.VirtualNicManagerInfo.NetConfig { - if nc.NicType == "management" && len(nc.CandidateVnic) > 0 { - ip := net.ParseIP(nc.CandidateVnic[0].Spec.Ip.IpAddress) - if ip != nil { - ips = append(ips, ip) - } - } - } - - return ips, nil -} - -func (h HostSystem) Disconnect(ctx context.Context) (*Task, error) { - req := types.DisconnectHost_Task{ - This: h.Reference(), - } - - res, err := methods.DisconnectHost_Task(ctx, h.c, &req) - if err != nil { - return nil, err - } - - return NewTask(h.c, res.Returnval), nil -} - -func (h HostSystem) Reconnect(ctx context.Context, cnxSpec *types.HostConnectSpec, reconnectSpec *types.HostSystemReconnectSpec) (*Task, error) { - req := types.ReconnectHost_Task{ - This: h.Reference(), - CnxSpec: cnxSpec, - ReconnectSpec: reconnectSpec, - } - - res, err := methods.ReconnectHost_Task(ctx, h.c, &req) - if err != nil { - return nil, err - } - - return NewTask(h.c, res.Returnval), nil -} - -func (h HostSystem) EnterMaintenanceMode(ctx context.Context, timeout int32, evacuate bool, spec *types.HostMaintenanceSpec) (*Task, error) { - req := types.EnterMaintenanceMode_Task{ - This: h.Reference(), - Timeout: timeout, - EvacuatePoweredOffVms: types.NewBool(evacuate), - MaintenanceSpec: spec, - } - - res, err := methods.EnterMaintenanceMode_Task(ctx, h.c, &req) - if err != nil { - return nil, err - } - - return NewTask(h.c, res.Returnval), nil -} - -func (h HostSystem) ExitMaintenanceMode(ctx context.Context, timeout int32) (*Task, error) { - req := types.ExitMaintenanceMode_Task{ - This: h.Reference(), - Timeout: timeout, - } - - res, err := methods.ExitMaintenanceMode_Task(ctx, h.c, &req) - if err != nil { - return nil, err - } - - return NewTask(h.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_virtual_nic_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_virtual_nic_manager.go deleted file mode 100644 index 01e7e9cd..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_virtual_nic_manager.go +++ /dev/null @@ -1,93 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HostVirtualNicManager struct { - Common - Host *HostSystem -} - -func NewHostVirtualNicManager(c *vim25.Client, ref types.ManagedObjectReference, host types.ManagedObjectReference) *HostVirtualNicManager { - return &HostVirtualNicManager{ - Common: NewCommon(c, ref), - Host: NewHostSystem(c, host), - } -} - -func (m HostVirtualNicManager) Info(ctx context.Context) (*types.HostVirtualNicManagerInfo, error) { - var vnm mo.HostVirtualNicManager - - err := m.Properties(ctx, m.Reference(), []string{"info"}, &vnm) - if err != nil { - return nil, err - } - - return &vnm.Info, nil -} - -func (m HostVirtualNicManager) DeselectVnic(ctx context.Context, nicType string, device string) error { - if nicType == string(types.HostVirtualNicManagerNicTypeVsan) { - // Avoid fault.NotSupported: - // "Error deselecting device '$device': VSAN interfaces must be deselected using vim.host.VsanSystem" - s, err := m.Host.ConfigManager().VsanSystem(ctx) - if err != nil { - return err - } - - return s.updateVnic(ctx, device, false) - } - - req := types.DeselectVnicForNicType{ - This: m.Reference(), - NicType: nicType, - Device: device, - } - - _, err := methods.DeselectVnicForNicType(ctx, m.Client(), &req) - return err -} - -func (m HostVirtualNicManager) SelectVnic(ctx context.Context, nicType string, device string) error { - if nicType == string(types.HostVirtualNicManagerNicTypeVsan) { - // Avoid fault.NotSupported: - // "Error selecting device '$device': VSAN interfaces must be selected using vim.host.VsanSystem" - s, err := m.Host.ConfigManager().VsanSystem(ctx) - if err != nil { - return err - } - - return s.updateVnic(ctx, device, true) - } - - req := types.SelectVnicForNicType{ - This: m.Reference(), - NicType: nicType, - Device: device, - } - - _, err := methods.SelectVnicForNicType(ctx, m.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_vsan_internal_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_vsan_internal_system.go deleted file mode 100644 index 65e4587f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_vsan_internal_system.go +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 object - -import ( - "context" - "encoding/json" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type HostVsanInternalSystem struct { - Common -} - -func NewHostVsanInternalSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostVsanInternalSystem { - m := HostVsanInternalSystem{ - Common: NewCommon(c, ref), - } - - return &m -} - -// QueryVsanObjectUuidsByFilter returns vSAN DOM object uuids by filter. -func (m HostVsanInternalSystem) QueryVsanObjectUuidsByFilter(ctx context.Context, uuids []string, limit int32, version int32) ([]string, error) { - req := types.QueryVsanObjectUuidsByFilter{ - This: m.Reference(), - Uuids: uuids, - Limit: limit, - Version: version, - } - - res, err := methods.QueryVsanObjectUuidsByFilter(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -type VsanObjExtAttrs struct { - Type string `json:"Object type"` - Class string `json:"Object class"` - Size string `json:"Object size"` - Path string `json:"Object path"` - Name string `json:"User friendly name"` -} - -func (a *VsanObjExtAttrs) DatastorePath(dir string) string { - l := len(dir) - path := a.Path - - if len(path) >= l { - path = a.Path[l:] - } - - if path != "" { - return path - } - - return a.Name // vmnamespace -} - -// GetVsanObjExtAttrs is internal and intended for troubleshooting/debugging situations in the field. -// WARNING: This API can be slow because we do IOs (reads) to all the objects. -func (m HostVsanInternalSystem) GetVsanObjExtAttrs(ctx context.Context, uuids []string) (map[string]VsanObjExtAttrs, error) { - req := types.GetVsanObjExtAttrs{ - This: m.Reference(), - Uuids: uuids, - } - - res, err := methods.GetVsanObjExtAttrs(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - var attrs map[string]VsanObjExtAttrs - - err = json.Unmarshal([]byte(res.Returnval), &attrs) - - return attrs, err -} - -// DeleteVsanObjects is internal and intended for troubleshooting/debugging only. -// WARNING: This API can be slow because we do IOs to all the objects. -// DOM won't allow access to objects which have lost quorum. Such objects can be deleted with the optional "force" flag. -// These objects may however re-appear with quorum if the absent components come back (network partition gets resolved, etc.) -func (m HostVsanInternalSystem) DeleteVsanObjects(ctx context.Context, uuids []string, force *bool) ([]types.HostVsanInternalSystemDeleteVsanObjectsResult, error) { - req := types.DeleteVsanObjects{ - This: m.Reference(), - Uuids: uuids, - Force: force, - } - - res, err := methods.DeleteVsanObjects(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_vsan_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_vsan_system.go deleted file mode 100644 index 5ab234d5..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/host_vsan_system.go +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HostVsanSystem struct { - Common -} - -func NewHostVsanSystem(c *vim25.Client, ref types.ManagedObjectReference) *HostVsanSystem { - return &HostVsanSystem{ - Common: NewCommon(c, ref), - } -} - -func (s HostVsanSystem) Update(ctx context.Context, config types.VsanHostConfigInfo) (*Task, error) { - req := types.UpdateVsan_Task{ - This: s.Reference(), - Config: config, - } - - res, err := methods.UpdateVsan_Task(ctx, s.Client(), &req) - if err != nil { - return nil, err - } - - return NewTask(s.Client(), res.Returnval), nil -} - -// updateVnic in support of the HostVirtualNicManager.{SelectVnic,DeselectVnic} methods -func (s HostVsanSystem) updateVnic(ctx context.Context, device string, enable bool) error { - var vsan mo.HostVsanSystem - - err := s.Properties(ctx, s.Reference(), []string{"config.networkInfo.port"}, &vsan) - if err != nil { - return err - } - - info := vsan.Config - - var port []types.VsanHostConfigInfoNetworkInfoPortConfig - - for _, p := range info.NetworkInfo.Port { - if p.Device == device { - continue - } - - port = append(port, p) - } - - if enable { - port = append(port, types.VsanHostConfigInfoNetworkInfoPortConfig{ - Device: device, - }) - } - - info.NetworkInfo.Port = port - - task, err := s.Update(ctx, info) - if err != nil { - return err - } - - _, err = task.WaitForResult(ctx, nil) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/namespace_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/namespace_manager.go deleted file mode 100644 index f463b368..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/namespace_manager.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type DatastoreNamespaceManager struct { - Common -} - -func NewDatastoreNamespaceManager(c *vim25.Client) *DatastoreNamespaceManager { - n := DatastoreNamespaceManager{ - Common: NewCommon(c, *c.ServiceContent.DatastoreNamespaceManager), - } - - return &n -} - -// CreateDirectory creates a top-level directory on the given vsan datastore, using -// the given user display name hint and opaque storage policy. -func (nm DatastoreNamespaceManager) CreateDirectory(ctx context.Context, ds *Datastore, displayName string, policy string) (string, error) { - - req := &types.CreateDirectory{ - This: nm.Reference(), - Datastore: ds.Reference(), - DisplayName: displayName, - Policy: policy, - } - - resp, err := methods.CreateDirectory(ctx, nm.c, req) - if err != nil { - return "", err - } - - return resp.Returnval, nil -} - -// DeleteDirectory deletes the given top-level directory from a vsan datastore. -func (nm DatastoreNamespaceManager) DeleteDirectory(ctx context.Context, dc *Datacenter, datastorePath string) error { - - req := &types.DeleteDirectory{ - This: nm.Reference(), - DatastorePath: datastorePath, - } - - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - if _, err := methods.DeleteDirectory(ctx, nm.c, req); err != nil { - return err - } - - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network.go deleted file mode 100644 index d1dc7ce0..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network.go +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type Network struct { - Common -} - -func NewNetwork(c *vim25.Client, ref types.ManagedObjectReference) *Network { - return &Network{ - Common: NewCommon(c, ref), - } -} - -// EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network -func (n Network) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - var e mo.Network - - // Use Network.Name rather than Common.Name as the latter does not return the complete name if it contains a '/' - // We can't use Common.ObjectName here either as we need the ManagedEntity.Name field is not set since mo.Network - // has its own Name field. - err := n.Properties(ctx, n.Reference(), []string{"name"}, &e) - if err != nil { - return nil, err - } - - backing := &types.VirtualEthernetCardNetworkBackingInfo{ - VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ - DeviceName: e.Name, - }, - } - - return backing, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network_reference.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network_reference.go deleted file mode 100644 index 7716bdb3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/network_reference.go +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25/types" -) - -// The NetworkReference interface is implemented by managed objects -// which can be used as the backing for a VirtualEthernetCard. -type NetworkReference interface { - Reference - - EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/opaque_network.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/opaque_network.go deleted file mode 100644 index 47ce4cef..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/opaque_network.go +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 object - -import ( - "context" - "fmt" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type OpaqueNetwork struct { - Common -} - -func NewOpaqueNetwork(c *vim25.Client, ref types.ManagedObjectReference) *OpaqueNetwork { - return &OpaqueNetwork{ - Common: NewCommon(c, ref), - } -} - -// EthernetCardBackingInfo returns the VirtualDeviceBackingInfo for this Network -func (n OpaqueNetwork) EthernetCardBackingInfo(ctx context.Context) (types.BaseVirtualDeviceBackingInfo, error) { - var net mo.OpaqueNetwork - - if err := n.Properties(ctx, n.Reference(), []string{"summary"}, &net); err != nil { - return nil, err - } - - summary, ok := net.Summary.(*types.OpaqueNetworkSummary) - if !ok { - return nil, fmt.Errorf("%s unsupported network type: %T", n, net.Summary) - } - - backing := &types.VirtualEthernetCardOpaqueNetworkBackingInfo{ - OpaqueNetworkId: summary.OpaqueNetworkId, - OpaqueNetworkType: summary.OpaqueNetworkType, - } - - return backing, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/option_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/option_manager.go deleted file mode 100644 index 7f93273a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/option_manager.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type OptionManager struct { - Common -} - -func NewOptionManager(c *vim25.Client, ref types.ManagedObjectReference) *OptionManager { - return &OptionManager{ - Common: NewCommon(c, ref), - } -} - -func (m OptionManager) Query(ctx context.Context, name string) ([]types.BaseOptionValue, error) { - req := types.QueryOptions{ - This: m.Reference(), - Name: name, - } - - res, err := methods.QueryOptions(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (m OptionManager) Update(ctx context.Context, value []types.BaseOptionValue) error { - req := types.UpdateOptions{ - This: m.Reference(), - ChangedValue: value, - } - - _, err := methods.UpdateOptions(ctx, m.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/resource_pool.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/resource_pool.go deleted file mode 100644 index 55c2e2b2..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/resource_pool.go +++ /dev/null @@ -1,138 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/nfc" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type ResourcePool struct { - Common -} - -func NewResourcePool(c *vim25.Client, ref types.ManagedObjectReference) *ResourcePool { - return &ResourcePool{ - Common: NewCommon(c, ref), - } -} - -func (p ResourcePool) ImportVApp(ctx context.Context, spec types.BaseImportSpec, folder *Folder, host *HostSystem) (*nfc.Lease, error) { - req := types.ImportVApp{ - This: p.Reference(), - Spec: spec, - } - - if folder != nil { - ref := folder.Reference() - req.Folder = &ref - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - res, err := methods.ImportVApp(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return nfc.NewLease(p.c, res.Returnval), nil -} - -func (p ResourcePool) Create(ctx context.Context, name string, spec types.ResourceConfigSpec) (*ResourcePool, error) { - req := types.CreateResourcePool{ - This: p.Reference(), - Name: name, - Spec: spec, - } - - res, err := methods.CreateResourcePool(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return NewResourcePool(p.c, res.Returnval), nil -} - -func (p ResourcePool) CreateVApp(ctx context.Context, name string, resSpec types.ResourceConfigSpec, configSpec types.VAppConfigSpec, folder *Folder) (*VirtualApp, error) { - req := types.CreateVApp{ - This: p.Reference(), - Name: name, - ResSpec: resSpec, - ConfigSpec: configSpec, - } - - if folder != nil { - ref := folder.Reference() - req.VmFolder = &ref - } - - res, err := methods.CreateVApp(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return NewVirtualApp(p.c, res.Returnval), nil -} - -func (p ResourcePool) UpdateConfig(ctx context.Context, name string, config *types.ResourceConfigSpec) error { - req := types.UpdateConfig{ - This: p.Reference(), - Name: name, - Config: config, - } - - if config != nil && config.Entity == nil { - ref := p.Reference() - - // Create copy of config so changes won't leak back to the caller - newConfig := *config - newConfig.Entity = &ref - req.Config = &newConfig - } - - _, err := methods.UpdateConfig(ctx, p.c, &req) - return err -} - -func (p ResourcePool) DestroyChildren(ctx context.Context) error { - req := types.DestroyChildren{ - This: p.Reference(), - } - - _, err := methods.DestroyChildren(ctx, p.c, &req) - return err -} - -func (p ResourcePool) Destroy(ctx context.Context) (*Task, error) { - req := types.Destroy_Task{ - This: p.Reference(), - } - - res, err := methods.Destroy_Task(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return NewTask(p.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/search_index.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/search_index.go deleted file mode 100644 index 4b0a525d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/search_index.go +++ /dev/null @@ -1,163 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type SearchIndex struct { - Common -} - -func NewSearchIndex(c *vim25.Client) *SearchIndex { - s := SearchIndex{ - Common: NewCommon(c, *c.ServiceContent.SearchIndex), - } - - return &s -} - -// FindByDatastorePath finds a virtual machine by its location on a datastore. -func (s SearchIndex) FindByDatastorePath(ctx context.Context, dc *Datacenter, path string) (Reference, error) { - req := types.FindByDatastorePath{ - This: s.Reference(), - Datacenter: dc.Reference(), - Path: path, - } - - res, err := methods.FindByDatastorePath(ctx, s.c, &req) - if err != nil { - return nil, err - } - - if res.Returnval == nil { - return nil, nil - } - return NewReference(s.c, *res.Returnval), nil -} - -// FindByDnsName finds a virtual machine or host by DNS name. -func (s SearchIndex) FindByDnsName(ctx context.Context, dc *Datacenter, dnsName string, vmSearch bool) (Reference, error) { - req := types.FindByDnsName{ - This: s.Reference(), - DnsName: dnsName, - VmSearch: vmSearch, - } - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - res, err := methods.FindByDnsName(ctx, s.c, &req) - if err != nil { - return nil, err - } - - if res.Returnval == nil { - return nil, nil - } - return NewReference(s.c, *res.Returnval), nil -} - -// FindByInventoryPath finds a managed entity based on its location in the inventory. -func (s SearchIndex) FindByInventoryPath(ctx context.Context, path string) (Reference, error) { - req := types.FindByInventoryPath{ - This: s.Reference(), - InventoryPath: path, - } - - res, err := methods.FindByInventoryPath(ctx, s.c, &req) - if err != nil { - return nil, err - } - - if res.Returnval == nil { - return nil, nil - } - return NewReference(s.c, *res.Returnval), nil -} - -// FindByIp finds a virtual machine or host by IP address. -func (s SearchIndex) FindByIp(ctx context.Context, dc *Datacenter, ip string, vmSearch bool) (Reference, error) { - req := types.FindByIp{ - This: s.Reference(), - Ip: ip, - VmSearch: vmSearch, - } - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - res, err := methods.FindByIp(ctx, s.c, &req) - if err != nil { - return nil, err - } - - if res.Returnval == nil { - return nil, nil - } - return NewReference(s.c, *res.Returnval), nil -} - -// FindByUuid finds a virtual machine or host by UUID. -func (s SearchIndex) FindByUuid(ctx context.Context, dc *Datacenter, uuid string, vmSearch bool, instanceUuid *bool) (Reference, error) { - req := types.FindByUuid{ - This: s.Reference(), - Uuid: uuid, - VmSearch: vmSearch, - InstanceUuid: instanceUuid, - } - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - res, err := methods.FindByUuid(ctx, s.c, &req) - if err != nil { - return nil, err - } - - if res.Returnval == nil { - return nil, nil - } - return NewReference(s.c, *res.Returnval), nil -} - -// FindChild finds a particular child based on a managed entity name. -func (s SearchIndex) FindChild(ctx context.Context, entity Reference, name string) (Reference, error) { - req := types.FindChild{ - This: s.Reference(), - Entity: entity.Reference(), - Name: name, - } - - res, err := methods.FindChild(ctx, s.c, &req) - if err != nil { - return nil, err - } - - if res.Returnval == nil { - return nil, nil - } - return NewReference(s.c, *res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/storage_pod.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/storage_pod.go deleted file mode 100644 index 188b91a0..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/storage_pod.go +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/types" -) - -type StoragePod struct { - *Folder -} - -func NewStoragePod(c *vim25.Client, ref types.ManagedObjectReference) *StoragePod { - return &StoragePod{ - Folder: &Folder{ - Common: NewCommon(c, ref), - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/storage_resource_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/storage_resource_manager.go deleted file mode 100644 index 579bcd4d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/storage_resource_manager.go +++ /dev/null @@ -1,179 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type StorageResourceManager struct { - Common -} - -func NewStorageResourceManager(c *vim25.Client) *StorageResourceManager { - sr := StorageResourceManager{ - Common: NewCommon(c, *c.ServiceContent.StorageResourceManager), - } - - return &sr -} - -func (sr StorageResourceManager) ApplyStorageDrsRecommendation(ctx context.Context, key []string) (*Task, error) { - req := types.ApplyStorageDrsRecommendation_Task{ - This: sr.Reference(), - Key: key, - } - - res, err := methods.ApplyStorageDrsRecommendation_Task(ctx, sr.c, &req) - if err != nil { - return nil, err - } - - return NewTask(sr.c, res.Returnval), nil -} - -func (sr StorageResourceManager) ApplyStorageDrsRecommendationToPod(ctx context.Context, pod *StoragePod, key string) (*Task, error) { - req := types.ApplyStorageDrsRecommendationToPod_Task{ - This: sr.Reference(), - Key: key, - } - - if pod != nil { - req.Pod = pod.Reference() - } - - res, err := methods.ApplyStorageDrsRecommendationToPod_Task(ctx, sr.c, &req) - if err != nil { - return nil, err - } - - return NewTask(sr.c, res.Returnval), nil -} - -func (sr StorageResourceManager) CancelStorageDrsRecommendation(ctx context.Context, key []string) error { - req := types.CancelStorageDrsRecommendation{ - This: sr.Reference(), - Key: key, - } - - _, err := methods.CancelStorageDrsRecommendation(ctx, sr.c, &req) - - return err -} - -func (sr StorageResourceManager) ConfigureDatastoreIORM(ctx context.Context, datastore *Datastore, spec types.StorageIORMConfigSpec, key string) (*Task, error) { - req := types.ConfigureDatastoreIORM_Task{ - This: sr.Reference(), - Spec: spec, - } - - if datastore != nil { - req.Datastore = datastore.Reference() - } - - res, err := methods.ConfigureDatastoreIORM_Task(ctx, sr.c, &req) - if err != nil { - return nil, err - } - - return NewTask(sr.c, res.Returnval), nil -} - -func (sr StorageResourceManager) ConfigureStorageDrsForPod(ctx context.Context, pod *StoragePod, spec types.StorageDrsConfigSpec, modify bool) (*Task, error) { - req := types.ConfigureStorageDrsForPod_Task{ - This: sr.Reference(), - Spec: spec, - Modify: modify, - } - - if pod != nil { - req.Pod = pod.Reference() - } - - res, err := methods.ConfigureStorageDrsForPod_Task(ctx, sr.c, &req) - if err != nil { - return nil, err - } - - return NewTask(sr.c, res.Returnval), nil -} - -func (sr StorageResourceManager) QueryDatastorePerformanceSummary(ctx context.Context, datastore *Datastore) ([]types.StoragePerformanceSummary, error) { - req := types.QueryDatastorePerformanceSummary{ - This: sr.Reference(), - } - - if datastore != nil { - req.Datastore = datastore.Reference() - } - - res, err := methods.QueryDatastorePerformanceSummary(ctx, sr.c, &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (sr StorageResourceManager) QueryIORMConfigOption(ctx context.Context, host *HostSystem) (*types.StorageIORMConfigOption, error) { - req := types.QueryIORMConfigOption{ - This: sr.Reference(), - } - - if host != nil { - req.Host = host.Reference() - } - - res, err := methods.QueryIORMConfigOption(ctx, sr.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -func (sr StorageResourceManager) RecommendDatastores(ctx context.Context, storageSpec types.StoragePlacementSpec) (*types.StoragePlacementResult, error) { - req := types.RecommendDatastores{ - This: sr.Reference(), - StorageSpec: storageSpec, - } - - res, err := methods.RecommendDatastores(ctx, sr.c, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -func (sr StorageResourceManager) RefreshStorageDrsRecommendation(ctx context.Context, pod *StoragePod) error { - req := types.RefreshStorageDrsRecommendation{ - This: sr.Reference(), - } - - if pod != nil { - req.Pod = pod.Reference() - } - - _, err := methods.RefreshStorageDrsRecommendation(ctx, sr.c, &req) - - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/task.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/task.go deleted file mode 100644 index 2b66aa93..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/task.go +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/task" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/progress" - "github.com/vmware/govmomi/vim25/types" -) - -// Task is a convenience wrapper around task.Task that keeps a reference to -// the client that was used to create it. This allows users to call the Wait() -// function with only a context parameter, instead of a context parameter, a -// soap.RoundTripper, and reference to the root property collector. -type Task struct { - Common -} - -func NewTask(c *vim25.Client, ref types.ManagedObjectReference) *Task { - t := Task{ - Common: NewCommon(c, ref), - } - - return &t -} - -func (t *Task) Wait(ctx context.Context) error { - _, err := t.WaitForResult(ctx, nil) - return err -} - -func (t *Task) WaitForResult(ctx context.Context, s progress.Sinker) (*types.TaskInfo, error) { - p := property.DefaultCollector(t.c) - return task.Wait(ctx, t.Reference(), p, s) -} - -func (t *Task) Cancel(ctx context.Context) error { - _, err := methods.CancelTask(ctx, t.Client(), &types.CancelTask{ - This: t.Reference(), - }) - - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/types.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/types.go deleted file mode 100644 index aefb611f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/types.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/types" -) - -type Reference interface { - Reference() types.ManagedObjectReference -} - -func NewReference(c *vim25.Client, e types.ManagedObjectReference) Reference { - switch e.Type { - case "Folder": - return NewFolder(c, e) - case "StoragePod": - return &StoragePod{ - NewFolder(c, e), - } - case "Datacenter": - return NewDatacenter(c, e) - case "VirtualMachine": - return NewVirtualMachine(c, e) - case "VirtualApp": - return &VirtualApp{ - NewResourcePool(c, e), - } - case "ComputeResource": - return NewComputeResource(c, e) - case "ClusterComputeResource": - return NewClusterComputeResource(c, e) - case "HostSystem": - return NewHostSystem(c, e) - case "Network", "OpaqueNetwork": - return NewNetwork(c, e) - case "ResourcePool": - return NewResourcePool(c, e) - case "DistributedVirtualSwitch": - return NewDistributedVirtualSwitch(c, e) - case "VmwareDistributedVirtualSwitch": - return &VmwareDistributedVirtualSwitch{*NewDistributedVirtualSwitch(c, e)} - case "DistributedVirtualPortgroup": - return NewDistributedVirtualPortgroup(c, e) - case "Datastore": - return NewDatastore(c, e) - default: - panic("Unknown managed entity: " + e.Type) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_app.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_app.go deleted file mode 100644 index 4811178f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_app.go +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type VirtualApp struct { - *ResourcePool -} - -func NewVirtualApp(c *vim25.Client, ref types.ManagedObjectReference) *VirtualApp { - return &VirtualApp{ - ResourcePool: NewResourcePool(c, ref), - } -} - -func (p VirtualApp) CreateChildVM(ctx context.Context, config types.VirtualMachineConfigSpec, host *HostSystem) (*Task, error) { - req := types.CreateChildVM_Task{ - This: p.Reference(), - Config: config, - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - res, err := methods.CreateChildVM_Task(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return NewTask(p.c, res.Returnval), nil -} - -func (p VirtualApp) UpdateConfig(ctx context.Context, spec types.VAppConfigSpec) error { - req := types.UpdateVAppConfig{ - This: p.Reference(), - Spec: spec, - } - - _, err := methods.UpdateVAppConfig(ctx, p.c, &req) - return err -} - -func (p VirtualApp) PowerOn(ctx context.Context) (*Task, error) { - req := types.PowerOnVApp_Task{ - This: p.Reference(), - } - - res, err := methods.PowerOnVApp_Task(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return NewTask(p.c, res.Returnval), nil -} - -func (p VirtualApp) PowerOff(ctx context.Context, force bool) (*Task, error) { - req := types.PowerOffVApp_Task{ - This: p.Reference(), - Force: force, - } - - res, err := methods.PowerOffVApp_Task(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return NewTask(p.c, res.Returnval), nil - -} - -func (p VirtualApp) Suspend(ctx context.Context) (*Task, error) { - req := types.SuspendVApp_Task{ - This: p.Reference(), - } - - res, err := methods.SuspendVApp_Task(ctx, p.c, &req) - if err != nil { - return nil, err - } - - return NewTask(p.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_device_list.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_device_list.go deleted file mode 100644 index 24821aa6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_device_list.go +++ /dev/null @@ -1,922 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "errors" - "fmt" - "path/filepath" - "reflect" - "regexp" - "sort" - "strings" - - "github.com/vmware/govmomi/vim25/types" -) - -// Type values for use in BootOrder -const ( - DeviceTypeCdrom = "cdrom" - DeviceTypeDisk = "disk" - DeviceTypeEthernet = "ethernet" - DeviceTypeFloppy = "floppy" -) - -// VirtualDeviceList provides helper methods for working with a list of virtual devices. -type VirtualDeviceList []types.BaseVirtualDevice - -// SCSIControllerTypes are used for adding a new SCSI controller to a VM. -func SCSIControllerTypes() VirtualDeviceList { - // Return a mutable list of SCSI controller types, initialized with defaults. - return VirtualDeviceList([]types.BaseVirtualDevice{ - &types.VirtualLsiLogicController{}, - &types.VirtualBusLogicController{}, - &types.ParaVirtualSCSIController{}, - &types.VirtualLsiLogicSASController{}, - }).Select(func(device types.BaseVirtualDevice) bool { - c := device.(types.BaseVirtualSCSIController).GetVirtualSCSIController() - c.SharedBus = types.VirtualSCSISharingNoSharing - c.BusNumber = -1 - return true - }) -} - -// EthernetCardTypes are used for adding a new ethernet card to a VM. -func EthernetCardTypes() VirtualDeviceList { - return VirtualDeviceList([]types.BaseVirtualDevice{ - &types.VirtualE1000{}, - &types.VirtualE1000e{}, - &types.VirtualVmxnet3{}, - }).Select(func(device types.BaseVirtualDevice) bool { - c := device.(types.BaseVirtualEthernetCard).GetVirtualEthernetCard() - c.GetVirtualDevice().Key = -1 - return true - }) -} - -// Select returns a new list containing all elements of the list for which the given func returns true. -func (l VirtualDeviceList) Select(f func(device types.BaseVirtualDevice) bool) VirtualDeviceList { - var found VirtualDeviceList - - for _, device := range l { - if f(device) { - found = append(found, device) - } - } - - return found -} - -// SelectByType returns a new list with devices that are equal to or extend the given type. -func (l VirtualDeviceList) SelectByType(deviceType types.BaseVirtualDevice) VirtualDeviceList { - dtype := reflect.TypeOf(deviceType) - if dtype == nil { - return nil - } - dname := dtype.Elem().Name() - - return l.Select(func(device types.BaseVirtualDevice) bool { - t := reflect.TypeOf(device) - - if t == dtype { - return true - } - - _, ok := t.Elem().FieldByName(dname) - - return ok - }) -} - -// SelectByBackingInfo returns a new list with devices matching the given backing info. -// If the value of backing is nil, any device with a backing of the same type will be returned. -func (l VirtualDeviceList) SelectByBackingInfo(backing types.BaseVirtualDeviceBackingInfo) VirtualDeviceList { - t := reflect.TypeOf(backing) - - return l.Select(func(device types.BaseVirtualDevice) bool { - db := device.GetVirtualDevice().Backing - if db == nil { - return false - } - - if reflect.TypeOf(db) != t { - return false - } - - if reflect.ValueOf(backing).IsNil() { - // selecting by backing type - return true - } - - switch a := db.(type) { - case *types.VirtualEthernetCardNetworkBackingInfo: - b := backing.(*types.VirtualEthernetCardNetworkBackingInfo) - return a.DeviceName == b.DeviceName - case *types.VirtualEthernetCardDistributedVirtualPortBackingInfo: - b := backing.(*types.VirtualEthernetCardDistributedVirtualPortBackingInfo) - return a.Port.SwitchUuid == b.Port.SwitchUuid && - a.Port.PortgroupKey == b.Port.PortgroupKey - case *types.VirtualDiskFlatVer2BackingInfo: - b := backing.(*types.VirtualDiskFlatVer2BackingInfo) - if a.Parent != nil && b.Parent != nil { - return a.Parent.FileName == b.Parent.FileName - } - return a.FileName == b.FileName - case *types.VirtualSerialPortURIBackingInfo: - b := backing.(*types.VirtualSerialPortURIBackingInfo) - return a.ServiceURI == b.ServiceURI - case types.BaseVirtualDeviceFileBackingInfo: - b := backing.(types.BaseVirtualDeviceFileBackingInfo) - return a.GetVirtualDeviceFileBackingInfo().FileName == b.GetVirtualDeviceFileBackingInfo().FileName - default: - return false - } - }) -} - -// Find returns the device matching the given name. -func (l VirtualDeviceList) Find(name string) types.BaseVirtualDevice { - for _, device := range l { - if l.Name(device) == name { - return device - } - } - return nil -} - -// FindByKey returns the device matching the given key. -func (l VirtualDeviceList) FindByKey(key int32) types.BaseVirtualDevice { - for _, device := range l { - if device.GetVirtualDevice().Key == key { - return device - } - } - return nil -} - -// FindIDEController will find the named IDE controller if given, otherwise will pick an available controller. -// An error is returned if the named controller is not found or not an IDE controller. Or, if name is not -// given and no available controller can be found. -func (l VirtualDeviceList) FindIDEController(name string) (*types.VirtualIDEController, error) { - if name != "" { - d := l.Find(name) - if d == nil { - return nil, fmt.Errorf("device '%s' not found", name) - } - if c, ok := d.(*types.VirtualIDEController); ok { - return c, nil - } - return nil, fmt.Errorf("%s is not an IDE controller", name) - } - - c := l.PickController((*types.VirtualIDEController)(nil)) - if c == nil { - return nil, errors.New("no available IDE controller") - } - - return c.(*types.VirtualIDEController), nil -} - -// CreateIDEController creates a new IDE controller. -func (l VirtualDeviceList) CreateIDEController() (types.BaseVirtualDevice, error) { - ide := &types.VirtualIDEController{} - ide.Key = l.NewKey() - return ide, nil -} - -// FindSCSIController will find the named SCSI controller if given, otherwise will pick an available controller. -// An error is returned if the named controller is not found or not an SCSI controller. Or, if name is not -// given and no available controller can be found. -func (l VirtualDeviceList) FindSCSIController(name string) (*types.VirtualSCSIController, error) { - if name != "" { - d := l.Find(name) - if d == nil { - return nil, fmt.Errorf("device '%s' not found", name) - } - if c, ok := d.(types.BaseVirtualSCSIController); ok { - return c.GetVirtualSCSIController(), nil - } - return nil, fmt.Errorf("%s is not an SCSI controller", name) - } - - c := l.PickController((*types.VirtualSCSIController)(nil)) - if c == nil { - return nil, errors.New("no available SCSI controller") - } - - return c.(types.BaseVirtualSCSIController).GetVirtualSCSIController(), nil -} - -// CreateSCSIController creates a new SCSI controller of type name if given, otherwise defaults to lsilogic. -func (l VirtualDeviceList) CreateSCSIController(name string) (types.BaseVirtualDevice, error) { - ctypes := SCSIControllerTypes() - - if name == "scsi" || name == "" { - name = ctypes.Type(ctypes[0]) - } - - found := ctypes.Select(func(device types.BaseVirtualDevice) bool { - return l.Type(device) == name - }) - - if len(found) == 0 { - return nil, fmt.Errorf("unknown SCSI controller type '%s'", name) - } - - c, ok := found[0].(types.BaseVirtualSCSIController) - if !ok { - return nil, fmt.Errorf("invalid SCSI controller type '%s'", name) - } - - scsi := c.GetVirtualSCSIController() - scsi.BusNumber = l.newSCSIBusNumber() - scsi.Key = l.NewKey() - scsi.ScsiCtlrUnitNumber = 7 - return c.(types.BaseVirtualDevice), nil -} - -var scsiBusNumbers = []int{0, 1, 2, 3} - -// newSCSIBusNumber returns the bus number to use for adding a new SCSI bus device. -// -1 is returned if there are no bus numbers available. -func (l VirtualDeviceList) newSCSIBusNumber() int32 { - var used []int - - for _, d := range l.SelectByType((*types.VirtualSCSIController)(nil)) { - num := d.(types.BaseVirtualSCSIController).GetVirtualSCSIController().BusNumber - if num >= 0 { - used = append(used, int(num)) - } // else caller is creating a new vm using SCSIControllerTypes - } - - sort.Ints(used) - - for i, n := range scsiBusNumbers { - if i == len(used) || n != used[i] { - return int32(n) - } - } - - return -1 -} - -// FindNVMEController will find the named NVME controller if given, otherwise will pick an available controller. -// An error is returned if the named controller is not found or not an NVME controller. Or, if name is not -// given and no available controller can be found. -func (l VirtualDeviceList) FindNVMEController(name string) (*types.VirtualNVMEController, error) { - if name != "" { - d := l.Find(name) - if d == nil { - return nil, fmt.Errorf("device '%s' not found", name) - } - if c, ok := d.(*types.VirtualNVMEController); ok { - return c, nil - } - return nil, fmt.Errorf("%s is not an NVME controller", name) - } - - c := l.PickController((*types.VirtualNVMEController)(nil)) - if c == nil { - return nil, errors.New("no available NVME controller") - } - - return c.(*types.VirtualNVMEController), nil -} - -// CreateNVMEController creates a new NVMWE controller. -func (l VirtualDeviceList) CreateNVMEController() (types.BaseVirtualDevice, error) { - nvme := &types.VirtualNVMEController{} - nvme.BusNumber = l.newNVMEBusNumber() - nvme.Key = l.NewKey() - - return nvme, nil -} - -var nvmeBusNumbers = []int{0, 1, 2, 3} - -// newNVMEBusNumber returns the bus number to use for adding a new NVME bus device. -// -1 is returned if there are no bus numbers available. -func (l VirtualDeviceList) newNVMEBusNumber() int32 { - var used []int - - for _, d := range l.SelectByType((*types.VirtualNVMEController)(nil)) { - num := d.(types.BaseVirtualController).GetVirtualController().BusNumber - if num >= 0 { - used = append(used, int(num)) - } // else caller is creating a new vm using NVMEControllerTypes - } - - sort.Ints(used) - - for i, n := range nvmeBusNumbers { - if i == len(used) || n != used[i] { - return int32(n) - } - } - - return -1 -} - -// FindDiskController will find an existing ide or scsi disk controller. -func (l VirtualDeviceList) FindDiskController(name string) (types.BaseVirtualController, error) { - switch { - case name == "ide": - return l.FindIDEController("") - case name == "scsi" || name == "": - return l.FindSCSIController("") - case name == "nvme": - return l.FindNVMEController("") - default: - if c, ok := l.Find(name).(types.BaseVirtualController); ok { - return c, nil - } - return nil, fmt.Errorf("%s is not a valid controller", name) - } -} - -// PickController returns a controller of the given type(s). -// If no controllers are found or have no available slots, then nil is returned. -func (l VirtualDeviceList) PickController(kind types.BaseVirtualController) types.BaseVirtualController { - l = l.SelectByType(kind.(types.BaseVirtualDevice)).Select(func(device types.BaseVirtualDevice) bool { - num := len(device.(types.BaseVirtualController).GetVirtualController().Device) - - switch device.(type) { - case types.BaseVirtualSCSIController: - return num < 15 - case *types.VirtualIDEController: - return num < 2 - case *types.VirtualNVMEController: - return num < 8 - default: - return true - } - }) - - if len(l) == 0 { - return nil - } - - return l[0].(types.BaseVirtualController) -} - -// newUnitNumber returns the unit number to use for attaching a new device to the given controller. -func (l VirtualDeviceList) newUnitNumber(c types.BaseVirtualController) int32 { - units := make([]bool, 30) - - switch sc := c.(type) { - case types.BaseVirtualSCSIController: - // The SCSI controller sits on its own bus - units[sc.GetVirtualSCSIController().ScsiCtlrUnitNumber] = true - } - - key := c.GetVirtualController().Key - - for _, device := range l { - d := device.GetVirtualDevice() - - if d.ControllerKey == key && d.UnitNumber != nil { - units[int(*d.UnitNumber)] = true - } - } - - for unit, used := range units { - if !used { - return int32(unit) - } - } - - return -1 -} - -// NewKey returns the key to use for adding a new device to the device list. -// The device list we're working with here may not be complete (e.g. when -// we're only adding new devices), so any positive keys could conflict with device keys -// that are already in use. To avoid this type of conflict, we can use negative keys -// here, which will be resolved to positive keys by vSphere as the reconfiguration is done. -func (l VirtualDeviceList) NewKey() int32 { - var key int32 = -200 - - for _, device := range l { - d := device.GetVirtualDevice() - if d.Key < key { - key = d.Key - } - } - - return key - 1 -} - -// AssignController assigns a device to a controller. -func (l VirtualDeviceList) AssignController(device types.BaseVirtualDevice, c types.BaseVirtualController) { - d := device.GetVirtualDevice() - d.ControllerKey = c.GetVirtualController().Key - d.UnitNumber = new(int32) - *d.UnitNumber = l.newUnitNumber(c) - if d.Key == 0 { - d.Key = -1 - } -} - -// CreateDisk creates a new VirtualDisk device which can be added to a VM. -func (l VirtualDeviceList) CreateDisk(c types.BaseVirtualController, ds types.ManagedObjectReference, name string) *types.VirtualDisk { - // If name is not specified, one will be chosen for you. - // But if when given, make sure it ends in .vmdk, otherwise it will be treated as a directory. - if len(name) > 0 && filepath.Ext(name) != ".vmdk" { - name += ".vmdk" - } - - device := &types.VirtualDisk{ - VirtualDevice: types.VirtualDevice{ - Backing: &types.VirtualDiskFlatVer2BackingInfo{ - DiskMode: string(types.VirtualDiskModePersistent), - ThinProvisioned: types.NewBool(true), - VirtualDeviceFileBackingInfo: types.VirtualDeviceFileBackingInfo{ - FileName: name, - Datastore: &ds, - }, - }, - }, - } - - l.AssignController(device, c) - return device -} - -// ChildDisk creates a new VirtualDisk device, linked to the given parent disk, which can be added to a VM. -func (l VirtualDeviceList) ChildDisk(parent *types.VirtualDisk) *types.VirtualDisk { - disk := *parent - backing := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo) - p := new(DatastorePath) - p.FromString(backing.FileName) - p.Path = "" - - // Use specified disk as parent backing to a new disk. - disk.Backing = &types.VirtualDiskFlatVer2BackingInfo{ - VirtualDeviceFileBackingInfo: types.VirtualDeviceFileBackingInfo{ - FileName: p.String(), - Datastore: backing.Datastore, - }, - Parent: backing, - DiskMode: backing.DiskMode, - ThinProvisioned: backing.ThinProvisioned, - } - - return &disk -} - -func (l VirtualDeviceList) connectivity(device types.BaseVirtualDevice, v bool) error { - c := device.GetVirtualDevice().Connectable - if c == nil { - return fmt.Errorf("%s is not connectable", l.Name(device)) - } - - c.Connected = v - c.StartConnected = v - - return nil -} - -// Connect changes the device to connected, returns an error if the device is not connectable. -func (l VirtualDeviceList) Connect(device types.BaseVirtualDevice) error { - return l.connectivity(device, true) -} - -// Disconnect changes the device to disconnected, returns an error if the device is not connectable. -func (l VirtualDeviceList) Disconnect(device types.BaseVirtualDevice) error { - return l.connectivity(device, false) -} - -// FindCdrom finds a cdrom device with the given name, defaulting to the first cdrom device if any. -func (l VirtualDeviceList) FindCdrom(name string) (*types.VirtualCdrom, error) { - if name != "" { - d := l.Find(name) - if d == nil { - return nil, fmt.Errorf("device '%s' not found", name) - } - if c, ok := d.(*types.VirtualCdrom); ok { - return c, nil - } - return nil, fmt.Errorf("%s is not a cdrom device", name) - } - - c := l.SelectByType((*types.VirtualCdrom)(nil)) - if len(c) == 0 { - return nil, errors.New("no cdrom device found") - } - - return c[0].(*types.VirtualCdrom), nil -} - -// CreateCdrom creates a new VirtualCdrom device which can be added to a VM. -func (l VirtualDeviceList) CreateCdrom(c *types.VirtualIDEController) (*types.VirtualCdrom, error) { - device := &types.VirtualCdrom{} - - l.AssignController(device, c) - - l.setDefaultCdromBacking(device) - - device.Connectable = &types.VirtualDeviceConnectInfo{ - AllowGuestControl: true, - Connected: true, - StartConnected: true, - } - - return device, nil -} - -// InsertIso changes the cdrom device backing to use the given iso file. -func (l VirtualDeviceList) InsertIso(device *types.VirtualCdrom, iso string) *types.VirtualCdrom { - device.Backing = &types.VirtualCdromIsoBackingInfo{ - VirtualDeviceFileBackingInfo: types.VirtualDeviceFileBackingInfo{ - FileName: iso, - }, - } - - return device -} - -// EjectIso removes the iso file based backing and replaces with the default cdrom backing. -func (l VirtualDeviceList) EjectIso(device *types.VirtualCdrom) *types.VirtualCdrom { - l.setDefaultCdromBacking(device) - return device -} - -func (l VirtualDeviceList) setDefaultCdromBacking(device *types.VirtualCdrom) { - device.Backing = &types.VirtualCdromAtapiBackingInfo{ - VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ - DeviceName: fmt.Sprintf("%s-%d-%d", DeviceTypeCdrom, device.ControllerKey, device.UnitNumber), - UseAutoDetect: types.NewBool(false), - }, - } -} - -// FindFloppy finds a floppy device with the given name, defaulting to the first floppy device if any. -func (l VirtualDeviceList) FindFloppy(name string) (*types.VirtualFloppy, error) { - if name != "" { - d := l.Find(name) - if d == nil { - return nil, fmt.Errorf("device '%s' not found", name) - } - if c, ok := d.(*types.VirtualFloppy); ok { - return c, nil - } - return nil, fmt.Errorf("%s is not a floppy device", name) - } - - c := l.SelectByType((*types.VirtualFloppy)(nil)) - if len(c) == 0 { - return nil, errors.New("no floppy device found") - } - - return c[0].(*types.VirtualFloppy), nil -} - -// CreateFloppy creates a new VirtualFloppy device which can be added to a VM. -func (l VirtualDeviceList) CreateFloppy() (*types.VirtualFloppy, error) { - device := &types.VirtualFloppy{} - - c := l.PickController((*types.VirtualSIOController)(nil)) - if c == nil { - return nil, errors.New("no available SIO controller") - } - - l.AssignController(device, c) - - l.setDefaultFloppyBacking(device) - - device.Connectable = &types.VirtualDeviceConnectInfo{ - AllowGuestControl: true, - Connected: true, - StartConnected: true, - } - - return device, nil -} - -// InsertImg changes the floppy device backing to use the given img file. -func (l VirtualDeviceList) InsertImg(device *types.VirtualFloppy, img string) *types.VirtualFloppy { - device.Backing = &types.VirtualFloppyImageBackingInfo{ - VirtualDeviceFileBackingInfo: types.VirtualDeviceFileBackingInfo{ - FileName: img, - }, - } - - return device -} - -// EjectImg removes the img file based backing and replaces with the default floppy backing. -func (l VirtualDeviceList) EjectImg(device *types.VirtualFloppy) *types.VirtualFloppy { - l.setDefaultFloppyBacking(device) - return device -} - -func (l VirtualDeviceList) setDefaultFloppyBacking(device *types.VirtualFloppy) { - device.Backing = &types.VirtualFloppyDeviceBackingInfo{ - VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ - DeviceName: fmt.Sprintf("%s-%d", DeviceTypeFloppy, device.UnitNumber), - UseAutoDetect: types.NewBool(false), - }, - } -} - -// FindSerialPort finds a serial port device with the given name, defaulting to the first serial port device if any. -func (l VirtualDeviceList) FindSerialPort(name string) (*types.VirtualSerialPort, error) { - if name != "" { - d := l.Find(name) - if d == nil { - return nil, fmt.Errorf("device '%s' not found", name) - } - if c, ok := d.(*types.VirtualSerialPort); ok { - return c, nil - } - return nil, fmt.Errorf("%s is not a serial port device", name) - } - - c := l.SelectByType((*types.VirtualSerialPort)(nil)) - if len(c) == 0 { - return nil, errors.New("no serial port device found") - } - - return c[0].(*types.VirtualSerialPort), nil -} - -// CreateSerialPort creates a new VirtualSerialPort device which can be added to a VM. -func (l VirtualDeviceList) CreateSerialPort() (*types.VirtualSerialPort, error) { - device := &types.VirtualSerialPort{ - YieldOnPoll: true, - } - - c := l.PickController((*types.VirtualSIOController)(nil)) - if c == nil { - return nil, errors.New("no available SIO controller") - } - - l.AssignController(device, c) - - l.setDefaultSerialPortBacking(device) - - return device, nil -} - -// ConnectSerialPort connects a serial port to a server or client uri. -func (l VirtualDeviceList) ConnectSerialPort(device *types.VirtualSerialPort, uri string, client bool, proxyuri string) *types.VirtualSerialPort { - if strings.HasPrefix(uri, "[") { - device.Backing = &types.VirtualSerialPortFileBackingInfo{ - VirtualDeviceFileBackingInfo: types.VirtualDeviceFileBackingInfo{ - FileName: uri, - }, - } - - return device - } - - direction := types.VirtualDeviceURIBackingOptionDirectionServer - if client { - direction = types.VirtualDeviceURIBackingOptionDirectionClient - } - - device.Backing = &types.VirtualSerialPortURIBackingInfo{ - VirtualDeviceURIBackingInfo: types.VirtualDeviceURIBackingInfo{ - Direction: string(direction), - ServiceURI: uri, - ProxyURI: proxyuri, - }, - } - - return device -} - -// DisconnectSerialPort disconnects the serial port backing. -func (l VirtualDeviceList) DisconnectSerialPort(device *types.VirtualSerialPort) *types.VirtualSerialPort { - l.setDefaultSerialPortBacking(device) - return device -} - -func (l VirtualDeviceList) setDefaultSerialPortBacking(device *types.VirtualSerialPort) { - device.Backing = &types.VirtualSerialPortURIBackingInfo{ - VirtualDeviceURIBackingInfo: types.VirtualDeviceURIBackingInfo{ - Direction: "client", - ServiceURI: "localhost:0", - }, - } -} - -// CreateEthernetCard creates a new VirtualEthernetCard of the given name name and initialized with the given backing. -func (l VirtualDeviceList) CreateEthernetCard(name string, backing types.BaseVirtualDeviceBackingInfo) (types.BaseVirtualDevice, error) { - ctypes := EthernetCardTypes() - - if name == "" { - name = ctypes.deviceName(ctypes[0]) - } - - found := ctypes.Select(func(device types.BaseVirtualDevice) bool { - return l.deviceName(device) == name - }) - - if len(found) == 0 { - return nil, fmt.Errorf("unknown ethernet card type '%s'", name) - } - - c, ok := found[0].(types.BaseVirtualEthernetCard) - if !ok { - return nil, fmt.Errorf("invalid ethernet card type '%s'", name) - } - - c.GetVirtualEthernetCard().Backing = backing - - return c.(types.BaseVirtualDevice), nil -} - -// PrimaryMacAddress returns the MacAddress field of the primary VirtualEthernetCard -func (l VirtualDeviceList) PrimaryMacAddress() string { - eth0 := l.Find("ethernet-0") - - if eth0 == nil { - return "" - } - - return eth0.(types.BaseVirtualEthernetCard).GetVirtualEthernetCard().MacAddress -} - -// convert a BaseVirtualDevice to a BaseVirtualMachineBootOptionsBootableDevice -var bootableDevices = map[string]func(device types.BaseVirtualDevice) types.BaseVirtualMachineBootOptionsBootableDevice{ - DeviceTypeCdrom: func(types.BaseVirtualDevice) types.BaseVirtualMachineBootOptionsBootableDevice { - return &types.VirtualMachineBootOptionsBootableCdromDevice{} - }, - DeviceTypeDisk: func(d types.BaseVirtualDevice) types.BaseVirtualMachineBootOptionsBootableDevice { - return &types.VirtualMachineBootOptionsBootableDiskDevice{ - DeviceKey: d.GetVirtualDevice().Key, - } - }, - DeviceTypeEthernet: func(d types.BaseVirtualDevice) types.BaseVirtualMachineBootOptionsBootableDevice { - return &types.VirtualMachineBootOptionsBootableEthernetDevice{ - DeviceKey: d.GetVirtualDevice().Key, - } - }, - DeviceTypeFloppy: func(types.BaseVirtualDevice) types.BaseVirtualMachineBootOptionsBootableDevice { - return &types.VirtualMachineBootOptionsBootableFloppyDevice{} - }, -} - -// BootOrder returns a list of devices which can be used to set boot order via VirtualMachine.SetBootOptions. -// The order can any of "ethernet", "cdrom", "floppy" or "disk" or by specific device name. -func (l VirtualDeviceList) BootOrder(order []string) []types.BaseVirtualMachineBootOptionsBootableDevice { - var devices []types.BaseVirtualMachineBootOptionsBootableDevice - - for _, name := range order { - if kind, ok := bootableDevices[name]; ok { - for _, device := range l { - if l.Type(device) == name { - devices = append(devices, kind(device)) - } - - } - continue - } - - if d := l.Find(name); d != nil { - if kind, ok := bootableDevices[l.Type(d)]; ok { - devices = append(devices, kind(d)) - } - } - } - - return devices -} - -// SelectBootOrder returns an ordered list of devices matching the given bootable device order -func (l VirtualDeviceList) SelectBootOrder(order []types.BaseVirtualMachineBootOptionsBootableDevice) VirtualDeviceList { - var devices VirtualDeviceList - - for _, bd := range order { - for _, device := range l { - if kind, ok := bootableDevices[l.Type(device)]; ok { - if reflect.DeepEqual(kind(device), bd) { - devices = append(devices, device) - } - } - } - } - - return devices -} - -// TypeName returns the vmodl type name of the device -func (l VirtualDeviceList) TypeName(device types.BaseVirtualDevice) string { - dtype := reflect.TypeOf(device) - if dtype == nil { - return "" - } - return dtype.Elem().Name() -} - -var deviceNameRegexp = regexp.MustCompile(`(?:Virtual)?(?:Machine)?(\w+?)(?:Card|Device|Controller)?$`) - -func (l VirtualDeviceList) deviceName(device types.BaseVirtualDevice) string { - name := "device" - typeName := l.TypeName(device) - - m := deviceNameRegexp.FindStringSubmatch(typeName) - if len(m) == 2 { - name = strings.ToLower(m[1]) - } - - return name -} - -// Type returns a human-readable name for the given device -func (l VirtualDeviceList) Type(device types.BaseVirtualDevice) string { - switch device.(type) { - case types.BaseVirtualEthernetCard: - return DeviceTypeEthernet - case *types.ParaVirtualSCSIController: - return "pvscsi" - case *types.VirtualLsiLogicSASController: - return "lsilogic-sas" - case *types.VirtualNVMEController: - return "nvme" - default: - return l.deviceName(device) - } -} - -// Name returns a stable, human-readable name for the given device -func (l VirtualDeviceList) Name(device types.BaseVirtualDevice) string { - var key string - var UnitNumber int32 - d := device.GetVirtualDevice() - if d.UnitNumber != nil { - UnitNumber = *d.UnitNumber - } - - dtype := l.Type(device) - switch dtype { - case DeviceTypeEthernet: - key = fmt.Sprintf("%d", UnitNumber-7) - case DeviceTypeDisk: - key = fmt.Sprintf("%d-%d", d.ControllerKey, UnitNumber) - default: - key = fmt.Sprintf("%d", d.Key) - } - - return fmt.Sprintf("%s-%s", dtype, key) -} - -// ConfigSpec creates a virtual machine configuration spec for -// the specified operation, for the list of devices in the device list. -func (l VirtualDeviceList) ConfigSpec(op types.VirtualDeviceConfigSpecOperation) ([]types.BaseVirtualDeviceConfigSpec, error) { - var fop types.VirtualDeviceConfigSpecFileOperation - switch op { - case types.VirtualDeviceConfigSpecOperationAdd: - fop = types.VirtualDeviceConfigSpecFileOperationCreate - case types.VirtualDeviceConfigSpecOperationEdit: - fop = types.VirtualDeviceConfigSpecFileOperationReplace - case types.VirtualDeviceConfigSpecOperationRemove: - fop = types.VirtualDeviceConfigSpecFileOperationDestroy - default: - panic("unknown op") - } - - var res []types.BaseVirtualDeviceConfigSpec - for _, device := range l { - config := &types.VirtualDeviceConfigSpec{ - Device: device, - Operation: op, - } - - if disk, ok := device.(*types.VirtualDisk); ok { - config.FileOperation = fop - - // Special case to attach an existing disk - if op == types.VirtualDeviceConfigSpecOperationAdd && disk.CapacityInKB == 0 { - childDisk := false - if b, ok := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo); ok { - childDisk = b.Parent != nil - } - - if !childDisk { - // Existing disk, clear file operation - config.FileOperation = "" - } - } - } - - res = append(res, config) - } - - return res, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_disk_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_disk_manager.go deleted file mode 100644 index b26e2f71..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_disk_manager.go +++ /dev/null @@ -1,170 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type VirtualDiskManager struct { - Common -} - -func NewVirtualDiskManager(c *vim25.Client) *VirtualDiskManager { - m := VirtualDiskManager{ - Common: NewCommon(c, *c.ServiceContent.VirtualDiskManager), - } - - return &m -} - -// CopyVirtualDisk copies a virtual disk, performing conversions as specified in the spec. -func (m VirtualDiskManager) CopyVirtualDisk( - ctx context.Context, - sourceName string, sourceDatacenter *Datacenter, - destName string, destDatacenter *Datacenter, - destSpec *types.VirtualDiskSpec, force bool) (*Task, error) { - - req := types.CopyVirtualDisk_Task{ - This: m.Reference(), - SourceName: sourceName, - DestName: destName, - DestSpec: destSpec, - Force: types.NewBool(force), - } - - if sourceDatacenter != nil { - ref := sourceDatacenter.Reference() - req.SourceDatacenter = &ref - } - - if destDatacenter != nil { - ref := destDatacenter.Reference() - req.DestDatacenter = &ref - } - - res, err := methods.CopyVirtualDisk_Task(ctx, m.c, &req) - if err != nil { - return nil, err - } - - return NewTask(m.c, res.Returnval), nil -} - -// CreateVirtualDisk creates a new virtual disk. -func (m VirtualDiskManager) CreateVirtualDisk( - ctx context.Context, - name string, datacenter *Datacenter, - spec types.BaseVirtualDiskSpec) (*Task, error) { - - req := types.CreateVirtualDisk_Task{ - This: m.Reference(), - Name: name, - Spec: spec, - } - - if datacenter != nil { - ref := datacenter.Reference() - req.Datacenter = &ref - } - - res, err := methods.CreateVirtualDisk_Task(ctx, m.c, &req) - if err != nil { - return nil, err - } - - return NewTask(m.c, res.Returnval), nil -} - -// MoveVirtualDisk moves a virtual disk. -func (m VirtualDiskManager) MoveVirtualDisk( - ctx context.Context, - sourceName string, sourceDatacenter *Datacenter, - destName string, destDatacenter *Datacenter, - force bool) (*Task, error) { - req := types.MoveVirtualDisk_Task{ - This: m.Reference(), - SourceName: sourceName, - DestName: destName, - Force: types.NewBool(force), - } - - if sourceDatacenter != nil { - ref := sourceDatacenter.Reference() - req.SourceDatacenter = &ref - } - - if destDatacenter != nil { - ref := destDatacenter.Reference() - req.DestDatacenter = &ref - } - - res, err := methods.MoveVirtualDisk_Task(ctx, m.c, &req) - if err != nil { - return nil, err - } - - return NewTask(m.c, res.Returnval), nil -} - -// DeleteVirtualDisk deletes a virtual disk. -func (m VirtualDiskManager) DeleteVirtualDisk(ctx context.Context, name string, dc *Datacenter) (*Task, error) { - req := types.DeleteVirtualDisk_Task{ - This: m.Reference(), - Name: name, - } - - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - res, err := methods.DeleteVirtualDisk_Task(ctx, m.c, &req) - if err != nil { - return nil, err - } - - return NewTask(m.c, res.Returnval), nil -} - -// Queries virtual disk uuid -func (m VirtualDiskManager) QueryVirtualDiskUuid(ctx context.Context, name string, dc *Datacenter) (string, error) { - req := types.QueryVirtualDiskUuid{ - This: m.Reference(), - Name: name, - } - - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - res, err := methods.QueryVirtualDiskUuid(ctx, m.c, &req) - if err != nil { - return "", err - } - - if res == nil { - return "", nil - } - - return res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_disk_manager_internal.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_disk_manager_internal.go deleted file mode 100644 index 642cd62f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_disk_manager_internal.go +++ /dev/null @@ -1,97 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 object - -import ( - "context" - "reflect" - - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -func init() { - types.Add("ArrayOfVirtualDiskInfo", reflect.TypeOf((*arrayOfVirtualDiskInfo)(nil)).Elem()) - - types.Add("VirtualDiskInfo", reflect.TypeOf((*VirtualDiskInfo)(nil)).Elem()) -} - -type arrayOfVirtualDiskInfo struct { - VirtualDiskInfo []VirtualDiskInfo `xml:"VirtualDiskInfo,omitempty"` -} - -type queryVirtualDiskInfoTaskRequest struct { - This types.ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *types.ManagedObjectReference `xml:"datacenter,omitempty"` - IncludeParents bool `xml:"includeParents"` -} - -type queryVirtualDiskInfoTaskResponse struct { - Returnval types.ManagedObjectReference `xml:"returnval"` -} - -type queryVirtualDiskInfoTaskBody struct { - Req *queryVirtualDiskInfoTaskRequest `xml:"urn:internalvim25 QueryVirtualDiskInfo_Task,omitempty"` - Res *queryVirtualDiskInfoTaskResponse `xml:"urn:vim25 QueryVirtualDiskInfo_TaskResponse,omitempty"` - Err *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *queryVirtualDiskInfoTaskBody) Fault() *soap.Fault { return b.Err } - -func queryVirtualDiskInfoTask(ctx context.Context, r soap.RoundTripper, req *queryVirtualDiskInfoTaskRequest) (*queryVirtualDiskInfoTaskResponse, error) { - var reqBody, resBody queryVirtualDiskInfoTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type VirtualDiskInfo struct { - Name string `xml:"unit>name"` - DiskType string `xml:"diskType"` - Parent string `xml:"parent,omitempty"` -} - -func (m VirtualDiskManager) QueryVirtualDiskInfo(ctx context.Context, name string, dc *Datacenter, includeParents bool) ([]VirtualDiskInfo, error) { - req := queryVirtualDiskInfoTaskRequest{ - This: m.Reference(), - Name: name, - IncludeParents: includeParents, - } - - if dc != nil { - ref := dc.Reference() - req.Datacenter = &ref - } - - res, err := queryVirtualDiskInfoTask(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - info, err := NewTask(m.Client(), res.Returnval).WaitForResult(ctx, nil) - if err != nil { - return nil, err - } - - return info.Result.(arrayOfVirtualDiskInfo).VirtualDiskInfo, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_machine.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_machine.go deleted file mode 100644 index 02c4e237..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/virtual_machine.go +++ /dev/null @@ -1,759 +0,0 @@ -/* -Copyright (c) 2015-2017 VMware, 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 object - -import ( - "context" - "errors" - "fmt" - "net" - "path" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -const ( - PropRuntimePowerState = "summary.runtime.powerState" -) - -type VirtualMachine struct { - Common -} - -func NewVirtualMachine(c *vim25.Client, ref types.ManagedObjectReference) *VirtualMachine { - return &VirtualMachine{ - Common: NewCommon(c, ref), - } -} - -func (v VirtualMachine) PowerState(ctx context.Context) (types.VirtualMachinePowerState, error) { - var o mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{PropRuntimePowerState}, &o) - if err != nil { - return "", err - } - - return o.Summary.Runtime.PowerState, nil -} - -func (v VirtualMachine) PowerOn(ctx context.Context) (*Task, error) { - req := types.PowerOnVM_Task{ - This: v.Reference(), - } - - res, err := methods.PowerOnVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) PowerOff(ctx context.Context) (*Task, error) { - req := types.PowerOffVM_Task{ - This: v.Reference(), - } - - res, err := methods.PowerOffVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) Reset(ctx context.Context) (*Task, error) { - req := types.ResetVM_Task{ - This: v.Reference(), - } - - res, err := methods.ResetVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) Suspend(ctx context.Context) (*Task, error) { - req := types.SuspendVM_Task{ - This: v.Reference(), - } - - res, err := methods.SuspendVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) ShutdownGuest(ctx context.Context) error { - req := types.ShutdownGuest{ - This: v.Reference(), - } - - _, err := methods.ShutdownGuest(ctx, v.c, &req) - return err -} - -func (v VirtualMachine) RebootGuest(ctx context.Context) error { - req := types.RebootGuest{ - This: v.Reference(), - } - - _, err := methods.RebootGuest(ctx, v.c, &req) - return err -} - -func (v VirtualMachine) Destroy(ctx context.Context) (*Task, error) { - req := types.Destroy_Task{ - This: v.Reference(), - } - - res, err := methods.Destroy_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) Clone(ctx context.Context, folder *Folder, name string, config types.VirtualMachineCloneSpec) (*Task, error) { - req := types.CloneVM_Task{ - This: v.Reference(), - Folder: folder.Reference(), - Name: name, - Spec: config, - } - - res, err := methods.CloneVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) Customize(ctx context.Context, spec types.CustomizationSpec) (*Task, error) { - req := types.CustomizeVM_Task{ - This: v.Reference(), - Spec: spec, - } - - res, err := methods.CustomizeVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) Relocate(ctx context.Context, config types.VirtualMachineRelocateSpec, priority types.VirtualMachineMovePriority) (*Task, error) { - req := types.RelocateVM_Task{ - This: v.Reference(), - Spec: config, - Priority: priority, - } - - res, err := methods.RelocateVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) Reconfigure(ctx context.Context, config types.VirtualMachineConfigSpec) (*Task, error) { - req := types.ReconfigVM_Task{ - This: v.Reference(), - Spec: config, - } - - res, err := methods.ReconfigVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) WaitForIP(ctx context.Context) (string, error) { - var ip string - - p := property.DefaultCollector(v.c) - err := property.Wait(ctx, p, v.Reference(), []string{"guest.ipAddress"}, func(pc []types.PropertyChange) bool { - for _, c := range pc { - if c.Name != "guest.ipAddress" { - continue - } - if c.Op != types.PropertyChangeOpAssign { - continue - } - if c.Val == nil { - continue - } - - ip = c.Val.(string) - return true - } - - return false - }) - - if err != nil { - return "", err - } - - return ip, nil -} - -// WaitForNetIP waits for the VM guest.net property to report an IP address for all VM NICs. -// Only consider IPv4 addresses if the v4 param is true. -// By default, wait for all NICs to get an IP address, unless 1 or more device is given. -// A device can be specified by the MAC address or the device name, e.g. "ethernet-0". -// Returns a map with MAC address as the key and IP address list as the value. -func (v VirtualMachine) WaitForNetIP(ctx context.Context, v4 bool, device ...string) (map[string][]string, error) { - macs := make(map[string][]string) - eths := make(map[string]string) - - p := property.DefaultCollector(v.c) - - // Wait for all NICs to have a MacAddress, which may not be generated yet. - err := property.Wait(ctx, p, v.Reference(), []string{"config.hardware.device"}, func(pc []types.PropertyChange) bool { - for _, c := range pc { - if c.Op != types.PropertyChangeOpAssign { - continue - } - - devices := VirtualDeviceList(c.Val.(types.ArrayOfVirtualDevice).VirtualDevice) - for _, d := range devices { - if nic, ok := d.(types.BaseVirtualEthernetCard); ok { - mac := nic.GetVirtualEthernetCard().MacAddress - if mac == "" { - return false - } - macs[mac] = nil - eths[devices.Name(d)] = mac - } - } - } - - return true - }) - - if len(device) != 0 { - // Only wait for specific NIC(s) - macs = make(map[string][]string) - for _, mac := range device { - if eth, ok := eths[mac]; ok { - mac = eth // device name, e.g. "ethernet-0" - } - macs[mac] = nil - } - } - - err = property.Wait(ctx, p, v.Reference(), []string{"guest.net"}, func(pc []types.PropertyChange) bool { - for _, c := range pc { - if c.Op != types.PropertyChangeOpAssign { - continue - } - - nics := c.Val.(types.ArrayOfGuestNicInfo).GuestNicInfo - for _, nic := range nics { - mac := nic.MacAddress - if mac == "" || nic.IpConfig == nil { - continue - } - - for _, ip := range nic.IpConfig.IpAddress { - if _, ok := macs[mac]; !ok { - continue // Ignore any that don't correspond to a VM device - } - if v4 && net.ParseIP(ip.IpAddress).To4() == nil { - continue // Ignore non IPv4 address - } - macs[mac] = append(macs[mac], ip.IpAddress) - } - } - } - - for _, ips := range macs { - if len(ips) == 0 { - return false - } - } - - return true - }) - - if err != nil { - return nil, err - } - - return macs, nil -} - -// Device returns the VirtualMachine's config.hardware.device property. -func (v VirtualMachine) Device(ctx context.Context) (VirtualDeviceList, error) { - var o mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{"config.hardware.device", "summary.runtime.connectionState"}, &o) - if err != nil { - return nil, err - } - - // Quoting the SDK doc: - // The virtual machine configuration is not guaranteed to be available. - // For example, the configuration information would be unavailable if the server - // is unable to access the virtual machine files on disk, and is often also unavailable - // during the initial phases of virtual machine creation. - if o.Config == nil { - return nil, fmt.Errorf("%s Config is not available, connectionState=%s", - v.Reference(), o.Summary.Runtime.ConnectionState) - } - - return VirtualDeviceList(o.Config.Hardware.Device), nil -} - -func (v VirtualMachine) HostSystem(ctx context.Context) (*HostSystem, error) { - var o mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{"summary.runtime.host"}, &o) - if err != nil { - return nil, err - } - - host := o.Summary.Runtime.Host - if host == nil { - return nil, errors.New("VM doesn't have a HostSystem") - } - - return NewHostSystem(v.c, *host), nil -} - -func (v VirtualMachine) ResourcePool(ctx context.Context) (*ResourcePool, error) { - var o mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{"resourcePool"}, &o) - if err != nil { - return nil, err - } - - rp := o.ResourcePool - if rp == nil { - return nil, errors.New("VM doesn't have a resourcePool") - } - - return NewResourcePool(v.c, *rp), nil -} - -func (v VirtualMachine) configureDevice(ctx context.Context, op types.VirtualDeviceConfigSpecOperation, fop types.VirtualDeviceConfigSpecFileOperation, devices ...types.BaseVirtualDevice) error { - spec := types.VirtualMachineConfigSpec{} - - for _, device := range devices { - config := &types.VirtualDeviceConfigSpec{ - Device: device, - Operation: op, - } - - if disk, ok := device.(*types.VirtualDisk); ok { - config.FileOperation = fop - - // Special case to attach an existing disk - if op == types.VirtualDeviceConfigSpecOperationAdd && disk.CapacityInKB == 0 { - childDisk := false - if b, ok := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo); ok { - childDisk = b.Parent != nil - } - - if !childDisk { - config.FileOperation = "" // existing disk - } - } - } - - spec.DeviceChange = append(spec.DeviceChange, config) - } - - task, err := v.Reconfigure(ctx, spec) - if err != nil { - return err - } - - return task.Wait(ctx) -} - -// AddDevice adds the given devices to the VirtualMachine -func (v VirtualMachine) AddDevice(ctx context.Context, device ...types.BaseVirtualDevice) error { - return v.configureDevice(ctx, types.VirtualDeviceConfigSpecOperationAdd, types.VirtualDeviceConfigSpecFileOperationCreate, device...) -} - -// EditDevice edits the given (existing) devices on the VirtualMachine -func (v VirtualMachine) EditDevice(ctx context.Context, device ...types.BaseVirtualDevice) error { - return v.configureDevice(ctx, types.VirtualDeviceConfigSpecOperationEdit, types.VirtualDeviceConfigSpecFileOperationReplace, device...) -} - -// RemoveDevice removes the given devices on the VirtualMachine -func (v VirtualMachine) RemoveDevice(ctx context.Context, keepFiles bool, device ...types.BaseVirtualDevice) error { - fop := types.VirtualDeviceConfigSpecFileOperationDestroy - if keepFiles { - fop = "" - } - return v.configureDevice(ctx, types.VirtualDeviceConfigSpecOperationRemove, fop, device...) -} - -// BootOptions returns the VirtualMachine's config.bootOptions property. -func (v VirtualMachine) BootOptions(ctx context.Context) (*types.VirtualMachineBootOptions, error) { - var o mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{"config.bootOptions"}, &o) - if err != nil { - return nil, err - } - - return o.Config.BootOptions, nil -} - -// SetBootOptions reconfigures the VirtualMachine with the given options. -func (v VirtualMachine) SetBootOptions(ctx context.Context, options *types.VirtualMachineBootOptions) error { - spec := types.VirtualMachineConfigSpec{} - - spec.BootOptions = options - - task, err := v.Reconfigure(ctx, spec) - if err != nil { - return err - } - - return task.Wait(ctx) -} - -// Answer answers a pending question. -func (v VirtualMachine) Answer(ctx context.Context, id, answer string) error { - req := types.AnswerVM{ - This: v.Reference(), - QuestionId: id, - AnswerChoice: answer, - } - - _, err := methods.AnswerVM(ctx, v.c, &req) - if err != nil { - return err - } - - return nil -} - -// CreateSnapshot creates a new snapshot of a virtual machine. -func (v VirtualMachine) CreateSnapshot(ctx context.Context, name string, description string, memory bool, quiesce bool) (*Task, error) { - req := types.CreateSnapshot_Task{ - This: v.Reference(), - Name: name, - Description: description, - Memory: memory, - Quiesce: quiesce, - } - - res, err := methods.CreateSnapshot_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -// RemoveAllSnapshot removes all snapshots of a virtual machine -func (v VirtualMachine) RemoveAllSnapshot(ctx context.Context, consolidate *bool) (*Task, error) { - req := types.RemoveAllSnapshots_Task{ - This: v.Reference(), - Consolidate: consolidate, - } - - res, err := methods.RemoveAllSnapshots_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -type snapshotMap map[string][]Reference - -func (m snapshotMap) add(parent string, tree []types.VirtualMachineSnapshotTree) { - for i, st := range tree { - sname := st.Name - names := []string{sname, st.Snapshot.Value} - - if parent != "" { - sname = path.Join(parent, sname) - // Add full path as an option to resolve duplicate names - names = append(names, sname) - } - - for _, name := range names { - m[name] = append(m[name], &tree[i].Snapshot) - } - - m.add(sname, st.ChildSnapshotList) - } -} - -// FindSnapshot supports snapshot lookup by name, where name can be: -// 1) snapshot ManagedObjectReference.Value (unique) -// 2) snapshot name (may not be unique) -// 3) snapshot tree path (may not be unique) -func (v VirtualMachine) FindSnapshot(ctx context.Context, name string) (Reference, error) { - var o mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{"snapshot"}, &o) - if err != nil { - return nil, err - } - - if o.Snapshot == nil || len(o.Snapshot.RootSnapshotList) == 0 { - return nil, errors.New("No snapshots for this VM") - } - - m := make(snapshotMap) - m.add("", o.Snapshot.RootSnapshotList) - - s := m[name] - switch len(s) { - case 0: - return nil, fmt.Errorf("snapshot %q not found", name) - case 1: - return s[0], nil - default: - return nil, fmt.Errorf("%q resolves to %d snapshots", name, len(s)) - } -} - -// RemoveSnapshot removes a named snapshot -func (v VirtualMachine) RemoveSnapshot(ctx context.Context, name string, removeChildren bool, consolidate *bool) (*Task, error) { - snapshot, err := v.FindSnapshot(ctx, name) - if err != nil { - return nil, err - } - - req := types.RemoveSnapshot_Task{ - This: snapshot.Reference(), - RemoveChildren: removeChildren, - Consolidate: consolidate, - } - - res, err := methods.RemoveSnapshot_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -// RevertToCurrentSnapshot reverts to the current snapshot -func (v VirtualMachine) RevertToCurrentSnapshot(ctx context.Context, suppressPowerOn bool) (*Task, error) { - req := types.RevertToCurrentSnapshot_Task{ - This: v.Reference(), - SuppressPowerOn: types.NewBool(suppressPowerOn), - } - - res, err := methods.RevertToCurrentSnapshot_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -// RevertToSnapshot reverts to a named snapshot -func (v VirtualMachine) RevertToSnapshot(ctx context.Context, name string, suppressPowerOn bool) (*Task, error) { - snapshot, err := v.FindSnapshot(ctx, name) - if err != nil { - return nil, err - } - - req := types.RevertToSnapshot_Task{ - This: snapshot.Reference(), - SuppressPowerOn: types.NewBool(suppressPowerOn), - } - - res, err := methods.RevertToSnapshot_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -// IsToolsRunning returns true if VMware Tools is currently running in the guest OS, and false otherwise. -func (v VirtualMachine) IsToolsRunning(ctx context.Context) (bool, error) { - var o mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{"guest.toolsRunningStatus"}, &o) - if err != nil { - return false, err - } - - return o.Guest.ToolsRunningStatus == string(types.VirtualMachineToolsRunningStatusGuestToolsRunning), nil -} - -// Wait for the VirtualMachine to change to the desired power state. -func (v VirtualMachine) WaitForPowerState(ctx context.Context, state types.VirtualMachinePowerState) error { - p := property.DefaultCollector(v.c) - err := property.Wait(ctx, p, v.Reference(), []string{PropRuntimePowerState}, func(pc []types.PropertyChange) bool { - for _, c := range pc { - if c.Name != PropRuntimePowerState { - continue - } - if c.Val == nil { - continue - } - - ps := c.Val.(types.VirtualMachinePowerState) - if ps == state { - return true - } - } - return false - }) - - return err -} - -func (v VirtualMachine) MarkAsTemplate(ctx context.Context) error { - req := types.MarkAsTemplate{ - This: v.Reference(), - } - - _, err := methods.MarkAsTemplate(ctx, v.c, &req) - if err != nil { - return err - } - - return nil -} - -func (v VirtualMachine) MarkAsVirtualMachine(ctx context.Context, pool ResourcePool, host *HostSystem) error { - req := types.MarkAsVirtualMachine{ - This: v.Reference(), - Pool: pool.Reference(), - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - _, err := methods.MarkAsVirtualMachine(ctx, v.c, &req) - if err != nil { - return err - } - - return nil -} - -func (v VirtualMachine) Migrate(ctx context.Context, pool *ResourcePool, host *HostSystem, priority types.VirtualMachineMovePriority, state types.VirtualMachinePowerState) (*Task, error) { - req := types.MigrateVM_Task{ - This: v.Reference(), - Priority: priority, - State: state, - } - - if pool != nil { - ref := pool.Reference() - req.Pool = &ref - } - - if host != nil { - ref := host.Reference() - req.Host = &ref - } - - res, err := methods.MigrateVM_Task(ctx, v.c, &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} - -func (v VirtualMachine) Unregister(ctx context.Context) error { - req := types.UnregisterVM{ - This: v.Reference(), - } - - _, err := methods.UnregisterVM(ctx, v.Client(), &req) - return err -} - -// QueryEnvironmentBrowser is a helper to get the environmentBrowser property. -func (v VirtualMachine) QueryConfigTarget(ctx context.Context) (*types.ConfigTarget, error) { - var vm mo.VirtualMachine - - err := v.Properties(ctx, v.Reference(), []string{"environmentBrowser"}, &vm) - if err != nil { - return nil, err - } - - req := types.QueryConfigTarget{ - This: vm.EnvironmentBrowser, - } - - res, err := methods.QueryConfigTarget(ctx, v.Client(), &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (v VirtualMachine) MountToolsInstaller(ctx context.Context) error { - req := types.MountToolsInstaller{ - This: v.Reference(), - } - - _, err := methods.MountToolsInstaller(ctx, v.Client(), &req) - return err -} - -func (v VirtualMachine) UnmountToolsInstaller(ctx context.Context) error { - req := types.UnmountToolsInstaller{ - This: v.Reference(), - } - - _, err := methods.UnmountToolsInstaller(ctx, v.Client(), &req) - return err -} - -func (v VirtualMachine) UpgradeTools(ctx context.Context, options string) (*Task, error) { - req := types.UpgradeTools_Task{ - This: v.Reference(), - InstallerOptions: options, - } - - res, err := methods.UpgradeTools_Task(ctx, v.Client(), &req) - if err != nil { - return nil, err - } - - return NewTask(v.c, res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go deleted file mode 100644 index f6caf987..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 object - -type VmwareDistributedVirtualSwitch struct { - DistributedVirtualSwitch -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/collector.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/collector.go deleted file mode 100644 index 04a9e773..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/collector.go +++ /dev/null @@ -1,201 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 property - -import ( - "context" - "errors" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -// Collector models the PropertyCollector managed object. -// -// For more information, see: -// http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fvmodl.query.PropertyCollector.html -// -type Collector struct { - roundTripper soap.RoundTripper - reference types.ManagedObjectReference -} - -// DefaultCollector returns the session's default property collector. -func DefaultCollector(c *vim25.Client) *Collector { - p := Collector{ - roundTripper: c, - reference: c.ServiceContent.PropertyCollector, - } - - return &p -} - -func (p Collector) Reference() types.ManagedObjectReference { - return p.reference -} - -// Create creates a new session-specific Collector that can be used to -// retrieve property updates independent of any other Collector. -func (p *Collector) Create(ctx context.Context) (*Collector, error) { - req := types.CreatePropertyCollector{ - This: p.Reference(), - } - - res, err := methods.CreatePropertyCollector(ctx, p.roundTripper, &req) - if err != nil { - return nil, err - } - - newp := Collector{ - roundTripper: p.roundTripper, - reference: res.Returnval, - } - - return &newp, nil -} - -// Destroy destroys this Collector. -func (p *Collector) Destroy(ctx context.Context) error { - req := types.DestroyPropertyCollector{ - This: p.Reference(), - } - - _, err := methods.DestroyPropertyCollector(ctx, p.roundTripper, &req) - if err != nil { - return err - } - - p.reference = types.ManagedObjectReference{} - return nil -} - -func (p *Collector) CreateFilter(ctx context.Context, req types.CreateFilter) error { - req.This = p.Reference() - - _, err := methods.CreateFilter(ctx, p.roundTripper, &req) - if err != nil { - return err - } - - return nil -} - -func (p *Collector) WaitForUpdates(ctx context.Context, v string) (*types.UpdateSet, error) { - req := types.WaitForUpdatesEx{ - This: p.Reference(), - Version: v, - } - - res, err := methods.WaitForUpdatesEx(ctx, p.roundTripper, &req) - if err != nil { - return nil, err - } - - return res.Returnval, nil -} - -func (p *Collector) RetrieveProperties(ctx context.Context, req types.RetrieveProperties) (*types.RetrievePropertiesResponse, error) { - req.This = p.Reference() - return methods.RetrieveProperties(ctx, p.roundTripper, &req) -} - -// Retrieve loads properties for a slice of managed objects. The dst argument -// must be a pointer to a []interface{}, which is populated with the instances -// of the specified managed objects, with the relevant properties filled in. If -// the properties slice is nil, all properties are loaded. -func (p *Collector) Retrieve(ctx context.Context, objs []types.ManagedObjectReference, ps []string, dst interface{}) error { - var propSpec *types.PropertySpec - var objectSet []types.ObjectSpec - - for _, obj := range objs { - // Ensure that all object reference types are the same - if propSpec == nil { - propSpec = &types.PropertySpec{ - Type: obj.Type, - } - - if ps == nil { - propSpec.All = types.NewBool(true) - } else { - propSpec.PathSet = ps - } - } else { - if obj.Type != propSpec.Type { - return errors.New("object references must have the same type") - } - } - - objectSpec := types.ObjectSpec{ - Obj: obj, - Skip: types.NewBool(false), - } - - objectSet = append(objectSet, objectSpec) - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: objectSet, - PropSet: []types.PropertySpec{*propSpec}, - }, - }, - } - - res, err := p.RetrieveProperties(ctx, req) - if err != nil { - return err - } - - if d, ok := dst.(*[]types.ObjectContent); ok { - *d = res.Returnval - return nil - } - - return mo.LoadRetrievePropertiesResponse(res, dst) -} - -// RetrieveWithFilter populates dst as Retrieve does, but only for entities matching the given filter. -func (p *Collector) RetrieveWithFilter(ctx context.Context, objs []types.ManagedObjectReference, ps []string, dst interface{}, filter Filter) error { - if len(filter) == 0 { - return p.Retrieve(ctx, objs, ps, dst) - } - - var content []types.ObjectContent - - err := p.Retrieve(ctx, objs, filter.Keys(), &content) - if err != nil { - return err - } - - objs = filter.MatchObjectContent(content) - - if len(objs) == 0 { - return nil - } - - return p.Retrieve(ctx, objs, ps, dst) -} - -// RetrieveOne calls Retrieve with a single managed object reference. -func (p *Collector) RetrieveOne(ctx context.Context, obj types.ManagedObjectReference, ps []string, dst interface{}) error { - var objs = []types.ManagedObjectReference{obj} - return p.Retrieve(ctx, objs, ps, dst) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/filter.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/filter.go deleted file mode 100644 index 8284b0c7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/filter.go +++ /dev/null @@ -1,139 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 property - -import ( - "fmt" - "path" - "reflect" - "strconv" - "strings" - - "github.com/vmware/govmomi/vim25/types" -) - -// Filter provides methods for matching against types.DynamicProperty -type Filter map[string]types.AnyType - -// Keys returns the Filter map keys as a []string -func (f Filter) Keys() []string { - keys := make([]string, 0, len(f)) - - for key := range f { - keys = append(keys, key) - } - - return keys -} - -// MatchProperty returns true if a Filter entry matches the given prop. -func (f Filter) MatchProperty(prop types.DynamicProperty) bool { - match, ok := f[prop.Name] - if !ok { - return false - } - - if match == prop.Val { - return true - } - - ptype := reflect.TypeOf(prop.Val) - - if strings.HasPrefix(ptype.Name(), "ArrayOf") { - pval := reflect.ValueOf(prop.Val).Field(0) - - for i := 0; i < pval.Len(); i++ { - prop.Val = pval.Index(i).Interface() - - if f.MatchProperty(prop) { - return true - } - } - - return false - } - - if reflect.TypeOf(match) != ptype { - s, ok := match.(string) - if !ok { - return false - } - - // convert if we can - switch prop.Val.(type) { - case bool: - match, _ = strconv.ParseBool(s) - case int16: - x, _ := strconv.ParseInt(s, 10, 16) - match = int16(x) - case int32: - x, _ := strconv.ParseInt(s, 10, 32) - match = int32(x) - case int64: - match, _ = strconv.ParseInt(s, 10, 64) - case float32: - x, _ := strconv.ParseFloat(s, 32) - match = float32(x) - case float64: - match, _ = strconv.ParseFloat(s, 64) - case fmt.Stringer: - prop.Val = prop.Val.(fmt.Stringer).String() - default: - if ptype.Kind() != reflect.String { - return false - } - // An enum type we can convert to a string type - prop.Val = reflect.ValueOf(prop.Val).String() - } - } - - switch pval := prop.Val.(type) { - case string: - s := match.(string) - if s == "*" { - return true // TODO: path.Match fails if s contains a '/' - } - m, _ := path.Match(s, pval) - return m - default: - return reflect.DeepEqual(match, pval) - } -} - -// MatchPropertyList returns true if all given props match the Filter. -func (f Filter) MatchPropertyList(props []types.DynamicProperty) bool { - for _, p := range props { - if !f.MatchProperty(p) { - return false - } - } - - return true -} - -// MatchObjectContent returns a list of ObjectContent.Obj where the ObjectContent.PropSet matches the Filter. -func (f Filter) MatchObjectContent(objects []types.ObjectContent) []types.ManagedObjectReference { - var refs []types.ManagedObjectReference - - for _, o := range objects { - if f.MatchPropertyList(o.PropSet) { - refs = append(refs, o.Obj) - } - } - - return refs -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/wait.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/wait.go deleted file mode 100644 index fe847926..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/property/wait.go +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright (c) 2015-2017 VMware, 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 property - -import ( - "context" - - "github.com/vmware/govmomi/vim25/types" -) - -// WaitFilter provides helpers to construct a types.CreateFilter for use with property.Wait -type WaitFilter struct { - types.CreateFilter -} - -// Add a new ObjectSpec and PropertySpec to the WaitFilter -func (f *WaitFilter) Add(obj types.ManagedObjectReference, kind string, ps []string, set ...types.BaseSelectionSpec) *WaitFilter { - spec := types.ObjectSpec{ - Obj: obj, - SelectSet: set, - } - - pset := types.PropertySpec{ - Type: kind, - PathSet: ps, - } - - if len(ps) == 0 { - pset.All = types.NewBool(true) - } - - f.Spec.ObjectSet = append(f.Spec.ObjectSet, spec) - - f.Spec.PropSet = append(f.Spec.PropSet, pset) - - return f -} - -// Wait creates a new WaitFilter and calls the specified function for each ObjectUpdate via WaitForUpdates -func Wait(ctx context.Context, c *Collector, obj types.ManagedObjectReference, ps []string, f func([]types.PropertyChange) bool) error { - filter := new(WaitFilter).Add(obj, obj.Type, ps) - - return WaitForUpdates(ctx, c, filter, func(updates []types.ObjectUpdate) bool { - for _, update := range updates { - if f(update.ChangeSet) { - return true - } - } - - return false - }) -} - -// WaitForUpdates waits for any of the specified properties of the specified managed -// object to change. It calls the specified function for every update it -// receives. If this function returns false, it continues waiting for -// subsequent updates. If this function returns true, it stops waiting and -// returns. -// -// To only receive updates for the specified managed object, the function -// creates a new property collector and calls CreateFilter. A new property -// collector is required because filters can only be added, not removed. -// -// The newly created collector is destroyed before this function returns (both -// in case of success or error). -// -func WaitForUpdates(ctx context.Context, c *Collector, filter *WaitFilter, f func([]types.ObjectUpdate) bool) error { - p, err := c.Create(ctx) - if err != nil { - return err - } - - // Attempt to destroy the collector using the background context, as the - // specified context may have timed out or have been cancelled. - defer p.Destroy(context.Background()) - - err = p.CreateFilter(ctx, filter.CreateFilter) - if err != nil { - return err - } - - for version := ""; ; { - res, err := p.WaitForUpdates(ctx, version) - if err != nil { - return err - } - - // Retry if the result came back empty - if res == nil { - continue - } - - version = res.Version - - for _, fs := range res.FilterSet { - if f(fs.ObjectSet) { - return nil - } - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/session/keep_alive.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/session/keep_alive.go deleted file mode 100644 index a9d4c141..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/session/keep_alive.go +++ /dev/null @@ -1,127 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 session - -import ( - "context" - "sync" - "time" - - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/soap" -) - -type keepAlive struct { - sync.Mutex - - roundTripper soap.RoundTripper - idleTime time.Duration - notifyRequest chan struct{} - notifyStop chan struct{} - notifyWaitGroup sync.WaitGroup - - // keepAlive executes a request in the background with the purpose of - // keeping the session active. The response for this request is discarded. - keepAlive func(soap.RoundTripper) error -} - -func defaultKeepAlive(roundTripper soap.RoundTripper) error { - _, _ = methods.GetCurrentTime(context.Background(), roundTripper) - return nil -} - -// KeepAlive wraps the specified soap.RoundTripper and executes a meaningless -// API request in the background after the RoundTripper has been idle for the -// specified amount of idle time. The keep alive process only starts once a -// user logs in and runs until the user logs out again. -func KeepAlive(roundTripper soap.RoundTripper, idleTime time.Duration) soap.RoundTripper { - return KeepAliveHandler(roundTripper, idleTime, defaultKeepAlive) -} - -// KeepAliveHandler works as KeepAlive() does, but the handler param can decide how to handle errors. -// For example, if connectivity to ESX/VC is down long enough for a session to expire, a handler can choose to -// Login() on a types.NotAuthenticated error. If handler returns non-nil, the keep alive go routine will be stopped. -func KeepAliveHandler(roundTripper soap.RoundTripper, idleTime time.Duration, handler func(soap.RoundTripper) error) soap.RoundTripper { - k := &keepAlive{ - roundTripper: roundTripper, - idleTime: idleTime, - notifyRequest: make(chan struct{}), - } - - k.keepAlive = handler - - return k -} - -func (k *keepAlive) start() { - k.Lock() - defer k.Unlock() - - if k.notifyStop != nil { - return - } - - // This channel must be closed to terminate idle timer. - k.notifyStop = make(chan struct{}) - k.notifyWaitGroup.Add(1) - - go func() { - defer k.notifyWaitGroup.Done() - - for t := time.NewTimer(k.idleTime); ; { - select { - case <-k.notifyStop: - return - case <-k.notifyRequest: - t.Reset(k.idleTime) - case <-t.C: - if err := k.keepAlive(k.roundTripper); err != nil { - k.stop() - } - t = time.NewTimer(k.idleTime) - } - } - }() -} - -func (k *keepAlive) stop() { - k.Lock() - defer k.Unlock() - - if k.notifyStop != nil { - close(k.notifyStop) - k.notifyWaitGroup.Wait() - k.notifyStop = nil - } -} - -func (k *keepAlive) RoundTrip(ctx context.Context, req, res soap.HasFault) error { - err := k.roundTripper.RoundTrip(ctx, req, res) - if err != nil { - return err - } - - // Start ticker on login, stop ticker on logout. - switch req.(type) { - case *methods.LoginBody, *methods.LoginExtensionByCertificateBody: - k.start() - case *methods.LogoutBody: - k.stop() - } - - return nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/session/manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/session/manager.go deleted file mode 100644 index b4591c1c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/session/manager.go +++ /dev/null @@ -1,201 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 session - -import ( - "context" - "net/url" - "os" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -// Locale defaults to "en_US" and can be overridden via this var or the GOVMOMI_LOCALE env var. -// A value of "_" uses the server locale setting. -var Locale = os.Getenv("GOVMOMI_LOCALE") - -func init() { - if Locale == "_" { - Locale = "" - } else if Locale == "" { - Locale = "en_US" - } -} - -type Manager struct { - client *vim25.Client - userSession *types.UserSession -} - -func NewManager(client *vim25.Client) *Manager { - m := Manager{ - client: client, - } - - return &m -} - -func (sm Manager) Reference() types.ManagedObjectReference { - return *sm.client.ServiceContent.SessionManager -} - -func (sm *Manager) SetLocale(ctx context.Context, locale string) error { - req := types.SetLocale{ - This: sm.Reference(), - Locale: locale, - } - - _, err := methods.SetLocale(ctx, sm.client, &req) - return err -} - -func (sm *Manager) Login(ctx context.Context, u *url.Userinfo) error { - req := types.Login{ - This: sm.Reference(), - Locale: Locale, - } - - if u != nil { - req.UserName = u.Username() - if pw, ok := u.Password(); ok { - req.Password = pw - } - } - - login, err := methods.Login(ctx, sm.client, &req) - if err != nil { - return err - } - - sm.userSession = &login.Returnval - return nil -} - -func (sm *Manager) LoginExtensionByCertificate(ctx context.Context, key string, locale string) error { - req := types.LoginExtensionByCertificate{ - This: sm.Reference(), - ExtensionKey: key, - Locale: locale, - } - - login, err := methods.LoginExtensionByCertificate(ctx, sm.client, &req) - if err != nil { - return err - } - - sm.userSession = &login.Returnval - return nil -} - -func (sm *Manager) Logout(ctx context.Context) error { - req := types.Logout{ - This: sm.Reference(), - } - - _, err := methods.Logout(ctx, sm.client, &req) - if err != nil { - return err - } - - sm.userSession = nil - return nil -} - -// UserSession retrieves and returns the SessionManager's CurrentSession field. -// Nil is returned if the session is not authenticated. -func (sm *Manager) UserSession(ctx context.Context) (*types.UserSession, error) { - var mgr mo.SessionManager - - pc := property.DefaultCollector(sm.client) - err := pc.RetrieveOne(ctx, sm.Reference(), []string{"currentSession"}, &mgr) - if err != nil { - // It's OK if we can't retrieve properties because we're not authenticated - if f, ok := err.(types.HasFault); ok { - switch f.Fault().(type) { - case *types.NotAuthenticated: - return nil, nil - } - } - - return nil, err - } - - return mgr.CurrentSession, nil -} - -func (sm *Manager) TerminateSession(ctx context.Context, sessionId []string) error { - req := types.TerminateSession{ - This: sm.Reference(), - SessionId: sessionId, - } - - _, err := methods.TerminateSession(ctx, sm.client, &req) - return err -} - -// SessionIsActive checks whether the session that was created at login is -// still valid. This function only works against vCenter. -func (sm *Manager) SessionIsActive(ctx context.Context) (bool, error) { - if sm.userSession == nil { - return false, nil - } - - req := types.SessionIsActive{ - This: sm.Reference(), - SessionID: sm.userSession.Key, - UserName: sm.userSession.UserName, - } - - active, err := methods.SessionIsActive(ctx, sm.client, &req) - if err != nil { - return false, err - } - - return active.Returnval, err -} - -func (sm *Manager) AcquireGenericServiceTicket(ctx context.Context, spec types.BaseSessionManagerServiceRequestSpec) (*types.SessionManagerGenericServiceTicket, error) { - req := types.AcquireGenericServiceTicket{ - This: sm.Reference(), - Spec: spec, - } - - res, err := methods.AcquireGenericServiceTicket(ctx, sm.client, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} - -func (sm *Manager) AcquireLocalTicket(ctx context.Context, userName string) (*types.SessionManagerLocalTicket, error) { - req := types.AcquireLocalTicket{ - This: sm.Reference(), - UserName: userName, - } - - res, err := methods.AcquireLocalTicket(ctx, sm.client, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go deleted file mode 100644 index d743c13a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/cluster_compute_resource.go +++ /dev/null @@ -1,99 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type ClusterComputeResource struct { - mo.ClusterComputeResource -} - -type addHost struct { - *ClusterComputeResource - - req *types.AddHost_Task -} - -func (add *addHost) Run(task *Task) (types.AnyType, types.BaseMethodFault) { - spec := add.req.Spec - - if spec.HostName == "" { - return nil, &types.NoHost{} - } - - host := NewHostSystem(esx.HostSystem) - host.Summary.Config.Name = spec.HostName - host.Name = host.Summary.Config.Name - host.Runtime.ConnectionState = types.HostSystemConnectionStateDisconnected - - cr := add.ClusterComputeResource - Map.PutEntity(cr, Map.NewEntity(host)) - - cr.Host = append(cr.Host, host.Reference()) - - if add.req.AsConnected { - host.Runtime.ConnectionState = types.HostSystemConnectionStateConnected - } - - return host.Reference(), nil -} - -func (c *ClusterComputeResource) AddHostTask(add *types.AddHost_Task) soap.HasFault { - r := &methods.AddHost_TaskBody{} - - task := NewTask(&addHost{c, add}) - - r.Res = &types.AddHost_TaskResponse{ - Returnval: task.Self, - } - - task.Run() - - return r -} - -func CreateClusterComputeResource(f *Folder, name string, spec types.ClusterConfigSpecEx) (*ClusterComputeResource, types.BaseMethodFault) { - if e := Map.FindByName(name, f.ChildEntity); e != nil { - return nil, &types.DuplicateName{ - Name: e.Entity().Name, - Object: e.Reference(), - } - } - - cluster := &ClusterComputeResource{} - cluster.Name = name - - config := &types.ClusterConfigInfoEx{} - cluster.ConfigurationEx = config - - config.DrsConfig.Enabled = types.NewBool(true) - - pool := NewResourcePool() - Map.PutEntity(cluster, Map.NewEntity(pool)) - cluster.ResourcePool = &pool.Self - - f.putChild(cluster) - pool.Owner = cluster.Self - - return cluster, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datacenter.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datacenter.go deleted file mode 100644 index 15b5d432..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datacenter.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "strings" - - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -// Create Datacenter Folders. -// Every Datacenter has 4 inventory Folders: Vm, Host, Datastore and Network. -// The ESX folder child types are limited to 1 type. -// The VC folders have additional child types, including nested folders. -func createDatacenterFolders(dc *mo.Datacenter, isVC bool) { - folders := []struct { - ref *types.ManagedObjectReference - name string - types []string - }{ - {&dc.VmFolder, "vm", []string{"VirtualMachine", "VirtualApp", "Folder"}}, - {&dc.HostFolder, "host", []string{"ComputeResource", "Folder"}}, - {&dc.DatastoreFolder, "datastore", []string{"Datastore", "StoragePod", "Folder"}}, - {&dc.NetworkFolder, "network", []string{"Network", "DistributedVirtualSwitch", "Folder"}}, - } - - for _, f := range folders { - folder := &Folder{} - folder.Name = f.name - - if isVC { - folder.ChildType = f.types - e := Map.PutEntity(dc, folder) - - // propagate the generated morefs to Datacenter - ref := e.Reference() - f.ref.Type = ref.Type - f.ref.Value = ref.Value - } else { - folder.ChildType = f.types[:1] - folder.Self = *f.ref - Map.PutEntity(dc, folder) - } - } - - net := Map.Get(dc.NetworkFolder).(*Folder) - - for _, ref := range esx.Datacenter.Network { - // Add VM Network by default to each Datacenter - network := &mo.Network{} - network.Self = ref - network.Name = strings.Split(ref.Value, "-")[1] - network.Entity().Name = network.Name - if isVC { - network.Self.Value = "" // we want a different moid per-DC - } - - net.putChild(network) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datastore.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datastore.go deleted file mode 100644 index 7b43396b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/datastore.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "os/exec" - "strconv" - "strings" - "time" - - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type Datastore struct { - mo.Datastore -} - -type datastorePath struct { - Datastore string - Path string -} - -func parseDatastorePath(dsPath string) (*datastorePath, types.BaseMethodFault) { - invalid := func() (*datastorePath, types.BaseMethodFault) { - return nil, &types.InvalidDatastorePath{DatastorePath: dsPath} - } - - if len(dsPath) == 0 { - return invalid() - } - - if !strings.HasPrefix(dsPath, "[") { - return invalid() - } - dsPath = dsPath[1:] - - ix := strings.Index(dsPath, "]") - if ix < 0 { - return invalid() - } - - return &datastorePath{ - Datastore: dsPath[:ix], - Path: strings.TrimSpace(dsPath[ix+1:]), - }, nil -} - -func (ds *Datastore) RefreshDatastore(*types.RefreshDatastore) soap.HasFault { - r := &methods.RefreshDatastoreBody{} - - info := ds.Info.GetDatastoreInfo() - - // #nosec: Subprocess launching with variable - buf, err := exec.Command("df", "-k", info.Url).Output() - - if err != nil { - r.Fault_ = Fault(err.Error(), &types.HostConfigFault{}) - return r - } - - lines := strings.Split(string(buf), "\n") - columns := strings.Fields(lines[1]) - - used, _ := strconv.ParseInt(columns[2], 10, 64) - info.FreeSpace, _ = strconv.ParseInt(columns[3], 10, 64) - - info.FreeSpace *= 1024 - used *= 1024 - - ds.Summary.FreeSpace = info.FreeSpace - ds.Summary.Capacity = info.FreeSpace + used - - now := time.Now() - - info.Timestamp = &now - - return r -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/dvs.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/dvs.go deleted file mode 100644 index 4b62c55f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/dvs.go +++ /dev/null @@ -1,124 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type VmwareDistributedVirtualSwitch struct { - mo.VmwareDistributedVirtualSwitch -} - -func (s *VmwareDistributedVirtualSwitch) AddDVPortgroupTask(c *types.AddDVPortgroup_Task) soap.HasFault { - task := CreateTask(s, "addDVPortgroup", func(t *Task) (types.AnyType, types.BaseMethodFault) { - f := Map.getEntityParent(s, "Folder").(*Folder) - - for _, spec := range c.Spec { - pg := &mo.DistributedVirtualPortgroup{} - pg.Name = spec.Name - pg.Entity().Name = pg.Name - - if obj := Map.FindByName(pg.Name, f.ChildEntity); obj != nil { - return nil, &types.DuplicateName{ - Name: pg.Name, - Object: obj.Reference(), - } - } - - f.putChild(pg) - - pg.Key = pg.Self.Value - pg.Config.DistributedVirtualSwitch = &s.Self - - s.Portgroup = append(s.Portgroup, pg.Self) - s.Summary.PortgroupName = append(s.Summary.PortgroupName, pg.Name) - - for _, h := range s.Summary.HostMember { - pg.Host = AddReference(h, pg.Host) - host := Map.Get(h).(*HostSystem) - host.Network = append(host.Network, pg.Reference()) - } - } - - return nil, nil - }) - - task.Run() - - return &methods.AddDVPortgroup_TaskBody{ - Res: &types.AddDVPortgroup_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (s *VmwareDistributedVirtualSwitch) ReconfigureDvsTask(req *types.ReconfigureDvs_Task) soap.HasFault { - task := CreateTask(s, "reconfigureDvs", func(t *Task) (types.AnyType, types.BaseMethodFault) { - spec := req.Spec.GetDVSConfigSpec() - - for _, member := range spec.Host { - h := Map.Get(member.Host) - if h == nil { - return nil, &types.ManagedObjectNotFound{Obj: member.Host} - } - - host := h.(*HostSystem) - - switch types.ConfigSpecOperation(member.Operation) { - case types.ConfigSpecOperationAdd: - if FindReference(host.Network, s.Self) != nil { - return nil, &types.AlreadyExists{Name: host.Name} - } - - host.Network = append(host.Network, s.Self) - host.Network = append(host.Network, s.Portgroup...) - s.Summary.HostMember = append(s.Summary.HostMember, member.Host) - - for _, ref := range s.Portgroup { - pg := Map.Get(ref).(*mo.DistributedVirtualPortgroup) - pg.Host = AddReference(member.Host, pg.Host) - } - case types.ConfigSpecOperationRemove: - if pg := FindReference(host.Network, s.Portgroup...); pg != nil { - return nil, &types.ResourceInUse{ - Type: pg.Type, - Name: pg.Value, - } - } - - host.Network = RemoveReference(s.Self, host.Network) - s.Summary.HostMember = RemoveReference(s.Self, s.Summary.HostMember) - case types.ConfigSpecOperationEdit: - return nil, &types.NotSupported{} - } - } - - return nil, nil - }) - - task.Run() - - return &methods.ReconfigureDvs_TaskBody{ - Res: &types.ReconfigureDvs_TaskResponse{ - Returnval: task.Self, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/entity.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/entity.go deleted file mode 100644 index 06c61411..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/entity.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -func RenameTask(e mo.Entity, r *types.Rename_Task) soap.HasFault { - task := CreateTask(e, "rename", func(t *Task) (types.AnyType, types.BaseMethodFault) { - obj := Map.Get(r.This).(mo.Entity).Entity() - - if parent, ok := Map.Get(*obj.Parent).(*Folder); ok { - if Map.FindByName(r.NewName, parent.ChildEntity) != nil { - return nil, &types.InvalidArgument{InvalidProperty: "name"} - } - } - - obj.Name = r.NewName - - return nil, nil - }) - - task.Run() - - return &methods.Rename_TaskBody{ - Res: &types.Rename_TaskResponse{ - Returnval: task.Self, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go deleted file mode 100644 index b202cbff..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/datacenter.go +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import ( - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var Datacenter = mo.Datacenter{ - ManagedEntity: mo.ManagedEntity{ - ExtensibleManagedObject: mo.ExtensibleManagedObject{ - Self: types.ManagedObjectReference{Type: "Datacenter", Value: "ha-datacenter"}, - Value: nil, - AvailableField: nil, - }, - Parent: (*types.ManagedObjectReference)(nil), - CustomValue: nil, - OverallStatus: "", - ConfigStatus: "", - ConfigIssue: nil, - EffectiveRole: nil, - Permission: nil, - Name: "ha-datacenter", - DisabledMethod: nil, - RecentTask: nil, - DeclaredAlarmState: nil, - TriggeredAlarmState: nil, - AlarmActionsEnabled: (*bool)(nil), - Tag: nil, - }, - VmFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-vm"}, - HostFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-host"}, - DatastoreFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-datastore"}, - NetworkFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-network"}, - Datastore: []types.ManagedObjectReference{ - {Type: "Datastore", Value: "57089c25-85e3ccd4-17b6-000c29d0beb3"}, - }, - Network: []types.ManagedObjectReference{ - {Type: "Network", Value: "HaNetwork-VM Network"}, - }, - Configuration: types.DatacenterConfigInfo{}, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/doc.go deleted file mode 100644 index 3c0f4035..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx contains SOAP responses from an ESX server, captured using `govc ... -debug`. -*/ -package esx diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go deleted file mode 100644 index 559a6eb3..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_config_info.go +++ /dev/null @@ -1,1088 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import "github.com/vmware/govmomi/vim25/types" - -var HostConfigInfo = types.HostConfigInfo{ - Host: types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, - Product: types.AboutInfo{ - Name: "VMware ESXi", - FullName: "VMware ESXi 6.5.0 build-5969303", - Vendor: "VMware, Inc.", - Version: "6.5.0", - Build: "5969303", - LocaleVersion: "INTL", - LocaleBuild: "000", - OsType: "vmnix-x86", - ProductLineId: "embeddedEsx", - ApiType: "HostAgent", - ApiVersion: "6.5", - InstanceUuid: "", - LicenseProductName: "VMware ESX Server", - LicenseProductVersion: "6.0", - }, - DeploymentInfo: &types.HostDeploymentInfo{ - BootedFromStatelessCache: types.NewBool(false), - }, - HyperThread: &types.HostHyperThreadScheduleInfo{ - Available: false, - Active: false, - Config: true, - }, - ConsoleReservation: (*types.ServiceConsoleReservationInfo)(nil), - VirtualMachineReservation: (*types.VirtualMachineMemoryReservationInfo)(nil), - StorageDevice: nil, - SystemFile: nil, - Network: &types.HostNetworkInfo{ - Vswitch: []types.HostVirtualSwitch{ - { - Name: "vSwitch0", - Key: "key-vim.host.VirtualSwitch-vSwitch0", - NumPorts: 1536, - NumPortsAvailable: 1530, - Mtu: 1500, - Portgroup: []string{"key-vim.host.PortGroup-VM Network", "key-vim.host.PortGroup-Management Network"}, - Pnic: []string{"key-vim.host.PhysicalNic-vmnic0"}, - Spec: types.HostVirtualSwitchSpec{ - NumPorts: 128, - Bridge: &types.HostVirtualSwitchBondBridge{ - HostVirtualSwitchBridge: types.HostVirtualSwitchBridge{}, - NicDevice: []string{"vmnic0"}, - Beacon: &types.HostVirtualSwitchBeaconConfig{ - Interval: 1, - }, - LinkDiscoveryProtocolConfig: &types.LinkDiscoveryProtocolConfig{ - Protocol: "cdp", - Operation: "listen", - }, - }, - Policy: &types.HostNetworkPolicy{ - Security: &types.HostNetworkSecurityPolicy{ - AllowPromiscuous: types.NewBool(false), - MacChanges: types.NewBool(true), - ForgedTransmits: types.NewBool(true), - }, - NicTeaming: &types.HostNicTeamingPolicy{ - Policy: "loadbalance_srcid", - ReversePolicy: types.NewBool(true), - NotifySwitches: types.NewBool(true), - RollingOrder: types.NewBool(false), - FailureCriteria: &types.HostNicFailureCriteria{ - CheckSpeed: "minimum", - Speed: 10, - CheckDuplex: types.NewBool(false), - FullDuplex: types.NewBool(false), - CheckErrorPercent: types.NewBool(false), - Percentage: 0, - CheckBeacon: types.NewBool(false), - }, - NicOrder: &types.HostNicOrderPolicy{ - ActiveNic: []string{"vmnic0"}, - StandbyNic: nil, - }, - }, - OffloadPolicy: &types.HostNetOffloadCapabilities{ - CsumOffload: types.NewBool(true), - TcpSegmentation: types.NewBool(true), - ZeroCopyXmit: types.NewBool(true), - }, - ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ - Enabled: types.NewBool(false), - AverageBandwidth: 0, - PeakBandwidth: 0, - BurstSize: 0, - }, - }, - Mtu: 0, - }, - }, - }, - ProxySwitch: nil, - Portgroup: []types.HostPortGroup{ - { - Key: "key-vim.host.PortGroup-VM Network", - Port: nil, - Vswitch: "key-vim.host.VirtualSwitch-vSwitch0", - ComputedPolicy: types.HostNetworkPolicy{ - Security: &types.HostNetworkSecurityPolicy{ - AllowPromiscuous: types.NewBool(false), - MacChanges: types.NewBool(true), - ForgedTransmits: types.NewBool(true), - }, - NicTeaming: &types.HostNicTeamingPolicy{ - Policy: "loadbalance_srcid", - ReversePolicy: types.NewBool(true), - NotifySwitches: types.NewBool(true), - RollingOrder: types.NewBool(false), - FailureCriteria: &types.HostNicFailureCriteria{ - CheckSpeed: "minimum", - Speed: 10, - CheckDuplex: types.NewBool(false), - FullDuplex: types.NewBool(false), - CheckErrorPercent: types.NewBool(false), - Percentage: 0, - CheckBeacon: types.NewBool(false), - }, - NicOrder: &types.HostNicOrderPolicy{ - ActiveNic: []string{"vmnic0"}, - StandbyNic: nil, - }, - }, - OffloadPolicy: &types.HostNetOffloadCapabilities{ - CsumOffload: types.NewBool(true), - TcpSegmentation: types.NewBool(true), - ZeroCopyXmit: types.NewBool(true), - }, - ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ - Enabled: types.NewBool(false), - AverageBandwidth: 0, - PeakBandwidth: 0, - BurstSize: 0, - }, - }, - Spec: types.HostPortGroupSpec{ - Name: "VM Network", - VlanId: 0, - VswitchName: "vSwitch0", - Policy: types.HostNetworkPolicy{ - Security: &types.HostNetworkSecurityPolicy{}, - NicTeaming: &types.HostNicTeamingPolicy{ - Policy: "", - ReversePolicy: (*bool)(nil), - NotifySwitches: (*bool)(nil), - RollingOrder: (*bool)(nil), - FailureCriteria: &types.HostNicFailureCriteria{}, - NicOrder: (*types.HostNicOrderPolicy)(nil), - }, - OffloadPolicy: &types.HostNetOffloadCapabilities{}, - ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{}, - }, - }, - }, - { - Key: "key-vim.host.PortGroup-Management Network", - Port: []types.HostPortGroupPort{ - { - Key: "key-vim.host.PortGroup.Port-33554436", - Mac: []string{"00:0c:29:81:d8:a0"}, - Type: "host", - }, - }, - Vswitch: "key-vim.host.VirtualSwitch-vSwitch0", - ComputedPolicy: types.HostNetworkPolicy{ - Security: &types.HostNetworkSecurityPolicy{ - AllowPromiscuous: types.NewBool(false), - MacChanges: types.NewBool(true), - ForgedTransmits: types.NewBool(true), - }, - NicTeaming: &types.HostNicTeamingPolicy{ - Policy: "loadbalance_srcid", - ReversePolicy: types.NewBool(true), - NotifySwitches: types.NewBool(true), - RollingOrder: types.NewBool(false), - FailureCriteria: &types.HostNicFailureCriteria{ - CheckSpeed: "minimum", - Speed: 10, - CheckDuplex: types.NewBool(false), - FullDuplex: types.NewBool(false), - CheckErrorPercent: types.NewBool(false), - Percentage: 0, - CheckBeacon: types.NewBool(false), - }, - NicOrder: &types.HostNicOrderPolicy{ - ActiveNic: []string{"vmnic0"}, - StandbyNic: nil, - }, - }, - OffloadPolicy: &types.HostNetOffloadCapabilities{ - CsumOffload: types.NewBool(true), - TcpSegmentation: types.NewBool(true), - ZeroCopyXmit: types.NewBool(true), - }, - ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{ - Enabled: types.NewBool(false), - AverageBandwidth: 0, - PeakBandwidth: 0, - BurstSize: 0, - }, - }, - Spec: types.HostPortGroupSpec{ - Name: "Management Network", - VlanId: 0, - VswitchName: "vSwitch0", - Policy: types.HostNetworkPolicy{ - Security: &types.HostNetworkSecurityPolicy{}, - NicTeaming: &types.HostNicTeamingPolicy{ - Policy: "loadbalance_srcid", - ReversePolicy: (*bool)(nil), - NotifySwitches: types.NewBool(true), - RollingOrder: types.NewBool(false), - FailureCriteria: &types.HostNicFailureCriteria{ - CheckSpeed: "", - Speed: 0, - CheckDuplex: (*bool)(nil), - FullDuplex: (*bool)(nil), - CheckErrorPercent: (*bool)(nil), - Percentage: 0, - CheckBeacon: types.NewBool(false), - }, - NicOrder: &types.HostNicOrderPolicy{ - ActiveNic: []string{"vmnic0"}, - StandbyNic: nil, - }, - }, - OffloadPolicy: &types.HostNetOffloadCapabilities{}, - ShapingPolicy: &types.HostNetworkTrafficShapingPolicy{}, - }, - }, - }, - }, - Pnic: []types.PhysicalNic{ - { - Key: "key-vim.host.PhysicalNic-vmnic0", - Device: "vmnic0", - Pci: "0000:0b:00.0", - Driver: "nvmxnet3", - LinkSpeed: &types.PhysicalNicLinkInfo{ - SpeedMb: 10000, - Duplex: true, - }, - ValidLinkSpecification: []types.PhysicalNicLinkInfo{ - { - SpeedMb: 10000, - Duplex: true, - }, - }, - Spec: types.PhysicalNicSpec{ - Ip: &types.HostIpConfig{}, - LinkSpeed: &types.PhysicalNicLinkInfo{ - SpeedMb: 10000, - Duplex: true, - }, - }, - WakeOnLanSupported: false, - Mac: "00:0c:29:81:d8:a0", - FcoeConfiguration: &types.FcoeConfig{ - PriorityClass: 3, - SourceMac: "00:0c:29:81:d8:a0", - VlanRange: []types.FcoeConfigVlanRange{ - {}, - }, - Capabilities: types.FcoeConfigFcoeCapabilities{ - PriorityClass: false, - SourceMacAddress: false, - VlanRange: true, - }, - FcoeActive: false, - }, - VmDirectPathGen2Supported: types.NewBool(false), - VmDirectPathGen2SupportedMode: "", - ResourcePoolSchedulerAllowed: types.NewBool(true), - ResourcePoolSchedulerDisallowedReason: nil, - AutoNegotiateSupported: types.NewBool(false), - }, - { - Key: "key-vim.host.PhysicalNic-vmnic1", - Device: "vmnic1", - Pci: "0000:13:00.0", - Driver: "nvmxnet3", - LinkSpeed: &types.PhysicalNicLinkInfo{ - SpeedMb: 10000, - Duplex: true, - }, - ValidLinkSpecification: []types.PhysicalNicLinkInfo{ - { - SpeedMb: 10000, - Duplex: true, - }, - }, - Spec: types.PhysicalNicSpec{ - Ip: &types.HostIpConfig{}, - LinkSpeed: &types.PhysicalNicLinkInfo{ - SpeedMb: 10000, - Duplex: true, - }, - }, - WakeOnLanSupported: false, - Mac: "00:0c:29:81:d8:aa", - FcoeConfiguration: &types.FcoeConfig{ - PriorityClass: 3, - SourceMac: "00:0c:29:81:d8:aa", - VlanRange: []types.FcoeConfigVlanRange{ - {}, - }, - Capabilities: types.FcoeConfigFcoeCapabilities{ - PriorityClass: false, - SourceMacAddress: false, - VlanRange: true, - }, - FcoeActive: false, - }, - VmDirectPathGen2Supported: types.NewBool(false), - VmDirectPathGen2SupportedMode: "", - ResourcePoolSchedulerAllowed: types.NewBool(true), - ResourcePoolSchedulerDisallowedReason: nil, - AutoNegotiateSupported: types.NewBool(false), - }, - }, - Vnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "key-vim.host.PortGroup.Port-33554436", - }, - }, - ConsoleVnic: nil, - DnsConfig: &types.HostDnsConfig{ - Dhcp: true, - VirtualNicDevice: "vmk0", - HostName: "localhost", - DomainName: "localdomain", - Address: []string{"8.8.8.8"}, - SearchDomain: []string{"localdomain"}, - }, - IpRouteConfig: &types.HostIpRouteConfig{ - DefaultGateway: "127.0.0.1", - GatewayDevice: "", - IpV6DefaultGateway: "", - IpV6GatewayDevice: "", - }, - ConsoleIpRouteConfig: nil, - RouteTableInfo: &types.HostIpRouteTableInfo{ - IpRoute: []types.HostIpRouteEntry{ - { - Network: "0.0.0.0", - PrefixLength: 0, - Gateway: "127.0.0.1", - DeviceName: "vmk0", - }, - { - Network: "127.0.0.0", - PrefixLength: 8, - Gateway: "0.0.0.0", - DeviceName: "vmk0", - }, - }, - Ipv6Route: nil, - }, - Dhcp: nil, - Nat: nil, - IpV6Enabled: types.NewBool(false), - AtBootIpV6Enabled: types.NewBool(false), - NetStackInstance: []types.HostNetStackInstance{ - { - Key: "vSphereProvisioning", - Name: "", - DnsConfig: &types.HostDnsConfig{}, - IpRouteConfig: &types.HostIpRouteConfig{}, - RequestedMaxNumberOfConnections: 11000, - CongestionControlAlgorithm: "newreno", - IpV6Enabled: types.NewBool(true), - RouteTableConfig: (*types.HostIpRouteTableConfig)(nil), - }, - { - Key: "vmotion", - Name: "", - DnsConfig: &types.HostDnsConfig{}, - IpRouteConfig: &types.HostIpRouteConfig{}, - RequestedMaxNumberOfConnections: 11000, - CongestionControlAlgorithm: "newreno", - IpV6Enabled: types.NewBool(true), - RouteTableConfig: (*types.HostIpRouteTableConfig)(nil), - }, - { - Key: "defaultTcpipStack", - Name: "defaultTcpipStack", - DnsConfig: &types.HostDnsConfig{ - Dhcp: true, - VirtualNicDevice: "vmk0", - HostName: "localhost", - DomainName: "localdomain", - Address: []string{"8.8.8.8"}, - SearchDomain: []string{"localdomain"}, - }, - IpRouteConfig: &types.HostIpRouteConfig{ - DefaultGateway: "127.0.0.1", - GatewayDevice: "", - IpV6DefaultGateway: "", - IpV6GatewayDevice: "", - }, - RequestedMaxNumberOfConnections: 11000, - CongestionControlAlgorithm: "newreno", - IpV6Enabled: types.NewBool(true), - RouteTableConfig: &types.HostIpRouteTableConfig{ - IpRoute: []types.HostIpRouteOp{ - { - ChangeOperation: "ignore", - Route: types.HostIpRouteEntry{ - Network: "0.0.0.0", - PrefixLength: 0, - Gateway: "127.0.0.1", - DeviceName: "vmk0", - }, - }, - { - ChangeOperation: "ignore", - Route: types.HostIpRouteEntry{ - Network: "127.0.0.0", - PrefixLength: 8, - Gateway: "0.0.0.0", - DeviceName: "vmk0", - }, - }, - }, - Ipv6Route: nil, - }, - }, - }, - OpaqueSwitch: nil, - OpaqueNetwork: nil, - }, - Vmotion: &types.HostVMotionInfo{ - NetConfig: &types.HostVMotionNetConfig{ - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "VMotionConfig.vmotion.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: "", - }, - IpConfig: (*types.HostIpConfig)(nil), - }, - VirtualNicManagerInfo: &types.HostVirtualNicManagerInfo{ - NetConfig: []types.VirtualNicManagerNetConfig{ - { - NicType: "faultToleranceLogging", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "faultToleranceLogging.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: nil, - }, - { - NicType: "management", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "management.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: []string{"management.key-vim.host.VirtualNic-vmk0"}, - }, - { - NicType: "vSphereProvisioning", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "vSphereProvisioning.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: nil, - }, - { - NicType: "vSphereReplication", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "vSphereReplication.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: nil, - }, - { - NicType: "vSphereReplicationNFC", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "vSphereReplicationNFC.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: nil, - }, - { - NicType: "vmotion", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "vmotion.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: nil, - }, - { - NicType: "vsan", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "vsan.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: nil, - }, - { - NicType: "vsanWitness", - MultiSelectAllowed: true, - CandidateVnic: []types.HostVirtualNic{ - { - Device: "vmk0", - Key: "vsanWitness.key-vim.host.VirtualNic-vmk0", - Portgroup: "Management Network", - Spec: types.HostVirtualNicSpec{ - Ip: &types.HostIpConfig{ - Dhcp: true, - IpAddress: "127.0.0.1", - SubnetMask: "255.0.0.0", - IpV6Config: (*types.HostIpConfigIpV6AddressConfiguration)(nil), - }, - Mac: "00:0c:29:81:d8:a0", - DistributedVirtualPort: (*types.DistributedVirtualSwitchPortConnection)(nil), - Portgroup: "Management Network", - Mtu: 1500, - TsoEnabled: types.NewBool(true), - NetStackInstanceKey: "defaultTcpipStack", - OpaqueNetwork: (*types.HostVirtualNicOpaqueNetworkSpec)(nil), - ExternalId: "", - PinnedPnic: "", - IpRouteSpec: (*types.HostVirtualNicIpRouteSpec)(nil), - }, - Port: "", - }, - }, - SelectedVnic: nil, - }, - }, - }, - Capabilities: &types.HostNetCapabilities{ - CanSetPhysicalNicLinkSpeed: true, - SupportsNicTeaming: true, - NicTeamingPolicy: []string{"loadbalance_ip", "loadbalance_srcmac", "loadbalance_srcid", "failover_explicit"}, - SupportsVlan: true, - UsesServiceConsoleNic: false, - SupportsNetworkHints: true, - MaxPortGroupsPerVswitch: 0, - VswitchConfigSupported: true, - VnicConfigSupported: true, - IpRouteConfigSupported: true, - DnsConfigSupported: true, - DhcpOnVnicSupported: true, - IpV6Supported: types.NewBool(true), - }, - DatastoreCapabilities: &types.HostDatastoreSystemCapabilities{ - NfsMountCreationRequired: true, - NfsMountCreationSupported: true, - LocalDatastoreSupported: false, - VmfsExtentExpansionSupported: types.NewBool(true), - }, - OffloadCapabilities: &types.HostNetOffloadCapabilities{ - CsumOffload: types.NewBool(true), - TcpSegmentation: types.NewBool(true), - ZeroCopyXmit: types.NewBool(true), - }, - Service: &types.HostServiceInfo{ - Service: []types.HostService{ - { - Key: "DCUI", - Label: "Direct Console UI", - Required: false, - Uninstallable: false, - Running: true, - Ruleset: nil, - Policy: "on", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "TSM", - Label: "ESXi Shell", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: nil, - Policy: "off", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "TSM-SSH", - Label: "SSH", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: nil, - Policy: "off", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "lbtd", - Label: "Load-Based Teaming Daemon", - Required: false, - Uninstallable: false, - Running: true, - Ruleset: nil, - Policy: "on", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "lwsmd", - Label: "Active Directory Service", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: nil, - Policy: "off", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "ntpd", - Label: "NTP Daemon", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: []string{"ntpClient"}, - Policy: "off", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "pcscd", - Label: "PC/SC Smart Card Daemon", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: nil, - Policy: "off", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "sfcbd-watchdog", - Label: "CIM Server", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: []string{"CIMHttpServer", "CIMHttpsServer"}, - Policy: "on", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "snmpd", - Label: "SNMP Server", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: []string{"snmp"}, - Policy: "on", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "vmsyslogd", - Label: "Syslog Server", - Required: true, - Uninstallable: false, - Running: true, - Ruleset: nil, - Policy: "on", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "vpxa", - Label: "VMware vCenter Agent", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: []string{"vpxHeartbeats"}, - Policy: "on", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-base", - Description: "This VIB contains all of the base functionality of vSphere ESXi.", - }, - }, - { - Key: "xorg", - Label: "X.Org Server", - Required: false, - Uninstallable: false, - Running: false, - Ruleset: nil, - Policy: "on", - SourcePackage: &types.HostServiceSourcePackage{ - SourcePackageName: "esx-xserver", - Description: "This VIB contains X Server used for virtual machine 3D hardware acceleration.", - }, - }, - }, - }, - Firewall: &HostFirewallInfo, - AutoStart: &types.HostAutoStartManagerConfig{ - Defaults: &types.AutoStartDefaults{ - Enabled: (*bool)(nil), - StartDelay: 120, - StopDelay: 120, - WaitForHeartbeat: types.NewBool(false), - StopAction: "PowerOff", - }, - PowerInfo: nil, - }, - ActiveDiagnosticPartition: &types.HostDiagnosticPartition{ - StorageType: "directAttached", - DiagnosticType: "singleHost", - Slots: -15, - Id: types.HostScsiDiskPartition{ - DiskName: "mpx.vmhba0:C0:T0:L0", - Partition: 9, - }, - }, - Option: nil, - OptionDef: nil, - Flags: &types.HostFlagInfo{}, - AdminDisabled: (*bool)(nil), - LockdownMode: "lockdownDisabled", - Ipmi: (*types.HostIpmiInfo)(nil), - SslThumbprintInfo: (*types.HostSslThumbprintInfo)(nil), - SslThumbprintData: nil, - Certificate: []uint8{0x31, 0x30}, - PciPassthruInfo: nil, - AuthenticationManagerInfo: &types.HostAuthenticationManagerInfo{ - AuthConfig: []types.BaseHostAuthenticationStoreInfo{ - &types.HostLocalAuthenticationInfo{ - HostAuthenticationStoreInfo: types.HostAuthenticationStoreInfo{ - Enabled: true, - }, - }, - &types.HostActiveDirectoryInfo{ - HostDirectoryStoreInfo: types.HostDirectoryStoreInfo{}, - JoinedDomain: "", - TrustedDomain: nil, - DomainMembershipStatus: "", - SmartCardAuthenticationEnabled: types.NewBool(false), - }, - }, - }, - FeatureVersion: nil, - PowerSystemCapability: &types.PowerSystemCapability{ - AvailablePolicy: []types.HostPowerPolicy{ - { - Key: 1, - Name: "PowerPolicy.static.name", - ShortName: "static", - Description: "PowerPolicy.static.description", - }, - { - Key: 2, - Name: "PowerPolicy.dynamic.name", - ShortName: "dynamic", - Description: "PowerPolicy.dynamic.description", - }, - { - Key: 3, - Name: "PowerPolicy.low.name", - ShortName: "low", - Description: "PowerPolicy.low.description", - }, - { - Key: 4, - Name: "PowerPolicy.custom.name", - ShortName: "custom", - Description: "PowerPolicy.custom.description", - }, - }, - }, - PowerSystemInfo: &types.PowerSystemInfo{ - CurrentPolicy: types.HostPowerPolicy{ - Key: 2, - Name: "PowerPolicy.dynamic.name", - ShortName: "dynamic", - Description: "PowerPolicy.dynamic.description", - }, - }, - CacheConfigurationInfo: []types.HostCacheConfigurationInfo{ - { - Key: types.ManagedObjectReference{Type: "Datastore", Value: "5980f676-21a5db76-9eef-000c2981d8a0"}, - SwapSize: 0, - }, - }, - WakeOnLanCapable: types.NewBool(false), - FeatureCapability: nil, - MaskedFeatureCapability: nil, - VFlashConfigInfo: nil, - VsanHostConfig: &types.VsanHostConfigInfo{ - Enabled: types.NewBool(false), - HostSystem: &types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, - ClusterInfo: &types.VsanHostConfigInfoClusterInfo{}, - StorageInfo: &types.VsanHostConfigInfoStorageInfo{ - AutoClaimStorage: types.NewBool(false), - DiskMapping: nil, - DiskMapInfo: nil, - ChecksumEnabled: (*bool)(nil), - }, - NetworkInfo: &types.VsanHostConfigInfoNetworkInfo{}, - FaultDomainInfo: &types.VsanHostFaultDomainInfo{}, - }, - DomainList: nil, - ScriptCheckSum: nil, - HostConfigCheckSum: nil, - GraphicsInfo: nil, - SharedPassthruGpuTypes: nil, - GraphicsConfig: &types.HostGraphicsConfig{ - HostDefaultGraphicsType: "shared", - SharedPassthruAssignmentPolicy: "performance", - DeviceType: nil, - }, - IoFilterInfo: []types.HostIoFilterInfo{ - { - IoFilterInfo: types.IoFilterInfo{ - Id: "VMW_spm_1.0.0", - Name: "spm", - Vendor: "VMW", - Version: "1.0.230", - Type: "datastoreIoControl", - Summary: "VMware Storage I/O Control", - ReleaseDate: "2016-07-21", - }, - Available: true, - }, - { - IoFilterInfo: types.IoFilterInfo{ - Id: "VMW_vmwarevmcrypt_1.0.0", - Name: "vmwarevmcrypt", - Vendor: "VMW", - Version: "1.0.0", - Type: "encryption", - Summary: "VMcrypt IO Filter", - ReleaseDate: "2016-07-21", - }, - Available: true, - }, - }, - SriovDevicePool: nil, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go deleted file mode 100644 index 9c890bfa..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_firewall_system.go +++ /dev/null @@ -1,1422 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import "github.com/vmware/govmomi/vim25/types" - -var HostFirewallInfo = types.HostFirewallInfo{ - DynamicData: types.DynamicData{}, - DefaultPolicy: types.HostFirewallDefaultPolicy{ - DynamicData: types.DynamicData{}, - IncomingBlocked: types.NewBool(true), - OutgoingBlocked: types.NewBool(true), - }, - Ruleset: []types.HostFirewallRuleset{ - { - DynamicData: types.DynamicData{}, - Key: "CIMHttpServer", - Label: "CIM Server", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 5988, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "sfcbd-watchdog", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "CIMHttpsServer", - Label: "CIM Secure Server", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 5989, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "sfcbd-watchdog", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "CIMSLP", - Label: "CIM SLP", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 427, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 427, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 427, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 427, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "DHCPv6", - Label: "DHCPv6", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 547, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 546, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 547, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 546, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "DVFilter", - Label: "DVFilter", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 2222, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "DVSSync", - Label: "DVSSync", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 8302, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 8301, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 8301, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 8302, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "HBR", - Label: "HBR", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 31031, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 44046, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "NFC", - Label: "NFC", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 902, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 902, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "WOL", - Label: "WOL", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 9, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "activeDirectoryAll", - Label: "Active Directory All", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 88, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 88, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 123, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 137, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 139, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 389, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 389, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 445, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 464, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 464, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 3268, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 7476, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 2020, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "cmmds", - Label: "Virtual SAN Clustering Service", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 12345, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 23451, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 12345, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 23451, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 12321, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 12321, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "dhcp", - Label: "DHCP Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 68, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 68, - EndPort: 0, - Direction: "outbound", - PortType: "src", - Protocol: "udp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "dns", - Label: "DNS Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 53, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 53, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 53, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "esxupdate", - Label: "esxupdate", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 443, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "faultTolerance", - Label: "Fault Tolerance", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 80, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 8300, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 8300, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "ftpClient", - Label: "FTP Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 21, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 20, - EndPort: 0, - Direction: "inbound", - PortType: "src", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "gdbserver", - Label: "gdbserver", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 1000, - EndPort: 9999, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 50000, - EndPort: 50999, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "httpClient", - Label: "httpClient", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 80, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 443, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "iSCSI", - Label: "Software iSCSI Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 3260, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "iofiltervp", - Label: "iofiltervp", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 9080, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "ipfam", - Label: "NSX Distributed Logical Router Service", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 6999, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 6999, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "nfs41Client", - Label: "nfs41Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 0, - EndPort: 65535, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "nfsClient", - Label: "NFS Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 0, - EndPort: 65535, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "ntpClient", - Label: "NTP Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 123, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "ntpd", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "pvrdma", - Label: "pvrdma", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 28250, - EndPort: 28761, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 28250, - EndPort: 28761, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "rabbitmqproxy", - Label: "rabbitmqproxy", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 5671, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "rdt", - Label: "Virtual SAN Transport", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 2233, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 2233, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "remoteSerialPort", - Label: "VM serial port connected over network", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 0, - EndPort: 65535, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 23, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 1024, - EndPort: 65535, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "snmp", - Label: "SNMP Server", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 161, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "snmpd", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "sshClient", - Label: "SSH Client", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 22, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "sshServer", - Label: "SSH Server", - Required: true, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 22, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "syslog", - Label: "syslog", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 514, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 514, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 1514, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "updateManager", - Label: "vCenter Update Manager", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 80, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 9000, - EndPort: 9100, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vMotion", - Label: "vMotion", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 8000, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 8000, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vSPC", - Label: "VM serial port connected to vSPC", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 0, - EndPort: 65535, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vSphereClient", - Label: "vSphere Web Client", - Required: true, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 902, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 443, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vpxHeartbeats", - Label: "VMware vCenter Agent", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 902, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "vpxa", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vsanEncryption", - Label: "vsanEncryption", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 0, - EndPort: 65535, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vsanhealth-multicasttest", - Label: "vsanhealth-multicasttest", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 5001, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "udp", - }, - { - DynamicData: types.DynamicData{}, - Port: 5001, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "udp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vsanvp", - Label: "vsanvp", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 8080, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - { - DynamicData: types.DynamicData{}, - Port: 8080, - EndPort: 0, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "vvold", - Label: "vvold", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 0, - EndPort: 65535, - Direction: "outbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: false, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - { - DynamicData: types.DynamicData{}, - Key: "webAccess", - Label: "vSphere Web Access", - Required: false, - Rule: []types.HostFirewallRule{ - { - DynamicData: types.DynamicData{}, - Port: 80, - EndPort: 0, - Direction: "inbound", - PortType: "dst", - Protocol: "tcp", - }, - }, - Service: "", - Enabled: true, - AllowedHosts: &types.HostFirewallRulesetIpList{ - DynamicData: types.DynamicData{}, - IpAddress: nil, - IpNetwork: nil, - AllIp: true, - }, - }, - }, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go deleted file mode 100644 index a1c9ad73..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_hardware_info.go +++ /dev/null @@ -1,861 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import ( - "time" - - "github.com/vmware/govmomi/vim25/types" -) - -var HostHardwareInfo = &types.HostHardwareInfo{ - SystemInfo: types.HostSystemInfo{ - Vendor: "VMware, Inc.", - Model: "VMware Virtual Platform", - Uuid: "e88d4d56-9f1e-3ea1-71fa-13a8e1a7fd70", - OtherIdentifyingInfo: []types.HostSystemIdentificationInfo{ - { - IdentifierValue: " No Asset Tag", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - Label: "Asset Tag", - Summary: "Asset tag of the system", - }, - Key: "AssetTag", - }, - }, - { - IdentifierValue: "[MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - Label: "OEM specific string", - Summary: "OEM specific string", - }, - Key: "OemSpecificString", - }, - }, - { - IdentifierValue: "Welcome to the Virtual Machine", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - Label: "OEM specific string", - Summary: "OEM specific string", - }, - Key: "OemSpecificString", - }, - }, - { - IdentifierValue: "VMware-56 4d 8d e8 1e 9f a1 3e-71 fa 13 a8 e1 a7 fd 70", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - Label: "Service tag", - Summary: "Service tag of the system", - }, - Key: "ServiceTag", - }, - }, - }, - }, - CpuPowerManagementInfo: &types.HostCpuPowerManagementInfo{ - CurrentPolicy: "Balanced", - HardwareSupport: "", - }, - CpuInfo: types.HostCpuInfo{ - NumCpuPackages: 2, - NumCpuCores: 2, - NumCpuThreads: 2, - Hz: 3591345000, - }, - CpuPkg: []types.HostCpuPackage{ - { - Index: 0, - Vendor: "intel", - Hz: 3591345000, - BusHz: 115849838, - Description: "Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz", - ThreadId: []int16{0}, - CpuFeature: []types.HostCpuIdInfo{ - { - Level: 0, - Vendor: "", - Eax: "0000:0000:0000:0000:0000:0000:0000:1101", - Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", - Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", - Edx: "0100:1001:0110:0101:0110:1110:0110:1001", - }, - { - Level: 1, - Vendor: "", - Eax: "0000:0000:0000:0010:0000:0110:1101:0111", - Ebx: "0000:0000:0000:0001:0000:1000:0000:0000", - Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", - Edx: "0000:1111:1010:1011:1111:1011:1111:1111", - }, - { - Level: -2147483648, - Vendor: "", - Eax: "1000:0000:0000:0000:0000:0000:0000:1000", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", - Edx: "0000:0000:0000:0000:0000:0000:0000:0000", - }, - { - Level: -2147483647, - Vendor: "", - Eax: "0000:0000:0000:0000:0000:0000:0000:0000", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", - Edx: "0010:1000:0001:0000:0000:1000:0000:0000", - }, - { - Level: -2147483640, - Vendor: "", - Eax: "0000:0000:0000:0000:0011:0000:0010:1010", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", - Edx: "0000:0000:0000:0000:0000:0000:0000:0000", - }, - }, - }, - { - Index: 1, - Vendor: "intel", - Hz: 3591345000, - BusHz: 115849838, - Description: "Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz", - ThreadId: []int16{1}, - CpuFeature: []types.HostCpuIdInfo{ - { - Level: 0, - Vendor: "", - Eax: "0000:0000:0000:0000:0000:0000:0000:1101", - Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", - Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", - Edx: "0100:1001:0110:0101:0110:1110:0110:1001", - }, - { - Level: 1, - Vendor: "", - Eax: "0000:0000:0000:0010:0000:0110:1101:0111", - Ebx: "0000:0010:0000:0001:0000:1000:0000:0000", - Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", - Edx: "0000:1111:1010:1011:1111:1011:1111:1111", - }, - { - Level: -2147483648, - Vendor: "", - Eax: "1000:0000:0000:0000:0000:0000:0000:1000", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", - Edx: "0000:0000:0000:0000:0000:0000:0000:0000", - }, - { - Level: -2147483647, - Vendor: "", - Eax: "0000:0000:0000:0000:0000:0000:0000:0000", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", - Edx: "0010:1000:0001:0000:0000:1000:0000:0000", - }, - { - Level: -2147483640, - Vendor: "", - Eax: "0000:0000:0000:0000:0011:0000:0010:1010", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", - Edx: "0000:0000:0000:0000:0000:0000:0000:0000", - }, - }, - }, - }, - MemorySize: 4294430720, - NumaInfo: &types.HostNumaInfo{ - Type: "NUMA", - NumNodes: 1, - NumaNode: []types.HostNumaNode{ - { - TypeId: 0x0, - CpuID: []int16{1, 0}, - MemoryRangeBegin: 4294967296, - MemoryRangeLength: 1073741824, - }, - }, - }, - SmcPresent: types.NewBool(false), - PciDevice: []types.HostPciDevice{ - { - Id: "0000:00:00.0", - ClassId: 1536, - Bus: 0x0, - Slot: 0x0, - Function: 0x0, - VendorId: -32634, - SubVendorId: 5549, - VendorName: "Intel Corporation", - DeviceId: 29072, - SubDeviceId: 6518, - ParentBridge: "", - DeviceName: "Virtual Machine Chipset", - }, - { - Id: "0000:00:01.0", - ClassId: 1540, - Bus: 0x0, - Slot: 0x1, - Function: 0x0, - VendorId: -32634, - SubVendorId: 0, - VendorName: "Intel Corporation", - DeviceId: 29073, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "440BX/ZX/DX - 82443BX/ZX/DX AGP bridge", - }, - { - Id: "0000:00:07.0", - ClassId: 1537, - Bus: 0x0, - Slot: 0x7, - Function: 0x0, - VendorId: -32634, - SubVendorId: 5549, - VendorName: "Intel Corporation", - DeviceId: 28944, - SubDeviceId: 6518, - ParentBridge: "", - DeviceName: "Virtual Machine Chipset", - }, - { - Id: "0000:00:07.1", - ClassId: 257, - Bus: 0x0, - Slot: 0x7, - Function: 0x1, - VendorId: -32634, - SubVendorId: 5549, - VendorName: "Intel Corporation", - DeviceId: 28945, - SubDeviceId: 6518, - ParentBridge: "", - DeviceName: "PIIX4 for 430TX/440BX/MX IDE Controller", - }, - { - Id: "0000:00:07.3", - ClassId: 1664, - Bus: 0x0, - Slot: 0x7, - Function: 0x3, - VendorId: -32634, - SubVendorId: 5549, - VendorName: "Intel Corporation", - DeviceId: 28947, - SubDeviceId: 6518, - ParentBridge: "", - DeviceName: "Virtual Machine Chipset", - }, - { - Id: "0000:00:07.7", - ClassId: 2176, - Bus: 0x0, - Slot: 0x7, - Function: 0x7, - VendorId: 5549, - SubVendorId: 5549, - VendorName: "VMware", - DeviceId: 1856, - SubDeviceId: 1856, - ParentBridge: "", - DeviceName: "Virtual Machine Communication Interface", - }, - { - Id: "0000:00:0f.0", - ClassId: 768, - Bus: 0x0, - Slot: 0xf, - Function: 0x0, - VendorId: 5549, - SubVendorId: 5549, - VendorName: "VMware", - DeviceId: 1029, - SubDeviceId: 1029, - ParentBridge: "", - DeviceName: "SVGA II Adapter", - }, - { - Id: "0000:00:11.0", - ClassId: 1540, - Bus: 0x0, - Slot: 0x11, - Function: 0x0, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1936, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI bridge", - }, - { - Id: "0000:00:15.0", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x0, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:15.1", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x1, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:15.2", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x2, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:15.3", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x3, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:15.4", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x4, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:15.5", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x5, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:15.6", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x6, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:15.7", - ClassId: 1540, - Bus: 0x0, - Slot: 0x15, - Function: 0x7, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.0", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x0, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.1", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x1, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.2", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x2, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.3", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x3, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.4", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x4, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.5", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x5, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.6", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x6, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:16.7", - ClassId: 1540, - Bus: 0x0, - Slot: 0x16, - Function: 0x7, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.0", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x0, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.1", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x1, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.2", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x2, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.3", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x3, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.4", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x4, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.5", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x5, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.6", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x6, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:17.7", - ClassId: 1540, - Bus: 0x0, - Slot: 0x17, - Function: 0x7, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.0", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x0, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.1", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x1, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.2", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x2, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.3", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x3, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.4", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x4, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.5", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x5, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.6", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x6, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:00:18.7", - ClassId: 1540, - Bus: 0x0, - Slot: 0x18, - Function: 0x7, - VendorId: 5549, - SubVendorId: 0, - VendorName: "VMware", - DeviceId: 1952, - SubDeviceId: 0, - ParentBridge: "", - DeviceName: "PCI Express Root Port", - }, - { - Id: "0000:03:00.0", - ClassId: 263, - Bus: 0x3, - Slot: 0x0, - Function: 0x0, - VendorId: 5549, - SubVendorId: 5549, - VendorName: "VMware", - DeviceId: 1984, - SubDeviceId: 1984, - ParentBridge: "0000:00:15.0", - DeviceName: "PVSCSI SCSI Controller", - }, - { - Id: "0000:0b:00.0", - ClassId: 512, - Bus: 0xb, - Slot: 0x0, - Function: 0x0, - VendorId: 5549, - SubVendorId: 5549, - VendorName: "VMware Inc.", - DeviceId: 1968, - SubDeviceId: 1968, - ParentBridge: "0000:00:16.0", - DeviceName: "vmxnet3 Virtual Ethernet Controller", - }, - { - Id: "0000:13:00.0", - ClassId: 512, - Bus: 0x13, - Slot: 0x0, - Function: 0x0, - VendorId: 5549, - SubVendorId: 5549, - VendorName: "VMware Inc.", - DeviceId: 1968, - SubDeviceId: 1968, - ParentBridge: "0000:00:17.0", - DeviceName: "vmxnet3 Virtual Ethernet Controller", - }, - }, - CpuFeature: []types.HostCpuIdInfo{ - { - Level: 0, - Vendor: "", - Eax: "0000:0000:0000:0000:0000:0000:0000:1101", - Ebx: "0111:0101:0110:1110:0110:0101:0100:0111", - Ecx: "0110:1100:0110:0101:0111:0100:0110:1110", - Edx: "0100:1001:0110:0101:0110:1110:0110:1001", - }, - { - Level: 1, - Vendor: "", - Eax: "0000:0000:0000:0010:0000:0110:1101:0111", - Ebx: "0000:0000:0000:0001:0000:1000:0000:0000", - Ecx: "1001:0111:1011:1010:0010:0010:0010:1011", - Edx: "0000:1111:1010:1011:1111:1011:1111:1111", - }, - { - Level: -2147483648, - Vendor: "", - Eax: "1000:0000:0000:0000:0000:0000:0000:1000", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", - Edx: "0000:0000:0000:0000:0000:0000:0000:0000", - }, - { - Level: -2147483647, - Vendor: "", - Eax: "0000:0000:0000:0000:0000:0000:0000:0000", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0001", - Edx: "0010:1000:0001:0000:0000:1000:0000:0000", - }, - { - Level: -2147483640, - Vendor: "", - Eax: "0000:0000:0000:0000:0011:0000:0010:1010", - Ebx: "0000:0000:0000:0000:0000:0000:0000:0000", - Ecx: "0000:0000:0000:0000:0000:0000:0000:0000", - Edx: "0000:0000:0000:0000:0000:0000:0000:0000", - }, - }, - BiosInfo: &types.HostBIOSInfo{ - BiosVersion: "6.00", - ReleaseDate: nil, - Vendor: "", - MajorRelease: 0, - MinorRelease: 0, - FirmwareMajorRelease: 0, - FirmwareMinorRelease: 0, - }, - ReliableMemoryInfo: &types.HostReliableMemoryInfo{}, -} - -func init() { - date, _ := time.Parse("2006-01-02", "2015-07-02") - - HostHardwareInfo.BiosInfo.ReleaseDate = &date -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go deleted file mode 100644 index e25f39a5..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/host_system.go +++ /dev/null @@ -1,1788 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import ( - "time" - - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var HostSystem = mo.HostSystem{ - ManagedEntity: mo.ManagedEntity{ - ExtensibleManagedObject: mo.ExtensibleManagedObject{ - Self: types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, - Value: nil, - AvailableField: nil, - }, - Parent: &types.ManagedObjectReference{Type: "ComputeResource", Value: "ha-compute-res"}, - CustomValue: nil, - OverallStatus: "", - ConfigStatus: "", - ConfigIssue: nil, - EffectiveRole: nil, - Permission: nil, - Name: "", - DisabledMethod: nil, - RecentTask: nil, - DeclaredAlarmState: nil, - TriggeredAlarmState: nil, - AlarmActionsEnabled: (*bool)(nil), - Tag: nil, - }, - Runtime: types.HostRuntimeInfo{ - DynamicData: types.DynamicData{}, - ConnectionState: "connected", - PowerState: "poweredOn", - StandbyMode: "", - InMaintenanceMode: false, - BootTime: (*time.Time)(nil), - HealthSystemRuntime: &types.HealthSystemRuntime{ - DynamicData: types.DynamicData{}, - SystemHealthInfo: &types.HostSystemHealthInfo{ - DynamicData: types.DynamicData{}, - NumericSensorInfo: []types.HostNumericSensorInfo{ - { - DynamicData: types.DynamicData{}, - Name: "VMware Rollup Health State", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "system", - }, - { - DynamicData: types.DynamicData{}, - Name: "CPU socket #0 Level-1 Cache is 16384 B", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Processors", - }, - { - DynamicData: types.DynamicData{}, - Name: "CPU socket #0 Level-2 Cache is 0 B", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Processors", - }, - { - DynamicData: types.DynamicData{}, - Name: "CPU socket #1 Level-1 Cache is 16384 B", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Processors", - }, - { - DynamicData: types.DynamicData{}, - Name: "CPU socket #1 Level-2 Cache is 0 B", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Processors", - }, - { - DynamicData: types.DynamicData{}, - Name: "Phoenix Technologies LTD System BIOS 6.00 2014-05-20 00:00:00.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware, Inc. VMware ESXi 6.0.0 build-3634798 2016-03-07 00:00:00.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware sata-ata-piix 2.12-10vmw.600.2.34.3634798 2016-03-08 07:38:41.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsu-lsi-mptsas-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-mlx4-core 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsu-lsi-mpt2sas-plugin 1.0.0-4vmw.600.2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-aacraid 1.1.5.1-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-via 0.3.3-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-qla4xxx 5.01.03.2-7vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware sata-sata-promise 2.12-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-megaraid-mbox 2.20.5.1-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware vsan 6.0.0-2.34.3563498 2016-02-17 17:18:19.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-e1000 8.0.3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-serverworks 0.4.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-mptspi 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-nx-nic 5.0.621-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware block-cciss 3.6.14-10vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-bnx2x 1.78.80.v60.12-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ipmi-ipmi-devintf 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-mptsas 4.23.01.00-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-megaraid2 2.00.4-9vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware nvme 1.0e.0.35-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware esx-xserver 6.0.0-2.34.3634798 2016-03-08 07:39:27.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware nmlx4-en 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsu-hp-hpsa-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-megaraid-sas 6.603.55.00-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-enic 2.1.2.38-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsi-msgpt3 06.255.12.00-8vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware sata-ahci 3.0-22vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-forcedeth 0.61-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-atiixp 0.4.6-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware elxnet 10.2.309.6v-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware esx-dvfilter-generic-fastpath 6.0.0-2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware uhci-usb-uhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-amd 0.3.10-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware sata-sata-sil24 1.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ohci-usb-ohci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-igb 5.0.5.1.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-pdc2027x 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ehci-ehci-hcd 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsu-lsi-lsi-mr3-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-ixgbe 3.7.13.7.14iov-20vmw.600.2.34.3634798 2016-03-08 07:38:41.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware vsanhealth 6.0.0-3000000.3.0.2.34.3544323 2016-02-12 06:45:30.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-cnic 1.78.76.v60.13-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware sata-sata-svw 2.3-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ipmi-ipmi-msghandler 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware emulex-esx-elxnetcli 10.2.309.6v-2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-aic79xx 3.1-5vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware qlnativefc 2.0.12.0-5vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsu-lsi-lsi-msgpt3-plugin 1.0.0-1vmw.600.2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ima-qla4xxx 2.02.18-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-mlx4-en 1.9.7.0-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-e1000e 3.2.2.1-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-tg3 3.131d.v60.4-2vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-hpsa 6.0.0.44-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-bnx2fc 1.78.78.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware cpu-microcode 6.0.0-2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-fnic 1.5.0.45-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware nmlx4-rdma 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-vmxnet3 1.1.3.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lpfc 10.2.309.8-2vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware esx-ui 1.0.0-3617585 2016-03-03 04:52:43.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-cmd64x 0.2.5-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsi-mr3 6.605.08.00-7vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-hpt3x2n 0.3.4-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware sata-sata-nv 3.5-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware misc-cnic-register 1.78.75.v60.7-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware lsu-lsi-megaraid-sas-plugin 1.0.0-2vmw.600.2.34.3634798 2016-03-08 07:39:28.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ata-pata-sil680 0.4.8-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware esx-tboot 6.0.0-2.34.3634798 2016-03-08 07:39:27.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware xhci-xhci 1.0-3vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-ips 7.12.05-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-adp94xx 1.0.8.12-6vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware rste 2.0.2.0088-4vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware ipmi-ipmi-si-drv 39.1-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMWARE mtip32xx-native 3.8.5-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-mpt2sas 19.00.00.00-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware misc-drivers 6.0.0-2.34.3634798 2016-03-08 07:38:41.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware nmlx4-core 3.0.0.0-1vmw.600.2.34.3634798 2016-03-08 07:38:46.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware sata-sata-sil 2.3-4vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware esx-base 6.0.0-2.34.3634798 2016-03-08 07:39:18.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware scsi-bnx2i 2.78.76.v60.8-1vmw.600.2.34.3634798 2016-03-08 07:38:41.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "VMware net-bnx2 2.2.4f.v60.10-1vmw.600.2.34.3634798 2016-03-08 07:38:45.000", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "e1000 driver 8.0.3.1-NAPI", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - { - DynamicData: types.DynamicData{}, - Name: "e1000 device firmware N/A", - HealthState: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Sensor is operating under normal conditions", - }, - Key: "green", - }, - CurrentReading: 0, - UnitModifier: 0, - BaseUnits: "", - RateUnits: "", - SensorType: "Software Components", - }, - }, - }, - HardwareStatusInfo: &types.HostHardwareStatusInfo{ - DynamicData: types.DynamicData{}, - MemoryStatusInfo: nil, - CpuStatusInfo: []types.BaseHostHardwareElementInfo{ - &types.HostHardwareElementInfo{ - DynamicData: types.DynamicData{}, - Name: "CPU socket #0", - Status: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Physical element is functioning as expected", - }, - Key: "Green", - }, - }, - &types.HostHardwareElementInfo{ - DynamicData: types.DynamicData{}, - Name: "CPU socket #1", - Status: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Green", - Summary: "Physical element is functioning as expected", - }, - Key: "Green", - }, - }, - }, - StorageStatusInfo: nil, - }, - }, - DasHostState: (*types.ClusterDasFdmHostState)(nil), - TpmPcrValues: nil, - VsanRuntimeInfo: &types.VsanHostRuntimeInfo{}, - NetworkRuntimeInfo: &types.HostRuntimeInfoNetworkRuntimeInfo{ - DynamicData: types.DynamicData{}, - NetStackInstanceRuntimeInfo: []types.HostRuntimeInfoNetStackInstanceRuntimeInfo{ - { - DynamicData: types.DynamicData{}, - NetStackInstanceKey: "defaultTcpipStack", - State: "active", - VmknicKeys: []string{"vmk0"}, - MaxNumberOfConnections: 11000, - CurrentIpV6Enabled: types.NewBool(true), - }, - }, - NetworkResourceRuntime: (*types.HostNetworkResourceRuntime)(nil), - }, - VFlashResourceRuntimeInfo: (*types.HostVFlashManagerVFlashResourceRunTimeInfo)(nil), - HostMaxVirtualDiskCapacity: 68169720922112, - }, - Summary: types.HostListSummary{ - DynamicData: types.DynamicData{}, - Host: &types.ManagedObjectReference{Type: "HostSystem", Value: "ha-host"}, - Hardware: &types.HostHardwareSummary{ - DynamicData: types.DynamicData{}, - Vendor: "VMware, Inc.", - Model: "VMware Virtual Platform", - Uuid: "564d2f12-8041-639b-5018-05a835b72eaf", - OtherIdentifyingInfo: []types.HostSystemIdentificationInfo{ - { - DynamicData: types.DynamicData{}, - IdentifierValue: " No Asset Tag", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Asset Tag", - Summary: "Asset tag of the system", - }, - Key: "AssetTag", - }, - }, - { - DynamicData: types.DynamicData{}, - IdentifierValue: "[MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "OEM specific string", - Summary: "OEM specific string", - }, - Key: "OemSpecificString", - }, - }, - { - DynamicData: types.DynamicData{}, - IdentifierValue: "Welcome to the Virtual Machine", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "OEM specific string", - Summary: "OEM specific string", - }, - Key: "OemSpecificString", - }, - }, - { - DynamicData: types.DynamicData{}, - IdentifierValue: "VMware-56 4d 2f 12 80 41 63 9b-50 18 05 a8 35 b7 2e af", - IdentifierType: &types.ElementDescription{ - Description: types.Description{ - DynamicData: types.DynamicData{}, - Label: "Service tag", - Summary: "Service tag of the system", - }, - Key: "ServiceTag", - }, - }, - }, - MemorySize: 4294430720, - CpuModel: "Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz", - CpuMhz: 2294, - NumCpuPkgs: 2, - NumCpuCores: 2, - NumCpuThreads: 2, - NumNics: 1, - NumHBAs: 3, - }, - Runtime: (*types.HostRuntimeInfo)(nil), - Config: types.HostConfigSummary{ - DynamicData: types.DynamicData{}, - Name: "localhost.localdomain", - Port: 902, - SslThumbprint: "", - Product: &HostConfigInfo.Product, - VmotionEnabled: false, - FaultToleranceEnabled: types.NewBool(true), - FeatureVersion: nil, - AgentVmDatastore: (*types.ManagedObjectReference)(nil), - AgentVmNetwork: (*types.ManagedObjectReference)(nil), - }, - QuickStats: types.HostListSummaryQuickStats{ - DynamicData: types.DynamicData{}, - OverallCpuUsage: 67, - OverallMemoryUsage: 1404, - DistributedCpuFairness: 0, - DistributedMemoryFairness: 0, - Uptime: 77229, - }, - OverallStatus: "gray", - RebootRequired: false, - CustomValue: nil, - ManagementServerIp: "", - MaxEVCModeKey: "", - CurrentEVCModeKey: "", - Gateway: (*types.HostListSummaryGatewaySummary)(nil), - }, - Hardware: (*types.HostHardwareInfo)(nil), - Capability: (*types.HostCapability)(nil), - LicensableResource: types.HostLicensableResourceInfo{}, - ConfigManager: types.HostConfigManager{ - DynamicData: types.DynamicData{}, - CpuScheduler: &types.ManagedObjectReference{Type: "HostCpuSchedulerSystem", Value: "cpuSchedulerSystem"}, - DatastoreSystem: &types.ManagedObjectReference{Type: "HostDatastoreSystem", Value: "ha-datastoresystem"}, - MemoryManager: &types.ManagedObjectReference{Type: "HostMemorySystem", Value: "memoryManagerSystem"}, - StorageSystem: &types.ManagedObjectReference{Type: "HostStorageSystem", Value: "storageSystem"}, - NetworkSystem: &types.ManagedObjectReference{Type: "HostNetworkSystem", Value: "networkSystem"}, - VmotionSystem: &types.ManagedObjectReference{Type: "HostVMotionSystem", Value: "ha-vmotion-system"}, - VirtualNicManager: &types.ManagedObjectReference{Type: "HostVirtualNicManager", Value: "ha-vnic-mgr"}, - ServiceSystem: &types.ManagedObjectReference{Type: "HostServiceSystem", Value: "serviceSystem"}, - FirewallSystem: &types.ManagedObjectReference{Type: "HostFirewallSystem", Value: "firewallSystem"}, - AdvancedOption: &types.ManagedObjectReference{Type: "OptionManager", Value: "ha-adv-options"}, - DiagnosticSystem: &types.ManagedObjectReference{Type: "HostDiagnosticSystem", Value: "diagnosticsystem"}, - AutoStartManager: &types.ManagedObjectReference{Type: "HostAutoStartManager", Value: "ha-autostart-mgr"}, - SnmpSystem: &types.ManagedObjectReference{Type: "HostSnmpSystem", Value: "ha-snmp-agent"}, - DateTimeSystem: &types.ManagedObjectReference{Type: "HostDateTimeSystem", Value: "dateTimeSystem"}, - PatchManager: &types.ManagedObjectReference{Type: "HostPatchManager", Value: "ha-host-patch-manager"}, - ImageConfigManager: &types.ManagedObjectReference{Type: "HostImageConfigManager", Value: "ha-image-config-manager"}, - BootDeviceSystem: (*types.ManagedObjectReference)(nil), - FirmwareSystem: &types.ManagedObjectReference{Type: "HostFirmwareSystem", Value: "ha-firmwareSystem"}, - HealthStatusSystem: &types.ManagedObjectReference{Type: "HostHealthStatusSystem", Value: "healthStatusSystem"}, - PciPassthruSystem: &types.ManagedObjectReference{Type: "HostPciPassthruSystem", Value: "ha-pcipassthrusystem"}, - LicenseManager: &types.ManagedObjectReference{Type: "LicenseManager", Value: "ha-license-manager"}, - KernelModuleSystem: &types.ManagedObjectReference{Type: "HostKernelModuleSystem", Value: "kernelModuleSystem"}, - AuthenticationManager: &types.ManagedObjectReference{Type: "HostAuthenticationManager", Value: "ha-auth-manager"}, - PowerSystem: &types.ManagedObjectReference{Type: "HostPowerSystem", Value: "ha-power-system"}, - CacheConfigurationManager: &types.ManagedObjectReference{Type: "HostCacheConfigurationManager", Value: "ha-cache-configuration-manager"}, - EsxAgentHostManager: (*types.ManagedObjectReference)(nil), - IscsiManager: &types.ManagedObjectReference{Type: "IscsiManager", Value: "iscsiManager"}, - VFlashManager: &types.ManagedObjectReference{Type: "HostVFlashManager", Value: "ha-vflash-manager"}, - VsanSystem: &types.ManagedObjectReference{Type: "HostVsanSystem", Value: "vsanSystem"}, - MessageBusProxy: &types.ManagedObjectReference{Type: "MessageBusProxy", Value: "messageBusProxy"}, - UserDirectory: &types.ManagedObjectReference{Type: "UserDirectory", Value: "ha-user-directory"}, - AccountManager: &types.ManagedObjectReference{Type: "HostLocalAccountManager", Value: "ha-localacctmgr"}, - HostAccessManager: &types.ManagedObjectReference{Type: "HostAccessManager", Value: "ha-host-access-manager"}, - GraphicsManager: &types.ManagedObjectReference{Type: "HostGraphicsManager", Value: "ha-graphics-manager"}, - VsanInternalSystem: &types.ManagedObjectReference{Type: "HostVsanInternalSystem", Value: "ha-vsan-internal-system"}, - CertificateManager: &types.ManagedObjectReference{Type: "HostCertificateManager", Value: "ha-certificate-manager"}, - }, - Config: &HostConfigInfo, - Vm: nil, - Datastore: nil, - Network: nil, - DatastoreBrowser: types.ManagedObjectReference{Type: "HostDatastoreBrowser", Value: "ha-host-datastorebrowser"}, - SystemResources: (*types.HostSystemResourceInfo)(nil), -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go deleted file mode 100644 index 08d6da5d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/resource_pool.go +++ /dev/null @@ -1,162 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import ( - "time" - - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var ResourcePool = mo.ResourcePool{ - ManagedEntity: mo.ManagedEntity{ - ExtensibleManagedObject: mo.ExtensibleManagedObject{ - Self: types.ManagedObjectReference{Type: "ResourcePool", Value: "ha-root-pool"}, - Value: nil, - AvailableField: nil, - }, - Parent: &types.ManagedObjectReference{Type: "ComputeResource", Value: "ha-compute-res"}, - CustomValue: nil, - OverallStatus: "green", - ConfigStatus: "green", - ConfigIssue: nil, - EffectiveRole: []int32{-1}, - Permission: nil, - Name: "Resources", - DisabledMethod: []string{"CreateVApp", "CreateChildVM_Task"}, - RecentTask: nil, - DeclaredAlarmState: nil, - TriggeredAlarmState: nil, - AlarmActionsEnabled: (*bool)(nil), - Tag: nil, - }, - Summary: &types.ResourcePoolSummary{ - DynamicData: types.DynamicData{}, - Name: "Resources", - Config: types.ResourceConfigSpec{ - DynamicData: types.DynamicData{}, - Entity: &types.ManagedObjectReference{Type: "ResourcePool", Value: "ha-root-pool"}, - ChangeVersion: "", - LastModified: (*time.Time)(nil), - CpuAllocation: &types.ResourceAllocationInfo{ - DynamicData: types.DynamicData{}, - Reservation: 4121, - ExpandableReservation: types.NewBool(false), - Limit: 4121, - Shares: &types.SharesInfo{ - DynamicData: types.DynamicData{}, - Shares: 9000, - Level: "custom", - }, - OverheadLimit: 0, - }, - MemoryAllocation: &types.ResourceAllocationInfo{ - DynamicData: types.DynamicData{}, - Reservation: 961, - ExpandableReservation: types.NewBool(false), - Limit: 961, - Shares: &types.SharesInfo{ - DynamicData: types.DynamicData{}, - Shares: 9000, - Level: "custom", - }, - OverheadLimit: 0, - }, - }, - Runtime: types.ResourcePoolRuntimeInfo{ - DynamicData: types.DynamicData{}, - Memory: types.ResourcePoolResourceUsage{ - DynamicData: types.DynamicData{}, - ReservationUsed: 0, - ReservationUsedForVm: 0, - UnreservedForPool: 1007681536, - UnreservedForVm: 1007681536, - OverallUsage: 0, - MaxUsage: 1007681536, - }, - Cpu: types.ResourcePoolResourceUsage{ - DynamicData: types.DynamicData{}, - ReservationUsed: 0, - ReservationUsedForVm: 0, - UnreservedForPool: 4121, - UnreservedForVm: 4121, - OverallUsage: 0, - MaxUsage: 4121, - }, - OverallStatus: "green", - }, - QuickStats: (*types.ResourcePoolQuickStats)(nil), - ConfiguredMemoryMB: 0, - }, - Runtime: types.ResourcePoolRuntimeInfo{ - DynamicData: types.DynamicData{}, - Memory: types.ResourcePoolResourceUsage{ - DynamicData: types.DynamicData{}, - ReservationUsed: 0, - ReservationUsedForVm: 0, - UnreservedForPool: 1007681536, - UnreservedForVm: 1007681536, - OverallUsage: 0, - MaxUsage: 1007681536, - }, - Cpu: types.ResourcePoolResourceUsage{ - DynamicData: types.DynamicData{}, - ReservationUsed: 0, - ReservationUsedForVm: 0, - UnreservedForPool: 4121, - UnreservedForVm: 4121, - OverallUsage: 0, - MaxUsage: 4121, - }, - OverallStatus: "green", - }, - Owner: types.ManagedObjectReference{Type: "ComputeResource", Value: "ha-compute-res"}, - ResourcePool: nil, - Vm: nil, - Config: types.ResourceConfigSpec{ - DynamicData: types.DynamicData{}, - Entity: &types.ManagedObjectReference{Type: "ResourcePool", Value: "ha-root-pool"}, - ChangeVersion: "", - LastModified: (*time.Time)(nil), - CpuAllocation: &types.ResourceAllocationInfo{ - DynamicData: types.DynamicData{}, - Reservation: 4121, - ExpandableReservation: types.NewBool(false), - Limit: 4121, - Shares: &types.SharesInfo{ - DynamicData: types.DynamicData{}, - Shares: 9000, - Level: "custom", - }, - OverheadLimit: 0, - }, - MemoryAllocation: &types.ResourceAllocationInfo{ - DynamicData: types.DynamicData{}, - Reservation: 961, - ExpandableReservation: types.NewBool(false), - Limit: 961, - Shares: &types.SharesInfo{ - DynamicData: types.DynamicData{}, - Shares: 9000, - Level: "custom", - }, - OverheadLimit: 0, - }, - }, - ChildConfiguration: nil, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go deleted file mode 100644 index bb40706f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/root_folder.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import ( - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var RootFolder = mo.Folder{ - ManagedEntity: mo.ManagedEntity{ - ExtensibleManagedObject: mo.ExtensibleManagedObject{ - Self: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, - Value: nil, - AvailableField: nil, - }, - Parent: (*types.ManagedObjectReference)(nil), - CustomValue: nil, - OverallStatus: "green", - ConfigStatus: "green", - ConfigIssue: nil, - EffectiveRole: []int32{-1}, - Permission: []types.Permission{ - { - DynamicData: types.DynamicData{}, - Entity: &types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, - Principal: "vpxuser", - Group: false, - RoleId: -1, - Propagate: true, - }, - { - DynamicData: types.DynamicData{}, - Entity: &types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, - Principal: "dcui", - Group: false, - RoleId: -1, - Propagate: true, - }, - { - DynamicData: types.DynamicData{}, - Entity: &types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, - Principal: "root", - Group: false, - RoleId: -1, - Propagate: true, - }, - }, - Name: "ha-folder-root", - DisabledMethod: nil, - RecentTask: nil, - DeclaredAlarmState: nil, - TriggeredAlarmState: nil, - AlarmActionsEnabled: (*bool)(nil), - Tag: nil, - }, - ChildType: []string{"Datacenter"}, - ChildEntity: nil, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go deleted file mode 100644 index 88f2cbbb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/service_content.go +++ /dev/null @@ -1,79 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import "github.com/vmware/govmomi/vim25/types" - -var ServiceContent = types.ServiceContent{ - DynamicData: types.DynamicData{}, - RootFolder: types.ManagedObjectReference{Type: "Folder", Value: "ha-folder-root"}, - PropertyCollector: types.ManagedObjectReference{Type: "PropertyCollector", Value: "ha-property-collector"}, - ViewManager: &types.ManagedObjectReference{Type: "ViewManager", Value: "ViewManager"}, - About: types.AboutInfo{ - DynamicData: types.DynamicData{}, - Name: "VMware ESXi", - FullName: "VMware ESXi 6.0.0 build-3620759", - Vendor: "VMware, Inc.", - Version: "6.0.0", - Build: "3620759", - LocaleVersion: "INTL", - LocaleBuild: "000", - OsType: "vmnix-x86", - ProductLineId: "embeddedEsx", - ApiType: "HostAgent", - ApiVersion: "6.0", - InstanceUuid: "", - LicenseProductName: "VMware ESX Server", - LicenseProductVersion: "6.0", - }, - Setting: &types.ManagedObjectReference{Type: "OptionManager", Value: "HostAgentSettings"}, - UserDirectory: &types.ManagedObjectReference{Type: "UserDirectory", Value: "ha-user-directory"}, - SessionManager: &types.ManagedObjectReference{Type: "SessionManager", Value: "ha-sessionmgr"}, - AuthorizationManager: &types.ManagedObjectReference{Type: "AuthorizationManager", Value: "ha-authmgr"}, - ServiceManager: &types.ManagedObjectReference{Type: "ServiceManager", Value: "ha-servicemanager"}, - PerfManager: &types.ManagedObjectReference{Type: "PerformanceManager", Value: "ha-perfmgr"}, - ScheduledTaskManager: (*types.ManagedObjectReference)(nil), - AlarmManager: (*types.ManagedObjectReference)(nil), - EventManager: &types.ManagedObjectReference{Type: "EventManager", Value: "ha-eventmgr"}, - TaskManager: &types.ManagedObjectReference{Type: "TaskManager", Value: "ha-taskmgr"}, - ExtensionManager: (*types.ManagedObjectReference)(nil), - CustomizationSpecManager: (*types.ManagedObjectReference)(nil), - CustomFieldsManager: (*types.ManagedObjectReference)(nil), - AccountManager: &types.ManagedObjectReference{Type: "HostLocalAccountManager", Value: "ha-localacctmgr"}, - DiagnosticManager: &types.ManagedObjectReference{Type: "DiagnosticManager", Value: "ha-diagnosticmgr"}, - LicenseManager: &types.ManagedObjectReference{Type: "LicenseManager", Value: "ha-license-manager"}, - SearchIndex: &types.ManagedObjectReference{Type: "SearchIndex", Value: "ha-searchindex"}, - FileManager: &types.ManagedObjectReference{Type: "FileManager", Value: "ha-nfc-file-manager"}, - DatastoreNamespaceManager: &types.ManagedObjectReference{Type: "DatastoreNamespaceManager", Value: "ha-datastore-namespace-manager"}, - VirtualDiskManager: &types.ManagedObjectReference{Type: "VirtualDiskManager", Value: "ha-vdiskmanager"}, - VirtualizationManager: (*types.ManagedObjectReference)(nil), - SnmpSystem: (*types.ManagedObjectReference)(nil), - VmProvisioningChecker: (*types.ManagedObjectReference)(nil), - VmCompatibilityChecker: (*types.ManagedObjectReference)(nil), - OvfManager: &types.ManagedObjectReference{Type: "OvfManager", Value: "ha-ovf-manager"}, - IpPoolManager: (*types.ManagedObjectReference)(nil), - DvSwitchManager: &types.ManagedObjectReference{Type: "DistributedVirtualSwitchManager", Value: "ha-dvsmanager"}, - HostProfileManager: (*types.ManagedObjectReference)(nil), - ClusterProfileManager: (*types.ManagedObjectReference)(nil), - ComplianceManager: (*types.ManagedObjectReference)(nil), - LocalizationManager: &types.ManagedObjectReference{Type: "LocalizationManager", Value: "ha-l10n-manager"}, - StorageResourceManager: &types.ManagedObjectReference{Type: "StorageResourceManager", Value: "ha-storage-resource-manager"}, - GuestOperationsManager: &types.ManagedObjectReference{Type: "GuestOperationsManager", Value: "ha-guest-operations-manager"}, - OverheadMemoryManager: (*types.ManagedObjectReference)(nil), - CertificateManager: (*types.ManagedObjectReference)(nil), - IoFilterManager: (*types.ManagedObjectReference)(nil), -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/setting.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/setting.go deleted file mode 100644 index c5c6ae60..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/setting.go +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import "github.com/vmware/govmomi/vim25/types" - -// Setting is captured from ESX's HostSystem.configManager.advancedOption -var Setting = []types.BaseOptionValue{ - // This list is currently pruned to include a single option for testing - &types.OptionValue{ - Key: "Config.HostAgent.log.level", - Value: "info", - }, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go deleted file mode 100644 index 0d394364..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/esx/virtual_device.go +++ /dev/null @@ -1,243 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 esx - -import "github.com/vmware/govmomi/vim25/types" - -// VirtualDevice is the default set of VirtualDevice types created for a VirtualMachine -var VirtualDevice = []types.BaseVirtualDevice{ - &types.VirtualIDEController{ - VirtualController: types.VirtualController{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 200, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "IDE 0", - Summary: "IDE 0", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 0, - UnitNumber: (*int32)(nil), - }, - BusNumber: 0, - Device: nil, - }, - }, - &types.VirtualIDEController{ - VirtualController: types.VirtualController{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 201, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "IDE 1", - Summary: "IDE 1", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 0, - UnitNumber: (*int32)(nil), - }, - BusNumber: 1, - Device: nil, - }, - }, - &types.VirtualPS2Controller{ - VirtualController: types.VirtualController{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 300, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "PS2 controller 0", - Summary: "PS2 controller 0", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 0, - UnitNumber: (*int32)(nil), - }, - BusNumber: 0, - Device: []int32{600, 700}, - }, - }, - &types.VirtualPCIController{ - VirtualController: types.VirtualController{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 100, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "PCI controller 0", - Summary: "PCI controller 0", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 0, - UnitNumber: (*int32)(nil), - }, - BusNumber: 0, - Device: []int32{500, 12000}, - }, - }, - &types.VirtualSIOController{ - VirtualController: types.VirtualController{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 400, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "SIO controller 0", - Summary: "SIO controller 0", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 0, - UnitNumber: (*int32)(nil), - }, - BusNumber: 0, - Device: nil, - }, - }, - &types.VirtualKeyboard{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 600, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "Keyboard ", - Summary: "Keyboard", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 300, - UnitNumber: newInt32(0), - }, - }, - &types.VirtualPointingDevice{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 700, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "Pointing device", - Summary: "Pointing device; Device", - }, - Backing: &types.VirtualPointingDeviceDeviceBackingInfo{ - VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ - VirtualDeviceBackingInfo: types.VirtualDeviceBackingInfo{}, - DeviceName: "", - UseAutoDetect: types.NewBool(false), - }, - HostPointingDevice: "autodetect", - }, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 300, - UnitNumber: newInt32(1), - }, - }, - &types.VirtualMachineVideoCard{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 500, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "Video card ", - Summary: "Video card", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 100, - UnitNumber: newInt32(0), - }, - VideoRamSizeInKB: 4096, - NumDisplays: 1, - UseAutoDetect: types.NewBool(false), - Enable3DSupport: types.NewBool(false), - Use3dRenderer: "automatic", - GraphicsMemorySizeInKB: 262144, - }, - &types.VirtualMachineVMCIDevice{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 12000, - DeviceInfo: &types.Description{ - DynamicData: types.DynamicData{}, - Label: "VMCI device", - Summary: "Device on the virtual machine PCI bus that provides support for the virtual machine communication interface", - }, - Backing: nil, - Connectable: (*types.VirtualDeviceConnectInfo)(nil), - SlotInfo: nil, - ControllerKey: 100, - UnitNumber: newInt32(17), - }, - Id: -1, - AllowUnrestrictedCommunication: types.NewBool(false), - FilterEnable: types.NewBool(true), - FilterInfo: (*types.VirtualMachineVMCIDeviceFilterInfo)(nil), - }, -} - -// EthernetCard template for types.VirtualEthernetCard -var EthernetCard = types.VirtualE1000{ - VirtualEthernetCard: types.VirtualEthernetCard{ - VirtualDevice: types.VirtualDevice{ - DynamicData: types.DynamicData{}, - Key: 4000, - Backing: &types.VirtualEthernetCardNetworkBackingInfo{ - VirtualDeviceDeviceBackingInfo: types.VirtualDeviceDeviceBackingInfo{ - VirtualDeviceBackingInfo: types.VirtualDeviceBackingInfo{}, - DeviceName: "VM Network", - UseAutoDetect: types.NewBool(false), - }, - Network: (*types.ManagedObjectReference)(nil), - InPassthroughMode: types.NewBool(false), - }, - Connectable: &types.VirtualDeviceConnectInfo{ - DynamicData: types.DynamicData{}, - StartConnected: true, - AllowGuestControl: true, - Connected: false, - Status: "untried", - }, - SlotInfo: &types.VirtualDevicePciBusSlotInfo{ - VirtualDeviceBusSlotInfo: types.VirtualDeviceBusSlotInfo{}, - PciSlotNumber: 32, - }, - ControllerKey: 100, - UnitNumber: newInt32(7), - }, - AddressType: "generated", - MacAddress: "", - WakeOnLanEnabled: types.NewBool(true), - }, -} - -func newInt32(n int32) *int32 { - return &n -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/file_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/file_manager.go deleted file mode 100644 index 29161b86..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/file_manager.go +++ /dev/null @@ -1,193 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "os" - "path" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type FileManager struct { - mo.FileManager -} - -func NewFileManager(ref types.ManagedObjectReference) object.Reference { - m := &FileManager{} - m.Self = ref - return m -} - -func (f *FileManager) findDatastore(dc *types.ManagedObjectReference, name string) (*Datastore, types.BaseMethodFault) { - if dc == nil { - dc = &esx.Datacenter.Self - } - - folder := Map.Get(Map.Get(*dc).(*mo.Datacenter).DatastoreFolder).(*Folder) - - ds := Map.FindByName(name, folder.ChildEntity) - if ds == nil { - return nil, &types.InvalidDatastore{Name: name} - } - - return ds.(*Datastore), nil -} - -func (f *FileManager) fault(name string, err error, fault types.BaseFileFault) types.BaseMethodFault { - switch { - case os.IsNotExist(err): - fault = new(types.FileNotFound) - } - - fault.GetFileFault().File = name - - return fault.(types.BaseMethodFault) -} - -func (f *FileManager) DeleteDatastoreFileTask(d *types.DeleteDatastoreFile_Task) soap.HasFault { - task := CreateTask(f, "deleteDatastoreFile", func(t *Task) (types.AnyType, types.BaseMethodFault) { - p, fault := parseDatastorePath(d.Name) - if fault != nil { - return nil, fault - } - - ds, fault := f.findDatastore(d.Datacenter, p.Datastore) - if fault != nil { - return nil, fault - } - - dir := ds.Info.GetDatastoreInfo().Url - file := path.Join(dir, p.Path) - - _, err := os.Stat(file) - if err != nil { - if os.IsNotExist(err) { - return nil, f.fault(file, err, new(types.CannotDeleteFile)) - } - } - - err = os.RemoveAll(file) - if err != nil { - return nil, f.fault(file, err, new(types.CannotDeleteFile)) - } - - return nil, nil - }) - - task.Run() - - return &methods.DeleteDatastoreFile_TaskBody{ - Res: &types.DeleteDatastoreFile_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (f *FileManager) MakeDirectory(r *types.MakeDirectory) soap.HasFault { - body := &methods.MakeDirectoryBody{} - - p, fault := parseDatastorePath(r.Name) - if fault != nil { - body.Fault_ = Fault("", fault) - return body - } - - ds, fault := f.findDatastore(r.Datacenter, p.Datastore) - if fault != nil { - body.Fault_ = Fault("", fault) - return body - } - - name := path.Join(ds.Info.GetDatastoreInfo().Url, p.Path) - - mkdir := os.Mkdir - - if isTrue(r.CreateParentDirectories) { - mkdir = os.MkdirAll - } - - err := mkdir(name, 0700) - if err != nil { - fault = f.fault(r.Name, err, new(types.CannotCreateFile)) - body.Fault_ = Fault(err.Error(), fault) - return body - } - - return body -} - -func (f *FileManager) MoveDatastoreFileTask(d *types.MoveDatastoreFile_Task) soap.HasFault { - task := CreateTask(f, "moveDatastoreFile", func(t *Task) (types.AnyType, types.BaseMethodFault) { - src, fault := parseDatastorePath(d.SourceName) - if fault != nil { - return nil, fault - } - - srcDs, fault := f.findDatastore(d.SourceDatacenter, src.Datastore) - if fault != nil { - return nil, fault - } - - srcDir := srcDs.Info.GetDatastoreInfo().Url - srcFile := path.Join(srcDir, src.Path) - - dst, fault := parseDatastorePath(d.DestinationName) - if fault != nil { - return nil, fault - } - - dstDs, fault := f.findDatastore(d.DestinationDatacenter, dst.Datastore) - if fault != nil { - return nil, fault - } - - dstDir := dstDs.Info.GetDatastoreInfo().Url - dstFile := path.Join(dstDir, dst.Path) - - if !isTrue(d.Force) { - _, err := os.Stat(dstFile) - if err == nil { - return nil, &types.FileAlreadyExists{ - FileFault: types.FileFault{ - File: dstFile, - }, - } - } - } - - err := os.Rename(srcFile, dstFile) - if err != nil { - return nil, f.fault(srcFile, err, new(types.CannotAccessFile)) - } - - return nil, nil - }) - - task.Run() - - return &methods.MoveDatastoreFile_TaskBody{ - Res: &types.MoveDatastoreFile_TaskResponse{ - Returnval: task.Self, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/folder.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/folder.go deleted file mode 100644 index 5660d893..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/folder.go +++ /dev/null @@ -1,439 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "fmt" - "math/rand" - "path" - "sync" - - "github.com/google/uuid" - - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type Folder struct { - mo.Folder - - m sync.Mutex -} - -// update references when objects are added/removed from a Folder -func (f *Folder) update(o mo.Reference, u func(types.ManagedObjectReference, []types.ManagedObjectReference) []types.ManagedObjectReference) { - ref := o.Reference() - - if f.Parent == nil { - return // this is the root folder - } - - switch ref.Type { - case "Datacenter", "Folder": - return // nothing to update - } - - dc := Map.getEntityDatacenter(f) - - switch ref.Type { - case "Network", "DistributedVirtualSwitch", "DistributedVirtualPortgroup": - dc.Network = u(ref, dc.Network) - case "Datastore": - dc.Datastore = u(ref, dc.Datastore) - } -} - -func (f *Folder) putChild(o mo.Entity) { - Map.PutEntity(f, o) - - f.m.Lock() - defer f.m.Unlock() - - f.ChildEntity = AddReference(o.Reference(), f.ChildEntity) - - f.update(o, AddReference) -} - -func (f *Folder) removeChild(o mo.Reference) { - Map.Remove(o.Reference()) - - f.m.Lock() - defer f.m.Unlock() - - f.ChildEntity = RemoveReference(o.Reference(), f.ChildEntity) - - f.update(o, RemoveReference) -} - -func (f *Folder) hasChildType(kind string) bool { - for _, t := range f.ChildType { - if t == kind { - return true - } - } - return false -} - -func (f *Folder) typeNotSupported() *soap.Fault { - return Fault(fmt.Sprintf("%s supports types: %#v", f.Self, f.ChildType), &types.NotSupported{}) -} - -type addStandaloneHost struct { - *Folder - - req *types.AddStandaloneHost_Task -} - -func (add *addStandaloneHost) Run(task *Task) (types.AnyType, types.BaseMethodFault) { - host, err := CreateStandaloneHost(add.Folder, add.req.Spec) - if err != nil { - return nil, err - } - - if add.req.AddConnected { - host.Runtime.ConnectionState = types.HostSystemConnectionStateConnected - } - - return host.Reference(), nil -} - -func (f *Folder) AddStandaloneHostTask(a *types.AddStandaloneHost_Task) soap.HasFault { - r := &methods.AddStandaloneHost_TaskBody{} - - if f.hasChildType("ComputeResource") && f.hasChildType("Folder") { - task := NewTask(&addStandaloneHost{f, a}) - - r.Res = &types.AddStandaloneHost_TaskResponse{ - Returnval: task.Self, - } - - task.Run() - } else { - r.Fault_ = f.typeNotSupported() - } - - return r -} - -func (f *Folder) CreateFolder(c *types.CreateFolder) soap.HasFault { - r := &methods.CreateFolderBody{} - - if f.hasChildType("Folder") { - folder := &Folder{} - - folder.Name = c.Name - folder.ChildType = f.ChildType - - f.putChild(folder) - - r.Res = &types.CreateFolderResponse{ - Returnval: folder.Self, - } - } else { - r.Fault_ = f.typeNotSupported() - } - - return r -} - -// StoragePod aka "Datastore Cluster" -type StoragePod struct { - mo.StoragePod -} - -func (f *Folder) CreateStoragePod(c *types.CreateStoragePod) soap.HasFault { - r := &methods.CreateStoragePodBody{} - - if f.hasChildType("StoragePod") { - pod := &StoragePod{} - - pod.Name = c.Name - pod.ChildType = []string{"Datastore"} - - f.putChild(pod) - - r.Res = &types.CreateStoragePodResponse{ - Returnval: pod.Self, - } - } else { - r.Fault_ = f.typeNotSupported() - } - - return r -} - -func (p *StoragePod) MoveIntoFolderTask(c *types.MoveIntoFolder_Task) soap.HasFault { - return (&Folder{Folder: p.Folder}).MoveIntoFolderTask(c) -} - -func (f *Folder) CreateDatacenter(c *types.CreateDatacenter) soap.HasFault { - r := &methods.CreateDatacenterBody{} - - if f.hasChildType("Datacenter") && f.hasChildType("Folder") { - dc := &mo.Datacenter{} - - dc.Name = c.Name - - f.putChild(dc) - - createDatacenterFolders(dc, true) - - r.Res = &types.CreateDatacenterResponse{ - Returnval: dc.Self, - } - } else { - r.Fault_ = f.typeNotSupported() - } - - return r -} - -func (f *Folder) CreateClusterEx(c *types.CreateClusterEx) soap.HasFault { - r := &methods.CreateClusterExBody{} - - if f.hasChildType("ComputeResource") && f.hasChildType("Folder") { - cluster, err := CreateClusterComputeResource(f, c.Name, c.Spec) - if err != nil { - r.Fault_ = Fault("", err) - return r - } - - r.Res = &types.CreateClusterExResponse{ - Returnval: cluster.Self, - } - } else { - r.Fault_ = f.typeNotSupported() - } - - return r -} - -type createVM struct { - *Folder - - req *types.CreateVM_Task - - register bool -} - -func (c *createVM) Run(task *Task) (types.AnyType, types.BaseMethodFault) { - vm, err := NewVirtualMachine(&c.req.Config) - if err != nil { - return nil, err - } - - vm.ResourcePool = &c.req.Pool - - if c.req.Host == nil { - var hosts []types.ManagedObjectReference - - pool := Map.Get(c.req.Pool).(mo.Entity) - - switch cr := Map.getEntityComputeResource(pool).(type) { - case *mo.ComputeResource: - hosts = cr.Host - case *ClusterComputeResource: - hosts = cr.Host - } - - // Assuming for now that all hosts have access to the datastore - host := hosts[rand.Intn(len(hosts))] - vm.Runtime.Host = &host - } else { - vm.Runtime.Host = c.req.Host - } - - vm.Summary.Config.VmPathName = vm.Config.Files.VmPathName - vm.Summary.Runtime.Host = vm.Runtime.Host - vm.Parent = &c.Folder.Self - - err = vm.create(&c.req.Config, c.register) - if err != nil { - return nil, err - } - - c.Folder.putChild(vm) - - host := Map.Get(*vm.Runtime.Host).(*HostSystem) - host.Vm = append(host.Vm, vm.Self) - - for i := range vm.Datastore { - ds := Map.Get(vm.Datastore[i]).(*Datastore) - ds.Vm = append(ds.Vm, vm.Self) - } - - switch rp := Map.Get(*vm.ResourcePool).(type) { - case *ResourcePool: - rp.Vm = append(rp.Vm, vm.Self) - case *VirtualApp: - rp.Vm = append(rp.Vm, vm.Self) - } - - return vm.Reference(), nil -} - -func (f *Folder) CreateVMTask(c *types.CreateVM_Task) soap.HasFault { - r := &methods.CreateVM_TaskBody{} - - task := NewTask(&createVM{f, c, false}) - - r.Res = &types.CreateVM_TaskResponse{ - Returnval: task.Self, - } - - task.Run() - - return r -} - -type registerVM struct { - *Folder - - req *types.RegisterVM_Task -} - -func (c *registerVM) Run(task *Task) (types.AnyType, types.BaseMethodFault) { - if c.req.AsTemplate { - return nil, &types.NotSupported{} - } - - if c.req.Pool == nil { - return nil, &types.InvalidArgument{InvalidProperty: "pool"} - } - - if c.req.Path == "" { - return nil, &types.InvalidArgument{InvalidProperty: "path"} - } - - p := Map.Get(*c.req.Pool).(mo.Entity) - s := Map.SearchIndex() - r := s.FindByDatastorePath(&types.FindByDatastorePath{ - This: s.Reference(), - Path: c.req.Path, - Datacenter: Map.getEntityDatacenter(p).Reference(), - }) - - if ref := r.(*methods.FindByDatastorePathBody).Res.Returnval; ref != nil { - return nil, &types.AlreadyExists{Name: ref.Value} - } - - if c.req.Name == "" { - p, err := parseDatastorePath(c.req.Path) - if err != nil { - return nil, err - } - - c.req.Name = path.Dir(p.Path) - } - - create := NewTask(&createVM{ - Folder: c.Folder, - register: true, - req: &types.CreateVM_Task{ - This: c.Folder.Reference(), - Config: types.VirtualMachineConfigSpec{ - Name: c.req.Name, - Files: &types.VirtualMachineFileInfo{ - VmPathName: c.req.Path, - }, - }, - Pool: *c.req.Pool, - Host: c.req.Host, - }, - }) - - create.Run() - - if create.Info.Error != nil { - return nil, create.Info.Error.Fault - } - - return create.Info.Result, nil -} - -func (f *Folder) RegisterVMTask(c *types.RegisterVM_Task) soap.HasFault { - r := &methods.RegisterVM_TaskBody{} - - task := NewTask(®isterVM{f, c}) - - r.Res = &types.RegisterVM_TaskResponse{ - Returnval: task.Self, - } - - task.Run() - - return r -} - -func (f *Folder) MoveIntoFolderTask(c *types.MoveIntoFolder_Task) soap.HasFault { - task := CreateTask(f, "moveIntoFolder", func(t *Task) (types.AnyType, types.BaseMethodFault) { - for _, ref := range c.List { - obj := Map.Get(ref).(mo.Entity) - - parent, ok := Map.Get(*(obj.Entity()).Parent).(*Folder) - - if !ok || !f.hasChildType(ref.Type) { - return nil, &types.NotSupported{} - } - - parent.removeChild(ref) - f.putChild(obj) - } - - return nil, nil - }) - - task.Run() - - return &methods.MoveIntoFolder_TaskBody{ - Res: &types.MoveIntoFolder_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (f *Folder) CreateDVSTask(c *types.CreateDVS_Task) soap.HasFault { - task := CreateTask(f, "createDVS", func(t *Task) (types.AnyType, types.BaseMethodFault) { - dvs := &VmwareDistributedVirtualSwitch{} - dvs.Name = c.Spec.ConfigSpec.GetDVSConfigSpec().Name - dvs.Entity().Name = dvs.Name - - if Map.FindByName(dvs.Name, f.ChildEntity) != nil { - return nil, &types.InvalidArgument{InvalidProperty: "name"} - } - - dvs.Uuid = uuid.New().String() - - f.putChild(dvs) - - return dvs.Reference(), nil - }) - - task.Run() - - return &methods.CreateDVS_TaskBody{ - Res: &types.CreateDVS_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (f *Folder) RenameTask(r *types.Rename_Task) soap.HasFault { - return RenameTask(f, r) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go deleted file mode 100644 index 2ae9baeb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_browser.go +++ /dev/null @@ -1,199 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "io/ioutil" - "log" - "os" - "path" - - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type HostDatastoreBrowser struct { - mo.HostDatastoreBrowser -} - -type searchDatastore struct { - *HostDatastoreBrowser - - DatastorePath string - SearchSpec *types.HostDatastoreBrowserSearchSpec - - res []types.HostDatastoreBrowserSearchResults - - recurse bool -} - -func (s *searchDatastore) addFile(file os.FileInfo, res *types.HostDatastoreBrowserSearchResults) { - details := s.SearchSpec.Details - if details == nil { - details = new(types.FileQueryFlags) - } - - name := file.Name() - - info := types.FileInfo{ - Path: name, - } - - var finfo types.BaseFileInfo = &info - - if details.FileSize { - info.FileSize = file.Size() - } - - if details.Modification { - mtime := file.ModTime() - info.Modification = &mtime - } - - if isTrue(details.FileOwner) { - // Assume for now this process created all files in the datastore - user := os.Getenv("USER") - - info.Owner = user - } - - if file.IsDir() { - finfo = &types.FolderFileInfo{FileInfo: info} - } else if details.FileType { - switch path.Ext(name) { - case ".img": - finfo = &types.FloppyImageFileInfo{FileInfo: info} - case ".iso": - finfo = &types.IsoImageFileInfo{FileInfo: info} - case ".log": - finfo = &types.VmLogFileInfo{FileInfo: info} - case ".nvram": - finfo = &types.VmNvramFileInfo{FileInfo: info} - case ".vmdk": - // TODO: lookup device to set other fields - finfo = &types.VmDiskFileInfo{FileInfo: info} - case ".vmx": - finfo = &types.VmConfigFileInfo{FileInfo: info} - } - } - - res.File = append(res.File, finfo) -} - -func (s *searchDatastore) search(ds *types.ManagedObjectReference, folder string, dir string) error { - files, err := ioutil.ReadDir(dir) - if err != nil { - log.Printf("search %s: %s", dir, err) - return err - } - - res := types.HostDatastoreBrowserSearchResults{ - Datastore: ds, - FolderPath: folder, - } - - for _, file := range files { - name := file.Name() - - for _, m := range s.SearchSpec.MatchPattern { - if ok, _ := path.Match(m, name); ok { - s.addFile(file, &res) - break - } - } - - if s.recurse && file.IsDir() { - _ = s.search(ds, path.Join(folder, name), path.Join(dir, name)) - } - } - - s.res = append(s.res, res) - - return nil -} - -func (s *searchDatastore) Run(Task *Task) (types.AnyType, types.BaseMethodFault) { - p, fault := parseDatastorePath(s.DatastorePath) - if fault != nil { - return nil, fault - } - - ref := Map.FindByName(p.Datastore, s.Datastore) - if ref == nil { - return nil, &types.InvalidDatastore{Name: p.Datastore} - } - - ds := ref.(*Datastore) - - dir := path.Join(ds.Info.GetDatastoreInfo().Url, p.Path) - - err := s.search(&ds.Self, s.DatastorePath, dir) - if err != nil { - ff := types.FileFault{ - File: p.Path, - } - - if os.IsNotExist(err) { - return nil, &types.FileNotFound{FileFault: ff} - } - - return nil, &types.InvalidArgument{InvalidProperty: p.Path} - } - - if s.recurse { - return types.ArrayOfHostDatastoreBrowserSearchResults{ - HostDatastoreBrowserSearchResults: s.res, - }, nil - } - - return s.res[0], nil -} - -func (b *HostDatastoreBrowser) SearchDatastoreTask(s *types.SearchDatastore_Task) soap.HasFault { - task := NewTask(&searchDatastore{ - HostDatastoreBrowser: b, - DatastorePath: s.DatastorePath, - SearchSpec: s.SearchSpec, - }) - - task.Run() - - return &methods.SearchDatastore_TaskBody{ - Res: &types.SearchDatastore_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (b *HostDatastoreBrowser) SearchDatastoreSubFoldersTask(s *types.SearchDatastoreSubFolders_Task) soap.HasFault { - task := NewTask(&searchDatastore{ - HostDatastoreBrowser: b, - DatastorePath: s.DatastorePath, - SearchSpec: s.SearchSpec, - recurse: true, - }) - - task.Run() - - return &methods.SearchDatastoreSubFolders_TaskBody{ - Res: &types.SearchDatastoreSubFolders_TaskResponse{ - Returnval: task.Self, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go deleted file mode 100644 index 32da7d0e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_datastore_system.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "os" - "path" - - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type HostDatastoreSystem struct { - mo.HostDatastoreSystem - - Host *mo.HostSystem -} - -func (dss *HostDatastoreSystem) add(ds *Datastore) *soap.Fault { - info := ds.Info.GetDatastoreInfo() - - info.Name = ds.Name - - if e := Map.FindByName(ds.Name, dss.Datastore); e != nil { - return Fault(e.Reference().Value, &types.DuplicateName{ - Name: ds.Name, - Object: e.Reference(), - }) - } - - fi, err := os.Stat(info.Url) - if err == nil && !fi.IsDir() { - err = os.ErrInvalid - } - - if err != nil { - switch { - case os.IsNotExist(err): - return Fault(err.Error(), &types.NotFound{}) - default: - return Fault(err.Error(), &types.HostConfigFault{}) - } - } - - folder := Map.getEntityFolder(dss.Host, "datastore") - ds.Self.Type = TypeName(ds) - // Datastore is the only type where create methods do not include the parent (Folder in this case), - // but we need the moref to be unique per DC/datastoreFolder, but not per-HostSystem. - ds.Self.Value += "@" + folder.Self.Value - // TODO: name should be made unique in the case of Local ds type - - ds.Summary.Datastore = &ds.Self - ds.Summary.Name = ds.Name - ds.Summary.Url = info.Url - - dss.Datastore = append(dss.Datastore, ds.Self) - dss.Host.Datastore = dss.Datastore - parent := hostParent(dss.Host) - parent.Datastore = AddReference(ds.Self, parent.Datastore) - - browser := &HostDatastoreBrowser{} - browser.Datastore = dss.Datastore - ds.Browser = Map.Put(browser).Reference() - - folder.putChild(ds) - - return nil -} - -func (dss *HostDatastoreSystem) CreateLocalDatastore(c *types.CreateLocalDatastore) soap.HasFault { - r := &methods.CreateLocalDatastoreBody{} - - ds := &Datastore{} - ds.Name = c.Name - ds.Self.Value = c.Path - - ds.Info = &types.LocalDatastoreInfo{ - DatastoreInfo: types.DatastoreInfo{ - Name: c.Name, - Url: c.Path, - }, - Path: c.Path, - } - - ds.Summary.Type = "local" - - if err := dss.add(ds); err != nil { - r.Fault_ = err - return r - } - - ds.Host = append(ds.Host, types.DatastoreHostMount{ - Key: dss.Host.Reference(), - MountInfo: types.HostMountInfo{ - AccessMode: string(types.HostMountModeReadWrite), - Mounted: types.NewBool(true), - Accessible: types.NewBool(true), - }, - }) - - _ = ds.RefreshDatastore(&types.RefreshDatastore{This: ds.Self}) - - r.Res = &types.CreateLocalDatastoreResponse{ - Returnval: ds.Self, - } - - return r -} - -func (dss *HostDatastoreSystem) CreateNasDatastore(c *types.CreateNasDatastore) soap.HasFault { - r := &methods.CreateNasDatastoreBody{} - - ds := &Datastore{} - ds.Name = path.Base(c.Spec.LocalPath) - ds.Self.Value = c.Spec.RemoteHost + ":" + c.Spec.RemotePath - - ds.Info = &types.NasDatastoreInfo{ - DatastoreInfo: types.DatastoreInfo{ - Url: c.Spec.LocalPath, - }, - Nas: &types.HostNasVolume{ - HostFileSystemVolume: types.HostFileSystemVolume{ - Name: c.Spec.LocalPath, - Type: c.Spec.Type, - }, - RemoteHost: c.Spec.RemoteHost, - RemotePath: c.Spec.RemotePath, - }, - } - - ds.Summary.Type = c.Spec.Type - - if err := dss.add(ds); err != nil { - r.Fault_ = err - return r - } - - _ = ds.RefreshDatastore(&types.RefreshDatastore{This: ds.Self}) - - r.Res = &types.CreateNasDatastoreResponse{ - Returnval: ds.Self, - } - - return r -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go deleted file mode 100644 index fd596386..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_firewall_system.go +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type HostFirewallSystem struct { - mo.HostFirewallSystem -} - -func NewHostFirewallSystem(_ *mo.HostSystem) *HostFirewallSystem { - info := esx.HostFirewallInfo - - return &HostFirewallSystem{ - HostFirewallSystem: mo.HostFirewallSystem{ - FirewallInfo: &info, - }, - } -} - -func DisableRuleset(info *types.HostFirewallInfo, id string) bool { - for i := range info.Ruleset { - if info.Ruleset[i].Key == id { - info.Ruleset[i].Enabled = false - return true - } - } - - return false -} - -func (s *HostFirewallSystem) DisableRuleset(req *types.DisableRuleset) soap.HasFault { - body := &methods.DisableRulesetBody{} - - if DisableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) { - body.Res = new(types.DisableRulesetResponse) - return body - } - - body.Fault_ = Fault("", &types.NotFound{}) - - return body -} - -func EnableRuleset(info *types.HostFirewallInfo, id string) bool { - for i := range info.Ruleset { - if info.Ruleset[i].Key == id { - info.Ruleset[i].Enabled = true - return true - } - } - - return false -} - -func (s *HostFirewallSystem) EnableRuleset(req *types.EnableRuleset) soap.HasFault { - body := &methods.EnableRulesetBody{} - - if EnableRuleset(s.HostFirewallSystem.FirewallInfo, req.Id) { - body.Res = new(types.EnableRulesetResponse) - return body - } - - body.Fault_ = Fault("", &types.NotFound{}) - - return body -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_network_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_network_system.go deleted file mode 100644 index d0502c9a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_network_system.go +++ /dev/null @@ -1,161 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type HostNetworkSystem struct { - mo.HostNetworkSystem - - Host *mo.HostSystem -} - -func NewHostNetworkSystem(host *mo.HostSystem) *HostNetworkSystem { - return &HostNetworkSystem{ - Host: host, - HostNetworkSystem: mo.HostNetworkSystem{ - NetworkInfo: &types.HostNetworkInfo{ - Vswitch: []types.HostVirtualSwitch{ - { - Name: "vSwitch0", - Portgroup: []string{"VM Network"}, - }, - }, - }, - }, - } -} - -func (s *HostNetworkSystem) folder() *Folder { - f := Map.getEntityDatacenter(s.Host).NetworkFolder - return Map.Get(f).(*Folder) -} - -func (s *HostNetworkSystem) AddVirtualSwitch(c *types.AddVirtualSwitch) soap.HasFault { - r := &methods.AddVirtualSwitchBody{} - - for _, vswitch := range s.NetworkInfo.Vswitch { - if vswitch.Name == c.VswitchName { - r.Fault_ = Fault("", &types.AlreadyExists{Name: c.VswitchName}) - return r - } - } - - s.NetworkInfo.Vswitch = append(s.NetworkInfo.Vswitch, types.HostVirtualSwitch{ - Name: c.VswitchName, - }) - - r.Res = &types.AddVirtualSwitchResponse{} - - return r -} - -func (s *HostNetworkSystem) RemoveVirtualSwitch(c *types.RemoveVirtualSwitch) soap.HasFault { - r := &methods.RemoveVirtualSwitchBody{} - - vs := s.NetworkInfo.Vswitch - - for i, v := range vs { - if v.Name == c.VswitchName { - s.NetworkInfo.Vswitch = append(vs[:i], vs[i+1:]...) - r.Res = &types.RemoveVirtualSwitchResponse{} - return r - } - } - - r.Fault_ = Fault("", &types.NotFound{}) - - return r -} - -func (s *HostNetworkSystem) AddPortGroup(c *types.AddPortGroup) soap.HasFault { - var vswitch *types.HostVirtualSwitch - - r := &methods.AddPortGroupBody{} - - if c.Portgrp.Name == "" { - r.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "name"}) - return r - } - - for i := range s.NetworkInfo.Vswitch { - if s.NetworkInfo.Vswitch[i].Name == c.Portgrp.VswitchName { - vswitch = &s.NetworkInfo.Vswitch[i] - break - } - } - - if vswitch == nil { - r.Fault_ = Fault("", &types.NotFound{}) - return r - } - - network := &mo.Network{} - network.Name = c.Portgrp.Name - network.Entity().Name = network.Name - - folder := s.folder() - - if obj := Map.FindByName(c.Portgrp.Name, folder.ChildEntity); obj != nil { - r.Fault_ = Fault("", &types.DuplicateName{ - Name: c.Portgrp.Name, - Object: obj.Reference(), - }) - - return r - } - - folder.putChild(network) - - vswitch.Portgroup = append(vswitch.Portgroup, c.Portgrp.Name) - r.Res = &types.AddPortGroupResponse{} - - return r -} - -func (s *HostNetworkSystem) RemovePortGroup(c *types.RemovePortGroup) soap.HasFault { - var vswitch *types.HostVirtualSwitch - - r := &methods.RemovePortGroupBody{} - - for i, v := range s.NetworkInfo.Vswitch { - for j, pg := range v.Portgroup { - if pg == c.PgName { - vswitch = &s.NetworkInfo.Vswitch[i] - vswitch.Portgroup = append(vswitch.Portgroup[:j], vswitch.Portgroup[j+1:]...) - } - } - } - - if vswitch == nil { - r.Fault_ = Fault("", &types.NotFound{}) - return r - } - - folder := s.folder() - e := Map.FindByName(c.PgName, folder.ChildEntity) - folder.removeChild(e.Reference()) - - r.Res = &types.RemovePortGroupResponse{} - - return r -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_system.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_system.go deleted file mode 100644 index 779c578c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/host_system.go +++ /dev/null @@ -1,132 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "time" - - "github.com/google/uuid" - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type HostSystem struct { - mo.HostSystem -} - -func NewHostSystem(host mo.HostSystem) *HostSystem { - now := time.Now() - - host.Name = host.Summary.Config.Name - host.Summary.Runtime = &host.Runtime - host.Summary.Runtime.BootTime = &now - - hw := *host.Summary.Hardware // shallow copy - hw.Uuid = uuid.New().String() - host.Summary.Hardware = &hw - - info := *esx.HostHardwareInfo - info.SystemInfo.Uuid = hw.Uuid - host.Hardware = &info - - hs := &HostSystem{ - HostSystem: host, - } - - config := []struct { - ref **types.ManagedObjectReference - obj mo.Reference - }{ - {&hs.ConfigManager.DatastoreSystem, &HostDatastoreSystem{Host: &hs.HostSystem}}, - {&hs.ConfigManager.NetworkSystem, NewHostNetworkSystem(&hs.HostSystem)}, - {&hs.ConfigManager.AdvancedOption, NewOptionManager(nil, esx.Setting)}, - {&hs.ConfigManager.FirewallSystem, NewHostFirewallSystem(&hs.HostSystem)}, - } - - for _, c := range config { - ref := Map.Put(c.obj).Reference() - - *c.ref = &ref - } - - return hs -} - -func hostParent(host *mo.HostSystem) *mo.ComputeResource { - switch parent := Map.Get(*host.Parent).(type) { - case *mo.ComputeResource: - return parent - case *ClusterComputeResource: - return &parent.ComputeResource - default: - return nil - } -} - -// CreateDefaultESX creates a standalone ESX -// Adds objects of type: Datacenter, Network, ComputeResource, ResourcePool and HostSystem -func CreateDefaultESX(f *Folder) { - dc := &esx.Datacenter - f.putChild(dc) - createDatacenterFolders(dc, false) - - host := NewHostSystem(esx.HostSystem) - - cr := &mo.ComputeResource{} - cr.Self = *host.Parent - cr.Name = host.Name - cr.Host = append(cr.Host, host.Reference()) - Map.PutEntity(cr, host) - - pool := NewResourcePool() - cr.ResourcePool = &pool.Self - Map.PutEntity(cr, pool) - pool.Owner = cr.Self - - Map.Get(dc.HostFolder).(*Folder).putChild(cr) -} - -// CreateStandaloneHost uses esx.HostSystem as a template, applying the given spec -// and creating the ComputeResource parent and ResourcePool sibling. -func CreateStandaloneHost(f *Folder, spec types.HostConnectSpec) (*HostSystem, types.BaseMethodFault) { - if spec.HostName == "" { - return nil, &types.NoHost{} - } - - pool := NewResourcePool() - host := NewHostSystem(esx.HostSystem) - - host.Summary.Config.Name = spec.HostName - host.Name = host.Summary.Config.Name - host.Runtime.ConnectionState = types.HostSystemConnectionStateDisconnected - - cr := &mo.ComputeResource{} - - Map.PutEntity(cr, Map.NewEntity(host)) - - Map.PutEntity(cr, Map.NewEntity(pool)) - - cr.Name = host.Name - cr.Host = append(cr.Host, host.Reference()) - cr.ResourcePool = &pool.Self - - f.putChild(cr) - pool.Owner = cr.Self - - return host, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/license_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/license_manager.go deleted file mode 100644 index adabfc54..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/license_manager.go +++ /dev/null @@ -1,111 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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. -*/ -// Copyright 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -// EvalLicense is the default license -var EvalLicense = types.LicenseManagerLicenseInfo{ - LicenseKey: "00000-00000-00000-00000-00000", - EditionKey: "eval", - Name: "Evaluation Mode", - Properties: []types.KeyAnyValue{ - { - Key: "feature", - Value: types.KeyValue{ - Key: "serialuri:2", - Value: "Remote virtual Serial Port Concentrator", - }, - }, - { - Key: "feature", - Value: types.KeyValue{ - Key: "dvs", - Value: "vSphere Distributed Switch", - }, - }, - }, -} - -type LicenseManager struct { - mo.LicenseManager -} - -func NewLicenseManager(ref types.ManagedObjectReference) object.Reference { - m := &LicenseManager{} - m.Self = ref - m.Licenses = []types.LicenseManagerLicenseInfo{EvalLicense} - - if Map.IsVPX() { - am := Map.Put(&LicenseAssignmentManager{}).Reference() - m.LicenseAssignmentManager = &am - } - - return m -} - -type LicenseAssignmentManager struct { - mo.LicenseAssignmentManager -} - -func (m *LicenseAssignmentManager) QueryAssignedLicenses(req *types.QueryAssignedLicenses) soap.HasFault { - body := &methods.QueryAssignedLicensesBody{ - Res: &types.QueryAssignedLicensesResponse{}, - } - - // EntityId can be a HostSystem or the vCenter InstanceUuid - if req.EntityId != "" { - if req.EntityId != Map.content().About.InstanceUuid { - id := types.ManagedObjectReference{ - Type: "HostSystem", - Value: req.EntityId, - } - - if Map.Get(id) == nil { - return body - } - } - } - - body.Res.Returnval = []types.LicenseAssignmentManagerLicenseAssignment{ - { - EntityId: req.EntityId, - AssignedLicense: EvalLicense, - }, - } - - return body -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/model.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/model.go deleted file mode 100644 index acb6458f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/model.go +++ /dev/null @@ -1,469 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "context" - "fmt" - "io/ioutil" - "os" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/simulator/vpx" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -// Model is used to populate a Model with an initial set of managed entities. -// This is a simple helper for tests running against a simulator, to populate an inventory -// with commonly used models. -type Model struct { - Service *Service - - ServiceContent types.ServiceContent - RootFolder mo.Folder - - // Datacenter specifies the number of Datacenter entities to create - Datacenter int - - // Portgroup specifies the number of DistributedVirtualPortgroup entities to create per Datacenter - Portgroup int - - // Host specifies the number of standalone HostSystems entities to create per Datacenter - Host int - - // Cluster specifies the number of ClusterComputeResource entities to create per Datacenter - Cluster int - - // ClusterHost specifies the number of HostSystems entities to create within a Cluster - ClusterHost int - - // Pool specifies the number of ResourcePool entities to create per Cluster - Pool int - - // Datastore specifies the number of Datastore entities to create - // Each Datastore will have temporary local file storage and will be mounted - // on every HostSystem created by the ModelConfig - Datastore int - - // Machine specifies the number of VirtualMachine entities to create per ResourcePool - Machine int - - // Folder specifies the number of Datacenter to place within a Folder. - // This includes a folder for the Datacenter itself and its host, vm, network and datastore folders. - // All resources for the Datacenter are placed within these folders, rather than the top-level folders. - Folder int - - // App specifies the number of VirtualApp to create per Cluster - App int - - // Pod specifies the number of StoragePod to create per Cluster - Pod int - - // total number of inventory objects, set by Count() - total int - - dirs []string -} - -// ESX is the default Model for a standalone ESX instance -func ESX() *Model { - return &Model{ - ServiceContent: esx.ServiceContent, - RootFolder: esx.RootFolder, - Datastore: 1, - Machine: 2, - } -} - -// VPX is the default Model for a vCenter instance -func VPX() *Model { - return &Model{ - ServiceContent: vpx.ServiceContent, - RootFolder: vpx.RootFolder, - Datacenter: 1, - Portgroup: 1, - Host: 1, - Cluster: 1, - ClusterHost: 3, - Datastore: 1, - Machine: 2, - } -} - -// Count returns a Model with total number of each existing type -func (m *Model) Count() Model { - count := Model{} - - for ref, obj := range Map.objects { - if _, ok := obj.(mo.Entity); !ok { - continue - } - - count.total++ - - switch ref.Type { - case "Datacenter": - count.Datacenter++ - case "DistributedVirtualPortgroup": - count.Portgroup++ - case "ClusterComputeResource": - count.Cluster++ - case "Datastore": - count.Datastore++ - case "HostSystem": - count.Host++ - case "VirtualMachine": - count.Machine++ - case "ResourcePool": - count.Pool++ - case "VirtualApp": - count.App++ - case "Folder": - count.Folder++ - case "StoragePod": - count.Pod++ - } - } - - return count -} - -func (*Model) fmtName(prefix string, num int) string { - return fmt.Sprintf("%s%d", prefix, num) -} - -// Create populates the Model with the given ModelConfig -func (m *Model) Create() error { - m.Service = New(NewServiceInstance(m.ServiceContent, m.RootFolder)) - - ctx := context.Background() - client := m.Service.client - root := object.NewRootFolder(client) - - // After all hosts are created, this var is used to mount the host datastores. - var hosts []*object.HostSystem - // We need to defer VM creation until after the datastores are created. - var vms []func() error - // 1 DVS per DC, added to all hosts - var dvs *object.DistributedVirtualSwitch - // 1 NIC per VM, backed by a DVPG if Model.Portgroup > 0 - vmnet := esx.EthernetCard.Backing - - // addHost adds a cluster host or a stanalone host. - addHost := func(name string, f func(types.HostConnectSpec) (*object.Task, error)) (*object.HostSystem, error) { - spec := types.HostConnectSpec{ - HostName: name, - } - - task, err := f(spec) - if err != nil { - return nil, err - } - - info, err := task.WaitForResult(context.Background(), nil) - if err != nil { - return nil, err - } - - host := object.NewHostSystem(client, info.Result.(types.ManagedObjectReference)) - hosts = append(hosts, host) - - if dvs != nil { - config := &types.DVSConfigSpec{ - Host: []types.DistributedVirtualSwitchHostMemberConfigSpec{{ - Operation: string(types.ConfigSpecOperationAdd), - Host: host.Reference(), - }}, - } - - _, _ = dvs.Reconfigure(ctx, config) - } - - return host, nil - } - - // addMachine returns a func to create a VM. - addMachine := func(prefix string, host *object.HostSystem, pool *object.ResourcePool, folders *object.DatacenterFolders) { - nic := esx.EthernetCard - nic.Backing = vmnet - - f := func() error { - for i := 0; i < m.Machine; i++ { - name := m.fmtName(prefix+"_VM", i) - - config := types.VirtualMachineConfigSpec{ - Name: name, - GuestId: string(types.VirtualMachineGuestOsIdentifierOtherGuest), - Files: &types.VirtualMachineFileInfo{ - VmPathName: "[LocalDS_0]", - }, - } - - if pool == nil { - pool, _ = host.ResourcePool(ctx) - } - - var devices object.VirtualDeviceList - - scsi, _ := devices.CreateSCSIController("pvscsi") - ide, _ := devices.CreateIDEController() - cdrom, _ := devices.CreateCdrom(ide.(*types.VirtualIDEController)) - - devices = append(devices, scsi, cdrom, &nic) - - config.DeviceChange, _ = devices.ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) - - task, err := folders.VmFolder.CreateVM(ctx, config, pool, host) - if err != nil { - return err - } - - err = task.Wait(ctx) - if err != nil { - return err - } - } - - return nil - } - - vms = append(vms, f) - } - - nfolder := 0 - - for ndc := 0; ndc < m.Datacenter; ndc++ { - dcName := m.fmtName("DC", ndc) - folder := root - fName := m.fmtName("F", nfolder) - - // If Datacenter > Folder, don't create folders for the first N DCs. - if nfolder < m.Folder && ndc >= (m.Datacenter-m.Folder) { - f, err := folder.CreateFolder(ctx, fName) - if err != nil { - return err - } - folder = f - } - - dc, err := folder.CreateDatacenter(ctx, dcName) - if err != nil { - return err - } - - folders, err := dc.Folders(ctx) - if err != nil { - return err - } - - if m.Pod > 0 { - for pod := 0; pod < m.Pod; pod++ { - _, _ = folders.DatastoreFolder.CreateStoragePod(ctx, m.fmtName(dcName+"_POD", pod)) - } - } - - if folder != root { - // Create sub-folders and use them to create any resources that follow - subs := []**object.Folder{&folders.DatastoreFolder, &folders.HostFolder, &folders.NetworkFolder, &folders.VmFolder} - - for _, sub := range subs { - f, err := (*sub).CreateFolder(ctx, fName) - if err != nil { - return err - } - - *sub = f - } - - nfolder++ - } - - if m.Portgroup > 0 { - var spec types.DVSCreateSpec - spec.ConfigSpec = &types.VMwareDVSConfigSpec{} - spec.ConfigSpec.GetDVSConfigSpec().Name = m.fmtName("DVS", 0) - - task, err := folders.NetworkFolder.CreateDVS(ctx, spec) - if err != nil { - return err - } - - info, err := task.WaitForResult(ctx, nil) - if err != nil { - return err - } - - dvs = object.NewDistributedVirtualSwitch(client, info.Result.(types.ManagedObjectReference)) - - for npg := 0; npg < m.Portgroup; npg++ { - name := m.fmtName(dcName+"_DVPG", npg) - - task, err = dvs.AddPortgroup(ctx, []types.DVPortgroupConfigSpec{{Name: name}}) - if err != nil { - return err - } - - err = task.Wait(ctx) - if err != nil { - return err - } - - // Use the 1st DVPG for the VMs eth0 backing - if npg == 0 { - // AddPortgroup_Task does not return the moid, so we look it up by name - net := Map.Get(folders.NetworkFolder.Reference()).(*Folder) - pg := Map.FindByName(name, net.ChildEntity) - - vmnet, _ = object.NewDistributedVirtualPortgroup(client, pg.Reference()).EthernetCardBackingInfo(ctx) - } - } - } - - for nhost := 0; nhost < m.Host; nhost++ { - name := m.fmtName(dcName+"_H", nhost) - - host, err := addHost(name, func(spec types.HostConnectSpec) (*object.Task, error) { - return folders.HostFolder.AddStandaloneHost(ctx, spec, true, nil, nil) - }) - if err != nil { - return err - } - - addMachine(name, host, nil, folders) - } - - for ncluster := 0; ncluster < m.Cluster; ncluster++ { - clusterName := m.fmtName(dcName+"_C", ncluster) - - cluster, err := folders.HostFolder.CreateCluster(ctx, clusterName, types.ClusterConfigSpecEx{}) - if err != nil { - return err - } - - for nhost := 0; nhost < m.ClusterHost; nhost++ { - name := m.fmtName(clusterName+"_H", nhost) - - _, err = addHost(name, func(spec types.HostConnectSpec) (*object.Task, error) { - return cluster.AddHost(ctx, spec, true, nil, nil) - }) - if err != nil { - return err - } - } - - pool, err := cluster.ResourcePool(ctx) - if err != nil { - return err - } - - prefix := clusterName + "_RP" - - addMachine(prefix+"0", nil, pool, folders) - - for npool := 1; npool <= m.Pool; npool++ { - spec := NewResourceConfigSpec() - - _, err = pool.Create(ctx, m.fmtName(prefix, npool), spec) - if err != nil { - return err - } - } - - prefix = clusterName + "_APP" - - for napp := 0; napp < m.App; napp++ { - rspec := NewResourceConfigSpec() - vspec := NewVAppConfigSpec() - name := m.fmtName(prefix, napp) - - vapp, err := pool.CreateVApp(ctx, name, rspec, vspec, nil) - if err != nil { - return err - } - - addMachine(name, nil, vapp.ResourcePool, folders) - } - } - } - - if m.ServiceContent.RootFolder == esx.RootFolder.Reference() { - // ESX model - host := object.NewHostSystem(client, esx.HostSystem.Reference()) - hosts = append(hosts, host) - - dc := object.NewDatacenter(client, esx.Datacenter.Reference()) - folders, err := dc.Folders(ctx) - if err != nil { - return err - } - - addMachine(host.Reference().Value, host, nil, folders) - } - - for i := 0; i < m.Datastore; i++ { - err := m.createLocalDatastore(m.fmtName("LocalDS_", i), hosts) - if err != nil { - return err - } - } - - for _, createVM := range vms { - err := createVM() - if err != nil { - return err - } - } - - return nil -} - -var tempDir = func() (string, error) { - return ioutil.TempDir("", "govcsim-") -} - -func (m *Model) createLocalDatastore(name string, hosts []*object.HostSystem) error { - ctx := context.Background() - dir, err := tempDir() - if err != nil { - return err - } - - m.dirs = append(m.dirs, dir) - - for _, host := range hosts { - dss, err := host.ConfigManager().DatastoreSystem(ctx) - if err != nil { - return err - } - - _, err = dss.CreateLocalDatastore(ctx, name, dir) - if err != nil { - return err - } - } - - return nil -} - -// Remove cleans up items created by the Model, such as local datastore directories -func (m *Model) Remove() { - for _, dir := range m.dirs { - _ = os.RemoveAll(dir) - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/option_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/option_manager.go deleted file mode 100644 index 4615882c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/option_manager.go +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "strings" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type OptionManager struct { - mo.OptionManager -} - -func NewOptionManager(ref *types.ManagedObjectReference, setting []types.BaseOptionValue) object.Reference { - s := &OptionManager{} - if ref != nil { - s.Self = *ref - } - s.Setting = setting - return s -} - -func (m *OptionManager) QueryOptions(req *types.QueryOptions) soap.HasFault { - body := &methods.QueryOptionsBody{} - res := &types.QueryOptionsResponse{} - - for _, opt := range m.Setting { - if strings.HasPrefix(opt.GetOptionValue().Key, req.Name) { - res.Returnval = append(res.Returnval, opt) - } - } - - if len(res.Returnval) == 0 { - body.Fault_ = Fault("", &types.InvalidName{Name: req.Name}) - } else { - body.Res = res - } - - return body -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_collector.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_collector.go deleted file mode 100644 index f2b8d0a7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_collector.go +++ /dev/null @@ -1,539 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "errors" - "log" - "path" - "reflect" - "strings" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type PropertyCollector struct { - mo.PropertyCollector -} - -func NewPropertyCollector(ref types.ManagedObjectReference) object.Reference { - s := &PropertyCollector{} - s.Self = ref - return s -} - -var errMissingField = errors.New("missing field") -var errEmptyField = errors.New("empty field") - -func getObject(ref types.ManagedObjectReference) (reflect.Value, bool) { - obj := Map.Get(ref) - if obj == nil { - return reflect.Value{}, false - } - - rval := reflect.ValueOf(obj).Elem() - rtype := rval.Type() - - // PropertyCollector is for Managed Object types only (package mo). - // If the registry object is not in the mo package, assume it is a wrapper - // type where the first field is an embedded mo type. - // We need to dig out the mo type for PropSet.All to work properly and - // for the case where the type has a field of the same name, for example: - // mo.ResourcePool.ResourcePool - for { - if path.Base(rtype.PkgPath()) != "mo" { - if rtype.Kind() != reflect.Struct || rtype.NumField() == 0 { - log.Printf("%#v does not have an embedded mo type", ref) - return reflect.Value{}, false - } - rval = rval.Field(0) - rtype = rval.Type() - } else { - break - } - } - - return rval, true -} - -func fieldValueInterface(f reflect.StructField, rval reflect.Value) interface{} { - if rval.Kind() == reflect.Ptr { - rval = rval.Elem() - } - - pval := rval.Interface() - - if rval.Kind() == reflect.Slice { - // Convert slice to types.ArrayOf* - switch v := pval.(type) { - case []string: - pval = &types.ArrayOfString{ - String: v, - } - case []int32: - pval = &types.ArrayOfInt{ - Int: v, - } - default: - kind := f.Type.Elem().Name() - // Remove govmomi interface prefix name - if strings.HasPrefix(kind, "Base") { - kind = kind[4:] - } - akind, _ := typeFunc("ArrayOf" + kind) - a := reflect.New(akind) - a.Elem().FieldByName(kind).Set(rval) - pval = a.Interface() - } - } - - return pval -} - -func fieldValue(rval reflect.Value, p string) (interface{}, error) { - var value interface{} - - fields := strings.Split(p, ".") - - for i, name := range fields { - kind := rval.Type().Kind() - if kind == reflect.Ptr || kind == reflect.Interface { - if rval.IsNil() { - continue - } - rval = rval.Elem() - } - - x := ucFirst(name) - val := rval.FieldByName(x) - if !val.IsValid() { - return nil, errMissingField - } - - if isEmpty(val) { - return nil, errEmptyField - } - - if i == len(fields)-1 { - ftype, _ := rval.Type().FieldByName(x) - value = fieldValueInterface(ftype, val) - break - } - - rval = val - } - - return value, nil -} - -func fieldRefs(f interface{}) []types.ManagedObjectReference { - switch fv := f.(type) { - case types.ManagedObjectReference: - return []types.ManagedObjectReference{fv} - case *types.ArrayOfManagedObjectReference: - return fv.ManagedObjectReference - case nil: - // empty field - } - - return nil -} - -func isEmpty(rval reflect.Value) bool { - switch rval.Kind() { - case reflect.Ptr: - return rval.IsNil() - case reflect.String, reflect.Slice: - return rval.Len() == 0 - } - - return false -} - -func isTrue(v *bool) bool { - return v != nil && *v -} - -func isFalse(v *bool) bool { - return v == nil || *v == false -} - -func lcFirst(s string) string { - return strings.ToLower(s[:1]) + s[1:] -} - -func ucFirst(s string) string { - return strings.ToUpper(s[:1]) + s[1:] -} - -type retrieveResult struct { - *types.RetrieveResult - req *types.RetrievePropertiesEx - collected map[types.ManagedObjectReference]bool - specs map[string]*types.TraversalSpec -} - -func (rr *retrieveResult) collectAll(rval reflect.Value, rtype reflect.Type, content *types.ObjectContent) { - for i := 0; i < rval.NumField(); i++ { - val := rval.Field(i) - - f := rtype.Field(i) - - if isEmpty(val) || f.Name == "Self" { - continue - } - - if f.Anonymous { - // recurse into embedded field - rr.collectAll(val, f.Type, content) - continue - } - - content.PropSet = append(content.PropSet, types.DynamicProperty{ - Name: lcFirst(f.Name), - Val: fieldValueInterface(f, val), - }) - } -} - -func (rr *retrieveResult) collectFields(rval reflect.Value, fields []string, content *types.ObjectContent) { - seen := make(map[string]bool) - - for i := range content.PropSet { - seen[content.PropSet[i].Name] = true // mark any already collected via embedded field - } - - for _, name := range fields { - if seen[name] { - // rvc 'ls' includes the "name" property twice, then fails with no error message or stack trace - // in RbVmomi::VIM::ObjectContent.to_hash_uncached when it sees the 2nd "name" property. - continue - } - seen[name] = true - - val, err := fieldValue(rval, name) - if err == nil { - prop := types.DynamicProperty{ - Name: name, - Val: val, - } - - content.PropSet = append(content.PropSet, prop) - continue - } - - switch err { - case errEmptyField: - // ok - case errMissingField: - content.MissingSet = append(content.MissingSet, types.MissingProperty{ - Path: name, - Fault: types.LocalizedMethodFault{Fault: &types.InvalidProperty{ - Name: name, - }}, - }) - } - } -} - -func (rr *retrieveResult) collect(ref types.ManagedObjectReference) { - if rr.collected[ref] { - return - } - - content := types.ObjectContent{ - Obj: ref, - } - - rval, ok := getObject(ref) - if !ok { - // Possible if a test uses Map.Remove instead of Destroy_Task - log.Printf("object %s no longer exists", ref) - return - } - - rtype := rval.Type() - - for _, spec := range rr.req.SpecSet { - for _, p := range spec.PropSet { - if p.Type != ref.Type { - // e.g. ManagedEntity, ComputeResource - field, ok := rtype.FieldByName(p.Type) - - if !(ok && field.Anonymous) { - continue - } - } - - if isTrue(p.All) { - rr.collectAll(rval, rtype, &content) - continue - } - - rr.collectFields(rval, p.PathSet, &content) - } - } - - if len(content.PropSet) != 0 || len(content.MissingSet) != 0 { - rr.Objects = append(rr.Objects, content) - } - - rr.collected[ref] = true -} - -func (rr *retrieveResult) selectSet(obj reflect.Value, s []types.BaseSelectionSpec, refs *[]types.ManagedObjectReference) types.BaseMethodFault { - for _, ss := range s { - ts, ok := ss.(*types.TraversalSpec) - - if ok { - if ts.Name != "" { - rr.specs[ts.Name] = ts - } - } - } - - for _, ss := range s { - ts, ok := ss.(*types.TraversalSpec) - if !ok { - ts = rr.specs[ss.GetSelectionSpec().Name] - if ts == nil { - return &types.InvalidArgument{InvalidProperty: "undefined TraversalSpec name"} - } - } - - f, _ := fieldValue(obj, ts.Path) - - for _, ref := range fieldRefs(f) { - if isFalse(ts.Skip) { - *refs = append(*refs, ref) - } - - rval, ok := getObject(ref) - if ok { - if err := rr.selectSet(rval, ts.SelectSet, refs); err != nil { - return err - } - } - } - } - - return nil -} - -func (pc *PropertyCollector) collect(r *types.RetrievePropertiesEx) (*types.RetrieveResult, types.BaseMethodFault) { - var refs []types.ManagedObjectReference - - rr := &retrieveResult{ - RetrieveResult: &types.RetrieveResult{}, - req: r, - collected: make(map[types.ManagedObjectReference]bool), - specs: make(map[string]*types.TraversalSpec), - } - - // Select object references - for _, spec := range r.SpecSet { - for _, o := range spec.ObjectSet { - rval, ok := getObject(o.Obj) - - if !ok { - if isFalse(spec.ReportMissingObjectsInResults) { - return nil, &types.ManagedObjectNotFound{Obj: o.Obj} - } - continue - } - - if o.SelectSet == nil || isFalse(o.Skip) { - refs = append(refs, o.Obj) - } - - if err := rr.selectSet(rval, o.SelectSet, &refs); err != nil { - return nil, err - } - } - } - - for _, ref := range refs { - rr.collect(ref) - } - - return rr.RetrieveResult, nil -} - -func (pc *PropertyCollector) CreateFilter(c *types.CreateFilter) soap.HasFault { - body := &methods.CreateFilterBody{} - - filter := &PropertyFilter{pc: pc} - filter.PartialUpdates = c.PartialUpdates - filter.Spec = c.Spec - - pc.Filter = append(pc.Filter, Map.Put(filter).Reference()) - - body.Res = &types.CreateFilterResponse{ - Returnval: filter.Self, - } - - return body -} - -func (pc *PropertyCollector) CreatePropertyCollector(c *types.CreatePropertyCollector) soap.HasFault { - body := &methods.CreatePropertyCollectorBody{} - - cpc := &PropertyCollector{} - - body.Res = &types.CreatePropertyCollectorResponse{ - Returnval: Map.Put(cpc).Reference(), - } - - return body -} - -func (pc *PropertyCollector) DestroyPropertyCollector(c *types.DestroyPropertyCollector) soap.HasFault { - body := &methods.DestroyPropertyCollectorBody{} - - for _, ref := range pc.Filter { - filter := Map.Get(ref).(*PropertyFilter) - filter.DestroyPropertyFilter(&types.DestroyPropertyFilter{This: ref}) - } - - Map.Remove(c.This) - - body.Res = &types.DestroyPropertyCollectorResponse{} - - return body -} - -func (pc *PropertyCollector) RetrievePropertiesEx(r *types.RetrievePropertiesEx) soap.HasFault { - body := &methods.RetrievePropertiesExBody{} - - res, fault := pc.collect(r) - - if fault != nil { - body.Fault_ = Fault("", fault) - } else { - body.Res = &types.RetrievePropertiesExResponse{ - Returnval: res, - } - } - - return body -} - -// RetrieveProperties is deprecated, but govmomi is still using it at the moment. -func (pc *PropertyCollector) RetrieveProperties(r *types.RetrieveProperties) soap.HasFault { - body := &methods.RetrievePropertiesBody{} - - res := pc.RetrievePropertiesEx(&types.RetrievePropertiesEx{ - This: r.This, - SpecSet: r.SpecSet, - }) - - if res.Fault() != nil { - body.Fault_ = res.Fault() - } else { - body.Res = &types.RetrievePropertiesResponse{ - Returnval: res.(*methods.RetrievePropertiesExBody).Res.Returnval.Objects, - } - } - - return body -} - -func (pc *PropertyCollector) CancelWaitForUpdates(r *types.CancelWaitForUpdates) soap.HasFault { - return &methods.CancelWaitForUpdatesBody{Res: new(types.CancelWaitForUpdatesResponse)} -} - -func (pc *PropertyCollector) WaitForUpdatesEx(r *types.WaitForUpdatesEx) soap.HasFault { - body := &methods.WaitForUpdatesExBody{} - - // At the moment we need to support Task completion. Handlers can simply set the Task - // state before returning and the non-incremental update is enough for the client. - // We can wait for incremental updates to simulate timeouts, etc. - if r.Version != "" { - body.Fault_ = Fault("incremental updates not supported yet", &types.NotSupported{}) - return body - } - - update := &types.UpdateSet{ - Version: "-", - } - - for _, ref := range pc.Filter { - filter := Map.Get(ref).(*PropertyFilter) - - r := &types.RetrievePropertiesEx{} - r.SpecSet = append(r.SpecSet, filter.Spec) - - res, fault := pc.collect(r) - if fault != nil { - body.Fault_ = Fault("", fault) - return body - } - - fu := types.PropertyFilterUpdate{ - Filter: ref, - } - - for _, o := range res.Objects { - ou := types.ObjectUpdate{ - Obj: o.Obj, - Kind: types.ObjectUpdateKindEnter, - } - - for _, p := range o.PropSet { - ou.ChangeSet = append(ou.ChangeSet, types.PropertyChange{ - Op: types.PropertyChangeOpAssign, - Name: p.Name, - Val: p.Val, - }) - } - - fu.ObjectSet = append(fu.ObjectSet, ou) - } - - update.FilterSet = append(update.FilterSet, fu) - } - - body.Res = &types.WaitForUpdatesExResponse{ - Returnval: update, - } - - return body -} - -// WaitForUpdates is deprecated, but pyvmomi is still using it at the moment. -func (pc *PropertyCollector) WaitForUpdates(r *types.WaitForUpdates) soap.HasFault { - body := &methods.WaitForUpdatesBody{} - - res := pc.WaitForUpdatesEx(&types.WaitForUpdatesEx{ - This: r.This, - Version: r.Version, - }) - - if res.Fault() != nil { - body.Fault_ = res.Fault() - } else { - body.Res = &types.WaitForUpdatesResponse{ - Returnval: *res.(*methods.WaitForUpdatesExBody).Res.Returnval, - } - } - - return body -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_filter.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_filter.go deleted file mode 100644 index 0d7d9a38..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/property_filter.go +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type PropertyFilter struct { - mo.PropertyFilter - - pc *PropertyCollector -} - -func (f *PropertyFilter) DestroyPropertyFilter(c *types.DestroyPropertyFilter) soap.HasFault { - body := &methods.DestroyPropertyFilterBody{} - - f.pc.Filter = RemoveReference(c.This, f.pc.Filter) - - Map.Remove(c.This) - - body.Res = &types.DestroyPropertyFilterResponse{} - - return body -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/registry.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/registry.go deleted file mode 100644 index c738dc29..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/registry.go +++ /dev/null @@ -1,304 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "fmt" - "reflect" - "strings" - "sync" - - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -// Map is the default Registry instance. -var Map = NewRegistry() - -// RegisterObject interface supports callbacks when objects are added and removed from the Registry -type RegisterObject interface { - mo.Reference - PutObject(mo.Reference) - RemoveObject(types.ManagedObjectReference) -} - -// Registry manages a map of mo.Reference objects -type Registry struct { - m sync.Mutex - objects map[types.ManagedObjectReference]mo.Reference - handlers map[types.ManagedObjectReference]RegisterObject - counter int -} - -// NewRegistry creates a new instances of Registry -func NewRegistry() *Registry { - r := &Registry{ - objects: make(map[types.ManagedObjectReference]mo.Reference), - handlers: make(map[types.ManagedObjectReference]RegisterObject), - } - - return r -} - -// TypeName returns the type of the given object. -func TypeName(item mo.Reference) string { - return reflect.TypeOf(item).Elem().Name() -} - -// newReference returns a new MOR, where Type defaults to type of the given item -// and Value defaults to a unique id for the given type. -func (r *Registry) newReference(item mo.Reference) types.ManagedObjectReference { - ref := item.Reference() - - if ref.Type == "" { - ref.Type = TypeName(item) - } - - if ref.Value == "" { - r.counter++ - ref.Value = fmt.Sprintf("%s-%d", strings.ToLower(ref.Type), r.counter) - } - - return ref -} - -// AddHandler adds a RegisterObject handler to the Registry. -func (r *Registry) AddHandler(h RegisterObject) { - r.handlers[h.Reference()] = h -} - -// NewEntity sets Entity().Self with a new, unique Value. -// Useful for creating object instances from templates. -func (r *Registry) NewEntity(item mo.Entity) mo.Entity { - e := item.Entity() - e.Self.Value = "" - e.Self = r.newReference(item) - return item -} - -// PutEntity sets item.Parent to that of parent.Self before adding item to the Registry. -func (r *Registry) PutEntity(parent mo.Entity, item mo.Entity) mo.Entity { - e := item.Entity() - - if parent != nil { - e.Parent = &parent.Entity().Self - } - - r.Put(item) - - return item -} - -// Get returns the object for the given reference. -func (r *Registry) Get(ref types.ManagedObjectReference) mo.Reference { - r.m.Lock() - defer r.m.Unlock() - - return r.objects[ref] -} - -// Any returns the first instance of entity type specified by kind. -func (r *Registry) Any(kind string) mo.Entity { - r.m.Lock() - defer r.m.Unlock() - - for ref, val := range r.objects { - if ref.Type == kind { - return val.(mo.Entity) - } - } - - return nil -} - -// Put adds a new object to Registry, generating a ManagedObjectReference if not already set. -func (r *Registry) Put(item mo.Reference) mo.Reference { - r.m.Lock() - defer r.m.Unlock() - - ref := item.Reference() - if ref.Type == "" || ref.Value == "" { - ref = r.newReference(item) - // mo.Reference() returns a value, not a pointer so use reflect to set the Self field - reflect.ValueOf(item).Elem().FieldByName("Self").Set(reflect.ValueOf(ref)) - } - - r.objects[ref] = item - - for _, h := range r.handlers { - h.PutObject(item) - } - - return item -} - -// Remove removes an object from the Registry. -func (r *Registry) Remove(item types.ManagedObjectReference) { - r.m.Lock() - defer r.m.Unlock() - - for _, h := range r.handlers { - h.RemoveObject(item) - } - - delete(r.objects, item) - delete(r.handlers, item) -} - -// getEntityParent traverses up the inventory and returns the first object of type kind. -// If no object of type kind is found, the method will panic when it reaches the -// inventory root Folder where the Parent field is nil. -func (r *Registry) getEntityParent(item mo.Entity, kind string) mo.Entity { - for { - parent := item.Entity().Parent - - item = r.Get(*parent).(mo.Entity) - - if item.Reference().Type == kind { - return item - } - } -} - -// getEntityDatacenter returns the Datacenter containing the given item -func (r *Registry) getEntityDatacenter(item mo.Entity) *mo.Datacenter { - return r.getEntityParent(item, "Datacenter").(*mo.Datacenter) -} - -func (r *Registry) getEntityFolder(item mo.Entity, kind string) *Folder { - dc := Map.getEntityDatacenter(item) - - var ref types.ManagedObjectReference - - switch kind { - case "datastore": - ref = dc.DatastoreFolder - } - - folder := r.Get(ref).(*Folder) - - // If Model was created with Folder option, use that Folder; else use top-level folder - for _, child := range folder.ChildEntity { - if child.Type == "Folder" { - folder = Map.Get(child).(*Folder) - break - } - } - - return folder -} - -// getEntityComputeResource returns the ComputeResource parent for the given item. -// A ResourcePool for example may have N Parents of type ResourcePool, but the top -// most Parent pool is always a ComputeResource child. -func (r *Registry) getEntityComputeResource(item mo.Entity) mo.Entity { - for { - parent := item.Entity().Parent - - item = r.Get(*parent).(mo.Entity) - - switch item.Reference().Type { - case "ComputeResource": - return item - case "ClusterComputeResource": - return item - } - } -} - -// FindByName returns the first mo.Entity of the given refs whose Name field is equal to the given name. -// If there is no match, nil is returned. -// This method is useful for cases where objects are required to have a unique name, such as Datastore with -// a HostStorageSystem or HostSystem within a ClusterComputeResource. -func (r *Registry) FindByName(name string, refs []types.ManagedObjectReference) mo.Entity { - for _, ref := range refs { - e := r.Get(ref).(mo.Entity) - - if name == e.Entity().Name { - return e - } - } - - return nil -} - -// FindReference returns the 1st match found in refs, or nil if not found. -func FindReference(refs []types.ManagedObjectReference, match ...types.ManagedObjectReference) *types.ManagedObjectReference { - for _, ref := range refs { - for _, m := range match { - if ref == m { - return &ref - } - } - } - - return nil -} - -// RemoveReference returns a slice with ref removed from refs -func RemoveReference(ref types.ManagedObjectReference, refs []types.ManagedObjectReference) []types.ManagedObjectReference { - var result []types.ManagedObjectReference - - for i, r := range refs { - if r == ref { - result = append(result, refs[i+1:]...) - break - } - - result = append(result, r) - } - - return result -} - -// AddReference returns a slice with ref appended if not already in refs. -func AddReference(ref types.ManagedObjectReference, refs []types.ManagedObjectReference) []types.ManagedObjectReference { - if FindReference(refs, ref) == nil { - return append(refs, ref) - } - - return refs -} - -func (r *Registry) content() types.ServiceContent { - return r.Get(serviceInstance).(*ServiceInstance).Content -} - -// IsESX returns true if this Registry maps an ESX model -func (r *Registry) IsESX() bool { - return r.content().About.ApiType == "HostAgent" -} - -// IsVPX returns true if this Registry maps a VPX model -func (r *Registry) IsVPX() bool { - return !r.IsESX() -} - -// SearchIndex returns the SearchIndex singleton -func (r *Registry) SearchIndex() *SearchIndex { - return r.Get(r.content().SearchIndex.Reference()).(*SearchIndex) -} - -// FileManager returns the FileManager singleton -func (r *Registry) FileManager() *FileManager { - return r.Get(r.content().FileManager.Reference()).(*FileManager) -} - -// ViewManager returns the ViewManager singleton -func (r *Registry) ViewManager() *ViewManager { - return r.Get(r.content().ViewManager.Reference()).(*ViewManager) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/resource_pool.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/resource_pool.go deleted file mode 100644 index ed8de91d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/resource_pool.go +++ /dev/null @@ -1,238 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "strings" - - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type ResourcePool struct { - mo.ResourcePool -} - -func NewResourcePool() *ResourcePool { - pool := &ResourcePool{ - ResourcePool: esx.ResourcePool, - } - - if Map.IsVPX() { - pool.DisabledMethod = nil // Enable VApp methods for VC - } - - return pool -} - -func NewResourceConfigSpec() types.ResourceConfigSpec { - spec := types.ResourceConfigSpec{ - CpuAllocation: new(types.ResourceAllocationInfo), - MemoryAllocation: new(types.ResourceAllocationInfo), - } - - return spec -} - -func (p *ResourcePool) setDefaultConfig(c types.BaseResourceAllocationInfo) { - info := c.GetResourceAllocationInfo() - - if info.Shares == nil { - info.Shares = new(types.SharesInfo) - } - - if info.Shares.Level == "" { - info.Shares.Level = types.SharesLevelNormal - } - - if info.ExpandableReservation == nil { - info.ExpandableReservation = types.NewBool(false) - } -} - -func (p *ResourcePool) createChild(name string, spec types.ResourceConfigSpec) (*ResourcePool, *soap.Fault) { - if e := Map.FindByName(name, p.ResourcePool.ResourcePool); e != nil { - return nil, Fault("", &types.DuplicateName{ - Name: e.Entity().Name, - Object: e.Reference(), - }) - } - - child := NewResourcePool() - - child.Name = name - child.Owner = p.Owner - child.Summary.GetResourcePoolSummary().Name = name - child.Config.CpuAllocation = spec.CpuAllocation - child.Config.MemoryAllocation = spec.MemoryAllocation - child.Config.Entity = spec.Entity - - p.setDefaultConfig(child.Config.CpuAllocation) - p.setDefaultConfig(child.Config.MemoryAllocation) - - return child, nil -} - -func (p *ResourcePool) CreateResourcePool(c *types.CreateResourcePool) soap.HasFault { - body := &methods.CreateResourcePoolBody{} - - child, err := p.createChild(c.Name, c.Spec) - if err != nil { - body.Fault_ = err - return body - } - - Map.PutEntity(p, Map.NewEntity(child)) - - p.ResourcePool.ResourcePool = append(p.ResourcePool.ResourcePool, child.Reference()) - - body.Res = &types.CreateResourcePoolResponse{ - Returnval: child.Reference(), - } - - return body -} - -type VirtualApp struct { - mo.VirtualApp -} - -func NewVAppConfigSpec() types.VAppConfigSpec { - spec := types.VAppConfigSpec{ - Annotation: "vcsim", - VmConfigSpec: types.VmConfigSpec{ - Product: []types.VAppProductSpec{ - { - Info: &types.VAppProductInfo{ - Name: "vcsim", - Vendor: "VMware", - VendorUrl: "http://www.vmware.com/", - Version: "0.1", - }, - ArrayUpdateSpec: types.ArrayUpdateSpec{ - Operation: types.ArrayUpdateOperationAdd, - }, - }, - }, - }, - } - - return spec -} - -func (p *ResourcePool) CreateVApp(req *types.CreateVApp) soap.HasFault { - body := &methods.CreateVAppBody{} - - pool, err := p.createChild(req.Name, req.ResSpec) - if err != nil { - body.Fault_ = err - return body - } - - child := &VirtualApp{} - child.ResourcePool = pool.ResourcePool - child.Self.Type = "VirtualApp" - child.ParentFolder = req.VmFolder - - if child.ParentFolder == nil { - folder := Map.getEntityDatacenter(p).VmFolder - child.ParentFolder = &folder - } - - child.VAppConfig = &types.VAppConfigInfo{ - VmConfigInfo: types.VmConfigInfo{}, - Annotation: req.ConfigSpec.Annotation, - } - - for _, product := range req.ConfigSpec.Product { - child.VAppConfig.Product = append(child.VAppConfig.Product, *product.Info) - } - - Map.PutEntity(p, Map.NewEntity(child)) - - p.ResourcePool.ResourcePool = append(p.ResourcePool.ResourcePool, child.Reference()) - - body.Res = &types.CreateVAppResponse{ - Returnval: child.Reference(), - } - - return body -} - -func (a *VirtualApp) CreateChildVMTask(req *types.CreateChildVM_Task) soap.HasFault { - body := &methods.CreateChildVM_TaskBody{} - - folder := Map.Get(*a.ParentFolder).(*Folder) - - res := folder.CreateVMTask(&types.CreateVM_Task{ - This: folder.Self, - Config: req.Config, - Host: req.Host, - Pool: req.This, - }) - - body.Res = &types.CreateChildVM_TaskResponse{ - Returnval: res.(*methods.CreateVM_TaskBody).Res.Returnval, - } - - return body -} - -func (a *VirtualApp) DestroyTask(req *types.Destroy_Task) soap.HasFault { - return (&ResourcePool{ResourcePool: a.ResourcePool}).DestroyTask(req) -} - -func (p *ResourcePool) DestroyTask(req *types.Destroy_Task) soap.HasFault { - task := CreateTask(p, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { - if strings.HasSuffix(p.Parent.Type, "ComputeResource") { - // Can't destroy the root pool - return nil, &types.InvalidArgument{} - } - - pp := Map.Get(*p.Parent).(*ResourcePool) - - parent := &pp.ResourcePool - // Remove child reference from rp - parent.ResourcePool = RemoveReference(req.This, parent.ResourcePool) - - // The grandchildren become children of the parent (rp) - parent.ResourcePool = append(parent.ResourcePool, p.ResourcePool.ResourcePool...) - - // And VMs move to the parent - vms := p.ResourcePool.Vm - for _, vm := range vms { - Map.Get(vm).(*VirtualMachine).ResourcePool = &parent.Self - } - - parent.Vm = append(parent.Vm, vms...) - - Map.Remove(req.This) - - return nil, nil - }) - - task.Run() - - return &methods.Destroy_TaskBody{ - Res: &types.Destroy_TaskResponse{ - Returnval: task.Self, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/search_index.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/search_index.go deleted file mode 100644 index c56dff2c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/search_index.go +++ /dev/null @@ -1,155 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "strings" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type SearchIndex struct { - mo.SearchIndex -} - -func NewSearchIndex(ref types.ManagedObjectReference) object.Reference { - m := &SearchIndex{} - m.Self = ref - return m -} - -func (s *SearchIndex) FindByDatastorePath(r *types.FindByDatastorePath) soap.HasFault { - res := &methods.FindByDatastorePathBody{Res: new(types.FindByDatastorePathResponse)} - - for ref, obj := range Map.objects { - vm, ok := obj.(*VirtualMachine) - if !ok { - continue - } - - if vm.Config.Files.VmPathName == r.Path { - res.Res.Returnval = &ref - break - } - } - - return res -} - -func (s *SearchIndex) FindByInventoryPath(req *types.FindByInventoryPath) soap.HasFault { - body := &methods.FindByInventoryPathBody{Res: new(types.FindByInventoryPathResponse)} - - path := strings.Split(req.InventoryPath, "/") - if len(path) <= 1 { - return body - } - - root := Map.content().RootFolder - o := &root - - for _, name := range path[1:] { - f := s.FindChild(&types.FindChild{Entity: *o, Name: name}) - - o = f.(*methods.FindChildBody).Res.Returnval - if o == nil { - break - } - } - - body.Res.Returnval = o - - return body -} - -func (s *SearchIndex) FindChild(req *types.FindChild) soap.HasFault { - body := &methods.FindChildBody{} - - obj := Map.Get(req.Entity) - - if obj == nil { - body.Fault_ = Fault("", &types.ManagedObjectNotFound{Obj: req.Entity}) - return body - } - - body.Res = new(types.FindChildResponse) - - var children []types.ManagedObjectReference - - switch e := obj.(type) { - case *mo.Datacenter: - children = []types.ManagedObjectReference{e.VmFolder, e.HostFolder, e.DatastoreFolder, e.NetworkFolder} - case *Folder: - children = e.ChildEntity - case *mo.ComputeResource: - children = e.Host - children = append(children, *e.ResourcePool) - case *ClusterComputeResource: - children = e.Host - children = append(children, *e.ResourcePool) - case *ResourcePool: - children = e.ResourcePool.ResourcePool - children = append(children, e.Vm...) - case *VirtualApp: - children = e.ResourcePool.ResourcePool - children = append(children, e.Vm...) - } - - match := Map.FindByName(req.Name, children) - - if match != nil { - ref := match.Reference() - body.Res.Returnval = &ref - } - - return body -} - -func (s *SearchIndex) FindByUuid(req *types.FindByUuid) soap.HasFault { - body := &methods.FindByUuidBody{Res: new(types.FindByUuidResponse)} - - if req.VmSearch { - // Find Virtual Machine using UUID - for ref, obj := range Map.objects { - vm, ok := obj.(*VirtualMachine) - if !ok { - continue - } - if vm.Config.Uuid == req.Uuid { - body.Res.Returnval = &ref - break - } - } - } else { - // Find Host System using UUID - for ref, obj := range Map.objects { - host, ok := obj.(*HostSystem) - if !ok { - continue - } - if host.Summary.Hardware.Uuid == req.Uuid { - body.Res.Returnval = &ref - break - } - } - } - - return body -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/service_instance.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/service_instance.go deleted file mode 100644 index c3e7a781..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/service_instance.go +++ /dev/null @@ -1,92 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "time" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/simulator/vpx" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type ServiceInstance struct { - mo.ServiceInstance -} - -var serviceInstance = types.ManagedObjectReference{ - Type: "ServiceInstance", - Value: "ServiceInstance", -} - -func NewServiceInstance(content types.ServiceContent, folder mo.Folder) *ServiceInstance { - Map = NewRegistry() - - s := &ServiceInstance{} - - s.Self = serviceInstance - s.Content = content - - Map.Put(s) - - f := &Folder{Folder: folder} - Map.Put(f) - - var setting []types.BaseOptionValue - - if content.About.ApiType == "HostAgent" { - CreateDefaultESX(f) - } else { - setting = vpx.Setting - } - - objects := []object.Reference{ - NewSessionManager(*s.Content.SessionManager), - NewPropertyCollector(s.Content.PropertyCollector), - NewFileManager(*s.Content.FileManager), - NewLicenseManager(*s.Content.LicenseManager), - NewSearchIndex(*s.Content.SearchIndex), - NewViewManager(*s.Content.ViewManager), - NewTaskManager(*s.Content.TaskManager), - NewOptionManager(s.Content.Setting, setting), - } - - for _, o := range objects { - Map.Put(o) - } - - return s -} - -func (s *ServiceInstance) RetrieveServiceContent(*types.RetrieveServiceContent) soap.HasFault { - return &methods.RetrieveServiceContentBody{ - Res: &types.RetrieveServiceContentResponse{ - Returnval: s.Content, - }, - } -} - -func (*ServiceInstance) CurrentTime(*types.CurrentTime) soap.HasFault { - return &methods.CurrentTimeBody{ - Res: &types.CurrentTimeResponse{ - Returnval: time.Now(), - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/session_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/session_manager.go deleted file mode 100644 index d05d5f5d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/session_manager.go +++ /dev/null @@ -1,83 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "time" - - "github.com/google/uuid" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/session" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type SessionManager struct { - mo.SessionManager - - ServiceHostName string -} - -func NewSessionManager(ref types.ManagedObjectReference) object.Reference { - s := &SessionManager{} - s.Self = ref - return s -} - -func (s *SessionManager) Login(login *types.Login) soap.HasFault { - body := &methods.LoginBody{} - - if login.Locale == "" { - login.Locale = session.Locale - } - - if login.UserName == "" || login.Password == "" { - body.Fault_ = Fault("Login failure", &types.InvalidLogin{}) - } else { - body.Res = &types.LoginResponse{ - Returnval: types.UserSession{ - Key: uuid.New().String(), - UserName: login.UserName, - FullName: login.UserName, - LoginTime: time.Now(), - LastActiveTime: time.Now(), - Locale: login.Locale, - MessageLocale: login.Locale, - }, - } - } - - return body -} - -func (s *SessionManager) Logout(*types.Logout) soap.HasFault { - return &methods.LogoutBody{} -} - -func (s *SessionManager) AcquireGenericServiceTicket(ticket *types.AcquireGenericServiceTicket) soap.HasFault { - return &methods.AcquireGenericServiceTicketBody{ - Res: &types.AcquireGenericServiceTicketResponse{ - Returnval: types.SessionManagerGenericServiceTicket{ - Id: uuid.New().String(), - HostName: s.ServiceHostName, - }, - }, - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/simulator.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/simulator.go deleted file mode 100644 index d8878098..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/simulator.go +++ /dev/null @@ -1,526 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "bytes" - "context" - "crypto/tls" - "crypto/x509" - "encoding/json" - "encoding/pem" - "flag" - "fmt" - "io" - "io/ioutil" - "log" - "net/http" - "net/http/httptest" - "net/url" - "os" - "path" - "reflect" - "sort" - "strings" - - "github.com/vmware/govmomi/find" - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/govmomi/vim25/xml" -) - -// Trace when set to true, writes SOAP traffic to stderr -var Trace = false - -// Method encapsulates a decoded SOAP client request -type Method struct { - Name string - This types.ManagedObjectReference - Body types.AnyType -} - -// Service decodes incoming requests and dispatches to a Handler -type Service struct { - client *vim25.Client - - readAll func(io.Reader) ([]byte, error) - - TLS *tls.Config -} - -// Server provides a simulator Service over HTTP -type Server struct { - *httptest.Server - URL *url.URL - - caFile string -} - -// New returns an initialized simulator Service instance -func New(instance *ServiceInstance) *Service { - s := &Service{ - readAll: ioutil.ReadAll, - } - - s.client, _ = vim25.NewClient(context.Background(), s) - - return s -} - -type serverFaultBody struct { - Reason *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *serverFaultBody) Fault() *soap.Fault { return b.Reason } - -func serverFault(msg string) soap.HasFault { - return &serverFaultBody{Reason: Fault(msg, &types.InvalidRequest{})} -} - -// Fault wraps the given message and fault in a soap.Fault -func Fault(msg string, fault types.BaseMethodFault) *soap.Fault { - f := &soap.Fault{ - Code: "ServerFaultCode", - String: msg, - } - - f.Detail.Fault = fault - - return f -} - -func (s *Service) call(method *Method) soap.HasFault { - handler := Map.Get(method.This) - - if handler == nil { - msg := fmt.Sprintf("managed object not found: %s", method.This) - log.Print(msg) - fault := &types.ManagedObjectNotFound{Obj: method.This} - return &serverFaultBody{Reason: Fault(msg, fault)} - } - - name := method.Name - - if strings.HasSuffix(name, vTaskSuffix) { - // Make golint happy renaming "Foo_Task" -> "FooTask" - name = name[:len(name)-len(vTaskSuffix)] + sTaskSuffix - } - - m := reflect.ValueOf(handler).MethodByName(name) - if !m.IsValid() { - msg := fmt.Sprintf("%s does not implement: %s", method.This, method.Name) - log.Print(msg) - fault := &types.MethodNotFound{Receiver: method.This, Method: method.Name} - return &serverFaultBody{Reason: Fault(msg, fault)} - } - - if e, ok := handler.(mo.Entity); ok { - for _, dm := range e.Entity().DisabledMethod { - if name == dm { - msg := fmt.Sprintf("%s method is disabled: %s", method.This, method.Name) - fault := &types.MethodDisabled{} - return &serverFaultBody{Reason: Fault(msg, fault)} - } - } - } - - res := m.Call([]reflect.Value{reflect.ValueOf(method.Body)}) - - return res[0].Interface().(soap.HasFault) -} - -// RoundTrip implements the soap.RoundTripper interface in process. -// Rather than encode/decode SOAP over HTTP, this implementation uses reflection. -func (s *Service) RoundTrip(ctx context.Context, request, response soap.HasFault) error { - field := func(r soap.HasFault, name string) reflect.Value { - return reflect.ValueOf(r).Elem().FieldByName(name) - } - - // Every struct passed to soap.RoundTrip has "Req" and "Res" fields - req := field(request, "Req") - - // Every request has a "This" field. - this := req.Elem().FieldByName("This") - - method := &Method{ - Name: req.Elem().Type().Name(), - This: this.Interface().(types.ManagedObjectReference), - Body: req.Interface(), - } - - res := s.call(method) - - if err := res.Fault(); err != nil { - return soap.WrapSoapFault(err) - } - - field(response, "Res").Set(field(res, "Res")) - - return nil -} - -// soapEnvelope is a copy of soap.Envelope, with namespace changed to "soapenv", -// and additional namespace attributes required by some client libraries. -// Go still has issues decoding with such a namespace, but encoding is ok. -type soapEnvelope struct { - XMLName xml.Name `xml:"soapenv:Envelope"` - Enc string `xml:"xmlns:soapenc,attr"` - Env string `xml:"xmlns:soapenv,attr"` - XSD string `xml:"xmlns:xsd,attr"` - XSI string `xml:"xmlns:xsi,attr"` - Body interface{} `xml:"soapenv:Body"` -} - -// About generates some info about the simulator. -func (s *Service) About(w http.ResponseWriter, r *http.Request) { - var about struct { - Methods []string - Types []string - } - - seen := make(map[string]bool) - - f := reflect.TypeOf((*soap.HasFault)(nil)).Elem() - - for _, obj := range Map.objects { - kind := obj.Reference().Type - if seen[kind] { - continue - } - seen[kind] = true - - about.Types = append(about.Types, kind) - - t := reflect.TypeOf(obj) - for i := 0; i < t.NumMethod(); i++ { - m := t.Method(i) - if seen[m.Name] { - continue - } - seen[m.Name] = true - - if m.Type.NumIn() != 2 || m.Type.NumOut() != 1 || m.Type.Out(0) != f { - continue - } - - about.Methods = append(about.Methods, strings.Replace(m.Name, "Task", "_Task", 1)) - } - } - - sort.Strings(about.Methods) - sort.Strings(about.Types) - - w.Header().Set("Content-Type", "application/json") - enc := json.NewEncoder(w) - enc.SetIndent("", " ") - _ = enc.Encode(&about) -} - -// ServeSDK implements the http.Handler interface -func (s *Service) ServeSDK(w http.ResponseWriter, r *http.Request) { - if r.Method != "POST" { - w.WriteHeader(http.StatusMethodNotAllowed) - return - } - - body, err := s.readAll(r.Body) - _ = r.Body.Close() - if err != nil { - log.Printf("error reading body: %s", err) - w.WriteHeader(http.StatusBadRequest) - return - } - - if Trace { - fmt.Fprintf(os.Stderr, "Request: %s\n", string(body)) - } - - var res soap.HasFault - - method, err := UnmarshalBody(body) - if err != nil { - res = serverFault(err.Error()) - } else { - res = s.call(method) - } - - if res.Fault() == nil { - w.WriteHeader(http.StatusOK) - } else { - w.WriteHeader(http.StatusInternalServerError) - } - - var out bytes.Buffer - - fmt.Fprint(&out, xml.Header) - e := xml.NewEncoder(&out) - err = e.Encode(&soapEnvelope{ - Enc: "http://schemas.xmlsoap.org/soap/encoding/", - Env: "http://schemas.xmlsoap.org/soap/envelope/", - XSD: "http://www.w3.org/2001/XMLSchema", - XSI: "http://www.w3.org/2001/XMLSchema-instance", - Body: res, - }) - if err == nil { - err = e.Flush() - } - - if err != nil { - log.Printf("error encoding %s response: %s", method.Name, err) - return - } - - if Trace { - fmt.Fprintf(os.Stderr, "Response: %s\n", out.String()) - } - - _, _ = w.Write(out.Bytes()) -} - -func (s *Service) findDatastore(query url.Values) (*Datastore, error) { - ctx := context.Background() - - finder := find.NewFinder(s.client, false) - dc, err := finder.DatacenterOrDefault(ctx, query.Get("dcName")) - if err != nil { - return nil, err - } - - finder.SetDatacenter(dc) - - ds, err := finder.DatastoreOrDefault(ctx, query.Get("dsName")) - if err != nil { - return nil, err - } - - return Map.Get(ds.Reference()).(*Datastore), nil -} - -const folderPrefix = "/folder/" - -// ServeDatastore handler for Datastore access via /folder path. -func (s *Service) ServeDatastore(w http.ResponseWriter, r *http.Request) { - ds, ferr := s.findDatastore(r.URL.Query()) - if ferr != nil { - log.Printf("failed to locate datastore with query params: %s", r.URL.RawQuery) - w.WriteHeader(http.StatusNotFound) - return - } - - file := strings.TrimPrefix(r.URL.Path, folderPrefix) - p := path.Join(ds.Info.GetDatastoreInfo().Url, file) - - switch r.Method { - case "GET": - f, err := os.Open(p) - if err != nil { - log.Printf("failed to %s '%s': %s", r.Method, p, err) - w.WriteHeader(http.StatusNotFound) - return - } - defer f.Close() - - _, _ = io.Copy(w, f) - case "POST": - _, err := os.Stat(p) - if err == nil { - // File exists - w.WriteHeader(http.StatusConflict) - return - } - - // File does not exist, fallthrough to create via PUT logic - fallthrough - case "PUT": - f, err := os.Create(p) - if err != nil { - log.Printf("failed to %s '%s': %s", r.Method, p, err) - w.WriteHeader(http.StatusInternalServerError) - return - } - defer f.Close() - - _, _ = io.Copy(f, r.Body) - default: - w.WriteHeader(http.StatusMethodNotAllowed) - } -} - -// ServiceVersions handler for the /sdk/vimServiceVersions.xml path. -func (*Service) ServiceVersions(w http.ResponseWriter, r *http.Request) { - // pyvmomi depends on this - - const versions = xml.Header + ` - - urn:vim25 - 6.5 - - 6.0 - 5.5 - - - -` - fmt.Fprint(w, versions) -} - -// NewServer returns an http Server instance for the given service -func (s *Service) NewServer() *Server { - mux := http.NewServeMux() - path := "/sdk" - - mux.HandleFunc(path, s.ServeSDK) - mux.HandleFunc(path+"/vimServiceVersions.xml", s.ServiceVersions) - mux.HandleFunc(folderPrefix, s.ServeDatastore) - mux.HandleFunc("/about", s.About) - - // Using NewUnstartedServer() instead of NewServer(), - // for use in main.go, where Start() blocks, we can still set ServiceHostName - ts := httptest.NewUnstartedServer(mux) - - u := &url.URL{ - Scheme: "http", - Host: ts.Listener.Addr().String(), - Path: path, - User: url.UserPassword("user", "pass"), - } - - // Redirect clients to this http server, rather than HostSystem.Name - Map.Get(*s.client.ServiceContent.SessionManager).(*SessionManager).ServiceHostName = u.Host - - if f := flag.Lookup("httptest.serve"); f != nil { - // Avoid the blocking behaviour of httptest.Server.Start() when this flag is set - _ = f.Value.Set("") - } - - if s.TLS == nil { - ts.Start() - } else { - ts.TLS = s.TLS - ts.StartTLS() - u.Scheme += "s" - } - - return &Server{ - Server: ts, - URL: u, - } -} - -// Certificate returns the TLS certificate for the Server if started with TLS enabled. -// This method will panic if TLS is not enabled for the server. -func (s *Server) Certificate() *x509.Certificate { - // By default httptest.StartTLS uses http/internal.LocalhostCert, which we can access here: - cert, _ := x509.ParseCertificate(s.TLS.Certificates[0].Certificate[0]) - return cert -} - -// CertificateInfo returns Server.Certificate() as object.HostCertificateInfo -func (s *Server) CertificateInfo() *object.HostCertificateInfo { - info := new(object.HostCertificateInfo) - info.FromCertificate(s.Certificate()) - return info -} - -// CertificateFile returns a file name, where the file contains the PEM encoded Server.Certificate. -// The temporary file is removed when Server.Close() is called. -func (s *Server) CertificateFile() (string, error) { - if s.caFile != "" { - return s.caFile, nil - } - - f, err := ioutil.TempFile("", "vcsim-") - if err != nil { - return "", err - } - defer f.Close() - - s.caFile = f.Name() - cert := s.Certificate() - return s.caFile, pem.Encode(f, &pem.Block{Type: "CERTIFICATE", Bytes: cert.Raw}) -} - -// Close shuts down the server and blocks until all outstanding -// requests on this server have completed. -func (s *Server) Close() { - s.Server.Close() - if s.caFile != "" { - _ = os.Remove(s.caFile) - } -} - -var typeFunc = types.TypeFunc() - -// UnmarshalBody extracts the Body from a soap.Envelope and unmarshals to the corresponding govmomi type -func UnmarshalBody(data []byte) (*Method, error) { - body := struct { - Content string `xml:",innerxml"` - }{} - - req := soap.Envelope{ - Body: &body, - } - - err := xml.Unmarshal(data, &req) - if err != nil { - return nil, fmt.Errorf("xml.Unmarshal: %s", err) - } - - decoder := xml.NewDecoder(bytes.NewReader([]byte(body.Content))) - decoder.TypeFunc = typeFunc // required to decode interface types - - var start *xml.StartElement - - for { - tok, derr := decoder.Token() - if derr != nil { - return nil, fmt.Errorf("decoding body: %s", err) - } - if t, ok := tok.(xml.StartElement); ok { - start = &t - break - } - } - - kind := start.Name.Local - - rtype, ok := typeFunc(kind) - if !ok { - return nil, fmt.Errorf("no vmomi type defined for '%s'", kind) - } - - var val interface{} - if rtype != nil { - val = reflect.New(rtype).Interface() - } - - err = decoder.DecodeElement(val, start) - if err != nil { - return nil, fmt.Errorf("decoding %s: %s", kind, err) - } - - method := &Method{Name: kind, Body: val} - - field := reflect.ValueOf(val).Elem().FieldByName("This") - - method.This = field.Interface().(types.ManagedObjectReference) - - return method, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task.go deleted file mode 100644 index 7ef17498..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task.go +++ /dev/null @@ -1,100 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "fmt" - "reflect" - "strings" - "time" - - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -const vTaskSuffix = "_Task" // vmomi suffix -const sTaskSuffix = "Task" // simulator suffix (avoiding golint warning) - -type Task struct { - mo.Task - - Execute func(*Task) (types.AnyType, types.BaseMethodFault) -} - -func NewTask(runner TaskRunner) *Task { - ref := runner.Reference() - name := reflect.TypeOf(runner).Elem().Name() - name = strings.Replace(name, "VM", "Vm", 1) // "VM" for the type to make go-lint happy, but "Vm" for the vmodl ID - return CreateTask(ref, name, runner.Run) -} - -func CreateTask(e mo.Reference, name string, run func(*Task) (types.AnyType, types.BaseMethodFault)) *Task { - ref := e.Reference() - id := name - - if strings.HasSuffix(id, sTaskSuffix) { - id = id[:len(id)-len(sTaskSuffix)] - name = id + vTaskSuffix - } - - task := &Task{ - Execute: run, - } - - Map.Put(task) - - task.Info.Key = task.Self.Value - task.Info.Task = task.Self - task.Info.Name = ucFirst(name) - task.Info.DescriptionId = fmt.Sprintf("%s.%s", ref.Type, id) - task.Info.Entity = &ref - task.Info.EntityName = ref.Value - - task.Info.QueueTime = time.Now() - task.Info.State = types.TaskInfoStateQueued - - return task -} - -type TaskRunner interface { - mo.Reference - - Run(*Task) (types.AnyType, types.BaseMethodFault) -} - -func (t *Task) Run() { - now := time.Now() - t.Info.StartTime = &now - - t.Info.State = types.TaskInfoStateRunning - - res, err := t.Execute(t) - - now = time.Now() - t.Info.CompleteTime = &now - - if err != nil { - t.Info.State = types.TaskInfoStateError - t.Info.Error = &types.LocalizedMethodFault{ - Fault: err, - LocalizedMessage: fmt.Sprintf("%T", err), - } - } else { - t.Info.Result = res - t.Info.State = types.TaskInfoStateSuccess - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task_manager.go deleted file mode 100644 index df271082..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/task_manager.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var recentTaskMax = 200 // the VC limit - -type TaskManager struct { - mo.TaskManager -} - -func NewTaskManager(ref types.ManagedObjectReference) object.Reference { - s := &TaskManager{} - s.Self = ref - Map.AddHandler(s) - return s -} - -func (m *TaskManager) PutObject(obj mo.Reference) { - ref := obj.Reference() - if ref.Type != "Task" { - return - } - - m.RecentTask = append(m.RecentTask, ref) - - if len(m.RecentTask) > recentTaskMax { - m.RecentTask = m.RecentTask[1:] - } -} - -func (m *TaskManager) RemoveObject(_ types.ManagedObjectReference) { -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/view_manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/view_manager.go deleted file mode 100644 index 959f2284..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/view_manager.go +++ /dev/null @@ -1,184 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "reflect" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type ViewManager struct { - mo.ViewManager - - entities map[string]bool -} - -var entities = []struct { - Type reflect.Type - Container bool -}{ - {reflect.TypeOf((*mo.ManagedEntity)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.Folder)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.StoragePod)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.Datacenter)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.ComputeResource)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.ClusterComputeResource)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.HostSystem)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.ResourcePool)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.VirtualApp)(nil)).Elem(), true}, - {reflect.TypeOf((*mo.VirtualMachine)(nil)).Elem(), false}, - {reflect.TypeOf((*mo.Datastore)(nil)).Elem(), false}, - {reflect.TypeOf((*mo.Network)(nil)).Elem(), false}, - {reflect.TypeOf((*mo.OpaqueNetwork)(nil)).Elem(), false}, - {reflect.TypeOf((*mo.DistributedVirtualPortgroup)(nil)).Elem(), false}, - {reflect.TypeOf((*mo.DistributedVirtualSwitch)(nil)).Elem(), false}, - {reflect.TypeOf((*mo.VmwareDistributedVirtualSwitch)(nil)).Elem(), false}, -} - -func NewViewManager(ref types.ManagedObjectReference) object.Reference { - s := &ViewManager{ - entities: make(map[string]bool), - } - - s.Self = ref - - for _, e := range entities { - s.entities[e.Type.Name()] = e.Container - } - - return s -} - -func destroyView(ref types.ManagedObjectReference) soap.HasFault { - m := Map.ViewManager() - - m.ViewList = RemoveReference(ref, m.ViewList) - - return &methods.DestroyViewBody{ - Res: &types.DestroyViewResponse{}, - } -} - -func (m *ViewManager) CreateContainerView(req *types.CreateContainerView) soap.HasFault { - body := &methods.CreateContainerViewBody{} - - root := Map.Get(req.Container) - if root == nil { - body.Fault_ = Fault("", &types.ManagedObjectNotFound{Obj: req.Container}) - return body - } - - if m.entities[root.Reference().Type] != true { - body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "container"}) - return body - } - - container := &ContainerView{ - mo.ContainerView{ - Container: root.Reference(), - Recursive: req.Recursive, - Type: req.Type, - }, - make(map[string]bool), - } - - for _, ctype := range container.Type { - if _, ok := m.entities[ctype]; !ok { - body.Fault_ = Fault("", &types.InvalidArgument{InvalidProperty: "type"}) - return body - } - - container.types[ctype] = true - - for _, e := range entities { - // Check for embedded types - if f, ok := e.Type.FieldByName(ctype); ok && f.Anonymous { - container.types[e.Type.Name()] = true - } - } - } - - Map.Put(container) - - m.ViewList = append(m.ViewList, container.Reference()) - - body.Res = &types.CreateContainerViewResponse{ - Returnval: container.Self, - } - - container.add(root) - - return body -} - -type ContainerView struct { - mo.ContainerView - - types map[string]bool -} - -func (v *ContainerView) DestroyView(c *types.DestroyView) soap.HasFault { - return destroyView(c.This) -} - -func (v *ContainerView) include(o types.ManagedObjectReference) bool { - if len(v.types) == 0 { - return true - } - - return v.types[o.Type] -} - -func (v *ContainerView) add(root mo.Reference) { - var children []types.ManagedObjectReference - - switch e := root.(type) { - case *mo.Datacenter: - children = []types.ManagedObjectReference{e.VmFolder, e.HostFolder, e.DatastoreFolder, e.NetworkFolder} - case *Folder: - children = e.ChildEntity - case *mo.ComputeResource: - children = e.Host - children = append(children, *e.ResourcePool) - case *ClusterComputeResource: - children = e.Host - children = append(children, *e.ResourcePool) - case *ResourcePool: - children = e.ResourcePool.ResourcePool - children = append(children, e.Vm...) - case *VirtualApp: - children = e.ResourcePool.ResourcePool - children = append(children, e.Vm...) - case *HostSystem: - children = e.Vm - } - - for _, child := range children { - if v.include(child) { - v.View = AddReference(child, v.View) - } - - if v.Recursive { - v.add(Map.Get(child)) - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go deleted file mode 100644 index 30e34080..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/virtual_machine.go +++ /dev/null @@ -1,626 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 simulator - -import ( - "fmt" - "io" - "log" - "net" - "os" - "path" - "strings" - "time" - - "github.com/google/uuid" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/simulator/esx" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type VirtualMachine struct { - mo.VirtualMachine - - log *log.Logger - out io.Closer -} - -func NewVirtualMachine(spec *types.VirtualMachineConfigSpec) (*VirtualMachine, types.BaseMethodFault) { - vm := &VirtualMachine{} - - if spec.Name == "" { - return nil, &types.InvalidVmConfig{Property: "configSpec.name"} - } - - if spec.Files == nil || spec.Files.VmPathName == "" { - return nil, &types.InvalidVmConfig{Property: "configSpec.files.vmPathName"} - } - - vm.Config = &types.VirtualMachineConfigInfo{ - ExtraConfig: []types.BaseOptionValue{&types.OptionValue{Key: "govcsim", Value: "TRUE"}}, - } - vm.Summary.Guest = &types.VirtualMachineGuestSummary{} - vm.Summary.Storage = &types.VirtualMachineStorageSummary{} - - // Append VM Name as the directory name if not specified - if strings.HasSuffix(spec.Files.VmPathName, "]") { // e.g. "[datastore1]" - spec.Files.VmPathName += " " + spec.Name - } - - if !strings.HasSuffix(spec.Files.VmPathName, ".vmx") { - spec.Files.VmPathName = path.Join(spec.Files.VmPathName, spec.Name+".vmx") - } - - dsPath := path.Dir(spec.Files.VmPathName) - - defaults := types.VirtualMachineConfigSpec{ - NumCPUs: 1, - NumCoresPerSocket: 1, - MemoryMB: 32, - Uuid: uuid.New().String(), - Version: "vmx-11", - Files: &types.VirtualMachineFileInfo{ - SnapshotDirectory: dsPath, - SuspendDirectory: dsPath, - LogDirectory: dsPath, - }, - } - - // Add the default devices - defaults.DeviceChange, _ = object.VirtualDeviceList(esx.VirtualDevice).ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd) - - err := vm.configure(&defaults) - if err != nil { - return nil, err - } - - vm.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff - vm.Runtime.ConnectionState = types.VirtualMachineConnectionStateConnected - vm.Summary.Runtime = vm.Runtime - - vm.Summary.QuickStats.GuestHeartbeatStatus = types.ManagedEntityStatusGray - vm.Summary.OverallStatus = types.ManagedEntityStatusGreen - vm.ConfigStatus = types.ManagedEntityStatusGreen - - return vm, nil -} - -func (vm *VirtualMachine) configure(spec *types.VirtualMachineConfigSpec) types.BaseMethodFault { - err := vm.configureDevices(spec) - if err != nil { - return err - } - - if spec.Files == nil { - spec.Files = new(types.VirtualMachineFileInfo) - } - - apply := []struct { - src string - dst *string - }{ - {spec.Name, &vm.Name}, - {spec.Name, &vm.Config.Name}, - {spec.Name, &vm.Summary.Config.Name}, - {spec.GuestId, &vm.Config.GuestId}, - {spec.GuestId, &vm.Config.GuestFullName}, - {spec.GuestId, &vm.Summary.Guest.GuestId}, - {spec.GuestId, &vm.Summary.Config.GuestId}, - {spec.GuestId, &vm.Summary.Config.GuestFullName}, - {spec.Uuid, &vm.Config.Uuid}, - {spec.Version, &vm.Config.Version}, - {spec.Files.VmPathName, &vm.Config.Files.VmPathName}, - {spec.Files.VmPathName, &vm.Summary.Config.VmPathName}, - {spec.Files.SnapshotDirectory, &vm.Config.Files.SnapshotDirectory}, - {spec.Files.LogDirectory, &vm.Config.Files.LogDirectory}, - } - - for _, f := range apply { - if f.src != "" { - *f.dst = f.src - } - } - - if spec.MemoryMB != 0 { - vm.Config.Hardware.MemoryMB = int32(spec.MemoryMB) - vm.Summary.Config.MemorySizeMB = vm.Config.Hardware.MemoryMB - } - - if spec.NumCPUs != 0 { - vm.Config.Hardware.NumCPU = spec.NumCPUs - vm.Summary.Config.NumCpu = vm.Config.Hardware.NumCPU - } - - vm.Config.ExtraConfig = append(vm.Config.ExtraConfig, spec.ExtraConfig...) - - vm.Config.Modified = time.Now() - - vm.Summary.Config.Uuid = vm.Config.Uuid - - return nil -} - -func (vm *VirtualMachine) useDatastore(name string) *Datastore { - host := Map.Get(*vm.Runtime.Host).(*HostSystem) - - ds := Map.FindByName(name, host.Datastore).(*Datastore) - - vm.Datastore = AddReference(ds.Self, vm.Datastore) - - return ds -} - -func (vm *VirtualMachine) setLog(w io.WriteCloser) { - vm.out = w - vm.log = log.New(w, "vmx ", log.Flags()) -} - -func (vm *VirtualMachine) createFile(spec string, name string, register bool) (*os.File, types.BaseMethodFault) { - p, fault := parseDatastorePath(spec) - if fault != nil { - return nil, fault - } - - ds := vm.useDatastore(p.Datastore) - - file := path.Join(ds.Info.GetDatastoreInfo().Url, p.Path) - - if name != "" { - if path.Ext(file) != "" { - file = path.Dir(file) - } - - file = path.Join(file, name) - } - - if register { - f, err := os.Open(file) - if err != nil { - log.Printf("register %s: %s", vm.Reference(), err) - if os.IsNotExist(err) { - return nil, &types.NotFound{} - } - - return nil, &types.InvalidArgument{} - } - - return f, nil - } - - dir := path.Dir(file) - - _ = os.MkdirAll(dir, 0700) - - _, err := os.Stat(file) - if err == nil { - return nil, &types.FileAlreadyExists{ - FileFault: types.FileFault{ - File: file, - }, - } - } - - f, err := os.Create(file) - if err != nil { - return nil, &types.FileFault{ - File: file, - } - } - - return f, nil -} - -func (vm *VirtualMachine) create(spec *types.VirtualMachineConfigSpec, register bool) types.BaseMethodFault { - err := vm.configure(spec) - if err != nil { - return err - } - - files := []struct { - spec string - name string - use func(w io.WriteCloser) - }{ - {vm.Config.Files.VmPathName, "", nil}, - {vm.Config.Files.VmPathName, fmt.Sprintf("%s.nvram", vm.Name), nil}, - {vm.Config.Files.LogDirectory, "vmware.log", vm.setLog}, - } - - for _, file := range files { - f, err := vm.createFile(file.spec, file.name, register) - if err != nil { - return err - } - - if file.use != nil { - file.use(f) - } else { - _ = f.Close() - } - } - - vm.log.Print("created") - - return nil -} - -var vmwOUI = net.HardwareAddr([]byte{0x0, 0xc, 0x29}) - -// From http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.vsphere.networking.doc%2FGUID-DC7478FF-DC44-4625-9AD7-38208C56A552.html -// "The host generates generateMAC addresses that consists of the VMware OUI 00:0C:29 and the last three octets in hexadecimal -// format of the virtual machine UUID. The virtual machine UUID is based on a hash calculated by using the UUID of the -// ESXi physical machine and the path to the configuration file (.vmx) of the virtual machine." -func (vm *VirtualMachine) generateMAC() string { - id := uuid.New() // Random is fine for now. - - offset := len(id) - len(vmwOUI) - - mac := append(vmwOUI, id[offset:]...) - - return mac.String() -} - -func (vm *VirtualMachine) configureDevice(devices object.VirtualDeviceList, device types.BaseVirtualDevice) { - d := device.GetVirtualDevice() - var controller types.BaseVirtualController - - if d.Key < 0 { - // Choose a unique key - if d.Key == -1 { - d.Key = devices.NewKey() - } - - d.Key *= -1 - - for { - if devices.FindByKey(d.Key) == nil { - break - } - d.Key++ - } - } - - label := devices.Name(device) - summary := label - - switch x := device.(type) { - case types.BaseVirtualEthernetCard: - controller = devices.PickController((*types.VirtualPCIController)(nil)) - var net types.ManagedObjectReference - - switch b := d.Backing.(type) { - case *types.VirtualEthernetCardNetworkBackingInfo: - summary = b.DeviceName - dc := Map.getEntityDatacenter(vm) - net = Map.FindByName(b.DeviceName, dc.Network).Reference() - b.Network = &net - case *types.VirtualEthernetCardDistributedVirtualPortBackingInfo: - summary = fmt.Sprintf("DVSwitch: %s", b.Port.SwitchUuid) - net.Type = "DistributedVirtualPortgroup" - net.Value = b.Port.PortgroupKey - } - - vm.Network = append(vm.Network, net) - - c := x.GetVirtualEthernetCard() - if c.MacAddress == "" { - c.MacAddress = vm.generateMAC() - } - } - - if d.UnitNumber == nil && controller != nil { - devices.AssignController(device, controller) - } - - if d.DeviceInfo == nil { - d.DeviceInfo = &types.Description{ - Label: label, - Summary: summary, - } - } -} - -func removeDevice(devices object.VirtualDeviceList, device types.BaseVirtualDevice) object.VirtualDeviceList { - var result object.VirtualDeviceList - - for i, d := range devices { - if d.GetVirtualDevice().Key == device.GetVirtualDevice().Key { - result = append(result, devices[i+1:]...) - break - } - - result = append(result, d) - } - - return result -} - -func (vm *VirtualMachine) configureDevices(spec *types.VirtualMachineConfigSpec) types.BaseMethodFault { - devices := object.VirtualDeviceList(vm.Config.Hardware.Device) - - for i, change := range spec.DeviceChange { - dspec := change.GetVirtualDeviceConfigSpec() - device := dspec.Device.GetVirtualDevice() - invalid := &types.InvalidDeviceSpec{DeviceIndex: int32(i)} - - switch dspec.Operation { - case types.VirtualDeviceConfigSpecOperationAdd: - if devices.FindByKey(device.Key) != nil { - if vm.Self.Value != "" { // moid isn't set until CreateVM is done - return invalid - } - - // In this case, the CreateVM() spec included one of the default devices - devices = removeDevice(devices, device) - } - - vm.configureDevice(devices, dspec.Device) - - devices = append(devices, dspec.Device) - case types.VirtualDeviceConfigSpecOperationRemove: - devices = removeDevice(devices, dspec.Device) - } - } - - vm.Config.Hardware.Device = []types.BaseVirtualDevice(devices) - - return nil -} - -type powerVMTask struct { - *VirtualMachine - - state types.VirtualMachinePowerState -} - -func (c *powerVMTask) Run(task *Task) (types.AnyType, types.BaseMethodFault) { - c.log.Printf("running power task: requesting %s, existing %s", - c.state, c.VirtualMachine.Runtime.PowerState) - - if c.VirtualMachine.Runtime.PowerState == c.state { - return nil, &types.InvalidPowerState{ - RequestedState: c.state, - ExistingState: c.VirtualMachine.Runtime.PowerState, - } - } - - c.VirtualMachine.Runtime.PowerState = c.state - c.VirtualMachine.Summary.Runtime.PowerState = c.state - - bt := &c.VirtualMachine.Summary.Runtime.BootTime - if c.state == types.VirtualMachinePowerStatePoweredOn { - now := time.Now() - *bt = &now - } else { - *bt = nil - } - - return nil, nil -} - -func (vm *VirtualMachine) PowerOnVMTask(c *types.PowerOnVM_Task) soap.HasFault { - r := &methods.PowerOnVM_TaskBody{} - - runner := &powerVMTask{vm, types.VirtualMachinePowerStatePoweredOn} - task := CreateTask(runner.Reference(), "powerOn", runner.Run) - - r.Res = &types.PowerOnVM_TaskResponse{ - Returnval: task.Self, - } - - task.Run() - - return r -} - -func (vm *VirtualMachine) PowerOffVMTask(c *types.PowerOffVM_Task) soap.HasFault { - r := &methods.PowerOffVM_TaskBody{} - - runner := &powerVMTask{vm, types.VirtualMachinePowerStatePoweredOff} - task := CreateTask(runner.Reference(), "powerOff", runner.Run) - - r.Res = &types.PowerOffVM_TaskResponse{ - Returnval: task.Self, - } - - task.Run() - - return r -} - -func (vm *VirtualMachine) ReconfigVMTask(req *types.ReconfigVM_Task) soap.HasFault { - task := CreateTask(vm, "reconfigVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { - err := vm.configure(&req.Spec) - if err != nil { - return nil, err - } - - return nil, nil - }) - - task.Run() - - return &methods.ReconfigVM_TaskBody{ - Res: &types.ReconfigVM_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (vm *VirtualMachine) DestroyTask(req *types.Destroy_Task) soap.HasFault { - task := CreateTask(vm, "destroy", func(t *Task) (types.AnyType, types.BaseMethodFault) { - r := vm.UnregisterVM(&types.UnregisterVM{ - This: req.This, - }) - - if r.Fault() != nil { - return nil, r.Fault().VimFault().(types.BaseMethodFault) - } - - // Delete VM files from the datastore (ignoring result for now) - m := Map.FileManager() - dc := Map.getEntityDatacenter(vm).Reference() - - _ = m.DeleteDatastoreFileTask(&types.DeleteDatastoreFile_Task{ - This: m.Reference(), - Name: vm.Config.Files.LogDirectory, - Datacenter: &dc, - }) - - return nil, nil - }) - - task.Run() - - return &methods.Destroy_TaskBody{ - Res: &types.Destroy_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (vm *VirtualMachine) UnregisterVM(c *types.UnregisterVM) soap.HasFault { - r := &methods.UnregisterVMBody{} - - if vm.Runtime.PowerState == types.VirtualMachinePowerStatePoweredOn { - r.Fault_ = Fault("", &types.InvalidPowerState{ - RequestedState: types.VirtualMachinePowerStatePoweredOff, - ExistingState: vm.Runtime.PowerState, - }) - - return r - } - - _ = vm.out.Close() // Close log fd - - Map.getEntityParent(vm, "Folder").(*Folder).removeChild(c.This) - - host := Map.Get(*vm.Runtime.Host).(*HostSystem) - host.Vm = RemoveReference(vm.Self, host.Vm) - - switch pool := Map.Get(*vm.ResourcePool).(type) { - case *ResourcePool: - pool.Vm = RemoveReference(vm.Self, pool.Vm) - case *VirtualApp: - pool.Vm = RemoveReference(vm.Self, pool.Vm) - } - - for i := range vm.Datastore { - ds := Map.Get(vm.Datastore[i]).(*Datastore) - ds.Vm = RemoveReference(vm.Self, ds.Vm) - } - - r.Res = new(types.UnregisterVMResponse) - - return r -} - -func (vm *VirtualMachine) CloneVMTask(req *types.CloneVM_Task) soap.HasFault { - task := CreateTask(vm, "cloneVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { - folder := Map.Get(req.Folder).(*Folder) - - config := types.VirtualMachineConfigSpec{ - Name: req.Name, - GuestId: vm.Config.GuestId, - Files: &types.VirtualMachineFileInfo{ - VmPathName: strings.Replace(vm.Config.Files.VmPathName, vm.Name, req.Name, -1), - }, - } - - res := folder.CreateVMTask(&types.CreateVM_Task{ - This: folder.Self, - Config: config, - Pool: *vm.ResourcePool, - }) - - ctask := Map.Get(res.(*methods.CreateVM_TaskBody).Res.Returnval).(*Task) - if ctask.Info.Error != nil { - return nil, ctask.Info.Error.Fault - } - - return ctask.Info.Result.(types.ManagedObjectReference), nil - }) - - task.Run() - - return &methods.CloneVM_TaskBody{ - Res: &types.CloneVM_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (vm *VirtualMachine) RelocateVMTask(req *types.RelocateVM_Task) soap.HasFault { - task := CreateTask(vm, "relocateVm", func(t *Task) (types.AnyType, types.BaseMethodFault) { - if ref := req.Spec.Datastore; ref != nil { - ds := Map.Get(*ref).(*Datastore) - ds.Vm = RemoveReference(*ref, ds.Vm) - - vm.Datastore = []types.ManagedObjectReference{*ref} - - // TODO: migrate vm.Config.Files (and vm.Summary.Config.VmPathName) - } - - if ref := req.Spec.Pool; ref != nil { - pool := Map.Get(*ref).(*ResourcePool) - pool.Vm = RemoveReference(*ref, pool.Vm) - - vm.ResourcePool = ref - } - - if ref := req.Spec.Host; ref != nil { - host := Map.Get(*ref).(*HostSystem) - host.Vm = RemoveReference(*ref, host.Vm) - - vm.Runtime.Host = ref - } - - return nil, nil - }) - - task.Run() - - return &methods.RelocateVM_TaskBody{ - Res: &types.RelocateVM_TaskResponse{ - Returnval: task.Self, - }, - } -} - -func (vm *VirtualMachine) ShutdownGuest(c *types.ShutdownGuest) soap.HasFault { - r := &methods.ShutdownGuestBody{} - // should be poweron - if vm.Runtime.PowerState == types.VirtualMachinePowerStatePoweredOff { - r.Fault_ = Fault("", &types.InvalidPowerState{ - RequestedState: types.VirtualMachinePowerStatePoweredOn, - ExistingState: vm.Runtime.PowerState, - }) - - return r - } - // change state - vm.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff - vm.Summary.Runtime.PowerState = types.VirtualMachinePowerStatePoweredOff - - r.Res = new(types.ShutdownGuestResponse) - - return r -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go deleted file mode 100644 index ca98ec73..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 vpx contains SOAP responses from a vCenter server, captured using `govc ... -debug`. -*/ -package vpx diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go deleted file mode 100644 index a1cce0d8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/root_folder.go +++ /dev/null @@ -1,64 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 vpx - -import ( - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -var RootFolder = mo.Folder{ - ManagedEntity: mo.ManagedEntity{ - ExtensibleManagedObject: mo.ExtensibleManagedObject{ - Self: types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, - Value: nil, - AvailableField: nil, - }, - Parent: (*types.ManagedObjectReference)(nil), - CustomValue: nil, - OverallStatus: "green", - ConfigStatus: "green", - ConfigIssue: nil, - EffectiveRole: []int32{-1}, - Permission: []types.Permission{ - { - DynamicData: types.DynamicData{}, - Entity: &types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, - Principal: "VSPHERE.LOCAL\\Administrator", - Group: false, - RoleId: -1, - Propagate: true, - }, - { - DynamicData: types.DynamicData{}, - Entity: &types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, - Principal: "VSPHERE.LOCAL\\Administrators", - Group: true, - RoleId: -1, - Propagate: true, - }, - }, - Name: "Datacenters", - DisabledMethod: nil, - RecentTask: nil, - DeclaredAlarmState: nil, - AlarmActionsEnabled: (*bool)(nil), - Tag: nil, - }, - ChildType: []string{"Folder", "Datacenter"}, - ChildEntity: nil, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go deleted file mode 100644 index 1c570f80..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/service_content.go +++ /dev/null @@ -1,79 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 vpx - -import "github.com/vmware/govmomi/vim25/types" - -var ServiceContent = types.ServiceContent{ - DynamicData: types.DynamicData{}, - RootFolder: types.ManagedObjectReference{Type: "Folder", Value: "group-d1"}, - PropertyCollector: types.ManagedObjectReference{Type: "PropertyCollector", Value: "propertyCollector"}, - ViewManager: &types.ManagedObjectReference{Type: "ViewManager", Value: "ViewManager"}, - About: types.AboutInfo{ - DynamicData: types.DynamicData{}, - Name: "VMware vCenter Server", - FullName: "VMware vCenter Server 6.0.0 build-3634794", - Vendor: "VMware, Inc.", - Version: "6.0.0", - Build: "3634794", - LocaleVersion: "INTL", - LocaleBuild: "000", - OsType: "linux-x64", - ProductLineId: "vpx", - ApiType: "VirtualCenter", - ApiVersion: "6.0", - InstanceUuid: "8e7597d6-f720-4b5c-b9fc-3412faf07d99", - LicenseProductName: "VMware VirtualCenter Server", - LicenseProductVersion: "6.0", - }, - Setting: &types.ManagedObjectReference{Type: "OptionManager", Value: "VpxSettings"}, - UserDirectory: &types.ManagedObjectReference{Type: "UserDirectory", Value: "UserDirectory"}, - SessionManager: &types.ManagedObjectReference{Type: "SessionManager", Value: "SessionManager"}, - AuthorizationManager: &types.ManagedObjectReference{Type: "AuthorizationManager", Value: "AuthorizationManager"}, - ServiceManager: &types.ManagedObjectReference{Type: "ServiceManager", Value: "ServiceMgr"}, - PerfManager: &types.ManagedObjectReference{Type: "PerformanceManager", Value: "PerfMgr"}, - ScheduledTaskManager: &types.ManagedObjectReference{Type: "ScheduledTaskManager", Value: "ScheduledTaskManager"}, - AlarmManager: &types.ManagedObjectReference{Type: "AlarmManager", Value: "AlarmManager"}, - EventManager: &types.ManagedObjectReference{Type: "EventManager", Value: "EventManager"}, - TaskManager: &types.ManagedObjectReference{Type: "TaskManager", Value: "TaskManager"}, - ExtensionManager: &types.ManagedObjectReference{Type: "ExtensionManager", Value: "ExtensionManager"}, - CustomizationSpecManager: &types.ManagedObjectReference{Type: "CustomizationSpecManager", Value: "CustomizationSpecManager"}, - CustomFieldsManager: &types.ManagedObjectReference{Type: "CustomFieldsManager", Value: "CustomFieldsManager"}, - AccountManager: (*types.ManagedObjectReference)(nil), - DiagnosticManager: &types.ManagedObjectReference{Type: "DiagnosticManager", Value: "DiagMgr"}, - LicenseManager: &types.ManagedObjectReference{Type: "LicenseManager", Value: "LicenseManager"}, - SearchIndex: &types.ManagedObjectReference{Type: "SearchIndex", Value: "SearchIndex"}, - FileManager: &types.ManagedObjectReference{Type: "FileManager", Value: "FileManager"}, - DatastoreNamespaceManager: &types.ManagedObjectReference{Type: "DatastoreNamespaceManager", Value: "DatastoreNamespaceManager"}, - VirtualDiskManager: &types.ManagedObjectReference{Type: "VirtualDiskManager", Value: "virtualDiskManager"}, - VirtualizationManager: (*types.ManagedObjectReference)(nil), - SnmpSystem: &types.ManagedObjectReference{Type: "HostSnmpSystem", Value: "SnmpSystem"}, - VmProvisioningChecker: &types.ManagedObjectReference{Type: "VirtualMachineProvisioningChecker", Value: "ProvChecker"}, - VmCompatibilityChecker: &types.ManagedObjectReference{Type: "VirtualMachineCompatibilityChecker", Value: "CompatChecker"}, - OvfManager: &types.ManagedObjectReference{Type: "OvfManager", Value: "OvfManager"}, - IpPoolManager: &types.ManagedObjectReference{Type: "IpPoolManager", Value: "IpPoolManager"}, - DvSwitchManager: &types.ManagedObjectReference{Type: "DistributedVirtualSwitchManager", Value: "DVSManager"}, - HostProfileManager: &types.ManagedObjectReference{Type: "HostProfileManager", Value: "HostProfileManager"}, - ClusterProfileManager: &types.ManagedObjectReference{Type: "ClusterProfileManager", Value: "ClusterProfileManager"}, - ComplianceManager: &types.ManagedObjectReference{Type: "ProfileComplianceManager", Value: "MoComplianceManager"}, - LocalizationManager: &types.ManagedObjectReference{Type: "LocalizationManager", Value: "LocalizationManager"}, - StorageResourceManager: &types.ManagedObjectReference{Type: "StorageResourceManager", Value: "StorageResourceManager"}, - GuestOperationsManager: &types.ManagedObjectReference{Type: "GuestOperationsManager", Value: "guestOperationsManager"}, - OverheadMemoryManager: &types.ManagedObjectReference{Type: "OverheadMemoryManager", Value: "OverheadMemoryManger"}, - CertificateManager: &types.ManagedObjectReference{Type: "CertificateManager", Value: "certificateManager"}, - IoFilterManager: &types.ManagedObjectReference{Type: "IoFilterManager", Value: "IoFilterManager"}, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go deleted file mode 100644 index dfbb28b7..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/simulator/vpx/setting.go +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 vpx - -import "github.com/vmware/govmomi/vim25/types" - -// Setting is captured from VC's ServiceContent.OptionManager.setting -var Setting = []types.BaseOptionValue{ - // This list is currently pruned to include sso options only with sso.enabled set to false - &types.OptionValue{ - Key: "config.vpxd.sso.sts.uri", - Value: "https://127.0.0.1/sts/STSService/vsphere.local", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.solutionUser.privateKey", - Value: "/etc/vmware-vpx/ssl/vcsoluser.key", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.solutionUser.name", - Value: "vpxd-b643d01c-928f-469b-96a5-d571d762a78e@vsphere.local", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.solutionUser.certificate", - Value: "/etc/vmware-vpx/ssl/vcsoluser.crt", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.groupcheck.uri", - Value: "https://127.0.0.1/sso-adminserver/sdk/vsphere.local", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.enabled", - Value: "false", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.default.isGroup", - Value: "false", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.default.admin", - Value: "Administrator@vsphere.local", - }, - &types.OptionValue{ - Key: "config.vpxd.sso.admin.uri", - Value: "https://127.0.0.1/sso-adminserver/sdk/vsphere.local", - }, -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/task/error.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/task/error.go deleted file mode 100644 index 5f6b8503..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/task/error.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 task - -import "github.com/vmware/govmomi/vim25/types" - -type Error struct { - *types.LocalizedMethodFault -} - -// Error returns the task's localized fault message. -func (e Error) Error() string { - return e.LocalizedMethodFault.LocalizedMessage -} - -func (e Error) Fault() types.BaseMethodFault { - return e.LocalizedMethodFault.Fault -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/task/wait.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/task/wait.go deleted file mode 100644 index 19fee538..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/task/wait.go +++ /dev/null @@ -1,132 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 task - -import ( - "context" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25/progress" - "github.com/vmware/govmomi/vim25/types" -) - -type taskProgress struct { - info *types.TaskInfo -} - -func (t taskProgress) Percentage() float32 { - return float32(t.info.Progress) -} - -func (t taskProgress) Detail() string { - return "" -} - -func (t taskProgress) Error() error { - if t.info.Error != nil { - return Error{t.info.Error} - } - - return nil -} - -type taskCallback struct { - ch chan<- progress.Report - info *types.TaskInfo - err error -} - -func (t *taskCallback) fn(pc []types.PropertyChange) bool { - for _, c := range pc { - if c.Name != "info" { - continue - } - - if c.Op != types.PropertyChangeOpAssign { - continue - } - - if c.Val == nil { - continue - } - - ti := c.Val.(types.TaskInfo) - t.info = &ti - } - - // t.info could be nil if pc can't satify the rules above - if t.info == nil { - return false - } - - pr := taskProgress{t.info} - - // Store copy of error, so Wait() can return it as well. - t.err = pr.Error() - - switch t.info.State { - case types.TaskInfoStateQueued, types.TaskInfoStateRunning: - if t.ch != nil { - // Don't care if this is dropped - select { - case t.ch <- pr: - default: - } - } - return false - case types.TaskInfoStateSuccess, types.TaskInfoStateError: - if t.ch != nil { - // Last one must always be delivered - t.ch <- pr - } - return true - default: - panic("unknown state: " + t.info.State) - } -} - -// Wait waits for a task to finish with either success or failure. It does so -// by waiting for the "info" property of task managed object to change. The -// function returns when it finds the task in the "success" or "error" state. -// In the former case, the return value is nil. In the latter case the return -// value is an instance of this package's Error struct. -// -// Any error returned while waiting for property changes causes the function to -// return immediately and propagate the error. -// -// If the progress.Sinker argument is specified, any progress updates for the -// task are sent here. The completion percentage is passed through directly. -// The detail for the progress update is set to an empty string. If the task -// finishes in the error state, the error instance is passed through as well. -// Note that this error is the same error that is returned by this function. -// -func Wait(ctx context.Context, ref types.ManagedObjectReference, pc *property.Collector, s progress.Sinker) (*types.TaskInfo, error) { - cb := &taskCallback{} - - // Include progress sink if specified - if s != nil { - cb.ch = s.Sink() - defer close(cb.ch) - } - - err := property.Wait(ctx, pc, ref, []string{"info"}, cb.fn) - if err != nil { - return nil, err - } - - return cb.info, cb.err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/container_view.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/container_view.go deleted file mode 100644 index 0e3268b8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/container_view.go +++ /dev/null @@ -1,130 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 view - -import ( - "context" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" -) - -type ContainerView struct { - ManagedObjectView -} - -func NewContainerView(c *vim25.Client, ref types.ManagedObjectReference) *ContainerView { - return &ContainerView{ - ManagedObjectView: *NewManagedObjectView(c, ref), - } -} - -// Retrieve populates dst as property.Collector.Retrieve does, for all entities in the view of types specified by kind. -func (v ContainerView) Retrieve(ctx context.Context, kind []string, ps []string, dst interface{}) error { - pc := property.DefaultCollector(v.Client()) - - ospec := types.ObjectSpec{ - Obj: v.Reference(), - Skip: types.NewBool(true), - SelectSet: []types.BaseSelectionSpec{ - &types.TraversalSpec{ - Type: v.Reference().Type, - Path: "view", - }, - }, - } - - var pspec []types.PropertySpec - - if len(kind) == 0 { - kind = []string{"ManagedEntity"} - } - - for _, t := range kind { - spec := types.PropertySpec{ - Type: t, - } - - if len(ps) == 0 { - spec.All = types.NewBool(true) - } else { - spec.PathSet = ps - } - - pspec = append(pspec, spec) - } - - req := types.RetrieveProperties{ - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ospec}, - PropSet: pspec, - }, - }, - } - - res, err := pc.RetrieveProperties(ctx, req) - if err != nil { - return err - } - - if d, ok := dst.(*[]types.ObjectContent); ok { - *d = res.Returnval - return nil - } - - return mo.LoadRetrievePropertiesResponse(res, dst) -} - -// RetrieveWithFilter populates dst as Retrieve does, but only for entities matching the given filter. -func (v ContainerView) RetrieveWithFilter(ctx context.Context, kind []string, ps []string, dst interface{}, filter property.Filter) error { - if len(filter) == 0 { - return v.Retrieve(ctx, kind, ps, dst) - } - - var content []types.ObjectContent - - err := v.Retrieve(ctx, kind, filter.Keys(), &content) - if err != nil { - return err - } - - objs := filter.MatchObjectContent(content) - - pc := property.DefaultCollector(v.Client()) - - return pc.Retrieve(ctx, objs, ps, dst) -} - -// Find returns object references for entities of type kind, matching the given filter. -func (v ContainerView) Find(ctx context.Context, kind []string, filter property.Filter) ([]types.ManagedObjectReference, error) { - if len(filter) == 0 { - // Ensure we have at least 1 filter to avoid retrieving all properties. - filter = property.Filter{"name": "*"} - } - - var content []types.ObjectContent - - err := v.Retrieve(ctx, kind, filter.Keys(), &content) - if err != nil { - return nil, err - } - - return filter.MatchObjectContent(content), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/list_view.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/list_view.go deleted file mode 100644 index e8cfb504..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/list_view.go +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright (c) 2015-2017 VMware, 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 view - -import ( - "context" - - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type ListView struct { - ManagedObjectView -} - -func NewListView(c *vim25.Client, ref types.ManagedObjectReference) *ListView { - return &ListView{ - ManagedObjectView: *NewManagedObjectView(c, ref), - } -} - -func (v ListView) Add(ctx context.Context, refs []types.ManagedObjectReference) error { - req := types.ModifyListView{ - This: v.Reference(), - Add: refs, - } - _, err := methods.ModifyListView(ctx, v.Client(), &req) - return err -} - -func (v ListView) Remove(ctx context.Context, refs []types.ManagedObjectReference) error { - req := types.ModifyListView{ - This: v.Reference(), - Remove: refs, - } - _, err := methods.ModifyListView(ctx, v.Client(), &req) - return err -} - -func (v ListView) Reset(ctx context.Context, refs []types.ManagedObjectReference) error { - req := types.ResetListView{ - This: v.Reference(), - Obj: refs, - } - _, err := methods.ResetListView(ctx, v.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/managed_object_view.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/managed_object_view.go deleted file mode 100644 index 805c8643..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/managed_object_view.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 view - -import ( - "context" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type ManagedObjectView struct { - object.Common -} - -func NewManagedObjectView(c *vim25.Client, ref types.ManagedObjectReference) *ManagedObjectView { - return &ManagedObjectView{ - Common: object.NewCommon(c, ref), - } -} - -func (v *ManagedObjectView) TraversalSpec() *types.TraversalSpec { - return &types.TraversalSpec{ - Path: "view", - Type: v.Reference().Type, - } -} - -func (v *ManagedObjectView) Destroy(ctx context.Context) error { - req := types.DestroyView{ - This: v.Reference(), - } - - _, err := methods.DestroyView(ctx, v.Client(), &req) - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/manager.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/manager.go deleted file mode 100644 index d44def0c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/manager.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 view - -import ( - "context" - - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/types" -) - -type Manager struct { - object.Common -} - -func NewManager(c *vim25.Client) *Manager { - m := Manager{ - object.NewCommon(c, *c.ServiceContent.ViewManager), - } - - return &m -} - -func (m Manager) CreateListView(ctx context.Context, objects []types.ManagedObjectReference) (*ListView, error) { - req := types.CreateListView{ - This: m.Common.Reference(), - Obj: objects, - } - - res, err := methods.CreateListView(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return NewListView(m.Client(), res.Returnval), nil -} - -func (m Manager) CreateContainerView(ctx context.Context, container types.ManagedObjectReference, managedObjectTypes []string, recursive bool) (*ContainerView, error) { - - req := types.CreateContainerView{ - This: m.Common.Reference(), - Container: container, - Recursive: recursive, - Type: managedObjectTypes, - } - - res, err := methods.CreateContainerView(ctx, m.Client(), &req) - if err != nil { - return nil, err - } - - return NewContainerView(m.Client(), res.Returnval), nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/task_view.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/task_view.go deleted file mode 100644 index 68f62f8d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/view/task_view.go +++ /dev/null @@ -1,125 +0,0 @@ -/* -Copyright (c) 2017 VMware, 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 view - -import ( - "context" - - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25/types" -) - -// TaskView extends ListView such that it can follow a ManagedEntity's recentTask updates. -type TaskView struct { - *ListView - - Follow bool - - Watch *types.ManagedObjectReference -} - -// CreateTaskView creates a new ListView that optionally watches for a ManagedEntity's recentTask updates. -func (m Manager) CreateTaskView(ctx context.Context, watch *types.ManagedObjectReference) (*TaskView, error) { - l, err := m.CreateListView(ctx, nil) - if err != nil { - return nil, err - } - - tv := &TaskView{ - ListView: l, - Watch: watch, - } - - return tv, nil -} - -// Collect calls function f for each Task update. -func (v TaskView) Collect(ctx context.Context, f func([]types.TaskInfo)) error { - // Using TaskHistoryCollector would be less clunky, but it isn't supported on ESX at all. - ref := v.Reference() - filter := new(property.WaitFilter).Add(ref, "Task", []string{"info"}, v.TraversalSpec()) - - if v.Watch != nil { - filter.Add(*v.Watch, v.Watch.Type, []string{"recentTask"}) - } - - pc := property.DefaultCollector(v.Client()) - - completed := make(map[string]bool) - - return property.WaitForUpdates(ctx, pc, filter, func(updates []types.ObjectUpdate) bool { - var infos []types.TaskInfo - var prune []types.ManagedObjectReference - var tasks []types.ManagedObjectReference - var reset func() - - for _, update := range updates { - for _, change := range update.ChangeSet { - if change.Name == "recentTask" { - tasks = change.Val.(types.ArrayOfManagedObjectReference).ManagedObjectReference - if len(tasks) != 0 { - reset = func() { - _ = v.Reset(ctx, tasks) - - // Remember any tasks we've reported as complete already, - // to avoid reporting multiple times when Reset is triggered. - rtasks := make(map[string]bool) - for i := range tasks { - if _, ok := completed[tasks[i].Value]; ok { - rtasks[tasks[i].Value] = true - } - } - completed = rtasks - } - } - - continue - } - - info, ok := change.Val.(types.TaskInfo) - if !ok { - continue - } - - if !completed[info.Task.Value] { - infos = append(infos, info) - } - - if v.Follow && info.CompleteTime != nil { - prune = append(prune, info.Task) - completed[info.Task.Value] = true - } - } - } - - if len(infos) != 0 { - f(infos) - } - - if reset != nil { - reset() - } else if len(prune) != 0 { - _ = v.Remove(ctx, prune) - } - - if len(tasks) != 0 && len(infos) == 0 { - return false - } - - return !v.Follow - }) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/client.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/client.go deleted file mode 100644 index 1289f33e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/client.go +++ /dev/null @@ -1,123 +0,0 @@ -/* -Copyright (c) 2015-2016 VMware, 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 vim25 - -import ( - "context" - "encoding/json" - - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -// Client is a tiny wrapper around the vim25/soap Client that stores session -// specific state (i.e. state that only needs to be retrieved once after the -// client has been created). This means the client can be reused after -// serialization without performing additional requests for initialization. -type Client struct { - *soap.Client - - ServiceContent types.ServiceContent - - // RoundTripper is a separate field such that the client's implementation of - // the RoundTripper interface can be wrapped by separate implementations for - // extra functionality (for example, reauthentication on session timeout). - RoundTripper soap.RoundTripper -} - -// NewClient creates and returns a new client wirh the ServiceContent field -// filled in. -func NewClient(ctx context.Context, rt soap.RoundTripper) (*Client, error) { - serviceContent, err := methods.GetServiceContent(ctx, rt) - if err != nil { - return nil, err - } - - c := Client{ - ServiceContent: serviceContent, - RoundTripper: rt, - } - - // Set client if it happens to be a soap.Client - if sc, ok := rt.(*soap.Client); ok { - c.Client = sc - } - - return &c, nil -} - -// RoundTrip dispatches to the RoundTripper field. -func (c *Client) RoundTrip(ctx context.Context, req, res soap.HasFault) error { - return c.RoundTripper.RoundTrip(ctx, req, res) -} - -type marshaledClient struct { - SoapClient *soap.Client - ServiceContent types.ServiceContent -} - -func (c *Client) MarshalJSON() ([]byte, error) { - m := marshaledClient{ - SoapClient: c.Client, - ServiceContent: c.ServiceContent, - } - - return json.Marshal(m) -} - -func (c *Client) UnmarshalJSON(b []byte) error { - var m marshaledClient - - err := json.Unmarshal(b, &m) - if err != nil { - return err - } - - *c = Client{ - Client: m.SoapClient, - ServiceContent: m.ServiceContent, - RoundTripper: m.SoapClient, - } - - return nil -} - -// Valid returns whether or not the client is valid and ready for use. -// This should be called after unmarshalling the client. -func (c *Client) Valid() bool { - if c == nil { - return false - } - - if c.Client == nil { - return false - } - - // Use arbitrary pointer field in the service content. - // Doesn't matter which one, as long as it is populated by default. - if c.ServiceContent.SessionManager == nil { - return false - } - - return true -} - -// IsVC returns true if we are connected to a vCenter -func (c *Client) IsVC() bool { - return c.ServiceContent.About.ApiType == "VirtualCenter" -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/debug/debug.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/debug/debug.go deleted file mode 100644 index 22d54717..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/debug/debug.go +++ /dev/null @@ -1,81 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 debug - -import ( - "io" - "os" - "path" -) - -// Provider specified the interface types must implement to be used as a -// debugging sink. Having multiple such sink implementations allows it to be -// changed externally (for example when running tests). -type Provider interface { - NewFile(s string) io.WriteCloser - Flush() -} - -var currentProvider Provider = nil - -func SetProvider(p Provider) { - if currentProvider != nil { - currentProvider.Flush() - } - currentProvider = p -} - -// Enabled returns whether debugging is enabled or not. -func Enabled() bool { - return currentProvider != nil -} - -// NewFile dispatches to the current provider's NewFile function. -func NewFile(s string) io.WriteCloser { - return currentProvider.NewFile(s) -} - -// Flush dispatches to the current provider's Flush function. -func Flush() { - currentProvider.Flush() -} - -// FileProvider implements a debugging provider that creates a real file for -// every call to NewFile. It maintains a list of all files that it creates, -// such that it can close them when its Flush function is called. -type FileProvider struct { - Path string - - files []*os.File -} - -func (fp *FileProvider) NewFile(p string) io.WriteCloser { - f, err := os.Create(path.Join(fp.Path, p)) - if err != nil { - panic(err) - } - - fp.files = append(fp.files, f) - - return f -} - -func (fp *FileProvider) Flush() { - for _, f := range fp.files { - f.Close() - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/doc.go deleted file mode 100644 index acb2c9f6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/doc.go +++ /dev/null @@ -1,29 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 vim25 provides a minimal client implementation to use with other -packages in the vim25 tree. The code in this package intentionally does not -take any dependendies outside the vim25 tree. - -The client implementation in this package embeds the soap.Client structure. -Additionally, it stores the value of the session's ServiceContent object. This -object stores references to a variety of subsystems, such as the root property -collector, the session manager, and the search index. The client is fully -functional after serialization and deserialization, without the need for -additional requests for initialization. -*/ -package vim25 diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/internal.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/internal.go deleted file mode 100644 index a79adf3a..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/internal.go +++ /dev/null @@ -1,124 +0,0 @@ -/* -Copyright (c) 2014-2015 VMware, 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 methods - -import ( - "context" - - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type RetrieveDynamicTypeManagerBody struct { - Req *types.RetrieveDynamicTypeManager `xml:"urn:vim25 RetrieveDynamicTypeManager"` - Res *types.RetrieveDynamicTypeManagerResponse `xml:"urn:vim25 RetrieveDynamicTypeManagerResponse"` - Fault_ *soap.Fault -} - -func (b *RetrieveDynamicTypeManagerBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveDynamicTypeManager(ctx context.Context, r soap.RoundTripper, req *types.RetrieveDynamicTypeManager) (*types.RetrieveDynamicTypeManagerResponse, error) { - var reqBody, resBody RetrieveDynamicTypeManagerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveManagedMethodExecuterBody struct { - Req *types.RetrieveManagedMethodExecuter `xml:"urn:vim25 RetrieveManagedMethodExecuter"` - Res *types.RetrieveManagedMethodExecuterResponse `xml:"urn:vim25 RetrieveManagedMethodExecuterResponse"` - Fault_ *soap.Fault -} - -func (b *RetrieveManagedMethodExecuterBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveManagedMethodExecuter(ctx context.Context, r soap.RoundTripper, req *types.RetrieveManagedMethodExecuter) (*types.RetrieveManagedMethodExecuterResponse, error) { - var reqBody, resBody RetrieveManagedMethodExecuterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DynamicTypeMgrQueryMoInstancesBody struct { - Req *types.DynamicTypeMgrQueryMoInstances `xml:"urn:vim25 DynamicTypeMgrQueryMoInstances"` - Res *types.DynamicTypeMgrQueryMoInstancesResponse `xml:"urn:vim25 DynamicTypeMgrQueryMoInstancesResponse"` - Fault_ *soap.Fault -} - -func (b *DynamicTypeMgrQueryMoInstancesBody) Fault() *soap.Fault { return b.Fault_ } - -func DynamicTypeMgrQueryMoInstances(ctx context.Context, r soap.RoundTripper, req *types.DynamicTypeMgrQueryMoInstances) (*types.DynamicTypeMgrQueryMoInstancesResponse, error) { - var reqBody, resBody DynamicTypeMgrQueryMoInstancesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DynamicTypeMgrQueryTypeInfoBody struct { - Req *types.DynamicTypeMgrQueryTypeInfo `xml:"urn:vim25 DynamicTypeMgrQueryTypeInfo"` - Res *types.DynamicTypeMgrQueryTypeInfoResponse `xml:"urn:vim25 DynamicTypeMgrQueryTypeInfoResponse"` - Fault_ *soap.Fault -} - -func (b *DynamicTypeMgrQueryTypeInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func DynamicTypeMgrQueryTypeInfo(ctx context.Context, r soap.RoundTripper, req *types.DynamicTypeMgrQueryTypeInfo) (*types.DynamicTypeMgrQueryTypeInfoResponse, error) { - var reqBody, resBody DynamicTypeMgrQueryTypeInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExecuteSoapBody struct { - Req *types.ExecuteSoap `xml:"urn:vim25 ExecuteSoap"` - Res *types.ExecuteSoapResponse `xml:"urn:vim25 ExecuteSoapResponse"` - Fault_ *soap.Fault -} - -func (b *ExecuteSoapBody) Fault() *soap.Fault { return b.Fault_ } - -func ExecuteSoap(ctx context.Context, r soap.RoundTripper, req *types.ExecuteSoap) (*types.ExecuteSoapResponse, error) { - var reqBody, resBody ExecuteSoapBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/methods.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/methods.go deleted file mode 100644 index 0895a81c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/methods.go +++ /dev/null @@ -1,16144 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 methods - -import ( - "context" - - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -type AbdicateDomOwnershipBody struct { - Req *types.AbdicateDomOwnership `xml:"urn:vim25 AbdicateDomOwnership,omitempty"` - Res *types.AbdicateDomOwnershipResponse `xml:"urn:vim25 AbdicateDomOwnershipResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AbdicateDomOwnershipBody) Fault() *soap.Fault { return b.Fault_ } - -func AbdicateDomOwnership(ctx context.Context, r soap.RoundTripper, req *types.AbdicateDomOwnership) (*types.AbdicateDomOwnershipResponse, error) { - var reqBody, resBody AbdicateDomOwnershipBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcknowledgeAlarmBody struct { - Req *types.AcknowledgeAlarm `xml:"urn:vim25 AcknowledgeAlarm,omitempty"` - Res *types.AcknowledgeAlarmResponse `xml:"urn:vim25 AcknowledgeAlarmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcknowledgeAlarmBody) Fault() *soap.Fault { return b.Fault_ } - -func AcknowledgeAlarm(ctx context.Context, r soap.RoundTripper, req *types.AcknowledgeAlarm) (*types.AcknowledgeAlarmResponse, error) { - var reqBody, resBody AcknowledgeAlarmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcquireCimServicesTicketBody struct { - Req *types.AcquireCimServicesTicket `xml:"urn:vim25 AcquireCimServicesTicket,omitempty"` - Res *types.AcquireCimServicesTicketResponse `xml:"urn:vim25 AcquireCimServicesTicketResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcquireCimServicesTicketBody) Fault() *soap.Fault { return b.Fault_ } - -func AcquireCimServicesTicket(ctx context.Context, r soap.RoundTripper, req *types.AcquireCimServicesTicket) (*types.AcquireCimServicesTicketResponse, error) { - var reqBody, resBody AcquireCimServicesTicketBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcquireCloneTicketBody struct { - Req *types.AcquireCloneTicket `xml:"urn:vim25 AcquireCloneTicket,omitempty"` - Res *types.AcquireCloneTicketResponse `xml:"urn:vim25 AcquireCloneTicketResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcquireCloneTicketBody) Fault() *soap.Fault { return b.Fault_ } - -func AcquireCloneTicket(ctx context.Context, r soap.RoundTripper, req *types.AcquireCloneTicket) (*types.AcquireCloneTicketResponse, error) { - var reqBody, resBody AcquireCloneTicketBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcquireCredentialsInGuestBody struct { - Req *types.AcquireCredentialsInGuest `xml:"urn:vim25 AcquireCredentialsInGuest,omitempty"` - Res *types.AcquireCredentialsInGuestResponse `xml:"urn:vim25 AcquireCredentialsInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcquireCredentialsInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func AcquireCredentialsInGuest(ctx context.Context, r soap.RoundTripper, req *types.AcquireCredentialsInGuest) (*types.AcquireCredentialsInGuestResponse, error) { - var reqBody, resBody AcquireCredentialsInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcquireGenericServiceTicketBody struct { - Req *types.AcquireGenericServiceTicket `xml:"urn:vim25 AcquireGenericServiceTicket,omitempty"` - Res *types.AcquireGenericServiceTicketResponse `xml:"urn:vim25 AcquireGenericServiceTicketResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcquireGenericServiceTicketBody) Fault() *soap.Fault { return b.Fault_ } - -func AcquireGenericServiceTicket(ctx context.Context, r soap.RoundTripper, req *types.AcquireGenericServiceTicket) (*types.AcquireGenericServiceTicketResponse, error) { - var reqBody, resBody AcquireGenericServiceTicketBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcquireLocalTicketBody struct { - Req *types.AcquireLocalTicket `xml:"urn:vim25 AcquireLocalTicket,omitempty"` - Res *types.AcquireLocalTicketResponse `xml:"urn:vim25 AcquireLocalTicketResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcquireLocalTicketBody) Fault() *soap.Fault { return b.Fault_ } - -func AcquireLocalTicket(ctx context.Context, r soap.RoundTripper, req *types.AcquireLocalTicket) (*types.AcquireLocalTicketResponse, error) { - var reqBody, resBody AcquireLocalTicketBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcquireMksTicketBody struct { - Req *types.AcquireMksTicket `xml:"urn:vim25 AcquireMksTicket,omitempty"` - Res *types.AcquireMksTicketResponse `xml:"urn:vim25 AcquireMksTicketResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcquireMksTicketBody) Fault() *soap.Fault { return b.Fault_ } - -func AcquireMksTicket(ctx context.Context, r soap.RoundTripper, req *types.AcquireMksTicket) (*types.AcquireMksTicketResponse, error) { - var reqBody, resBody AcquireMksTicketBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AcquireTicketBody struct { - Req *types.AcquireTicket `xml:"urn:vim25 AcquireTicket,omitempty"` - Res *types.AcquireTicketResponse `xml:"urn:vim25 AcquireTicketResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AcquireTicketBody) Fault() *soap.Fault { return b.Fault_ } - -func AcquireTicket(ctx context.Context, r soap.RoundTripper, req *types.AcquireTicket) (*types.AcquireTicketResponse, error) { - var reqBody, resBody AcquireTicketBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddAuthorizationRoleBody struct { - Req *types.AddAuthorizationRole `xml:"urn:vim25 AddAuthorizationRole,omitempty"` - Res *types.AddAuthorizationRoleResponse `xml:"urn:vim25 AddAuthorizationRoleResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddAuthorizationRoleBody) Fault() *soap.Fault { return b.Fault_ } - -func AddAuthorizationRole(ctx context.Context, r soap.RoundTripper, req *types.AddAuthorizationRole) (*types.AddAuthorizationRoleResponse, error) { - var reqBody, resBody AddAuthorizationRoleBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddCustomFieldDefBody struct { - Req *types.AddCustomFieldDef `xml:"urn:vim25 AddCustomFieldDef,omitempty"` - Res *types.AddCustomFieldDefResponse `xml:"urn:vim25 AddCustomFieldDefResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddCustomFieldDefBody) Fault() *soap.Fault { return b.Fault_ } - -func AddCustomFieldDef(ctx context.Context, r soap.RoundTripper, req *types.AddCustomFieldDef) (*types.AddCustomFieldDefResponse, error) { - var reqBody, resBody AddCustomFieldDefBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddDVPortgroup_TaskBody struct { - Req *types.AddDVPortgroup_Task `xml:"urn:vim25 AddDVPortgroup_Task,omitempty"` - Res *types.AddDVPortgroup_TaskResponse `xml:"urn:vim25 AddDVPortgroup_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddDVPortgroup_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func AddDVPortgroup_Task(ctx context.Context, r soap.RoundTripper, req *types.AddDVPortgroup_Task) (*types.AddDVPortgroup_TaskResponse, error) { - var reqBody, resBody AddDVPortgroup_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddDisks_TaskBody struct { - Req *types.AddDisks_Task `xml:"urn:vim25 AddDisks_Task,omitempty"` - Res *types.AddDisks_TaskResponse `xml:"urn:vim25 AddDisks_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddDisks_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func AddDisks_Task(ctx context.Context, r soap.RoundTripper, req *types.AddDisks_Task) (*types.AddDisks_TaskResponse, error) { - var reqBody, resBody AddDisks_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddFilterBody struct { - Req *types.AddFilter `xml:"urn:vim25 AddFilter,omitempty"` - Res *types.AddFilterResponse `xml:"urn:vim25 AddFilterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddFilterBody) Fault() *soap.Fault { return b.Fault_ } - -func AddFilter(ctx context.Context, r soap.RoundTripper, req *types.AddFilter) (*types.AddFilterResponse, error) { - var reqBody, resBody AddFilterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddFilterEntitiesBody struct { - Req *types.AddFilterEntities `xml:"urn:vim25 AddFilterEntities,omitempty"` - Res *types.AddFilterEntitiesResponse `xml:"urn:vim25 AddFilterEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddFilterEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func AddFilterEntities(ctx context.Context, r soap.RoundTripper, req *types.AddFilterEntities) (*types.AddFilterEntitiesResponse, error) { - var reqBody, resBody AddFilterEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddGuestAliasBody struct { - Req *types.AddGuestAlias `xml:"urn:vim25 AddGuestAlias,omitempty"` - Res *types.AddGuestAliasResponse `xml:"urn:vim25 AddGuestAliasResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddGuestAliasBody) Fault() *soap.Fault { return b.Fault_ } - -func AddGuestAlias(ctx context.Context, r soap.RoundTripper, req *types.AddGuestAlias) (*types.AddGuestAliasResponse, error) { - var reqBody, resBody AddGuestAliasBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddHost_TaskBody struct { - Req *types.AddHost_Task `xml:"urn:vim25 AddHost_Task,omitempty"` - Res *types.AddHost_TaskResponse `xml:"urn:vim25 AddHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func AddHost_Task(ctx context.Context, r soap.RoundTripper, req *types.AddHost_Task) (*types.AddHost_TaskResponse, error) { - var reqBody, resBody AddHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddInternetScsiSendTargetsBody struct { - Req *types.AddInternetScsiSendTargets `xml:"urn:vim25 AddInternetScsiSendTargets,omitempty"` - Res *types.AddInternetScsiSendTargetsResponse `xml:"urn:vim25 AddInternetScsiSendTargetsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddInternetScsiSendTargetsBody) Fault() *soap.Fault { return b.Fault_ } - -func AddInternetScsiSendTargets(ctx context.Context, r soap.RoundTripper, req *types.AddInternetScsiSendTargets) (*types.AddInternetScsiSendTargetsResponse, error) { - var reqBody, resBody AddInternetScsiSendTargetsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddInternetScsiStaticTargetsBody struct { - Req *types.AddInternetScsiStaticTargets `xml:"urn:vim25 AddInternetScsiStaticTargets,omitempty"` - Res *types.AddInternetScsiStaticTargetsResponse `xml:"urn:vim25 AddInternetScsiStaticTargetsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddInternetScsiStaticTargetsBody) Fault() *soap.Fault { return b.Fault_ } - -func AddInternetScsiStaticTargets(ctx context.Context, r soap.RoundTripper, req *types.AddInternetScsiStaticTargets) (*types.AddInternetScsiStaticTargetsResponse, error) { - var reqBody, resBody AddInternetScsiStaticTargetsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddKeyBody struct { - Req *types.AddKey `xml:"urn:vim25 AddKey,omitempty"` - Res *types.AddKeyResponse `xml:"urn:vim25 AddKeyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddKeyBody) Fault() *soap.Fault { return b.Fault_ } - -func AddKey(ctx context.Context, r soap.RoundTripper, req *types.AddKey) (*types.AddKeyResponse, error) { - var reqBody, resBody AddKeyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddKeysBody struct { - Req *types.AddKeys `xml:"urn:vim25 AddKeys,omitempty"` - Res *types.AddKeysResponse `xml:"urn:vim25 AddKeysResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddKeysBody) Fault() *soap.Fault { return b.Fault_ } - -func AddKeys(ctx context.Context, r soap.RoundTripper, req *types.AddKeys) (*types.AddKeysResponse, error) { - var reqBody, resBody AddKeysBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddLicenseBody struct { - Req *types.AddLicense `xml:"urn:vim25 AddLicense,omitempty"` - Res *types.AddLicenseResponse `xml:"urn:vim25 AddLicenseResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddLicenseBody) Fault() *soap.Fault { return b.Fault_ } - -func AddLicense(ctx context.Context, r soap.RoundTripper, req *types.AddLicense) (*types.AddLicenseResponse, error) { - var reqBody, resBody AddLicenseBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddMonitoredEntitiesBody struct { - Req *types.AddMonitoredEntities `xml:"urn:vim25 AddMonitoredEntities,omitempty"` - Res *types.AddMonitoredEntitiesResponse `xml:"urn:vim25 AddMonitoredEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddMonitoredEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func AddMonitoredEntities(ctx context.Context, r soap.RoundTripper, req *types.AddMonitoredEntities) (*types.AddMonitoredEntitiesResponse, error) { - var reqBody, resBody AddMonitoredEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddNetworkResourcePoolBody struct { - Req *types.AddNetworkResourcePool `xml:"urn:vim25 AddNetworkResourcePool,omitempty"` - Res *types.AddNetworkResourcePoolResponse `xml:"urn:vim25 AddNetworkResourcePoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddNetworkResourcePoolBody) Fault() *soap.Fault { return b.Fault_ } - -func AddNetworkResourcePool(ctx context.Context, r soap.RoundTripper, req *types.AddNetworkResourcePool) (*types.AddNetworkResourcePoolResponse, error) { - var reqBody, resBody AddNetworkResourcePoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddPortGroupBody struct { - Req *types.AddPortGroup `xml:"urn:vim25 AddPortGroup,omitempty"` - Res *types.AddPortGroupResponse `xml:"urn:vim25 AddPortGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddPortGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func AddPortGroup(ctx context.Context, r soap.RoundTripper, req *types.AddPortGroup) (*types.AddPortGroupResponse, error) { - var reqBody, resBody AddPortGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddServiceConsoleVirtualNicBody struct { - Req *types.AddServiceConsoleVirtualNic `xml:"urn:vim25 AddServiceConsoleVirtualNic,omitempty"` - Res *types.AddServiceConsoleVirtualNicResponse `xml:"urn:vim25 AddServiceConsoleVirtualNicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddServiceConsoleVirtualNicBody) Fault() *soap.Fault { return b.Fault_ } - -func AddServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.AddServiceConsoleVirtualNic) (*types.AddServiceConsoleVirtualNicResponse, error) { - var reqBody, resBody AddServiceConsoleVirtualNicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddStandaloneHost_TaskBody struct { - Req *types.AddStandaloneHost_Task `xml:"urn:vim25 AddStandaloneHost_Task,omitempty"` - Res *types.AddStandaloneHost_TaskResponse `xml:"urn:vim25 AddStandaloneHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddStandaloneHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func AddStandaloneHost_Task(ctx context.Context, r soap.RoundTripper, req *types.AddStandaloneHost_Task) (*types.AddStandaloneHost_TaskResponse, error) { - var reqBody, resBody AddStandaloneHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddVirtualNicBody struct { - Req *types.AddVirtualNic `xml:"urn:vim25 AddVirtualNic,omitempty"` - Res *types.AddVirtualNicResponse `xml:"urn:vim25 AddVirtualNicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddVirtualNicBody) Fault() *soap.Fault { return b.Fault_ } - -func AddVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.AddVirtualNic) (*types.AddVirtualNicResponse, error) { - var reqBody, resBody AddVirtualNicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AddVirtualSwitchBody struct { - Req *types.AddVirtualSwitch `xml:"urn:vim25 AddVirtualSwitch,omitempty"` - Res *types.AddVirtualSwitchResponse `xml:"urn:vim25 AddVirtualSwitchResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AddVirtualSwitchBody) Fault() *soap.Fault { return b.Fault_ } - -func AddVirtualSwitch(ctx context.Context, r soap.RoundTripper, req *types.AddVirtualSwitch) (*types.AddVirtualSwitchResponse, error) { - var reqBody, resBody AddVirtualSwitchBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AllocateIpv4AddressBody struct { - Req *types.AllocateIpv4Address `xml:"urn:vim25 AllocateIpv4Address,omitempty"` - Res *types.AllocateIpv4AddressResponse `xml:"urn:vim25 AllocateIpv4AddressResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AllocateIpv4AddressBody) Fault() *soap.Fault { return b.Fault_ } - -func AllocateIpv4Address(ctx context.Context, r soap.RoundTripper, req *types.AllocateIpv4Address) (*types.AllocateIpv4AddressResponse, error) { - var reqBody, resBody AllocateIpv4AddressBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AllocateIpv6AddressBody struct { - Req *types.AllocateIpv6Address `xml:"urn:vim25 AllocateIpv6Address,omitempty"` - Res *types.AllocateIpv6AddressResponse `xml:"urn:vim25 AllocateIpv6AddressResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AllocateIpv6AddressBody) Fault() *soap.Fault { return b.Fault_ } - -func AllocateIpv6Address(ctx context.Context, r soap.RoundTripper, req *types.AllocateIpv6Address) (*types.AllocateIpv6AddressResponse, error) { - var reqBody, resBody AllocateIpv6AddressBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AnswerVMBody struct { - Req *types.AnswerVM `xml:"urn:vim25 AnswerVM,omitempty"` - Res *types.AnswerVMResponse `xml:"urn:vim25 AnswerVMResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AnswerVMBody) Fault() *soap.Fault { return b.Fault_ } - -func AnswerVM(ctx context.Context, r soap.RoundTripper, req *types.AnswerVM) (*types.AnswerVMResponse, error) { - var reqBody, resBody AnswerVMBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ApplyEntitiesConfig_TaskBody struct { - Req *types.ApplyEntitiesConfig_Task `xml:"urn:vim25 ApplyEntitiesConfig_Task,omitempty"` - Res *types.ApplyEntitiesConfig_TaskResponse `xml:"urn:vim25 ApplyEntitiesConfig_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ApplyEntitiesConfig_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ApplyEntitiesConfig_Task(ctx context.Context, r soap.RoundTripper, req *types.ApplyEntitiesConfig_Task) (*types.ApplyEntitiesConfig_TaskResponse, error) { - var reqBody, resBody ApplyEntitiesConfig_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ApplyHostConfig_TaskBody struct { - Req *types.ApplyHostConfig_Task `xml:"urn:vim25 ApplyHostConfig_Task,omitempty"` - Res *types.ApplyHostConfig_TaskResponse `xml:"urn:vim25 ApplyHostConfig_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ApplyHostConfig_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ApplyHostConfig_Task(ctx context.Context, r soap.RoundTripper, req *types.ApplyHostConfig_Task) (*types.ApplyHostConfig_TaskResponse, error) { - var reqBody, resBody ApplyHostConfig_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ApplyRecommendationBody struct { - Req *types.ApplyRecommendation `xml:"urn:vim25 ApplyRecommendation,omitempty"` - Res *types.ApplyRecommendationResponse `xml:"urn:vim25 ApplyRecommendationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ApplyRecommendationBody) Fault() *soap.Fault { return b.Fault_ } - -func ApplyRecommendation(ctx context.Context, r soap.RoundTripper, req *types.ApplyRecommendation) (*types.ApplyRecommendationResponse, error) { - var reqBody, resBody ApplyRecommendationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ApplyStorageDrsRecommendationToPod_TaskBody struct { - Req *types.ApplyStorageDrsRecommendationToPod_Task `xml:"urn:vim25 ApplyStorageDrsRecommendationToPod_Task,omitempty"` - Res *types.ApplyStorageDrsRecommendationToPod_TaskResponse `xml:"urn:vim25 ApplyStorageDrsRecommendationToPod_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ApplyStorageDrsRecommendationToPod_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ApplyStorageDrsRecommendationToPod_Task(ctx context.Context, r soap.RoundTripper, req *types.ApplyStorageDrsRecommendationToPod_Task) (*types.ApplyStorageDrsRecommendationToPod_TaskResponse, error) { - var reqBody, resBody ApplyStorageDrsRecommendationToPod_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ApplyStorageDrsRecommendation_TaskBody struct { - Req *types.ApplyStorageDrsRecommendation_Task `xml:"urn:vim25 ApplyStorageDrsRecommendation_Task,omitempty"` - Res *types.ApplyStorageDrsRecommendation_TaskResponse `xml:"urn:vim25 ApplyStorageDrsRecommendation_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ApplyStorageDrsRecommendation_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ApplyStorageDrsRecommendation_Task(ctx context.Context, r soap.RoundTripper, req *types.ApplyStorageDrsRecommendation_Task) (*types.ApplyStorageDrsRecommendation_TaskResponse, error) { - var reqBody, resBody ApplyStorageDrsRecommendation_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AreAlarmActionsEnabledBody struct { - Req *types.AreAlarmActionsEnabled `xml:"urn:vim25 AreAlarmActionsEnabled,omitempty"` - Res *types.AreAlarmActionsEnabledResponse `xml:"urn:vim25 AreAlarmActionsEnabledResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AreAlarmActionsEnabledBody) Fault() *soap.Fault { return b.Fault_ } - -func AreAlarmActionsEnabled(ctx context.Context, r soap.RoundTripper, req *types.AreAlarmActionsEnabled) (*types.AreAlarmActionsEnabledResponse, error) { - var reqBody, resBody AreAlarmActionsEnabledBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AssignUserToGroupBody struct { - Req *types.AssignUserToGroup `xml:"urn:vim25 AssignUserToGroup,omitempty"` - Res *types.AssignUserToGroupResponse `xml:"urn:vim25 AssignUserToGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AssignUserToGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func AssignUserToGroup(ctx context.Context, r soap.RoundTripper, req *types.AssignUserToGroup) (*types.AssignUserToGroupResponse, error) { - var reqBody, resBody AssignUserToGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AssociateProfileBody struct { - Req *types.AssociateProfile `xml:"urn:vim25 AssociateProfile,omitempty"` - Res *types.AssociateProfileResponse `xml:"urn:vim25 AssociateProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AssociateProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func AssociateProfile(ctx context.Context, r soap.RoundTripper, req *types.AssociateProfile) (*types.AssociateProfileResponse, error) { - var reqBody, resBody AssociateProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AttachDisk_TaskBody struct { - Req *types.AttachDisk_Task `xml:"urn:vim25 AttachDisk_Task,omitempty"` - Res *types.AttachDisk_TaskResponse `xml:"urn:vim25 AttachDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AttachDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func AttachDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.AttachDisk_Task) (*types.AttachDisk_TaskResponse, error) { - var reqBody, resBody AttachDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AttachScsiLunBody struct { - Req *types.AttachScsiLun `xml:"urn:vim25 AttachScsiLun,omitempty"` - Res *types.AttachScsiLunResponse `xml:"urn:vim25 AttachScsiLunResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AttachScsiLunBody) Fault() *soap.Fault { return b.Fault_ } - -func AttachScsiLun(ctx context.Context, r soap.RoundTripper, req *types.AttachScsiLun) (*types.AttachScsiLunResponse, error) { - var reqBody, resBody AttachScsiLunBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AttachScsiLunEx_TaskBody struct { - Req *types.AttachScsiLunEx_Task `xml:"urn:vim25 AttachScsiLunEx_Task,omitempty"` - Res *types.AttachScsiLunEx_TaskResponse `xml:"urn:vim25 AttachScsiLunEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AttachScsiLunEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func AttachScsiLunEx_Task(ctx context.Context, r soap.RoundTripper, req *types.AttachScsiLunEx_Task) (*types.AttachScsiLunEx_TaskResponse, error) { - var reqBody, resBody AttachScsiLunEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AttachTagToVStorageObjectBody struct { - Req *types.AttachTagToVStorageObject `xml:"urn:vim25 AttachTagToVStorageObject,omitempty"` - Res *types.AttachTagToVStorageObjectResponse `xml:"urn:vim25 AttachTagToVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AttachTagToVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func AttachTagToVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.AttachTagToVStorageObject) (*types.AttachTagToVStorageObjectResponse, error) { - var reqBody, resBody AttachTagToVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AttachVmfsExtentBody struct { - Req *types.AttachVmfsExtent `xml:"urn:vim25 AttachVmfsExtent,omitempty"` - Res *types.AttachVmfsExtentResponse `xml:"urn:vim25 AttachVmfsExtentResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AttachVmfsExtentBody) Fault() *soap.Fault { return b.Fault_ } - -func AttachVmfsExtent(ctx context.Context, r soap.RoundTripper, req *types.AttachVmfsExtent) (*types.AttachVmfsExtentResponse, error) { - var reqBody, resBody AttachVmfsExtentBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AutoStartPowerOffBody struct { - Req *types.AutoStartPowerOff `xml:"urn:vim25 AutoStartPowerOff,omitempty"` - Res *types.AutoStartPowerOffResponse `xml:"urn:vim25 AutoStartPowerOffResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AutoStartPowerOffBody) Fault() *soap.Fault { return b.Fault_ } - -func AutoStartPowerOff(ctx context.Context, r soap.RoundTripper, req *types.AutoStartPowerOff) (*types.AutoStartPowerOffResponse, error) { - var reqBody, resBody AutoStartPowerOffBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type AutoStartPowerOnBody struct { - Req *types.AutoStartPowerOn `xml:"urn:vim25 AutoStartPowerOn,omitempty"` - Res *types.AutoStartPowerOnResponse `xml:"urn:vim25 AutoStartPowerOnResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *AutoStartPowerOnBody) Fault() *soap.Fault { return b.Fault_ } - -func AutoStartPowerOn(ctx context.Context, r soap.RoundTripper, req *types.AutoStartPowerOn) (*types.AutoStartPowerOnResponse, error) { - var reqBody, resBody AutoStartPowerOnBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type BackupFirmwareConfigurationBody struct { - Req *types.BackupFirmwareConfiguration `xml:"urn:vim25 BackupFirmwareConfiguration,omitempty"` - Res *types.BackupFirmwareConfigurationResponse `xml:"urn:vim25 BackupFirmwareConfigurationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *BackupFirmwareConfigurationBody) Fault() *soap.Fault { return b.Fault_ } - -func BackupFirmwareConfiguration(ctx context.Context, r soap.RoundTripper, req *types.BackupFirmwareConfiguration) (*types.BackupFirmwareConfigurationResponse, error) { - var reqBody, resBody BackupFirmwareConfigurationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type BindVnicBody struct { - Req *types.BindVnic `xml:"urn:vim25 BindVnic,omitempty"` - Res *types.BindVnicResponse `xml:"urn:vim25 BindVnicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *BindVnicBody) Fault() *soap.Fault { return b.Fault_ } - -func BindVnic(ctx context.Context, r soap.RoundTripper, req *types.BindVnic) (*types.BindVnicResponse, error) { - var reqBody, resBody BindVnicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type BrowseDiagnosticLogBody struct { - Req *types.BrowseDiagnosticLog `xml:"urn:vim25 BrowseDiagnosticLog,omitempty"` - Res *types.BrowseDiagnosticLogResponse `xml:"urn:vim25 BrowseDiagnosticLogResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *BrowseDiagnosticLogBody) Fault() *soap.Fault { return b.Fault_ } - -func BrowseDiagnosticLog(ctx context.Context, r soap.RoundTripper, req *types.BrowseDiagnosticLog) (*types.BrowseDiagnosticLogResponse, error) { - var reqBody, resBody BrowseDiagnosticLogBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CanProvisionObjectsBody struct { - Req *types.CanProvisionObjects `xml:"urn:vim25 CanProvisionObjects,omitempty"` - Res *types.CanProvisionObjectsResponse `xml:"urn:vim25 CanProvisionObjectsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CanProvisionObjectsBody) Fault() *soap.Fault { return b.Fault_ } - -func CanProvisionObjects(ctx context.Context, r soap.RoundTripper, req *types.CanProvisionObjects) (*types.CanProvisionObjectsResponse, error) { - var reqBody, resBody CanProvisionObjectsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CancelRecommendationBody struct { - Req *types.CancelRecommendation `xml:"urn:vim25 CancelRecommendation,omitempty"` - Res *types.CancelRecommendationResponse `xml:"urn:vim25 CancelRecommendationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CancelRecommendationBody) Fault() *soap.Fault { return b.Fault_ } - -func CancelRecommendation(ctx context.Context, r soap.RoundTripper, req *types.CancelRecommendation) (*types.CancelRecommendationResponse, error) { - var reqBody, resBody CancelRecommendationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CancelRetrievePropertiesExBody struct { - Req *types.CancelRetrievePropertiesEx `xml:"urn:vim25 CancelRetrievePropertiesEx,omitempty"` - Res *types.CancelRetrievePropertiesExResponse `xml:"urn:vim25 CancelRetrievePropertiesExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CancelRetrievePropertiesExBody) Fault() *soap.Fault { return b.Fault_ } - -func CancelRetrievePropertiesEx(ctx context.Context, r soap.RoundTripper, req *types.CancelRetrievePropertiesEx) (*types.CancelRetrievePropertiesExResponse, error) { - var reqBody, resBody CancelRetrievePropertiesExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CancelStorageDrsRecommendationBody struct { - Req *types.CancelStorageDrsRecommendation `xml:"urn:vim25 CancelStorageDrsRecommendation,omitempty"` - Res *types.CancelStorageDrsRecommendationResponse `xml:"urn:vim25 CancelStorageDrsRecommendationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CancelStorageDrsRecommendationBody) Fault() *soap.Fault { return b.Fault_ } - -func CancelStorageDrsRecommendation(ctx context.Context, r soap.RoundTripper, req *types.CancelStorageDrsRecommendation) (*types.CancelStorageDrsRecommendationResponse, error) { - var reqBody, resBody CancelStorageDrsRecommendationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CancelTaskBody struct { - Req *types.CancelTask `xml:"urn:vim25 CancelTask,omitempty"` - Res *types.CancelTaskResponse `xml:"urn:vim25 CancelTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CancelTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CancelTask(ctx context.Context, r soap.RoundTripper, req *types.CancelTask) (*types.CancelTaskResponse, error) { - var reqBody, resBody CancelTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CancelWaitForUpdatesBody struct { - Req *types.CancelWaitForUpdates `xml:"urn:vim25 CancelWaitForUpdates,omitempty"` - Res *types.CancelWaitForUpdatesResponse `xml:"urn:vim25 CancelWaitForUpdatesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CancelWaitForUpdatesBody) Fault() *soap.Fault { return b.Fault_ } - -func CancelWaitForUpdates(ctx context.Context, r soap.RoundTripper, req *types.CancelWaitForUpdates) (*types.CancelWaitForUpdatesResponse, error) { - var reqBody, resBody CancelWaitForUpdatesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CertMgrRefreshCACertificatesAndCRLs_TaskBody struct { - Req *types.CertMgrRefreshCACertificatesAndCRLs_Task `xml:"urn:vim25 CertMgrRefreshCACertificatesAndCRLs_Task,omitempty"` - Res *types.CertMgrRefreshCACertificatesAndCRLs_TaskResponse `xml:"urn:vim25 CertMgrRefreshCACertificatesAndCRLs_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CertMgrRefreshCACertificatesAndCRLs_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CertMgrRefreshCACertificatesAndCRLs_Task(ctx context.Context, r soap.RoundTripper, req *types.CertMgrRefreshCACertificatesAndCRLs_Task) (*types.CertMgrRefreshCACertificatesAndCRLs_TaskResponse, error) { - var reqBody, resBody CertMgrRefreshCACertificatesAndCRLs_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CertMgrRefreshCertificates_TaskBody struct { - Req *types.CertMgrRefreshCertificates_Task `xml:"urn:vim25 CertMgrRefreshCertificates_Task,omitempty"` - Res *types.CertMgrRefreshCertificates_TaskResponse `xml:"urn:vim25 CertMgrRefreshCertificates_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CertMgrRefreshCertificates_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CertMgrRefreshCertificates_Task(ctx context.Context, r soap.RoundTripper, req *types.CertMgrRefreshCertificates_Task) (*types.CertMgrRefreshCertificates_TaskResponse, error) { - var reqBody, resBody CertMgrRefreshCertificates_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CertMgrRevokeCertificates_TaskBody struct { - Req *types.CertMgrRevokeCertificates_Task `xml:"urn:vim25 CertMgrRevokeCertificates_Task,omitempty"` - Res *types.CertMgrRevokeCertificates_TaskResponse `xml:"urn:vim25 CertMgrRevokeCertificates_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CertMgrRevokeCertificates_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CertMgrRevokeCertificates_Task(ctx context.Context, r soap.RoundTripper, req *types.CertMgrRevokeCertificates_Task) (*types.CertMgrRevokeCertificates_TaskResponse, error) { - var reqBody, resBody CertMgrRevokeCertificates_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ChangeAccessModeBody struct { - Req *types.ChangeAccessMode `xml:"urn:vim25 ChangeAccessMode,omitempty"` - Res *types.ChangeAccessModeResponse `xml:"urn:vim25 ChangeAccessModeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ChangeAccessModeBody) Fault() *soap.Fault { return b.Fault_ } - -func ChangeAccessMode(ctx context.Context, r soap.RoundTripper, req *types.ChangeAccessMode) (*types.ChangeAccessModeResponse, error) { - var reqBody, resBody ChangeAccessModeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ChangeFileAttributesInGuestBody struct { - Req *types.ChangeFileAttributesInGuest `xml:"urn:vim25 ChangeFileAttributesInGuest,omitempty"` - Res *types.ChangeFileAttributesInGuestResponse `xml:"urn:vim25 ChangeFileAttributesInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ChangeFileAttributesInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ChangeFileAttributesInGuest(ctx context.Context, r soap.RoundTripper, req *types.ChangeFileAttributesInGuest) (*types.ChangeFileAttributesInGuestResponse, error) { - var reqBody, resBody ChangeFileAttributesInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ChangeLockdownModeBody struct { - Req *types.ChangeLockdownMode `xml:"urn:vim25 ChangeLockdownMode,omitempty"` - Res *types.ChangeLockdownModeResponse `xml:"urn:vim25 ChangeLockdownModeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ChangeLockdownModeBody) Fault() *soap.Fault { return b.Fault_ } - -func ChangeLockdownMode(ctx context.Context, r soap.RoundTripper, req *types.ChangeLockdownMode) (*types.ChangeLockdownModeResponse, error) { - var reqBody, resBody ChangeLockdownModeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ChangeNFSUserPasswordBody struct { - Req *types.ChangeNFSUserPassword `xml:"urn:vim25 ChangeNFSUserPassword,omitempty"` - Res *types.ChangeNFSUserPasswordResponse `xml:"urn:vim25 ChangeNFSUserPasswordResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ChangeNFSUserPasswordBody) Fault() *soap.Fault { return b.Fault_ } - -func ChangeNFSUserPassword(ctx context.Context, r soap.RoundTripper, req *types.ChangeNFSUserPassword) (*types.ChangeNFSUserPasswordResponse, error) { - var reqBody, resBody ChangeNFSUserPasswordBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ChangeOwnerBody struct { - Req *types.ChangeOwner `xml:"urn:vim25 ChangeOwner,omitempty"` - Res *types.ChangeOwnerResponse `xml:"urn:vim25 ChangeOwnerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ChangeOwnerBody) Fault() *soap.Fault { return b.Fault_ } - -func ChangeOwner(ctx context.Context, r soap.RoundTripper, req *types.ChangeOwner) (*types.ChangeOwnerResponse, error) { - var reqBody, resBody ChangeOwnerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckAddHostEvc_TaskBody struct { - Req *types.CheckAddHostEvc_Task `xml:"urn:vim25 CheckAddHostEvc_Task,omitempty"` - Res *types.CheckAddHostEvc_TaskResponse `xml:"urn:vim25 CheckAddHostEvc_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckAddHostEvc_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckAddHostEvc_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckAddHostEvc_Task) (*types.CheckAddHostEvc_TaskResponse, error) { - var reqBody, resBody CheckAddHostEvc_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckAnswerFileStatus_TaskBody struct { - Req *types.CheckAnswerFileStatus_Task `xml:"urn:vim25 CheckAnswerFileStatus_Task,omitempty"` - Res *types.CheckAnswerFileStatus_TaskResponse `xml:"urn:vim25 CheckAnswerFileStatus_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckAnswerFileStatus_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckAnswerFileStatus_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckAnswerFileStatus_Task) (*types.CheckAnswerFileStatus_TaskResponse, error) { - var reqBody, resBody CheckAnswerFileStatus_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckCompatibility_TaskBody struct { - Req *types.CheckCompatibility_Task `xml:"urn:vim25 CheckCompatibility_Task,omitempty"` - Res *types.CheckCompatibility_TaskResponse `xml:"urn:vim25 CheckCompatibility_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckCompatibility_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckCompatibility_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckCompatibility_Task) (*types.CheckCompatibility_TaskResponse, error) { - var reqBody, resBody CheckCompatibility_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckCompliance_TaskBody struct { - Req *types.CheckCompliance_Task `xml:"urn:vim25 CheckCompliance_Task,omitempty"` - Res *types.CheckCompliance_TaskResponse `xml:"urn:vim25 CheckCompliance_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckCompliance_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckCompliance_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckCompliance_Task) (*types.CheckCompliance_TaskResponse, error) { - var reqBody, resBody CheckCompliance_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckConfigureEvcMode_TaskBody struct { - Req *types.CheckConfigureEvcMode_Task `xml:"urn:vim25 CheckConfigureEvcMode_Task,omitempty"` - Res *types.CheckConfigureEvcMode_TaskResponse `xml:"urn:vim25 CheckConfigureEvcMode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckConfigureEvcMode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckConfigureEvcMode_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckConfigureEvcMode_Task) (*types.CheckConfigureEvcMode_TaskResponse, error) { - var reqBody, resBody CheckConfigureEvcMode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckCustomizationResourcesBody struct { - Req *types.CheckCustomizationResources `xml:"urn:vim25 CheckCustomizationResources,omitempty"` - Res *types.CheckCustomizationResourcesResponse `xml:"urn:vim25 CheckCustomizationResourcesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckCustomizationResourcesBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckCustomizationResources(ctx context.Context, r soap.RoundTripper, req *types.CheckCustomizationResources) (*types.CheckCustomizationResourcesResponse, error) { - var reqBody, resBody CheckCustomizationResourcesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckCustomizationSpecBody struct { - Req *types.CheckCustomizationSpec `xml:"urn:vim25 CheckCustomizationSpec,omitempty"` - Res *types.CheckCustomizationSpecResponse `xml:"urn:vim25 CheckCustomizationSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckCustomizationSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.CheckCustomizationSpec) (*types.CheckCustomizationSpecResponse, error) { - var reqBody, resBody CheckCustomizationSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckForUpdatesBody struct { - Req *types.CheckForUpdates `xml:"urn:vim25 CheckForUpdates,omitempty"` - Res *types.CheckForUpdatesResponse `xml:"urn:vim25 CheckForUpdatesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckForUpdatesBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckForUpdates(ctx context.Context, r soap.RoundTripper, req *types.CheckForUpdates) (*types.CheckForUpdatesResponse, error) { - var reqBody, resBody CheckForUpdatesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckHostPatch_TaskBody struct { - Req *types.CheckHostPatch_Task `xml:"urn:vim25 CheckHostPatch_Task,omitempty"` - Res *types.CheckHostPatch_TaskResponse `xml:"urn:vim25 CheckHostPatch_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckHostPatch_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckHostPatch_Task) (*types.CheckHostPatch_TaskResponse, error) { - var reqBody, resBody CheckHostPatch_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckLicenseFeatureBody struct { - Req *types.CheckLicenseFeature `xml:"urn:vim25 CheckLicenseFeature,omitempty"` - Res *types.CheckLicenseFeatureResponse `xml:"urn:vim25 CheckLicenseFeatureResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckLicenseFeatureBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckLicenseFeature(ctx context.Context, r soap.RoundTripper, req *types.CheckLicenseFeature) (*types.CheckLicenseFeatureResponse, error) { - var reqBody, resBody CheckLicenseFeatureBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckMigrate_TaskBody struct { - Req *types.CheckMigrate_Task `xml:"urn:vim25 CheckMigrate_Task,omitempty"` - Res *types.CheckMigrate_TaskResponse `xml:"urn:vim25 CheckMigrate_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckMigrate_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckMigrate_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckMigrate_Task) (*types.CheckMigrate_TaskResponse, error) { - var reqBody, resBody CheckMigrate_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckProfileCompliance_TaskBody struct { - Req *types.CheckProfileCompliance_Task `xml:"urn:vim25 CheckProfileCompliance_Task,omitempty"` - Res *types.CheckProfileCompliance_TaskResponse `xml:"urn:vim25 CheckProfileCompliance_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckProfileCompliance_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckProfileCompliance_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckProfileCompliance_Task) (*types.CheckProfileCompliance_TaskResponse, error) { - var reqBody, resBody CheckProfileCompliance_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CheckRelocate_TaskBody struct { - Req *types.CheckRelocate_Task `xml:"urn:vim25 CheckRelocate_Task,omitempty"` - Res *types.CheckRelocate_TaskResponse `xml:"urn:vim25 CheckRelocate_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CheckRelocate_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CheckRelocate_Task(ctx context.Context, r soap.RoundTripper, req *types.CheckRelocate_Task) (*types.CheckRelocate_TaskResponse, error) { - var reqBody, resBody CheckRelocate_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ClearComplianceStatusBody struct { - Req *types.ClearComplianceStatus `xml:"urn:vim25 ClearComplianceStatus,omitempty"` - Res *types.ClearComplianceStatusResponse `xml:"urn:vim25 ClearComplianceStatusResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ClearComplianceStatusBody) Fault() *soap.Fault { return b.Fault_ } - -func ClearComplianceStatus(ctx context.Context, r soap.RoundTripper, req *types.ClearComplianceStatus) (*types.ClearComplianceStatusResponse, error) { - var reqBody, resBody ClearComplianceStatusBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ClearNFSUserBody struct { - Req *types.ClearNFSUser `xml:"urn:vim25 ClearNFSUser,omitempty"` - Res *types.ClearNFSUserResponse `xml:"urn:vim25 ClearNFSUserResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ClearNFSUserBody) Fault() *soap.Fault { return b.Fault_ } - -func ClearNFSUser(ctx context.Context, r soap.RoundTripper, req *types.ClearNFSUser) (*types.ClearNFSUserResponse, error) { - var reqBody, resBody ClearNFSUserBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ClearSystemEventLogBody struct { - Req *types.ClearSystemEventLog `xml:"urn:vim25 ClearSystemEventLog,omitempty"` - Res *types.ClearSystemEventLogResponse `xml:"urn:vim25 ClearSystemEventLogResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ClearSystemEventLogBody) Fault() *soap.Fault { return b.Fault_ } - -func ClearSystemEventLog(ctx context.Context, r soap.RoundTripper, req *types.ClearSystemEventLog) (*types.ClearSystemEventLogResponse, error) { - var reqBody, resBody ClearSystemEventLogBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CloneSessionBody struct { - Req *types.CloneSession `xml:"urn:vim25 CloneSession,omitempty"` - Res *types.CloneSessionResponse `xml:"urn:vim25 CloneSessionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CloneSessionBody) Fault() *soap.Fault { return b.Fault_ } - -func CloneSession(ctx context.Context, r soap.RoundTripper, req *types.CloneSession) (*types.CloneSessionResponse, error) { - var reqBody, resBody CloneSessionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CloneVApp_TaskBody struct { - Req *types.CloneVApp_Task `xml:"urn:vim25 CloneVApp_Task,omitempty"` - Res *types.CloneVApp_TaskResponse `xml:"urn:vim25 CloneVApp_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CloneVApp_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CloneVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.CloneVApp_Task) (*types.CloneVApp_TaskResponse, error) { - var reqBody, resBody CloneVApp_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CloneVM_TaskBody struct { - Req *types.CloneVM_Task `xml:"urn:vim25 CloneVM_Task,omitempty"` - Res *types.CloneVM_TaskResponse `xml:"urn:vim25 CloneVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CloneVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CloneVM_Task(ctx context.Context, r soap.RoundTripper, req *types.CloneVM_Task) (*types.CloneVM_TaskResponse, error) { - var reqBody, resBody CloneVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CloneVStorageObject_TaskBody struct { - Req *types.CloneVStorageObject_Task `xml:"urn:vim25 CloneVStorageObject_Task,omitempty"` - Res *types.CloneVStorageObject_TaskResponse `xml:"urn:vim25 CloneVStorageObject_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CloneVStorageObject_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CloneVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *types.CloneVStorageObject_Task) (*types.CloneVStorageObject_TaskResponse, error) { - var reqBody, resBody CloneVStorageObject_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CloseInventoryViewFolderBody struct { - Req *types.CloseInventoryViewFolder `xml:"urn:vim25 CloseInventoryViewFolder,omitempty"` - Res *types.CloseInventoryViewFolderResponse `xml:"urn:vim25 CloseInventoryViewFolderResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CloseInventoryViewFolderBody) Fault() *soap.Fault { return b.Fault_ } - -func CloseInventoryViewFolder(ctx context.Context, r soap.RoundTripper, req *types.CloseInventoryViewFolder) (*types.CloseInventoryViewFolderResponse, error) { - var reqBody, resBody CloseInventoryViewFolderBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ClusterEnterMaintenanceModeBody struct { - Req *types.ClusterEnterMaintenanceMode `xml:"urn:vim25 ClusterEnterMaintenanceMode,omitempty"` - Res *types.ClusterEnterMaintenanceModeResponse `xml:"urn:vim25 ClusterEnterMaintenanceModeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ClusterEnterMaintenanceModeBody) Fault() *soap.Fault { return b.Fault_ } - -func ClusterEnterMaintenanceMode(ctx context.Context, r soap.RoundTripper, req *types.ClusterEnterMaintenanceMode) (*types.ClusterEnterMaintenanceModeResponse, error) { - var reqBody, resBody ClusterEnterMaintenanceModeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ComputeDiskPartitionInfoBody struct { - Req *types.ComputeDiskPartitionInfo `xml:"urn:vim25 ComputeDiskPartitionInfo,omitempty"` - Res *types.ComputeDiskPartitionInfoResponse `xml:"urn:vim25 ComputeDiskPartitionInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ComputeDiskPartitionInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func ComputeDiskPartitionInfo(ctx context.Context, r soap.RoundTripper, req *types.ComputeDiskPartitionInfo) (*types.ComputeDiskPartitionInfoResponse, error) { - var reqBody, resBody ComputeDiskPartitionInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ComputeDiskPartitionInfoForResizeBody struct { - Req *types.ComputeDiskPartitionInfoForResize `xml:"urn:vim25 ComputeDiskPartitionInfoForResize,omitempty"` - Res *types.ComputeDiskPartitionInfoForResizeResponse `xml:"urn:vim25 ComputeDiskPartitionInfoForResizeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ComputeDiskPartitionInfoForResizeBody) Fault() *soap.Fault { return b.Fault_ } - -func ComputeDiskPartitionInfoForResize(ctx context.Context, r soap.RoundTripper, req *types.ComputeDiskPartitionInfoForResize) (*types.ComputeDiskPartitionInfoForResizeResponse, error) { - var reqBody, resBody ComputeDiskPartitionInfoForResizeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureCryptoKeyBody struct { - Req *types.ConfigureCryptoKey `xml:"urn:vim25 ConfigureCryptoKey,omitempty"` - Res *types.ConfigureCryptoKeyResponse `xml:"urn:vim25 ConfigureCryptoKeyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureCryptoKeyBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureCryptoKey(ctx context.Context, r soap.RoundTripper, req *types.ConfigureCryptoKey) (*types.ConfigureCryptoKeyResponse, error) { - var reqBody, resBody ConfigureCryptoKeyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureDatastoreIORM_TaskBody struct { - Req *types.ConfigureDatastoreIORM_Task `xml:"urn:vim25 ConfigureDatastoreIORM_Task,omitempty"` - Res *types.ConfigureDatastoreIORM_TaskResponse `xml:"urn:vim25 ConfigureDatastoreIORM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureDatastoreIORM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureDatastoreIORM_Task(ctx context.Context, r soap.RoundTripper, req *types.ConfigureDatastoreIORM_Task) (*types.ConfigureDatastoreIORM_TaskResponse, error) { - var reqBody, resBody ConfigureDatastoreIORM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureDatastorePrincipalBody struct { - Req *types.ConfigureDatastorePrincipal `xml:"urn:vim25 ConfigureDatastorePrincipal,omitempty"` - Res *types.ConfigureDatastorePrincipalResponse `xml:"urn:vim25 ConfigureDatastorePrincipalResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureDatastorePrincipalBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureDatastorePrincipal(ctx context.Context, r soap.RoundTripper, req *types.ConfigureDatastorePrincipal) (*types.ConfigureDatastorePrincipalResponse, error) { - var reqBody, resBody ConfigureDatastorePrincipalBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureEvcMode_TaskBody struct { - Req *types.ConfigureEvcMode_Task `xml:"urn:vim25 ConfigureEvcMode_Task,omitempty"` - Res *types.ConfigureEvcMode_TaskResponse `xml:"urn:vim25 ConfigureEvcMode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureEvcMode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureEvcMode_Task(ctx context.Context, r soap.RoundTripper, req *types.ConfigureEvcMode_Task) (*types.ConfigureEvcMode_TaskResponse, error) { - var reqBody, resBody ConfigureEvcMode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureHostCache_TaskBody struct { - Req *types.ConfigureHostCache_Task `xml:"urn:vim25 ConfigureHostCache_Task,omitempty"` - Res *types.ConfigureHostCache_TaskResponse `xml:"urn:vim25 ConfigureHostCache_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureHostCache_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureHostCache_Task(ctx context.Context, r soap.RoundTripper, req *types.ConfigureHostCache_Task) (*types.ConfigureHostCache_TaskResponse, error) { - var reqBody, resBody ConfigureHostCache_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureLicenseSourceBody struct { - Req *types.ConfigureLicenseSource `xml:"urn:vim25 ConfigureLicenseSource,omitempty"` - Res *types.ConfigureLicenseSourceResponse `xml:"urn:vim25 ConfigureLicenseSourceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureLicenseSourceBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureLicenseSource(ctx context.Context, r soap.RoundTripper, req *types.ConfigureLicenseSource) (*types.ConfigureLicenseSourceResponse, error) { - var reqBody, resBody ConfigureLicenseSourceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigurePowerPolicyBody struct { - Req *types.ConfigurePowerPolicy `xml:"urn:vim25 ConfigurePowerPolicy,omitempty"` - Res *types.ConfigurePowerPolicyResponse `xml:"urn:vim25 ConfigurePowerPolicyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigurePowerPolicyBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigurePowerPolicy(ctx context.Context, r soap.RoundTripper, req *types.ConfigurePowerPolicy) (*types.ConfigurePowerPolicyResponse, error) { - var reqBody, resBody ConfigurePowerPolicyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureStorageDrsForPod_TaskBody struct { - Req *types.ConfigureStorageDrsForPod_Task `xml:"urn:vim25 ConfigureStorageDrsForPod_Task,omitempty"` - Res *types.ConfigureStorageDrsForPod_TaskResponse `xml:"urn:vim25 ConfigureStorageDrsForPod_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureStorageDrsForPod_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureStorageDrsForPod_Task(ctx context.Context, r soap.RoundTripper, req *types.ConfigureStorageDrsForPod_Task) (*types.ConfigureStorageDrsForPod_TaskResponse, error) { - var reqBody, resBody ConfigureStorageDrsForPod_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConfigureVFlashResourceEx_TaskBody struct { - Req *types.ConfigureVFlashResourceEx_Task `xml:"urn:vim25 ConfigureVFlashResourceEx_Task,omitempty"` - Res *types.ConfigureVFlashResourceEx_TaskResponse `xml:"urn:vim25 ConfigureVFlashResourceEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConfigureVFlashResourceEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ConfigureVFlashResourceEx_Task(ctx context.Context, r soap.RoundTripper, req *types.ConfigureVFlashResourceEx_Task) (*types.ConfigureVFlashResourceEx_TaskResponse, error) { - var reqBody, resBody ConfigureVFlashResourceEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConsolidateVMDisks_TaskBody struct { - Req *types.ConsolidateVMDisks_Task `xml:"urn:vim25 ConsolidateVMDisks_Task,omitempty"` - Res *types.ConsolidateVMDisks_TaskResponse `xml:"urn:vim25 ConsolidateVMDisks_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConsolidateVMDisks_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ConsolidateVMDisks_Task(ctx context.Context, r soap.RoundTripper, req *types.ConsolidateVMDisks_Task) (*types.ConsolidateVMDisks_TaskResponse, error) { - var reqBody, resBody ConsolidateVMDisks_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ContinueRetrievePropertiesExBody struct { - Req *types.ContinueRetrievePropertiesEx `xml:"urn:vim25 ContinueRetrievePropertiesEx,omitempty"` - Res *types.ContinueRetrievePropertiesExResponse `xml:"urn:vim25 ContinueRetrievePropertiesExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ContinueRetrievePropertiesExBody) Fault() *soap.Fault { return b.Fault_ } - -func ContinueRetrievePropertiesEx(ctx context.Context, r soap.RoundTripper, req *types.ContinueRetrievePropertiesEx) (*types.ContinueRetrievePropertiesExResponse, error) { - var reqBody, resBody ContinueRetrievePropertiesExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ConvertNamespacePathToUuidPathBody struct { - Req *types.ConvertNamespacePathToUuidPath `xml:"urn:vim25 ConvertNamespacePathToUuidPath,omitempty"` - Res *types.ConvertNamespacePathToUuidPathResponse `xml:"urn:vim25 ConvertNamespacePathToUuidPathResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ConvertNamespacePathToUuidPathBody) Fault() *soap.Fault { return b.Fault_ } - -func ConvertNamespacePathToUuidPath(ctx context.Context, r soap.RoundTripper, req *types.ConvertNamespacePathToUuidPath) (*types.ConvertNamespacePathToUuidPathResponse, error) { - var reqBody, resBody ConvertNamespacePathToUuidPathBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CopyDatastoreFile_TaskBody struct { - Req *types.CopyDatastoreFile_Task `xml:"urn:vim25 CopyDatastoreFile_Task,omitempty"` - Res *types.CopyDatastoreFile_TaskResponse `xml:"urn:vim25 CopyDatastoreFile_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CopyDatastoreFile_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CopyDatastoreFile_Task(ctx context.Context, r soap.RoundTripper, req *types.CopyDatastoreFile_Task) (*types.CopyDatastoreFile_TaskResponse, error) { - var reqBody, resBody CopyDatastoreFile_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CopyVirtualDisk_TaskBody struct { - Req *types.CopyVirtualDisk_Task `xml:"urn:vim25 CopyVirtualDisk_Task,omitempty"` - Res *types.CopyVirtualDisk_TaskResponse `xml:"urn:vim25 CopyVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CopyVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CopyVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.CopyVirtualDisk_Task) (*types.CopyVirtualDisk_TaskResponse, error) { - var reqBody, resBody CopyVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateAlarmBody struct { - Req *types.CreateAlarm `xml:"urn:vim25 CreateAlarm,omitempty"` - Res *types.CreateAlarmResponse `xml:"urn:vim25 CreateAlarmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateAlarmBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateAlarm(ctx context.Context, r soap.RoundTripper, req *types.CreateAlarm) (*types.CreateAlarmResponse, error) { - var reqBody, resBody CreateAlarmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateChildVM_TaskBody struct { - Req *types.CreateChildVM_Task `xml:"urn:vim25 CreateChildVM_Task,omitempty"` - Res *types.CreateChildVM_TaskResponse `xml:"urn:vim25 CreateChildVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateChildVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateChildVM_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateChildVM_Task) (*types.CreateChildVM_TaskResponse, error) { - var reqBody, resBody CreateChildVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateClusterBody struct { - Req *types.CreateCluster `xml:"urn:vim25 CreateCluster,omitempty"` - Res *types.CreateClusterResponse `xml:"urn:vim25 CreateClusterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateClusterBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateCluster(ctx context.Context, r soap.RoundTripper, req *types.CreateCluster) (*types.CreateClusterResponse, error) { - var reqBody, resBody CreateClusterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateClusterExBody struct { - Req *types.CreateClusterEx `xml:"urn:vim25 CreateClusterEx,omitempty"` - Res *types.CreateClusterExResponse `xml:"urn:vim25 CreateClusterExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateClusterExBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateClusterEx(ctx context.Context, r soap.RoundTripper, req *types.CreateClusterEx) (*types.CreateClusterExResponse, error) { - var reqBody, resBody CreateClusterExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateCollectorForEventsBody struct { - Req *types.CreateCollectorForEvents `xml:"urn:vim25 CreateCollectorForEvents,omitempty"` - Res *types.CreateCollectorForEventsResponse `xml:"urn:vim25 CreateCollectorForEventsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateCollectorForEventsBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateCollectorForEvents(ctx context.Context, r soap.RoundTripper, req *types.CreateCollectorForEvents) (*types.CreateCollectorForEventsResponse, error) { - var reqBody, resBody CreateCollectorForEventsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateCollectorForTasksBody struct { - Req *types.CreateCollectorForTasks `xml:"urn:vim25 CreateCollectorForTasks,omitempty"` - Res *types.CreateCollectorForTasksResponse `xml:"urn:vim25 CreateCollectorForTasksResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateCollectorForTasksBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateCollectorForTasks(ctx context.Context, r soap.RoundTripper, req *types.CreateCollectorForTasks) (*types.CreateCollectorForTasksResponse, error) { - var reqBody, resBody CreateCollectorForTasksBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateContainerViewBody struct { - Req *types.CreateContainerView `xml:"urn:vim25 CreateContainerView,omitempty"` - Res *types.CreateContainerViewResponse `xml:"urn:vim25 CreateContainerViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateContainerViewBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateContainerView(ctx context.Context, r soap.RoundTripper, req *types.CreateContainerView) (*types.CreateContainerViewResponse, error) { - var reqBody, resBody CreateContainerViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateCustomizationSpecBody struct { - Req *types.CreateCustomizationSpec `xml:"urn:vim25 CreateCustomizationSpec,omitempty"` - Res *types.CreateCustomizationSpecResponse `xml:"urn:vim25 CreateCustomizationSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateCustomizationSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.CreateCustomizationSpec) (*types.CreateCustomizationSpecResponse, error) { - var reqBody, resBody CreateCustomizationSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDVPortgroup_TaskBody struct { - Req *types.CreateDVPortgroup_Task `xml:"urn:vim25 CreateDVPortgroup_Task,omitempty"` - Res *types.CreateDVPortgroup_TaskResponse `xml:"urn:vim25 CreateDVPortgroup_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDVPortgroup_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDVPortgroup_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateDVPortgroup_Task) (*types.CreateDVPortgroup_TaskResponse, error) { - var reqBody, resBody CreateDVPortgroup_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDVS_TaskBody struct { - Req *types.CreateDVS_Task `xml:"urn:vim25 CreateDVS_Task,omitempty"` - Res *types.CreateDVS_TaskResponse `xml:"urn:vim25 CreateDVS_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDVS_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDVS_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateDVS_Task) (*types.CreateDVS_TaskResponse, error) { - var reqBody, resBody CreateDVS_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDatacenterBody struct { - Req *types.CreateDatacenter `xml:"urn:vim25 CreateDatacenter,omitempty"` - Res *types.CreateDatacenterResponse `xml:"urn:vim25 CreateDatacenterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDatacenterBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDatacenter(ctx context.Context, r soap.RoundTripper, req *types.CreateDatacenter) (*types.CreateDatacenterResponse, error) { - var reqBody, resBody CreateDatacenterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDefaultProfileBody struct { - Req *types.CreateDefaultProfile `xml:"urn:vim25 CreateDefaultProfile,omitempty"` - Res *types.CreateDefaultProfileResponse `xml:"urn:vim25 CreateDefaultProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDefaultProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDefaultProfile(ctx context.Context, r soap.RoundTripper, req *types.CreateDefaultProfile) (*types.CreateDefaultProfileResponse, error) { - var reqBody, resBody CreateDefaultProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDescriptorBody struct { - Req *types.CreateDescriptor `xml:"urn:vim25 CreateDescriptor,omitempty"` - Res *types.CreateDescriptorResponse `xml:"urn:vim25 CreateDescriptorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDescriptorBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDescriptor(ctx context.Context, r soap.RoundTripper, req *types.CreateDescriptor) (*types.CreateDescriptorResponse, error) { - var reqBody, resBody CreateDescriptorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDiagnosticPartitionBody struct { - Req *types.CreateDiagnosticPartition `xml:"urn:vim25 CreateDiagnosticPartition,omitempty"` - Res *types.CreateDiagnosticPartitionResponse `xml:"urn:vim25 CreateDiagnosticPartitionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDiagnosticPartitionBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDiagnosticPartition(ctx context.Context, r soap.RoundTripper, req *types.CreateDiagnosticPartition) (*types.CreateDiagnosticPartitionResponse, error) { - var reqBody, resBody CreateDiagnosticPartitionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDirectoryBody struct { - Req *types.CreateDirectory `xml:"urn:vim25 CreateDirectory,omitempty"` - Res *types.CreateDirectoryResponse `xml:"urn:vim25 CreateDirectoryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDirectoryBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDirectory(ctx context.Context, r soap.RoundTripper, req *types.CreateDirectory) (*types.CreateDirectoryResponse, error) { - var reqBody, resBody CreateDirectoryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateDisk_TaskBody struct { - Req *types.CreateDisk_Task `xml:"urn:vim25 CreateDisk_Task,omitempty"` - Res *types.CreateDisk_TaskResponse `xml:"urn:vim25 CreateDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateDisk_Task) (*types.CreateDisk_TaskResponse, error) { - var reqBody, resBody CreateDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateFilterBody struct { - Req *types.CreateFilter `xml:"urn:vim25 CreateFilter,omitempty"` - Res *types.CreateFilterResponse `xml:"urn:vim25 CreateFilterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateFilterBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateFilter(ctx context.Context, r soap.RoundTripper, req *types.CreateFilter) (*types.CreateFilterResponse, error) { - var reqBody, resBody CreateFilterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateFolderBody struct { - Req *types.CreateFolder `xml:"urn:vim25 CreateFolder,omitempty"` - Res *types.CreateFolderResponse `xml:"urn:vim25 CreateFolderResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateFolderBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateFolder(ctx context.Context, r soap.RoundTripper, req *types.CreateFolder) (*types.CreateFolderResponse, error) { - var reqBody, resBody CreateFolderBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateGroupBody struct { - Req *types.CreateGroup `xml:"urn:vim25 CreateGroup,omitempty"` - Res *types.CreateGroupResponse `xml:"urn:vim25 CreateGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateGroup(ctx context.Context, r soap.RoundTripper, req *types.CreateGroup) (*types.CreateGroupResponse, error) { - var reqBody, resBody CreateGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateImportSpecBody struct { - Req *types.CreateImportSpec `xml:"urn:vim25 CreateImportSpec,omitempty"` - Res *types.CreateImportSpecResponse `xml:"urn:vim25 CreateImportSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateImportSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateImportSpec(ctx context.Context, r soap.RoundTripper, req *types.CreateImportSpec) (*types.CreateImportSpecResponse, error) { - var reqBody, resBody CreateImportSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateInventoryViewBody struct { - Req *types.CreateInventoryView `xml:"urn:vim25 CreateInventoryView,omitempty"` - Res *types.CreateInventoryViewResponse `xml:"urn:vim25 CreateInventoryViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateInventoryViewBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateInventoryView(ctx context.Context, r soap.RoundTripper, req *types.CreateInventoryView) (*types.CreateInventoryViewResponse, error) { - var reqBody, resBody CreateInventoryViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateIpPoolBody struct { - Req *types.CreateIpPool `xml:"urn:vim25 CreateIpPool,omitempty"` - Res *types.CreateIpPoolResponse `xml:"urn:vim25 CreateIpPoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateIpPoolBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateIpPool(ctx context.Context, r soap.RoundTripper, req *types.CreateIpPool) (*types.CreateIpPoolResponse, error) { - var reqBody, resBody CreateIpPoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateListViewBody struct { - Req *types.CreateListView `xml:"urn:vim25 CreateListView,omitempty"` - Res *types.CreateListViewResponse `xml:"urn:vim25 CreateListViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateListViewBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateListView(ctx context.Context, r soap.RoundTripper, req *types.CreateListView) (*types.CreateListViewResponse, error) { - var reqBody, resBody CreateListViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateListViewFromViewBody struct { - Req *types.CreateListViewFromView `xml:"urn:vim25 CreateListViewFromView,omitempty"` - Res *types.CreateListViewFromViewResponse `xml:"urn:vim25 CreateListViewFromViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateListViewFromViewBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateListViewFromView(ctx context.Context, r soap.RoundTripper, req *types.CreateListViewFromView) (*types.CreateListViewFromViewResponse, error) { - var reqBody, resBody CreateListViewFromViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateLocalDatastoreBody struct { - Req *types.CreateLocalDatastore `xml:"urn:vim25 CreateLocalDatastore,omitempty"` - Res *types.CreateLocalDatastoreResponse `xml:"urn:vim25 CreateLocalDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateLocalDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateLocalDatastore(ctx context.Context, r soap.RoundTripper, req *types.CreateLocalDatastore) (*types.CreateLocalDatastoreResponse, error) { - var reqBody, resBody CreateLocalDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateNasDatastoreBody struct { - Req *types.CreateNasDatastore `xml:"urn:vim25 CreateNasDatastore,omitempty"` - Res *types.CreateNasDatastoreResponse `xml:"urn:vim25 CreateNasDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateNasDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateNasDatastore(ctx context.Context, r soap.RoundTripper, req *types.CreateNasDatastore) (*types.CreateNasDatastoreResponse, error) { - var reqBody, resBody CreateNasDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateObjectScheduledTaskBody struct { - Req *types.CreateObjectScheduledTask `xml:"urn:vim25 CreateObjectScheduledTask,omitempty"` - Res *types.CreateObjectScheduledTaskResponse `xml:"urn:vim25 CreateObjectScheduledTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateObjectScheduledTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateObjectScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.CreateObjectScheduledTask) (*types.CreateObjectScheduledTaskResponse, error) { - var reqBody, resBody CreateObjectScheduledTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreatePerfIntervalBody struct { - Req *types.CreatePerfInterval `xml:"urn:vim25 CreatePerfInterval,omitempty"` - Res *types.CreatePerfIntervalResponse `xml:"urn:vim25 CreatePerfIntervalResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreatePerfIntervalBody) Fault() *soap.Fault { return b.Fault_ } - -func CreatePerfInterval(ctx context.Context, r soap.RoundTripper, req *types.CreatePerfInterval) (*types.CreatePerfIntervalResponse, error) { - var reqBody, resBody CreatePerfIntervalBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateProfileBody struct { - Req *types.CreateProfile `xml:"urn:vim25 CreateProfile,omitempty"` - Res *types.CreateProfileResponse `xml:"urn:vim25 CreateProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateProfile(ctx context.Context, r soap.RoundTripper, req *types.CreateProfile) (*types.CreateProfileResponse, error) { - var reqBody, resBody CreateProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreatePropertyCollectorBody struct { - Req *types.CreatePropertyCollector `xml:"urn:vim25 CreatePropertyCollector,omitempty"` - Res *types.CreatePropertyCollectorResponse `xml:"urn:vim25 CreatePropertyCollectorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreatePropertyCollectorBody) Fault() *soap.Fault { return b.Fault_ } - -func CreatePropertyCollector(ctx context.Context, r soap.RoundTripper, req *types.CreatePropertyCollector) (*types.CreatePropertyCollectorResponse, error) { - var reqBody, resBody CreatePropertyCollectorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateRegistryKeyInGuestBody struct { - Req *types.CreateRegistryKeyInGuest `xml:"urn:vim25 CreateRegistryKeyInGuest,omitempty"` - Res *types.CreateRegistryKeyInGuestResponse `xml:"urn:vim25 CreateRegistryKeyInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateRegistryKeyInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateRegistryKeyInGuest(ctx context.Context, r soap.RoundTripper, req *types.CreateRegistryKeyInGuest) (*types.CreateRegistryKeyInGuestResponse, error) { - var reqBody, resBody CreateRegistryKeyInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateResourcePoolBody struct { - Req *types.CreateResourcePool `xml:"urn:vim25 CreateResourcePool,omitempty"` - Res *types.CreateResourcePoolResponse `xml:"urn:vim25 CreateResourcePoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateResourcePoolBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateResourcePool(ctx context.Context, r soap.RoundTripper, req *types.CreateResourcePool) (*types.CreateResourcePoolResponse, error) { - var reqBody, resBody CreateResourcePoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateScheduledTaskBody struct { - Req *types.CreateScheduledTask `xml:"urn:vim25 CreateScheduledTask,omitempty"` - Res *types.CreateScheduledTaskResponse `xml:"urn:vim25 CreateScheduledTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateScheduledTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.CreateScheduledTask) (*types.CreateScheduledTaskResponse, error) { - var reqBody, resBody CreateScheduledTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateScreenshot_TaskBody struct { - Req *types.CreateScreenshot_Task `xml:"urn:vim25 CreateScreenshot_Task,omitempty"` - Res *types.CreateScreenshot_TaskResponse `xml:"urn:vim25 CreateScreenshot_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateScreenshot_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateScreenshot_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateScreenshot_Task) (*types.CreateScreenshot_TaskResponse, error) { - var reqBody, resBody CreateScreenshot_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateSecondaryVMEx_TaskBody struct { - Req *types.CreateSecondaryVMEx_Task `xml:"urn:vim25 CreateSecondaryVMEx_Task,omitempty"` - Res *types.CreateSecondaryVMEx_TaskResponse `xml:"urn:vim25 CreateSecondaryVMEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateSecondaryVMEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateSecondaryVMEx_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateSecondaryVMEx_Task) (*types.CreateSecondaryVMEx_TaskResponse, error) { - var reqBody, resBody CreateSecondaryVMEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateSecondaryVM_TaskBody struct { - Req *types.CreateSecondaryVM_Task `xml:"urn:vim25 CreateSecondaryVM_Task,omitempty"` - Res *types.CreateSecondaryVM_TaskResponse `xml:"urn:vim25 CreateSecondaryVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateSecondaryVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateSecondaryVM_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateSecondaryVM_Task) (*types.CreateSecondaryVM_TaskResponse, error) { - var reqBody, resBody CreateSecondaryVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateSnapshotEx_TaskBody struct { - Req *types.CreateSnapshotEx_Task `xml:"urn:vim25 CreateSnapshotEx_Task,omitempty"` - Res *types.CreateSnapshotEx_TaskResponse `xml:"urn:vim25 CreateSnapshotEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateSnapshotEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateSnapshotEx_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateSnapshotEx_Task) (*types.CreateSnapshotEx_TaskResponse, error) { - var reqBody, resBody CreateSnapshotEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateSnapshot_TaskBody struct { - Req *types.CreateSnapshot_Task `xml:"urn:vim25 CreateSnapshot_Task,omitempty"` - Res *types.CreateSnapshot_TaskResponse `xml:"urn:vim25 CreateSnapshot_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateSnapshot_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateSnapshot_Task) (*types.CreateSnapshot_TaskResponse, error) { - var reqBody, resBody CreateSnapshot_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateStoragePodBody struct { - Req *types.CreateStoragePod `xml:"urn:vim25 CreateStoragePod,omitempty"` - Res *types.CreateStoragePodResponse `xml:"urn:vim25 CreateStoragePodResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateStoragePodBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateStoragePod(ctx context.Context, r soap.RoundTripper, req *types.CreateStoragePod) (*types.CreateStoragePodResponse, error) { - var reqBody, resBody CreateStoragePodBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateTaskBody struct { - Req *types.CreateTask `xml:"urn:vim25 CreateTask,omitempty"` - Res *types.CreateTaskResponse `xml:"urn:vim25 CreateTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateTask(ctx context.Context, r soap.RoundTripper, req *types.CreateTask) (*types.CreateTaskResponse, error) { - var reqBody, resBody CreateTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateTemporaryDirectoryInGuestBody struct { - Req *types.CreateTemporaryDirectoryInGuest `xml:"urn:vim25 CreateTemporaryDirectoryInGuest,omitempty"` - Res *types.CreateTemporaryDirectoryInGuestResponse `xml:"urn:vim25 CreateTemporaryDirectoryInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateTemporaryDirectoryInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateTemporaryDirectoryInGuest(ctx context.Context, r soap.RoundTripper, req *types.CreateTemporaryDirectoryInGuest) (*types.CreateTemporaryDirectoryInGuestResponse, error) { - var reqBody, resBody CreateTemporaryDirectoryInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateTemporaryFileInGuestBody struct { - Req *types.CreateTemporaryFileInGuest `xml:"urn:vim25 CreateTemporaryFileInGuest,omitempty"` - Res *types.CreateTemporaryFileInGuestResponse `xml:"urn:vim25 CreateTemporaryFileInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateTemporaryFileInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateTemporaryFileInGuest(ctx context.Context, r soap.RoundTripper, req *types.CreateTemporaryFileInGuest) (*types.CreateTemporaryFileInGuestResponse, error) { - var reqBody, resBody CreateTemporaryFileInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateUserBody struct { - Req *types.CreateUser `xml:"urn:vim25 CreateUser,omitempty"` - Res *types.CreateUserResponse `xml:"urn:vim25 CreateUserResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateUserBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateUser(ctx context.Context, r soap.RoundTripper, req *types.CreateUser) (*types.CreateUserResponse, error) { - var reqBody, resBody CreateUserBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateVAppBody struct { - Req *types.CreateVApp `xml:"urn:vim25 CreateVApp,omitempty"` - Res *types.CreateVAppResponse `xml:"urn:vim25 CreateVAppResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateVAppBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateVApp(ctx context.Context, r soap.RoundTripper, req *types.CreateVApp) (*types.CreateVAppResponse, error) { - var reqBody, resBody CreateVAppBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateVM_TaskBody struct { - Req *types.CreateVM_Task `xml:"urn:vim25 CreateVM_Task,omitempty"` - Res *types.CreateVM_TaskResponse `xml:"urn:vim25 CreateVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateVM_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateVM_Task) (*types.CreateVM_TaskResponse, error) { - var reqBody, resBody CreateVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateVirtualDisk_TaskBody struct { - Req *types.CreateVirtualDisk_Task `xml:"urn:vim25 CreateVirtualDisk_Task,omitempty"` - Res *types.CreateVirtualDisk_TaskResponse `xml:"urn:vim25 CreateVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.CreateVirtualDisk_Task) (*types.CreateVirtualDisk_TaskResponse, error) { - var reqBody, resBody CreateVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateVmfsDatastoreBody struct { - Req *types.CreateVmfsDatastore `xml:"urn:vim25 CreateVmfsDatastore,omitempty"` - Res *types.CreateVmfsDatastoreResponse `xml:"urn:vim25 CreateVmfsDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateVmfsDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateVmfsDatastore(ctx context.Context, r soap.RoundTripper, req *types.CreateVmfsDatastore) (*types.CreateVmfsDatastoreResponse, error) { - var reqBody, resBody CreateVmfsDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CreateVvolDatastoreBody struct { - Req *types.CreateVvolDatastore `xml:"urn:vim25 CreateVvolDatastore,omitempty"` - Res *types.CreateVvolDatastoreResponse `xml:"urn:vim25 CreateVvolDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CreateVvolDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func CreateVvolDatastore(ctx context.Context, r soap.RoundTripper, req *types.CreateVvolDatastore) (*types.CreateVvolDatastoreResponse, error) { - var reqBody, resBody CreateVvolDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CurrentTimeBody struct { - Req *types.CurrentTime `xml:"urn:vim25 CurrentTime,omitempty"` - Res *types.CurrentTimeResponse `xml:"urn:vim25 CurrentTimeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CurrentTimeBody) Fault() *soap.Fault { return b.Fault_ } - -func CurrentTime(ctx context.Context, r soap.RoundTripper, req *types.CurrentTime) (*types.CurrentTimeResponse, error) { - var reqBody, resBody CurrentTimeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CustomizationSpecItemToXmlBody struct { - Req *types.CustomizationSpecItemToXml `xml:"urn:vim25 CustomizationSpecItemToXml,omitempty"` - Res *types.CustomizationSpecItemToXmlResponse `xml:"urn:vim25 CustomizationSpecItemToXmlResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CustomizationSpecItemToXmlBody) Fault() *soap.Fault { return b.Fault_ } - -func CustomizationSpecItemToXml(ctx context.Context, r soap.RoundTripper, req *types.CustomizationSpecItemToXml) (*types.CustomizationSpecItemToXmlResponse, error) { - var reqBody, resBody CustomizationSpecItemToXmlBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type CustomizeVM_TaskBody struct { - Req *types.CustomizeVM_Task `xml:"urn:vim25 CustomizeVM_Task,omitempty"` - Res *types.CustomizeVM_TaskResponse `xml:"urn:vim25 CustomizeVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *CustomizeVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func CustomizeVM_Task(ctx context.Context, r soap.RoundTripper, req *types.CustomizeVM_Task) (*types.CustomizeVM_TaskResponse, error) { - var reqBody, resBody CustomizeVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DVPortgroupRollback_TaskBody struct { - Req *types.DVPortgroupRollback_Task `xml:"urn:vim25 DVPortgroupRollback_Task,omitempty"` - Res *types.DVPortgroupRollback_TaskResponse `xml:"urn:vim25 DVPortgroupRollback_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DVPortgroupRollback_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DVPortgroupRollback_Task(ctx context.Context, r soap.RoundTripper, req *types.DVPortgroupRollback_Task) (*types.DVPortgroupRollback_TaskResponse, error) { - var reqBody, resBody DVPortgroupRollback_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DVSManagerExportEntity_TaskBody struct { - Req *types.DVSManagerExportEntity_Task `xml:"urn:vim25 DVSManagerExportEntity_Task,omitempty"` - Res *types.DVSManagerExportEntity_TaskResponse `xml:"urn:vim25 DVSManagerExportEntity_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DVSManagerExportEntity_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DVSManagerExportEntity_Task(ctx context.Context, r soap.RoundTripper, req *types.DVSManagerExportEntity_Task) (*types.DVSManagerExportEntity_TaskResponse, error) { - var reqBody, resBody DVSManagerExportEntity_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DVSManagerImportEntity_TaskBody struct { - Req *types.DVSManagerImportEntity_Task `xml:"urn:vim25 DVSManagerImportEntity_Task,omitempty"` - Res *types.DVSManagerImportEntity_TaskResponse `xml:"urn:vim25 DVSManagerImportEntity_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DVSManagerImportEntity_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DVSManagerImportEntity_Task(ctx context.Context, r soap.RoundTripper, req *types.DVSManagerImportEntity_Task) (*types.DVSManagerImportEntity_TaskResponse, error) { - var reqBody, resBody DVSManagerImportEntity_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DVSManagerLookupDvPortGroupBody struct { - Req *types.DVSManagerLookupDvPortGroup `xml:"urn:vim25 DVSManagerLookupDvPortGroup,omitempty"` - Res *types.DVSManagerLookupDvPortGroupResponse `xml:"urn:vim25 DVSManagerLookupDvPortGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DVSManagerLookupDvPortGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func DVSManagerLookupDvPortGroup(ctx context.Context, r soap.RoundTripper, req *types.DVSManagerLookupDvPortGroup) (*types.DVSManagerLookupDvPortGroupResponse, error) { - var reqBody, resBody DVSManagerLookupDvPortGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DVSRollback_TaskBody struct { - Req *types.DVSRollback_Task `xml:"urn:vim25 DVSRollback_Task,omitempty"` - Res *types.DVSRollback_TaskResponse `xml:"urn:vim25 DVSRollback_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DVSRollback_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DVSRollback_Task(ctx context.Context, r soap.RoundTripper, req *types.DVSRollback_Task) (*types.DVSRollback_TaskResponse, error) { - var reqBody, resBody DVSRollback_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DatastoreEnterMaintenanceModeBody struct { - Req *types.DatastoreEnterMaintenanceMode `xml:"urn:vim25 DatastoreEnterMaintenanceMode,omitempty"` - Res *types.DatastoreEnterMaintenanceModeResponse `xml:"urn:vim25 DatastoreEnterMaintenanceModeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DatastoreEnterMaintenanceModeBody) Fault() *soap.Fault { return b.Fault_ } - -func DatastoreEnterMaintenanceMode(ctx context.Context, r soap.RoundTripper, req *types.DatastoreEnterMaintenanceMode) (*types.DatastoreEnterMaintenanceModeResponse, error) { - var reqBody, resBody DatastoreEnterMaintenanceModeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DatastoreExitMaintenanceMode_TaskBody struct { - Req *types.DatastoreExitMaintenanceMode_Task `xml:"urn:vim25 DatastoreExitMaintenanceMode_Task,omitempty"` - Res *types.DatastoreExitMaintenanceMode_TaskResponse `xml:"urn:vim25 DatastoreExitMaintenanceMode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DatastoreExitMaintenanceMode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DatastoreExitMaintenanceMode_Task(ctx context.Context, r soap.RoundTripper, req *types.DatastoreExitMaintenanceMode_Task) (*types.DatastoreExitMaintenanceMode_TaskResponse, error) { - var reqBody, resBody DatastoreExitMaintenanceMode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DecodeLicenseBody struct { - Req *types.DecodeLicense `xml:"urn:vim25 DecodeLicense,omitempty"` - Res *types.DecodeLicenseResponse `xml:"urn:vim25 DecodeLicenseResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DecodeLicenseBody) Fault() *soap.Fault { return b.Fault_ } - -func DecodeLicense(ctx context.Context, r soap.RoundTripper, req *types.DecodeLicense) (*types.DecodeLicenseResponse, error) { - var reqBody, resBody DecodeLicenseBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DefragmentAllDisksBody struct { - Req *types.DefragmentAllDisks `xml:"urn:vim25 DefragmentAllDisks,omitempty"` - Res *types.DefragmentAllDisksResponse `xml:"urn:vim25 DefragmentAllDisksResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DefragmentAllDisksBody) Fault() *soap.Fault { return b.Fault_ } - -func DefragmentAllDisks(ctx context.Context, r soap.RoundTripper, req *types.DefragmentAllDisks) (*types.DefragmentAllDisksResponse, error) { - var reqBody, resBody DefragmentAllDisksBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DefragmentVirtualDisk_TaskBody struct { - Req *types.DefragmentVirtualDisk_Task `xml:"urn:vim25 DefragmentVirtualDisk_Task,omitempty"` - Res *types.DefragmentVirtualDisk_TaskResponse `xml:"urn:vim25 DefragmentVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DefragmentVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DefragmentVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.DefragmentVirtualDisk_Task) (*types.DefragmentVirtualDisk_TaskResponse, error) { - var reqBody, resBody DefragmentVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteCustomizationSpecBody struct { - Req *types.DeleteCustomizationSpec `xml:"urn:vim25 DeleteCustomizationSpec,omitempty"` - Res *types.DeleteCustomizationSpecResponse `xml:"urn:vim25 DeleteCustomizationSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteCustomizationSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.DeleteCustomizationSpec) (*types.DeleteCustomizationSpecResponse, error) { - var reqBody, resBody DeleteCustomizationSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteDatastoreFile_TaskBody struct { - Req *types.DeleteDatastoreFile_Task `xml:"urn:vim25 DeleteDatastoreFile_Task,omitempty"` - Res *types.DeleteDatastoreFile_TaskResponse `xml:"urn:vim25 DeleteDatastoreFile_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteDatastoreFile_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteDatastoreFile_Task(ctx context.Context, r soap.RoundTripper, req *types.DeleteDatastoreFile_Task) (*types.DeleteDatastoreFile_TaskResponse, error) { - var reqBody, resBody DeleteDatastoreFile_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteDirectoryBody struct { - Req *types.DeleteDirectory `xml:"urn:vim25 DeleteDirectory,omitempty"` - Res *types.DeleteDirectoryResponse `xml:"urn:vim25 DeleteDirectoryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteDirectoryBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteDirectory(ctx context.Context, r soap.RoundTripper, req *types.DeleteDirectory) (*types.DeleteDirectoryResponse, error) { - var reqBody, resBody DeleteDirectoryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteDirectoryInGuestBody struct { - Req *types.DeleteDirectoryInGuest `xml:"urn:vim25 DeleteDirectoryInGuest,omitempty"` - Res *types.DeleteDirectoryInGuestResponse `xml:"urn:vim25 DeleteDirectoryInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteDirectoryInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteDirectoryInGuest(ctx context.Context, r soap.RoundTripper, req *types.DeleteDirectoryInGuest) (*types.DeleteDirectoryInGuestResponse, error) { - var reqBody, resBody DeleteDirectoryInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteFileBody struct { - Req *types.DeleteFile `xml:"urn:vim25 DeleteFile,omitempty"` - Res *types.DeleteFileResponse `xml:"urn:vim25 DeleteFileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteFileBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteFile(ctx context.Context, r soap.RoundTripper, req *types.DeleteFile) (*types.DeleteFileResponse, error) { - var reqBody, resBody DeleteFileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteFileInGuestBody struct { - Req *types.DeleteFileInGuest `xml:"urn:vim25 DeleteFileInGuest,omitempty"` - Res *types.DeleteFileInGuestResponse `xml:"urn:vim25 DeleteFileInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteFileInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteFileInGuest(ctx context.Context, r soap.RoundTripper, req *types.DeleteFileInGuest) (*types.DeleteFileInGuestResponse, error) { - var reqBody, resBody DeleteFileInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteHostSpecificationBody struct { - Req *types.DeleteHostSpecification `xml:"urn:vim25 DeleteHostSpecification,omitempty"` - Res *types.DeleteHostSpecificationResponse `xml:"urn:vim25 DeleteHostSpecificationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteHostSpecificationBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteHostSpecification(ctx context.Context, r soap.RoundTripper, req *types.DeleteHostSpecification) (*types.DeleteHostSpecificationResponse, error) { - var reqBody, resBody DeleteHostSpecificationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteHostSubSpecificationBody struct { - Req *types.DeleteHostSubSpecification `xml:"urn:vim25 DeleteHostSubSpecification,omitempty"` - Res *types.DeleteHostSubSpecificationResponse `xml:"urn:vim25 DeleteHostSubSpecificationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteHostSubSpecificationBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteHostSubSpecification(ctx context.Context, r soap.RoundTripper, req *types.DeleteHostSubSpecification) (*types.DeleteHostSubSpecificationResponse, error) { - var reqBody, resBody DeleteHostSubSpecificationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteRegistryKeyInGuestBody struct { - Req *types.DeleteRegistryKeyInGuest `xml:"urn:vim25 DeleteRegistryKeyInGuest,omitempty"` - Res *types.DeleteRegistryKeyInGuestResponse `xml:"urn:vim25 DeleteRegistryKeyInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteRegistryKeyInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteRegistryKeyInGuest(ctx context.Context, r soap.RoundTripper, req *types.DeleteRegistryKeyInGuest) (*types.DeleteRegistryKeyInGuestResponse, error) { - var reqBody, resBody DeleteRegistryKeyInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteRegistryValueInGuestBody struct { - Req *types.DeleteRegistryValueInGuest `xml:"urn:vim25 DeleteRegistryValueInGuest,omitempty"` - Res *types.DeleteRegistryValueInGuestResponse `xml:"urn:vim25 DeleteRegistryValueInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteRegistryValueInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteRegistryValueInGuest(ctx context.Context, r soap.RoundTripper, req *types.DeleteRegistryValueInGuest) (*types.DeleteRegistryValueInGuestResponse, error) { - var reqBody, resBody DeleteRegistryValueInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteScsiLunStateBody struct { - Req *types.DeleteScsiLunState `xml:"urn:vim25 DeleteScsiLunState,omitempty"` - Res *types.DeleteScsiLunStateResponse `xml:"urn:vim25 DeleteScsiLunStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteScsiLunStateBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteScsiLunState(ctx context.Context, r soap.RoundTripper, req *types.DeleteScsiLunState) (*types.DeleteScsiLunStateResponse, error) { - var reqBody, resBody DeleteScsiLunStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteVStorageObject_TaskBody struct { - Req *types.DeleteVStorageObject_Task `xml:"urn:vim25 DeleteVStorageObject_Task,omitempty"` - Res *types.DeleteVStorageObject_TaskResponse `xml:"urn:vim25 DeleteVStorageObject_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteVStorageObject_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *types.DeleteVStorageObject_Task) (*types.DeleteVStorageObject_TaskResponse, error) { - var reqBody, resBody DeleteVStorageObject_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteVffsVolumeStateBody struct { - Req *types.DeleteVffsVolumeState `xml:"urn:vim25 DeleteVffsVolumeState,omitempty"` - Res *types.DeleteVffsVolumeStateResponse `xml:"urn:vim25 DeleteVffsVolumeStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteVffsVolumeStateBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteVffsVolumeState(ctx context.Context, r soap.RoundTripper, req *types.DeleteVffsVolumeState) (*types.DeleteVffsVolumeStateResponse, error) { - var reqBody, resBody DeleteVffsVolumeStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteVirtualDisk_TaskBody struct { - Req *types.DeleteVirtualDisk_Task `xml:"urn:vim25 DeleteVirtualDisk_Task,omitempty"` - Res *types.DeleteVirtualDisk_TaskResponse `xml:"urn:vim25 DeleteVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.DeleteVirtualDisk_Task) (*types.DeleteVirtualDisk_TaskResponse, error) { - var reqBody, resBody DeleteVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteVmfsVolumeStateBody struct { - Req *types.DeleteVmfsVolumeState `xml:"urn:vim25 DeleteVmfsVolumeState,omitempty"` - Res *types.DeleteVmfsVolumeStateResponse `xml:"urn:vim25 DeleteVmfsVolumeStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteVmfsVolumeStateBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteVmfsVolumeState(ctx context.Context, r soap.RoundTripper, req *types.DeleteVmfsVolumeState) (*types.DeleteVmfsVolumeStateResponse, error) { - var reqBody, resBody DeleteVmfsVolumeStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeleteVsanObjectsBody struct { - Req *types.DeleteVsanObjects `xml:"urn:vim25 DeleteVsanObjects,omitempty"` - Res *types.DeleteVsanObjectsResponse `xml:"urn:vim25 DeleteVsanObjectsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeleteVsanObjectsBody) Fault() *soap.Fault { return b.Fault_ } - -func DeleteVsanObjects(ctx context.Context, r soap.RoundTripper, req *types.DeleteVsanObjects) (*types.DeleteVsanObjectsResponse, error) { - var reqBody, resBody DeleteVsanObjectsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeselectVnicBody struct { - Req *types.DeselectVnic `xml:"urn:vim25 DeselectVnic,omitempty"` - Res *types.DeselectVnicResponse `xml:"urn:vim25 DeselectVnicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeselectVnicBody) Fault() *soap.Fault { return b.Fault_ } - -func DeselectVnic(ctx context.Context, r soap.RoundTripper, req *types.DeselectVnic) (*types.DeselectVnicResponse, error) { - var reqBody, resBody DeselectVnicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DeselectVnicForNicTypeBody struct { - Req *types.DeselectVnicForNicType `xml:"urn:vim25 DeselectVnicForNicType,omitempty"` - Res *types.DeselectVnicForNicTypeResponse `xml:"urn:vim25 DeselectVnicForNicTypeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DeselectVnicForNicTypeBody) Fault() *soap.Fault { return b.Fault_ } - -func DeselectVnicForNicType(ctx context.Context, r soap.RoundTripper, req *types.DeselectVnicForNicType) (*types.DeselectVnicForNicTypeResponse, error) { - var reqBody, resBody DeselectVnicForNicTypeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyChildrenBody struct { - Req *types.DestroyChildren `xml:"urn:vim25 DestroyChildren,omitempty"` - Res *types.DestroyChildrenResponse `xml:"urn:vim25 DestroyChildrenResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyChildrenBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyChildren(ctx context.Context, r soap.RoundTripper, req *types.DestroyChildren) (*types.DestroyChildrenResponse, error) { - var reqBody, resBody DestroyChildrenBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyCollectorBody struct { - Req *types.DestroyCollector `xml:"urn:vim25 DestroyCollector,omitempty"` - Res *types.DestroyCollectorResponse `xml:"urn:vim25 DestroyCollectorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyCollectorBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyCollector(ctx context.Context, r soap.RoundTripper, req *types.DestroyCollector) (*types.DestroyCollectorResponse, error) { - var reqBody, resBody DestroyCollectorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyDatastoreBody struct { - Req *types.DestroyDatastore `xml:"urn:vim25 DestroyDatastore,omitempty"` - Res *types.DestroyDatastoreResponse `xml:"urn:vim25 DestroyDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyDatastore(ctx context.Context, r soap.RoundTripper, req *types.DestroyDatastore) (*types.DestroyDatastoreResponse, error) { - var reqBody, resBody DestroyDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyIpPoolBody struct { - Req *types.DestroyIpPool `xml:"urn:vim25 DestroyIpPool,omitempty"` - Res *types.DestroyIpPoolResponse `xml:"urn:vim25 DestroyIpPoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyIpPoolBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyIpPool(ctx context.Context, r soap.RoundTripper, req *types.DestroyIpPool) (*types.DestroyIpPoolResponse, error) { - var reqBody, resBody DestroyIpPoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyNetworkBody struct { - Req *types.DestroyNetwork `xml:"urn:vim25 DestroyNetwork,omitempty"` - Res *types.DestroyNetworkResponse `xml:"urn:vim25 DestroyNetworkResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyNetworkBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyNetwork(ctx context.Context, r soap.RoundTripper, req *types.DestroyNetwork) (*types.DestroyNetworkResponse, error) { - var reqBody, resBody DestroyNetworkBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyProfileBody struct { - Req *types.DestroyProfile `xml:"urn:vim25 DestroyProfile,omitempty"` - Res *types.DestroyProfileResponse `xml:"urn:vim25 DestroyProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyProfile(ctx context.Context, r soap.RoundTripper, req *types.DestroyProfile) (*types.DestroyProfileResponse, error) { - var reqBody, resBody DestroyProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyPropertyCollectorBody struct { - Req *types.DestroyPropertyCollector `xml:"urn:vim25 DestroyPropertyCollector,omitempty"` - Res *types.DestroyPropertyCollectorResponse `xml:"urn:vim25 DestroyPropertyCollectorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyPropertyCollectorBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyPropertyCollector(ctx context.Context, r soap.RoundTripper, req *types.DestroyPropertyCollector) (*types.DestroyPropertyCollectorResponse, error) { - var reqBody, resBody DestroyPropertyCollectorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyPropertyFilterBody struct { - Req *types.DestroyPropertyFilter `xml:"urn:vim25 DestroyPropertyFilter,omitempty"` - Res *types.DestroyPropertyFilterResponse `xml:"urn:vim25 DestroyPropertyFilterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyPropertyFilterBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyPropertyFilter(ctx context.Context, r soap.RoundTripper, req *types.DestroyPropertyFilter) (*types.DestroyPropertyFilterResponse, error) { - var reqBody, resBody DestroyPropertyFilterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyVffsBody struct { - Req *types.DestroyVffs `xml:"urn:vim25 DestroyVffs,omitempty"` - Res *types.DestroyVffsResponse `xml:"urn:vim25 DestroyVffsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyVffsBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyVffs(ctx context.Context, r soap.RoundTripper, req *types.DestroyVffs) (*types.DestroyVffsResponse, error) { - var reqBody, resBody DestroyVffsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DestroyViewBody struct { - Req *types.DestroyView `xml:"urn:vim25 DestroyView,omitempty"` - Res *types.DestroyViewResponse `xml:"urn:vim25 DestroyViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DestroyViewBody) Fault() *soap.Fault { return b.Fault_ } - -func DestroyView(ctx context.Context, r soap.RoundTripper, req *types.DestroyView) (*types.DestroyViewResponse, error) { - var reqBody, resBody DestroyViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type Destroy_TaskBody struct { - Req *types.Destroy_Task `xml:"urn:vim25 Destroy_Task,omitempty"` - Res *types.Destroy_TaskResponse `xml:"urn:vim25 Destroy_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *Destroy_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func Destroy_Task(ctx context.Context, r soap.RoundTripper, req *types.Destroy_Task) (*types.Destroy_TaskResponse, error) { - var reqBody, resBody Destroy_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DetachDisk_TaskBody struct { - Req *types.DetachDisk_Task `xml:"urn:vim25 DetachDisk_Task,omitempty"` - Res *types.DetachDisk_TaskResponse `xml:"urn:vim25 DetachDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DetachDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DetachDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.DetachDisk_Task) (*types.DetachDisk_TaskResponse, error) { - var reqBody, resBody DetachDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DetachScsiLunBody struct { - Req *types.DetachScsiLun `xml:"urn:vim25 DetachScsiLun,omitempty"` - Res *types.DetachScsiLunResponse `xml:"urn:vim25 DetachScsiLunResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DetachScsiLunBody) Fault() *soap.Fault { return b.Fault_ } - -func DetachScsiLun(ctx context.Context, r soap.RoundTripper, req *types.DetachScsiLun) (*types.DetachScsiLunResponse, error) { - var reqBody, resBody DetachScsiLunBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DetachScsiLunEx_TaskBody struct { - Req *types.DetachScsiLunEx_Task `xml:"urn:vim25 DetachScsiLunEx_Task,omitempty"` - Res *types.DetachScsiLunEx_TaskResponse `xml:"urn:vim25 DetachScsiLunEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DetachScsiLunEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DetachScsiLunEx_Task(ctx context.Context, r soap.RoundTripper, req *types.DetachScsiLunEx_Task) (*types.DetachScsiLunEx_TaskResponse, error) { - var reqBody, resBody DetachScsiLunEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DetachTagFromVStorageObjectBody struct { - Req *types.DetachTagFromVStorageObject `xml:"urn:vim25 DetachTagFromVStorageObject,omitempty"` - Res *types.DetachTagFromVStorageObjectResponse `xml:"urn:vim25 DetachTagFromVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DetachTagFromVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func DetachTagFromVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.DetachTagFromVStorageObject) (*types.DetachTagFromVStorageObjectResponse, error) { - var reqBody, resBody DetachTagFromVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisableEvcMode_TaskBody struct { - Req *types.DisableEvcMode_Task `xml:"urn:vim25 DisableEvcMode_Task,omitempty"` - Res *types.DisableEvcMode_TaskResponse `xml:"urn:vim25 DisableEvcMode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisableEvcMode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DisableEvcMode_Task(ctx context.Context, r soap.RoundTripper, req *types.DisableEvcMode_Task) (*types.DisableEvcMode_TaskResponse, error) { - var reqBody, resBody DisableEvcMode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisableFeatureBody struct { - Req *types.DisableFeature `xml:"urn:vim25 DisableFeature,omitempty"` - Res *types.DisableFeatureResponse `xml:"urn:vim25 DisableFeatureResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisableFeatureBody) Fault() *soap.Fault { return b.Fault_ } - -func DisableFeature(ctx context.Context, r soap.RoundTripper, req *types.DisableFeature) (*types.DisableFeatureResponse, error) { - var reqBody, resBody DisableFeatureBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisableHyperThreadingBody struct { - Req *types.DisableHyperThreading `xml:"urn:vim25 DisableHyperThreading,omitempty"` - Res *types.DisableHyperThreadingResponse `xml:"urn:vim25 DisableHyperThreadingResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisableHyperThreadingBody) Fault() *soap.Fault { return b.Fault_ } - -func DisableHyperThreading(ctx context.Context, r soap.RoundTripper, req *types.DisableHyperThreading) (*types.DisableHyperThreadingResponse, error) { - var reqBody, resBody DisableHyperThreadingBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisableMultipathPathBody struct { - Req *types.DisableMultipathPath `xml:"urn:vim25 DisableMultipathPath,omitempty"` - Res *types.DisableMultipathPathResponse `xml:"urn:vim25 DisableMultipathPathResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisableMultipathPathBody) Fault() *soap.Fault { return b.Fault_ } - -func DisableMultipathPath(ctx context.Context, r soap.RoundTripper, req *types.DisableMultipathPath) (*types.DisableMultipathPathResponse, error) { - var reqBody, resBody DisableMultipathPathBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisableRulesetBody struct { - Req *types.DisableRuleset `xml:"urn:vim25 DisableRuleset,omitempty"` - Res *types.DisableRulesetResponse `xml:"urn:vim25 DisableRulesetResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisableRulesetBody) Fault() *soap.Fault { return b.Fault_ } - -func DisableRuleset(ctx context.Context, r soap.RoundTripper, req *types.DisableRuleset) (*types.DisableRulesetResponse, error) { - var reqBody, resBody DisableRulesetBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisableSecondaryVM_TaskBody struct { - Req *types.DisableSecondaryVM_Task `xml:"urn:vim25 DisableSecondaryVM_Task,omitempty"` - Res *types.DisableSecondaryVM_TaskResponse `xml:"urn:vim25 DisableSecondaryVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisableSecondaryVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DisableSecondaryVM_Task(ctx context.Context, r soap.RoundTripper, req *types.DisableSecondaryVM_Task) (*types.DisableSecondaryVM_TaskResponse, error) { - var reqBody, resBody DisableSecondaryVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisableSmartCardAuthenticationBody struct { - Req *types.DisableSmartCardAuthentication `xml:"urn:vim25 DisableSmartCardAuthentication,omitempty"` - Res *types.DisableSmartCardAuthenticationResponse `xml:"urn:vim25 DisableSmartCardAuthenticationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisableSmartCardAuthenticationBody) Fault() *soap.Fault { return b.Fault_ } - -func DisableSmartCardAuthentication(ctx context.Context, r soap.RoundTripper, req *types.DisableSmartCardAuthentication) (*types.DisableSmartCardAuthenticationResponse, error) { - var reqBody, resBody DisableSmartCardAuthenticationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DisconnectHost_TaskBody struct { - Req *types.DisconnectHost_Task `xml:"urn:vim25 DisconnectHost_Task,omitempty"` - Res *types.DisconnectHost_TaskResponse `xml:"urn:vim25 DisconnectHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DisconnectHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DisconnectHost_Task(ctx context.Context, r soap.RoundTripper, req *types.DisconnectHost_Task) (*types.DisconnectHost_TaskResponse, error) { - var reqBody, resBody DisconnectHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DiscoverFcoeHbasBody struct { - Req *types.DiscoverFcoeHbas `xml:"urn:vim25 DiscoverFcoeHbas,omitempty"` - Res *types.DiscoverFcoeHbasResponse `xml:"urn:vim25 DiscoverFcoeHbasResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DiscoverFcoeHbasBody) Fault() *soap.Fault { return b.Fault_ } - -func DiscoverFcoeHbas(ctx context.Context, r soap.RoundTripper, req *types.DiscoverFcoeHbas) (*types.DiscoverFcoeHbasResponse, error) { - var reqBody, resBody DiscoverFcoeHbasBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DissociateProfileBody struct { - Req *types.DissociateProfile `xml:"urn:vim25 DissociateProfile,omitempty"` - Res *types.DissociateProfileResponse `xml:"urn:vim25 DissociateProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DissociateProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func DissociateProfile(ctx context.Context, r soap.RoundTripper, req *types.DissociateProfile) (*types.DissociateProfileResponse, error) { - var reqBody, resBody DissociateProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DoesCustomizationSpecExistBody struct { - Req *types.DoesCustomizationSpecExist `xml:"urn:vim25 DoesCustomizationSpecExist,omitempty"` - Res *types.DoesCustomizationSpecExistResponse `xml:"urn:vim25 DoesCustomizationSpecExistResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DoesCustomizationSpecExistBody) Fault() *soap.Fault { return b.Fault_ } - -func DoesCustomizationSpecExist(ctx context.Context, r soap.RoundTripper, req *types.DoesCustomizationSpecExist) (*types.DoesCustomizationSpecExistResponse, error) { - var reqBody, resBody DoesCustomizationSpecExistBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DuplicateCustomizationSpecBody struct { - Req *types.DuplicateCustomizationSpec `xml:"urn:vim25 DuplicateCustomizationSpec,omitempty"` - Res *types.DuplicateCustomizationSpecResponse `xml:"urn:vim25 DuplicateCustomizationSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DuplicateCustomizationSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func DuplicateCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.DuplicateCustomizationSpec) (*types.DuplicateCustomizationSpecResponse, error) { - var reqBody, resBody DuplicateCustomizationSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type DvsReconfigureVmVnicNetworkResourcePool_TaskBody struct { - Req *types.DvsReconfigureVmVnicNetworkResourcePool_Task `xml:"urn:vim25 DvsReconfigureVmVnicNetworkResourcePool_Task,omitempty"` - Res *types.DvsReconfigureVmVnicNetworkResourcePool_TaskResponse `xml:"urn:vim25 DvsReconfigureVmVnicNetworkResourcePool_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *DvsReconfigureVmVnicNetworkResourcePool_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func DvsReconfigureVmVnicNetworkResourcePool_Task(ctx context.Context, r soap.RoundTripper, req *types.DvsReconfigureVmVnicNetworkResourcePool_Task) (*types.DvsReconfigureVmVnicNetworkResourcePool_TaskResponse, error) { - var reqBody, resBody DvsReconfigureVmVnicNetworkResourcePool_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EagerZeroVirtualDisk_TaskBody struct { - Req *types.EagerZeroVirtualDisk_Task `xml:"urn:vim25 EagerZeroVirtualDisk_Task,omitempty"` - Res *types.EagerZeroVirtualDisk_TaskResponse `xml:"urn:vim25 EagerZeroVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EagerZeroVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func EagerZeroVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.EagerZeroVirtualDisk_Task) (*types.EagerZeroVirtualDisk_TaskResponse, error) { - var reqBody, resBody EagerZeroVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableAlarmActionsBody struct { - Req *types.EnableAlarmActions `xml:"urn:vim25 EnableAlarmActions,omitempty"` - Res *types.EnableAlarmActionsResponse `xml:"urn:vim25 EnableAlarmActionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableAlarmActionsBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableAlarmActions(ctx context.Context, r soap.RoundTripper, req *types.EnableAlarmActions) (*types.EnableAlarmActionsResponse, error) { - var reqBody, resBody EnableAlarmActionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableCryptoBody struct { - Req *types.EnableCrypto `xml:"urn:vim25 EnableCrypto,omitempty"` - Res *types.EnableCryptoResponse `xml:"urn:vim25 EnableCryptoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableCryptoBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableCrypto(ctx context.Context, r soap.RoundTripper, req *types.EnableCrypto) (*types.EnableCryptoResponse, error) { - var reqBody, resBody EnableCryptoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableFeatureBody struct { - Req *types.EnableFeature `xml:"urn:vim25 EnableFeature,omitempty"` - Res *types.EnableFeatureResponse `xml:"urn:vim25 EnableFeatureResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableFeatureBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableFeature(ctx context.Context, r soap.RoundTripper, req *types.EnableFeature) (*types.EnableFeatureResponse, error) { - var reqBody, resBody EnableFeatureBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableHyperThreadingBody struct { - Req *types.EnableHyperThreading `xml:"urn:vim25 EnableHyperThreading,omitempty"` - Res *types.EnableHyperThreadingResponse `xml:"urn:vim25 EnableHyperThreadingResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableHyperThreadingBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableHyperThreading(ctx context.Context, r soap.RoundTripper, req *types.EnableHyperThreading) (*types.EnableHyperThreadingResponse, error) { - var reqBody, resBody EnableHyperThreadingBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableMultipathPathBody struct { - Req *types.EnableMultipathPath `xml:"urn:vim25 EnableMultipathPath,omitempty"` - Res *types.EnableMultipathPathResponse `xml:"urn:vim25 EnableMultipathPathResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableMultipathPathBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableMultipathPath(ctx context.Context, r soap.RoundTripper, req *types.EnableMultipathPath) (*types.EnableMultipathPathResponse, error) { - var reqBody, resBody EnableMultipathPathBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableNetworkResourceManagementBody struct { - Req *types.EnableNetworkResourceManagement `xml:"urn:vim25 EnableNetworkResourceManagement,omitempty"` - Res *types.EnableNetworkResourceManagementResponse `xml:"urn:vim25 EnableNetworkResourceManagementResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableNetworkResourceManagementBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableNetworkResourceManagement(ctx context.Context, r soap.RoundTripper, req *types.EnableNetworkResourceManagement) (*types.EnableNetworkResourceManagementResponse, error) { - var reqBody, resBody EnableNetworkResourceManagementBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableRulesetBody struct { - Req *types.EnableRuleset `xml:"urn:vim25 EnableRuleset,omitempty"` - Res *types.EnableRulesetResponse `xml:"urn:vim25 EnableRulesetResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableRulesetBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableRuleset(ctx context.Context, r soap.RoundTripper, req *types.EnableRuleset) (*types.EnableRulesetResponse, error) { - var reqBody, resBody EnableRulesetBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableSecondaryVM_TaskBody struct { - Req *types.EnableSecondaryVM_Task `xml:"urn:vim25 EnableSecondaryVM_Task,omitempty"` - Res *types.EnableSecondaryVM_TaskResponse `xml:"urn:vim25 EnableSecondaryVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableSecondaryVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableSecondaryVM_Task(ctx context.Context, r soap.RoundTripper, req *types.EnableSecondaryVM_Task) (*types.EnableSecondaryVM_TaskResponse, error) { - var reqBody, resBody EnableSecondaryVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnableSmartCardAuthenticationBody struct { - Req *types.EnableSmartCardAuthentication `xml:"urn:vim25 EnableSmartCardAuthentication,omitempty"` - Res *types.EnableSmartCardAuthenticationResponse `xml:"urn:vim25 EnableSmartCardAuthenticationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnableSmartCardAuthenticationBody) Fault() *soap.Fault { return b.Fault_ } - -func EnableSmartCardAuthentication(ctx context.Context, r soap.RoundTripper, req *types.EnableSmartCardAuthentication) (*types.EnableSmartCardAuthenticationResponse, error) { - var reqBody, resBody EnableSmartCardAuthenticationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnterLockdownModeBody struct { - Req *types.EnterLockdownMode `xml:"urn:vim25 EnterLockdownMode,omitempty"` - Res *types.EnterLockdownModeResponse `xml:"urn:vim25 EnterLockdownModeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnterLockdownModeBody) Fault() *soap.Fault { return b.Fault_ } - -func EnterLockdownMode(ctx context.Context, r soap.RoundTripper, req *types.EnterLockdownMode) (*types.EnterLockdownModeResponse, error) { - var reqBody, resBody EnterLockdownModeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EnterMaintenanceMode_TaskBody struct { - Req *types.EnterMaintenanceMode_Task `xml:"urn:vim25 EnterMaintenanceMode_Task,omitempty"` - Res *types.EnterMaintenanceMode_TaskResponse `xml:"urn:vim25 EnterMaintenanceMode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EnterMaintenanceMode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func EnterMaintenanceMode_Task(ctx context.Context, r soap.RoundTripper, req *types.EnterMaintenanceMode_Task) (*types.EnterMaintenanceMode_TaskResponse, error) { - var reqBody, resBody EnterMaintenanceMode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EstimateDatabaseSizeBody struct { - Req *types.EstimateDatabaseSize `xml:"urn:vim25 EstimateDatabaseSize,omitempty"` - Res *types.EstimateDatabaseSizeResponse `xml:"urn:vim25 EstimateDatabaseSizeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EstimateDatabaseSizeBody) Fault() *soap.Fault { return b.Fault_ } - -func EstimateDatabaseSize(ctx context.Context, r soap.RoundTripper, req *types.EstimateDatabaseSize) (*types.EstimateDatabaseSizeResponse, error) { - var reqBody, resBody EstimateDatabaseSizeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EstimateStorageForConsolidateSnapshots_TaskBody struct { - Req *types.EstimateStorageForConsolidateSnapshots_Task `xml:"urn:vim25 EstimateStorageForConsolidateSnapshots_Task,omitempty"` - Res *types.EstimateStorageForConsolidateSnapshots_TaskResponse `xml:"urn:vim25 EstimateStorageForConsolidateSnapshots_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EstimateStorageForConsolidateSnapshots_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func EstimateStorageForConsolidateSnapshots_Task(ctx context.Context, r soap.RoundTripper, req *types.EstimateStorageForConsolidateSnapshots_Task) (*types.EstimateStorageForConsolidateSnapshots_TaskResponse, error) { - var reqBody, resBody EstimateStorageForConsolidateSnapshots_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EsxAgentHostManagerUpdateConfigBody struct { - Req *types.EsxAgentHostManagerUpdateConfig `xml:"urn:vim25 EsxAgentHostManagerUpdateConfig,omitempty"` - Res *types.EsxAgentHostManagerUpdateConfigResponse `xml:"urn:vim25 EsxAgentHostManagerUpdateConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EsxAgentHostManagerUpdateConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func EsxAgentHostManagerUpdateConfig(ctx context.Context, r soap.RoundTripper, req *types.EsxAgentHostManagerUpdateConfig) (*types.EsxAgentHostManagerUpdateConfigResponse, error) { - var reqBody, resBody EsxAgentHostManagerUpdateConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EvacuateVsanNode_TaskBody struct { - Req *types.EvacuateVsanNode_Task `xml:"urn:vim25 EvacuateVsanNode_Task,omitempty"` - Res *types.EvacuateVsanNode_TaskResponse `xml:"urn:vim25 EvacuateVsanNode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EvacuateVsanNode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func EvacuateVsanNode_Task(ctx context.Context, r soap.RoundTripper, req *types.EvacuateVsanNode_Task) (*types.EvacuateVsanNode_TaskResponse, error) { - var reqBody, resBody EvacuateVsanNode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type EvcManagerBody struct { - Req *types.EvcManager `xml:"urn:vim25 EvcManager,omitempty"` - Res *types.EvcManagerResponse `xml:"urn:vim25 EvcManagerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *EvcManagerBody) Fault() *soap.Fault { return b.Fault_ } - -func EvcManager(ctx context.Context, r soap.RoundTripper, req *types.EvcManager) (*types.EvcManagerResponse, error) { - var reqBody, resBody EvcManagerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExecuteHostProfileBody struct { - Req *types.ExecuteHostProfile `xml:"urn:vim25 ExecuteHostProfile,omitempty"` - Res *types.ExecuteHostProfileResponse `xml:"urn:vim25 ExecuteHostProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExecuteHostProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func ExecuteHostProfile(ctx context.Context, r soap.RoundTripper, req *types.ExecuteHostProfile) (*types.ExecuteHostProfileResponse, error) { - var reqBody, resBody ExecuteHostProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExecuteSimpleCommandBody struct { - Req *types.ExecuteSimpleCommand `xml:"urn:vim25 ExecuteSimpleCommand,omitempty"` - Res *types.ExecuteSimpleCommandResponse `xml:"urn:vim25 ExecuteSimpleCommandResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExecuteSimpleCommandBody) Fault() *soap.Fault { return b.Fault_ } - -func ExecuteSimpleCommand(ctx context.Context, r soap.RoundTripper, req *types.ExecuteSimpleCommand) (*types.ExecuteSimpleCommandResponse, error) { - var reqBody, resBody ExecuteSimpleCommandBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExitLockdownModeBody struct { - Req *types.ExitLockdownMode `xml:"urn:vim25 ExitLockdownMode,omitempty"` - Res *types.ExitLockdownModeResponse `xml:"urn:vim25 ExitLockdownModeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExitLockdownModeBody) Fault() *soap.Fault { return b.Fault_ } - -func ExitLockdownMode(ctx context.Context, r soap.RoundTripper, req *types.ExitLockdownMode) (*types.ExitLockdownModeResponse, error) { - var reqBody, resBody ExitLockdownModeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExitMaintenanceMode_TaskBody struct { - Req *types.ExitMaintenanceMode_Task `xml:"urn:vim25 ExitMaintenanceMode_Task,omitempty"` - Res *types.ExitMaintenanceMode_TaskResponse `xml:"urn:vim25 ExitMaintenanceMode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExitMaintenanceMode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ExitMaintenanceMode_Task(ctx context.Context, r soap.RoundTripper, req *types.ExitMaintenanceMode_Task) (*types.ExitMaintenanceMode_TaskResponse, error) { - var reqBody, resBody ExitMaintenanceMode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExpandVmfsDatastoreBody struct { - Req *types.ExpandVmfsDatastore `xml:"urn:vim25 ExpandVmfsDatastore,omitempty"` - Res *types.ExpandVmfsDatastoreResponse `xml:"urn:vim25 ExpandVmfsDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExpandVmfsDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func ExpandVmfsDatastore(ctx context.Context, r soap.RoundTripper, req *types.ExpandVmfsDatastore) (*types.ExpandVmfsDatastoreResponse, error) { - var reqBody, resBody ExpandVmfsDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExpandVmfsExtentBody struct { - Req *types.ExpandVmfsExtent `xml:"urn:vim25 ExpandVmfsExtent,omitempty"` - Res *types.ExpandVmfsExtentResponse `xml:"urn:vim25 ExpandVmfsExtentResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExpandVmfsExtentBody) Fault() *soap.Fault { return b.Fault_ } - -func ExpandVmfsExtent(ctx context.Context, r soap.RoundTripper, req *types.ExpandVmfsExtent) (*types.ExpandVmfsExtentResponse, error) { - var reqBody, resBody ExpandVmfsExtentBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExportAnswerFile_TaskBody struct { - Req *types.ExportAnswerFile_Task `xml:"urn:vim25 ExportAnswerFile_Task,omitempty"` - Res *types.ExportAnswerFile_TaskResponse `xml:"urn:vim25 ExportAnswerFile_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExportAnswerFile_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ExportAnswerFile_Task(ctx context.Context, r soap.RoundTripper, req *types.ExportAnswerFile_Task) (*types.ExportAnswerFile_TaskResponse, error) { - var reqBody, resBody ExportAnswerFile_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExportProfileBody struct { - Req *types.ExportProfile `xml:"urn:vim25 ExportProfile,omitempty"` - Res *types.ExportProfileResponse `xml:"urn:vim25 ExportProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExportProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func ExportProfile(ctx context.Context, r soap.RoundTripper, req *types.ExportProfile) (*types.ExportProfileResponse, error) { - var reqBody, resBody ExportProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExportSnapshotBody struct { - Req *types.ExportSnapshot `xml:"urn:vim25 ExportSnapshot,omitempty"` - Res *types.ExportSnapshotResponse `xml:"urn:vim25 ExportSnapshotResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExportSnapshotBody) Fault() *soap.Fault { return b.Fault_ } - -func ExportSnapshot(ctx context.Context, r soap.RoundTripper, req *types.ExportSnapshot) (*types.ExportSnapshotResponse, error) { - var reqBody, resBody ExportSnapshotBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExportVAppBody struct { - Req *types.ExportVApp `xml:"urn:vim25 ExportVApp,omitempty"` - Res *types.ExportVAppResponse `xml:"urn:vim25 ExportVAppResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExportVAppBody) Fault() *soap.Fault { return b.Fault_ } - -func ExportVApp(ctx context.Context, r soap.RoundTripper, req *types.ExportVApp) (*types.ExportVAppResponse, error) { - var reqBody, resBody ExportVAppBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExportVmBody struct { - Req *types.ExportVm `xml:"urn:vim25 ExportVm,omitempty"` - Res *types.ExportVmResponse `xml:"urn:vim25 ExportVmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExportVmBody) Fault() *soap.Fault { return b.Fault_ } - -func ExportVm(ctx context.Context, r soap.RoundTripper, req *types.ExportVm) (*types.ExportVmResponse, error) { - var reqBody, resBody ExportVmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExtendDisk_TaskBody struct { - Req *types.ExtendDisk_Task `xml:"urn:vim25 ExtendDisk_Task,omitempty"` - Res *types.ExtendDisk_TaskResponse `xml:"urn:vim25 ExtendDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExtendDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ExtendDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.ExtendDisk_Task) (*types.ExtendDisk_TaskResponse, error) { - var reqBody, resBody ExtendDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExtendVffsBody struct { - Req *types.ExtendVffs `xml:"urn:vim25 ExtendVffs,omitempty"` - Res *types.ExtendVffsResponse `xml:"urn:vim25 ExtendVffsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExtendVffsBody) Fault() *soap.Fault { return b.Fault_ } - -func ExtendVffs(ctx context.Context, r soap.RoundTripper, req *types.ExtendVffs) (*types.ExtendVffsResponse, error) { - var reqBody, resBody ExtendVffsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExtendVirtualDisk_TaskBody struct { - Req *types.ExtendVirtualDisk_Task `xml:"urn:vim25 ExtendVirtualDisk_Task,omitempty"` - Res *types.ExtendVirtualDisk_TaskResponse `xml:"urn:vim25 ExtendVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExtendVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ExtendVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.ExtendVirtualDisk_Task) (*types.ExtendVirtualDisk_TaskResponse, error) { - var reqBody, resBody ExtendVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExtendVmfsDatastoreBody struct { - Req *types.ExtendVmfsDatastore `xml:"urn:vim25 ExtendVmfsDatastore,omitempty"` - Res *types.ExtendVmfsDatastoreResponse `xml:"urn:vim25 ExtendVmfsDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExtendVmfsDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func ExtendVmfsDatastore(ctx context.Context, r soap.RoundTripper, req *types.ExtendVmfsDatastore) (*types.ExtendVmfsDatastoreResponse, error) { - var reqBody, resBody ExtendVmfsDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ExtractOvfEnvironmentBody struct { - Req *types.ExtractOvfEnvironment `xml:"urn:vim25 ExtractOvfEnvironment,omitempty"` - Res *types.ExtractOvfEnvironmentResponse `xml:"urn:vim25 ExtractOvfEnvironmentResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ExtractOvfEnvironmentBody) Fault() *soap.Fault { return b.Fault_ } - -func ExtractOvfEnvironment(ctx context.Context, r soap.RoundTripper, req *types.ExtractOvfEnvironment) (*types.ExtractOvfEnvironmentResponse, error) { - var reqBody, resBody ExtractOvfEnvironmentBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FetchDVPortKeysBody struct { - Req *types.FetchDVPortKeys `xml:"urn:vim25 FetchDVPortKeys,omitempty"` - Res *types.FetchDVPortKeysResponse `xml:"urn:vim25 FetchDVPortKeysResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FetchDVPortKeysBody) Fault() *soap.Fault { return b.Fault_ } - -func FetchDVPortKeys(ctx context.Context, r soap.RoundTripper, req *types.FetchDVPortKeys) (*types.FetchDVPortKeysResponse, error) { - var reqBody, resBody FetchDVPortKeysBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FetchDVPortsBody struct { - Req *types.FetchDVPorts `xml:"urn:vim25 FetchDVPorts,omitempty"` - Res *types.FetchDVPortsResponse `xml:"urn:vim25 FetchDVPortsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FetchDVPortsBody) Fault() *soap.Fault { return b.Fault_ } - -func FetchDVPorts(ctx context.Context, r soap.RoundTripper, req *types.FetchDVPorts) (*types.FetchDVPortsResponse, error) { - var reqBody, resBody FetchDVPortsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FetchSystemEventLogBody struct { - Req *types.FetchSystemEventLog `xml:"urn:vim25 FetchSystemEventLog,omitempty"` - Res *types.FetchSystemEventLogResponse `xml:"urn:vim25 FetchSystemEventLogResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FetchSystemEventLogBody) Fault() *soap.Fault { return b.Fault_ } - -func FetchSystemEventLog(ctx context.Context, r soap.RoundTripper, req *types.FetchSystemEventLog) (*types.FetchSystemEventLogResponse, error) { - var reqBody, resBody FetchSystemEventLogBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FetchUserPrivilegeOnEntitiesBody struct { - Req *types.FetchUserPrivilegeOnEntities `xml:"urn:vim25 FetchUserPrivilegeOnEntities,omitempty"` - Res *types.FetchUserPrivilegeOnEntitiesResponse `xml:"urn:vim25 FetchUserPrivilegeOnEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FetchUserPrivilegeOnEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func FetchUserPrivilegeOnEntities(ctx context.Context, r soap.RoundTripper, req *types.FetchUserPrivilegeOnEntities) (*types.FetchUserPrivilegeOnEntitiesResponse, error) { - var reqBody, resBody FetchUserPrivilegeOnEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindAllByDnsNameBody struct { - Req *types.FindAllByDnsName `xml:"urn:vim25 FindAllByDnsName,omitempty"` - Res *types.FindAllByDnsNameResponse `xml:"urn:vim25 FindAllByDnsNameResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindAllByDnsNameBody) Fault() *soap.Fault { return b.Fault_ } - -func FindAllByDnsName(ctx context.Context, r soap.RoundTripper, req *types.FindAllByDnsName) (*types.FindAllByDnsNameResponse, error) { - var reqBody, resBody FindAllByDnsNameBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindAllByIpBody struct { - Req *types.FindAllByIp `xml:"urn:vim25 FindAllByIp,omitempty"` - Res *types.FindAllByIpResponse `xml:"urn:vim25 FindAllByIpResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindAllByIpBody) Fault() *soap.Fault { return b.Fault_ } - -func FindAllByIp(ctx context.Context, r soap.RoundTripper, req *types.FindAllByIp) (*types.FindAllByIpResponse, error) { - var reqBody, resBody FindAllByIpBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindAllByUuidBody struct { - Req *types.FindAllByUuid `xml:"urn:vim25 FindAllByUuid,omitempty"` - Res *types.FindAllByUuidResponse `xml:"urn:vim25 FindAllByUuidResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindAllByUuidBody) Fault() *soap.Fault { return b.Fault_ } - -func FindAllByUuid(ctx context.Context, r soap.RoundTripper, req *types.FindAllByUuid) (*types.FindAllByUuidResponse, error) { - var reqBody, resBody FindAllByUuidBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindAssociatedProfileBody struct { - Req *types.FindAssociatedProfile `xml:"urn:vim25 FindAssociatedProfile,omitempty"` - Res *types.FindAssociatedProfileResponse `xml:"urn:vim25 FindAssociatedProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindAssociatedProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func FindAssociatedProfile(ctx context.Context, r soap.RoundTripper, req *types.FindAssociatedProfile) (*types.FindAssociatedProfileResponse, error) { - var reqBody, resBody FindAssociatedProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindByDatastorePathBody struct { - Req *types.FindByDatastorePath `xml:"urn:vim25 FindByDatastorePath,omitempty"` - Res *types.FindByDatastorePathResponse `xml:"urn:vim25 FindByDatastorePathResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindByDatastorePathBody) Fault() *soap.Fault { return b.Fault_ } - -func FindByDatastorePath(ctx context.Context, r soap.RoundTripper, req *types.FindByDatastorePath) (*types.FindByDatastorePathResponse, error) { - var reqBody, resBody FindByDatastorePathBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindByDnsNameBody struct { - Req *types.FindByDnsName `xml:"urn:vim25 FindByDnsName,omitempty"` - Res *types.FindByDnsNameResponse `xml:"urn:vim25 FindByDnsNameResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindByDnsNameBody) Fault() *soap.Fault { return b.Fault_ } - -func FindByDnsName(ctx context.Context, r soap.RoundTripper, req *types.FindByDnsName) (*types.FindByDnsNameResponse, error) { - var reqBody, resBody FindByDnsNameBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindByInventoryPathBody struct { - Req *types.FindByInventoryPath `xml:"urn:vim25 FindByInventoryPath,omitempty"` - Res *types.FindByInventoryPathResponse `xml:"urn:vim25 FindByInventoryPathResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindByInventoryPathBody) Fault() *soap.Fault { return b.Fault_ } - -func FindByInventoryPath(ctx context.Context, r soap.RoundTripper, req *types.FindByInventoryPath) (*types.FindByInventoryPathResponse, error) { - var reqBody, resBody FindByInventoryPathBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindByIpBody struct { - Req *types.FindByIp `xml:"urn:vim25 FindByIp,omitempty"` - Res *types.FindByIpResponse `xml:"urn:vim25 FindByIpResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindByIpBody) Fault() *soap.Fault { return b.Fault_ } - -func FindByIp(ctx context.Context, r soap.RoundTripper, req *types.FindByIp) (*types.FindByIpResponse, error) { - var reqBody, resBody FindByIpBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindByUuidBody struct { - Req *types.FindByUuid `xml:"urn:vim25 FindByUuid,omitempty"` - Res *types.FindByUuidResponse `xml:"urn:vim25 FindByUuidResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindByUuidBody) Fault() *soap.Fault { return b.Fault_ } - -func FindByUuid(ctx context.Context, r soap.RoundTripper, req *types.FindByUuid) (*types.FindByUuidResponse, error) { - var reqBody, resBody FindByUuidBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindChildBody struct { - Req *types.FindChild `xml:"urn:vim25 FindChild,omitempty"` - Res *types.FindChildResponse `xml:"urn:vim25 FindChildResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindChildBody) Fault() *soap.Fault { return b.Fault_ } - -func FindChild(ctx context.Context, r soap.RoundTripper, req *types.FindChild) (*types.FindChildResponse, error) { - var reqBody, resBody FindChildBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindExtensionBody struct { - Req *types.FindExtension `xml:"urn:vim25 FindExtension,omitempty"` - Res *types.FindExtensionResponse `xml:"urn:vim25 FindExtensionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindExtensionBody) Fault() *soap.Fault { return b.Fault_ } - -func FindExtension(ctx context.Context, r soap.RoundTripper, req *types.FindExtension) (*types.FindExtensionResponse, error) { - var reqBody, resBody FindExtensionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FindRulesForVmBody struct { - Req *types.FindRulesForVm `xml:"urn:vim25 FindRulesForVm,omitempty"` - Res *types.FindRulesForVmResponse `xml:"urn:vim25 FindRulesForVmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FindRulesForVmBody) Fault() *soap.Fault { return b.Fault_ } - -func FindRulesForVm(ctx context.Context, r soap.RoundTripper, req *types.FindRulesForVm) (*types.FindRulesForVmResponse, error) { - var reqBody, resBody FindRulesForVmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FormatVffsBody struct { - Req *types.FormatVffs `xml:"urn:vim25 FormatVffs,omitempty"` - Res *types.FormatVffsResponse `xml:"urn:vim25 FormatVffsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FormatVffsBody) Fault() *soap.Fault { return b.Fault_ } - -func FormatVffs(ctx context.Context, r soap.RoundTripper, req *types.FormatVffs) (*types.FormatVffsResponse, error) { - var reqBody, resBody FormatVffsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type FormatVmfsBody struct { - Req *types.FormatVmfs `xml:"urn:vim25 FormatVmfs,omitempty"` - Res *types.FormatVmfsResponse `xml:"urn:vim25 FormatVmfsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *FormatVmfsBody) Fault() *soap.Fault { return b.Fault_ } - -func FormatVmfs(ctx context.Context, r soap.RoundTripper, req *types.FormatVmfs) (*types.FormatVmfsResponse, error) { - var reqBody, resBody FormatVmfsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateCertificateSigningRequestBody struct { - Req *types.GenerateCertificateSigningRequest `xml:"urn:vim25 GenerateCertificateSigningRequest,omitempty"` - Res *types.GenerateCertificateSigningRequestResponse `xml:"urn:vim25 GenerateCertificateSigningRequestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateCertificateSigningRequestBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateCertificateSigningRequest(ctx context.Context, r soap.RoundTripper, req *types.GenerateCertificateSigningRequest) (*types.GenerateCertificateSigningRequestResponse, error) { - var reqBody, resBody GenerateCertificateSigningRequestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateCertificateSigningRequestByDnBody struct { - Req *types.GenerateCertificateSigningRequestByDn `xml:"urn:vim25 GenerateCertificateSigningRequestByDn,omitempty"` - Res *types.GenerateCertificateSigningRequestByDnResponse `xml:"urn:vim25 GenerateCertificateSigningRequestByDnResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateCertificateSigningRequestByDnBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateCertificateSigningRequestByDn(ctx context.Context, r soap.RoundTripper, req *types.GenerateCertificateSigningRequestByDn) (*types.GenerateCertificateSigningRequestByDnResponse, error) { - var reqBody, resBody GenerateCertificateSigningRequestByDnBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateClientCsrBody struct { - Req *types.GenerateClientCsr `xml:"urn:vim25 GenerateClientCsr,omitempty"` - Res *types.GenerateClientCsrResponse `xml:"urn:vim25 GenerateClientCsrResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateClientCsrBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateClientCsr(ctx context.Context, r soap.RoundTripper, req *types.GenerateClientCsr) (*types.GenerateClientCsrResponse, error) { - var reqBody, resBody GenerateClientCsrBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateConfigTaskListBody struct { - Req *types.GenerateConfigTaskList `xml:"urn:vim25 GenerateConfigTaskList,omitempty"` - Res *types.GenerateConfigTaskListResponse `xml:"urn:vim25 GenerateConfigTaskListResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateConfigTaskListBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateConfigTaskList(ctx context.Context, r soap.RoundTripper, req *types.GenerateConfigTaskList) (*types.GenerateConfigTaskListResponse, error) { - var reqBody, resBody GenerateConfigTaskListBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateHostConfigTaskSpec_TaskBody struct { - Req *types.GenerateHostConfigTaskSpec_Task `xml:"urn:vim25 GenerateHostConfigTaskSpec_Task,omitempty"` - Res *types.GenerateHostConfigTaskSpec_TaskResponse `xml:"urn:vim25 GenerateHostConfigTaskSpec_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateHostConfigTaskSpec_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateHostConfigTaskSpec_Task(ctx context.Context, r soap.RoundTripper, req *types.GenerateHostConfigTaskSpec_Task) (*types.GenerateHostConfigTaskSpec_TaskResponse, error) { - var reqBody, resBody GenerateHostConfigTaskSpec_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateHostProfileTaskList_TaskBody struct { - Req *types.GenerateHostProfileTaskList_Task `xml:"urn:vim25 GenerateHostProfileTaskList_Task,omitempty"` - Res *types.GenerateHostProfileTaskList_TaskResponse `xml:"urn:vim25 GenerateHostProfileTaskList_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateHostProfileTaskList_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateHostProfileTaskList_Task(ctx context.Context, r soap.RoundTripper, req *types.GenerateHostProfileTaskList_Task) (*types.GenerateHostProfileTaskList_TaskResponse, error) { - var reqBody, resBody GenerateHostProfileTaskList_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateKeyBody struct { - Req *types.GenerateKey `xml:"urn:vim25 GenerateKey,omitempty"` - Res *types.GenerateKeyResponse `xml:"urn:vim25 GenerateKeyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateKeyBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateKey(ctx context.Context, r soap.RoundTripper, req *types.GenerateKey) (*types.GenerateKeyResponse, error) { - var reqBody, resBody GenerateKeyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateLogBundles_TaskBody struct { - Req *types.GenerateLogBundles_Task `xml:"urn:vim25 GenerateLogBundles_Task,omitempty"` - Res *types.GenerateLogBundles_TaskResponse `xml:"urn:vim25 GenerateLogBundles_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateLogBundles_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateLogBundles_Task(ctx context.Context, r soap.RoundTripper, req *types.GenerateLogBundles_Task) (*types.GenerateLogBundles_TaskResponse, error) { - var reqBody, resBody GenerateLogBundles_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GenerateSelfSignedClientCertBody struct { - Req *types.GenerateSelfSignedClientCert `xml:"urn:vim25 GenerateSelfSignedClientCert,omitempty"` - Res *types.GenerateSelfSignedClientCertResponse `xml:"urn:vim25 GenerateSelfSignedClientCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GenerateSelfSignedClientCertBody) Fault() *soap.Fault { return b.Fault_ } - -func GenerateSelfSignedClientCert(ctx context.Context, r soap.RoundTripper, req *types.GenerateSelfSignedClientCert) (*types.GenerateSelfSignedClientCertResponse, error) { - var reqBody, resBody GenerateSelfSignedClientCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GetAlarmBody struct { - Req *types.GetAlarm `xml:"urn:vim25 GetAlarm,omitempty"` - Res *types.GetAlarmResponse `xml:"urn:vim25 GetAlarmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GetAlarmBody) Fault() *soap.Fault { return b.Fault_ } - -func GetAlarm(ctx context.Context, r soap.RoundTripper, req *types.GetAlarm) (*types.GetAlarmResponse, error) { - var reqBody, resBody GetAlarmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GetAlarmStateBody struct { - Req *types.GetAlarmState `xml:"urn:vim25 GetAlarmState,omitempty"` - Res *types.GetAlarmStateResponse `xml:"urn:vim25 GetAlarmStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GetAlarmStateBody) Fault() *soap.Fault { return b.Fault_ } - -func GetAlarmState(ctx context.Context, r soap.RoundTripper, req *types.GetAlarmState) (*types.GetAlarmStateResponse, error) { - var reqBody, resBody GetAlarmStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GetCustomizationSpecBody struct { - Req *types.GetCustomizationSpec `xml:"urn:vim25 GetCustomizationSpec,omitempty"` - Res *types.GetCustomizationSpecResponse `xml:"urn:vim25 GetCustomizationSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GetCustomizationSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func GetCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.GetCustomizationSpec) (*types.GetCustomizationSpecResponse, error) { - var reqBody, resBody GetCustomizationSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GetPublicKeyBody struct { - Req *types.GetPublicKey `xml:"urn:vim25 GetPublicKey,omitempty"` - Res *types.GetPublicKeyResponse `xml:"urn:vim25 GetPublicKeyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GetPublicKeyBody) Fault() *soap.Fault { return b.Fault_ } - -func GetPublicKey(ctx context.Context, r soap.RoundTripper, req *types.GetPublicKey) (*types.GetPublicKeyResponse, error) { - var reqBody, resBody GetPublicKeyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GetResourceUsageBody struct { - Req *types.GetResourceUsage `xml:"urn:vim25 GetResourceUsage,omitempty"` - Res *types.GetResourceUsageResponse `xml:"urn:vim25 GetResourceUsageResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GetResourceUsageBody) Fault() *soap.Fault { return b.Fault_ } - -func GetResourceUsage(ctx context.Context, r soap.RoundTripper, req *types.GetResourceUsage) (*types.GetResourceUsageResponse, error) { - var reqBody, resBody GetResourceUsageBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GetVchaClusterHealthBody struct { - Req *types.GetVchaClusterHealth `xml:"urn:vim25 GetVchaClusterHealth,omitempty"` - Res *types.GetVchaClusterHealthResponse `xml:"urn:vim25 GetVchaClusterHealthResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GetVchaClusterHealthBody) Fault() *soap.Fault { return b.Fault_ } - -func GetVchaClusterHealth(ctx context.Context, r soap.RoundTripper, req *types.GetVchaClusterHealth) (*types.GetVchaClusterHealthResponse, error) { - var reqBody, resBody GetVchaClusterHealthBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type GetVsanObjExtAttrsBody struct { - Req *types.GetVsanObjExtAttrs `xml:"urn:vim25 GetVsanObjExtAttrs,omitempty"` - Res *types.GetVsanObjExtAttrsResponse `xml:"urn:vim25 GetVsanObjExtAttrsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *GetVsanObjExtAttrsBody) Fault() *soap.Fault { return b.Fault_ } - -func GetVsanObjExtAttrs(ctx context.Context, r soap.RoundTripper, req *types.GetVsanObjExtAttrs) (*types.GetVsanObjExtAttrsResponse, error) { - var reqBody, resBody GetVsanObjExtAttrsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HasMonitoredEntityBody struct { - Req *types.HasMonitoredEntity `xml:"urn:vim25 HasMonitoredEntity,omitempty"` - Res *types.HasMonitoredEntityResponse `xml:"urn:vim25 HasMonitoredEntityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HasMonitoredEntityBody) Fault() *soap.Fault { return b.Fault_ } - -func HasMonitoredEntity(ctx context.Context, r soap.RoundTripper, req *types.HasMonitoredEntity) (*types.HasMonitoredEntityResponse, error) { - var reqBody, resBody HasMonitoredEntityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HasPrivilegeOnEntitiesBody struct { - Req *types.HasPrivilegeOnEntities `xml:"urn:vim25 HasPrivilegeOnEntities,omitempty"` - Res *types.HasPrivilegeOnEntitiesResponse `xml:"urn:vim25 HasPrivilegeOnEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HasPrivilegeOnEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func HasPrivilegeOnEntities(ctx context.Context, r soap.RoundTripper, req *types.HasPrivilegeOnEntities) (*types.HasPrivilegeOnEntitiesResponse, error) { - var reqBody, resBody HasPrivilegeOnEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HasPrivilegeOnEntityBody struct { - Req *types.HasPrivilegeOnEntity `xml:"urn:vim25 HasPrivilegeOnEntity,omitempty"` - Res *types.HasPrivilegeOnEntityResponse `xml:"urn:vim25 HasPrivilegeOnEntityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HasPrivilegeOnEntityBody) Fault() *soap.Fault { return b.Fault_ } - -func HasPrivilegeOnEntity(ctx context.Context, r soap.RoundTripper, req *types.HasPrivilegeOnEntity) (*types.HasPrivilegeOnEntityResponse, error) { - var reqBody, resBody HasPrivilegeOnEntityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HasProviderBody struct { - Req *types.HasProvider `xml:"urn:vim25 HasProvider,omitempty"` - Res *types.HasProviderResponse `xml:"urn:vim25 HasProviderResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HasProviderBody) Fault() *soap.Fault { return b.Fault_ } - -func HasProvider(ctx context.Context, r soap.RoundTripper, req *types.HasProvider) (*types.HasProviderResponse, error) { - var reqBody, resBody HasProviderBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HasUserPrivilegeOnEntitiesBody struct { - Req *types.HasUserPrivilegeOnEntities `xml:"urn:vim25 HasUserPrivilegeOnEntities,omitempty"` - Res *types.HasUserPrivilegeOnEntitiesResponse `xml:"urn:vim25 HasUserPrivilegeOnEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HasUserPrivilegeOnEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func HasUserPrivilegeOnEntities(ctx context.Context, r soap.RoundTripper, req *types.HasUserPrivilegeOnEntities) (*types.HasUserPrivilegeOnEntitiesResponse, error) { - var reqBody, resBody HasUserPrivilegeOnEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostCloneVStorageObject_TaskBody struct { - Req *types.HostCloneVStorageObject_Task `xml:"urn:vim25 HostCloneVStorageObject_Task,omitempty"` - Res *types.HostCloneVStorageObject_TaskResponse `xml:"urn:vim25 HostCloneVStorageObject_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostCloneVStorageObject_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostCloneVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *types.HostCloneVStorageObject_Task) (*types.HostCloneVStorageObject_TaskResponse, error) { - var reqBody, resBody HostCloneVStorageObject_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostConfigVFlashCacheBody struct { - Req *types.HostConfigVFlashCache `xml:"urn:vim25 HostConfigVFlashCache,omitempty"` - Res *types.HostConfigVFlashCacheResponse `xml:"urn:vim25 HostConfigVFlashCacheResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostConfigVFlashCacheBody) Fault() *soap.Fault { return b.Fault_ } - -func HostConfigVFlashCache(ctx context.Context, r soap.RoundTripper, req *types.HostConfigVFlashCache) (*types.HostConfigVFlashCacheResponse, error) { - var reqBody, resBody HostConfigVFlashCacheBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostConfigureVFlashResourceBody struct { - Req *types.HostConfigureVFlashResource `xml:"urn:vim25 HostConfigureVFlashResource,omitempty"` - Res *types.HostConfigureVFlashResourceResponse `xml:"urn:vim25 HostConfigureVFlashResourceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostConfigureVFlashResourceBody) Fault() *soap.Fault { return b.Fault_ } - -func HostConfigureVFlashResource(ctx context.Context, r soap.RoundTripper, req *types.HostConfigureVFlashResource) (*types.HostConfigureVFlashResourceResponse, error) { - var reqBody, resBody HostConfigureVFlashResourceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostCreateDisk_TaskBody struct { - Req *types.HostCreateDisk_Task `xml:"urn:vim25 HostCreateDisk_Task,omitempty"` - Res *types.HostCreateDisk_TaskResponse `xml:"urn:vim25 HostCreateDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostCreateDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostCreateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.HostCreateDisk_Task) (*types.HostCreateDisk_TaskResponse, error) { - var reqBody, resBody HostCreateDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostDeleteVStorageObject_TaskBody struct { - Req *types.HostDeleteVStorageObject_Task `xml:"urn:vim25 HostDeleteVStorageObject_Task,omitempty"` - Res *types.HostDeleteVStorageObject_TaskResponse `xml:"urn:vim25 HostDeleteVStorageObject_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostDeleteVStorageObject_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostDeleteVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *types.HostDeleteVStorageObject_Task) (*types.HostDeleteVStorageObject_TaskResponse, error) { - var reqBody, resBody HostDeleteVStorageObject_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostExtendDisk_TaskBody struct { - Req *types.HostExtendDisk_Task `xml:"urn:vim25 HostExtendDisk_Task,omitempty"` - Res *types.HostExtendDisk_TaskResponse `xml:"urn:vim25 HostExtendDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostExtendDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostExtendDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.HostExtendDisk_Task) (*types.HostExtendDisk_TaskResponse, error) { - var reqBody, resBody HostExtendDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostGetVFlashModuleDefaultConfigBody struct { - Req *types.HostGetVFlashModuleDefaultConfig `xml:"urn:vim25 HostGetVFlashModuleDefaultConfig,omitempty"` - Res *types.HostGetVFlashModuleDefaultConfigResponse `xml:"urn:vim25 HostGetVFlashModuleDefaultConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostGetVFlashModuleDefaultConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func HostGetVFlashModuleDefaultConfig(ctx context.Context, r soap.RoundTripper, req *types.HostGetVFlashModuleDefaultConfig) (*types.HostGetVFlashModuleDefaultConfigResponse, error) { - var reqBody, resBody HostGetVFlashModuleDefaultConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostImageConfigGetAcceptanceBody struct { - Req *types.HostImageConfigGetAcceptance `xml:"urn:vim25 HostImageConfigGetAcceptance,omitempty"` - Res *types.HostImageConfigGetAcceptanceResponse `xml:"urn:vim25 HostImageConfigGetAcceptanceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostImageConfigGetAcceptanceBody) Fault() *soap.Fault { return b.Fault_ } - -func HostImageConfigGetAcceptance(ctx context.Context, r soap.RoundTripper, req *types.HostImageConfigGetAcceptance) (*types.HostImageConfigGetAcceptanceResponse, error) { - var reqBody, resBody HostImageConfigGetAcceptanceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostImageConfigGetProfileBody struct { - Req *types.HostImageConfigGetProfile `xml:"urn:vim25 HostImageConfigGetProfile,omitempty"` - Res *types.HostImageConfigGetProfileResponse `xml:"urn:vim25 HostImageConfigGetProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostImageConfigGetProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func HostImageConfigGetProfile(ctx context.Context, r soap.RoundTripper, req *types.HostImageConfigGetProfile) (*types.HostImageConfigGetProfileResponse, error) { - var reqBody, resBody HostImageConfigGetProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostInflateDisk_TaskBody struct { - Req *types.HostInflateDisk_Task `xml:"urn:vim25 HostInflateDisk_Task,omitempty"` - Res *types.HostInflateDisk_TaskResponse `xml:"urn:vim25 HostInflateDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostInflateDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostInflateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.HostInflateDisk_Task) (*types.HostInflateDisk_TaskResponse, error) { - var reqBody, resBody HostInflateDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostListVStorageObjectBody struct { - Req *types.HostListVStorageObject `xml:"urn:vim25 HostListVStorageObject,omitempty"` - Res *types.HostListVStorageObjectResponse `xml:"urn:vim25 HostListVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostListVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func HostListVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.HostListVStorageObject) (*types.HostListVStorageObjectResponse, error) { - var reqBody, resBody HostListVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostReconcileDatastoreInventory_TaskBody struct { - Req *types.HostReconcileDatastoreInventory_Task `xml:"urn:vim25 HostReconcileDatastoreInventory_Task,omitempty"` - Res *types.HostReconcileDatastoreInventory_TaskResponse `xml:"urn:vim25 HostReconcileDatastoreInventory_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostReconcileDatastoreInventory_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostReconcileDatastoreInventory_Task(ctx context.Context, r soap.RoundTripper, req *types.HostReconcileDatastoreInventory_Task) (*types.HostReconcileDatastoreInventory_TaskResponse, error) { - var reqBody, resBody HostReconcileDatastoreInventory_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostRegisterDiskBody struct { - Req *types.HostRegisterDisk `xml:"urn:vim25 HostRegisterDisk,omitempty"` - Res *types.HostRegisterDiskResponse `xml:"urn:vim25 HostRegisterDiskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostRegisterDiskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostRegisterDisk(ctx context.Context, r soap.RoundTripper, req *types.HostRegisterDisk) (*types.HostRegisterDiskResponse, error) { - var reqBody, resBody HostRegisterDiskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostRelocateVStorageObject_TaskBody struct { - Req *types.HostRelocateVStorageObject_Task `xml:"urn:vim25 HostRelocateVStorageObject_Task,omitempty"` - Res *types.HostRelocateVStorageObject_TaskResponse `xml:"urn:vim25 HostRelocateVStorageObject_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostRelocateVStorageObject_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func HostRelocateVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *types.HostRelocateVStorageObject_Task) (*types.HostRelocateVStorageObject_TaskResponse, error) { - var reqBody, resBody HostRelocateVStorageObject_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostRemoveVFlashResourceBody struct { - Req *types.HostRemoveVFlashResource `xml:"urn:vim25 HostRemoveVFlashResource,omitempty"` - Res *types.HostRemoveVFlashResourceResponse `xml:"urn:vim25 HostRemoveVFlashResourceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostRemoveVFlashResourceBody) Fault() *soap.Fault { return b.Fault_ } - -func HostRemoveVFlashResource(ctx context.Context, r soap.RoundTripper, req *types.HostRemoveVFlashResource) (*types.HostRemoveVFlashResourceResponse, error) { - var reqBody, resBody HostRemoveVFlashResourceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostRenameVStorageObjectBody struct { - Req *types.HostRenameVStorageObject `xml:"urn:vim25 HostRenameVStorageObject,omitempty"` - Res *types.HostRenameVStorageObjectResponse `xml:"urn:vim25 HostRenameVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostRenameVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func HostRenameVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.HostRenameVStorageObject) (*types.HostRenameVStorageObjectResponse, error) { - var reqBody, resBody HostRenameVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostRetrieveVStorageObjectBody struct { - Req *types.HostRetrieveVStorageObject `xml:"urn:vim25 HostRetrieveVStorageObject,omitempty"` - Res *types.HostRetrieveVStorageObjectResponse `xml:"urn:vim25 HostRetrieveVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostRetrieveVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func HostRetrieveVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.HostRetrieveVStorageObject) (*types.HostRetrieveVStorageObjectResponse, error) { - var reqBody, resBody HostRetrieveVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostRetrieveVStorageObjectStateBody struct { - Req *types.HostRetrieveVStorageObjectState `xml:"urn:vim25 HostRetrieveVStorageObjectState,omitempty"` - Res *types.HostRetrieveVStorageObjectStateResponse `xml:"urn:vim25 HostRetrieveVStorageObjectStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostRetrieveVStorageObjectStateBody) Fault() *soap.Fault { return b.Fault_ } - -func HostRetrieveVStorageObjectState(ctx context.Context, r soap.RoundTripper, req *types.HostRetrieveVStorageObjectState) (*types.HostRetrieveVStorageObjectStateResponse, error) { - var reqBody, resBody HostRetrieveVStorageObjectStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostScheduleReconcileDatastoreInventoryBody struct { - Req *types.HostScheduleReconcileDatastoreInventory `xml:"urn:vim25 HostScheduleReconcileDatastoreInventory,omitempty"` - Res *types.HostScheduleReconcileDatastoreInventoryResponse `xml:"urn:vim25 HostScheduleReconcileDatastoreInventoryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostScheduleReconcileDatastoreInventoryBody) Fault() *soap.Fault { return b.Fault_ } - -func HostScheduleReconcileDatastoreInventory(ctx context.Context, r soap.RoundTripper, req *types.HostScheduleReconcileDatastoreInventory) (*types.HostScheduleReconcileDatastoreInventoryResponse, error) { - var reqBody, resBody HostScheduleReconcileDatastoreInventoryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HostSpecGetUpdatedHostsBody struct { - Req *types.HostSpecGetUpdatedHosts `xml:"urn:vim25 HostSpecGetUpdatedHosts,omitempty"` - Res *types.HostSpecGetUpdatedHostsResponse `xml:"urn:vim25 HostSpecGetUpdatedHostsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HostSpecGetUpdatedHostsBody) Fault() *soap.Fault { return b.Fault_ } - -func HostSpecGetUpdatedHosts(ctx context.Context, r soap.RoundTripper, req *types.HostSpecGetUpdatedHosts) (*types.HostSpecGetUpdatedHostsResponse, error) { - var reqBody, resBody HostSpecGetUpdatedHostsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HttpNfcLeaseAbortBody struct { - Req *types.HttpNfcLeaseAbort `xml:"urn:vim25 HttpNfcLeaseAbort,omitempty"` - Res *types.HttpNfcLeaseAbortResponse `xml:"urn:vim25 HttpNfcLeaseAbortResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HttpNfcLeaseAbortBody) Fault() *soap.Fault { return b.Fault_ } - -func HttpNfcLeaseAbort(ctx context.Context, r soap.RoundTripper, req *types.HttpNfcLeaseAbort) (*types.HttpNfcLeaseAbortResponse, error) { - var reqBody, resBody HttpNfcLeaseAbortBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HttpNfcLeaseCompleteBody struct { - Req *types.HttpNfcLeaseComplete `xml:"urn:vim25 HttpNfcLeaseComplete,omitempty"` - Res *types.HttpNfcLeaseCompleteResponse `xml:"urn:vim25 HttpNfcLeaseCompleteResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HttpNfcLeaseCompleteBody) Fault() *soap.Fault { return b.Fault_ } - -func HttpNfcLeaseComplete(ctx context.Context, r soap.RoundTripper, req *types.HttpNfcLeaseComplete) (*types.HttpNfcLeaseCompleteResponse, error) { - var reqBody, resBody HttpNfcLeaseCompleteBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HttpNfcLeaseGetManifestBody struct { - Req *types.HttpNfcLeaseGetManifest `xml:"urn:vim25 HttpNfcLeaseGetManifest,omitempty"` - Res *types.HttpNfcLeaseGetManifestResponse `xml:"urn:vim25 HttpNfcLeaseGetManifestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HttpNfcLeaseGetManifestBody) Fault() *soap.Fault { return b.Fault_ } - -func HttpNfcLeaseGetManifest(ctx context.Context, r soap.RoundTripper, req *types.HttpNfcLeaseGetManifest) (*types.HttpNfcLeaseGetManifestResponse, error) { - var reqBody, resBody HttpNfcLeaseGetManifestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type HttpNfcLeaseProgressBody struct { - Req *types.HttpNfcLeaseProgress `xml:"urn:vim25 HttpNfcLeaseProgress,omitempty"` - Res *types.HttpNfcLeaseProgressResponse `xml:"urn:vim25 HttpNfcLeaseProgressResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *HttpNfcLeaseProgressBody) Fault() *soap.Fault { return b.Fault_ } - -func HttpNfcLeaseProgress(ctx context.Context, r soap.RoundTripper, req *types.HttpNfcLeaseProgress) (*types.HttpNfcLeaseProgressResponse, error) { - var reqBody, resBody HttpNfcLeaseProgressBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ImpersonateUserBody struct { - Req *types.ImpersonateUser `xml:"urn:vim25 ImpersonateUser,omitempty"` - Res *types.ImpersonateUserResponse `xml:"urn:vim25 ImpersonateUserResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ImpersonateUserBody) Fault() *soap.Fault { return b.Fault_ } - -func ImpersonateUser(ctx context.Context, r soap.RoundTripper, req *types.ImpersonateUser) (*types.ImpersonateUserResponse, error) { - var reqBody, resBody ImpersonateUserBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ImportCertificateForCAM_TaskBody struct { - Req *types.ImportCertificateForCAM_Task `xml:"urn:vim25 ImportCertificateForCAM_Task,omitempty"` - Res *types.ImportCertificateForCAM_TaskResponse `xml:"urn:vim25 ImportCertificateForCAM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ImportCertificateForCAM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ImportCertificateForCAM_Task(ctx context.Context, r soap.RoundTripper, req *types.ImportCertificateForCAM_Task) (*types.ImportCertificateForCAM_TaskResponse, error) { - var reqBody, resBody ImportCertificateForCAM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ImportUnmanagedSnapshotBody struct { - Req *types.ImportUnmanagedSnapshot `xml:"urn:vim25 ImportUnmanagedSnapshot,omitempty"` - Res *types.ImportUnmanagedSnapshotResponse `xml:"urn:vim25 ImportUnmanagedSnapshotResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ImportUnmanagedSnapshotBody) Fault() *soap.Fault { return b.Fault_ } - -func ImportUnmanagedSnapshot(ctx context.Context, r soap.RoundTripper, req *types.ImportUnmanagedSnapshot) (*types.ImportUnmanagedSnapshotResponse, error) { - var reqBody, resBody ImportUnmanagedSnapshotBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ImportVAppBody struct { - Req *types.ImportVApp `xml:"urn:vim25 ImportVApp,omitempty"` - Res *types.ImportVAppResponse `xml:"urn:vim25 ImportVAppResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ImportVAppBody) Fault() *soap.Fault { return b.Fault_ } - -func ImportVApp(ctx context.Context, r soap.RoundTripper, req *types.ImportVApp) (*types.ImportVAppResponse, error) { - var reqBody, resBody ImportVAppBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InflateDisk_TaskBody struct { - Req *types.InflateDisk_Task `xml:"urn:vim25 InflateDisk_Task,omitempty"` - Res *types.InflateDisk_TaskResponse `xml:"urn:vim25 InflateDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InflateDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func InflateDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.InflateDisk_Task) (*types.InflateDisk_TaskResponse, error) { - var reqBody, resBody InflateDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InflateVirtualDisk_TaskBody struct { - Req *types.InflateVirtualDisk_Task `xml:"urn:vim25 InflateVirtualDisk_Task,omitempty"` - Res *types.InflateVirtualDisk_TaskResponse `xml:"urn:vim25 InflateVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InflateVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func InflateVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.InflateVirtualDisk_Task) (*types.InflateVirtualDisk_TaskResponse, error) { - var reqBody, resBody InflateVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InitializeDisks_TaskBody struct { - Req *types.InitializeDisks_Task `xml:"urn:vim25 InitializeDisks_Task,omitempty"` - Res *types.InitializeDisks_TaskResponse `xml:"urn:vim25 InitializeDisks_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InitializeDisks_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func InitializeDisks_Task(ctx context.Context, r soap.RoundTripper, req *types.InitializeDisks_Task) (*types.InitializeDisks_TaskResponse, error) { - var reqBody, resBody InitializeDisks_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InitiateFileTransferFromGuestBody struct { - Req *types.InitiateFileTransferFromGuest `xml:"urn:vim25 InitiateFileTransferFromGuest,omitempty"` - Res *types.InitiateFileTransferFromGuestResponse `xml:"urn:vim25 InitiateFileTransferFromGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InitiateFileTransferFromGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func InitiateFileTransferFromGuest(ctx context.Context, r soap.RoundTripper, req *types.InitiateFileTransferFromGuest) (*types.InitiateFileTransferFromGuestResponse, error) { - var reqBody, resBody InitiateFileTransferFromGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InitiateFileTransferToGuestBody struct { - Req *types.InitiateFileTransferToGuest `xml:"urn:vim25 InitiateFileTransferToGuest,omitempty"` - Res *types.InitiateFileTransferToGuestResponse `xml:"urn:vim25 InitiateFileTransferToGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InitiateFileTransferToGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func InitiateFileTransferToGuest(ctx context.Context, r soap.RoundTripper, req *types.InitiateFileTransferToGuest) (*types.InitiateFileTransferToGuestResponse, error) { - var reqBody, resBody InitiateFileTransferToGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InstallHostPatchV2_TaskBody struct { - Req *types.InstallHostPatchV2_Task `xml:"urn:vim25 InstallHostPatchV2_Task,omitempty"` - Res *types.InstallHostPatchV2_TaskResponse `xml:"urn:vim25 InstallHostPatchV2_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InstallHostPatchV2_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func InstallHostPatchV2_Task(ctx context.Context, r soap.RoundTripper, req *types.InstallHostPatchV2_Task) (*types.InstallHostPatchV2_TaskResponse, error) { - var reqBody, resBody InstallHostPatchV2_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InstallHostPatch_TaskBody struct { - Req *types.InstallHostPatch_Task `xml:"urn:vim25 InstallHostPatch_Task,omitempty"` - Res *types.InstallHostPatch_TaskResponse `xml:"urn:vim25 InstallHostPatch_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InstallHostPatch_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func InstallHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.InstallHostPatch_Task) (*types.InstallHostPatch_TaskResponse, error) { - var reqBody, resBody InstallHostPatch_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InstallIoFilter_TaskBody struct { - Req *types.InstallIoFilter_Task `xml:"urn:vim25 InstallIoFilter_Task,omitempty"` - Res *types.InstallIoFilter_TaskResponse `xml:"urn:vim25 InstallIoFilter_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InstallIoFilter_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func InstallIoFilter_Task(ctx context.Context, r soap.RoundTripper, req *types.InstallIoFilter_Task) (*types.InstallIoFilter_TaskResponse, error) { - var reqBody, resBody InstallIoFilter_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InstallServerCertificateBody struct { - Req *types.InstallServerCertificate `xml:"urn:vim25 InstallServerCertificate,omitempty"` - Res *types.InstallServerCertificateResponse `xml:"urn:vim25 InstallServerCertificateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InstallServerCertificateBody) Fault() *soap.Fault { return b.Fault_ } - -func InstallServerCertificate(ctx context.Context, r soap.RoundTripper, req *types.InstallServerCertificate) (*types.InstallServerCertificateResponse, error) { - var reqBody, resBody InstallServerCertificateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type InstallSmartCardTrustAnchorBody struct { - Req *types.InstallSmartCardTrustAnchor `xml:"urn:vim25 InstallSmartCardTrustAnchor,omitempty"` - Res *types.InstallSmartCardTrustAnchorResponse `xml:"urn:vim25 InstallSmartCardTrustAnchorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *InstallSmartCardTrustAnchorBody) Fault() *soap.Fault { return b.Fault_ } - -func InstallSmartCardTrustAnchor(ctx context.Context, r soap.RoundTripper, req *types.InstallSmartCardTrustAnchor) (*types.InstallSmartCardTrustAnchorResponse, error) { - var reqBody, resBody InstallSmartCardTrustAnchorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type IsSharedGraphicsActiveBody struct { - Req *types.IsSharedGraphicsActive `xml:"urn:vim25 IsSharedGraphicsActive,omitempty"` - Res *types.IsSharedGraphicsActiveResponse `xml:"urn:vim25 IsSharedGraphicsActiveResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *IsSharedGraphicsActiveBody) Fault() *soap.Fault { return b.Fault_ } - -func IsSharedGraphicsActive(ctx context.Context, r soap.RoundTripper, req *types.IsSharedGraphicsActive) (*types.IsSharedGraphicsActiveResponse, error) { - var reqBody, resBody IsSharedGraphicsActiveBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type JoinDomainWithCAM_TaskBody struct { - Req *types.JoinDomainWithCAM_Task `xml:"urn:vim25 JoinDomainWithCAM_Task,omitempty"` - Res *types.JoinDomainWithCAM_TaskResponse `xml:"urn:vim25 JoinDomainWithCAM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *JoinDomainWithCAM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func JoinDomainWithCAM_Task(ctx context.Context, r soap.RoundTripper, req *types.JoinDomainWithCAM_Task) (*types.JoinDomainWithCAM_TaskResponse, error) { - var reqBody, resBody JoinDomainWithCAM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type JoinDomain_TaskBody struct { - Req *types.JoinDomain_Task `xml:"urn:vim25 JoinDomain_Task,omitempty"` - Res *types.JoinDomain_TaskResponse `xml:"urn:vim25 JoinDomain_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *JoinDomain_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func JoinDomain_Task(ctx context.Context, r soap.RoundTripper, req *types.JoinDomain_Task) (*types.JoinDomain_TaskResponse, error) { - var reqBody, resBody JoinDomain_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LeaveCurrentDomain_TaskBody struct { - Req *types.LeaveCurrentDomain_Task `xml:"urn:vim25 LeaveCurrentDomain_Task,omitempty"` - Res *types.LeaveCurrentDomain_TaskResponse `xml:"urn:vim25 LeaveCurrentDomain_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LeaveCurrentDomain_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func LeaveCurrentDomain_Task(ctx context.Context, r soap.RoundTripper, req *types.LeaveCurrentDomain_Task) (*types.LeaveCurrentDomain_TaskResponse, error) { - var reqBody, resBody LeaveCurrentDomain_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListCACertificateRevocationListsBody struct { - Req *types.ListCACertificateRevocationLists `xml:"urn:vim25 ListCACertificateRevocationLists,omitempty"` - Res *types.ListCACertificateRevocationListsResponse `xml:"urn:vim25 ListCACertificateRevocationListsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListCACertificateRevocationListsBody) Fault() *soap.Fault { return b.Fault_ } - -func ListCACertificateRevocationLists(ctx context.Context, r soap.RoundTripper, req *types.ListCACertificateRevocationLists) (*types.ListCACertificateRevocationListsResponse, error) { - var reqBody, resBody ListCACertificateRevocationListsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListCACertificatesBody struct { - Req *types.ListCACertificates `xml:"urn:vim25 ListCACertificates,omitempty"` - Res *types.ListCACertificatesResponse `xml:"urn:vim25 ListCACertificatesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListCACertificatesBody) Fault() *soap.Fault { return b.Fault_ } - -func ListCACertificates(ctx context.Context, r soap.RoundTripper, req *types.ListCACertificates) (*types.ListCACertificatesResponse, error) { - var reqBody, resBody ListCACertificatesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListFilesInGuestBody struct { - Req *types.ListFilesInGuest `xml:"urn:vim25 ListFilesInGuest,omitempty"` - Res *types.ListFilesInGuestResponse `xml:"urn:vim25 ListFilesInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListFilesInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ListFilesInGuest(ctx context.Context, r soap.RoundTripper, req *types.ListFilesInGuest) (*types.ListFilesInGuestResponse, error) { - var reqBody, resBody ListFilesInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListGuestAliasesBody struct { - Req *types.ListGuestAliases `xml:"urn:vim25 ListGuestAliases,omitempty"` - Res *types.ListGuestAliasesResponse `xml:"urn:vim25 ListGuestAliasesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListGuestAliasesBody) Fault() *soap.Fault { return b.Fault_ } - -func ListGuestAliases(ctx context.Context, r soap.RoundTripper, req *types.ListGuestAliases) (*types.ListGuestAliasesResponse, error) { - var reqBody, resBody ListGuestAliasesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListGuestMappedAliasesBody struct { - Req *types.ListGuestMappedAliases `xml:"urn:vim25 ListGuestMappedAliases,omitempty"` - Res *types.ListGuestMappedAliasesResponse `xml:"urn:vim25 ListGuestMappedAliasesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListGuestMappedAliasesBody) Fault() *soap.Fault { return b.Fault_ } - -func ListGuestMappedAliases(ctx context.Context, r soap.RoundTripper, req *types.ListGuestMappedAliases) (*types.ListGuestMappedAliasesResponse, error) { - var reqBody, resBody ListGuestMappedAliasesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListKeysBody struct { - Req *types.ListKeys `xml:"urn:vim25 ListKeys,omitempty"` - Res *types.ListKeysResponse `xml:"urn:vim25 ListKeysResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListKeysBody) Fault() *soap.Fault { return b.Fault_ } - -func ListKeys(ctx context.Context, r soap.RoundTripper, req *types.ListKeys) (*types.ListKeysResponse, error) { - var reqBody, resBody ListKeysBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListKmipServersBody struct { - Req *types.ListKmipServers `xml:"urn:vim25 ListKmipServers,omitempty"` - Res *types.ListKmipServersResponse `xml:"urn:vim25 ListKmipServersResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListKmipServersBody) Fault() *soap.Fault { return b.Fault_ } - -func ListKmipServers(ctx context.Context, r soap.RoundTripper, req *types.ListKmipServers) (*types.ListKmipServersResponse, error) { - var reqBody, resBody ListKmipServersBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListProcessesInGuestBody struct { - Req *types.ListProcessesInGuest `xml:"urn:vim25 ListProcessesInGuest,omitempty"` - Res *types.ListProcessesInGuestResponse `xml:"urn:vim25 ListProcessesInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListProcessesInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ListProcessesInGuest(ctx context.Context, r soap.RoundTripper, req *types.ListProcessesInGuest) (*types.ListProcessesInGuestResponse, error) { - var reqBody, resBody ListProcessesInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListRegistryKeysInGuestBody struct { - Req *types.ListRegistryKeysInGuest `xml:"urn:vim25 ListRegistryKeysInGuest,omitempty"` - Res *types.ListRegistryKeysInGuestResponse `xml:"urn:vim25 ListRegistryKeysInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListRegistryKeysInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ListRegistryKeysInGuest(ctx context.Context, r soap.RoundTripper, req *types.ListRegistryKeysInGuest) (*types.ListRegistryKeysInGuestResponse, error) { - var reqBody, resBody ListRegistryKeysInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListRegistryValuesInGuestBody struct { - Req *types.ListRegistryValuesInGuest `xml:"urn:vim25 ListRegistryValuesInGuest,omitempty"` - Res *types.ListRegistryValuesInGuestResponse `xml:"urn:vim25 ListRegistryValuesInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListRegistryValuesInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ListRegistryValuesInGuest(ctx context.Context, r soap.RoundTripper, req *types.ListRegistryValuesInGuest) (*types.ListRegistryValuesInGuestResponse, error) { - var reqBody, resBody ListRegistryValuesInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListSmartCardTrustAnchorsBody struct { - Req *types.ListSmartCardTrustAnchors `xml:"urn:vim25 ListSmartCardTrustAnchors,omitempty"` - Res *types.ListSmartCardTrustAnchorsResponse `xml:"urn:vim25 ListSmartCardTrustAnchorsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListSmartCardTrustAnchorsBody) Fault() *soap.Fault { return b.Fault_ } - -func ListSmartCardTrustAnchors(ctx context.Context, r soap.RoundTripper, req *types.ListSmartCardTrustAnchors) (*types.ListSmartCardTrustAnchorsResponse, error) { - var reqBody, resBody ListSmartCardTrustAnchorsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListTagsAttachedToVStorageObjectBody struct { - Req *types.ListTagsAttachedToVStorageObject `xml:"urn:vim25 ListTagsAttachedToVStorageObject,omitempty"` - Res *types.ListTagsAttachedToVStorageObjectResponse `xml:"urn:vim25 ListTagsAttachedToVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListTagsAttachedToVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func ListTagsAttachedToVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.ListTagsAttachedToVStorageObject) (*types.ListTagsAttachedToVStorageObjectResponse, error) { - var reqBody, resBody ListTagsAttachedToVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListVStorageObjectBody struct { - Req *types.ListVStorageObject `xml:"urn:vim25 ListVStorageObject,omitempty"` - Res *types.ListVStorageObjectResponse `xml:"urn:vim25 ListVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func ListVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.ListVStorageObject) (*types.ListVStorageObjectResponse, error) { - var reqBody, resBody ListVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ListVStorageObjectsAttachedToTagBody struct { - Req *types.ListVStorageObjectsAttachedToTag `xml:"urn:vim25 ListVStorageObjectsAttachedToTag,omitempty"` - Res *types.ListVStorageObjectsAttachedToTagResponse `xml:"urn:vim25 ListVStorageObjectsAttachedToTagResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ListVStorageObjectsAttachedToTagBody) Fault() *soap.Fault { return b.Fault_ } - -func ListVStorageObjectsAttachedToTag(ctx context.Context, r soap.RoundTripper, req *types.ListVStorageObjectsAttachedToTag) (*types.ListVStorageObjectsAttachedToTagResponse, error) { - var reqBody, resBody ListVStorageObjectsAttachedToTagBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LogUserEventBody struct { - Req *types.LogUserEvent `xml:"urn:vim25 LogUserEvent,omitempty"` - Res *types.LogUserEventResponse `xml:"urn:vim25 LogUserEventResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LogUserEventBody) Fault() *soap.Fault { return b.Fault_ } - -func LogUserEvent(ctx context.Context, r soap.RoundTripper, req *types.LogUserEvent) (*types.LogUserEventResponse, error) { - var reqBody, resBody LogUserEventBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LoginBody struct { - Req *types.Login `xml:"urn:vim25 Login,omitempty"` - Res *types.LoginResponse `xml:"urn:vim25 LoginResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LoginBody) Fault() *soap.Fault { return b.Fault_ } - -func Login(ctx context.Context, r soap.RoundTripper, req *types.Login) (*types.LoginResponse, error) { - var reqBody, resBody LoginBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LoginBySSPIBody struct { - Req *types.LoginBySSPI `xml:"urn:vim25 LoginBySSPI,omitempty"` - Res *types.LoginBySSPIResponse `xml:"urn:vim25 LoginBySSPIResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LoginBySSPIBody) Fault() *soap.Fault { return b.Fault_ } - -func LoginBySSPI(ctx context.Context, r soap.RoundTripper, req *types.LoginBySSPI) (*types.LoginBySSPIResponse, error) { - var reqBody, resBody LoginBySSPIBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LoginByTokenBody struct { - Req *types.LoginByToken `xml:"urn:vim25 LoginByToken,omitempty"` - Res *types.LoginByTokenResponse `xml:"urn:vim25 LoginByTokenResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LoginByTokenBody) Fault() *soap.Fault { return b.Fault_ } - -func LoginByToken(ctx context.Context, r soap.RoundTripper, req *types.LoginByToken) (*types.LoginByTokenResponse, error) { - var reqBody, resBody LoginByTokenBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LoginExtensionByCertificateBody struct { - Req *types.LoginExtensionByCertificate `xml:"urn:vim25 LoginExtensionByCertificate,omitempty"` - Res *types.LoginExtensionByCertificateResponse `xml:"urn:vim25 LoginExtensionByCertificateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LoginExtensionByCertificateBody) Fault() *soap.Fault { return b.Fault_ } - -func LoginExtensionByCertificate(ctx context.Context, r soap.RoundTripper, req *types.LoginExtensionByCertificate) (*types.LoginExtensionByCertificateResponse, error) { - var reqBody, resBody LoginExtensionByCertificateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LoginExtensionBySubjectNameBody struct { - Req *types.LoginExtensionBySubjectName `xml:"urn:vim25 LoginExtensionBySubjectName,omitempty"` - Res *types.LoginExtensionBySubjectNameResponse `xml:"urn:vim25 LoginExtensionBySubjectNameResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LoginExtensionBySubjectNameBody) Fault() *soap.Fault { return b.Fault_ } - -func LoginExtensionBySubjectName(ctx context.Context, r soap.RoundTripper, req *types.LoginExtensionBySubjectName) (*types.LoginExtensionBySubjectNameResponse, error) { - var reqBody, resBody LoginExtensionBySubjectNameBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LogoutBody struct { - Req *types.Logout `xml:"urn:vim25 Logout,omitempty"` - Res *types.LogoutResponse `xml:"urn:vim25 LogoutResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LogoutBody) Fault() *soap.Fault { return b.Fault_ } - -func Logout(ctx context.Context, r soap.RoundTripper, req *types.Logout) (*types.LogoutResponse, error) { - var reqBody, resBody LogoutBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LookupDvPortGroupBody struct { - Req *types.LookupDvPortGroup `xml:"urn:vim25 LookupDvPortGroup,omitempty"` - Res *types.LookupDvPortGroupResponse `xml:"urn:vim25 LookupDvPortGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LookupDvPortGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func LookupDvPortGroup(ctx context.Context, r soap.RoundTripper, req *types.LookupDvPortGroup) (*types.LookupDvPortGroupResponse, error) { - var reqBody, resBody LookupDvPortGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type LookupVmOverheadMemoryBody struct { - Req *types.LookupVmOverheadMemory `xml:"urn:vim25 LookupVmOverheadMemory,omitempty"` - Res *types.LookupVmOverheadMemoryResponse `xml:"urn:vim25 LookupVmOverheadMemoryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *LookupVmOverheadMemoryBody) Fault() *soap.Fault { return b.Fault_ } - -func LookupVmOverheadMemory(ctx context.Context, r soap.RoundTripper, req *types.LookupVmOverheadMemory) (*types.LookupVmOverheadMemoryResponse, error) { - var reqBody, resBody LookupVmOverheadMemoryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MakeDirectoryBody struct { - Req *types.MakeDirectory `xml:"urn:vim25 MakeDirectory,omitempty"` - Res *types.MakeDirectoryResponse `xml:"urn:vim25 MakeDirectoryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MakeDirectoryBody) Fault() *soap.Fault { return b.Fault_ } - -func MakeDirectory(ctx context.Context, r soap.RoundTripper, req *types.MakeDirectory) (*types.MakeDirectoryResponse, error) { - var reqBody, resBody MakeDirectoryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MakeDirectoryInGuestBody struct { - Req *types.MakeDirectoryInGuest `xml:"urn:vim25 MakeDirectoryInGuest,omitempty"` - Res *types.MakeDirectoryInGuestResponse `xml:"urn:vim25 MakeDirectoryInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MakeDirectoryInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func MakeDirectoryInGuest(ctx context.Context, r soap.RoundTripper, req *types.MakeDirectoryInGuest) (*types.MakeDirectoryInGuestResponse, error) { - var reqBody, resBody MakeDirectoryInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MakePrimaryVM_TaskBody struct { - Req *types.MakePrimaryVM_Task `xml:"urn:vim25 MakePrimaryVM_Task,omitempty"` - Res *types.MakePrimaryVM_TaskResponse `xml:"urn:vim25 MakePrimaryVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MakePrimaryVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MakePrimaryVM_Task(ctx context.Context, r soap.RoundTripper, req *types.MakePrimaryVM_Task) (*types.MakePrimaryVM_TaskResponse, error) { - var reqBody, resBody MakePrimaryVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkAsLocal_TaskBody struct { - Req *types.MarkAsLocal_Task `xml:"urn:vim25 MarkAsLocal_Task,omitempty"` - Res *types.MarkAsLocal_TaskResponse `xml:"urn:vim25 MarkAsLocal_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkAsLocal_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkAsLocal_Task(ctx context.Context, r soap.RoundTripper, req *types.MarkAsLocal_Task) (*types.MarkAsLocal_TaskResponse, error) { - var reqBody, resBody MarkAsLocal_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkAsNonLocal_TaskBody struct { - Req *types.MarkAsNonLocal_Task `xml:"urn:vim25 MarkAsNonLocal_Task,omitempty"` - Res *types.MarkAsNonLocal_TaskResponse `xml:"urn:vim25 MarkAsNonLocal_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkAsNonLocal_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkAsNonLocal_Task(ctx context.Context, r soap.RoundTripper, req *types.MarkAsNonLocal_Task) (*types.MarkAsNonLocal_TaskResponse, error) { - var reqBody, resBody MarkAsNonLocal_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkAsNonSsd_TaskBody struct { - Req *types.MarkAsNonSsd_Task `xml:"urn:vim25 MarkAsNonSsd_Task,omitempty"` - Res *types.MarkAsNonSsd_TaskResponse `xml:"urn:vim25 MarkAsNonSsd_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkAsNonSsd_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkAsNonSsd_Task(ctx context.Context, r soap.RoundTripper, req *types.MarkAsNonSsd_Task) (*types.MarkAsNonSsd_TaskResponse, error) { - var reqBody, resBody MarkAsNonSsd_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkAsSsd_TaskBody struct { - Req *types.MarkAsSsd_Task `xml:"urn:vim25 MarkAsSsd_Task,omitempty"` - Res *types.MarkAsSsd_TaskResponse `xml:"urn:vim25 MarkAsSsd_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkAsSsd_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkAsSsd_Task(ctx context.Context, r soap.RoundTripper, req *types.MarkAsSsd_Task) (*types.MarkAsSsd_TaskResponse, error) { - var reqBody, resBody MarkAsSsd_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkAsTemplateBody struct { - Req *types.MarkAsTemplate `xml:"urn:vim25 MarkAsTemplate,omitempty"` - Res *types.MarkAsTemplateResponse `xml:"urn:vim25 MarkAsTemplateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkAsTemplateBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkAsTemplate(ctx context.Context, r soap.RoundTripper, req *types.MarkAsTemplate) (*types.MarkAsTemplateResponse, error) { - var reqBody, resBody MarkAsTemplateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkAsVirtualMachineBody struct { - Req *types.MarkAsVirtualMachine `xml:"urn:vim25 MarkAsVirtualMachine,omitempty"` - Res *types.MarkAsVirtualMachineResponse `xml:"urn:vim25 MarkAsVirtualMachineResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkAsVirtualMachineBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkAsVirtualMachine(ctx context.Context, r soap.RoundTripper, req *types.MarkAsVirtualMachine) (*types.MarkAsVirtualMachineResponse, error) { - var reqBody, resBody MarkAsVirtualMachineBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkDefaultBody struct { - Req *types.MarkDefault `xml:"urn:vim25 MarkDefault,omitempty"` - Res *types.MarkDefaultResponse `xml:"urn:vim25 MarkDefaultResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkDefaultBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkDefault(ctx context.Context, r soap.RoundTripper, req *types.MarkDefault) (*types.MarkDefaultResponse, error) { - var reqBody, resBody MarkDefaultBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MarkForRemovalBody struct { - Req *types.MarkForRemoval `xml:"urn:vim25 MarkForRemoval,omitempty"` - Res *types.MarkForRemovalResponse `xml:"urn:vim25 MarkForRemovalResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MarkForRemovalBody) Fault() *soap.Fault { return b.Fault_ } - -func MarkForRemoval(ctx context.Context, r soap.RoundTripper, req *types.MarkForRemoval) (*types.MarkForRemovalResponse, error) { - var reqBody, resBody MarkForRemovalBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MergeDvs_TaskBody struct { - Req *types.MergeDvs_Task `xml:"urn:vim25 MergeDvs_Task,omitempty"` - Res *types.MergeDvs_TaskResponse `xml:"urn:vim25 MergeDvs_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MergeDvs_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MergeDvs_Task(ctx context.Context, r soap.RoundTripper, req *types.MergeDvs_Task) (*types.MergeDvs_TaskResponse, error) { - var reqBody, resBody MergeDvs_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MergePermissionsBody struct { - Req *types.MergePermissions `xml:"urn:vim25 MergePermissions,omitempty"` - Res *types.MergePermissionsResponse `xml:"urn:vim25 MergePermissionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MergePermissionsBody) Fault() *soap.Fault { return b.Fault_ } - -func MergePermissions(ctx context.Context, r soap.RoundTripper, req *types.MergePermissions) (*types.MergePermissionsResponse, error) { - var reqBody, resBody MergePermissionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MigrateVM_TaskBody struct { - Req *types.MigrateVM_Task `xml:"urn:vim25 MigrateVM_Task,omitempty"` - Res *types.MigrateVM_TaskResponse `xml:"urn:vim25 MigrateVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MigrateVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MigrateVM_Task(ctx context.Context, r soap.RoundTripper, req *types.MigrateVM_Task) (*types.MigrateVM_TaskResponse, error) { - var reqBody, resBody MigrateVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ModifyListViewBody struct { - Req *types.ModifyListView `xml:"urn:vim25 ModifyListView,omitempty"` - Res *types.ModifyListViewResponse `xml:"urn:vim25 ModifyListViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ModifyListViewBody) Fault() *soap.Fault { return b.Fault_ } - -func ModifyListView(ctx context.Context, r soap.RoundTripper, req *types.ModifyListView) (*types.ModifyListViewResponse, error) { - var reqBody, resBody ModifyListViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MountToolsInstallerBody struct { - Req *types.MountToolsInstaller `xml:"urn:vim25 MountToolsInstaller,omitempty"` - Res *types.MountToolsInstallerResponse `xml:"urn:vim25 MountToolsInstallerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MountToolsInstallerBody) Fault() *soap.Fault { return b.Fault_ } - -func MountToolsInstaller(ctx context.Context, r soap.RoundTripper, req *types.MountToolsInstaller) (*types.MountToolsInstallerResponse, error) { - var reqBody, resBody MountToolsInstallerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MountVffsVolumeBody struct { - Req *types.MountVffsVolume `xml:"urn:vim25 MountVffsVolume,omitempty"` - Res *types.MountVffsVolumeResponse `xml:"urn:vim25 MountVffsVolumeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MountVffsVolumeBody) Fault() *soap.Fault { return b.Fault_ } - -func MountVffsVolume(ctx context.Context, r soap.RoundTripper, req *types.MountVffsVolume) (*types.MountVffsVolumeResponse, error) { - var reqBody, resBody MountVffsVolumeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MountVmfsVolumeBody struct { - Req *types.MountVmfsVolume `xml:"urn:vim25 MountVmfsVolume,omitempty"` - Res *types.MountVmfsVolumeResponse `xml:"urn:vim25 MountVmfsVolumeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MountVmfsVolumeBody) Fault() *soap.Fault { return b.Fault_ } - -func MountVmfsVolume(ctx context.Context, r soap.RoundTripper, req *types.MountVmfsVolume) (*types.MountVmfsVolumeResponse, error) { - var reqBody, resBody MountVmfsVolumeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MountVmfsVolumeEx_TaskBody struct { - Req *types.MountVmfsVolumeEx_Task `xml:"urn:vim25 MountVmfsVolumeEx_Task,omitempty"` - Res *types.MountVmfsVolumeEx_TaskResponse `xml:"urn:vim25 MountVmfsVolumeEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MountVmfsVolumeEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MountVmfsVolumeEx_Task(ctx context.Context, r soap.RoundTripper, req *types.MountVmfsVolumeEx_Task) (*types.MountVmfsVolumeEx_TaskResponse, error) { - var reqBody, resBody MountVmfsVolumeEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveDVPort_TaskBody struct { - Req *types.MoveDVPort_Task `xml:"urn:vim25 MoveDVPort_Task,omitempty"` - Res *types.MoveDVPort_TaskResponse `xml:"urn:vim25 MoveDVPort_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveDVPort_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveDVPort_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveDVPort_Task) (*types.MoveDVPort_TaskResponse, error) { - var reqBody, resBody MoveDVPort_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveDatastoreFile_TaskBody struct { - Req *types.MoveDatastoreFile_Task `xml:"urn:vim25 MoveDatastoreFile_Task,omitempty"` - Res *types.MoveDatastoreFile_TaskResponse `xml:"urn:vim25 MoveDatastoreFile_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveDatastoreFile_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveDatastoreFile_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveDatastoreFile_Task) (*types.MoveDatastoreFile_TaskResponse, error) { - var reqBody, resBody MoveDatastoreFile_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveDirectoryInGuestBody struct { - Req *types.MoveDirectoryInGuest `xml:"urn:vim25 MoveDirectoryInGuest,omitempty"` - Res *types.MoveDirectoryInGuestResponse `xml:"urn:vim25 MoveDirectoryInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveDirectoryInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveDirectoryInGuest(ctx context.Context, r soap.RoundTripper, req *types.MoveDirectoryInGuest) (*types.MoveDirectoryInGuestResponse, error) { - var reqBody, resBody MoveDirectoryInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveFileInGuestBody struct { - Req *types.MoveFileInGuest `xml:"urn:vim25 MoveFileInGuest,omitempty"` - Res *types.MoveFileInGuestResponse `xml:"urn:vim25 MoveFileInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveFileInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveFileInGuest(ctx context.Context, r soap.RoundTripper, req *types.MoveFileInGuest) (*types.MoveFileInGuestResponse, error) { - var reqBody, resBody MoveFileInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveHostInto_TaskBody struct { - Req *types.MoveHostInto_Task `xml:"urn:vim25 MoveHostInto_Task,omitempty"` - Res *types.MoveHostInto_TaskResponse `xml:"urn:vim25 MoveHostInto_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveHostInto_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveHostInto_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveHostInto_Task) (*types.MoveHostInto_TaskResponse, error) { - var reqBody, resBody MoveHostInto_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveIntoFolder_TaskBody struct { - Req *types.MoveIntoFolder_Task `xml:"urn:vim25 MoveIntoFolder_Task,omitempty"` - Res *types.MoveIntoFolder_TaskResponse `xml:"urn:vim25 MoveIntoFolder_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveIntoFolder_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveIntoFolder_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveIntoFolder_Task) (*types.MoveIntoFolder_TaskResponse, error) { - var reqBody, resBody MoveIntoFolder_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveIntoResourcePoolBody struct { - Req *types.MoveIntoResourcePool `xml:"urn:vim25 MoveIntoResourcePool,omitempty"` - Res *types.MoveIntoResourcePoolResponse `xml:"urn:vim25 MoveIntoResourcePoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveIntoResourcePoolBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveIntoResourcePool(ctx context.Context, r soap.RoundTripper, req *types.MoveIntoResourcePool) (*types.MoveIntoResourcePoolResponse, error) { - var reqBody, resBody MoveIntoResourcePoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveInto_TaskBody struct { - Req *types.MoveInto_Task `xml:"urn:vim25 MoveInto_Task,omitempty"` - Res *types.MoveInto_TaskResponse `xml:"urn:vim25 MoveInto_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveInto_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveInto_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveInto_Task) (*types.MoveInto_TaskResponse, error) { - var reqBody, resBody MoveInto_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type MoveVirtualDisk_TaskBody struct { - Req *types.MoveVirtualDisk_Task `xml:"urn:vim25 MoveVirtualDisk_Task,omitempty"` - Res *types.MoveVirtualDisk_TaskResponse `xml:"urn:vim25 MoveVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *MoveVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func MoveVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.MoveVirtualDisk_Task) (*types.MoveVirtualDisk_TaskResponse, error) { - var reqBody, resBody MoveVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type OpenInventoryViewFolderBody struct { - Req *types.OpenInventoryViewFolder `xml:"urn:vim25 OpenInventoryViewFolder,omitempty"` - Res *types.OpenInventoryViewFolderResponse `xml:"urn:vim25 OpenInventoryViewFolderResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *OpenInventoryViewFolderBody) Fault() *soap.Fault { return b.Fault_ } - -func OpenInventoryViewFolder(ctx context.Context, r soap.RoundTripper, req *types.OpenInventoryViewFolder) (*types.OpenInventoryViewFolderResponse, error) { - var reqBody, resBody OpenInventoryViewFolderBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type OverwriteCustomizationSpecBody struct { - Req *types.OverwriteCustomizationSpec `xml:"urn:vim25 OverwriteCustomizationSpec,omitempty"` - Res *types.OverwriteCustomizationSpecResponse `xml:"urn:vim25 OverwriteCustomizationSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *OverwriteCustomizationSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func OverwriteCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.OverwriteCustomizationSpec) (*types.OverwriteCustomizationSpecResponse, error) { - var reqBody, resBody OverwriteCustomizationSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ParseDescriptorBody struct { - Req *types.ParseDescriptor `xml:"urn:vim25 ParseDescriptor,omitempty"` - Res *types.ParseDescriptorResponse `xml:"urn:vim25 ParseDescriptorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ParseDescriptorBody) Fault() *soap.Fault { return b.Fault_ } - -func ParseDescriptor(ctx context.Context, r soap.RoundTripper, req *types.ParseDescriptor) (*types.ParseDescriptorResponse, error) { - var reqBody, resBody ParseDescriptorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PerformDvsProductSpecOperation_TaskBody struct { - Req *types.PerformDvsProductSpecOperation_Task `xml:"urn:vim25 PerformDvsProductSpecOperation_Task,omitempty"` - Res *types.PerformDvsProductSpecOperation_TaskResponse `xml:"urn:vim25 PerformDvsProductSpecOperation_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PerformDvsProductSpecOperation_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PerformDvsProductSpecOperation_Task(ctx context.Context, r soap.RoundTripper, req *types.PerformDvsProductSpecOperation_Task) (*types.PerformDvsProductSpecOperation_TaskResponse, error) { - var reqBody, resBody PerformDvsProductSpecOperation_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PerformVsanUpgradePreflightCheckBody struct { - Req *types.PerformVsanUpgradePreflightCheck `xml:"urn:vim25 PerformVsanUpgradePreflightCheck,omitempty"` - Res *types.PerformVsanUpgradePreflightCheckResponse `xml:"urn:vim25 PerformVsanUpgradePreflightCheckResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PerformVsanUpgradePreflightCheckBody) Fault() *soap.Fault { return b.Fault_ } - -func PerformVsanUpgradePreflightCheck(ctx context.Context, r soap.RoundTripper, req *types.PerformVsanUpgradePreflightCheck) (*types.PerformVsanUpgradePreflightCheckResponse, error) { - var reqBody, resBody PerformVsanUpgradePreflightCheckBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PerformVsanUpgrade_TaskBody struct { - Req *types.PerformVsanUpgrade_Task `xml:"urn:vim25 PerformVsanUpgrade_Task,omitempty"` - Res *types.PerformVsanUpgrade_TaskResponse `xml:"urn:vim25 PerformVsanUpgrade_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PerformVsanUpgrade_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PerformVsanUpgrade_Task(ctx context.Context, r soap.RoundTripper, req *types.PerformVsanUpgrade_Task) (*types.PerformVsanUpgrade_TaskResponse, error) { - var reqBody, resBody PerformVsanUpgrade_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PlaceVmBody struct { - Req *types.PlaceVm `xml:"urn:vim25 PlaceVm,omitempty"` - Res *types.PlaceVmResponse `xml:"urn:vim25 PlaceVmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PlaceVmBody) Fault() *soap.Fault { return b.Fault_ } - -func PlaceVm(ctx context.Context, r soap.RoundTripper, req *types.PlaceVm) (*types.PlaceVmResponse, error) { - var reqBody, resBody PlaceVmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PostEventBody struct { - Req *types.PostEvent `xml:"urn:vim25 PostEvent,omitempty"` - Res *types.PostEventResponse `xml:"urn:vim25 PostEventResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PostEventBody) Fault() *soap.Fault { return b.Fault_ } - -func PostEvent(ctx context.Context, r soap.RoundTripper, req *types.PostEvent) (*types.PostEventResponse, error) { - var reqBody, resBody PostEventBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PostHealthUpdatesBody struct { - Req *types.PostHealthUpdates `xml:"urn:vim25 PostHealthUpdates,omitempty"` - Res *types.PostHealthUpdatesResponse `xml:"urn:vim25 PostHealthUpdatesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PostHealthUpdatesBody) Fault() *soap.Fault { return b.Fault_ } - -func PostHealthUpdates(ctx context.Context, r soap.RoundTripper, req *types.PostHealthUpdates) (*types.PostHealthUpdatesResponse, error) { - var reqBody, resBody PostHealthUpdatesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PowerDownHostToStandBy_TaskBody struct { - Req *types.PowerDownHostToStandBy_Task `xml:"urn:vim25 PowerDownHostToStandBy_Task,omitempty"` - Res *types.PowerDownHostToStandBy_TaskResponse `xml:"urn:vim25 PowerDownHostToStandBy_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PowerDownHostToStandBy_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PowerDownHostToStandBy_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerDownHostToStandBy_Task) (*types.PowerDownHostToStandBy_TaskResponse, error) { - var reqBody, resBody PowerDownHostToStandBy_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PowerOffVApp_TaskBody struct { - Req *types.PowerOffVApp_Task `xml:"urn:vim25 PowerOffVApp_Task,omitempty"` - Res *types.PowerOffVApp_TaskResponse `xml:"urn:vim25 PowerOffVApp_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PowerOffVApp_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PowerOffVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerOffVApp_Task) (*types.PowerOffVApp_TaskResponse, error) { - var reqBody, resBody PowerOffVApp_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PowerOffVM_TaskBody struct { - Req *types.PowerOffVM_Task `xml:"urn:vim25 PowerOffVM_Task,omitempty"` - Res *types.PowerOffVM_TaskResponse `xml:"urn:vim25 PowerOffVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PowerOffVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PowerOffVM_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerOffVM_Task) (*types.PowerOffVM_TaskResponse, error) { - var reqBody, resBody PowerOffVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PowerOnMultiVM_TaskBody struct { - Req *types.PowerOnMultiVM_Task `xml:"urn:vim25 PowerOnMultiVM_Task,omitempty"` - Res *types.PowerOnMultiVM_TaskResponse `xml:"urn:vim25 PowerOnMultiVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PowerOnMultiVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PowerOnMultiVM_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerOnMultiVM_Task) (*types.PowerOnMultiVM_TaskResponse, error) { - var reqBody, resBody PowerOnMultiVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PowerOnVApp_TaskBody struct { - Req *types.PowerOnVApp_Task `xml:"urn:vim25 PowerOnVApp_Task,omitempty"` - Res *types.PowerOnVApp_TaskResponse `xml:"urn:vim25 PowerOnVApp_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PowerOnVApp_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PowerOnVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerOnVApp_Task) (*types.PowerOnVApp_TaskResponse, error) { - var reqBody, resBody PowerOnVApp_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PowerOnVM_TaskBody struct { - Req *types.PowerOnVM_Task `xml:"urn:vim25 PowerOnVM_Task,omitempty"` - Res *types.PowerOnVM_TaskResponse `xml:"urn:vim25 PowerOnVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PowerOnVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PowerOnVM_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerOnVM_Task) (*types.PowerOnVM_TaskResponse, error) { - var reqBody, resBody PowerOnVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PowerUpHostFromStandBy_TaskBody struct { - Req *types.PowerUpHostFromStandBy_Task `xml:"urn:vim25 PowerUpHostFromStandBy_Task,omitempty"` - Res *types.PowerUpHostFromStandBy_TaskResponse `xml:"urn:vim25 PowerUpHostFromStandBy_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PowerUpHostFromStandBy_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PowerUpHostFromStandBy_Task(ctx context.Context, r soap.RoundTripper, req *types.PowerUpHostFromStandBy_Task) (*types.PowerUpHostFromStandBy_TaskResponse, error) { - var reqBody, resBody PowerUpHostFromStandBy_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PrepareCryptoBody struct { - Req *types.PrepareCrypto `xml:"urn:vim25 PrepareCrypto,omitempty"` - Res *types.PrepareCryptoResponse `xml:"urn:vim25 PrepareCryptoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PrepareCryptoBody) Fault() *soap.Fault { return b.Fault_ } - -func PrepareCrypto(ctx context.Context, r soap.RoundTripper, req *types.PrepareCrypto) (*types.PrepareCryptoResponse, error) { - var reqBody, resBody PrepareCryptoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PromoteDisks_TaskBody struct { - Req *types.PromoteDisks_Task `xml:"urn:vim25 PromoteDisks_Task,omitempty"` - Res *types.PromoteDisks_TaskResponse `xml:"urn:vim25 PromoteDisks_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PromoteDisks_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func PromoteDisks_Task(ctx context.Context, r soap.RoundTripper, req *types.PromoteDisks_Task) (*types.PromoteDisks_TaskResponse, error) { - var reqBody, resBody PromoteDisks_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type PutUsbScanCodesBody struct { - Req *types.PutUsbScanCodes `xml:"urn:vim25 PutUsbScanCodes,omitempty"` - Res *types.PutUsbScanCodesResponse `xml:"urn:vim25 PutUsbScanCodesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *PutUsbScanCodesBody) Fault() *soap.Fault { return b.Fault_ } - -func PutUsbScanCodes(ctx context.Context, r soap.RoundTripper, req *types.PutUsbScanCodes) (*types.PutUsbScanCodesResponse, error) { - var reqBody, resBody PutUsbScanCodesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAnswerFileStatusBody struct { - Req *types.QueryAnswerFileStatus `xml:"urn:vim25 QueryAnswerFileStatus,omitempty"` - Res *types.QueryAnswerFileStatusResponse `xml:"urn:vim25 QueryAnswerFileStatusResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAnswerFileStatusBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAnswerFileStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryAnswerFileStatus) (*types.QueryAnswerFileStatusResponse, error) { - var reqBody, resBody QueryAnswerFileStatusBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAssignedLicensesBody struct { - Req *types.QueryAssignedLicenses `xml:"urn:vim25 QueryAssignedLicenses,omitempty"` - Res *types.QueryAssignedLicensesResponse `xml:"urn:vim25 QueryAssignedLicensesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAssignedLicensesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAssignedLicenses(ctx context.Context, r soap.RoundTripper, req *types.QueryAssignedLicenses) (*types.QueryAssignedLicensesResponse, error) { - var reqBody, resBody QueryAssignedLicensesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAvailableDisksForVmfsBody struct { - Req *types.QueryAvailableDisksForVmfs `xml:"urn:vim25 QueryAvailableDisksForVmfs,omitempty"` - Res *types.QueryAvailableDisksForVmfsResponse `xml:"urn:vim25 QueryAvailableDisksForVmfsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAvailableDisksForVmfsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAvailableDisksForVmfs(ctx context.Context, r soap.RoundTripper, req *types.QueryAvailableDisksForVmfs) (*types.QueryAvailableDisksForVmfsResponse, error) { - var reqBody, resBody QueryAvailableDisksForVmfsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAvailableDvsSpecBody struct { - Req *types.QueryAvailableDvsSpec `xml:"urn:vim25 QueryAvailableDvsSpec,omitempty"` - Res *types.QueryAvailableDvsSpecResponse `xml:"urn:vim25 QueryAvailableDvsSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAvailableDvsSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAvailableDvsSpec(ctx context.Context, r soap.RoundTripper, req *types.QueryAvailableDvsSpec) (*types.QueryAvailableDvsSpecResponse, error) { - var reqBody, resBody QueryAvailableDvsSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAvailablePartitionBody struct { - Req *types.QueryAvailablePartition `xml:"urn:vim25 QueryAvailablePartition,omitempty"` - Res *types.QueryAvailablePartitionResponse `xml:"urn:vim25 QueryAvailablePartitionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAvailablePartitionBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAvailablePartition(ctx context.Context, r soap.RoundTripper, req *types.QueryAvailablePartition) (*types.QueryAvailablePartitionResponse, error) { - var reqBody, resBody QueryAvailablePartitionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAvailablePerfMetricBody struct { - Req *types.QueryAvailablePerfMetric `xml:"urn:vim25 QueryAvailablePerfMetric,omitempty"` - Res *types.QueryAvailablePerfMetricResponse `xml:"urn:vim25 QueryAvailablePerfMetricResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAvailablePerfMetricBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAvailablePerfMetric(ctx context.Context, r soap.RoundTripper, req *types.QueryAvailablePerfMetric) (*types.QueryAvailablePerfMetricResponse, error) { - var reqBody, resBody QueryAvailablePerfMetricBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAvailableSsdsBody struct { - Req *types.QueryAvailableSsds `xml:"urn:vim25 QueryAvailableSsds,omitempty"` - Res *types.QueryAvailableSsdsResponse `xml:"urn:vim25 QueryAvailableSsdsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAvailableSsdsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAvailableSsds(ctx context.Context, r soap.RoundTripper, req *types.QueryAvailableSsds) (*types.QueryAvailableSsdsResponse, error) { - var reqBody, resBody QueryAvailableSsdsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryAvailableTimeZonesBody struct { - Req *types.QueryAvailableTimeZones `xml:"urn:vim25 QueryAvailableTimeZones,omitempty"` - Res *types.QueryAvailableTimeZonesResponse `xml:"urn:vim25 QueryAvailableTimeZonesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryAvailableTimeZonesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryAvailableTimeZones(ctx context.Context, r soap.RoundTripper, req *types.QueryAvailableTimeZones) (*types.QueryAvailableTimeZonesResponse, error) { - var reqBody, resBody QueryAvailableTimeZonesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryBootDevicesBody struct { - Req *types.QueryBootDevices `xml:"urn:vim25 QueryBootDevices,omitempty"` - Res *types.QueryBootDevicesResponse `xml:"urn:vim25 QueryBootDevicesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryBootDevicesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryBootDevices(ctx context.Context, r soap.RoundTripper, req *types.QueryBootDevices) (*types.QueryBootDevicesResponse, error) { - var reqBody, resBody QueryBootDevicesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryBoundVnicsBody struct { - Req *types.QueryBoundVnics `xml:"urn:vim25 QueryBoundVnics,omitempty"` - Res *types.QueryBoundVnicsResponse `xml:"urn:vim25 QueryBoundVnicsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryBoundVnicsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryBoundVnics(ctx context.Context, r soap.RoundTripper, req *types.QueryBoundVnics) (*types.QueryBoundVnicsResponse, error) { - var reqBody, resBody QueryBoundVnicsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryCandidateNicsBody struct { - Req *types.QueryCandidateNics `xml:"urn:vim25 QueryCandidateNics,omitempty"` - Res *types.QueryCandidateNicsResponse `xml:"urn:vim25 QueryCandidateNicsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryCandidateNicsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryCandidateNics(ctx context.Context, r soap.RoundTripper, req *types.QueryCandidateNics) (*types.QueryCandidateNicsResponse, error) { - var reqBody, resBody QueryCandidateNicsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryChangedDiskAreasBody struct { - Req *types.QueryChangedDiskAreas `xml:"urn:vim25 QueryChangedDiskAreas,omitempty"` - Res *types.QueryChangedDiskAreasResponse `xml:"urn:vim25 QueryChangedDiskAreasResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryChangedDiskAreasBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryChangedDiskAreas(ctx context.Context, r soap.RoundTripper, req *types.QueryChangedDiskAreas) (*types.QueryChangedDiskAreasResponse, error) { - var reqBody, resBody QueryChangedDiskAreasBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryCmmdsBody struct { - Req *types.QueryCmmds `xml:"urn:vim25 QueryCmmds,omitempty"` - Res *types.QueryCmmdsResponse `xml:"urn:vim25 QueryCmmdsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryCmmdsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryCmmds(ctx context.Context, r soap.RoundTripper, req *types.QueryCmmds) (*types.QueryCmmdsResponse, error) { - var reqBody, resBody QueryCmmdsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryCompatibleHostForExistingDvsBody struct { - Req *types.QueryCompatibleHostForExistingDvs `xml:"urn:vim25 QueryCompatibleHostForExistingDvs,omitempty"` - Res *types.QueryCompatibleHostForExistingDvsResponse `xml:"urn:vim25 QueryCompatibleHostForExistingDvsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryCompatibleHostForExistingDvsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryCompatibleHostForExistingDvs(ctx context.Context, r soap.RoundTripper, req *types.QueryCompatibleHostForExistingDvs) (*types.QueryCompatibleHostForExistingDvsResponse, error) { - var reqBody, resBody QueryCompatibleHostForExistingDvsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryCompatibleHostForNewDvsBody struct { - Req *types.QueryCompatibleHostForNewDvs `xml:"urn:vim25 QueryCompatibleHostForNewDvs,omitempty"` - Res *types.QueryCompatibleHostForNewDvsResponse `xml:"urn:vim25 QueryCompatibleHostForNewDvsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryCompatibleHostForNewDvsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryCompatibleHostForNewDvs(ctx context.Context, r soap.RoundTripper, req *types.QueryCompatibleHostForNewDvs) (*types.QueryCompatibleHostForNewDvsResponse, error) { - var reqBody, resBody QueryCompatibleHostForNewDvsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryComplianceStatusBody struct { - Req *types.QueryComplianceStatus `xml:"urn:vim25 QueryComplianceStatus,omitempty"` - Res *types.QueryComplianceStatusResponse `xml:"urn:vim25 QueryComplianceStatusResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryComplianceStatusBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryComplianceStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryComplianceStatus) (*types.QueryComplianceStatusResponse, error) { - var reqBody, resBody QueryComplianceStatusBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryConfigOptionBody struct { - Req *types.QueryConfigOption `xml:"urn:vim25 QueryConfigOption,omitempty"` - Res *types.QueryConfigOptionResponse `xml:"urn:vim25 QueryConfigOptionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryConfigOptionBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryConfigOption(ctx context.Context, r soap.RoundTripper, req *types.QueryConfigOption) (*types.QueryConfigOptionResponse, error) { - var reqBody, resBody QueryConfigOptionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryConfigOptionDescriptorBody struct { - Req *types.QueryConfigOptionDescriptor `xml:"urn:vim25 QueryConfigOptionDescriptor,omitempty"` - Res *types.QueryConfigOptionDescriptorResponse `xml:"urn:vim25 QueryConfigOptionDescriptorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryConfigOptionDescriptorBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryConfigOptionDescriptor(ctx context.Context, r soap.RoundTripper, req *types.QueryConfigOptionDescriptor) (*types.QueryConfigOptionDescriptorResponse, error) { - var reqBody, resBody QueryConfigOptionDescriptorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryConfigOptionExBody struct { - Req *types.QueryConfigOptionEx `xml:"urn:vim25 QueryConfigOptionEx,omitempty"` - Res *types.QueryConfigOptionExResponse `xml:"urn:vim25 QueryConfigOptionExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryConfigOptionExBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryConfigOptionEx(ctx context.Context, r soap.RoundTripper, req *types.QueryConfigOptionEx) (*types.QueryConfigOptionExResponse, error) { - var reqBody, resBody QueryConfigOptionExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryConfigTargetBody struct { - Req *types.QueryConfigTarget `xml:"urn:vim25 QueryConfigTarget,omitempty"` - Res *types.QueryConfigTargetResponse `xml:"urn:vim25 QueryConfigTargetResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryConfigTargetBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryConfigTarget(ctx context.Context, r soap.RoundTripper, req *types.QueryConfigTarget) (*types.QueryConfigTargetResponse, error) { - var reqBody, resBody QueryConfigTargetBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryConfiguredModuleOptionStringBody struct { - Req *types.QueryConfiguredModuleOptionString `xml:"urn:vim25 QueryConfiguredModuleOptionString,omitempty"` - Res *types.QueryConfiguredModuleOptionStringResponse `xml:"urn:vim25 QueryConfiguredModuleOptionStringResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryConfiguredModuleOptionStringBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryConfiguredModuleOptionString(ctx context.Context, r soap.RoundTripper, req *types.QueryConfiguredModuleOptionString) (*types.QueryConfiguredModuleOptionStringResponse, error) { - var reqBody, resBody QueryConfiguredModuleOptionStringBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryConnectionInfoBody struct { - Req *types.QueryConnectionInfo `xml:"urn:vim25 QueryConnectionInfo,omitempty"` - Res *types.QueryConnectionInfoResponse `xml:"urn:vim25 QueryConnectionInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryConnectionInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryConnectionInfo(ctx context.Context, r soap.RoundTripper, req *types.QueryConnectionInfo) (*types.QueryConnectionInfoResponse, error) { - var reqBody, resBody QueryConnectionInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryConnectionInfoViaSpecBody struct { - Req *types.QueryConnectionInfoViaSpec `xml:"urn:vim25 QueryConnectionInfoViaSpec,omitempty"` - Res *types.QueryConnectionInfoViaSpecResponse `xml:"urn:vim25 QueryConnectionInfoViaSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryConnectionInfoViaSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryConnectionInfoViaSpec(ctx context.Context, r soap.RoundTripper, req *types.QueryConnectionInfoViaSpec) (*types.QueryConnectionInfoViaSpecResponse, error) { - var reqBody, resBody QueryConnectionInfoViaSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDatastorePerformanceSummaryBody struct { - Req *types.QueryDatastorePerformanceSummary `xml:"urn:vim25 QueryDatastorePerformanceSummary,omitempty"` - Res *types.QueryDatastorePerformanceSummaryResponse `xml:"urn:vim25 QueryDatastorePerformanceSummaryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDatastorePerformanceSummaryBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDatastorePerformanceSummary(ctx context.Context, r soap.RoundTripper, req *types.QueryDatastorePerformanceSummary) (*types.QueryDatastorePerformanceSummaryResponse, error) { - var reqBody, resBody QueryDatastorePerformanceSummaryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDateTimeBody struct { - Req *types.QueryDateTime `xml:"urn:vim25 QueryDateTime,omitempty"` - Res *types.QueryDateTimeResponse `xml:"urn:vim25 QueryDateTimeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDateTimeBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDateTime(ctx context.Context, r soap.RoundTripper, req *types.QueryDateTime) (*types.QueryDateTimeResponse, error) { - var reqBody, resBody QueryDateTimeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDescriptionsBody struct { - Req *types.QueryDescriptions `xml:"urn:vim25 QueryDescriptions,omitempty"` - Res *types.QueryDescriptionsResponse `xml:"urn:vim25 QueryDescriptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDescriptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDescriptions(ctx context.Context, r soap.RoundTripper, req *types.QueryDescriptions) (*types.QueryDescriptionsResponse, error) { - var reqBody, resBody QueryDescriptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDisksForVsanBody struct { - Req *types.QueryDisksForVsan `xml:"urn:vim25 QueryDisksForVsan,omitempty"` - Res *types.QueryDisksForVsanResponse `xml:"urn:vim25 QueryDisksForVsanResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDisksForVsanBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDisksForVsan(ctx context.Context, r soap.RoundTripper, req *types.QueryDisksForVsan) (*types.QueryDisksForVsanResponse, error) { - var reqBody, resBody QueryDisksForVsanBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDisksUsingFilterBody struct { - Req *types.QueryDisksUsingFilter `xml:"urn:vim25 QueryDisksUsingFilter,omitempty"` - Res *types.QueryDisksUsingFilterResponse `xml:"urn:vim25 QueryDisksUsingFilterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDisksUsingFilterBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDisksUsingFilter(ctx context.Context, r soap.RoundTripper, req *types.QueryDisksUsingFilter) (*types.QueryDisksUsingFilterResponse, error) { - var reqBody, resBody QueryDisksUsingFilterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDvsByUuidBody struct { - Req *types.QueryDvsByUuid `xml:"urn:vim25 QueryDvsByUuid,omitempty"` - Res *types.QueryDvsByUuidResponse `xml:"urn:vim25 QueryDvsByUuidResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDvsByUuidBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDvsByUuid(ctx context.Context, r soap.RoundTripper, req *types.QueryDvsByUuid) (*types.QueryDvsByUuidResponse, error) { - var reqBody, resBody QueryDvsByUuidBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDvsCheckCompatibilityBody struct { - Req *types.QueryDvsCheckCompatibility `xml:"urn:vim25 QueryDvsCheckCompatibility,omitempty"` - Res *types.QueryDvsCheckCompatibilityResponse `xml:"urn:vim25 QueryDvsCheckCompatibilityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDvsCheckCompatibilityBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDvsCheckCompatibility(ctx context.Context, r soap.RoundTripper, req *types.QueryDvsCheckCompatibility) (*types.QueryDvsCheckCompatibilityResponse, error) { - var reqBody, resBody QueryDvsCheckCompatibilityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDvsCompatibleHostSpecBody struct { - Req *types.QueryDvsCompatibleHostSpec `xml:"urn:vim25 QueryDvsCompatibleHostSpec,omitempty"` - Res *types.QueryDvsCompatibleHostSpecResponse `xml:"urn:vim25 QueryDvsCompatibleHostSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDvsCompatibleHostSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDvsCompatibleHostSpec(ctx context.Context, r soap.RoundTripper, req *types.QueryDvsCompatibleHostSpec) (*types.QueryDvsCompatibleHostSpecResponse, error) { - var reqBody, resBody QueryDvsCompatibleHostSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDvsConfigTargetBody struct { - Req *types.QueryDvsConfigTarget `xml:"urn:vim25 QueryDvsConfigTarget,omitempty"` - Res *types.QueryDvsConfigTargetResponse `xml:"urn:vim25 QueryDvsConfigTargetResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDvsConfigTargetBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDvsConfigTarget(ctx context.Context, r soap.RoundTripper, req *types.QueryDvsConfigTarget) (*types.QueryDvsConfigTargetResponse, error) { - var reqBody, resBody QueryDvsConfigTargetBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryDvsFeatureCapabilityBody struct { - Req *types.QueryDvsFeatureCapability `xml:"urn:vim25 QueryDvsFeatureCapability,omitempty"` - Res *types.QueryDvsFeatureCapabilityResponse `xml:"urn:vim25 QueryDvsFeatureCapabilityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryDvsFeatureCapabilityBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryDvsFeatureCapability(ctx context.Context, r soap.RoundTripper, req *types.QueryDvsFeatureCapability) (*types.QueryDvsFeatureCapabilityResponse, error) { - var reqBody, resBody QueryDvsFeatureCapabilityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryEventsBody struct { - Req *types.QueryEvents `xml:"urn:vim25 QueryEvents,omitempty"` - Res *types.QueryEventsResponse `xml:"urn:vim25 QueryEventsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryEventsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryEvents(ctx context.Context, r soap.RoundTripper, req *types.QueryEvents) (*types.QueryEventsResponse, error) { - var reqBody, resBody QueryEventsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryExpressionMetadataBody struct { - Req *types.QueryExpressionMetadata `xml:"urn:vim25 QueryExpressionMetadata,omitempty"` - Res *types.QueryExpressionMetadataResponse `xml:"urn:vim25 QueryExpressionMetadataResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryExpressionMetadataBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryExpressionMetadata(ctx context.Context, r soap.RoundTripper, req *types.QueryExpressionMetadata) (*types.QueryExpressionMetadataResponse, error) { - var reqBody, resBody QueryExpressionMetadataBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryExtensionIpAllocationUsageBody struct { - Req *types.QueryExtensionIpAllocationUsage `xml:"urn:vim25 QueryExtensionIpAllocationUsage,omitempty"` - Res *types.QueryExtensionIpAllocationUsageResponse `xml:"urn:vim25 QueryExtensionIpAllocationUsageResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryExtensionIpAllocationUsageBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryExtensionIpAllocationUsage(ctx context.Context, r soap.RoundTripper, req *types.QueryExtensionIpAllocationUsage) (*types.QueryExtensionIpAllocationUsageResponse, error) { - var reqBody, resBody QueryExtensionIpAllocationUsageBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryFaultToleranceCompatibilityBody struct { - Req *types.QueryFaultToleranceCompatibility `xml:"urn:vim25 QueryFaultToleranceCompatibility,omitempty"` - Res *types.QueryFaultToleranceCompatibilityResponse `xml:"urn:vim25 QueryFaultToleranceCompatibilityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryFaultToleranceCompatibilityBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryFaultToleranceCompatibility(ctx context.Context, r soap.RoundTripper, req *types.QueryFaultToleranceCompatibility) (*types.QueryFaultToleranceCompatibilityResponse, error) { - var reqBody, resBody QueryFaultToleranceCompatibilityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryFaultToleranceCompatibilityExBody struct { - Req *types.QueryFaultToleranceCompatibilityEx `xml:"urn:vim25 QueryFaultToleranceCompatibilityEx,omitempty"` - Res *types.QueryFaultToleranceCompatibilityExResponse `xml:"urn:vim25 QueryFaultToleranceCompatibilityExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryFaultToleranceCompatibilityExBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryFaultToleranceCompatibilityEx(ctx context.Context, r soap.RoundTripper, req *types.QueryFaultToleranceCompatibilityEx) (*types.QueryFaultToleranceCompatibilityExResponse, error) { - var reqBody, resBody QueryFaultToleranceCompatibilityExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryFilterEntitiesBody struct { - Req *types.QueryFilterEntities `xml:"urn:vim25 QueryFilterEntities,omitempty"` - Res *types.QueryFilterEntitiesResponse `xml:"urn:vim25 QueryFilterEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryFilterEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryFilterEntities(ctx context.Context, r soap.RoundTripper, req *types.QueryFilterEntities) (*types.QueryFilterEntitiesResponse, error) { - var reqBody, resBody QueryFilterEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryFilterInfoIdsBody struct { - Req *types.QueryFilterInfoIds `xml:"urn:vim25 QueryFilterInfoIds,omitempty"` - Res *types.QueryFilterInfoIdsResponse `xml:"urn:vim25 QueryFilterInfoIdsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryFilterInfoIdsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryFilterInfoIds(ctx context.Context, r soap.RoundTripper, req *types.QueryFilterInfoIds) (*types.QueryFilterInfoIdsResponse, error) { - var reqBody, resBody QueryFilterInfoIdsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryFilterListBody struct { - Req *types.QueryFilterList `xml:"urn:vim25 QueryFilterList,omitempty"` - Res *types.QueryFilterListResponse `xml:"urn:vim25 QueryFilterListResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryFilterListBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryFilterList(ctx context.Context, r soap.RoundTripper, req *types.QueryFilterList) (*types.QueryFilterListResponse, error) { - var reqBody, resBody QueryFilterListBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryFilterNameBody struct { - Req *types.QueryFilterName `xml:"urn:vim25 QueryFilterName,omitempty"` - Res *types.QueryFilterNameResponse `xml:"urn:vim25 QueryFilterNameResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryFilterNameBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryFilterName(ctx context.Context, r soap.RoundTripper, req *types.QueryFilterName) (*types.QueryFilterNameResponse, error) { - var reqBody, resBody QueryFilterNameBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryFirmwareConfigUploadURLBody struct { - Req *types.QueryFirmwareConfigUploadURL `xml:"urn:vim25 QueryFirmwareConfigUploadURL,omitempty"` - Res *types.QueryFirmwareConfigUploadURLResponse `xml:"urn:vim25 QueryFirmwareConfigUploadURLResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryFirmwareConfigUploadURLBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryFirmwareConfigUploadURL(ctx context.Context, r soap.RoundTripper, req *types.QueryFirmwareConfigUploadURL) (*types.QueryFirmwareConfigUploadURLResponse, error) { - var reqBody, resBody QueryFirmwareConfigUploadURLBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryHealthUpdateInfosBody struct { - Req *types.QueryHealthUpdateInfos `xml:"urn:vim25 QueryHealthUpdateInfos,omitempty"` - Res *types.QueryHealthUpdateInfosResponse `xml:"urn:vim25 QueryHealthUpdateInfosResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryHealthUpdateInfosBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryHealthUpdateInfos(ctx context.Context, r soap.RoundTripper, req *types.QueryHealthUpdateInfos) (*types.QueryHealthUpdateInfosResponse, error) { - var reqBody, resBody QueryHealthUpdateInfosBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryHealthUpdatesBody struct { - Req *types.QueryHealthUpdates `xml:"urn:vim25 QueryHealthUpdates,omitempty"` - Res *types.QueryHealthUpdatesResponse `xml:"urn:vim25 QueryHealthUpdatesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryHealthUpdatesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryHealthUpdates(ctx context.Context, r soap.RoundTripper, req *types.QueryHealthUpdates) (*types.QueryHealthUpdatesResponse, error) { - var reqBody, resBody QueryHealthUpdatesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryHostConnectionInfoBody struct { - Req *types.QueryHostConnectionInfo `xml:"urn:vim25 QueryHostConnectionInfo,omitempty"` - Res *types.QueryHostConnectionInfoResponse `xml:"urn:vim25 QueryHostConnectionInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryHostConnectionInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryHostConnectionInfo(ctx context.Context, r soap.RoundTripper, req *types.QueryHostConnectionInfo) (*types.QueryHostConnectionInfoResponse, error) { - var reqBody, resBody QueryHostConnectionInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryHostPatch_TaskBody struct { - Req *types.QueryHostPatch_Task `xml:"urn:vim25 QueryHostPatch_Task,omitempty"` - Res *types.QueryHostPatch_TaskResponse `xml:"urn:vim25 QueryHostPatch_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryHostPatch_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.QueryHostPatch_Task) (*types.QueryHostPatch_TaskResponse, error) { - var reqBody, resBody QueryHostPatch_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryHostProfileMetadataBody struct { - Req *types.QueryHostProfileMetadata `xml:"urn:vim25 QueryHostProfileMetadata,omitempty"` - Res *types.QueryHostProfileMetadataResponse `xml:"urn:vim25 QueryHostProfileMetadataResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryHostProfileMetadataBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryHostProfileMetadata(ctx context.Context, r soap.RoundTripper, req *types.QueryHostProfileMetadata) (*types.QueryHostProfileMetadataResponse, error) { - var reqBody, resBody QueryHostProfileMetadataBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryHostStatusBody struct { - Req *types.QueryHostStatus `xml:"urn:vim25 QueryHostStatus,omitempty"` - Res *types.QueryHostStatusResponse `xml:"urn:vim25 QueryHostStatusResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryHostStatusBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryHostStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryHostStatus) (*types.QueryHostStatusResponse, error) { - var reqBody, resBody QueryHostStatusBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryIORMConfigOptionBody struct { - Req *types.QueryIORMConfigOption `xml:"urn:vim25 QueryIORMConfigOption,omitempty"` - Res *types.QueryIORMConfigOptionResponse `xml:"urn:vim25 QueryIORMConfigOptionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryIORMConfigOptionBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryIORMConfigOption(ctx context.Context, r soap.RoundTripper, req *types.QueryIORMConfigOption) (*types.QueryIORMConfigOptionResponse, error) { - var reqBody, resBody QueryIORMConfigOptionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryIPAllocationsBody struct { - Req *types.QueryIPAllocations `xml:"urn:vim25 QueryIPAllocations,omitempty"` - Res *types.QueryIPAllocationsResponse `xml:"urn:vim25 QueryIPAllocationsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryIPAllocationsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryIPAllocations(ctx context.Context, r soap.RoundTripper, req *types.QueryIPAllocations) (*types.QueryIPAllocationsResponse, error) { - var reqBody, resBody QueryIPAllocationsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryIoFilterInfoBody struct { - Req *types.QueryIoFilterInfo `xml:"urn:vim25 QueryIoFilterInfo,omitempty"` - Res *types.QueryIoFilterInfoResponse `xml:"urn:vim25 QueryIoFilterInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryIoFilterInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryIoFilterInfo(ctx context.Context, r soap.RoundTripper, req *types.QueryIoFilterInfo) (*types.QueryIoFilterInfoResponse, error) { - var reqBody, resBody QueryIoFilterInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryIoFilterIssuesBody struct { - Req *types.QueryIoFilterIssues `xml:"urn:vim25 QueryIoFilterIssues,omitempty"` - Res *types.QueryIoFilterIssuesResponse `xml:"urn:vim25 QueryIoFilterIssuesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryIoFilterIssuesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryIoFilterIssues(ctx context.Context, r soap.RoundTripper, req *types.QueryIoFilterIssues) (*types.QueryIoFilterIssuesResponse, error) { - var reqBody, resBody QueryIoFilterIssuesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryIpPoolsBody struct { - Req *types.QueryIpPools `xml:"urn:vim25 QueryIpPools,omitempty"` - Res *types.QueryIpPoolsResponse `xml:"urn:vim25 QueryIpPoolsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryIpPoolsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryIpPools(ctx context.Context, r soap.RoundTripper, req *types.QueryIpPools) (*types.QueryIpPoolsResponse, error) { - var reqBody, resBody QueryIpPoolsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryLicenseSourceAvailabilityBody struct { - Req *types.QueryLicenseSourceAvailability `xml:"urn:vim25 QueryLicenseSourceAvailability,omitempty"` - Res *types.QueryLicenseSourceAvailabilityResponse `xml:"urn:vim25 QueryLicenseSourceAvailabilityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryLicenseSourceAvailabilityBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryLicenseSourceAvailability(ctx context.Context, r soap.RoundTripper, req *types.QueryLicenseSourceAvailability) (*types.QueryLicenseSourceAvailabilityResponse, error) { - var reqBody, resBody QueryLicenseSourceAvailabilityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryLicenseUsageBody struct { - Req *types.QueryLicenseUsage `xml:"urn:vim25 QueryLicenseUsage,omitempty"` - Res *types.QueryLicenseUsageResponse `xml:"urn:vim25 QueryLicenseUsageResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryLicenseUsageBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryLicenseUsage(ctx context.Context, r soap.RoundTripper, req *types.QueryLicenseUsage) (*types.QueryLicenseUsageResponse, error) { - var reqBody, resBody QueryLicenseUsageBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryLockdownExceptionsBody struct { - Req *types.QueryLockdownExceptions `xml:"urn:vim25 QueryLockdownExceptions,omitempty"` - Res *types.QueryLockdownExceptionsResponse `xml:"urn:vim25 QueryLockdownExceptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryLockdownExceptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryLockdownExceptions(ctx context.Context, r soap.RoundTripper, req *types.QueryLockdownExceptions) (*types.QueryLockdownExceptionsResponse, error) { - var reqBody, resBody QueryLockdownExceptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryManagedByBody struct { - Req *types.QueryManagedBy `xml:"urn:vim25 QueryManagedBy,omitempty"` - Res *types.QueryManagedByResponse `xml:"urn:vim25 QueryManagedByResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryManagedByBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryManagedBy(ctx context.Context, r soap.RoundTripper, req *types.QueryManagedBy) (*types.QueryManagedByResponse, error) { - var reqBody, resBody QueryManagedByBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryMemoryOverheadBody struct { - Req *types.QueryMemoryOverhead `xml:"urn:vim25 QueryMemoryOverhead,omitempty"` - Res *types.QueryMemoryOverheadResponse `xml:"urn:vim25 QueryMemoryOverheadResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryMemoryOverheadBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryMemoryOverhead(ctx context.Context, r soap.RoundTripper, req *types.QueryMemoryOverhead) (*types.QueryMemoryOverheadResponse, error) { - var reqBody, resBody QueryMemoryOverheadBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryMemoryOverheadExBody struct { - Req *types.QueryMemoryOverheadEx `xml:"urn:vim25 QueryMemoryOverheadEx,omitempty"` - Res *types.QueryMemoryOverheadExResponse `xml:"urn:vim25 QueryMemoryOverheadExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryMemoryOverheadExBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryMemoryOverheadEx(ctx context.Context, r soap.RoundTripper, req *types.QueryMemoryOverheadEx) (*types.QueryMemoryOverheadExResponse, error) { - var reqBody, resBody QueryMemoryOverheadExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryMigrationDependenciesBody struct { - Req *types.QueryMigrationDependencies `xml:"urn:vim25 QueryMigrationDependencies,omitempty"` - Res *types.QueryMigrationDependenciesResponse `xml:"urn:vim25 QueryMigrationDependenciesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryMigrationDependenciesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryMigrationDependencies(ctx context.Context, r soap.RoundTripper, req *types.QueryMigrationDependencies) (*types.QueryMigrationDependenciesResponse, error) { - var reqBody, resBody QueryMigrationDependenciesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryModulesBody struct { - Req *types.QueryModules `xml:"urn:vim25 QueryModules,omitempty"` - Res *types.QueryModulesResponse `xml:"urn:vim25 QueryModulesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryModulesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryModules(ctx context.Context, r soap.RoundTripper, req *types.QueryModules) (*types.QueryModulesResponse, error) { - var reqBody, resBody QueryModulesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryMonitoredEntitiesBody struct { - Req *types.QueryMonitoredEntities `xml:"urn:vim25 QueryMonitoredEntities,omitempty"` - Res *types.QueryMonitoredEntitiesResponse `xml:"urn:vim25 QueryMonitoredEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryMonitoredEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryMonitoredEntities(ctx context.Context, r soap.RoundTripper, req *types.QueryMonitoredEntities) (*types.QueryMonitoredEntitiesResponse, error) { - var reqBody, resBody QueryMonitoredEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryNFSUserBody struct { - Req *types.QueryNFSUser `xml:"urn:vim25 QueryNFSUser,omitempty"` - Res *types.QueryNFSUserResponse `xml:"urn:vim25 QueryNFSUserResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryNFSUserBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryNFSUser(ctx context.Context, r soap.RoundTripper, req *types.QueryNFSUser) (*types.QueryNFSUserResponse, error) { - var reqBody, resBody QueryNFSUserBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryNetConfigBody struct { - Req *types.QueryNetConfig `xml:"urn:vim25 QueryNetConfig,omitempty"` - Res *types.QueryNetConfigResponse `xml:"urn:vim25 QueryNetConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryNetConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryNetConfig(ctx context.Context, r soap.RoundTripper, req *types.QueryNetConfig) (*types.QueryNetConfigResponse, error) { - var reqBody, resBody QueryNetConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryNetworkHintBody struct { - Req *types.QueryNetworkHint `xml:"urn:vim25 QueryNetworkHint,omitempty"` - Res *types.QueryNetworkHintResponse `xml:"urn:vim25 QueryNetworkHintResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryNetworkHintBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryNetworkHint(ctx context.Context, r soap.RoundTripper, req *types.QueryNetworkHint) (*types.QueryNetworkHintResponse, error) { - var reqBody, resBody QueryNetworkHintBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryObjectsOnPhysicalVsanDiskBody struct { - Req *types.QueryObjectsOnPhysicalVsanDisk `xml:"urn:vim25 QueryObjectsOnPhysicalVsanDisk,omitempty"` - Res *types.QueryObjectsOnPhysicalVsanDiskResponse `xml:"urn:vim25 QueryObjectsOnPhysicalVsanDiskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryObjectsOnPhysicalVsanDiskBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryObjectsOnPhysicalVsanDisk(ctx context.Context, r soap.RoundTripper, req *types.QueryObjectsOnPhysicalVsanDisk) (*types.QueryObjectsOnPhysicalVsanDiskResponse, error) { - var reqBody, resBody QueryObjectsOnPhysicalVsanDiskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryOptionsBody struct { - Req *types.QueryOptions `xml:"urn:vim25 QueryOptions,omitempty"` - Res *types.QueryOptionsResponse `xml:"urn:vim25 QueryOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryOptions) (*types.QueryOptionsResponse, error) { - var reqBody, resBody QueryOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPartitionCreateDescBody struct { - Req *types.QueryPartitionCreateDesc `xml:"urn:vim25 QueryPartitionCreateDesc,omitempty"` - Res *types.QueryPartitionCreateDescResponse `xml:"urn:vim25 QueryPartitionCreateDescResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPartitionCreateDescBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPartitionCreateDesc(ctx context.Context, r soap.RoundTripper, req *types.QueryPartitionCreateDesc) (*types.QueryPartitionCreateDescResponse, error) { - var reqBody, resBody QueryPartitionCreateDescBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPartitionCreateOptionsBody struct { - Req *types.QueryPartitionCreateOptions `xml:"urn:vim25 QueryPartitionCreateOptions,omitempty"` - Res *types.QueryPartitionCreateOptionsResponse `xml:"urn:vim25 QueryPartitionCreateOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPartitionCreateOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPartitionCreateOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryPartitionCreateOptions) (*types.QueryPartitionCreateOptionsResponse, error) { - var reqBody, resBody QueryPartitionCreateOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPathSelectionPolicyOptionsBody struct { - Req *types.QueryPathSelectionPolicyOptions `xml:"urn:vim25 QueryPathSelectionPolicyOptions,omitempty"` - Res *types.QueryPathSelectionPolicyOptionsResponse `xml:"urn:vim25 QueryPathSelectionPolicyOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPathSelectionPolicyOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPathSelectionPolicyOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryPathSelectionPolicyOptions) (*types.QueryPathSelectionPolicyOptionsResponse, error) { - var reqBody, resBody QueryPathSelectionPolicyOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPerfBody struct { - Req *types.QueryPerf `xml:"urn:vim25 QueryPerf,omitempty"` - Res *types.QueryPerfResponse `xml:"urn:vim25 QueryPerfResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPerfBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPerf(ctx context.Context, r soap.RoundTripper, req *types.QueryPerf) (*types.QueryPerfResponse, error) { - var reqBody, resBody QueryPerfBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPerfCompositeBody struct { - Req *types.QueryPerfComposite `xml:"urn:vim25 QueryPerfComposite,omitempty"` - Res *types.QueryPerfCompositeResponse `xml:"urn:vim25 QueryPerfCompositeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPerfCompositeBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPerfComposite(ctx context.Context, r soap.RoundTripper, req *types.QueryPerfComposite) (*types.QueryPerfCompositeResponse, error) { - var reqBody, resBody QueryPerfCompositeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPerfCounterBody struct { - Req *types.QueryPerfCounter `xml:"urn:vim25 QueryPerfCounter,omitempty"` - Res *types.QueryPerfCounterResponse `xml:"urn:vim25 QueryPerfCounterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPerfCounterBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPerfCounter(ctx context.Context, r soap.RoundTripper, req *types.QueryPerfCounter) (*types.QueryPerfCounterResponse, error) { - var reqBody, resBody QueryPerfCounterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPerfCounterByLevelBody struct { - Req *types.QueryPerfCounterByLevel `xml:"urn:vim25 QueryPerfCounterByLevel,omitempty"` - Res *types.QueryPerfCounterByLevelResponse `xml:"urn:vim25 QueryPerfCounterByLevelResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPerfCounterByLevelBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPerfCounterByLevel(ctx context.Context, r soap.RoundTripper, req *types.QueryPerfCounterByLevel) (*types.QueryPerfCounterByLevelResponse, error) { - var reqBody, resBody QueryPerfCounterByLevelBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPerfProviderSummaryBody struct { - Req *types.QueryPerfProviderSummary `xml:"urn:vim25 QueryPerfProviderSummary,omitempty"` - Res *types.QueryPerfProviderSummaryResponse `xml:"urn:vim25 QueryPerfProviderSummaryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPerfProviderSummaryBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPerfProviderSummary(ctx context.Context, r soap.RoundTripper, req *types.QueryPerfProviderSummary) (*types.QueryPerfProviderSummaryResponse, error) { - var reqBody, resBody QueryPerfProviderSummaryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPhysicalVsanDisksBody struct { - Req *types.QueryPhysicalVsanDisks `xml:"urn:vim25 QueryPhysicalVsanDisks,omitempty"` - Res *types.QueryPhysicalVsanDisksResponse `xml:"urn:vim25 QueryPhysicalVsanDisksResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPhysicalVsanDisksBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPhysicalVsanDisks(ctx context.Context, r soap.RoundTripper, req *types.QueryPhysicalVsanDisks) (*types.QueryPhysicalVsanDisksResponse, error) { - var reqBody, resBody QueryPhysicalVsanDisksBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPnicStatusBody struct { - Req *types.QueryPnicStatus `xml:"urn:vim25 QueryPnicStatus,omitempty"` - Res *types.QueryPnicStatusResponse `xml:"urn:vim25 QueryPnicStatusResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPnicStatusBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPnicStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryPnicStatus) (*types.QueryPnicStatusResponse, error) { - var reqBody, resBody QueryPnicStatusBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryPolicyMetadataBody struct { - Req *types.QueryPolicyMetadata `xml:"urn:vim25 QueryPolicyMetadata,omitempty"` - Res *types.QueryPolicyMetadataResponse `xml:"urn:vim25 QueryPolicyMetadataResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryPolicyMetadataBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryPolicyMetadata(ctx context.Context, r soap.RoundTripper, req *types.QueryPolicyMetadata) (*types.QueryPolicyMetadataResponse, error) { - var reqBody, resBody QueryPolicyMetadataBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryProfileStructureBody struct { - Req *types.QueryProfileStructure `xml:"urn:vim25 QueryProfileStructure,omitempty"` - Res *types.QueryProfileStructureResponse `xml:"urn:vim25 QueryProfileStructureResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryProfileStructureBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryProfileStructure(ctx context.Context, r soap.RoundTripper, req *types.QueryProfileStructure) (*types.QueryProfileStructureResponse, error) { - var reqBody, resBody QueryProfileStructureBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryProviderListBody struct { - Req *types.QueryProviderList `xml:"urn:vim25 QueryProviderList,omitempty"` - Res *types.QueryProviderListResponse `xml:"urn:vim25 QueryProviderListResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryProviderListBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryProviderList(ctx context.Context, r soap.RoundTripper, req *types.QueryProviderList) (*types.QueryProviderListResponse, error) { - var reqBody, resBody QueryProviderListBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryProviderNameBody struct { - Req *types.QueryProviderName `xml:"urn:vim25 QueryProviderName,omitempty"` - Res *types.QueryProviderNameResponse `xml:"urn:vim25 QueryProviderNameResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryProviderNameBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryProviderName(ctx context.Context, r soap.RoundTripper, req *types.QueryProviderName) (*types.QueryProviderNameResponse, error) { - var reqBody, resBody QueryProviderNameBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryResourceConfigOptionBody struct { - Req *types.QueryResourceConfigOption `xml:"urn:vim25 QueryResourceConfigOption,omitempty"` - Res *types.QueryResourceConfigOptionResponse `xml:"urn:vim25 QueryResourceConfigOptionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryResourceConfigOptionBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryResourceConfigOption(ctx context.Context, r soap.RoundTripper, req *types.QueryResourceConfigOption) (*types.QueryResourceConfigOptionResponse, error) { - var reqBody, resBody QueryResourceConfigOptionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryServiceListBody struct { - Req *types.QueryServiceList `xml:"urn:vim25 QueryServiceList,omitempty"` - Res *types.QueryServiceListResponse `xml:"urn:vim25 QueryServiceListResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryServiceListBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryServiceList(ctx context.Context, r soap.RoundTripper, req *types.QueryServiceList) (*types.QueryServiceListResponse, error) { - var reqBody, resBody QueryServiceListBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryStorageArrayTypePolicyOptionsBody struct { - Req *types.QueryStorageArrayTypePolicyOptions `xml:"urn:vim25 QueryStorageArrayTypePolicyOptions,omitempty"` - Res *types.QueryStorageArrayTypePolicyOptionsResponse `xml:"urn:vim25 QueryStorageArrayTypePolicyOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryStorageArrayTypePolicyOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryStorageArrayTypePolicyOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryStorageArrayTypePolicyOptions) (*types.QueryStorageArrayTypePolicyOptionsResponse, error) { - var reqBody, resBody QueryStorageArrayTypePolicyOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QuerySupportedFeaturesBody struct { - Req *types.QuerySupportedFeatures `xml:"urn:vim25 QuerySupportedFeatures,omitempty"` - Res *types.QuerySupportedFeaturesResponse `xml:"urn:vim25 QuerySupportedFeaturesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QuerySupportedFeaturesBody) Fault() *soap.Fault { return b.Fault_ } - -func QuerySupportedFeatures(ctx context.Context, r soap.RoundTripper, req *types.QuerySupportedFeatures) (*types.QuerySupportedFeaturesResponse, error) { - var reqBody, resBody QuerySupportedFeaturesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QuerySyncingVsanObjectsBody struct { - Req *types.QuerySyncingVsanObjects `xml:"urn:vim25 QuerySyncingVsanObjects,omitempty"` - Res *types.QuerySyncingVsanObjectsResponse `xml:"urn:vim25 QuerySyncingVsanObjectsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QuerySyncingVsanObjectsBody) Fault() *soap.Fault { return b.Fault_ } - -func QuerySyncingVsanObjects(ctx context.Context, r soap.RoundTripper, req *types.QuerySyncingVsanObjects) (*types.QuerySyncingVsanObjectsResponse, error) { - var reqBody, resBody QuerySyncingVsanObjectsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QuerySystemUsersBody struct { - Req *types.QuerySystemUsers `xml:"urn:vim25 QuerySystemUsers,omitempty"` - Res *types.QuerySystemUsersResponse `xml:"urn:vim25 QuerySystemUsersResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QuerySystemUsersBody) Fault() *soap.Fault { return b.Fault_ } - -func QuerySystemUsers(ctx context.Context, r soap.RoundTripper, req *types.QuerySystemUsers) (*types.QuerySystemUsersResponse, error) { - var reqBody, resBody QuerySystemUsersBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryTargetCapabilitiesBody struct { - Req *types.QueryTargetCapabilities `xml:"urn:vim25 QueryTargetCapabilities,omitempty"` - Res *types.QueryTargetCapabilitiesResponse `xml:"urn:vim25 QueryTargetCapabilitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryTargetCapabilitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryTargetCapabilities(ctx context.Context, r soap.RoundTripper, req *types.QueryTargetCapabilities) (*types.QueryTargetCapabilitiesResponse, error) { - var reqBody, resBody QueryTargetCapabilitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryTpmAttestationReportBody struct { - Req *types.QueryTpmAttestationReport `xml:"urn:vim25 QueryTpmAttestationReport,omitempty"` - Res *types.QueryTpmAttestationReportResponse `xml:"urn:vim25 QueryTpmAttestationReportResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryTpmAttestationReportBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryTpmAttestationReport(ctx context.Context, r soap.RoundTripper, req *types.QueryTpmAttestationReport) (*types.QueryTpmAttestationReportResponse, error) { - var reqBody, resBody QueryTpmAttestationReportBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryUnmonitoredHostsBody struct { - Req *types.QueryUnmonitoredHosts `xml:"urn:vim25 QueryUnmonitoredHosts,omitempty"` - Res *types.QueryUnmonitoredHostsResponse `xml:"urn:vim25 QueryUnmonitoredHostsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryUnmonitoredHostsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryUnmonitoredHosts(ctx context.Context, r soap.RoundTripper, req *types.QueryUnmonitoredHosts) (*types.QueryUnmonitoredHostsResponse, error) { - var reqBody, resBody QueryUnmonitoredHostsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryUnownedFilesBody struct { - Req *types.QueryUnownedFiles `xml:"urn:vim25 QueryUnownedFiles,omitempty"` - Res *types.QueryUnownedFilesResponse `xml:"urn:vim25 QueryUnownedFilesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryUnownedFilesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryUnownedFiles(ctx context.Context, r soap.RoundTripper, req *types.QueryUnownedFiles) (*types.QueryUnownedFilesResponse, error) { - var reqBody, resBody QueryUnownedFilesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryUnresolvedVmfsVolumeBody struct { - Req *types.QueryUnresolvedVmfsVolume `xml:"urn:vim25 QueryUnresolvedVmfsVolume,omitempty"` - Res *types.QueryUnresolvedVmfsVolumeResponse `xml:"urn:vim25 QueryUnresolvedVmfsVolumeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryUnresolvedVmfsVolumeBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryUnresolvedVmfsVolume(ctx context.Context, r soap.RoundTripper, req *types.QueryUnresolvedVmfsVolume) (*types.QueryUnresolvedVmfsVolumeResponse, error) { - var reqBody, resBody QueryUnresolvedVmfsVolumeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryUnresolvedVmfsVolumesBody struct { - Req *types.QueryUnresolvedVmfsVolumes `xml:"urn:vim25 QueryUnresolvedVmfsVolumes,omitempty"` - Res *types.QueryUnresolvedVmfsVolumesResponse `xml:"urn:vim25 QueryUnresolvedVmfsVolumesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryUnresolvedVmfsVolumesBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryUnresolvedVmfsVolumes(ctx context.Context, r soap.RoundTripper, req *types.QueryUnresolvedVmfsVolumes) (*types.QueryUnresolvedVmfsVolumesResponse, error) { - var reqBody, resBody QueryUnresolvedVmfsVolumesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryUsedVlanIdInDvsBody struct { - Req *types.QueryUsedVlanIdInDvs `xml:"urn:vim25 QueryUsedVlanIdInDvs,omitempty"` - Res *types.QueryUsedVlanIdInDvsResponse `xml:"urn:vim25 QueryUsedVlanIdInDvsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryUsedVlanIdInDvsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryUsedVlanIdInDvs(ctx context.Context, r soap.RoundTripper, req *types.QueryUsedVlanIdInDvs) (*types.QueryUsedVlanIdInDvsResponse, error) { - var reqBody, resBody QueryUsedVlanIdInDvsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVMotionCompatibilityBody struct { - Req *types.QueryVMotionCompatibility `xml:"urn:vim25 QueryVMotionCompatibility,omitempty"` - Res *types.QueryVMotionCompatibilityResponse `xml:"urn:vim25 QueryVMotionCompatibilityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVMotionCompatibilityBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVMotionCompatibility(ctx context.Context, r soap.RoundTripper, req *types.QueryVMotionCompatibility) (*types.QueryVMotionCompatibilityResponse, error) { - var reqBody, resBody QueryVMotionCompatibilityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVMotionCompatibilityEx_TaskBody struct { - Req *types.QueryVMotionCompatibilityEx_Task `xml:"urn:vim25 QueryVMotionCompatibilityEx_Task,omitempty"` - Res *types.QueryVMotionCompatibilityEx_TaskResponse `xml:"urn:vim25 QueryVMotionCompatibilityEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVMotionCompatibilityEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVMotionCompatibilityEx_Task(ctx context.Context, r soap.RoundTripper, req *types.QueryVMotionCompatibilityEx_Task) (*types.QueryVMotionCompatibilityEx_TaskResponse, error) { - var reqBody, resBody QueryVMotionCompatibilityEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVirtualDiskFragmentationBody struct { - Req *types.QueryVirtualDiskFragmentation `xml:"urn:vim25 QueryVirtualDiskFragmentation,omitempty"` - Res *types.QueryVirtualDiskFragmentationResponse `xml:"urn:vim25 QueryVirtualDiskFragmentationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVirtualDiskFragmentationBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVirtualDiskFragmentation(ctx context.Context, r soap.RoundTripper, req *types.QueryVirtualDiskFragmentation) (*types.QueryVirtualDiskFragmentationResponse, error) { - var reqBody, resBody QueryVirtualDiskFragmentationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVirtualDiskGeometryBody struct { - Req *types.QueryVirtualDiskGeometry `xml:"urn:vim25 QueryVirtualDiskGeometry,omitempty"` - Res *types.QueryVirtualDiskGeometryResponse `xml:"urn:vim25 QueryVirtualDiskGeometryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVirtualDiskGeometryBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVirtualDiskGeometry(ctx context.Context, r soap.RoundTripper, req *types.QueryVirtualDiskGeometry) (*types.QueryVirtualDiskGeometryResponse, error) { - var reqBody, resBody QueryVirtualDiskGeometryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVirtualDiskUuidBody struct { - Req *types.QueryVirtualDiskUuid `xml:"urn:vim25 QueryVirtualDiskUuid,omitempty"` - Res *types.QueryVirtualDiskUuidResponse `xml:"urn:vim25 QueryVirtualDiskUuidResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVirtualDiskUuidBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVirtualDiskUuid(ctx context.Context, r soap.RoundTripper, req *types.QueryVirtualDiskUuid) (*types.QueryVirtualDiskUuidResponse, error) { - var reqBody, resBody QueryVirtualDiskUuidBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVmfsConfigOptionBody struct { - Req *types.QueryVmfsConfigOption `xml:"urn:vim25 QueryVmfsConfigOption,omitempty"` - Res *types.QueryVmfsConfigOptionResponse `xml:"urn:vim25 QueryVmfsConfigOptionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVmfsConfigOptionBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVmfsConfigOption(ctx context.Context, r soap.RoundTripper, req *types.QueryVmfsConfigOption) (*types.QueryVmfsConfigOptionResponse, error) { - var reqBody, resBody QueryVmfsConfigOptionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVmfsDatastoreCreateOptionsBody struct { - Req *types.QueryVmfsDatastoreCreateOptions `xml:"urn:vim25 QueryVmfsDatastoreCreateOptions,omitempty"` - Res *types.QueryVmfsDatastoreCreateOptionsResponse `xml:"urn:vim25 QueryVmfsDatastoreCreateOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVmfsDatastoreCreateOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVmfsDatastoreCreateOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryVmfsDatastoreCreateOptions) (*types.QueryVmfsDatastoreCreateOptionsResponse, error) { - var reqBody, resBody QueryVmfsDatastoreCreateOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVmfsDatastoreExpandOptionsBody struct { - Req *types.QueryVmfsDatastoreExpandOptions `xml:"urn:vim25 QueryVmfsDatastoreExpandOptions,omitempty"` - Res *types.QueryVmfsDatastoreExpandOptionsResponse `xml:"urn:vim25 QueryVmfsDatastoreExpandOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVmfsDatastoreExpandOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVmfsDatastoreExpandOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryVmfsDatastoreExpandOptions) (*types.QueryVmfsDatastoreExpandOptionsResponse, error) { - var reqBody, resBody QueryVmfsDatastoreExpandOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVmfsDatastoreExtendOptionsBody struct { - Req *types.QueryVmfsDatastoreExtendOptions `xml:"urn:vim25 QueryVmfsDatastoreExtendOptions,omitempty"` - Res *types.QueryVmfsDatastoreExtendOptionsResponse `xml:"urn:vim25 QueryVmfsDatastoreExtendOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVmfsDatastoreExtendOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVmfsDatastoreExtendOptions(ctx context.Context, r soap.RoundTripper, req *types.QueryVmfsDatastoreExtendOptions) (*types.QueryVmfsDatastoreExtendOptionsResponse, error) { - var reqBody, resBody QueryVmfsDatastoreExtendOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVnicStatusBody struct { - Req *types.QueryVnicStatus `xml:"urn:vim25 QueryVnicStatus,omitempty"` - Res *types.QueryVnicStatusResponse `xml:"urn:vim25 QueryVnicStatusResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVnicStatusBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVnicStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryVnicStatus) (*types.QueryVnicStatusResponse, error) { - var reqBody, resBody QueryVnicStatusBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVsanObjectUuidsByFilterBody struct { - Req *types.QueryVsanObjectUuidsByFilter `xml:"urn:vim25 QueryVsanObjectUuidsByFilter,omitempty"` - Res *types.QueryVsanObjectUuidsByFilterResponse `xml:"urn:vim25 QueryVsanObjectUuidsByFilterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVsanObjectUuidsByFilterBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVsanObjectUuidsByFilter(ctx context.Context, r soap.RoundTripper, req *types.QueryVsanObjectUuidsByFilter) (*types.QueryVsanObjectUuidsByFilterResponse, error) { - var reqBody, resBody QueryVsanObjectUuidsByFilterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVsanObjectsBody struct { - Req *types.QueryVsanObjects `xml:"urn:vim25 QueryVsanObjects,omitempty"` - Res *types.QueryVsanObjectsResponse `xml:"urn:vim25 QueryVsanObjectsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVsanObjectsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVsanObjects(ctx context.Context, r soap.RoundTripper, req *types.QueryVsanObjects) (*types.QueryVsanObjectsResponse, error) { - var reqBody, resBody QueryVsanObjectsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVsanStatisticsBody struct { - Req *types.QueryVsanStatistics `xml:"urn:vim25 QueryVsanStatistics,omitempty"` - Res *types.QueryVsanStatisticsResponse `xml:"urn:vim25 QueryVsanStatisticsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVsanStatisticsBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVsanStatistics(ctx context.Context, r soap.RoundTripper, req *types.QueryVsanStatistics) (*types.QueryVsanStatisticsResponse, error) { - var reqBody, resBody QueryVsanStatisticsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type QueryVsanUpgradeStatusBody struct { - Req *types.QueryVsanUpgradeStatus `xml:"urn:vim25 QueryVsanUpgradeStatus,omitempty"` - Res *types.QueryVsanUpgradeStatusResponse `xml:"urn:vim25 QueryVsanUpgradeStatusResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *QueryVsanUpgradeStatusBody) Fault() *soap.Fault { return b.Fault_ } - -func QueryVsanUpgradeStatus(ctx context.Context, r soap.RoundTripper, req *types.QueryVsanUpgradeStatus) (*types.QueryVsanUpgradeStatusResponse, error) { - var reqBody, resBody QueryVsanUpgradeStatusBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReadEnvironmentVariableInGuestBody struct { - Req *types.ReadEnvironmentVariableInGuest `xml:"urn:vim25 ReadEnvironmentVariableInGuest,omitempty"` - Res *types.ReadEnvironmentVariableInGuestResponse `xml:"urn:vim25 ReadEnvironmentVariableInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReadEnvironmentVariableInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ReadEnvironmentVariableInGuest(ctx context.Context, r soap.RoundTripper, req *types.ReadEnvironmentVariableInGuest) (*types.ReadEnvironmentVariableInGuestResponse, error) { - var reqBody, resBody ReadEnvironmentVariableInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReadNextEventsBody struct { - Req *types.ReadNextEvents `xml:"urn:vim25 ReadNextEvents,omitempty"` - Res *types.ReadNextEventsResponse `xml:"urn:vim25 ReadNextEventsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReadNextEventsBody) Fault() *soap.Fault { return b.Fault_ } - -func ReadNextEvents(ctx context.Context, r soap.RoundTripper, req *types.ReadNextEvents) (*types.ReadNextEventsResponse, error) { - var reqBody, resBody ReadNextEventsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReadNextTasksBody struct { - Req *types.ReadNextTasks `xml:"urn:vim25 ReadNextTasks,omitempty"` - Res *types.ReadNextTasksResponse `xml:"urn:vim25 ReadNextTasksResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReadNextTasksBody) Fault() *soap.Fault { return b.Fault_ } - -func ReadNextTasks(ctx context.Context, r soap.RoundTripper, req *types.ReadNextTasks) (*types.ReadNextTasksResponse, error) { - var reqBody, resBody ReadNextTasksBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReadPreviousEventsBody struct { - Req *types.ReadPreviousEvents `xml:"urn:vim25 ReadPreviousEvents,omitempty"` - Res *types.ReadPreviousEventsResponse `xml:"urn:vim25 ReadPreviousEventsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReadPreviousEventsBody) Fault() *soap.Fault { return b.Fault_ } - -func ReadPreviousEvents(ctx context.Context, r soap.RoundTripper, req *types.ReadPreviousEvents) (*types.ReadPreviousEventsResponse, error) { - var reqBody, resBody ReadPreviousEventsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReadPreviousTasksBody struct { - Req *types.ReadPreviousTasks `xml:"urn:vim25 ReadPreviousTasks,omitempty"` - Res *types.ReadPreviousTasksResponse `xml:"urn:vim25 ReadPreviousTasksResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReadPreviousTasksBody) Fault() *soap.Fault { return b.Fault_ } - -func ReadPreviousTasks(ctx context.Context, r soap.RoundTripper, req *types.ReadPreviousTasks) (*types.ReadPreviousTasksResponse, error) { - var reqBody, resBody ReadPreviousTasksBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RebootGuestBody struct { - Req *types.RebootGuest `xml:"urn:vim25 RebootGuest,omitempty"` - Res *types.RebootGuestResponse `xml:"urn:vim25 RebootGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RebootGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func RebootGuest(ctx context.Context, r soap.RoundTripper, req *types.RebootGuest) (*types.RebootGuestResponse, error) { - var reqBody, resBody RebootGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RebootHost_TaskBody struct { - Req *types.RebootHost_Task `xml:"urn:vim25 RebootHost_Task,omitempty"` - Res *types.RebootHost_TaskResponse `xml:"urn:vim25 RebootHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RebootHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RebootHost_Task(ctx context.Context, r soap.RoundTripper, req *types.RebootHost_Task) (*types.RebootHost_TaskResponse, error) { - var reqBody, resBody RebootHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RecommendDatastoresBody struct { - Req *types.RecommendDatastores `xml:"urn:vim25 RecommendDatastores,omitempty"` - Res *types.RecommendDatastoresResponse `xml:"urn:vim25 RecommendDatastoresResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RecommendDatastoresBody) Fault() *soap.Fault { return b.Fault_ } - -func RecommendDatastores(ctx context.Context, r soap.RoundTripper, req *types.RecommendDatastores) (*types.RecommendDatastoresResponse, error) { - var reqBody, resBody RecommendDatastoresBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RecommendHostsForVmBody struct { - Req *types.RecommendHostsForVm `xml:"urn:vim25 RecommendHostsForVm,omitempty"` - Res *types.RecommendHostsForVmResponse `xml:"urn:vim25 RecommendHostsForVmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RecommendHostsForVmBody) Fault() *soap.Fault { return b.Fault_ } - -func RecommendHostsForVm(ctx context.Context, r soap.RoundTripper, req *types.RecommendHostsForVm) (*types.RecommendHostsForVmResponse, error) { - var reqBody, resBody RecommendHostsForVmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RecommissionVsanNode_TaskBody struct { - Req *types.RecommissionVsanNode_Task `xml:"urn:vim25 RecommissionVsanNode_Task,omitempty"` - Res *types.RecommissionVsanNode_TaskResponse `xml:"urn:vim25 RecommissionVsanNode_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RecommissionVsanNode_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RecommissionVsanNode_Task(ctx context.Context, r soap.RoundTripper, req *types.RecommissionVsanNode_Task) (*types.RecommissionVsanNode_TaskResponse, error) { - var reqBody, resBody RecommissionVsanNode_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconcileDatastoreInventory_TaskBody struct { - Req *types.ReconcileDatastoreInventory_Task `xml:"urn:vim25 ReconcileDatastoreInventory_Task,omitempty"` - Res *types.ReconcileDatastoreInventory_TaskResponse `xml:"urn:vim25 ReconcileDatastoreInventory_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconcileDatastoreInventory_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconcileDatastoreInventory_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconcileDatastoreInventory_Task) (*types.ReconcileDatastoreInventory_TaskResponse, error) { - var reqBody, resBody ReconcileDatastoreInventory_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigVM_TaskBody struct { - Req *types.ReconfigVM_Task `xml:"urn:vim25 ReconfigVM_Task,omitempty"` - Res *types.ReconfigVM_TaskResponse `xml:"urn:vim25 ReconfigVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigVM_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigVM_Task) (*types.ReconfigVM_TaskResponse, error) { - var reqBody, resBody ReconfigVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigurationSatisfiableBody struct { - Req *types.ReconfigurationSatisfiable `xml:"urn:vim25 ReconfigurationSatisfiable,omitempty"` - Res *types.ReconfigurationSatisfiableResponse `xml:"urn:vim25 ReconfigurationSatisfiableResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigurationSatisfiableBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigurationSatisfiable(ctx context.Context, r soap.RoundTripper, req *types.ReconfigurationSatisfiable) (*types.ReconfigurationSatisfiableResponse, error) { - var reqBody, resBody ReconfigurationSatisfiableBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureAlarmBody struct { - Req *types.ReconfigureAlarm `xml:"urn:vim25 ReconfigureAlarm,omitempty"` - Res *types.ReconfigureAlarmResponse `xml:"urn:vim25 ReconfigureAlarmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureAlarmBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureAlarm(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureAlarm) (*types.ReconfigureAlarmResponse, error) { - var reqBody, resBody ReconfigureAlarmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureAutostartBody struct { - Req *types.ReconfigureAutostart `xml:"urn:vim25 ReconfigureAutostart,omitempty"` - Res *types.ReconfigureAutostartResponse `xml:"urn:vim25 ReconfigureAutostartResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureAutostartBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureAutostart(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureAutostart) (*types.ReconfigureAutostartResponse, error) { - var reqBody, resBody ReconfigureAutostartBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureCluster_TaskBody struct { - Req *types.ReconfigureCluster_Task `xml:"urn:vim25 ReconfigureCluster_Task,omitempty"` - Res *types.ReconfigureCluster_TaskResponse `xml:"urn:vim25 ReconfigureCluster_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureCluster_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureCluster_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureCluster_Task) (*types.ReconfigureCluster_TaskResponse, error) { - var reqBody, resBody ReconfigureCluster_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureComputeResource_TaskBody struct { - Req *types.ReconfigureComputeResource_Task `xml:"urn:vim25 ReconfigureComputeResource_Task,omitempty"` - Res *types.ReconfigureComputeResource_TaskResponse `xml:"urn:vim25 ReconfigureComputeResource_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureComputeResource_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureComputeResource_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureComputeResource_Task) (*types.ReconfigureComputeResource_TaskResponse, error) { - var reqBody, resBody ReconfigureComputeResource_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureDVPort_TaskBody struct { - Req *types.ReconfigureDVPort_Task `xml:"urn:vim25 ReconfigureDVPort_Task,omitempty"` - Res *types.ReconfigureDVPort_TaskResponse `xml:"urn:vim25 ReconfigureDVPort_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureDVPort_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureDVPort_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureDVPort_Task) (*types.ReconfigureDVPort_TaskResponse, error) { - var reqBody, resBody ReconfigureDVPort_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureDVPortgroup_TaskBody struct { - Req *types.ReconfigureDVPortgroup_Task `xml:"urn:vim25 ReconfigureDVPortgroup_Task,omitempty"` - Res *types.ReconfigureDVPortgroup_TaskResponse `xml:"urn:vim25 ReconfigureDVPortgroup_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureDVPortgroup_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureDVPortgroup_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureDVPortgroup_Task) (*types.ReconfigureDVPortgroup_TaskResponse, error) { - var reqBody, resBody ReconfigureDVPortgroup_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureDatacenter_TaskBody struct { - Req *types.ReconfigureDatacenter_Task `xml:"urn:vim25 ReconfigureDatacenter_Task,omitempty"` - Res *types.ReconfigureDatacenter_TaskResponse `xml:"urn:vim25 ReconfigureDatacenter_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureDatacenter_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureDatacenter_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureDatacenter_Task) (*types.ReconfigureDatacenter_TaskResponse, error) { - var reqBody, resBody ReconfigureDatacenter_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureDomObjectBody struct { - Req *types.ReconfigureDomObject `xml:"urn:vim25 ReconfigureDomObject,omitempty"` - Res *types.ReconfigureDomObjectResponse `xml:"urn:vim25 ReconfigureDomObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureDomObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureDomObject(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureDomObject) (*types.ReconfigureDomObjectResponse, error) { - var reqBody, resBody ReconfigureDomObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureDvs_TaskBody struct { - Req *types.ReconfigureDvs_Task `xml:"urn:vim25 ReconfigureDvs_Task,omitempty"` - Res *types.ReconfigureDvs_TaskResponse `xml:"urn:vim25 ReconfigureDvs_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureDvs_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureDvs_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureDvs_Task) (*types.ReconfigureDvs_TaskResponse, error) { - var reqBody, resBody ReconfigureDvs_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureHostForDAS_TaskBody struct { - Req *types.ReconfigureHostForDAS_Task `xml:"urn:vim25 ReconfigureHostForDAS_Task,omitempty"` - Res *types.ReconfigureHostForDAS_TaskResponse `xml:"urn:vim25 ReconfigureHostForDAS_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureHostForDAS_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureHostForDAS_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureHostForDAS_Task) (*types.ReconfigureHostForDAS_TaskResponse, error) { - var reqBody, resBody ReconfigureHostForDAS_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureScheduledTaskBody struct { - Req *types.ReconfigureScheduledTask `xml:"urn:vim25 ReconfigureScheduledTask,omitempty"` - Res *types.ReconfigureScheduledTaskResponse `xml:"urn:vim25 ReconfigureScheduledTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureScheduledTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureScheduledTask) (*types.ReconfigureScheduledTaskResponse, error) { - var reqBody, resBody ReconfigureScheduledTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureServiceConsoleReservationBody struct { - Req *types.ReconfigureServiceConsoleReservation `xml:"urn:vim25 ReconfigureServiceConsoleReservation,omitempty"` - Res *types.ReconfigureServiceConsoleReservationResponse `xml:"urn:vim25 ReconfigureServiceConsoleReservationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureServiceConsoleReservationBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureServiceConsoleReservation(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureServiceConsoleReservation) (*types.ReconfigureServiceConsoleReservationResponse, error) { - var reqBody, resBody ReconfigureServiceConsoleReservationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureSnmpAgentBody struct { - Req *types.ReconfigureSnmpAgent `xml:"urn:vim25 ReconfigureSnmpAgent,omitempty"` - Res *types.ReconfigureSnmpAgentResponse `xml:"urn:vim25 ReconfigureSnmpAgentResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureSnmpAgentBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureSnmpAgent(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureSnmpAgent) (*types.ReconfigureSnmpAgentResponse, error) { - var reqBody, resBody ReconfigureSnmpAgentBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconfigureVirtualMachineReservationBody struct { - Req *types.ReconfigureVirtualMachineReservation `xml:"urn:vim25 ReconfigureVirtualMachineReservation,omitempty"` - Res *types.ReconfigureVirtualMachineReservationResponse `xml:"urn:vim25 ReconfigureVirtualMachineReservationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconfigureVirtualMachineReservationBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconfigureVirtualMachineReservation(ctx context.Context, r soap.RoundTripper, req *types.ReconfigureVirtualMachineReservation) (*types.ReconfigureVirtualMachineReservationResponse, error) { - var reqBody, resBody ReconfigureVirtualMachineReservationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReconnectHost_TaskBody struct { - Req *types.ReconnectHost_Task `xml:"urn:vim25 ReconnectHost_Task,omitempty"` - Res *types.ReconnectHost_TaskResponse `xml:"urn:vim25 ReconnectHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReconnectHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ReconnectHost_Task(ctx context.Context, r soap.RoundTripper, req *types.ReconnectHost_Task) (*types.ReconnectHost_TaskResponse, error) { - var reqBody, resBody ReconnectHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RectifyDvsHost_TaskBody struct { - Req *types.RectifyDvsHost_Task `xml:"urn:vim25 RectifyDvsHost_Task,omitempty"` - Res *types.RectifyDvsHost_TaskResponse `xml:"urn:vim25 RectifyDvsHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RectifyDvsHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RectifyDvsHost_Task(ctx context.Context, r soap.RoundTripper, req *types.RectifyDvsHost_Task) (*types.RectifyDvsHost_TaskResponse, error) { - var reqBody, resBody RectifyDvsHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RectifyDvsOnHost_TaskBody struct { - Req *types.RectifyDvsOnHost_Task `xml:"urn:vim25 RectifyDvsOnHost_Task,omitempty"` - Res *types.RectifyDvsOnHost_TaskResponse `xml:"urn:vim25 RectifyDvsOnHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RectifyDvsOnHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RectifyDvsOnHost_Task(ctx context.Context, r soap.RoundTripper, req *types.RectifyDvsOnHost_Task) (*types.RectifyDvsOnHost_TaskResponse, error) { - var reqBody, resBody RectifyDvsOnHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshBody struct { - Req *types.Refresh `xml:"urn:vim25 Refresh,omitempty"` - Res *types.RefreshResponse `xml:"urn:vim25 RefreshResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshBody) Fault() *soap.Fault { return b.Fault_ } - -func Refresh(ctx context.Context, r soap.RoundTripper, req *types.Refresh) (*types.RefreshResponse, error) { - var reqBody, resBody RefreshBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshDVPortStateBody struct { - Req *types.RefreshDVPortState `xml:"urn:vim25 RefreshDVPortState,omitempty"` - Res *types.RefreshDVPortStateResponse `xml:"urn:vim25 RefreshDVPortStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshDVPortStateBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshDVPortState(ctx context.Context, r soap.RoundTripper, req *types.RefreshDVPortState) (*types.RefreshDVPortStateResponse, error) { - var reqBody, resBody RefreshDVPortStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshDatastoreBody struct { - Req *types.RefreshDatastore `xml:"urn:vim25 RefreshDatastore,omitempty"` - Res *types.RefreshDatastoreResponse `xml:"urn:vim25 RefreshDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshDatastore(ctx context.Context, r soap.RoundTripper, req *types.RefreshDatastore) (*types.RefreshDatastoreResponse, error) { - var reqBody, resBody RefreshDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshDatastoreStorageInfoBody struct { - Req *types.RefreshDatastoreStorageInfo `xml:"urn:vim25 RefreshDatastoreStorageInfo,omitempty"` - Res *types.RefreshDatastoreStorageInfoResponse `xml:"urn:vim25 RefreshDatastoreStorageInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshDatastoreStorageInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshDatastoreStorageInfo(ctx context.Context, r soap.RoundTripper, req *types.RefreshDatastoreStorageInfo) (*types.RefreshDatastoreStorageInfoResponse, error) { - var reqBody, resBody RefreshDatastoreStorageInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshDateTimeSystemBody struct { - Req *types.RefreshDateTimeSystem `xml:"urn:vim25 RefreshDateTimeSystem,omitempty"` - Res *types.RefreshDateTimeSystemResponse `xml:"urn:vim25 RefreshDateTimeSystemResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshDateTimeSystemBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshDateTimeSystem(ctx context.Context, r soap.RoundTripper, req *types.RefreshDateTimeSystem) (*types.RefreshDateTimeSystemResponse, error) { - var reqBody, resBody RefreshDateTimeSystemBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshFirewallBody struct { - Req *types.RefreshFirewall `xml:"urn:vim25 RefreshFirewall,omitempty"` - Res *types.RefreshFirewallResponse `xml:"urn:vim25 RefreshFirewallResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshFirewallBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshFirewall(ctx context.Context, r soap.RoundTripper, req *types.RefreshFirewall) (*types.RefreshFirewallResponse, error) { - var reqBody, resBody RefreshFirewallBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshGraphicsManagerBody struct { - Req *types.RefreshGraphicsManager `xml:"urn:vim25 RefreshGraphicsManager,omitempty"` - Res *types.RefreshGraphicsManagerResponse `xml:"urn:vim25 RefreshGraphicsManagerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshGraphicsManagerBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshGraphicsManager(ctx context.Context, r soap.RoundTripper, req *types.RefreshGraphicsManager) (*types.RefreshGraphicsManagerResponse, error) { - var reqBody, resBody RefreshGraphicsManagerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshHealthStatusSystemBody struct { - Req *types.RefreshHealthStatusSystem `xml:"urn:vim25 RefreshHealthStatusSystem,omitempty"` - Res *types.RefreshHealthStatusSystemResponse `xml:"urn:vim25 RefreshHealthStatusSystemResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshHealthStatusSystemBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshHealthStatusSystem(ctx context.Context, r soap.RoundTripper, req *types.RefreshHealthStatusSystem) (*types.RefreshHealthStatusSystemResponse, error) { - var reqBody, resBody RefreshHealthStatusSystemBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshNetworkSystemBody struct { - Req *types.RefreshNetworkSystem `xml:"urn:vim25 RefreshNetworkSystem,omitempty"` - Res *types.RefreshNetworkSystemResponse `xml:"urn:vim25 RefreshNetworkSystemResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshNetworkSystemBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshNetworkSystem(ctx context.Context, r soap.RoundTripper, req *types.RefreshNetworkSystem) (*types.RefreshNetworkSystemResponse, error) { - var reqBody, resBody RefreshNetworkSystemBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshRecommendationBody struct { - Req *types.RefreshRecommendation `xml:"urn:vim25 RefreshRecommendation,omitempty"` - Res *types.RefreshRecommendationResponse `xml:"urn:vim25 RefreshRecommendationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshRecommendationBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshRecommendation(ctx context.Context, r soap.RoundTripper, req *types.RefreshRecommendation) (*types.RefreshRecommendationResponse, error) { - var reqBody, resBody RefreshRecommendationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshRuntimeBody struct { - Req *types.RefreshRuntime `xml:"urn:vim25 RefreshRuntime,omitempty"` - Res *types.RefreshRuntimeResponse `xml:"urn:vim25 RefreshRuntimeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshRuntimeBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshRuntime(ctx context.Context, r soap.RoundTripper, req *types.RefreshRuntime) (*types.RefreshRuntimeResponse, error) { - var reqBody, resBody RefreshRuntimeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshServicesBody struct { - Req *types.RefreshServices `xml:"urn:vim25 RefreshServices,omitempty"` - Res *types.RefreshServicesResponse `xml:"urn:vim25 RefreshServicesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshServicesBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshServices(ctx context.Context, r soap.RoundTripper, req *types.RefreshServices) (*types.RefreshServicesResponse, error) { - var reqBody, resBody RefreshServicesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshStorageDrsRecommendationBody struct { - Req *types.RefreshStorageDrsRecommendation `xml:"urn:vim25 RefreshStorageDrsRecommendation,omitempty"` - Res *types.RefreshStorageDrsRecommendationResponse `xml:"urn:vim25 RefreshStorageDrsRecommendationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshStorageDrsRecommendationBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshStorageDrsRecommendation(ctx context.Context, r soap.RoundTripper, req *types.RefreshStorageDrsRecommendation) (*types.RefreshStorageDrsRecommendationResponse, error) { - var reqBody, resBody RefreshStorageDrsRecommendationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshStorageInfoBody struct { - Req *types.RefreshStorageInfo `xml:"urn:vim25 RefreshStorageInfo,omitempty"` - Res *types.RefreshStorageInfoResponse `xml:"urn:vim25 RefreshStorageInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshStorageInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshStorageInfo(ctx context.Context, r soap.RoundTripper, req *types.RefreshStorageInfo) (*types.RefreshStorageInfoResponse, error) { - var reqBody, resBody RefreshStorageInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RefreshStorageSystemBody struct { - Req *types.RefreshStorageSystem `xml:"urn:vim25 RefreshStorageSystem,omitempty"` - Res *types.RefreshStorageSystemResponse `xml:"urn:vim25 RefreshStorageSystemResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RefreshStorageSystemBody) Fault() *soap.Fault { return b.Fault_ } - -func RefreshStorageSystem(ctx context.Context, r soap.RoundTripper, req *types.RefreshStorageSystem) (*types.RefreshStorageSystemResponse, error) { - var reqBody, resBody RefreshStorageSystemBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RegisterChildVM_TaskBody struct { - Req *types.RegisterChildVM_Task `xml:"urn:vim25 RegisterChildVM_Task,omitempty"` - Res *types.RegisterChildVM_TaskResponse `xml:"urn:vim25 RegisterChildVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RegisterChildVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RegisterChildVM_Task(ctx context.Context, r soap.RoundTripper, req *types.RegisterChildVM_Task) (*types.RegisterChildVM_TaskResponse, error) { - var reqBody, resBody RegisterChildVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RegisterDiskBody struct { - Req *types.RegisterDisk `xml:"urn:vim25 RegisterDisk,omitempty"` - Res *types.RegisterDiskResponse `xml:"urn:vim25 RegisterDiskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RegisterDiskBody) Fault() *soap.Fault { return b.Fault_ } - -func RegisterDisk(ctx context.Context, r soap.RoundTripper, req *types.RegisterDisk) (*types.RegisterDiskResponse, error) { - var reqBody, resBody RegisterDiskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RegisterExtensionBody struct { - Req *types.RegisterExtension `xml:"urn:vim25 RegisterExtension,omitempty"` - Res *types.RegisterExtensionResponse `xml:"urn:vim25 RegisterExtensionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RegisterExtensionBody) Fault() *soap.Fault { return b.Fault_ } - -func RegisterExtension(ctx context.Context, r soap.RoundTripper, req *types.RegisterExtension) (*types.RegisterExtensionResponse, error) { - var reqBody, resBody RegisterExtensionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RegisterHealthUpdateProviderBody struct { - Req *types.RegisterHealthUpdateProvider `xml:"urn:vim25 RegisterHealthUpdateProvider,omitempty"` - Res *types.RegisterHealthUpdateProviderResponse `xml:"urn:vim25 RegisterHealthUpdateProviderResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RegisterHealthUpdateProviderBody) Fault() *soap.Fault { return b.Fault_ } - -func RegisterHealthUpdateProvider(ctx context.Context, r soap.RoundTripper, req *types.RegisterHealthUpdateProvider) (*types.RegisterHealthUpdateProviderResponse, error) { - var reqBody, resBody RegisterHealthUpdateProviderBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RegisterKmipServerBody struct { - Req *types.RegisterKmipServer `xml:"urn:vim25 RegisterKmipServer,omitempty"` - Res *types.RegisterKmipServerResponse `xml:"urn:vim25 RegisterKmipServerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RegisterKmipServerBody) Fault() *soap.Fault { return b.Fault_ } - -func RegisterKmipServer(ctx context.Context, r soap.RoundTripper, req *types.RegisterKmipServer) (*types.RegisterKmipServerResponse, error) { - var reqBody, resBody RegisterKmipServerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RegisterVM_TaskBody struct { - Req *types.RegisterVM_Task `xml:"urn:vim25 RegisterVM_Task,omitempty"` - Res *types.RegisterVM_TaskResponse `xml:"urn:vim25 RegisterVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RegisterVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RegisterVM_Task(ctx context.Context, r soap.RoundTripper, req *types.RegisterVM_Task) (*types.RegisterVM_TaskResponse, error) { - var reqBody, resBody RegisterVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReleaseCredentialsInGuestBody struct { - Req *types.ReleaseCredentialsInGuest `xml:"urn:vim25 ReleaseCredentialsInGuest,omitempty"` - Res *types.ReleaseCredentialsInGuestResponse `xml:"urn:vim25 ReleaseCredentialsInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReleaseCredentialsInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ReleaseCredentialsInGuest(ctx context.Context, r soap.RoundTripper, req *types.ReleaseCredentialsInGuest) (*types.ReleaseCredentialsInGuestResponse, error) { - var reqBody, resBody ReleaseCredentialsInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReleaseIpAllocationBody struct { - Req *types.ReleaseIpAllocation `xml:"urn:vim25 ReleaseIpAllocation,omitempty"` - Res *types.ReleaseIpAllocationResponse `xml:"urn:vim25 ReleaseIpAllocationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReleaseIpAllocationBody) Fault() *soap.Fault { return b.Fault_ } - -func ReleaseIpAllocation(ctx context.Context, r soap.RoundTripper, req *types.ReleaseIpAllocation) (*types.ReleaseIpAllocationResponse, error) { - var reqBody, resBody ReleaseIpAllocationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReleaseManagedSnapshotBody struct { - Req *types.ReleaseManagedSnapshot `xml:"urn:vim25 ReleaseManagedSnapshot,omitempty"` - Res *types.ReleaseManagedSnapshotResponse `xml:"urn:vim25 ReleaseManagedSnapshotResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReleaseManagedSnapshotBody) Fault() *soap.Fault { return b.Fault_ } - -func ReleaseManagedSnapshot(ctx context.Context, r soap.RoundTripper, req *types.ReleaseManagedSnapshot) (*types.ReleaseManagedSnapshotResponse, error) { - var reqBody, resBody ReleaseManagedSnapshotBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReloadBody struct { - Req *types.Reload `xml:"urn:vim25 Reload,omitempty"` - Res *types.ReloadResponse `xml:"urn:vim25 ReloadResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReloadBody) Fault() *soap.Fault { return b.Fault_ } - -func Reload(ctx context.Context, r soap.RoundTripper, req *types.Reload) (*types.ReloadResponse, error) { - var reqBody, resBody ReloadBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RelocateVM_TaskBody struct { - Req *types.RelocateVM_Task `xml:"urn:vim25 RelocateVM_Task,omitempty"` - Res *types.RelocateVM_TaskResponse `xml:"urn:vim25 RelocateVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RelocateVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RelocateVM_Task(ctx context.Context, r soap.RoundTripper, req *types.RelocateVM_Task) (*types.RelocateVM_TaskResponse, error) { - var reqBody, resBody RelocateVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RelocateVStorageObject_TaskBody struct { - Req *types.RelocateVStorageObject_Task `xml:"urn:vim25 RelocateVStorageObject_Task,omitempty"` - Res *types.RelocateVStorageObject_TaskResponse `xml:"urn:vim25 RelocateVStorageObject_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RelocateVStorageObject_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RelocateVStorageObject_Task(ctx context.Context, r soap.RoundTripper, req *types.RelocateVStorageObject_Task) (*types.RelocateVStorageObject_TaskResponse, error) { - var reqBody, resBody RelocateVStorageObject_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveAlarmBody struct { - Req *types.RemoveAlarm `xml:"urn:vim25 RemoveAlarm,omitempty"` - Res *types.RemoveAlarmResponse `xml:"urn:vim25 RemoveAlarmResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveAlarmBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveAlarm(ctx context.Context, r soap.RoundTripper, req *types.RemoveAlarm) (*types.RemoveAlarmResponse, error) { - var reqBody, resBody RemoveAlarmBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveAllSnapshots_TaskBody struct { - Req *types.RemoveAllSnapshots_Task `xml:"urn:vim25 RemoveAllSnapshots_Task,omitempty"` - Res *types.RemoveAllSnapshots_TaskResponse `xml:"urn:vim25 RemoveAllSnapshots_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveAllSnapshots_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveAllSnapshots_Task(ctx context.Context, r soap.RoundTripper, req *types.RemoveAllSnapshots_Task) (*types.RemoveAllSnapshots_TaskResponse, error) { - var reqBody, resBody RemoveAllSnapshots_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveAssignedLicenseBody struct { - Req *types.RemoveAssignedLicense `xml:"urn:vim25 RemoveAssignedLicense,omitempty"` - Res *types.RemoveAssignedLicenseResponse `xml:"urn:vim25 RemoveAssignedLicenseResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveAssignedLicenseBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveAssignedLicense(ctx context.Context, r soap.RoundTripper, req *types.RemoveAssignedLicense) (*types.RemoveAssignedLicenseResponse, error) { - var reqBody, resBody RemoveAssignedLicenseBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveAuthorizationRoleBody struct { - Req *types.RemoveAuthorizationRole `xml:"urn:vim25 RemoveAuthorizationRole,omitempty"` - Res *types.RemoveAuthorizationRoleResponse `xml:"urn:vim25 RemoveAuthorizationRoleResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveAuthorizationRoleBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveAuthorizationRole(ctx context.Context, r soap.RoundTripper, req *types.RemoveAuthorizationRole) (*types.RemoveAuthorizationRoleResponse, error) { - var reqBody, resBody RemoveAuthorizationRoleBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveCustomFieldDefBody struct { - Req *types.RemoveCustomFieldDef `xml:"urn:vim25 RemoveCustomFieldDef,omitempty"` - Res *types.RemoveCustomFieldDefResponse `xml:"urn:vim25 RemoveCustomFieldDefResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveCustomFieldDefBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveCustomFieldDef(ctx context.Context, r soap.RoundTripper, req *types.RemoveCustomFieldDef) (*types.RemoveCustomFieldDefResponse, error) { - var reqBody, resBody RemoveCustomFieldDefBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveDatastoreBody struct { - Req *types.RemoveDatastore `xml:"urn:vim25 RemoveDatastore,omitempty"` - Res *types.RemoveDatastoreResponse `xml:"urn:vim25 RemoveDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveDatastore(ctx context.Context, r soap.RoundTripper, req *types.RemoveDatastore) (*types.RemoveDatastoreResponse, error) { - var reqBody, resBody RemoveDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveDatastoreEx_TaskBody struct { - Req *types.RemoveDatastoreEx_Task `xml:"urn:vim25 RemoveDatastoreEx_Task,omitempty"` - Res *types.RemoveDatastoreEx_TaskResponse `xml:"urn:vim25 RemoveDatastoreEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveDatastoreEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveDatastoreEx_Task(ctx context.Context, r soap.RoundTripper, req *types.RemoveDatastoreEx_Task) (*types.RemoveDatastoreEx_TaskResponse, error) { - var reqBody, resBody RemoveDatastoreEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveDiskMapping_TaskBody struct { - Req *types.RemoveDiskMapping_Task `xml:"urn:vim25 RemoveDiskMapping_Task,omitempty"` - Res *types.RemoveDiskMapping_TaskResponse `xml:"urn:vim25 RemoveDiskMapping_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveDiskMapping_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveDiskMapping_Task(ctx context.Context, r soap.RoundTripper, req *types.RemoveDiskMapping_Task) (*types.RemoveDiskMapping_TaskResponse, error) { - var reqBody, resBody RemoveDiskMapping_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveDisk_TaskBody struct { - Req *types.RemoveDisk_Task `xml:"urn:vim25 RemoveDisk_Task,omitempty"` - Res *types.RemoveDisk_TaskResponse `xml:"urn:vim25 RemoveDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.RemoveDisk_Task) (*types.RemoveDisk_TaskResponse, error) { - var reqBody, resBody RemoveDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveEntityPermissionBody struct { - Req *types.RemoveEntityPermission `xml:"urn:vim25 RemoveEntityPermission,omitempty"` - Res *types.RemoveEntityPermissionResponse `xml:"urn:vim25 RemoveEntityPermissionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveEntityPermissionBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveEntityPermission(ctx context.Context, r soap.RoundTripper, req *types.RemoveEntityPermission) (*types.RemoveEntityPermissionResponse, error) { - var reqBody, resBody RemoveEntityPermissionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveFilterBody struct { - Req *types.RemoveFilter `xml:"urn:vim25 RemoveFilter,omitempty"` - Res *types.RemoveFilterResponse `xml:"urn:vim25 RemoveFilterResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveFilterBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveFilter(ctx context.Context, r soap.RoundTripper, req *types.RemoveFilter) (*types.RemoveFilterResponse, error) { - var reqBody, resBody RemoveFilterBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveFilterEntitiesBody struct { - Req *types.RemoveFilterEntities `xml:"urn:vim25 RemoveFilterEntities,omitempty"` - Res *types.RemoveFilterEntitiesResponse `xml:"urn:vim25 RemoveFilterEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveFilterEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveFilterEntities(ctx context.Context, r soap.RoundTripper, req *types.RemoveFilterEntities) (*types.RemoveFilterEntitiesResponse, error) { - var reqBody, resBody RemoveFilterEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveGroupBody struct { - Req *types.RemoveGroup `xml:"urn:vim25 RemoveGroup,omitempty"` - Res *types.RemoveGroupResponse `xml:"urn:vim25 RemoveGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveGroup(ctx context.Context, r soap.RoundTripper, req *types.RemoveGroup) (*types.RemoveGroupResponse, error) { - var reqBody, resBody RemoveGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveGuestAliasBody struct { - Req *types.RemoveGuestAlias `xml:"urn:vim25 RemoveGuestAlias,omitempty"` - Res *types.RemoveGuestAliasResponse `xml:"urn:vim25 RemoveGuestAliasResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveGuestAliasBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveGuestAlias(ctx context.Context, r soap.RoundTripper, req *types.RemoveGuestAlias) (*types.RemoveGuestAliasResponse, error) { - var reqBody, resBody RemoveGuestAliasBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveGuestAliasByCertBody struct { - Req *types.RemoveGuestAliasByCert `xml:"urn:vim25 RemoveGuestAliasByCert,omitempty"` - Res *types.RemoveGuestAliasByCertResponse `xml:"urn:vim25 RemoveGuestAliasByCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveGuestAliasByCertBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveGuestAliasByCert(ctx context.Context, r soap.RoundTripper, req *types.RemoveGuestAliasByCert) (*types.RemoveGuestAliasByCertResponse, error) { - var reqBody, resBody RemoveGuestAliasByCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveInternetScsiSendTargetsBody struct { - Req *types.RemoveInternetScsiSendTargets `xml:"urn:vim25 RemoveInternetScsiSendTargets,omitempty"` - Res *types.RemoveInternetScsiSendTargetsResponse `xml:"urn:vim25 RemoveInternetScsiSendTargetsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveInternetScsiSendTargetsBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveInternetScsiSendTargets(ctx context.Context, r soap.RoundTripper, req *types.RemoveInternetScsiSendTargets) (*types.RemoveInternetScsiSendTargetsResponse, error) { - var reqBody, resBody RemoveInternetScsiSendTargetsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveInternetScsiStaticTargetsBody struct { - Req *types.RemoveInternetScsiStaticTargets `xml:"urn:vim25 RemoveInternetScsiStaticTargets,omitempty"` - Res *types.RemoveInternetScsiStaticTargetsResponse `xml:"urn:vim25 RemoveInternetScsiStaticTargetsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveInternetScsiStaticTargetsBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveInternetScsiStaticTargets(ctx context.Context, r soap.RoundTripper, req *types.RemoveInternetScsiStaticTargets) (*types.RemoveInternetScsiStaticTargetsResponse, error) { - var reqBody, resBody RemoveInternetScsiStaticTargetsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveKeyBody struct { - Req *types.RemoveKey `xml:"urn:vim25 RemoveKey,omitempty"` - Res *types.RemoveKeyResponse `xml:"urn:vim25 RemoveKeyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveKeyBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveKey(ctx context.Context, r soap.RoundTripper, req *types.RemoveKey) (*types.RemoveKeyResponse, error) { - var reqBody, resBody RemoveKeyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveKeysBody struct { - Req *types.RemoveKeys `xml:"urn:vim25 RemoveKeys,omitempty"` - Res *types.RemoveKeysResponse `xml:"urn:vim25 RemoveKeysResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveKeysBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveKeys(ctx context.Context, r soap.RoundTripper, req *types.RemoveKeys) (*types.RemoveKeysResponse, error) { - var reqBody, resBody RemoveKeysBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveKmipServerBody struct { - Req *types.RemoveKmipServer `xml:"urn:vim25 RemoveKmipServer,omitempty"` - Res *types.RemoveKmipServerResponse `xml:"urn:vim25 RemoveKmipServerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveKmipServerBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveKmipServer(ctx context.Context, r soap.RoundTripper, req *types.RemoveKmipServer) (*types.RemoveKmipServerResponse, error) { - var reqBody, resBody RemoveKmipServerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveLicenseBody struct { - Req *types.RemoveLicense `xml:"urn:vim25 RemoveLicense,omitempty"` - Res *types.RemoveLicenseResponse `xml:"urn:vim25 RemoveLicenseResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveLicenseBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveLicense(ctx context.Context, r soap.RoundTripper, req *types.RemoveLicense) (*types.RemoveLicenseResponse, error) { - var reqBody, resBody RemoveLicenseBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveLicenseLabelBody struct { - Req *types.RemoveLicenseLabel `xml:"urn:vim25 RemoveLicenseLabel,omitempty"` - Res *types.RemoveLicenseLabelResponse `xml:"urn:vim25 RemoveLicenseLabelResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveLicenseLabelBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveLicenseLabel(ctx context.Context, r soap.RoundTripper, req *types.RemoveLicenseLabel) (*types.RemoveLicenseLabelResponse, error) { - var reqBody, resBody RemoveLicenseLabelBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveMonitoredEntitiesBody struct { - Req *types.RemoveMonitoredEntities `xml:"urn:vim25 RemoveMonitoredEntities,omitempty"` - Res *types.RemoveMonitoredEntitiesResponse `xml:"urn:vim25 RemoveMonitoredEntitiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveMonitoredEntitiesBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveMonitoredEntities(ctx context.Context, r soap.RoundTripper, req *types.RemoveMonitoredEntities) (*types.RemoveMonitoredEntitiesResponse, error) { - var reqBody, resBody RemoveMonitoredEntitiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveNetworkResourcePoolBody struct { - Req *types.RemoveNetworkResourcePool `xml:"urn:vim25 RemoveNetworkResourcePool,omitempty"` - Res *types.RemoveNetworkResourcePoolResponse `xml:"urn:vim25 RemoveNetworkResourcePoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveNetworkResourcePoolBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveNetworkResourcePool(ctx context.Context, r soap.RoundTripper, req *types.RemoveNetworkResourcePool) (*types.RemoveNetworkResourcePoolResponse, error) { - var reqBody, resBody RemoveNetworkResourcePoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemovePerfIntervalBody struct { - Req *types.RemovePerfInterval `xml:"urn:vim25 RemovePerfInterval,omitempty"` - Res *types.RemovePerfIntervalResponse `xml:"urn:vim25 RemovePerfIntervalResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemovePerfIntervalBody) Fault() *soap.Fault { return b.Fault_ } - -func RemovePerfInterval(ctx context.Context, r soap.RoundTripper, req *types.RemovePerfInterval) (*types.RemovePerfIntervalResponse, error) { - var reqBody, resBody RemovePerfIntervalBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemovePortGroupBody struct { - Req *types.RemovePortGroup `xml:"urn:vim25 RemovePortGroup,omitempty"` - Res *types.RemovePortGroupResponse `xml:"urn:vim25 RemovePortGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemovePortGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func RemovePortGroup(ctx context.Context, r soap.RoundTripper, req *types.RemovePortGroup) (*types.RemovePortGroupResponse, error) { - var reqBody, resBody RemovePortGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveScheduledTaskBody struct { - Req *types.RemoveScheduledTask `xml:"urn:vim25 RemoveScheduledTask,omitempty"` - Res *types.RemoveScheduledTaskResponse `xml:"urn:vim25 RemoveScheduledTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveScheduledTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.RemoveScheduledTask) (*types.RemoveScheduledTaskResponse, error) { - var reqBody, resBody RemoveScheduledTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveServiceConsoleVirtualNicBody struct { - Req *types.RemoveServiceConsoleVirtualNic `xml:"urn:vim25 RemoveServiceConsoleVirtualNic,omitempty"` - Res *types.RemoveServiceConsoleVirtualNicResponse `xml:"urn:vim25 RemoveServiceConsoleVirtualNicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveServiceConsoleVirtualNicBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.RemoveServiceConsoleVirtualNic) (*types.RemoveServiceConsoleVirtualNicResponse, error) { - var reqBody, resBody RemoveServiceConsoleVirtualNicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveSmartCardTrustAnchorBody struct { - Req *types.RemoveSmartCardTrustAnchor `xml:"urn:vim25 RemoveSmartCardTrustAnchor,omitempty"` - Res *types.RemoveSmartCardTrustAnchorResponse `xml:"urn:vim25 RemoveSmartCardTrustAnchorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveSmartCardTrustAnchorBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveSmartCardTrustAnchor(ctx context.Context, r soap.RoundTripper, req *types.RemoveSmartCardTrustAnchor) (*types.RemoveSmartCardTrustAnchorResponse, error) { - var reqBody, resBody RemoveSmartCardTrustAnchorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveSmartCardTrustAnchorByFingerprintBody struct { - Req *types.RemoveSmartCardTrustAnchorByFingerprint `xml:"urn:vim25 RemoveSmartCardTrustAnchorByFingerprint,omitempty"` - Res *types.RemoveSmartCardTrustAnchorByFingerprintResponse `xml:"urn:vim25 RemoveSmartCardTrustAnchorByFingerprintResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveSmartCardTrustAnchorByFingerprintBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveSmartCardTrustAnchorByFingerprint(ctx context.Context, r soap.RoundTripper, req *types.RemoveSmartCardTrustAnchorByFingerprint) (*types.RemoveSmartCardTrustAnchorByFingerprintResponse, error) { - var reqBody, resBody RemoveSmartCardTrustAnchorByFingerprintBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveSnapshot_TaskBody struct { - Req *types.RemoveSnapshot_Task `xml:"urn:vim25 RemoveSnapshot_Task,omitempty"` - Res *types.RemoveSnapshot_TaskResponse `xml:"urn:vim25 RemoveSnapshot_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveSnapshot_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types.RemoveSnapshot_Task) (*types.RemoveSnapshot_TaskResponse, error) { - var reqBody, resBody RemoveSnapshot_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveUserBody struct { - Req *types.RemoveUser `xml:"urn:vim25 RemoveUser,omitempty"` - Res *types.RemoveUserResponse `xml:"urn:vim25 RemoveUserResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveUserBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveUser(ctx context.Context, r soap.RoundTripper, req *types.RemoveUser) (*types.RemoveUserResponse, error) { - var reqBody, resBody RemoveUserBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveVirtualNicBody struct { - Req *types.RemoveVirtualNic `xml:"urn:vim25 RemoveVirtualNic,omitempty"` - Res *types.RemoveVirtualNicResponse `xml:"urn:vim25 RemoveVirtualNicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveVirtualNicBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.RemoveVirtualNic) (*types.RemoveVirtualNicResponse, error) { - var reqBody, resBody RemoveVirtualNicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RemoveVirtualSwitchBody struct { - Req *types.RemoveVirtualSwitch `xml:"urn:vim25 RemoveVirtualSwitch,omitempty"` - Res *types.RemoveVirtualSwitchResponse `xml:"urn:vim25 RemoveVirtualSwitchResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RemoveVirtualSwitchBody) Fault() *soap.Fault { return b.Fault_ } - -func RemoveVirtualSwitch(ctx context.Context, r soap.RoundTripper, req *types.RemoveVirtualSwitch) (*types.RemoveVirtualSwitchResponse, error) { - var reqBody, resBody RemoveVirtualSwitchBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RenameCustomFieldDefBody struct { - Req *types.RenameCustomFieldDef `xml:"urn:vim25 RenameCustomFieldDef,omitempty"` - Res *types.RenameCustomFieldDefResponse `xml:"urn:vim25 RenameCustomFieldDefResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RenameCustomFieldDefBody) Fault() *soap.Fault { return b.Fault_ } - -func RenameCustomFieldDef(ctx context.Context, r soap.RoundTripper, req *types.RenameCustomFieldDef) (*types.RenameCustomFieldDefResponse, error) { - var reqBody, resBody RenameCustomFieldDefBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RenameCustomizationSpecBody struct { - Req *types.RenameCustomizationSpec `xml:"urn:vim25 RenameCustomizationSpec,omitempty"` - Res *types.RenameCustomizationSpecResponse `xml:"urn:vim25 RenameCustomizationSpecResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RenameCustomizationSpecBody) Fault() *soap.Fault { return b.Fault_ } - -func RenameCustomizationSpec(ctx context.Context, r soap.RoundTripper, req *types.RenameCustomizationSpec) (*types.RenameCustomizationSpecResponse, error) { - var reqBody, resBody RenameCustomizationSpecBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RenameDatastoreBody struct { - Req *types.RenameDatastore `xml:"urn:vim25 RenameDatastore,omitempty"` - Res *types.RenameDatastoreResponse `xml:"urn:vim25 RenameDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RenameDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func RenameDatastore(ctx context.Context, r soap.RoundTripper, req *types.RenameDatastore) (*types.RenameDatastoreResponse, error) { - var reqBody, resBody RenameDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RenameSnapshotBody struct { - Req *types.RenameSnapshot `xml:"urn:vim25 RenameSnapshot,omitempty"` - Res *types.RenameSnapshotResponse `xml:"urn:vim25 RenameSnapshotResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RenameSnapshotBody) Fault() *soap.Fault { return b.Fault_ } - -func RenameSnapshot(ctx context.Context, r soap.RoundTripper, req *types.RenameSnapshot) (*types.RenameSnapshotResponse, error) { - var reqBody, resBody RenameSnapshotBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RenameVStorageObjectBody struct { - Req *types.RenameVStorageObject `xml:"urn:vim25 RenameVStorageObject,omitempty"` - Res *types.RenameVStorageObjectResponse `xml:"urn:vim25 RenameVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RenameVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func RenameVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.RenameVStorageObject) (*types.RenameVStorageObjectResponse, error) { - var reqBody, resBody RenameVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type Rename_TaskBody struct { - Req *types.Rename_Task `xml:"urn:vim25 Rename_Task,omitempty"` - Res *types.Rename_TaskResponse `xml:"urn:vim25 Rename_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *Rename_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func Rename_Task(ctx context.Context, r soap.RoundTripper, req *types.Rename_Task) (*types.Rename_TaskResponse, error) { - var reqBody, resBody Rename_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReplaceCACertificatesAndCRLsBody struct { - Req *types.ReplaceCACertificatesAndCRLs `xml:"urn:vim25 ReplaceCACertificatesAndCRLs,omitempty"` - Res *types.ReplaceCACertificatesAndCRLsResponse `xml:"urn:vim25 ReplaceCACertificatesAndCRLsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReplaceCACertificatesAndCRLsBody) Fault() *soap.Fault { return b.Fault_ } - -func ReplaceCACertificatesAndCRLs(ctx context.Context, r soap.RoundTripper, req *types.ReplaceCACertificatesAndCRLs) (*types.ReplaceCACertificatesAndCRLsResponse, error) { - var reqBody, resBody ReplaceCACertificatesAndCRLsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ReplaceSmartCardTrustAnchorsBody struct { - Req *types.ReplaceSmartCardTrustAnchors `xml:"urn:vim25 ReplaceSmartCardTrustAnchors,omitempty"` - Res *types.ReplaceSmartCardTrustAnchorsResponse `xml:"urn:vim25 ReplaceSmartCardTrustAnchorsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ReplaceSmartCardTrustAnchorsBody) Fault() *soap.Fault { return b.Fault_ } - -func ReplaceSmartCardTrustAnchors(ctx context.Context, r soap.RoundTripper, req *types.ReplaceSmartCardTrustAnchors) (*types.ReplaceSmartCardTrustAnchorsResponse, error) { - var reqBody, resBody ReplaceSmartCardTrustAnchorsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RescanAllHbaBody struct { - Req *types.RescanAllHba `xml:"urn:vim25 RescanAllHba,omitempty"` - Res *types.RescanAllHbaResponse `xml:"urn:vim25 RescanAllHbaResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RescanAllHbaBody) Fault() *soap.Fault { return b.Fault_ } - -func RescanAllHba(ctx context.Context, r soap.RoundTripper, req *types.RescanAllHba) (*types.RescanAllHbaResponse, error) { - var reqBody, resBody RescanAllHbaBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RescanHbaBody struct { - Req *types.RescanHba `xml:"urn:vim25 RescanHba,omitempty"` - Res *types.RescanHbaResponse `xml:"urn:vim25 RescanHbaResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RescanHbaBody) Fault() *soap.Fault { return b.Fault_ } - -func RescanHba(ctx context.Context, r soap.RoundTripper, req *types.RescanHba) (*types.RescanHbaResponse, error) { - var reqBody, resBody RescanHbaBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RescanVffsBody struct { - Req *types.RescanVffs `xml:"urn:vim25 RescanVffs,omitempty"` - Res *types.RescanVffsResponse `xml:"urn:vim25 RescanVffsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RescanVffsBody) Fault() *soap.Fault { return b.Fault_ } - -func RescanVffs(ctx context.Context, r soap.RoundTripper, req *types.RescanVffs) (*types.RescanVffsResponse, error) { - var reqBody, resBody RescanVffsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RescanVmfsBody struct { - Req *types.RescanVmfs `xml:"urn:vim25 RescanVmfs,omitempty"` - Res *types.RescanVmfsResponse `xml:"urn:vim25 RescanVmfsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RescanVmfsBody) Fault() *soap.Fault { return b.Fault_ } - -func RescanVmfs(ctx context.Context, r soap.RoundTripper, req *types.RescanVmfs) (*types.RescanVmfsResponse, error) { - var reqBody, resBody RescanVmfsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetCollectorBody struct { - Req *types.ResetCollector `xml:"urn:vim25 ResetCollector,omitempty"` - Res *types.ResetCollectorResponse `xml:"urn:vim25 ResetCollectorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetCollectorBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetCollector(ctx context.Context, r soap.RoundTripper, req *types.ResetCollector) (*types.ResetCollectorResponse, error) { - var reqBody, resBody ResetCollectorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetCounterLevelMappingBody struct { - Req *types.ResetCounterLevelMapping `xml:"urn:vim25 ResetCounterLevelMapping,omitempty"` - Res *types.ResetCounterLevelMappingResponse `xml:"urn:vim25 ResetCounterLevelMappingResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetCounterLevelMappingBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetCounterLevelMapping(ctx context.Context, r soap.RoundTripper, req *types.ResetCounterLevelMapping) (*types.ResetCounterLevelMappingResponse, error) { - var reqBody, resBody ResetCounterLevelMappingBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetEntityPermissionsBody struct { - Req *types.ResetEntityPermissions `xml:"urn:vim25 ResetEntityPermissions,omitempty"` - Res *types.ResetEntityPermissionsResponse `xml:"urn:vim25 ResetEntityPermissionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetEntityPermissionsBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetEntityPermissions(ctx context.Context, r soap.RoundTripper, req *types.ResetEntityPermissions) (*types.ResetEntityPermissionsResponse, error) { - var reqBody, resBody ResetEntityPermissionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetFirmwareToFactoryDefaultsBody struct { - Req *types.ResetFirmwareToFactoryDefaults `xml:"urn:vim25 ResetFirmwareToFactoryDefaults,omitempty"` - Res *types.ResetFirmwareToFactoryDefaultsResponse `xml:"urn:vim25 ResetFirmwareToFactoryDefaultsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetFirmwareToFactoryDefaultsBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetFirmwareToFactoryDefaults(ctx context.Context, r soap.RoundTripper, req *types.ResetFirmwareToFactoryDefaults) (*types.ResetFirmwareToFactoryDefaultsResponse, error) { - var reqBody, resBody ResetFirmwareToFactoryDefaultsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetGuestInformationBody struct { - Req *types.ResetGuestInformation `xml:"urn:vim25 ResetGuestInformation,omitempty"` - Res *types.ResetGuestInformationResponse `xml:"urn:vim25 ResetGuestInformationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetGuestInformationBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetGuestInformation(ctx context.Context, r soap.RoundTripper, req *types.ResetGuestInformation) (*types.ResetGuestInformationResponse, error) { - var reqBody, resBody ResetGuestInformationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetListViewBody struct { - Req *types.ResetListView `xml:"urn:vim25 ResetListView,omitempty"` - Res *types.ResetListViewResponse `xml:"urn:vim25 ResetListViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetListViewBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetListView(ctx context.Context, r soap.RoundTripper, req *types.ResetListView) (*types.ResetListViewResponse, error) { - var reqBody, resBody ResetListViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetListViewFromViewBody struct { - Req *types.ResetListViewFromView `xml:"urn:vim25 ResetListViewFromView,omitempty"` - Res *types.ResetListViewFromViewResponse `xml:"urn:vim25 ResetListViewFromViewResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetListViewFromViewBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetListViewFromView(ctx context.Context, r soap.RoundTripper, req *types.ResetListViewFromView) (*types.ResetListViewFromViewResponse, error) { - var reqBody, resBody ResetListViewFromViewBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetSystemHealthInfoBody struct { - Req *types.ResetSystemHealthInfo `xml:"urn:vim25 ResetSystemHealthInfo,omitempty"` - Res *types.ResetSystemHealthInfoResponse `xml:"urn:vim25 ResetSystemHealthInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetSystemHealthInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetSystemHealthInfo(ctx context.Context, r soap.RoundTripper, req *types.ResetSystemHealthInfo) (*types.ResetSystemHealthInfoResponse, error) { - var reqBody, resBody ResetSystemHealthInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResetVM_TaskBody struct { - Req *types.ResetVM_Task `xml:"urn:vim25 ResetVM_Task,omitempty"` - Res *types.ResetVM_TaskResponse `xml:"urn:vim25 ResetVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResetVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ResetVM_Task(ctx context.Context, r soap.RoundTripper, req *types.ResetVM_Task) (*types.ResetVM_TaskResponse, error) { - var reqBody, resBody ResetVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResignatureUnresolvedVmfsVolume_TaskBody struct { - Req *types.ResignatureUnresolvedVmfsVolume_Task `xml:"urn:vim25 ResignatureUnresolvedVmfsVolume_Task,omitempty"` - Res *types.ResignatureUnresolvedVmfsVolume_TaskResponse `xml:"urn:vim25 ResignatureUnresolvedVmfsVolume_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResignatureUnresolvedVmfsVolume_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ResignatureUnresolvedVmfsVolume_Task(ctx context.Context, r soap.RoundTripper, req *types.ResignatureUnresolvedVmfsVolume_Task) (*types.ResignatureUnresolvedVmfsVolume_TaskResponse, error) { - var reqBody, resBody ResignatureUnresolvedVmfsVolume_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResolveInstallationErrorsOnCluster_TaskBody struct { - Req *types.ResolveInstallationErrorsOnCluster_Task `xml:"urn:vim25 ResolveInstallationErrorsOnCluster_Task,omitempty"` - Res *types.ResolveInstallationErrorsOnCluster_TaskResponse `xml:"urn:vim25 ResolveInstallationErrorsOnCluster_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResolveInstallationErrorsOnCluster_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ResolveInstallationErrorsOnCluster_Task(ctx context.Context, r soap.RoundTripper, req *types.ResolveInstallationErrorsOnCluster_Task) (*types.ResolveInstallationErrorsOnCluster_TaskResponse, error) { - var reqBody, resBody ResolveInstallationErrorsOnCluster_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResolveInstallationErrorsOnHost_TaskBody struct { - Req *types.ResolveInstallationErrorsOnHost_Task `xml:"urn:vim25 ResolveInstallationErrorsOnHost_Task,omitempty"` - Res *types.ResolveInstallationErrorsOnHost_TaskResponse `xml:"urn:vim25 ResolveInstallationErrorsOnHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResolveInstallationErrorsOnHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ResolveInstallationErrorsOnHost_Task(ctx context.Context, r soap.RoundTripper, req *types.ResolveInstallationErrorsOnHost_Task) (*types.ResolveInstallationErrorsOnHost_TaskResponse, error) { - var reqBody, resBody ResolveInstallationErrorsOnHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResolveMultipleUnresolvedVmfsVolumesBody struct { - Req *types.ResolveMultipleUnresolvedVmfsVolumes `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumes,omitempty"` - Res *types.ResolveMultipleUnresolvedVmfsVolumesResponse `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResolveMultipleUnresolvedVmfsVolumesBody) Fault() *soap.Fault { return b.Fault_ } - -func ResolveMultipleUnresolvedVmfsVolumes(ctx context.Context, r soap.RoundTripper, req *types.ResolveMultipleUnresolvedVmfsVolumes) (*types.ResolveMultipleUnresolvedVmfsVolumesResponse, error) { - var reqBody, resBody ResolveMultipleUnresolvedVmfsVolumesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ResolveMultipleUnresolvedVmfsVolumesEx_TaskBody struct { - Req *types.ResolveMultipleUnresolvedVmfsVolumesEx_Task `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumesEx_Task,omitempty"` - Res *types.ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse `xml:"urn:vim25 ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ResolveMultipleUnresolvedVmfsVolumesEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ResolveMultipleUnresolvedVmfsVolumesEx_Task(ctx context.Context, r soap.RoundTripper, req *types.ResolveMultipleUnresolvedVmfsVolumesEx_Task) (*types.ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse, error) { - var reqBody, resBody ResolveMultipleUnresolvedVmfsVolumesEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RestartServiceBody struct { - Req *types.RestartService `xml:"urn:vim25 RestartService,omitempty"` - Res *types.RestartServiceResponse `xml:"urn:vim25 RestartServiceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RestartServiceBody) Fault() *soap.Fault { return b.Fault_ } - -func RestartService(ctx context.Context, r soap.RoundTripper, req *types.RestartService) (*types.RestartServiceResponse, error) { - var reqBody, resBody RestartServiceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RestartServiceConsoleVirtualNicBody struct { - Req *types.RestartServiceConsoleVirtualNic `xml:"urn:vim25 RestartServiceConsoleVirtualNic,omitempty"` - Res *types.RestartServiceConsoleVirtualNicResponse `xml:"urn:vim25 RestartServiceConsoleVirtualNicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RestartServiceConsoleVirtualNicBody) Fault() *soap.Fault { return b.Fault_ } - -func RestartServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.RestartServiceConsoleVirtualNic) (*types.RestartServiceConsoleVirtualNicResponse, error) { - var reqBody, resBody RestartServiceConsoleVirtualNicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RestoreFirmwareConfigurationBody struct { - Req *types.RestoreFirmwareConfiguration `xml:"urn:vim25 RestoreFirmwareConfiguration,omitempty"` - Res *types.RestoreFirmwareConfigurationResponse `xml:"urn:vim25 RestoreFirmwareConfigurationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RestoreFirmwareConfigurationBody) Fault() *soap.Fault { return b.Fault_ } - -func RestoreFirmwareConfiguration(ctx context.Context, r soap.RoundTripper, req *types.RestoreFirmwareConfiguration) (*types.RestoreFirmwareConfigurationResponse, error) { - var reqBody, resBody RestoreFirmwareConfigurationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveAllPermissionsBody struct { - Req *types.RetrieveAllPermissions `xml:"urn:vim25 RetrieveAllPermissions,omitempty"` - Res *types.RetrieveAllPermissionsResponse `xml:"urn:vim25 RetrieveAllPermissionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveAllPermissionsBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveAllPermissions(ctx context.Context, r soap.RoundTripper, req *types.RetrieveAllPermissions) (*types.RetrieveAllPermissionsResponse, error) { - var reqBody, resBody RetrieveAllPermissionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveAnswerFileBody struct { - Req *types.RetrieveAnswerFile `xml:"urn:vim25 RetrieveAnswerFile,omitempty"` - Res *types.RetrieveAnswerFileResponse `xml:"urn:vim25 RetrieveAnswerFileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveAnswerFileBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveAnswerFile(ctx context.Context, r soap.RoundTripper, req *types.RetrieveAnswerFile) (*types.RetrieveAnswerFileResponse, error) { - var reqBody, resBody RetrieveAnswerFileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveAnswerFileForProfileBody struct { - Req *types.RetrieveAnswerFileForProfile `xml:"urn:vim25 RetrieveAnswerFileForProfile,omitempty"` - Res *types.RetrieveAnswerFileForProfileResponse `xml:"urn:vim25 RetrieveAnswerFileForProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveAnswerFileForProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveAnswerFileForProfile(ctx context.Context, r soap.RoundTripper, req *types.RetrieveAnswerFileForProfile) (*types.RetrieveAnswerFileForProfileResponse, error) { - var reqBody, resBody RetrieveAnswerFileForProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveArgumentDescriptionBody struct { - Req *types.RetrieveArgumentDescription `xml:"urn:vim25 RetrieveArgumentDescription,omitempty"` - Res *types.RetrieveArgumentDescriptionResponse `xml:"urn:vim25 RetrieveArgumentDescriptionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveArgumentDescriptionBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveArgumentDescription(ctx context.Context, r soap.RoundTripper, req *types.RetrieveArgumentDescription) (*types.RetrieveArgumentDescriptionResponse, error) { - var reqBody, resBody RetrieveArgumentDescriptionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveClientCertBody struct { - Req *types.RetrieveClientCert `xml:"urn:vim25 RetrieveClientCert,omitempty"` - Res *types.RetrieveClientCertResponse `xml:"urn:vim25 RetrieveClientCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveClientCertBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveClientCert(ctx context.Context, r soap.RoundTripper, req *types.RetrieveClientCert) (*types.RetrieveClientCertResponse, error) { - var reqBody, resBody RetrieveClientCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveClientCsrBody struct { - Req *types.RetrieveClientCsr `xml:"urn:vim25 RetrieveClientCsr,omitempty"` - Res *types.RetrieveClientCsrResponse `xml:"urn:vim25 RetrieveClientCsrResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveClientCsrBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveClientCsr(ctx context.Context, r soap.RoundTripper, req *types.RetrieveClientCsr) (*types.RetrieveClientCsrResponse, error) { - var reqBody, resBody RetrieveClientCsrBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveDasAdvancedRuntimeInfoBody struct { - Req *types.RetrieveDasAdvancedRuntimeInfo `xml:"urn:vim25 RetrieveDasAdvancedRuntimeInfo,omitempty"` - Res *types.RetrieveDasAdvancedRuntimeInfoResponse `xml:"urn:vim25 RetrieveDasAdvancedRuntimeInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveDasAdvancedRuntimeInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveDasAdvancedRuntimeInfo(ctx context.Context, r soap.RoundTripper, req *types.RetrieveDasAdvancedRuntimeInfo) (*types.RetrieveDasAdvancedRuntimeInfoResponse, error) { - var reqBody, resBody RetrieveDasAdvancedRuntimeInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveDescriptionBody struct { - Req *types.RetrieveDescription `xml:"urn:vim25 RetrieveDescription,omitempty"` - Res *types.RetrieveDescriptionResponse `xml:"urn:vim25 RetrieveDescriptionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveDescriptionBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveDescription(ctx context.Context, r soap.RoundTripper, req *types.RetrieveDescription) (*types.RetrieveDescriptionResponse, error) { - var reqBody, resBody RetrieveDescriptionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveDiskPartitionInfoBody struct { - Req *types.RetrieveDiskPartitionInfo `xml:"urn:vim25 RetrieveDiskPartitionInfo,omitempty"` - Res *types.RetrieveDiskPartitionInfoResponse `xml:"urn:vim25 RetrieveDiskPartitionInfoResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveDiskPartitionInfoBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveDiskPartitionInfo(ctx context.Context, r soap.RoundTripper, req *types.RetrieveDiskPartitionInfo) (*types.RetrieveDiskPartitionInfoResponse, error) { - var reqBody, resBody RetrieveDiskPartitionInfoBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveEntityPermissionsBody struct { - Req *types.RetrieveEntityPermissions `xml:"urn:vim25 RetrieveEntityPermissions,omitempty"` - Res *types.RetrieveEntityPermissionsResponse `xml:"urn:vim25 RetrieveEntityPermissionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveEntityPermissionsBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveEntityPermissions(ctx context.Context, r soap.RoundTripper, req *types.RetrieveEntityPermissions) (*types.RetrieveEntityPermissionsResponse, error) { - var reqBody, resBody RetrieveEntityPermissionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveEntityScheduledTaskBody struct { - Req *types.RetrieveEntityScheduledTask `xml:"urn:vim25 RetrieveEntityScheduledTask,omitempty"` - Res *types.RetrieveEntityScheduledTaskResponse `xml:"urn:vim25 RetrieveEntityScheduledTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveEntityScheduledTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveEntityScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.RetrieveEntityScheduledTask) (*types.RetrieveEntityScheduledTaskResponse, error) { - var reqBody, resBody RetrieveEntityScheduledTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveHardwareUptimeBody struct { - Req *types.RetrieveHardwareUptime `xml:"urn:vim25 RetrieveHardwareUptime,omitempty"` - Res *types.RetrieveHardwareUptimeResponse `xml:"urn:vim25 RetrieveHardwareUptimeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveHardwareUptimeBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveHardwareUptime(ctx context.Context, r soap.RoundTripper, req *types.RetrieveHardwareUptime) (*types.RetrieveHardwareUptimeResponse, error) { - var reqBody, resBody RetrieveHardwareUptimeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveHostAccessControlEntriesBody struct { - Req *types.RetrieveHostAccessControlEntries `xml:"urn:vim25 RetrieveHostAccessControlEntries,omitempty"` - Res *types.RetrieveHostAccessControlEntriesResponse `xml:"urn:vim25 RetrieveHostAccessControlEntriesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveHostAccessControlEntriesBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveHostAccessControlEntries(ctx context.Context, r soap.RoundTripper, req *types.RetrieveHostAccessControlEntries) (*types.RetrieveHostAccessControlEntriesResponse, error) { - var reqBody, resBody RetrieveHostAccessControlEntriesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveHostCustomizationsBody struct { - Req *types.RetrieveHostCustomizations `xml:"urn:vim25 RetrieveHostCustomizations,omitempty"` - Res *types.RetrieveHostCustomizationsResponse `xml:"urn:vim25 RetrieveHostCustomizationsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveHostCustomizationsBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveHostCustomizations(ctx context.Context, r soap.RoundTripper, req *types.RetrieveHostCustomizations) (*types.RetrieveHostCustomizationsResponse, error) { - var reqBody, resBody RetrieveHostCustomizationsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveHostCustomizationsForProfileBody struct { - Req *types.RetrieveHostCustomizationsForProfile `xml:"urn:vim25 RetrieveHostCustomizationsForProfile,omitempty"` - Res *types.RetrieveHostCustomizationsForProfileResponse `xml:"urn:vim25 RetrieveHostCustomizationsForProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveHostCustomizationsForProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveHostCustomizationsForProfile(ctx context.Context, r soap.RoundTripper, req *types.RetrieveHostCustomizationsForProfile) (*types.RetrieveHostCustomizationsForProfileResponse, error) { - var reqBody, resBody RetrieveHostCustomizationsForProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveHostSpecificationBody struct { - Req *types.RetrieveHostSpecification `xml:"urn:vim25 RetrieveHostSpecification,omitempty"` - Res *types.RetrieveHostSpecificationResponse `xml:"urn:vim25 RetrieveHostSpecificationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveHostSpecificationBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveHostSpecification(ctx context.Context, r soap.RoundTripper, req *types.RetrieveHostSpecification) (*types.RetrieveHostSpecificationResponse, error) { - var reqBody, resBody RetrieveHostSpecificationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveKmipServerCertBody struct { - Req *types.RetrieveKmipServerCert `xml:"urn:vim25 RetrieveKmipServerCert,omitempty"` - Res *types.RetrieveKmipServerCertResponse `xml:"urn:vim25 RetrieveKmipServerCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveKmipServerCertBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveKmipServerCert(ctx context.Context, r soap.RoundTripper, req *types.RetrieveKmipServerCert) (*types.RetrieveKmipServerCertResponse, error) { - var reqBody, resBody RetrieveKmipServerCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveKmipServersStatus_TaskBody struct { - Req *types.RetrieveKmipServersStatus_Task `xml:"urn:vim25 RetrieveKmipServersStatus_Task,omitempty"` - Res *types.RetrieveKmipServersStatus_TaskResponse `xml:"urn:vim25 RetrieveKmipServersStatus_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveKmipServersStatus_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveKmipServersStatus_Task(ctx context.Context, r soap.RoundTripper, req *types.RetrieveKmipServersStatus_Task) (*types.RetrieveKmipServersStatus_TaskResponse, error) { - var reqBody, resBody RetrieveKmipServersStatus_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveObjectScheduledTaskBody struct { - Req *types.RetrieveObjectScheduledTask `xml:"urn:vim25 RetrieveObjectScheduledTask,omitempty"` - Res *types.RetrieveObjectScheduledTaskResponse `xml:"urn:vim25 RetrieveObjectScheduledTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveObjectScheduledTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveObjectScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.RetrieveObjectScheduledTask) (*types.RetrieveObjectScheduledTaskResponse, error) { - var reqBody, resBody RetrieveObjectScheduledTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveProductComponentsBody struct { - Req *types.RetrieveProductComponents `xml:"urn:vim25 RetrieveProductComponents,omitempty"` - Res *types.RetrieveProductComponentsResponse `xml:"urn:vim25 RetrieveProductComponentsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveProductComponentsBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveProductComponents(ctx context.Context, r soap.RoundTripper, req *types.RetrieveProductComponents) (*types.RetrieveProductComponentsResponse, error) { - var reqBody, resBody RetrieveProductComponentsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrievePropertiesBody struct { - Req *types.RetrieveProperties `xml:"urn:vim25 RetrieveProperties,omitempty"` - Res *types.RetrievePropertiesResponse `xml:"urn:vim25 RetrievePropertiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrievePropertiesBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveProperties(ctx context.Context, r soap.RoundTripper, req *types.RetrieveProperties) (*types.RetrievePropertiesResponse, error) { - var reqBody, resBody RetrievePropertiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrievePropertiesExBody struct { - Req *types.RetrievePropertiesEx `xml:"urn:vim25 RetrievePropertiesEx,omitempty"` - Res *types.RetrievePropertiesExResponse `xml:"urn:vim25 RetrievePropertiesExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrievePropertiesExBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrievePropertiesEx(ctx context.Context, r soap.RoundTripper, req *types.RetrievePropertiesEx) (*types.RetrievePropertiesExResponse, error) { - var reqBody, resBody RetrievePropertiesExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveRolePermissionsBody struct { - Req *types.RetrieveRolePermissions `xml:"urn:vim25 RetrieveRolePermissions,omitempty"` - Res *types.RetrieveRolePermissionsResponse `xml:"urn:vim25 RetrieveRolePermissionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveRolePermissionsBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveRolePermissions(ctx context.Context, r soap.RoundTripper, req *types.RetrieveRolePermissions) (*types.RetrieveRolePermissionsResponse, error) { - var reqBody, resBody RetrieveRolePermissionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveSelfSignedClientCertBody struct { - Req *types.RetrieveSelfSignedClientCert `xml:"urn:vim25 RetrieveSelfSignedClientCert,omitempty"` - Res *types.RetrieveSelfSignedClientCertResponse `xml:"urn:vim25 RetrieveSelfSignedClientCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveSelfSignedClientCertBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveSelfSignedClientCert(ctx context.Context, r soap.RoundTripper, req *types.RetrieveSelfSignedClientCert) (*types.RetrieveSelfSignedClientCertResponse, error) { - var reqBody, resBody RetrieveSelfSignedClientCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveServiceContentBody struct { - Req *types.RetrieveServiceContent `xml:"urn:vim25 RetrieveServiceContent,omitempty"` - Res *types.RetrieveServiceContentResponse `xml:"urn:vim25 RetrieveServiceContentResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveServiceContentBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveServiceContent(ctx context.Context, r soap.RoundTripper, req *types.RetrieveServiceContent) (*types.RetrieveServiceContentResponse, error) { - var reqBody, resBody RetrieveServiceContentBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveUserGroupsBody struct { - Req *types.RetrieveUserGroups `xml:"urn:vim25 RetrieveUserGroups,omitempty"` - Res *types.RetrieveUserGroupsResponse `xml:"urn:vim25 RetrieveUserGroupsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveUserGroupsBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveUserGroups(ctx context.Context, r soap.RoundTripper, req *types.RetrieveUserGroups) (*types.RetrieveUserGroupsResponse, error) { - var reqBody, resBody RetrieveUserGroupsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveVStorageObjectBody struct { - Req *types.RetrieveVStorageObject `xml:"urn:vim25 RetrieveVStorageObject,omitempty"` - Res *types.RetrieveVStorageObjectResponse `xml:"urn:vim25 RetrieveVStorageObjectResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveVStorageObjectBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveVStorageObject(ctx context.Context, r soap.RoundTripper, req *types.RetrieveVStorageObject) (*types.RetrieveVStorageObjectResponse, error) { - var reqBody, resBody RetrieveVStorageObjectBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RetrieveVStorageObjectStateBody struct { - Req *types.RetrieveVStorageObjectState `xml:"urn:vim25 RetrieveVStorageObjectState,omitempty"` - Res *types.RetrieveVStorageObjectStateResponse `xml:"urn:vim25 RetrieveVStorageObjectStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RetrieveVStorageObjectStateBody) Fault() *soap.Fault { return b.Fault_ } - -func RetrieveVStorageObjectState(ctx context.Context, r soap.RoundTripper, req *types.RetrieveVStorageObjectState) (*types.RetrieveVStorageObjectStateResponse, error) { - var reqBody, resBody RetrieveVStorageObjectStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RevertToCurrentSnapshot_TaskBody struct { - Req *types.RevertToCurrentSnapshot_Task `xml:"urn:vim25 RevertToCurrentSnapshot_Task,omitempty"` - Res *types.RevertToCurrentSnapshot_TaskResponse `xml:"urn:vim25 RevertToCurrentSnapshot_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RevertToCurrentSnapshot_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RevertToCurrentSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types.RevertToCurrentSnapshot_Task) (*types.RevertToCurrentSnapshot_TaskResponse, error) { - var reqBody, resBody RevertToCurrentSnapshot_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RevertToSnapshot_TaskBody struct { - Req *types.RevertToSnapshot_Task `xml:"urn:vim25 RevertToSnapshot_Task,omitempty"` - Res *types.RevertToSnapshot_TaskResponse `xml:"urn:vim25 RevertToSnapshot_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RevertToSnapshot_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RevertToSnapshot_Task(ctx context.Context, r soap.RoundTripper, req *types.RevertToSnapshot_Task) (*types.RevertToSnapshot_TaskResponse, error) { - var reqBody, resBody RevertToSnapshot_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RewindCollectorBody struct { - Req *types.RewindCollector `xml:"urn:vim25 RewindCollector,omitempty"` - Res *types.RewindCollectorResponse `xml:"urn:vim25 RewindCollectorResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RewindCollectorBody) Fault() *soap.Fault { return b.Fault_ } - -func RewindCollector(ctx context.Context, r soap.RoundTripper, req *types.RewindCollector) (*types.RewindCollectorResponse, error) { - var reqBody, resBody RewindCollectorBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RunScheduledTaskBody struct { - Req *types.RunScheduledTask `xml:"urn:vim25 RunScheduledTask,omitempty"` - Res *types.RunScheduledTaskResponse `xml:"urn:vim25 RunScheduledTaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RunScheduledTaskBody) Fault() *soap.Fault { return b.Fault_ } - -func RunScheduledTask(ctx context.Context, r soap.RoundTripper, req *types.RunScheduledTask) (*types.RunScheduledTaskResponse, error) { - var reqBody, resBody RunScheduledTaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type RunVsanPhysicalDiskDiagnosticsBody struct { - Req *types.RunVsanPhysicalDiskDiagnostics `xml:"urn:vim25 RunVsanPhysicalDiskDiagnostics,omitempty"` - Res *types.RunVsanPhysicalDiskDiagnosticsResponse `xml:"urn:vim25 RunVsanPhysicalDiskDiagnosticsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *RunVsanPhysicalDiskDiagnosticsBody) Fault() *soap.Fault { return b.Fault_ } - -func RunVsanPhysicalDiskDiagnostics(ctx context.Context, r soap.RoundTripper, req *types.RunVsanPhysicalDiskDiagnostics) (*types.RunVsanPhysicalDiskDiagnosticsResponse, error) { - var reqBody, resBody RunVsanPhysicalDiskDiagnosticsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ScanHostPatchV2_TaskBody struct { - Req *types.ScanHostPatchV2_Task `xml:"urn:vim25 ScanHostPatchV2_Task,omitempty"` - Res *types.ScanHostPatchV2_TaskResponse `xml:"urn:vim25 ScanHostPatchV2_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ScanHostPatchV2_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ScanHostPatchV2_Task(ctx context.Context, r soap.RoundTripper, req *types.ScanHostPatchV2_Task) (*types.ScanHostPatchV2_TaskResponse, error) { - var reqBody, resBody ScanHostPatchV2_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ScanHostPatch_TaskBody struct { - Req *types.ScanHostPatch_Task `xml:"urn:vim25 ScanHostPatch_Task,omitempty"` - Res *types.ScanHostPatch_TaskResponse `xml:"urn:vim25 ScanHostPatch_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ScanHostPatch_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ScanHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.ScanHostPatch_Task) (*types.ScanHostPatch_TaskResponse, error) { - var reqBody, resBody ScanHostPatch_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ScheduleReconcileDatastoreInventoryBody struct { - Req *types.ScheduleReconcileDatastoreInventory `xml:"urn:vim25 ScheduleReconcileDatastoreInventory,omitempty"` - Res *types.ScheduleReconcileDatastoreInventoryResponse `xml:"urn:vim25 ScheduleReconcileDatastoreInventoryResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ScheduleReconcileDatastoreInventoryBody) Fault() *soap.Fault { return b.Fault_ } - -func ScheduleReconcileDatastoreInventory(ctx context.Context, r soap.RoundTripper, req *types.ScheduleReconcileDatastoreInventory) (*types.ScheduleReconcileDatastoreInventoryResponse, error) { - var reqBody, resBody ScheduleReconcileDatastoreInventoryBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SearchDatastoreSubFolders_TaskBody struct { - Req *types.SearchDatastoreSubFolders_Task `xml:"urn:vim25 SearchDatastoreSubFolders_Task,omitempty"` - Res *types.SearchDatastoreSubFolders_TaskResponse `xml:"urn:vim25 SearchDatastoreSubFolders_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SearchDatastoreSubFolders_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func SearchDatastoreSubFolders_Task(ctx context.Context, r soap.RoundTripper, req *types.SearchDatastoreSubFolders_Task) (*types.SearchDatastoreSubFolders_TaskResponse, error) { - var reqBody, resBody SearchDatastoreSubFolders_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SearchDatastore_TaskBody struct { - Req *types.SearchDatastore_Task `xml:"urn:vim25 SearchDatastore_Task,omitempty"` - Res *types.SearchDatastore_TaskResponse `xml:"urn:vim25 SearchDatastore_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SearchDatastore_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func SearchDatastore_Task(ctx context.Context, r soap.RoundTripper, req *types.SearchDatastore_Task) (*types.SearchDatastore_TaskResponse, error) { - var reqBody, resBody SearchDatastore_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SelectActivePartitionBody struct { - Req *types.SelectActivePartition `xml:"urn:vim25 SelectActivePartition,omitempty"` - Res *types.SelectActivePartitionResponse `xml:"urn:vim25 SelectActivePartitionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SelectActivePartitionBody) Fault() *soap.Fault { return b.Fault_ } - -func SelectActivePartition(ctx context.Context, r soap.RoundTripper, req *types.SelectActivePartition) (*types.SelectActivePartitionResponse, error) { - var reqBody, resBody SelectActivePartitionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SelectVnicBody struct { - Req *types.SelectVnic `xml:"urn:vim25 SelectVnic,omitempty"` - Res *types.SelectVnicResponse `xml:"urn:vim25 SelectVnicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SelectVnicBody) Fault() *soap.Fault { return b.Fault_ } - -func SelectVnic(ctx context.Context, r soap.RoundTripper, req *types.SelectVnic) (*types.SelectVnicResponse, error) { - var reqBody, resBody SelectVnicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SelectVnicForNicTypeBody struct { - Req *types.SelectVnicForNicType `xml:"urn:vim25 SelectVnicForNicType,omitempty"` - Res *types.SelectVnicForNicTypeResponse `xml:"urn:vim25 SelectVnicForNicTypeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SelectVnicForNicTypeBody) Fault() *soap.Fault { return b.Fault_ } - -func SelectVnicForNicType(ctx context.Context, r soap.RoundTripper, req *types.SelectVnicForNicType) (*types.SelectVnicForNicTypeResponse, error) { - var reqBody, resBody SelectVnicForNicTypeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SendNMIBody struct { - Req *types.SendNMI `xml:"urn:vim25 SendNMI,omitempty"` - Res *types.SendNMIResponse `xml:"urn:vim25 SendNMIResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SendNMIBody) Fault() *soap.Fault { return b.Fault_ } - -func SendNMI(ctx context.Context, r soap.RoundTripper, req *types.SendNMI) (*types.SendNMIResponse, error) { - var reqBody, resBody SendNMIBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SendTestNotificationBody struct { - Req *types.SendTestNotification `xml:"urn:vim25 SendTestNotification,omitempty"` - Res *types.SendTestNotificationResponse `xml:"urn:vim25 SendTestNotificationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SendTestNotificationBody) Fault() *soap.Fault { return b.Fault_ } - -func SendTestNotification(ctx context.Context, r soap.RoundTripper, req *types.SendTestNotification) (*types.SendTestNotificationResponse, error) { - var reqBody, resBody SendTestNotificationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SessionIsActiveBody struct { - Req *types.SessionIsActive `xml:"urn:vim25 SessionIsActive,omitempty"` - Res *types.SessionIsActiveResponse `xml:"urn:vim25 SessionIsActiveResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SessionIsActiveBody) Fault() *soap.Fault { return b.Fault_ } - -func SessionIsActive(ctx context.Context, r soap.RoundTripper, req *types.SessionIsActive) (*types.SessionIsActiveResponse, error) { - var reqBody, resBody SessionIsActiveBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetCollectorPageSizeBody struct { - Req *types.SetCollectorPageSize `xml:"urn:vim25 SetCollectorPageSize,omitempty"` - Res *types.SetCollectorPageSizeResponse `xml:"urn:vim25 SetCollectorPageSizeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetCollectorPageSizeBody) Fault() *soap.Fault { return b.Fault_ } - -func SetCollectorPageSize(ctx context.Context, r soap.RoundTripper, req *types.SetCollectorPageSize) (*types.SetCollectorPageSizeResponse, error) { - var reqBody, resBody SetCollectorPageSizeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetDisplayTopologyBody struct { - Req *types.SetDisplayTopology `xml:"urn:vim25 SetDisplayTopology,omitempty"` - Res *types.SetDisplayTopologyResponse `xml:"urn:vim25 SetDisplayTopologyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetDisplayTopologyBody) Fault() *soap.Fault { return b.Fault_ } - -func SetDisplayTopology(ctx context.Context, r soap.RoundTripper, req *types.SetDisplayTopology) (*types.SetDisplayTopologyResponse, error) { - var reqBody, resBody SetDisplayTopologyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetEntityPermissionsBody struct { - Req *types.SetEntityPermissions `xml:"urn:vim25 SetEntityPermissions,omitempty"` - Res *types.SetEntityPermissionsResponse `xml:"urn:vim25 SetEntityPermissionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetEntityPermissionsBody) Fault() *soap.Fault { return b.Fault_ } - -func SetEntityPermissions(ctx context.Context, r soap.RoundTripper, req *types.SetEntityPermissions) (*types.SetEntityPermissionsResponse, error) { - var reqBody, resBody SetEntityPermissionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetExtensionCertificateBody struct { - Req *types.SetExtensionCertificate `xml:"urn:vim25 SetExtensionCertificate,omitempty"` - Res *types.SetExtensionCertificateResponse `xml:"urn:vim25 SetExtensionCertificateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetExtensionCertificateBody) Fault() *soap.Fault { return b.Fault_ } - -func SetExtensionCertificate(ctx context.Context, r soap.RoundTripper, req *types.SetExtensionCertificate) (*types.SetExtensionCertificateResponse, error) { - var reqBody, resBody SetExtensionCertificateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetFieldBody struct { - Req *types.SetField `xml:"urn:vim25 SetField,omitempty"` - Res *types.SetFieldResponse `xml:"urn:vim25 SetFieldResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetFieldBody) Fault() *soap.Fault { return b.Fault_ } - -func SetField(ctx context.Context, r soap.RoundTripper, req *types.SetField) (*types.SetFieldResponse, error) { - var reqBody, resBody SetFieldBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetLicenseEditionBody struct { - Req *types.SetLicenseEdition `xml:"urn:vim25 SetLicenseEdition,omitempty"` - Res *types.SetLicenseEditionResponse `xml:"urn:vim25 SetLicenseEditionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetLicenseEditionBody) Fault() *soap.Fault { return b.Fault_ } - -func SetLicenseEdition(ctx context.Context, r soap.RoundTripper, req *types.SetLicenseEdition) (*types.SetLicenseEditionResponse, error) { - var reqBody, resBody SetLicenseEditionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetLocaleBody struct { - Req *types.SetLocale `xml:"urn:vim25 SetLocale,omitempty"` - Res *types.SetLocaleResponse `xml:"urn:vim25 SetLocaleResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetLocaleBody) Fault() *soap.Fault { return b.Fault_ } - -func SetLocale(ctx context.Context, r soap.RoundTripper, req *types.SetLocale) (*types.SetLocaleResponse, error) { - var reqBody, resBody SetLocaleBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetMultipathLunPolicyBody struct { - Req *types.SetMultipathLunPolicy `xml:"urn:vim25 SetMultipathLunPolicy,omitempty"` - Res *types.SetMultipathLunPolicyResponse `xml:"urn:vim25 SetMultipathLunPolicyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetMultipathLunPolicyBody) Fault() *soap.Fault { return b.Fault_ } - -func SetMultipathLunPolicy(ctx context.Context, r soap.RoundTripper, req *types.SetMultipathLunPolicy) (*types.SetMultipathLunPolicyResponse, error) { - var reqBody, resBody SetMultipathLunPolicyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetNFSUserBody struct { - Req *types.SetNFSUser `xml:"urn:vim25 SetNFSUser,omitempty"` - Res *types.SetNFSUserResponse `xml:"urn:vim25 SetNFSUserResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetNFSUserBody) Fault() *soap.Fault { return b.Fault_ } - -func SetNFSUser(ctx context.Context, r soap.RoundTripper, req *types.SetNFSUser) (*types.SetNFSUserResponse, error) { - var reqBody, resBody SetNFSUserBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetPublicKeyBody struct { - Req *types.SetPublicKey `xml:"urn:vim25 SetPublicKey,omitempty"` - Res *types.SetPublicKeyResponse `xml:"urn:vim25 SetPublicKeyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetPublicKeyBody) Fault() *soap.Fault { return b.Fault_ } - -func SetPublicKey(ctx context.Context, r soap.RoundTripper, req *types.SetPublicKey) (*types.SetPublicKeyResponse, error) { - var reqBody, resBody SetPublicKeyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetRegistryValueInGuestBody struct { - Req *types.SetRegistryValueInGuest `xml:"urn:vim25 SetRegistryValueInGuest,omitempty"` - Res *types.SetRegistryValueInGuestResponse `xml:"urn:vim25 SetRegistryValueInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetRegistryValueInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func SetRegistryValueInGuest(ctx context.Context, r soap.RoundTripper, req *types.SetRegistryValueInGuest) (*types.SetRegistryValueInGuestResponse, error) { - var reqBody, resBody SetRegistryValueInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetScreenResolutionBody struct { - Req *types.SetScreenResolution `xml:"urn:vim25 SetScreenResolution,omitempty"` - Res *types.SetScreenResolutionResponse `xml:"urn:vim25 SetScreenResolutionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetScreenResolutionBody) Fault() *soap.Fault { return b.Fault_ } - -func SetScreenResolution(ctx context.Context, r soap.RoundTripper, req *types.SetScreenResolution) (*types.SetScreenResolutionResponse, error) { - var reqBody, resBody SetScreenResolutionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetTaskDescriptionBody struct { - Req *types.SetTaskDescription `xml:"urn:vim25 SetTaskDescription,omitempty"` - Res *types.SetTaskDescriptionResponse `xml:"urn:vim25 SetTaskDescriptionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetTaskDescriptionBody) Fault() *soap.Fault { return b.Fault_ } - -func SetTaskDescription(ctx context.Context, r soap.RoundTripper, req *types.SetTaskDescription) (*types.SetTaskDescriptionResponse, error) { - var reqBody, resBody SetTaskDescriptionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetTaskStateBody struct { - Req *types.SetTaskState `xml:"urn:vim25 SetTaskState,omitempty"` - Res *types.SetTaskStateResponse `xml:"urn:vim25 SetTaskStateResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetTaskStateBody) Fault() *soap.Fault { return b.Fault_ } - -func SetTaskState(ctx context.Context, r soap.RoundTripper, req *types.SetTaskState) (*types.SetTaskStateResponse, error) { - var reqBody, resBody SetTaskStateBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SetVirtualDiskUuidBody struct { - Req *types.SetVirtualDiskUuid `xml:"urn:vim25 SetVirtualDiskUuid,omitempty"` - Res *types.SetVirtualDiskUuidResponse `xml:"urn:vim25 SetVirtualDiskUuidResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SetVirtualDiskUuidBody) Fault() *soap.Fault { return b.Fault_ } - -func SetVirtualDiskUuid(ctx context.Context, r soap.RoundTripper, req *types.SetVirtualDiskUuid) (*types.SetVirtualDiskUuidResponse, error) { - var reqBody, resBody SetVirtualDiskUuidBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ShrinkVirtualDisk_TaskBody struct { - Req *types.ShrinkVirtualDisk_Task `xml:"urn:vim25 ShrinkVirtualDisk_Task,omitempty"` - Res *types.ShrinkVirtualDisk_TaskResponse `xml:"urn:vim25 ShrinkVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ShrinkVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ShrinkVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.ShrinkVirtualDisk_Task) (*types.ShrinkVirtualDisk_TaskResponse, error) { - var reqBody, resBody ShrinkVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ShutdownGuestBody struct { - Req *types.ShutdownGuest `xml:"urn:vim25 ShutdownGuest,omitempty"` - Res *types.ShutdownGuestResponse `xml:"urn:vim25 ShutdownGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ShutdownGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ShutdownGuest(ctx context.Context, r soap.RoundTripper, req *types.ShutdownGuest) (*types.ShutdownGuestResponse, error) { - var reqBody, resBody ShutdownGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ShutdownHost_TaskBody struct { - Req *types.ShutdownHost_Task `xml:"urn:vim25 ShutdownHost_Task,omitempty"` - Res *types.ShutdownHost_TaskResponse `xml:"urn:vim25 ShutdownHost_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ShutdownHost_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ShutdownHost_Task(ctx context.Context, r soap.RoundTripper, req *types.ShutdownHost_Task) (*types.ShutdownHost_TaskResponse, error) { - var reqBody, resBody ShutdownHost_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StageHostPatch_TaskBody struct { - Req *types.StageHostPatch_Task `xml:"urn:vim25 StageHostPatch_Task,omitempty"` - Res *types.StageHostPatch_TaskResponse `xml:"urn:vim25 StageHostPatch_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StageHostPatch_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func StageHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.StageHostPatch_Task) (*types.StageHostPatch_TaskResponse, error) { - var reqBody, resBody StageHostPatch_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StampAllRulesWithUuid_TaskBody struct { - Req *types.StampAllRulesWithUuid_Task `xml:"urn:vim25 StampAllRulesWithUuid_Task,omitempty"` - Res *types.StampAllRulesWithUuid_TaskResponse `xml:"urn:vim25 StampAllRulesWithUuid_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StampAllRulesWithUuid_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func StampAllRulesWithUuid_Task(ctx context.Context, r soap.RoundTripper, req *types.StampAllRulesWithUuid_Task) (*types.StampAllRulesWithUuid_TaskResponse, error) { - var reqBody, resBody StampAllRulesWithUuid_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StandbyGuestBody struct { - Req *types.StandbyGuest `xml:"urn:vim25 StandbyGuest,omitempty"` - Res *types.StandbyGuestResponse `xml:"urn:vim25 StandbyGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StandbyGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func StandbyGuest(ctx context.Context, r soap.RoundTripper, req *types.StandbyGuest) (*types.StandbyGuestResponse, error) { - var reqBody, resBody StandbyGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StartProgramInGuestBody struct { - Req *types.StartProgramInGuest `xml:"urn:vim25 StartProgramInGuest,omitempty"` - Res *types.StartProgramInGuestResponse `xml:"urn:vim25 StartProgramInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StartProgramInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func StartProgramInGuest(ctx context.Context, r soap.RoundTripper, req *types.StartProgramInGuest) (*types.StartProgramInGuestResponse, error) { - var reqBody, resBody StartProgramInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StartRecording_TaskBody struct { - Req *types.StartRecording_Task `xml:"urn:vim25 StartRecording_Task,omitempty"` - Res *types.StartRecording_TaskResponse `xml:"urn:vim25 StartRecording_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StartRecording_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func StartRecording_Task(ctx context.Context, r soap.RoundTripper, req *types.StartRecording_Task) (*types.StartRecording_TaskResponse, error) { - var reqBody, resBody StartRecording_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StartReplaying_TaskBody struct { - Req *types.StartReplaying_Task `xml:"urn:vim25 StartReplaying_Task,omitempty"` - Res *types.StartReplaying_TaskResponse `xml:"urn:vim25 StartReplaying_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StartReplaying_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func StartReplaying_Task(ctx context.Context, r soap.RoundTripper, req *types.StartReplaying_Task) (*types.StartReplaying_TaskResponse, error) { - var reqBody, resBody StartReplaying_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StartServiceBody struct { - Req *types.StartService `xml:"urn:vim25 StartService,omitempty"` - Res *types.StartServiceResponse `xml:"urn:vim25 StartServiceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StartServiceBody) Fault() *soap.Fault { return b.Fault_ } - -func StartService(ctx context.Context, r soap.RoundTripper, req *types.StartService) (*types.StartServiceResponse, error) { - var reqBody, resBody StartServiceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StopRecording_TaskBody struct { - Req *types.StopRecording_Task `xml:"urn:vim25 StopRecording_Task,omitempty"` - Res *types.StopRecording_TaskResponse `xml:"urn:vim25 StopRecording_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StopRecording_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func StopRecording_Task(ctx context.Context, r soap.RoundTripper, req *types.StopRecording_Task) (*types.StopRecording_TaskResponse, error) { - var reqBody, resBody StopRecording_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StopReplaying_TaskBody struct { - Req *types.StopReplaying_Task `xml:"urn:vim25 StopReplaying_Task,omitempty"` - Res *types.StopReplaying_TaskResponse `xml:"urn:vim25 StopReplaying_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StopReplaying_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func StopReplaying_Task(ctx context.Context, r soap.RoundTripper, req *types.StopReplaying_Task) (*types.StopReplaying_TaskResponse, error) { - var reqBody, resBody StopReplaying_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type StopServiceBody struct { - Req *types.StopService `xml:"urn:vim25 StopService,omitempty"` - Res *types.StopServiceResponse `xml:"urn:vim25 StopServiceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *StopServiceBody) Fault() *soap.Fault { return b.Fault_ } - -func StopService(ctx context.Context, r soap.RoundTripper, req *types.StopService) (*types.StopServiceResponse, error) { - var reqBody, resBody StopServiceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SuspendVApp_TaskBody struct { - Req *types.SuspendVApp_Task `xml:"urn:vim25 SuspendVApp_Task,omitempty"` - Res *types.SuspendVApp_TaskResponse `xml:"urn:vim25 SuspendVApp_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SuspendVApp_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func SuspendVApp_Task(ctx context.Context, r soap.RoundTripper, req *types.SuspendVApp_Task) (*types.SuspendVApp_TaskResponse, error) { - var reqBody, resBody SuspendVApp_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type SuspendVM_TaskBody struct { - Req *types.SuspendVM_Task `xml:"urn:vim25 SuspendVM_Task,omitempty"` - Res *types.SuspendVM_TaskResponse `xml:"urn:vim25 SuspendVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *SuspendVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func SuspendVM_Task(ctx context.Context, r soap.RoundTripper, req *types.SuspendVM_Task) (*types.SuspendVM_TaskResponse, error) { - var reqBody, resBody SuspendVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type TerminateFaultTolerantVM_TaskBody struct { - Req *types.TerminateFaultTolerantVM_Task `xml:"urn:vim25 TerminateFaultTolerantVM_Task,omitempty"` - Res *types.TerminateFaultTolerantVM_TaskResponse `xml:"urn:vim25 TerminateFaultTolerantVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *TerminateFaultTolerantVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func TerminateFaultTolerantVM_Task(ctx context.Context, r soap.RoundTripper, req *types.TerminateFaultTolerantVM_Task) (*types.TerminateFaultTolerantVM_TaskResponse, error) { - var reqBody, resBody TerminateFaultTolerantVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type TerminateProcessInGuestBody struct { - Req *types.TerminateProcessInGuest `xml:"urn:vim25 TerminateProcessInGuest,omitempty"` - Res *types.TerminateProcessInGuestResponse `xml:"urn:vim25 TerminateProcessInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *TerminateProcessInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func TerminateProcessInGuest(ctx context.Context, r soap.RoundTripper, req *types.TerminateProcessInGuest) (*types.TerminateProcessInGuestResponse, error) { - var reqBody, resBody TerminateProcessInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type TerminateSessionBody struct { - Req *types.TerminateSession `xml:"urn:vim25 TerminateSession,omitempty"` - Res *types.TerminateSessionResponse `xml:"urn:vim25 TerminateSessionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *TerminateSessionBody) Fault() *soap.Fault { return b.Fault_ } - -func TerminateSession(ctx context.Context, r soap.RoundTripper, req *types.TerminateSession) (*types.TerminateSessionResponse, error) { - var reqBody, resBody TerminateSessionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type TerminateVMBody struct { - Req *types.TerminateVM `xml:"urn:vim25 TerminateVM,omitempty"` - Res *types.TerminateVMResponse `xml:"urn:vim25 TerminateVMResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *TerminateVMBody) Fault() *soap.Fault { return b.Fault_ } - -func TerminateVM(ctx context.Context, r soap.RoundTripper, req *types.TerminateVM) (*types.TerminateVMResponse, error) { - var reqBody, resBody TerminateVMBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type TurnDiskLocatorLedOff_TaskBody struct { - Req *types.TurnDiskLocatorLedOff_Task `xml:"urn:vim25 TurnDiskLocatorLedOff_Task,omitempty"` - Res *types.TurnDiskLocatorLedOff_TaskResponse `xml:"urn:vim25 TurnDiskLocatorLedOff_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *TurnDiskLocatorLedOff_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func TurnDiskLocatorLedOff_Task(ctx context.Context, r soap.RoundTripper, req *types.TurnDiskLocatorLedOff_Task) (*types.TurnDiskLocatorLedOff_TaskResponse, error) { - var reqBody, resBody TurnDiskLocatorLedOff_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type TurnDiskLocatorLedOn_TaskBody struct { - Req *types.TurnDiskLocatorLedOn_Task `xml:"urn:vim25 TurnDiskLocatorLedOn_Task,omitempty"` - Res *types.TurnDiskLocatorLedOn_TaskResponse `xml:"urn:vim25 TurnDiskLocatorLedOn_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *TurnDiskLocatorLedOn_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func TurnDiskLocatorLedOn_Task(ctx context.Context, r soap.RoundTripper, req *types.TurnDiskLocatorLedOn_Task) (*types.TurnDiskLocatorLedOn_TaskResponse, error) { - var reqBody, resBody TurnDiskLocatorLedOn_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type TurnOffFaultToleranceForVM_TaskBody struct { - Req *types.TurnOffFaultToleranceForVM_Task `xml:"urn:vim25 TurnOffFaultToleranceForVM_Task,omitempty"` - Res *types.TurnOffFaultToleranceForVM_TaskResponse `xml:"urn:vim25 TurnOffFaultToleranceForVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *TurnOffFaultToleranceForVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func TurnOffFaultToleranceForVM_Task(ctx context.Context, r soap.RoundTripper, req *types.TurnOffFaultToleranceForVM_Task) (*types.TurnOffFaultToleranceForVM_TaskResponse, error) { - var reqBody, resBody TurnOffFaultToleranceForVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnassignUserFromGroupBody struct { - Req *types.UnassignUserFromGroup `xml:"urn:vim25 UnassignUserFromGroup,omitempty"` - Res *types.UnassignUserFromGroupResponse `xml:"urn:vim25 UnassignUserFromGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnassignUserFromGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func UnassignUserFromGroup(ctx context.Context, r soap.RoundTripper, req *types.UnassignUserFromGroup) (*types.UnassignUserFromGroupResponse, error) { - var reqBody, resBody UnassignUserFromGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnbindVnicBody struct { - Req *types.UnbindVnic `xml:"urn:vim25 UnbindVnic,omitempty"` - Res *types.UnbindVnicResponse `xml:"urn:vim25 UnbindVnicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnbindVnicBody) Fault() *soap.Fault { return b.Fault_ } - -func UnbindVnic(ctx context.Context, r soap.RoundTripper, req *types.UnbindVnic) (*types.UnbindVnicResponse, error) { - var reqBody, resBody UnbindVnicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UninstallHostPatch_TaskBody struct { - Req *types.UninstallHostPatch_Task `xml:"urn:vim25 UninstallHostPatch_Task,omitempty"` - Res *types.UninstallHostPatch_TaskResponse `xml:"urn:vim25 UninstallHostPatch_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UninstallHostPatch_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UninstallHostPatch_Task(ctx context.Context, r soap.RoundTripper, req *types.UninstallHostPatch_Task) (*types.UninstallHostPatch_TaskResponse, error) { - var reqBody, resBody UninstallHostPatch_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UninstallIoFilter_TaskBody struct { - Req *types.UninstallIoFilter_Task `xml:"urn:vim25 UninstallIoFilter_Task,omitempty"` - Res *types.UninstallIoFilter_TaskResponse `xml:"urn:vim25 UninstallIoFilter_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UninstallIoFilter_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UninstallIoFilter_Task(ctx context.Context, r soap.RoundTripper, req *types.UninstallIoFilter_Task) (*types.UninstallIoFilter_TaskResponse, error) { - var reqBody, resBody UninstallIoFilter_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UninstallServiceBody struct { - Req *types.UninstallService `xml:"urn:vim25 UninstallService,omitempty"` - Res *types.UninstallServiceResponse `xml:"urn:vim25 UninstallServiceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UninstallServiceBody) Fault() *soap.Fault { return b.Fault_ } - -func UninstallService(ctx context.Context, r soap.RoundTripper, req *types.UninstallService) (*types.UninstallServiceResponse, error) { - var reqBody, resBody UninstallServiceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnmapVmfsVolumeEx_TaskBody struct { - Req *types.UnmapVmfsVolumeEx_Task `xml:"urn:vim25 UnmapVmfsVolumeEx_Task,omitempty"` - Res *types.UnmapVmfsVolumeEx_TaskResponse `xml:"urn:vim25 UnmapVmfsVolumeEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnmapVmfsVolumeEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UnmapVmfsVolumeEx_Task(ctx context.Context, r soap.RoundTripper, req *types.UnmapVmfsVolumeEx_Task) (*types.UnmapVmfsVolumeEx_TaskResponse, error) { - var reqBody, resBody UnmapVmfsVolumeEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnmountDiskMapping_TaskBody struct { - Req *types.UnmountDiskMapping_Task `xml:"urn:vim25 UnmountDiskMapping_Task,omitempty"` - Res *types.UnmountDiskMapping_TaskResponse `xml:"urn:vim25 UnmountDiskMapping_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnmountDiskMapping_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UnmountDiskMapping_Task(ctx context.Context, r soap.RoundTripper, req *types.UnmountDiskMapping_Task) (*types.UnmountDiskMapping_TaskResponse, error) { - var reqBody, resBody UnmountDiskMapping_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnmountForceMountedVmfsVolumeBody struct { - Req *types.UnmountForceMountedVmfsVolume `xml:"urn:vim25 UnmountForceMountedVmfsVolume,omitempty"` - Res *types.UnmountForceMountedVmfsVolumeResponse `xml:"urn:vim25 UnmountForceMountedVmfsVolumeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnmountForceMountedVmfsVolumeBody) Fault() *soap.Fault { return b.Fault_ } - -func UnmountForceMountedVmfsVolume(ctx context.Context, r soap.RoundTripper, req *types.UnmountForceMountedVmfsVolume) (*types.UnmountForceMountedVmfsVolumeResponse, error) { - var reqBody, resBody UnmountForceMountedVmfsVolumeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnmountToolsInstallerBody struct { - Req *types.UnmountToolsInstaller `xml:"urn:vim25 UnmountToolsInstaller,omitempty"` - Res *types.UnmountToolsInstallerResponse `xml:"urn:vim25 UnmountToolsInstallerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnmountToolsInstallerBody) Fault() *soap.Fault { return b.Fault_ } - -func UnmountToolsInstaller(ctx context.Context, r soap.RoundTripper, req *types.UnmountToolsInstaller) (*types.UnmountToolsInstallerResponse, error) { - var reqBody, resBody UnmountToolsInstallerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnmountVffsVolumeBody struct { - Req *types.UnmountVffsVolume `xml:"urn:vim25 UnmountVffsVolume,omitempty"` - Res *types.UnmountVffsVolumeResponse `xml:"urn:vim25 UnmountVffsVolumeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnmountVffsVolumeBody) Fault() *soap.Fault { return b.Fault_ } - -func UnmountVffsVolume(ctx context.Context, r soap.RoundTripper, req *types.UnmountVffsVolume) (*types.UnmountVffsVolumeResponse, error) { - var reqBody, resBody UnmountVffsVolumeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnmountVmfsVolumeBody struct { - Req *types.UnmountVmfsVolume `xml:"urn:vim25 UnmountVmfsVolume,omitempty"` - Res *types.UnmountVmfsVolumeResponse `xml:"urn:vim25 UnmountVmfsVolumeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnmountVmfsVolumeBody) Fault() *soap.Fault { return b.Fault_ } - -func UnmountVmfsVolume(ctx context.Context, r soap.RoundTripper, req *types.UnmountVmfsVolume) (*types.UnmountVmfsVolumeResponse, error) { - var reqBody, resBody UnmountVmfsVolumeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnmountVmfsVolumeEx_TaskBody struct { - Req *types.UnmountVmfsVolumeEx_Task `xml:"urn:vim25 UnmountVmfsVolumeEx_Task,omitempty"` - Res *types.UnmountVmfsVolumeEx_TaskResponse `xml:"urn:vim25 UnmountVmfsVolumeEx_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnmountVmfsVolumeEx_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UnmountVmfsVolumeEx_Task(ctx context.Context, r soap.RoundTripper, req *types.UnmountVmfsVolumeEx_Task) (*types.UnmountVmfsVolumeEx_TaskResponse, error) { - var reqBody, resBody UnmountVmfsVolumeEx_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnregisterAndDestroy_TaskBody struct { - Req *types.UnregisterAndDestroy_Task `xml:"urn:vim25 UnregisterAndDestroy_Task,omitempty"` - Res *types.UnregisterAndDestroy_TaskResponse `xml:"urn:vim25 UnregisterAndDestroy_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnregisterAndDestroy_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UnregisterAndDestroy_Task(ctx context.Context, r soap.RoundTripper, req *types.UnregisterAndDestroy_Task) (*types.UnregisterAndDestroy_TaskResponse, error) { - var reqBody, resBody UnregisterAndDestroy_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnregisterExtensionBody struct { - Req *types.UnregisterExtension `xml:"urn:vim25 UnregisterExtension,omitempty"` - Res *types.UnregisterExtensionResponse `xml:"urn:vim25 UnregisterExtensionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnregisterExtensionBody) Fault() *soap.Fault { return b.Fault_ } - -func UnregisterExtension(ctx context.Context, r soap.RoundTripper, req *types.UnregisterExtension) (*types.UnregisterExtensionResponse, error) { - var reqBody, resBody UnregisterExtensionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnregisterHealthUpdateProviderBody struct { - Req *types.UnregisterHealthUpdateProvider `xml:"urn:vim25 UnregisterHealthUpdateProvider,omitempty"` - Res *types.UnregisterHealthUpdateProviderResponse `xml:"urn:vim25 UnregisterHealthUpdateProviderResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnregisterHealthUpdateProviderBody) Fault() *soap.Fault { return b.Fault_ } - -func UnregisterHealthUpdateProvider(ctx context.Context, r soap.RoundTripper, req *types.UnregisterHealthUpdateProvider) (*types.UnregisterHealthUpdateProviderResponse, error) { - var reqBody, resBody UnregisterHealthUpdateProviderBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UnregisterVMBody struct { - Req *types.UnregisterVM `xml:"urn:vim25 UnregisterVM,omitempty"` - Res *types.UnregisterVMResponse `xml:"urn:vim25 UnregisterVMResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UnregisterVMBody) Fault() *soap.Fault { return b.Fault_ } - -func UnregisterVM(ctx context.Context, r soap.RoundTripper, req *types.UnregisterVM) (*types.UnregisterVMResponse, error) { - var reqBody, resBody UnregisterVMBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateAnswerFile_TaskBody struct { - Req *types.UpdateAnswerFile_Task `xml:"urn:vim25 UpdateAnswerFile_Task,omitempty"` - Res *types.UpdateAnswerFile_TaskResponse `xml:"urn:vim25 UpdateAnswerFile_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateAnswerFile_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateAnswerFile_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateAnswerFile_Task) (*types.UpdateAnswerFile_TaskResponse, error) { - var reqBody, resBody UpdateAnswerFile_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateAssignedLicenseBody struct { - Req *types.UpdateAssignedLicense `xml:"urn:vim25 UpdateAssignedLicense,omitempty"` - Res *types.UpdateAssignedLicenseResponse `xml:"urn:vim25 UpdateAssignedLicenseResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateAssignedLicenseBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateAssignedLicense(ctx context.Context, r soap.RoundTripper, req *types.UpdateAssignedLicense) (*types.UpdateAssignedLicenseResponse, error) { - var reqBody, resBody UpdateAssignedLicenseBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateAuthorizationRoleBody struct { - Req *types.UpdateAuthorizationRole `xml:"urn:vim25 UpdateAuthorizationRole,omitempty"` - Res *types.UpdateAuthorizationRoleResponse `xml:"urn:vim25 UpdateAuthorizationRoleResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateAuthorizationRoleBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateAuthorizationRole(ctx context.Context, r soap.RoundTripper, req *types.UpdateAuthorizationRole) (*types.UpdateAuthorizationRoleResponse, error) { - var reqBody, resBody UpdateAuthorizationRoleBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateBootDeviceBody struct { - Req *types.UpdateBootDevice `xml:"urn:vim25 UpdateBootDevice,omitempty"` - Res *types.UpdateBootDeviceResponse `xml:"urn:vim25 UpdateBootDeviceResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateBootDeviceBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateBootDevice(ctx context.Context, r soap.RoundTripper, req *types.UpdateBootDevice) (*types.UpdateBootDeviceResponse, error) { - var reqBody, resBody UpdateBootDeviceBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateChildResourceConfigurationBody struct { - Req *types.UpdateChildResourceConfiguration `xml:"urn:vim25 UpdateChildResourceConfiguration,omitempty"` - Res *types.UpdateChildResourceConfigurationResponse `xml:"urn:vim25 UpdateChildResourceConfigurationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateChildResourceConfigurationBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateChildResourceConfiguration(ctx context.Context, r soap.RoundTripper, req *types.UpdateChildResourceConfiguration) (*types.UpdateChildResourceConfigurationResponse, error) { - var reqBody, resBody UpdateChildResourceConfigurationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateClusterProfileBody struct { - Req *types.UpdateClusterProfile `xml:"urn:vim25 UpdateClusterProfile,omitempty"` - Res *types.UpdateClusterProfileResponse `xml:"urn:vim25 UpdateClusterProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateClusterProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateClusterProfile(ctx context.Context, r soap.RoundTripper, req *types.UpdateClusterProfile) (*types.UpdateClusterProfileResponse, error) { - var reqBody, resBody UpdateClusterProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateConfigBody struct { - Req *types.UpdateConfig `xml:"urn:vim25 UpdateConfig,omitempty"` - Res *types.UpdateConfigResponse `xml:"urn:vim25 UpdateConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateConfig) (*types.UpdateConfigResponse, error) { - var reqBody, resBody UpdateConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateConsoleIpRouteConfigBody struct { - Req *types.UpdateConsoleIpRouteConfig `xml:"urn:vim25 UpdateConsoleIpRouteConfig,omitempty"` - Res *types.UpdateConsoleIpRouteConfigResponse `xml:"urn:vim25 UpdateConsoleIpRouteConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateConsoleIpRouteConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateConsoleIpRouteConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateConsoleIpRouteConfig) (*types.UpdateConsoleIpRouteConfigResponse, error) { - var reqBody, resBody UpdateConsoleIpRouteConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateCounterLevelMappingBody struct { - Req *types.UpdateCounterLevelMapping `xml:"urn:vim25 UpdateCounterLevelMapping,omitempty"` - Res *types.UpdateCounterLevelMappingResponse `xml:"urn:vim25 UpdateCounterLevelMappingResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateCounterLevelMappingBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateCounterLevelMapping(ctx context.Context, r soap.RoundTripper, req *types.UpdateCounterLevelMapping) (*types.UpdateCounterLevelMappingResponse, error) { - var reqBody, resBody UpdateCounterLevelMappingBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDVSHealthCheckConfig_TaskBody struct { - Req *types.UpdateDVSHealthCheckConfig_Task `xml:"urn:vim25 UpdateDVSHealthCheckConfig_Task,omitempty"` - Res *types.UpdateDVSHealthCheckConfig_TaskResponse `xml:"urn:vim25 UpdateDVSHealthCheckConfig_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDVSHealthCheckConfig_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDVSHealthCheckConfig_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateDVSHealthCheckConfig_Task) (*types.UpdateDVSHealthCheckConfig_TaskResponse, error) { - var reqBody, resBody UpdateDVSHealthCheckConfig_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDVSLacpGroupConfig_TaskBody struct { - Req *types.UpdateDVSLacpGroupConfig_Task `xml:"urn:vim25 UpdateDVSLacpGroupConfig_Task,omitempty"` - Res *types.UpdateDVSLacpGroupConfig_TaskResponse `xml:"urn:vim25 UpdateDVSLacpGroupConfig_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDVSLacpGroupConfig_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDVSLacpGroupConfig_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateDVSLacpGroupConfig_Task) (*types.UpdateDVSLacpGroupConfig_TaskResponse, error) { - var reqBody, resBody UpdateDVSLacpGroupConfig_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDateTimeBody struct { - Req *types.UpdateDateTime `xml:"urn:vim25 UpdateDateTime,omitempty"` - Res *types.UpdateDateTimeResponse `xml:"urn:vim25 UpdateDateTimeResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDateTimeBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDateTime(ctx context.Context, r soap.RoundTripper, req *types.UpdateDateTime) (*types.UpdateDateTimeResponse, error) { - var reqBody, resBody UpdateDateTimeBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDateTimeConfigBody struct { - Req *types.UpdateDateTimeConfig `xml:"urn:vim25 UpdateDateTimeConfig,omitempty"` - Res *types.UpdateDateTimeConfigResponse `xml:"urn:vim25 UpdateDateTimeConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDateTimeConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDateTimeConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateDateTimeConfig) (*types.UpdateDateTimeConfigResponse, error) { - var reqBody, resBody UpdateDateTimeConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDefaultPolicyBody struct { - Req *types.UpdateDefaultPolicy `xml:"urn:vim25 UpdateDefaultPolicy,omitempty"` - Res *types.UpdateDefaultPolicyResponse `xml:"urn:vim25 UpdateDefaultPolicyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDefaultPolicyBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDefaultPolicy(ctx context.Context, r soap.RoundTripper, req *types.UpdateDefaultPolicy) (*types.UpdateDefaultPolicyResponse, error) { - var reqBody, resBody UpdateDefaultPolicyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDiskPartitionsBody struct { - Req *types.UpdateDiskPartitions `xml:"urn:vim25 UpdateDiskPartitions,omitempty"` - Res *types.UpdateDiskPartitionsResponse `xml:"urn:vim25 UpdateDiskPartitionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDiskPartitionsBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDiskPartitions(ctx context.Context, r soap.RoundTripper, req *types.UpdateDiskPartitions) (*types.UpdateDiskPartitionsResponse, error) { - var reqBody, resBody UpdateDiskPartitionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDnsConfigBody struct { - Req *types.UpdateDnsConfig `xml:"urn:vim25 UpdateDnsConfig,omitempty"` - Res *types.UpdateDnsConfigResponse `xml:"urn:vim25 UpdateDnsConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDnsConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDnsConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateDnsConfig) (*types.UpdateDnsConfigResponse, error) { - var reqBody, resBody UpdateDnsConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateDvsCapabilityBody struct { - Req *types.UpdateDvsCapability `xml:"urn:vim25 UpdateDvsCapability,omitempty"` - Res *types.UpdateDvsCapabilityResponse `xml:"urn:vim25 UpdateDvsCapabilityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateDvsCapabilityBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateDvsCapability(ctx context.Context, r soap.RoundTripper, req *types.UpdateDvsCapability) (*types.UpdateDvsCapabilityResponse, error) { - var reqBody, resBody UpdateDvsCapabilityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateExtensionBody struct { - Req *types.UpdateExtension `xml:"urn:vim25 UpdateExtension,omitempty"` - Res *types.UpdateExtensionResponse `xml:"urn:vim25 UpdateExtensionResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateExtensionBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateExtension(ctx context.Context, r soap.RoundTripper, req *types.UpdateExtension) (*types.UpdateExtensionResponse, error) { - var reqBody, resBody UpdateExtensionBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateFlagsBody struct { - Req *types.UpdateFlags `xml:"urn:vim25 UpdateFlags,omitempty"` - Res *types.UpdateFlagsResponse `xml:"urn:vim25 UpdateFlagsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateFlagsBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateFlags(ctx context.Context, r soap.RoundTripper, req *types.UpdateFlags) (*types.UpdateFlagsResponse, error) { - var reqBody, resBody UpdateFlagsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateGraphicsConfigBody struct { - Req *types.UpdateGraphicsConfig `xml:"urn:vim25 UpdateGraphicsConfig,omitempty"` - Res *types.UpdateGraphicsConfigResponse `xml:"urn:vim25 UpdateGraphicsConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateGraphicsConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateGraphicsConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateGraphicsConfig) (*types.UpdateGraphicsConfigResponse, error) { - var reqBody, resBody UpdateGraphicsConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateHostCustomizations_TaskBody struct { - Req *types.UpdateHostCustomizations_Task `xml:"urn:vim25 UpdateHostCustomizations_Task,omitempty"` - Res *types.UpdateHostCustomizations_TaskResponse `xml:"urn:vim25 UpdateHostCustomizations_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateHostCustomizations_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateHostCustomizations_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateHostCustomizations_Task) (*types.UpdateHostCustomizations_TaskResponse, error) { - var reqBody, resBody UpdateHostCustomizations_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateHostImageAcceptanceLevelBody struct { - Req *types.UpdateHostImageAcceptanceLevel `xml:"urn:vim25 UpdateHostImageAcceptanceLevel,omitempty"` - Res *types.UpdateHostImageAcceptanceLevelResponse `xml:"urn:vim25 UpdateHostImageAcceptanceLevelResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateHostImageAcceptanceLevelBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateHostImageAcceptanceLevel(ctx context.Context, r soap.RoundTripper, req *types.UpdateHostImageAcceptanceLevel) (*types.UpdateHostImageAcceptanceLevelResponse, error) { - var reqBody, resBody UpdateHostImageAcceptanceLevelBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateHostProfileBody struct { - Req *types.UpdateHostProfile `xml:"urn:vim25 UpdateHostProfile,omitempty"` - Res *types.UpdateHostProfileResponse `xml:"urn:vim25 UpdateHostProfileResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateHostProfileBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateHostProfile(ctx context.Context, r soap.RoundTripper, req *types.UpdateHostProfile) (*types.UpdateHostProfileResponse, error) { - var reqBody, resBody UpdateHostProfileBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateHostSpecificationBody struct { - Req *types.UpdateHostSpecification `xml:"urn:vim25 UpdateHostSpecification,omitempty"` - Res *types.UpdateHostSpecificationResponse `xml:"urn:vim25 UpdateHostSpecificationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateHostSpecificationBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateHostSpecification(ctx context.Context, r soap.RoundTripper, req *types.UpdateHostSpecification) (*types.UpdateHostSpecificationResponse, error) { - var reqBody, resBody UpdateHostSpecificationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateHostSubSpecificationBody struct { - Req *types.UpdateHostSubSpecification `xml:"urn:vim25 UpdateHostSubSpecification,omitempty"` - Res *types.UpdateHostSubSpecificationResponse `xml:"urn:vim25 UpdateHostSubSpecificationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateHostSubSpecificationBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateHostSubSpecification(ctx context.Context, r soap.RoundTripper, req *types.UpdateHostSubSpecification) (*types.UpdateHostSubSpecificationResponse, error) { - var reqBody, resBody UpdateHostSubSpecificationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateInternetScsiAdvancedOptionsBody struct { - Req *types.UpdateInternetScsiAdvancedOptions `xml:"urn:vim25 UpdateInternetScsiAdvancedOptions,omitempty"` - Res *types.UpdateInternetScsiAdvancedOptionsResponse `xml:"urn:vim25 UpdateInternetScsiAdvancedOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateInternetScsiAdvancedOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateInternetScsiAdvancedOptions(ctx context.Context, r soap.RoundTripper, req *types.UpdateInternetScsiAdvancedOptions) (*types.UpdateInternetScsiAdvancedOptionsResponse, error) { - var reqBody, resBody UpdateInternetScsiAdvancedOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateInternetScsiAliasBody struct { - Req *types.UpdateInternetScsiAlias `xml:"urn:vim25 UpdateInternetScsiAlias,omitempty"` - Res *types.UpdateInternetScsiAliasResponse `xml:"urn:vim25 UpdateInternetScsiAliasResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateInternetScsiAliasBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateInternetScsiAlias(ctx context.Context, r soap.RoundTripper, req *types.UpdateInternetScsiAlias) (*types.UpdateInternetScsiAliasResponse, error) { - var reqBody, resBody UpdateInternetScsiAliasBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateInternetScsiAuthenticationPropertiesBody struct { - Req *types.UpdateInternetScsiAuthenticationProperties `xml:"urn:vim25 UpdateInternetScsiAuthenticationProperties,omitempty"` - Res *types.UpdateInternetScsiAuthenticationPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiAuthenticationPropertiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateInternetScsiAuthenticationPropertiesBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateInternetScsiAuthenticationProperties(ctx context.Context, r soap.RoundTripper, req *types.UpdateInternetScsiAuthenticationProperties) (*types.UpdateInternetScsiAuthenticationPropertiesResponse, error) { - var reqBody, resBody UpdateInternetScsiAuthenticationPropertiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateInternetScsiDigestPropertiesBody struct { - Req *types.UpdateInternetScsiDigestProperties `xml:"urn:vim25 UpdateInternetScsiDigestProperties,omitempty"` - Res *types.UpdateInternetScsiDigestPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiDigestPropertiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateInternetScsiDigestPropertiesBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateInternetScsiDigestProperties(ctx context.Context, r soap.RoundTripper, req *types.UpdateInternetScsiDigestProperties) (*types.UpdateInternetScsiDigestPropertiesResponse, error) { - var reqBody, resBody UpdateInternetScsiDigestPropertiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateInternetScsiDiscoveryPropertiesBody struct { - Req *types.UpdateInternetScsiDiscoveryProperties `xml:"urn:vim25 UpdateInternetScsiDiscoveryProperties,omitempty"` - Res *types.UpdateInternetScsiDiscoveryPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiDiscoveryPropertiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateInternetScsiDiscoveryPropertiesBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateInternetScsiDiscoveryProperties(ctx context.Context, r soap.RoundTripper, req *types.UpdateInternetScsiDiscoveryProperties) (*types.UpdateInternetScsiDiscoveryPropertiesResponse, error) { - var reqBody, resBody UpdateInternetScsiDiscoveryPropertiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateInternetScsiIPPropertiesBody struct { - Req *types.UpdateInternetScsiIPProperties `xml:"urn:vim25 UpdateInternetScsiIPProperties,omitempty"` - Res *types.UpdateInternetScsiIPPropertiesResponse `xml:"urn:vim25 UpdateInternetScsiIPPropertiesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateInternetScsiIPPropertiesBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateInternetScsiIPProperties(ctx context.Context, r soap.RoundTripper, req *types.UpdateInternetScsiIPProperties) (*types.UpdateInternetScsiIPPropertiesResponse, error) { - var reqBody, resBody UpdateInternetScsiIPPropertiesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateInternetScsiNameBody struct { - Req *types.UpdateInternetScsiName `xml:"urn:vim25 UpdateInternetScsiName,omitempty"` - Res *types.UpdateInternetScsiNameResponse `xml:"urn:vim25 UpdateInternetScsiNameResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateInternetScsiNameBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateInternetScsiName(ctx context.Context, r soap.RoundTripper, req *types.UpdateInternetScsiName) (*types.UpdateInternetScsiNameResponse, error) { - var reqBody, resBody UpdateInternetScsiNameBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateIpConfigBody struct { - Req *types.UpdateIpConfig `xml:"urn:vim25 UpdateIpConfig,omitempty"` - Res *types.UpdateIpConfigResponse `xml:"urn:vim25 UpdateIpConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateIpConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateIpConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateIpConfig) (*types.UpdateIpConfigResponse, error) { - var reqBody, resBody UpdateIpConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateIpPoolBody struct { - Req *types.UpdateIpPool `xml:"urn:vim25 UpdateIpPool,omitempty"` - Res *types.UpdateIpPoolResponse `xml:"urn:vim25 UpdateIpPoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateIpPoolBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateIpPool(ctx context.Context, r soap.RoundTripper, req *types.UpdateIpPool) (*types.UpdateIpPoolResponse, error) { - var reqBody, resBody UpdateIpPoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateIpRouteConfigBody struct { - Req *types.UpdateIpRouteConfig `xml:"urn:vim25 UpdateIpRouteConfig,omitempty"` - Res *types.UpdateIpRouteConfigResponse `xml:"urn:vim25 UpdateIpRouteConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateIpRouteConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateIpRouteConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateIpRouteConfig) (*types.UpdateIpRouteConfigResponse, error) { - var reqBody, resBody UpdateIpRouteConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateIpRouteTableConfigBody struct { - Req *types.UpdateIpRouteTableConfig `xml:"urn:vim25 UpdateIpRouteTableConfig,omitempty"` - Res *types.UpdateIpRouteTableConfigResponse `xml:"urn:vim25 UpdateIpRouteTableConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateIpRouteTableConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateIpRouteTableConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateIpRouteTableConfig) (*types.UpdateIpRouteTableConfigResponse, error) { - var reqBody, resBody UpdateIpRouteTableConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateIpmiBody struct { - Req *types.UpdateIpmi `xml:"urn:vim25 UpdateIpmi,omitempty"` - Res *types.UpdateIpmiResponse `xml:"urn:vim25 UpdateIpmiResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateIpmiBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateIpmi(ctx context.Context, r soap.RoundTripper, req *types.UpdateIpmi) (*types.UpdateIpmiResponse, error) { - var reqBody, resBody UpdateIpmiBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateKmipServerBody struct { - Req *types.UpdateKmipServer `xml:"urn:vim25 UpdateKmipServer,omitempty"` - Res *types.UpdateKmipServerResponse `xml:"urn:vim25 UpdateKmipServerResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateKmipServerBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateKmipServer(ctx context.Context, r soap.RoundTripper, req *types.UpdateKmipServer) (*types.UpdateKmipServerResponse, error) { - var reqBody, resBody UpdateKmipServerBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateKmsSignedCsrClientCertBody struct { - Req *types.UpdateKmsSignedCsrClientCert `xml:"urn:vim25 UpdateKmsSignedCsrClientCert,omitempty"` - Res *types.UpdateKmsSignedCsrClientCertResponse `xml:"urn:vim25 UpdateKmsSignedCsrClientCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateKmsSignedCsrClientCertBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateKmsSignedCsrClientCert(ctx context.Context, r soap.RoundTripper, req *types.UpdateKmsSignedCsrClientCert) (*types.UpdateKmsSignedCsrClientCertResponse, error) { - var reqBody, resBody UpdateKmsSignedCsrClientCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateLicenseBody struct { - Req *types.UpdateLicense `xml:"urn:vim25 UpdateLicense,omitempty"` - Res *types.UpdateLicenseResponse `xml:"urn:vim25 UpdateLicenseResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateLicenseBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateLicense(ctx context.Context, r soap.RoundTripper, req *types.UpdateLicense) (*types.UpdateLicenseResponse, error) { - var reqBody, resBody UpdateLicenseBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateLicenseLabelBody struct { - Req *types.UpdateLicenseLabel `xml:"urn:vim25 UpdateLicenseLabel,omitempty"` - Res *types.UpdateLicenseLabelResponse `xml:"urn:vim25 UpdateLicenseLabelResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateLicenseLabelBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateLicenseLabel(ctx context.Context, r soap.RoundTripper, req *types.UpdateLicenseLabel) (*types.UpdateLicenseLabelResponse, error) { - var reqBody, resBody UpdateLicenseLabelBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateLinkedChildrenBody struct { - Req *types.UpdateLinkedChildren `xml:"urn:vim25 UpdateLinkedChildren,omitempty"` - Res *types.UpdateLinkedChildrenResponse `xml:"urn:vim25 UpdateLinkedChildrenResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateLinkedChildrenBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateLinkedChildren(ctx context.Context, r soap.RoundTripper, req *types.UpdateLinkedChildren) (*types.UpdateLinkedChildrenResponse, error) { - var reqBody, resBody UpdateLinkedChildrenBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateLocalSwapDatastoreBody struct { - Req *types.UpdateLocalSwapDatastore `xml:"urn:vim25 UpdateLocalSwapDatastore,omitempty"` - Res *types.UpdateLocalSwapDatastoreResponse `xml:"urn:vim25 UpdateLocalSwapDatastoreResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateLocalSwapDatastoreBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateLocalSwapDatastore(ctx context.Context, r soap.RoundTripper, req *types.UpdateLocalSwapDatastore) (*types.UpdateLocalSwapDatastoreResponse, error) { - var reqBody, resBody UpdateLocalSwapDatastoreBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateLockdownExceptionsBody struct { - Req *types.UpdateLockdownExceptions `xml:"urn:vim25 UpdateLockdownExceptions,omitempty"` - Res *types.UpdateLockdownExceptionsResponse `xml:"urn:vim25 UpdateLockdownExceptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateLockdownExceptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateLockdownExceptions(ctx context.Context, r soap.RoundTripper, req *types.UpdateLockdownExceptions) (*types.UpdateLockdownExceptionsResponse, error) { - var reqBody, resBody UpdateLockdownExceptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateModuleOptionStringBody struct { - Req *types.UpdateModuleOptionString `xml:"urn:vim25 UpdateModuleOptionString,omitempty"` - Res *types.UpdateModuleOptionStringResponse `xml:"urn:vim25 UpdateModuleOptionStringResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateModuleOptionStringBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateModuleOptionString(ctx context.Context, r soap.RoundTripper, req *types.UpdateModuleOptionString) (*types.UpdateModuleOptionStringResponse, error) { - var reqBody, resBody UpdateModuleOptionStringBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateNetworkConfigBody struct { - Req *types.UpdateNetworkConfig `xml:"urn:vim25 UpdateNetworkConfig,omitempty"` - Res *types.UpdateNetworkConfigResponse `xml:"urn:vim25 UpdateNetworkConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateNetworkConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateNetworkConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateNetworkConfig) (*types.UpdateNetworkConfigResponse, error) { - var reqBody, resBody UpdateNetworkConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateNetworkResourcePoolBody struct { - Req *types.UpdateNetworkResourcePool `xml:"urn:vim25 UpdateNetworkResourcePool,omitempty"` - Res *types.UpdateNetworkResourcePoolResponse `xml:"urn:vim25 UpdateNetworkResourcePoolResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateNetworkResourcePoolBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateNetworkResourcePool(ctx context.Context, r soap.RoundTripper, req *types.UpdateNetworkResourcePool) (*types.UpdateNetworkResourcePoolResponse, error) { - var reqBody, resBody UpdateNetworkResourcePoolBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateOptionsBody struct { - Req *types.UpdateOptions `xml:"urn:vim25 UpdateOptions,omitempty"` - Res *types.UpdateOptionsResponse `xml:"urn:vim25 UpdateOptionsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateOptionsBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateOptions(ctx context.Context, r soap.RoundTripper, req *types.UpdateOptions) (*types.UpdateOptionsResponse, error) { - var reqBody, resBody UpdateOptionsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdatePassthruConfigBody struct { - Req *types.UpdatePassthruConfig `xml:"urn:vim25 UpdatePassthruConfig,omitempty"` - Res *types.UpdatePassthruConfigResponse `xml:"urn:vim25 UpdatePassthruConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdatePassthruConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdatePassthruConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdatePassthruConfig) (*types.UpdatePassthruConfigResponse, error) { - var reqBody, resBody UpdatePassthruConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdatePerfIntervalBody struct { - Req *types.UpdatePerfInterval `xml:"urn:vim25 UpdatePerfInterval,omitempty"` - Res *types.UpdatePerfIntervalResponse `xml:"urn:vim25 UpdatePerfIntervalResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdatePerfIntervalBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdatePerfInterval(ctx context.Context, r soap.RoundTripper, req *types.UpdatePerfInterval) (*types.UpdatePerfIntervalResponse, error) { - var reqBody, resBody UpdatePerfIntervalBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdatePhysicalNicLinkSpeedBody struct { - Req *types.UpdatePhysicalNicLinkSpeed `xml:"urn:vim25 UpdatePhysicalNicLinkSpeed,omitempty"` - Res *types.UpdatePhysicalNicLinkSpeedResponse `xml:"urn:vim25 UpdatePhysicalNicLinkSpeedResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdatePhysicalNicLinkSpeedBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdatePhysicalNicLinkSpeed(ctx context.Context, r soap.RoundTripper, req *types.UpdatePhysicalNicLinkSpeed) (*types.UpdatePhysicalNicLinkSpeedResponse, error) { - var reqBody, resBody UpdatePhysicalNicLinkSpeedBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdatePortGroupBody struct { - Req *types.UpdatePortGroup `xml:"urn:vim25 UpdatePortGroup,omitempty"` - Res *types.UpdatePortGroupResponse `xml:"urn:vim25 UpdatePortGroupResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdatePortGroupBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdatePortGroup(ctx context.Context, r soap.RoundTripper, req *types.UpdatePortGroup) (*types.UpdatePortGroupResponse, error) { - var reqBody, resBody UpdatePortGroupBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateProgressBody struct { - Req *types.UpdateProgress `xml:"urn:vim25 UpdateProgress,omitempty"` - Res *types.UpdateProgressResponse `xml:"urn:vim25 UpdateProgressResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateProgressBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateProgress(ctx context.Context, r soap.RoundTripper, req *types.UpdateProgress) (*types.UpdateProgressResponse, error) { - var reqBody, resBody UpdateProgressBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateReferenceHostBody struct { - Req *types.UpdateReferenceHost `xml:"urn:vim25 UpdateReferenceHost,omitempty"` - Res *types.UpdateReferenceHostResponse `xml:"urn:vim25 UpdateReferenceHostResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateReferenceHostBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateReferenceHost(ctx context.Context, r soap.RoundTripper, req *types.UpdateReferenceHost) (*types.UpdateReferenceHostResponse, error) { - var reqBody, resBody UpdateReferenceHostBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateRulesetBody struct { - Req *types.UpdateRuleset `xml:"urn:vim25 UpdateRuleset,omitempty"` - Res *types.UpdateRulesetResponse `xml:"urn:vim25 UpdateRulesetResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateRulesetBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateRuleset(ctx context.Context, r soap.RoundTripper, req *types.UpdateRuleset) (*types.UpdateRulesetResponse, error) { - var reqBody, resBody UpdateRulesetBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateScsiLunDisplayNameBody struct { - Req *types.UpdateScsiLunDisplayName `xml:"urn:vim25 UpdateScsiLunDisplayName,omitempty"` - Res *types.UpdateScsiLunDisplayNameResponse `xml:"urn:vim25 UpdateScsiLunDisplayNameResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateScsiLunDisplayNameBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateScsiLunDisplayName(ctx context.Context, r soap.RoundTripper, req *types.UpdateScsiLunDisplayName) (*types.UpdateScsiLunDisplayNameResponse, error) { - var reqBody, resBody UpdateScsiLunDisplayNameBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateSelfSignedClientCertBody struct { - Req *types.UpdateSelfSignedClientCert `xml:"urn:vim25 UpdateSelfSignedClientCert,omitempty"` - Res *types.UpdateSelfSignedClientCertResponse `xml:"urn:vim25 UpdateSelfSignedClientCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateSelfSignedClientCertBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateSelfSignedClientCert(ctx context.Context, r soap.RoundTripper, req *types.UpdateSelfSignedClientCert) (*types.UpdateSelfSignedClientCertResponse, error) { - var reqBody, resBody UpdateSelfSignedClientCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateServiceConsoleVirtualNicBody struct { - Req *types.UpdateServiceConsoleVirtualNic `xml:"urn:vim25 UpdateServiceConsoleVirtualNic,omitempty"` - Res *types.UpdateServiceConsoleVirtualNicResponse `xml:"urn:vim25 UpdateServiceConsoleVirtualNicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateServiceConsoleVirtualNicBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateServiceConsoleVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.UpdateServiceConsoleVirtualNic) (*types.UpdateServiceConsoleVirtualNicResponse, error) { - var reqBody, resBody UpdateServiceConsoleVirtualNicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateServiceMessageBody struct { - Req *types.UpdateServiceMessage `xml:"urn:vim25 UpdateServiceMessage,omitempty"` - Res *types.UpdateServiceMessageResponse `xml:"urn:vim25 UpdateServiceMessageResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateServiceMessageBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateServiceMessage(ctx context.Context, r soap.RoundTripper, req *types.UpdateServiceMessage) (*types.UpdateServiceMessageResponse, error) { - var reqBody, resBody UpdateServiceMessageBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateServicePolicyBody struct { - Req *types.UpdateServicePolicy `xml:"urn:vim25 UpdateServicePolicy,omitempty"` - Res *types.UpdateServicePolicyResponse `xml:"urn:vim25 UpdateServicePolicyResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateServicePolicyBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateServicePolicy(ctx context.Context, r soap.RoundTripper, req *types.UpdateServicePolicy) (*types.UpdateServicePolicyResponse, error) { - var reqBody, resBody UpdateServicePolicyBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateSoftwareInternetScsiEnabledBody struct { - Req *types.UpdateSoftwareInternetScsiEnabled `xml:"urn:vim25 UpdateSoftwareInternetScsiEnabled,omitempty"` - Res *types.UpdateSoftwareInternetScsiEnabledResponse `xml:"urn:vim25 UpdateSoftwareInternetScsiEnabledResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateSoftwareInternetScsiEnabledBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateSoftwareInternetScsiEnabled(ctx context.Context, r soap.RoundTripper, req *types.UpdateSoftwareInternetScsiEnabled) (*types.UpdateSoftwareInternetScsiEnabledResponse, error) { - var reqBody, resBody UpdateSoftwareInternetScsiEnabledBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateSystemResourcesBody struct { - Req *types.UpdateSystemResources `xml:"urn:vim25 UpdateSystemResources,omitempty"` - Res *types.UpdateSystemResourcesResponse `xml:"urn:vim25 UpdateSystemResourcesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateSystemResourcesBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateSystemResources(ctx context.Context, r soap.RoundTripper, req *types.UpdateSystemResources) (*types.UpdateSystemResourcesResponse, error) { - var reqBody, resBody UpdateSystemResourcesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateSystemSwapConfigurationBody struct { - Req *types.UpdateSystemSwapConfiguration `xml:"urn:vim25 UpdateSystemSwapConfiguration,omitempty"` - Res *types.UpdateSystemSwapConfigurationResponse `xml:"urn:vim25 UpdateSystemSwapConfigurationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateSystemSwapConfigurationBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateSystemSwapConfiguration(ctx context.Context, r soap.RoundTripper, req *types.UpdateSystemSwapConfiguration) (*types.UpdateSystemSwapConfigurationResponse, error) { - var reqBody, resBody UpdateSystemSwapConfigurationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateSystemUsersBody struct { - Req *types.UpdateSystemUsers `xml:"urn:vim25 UpdateSystemUsers,omitempty"` - Res *types.UpdateSystemUsersResponse `xml:"urn:vim25 UpdateSystemUsersResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateSystemUsersBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateSystemUsers(ctx context.Context, r soap.RoundTripper, req *types.UpdateSystemUsers) (*types.UpdateSystemUsersResponse, error) { - var reqBody, resBody UpdateSystemUsersBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateUserBody struct { - Req *types.UpdateUser `xml:"urn:vim25 UpdateUser,omitempty"` - Res *types.UpdateUserResponse `xml:"urn:vim25 UpdateUserResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateUserBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateUser(ctx context.Context, r soap.RoundTripper, req *types.UpdateUser) (*types.UpdateUserResponse, error) { - var reqBody, resBody UpdateUserBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateVAppConfigBody struct { - Req *types.UpdateVAppConfig `xml:"urn:vim25 UpdateVAppConfig,omitempty"` - Res *types.UpdateVAppConfigResponse `xml:"urn:vim25 UpdateVAppConfigResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateVAppConfigBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateVAppConfig(ctx context.Context, r soap.RoundTripper, req *types.UpdateVAppConfig) (*types.UpdateVAppConfigResponse, error) { - var reqBody, resBody UpdateVAppConfigBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateVVolVirtualMachineFiles_TaskBody struct { - Req *types.UpdateVVolVirtualMachineFiles_Task `xml:"urn:vim25 UpdateVVolVirtualMachineFiles_Task,omitempty"` - Res *types.UpdateVVolVirtualMachineFiles_TaskResponse `xml:"urn:vim25 UpdateVVolVirtualMachineFiles_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateVVolVirtualMachineFiles_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateVVolVirtualMachineFiles_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateVVolVirtualMachineFiles_Task) (*types.UpdateVVolVirtualMachineFiles_TaskResponse, error) { - var reqBody, resBody UpdateVVolVirtualMachineFiles_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateVirtualMachineFiles_TaskBody struct { - Req *types.UpdateVirtualMachineFiles_Task `xml:"urn:vim25 UpdateVirtualMachineFiles_Task,omitempty"` - Res *types.UpdateVirtualMachineFiles_TaskResponse `xml:"urn:vim25 UpdateVirtualMachineFiles_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateVirtualMachineFiles_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateVirtualMachineFiles_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateVirtualMachineFiles_Task) (*types.UpdateVirtualMachineFiles_TaskResponse, error) { - var reqBody, resBody UpdateVirtualMachineFiles_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateVirtualNicBody struct { - Req *types.UpdateVirtualNic `xml:"urn:vim25 UpdateVirtualNic,omitempty"` - Res *types.UpdateVirtualNicResponse `xml:"urn:vim25 UpdateVirtualNicResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateVirtualNicBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateVirtualNic(ctx context.Context, r soap.RoundTripper, req *types.UpdateVirtualNic) (*types.UpdateVirtualNicResponse, error) { - var reqBody, resBody UpdateVirtualNicBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateVirtualSwitchBody struct { - Req *types.UpdateVirtualSwitch `xml:"urn:vim25 UpdateVirtualSwitch,omitempty"` - Res *types.UpdateVirtualSwitchResponse `xml:"urn:vim25 UpdateVirtualSwitchResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateVirtualSwitchBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateVirtualSwitch(ctx context.Context, r soap.RoundTripper, req *types.UpdateVirtualSwitch) (*types.UpdateVirtualSwitchResponse, error) { - var reqBody, resBody UpdateVirtualSwitchBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateVmfsUnmapPriorityBody struct { - Req *types.UpdateVmfsUnmapPriority `xml:"urn:vim25 UpdateVmfsUnmapPriority,omitempty"` - Res *types.UpdateVmfsUnmapPriorityResponse `xml:"urn:vim25 UpdateVmfsUnmapPriorityResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateVmfsUnmapPriorityBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateVmfsUnmapPriority(ctx context.Context, r soap.RoundTripper, req *types.UpdateVmfsUnmapPriority) (*types.UpdateVmfsUnmapPriorityResponse, error) { - var reqBody, resBody UpdateVmfsUnmapPriorityBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpdateVsan_TaskBody struct { - Req *types.UpdateVsan_Task `xml:"urn:vim25 UpdateVsan_Task,omitempty"` - Res *types.UpdateVsan_TaskResponse `xml:"urn:vim25 UpdateVsan_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpdateVsan_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpdateVsan_Task(ctx context.Context, r soap.RoundTripper, req *types.UpdateVsan_Task) (*types.UpdateVsan_TaskResponse, error) { - var reqBody, resBody UpdateVsan_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpgradeIoFilter_TaskBody struct { - Req *types.UpgradeIoFilter_Task `xml:"urn:vim25 UpgradeIoFilter_Task,omitempty"` - Res *types.UpgradeIoFilter_TaskResponse `xml:"urn:vim25 UpgradeIoFilter_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpgradeIoFilter_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpgradeIoFilter_Task(ctx context.Context, r soap.RoundTripper, req *types.UpgradeIoFilter_Task) (*types.UpgradeIoFilter_TaskResponse, error) { - var reqBody, resBody UpgradeIoFilter_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpgradeTools_TaskBody struct { - Req *types.UpgradeTools_Task `xml:"urn:vim25 UpgradeTools_Task,omitempty"` - Res *types.UpgradeTools_TaskResponse `xml:"urn:vim25 UpgradeTools_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpgradeTools_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpgradeTools_Task(ctx context.Context, r soap.RoundTripper, req *types.UpgradeTools_Task) (*types.UpgradeTools_TaskResponse, error) { - var reqBody, resBody UpgradeTools_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpgradeVM_TaskBody struct { - Req *types.UpgradeVM_Task `xml:"urn:vim25 UpgradeVM_Task,omitempty"` - Res *types.UpgradeVM_TaskResponse `xml:"urn:vim25 UpgradeVM_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpgradeVM_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func UpgradeVM_Task(ctx context.Context, r soap.RoundTripper, req *types.UpgradeVM_Task) (*types.UpgradeVM_TaskResponse, error) { - var reqBody, resBody UpgradeVM_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpgradeVmLayoutBody struct { - Req *types.UpgradeVmLayout `xml:"urn:vim25 UpgradeVmLayout,omitempty"` - Res *types.UpgradeVmLayoutResponse `xml:"urn:vim25 UpgradeVmLayoutResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpgradeVmLayoutBody) Fault() *soap.Fault { return b.Fault_ } - -func UpgradeVmLayout(ctx context.Context, r soap.RoundTripper, req *types.UpgradeVmLayout) (*types.UpgradeVmLayoutResponse, error) { - var reqBody, resBody UpgradeVmLayoutBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpgradeVmfsBody struct { - Req *types.UpgradeVmfs `xml:"urn:vim25 UpgradeVmfs,omitempty"` - Res *types.UpgradeVmfsResponse `xml:"urn:vim25 UpgradeVmfsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpgradeVmfsBody) Fault() *soap.Fault { return b.Fault_ } - -func UpgradeVmfs(ctx context.Context, r soap.RoundTripper, req *types.UpgradeVmfs) (*types.UpgradeVmfsResponse, error) { - var reqBody, resBody UpgradeVmfsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UpgradeVsanObjectsBody struct { - Req *types.UpgradeVsanObjects `xml:"urn:vim25 UpgradeVsanObjects,omitempty"` - Res *types.UpgradeVsanObjectsResponse `xml:"urn:vim25 UpgradeVsanObjectsResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UpgradeVsanObjectsBody) Fault() *soap.Fault { return b.Fault_ } - -func UpgradeVsanObjects(ctx context.Context, r soap.RoundTripper, req *types.UpgradeVsanObjects) (*types.UpgradeVsanObjectsResponse, error) { - var reqBody, resBody UpgradeVsanObjectsBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UploadClientCertBody struct { - Req *types.UploadClientCert `xml:"urn:vim25 UploadClientCert,omitempty"` - Res *types.UploadClientCertResponse `xml:"urn:vim25 UploadClientCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UploadClientCertBody) Fault() *soap.Fault { return b.Fault_ } - -func UploadClientCert(ctx context.Context, r soap.RoundTripper, req *types.UploadClientCert) (*types.UploadClientCertResponse, error) { - var reqBody, resBody UploadClientCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type UploadKmipServerCertBody struct { - Req *types.UploadKmipServerCert `xml:"urn:vim25 UploadKmipServerCert,omitempty"` - Res *types.UploadKmipServerCertResponse `xml:"urn:vim25 UploadKmipServerCertResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *UploadKmipServerCertBody) Fault() *soap.Fault { return b.Fault_ } - -func UploadKmipServerCert(ctx context.Context, r soap.RoundTripper, req *types.UploadKmipServerCert) (*types.UploadKmipServerCertResponse, error) { - var reqBody, resBody UploadKmipServerCertBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ValidateCredentialsInGuestBody struct { - Req *types.ValidateCredentialsInGuest `xml:"urn:vim25 ValidateCredentialsInGuest,omitempty"` - Res *types.ValidateCredentialsInGuestResponse `xml:"urn:vim25 ValidateCredentialsInGuestResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ValidateCredentialsInGuestBody) Fault() *soap.Fault { return b.Fault_ } - -func ValidateCredentialsInGuest(ctx context.Context, r soap.RoundTripper, req *types.ValidateCredentialsInGuest) (*types.ValidateCredentialsInGuestResponse, error) { - var reqBody, resBody ValidateCredentialsInGuestBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ValidateHostBody struct { - Req *types.ValidateHost `xml:"urn:vim25 ValidateHost,omitempty"` - Res *types.ValidateHostResponse `xml:"urn:vim25 ValidateHostResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ValidateHostBody) Fault() *soap.Fault { return b.Fault_ } - -func ValidateHost(ctx context.Context, r soap.RoundTripper, req *types.ValidateHost) (*types.ValidateHostResponse, error) { - var reqBody, resBody ValidateHostBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ValidateMigrationBody struct { - Req *types.ValidateMigration `xml:"urn:vim25 ValidateMigration,omitempty"` - Res *types.ValidateMigrationResponse `xml:"urn:vim25 ValidateMigrationResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ValidateMigrationBody) Fault() *soap.Fault { return b.Fault_ } - -func ValidateMigration(ctx context.Context, r soap.RoundTripper, req *types.ValidateMigration) (*types.ValidateMigrationResponse, error) { - var reqBody, resBody ValidateMigrationBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type WaitForUpdatesBody struct { - Req *types.WaitForUpdates `xml:"urn:vim25 WaitForUpdates,omitempty"` - Res *types.WaitForUpdatesResponse `xml:"urn:vim25 WaitForUpdatesResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *WaitForUpdatesBody) Fault() *soap.Fault { return b.Fault_ } - -func WaitForUpdates(ctx context.Context, r soap.RoundTripper, req *types.WaitForUpdates) (*types.WaitForUpdatesResponse, error) { - var reqBody, resBody WaitForUpdatesBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type WaitForUpdatesExBody struct { - Req *types.WaitForUpdatesEx `xml:"urn:vim25 WaitForUpdatesEx,omitempty"` - Res *types.WaitForUpdatesExResponse `xml:"urn:vim25 WaitForUpdatesExResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *WaitForUpdatesExBody) Fault() *soap.Fault { return b.Fault_ } - -func WaitForUpdatesEx(ctx context.Context, r soap.RoundTripper, req *types.WaitForUpdatesEx) (*types.WaitForUpdatesExResponse, error) { - var reqBody, resBody WaitForUpdatesExBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type XmlToCustomizationSpecItemBody struct { - Req *types.XmlToCustomizationSpecItem `xml:"urn:vim25 XmlToCustomizationSpecItem,omitempty"` - Res *types.XmlToCustomizationSpecItemResponse `xml:"urn:vim25 XmlToCustomizationSpecItemResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *XmlToCustomizationSpecItemBody) Fault() *soap.Fault { return b.Fault_ } - -func XmlToCustomizationSpecItem(ctx context.Context, r soap.RoundTripper, req *types.XmlToCustomizationSpecItem) (*types.XmlToCustomizationSpecItemResponse, error) { - var reqBody, resBody XmlToCustomizationSpecItemBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} - -type ZeroFillVirtualDisk_TaskBody struct { - Req *types.ZeroFillVirtualDisk_Task `xml:"urn:vim25 ZeroFillVirtualDisk_Task,omitempty"` - Res *types.ZeroFillVirtualDisk_TaskResponse `xml:"urn:vim25 ZeroFillVirtualDisk_TaskResponse,omitempty"` - Fault_ *soap.Fault `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault,omitempty"` -} - -func (b *ZeroFillVirtualDisk_TaskBody) Fault() *soap.Fault { return b.Fault_ } - -func ZeroFillVirtualDisk_Task(ctx context.Context, r soap.RoundTripper, req *types.ZeroFillVirtualDisk_Task) (*types.ZeroFillVirtualDisk_TaskResponse, error) { - var reqBody, resBody ZeroFillVirtualDisk_TaskBody - - reqBody.Req = req - - if err := r.RoundTrip(ctx, &reqBody, &resBody); err != nil { - return nil, err - } - - return resBody.Res, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/service_content.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/service_content.go deleted file mode 100644 index 634fbfbd..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/methods/service_content.go +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 methods - -import ( - "context" - "time" - - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -var ServiceInstance = types.ManagedObjectReference{ - Type: "ServiceInstance", - Value: "ServiceInstance", -} - -func GetServiceContent(ctx context.Context, r soap.RoundTripper) (types.ServiceContent, error) { - req := types.RetrieveServiceContent{ - This: ServiceInstance, - } - - res, err := RetrieveServiceContent(ctx, r, &req) - if err != nil { - return types.ServiceContent{}, err - } - - return res.Returnval, nil -} - -func GetCurrentTime(ctx context.Context, r soap.RoundTripper) (*time.Time, error) { - req := types.CurrentTime{ - This: ServiceInstance, - } - - res, err := CurrentTime(ctx, r, &req) - if err != nil { - return nil, err - } - - return &res.Returnval, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/ancestors.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/ancestors.go deleted file mode 100644 index d3da5b18..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/ancestors.go +++ /dev/null @@ -1,137 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 mo - -import ( - "context" - "fmt" - - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -// Ancestors returns the entire ancestry tree of a specified managed object. -// The return value includes the root node and the specified object itself. -func Ancestors(ctx context.Context, rt soap.RoundTripper, pc, obj types.ManagedObjectReference) ([]ManagedEntity, error) { - ospec := types.ObjectSpec{ - Obj: obj, - SelectSet: []types.BaseSelectionSpec{ - &types.TraversalSpec{ - SelectionSpec: types.SelectionSpec{Name: "traverseParent"}, - Type: "ManagedEntity", - Path: "parent", - Skip: types.NewBool(false), - SelectSet: []types.BaseSelectionSpec{ - &types.SelectionSpec{Name: "traverseParent"}, - }, - }, - &types.TraversalSpec{ - SelectionSpec: types.SelectionSpec{}, - Type: "VirtualMachine", - Path: "parentVApp", - Skip: types.NewBool(false), - SelectSet: []types.BaseSelectionSpec{ - &types.SelectionSpec{Name: "traverseParent"}, - }, - }, - }, - Skip: types.NewBool(false), - } - - pspec := []types.PropertySpec{ - { - Type: "ManagedEntity", - PathSet: []string{"name", "parent"}, - }, - { - Type: "VirtualMachine", - PathSet: []string{"parentVApp"}, - }, - } - - req := types.RetrieveProperties{ - This: pc, - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ospec}, - PropSet: pspec, - }, - }, - } - - var ifaces []interface{} - err := RetrievePropertiesForRequest(ctx, rt, req, &ifaces) - if err != nil { - return nil, err - } - - var out []ManagedEntity - - // Build ancestry tree by iteratively finding a new child. - for len(out) < len(ifaces) { - var find types.ManagedObjectReference - - if len(out) > 0 { - find = out[len(out)-1].Self - } - - // Find entity we're looking for given the last entity in the current tree. - for _, iface := range ifaces { - me := iface.(IsManagedEntity).GetManagedEntity() - - if me.Name == "" { - // The types below have their own 'Name' field, so ManagedEntity.Name (me.Name) is empty. - // We only hit this case when the 'obj' param is one of these types. - // In most cases, 'obj' is a Folder so Name isn't collected in this call. - switch x := iface.(type) { - case Network: - me.Name = x.Name - case DistributedVirtualSwitch: - me.Name = x.Name - case DistributedVirtualPortgroup: - me.Name = x.Name - case OpaqueNetwork: - me.Name = x.Name - default: - // ManagedEntity always has a Name, if we hit this point we missed a case above. - panic(fmt.Sprintf("%#v Name is empty", me.Reference())) - } - } - - if me.Parent == nil { - // Special case for VirtualMachine within VirtualApp, - // unlikely to hit this other than via Finder.Element() - switch x := iface.(type) { - case VirtualMachine: - me.Parent = x.ParentVApp - } - } - - if me.Parent == nil { - out = append(out, me) - break - } - - if *me.Parent == find { - out = append(out, me) - break - } - } - } - - return out, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/entity.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/entity.go deleted file mode 100644 index 193e6f71..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/entity.go +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright (c) 2016 VMware, 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 mo - -// Entity is the interface that is implemented by all managed objects -// that extend ManagedEntity. -type Entity interface { - Reference - Entity() *ManagedEntity -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/extra.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/extra.go deleted file mode 100644 index 254ef359..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/extra.go +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 mo - -type IsManagedEntity interface { - GetManagedEntity() ManagedEntity -} - -func (m ComputeResource) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m Datacenter) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m Datastore) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m DistributedVirtualSwitch) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m DistributedVirtualPortgroup) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m Folder) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m HostSystem) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m Network) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m ResourcePool) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} - -func (m VirtualMachine) GetManagedEntity() ManagedEntity { - return m.ManagedEntity -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/mo.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/mo.go deleted file mode 100644 index ede6e44d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/mo.go +++ /dev/null @@ -1,1757 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 mo - -import ( - "reflect" - "time" - - "github.com/vmware/govmomi/vim25/types" -) - -type Alarm struct { - ExtensibleManagedObject - - Info types.AlarmInfo `mo:"info"` -} - -func init() { - t["Alarm"] = reflect.TypeOf((*Alarm)(nil)).Elem() -} - -type AlarmManager struct { - Self types.ManagedObjectReference - - DefaultExpression []types.BaseAlarmExpression `mo:"defaultExpression"` - Description types.AlarmDescription `mo:"description"` -} - -func (m AlarmManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["AlarmManager"] = reflect.TypeOf((*AlarmManager)(nil)).Elem() -} - -type AuthorizationManager struct { - Self types.ManagedObjectReference - - PrivilegeList []types.AuthorizationPrivilege `mo:"privilegeList"` - RoleList []types.AuthorizationRole `mo:"roleList"` - Description types.AuthorizationDescription `mo:"description"` -} - -func (m AuthorizationManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["AuthorizationManager"] = reflect.TypeOf((*AuthorizationManager)(nil)).Elem() -} - -type CertificateManager struct { - Self types.ManagedObjectReference -} - -func (m CertificateManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["CertificateManager"] = reflect.TypeOf((*CertificateManager)(nil)).Elem() -} - -type ClusterComputeResource struct { - ComputeResource - - Configuration types.ClusterConfigInfo `mo:"configuration"` - Recommendation []types.ClusterRecommendation `mo:"recommendation"` - DrsRecommendation []types.ClusterDrsRecommendation `mo:"drsRecommendation"` - MigrationHistory []types.ClusterDrsMigration `mo:"migrationHistory"` - ActionHistory []types.ClusterActionHistory `mo:"actionHistory"` - DrsFault []types.ClusterDrsFaults `mo:"drsFault"` -} - -func init() { - t["ClusterComputeResource"] = reflect.TypeOf((*ClusterComputeResource)(nil)).Elem() -} - -type ClusterEVCManager struct { - ExtensibleManagedObject - - ManagedCluster types.ManagedObjectReference `mo:"managedCluster"` - EvcState types.ClusterEVCManagerEVCState `mo:"evcState"` -} - -func init() { - t["ClusterEVCManager"] = reflect.TypeOf((*ClusterEVCManager)(nil)).Elem() -} - -type ClusterProfile struct { - Profile -} - -func init() { - t["ClusterProfile"] = reflect.TypeOf((*ClusterProfile)(nil)).Elem() -} - -type ClusterProfileManager struct { - ProfileManager -} - -func init() { - t["ClusterProfileManager"] = reflect.TypeOf((*ClusterProfileManager)(nil)).Elem() -} - -type ComputeResource struct { - ManagedEntity - - ResourcePool *types.ManagedObjectReference `mo:"resourcePool"` - Host []types.ManagedObjectReference `mo:"host"` - Datastore []types.ManagedObjectReference `mo:"datastore"` - Network []types.ManagedObjectReference `mo:"network"` - Summary types.BaseComputeResourceSummary `mo:"summary"` - EnvironmentBrowser *types.ManagedObjectReference `mo:"environmentBrowser"` - ConfigurationEx types.BaseComputeResourceConfigInfo `mo:"configurationEx"` -} - -func (m *ComputeResource) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["ComputeResource"] = reflect.TypeOf((*ComputeResource)(nil)).Elem() -} - -type ContainerView struct { - ManagedObjectView - - Container types.ManagedObjectReference `mo:"container"` - Type []string `mo:"type"` - Recursive bool `mo:"recursive"` -} - -func init() { - t["ContainerView"] = reflect.TypeOf((*ContainerView)(nil)).Elem() -} - -type CryptoManager struct { - Self types.ManagedObjectReference - - Enabled bool `mo:"enabled"` -} - -func (m CryptoManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["CryptoManager"] = reflect.TypeOf((*CryptoManager)(nil)).Elem() -} - -type CryptoManagerKmip struct { - CryptoManager - - KmipServers []types.KmipClusterInfo `mo:"kmipServers"` -} - -func init() { - t["CryptoManagerKmip"] = reflect.TypeOf((*CryptoManagerKmip)(nil)).Elem() -} - -type CustomFieldsManager struct { - Self types.ManagedObjectReference - - Field []types.CustomFieldDef `mo:"field"` -} - -func (m CustomFieldsManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["CustomFieldsManager"] = reflect.TypeOf((*CustomFieldsManager)(nil)).Elem() -} - -type CustomizationSpecManager struct { - Self types.ManagedObjectReference - - Info []types.CustomizationSpecInfo `mo:"info"` - EncryptionKey []byte `mo:"encryptionKey"` -} - -func (m CustomizationSpecManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["CustomizationSpecManager"] = reflect.TypeOf((*CustomizationSpecManager)(nil)).Elem() -} - -type Datacenter struct { - ManagedEntity - - VmFolder types.ManagedObjectReference `mo:"vmFolder"` - HostFolder types.ManagedObjectReference `mo:"hostFolder"` - DatastoreFolder types.ManagedObjectReference `mo:"datastoreFolder"` - NetworkFolder types.ManagedObjectReference `mo:"networkFolder"` - Datastore []types.ManagedObjectReference `mo:"datastore"` - Network []types.ManagedObjectReference `mo:"network"` - Configuration types.DatacenterConfigInfo `mo:"configuration"` -} - -func (m *Datacenter) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["Datacenter"] = reflect.TypeOf((*Datacenter)(nil)).Elem() -} - -type Datastore struct { - ManagedEntity - - Info types.BaseDatastoreInfo `mo:"info"` - Summary types.DatastoreSummary `mo:"summary"` - Host []types.DatastoreHostMount `mo:"host"` - Vm []types.ManagedObjectReference `mo:"vm"` - Browser types.ManagedObjectReference `mo:"browser"` - Capability types.DatastoreCapability `mo:"capability"` - IormConfiguration *types.StorageIORMInfo `mo:"iormConfiguration"` -} - -func (m *Datastore) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["Datastore"] = reflect.TypeOf((*Datastore)(nil)).Elem() -} - -type DatastoreNamespaceManager struct { - Self types.ManagedObjectReference -} - -func (m DatastoreNamespaceManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["DatastoreNamespaceManager"] = reflect.TypeOf((*DatastoreNamespaceManager)(nil)).Elem() -} - -type DiagnosticManager struct { - Self types.ManagedObjectReference -} - -func (m DiagnosticManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["DiagnosticManager"] = reflect.TypeOf((*DiagnosticManager)(nil)).Elem() -} - -type DistributedVirtualPortgroup struct { - Network - - Key string `mo:"key"` - Config types.DVPortgroupConfigInfo `mo:"config"` - PortKeys []string `mo:"portKeys"` -} - -func init() { - t["DistributedVirtualPortgroup"] = reflect.TypeOf((*DistributedVirtualPortgroup)(nil)).Elem() -} - -type DistributedVirtualSwitch struct { - ManagedEntity - - Uuid string `mo:"uuid"` - Capability types.DVSCapability `mo:"capability"` - Summary types.DVSSummary `mo:"summary"` - Config types.BaseDVSConfigInfo `mo:"config"` - NetworkResourcePool []types.DVSNetworkResourcePool `mo:"networkResourcePool"` - Portgroup []types.ManagedObjectReference `mo:"portgroup"` - Runtime *types.DVSRuntimeInfo `mo:"runtime"` -} - -func (m *DistributedVirtualSwitch) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["DistributedVirtualSwitch"] = reflect.TypeOf((*DistributedVirtualSwitch)(nil)).Elem() -} - -type DistributedVirtualSwitchManager struct { - Self types.ManagedObjectReference -} - -func (m DistributedVirtualSwitchManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["DistributedVirtualSwitchManager"] = reflect.TypeOf((*DistributedVirtualSwitchManager)(nil)).Elem() -} - -type EnvironmentBrowser struct { - Self types.ManagedObjectReference - - DatastoreBrowser *types.ManagedObjectReference `mo:"datastoreBrowser"` -} - -func (m EnvironmentBrowser) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["EnvironmentBrowser"] = reflect.TypeOf((*EnvironmentBrowser)(nil)).Elem() -} - -type EventHistoryCollector struct { - HistoryCollector - - LatestPage []types.BaseEvent `mo:"latestPage"` -} - -func init() { - t["EventHistoryCollector"] = reflect.TypeOf((*EventHistoryCollector)(nil)).Elem() -} - -type EventManager struct { - Self types.ManagedObjectReference - - Description types.EventDescription `mo:"description"` - LatestEvent types.BaseEvent `mo:"latestEvent"` - MaxCollector int32 `mo:"maxCollector"` -} - -func (m EventManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["EventManager"] = reflect.TypeOf((*EventManager)(nil)).Elem() -} - -type ExtensibleManagedObject struct { - Self types.ManagedObjectReference - - Value []types.BaseCustomFieldValue `mo:"value"` - AvailableField []types.CustomFieldDef `mo:"availableField"` -} - -func (m ExtensibleManagedObject) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ExtensibleManagedObject"] = reflect.TypeOf((*ExtensibleManagedObject)(nil)).Elem() -} - -type ExtensionManager struct { - Self types.ManagedObjectReference - - ExtensionList []types.Extension `mo:"extensionList"` -} - -func (m ExtensionManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ExtensionManager"] = reflect.TypeOf((*ExtensionManager)(nil)).Elem() -} - -type FailoverClusterConfigurator struct { - Self types.ManagedObjectReference - - DisabledConfigureMethod []string `mo:"disabledConfigureMethod"` -} - -func (m FailoverClusterConfigurator) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["FailoverClusterConfigurator"] = reflect.TypeOf((*FailoverClusterConfigurator)(nil)).Elem() -} - -type FailoverClusterManager struct { - Self types.ManagedObjectReference - - DisabledClusterMethod []string `mo:"disabledClusterMethod"` -} - -func (m FailoverClusterManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["FailoverClusterManager"] = reflect.TypeOf((*FailoverClusterManager)(nil)).Elem() -} - -type FileManager struct { - Self types.ManagedObjectReference -} - -func (m FileManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["FileManager"] = reflect.TypeOf((*FileManager)(nil)).Elem() -} - -type Folder struct { - ManagedEntity - - ChildType []string `mo:"childType"` - ChildEntity []types.ManagedObjectReference `mo:"childEntity"` -} - -func (m *Folder) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["Folder"] = reflect.TypeOf((*Folder)(nil)).Elem() -} - -type GuestAliasManager struct { - Self types.ManagedObjectReference -} - -func (m GuestAliasManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["GuestAliasManager"] = reflect.TypeOf((*GuestAliasManager)(nil)).Elem() -} - -type GuestAuthManager struct { - Self types.ManagedObjectReference -} - -func (m GuestAuthManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["GuestAuthManager"] = reflect.TypeOf((*GuestAuthManager)(nil)).Elem() -} - -type GuestFileManager struct { - Self types.ManagedObjectReference -} - -func (m GuestFileManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["GuestFileManager"] = reflect.TypeOf((*GuestFileManager)(nil)).Elem() -} - -type GuestOperationsManager struct { - Self types.ManagedObjectReference - - AuthManager *types.ManagedObjectReference `mo:"authManager"` - FileManager *types.ManagedObjectReference `mo:"fileManager"` - ProcessManager *types.ManagedObjectReference `mo:"processManager"` - GuestWindowsRegistryManager *types.ManagedObjectReference `mo:"guestWindowsRegistryManager"` - AliasManager *types.ManagedObjectReference `mo:"aliasManager"` -} - -func (m GuestOperationsManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["GuestOperationsManager"] = reflect.TypeOf((*GuestOperationsManager)(nil)).Elem() -} - -type GuestProcessManager struct { - Self types.ManagedObjectReference -} - -func (m GuestProcessManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["GuestProcessManager"] = reflect.TypeOf((*GuestProcessManager)(nil)).Elem() -} - -type GuestWindowsRegistryManager struct { - Self types.ManagedObjectReference -} - -func (m GuestWindowsRegistryManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["GuestWindowsRegistryManager"] = reflect.TypeOf((*GuestWindowsRegistryManager)(nil)).Elem() -} - -type HealthUpdateManager struct { - Self types.ManagedObjectReference -} - -func (m HealthUpdateManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HealthUpdateManager"] = reflect.TypeOf((*HealthUpdateManager)(nil)).Elem() -} - -type HistoryCollector struct { - Self types.ManagedObjectReference - - Filter types.AnyType `mo:"filter"` -} - -func (m HistoryCollector) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HistoryCollector"] = reflect.TypeOf((*HistoryCollector)(nil)).Elem() -} - -type HostAccessManager struct { - Self types.ManagedObjectReference - - LockdownMode types.HostLockdownMode `mo:"lockdownMode"` -} - -func (m HostAccessManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostAccessManager"] = reflect.TypeOf((*HostAccessManager)(nil)).Elem() -} - -type HostActiveDirectoryAuthentication struct { - HostDirectoryStore -} - -func init() { - t["HostActiveDirectoryAuthentication"] = reflect.TypeOf((*HostActiveDirectoryAuthentication)(nil)).Elem() -} - -type HostAuthenticationManager struct { - Self types.ManagedObjectReference - - Info types.HostAuthenticationManagerInfo `mo:"info"` - SupportedStore []types.ManagedObjectReference `mo:"supportedStore"` -} - -func (m HostAuthenticationManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostAuthenticationManager"] = reflect.TypeOf((*HostAuthenticationManager)(nil)).Elem() -} - -type HostAuthenticationStore struct { - Self types.ManagedObjectReference - - Info types.BaseHostAuthenticationStoreInfo `mo:"info"` -} - -func (m HostAuthenticationStore) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostAuthenticationStore"] = reflect.TypeOf((*HostAuthenticationStore)(nil)).Elem() -} - -type HostAutoStartManager struct { - Self types.ManagedObjectReference - - Config types.HostAutoStartManagerConfig `mo:"config"` -} - -func (m HostAutoStartManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostAutoStartManager"] = reflect.TypeOf((*HostAutoStartManager)(nil)).Elem() -} - -type HostBootDeviceSystem struct { - Self types.ManagedObjectReference -} - -func (m HostBootDeviceSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostBootDeviceSystem"] = reflect.TypeOf((*HostBootDeviceSystem)(nil)).Elem() -} - -type HostCacheConfigurationManager struct { - Self types.ManagedObjectReference - - CacheConfigurationInfo []types.HostCacheConfigurationInfo `mo:"cacheConfigurationInfo"` -} - -func (m HostCacheConfigurationManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostCacheConfigurationManager"] = reflect.TypeOf((*HostCacheConfigurationManager)(nil)).Elem() -} - -type HostCertificateManager struct { - Self types.ManagedObjectReference - - CertificateInfo types.HostCertificateManagerCertificateInfo `mo:"certificateInfo"` -} - -func (m HostCertificateManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostCertificateManager"] = reflect.TypeOf((*HostCertificateManager)(nil)).Elem() -} - -type HostCpuSchedulerSystem struct { - ExtensibleManagedObject - - HyperthreadInfo *types.HostHyperThreadScheduleInfo `mo:"hyperthreadInfo"` -} - -func init() { - t["HostCpuSchedulerSystem"] = reflect.TypeOf((*HostCpuSchedulerSystem)(nil)).Elem() -} - -type HostDatastoreBrowser struct { - Self types.ManagedObjectReference - - Datastore []types.ManagedObjectReference `mo:"datastore"` - SupportedType []types.BaseFileQuery `mo:"supportedType"` -} - -func (m HostDatastoreBrowser) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostDatastoreBrowser"] = reflect.TypeOf((*HostDatastoreBrowser)(nil)).Elem() -} - -type HostDatastoreSystem struct { - Self types.ManagedObjectReference - - Datastore []types.ManagedObjectReference `mo:"datastore"` - Capabilities types.HostDatastoreSystemCapabilities `mo:"capabilities"` -} - -func (m HostDatastoreSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostDatastoreSystem"] = reflect.TypeOf((*HostDatastoreSystem)(nil)).Elem() -} - -type HostDateTimeSystem struct { - Self types.ManagedObjectReference - - DateTimeInfo types.HostDateTimeInfo `mo:"dateTimeInfo"` -} - -func (m HostDateTimeSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostDateTimeSystem"] = reflect.TypeOf((*HostDateTimeSystem)(nil)).Elem() -} - -type HostDiagnosticSystem struct { - Self types.ManagedObjectReference - - ActivePartition *types.HostDiagnosticPartition `mo:"activePartition"` -} - -func (m HostDiagnosticSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostDiagnosticSystem"] = reflect.TypeOf((*HostDiagnosticSystem)(nil)).Elem() -} - -type HostDirectoryStore struct { - HostAuthenticationStore -} - -func init() { - t["HostDirectoryStore"] = reflect.TypeOf((*HostDirectoryStore)(nil)).Elem() -} - -type HostEsxAgentHostManager struct { - Self types.ManagedObjectReference - - ConfigInfo types.HostEsxAgentHostManagerConfigInfo `mo:"configInfo"` -} - -func (m HostEsxAgentHostManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostEsxAgentHostManager"] = reflect.TypeOf((*HostEsxAgentHostManager)(nil)).Elem() -} - -type HostFirewallSystem struct { - ExtensibleManagedObject - - FirewallInfo *types.HostFirewallInfo `mo:"firewallInfo"` -} - -func init() { - t["HostFirewallSystem"] = reflect.TypeOf((*HostFirewallSystem)(nil)).Elem() -} - -type HostFirmwareSystem struct { - Self types.ManagedObjectReference -} - -func (m HostFirmwareSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostFirmwareSystem"] = reflect.TypeOf((*HostFirmwareSystem)(nil)).Elem() -} - -type HostGraphicsManager struct { - ExtensibleManagedObject - - GraphicsInfo []types.HostGraphicsInfo `mo:"graphicsInfo"` - GraphicsConfig *types.HostGraphicsConfig `mo:"graphicsConfig"` - SharedPassthruGpuTypes []string `mo:"sharedPassthruGpuTypes"` -} - -func init() { - t["HostGraphicsManager"] = reflect.TypeOf((*HostGraphicsManager)(nil)).Elem() -} - -type HostHealthStatusSystem struct { - Self types.ManagedObjectReference - - Runtime types.HealthSystemRuntime `mo:"runtime"` -} - -func (m HostHealthStatusSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostHealthStatusSystem"] = reflect.TypeOf((*HostHealthStatusSystem)(nil)).Elem() -} - -type HostImageConfigManager struct { - Self types.ManagedObjectReference -} - -func (m HostImageConfigManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostImageConfigManager"] = reflect.TypeOf((*HostImageConfigManager)(nil)).Elem() -} - -type HostKernelModuleSystem struct { - Self types.ManagedObjectReference -} - -func (m HostKernelModuleSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostKernelModuleSystem"] = reflect.TypeOf((*HostKernelModuleSystem)(nil)).Elem() -} - -type HostLocalAccountManager struct { - Self types.ManagedObjectReference -} - -func (m HostLocalAccountManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostLocalAccountManager"] = reflect.TypeOf((*HostLocalAccountManager)(nil)).Elem() -} - -type HostLocalAuthentication struct { - HostAuthenticationStore -} - -func init() { - t["HostLocalAuthentication"] = reflect.TypeOf((*HostLocalAuthentication)(nil)).Elem() -} - -type HostMemorySystem struct { - ExtensibleManagedObject - - ConsoleReservationInfo *types.ServiceConsoleReservationInfo `mo:"consoleReservationInfo"` - VirtualMachineReservationInfo *types.VirtualMachineMemoryReservationInfo `mo:"virtualMachineReservationInfo"` -} - -func init() { - t["HostMemorySystem"] = reflect.TypeOf((*HostMemorySystem)(nil)).Elem() -} - -type HostNetworkSystem struct { - ExtensibleManagedObject - - Capabilities *types.HostNetCapabilities `mo:"capabilities"` - NetworkInfo *types.HostNetworkInfo `mo:"networkInfo"` - OffloadCapabilities *types.HostNetOffloadCapabilities `mo:"offloadCapabilities"` - NetworkConfig *types.HostNetworkConfig `mo:"networkConfig"` - DnsConfig types.BaseHostDnsConfig `mo:"dnsConfig"` - IpRouteConfig types.BaseHostIpRouteConfig `mo:"ipRouteConfig"` - ConsoleIpRouteConfig types.BaseHostIpRouteConfig `mo:"consoleIpRouteConfig"` -} - -func init() { - t["HostNetworkSystem"] = reflect.TypeOf((*HostNetworkSystem)(nil)).Elem() -} - -type HostPatchManager struct { - Self types.ManagedObjectReference -} - -func (m HostPatchManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostPatchManager"] = reflect.TypeOf((*HostPatchManager)(nil)).Elem() -} - -type HostPciPassthruSystem struct { - ExtensibleManagedObject - - PciPassthruInfo []types.BaseHostPciPassthruInfo `mo:"pciPassthruInfo"` - SriovDevicePoolInfo []types.BaseHostSriovDevicePoolInfo `mo:"sriovDevicePoolInfo"` -} - -func init() { - t["HostPciPassthruSystem"] = reflect.TypeOf((*HostPciPassthruSystem)(nil)).Elem() -} - -type HostPowerSystem struct { - Self types.ManagedObjectReference - - Capability types.PowerSystemCapability `mo:"capability"` - Info types.PowerSystemInfo `mo:"info"` -} - -func (m HostPowerSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostPowerSystem"] = reflect.TypeOf((*HostPowerSystem)(nil)).Elem() -} - -type HostProfile struct { - Profile - - ReferenceHost *types.ManagedObjectReference `mo:"referenceHost"` -} - -func init() { - t["HostProfile"] = reflect.TypeOf((*HostProfile)(nil)).Elem() -} - -type HostProfileManager struct { - ProfileManager -} - -func init() { - t["HostProfileManager"] = reflect.TypeOf((*HostProfileManager)(nil)).Elem() -} - -type HostServiceSystem struct { - ExtensibleManagedObject - - ServiceInfo types.HostServiceInfo `mo:"serviceInfo"` -} - -func init() { - t["HostServiceSystem"] = reflect.TypeOf((*HostServiceSystem)(nil)).Elem() -} - -type HostSnmpSystem struct { - Self types.ManagedObjectReference - - Configuration types.HostSnmpConfigSpec `mo:"configuration"` - Limits types.HostSnmpSystemAgentLimits `mo:"limits"` -} - -func (m HostSnmpSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostSnmpSystem"] = reflect.TypeOf((*HostSnmpSystem)(nil)).Elem() -} - -type HostSpecificationManager struct { - Self types.ManagedObjectReference -} - -func (m HostSpecificationManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostSpecificationManager"] = reflect.TypeOf((*HostSpecificationManager)(nil)).Elem() -} - -type HostStorageSystem struct { - ExtensibleManagedObject - - StorageDeviceInfo *types.HostStorageDeviceInfo `mo:"storageDeviceInfo"` - FileSystemVolumeInfo types.HostFileSystemVolumeInfo `mo:"fileSystemVolumeInfo"` - SystemFile []string `mo:"systemFile"` - MultipathStateInfo *types.HostMultipathStateInfo `mo:"multipathStateInfo"` -} - -func init() { - t["HostStorageSystem"] = reflect.TypeOf((*HostStorageSystem)(nil)).Elem() -} - -type HostSystem struct { - ManagedEntity - - Runtime types.HostRuntimeInfo `mo:"runtime"` - Summary types.HostListSummary `mo:"summary"` - Hardware *types.HostHardwareInfo `mo:"hardware"` - Capability *types.HostCapability `mo:"capability"` - LicensableResource types.HostLicensableResourceInfo `mo:"licensableResource"` - ConfigManager types.HostConfigManager `mo:"configManager"` - Config *types.HostConfigInfo `mo:"config"` - Vm []types.ManagedObjectReference `mo:"vm"` - Datastore []types.ManagedObjectReference `mo:"datastore"` - Network []types.ManagedObjectReference `mo:"network"` - DatastoreBrowser types.ManagedObjectReference `mo:"datastoreBrowser"` - SystemResources *types.HostSystemResourceInfo `mo:"systemResources"` -} - -func (m *HostSystem) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["HostSystem"] = reflect.TypeOf((*HostSystem)(nil)).Elem() -} - -type HostVFlashManager struct { - Self types.ManagedObjectReference - - VFlashConfigInfo *types.HostVFlashManagerVFlashConfigInfo `mo:"vFlashConfigInfo"` -} - -func (m HostVFlashManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostVFlashManager"] = reflect.TypeOf((*HostVFlashManager)(nil)).Elem() -} - -type HostVMotionSystem struct { - ExtensibleManagedObject - - NetConfig *types.HostVMotionNetConfig `mo:"netConfig"` - IpConfig *types.HostIpConfig `mo:"ipConfig"` -} - -func init() { - t["HostVMotionSystem"] = reflect.TypeOf((*HostVMotionSystem)(nil)).Elem() -} - -type HostVStorageObjectManager struct { - VStorageObjectManagerBase -} - -func init() { - t["HostVStorageObjectManager"] = reflect.TypeOf((*HostVStorageObjectManager)(nil)).Elem() -} - -type HostVirtualNicManager struct { - ExtensibleManagedObject - - Info types.HostVirtualNicManagerInfo `mo:"info"` -} - -func init() { - t["HostVirtualNicManager"] = reflect.TypeOf((*HostVirtualNicManager)(nil)).Elem() -} - -type HostVsanInternalSystem struct { - Self types.ManagedObjectReference -} - -func (m HostVsanInternalSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostVsanInternalSystem"] = reflect.TypeOf((*HostVsanInternalSystem)(nil)).Elem() -} - -type HostVsanSystem struct { - Self types.ManagedObjectReference - - Config types.VsanHostConfigInfo `mo:"config"` -} - -func (m HostVsanSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HostVsanSystem"] = reflect.TypeOf((*HostVsanSystem)(nil)).Elem() -} - -type HttpNfcLease struct { - Self types.ManagedObjectReference - - InitializeProgress int32 `mo:"initializeProgress"` - Info *types.HttpNfcLeaseInfo `mo:"info"` - State types.HttpNfcLeaseState `mo:"state"` - Error *types.LocalizedMethodFault `mo:"error"` -} - -func (m HttpNfcLease) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["HttpNfcLease"] = reflect.TypeOf((*HttpNfcLease)(nil)).Elem() -} - -type InventoryView struct { - ManagedObjectView -} - -func init() { - t["InventoryView"] = reflect.TypeOf((*InventoryView)(nil)).Elem() -} - -type IoFilterManager struct { - Self types.ManagedObjectReference -} - -func (m IoFilterManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["IoFilterManager"] = reflect.TypeOf((*IoFilterManager)(nil)).Elem() -} - -type IpPoolManager struct { - Self types.ManagedObjectReference -} - -func (m IpPoolManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["IpPoolManager"] = reflect.TypeOf((*IpPoolManager)(nil)).Elem() -} - -type IscsiManager struct { - Self types.ManagedObjectReference -} - -func (m IscsiManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["IscsiManager"] = reflect.TypeOf((*IscsiManager)(nil)).Elem() -} - -type LicenseAssignmentManager struct { - Self types.ManagedObjectReference -} - -func (m LicenseAssignmentManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["LicenseAssignmentManager"] = reflect.TypeOf((*LicenseAssignmentManager)(nil)).Elem() -} - -type LicenseManager struct { - Self types.ManagedObjectReference - - Source types.BaseLicenseSource `mo:"source"` - SourceAvailable bool `mo:"sourceAvailable"` - Diagnostics *types.LicenseDiagnostics `mo:"diagnostics"` - FeatureInfo []types.LicenseFeatureInfo `mo:"featureInfo"` - LicensedEdition string `mo:"licensedEdition"` - Licenses []types.LicenseManagerLicenseInfo `mo:"licenses"` - LicenseAssignmentManager *types.ManagedObjectReference `mo:"licenseAssignmentManager"` - Evaluation types.LicenseManagerEvaluationInfo `mo:"evaluation"` -} - -func (m LicenseManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["LicenseManager"] = reflect.TypeOf((*LicenseManager)(nil)).Elem() -} - -type ListView struct { - ManagedObjectView -} - -func init() { - t["ListView"] = reflect.TypeOf((*ListView)(nil)).Elem() -} - -type LocalizationManager struct { - Self types.ManagedObjectReference - - Catalog []types.LocalizationManagerMessageCatalog `mo:"catalog"` -} - -func (m LocalizationManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["LocalizationManager"] = reflect.TypeOf((*LocalizationManager)(nil)).Elem() -} - -type ManagedEntity struct { - ExtensibleManagedObject - - Parent *types.ManagedObjectReference `mo:"parent"` - CustomValue []types.BaseCustomFieldValue `mo:"customValue"` - OverallStatus types.ManagedEntityStatus `mo:"overallStatus"` - ConfigStatus types.ManagedEntityStatus `mo:"configStatus"` - ConfigIssue []types.BaseEvent `mo:"configIssue"` - EffectiveRole []int32 `mo:"effectiveRole"` - Permission []types.Permission `mo:"permission"` - Name string `mo:"name"` - DisabledMethod []string `mo:"disabledMethod"` - RecentTask []types.ManagedObjectReference `mo:"recentTask"` - DeclaredAlarmState []types.AlarmState `mo:"declaredAlarmState"` - TriggeredAlarmState []types.AlarmState `mo:"triggeredAlarmState"` - AlarmActionsEnabled *bool `mo:"alarmActionsEnabled"` - Tag []types.Tag `mo:"tag"` -} - -func init() { - t["ManagedEntity"] = reflect.TypeOf((*ManagedEntity)(nil)).Elem() -} - -type ManagedObjectView struct { - Self types.ManagedObjectReference - - View []types.ManagedObjectReference `mo:"view"` -} - -func (m ManagedObjectView) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ManagedObjectView"] = reflect.TypeOf((*ManagedObjectView)(nil)).Elem() -} - -type MessageBusProxy struct { - Self types.ManagedObjectReference -} - -func (m MessageBusProxy) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["MessageBusProxy"] = reflect.TypeOf((*MessageBusProxy)(nil)).Elem() -} - -type Network struct { - ManagedEntity - - Name string `mo:"name"` - Summary types.BaseNetworkSummary `mo:"summary"` - Host []types.ManagedObjectReference `mo:"host"` - Vm []types.ManagedObjectReference `mo:"vm"` -} - -func (m *Network) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["Network"] = reflect.TypeOf((*Network)(nil)).Elem() -} - -type OpaqueNetwork struct { - Network - - Capability *types.OpaqueNetworkCapability `mo:"capability"` - ExtraConfig []types.BaseOptionValue `mo:"extraConfig"` -} - -func init() { - t["OpaqueNetwork"] = reflect.TypeOf((*OpaqueNetwork)(nil)).Elem() -} - -type OptionManager struct { - Self types.ManagedObjectReference - - SupportedOption []types.OptionDef `mo:"supportedOption"` - Setting []types.BaseOptionValue `mo:"setting"` -} - -func (m OptionManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["OptionManager"] = reflect.TypeOf((*OptionManager)(nil)).Elem() -} - -type OverheadMemoryManager struct { - Self types.ManagedObjectReference -} - -func (m OverheadMemoryManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["OverheadMemoryManager"] = reflect.TypeOf((*OverheadMemoryManager)(nil)).Elem() -} - -type OvfManager struct { - Self types.ManagedObjectReference - - OvfImportOption []types.OvfOptionInfo `mo:"ovfImportOption"` - OvfExportOption []types.OvfOptionInfo `mo:"ovfExportOption"` -} - -func (m OvfManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["OvfManager"] = reflect.TypeOf((*OvfManager)(nil)).Elem() -} - -type PerformanceManager struct { - Self types.ManagedObjectReference - - Description types.PerformanceDescription `mo:"description"` - HistoricalInterval []types.PerfInterval `mo:"historicalInterval"` - PerfCounter []types.PerfCounterInfo `mo:"perfCounter"` -} - -func (m PerformanceManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["PerformanceManager"] = reflect.TypeOf((*PerformanceManager)(nil)).Elem() -} - -type Profile struct { - Self types.ManagedObjectReference - - Config types.BaseProfileConfigInfo `mo:"config"` - Description *types.ProfileDescription `mo:"description"` - Name string `mo:"name"` - CreatedTime time.Time `mo:"createdTime"` - ModifiedTime time.Time `mo:"modifiedTime"` - Entity []types.ManagedObjectReference `mo:"entity"` - ComplianceStatus string `mo:"complianceStatus"` -} - -func (m Profile) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["Profile"] = reflect.TypeOf((*Profile)(nil)).Elem() -} - -type ProfileComplianceManager struct { - Self types.ManagedObjectReference -} - -func (m ProfileComplianceManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ProfileComplianceManager"] = reflect.TypeOf((*ProfileComplianceManager)(nil)).Elem() -} - -type ProfileManager struct { - Self types.ManagedObjectReference - - Profile []types.ManagedObjectReference `mo:"profile"` -} - -func (m ProfileManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ProfileManager"] = reflect.TypeOf((*ProfileManager)(nil)).Elem() -} - -type PropertyCollector struct { - Self types.ManagedObjectReference - - Filter []types.ManagedObjectReference `mo:"filter"` -} - -func (m PropertyCollector) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["PropertyCollector"] = reflect.TypeOf((*PropertyCollector)(nil)).Elem() -} - -type PropertyFilter struct { - Self types.ManagedObjectReference - - Spec types.PropertyFilterSpec `mo:"spec"` - PartialUpdates bool `mo:"partialUpdates"` -} - -func (m PropertyFilter) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["PropertyFilter"] = reflect.TypeOf((*PropertyFilter)(nil)).Elem() -} - -type ResourcePlanningManager struct { - Self types.ManagedObjectReference -} - -func (m ResourcePlanningManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ResourcePlanningManager"] = reflect.TypeOf((*ResourcePlanningManager)(nil)).Elem() -} - -type ResourcePool struct { - ManagedEntity - - Summary types.BaseResourcePoolSummary `mo:"summary"` - Runtime types.ResourcePoolRuntimeInfo `mo:"runtime"` - Owner types.ManagedObjectReference `mo:"owner"` - ResourcePool []types.ManagedObjectReference `mo:"resourcePool"` - Vm []types.ManagedObjectReference `mo:"vm"` - Config types.ResourceConfigSpec `mo:"config"` - ChildConfiguration []types.ResourceConfigSpec `mo:"childConfiguration"` -} - -func (m *ResourcePool) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["ResourcePool"] = reflect.TypeOf((*ResourcePool)(nil)).Elem() -} - -type ScheduledTask struct { - ExtensibleManagedObject - - Info types.ScheduledTaskInfo `mo:"info"` -} - -func init() { - t["ScheduledTask"] = reflect.TypeOf((*ScheduledTask)(nil)).Elem() -} - -type ScheduledTaskManager struct { - Self types.ManagedObjectReference - - ScheduledTask []types.ManagedObjectReference `mo:"scheduledTask"` - Description types.ScheduledTaskDescription `mo:"description"` -} - -func (m ScheduledTaskManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ScheduledTaskManager"] = reflect.TypeOf((*ScheduledTaskManager)(nil)).Elem() -} - -type SearchIndex struct { - Self types.ManagedObjectReference -} - -func (m SearchIndex) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["SearchIndex"] = reflect.TypeOf((*SearchIndex)(nil)).Elem() -} - -type ServiceInstance struct { - Self types.ManagedObjectReference - - ServerClock time.Time `mo:"serverClock"` - Capability types.Capability `mo:"capability"` - Content types.ServiceContent `mo:"content"` -} - -func (m ServiceInstance) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ServiceInstance"] = reflect.TypeOf((*ServiceInstance)(nil)).Elem() -} - -type ServiceManager struct { - Self types.ManagedObjectReference - - Service []types.ServiceManagerServiceInfo `mo:"service"` -} - -func (m ServiceManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ServiceManager"] = reflect.TypeOf((*ServiceManager)(nil)).Elem() -} - -type SessionManager struct { - Self types.ManagedObjectReference - - SessionList []types.UserSession `mo:"sessionList"` - CurrentSession *types.UserSession `mo:"currentSession"` - Message *string `mo:"message"` - MessageLocaleList []string `mo:"messageLocaleList"` - SupportedLocaleList []string `mo:"supportedLocaleList"` - DefaultLocale string `mo:"defaultLocale"` -} - -func (m SessionManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["SessionManager"] = reflect.TypeOf((*SessionManager)(nil)).Elem() -} - -type SimpleCommand struct { - Self types.ManagedObjectReference - - EncodingType types.SimpleCommandEncoding `mo:"encodingType"` - Entity types.ServiceManagerServiceInfo `mo:"entity"` -} - -func (m SimpleCommand) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["SimpleCommand"] = reflect.TypeOf((*SimpleCommand)(nil)).Elem() -} - -type StoragePod struct { - Folder - - Summary *types.StoragePodSummary `mo:"summary"` - PodStorageDrsEntry *types.PodStorageDrsEntry `mo:"podStorageDrsEntry"` -} - -func init() { - t["StoragePod"] = reflect.TypeOf((*StoragePod)(nil)).Elem() -} - -type StorageResourceManager struct { - Self types.ManagedObjectReference -} - -func (m StorageResourceManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["StorageResourceManager"] = reflect.TypeOf((*StorageResourceManager)(nil)).Elem() -} - -type Task struct { - ExtensibleManagedObject - - Info types.TaskInfo `mo:"info"` -} - -func init() { - t["Task"] = reflect.TypeOf((*Task)(nil)).Elem() -} - -type TaskHistoryCollector struct { - HistoryCollector - - LatestPage []types.TaskInfo `mo:"latestPage"` -} - -func init() { - t["TaskHistoryCollector"] = reflect.TypeOf((*TaskHistoryCollector)(nil)).Elem() -} - -type TaskManager struct { - Self types.ManagedObjectReference - - RecentTask []types.ManagedObjectReference `mo:"recentTask"` - Description types.TaskDescription `mo:"description"` - MaxCollector int32 `mo:"maxCollector"` -} - -func (m TaskManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["TaskManager"] = reflect.TypeOf((*TaskManager)(nil)).Elem() -} - -type UserDirectory struct { - Self types.ManagedObjectReference - - DomainList []string `mo:"domainList"` -} - -func (m UserDirectory) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["UserDirectory"] = reflect.TypeOf((*UserDirectory)(nil)).Elem() -} - -type VStorageObjectManagerBase struct { - Self types.ManagedObjectReference -} - -func (m VStorageObjectManagerBase) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["VStorageObjectManagerBase"] = reflect.TypeOf((*VStorageObjectManagerBase)(nil)).Elem() -} - -type VcenterVStorageObjectManager struct { - VStorageObjectManagerBase -} - -func init() { - t["VcenterVStorageObjectManager"] = reflect.TypeOf((*VcenterVStorageObjectManager)(nil)).Elem() -} - -type View struct { - Self types.ManagedObjectReference -} - -func (m View) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["View"] = reflect.TypeOf((*View)(nil)).Elem() -} - -type ViewManager struct { - Self types.ManagedObjectReference - - ViewList []types.ManagedObjectReference `mo:"viewList"` -} - -func (m ViewManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["ViewManager"] = reflect.TypeOf((*ViewManager)(nil)).Elem() -} - -type VirtualApp struct { - ResourcePool - - ParentFolder *types.ManagedObjectReference `mo:"parentFolder"` - Datastore []types.ManagedObjectReference `mo:"datastore"` - Network []types.ManagedObjectReference `mo:"network"` - VAppConfig *types.VAppConfigInfo `mo:"vAppConfig"` - ParentVApp *types.ManagedObjectReference `mo:"parentVApp"` - ChildLink []types.VirtualAppLinkInfo `mo:"childLink"` -} - -func init() { - t["VirtualApp"] = reflect.TypeOf((*VirtualApp)(nil)).Elem() -} - -type VirtualDiskManager struct { - Self types.ManagedObjectReference -} - -func (m VirtualDiskManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["VirtualDiskManager"] = reflect.TypeOf((*VirtualDiskManager)(nil)).Elem() -} - -type VirtualMachine struct { - ManagedEntity - - Capability types.VirtualMachineCapability `mo:"capability"` - Config *types.VirtualMachineConfigInfo `mo:"config"` - Layout *types.VirtualMachineFileLayout `mo:"layout"` - LayoutEx *types.VirtualMachineFileLayoutEx `mo:"layoutEx"` - Storage *types.VirtualMachineStorageInfo `mo:"storage"` - EnvironmentBrowser types.ManagedObjectReference `mo:"environmentBrowser"` - ResourcePool *types.ManagedObjectReference `mo:"resourcePool"` - ParentVApp *types.ManagedObjectReference `mo:"parentVApp"` - ResourceConfig *types.ResourceConfigSpec `mo:"resourceConfig"` - Runtime types.VirtualMachineRuntimeInfo `mo:"runtime"` - Guest *types.GuestInfo `mo:"guest"` - Summary types.VirtualMachineSummary `mo:"summary"` - Datastore []types.ManagedObjectReference `mo:"datastore"` - Network []types.ManagedObjectReference `mo:"network"` - Snapshot *types.VirtualMachineSnapshotInfo `mo:"snapshot"` - RootSnapshot []types.ManagedObjectReference `mo:"rootSnapshot"` - GuestHeartbeatStatus types.ManagedEntityStatus `mo:"guestHeartbeatStatus"` -} - -func (m *VirtualMachine) Entity() *ManagedEntity { - return &m.ManagedEntity -} - -func init() { - t["VirtualMachine"] = reflect.TypeOf((*VirtualMachine)(nil)).Elem() -} - -type VirtualMachineCompatibilityChecker struct { - Self types.ManagedObjectReference -} - -func (m VirtualMachineCompatibilityChecker) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["VirtualMachineCompatibilityChecker"] = reflect.TypeOf((*VirtualMachineCompatibilityChecker)(nil)).Elem() -} - -type VirtualMachineProvisioningChecker struct { - Self types.ManagedObjectReference -} - -func (m VirtualMachineProvisioningChecker) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["VirtualMachineProvisioningChecker"] = reflect.TypeOf((*VirtualMachineProvisioningChecker)(nil)).Elem() -} - -type VirtualMachineSnapshot struct { - ExtensibleManagedObject - - Config types.VirtualMachineConfigInfo `mo:"config"` - ChildSnapshot []types.ManagedObjectReference `mo:"childSnapshot"` - Vm types.ManagedObjectReference `mo:"vm"` -} - -func init() { - t["VirtualMachineSnapshot"] = reflect.TypeOf((*VirtualMachineSnapshot)(nil)).Elem() -} - -type VirtualizationManager struct { - Self types.ManagedObjectReference -} - -func (m VirtualizationManager) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["VirtualizationManager"] = reflect.TypeOf((*VirtualizationManager)(nil)).Elem() -} - -type VmwareDistributedVirtualSwitch struct { - DistributedVirtualSwitch -} - -func init() { - t["VmwareDistributedVirtualSwitch"] = reflect.TypeOf((*VmwareDistributedVirtualSwitch)(nil)).Elem() -} - -type VsanUpgradeSystem struct { - Self types.ManagedObjectReference -} - -func (m VsanUpgradeSystem) Reference() types.ManagedObjectReference { - return m.Self -} - -func init() { - t["VsanUpgradeSystem"] = reflect.TypeOf((*VsanUpgradeSystem)(nil)).Elem() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/reference.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/reference.go deleted file mode 100644 index 465edbe8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/reference.go +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 mo - -import "github.com/vmware/govmomi/vim25/types" - -// Reference is the interface that is implemented by all the managed objects -// defined in this package. It specifies that these managed objects have a -// function that returns the managed object reference to themselves. -type Reference interface { - Reference() types.ManagedObjectReference -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/registry.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/registry.go deleted file mode 100644 index deacf508..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/registry.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 mo - -import "reflect" - -var t = map[string]reflect.Type{} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go deleted file mode 100644 index e7ffc32c..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright (c) 2014-2015 VMware, 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 mo - -import ( - "context" - "reflect" - - "github.com/vmware/govmomi/vim25/methods" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" -) - -func ignoreMissingProperty(ref types.ManagedObjectReference, p types.MissingProperty) bool { - switch ref.Type { - case "VirtualMachine": - switch p.Path { - case "environmentBrowser": - // See https://github.com/vmware/govmomi/pull/242 - return true - case "alarmActionsEnabled": - // Seen with vApp child VM - return true - } - } - - return false -} - -// ObjectContentToType loads an ObjectContent value into the value it -// represents. If the ObjectContent value has a non-empty 'MissingSet' field, -// it returns the first fault it finds there as error. If the 'MissingSet' -// field is empty, it returns a pointer to a reflect.Value. It handles contain -// nested properties, such as 'guest.ipAddress' or 'config.hardware'. -func ObjectContentToType(o types.ObjectContent) (interface{}, error) { - // Expect no properties in the missing set - for _, p := range o.MissingSet { - if ignoreMissingProperty(o.Obj, p) { - continue - } - - return nil, soap.WrapVimFault(p.Fault.Fault) - } - - ti := typeInfoForType(o.Obj.Type) - v, err := ti.LoadFromObjectContent(o) - if err != nil { - return nil, err - } - - return v.Elem().Interface(), nil -} - -// LoadRetrievePropertiesResponse converts the response of a call to -// RetrieveProperties to one or more managed objects. -func LoadRetrievePropertiesResponse(res *types.RetrievePropertiesResponse, dst interface{}) error { - rt := reflect.TypeOf(dst) - if rt == nil || rt.Kind() != reflect.Ptr { - panic("need pointer") - } - - rv := reflect.ValueOf(dst).Elem() - if !rv.CanSet() { - panic("cannot set dst") - } - - isSlice := false - switch rt.Elem().Kind() { - case reflect.Struct: - case reflect.Slice: - isSlice = true - default: - panic("unexpected type") - } - - if isSlice { - for _, p := range res.Returnval { - v, err := ObjectContentToType(p) - if err != nil { - return err - } - - vt := reflect.TypeOf(v) - - if !rv.Type().AssignableTo(vt) { - // For example: dst is []ManagedEntity, res is []HostSystem - if field, ok := vt.FieldByName(rt.Elem().Elem().Name()); ok && field.Anonymous { - rv.Set(reflect.Append(rv, reflect.ValueOf(v).FieldByIndex(field.Index))) - continue - } - } - - rv.Set(reflect.Append(rv, reflect.ValueOf(v))) - } - } else { - switch len(res.Returnval) { - case 0: - case 1: - v, err := ObjectContentToType(res.Returnval[0]) - if err != nil { - return err - } - - vt := reflect.TypeOf(v) - - if !rv.Type().AssignableTo(vt) { - // For example: dst is ComputeResource, res is ClusterComputeResource - if field, ok := vt.FieldByName(rt.Elem().Name()); ok && field.Anonymous { - rv.Set(reflect.ValueOf(v).FieldByIndex(field.Index)) - return nil - } - } - - rv.Set(reflect.ValueOf(v)) - default: - // If dst is not a slice, expect to receive 0 or 1 results - panic("more than 1 result") - } - } - - return nil -} - -// RetrievePropertiesForRequest calls the RetrieveProperties method with the -// specified request and decodes the response struct into the value pointed to -// by dst. -func RetrievePropertiesForRequest(ctx context.Context, r soap.RoundTripper, req types.RetrieveProperties, dst interface{}) error { - res, err := methods.RetrieveProperties(ctx, r, &req) - if err != nil { - return err - } - - return LoadRetrievePropertiesResponse(res, dst) -} - -// RetrieveProperties retrieves the properties of the managed object specified -// as obj and decodes the response struct into the value pointed to by dst. -func RetrieveProperties(ctx context.Context, r soap.RoundTripper, pc, obj types.ManagedObjectReference, dst interface{}) error { - req := types.RetrieveProperties{ - This: pc, - SpecSet: []types.PropertyFilterSpec{ - { - ObjectSet: []types.ObjectSpec{ - { - Obj: obj, - Skip: types.NewBool(false), - }, - }, - PropSet: []types.PropertySpec{ - { - All: types.NewBool(true), - Type: obj.Type, - }, - }, - }, - }, - } - - return RetrievePropertiesForRequest(ctx, r, req, dst) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go deleted file mode 100644 index 0c9e5b03..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go +++ /dev/null @@ -1,247 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 mo - -import ( - "fmt" - "reflect" - "regexp" - "strings" - "sync" - - "github.com/vmware/govmomi/vim25/types" -) - -type typeInfo struct { - typ reflect.Type - - // Field indices of "Self" field. - self []int - - // Map property names to field indices. - props map[string][]int -} - -var typeInfoLock sync.RWMutex -var typeInfoMap = make(map[string]*typeInfo) - -func typeInfoForType(tname string) *typeInfo { - typeInfoLock.RLock() - ti, ok := typeInfoMap[tname] - typeInfoLock.RUnlock() - - if ok { - return ti - } - - // Create new typeInfo for type. - if typ, ok := t[tname]; !ok { - panic("unknown type: " + tname) - } else { - // Multiple routines may race to set it, but the result is the same. - typeInfoLock.Lock() - ti = newTypeInfo(typ) - typeInfoMap[tname] = ti - typeInfoLock.Unlock() - } - - return ti -} - -func newTypeInfo(typ reflect.Type) *typeInfo { - t := typeInfo{ - typ: typ, - props: make(map[string][]int), - } - - t.build(typ, "", []int{}) - - return &t -} - -var managedObjectRefType = reflect.TypeOf((*types.ManagedObjectReference)(nil)).Elem() - -func buildName(fn string, f reflect.StructField) string { - if fn != "" { - fn += "." - } - - motag := f.Tag.Get("mo") - if motag != "" { - return fn + motag - } - - xmltag := f.Tag.Get("xml") - if xmltag != "" { - tokens := strings.Split(xmltag, ",") - if tokens[0] != "" { - return fn + tokens[0] - } - } - - return "" -} - -func (t *typeInfo) build(typ reflect.Type, fn string, fi []int) { - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - if typ.Kind() != reflect.Struct { - panic("need struct") - } - - for i := 0; i < typ.NumField(); i++ { - f := typ.Field(i) - ftyp := f.Type - - // Copy field indices so they can be passed along. - fic := make([]int, len(fi)+1) - copy(fic, fi) - fic[len(fi)] = i - - // Recurse into embedded field. - if f.Anonymous { - t.build(ftyp, fn, fic) - continue - } - - // Top level type has a "Self" field. - if f.Name == "Self" && ftyp == managedObjectRefType { - t.self = fic - continue - } - - fnc := buildName(fn, f) - if fnc == "" { - continue - } - - t.props[fnc] = fic - - // Dereference pointer. - if ftyp.Kind() == reflect.Ptr { - ftyp = ftyp.Elem() - } - - // Slices are not addressable by `foo.bar.qux`. - if ftyp.Kind() == reflect.Slice { - continue - } - - // Skip the managed reference type. - if ftyp == managedObjectRefType { - continue - } - - // Recurse into structs. - if ftyp.Kind() == reflect.Struct { - t.build(ftyp, fnc, fic) - } - } -} - -// assignValue assignes a value 'pv' to the struct pointed to by 'val', given a -// slice of field indices. It recurses into the struct until it finds the field -// specified by the indices. It creates new values for pointer types where -// needed. -func assignValue(val reflect.Value, fi []int, pv reflect.Value) { - // Create new value if necessary. - if val.Kind() == reflect.Ptr { - if val.IsNil() { - val.Set(reflect.New(val.Type().Elem())) - } - - val = val.Elem() - } - - rv := val.Field(fi[0]) - fi = fi[1:] - if len(fi) == 0 { - rt := rv.Type() - pt := pv.Type() - - // If type is a pointer, create new instance of type. - if rt.Kind() == reflect.Ptr { - rv.Set(reflect.New(rt.Elem())) - rv = rv.Elem() - rt = rv.Type() - } - - // If type is an interface, check if pv implements it. - if rt.Kind() == reflect.Interface && !pt.Implements(rt) { - // Check if pointer to pv implements it. - if reflect.PtrTo(pt).Implements(rt) { - npv := reflect.New(pt) - npv.Elem().Set(pv) - pv = npv - pt = pv.Type() - } else { - panic(fmt.Sprintf("type %s doesn't implement %s", pt.Name(), rt.Name())) - } - } - - if pt.AssignableTo(rt) { - rv.Set(pv) - } else if rt.ConvertibleTo(pt) { - rv.Set(pv.Convert(rt)) - } else { - panic(fmt.Sprintf("cannot assign %s (%s) to %s (%s)", rt.Name(), rt.Kind(), pt.Name(), pt.Kind())) - } - - return - } - - assignValue(rv, fi, pv) -} - -var arrayOfRegexp = regexp.MustCompile("ArrayOf(.*)$") - -func anyTypeToValue(t interface{}) reflect.Value { - rt := reflect.TypeOf(t) - rv := reflect.ValueOf(t) - - // Dereference if ArrayOfXYZ type - m := arrayOfRegexp.FindStringSubmatch(rt.Name()) - if len(m) > 0 { - // ArrayOfXYZ type has single field named XYZ - rv = rv.FieldByName(m[1]) - if !rv.IsValid() { - panic(fmt.Sprintf("expected %s type to have field %s", m[0], m[1])) - } - } - - return rv -} - -// LoadObjectFromContent loads properties from the 'PropSet' field in the -// specified ObjectContent value into the value it represents, which is -// returned as a reflect.Value. -func (t *typeInfo) LoadFromObjectContent(o types.ObjectContent) (reflect.Value, error) { - v := reflect.New(t.typ) - assignValue(v, t.self, reflect.ValueOf(o.Obj)) - - for _, p := range o.PropSet { - rv, ok := t.props[p.Name] - if !ok { - continue - } - assignValue(v, rv, anyTypeToValue(p.Val)) - } - - return v, nil -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/aggregator.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/aggregator.go deleted file mode 100644 index 24cb3d59..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/aggregator.go +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 progress - -import "sync" - -type Aggregator struct { - downstream Sinker - upstream chan (<-chan Report) - - done chan struct{} - w sync.WaitGroup -} - -func NewAggregator(s Sinker) *Aggregator { - a := &Aggregator{ - downstream: s, - upstream: make(chan (<-chan Report)), - - done: make(chan struct{}), - } - - a.w.Add(1) - go a.loop() - - return a -} - -func (a *Aggregator) loop() { - defer a.w.Done() - - dch := a.downstream.Sink() - defer close(dch) - - for { - select { - case uch := <-a.upstream: - // Drain upstream channel - for e := range uch { - dch <- e - } - case <-a.done: - return - } - } -} - -func (a *Aggregator) Sink() chan<- Report { - ch := make(chan Report) - a.upstream <- ch - return ch -} - -// Done marks the aggregator as done. No more calls to Sink() may be made and -// the downstream progress report channel will be closed when Done() returns. -func (a *Aggregator) Done() { - close(a.done) - a.w.Wait() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/doc.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/doc.go deleted file mode 100644 index a0458dd5..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/doc.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 progress - -/* -The progress package contains functionality to deal with progress reporting. -The functionality is built to serve progress reporting for infrastructure -operations when talking the vSphere API, but is generic enough to be used -elsewhere. - -At the core of this progress reporting API lies the Sinker interface. This -interface is implemented by any object that can act as a sink for progress -reports. Callers of the Sink() function receives a send-only channel for -progress reports. They are responsible for closing the channel when done. -This semantic makes it easy to keep track of multiple progress report channels; -they are only created when Sink() is called and assumed closed when any -function that receives a Sinker parameter returns. -*/ diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/prefix.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/prefix.go deleted file mode 100644 index 4f842ad9..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/prefix.go +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 progress - -import "fmt" - -type prefixedReport struct { - Report - prefix string -} - -func (r prefixedReport) Detail() string { - if d := r.Report.Detail(); d != "" { - return fmt.Sprintf("%s: %s", r.prefix, d) - } - - return r.prefix -} - -func prefixLoop(upstream <-chan Report, downstream chan<- Report, prefix string) { - defer close(downstream) - - for r := range upstream { - downstream <- prefixedReport{ - Report: r, - prefix: prefix, - } - } -} - -func Prefix(s Sinker, prefix string) Sinker { - fn := func() chan<- Report { - upstream := make(chan Report) - downstream := s.Sink() - go prefixLoop(upstream, downstream, prefix) - return upstream - } - - return SinkFunc(fn) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/reader.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/reader.go deleted file mode 100644 index a981cb4e..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/reader.go +++ /dev/null @@ -1,177 +0,0 @@ -/* -Copyright (c) 2014-2015 VMware, 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 progress - -import ( - "container/list" - "fmt" - "io" - "sync/atomic" - "time" -) - -type readerReport struct { - t time.Time - - pos int64 - size int64 - bps *uint64 - - err error -} - -func (r readerReport) Percentage() float32 { - return 100.0 * float32(r.pos) / float32(r.size) -} - -func (r readerReport) Detail() string { - const ( - KiB = 1024 - MiB = 1024 * KiB - GiB = 1024 * MiB - ) - - // Use the reader's bps field, so this report returns an up-to-date number. - // - // For example: if there hasn't been progress for the last 5 seconds, the - // most recent report should return "0B/s". - // - bps := atomic.LoadUint64(r.bps) - - switch { - case bps >= GiB: - return fmt.Sprintf("%.1fGiB/s", float32(bps)/float32(GiB)) - case bps >= MiB: - return fmt.Sprintf("%.1fMiB/s", float32(bps)/float32(MiB)) - case bps >= KiB: - return fmt.Sprintf("%.1fKiB/s", float32(bps)/float32(KiB)) - default: - return fmt.Sprintf("%dB/s", bps) - } -} - -func (p readerReport) Error() error { - return p.err -} - -// reader wraps an io.Reader and sends a progress report over a channel for -// every read it handles. -type reader struct { - r io.Reader - - pos int64 - size int64 - - bps uint64 - - ch chan<- Report -} - -func NewReader(s Sinker, r io.Reader, size int64) *reader { - pr := reader{ - r: r, - - size: size, - } - - // Reports must be sent downstream and to the bps computation loop. - pr.ch = Tee(s, newBpsLoop(&pr.bps)).Sink() - - return &pr -} - -// Read calls the Read function on the underlying io.Reader. Additionally, -// every read causes a progress report to be sent to the progress reader's -// underlying channel. -func (r *reader) Read(b []byte) (int, error) { - n, err := r.r.Read(b) - if err != nil { - return n, err - } - - r.pos += int64(n) - q := readerReport{ - t: time.Now(), - pos: r.pos, - size: r.size, - bps: &r.bps, - } - - r.ch <- q - - return n, err -} - -// Done marks the progress reader as done, optionally including an error in the -// progress report. After sending it, the underlying channel is closed. -func (r *reader) Done(err error) { - q := readerReport{ - t: time.Now(), - pos: r.pos, - size: r.size, - bps: &r.bps, - err: err, - } - - r.ch <- q - close(r.ch) -} - -// newBpsLoop returns a sink that monitors and stores throughput. -func newBpsLoop(dst *uint64) SinkFunc { - fn := func() chan<- Report { - sink := make(chan Report) - go bpsLoop(sink, dst) - return sink - } - - return fn -} - -func bpsLoop(ch <-chan Report, dst *uint64) { - l := list.New() - - for { - var tch <-chan time.Time - - // Setup timer for front of list to become stale. - if e := l.Front(); e != nil { - dt := time.Second - time.Now().Sub(e.Value.(readerReport).t) - tch = time.After(dt) - } - - select { - case q, ok := <-ch: - if !ok { - return - } - - l.PushBack(q) - case <-tch: - l.Remove(l.Front()) - } - - // Compute new bps - if l.Len() == 0 { - atomic.StoreUint64(dst, 0) - } else { - f := l.Front().Value.(readerReport) - b := l.Back().Value.(readerReport) - atomic.StoreUint64(dst, uint64(b.pos-f.pos)) - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/report.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/report.go deleted file mode 100644 index bf80263f..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/report.go +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 progress - -// Report defines the interface for types that can deliver progress reports. -// Examples include uploads/downloads in the http client and the task info -// field in the task managed object. -type Report interface { - Percentage() float32 - Detail() string - Error() error -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/scale.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/scale.go deleted file mode 100644 index 98808392..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/scale.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 progress - -type scaledReport struct { - Report - n int - i int -} - -func (r scaledReport) Percentage() float32 { - b := 100 * float32(r.i) / float32(r.n) - return b + (r.Report.Percentage() / float32(r.n)) -} - -type scaleOne struct { - s Sinker - n int - i int -} - -func (s scaleOne) Sink() chan<- Report { - upstream := make(chan Report) - downstream := s.s.Sink() - go s.loop(upstream, downstream) - return upstream -} - -func (s scaleOne) loop(upstream <-chan Report, downstream chan<- Report) { - defer close(downstream) - - for r := range upstream { - downstream <- scaledReport{ - Report: r, - n: s.n, - i: s.i, - } - } -} - -type scaleMany struct { - s Sinker - n int - i int -} - -func Scale(s Sinker, n int) Sinker { - return &scaleMany{ - s: s, - n: n, - } -} - -func (s *scaleMany) Sink() chan<- Report { - if s.i == s.n { - s.n++ - } - - ch := scaleOne{s: s.s, n: s.n, i: s.i}.Sink() - s.i++ - return ch -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/sinker.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/sinker.go deleted file mode 100644 index 0bd35a47..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/sinker.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 progress - -// Sinker defines what is expected of a type that can act as a sink for -// progress reports. The semantics are as follows. If you call Sink(), you are -// responsible for closing the returned channel. Closing this channel means -// that the related task is done, or resulted in error. -type Sinker interface { - Sink() chan<- Report -} - -// SinkFunc defines a function that returns a progress report channel. -type SinkFunc func() chan<- Report - -// Sink makes the SinkFunc implement the Sinker interface. -func (fn SinkFunc) Sink() chan<- Report { - return fn() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/tee.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/tee.go deleted file mode 100644 index ab460784..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/progress/tee.go +++ /dev/null @@ -1,41 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 progress - -// Tee works like Unix tee; it forwards all progress reports it receives to the -// specified sinks -func Tee(s1, s2 Sinker) Sinker { - fn := func() chan<- Report { - d1 := s1.Sink() - d2 := s2.Sink() - u := make(chan Report) - go tee(u, d1, d2) - return u - } - - return SinkFunc(fn) -} - -func tee(u <-chan Report, d1, d2 chan<- Report) { - defer close(d1) - defer close(d2) - - for r := range u { - d1 <- r - d2 <- r - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/retry.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/retry.go deleted file mode 100644 index b8807eef..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/retry.go +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 vim25 - -import ( - "context" - "net" - "net/url" - "time" - - "github.com/vmware/govmomi/vim25/soap" -) - -type RetryFunc func(err error) (retry bool, delay time.Duration) - -// TemporaryNetworkError returns a RetryFunc that retries up to a maximum of n -// times, only if the error returned by the RoundTrip function is a temporary -// network error (for example: a connect timeout). -func TemporaryNetworkError(n int) RetryFunc { - return func(err error) (retry bool, delay time.Duration) { - var nerr net.Error - var ok bool - - // Never retry if this is not a network error. - switch rerr := err.(type) { - case *url.Error: - if nerr, ok = rerr.Err.(net.Error); !ok { - return false, 0 - } - case net.Error: - nerr = rerr - default: - return false, 0 - } - - if !nerr.Temporary() { - return false, 0 - } - - // Don't retry if we're out of tries. - if n--; n <= 0 { - return false, 0 - } - - return true, 0 - } -} - -type retry struct { - roundTripper soap.RoundTripper - - // fn is a custom function that is called when an error occurs. - // It returns whether or not to retry, and if so, how long to - // delay before retrying. - fn RetryFunc -} - -// Retry wraps the specified soap.RoundTripper and invokes the -// specified RetryFunc. The RetryFunc returns whether or not to -// retry the call, and if so, how long to wait before retrying. If -// the result of this function is to not retry, the original error -// is returned from the RoundTrip function. -func Retry(roundTripper soap.RoundTripper, fn RetryFunc) soap.RoundTripper { - r := &retry{ - roundTripper: roundTripper, - fn: fn, - } - - return r -} - -func (r *retry) RoundTrip(ctx context.Context, req, res soap.HasFault) error { - var err error - - for { - err = r.roundTripper.RoundTrip(ctx, req, res) - if err == nil { - break - } - - // Invoke retry function to see if another attempt should be made. - if retry, delay := r.fn(err); retry { - time.Sleep(delay) - continue - } - - break - } - - return err -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/client.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/client.go deleted file mode 100644 index 8747e07b..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/client.go +++ /dev/null @@ -1,707 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 soap - -import ( - "bufio" - "bytes" - "context" - "crypto/sha1" - "crypto/tls" - "crypto/x509" - "encoding/json" - "errors" - "fmt" - "io" - "io/ioutil" - "net" - "net/http" - "net/http/cookiejar" - "net/url" - "os" - "path/filepath" - "regexp" - "strings" - "sync" - "time" - - "github.com/vmware/govmomi/vim25/progress" - "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/govmomi/vim25/xml" -) - -type HasFault interface { - Fault() *Fault -} - -type RoundTripper interface { - RoundTrip(ctx context.Context, req, res HasFault) error -} - -const ( - DefaultVimNamespace = "urn:vim25" - DefaultVimVersion = "6.5" - DefaultMinVimVersion = "5.5" -) - -type header struct { - Cookie string `xml:"vcSessionCookie,omitempty"` -} - -type Client struct { - http.Client - - u *url.URL - k bool // Named after curl's -k flag - d *debugContainer - t *http.Transport - p *url.URL - - hostsMu sync.Mutex - hosts map[string]string - - Namespace string // Vim namespace - Version string // Vim version - UserAgent string - - header *header -} - -var schemeMatch = regexp.MustCompile(`^\w+://`) - -// ParseURL is wrapper around url.Parse, where Scheme defaults to "https" and Path defaults to "/sdk" -func ParseURL(s string) (*url.URL, error) { - var err error - var u *url.URL - - if s != "" { - // Default the scheme to https - if !schemeMatch.MatchString(s) { - s = "https://" + s - } - - u, err = url.Parse(s) - if err != nil { - return nil, err - } - - // Default the path to /sdk - if u.Path == "" { - u.Path = "/sdk" - } - - if u.User == nil { - u.User = url.UserPassword("", "") - } - } - - return u, nil -} - -func NewClient(u *url.URL, insecure bool) *Client { - c := Client{ - u: u, - k: insecure, - d: newDebug(), - } - - // Initialize http.RoundTripper on client, so we can customize it below - if t, ok := http.DefaultTransport.(*http.Transport); ok { - c.t = &http.Transport{ - Proxy: t.Proxy, - DialContext: t.DialContext, - MaxIdleConns: t.MaxIdleConns, - IdleConnTimeout: t.IdleConnTimeout, - TLSHandshakeTimeout: t.TLSHandshakeTimeout, - ExpectContinueTimeout: t.ExpectContinueTimeout, - } - } else { - c.t = new(http.Transport) - } - - c.hosts = make(map[string]string) - c.t.TLSClientConfig = &tls.Config{InsecureSkipVerify: c.k} - // Don't bother setting DialTLS if InsecureSkipVerify=true - if !c.k { - c.t.DialTLS = c.dialTLS - } - - c.Client.Transport = c.t - c.Client.Jar, _ = cookiejar.New(nil) - - // Remove user information from a copy of the URL - c.u = c.URL() - c.u.User = nil - - c.Namespace = DefaultVimNamespace - c.Version = DefaultVimVersion - - return &c -} - -// NewServiceClient creates a NewClient with the given URL.Path and namespace. -func (c *Client) NewServiceClient(path string, namespace string) *Client { - u := c.URL() - u.Path = path - - client := NewClient(u, c.k) - - client.Namespace = namespace - - // Copy the cookies - client.Client.Jar.SetCookies(u, c.Client.Jar.Cookies(u)) - - // Set SOAP Header cookie - for _, cookie := range client.Jar.Cookies(u) { - if cookie.Name == "vmware_soap_session" { - client.header = &header{ - Cookie: cookie.Value, - } - - break - } - } - - return client -} - -// SetRootCAs defines the set of root certificate authorities -// that clients use when verifying server certificates. -// By default TLS uses the host's root CA set. -// -// See: http.Client.Transport.TLSClientConfig.RootCAs -func (c *Client) SetRootCAs(file string) error { - pool := x509.NewCertPool() - - for _, name := range filepath.SplitList(file) { - pem, err := ioutil.ReadFile(name) - if err != nil { - return err - } - - pool.AppendCertsFromPEM(pem) - } - - c.t.TLSClientConfig.RootCAs = pool - - return nil -} - -// Add default https port if missing -func hostAddr(addr string) string { - _, port := splitHostPort(addr) - if port == "" { - return addr + ":443" - } - return addr -} - -// SetThumbprint sets the known certificate thumbprint for the given host. -// A custom DialTLS function is used to support thumbprint based verification. -// We first try tls.Dial with the default tls.Config, only falling back to thumbprint verification -// if it fails with an x509.UnknownAuthorityError or x509.HostnameError -// -// See: http.Client.Transport.DialTLS -func (c *Client) SetThumbprint(host string, thumbprint string) { - host = hostAddr(host) - - c.hostsMu.Lock() - if thumbprint == "" { - delete(c.hosts, host) - } else { - c.hosts[host] = thumbprint - } - c.hostsMu.Unlock() -} - -// Thumbprint returns the certificate thumbprint for the given host if known to this client. -func (c *Client) Thumbprint(host string) string { - host = hostAddr(host) - c.hostsMu.Lock() - defer c.hostsMu.Unlock() - return c.hosts[host] -} - -// LoadThumbprints from file with the give name. -// If name is empty or name does not exist this function will return nil. -func (c *Client) LoadThumbprints(file string) error { - if file == "" { - return nil - } - - for _, name := range filepath.SplitList(file) { - err := c.loadThumbprints(name) - if err != nil { - return err - } - } - - return nil -} - -func (c *Client) loadThumbprints(name string) error { - f, err := os.Open(name) - if err != nil { - if os.IsNotExist(err) { - return nil - } - return err - } - - scanner := bufio.NewScanner(f) - - for scanner.Scan() { - e := strings.SplitN(scanner.Text(), " ", 2) - if len(e) != 2 { - continue - } - - c.SetThumbprint(e[0], e[1]) - } - - _ = f.Close() - - return scanner.Err() -} - -// ThumbprintSHA1 returns the thumbprint of the given cert in the same format used by the SDK and Client.SetThumbprint. -// -// See: SSLVerifyFault.Thumbprint, SessionManagerGenericServiceTicket.Thumbprint, HostConnectSpec.SslThumbprint -func ThumbprintSHA1(cert *x509.Certificate) string { - sum := sha1.Sum(cert.Raw) - hex := make([]string, len(sum)) - for i, b := range sum { - hex[i] = fmt.Sprintf("%02X", b) - } - return strings.Join(hex, ":") -} - -func (c *Client) dialTLS(network string, addr string) (net.Conn, error) { - // Would be nice if there was a tls.Config.Verify func, - // see tls.clientHandshakeState.doFullHandshake - - conn, err := tls.Dial(network, addr, c.t.TLSClientConfig) - - if err == nil { - return conn, nil - } - - switch err.(type) { - case x509.UnknownAuthorityError: - case x509.HostnameError: - default: - return nil, err - } - - thumbprint := c.Thumbprint(addr) - if thumbprint == "" { - return nil, err - } - - config := &tls.Config{InsecureSkipVerify: true} - conn, err = tls.Dial(network, addr, config) - if err != nil { - return nil, err - } - - cert := conn.ConnectionState().PeerCertificates[0] - peer := ThumbprintSHA1(cert) - if thumbprint != peer { - _ = conn.Close() - - return nil, fmt.Errorf("Host %q thumbprint does not match %q", addr, thumbprint) - } - - return conn, nil -} - -// splitHostPort is similar to net.SplitHostPort, -// but rather than return error if there isn't a ':port', -// return an empty string for the port. -func splitHostPort(host string) (string, string) { - ix := strings.LastIndex(host, ":") - - if ix <= strings.LastIndex(host, "]") { - return host, "" - } - - name := host[:ix] - port := host[ix+1:] - - return name, port -} - -const sdkTunnel = "sdkTunnel:8089" - -func (c *Client) SetCertificate(cert tls.Certificate) { - t := c.Client.Transport.(*http.Transport) - - // Extension certificate - t.TLSClientConfig.Certificates = []tls.Certificate{cert} - - // Proxy to vCenter host on port 80 - host, _ := splitHostPort(c.u.Host) - - // Should be no reason to change the default port other than testing - key := "GOVMOMI_TUNNEL_PROXY_PORT" - - port := c.URL().Query().Get(key) - if port == "" { - port = os.Getenv(key) - } - - if port != "" { - host += ":" + port - } - - c.p = &url.URL{ - Scheme: "http", - Host: host, - } - t.Proxy = func(r *http.Request) (*url.URL, error) { - // Only sdk requests should be proxied - if r.URL.Path == "/sdk" { - return c.p, nil - } - return http.ProxyFromEnvironment(r) - } - - // Rewrite url Host to use the sdk tunnel, required for a certificate request. - c.u.Host = sdkTunnel -} - -func (c *Client) URL() *url.URL { - urlCopy := *c.u - return &urlCopy -} - -type marshaledClient struct { - Cookies []*http.Cookie - URL *url.URL - Insecure bool -} - -func (c *Client) MarshalJSON() ([]byte, error) { - m := marshaledClient{ - Cookies: c.Jar.Cookies(c.u), - URL: c.u, - Insecure: c.k, - } - - return json.Marshal(m) -} - -func (c *Client) UnmarshalJSON(b []byte) error { - var m marshaledClient - - err := json.Unmarshal(b, &m) - if err != nil { - return err - } - - *c = *NewClient(m.URL, m.Insecure) - c.Jar.SetCookies(m.URL, m.Cookies) - - return nil -} - -func (c *Client) do(ctx context.Context, req *http.Request) (*http.Response, error) { - if nil == ctx || nil == ctx.Done() { // ctx.Done() is for ctx - return c.Client.Do(req) - } - - return c.Client.Do(req.WithContext(ctx)) -} - -func (c *Client) RoundTrip(ctx context.Context, reqBody, resBody HasFault) error { - var err error - - reqEnv := Envelope{Body: reqBody} - resEnv := Envelope{Body: resBody} - - reqEnv.Header = c.header - - // Create debugging context for this round trip - d := c.d.newRoundTrip() - if d.enabled() { - defer d.done() - } - - b, err := xml.Marshal(reqEnv) - if err != nil { - panic(err) - } - - rawReqBody := io.MultiReader(strings.NewReader(xml.Header), bytes.NewReader(b)) - req, err := http.NewRequest("POST", c.u.String(), rawReqBody) - if err != nil { - panic(err) - } - - req.Header.Set(`Content-Type`, `text/xml; charset="utf-8"`) - soapAction := fmt.Sprintf("%s/%s", c.Namespace, c.Version) - req.Header.Set(`SOAPAction`, soapAction) - if c.UserAgent != "" { - req.Header.Set(`User-Agent`, c.UserAgent) - } - - if d.enabled() { - d.debugRequest(req) - } - - tstart := time.Now() - res, err := c.do(ctx, req) - tstop := time.Now() - - if d.enabled() { - d.logf("%6dms (%T)", tstop.Sub(tstart)/time.Millisecond, resBody) - } - - if err != nil { - return err - } - - if d.enabled() { - d.debugResponse(res) - } - - // Close response regardless of what happens next - defer res.Body.Close() - - switch res.StatusCode { - case http.StatusOK: - // OK - case http.StatusInternalServerError: - // Error, but typically includes a body explaining the error - default: - return errors.New(res.Status) - } - - dec := xml.NewDecoder(res.Body) - dec.TypeFunc = types.TypeFunc() - err = dec.Decode(&resEnv) - if err != nil { - return err - } - - if f := resBody.Fault(); f != nil { - return WrapSoapFault(f) - } - - return err -} - -func (c *Client) CloseIdleConnections() { - c.t.CloseIdleConnections() -} - -// ParseURL wraps url.Parse to rewrite the URL.Host field -// In the case of VM guest uploads or NFC lease URLs, a Host -// field with a value of "*" is rewritten to the Client's URL.Host. -func (c *Client) ParseURL(urlStr string) (*url.URL, error) { - u, err := url.Parse(urlStr) - if err != nil { - return nil, err - } - - host, _ := splitHostPort(u.Host) - if host == "*" { - // Also use Client's port, to support port forwarding - u.Host = c.URL().Host - } - - return u, nil -} - -type Upload struct { - Type string - Method string - ContentLength int64 - Headers map[string]string - Ticket *http.Cookie - Progress progress.Sinker -} - -var DefaultUpload = Upload{ - Type: "application/octet-stream", - Method: "PUT", -} - -// Upload PUTs the local file to the given URL -func (c *Client) Upload(f io.Reader, u *url.URL, param *Upload) error { - var err error - - if param.Progress != nil { - pr := progress.NewReader(param.Progress, f, param.ContentLength) - f = pr - - // Mark progress reader as done when returning from this function. - defer func() { - pr.Done(err) - }() - } - - req, err := http.NewRequest(param.Method, u.String(), f) - if err != nil { - return err - } - - req.ContentLength = param.ContentLength - req.Header.Set("Content-Type", param.Type) - - for k, v := range param.Headers { - req.Header.Add(k, v) - } - - if param.Ticket != nil { - req.AddCookie(param.Ticket) - } - - res, err := c.Client.Do(req) - if err != nil { - return err - } - - switch res.StatusCode { - case http.StatusOK: - case http.StatusCreated: - default: - err = errors.New(res.Status) - } - - return err -} - -// UploadFile PUTs the local file to the given URL -func (c *Client) UploadFile(file string, u *url.URL, param *Upload) error { - if param == nil { - p := DefaultUpload // Copy since we set ContentLength - param = &p - } - - s, err := os.Stat(file) - if err != nil { - return err - } - - f, err := os.Open(file) - if err != nil { - return err - } - defer f.Close() - - param.ContentLength = s.Size() - - return c.Upload(f, u, param) -} - -type Download struct { - Method string - Headers map[string]string - Ticket *http.Cookie - Progress progress.Sinker -} - -var DefaultDownload = Download{ - Method: "GET", -} - -// DownloadRequest wraps http.Client.Do, returning the http.Response without checking its StatusCode -func (c *Client) DownloadRequest(u *url.URL, param *Download) (*http.Response, error) { - req, err := http.NewRequest(param.Method, u.String(), nil) - if err != nil { - return nil, err - } - - for k, v := range param.Headers { - req.Header.Add(k, v) - } - - if param.Ticket != nil { - req.AddCookie(param.Ticket) - } - - return c.Client.Do(req) -} - -// Download GETs the remote file from the given URL -func (c *Client) Download(u *url.URL, param *Download) (io.ReadCloser, int64, error) { - res, err := c.DownloadRequest(u, param) - if err != nil { - return nil, 0, err - } - - switch res.StatusCode { - case http.StatusOK: - default: - err = errors.New(res.Status) - } - - if err != nil { - return nil, 0, err - } - - r := res.Body - - return r, res.ContentLength, nil -} - -func (c *Client) WriteFile(file string, src io.Reader, size int64, s progress.Sinker) error { - var err error - - r := src - - fh, err := os.Create(file) - if err != nil { - return err - } - - if s != nil { - pr := progress.NewReader(s, src, size) - src = pr - - // Mark progress reader as done when returning from this function. - defer func() { - pr.Done(err) - }() - } - - _, err = io.Copy(fh, r) - - cerr := fh.Close() - - if err == nil { - err = cerr - } - - return err -} - -// DownloadFile GETs the given URL to a local file -func (c *Client) DownloadFile(file string, u *url.URL, param *Download) error { - var err error - if param == nil { - param = &DefaultDownload - } - - rc, contentLength, err := c.Download(u, param) - if err != nil { - return err - } - - return c.WriteFile(file, rc, contentLength, param.Progress) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/debug.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/debug.go deleted file mode 100644 index 63518abc..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/debug.go +++ /dev/null @@ -1,149 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 soap - -import ( - "fmt" - "io" - "net/http" - "net/http/httputil" - "sync/atomic" - "time" - - "github.com/vmware/govmomi/vim25/debug" -) - -// teeReader wraps io.TeeReader and patches through the Close() function. -type teeReader struct { - io.Reader - io.Closer -} - -func newTeeReader(rc io.ReadCloser, w io.Writer) io.ReadCloser { - return teeReader{ - Reader: io.TeeReader(rc, w), - Closer: rc, - } -} - -// debugRoundTrip contains state and logic needed to debug a single round trip. -type debugRoundTrip struct { - cn uint64 // Client number - rn uint64 // Request number - log io.WriteCloser // Request log - cs []io.Closer // Files that need closing when done -} - -func (d *debugRoundTrip) logf(format string, a ...interface{}) { - now := time.Now().Format("2006-01-02T15-04-05.000000000") - fmt.Fprintf(d.log, "%s - %04d: ", now, d.rn) - fmt.Fprintf(d.log, format, a...) - fmt.Fprintf(d.log, "\n") -} - -func (d *debugRoundTrip) enabled() bool { - return d != nil -} - -func (d *debugRoundTrip) done() { - for _, c := range d.cs { - c.Close() - } -} - -func (d *debugRoundTrip) newFile(suffix string) io.WriteCloser { - return debug.NewFile(fmt.Sprintf("%d-%04d.%s", d.cn, d.rn, suffix)) -} - -func (d *debugRoundTrip) debugRequest(req *http.Request) { - if d == nil { - return - } - - var wc io.WriteCloser - - // Capture headers - wc = d.newFile("req.headers") - b, _ := httputil.DumpRequest(req, false) - wc.Write(b) - wc.Close() - - // Capture body - wc = d.newFile("req.xml") - req.Body = newTeeReader(req.Body, wc) - - // Delay closing until marked done - d.cs = append(d.cs, wc) -} - -func (d *debugRoundTrip) debugResponse(res *http.Response) { - if d == nil { - return - } - - var wc io.WriteCloser - - // Capture headers - wc = d.newFile("res.headers") - b, _ := httputil.DumpResponse(res, false) - wc.Write(b) - wc.Close() - - // Capture body - wc = d.newFile("res.xml") - res.Body = newTeeReader(res.Body, wc) - - // Delay closing until marked done - d.cs = append(d.cs, wc) -} - -var cn uint64 // Client counter - -// debugContainer wraps the debugging state for a single client. -type debugContainer struct { - cn uint64 // Client number - rn uint64 // Request counter - log io.WriteCloser // Request log -} - -func newDebug() *debugContainer { - d := debugContainer{ - cn: atomic.AddUint64(&cn, 1), - rn: 0, - } - - if !debug.Enabled() { - return nil - } - - d.log = debug.NewFile(fmt.Sprintf("%d-client.log", d.cn)) - return &d -} - -func (d *debugContainer) newRoundTrip() *debugRoundTrip { - if d == nil { - return nil - } - - drt := debugRoundTrip{ - cn: d.cn, - rn: atomic.AddUint64(&d.rn, 1), - log: d.log, - } - - return &drt -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/error.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/error.go deleted file mode 100644 index d8920852..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/error.go +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 soap - -import ( - "fmt" - "reflect" - - "github.com/vmware/govmomi/vim25/types" -) - -type regularError struct { - err error -} - -func (r regularError) Error() string { - return r.err.Error() -} - -type soapFaultError struct { - fault *Fault -} - -func (s soapFaultError) Error() string { - msg := s.fault.String - - if msg == "" { - msg = reflect.TypeOf(s.fault.Detail.Fault).Name() - } - - return fmt.Sprintf("%s: %s", s.fault.Code, msg) -} - -type vimFaultError struct { - fault types.BaseMethodFault -} - -func (v vimFaultError) Error() string { - typ := reflect.TypeOf(v.fault) - for typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - - return typ.Name() -} - -func (v vimFaultError) Fault() types.BaseMethodFault { - return v.fault -} - -func Wrap(err error) error { - switch err.(type) { - case regularError: - return err - case soapFaultError: - return err - case vimFaultError: - return err - } - - return WrapRegularError(err) -} - -func WrapRegularError(err error) error { - return regularError{err} -} - -func IsRegularError(err error) bool { - _, ok := err.(regularError) - return ok -} - -func ToRegularError(err error) error { - return err.(regularError).err -} - -func WrapSoapFault(f *Fault) error { - return soapFaultError{f} -} - -func IsSoapFault(err error) bool { - _, ok := err.(soapFaultError) - return ok -} - -func ToSoapFault(err error) *Fault { - return err.(soapFaultError).fault -} - -func WrapVimFault(v types.BaseMethodFault) error { - return vimFaultError{v} -} - -func IsVimFault(err error) bool { - _, ok := err.(vimFaultError) - return ok -} - -func ToVimFault(err error) types.BaseMethodFault { - return err.(vimFaultError).fault -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/soap.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/soap.go deleted file mode 100644 index a8baa012..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/soap/soap.go +++ /dev/null @@ -1,41 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 soap - -import ( - "github.com/vmware/govmomi/vim25/types" - "github.com/vmware/govmomi/vim25/xml" -) - -type Envelope struct { - XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"` - Header interface{} `xml:",omitempty"` - Body interface{} -} - -type Fault struct { - XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault"` - Code string `xml:"faultcode"` - String string `xml:"faultstring"` - Detail struct { - Fault types.AnyType `xml:",any,typeattr"` - } `xml:"detail"` -} - -func (f *Fault) VimFault() types.AnyType { - return f.Detail.Fault -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/base.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/base.go deleted file mode 100644 index 3bb12b74..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/base.go +++ /dev/null @@ -1,19 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 types - -type AnyType interface{} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/enum.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/enum.go deleted file mode 100644 index 02f7f3cb..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/enum.go +++ /dev/null @@ -1,4466 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 types - -import "reflect" - -type ActionParameter string - -const ( - ActionParameterTargetName = ActionParameter("targetName") - ActionParameterAlarmName = ActionParameter("alarmName") - ActionParameterOldStatus = ActionParameter("oldStatus") - ActionParameterNewStatus = ActionParameter("newStatus") - ActionParameterTriggeringSummary = ActionParameter("triggeringSummary") - ActionParameterDeclaringSummary = ActionParameter("declaringSummary") - ActionParameterEventDescription = ActionParameter("eventDescription") - ActionParameterTarget = ActionParameter("target") - ActionParameterAlarm = ActionParameter("alarm") -) - -func init() { - t["ActionParameter"] = reflect.TypeOf((*ActionParameter)(nil)).Elem() -} - -type ActionType string - -const ( - ActionTypeMigrationV1 = ActionType("MigrationV1") - ActionTypeVmPowerV1 = ActionType("VmPowerV1") - ActionTypeHostPowerV1 = ActionType("HostPowerV1") - ActionTypeHostMaintenanceV1 = ActionType("HostMaintenanceV1") - ActionTypeStorageMigrationV1 = ActionType("StorageMigrationV1") - ActionTypeStoragePlacementV1 = ActionType("StoragePlacementV1") - ActionTypePlacementV1 = ActionType("PlacementV1") - ActionTypeHostInfraUpdateHaV1 = ActionType("HostInfraUpdateHaV1") -) - -func init() { - t["ActionType"] = reflect.TypeOf((*ActionType)(nil)).Elem() -} - -type AffinityType string - -const ( - AffinityTypeMemory = AffinityType("memory") - AffinityTypeCpu = AffinityType("cpu") -) - -func init() { - t["AffinityType"] = reflect.TypeOf((*AffinityType)(nil)).Elem() -} - -type AgentInstallFailedReason string - -const ( - AgentInstallFailedReasonNotEnoughSpaceOnDevice = AgentInstallFailedReason("NotEnoughSpaceOnDevice") - AgentInstallFailedReasonPrepareToUpgradeFailed = AgentInstallFailedReason("PrepareToUpgradeFailed") - AgentInstallFailedReasonAgentNotRunning = AgentInstallFailedReason("AgentNotRunning") - AgentInstallFailedReasonAgentNotReachable = AgentInstallFailedReason("AgentNotReachable") - AgentInstallFailedReasonInstallTimedout = AgentInstallFailedReason("InstallTimedout") - AgentInstallFailedReasonSignatureVerificationFailed = AgentInstallFailedReason("SignatureVerificationFailed") - AgentInstallFailedReasonAgentUploadFailed = AgentInstallFailedReason("AgentUploadFailed") - AgentInstallFailedReasonAgentUploadTimedout = AgentInstallFailedReason("AgentUploadTimedout") - AgentInstallFailedReasonUnknownInstallerError = AgentInstallFailedReason("UnknownInstallerError") -) - -func init() { - t["AgentInstallFailedReason"] = reflect.TypeOf((*AgentInstallFailedReason)(nil)).Elem() -} - -type ArrayUpdateOperation string - -const ( - ArrayUpdateOperationAdd = ArrayUpdateOperation("add") - ArrayUpdateOperationRemove = ArrayUpdateOperation("remove") - ArrayUpdateOperationEdit = ArrayUpdateOperation("edit") -) - -func init() { - t["ArrayUpdateOperation"] = reflect.TypeOf((*ArrayUpdateOperation)(nil)).Elem() -} - -type AutoStartAction string - -const ( - AutoStartActionNone = AutoStartAction("none") - AutoStartActionSystemDefault = AutoStartAction("systemDefault") - AutoStartActionPowerOn = AutoStartAction("powerOn") - AutoStartActionPowerOff = AutoStartAction("powerOff") - AutoStartActionGuestShutdown = AutoStartAction("guestShutdown") - AutoStartActionSuspend = AutoStartAction("suspend") -) - -func init() { - t["AutoStartAction"] = reflect.TypeOf((*AutoStartAction)(nil)).Elem() -} - -type AutoStartWaitHeartbeatSetting string - -const ( - AutoStartWaitHeartbeatSettingYes = AutoStartWaitHeartbeatSetting("yes") - AutoStartWaitHeartbeatSettingNo = AutoStartWaitHeartbeatSetting("no") - AutoStartWaitHeartbeatSettingSystemDefault = AutoStartWaitHeartbeatSetting("systemDefault") -) - -func init() { - t["AutoStartWaitHeartbeatSetting"] = reflect.TypeOf((*AutoStartWaitHeartbeatSetting)(nil)).Elem() -} - -type BaseConfigInfoDiskFileBackingInfoProvisioningType string - -const ( - BaseConfigInfoDiskFileBackingInfoProvisioningTypeThin = BaseConfigInfoDiskFileBackingInfoProvisioningType("thin") - BaseConfigInfoDiskFileBackingInfoProvisioningTypeEagerZeroedThick = BaseConfigInfoDiskFileBackingInfoProvisioningType("eagerZeroedThick") - BaseConfigInfoDiskFileBackingInfoProvisioningTypeLazyZeroedThick = BaseConfigInfoDiskFileBackingInfoProvisioningType("lazyZeroedThick") -) - -func init() { - t["BaseConfigInfoDiskFileBackingInfoProvisioningType"] = reflect.TypeOf((*BaseConfigInfoDiskFileBackingInfoProvisioningType)(nil)).Elem() -} - -type BatchResultResult string - -const ( - BatchResultResultSuccess = BatchResultResult("success") - BatchResultResultFail = BatchResultResult("fail") -) - -func init() { - t["BatchResultResult"] = reflect.TypeOf((*BatchResultResult)(nil)).Elem() -} - -type CannotEnableVmcpForClusterReason string - -const ( - CannotEnableVmcpForClusterReasonAPDTimeoutDisabled = CannotEnableVmcpForClusterReason("APDTimeoutDisabled") - CannotEnableVmcpForClusterReasonIncompatibleHostVersion = CannotEnableVmcpForClusterReason("IncompatibleHostVersion") -) - -func init() { - t["CannotEnableVmcpForClusterReason"] = reflect.TypeOf((*CannotEnableVmcpForClusterReason)(nil)).Elem() -} - -type CannotMoveFaultToleranceVmMoveType string - -const ( - CannotMoveFaultToleranceVmMoveTypeResourcePool = CannotMoveFaultToleranceVmMoveType("resourcePool") - CannotMoveFaultToleranceVmMoveTypeCluster = CannotMoveFaultToleranceVmMoveType("cluster") -) - -func init() { - t["CannotMoveFaultToleranceVmMoveType"] = reflect.TypeOf((*CannotMoveFaultToleranceVmMoveType)(nil)).Elem() -} - -type CannotPowerOffVmInClusterOperation string - -const ( - CannotPowerOffVmInClusterOperationSuspend = CannotPowerOffVmInClusterOperation("suspend") - CannotPowerOffVmInClusterOperationPowerOff = CannotPowerOffVmInClusterOperation("powerOff") - CannotPowerOffVmInClusterOperationGuestShutdown = CannotPowerOffVmInClusterOperation("guestShutdown") - CannotPowerOffVmInClusterOperationGuestSuspend = CannotPowerOffVmInClusterOperation("guestSuspend") -) - -func init() { - t["CannotPowerOffVmInClusterOperation"] = reflect.TypeOf((*CannotPowerOffVmInClusterOperation)(nil)).Elem() -} - -type CannotUseNetworkReason string - -const ( - CannotUseNetworkReasonNetworkReservationNotSupported = CannotUseNetworkReason("NetworkReservationNotSupported") - CannotUseNetworkReasonMismatchedNetworkPolicies = CannotUseNetworkReason("MismatchedNetworkPolicies") - CannotUseNetworkReasonMismatchedDvsVersionOrVendor = CannotUseNetworkReason("MismatchedDvsVersionOrVendor") - CannotUseNetworkReasonVMotionToUnsupportedNetworkType = CannotUseNetworkReason("VMotionToUnsupportedNetworkType") -) - -func init() { - t["CannotUseNetworkReason"] = reflect.TypeOf((*CannotUseNetworkReason)(nil)).Elem() -} - -type CheckTestType string - -const ( - CheckTestTypeSourceTests = CheckTestType("sourceTests") - CheckTestTypeHostTests = CheckTestType("hostTests") - CheckTestTypeResourcePoolTests = CheckTestType("resourcePoolTests") - CheckTestTypeDatastoreTests = CheckTestType("datastoreTests") - CheckTestTypeNetworkTests = CheckTestType("networkTests") -) - -func init() { - t["CheckTestType"] = reflect.TypeOf((*CheckTestType)(nil)).Elem() -} - -type ClusterDasAamNodeStateDasState string - -const ( - ClusterDasAamNodeStateDasStateUninitialized = ClusterDasAamNodeStateDasState("uninitialized") - ClusterDasAamNodeStateDasStateInitialized = ClusterDasAamNodeStateDasState("initialized") - ClusterDasAamNodeStateDasStateConfiguring = ClusterDasAamNodeStateDasState("configuring") - ClusterDasAamNodeStateDasStateUnconfiguring = ClusterDasAamNodeStateDasState("unconfiguring") - ClusterDasAamNodeStateDasStateRunning = ClusterDasAamNodeStateDasState("running") - ClusterDasAamNodeStateDasStateError = ClusterDasAamNodeStateDasState("error") - ClusterDasAamNodeStateDasStateAgentShutdown = ClusterDasAamNodeStateDasState("agentShutdown") - ClusterDasAamNodeStateDasStateNodeFailed = ClusterDasAamNodeStateDasState("nodeFailed") -) - -func init() { - t["ClusterDasAamNodeStateDasState"] = reflect.TypeOf((*ClusterDasAamNodeStateDasState)(nil)).Elem() -} - -type ClusterDasConfigInfoHBDatastoreCandidate string - -const ( - ClusterDasConfigInfoHBDatastoreCandidateUserSelectedDs = ClusterDasConfigInfoHBDatastoreCandidate("userSelectedDs") - ClusterDasConfigInfoHBDatastoreCandidateAllFeasibleDs = ClusterDasConfigInfoHBDatastoreCandidate("allFeasibleDs") - ClusterDasConfigInfoHBDatastoreCandidateAllFeasibleDsWithUserPreference = ClusterDasConfigInfoHBDatastoreCandidate("allFeasibleDsWithUserPreference") -) - -func init() { - t["ClusterDasConfigInfoHBDatastoreCandidate"] = reflect.TypeOf((*ClusterDasConfigInfoHBDatastoreCandidate)(nil)).Elem() -} - -type ClusterDasConfigInfoServiceState string - -const ( - ClusterDasConfigInfoServiceStateDisabled = ClusterDasConfigInfoServiceState("disabled") - ClusterDasConfigInfoServiceStateEnabled = ClusterDasConfigInfoServiceState("enabled") -) - -func init() { - t["ClusterDasConfigInfoServiceState"] = reflect.TypeOf((*ClusterDasConfigInfoServiceState)(nil)).Elem() -} - -type ClusterDasConfigInfoVmMonitoringState string - -const ( - ClusterDasConfigInfoVmMonitoringStateVmMonitoringDisabled = ClusterDasConfigInfoVmMonitoringState("vmMonitoringDisabled") - ClusterDasConfigInfoVmMonitoringStateVmMonitoringOnly = ClusterDasConfigInfoVmMonitoringState("vmMonitoringOnly") - ClusterDasConfigInfoVmMonitoringStateVmAndAppMonitoring = ClusterDasConfigInfoVmMonitoringState("vmAndAppMonitoring") -) - -func init() { - t["ClusterDasConfigInfoVmMonitoringState"] = reflect.TypeOf((*ClusterDasConfigInfoVmMonitoringState)(nil)).Elem() -} - -type ClusterDasFdmAvailabilityState string - -const ( - ClusterDasFdmAvailabilityStateUninitialized = ClusterDasFdmAvailabilityState("uninitialized") - ClusterDasFdmAvailabilityStateElection = ClusterDasFdmAvailabilityState("election") - ClusterDasFdmAvailabilityStateMaster = ClusterDasFdmAvailabilityState("master") - ClusterDasFdmAvailabilityStateConnectedToMaster = ClusterDasFdmAvailabilityState("connectedToMaster") - ClusterDasFdmAvailabilityStateNetworkPartitionedFromMaster = ClusterDasFdmAvailabilityState("networkPartitionedFromMaster") - ClusterDasFdmAvailabilityStateNetworkIsolated = ClusterDasFdmAvailabilityState("networkIsolated") - ClusterDasFdmAvailabilityStateHostDown = ClusterDasFdmAvailabilityState("hostDown") - ClusterDasFdmAvailabilityStateInitializationError = ClusterDasFdmAvailabilityState("initializationError") - ClusterDasFdmAvailabilityStateUninitializationError = ClusterDasFdmAvailabilityState("uninitializationError") - ClusterDasFdmAvailabilityStateFdmUnreachable = ClusterDasFdmAvailabilityState("fdmUnreachable") -) - -func init() { - t["ClusterDasFdmAvailabilityState"] = reflect.TypeOf((*ClusterDasFdmAvailabilityState)(nil)).Elem() -} - -type ClusterDasVmSettingsIsolationResponse string - -const ( - ClusterDasVmSettingsIsolationResponseNone = ClusterDasVmSettingsIsolationResponse("none") - ClusterDasVmSettingsIsolationResponsePowerOff = ClusterDasVmSettingsIsolationResponse("powerOff") - ClusterDasVmSettingsIsolationResponseShutdown = ClusterDasVmSettingsIsolationResponse("shutdown") - ClusterDasVmSettingsIsolationResponseClusterIsolationResponse = ClusterDasVmSettingsIsolationResponse("clusterIsolationResponse") -) - -func init() { - t["ClusterDasVmSettingsIsolationResponse"] = reflect.TypeOf((*ClusterDasVmSettingsIsolationResponse)(nil)).Elem() -} - -type ClusterDasVmSettingsRestartPriority string - -const ( - ClusterDasVmSettingsRestartPriorityDisabled = ClusterDasVmSettingsRestartPriority("disabled") - ClusterDasVmSettingsRestartPriorityLowest = ClusterDasVmSettingsRestartPriority("lowest") - ClusterDasVmSettingsRestartPriorityLow = ClusterDasVmSettingsRestartPriority("low") - ClusterDasVmSettingsRestartPriorityMedium = ClusterDasVmSettingsRestartPriority("medium") - ClusterDasVmSettingsRestartPriorityHigh = ClusterDasVmSettingsRestartPriority("high") - ClusterDasVmSettingsRestartPriorityHighest = ClusterDasVmSettingsRestartPriority("highest") - ClusterDasVmSettingsRestartPriorityClusterRestartPriority = ClusterDasVmSettingsRestartPriority("clusterRestartPriority") -) - -func init() { - t["ClusterDasVmSettingsRestartPriority"] = reflect.TypeOf((*ClusterDasVmSettingsRestartPriority)(nil)).Elem() -} - -type ClusterHostInfraUpdateHaModeActionOperationType string - -const ( - ClusterHostInfraUpdateHaModeActionOperationTypeEnterQuarantine = ClusterHostInfraUpdateHaModeActionOperationType("enterQuarantine") - ClusterHostInfraUpdateHaModeActionOperationTypeExitQuarantine = ClusterHostInfraUpdateHaModeActionOperationType("exitQuarantine") - ClusterHostInfraUpdateHaModeActionOperationTypeEnterMaintenance = ClusterHostInfraUpdateHaModeActionOperationType("enterMaintenance") -) - -func init() { - t["ClusterHostInfraUpdateHaModeActionOperationType"] = reflect.TypeOf((*ClusterHostInfraUpdateHaModeActionOperationType)(nil)).Elem() -} - -type ClusterInfraUpdateHaConfigInfoBehaviorType string - -const ( - ClusterInfraUpdateHaConfigInfoBehaviorTypeManual = ClusterInfraUpdateHaConfigInfoBehaviorType("Manual") - ClusterInfraUpdateHaConfigInfoBehaviorTypeAutomated = ClusterInfraUpdateHaConfigInfoBehaviorType("Automated") -) - -func init() { - t["ClusterInfraUpdateHaConfigInfoBehaviorType"] = reflect.TypeOf((*ClusterInfraUpdateHaConfigInfoBehaviorType)(nil)).Elem() -} - -type ClusterInfraUpdateHaConfigInfoRemediationType string - -const ( - ClusterInfraUpdateHaConfigInfoRemediationTypeQuarantineMode = ClusterInfraUpdateHaConfigInfoRemediationType("QuarantineMode") - ClusterInfraUpdateHaConfigInfoRemediationTypeMaintenanceMode = ClusterInfraUpdateHaConfigInfoRemediationType("MaintenanceMode") -) - -func init() { - t["ClusterInfraUpdateHaConfigInfoRemediationType"] = reflect.TypeOf((*ClusterInfraUpdateHaConfigInfoRemediationType)(nil)).Elem() -} - -type ClusterPowerOnVmOption string - -const ( - ClusterPowerOnVmOptionOverrideAutomationLevel = ClusterPowerOnVmOption("OverrideAutomationLevel") - ClusterPowerOnVmOptionReserveResources = ClusterPowerOnVmOption("ReserveResources") -) - -func init() { - t["ClusterPowerOnVmOption"] = reflect.TypeOf((*ClusterPowerOnVmOption)(nil)).Elem() -} - -type ClusterProfileServiceType string - -const ( - ClusterProfileServiceTypeDRS = ClusterProfileServiceType("DRS") - ClusterProfileServiceTypeHA = ClusterProfileServiceType("HA") - ClusterProfileServiceTypeDPM = ClusterProfileServiceType("DPM") - ClusterProfileServiceTypeFT = ClusterProfileServiceType("FT") -) - -func init() { - t["ClusterProfileServiceType"] = reflect.TypeOf((*ClusterProfileServiceType)(nil)).Elem() -} - -type ClusterVmComponentProtectionSettingsStorageVmReaction string - -const ( - ClusterVmComponentProtectionSettingsStorageVmReactionDisabled = ClusterVmComponentProtectionSettingsStorageVmReaction("disabled") - ClusterVmComponentProtectionSettingsStorageVmReactionWarning = ClusterVmComponentProtectionSettingsStorageVmReaction("warning") - ClusterVmComponentProtectionSettingsStorageVmReactionRestartConservative = ClusterVmComponentProtectionSettingsStorageVmReaction("restartConservative") - ClusterVmComponentProtectionSettingsStorageVmReactionRestartAggressive = ClusterVmComponentProtectionSettingsStorageVmReaction("restartAggressive") - ClusterVmComponentProtectionSettingsStorageVmReactionClusterDefault = ClusterVmComponentProtectionSettingsStorageVmReaction("clusterDefault") -) - -func init() { - t["ClusterVmComponentProtectionSettingsStorageVmReaction"] = reflect.TypeOf((*ClusterVmComponentProtectionSettingsStorageVmReaction)(nil)).Elem() -} - -type ClusterVmComponentProtectionSettingsVmReactionOnAPDCleared string - -const ( - ClusterVmComponentProtectionSettingsVmReactionOnAPDClearedNone = ClusterVmComponentProtectionSettingsVmReactionOnAPDCleared("none") - ClusterVmComponentProtectionSettingsVmReactionOnAPDClearedReset = ClusterVmComponentProtectionSettingsVmReactionOnAPDCleared("reset") - ClusterVmComponentProtectionSettingsVmReactionOnAPDClearedUseClusterDefault = ClusterVmComponentProtectionSettingsVmReactionOnAPDCleared("useClusterDefault") -) - -func init() { - t["ClusterVmComponentProtectionSettingsVmReactionOnAPDCleared"] = reflect.TypeOf((*ClusterVmComponentProtectionSettingsVmReactionOnAPDCleared)(nil)).Elem() -} - -type ClusterVmReadinessReadyCondition string - -const ( - ClusterVmReadinessReadyConditionNone = ClusterVmReadinessReadyCondition("none") - ClusterVmReadinessReadyConditionPoweredOn = ClusterVmReadinessReadyCondition("poweredOn") - ClusterVmReadinessReadyConditionGuestHbStatusGreen = ClusterVmReadinessReadyCondition("guestHbStatusGreen") - ClusterVmReadinessReadyConditionAppHbStatusGreen = ClusterVmReadinessReadyCondition("appHbStatusGreen") - ClusterVmReadinessReadyConditionUseClusterDefault = ClusterVmReadinessReadyCondition("useClusterDefault") -) - -func init() { - t["ClusterVmReadinessReadyCondition"] = reflect.TypeOf((*ClusterVmReadinessReadyCondition)(nil)).Elem() -} - -type ComplianceResultStatus string - -const ( - ComplianceResultStatusCompliant = ComplianceResultStatus("compliant") - ComplianceResultStatusNonCompliant = ComplianceResultStatus("nonCompliant") - ComplianceResultStatusUnknown = ComplianceResultStatus("unknown") -) - -func init() { - t["ComplianceResultStatus"] = reflect.TypeOf((*ComplianceResultStatus)(nil)).Elem() -} - -type ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseState string - -const ( - ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseStateLicensed = ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseState("licensed") - ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseStateUnlicensed = ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseState("unlicensed") - ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseStateUnknown = ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseState("unknown") -) - -func init() { - t["ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseState"] = reflect.TypeOf((*ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseState)(nil)).Elem() -} - -type ConfigSpecOperation string - -const ( - ConfigSpecOperationAdd = ConfigSpecOperation("add") - ConfigSpecOperationEdit = ConfigSpecOperation("edit") - ConfigSpecOperationRemove = ConfigSpecOperation("remove") -) - -func init() { - t["ConfigSpecOperation"] = reflect.TypeOf((*ConfigSpecOperation)(nil)).Elem() -} - -type CustomizationLicenseDataMode string - -const ( - CustomizationLicenseDataModePerServer = CustomizationLicenseDataMode("perServer") - CustomizationLicenseDataModePerSeat = CustomizationLicenseDataMode("perSeat") -) - -func init() { - t["CustomizationLicenseDataMode"] = reflect.TypeOf((*CustomizationLicenseDataMode)(nil)).Elem() -} - -type CustomizationNetBIOSMode string - -const ( - CustomizationNetBIOSModeEnableNetBIOSViaDhcp = CustomizationNetBIOSMode("enableNetBIOSViaDhcp") - CustomizationNetBIOSModeEnableNetBIOS = CustomizationNetBIOSMode("enableNetBIOS") - CustomizationNetBIOSModeDisableNetBIOS = CustomizationNetBIOSMode("disableNetBIOS") -) - -func init() { - t["CustomizationNetBIOSMode"] = reflect.TypeOf((*CustomizationNetBIOSMode)(nil)).Elem() -} - -type CustomizationSysprepRebootOption string - -const ( - CustomizationSysprepRebootOptionReboot = CustomizationSysprepRebootOption("reboot") - CustomizationSysprepRebootOptionNoreboot = CustomizationSysprepRebootOption("noreboot") - CustomizationSysprepRebootOptionShutdown = CustomizationSysprepRebootOption("shutdown") -) - -func init() { - t["CustomizationSysprepRebootOption"] = reflect.TypeOf((*CustomizationSysprepRebootOption)(nil)).Elem() -} - -type DVPortStatusVmDirectPathGen2InactiveReasonNetwork string - -const ( - DVPortStatusVmDirectPathGen2InactiveReasonNetworkPortNptIncompatibleDvs = DVPortStatusVmDirectPathGen2InactiveReasonNetwork("portNptIncompatibleDvs") - DVPortStatusVmDirectPathGen2InactiveReasonNetworkPortNptNoCompatibleNics = DVPortStatusVmDirectPathGen2InactiveReasonNetwork("portNptNoCompatibleNics") - DVPortStatusVmDirectPathGen2InactiveReasonNetworkPortNptNoVirtualFunctionsAvailable = DVPortStatusVmDirectPathGen2InactiveReasonNetwork("portNptNoVirtualFunctionsAvailable") - DVPortStatusVmDirectPathGen2InactiveReasonNetworkPortNptDisabledForPort = DVPortStatusVmDirectPathGen2InactiveReasonNetwork("portNptDisabledForPort") -) - -func init() { - t["DVPortStatusVmDirectPathGen2InactiveReasonNetwork"] = reflect.TypeOf((*DVPortStatusVmDirectPathGen2InactiveReasonNetwork)(nil)).Elem() -} - -type DVPortStatusVmDirectPathGen2InactiveReasonOther string - -const ( - DVPortStatusVmDirectPathGen2InactiveReasonOtherPortNptIncompatibleHost = DVPortStatusVmDirectPathGen2InactiveReasonOther("portNptIncompatibleHost") - DVPortStatusVmDirectPathGen2InactiveReasonOtherPortNptIncompatibleConnectee = DVPortStatusVmDirectPathGen2InactiveReasonOther("portNptIncompatibleConnectee") -) - -func init() { - t["DVPortStatusVmDirectPathGen2InactiveReasonOther"] = reflect.TypeOf((*DVPortStatusVmDirectPathGen2InactiveReasonOther)(nil)).Elem() -} - -type DasConfigFaultDasConfigFaultReason string - -const ( - DasConfigFaultDasConfigFaultReasonHostNetworkMisconfiguration = DasConfigFaultDasConfigFaultReason("HostNetworkMisconfiguration") - DasConfigFaultDasConfigFaultReasonHostMisconfiguration = DasConfigFaultDasConfigFaultReason("HostMisconfiguration") - DasConfigFaultDasConfigFaultReasonInsufficientPrivileges = DasConfigFaultDasConfigFaultReason("InsufficientPrivileges") - DasConfigFaultDasConfigFaultReasonNoPrimaryAgentAvailable = DasConfigFaultDasConfigFaultReason("NoPrimaryAgentAvailable") - DasConfigFaultDasConfigFaultReasonOther = DasConfigFaultDasConfigFaultReason("Other") - DasConfigFaultDasConfigFaultReasonNoDatastoresConfigured = DasConfigFaultDasConfigFaultReason("NoDatastoresConfigured") - DasConfigFaultDasConfigFaultReasonCreateConfigVvolFailed = DasConfigFaultDasConfigFaultReason("CreateConfigVvolFailed") - DasConfigFaultDasConfigFaultReasonVSanNotSupportedOnHost = DasConfigFaultDasConfigFaultReason("VSanNotSupportedOnHost") - DasConfigFaultDasConfigFaultReasonDasNetworkMisconfiguration = DasConfigFaultDasConfigFaultReason("DasNetworkMisconfiguration") -) - -func init() { - t["DasConfigFaultDasConfigFaultReason"] = reflect.TypeOf((*DasConfigFaultDasConfigFaultReason)(nil)).Elem() -} - -type DasVmPriority string - -const ( - DasVmPriorityDisabled = DasVmPriority("disabled") - DasVmPriorityLow = DasVmPriority("low") - DasVmPriorityMedium = DasVmPriority("medium") - DasVmPriorityHigh = DasVmPriority("high") -) - -func init() { - t["DasVmPriority"] = reflect.TypeOf((*DasVmPriority)(nil)).Elem() -} - -type DatastoreAccessible string - -const ( - DatastoreAccessibleTrue = DatastoreAccessible("True") - DatastoreAccessibleFalse = DatastoreAccessible("False") -) - -func init() { - t["DatastoreAccessible"] = reflect.TypeOf((*DatastoreAccessible)(nil)).Elem() -} - -type DatastoreSummaryMaintenanceModeState string - -const ( - DatastoreSummaryMaintenanceModeStateNormal = DatastoreSummaryMaintenanceModeState("normal") - DatastoreSummaryMaintenanceModeStateEnteringMaintenance = DatastoreSummaryMaintenanceModeState("enteringMaintenance") - DatastoreSummaryMaintenanceModeStateInMaintenance = DatastoreSummaryMaintenanceModeState("inMaintenance") -) - -func init() { - t["DatastoreSummaryMaintenanceModeState"] = reflect.TypeOf((*DatastoreSummaryMaintenanceModeState)(nil)).Elem() -} - -type DayOfWeek string - -const ( - DayOfWeekSunday = DayOfWeek("sunday") - DayOfWeekMonday = DayOfWeek("monday") - DayOfWeekTuesday = DayOfWeek("tuesday") - DayOfWeekWednesday = DayOfWeek("wednesday") - DayOfWeekThursday = DayOfWeek("thursday") - DayOfWeekFriday = DayOfWeek("friday") - DayOfWeekSaturday = DayOfWeek("saturday") -) - -func init() { - t["DayOfWeek"] = reflect.TypeOf((*DayOfWeek)(nil)).Elem() -} - -type DeviceNotSupportedReason string - -const ( - DeviceNotSupportedReasonHost = DeviceNotSupportedReason("host") - DeviceNotSupportedReasonGuest = DeviceNotSupportedReason("guest") -) - -func init() { - t["DeviceNotSupportedReason"] = reflect.TypeOf((*DeviceNotSupportedReason)(nil)).Elem() -} - -type DiagnosticManagerLogCreator string - -const ( - DiagnosticManagerLogCreatorVpxd = DiagnosticManagerLogCreator("vpxd") - DiagnosticManagerLogCreatorVpxa = DiagnosticManagerLogCreator("vpxa") - DiagnosticManagerLogCreatorHostd = DiagnosticManagerLogCreator("hostd") - DiagnosticManagerLogCreatorServerd = DiagnosticManagerLogCreator("serverd") - DiagnosticManagerLogCreatorInstall = DiagnosticManagerLogCreator("install") - DiagnosticManagerLogCreatorVpxClient = DiagnosticManagerLogCreator("vpxClient") - DiagnosticManagerLogCreatorRecordLog = DiagnosticManagerLogCreator("recordLog") -) - -func init() { - t["DiagnosticManagerLogCreator"] = reflect.TypeOf((*DiagnosticManagerLogCreator)(nil)).Elem() -} - -type DiagnosticManagerLogFormat string - -const ( - DiagnosticManagerLogFormatPlain = DiagnosticManagerLogFormat("plain") -) - -func init() { - t["DiagnosticManagerLogFormat"] = reflect.TypeOf((*DiagnosticManagerLogFormat)(nil)).Elem() -} - -type DiagnosticPartitionStorageType string - -const ( - DiagnosticPartitionStorageTypeDirectAttached = DiagnosticPartitionStorageType("directAttached") - DiagnosticPartitionStorageTypeNetworkAttached = DiagnosticPartitionStorageType("networkAttached") -) - -func init() { - t["DiagnosticPartitionStorageType"] = reflect.TypeOf((*DiagnosticPartitionStorageType)(nil)).Elem() -} - -type DiagnosticPartitionType string - -const ( - DiagnosticPartitionTypeSingleHost = DiagnosticPartitionType("singleHost") - DiagnosticPartitionTypeMultiHost = DiagnosticPartitionType("multiHost") -) - -func init() { - t["DiagnosticPartitionType"] = reflect.TypeOf((*DiagnosticPartitionType)(nil)).Elem() -} - -type DisallowedChangeByServiceDisallowedChange string - -const ( - DisallowedChangeByServiceDisallowedChangeHotExtendDisk = DisallowedChangeByServiceDisallowedChange("hotExtendDisk") -) - -func init() { - t["DisallowedChangeByServiceDisallowedChange"] = reflect.TypeOf((*DisallowedChangeByServiceDisallowedChange)(nil)).Elem() -} - -type DistributedVirtualPortgroupMetaTagName string - -const ( - DistributedVirtualPortgroupMetaTagNameDvsName = DistributedVirtualPortgroupMetaTagName("dvsName") - DistributedVirtualPortgroupMetaTagNamePortgroupName = DistributedVirtualPortgroupMetaTagName("portgroupName") - DistributedVirtualPortgroupMetaTagNamePortIndex = DistributedVirtualPortgroupMetaTagName("portIndex") -) - -func init() { - t["DistributedVirtualPortgroupMetaTagName"] = reflect.TypeOf((*DistributedVirtualPortgroupMetaTagName)(nil)).Elem() -} - -type DistributedVirtualPortgroupPortgroupType string - -const ( - DistributedVirtualPortgroupPortgroupTypeEarlyBinding = DistributedVirtualPortgroupPortgroupType("earlyBinding") - DistributedVirtualPortgroupPortgroupTypeLateBinding = DistributedVirtualPortgroupPortgroupType("lateBinding") - DistributedVirtualPortgroupPortgroupTypeEphemeral = DistributedVirtualPortgroupPortgroupType("ephemeral") -) - -func init() { - t["DistributedVirtualPortgroupPortgroupType"] = reflect.TypeOf((*DistributedVirtualPortgroupPortgroupType)(nil)).Elem() -} - -type DistributedVirtualSwitchHostInfrastructureTrafficClass string - -const ( - DistributedVirtualSwitchHostInfrastructureTrafficClassManagement = DistributedVirtualSwitchHostInfrastructureTrafficClass("management") - DistributedVirtualSwitchHostInfrastructureTrafficClassFaultTolerance = DistributedVirtualSwitchHostInfrastructureTrafficClass("faultTolerance") - DistributedVirtualSwitchHostInfrastructureTrafficClassVmotion = DistributedVirtualSwitchHostInfrastructureTrafficClass("vmotion") - DistributedVirtualSwitchHostInfrastructureTrafficClassVirtualMachine = DistributedVirtualSwitchHostInfrastructureTrafficClass("virtualMachine") - DistributedVirtualSwitchHostInfrastructureTrafficClassISCSI = DistributedVirtualSwitchHostInfrastructureTrafficClass("iSCSI") - DistributedVirtualSwitchHostInfrastructureTrafficClassNfs = DistributedVirtualSwitchHostInfrastructureTrafficClass("nfs") - DistributedVirtualSwitchHostInfrastructureTrafficClassHbr = DistributedVirtualSwitchHostInfrastructureTrafficClass("hbr") - DistributedVirtualSwitchHostInfrastructureTrafficClassVsan = DistributedVirtualSwitchHostInfrastructureTrafficClass("vsan") - DistributedVirtualSwitchHostInfrastructureTrafficClassVdp = DistributedVirtualSwitchHostInfrastructureTrafficClass("vdp") -) - -func init() { - t["DistributedVirtualSwitchHostInfrastructureTrafficClass"] = reflect.TypeOf((*DistributedVirtualSwitchHostInfrastructureTrafficClass)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMemberHostComponentState string - -const ( - DistributedVirtualSwitchHostMemberHostComponentStateUp = DistributedVirtualSwitchHostMemberHostComponentState("up") - DistributedVirtualSwitchHostMemberHostComponentStatePending = DistributedVirtualSwitchHostMemberHostComponentState("pending") - DistributedVirtualSwitchHostMemberHostComponentStateOutOfSync = DistributedVirtualSwitchHostMemberHostComponentState("outOfSync") - DistributedVirtualSwitchHostMemberHostComponentStateWarning = DistributedVirtualSwitchHostMemberHostComponentState("warning") - DistributedVirtualSwitchHostMemberHostComponentStateDisconnected = DistributedVirtualSwitchHostMemberHostComponentState("disconnected") - DistributedVirtualSwitchHostMemberHostComponentStateDown = DistributedVirtualSwitchHostMemberHostComponentState("down") -) - -func init() { - t["DistributedVirtualSwitchHostMemberHostComponentState"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberHostComponentState)(nil)).Elem() -} - -type DistributedVirtualSwitchNetworkResourceControlVersion string - -const ( - DistributedVirtualSwitchNetworkResourceControlVersionVersion2 = DistributedVirtualSwitchNetworkResourceControlVersion("version2") - DistributedVirtualSwitchNetworkResourceControlVersionVersion3 = DistributedVirtualSwitchNetworkResourceControlVersion("version3") -) - -func init() { - t["DistributedVirtualSwitchNetworkResourceControlVersion"] = reflect.TypeOf((*DistributedVirtualSwitchNetworkResourceControlVersion)(nil)).Elem() -} - -type DistributedVirtualSwitchNicTeamingPolicyMode string - -const ( - DistributedVirtualSwitchNicTeamingPolicyModeLoadbalance_ip = DistributedVirtualSwitchNicTeamingPolicyMode("loadbalance_ip") - DistributedVirtualSwitchNicTeamingPolicyModeLoadbalance_srcmac = DistributedVirtualSwitchNicTeamingPolicyMode("loadbalance_srcmac") - DistributedVirtualSwitchNicTeamingPolicyModeLoadbalance_srcid = DistributedVirtualSwitchNicTeamingPolicyMode("loadbalance_srcid") - DistributedVirtualSwitchNicTeamingPolicyModeFailover_explicit = DistributedVirtualSwitchNicTeamingPolicyMode("failover_explicit") - DistributedVirtualSwitchNicTeamingPolicyModeLoadbalance_loadbased = DistributedVirtualSwitchNicTeamingPolicyMode("loadbalance_loadbased") -) - -func init() { - t["DistributedVirtualSwitchNicTeamingPolicyMode"] = reflect.TypeOf((*DistributedVirtualSwitchNicTeamingPolicyMode)(nil)).Elem() -} - -type DistributedVirtualSwitchPortConnecteeConnecteeType string - -const ( - DistributedVirtualSwitchPortConnecteeConnecteeTypePnic = DistributedVirtualSwitchPortConnecteeConnecteeType("pnic") - DistributedVirtualSwitchPortConnecteeConnecteeTypeVmVnic = DistributedVirtualSwitchPortConnecteeConnecteeType("vmVnic") - DistributedVirtualSwitchPortConnecteeConnecteeTypeHostConsoleVnic = DistributedVirtualSwitchPortConnecteeConnecteeType("hostConsoleVnic") - DistributedVirtualSwitchPortConnecteeConnecteeTypeHostVmkVnic = DistributedVirtualSwitchPortConnecteeConnecteeType("hostVmkVnic") -) - -func init() { - t["DistributedVirtualSwitchPortConnecteeConnecteeType"] = reflect.TypeOf((*DistributedVirtualSwitchPortConnecteeConnecteeType)(nil)).Elem() -} - -type DistributedVirtualSwitchProductSpecOperationType string - -const ( - DistributedVirtualSwitchProductSpecOperationTypePreInstall = DistributedVirtualSwitchProductSpecOperationType("preInstall") - DistributedVirtualSwitchProductSpecOperationTypeUpgrade = DistributedVirtualSwitchProductSpecOperationType("upgrade") - DistributedVirtualSwitchProductSpecOperationTypeNotifyAvailableUpgrade = DistributedVirtualSwitchProductSpecOperationType("notifyAvailableUpgrade") - DistributedVirtualSwitchProductSpecOperationTypeProceedWithUpgrade = DistributedVirtualSwitchProductSpecOperationType("proceedWithUpgrade") - DistributedVirtualSwitchProductSpecOperationTypeUpdateBundleInfo = DistributedVirtualSwitchProductSpecOperationType("updateBundleInfo") -) - -func init() { - t["DistributedVirtualSwitchProductSpecOperationType"] = reflect.TypeOf((*DistributedVirtualSwitchProductSpecOperationType)(nil)).Elem() -} - -type DpmBehavior string - -const ( - DpmBehaviorManual = DpmBehavior("manual") - DpmBehaviorAutomated = DpmBehavior("automated") -) - -func init() { - t["DpmBehavior"] = reflect.TypeOf((*DpmBehavior)(nil)).Elem() -} - -type DrsBehavior string - -const ( - DrsBehaviorManual = DrsBehavior("manual") - DrsBehaviorPartiallyAutomated = DrsBehavior("partiallyAutomated") - DrsBehaviorFullyAutomated = DrsBehavior("fullyAutomated") -) - -func init() { - t["DrsBehavior"] = reflect.TypeOf((*DrsBehavior)(nil)).Elem() -} - -type DrsInjectorWorkloadCorrelationState string - -const ( - DrsInjectorWorkloadCorrelationStateCorrelated = DrsInjectorWorkloadCorrelationState("Correlated") - DrsInjectorWorkloadCorrelationStateUncorrelated = DrsInjectorWorkloadCorrelationState("Uncorrelated") -) - -func init() { - t["DrsInjectorWorkloadCorrelationState"] = reflect.TypeOf((*DrsInjectorWorkloadCorrelationState)(nil)).Elem() -} - -type DrsRecommendationReasonCode string - -const ( - DrsRecommendationReasonCodeFairnessCpuAvg = DrsRecommendationReasonCode("fairnessCpuAvg") - DrsRecommendationReasonCodeFairnessMemAvg = DrsRecommendationReasonCode("fairnessMemAvg") - DrsRecommendationReasonCodeJointAffin = DrsRecommendationReasonCode("jointAffin") - DrsRecommendationReasonCodeAntiAffin = DrsRecommendationReasonCode("antiAffin") - DrsRecommendationReasonCodeHostMaint = DrsRecommendationReasonCode("hostMaint") -) - -func init() { - t["DrsRecommendationReasonCode"] = reflect.TypeOf((*DrsRecommendationReasonCode)(nil)).Elem() -} - -type DvsEventPortBlockState string - -const ( - DvsEventPortBlockStateUnset = DvsEventPortBlockState("unset") - DvsEventPortBlockStateBlocked = DvsEventPortBlockState("blocked") - DvsEventPortBlockStateUnblocked = DvsEventPortBlockState("unblocked") - DvsEventPortBlockStateUnknown = DvsEventPortBlockState("unknown") -) - -func init() { - t["DvsEventPortBlockState"] = reflect.TypeOf((*DvsEventPortBlockState)(nil)).Elem() -} - -type DvsFilterOnFailure string - -const ( - DvsFilterOnFailureFailOpen = DvsFilterOnFailure("failOpen") - DvsFilterOnFailureFailClosed = DvsFilterOnFailure("failClosed") -) - -func init() { - t["DvsFilterOnFailure"] = reflect.TypeOf((*DvsFilterOnFailure)(nil)).Elem() -} - -type DvsNetworkRuleDirectionType string - -const ( - DvsNetworkRuleDirectionTypeIncomingPackets = DvsNetworkRuleDirectionType("incomingPackets") - DvsNetworkRuleDirectionTypeOutgoingPackets = DvsNetworkRuleDirectionType("outgoingPackets") - DvsNetworkRuleDirectionTypeBoth = DvsNetworkRuleDirectionType("both") -) - -func init() { - t["DvsNetworkRuleDirectionType"] = reflect.TypeOf((*DvsNetworkRuleDirectionType)(nil)).Elem() -} - -type EntityImportType string - -const ( - EntityImportTypeCreateEntityWithNewIdentifier = EntityImportType("createEntityWithNewIdentifier") - EntityImportTypeCreateEntityWithOriginalIdentifier = EntityImportType("createEntityWithOriginalIdentifier") - EntityImportTypeApplyToEntitySpecified = EntityImportType("applyToEntitySpecified") -) - -func init() { - t["EntityImportType"] = reflect.TypeOf((*EntityImportType)(nil)).Elem() -} - -type EntityType string - -const ( - EntityTypeDistributedVirtualSwitch = EntityType("distributedVirtualSwitch") - EntityTypeDistributedVirtualPortgroup = EntityType("distributedVirtualPortgroup") -) - -func init() { - t["EntityType"] = reflect.TypeOf((*EntityType)(nil)).Elem() -} - -type EventAlarmExpressionComparisonOperator string - -const ( - EventAlarmExpressionComparisonOperatorEquals = EventAlarmExpressionComparisonOperator("equals") - EventAlarmExpressionComparisonOperatorNotEqualTo = EventAlarmExpressionComparisonOperator("notEqualTo") - EventAlarmExpressionComparisonOperatorStartsWith = EventAlarmExpressionComparisonOperator("startsWith") - EventAlarmExpressionComparisonOperatorDoesNotStartWith = EventAlarmExpressionComparisonOperator("doesNotStartWith") - EventAlarmExpressionComparisonOperatorEndsWith = EventAlarmExpressionComparisonOperator("endsWith") - EventAlarmExpressionComparisonOperatorDoesNotEndWith = EventAlarmExpressionComparisonOperator("doesNotEndWith") -) - -func init() { - t["EventAlarmExpressionComparisonOperator"] = reflect.TypeOf((*EventAlarmExpressionComparisonOperator)(nil)).Elem() -} - -type EventCategory string - -const ( - EventCategoryInfo = EventCategory("info") - EventCategoryWarning = EventCategory("warning") - EventCategoryError = EventCategory("error") - EventCategoryUser = EventCategory("user") -) - -func init() { - t["EventCategory"] = reflect.TypeOf((*EventCategory)(nil)).Elem() -} - -type EventEventSeverity string - -const ( - EventEventSeverityError = EventEventSeverity("error") - EventEventSeverityWarning = EventEventSeverity("warning") - EventEventSeverityInfo = EventEventSeverity("info") - EventEventSeverityUser = EventEventSeverity("user") -) - -func init() { - t["EventEventSeverity"] = reflect.TypeOf((*EventEventSeverity)(nil)).Elem() -} - -type EventFilterSpecRecursionOption string - -const ( - EventFilterSpecRecursionOptionSelf = EventFilterSpecRecursionOption("self") - EventFilterSpecRecursionOptionChildren = EventFilterSpecRecursionOption("children") - EventFilterSpecRecursionOptionAll = EventFilterSpecRecursionOption("all") -) - -func init() { - t["EventFilterSpecRecursionOption"] = reflect.TypeOf((*EventFilterSpecRecursionOption)(nil)).Elem() -} - -type FibreChannelPortType string - -const ( - FibreChannelPortTypeFabric = FibreChannelPortType("fabric") - FibreChannelPortTypeLoop = FibreChannelPortType("loop") - FibreChannelPortTypePointToPoint = FibreChannelPortType("pointToPoint") - FibreChannelPortTypeUnknown = FibreChannelPortType("unknown") -) - -func init() { - t["FibreChannelPortType"] = reflect.TypeOf((*FibreChannelPortType)(nil)).Elem() -} - -type FileSystemMountInfoVStorageSupportStatus string - -const ( - FileSystemMountInfoVStorageSupportStatusVStorageSupported = FileSystemMountInfoVStorageSupportStatus("vStorageSupported") - FileSystemMountInfoVStorageSupportStatusVStorageUnsupported = FileSystemMountInfoVStorageSupportStatus("vStorageUnsupported") - FileSystemMountInfoVStorageSupportStatusVStorageUnknown = FileSystemMountInfoVStorageSupportStatus("vStorageUnknown") -) - -func init() { - t["FileSystemMountInfoVStorageSupportStatus"] = reflect.TypeOf((*FileSystemMountInfoVStorageSupportStatus)(nil)).Elem() -} - -type FtIssuesOnHostHostSelectionType string - -const ( - FtIssuesOnHostHostSelectionTypeUser = FtIssuesOnHostHostSelectionType("user") - FtIssuesOnHostHostSelectionTypeVc = FtIssuesOnHostHostSelectionType("vc") - FtIssuesOnHostHostSelectionTypeDrs = FtIssuesOnHostHostSelectionType("drs") -) - -func init() { - t["FtIssuesOnHostHostSelectionType"] = reflect.TypeOf((*FtIssuesOnHostHostSelectionType)(nil)).Elem() -} - -type GuestFileType string - -const ( - GuestFileTypeFile = GuestFileType("file") - GuestFileTypeDirectory = GuestFileType("directory") - GuestFileTypeSymlink = GuestFileType("symlink") -) - -func init() { - t["GuestFileType"] = reflect.TypeOf((*GuestFileType)(nil)).Elem() -} - -type GuestInfoAppStateType string - -const ( - GuestInfoAppStateTypeNone = GuestInfoAppStateType("none") - GuestInfoAppStateTypeAppStateOk = GuestInfoAppStateType("appStateOk") - GuestInfoAppStateTypeAppStateNeedReset = GuestInfoAppStateType("appStateNeedReset") -) - -func init() { - t["GuestInfoAppStateType"] = reflect.TypeOf((*GuestInfoAppStateType)(nil)).Elem() -} - -type GuestOsDescriptorFirmwareType string - -const ( - GuestOsDescriptorFirmwareTypeBios = GuestOsDescriptorFirmwareType("bios") - GuestOsDescriptorFirmwareTypeEfi = GuestOsDescriptorFirmwareType("efi") -) - -func init() { - t["GuestOsDescriptorFirmwareType"] = reflect.TypeOf((*GuestOsDescriptorFirmwareType)(nil)).Elem() -} - -type GuestOsDescriptorSupportLevel string - -const ( - GuestOsDescriptorSupportLevelExperimental = GuestOsDescriptorSupportLevel("experimental") - GuestOsDescriptorSupportLevelLegacy = GuestOsDescriptorSupportLevel("legacy") - GuestOsDescriptorSupportLevelTerminated = GuestOsDescriptorSupportLevel("terminated") - GuestOsDescriptorSupportLevelSupported = GuestOsDescriptorSupportLevel("supported") - GuestOsDescriptorSupportLevelUnsupported = GuestOsDescriptorSupportLevel("unsupported") - GuestOsDescriptorSupportLevelDeprecated = GuestOsDescriptorSupportLevel("deprecated") - GuestOsDescriptorSupportLevelTechPreview = GuestOsDescriptorSupportLevel("techPreview") -) - -func init() { - t["GuestOsDescriptorSupportLevel"] = reflect.TypeOf((*GuestOsDescriptorSupportLevel)(nil)).Elem() -} - -type GuestRegKeyWowSpec string - -const ( - GuestRegKeyWowSpecWOWNative = GuestRegKeyWowSpec("WOWNative") - GuestRegKeyWowSpecWOW32 = GuestRegKeyWowSpec("WOW32") - GuestRegKeyWowSpecWOW64 = GuestRegKeyWowSpec("WOW64") -) - -func init() { - t["GuestRegKeyWowSpec"] = reflect.TypeOf((*GuestRegKeyWowSpec)(nil)).Elem() -} - -type HealthUpdateInfoComponentType string - -const ( - HealthUpdateInfoComponentTypeMemory = HealthUpdateInfoComponentType("Memory") - HealthUpdateInfoComponentTypePower = HealthUpdateInfoComponentType("Power") - HealthUpdateInfoComponentTypeFan = HealthUpdateInfoComponentType("Fan") - HealthUpdateInfoComponentTypeNetwork = HealthUpdateInfoComponentType("Network") - HealthUpdateInfoComponentTypeStorage = HealthUpdateInfoComponentType("Storage") -) - -func init() { - t["HealthUpdateInfoComponentType"] = reflect.TypeOf((*HealthUpdateInfoComponentType)(nil)).Elem() -} - -type HostAccessMode string - -const ( - HostAccessModeAccessNone = HostAccessMode("accessNone") - HostAccessModeAccessAdmin = HostAccessMode("accessAdmin") - HostAccessModeAccessNoAccess = HostAccessMode("accessNoAccess") - HostAccessModeAccessReadOnly = HostAccessMode("accessReadOnly") - HostAccessModeAccessOther = HostAccessMode("accessOther") -) - -func init() { - t["HostAccessMode"] = reflect.TypeOf((*HostAccessMode)(nil)).Elem() -} - -type HostActiveDirectoryAuthenticationCertificateDigest string - -const ( - HostActiveDirectoryAuthenticationCertificateDigestSHA1 = HostActiveDirectoryAuthenticationCertificateDigest("SHA1") -) - -func init() { - t["HostActiveDirectoryAuthenticationCertificateDigest"] = reflect.TypeOf((*HostActiveDirectoryAuthenticationCertificateDigest)(nil)).Elem() -} - -type HostActiveDirectoryInfoDomainMembershipStatus string - -const ( - HostActiveDirectoryInfoDomainMembershipStatusUnknown = HostActiveDirectoryInfoDomainMembershipStatus("unknown") - HostActiveDirectoryInfoDomainMembershipStatusOk = HostActiveDirectoryInfoDomainMembershipStatus("ok") - HostActiveDirectoryInfoDomainMembershipStatusNoServers = HostActiveDirectoryInfoDomainMembershipStatus("noServers") - HostActiveDirectoryInfoDomainMembershipStatusClientTrustBroken = HostActiveDirectoryInfoDomainMembershipStatus("clientTrustBroken") - HostActiveDirectoryInfoDomainMembershipStatusServerTrustBroken = HostActiveDirectoryInfoDomainMembershipStatus("serverTrustBroken") - HostActiveDirectoryInfoDomainMembershipStatusInconsistentTrust = HostActiveDirectoryInfoDomainMembershipStatus("inconsistentTrust") - HostActiveDirectoryInfoDomainMembershipStatusOtherProblem = HostActiveDirectoryInfoDomainMembershipStatus("otherProblem") -) - -func init() { - t["HostActiveDirectoryInfoDomainMembershipStatus"] = reflect.TypeOf((*HostActiveDirectoryInfoDomainMembershipStatus)(nil)).Elem() -} - -type HostCapabilityFtUnsupportedReason string - -const ( - HostCapabilityFtUnsupportedReasonVMotionNotLicensed = HostCapabilityFtUnsupportedReason("vMotionNotLicensed") - HostCapabilityFtUnsupportedReasonMissingVMotionNic = HostCapabilityFtUnsupportedReason("missingVMotionNic") - HostCapabilityFtUnsupportedReasonMissingFTLoggingNic = HostCapabilityFtUnsupportedReason("missingFTLoggingNic") - HostCapabilityFtUnsupportedReasonFtNotLicensed = HostCapabilityFtUnsupportedReason("ftNotLicensed") - HostCapabilityFtUnsupportedReasonHaAgentIssue = HostCapabilityFtUnsupportedReason("haAgentIssue") - HostCapabilityFtUnsupportedReasonUnsupportedProduct = HostCapabilityFtUnsupportedReason("unsupportedProduct") - HostCapabilityFtUnsupportedReasonCpuHvUnsupported = HostCapabilityFtUnsupportedReason("cpuHvUnsupported") - HostCapabilityFtUnsupportedReasonCpuHwmmuUnsupported = HostCapabilityFtUnsupportedReason("cpuHwmmuUnsupported") - HostCapabilityFtUnsupportedReasonCpuHvDisabled = HostCapabilityFtUnsupportedReason("cpuHvDisabled") -) - -func init() { - t["HostCapabilityFtUnsupportedReason"] = reflect.TypeOf((*HostCapabilityFtUnsupportedReason)(nil)).Elem() -} - -type HostCapabilityVmDirectPathGen2UnsupportedReason string - -const ( - HostCapabilityVmDirectPathGen2UnsupportedReasonHostNptIncompatibleProduct = HostCapabilityVmDirectPathGen2UnsupportedReason("hostNptIncompatibleProduct") - HostCapabilityVmDirectPathGen2UnsupportedReasonHostNptIncompatibleHardware = HostCapabilityVmDirectPathGen2UnsupportedReason("hostNptIncompatibleHardware") - HostCapabilityVmDirectPathGen2UnsupportedReasonHostNptDisabled = HostCapabilityVmDirectPathGen2UnsupportedReason("hostNptDisabled") -) - -func init() { - t["HostCapabilityVmDirectPathGen2UnsupportedReason"] = reflect.TypeOf((*HostCapabilityVmDirectPathGen2UnsupportedReason)(nil)).Elem() -} - -type HostCertificateManagerCertificateInfoCertificateStatus string - -const ( - HostCertificateManagerCertificateInfoCertificateStatusUnknown = HostCertificateManagerCertificateInfoCertificateStatus("unknown") - HostCertificateManagerCertificateInfoCertificateStatusExpired = HostCertificateManagerCertificateInfoCertificateStatus("expired") - HostCertificateManagerCertificateInfoCertificateStatusExpiring = HostCertificateManagerCertificateInfoCertificateStatus("expiring") - HostCertificateManagerCertificateInfoCertificateStatusExpiringShortly = HostCertificateManagerCertificateInfoCertificateStatus("expiringShortly") - HostCertificateManagerCertificateInfoCertificateStatusExpirationImminent = HostCertificateManagerCertificateInfoCertificateStatus("expirationImminent") - HostCertificateManagerCertificateInfoCertificateStatusGood = HostCertificateManagerCertificateInfoCertificateStatus("good") -) - -func init() { - t["HostCertificateManagerCertificateInfoCertificateStatus"] = reflect.TypeOf((*HostCertificateManagerCertificateInfoCertificateStatus)(nil)).Elem() -} - -type HostConfigChangeMode string - -const ( - HostConfigChangeModeModify = HostConfigChangeMode("modify") - HostConfigChangeModeReplace = HostConfigChangeMode("replace") -) - -func init() { - t["HostConfigChangeMode"] = reflect.TypeOf((*HostConfigChangeMode)(nil)).Elem() -} - -type HostConfigChangeOperation string - -const ( - HostConfigChangeOperationAdd = HostConfigChangeOperation("add") - HostConfigChangeOperationRemove = HostConfigChangeOperation("remove") - HostConfigChangeOperationEdit = HostConfigChangeOperation("edit") - HostConfigChangeOperationIgnore = HostConfigChangeOperation("ignore") -) - -func init() { - t["HostConfigChangeOperation"] = reflect.TypeOf((*HostConfigChangeOperation)(nil)).Elem() -} - -type HostCpuPackageVendor string - -const ( - HostCpuPackageVendorUnknown = HostCpuPackageVendor("unknown") - HostCpuPackageVendorIntel = HostCpuPackageVendor("intel") - HostCpuPackageVendorAmd = HostCpuPackageVendor("amd") -) - -func init() { - t["HostCpuPackageVendor"] = reflect.TypeOf((*HostCpuPackageVendor)(nil)).Elem() -} - -type HostCpuPowerManagementInfoPolicyType string - -const ( - HostCpuPowerManagementInfoPolicyTypeOff = HostCpuPowerManagementInfoPolicyType("off") - HostCpuPowerManagementInfoPolicyTypeStaticPolicy = HostCpuPowerManagementInfoPolicyType("staticPolicy") - HostCpuPowerManagementInfoPolicyTypeDynamicPolicy = HostCpuPowerManagementInfoPolicyType("dynamicPolicy") -) - -func init() { - t["HostCpuPowerManagementInfoPolicyType"] = reflect.TypeOf((*HostCpuPowerManagementInfoPolicyType)(nil)).Elem() -} - -type HostCryptoState string - -const ( - HostCryptoStateIncapable = HostCryptoState("incapable") - HostCryptoStatePrepared = HostCryptoState("prepared") - HostCryptoStateSafe = HostCryptoState("safe") -) - -func init() { - t["HostCryptoState"] = reflect.TypeOf((*HostCryptoState)(nil)).Elem() -} - -type HostDasErrorEventHostDasErrorReason string - -const ( - HostDasErrorEventHostDasErrorReasonConfigFailed = HostDasErrorEventHostDasErrorReason("configFailed") - HostDasErrorEventHostDasErrorReasonTimeout = HostDasErrorEventHostDasErrorReason("timeout") - HostDasErrorEventHostDasErrorReasonCommunicationInitFailed = HostDasErrorEventHostDasErrorReason("communicationInitFailed") - HostDasErrorEventHostDasErrorReasonHealthCheckScriptFailed = HostDasErrorEventHostDasErrorReason("healthCheckScriptFailed") - HostDasErrorEventHostDasErrorReasonAgentFailed = HostDasErrorEventHostDasErrorReason("agentFailed") - HostDasErrorEventHostDasErrorReasonAgentShutdown = HostDasErrorEventHostDasErrorReason("agentShutdown") - HostDasErrorEventHostDasErrorReasonIsolationAddressUnpingable = HostDasErrorEventHostDasErrorReason("isolationAddressUnpingable") - HostDasErrorEventHostDasErrorReasonOther = HostDasErrorEventHostDasErrorReason("other") -) - -func init() { - t["HostDasErrorEventHostDasErrorReason"] = reflect.TypeOf((*HostDasErrorEventHostDasErrorReason)(nil)).Elem() -} - -type HostDigestInfoDigestMethodType string - -const ( - HostDigestInfoDigestMethodTypeSHA1 = HostDigestInfoDigestMethodType("SHA1") - HostDigestInfoDigestMethodTypeMD5 = HostDigestInfoDigestMethodType("MD5") -) - -func init() { - t["HostDigestInfoDigestMethodType"] = reflect.TypeOf((*HostDigestInfoDigestMethodType)(nil)).Elem() -} - -type HostDisconnectedEventReasonCode string - -const ( - HostDisconnectedEventReasonCodeSslThumbprintVerifyFailed = HostDisconnectedEventReasonCode("sslThumbprintVerifyFailed") - HostDisconnectedEventReasonCodeLicenseExpired = HostDisconnectedEventReasonCode("licenseExpired") - HostDisconnectedEventReasonCodeAgentUpgrade = HostDisconnectedEventReasonCode("agentUpgrade") - HostDisconnectedEventReasonCodeUserRequest = HostDisconnectedEventReasonCode("userRequest") - HostDisconnectedEventReasonCodeInsufficientLicenses = HostDisconnectedEventReasonCode("insufficientLicenses") - HostDisconnectedEventReasonCodeAgentOutOfDate = HostDisconnectedEventReasonCode("agentOutOfDate") - HostDisconnectedEventReasonCodePasswordDecryptFailure = HostDisconnectedEventReasonCode("passwordDecryptFailure") - HostDisconnectedEventReasonCodeUnknown = HostDisconnectedEventReasonCode("unknown") - HostDisconnectedEventReasonCodeVcVRAMCapacityExceeded = HostDisconnectedEventReasonCode("vcVRAMCapacityExceeded") -) - -func init() { - t["HostDisconnectedEventReasonCode"] = reflect.TypeOf((*HostDisconnectedEventReasonCode)(nil)).Elem() -} - -type HostDiskPartitionInfoPartitionFormat string - -const ( - HostDiskPartitionInfoPartitionFormatGpt = HostDiskPartitionInfoPartitionFormat("gpt") - HostDiskPartitionInfoPartitionFormatMbr = HostDiskPartitionInfoPartitionFormat("mbr") - HostDiskPartitionInfoPartitionFormatUnknown = HostDiskPartitionInfoPartitionFormat("unknown") -) - -func init() { - t["HostDiskPartitionInfoPartitionFormat"] = reflect.TypeOf((*HostDiskPartitionInfoPartitionFormat)(nil)).Elem() -} - -type HostDiskPartitionInfoType string - -const ( - HostDiskPartitionInfoTypeNone = HostDiskPartitionInfoType("none") - HostDiskPartitionInfoTypeVmfs = HostDiskPartitionInfoType("vmfs") - HostDiskPartitionInfoTypeLinuxNative = HostDiskPartitionInfoType("linuxNative") - HostDiskPartitionInfoTypeLinuxSwap = HostDiskPartitionInfoType("linuxSwap") - HostDiskPartitionInfoTypeExtended = HostDiskPartitionInfoType("extended") - HostDiskPartitionInfoTypeNtfs = HostDiskPartitionInfoType("ntfs") - HostDiskPartitionInfoTypeVmkDiagnostic = HostDiskPartitionInfoType("vmkDiagnostic") - HostDiskPartitionInfoTypeVffs = HostDiskPartitionInfoType("vffs") -) - -func init() { - t["HostDiskPartitionInfoType"] = reflect.TypeOf((*HostDiskPartitionInfoType)(nil)).Elem() -} - -type HostFeatureVersionKey string - -const ( - HostFeatureVersionKeyFaultTolerance = HostFeatureVersionKey("faultTolerance") -) - -func init() { - t["HostFeatureVersionKey"] = reflect.TypeOf((*HostFeatureVersionKey)(nil)).Elem() -} - -type HostFileSystemVolumeFileSystemType string - -const ( - HostFileSystemVolumeFileSystemTypeVMFS = HostFileSystemVolumeFileSystemType("VMFS") - HostFileSystemVolumeFileSystemTypeNFS = HostFileSystemVolumeFileSystemType("NFS") - HostFileSystemVolumeFileSystemTypeNFS41 = HostFileSystemVolumeFileSystemType("NFS41") - HostFileSystemVolumeFileSystemTypeCIFS = HostFileSystemVolumeFileSystemType("CIFS") - HostFileSystemVolumeFileSystemTypeVsan = HostFileSystemVolumeFileSystemType("vsan") - HostFileSystemVolumeFileSystemTypeVFFS = HostFileSystemVolumeFileSystemType("VFFS") - HostFileSystemVolumeFileSystemTypeVVOL = HostFileSystemVolumeFileSystemType("VVOL") - HostFileSystemVolumeFileSystemTypeOTHER = HostFileSystemVolumeFileSystemType("OTHER") -) - -func init() { - t["HostFileSystemVolumeFileSystemType"] = reflect.TypeOf((*HostFileSystemVolumeFileSystemType)(nil)).Elem() -} - -type HostFirewallRuleDirection string - -const ( - HostFirewallRuleDirectionInbound = HostFirewallRuleDirection("inbound") - HostFirewallRuleDirectionOutbound = HostFirewallRuleDirection("outbound") -) - -func init() { - t["HostFirewallRuleDirection"] = reflect.TypeOf((*HostFirewallRuleDirection)(nil)).Elem() -} - -type HostFirewallRulePortType string - -const ( - HostFirewallRulePortTypeSrc = HostFirewallRulePortType("src") - HostFirewallRulePortTypeDst = HostFirewallRulePortType("dst") -) - -func init() { - t["HostFirewallRulePortType"] = reflect.TypeOf((*HostFirewallRulePortType)(nil)).Elem() -} - -type HostFirewallRuleProtocol string - -const ( - HostFirewallRuleProtocolTcp = HostFirewallRuleProtocol("tcp") - HostFirewallRuleProtocolUdp = HostFirewallRuleProtocol("udp") -) - -func init() { - t["HostFirewallRuleProtocol"] = reflect.TypeOf((*HostFirewallRuleProtocol)(nil)).Elem() -} - -type HostGraphicsConfigGraphicsType string - -const ( - HostGraphicsConfigGraphicsTypeShared = HostGraphicsConfigGraphicsType("shared") - HostGraphicsConfigGraphicsTypeSharedDirect = HostGraphicsConfigGraphicsType("sharedDirect") -) - -func init() { - t["HostGraphicsConfigGraphicsType"] = reflect.TypeOf((*HostGraphicsConfigGraphicsType)(nil)).Elem() -} - -type HostGraphicsConfigSharedPassthruAssignmentPolicy string - -const ( - HostGraphicsConfigSharedPassthruAssignmentPolicyPerformance = HostGraphicsConfigSharedPassthruAssignmentPolicy("performance") - HostGraphicsConfigSharedPassthruAssignmentPolicyConsolidation = HostGraphicsConfigSharedPassthruAssignmentPolicy("consolidation") -) - -func init() { - t["HostGraphicsConfigSharedPassthruAssignmentPolicy"] = reflect.TypeOf((*HostGraphicsConfigSharedPassthruAssignmentPolicy)(nil)).Elem() -} - -type HostGraphicsInfoGraphicsType string - -const ( - HostGraphicsInfoGraphicsTypeBasic = HostGraphicsInfoGraphicsType("basic") - HostGraphicsInfoGraphicsTypeShared = HostGraphicsInfoGraphicsType("shared") - HostGraphicsInfoGraphicsTypeDirect = HostGraphicsInfoGraphicsType("direct") - HostGraphicsInfoGraphicsTypeSharedDirect = HostGraphicsInfoGraphicsType("sharedDirect") -) - -func init() { - t["HostGraphicsInfoGraphicsType"] = reflect.TypeOf((*HostGraphicsInfoGraphicsType)(nil)).Elem() -} - -type HostHardwareElementStatus string - -const ( - HostHardwareElementStatusUnknown = HostHardwareElementStatus("Unknown") - HostHardwareElementStatusGreen = HostHardwareElementStatus("Green") - HostHardwareElementStatusYellow = HostHardwareElementStatus("Yellow") - HostHardwareElementStatusRed = HostHardwareElementStatus("Red") -) - -func init() { - t["HostHardwareElementStatus"] = reflect.TypeOf((*HostHardwareElementStatus)(nil)).Elem() -} - -type HostHasComponentFailureHostComponentType string - -const ( - HostHasComponentFailureHostComponentTypeDatastore = HostHasComponentFailureHostComponentType("Datastore") -) - -func init() { - t["HostHasComponentFailureHostComponentType"] = reflect.TypeOf((*HostHasComponentFailureHostComponentType)(nil)).Elem() -} - -type HostImageAcceptanceLevel string - -const ( - HostImageAcceptanceLevelVmware_certified = HostImageAcceptanceLevel("vmware_certified") - HostImageAcceptanceLevelVmware_accepted = HostImageAcceptanceLevel("vmware_accepted") - HostImageAcceptanceLevelPartner = HostImageAcceptanceLevel("partner") - HostImageAcceptanceLevelCommunity = HostImageAcceptanceLevel("community") -) - -func init() { - t["HostImageAcceptanceLevel"] = reflect.TypeOf((*HostImageAcceptanceLevel)(nil)).Elem() -} - -type HostIncompatibleForFaultToleranceReason string - -const ( - HostIncompatibleForFaultToleranceReasonProduct = HostIncompatibleForFaultToleranceReason("product") - HostIncompatibleForFaultToleranceReasonProcessor = HostIncompatibleForFaultToleranceReason("processor") -) - -func init() { - t["HostIncompatibleForFaultToleranceReason"] = reflect.TypeOf((*HostIncompatibleForFaultToleranceReason)(nil)).Elem() -} - -type HostIncompatibleForRecordReplayReason string - -const ( - HostIncompatibleForRecordReplayReasonProduct = HostIncompatibleForRecordReplayReason("product") - HostIncompatibleForRecordReplayReasonProcessor = HostIncompatibleForRecordReplayReason("processor") -) - -func init() { - t["HostIncompatibleForRecordReplayReason"] = reflect.TypeOf((*HostIncompatibleForRecordReplayReason)(nil)).Elem() -} - -type HostInternetScsiHbaChapAuthenticationType string - -const ( - HostInternetScsiHbaChapAuthenticationTypeChapProhibited = HostInternetScsiHbaChapAuthenticationType("chapProhibited") - HostInternetScsiHbaChapAuthenticationTypeChapDiscouraged = HostInternetScsiHbaChapAuthenticationType("chapDiscouraged") - HostInternetScsiHbaChapAuthenticationTypeChapPreferred = HostInternetScsiHbaChapAuthenticationType("chapPreferred") - HostInternetScsiHbaChapAuthenticationTypeChapRequired = HostInternetScsiHbaChapAuthenticationType("chapRequired") -) - -func init() { - t["HostInternetScsiHbaChapAuthenticationType"] = reflect.TypeOf((*HostInternetScsiHbaChapAuthenticationType)(nil)).Elem() -} - -type HostInternetScsiHbaDigestType string - -const ( - HostInternetScsiHbaDigestTypeDigestProhibited = HostInternetScsiHbaDigestType("digestProhibited") - HostInternetScsiHbaDigestTypeDigestDiscouraged = HostInternetScsiHbaDigestType("digestDiscouraged") - HostInternetScsiHbaDigestTypeDigestPreferred = HostInternetScsiHbaDigestType("digestPreferred") - HostInternetScsiHbaDigestTypeDigestRequired = HostInternetScsiHbaDigestType("digestRequired") -) - -func init() { - t["HostInternetScsiHbaDigestType"] = reflect.TypeOf((*HostInternetScsiHbaDigestType)(nil)).Elem() -} - -type HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationType string - -const ( - HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationTypeDHCP = HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationType("DHCP") - HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationTypeAutoConfigured = HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationType("AutoConfigured") - HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationTypeStatic = HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationType("Static") - HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationTypeOther = HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationType("Other") -) - -func init() { - t["HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationType"] = reflect.TypeOf((*HostInternetScsiHbaIscsiIpv6AddressAddressConfigurationType)(nil)).Elem() -} - -type HostInternetScsiHbaIscsiIpv6AddressIPv6AddressOperation string - -const ( - HostInternetScsiHbaIscsiIpv6AddressIPv6AddressOperationAdd = HostInternetScsiHbaIscsiIpv6AddressIPv6AddressOperation("add") - HostInternetScsiHbaIscsiIpv6AddressIPv6AddressOperationRemove = HostInternetScsiHbaIscsiIpv6AddressIPv6AddressOperation("remove") -) - -func init() { - t["HostInternetScsiHbaIscsiIpv6AddressIPv6AddressOperation"] = reflect.TypeOf((*HostInternetScsiHbaIscsiIpv6AddressIPv6AddressOperation)(nil)).Elem() -} - -type HostInternetScsiHbaNetworkBindingSupportType string - -const ( - HostInternetScsiHbaNetworkBindingSupportTypeNotsupported = HostInternetScsiHbaNetworkBindingSupportType("notsupported") - HostInternetScsiHbaNetworkBindingSupportTypeOptional = HostInternetScsiHbaNetworkBindingSupportType("optional") - HostInternetScsiHbaNetworkBindingSupportTypeRequired = HostInternetScsiHbaNetworkBindingSupportType("required") -) - -func init() { - t["HostInternetScsiHbaNetworkBindingSupportType"] = reflect.TypeOf((*HostInternetScsiHbaNetworkBindingSupportType)(nil)).Elem() -} - -type HostInternetScsiHbaStaticTargetTargetDiscoveryMethod string - -const ( - HostInternetScsiHbaStaticTargetTargetDiscoveryMethodStaticMethod = HostInternetScsiHbaStaticTargetTargetDiscoveryMethod("staticMethod") - HostInternetScsiHbaStaticTargetTargetDiscoveryMethodSendTargetMethod = HostInternetScsiHbaStaticTargetTargetDiscoveryMethod("sendTargetMethod") - HostInternetScsiHbaStaticTargetTargetDiscoveryMethodSlpMethod = HostInternetScsiHbaStaticTargetTargetDiscoveryMethod("slpMethod") - HostInternetScsiHbaStaticTargetTargetDiscoveryMethodIsnsMethod = HostInternetScsiHbaStaticTargetTargetDiscoveryMethod("isnsMethod") - HostInternetScsiHbaStaticTargetTargetDiscoveryMethodUnknownMethod = HostInternetScsiHbaStaticTargetTargetDiscoveryMethod("unknownMethod") -) - -func init() { - t["HostInternetScsiHbaStaticTargetTargetDiscoveryMethod"] = reflect.TypeOf((*HostInternetScsiHbaStaticTargetTargetDiscoveryMethod)(nil)).Elem() -} - -type HostIpConfigIpV6AddressConfigType string - -const ( - HostIpConfigIpV6AddressConfigTypeOther = HostIpConfigIpV6AddressConfigType("other") - HostIpConfigIpV6AddressConfigTypeManual = HostIpConfigIpV6AddressConfigType("manual") - HostIpConfigIpV6AddressConfigTypeDhcp = HostIpConfigIpV6AddressConfigType("dhcp") - HostIpConfigIpV6AddressConfigTypeLinklayer = HostIpConfigIpV6AddressConfigType("linklayer") - HostIpConfigIpV6AddressConfigTypeRandom = HostIpConfigIpV6AddressConfigType("random") -) - -func init() { - t["HostIpConfigIpV6AddressConfigType"] = reflect.TypeOf((*HostIpConfigIpV6AddressConfigType)(nil)).Elem() -} - -type HostIpConfigIpV6AddressStatus string - -const ( - HostIpConfigIpV6AddressStatusPreferred = HostIpConfigIpV6AddressStatus("preferred") - HostIpConfigIpV6AddressStatusDeprecated = HostIpConfigIpV6AddressStatus("deprecated") - HostIpConfigIpV6AddressStatusInvalid = HostIpConfigIpV6AddressStatus("invalid") - HostIpConfigIpV6AddressStatusInaccessible = HostIpConfigIpV6AddressStatus("inaccessible") - HostIpConfigIpV6AddressStatusUnknown = HostIpConfigIpV6AddressStatus("unknown") - HostIpConfigIpV6AddressStatusTentative = HostIpConfigIpV6AddressStatus("tentative") - HostIpConfigIpV6AddressStatusDuplicate = HostIpConfigIpV6AddressStatus("duplicate") -) - -func init() { - t["HostIpConfigIpV6AddressStatus"] = reflect.TypeOf((*HostIpConfigIpV6AddressStatus)(nil)).Elem() -} - -type HostLicensableResourceKey string - -const ( - HostLicensableResourceKeyNumCpuPackages = HostLicensableResourceKey("numCpuPackages") - HostLicensableResourceKeyNumCpuCores = HostLicensableResourceKey("numCpuCores") - HostLicensableResourceKeyMemorySize = HostLicensableResourceKey("memorySize") - HostLicensableResourceKeyMemoryForVms = HostLicensableResourceKey("memoryForVms") - HostLicensableResourceKeyNumVmsStarted = HostLicensableResourceKey("numVmsStarted") - HostLicensableResourceKeyNumVmsStarting = HostLicensableResourceKey("numVmsStarting") -) - -func init() { - t["HostLicensableResourceKey"] = reflect.TypeOf((*HostLicensableResourceKey)(nil)).Elem() -} - -type HostLockdownMode string - -const ( - HostLockdownModeLockdownDisabled = HostLockdownMode("lockdownDisabled") - HostLockdownModeLockdownNormal = HostLockdownMode("lockdownNormal") - HostLockdownModeLockdownStrict = HostLockdownMode("lockdownStrict") -) - -func init() { - t["HostLockdownMode"] = reflect.TypeOf((*HostLockdownMode)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerFileType string - -const ( - HostLowLevelProvisioningManagerFileTypeFile = HostLowLevelProvisioningManagerFileType("File") - HostLowLevelProvisioningManagerFileTypeVirtualDisk = HostLowLevelProvisioningManagerFileType("VirtualDisk") - HostLowLevelProvisioningManagerFileTypeDirectory = HostLowLevelProvisioningManagerFileType("Directory") -) - -func init() { - t["HostLowLevelProvisioningManagerFileType"] = reflect.TypeOf((*HostLowLevelProvisioningManagerFileType)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerReloadTarget string - -const ( - HostLowLevelProvisioningManagerReloadTargetCurrentConfig = HostLowLevelProvisioningManagerReloadTarget("currentConfig") - HostLowLevelProvisioningManagerReloadTargetSnapshotConfig = HostLowLevelProvisioningManagerReloadTarget("snapshotConfig") -) - -func init() { - t["HostLowLevelProvisioningManagerReloadTarget"] = reflect.TypeOf((*HostLowLevelProvisioningManagerReloadTarget)(nil)).Elem() -} - -type HostMountInfoInaccessibleReason string - -const ( - HostMountInfoInaccessibleReasonAllPathsDown_Start = HostMountInfoInaccessibleReason("AllPathsDown_Start") - HostMountInfoInaccessibleReasonAllPathsDown_Timeout = HostMountInfoInaccessibleReason("AllPathsDown_Timeout") - HostMountInfoInaccessibleReasonPermanentDeviceLoss = HostMountInfoInaccessibleReason("PermanentDeviceLoss") -) - -func init() { - t["HostMountInfoInaccessibleReason"] = reflect.TypeOf((*HostMountInfoInaccessibleReason)(nil)).Elem() -} - -type HostMountMode string - -const ( - HostMountModeReadWrite = HostMountMode("readWrite") - HostMountModeReadOnly = HostMountMode("readOnly") -) - -func init() { - t["HostMountMode"] = reflect.TypeOf((*HostMountMode)(nil)).Elem() -} - -type HostNasVolumeSecurityType string - -const ( - HostNasVolumeSecurityTypeAUTH_SYS = HostNasVolumeSecurityType("AUTH_SYS") - HostNasVolumeSecurityTypeSEC_KRB5 = HostNasVolumeSecurityType("SEC_KRB5") - HostNasVolumeSecurityTypeSEC_KRB5I = HostNasVolumeSecurityType("SEC_KRB5I") -) - -func init() { - t["HostNasVolumeSecurityType"] = reflect.TypeOf((*HostNasVolumeSecurityType)(nil)).Elem() -} - -type HostNetStackInstanceCongestionControlAlgorithmType string - -const ( - HostNetStackInstanceCongestionControlAlgorithmTypeNewreno = HostNetStackInstanceCongestionControlAlgorithmType("newreno") - HostNetStackInstanceCongestionControlAlgorithmTypeCubic = HostNetStackInstanceCongestionControlAlgorithmType("cubic") -) - -func init() { - t["HostNetStackInstanceCongestionControlAlgorithmType"] = reflect.TypeOf((*HostNetStackInstanceCongestionControlAlgorithmType)(nil)).Elem() -} - -type HostNetStackInstanceSystemStackKey string - -const ( - HostNetStackInstanceSystemStackKeyDefaultTcpipStack = HostNetStackInstanceSystemStackKey("defaultTcpipStack") - HostNetStackInstanceSystemStackKeyVmotion = HostNetStackInstanceSystemStackKey("vmotion") - HostNetStackInstanceSystemStackKeyVSphereProvisioning = HostNetStackInstanceSystemStackKey("vSphereProvisioning") -) - -func init() { - t["HostNetStackInstanceSystemStackKey"] = reflect.TypeOf((*HostNetStackInstanceSystemStackKey)(nil)).Elem() -} - -type HostNumericSensorHealthState string - -const ( - HostNumericSensorHealthStateUnknown = HostNumericSensorHealthState("unknown") - HostNumericSensorHealthStateGreen = HostNumericSensorHealthState("green") - HostNumericSensorHealthStateYellow = HostNumericSensorHealthState("yellow") - HostNumericSensorHealthStateRed = HostNumericSensorHealthState("red") -) - -func init() { - t["HostNumericSensorHealthState"] = reflect.TypeOf((*HostNumericSensorHealthState)(nil)).Elem() -} - -type HostNumericSensorType string - -const ( - HostNumericSensorTypeFan = HostNumericSensorType("fan") - HostNumericSensorTypePower = HostNumericSensorType("power") - HostNumericSensorTypeTemperature = HostNumericSensorType("temperature") - HostNumericSensorTypeVoltage = HostNumericSensorType("voltage") - HostNumericSensorTypeOther = HostNumericSensorType("other") - HostNumericSensorTypeProcessor = HostNumericSensorType("processor") - HostNumericSensorTypeMemory = HostNumericSensorType("memory") - HostNumericSensorTypeStorage = HostNumericSensorType("storage") - HostNumericSensorTypeSystemBoard = HostNumericSensorType("systemBoard") - HostNumericSensorTypeBattery = HostNumericSensorType("battery") - HostNumericSensorTypeBios = HostNumericSensorType("bios") - HostNumericSensorTypeCable = HostNumericSensorType("cable") - HostNumericSensorTypeWatchdog = HostNumericSensorType("watchdog") -) - -func init() { - t["HostNumericSensorType"] = reflect.TypeOf((*HostNumericSensorType)(nil)).Elem() -} - -type HostOpaqueSwitchOpaqueSwitchState string - -const ( - HostOpaqueSwitchOpaqueSwitchStateUp = HostOpaqueSwitchOpaqueSwitchState("up") - HostOpaqueSwitchOpaqueSwitchStateWarning = HostOpaqueSwitchOpaqueSwitchState("warning") - HostOpaqueSwitchOpaqueSwitchStateDown = HostOpaqueSwitchOpaqueSwitchState("down") -) - -func init() { - t["HostOpaqueSwitchOpaqueSwitchState"] = reflect.TypeOf((*HostOpaqueSwitchOpaqueSwitchState)(nil)).Elem() -} - -type HostPatchManagerInstallState string - -const ( - HostPatchManagerInstallStateHostRestarted = HostPatchManagerInstallState("hostRestarted") - HostPatchManagerInstallStateImageActive = HostPatchManagerInstallState("imageActive") -) - -func init() { - t["HostPatchManagerInstallState"] = reflect.TypeOf((*HostPatchManagerInstallState)(nil)).Elem() -} - -type HostPatchManagerIntegrityStatus string - -const ( - HostPatchManagerIntegrityStatusValidated = HostPatchManagerIntegrityStatus("validated") - HostPatchManagerIntegrityStatusKeyNotFound = HostPatchManagerIntegrityStatus("keyNotFound") - HostPatchManagerIntegrityStatusKeyRevoked = HostPatchManagerIntegrityStatus("keyRevoked") - HostPatchManagerIntegrityStatusKeyExpired = HostPatchManagerIntegrityStatus("keyExpired") - HostPatchManagerIntegrityStatusDigestMismatch = HostPatchManagerIntegrityStatus("digestMismatch") - HostPatchManagerIntegrityStatusNotEnoughSignatures = HostPatchManagerIntegrityStatus("notEnoughSignatures") - HostPatchManagerIntegrityStatusValidationError = HostPatchManagerIntegrityStatus("validationError") -) - -func init() { - t["HostPatchManagerIntegrityStatus"] = reflect.TypeOf((*HostPatchManagerIntegrityStatus)(nil)).Elem() -} - -type HostPatchManagerReason string - -const ( - HostPatchManagerReasonObsoleted = HostPatchManagerReason("obsoleted") - HostPatchManagerReasonMissingPatch = HostPatchManagerReason("missingPatch") - HostPatchManagerReasonMissingLib = HostPatchManagerReason("missingLib") - HostPatchManagerReasonHasDependentPatch = HostPatchManagerReason("hasDependentPatch") - HostPatchManagerReasonConflictPatch = HostPatchManagerReason("conflictPatch") - HostPatchManagerReasonConflictLib = HostPatchManagerReason("conflictLib") -) - -func init() { - t["HostPatchManagerReason"] = reflect.TypeOf((*HostPatchManagerReason)(nil)).Elem() -} - -type HostPowerOperationType string - -const ( - HostPowerOperationTypePowerOn = HostPowerOperationType("powerOn") - HostPowerOperationTypePowerOff = HostPowerOperationType("powerOff") -) - -func init() { - t["HostPowerOperationType"] = reflect.TypeOf((*HostPowerOperationType)(nil)).Elem() -} - -type HostProfileManagerAnswerFileStatus string - -const ( - HostProfileManagerAnswerFileStatusValid = HostProfileManagerAnswerFileStatus("valid") - HostProfileManagerAnswerFileStatusInvalid = HostProfileManagerAnswerFileStatus("invalid") - HostProfileManagerAnswerFileStatusUnknown = HostProfileManagerAnswerFileStatus("unknown") -) - -func init() { - t["HostProfileManagerAnswerFileStatus"] = reflect.TypeOf((*HostProfileManagerAnswerFileStatus)(nil)).Elem() -} - -type HostProfileManagerTaskListRequirement string - -const ( - HostProfileManagerTaskListRequirementMaintenanceModeRequired = HostProfileManagerTaskListRequirement("maintenanceModeRequired") - HostProfileManagerTaskListRequirementRebootRequired = HostProfileManagerTaskListRequirement("rebootRequired") -) - -func init() { - t["HostProfileManagerTaskListRequirement"] = reflect.TypeOf((*HostProfileManagerTaskListRequirement)(nil)).Elem() -} - -type HostProtocolEndpointPEType string - -const ( - HostProtocolEndpointPETypeBlock = HostProtocolEndpointPEType("block") - HostProtocolEndpointPETypeNas = HostProtocolEndpointPEType("nas") -) - -func init() { - t["HostProtocolEndpointPEType"] = reflect.TypeOf((*HostProtocolEndpointPEType)(nil)).Elem() -} - -type HostProtocolEndpointProtocolEndpointType string - -const ( - HostProtocolEndpointProtocolEndpointTypeScsi = HostProtocolEndpointProtocolEndpointType("scsi") - HostProtocolEndpointProtocolEndpointTypeNfs = HostProtocolEndpointProtocolEndpointType("nfs") - HostProtocolEndpointProtocolEndpointTypeNfs4x = HostProtocolEndpointProtocolEndpointType("nfs4x") -) - -func init() { - t["HostProtocolEndpointProtocolEndpointType"] = reflect.TypeOf((*HostProtocolEndpointProtocolEndpointType)(nil)).Elem() -} - -type HostReplayUnsupportedReason string - -const ( - HostReplayUnsupportedReasonIncompatibleProduct = HostReplayUnsupportedReason("incompatibleProduct") - HostReplayUnsupportedReasonIncompatibleCpu = HostReplayUnsupportedReason("incompatibleCpu") - HostReplayUnsupportedReasonHvDisabled = HostReplayUnsupportedReason("hvDisabled") - HostReplayUnsupportedReasonCpuidLimitSet = HostReplayUnsupportedReason("cpuidLimitSet") - HostReplayUnsupportedReasonOldBIOS = HostReplayUnsupportedReason("oldBIOS") - HostReplayUnsupportedReasonUnknown = HostReplayUnsupportedReason("unknown") -) - -func init() { - t["HostReplayUnsupportedReason"] = reflect.TypeOf((*HostReplayUnsupportedReason)(nil)).Elem() -} - -type HostRuntimeInfoNetStackInstanceRuntimeInfoState string - -const ( - HostRuntimeInfoNetStackInstanceRuntimeInfoStateInactive = HostRuntimeInfoNetStackInstanceRuntimeInfoState("inactive") - HostRuntimeInfoNetStackInstanceRuntimeInfoStateActive = HostRuntimeInfoNetStackInstanceRuntimeInfoState("active") - HostRuntimeInfoNetStackInstanceRuntimeInfoStateDeactivating = HostRuntimeInfoNetStackInstanceRuntimeInfoState("deactivating") - HostRuntimeInfoNetStackInstanceRuntimeInfoStateActivating = HostRuntimeInfoNetStackInstanceRuntimeInfoState("activating") -) - -func init() { - t["HostRuntimeInfoNetStackInstanceRuntimeInfoState"] = reflect.TypeOf((*HostRuntimeInfoNetStackInstanceRuntimeInfoState)(nil)).Elem() -} - -type HostServicePolicy string - -const ( - HostServicePolicyOn = HostServicePolicy("on") - HostServicePolicyAutomatic = HostServicePolicy("automatic") - HostServicePolicyOff = HostServicePolicy("off") -) - -func init() { - t["HostServicePolicy"] = reflect.TypeOf((*HostServicePolicy)(nil)).Elem() -} - -type HostSnmpAgentCapability string - -const ( - HostSnmpAgentCapabilityCOMPLETE = HostSnmpAgentCapability("COMPLETE") - HostSnmpAgentCapabilityDIAGNOSTICS = HostSnmpAgentCapability("DIAGNOSTICS") - HostSnmpAgentCapabilityCONFIGURATION = HostSnmpAgentCapability("CONFIGURATION") -) - -func init() { - t["HostSnmpAgentCapability"] = reflect.TypeOf((*HostSnmpAgentCapability)(nil)).Elem() -} - -type HostStandbyMode string - -const ( - HostStandbyModeEntering = HostStandbyMode("entering") - HostStandbyModeExiting = HostStandbyMode("exiting") - HostStandbyModeIn = HostStandbyMode("in") - HostStandbyModeNone = HostStandbyMode("none") -) - -func init() { - t["HostStandbyMode"] = reflect.TypeOf((*HostStandbyMode)(nil)).Elem() -} - -type HostSystemConnectionState string - -const ( - HostSystemConnectionStateConnected = HostSystemConnectionState("connected") - HostSystemConnectionStateNotResponding = HostSystemConnectionState("notResponding") - HostSystemConnectionStateDisconnected = HostSystemConnectionState("disconnected") -) - -func init() { - t["HostSystemConnectionState"] = reflect.TypeOf((*HostSystemConnectionState)(nil)).Elem() -} - -type HostSystemIdentificationInfoIdentifier string - -const ( - HostSystemIdentificationInfoIdentifierAssetTag = HostSystemIdentificationInfoIdentifier("AssetTag") - HostSystemIdentificationInfoIdentifierServiceTag = HostSystemIdentificationInfoIdentifier("ServiceTag") - HostSystemIdentificationInfoIdentifierOemSpecificString = HostSystemIdentificationInfoIdentifier("OemSpecificString") -) - -func init() { - t["HostSystemIdentificationInfoIdentifier"] = reflect.TypeOf((*HostSystemIdentificationInfoIdentifier)(nil)).Elem() -} - -type HostSystemPowerState string - -const ( - HostSystemPowerStatePoweredOn = HostSystemPowerState("poweredOn") - HostSystemPowerStatePoweredOff = HostSystemPowerState("poweredOff") - HostSystemPowerStateStandBy = HostSystemPowerState("standBy") - HostSystemPowerStateUnknown = HostSystemPowerState("unknown") -) - -func init() { - t["HostSystemPowerState"] = reflect.TypeOf((*HostSystemPowerState)(nil)).Elem() -} - -type HostUnresolvedVmfsExtentUnresolvedReason string - -const ( - HostUnresolvedVmfsExtentUnresolvedReasonDiskIdMismatch = HostUnresolvedVmfsExtentUnresolvedReason("diskIdMismatch") - HostUnresolvedVmfsExtentUnresolvedReasonUuidConflict = HostUnresolvedVmfsExtentUnresolvedReason("uuidConflict") -) - -func init() { - t["HostUnresolvedVmfsExtentUnresolvedReason"] = reflect.TypeOf((*HostUnresolvedVmfsExtentUnresolvedReason)(nil)).Elem() -} - -type HostUnresolvedVmfsResolutionSpecVmfsUuidResolution string - -const ( - HostUnresolvedVmfsResolutionSpecVmfsUuidResolutionResignature = HostUnresolvedVmfsResolutionSpecVmfsUuidResolution("resignature") - HostUnresolvedVmfsResolutionSpecVmfsUuidResolutionForceMount = HostUnresolvedVmfsResolutionSpecVmfsUuidResolution("forceMount") -) - -func init() { - t["HostUnresolvedVmfsResolutionSpecVmfsUuidResolution"] = reflect.TypeOf((*HostUnresolvedVmfsResolutionSpecVmfsUuidResolution)(nil)).Elem() -} - -type HostVirtualNicManagerNicType string - -const ( - HostVirtualNicManagerNicTypeVmotion = HostVirtualNicManagerNicType("vmotion") - HostVirtualNicManagerNicTypeFaultToleranceLogging = HostVirtualNicManagerNicType("faultToleranceLogging") - HostVirtualNicManagerNicTypeVSphereReplication = HostVirtualNicManagerNicType("vSphereReplication") - HostVirtualNicManagerNicTypeVSphereReplicationNFC = HostVirtualNicManagerNicType("vSphereReplicationNFC") - HostVirtualNicManagerNicTypeManagement = HostVirtualNicManagerNicType("management") - HostVirtualNicManagerNicTypeVsan = HostVirtualNicManagerNicType("vsan") - HostVirtualNicManagerNicTypeVSphereProvisioning = HostVirtualNicManagerNicType("vSphereProvisioning") - HostVirtualNicManagerNicTypeVsanWitness = HostVirtualNicManagerNicType("vsanWitness") -) - -func init() { - t["HostVirtualNicManagerNicType"] = reflect.TypeOf((*HostVirtualNicManagerNicType)(nil)).Elem() -} - -type HostVmciAccessManagerMode string - -const ( - HostVmciAccessManagerModeGrant = HostVmciAccessManagerMode("grant") - HostVmciAccessManagerModeReplace = HostVmciAccessManagerMode("replace") - HostVmciAccessManagerModeRevoke = HostVmciAccessManagerMode("revoke") -) - -func init() { - t["HostVmciAccessManagerMode"] = reflect.TypeOf((*HostVmciAccessManagerMode)(nil)).Elem() -} - -type HostVmfsVolumeUnmapPriority string - -const ( - HostVmfsVolumeUnmapPriorityNone = HostVmfsVolumeUnmapPriority("none") - HostVmfsVolumeUnmapPriorityLow = HostVmfsVolumeUnmapPriority("low") -) - -func init() { - t["HostVmfsVolumeUnmapPriority"] = reflect.TypeOf((*HostVmfsVolumeUnmapPriority)(nil)).Elem() -} - -type HttpNfcLeaseState string - -const ( - HttpNfcLeaseStateInitializing = HttpNfcLeaseState("initializing") - HttpNfcLeaseStateReady = HttpNfcLeaseState("ready") - HttpNfcLeaseStateDone = HttpNfcLeaseState("done") - HttpNfcLeaseStateError = HttpNfcLeaseState("error") -) - -func init() { - t["HttpNfcLeaseState"] = reflect.TypeOf((*HttpNfcLeaseState)(nil)).Elem() -} - -type IncompatibleHostForVmReplicationIncompatibleReason string - -const ( - IncompatibleHostForVmReplicationIncompatibleReasonRpo = IncompatibleHostForVmReplicationIncompatibleReason("rpo") - IncompatibleHostForVmReplicationIncompatibleReasonNetCompression = IncompatibleHostForVmReplicationIncompatibleReason("netCompression") -) - -func init() { - t["IncompatibleHostForVmReplicationIncompatibleReason"] = reflect.TypeOf((*IncompatibleHostForVmReplicationIncompatibleReason)(nil)).Elem() -} - -type InternetScsiSnsDiscoveryMethod string - -const ( - InternetScsiSnsDiscoveryMethodIsnsStatic = InternetScsiSnsDiscoveryMethod("isnsStatic") - InternetScsiSnsDiscoveryMethodIsnsDhcp = InternetScsiSnsDiscoveryMethod("isnsDhcp") - InternetScsiSnsDiscoveryMethodIsnsSlp = InternetScsiSnsDiscoveryMethod("isnsSlp") -) - -func init() { - t["InternetScsiSnsDiscoveryMethod"] = reflect.TypeOf((*InternetScsiSnsDiscoveryMethod)(nil)).Elem() -} - -type InvalidDasConfigArgumentEntryForInvalidArgument string - -const ( - InvalidDasConfigArgumentEntryForInvalidArgumentAdmissionControl = InvalidDasConfigArgumentEntryForInvalidArgument("admissionControl") - InvalidDasConfigArgumentEntryForInvalidArgumentUserHeartbeatDs = InvalidDasConfigArgumentEntryForInvalidArgument("userHeartbeatDs") - InvalidDasConfigArgumentEntryForInvalidArgumentVmConfig = InvalidDasConfigArgumentEntryForInvalidArgument("vmConfig") -) - -func init() { - t["InvalidDasConfigArgumentEntryForInvalidArgument"] = reflect.TypeOf((*InvalidDasConfigArgumentEntryForInvalidArgument)(nil)).Elem() -} - -type InvalidProfileReferenceHostReason string - -const ( - InvalidProfileReferenceHostReasonIncompatibleVersion = InvalidProfileReferenceHostReason("incompatibleVersion") - InvalidProfileReferenceHostReasonMissingReferenceHost = InvalidProfileReferenceHostReason("missingReferenceHost") -) - -func init() { - t["InvalidProfileReferenceHostReason"] = reflect.TypeOf((*InvalidProfileReferenceHostReason)(nil)).Elem() -} - -type IoFilterOperation string - -const ( - IoFilterOperationInstall = IoFilterOperation("install") - IoFilterOperationUninstall = IoFilterOperation("uninstall") - IoFilterOperationUpgrade = IoFilterOperation("upgrade") -) - -func init() { - t["IoFilterOperation"] = reflect.TypeOf((*IoFilterOperation)(nil)).Elem() -} - -type IoFilterType string - -const ( - IoFilterTypeCache = IoFilterType("cache") - IoFilterTypeReplication = IoFilterType("replication") - IoFilterTypeEncryption = IoFilterType("encryption") - IoFilterTypeCompression = IoFilterType("compression") - IoFilterTypeInspection = IoFilterType("inspection") - IoFilterTypeDatastoreIoControl = IoFilterType("datastoreIoControl") - IoFilterTypeDataProvider = IoFilterType("dataProvider") -) - -func init() { - t["IoFilterType"] = reflect.TypeOf((*IoFilterType)(nil)).Elem() -} - -type IscsiPortInfoPathStatus string - -const ( - IscsiPortInfoPathStatusNotUsed = IscsiPortInfoPathStatus("notUsed") - IscsiPortInfoPathStatusActive = IscsiPortInfoPathStatus("active") - IscsiPortInfoPathStatusStandBy = IscsiPortInfoPathStatus("standBy") - IscsiPortInfoPathStatusLastActive = IscsiPortInfoPathStatus("lastActive") -) - -func init() { - t["IscsiPortInfoPathStatus"] = reflect.TypeOf((*IscsiPortInfoPathStatus)(nil)).Elem() -} - -type LatencySensitivitySensitivityLevel string - -const ( - LatencySensitivitySensitivityLevelLow = LatencySensitivitySensitivityLevel("low") - LatencySensitivitySensitivityLevelNormal = LatencySensitivitySensitivityLevel("normal") - LatencySensitivitySensitivityLevelMedium = LatencySensitivitySensitivityLevel("medium") - LatencySensitivitySensitivityLevelHigh = LatencySensitivitySensitivityLevel("high") - LatencySensitivitySensitivityLevelCustom = LatencySensitivitySensitivityLevel("custom") -) - -func init() { - t["LatencySensitivitySensitivityLevel"] = reflect.TypeOf((*LatencySensitivitySensitivityLevel)(nil)).Elem() -} - -type LicenseAssignmentFailedReason string - -const ( - LicenseAssignmentFailedReasonKeyEntityMismatch = LicenseAssignmentFailedReason("keyEntityMismatch") - LicenseAssignmentFailedReasonDowngradeDisallowed = LicenseAssignmentFailedReason("downgradeDisallowed") - LicenseAssignmentFailedReasonInventoryNotManageableByVirtualCenter = LicenseAssignmentFailedReason("inventoryNotManageableByVirtualCenter") - LicenseAssignmentFailedReasonHostsUnmanageableByVirtualCenterWithoutLicenseServer = LicenseAssignmentFailedReason("hostsUnmanageableByVirtualCenterWithoutLicenseServer") -) - -func init() { - t["LicenseAssignmentFailedReason"] = reflect.TypeOf((*LicenseAssignmentFailedReason)(nil)).Elem() -} - -type LicenseFeatureInfoSourceRestriction string - -const ( - LicenseFeatureInfoSourceRestrictionUnrestricted = LicenseFeatureInfoSourceRestriction("unrestricted") - LicenseFeatureInfoSourceRestrictionServed = LicenseFeatureInfoSourceRestriction("served") - LicenseFeatureInfoSourceRestrictionFile = LicenseFeatureInfoSourceRestriction("file") -) - -func init() { - t["LicenseFeatureInfoSourceRestriction"] = reflect.TypeOf((*LicenseFeatureInfoSourceRestriction)(nil)).Elem() -} - -type LicenseFeatureInfoState string - -const ( - LicenseFeatureInfoStateEnabled = LicenseFeatureInfoState("enabled") - LicenseFeatureInfoStateDisabled = LicenseFeatureInfoState("disabled") - LicenseFeatureInfoStateOptional = LicenseFeatureInfoState("optional") -) - -func init() { - t["LicenseFeatureInfoState"] = reflect.TypeOf((*LicenseFeatureInfoState)(nil)).Elem() -} - -type LicenseFeatureInfoUnit string - -const ( - LicenseFeatureInfoUnitHost = LicenseFeatureInfoUnit("host") - LicenseFeatureInfoUnitCpuCore = LicenseFeatureInfoUnit("cpuCore") - LicenseFeatureInfoUnitCpuPackage = LicenseFeatureInfoUnit("cpuPackage") - LicenseFeatureInfoUnitServer = LicenseFeatureInfoUnit("server") - LicenseFeatureInfoUnitVm = LicenseFeatureInfoUnit("vm") -) - -func init() { - t["LicenseFeatureInfoUnit"] = reflect.TypeOf((*LicenseFeatureInfoUnit)(nil)).Elem() -} - -type LicenseManagerLicenseKey string - -const ( - LicenseManagerLicenseKeyEsxFull = LicenseManagerLicenseKey("esxFull") - LicenseManagerLicenseKeyEsxVmtn = LicenseManagerLicenseKey("esxVmtn") - LicenseManagerLicenseKeyEsxExpress = LicenseManagerLicenseKey("esxExpress") - LicenseManagerLicenseKeySan = LicenseManagerLicenseKey("san") - LicenseManagerLicenseKeyIscsi = LicenseManagerLicenseKey("iscsi") - LicenseManagerLicenseKeyNas = LicenseManagerLicenseKey("nas") - LicenseManagerLicenseKeyVsmp = LicenseManagerLicenseKey("vsmp") - LicenseManagerLicenseKeyBackup = LicenseManagerLicenseKey("backup") - LicenseManagerLicenseKeyVc = LicenseManagerLicenseKey("vc") - LicenseManagerLicenseKeyVcExpress = LicenseManagerLicenseKey("vcExpress") - LicenseManagerLicenseKeyEsxHost = LicenseManagerLicenseKey("esxHost") - LicenseManagerLicenseKeyGsxHost = LicenseManagerLicenseKey("gsxHost") - LicenseManagerLicenseKeyServerHost = LicenseManagerLicenseKey("serverHost") - LicenseManagerLicenseKeyDrsPower = LicenseManagerLicenseKey("drsPower") - LicenseManagerLicenseKeyVmotion = LicenseManagerLicenseKey("vmotion") - LicenseManagerLicenseKeyDrs = LicenseManagerLicenseKey("drs") - LicenseManagerLicenseKeyDas = LicenseManagerLicenseKey("das") -) - -func init() { - t["LicenseManagerLicenseKey"] = reflect.TypeOf((*LicenseManagerLicenseKey)(nil)).Elem() -} - -type LicenseManagerState string - -const ( - LicenseManagerStateInitializing = LicenseManagerState("initializing") - LicenseManagerStateNormal = LicenseManagerState("normal") - LicenseManagerStateMarginal = LicenseManagerState("marginal") - LicenseManagerStateFault = LicenseManagerState("fault") -) - -func init() { - t["LicenseManagerState"] = reflect.TypeOf((*LicenseManagerState)(nil)).Elem() -} - -type LicenseReservationInfoState string - -const ( - LicenseReservationInfoStateNotUsed = LicenseReservationInfoState("notUsed") - LicenseReservationInfoStateNoLicense = LicenseReservationInfoState("noLicense") - LicenseReservationInfoStateUnlicensedUse = LicenseReservationInfoState("unlicensedUse") - LicenseReservationInfoStateLicensed = LicenseReservationInfoState("licensed") -) - -func init() { - t["LicenseReservationInfoState"] = reflect.TypeOf((*LicenseReservationInfoState)(nil)).Elem() -} - -type LinkDiscoveryProtocolConfigOperationType string - -const ( - LinkDiscoveryProtocolConfigOperationTypeNone = LinkDiscoveryProtocolConfigOperationType("none") - LinkDiscoveryProtocolConfigOperationTypeListen = LinkDiscoveryProtocolConfigOperationType("listen") - LinkDiscoveryProtocolConfigOperationTypeAdvertise = LinkDiscoveryProtocolConfigOperationType("advertise") - LinkDiscoveryProtocolConfigOperationTypeBoth = LinkDiscoveryProtocolConfigOperationType("both") -) - -func init() { - t["LinkDiscoveryProtocolConfigOperationType"] = reflect.TypeOf((*LinkDiscoveryProtocolConfigOperationType)(nil)).Elem() -} - -type LinkDiscoveryProtocolConfigProtocolType string - -const ( - LinkDiscoveryProtocolConfigProtocolTypeCdp = LinkDiscoveryProtocolConfigProtocolType("cdp") - LinkDiscoveryProtocolConfigProtocolTypeLldp = LinkDiscoveryProtocolConfigProtocolType("lldp") -) - -func init() { - t["LinkDiscoveryProtocolConfigProtocolType"] = reflect.TypeOf((*LinkDiscoveryProtocolConfigProtocolType)(nil)).Elem() -} - -type ManagedEntityStatus string - -const ( - ManagedEntityStatusGray = ManagedEntityStatus("gray") - ManagedEntityStatusGreen = ManagedEntityStatus("green") - ManagedEntityStatusYellow = ManagedEntityStatus("yellow") - ManagedEntityStatusRed = ManagedEntityStatus("red") -) - -func init() { - t["ManagedEntityStatus"] = reflect.TypeOf((*ManagedEntityStatus)(nil)).Elem() -} - -type MetricAlarmOperator string - -const ( - MetricAlarmOperatorIsAbove = MetricAlarmOperator("isAbove") - MetricAlarmOperatorIsBelow = MetricAlarmOperator("isBelow") -) - -func init() { - t["MetricAlarmOperator"] = reflect.TypeOf((*MetricAlarmOperator)(nil)).Elem() -} - -type MultipathState string - -const ( - MultipathStateStandby = MultipathState("standby") - MultipathStateActive = MultipathState("active") - MultipathStateDisabled = MultipathState("disabled") - MultipathStateDead = MultipathState("dead") - MultipathStateUnknown = MultipathState("unknown") -) - -func init() { - t["MultipathState"] = reflect.TypeOf((*MultipathState)(nil)).Elem() -} - -type NetBIOSConfigInfoMode string - -const ( - NetBIOSConfigInfoModeUnknown = NetBIOSConfigInfoMode("unknown") - NetBIOSConfigInfoModeEnabled = NetBIOSConfigInfoMode("enabled") - NetBIOSConfigInfoModeDisabled = NetBIOSConfigInfoMode("disabled") - NetBIOSConfigInfoModeEnabledViaDHCP = NetBIOSConfigInfoMode("enabledViaDHCP") -) - -func init() { - t["NetBIOSConfigInfoMode"] = reflect.TypeOf((*NetBIOSConfigInfoMode)(nil)).Elem() -} - -type NetIpConfigInfoIpAddressOrigin string - -const ( - NetIpConfigInfoIpAddressOriginOther = NetIpConfigInfoIpAddressOrigin("other") - NetIpConfigInfoIpAddressOriginManual = NetIpConfigInfoIpAddressOrigin("manual") - NetIpConfigInfoIpAddressOriginDhcp = NetIpConfigInfoIpAddressOrigin("dhcp") - NetIpConfigInfoIpAddressOriginLinklayer = NetIpConfigInfoIpAddressOrigin("linklayer") - NetIpConfigInfoIpAddressOriginRandom = NetIpConfigInfoIpAddressOrigin("random") -) - -func init() { - t["NetIpConfigInfoIpAddressOrigin"] = reflect.TypeOf((*NetIpConfigInfoIpAddressOrigin)(nil)).Elem() -} - -type NetIpConfigInfoIpAddressStatus string - -const ( - NetIpConfigInfoIpAddressStatusPreferred = NetIpConfigInfoIpAddressStatus("preferred") - NetIpConfigInfoIpAddressStatusDeprecated = NetIpConfigInfoIpAddressStatus("deprecated") - NetIpConfigInfoIpAddressStatusInvalid = NetIpConfigInfoIpAddressStatus("invalid") - NetIpConfigInfoIpAddressStatusInaccessible = NetIpConfigInfoIpAddressStatus("inaccessible") - NetIpConfigInfoIpAddressStatusUnknown = NetIpConfigInfoIpAddressStatus("unknown") - NetIpConfigInfoIpAddressStatusTentative = NetIpConfigInfoIpAddressStatus("tentative") - NetIpConfigInfoIpAddressStatusDuplicate = NetIpConfigInfoIpAddressStatus("duplicate") -) - -func init() { - t["NetIpConfigInfoIpAddressStatus"] = reflect.TypeOf((*NetIpConfigInfoIpAddressStatus)(nil)).Elem() -} - -type NetIpStackInfoEntryType string - -const ( - NetIpStackInfoEntryTypeOther = NetIpStackInfoEntryType("other") - NetIpStackInfoEntryTypeInvalid = NetIpStackInfoEntryType("invalid") - NetIpStackInfoEntryTypeDynamic = NetIpStackInfoEntryType("dynamic") - NetIpStackInfoEntryTypeManual = NetIpStackInfoEntryType("manual") -) - -func init() { - t["NetIpStackInfoEntryType"] = reflect.TypeOf((*NetIpStackInfoEntryType)(nil)).Elem() -} - -type NetIpStackInfoPreference string - -const ( - NetIpStackInfoPreferenceReserved = NetIpStackInfoPreference("reserved") - NetIpStackInfoPreferenceLow = NetIpStackInfoPreference("low") - NetIpStackInfoPreferenceMedium = NetIpStackInfoPreference("medium") - NetIpStackInfoPreferenceHigh = NetIpStackInfoPreference("high") -) - -func init() { - t["NetIpStackInfoPreference"] = reflect.TypeOf((*NetIpStackInfoPreference)(nil)).Elem() -} - -type NotSupportedDeviceForFTDeviceType string - -const ( - NotSupportedDeviceForFTDeviceTypeVirtualVmxnet3 = NotSupportedDeviceForFTDeviceType("virtualVmxnet3") - NotSupportedDeviceForFTDeviceTypeParaVirtualSCSIController = NotSupportedDeviceForFTDeviceType("paraVirtualSCSIController") -) - -func init() { - t["NotSupportedDeviceForFTDeviceType"] = reflect.TypeOf((*NotSupportedDeviceForFTDeviceType)(nil)).Elem() -} - -type NumVirtualCpusIncompatibleReason string - -const ( - NumVirtualCpusIncompatibleReasonRecordReplay = NumVirtualCpusIncompatibleReason("recordReplay") - NumVirtualCpusIncompatibleReasonFaultTolerance = NumVirtualCpusIncompatibleReason("faultTolerance") -) - -func init() { - t["NumVirtualCpusIncompatibleReason"] = reflect.TypeOf((*NumVirtualCpusIncompatibleReason)(nil)).Elem() -} - -type ObjectUpdateKind string - -const ( - ObjectUpdateKindModify = ObjectUpdateKind("modify") - ObjectUpdateKindEnter = ObjectUpdateKind("enter") - ObjectUpdateKindLeave = ObjectUpdateKind("leave") -) - -func init() { - t["ObjectUpdateKind"] = reflect.TypeOf((*ObjectUpdateKind)(nil)).Elem() -} - -type OvfConsumerOstNodeType string - -const ( - OvfConsumerOstNodeTypeEnvelope = OvfConsumerOstNodeType("envelope") - OvfConsumerOstNodeTypeVirtualSystem = OvfConsumerOstNodeType("virtualSystem") - OvfConsumerOstNodeTypeVirtualSystemCollection = OvfConsumerOstNodeType("virtualSystemCollection") -) - -func init() { - t["OvfConsumerOstNodeType"] = reflect.TypeOf((*OvfConsumerOstNodeType)(nil)).Elem() -} - -type OvfCreateImportSpecParamsDiskProvisioningType string - -const ( - OvfCreateImportSpecParamsDiskProvisioningTypeMonolithicSparse = OvfCreateImportSpecParamsDiskProvisioningType("monolithicSparse") - OvfCreateImportSpecParamsDiskProvisioningTypeMonolithicFlat = OvfCreateImportSpecParamsDiskProvisioningType("monolithicFlat") - OvfCreateImportSpecParamsDiskProvisioningTypeTwoGbMaxExtentSparse = OvfCreateImportSpecParamsDiskProvisioningType("twoGbMaxExtentSparse") - OvfCreateImportSpecParamsDiskProvisioningTypeTwoGbMaxExtentFlat = OvfCreateImportSpecParamsDiskProvisioningType("twoGbMaxExtentFlat") - OvfCreateImportSpecParamsDiskProvisioningTypeThin = OvfCreateImportSpecParamsDiskProvisioningType("thin") - OvfCreateImportSpecParamsDiskProvisioningTypeThick = OvfCreateImportSpecParamsDiskProvisioningType("thick") - OvfCreateImportSpecParamsDiskProvisioningTypeSeSparse = OvfCreateImportSpecParamsDiskProvisioningType("seSparse") - OvfCreateImportSpecParamsDiskProvisioningTypeEagerZeroedThick = OvfCreateImportSpecParamsDiskProvisioningType("eagerZeroedThick") - OvfCreateImportSpecParamsDiskProvisioningTypeSparse = OvfCreateImportSpecParamsDiskProvisioningType("sparse") - OvfCreateImportSpecParamsDiskProvisioningTypeFlat = OvfCreateImportSpecParamsDiskProvisioningType("flat") -) - -func init() { - t["OvfCreateImportSpecParamsDiskProvisioningType"] = reflect.TypeOf((*OvfCreateImportSpecParamsDiskProvisioningType)(nil)).Elem() -} - -type PerfFormat string - -const ( - PerfFormatNormal = PerfFormat("normal") - PerfFormatCsv = PerfFormat("csv") -) - -func init() { - t["PerfFormat"] = reflect.TypeOf((*PerfFormat)(nil)).Elem() -} - -type PerfStatsType string - -const ( - PerfStatsTypeAbsolute = PerfStatsType("absolute") - PerfStatsTypeDelta = PerfStatsType("delta") - PerfStatsTypeRate = PerfStatsType("rate") -) - -func init() { - t["PerfStatsType"] = reflect.TypeOf((*PerfStatsType)(nil)).Elem() -} - -type PerfSummaryType string - -const ( - PerfSummaryTypeAverage = PerfSummaryType("average") - PerfSummaryTypeMaximum = PerfSummaryType("maximum") - PerfSummaryTypeMinimum = PerfSummaryType("minimum") - PerfSummaryTypeLatest = PerfSummaryType("latest") - PerfSummaryTypeSummation = PerfSummaryType("summation") - PerfSummaryTypeNone = PerfSummaryType("none") -) - -func init() { - t["PerfSummaryType"] = reflect.TypeOf((*PerfSummaryType)(nil)).Elem() -} - -type PerformanceManagerUnit string - -const ( - PerformanceManagerUnitPercent = PerformanceManagerUnit("percent") - PerformanceManagerUnitKiloBytes = PerformanceManagerUnit("kiloBytes") - PerformanceManagerUnitMegaBytes = PerformanceManagerUnit("megaBytes") - PerformanceManagerUnitMegaHertz = PerformanceManagerUnit("megaHertz") - PerformanceManagerUnitNumber = PerformanceManagerUnit("number") - PerformanceManagerUnitMicrosecond = PerformanceManagerUnit("microsecond") - PerformanceManagerUnitMillisecond = PerformanceManagerUnit("millisecond") - PerformanceManagerUnitSecond = PerformanceManagerUnit("second") - PerformanceManagerUnitKiloBytesPerSecond = PerformanceManagerUnit("kiloBytesPerSecond") - PerformanceManagerUnitMegaBytesPerSecond = PerformanceManagerUnit("megaBytesPerSecond") - PerformanceManagerUnitWatt = PerformanceManagerUnit("watt") - PerformanceManagerUnitJoule = PerformanceManagerUnit("joule") - PerformanceManagerUnitTeraBytes = PerformanceManagerUnit("teraBytes") -) - -func init() { - t["PerformanceManagerUnit"] = reflect.TypeOf((*PerformanceManagerUnit)(nil)).Elem() -} - -type PhysicalNicResourcePoolSchedulerDisallowedReason string - -const ( - PhysicalNicResourcePoolSchedulerDisallowedReasonUserOptOut = PhysicalNicResourcePoolSchedulerDisallowedReason("userOptOut") - PhysicalNicResourcePoolSchedulerDisallowedReasonHardwareUnsupported = PhysicalNicResourcePoolSchedulerDisallowedReason("hardwareUnsupported") -) - -func init() { - t["PhysicalNicResourcePoolSchedulerDisallowedReason"] = reflect.TypeOf((*PhysicalNicResourcePoolSchedulerDisallowedReason)(nil)).Elem() -} - -type PhysicalNicVmDirectPathGen2SupportedMode string - -const ( - PhysicalNicVmDirectPathGen2SupportedModeUpt = PhysicalNicVmDirectPathGen2SupportedMode("upt") -) - -func init() { - t["PhysicalNicVmDirectPathGen2SupportedMode"] = reflect.TypeOf((*PhysicalNicVmDirectPathGen2SupportedMode)(nil)).Elem() -} - -type PlacementAffinityRuleRuleScope string - -const ( - PlacementAffinityRuleRuleScopeCluster = PlacementAffinityRuleRuleScope("cluster") - PlacementAffinityRuleRuleScopeHost = PlacementAffinityRuleRuleScope("host") - PlacementAffinityRuleRuleScopeStoragePod = PlacementAffinityRuleRuleScope("storagePod") - PlacementAffinityRuleRuleScopeDatastore = PlacementAffinityRuleRuleScope("datastore") -) - -func init() { - t["PlacementAffinityRuleRuleScope"] = reflect.TypeOf((*PlacementAffinityRuleRuleScope)(nil)).Elem() -} - -type PlacementAffinityRuleRuleType string - -const ( - PlacementAffinityRuleRuleTypeAffinity = PlacementAffinityRuleRuleType("affinity") - PlacementAffinityRuleRuleTypeAntiAffinity = PlacementAffinityRuleRuleType("antiAffinity") - PlacementAffinityRuleRuleTypeSoftAffinity = PlacementAffinityRuleRuleType("softAffinity") - PlacementAffinityRuleRuleTypeSoftAntiAffinity = PlacementAffinityRuleRuleType("softAntiAffinity") -) - -func init() { - t["PlacementAffinityRuleRuleType"] = reflect.TypeOf((*PlacementAffinityRuleRuleType)(nil)).Elem() -} - -type PlacementSpecPlacementType string - -const ( - PlacementSpecPlacementTypeCreate = PlacementSpecPlacementType("create") - PlacementSpecPlacementTypeReconfigure = PlacementSpecPlacementType("reconfigure") - PlacementSpecPlacementTypeRelocate = PlacementSpecPlacementType("relocate") - PlacementSpecPlacementTypeClone = PlacementSpecPlacementType("clone") -) - -func init() { - t["PlacementSpecPlacementType"] = reflect.TypeOf((*PlacementSpecPlacementType)(nil)).Elem() -} - -type PortGroupConnecteeType string - -const ( - PortGroupConnecteeTypeVirtualMachine = PortGroupConnecteeType("virtualMachine") - PortGroupConnecteeTypeSystemManagement = PortGroupConnecteeType("systemManagement") - PortGroupConnecteeTypeHost = PortGroupConnecteeType("host") - PortGroupConnecteeTypeUnknown = PortGroupConnecteeType("unknown") -) - -func init() { - t["PortGroupConnecteeType"] = reflect.TypeOf((*PortGroupConnecteeType)(nil)).Elem() -} - -type ProfileExecuteResultStatus string - -const ( - ProfileExecuteResultStatusSuccess = ProfileExecuteResultStatus("success") - ProfileExecuteResultStatusNeedInput = ProfileExecuteResultStatus("needInput") - ProfileExecuteResultStatusError = ProfileExecuteResultStatus("error") -) - -func init() { - t["ProfileExecuteResultStatus"] = reflect.TypeOf((*ProfileExecuteResultStatus)(nil)).Elem() -} - -type ProfileNumericComparator string - -const ( - ProfileNumericComparatorLessThan = ProfileNumericComparator("lessThan") - ProfileNumericComparatorLessThanEqual = ProfileNumericComparator("lessThanEqual") - ProfileNumericComparatorEqual = ProfileNumericComparator("equal") - ProfileNumericComparatorNotEqual = ProfileNumericComparator("notEqual") - ProfileNumericComparatorGreaterThanEqual = ProfileNumericComparator("greaterThanEqual") - ProfileNumericComparatorGreaterThan = ProfileNumericComparator("greaterThan") -) - -func init() { - t["ProfileNumericComparator"] = reflect.TypeOf((*ProfileNumericComparator)(nil)).Elem() -} - -type PropertyChangeOp string - -const ( - PropertyChangeOpAdd = PropertyChangeOp("add") - PropertyChangeOpRemove = PropertyChangeOp("remove") - PropertyChangeOpAssign = PropertyChangeOp("assign") - PropertyChangeOpIndirectRemove = PropertyChangeOp("indirectRemove") -) - -func init() { - t["PropertyChangeOp"] = reflect.TypeOf((*PropertyChangeOp)(nil)).Elem() -} - -type QuarantineModeFaultFaultType string - -const ( - QuarantineModeFaultFaultTypeNoCompatibleNonQuarantinedHost = QuarantineModeFaultFaultType("NoCompatibleNonQuarantinedHost") - QuarantineModeFaultFaultTypeCorrectionDisallowed = QuarantineModeFaultFaultType("CorrectionDisallowed") - QuarantineModeFaultFaultTypeCorrectionImpact = QuarantineModeFaultFaultType("CorrectionImpact") -) - -func init() { - t["QuarantineModeFaultFaultType"] = reflect.TypeOf((*QuarantineModeFaultFaultType)(nil)).Elem() -} - -type QuiesceMode string - -const ( - QuiesceModeApplication = QuiesceMode("application") - QuiesceModeFilesystem = QuiesceMode("filesystem") - QuiesceModeNone = QuiesceMode("none") -) - -func init() { - t["QuiesceMode"] = reflect.TypeOf((*QuiesceMode)(nil)).Elem() -} - -type RecommendationReasonCode string - -const ( - RecommendationReasonCodeFairnessCpuAvg = RecommendationReasonCode("fairnessCpuAvg") - RecommendationReasonCodeFairnessMemAvg = RecommendationReasonCode("fairnessMemAvg") - RecommendationReasonCodeJointAffin = RecommendationReasonCode("jointAffin") - RecommendationReasonCodeAntiAffin = RecommendationReasonCode("antiAffin") - RecommendationReasonCodeHostMaint = RecommendationReasonCode("hostMaint") - RecommendationReasonCodeEnterStandby = RecommendationReasonCode("enterStandby") - RecommendationReasonCodeReservationCpu = RecommendationReasonCode("reservationCpu") - RecommendationReasonCodeReservationMem = RecommendationReasonCode("reservationMem") - RecommendationReasonCodePowerOnVm = RecommendationReasonCode("powerOnVm") - RecommendationReasonCodePowerSaving = RecommendationReasonCode("powerSaving") - RecommendationReasonCodeIncreaseCapacity = RecommendationReasonCode("increaseCapacity") - RecommendationReasonCodeCheckResource = RecommendationReasonCode("checkResource") - RecommendationReasonCodeUnreservedCapacity = RecommendationReasonCode("unreservedCapacity") - RecommendationReasonCodeVmHostHardAffinity = RecommendationReasonCode("vmHostHardAffinity") - RecommendationReasonCodeVmHostSoftAffinity = RecommendationReasonCode("vmHostSoftAffinity") - RecommendationReasonCodeBalanceDatastoreSpaceUsage = RecommendationReasonCode("balanceDatastoreSpaceUsage") - RecommendationReasonCodeBalanceDatastoreIOLoad = RecommendationReasonCode("balanceDatastoreIOLoad") - RecommendationReasonCodeBalanceDatastoreIOPSReservation = RecommendationReasonCode("balanceDatastoreIOPSReservation") - RecommendationReasonCodeDatastoreMaint = RecommendationReasonCode("datastoreMaint") - RecommendationReasonCodeVirtualDiskJointAffin = RecommendationReasonCode("virtualDiskJointAffin") - RecommendationReasonCodeVirtualDiskAntiAffin = RecommendationReasonCode("virtualDiskAntiAffin") - RecommendationReasonCodeDatastoreSpaceOutage = RecommendationReasonCode("datastoreSpaceOutage") - RecommendationReasonCodeStoragePlacement = RecommendationReasonCode("storagePlacement") - RecommendationReasonCodeIolbDisabledInternal = RecommendationReasonCode("iolbDisabledInternal") - RecommendationReasonCodeXvmotionPlacement = RecommendationReasonCode("xvmotionPlacement") - RecommendationReasonCodeNetworkBandwidthReservation = RecommendationReasonCode("networkBandwidthReservation") - RecommendationReasonCodeHostInDegradation = RecommendationReasonCode("hostInDegradation") - RecommendationReasonCodeHostExitDegradation = RecommendationReasonCode("hostExitDegradation") - RecommendationReasonCodeMaxVmsConstraint = RecommendationReasonCode("maxVmsConstraint") - RecommendationReasonCodeFtConstraints = RecommendationReasonCode("ftConstraints") -) - -func init() { - t["RecommendationReasonCode"] = reflect.TypeOf((*RecommendationReasonCode)(nil)).Elem() -} - -type RecommendationType string - -const ( - RecommendationTypeV1 = RecommendationType("V1") -) - -func init() { - t["RecommendationType"] = reflect.TypeOf((*RecommendationType)(nil)).Elem() -} - -type ReplicationDiskConfigFaultReasonForFault string - -const ( - ReplicationDiskConfigFaultReasonForFaultDiskNotFound = ReplicationDiskConfigFaultReasonForFault("diskNotFound") - ReplicationDiskConfigFaultReasonForFaultDiskTypeNotSupported = ReplicationDiskConfigFaultReasonForFault("diskTypeNotSupported") - ReplicationDiskConfigFaultReasonForFaultInvalidDiskKey = ReplicationDiskConfigFaultReasonForFault("invalidDiskKey") - ReplicationDiskConfigFaultReasonForFaultInvalidDiskReplicationId = ReplicationDiskConfigFaultReasonForFault("invalidDiskReplicationId") - ReplicationDiskConfigFaultReasonForFaultDuplicateDiskReplicationId = ReplicationDiskConfigFaultReasonForFault("duplicateDiskReplicationId") - ReplicationDiskConfigFaultReasonForFaultInvalidPersistentFilePath = ReplicationDiskConfigFaultReasonForFault("invalidPersistentFilePath") - ReplicationDiskConfigFaultReasonForFaultReconfigureDiskReplicationIdNotAllowed = ReplicationDiskConfigFaultReasonForFault("reconfigureDiskReplicationIdNotAllowed") -) - -func init() { - t["ReplicationDiskConfigFaultReasonForFault"] = reflect.TypeOf((*ReplicationDiskConfigFaultReasonForFault)(nil)).Elem() -} - -type ReplicationVmConfigFaultReasonForFault string - -const ( - ReplicationVmConfigFaultReasonForFaultIncompatibleHwVersion = ReplicationVmConfigFaultReasonForFault("incompatibleHwVersion") - ReplicationVmConfigFaultReasonForFaultInvalidVmReplicationId = ReplicationVmConfigFaultReasonForFault("invalidVmReplicationId") - ReplicationVmConfigFaultReasonForFaultInvalidGenerationNumber = ReplicationVmConfigFaultReasonForFault("invalidGenerationNumber") - ReplicationVmConfigFaultReasonForFaultOutOfBoundsRpoValue = ReplicationVmConfigFaultReasonForFault("outOfBoundsRpoValue") - ReplicationVmConfigFaultReasonForFaultInvalidDestinationIpAddress = ReplicationVmConfigFaultReasonForFault("invalidDestinationIpAddress") - ReplicationVmConfigFaultReasonForFaultInvalidDestinationPort = ReplicationVmConfigFaultReasonForFault("invalidDestinationPort") - ReplicationVmConfigFaultReasonForFaultInvalidExtraVmOptions = ReplicationVmConfigFaultReasonForFault("invalidExtraVmOptions") - ReplicationVmConfigFaultReasonForFaultStaleGenerationNumber = ReplicationVmConfigFaultReasonForFault("staleGenerationNumber") - ReplicationVmConfigFaultReasonForFaultReconfigureVmReplicationIdNotAllowed = ReplicationVmConfigFaultReasonForFault("reconfigureVmReplicationIdNotAllowed") - ReplicationVmConfigFaultReasonForFaultCannotRetrieveVmReplicationConfiguration = ReplicationVmConfigFaultReasonForFault("cannotRetrieveVmReplicationConfiguration") - ReplicationVmConfigFaultReasonForFaultReplicationAlreadyEnabled = ReplicationVmConfigFaultReasonForFault("replicationAlreadyEnabled") - ReplicationVmConfigFaultReasonForFaultInvalidPriorConfiguration = ReplicationVmConfigFaultReasonForFault("invalidPriorConfiguration") - ReplicationVmConfigFaultReasonForFaultReplicationNotEnabled = ReplicationVmConfigFaultReasonForFault("replicationNotEnabled") - ReplicationVmConfigFaultReasonForFaultReplicationConfigurationFailed = ReplicationVmConfigFaultReasonForFault("replicationConfigurationFailed") - ReplicationVmConfigFaultReasonForFaultEncryptedVm = ReplicationVmConfigFaultReasonForFault("encryptedVm") -) - -func init() { - t["ReplicationVmConfigFaultReasonForFault"] = reflect.TypeOf((*ReplicationVmConfigFaultReasonForFault)(nil)).Elem() -} - -type ReplicationVmFaultReasonForFault string - -const ( - ReplicationVmFaultReasonForFaultNotConfigured = ReplicationVmFaultReasonForFault("notConfigured") - ReplicationVmFaultReasonForFaultPoweredOff = ReplicationVmFaultReasonForFault("poweredOff") - ReplicationVmFaultReasonForFaultSuspended = ReplicationVmFaultReasonForFault("suspended") - ReplicationVmFaultReasonForFaultPoweredOn = ReplicationVmFaultReasonForFault("poweredOn") - ReplicationVmFaultReasonForFaultOfflineReplicating = ReplicationVmFaultReasonForFault("offlineReplicating") - ReplicationVmFaultReasonForFaultInvalidState = ReplicationVmFaultReasonForFault("invalidState") - ReplicationVmFaultReasonForFaultInvalidInstanceId = ReplicationVmFaultReasonForFault("invalidInstanceId") - ReplicationVmFaultReasonForFaultCloseDiskError = ReplicationVmFaultReasonForFault("closeDiskError") -) - -func init() { - t["ReplicationVmFaultReasonForFault"] = reflect.TypeOf((*ReplicationVmFaultReasonForFault)(nil)).Elem() -} - -type ReplicationVmInProgressFaultActivity string - -const ( - ReplicationVmInProgressFaultActivityFullSync = ReplicationVmInProgressFaultActivity("fullSync") - ReplicationVmInProgressFaultActivityDelta = ReplicationVmInProgressFaultActivity("delta") -) - -func init() { - t["ReplicationVmInProgressFaultActivity"] = reflect.TypeOf((*ReplicationVmInProgressFaultActivity)(nil)).Elem() -} - -type ReplicationVmState string - -const ( - ReplicationVmStateNone = ReplicationVmState("none") - ReplicationVmStatePaused = ReplicationVmState("paused") - ReplicationVmStateSyncing = ReplicationVmState("syncing") - ReplicationVmStateIdle = ReplicationVmState("idle") - ReplicationVmStateActive = ReplicationVmState("active") - ReplicationVmStateError = ReplicationVmState("error") -) - -func init() { - t["ReplicationVmState"] = reflect.TypeOf((*ReplicationVmState)(nil)).Elem() -} - -type ScheduledHardwareUpgradeInfoHardwareUpgradePolicy string - -const ( - ScheduledHardwareUpgradeInfoHardwareUpgradePolicyNever = ScheduledHardwareUpgradeInfoHardwareUpgradePolicy("never") - ScheduledHardwareUpgradeInfoHardwareUpgradePolicyOnSoftPowerOff = ScheduledHardwareUpgradeInfoHardwareUpgradePolicy("onSoftPowerOff") - ScheduledHardwareUpgradeInfoHardwareUpgradePolicyAlways = ScheduledHardwareUpgradeInfoHardwareUpgradePolicy("always") -) - -func init() { - t["ScheduledHardwareUpgradeInfoHardwareUpgradePolicy"] = reflect.TypeOf((*ScheduledHardwareUpgradeInfoHardwareUpgradePolicy)(nil)).Elem() -} - -type ScheduledHardwareUpgradeInfoHardwareUpgradeStatus string - -const ( - ScheduledHardwareUpgradeInfoHardwareUpgradeStatusNone = ScheduledHardwareUpgradeInfoHardwareUpgradeStatus("none") - ScheduledHardwareUpgradeInfoHardwareUpgradeStatusPending = ScheduledHardwareUpgradeInfoHardwareUpgradeStatus("pending") - ScheduledHardwareUpgradeInfoHardwareUpgradeStatusSuccess = ScheduledHardwareUpgradeInfoHardwareUpgradeStatus("success") - ScheduledHardwareUpgradeInfoHardwareUpgradeStatusFailed = ScheduledHardwareUpgradeInfoHardwareUpgradeStatus("failed") -) - -func init() { - t["ScheduledHardwareUpgradeInfoHardwareUpgradeStatus"] = reflect.TypeOf((*ScheduledHardwareUpgradeInfoHardwareUpgradeStatus)(nil)).Elem() -} - -type ScsiDiskType string - -const ( - ScsiDiskTypeNative512 = ScsiDiskType("native512") - ScsiDiskTypeEmulated512 = ScsiDiskType("emulated512") - ScsiDiskTypeNative4k = ScsiDiskType("native4k") - ScsiDiskTypeUnknown = ScsiDiskType("unknown") -) - -func init() { - t["ScsiDiskType"] = reflect.TypeOf((*ScsiDiskType)(nil)).Elem() -} - -type ScsiLunDescriptorQuality string - -const ( - ScsiLunDescriptorQualityHighQuality = ScsiLunDescriptorQuality("highQuality") - ScsiLunDescriptorQualityMediumQuality = ScsiLunDescriptorQuality("mediumQuality") - ScsiLunDescriptorQualityLowQuality = ScsiLunDescriptorQuality("lowQuality") - ScsiLunDescriptorQualityUnknownQuality = ScsiLunDescriptorQuality("unknownQuality") -) - -func init() { - t["ScsiLunDescriptorQuality"] = reflect.TypeOf((*ScsiLunDescriptorQuality)(nil)).Elem() -} - -type ScsiLunState string - -const ( - ScsiLunStateUnknownState = ScsiLunState("unknownState") - ScsiLunStateOk = ScsiLunState("ok") - ScsiLunStateError = ScsiLunState("error") - ScsiLunStateOff = ScsiLunState("off") - ScsiLunStateQuiesced = ScsiLunState("quiesced") - ScsiLunStateDegraded = ScsiLunState("degraded") - ScsiLunStateLostCommunication = ScsiLunState("lostCommunication") - ScsiLunStateTimeout = ScsiLunState("timeout") -) - -func init() { - t["ScsiLunState"] = reflect.TypeOf((*ScsiLunState)(nil)).Elem() -} - -type ScsiLunType string - -const ( - ScsiLunTypeDisk = ScsiLunType("disk") - ScsiLunTypeTape = ScsiLunType("tape") - ScsiLunTypePrinter = ScsiLunType("printer") - ScsiLunTypeProcessor = ScsiLunType("processor") - ScsiLunTypeWorm = ScsiLunType("worm") - ScsiLunTypeCdrom = ScsiLunType("cdrom") - ScsiLunTypeScanner = ScsiLunType("scanner") - ScsiLunTypeOpticalDevice = ScsiLunType("opticalDevice") - ScsiLunTypeMediaChanger = ScsiLunType("mediaChanger") - ScsiLunTypeCommunications = ScsiLunType("communications") - ScsiLunTypeStorageArrayController = ScsiLunType("storageArrayController") - ScsiLunTypeEnclosure = ScsiLunType("enclosure") - ScsiLunTypeUnknown = ScsiLunType("unknown") -) - -func init() { - t["ScsiLunType"] = reflect.TypeOf((*ScsiLunType)(nil)).Elem() -} - -type ScsiLunVStorageSupportStatus string - -const ( - ScsiLunVStorageSupportStatusVStorageSupported = ScsiLunVStorageSupportStatus("vStorageSupported") - ScsiLunVStorageSupportStatusVStorageUnsupported = ScsiLunVStorageSupportStatus("vStorageUnsupported") - ScsiLunVStorageSupportStatusVStorageUnknown = ScsiLunVStorageSupportStatus("vStorageUnknown") -) - -func init() { - t["ScsiLunVStorageSupportStatus"] = reflect.TypeOf((*ScsiLunVStorageSupportStatus)(nil)).Elem() -} - -type SessionManagerHttpServiceRequestSpecMethod string - -const ( - SessionManagerHttpServiceRequestSpecMethodHttpOptions = SessionManagerHttpServiceRequestSpecMethod("httpOptions") - SessionManagerHttpServiceRequestSpecMethodHttpGet = SessionManagerHttpServiceRequestSpecMethod("httpGet") - SessionManagerHttpServiceRequestSpecMethodHttpHead = SessionManagerHttpServiceRequestSpecMethod("httpHead") - SessionManagerHttpServiceRequestSpecMethodHttpPost = SessionManagerHttpServiceRequestSpecMethod("httpPost") - SessionManagerHttpServiceRequestSpecMethodHttpPut = SessionManagerHttpServiceRequestSpecMethod("httpPut") - SessionManagerHttpServiceRequestSpecMethodHttpDelete = SessionManagerHttpServiceRequestSpecMethod("httpDelete") - SessionManagerHttpServiceRequestSpecMethodHttpTrace = SessionManagerHttpServiceRequestSpecMethod("httpTrace") - SessionManagerHttpServiceRequestSpecMethodHttpConnect = SessionManagerHttpServiceRequestSpecMethod("httpConnect") -) - -func init() { - t["SessionManagerHttpServiceRequestSpecMethod"] = reflect.TypeOf((*SessionManagerHttpServiceRequestSpecMethod)(nil)).Elem() -} - -type SharesLevel string - -const ( - SharesLevelLow = SharesLevel("low") - SharesLevelNormal = SharesLevel("normal") - SharesLevelHigh = SharesLevel("high") - SharesLevelCustom = SharesLevel("custom") -) - -func init() { - t["SharesLevel"] = reflect.TypeOf((*SharesLevel)(nil)).Elem() -} - -type SimpleCommandEncoding string - -const ( - SimpleCommandEncodingCSV = SimpleCommandEncoding("CSV") - SimpleCommandEncodingHEX = SimpleCommandEncoding("HEX") - SimpleCommandEncodingSTRING = SimpleCommandEncoding("STRING") -) - -func init() { - t["SimpleCommandEncoding"] = reflect.TypeOf((*SimpleCommandEncoding)(nil)).Elem() -} - -type SlpDiscoveryMethod string - -const ( - SlpDiscoveryMethodSlpDhcp = SlpDiscoveryMethod("slpDhcp") - SlpDiscoveryMethodSlpAutoUnicast = SlpDiscoveryMethod("slpAutoUnicast") - SlpDiscoveryMethodSlpAutoMulticast = SlpDiscoveryMethod("slpAutoMulticast") - SlpDiscoveryMethodSlpManual = SlpDiscoveryMethod("slpManual") -) - -func init() { - t["SlpDiscoveryMethod"] = reflect.TypeOf((*SlpDiscoveryMethod)(nil)).Elem() -} - -type SoftwarePackageConstraint string - -const ( - SoftwarePackageConstraintEquals = SoftwarePackageConstraint("equals") - SoftwarePackageConstraintLessThan = SoftwarePackageConstraint("lessThan") - SoftwarePackageConstraintLessThanEqual = SoftwarePackageConstraint("lessThanEqual") - SoftwarePackageConstraintGreaterThanEqual = SoftwarePackageConstraint("greaterThanEqual") - SoftwarePackageConstraintGreaterThan = SoftwarePackageConstraint("greaterThan") -) - -func init() { - t["SoftwarePackageConstraint"] = reflect.TypeOf((*SoftwarePackageConstraint)(nil)).Elem() -} - -type SoftwarePackageVibType string - -const ( - SoftwarePackageVibTypeBootbank = SoftwarePackageVibType("bootbank") - SoftwarePackageVibTypeTools = SoftwarePackageVibType("tools") - SoftwarePackageVibTypeMeta = SoftwarePackageVibType("meta") -) - -func init() { - t["SoftwarePackageVibType"] = reflect.TypeOf((*SoftwarePackageVibType)(nil)).Elem() -} - -type StateAlarmOperator string - -const ( - StateAlarmOperatorIsEqual = StateAlarmOperator("isEqual") - StateAlarmOperatorIsUnequal = StateAlarmOperator("isUnequal") -) - -func init() { - t["StateAlarmOperator"] = reflect.TypeOf((*StateAlarmOperator)(nil)).Elem() -} - -type StorageDrsPodConfigInfoBehavior string - -const ( - StorageDrsPodConfigInfoBehaviorManual = StorageDrsPodConfigInfoBehavior("manual") - StorageDrsPodConfigInfoBehaviorAutomated = StorageDrsPodConfigInfoBehavior("automated") -) - -func init() { - t["StorageDrsPodConfigInfoBehavior"] = reflect.TypeOf((*StorageDrsPodConfigInfoBehavior)(nil)).Elem() -} - -type StorageDrsSpaceLoadBalanceConfigSpaceThresholdMode string - -const ( - StorageDrsSpaceLoadBalanceConfigSpaceThresholdModeUtilization = StorageDrsSpaceLoadBalanceConfigSpaceThresholdMode("utilization") - StorageDrsSpaceLoadBalanceConfigSpaceThresholdModeFreeSpace = StorageDrsSpaceLoadBalanceConfigSpaceThresholdMode("freeSpace") -) - -func init() { - t["StorageDrsSpaceLoadBalanceConfigSpaceThresholdMode"] = reflect.TypeOf((*StorageDrsSpaceLoadBalanceConfigSpaceThresholdMode)(nil)).Elem() -} - -type StorageIORMThresholdMode string - -const ( - StorageIORMThresholdModeAutomatic = StorageIORMThresholdMode("automatic") - StorageIORMThresholdModeManual = StorageIORMThresholdMode("manual") -) - -func init() { - t["StorageIORMThresholdMode"] = reflect.TypeOf((*StorageIORMThresholdMode)(nil)).Elem() -} - -type StoragePlacementSpecPlacementType string - -const ( - StoragePlacementSpecPlacementTypeCreate = StoragePlacementSpecPlacementType("create") - StoragePlacementSpecPlacementTypeReconfigure = StoragePlacementSpecPlacementType("reconfigure") - StoragePlacementSpecPlacementTypeRelocate = StoragePlacementSpecPlacementType("relocate") - StoragePlacementSpecPlacementTypeClone = StoragePlacementSpecPlacementType("clone") -) - -func init() { - t["StoragePlacementSpecPlacementType"] = reflect.TypeOf((*StoragePlacementSpecPlacementType)(nil)).Elem() -} - -type TaskFilterSpecRecursionOption string - -const ( - TaskFilterSpecRecursionOptionSelf = TaskFilterSpecRecursionOption("self") - TaskFilterSpecRecursionOptionChildren = TaskFilterSpecRecursionOption("children") - TaskFilterSpecRecursionOptionAll = TaskFilterSpecRecursionOption("all") -) - -func init() { - t["TaskFilterSpecRecursionOption"] = reflect.TypeOf((*TaskFilterSpecRecursionOption)(nil)).Elem() -} - -type TaskFilterSpecTimeOption string - -const ( - TaskFilterSpecTimeOptionQueuedTime = TaskFilterSpecTimeOption("queuedTime") - TaskFilterSpecTimeOptionStartedTime = TaskFilterSpecTimeOption("startedTime") - TaskFilterSpecTimeOptionCompletedTime = TaskFilterSpecTimeOption("completedTime") -) - -func init() { - t["TaskFilterSpecTimeOption"] = reflect.TypeOf((*TaskFilterSpecTimeOption)(nil)).Elem() -} - -type TaskInfoState string - -const ( - TaskInfoStateQueued = TaskInfoState("queued") - TaskInfoStateRunning = TaskInfoState("running") - TaskInfoStateSuccess = TaskInfoState("success") - TaskInfoStateError = TaskInfoState("error") -) - -func init() { - t["TaskInfoState"] = reflect.TypeOf((*TaskInfoState)(nil)).Elem() -} - -type ThirdPartyLicenseAssignmentFailedReason string - -const ( - ThirdPartyLicenseAssignmentFailedReasonLicenseAssignmentFailed = ThirdPartyLicenseAssignmentFailedReason("licenseAssignmentFailed") - ThirdPartyLicenseAssignmentFailedReasonModuleNotInstalled = ThirdPartyLicenseAssignmentFailedReason("moduleNotInstalled") -) - -func init() { - t["ThirdPartyLicenseAssignmentFailedReason"] = reflect.TypeOf((*ThirdPartyLicenseAssignmentFailedReason)(nil)).Elem() -} - -type UpgradePolicy string - -const ( - UpgradePolicyManual = UpgradePolicy("manual") - UpgradePolicyUpgradeAtPowerCycle = UpgradePolicy("upgradeAtPowerCycle") -) - -func init() { - t["UpgradePolicy"] = reflect.TypeOf((*UpgradePolicy)(nil)).Elem() -} - -type VAppAutoStartAction string - -const ( - VAppAutoStartActionNone = VAppAutoStartAction("none") - VAppAutoStartActionPowerOn = VAppAutoStartAction("powerOn") - VAppAutoStartActionPowerOff = VAppAutoStartAction("powerOff") - VAppAutoStartActionGuestShutdown = VAppAutoStartAction("guestShutdown") - VAppAutoStartActionSuspend = VAppAutoStartAction("suspend") -) - -func init() { - t["VAppAutoStartAction"] = reflect.TypeOf((*VAppAutoStartAction)(nil)).Elem() -} - -type VAppCloneSpecProvisioningType string - -const ( - VAppCloneSpecProvisioningTypeSameAsSource = VAppCloneSpecProvisioningType("sameAsSource") - VAppCloneSpecProvisioningTypeThin = VAppCloneSpecProvisioningType("thin") - VAppCloneSpecProvisioningTypeThick = VAppCloneSpecProvisioningType("thick") -) - -func init() { - t["VAppCloneSpecProvisioningType"] = reflect.TypeOf((*VAppCloneSpecProvisioningType)(nil)).Elem() -} - -type VAppIPAssignmentInfoAllocationSchemes string - -const ( - VAppIPAssignmentInfoAllocationSchemesDhcp = VAppIPAssignmentInfoAllocationSchemes("dhcp") - VAppIPAssignmentInfoAllocationSchemesOvfenv = VAppIPAssignmentInfoAllocationSchemes("ovfenv") -) - -func init() { - t["VAppIPAssignmentInfoAllocationSchemes"] = reflect.TypeOf((*VAppIPAssignmentInfoAllocationSchemes)(nil)).Elem() -} - -type VAppIPAssignmentInfoIpAllocationPolicy string - -const ( - VAppIPAssignmentInfoIpAllocationPolicyDhcpPolicy = VAppIPAssignmentInfoIpAllocationPolicy("dhcpPolicy") - VAppIPAssignmentInfoIpAllocationPolicyTransientPolicy = VAppIPAssignmentInfoIpAllocationPolicy("transientPolicy") - VAppIPAssignmentInfoIpAllocationPolicyFixedPolicy = VAppIPAssignmentInfoIpAllocationPolicy("fixedPolicy") - VAppIPAssignmentInfoIpAllocationPolicyFixedAllocatedPolicy = VAppIPAssignmentInfoIpAllocationPolicy("fixedAllocatedPolicy") -) - -func init() { - t["VAppIPAssignmentInfoIpAllocationPolicy"] = reflect.TypeOf((*VAppIPAssignmentInfoIpAllocationPolicy)(nil)).Elem() -} - -type VAppIPAssignmentInfoProtocols string - -const ( - VAppIPAssignmentInfoProtocolsIPv4 = VAppIPAssignmentInfoProtocols("IPv4") - VAppIPAssignmentInfoProtocolsIPv6 = VAppIPAssignmentInfoProtocols("IPv6") -) - -func init() { - t["VAppIPAssignmentInfoProtocols"] = reflect.TypeOf((*VAppIPAssignmentInfoProtocols)(nil)).Elem() -} - -type VFlashModuleNotSupportedReason string - -const ( - VFlashModuleNotSupportedReasonCacheModeNotSupported = VFlashModuleNotSupportedReason("CacheModeNotSupported") - VFlashModuleNotSupportedReasonCacheConsistencyTypeNotSupported = VFlashModuleNotSupportedReason("CacheConsistencyTypeNotSupported") - VFlashModuleNotSupportedReasonCacheBlockSizeNotSupported = VFlashModuleNotSupportedReason("CacheBlockSizeNotSupported") - VFlashModuleNotSupportedReasonCacheReservationNotSupported = VFlashModuleNotSupportedReason("CacheReservationNotSupported") - VFlashModuleNotSupportedReasonDiskSizeNotSupported = VFlashModuleNotSupportedReason("DiskSizeNotSupported") -) - -func init() { - t["VFlashModuleNotSupportedReason"] = reflect.TypeOf((*VFlashModuleNotSupportedReason)(nil)).Elem() -} - -type VMotionCompatibilityType string - -const ( - VMotionCompatibilityTypeCpu = VMotionCompatibilityType("cpu") - VMotionCompatibilityTypeSoftware = VMotionCompatibilityType("software") -) - -func init() { - t["VMotionCompatibilityType"] = reflect.TypeOf((*VMotionCompatibilityType)(nil)).Elem() -} - -type VMwareDVSTeamingMatchStatus string - -const ( - VMwareDVSTeamingMatchStatusIphashMatch = VMwareDVSTeamingMatchStatus("iphashMatch") - VMwareDVSTeamingMatchStatusNonIphashMatch = VMwareDVSTeamingMatchStatus("nonIphashMatch") - VMwareDVSTeamingMatchStatusIphashMismatch = VMwareDVSTeamingMatchStatus("iphashMismatch") - VMwareDVSTeamingMatchStatusNonIphashMismatch = VMwareDVSTeamingMatchStatus("nonIphashMismatch") -) - -func init() { - t["VMwareDVSTeamingMatchStatus"] = reflect.TypeOf((*VMwareDVSTeamingMatchStatus)(nil)).Elem() -} - -type VMwareDVSVspanSessionEncapType string - -const ( - VMwareDVSVspanSessionEncapTypeGre = VMwareDVSVspanSessionEncapType("gre") - VMwareDVSVspanSessionEncapTypeErspan2 = VMwareDVSVspanSessionEncapType("erspan2") - VMwareDVSVspanSessionEncapTypeErspan3 = VMwareDVSVspanSessionEncapType("erspan3") -) - -func init() { - t["VMwareDVSVspanSessionEncapType"] = reflect.TypeOf((*VMwareDVSVspanSessionEncapType)(nil)).Elem() -} - -type VMwareDVSVspanSessionType string - -const ( - VMwareDVSVspanSessionTypeMixedDestMirror = VMwareDVSVspanSessionType("mixedDestMirror") - VMwareDVSVspanSessionTypeDvPortMirror = VMwareDVSVspanSessionType("dvPortMirror") - VMwareDVSVspanSessionTypeRemoteMirrorSource = VMwareDVSVspanSessionType("remoteMirrorSource") - VMwareDVSVspanSessionTypeRemoteMirrorDest = VMwareDVSVspanSessionType("remoteMirrorDest") - VMwareDVSVspanSessionTypeEncapsulatedRemoteMirrorSource = VMwareDVSVspanSessionType("encapsulatedRemoteMirrorSource") -) - -func init() { - t["VMwareDVSVspanSessionType"] = reflect.TypeOf((*VMwareDVSVspanSessionType)(nil)).Elem() -} - -type VMwareDvsLacpApiVersion string - -const ( - VMwareDvsLacpApiVersionSingleLag = VMwareDvsLacpApiVersion("singleLag") - VMwareDvsLacpApiVersionMultipleLag = VMwareDvsLacpApiVersion("multipleLag") -) - -func init() { - t["VMwareDvsLacpApiVersion"] = reflect.TypeOf((*VMwareDvsLacpApiVersion)(nil)).Elem() -} - -type VMwareDvsLacpLoadBalanceAlgorithm string - -const ( - VMwareDvsLacpLoadBalanceAlgorithmSrcMac = VMwareDvsLacpLoadBalanceAlgorithm("srcMac") - VMwareDvsLacpLoadBalanceAlgorithmDestMac = VMwareDvsLacpLoadBalanceAlgorithm("destMac") - VMwareDvsLacpLoadBalanceAlgorithmSrcDestMac = VMwareDvsLacpLoadBalanceAlgorithm("srcDestMac") - VMwareDvsLacpLoadBalanceAlgorithmDestIpVlan = VMwareDvsLacpLoadBalanceAlgorithm("destIpVlan") - VMwareDvsLacpLoadBalanceAlgorithmSrcIpVlan = VMwareDvsLacpLoadBalanceAlgorithm("srcIpVlan") - VMwareDvsLacpLoadBalanceAlgorithmSrcDestIpVlan = VMwareDvsLacpLoadBalanceAlgorithm("srcDestIpVlan") - VMwareDvsLacpLoadBalanceAlgorithmDestTcpUdpPort = VMwareDvsLacpLoadBalanceAlgorithm("destTcpUdpPort") - VMwareDvsLacpLoadBalanceAlgorithmSrcTcpUdpPort = VMwareDvsLacpLoadBalanceAlgorithm("srcTcpUdpPort") - VMwareDvsLacpLoadBalanceAlgorithmSrcDestTcpUdpPort = VMwareDvsLacpLoadBalanceAlgorithm("srcDestTcpUdpPort") - VMwareDvsLacpLoadBalanceAlgorithmDestIpTcpUdpPort = VMwareDvsLacpLoadBalanceAlgorithm("destIpTcpUdpPort") - VMwareDvsLacpLoadBalanceAlgorithmSrcIpTcpUdpPort = VMwareDvsLacpLoadBalanceAlgorithm("srcIpTcpUdpPort") - VMwareDvsLacpLoadBalanceAlgorithmSrcDestIpTcpUdpPort = VMwareDvsLacpLoadBalanceAlgorithm("srcDestIpTcpUdpPort") - VMwareDvsLacpLoadBalanceAlgorithmDestIpTcpUdpPortVlan = VMwareDvsLacpLoadBalanceAlgorithm("destIpTcpUdpPortVlan") - VMwareDvsLacpLoadBalanceAlgorithmSrcIpTcpUdpPortVlan = VMwareDvsLacpLoadBalanceAlgorithm("srcIpTcpUdpPortVlan") - VMwareDvsLacpLoadBalanceAlgorithmSrcDestIpTcpUdpPortVlan = VMwareDvsLacpLoadBalanceAlgorithm("srcDestIpTcpUdpPortVlan") - VMwareDvsLacpLoadBalanceAlgorithmDestIp = VMwareDvsLacpLoadBalanceAlgorithm("destIp") - VMwareDvsLacpLoadBalanceAlgorithmSrcIp = VMwareDvsLacpLoadBalanceAlgorithm("srcIp") - VMwareDvsLacpLoadBalanceAlgorithmSrcDestIp = VMwareDvsLacpLoadBalanceAlgorithm("srcDestIp") - VMwareDvsLacpLoadBalanceAlgorithmVlan = VMwareDvsLacpLoadBalanceAlgorithm("vlan") - VMwareDvsLacpLoadBalanceAlgorithmSrcPortId = VMwareDvsLacpLoadBalanceAlgorithm("srcPortId") -) - -func init() { - t["VMwareDvsLacpLoadBalanceAlgorithm"] = reflect.TypeOf((*VMwareDvsLacpLoadBalanceAlgorithm)(nil)).Elem() -} - -type VMwareDvsMulticastFilteringMode string - -const ( - VMwareDvsMulticastFilteringModeLegacyFiltering = VMwareDvsMulticastFilteringMode("legacyFiltering") - VMwareDvsMulticastFilteringModeSnooping = VMwareDvsMulticastFilteringMode("snooping") -) - -func init() { - t["VMwareDvsMulticastFilteringMode"] = reflect.TypeOf((*VMwareDvsMulticastFilteringMode)(nil)).Elem() -} - -type VMwareUplinkLacpMode string - -const ( - VMwareUplinkLacpModeActive = VMwareUplinkLacpMode("active") - VMwareUplinkLacpModePassive = VMwareUplinkLacpMode("passive") -) - -func init() { - t["VMwareUplinkLacpMode"] = reflect.TypeOf((*VMwareUplinkLacpMode)(nil)).Elem() -} - -type VStorageObjectConsumptionType string - -const ( - VStorageObjectConsumptionTypeDisk = VStorageObjectConsumptionType("disk") -) - -func init() { - t["VStorageObjectConsumptionType"] = reflect.TypeOf((*VStorageObjectConsumptionType)(nil)).Elem() -} - -type ValidateMigrationTestType string - -const ( - ValidateMigrationTestTypeSourceTests = ValidateMigrationTestType("sourceTests") - ValidateMigrationTestTypeCompatibilityTests = ValidateMigrationTestType("compatibilityTests") - ValidateMigrationTestTypeDiskAccessibilityTests = ValidateMigrationTestType("diskAccessibilityTests") - ValidateMigrationTestTypeResourceTests = ValidateMigrationTestType("resourceTests") -) - -func init() { - t["ValidateMigrationTestType"] = reflect.TypeOf((*ValidateMigrationTestType)(nil)).Elem() -} - -type VchaClusterMode string - -const ( - VchaClusterModeEnabled = VchaClusterMode("enabled") - VchaClusterModeDisabled = VchaClusterMode("disabled") - VchaClusterModeMaintenance = VchaClusterMode("maintenance") -) - -func init() { - t["VchaClusterMode"] = reflect.TypeOf((*VchaClusterMode)(nil)).Elem() -} - -type VchaClusterState string - -const ( - VchaClusterStateHealthy = VchaClusterState("healthy") - VchaClusterStateDegraded = VchaClusterState("degraded") - VchaClusterStateIsolated = VchaClusterState("isolated") -) - -func init() { - t["VchaClusterState"] = reflect.TypeOf((*VchaClusterState)(nil)).Elem() -} - -type VchaNodeRole string - -const ( - VchaNodeRoleActive = VchaNodeRole("active") - VchaNodeRolePassive = VchaNodeRole("passive") - VchaNodeRoleWitness = VchaNodeRole("witness") -) - -func init() { - t["VchaNodeRole"] = reflect.TypeOf((*VchaNodeRole)(nil)).Elem() -} - -type VchaNodeState string - -const ( - VchaNodeStateUp = VchaNodeState("up") - VchaNodeStateDown = VchaNodeState("down") -) - -func init() { - t["VchaNodeState"] = reflect.TypeOf((*VchaNodeState)(nil)).Elem() -} - -type VchaState string - -const ( - VchaStateConfigured = VchaState("configured") - VchaStateNotConfigured = VchaState("notConfigured") - VchaStateInvalid = VchaState("invalid") - VchaStatePrepared = VchaState("prepared") -) - -func init() { - t["VchaState"] = reflect.TypeOf((*VchaState)(nil)).Elem() -} - -type VirtualAppVAppState string - -const ( - VirtualAppVAppStateStarted = VirtualAppVAppState("started") - VirtualAppVAppStateStopped = VirtualAppVAppState("stopped") - VirtualAppVAppStateStarting = VirtualAppVAppState("starting") - VirtualAppVAppStateStopping = VirtualAppVAppState("stopping") -) - -func init() { - t["VirtualAppVAppState"] = reflect.TypeOf((*VirtualAppVAppState)(nil)).Elem() -} - -type VirtualDeviceConfigSpecFileOperation string - -const ( - VirtualDeviceConfigSpecFileOperationCreate = VirtualDeviceConfigSpecFileOperation("create") - VirtualDeviceConfigSpecFileOperationDestroy = VirtualDeviceConfigSpecFileOperation("destroy") - VirtualDeviceConfigSpecFileOperationReplace = VirtualDeviceConfigSpecFileOperation("replace") -) - -func init() { - t["VirtualDeviceConfigSpecFileOperation"] = reflect.TypeOf((*VirtualDeviceConfigSpecFileOperation)(nil)).Elem() -} - -type VirtualDeviceConfigSpecOperation string - -const ( - VirtualDeviceConfigSpecOperationAdd = VirtualDeviceConfigSpecOperation("add") - VirtualDeviceConfigSpecOperationRemove = VirtualDeviceConfigSpecOperation("remove") - VirtualDeviceConfigSpecOperationEdit = VirtualDeviceConfigSpecOperation("edit") -) - -func init() { - t["VirtualDeviceConfigSpecOperation"] = reflect.TypeOf((*VirtualDeviceConfigSpecOperation)(nil)).Elem() -} - -type VirtualDeviceConnectInfoStatus string - -const ( - VirtualDeviceConnectInfoStatusOk = VirtualDeviceConnectInfoStatus("ok") - VirtualDeviceConnectInfoStatusRecoverableError = VirtualDeviceConnectInfoStatus("recoverableError") - VirtualDeviceConnectInfoStatusUnrecoverableError = VirtualDeviceConnectInfoStatus("unrecoverableError") - VirtualDeviceConnectInfoStatusUntried = VirtualDeviceConnectInfoStatus("untried") -) - -func init() { - t["VirtualDeviceConnectInfoStatus"] = reflect.TypeOf((*VirtualDeviceConnectInfoStatus)(nil)).Elem() -} - -type VirtualDeviceFileExtension string - -const ( - VirtualDeviceFileExtensionIso = VirtualDeviceFileExtension("iso") - VirtualDeviceFileExtensionFlp = VirtualDeviceFileExtension("flp") - VirtualDeviceFileExtensionVmdk = VirtualDeviceFileExtension("vmdk") - VirtualDeviceFileExtensionDsk = VirtualDeviceFileExtension("dsk") - VirtualDeviceFileExtensionRdm = VirtualDeviceFileExtension("rdm") -) - -func init() { - t["VirtualDeviceFileExtension"] = reflect.TypeOf((*VirtualDeviceFileExtension)(nil)).Elem() -} - -type VirtualDeviceURIBackingOptionDirection string - -const ( - VirtualDeviceURIBackingOptionDirectionServer = VirtualDeviceURIBackingOptionDirection("server") - VirtualDeviceURIBackingOptionDirectionClient = VirtualDeviceURIBackingOptionDirection("client") -) - -func init() { - t["VirtualDeviceURIBackingOptionDirection"] = reflect.TypeOf((*VirtualDeviceURIBackingOptionDirection)(nil)).Elem() -} - -type VirtualDiskAdapterType string - -const ( - VirtualDiskAdapterTypeIde = VirtualDiskAdapterType("ide") - VirtualDiskAdapterTypeBusLogic = VirtualDiskAdapterType("busLogic") - VirtualDiskAdapterTypeLsiLogic = VirtualDiskAdapterType("lsiLogic") -) - -func init() { - t["VirtualDiskAdapterType"] = reflect.TypeOf((*VirtualDiskAdapterType)(nil)).Elem() -} - -type VirtualDiskCompatibilityMode string - -const ( - VirtualDiskCompatibilityModeVirtualMode = VirtualDiskCompatibilityMode("virtualMode") - VirtualDiskCompatibilityModePhysicalMode = VirtualDiskCompatibilityMode("physicalMode") -) - -func init() { - t["VirtualDiskCompatibilityMode"] = reflect.TypeOf((*VirtualDiskCompatibilityMode)(nil)).Elem() -} - -type VirtualDiskDeltaDiskFormat string - -const ( - VirtualDiskDeltaDiskFormatRedoLogFormat = VirtualDiskDeltaDiskFormat("redoLogFormat") - VirtualDiskDeltaDiskFormatNativeFormat = VirtualDiskDeltaDiskFormat("nativeFormat") - VirtualDiskDeltaDiskFormatSeSparseFormat = VirtualDiskDeltaDiskFormat("seSparseFormat") -) - -func init() { - t["VirtualDiskDeltaDiskFormat"] = reflect.TypeOf((*VirtualDiskDeltaDiskFormat)(nil)).Elem() -} - -type VirtualDiskDeltaDiskFormatVariant string - -const ( - VirtualDiskDeltaDiskFormatVariantVmfsSparseVariant = VirtualDiskDeltaDiskFormatVariant("vmfsSparseVariant") - VirtualDiskDeltaDiskFormatVariantVsanSparseVariant = VirtualDiskDeltaDiskFormatVariant("vsanSparseVariant") -) - -func init() { - t["VirtualDiskDeltaDiskFormatVariant"] = reflect.TypeOf((*VirtualDiskDeltaDiskFormatVariant)(nil)).Elem() -} - -type VirtualDiskMode string - -const ( - VirtualDiskModePersistent = VirtualDiskMode("persistent") - VirtualDiskModeNonpersistent = VirtualDiskMode("nonpersistent") - VirtualDiskModeUndoable = VirtualDiskMode("undoable") - VirtualDiskModeIndependent_persistent = VirtualDiskMode("independent_persistent") - VirtualDiskModeIndependent_nonpersistent = VirtualDiskMode("independent_nonpersistent") - VirtualDiskModeAppend = VirtualDiskMode("append") -) - -func init() { - t["VirtualDiskMode"] = reflect.TypeOf((*VirtualDiskMode)(nil)).Elem() -} - -type VirtualDiskSharing string - -const ( - VirtualDiskSharingSharingNone = VirtualDiskSharing("sharingNone") - VirtualDiskSharingSharingMultiWriter = VirtualDiskSharing("sharingMultiWriter") -) - -func init() { - t["VirtualDiskSharing"] = reflect.TypeOf((*VirtualDiskSharing)(nil)).Elem() -} - -type VirtualDiskType string - -const ( - VirtualDiskTypePreallocated = VirtualDiskType("preallocated") - VirtualDiskTypeThin = VirtualDiskType("thin") - VirtualDiskTypeSeSparse = VirtualDiskType("seSparse") - VirtualDiskTypeRdm = VirtualDiskType("rdm") - VirtualDiskTypeRdmp = VirtualDiskType("rdmp") - VirtualDiskTypeRaw = VirtualDiskType("raw") - VirtualDiskTypeDelta = VirtualDiskType("delta") - VirtualDiskTypeSparse2Gb = VirtualDiskType("sparse2Gb") - VirtualDiskTypeThick2Gb = VirtualDiskType("thick2Gb") - VirtualDiskTypeEagerZeroedThick = VirtualDiskType("eagerZeroedThick") - VirtualDiskTypeSparseMonolithic = VirtualDiskType("sparseMonolithic") - VirtualDiskTypeFlatMonolithic = VirtualDiskType("flatMonolithic") - VirtualDiskTypeThick = VirtualDiskType("thick") -) - -func init() { - t["VirtualDiskType"] = reflect.TypeOf((*VirtualDiskType)(nil)).Elem() -} - -type VirtualDiskVFlashCacheConfigInfoCacheConsistencyType string - -const ( - VirtualDiskVFlashCacheConfigInfoCacheConsistencyTypeStrong = VirtualDiskVFlashCacheConfigInfoCacheConsistencyType("strong") - VirtualDiskVFlashCacheConfigInfoCacheConsistencyTypeWeak = VirtualDiskVFlashCacheConfigInfoCacheConsistencyType("weak") -) - -func init() { - t["VirtualDiskVFlashCacheConfigInfoCacheConsistencyType"] = reflect.TypeOf((*VirtualDiskVFlashCacheConfigInfoCacheConsistencyType)(nil)).Elem() -} - -type VirtualDiskVFlashCacheConfigInfoCacheMode string - -const ( - VirtualDiskVFlashCacheConfigInfoCacheModeWrite_thru = VirtualDiskVFlashCacheConfigInfoCacheMode("write_thru") - VirtualDiskVFlashCacheConfigInfoCacheModeWrite_back = VirtualDiskVFlashCacheConfigInfoCacheMode("write_back") -) - -func init() { - t["VirtualDiskVFlashCacheConfigInfoCacheMode"] = reflect.TypeOf((*VirtualDiskVFlashCacheConfigInfoCacheMode)(nil)).Elem() -} - -type VirtualEthernetCardLegacyNetworkDeviceName string - -const ( - VirtualEthernetCardLegacyNetworkDeviceNameBridged = VirtualEthernetCardLegacyNetworkDeviceName("bridged") - VirtualEthernetCardLegacyNetworkDeviceNameNat = VirtualEthernetCardLegacyNetworkDeviceName("nat") - VirtualEthernetCardLegacyNetworkDeviceNameHostonly = VirtualEthernetCardLegacyNetworkDeviceName("hostonly") -) - -func init() { - t["VirtualEthernetCardLegacyNetworkDeviceName"] = reflect.TypeOf((*VirtualEthernetCardLegacyNetworkDeviceName)(nil)).Elem() -} - -type VirtualEthernetCardMacType string - -const ( - VirtualEthernetCardMacTypeManual = VirtualEthernetCardMacType("manual") - VirtualEthernetCardMacTypeGenerated = VirtualEthernetCardMacType("generated") - VirtualEthernetCardMacTypeAssigned = VirtualEthernetCardMacType("assigned") -) - -func init() { - t["VirtualEthernetCardMacType"] = reflect.TypeOf((*VirtualEthernetCardMacType)(nil)).Elem() -} - -type VirtualMachineAppHeartbeatStatusType string - -const ( - VirtualMachineAppHeartbeatStatusTypeAppStatusGray = VirtualMachineAppHeartbeatStatusType("appStatusGray") - VirtualMachineAppHeartbeatStatusTypeAppStatusGreen = VirtualMachineAppHeartbeatStatusType("appStatusGreen") - VirtualMachineAppHeartbeatStatusTypeAppStatusRed = VirtualMachineAppHeartbeatStatusType("appStatusRed") -) - -func init() { - t["VirtualMachineAppHeartbeatStatusType"] = reflect.TypeOf((*VirtualMachineAppHeartbeatStatusType)(nil)).Elem() -} - -type VirtualMachineBootOptionsNetworkBootProtocolType string - -const ( - VirtualMachineBootOptionsNetworkBootProtocolTypeIpv4 = VirtualMachineBootOptionsNetworkBootProtocolType("ipv4") - VirtualMachineBootOptionsNetworkBootProtocolTypeIpv6 = VirtualMachineBootOptionsNetworkBootProtocolType("ipv6") -) - -func init() { - t["VirtualMachineBootOptionsNetworkBootProtocolType"] = reflect.TypeOf((*VirtualMachineBootOptionsNetworkBootProtocolType)(nil)).Elem() -} - -type VirtualMachineConfigInfoNpivWwnType string - -const ( - VirtualMachineConfigInfoNpivWwnTypeVc = VirtualMachineConfigInfoNpivWwnType("vc") - VirtualMachineConfigInfoNpivWwnTypeHost = VirtualMachineConfigInfoNpivWwnType("host") - VirtualMachineConfigInfoNpivWwnTypeExternal = VirtualMachineConfigInfoNpivWwnType("external") -) - -func init() { - t["VirtualMachineConfigInfoNpivWwnType"] = reflect.TypeOf((*VirtualMachineConfigInfoNpivWwnType)(nil)).Elem() -} - -type VirtualMachineConfigInfoSwapPlacementType string - -const ( - VirtualMachineConfigInfoSwapPlacementTypeInherit = VirtualMachineConfigInfoSwapPlacementType("inherit") - VirtualMachineConfigInfoSwapPlacementTypeVmDirectory = VirtualMachineConfigInfoSwapPlacementType("vmDirectory") - VirtualMachineConfigInfoSwapPlacementTypeHostLocal = VirtualMachineConfigInfoSwapPlacementType("hostLocal") -) - -func init() { - t["VirtualMachineConfigInfoSwapPlacementType"] = reflect.TypeOf((*VirtualMachineConfigInfoSwapPlacementType)(nil)).Elem() -} - -type VirtualMachineConfigSpecEncryptedVMotionModes string - -const ( - VirtualMachineConfigSpecEncryptedVMotionModesDisabled = VirtualMachineConfigSpecEncryptedVMotionModes("disabled") - VirtualMachineConfigSpecEncryptedVMotionModesOpportunistic = VirtualMachineConfigSpecEncryptedVMotionModes("opportunistic") - VirtualMachineConfigSpecEncryptedVMotionModesRequired = VirtualMachineConfigSpecEncryptedVMotionModes("required") -) - -func init() { - t["VirtualMachineConfigSpecEncryptedVMotionModes"] = reflect.TypeOf((*VirtualMachineConfigSpecEncryptedVMotionModes)(nil)).Elem() -} - -type VirtualMachineConfigSpecNpivWwnOp string - -const ( - VirtualMachineConfigSpecNpivWwnOpGenerate = VirtualMachineConfigSpecNpivWwnOp("generate") - VirtualMachineConfigSpecNpivWwnOpSet = VirtualMachineConfigSpecNpivWwnOp("set") - VirtualMachineConfigSpecNpivWwnOpRemove = VirtualMachineConfigSpecNpivWwnOp("remove") - VirtualMachineConfigSpecNpivWwnOpExtend = VirtualMachineConfigSpecNpivWwnOp("extend") -) - -func init() { - t["VirtualMachineConfigSpecNpivWwnOp"] = reflect.TypeOf((*VirtualMachineConfigSpecNpivWwnOp)(nil)).Elem() -} - -type VirtualMachineConnectionState string - -const ( - VirtualMachineConnectionStateConnected = VirtualMachineConnectionState("connected") - VirtualMachineConnectionStateDisconnected = VirtualMachineConnectionState("disconnected") - VirtualMachineConnectionStateOrphaned = VirtualMachineConnectionState("orphaned") - VirtualMachineConnectionStateInaccessible = VirtualMachineConnectionState("inaccessible") - VirtualMachineConnectionStateInvalid = VirtualMachineConnectionState("invalid") -) - -func init() { - t["VirtualMachineConnectionState"] = reflect.TypeOf((*VirtualMachineConnectionState)(nil)).Elem() -} - -type VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther string - -const ( - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOtherVmNptIncompatibleHost = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther("vmNptIncompatibleHost") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOtherVmNptIncompatibleNetwork = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther("vmNptIncompatibleNetwork") -) - -func init() { - t["VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther"] = reflect.TypeOf((*VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonOther)(nil)).Elem() -} - -type VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm string - -const ( - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptIncompatibleGuest = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptIncompatibleGuest") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptIncompatibleGuestDriver = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptIncompatibleGuestDriver") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptIncompatibleAdapterType = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptIncompatibleAdapterType") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptDisabledOrDisconnectedAdapter = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptDisabledOrDisconnectedAdapter") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptIncompatibleAdapterFeatures = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptIncompatibleAdapterFeatures") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptIncompatibleBackingType = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptIncompatibleBackingType") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptInsufficientMemoryReservation = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptInsufficientMemoryReservation") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptFaultToleranceOrRecordReplayConfigured = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptFaultToleranceOrRecordReplayConfigured") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptConflictingIOChainConfigured = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptConflictingIOChainConfigured") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptMonitorBlocks = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptMonitorBlocks") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptConflictingOperationInProgress = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptConflictingOperationInProgress") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptRuntimeError = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptRuntimeError") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptOutOfIntrVector = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptOutOfIntrVector") - VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVmVmNptVMCIActive = VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm("vmNptVMCIActive") -) - -func init() { - t["VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm"] = reflect.TypeOf((*VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeStateVmDirectPathGen2InactiveReasonVm)(nil)).Elem() -} - -type VirtualMachineFaultToleranceState string - -const ( - VirtualMachineFaultToleranceStateNotConfigured = VirtualMachineFaultToleranceState("notConfigured") - VirtualMachineFaultToleranceStateDisabled = VirtualMachineFaultToleranceState("disabled") - VirtualMachineFaultToleranceStateEnabled = VirtualMachineFaultToleranceState("enabled") - VirtualMachineFaultToleranceStateNeedSecondary = VirtualMachineFaultToleranceState("needSecondary") - VirtualMachineFaultToleranceStateStarting = VirtualMachineFaultToleranceState("starting") - VirtualMachineFaultToleranceStateRunning = VirtualMachineFaultToleranceState("running") -) - -func init() { - t["VirtualMachineFaultToleranceState"] = reflect.TypeOf((*VirtualMachineFaultToleranceState)(nil)).Elem() -} - -type VirtualMachineFaultToleranceType string - -const ( - VirtualMachineFaultToleranceTypeUnset = VirtualMachineFaultToleranceType("unset") - VirtualMachineFaultToleranceTypeRecordReplay = VirtualMachineFaultToleranceType("recordReplay") - VirtualMachineFaultToleranceTypeCheckpointing = VirtualMachineFaultToleranceType("checkpointing") -) - -func init() { - t["VirtualMachineFaultToleranceType"] = reflect.TypeOf((*VirtualMachineFaultToleranceType)(nil)).Elem() -} - -type VirtualMachineFileLayoutExFileType string - -const ( - VirtualMachineFileLayoutExFileTypeConfig = VirtualMachineFileLayoutExFileType("config") - VirtualMachineFileLayoutExFileTypeExtendedConfig = VirtualMachineFileLayoutExFileType("extendedConfig") - VirtualMachineFileLayoutExFileTypeDiskDescriptor = VirtualMachineFileLayoutExFileType("diskDescriptor") - VirtualMachineFileLayoutExFileTypeDiskExtent = VirtualMachineFileLayoutExFileType("diskExtent") - VirtualMachineFileLayoutExFileTypeDigestDescriptor = VirtualMachineFileLayoutExFileType("digestDescriptor") - VirtualMachineFileLayoutExFileTypeDigestExtent = VirtualMachineFileLayoutExFileType("digestExtent") - VirtualMachineFileLayoutExFileTypeDiskReplicationState = VirtualMachineFileLayoutExFileType("diskReplicationState") - VirtualMachineFileLayoutExFileTypeLog = VirtualMachineFileLayoutExFileType("log") - VirtualMachineFileLayoutExFileTypeStat = VirtualMachineFileLayoutExFileType("stat") - VirtualMachineFileLayoutExFileTypeNamespaceData = VirtualMachineFileLayoutExFileType("namespaceData") - VirtualMachineFileLayoutExFileTypeNvram = VirtualMachineFileLayoutExFileType("nvram") - VirtualMachineFileLayoutExFileTypeSnapshotData = VirtualMachineFileLayoutExFileType("snapshotData") - VirtualMachineFileLayoutExFileTypeSnapshotMemory = VirtualMachineFileLayoutExFileType("snapshotMemory") - VirtualMachineFileLayoutExFileTypeSnapshotList = VirtualMachineFileLayoutExFileType("snapshotList") - VirtualMachineFileLayoutExFileTypeSnapshotManifestList = VirtualMachineFileLayoutExFileType("snapshotManifestList") - VirtualMachineFileLayoutExFileTypeSuspend = VirtualMachineFileLayoutExFileType("suspend") - VirtualMachineFileLayoutExFileTypeSuspendMemory = VirtualMachineFileLayoutExFileType("suspendMemory") - VirtualMachineFileLayoutExFileTypeSwap = VirtualMachineFileLayoutExFileType("swap") - VirtualMachineFileLayoutExFileTypeUwswap = VirtualMachineFileLayoutExFileType("uwswap") - VirtualMachineFileLayoutExFileTypeCore = VirtualMachineFileLayoutExFileType("core") - VirtualMachineFileLayoutExFileTypeScreenshot = VirtualMachineFileLayoutExFileType("screenshot") - VirtualMachineFileLayoutExFileTypeFtMetadata = VirtualMachineFileLayoutExFileType("ftMetadata") - VirtualMachineFileLayoutExFileTypeGuestCustomization = VirtualMachineFileLayoutExFileType("guestCustomization") -) - -func init() { - t["VirtualMachineFileLayoutExFileType"] = reflect.TypeOf((*VirtualMachineFileLayoutExFileType)(nil)).Elem() -} - -type VirtualMachineFlagInfoMonitorType string - -const ( - VirtualMachineFlagInfoMonitorTypeRelease = VirtualMachineFlagInfoMonitorType("release") - VirtualMachineFlagInfoMonitorTypeDebug = VirtualMachineFlagInfoMonitorType("debug") - VirtualMachineFlagInfoMonitorTypeStats = VirtualMachineFlagInfoMonitorType("stats") -) - -func init() { - t["VirtualMachineFlagInfoMonitorType"] = reflect.TypeOf((*VirtualMachineFlagInfoMonitorType)(nil)).Elem() -} - -type VirtualMachineFlagInfoVirtualExecUsage string - -const ( - VirtualMachineFlagInfoVirtualExecUsageHvAuto = VirtualMachineFlagInfoVirtualExecUsage("hvAuto") - VirtualMachineFlagInfoVirtualExecUsageHvOn = VirtualMachineFlagInfoVirtualExecUsage("hvOn") - VirtualMachineFlagInfoVirtualExecUsageHvOff = VirtualMachineFlagInfoVirtualExecUsage("hvOff") -) - -func init() { - t["VirtualMachineFlagInfoVirtualExecUsage"] = reflect.TypeOf((*VirtualMachineFlagInfoVirtualExecUsage)(nil)).Elem() -} - -type VirtualMachineFlagInfoVirtualMmuUsage string - -const ( - VirtualMachineFlagInfoVirtualMmuUsageAutomatic = VirtualMachineFlagInfoVirtualMmuUsage("automatic") - VirtualMachineFlagInfoVirtualMmuUsageOn = VirtualMachineFlagInfoVirtualMmuUsage("on") - VirtualMachineFlagInfoVirtualMmuUsageOff = VirtualMachineFlagInfoVirtualMmuUsage("off") -) - -func init() { - t["VirtualMachineFlagInfoVirtualMmuUsage"] = reflect.TypeOf((*VirtualMachineFlagInfoVirtualMmuUsage)(nil)).Elem() -} - -type VirtualMachineForkConfigInfoChildType string - -const ( - VirtualMachineForkConfigInfoChildTypeNone = VirtualMachineForkConfigInfoChildType("none") - VirtualMachineForkConfigInfoChildTypePersistent = VirtualMachineForkConfigInfoChildType("persistent") - VirtualMachineForkConfigInfoChildTypeNonpersistent = VirtualMachineForkConfigInfoChildType("nonpersistent") -) - -func init() { - t["VirtualMachineForkConfigInfoChildType"] = reflect.TypeOf((*VirtualMachineForkConfigInfoChildType)(nil)).Elem() -} - -type VirtualMachineGuestOsFamily string - -const ( - VirtualMachineGuestOsFamilyWindowsGuest = VirtualMachineGuestOsFamily("windowsGuest") - VirtualMachineGuestOsFamilyLinuxGuest = VirtualMachineGuestOsFamily("linuxGuest") - VirtualMachineGuestOsFamilyNetwareGuest = VirtualMachineGuestOsFamily("netwareGuest") - VirtualMachineGuestOsFamilySolarisGuest = VirtualMachineGuestOsFamily("solarisGuest") - VirtualMachineGuestOsFamilyDarwinGuestFamily = VirtualMachineGuestOsFamily("darwinGuestFamily") - VirtualMachineGuestOsFamilyOtherGuestFamily = VirtualMachineGuestOsFamily("otherGuestFamily") -) - -func init() { - t["VirtualMachineGuestOsFamily"] = reflect.TypeOf((*VirtualMachineGuestOsFamily)(nil)).Elem() -} - -type VirtualMachineGuestOsIdentifier string - -const ( - VirtualMachineGuestOsIdentifierDosGuest = VirtualMachineGuestOsIdentifier("dosGuest") - VirtualMachineGuestOsIdentifierWin31Guest = VirtualMachineGuestOsIdentifier("win31Guest") - VirtualMachineGuestOsIdentifierWin95Guest = VirtualMachineGuestOsIdentifier("win95Guest") - VirtualMachineGuestOsIdentifierWin98Guest = VirtualMachineGuestOsIdentifier("win98Guest") - VirtualMachineGuestOsIdentifierWinMeGuest = VirtualMachineGuestOsIdentifier("winMeGuest") - VirtualMachineGuestOsIdentifierWinNTGuest = VirtualMachineGuestOsIdentifier("winNTGuest") - VirtualMachineGuestOsIdentifierWin2000ProGuest = VirtualMachineGuestOsIdentifier("win2000ProGuest") - VirtualMachineGuestOsIdentifierWin2000ServGuest = VirtualMachineGuestOsIdentifier("win2000ServGuest") - VirtualMachineGuestOsIdentifierWin2000AdvServGuest = VirtualMachineGuestOsIdentifier("win2000AdvServGuest") - VirtualMachineGuestOsIdentifierWinXPHomeGuest = VirtualMachineGuestOsIdentifier("winXPHomeGuest") - VirtualMachineGuestOsIdentifierWinXPProGuest = VirtualMachineGuestOsIdentifier("winXPProGuest") - VirtualMachineGuestOsIdentifierWinXPPro64Guest = VirtualMachineGuestOsIdentifier("winXPPro64Guest") - VirtualMachineGuestOsIdentifierWinNetWebGuest = VirtualMachineGuestOsIdentifier("winNetWebGuest") - VirtualMachineGuestOsIdentifierWinNetStandardGuest = VirtualMachineGuestOsIdentifier("winNetStandardGuest") - VirtualMachineGuestOsIdentifierWinNetEnterpriseGuest = VirtualMachineGuestOsIdentifier("winNetEnterpriseGuest") - VirtualMachineGuestOsIdentifierWinNetDatacenterGuest = VirtualMachineGuestOsIdentifier("winNetDatacenterGuest") - VirtualMachineGuestOsIdentifierWinNetBusinessGuest = VirtualMachineGuestOsIdentifier("winNetBusinessGuest") - VirtualMachineGuestOsIdentifierWinNetStandard64Guest = VirtualMachineGuestOsIdentifier("winNetStandard64Guest") - VirtualMachineGuestOsIdentifierWinNetEnterprise64Guest = VirtualMachineGuestOsIdentifier("winNetEnterprise64Guest") - VirtualMachineGuestOsIdentifierWinLonghornGuest = VirtualMachineGuestOsIdentifier("winLonghornGuest") - VirtualMachineGuestOsIdentifierWinLonghorn64Guest = VirtualMachineGuestOsIdentifier("winLonghorn64Guest") - VirtualMachineGuestOsIdentifierWinNetDatacenter64Guest = VirtualMachineGuestOsIdentifier("winNetDatacenter64Guest") - VirtualMachineGuestOsIdentifierWinVistaGuest = VirtualMachineGuestOsIdentifier("winVistaGuest") - VirtualMachineGuestOsIdentifierWinVista64Guest = VirtualMachineGuestOsIdentifier("winVista64Guest") - VirtualMachineGuestOsIdentifierWindows7Guest = VirtualMachineGuestOsIdentifier("windows7Guest") - VirtualMachineGuestOsIdentifierWindows7_64Guest = VirtualMachineGuestOsIdentifier("windows7_64Guest") - VirtualMachineGuestOsIdentifierWindows7Server64Guest = VirtualMachineGuestOsIdentifier("windows7Server64Guest") - VirtualMachineGuestOsIdentifierWindows8Guest = VirtualMachineGuestOsIdentifier("windows8Guest") - VirtualMachineGuestOsIdentifierWindows8_64Guest = VirtualMachineGuestOsIdentifier("windows8_64Guest") - VirtualMachineGuestOsIdentifierWindows8Server64Guest = VirtualMachineGuestOsIdentifier("windows8Server64Guest") - VirtualMachineGuestOsIdentifierWindows9Guest = VirtualMachineGuestOsIdentifier("windows9Guest") - VirtualMachineGuestOsIdentifierWindows9_64Guest = VirtualMachineGuestOsIdentifier("windows9_64Guest") - VirtualMachineGuestOsIdentifierWindows9Server64Guest = VirtualMachineGuestOsIdentifier("windows9Server64Guest") - VirtualMachineGuestOsIdentifierWindowsHyperVGuest = VirtualMachineGuestOsIdentifier("windowsHyperVGuest") - VirtualMachineGuestOsIdentifierFreebsdGuest = VirtualMachineGuestOsIdentifier("freebsdGuest") - VirtualMachineGuestOsIdentifierFreebsd64Guest = VirtualMachineGuestOsIdentifier("freebsd64Guest") - VirtualMachineGuestOsIdentifierRedhatGuest = VirtualMachineGuestOsIdentifier("redhatGuest") - VirtualMachineGuestOsIdentifierRhel2Guest = VirtualMachineGuestOsIdentifier("rhel2Guest") - VirtualMachineGuestOsIdentifierRhel3Guest = VirtualMachineGuestOsIdentifier("rhel3Guest") - VirtualMachineGuestOsIdentifierRhel3_64Guest = VirtualMachineGuestOsIdentifier("rhel3_64Guest") - VirtualMachineGuestOsIdentifierRhel4Guest = VirtualMachineGuestOsIdentifier("rhel4Guest") - VirtualMachineGuestOsIdentifierRhel4_64Guest = VirtualMachineGuestOsIdentifier("rhel4_64Guest") - VirtualMachineGuestOsIdentifierRhel5Guest = VirtualMachineGuestOsIdentifier("rhel5Guest") - VirtualMachineGuestOsIdentifierRhel5_64Guest = VirtualMachineGuestOsIdentifier("rhel5_64Guest") - VirtualMachineGuestOsIdentifierRhel6Guest = VirtualMachineGuestOsIdentifier("rhel6Guest") - VirtualMachineGuestOsIdentifierRhel6_64Guest = VirtualMachineGuestOsIdentifier("rhel6_64Guest") - VirtualMachineGuestOsIdentifierRhel7Guest = VirtualMachineGuestOsIdentifier("rhel7Guest") - VirtualMachineGuestOsIdentifierRhel7_64Guest = VirtualMachineGuestOsIdentifier("rhel7_64Guest") - VirtualMachineGuestOsIdentifierCentosGuest = VirtualMachineGuestOsIdentifier("centosGuest") - VirtualMachineGuestOsIdentifierCentos64Guest = VirtualMachineGuestOsIdentifier("centos64Guest") - VirtualMachineGuestOsIdentifierCentos6Guest = VirtualMachineGuestOsIdentifier("centos6Guest") - VirtualMachineGuestOsIdentifierCentos6_64Guest = VirtualMachineGuestOsIdentifier("centos6_64Guest") - VirtualMachineGuestOsIdentifierCentos7Guest = VirtualMachineGuestOsIdentifier("centos7Guest") - VirtualMachineGuestOsIdentifierCentos7_64Guest = VirtualMachineGuestOsIdentifier("centos7_64Guest") - VirtualMachineGuestOsIdentifierOracleLinuxGuest = VirtualMachineGuestOsIdentifier("oracleLinuxGuest") - VirtualMachineGuestOsIdentifierOracleLinux64Guest = VirtualMachineGuestOsIdentifier("oracleLinux64Guest") - VirtualMachineGuestOsIdentifierOracleLinux6Guest = VirtualMachineGuestOsIdentifier("oracleLinux6Guest") - VirtualMachineGuestOsIdentifierOracleLinux6_64Guest = VirtualMachineGuestOsIdentifier("oracleLinux6_64Guest") - VirtualMachineGuestOsIdentifierOracleLinux7Guest = VirtualMachineGuestOsIdentifier("oracleLinux7Guest") - VirtualMachineGuestOsIdentifierOracleLinux7_64Guest = VirtualMachineGuestOsIdentifier("oracleLinux7_64Guest") - VirtualMachineGuestOsIdentifierSuseGuest = VirtualMachineGuestOsIdentifier("suseGuest") - VirtualMachineGuestOsIdentifierSuse64Guest = VirtualMachineGuestOsIdentifier("suse64Guest") - VirtualMachineGuestOsIdentifierSlesGuest = VirtualMachineGuestOsIdentifier("slesGuest") - VirtualMachineGuestOsIdentifierSles64Guest = VirtualMachineGuestOsIdentifier("sles64Guest") - VirtualMachineGuestOsIdentifierSles10Guest = VirtualMachineGuestOsIdentifier("sles10Guest") - VirtualMachineGuestOsIdentifierSles10_64Guest = VirtualMachineGuestOsIdentifier("sles10_64Guest") - VirtualMachineGuestOsIdentifierSles11Guest = VirtualMachineGuestOsIdentifier("sles11Guest") - VirtualMachineGuestOsIdentifierSles11_64Guest = VirtualMachineGuestOsIdentifier("sles11_64Guest") - VirtualMachineGuestOsIdentifierSles12Guest = VirtualMachineGuestOsIdentifier("sles12Guest") - VirtualMachineGuestOsIdentifierSles12_64Guest = VirtualMachineGuestOsIdentifier("sles12_64Guest") - VirtualMachineGuestOsIdentifierNld9Guest = VirtualMachineGuestOsIdentifier("nld9Guest") - VirtualMachineGuestOsIdentifierOesGuest = VirtualMachineGuestOsIdentifier("oesGuest") - VirtualMachineGuestOsIdentifierSjdsGuest = VirtualMachineGuestOsIdentifier("sjdsGuest") - VirtualMachineGuestOsIdentifierMandrakeGuest = VirtualMachineGuestOsIdentifier("mandrakeGuest") - VirtualMachineGuestOsIdentifierMandrivaGuest = VirtualMachineGuestOsIdentifier("mandrivaGuest") - VirtualMachineGuestOsIdentifierMandriva64Guest = VirtualMachineGuestOsIdentifier("mandriva64Guest") - VirtualMachineGuestOsIdentifierTurboLinuxGuest = VirtualMachineGuestOsIdentifier("turboLinuxGuest") - VirtualMachineGuestOsIdentifierTurboLinux64Guest = VirtualMachineGuestOsIdentifier("turboLinux64Guest") - VirtualMachineGuestOsIdentifierUbuntuGuest = VirtualMachineGuestOsIdentifier("ubuntuGuest") - VirtualMachineGuestOsIdentifierUbuntu64Guest = VirtualMachineGuestOsIdentifier("ubuntu64Guest") - VirtualMachineGuestOsIdentifierDebian4Guest = VirtualMachineGuestOsIdentifier("debian4Guest") - VirtualMachineGuestOsIdentifierDebian4_64Guest = VirtualMachineGuestOsIdentifier("debian4_64Guest") - VirtualMachineGuestOsIdentifierDebian5Guest = VirtualMachineGuestOsIdentifier("debian5Guest") - VirtualMachineGuestOsIdentifierDebian5_64Guest = VirtualMachineGuestOsIdentifier("debian5_64Guest") - VirtualMachineGuestOsIdentifierDebian6Guest = VirtualMachineGuestOsIdentifier("debian6Guest") - VirtualMachineGuestOsIdentifierDebian6_64Guest = VirtualMachineGuestOsIdentifier("debian6_64Guest") - VirtualMachineGuestOsIdentifierDebian7Guest = VirtualMachineGuestOsIdentifier("debian7Guest") - VirtualMachineGuestOsIdentifierDebian7_64Guest = VirtualMachineGuestOsIdentifier("debian7_64Guest") - VirtualMachineGuestOsIdentifierDebian8Guest = VirtualMachineGuestOsIdentifier("debian8Guest") - VirtualMachineGuestOsIdentifierDebian8_64Guest = VirtualMachineGuestOsIdentifier("debian8_64Guest") - VirtualMachineGuestOsIdentifierDebian9Guest = VirtualMachineGuestOsIdentifier("debian9Guest") - VirtualMachineGuestOsIdentifierDebian9_64Guest = VirtualMachineGuestOsIdentifier("debian9_64Guest") - VirtualMachineGuestOsIdentifierDebian10Guest = VirtualMachineGuestOsIdentifier("debian10Guest") - VirtualMachineGuestOsIdentifierDebian10_64Guest = VirtualMachineGuestOsIdentifier("debian10_64Guest") - VirtualMachineGuestOsIdentifierAsianux3Guest = VirtualMachineGuestOsIdentifier("asianux3Guest") - VirtualMachineGuestOsIdentifierAsianux3_64Guest = VirtualMachineGuestOsIdentifier("asianux3_64Guest") - VirtualMachineGuestOsIdentifierAsianux4Guest = VirtualMachineGuestOsIdentifier("asianux4Guest") - VirtualMachineGuestOsIdentifierAsianux4_64Guest = VirtualMachineGuestOsIdentifier("asianux4_64Guest") - VirtualMachineGuestOsIdentifierAsianux5_64Guest = VirtualMachineGuestOsIdentifier("asianux5_64Guest") - VirtualMachineGuestOsIdentifierAsianux7_64Guest = VirtualMachineGuestOsIdentifier("asianux7_64Guest") - VirtualMachineGuestOsIdentifierOpensuseGuest = VirtualMachineGuestOsIdentifier("opensuseGuest") - VirtualMachineGuestOsIdentifierOpensuse64Guest = VirtualMachineGuestOsIdentifier("opensuse64Guest") - VirtualMachineGuestOsIdentifierFedoraGuest = VirtualMachineGuestOsIdentifier("fedoraGuest") - VirtualMachineGuestOsIdentifierFedora64Guest = VirtualMachineGuestOsIdentifier("fedora64Guest") - VirtualMachineGuestOsIdentifierCoreos64Guest = VirtualMachineGuestOsIdentifier("coreos64Guest") - VirtualMachineGuestOsIdentifierVmwarePhoton64Guest = VirtualMachineGuestOsIdentifier("vmwarePhoton64Guest") - VirtualMachineGuestOsIdentifierOther24xLinuxGuest = VirtualMachineGuestOsIdentifier("other24xLinuxGuest") - VirtualMachineGuestOsIdentifierOther26xLinuxGuest = VirtualMachineGuestOsIdentifier("other26xLinuxGuest") - VirtualMachineGuestOsIdentifierOtherLinuxGuest = VirtualMachineGuestOsIdentifier("otherLinuxGuest") - VirtualMachineGuestOsIdentifierOther3xLinuxGuest = VirtualMachineGuestOsIdentifier("other3xLinuxGuest") - VirtualMachineGuestOsIdentifierGenericLinuxGuest = VirtualMachineGuestOsIdentifier("genericLinuxGuest") - VirtualMachineGuestOsIdentifierOther24xLinux64Guest = VirtualMachineGuestOsIdentifier("other24xLinux64Guest") - VirtualMachineGuestOsIdentifierOther26xLinux64Guest = VirtualMachineGuestOsIdentifier("other26xLinux64Guest") - VirtualMachineGuestOsIdentifierOther3xLinux64Guest = VirtualMachineGuestOsIdentifier("other3xLinux64Guest") - VirtualMachineGuestOsIdentifierOtherLinux64Guest = VirtualMachineGuestOsIdentifier("otherLinux64Guest") - VirtualMachineGuestOsIdentifierSolaris6Guest = VirtualMachineGuestOsIdentifier("solaris6Guest") - VirtualMachineGuestOsIdentifierSolaris7Guest = VirtualMachineGuestOsIdentifier("solaris7Guest") - VirtualMachineGuestOsIdentifierSolaris8Guest = VirtualMachineGuestOsIdentifier("solaris8Guest") - VirtualMachineGuestOsIdentifierSolaris9Guest = VirtualMachineGuestOsIdentifier("solaris9Guest") - VirtualMachineGuestOsIdentifierSolaris10Guest = VirtualMachineGuestOsIdentifier("solaris10Guest") - VirtualMachineGuestOsIdentifierSolaris10_64Guest = VirtualMachineGuestOsIdentifier("solaris10_64Guest") - VirtualMachineGuestOsIdentifierSolaris11_64Guest = VirtualMachineGuestOsIdentifier("solaris11_64Guest") - VirtualMachineGuestOsIdentifierOs2Guest = VirtualMachineGuestOsIdentifier("os2Guest") - VirtualMachineGuestOsIdentifierEComStationGuest = VirtualMachineGuestOsIdentifier("eComStationGuest") - VirtualMachineGuestOsIdentifierEComStation2Guest = VirtualMachineGuestOsIdentifier("eComStation2Guest") - VirtualMachineGuestOsIdentifierNetware4Guest = VirtualMachineGuestOsIdentifier("netware4Guest") - VirtualMachineGuestOsIdentifierNetware5Guest = VirtualMachineGuestOsIdentifier("netware5Guest") - VirtualMachineGuestOsIdentifierNetware6Guest = VirtualMachineGuestOsIdentifier("netware6Guest") - VirtualMachineGuestOsIdentifierOpenServer5Guest = VirtualMachineGuestOsIdentifier("openServer5Guest") - VirtualMachineGuestOsIdentifierOpenServer6Guest = VirtualMachineGuestOsIdentifier("openServer6Guest") - VirtualMachineGuestOsIdentifierUnixWare7Guest = VirtualMachineGuestOsIdentifier("unixWare7Guest") - VirtualMachineGuestOsIdentifierDarwinGuest = VirtualMachineGuestOsIdentifier("darwinGuest") - VirtualMachineGuestOsIdentifierDarwin64Guest = VirtualMachineGuestOsIdentifier("darwin64Guest") - VirtualMachineGuestOsIdentifierDarwin10Guest = VirtualMachineGuestOsIdentifier("darwin10Guest") - VirtualMachineGuestOsIdentifierDarwin10_64Guest = VirtualMachineGuestOsIdentifier("darwin10_64Guest") - VirtualMachineGuestOsIdentifierDarwin11Guest = VirtualMachineGuestOsIdentifier("darwin11Guest") - VirtualMachineGuestOsIdentifierDarwin11_64Guest = VirtualMachineGuestOsIdentifier("darwin11_64Guest") - VirtualMachineGuestOsIdentifierDarwin12_64Guest = VirtualMachineGuestOsIdentifier("darwin12_64Guest") - VirtualMachineGuestOsIdentifierDarwin13_64Guest = VirtualMachineGuestOsIdentifier("darwin13_64Guest") - VirtualMachineGuestOsIdentifierDarwin14_64Guest = VirtualMachineGuestOsIdentifier("darwin14_64Guest") - VirtualMachineGuestOsIdentifierDarwin15_64Guest = VirtualMachineGuestOsIdentifier("darwin15_64Guest") - VirtualMachineGuestOsIdentifierDarwin16_64Guest = VirtualMachineGuestOsIdentifier("darwin16_64Guest") - VirtualMachineGuestOsIdentifierVmkernelGuest = VirtualMachineGuestOsIdentifier("vmkernelGuest") - VirtualMachineGuestOsIdentifierVmkernel5Guest = VirtualMachineGuestOsIdentifier("vmkernel5Guest") - VirtualMachineGuestOsIdentifierVmkernel6Guest = VirtualMachineGuestOsIdentifier("vmkernel6Guest") - VirtualMachineGuestOsIdentifierVmkernel65Guest = VirtualMachineGuestOsIdentifier("vmkernel65Guest") - VirtualMachineGuestOsIdentifierOtherGuest = VirtualMachineGuestOsIdentifier("otherGuest") - VirtualMachineGuestOsIdentifierOtherGuest64 = VirtualMachineGuestOsIdentifier("otherGuest64") -) - -func init() { - t["VirtualMachineGuestOsIdentifier"] = reflect.TypeOf((*VirtualMachineGuestOsIdentifier)(nil)).Elem() -} - -type VirtualMachineGuestState string - -const ( - VirtualMachineGuestStateRunning = VirtualMachineGuestState("running") - VirtualMachineGuestStateShuttingDown = VirtualMachineGuestState("shuttingDown") - VirtualMachineGuestStateResetting = VirtualMachineGuestState("resetting") - VirtualMachineGuestStateStandby = VirtualMachineGuestState("standby") - VirtualMachineGuestStateNotRunning = VirtualMachineGuestState("notRunning") - VirtualMachineGuestStateUnknown = VirtualMachineGuestState("unknown") -) - -func init() { - t["VirtualMachineGuestState"] = reflect.TypeOf((*VirtualMachineGuestState)(nil)).Elem() -} - -type VirtualMachineHtSharing string - -const ( - VirtualMachineHtSharingAny = VirtualMachineHtSharing("any") - VirtualMachineHtSharingNone = VirtualMachineHtSharing("none") - VirtualMachineHtSharingInternal = VirtualMachineHtSharing("internal") -) - -func init() { - t["VirtualMachineHtSharing"] = reflect.TypeOf((*VirtualMachineHtSharing)(nil)).Elem() -} - -type VirtualMachineMemoryAllocationPolicy string - -const ( - VirtualMachineMemoryAllocationPolicySwapNone = VirtualMachineMemoryAllocationPolicy("swapNone") - VirtualMachineMemoryAllocationPolicySwapSome = VirtualMachineMemoryAllocationPolicy("swapSome") - VirtualMachineMemoryAllocationPolicySwapMost = VirtualMachineMemoryAllocationPolicy("swapMost") -) - -func init() { - t["VirtualMachineMemoryAllocationPolicy"] = reflect.TypeOf((*VirtualMachineMemoryAllocationPolicy)(nil)).Elem() -} - -type VirtualMachineMetadataManagerVmMetadataOp string - -const ( - VirtualMachineMetadataManagerVmMetadataOpUpdate = VirtualMachineMetadataManagerVmMetadataOp("Update") - VirtualMachineMetadataManagerVmMetadataOpRemove = VirtualMachineMetadataManagerVmMetadataOp("Remove") -) - -func init() { - t["VirtualMachineMetadataManagerVmMetadataOp"] = reflect.TypeOf((*VirtualMachineMetadataManagerVmMetadataOp)(nil)).Elem() -} - -type VirtualMachineMetadataManagerVmMetadataOwnerOwner string - -const ( - VirtualMachineMetadataManagerVmMetadataOwnerOwnerComVmwareVsphereHA = VirtualMachineMetadataManagerVmMetadataOwnerOwner("ComVmwareVsphereHA") -) - -func init() { - t["VirtualMachineMetadataManagerVmMetadataOwnerOwner"] = reflect.TypeOf((*VirtualMachineMetadataManagerVmMetadataOwnerOwner)(nil)).Elem() -} - -type VirtualMachineMovePriority string - -const ( - VirtualMachineMovePriorityLowPriority = VirtualMachineMovePriority("lowPriority") - VirtualMachineMovePriorityHighPriority = VirtualMachineMovePriority("highPriority") - VirtualMachineMovePriorityDefaultPriority = VirtualMachineMovePriority("defaultPriority") -) - -func init() { - t["VirtualMachineMovePriority"] = reflect.TypeOf((*VirtualMachineMovePriority)(nil)).Elem() -} - -type VirtualMachineNeedSecondaryReason string - -const ( - VirtualMachineNeedSecondaryReasonInitializing = VirtualMachineNeedSecondaryReason("initializing") - VirtualMachineNeedSecondaryReasonDivergence = VirtualMachineNeedSecondaryReason("divergence") - VirtualMachineNeedSecondaryReasonLostConnection = VirtualMachineNeedSecondaryReason("lostConnection") - VirtualMachineNeedSecondaryReasonPartialHardwareFailure = VirtualMachineNeedSecondaryReason("partialHardwareFailure") - VirtualMachineNeedSecondaryReasonUserAction = VirtualMachineNeedSecondaryReason("userAction") - VirtualMachineNeedSecondaryReasonCheckpointError = VirtualMachineNeedSecondaryReason("checkpointError") - VirtualMachineNeedSecondaryReasonOther = VirtualMachineNeedSecondaryReason("other") -) - -func init() { - t["VirtualMachineNeedSecondaryReason"] = reflect.TypeOf((*VirtualMachineNeedSecondaryReason)(nil)).Elem() -} - -type VirtualMachinePowerOffBehavior string - -const ( - VirtualMachinePowerOffBehaviorPowerOff = VirtualMachinePowerOffBehavior("powerOff") - VirtualMachinePowerOffBehaviorRevert = VirtualMachinePowerOffBehavior("revert") - VirtualMachinePowerOffBehaviorPrompt = VirtualMachinePowerOffBehavior("prompt") - VirtualMachinePowerOffBehaviorTake = VirtualMachinePowerOffBehavior("take") -) - -func init() { - t["VirtualMachinePowerOffBehavior"] = reflect.TypeOf((*VirtualMachinePowerOffBehavior)(nil)).Elem() -} - -type VirtualMachinePowerOpType string - -const ( - VirtualMachinePowerOpTypeSoft = VirtualMachinePowerOpType("soft") - VirtualMachinePowerOpTypeHard = VirtualMachinePowerOpType("hard") - VirtualMachinePowerOpTypePreset = VirtualMachinePowerOpType("preset") -) - -func init() { - t["VirtualMachinePowerOpType"] = reflect.TypeOf((*VirtualMachinePowerOpType)(nil)).Elem() -} - -type VirtualMachinePowerState string - -const ( - VirtualMachinePowerStatePoweredOff = VirtualMachinePowerState("poweredOff") - VirtualMachinePowerStatePoweredOn = VirtualMachinePowerState("poweredOn") - VirtualMachinePowerStateSuspended = VirtualMachinePowerState("suspended") -) - -func init() { - t["VirtualMachinePowerState"] = reflect.TypeOf((*VirtualMachinePowerState)(nil)).Elem() -} - -type VirtualMachineRecordReplayState string - -const ( - VirtualMachineRecordReplayStateRecording = VirtualMachineRecordReplayState("recording") - VirtualMachineRecordReplayStateReplaying = VirtualMachineRecordReplayState("replaying") - VirtualMachineRecordReplayStateInactive = VirtualMachineRecordReplayState("inactive") -) - -func init() { - t["VirtualMachineRecordReplayState"] = reflect.TypeOf((*VirtualMachineRecordReplayState)(nil)).Elem() -} - -type VirtualMachineRelocateDiskMoveOptions string - -const ( - VirtualMachineRelocateDiskMoveOptionsMoveAllDiskBackingsAndAllowSharing = VirtualMachineRelocateDiskMoveOptions("moveAllDiskBackingsAndAllowSharing") - VirtualMachineRelocateDiskMoveOptionsMoveAllDiskBackingsAndDisallowSharing = VirtualMachineRelocateDiskMoveOptions("moveAllDiskBackingsAndDisallowSharing") - VirtualMachineRelocateDiskMoveOptionsMoveChildMostDiskBacking = VirtualMachineRelocateDiskMoveOptions("moveChildMostDiskBacking") - VirtualMachineRelocateDiskMoveOptionsCreateNewChildDiskBacking = VirtualMachineRelocateDiskMoveOptions("createNewChildDiskBacking") - VirtualMachineRelocateDiskMoveOptionsMoveAllDiskBackingsAndConsolidate = VirtualMachineRelocateDiskMoveOptions("moveAllDiskBackingsAndConsolidate") -) - -func init() { - t["VirtualMachineRelocateDiskMoveOptions"] = reflect.TypeOf((*VirtualMachineRelocateDiskMoveOptions)(nil)).Elem() -} - -type VirtualMachineRelocateTransformation string - -const ( - VirtualMachineRelocateTransformationFlat = VirtualMachineRelocateTransformation("flat") - VirtualMachineRelocateTransformationSparse = VirtualMachineRelocateTransformation("sparse") -) - -func init() { - t["VirtualMachineRelocateTransformation"] = reflect.TypeOf((*VirtualMachineRelocateTransformation)(nil)).Elem() -} - -type VirtualMachineScsiPassthroughType string - -const ( - VirtualMachineScsiPassthroughTypeDisk = VirtualMachineScsiPassthroughType("disk") - VirtualMachineScsiPassthroughTypeTape = VirtualMachineScsiPassthroughType("tape") - VirtualMachineScsiPassthroughTypePrinter = VirtualMachineScsiPassthroughType("printer") - VirtualMachineScsiPassthroughTypeProcessor = VirtualMachineScsiPassthroughType("processor") - VirtualMachineScsiPassthroughTypeWorm = VirtualMachineScsiPassthroughType("worm") - VirtualMachineScsiPassthroughTypeCdrom = VirtualMachineScsiPassthroughType("cdrom") - VirtualMachineScsiPassthroughTypeScanner = VirtualMachineScsiPassthroughType("scanner") - VirtualMachineScsiPassthroughTypeOptical = VirtualMachineScsiPassthroughType("optical") - VirtualMachineScsiPassthroughTypeMedia = VirtualMachineScsiPassthroughType("media") - VirtualMachineScsiPassthroughTypeCom = VirtualMachineScsiPassthroughType("com") - VirtualMachineScsiPassthroughTypeRaid = VirtualMachineScsiPassthroughType("raid") - VirtualMachineScsiPassthroughTypeUnknown = VirtualMachineScsiPassthroughType("unknown") -) - -func init() { - t["VirtualMachineScsiPassthroughType"] = reflect.TypeOf((*VirtualMachineScsiPassthroughType)(nil)).Elem() -} - -type VirtualMachineStandbyActionType string - -const ( - VirtualMachineStandbyActionTypeCheckpoint = VirtualMachineStandbyActionType("checkpoint") - VirtualMachineStandbyActionTypePowerOnSuspend = VirtualMachineStandbyActionType("powerOnSuspend") -) - -func init() { - t["VirtualMachineStandbyActionType"] = reflect.TypeOf((*VirtualMachineStandbyActionType)(nil)).Elem() -} - -type VirtualMachineTargetInfoConfigurationTag string - -const ( - VirtualMachineTargetInfoConfigurationTagCompliant = VirtualMachineTargetInfoConfigurationTag("compliant") - VirtualMachineTargetInfoConfigurationTagClusterWide = VirtualMachineTargetInfoConfigurationTag("clusterWide") -) - -func init() { - t["VirtualMachineTargetInfoConfigurationTag"] = reflect.TypeOf((*VirtualMachineTargetInfoConfigurationTag)(nil)).Elem() -} - -type VirtualMachineTicketType string - -const ( - VirtualMachineTicketTypeMks = VirtualMachineTicketType("mks") - VirtualMachineTicketTypeDevice = VirtualMachineTicketType("device") - VirtualMachineTicketTypeGuestControl = VirtualMachineTicketType("guestControl") - VirtualMachineTicketTypeWebmks = VirtualMachineTicketType("webmks") -) - -func init() { - t["VirtualMachineTicketType"] = reflect.TypeOf((*VirtualMachineTicketType)(nil)).Elem() -} - -type VirtualMachineToolsInstallType string - -const ( - VirtualMachineToolsInstallTypeGuestToolsTypeUnknown = VirtualMachineToolsInstallType("guestToolsTypeUnknown") - VirtualMachineToolsInstallTypeGuestToolsTypeMSI = VirtualMachineToolsInstallType("guestToolsTypeMSI") - VirtualMachineToolsInstallTypeGuestToolsTypeTar = VirtualMachineToolsInstallType("guestToolsTypeTar") - VirtualMachineToolsInstallTypeGuestToolsTypeOSP = VirtualMachineToolsInstallType("guestToolsTypeOSP") - VirtualMachineToolsInstallTypeGuestToolsTypeOpenVMTools = VirtualMachineToolsInstallType("guestToolsTypeOpenVMTools") -) - -func init() { - t["VirtualMachineToolsInstallType"] = reflect.TypeOf((*VirtualMachineToolsInstallType)(nil)).Elem() -} - -type VirtualMachineToolsRunningStatus string - -const ( - VirtualMachineToolsRunningStatusGuestToolsNotRunning = VirtualMachineToolsRunningStatus("guestToolsNotRunning") - VirtualMachineToolsRunningStatusGuestToolsRunning = VirtualMachineToolsRunningStatus("guestToolsRunning") - VirtualMachineToolsRunningStatusGuestToolsExecutingScripts = VirtualMachineToolsRunningStatus("guestToolsExecutingScripts") -) - -func init() { - t["VirtualMachineToolsRunningStatus"] = reflect.TypeOf((*VirtualMachineToolsRunningStatus)(nil)).Elem() -} - -type VirtualMachineToolsStatus string - -const ( - VirtualMachineToolsStatusToolsNotInstalled = VirtualMachineToolsStatus("toolsNotInstalled") - VirtualMachineToolsStatusToolsNotRunning = VirtualMachineToolsStatus("toolsNotRunning") - VirtualMachineToolsStatusToolsOld = VirtualMachineToolsStatus("toolsOld") - VirtualMachineToolsStatusToolsOk = VirtualMachineToolsStatus("toolsOk") -) - -func init() { - t["VirtualMachineToolsStatus"] = reflect.TypeOf((*VirtualMachineToolsStatus)(nil)).Elem() -} - -type VirtualMachineToolsVersionStatus string - -const ( - VirtualMachineToolsVersionStatusGuestToolsNotInstalled = VirtualMachineToolsVersionStatus("guestToolsNotInstalled") - VirtualMachineToolsVersionStatusGuestToolsNeedUpgrade = VirtualMachineToolsVersionStatus("guestToolsNeedUpgrade") - VirtualMachineToolsVersionStatusGuestToolsCurrent = VirtualMachineToolsVersionStatus("guestToolsCurrent") - VirtualMachineToolsVersionStatusGuestToolsUnmanaged = VirtualMachineToolsVersionStatus("guestToolsUnmanaged") - VirtualMachineToolsVersionStatusGuestToolsTooOld = VirtualMachineToolsVersionStatus("guestToolsTooOld") - VirtualMachineToolsVersionStatusGuestToolsSupportedOld = VirtualMachineToolsVersionStatus("guestToolsSupportedOld") - VirtualMachineToolsVersionStatusGuestToolsSupportedNew = VirtualMachineToolsVersionStatus("guestToolsSupportedNew") - VirtualMachineToolsVersionStatusGuestToolsTooNew = VirtualMachineToolsVersionStatus("guestToolsTooNew") - VirtualMachineToolsVersionStatusGuestToolsBlacklisted = VirtualMachineToolsVersionStatus("guestToolsBlacklisted") -) - -func init() { - t["VirtualMachineToolsVersionStatus"] = reflect.TypeOf((*VirtualMachineToolsVersionStatus)(nil)).Elem() -} - -type VirtualMachineUsbInfoFamily string - -const ( - VirtualMachineUsbInfoFamilyAudio = VirtualMachineUsbInfoFamily("audio") - VirtualMachineUsbInfoFamilyHid = VirtualMachineUsbInfoFamily("hid") - VirtualMachineUsbInfoFamilyHid_bootable = VirtualMachineUsbInfoFamily("hid_bootable") - VirtualMachineUsbInfoFamilyPhysical = VirtualMachineUsbInfoFamily("physical") - VirtualMachineUsbInfoFamilyCommunication = VirtualMachineUsbInfoFamily("communication") - VirtualMachineUsbInfoFamilyImaging = VirtualMachineUsbInfoFamily("imaging") - VirtualMachineUsbInfoFamilyPrinter = VirtualMachineUsbInfoFamily("printer") - VirtualMachineUsbInfoFamilyStorage = VirtualMachineUsbInfoFamily("storage") - VirtualMachineUsbInfoFamilyHub = VirtualMachineUsbInfoFamily("hub") - VirtualMachineUsbInfoFamilySmart_card = VirtualMachineUsbInfoFamily("smart_card") - VirtualMachineUsbInfoFamilySecurity = VirtualMachineUsbInfoFamily("security") - VirtualMachineUsbInfoFamilyVideo = VirtualMachineUsbInfoFamily("video") - VirtualMachineUsbInfoFamilyWireless = VirtualMachineUsbInfoFamily("wireless") - VirtualMachineUsbInfoFamilyBluetooth = VirtualMachineUsbInfoFamily("bluetooth") - VirtualMachineUsbInfoFamilyWusb = VirtualMachineUsbInfoFamily("wusb") - VirtualMachineUsbInfoFamilyPda = VirtualMachineUsbInfoFamily("pda") - VirtualMachineUsbInfoFamilyVendor_specific = VirtualMachineUsbInfoFamily("vendor_specific") - VirtualMachineUsbInfoFamilyOther = VirtualMachineUsbInfoFamily("other") - VirtualMachineUsbInfoFamilyUnknownFamily = VirtualMachineUsbInfoFamily("unknownFamily") -) - -func init() { - t["VirtualMachineUsbInfoFamily"] = reflect.TypeOf((*VirtualMachineUsbInfoFamily)(nil)).Elem() -} - -type VirtualMachineUsbInfoSpeed string - -const ( - VirtualMachineUsbInfoSpeedLow = VirtualMachineUsbInfoSpeed("low") - VirtualMachineUsbInfoSpeedFull = VirtualMachineUsbInfoSpeed("full") - VirtualMachineUsbInfoSpeedHigh = VirtualMachineUsbInfoSpeed("high") - VirtualMachineUsbInfoSpeedSuperSpeed = VirtualMachineUsbInfoSpeed("superSpeed") - VirtualMachineUsbInfoSpeedUnknownSpeed = VirtualMachineUsbInfoSpeed("unknownSpeed") -) - -func init() { - t["VirtualMachineUsbInfoSpeed"] = reflect.TypeOf((*VirtualMachineUsbInfoSpeed)(nil)).Elem() -} - -type VirtualMachineVMCIDeviceAction string - -const ( - VirtualMachineVMCIDeviceActionAllow = VirtualMachineVMCIDeviceAction("allow") - VirtualMachineVMCIDeviceActionDeny = VirtualMachineVMCIDeviceAction("deny") -) - -func init() { - t["VirtualMachineVMCIDeviceAction"] = reflect.TypeOf((*VirtualMachineVMCIDeviceAction)(nil)).Elem() -} - -type VirtualMachineVMCIDeviceDirection string - -const ( - VirtualMachineVMCIDeviceDirectionGuest = VirtualMachineVMCIDeviceDirection("guest") - VirtualMachineVMCIDeviceDirectionHost = VirtualMachineVMCIDeviceDirection("host") - VirtualMachineVMCIDeviceDirectionAnyDirection = VirtualMachineVMCIDeviceDirection("anyDirection") -) - -func init() { - t["VirtualMachineVMCIDeviceDirection"] = reflect.TypeOf((*VirtualMachineVMCIDeviceDirection)(nil)).Elem() -} - -type VirtualMachineVMCIDeviceProtocol string - -const ( - VirtualMachineVMCIDeviceProtocolHypervisor = VirtualMachineVMCIDeviceProtocol("hypervisor") - VirtualMachineVMCIDeviceProtocolDoorbell = VirtualMachineVMCIDeviceProtocol("doorbell") - VirtualMachineVMCIDeviceProtocolQueuepair = VirtualMachineVMCIDeviceProtocol("queuepair") - VirtualMachineVMCIDeviceProtocolDatagram = VirtualMachineVMCIDeviceProtocol("datagram") - VirtualMachineVMCIDeviceProtocolStream = VirtualMachineVMCIDeviceProtocol("stream") - VirtualMachineVMCIDeviceProtocolAnyProtocol = VirtualMachineVMCIDeviceProtocol("anyProtocol") -) - -func init() { - t["VirtualMachineVMCIDeviceProtocol"] = reflect.TypeOf((*VirtualMachineVMCIDeviceProtocol)(nil)).Elem() -} - -type VirtualMachineVideoCardUse3dRenderer string - -const ( - VirtualMachineVideoCardUse3dRendererAutomatic = VirtualMachineVideoCardUse3dRenderer("automatic") - VirtualMachineVideoCardUse3dRendererSoftware = VirtualMachineVideoCardUse3dRenderer("software") - VirtualMachineVideoCardUse3dRendererHardware = VirtualMachineVideoCardUse3dRenderer("hardware") -) - -func init() { - t["VirtualMachineVideoCardUse3dRenderer"] = reflect.TypeOf((*VirtualMachineVideoCardUse3dRenderer)(nil)).Elem() -} - -type VirtualMachineWindowsQuiesceSpecVssBackupContext string - -const ( - VirtualMachineWindowsQuiesceSpecVssBackupContextCtx_auto = VirtualMachineWindowsQuiesceSpecVssBackupContext("ctx_auto") - VirtualMachineWindowsQuiesceSpecVssBackupContextCtx_backup = VirtualMachineWindowsQuiesceSpecVssBackupContext("ctx_backup") - VirtualMachineWindowsQuiesceSpecVssBackupContextCtx_file_share_backup = VirtualMachineWindowsQuiesceSpecVssBackupContext("ctx_file_share_backup") -) - -func init() { - t["VirtualMachineWindowsQuiesceSpecVssBackupContext"] = reflect.TypeOf((*VirtualMachineWindowsQuiesceSpecVssBackupContext)(nil)).Elem() -} - -type VirtualPointingDeviceHostChoice string - -const ( - VirtualPointingDeviceHostChoiceAutodetect = VirtualPointingDeviceHostChoice("autodetect") - VirtualPointingDeviceHostChoiceIntellimouseExplorer = VirtualPointingDeviceHostChoice("intellimouseExplorer") - VirtualPointingDeviceHostChoiceIntellimousePs2 = VirtualPointingDeviceHostChoice("intellimousePs2") - VirtualPointingDeviceHostChoiceLogitechMouseman = VirtualPointingDeviceHostChoice("logitechMouseman") - VirtualPointingDeviceHostChoiceMicrosoft_serial = VirtualPointingDeviceHostChoice("microsoft_serial") - VirtualPointingDeviceHostChoiceMouseSystems = VirtualPointingDeviceHostChoice("mouseSystems") - VirtualPointingDeviceHostChoiceMousemanSerial = VirtualPointingDeviceHostChoice("mousemanSerial") - VirtualPointingDeviceHostChoicePs2 = VirtualPointingDeviceHostChoice("ps2") -) - -func init() { - t["VirtualPointingDeviceHostChoice"] = reflect.TypeOf((*VirtualPointingDeviceHostChoice)(nil)).Elem() -} - -type VirtualSCSISharing string - -const ( - VirtualSCSISharingNoSharing = VirtualSCSISharing("noSharing") - VirtualSCSISharingVirtualSharing = VirtualSCSISharing("virtualSharing") - VirtualSCSISharingPhysicalSharing = VirtualSCSISharing("physicalSharing") -) - -func init() { - t["VirtualSCSISharing"] = reflect.TypeOf((*VirtualSCSISharing)(nil)).Elem() -} - -type VirtualSerialPortEndPoint string - -const ( - VirtualSerialPortEndPointClient = VirtualSerialPortEndPoint("client") - VirtualSerialPortEndPointServer = VirtualSerialPortEndPoint("server") -) - -func init() { - t["VirtualSerialPortEndPoint"] = reflect.TypeOf((*VirtualSerialPortEndPoint)(nil)).Elem() -} - -type VmDasBeingResetEventReasonCode string - -const ( - VmDasBeingResetEventReasonCodeVmtoolsHeartbeatFailure = VmDasBeingResetEventReasonCode("vmtoolsHeartbeatFailure") - VmDasBeingResetEventReasonCodeAppHeartbeatFailure = VmDasBeingResetEventReasonCode("appHeartbeatFailure") - VmDasBeingResetEventReasonCodeAppImmediateResetRequest = VmDasBeingResetEventReasonCode("appImmediateResetRequest") - VmDasBeingResetEventReasonCodeVmcpResetApdCleared = VmDasBeingResetEventReasonCode("vmcpResetApdCleared") -) - -func init() { - t["VmDasBeingResetEventReasonCode"] = reflect.TypeOf((*VmDasBeingResetEventReasonCode)(nil)).Elem() -} - -type VmFailedStartingSecondaryEventFailureReason string - -const ( - VmFailedStartingSecondaryEventFailureReasonIncompatibleHost = VmFailedStartingSecondaryEventFailureReason("incompatibleHost") - VmFailedStartingSecondaryEventFailureReasonLoginFailed = VmFailedStartingSecondaryEventFailureReason("loginFailed") - VmFailedStartingSecondaryEventFailureReasonRegisterVmFailed = VmFailedStartingSecondaryEventFailureReason("registerVmFailed") - VmFailedStartingSecondaryEventFailureReasonMigrateFailed = VmFailedStartingSecondaryEventFailureReason("migrateFailed") -) - -func init() { - t["VmFailedStartingSecondaryEventFailureReason"] = reflect.TypeOf((*VmFailedStartingSecondaryEventFailureReason)(nil)).Elem() -} - -type VmFaultToleranceConfigIssueReasonForIssue string - -const ( - VmFaultToleranceConfigIssueReasonForIssueHaNotEnabled = VmFaultToleranceConfigIssueReasonForIssue("haNotEnabled") - VmFaultToleranceConfigIssueReasonForIssueMoreThanOneSecondary = VmFaultToleranceConfigIssueReasonForIssue("moreThanOneSecondary") - VmFaultToleranceConfigIssueReasonForIssueRecordReplayNotSupported = VmFaultToleranceConfigIssueReasonForIssue("recordReplayNotSupported") - VmFaultToleranceConfigIssueReasonForIssueReplayNotSupported = VmFaultToleranceConfigIssueReasonForIssue("replayNotSupported") - VmFaultToleranceConfigIssueReasonForIssueTemplateVm = VmFaultToleranceConfigIssueReasonForIssue("templateVm") - VmFaultToleranceConfigIssueReasonForIssueMultipleVCPU = VmFaultToleranceConfigIssueReasonForIssue("multipleVCPU") - VmFaultToleranceConfigIssueReasonForIssueHostInactive = VmFaultToleranceConfigIssueReasonForIssue("hostInactive") - VmFaultToleranceConfigIssueReasonForIssueFtUnsupportedHardware = VmFaultToleranceConfigIssueReasonForIssue("ftUnsupportedHardware") - VmFaultToleranceConfigIssueReasonForIssueFtUnsupportedProduct = VmFaultToleranceConfigIssueReasonForIssue("ftUnsupportedProduct") - VmFaultToleranceConfigIssueReasonForIssueMissingVMotionNic = VmFaultToleranceConfigIssueReasonForIssue("missingVMotionNic") - VmFaultToleranceConfigIssueReasonForIssueMissingFTLoggingNic = VmFaultToleranceConfigIssueReasonForIssue("missingFTLoggingNic") - VmFaultToleranceConfigIssueReasonForIssueThinDisk = VmFaultToleranceConfigIssueReasonForIssue("thinDisk") - VmFaultToleranceConfigIssueReasonForIssueVerifySSLCertificateFlagNotSet = VmFaultToleranceConfigIssueReasonForIssue("verifySSLCertificateFlagNotSet") - VmFaultToleranceConfigIssueReasonForIssueHasSnapshots = VmFaultToleranceConfigIssueReasonForIssue("hasSnapshots") - VmFaultToleranceConfigIssueReasonForIssueNoConfig = VmFaultToleranceConfigIssueReasonForIssue("noConfig") - VmFaultToleranceConfigIssueReasonForIssueFtSecondaryVm = VmFaultToleranceConfigIssueReasonForIssue("ftSecondaryVm") - VmFaultToleranceConfigIssueReasonForIssueHasLocalDisk = VmFaultToleranceConfigIssueReasonForIssue("hasLocalDisk") - VmFaultToleranceConfigIssueReasonForIssueEsxAgentVm = VmFaultToleranceConfigIssueReasonForIssue("esxAgentVm") - VmFaultToleranceConfigIssueReasonForIssueVideo3dEnabled = VmFaultToleranceConfigIssueReasonForIssue("video3dEnabled") - VmFaultToleranceConfigIssueReasonForIssueHasUnsupportedDisk = VmFaultToleranceConfigIssueReasonForIssue("hasUnsupportedDisk") - VmFaultToleranceConfigIssueReasonForIssueInsufficientBandwidth = VmFaultToleranceConfigIssueReasonForIssue("insufficientBandwidth") - VmFaultToleranceConfigIssueReasonForIssueHasNestedHVConfiguration = VmFaultToleranceConfigIssueReasonForIssue("hasNestedHVConfiguration") - VmFaultToleranceConfigIssueReasonForIssueHasVFlashConfiguration = VmFaultToleranceConfigIssueReasonForIssue("hasVFlashConfiguration") - VmFaultToleranceConfigIssueReasonForIssueUnsupportedProduct = VmFaultToleranceConfigIssueReasonForIssue("unsupportedProduct") - VmFaultToleranceConfigIssueReasonForIssueCpuHvUnsupported = VmFaultToleranceConfigIssueReasonForIssue("cpuHvUnsupported") - VmFaultToleranceConfigIssueReasonForIssueCpuHwmmuUnsupported = VmFaultToleranceConfigIssueReasonForIssue("cpuHwmmuUnsupported") - VmFaultToleranceConfigIssueReasonForIssueCpuHvDisabled = VmFaultToleranceConfigIssueReasonForIssue("cpuHvDisabled") - VmFaultToleranceConfigIssueReasonForIssueHasEFIFirmware = VmFaultToleranceConfigIssueReasonForIssue("hasEFIFirmware") -) - -func init() { - t["VmFaultToleranceConfigIssueReasonForIssue"] = reflect.TypeOf((*VmFaultToleranceConfigIssueReasonForIssue)(nil)).Elem() -} - -type VmFaultToleranceInvalidFileBackingDeviceType string - -const ( - VmFaultToleranceInvalidFileBackingDeviceTypeVirtualFloppy = VmFaultToleranceInvalidFileBackingDeviceType("virtualFloppy") - VmFaultToleranceInvalidFileBackingDeviceTypeVirtualCdrom = VmFaultToleranceInvalidFileBackingDeviceType("virtualCdrom") - VmFaultToleranceInvalidFileBackingDeviceTypeVirtualSerialPort = VmFaultToleranceInvalidFileBackingDeviceType("virtualSerialPort") - VmFaultToleranceInvalidFileBackingDeviceTypeVirtualParallelPort = VmFaultToleranceInvalidFileBackingDeviceType("virtualParallelPort") - VmFaultToleranceInvalidFileBackingDeviceTypeVirtualDisk = VmFaultToleranceInvalidFileBackingDeviceType("virtualDisk") -) - -func init() { - t["VmFaultToleranceInvalidFileBackingDeviceType"] = reflect.TypeOf((*VmFaultToleranceInvalidFileBackingDeviceType)(nil)).Elem() -} - -type VmShutdownOnIsolationEventOperation string - -const ( - VmShutdownOnIsolationEventOperationShutdown = VmShutdownOnIsolationEventOperation("shutdown") - VmShutdownOnIsolationEventOperationPoweredOff = VmShutdownOnIsolationEventOperation("poweredOff") -) - -func init() { - t["VmShutdownOnIsolationEventOperation"] = reflect.TypeOf((*VmShutdownOnIsolationEventOperation)(nil)).Elem() -} - -type VmwareDistributedVirtualSwitchPvlanPortType string - -const ( - VmwareDistributedVirtualSwitchPvlanPortTypePromiscuous = VmwareDistributedVirtualSwitchPvlanPortType("promiscuous") - VmwareDistributedVirtualSwitchPvlanPortTypeIsolated = VmwareDistributedVirtualSwitchPvlanPortType("isolated") - VmwareDistributedVirtualSwitchPvlanPortTypeCommunity = VmwareDistributedVirtualSwitchPvlanPortType("community") -) - -func init() { - t["VmwareDistributedVirtualSwitchPvlanPortType"] = reflect.TypeOf((*VmwareDistributedVirtualSwitchPvlanPortType)(nil)).Elem() -} - -type VsanDiskIssueType string - -const ( - VsanDiskIssueTypeNonExist = VsanDiskIssueType("nonExist") - VsanDiskIssueTypeStampMismatch = VsanDiskIssueType("stampMismatch") - VsanDiskIssueTypeUnknown = VsanDiskIssueType("unknown") -) - -func init() { - t["VsanDiskIssueType"] = reflect.TypeOf((*VsanDiskIssueType)(nil)).Elem() -} - -type VsanHostDecommissionModeObjectAction string - -const ( - VsanHostDecommissionModeObjectActionNoAction = VsanHostDecommissionModeObjectAction("noAction") - VsanHostDecommissionModeObjectActionEnsureObjectAccessibility = VsanHostDecommissionModeObjectAction("ensureObjectAccessibility") - VsanHostDecommissionModeObjectActionEvacuateAllData = VsanHostDecommissionModeObjectAction("evacuateAllData") -) - -func init() { - t["VsanHostDecommissionModeObjectAction"] = reflect.TypeOf((*VsanHostDecommissionModeObjectAction)(nil)).Elem() -} - -type VsanHostDiskResultState string - -const ( - VsanHostDiskResultStateInUse = VsanHostDiskResultState("inUse") - VsanHostDiskResultStateEligible = VsanHostDiskResultState("eligible") - VsanHostDiskResultStateIneligible = VsanHostDiskResultState("ineligible") -) - -func init() { - t["VsanHostDiskResultState"] = reflect.TypeOf((*VsanHostDiskResultState)(nil)).Elem() -} - -type VsanHostHealthState string - -const ( - VsanHostHealthStateUnknown = VsanHostHealthState("unknown") - VsanHostHealthStateHealthy = VsanHostHealthState("healthy") - VsanHostHealthStateUnhealthy = VsanHostHealthState("unhealthy") -) - -func init() { - t["VsanHostHealthState"] = reflect.TypeOf((*VsanHostHealthState)(nil)).Elem() -} - -type VsanHostNodeState string - -const ( - VsanHostNodeStateError = VsanHostNodeState("error") - VsanHostNodeStateDisabled = VsanHostNodeState("disabled") - VsanHostNodeStateAgent = VsanHostNodeState("agent") - VsanHostNodeStateMaster = VsanHostNodeState("master") - VsanHostNodeStateBackup = VsanHostNodeState("backup") - VsanHostNodeStateStarting = VsanHostNodeState("starting") - VsanHostNodeStateStopping = VsanHostNodeState("stopping") - VsanHostNodeStateEnteringMaintenanceMode = VsanHostNodeState("enteringMaintenanceMode") - VsanHostNodeStateExitingMaintenanceMode = VsanHostNodeState("exitingMaintenanceMode") - VsanHostNodeStateDecommissioning = VsanHostNodeState("decommissioning") -) - -func init() { - t["VsanHostNodeState"] = reflect.TypeOf((*VsanHostNodeState)(nil)).Elem() -} - -type VsanUpgradeSystemUpgradeHistoryDiskGroupOpType string - -const ( - VsanUpgradeSystemUpgradeHistoryDiskGroupOpTypeAdd = VsanUpgradeSystemUpgradeHistoryDiskGroupOpType("add") - VsanUpgradeSystemUpgradeHistoryDiskGroupOpTypeRemove = VsanUpgradeSystemUpgradeHistoryDiskGroupOpType("remove") -) - -func init() { - t["VsanUpgradeSystemUpgradeHistoryDiskGroupOpType"] = reflect.TypeOf((*VsanUpgradeSystemUpgradeHistoryDiskGroupOpType)(nil)).Elem() -} - -type WeekOfMonth string - -const ( - WeekOfMonthFirst = WeekOfMonth("first") - WeekOfMonthSecond = WeekOfMonth("second") - WeekOfMonthThird = WeekOfMonth("third") - WeekOfMonthFourth = WeekOfMonth("fourth") - WeekOfMonthLast = WeekOfMonth("last") -) - -func init() { - t["WeekOfMonth"] = reflect.TypeOf((*WeekOfMonth)(nil)).Elem() -} - -type WillLoseHAProtectionResolution string - -const ( - WillLoseHAProtectionResolutionSvmotion = WillLoseHAProtectionResolution("svmotion") - WillLoseHAProtectionResolutionRelocate = WillLoseHAProtectionResolution("relocate") -) - -func init() { - t["WillLoseHAProtectionResolution"] = reflect.TypeOf((*WillLoseHAProtectionResolution)(nil)).Elem() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/fault.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/fault.go deleted file mode 100644 index c2503fa5..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/fault.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 types - -type HasFault interface { - Fault() BaseMethodFault -} - -func IsFileNotFound(err error) bool { - if f, ok := err.(HasFault); ok { - switch f.Fault().(type) { - case *FileNotFound: - return true - } - } - - return false -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/helpers.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/helpers.go deleted file mode 100644 index 2364ed42..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/helpers.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright (c) 2015 VMware, 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 types - -import "strings" - -func NewBool(v bool) *bool { - return &v -} - -func NewReference(r ManagedObjectReference) *ManagedObjectReference { - return &r -} - -func (r ManagedObjectReference) Reference() ManagedObjectReference { - return r -} - -func (r ManagedObjectReference) String() string { - return strings.Join([]string{r.Type, r.Value}, ":") -} - -func (r *ManagedObjectReference) FromString(o string) bool { - s := strings.SplitN(o, ":", 2) - - if len(s) < 2 { - return false - } - - r.Type = s[0] - r.Value = s[1] - - return true -} - -func (c *PerfCounterInfo) Name() string { - return c.GroupInfo.GetElementDescription().Key + "." + c.NameInfo.GetElementDescription().Key + "." + string(c.RollupType) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/if.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/if.go deleted file mode 100644 index dbf594cf..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/if.go +++ /dev/null @@ -1,3459 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 types - -import "reflect" - -func (b *Action) GetAction() *Action { return b } - -type BaseAction interface { - GetAction() *Action -} - -func init() { - t["BaseAction"] = reflect.TypeOf((*Action)(nil)).Elem() -} - -func (b *ActiveDirectoryFault) GetActiveDirectoryFault() *ActiveDirectoryFault { return b } - -type BaseActiveDirectoryFault interface { - GetActiveDirectoryFault() *ActiveDirectoryFault -} - -func init() { - t["BaseActiveDirectoryFault"] = reflect.TypeOf((*ActiveDirectoryFault)(nil)).Elem() -} - -func (b *AlarmAction) GetAlarmAction() *AlarmAction { return b } - -type BaseAlarmAction interface { - GetAlarmAction() *AlarmAction -} - -func init() { - t["BaseAlarmAction"] = reflect.TypeOf((*AlarmAction)(nil)).Elem() -} - -func (b *AlarmEvent) GetAlarmEvent() *AlarmEvent { return b } - -type BaseAlarmEvent interface { - GetAlarmEvent() *AlarmEvent -} - -func init() { - t["BaseAlarmEvent"] = reflect.TypeOf((*AlarmEvent)(nil)).Elem() -} - -func (b *AlarmExpression) GetAlarmExpression() *AlarmExpression { return b } - -type BaseAlarmExpression interface { - GetAlarmExpression() *AlarmExpression -} - -func init() { - t["BaseAlarmExpression"] = reflect.TypeOf((*AlarmExpression)(nil)).Elem() -} - -func (b *AlarmSpec) GetAlarmSpec() *AlarmSpec { return b } - -type BaseAlarmSpec interface { - GetAlarmSpec() *AlarmSpec -} - -func init() { - t["BaseAlarmSpec"] = reflect.TypeOf((*AlarmSpec)(nil)).Elem() -} - -func (b *AnswerFileCreateSpec) GetAnswerFileCreateSpec() *AnswerFileCreateSpec { return b } - -type BaseAnswerFileCreateSpec interface { - GetAnswerFileCreateSpec() *AnswerFileCreateSpec -} - -func init() { - t["BaseAnswerFileCreateSpec"] = reflect.TypeOf((*AnswerFileCreateSpec)(nil)).Elem() -} - -func (b *ApplyProfile) GetApplyProfile() *ApplyProfile { return b } - -type BaseApplyProfile interface { - GetApplyProfile() *ApplyProfile -} - -func init() { - t["BaseApplyProfile"] = reflect.TypeOf((*ApplyProfile)(nil)).Elem() -} - -func (b *ArrayUpdateSpec) GetArrayUpdateSpec() *ArrayUpdateSpec { return b } - -type BaseArrayUpdateSpec interface { - GetArrayUpdateSpec() *ArrayUpdateSpec -} - -func init() { - t["BaseArrayUpdateSpec"] = reflect.TypeOf((*ArrayUpdateSpec)(nil)).Elem() -} - -func (b *AuthorizationEvent) GetAuthorizationEvent() *AuthorizationEvent { return b } - -type BaseAuthorizationEvent interface { - GetAuthorizationEvent() *AuthorizationEvent -} - -func init() { - t["BaseAuthorizationEvent"] = reflect.TypeOf((*AuthorizationEvent)(nil)).Elem() -} - -func (b *BaseConfigInfo) GetBaseConfigInfo() *BaseConfigInfo { return b } - -type BaseBaseConfigInfo interface { - GetBaseConfigInfo() *BaseConfigInfo -} - -func init() { - t["BaseBaseConfigInfo"] = reflect.TypeOf((*BaseConfigInfo)(nil)).Elem() -} - -func (b *BaseConfigInfoBackingInfo) GetBaseConfigInfoBackingInfo() *BaseConfigInfoBackingInfo { - return b -} - -type BaseBaseConfigInfoBackingInfo interface { - GetBaseConfigInfoBackingInfo() *BaseConfigInfoBackingInfo -} - -func init() { - t["BaseBaseConfigInfoBackingInfo"] = reflect.TypeOf((*BaseConfigInfoBackingInfo)(nil)).Elem() -} - -func (b *BaseConfigInfoFileBackingInfo) GetBaseConfigInfoFileBackingInfo() *BaseConfigInfoFileBackingInfo { - return b -} - -type BaseBaseConfigInfoFileBackingInfo interface { - GetBaseConfigInfoFileBackingInfo() *BaseConfigInfoFileBackingInfo -} - -func init() { - t["BaseBaseConfigInfoFileBackingInfo"] = reflect.TypeOf((*BaseConfigInfoFileBackingInfo)(nil)).Elem() -} - -func (b *CannotAccessNetwork) GetCannotAccessNetwork() *CannotAccessNetwork { return b } - -type BaseCannotAccessNetwork interface { - GetCannotAccessNetwork() *CannotAccessNetwork -} - -func init() { - t["BaseCannotAccessNetwork"] = reflect.TypeOf((*CannotAccessNetwork)(nil)).Elem() -} - -func (b *CannotAccessVmComponent) GetCannotAccessVmComponent() *CannotAccessVmComponent { return b } - -type BaseCannotAccessVmComponent interface { - GetCannotAccessVmComponent() *CannotAccessVmComponent -} - -func init() { - t["BaseCannotAccessVmComponent"] = reflect.TypeOf((*CannotAccessVmComponent)(nil)).Elem() -} - -func (b *CannotAccessVmDevice) GetCannotAccessVmDevice() *CannotAccessVmDevice { return b } - -type BaseCannotAccessVmDevice interface { - GetCannotAccessVmDevice() *CannotAccessVmDevice -} - -func init() { - t["BaseCannotAccessVmDevice"] = reflect.TypeOf((*CannotAccessVmDevice)(nil)).Elem() -} - -func (b *CannotAccessVmDisk) GetCannotAccessVmDisk() *CannotAccessVmDisk { return b } - -type BaseCannotAccessVmDisk interface { - GetCannotAccessVmDisk() *CannotAccessVmDisk -} - -func init() { - t["BaseCannotAccessVmDisk"] = reflect.TypeOf((*CannotAccessVmDisk)(nil)).Elem() -} - -func (b *CannotMoveVsanEnabledHost) GetCannotMoveVsanEnabledHost() *CannotMoveVsanEnabledHost { - return b -} - -type BaseCannotMoveVsanEnabledHost interface { - GetCannotMoveVsanEnabledHost() *CannotMoveVsanEnabledHost -} - -func init() { - t["BaseCannotMoveVsanEnabledHost"] = reflect.TypeOf((*CannotMoveVsanEnabledHost)(nil)).Elem() -} - -func (b *ClusterAction) GetClusterAction() *ClusterAction { return b } - -type BaseClusterAction interface { - GetClusterAction() *ClusterAction -} - -func init() { - t["BaseClusterAction"] = reflect.TypeOf((*ClusterAction)(nil)).Elem() -} - -func (b *ClusterDasAdmissionControlInfo) GetClusterDasAdmissionControlInfo() *ClusterDasAdmissionControlInfo { - return b -} - -type BaseClusterDasAdmissionControlInfo interface { - GetClusterDasAdmissionControlInfo() *ClusterDasAdmissionControlInfo -} - -func init() { - t["BaseClusterDasAdmissionControlInfo"] = reflect.TypeOf((*ClusterDasAdmissionControlInfo)(nil)).Elem() -} - -func (b *ClusterDasAdmissionControlPolicy) GetClusterDasAdmissionControlPolicy() *ClusterDasAdmissionControlPolicy { - return b -} - -type BaseClusterDasAdmissionControlPolicy interface { - GetClusterDasAdmissionControlPolicy() *ClusterDasAdmissionControlPolicy -} - -func init() { - t["BaseClusterDasAdmissionControlPolicy"] = reflect.TypeOf((*ClusterDasAdmissionControlPolicy)(nil)).Elem() -} - -func (b *ClusterDasAdvancedRuntimeInfo) GetClusterDasAdvancedRuntimeInfo() *ClusterDasAdvancedRuntimeInfo { - return b -} - -type BaseClusterDasAdvancedRuntimeInfo interface { - GetClusterDasAdvancedRuntimeInfo() *ClusterDasAdvancedRuntimeInfo -} - -func init() { - t["BaseClusterDasAdvancedRuntimeInfo"] = reflect.TypeOf((*ClusterDasAdvancedRuntimeInfo)(nil)).Elem() -} - -func (b *ClusterDasData) GetClusterDasData() *ClusterDasData { return b } - -type BaseClusterDasData interface { - GetClusterDasData() *ClusterDasData -} - -func init() { - t["BaseClusterDasData"] = reflect.TypeOf((*ClusterDasData)(nil)).Elem() -} - -func (b *ClusterDasHostInfo) GetClusterDasHostInfo() *ClusterDasHostInfo { return b } - -type BaseClusterDasHostInfo interface { - GetClusterDasHostInfo() *ClusterDasHostInfo -} - -func init() { - t["BaseClusterDasHostInfo"] = reflect.TypeOf((*ClusterDasHostInfo)(nil)).Elem() -} - -func (b *ClusterDrsFaultsFaultsByVm) GetClusterDrsFaultsFaultsByVm() *ClusterDrsFaultsFaultsByVm { - return b -} - -type BaseClusterDrsFaultsFaultsByVm interface { - GetClusterDrsFaultsFaultsByVm() *ClusterDrsFaultsFaultsByVm -} - -func init() { - t["BaseClusterDrsFaultsFaultsByVm"] = reflect.TypeOf((*ClusterDrsFaultsFaultsByVm)(nil)).Elem() -} - -func (b *ClusterEvent) GetClusterEvent() *ClusterEvent { return b } - -type BaseClusterEvent interface { - GetClusterEvent() *ClusterEvent -} - -func init() { - t["BaseClusterEvent"] = reflect.TypeOf((*ClusterEvent)(nil)).Elem() -} - -func (b *ClusterGroupInfo) GetClusterGroupInfo() *ClusterGroupInfo { return b } - -type BaseClusterGroupInfo interface { - GetClusterGroupInfo() *ClusterGroupInfo -} - -func init() { - t["BaseClusterGroupInfo"] = reflect.TypeOf((*ClusterGroupInfo)(nil)).Elem() -} - -func (b *ClusterOvercommittedEvent) GetClusterOvercommittedEvent() *ClusterOvercommittedEvent { - return b -} - -type BaseClusterOvercommittedEvent interface { - GetClusterOvercommittedEvent() *ClusterOvercommittedEvent -} - -func init() { - t["BaseClusterOvercommittedEvent"] = reflect.TypeOf((*ClusterOvercommittedEvent)(nil)).Elem() -} - -func (b *ClusterProfileConfigSpec) GetClusterProfileConfigSpec() *ClusterProfileConfigSpec { return b } - -type BaseClusterProfileConfigSpec interface { - GetClusterProfileConfigSpec() *ClusterProfileConfigSpec -} - -func init() { - t["BaseClusterProfileConfigSpec"] = reflect.TypeOf((*ClusterProfileConfigSpec)(nil)).Elem() -} - -func (b *ClusterProfileCreateSpec) GetClusterProfileCreateSpec() *ClusterProfileCreateSpec { return b } - -type BaseClusterProfileCreateSpec interface { - GetClusterProfileCreateSpec() *ClusterProfileCreateSpec -} - -func init() { - t["BaseClusterProfileCreateSpec"] = reflect.TypeOf((*ClusterProfileCreateSpec)(nil)).Elem() -} - -func (b *ClusterRuleInfo) GetClusterRuleInfo() *ClusterRuleInfo { return b } - -type BaseClusterRuleInfo interface { - GetClusterRuleInfo() *ClusterRuleInfo -} - -func init() { - t["BaseClusterRuleInfo"] = reflect.TypeOf((*ClusterRuleInfo)(nil)).Elem() -} - -func (b *ClusterSlotPolicy) GetClusterSlotPolicy() *ClusterSlotPolicy { return b } - -type BaseClusterSlotPolicy interface { - GetClusterSlotPolicy() *ClusterSlotPolicy -} - -func init() { - t["BaseClusterSlotPolicy"] = reflect.TypeOf((*ClusterSlotPolicy)(nil)).Elem() -} - -func (b *ClusterStatusChangedEvent) GetClusterStatusChangedEvent() *ClusterStatusChangedEvent { - return b -} - -type BaseClusterStatusChangedEvent interface { - GetClusterStatusChangedEvent() *ClusterStatusChangedEvent -} - -func init() { - t["BaseClusterStatusChangedEvent"] = reflect.TypeOf((*ClusterStatusChangedEvent)(nil)).Elem() -} - -func (b *ComputeResourceConfigInfo) GetComputeResourceConfigInfo() *ComputeResourceConfigInfo { - return b -} - -type BaseComputeResourceConfigInfo interface { - GetComputeResourceConfigInfo() *ComputeResourceConfigInfo -} - -func init() { - t["BaseComputeResourceConfigInfo"] = reflect.TypeOf((*ComputeResourceConfigInfo)(nil)).Elem() -} - -func (b *ComputeResourceConfigSpec) GetComputeResourceConfigSpec() *ComputeResourceConfigSpec { - return b -} - -type BaseComputeResourceConfigSpec interface { - GetComputeResourceConfigSpec() *ComputeResourceConfigSpec -} - -func init() { - t["BaseComputeResourceConfigSpec"] = reflect.TypeOf((*ComputeResourceConfigSpec)(nil)).Elem() -} - -func (b *ComputeResourceSummary) GetComputeResourceSummary() *ComputeResourceSummary { return b } - -type BaseComputeResourceSummary interface { - GetComputeResourceSummary() *ComputeResourceSummary -} - -func init() { - t["BaseComputeResourceSummary"] = reflect.TypeOf((*ComputeResourceSummary)(nil)).Elem() -} - -func (b *CpuIncompatible) GetCpuIncompatible() *CpuIncompatible { return b } - -type BaseCpuIncompatible interface { - GetCpuIncompatible() *CpuIncompatible -} - -func init() { - t["BaseCpuIncompatible"] = reflect.TypeOf((*CpuIncompatible)(nil)).Elem() -} - -func (b *CryptoSpec) GetCryptoSpec() *CryptoSpec { return b } - -type BaseCryptoSpec interface { - GetCryptoSpec() *CryptoSpec -} - -func init() { - t["BaseCryptoSpec"] = reflect.TypeOf((*CryptoSpec)(nil)).Elem() -} - -func (b *CryptoSpecNoOp) GetCryptoSpecNoOp() *CryptoSpecNoOp { return b } - -type BaseCryptoSpecNoOp interface { - GetCryptoSpecNoOp() *CryptoSpecNoOp -} - -func init() { - t["BaseCryptoSpecNoOp"] = reflect.TypeOf((*CryptoSpecNoOp)(nil)).Elem() -} - -func (b *CustomFieldDefEvent) GetCustomFieldDefEvent() *CustomFieldDefEvent { return b } - -type BaseCustomFieldDefEvent interface { - GetCustomFieldDefEvent() *CustomFieldDefEvent -} - -func init() { - t["BaseCustomFieldDefEvent"] = reflect.TypeOf((*CustomFieldDefEvent)(nil)).Elem() -} - -func (b *CustomFieldEvent) GetCustomFieldEvent() *CustomFieldEvent { return b } - -type BaseCustomFieldEvent interface { - GetCustomFieldEvent() *CustomFieldEvent -} - -func init() { - t["BaseCustomFieldEvent"] = reflect.TypeOf((*CustomFieldEvent)(nil)).Elem() -} - -func (b *CustomFieldValue) GetCustomFieldValue() *CustomFieldValue { return b } - -type BaseCustomFieldValue interface { - GetCustomFieldValue() *CustomFieldValue -} - -func init() { - t["BaseCustomFieldValue"] = reflect.TypeOf((*CustomFieldValue)(nil)).Elem() -} - -func (b *CustomizationEvent) GetCustomizationEvent() *CustomizationEvent { return b } - -type BaseCustomizationEvent interface { - GetCustomizationEvent() *CustomizationEvent -} - -func init() { - t["BaseCustomizationEvent"] = reflect.TypeOf((*CustomizationEvent)(nil)).Elem() -} - -func (b *CustomizationFailed) GetCustomizationFailed() *CustomizationFailed { return b } - -type BaseCustomizationFailed interface { - GetCustomizationFailed() *CustomizationFailed -} - -func init() { - t["BaseCustomizationFailed"] = reflect.TypeOf((*CustomizationFailed)(nil)).Elem() -} - -func (b *CustomizationFault) GetCustomizationFault() *CustomizationFault { return b } - -type BaseCustomizationFault interface { - GetCustomizationFault() *CustomizationFault -} - -func init() { - t["BaseCustomizationFault"] = reflect.TypeOf((*CustomizationFault)(nil)).Elem() -} - -func (b *CustomizationIdentitySettings) GetCustomizationIdentitySettings() *CustomizationIdentitySettings { - return b -} - -type BaseCustomizationIdentitySettings interface { - GetCustomizationIdentitySettings() *CustomizationIdentitySettings -} - -func init() { - t["BaseCustomizationIdentitySettings"] = reflect.TypeOf((*CustomizationIdentitySettings)(nil)).Elem() -} - -func (b *CustomizationIpGenerator) GetCustomizationIpGenerator() *CustomizationIpGenerator { return b } - -type BaseCustomizationIpGenerator interface { - GetCustomizationIpGenerator() *CustomizationIpGenerator -} - -func init() { - t["BaseCustomizationIpGenerator"] = reflect.TypeOf((*CustomizationIpGenerator)(nil)).Elem() -} - -func (b *CustomizationIpV6Generator) GetCustomizationIpV6Generator() *CustomizationIpV6Generator { - return b -} - -type BaseCustomizationIpV6Generator interface { - GetCustomizationIpV6Generator() *CustomizationIpV6Generator -} - -func init() { - t["BaseCustomizationIpV6Generator"] = reflect.TypeOf((*CustomizationIpV6Generator)(nil)).Elem() -} - -func (b *CustomizationName) GetCustomizationName() *CustomizationName { return b } - -type BaseCustomizationName interface { - GetCustomizationName() *CustomizationName -} - -func init() { - t["BaseCustomizationName"] = reflect.TypeOf((*CustomizationName)(nil)).Elem() -} - -func (b *CustomizationOptions) GetCustomizationOptions() *CustomizationOptions { return b } - -type BaseCustomizationOptions interface { - GetCustomizationOptions() *CustomizationOptions -} - -func init() { - t["BaseCustomizationOptions"] = reflect.TypeOf((*CustomizationOptions)(nil)).Elem() -} - -func (b *DVPortSetting) GetDVPortSetting() *DVPortSetting { return b } - -type BaseDVPortSetting interface { - GetDVPortSetting() *DVPortSetting -} - -func init() { - t["BaseDVPortSetting"] = reflect.TypeOf((*DVPortSetting)(nil)).Elem() -} - -func (b *DVPortgroupEvent) GetDVPortgroupEvent() *DVPortgroupEvent { return b } - -type BaseDVPortgroupEvent interface { - GetDVPortgroupEvent() *DVPortgroupEvent -} - -func init() { - t["BaseDVPortgroupEvent"] = reflect.TypeOf((*DVPortgroupEvent)(nil)).Elem() -} - -func (b *DVPortgroupPolicy) GetDVPortgroupPolicy() *DVPortgroupPolicy { return b } - -type BaseDVPortgroupPolicy interface { - GetDVPortgroupPolicy() *DVPortgroupPolicy -} - -func init() { - t["BaseDVPortgroupPolicy"] = reflect.TypeOf((*DVPortgroupPolicy)(nil)).Elem() -} - -func (b *DVSConfigInfo) GetDVSConfigInfo() *DVSConfigInfo { return b } - -type BaseDVSConfigInfo interface { - GetDVSConfigInfo() *DVSConfigInfo -} - -func init() { - t["BaseDVSConfigInfo"] = reflect.TypeOf((*DVSConfigInfo)(nil)).Elem() -} - -func (b *DVSConfigSpec) GetDVSConfigSpec() *DVSConfigSpec { return b } - -type BaseDVSConfigSpec interface { - GetDVSConfigSpec() *DVSConfigSpec -} - -func init() { - t["BaseDVSConfigSpec"] = reflect.TypeOf((*DVSConfigSpec)(nil)).Elem() -} - -func (b *DVSFeatureCapability) GetDVSFeatureCapability() *DVSFeatureCapability { return b } - -type BaseDVSFeatureCapability interface { - GetDVSFeatureCapability() *DVSFeatureCapability -} - -func init() { - t["BaseDVSFeatureCapability"] = reflect.TypeOf((*DVSFeatureCapability)(nil)).Elem() -} - -func (b *DVSHealthCheckCapability) GetDVSHealthCheckCapability() *DVSHealthCheckCapability { return b } - -type BaseDVSHealthCheckCapability interface { - GetDVSHealthCheckCapability() *DVSHealthCheckCapability -} - -func init() { - t["BaseDVSHealthCheckCapability"] = reflect.TypeOf((*DVSHealthCheckCapability)(nil)).Elem() -} - -func (b *DVSHealthCheckConfig) GetDVSHealthCheckConfig() *DVSHealthCheckConfig { return b } - -type BaseDVSHealthCheckConfig interface { - GetDVSHealthCheckConfig() *DVSHealthCheckConfig -} - -func init() { - t["BaseDVSHealthCheckConfig"] = reflect.TypeOf((*DVSHealthCheckConfig)(nil)).Elem() -} - -func (b *DVSUplinkPortPolicy) GetDVSUplinkPortPolicy() *DVSUplinkPortPolicy { return b } - -type BaseDVSUplinkPortPolicy interface { - GetDVSUplinkPortPolicy() *DVSUplinkPortPolicy -} - -func init() { - t["BaseDVSUplinkPortPolicy"] = reflect.TypeOf((*DVSUplinkPortPolicy)(nil)).Elem() -} - -func (b *DailyTaskScheduler) GetDailyTaskScheduler() *DailyTaskScheduler { return b } - -type BaseDailyTaskScheduler interface { - GetDailyTaskScheduler() *DailyTaskScheduler -} - -func init() { - t["BaseDailyTaskScheduler"] = reflect.TypeOf((*DailyTaskScheduler)(nil)).Elem() -} - -func (b *DatacenterEvent) GetDatacenterEvent() *DatacenterEvent { return b } - -type BaseDatacenterEvent interface { - GetDatacenterEvent() *DatacenterEvent -} - -func init() { - t["BaseDatacenterEvent"] = reflect.TypeOf((*DatacenterEvent)(nil)).Elem() -} - -func (b *DatastoreEvent) GetDatastoreEvent() *DatastoreEvent { return b } - -type BaseDatastoreEvent interface { - GetDatastoreEvent() *DatastoreEvent -} - -func init() { - t["BaseDatastoreEvent"] = reflect.TypeOf((*DatastoreEvent)(nil)).Elem() -} - -func (b *DatastoreFileEvent) GetDatastoreFileEvent() *DatastoreFileEvent { return b } - -type BaseDatastoreFileEvent interface { - GetDatastoreFileEvent() *DatastoreFileEvent -} - -func init() { - t["BaseDatastoreFileEvent"] = reflect.TypeOf((*DatastoreFileEvent)(nil)).Elem() -} - -func (b *DatastoreInfo) GetDatastoreInfo() *DatastoreInfo { return b } - -type BaseDatastoreInfo interface { - GetDatastoreInfo() *DatastoreInfo -} - -func init() { - t["BaseDatastoreInfo"] = reflect.TypeOf((*DatastoreInfo)(nil)).Elem() -} - -func (b *DatastoreNotWritableOnHost) GetDatastoreNotWritableOnHost() *DatastoreNotWritableOnHost { - return b -} - -type BaseDatastoreNotWritableOnHost interface { - GetDatastoreNotWritableOnHost() *DatastoreNotWritableOnHost -} - -func init() { - t["BaseDatastoreNotWritableOnHost"] = reflect.TypeOf((*DatastoreNotWritableOnHost)(nil)).Elem() -} - -func (b *Description) GetDescription() *Description { return b } - -type BaseDescription interface { - GetDescription() *Description -} - -func init() { - t["BaseDescription"] = reflect.TypeOf((*Description)(nil)).Elem() -} - -func (b *DeviceBackingNotSupported) GetDeviceBackingNotSupported() *DeviceBackingNotSupported { - return b -} - -type BaseDeviceBackingNotSupported interface { - GetDeviceBackingNotSupported() *DeviceBackingNotSupported -} - -func init() { - t["BaseDeviceBackingNotSupported"] = reflect.TypeOf((*DeviceBackingNotSupported)(nil)).Elem() -} - -func (b *DeviceNotSupported) GetDeviceNotSupported() *DeviceNotSupported { return b } - -type BaseDeviceNotSupported interface { - GetDeviceNotSupported() *DeviceNotSupported -} - -func init() { - t["BaseDeviceNotSupported"] = reflect.TypeOf((*DeviceNotSupported)(nil)).Elem() -} - -func (b *DiskNotSupported) GetDiskNotSupported() *DiskNotSupported { return b } - -type BaseDiskNotSupported interface { - GetDiskNotSupported() *DiskNotSupported -} - -func init() { - t["BaseDiskNotSupported"] = reflect.TypeOf((*DiskNotSupported)(nil)).Elem() -} - -func (b *DistributedVirtualSwitchHostMemberBacking) GetDistributedVirtualSwitchHostMemberBacking() *DistributedVirtualSwitchHostMemberBacking { - return b -} - -type BaseDistributedVirtualSwitchHostMemberBacking interface { - GetDistributedVirtualSwitchHostMemberBacking() *DistributedVirtualSwitchHostMemberBacking -} - -func init() { - t["BaseDistributedVirtualSwitchHostMemberBacking"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberBacking)(nil)).Elem() -} - -func (b *DistributedVirtualSwitchManagerHostDvsFilterSpec) GetDistributedVirtualSwitchManagerHostDvsFilterSpec() *DistributedVirtualSwitchManagerHostDvsFilterSpec { - return b -} - -type BaseDistributedVirtualSwitchManagerHostDvsFilterSpec interface { - GetDistributedVirtualSwitchManagerHostDvsFilterSpec() *DistributedVirtualSwitchManagerHostDvsFilterSpec -} - -func init() { - t["BaseDistributedVirtualSwitchManagerHostDvsFilterSpec"] = reflect.TypeOf((*DistributedVirtualSwitchManagerHostDvsFilterSpec)(nil)).Elem() -} - -func (b *DvsEvent) GetDvsEvent() *DvsEvent { return b } - -type BaseDvsEvent interface { - GetDvsEvent() *DvsEvent -} - -func init() { - t["BaseDvsEvent"] = reflect.TypeOf((*DvsEvent)(nil)).Elem() -} - -func (b *DvsFault) GetDvsFault() *DvsFault { return b } - -type BaseDvsFault interface { - GetDvsFault() *DvsFault -} - -func init() { - t["BaseDvsFault"] = reflect.TypeOf((*DvsFault)(nil)).Elem() -} - -func (b *DvsFilterConfig) GetDvsFilterConfig() *DvsFilterConfig { return b } - -type BaseDvsFilterConfig interface { - GetDvsFilterConfig() *DvsFilterConfig -} - -func init() { - t["BaseDvsFilterConfig"] = reflect.TypeOf((*DvsFilterConfig)(nil)).Elem() -} - -func (b *DvsHealthStatusChangeEvent) GetDvsHealthStatusChangeEvent() *DvsHealthStatusChangeEvent { - return b -} - -type BaseDvsHealthStatusChangeEvent interface { - GetDvsHealthStatusChangeEvent() *DvsHealthStatusChangeEvent -} - -func init() { - t["BaseDvsHealthStatusChangeEvent"] = reflect.TypeOf((*DvsHealthStatusChangeEvent)(nil)).Elem() -} - -func (b *DvsIpPort) GetDvsIpPort() *DvsIpPort { return b } - -type BaseDvsIpPort interface { - GetDvsIpPort() *DvsIpPort -} - -func init() { - t["BaseDvsIpPort"] = reflect.TypeOf((*DvsIpPort)(nil)).Elem() -} - -func (b *DvsNetworkRuleAction) GetDvsNetworkRuleAction() *DvsNetworkRuleAction { return b } - -type BaseDvsNetworkRuleAction interface { - GetDvsNetworkRuleAction() *DvsNetworkRuleAction -} - -func init() { - t["BaseDvsNetworkRuleAction"] = reflect.TypeOf((*DvsNetworkRuleAction)(nil)).Elem() -} - -func (b *DvsNetworkRuleQualifier) GetDvsNetworkRuleQualifier() *DvsNetworkRuleQualifier { return b } - -type BaseDvsNetworkRuleQualifier interface { - GetDvsNetworkRuleQualifier() *DvsNetworkRuleQualifier -} - -func init() { - t["BaseDvsNetworkRuleQualifier"] = reflect.TypeOf((*DvsNetworkRuleQualifier)(nil)).Elem() -} - -func (b *DvsTrafficFilterConfig) GetDvsTrafficFilterConfig() *DvsTrafficFilterConfig { return b } - -type BaseDvsTrafficFilterConfig interface { - GetDvsTrafficFilterConfig() *DvsTrafficFilterConfig -} - -func init() { - t["BaseDvsTrafficFilterConfig"] = reflect.TypeOf((*DvsTrafficFilterConfig)(nil)).Elem() -} - -func (b *DvsVNicProfile) GetDvsVNicProfile() *DvsVNicProfile { return b } - -type BaseDvsVNicProfile interface { - GetDvsVNicProfile() *DvsVNicProfile -} - -func init() { - t["BaseDvsVNicProfile"] = reflect.TypeOf((*DvsVNicProfile)(nil)).Elem() -} - -func (b *DynamicData) GetDynamicData() *DynamicData { return b } - -type BaseDynamicData interface { - GetDynamicData() *DynamicData -} - -func init() { - t["BaseDynamicData"] = reflect.TypeOf((*DynamicData)(nil)).Elem() -} - -func (b *EVCAdmissionFailed) GetEVCAdmissionFailed() *EVCAdmissionFailed { return b } - -type BaseEVCAdmissionFailed interface { - GetEVCAdmissionFailed() *EVCAdmissionFailed -} - -func init() { - t["BaseEVCAdmissionFailed"] = reflect.TypeOf((*EVCAdmissionFailed)(nil)).Elem() -} - -func (b *EVCConfigFault) GetEVCConfigFault() *EVCConfigFault { return b } - -type BaseEVCConfigFault interface { - GetEVCConfigFault() *EVCConfigFault -} - -func init() { - t["BaseEVCConfigFault"] = reflect.TypeOf((*EVCConfigFault)(nil)).Elem() -} - -func (b *ElementDescription) GetElementDescription() *ElementDescription { return b } - -type BaseElementDescription interface { - GetElementDescription() *ElementDescription -} - -func init() { - t["BaseElementDescription"] = reflect.TypeOf((*ElementDescription)(nil)).Elem() -} - -func (b *EnteredStandbyModeEvent) GetEnteredStandbyModeEvent() *EnteredStandbyModeEvent { return b } - -type BaseEnteredStandbyModeEvent interface { - GetEnteredStandbyModeEvent() *EnteredStandbyModeEvent -} - -func init() { - t["BaseEnteredStandbyModeEvent"] = reflect.TypeOf((*EnteredStandbyModeEvent)(nil)).Elem() -} - -func (b *EnteringStandbyModeEvent) GetEnteringStandbyModeEvent() *EnteringStandbyModeEvent { return b } - -type BaseEnteringStandbyModeEvent interface { - GetEnteringStandbyModeEvent() *EnteringStandbyModeEvent -} - -func init() { - t["BaseEnteringStandbyModeEvent"] = reflect.TypeOf((*EnteringStandbyModeEvent)(nil)).Elem() -} - -func (b *EntityEventArgument) GetEntityEventArgument() *EntityEventArgument { return b } - -type BaseEntityEventArgument interface { - GetEntityEventArgument() *EntityEventArgument -} - -func init() { - t["BaseEntityEventArgument"] = reflect.TypeOf((*EntityEventArgument)(nil)).Elem() -} - -func (b *Event) GetEvent() *Event { return b } - -type BaseEvent interface { - GetEvent() *Event -} - -func init() { - t["BaseEvent"] = reflect.TypeOf((*Event)(nil)).Elem() -} - -func (b *EventArgument) GetEventArgument() *EventArgument { return b } - -type BaseEventArgument interface { - GetEventArgument() *EventArgument -} - -func init() { - t["BaseEventArgument"] = reflect.TypeOf((*EventArgument)(nil)).Elem() -} - -func (b *ExitStandbyModeFailedEvent) GetExitStandbyModeFailedEvent() *ExitStandbyModeFailedEvent { - return b -} - -type BaseExitStandbyModeFailedEvent interface { - GetExitStandbyModeFailedEvent() *ExitStandbyModeFailedEvent -} - -func init() { - t["BaseExitStandbyModeFailedEvent"] = reflect.TypeOf((*ExitStandbyModeFailedEvent)(nil)).Elem() -} - -func (b *ExitedStandbyModeEvent) GetExitedStandbyModeEvent() *ExitedStandbyModeEvent { return b } - -type BaseExitedStandbyModeEvent interface { - GetExitedStandbyModeEvent() *ExitedStandbyModeEvent -} - -func init() { - t["BaseExitedStandbyModeEvent"] = reflect.TypeOf((*ExitedStandbyModeEvent)(nil)).Elem() -} - -func (b *ExitingStandbyModeEvent) GetExitingStandbyModeEvent() *ExitingStandbyModeEvent { return b } - -type BaseExitingStandbyModeEvent interface { - GetExitingStandbyModeEvent() *ExitingStandbyModeEvent -} - -func init() { - t["BaseExitingStandbyModeEvent"] = reflect.TypeOf((*ExitingStandbyModeEvent)(nil)).Elem() -} - -func (b *ExpiredFeatureLicense) GetExpiredFeatureLicense() *ExpiredFeatureLicense { return b } - -type BaseExpiredFeatureLicense interface { - GetExpiredFeatureLicense() *ExpiredFeatureLicense -} - -func init() { - t["BaseExpiredFeatureLicense"] = reflect.TypeOf((*ExpiredFeatureLicense)(nil)).Elem() -} - -func (b *FaultToleranceConfigInfo) GetFaultToleranceConfigInfo() *FaultToleranceConfigInfo { return b } - -type BaseFaultToleranceConfigInfo interface { - GetFaultToleranceConfigInfo() *FaultToleranceConfigInfo -} - -func init() { - t["BaseFaultToleranceConfigInfo"] = reflect.TypeOf((*FaultToleranceConfigInfo)(nil)).Elem() -} - -func (b *FcoeFault) GetFcoeFault() *FcoeFault { return b } - -type BaseFcoeFault interface { - GetFcoeFault() *FcoeFault -} - -func init() { - t["BaseFcoeFault"] = reflect.TypeOf((*FcoeFault)(nil)).Elem() -} - -func (b *FileBackedVirtualDiskSpec) GetFileBackedVirtualDiskSpec() *FileBackedVirtualDiskSpec { - return b -} - -type BaseFileBackedVirtualDiskSpec interface { - GetFileBackedVirtualDiskSpec() *FileBackedVirtualDiskSpec -} - -func init() { - t["BaseFileBackedVirtualDiskSpec"] = reflect.TypeOf((*FileBackedVirtualDiskSpec)(nil)).Elem() -} - -func (b *FileFault) GetFileFault() *FileFault { return b } - -type BaseFileFault interface { - GetFileFault() *FileFault -} - -func init() { - t["BaseFileFault"] = reflect.TypeOf((*FileFault)(nil)).Elem() -} - -func (b *FileInfo) GetFileInfo() *FileInfo { return b } - -type BaseFileInfo interface { - GetFileInfo() *FileInfo -} - -func init() { - t["BaseFileInfo"] = reflect.TypeOf((*FileInfo)(nil)).Elem() -} - -func (b *FileQuery) GetFileQuery() *FileQuery { return b } - -type BaseFileQuery interface { - GetFileQuery() *FileQuery -} - -func init() { - t["BaseFileQuery"] = reflect.TypeOf((*FileQuery)(nil)).Elem() -} - -func (b *GatewayConnectFault) GetGatewayConnectFault() *GatewayConnectFault { return b } - -type BaseGatewayConnectFault interface { - GetGatewayConnectFault() *GatewayConnectFault -} - -func init() { - t["BaseGatewayConnectFault"] = reflect.TypeOf((*GatewayConnectFault)(nil)).Elem() -} - -func (b *GatewayToHostConnectFault) GetGatewayToHostConnectFault() *GatewayToHostConnectFault { - return b -} - -type BaseGatewayToHostConnectFault interface { - GetGatewayToHostConnectFault() *GatewayToHostConnectFault -} - -func init() { - t["BaseGatewayToHostConnectFault"] = reflect.TypeOf((*GatewayToHostConnectFault)(nil)).Elem() -} - -func (b *GeneralEvent) GetGeneralEvent() *GeneralEvent { return b } - -type BaseGeneralEvent interface { - GetGeneralEvent() *GeneralEvent -} - -func init() { - t["BaseGeneralEvent"] = reflect.TypeOf((*GeneralEvent)(nil)).Elem() -} - -func (b *GuestAuthSubject) GetGuestAuthSubject() *GuestAuthSubject { return b } - -type BaseGuestAuthSubject interface { - GetGuestAuthSubject() *GuestAuthSubject -} - -func init() { - t["BaseGuestAuthSubject"] = reflect.TypeOf((*GuestAuthSubject)(nil)).Elem() -} - -func (b *GuestAuthentication) GetGuestAuthentication() *GuestAuthentication { return b } - -type BaseGuestAuthentication interface { - GetGuestAuthentication() *GuestAuthentication -} - -func init() { - t["BaseGuestAuthentication"] = reflect.TypeOf((*GuestAuthentication)(nil)).Elem() -} - -func (b *GuestFileAttributes) GetGuestFileAttributes() *GuestFileAttributes { return b } - -type BaseGuestFileAttributes interface { - GetGuestFileAttributes() *GuestFileAttributes -} - -func init() { - t["BaseGuestFileAttributes"] = reflect.TypeOf((*GuestFileAttributes)(nil)).Elem() -} - -func (b *GuestOperationsFault) GetGuestOperationsFault() *GuestOperationsFault { return b } - -type BaseGuestOperationsFault interface { - GetGuestOperationsFault() *GuestOperationsFault -} - -func init() { - t["BaseGuestOperationsFault"] = reflect.TypeOf((*GuestOperationsFault)(nil)).Elem() -} - -func (b *GuestProgramSpec) GetGuestProgramSpec() *GuestProgramSpec { return b } - -type BaseGuestProgramSpec interface { - GetGuestProgramSpec() *GuestProgramSpec -} - -func init() { - t["BaseGuestProgramSpec"] = reflect.TypeOf((*GuestProgramSpec)(nil)).Elem() -} - -func (b *GuestRegValueDataSpec) GetGuestRegValueDataSpec() *GuestRegValueDataSpec { return b } - -type BaseGuestRegValueDataSpec interface { - GetGuestRegValueDataSpec() *GuestRegValueDataSpec -} - -func init() { - t["BaseGuestRegValueDataSpec"] = reflect.TypeOf((*GuestRegValueDataSpec)(nil)).Elem() -} - -func (b *GuestRegistryFault) GetGuestRegistryFault() *GuestRegistryFault { return b } - -type BaseGuestRegistryFault interface { - GetGuestRegistryFault() *GuestRegistryFault -} - -func init() { - t["BaseGuestRegistryFault"] = reflect.TypeOf((*GuestRegistryFault)(nil)).Elem() -} - -func (b *GuestRegistryKeyFault) GetGuestRegistryKeyFault() *GuestRegistryKeyFault { return b } - -type BaseGuestRegistryKeyFault interface { - GetGuestRegistryKeyFault() *GuestRegistryKeyFault -} - -func init() { - t["BaseGuestRegistryKeyFault"] = reflect.TypeOf((*GuestRegistryKeyFault)(nil)).Elem() -} - -func (b *GuestRegistryValueFault) GetGuestRegistryValueFault() *GuestRegistryValueFault { return b } - -type BaseGuestRegistryValueFault interface { - GetGuestRegistryValueFault() *GuestRegistryValueFault -} - -func init() { - t["BaseGuestRegistryValueFault"] = reflect.TypeOf((*GuestRegistryValueFault)(nil)).Elem() -} - -func (b *HostAccountSpec) GetHostAccountSpec() *HostAccountSpec { return b } - -type BaseHostAccountSpec interface { - GetHostAccountSpec() *HostAccountSpec -} - -func init() { - t["BaseHostAccountSpec"] = reflect.TypeOf((*HostAccountSpec)(nil)).Elem() -} - -func (b *HostAuthenticationStoreInfo) GetHostAuthenticationStoreInfo() *HostAuthenticationStoreInfo { - return b -} - -type BaseHostAuthenticationStoreInfo interface { - GetHostAuthenticationStoreInfo() *HostAuthenticationStoreInfo -} - -func init() { - t["BaseHostAuthenticationStoreInfo"] = reflect.TypeOf((*HostAuthenticationStoreInfo)(nil)).Elem() -} - -func (b *HostCommunication) GetHostCommunication() *HostCommunication { return b } - -type BaseHostCommunication interface { - GetHostCommunication() *HostCommunication -} - -func init() { - t["BaseHostCommunication"] = reflect.TypeOf((*HostCommunication)(nil)).Elem() -} - -func (b *HostConfigFault) GetHostConfigFault() *HostConfigFault { return b } - -type BaseHostConfigFault interface { - GetHostConfigFault() *HostConfigFault -} - -func init() { - t["BaseHostConfigFault"] = reflect.TypeOf((*HostConfigFault)(nil)).Elem() -} - -func (b *HostConnectFault) GetHostConnectFault() *HostConnectFault { return b } - -type BaseHostConnectFault interface { - GetHostConnectFault() *HostConnectFault -} - -func init() { - t["BaseHostConnectFault"] = reflect.TypeOf((*HostConnectFault)(nil)).Elem() -} - -func (b *HostConnectInfoNetworkInfo) GetHostConnectInfoNetworkInfo() *HostConnectInfoNetworkInfo { - return b -} - -type BaseHostConnectInfoNetworkInfo interface { - GetHostConnectInfoNetworkInfo() *HostConnectInfoNetworkInfo -} - -func init() { - t["BaseHostConnectInfoNetworkInfo"] = reflect.TypeOf((*HostConnectInfoNetworkInfo)(nil)).Elem() -} - -func (b *HostDasEvent) GetHostDasEvent() *HostDasEvent { return b } - -type BaseHostDasEvent interface { - GetHostDasEvent() *HostDasEvent -} - -func init() { - t["BaseHostDasEvent"] = reflect.TypeOf((*HostDasEvent)(nil)).Elem() -} - -func (b *HostDatastoreConnectInfo) GetHostDatastoreConnectInfo() *HostDatastoreConnectInfo { return b } - -type BaseHostDatastoreConnectInfo interface { - GetHostDatastoreConnectInfo() *HostDatastoreConnectInfo -} - -func init() { - t["BaseHostDatastoreConnectInfo"] = reflect.TypeOf((*HostDatastoreConnectInfo)(nil)).Elem() -} - -func (b *HostDevice) GetHostDevice() *HostDevice { return b } - -type BaseHostDevice interface { - GetHostDevice() *HostDevice -} - -func init() { - t["BaseHostDevice"] = reflect.TypeOf((*HostDevice)(nil)).Elem() -} - -func (b *HostDigestInfo) GetHostDigestInfo() *HostDigestInfo { return b } - -type BaseHostDigestInfo interface { - GetHostDigestInfo() *HostDigestInfo -} - -func init() { - t["BaseHostDigestInfo"] = reflect.TypeOf((*HostDigestInfo)(nil)).Elem() -} - -func (b *HostDirectoryStoreInfo) GetHostDirectoryStoreInfo() *HostDirectoryStoreInfo { return b } - -type BaseHostDirectoryStoreInfo interface { - GetHostDirectoryStoreInfo() *HostDirectoryStoreInfo -} - -func init() { - t["BaseHostDirectoryStoreInfo"] = reflect.TypeOf((*HostDirectoryStoreInfo)(nil)).Elem() -} - -func (b *HostDnsConfig) GetHostDnsConfig() *HostDnsConfig { return b } - -type BaseHostDnsConfig interface { - GetHostDnsConfig() *HostDnsConfig -} - -func init() { - t["BaseHostDnsConfig"] = reflect.TypeOf((*HostDnsConfig)(nil)).Elem() -} - -func (b *HostEvent) GetHostEvent() *HostEvent { return b } - -type BaseHostEvent interface { - GetHostEvent() *HostEvent -} - -func init() { - t["BaseHostEvent"] = reflect.TypeOf((*HostEvent)(nil)).Elem() -} - -func (b *HostFibreChannelHba) GetHostFibreChannelHba() *HostFibreChannelHba { return b } - -type BaseHostFibreChannelHba interface { - GetHostFibreChannelHba() *HostFibreChannelHba -} - -func init() { - t["BaseHostFibreChannelHba"] = reflect.TypeOf((*HostFibreChannelHba)(nil)).Elem() -} - -func (b *HostFibreChannelTargetTransport) GetHostFibreChannelTargetTransport() *HostFibreChannelTargetTransport { - return b -} - -type BaseHostFibreChannelTargetTransport interface { - GetHostFibreChannelTargetTransport() *HostFibreChannelTargetTransport -} - -func init() { - t["BaseHostFibreChannelTargetTransport"] = reflect.TypeOf((*HostFibreChannelTargetTransport)(nil)).Elem() -} - -func (b *HostFileSystemVolume) GetHostFileSystemVolume() *HostFileSystemVolume { return b } - -type BaseHostFileSystemVolume interface { - GetHostFileSystemVolume() *HostFileSystemVolume -} - -func init() { - t["BaseHostFileSystemVolume"] = reflect.TypeOf((*HostFileSystemVolume)(nil)).Elem() -} - -func (b *HostHardwareElementInfo) GetHostHardwareElementInfo() *HostHardwareElementInfo { return b } - -type BaseHostHardwareElementInfo interface { - GetHostHardwareElementInfo() *HostHardwareElementInfo -} - -func init() { - t["BaseHostHardwareElementInfo"] = reflect.TypeOf((*HostHardwareElementInfo)(nil)).Elem() -} - -func (b *HostHostBusAdapter) GetHostHostBusAdapter() *HostHostBusAdapter { return b } - -type BaseHostHostBusAdapter interface { - GetHostHostBusAdapter() *HostHostBusAdapter -} - -func init() { - t["BaseHostHostBusAdapter"] = reflect.TypeOf((*HostHostBusAdapter)(nil)).Elem() -} - -func (b *HostIpRouteConfig) GetHostIpRouteConfig() *HostIpRouteConfig { return b } - -type BaseHostIpRouteConfig interface { - GetHostIpRouteConfig() *HostIpRouteConfig -} - -func init() { - t["BaseHostIpRouteConfig"] = reflect.TypeOf((*HostIpRouteConfig)(nil)).Elem() -} - -func (b *HostMemberHealthCheckResult) GetHostMemberHealthCheckResult() *HostMemberHealthCheckResult { - return b -} - -type BaseHostMemberHealthCheckResult interface { - GetHostMemberHealthCheckResult() *HostMemberHealthCheckResult -} - -func init() { - t["BaseHostMemberHealthCheckResult"] = reflect.TypeOf((*HostMemberHealthCheckResult)(nil)).Elem() -} - -func (b *HostMemberUplinkHealthCheckResult) GetHostMemberUplinkHealthCheckResult() *HostMemberUplinkHealthCheckResult { - return b -} - -type BaseHostMemberUplinkHealthCheckResult interface { - GetHostMemberUplinkHealthCheckResult() *HostMemberUplinkHealthCheckResult -} - -func init() { - t["BaseHostMemberUplinkHealthCheckResult"] = reflect.TypeOf((*HostMemberUplinkHealthCheckResult)(nil)).Elem() -} - -func (b *HostMultipathInfoLogicalUnitPolicy) GetHostMultipathInfoLogicalUnitPolicy() *HostMultipathInfoLogicalUnitPolicy { - return b -} - -type BaseHostMultipathInfoLogicalUnitPolicy interface { - GetHostMultipathInfoLogicalUnitPolicy() *HostMultipathInfoLogicalUnitPolicy -} - -func init() { - t["BaseHostMultipathInfoLogicalUnitPolicy"] = reflect.TypeOf((*HostMultipathInfoLogicalUnitPolicy)(nil)).Elem() -} - -func (b *HostPciPassthruConfig) GetHostPciPassthruConfig() *HostPciPassthruConfig { return b } - -type BaseHostPciPassthruConfig interface { - GetHostPciPassthruConfig() *HostPciPassthruConfig -} - -func init() { - t["BaseHostPciPassthruConfig"] = reflect.TypeOf((*HostPciPassthruConfig)(nil)).Elem() -} - -func (b *HostPciPassthruInfo) GetHostPciPassthruInfo() *HostPciPassthruInfo { return b } - -type BaseHostPciPassthruInfo interface { - GetHostPciPassthruInfo() *HostPciPassthruInfo -} - -func init() { - t["BaseHostPciPassthruInfo"] = reflect.TypeOf((*HostPciPassthruInfo)(nil)).Elem() -} - -func (b *HostPowerOpFailed) GetHostPowerOpFailed() *HostPowerOpFailed { return b } - -type BaseHostPowerOpFailed interface { - GetHostPowerOpFailed() *HostPowerOpFailed -} - -func init() { - t["BaseHostPowerOpFailed"] = reflect.TypeOf((*HostPowerOpFailed)(nil)).Elem() -} - -func (b *HostProfileConfigSpec) GetHostProfileConfigSpec() *HostProfileConfigSpec { return b } - -type BaseHostProfileConfigSpec interface { - GetHostProfileConfigSpec() *HostProfileConfigSpec -} - -func init() { - t["BaseHostProfileConfigSpec"] = reflect.TypeOf((*HostProfileConfigSpec)(nil)).Elem() -} - -func (b *HostProfilesEntityCustomizations) GetHostProfilesEntityCustomizations() *HostProfilesEntityCustomizations { - return b -} - -type BaseHostProfilesEntityCustomizations interface { - GetHostProfilesEntityCustomizations() *HostProfilesEntityCustomizations -} - -func init() { - t["BaseHostProfilesEntityCustomizations"] = reflect.TypeOf((*HostProfilesEntityCustomizations)(nil)).Elem() -} - -func (b *HostSriovDevicePoolInfo) GetHostSriovDevicePoolInfo() *HostSriovDevicePoolInfo { return b } - -type BaseHostSriovDevicePoolInfo interface { - GetHostSriovDevicePoolInfo() *HostSriovDevicePoolInfo -} - -func init() { - t["BaseHostSriovDevicePoolInfo"] = reflect.TypeOf((*HostSriovDevicePoolInfo)(nil)).Elem() -} - -func (b *HostSystemSwapConfigurationSystemSwapOption) GetHostSystemSwapConfigurationSystemSwapOption() *HostSystemSwapConfigurationSystemSwapOption { - return b -} - -type BaseHostSystemSwapConfigurationSystemSwapOption interface { - GetHostSystemSwapConfigurationSystemSwapOption() *HostSystemSwapConfigurationSystemSwapOption -} - -func init() { - t["BaseHostSystemSwapConfigurationSystemSwapOption"] = reflect.TypeOf((*HostSystemSwapConfigurationSystemSwapOption)(nil)).Elem() -} - -func (b *HostTargetTransport) GetHostTargetTransport() *HostTargetTransport { return b } - -type BaseHostTargetTransport interface { - GetHostTargetTransport() *HostTargetTransport -} - -func init() { - t["BaseHostTargetTransport"] = reflect.TypeOf((*HostTargetTransport)(nil)).Elem() -} - -func (b *HostTpmEventDetails) GetHostTpmEventDetails() *HostTpmEventDetails { return b } - -type BaseHostTpmEventDetails interface { - GetHostTpmEventDetails() *HostTpmEventDetails -} - -func init() { - t["BaseHostTpmEventDetails"] = reflect.TypeOf((*HostTpmEventDetails)(nil)).Elem() -} - -func (b *HostVirtualSwitchBridge) GetHostVirtualSwitchBridge() *HostVirtualSwitchBridge { return b } - -type BaseHostVirtualSwitchBridge interface { - GetHostVirtualSwitchBridge() *HostVirtualSwitchBridge -} - -func init() { - t["BaseHostVirtualSwitchBridge"] = reflect.TypeOf((*HostVirtualSwitchBridge)(nil)).Elem() -} - -func (b *HourlyTaskScheduler) GetHourlyTaskScheduler() *HourlyTaskScheduler { return b } - -type BaseHourlyTaskScheduler interface { - GetHourlyTaskScheduler() *HourlyTaskScheduler -} - -func init() { - t["BaseHourlyTaskScheduler"] = reflect.TypeOf((*HourlyTaskScheduler)(nil)).Elem() -} - -func (b *ImportSpec) GetImportSpec() *ImportSpec { return b } - -type BaseImportSpec interface { - GetImportSpec() *ImportSpec -} - -func init() { - t["BaseImportSpec"] = reflect.TypeOf((*ImportSpec)(nil)).Elem() -} - -func (b *InaccessibleDatastore) GetInaccessibleDatastore() *InaccessibleDatastore { return b } - -type BaseInaccessibleDatastore interface { - GetInaccessibleDatastore() *InaccessibleDatastore -} - -func init() { - t["BaseInaccessibleDatastore"] = reflect.TypeOf((*InaccessibleDatastore)(nil)).Elem() -} - -func (b *InheritablePolicy) GetInheritablePolicy() *InheritablePolicy { return b } - -type BaseInheritablePolicy interface { - GetInheritablePolicy() *InheritablePolicy -} - -func init() { - t["BaseInheritablePolicy"] = reflect.TypeOf((*InheritablePolicy)(nil)).Elem() -} - -func (b *InsufficientHostCapacityFault) GetInsufficientHostCapacityFault() *InsufficientHostCapacityFault { - return b -} - -type BaseInsufficientHostCapacityFault interface { - GetInsufficientHostCapacityFault() *InsufficientHostCapacityFault -} - -func init() { - t["BaseInsufficientHostCapacityFault"] = reflect.TypeOf((*InsufficientHostCapacityFault)(nil)).Elem() -} - -func (b *InsufficientResourcesFault) GetInsufficientResourcesFault() *InsufficientResourcesFault { - return b -} - -type BaseInsufficientResourcesFault interface { - GetInsufficientResourcesFault() *InsufficientResourcesFault -} - -func init() { - t["BaseInsufficientResourcesFault"] = reflect.TypeOf((*InsufficientResourcesFault)(nil)).Elem() -} - -func (b *InsufficientStandbyResource) GetInsufficientStandbyResource() *InsufficientStandbyResource { - return b -} - -type BaseInsufficientStandbyResource interface { - GetInsufficientStandbyResource() *InsufficientStandbyResource -} - -func init() { - t["BaseInsufficientStandbyResource"] = reflect.TypeOf((*InsufficientStandbyResource)(nil)).Elem() -} - -func (b *InvalidArgument) GetInvalidArgument() *InvalidArgument { return b } - -type BaseInvalidArgument interface { - GetInvalidArgument() *InvalidArgument -} - -func init() { - t["BaseInvalidArgument"] = reflect.TypeOf((*InvalidArgument)(nil)).Elem() -} - -func (b *InvalidCAMServer) GetInvalidCAMServer() *InvalidCAMServer { return b } - -type BaseInvalidCAMServer interface { - GetInvalidCAMServer() *InvalidCAMServer -} - -func init() { - t["BaseInvalidCAMServer"] = reflect.TypeOf((*InvalidCAMServer)(nil)).Elem() -} - -func (b *InvalidDatastore) GetInvalidDatastore() *InvalidDatastore { return b } - -type BaseInvalidDatastore interface { - GetInvalidDatastore() *InvalidDatastore -} - -func init() { - t["BaseInvalidDatastore"] = reflect.TypeOf((*InvalidDatastore)(nil)).Elem() -} - -func (b *InvalidDeviceSpec) GetInvalidDeviceSpec() *InvalidDeviceSpec { return b } - -type BaseInvalidDeviceSpec interface { - GetInvalidDeviceSpec() *InvalidDeviceSpec -} - -func init() { - t["BaseInvalidDeviceSpec"] = reflect.TypeOf((*InvalidDeviceSpec)(nil)).Elem() -} - -func (b *InvalidFolder) GetInvalidFolder() *InvalidFolder { return b } - -type BaseInvalidFolder interface { - GetInvalidFolder() *InvalidFolder -} - -func init() { - t["BaseInvalidFolder"] = reflect.TypeOf((*InvalidFolder)(nil)).Elem() -} - -func (b *InvalidFormat) GetInvalidFormat() *InvalidFormat { return b } - -type BaseInvalidFormat interface { - GetInvalidFormat() *InvalidFormat -} - -func init() { - t["BaseInvalidFormat"] = reflect.TypeOf((*InvalidFormat)(nil)).Elem() -} - -func (b *InvalidHostState) GetInvalidHostState() *InvalidHostState { return b } - -type BaseInvalidHostState interface { - GetInvalidHostState() *InvalidHostState -} - -func init() { - t["BaseInvalidHostState"] = reflect.TypeOf((*InvalidHostState)(nil)).Elem() -} - -func (b *InvalidLogin) GetInvalidLogin() *InvalidLogin { return b } - -type BaseInvalidLogin interface { - GetInvalidLogin() *InvalidLogin -} - -func init() { - t["BaseInvalidLogin"] = reflect.TypeOf((*InvalidLogin)(nil)).Elem() -} - -func (b *InvalidPropertyValue) GetInvalidPropertyValue() *InvalidPropertyValue { return b } - -type BaseInvalidPropertyValue interface { - GetInvalidPropertyValue() *InvalidPropertyValue -} - -func init() { - t["BaseInvalidPropertyValue"] = reflect.TypeOf((*InvalidPropertyValue)(nil)).Elem() -} - -func (b *InvalidRequest) GetInvalidRequest() *InvalidRequest { return b } - -type BaseInvalidRequest interface { - GetInvalidRequest() *InvalidRequest -} - -func init() { - t["BaseInvalidRequest"] = reflect.TypeOf((*InvalidRequest)(nil)).Elem() -} - -func (b *InvalidState) GetInvalidState() *InvalidState { return b } - -type BaseInvalidState interface { - GetInvalidState() *InvalidState -} - -func init() { - t["BaseInvalidState"] = reflect.TypeOf((*InvalidState)(nil)).Elem() -} - -func (b *InvalidVmConfig) GetInvalidVmConfig() *InvalidVmConfig { return b } - -type BaseInvalidVmConfig interface { - GetInvalidVmConfig() *InvalidVmConfig -} - -func init() { - t["BaseInvalidVmConfig"] = reflect.TypeOf((*InvalidVmConfig)(nil)).Elem() -} - -func (b *IoFilterInfo) GetIoFilterInfo() *IoFilterInfo { return b } - -type BaseIoFilterInfo interface { - GetIoFilterInfo() *IoFilterInfo -} - -func init() { - t["BaseIoFilterInfo"] = reflect.TypeOf((*IoFilterInfo)(nil)).Elem() -} - -func (b *IpAddress) GetIpAddress() *IpAddress { return b } - -type BaseIpAddress interface { - GetIpAddress() *IpAddress -} - -func init() { - t["BaseIpAddress"] = reflect.TypeOf((*IpAddress)(nil)).Elem() -} - -func (b *IscsiFault) GetIscsiFault() *IscsiFault { return b } - -type BaseIscsiFault interface { - GetIscsiFault() *IscsiFault -} - -func init() { - t["BaseIscsiFault"] = reflect.TypeOf((*IscsiFault)(nil)).Elem() -} - -func (b *LicenseEvent) GetLicenseEvent() *LicenseEvent { return b } - -type BaseLicenseEvent interface { - GetLicenseEvent() *LicenseEvent -} - -func init() { - t["BaseLicenseEvent"] = reflect.TypeOf((*LicenseEvent)(nil)).Elem() -} - -func (b *LicenseSource) GetLicenseSource() *LicenseSource { return b } - -type BaseLicenseSource interface { - GetLicenseSource() *LicenseSource -} - -func init() { - t["BaseLicenseSource"] = reflect.TypeOf((*LicenseSource)(nil)).Elem() -} - -func (b *MacAddress) GetMacAddress() *MacAddress { return b } - -type BaseMacAddress interface { - GetMacAddress() *MacAddress -} - -func init() { - t["BaseMacAddress"] = reflect.TypeOf((*MacAddress)(nil)).Elem() -} - -func (b *MethodFault) GetMethodFault() *MethodFault { return b } - -type BaseMethodFault interface { - GetMethodFault() *MethodFault -} - -func init() { - t["BaseMethodFault"] = reflect.TypeOf((*MethodFault)(nil)).Elem() -} - -func (b *MigrationEvent) GetMigrationEvent() *MigrationEvent { return b } - -type BaseMigrationEvent interface { - GetMigrationEvent() *MigrationEvent -} - -func init() { - t["BaseMigrationEvent"] = reflect.TypeOf((*MigrationEvent)(nil)).Elem() -} - -func (b *MigrationFault) GetMigrationFault() *MigrationFault { return b } - -type BaseMigrationFault interface { - GetMigrationFault() *MigrationFault -} - -func init() { - t["BaseMigrationFault"] = reflect.TypeOf((*MigrationFault)(nil)).Elem() -} - -func (b *MigrationFeatureNotSupported) GetMigrationFeatureNotSupported() *MigrationFeatureNotSupported { - return b -} - -type BaseMigrationFeatureNotSupported interface { - GetMigrationFeatureNotSupported() *MigrationFeatureNotSupported -} - -func init() { - t["BaseMigrationFeatureNotSupported"] = reflect.TypeOf((*MigrationFeatureNotSupported)(nil)).Elem() -} - -func (b *MonthlyTaskScheduler) GetMonthlyTaskScheduler() *MonthlyTaskScheduler { return b } - -type BaseMonthlyTaskScheduler interface { - GetMonthlyTaskScheduler() *MonthlyTaskScheduler -} - -func init() { - t["BaseMonthlyTaskScheduler"] = reflect.TypeOf((*MonthlyTaskScheduler)(nil)).Elem() -} - -func (b *NasConfigFault) GetNasConfigFault() *NasConfigFault { return b } - -type BaseNasConfigFault interface { - GetNasConfigFault() *NasConfigFault -} - -func init() { - t["BaseNasConfigFault"] = reflect.TypeOf((*NasConfigFault)(nil)).Elem() -} - -func (b *NegatableExpression) GetNegatableExpression() *NegatableExpression { return b } - -type BaseNegatableExpression interface { - GetNegatableExpression() *NegatableExpression -} - -func init() { - t["BaseNegatableExpression"] = reflect.TypeOf((*NegatableExpression)(nil)).Elem() -} - -func (b *NetBIOSConfigInfo) GetNetBIOSConfigInfo() *NetBIOSConfigInfo { return b } - -type BaseNetBIOSConfigInfo interface { - GetNetBIOSConfigInfo() *NetBIOSConfigInfo -} - -func init() { - t["BaseNetBIOSConfigInfo"] = reflect.TypeOf((*NetBIOSConfigInfo)(nil)).Elem() -} - -func (b *NetworkSummary) GetNetworkSummary() *NetworkSummary { return b } - -type BaseNetworkSummary interface { - GetNetworkSummary() *NetworkSummary -} - -func init() { - t["BaseNetworkSummary"] = reflect.TypeOf((*NetworkSummary)(nil)).Elem() -} - -func (b *NoCompatibleHost) GetNoCompatibleHost() *NoCompatibleHost { return b } - -type BaseNoCompatibleHost interface { - GetNoCompatibleHost() *NoCompatibleHost -} - -func init() { - t["BaseNoCompatibleHost"] = reflect.TypeOf((*NoCompatibleHost)(nil)).Elem() -} - -func (b *NoPermission) GetNoPermission() *NoPermission { return b } - -type BaseNoPermission interface { - GetNoPermission() *NoPermission -} - -func init() { - t["BaseNoPermission"] = reflect.TypeOf((*NoPermission)(nil)).Elem() -} - -func (b *NodeDeploymentSpec) GetNodeDeploymentSpec() *NodeDeploymentSpec { return b } - -type BaseNodeDeploymentSpec interface { - GetNodeDeploymentSpec() *NodeDeploymentSpec -} - -func init() { - t["BaseNodeDeploymentSpec"] = reflect.TypeOf((*NodeDeploymentSpec)(nil)).Elem() -} - -func (b *NodeNetworkSpec) GetNodeNetworkSpec() *NodeNetworkSpec { return b } - -type BaseNodeNetworkSpec interface { - GetNodeNetworkSpec() *NodeNetworkSpec -} - -func init() { - t["BaseNodeNetworkSpec"] = reflect.TypeOf((*NodeNetworkSpec)(nil)).Elem() -} - -func (b *NotEnoughCpus) GetNotEnoughCpus() *NotEnoughCpus { return b } - -type BaseNotEnoughCpus interface { - GetNotEnoughCpus() *NotEnoughCpus -} - -func init() { - t["BaseNotEnoughCpus"] = reflect.TypeOf((*NotEnoughCpus)(nil)).Elem() -} - -func (b *NotEnoughLicenses) GetNotEnoughLicenses() *NotEnoughLicenses { return b } - -type BaseNotEnoughLicenses interface { - GetNotEnoughLicenses() *NotEnoughLicenses -} - -func init() { - t["BaseNotEnoughLicenses"] = reflect.TypeOf((*NotEnoughLicenses)(nil)).Elem() -} - -func (b *NotSupported) GetNotSupported() *NotSupported { return b } - -type BaseNotSupported interface { - GetNotSupported() *NotSupported -} - -func init() { - t["BaseNotSupported"] = reflect.TypeOf((*NotSupported)(nil)).Elem() -} - -func (b *NotSupportedHost) GetNotSupportedHost() *NotSupportedHost { return b } - -type BaseNotSupportedHost interface { - GetNotSupportedHost() *NotSupportedHost -} - -func init() { - t["BaseNotSupportedHost"] = reflect.TypeOf((*NotSupportedHost)(nil)).Elem() -} - -func (b *NotSupportedHostInCluster) GetNotSupportedHostInCluster() *NotSupportedHostInCluster { - return b -} - -type BaseNotSupportedHostInCluster interface { - GetNotSupportedHostInCluster() *NotSupportedHostInCluster -} - -func init() { - t["BaseNotSupportedHostInCluster"] = reflect.TypeOf((*NotSupportedHostInCluster)(nil)).Elem() -} - -func (b *OptionType) GetOptionType() *OptionType { return b } - -type BaseOptionType interface { - GetOptionType() *OptionType -} - -func init() { - t["BaseOptionType"] = reflect.TypeOf((*OptionType)(nil)).Elem() -} - -func (b *OptionValue) GetOptionValue() *OptionValue { return b } - -type BaseOptionValue interface { - GetOptionValue() *OptionValue -} - -func init() { - t["BaseOptionValue"] = reflect.TypeOf((*OptionValue)(nil)).Elem() -} - -func (b *OvfAttribute) GetOvfAttribute() *OvfAttribute { return b } - -type BaseOvfAttribute interface { - GetOvfAttribute() *OvfAttribute -} - -func init() { - t["BaseOvfAttribute"] = reflect.TypeOf((*OvfAttribute)(nil)).Elem() -} - -func (b *OvfConnectedDevice) GetOvfConnectedDevice() *OvfConnectedDevice { return b } - -type BaseOvfConnectedDevice interface { - GetOvfConnectedDevice() *OvfConnectedDevice -} - -func init() { - t["BaseOvfConnectedDevice"] = reflect.TypeOf((*OvfConnectedDevice)(nil)).Elem() -} - -func (b *OvfConstraint) GetOvfConstraint() *OvfConstraint { return b } - -type BaseOvfConstraint interface { - GetOvfConstraint() *OvfConstraint -} - -func init() { - t["BaseOvfConstraint"] = reflect.TypeOf((*OvfConstraint)(nil)).Elem() -} - -func (b *OvfConsumerCallbackFault) GetOvfConsumerCallbackFault() *OvfConsumerCallbackFault { return b } - -type BaseOvfConsumerCallbackFault interface { - GetOvfConsumerCallbackFault() *OvfConsumerCallbackFault -} - -func init() { - t["BaseOvfConsumerCallbackFault"] = reflect.TypeOf((*OvfConsumerCallbackFault)(nil)).Elem() -} - -func (b *OvfElement) GetOvfElement() *OvfElement { return b } - -type BaseOvfElement interface { - GetOvfElement() *OvfElement -} - -func init() { - t["BaseOvfElement"] = reflect.TypeOf((*OvfElement)(nil)).Elem() -} - -func (b *OvfExport) GetOvfExport() *OvfExport { return b } - -type BaseOvfExport interface { - GetOvfExport() *OvfExport -} - -func init() { - t["BaseOvfExport"] = reflect.TypeOf((*OvfExport)(nil)).Elem() -} - -func (b *OvfFault) GetOvfFault() *OvfFault { return b } - -type BaseOvfFault interface { - GetOvfFault() *OvfFault -} - -func init() { - t["BaseOvfFault"] = reflect.TypeOf((*OvfFault)(nil)).Elem() -} - -func (b *OvfHardwareExport) GetOvfHardwareExport() *OvfHardwareExport { return b } - -type BaseOvfHardwareExport interface { - GetOvfHardwareExport() *OvfHardwareExport -} - -func init() { - t["BaseOvfHardwareExport"] = reflect.TypeOf((*OvfHardwareExport)(nil)).Elem() -} - -func (b *OvfImport) GetOvfImport() *OvfImport { return b } - -type BaseOvfImport interface { - GetOvfImport() *OvfImport -} - -func init() { - t["BaseOvfImport"] = reflect.TypeOf((*OvfImport)(nil)).Elem() -} - -func (b *OvfInvalidPackage) GetOvfInvalidPackage() *OvfInvalidPackage { return b } - -type BaseOvfInvalidPackage interface { - GetOvfInvalidPackage() *OvfInvalidPackage -} - -func init() { - t["BaseOvfInvalidPackage"] = reflect.TypeOf((*OvfInvalidPackage)(nil)).Elem() -} - -func (b *OvfInvalidValue) GetOvfInvalidValue() *OvfInvalidValue { return b } - -type BaseOvfInvalidValue interface { - GetOvfInvalidValue() *OvfInvalidValue -} - -func init() { - t["BaseOvfInvalidValue"] = reflect.TypeOf((*OvfInvalidValue)(nil)).Elem() -} - -func (b *OvfManagerCommonParams) GetOvfManagerCommonParams() *OvfManagerCommonParams { return b } - -type BaseOvfManagerCommonParams interface { - GetOvfManagerCommonParams() *OvfManagerCommonParams -} - -func init() { - t["BaseOvfManagerCommonParams"] = reflect.TypeOf((*OvfManagerCommonParams)(nil)).Elem() -} - -func (b *OvfMissingElement) GetOvfMissingElement() *OvfMissingElement { return b } - -type BaseOvfMissingElement interface { - GetOvfMissingElement() *OvfMissingElement -} - -func init() { - t["BaseOvfMissingElement"] = reflect.TypeOf((*OvfMissingElement)(nil)).Elem() -} - -func (b *OvfProperty) GetOvfProperty() *OvfProperty { return b } - -type BaseOvfProperty interface { - GetOvfProperty() *OvfProperty -} - -func init() { - t["BaseOvfProperty"] = reflect.TypeOf((*OvfProperty)(nil)).Elem() -} - -func (b *OvfSystemFault) GetOvfSystemFault() *OvfSystemFault { return b } - -type BaseOvfSystemFault interface { - GetOvfSystemFault() *OvfSystemFault -} - -func init() { - t["BaseOvfSystemFault"] = reflect.TypeOf((*OvfSystemFault)(nil)).Elem() -} - -func (b *OvfUnsupportedAttribute) GetOvfUnsupportedAttribute() *OvfUnsupportedAttribute { return b } - -type BaseOvfUnsupportedAttribute interface { - GetOvfUnsupportedAttribute() *OvfUnsupportedAttribute -} - -func init() { - t["BaseOvfUnsupportedAttribute"] = reflect.TypeOf((*OvfUnsupportedAttribute)(nil)).Elem() -} - -func (b *OvfUnsupportedElement) GetOvfUnsupportedElement() *OvfUnsupportedElement { return b } - -type BaseOvfUnsupportedElement interface { - GetOvfUnsupportedElement() *OvfUnsupportedElement -} - -func init() { - t["BaseOvfUnsupportedElement"] = reflect.TypeOf((*OvfUnsupportedElement)(nil)).Elem() -} - -func (b *OvfUnsupportedPackage) GetOvfUnsupportedPackage() *OvfUnsupportedPackage { return b } - -type BaseOvfUnsupportedPackage interface { - GetOvfUnsupportedPackage() *OvfUnsupportedPackage -} - -func init() { - t["BaseOvfUnsupportedPackage"] = reflect.TypeOf((*OvfUnsupportedPackage)(nil)).Elem() -} - -func (b *PatchMetadataInvalid) GetPatchMetadataInvalid() *PatchMetadataInvalid { return b } - -type BasePatchMetadataInvalid interface { - GetPatchMetadataInvalid() *PatchMetadataInvalid -} - -func init() { - t["BasePatchMetadataInvalid"] = reflect.TypeOf((*PatchMetadataInvalid)(nil)).Elem() -} - -func (b *PatchNotApplicable) GetPatchNotApplicable() *PatchNotApplicable { return b } - -type BasePatchNotApplicable interface { - GetPatchNotApplicable() *PatchNotApplicable -} - -func init() { - t["BasePatchNotApplicable"] = reflect.TypeOf((*PatchNotApplicable)(nil)).Elem() -} - -func (b *PerfEntityMetricBase) GetPerfEntityMetricBase() *PerfEntityMetricBase { return b } - -type BasePerfEntityMetricBase interface { - GetPerfEntityMetricBase() *PerfEntityMetricBase -} - -func init() { - t["BasePerfEntityMetricBase"] = reflect.TypeOf((*PerfEntityMetricBase)(nil)).Elem() -} - -func (b *PerfMetricSeries) GetPerfMetricSeries() *PerfMetricSeries { return b } - -type BasePerfMetricSeries interface { - GetPerfMetricSeries() *PerfMetricSeries -} - -func init() { - t["BasePerfMetricSeries"] = reflect.TypeOf((*PerfMetricSeries)(nil)).Elem() -} - -func (b *PermissionEvent) GetPermissionEvent() *PermissionEvent { return b } - -type BasePermissionEvent interface { - GetPermissionEvent() *PermissionEvent -} - -func init() { - t["BasePermissionEvent"] = reflect.TypeOf((*PermissionEvent)(nil)).Elem() -} - -func (b *PhysicalNicHint) GetPhysicalNicHint() *PhysicalNicHint { return b } - -type BasePhysicalNicHint interface { - GetPhysicalNicHint() *PhysicalNicHint -} - -func init() { - t["BasePhysicalNicHint"] = reflect.TypeOf((*PhysicalNicHint)(nil)).Elem() -} - -func (b *PlatformConfigFault) GetPlatformConfigFault() *PlatformConfigFault { return b } - -type BasePlatformConfigFault interface { - GetPlatformConfigFault() *PlatformConfigFault -} - -func init() { - t["BasePlatformConfigFault"] = reflect.TypeOf((*PlatformConfigFault)(nil)).Elem() -} - -func (b *PolicyOption) GetPolicyOption() *PolicyOption { return b } - -type BasePolicyOption interface { - GetPolicyOption() *PolicyOption -} - -func init() { - t["BasePolicyOption"] = reflect.TypeOf((*PolicyOption)(nil)).Elem() -} - -func (b *PortGroupProfile) GetPortGroupProfile() *PortGroupProfile { return b } - -type BasePortGroupProfile interface { - GetPortGroupProfile() *PortGroupProfile -} - -func init() { - t["BasePortGroupProfile"] = reflect.TypeOf((*PortGroupProfile)(nil)).Elem() -} - -func (b *ProfileConfigInfo) GetProfileConfigInfo() *ProfileConfigInfo { return b } - -type BaseProfileConfigInfo interface { - GetProfileConfigInfo() *ProfileConfigInfo -} - -func init() { - t["BaseProfileConfigInfo"] = reflect.TypeOf((*ProfileConfigInfo)(nil)).Elem() -} - -func (b *ProfileCreateSpec) GetProfileCreateSpec() *ProfileCreateSpec { return b } - -type BaseProfileCreateSpec interface { - GetProfileCreateSpec() *ProfileCreateSpec -} - -func init() { - t["BaseProfileCreateSpec"] = reflect.TypeOf((*ProfileCreateSpec)(nil)).Elem() -} - -func (b *ProfileEvent) GetProfileEvent() *ProfileEvent { return b } - -type BaseProfileEvent interface { - GetProfileEvent() *ProfileEvent -} - -func init() { - t["BaseProfileEvent"] = reflect.TypeOf((*ProfileEvent)(nil)).Elem() -} - -func (b *ProfileExecuteResult) GetProfileExecuteResult() *ProfileExecuteResult { return b } - -type BaseProfileExecuteResult interface { - GetProfileExecuteResult() *ProfileExecuteResult -} - -func init() { - t["BaseProfileExecuteResult"] = reflect.TypeOf((*ProfileExecuteResult)(nil)).Elem() -} - -func (b *ProfileExpression) GetProfileExpression() *ProfileExpression { return b } - -type BaseProfileExpression interface { - GetProfileExpression() *ProfileExpression -} - -func init() { - t["BaseProfileExpression"] = reflect.TypeOf((*ProfileExpression)(nil)).Elem() -} - -func (b *ProfilePolicyOptionMetadata) GetProfilePolicyOptionMetadata() *ProfilePolicyOptionMetadata { - return b -} - -type BaseProfilePolicyOptionMetadata interface { - GetProfilePolicyOptionMetadata() *ProfilePolicyOptionMetadata -} - -func init() { - t["BaseProfilePolicyOptionMetadata"] = reflect.TypeOf((*ProfilePolicyOptionMetadata)(nil)).Elem() -} - -func (b *ProfileSerializedCreateSpec) GetProfileSerializedCreateSpec() *ProfileSerializedCreateSpec { - return b -} - -type BaseProfileSerializedCreateSpec interface { - GetProfileSerializedCreateSpec() *ProfileSerializedCreateSpec -} - -func init() { - t["BaseProfileSerializedCreateSpec"] = reflect.TypeOf((*ProfileSerializedCreateSpec)(nil)).Elem() -} - -func (b *RDMNotSupported) GetRDMNotSupported() *RDMNotSupported { return b } - -type BaseRDMNotSupported interface { - GetRDMNotSupported() *RDMNotSupported -} - -func init() { - t["BaseRDMNotSupported"] = reflect.TypeOf((*RDMNotSupported)(nil)).Elem() -} - -func (b *RecurrentTaskScheduler) GetRecurrentTaskScheduler() *RecurrentTaskScheduler { return b } - -type BaseRecurrentTaskScheduler interface { - GetRecurrentTaskScheduler() *RecurrentTaskScheduler -} - -func init() { - t["BaseRecurrentTaskScheduler"] = reflect.TypeOf((*RecurrentTaskScheduler)(nil)).Elem() -} - -func (b *ReplicationConfigFault) GetReplicationConfigFault() *ReplicationConfigFault { return b } - -type BaseReplicationConfigFault interface { - GetReplicationConfigFault() *ReplicationConfigFault -} - -func init() { - t["BaseReplicationConfigFault"] = reflect.TypeOf((*ReplicationConfigFault)(nil)).Elem() -} - -func (b *ReplicationFault) GetReplicationFault() *ReplicationFault { return b } - -type BaseReplicationFault interface { - GetReplicationFault() *ReplicationFault -} - -func init() { - t["BaseReplicationFault"] = reflect.TypeOf((*ReplicationFault)(nil)).Elem() -} - -func (b *ReplicationVmFault) GetReplicationVmFault() *ReplicationVmFault { return b } - -type BaseReplicationVmFault interface { - GetReplicationVmFault() *ReplicationVmFault -} - -func init() { - t["BaseReplicationVmFault"] = reflect.TypeOf((*ReplicationVmFault)(nil)).Elem() -} - -func (b *ResourceAllocationInfo) GetResourceAllocationInfo() *ResourceAllocationInfo { return b } - -type BaseResourceAllocationInfo interface { - GetResourceAllocationInfo() *ResourceAllocationInfo -} - -func init() { - t["BaseResourceAllocationInfo"] = reflect.TypeOf((*ResourceAllocationInfo)(nil)).Elem() -} - -func (b *ResourceInUse) GetResourceInUse() *ResourceInUse { return b } - -type BaseResourceInUse interface { - GetResourceInUse() *ResourceInUse -} - -func init() { - t["BaseResourceInUse"] = reflect.TypeOf((*ResourceInUse)(nil)).Elem() -} - -func (b *ResourcePoolEvent) GetResourcePoolEvent() *ResourcePoolEvent { return b } - -type BaseResourcePoolEvent interface { - GetResourcePoolEvent() *ResourcePoolEvent -} - -func init() { - t["BaseResourcePoolEvent"] = reflect.TypeOf((*ResourcePoolEvent)(nil)).Elem() -} - -func (b *ResourcePoolSummary) GetResourcePoolSummary() *ResourcePoolSummary { return b } - -type BaseResourcePoolSummary interface { - GetResourcePoolSummary() *ResourcePoolSummary -} - -func init() { - t["BaseResourcePoolSummary"] = reflect.TypeOf((*ResourcePoolSummary)(nil)).Elem() -} - -func (b *RoleEvent) GetRoleEvent() *RoleEvent { return b } - -type BaseRoleEvent interface { - GetRoleEvent() *RoleEvent -} - -func init() { - t["BaseRoleEvent"] = reflect.TypeOf((*RoleEvent)(nil)).Elem() -} - -func (b *RuntimeFault) GetRuntimeFault() *RuntimeFault { return b } - -type BaseRuntimeFault interface { - GetRuntimeFault() *RuntimeFault -} - -func init() { - t["BaseRuntimeFault"] = reflect.TypeOf((*RuntimeFault)(nil)).Elem() -} - -func (b *ScheduledTaskEvent) GetScheduledTaskEvent() *ScheduledTaskEvent { return b } - -type BaseScheduledTaskEvent interface { - GetScheduledTaskEvent() *ScheduledTaskEvent -} - -func init() { - t["BaseScheduledTaskEvent"] = reflect.TypeOf((*ScheduledTaskEvent)(nil)).Elem() -} - -func (b *ScheduledTaskSpec) GetScheduledTaskSpec() *ScheduledTaskSpec { return b } - -type BaseScheduledTaskSpec interface { - GetScheduledTaskSpec() *ScheduledTaskSpec -} - -func init() { - t["BaseScheduledTaskSpec"] = reflect.TypeOf((*ScheduledTaskSpec)(nil)).Elem() -} - -func (b *ScsiLun) GetScsiLun() *ScsiLun { return b } - -type BaseScsiLun interface { - GetScsiLun() *ScsiLun -} - -func init() { - t["BaseScsiLun"] = reflect.TypeOf((*ScsiLun)(nil)).Elem() -} - -func (b *SecurityError) GetSecurityError() *SecurityError { return b } - -type BaseSecurityError interface { - GetSecurityError() *SecurityError -} - -func init() { - t["BaseSecurityError"] = reflect.TypeOf((*SecurityError)(nil)).Elem() -} - -func (b *SelectionSet) GetSelectionSet() *SelectionSet { return b } - -type BaseSelectionSet interface { - GetSelectionSet() *SelectionSet -} - -func init() { - t["BaseSelectionSet"] = reflect.TypeOf((*SelectionSet)(nil)).Elem() -} - -func (b *SelectionSpec) GetSelectionSpec() *SelectionSpec { return b } - -type BaseSelectionSpec interface { - GetSelectionSpec() *SelectionSpec -} - -func init() { - t["BaseSelectionSpec"] = reflect.TypeOf((*SelectionSpec)(nil)).Elem() -} - -func (b *ServiceLocatorCredential) GetServiceLocatorCredential() *ServiceLocatorCredential { return b } - -type BaseServiceLocatorCredential interface { - GetServiceLocatorCredential() *ServiceLocatorCredential -} - -func init() { - t["BaseServiceLocatorCredential"] = reflect.TypeOf((*ServiceLocatorCredential)(nil)).Elem() -} - -func (b *SessionEvent) GetSessionEvent() *SessionEvent { return b } - -type BaseSessionEvent interface { - GetSessionEvent() *SessionEvent -} - -func init() { - t["BaseSessionEvent"] = reflect.TypeOf((*SessionEvent)(nil)).Elem() -} - -func (b *SessionManagerServiceRequestSpec) GetSessionManagerServiceRequestSpec() *SessionManagerServiceRequestSpec { - return b -} - -type BaseSessionManagerServiceRequestSpec interface { - GetSessionManagerServiceRequestSpec() *SessionManagerServiceRequestSpec -} - -func init() { - t["BaseSessionManagerServiceRequestSpec"] = reflect.TypeOf((*SessionManagerServiceRequestSpec)(nil)).Elem() -} - -func (b *SnapshotCopyNotSupported) GetSnapshotCopyNotSupported() *SnapshotCopyNotSupported { return b } - -type BaseSnapshotCopyNotSupported interface { - GetSnapshotCopyNotSupported() *SnapshotCopyNotSupported -} - -func init() { - t["BaseSnapshotCopyNotSupported"] = reflect.TypeOf((*SnapshotCopyNotSupported)(nil)).Elem() -} - -func (b *SnapshotFault) GetSnapshotFault() *SnapshotFault { return b } - -type BaseSnapshotFault interface { - GetSnapshotFault() *SnapshotFault -} - -func init() { - t["BaseSnapshotFault"] = reflect.TypeOf((*SnapshotFault)(nil)).Elem() -} - -func (b *TaskEvent) GetTaskEvent() *TaskEvent { return b } - -type BaseTaskEvent interface { - GetTaskEvent() *TaskEvent -} - -func init() { - t["BaseTaskEvent"] = reflect.TypeOf((*TaskEvent)(nil)).Elem() -} - -func (b *TaskInProgress) GetTaskInProgress() *TaskInProgress { return b } - -type BaseTaskInProgress interface { - GetTaskInProgress() *TaskInProgress -} - -func init() { - t["BaseTaskInProgress"] = reflect.TypeOf((*TaskInProgress)(nil)).Elem() -} - -func (b *TaskReason) GetTaskReason() *TaskReason { return b } - -type BaseTaskReason interface { - GetTaskReason() *TaskReason -} - -func init() { - t["BaseTaskReason"] = reflect.TypeOf((*TaskReason)(nil)).Elem() -} - -func (b *TaskScheduler) GetTaskScheduler() *TaskScheduler { return b } - -type BaseTaskScheduler interface { - GetTaskScheduler() *TaskScheduler -} - -func init() { - t["BaseTaskScheduler"] = reflect.TypeOf((*TaskScheduler)(nil)).Elem() -} - -func (b *TemplateUpgradeEvent) GetTemplateUpgradeEvent() *TemplateUpgradeEvent { return b } - -type BaseTemplateUpgradeEvent interface { - GetTemplateUpgradeEvent() *TemplateUpgradeEvent -} - -func init() { - t["BaseTemplateUpgradeEvent"] = reflect.TypeOf((*TemplateUpgradeEvent)(nil)).Elem() -} - -func (b *Timedout) GetTimedout() *Timedout { return b } - -type BaseTimedout interface { - GetTimedout() *Timedout -} - -func init() { - t["BaseTimedout"] = reflect.TypeOf((*Timedout)(nil)).Elem() -} - -func (b *TypeDescription) GetTypeDescription() *TypeDescription { return b } - -type BaseTypeDescription interface { - GetTypeDescription() *TypeDescription -} - -func init() { - t["BaseTypeDescription"] = reflect.TypeOf((*TypeDescription)(nil)).Elem() -} - -func (b *UnsupportedDatastore) GetUnsupportedDatastore() *UnsupportedDatastore { return b } - -type BaseUnsupportedDatastore interface { - GetUnsupportedDatastore() *UnsupportedDatastore -} - -func init() { - t["BaseUnsupportedDatastore"] = reflect.TypeOf((*UnsupportedDatastore)(nil)).Elem() -} - -func (b *UpgradeEvent) GetUpgradeEvent() *UpgradeEvent { return b } - -type BaseUpgradeEvent interface { - GetUpgradeEvent() *UpgradeEvent -} - -func init() { - t["BaseUpgradeEvent"] = reflect.TypeOf((*UpgradeEvent)(nil)).Elem() -} - -func (b *UserSearchResult) GetUserSearchResult() *UserSearchResult { return b } - -type BaseUserSearchResult interface { - GetUserSearchResult() *UserSearchResult -} - -func init() { - t["BaseUserSearchResult"] = reflect.TypeOf((*UserSearchResult)(nil)).Elem() -} - -func (b *VAppConfigFault) GetVAppConfigFault() *VAppConfigFault { return b } - -type BaseVAppConfigFault interface { - GetVAppConfigFault() *VAppConfigFault -} - -func init() { - t["BaseVAppConfigFault"] = reflect.TypeOf((*VAppConfigFault)(nil)).Elem() -} - -func (b *VAppPropertyFault) GetVAppPropertyFault() *VAppPropertyFault { return b } - -type BaseVAppPropertyFault interface { - GetVAppPropertyFault() *VAppPropertyFault -} - -func init() { - t["BaseVAppPropertyFault"] = reflect.TypeOf((*VAppPropertyFault)(nil)).Elem() -} - -func (b *VMotionInterfaceIssue) GetVMotionInterfaceIssue() *VMotionInterfaceIssue { return b } - -type BaseVMotionInterfaceIssue interface { - GetVMotionInterfaceIssue() *VMotionInterfaceIssue -} - -func init() { - t["BaseVMotionInterfaceIssue"] = reflect.TypeOf((*VMotionInterfaceIssue)(nil)).Elem() -} - -func (b *VMwareDVSHealthCheckConfig) GetVMwareDVSHealthCheckConfig() *VMwareDVSHealthCheckConfig { - return b -} - -type BaseVMwareDVSHealthCheckConfig interface { - GetVMwareDVSHealthCheckConfig() *VMwareDVSHealthCheckConfig -} - -func init() { - t["BaseVMwareDVSHealthCheckConfig"] = reflect.TypeOf((*VMwareDVSHealthCheckConfig)(nil)).Elem() -} - -func (b *VimFault) GetVimFault() *VimFault { return b } - -type BaseVimFault interface { - GetVimFault() *VimFault -} - -func init() { - t["BaseVimFault"] = reflect.TypeOf((*VimFault)(nil)).Elem() -} - -func (b *VirtualController) GetVirtualController() *VirtualController { return b } - -type BaseVirtualController interface { - GetVirtualController() *VirtualController -} - -func init() { - t["BaseVirtualController"] = reflect.TypeOf((*VirtualController)(nil)).Elem() -} - -func (b *VirtualControllerOption) GetVirtualControllerOption() *VirtualControllerOption { return b } - -type BaseVirtualControllerOption interface { - GetVirtualControllerOption() *VirtualControllerOption -} - -func init() { - t["BaseVirtualControllerOption"] = reflect.TypeOf((*VirtualControllerOption)(nil)).Elem() -} - -func (b *VirtualDevice) GetVirtualDevice() *VirtualDevice { return b } - -type BaseVirtualDevice interface { - GetVirtualDevice() *VirtualDevice -} - -func init() { - t["BaseVirtualDevice"] = reflect.TypeOf((*VirtualDevice)(nil)).Elem() -} - -func (b *VirtualDeviceBackingInfo) GetVirtualDeviceBackingInfo() *VirtualDeviceBackingInfo { return b } - -type BaseVirtualDeviceBackingInfo interface { - GetVirtualDeviceBackingInfo() *VirtualDeviceBackingInfo -} - -func init() { - t["BaseVirtualDeviceBackingInfo"] = reflect.TypeOf((*VirtualDeviceBackingInfo)(nil)).Elem() -} - -func (b *VirtualDeviceBackingOption) GetVirtualDeviceBackingOption() *VirtualDeviceBackingOption { - return b -} - -type BaseVirtualDeviceBackingOption interface { - GetVirtualDeviceBackingOption() *VirtualDeviceBackingOption -} - -func init() { - t["BaseVirtualDeviceBackingOption"] = reflect.TypeOf((*VirtualDeviceBackingOption)(nil)).Elem() -} - -func (b *VirtualDeviceBusSlotInfo) GetVirtualDeviceBusSlotInfo() *VirtualDeviceBusSlotInfo { return b } - -type BaseVirtualDeviceBusSlotInfo interface { - GetVirtualDeviceBusSlotInfo() *VirtualDeviceBusSlotInfo -} - -func init() { - t["BaseVirtualDeviceBusSlotInfo"] = reflect.TypeOf((*VirtualDeviceBusSlotInfo)(nil)).Elem() -} - -func (b *VirtualDeviceConfigSpec) GetVirtualDeviceConfigSpec() *VirtualDeviceConfigSpec { return b } - -type BaseVirtualDeviceConfigSpec interface { - GetVirtualDeviceConfigSpec() *VirtualDeviceConfigSpec -} - -func init() { - t["BaseVirtualDeviceConfigSpec"] = reflect.TypeOf((*VirtualDeviceConfigSpec)(nil)).Elem() -} - -func (b *VirtualDeviceDeviceBackingInfo) GetVirtualDeviceDeviceBackingInfo() *VirtualDeviceDeviceBackingInfo { - return b -} - -type BaseVirtualDeviceDeviceBackingInfo interface { - GetVirtualDeviceDeviceBackingInfo() *VirtualDeviceDeviceBackingInfo -} - -func init() { - t["BaseVirtualDeviceDeviceBackingInfo"] = reflect.TypeOf((*VirtualDeviceDeviceBackingInfo)(nil)).Elem() -} - -func (b *VirtualDeviceDeviceBackingOption) GetVirtualDeviceDeviceBackingOption() *VirtualDeviceDeviceBackingOption { - return b -} - -type BaseVirtualDeviceDeviceBackingOption interface { - GetVirtualDeviceDeviceBackingOption() *VirtualDeviceDeviceBackingOption -} - -func init() { - t["BaseVirtualDeviceDeviceBackingOption"] = reflect.TypeOf((*VirtualDeviceDeviceBackingOption)(nil)).Elem() -} - -func (b *VirtualDeviceFileBackingInfo) GetVirtualDeviceFileBackingInfo() *VirtualDeviceFileBackingInfo { - return b -} - -type BaseVirtualDeviceFileBackingInfo interface { - GetVirtualDeviceFileBackingInfo() *VirtualDeviceFileBackingInfo -} - -func init() { - t["BaseVirtualDeviceFileBackingInfo"] = reflect.TypeOf((*VirtualDeviceFileBackingInfo)(nil)).Elem() -} - -func (b *VirtualDeviceFileBackingOption) GetVirtualDeviceFileBackingOption() *VirtualDeviceFileBackingOption { - return b -} - -type BaseVirtualDeviceFileBackingOption interface { - GetVirtualDeviceFileBackingOption() *VirtualDeviceFileBackingOption -} - -func init() { - t["BaseVirtualDeviceFileBackingOption"] = reflect.TypeOf((*VirtualDeviceFileBackingOption)(nil)).Elem() -} - -func (b *VirtualDeviceOption) GetVirtualDeviceOption() *VirtualDeviceOption { return b } - -type BaseVirtualDeviceOption interface { - GetVirtualDeviceOption() *VirtualDeviceOption -} - -func init() { - t["BaseVirtualDeviceOption"] = reflect.TypeOf((*VirtualDeviceOption)(nil)).Elem() -} - -func (b *VirtualDevicePciBusSlotInfo) GetVirtualDevicePciBusSlotInfo() *VirtualDevicePciBusSlotInfo { - return b -} - -type BaseVirtualDevicePciBusSlotInfo interface { - GetVirtualDevicePciBusSlotInfo() *VirtualDevicePciBusSlotInfo -} - -func init() { - t["BaseVirtualDevicePciBusSlotInfo"] = reflect.TypeOf((*VirtualDevicePciBusSlotInfo)(nil)).Elem() -} - -func (b *VirtualDevicePipeBackingInfo) GetVirtualDevicePipeBackingInfo() *VirtualDevicePipeBackingInfo { - return b -} - -type BaseVirtualDevicePipeBackingInfo interface { - GetVirtualDevicePipeBackingInfo() *VirtualDevicePipeBackingInfo -} - -func init() { - t["BaseVirtualDevicePipeBackingInfo"] = reflect.TypeOf((*VirtualDevicePipeBackingInfo)(nil)).Elem() -} - -func (b *VirtualDevicePipeBackingOption) GetVirtualDevicePipeBackingOption() *VirtualDevicePipeBackingOption { - return b -} - -type BaseVirtualDevicePipeBackingOption interface { - GetVirtualDevicePipeBackingOption() *VirtualDevicePipeBackingOption -} - -func init() { - t["BaseVirtualDevicePipeBackingOption"] = reflect.TypeOf((*VirtualDevicePipeBackingOption)(nil)).Elem() -} - -func (b *VirtualDeviceRemoteDeviceBackingInfo) GetVirtualDeviceRemoteDeviceBackingInfo() *VirtualDeviceRemoteDeviceBackingInfo { - return b -} - -type BaseVirtualDeviceRemoteDeviceBackingInfo interface { - GetVirtualDeviceRemoteDeviceBackingInfo() *VirtualDeviceRemoteDeviceBackingInfo -} - -func init() { - t["BaseVirtualDeviceRemoteDeviceBackingInfo"] = reflect.TypeOf((*VirtualDeviceRemoteDeviceBackingInfo)(nil)).Elem() -} - -func (b *VirtualDeviceRemoteDeviceBackingOption) GetVirtualDeviceRemoteDeviceBackingOption() *VirtualDeviceRemoteDeviceBackingOption { - return b -} - -type BaseVirtualDeviceRemoteDeviceBackingOption interface { - GetVirtualDeviceRemoteDeviceBackingOption() *VirtualDeviceRemoteDeviceBackingOption -} - -func init() { - t["BaseVirtualDeviceRemoteDeviceBackingOption"] = reflect.TypeOf((*VirtualDeviceRemoteDeviceBackingOption)(nil)).Elem() -} - -func (b *VirtualDeviceURIBackingInfo) GetVirtualDeviceURIBackingInfo() *VirtualDeviceURIBackingInfo { - return b -} - -type BaseVirtualDeviceURIBackingInfo interface { - GetVirtualDeviceURIBackingInfo() *VirtualDeviceURIBackingInfo -} - -func init() { - t["BaseVirtualDeviceURIBackingInfo"] = reflect.TypeOf((*VirtualDeviceURIBackingInfo)(nil)).Elem() -} - -func (b *VirtualDeviceURIBackingOption) GetVirtualDeviceURIBackingOption() *VirtualDeviceURIBackingOption { - return b -} - -type BaseVirtualDeviceURIBackingOption interface { - GetVirtualDeviceURIBackingOption() *VirtualDeviceURIBackingOption -} - -func init() { - t["BaseVirtualDeviceURIBackingOption"] = reflect.TypeOf((*VirtualDeviceURIBackingOption)(nil)).Elem() -} - -func (b *VirtualDiskRawDiskVer2BackingInfo) GetVirtualDiskRawDiskVer2BackingInfo() *VirtualDiskRawDiskVer2BackingInfo { - return b -} - -type BaseVirtualDiskRawDiskVer2BackingInfo interface { - GetVirtualDiskRawDiskVer2BackingInfo() *VirtualDiskRawDiskVer2BackingInfo -} - -func init() { - t["BaseVirtualDiskRawDiskVer2BackingInfo"] = reflect.TypeOf((*VirtualDiskRawDiskVer2BackingInfo)(nil)).Elem() -} - -func (b *VirtualDiskRawDiskVer2BackingOption) GetVirtualDiskRawDiskVer2BackingOption() *VirtualDiskRawDiskVer2BackingOption { - return b -} - -type BaseVirtualDiskRawDiskVer2BackingOption interface { - GetVirtualDiskRawDiskVer2BackingOption() *VirtualDiskRawDiskVer2BackingOption -} - -func init() { - t["BaseVirtualDiskRawDiskVer2BackingOption"] = reflect.TypeOf((*VirtualDiskRawDiskVer2BackingOption)(nil)).Elem() -} - -func (b *VirtualDiskSpec) GetVirtualDiskSpec() *VirtualDiskSpec { return b } - -type BaseVirtualDiskSpec interface { - GetVirtualDiskSpec() *VirtualDiskSpec -} - -func init() { - t["BaseVirtualDiskSpec"] = reflect.TypeOf((*VirtualDiskSpec)(nil)).Elem() -} - -func (b *VirtualEthernetCard) GetVirtualEthernetCard() *VirtualEthernetCard { return b } - -type BaseVirtualEthernetCard interface { - GetVirtualEthernetCard() *VirtualEthernetCard -} - -func init() { - t["BaseVirtualEthernetCard"] = reflect.TypeOf((*VirtualEthernetCard)(nil)).Elem() -} - -func (b *VirtualEthernetCardOption) GetVirtualEthernetCardOption() *VirtualEthernetCardOption { - return b -} - -type BaseVirtualEthernetCardOption interface { - GetVirtualEthernetCardOption() *VirtualEthernetCardOption -} - -func init() { - t["BaseVirtualEthernetCardOption"] = reflect.TypeOf((*VirtualEthernetCardOption)(nil)).Elem() -} - -func (b *VirtualHardwareCompatibilityIssue) GetVirtualHardwareCompatibilityIssue() *VirtualHardwareCompatibilityIssue { - return b -} - -type BaseVirtualHardwareCompatibilityIssue interface { - GetVirtualHardwareCompatibilityIssue() *VirtualHardwareCompatibilityIssue -} - -func init() { - t["BaseVirtualHardwareCompatibilityIssue"] = reflect.TypeOf((*VirtualHardwareCompatibilityIssue)(nil)).Elem() -} - -func (b *VirtualMachineBootOptionsBootableDevice) GetVirtualMachineBootOptionsBootableDevice() *VirtualMachineBootOptionsBootableDevice { - return b -} - -type BaseVirtualMachineBootOptionsBootableDevice interface { - GetVirtualMachineBootOptionsBootableDevice() *VirtualMachineBootOptionsBootableDevice -} - -func init() { - t["BaseVirtualMachineBootOptionsBootableDevice"] = reflect.TypeOf((*VirtualMachineBootOptionsBootableDevice)(nil)).Elem() -} - -func (b *VirtualMachineDeviceRuntimeInfoDeviceRuntimeState) GetVirtualMachineDeviceRuntimeInfoDeviceRuntimeState() *VirtualMachineDeviceRuntimeInfoDeviceRuntimeState { - return b -} - -type BaseVirtualMachineDeviceRuntimeInfoDeviceRuntimeState interface { - GetVirtualMachineDeviceRuntimeInfoDeviceRuntimeState() *VirtualMachineDeviceRuntimeInfoDeviceRuntimeState -} - -func init() { - t["BaseVirtualMachineDeviceRuntimeInfoDeviceRuntimeState"] = reflect.TypeOf((*VirtualMachineDeviceRuntimeInfoDeviceRuntimeState)(nil)).Elem() -} - -func (b *VirtualMachineDiskDeviceInfo) GetVirtualMachineDiskDeviceInfo() *VirtualMachineDiskDeviceInfo { - return b -} - -type BaseVirtualMachineDiskDeviceInfo interface { - GetVirtualMachineDiskDeviceInfo() *VirtualMachineDiskDeviceInfo -} - -func init() { - t["BaseVirtualMachineDiskDeviceInfo"] = reflect.TypeOf((*VirtualMachineDiskDeviceInfo)(nil)).Elem() -} - -func (b *VirtualMachineGuestQuiesceSpec) GetVirtualMachineGuestQuiesceSpec() *VirtualMachineGuestQuiesceSpec { - return b -} - -type BaseVirtualMachineGuestQuiesceSpec interface { - GetVirtualMachineGuestQuiesceSpec() *VirtualMachineGuestQuiesceSpec -} - -func init() { - t["BaseVirtualMachineGuestQuiesceSpec"] = reflect.TypeOf((*VirtualMachineGuestQuiesceSpec)(nil)).Elem() -} - -func (b *VirtualMachinePciPassthroughInfo) GetVirtualMachinePciPassthroughInfo() *VirtualMachinePciPassthroughInfo { - return b -} - -type BaseVirtualMachinePciPassthroughInfo interface { - GetVirtualMachinePciPassthroughInfo() *VirtualMachinePciPassthroughInfo -} - -func init() { - t["BaseVirtualMachinePciPassthroughInfo"] = reflect.TypeOf((*VirtualMachinePciPassthroughInfo)(nil)).Elem() -} - -func (b *VirtualMachineProfileSpec) GetVirtualMachineProfileSpec() *VirtualMachineProfileSpec { - return b -} - -type BaseVirtualMachineProfileSpec interface { - GetVirtualMachineProfileSpec() *VirtualMachineProfileSpec -} - -func init() { - t["BaseVirtualMachineProfileSpec"] = reflect.TypeOf((*VirtualMachineProfileSpec)(nil)).Elem() -} - -func (b *VirtualMachineSriovDevicePoolInfo) GetVirtualMachineSriovDevicePoolInfo() *VirtualMachineSriovDevicePoolInfo { - return b -} - -type BaseVirtualMachineSriovDevicePoolInfo interface { - GetVirtualMachineSriovDevicePoolInfo() *VirtualMachineSriovDevicePoolInfo -} - -func init() { - t["BaseVirtualMachineSriovDevicePoolInfo"] = reflect.TypeOf((*VirtualMachineSriovDevicePoolInfo)(nil)).Elem() -} - -func (b *VirtualMachineTargetInfo) GetVirtualMachineTargetInfo() *VirtualMachineTargetInfo { return b } - -type BaseVirtualMachineTargetInfo interface { - GetVirtualMachineTargetInfo() *VirtualMachineTargetInfo -} - -func init() { - t["BaseVirtualMachineTargetInfo"] = reflect.TypeOf((*VirtualMachineTargetInfo)(nil)).Elem() -} - -func (b *VirtualPCIPassthroughPluginBackingInfo) GetVirtualPCIPassthroughPluginBackingInfo() *VirtualPCIPassthroughPluginBackingInfo { - return b -} - -type BaseVirtualPCIPassthroughPluginBackingInfo interface { - GetVirtualPCIPassthroughPluginBackingInfo() *VirtualPCIPassthroughPluginBackingInfo -} - -func init() { - t["BaseVirtualPCIPassthroughPluginBackingInfo"] = reflect.TypeOf((*VirtualPCIPassthroughPluginBackingInfo)(nil)).Elem() -} - -func (b *VirtualPCIPassthroughPluginBackingOption) GetVirtualPCIPassthroughPluginBackingOption() *VirtualPCIPassthroughPluginBackingOption { - return b -} - -type BaseVirtualPCIPassthroughPluginBackingOption interface { - GetVirtualPCIPassthroughPluginBackingOption() *VirtualPCIPassthroughPluginBackingOption -} - -func init() { - t["BaseVirtualPCIPassthroughPluginBackingOption"] = reflect.TypeOf((*VirtualPCIPassthroughPluginBackingOption)(nil)).Elem() -} - -func (b *VirtualSATAController) GetVirtualSATAController() *VirtualSATAController { return b } - -type BaseVirtualSATAController interface { - GetVirtualSATAController() *VirtualSATAController -} - -func init() { - t["BaseVirtualSATAController"] = reflect.TypeOf((*VirtualSATAController)(nil)).Elem() -} - -func (b *VirtualSATAControllerOption) GetVirtualSATAControllerOption() *VirtualSATAControllerOption { - return b -} - -type BaseVirtualSATAControllerOption interface { - GetVirtualSATAControllerOption() *VirtualSATAControllerOption -} - -func init() { - t["BaseVirtualSATAControllerOption"] = reflect.TypeOf((*VirtualSATAControllerOption)(nil)).Elem() -} - -func (b *VirtualSCSIController) GetVirtualSCSIController() *VirtualSCSIController { return b } - -type BaseVirtualSCSIController interface { - GetVirtualSCSIController() *VirtualSCSIController -} - -func init() { - t["BaseVirtualSCSIController"] = reflect.TypeOf((*VirtualSCSIController)(nil)).Elem() -} - -func (b *VirtualSCSIControllerOption) GetVirtualSCSIControllerOption() *VirtualSCSIControllerOption { - return b -} - -type BaseVirtualSCSIControllerOption interface { - GetVirtualSCSIControllerOption() *VirtualSCSIControllerOption -} - -func init() { - t["BaseVirtualSCSIControllerOption"] = reflect.TypeOf((*VirtualSCSIControllerOption)(nil)).Elem() -} - -func (b *VirtualSoundCard) GetVirtualSoundCard() *VirtualSoundCard { return b } - -type BaseVirtualSoundCard interface { - GetVirtualSoundCard() *VirtualSoundCard -} - -func init() { - t["BaseVirtualSoundCard"] = reflect.TypeOf((*VirtualSoundCard)(nil)).Elem() -} - -func (b *VirtualSoundCardOption) GetVirtualSoundCardOption() *VirtualSoundCardOption { return b } - -type BaseVirtualSoundCardOption interface { - GetVirtualSoundCardOption() *VirtualSoundCardOption -} - -func init() { - t["BaseVirtualSoundCardOption"] = reflect.TypeOf((*VirtualSoundCardOption)(nil)).Elem() -} - -func (b *VirtualVmxnet) GetVirtualVmxnet() *VirtualVmxnet { return b } - -type BaseVirtualVmxnet interface { - GetVirtualVmxnet() *VirtualVmxnet -} - -func init() { - t["BaseVirtualVmxnet"] = reflect.TypeOf((*VirtualVmxnet)(nil)).Elem() -} - -func (b *VirtualVmxnet3) GetVirtualVmxnet3() *VirtualVmxnet3 { return b } - -type BaseVirtualVmxnet3 interface { - GetVirtualVmxnet3() *VirtualVmxnet3 -} - -func init() { - t["BaseVirtualVmxnet3"] = reflect.TypeOf((*VirtualVmxnet3)(nil)).Elem() -} - -func (b *VirtualVmxnet3Option) GetVirtualVmxnet3Option() *VirtualVmxnet3Option { return b } - -type BaseVirtualVmxnet3Option interface { - GetVirtualVmxnet3Option() *VirtualVmxnet3Option -} - -func init() { - t["BaseVirtualVmxnet3Option"] = reflect.TypeOf((*VirtualVmxnet3Option)(nil)).Elem() -} - -func (b *VirtualVmxnetOption) GetVirtualVmxnetOption() *VirtualVmxnetOption { return b } - -type BaseVirtualVmxnetOption interface { - GetVirtualVmxnetOption() *VirtualVmxnetOption -} - -func init() { - t["BaseVirtualVmxnetOption"] = reflect.TypeOf((*VirtualVmxnetOption)(nil)).Elem() -} - -func (b *VmCloneEvent) GetVmCloneEvent() *VmCloneEvent { return b } - -type BaseVmCloneEvent interface { - GetVmCloneEvent() *VmCloneEvent -} - -func init() { - t["BaseVmCloneEvent"] = reflect.TypeOf((*VmCloneEvent)(nil)).Elem() -} - -func (b *VmConfigFault) GetVmConfigFault() *VmConfigFault { return b } - -type BaseVmConfigFault interface { - GetVmConfigFault() *VmConfigFault -} - -func init() { - t["BaseVmConfigFault"] = reflect.TypeOf((*VmConfigFault)(nil)).Elem() -} - -func (b *VmConfigFileInfo) GetVmConfigFileInfo() *VmConfigFileInfo { return b } - -type BaseVmConfigFileInfo interface { - GetVmConfigFileInfo() *VmConfigFileInfo -} - -func init() { - t["BaseVmConfigFileInfo"] = reflect.TypeOf((*VmConfigFileInfo)(nil)).Elem() -} - -func (b *VmConfigFileQuery) GetVmConfigFileQuery() *VmConfigFileQuery { return b } - -type BaseVmConfigFileQuery interface { - GetVmConfigFileQuery() *VmConfigFileQuery -} - -func init() { - t["BaseVmConfigFileQuery"] = reflect.TypeOf((*VmConfigFileQuery)(nil)).Elem() -} - -func (b *VmConfigInfo) GetVmConfigInfo() *VmConfigInfo { return b } - -type BaseVmConfigInfo interface { - GetVmConfigInfo() *VmConfigInfo -} - -func init() { - t["BaseVmConfigInfo"] = reflect.TypeOf((*VmConfigInfo)(nil)).Elem() -} - -func (b *VmConfigSpec) GetVmConfigSpec() *VmConfigSpec { return b } - -type BaseVmConfigSpec interface { - GetVmConfigSpec() *VmConfigSpec -} - -func init() { - t["BaseVmConfigSpec"] = reflect.TypeOf((*VmConfigSpec)(nil)).Elem() -} - -func (b *VmDasBeingResetEvent) GetVmDasBeingResetEvent() *VmDasBeingResetEvent { return b } - -type BaseVmDasBeingResetEvent interface { - GetVmDasBeingResetEvent() *VmDasBeingResetEvent -} - -func init() { - t["BaseVmDasBeingResetEvent"] = reflect.TypeOf((*VmDasBeingResetEvent)(nil)).Elem() -} - -func (b *VmEvent) GetVmEvent() *VmEvent { return b } - -type BaseVmEvent interface { - GetVmEvent() *VmEvent -} - -func init() { - t["BaseVmEvent"] = reflect.TypeOf((*VmEvent)(nil)).Elem() -} - -func (b *VmFaultToleranceIssue) GetVmFaultToleranceIssue() *VmFaultToleranceIssue { return b } - -type BaseVmFaultToleranceIssue interface { - GetVmFaultToleranceIssue() *VmFaultToleranceIssue -} - -func init() { - t["BaseVmFaultToleranceIssue"] = reflect.TypeOf((*VmFaultToleranceIssue)(nil)).Elem() -} - -func (b *VmMigratedEvent) GetVmMigratedEvent() *VmMigratedEvent { return b } - -type BaseVmMigratedEvent interface { - GetVmMigratedEvent() *VmMigratedEvent -} - -func init() { - t["BaseVmMigratedEvent"] = reflect.TypeOf((*VmMigratedEvent)(nil)).Elem() -} - -func (b *VmPoweredOffEvent) GetVmPoweredOffEvent() *VmPoweredOffEvent { return b } - -type BaseVmPoweredOffEvent interface { - GetVmPoweredOffEvent() *VmPoweredOffEvent -} - -func init() { - t["BaseVmPoweredOffEvent"] = reflect.TypeOf((*VmPoweredOffEvent)(nil)).Elem() -} - -func (b *VmPoweredOnEvent) GetVmPoweredOnEvent() *VmPoweredOnEvent { return b } - -type BaseVmPoweredOnEvent interface { - GetVmPoweredOnEvent() *VmPoweredOnEvent -} - -func init() { - t["BaseVmPoweredOnEvent"] = reflect.TypeOf((*VmPoweredOnEvent)(nil)).Elem() -} - -func (b *VmRelocateSpecEvent) GetVmRelocateSpecEvent() *VmRelocateSpecEvent { return b } - -type BaseVmRelocateSpecEvent interface { - GetVmRelocateSpecEvent() *VmRelocateSpecEvent -} - -func init() { - t["BaseVmRelocateSpecEvent"] = reflect.TypeOf((*VmRelocateSpecEvent)(nil)).Elem() -} - -func (b *VmStartingEvent) GetVmStartingEvent() *VmStartingEvent { return b } - -type BaseVmStartingEvent interface { - GetVmStartingEvent() *VmStartingEvent -} - -func init() { - t["BaseVmStartingEvent"] = reflect.TypeOf((*VmStartingEvent)(nil)).Elem() -} - -func (b *VmToolsUpgradeFault) GetVmToolsUpgradeFault() *VmToolsUpgradeFault { return b } - -type BaseVmToolsUpgradeFault interface { - GetVmToolsUpgradeFault() *VmToolsUpgradeFault -} - -func init() { - t["BaseVmToolsUpgradeFault"] = reflect.TypeOf((*VmToolsUpgradeFault)(nil)).Elem() -} - -func (b *VmfsDatastoreBaseOption) GetVmfsDatastoreBaseOption() *VmfsDatastoreBaseOption { return b } - -type BaseVmfsDatastoreBaseOption interface { - GetVmfsDatastoreBaseOption() *VmfsDatastoreBaseOption -} - -func init() { - t["BaseVmfsDatastoreBaseOption"] = reflect.TypeOf((*VmfsDatastoreBaseOption)(nil)).Elem() -} - -func (b *VmfsDatastoreSingleExtentOption) GetVmfsDatastoreSingleExtentOption() *VmfsDatastoreSingleExtentOption { - return b -} - -type BaseVmfsDatastoreSingleExtentOption interface { - GetVmfsDatastoreSingleExtentOption() *VmfsDatastoreSingleExtentOption -} - -func init() { - t["BaseVmfsDatastoreSingleExtentOption"] = reflect.TypeOf((*VmfsDatastoreSingleExtentOption)(nil)).Elem() -} - -func (b *VmfsDatastoreSpec) GetVmfsDatastoreSpec() *VmfsDatastoreSpec { return b } - -type BaseVmfsDatastoreSpec interface { - GetVmfsDatastoreSpec() *VmfsDatastoreSpec -} - -func init() { - t["BaseVmfsDatastoreSpec"] = reflect.TypeOf((*VmfsDatastoreSpec)(nil)).Elem() -} - -func (b *VmfsMountFault) GetVmfsMountFault() *VmfsMountFault { return b } - -type BaseVmfsMountFault interface { - GetVmfsMountFault() *VmfsMountFault -} - -func init() { - t["BaseVmfsMountFault"] = reflect.TypeOf((*VmfsMountFault)(nil)).Elem() -} - -func (b *VmwareDistributedVirtualSwitchVlanSpec) GetVmwareDistributedVirtualSwitchVlanSpec() *VmwareDistributedVirtualSwitchVlanSpec { - return b -} - -type BaseVmwareDistributedVirtualSwitchVlanSpec interface { - GetVmwareDistributedVirtualSwitchVlanSpec() *VmwareDistributedVirtualSwitchVlanSpec -} - -func init() { - t["BaseVmwareDistributedVirtualSwitchVlanSpec"] = reflect.TypeOf((*VmwareDistributedVirtualSwitchVlanSpec)(nil)).Elem() -} - -func (b *VsanDiskFault) GetVsanDiskFault() *VsanDiskFault { return b } - -type BaseVsanDiskFault interface { - GetVsanDiskFault() *VsanDiskFault -} - -func init() { - t["BaseVsanDiskFault"] = reflect.TypeOf((*VsanDiskFault)(nil)).Elem() -} - -func (b *VsanFault) GetVsanFault() *VsanFault { return b } - -type BaseVsanFault interface { - GetVsanFault() *VsanFault -} - -func init() { - t["BaseVsanFault"] = reflect.TypeOf((*VsanFault)(nil)).Elem() -} - -func (b *VsanUpgradeSystemPreflightCheckIssue) GetVsanUpgradeSystemPreflightCheckIssue() *VsanUpgradeSystemPreflightCheckIssue { - return b -} - -type BaseVsanUpgradeSystemPreflightCheckIssue interface { - GetVsanUpgradeSystemPreflightCheckIssue() *VsanUpgradeSystemPreflightCheckIssue -} - -func init() { - t["BaseVsanUpgradeSystemPreflightCheckIssue"] = reflect.TypeOf((*VsanUpgradeSystemPreflightCheckIssue)(nil)).Elem() -} - -func (b *VsanUpgradeSystemUpgradeHistoryItem) GetVsanUpgradeSystemUpgradeHistoryItem() *VsanUpgradeSystemUpgradeHistoryItem { - return b -} - -type BaseVsanUpgradeSystemUpgradeHistoryItem interface { - GetVsanUpgradeSystemUpgradeHistoryItem() *VsanUpgradeSystemUpgradeHistoryItem -} - -func init() { - t["BaseVsanUpgradeSystemUpgradeHistoryItem"] = reflect.TypeOf((*VsanUpgradeSystemUpgradeHistoryItem)(nil)).Elem() -} - -func (b *VslmCreateSpecBackingSpec) GetVslmCreateSpecBackingSpec() *VslmCreateSpecBackingSpec { - return b -} - -type BaseVslmCreateSpecBackingSpec interface { - GetVslmCreateSpecBackingSpec() *VslmCreateSpecBackingSpec -} - -func init() { - t["BaseVslmCreateSpecBackingSpec"] = reflect.TypeOf((*VslmCreateSpecBackingSpec)(nil)).Elem() -} - -func (b *VslmMigrateSpec) GetVslmMigrateSpec() *VslmMigrateSpec { return b } - -type BaseVslmMigrateSpec interface { - GetVslmMigrateSpec() *VslmMigrateSpec -} - -func init() { - t["BaseVslmMigrateSpec"] = reflect.TypeOf((*VslmMigrateSpec)(nil)).Elem() -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/internal.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/internal.go deleted file mode 100644 index 0c269349..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/internal.go +++ /dev/null @@ -1,266 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 types - -import "reflect" - -type DynamicTypeMgrQueryMoInstances struct { - This ManagedObjectReference `xml:"_this"` - FilterSpec BaseDynamicTypeMgrFilterSpec `xml:"filterSpec,omitempty,typeattr"` -} - -type DynamicTypeMgrQueryMoInstancesResponse struct { - Returnval []DynamicTypeMgrMoInstance `xml:"urn:vim25 returnval"` -} - -type DynamicTypeEnumTypeInfo struct { - DynamicData - - Name string `xml:"name"` - WsdlName string `xml:"wsdlName"` - Version string `xml:"version"` - Value []string `xml:"value,omitempty"` - Annotation []DynamicTypeMgrAnnotation `xml:"annotation,omitempty"` -} - -func init() { - t["DynamicTypeEnumTypeInfo"] = reflect.TypeOf((*DynamicTypeEnumTypeInfo)(nil)).Elem() -} - -type DynamicTypeMgrAllTypeInfo struct { - DynamicData - - ManagedTypeInfo []DynamicTypeMgrManagedTypeInfo `xml:"managedTypeInfo,omitempty"` - EnumTypeInfo []DynamicTypeEnumTypeInfo `xml:"enumTypeInfo,omitempty"` - DataTypeInfo []DynamicTypeMgrDataTypeInfo `xml:"dataTypeInfo,omitempty"` -} - -func init() { - t["DynamicTypeMgrAllTypeInfo"] = reflect.TypeOf((*DynamicTypeMgrAllTypeInfo)(nil)).Elem() -} - -type DynamicTypeMgrAnnotation struct { - DynamicData - - Name string `xml:"name"` - Parameter []string `xml:"parameter,omitempty"` -} - -func init() { - t["DynamicTypeMgrAnnotation"] = reflect.TypeOf((*DynamicTypeMgrAnnotation)(nil)).Elem() -} - -type DynamicTypeMgrDataTypeInfo struct { - DynamicData - - Name string `xml:"name"` - WsdlName string `xml:"wsdlName"` - Version string `xml:"version"` - Base []string `xml:"base,omitempty"` - Property []DynamicTypeMgrPropertyTypeInfo `xml:"property,omitempty"` - Annotation []DynamicTypeMgrAnnotation `xml:"annotation,omitempty"` -} - -func init() { - t["DynamicTypeMgrDataTypeInfo"] = reflect.TypeOf((*DynamicTypeMgrDataTypeInfo)(nil)).Elem() -} - -func (b *DynamicTypeMgrFilterSpec) GetDynamicTypeMgrFilterSpec() *DynamicTypeMgrFilterSpec { return b } - -type BaseDynamicTypeMgrFilterSpec interface { - GetDynamicTypeMgrFilterSpec() *DynamicTypeMgrFilterSpec -} - -type DynamicTypeMgrFilterSpec struct { - DynamicData -} - -func init() { - t["DynamicTypeMgrFilterSpec"] = reflect.TypeOf((*DynamicTypeMgrFilterSpec)(nil)).Elem() -} - -type DynamicTypeMgrManagedTypeInfo struct { - DynamicData - - Name string `xml:"name"` - WsdlName string `xml:"wsdlName"` - Version string `xml:"version"` - Base []string `xml:"base,omitempty"` - Property []DynamicTypeMgrPropertyTypeInfo `xml:"property,omitempty"` - Method []DynamicTypeMgrMethodTypeInfo `xml:"method,omitempty"` - Annotation []DynamicTypeMgrAnnotation `xml:"annotation,omitempty"` -} - -func init() { - t["DynamicTypeMgrManagedTypeInfo"] = reflect.TypeOf((*DynamicTypeMgrManagedTypeInfo)(nil)).Elem() -} - -type DynamicTypeMgrMethodTypeInfo struct { - DynamicData - - Name string `xml:"name"` - WsdlName string `xml:"wsdlName"` - Version string `xml:"version"` - ParamTypeInfo []DynamicTypeMgrParamTypeInfo `xml:"paramTypeInfo,omitempty"` - ReturnTypeInfo *DynamicTypeMgrParamTypeInfo `xml:"returnTypeInfo,omitempty"` - Fault []string `xml:"fault,omitempty"` - PrivId string `xml:"privId,omitempty"` - Annotation []DynamicTypeMgrAnnotation `xml:"annotation,omitempty"` -} - -func init() { - t["DynamicTypeMgrMethodTypeInfo"] = reflect.TypeOf((*DynamicTypeMgrMethodTypeInfo)(nil)).Elem() -} - -type DynamicTypeMgrMoFilterSpec struct { - DynamicTypeMgrFilterSpec - - Id string `xml:"id,omitempty"` - TypeSubstr string `xml:"typeSubstr,omitempty"` -} - -func init() { - t["DynamicTypeMgrMoFilterSpec"] = reflect.TypeOf((*DynamicTypeMgrMoFilterSpec)(nil)).Elem() -} - -type DynamicTypeMgrMoInstance struct { - DynamicData - - Id string `xml:"id"` - MoType string `xml:"moType"` -} - -func init() { - t["DynamicTypeMgrMoInstance"] = reflect.TypeOf((*DynamicTypeMgrMoInstance)(nil)).Elem() -} - -type DynamicTypeMgrParamTypeInfo struct { - DynamicData - - Name string `xml:"name"` - Version string `xml:"version"` - Type string `xml:"type"` - PrivId string `xml:"privId,omitempty"` - Annotation []DynamicTypeMgrAnnotation `xml:"annotation,omitempty"` -} - -func init() { - t["DynamicTypeMgrParamTypeInfo"] = reflect.TypeOf((*DynamicTypeMgrParamTypeInfo)(nil)).Elem() -} - -type DynamicTypeMgrPropertyTypeInfo struct { - DynamicData - - Name string `xml:"name"` - Version string `xml:"version"` - Type string `xml:"type"` - PrivId string `xml:"privId,omitempty"` - MsgIdFormat string `xml:"msgIdFormat,omitempty"` - Annotation []DynamicTypeMgrAnnotation `xml:"annotation,omitempty"` -} - -type DynamicTypeMgrQueryTypeInfo struct { - This ManagedObjectReference `xml:"_this"` - FilterSpec BaseDynamicTypeMgrFilterSpec `xml:"filterSpec,omitempty,typeattr"` -} - -type DynamicTypeMgrQueryTypeInfoResponse struct { - Returnval DynamicTypeMgrAllTypeInfo `xml:"urn:vim25 returnval"` -} - -func init() { - t["DynamicTypeMgrPropertyTypeInfo"] = reflect.TypeOf((*DynamicTypeMgrPropertyTypeInfo)(nil)).Elem() -} - -type DynamicTypeMgrTypeFilterSpec struct { - DynamicTypeMgrFilterSpec - - TypeSubstr string `xml:"typeSubstr,omitempty"` -} - -func init() { - t["DynamicTypeMgrTypeFilterSpec"] = reflect.TypeOf((*DynamicTypeMgrTypeFilterSpec)(nil)).Elem() -} - -type ReflectManagedMethodExecuterSoapArgument struct { - DynamicData - - Name string `xml:"name"` - Val string `xml:"val"` -} - -func init() { - t["ReflectManagedMethodExecuterSoapArgument"] = reflect.TypeOf((*ReflectManagedMethodExecuterSoapArgument)(nil)).Elem() -} - -type ReflectManagedMethodExecuterSoapFault struct { - DynamicData - - FaultMsg string `xml:"faultMsg"` - FaultDetail string `xml:"faultDetail,omitempty"` -} - -func init() { - t["ReflectManagedMethodExecuterSoapFault"] = reflect.TypeOf((*ReflectManagedMethodExecuterSoapFault)(nil)).Elem() -} - -type ReflectManagedMethodExecuterSoapResult struct { - DynamicData - - Response string `xml:"response,omitempty"` - Fault *ReflectManagedMethodExecuterSoapFault `xml:"fault,omitempty"` -} - -type RetrieveDynamicTypeManager struct { - This ManagedObjectReference `xml:"_this"` -} - -type RetrieveDynamicTypeManagerResponse struct { - Returnval *InternalDynamicTypeManager `xml:"urn:vim25 returnval"` -} - -type RetrieveManagedMethodExecuter struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveManagedMethodExecuter"] = reflect.TypeOf((*RetrieveManagedMethodExecuter)(nil)).Elem() -} - -type RetrieveManagedMethodExecuterResponse struct { - Returnval *ReflectManagedMethodExecuter `xml:"urn:vim25 returnval"` -} - -type InternalDynamicTypeManager struct { - ManagedObjectReference -} - -type ReflectManagedMethodExecuter struct { - ManagedObjectReference -} - -type ExecuteSoap struct { - This ManagedObjectReference `xml:"_this"` - Moid string `xml:"moid"` - Version string `xml:"version"` - Method string `xml:"method"` - Argument []ReflectManagedMethodExecuterSoapArgument `xml:"argument,omitempty"` -} - -type ExecuteSoapResponse struct { - Returnval *ReflectManagedMethodExecuterSoapResult `xml:"urn:vim25 returnval"` -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/registry.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/registry.go deleted file mode 100644 index ff7c302d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/registry.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 types - -import ( - "reflect" - "strings" -) - -var t = map[string]reflect.Type{} - -func Add(name string, kind reflect.Type) { - t[name] = kind -} - -type Func func(string) (reflect.Type, bool) - -func TypeFunc() Func { - return func(name string) (reflect.Type, bool) { - typ, ok := t[name] - if !ok { - // The /sdk endpoint does not prefix types with the namespace, - // but extension endpoints, such as /pbm/sdk do. - name = strings.TrimPrefix(name, "vim25:") - typ, ok = t[name] - } - return typ, ok - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/types.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/types.go deleted file mode 100644 index cb703582..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/types/types.go +++ /dev/null @@ -1,53334 +0,0 @@ -/* -Copyright (c) 2014-2017 VMware, 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 types - -import ( - "net/url" - "reflect" - "time" -) - -type AbdicateDomOwnership AbdicateDomOwnershipRequestType - -func init() { - t["AbdicateDomOwnership"] = reflect.TypeOf((*AbdicateDomOwnership)(nil)).Elem() -} - -type AbdicateDomOwnershipRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuids []string `xml:"uuids"` -} - -func init() { - t["AbdicateDomOwnershipRequestType"] = reflect.TypeOf((*AbdicateDomOwnershipRequestType)(nil)).Elem() -} - -type AbdicateDomOwnershipResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type AboutInfo struct { - DynamicData - - Name string `xml:"name"` - FullName string `xml:"fullName"` - Vendor string `xml:"vendor"` - Version string `xml:"version"` - Build string `xml:"build"` - LocaleVersion string `xml:"localeVersion,omitempty"` - LocaleBuild string `xml:"localeBuild,omitempty"` - OsType string `xml:"osType"` - ProductLineId string `xml:"productLineId"` - ApiType string `xml:"apiType"` - ApiVersion string `xml:"apiVersion"` - InstanceUuid string `xml:"instanceUuid,omitempty"` - LicenseProductName string `xml:"licenseProductName,omitempty"` - LicenseProductVersion string `xml:"licenseProductVersion,omitempty"` -} - -func init() { - t["AboutInfo"] = reflect.TypeOf((*AboutInfo)(nil)).Elem() -} - -type AccountCreatedEvent struct { - HostEvent - - Spec BaseHostAccountSpec `xml:"spec,typeattr"` - Group bool `xml:"group"` -} - -func init() { - t["AccountCreatedEvent"] = reflect.TypeOf((*AccountCreatedEvent)(nil)).Elem() -} - -type AccountRemovedEvent struct { - HostEvent - - Account string `xml:"account"` - Group bool `xml:"group"` -} - -func init() { - t["AccountRemovedEvent"] = reflect.TypeOf((*AccountRemovedEvent)(nil)).Elem() -} - -type AccountUpdatedEvent struct { - HostEvent - - Spec BaseHostAccountSpec `xml:"spec,typeattr"` - Group bool `xml:"group"` - PrevDescription string `xml:"prevDescription,omitempty"` -} - -func init() { - t["AccountUpdatedEvent"] = reflect.TypeOf((*AccountUpdatedEvent)(nil)).Elem() -} - -type AcknowledgeAlarm AcknowledgeAlarmRequestType - -func init() { - t["AcknowledgeAlarm"] = reflect.TypeOf((*AcknowledgeAlarm)(nil)).Elem() -} - -type AcknowledgeAlarmRequestType struct { - This ManagedObjectReference `xml:"_this"` - Alarm ManagedObjectReference `xml:"alarm"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["AcknowledgeAlarmRequestType"] = reflect.TypeOf((*AcknowledgeAlarmRequestType)(nil)).Elem() -} - -type AcknowledgeAlarmResponse struct { -} - -type AcquireCimServicesTicket AcquireCimServicesTicketRequestType - -func init() { - t["AcquireCimServicesTicket"] = reflect.TypeOf((*AcquireCimServicesTicket)(nil)).Elem() -} - -type AcquireCimServicesTicketRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["AcquireCimServicesTicketRequestType"] = reflect.TypeOf((*AcquireCimServicesTicketRequestType)(nil)).Elem() -} - -type AcquireCimServicesTicketResponse struct { - Returnval HostServiceTicket `xml:"returnval"` -} - -type AcquireCloneTicket AcquireCloneTicketRequestType - -func init() { - t["AcquireCloneTicket"] = reflect.TypeOf((*AcquireCloneTicket)(nil)).Elem() -} - -type AcquireCloneTicketRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["AcquireCloneTicketRequestType"] = reflect.TypeOf((*AcquireCloneTicketRequestType)(nil)).Elem() -} - -type AcquireCloneTicketResponse struct { - Returnval string `xml:"returnval"` -} - -type AcquireCredentialsInGuest AcquireCredentialsInGuestRequestType - -func init() { - t["AcquireCredentialsInGuest"] = reflect.TypeOf((*AcquireCredentialsInGuest)(nil)).Elem() -} - -type AcquireCredentialsInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - RequestedAuth BaseGuestAuthentication `xml:"requestedAuth,typeattr"` - SessionID int64 `xml:"sessionID,omitempty"` -} - -func init() { - t["AcquireCredentialsInGuestRequestType"] = reflect.TypeOf((*AcquireCredentialsInGuestRequestType)(nil)).Elem() -} - -type AcquireCredentialsInGuestResponse struct { - Returnval BaseGuestAuthentication `xml:"returnval,typeattr"` -} - -type AcquireGenericServiceTicket AcquireGenericServiceTicketRequestType - -func init() { - t["AcquireGenericServiceTicket"] = reflect.TypeOf((*AcquireGenericServiceTicket)(nil)).Elem() -} - -type AcquireGenericServiceTicketRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec BaseSessionManagerServiceRequestSpec `xml:"spec,typeattr"` -} - -func init() { - t["AcquireGenericServiceTicketRequestType"] = reflect.TypeOf((*AcquireGenericServiceTicketRequestType)(nil)).Elem() -} - -type AcquireGenericServiceTicketResponse struct { - Returnval SessionManagerGenericServiceTicket `xml:"returnval"` -} - -type AcquireLocalTicket AcquireLocalTicketRequestType - -func init() { - t["AcquireLocalTicket"] = reflect.TypeOf((*AcquireLocalTicket)(nil)).Elem() -} - -type AcquireLocalTicketRequestType struct { - This ManagedObjectReference `xml:"_this"` - UserName string `xml:"userName"` -} - -func init() { - t["AcquireLocalTicketRequestType"] = reflect.TypeOf((*AcquireLocalTicketRequestType)(nil)).Elem() -} - -type AcquireLocalTicketResponse struct { - Returnval SessionManagerLocalTicket `xml:"returnval"` -} - -type AcquireMksTicket AcquireMksTicketRequestType - -func init() { - t["AcquireMksTicket"] = reflect.TypeOf((*AcquireMksTicket)(nil)).Elem() -} - -type AcquireMksTicketRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["AcquireMksTicketRequestType"] = reflect.TypeOf((*AcquireMksTicketRequestType)(nil)).Elem() -} - -type AcquireMksTicketResponse struct { - Returnval VirtualMachineMksTicket `xml:"returnval"` -} - -type AcquireTicket AcquireTicketRequestType - -func init() { - t["AcquireTicket"] = reflect.TypeOf((*AcquireTicket)(nil)).Elem() -} - -type AcquireTicketRequestType struct { - This ManagedObjectReference `xml:"_this"` - TicketType string `xml:"ticketType"` -} - -func init() { - t["AcquireTicketRequestType"] = reflect.TypeOf((*AcquireTicketRequestType)(nil)).Elem() -} - -type AcquireTicketResponse struct { - Returnval VirtualMachineTicket `xml:"returnval"` -} - -type Action struct { - DynamicData -} - -func init() { - t["Action"] = reflect.TypeOf((*Action)(nil)).Elem() -} - -type ActiveDirectoryFault struct { - VimFault - - ErrorCode int32 `xml:"errorCode,omitempty"` -} - -func init() { - t["ActiveDirectoryFault"] = reflect.TypeOf((*ActiveDirectoryFault)(nil)).Elem() -} - -type ActiveDirectoryFaultFault BaseActiveDirectoryFault - -func init() { - t["ActiveDirectoryFaultFault"] = reflect.TypeOf((*ActiveDirectoryFaultFault)(nil)).Elem() -} - -type ActiveDirectoryProfile struct { - ApplyProfile -} - -func init() { - t["ActiveDirectoryProfile"] = reflect.TypeOf((*ActiveDirectoryProfile)(nil)).Elem() -} - -type ActiveVMsBlockingEVC struct { - EVCConfigFault - - EvcMode string `xml:"evcMode,omitempty"` - Host []ManagedObjectReference `xml:"host,omitempty"` - HostName []string `xml:"hostName,omitempty"` -} - -func init() { - t["ActiveVMsBlockingEVC"] = reflect.TypeOf((*ActiveVMsBlockingEVC)(nil)).Elem() -} - -type ActiveVMsBlockingEVCFault ActiveVMsBlockingEVC - -func init() { - t["ActiveVMsBlockingEVCFault"] = reflect.TypeOf((*ActiveVMsBlockingEVCFault)(nil)).Elem() -} - -type AddAuthorizationRole AddAuthorizationRoleRequestType - -func init() { - t["AddAuthorizationRole"] = reflect.TypeOf((*AddAuthorizationRole)(nil)).Elem() -} - -type AddAuthorizationRoleRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - PrivIds []string `xml:"privIds,omitempty"` -} - -func init() { - t["AddAuthorizationRoleRequestType"] = reflect.TypeOf((*AddAuthorizationRoleRequestType)(nil)).Elem() -} - -type AddAuthorizationRoleResponse struct { - Returnval int32 `xml:"returnval"` -} - -type AddCustomFieldDef AddCustomFieldDefRequestType - -func init() { - t["AddCustomFieldDef"] = reflect.TypeOf((*AddCustomFieldDef)(nil)).Elem() -} - -type AddCustomFieldDefRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - MoType string `xml:"moType,omitempty"` - FieldDefPolicy *PrivilegePolicyDef `xml:"fieldDefPolicy,omitempty"` - FieldPolicy *PrivilegePolicyDef `xml:"fieldPolicy,omitempty"` -} - -func init() { - t["AddCustomFieldDefRequestType"] = reflect.TypeOf((*AddCustomFieldDefRequestType)(nil)).Elem() -} - -type AddCustomFieldDefResponse struct { - Returnval CustomFieldDef `xml:"returnval"` -} - -type AddDVPortgroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec []DVPortgroupConfigSpec `xml:"spec"` -} - -func init() { - t["AddDVPortgroupRequestType"] = reflect.TypeOf((*AddDVPortgroupRequestType)(nil)).Elem() -} - -type AddDVPortgroup_Task AddDVPortgroupRequestType - -func init() { - t["AddDVPortgroup_Task"] = reflect.TypeOf((*AddDVPortgroup_Task)(nil)).Elem() -} - -type AddDVPortgroup_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type AddDisksRequestType struct { - This ManagedObjectReference `xml:"_this"` - Disk []HostScsiDisk `xml:"disk"` -} - -func init() { - t["AddDisksRequestType"] = reflect.TypeOf((*AddDisksRequestType)(nil)).Elem() -} - -type AddDisks_Task AddDisksRequestType - -func init() { - t["AddDisks_Task"] = reflect.TypeOf((*AddDisks_Task)(nil)).Elem() -} - -type AddDisks_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type AddFilter AddFilterRequestType - -func init() { - t["AddFilter"] = reflect.TypeOf((*AddFilter)(nil)).Elem() -} - -type AddFilterEntities AddFilterEntitiesRequestType - -func init() { - t["AddFilterEntities"] = reflect.TypeOf((*AddFilterEntities)(nil)).Elem() -} - -type AddFilterEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - Entities []ManagedObjectReference `xml:"entities,omitempty"` -} - -func init() { - t["AddFilterEntitiesRequestType"] = reflect.TypeOf((*AddFilterEntitiesRequestType)(nil)).Elem() -} - -type AddFilterEntitiesResponse struct { -} - -type AddFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` - FilterName string `xml:"filterName"` - InfoIds []string `xml:"infoIds,omitempty"` -} - -func init() { - t["AddFilterRequestType"] = reflect.TypeOf((*AddFilterRequestType)(nil)).Elem() -} - -type AddFilterResponse struct { - Returnval string `xml:"returnval"` -} - -type AddGuestAlias AddGuestAliasRequestType - -func init() { - t["AddGuestAlias"] = reflect.TypeOf((*AddGuestAlias)(nil)).Elem() -} - -type AddGuestAliasRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Username string `xml:"username"` - MapCert bool `xml:"mapCert"` - Base64Cert string `xml:"base64Cert"` - AliasInfo GuestAuthAliasInfo `xml:"aliasInfo"` -} - -func init() { - t["AddGuestAliasRequestType"] = reflect.TypeOf((*AddGuestAliasRequestType)(nil)).Elem() -} - -type AddGuestAliasResponse struct { -} - -type AddHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostConnectSpec `xml:"spec"` - AsConnected bool `xml:"asConnected"` - ResourcePool *ManagedObjectReference `xml:"resourcePool,omitempty"` - License string `xml:"license,omitempty"` -} - -func init() { - t["AddHostRequestType"] = reflect.TypeOf((*AddHostRequestType)(nil)).Elem() -} - -type AddHost_Task AddHostRequestType - -func init() { - t["AddHost_Task"] = reflect.TypeOf((*AddHost_Task)(nil)).Elem() -} - -type AddHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type AddInternetScsiSendTargets AddInternetScsiSendTargetsRequestType - -func init() { - t["AddInternetScsiSendTargets"] = reflect.TypeOf((*AddInternetScsiSendTargets)(nil)).Elem() -} - -type AddInternetScsiSendTargetsRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - Targets []HostInternetScsiHbaSendTarget `xml:"targets"` -} - -func init() { - t["AddInternetScsiSendTargetsRequestType"] = reflect.TypeOf((*AddInternetScsiSendTargetsRequestType)(nil)).Elem() -} - -type AddInternetScsiSendTargetsResponse struct { -} - -type AddInternetScsiStaticTargets AddInternetScsiStaticTargetsRequestType - -func init() { - t["AddInternetScsiStaticTargets"] = reflect.TypeOf((*AddInternetScsiStaticTargets)(nil)).Elem() -} - -type AddInternetScsiStaticTargetsRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - Targets []HostInternetScsiHbaStaticTarget `xml:"targets"` -} - -func init() { - t["AddInternetScsiStaticTargetsRequestType"] = reflect.TypeOf((*AddInternetScsiStaticTargetsRequestType)(nil)).Elem() -} - -type AddInternetScsiStaticTargetsResponse struct { -} - -type AddKey AddKeyRequestType - -func init() { - t["AddKey"] = reflect.TypeOf((*AddKey)(nil)).Elem() -} - -type AddKeyRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key CryptoKeyPlain `xml:"key"` -} - -func init() { - t["AddKeyRequestType"] = reflect.TypeOf((*AddKeyRequestType)(nil)).Elem() -} - -type AddKeyResponse struct { -} - -type AddKeys AddKeysRequestType - -func init() { - t["AddKeys"] = reflect.TypeOf((*AddKeys)(nil)).Elem() -} - -type AddKeysRequestType struct { - This ManagedObjectReference `xml:"_this"` - Keys []CryptoKeyPlain `xml:"keys,omitempty"` -} - -func init() { - t["AddKeysRequestType"] = reflect.TypeOf((*AddKeysRequestType)(nil)).Elem() -} - -type AddKeysResponse struct { - Returnval []CryptoKeyResult `xml:"returnval,omitempty"` -} - -type AddLicense AddLicenseRequestType - -func init() { - t["AddLicense"] = reflect.TypeOf((*AddLicense)(nil)).Elem() -} - -type AddLicenseRequestType struct { - This ManagedObjectReference `xml:"_this"` - LicenseKey string `xml:"licenseKey"` - Labels []KeyValue `xml:"labels,omitempty"` -} - -func init() { - t["AddLicenseRequestType"] = reflect.TypeOf((*AddLicenseRequestType)(nil)).Elem() -} - -type AddLicenseResponse struct { - Returnval LicenseManagerLicenseInfo `xml:"returnval"` -} - -type AddMonitoredEntities AddMonitoredEntitiesRequestType - -func init() { - t["AddMonitoredEntities"] = reflect.TypeOf((*AddMonitoredEntities)(nil)).Elem() -} - -type AddMonitoredEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` - Entities []ManagedObjectReference `xml:"entities,omitempty"` -} - -func init() { - t["AddMonitoredEntitiesRequestType"] = reflect.TypeOf((*AddMonitoredEntitiesRequestType)(nil)).Elem() -} - -type AddMonitoredEntitiesResponse struct { -} - -type AddNetworkResourcePool AddNetworkResourcePoolRequestType - -func init() { - t["AddNetworkResourcePool"] = reflect.TypeOf((*AddNetworkResourcePool)(nil)).Elem() -} - -type AddNetworkResourcePoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - ConfigSpec []DVSNetworkResourcePoolConfigSpec `xml:"configSpec"` -} - -func init() { - t["AddNetworkResourcePoolRequestType"] = reflect.TypeOf((*AddNetworkResourcePoolRequestType)(nil)).Elem() -} - -type AddNetworkResourcePoolResponse struct { -} - -type AddPortGroup AddPortGroupRequestType - -func init() { - t["AddPortGroup"] = reflect.TypeOf((*AddPortGroup)(nil)).Elem() -} - -type AddPortGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - Portgrp HostPortGroupSpec `xml:"portgrp"` -} - -func init() { - t["AddPortGroupRequestType"] = reflect.TypeOf((*AddPortGroupRequestType)(nil)).Elem() -} - -type AddPortGroupResponse struct { -} - -type AddServiceConsoleVirtualNic AddServiceConsoleVirtualNicRequestType - -func init() { - t["AddServiceConsoleVirtualNic"] = reflect.TypeOf((*AddServiceConsoleVirtualNic)(nil)).Elem() -} - -type AddServiceConsoleVirtualNicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Portgroup string `xml:"portgroup"` - Nic HostVirtualNicSpec `xml:"nic"` -} - -func init() { - t["AddServiceConsoleVirtualNicRequestType"] = reflect.TypeOf((*AddServiceConsoleVirtualNicRequestType)(nil)).Elem() -} - -type AddServiceConsoleVirtualNicResponse struct { - Returnval string `xml:"returnval"` -} - -type AddStandaloneHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostConnectSpec `xml:"spec"` - CompResSpec BaseComputeResourceConfigSpec `xml:"compResSpec,omitempty,typeattr"` - AddConnected bool `xml:"addConnected"` - License string `xml:"license,omitempty"` -} - -func init() { - t["AddStandaloneHostRequestType"] = reflect.TypeOf((*AddStandaloneHostRequestType)(nil)).Elem() -} - -type AddStandaloneHost_Task AddStandaloneHostRequestType - -func init() { - t["AddStandaloneHost_Task"] = reflect.TypeOf((*AddStandaloneHost_Task)(nil)).Elem() -} - -type AddStandaloneHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type AddVirtualNic AddVirtualNicRequestType - -func init() { - t["AddVirtualNic"] = reflect.TypeOf((*AddVirtualNic)(nil)).Elem() -} - -type AddVirtualNicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Portgroup string `xml:"portgroup"` - Nic HostVirtualNicSpec `xml:"nic"` -} - -func init() { - t["AddVirtualNicRequestType"] = reflect.TypeOf((*AddVirtualNicRequestType)(nil)).Elem() -} - -type AddVirtualNicResponse struct { - Returnval string `xml:"returnval"` -} - -type AddVirtualSwitch AddVirtualSwitchRequestType - -func init() { - t["AddVirtualSwitch"] = reflect.TypeOf((*AddVirtualSwitch)(nil)).Elem() -} - -type AddVirtualSwitchRequestType struct { - This ManagedObjectReference `xml:"_this"` - VswitchName string `xml:"vswitchName"` - Spec *HostVirtualSwitchSpec `xml:"spec,omitempty"` -} - -func init() { - t["AddVirtualSwitchRequestType"] = reflect.TypeOf((*AddVirtualSwitchRequestType)(nil)).Elem() -} - -type AddVirtualSwitchResponse struct { -} - -type AdminDisabled struct { - HostConfigFault -} - -func init() { - t["AdminDisabled"] = reflect.TypeOf((*AdminDisabled)(nil)).Elem() -} - -type AdminDisabledFault AdminDisabled - -func init() { - t["AdminDisabledFault"] = reflect.TypeOf((*AdminDisabledFault)(nil)).Elem() -} - -type AdminNotDisabled struct { - HostConfigFault -} - -func init() { - t["AdminNotDisabled"] = reflect.TypeOf((*AdminNotDisabled)(nil)).Elem() -} - -type AdminNotDisabledFault AdminNotDisabled - -func init() { - t["AdminNotDisabledFault"] = reflect.TypeOf((*AdminNotDisabledFault)(nil)).Elem() -} - -type AdminPasswordNotChangedEvent struct { - HostEvent -} - -func init() { - t["AdminPasswordNotChangedEvent"] = reflect.TypeOf((*AdminPasswordNotChangedEvent)(nil)).Elem() -} - -type AffinityConfigured struct { - MigrationFault - - ConfiguredAffinity []string `xml:"configuredAffinity"` -} - -func init() { - t["AffinityConfigured"] = reflect.TypeOf((*AffinityConfigured)(nil)).Elem() -} - -type AffinityConfiguredFault AffinityConfigured - -func init() { - t["AffinityConfiguredFault"] = reflect.TypeOf((*AffinityConfiguredFault)(nil)).Elem() -} - -type AfterStartupTaskScheduler struct { - TaskScheduler - - Minute int32 `xml:"minute"` -} - -func init() { - t["AfterStartupTaskScheduler"] = reflect.TypeOf((*AfterStartupTaskScheduler)(nil)).Elem() -} - -type AgentInstallFailed struct { - HostConnectFault - - Reason string `xml:"reason,omitempty"` - StatusCode int32 `xml:"statusCode,omitempty"` - InstallerOutput string `xml:"installerOutput,omitempty"` -} - -func init() { - t["AgentInstallFailed"] = reflect.TypeOf((*AgentInstallFailed)(nil)).Elem() -} - -type AgentInstallFailedFault AgentInstallFailed - -func init() { - t["AgentInstallFailedFault"] = reflect.TypeOf((*AgentInstallFailedFault)(nil)).Elem() -} - -type AlarmAcknowledgedEvent struct { - AlarmEvent - - Source ManagedEntityEventArgument `xml:"source"` - Entity ManagedEntityEventArgument `xml:"entity"` -} - -func init() { - t["AlarmAcknowledgedEvent"] = reflect.TypeOf((*AlarmAcknowledgedEvent)(nil)).Elem() -} - -type AlarmAction struct { - DynamicData -} - -func init() { - t["AlarmAction"] = reflect.TypeOf((*AlarmAction)(nil)).Elem() -} - -type AlarmActionTriggeredEvent struct { - AlarmEvent - - Source ManagedEntityEventArgument `xml:"source"` - Entity ManagedEntityEventArgument `xml:"entity"` -} - -func init() { - t["AlarmActionTriggeredEvent"] = reflect.TypeOf((*AlarmActionTriggeredEvent)(nil)).Elem() -} - -type AlarmClearedEvent struct { - AlarmEvent - - Source ManagedEntityEventArgument `xml:"source"` - Entity ManagedEntityEventArgument `xml:"entity"` - From string `xml:"from"` -} - -func init() { - t["AlarmClearedEvent"] = reflect.TypeOf((*AlarmClearedEvent)(nil)).Elem() -} - -type AlarmCreatedEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` -} - -func init() { - t["AlarmCreatedEvent"] = reflect.TypeOf((*AlarmCreatedEvent)(nil)).Elem() -} - -type AlarmDescription struct { - DynamicData - - Expr []BaseTypeDescription `xml:"expr,typeattr"` - StateOperator []BaseElementDescription `xml:"stateOperator,typeattr"` - MetricOperator []BaseElementDescription `xml:"metricOperator,typeattr"` - HostSystemConnectionState []BaseElementDescription `xml:"hostSystemConnectionState,typeattr"` - VirtualMachinePowerState []BaseElementDescription `xml:"virtualMachinePowerState,typeattr"` - DatastoreConnectionState []BaseElementDescription `xml:"datastoreConnectionState,omitempty,typeattr"` - HostSystemPowerState []BaseElementDescription `xml:"hostSystemPowerState,omitempty,typeattr"` - VirtualMachineGuestHeartbeatStatus []BaseElementDescription `xml:"virtualMachineGuestHeartbeatStatus,omitempty,typeattr"` - EntityStatus []BaseElementDescription `xml:"entityStatus,typeattr"` - Action []BaseTypeDescription `xml:"action,typeattr"` -} - -func init() { - t["AlarmDescription"] = reflect.TypeOf((*AlarmDescription)(nil)).Elem() -} - -type AlarmEmailCompletedEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - To string `xml:"to"` -} - -func init() { - t["AlarmEmailCompletedEvent"] = reflect.TypeOf((*AlarmEmailCompletedEvent)(nil)).Elem() -} - -type AlarmEmailFailedEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - To string `xml:"to"` - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["AlarmEmailFailedEvent"] = reflect.TypeOf((*AlarmEmailFailedEvent)(nil)).Elem() -} - -type AlarmEvent struct { - Event - - Alarm AlarmEventArgument `xml:"alarm"` -} - -func init() { - t["AlarmEvent"] = reflect.TypeOf((*AlarmEvent)(nil)).Elem() -} - -type AlarmEventArgument struct { - EntityEventArgument - - Alarm ManagedObjectReference `xml:"alarm"` -} - -func init() { - t["AlarmEventArgument"] = reflect.TypeOf((*AlarmEventArgument)(nil)).Elem() -} - -type AlarmExpression struct { - DynamicData -} - -func init() { - t["AlarmExpression"] = reflect.TypeOf((*AlarmExpression)(nil)).Elem() -} - -type AlarmInfo struct { - AlarmSpec - - Key string `xml:"key"` - Alarm ManagedObjectReference `xml:"alarm"` - Entity ManagedObjectReference `xml:"entity"` - LastModifiedTime time.Time `xml:"lastModifiedTime"` - LastModifiedUser string `xml:"lastModifiedUser"` - CreationEventId int32 `xml:"creationEventId"` -} - -func init() { - t["AlarmInfo"] = reflect.TypeOf((*AlarmInfo)(nil)).Elem() -} - -type AlarmReconfiguredEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["AlarmReconfiguredEvent"] = reflect.TypeOf((*AlarmReconfiguredEvent)(nil)).Elem() -} - -type AlarmRemovedEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` -} - -func init() { - t["AlarmRemovedEvent"] = reflect.TypeOf((*AlarmRemovedEvent)(nil)).Elem() -} - -type AlarmScriptCompleteEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - Script string `xml:"script"` -} - -func init() { - t["AlarmScriptCompleteEvent"] = reflect.TypeOf((*AlarmScriptCompleteEvent)(nil)).Elem() -} - -type AlarmScriptFailedEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - Script string `xml:"script"` - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["AlarmScriptFailedEvent"] = reflect.TypeOf((*AlarmScriptFailedEvent)(nil)).Elem() -} - -type AlarmSetting struct { - DynamicData - - ToleranceRange int32 `xml:"toleranceRange"` - ReportingFrequency int32 `xml:"reportingFrequency"` -} - -func init() { - t["AlarmSetting"] = reflect.TypeOf((*AlarmSetting)(nil)).Elem() -} - -type AlarmSnmpCompletedEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` -} - -func init() { - t["AlarmSnmpCompletedEvent"] = reflect.TypeOf((*AlarmSnmpCompletedEvent)(nil)).Elem() -} - -type AlarmSnmpFailedEvent struct { - AlarmEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["AlarmSnmpFailedEvent"] = reflect.TypeOf((*AlarmSnmpFailedEvent)(nil)).Elem() -} - -type AlarmSpec struct { - DynamicData - - Name string `xml:"name"` - SystemName string `xml:"systemName,omitempty"` - Description string `xml:"description"` - Enabled bool `xml:"enabled"` - Expression BaseAlarmExpression `xml:"expression,typeattr"` - Action BaseAlarmAction `xml:"action,omitempty,typeattr"` - ActionFrequency int32 `xml:"actionFrequency,omitempty"` - Setting *AlarmSetting `xml:"setting,omitempty"` -} - -func init() { - t["AlarmSpec"] = reflect.TypeOf((*AlarmSpec)(nil)).Elem() -} - -type AlarmState struct { - DynamicData - - Key string `xml:"key"` - Entity ManagedObjectReference `xml:"entity"` - Alarm ManagedObjectReference `xml:"alarm"` - OverallStatus ManagedEntityStatus `xml:"overallStatus"` - Time time.Time `xml:"time"` - Acknowledged *bool `xml:"acknowledged"` - AcknowledgedByUser string `xml:"acknowledgedByUser,omitempty"` - AcknowledgedTime *time.Time `xml:"acknowledgedTime"` - EventKey int32 `xml:"eventKey,omitempty"` -} - -func init() { - t["AlarmState"] = reflect.TypeOf((*AlarmState)(nil)).Elem() -} - -type AlarmStatusChangedEvent struct { - AlarmEvent - - Source ManagedEntityEventArgument `xml:"source"` - Entity ManagedEntityEventArgument `xml:"entity"` - From string `xml:"from"` - To string `xml:"to"` -} - -func init() { - t["AlarmStatusChangedEvent"] = reflect.TypeOf((*AlarmStatusChangedEvent)(nil)).Elem() -} - -type AlarmTriggeringAction struct { - AlarmAction - - Action BaseAction `xml:"action,typeattr"` - TransitionSpecs []AlarmTriggeringActionTransitionSpec `xml:"transitionSpecs,omitempty"` - Green2yellow bool `xml:"green2yellow"` - Yellow2red bool `xml:"yellow2red"` - Red2yellow bool `xml:"red2yellow"` - Yellow2green bool `xml:"yellow2green"` -} - -func init() { - t["AlarmTriggeringAction"] = reflect.TypeOf((*AlarmTriggeringAction)(nil)).Elem() -} - -type AlarmTriggeringActionTransitionSpec struct { - DynamicData - - StartState ManagedEntityStatus `xml:"startState"` - FinalState ManagedEntityStatus `xml:"finalState"` - Repeats bool `xml:"repeats"` -} - -func init() { - t["AlarmTriggeringActionTransitionSpec"] = reflect.TypeOf((*AlarmTriggeringActionTransitionSpec)(nil)).Elem() -} - -type AllVirtualMachinesLicensedEvent struct { - LicenseEvent -} - -func init() { - t["AllVirtualMachinesLicensedEvent"] = reflect.TypeOf((*AllVirtualMachinesLicensedEvent)(nil)).Elem() -} - -type AllocateIpv4Address AllocateIpv4AddressRequestType - -func init() { - t["AllocateIpv4Address"] = reflect.TypeOf((*AllocateIpv4Address)(nil)).Elem() -} - -type AllocateIpv4AddressRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` - PoolId int32 `xml:"poolId"` - AllocationId string `xml:"allocationId"` -} - -func init() { - t["AllocateIpv4AddressRequestType"] = reflect.TypeOf((*AllocateIpv4AddressRequestType)(nil)).Elem() -} - -type AllocateIpv4AddressResponse struct { - Returnval string `xml:"returnval"` -} - -type AllocateIpv6Address AllocateIpv6AddressRequestType - -func init() { - t["AllocateIpv6Address"] = reflect.TypeOf((*AllocateIpv6Address)(nil)).Elem() -} - -type AllocateIpv6AddressRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` - PoolId int32 `xml:"poolId"` - AllocationId string `xml:"allocationId"` -} - -func init() { - t["AllocateIpv6AddressRequestType"] = reflect.TypeOf((*AllocateIpv6AddressRequestType)(nil)).Elem() -} - -type AllocateIpv6AddressResponse struct { - Returnval string `xml:"returnval"` -} - -type AlreadyAuthenticatedSessionEvent struct { - SessionEvent -} - -func init() { - t["AlreadyAuthenticatedSessionEvent"] = reflect.TypeOf((*AlreadyAuthenticatedSessionEvent)(nil)).Elem() -} - -type AlreadyBeingManaged struct { - HostConnectFault - - IpAddress string `xml:"ipAddress"` -} - -func init() { - t["AlreadyBeingManaged"] = reflect.TypeOf((*AlreadyBeingManaged)(nil)).Elem() -} - -type AlreadyBeingManagedFault AlreadyBeingManaged - -func init() { - t["AlreadyBeingManagedFault"] = reflect.TypeOf((*AlreadyBeingManagedFault)(nil)).Elem() -} - -type AlreadyConnected struct { - HostConnectFault - - Name string `xml:"name"` -} - -func init() { - t["AlreadyConnected"] = reflect.TypeOf((*AlreadyConnected)(nil)).Elem() -} - -type AlreadyConnectedFault AlreadyConnected - -func init() { - t["AlreadyConnectedFault"] = reflect.TypeOf((*AlreadyConnectedFault)(nil)).Elem() -} - -type AlreadyExists struct { - VimFault - - Name string `xml:"name,omitempty"` -} - -func init() { - t["AlreadyExists"] = reflect.TypeOf((*AlreadyExists)(nil)).Elem() -} - -type AlreadyExistsFault AlreadyExists - -func init() { - t["AlreadyExistsFault"] = reflect.TypeOf((*AlreadyExistsFault)(nil)).Elem() -} - -type AlreadyUpgraded struct { - VimFault -} - -func init() { - t["AlreadyUpgraded"] = reflect.TypeOf((*AlreadyUpgraded)(nil)).Elem() -} - -type AlreadyUpgradedFault AlreadyUpgraded - -func init() { - t["AlreadyUpgradedFault"] = reflect.TypeOf((*AlreadyUpgradedFault)(nil)).Elem() -} - -type AndAlarmExpression struct { - AlarmExpression - - Expression []BaseAlarmExpression `xml:"expression,typeattr"` -} - -func init() { - t["AndAlarmExpression"] = reflect.TypeOf((*AndAlarmExpression)(nil)).Elem() -} - -type AnswerFile struct { - DynamicData - - UserInput []ProfileDeferredPolicyOptionParameter `xml:"userInput,omitempty"` - CreatedTime time.Time `xml:"createdTime"` - ModifiedTime time.Time `xml:"modifiedTime"` -} - -func init() { - t["AnswerFile"] = reflect.TypeOf((*AnswerFile)(nil)).Elem() -} - -type AnswerFileCreateSpec struct { - DynamicData - - Validating *bool `xml:"validating"` -} - -func init() { - t["AnswerFileCreateSpec"] = reflect.TypeOf((*AnswerFileCreateSpec)(nil)).Elem() -} - -type AnswerFileOptionsCreateSpec struct { - AnswerFileCreateSpec - - UserInput []ProfileDeferredPolicyOptionParameter `xml:"userInput,omitempty"` -} - -func init() { - t["AnswerFileOptionsCreateSpec"] = reflect.TypeOf((*AnswerFileOptionsCreateSpec)(nil)).Elem() -} - -type AnswerFileSerializedCreateSpec struct { - AnswerFileCreateSpec - - AnswerFileConfigString string `xml:"answerFileConfigString"` -} - -func init() { - t["AnswerFileSerializedCreateSpec"] = reflect.TypeOf((*AnswerFileSerializedCreateSpec)(nil)).Elem() -} - -type AnswerFileStatusError struct { - DynamicData - - UserInputPath ProfilePropertyPath `xml:"userInputPath"` - ErrMsg LocalizableMessage `xml:"errMsg"` -} - -func init() { - t["AnswerFileStatusError"] = reflect.TypeOf((*AnswerFileStatusError)(nil)).Elem() -} - -type AnswerFileStatusResult struct { - DynamicData - - CheckedTime time.Time `xml:"checkedTime"` - Host ManagedObjectReference `xml:"host"` - Status string `xml:"status"` - Error []AnswerFileStatusError `xml:"error,omitempty"` -} - -func init() { - t["AnswerFileStatusResult"] = reflect.TypeOf((*AnswerFileStatusResult)(nil)).Elem() -} - -type AnswerFileUpdateFailed struct { - VimFault - - Failure []AnswerFileUpdateFailure `xml:"failure"` -} - -func init() { - t["AnswerFileUpdateFailed"] = reflect.TypeOf((*AnswerFileUpdateFailed)(nil)).Elem() -} - -type AnswerFileUpdateFailedFault AnswerFileUpdateFailed - -func init() { - t["AnswerFileUpdateFailedFault"] = reflect.TypeOf((*AnswerFileUpdateFailedFault)(nil)).Elem() -} - -type AnswerFileUpdateFailure struct { - DynamicData - - UserInputPath ProfilePropertyPath `xml:"userInputPath"` - ErrMsg LocalizableMessage `xml:"errMsg"` -} - -func init() { - t["AnswerFileUpdateFailure"] = reflect.TypeOf((*AnswerFileUpdateFailure)(nil)).Elem() -} - -type AnswerVM AnswerVMRequestType - -func init() { - t["AnswerVM"] = reflect.TypeOf((*AnswerVM)(nil)).Elem() -} - -type AnswerVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - QuestionId string `xml:"questionId"` - AnswerChoice string `xml:"answerChoice"` -} - -func init() { - t["AnswerVMRequestType"] = reflect.TypeOf((*AnswerVMRequestType)(nil)).Elem() -} - -type AnswerVMResponse struct { -} - -type ApplicationQuiesceFault struct { - SnapshotFault -} - -func init() { - t["ApplicationQuiesceFault"] = reflect.TypeOf((*ApplicationQuiesceFault)(nil)).Elem() -} - -type ApplicationQuiesceFaultFault ApplicationQuiesceFault - -func init() { - t["ApplicationQuiesceFaultFault"] = reflect.TypeOf((*ApplicationQuiesceFaultFault)(nil)).Elem() -} - -type ApplyEntitiesConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - ApplyConfigSpecs []ApplyHostProfileConfigurationSpec `xml:"applyConfigSpecs,omitempty"` -} - -func init() { - t["ApplyEntitiesConfigRequestType"] = reflect.TypeOf((*ApplyEntitiesConfigRequestType)(nil)).Elem() -} - -type ApplyEntitiesConfig_Task ApplyEntitiesConfigRequestType - -func init() { - t["ApplyEntitiesConfig_Task"] = reflect.TypeOf((*ApplyEntitiesConfig_Task)(nil)).Elem() -} - -type ApplyEntitiesConfig_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ApplyHostConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - ConfigSpec HostConfigSpec `xml:"configSpec"` - UserInput []ProfileDeferredPolicyOptionParameter `xml:"userInput,omitempty"` -} - -func init() { - t["ApplyHostConfigRequestType"] = reflect.TypeOf((*ApplyHostConfigRequestType)(nil)).Elem() -} - -type ApplyHostConfig_Task ApplyHostConfigRequestType - -func init() { - t["ApplyHostConfig_Task"] = reflect.TypeOf((*ApplyHostConfig_Task)(nil)).Elem() -} - -type ApplyHostConfig_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ApplyHostProfileConfigurationSpec struct { - ProfileExecuteResult - - Host ManagedObjectReference `xml:"host"` - TaskListRequirement []string `xml:"taskListRequirement,omitempty"` - TaskDescription []LocalizableMessage `xml:"taskDescription,omitempty"` - RebootStateless *bool `xml:"rebootStateless"` - RebootHost *bool `xml:"rebootHost"` - FaultData *LocalizedMethodFault `xml:"faultData,omitempty"` -} - -func init() { - t["ApplyHostProfileConfigurationSpec"] = reflect.TypeOf((*ApplyHostProfileConfigurationSpec)(nil)).Elem() -} - -type ApplyProfile struct { - DynamicData - - Enabled bool `xml:"enabled"` - Policy []ProfilePolicy `xml:"policy,omitempty"` - ProfileTypeName string `xml:"profileTypeName,omitempty"` - ProfileVersion string `xml:"profileVersion,omitempty"` - Property []ProfileApplyProfileProperty `xml:"property,omitempty"` - Favorite *bool `xml:"favorite"` - ToBeMerged *bool `xml:"toBeMerged"` - ToReplaceWith *bool `xml:"toReplaceWith"` - ToBeDeleted *bool `xml:"toBeDeleted"` - CopyEnableStatus *bool `xml:"copyEnableStatus"` -} - -func init() { - t["ApplyProfile"] = reflect.TypeOf((*ApplyProfile)(nil)).Elem() -} - -type ApplyRecommendation ApplyRecommendationRequestType - -func init() { - t["ApplyRecommendation"] = reflect.TypeOf((*ApplyRecommendation)(nil)).Elem() -} - -type ApplyRecommendationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key string `xml:"key"` -} - -func init() { - t["ApplyRecommendationRequestType"] = reflect.TypeOf((*ApplyRecommendationRequestType)(nil)).Elem() -} - -type ApplyRecommendationResponse struct { -} - -type ApplyStorageDrsRecommendationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key []string `xml:"key"` -} - -func init() { - t["ApplyStorageDrsRecommendationRequestType"] = reflect.TypeOf((*ApplyStorageDrsRecommendationRequestType)(nil)).Elem() -} - -type ApplyStorageDrsRecommendationToPodRequestType struct { - This ManagedObjectReference `xml:"_this"` - Pod ManagedObjectReference `xml:"pod"` - Key string `xml:"key"` -} - -func init() { - t["ApplyStorageDrsRecommendationToPodRequestType"] = reflect.TypeOf((*ApplyStorageDrsRecommendationToPodRequestType)(nil)).Elem() -} - -type ApplyStorageDrsRecommendationToPod_Task ApplyStorageDrsRecommendationToPodRequestType - -func init() { - t["ApplyStorageDrsRecommendationToPod_Task"] = reflect.TypeOf((*ApplyStorageDrsRecommendationToPod_Task)(nil)).Elem() -} - -type ApplyStorageDrsRecommendationToPod_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ApplyStorageDrsRecommendation_Task ApplyStorageDrsRecommendationRequestType - -func init() { - t["ApplyStorageDrsRecommendation_Task"] = reflect.TypeOf((*ApplyStorageDrsRecommendation_Task)(nil)).Elem() -} - -type ApplyStorageDrsRecommendation_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ApplyStorageRecommendationResult struct { - DynamicData - - Vm *ManagedObjectReference `xml:"vm,omitempty"` -} - -func init() { - t["ApplyStorageRecommendationResult"] = reflect.TypeOf((*ApplyStorageRecommendationResult)(nil)).Elem() -} - -type AreAlarmActionsEnabled AreAlarmActionsEnabledRequestType - -func init() { - t["AreAlarmActionsEnabled"] = reflect.TypeOf((*AreAlarmActionsEnabled)(nil)).Elem() -} - -type AreAlarmActionsEnabledRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["AreAlarmActionsEnabledRequestType"] = reflect.TypeOf((*AreAlarmActionsEnabledRequestType)(nil)).Elem() -} - -type AreAlarmActionsEnabledResponse struct { - Returnval bool `xml:"returnval"` -} - -type ArrayOfAlarmAction struct { - AlarmAction []BaseAlarmAction `xml:"AlarmAction,omitempty,typeattr"` -} - -func init() { - t["ArrayOfAlarmAction"] = reflect.TypeOf((*ArrayOfAlarmAction)(nil)).Elem() -} - -type ArrayOfAlarmExpression struct { - AlarmExpression []BaseAlarmExpression `xml:"AlarmExpression,omitempty,typeattr"` -} - -func init() { - t["ArrayOfAlarmExpression"] = reflect.TypeOf((*ArrayOfAlarmExpression)(nil)).Elem() -} - -type ArrayOfAlarmState struct { - AlarmState []AlarmState `xml:"AlarmState,omitempty"` -} - -func init() { - t["ArrayOfAlarmState"] = reflect.TypeOf((*ArrayOfAlarmState)(nil)).Elem() -} - -type ArrayOfAlarmTriggeringActionTransitionSpec struct { - AlarmTriggeringActionTransitionSpec []AlarmTriggeringActionTransitionSpec `xml:"AlarmTriggeringActionTransitionSpec,omitempty"` -} - -func init() { - t["ArrayOfAlarmTriggeringActionTransitionSpec"] = reflect.TypeOf((*ArrayOfAlarmTriggeringActionTransitionSpec)(nil)).Elem() -} - -type ArrayOfAnswerFileStatusError struct { - AnswerFileStatusError []AnswerFileStatusError `xml:"AnswerFileStatusError,omitempty"` -} - -func init() { - t["ArrayOfAnswerFileStatusError"] = reflect.TypeOf((*ArrayOfAnswerFileStatusError)(nil)).Elem() -} - -type ArrayOfAnswerFileStatusResult struct { - AnswerFileStatusResult []AnswerFileStatusResult `xml:"AnswerFileStatusResult,omitempty"` -} - -func init() { - t["ArrayOfAnswerFileStatusResult"] = reflect.TypeOf((*ArrayOfAnswerFileStatusResult)(nil)).Elem() -} - -type ArrayOfAnswerFileUpdateFailure struct { - AnswerFileUpdateFailure []AnswerFileUpdateFailure `xml:"AnswerFileUpdateFailure,omitempty"` -} - -func init() { - t["ArrayOfAnswerFileUpdateFailure"] = reflect.TypeOf((*ArrayOfAnswerFileUpdateFailure)(nil)).Elem() -} - -type ArrayOfAnyType struct { - AnyType []AnyType `xml:"anyType,omitempty,typeattr"` -} - -func init() { - t["ArrayOfAnyType"] = reflect.TypeOf((*ArrayOfAnyType)(nil)).Elem() -} - -type ArrayOfAnyURI struct { - AnyURI []url.URL `xml:"anyURI,omitempty"` -} - -func init() { - t["ArrayOfAnyURI"] = reflect.TypeOf((*ArrayOfAnyURI)(nil)).Elem() -} - -type ArrayOfApplyHostProfileConfigurationSpec struct { - ApplyHostProfileConfigurationSpec []ApplyHostProfileConfigurationSpec `xml:"ApplyHostProfileConfigurationSpec,omitempty"` -} - -func init() { - t["ArrayOfApplyHostProfileConfigurationSpec"] = reflect.TypeOf((*ArrayOfApplyHostProfileConfigurationSpec)(nil)).Elem() -} - -type ArrayOfApplyProfile struct { - ApplyProfile []BaseApplyProfile `xml:"ApplyProfile,omitempty,typeattr"` -} - -func init() { - t["ArrayOfApplyProfile"] = reflect.TypeOf((*ArrayOfApplyProfile)(nil)).Elem() -} - -type ArrayOfAuthorizationPrivilege struct { - AuthorizationPrivilege []AuthorizationPrivilege `xml:"AuthorizationPrivilege,omitempty"` -} - -func init() { - t["ArrayOfAuthorizationPrivilege"] = reflect.TypeOf((*ArrayOfAuthorizationPrivilege)(nil)).Elem() -} - -type ArrayOfAuthorizationRole struct { - AuthorizationRole []AuthorizationRole `xml:"AuthorizationRole,omitempty"` -} - -func init() { - t["ArrayOfAuthorizationRole"] = reflect.TypeOf((*ArrayOfAuthorizationRole)(nil)).Elem() -} - -type ArrayOfAutoStartPowerInfo struct { - AutoStartPowerInfo []AutoStartPowerInfo `xml:"AutoStartPowerInfo,omitempty"` -} - -func init() { - t["ArrayOfAutoStartPowerInfo"] = reflect.TypeOf((*ArrayOfAutoStartPowerInfo)(nil)).Elem() -} - -type ArrayOfBoolean struct { - Boolean []bool `xml:"boolean,omitempty"` -} - -func init() { - t["ArrayOfBoolean"] = reflect.TypeOf((*ArrayOfBoolean)(nil)).Elem() -} - -type ArrayOfByte struct { - Byte []byte `xml:"byte,omitempty"` -} - -func init() { - t["ArrayOfByte"] = reflect.TypeOf((*ArrayOfByte)(nil)).Elem() -} - -type ArrayOfChangesInfoEventArgument struct { - ChangesInfoEventArgument []ChangesInfoEventArgument `xml:"ChangesInfoEventArgument,omitempty"` -} - -func init() { - t["ArrayOfChangesInfoEventArgument"] = reflect.TypeOf((*ArrayOfChangesInfoEventArgument)(nil)).Elem() -} - -type ArrayOfCheckResult struct { - CheckResult []CheckResult `xml:"CheckResult,omitempty"` -} - -func init() { - t["ArrayOfCheckResult"] = reflect.TypeOf((*ArrayOfCheckResult)(nil)).Elem() -} - -type ArrayOfClusterAction struct { - ClusterAction []BaseClusterAction `xml:"ClusterAction,omitempty,typeattr"` -} - -func init() { - t["ArrayOfClusterAction"] = reflect.TypeOf((*ArrayOfClusterAction)(nil)).Elem() -} - -type ArrayOfClusterActionHistory struct { - ClusterActionHistory []ClusterActionHistory `xml:"ClusterActionHistory,omitempty"` -} - -func init() { - t["ArrayOfClusterActionHistory"] = reflect.TypeOf((*ArrayOfClusterActionHistory)(nil)).Elem() -} - -type ArrayOfClusterAttemptedVmInfo struct { - ClusterAttemptedVmInfo []ClusterAttemptedVmInfo `xml:"ClusterAttemptedVmInfo,omitempty"` -} - -func init() { - t["ArrayOfClusterAttemptedVmInfo"] = reflect.TypeOf((*ArrayOfClusterAttemptedVmInfo)(nil)).Elem() -} - -type ArrayOfClusterDasAamNodeState struct { - ClusterDasAamNodeState []ClusterDasAamNodeState `xml:"ClusterDasAamNodeState,omitempty"` -} - -func init() { - t["ArrayOfClusterDasAamNodeState"] = reflect.TypeOf((*ArrayOfClusterDasAamNodeState)(nil)).Elem() -} - -type ArrayOfClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots struct { - ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots []ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots `xml:"ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots,omitempty"` -} - -func init() { - t["ArrayOfClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots"] = reflect.TypeOf((*ArrayOfClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots)(nil)).Elem() -} - -type ArrayOfClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots struct { - ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots []ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots `xml:"ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots,omitempty"` -} - -func init() { - t["ArrayOfClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots"] = reflect.TypeOf((*ArrayOfClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots)(nil)).Elem() -} - -type ArrayOfClusterDasVmConfigInfo struct { - ClusterDasVmConfigInfo []ClusterDasVmConfigInfo `xml:"ClusterDasVmConfigInfo,omitempty"` -} - -func init() { - t["ArrayOfClusterDasVmConfigInfo"] = reflect.TypeOf((*ArrayOfClusterDasVmConfigInfo)(nil)).Elem() -} - -type ArrayOfClusterDasVmConfigSpec struct { - ClusterDasVmConfigSpec []ClusterDasVmConfigSpec `xml:"ClusterDasVmConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfClusterDasVmConfigSpec"] = reflect.TypeOf((*ArrayOfClusterDasVmConfigSpec)(nil)).Elem() -} - -type ArrayOfClusterDpmHostConfigInfo struct { - ClusterDpmHostConfigInfo []ClusterDpmHostConfigInfo `xml:"ClusterDpmHostConfigInfo,omitempty"` -} - -func init() { - t["ArrayOfClusterDpmHostConfigInfo"] = reflect.TypeOf((*ArrayOfClusterDpmHostConfigInfo)(nil)).Elem() -} - -type ArrayOfClusterDpmHostConfigSpec struct { - ClusterDpmHostConfigSpec []ClusterDpmHostConfigSpec `xml:"ClusterDpmHostConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfClusterDpmHostConfigSpec"] = reflect.TypeOf((*ArrayOfClusterDpmHostConfigSpec)(nil)).Elem() -} - -type ArrayOfClusterDrsFaults struct { - ClusterDrsFaults []ClusterDrsFaults `xml:"ClusterDrsFaults,omitempty"` -} - -func init() { - t["ArrayOfClusterDrsFaults"] = reflect.TypeOf((*ArrayOfClusterDrsFaults)(nil)).Elem() -} - -type ArrayOfClusterDrsFaultsFaultsByVm struct { - ClusterDrsFaultsFaultsByVm []BaseClusterDrsFaultsFaultsByVm `xml:"ClusterDrsFaultsFaultsByVm,omitempty,typeattr"` -} - -func init() { - t["ArrayOfClusterDrsFaultsFaultsByVm"] = reflect.TypeOf((*ArrayOfClusterDrsFaultsFaultsByVm)(nil)).Elem() -} - -type ArrayOfClusterDrsMigration struct { - ClusterDrsMigration []ClusterDrsMigration `xml:"ClusterDrsMigration,omitempty"` -} - -func init() { - t["ArrayOfClusterDrsMigration"] = reflect.TypeOf((*ArrayOfClusterDrsMigration)(nil)).Elem() -} - -type ArrayOfClusterDrsRecommendation struct { - ClusterDrsRecommendation []ClusterDrsRecommendation `xml:"ClusterDrsRecommendation,omitempty"` -} - -func init() { - t["ArrayOfClusterDrsRecommendation"] = reflect.TypeOf((*ArrayOfClusterDrsRecommendation)(nil)).Elem() -} - -type ArrayOfClusterDrsVmConfigInfo struct { - ClusterDrsVmConfigInfo []ClusterDrsVmConfigInfo `xml:"ClusterDrsVmConfigInfo,omitempty"` -} - -func init() { - t["ArrayOfClusterDrsVmConfigInfo"] = reflect.TypeOf((*ArrayOfClusterDrsVmConfigInfo)(nil)).Elem() -} - -type ArrayOfClusterDrsVmConfigSpec struct { - ClusterDrsVmConfigSpec []ClusterDrsVmConfigSpec `xml:"ClusterDrsVmConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfClusterDrsVmConfigSpec"] = reflect.TypeOf((*ArrayOfClusterDrsVmConfigSpec)(nil)).Elem() -} - -type ArrayOfClusterEVCManagerCheckResult struct { - ClusterEVCManagerCheckResult []ClusterEVCManagerCheckResult `xml:"ClusterEVCManagerCheckResult,omitempty"` -} - -func init() { - t["ArrayOfClusterEVCManagerCheckResult"] = reflect.TypeOf((*ArrayOfClusterEVCManagerCheckResult)(nil)).Elem() -} - -type ArrayOfClusterFailoverHostAdmissionControlInfoHostStatus struct { - ClusterFailoverHostAdmissionControlInfoHostStatus []ClusterFailoverHostAdmissionControlInfoHostStatus `xml:"ClusterFailoverHostAdmissionControlInfoHostStatus,omitempty"` -} - -func init() { - t["ArrayOfClusterFailoverHostAdmissionControlInfoHostStatus"] = reflect.TypeOf((*ArrayOfClusterFailoverHostAdmissionControlInfoHostStatus)(nil)).Elem() -} - -type ArrayOfClusterGroupInfo struct { - ClusterGroupInfo []BaseClusterGroupInfo `xml:"ClusterGroupInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfClusterGroupInfo"] = reflect.TypeOf((*ArrayOfClusterGroupInfo)(nil)).Elem() -} - -type ArrayOfClusterGroupSpec struct { - ClusterGroupSpec []ClusterGroupSpec `xml:"ClusterGroupSpec,omitempty"` -} - -func init() { - t["ArrayOfClusterGroupSpec"] = reflect.TypeOf((*ArrayOfClusterGroupSpec)(nil)).Elem() -} - -type ArrayOfClusterHostRecommendation struct { - ClusterHostRecommendation []ClusterHostRecommendation `xml:"ClusterHostRecommendation,omitempty"` -} - -func init() { - t["ArrayOfClusterHostRecommendation"] = reflect.TypeOf((*ArrayOfClusterHostRecommendation)(nil)).Elem() -} - -type ArrayOfClusterIoFilterInfo struct { - ClusterIoFilterInfo []ClusterIoFilterInfo `xml:"ClusterIoFilterInfo,omitempty"` -} - -func init() { - t["ArrayOfClusterIoFilterInfo"] = reflect.TypeOf((*ArrayOfClusterIoFilterInfo)(nil)).Elem() -} - -type ArrayOfClusterNotAttemptedVmInfo struct { - ClusterNotAttemptedVmInfo []ClusterNotAttemptedVmInfo `xml:"ClusterNotAttemptedVmInfo,omitempty"` -} - -func init() { - t["ArrayOfClusterNotAttemptedVmInfo"] = reflect.TypeOf((*ArrayOfClusterNotAttemptedVmInfo)(nil)).Elem() -} - -type ArrayOfClusterRecommendation struct { - ClusterRecommendation []ClusterRecommendation `xml:"ClusterRecommendation,omitempty"` -} - -func init() { - t["ArrayOfClusterRecommendation"] = reflect.TypeOf((*ArrayOfClusterRecommendation)(nil)).Elem() -} - -type ArrayOfClusterRuleInfo struct { - ClusterRuleInfo []BaseClusterRuleInfo `xml:"ClusterRuleInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfClusterRuleInfo"] = reflect.TypeOf((*ArrayOfClusterRuleInfo)(nil)).Elem() -} - -type ArrayOfClusterRuleSpec struct { - ClusterRuleSpec []ClusterRuleSpec `xml:"ClusterRuleSpec,omitempty"` -} - -func init() { - t["ArrayOfClusterRuleSpec"] = reflect.TypeOf((*ArrayOfClusterRuleSpec)(nil)).Elem() -} - -type ArrayOfClusterVmOrchestrationInfo struct { - ClusterVmOrchestrationInfo []ClusterVmOrchestrationInfo `xml:"ClusterVmOrchestrationInfo,omitempty"` -} - -func init() { - t["ArrayOfClusterVmOrchestrationInfo"] = reflect.TypeOf((*ArrayOfClusterVmOrchestrationInfo)(nil)).Elem() -} - -type ArrayOfClusterVmOrchestrationSpec struct { - ClusterVmOrchestrationSpec []ClusterVmOrchestrationSpec `xml:"ClusterVmOrchestrationSpec,omitempty"` -} - -func init() { - t["ArrayOfClusterVmOrchestrationSpec"] = reflect.TypeOf((*ArrayOfClusterVmOrchestrationSpec)(nil)).Elem() -} - -type ArrayOfComplianceFailure struct { - ComplianceFailure []ComplianceFailure `xml:"ComplianceFailure,omitempty"` -} - -func init() { - t["ArrayOfComplianceFailure"] = reflect.TypeOf((*ArrayOfComplianceFailure)(nil)).Elem() -} - -type ArrayOfComplianceFailureComplianceFailureValues struct { - ComplianceFailureComplianceFailureValues []ComplianceFailureComplianceFailureValues `xml:"ComplianceFailureComplianceFailureValues,omitempty"` -} - -func init() { - t["ArrayOfComplianceFailureComplianceFailureValues"] = reflect.TypeOf((*ArrayOfComplianceFailureComplianceFailureValues)(nil)).Elem() -} - -type ArrayOfComplianceLocator struct { - ComplianceLocator []ComplianceLocator `xml:"ComplianceLocator,omitempty"` -} - -func init() { - t["ArrayOfComplianceLocator"] = reflect.TypeOf((*ArrayOfComplianceLocator)(nil)).Elem() -} - -type ArrayOfComplianceResult struct { - ComplianceResult []ComplianceResult `xml:"ComplianceResult,omitempty"` -} - -func init() { - t["ArrayOfComplianceResult"] = reflect.TypeOf((*ArrayOfComplianceResult)(nil)).Elem() -} - -type ArrayOfComputeResourceHostSPBMLicenseInfo struct { - ComputeResourceHostSPBMLicenseInfo []ComputeResourceHostSPBMLicenseInfo `xml:"ComputeResourceHostSPBMLicenseInfo,omitempty"` -} - -func init() { - t["ArrayOfComputeResourceHostSPBMLicenseInfo"] = reflect.TypeOf((*ArrayOfComputeResourceHostSPBMLicenseInfo)(nil)).Elem() -} - -type ArrayOfConflictingConfigurationConfig struct { - ConflictingConfigurationConfig []ConflictingConfigurationConfig `xml:"ConflictingConfigurationConfig,omitempty"` -} - -func init() { - t["ArrayOfConflictingConfigurationConfig"] = reflect.TypeOf((*ArrayOfConflictingConfigurationConfig)(nil)).Elem() -} - -type ArrayOfCryptoKeyId struct { - CryptoKeyId []CryptoKeyId `xml:"CryptoKeyId,omitempty"` -} - -func init() { - t["ArrayOfCryptoKeyId"] = reflect.TypeOf((*ArrayOfCryptoKeyId)(nil)).Elem() -} - -type ArrayOfCryptoKeyPlain struct { - CryptoKeyPlain []CryptoKeyPlain `xml:"CryptoKeyPlain,omitempty"` -} - -func init() { - t["ArrayOfCryptoKeyPlain"] = reflect.TypeOf((*ArrayOfCryptoKeyPlain)(nil)).Elem() -} - -type ArrayOfCryptoKeyResult struct { - CryptoKeyResult []CryptoKeyResult `xml:"CryptoKeyResult,omitempty"` -} - -func init() { - t["ArrayOfCryptoKeyResult"] = reflect.TypeOf((*ArrayOfCryptoKeyResult)(nil)).Elem() -} - -type ArrayOfCryptoManagerKmipClusterStatus struct { - CryptoManagerKmipClusterStatus []CryptoManagerKmipClusterStatus `xml:"CryptoManagerKmipClusterStatus,omitempty"` -} - -func init() { - t["ArrayOfCryptoManagerKmipClusterStatus"] = reflect.TypeOf((*ArrayOfCryptoManagerKmipClusterStatus)(nil)).Elem() -} - -type ArrayOfCryptoManagerKmipServerStatus struct { - CryptoManagerKmipServerStatus []CryptoManagerKmipServerStatus `xml:"CryptoManagerKmipServerStatus,omitempty"` -} - -func init() { - t["ArrayOfCryptoManagerKmipServerStatus"] = reflect.TypeOf((*ArrayOfCryptoManagerKmipServerStatus)(nil)).Elem() -} - -type ArrayOfCustomFieldDef struct { - CustomFieldDef []CustomFieldDef `xml:"CustomFieldDef,omitempty"` -} - -func init() { - t["ArrayOfCustomFieldDef"] = reflect.TypeOf((*ArrayOfCustomFieldDef)(nil)).Elem() -} - -type ArrayOfCustomFieldValue struct { - CustomFieldValue []BaseCustomFieldValue `xml:"CustomFieldValue,omitempty,typeattr"` -} - -func init() { - t["ArrayOfCustomFieldValue"] = reflect.TypeOf((*ArrayOfCustomFieldValue)(nil)).Elem() -} - -type ArrayOfCustomizationAdapterMapping struct { - CustomizationAdapterMapping []CustomizationAdapterMapping `xml:"CustomizationAdapterMapping,omitempty"` -} - -func init() { - t["ArrayOfCustomizationAdapterMapping"] = reflect.TypeOf((*ArrayOfCustomizationAdapterMapping)(nil)).Elem() -} - -type ArrayOfCustomizationIpV6Generator struct { - CustomizationIpV6Generator []BaseCustomizationIpV6Generator `xml:"CustomizationIpV6Generator,omitempty,typeattr"` -} - -func init() { - t["ArrayOfCustomizationIpV6Generator"] = reflect.TypeOf((*ArrayOfCustomizationIpV6Generator)(nil)).Elem() -} - -type ArrayOfCustomizationSpecInfo struct { - CustomizationSpecInfo []CustomizationSpecInfo `xml:"CustomizationSpecInfo,omitempty"` -} - -func init() { - t["ArrayOfCustomizationSpecInfo"] = reflect.TypeOf((*ArrayOfCustomizationSpecInfo)(nil)).Elem() -} - -type ArrayOfDVPortConfigSpec struct { - DVPortConfigSpec []DVPortConfigSpec `xml:"DVPortConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfDVPortConfigSpec"] = reflect.TypeOf((*ArrayOfDVPortConfigSpec)(nil)).Elem() -} - -type ArrayOfDVPortgroupConfigSpec struct { - DVPortgroupConfigSpec []DVPortgroupConfigSpec `xml:"DVPortgroupConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfDVPortgroupConfigSpec"] = reflect.TypeOf((*ArrayOfDVPortgroupConfigSpec)(nil)).Elem() -} - -type ArrayOfDVSHealthCheckConfig struct { - DVSHealthCheckConfig []BaseDVSHealthCheckConfig `xml:"DVSHealthCheckConfig,omitempty,typeattr"` -} - -func init() { - t["ArrayOfDVSHealthCheckConfig"] = reflect.TypeOf((*ArrayOfDVSHealthCheckConfig)(nil)).Elem() -} - -type ArrayOfDVSNetworkResourcePool struct { - DVSNetworkResourcePool []DVSNetworkResourcePool `xml:"DVSNetworkResourcePool,omitempty"` -} - -func init() { - t["ArrayOfDVSNetworkResourcePool"] = reflect.TypeOf((*ArrayOfDVSNetworkResourcePool)(nil)).Elem() -} - -type ArrayOfDVSNetworkResourcePoolConfigSpec struct { - DVSNetworkResourcePoolConfigSpec []DVSNetworkResourcePoolConfigSpec `xml:"DVSNetworkResourcePoolConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfDVSNetworkResourcePoolConfigSpec"] = reflect.TypeOf((*ArrayOfDVSNetworkResourcePoolConfigSpec)(nil)).Elem() -} - -type ArrayOfDVSVmVnicNetworkResourcePool struct { - DVSVmVnicNetworkResourcePool []DVSVmVnicNetworkResourcePool `xml:"DVSVmVnicNetworkResourcePool,omitempty"` -} - -func init() { - t["ArrayOfDVSVmVnicNetworkResourcePool"] = reflect.TypeOf((*ArrayOfDVSVmVnicNetworkResourcePool)(nil)).Elem() -} - -type ArrayOfDasHeartbeatDatastoreInfo struct { - DasHeartbeatDatastoreInfo []DasHeartbeatDatastoreInfo `xml:"DasHeartbeatDatastoreInfo,omitempty"` -} - -func init() { - t["ArrayOfDasHeartbeatDatastoreInfo"] = reflect.TypeOf((*ArrayOfDasHeartbeatDatastoreInfo)(nil)).Elem() -} - -type ArrayOfDatacenterMismatchArgument struct { - DatacenterMismatchArgument []DatacenterMismatchArgument `xml:"DatacenterMismatchArgument,omitempty"` -} - -func init() { - t["ArrayOfDatacenterMismatchArgument"] = reflect.TypeOf((*ArrayOfDatacenterMismatchArgument)(nil)).Elem() -} - -type ArrayOfDatastoreHostMount struct { - DatastoreHostMount []DatastoreHostMount `xml:"DatastoreHostMount,omitempty"` -} - -func init() { - t["ArrayOfDatastoreHostMount"] = reflect.TypeOf((*ArrayOfDatastoreHostMount)(nil)).Elem() -} - -type ArrayOfDatastoreMountPathDatastorePair struct { - DatastoreMountPathDatastorePair []DatastoreMountPathDatastorePair `xml:"DatastoreMountPathDatastorePair,omitempty"` -} - -func init() { - t["ArrayOfDatastoreMountPathDatastorePair"] = reflect.TypeOf((*ArrayOfDatastoreMountPathDatastorePair)(nil)).Elem() -} - -type ArrayOfDatastoreVVolContainerFailoverPair struct { - DatastoreVVolContainerFailoverPair []DatastoreVVolContainerFailoverPair `xml:"DatastoreVVolContainerFailoverPair,omitempty"` -} - -func init() { - t["ArrayOfDatastoreVVolContainerFailoverPair"] = reflect.TypeOf((*ArrayOfDatastoreVVolContainerFailoverPair)(nil)).Elem() -} - -type ArrayOfDiagnosticManagerBundleInfo struct { - DiagnosticManagerBundleInfo []DiagnosticManagerBundleInfo `xml:"DiagnosticManagerBundleInfo,omitempty"` -} - -func init() { - t["ArrayOfDiagnosticManagerBundleInfo"] = reflect.TypeOf((*ArrayOfDiagnosticManagerBundleInfo)(nil)).Elem() -} - -type ArrayOfDiagnosticManagerLogDescriptor struct { - DiagnosticManagerLogDescriptor []DiagnosticManagerLogDescriptor `xml:"DiagnosticManagerLogDescriptor,omitempty"` -} - -func init() { - t["ArrayOfDiagnosticManagerLogDescriptor"] = reflect.TypeOf((*ArrayOfDiagnosticManagerLogDescriptor)(nil)).Elem() -} - -type ArrayOfDiskChangeExtent struct { - DiskChangeExtent []DiskChangeExtent `xml:"DiskChangeExtent,omitempty"` -} - -func init() { - t["ArrayOfDiskChangeExtent"] = reflect.TypeOf((*ArrayOfDiskChangeExtent)(nil)).Elem() -} - -type ArrayOfDistributedVirtualPort struct { - DistributedVirtualPort []DistributedVirtualPort `xml:"DistributedVirtualPort,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualPort"] = reflect.TypeOf((*ArrayOfDistributedVirtualPort)(nil)).Elem() -} - -type ArrayOfDistributedVirtualPortgroupInfo struct { - DistributedVirtualPortgroupInfo []DistributedVirtualPortgroupInfo `xml:"DistributedVirtualPortgroupInfo,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualPortgroupInfo"] = reflect.TypeOf((*ArrayOfDistributedVirtualPortgroupInfo)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchHostMember struct { - DistributedVirtualSwitchHostMember []DistributedVirtualSwitchHostMember `xml:"DistributedVirtualSwitchHostMember,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchHostMember"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchHostMember)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchHostMemberConfigSpec struct { - DistributedVirtualSwitchHostMemberConfigSpec []DistributedVirtualSwitchHostMemberConfigSpec `xml:"DistributedVirtualSwitchHostMemberConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchHostMemberConfigSpec"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchHostMemberConfigSpec)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchHostMemberPnicSpec struct { - DistributedVirtualSwitchHostMemberPnicSpec []DistributedVirtualSwitchHostMemberPnicSpec `xml:"DistributedVirtualSwitchHostMemberPnicSpec,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchHostMemberPnicSpec"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchHostMemberPnicSpec)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchHostProductSpec struct { - DistributedVirtualSwitchHostProductSpec []DistributedVirtualSwitchHostProductSpec `xml:"DistributedVirtualSwitchHostProductSpec,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchHostProductSpec"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchHostProductSpec)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchInfo struct { - DistributedVirtualSwitchInfo []DistributedVirtualSwitchInfo `xml:"DistributedVirtualSwitchInfo,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchInfo"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchInfo)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchKeyedOpaqueBlob struct { - DistributedVirtualSwitchKeyedOpaqueBlob []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"DistributedVirtualSwitchKeyedOpaqueBlob,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchKeyedOpaqueBlob"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchKeyedOpaqueBlob)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchManagerCompatibilityResult struct { - DistributedVirtualSwitchManagerCompatibilityResult []DistributedVirtualSwitchManagerCompatibilityResult `xml:"DistributedVirtualSwitchManagerCompatibilityResult,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchManagerCompatibilityResult"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchManagerCompatibilityResult)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchManagerHostDvsFilterSpec struct { - DistributedVirtualSwitchManagerHostDvsFilterSpec []BaseDistributedVirtualSwitchManagerHostDvsFilterSpec `xml:"DistributedVirtualSwitchManagerHostDvsFilterSpec,omitempty,typeattr"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchManagerHostDvsFilterSpec"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchManagerHostDvsFilterSpec)(nil)).Elem() -} - -type ArrayOfDistributedVirtualSwitchProductSpec struct { - DistributedVirtualSwitchProductSpec []DistributedVirtualSwitchProductSpec `xml:"DistributedVirtualSwitchProductSpec,omitempty"` -} - -func init() { - t["ArrayOfDistributedVirtualSwitchProductSpec"] = reflect.TypeOf((*ArrayOfDistributedVirtualSwitchProductSpec)(nil)).Elem() -} - -type ArrayOfDouble struct { - Double []float64 `xml:"double,omitempty"` -} - -func init() { - t["ArrayOfDouble"] = reflect.TypeOf((*ArrayOfDouble)(nil)).Elem() -} - -type ArrayOfDvsApplyOperationFaultFaultOnObject struct { - DvsApplyOperationFaultFaultOnObject []DvsApplyOperationFaultFaultOnObject `xml:"DvsApplyOperationFaultFaultOnObject,omitempty"` -} - -func init() { - t["ArrayOfDvsApplyOperationFaultFaultOnObject"] = reflect.TypeOf((*ArrayOfDvsApplyOperationFaultFaultOnObject)(nil)).Elem() -} - -type ArrayOfDvsFilterConfig struct { - DvsFilterConfig []BaseDvsFilterConfig `xml:"DvsFilterConfig,omitempty,typeattr"` -} - -func init() { - t["ArrayOfDvsFilterConfig"] = reflect.TypeOf((*ArrayOfDvsFilterConfig)(nil)).Elem() -} - -type ArrayOfDvsHostInfrastructureTrafficResource struct { - DvsHostInfrastructureTrafficResource []DvsHostInfrastructureTrafficResource `xml:"DvsHostInfrastructureTrafficResource,omitempty"` -} - -func init() { - t["ArrayOfDvsHostInfrastructureTrafficResource"] = reflect.TypeOf((*ArrayOfDvsHostInfrastructureTrafficResource)(nil)).Elem() -} - -type ArrayOfDvsHostVNicProfile struct { - DvsHostVNicProfile []DvsHostVNicProfile `xml:"DvsHostVNicProfile,omitempty"` -} - -func init() { - t["ArrayOfDvsHostVNicProfile"] = reflect.TypeOf((*ArrayOfDvsHostVNicProfile)(nil)).Elem() -} - -type ArrayOfDvsNetworkRuleQualifier struct { - DvsNetworkRuleQualifier []BaseDvsNetworkRuleQualifier `xml:"DvsNetworkRuleQualifier,omitempty,typeattr"` -} - -func init() { - t["ArrayOfDvsNetworkRuleQualifier"] = reflect.TypeOf((*ArrayOfDvsNetworkRuleQualifier)(nil)).Elem() -} - -type ArrayOfDvsOperationBulkFaultFaultOnHost struct { - DvsOperationBulkFaultFaultOnHost []DvsOperationBulkFaultFaultOnHost `xml:"DvsOperationBulkFaultFaultOnHost,omitempty"` -} - -func init() { - t["ArrayOfDvsOperationBulkFaultFaultOnHost"] = reflect.TypeOf((*ArrayOfDvsOperationBulkFaultFaultOnHost)(nil)).Elem() -} - -type ArrayOfDvsOutOfSyncHostArgument struct { - DvsOutOfSyncHostArgument []DvsOutOfSyncHostArgument `xml:"DvsOutOfSyncHostArgument,omitempty"` -} - -func init() { - t["ArrayOfDvsOutOfSyncHostArgument"] = reflect.TypeOf((*ArrayOfDvsOutOfSyncHostArgument)(nil)).Elem() -} - -type ArrayOfDvsProfile struct { - DvsProfile []DvsProfile `xml:"DvsProfile,omitempty"` -} - -func init() { - t["ArrayOfDvsProfile"] = reflect.TypeOf((*ArrayOfDvsProfile)(nil)).Elem() -} - -type ArrayOfDvsServiceConsoleVNicProfile struct { - DvsServiceConsoleVNicProfile []DvsServiceConsoleVNicProfile `xml:"DvsServiceConsoleVNicProfile,omitempty"` -} - -func init() { - t["ArrayOfDvsServiceConsoleVNicProfile"] = reflect.TypeOf((*ArrayOfDvsServiceConsoleVNicProfile)(nil)).Elem() -} - -type ArrayOfDvsTrafficRule struct { - DvsTrafficRule []DvsTrafficRule `xml:"DvsTrafficRule,omitempty"` -} - -func init() { - t["ArrayOfDvsTrafficRule"] = reflect.TypeOf((*ArrayOfDvsTrafficRule)(nil)).Elem() -} - -type ArrayOfDvsVmVnicNetworkResourcePoolRuntimeInfo struct { - DvsVmVnicNetworkResourcePoolRuntimeInfo []DvsVmVnicNetworkResourcePoolRuntimeInfo `xml:"DvsVmVnicNetworkResourcePoolRuntimeInfo,omitempty"` -} - -func init() { - t["ArrayOfDvsVmVnicNetworkResourcePoolRuntimeInfo"] = reflect.TypeOf((*ArrayOfDvsVmVnicNetworkResourcePoolRuntimeInfo)(nil)).Elem() -} - -type ArrayOfDvsVmVnicResourcePoolConfigSpec struct { - DvsVmVnicResourcePoolConfigSpec []DvsVmVnicResourcePoolConfigSpec `xml:"DvsVmVnicResourcePoolConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfDvsVmVnicResourcePoolConfigSpec"] = reflect.TypeOf((*ArrayOfDvsVmVnicResourcePoolConfigSpec)(nil)).Elem() -} - -type ArrayOfDvsVnicAllocatedResource struct { - DvsVnicAllocatedResource []DvsVnicAllocatedResource `xml:"DvsVnicAllocatedResource,omitempty"` -} - -func init() { - t["ArrayOfDvsVnicAllocatedResource"] = reflect.TypeOf((*ArrayOfDvsVnicAllocatedResource)(nil)).Elem() -} - -type ArrayOfDynamicProperty struct { - DynamicProperty []DynamicProperty `xml:"DynamicProperty,omitempty"` -} - -func init() { - t["ArrayOfDynamicProperty"] = reflect.TypeOf((*ArrayOfDynamicProperty)(nil)).Elem() -} - -type ArrayOfEVCMode struct { - EVCMode []EVCMode `xml:"EVCMode,omitempty"` -} - -func init() { - t["ArrayOfEVCMode"] = reflect.TypeOf((*ArrayOfEVCMode)(nil)).Elem() -} - -type ArrayOfElementDescription struct { - ElementDescription []BaseElementDescription `xml:"ElementDescription,omitempty,typeattr"` -} - -func init() { - t["ArrayOfElementDescription"] = reflect.TypeOf((*ArrayOfElementDescription)(nil)).Elem() -} - -type ArrayOfEntityBackupConfig struct { - EntityBackupConfig []EntityBackupConfig `xml:"EntityBackupConfig,omitempty"` -} - -func init() { - t["ArrayOfEntityBackupConfig"] = reflect.TypeOf((*ArrayOfEntityBackupConfig)(nil)).Elem() -} - -type ArrayOfEntityPrivilege struct { - EntityPrivilege []EntityPrivilege `xml:"EntityPrivilege,omitempty"` -} - -func init() { - t["ArrayOfEntityPrivilege"] = reflect.TypeOf((*ArrayOfEntityPrivilege)(nil)).Elem() -} - -type ArrayOfEnumDescription struct { - EnumDescription []EnumDescription `xml:"EnumDescription,omitempty"` -} - -func init() { - t["ArrayOfEnumDescription"] = reflect.TypeOf((*ArrayOfEnumDescription)(nil)).Elem() -} - -type ArrayOfEvent struct { - Event []BaseEvent `xml:"Event,omitempty,typeattr"` -} - -func init() { - t["ArrayOfEvent"] = reflect.TypeOf((*ArrayOfEvent)(nil)).Elem() -} - -type ArrayOfEventAlarmExpressionComparison struct { - EventAlarmExpressionComparison []EventAlarmExpressionComparison `xml:"EventAlarmExpressionComparison,omitempty"` -} - -func init() { - t["ArrayOfEventAlarmExpressionComparison"] = reflect.TypeOf((*ArrayOfEventAlarmExpressionComparison)(nil)).Elem() -} - -type ArrayOfEventArgDesc struct { - EventArgDesc []EventArgDesc `xml:"EventArgDesc,omitempty"` -} - -func init() { - t["ArrayOfEventArgDesc"] = reflect.TypeOf((*ArrayOfEventArgDesc)(nil)).Elem() -} - -type ArrayOfEventDescriptionEventDetail struct { - EventDescriptionEventDetail []EventDescriptionEventDetail `xml:"EventDescriptionEventDetail,omitempty"` -} - -func init() { - t["ArrayOfEventDescriptionEventDetail"] = reflect.TypeOf((*ArrayOfEventDescriptionEventDetail)(nil)).Elem() -} - -type ArrayOfExtManagedEntityInfo struct { - ExtManagedEntityInfo []ExtManagedEntityInfo `xml:"ExtManagedEntityInfo,omitempty"` -} - -func init() { - t["ArrayOfExtManagedEntityInfo"] = reflect.TypeOf((*ArrayOfExtManagedEntityInfo)(nil)).Elem() -} - -type ArrayOfExtSolutionManagerInfoTabInfo struct { - ExtSolutionManagerInfoTabInfo []ExtSolutionManagerInfoTabInfo `xml:"ExtSolutionManagerInfoTabInfo,omitempty"` -} - -func init() { - t["ArrayOfExtSolutionManagerInfoTabInfo"] = reflect.TypeOf((*ArrayOfExtSolutionManagerInfoTabInfo)(nil)).Elem() -} - -type ArrayOfExtendedEventPair struct { - ExtendedEventPair []ExtendedEventPair `xml:"ExtendedEventPair,omitempty"` -} - -func init() { - t["ArrayOfExtendedEventPair"] = reflect.TypeOf((*ArrayOfExtendedEventPair)(nil)).Elem() -} - -type ArrayOfExtension struct { - Extension []Extension `xml:"Extension,omitempty"` -} - -func init() { - t["ArrayOfExtension"] = reflect.TypeOf((*ArrayOfExtension)(nil)).Elem() -} - -type ArrayOfExtensionClientInfo struct { - ExtensionClientInfo []ExtensionClientInfo `xml:"ExtensionClientInfo,omitempty"` -} - -func init() { - t["ArrayOfExtensionClientInfo"] = reflect.TypeOf((*ArrayOfExtensionClientInfo)(nil)).Elem() -} - -type ArrayOfExtensionEventTypeInfo struct { - ExtensionEventTypeInfo []ExtensionEventTypeInfo `xml:"ExtensionEventTypeInfo,omitempty"` -} - -func init() { - t["ArrayOfExtensionEventTypeInfo"] = reflect.TypeOf((*ArrayOfExtensionEventTypeInfo)(nil)).Elem() -} - -type ArrayOfExtensionFaultTypeInfo struct { - ExtensionFaultTypeInfo []ExtensionFaultTypeInfo `xml:"ExtensionFaultTypeInfo,omitempty"` -} - -func init() { - t["ArrayOfExtensionFaultTypeInfo"] = reflect.TypeOf((*ArrayOfExtensionFaultTypeInfo)(nil)).Elem() -} - -type ArrayOfExtensionManagerIpAllocationUsage struct { - ExtensionManagerIpAllocationUsage []ExtensionManagerIpAllocationUsage `xml:"ExtensionManagerIpAllocationUsage,omitempty"` -} - -func init() { - t["ArrayOfExtensionManagerIpAllocationUsage"] = reflect.TypeOf((*ArrayOfExtensionManagerIpAllocationUsage)(nil)).Elem() -} - -type ArrayOfExtensionPrivilegeInfo struct { - ExtensionPrivilegeInfo []ExtensionPrivilegeInfo `xml:"ExtensionPrivilegeInfo,omitempty"` -} - -func init() { - t["ArrayOfExtensionPrivilegeInfo"] = reflect.TypeOf((*ArrayOfExtensionPrivilegeInfo)(nil)).Elem() -} - -type ArrayOfExtensionResourceInfo struct { - ExtensionResourceInfo []ExtensionResourceInfo `xml:"ExtensionResourceInfo,omitempty"` -} - -func init() { - t["ArrayOfExtensionResourceInfo"] = reflect.TypeOf((*ArrayOfExtensionResourceInfo)(nil)).Elem() -} - -type ArrayOfExtensionServerInfo struct { - ExtensionServerInfo []ExtensionServerInfo `xml:"ExtensionServerInfo,omitempty"` -} - -func init() { - t["ArrayOfExtensionServerInfo"] = reflect.TypeOf((*ArrayOfExtensionServerInfo)(nil)).Elem() -} - -type ArrayOfExtensionTaskTypeInfo struct { - ExtensionTaskTypeInfo []ExtensionTaskTypeInfo `xml:"ExtensionTaskTypeInfo,omitempty"` -} - -func init() { - t["ArrayOfExtensionTaskTypeInfo"] = reflect.TypeOf((*ArrayOfExtensionTaskTypeInfo)(nil)).Elem() -} - -type ArrayOfFaultToleranceDiskSpec struct { - FaultToleranceDiskSpec []FaultToleranceDiskSpec `xml:"FaultToleranceDiskSpec,omitempty"` -} - -func init() { - t["ArrayOfFaultToleranceDiskSpec"] = reflect.TypeOf((*ArrayOfFaultToleranceDiskSpec)(nil)).Elem() -} - -type ArrayOfFcoeConfigVlanRange struct { - FcoeConfigVlanRange []FcoeConfigVlanRange `xml:"FcoeConfigVlanRange,omitempty"` -} - -func init() { - t["ArrayOfFcoeConfigVlanRange"] = reflect.TypeOf((*ArrayOfFcoeConfigVlanRange)(nil)).Elem() -} - -type ArrayOfFileInfo struct { - FileInfo []BaseFileInfo `xml:"FileInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfFileInfo"] = reflect.TypeOf((*ArrayOfFileInfo)(nil)).Elem() -} - -type ArrayOfFileQuery struct { - FileQuery []BaseFileQuery `xml:"FileQuery,omitempty,typeattr"` -} - -func init() { - t["ArrayOfFileQuery"] = reflect.TypeOf((*ArrayOfFileQuery)(nil)).Elem() -} - -type ArrayOfFirewallProfileRulesetProfile struct { - FirewallProfileRulesetProfile []FirewallProfileRulesetProfile `xml:"FirewallProfileRulesetProfile,omitempty"` -} - -func init() { - t["ArrayOfFirewallProfileRulesetProfile"] = reflect.TypeOf((*ArrayOfFirewallProfileRulesetProfile)(nil)).Elem() -} - -type ArrayOfGuestAliases struct { - GuestAliases []GuestAliases `xml:"GuestAliases,omitempty"` -} - -func init() { - t["ArrayOfGuestAliases"] = reflect.TypeOf((*ArrayOfGuestAliases)(nil)).Elem() -} - -type ArrayOfGuestAuthAliasInfo struct { - GuestAuthAliasInfo []GuestAuthAliasInfo `xml:"GuestAuthAliasInfo,omitempty"` -} - -func init() { - t["ArrayOfGuestAuthAliasInfo"] = reflect.TypeOf((*ArrayOfGuestAuthAliasInfo)(nil)).Elem() -} - -type ArrayOfGuestAuthSubject struct { - GuestAuthSubject []BaseGuestAuthSubject `xml:"GuestAuthSubject,omitempty,typeattr"` -} - -func init() { - t["ArrayOfGuestAuthSubject"] = reflect.TypeOf((*ArrayOfGuestAuthSubject)(nil)).Elem() -} - -type ArrayOfGuestDiskInfo struct { - GuestDiskInfo []GuestDiskInfo `xml:"GuestDiskInfo,omitempty"` -} - -func init() { - t["ArrayOfGuestDiskInfo"] = reflect.TypeOf((*ArrayOfGuestDiskInfo)(nil)).Elem() -} - -type ArrayOfGuestFileInfo struct { - GuestFileInfo []GuestFileInfo `xml:"GuestFileInfo,omitempty"` -} - -func init() { - t["ArrayOfGuestFileInfo"] = reflect.TypeOf((*ArrayOfGuestFileInfo)(nil)).Elem() -} - -type ArrayOfGuestInfoNamespaceGenerationInfo struct { - GuestInfoNamespaceGenerationInfo []GuestInfoNamespaceGenerationInfo `xml:"GuestInfoNamespaceGenerationInfo,omitempty"` -} - -func init() { - t["ArrayOfGuestInfoNamespaceGenerationInfo"] = reflect.TypeOf((*ArrayOfGuestInfoNamespaceGenerationInfo)(nil)).Elem() -} - -type ArrayOfGuestMappedAliases struct { - GuestMappedAliases []GuestMappedAliases `xml:"GuestMappedAliases,omitempty"` -} - -func init() { - t["ArrayOfGuestMappedAliases"] = reflect.TypeOf((*ArrayOfGuestMappedAliases)(nil)).Elem() -} - -type ArrayOfGuestNicInfo struct { - GuestNicInfo []GuestNicInfo `xml:"GuestNicInfo,omitempty"` -} - -func init() { - t["ArrayOfGuestNicInfo"] = reflect.TypeOf((*ArrayOfGuestNicInfo)(nil)).Elem() -} - -type ArrayOfGuestOsDescriptor struct { - GuestOsDescriptor []GuestOsDescriptor `xml:"GuestOsDescriptor,omitempty"` -} - -func init() { - t["ArrayOfGuestOsDescriptor"] = reflect.TypeOf((*ArrayOfGuestOsDescriptor)(nil)).Elem() -} - -type ArrayOfGuestProcessInfo struct { - GuestProcessInfo []GuestProcessInfo `xml:"GuestProcessInfo,omitempty"` -} - -func init() { - t["ArrayOfGuestProcessInfo"] = reflect.TypeOf((*ArrayOfGuestProcessInfo)(nil)).Elem() -} - -type ArrayOfGuestRegKeyRecordSpec struct { - GuestRegKeyRecordSpec []GuestRegKeyRecordSpec `xml:"GuestRegKeyRecordSpec,omitempty"` -} - -func init() { - t["ArrayOfGuestRegKeyRecordSpec"] = reflect.TypeOf((*ArrayOfGuestRegKeyRecordSpec)(nil)).Elem() -} - -type ArrayOfGuestRegValueSpec struct { - GuestRegValueSpec []GuestRegValueSpec `xml:"GuestRegValueSpec,omitempty"` -} - -func init() { - t["ArrayOfGuestRegValueSpec"] = reflect.TypeOf((*ArrayOfGuestRegValueSpec)(nil)).Elem() -} - -type ArrayOfGuestStackInfo struct { - GuestStackInfo []GuestStackInfo `xml:"GuestStackInfo,omitempty"` -} - -func init() { - t["ArrayOfGuestStackInfo"] = reflect.TypeOf((*ArrayOfGuestStackInfo)(nil)).Elem() -} - -type ArrayOfHbrManagerVmReplicationCapability struct { - HbrManagerVmReplicationCapability []HbrManagerVmReplicationCapability `xml:"HbrManagerVmReplicationCapability,omitempty"` -} - -func init() { - t["ArrayOfHbrManagerVmReplicationCapability"] = reflect.TypeOf((*ArrayOfHbrManagerVmReplicationCapability)(nil)).Elem() -} - -type ArrayOfHealthUpdate struct { - HealthUpdate []HealthUpdate `xml:"HealthUpdate,omitempty"` -} - -func init() { - t["ArrayOfHealthUpdate"] = reflect.TypeOf((*ArrayOfHealthUpdate)(nil)).Elem() -} - -type ArrayOfHealthUpdateInfo struct { - HealthUpdateInfo []HealthUpdateInfo `xml:"HealthUpdateInfo,omitempty"` -} - -func init() { - t["ArrayOfHealthUpdateInfo"] = reflect.TypeOf((*ArrayOfHealthUpdateInfo)(nil)).Elem() -} - -type ArrayOfHostAccessControlEntry struct { - HostAccessControlEntry []HostAccessControlEntry `xml:"HostAccessControlEntry,omitempty"` -} - -func init() { - t["ArrayOfHostAccessControlEntry"] = reflect.TypeOf((*ArrayOfHostAccessControlEntry)(nil)).Elem() -} - -type ArrayOfHostAccountSpec struct { - HostAccountSpec []BaseHostAccountSpec `xml:"HostAccountSpec,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostAccountSpec"] = reflect.TypeOf((*ArrayOfHostAccountSpec)(nil)).Elem() -} - -type ArrayOfHostActiveDirectory struct { - HostActiveDirectory []HostActiveDirectory `xml:"HostActiveDirectory,omitempty"` -} - -func init() { - t["ArrayOfHostActiveDirectory"] = reflect.TypeOf((*ArrayOfHostActiveDirectory)(nil)).Elem() -} - -type ArrayOfHostAuthenticationStoreInfo struct { - HostAuthenticationStoreInfo []BaseHostAuthenticationStoreInfo `xml:"HostAuthenticationStoreInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostAuthenticationStoreInfo"] = reflect.TypeOf((*ArrayOfHostAuthenticationStoreInfo)(nil)).Elem() -} - -type ArrayOfHostBootDevice struct { - HostBootDevice []HostBootDevice `xml:"HostBootDevice,omitempty"` -} - -func init() { - t["ArrayOfHostBootDevice"] = reflect.TypeOf((*ArrayOfHostBootDevice)(nil)).Elem() -} - -type ArrayOfHostCacheConfigurationInfo struct { - HostCacheConfigurationInfo []HostCacheConfigurationInfo `xml:"HostCacheConfigurationInfo,omitempty"` -} - -func init() { - t["ArrayOfHostCacheConfigurationInfo"] = reflect.TypeOf((*ArrayOfHostCacheConfigurationInfo)(nil)).Elem() -} - -type ArrayOfHostConnectInfoNetworkInfo struct { - HostConnectInfoNetworkInfo []BaseHostConnectInfoNetworkInfo `xml:"HostConnectInfoNetworkInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostConnectInfoNetworkInfo"] = reflect.TypeOf((*ArrayOfHostConnectInfoNetworkInfo)(nil)).Elem() -} - -type ArrayOfHostCpuIdInfo struct { - HostCpuIdInfo []HostCpuIdInfo `xml:"HostCpuIdInfo,omitempty"` -} - -func init() { - t["ArrayOfHostCpuIdInfo"] = reflect.TypeOf((*ArrayOfHostCpuIdInfo)(nil)).Elem() -} - -type ArrayOfHostCpuPackage struct { - HostCpuPackage []HostCpuPackage `xml:"HostCpuPackage,omitempty"` -} - -func init() { - t["ArrayOfHostCpuPackage"] = reflect.TypeOf((*ArrayOfHostCpuPackage)(nil)).Elem() -} - -type ArrayOfHostDatastoreBrowserSearchResults struct { - HostDatastoreBrowserSearchResults []HostDatastoreBrowserSearchResults `xml:"HostDatastoreBrowserSearchResults,omitempty"` -} - -func init() { - t["ArrayOfHostDatastoreBrowserSearchResults"] = reflect.TypeOf((*ArrayOfHostDatastoreBrowserSearchResults)(nil)).Elem() -} - -type ArrayOfHostDatastoreConnectInfo struct { - HostDatastoreConnectInfo []BaseHostDatastoreConnectInfo `xml:"HostDatastoreConnectInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostDatastoreConnectInfo"] = reflect.TypeOf((*ArrayOfHostDatastoreConnectInfo)(nil)).Elem() -} - -type ArrayOfHostDatastoreSystemDatastoreResult struct { - HostDatastoreSystemDatastoreResult []HostDatastoreSystemDatastoreResult `xml:"HostDatastoreSystemDatastoreResult,omitempty"` -} - -func init() { - t["ArrayOfHostDatastoreSystemDatastoreResult"] = reflect.TypeOf((*ArrayOfHostDatastoreSystemDatastoreResult)(nil)).Elem() -} - -type ArrayOfHostDateTimeSystemTimeZone struct { - HostDateTimeSystemTimeZone []HostDateTimeSystemTimeZone `xml:"HostDateTimeSystemTimeZone,omitempty"` -} - -func init() { - t["ArrayOfHostDateTimeSystemTimeZone"] = reflect.TypeOf((*ArrayOfHostDateTimeSystemTimeZone)(nil)).Elem() -} - -type ArrayOfHostDhcpService struct { - HostDhcpService []HostDhcpService `xml:"HostDhcpService,omitempty"` -} - -func init() { - t["ArrayOfHostDhcpService"] = reflect.TypeOf((*ArrayOfHostDhcpService)(nil)).Elem() -} - -type ArrayOfHostDhcpServiceConfig struct { - HostDhcpServiceConfig []HostDhcpServiceConfig `xml:"HostDhcpServiceConfig,omitempty"` -} - -func init() { - t["ArrayOfHostDhcpServiceConfig"] = reflect.TypeOf((*ArrayOfHostDhcpServiceConfig)(nil)).Elem() -} - -type ArrayOfHostDiagnosticPartition struct { - HostDiagnosticPartition []HostDiagnosticPartition `xml:"HostDiagnosticPartition,omitempty"` -} - -func init() { - t["ArrayOfHostDiagnosticPartition"] = reflect.TypeOf((*ArrayOfHostDiagnosticPartition)(nil)).Elem() -} - -type ArrayOfHostDiagnosticPartitionCreateOption struct { - HostDiagnosticPartitionCreateOption []HostDiagnosticPartitionCreateOption `xml:"HostDiagnosticPartitionCreateOption,omitempty"` -} - -func init() { - t["ArrayOfHostDiagnosticPartitionCreateOption"] = reflect.TypeOf((*ArrayOfHostDiagnosticPartitionCreateOption)(nil)).Elem() -} - -type ArrayOfHostDiskConfigurationResult struct { - HostDiskConfigurationResult []HostDiskConfigurationResult `xml:"HostDiskConfigurationResult,omitempty"` -} - -func init() { - t["ArrayOfHostDiskConfigurationResult"] = reflect.TypeOf((*ArrayOfHostDiskConfigurationResult)(nil)).Elem() -} - -type ArrayOfHostDiskMappingPartitionOption struct { - HostDiskMappingPartitionOption []HostDiskMappingPartitionOption `xml:"HostDiskMappingPartitionOption,omitempty"` -} - -func init() { - t["ArrayOfHostDiskMappingPartitionOption"] = reflect.TypeOf((*ArrayOfHostDiskMappingPartitionOption)(nil)).Elem() -} - -type ArrayOfHostDiskPartitionAttributes struct { - HostDiskPartitionAttributes []HostDiskPartitionAttributes `xml:"HostDiskPartitionAttributes,omitempty"` -} - -func init() { - t["ArrayOfHostDiskPartitionAttributes"] = reflect.TypeOf((*ArrayOfHostDiskPartitionAttributes)(nil)).Elem() -} - -type ArrayOfHostDiskPartitionBlockRange struct { - HostDiskPartitionBlockRange []HostDiskPartitionBlockRange `xml:"HostDiskPartitionBlockRange,omitempty"` -} - -func init() { - t["ArrayOfHostDiskPartitionBlockRange"] = reflect.TypeOf((*ArrayOfHostDiskPartitionBlockRange)(nil)).Elem() -} - -type ArrayOfHostDiskPartitionInfo struct { - HostDiskPartitionInfo []HostDiskPartitionInfo `xml:"HostDiskPartitionInfo,omitempty"` -} - -func init() { - t["ArrayOfHostDiskPartitionInfo"] = reflect.TypeOf((*ArrayOfHostDiskPartitionInfo)(nil)).Elem() -} - -type ArrayOfHostEventArgument struct { - HostEventArgument []HostEventArgument `xml:"HostEventArgument,omitempty"` -} - -func init() { - t["ArrayOfHostEventArgument"] = reflect.TypeOf((*ArrayOfHostEventArgument)(nil)).Elem() -} - -type ArrayOfHostFeatureCapability struct { - HostFeatureCapability []HostFeatureCapability `xml:"HostFeatureCapability,omitempty"` -} - -func init() { - t["ArrayOfHostFeatureCapability"] = reflect.TypeOf((*ArrayOfHostFeatureCapability)(nil)).Elem() -} - -type ArrayOfHostFeatureMask struct { - HostFeatureMask []HostFeatureMask `xml:"HostFeatureMask,omitempty"` -} - -func init() { - t["ArrayOfHostFeatureMask"] = reflect.TypeOf((*ArrayOfHostFeatureMask)(nil)).Elem() -} - -type ArrayOfHostFeatureVersionInfo struct { - HostFeatureVersionInfo []HostFeatureVersionInfo `xml:"HostFeatureVersionInfo,omitempty"` -} - -func init() { - t["ArrayOfHostFeatureVersionInfo"] = reflect.TypeOf((*ArrayOfHostFeatureVersionInfo)(nil)).Elem() -} - -type ArrayOfHostFileSystemMountInfo struct { - HostFileSystemMountInfo []HostFileSystemMountInfo `xml:"HostFileSystemMountInfo,omitempty"` -} - -func init() { - t["ArrayOfHostFileSystemMountInfo"] = reflect.TypeOf((*ArrayOfHostFileSystemMountInfo)(nil)).Elem() -} - -type ArrayOfHostFirewallConfigRuleSetConfig struct { - HostFirewallConfigRuleSetConfig []HostFirewallConfigRuleSetConfig `xml:"HostFirewallConfigRuleSetConfig,omitempty"` -} - -func init() { - t["ArrayOfHostFirewallConfigRuleSetConfig"] = reflect.TypeOf((*ArrayOfHostFirewallConfigRuleSetConfig)(nil)).Elem() -} - -type ArrayOfHostFirewallRule struct { - HostFirewallRule []HostFirewallRule `xml:"HostFirewallRule,omitempty"` -} - -func init() { - t["ArrayOfHostFirewallRule"] = reflect.TypeOf((*ArrayOfHostFirewallRule)(nil)).Elem() -} - -type ArrayOfHostFirewallRuleset struct { - HostFirewallRuleset []HostFirewallRuleset `xml:"HostFirewallRuleset,omitempty"` -} - -func init() { - t["ArrayOfHostFirewallRuleset"] = reflect.TypeOf((*ArrayOfHostFirewallRuleset)(nil)).Elem() -} - -type ArrayOfHostFirewallRulesetIpNetwork struct { - HostFirewallRulesetIpNetwork []HostFirewallRulesetIpNetwork `xml:"HostFirewallRulesetIpNetwork,omitempty"` -} - -func init() { - t["ArrayOfHostFirewallRulesetIpNetwork"] = reflect.TypeOf((*ArrayOfHostFirewallRulesetIpNetwork)(nil)).Elem() -} - -type ArrayOfHostGraphicsConfigDeviceType struct { - HostGraphicsConfigDeviceType []HostGraphicsConfigDeviceType `xml:"HostGraphicsConfigDeviceType,omitempty"` -} - -func init() { - t["ArrayOfHostGraphicsConfigDeviceType"] = reflect.TypeOf((*ArrayOfHostGraphicsConfigDeviceType)(nil)).Elem() -} - -type ArrayOfHostGraphicsInfo struct { - HostGraphicsInfo []HostGraphicsInfo `xml:"HostGraphicsInfo,omitempty"` -} - -func init() { - t["ArrayOfHostGraphicsInfo"] = reflect.TypeOf((*ArrayOfHostGraphicsInfo)(nil)).Elem() -} - -type ArrayOfHostHardwareElementInfo struct { - HostHardwareElementInfo []BaseHostHardwareElementInfo `xml:"HostHardwareElementInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostHardwareElementInfo"] = reflect.TypeOf((*ArrayOfHostHardwareElementInfo)(nil)).Elem() -} - -type ArrayOfHostHostBusAdapter struct { - HostHostBusAdapter []BaseHostHostBusAdapter `xml:"HostHostBusAdapter,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostHostBusAdapter"] = reflect.TypeOf((*ArrayOfHostHostBusAdapter)(nil)).Elem() -} - -type ArrayOfHostInternetScsiHbaIscsiIpv6Address struct { - HostInternetScsiHbaIscsiIpv6Address []HostInternetScsiHbaIscsiIpv6Address `xml:"HostInternetScsiHbaIscsiIpv6Address,omitempty"` -} - -func init() { - t["ArrayOfHostInternetScsiHbaIscsiIpv6Address"] = reflect.TypeOf((*ArrayOfHostInternetScsiHbaIscsiIpv6Address)(nil)).Elem() -} - -type ArrayOfHostInternetScsiHbaParamValue struct { - HostInternetScsiHbaParamValue []HostInternetScsiHbaParamValue `xml:"HostInternetScsiHbaParamValue,omitempty"` -} - -func init() { - t["ArrayOfHostInternetScsiHbaParamValue"] = reflect.TypeOf((*ArrayOfHostInternetScsiHbaParamValue)(nil)).Elem() -} - -type ArrayOfHostInternetScsiHbaSendTarget struct { - HostInternetScsiHbaSendTarget []HostInternetScsiHbaSendTarget `xml:"HostInternetScsiHbaSendTarget,omitempty"` -} - -func init() { - t["ArrayOfHostInternetScsiHbaSendTarget"] = reflect.TypeOf((*ArrayOfHostInternetScsiHbaSendTarget)(nil)).Elem() -} - -type ArrayOfHostInternetScsiHbaStaticTarget struct { - HostInternetScsiHbaStaticTarget []HostInternetScsiHbaStaticTarget `xml:"HostInternetScsiHbaStaticTarget,omitempty"` -} - -func init() { - t["ArrayOfHostInternetScsiHbaStaticTarget"] = reflect.TypeOf((*ArrayOfHostInternetScsiHbaStaticTarget)(nil)).Elem() -} - -type ArrayOfHostIoFilterInfo struct { - HostIoFilterInfo []HostIoFilterInfo `xml:"HostIoFilterInfo,omitempty"` -} - -func init() { - t["ArrayOfHostIoFilterInfo"] = reflect.TypeOf((*ArrayOfHostIoFilterInfo)(nil)).Elem() -} - -type ArrayOfHostIpConfigIpV6Address struct { - HostIpConfigIpV6Address []HostIpConfigIpV6Address `xml:"HostIpConfigIpV6Address,omitempty"` -} - -func init() { - t["ArrayOfHostIpConfigIpV6Address"] = reflect.TypeOf((*ArrayOfHostIpConfigIpV6Address)(nil)).Elem() -} - -type ArrayOfHostIpRouteEntry struct { - HostIpRouteEntry []HostIpRouteEntry `xml:"HostIpRouteEntry,omitempty"` -} - -func init() { - t["ArrayOfHostIpRouteEntry"] = reflect.TypeOf((*ArrayOfHostIpRouteEntry)(nil)).Elem() -} - -type ArrayOfHostIpRouteOp struct { - HostIpRouteOp []HostIpRouteOp `xml:"HostIpRouteOp,omitempty"` -} - -func init() { - t["ArrayOfHostIpRouteOp"] = reflect.TypeOf((*ArrayOfHostIpRouteOp)(nil)).Elem() -} - -type ArrayOfHostLowLevelProvisioningManagerDiskLayoutSpec struct { - HostLowLevelProvisioningManagerDiskLayoutSpec []HostLowLevelProvisioningManagerDiskLayoutSpec `xml:"HostLowLevelProvisioningManagerDiskLayoutSpec,omitempty"` -} - -func init() { - t["ArrayOfHostLowLevelProvisioningManagerDiskLayoutSpec"] = reflect.TypeOf((*ArrayOfHostLowLevelProvisioningManagerDiskLayoutSpec)(nil)).Elem() -} - -type ArrayOfHostLowLevelProvisioningManagerFileDeleteResult struct { - HostLowLevelProvisioningManagerFileDeleteResult []HostLowLevelProvisioningManagerFileDeleteResult `xml:"HostLowLevelProvisioningManagerFileDeleteResult,omitempty"` -} - -func init() { - t["ArrayOfHostLowLevelProvisioningManagerFileDeleteResult"] = reflect.TypeOf((*ArrayOfHostLowLevelProvisioningManagerFileDeleteResult)(nil)).Elem() -} - -type ArrayOfHostLowLevelProvisioningManagerFileDeleteSpec struct { - HostLowLevelProvisioningManagerFileDeleteSpec []HostLowLevelProvisioningManagerFileDeleteSpec `xml:"HostLowLevelProvisioningManagerFileDeleteSpec,omitempty"` -} - -func init() { - t["ArrayOfHostLowLevelProvisioningManagerFileDeleteSpec"] = reflect.TypeOf((*ArrayOfHostLowLevelProvisioningManagerFileDeleteSpec)(nil)).Elem() -} - -type ArrayOfHostLowLevelProvisioningManagerFileReserveResult struct { - HostLowLevelProvisioningManagerFileReserveResult []HostLowLevelProvisioningManagerFileReserveResult `xml:"HostLowLevelProvisioningManagerFileReserveResult,omitempty"` -} - -func init() { - t["ArrayOfHostLowLevelProvisioningManagerFileReserveResult"] = reflect.TypeOf((*ArrayOfHostLowLevelProvisioningManagerFileReserveResult)(nil)).Elem() -} - -type ArrayOfHostLowLevelProvisioningManagerFileReserveSpec struct { - HostLowLevelProvisioningManagerFileReserveSpec []HostLowLevelProvisioningManagerFileReserveSpec `xml:"HostLowLevelProvisioningManagerFileReserveSpec,omitempty"` -} - -func init() { - t["ArrayOfHostLowLevelProvisioningManagerFileReserveSpec"] = reflect.TypeOf((*ArrayOfHostLowLevelProvisioningManagerFileReserveSpec)(nil)).Elem() -} - -type ArrayOfHostLowLevelProvisioningManagerSnapshotLayoutSpec struct { - HostLowLevelProvisioningManagerSnapshotLayoutSpec []HostLowLevelProvisioningManagerSnapshotLayoutSpec `xml:"HostLowLevelProvisioningManagerSnapshotLayoutSpec,omitempty"` -} - -func init() { - t["ArrayOfHostLowLevelProvisioningManagerSnapshotLayoutSpec"] = reflect.TypeOf((*ArrayOfHostLowLevelProvisioningManagerSnapshotLayoutSpec)(nil)).Elem() -} - -type ArrayOfHostMemberHealthCheckResult struct { - HostMemberHealthCheckResult []BaseHostMemberHealthCheckResult `xml:"HostMemberHealthCheckResult,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostMemberHealthCheckResult"] = reflect.TypeOf((*ArrayOfHostMemberHealthCheckResult)(nil)).Elem() -} - -type ArrayOfHostMemberRuntimeInfo struct { - HostMemberRuntimeInfo []HostMemberRuntimeInfo `xml:"HostMemberRuntimeInfo,omitempty"` -} - -func init() { - t["ArrayOfHostMemberRuntimeInfo"] = reflect.TypeOf((*ArrayOfHostMemberRuntimeInfo)(nil)).Elem() -} - -type ArrayOfHostMultipathInfoLogicalUnit struct { - HostMultipathInfoLogicalUnit []HostMultipathInfoLogicalUnit `xml:"HostMultipathInfoLogicalUnit,omitempty"` -} - -func init() { - t["ArrayOfHostMultipathInfoLogicalUnit"] = reflect.TypeOf((*ArrayOfHostMultipathInfoLogicalUnit)(nil)).Elem() -} - -type ArrayOfHostMultipathInfoPath struct { - HostMultipathInfoPath []HostMultipathInfoPath `xml:"HostMultipathInfoPath,omitempty"` -} - -func init() { - t["ArrayOfHostMultipathInfoPath"] = reflect.TypeOf((*ArrayOfHostMultipathInfoPath)(nil)).Elem() -} - -type ArrayOfHostMultipathStateInfoPath struct { - HostMultipathStateInfoPath []HostMultipathStateInfoPath `xml:"HostMultipathStateInfoPath,omitempty"` -} - -func init() { - t["ArrayOfHostMultipathStateInfoPath"] = reflect.TypeOf((*ArrayOfHostMultipathStateInfoPath)(nil)).Elem() -} - -type ArrayOfHostNasVolumeConfig struct { - HostNasVolumeConfig []HostNasVolumeConfig `xml:"HostNasVolumeConfig,omitempty"` -} - -func init() { - t["ArrayOfHostNasVolumeConfig"] = reflect.TypeOf((*ArrayOfHostNasVolumeConfig)(nil)).Elem() -} - -type ArrayOfHostNatService struct { - HostNatService []HostNatService `xml:"HostNatService,omitempty"` -} - -func init() { - t["ArrayOfHostNatService"] = reflect.TypeOf((*ArrayOfHostNatService)(nil)).Elem() -} - -type ArrayOfHostNatServiceConfig struct { - HostNatServiceConfig []HostNatServiceConfig `xml:"HostNatServiceConfig,omitempty"` -} - -func init() { - t["ArrayOfHostNatServiceConfig"] = reflect.TypeOf((*ArrayOfHostNatServiceConfig)(nil)).Elem() -} - -type ArrayOfHostNatServicePortForwardSpec struct { - HostNatServicePortForwardSpec []HostNatServicePortForwardSpec `xml:"HostNatServicePortForwardSpec,omitempty"` -} - -func init() { - t["ArrayOfHostNatServicePortForwardSpec"] = reflect.TypeOf((*ArrayOfHostNatServicePortForwardSpec)(nil)).Elem() -} - -type ArrayOfHostNetStackInstance struct { - HostNetStackInstance []HostNetStackInstance `xml:"HostNetStackInstance,omitempty"` -} - -func init() { - t["ArrayOfHostNetStackInstance"] = reflect.TypeOf((*ArrayOfHostNetStackInstance)(nil)).Elem() -} - -type ArrayOfHostNetworkConfigNetStackSpec struct { - HostNetworkConfigNetStackSpec []HostNetworkConfigNetStackSpec `xml:"HostNetworkConfigNetStackSpec,omitempty"` -} - -func init() { - t["ArrayOfHostNetworkConfigNetStackSpec"] = reflect.TypeOf((*ArrayOfHostNetworkConfigNetStackSpec)(nil)).Elem() -} - -type ArrayOfHostNumaNode struct { - HostNumaNode []HostNumaNode `xml:"HostNumaNode,omitempty"` -} - -func init() { - t["ArrayOfHostNumaNode"] = reflect.TypeOf((*ArrayOfHostNumaNode)(nil)).Elem() -} - -type ArrayOfHostNumericSensorInfo struct { - HostNumericSensorInfo []HostNumericSensorInfo `xml:"HostNumericSensorInfo,omitempty"` -} - -func init() { - t["ArrayOfHostNumericSensorInfo"] = reflect.TypeOf((*ArrayOfHostNumericSensorInfo)(nil)).Elem() -} - -type ArrayOfHostOpaqueNetworkInfo struct { - HostOpaqueNetworkInfo []HostOpaqueNetworkInfo `xml:"HostOpaqueNetworkInfo,omitempty"` -} - -func init() { - t["ArrayOfHostOpaqueNetworkInfo"] = reflect.TypeOf((*ArrayOfHostOpaqueNetworkInfo)(nil)).Elem() -} - -type ArrayOfHostOpaqueSwitch struct { - HostOpaqueSwitch []HostOpaqueSwitch `xml:"HostOpaqueSwitch,omitempty"` -} - -func init() { - t["ArrayOfHostOpaqueSwitch"] = reflect.TypeOf((*ArrayOfHostOpaqueSwitch)(nil)).Elem() -} - -type ArrayOfHostOpaqueSwitchPhysicalNicZone struct { - HostOpaqueSwitchPhysicalNicZone []HostOpaqueSwitchPhysicalNicZone `xml:"HostOpaqueSwitchPhysicalNicZone,omitempty"` -} - -func init() { - t["ArrayOfHostOpaqueSwitchPhysicalNicZone"] = reflect.TypeOf((*ArrayOfHostOpaqueSwitchPhysicalNicZone)(nil)).Elem() -} - -type ArrayOfHostPatchManagerStatus struct { - HostPatchManagerStatus []HostPatchManagerStatus `xml:"HostPatchManagerStatus,omitempty"` -} - -func init() { - t["ArrayOfHostPatchManagerStatus"] = reflect.TypeOf((*ArrayOfHostPatchManagerStatus)(nil)).Elem() -} - -type ArrayOfHostPatchManagerStatusPrerequisitePatch struct { - HostPatchManagerStatusPrerequisitePatch []HostPatchManagerStatusPrerequisitePatch `xml:"HostPatchManagerStatusPrerequisitePatch,omitempty"` -} - -func init() { - t["ArrayOfHostPatchManagerStatusPrerequisitePatch"] = reflect.TypeOf((*ArrayOfHostPatchManagerStatusPrerequisitePatch)(nil)).Elem() -} - -type ArrayOfHostPathSelectionPolicyOption struct { - HostPathSelectionPolicyOption []HostPathSelectionPolicyOption `xml:"HostPathSelectionPolicyOption,omitempty"` -} - -func init() { - t["ArrayOfHostPathSelectionPolicyOption"] = reflect.TypeOf((*ArrayOfHostPathSelectionPolicyOption)(nil)).Elem() -} - -type ArrayOfHostPciDevice struct { - HostPciDevice []HostPciDevice `xml:"HostPciDevice,omitempty"` -} - -func init() { - t["ArrayOfHostPciDevice"] = reflect.TypeOf((*ArrayOfHostPciDevice)(nil)).Elem() -} - -type ArrayOfHostPciPassthruConfig struct { - HostPciPassthruConfig []BaseHostPciPassthruConfig `xml:"HostPciPassthruConfig,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostPciPassthruConfig"] = reflect.TypeOf((*ArrayOfHostPciPassthruConfig)(nil)).Elem() -} - -type ArrayOfHostPciPassthruInfo struct { - HostPciPassthruInfo []BaseHostPciPassthruInfo `xml:"HostPciPassthruInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostPciPassthruInfo"] = reflect.TypeOf((*ArrayOfHostPciPassthruInfo)(nil)).Elem() -} - -type ArrayOfHostPlacedVirtualNicIdentifier struct { - HostPlacedVirtualNicIdentifier []HostPlacedVirtualNicIdentifier `xml:"HostPlacedVirtualNicIdentifier,omitempty"` -} - -func init() { - t["ArrayOfHostPlacedVirtualNicIdentifier"] = reflect.TypeOf((*ArrayOfHostPlacedVirtualNicIdentifier)(nil)).Elem() -} - -type ArrayOfHostPlugStoreTopologyAdapter struct { - HostPlugStoreTopologyAdapter []HostPlugStoreTopologyAdapter `xml:"HostPlugStoreTopologyAdapter,omitempty"` -} - -func init() { - t["ArrayOfHostPlugStoreTopologyAdapter"] = reflect.TypeOf((*ArrayOfHostPlugStoreTopologyAdapter)(nil)).Elem() -} - -type ArrayOfHostPlugStoreTopologyDevice struct { - HostPlugStoreTopologyDevice []HostPlugStoreTopologyDevice `xml:"HostPlugStoreTopologyDevice,omitempty"` -} - -func init() { - t["ArrayOfHostPlugStoreTopologyDevice"] = reflect.TypeOf((*ArrayOfHostPlugStoreTopologyDevice)(nil)).Elem() -} - -type ArrayOfHostPlugStoreTopologyPath struct { - HostPlugStoreTopologyPath []HostPlugStoreTopologyPath `xml:"HostPlugStoreTopologyPath,omitempty"` -} - -func init() { - t["ArrayOfHostPlugStoreTopologyPath"] = reflect.TypeOf((*ArrayOfHostPlugStoreTopologyPath)(nil)).Elem() -} - -type ArrayOfHostPlugStoreTopologyPlugin struct { - HostPlugStoreTopologyPlugin []HostPlugStoreTopologyPlugin `xml:"HostPlugStoreTopologyPlugin,omitempty"` -} - -func init() { - t["ArrayOfHostPlugStoreTopologyPlugin"] = reflect.TypeOf((*ArrayOfHostPlugStoreTopologyPlugin)(nil)).Elem() -} - -type ArrayOfHostPlugStoreTopologyTarget struct { - HostPlugStoreTopologyTarget []HostPlugStoreTopologyTarget `xml:"HostPlugStoreTopologyTarget,omitempty"` -} - -func init() { - t["ArrayOfHostPlugStoreTopologyTarget"] = reflect.TypeOf((*ArrayOfHostPlugStoreTopologyTarget)(nil)).Elem() -} - -type ArrayOfHostPnicNetworkResourceInfo struct { - HostPnicNetworkResourceInfo []HostPnicNetworkResourceInfo `xml:"HostPnicNetworkResourceInfo,omitempty"` -} - -func init() { - t["ArrayOfHostPnicNetworkResourceInfo"] = reflect.TypeOf((*ArrayOfHostPnicNetworkResourceInfo)(nil)).Elem() -} - -type ArrayOfHostPortGroup struct { - HostPortGroup []HostPortGroup `xml:"HostPortGroup,omitempty"` -} - -func init() { - t["ArrayOfHostPortGroup"] = reflect.TypeOf((*ArrayOfHostPortGroup)(nil)).Elem() -} - -type ArrayOfHostPortGroupConfig struct { - HostPortGroupConfig []HostPortGroupConfig `xml:"HostPortGroupConfig,omitempty"` -} - -func init() { - t["ArrayOfHostPortGroupConfig"] = reflect.TypeOf((*ArrayOfHostPortGroupConfig)(nil)).Elem() -} - -type ArrayOfHostPortGroupPort struct { - HostPortGroupPort []HostPortGroupPort `xml:"HostPortGroupPort,omitempty"` -} - -func init() { - t["ArrayOfHostPortGroupPort"] = reflect.TypeOf((*ArrayOfHostPortGroupPort)(nil)).Elem() -} - -type ArrayOfHostPortGroupProfile struct { - HostPortGroupProfile []HostPortGroupProfile `xml:"HostPortGroupProfile,omitempty"` -} - -func init() { - t["ArrayOfHostPortGroupProfile"] = reflect.TypeOf((*ArrayOfHostPortGroupProfile)(nil)).Elem() -} - -type ArrayOfHostPowerPolicy struct { - HostPowerPolicy []HostPowerPolicy `xml:"HostPowerPolicy,omitempty"` -} - -func init() { - t["ArrayOfHostPowerPolicy"] = reflect.TypeOf((*ArrayOfHostPowerPolicy)(nil)).Elem() -} - -type ArrayOfHostProfileManagerCompositionValidationResultResultElement struct { - HostProfileManagerCompositionValidationResultResultElement []HostProfileManagerCompositionValidationResultResultElement `xml:"HostProfileManagerCompositionValidationResultResultElement,omitempty"` -} - -func init() { - t["ArrayOfHostProfileManagerCompositionValidationResultResultElement"] = reflect.TypeOf((*ArrayOfHostProfileManagerCompositionValidationResultResultElement)(nil)).Elem() -} - -type ArrayOfHostProfileManagerHostToConfigSpecMap struct { - HostProfileManagerHostToConfigSpecMap []HostProfileManagerHostToConfigSpecMap `xml:"HostProfileManagerHostToConfigSpecMap,omitempty"` -} - -func init() { - t["ArrayOfHostProfileManagerHostToConfigSpecMap"] = reflect.TypeOf((*ArrayOfHostProfileManagerHostToConfigSpecMap)(nil)).Elem() -} - -type ArrayOfHostProfilesEntityCustomizations struct { - HostProfilesEntityCustomizations []BaseHostProfilesEntityCustomizations `xml:"HostProfilesEntityCustomizations,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostProfilesEntityCustomizations"] = reflect.TypeOf((*ArrayOfHostProfilesEntityCustomizations)(nil)).Elem() -} - -type ArrayOfHostProtocolEndpoint struct { - HostProtocolEndpoint []HostProtocolEndpoint `xml:"HostProtocolEndpoint,omitempty"` -} - -func init() { - t["ArrayOfHostProtocolEndpoint"] = reflect.TypeOf((*ArrayOfHostProtocolEndpoint)(nil)).Elem() -} - -type ArrayOfHostProxySwitch struct { - HostProxySwitch []HostProxySwitch `xml:"HostProxySwitch,omitempty"` -} - -func init() { - t["ArrayOfHostProxySwitch"] = reflect.TypeOf((*ArrayOfHostProxySwitch)(nil)).Elem() -} - -type ArrayOfHostProxySwitchConfig struct { - HostProxySwitchConfig []HostProxySwitchConfig `xml:"HostProxySwitchConfig,omitempty"` -} - -func init() { - t["ArrayOfHostProxySwitchConfig"] = reflect.TypeOf((*ArrayOfHostProxySwitchConfig)(nil)).Elem() -} - -type ArrayOfHostProxySwitchHostLagConfig struct { - HostProxySwitchHostLagConfig []HostProxySwitchHostLagConfig `xml:"HostProxySwitchHostLagConfig,omitempty"` -} - -func init() { - t["ArrayOfHostProxySwitchHostLagConfig"] = reflect.TypeOf((*ArrayOfHostProxySwitchHostLagConfig)(nil)).Elem() -} - -type ArrayOfHostRuntimeInfoNetStackInstanceRuntimeInfo struct { - HostRuntimeInfoNetStackInstanceRuntimeInfo []HostRuntimeInfoNetStackInstanceRuntimeInfo `xml:"HostRuntimeInfoNetStackInstanceRuntimeInfo,omitempty"` -} - -func init() { - t["ArrayOfHostRuntimeInfoNetStackInstanceRuntimeInfo"] = reflect.TypeOf((*ArrayOfHostRuntimeInfoNetStackInstanceRuntimeInfo)(nil)).Elem() -} - -type ArrayOfHostScsiDisk struct { - HostScsiDisk []HostScsiDisk `xml:"HostScsiDisk,omitempty"` -} - -func init() { - t["ArrayOfHostScsiDisk"] = reflect.TypeOf((*ArrayOfHostScsiDisk)(nil)).Elem() -} - -type ArrayOfHostScsiDiskPartition struct { - HostScsiDiskPartition []HostScsiDiskPartition `xml:"HostScsiDiskPartition,omitempty"` -} - -func init() { - t["ArrayOfHostScsiDiskPartition"] = reflect.TypeOf((*ArrayOfHostScsiDiskPartition)(nil)).Elem() -} - -type ArrayOfHostScsiTopologyInterface struct { - HostScsiTopologyInterface []HostScsiTopologyInterface `xml:"HostScsiTopologyInterface,omitempty"` -} - -func init() { - t["ArrayOfHostScsiTopologyInterface"] = reflect.TypeOf((*ArrayOfHostScsiTopologyInterface)(nil)).Elem() -} - -type ArrayOfHostScsiTopologyLun struct { - HostScsiTopologyLun []HostScsiTopologyLun `xml:"HostScsiTopologyLun,omitempty"` -} - -func init() { - t["ArrayOfHostScsiTopologyLun"] = reflect.TypeOf((*ArrayOfHostScsiTopologyLun)(nil)).Elem() -} - -type ArrayOfHostScsiTopologyTarget struct { - HostScsiTopologyTarget []HostScsiTopologyTarget `xml:"HostScsiTopologyTarget,omitempty"` -} - -func init() { - t["ArrayOfHostScsiTopologyTarget"] = reflect.TypeOf((*ArrayOfHostScsiTopologyTarget)(nil)).Elem() -} - -type ArrayOfHostService struct { - HostService []HostService `xml:"HostService,omitempty"` -} - -func init() { - t["ArrayOfHostService"] = reflect.TypeOf((*ArrayOfHostService)(nil)).Elem() -} - -type ArrayOfHostServiceConfig struct { - HostServiceConfig []HostServiceConfig `xml:"HostServiceConfig,omitempty"` -} - -func init() { - t["ArrayOfHostServiceConfig"] = reflect.TypeOf((*ArrayOfHostServiceConfig)(nil)).Elem() -} - -type ArrayOfHostSnmpDestination struct { - HostSnmpDestination []HostSnmpDestination `xml:"HostSnmpDestination,omitempty"` -} - -func init() { - t["ArrayOfHostSnmpDestination"] = reflect.TypeOf((*ArrayOfHostSnmpDestination)(nil)).Elem() -} - -type ArrayOfHostSriovDevicePoolInfo struct { - HostSriovDevicePoolInfo []BaseHostSriovDevicePoolInfo `xml:"HostSriovDevicePoolInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostSriovDevicePoolInfo"] = reflect.TypeOf((*ArrayOfHostSriovDevicePoolInfo)(nil)).Elem() -} - -type ArrayOfHostSslThumbprintInfo struct { - HostSslThumbprintInfo []HostSslThumbprintInfo `xml:"HostSslThumbprintInfo,omitempty"` -} - -func init() { - t["ArrayOfHostSslThumbprintInfo"] = reflect.TypeOf((*ArrayOfHostSslThumbprintInfo)(nil)).Elem() -} - -type ArrayOfHostStorageArrayTypePolicyOption struct { - HostStorageArrayTypePolicyOption []HostStorageArrayTypePolicyOption `xml:"HostStorageArrayTypePolicyOption,omitempty"` -} - -func init() { - t["ArrayOfHostStorageArrayTypePolicyOption"] = reflect.TypeOf((*ArrayOfHostStorageArrayTypePolicyOption)(nil)).Elem() -} - -type ArrayOfHostStorageElementInfo struct { - HostStorageElementInfo []HostStorageElementInfo `xml:"HostStorageElementInfo,omitempty"` -} - -func init() { - t["ArrayOfHostStorageElementInfo"] = reflect.TypeOf((*ArrayOfHostStorageElementInfo)(nil)).Elem() -} - -type ArrayOfHostStorageOperationalInfo struct { - HostStorageOperationalInfo []HostStorageOperationalInfo `xml:"HostStorageOperationalInfo,omitempty"` -} - -func init() { - t["ArrayOfHostStorageOperationalInfo"] = reflect.TypeOf((*ArrayOfHostStorageOperationalInfo)(nil)).Elem() -} - -type ArrayOfHostStorageSystemDiskLocatorLedResult struct { - HostStorageSystemDiskLocatorLedResult []HostStorageSystemDiskLocatorLedResult `xml:"HostStorageSystemDiskLocatorLedResult,omitempty"` -} - -func init() { - t["ArrayOfHostStorageSystemDiskLocatorLedResult"] = reflect.TypeOf((*ArrayOfHostStorageSystemDiskLocatorLedResult)(nil)).Elem() -} - -type ArrayOfHostStorageSystemScsiLunResult struct { - HostStorageSystemScsiLunResult []HostStorageSystemScsiLunResult `xml:"HostStorageSystemScsiLunResult,omitempty"` -} - -func init() { - t["ArrayOfHostStorageSystemScsiLunResult"] = reflect.TypeOf((*ArrayOfHostStorageSystemScsiLunResult)(nil)).Elem() -} - -type ArrayOfHostStorageSystemVmfsVolumeResult struct { - HostStorageSystemVmfsVolumeResult []HostStorageSystemVmfsVolumeResult `xml:"HostStorageSystemVmfsVolumeResult,omitempty"` -} - -func init() { - t["ArrayOfHostStorageSystemVmfsVolumeResult"] = reflect.TypeOf((*ArrayOfHostStorageSystemVmfsVolumeResult)(nil)).Elem() -} - -type ArrayOfHostSubSpecification struct { - HostSubSpecification []HostSubSpecification `xml:"HostSubSpecification,omitempty"` -} - -func init() { - t["ArrayOfHostSubSpecification"] = reflect.TypeOf((*ArrayOfHostSubSpecification)(nil)).Elem() -} - -type ArrayOfHostSystemIdentificationInfo struct { - HostSystemIdentificationInfo []HostSystemIdentificationInfo `xml:"HostSystemIdentificationInfo,omitempty"` -} - -func init() { - t["ArrayOfHostSystemIdentificationInfo"] = reflect.TypeOf((*ArrayOfHostSystemIdentificationInfo)(nil)).Elem() -} - -type ArrayOfHostSystemResourceInfo struct { - HostSystemResourceInfo []HostSystemResourceInfo `xml:"HostSystemResourceInfo,omitempty"` -} - -func init() { - t["ArrayOfHostSystemResourceInfo"] = reflect.TypeOf((*ArrayOfHostSystemResourceInfo)(nil)).Elem() -} - -type ArrayOfHostSystemSwapConfigurationSystemSwapOption struct { - HostSystemSwapConfigurationSystemSwapOption []BaseHostSystemSwapConfigurationSystemSwapOption `xml:"HostSystemSwapConfigurationSystemSwapOption,omitempty,typeattr"` -} - -func init() { - t["ArrayOfHostSystemSwapConfigurationSystemSwapOption"] = reflect.TypeOf((*ArrayOfHostSystemSwapConfigurationSystemSwapOption)(nil)).Elem() -} - -type ArrayOfHostTpmDigestInfo struct { - HostTpmDigestInfo []HostTpmDigestInfo `xml:"HostTpmDigestInfo,omitempty"` -} - -func init() { - t["ArrayOfHostTpmDigestInfo"] = reflect.TypeOf((*ArrayOfHostTpmDigestInfo)(nil)).Elem() -} - -type ArrayOfHostTpmEventLogEntry struct { - HostTpmEventLogEntry []HostTpmEventLogEntry `xml:"HostTpmEventLogEntry,omitempty"` -} - -func init() { - t["ArrayOfHostTpmEventLogEntry"] = reflect.TypeOf((*ArrayOfHostTpmEventLogEntry)(nil)).Elem() -} - -type ArrayOfHostUnresolvedVmfsExtent struct { - HostUnresolvedVmfsExtent []HostUnresolvedVmfsExtent `xml:"HostUnresolvedVmfsExtent,omitempty"` -} - -func init() { - t["ArrayOfHostUnresolvedVmfsExtent"] = reflect.TypeOf((*ArrayOfHostUnresolvedVmfsExtent)(nil)).Elem() -} - -type ArrayOfHostUnresolvedVmfsResolutionResult struct { - HostUnresolvedVmfsResolutionResult []HostUnresolvedVmfsResolutionResult `xml:"HostUnresolvedVmfsResolutionResult,omitempty"` -} - -func init() { - t["ArrayOfHostUnresolvedVmfsResolutionResult"] = reflect.TypeOf((*ArrayOfHostUnresolvedVmfsResolutionResult)(nil)).Elem() -} - -type ArrayOfHostUnresolvedVmfsResolutionSpec struct { - HostUnresolvedVmfsResolutionSpec []HostUnresolvedVmfsResolutionSpec `xml:"HostUnresolvedVmfsResolutionSpec,omitempty"` -} - -func init() { - t["ArrayOfHostUnresolvedVmfsResolutionSpec"] = reflect.TypeOf((*ArrayOfHostUnresolvedVmfsResolutionSpec)(nil)).Elem() -} - -type ArrayOfHostUnresolvedVmfsVolume struct { - HostUnresolvedVmfsVolume []HostUnresolvedVmfsVolume `xml:"HostUnresolvedVmfsVolume,omitempty"` -} - -func init() { - t["ArrayOfHostUnresolvedVmfsVolume"] = reflect.TypeOf((*ArrayOfHostUnresolvedVmfsVolume)(nil)).Elem() -} - -type ArrayOfHostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption struct { - HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption []HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption `xml:"HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption,omitempty"` -} - -func init() { - t["ArrayOfHostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption"] = reflect.TypeOf((*ArrayOfHostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption)(nil)).Elem() -} - -type ArrayOfHostVMotionCompatibility struct { - HostVMotionCompatibility []HostVMotionCompatibility `xml:"HostVMotionCompatibility,omitempty"` -} - -func init() { - t["ArrayOfHostVMotionCompatibility"] = reflect.TypeOf((*ArrayOfHostVMotionCompatibility)(nil)).Elem() -} - -type ArrayOfHostVirtualNic struct { - HostVirtualNic []HostVirtualNic `xml:"HostVirtualNic,omitempty"` -} - -func init() { - t["ArrayOfHostVirtualNic"] = reflect.TypeOf((*ArrayOfHostVirtualNic)(nil)).Elem() -} - -type ArrayOfHostVirtualNicConfig struct { - HostVirtualNicConfig []HostVirtualNicConfig `xml:"HostVirtualNicConfig,omitempty"` -} - -func init() { - t["ArrayOfHostVirtualNicConfig"] = reflect.TypeOf((*ArrayOfHostVirtualNicConfig)(nil)).Elem() -} - -type ArrayOfHostVirtualNicManagerNicTypeSelection struct { - HostVirtualNicManagerNicTypeSelection []HostVirtualNicManagerNicTypeSelection `xml:"HostVirtualNicManagerNicTypeSelection,omitempty"` -} - -func init() { - t["ArrayOfHostVirtualNicManagerNicTypeSelection"] = reflect.TypeOf((*ArrayOfHostVirtualNicManagerNicTypeSelection)(nil)).Elem() -} - -type ArrayOfHostVirtualSwitch struct { - HostVirtualSwitch []HostVirtualSwitch `xml:"HostVirtualSwitch,omitempty"` -} - -func init() { - t["ArrayOfHostVirtualSwitch"] = reflect.TypeOf((*ArrayOfHostVirtualSwitch)(nil)).Elem() -} - -type ArrayOfHostVirtualSwitchConfig struct { - HostVirtualSwitchConfig []HostVirtualSwitchConfig `xml:"HostVirtualSwitchConfig,omitempty"` -} - -func init() { - t["ArrayOfHostVirtualSwitchConfig"] = reflect.TypeOf((*ArrayOfHostVirtualSwitchConfig)(nil)).Elem() -} - -type ArrayOfHostVmciAccessManagerAccessSpec struct { - HostVmciAccessManagerAccessSpec []HostVmciAccessManagerAccessSpec `xml:"HostVmciAccessManagerAccessSpec,omitempty"` -} - -func init() { - t["ArrayOfHostVmciAccessManagerAccessSpec"] = reflect.TypeOf((*ArrayOfHostVmciAccessManagerAccessSpec)(nil)).Elem() -} - -type ArrayOfHostVmfsRescanResult struct { - HostVmfsRescanResult []HostVmfsRescanResult `xml:"HostVmfsRescanResult,omitempty"` -} - -func init() { - t["ArrayOfHostVmfsRescanResult"] = reflect.TypeOf((*ArrayOfHostVmfsRescanResult)(nil)).Elem() -} - -type ArrayOfHostVsanInternalSystemCmmdsQuery struct { - HostVsanInternalSystemCmmdsQuery []HostVsanInternalSystemCmmdsQuery `xml:"HostVsanInternalSystemCmmdsQuery,omitempty"` -} - -func init() { - t["ArrayOfHostVsanInternalSystemCmmdsQuery"] = reflect.TypeOf((*ArrayOfHostVsanInternalSystemCmmdsQuery)(nil)).Elem() -} - -type ArrayOfHostVsanInternalSystemDeleteVsanObjectsResult struct { - HostVsanInternalSystemDeleteVsanObjectsResult []HostVsanInternalSystemDeleteVsanObjectsResult `xml:"HostVsanInternalSystemDeleteVsanObjectsResult,omitempty"` -} - -func init() { - t["ArrayOfHostVsanInternalSystemDeleteVsanObjectsResult"] = reflect.TypeOf((*ArrayOfHostVsanInternalSystemDeleteVsanObjectsResult)(nil)).Elem() -} - -type ArrayOfHostVsanInternalSystemVsanObjectOperationResult struct { - HostVsanInternalSystemVsanObjectOperationResult []HostVsanInternalSystemVsanObjectOperationResult `xml:"HostVsanInternalSystemVsanObjectOperationResult,omitempty"` -} - -func init() { - t["ArrayOfHostVsanInternalSystemVsanObjectOperationResult"] = reflect.TypeOf((*ArrayOfHostVsanInternalSystemVsanObjectOperationResult)(nil)).Elem() -} - -type ArrayOfHostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult struct { - HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult []HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult `xml:"HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult,omitempty"` -} - -func init() { - t["ArrayOfHostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult"] = reflect.TypeOf((*ArrayOfHostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult)(nil)).Elem() -} - -type ArrayOfHttpNfcLeaseDatastoreLeaseInfo struct { - HttpNfcLeaseDatastoreLeaseInfo []HttpNfcLeaseDatastoreLeaseInfo `xml:"HttpNfcLeaseDatastoreLeaseInfo,omitempty"` -} - -func init() { - t["ArrayOfHttpNfcLeaseDatastoreLeaseInfo"] = reflect.TypeOf((*ArrayOfHttpNfcLeaseDatastoreLeaseInfo)(nil)).Elem() -} - -type ArrayOfHttpNfcLeaseDeviceUrl struct { - HttpNfcLeaseDeviceUrl []HttpNfcLeaseDeviceUrl `xml:"HttpNfcLeaseDeviceUrl,omitempty"` -} - -func init() { - t["ArrayOfHttpNfcLeaseDeviceUrl"] = reflect.TypeOf((*ArrayOfHttpNfcLeaseDeviceUrl)(nil)).Elem() -} - -type ArrayOfHttpNfcLeaseHostInfo struct { - HttpNfcLeaseHostInfo []HttpNfcLeaseHostInfo `xml:"HttpNfcLeaseHostInfo,omitempty"` -} - -func init() { - t["ArrayOfHttpNfcLeaseHostInfo"] = reflect.TypeOf((*ArrayOfHttpNfcLeaseHostInfo)(nil)).Elem() -} - -type ArrayOfHttpNfcLeaseManifestEntry struct { - HttpNfcLeaseManifestEntry []HttpNfcLeaseManifestEntry `xml:"HttpNfcLeaseManifestEntry,omitempty"` -} - -func init() { - t["ArrayOfHttpNfcLeaseManifestEntry"] = reflect.TypeOf((*ArrayOfHttpNfcLeaseManifestEntry)(nil)).Elem() -} - -type ArrayOfID struct { - ID []ID `xml:"ID,omitempty"` -} - -func init() { - t["ArrayOfID"] = reflect.TypeOf((*ArrayOfID)(nil)).Elem() -} - -type ArrayOfImportOperationBulkFaultFaultOnImport struct { - ImportOperationBulkFaultFaultOnImport []ImportOperationBulkFaultFaultOnImport `xml:"ImportOperationBulkFaultFaultOnImport,omitempty"` -} - -func init() { - t["ArrayOfImportOperationBulkFaultFaultOnImport"] = reflect.TypeOf((*ArrayOfImportOperationBulkFaultFaultOnImport)(nil)).Elem() -} - -type ArrayOfImportSpec struct { - ImportSpec []BaseImportSpec `xml:"ImportSpec,omitempty,typeattr"` -} - -func init() { - t["ArrayOfImportSpec"] = reflect.TypeOf((*ArrayOfImportSpec)(nil)).Elem() -} - -type ArrayOfInt struct { - Int []int32 `xml:"int,omitempty"` -} - -func init() { - t["ArrayOfInt"] = reflect.TypeOf((*ArrayOfInt)(nil)).Elem() -} - -type ArrayOfIoFilterHostIssue struct { - IoFilterHostIssue []IoFilterHostIssue `xml:"IoFilterHostIssue,omitempty"` -} - -func init() { - t["ArrayOfIoFilterHostIssue"] = reflect.TypeOf((*ArrayOfIoFilterHostIssue)(nil)).Elem() -} - -type ArrayOfIpPool struct { - IpPool []IpPool `xml:"IpPool,omitempty"` -} - -func init() { - t["ArrayOfIpPool"] = reflect.TypeOf((*ArrayOfIpPool)(nil)).Elem() -} - -type ArrayOfIpPoolAssociation struct { - IpPoolAssociation []IpPoolAssociation `xml:"IpPoolAssociation,omitempty"` -} - -func init() { - t["ArrayOfIpPoolAssociation"] = reflect.TypeOf((*ArrayOfIpPoolAssociation)(nil)).Elem() -} - -type ArrayOfIpPoolManagerIpAllocation struct { - IpPoolManagerIpAllocation []IpPoolManagerIpAllocation `xml:"IpPoolManagerIpAllocation,omitempty"` -} - -func init() { - t["ArrayOfIpPoolManagerIpAllocation"] = reflect.TypeOf((*ArrayOfIpPoolManagerIpAllocation)(nil)).Elem() -} - -type ArrayOfIscsiDependencyEntity struct { - IscsiDependencyEntity []IscsiDependencyEntity `xml:"IscsiDependencyEntity,omitempty"` -} - -func init() { - t["ArrayOfIscsiDependencyEntity"] = reflect.TypeOf((*ArrayOfIscsiDependencyEntity)(nil)).Elem() -} - -type ArrayOfIscsiPortInfo struct { - IscsiPortInfo []IscsiPortInfo `xml:"IscsiPortInfo,omitempty"` -} - -func init() { - t["ArrayOfIscsiPortInfo"] = reflect.TypeOf((*ArrayOfIscsiPortInfo)(nil)).Elem() -} - -type ArrayOfKernelModuleInfo struct { - KernelModuleInfo []KernelModuleInfo `xml:"KernelModuleInfo,omitempty"` -} - -func init() { - t["ArrayOfKernelModuleInfo"] = reflect.TypeOf((*ArrayOfKernelModuleInfo)(nil)).Elem() -} - -type ArrayOfKeyAnyValue struct { - KeyAnyValue []KeyAnyValue `xml:"KeyAnyValue,omitempty"` -} - -func init() { - t["ArrayOfKeyAnyValue"] = reflect.TypeOf((*ArrayOfKeyAnyValue)(nil)).Elem() -} - -type ArrayOfKeyValue struct { - KeyValue []KeyValue `xml:"KeyValue,omitempty"` -} - -func init() { - t["ArrayOfKeyValue"] = reflect.TypeOf((*ArrayOfKeyValue)(nil)).Elem() -} - -type ArrayOfKmipClusterInfo struct { - KmipClusterInfo []KmipClusterInfo `xml:"KmipClusterInfo,omitempty"` -} - -func init() { - t["ArrayOfKmipClusterInfo"] = reflect.TypeOf((*ArrayOfKmipClusterInfo)(nil)).Elem() -} - -type ArrayOfKmipServerInfo struct { - KmipServerInfo []KmipServerInfo `xml:"KmipServerInfo,omitempty"` -} - -func init() { - t["ArrayOfKmipServerInfo"] = reflect.TypeOf((*ArrayOfKmipServerInfo)(nil)).Elem() -} - -type ArrayOfLicenseAssignmentManagerLicenseAssignment struct { - LicenseAssignmentManagerLicenseAssignment []LicenseAssignmentManagerLicenseAssignment `xml:"LicenseAssignmentManagerLicenseAssignment,omitempty"` -} - -func init() { - t["ArrayOfLicenseAssignmentManagerLicenseAssignment"] = reflect.TypeOf((*ArrayOfLicenseAssignmentManagerLicenseAssignment)(nil)).Elem() -} - -type ArrayOfLicenseAvailabilityInfo struct { - LicenseAvailabilityInfo []LicenseAvailabilityInfo `xml:"LicenseAvailabilityInfo,omitempty"` -} - -func init() { - t["ArrayOfLicenseAvailabilityInfo"] = reflect.TypeOf((*ArrayOfLicenseAvailabilityInfo)(nil)).Elem() -} - -type ArrayOfLicenseFeatureInfo struct { - LicenseFeatureInfo []LicenseFeatureInfo `xml:"LicenseFeatureInfo,omitempty"` -} - -func init() { - t["ArrayOfLicenseFeatureInfo"] = reflect.TypeOf((*ArrayOfLicenseFeatureInfo)(nil)).Elem() -} - -type ArrayOfLicenseManagerLicenseInfo struct { - LicenseManagerLicenseInfo []LicenseManagerLicenseInfo `xml:"LicenseManagerLicenseInfo,omitempty"` -} - -func init() { - t["ArrayOfLicenseManagerLicenseInfo"] = reflect.TypeOf((*ArrayOfLicenseManagerLicenseInfo)(nil)).Elem() -} - -type ArrayOfLicenseReservationInfo struct { - LicenseReservationInfo []LicenseReservationInfo `xml:"LicenseReservationInfo,omitempty"` -} - -func init() { - t["ArrayOfLicenseReservationInfo"] = reflect.TypeOf((*ArrayOfLicenseReservationInfo)(nil)).Elem() -} - -type ArrayOfLocalizableMessage struct { - LocalizableMessage []LocalizableMessage `xml:"LocalizableMessage,omitempty"` -} - -func init() { - t["ArrayOfLocalizableMessage"] = reflect.TypeOf((*ArrayOfLocalizableMessage)(nil)).Elem() -} - -type ArrayOfLocalizationManagerMessageCatalog struct { - LocalizationManagerMessageCatalog []LocalizationManagerMessageCatalog `xml:"LocalizationManagerMessageCatalog,omitempty"` -} - -func init() { - t["ArrayOfLocalizationManagerMessageCatalog"] = reflect.TypeOf((*ArrayOfLocalizationManagerMessageCatalog)(nil)).Elem() -} - -type ArrayOfLong struct { - Long []int64 `xml:"long,omitempty"` -} - -func init() { - t["ArrayOfLong"] = reflect.TypeOf((*ArrayOfLong)(nil)).Elem() -} - -type ArrayOfManagedObjectReference struct { - ManagedObjectReference []ManagedObjectReference `xml:"ManagedObjectReference,omitempty"` -} - -func init() { - t["ArrayOfManagedObjectReference"] = reflect.TypeOf((*ArrayOfManagedObjectReference)(nil)).Elem() -} - -type ArrayOfMethodActionArgument struct { - MethodActionArgument []MethodActionArgument `xml:"MethodActionArgument,omitempty"` -} - -func init() { - t["ArrayOfMethodActionArgument"] = reflect.TypeOf((*ArrayOfMethodActionArgument)(nil)).Elem() -} - -type ArrayOfMethodFault struct { - MethodFault []BaseMethodFault `xml:"MethodFault,omitempty,typeattr"` -} - -func init() { - t["ArrayOfMethodFault"] = reflect.TypeOf((*ArrayOfMethodFault)(nil)).Elem() -} - -type ArrayOfMissingObject struct { - MissingObject []MissingObject `xml:"MissingObject,omitempty"` -} - -func init() { - t["ArrayOfMissingObject"] = reflect.TypeOf((*ArrayOfMissingObject)(nil)).Elem() -} - -type ArrayOfMissingProperty struct { - MissingProperty []MissingProperty `xml:"MissingProperty,omitempty"` -} - -func init() { - t["ArrayOfMissingProperty"] = reflect.TypeOf((*ArrayOfMissingProperty)(nil)).Elem() -} - -type ArrayOfMultipleCertificatesVerifyFaultThumbprintData struct { - MultipleCertificatesVerifyFaultThumbprintData []MultipleCertificatesVerifyFaultThumbprintData `xml:"MultipleCertificatesVerifyFaultThumbprintData,omitempty"` -} - -func init() { - t["ArrayOfMultipleCertificatesVerifyFaultThumbprintData"] = reflect.TypeOf((*ArrayOfMultipleCertificatesVerifyFaultThumbprintData)(nil)).Elem() -} - -type ArrayOfNasStorageProfile struct { - NasStorageProfile []NasStorageProfile `xml:"NasStorageProfile,omitempty"` -} - -func init() { - t["ArrayOfNasStorageProfile"] = reflect.TypeOf((*ArrayOfNasStorageProfile)(nil)).Elem() -} - -type ArrayOfNetIpConfigInfoIpAddress struct { - NetIpConfigInfoIpAddress []NetIpConfigInfoIpAddress `xml:"NetIpConfigInfoIpAddress,omitempty"` -} - -func init() { - t["ArrayOfNetIpConfigInfoIpAddress"] = reflect.TypeOf((*ArrayOfNetIpConfigInfoIpAddress)(nil)).Elem() -} - -type ArrayOfNetIpConfigSpecIpAddressSpec struct { - NetIpConfigSpecIpAddressSpec []NetIpConfigSpecIpAddressSpec `xml:"NetIpConfigSpecIpAddressSpec,omitempty"` -} - -func init() { - t["ArrayOfNetIpConfigSpecIpAddressSpec"] = reflect.TypeOf((*ArrayOfNetIpConfigSpecIpAddressSpec)(nil)).Elem() -} - -type ArrayOfNetIpRouteConfigInfoIpRoute struct { - NetIpRouteConfigInfoIpRoute []NetIpRouteConfigInfoIpRoute `xml:"NetIpRouteConfigInfoIpRoute,omitempty"` -} - -func init() { - t["ArrayOfNetIpRouteConfigInfoIpRoute"] = reflect.TypeOf((*ArrayOfNetIpRouteConfigInfoIpRoute)(nil)).Elem() -} - -type ArrayOfNetIpRouteConfigSpecIpRouteSpec struct { - NetIpRouteConfigSpecIpRouteSpec []NetIpRouteConfigSpecIpRouteSpec `xml:"NetIpRouteConfigSpecIpRouteSpec,omitempty"` -} - -func init() { - t["ArrayOfNetIpRouteConfigSpecIpRouteSpec"] = reflect.TypeOf((*ArrayOfNetIpRouteConfigSpecIpRouteSpec)(nil)).Elem() -} - -type ArrayOfNetIpStackInfoDefaultRouter struct { - NetIpStackInfoDefaultRouter []NetIpStackInfoDefaultRouter `xml:"NetIpStackInfoDefaultRouter,omitempty"` -} - -func init() { - t["ArrayOfNetIpStackInfoDefaultRouter"] = reflect.TypeOf((*ArrayOfNetIpStackInfoDefaultRouter)(nil)).Elem() -} - -type ArrayOfNetIpStackInfoNetToMedia struct { - NetIpStackInfoNetToMedia []NetIpStackInfoNetToMedia `xml:"NetIpStackInfoNetToMedia,omitempty"` -} - -func init() { - t["ArrayOfNetIpStackInfoNetToMedia"] = reflect.TypeOf((*ArrayOfNetIpStackInfoNetToMedia)(nil)).Elem() -} - -type ArrayOfNetStackInstanceProfile struct { - NetStackInstanceProfile []NetStackInstanceProfile `xml:"NetStackInstanceProfile,omitempty"` -} - -func init() { - t["ArrayOfNetStackInstanceProfile"] = reflect.TypeOf((*ArrayOfNetStackInstanceProfile)(nil)).Elem() -} - -type ArrayOfNumericRange struct { - NumericRange []NumericRange `xml:"NumericRange,omitempty"` -} - -func init() { - t["ArrayOfNumericRange"] = reflect.TypeOf((*ArrayOfNumericRange)(nil)).Elem() -} - -type ArrayOfObjectContent struct { - ObjectContent []ObjectContent `xml:"ObjectContent,omitempty"` -} - -func init() { - t["ArrayOfObjectContent"] = reflect.TypeOf((*ArrayOfObjectContent)(nil)).Elem() -} - -type ArrayOfObjectSpec struct { - ObjectSpec []ObjectSpec `xml:"ObjectSpec,omitempty"` -} - -func init() { - t["ArrayOfObjectSpec"] = reflect.TypeOf((*ArrayOfObjectSpec)(nil)).Elem() -} - -type ArrayOfObjectUpdate struct { - ObjectUpdate []ObjectUpdate `xml:"ObjectUpdate,omitempty"` -} - -func init() { - t["ArrayOfObjectUpdate"] = reflect.TypeOf((*ArrayOfObjectUpdate)(nil)).Elem() -} - -type ArrayOfOpaqueNetworkTargetInfo struct { - OpaqueNetworkTargetInfo []OpaqueNetworkTargetInfo `xml:"OpaqueNetworkTargetInfo,omitempty"` -} - -func init() { - t["ArrayOfOpaqueNetworkTargetInfo"] = reflect.TypeOf((*ArrayOfOpaqueNetworkTargetInfo)(nil)).Elem() -} - -type ArrayOfOptionDef struct { - OptionDef []OptionDef `xml:"OptionDef,omitempty"` -} - -func init() { - t["ArrayOfOptionDef"] = reflect.TypeOf((*ArrayOfOptionDef)(nil)).Elem() -} - -type ArrayOfOptionProfile struct { - OptionProfile []OptionProfile `xml:"OptionProfile,omitempty"` -} - -func init() { - t["ArrayOfOptionProfile"] = reflect.TypeOf((*ArrayOfOptionProfile)(nil)).Elem() -} - -type ArrayOfOptionValue struct { - OptionValue []BaseOptionValue `xml:"OptionValue,omitempty,typeattr"` -} - -func init() { - t["ArrayOfOptionValue"] = reflect.TypeOf((*ArrayOfOptionValue)(nil)).Elem() -} - -type ArrayOfOvfConsumerOstNode struct { - OvfConsumerOstNode []OvfConsumerOstNode `xml:"OvfConsumerOstNode,omitempty"` -} - -func init() { - t["ArrayOfOvfConsumerOstNode"] = reflect.TypeOf((*ArrayOfOvfConsumerOstNode)(nil)).Elem() -} - -type ArrayOfOvfConsumerOvfSection struct { - OvfConsumerOvfSection []OvfConsumerOvfSection `xml:"OvfConsumerOvfSection,omitempty"` -} - -func init() { - t["ArrayOfOvfConsumerOvfSection"] = reflect.TypeOf((*ArrayOfOvfConsumerOvfSection)(nil)).Elem() -} - -type ArrayOfOvfDeploymentOption struct { - OvfDeploymentOption []OvfDeploymentOption `xml:"OvfDeploymentOption,omitempty"` -} - -func init() { - t["ArrayOfOvfDeploymentOption"] = reflect.TypeOf((*ArrayOfOvfDeploymentOption)(nil)).Elem() -} - -type ArrayOfOvfFile struct { - OvfFile []OvfFile `xml:"OvfFile,omitempty"` -} - -func init() { - t["ArrayOfOvfFile"] = reflect.TypeOf((*ArrayOfOvfFile)(nil)).Elem() -} - -type ArrayOfOvfFileItem struct { - OvfFileItem []OvfFileItem `xml:"OvfFileItem,omitempty"` -} - -func init() { - t["ArrayOfOvfFileItem"] = reflect.TypeOf((*ArrayOfOvfFileItem)(nil)).Elem() -} - -type ArrayOfOvfNetworkInfo struct { - OvfNetworkInfo []OvfNetworkInfo `xml:"OvfNetworkInfo,omitempty"` -} - -func init() { - t["ArrayOfOvfNetworkInfo"] = reflect.TypeOf((*ArrayOfOvfNetworkInfo)(nil)).Elem() -} - -type ArrayOfOvfNetworkMapping struct { - OvfNetworkMapping []OvfNetworkMapping `xml:"OvfNetworkMapping,omitempty"` -} - -func init() { - t["ArrayOfOvfNetworkMapping"] = reflect.TypeOf((*ArrayOfOvfNetworkMapping)(nil)).Elem() -} - -type ArrayOfOvfOptionInfo struct { - OvfOptionInfo []OvfOptionInfo `xml:"OvfOptionInfo,omitempty"` -} - -func init() { - t["ArrayOfOvfOptionInfo"] = reflect.TypeOf((*ArrayOfOvfOptionInfo)(nil)).Elem() -} - -type ArrayOfOvfResourceMap struct { - OvfResourceMap []OvfResourceMap `xml:"OvfResourceMap,omitempty"` -} - -func init() { - t["ArrayOfOvfResourceMap"] = reflect.TypeOf((*ArrayOfOvfResourceMap)(nil)).Elem() -} - -type ArrayOfPerfCounterInfo struct { - PerfCounterInfo []PerfCounterInfo `xml:"PerfCounterInfo,omitempty"` -} - -func init() { - t["ArrayOfPerfCounterInfo"] = reflect.TypeOf((*ArrayOfPerfCounterInfo)(nil)).Elem() -} - -type ArrayOfPerfEntityMetricBase struct { - PerfEntityMetricBase []BasePerfEntityMetricBase `xml:"PerfEntityMetricBase,omitempty,typeattr"` -} - -func init() { - t["ArrayOfPerfEntityMetricBase"] = reflect.TypeOf((*ArrayOfPerfEntityMetricBase)(nil)).Elem() -} - -type ArrayOfPerfInterval struct { - PerfInterval []PerfInterval `xml:"PerfInterval,omitempty"` -} - -func init() { - t["ArrayOfPerfInterval"] = reflect.TypeOf((*ArrayOfPerfInterval)(nil)).Elem() -} - -type ArrayOfPerfMetricId struct { - PerfMetricId []PerfMetricId `xml:"PerfMetricId,omitempty"` -} - -func init() { - t["ArrayOfPerfMetricId"] = reflect.TypeOf((*ArrayOfPerfMetricId)(nil)).Elem() -} - -type ArrayOfPerfMetricSeries struct { - PerfMetricSeries []BasePerfMetricSeries `xml:"PerfMetricSeries,omitempty,typeattr"` -} - -func init() { - t["ArrayOfPerfMetricSeries"] = reflect.TypeOf((*ArrayOfPerfMetricSeries)(nil)).Elem() -} - -type ArrayOfPerfMetricSeriesCSV struct { - PerfMetricSeriesCSV []PerfMetricSeriesCSV `xml:"PerfMetricSeriesCSV,omitempty"` -} - -func init() { - t["ArrayOfPerfMetricSeriesCSV"] = reflect.TypeOf((*ArrayOfPerfMetricSeriesCSV)(nil)).Elem() -} - -type ArrayOfPerfQuerySpec struct { - PerfQuerySpec []PerfQuerySpec `xml:"PerfQuerySpec,omitempty"` -} - -func init() { - t["ArrayOfPerfQuerySpec"] = reflect.TypeOf((*ArrayOfPerfQuerySpec)(nil)).Elem() -} - -type ArrayOfPerfSampleInfo struct { - PerfSampleInfo []PerfSampleInfo `xml:"PerfSampleInfo,omitempty"` -} - -func init() { - t["ArrayOfPerfSampleInfo"] = reflect.TypeOf((*ArrayOfPerfSampleInfo)(nil)).Elem() -} - -type ArrayOfPerformanceManagerCounterLevelMapping struct { - PerformanceManagerCounterLevelMapping []PerformanceManagerCounterLevelMapping `xml:"PerformanceManagerCounterLevelMapping,omitempty"` -} - -func init() { - t["ArrayOfPerformanceManagerCounterLevelMapping"] = reflect.TypeOf((*ArrayOfPerformanceManagerCounterLevelMapping)(nil)).Elem() -} - -type ArrayOfPermission struct { - Permission []Permission `xml:"Permission,omitempty"` -} - -func init() { - t["ArrayOfPermission"] = reflect.TypeOf((*ArrayOfPermission)(nil)).Elem() -} - -type ArrayOfPermissionProfile struct { - PermissionProfile []PermissionProfile `xml:"PermissionProfile,omitempty"` -} - -func init() { - t["ArrayOfPermissionProfile"] = reflect.TypeOf((*ArrayOfPermissionProfile)(nil)).Elem() -} - -type ArrayOfPhysicalNic struct { - PhysicalNic []PhysicalNic `xml:"PhysicalNic,omitempty"` -} - -func init() { - t["ArrayOfPhysicalNic"] = reflect.TypeOf((*ArrayOfPhysicalNic)(nil)).Elem() -} - -type ArrayOfPhysicalNicConfig struct { - PhysicalNicConfig []PhysicalNicConfig `xml:"PhysicalNicConfig,omitempty"` -} - -func init() { - t["ArrayOfPhysicalNicConfig"] = reflect.TypeOf((*ArrayOfPhysicalNicConfig)(nil)).Elem() -} - -type ArrayOfPhysicalNicHintInfo struct { - PhysicalNicHintInfo []PhysicalNicHintInfo `xml:"PhysicalNicHintInfo,omitempty"` -} - -func init() { - t["ArrayOfPhysicalNicHintInfo"] = reflect.TypeOf((*ArrayOfPhysicalNicHintInfo)(nil)).Elem() -} - -type ArrayOfPhysicalNicIpHint struct { - PhysicalNicIpHint []PhysicalNicIpHint `xml:"PhysicalNicIpHint,omitempty"` -} - -func init() { - t["ArrayOfPhysicalNicIpHint"] = reflect.TypeOf((*ArrayOfPhysicalNicIpHint)(nil)).Elem() -} - -type ArrayOfPhysicalNicLinkInfo struct { - PhysicalNicLinkInfo []PhysicalNicLinkInfo `xml:"PhysicalNicLinkInfo,omitempty"` -} - -func init() { - t["ArrayOfPhysicalNicLinkInfo"] = reflect.TypeOf((*ArrayOfPhysicalNicLinkInfo)(nil)).Elem() -} - -type ArrayOfPhysicalNicNameHint struct { - PhysicalNicNameHint []PhysicalNicNameHint `xml:"PhysicalNicNameHint,omitempty"` -} - -func init() { - t["ArrayOfPhysicalNicNameHint"] = reflect.TypeOf((*ArrayOfPhysicalNicNameHint)(nil)).Elem() -} - -type ArrayOfPhysicalNicProfile struct { - PhysicalNicProfile []PhysicalNicProfile `xml:"PhysicalNicProfile,omitempty"` -} - -func init() { - t["ArrayOfPhysicalNicProfile"] = reflect.TypeOf((*ArrayOfPhysicalNicProfile)(nil)).Elem() -} - -type ArrayOfPlacementAffinityRule struct { - PlacementAffinityRule []PlacementAffinityRule `xml:"PlacementAffinityRule,omitempty"` -} - -func init() { - t["ArrayOfPlacementAffinityRule"] = reflect.TypeOf((*ArrayOfPlacementAffinityRule)(nil)).Elem() -} - -type ArrayOfPlacementSpec struct { - PlacementSpec []PlacementSpec `xml:"PlacementSpec,omitempty"` -} - -func init() { - t["ArrayOfPlacementSpec"] = reflect.TypeOf((*ArrayOfPlacementSpec)(nil)).Elem() -} - -type ArrayOfPnicUplinkProfile struct { - PnicUplinkProfile []PnicUplinkProfile `xml:"PnicUplinkProfile,omitempty"` -} - -func init() { - t["ArrayOfPnicUplinkProfile"] = reflect.TypeOf((*ArrayOfPnicUplinkProfile)(nil)).Elem() -} - -type ArrayOfPodDiskLocator struct { - PodDiskLocator []PodDiskLocator `xml:"PodDiskLocator,omitempty"` -} - -func init() { - t["ArrayOfPodDiskLocator"] = reflect.TypeOf((*ArrayOfPodDiskLocator)(nil)).Elem() -} - -type ArrayOfPolicyOption struct { - PolicyOption []BasePolicyOption `xml:"PolicyOption,omitempty,typeattr"` -} - -func init() { - t["ArrayOfPolicyOption"] = reflect.TypeOf((*ArrayOfPolicyOption)(nil)).Elem() -} - -type ArrayOfPrivilegeAvailability struct { - PrivilegeAvailability []PrivilegeAvailability `xml:"PrivilegeAvailability,omitempty"` -} - -func init() { - t["ArrayOfPrivilegeAvailability"] = reflect.TypeOf((*ArrayOfPrivilegeAvailability)(nil)).Elem() -} - -type ArrayOfProductComponentInfo struct { - ProductComponentInfo []ProductComponentInfo `xml:"ProductComponentInfo,omitempty"` -} - -func init() { - t["ArrayOfProductComponentInfo"] = reflect.TypeOf((*ArrayOfProductComponentInfo)(nil)).Elem() -} - -type ArrayOfProfileApplyProfileProperty struct { - ProfileApplyProfileProperty []ProfileApplyProfileProperty `xml:"ProfileApplyProfileProperty,omitempty"` -} - -func init() { - t["ArrayOfProfileApplyProfileProperty"] = reflect.TypeOf((*ArrayOfProfileApplyProfileProperty)(nil)).Elem() -} - -type ArrayOfProfileDeferredPolicyOptionParameter struct { - ProfileDeferredPolicyOptionParameter []ProfileDeferredPolicyOptionParameter `xml:"ProfileDeferredPolicyOptionParameter,omitempty"` -} - -func init() { - t["ArrayOfProfileDeferredPolicyOptionParameter"] = reflect.TypeOf((*ArrayOfProfileDeferredPolicyOptionParameter)(nil)).Elem() -} - -type ArrayOfProfileDescriptionSection struct { - ProfileDescriptionSection []ProfileDescriptionSection `xml:"ProfileDescriptionSection,omitempty"` -} - -func init() { - t["ArrayOfProfileDescriptionSection"] = reflect.TypeOf((*ArrayOfProfileDescriptionSection)(nil)).Elem() -} - -type ArrayOfProfileExecuteError struct { - ProfileExecuteError []ProfileExecuteError `xml:"ProfileExecuteError,omitempty"` -} - -func init() { - t["ArrayOfProfileExecuteError"] = reflect.TypeOf((*ArrayOfProfileExecuteError)(nil)).Elem() -} - -type ArrayOfProfileExpression struct { - ProfileExpression []BaseProfileExpression `xml:"ProfileExpression,omitempty,typeattr"` -} - -func init() { - t["ArrayOfProfileExpression"] = reflect.TypeOf((*ArrayOfProfileExpression)(nil)).Elem() -} - -type ArrayOfProfileExpressionMetadata struct { - ProfileExpressionMetadata []ProfileExpressionMetadata `xml:"ProfileExpressionMetadata,omitempty"` -} - -func init() { - t["ArrayOfProfileExpressionMetadata"] = reflect.TypeOf((*ArrayOfProfileExpressionMetadata)(nil)).Elem() -} - -type ArrayOfProfileMetadata struct { - ProfileMetadata []ProfileMetadata `xml:"ProfileMetadata,omitempty"` -} - -func init() { - t["ArrayOfProfileMetadata"] = reflect.TypeOf((*ArrayOfProfileMetadata)(nil)).Elem() -} - -type ArrayOfProfileMetadataProfileSortSpec struct { - ProfileMetadataProfileSortSpec []ProfileMetadataProfileSortSpec `xml:"ProfileMetadataProfileSortSpec,omitempty"` -} - -func init() { - t["ArrayOfProfileMetadataProfileSortSpec"] = reflect.TypeOf((*ArrayOfProfileMetadataProfileSortSpec)(nil)).Elem() -} - -type ArrayOfProfileParameterMetadata struct { - ProfileParameterMetadata []ProfileParameterMetadata `xml:"ProfileParameterMetadata,omitempty"` -} - -func init() { - t["ArrayOfProfileParameterMetadata"] = reflect.TypeOf((*ArrayOfProfileParameterMetadata)(nil)).Elem() -} - -type ArrayOfProfilePolicy struct { - ProfilePolicy []ProfilePolicy `xml:"ProfilePolicy,omitempty"` -} - -func init() { - t["ArrayOfProfilePolicy"] = reflect.TypeOf((*ArrayOfProfilePolicy)(nil)).Elem() -} - -type ArrayOfProfilePolicyMetadata struct { - ProfilePolicyMetadata []ProfilePolicyMetadata `xml:"ProfilePolicyMetadata,omitempty"` -} - -func init() { - t["ArrayOfProfilePolicyMetadata"] = reflect.TypeOf((*ArrayOfProfilePolicyMetadata)(nil)).Elem() -} - -type ArrayOfProfilePolicyOptionMetadata struct { - ProfilePolicyOptionMetadata []BaseProfilePolicyOptionMetadata `xml:"ProfilePolicyOptionMetadata,omitempty,typeattr"` -} - -func init() { - t["ArrayOfProfilePolicyOptionMetadata"] = reflect.TypeOf((*ArrayOfProfilePolicyOptionMetadata)(nil)).Elem() -} - -type ArrayOfProfileProfileStructureProperty struct { - ProfileProfileStructureProperty []ProfileProfileStructureProperty `xml:"ProfileProfileStructureProperty,omitempty"` -} - -func init() { - t["ArrayOfProfileProfileStructureProperty"] = reflect.TypeOf((*ArrayOfProfileProfileStructureProperty)(nil)).Elem() -} - -type ArrayOfProfilePropertyPath struct { - ProfilePropertyPath []ProfilePropertyPath `xml:"ProfilePropertyPath,omitempty"` -} - -func init() { - t["ArrayOfProfilePropertyPath"] = reflect.TypeOf((*ArrayOfProfilePropertyPath)(nil)).Elem() -} - -type ArrayOfProfileUpdateFailedUpdateFailure struct { - ProfileUpdateFailedUpdateFailure []ProfileUpdateFailedUpdateFailure `xml:"ProfileUpdateFailedUpdateFailure,omitempty"` -} - -func init() { - t["ArrayOfProfileUpdateFailedUpdateFailure"] = reflect.TypeOf((*ArrayOfProfileUpdateFailedUpdateFailure)(nil)).Elem() -} - -type ArrayOfPropertyChange struct { - PropertyChange []PropertyChange `xml:"PropertyChange,omitempty"` -} - -func init() { - t["ArrayOfPropertyChange"] = reflect.TypeOf((*ArrayOfPropertyChange)(nil)).Elem() -} - -type ArrayOfPropertyFilterSpec struct { - PropertyFilterSpec []PropertyFilterSpec `xml:"PropertyFilterSpec,omitempty"` -} - -func init() { - t["ArrayOfPropertyFilterSpec"] = reflect.TypeOf((*ArrayOfPropertyFilterSpec)(nil)).Elem() -} - -type ArrayOfPropertyFilterUpdate struct { - PropertyFilterUpdate []PropertyFilterUpdate `xml:"PropertyFilterUpdate,omitempty"` -} - -func init() { - t["ArrayOfPropertyFilterUpdate"] = reflect.TypeOf((*ArrayOfPropertyFilterUpdate)(nil)).Elem() -} - -type ArrayOfPropertySpec struct { - PropertySpec []PropertySpec `xml:"PropertySpec,omitempty"` -} - -func init() { - t["ArrayOfPropertySpec"] = reflect.TypeOf((*ArrayOfPropertySpec)(nil)).Elem() -} - -type ArrayOfRelation struct { - Relation []Relation `xml:"Relation,omitempty"` -} - -func init() { - t["ArrayOfRelation"] = reflect.TypeOf((*ArrayOfRelation)(nil)).Elem() -} - -type ArrayOfReplicationInfoDiskSettings struct { - ReplicationInfoDiskSettings []ReplicationInfoDiskSettings `xml:"ReplicationInfoDiskSettings,omitempty"` -} - -func init() { - t["ArrayOfReplicationInfoDiskSettings"] = reflect.TypeOf((*ArrayOfReplicationInfoDiskSettings)(nil)).Elem() -} - -type ArrayOfResourceConfigSpec struct { - ResourceConfigSpec []ResourceConfigSpec `xml:"ResourceConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfResourceConfigSpec"] = reflect.TypeOf((*ArrayOfResourceConfigSpec)(nil)).Elem() -} - -type ArrayOfScheduledTaskDetail struct { - ScheduledTaskDetail []ScheduledTaskDetail `xml:"ScheduledTaskDetail,omitempty"` -} - -func init() { - t["ArrayOfScheduledTaskDetail"] = reflect.TypeOf((*ArrayOfScheduledTaskDetail)(nil)).Elem() -} - -type ArrayOfScsiLun struct { - ScsiLun []BaseScsiLun `xml:"ScsiLun,omitempty,typeattr"` -} - -func init() { - t["ArrayOfScsiLun"] = reflect.TypeOf((*ArrayOfScsiLun)(nil)).Elem() -} - -type ArrayOfScsiLunDescriptor struct { - ScsiLunDescriptor []ScsiLunDescriptor `xml:"ScsiLunDescriptor,omitempty"` -} - -func init() { - t["ArrayOfScsiLunDescriptor"] = reflect.TypeOf((*ArrayOfScsiLunDescriptor)(nil)).Elem() -} - -type ArrayOfScsiLunDurableName struct { - ScsiLunDurableName []ScsiLunDurableName `xml:"ScsiLunDurableName,omitempty"` -} - -func init() { - t["ArrayOfScsiLunDurableName"] = reflect.TypeOf((*ArrayOfScsiLunDurableName)(nil)).Elem() -} - -type ArrayOfSelectionSet struct { - SelectionSet []BaseSelectionSet `xml:"SelectionSet,omitempty,typeattr"` -} - -func init() { - t["ArrayOfSelectionSet"] = reflect.TypeOf((*ArrayOfSelectionSet)(nil)).Elem() -} - -type ArrayOfSelectionSpec struct { - SelectionSpec []BaseSelectionSpec `xml:"SelectionSpec,omitempty,typeattr"` -} - -func init() { - t["ArrayOfSelectionSpec"] = reflect.TypeOf((*ArrayOfSelectionSpec)(nil)).Elem() -} - -type ArrayOfServiceConsolePortGroupProfile struct { - ServiceConsolePortGroupProfile []ServiceConsolePortGroupProfile `xml:"ServiceConsolePortGroupProfile,omitempty"` -} - -func init() { - t["ArrayOfServiceConsolePortGroupProfile"] = reflect.TypeOf((*ArrayOfServiceConsolePortGroupProfile)(nil)).Elem() -} - -type ArrayOfServiceLocator struct { - ServiceLocator []ServiceLocator `xml:"ServiceLocator,omitempty"` -} - -func init() { - t["ArrayOfServiceLocator"] = reflect.TypeOf((*ArrayOfServiceLocator)(nil)).Elem() -} - -type ArrayOfServiceManagerServiceInfo struct { - ServiceManagerServiceInfo []ServiceManagerServiceInfo `xml:"ServiceManagerServiceInfo,omitempty"` -} - -func init() { - t["ArrayOfServiceManagerServiceInfo"] = reflect.TypeOf((*ArrayOfServiceManagerServiceInfo)(nil)).Elem() -} - -type ArrayOfServiceProfile struct { - ServiceProfile []ServiceProfile `xml:"ServiceProfile,omitempty"` -} - -func init() { - t["ArrayOfServiceProfile"] = reflect.TypeOf((*ArrayOfServiceProfile)(nil)).Elem() -} - -type ArrayOfShort struct { - Short []int16 `xml:"short,omitempty"` -} - -func init() { - t["ArrayOfShort"] = reflect.TypeOf((*ArrayOfShort)(nil)).Elem() -} - -type ArrayOfSoftwarePackage struct { - SoftwarePackage []SoftwarePackage `xml:"SoftwarePackage,omitempty"` -} - -func init() { - t["ArrayOfSoftwarePackage"] = reflect.TypeOf((*ArrayOfSoftwarePackage)(nil)).Elem() -} - -type ArrayOfStaticRouteProfile struct { - StaticRouteProfile []StaticRouteProfile `xml:"StaticRouteProfile,omitempty"` -} - -func init() { - t["ArrayOfStaticRouteProfile"] = reflect.TypeOf((*ArrayOfStaticRouteProfile)(nil)).Elem() -} - -type ArrayOfStorageDrsOptionSpec struct { - StorageDrsOptionSpec []StorageDrsOptionSpec `xml:"StorageDrsOptionSpec,omitempty"` -} - -func init() { - t["ArrayOfStorageDrsOptionSpec"] = reflect.TypeOf((*ArrayOfStorageDrsOptionSpec)(nil)).Elem() -} - -type ArrayOfStorageDrsPlacementRankVmSpec struct { - StorageDrsPlacementRankVmSpec []StorageDrsPlacementRankVmSpec `xml:"StorageDrsPlacementRankVmSpec,omitempty"` -} - -func init() { - t["ArrayOfStorageDrsPlacementRankVmSpec"] = reflect.TypeOf((*ArrayOfStorageDrsPlacementRankVmSpec)(nil)).Elem() -} - -type ArrayOfStorageDrsVmConfigInfo struct { - StorageDrsVmConfigInfo []StorageDrsVmConfigInfo `xml:"StorageDrsVmConfigInfo,omitempty"` -} - -func init() { - t["ArrayOfStorageDrsVmConfigInfo"] = reflect.TypeOf((*ArrayOfStorageDrsVmConfigInfo)(nil)).Elem() -} - -type ArrayOfStorageDrsVmConfigSpec struct { - StorageDrsVmConfigSpec []StorageDrsVmConfigSpec `xml:"StorageDrsVmConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfStorageDrsVmConfigSpec"] = reflect.TypeOf((*ArrayOfStorageDrsVmConfigSpec)(nil)).Elem() -} - -type ArrayOfStoragePerformanceSummary struct { - StoragePerformanceSummary []StoragePerformanceSummary `xml:"StoragePerformanceSummary,omitempty"` -} - -func init() { - t["ArrayOfStoragePerformanceSummary"] = reflect.TypeOf((*ArrayOfStoragePerformanceSummary)(nil)).Elem() -} - -type ArrayOfStorageRequirement struct { - StorageRequirement []StorageRequirement `xml:"StorageRequirement,omitempty"` -} - -func init() { - t["ArrayOfStorageRequirement"] = reflect.TypeOf((*ArrayOfStorageRequirement)(nil)).Elem() -} - -type ArrayOfString struct { - String []string `xml:"string,omitempty"` -} - -func init() { - t["ArrayOfString"] = reflect.TypeOf((*ArrayOfString)(nil)).Elem() -} - -type ArrayOfStructuredCustomizations struct { - StructuredCustomizations []StructuredCustomizations `xml:"StructuredCustomizations,omitempty"` -} - -func init() { - t["ArrayOfStructuredCustomizations"] = reflect.TypeOf((*ArrayOfStructuredCustomizations)(nil)).Elem() -} - -type ArrayOfSystemEventInfo struct { - SystemEventInfo []SystemEventInfo `xml:"SystemEventInfo,omitempty"` -} - -func init() { - t["ArrayOfSystemEventInfo"] = reflect.TypeOf((*ArrayOfSystemEventInfo)(nil)).Elem() -} - -type ArrayOfTag struct { - Tag []Tag `xml:"Tag,omitempty"` -} - -func init() { - t["ArrayOfTag"] = reflect.TypeOf((*ArrayOfTag)(nil)).Elem() -} - -type ArrayOfTaskInfo struct { - TaskInfo []TaskInfo `xml:"TaskInfo,omitempty"` -} - -func init() { - t["ArrayOfTaskInfo"] = reflect.TypeOf((*ArrayOfTaskInfo)(nil)).Elem() -} - -type ArrayOfTaskInfoState struct { - TaskInfoState []TaskInfoState `xml:"TaskInfoState,omitempty"` -} - -func init() { - t["ArrayOfTaskInfoState"] = reflect.TypeOf((*ArrayOfTaskInfoState)(nil)).Elem() -} - -type ArrayOfTypeDescription struct { - TypeDescription []BaseTypeDescription `xml:"TypeDescription,omitempty,typeattr"` -} - -func init() { - t["ArrayOfTypeDescription"] = reflect.TypeOf((*ArrayOfTypeDescription)(nil)).Elem() -} - -type ArrayOfUpdateVirtualMachineFilesResultFailedVmFileInfo struct { - UpdateVirtualMachineFilesResultFailedVmFileInfo []UpdateVirtualMachineFilesResultFailedVmFileInfo `xml:"UpdateVirtualMachineFilesResultFailedVmFileInfo,omitempty"` -} - -func init() { - t["ArrayOfUpdateVirtualMachineFilesResultFailedVmFileInfo"] = reflect.TypeOf((*ArrayOfUpdateVirtualMachineFilesResultFailedVmFileInfo)(nil)).Elem() -} - -type ArrayOfUsbScanCodeSpecKeyEvent struct { - UsbScanCodeSpecKeyEvent []UsbScanCodeSpecKeyEvent `xml:"UsbScanCodeSpecKeyEvent,omitempty"` -} - -func init() { - t["ArrayOfUsbScanCodeSpecKeyEvent"] = reflect.TypeOf((*ArrayOfUsbScanCodeSpecKeyEvent)(nil)).Elem() -} - -type ArrayOfUserGroupProfile struct { - UserGroupProfile []UserGroupProfile `xml:"UserGroupProfile,omitempty"` -} - -func init() { - t["ArrayOfUserGroupProfile"] = reflect.TypeOf((*ArrayOfUserGroupProfile)(nil)).Elem() -} - -type ArrayOfUserPrivilegeResult struct { - UserPrivilegeResult []UserPrivilegeResult `xml:"UserPrivilegeResult,omitempty"` -} - -func init() { - t["ArrayOfUserPrivilegeResult"] = reflect.TypeOf((*ArrayOfUserPrivilegeResult)(nil)).Elem() -} - -type ArrayOfUserProfile struct { - UserProfile []UserProfile `xml:"UserProfile,omitempty"` -} - -func init() { - t["ArrayOfUserProfile"] = reflect.TypeOf((*ArrayOfUserProfile)(nil)).Elem() -} - -type ArrayOfUserSearchResult struct { - UserSearchResult []BaseUserSearchResult `xml:"UserSearchResult,omitempty,typeattr"` -} - -func init() { - t["ArrayOfUserSearchResult"] = reflect.TypeOf((*ArrayOfUserSearchResult)(nil)).Elem() -} - -type ArrayOfUserSession struct { - UserSession []UserSession `xml:"UserSession,omitempty"` -} - -func init() { - t["ArrayOfUserSession"] = reflect.TypeOf((*ArrayOfUserSession)(nil)).Elem() -} - -type ArrayOfVASAStorageArray struct { - VASAStorageArray []VASAStorageArray `xml:"VASAStorageArray,omitempty"` -} - -func init() { - t["ArrayOfVASAStorageArray"] = reflect.TypeOf((*ArrayOfVASAStorageArray)(nil)).Elem() -} - -type ArrayOfVAppCloneSpecNetworkMappingPair struct { - VAppCloneSpecNetworkMappingPair []VAppCloneSpecNetworkMappingPair `xml:"VAppCloneSpecNetworkMappingPair,omitempty"` -} - -func init() { - t["ArrayOfVAppCloneSpecNetworkMappingPair"] = reflect.TypeOf((*ArrayOfVAppCloneSpecNetworkMappingPair)(nil)).Elem() -} - -type ArrayOfVAppCloneSpecResourceMap struct { - VAppCloneSpecResourceMap []VAppCloneSpecResourceMap `xml:"VAppCloneSpecResourceMap,omitempty"` -} - -func init() { - t["ArrayOfVAppCloneSpecResourceMap"] = reflect.TypeOf((*ArrayOfVAppCloneSpecResourceMap)(nil)).Elem() -} - -type ArrayOfVAppEntityConfigInfo struct { - VAppEntityConfigInfo []VAppEntityConfigInfo `xml:"VAppEntityConfigInfo,omitempty"` -} - -func init() { - t["ArrayOfVAppEntityConfigInfo"] = reflect.TypeOf((*ArrayOfVAppEntityConfigInfo)(nil)).Elem() -} - -type ArrayOfVAppOvfSectionInfo struct { - VAppOvfSectionInfo []VAppOvfSectionInfo `xml:"VAppOvfSectionInfo,omitempty"` -} - -func init() { - t["ArrayOfVAppOvfSectionInfo"] = reflect.TypeOf((*ArrayOfVAppOvfSectionInfo)(nil)).Elem() -} - -type ArrayOfVAppOvfSectionSpec struct { - VAppOvfSectionSpec []VAppOvfSectionSpec `xml:"VAppOvfSectionSpec,omitempty"` -} - -func init() { - t["ArrayOfVAppOvfSectionSpec"] = reflect.TypeOf((*ArrayOfVAppOvfSectionSpec)(nil)).Elem() -} - -type ArrayOfVAppProductInfo struct { - VAppProductInfo []VAppProductInfo `xml:"VAppProductInfo,omitempty"` -} - -func init() { - t["ArrayOfVAppProductInfo"] = reflect.TypeOf((*ArrayOfVAppProductInfo)(nil)).Elem() -} - -type ArrayOfVAppProductSpec struct { - VAppProductSpec []VAppProductSpec `xml:"VAppProductSpec,omitempty"` -} - -func init() { - t["ArrayOfVAppProductSpec"] = reflect.TypeOf((*ArrayOfVAppProductSpec)(nil)).Elem() -} - -type ArrayOfVAppPropertyInfo struct { - VAppPropertyInfo []VAppPropertyInfo `xml:"VAppPropertyInfo,omitempty"` -} - -func init() { - t["ArrayOfVAppPropertyInfo"] = reflect.TypeOf((*ArrayOfVAppPropertyInfo)(nil)).Elem() -} - -type ArrayOfVAppPropertySpec struct { - VAppPropertySpec []VAppPropertySpec `xml:"VAppPropertySpec,omitempty"` -} - -func init() { - t["ArrayOfVAppPropertySpec"] = reflect.TypeOf((*ArrayOfVAppPropertySpec)(nil)).Elem() -} - -type ArrayOfVMwareDVSPvlanConfigSpec struct { - VMwareDVSPvlanConfigSpec []VMwareDVSPvlanConfigSpec `xml:"VMwareDVSPvlanConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfVMwareDVSPvlanConfigSpec"] = reflect.TypeOf((*ArrayOfVMwareDVSPvlanConfigSpec)(nil)).Elem() -} - -type ArrayOfVMwareDVSPvlanMapEntry struct { - VMwareDVSPvlanMapEntry []VMwareDVSPvlanMapEntry `xml:"VMwareDVSPvlanMapEntry,omitempty"` -} - -func init() { - t["ArrayOfVMwareDVSPvlanMapEntry"] = reflect.TypeOf((*ArrayOfVMwareDVSPvlanMapEntry)(nil)).Elem() -} - -type ArrayOfVMwareDVSVspanConfigSpec struct { - VMwareDVSVspanConfigSpec []VMwareDVSVspanConfigSpec `xml:"VMwareDVSVspanConfigSpec,omitempty"` -} - -func init() { - t["ArrayOfVMwareDVSVspanConfigSpec"] = reflect.TypeOf((*ArrayOfVMwareDVSVspanConfigSpec)(nil)).Elem() -} - -type ArrayOfVMwareDvsLacpGroupConfig struct { - VMwareDvsLacpGroupConfig []VMwareDvsLacpGroupConfig `xml:"VMwareDvsLacpGroupConfig,omitempty"` -} - -func init() { - t["ArrayOfVMwareDvsLacpGroupConfig"] = reflect.TypeOf((*ArrayOfVMwareDvsLacpGroupConfig)(nil)).Elem() -} - -type ArrayOfVMwareDvsLacpGroupSpec struct { - VMwareDvsLacpGroupSpec []VMwareDvsLacpGroupSpec `xml:"VMwareDvsLacpGroupSpec,omitempty"` -} - -func init() { - t["ArrayOfVMwareDvsLacpGroupSpec"] = reflect.TypeOf((*ArrayOfVMwareDvsLacpGroupSpec)(nil)).Elem() -} - -type ArrayOfVMwareVspanSession struct { - VMwareVspanSession []VMwareVspanSession `xml:"VMwareVspanSession,omitempty"` -} - -func init() { - t["ArrayOfVMwareVspanSession"] = reflect.TypeOf((*ArrayOfVMwareVspanSession)(nil)).Elem() -} - -type ArrayOfVVolHostPE struct { - VVolHostPE []VVolHostPE `xml:"VVolHostPE,omitempty"` -} - -func init() { - t["ArrayOfVVolHostPE"] = reflect.TypeOf((*ArrayOfVVolHostPE)(nil)).Elem() -} - -type ArrayOfVVolVmConfigFileUpdateResultFailedVmConfigFileInfo struct { - VVolVmConfigFileUpdateResultFailedVmConfigFileInfo []VVolVmConfigFileUpdateResultFailedVmConfigFileInfo `xml:"VVolVmConfigFileUpdateResultFailedVmConfigFileInfo,omitempty"` -} - -func init() { - t["ArrayOfVVolVmConfigFileUpdateResultFailedVmConfigFileInfo"] = reflect.TypeOf((*ArrayOfVVolVmConfigFileUpdateResultFailedVmConfigFileInfo)(nil)).Elem() -} - -type ArrayOfVchaNodeRuntimeInfo struct { - VchaNodeRuntimeInfo []VchaNodeRuntimeInfo `xml:"VchaNodeRuntimeInfo,omitempty"` -} - -func init() { - t["ArrayOfVchaNodeRuntimeInfo"] = reflect.TypeOf((*ArrayOfVchaNodeRuntimeInfo)(nil)).Elem() -} - -type ArrayOfVimVasaProviderInfo struct { - VimVasaProviderInfo []VimVasaProviderInfo `xml:"VimVasaProviderInfo,omitempty"` -} - -func init() { - t["ArrayOfVimVasaProviderInfo"] = reflect.TypeOf((*ArrayOfVimVasaProviderInfo)(nil)).Elem() -} - -type ArrayOfVimVasaProviderStatePerArray struct { - VimVasaProviderStatePerArray []VimVasaProviderStatePerArray `xml:"VimVasaProviderStatePerArray,omitempty"` -} - -func init() { - t["ArrayOfVimVasaProviderStatePerArray"] = reflect.TypeOf((*ArrayOfVimVasaProviderStatePerArray)(nil)).Elem() -} - -type ArrayOfVirtualAppLinkInfo struct { - VirtualAppLinkInfo []VirtualAppLinkInfo `xml:"VirtualAppLinkInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualAppLinkInfo"] = reflect.TypeOf((*ArrayOfVirtualAppLinkInfo)(nil)).Elem() -} - -type ArrayOfVirtualDevice struct { - VirtualDevice []BaseVirtualDevice `xml:"VirtualDevice,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVirtualDevice"] = reflect.TypeOf((*ArrayOfVirtualDevice)(nil)).Elem() -} - -type ArrayOfVirtualDeviceBackingOption struct { - VirtualDeviceBackingOption []BaseVirtualDeviceBackingOption `xml:"VirtualDeviceBackingOption,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVirtualDeviceBackingOption"] = reflect.TypeOf((*ArrayOfVirtualDeviceBackingOption)(nil)).Elem() -} - -type ArrayOfVirtualDeviceConfigSpec struct { - VirtualDeviceConfigSpec []BaseVirtualDeviceConfigSpec `xml:"VirtualDeviceConfigSpec,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVirtualDeviceConfigSpec"] = reflect.TypeOf((*ArrayOfVirtualDeviceConfigSpec)(nil)).Elem() -} - -type ArrayOfVirtualDeviceOption struct { - VirtualDeviceOption []BaseVirtualDeviceOption `xml:"VirtualDeviceOption,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVirtualDeviceOption"] = reflect.TypeOf((*ArrayOfVirtualDeviceOption)(nil)).Elem() -} - -type ArrayOfVirtualDisk struct { - VirtualDisk []VirtualDisk `xml:"VirtualDisk,omitempty"` -} - -func init() { - t["ArrayOfVirtualDisk"] = reflect.TypeOf((*ArrayOfVirtualDisk)(nil)).Elem() -} - -type ArrayOfVirtualDiskDeltaDiskFormatsSupported struct { - VirtualDiskDeltaDiskFormatsSupported []VirtualDiskDeltaDiskFormatsSupported `xml:"VirtualDiskDeltaDiskFormatsSupported,omitempty"` -} - -func init() { - t["ArrayOfVirtualDiskDeltaDiskFormatsSupported"] = reflect.TypeOf((*ArrayOfVirtualDiskDeltaDiskFormatsSupported)(nil)).Elem() -} - -type ArrayOfVirtualDiskId struct { - VirtualDiskId []VirtualDiskId `xml:"VirtualDiskId,omitempty"` -} - -func init() { - t["ArrayOfVirtualDiskId"] = reflect.TypeOf((*ArrayOfVirtualDiskId)(nil)).Elem() -} - -type ArrayOfVirtualMachineBootOptionsBootableDevice struct { - VirtualMachineBootOptionsBootableDevice []BaseVirtualMachineBootOptionsBootableDevice `xml:"VirtualMachineBootOptionsBootableDevice,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVirtualMachineBootOptionsBootableDevice"] = reflect.TypeOf((*ArrayOfVirtualMachineBootOptionsBootableDevice)(nil)).Elem() -} - -type ArrayOfVirtualMachineCdromInfo struct { - VirtualMachineCdromInfo []VirtualMachineCdromInfo `xml:"VirtualMachineCdromInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineCdromInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineCdromInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineConfigInfoDatastoreUrlPair struct { - VirtualMachineConfigInfoDatastoreUrlPair []VirtualMachineConfigInfoDatastoreUrlPair `xml:"VirtualMachineConfigInfoDatastoreUrlPair,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineConfigInfoDatastoreUrlPair"] = reflect.TypeOf((*ArrayOfVirtualMachineConfigInfoDatastoreUrlPair)(nil)).Elem() -} - -type ArrayOfVirtualMachineConfigOptionDescriptor struct { - VirtualMachineConfigOptionDescriptor []VirtualMachineConfigOptionDescriptor `xml:"VirtualMachineConfigOptionDescriptor,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineConfigOptionDescriptor"] = reflect.TypeOf((*ArrayOfVirtualMachineConfigOptionDescriptor)(nil)).Elem() -} - -type ArrayOfVirtualMachineCpuIdInfoSpec struct { - VirtualMachineCpuIdInfoSpec []VirtualMachineCpuIdInfoSpec `xml:"VirtualMachineCpuIdInfoSpec,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineCpuIdInfoSpec"] = reflect.TypeOf((*ArrayOfVirtualMachineCpuIdInfoSpec)(nil)).Elem() -} - -type ArrayOfVirtualMachineDatastoreInfo struct { - VirtualMachineDatastoreInfo []VirtualMachineDatastoreInfo `xml:"VirtualMachineDatastoreInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineDatastoreInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineDatastoreInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineDatastoreVolumeOption struct { - VirtualMachineDatastoreVolumeOption []VirtualMachineDatastoreVolumeOption `xml:"VirtualMachineDatastoreVolumeOption,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineDatastoreVolumeOption"] = reflect.TypeOf((*ArrayOfVirtualMachineDatastoreVolumeOption)(nil)).Elem() -} - -type ArrayOfVirtualMachineDeviceRuntimeInfo struct { - VirtualMachineDeviceRuntimeInfo []VirtualMachineDeviceRuntimeInfo `xml:"VirtualMachineDeviceRuntimeInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineDeviceRuntimeInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineDeviceRuntimeInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineDisplayTopology struct { - VirtualMachineDisplayTopology []VirtualMachineDisplayTopology `xml:"VirtualMachineDisplayTopology,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineDisplayTopology"] = reflect.TypeOf((*ArrayOfVirtualMachineDisplayTopology)(nil)).Elem() -} - -type ArrayOfVirtualMachineFeatureRequirement struct { - VirtualMachineFeatureRequirement []VirtualMachineFeatureRequirement `xml:"VirtualMachineFeatureRequirement,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFeatureRequirement"] = reflect.TypeOf((*ArrayOfVirtualMachineFeatureRequirement)(nil)).Elem() -} - -type ArrayOfVirtualMachineFileLayoutDiskLayout struct { - VirtualMachineFileLayoutDiskLayout []VirtualMachineFileLayoutDiskLayout `xml:"VirtualMachineFileLayoutDiskLayout,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFileLayoutDiskLayout"] = reflect.TypeOf((*ArrayOfVirtualMachineFileLayoutDiskLayout)(nil)).Elem() -} - -type ArrayOfVirtualMachineFileLayoutExDiskLayout struct { - VirtualMachineFileLayoutExDiskLayout []VirtualMachineFileLayoutExDiskLayout `xml:"VirtualMachineFileLayoutExDiskLayout,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFileLayoutExDiskLayout"] = reflect.TypeOf((*ArrayOfVirtualMachineFileLayoutExDiskLayout)(nil)).Elem() -} - -type ArrayOfVirtualMachineFileLayoutExDiskUnit struct { - VirtualMachineFileLayoutExDiskUnit []VirtualMachineFileLayoutExDiskUnit `xml:"VirtualMachineFileLayoutExDiskUnit,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFileLayoutExDiskUnit"] = reflect.TypeOf((*ArrayOfVirtualMachineFileLayoutExDiskUnit)(nil)).Elem() -} - -type ArrayOfVirtualMachineFileLayoutExFileInfo struct { - VirtualMachineFileLayoutExFileInfo []VirtualMachineFileLayoutExFileInfo `xml:"VirtualMachineFileLayoutExFileInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFileLayoutExFileInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineFileLayoutExFileInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineFileLayoutExSnapshotLayout struct { - VirtualMachineFileLayoutExSnapshotLayout []VirtualMachineFileLayoutExSnapshotLayout `xml:"VirtualMachineFileLayoutExSnapshotLayout,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFileLayoutExSnapshotLayout"] = reflect.TypeOf((*ArrayOfVirtualMachineFileLayoutExSnapshotLayout)(nil)).Elem() -} - -type ArrayOfVirtualMachineFileLayoutSnapshotLayout struct { - VirtualMachineFileLayoutSnapshotLayout []VirtualMachineFileLayoutSnapshotLayout `xml:"VirtualMachineFileLayoutSnapshotLayout,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFileLayoutSnapshotLayout"] = reflect.TypeOf((*ArrayOfVirtualMachineFileLayoutSnapshotLayout)(nil)).Elem() -} - -type ArrayOfVirtualMachineFloppyInfo struct { - VirtualMachineFloppyInfo []VirtualMachineFloppyInfo `xml:"VirtualMachineFloppyInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineFloppyInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineFloppyInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineIdeDiskDeviceInfo struct { - VirtualMachineIdeDiskDeviceInfo []VirtualMachineIdeDiskDeviceInfo `xml:"VirtualMachineIdeDiskDeviceInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineIdeDiskDeviceInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineIdeDiskDeviceInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineIdeDiskDevicePartitionInfo struct { - VirtualMachineIdeDiskDevicePartitionInfo []VirtualMachineIdeDiskDevicePartitionInfo `xml:"VirtualMachineIdeDiskDevicePartitionInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineIdeDiskDevicePartitionInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineIdeDiskDevicePartitionInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineLegacyNetworkSwitchInfo struct { - VirtualMachineLegacyNetworkSwitchInfo []VirtualMachineLegacyNetworkSwitchInfo `xml:"VirtualMachineLegacyNetworkSwitchInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineLegacyNetworkSwitchInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineLegacyNetworkSwitchInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineMessage struct { - VirtualMachineMessage []VirtualMachineMessage `xml:"VirtualMachineMessage,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineMessage"] = reflect.TypeOf((*ArrayOfVirtualMachineMessage)(nil)).Elem() -} - -type ArrayOfVirtualMachineMetadataManagerVmMetadataInput struct { - VirtualMachineMetadataManagerVmMetadataInput []VirtualMachineMetadataManagerVmMetadataInput `xml:"VirtualMachineMetadataManagerVmMetadataInput,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineMetadataManagerVmMetadataInput"] = reflect.TypeOf((*ArrayOfVirtualMachineMetadataManagerVmMetadataInput)(nil)).Elem() -} - -type ArrayOfVirtualMachineMetadataManagerVmMetadataResult struct { - VirtualMachineMetadataManagerVmMetadataResult []VirtualMachineMetadataManagerVmMetadataResult `xml:"VirtualMachineMetadataManagerVmMetadataResult,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineMetadataManagerVmMetadataResult"] = reflect.TypeOf((*ArrayOfVirtualMachineMetadataManagerVmMetadataResult)(nil)).Elem() -} - -type ArrayOfVirtualMachineNetworkInfo struct { - VirtualMachineNetworkInfo []VirtualMachineNetworkInfo `xml:"VirtualMachineNetworkInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineNetworkInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineNetworkInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineParallelInfo struct { - VirtualMachineParallelInfo []VirtualMachineParallelInfo `xml:"VirtualMachineParallelInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineParallelInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineParallelInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachinePciPassthroughInfo struct { - VirtualMachinePciPassthroughInfo []BaseVirtualMachinePciPassthroughInfo `xml:"VirtualMachinePciPassthroughInfo,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVirtualMachinePciPassthroughInfo"] = reflect.TypeOf((*ArrayOfVirtualMachinePciPassthroughInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachinePciSharedGpuPassthroughInfo struct { - VirtualMachinePciSharedGpuPassthroughInfo []VirtualMachinePciSharedGpuPassthroughInfo `xml:"VirtualMachinePciSharedGpuPassthroughInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachinePciSharedGpuPassthroughInfo"] = reflect.TypeOf((*ArrayOfVirtualMachinePciSharedGpuPassthroughInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineProfileSpec struct { - VirtualMachineProfileSpec []BaseVirtualMachineProfileSpec `xml:"VirtualMachineProfileSpec,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVirtualMachineProfileSpec"] = reflect.TypeOf((*ArrayOfVirtualMachineProfileSpec)(nil)).Elem() -} - -type ArrayOfVirtualMachineRelocateSpecDiskLocator struct { - VirtualMachineRelocateSpecDiskLocator []VirtualMachineRelocateSpecDiskLocator `xml:"VirtualMachineRelocateSpecDiskLocator,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineRelocateSpecDiskLocator"] = reflect.TypeOf((*ArrayOfVirtualMachineRelocateSpecDiskLocator)(nil)).Elem() -} - -type ArrayOfVirtualMachineScsiDiskDeviceInfo struct { - VirtualMachineScsiDiskDeviceInfo []VirtualMachineScsiDiskDeviceInfo `xml:"VirtualMachineScsiDiskDeviceInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineScsiDiskDeviceInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineScsiDiskDeviceInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineScsiPassthroughInfo struct { - VirtualMachineScsiPassthroughInfo []VirtualMachineScsiPassthroughInfo `xml:"VirtualMachineScsiPassthroughInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineScsiPassthroughInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineScsiPassthroughInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineSerialInfo struct { - VirtualMachineSerialInfo []VirtualMachineSerialInfo `xml:"VirtualMachineSerialInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineSerialInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineSerialInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineSnapshotTree struct { - VirtualMachineSnapshotTree []VirtualMachineSnapshotTree `xml:"VirtualMachineSnapshotTree,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineSnapshotTree"] = reflect.TypeOf((*ArrayOfVirtualMachineSnapshotTree)(nil)).Elem() -} - -type ArrayOfVirtualMachineSoundInfo struct { - VirtualMachineSoundInfo []VirtualMachineSoundInfo `xml:"VirtualMachineSoundInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineSoundInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineSoundInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineSriovInfo struct { - VirtualMachineSriovInfo []VirtualMachineSriovInfo `xml:"VirtualMachineSriovInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineSriovInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineSriovInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineSummary struct { - VirtualMachineSummary []VirtualMachineSummary `xml:"VirtualMachineSummary,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineSummary"] = reflect.TypeOf((*ArrayOfVirtualMachineSummary)(nil)).Elem() -} - -type ArrayOfVirtualMachineUsageOnDatastore struct { - VirtualMachineUsageOnDatastore []VirtualMachineUsageOnDatastore `xml:"VirtualMachineUsageOnDatastore,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineUsageOnDatastore"] = reflect.TypeOf((*ArrayOfVirtualMachineUsageOnDatastore)(nil)).Elem() -} - -type ArrayOfVirtualMachineUsbInfo struct { - VirtualMachineUsbInfo []VirtualMachineUsbInfo `xml:"VirtualMachineUsbInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineUsbInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineUsbInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineVFlashModuleInfo struct { - VirtualMachineVFlashModuleInfo []VirtualMachineVFlashModuleInfo `xml:"VirtualMachineVFlashModuleInfo,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineVFlashModuleInfo"] = reflect.TypeOf((*ArrayOfVirtualMachineVFlashModuleInfo)(nil)).Elem() -} - -type ArrayOfVirtualMachineVMCIDeviceFilterSpec struct { - VirtualMachineVMCIDeviceFilterSpec []VirtualMachineVMCIDeviceFilterSpec `xml:"VirtualMachineVMCIDeviceFilterSpec,omitempty"` -} - -func init() { - t["ArrayOfVirtualMachineVMCIDeviceFilterSpec"] = reflect.TypeOf((*ArrayOfVirtualMachineVMCIDeviceFilterSpec)(nil)).Elem() -} - -type ArrayOfVirtualNicManagerNetConfig struct { - VirtualNicManagerNetConfig []VirtualNicManagerNetConfig `xml:"VirtualNicManagerNetConfig,omitempty"` -} - -func init() { - t["ArrayOfVirtualNicManagerNetConfig"] = reflect.TypeOf((*ArrayOfVirtualNicManagerNetConfig)(nil)).Elem() -} - -type ArrayOfVirtualSCSISharing struct { - VirtualSCSISharing []VirtualSCSISharing `xml:"VirtualSCSISharing,omitempty"` -} - -func init() { - t["ArrayOfVirtualSCSISharing"] = reflect.TypeOf((*ArrayOfVirtualSCSISharing)(nil)).Elem() -} - -type ArrayOfVirtualSwitchProfile struct { - VirtualSwitchProfile []VirtualSwitchProfile `xml:"VirtualSwitchProfile,omitempty"` -} - -func init() { - t["ArrayOfVirtualSwitchProfile"] = reflect.TypeOf((*ArrayOfVirtualSwitchProfile)(nil)).Elem() -} - -type ArrayOfVmEventArgument struct { - VmEventArgument []VmEventArgument `xml:"VmEventArgument,omitempty"` -} - -func init() { - t["ArrayOfVmEventArgument"] = reflect.TypeOf((*ArrayOfVmEventArgument)(nil)).Elem() -} - -type ArrayOfVmPodConfigForPlacement struct { - VmPodConfigForPlacement []VmPodConfigForPlacement `xml:"VmPodConfigForPlacement,omitempty"` -} - -func init() { - t["ArrayOfVmPodConfigForPlacement"] = reflect.TypeOf((*ArrayOfVmPodConfigForPlacement)(nil)).Elem() -} - -type ArrayOfVmPortGroupProfile struct { - VmPortGroupProfile []VmPortGroupProfile `xml:"VmPortGroupProfile,omitempty"` -} - -func init() { - t["ArrayOfVmPortGroupProfile"] = reflect.TypeOf((*ArrayOfVmPortGroupProfile)(nil)).Elem() -} - -type ArrayOfVmfsConfigOption struct { - VmfsConfigOption []VmfsConfigOption `xml:"VmfsConfigOption,omitempty"` -} - -func init() { - t["ArrayOfVmfsConfigOption"] = reflect.TypeOf((*ArrayOfVmfsConfigOption)(nil)).Elem() -} - -type ArrayOfVmfsDatastoreOption struct { - VmfsDatastoreOption []VmfsDatastoreOption `xml:"VmfsDatastoreOption,omitempty"` -} - -func init() { - t["ArrayOfVmfsDatastoreOption"] = reflect.TypeOf((*ArrayOfVmfsDatastoreOption)(nil)).Elem() -} - -type ArrayOfVnicPortArgument struct { - VnicPortArgument []VnicPortArgument `xml:"VnicPortArgument,omitempty"` -} - -func init() { - t["ArrayOfVnicPortArgument"] = reflect.TypeOf((*ArrayOfVnicPortArgument)(nil)).Elem() -} - -type ArrayOfVsanHostConfigInfo struct { - VsanHostConfigInfo []VsanHostConfigInfo `xml:"VsanHostConfigInfo,omitempty"` -} - -func init() { - t["ArrayOfVsanHostConfigInfo"] = reflect.TypeOf((*ArrayOfVsanHostConfigInfo)(nil)).Elem() -} - -type ArrayOfVsanHostConfigInfoNetworkInfoPortConfig struct { - VsanHostConfigInfoNetworkInfoPortConfig []VsanHostConfigInfoNetworkInfoPortConfig `xml:"VsanHostConfigInfoNetworkInfoPortConfig,omitempty"` -} - -func init() { - t["ArrayOfVsanHostConfigInfoNetworkInfoPortConfig"] = reflect.TypeOf((*ArrayOfVsanHostConfigInfoNetworkInfoPortConfig)(nil)).Elem() -} - -type ArrayOfVsanHostDiskMapInfo struct { - VsanHostDiskMapInfo []VsanHostDiskMapInfo `xml:"VsanHostDiskMapInfo,omitempty"` -} - -func init() { - t["ArrayOfVsanHostDiskMapInfo"] = reflect.TypeOf((*ArrayOfVsanHostDiskMapInfo)(nil)).Elem() -} - -type ArrayOfVsanHostDiskMapResult struct { - VsanHostDiskMapResult []VsanHostDiskMapResult `xml:"VsanHostDiskMapResult,omitempty"` -} - -func init() { - t["ArrayOfVsanHostDiskMapResult"] = reflect.TypeOf((*ArrayOfVsanHostDiskMapResult)(nil)).Elem() -} - -type ArrayOfVsanHostDiskMapping struct { - VsanHostDiskMapping []VsanHostDiskMapping `xml:"VsanHostDiskMapping,omitempty"` -} - -func init() { - t["ArrayOfVsanHostDiskMapping"] = reflect.TypeOf((*ArrayOfVsanHostDiskMapping)(nil)).Elem() -} - -type ArrayOfVsanHostDiskResult struct { - VsanHostDiskResult []VsanHostDiskResult `xml:"VsanHostDiskResult,omitempty"` -} - -func init() { - t["ArrayOfVsanHostDiskResult"] = reflect.TypeOf((*ArrayOfVsanHostDiskResult)(nil)).Elem() -} - -type ArrayOfVsanHostMembershipInfo struct { - VsanHostMembershipInfo []VsanHostMembershipInfo `xml:"VsanHostMembershipInfo,omitempty"` -} - -func init() { - t["ArrayOfVsanHostMembershipInfo"] = reflect.TypeOf((*ArrayOfVsanHostMembershipInfo)(nil)).Elem() -} - -type ArrayOfVsanHostRuntimeInfoDiskIssue struct { - VsanHostRuntimeInfoDiskIssue []VsanHostRuntimeInfoDiskIssue `xml:"VsanHostRuntimeInfoDiskIssue,omitempty"` -} - -func init() { - t["ArrayOfVsanHostRuntimeInfoDiskIssue"] = reflect.TypeOf((*ArrayOfVsanHostRuntimeInfoDiskIssue)(nil)).Elem() -} - -type ArrayOfVsanNewPolicyBatch struct { - VsanNewPolicyBatch []VsanNewPolicyBatch `xml:"VsanNewPolicyBatch,omitempty"` -} - -func init() { - t["ArrayOfVsanNewPolicyBatch"] = reflect.TypeOf((*ArrayOfVsanNewPolicyBatch)(nil)).Elem() -} - -type ArrayOfVsanPolicyChangeBatch struct { - VsanPolicyChangeBatch []VsanPolicyChangeBatch `xml:"VsanPolicyChangeBatch,omitempty"` -} - -func init() { - t["ArrayOfVsanPolicyChangeBatch"] = reflect.TypeOf((*ArrayOfVsanPolicyChangeBatch)(nil)).Elem() -} - -type ArrayOfVsanPolicySatisfiability struct { - VsanPolicySatisfiability []VsanPolicySatisfiability `xml:"VsanPolicySatisfiability,omitempty"` -} - -func init() { - t["ArrayOfVsanPolicySatisfiability"] = reflect.TypeOf((*ArrayOfVsanPolicySatisfiability)(nil)).Elem() -} - -type ArrayOfVsanUpgradeSystemNetworkPartitionInfo struct { - VsanUpgradeSystemNetworkPartitionInfo []VsanUpgradeSystemNetworkPartitionInfo `xml:"VsanUpgradeSystemNetworkPartitionInfo,omitempty"` -} - -func init() { - t["ArrayOfVsanUpgradeSystemNetworkPartitionInfo"] = reflect.TypeOf((*ArrayOfVsanUpgradeSystemNetworkPartitionInfo)(nil)).Elem() -} - -type ArrayOfVsanUpgradeSystemPreflightCheckIssue struct { - VsanUpgradeSystemPreflightCheckIssue []BaseVsanUpgradeSystemPreflightCheckIssue `xml:"VsanUpgradeSystemPreflightCheckIssue,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVsanUpgradeSystemPreflightCheckIssue"] = reflect.TypeOf((*ArrayOfVsanUpgradeSystemPreflightCheckIssue)(nil)).Elem() -} - -type ArrayOfVsanUpgradeSystemUpgradeHistoryItem struct { - VsanUpgradeSystemUpgradeHistoryItem []BaseVsanUpgradeSystemUpgradeHistoryItem `xml:"VsanUpgradeSystemUpgradeHistoryItem,omitempty,typeattr"` -} - -func init() { - t["ArrayOfVsanUpgradeSystemUpgradeHistoryItem"] = reflect.TypeOf((*ArrayOfVsanUpgradeSystemUpgradeHistoryItem)(nil)).Elem() -} - -type ArrayOfVslmTagEntry struct { - VslmTagEntry []VslmTagEntry `xml:"VslmTagEntry,omitempty"` -} - -func init() { - t["ArrayOfVslmTagEntry"] = reflect.TypeOf((*ArrayOfVslmTagEntry)(nil)).Elem() -} - -type ArrayUpdateSpec struct { - DynamicData - - Operation ArrayUpdateOperation `xml:"operation"` - RemoveKey AnyType `xml:"removeKey,omitempty,typeattr"` -} - -func init() { - t["ArrayUpdateSpec"] = reflect.TypeOf((*ArrayUpdateSpec)(nil)).Elem() -} - -type AssignUserToGroup AssignUserToGroupRequestType - -func init() { - t["AssignUserToGroup"] = reflect.TypeOf((*AssignUserToGroup)(nil)).Elem() -} - -type AssignUserToGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - User string `xml:"user"` - Group string `xml:"group"` -} - -func init() { - t["AssignUserToGroupRequestType"] = reflect.TypeOf((*AssignUserToGroupRequestType)(nil)).Elem() -} - -type AssignUserToGroupResponse struct { -} - -type AssociateProfile AssociateProfileRequestType - -func init() { - t["AssociateProfile"] = reflect.TypeOf((*AssociateProfile)(nil)).Elem() -} - -type AssociateProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity []ManagedObjectReference `xml:"entity"` -} - -func init() { - t["AssociateProfileRequestType"] = reflect.TypeOf((*AssociateProfileRequestType)(nil)).Elem() -} - -type AssociateProfileResponse struct { -} - -type AttachDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - DiskId ID `xml:"diskId"` - Datastore ManagedObjectReference `xml:"datastore"` - ControllerKey int32 `xml:"controllerKey,omitempty"` - UnitNumber *int32 `xml:"unitNumber"` -} - -func init() { - t["AttachDiskRequestType"] = reflect.TypeOf((*AttachDiskRequestType)(nil)).Elem() -} - -type AttachDisk_Task AttachDiskRequestType - -func init() { - t["AttachDisk_Task"] = reflect.TypeOf((*AttachDisk_Task)(nil)).Elem() -} - -type AttachDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type AttachScsiLun AttachScsiLunRequestType - -func init() { - t["AttachScsiLun"] = reflect.TypeOf((*AttachScsiLun)(nil)).Elem() -} - -type AttachScsiLunExRequestType struct { - This ManagedObjectReference `xml:"_this"` - LunUuid []string `xml:"lunUuid"` -} - -func init() { - t["AttachScsiLunExRequestType"] = reflect.TypeOf((*AttachScsiLunExRequestType)(nil)).Elem() -} - -type AttachScsiLunEx_Task AttachScsiLunExRequestType - -func init() { - t["AttachScsiLunEx_Task"] = reflect.TypeOf((*AttachScsiLunEx_Task)(nil)).Elem() -} - -type AttachScsiLunEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type AttachScsiLunRequestType struct { - This ManagedObjectReference `xml:"_this"` - LunUuid string `xml:"lunUuid"` -} - -func init() { - t["AttachScsiLunRequestType"] = reflect.TypeOf((*AttachScsiLunRequestType)(nil)).Elem() -} - -type AttachScsiLunResponse struct { -} - -type AttachTagToVStorageObject AttachTagToVStorageObjectRequestType - -func init() { - t["AttachTagToVStorageObject"] = reflect.TypeOf((*AttachTagToVStorageObject)(nil)).Elem() -} - -type AttachTagToVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Category string `xml:"category"` - Tag string `xml:"tag"` -} - -func init() { - t["AttachTagToVStorageObjectRequestType"] = reflect.TypeOf((*AttachTagToVStorageObjectRequestType)(nil)).Elem() -} - -type AttachTagToVStorageObjectResponse struct { -} - -type AttachVmfsExtent AttachVmfsExtentRequestType - -func init() { - t["AttachVmfsExtent"] = reflect.TypeOf((*AttachVmfsExtent)(nil)).Elem() -} - -type AttachVmfsExtentRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsPath string `xml:"vmfsPath"` - Extent HostScsiDiskPartition `xml:"extent"` -} - -func init() { - t["AttachVmfsExtentRequestType"] = reflect.TypeOf((*AttachVmfsExtentRequestType)(nil)).Elem() -} - -type AttachVmfsExtentResponse struct { -} - -type AuthMinimumAdminPermission struct { - VimFault -} - -func init() { - t["AuthMinimumAdminPermission"] = reflect.TypeOf((*AuthMinimumAdminPermission)(nil)).Elem() -} - -type AuthMinimumAdminPermissionFault AuthMinimumAdminPermission - -func init() { - t["AuthMinimumAdminPermissionFault"] = reflect.TypeOf((*AuthMinimumAdminPermissionFault)(nil)).Elem() -} - -type AuthenticationProfile struct { - ApplyProfile - - ActiveDirectory *ActiveDirectoryProfile `xml:"activeDirectory,omitempty"` -} - -func init() { - t["AuthenticationProfile"] = reflect.TypeOf((*AuthenticationProfile)(nil)).Elem() -} - -type AuthorizationDescription struct { - DynamicData - - Privilege []BaseElementDescription `xml:"privilege,typeattr"` - PrivilegeGroup []BaseElementDescription `xml:"privilegeGroup,typeattr"` -} - -func init() { - t["AuthorizationDescription"] = reflect.TypeOf((*AuthorizationDescription)(nil)).Elem() -} - -type AuthorizationEvent struct { - Event -} - -func init() { - t["AuthorizationEvent"] = reflect.TypeOf((*AuthorizationEvent)(nil)).Elem() -} - -type AuthorizationPrivilege struct { - DynamicData - - PrivId string `xml:"privId"` - OnParent bool `xml:"onParent"` - Name string `xml:"name"` - PrivGroupName string `xml:"privGroupName"` -} - -func init() { - t["AuthorizationPrivilege"] = reflect.TypeOf((*AuthorizationPrivilege)(nil)).Elem() -} - -type AuthorizationRole struct { - DynamicData - - RoleId int32 `xml:"roleId"` - System bool `xml:"system"` - Name string `xml:"name"` - Info BaseDescription `xml:"info,typeattr"` - Privilege []string `xml:"privilege,omitempty"` -} - -func init() { - t["AuthorizationRole"] = reflect.TypeOf((*AuthorizationRole)(nil)).Elem() -} - -type AutoStartDefaults struct { - DynamicData - - Enabled *bool `xml:"enabled"` - StartDelay int32 `xml:"startDelay,omitempty"` - StopDelay int32 `xml:"stopDelay,omitempty"` - WaitForHeartbeat *bool `xml:"waitForHeartbeat"` - StopAction string `xml:"stopAction,omitempty"` -} - -func init() { - t["AutoStartDefaults"] = reflect.TypeOf((*AutoStartDefaults)(nil)).Elem() -} - -type AutoStartPowerInfo struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - StartOrder int32 `xml:"startOrder"` - StartDelay int32 `xml:"startDelay"` - WaitForHeartbeat AutoStartWaitHeartbeatSetting `xml:"waitForHeartbeat"` - StartAction string `xml:"startAction"` - StopDelay int32 `xml:"stopDelay"` - StopAction string `xml:"stopAction"` -} - -func init() { - t["AutoStartPowerInfo"] = reflect.TypeOf((*AutoStartPowerInfo)(nil)).Elem() -} - -type AutoStartPowerOff AutoStartPowerOffRequestType - -func init() { - t["AutoStartPowerOff"] = reflect.TypeOf((*AutoStartPowerOff)(nil)).Elem() -} - -type AutoStartPowerOffRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["AutoStartPowerOffRequestType"] = reflect.TypeOf((*AutoStartPowerOffRequestType)(nil)).Elem() -} - -type AutoStartPowerOffResponse struct { -} - -type AutoStartPowerOn AutoStartPowerOnRequestType - -func init() { - t["AutoStartPowerOn"] = reflect.TypeOf((*AutoStartPowerOn)(nil)).Elem() -} - -type AutoStartPowerOnRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["AutoStartPowerOnRequestType"] = reflect.TypeOf((*AutoStartPowerOnRequestType)(nil)).Elem() -} - -type AutoStartPowerOnResponse struct { -} - -type BackupBlobReadFailure struct { - DvsFault - - EntityName string `xml:"entityName"` - EntityType string `xml:"entityType"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["BackupBlobReadFailure"] = reflect.TypeOf((*BackupBlobReadFailure)(nil)).Elem() -} - -type BackupBlobReadFailureFault BackupBlobReadFailure - -func init() { - t["BackupBlobReadFailureFault"] = reflect.TypeOf((*BackupBlobReadFailureFault)(nil)).Elem() -} - -type BackupBlobWriteFailure struct { - DvsFault - - EntityName string `xml:"entityName"` - EntityType string `xml:"entityType"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["BackupBlobWriteFailure"] = reflect.TypeOf((*BackupBlobWriteFailure)(nil)).Elem() -} - -type BackupBlobWriteFailureFault BackupBlobWriteFailure - -func init() { - t["BackupBlobWriteFailureFault"] = reflect.TypeOf((*BackupBlobWriteFailureFault)(nil)).Elem() -} - -type BackupFirmwareConfiguration BackupFirmwareConfigurationRequestType - -func init() { - t["BackupFirmwareConfiguration"] = reflect.TypeOf((*BackupFirmwareConfiguration)(nil)).Elem() -} - -type BackupFirmwareConfigurationRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["BackupFirmwareConfigurationRequestType"] = reflect.TypeOf((*BackupFirmwareConfigurationRequestType)(nil)).Elem() -} - -type BackupFirmwareConfigurationResponse struct { - Returnval string `xml:"returnval"` -} - -type BadUsernameSessionEvent struct { - SessionEvent - - IpAddress string `xml:"ipAddress"` -} - -func init() { - t["BadUsernameSessionEvent"] = reflect.TypeOf((*BadUsernameSessionEvent)(nil)).Elem() -} - -type BaseConfigInfo struct { - DynamicData - - Id ID `xml:"id"` - Name string `xml:"name"` - CreateTime time.Time `xml:"createTime"` - Backing BaseBaseConfigInfoBackingInfo `xml:"backing,typeattr"` -} - -func init() { - t["BaseConfigInfo"] = reflect.TypeOf((*BaseConfigInfo)(nil)).Elem() -} - -type BaseConfigInfoBackingInfo struct { - DynamicData - - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["BaseConfigInfoBackingInfo"] = reflect.TypeOf((*BaseConfigInfoBackingInfo)(nil)).Elem() -} - -type BaseConfigInfoDiskFileBackingInfo struct { - BaseConfigInfoFileBackingInfo - - ProvisioningType string `xml:"provisioningType"` -} - -func init() { - t["BaseConfigInfoDiskFileBackingInfo"] = reflect.TypeOf((*BaseConfigInfoDiskFileBackingInfo)(nil)).Elem() -} - -type BaseConfigInfoFileBackingInfo struct { - BaseConfigInfoBackingInfo - - FilePath string `xml:"filePath"` - BackingObjectId string `xml:"backingObjectId,omitempty"` - Parent BaseBaseConfigInfoFileBackingInfo `xml:"parent,omitempty,typeattr"` - DeltaSizeInMB int64 `xml:"deltaSizeInMB,omitempty"` -} - -func init() { - t["BaseConfigInfoFileBackingInfo"] = reflect.TypeOf((*BaseConfigInfoFileBackingInfo)(nil)).Elem() -} - -type BaseConfigInfoRawDiskMappingBackingInfo struct { - BaseConfigInfoFileBackingInfo - - LunUuid string `xml:"lunUuid"` - CompatibilityMode string `xml:"compatibilityMode"` -} - -func init() { - t["BaseConfigInfoRawDiskMappingBackingInfo"] = reflect.TypeOf((*BaseConfigInfoRawDiskMappingBackingInfo)(nil)).Elem() -} - -type BatchResult struct { - DynamicData - - Result string `xml:"result"` - HostKey string `xml:"hostKey"` - Ds *ManagedObjectReference `xml:"ds,omitempty"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["BatchResult"] = reflect.TypeOf((*BatchResult)(nil)).Elem() -} - -type BindVnic BindVnicRequestType - -func init() { - t["BindVnic"] = reflect.TypeOf((*BindVnic)(nil)).Elem() -} - -type BindVnicRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaName string `xml:"iScsiHbaName"` - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["BindVnicRequestType"] = reflect.TypeOf((*BindVnicRequestType)(nil)).Elem() -} - -type BindVnicResponse struct { -} - -type BlockedByFirewall struct { - HostConfigFault -} - -func init() { - t["BlockedByFirewall"] = reflect.TypeOf((*BlockedByFirewall)(nil)).Elem() -} - -type BlockedByFirewallFault BlockedByFirewall - -func init() { - t["BlockedByFirewallFault"] = reflect.TypeOf((*BlockedByFirewallFault)(nil)).Elem() -} - -type BoolOption struct { - OptionType - - Supported bool `xml:"supported"` - DefaultValue bool `xml:"defaultValue"` -} - -func init() { - t["BoolOption"] = reflect.TypeOf((*BoolOption)(nil)).Elem() -} - -type BoolPolicy struct { - InheritablePolicy - - Value *bool `xml:"value"` -} - -func init() { - t["BoolPolicy"] = reflect.TypeOf((*BoolPolicy)(nil)).Elem() -} - -type BrowseDiagnosticLog BrowseDiagnosticLogRequestType - -func init() { - t["BrowseDiagnosticLog"] = reflect.TypeOf((*BrowseDiagnosticLog)(nil)).Elem() -} - -type BrowseDiagnosticLogRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Key string `xml:"key"` - Start int32 `xml:"start,omitempty"` - Lines int32 `xml:"lines,omitempty"` -} - -func init() { - t["BrowseDiagnosticLogRequestType"] = reflect.TypeOf((*BrowseDiagnosticLogRequestType)(nil)).Elem() -} - -type BrowseDiagnosticLogResponse struct { - Returnval DiagnosticManagerLogHeader `xml:"returnval"` -} - -type CAMServerRefusedConnection struct { - InvalidCAMServer -} - -func init() { - t["CAMServerRefusedConnection"] = reflect.TypeOf((*CAMServerRefusedConnection)(nil)).Elem() -} - -type CAMServerRefusedConnectionFault CAMServerRefusedConnection - -func init() { - t["CAMServerRefusedConnectionFault"] = reflect.TypeOf((*CAMServerRefusedConnectionFault)(nil)).Elem() -} - -type CanProvisionObjects CanProvisionObjectsRequestType - -func init() { - t["CanProvisionObjects"] = reflect.TypeOf((*CanProvisionObjects)(nil)).Elem() -} - -type CanProvisionObjectsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Npbs []VsanNewPolicyBatch `xml:"npbs"` - IgnoreSatisfiability *bool `xml:"ignoreSatisfiability"` -} - -func init() { - t["CanProvisionObjectsRequestType"] = reflect.TypeOf((*CanProvisionObjectsRequestType)(nil)).Elem() -} - -type CanProvisionObjectsResponse struct { - Returnval []VsanPolicySatisfiability `xml:"returnval"` -} - -type CancelRecommendation CancelRecommendationRequestType - -func init() { - t["CancelRecommendation"] = reflect.TypeOf((*CancelRecommendation)(nil)).Elem() -} - -type CancelRecommendationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key string `xml:"key"` -} - -func init() { - t["CancelRecommendationRequestType"] = reflect.TypeOf((*CancelRecommendationRequestType)(nil)).Elem() -} - -type CancelRecommendationResponse struct { -} - -type CancelRetrievePropertiesEx CancelRetrievePropertiesExRequestType - -func init() { - t["CancelRetrievePropertiesEx"] = reflect.TypeOf((*CancelRetrievePropertiesEx)(nil)).Elem() -} - -type CancelRetrievePropertiesExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Token string `xml:"token"` -} - -func init() { - t["CancelRetrievePropertiesExRequestType"] = reflect.TypeOf((*CancelRetrievePropertiesExRequestType)(nil)).Elem() -} - -type CancelRetrievePropertiesExResponse struct { -} - -type CancelStorageDrsRecommendation CancelStorageDrsRecommendationRequestType - -func init() { - t["CancelStorageDrsRecommendation"] = reflect.TypeOf((*CancelStorageDrsRecommendation)(nil)).Elem() -} - -type CancelStorageDrsRecommendationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key []string `xml:"key"` -} - -func init() { - t["CancelStorageDrsRecommendationRequestType"] = reflect.TypeOf((*CancelStorageDrsRecommendationRequestType)(nil)).Elem() -} - -type CancelStorageDrsRecommendationResponse struct { -} - -type CancelTask CancelTaskRequestType - -func init() { - t["CancelTask"] = reflect.TypeOf((*CancelTask)(nil)).Elem() -} - -type CancelTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["CancelTaskRequestType"] = reflect.TypeOf((*CancelTaskRequestType)(nil)).Elem() -} - -type CancelTaskResponse struct { -} - -type CancelWaitForUpdates CancelWaitForUpdatesRequestType - -func init() { - t["CancelWaitForUpdates"] = reflect.TypeOf((*CancelWaitForUpdates)(nil)).Elem() -} - -type CancelWaitForUpdatesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["CancelWaitForUpdatesRequestType"] = reflect.TypeOf((*CancelWaitForUpdatesRequestType)(nil)).Elem() -} - -type CancelWaitForUpdatesResponse struct { -} - -type CanceledHostOperationEvent struct { - HostEvent -} - -func init() { - t["CanceledHostOperationEvent"] = reflect.TypeOf((*CanceledHostOperationEvent)(nil)).Elem() -} - -type CannotAccessFile struct { - FileFault -} - -func init() { - t["CannotAccessFile"] = reflect.TypeOf((*CannotAccessFile)(nil)).Elem() -} - -type CannotAccessFileFault CannotAccessFile - -func init() { - t["CannotAccessFileFault"] = reflect.TypeOf((*CannotAccessFileFault)(nil)).Elem() -} - -type CannotAccessLocalSource struct { - VimFault -} - -func init() { - t["CannotAccessLocalSource"] = reflect.TypeOf((*CannotAccessLocalSource)(nil)).Elem() -} - -type CannotAccessLocalSourceFault CannotAccessLocalSource - -func init() { - t["CannotAccessLocalSourceFault"] = reflect.TypeOf((*CannotAccessLocalSourceFault)(nil)).Elem() -} - -type CannotAccessNetwork struct { - CannotAccessVmDevice - - Network *ManagedObjectReference `xml:"network,omitempty"` -} - -func init() { - t["CannotAccessNetwork"] = reflect.TypeOf((*CannotAccessNetwork)(nil)).Elem() -} - -type CannotAccessNetworkFault BaseCannotAccessNetwork - -func init() { - t["CannotAccessNetworkFault"] = reflect.TypeOf((*CannotAccessNetworkFault)(nil)).Elem() -} - -type CannotAccessVmComponent struct { - VmConfigFault -} - -func init() { - t["CannotAccessVmComponent"] = reflect.TypeOf((*CannotAccessVmComponent)(nil)).Elem() -} - -type CannotAccessVmComponentFault BaseCannotAccessVmComponent - -func init() { - t["CannotAccessVmComponentFault"] = reflect.TypeOf((*CannotAccessVmComponentFault)(nil)).Elem() -} - -type CannotAccessVmConfig struct { - CannotAccessVmComponent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["CannotAccessVmConfig"] = reflect.TypeOf((*CannotAccessVmConfig)(nil)).Elem() -} - -type CannotAccessVmConfigFault CannotAccessVmConfig - -func init() { - t["CannotAccessVmConfigFault"] = reflect.TypeOf((*CannotAccessVmConfigFault)(nil)).Elem() -} - -type CannotAccessVmDevice struct { - CannotAccessVmComponent - - Device string `xml:"device"` - Backing string `xml:"backing"` - Connected bool `xml:"connected"` -} - -func init() { - t["CannotAccessVmDevice"] = reflect.TypeOf((*CannotAccessVmDevice)(nil)).Elem() -} - -type CannotAccessVmDeviceFault BaseCannotAccessVmDevice - -func init() { - t["CannotAccessVmDeviceFault"] = reflect.TypeOf((*CannotAccessVmDeviceFault)(nil)).Elem() -} - -type CannotAccessVmDisk struct { - CannotAccessVmDevice - - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["CannotAccessVmDisk"] = reflect.TypeOf((*CannotAccessVmDisk)(nil)).Elem() -} - -type CannotAccessVmDiskFault BaseCannotAccessVmDisk - -func init() { - t["CannotAccessVmDiskFault"] = reflect.TypeOf((*CannotAccessVmDiskFault)(nil)).Elem() -} - -type CannotAddHostWithFTVmAsStandalone struct { - HostConnectFault -} - -func init() { - t["CannotAddHostWithFTVmAsStandalone"] = reflect.TypeOf((*CannotAddHostWithFTVmAsStandalone)(nil)).Elem() -} - -type CannotAddHostWithFTVmAsStandaloneFault CannotAddHostWithFTVmAsStandalone - -func init() { - t["CannotAddHostWithFTVmAsStandaloneFault"] = reflect.TypeOf((*CannotAddHostWithFTVmAsStandaloneFault)(nil)).Elem() -} - -type CannotAddHostWithFTVmToDifferentCluster struct { - HostConnectFault -} - -func init() { - t["CannotAddHostWithFTVmToDifferentCluster"] = reflect.TypeOf((*CannotAddHostWithFTVmToDifferentCluster)(nil)).Elem() -} - -type CannotAddHostWithFTVmToDifferentClusterFault CannotAddHostWithFTVmToDifferentCluster - -func init() { - t["CannotAddHostWithFTVmToDifferentClusterFault"] = reflect.TypeOf((*CannotAddHostWithFTVmToDifferentClusterFault)(nil)).Elem() -} - -type CannotAddHostWithFTVmToNonHACluster struct { - HostConnectFault -} - -func init() { - t["CannotAddHostWithFTVmToNonHACluster"] = reflect.TypeOf((*CannotAddHostWithFTVmToNonHACluster)(nil)).Elem() -} - -type CannotAddHostWithFTVmToNonHAClusterFault CannotAddHostWithFTVmToNonHACluster - -func init() { - t["CannotAddHostWithFTVmToNonHAClusterFault"] = reflect.TypeOf((*CannotAddHostWithFTVmToNonHAClusterFault)(nil)).Elem() -} - -type CannotChangeDrsBehaviorForFtSecondary struct { - VmFaultToleranceIssue - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["CannotChangeDrsBehaviorForFtSecondary"] = reflect.TypeOf((*CannotChangeDrsBehaviorForFtSecondary)(nil)).Elem() -} - -type CannotChangeDrsBehaviorForFtSecondaryFault CannotChangeDrsBehaviorForFtSecondary - -func init() { - t["CannotChangeDrsBehaviorForFtSecondaryFault"] = reflect.TypeOf((*CannotChangeDrsBehaviorForFtSecondaryFault)(nil)).Elem() -} - -type CannotChangeHaSettingsForFtSecondary struct { - VmFaultToleranceIssue - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["CannotChangeHaSettingsForFtSecondary"] = reflect.TypeOf((*CannotChangeHaSettingsForFtSecondary)(nil)).Elem() -} - -type CannotChangeHaSettingsForFtSecondaryFault CannotChangeHaSettingsForFtSecondary - -func init() { - t["CannotChangeHaSettingsForFtSecondaryFault"] = reflect.TypeOf((*CannotChangeHaSettingsForFtSecondaryFault)(nil)).Elem() -} - -type CannotChangeVsanClusterUuid struct { - VsanFault -} - -func init() { - t["CannotChangeVsanClusterUuid"] = reflect.TypeOf((*CannotChangeVsanClusterUuid)(nil)).Elem() -} - -type CannotChangeVsanClusterUuidFault CannotChangeVsanClusterUuid - -func init() { - t["CannotChangeVsanClusterUuidFault"] = reflect.TypeOf((*CannotChangeVsanClusterUuidFault)(nil)).Elem() -} - -type CannotChangeVsanNodeUuid struct { - VsanFault -} - -func init() { - t["CannotChangeVsanNodeUuid"] = reflect.TypeOf((*CannotChangeVsanNodeUuid)(nil)).Elem() -} - -type CannotChangeVsanNodeUuidFault CannotChangeVsanNodeUuid - -func init() { - t["CannotChangeVsanNodeUuidFault"] = reflect.TypeOf((*CannotChangeVsanNodeUuidFault)(nil)).Elem() -} - -type CannotComputeFTCompatibleHosts struct { - VmFaultToleranceIssue - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["CannotComputeFTCompatibleHosts"] = reflect.TypeOf((*CannotComputeFTCompatibleHosts)(nil)).Elem() -} - -type CannotComputeFTCompatibleHostsFault CannotComputeFTCompatibleHosts - -func init() { - t["CannotComputeFTCompatibleHostsFault"] = reflect.TypeOf((*CannotComputeFTCompatibleHostsFault)(nil)).Elem() -} - -type CannotCreateFile struct { - FileFault -} - -func init() { - t["CannotCreateFile"] = reflect.TypeOf((*CannotCreateFile)(nil)).Elem() -} - -type CannotCreateFileFault CannotCreateFile - -func init() { - t["CannotCreateFileFault"] = reflect.TypeOf((*CannotCreateFileFault)(nil)).Elem() -} - -type CannotDecryptPasswords struct { - CustomizationFault -} - -func init() { - t["CannotDecryptPasswords"] = reflect.TypeOf((*CannotDecryptPasswords)(nil)).Elem() -} - -type CannotDecryptPasswordsFault CannotDecryptPasswords - -func init() { - t["CannotDecryptPasswordsFault"] = reflect.TypeOf((*CannotDecryptPasswordsFault)(nil)).Elem() -} - -type CannotDeleteFile struct { - FileFault -} - -func init() { - t["CannotDeleteFile"] = reflect.TypeOf((*CannotDeleteFile)(nil)).Elem() -} - -type CannotDeleteFileFault CannotDeleteFile - -func init() { - t["CannotDeleteFileFault"] = reflect.TypeOf((*CannotDeleteFileFault)(nil)).Elem() -} - -type CannotDisableDrsOnClustersWithVApps struct { - RuntimeFault -} - -func init() { - t["CannotDisableDrsOnClustersWithVApps"] = reflect.TypeOf((*CannotDisableDrsOnClustersWithVApps)(nil)).Elem() -} - -type CannotDisableDrsOnClustersWithVAppsFault CannotDisableDrsOnClustersWithVApps - -func init() { - t["CannotDisableDrsOnClustersWithVAppsFault"] = reflect.TypeOf((*CannotDisableDrsOnClustersWithVAppsFault)(nil)).Elem() -} - -type CannotDisableSnapshot struct { - VmConfigFault -} - -func init() { - t["CannotDisableSnapshot"] = reflect.TypeOf((*CannotDisableSnapshot)(nil)).Elem() -} - -type CannotDisableSnapshotFault CannotDisableSnapshot - -func init() { - t["CannotDisableSnapshotFault"] = reflect.TypeOf((*CannotDisableSnapshotFault)(nil)).Elem() -} - -type CannotDisconnectHostWithFaultToleranceVm struct { - VimFault - - HostName string `xml:"hostName"` -} - -func init() { - t["CannotDisconnectHostWithFaultToleranceVm"] = reflect.TypeOf((*CannotDisconnectHostWithFaultToleranceVm)(nil)).Elem() -} - -type CannotDisconnectHostWithFaultToleranceVmFault CannotDisconnectHostWithFaultToleranceVm - -func init() { - t["CannotDisconnectHostWithFaultToleranceVmFault"] = reflect.TypeOf((*CannotDisconnectHostWithFaultToleranceVmFault)(nil)).Elem() -} - -type CannotEnableVmcpForCluster struct { - VimFault - - Host *ManagedObjectReference `xml:"host,omitempty"` - HostName string `xml:"hostName,omitempty"` - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["CannotEnableVmcpForCluster"] = reflect.TypeOf((*CannotEnableVmcpForCluster)(nil)).Elem() -} - -type CannotEnableVmcpForClusterFault CannotEnableVmcpForCluster - -func init() { - t["CannotEnableVmcpForClusterFault"] = reflect.TypeOf((*CannotEnableVmcpForClusterFault)(nil)).Elem() -} - -type CannotModifyConfigCpuRequirements struct { - MigrationFault -} - -func init() { - t["CannotModifyConfigCpuRequirements"] = reflect.TypeOf((*CannotModifyConfigCpuRequirements)(nil)).Elem() -} - -type CannotModifyConfigCpuRequirementsFault CannotModifyConfigCpuRequirements - -func init() { - t["CannotModifyConfigCpuRequirementsFault"] = reflect.TypeOf((*CannotModifyConfigCpuRequirementsFault)(nil)).Elem() -} - -type CannotMoveFaultToleranceVm struct { - VimFault - - MoveType string `xml:"moveType"` - VmName string `xml:"vmName"` -} - -func init() { - t["CannotMoveFaultToleranceVm"] = reflect.TypeOf((*CannotMoveFaultToleranceVm)(nil)).Elem() -} - -type CannotMoveFaultToleranceVmFault CannotMoveFaultToleranceVm - -func init() { - t["CannotMoveFaultToleranceVmFault"] = reflect.TypeOf((*CannotMoveFaultToleranceVmFault)(nil)).Elem() -} - -type CannotMoveHostWithFaultToleranceVm struct { - VimFault -} - -func init() { - t["CannotMoveHostWithFaultToleranceVm"] = reflect.TypeOf((*CannotMoveHostWithFaultToleranceVm)(nil)).Elem() -} - -type CannotMoveHostWithFaultToleranceVmFault CannotMoveHostWithFaultToleranceVm - -func init() { - t["CannotMoveHostWithFaultToleranceVmFault"] = reflect.TypeOf((*CannotMoveHostWithFaultToleranceVmFault)(nil)).Elem() -} - -type CannotMoveVmWithDeltaDisk struct { - MigrationFault - - Device string `xml:"device"` -} - -func init() { - t["CannotMoveVmWithDeltaDisk"] = reflect.TypeOf((*CannotMoveVmWithDeltaDisk)(nil)).Elem() -} - -type CannotMoveVmWithDeltaDiskFault CannotMoveVmWithDeltaDisk - -func init() { - t["CannotMoveVmWithDeltaDiskFault"] = reflect.TypeOf((*CannotMoveVmWithDeltaDiskFault)(nil)).Elem() -} - -type CannotMoveVmWithNativeDeltaDisk struct { - MigrationFault -} - -func init() { - t["CannotMoveVmWithNativeDeltaDisk"] = reflect.TypeOf((*CannotMoveVmWithNativeDeltaDisk)(nil)).Elem() -} - -type CannotMoveVmWithNativeDeltaDiskFault CannotMoveVmWithNativeDeltaDisk - -func init() { - t["CannotMoveVmWithNativeDeltaDiskFault"] = reflect.TypeOf((*CannotMoveVmWithNativeDeltaDiskFault)(nil)).Elem() -} - -type CannotMoveVsanEnabledHost struct { - VsanFault -} - -func init() { - t["CannotMoveVsanEnabledHost"] = reflect.TypeOf((*CannotMoveVsanEnabledHost)(nil)).Elem() -} - -type CannotMoveVsanEnabledHostFault BaseCannotMoveVsanEnabledHost - -func init() { - t["CannotMoveVsanEnabledHostFault"] = reflect.TypeOf((*CannotMoveVsanEnabledHostFault)(nil)).Elem() -} - -type CannotPlaceWithoutPrerequisiteMoves struct { - VimFault -} - -func init() { - t["CannotPlaceWithoutPrerequisiteMoves"] = reflect.TypeOf((*CannotPlaceWithoutPrerequisiteMoves)(nil)).Elem() -} - -type CannotPlaceWithoutPrerequisiteMovesFault CannotPlaceWithoutPrerequisiteMoves - -func init() { - t["CannotPlaceWithoutPrerequisiteMovesFault"] = reflect.TypeOf((*CannotPlaceWithoutPrerequisiteMovesFault)(nil)).Elem() -} - -type CannotPowerOffVmInCluster struct { - InvalidState - - Operation string `xml:"operation"` - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["CannotPowerOffVmInCluster"] = reflect.TypeOf((*CannotPowerOffVmInCluster)(nil)).Elem() -} - -type CannotPowerOffVmInClusterFault CannotPowerOffVmInCluster - -func init() { - t["CannotPowerOffVmInClusterFault"] = reflect.TypeOf((*CannotPowerOffVmInClusterFault)(nil)).Elem() -} - -type CannotReconfigureVsanWhenHaEnabled struct { - VsanFault -} - -func init() { - t["CannotReconfigureVsanWhenHaEnabled"] = reflect.TypeOf((*CannotReconfigureVsanWhenHaEnabled)(nil)).Elem() -} - -type CannotReconfigureVsanWhenHaEnabledFault CannotReconfigureVsanWhenHaEnabled - -func init() { - t["CannotReconfigureVsanWhenHaEnabledFault"] = reflect.TypeOf((*CannotReconfigureVsanWhenHaEnabledFault)(nil)).Elem() -} - -type CannotUseNetwork struct { - VmConfigFault - - Device string `xml:"device"` - Backing string `xml:"backing"` - Connected bool `xml:"connected"` - Reason string `xml:"reason"` - Network *ManagedObjectReference `xml:"network,omitempty"` -} - -func init() { - t["CannotUseNetwork"] = reflect.TypeOf((*CannotUseNetwork)(nil)).Elem() -} - -type CannotUseNetworkFault CannotUseNetwork - -func init() { - t["CannotUseNetworkFault"] = reflect.TypeOf((*CannotUseNetworkFault)(nil)).Elem() -} - -type Capability struct { - DynamicData - - ProvisioningSupported bool `xml:"provisioningSupported"` - MultiHostSupported bool `xml:"multiHostSupported"` - UserShellAccessSupported bool `xml:"userShellAccessSupported"` - SupportedEVCMode []EVCMode `xml:"supportedEVCMode,omitempty"` - NetworkBackupAndRestoreSupported *bool `xml:"networkBackupAndRestoreSupported"` -} - -func init() { - t["Capability"] = reflect.TypeOf((*Capability)(nil)).Elem() -} - -type CertMgrRefreshCACertificatesAndCRLsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["CertMgrRefreshCACertificatesAndCRLsRequestType"] = reflect.TypeOf((*CertMgrRefreshCACertificatesAndCRLsRequestType)(nil)).Elem() -} - -type CertMgrRefreshCACertificatesAndCRLs_Task CertMgrRefreshCACertificatesAndCRLsRequestType - -func init() { - t["CertMgrRefreshCACertificatesAndCRLs_Task"] = reflect.TypeOf((*CertMgrRefreshCACertificatesAndCRLs_Task)(nil)).Elem() -} - -type CertMgrRefreshCACertificatesAndCRLs_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CertMgrRefreshCertificatesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["CertMgrRefreshCertificatesRequestType"] = reflect.TypeOf((*CertMgrRefreshCertificatesRequestType)(nil)).Elem() -} - -type CertMgrRefreshCertificates_Task CertMgrRefreshCertificatesRequestType - -func init() { - t["CertMgrRefreshCertificates_Task"] = reflect.TypeOf((*CertMgrRefreshCertificates_Task)(nil)).Elem() -} - -type CertMgrRefreshCertificates_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CertMgrRevokeCertificatesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["CertMgrRevokeCertificatesRequestType"] = reflect.TypeOf((*CertMgrRevokeCertificatesRequestType)(nil)).Elem() -} - -type CertMgrRevokeCertificates_Task CertMgrRevokeCertificatesRequestType - -func init() { - t["CertMgrRevokeCertificates_Task"] = reflect.TypeOf((*CertMgrRevokeCertificates_Task)(nil)).Elem() -} - -type CertMgrRevokeCertificates_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ChangeAccessMode ChangeAccessModeRequestType - -func init() { - t["ChangeAccessMode"] = reflect.TypeOf((*ChangeAccessMode)(nil)).Elem() -} - -type ChangeAccessModeRequestType struct { - This ManagedObjectReference `xml:"_this"` - Principal string `xml:"principal"` - IsGroup bool `xml:"isGroup"` - AccessMode HostAccessMode `xml:"accessMode"` -} - -func init() { - t["ChangeAccessModeRequestType"] = reflect.TypeOf((*ChangeAccessModeRequestType)(nil)).Elem() -} - -type ChangeAccessModeResponse struct { -} - -type ChangeFileAttributesInGuest ChangeFileAttributesInGuestRequestType - -func init() { - t["ChangeFileAttributesInGuest"] = reflect.TypeOf((*ChangeFileAttributesInGuest)(nil)).Elem() -} - -type ChangeFileAttributesInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - GuestFilePath string `xml:"guestFilePath"` - FileAttributes BaseGuestFileAttributes `xml:"fileAttributes,typeattr"` -} - -func init() { - t["ChangeFileAttributesInGuestRequestType"] = reflect.TypeOf((*ChangeFileAttributesInGuestRequestType)(nil)).Elem() -} - -type ChangeFileAttributesInGuestResponse struct { -} - -type ChangeLockdownMode ChangeLockdownModeRequestType - -func init() { - t["ChangeLockdownMode"] = reflect.TypeOf((*ChangeLockdownMode)(nil)).Elem() -} - -type ChangeLockdownModeRequestType struct { - This ManagedObjectReference `xml:"_this"` - Mode HostLockdownMode `xml:"mode"` -} - -func init() { - t["ChangeLockdownModeRequestType"] = reflect.TypeOf((*ChangeLockdownModeRequestType)(nil)).Elem() -} - -type ChangeLockdownModeResponse struct { -} - -type ChangeNFSUserPassword ChangeNFSUserPasswordRequestType - -func init() { - t["ChangeNFSUserPassword"] = reflect.TypeOf((*ChangeNFSUserPassword)(nil)).Elem() -} - -type ChangeNFSUserPasswordRequestType struct { - This ManagedObjectReference `xml:"_this"` - Password string `xml:"password"` -} - -func init() { - t["ChangeNFSUserPasswordRequestType"] = reflect.TypeOf((*ChangeNFSUserPasswordRequestType)(nil)).Elem() -} - -type ChangeNFSUserPasswordResponse struct { -} - -type ChangeOwner ChangeOwnerRequestType - -func init() { - t["ChangeOwner"] = reflect.TypeOf((*ChangeOwner)(nil)).Elem() -} - -type ChangeOwnerRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Owner string `xml:"owner"` -} - -func init() { - t["ChangeOwnerRequestType"] = reflect.TypeOf((*ChangeOwnerRequestType)(nil)).Elem() -} - -type ChangeOwnerResponse struct { -} - -type ChangesInfoEventArgument struct { - DynamicData - - Modified string `xml:"modified,omitempty"` - Added string `xml:"added,omitempty"` - Deleted string `xml:"deleted,omitempty"` -} - -func init() { - t["ChangesInfoEventArgument"] = reflect.TypeOf((*ChangesInfoEventArgument)(nil)).Elem() -} - -type CheckAddHostEvcRequestType struct { - This ManagedObjectReference `xml:"_this"` - CnxSpec HostConnectSpec `xml:"cnxSpec"` -} - -func init() { - t["CheckAddHostEvcRequestType"] = reflect.TypeOf((*CheckAddHostEvcRequestType)(nil)).Elem() -} - -type CheckAddHostEvc_Task CheckAddHostEvcRequestType - -func init() { - t["CheckAddHostEvc_Task"] = reflect.TypeOf((*CheckAddHostEvc_Task)(nil)).Elem() -} - -type CheckAddHostEvc_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckAnswerFileStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["CheckAnswerFileStatusRequestType"] = reflect.TypeOf((*CheckAnswerFileStatusRequestType)(nil)).Elem() -} - -type CheckAnswerFileStatus_Task CheckAnswerFileStatusRequestType - -func init() { - t["CheckAnswerFileStatus_Task"] = reflect.TypeOf((*CheckAnswerFileStatus_Task)(nil)).Elem() -} - -type CheckAnswerFileStatus_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckCompatibilityRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` - TestType []string `xml:"testType,omitempty"` -} - -func init() { - t["CheckCompatibilityRequestType"] = reflect.TypeOf((*CheckCompatibilityRequestType)(nil)).Elem() -} - -type CheckCompatibility_Task CheckCompatibilityRequestType - -func init() { - t["CheckCompatibility_Task"] = reflect.TypeOf((*CheckCompatibility_Task)(nil)).Elem() -} - -type CheckCompatibility_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckComplianceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Profile []ManagedObjectReference `xml:"profile,omitempty"` - Entity []ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["CheckComplianceRequestType"] = reflect.TypeOf((*CheckComplianceRequestType)(nil)).Elem() -} - -type CheckCompliance_Task CheckComplianceRequestType - -func init() { - t["CheckCompliance_Task"] = reflect.TypeOf((*CheckCompliance_Task)(nil)).Elem() -} - -type CheckCompliance_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckConfigureEvcModeRequestType struct { - This ManagedObjectReference `xml:"_this"` - EvcModeKey string `xml:"evcModeKey"` -} - -func init() { - t["CheckConfigureEvcModeRequestType"] = reflect.TypeOf((*CheckConfigureEvcModeRequestType)(nil)).Elem() -} - -type CheckConfigureEvcMode_Task CheckConfigureEvcModeRequestType - -func init() { - t["CheckConfigureEvcMode_Task"] = reflect.TypeOf((*CheckConfigureEvcMode_Task)(nil)).Elem() -} - -type CheckConfigureEvcMode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckCustomizationResources CheckCustomizationResourcesRequestType - -func init() { - t["CheckCustomizationResources"] = reflect.TypeOf((*CheckCustomizationResources)(nil)).Elem() -} - -type CheckCustomizationResourcesRequestType struct { - This ManagedObjectReference `xml:"_this"` - GuestOs string `xml:"guestOs"` -} - -func init() { - t["CheckCustomizationResourcesRequestType"] = reflect.TypeOf((*CheckCustomizationResourcesRequestType)(nil)).Elem() -} - -type CheckCustomizationResourcesResponse struct { -} - -type CheckCustomizationSpec CheckCustomizationSpecRequestType - -func init() { - t["CheckCustomizationSpec"] = reflect.TypeOf((*CheckCustomizationSpec)(nil)).Elem() -} - -type CheckCustomizationSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec CustomizationSpec `xml:"spec"` -} - -func init() { - t["CheckCustomizationSpecRequestType"] = reflect.TypeOf((*CheckCustomizationSpecRequestType)(nil)).Elem() -} - -type CheckCustomizationSpecResponse struct { -} - -type CheckForUpdates CheckForUpdatesRequestType - -func init() { - t["CheckForUpdates"] = reflect.TypeOf((*CheckForUpdates)(nil)).Elem() -} - -type CheckForUpdatesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Version string `xml:"version,omitempty"` -} - -func init() { - t["CheckForUpdatesRequestType"] = reflect.TypeOf((*CheckForUpdatesRequestType)(nil)).Elem() -} - -type CheckForUpdatesResponse struct { - Returnval *UpdateSet `xml:"returnval,omitempty"` -} - -type CheckHostPatchRequestType struct { - This ManagedObjectReference `xml:"_this"` - MetaUrls []string `xml:"metaUrls,omitempty"` - BundleUrls []string `xml:"bundleUrls,omitempty"` - Spec *HostPatchManagerPatchManagerOperationSpec `xml:"spec,omitempty"` -} - -func init() { - t["CheckHostPatchRequestType"] = reflect.TypeOf((*CheckHostPatchRequestType)(nil)).Elem() -} - -type CheckHostPatch_Task CheckHostPatchRequestType - -func init() { - t["CheckHostPatch_Task"] = reflect.TypeOf((*CheckHostPatch_Task)(nil)).Elem() -} - -type CheckHostPatch_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckLicenseFeature CheckLicenseFeatureRequestType - -func init() { - t["CheckLicenseFeature"] = reflect.TypeOf((*CheckLicenseFeature)(nil)).Elem() -} - -type CheckLicenseFeatureRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - FeatureKey string `xml:"featureKey"` -} - -func init() { - t["CheckLicenseFeatureRequestType"] = reflect.TypeOf((*CheckLicenseFeatureRequestType)(nil)).Elem() -} - -type CheckLicenseFeatureResponse struct { - Returnval bool `xml:"returnval"` -} - -type CheckMigrateRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` - State VirtualMachinePowerState `xml:"state,omitempty"` - TestType []string `xml:"testType,omitempty"` -} - -func init() { - t["CheckMigrateRequestType"] = reflect.TypeOf((*CheckMigrateRequestType)(nil)).Elem() -} - -type CheckMigrate_Task CheckMigrateRequestType - -func init() { - t["CheckMigrate_Task"] = reflect.TypeOf((*CheckMigrate_Task)(nil)).Elem() -} - -type CheckMigrate_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckProfileComplianceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity []ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["CheckProfileComplianceRequestType"] = reflect.TypeOf((*CheckProfileComplianceRequestType)(nil)).Elem() -} - -type CheckProfileCompliance_Task CheckProfileComplianceRequestType - -func init() { - t["CheckProfileCompliance_Task"] = reflect.TypeOf((*CheckProfileCompliance_Task)(nil)).Elem() -} - -type CheckProfileCompliance_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckRelocateRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Spec VirtualMachineRelocateSpec `xml:"spec"` - TestType []string `xml:"testType,omitempty"` -} - -func init() { - t["CheckRelocateRequestType"] = reflect.TypeOf((*CheckRelocateRequestType)(nil)).Elem() -} - -type CheckRelocate_Task CheckRelocateRequestType - -func init() { - t["CheckRelocate_Task"] = reflect.TypeOf((*CheckRelocate_Task)(nil)).Elem() -} - -type CheckRelocate_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CheckResult struct { - DynamicData - - Vm *ManagedObjectReference `xml:"vm,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Warning []LocalizedMethodFault `xml:"warning,omitempty"` - Error []LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["CheckResult"] = reflect.TypeOf((*CheckResult)(nil)).Elem() -} - -type ChoiceOption struct { - OptionType - - ChoiceInfo []BaseElementDescription `xml:"choiceInfo,typeattr"` - DefaultIndex int32 `xml:"defaultIndex,omitempty"` -} - -func init() { - t["ChoiceOption"] = reflect.TypeOf((*ChoiceOption)(nil)).Elem() -} - -type ClearComplianceStatus ClearComplianceStatusRequestType - -func init() { - t["ClearComplianceStatus"] = reflect.TypeOf((*ClearComplianceStatus)(nil)).Elem() -} - -type ClearComplianceStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - Profile []ManagedObjectReference `xml:"profile,omitempty"` - Entity []ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["ClearComplianceStatusRequestType"] = reflect.TypeOf((*ClearComplianceStatusRequestType)(nil)).Elem() -} - -type ClearComplianceStatusResponse struct { -} - -type ClearNFSUser ClearNFSUserRequestType - -func init() { - t["ClearNFSUser"] = reflect.TypeOf((*ClearNFSUser)(nil)).Elem() -} - -type ClearNFSUserRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ClearNFSUserRequestType"] = reflect.TypeOf((*ClearNFSUserRequestType)(nil)).Elem() -} - -type ClearNFSUserResponse struct { -} - -type ClearSystemEventLog ClearSystemEventLogRequestType - -func init() { - t["ClearSystemEventLog"] = reflect.TypeOf((*ClearSystemEventLog)(nil)).Elem() -} - -type ClearSystemEventLogRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ClearSystemEventLogRequestType"] = reflect.TypeOf((*ClearSystemEventLogRequestType)(nil)).Elem() -} - -type ClearSystemEventLogResponse struct { -} - -type ClockSkew struct { - HostConfigFault -} - -func init() { - t["ClockSkew"] = reflect.TypeOf((*ClockSkew)(nil)).Elem() -} - -type ClockSkewFault ClockSkew - -func init() { - t["ClockSkewFault"] = reflect.TypeOf((*ClockSkewFault)(nil)).Elem() -} - -type CloneFromSnapshotNotSupported struct { - MigrationFault -} - -func init() { - t["CloneFromSnapshotNotSupported"] = reflect.TypeOf((*CloneFromSnapshotNotSupported)(nil)).Elem() -} - -type CloneFromSnapshotNotSupportedFault CloneFromSnapshotNotSupported - -func init() { - t["CloneFromSnapshotNotSupportedFault"] = reflect.TypeOf((*CloneFromSnapshotNotSupportedFault)(nil)).Elem() -} - -type CloneSession CloneSessionRequestType - -func init() { - t["CloneSession"] = reflect.TypeOf((*CloneSession)(nil)).Elem() -} - -type CloneSessionRequestType struct { - This ManagedObjectReference `xml:"_this"` - CloneTicket string `xml:"cloneTicket"` -} - -func init() { - t["CloneSessionRequestType"] = reflect.TypeOf((*CloneSessionRequestType)(nil)).Elem() -} - -type CloneSessionResponse struct { - Returnval UserSession `xml:"returnval"` -} - -type CloneVAppRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Target ManagedObjectReference `xml:"target"` - Spec VAppCloneSpec `xml:"spec"` -} - -func init() { - t["CloneVAppRequestType"] = reflect.TypeOf((*CloneVAppRequestType)(nil)).Elem() -} - -type CloneVApp_Task CloneVAppRequestType - -func init() { - t["CloneVApp_Task"] = reflect.TypeOf((*CloneVApp_Task)(nil)).Elem() -} - -type CloneVApp_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CloneVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Folder ManagedObjectReference `xml:"folder"` - Name string `xml:"name"` - Spec VirtualMachineCloneSpec `xml:"spec"` -} - -func init() { - t["CloneVMRequestType"] = reflect.TypeOf((*CloneVMRequestType)(nil)).Elem() -} - -type CloneVM_Task CloneVMRequestType - -func init() { - t["CloneVM_Task"] = reflect.TypeOf((*CloneVM_Task)(nil)).Elem() -} - -type CloneVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CloneVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - Spec VslmCloneSpec `xml:"spec"` -} - -func init() { - t["CloneVStorageObjectRequestType"] = reflect.TypeOf((*CloneVStorageObjectRequestType)(nil)).Elem() -} - -type CloneVStorageObject_Task CloneVStorageObjectRequestType - -func init() { - t["CloneVStorageObject_Task"] = reflect.TypeOf((*CloneVStorageObject_Task)(nil)).Elem() -} - -type CloneVStorageObject_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CloseInventoryViewFolder CloseInventoryViewFolderRequestType - -func init() { - t["CloseInventoryViewFolder"] = reflect.TypeOf((*CloseInventoryViewFolder)(nil)).Elem() -} - -type CloseInventoryViewFolderRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity []ManagedObjectReference `xml:"entity"` -} - -func init() { - t["CloseInventoryViewFolderRequestType"] = reflect.TypeOf((*CloseInventoryViewFolderRequestType)(nil)).Elem() -} - -type CloseInventoryViewFolderResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type ClusterAction struct { - DynamicData - - Type string `xml:"type"` - Target *ManagedObjectReference `xml:"target,omitempty"` -} - -func init() { - t["ClusterAction"] = reflect.TypeOf((*ClusterAction)(nil)).Elem() -} - -type ClusterActionHistory struct { - DynamicData - - Action BaseClusterAction `xml:"action,typeattr"` - Time time.Time `xml:"time"` -} - -func init() { - t["ClusterActionHistory"] = reflect.TypeOf((*ClusterActionHistory)(nil)).Elem() -} - -type ClusterAffinityRuleSpec struct { - ClusterRuleInfo - - Vm []ManagedObjectReference `xml:"vm"` -} - -func init() { - t["ClusterAffinityRuleSpec"] = reflect.TypeOf((*ClusterAffinityRuleSpec)(nil)).Elem() -} - -type ClusterAntiAffinityRuleSpec struct { - ClusterRuleInfo - - Vm []ManagedObjectReference `xml:"vm"` -} - -func init() { - t["ClusterAntiAffinityRuleSpec"] = reflect.TypeOf((*ClusterAntiAffinityRuleSpec)(nil)).Elem() -} - -type ClusterAttemptedVmInfo struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - Task *ManagedObjectReference `xml:"task,omitempty"` -} - -func init() { - t["ClusterAttemptedVmInfo"] = reflect.TypeOf((*ClusterAttemptedVmInfo)(nil)).Elem() -} - -type ClusterComplianceCheckedEvent struct { - ClusterEvent - - Profile ProfileEventArgument `xml:"profile"` -} - -func init() { - t["ClusterComplianceCheckedEvent"] = reflect.TypeOf((*ClusterComplianceCheckedEvent)(nil)).Elem() -} - -type ClusterComputeResourceSummary struct { - ComputeResourceSummary - - CurrentFailoverLevel int32 `xml:"currentFailoverLevel"` - AdmissionControlInfo BaseClusterDasAdmissionControlInfo `xml:"admissionControlInfo,omitempty,typeattr"` - NumVmotions int32 `xml:"numVmotions"` - TargetBalance int32 `xml:"targetBalance,omitempty"` - CurrentBalance int32 `xml:"currentBalance,omitempty"` - UsageSummary *ClusterUsageSummary `xml:"usageSummary,omitempty"` - CurrentEVCModeKey string `xml:"currentEVCModeKey,omitempty"` - DasData BaseClusterDasData `xml:"dasData,omitempty,typeattr"` -} - -func init() { - t["ClusterComputeResourceSummary"] = reflect.TypeOf((*ClusterComputeResourceSummary)(nil)).Elem() -} - -type ClusterConfigInfo struct { - DynamicData - - DasConfig ClusterDasConfigInfo `xml:"dasConfig"` - DasVmConfig []ClusterDasVmConfigInfo `xml:"dasVmConfig,omitempty"` - DrsConfig ClusterDrsConfigInfo `xml:"drsConfig"` - DrsVmConfig []ClusterDrsVmConfigInfo `xml:"drsVmConfig,omitempty"` - Rule []BaseClusterRuleInfo `xml:"rule,omitempty,typeattr"` -} - -func init() { - t["ClusterConfigInfo"] = reflect.TypeOf((*ClusterConfigInfo)(nil)).Elem() -} - -type ClusterConfigInfoEx struct { - ComputeResourceConfigInfo - - DasConfig ClusterDasConfigInfo `xml:"dasConfig"` - DasVmConfig []ClusterDasVmConfigInfo `xml:"dasVmConfig,omitempty"` - DrsConfig ClusterDrsConfigInfo `xml:"drsConfig"` - DrsVmConfig []ClusterDrsVmConfigInfo `xml:"drsVmConfig,omitempty"` - Rule []BaseClusterRuleInfo `xml:"rule,omitempty,typeattr"` - Orchestration *ClusterOrchestrationInfo `xml:"orchestration,omitempty"` - VmOrchestration []ClusterVmOrchestrationInfo `xml:"vmOrchestration,omitempty"` - DpmConfigInfo *ClusterDpmConfigInfo `xml:"dpmConfigInfo,omitempty"` - DpmHostConfig []ClusterDpmHostConfigInfo `xml:"dpmHostConfig,omitempty"` - VsanConfigInfo *VsanClusterConfigInfo `xml:"vsanConfigInfo,omitempty"` - VsanHostConfig []VsanHostConfigInfo `xml:"vsanHostConfig,omitempty"` - Group []BaseClusterGroupInfo `xml:"group,omitempty,typeattr"` - InfraUpdateHaConfig *ClusterInfraUpdateHaConfigInfo `xml:"infraUpdateHaConfig,omitempty"` - ProactiveDrsConfig *ClusterProactiveDrsConfigInfo `xml:"proactiveDrsConfig,omitempty"` -} - -func init() { - t["ClusterConfigInfoEx"] = reflect.TypeOf((*ClusterConfigInfoEx)(nil)).Elem() -} - -type ClusterConfigSpec struct { - DynamicData - - DasConfig *ClusterDasConfigInfo `xml:"dasConfig,omitempty"` - DasVmConfigSpec []ClusterDasVmConfigSpec `xml:"dasVmConfigSpec,omitempty"` - DrsConfig *ClusterDrsConfigInfo `xml:"drsConfig,omitempty"` - DrsVmConfigSpec []ClusterDrsVmConfigSpec `xml:"drsVmConfigSpec,omitempty"` - RulesSpec []ClusterRuleSpec `xml:"rulesSpec,omitempty"` -} - -func init() { - t["ClusterConfigSpec"] = reflect.TypeOf((*ClusterConfigSpec)(nil)).Elem() -} - -type ClusterConfigSpecEx struct { - ComputeResourceConfigSpec - - DasConfig *ClusterDasConfigInfo `xml:"dasConfig,omitempty"` - DasVmConfigSpec []ClusterDasVmConfigSpec `xml:"dasVmConfigSpec,omitempty"` - DrsConfig *ClusterDrsConfigInfo `xml:"drsConfig,omitempty"` - DrsVmConfigSpec []ClusterDrsVmConfigSpec `xml:"drsVmConfigSpec,omitempty"` - RulesSpec []ClusterRuleSpec `xml:"rulesSpec,omitempty"` - Orchestration *ClusterOrchestrationInfo `xml:"orchestration,omitempty"` - VmOrchestrationSpec []ClusterVmOrchestrationSpec `xml:"vmOrchestrationSpec,omitempty"` - DpmConfig *ClusterDpmConfigInfo `xml:"dpmConfig,omitempty"` - DpmHostConfigSpec []ClusterDpmHostConfigSpec `xml:"dpmHostConfigSpec,omitempty"` - VsanConfig *VsanClusterConfigInfo `xml:"vsanConfig,omitempty"` - VsanHostConfigSpec []VsanHostConfigInfo `xml:"vsanHostConfigSpec,omitempty"` - GroupSpec []ClusterGroupSpec `xml:"groupSpec,omitempty"` - InfraUpdateHaConfig *ClusterInfraUpdateHaConfigInfo `xml:"infraUpdateHaConfig,omitempty"` - ProactiveDrsConfig *ClusterProactiveDrsConfigInfo `xml:"proactiveDrsConfig,omitempty"` -} - -func init() { - t["ClusterConfigSpecEx"] = reflect.TypeOf((*ClusterConfigSpecEx)(nil)).Elem() -} - -type ClusterCreatedEvent struct { - ClusterEvent - - Parent FolderEventArgument `xml:"parent"` -} - -func init() { - t["ClusterCreatedEvent"] = reflect.TypeOf((*ClusterCreatedEvent)(nil)).Elem() -} - -type ClusterDasAamHostInfo struct { - ClusterDasHostInfo - - HostDasState []ClusterDasAamNodeState `xml:"hostDasState,omitempty"` - PrimaryHosts []string `xml:"primaryHosts,omitempty"` -} - -func init() { - t["ClusterDasAamHostInfo"] = reflect.TypeOf((*ClusterDasAamHostInfo)(nil)).Elem() -} - -type ClusterDasAamNodeState struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Name string `xml:"name"` - ConfigState string `xml:"configState"` - RuntimeState string `xml:"runtimeState"` -} - -func init() { - t["ClusterDasAamNodeState"] = reflect.TypeOf((*ClusterDasAamNodeState)(nil)).Elem() -} - -type ClusterDasAdmissionControlInfo struct { - DynamicData -} - -func init() { - t["ClusterDasAdmissionControlInfo"] = reflect.TypeOf((*ClusterDasAdmissionControlInfo)(nil)).Elem() -} - -type ClusterDasAdmissionControlPolicy struct { - DynamicData - - ResourceReductionToToleratePercent int32 `xml:"resourceReductionToToleratePercent,omitempty"` -} - -func init() { - t["ClusterDasAdmissionControlPolicy"] = reflect.TypeOf((*ClusterDasAdmissionControlPolicy)(nil)).Elem() -} - -type ClusterDasAdvancedRuntimeInfo struct { - DynamicData - - DasHostInfo BaseClusterDasHostInfo `xml:"dasHostInfo,omitempty,typeattr"` - VmcpSupported *ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo `xml:"vmcpSupported,omitempty"` - HeartbeatDatastoreInfo []DasHeartbeatDatastoreInfo `xml:"heartbeatDatastoreInfo,omitempty"` -} - -func init() { - t["ClusterDasAdvancedRuntimeInfo"] = reflect.TypeOf((*ClusterDasAdvancedRuntimeInfo)(nil)).Elem() -} - -type ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo struct { - DynamicData - - StorageAPDSupported bool `xml:"storageAPDSupported"` - StoragePDLSupported bool `xml:"storagePDLSupported"` -} - -func init() { - t["ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo"] = reflect.TypeOf((*ClusterDasAdvancedRuntimeInfoVmcpCapabilityInfo)(nil)).Elem() -} - -type ClusterDasConfigInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` - VmMonitoring string `xml:"vmMonitoring,omitempty"` - HostMonitoring string `xml:"hostMonitoring,omitempty"` - VmComponentProtecting string `xml:"vmComponentProtecting,omitempty"` - FailoverLevel int32 `xml:"failoverLevel,omitempty"` - AdmissionControlPolicy BaseClusterDasAdmissionControlPolicy `xml:"admissionControlPolicy,omitempty,typeattr"` - AdmissionControlEnabled *bool `xml:"admissionControlEnabled"` - DefaultVmSettings *ClusterDasVmSettings `xml:"defaultVmSettings,omitempty"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` - HeartbeatDatastore []ManagedObjectReference `xml:"heartbeatDatastore,omitempty"` - HBDatastoreCandidatePolicy string `xml:"hBDatastoreCandidatePolicy,omitempty"` -} - -func init() { - t["ClusterDasConfigInfo"] = reflect.TypeOf((*ClusterDasConfigInfo)(nil)).Elem() -} - -type ClusterDasData struct { - DynamicData -} - -func init() { - t["ClusterDasData"] = reflect.TypeOf((*ClusterDasData)(nil)).Elem() -} - -type ClusterDasDataSummary struct { - ClusterDasData - - HostListVersion int64 `xml:"hostListVersion"` - ClusterConfigVersion int64 `xml:"clusterConfigVersion"` - CompatListVersion int64 `xml:"compatListVersion"` -} - -func init() { - t["ClusterDasDataSummary"] = reflect.TypeOf((*ClusterDasDataSummary)(nil)).Elem() -} - -type ClusterDasFailoverLevelAdvancedRuntimeInfo struct { - ClusterDasAdvancedRuntimeInfo - - SlotInfo ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo `xml:"slotInfo"` - TotalSlots int32 `xml:"totalSlots"` - UsedSlots int32 `xml:"usedSlots"` - UnreservedSlots int32 `xml:"unreservedSlots"` - TotalVms int32 `xml:"totalVms"` - TotalHosts int32 `xml:"totalHosts"` - TotalGoodHosts int32 `xml:"totalGoodHosts"` - HostSlots []ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots `xml:"hostSlots,omitempty"` - VmsRequiringMultipleSlots []ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots `xml:"vmsRequiringMultipleSlots,omitempty"` -} - -func init() { - t["ClusterDasFailoverLevelAdvancedRuntimeInfo"] = reflect.TypeOf((*ClusterDasFailoverLevelAdvancedRuntimeInfo)(nil)).Elem() -} - -type ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Slots int32 `xml:"slots"` -} - -func init() { - t["ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots"] = reflect.TypeOf((*ClusterDasFailoverLevelAdvancedRuntimeInfoHostSlots)(nil)).Elem() -} - -type ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo struct { - DynamicData - - NumVcpus int32 `xml:"numVcpus"` - CpuMHz int32 `xml:"cpuMHz"` - MemoryMB int32 `xml:"memoryMB"` -} - -func init() { - t["ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo"] = reflect.TypeOf((*ClusterDasFailoverLevelAdvancedRuntimeInfoSlotInfo)(nil)).Elem() -} - -type ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - Slots int32 `xml:"slots"` -} - -func init() { - t["ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots"] = reflect.TypeOf((*ClusterDasFailoverLevelAdvancedRuntimeInfoVmSlots)(nil)).Elem() -} - -type ClusterDasFdmHostState struct { - DynamicData - - State string `xml:"state"` - StateReporter *ManagedObjectReference `xml:"stateReporter,omitempty"` -} - -func init() { - t["ClusterDasFdmHostState"] = reflect.TypeOf((*ClusterDasFdmHostState)(nil)).Elem() -} - -type ClusterDasHostInfo struct { - DynamicData -} - -func init() { - t["ClusterDasHostInfo"] = reflect.TypeOf((*ClusterDasHostInfo)(nil)).Elem() -} - -type ClusterDasHostRecommendation struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - DrsRating int32 `xml:"drsRating,omitempty"` -} - -func init() { - t["ClusterDasHostRecommendation"] = reflect.TypeOf((*ClusterDasHostRecommendation)(nil)).Elem() -} - -type ClusterDasVmConfigInfo struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - RestartPriority DasVmPriority `xml:"restartPriority,omitempty"` - PowerOffOnIsolation *bool `xml:"powerOffOnIsolation"` - DasSettings *ClusterDasVmSettings `xml:"dasSettings,omitempty"` -} - -func init() { - t["ClusterDasVmConfigInfo"] = reflect.TypeOf((*ClusterDasVmConfigInfo)(nil)).Elem() -} - -type ClusterDasVmConfigSpec struct { - ArrayUpdateSpec - - Info *ClusterDasVmConfigInfo `xml:"info,omitempty"` -} - -func init() { - t["ClusterDasVmConfigSpec"] = reflect.TypeOf((*ClusterDasVmConfigSpec)(nil)).Elem() -} - -type ClusterDasVmSettings struct { - DynamicData - - RestartPriority string `xml:"restartPriority,omitempty"` - RestartPriorityTimeout int32 `xml:"restartPriorityTimeout,omitempty"` - IsolationResponse string `xml:"isolationResponse,omitempty"` - VmToolsMonitoringSettings *ClusterVmToolsMonitoringSettings `xml:"vmToolsMonitoringSettings,omitempty"` - VmComponentProtectionSettings *ClusterVmComponentProtectionSettings `xml:"vmComponentProtectionSettings,omitempty"` -} - -func init() { - t["ClusterDasVmSettings"] = reflect.TypeOf((*ClusterDasVmSettings)(nil)).Elem() -} - -type ClusterDependencyRuleInfo struct { - ClusterRuleInfo - - VmGroup string `xml:"vmGroup"` - DependsOnVmGroup string `xml:"dependsOnVmGroup"` -} - -func init() { - t["ClusterDependencyRuleInfo"] = reflect.TypeOf((*ClusterDependencyRuleInfo)(nil)).Elem() -} - -type ClusterDestroyedEvent struct { - ClusterEvent -} - -func init() { - t["ClusterDestroyedEvent"] = reflect.TypeOf((*ClusterDestroyedEvent)(nil)).Elem() -} - -type ClusterDpmConfigInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` - DefaultDpmBehavior DpmBehavior `xml:"defaultDpmBehavior,omitempty"` - HostPowerActionRate int32 `xml:"hostPowerActionRate,omitempty"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` -} - -func init() { - t["ClusterDpmConfigInfo"] = reflect.TypeOf((*ClusterDpmConfigInfo)(nil)).Elem() -} - -type ClusterDpmHostConfigInfo struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - Enabled *bool `xml:"enabled"` - Behavior DpmBehavior `xml:"behavior,omitempty"` -} - -func init() { - t["ClusterDpmHostConfigInfo"] = reflect.TypeOf((*ClusterDpmHostConfigInfo)(nil)).Elem() -} - -type ClusterDpmHostConfigSpec struct { - ArrayUpdateSpec - - Info *ClusterDpmHostConfigInfo `xml:"info,omitempty"` -} - -func init() { - t["ClusterDpmHostConfigSpec"] = reflect.TypeOf((*ClusterDpmHostConfigSpec)(nil)).Elem() -} - -type ClusterDrsConfigInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` - EnableVmBehaviorOverrides *bool `xml:"enableVmBehaviorOverrides"` - DefaultVmBehavior DrsBehavior `xml:"defaultVmBehavior,omitempty"` - VmotionRate int32 `xml:"vmotionRate,omitempty"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` -} - -func init() { - t["ClusterDrsConfigInfo"] = reflect.TypeOf((*ClusterDrsConfigInfo)(nil)).Elem() -} - -type ClusterDrsFaults struct { - DynamicData - - Reason string `xml:"reason"` - FaultsByVm []BaseClusterDrsFaultsFaultsByVm `xml:"faultsByVm,typeattr"` -} - -func init() { - t["ClusterDrsFaults"] = reflect.TypeOf((*ClusterDrsFaults)(nil)).Elem() -} - -type ClusterDrsFaultsFaultsByVirtualDisk struct { - ClusterDrsFaultsFaultsByVm - - Disk *VirtualDiskId `xml:"disk,omitempty"` -} - -func init() { - t["ClusterDrsFaultsFaultsByVirtualDisk"] = reflect.TypeOf((*ClusterDrsFaultsFaultsByVirtualDisk)(nil)).Elem() -} - -type ClusterDrsFaultsFaultsByVm struct { - DynamicData - - Vm *ManagedObjectReference `xml:"vm,omitempty"` - Fault []LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["ClusterDrsFaultsFaultsByVm"] = reflect.TypeOf((*ClusterDrsFaultsFaultsByVm)(nil)).Elem() -} - -type ClusterDrsMigration struct { - DynamicData - - Key string `xml:"key"` - Time time.Time `xml:"time"` - Vm ManagedObjectReference `xml:"vm"` - CpuLoad int32 `xml:"cpuLoad,omitempty"` - MemoryLoad int64 `xml:"memoryLoad,omitempty"` - Source ManagedObjectReference `xml:"source"` - SourceCpuLoad int32 `xml:"sourceCpuLoad,omitempty"` - SourceMemoryLoad int64 `xml:"sourceMemoryLoad,omitempty"` - Destination ManagedObjectReference `xml:"destination"` - DestinationCpuLoad int32 `xml:"destinationCpuLoad,omitempty"` - DestinationMemoryLoad int64 `xml:"destinationMemoryLoad,omitempty"` -} - -func init() { - t["ClusterDrsMigration"] = reflect.TypeOf((*ClusterDrsMigration)(nil)).Elem() -} - -type ClusterDrsRecommendation struct { - DynamicData - - Key string `xml:"key"` - Rating int32 `xml:"rating"` - Reason string `xml:"reason"` - ReasonText string `xml:"reasonText"` - MigrationList []ClusterDrsMigration `xml:"migrationList"` -} - -func init() { - t["ClusterDrsRecommendation"] = reflect.TypeOf((*ClusterDrsRecommendation)(nil)).Elem() -} - -type ClusterDrsVmConfigInfo struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - Enabled *bool `xml:"enabled"` - Behavior DrsBehavior `xml:"behavior,omitempty"` -} - -func init() { - t["ClusterDrsVmConfigInfo"] = reflect.TypeOf((*ClusterDrsVmConfigInfo)(nil)).Elem() -} - -type ClusterDrsVmConfigSpec struct { - ArrayUpdateSpec - - Info *ClusterDrsVmConfigInfo `xml:"info,omitempty"` -} - -func init() { - t["ClusterDrsVmConfigSpec"] = reflect.TypeOf((*ClusterDrsVmConfigSpec)(nil)).Elem() -} - -type ClusterEVCManagerCheckResult struct { - DynamicData - - EvcModeKey string `xml:"evcModeKey"` - Error LocalizedMethodFault `xml:"error"` - Host []ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["ClusterEVCManagerCheckResult"] = reflect.TypeOf((*ClusterEVCManagerCheckResult)(nil)).Elem() -} - -type ClusterEVCManagerEVCState struct { - DynamicData - - SupportedEVCMode []EVCMode `xml:"supportedEVCMode"` - CurrentEVCModeKey string `xml:"currentEVCModeKey,omitempty"` - GuaranteedCPUFeatures []HostCpuIdInfo `xml:"guaranteedCPUFeatures,omitempty"` - FeatureCapability []HostFeatureCapability `xml:"featureCapability,omitempty"` - FeatureMask []HostFeatureMask `xml:"featureMask,omitempty"` - FeatureRequirement []VirtualMachineFeatureRequirement `xml:"featureRequirement,omitempty"` -} - -func init() { - t["ClusterEVCManagerEVCState"] = reflect.TypeOf((*ClusterEVCManagerEVCState)(nil)).Elem() -} - -type ClusterEnterMaintenanceMode ClusterEnterMaintenanceModeRequestType - -func init() { - t["ClusterEnterMaintenanceMode"] = reflect.TypeOf((*ClusterEnterMaintenanceMode)(nil)).Elem() -} - -type ClusterEnterMaintenanceModeRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host []ManagedObjectReference `xml:"host"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` -} - -func init() { - t["ClusterEnterMaintenanceModeRequestType"] = reflect.TypeOf((*ClusterEnterMaintenanceModeRequestType)(nil)).Elem() -} - -type ClusterEnterMaintenanceModeResponse struct { - Returnval ClusterEnterMaintenanceResult `xml:"returnval"` -} - -type ClusterEnterMaintenanceResult struct { - DynamicData - - Recommendations []ClusterRecommendation `xml:"recommendations,omitempty"` - Fault *ClusterDrsFaults `xml:"fault,omitempty"` -} - -func init() { - t["ClusterEnterMaintenanceResult"] = reflect.TypeOf((*ClusterEnterMaintenanceResult)(nil)).Elem() -} - -type ClusterEvent struct { - Event -} - -func init() { - t["ClusterEvent"] = reflect.TypeOf((*ClusterEvent)(nil)).Elem() -} - -type ClusterFailoverHostAdmissionControlInfo struct { - ClusterDasAdmissionControlInfo - - HostStatus []ClusterFailoverHostAdmissionControlInfoHostStatus `xml:"hostStatus,omitempty"` -} - -func init() { - t["ClusterFailoverHostAdmissionControlInfo"] = reflect.TypeOf((*ClusterFailoverHostAdmissionControlInfo)(nil)).Elem() -} - -type ClusterFailoverHostAdmissionControlInfoHostStatus struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Status ManagedEntityStatus `xml:"status"` -} - -func init() { - t["ClusterFailoverHostAdmissionControlInfoHostStatus"] = reflect.TypeOf((*ClusterFailoverHostAdmissionControlInfoHostStatus)(nil)).Elem() -} - -type ClusterFailoverHostAdmissionControlPolicy struct { - ClusterDasAdmissionControlPolicy - - FailoverHosts []ManagedObjectReference `xml:"failoverHosts,omitempty"` - FailoverLevel int32 `xml:"failoverLevel,omitempty"` -} - -func init() { - t["ClusterFailoverHostAdmissionControlPolicy"] = reflect.TypeOf((*ClusterFailoverHostAdmissionControlPolicy)(nil)).Elem() -} - -type ClusterFailoverLevelAdmissionControlInfo struct { - ClusterDasAdmissionControlInfo - - CurrentFailoverLevel int32 `xml:"currentFailoverLevel"` -} - -func init() { - t["ClusterFailoverLevelAdmissionControlInfo"] = reflect.TypeOf((*ClusterFailoverLevelAdmissionControlInfo)(nil)).Elem() -} - -type ClusterFailoverLevelAdmissionControlPolicy struct { - ClusterDasAdmissionControlPolicy - - FailoverLevel int32 `xml:"failoverLevel"` - SlotPolicy BaseClusterSlotPolicy `xml:"slotPolicy,omitempty,typeattr"` -} - -func init() { - t["ClusterFailoverLevelAdmissionControlPolicy"] = reflect.TypeOf((*ClusterFailoverLevelAdmissionControlPolicy)(nil)).Elem() -} - -type ClusterFailoverResourcesAdmissionControlInfo struct { - ClusterDasAdmissionControlInfo - - CurrentCpuFailoverResourcesPercent int32 `xml:"currentCpuFailoverResourcesPercent"` - CurrentMemoryFailoverResourcesPercent int32 `xml:"currentMemoryFailoverResourcesPercent"` -} - -func init() { - t["ClusterFailoverResourcesAdmissionControlInfo"] = reflect.TypeOf((*ClusterFailoverResourcesAdmissionControlInfo)(nil)).Elem() -} - -type ClusterFailoverResourcesAdmissionControlPolicy struct { - ClusterDasAdmissionControlPolicy - - CpuFailoverResourcesPercent int32 `xml:"cpuFailoverResourcesPercent"` - MemoryFailoverResourcesPercent int32 `xml:"memoryFailoverResourcesPercent"` - FailoverLevel int32 `xml:"failoverLevel,omitempty"` - AutoComputePercentages *bool `xml:"autoComputePercentages"` -} - -func init() { - t["ClusterFailoverResourcesAdmissionControlPolicy"] = reflect.TypeOf((*ClusterFailoverResourcesAdmissionControlPolicy)(nil)).Elem() -} - -type ClusterFixedSizeSlotPolicy struct { - ClusterSlotPolicy - - Cpu int32 `xml:"cpu"` - Memory int32 `xml:"memory"` -} - -func init() { - t["ClusterFixedSizeSlotPolicy"] = reflect.TypeOf((*ClusterFixedSizeSlotPolicy)(nil)).Elem() -} - -type ClusterGroupInfo struct { - DynamicData - - Name string `xml:"name"` - UserCreated *bool `xml:"userCreated"` - UniqueID string `xml:"uniqueID,omitempty"` -} - -func init() { - t["ClusterGroupInfo"] = reflect.TypeOf((*ClusterGroupInfo)(nil)).Elem() -} - -type ClusterGroupSpec struct { - ArrayUpdateSpec - - Info BaseClusterGroupInfo `xml:"info,omitempty,typeattr"` -} - -func init() { - t["ClusterGroupSpec"] = reflect.TypeOf((*ClusterGroupSpec)(nil)).Elem() -} - -type ClusterHostGroup struct { - ClusterGroupInfo - - Host []ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["ClusterHostGroup"] = reflect.TypeOf((*ClusterHostGroup)(nil)).Elem() -} - -type ClusterHostInfraUpdateHaModeAction struct { - ClusterAction - - OperationType string `xml:"operationType"` -} - -func init() { - t["ClusterHostInfraUpdateHaModeAction"] = reflect.TypeOf((*ClusterHostInfraUpdateHaModeAction)(nil)).Elem() -} - -type ClusterHostPowerAction struct { - ClusterAction - - OperationType HostPowerOperationType `xml:"operationType"` - PowerConsumptionWatt int32 `xml:"powerConsumptionWatt,omitempty"` - CpuCapacityMHz int32 `xml:"cpuCapacityMHz,omitempty"` - MemCapacityMB int32 `xml:"memCapacityMB,omitempty"` -} - -func init() { - t["ClusterHostPowerAction"] = reflect.TypeOf((*ClusterHostPowerAction)(nil)).Elem() -} - -type ClusterHostRecommendation struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Rating int32 `xml:"rating"` -} - -func init() { - t["ClusterHostRecommendation"] = reflect.TypeOf((*ClusterHostRecommendation)(nil)).Elem() -} - -type ClusterInfraUpdateHaConfigInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` - Behavior string `xml:"behavior,omitempty"` - ModerateRemediation string `xml:"moderateRemediation,omitempty"` - SevereRemediation string `xml:"severeRemediation,omitempty"` - Providers []string `xml:"providers,omitempty"` -} - -func init() { - t["ClusterInfraUpdateHaConfigInfo"] = reflect.TypeOf((*ClusterInfraUpdateHaConfigInfo)(nil)).Elem() -} - -type ClusterInitialPlacementAction struct { - ClusterAction - - TargetHost ManagedObjectReference `xml:"targetHost"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` -} - -func init() { - t["ClusterInitialPlacementAction"] = reflect.TypeOf((*ClusterInitialPlacementAction)(nil)).Elem() -} - -type ClusterIoFilterInfo struct { - IoFilterInfo - - OpType string `xml:"opType"` - VibUrl string `xml:"vibUrl,omitempty"` -} - -func init() { - t["ClusterIoFilterInfo"] = reflect.TypeOf((*ClusterIoFilterInfo)(nil)).Elem() -} - -type ClusterMigrationAction struct { - ClusterAction - - DrsMigration *ClusterDrsMigration `xml:"drsMigration,omitempty"` -} - -func init() { - t["ClusterMigrationAction"] = reflect.TypeOf((*ClusterMigrationAction)(nil)).Elem() -} - -type ClusterNetworkConfigSpec struct { - DynamicData - - NetworkPortGroup ManagedObjectReference `xml:"networkPortGroup"` - IpSettings CustomizationIPSettings `xml:"ipSettings"` -} - -func init() { - t["ClusterNetworkConfigSpec"] = reflect.TypeOf((*ClusterNetworkConfigSpec)(nil)).Elem() -} - -type ClusterNotAttemptedVmInfo struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["ClusterNotAttemptedVmInfo"] = reflect.TypeOf((*ClusterNotAttemptedVmInfo)(nil)).Elem() -} - -type ClusterOrchestrationInfo struct { - DynamicData - - DefaultVmReadiness *ClusterVmReadiness `xml:"defaultVmReadiness,omitempty"` -} - -func init() { - t["ClusterOrchestrationInfo"] = reflect.TypeOf((*ClusterOrchestrationInfo)(nil)).Elem() -} - -type ClusterOvercommittedEvent struct { - ClusterEvent -} - -func init() { - t["ClusterOvercommittedEvent"] = reflect.TypeOf((*ClusterOvercommittedEvent)(nil)).Elem() -} - -type ClusterPowerOnVmResult struct { - DynamicData - - Attempted []ClusterAttemptedVmInfo `xml:"attempted,omitempty"` - NotAttempted []ClusterNotAttemptedVmInfo `xml:"notAttempted,omitempty"` - Recommendations []ClusterRecommendation `xml:"recommendations,omitempty"` -} - -func init() { - t["ClusterPowerOnVmResult"] = reflect.TypeOf((*ClusterPowerOnVmResult)(nil)).Elem() -} - -type ClusterProactiveDrsConfigInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` -} - -func init() { - t["ClusterProactiveDrsConfigInfo"] = reflect.TypeOf((*ClusterProactiveDrsConfigInfo)(nil)).Elem() -} - -type ClusterProfileCompleteConfigSpec struct { - ClusterProfileConfigSpec - - ComplyProfile *ComplianceProfile `xml:"complyProfile,omitempty"` -} - -func init() { - t["ClusterProfileCompleteConfigSpec"] = reflect.TypeOf((*ClusterProfileCompleteConfigSpec)(nil)).Elem() -} - -type ClusterProfileConfigInfo struct { - ProfileConfigInfo - - ComplyProfile *ComplianceProfile `xml:"complyProfile,omitempty"` -} - -func init() { - t["ClusterProfileConfigInfo"] = reflect.TypeOf((*ClusterProfileConfigInfo)(nil)).Elem() -} - -type ClusterProfileConfigServiceCreateSpec struct { - ClusterProfileConfigSpec - - ServiceType []string `xml:"serviceType,omitempty"` -} - -func init() { - t["ClusterProfileConfigServiceCreateSpec"] = reflect.TypeOf((*ClusterProfileConfigServiceCreateSpec)(nil)).Elem() -} - -type ClusterProfileConfigSpec struct { - ClusterProfileCreateSpec -} - -func init() { - t["ClusterProfileConfigSpec"] = reflect.TypeOf((*ClusterProfileConfigSpec)(nil)).Elem() -} - -type ClusterProfileCreateSpec struct { - ProfileCreateSpec -} - -func init() { - t["ClusterProfileCreateSpec"] = reflect.TypeOf((*ClusterProfileCreateSpec)(nil)).Elem() -} - -type ClusterRecommendation struct { - DynamicData - - Key string `xml:"key"` - Type string `xml:"type"` - Time time.Time `xml:"time"` - Rating int32 `xml:"rating"` - Reason string `xml:"reason"` - ReasonText string `xml:"reasonText"` - WarningText string `xml:"warningText,omitempty"` - WarningDetails *LocalizableMessage `xml:"warningDetails,omitempty"` - Prerequisite []string `xml:"prerequisite,omitempty"` - Action []BaseClusterAction `xml:"action,omitempty,typeattr"` - Target *ManagedObjectReference `xml:"target,omitempty"` -} - -func init() { - t["ClusterRecommendation"] = reflect.TypeOf((*ClusterRecommendation)(nil)).Elem() -} - -type ClusterReconfiguredEvent struct { - ClusterEvent - - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["ClusterReconfiguredEvent"] = reflect.TypeOf((*ClusterReconfiguredEvent)(nil)).Elem() -} - -type ClusterResourceUsageSummary struct { - DynamicData - - CpuUsedMHz int32 `xml:"cpuUsedMHz"` - CpuCapacityMHz int32 `xml:"cpuCapacityMHz"` - MemUsedMB int32 `xml:"memUsedMB"` - MemCapacityMB int32 `xml:"memCapacityMB"` - StorageUsedMB int64 `xml:"storageUsedMB"` - StorageCapacityMB int64 `xml:"storageCapacityMB"` -} - -func init() { - t["ClusterResourceUsageSummary"] = reflect.TypeOf((*ClusterResourceUsageSummary)(nil)).Elem() -} - -type ClusterRuleInfo struct { - DynamicData - - Key int32 `xml:"key,omitempty"` - Status ManagedEntityStatus `xml:"status,omitempty"` - Enabled *bool `xml:"enabled"` - Name string `xml:"name,omitempty"` - Mandatory *bool `xml:"mandatory"` - UserCreated *bool `xml:"userCreated"` - InCompliance *bool `xml:"inCompliance"` - RuleUuid string `xml:"ruleUuid,omitempty"` -} - -func init() { - t["ClusterRuleInfo"] = reflect.TypeOf((*ClusterRuleInfo)(nil)).Elem() -} - -type ClusterRuleSpec struct { - ArrayUpdateSpec - - Info BaseClusterRuleInfo `xml:"info,omitempty,typeattr"` -} - -func init() { - t["ClusterRuleSpec"] = reflect.TypeOf((*ClusterRuleSpec)(nil)).Elem() -} - -type ClusterSlotPolicy struct { - DynamicData -} - -func init() { - t["ClusterSlotPolicy"] = reflect.TypeOf((*ClusterSlotPolicy)(nil)).Elem() -} - -type ClusterStatusChangedEvent struct { - ClusterEvent - - OldStatus string `xml:"oldStatus"` - NewStatus string `xml:"newStatus"` -} - -func init() { - t["ClusterStatusChangedEvent"] = reflect.TypeOf((*ClusterStatusChangedEvent)(nil)).Elem() -} - -type ClusterUsageSummary struct { - DynamicData - - TotalCpuCapacityMhz int32 `xml:"totalCpuCapacityMhz"` - TotalMemCapacityMB int32 `xml:"totalMemCapacityMB"` - CpuReservationMhz int32 `xml:"cpuReservationMhz"` - MemReservationMB int32 `xml:"memReservationMB"` - PoweredOffCpuReservationMhz int32 `xml:"poweredOffCpuReservationMhz,omitempty"` - PoweredOffMemReservationMB int32 `xml:"poweredOffMemReservationMB,omitempty"` - CpuDemandMhz int32 `xml:"cpuDemandMhz"` - MemDemandMB int32 `xml:"memDemandMB"` - StatsGenNumber int64 `xml:"statsGenNumber"` - CpuEntitledMhz int32 `xml:"cpuEntitledMhz"` - MemEntitledMB int32 `xml:"memEntitledMB"` - PoweredOffVmCount int32 `xml:"poweredOffVmCount"` - TotalVmCount int32 `xml:"totalVmCount"` -} - -func init() { - t["ClusterUsageSummary"] = reflect.TypeOf((*ClusterUsageSummary)(nil)).Elem() -} - -type ClusterVmComponentProtectionSettings struct { - DynamicData - - VmStorageProtectionForAPD string `xml:"vmStorageProtectionForAPD,omitempty"` - EnableAPDTimeoutForHosts *bool `xml:"enableAPDTimeoutForHosts"` - VmTerminateDelayForAPDSec int32 `xml:"vmTerminateDelayForAPDSec,omitempty"` - VmReactionOnAPDCleared string `xml:"vmReactionOnAPDCleared,omitempty"` - VmStorageProtectionForPDL string `xml:"vmStorageProtectionForPDL,omitempty"` -} - -func init() { - t["ClusterVmComponentProtectionSettings"] = reflect.TypeOf((*ClusterVmComponentProtectionSettings)(nil)).Elem() -} - -type ClusterVmGroup struct { - ClusterGroupInfo - - Vm []ManagedObjectReference `xml:"vm,omitempty"` -} - -func init() { - t["ClusterVmGroup"] = reflect.TypeOf((*ClusterVmGroup)(nil)).Elem() -} - -type ClusterVmHostRuleInfo struct { - ClusterRuleInfo - - VmGroupName string `xml:"vmGroupName,omitempty"` - AffineHostGroupName string `xml:"affineHostGroupName,omitempty"` - AntiAffineHostGroupName string `xml:"antiAffineHostGroupName,omitempty"` -} - -func init() { - t["ClusterVmHostRuleInfo"] = reflect.TypeOf((*ClusterVmHostRuleInfo)(nil)).Elem() -} - -type ClusterVmOrchestrationInfo struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - VmReadiness ClusterVmReadiness `xml:"vmReadiness"` -} - -func init() { - t["ClusterVmOrchestrationInfo"] = reflect.TypeOf((*ClusterVmOrchestrationInfo)(nil)).Elem() -} - -type ClusterVmOrchestrationSpec struct { - ArrayUpdateSpec - - Info *ClusterVmOrchestrationInfo `xml:"info,omitempty"` -} - -func init() { - t["ClusterVmOrchestrationSpec"] = reflect.TypeOf((*ClusterVmOrchestrationSpec)(nil)).Elem() -} - -type ClusterVmReadiness struct { - DynamicData - - ReadyCondition string `xml:"readyCondition,omitempty"` - PostReadyDelay int32 `xml:"postReadyDelay,omitempty"` -} - -func init() { - t["ClusterVmReadiness"] = reflect.TypeOf((*ClusterVmReadiness)(nil)).Elem() -} - -type ClusterVmToolsMonitoringSettings struct { - DynamicData - - Enabled *bool `xml:"enabled"` - VmMonitoring string `xml:"vmMonitoring,omitempty"` - ClusterSettings *bool `xml:"clusterSettings"` - FailureInterval int32 `xml:"failureInterval,omitempty"` - MinUpTime int32 `xml:"minUpTime,omitempty"` - MaxFailures int32 `xml:"maxFailures,omitempty"` - MaxFailureWindow int32 `xml:"maxFailureWindow,omitempty"` -} - -func init() { - t["ClusterVmToolsMonitoringSettings"] = reflect.TypeOf((*ClusterVmToolsMonitoringSettings)(nil)).Elem() -} - -type CollectorAddressUnset struct { - DvsFault -} - -func init() { - t["CollectorAddressUnset"] = reflect.TypeOf((*CollectorAddressUnset)(nil)).Elem() -} - -type CollectorAddressUnsetFault CollectorAddressUnset - -func init() { - t["CollectorAddressUnsetFault"] = reflect.TypeOf((*CollectorAddressUnsetFault)(nil)).Elem() -} - -type ComplianceFailure struct { - DynamicData - - FailureType string `xml:"failureType"` - Message LocalizableMessage `xml:"message"` - ExpressionName string `xml:"expressionName,omitempty"` - FailureValues []ComplianceFailureComplianceFailureValues `xml:"failureValues,omitempty"` -} - -func init() { - t["ComplianceFailure"] = reflect.TypeOf((*ComplianceFailure)(nil)).Elem() -} - -type ComplianceFailureComplianceFailureValues struct { - DynamicData - - ComparisonIdentifier string `xml:"comparisonIdentifier"` - ProfileInstance string `xml:"profileInstance,omitempty"` - HostValue AnyType `xml:"hostValue,omitempty,typeattr"` - ProfileValue AnyType `xml:"profileValue,omitempty,typeattr"` -} - -func init() { - t["ComplianceFailureComplianceFailureValues"] = reflect.TypeOf((*ComplianceFailureComplianceFailureValues)(nil)).Elem() -} - -type ComplianceLocator struct { - DynamicData - - ExpressionName string `xml:"expressionName"` - ApplyPath ProfilePropertyPath `xml:"applyPath"` -} - -func init() { - t["ComplianceLocator"] = reflect.TypeOf((*ComplianceLocator)(nil)).Elem() -} - -type ComplianceProfile struct { - DynamicData - - Expression []BaseProfileExpression `xml:"expression,typeattr"` - RootExpression string `xml:"rootExpression"` -} - -func init() { - t["ComplianceProfile"] = reflect.TypeOf((*ComplianceProfile)(nil)).Elem() -} - -type ComplianceResult struct { - DynamicData - - Profile *ManagedObjectReference `xml:"profile,omitempty"` - ComplianceStatus string `xml:"complianceStatus"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` - CheckTime *time.Time `xml:"checkTime"` - Failure []ComplianceFailure `xml:"failure,omitempty"` -} - -func init() { - t["ComplianceResult"] = reflect.TypeOf((*ComplianceResult)(nil)).Elem() -} - -type CompositePolicyOption struct { - PolicyOption - - Option []BasePolicyOption `xml:"option,omitempty,typeattr"` -} - -func init() { - t["CompositePolicyOption"] = reflect.TypeOf((*CompositePolicyOption)(nil)).Elem() -} - -type ComputeDiskPartitionInfo ComputeDiskPartitionInfoRequestType - -func init() { - t["ComputeDiskPartitionInfo"] = reflect.TypeOf((*ComputeDiskPartitionInfo)(nil)).Elem() -} - -type ComputeDiskPartitionInfoForResize ComputeDiskPartitionInfoForResizeRequestType - -func init() { - t["ComputeDiskPartitionInfoForResize"] = reflect.TypeOf((*ComputeDiskPartitionInfoForResize)(nil)).Elem() -} - -type ComputeDiskPartitionInfoForResizeRequestType struct { - This ManagedObjectReference `xml:"_this"` - Partition HostScsiDiskPartition `xml:"partition"` - BlockRange HostDiskPartitionBlockRange `xml:"blockRange"` - PartitionFormat string `xml:"partitionFormat,omitempty"` -} - -func init() { - t["ComputeDiskPartitionInfoForResizeRequestType"] = reflect.TypeOf((*ComputeDiskPartitionInfoForResizeRequestType)(nil)).Elem() -} - -type ComputeDiskPartitionInfoForResizeResponse struct { - Returnval HostDiskPartitionInfo `xml:"returnval"` -} - -type ComputeDiskPartitionInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` - DevicePath string `xml:"devicePath"` - Layout HostDiskPartitionLayout `xml:"layout"` - PartitionFormat string `xml:"partitionFormat,omitempty"` -} - -func init() { - t["ComputeDiskPartitionInfoRequestType"] = reflect.TypeOf((*ComputeDiskPartitionInfoRequestType)(nil)).Elem() -} - -type ComputeDiskPartitionInfoResponse struct { - Returnval HostDiskPartitionInfo `xml:"returnval"` -} - -type ComputeResourceConfigInfo struct { - DynamicData - - VmSwapPlacement string `xml:"vmSwapPlacement"` - SpbmEnabled *bool `xml:"spbmEnabled"` - DefaultHardwareVersionKey string `xml:"defaultHardwareVersionKey,omitempty"` -} - -func init() { - t["ComputeResourceConfigInfo"] = reflect.TypeOf((*ComputeResourceConfigInfo)(nil)).Elem() -} - -type ComputeResourceConfigSpec struct { - DynamicData - - VmSwapPlacement string `xml:"vmSwapPlacement,omitempty"` - SpbmEnabled *bool `xml:"spbmEnabled"` - DefaultHardwareVersionKey string `xml:"defaultHardwareVersionKey,omitempty"` -} - -func init() { - t["ComputeResourceConfigSpec"] = reflect.TypeOf((*ComputeResourceConfigSpec)(nil)).Elem() -} - -type ComputeResourceEventArgument struct { - EntityEventArgument - - ComputeResource ManagedObjectReference `xml:"computeResource"` -} - -func init() { - t["ComputeResourceEventArgument"] = reflect.TypeOf((*ComputeResourceEventArgument)(nil)).Elem() -} - -type ComputeResourceHostSPBMLicenseInfo struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - LicenseState ComputeResourceHostSPBMLicenseInfoHostSPBMLicenseState `xml:"licenseState"` -} - -func init() { - t["ComputeResourceHostSPBMLicenseInfo"] = reflect.TypeOf((*ComputeResourceHostSPBMLicenseInfo)(nil)).Elem() -} - -type ComputeResourceSummary struct { - DynamicData - - TotalCpu int32 `xml:"totalCpu"` - TotalMemory int64 `xml:"totalMemory"` - NumCpuCores int16 `xml:"numCpuCores"` - NumCpuThreads int16 `xml:"numCpuThreads"` - EffectiveCpu int32 `xml:"effectiveCpu"` - EffectiveMemory int64 `xml:"effectiveMemory"` - NumHosts int32 `xml:"numHosts"` - NumEffectiveHosts int32 `xml:"numEffectiveHosts"` - OverallStatus ManagedEntityStatus `xml:"overallStatus"` -} - -func init() { - t["ComputeResourceSummary"] = reflect.TypeOf((*ComputeResourceSummary)(nil)).Elem() -} - -type ConcurrentAccess struct { - VimFault -} - -func init() { - t["ConcurrentAccess"] = reflect.TypeOf((*ConcurrentAccess)(nil)).Elem() -} - -type ConcurrentAccessFault ConcurrentAccess - -func init() { - t["ConcurrentAccessFault"] = reflect.TypeOf((*ConcurrentAccessFault)(nil)).Elem() -} - -type ConfigTarget struct { - DynamicData - - NumCpus int32 `xml:"numCpus"` - NumCpuCores int32 `xml:"numCpuCores"` - NumNumaNodes int32 `xml:"numNumaNodes"` - SmcPresent *bool `xml:"smcPresent"` - Datastore []VirtualMachineDatastoreInfo `xml:"datastore,omitempty"` - Network []VirtualMachineNetworkInfo `xml:"network,omitempty"` - OpaqueNetwork []OpaqueNetworkTargetInfo `xml:"opaqueNetwork,omitempty"` - DistributedVirtualPortgroup []DistributedVirtualPortgroupInfo `xml:"distributedVirtualPortgroup,omitempty"` - DistributedVirtualSwitch []DistributedVirtualSwitchInfo `xml:"distributedVirtualSwitch,omitempty"` - CdRom []VirtualMachineCdromInfo `xml:"cdRom,omitempty"` - Serial []VirtualMachineSerialInfo `xml:"serial,omitempty"` - Parallel []VirtualMachineParallelInfo `xml:"parallel,omitempty"` - Sound []VirtualMachineSoundInfo `xml:"sound,omitempty"` - Usb []VirtualMachineUsbInfo `xml:"usb,omitempty"` - Floppy []VirtualMachineFloppyInfo `xml:"floppy,omitempty"` - LegacyNetworkInfo []VirtualMachineLegacyNetworkSwitchInfo `xml:"legacyNetworkInfo,omitempty"` - ScsiPassthrough []VirtualMachineScsiPassthroughInfo `xml:"scsiPassthrough,omitempty"` - ScsiDisk []VirtualMachineScsiDiskDeviceInfo `xml:"scsiDisk,omitempty"` - IdeDisk []VirtualMachineIdeDiskDeviceInfo `xml:"ideDisk,omitempty"` - MaxMemMBOptimalPerf int32 `xml:"maxMemMBOptimalPerf"` - ResourcePool *ResourcePoolRuntimeInfo `xml:"resourcePool,omitempty"` - AutoVmotion *bool `xml:"autoVmotion"` - PciPassthrough []BaseVirtualMachinePciPassthroughInfo `xml:"pciPassthrough,omitempty,typeattr"` - Sriov []VirtualMachineSriovInfo `xml:"sriov,omitempty"` - VFlashModule []VirtualMachineVFlashModuleInfo `xml:"vFlashModule,omitempty"` - SharedGpuPassthroughTypes []VirtualMachinePciSharedGpuPassthroughInfo `xml:"sharedGpuPassthroughTypes,omitempty"` -} - -func init() { - t["ConfigTarget"] = reflect.TypeOf((*ConfigTarget)(nil)).Elem() -} - -type ConfigureCryptoKey ConfigureCryptoKeyRequestType - -func init() { - t["ConfigureCryptoKey"] = reflect.TypeOf((*ConfigureCryptoKey)(nil)).Elem() -} - -type ConfigureCryptoKeyRequestType struct { - This ManagedObjectReference `xml:"_this"` - KeyId *CryptoKeyId `xml:"keyId,omitempty"` -} - -func init() { - t["ConfigureCryptoKeyRequestType"] = reflect.TypeOf((*ConfigureCryptoKeyRequestType)(nil)).Elem() -} - -type ConfigureCryptoKeyResponse struct { -} - -type ConfigureDatastoreIORMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` - Spec StorageIORMConfigSpec `xml:"spec"` -} - -func init() { - t["ConfigureDatastoreIORMRequestType"] = reflect.TypeOf((*ConfigureDatastoreIORMRequestType)(nil)).Elem() -} - -type ConfigureDatastoreIORM_Task ConfigureDatastoreIORMRequestType - -func init() { - t["ConfigureDatastoreIORM_Task"] = reflect.TypeOf((*ConfigureDatastoreIORM_Task)(nil)).Elem() -} - -type ConfigureDatastoreIORM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ConfigureDatastorePrincipal ConfigureDatastorePrincipalRequestType - -func init() { - t["ConfigureDatastorePrincipal"] = reflect.TypeOf((*ConfigureDatastorePrincipal)(nil)).Elem() -} - -type ConfigureDatastorePrincipalRequestType struct { - This ManagedObjectReference `xml:"_this"` - UserName string `xml:"userName"` - Password string `xml:"password,omitempty"` -} - -func init() { - t["ConfigureDatastorePrincipalRequestType"] = reflect.TypeOf((*ConfigureDatastorePrincipalRequestType)(nil)).Elem() -} - -type ConfigureDatastorePrincipalResponse struct { -} - -type ConfigureEvcModeRequestType struct { - This ManagedObjectReference `xml:"_this"` - EvcModeKey string `xml:"evcModeKey"` -} - -func init() { - t["ConfigureEvcModeRequestType"] = reflect.TypeOf((*ConfigureEvcModeRequestType)(nil)).Elem() -} - -type ConfigureEvcMode_Task ConfigureEvcModeRequestType - -func init() { - t["ConfigureEvcMode_Task"] = reflect.TypeOf((*ConfigureEvcMode_Task)(nil)).Elem() -} - -type ConfigureEvcMode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ConfigureHostCacheRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostCacheConfigurationSpec `xml:"spec"` -} - -func init() { - t["ConfigureHostCacheRequestType"] = reflect.TypeOf((*ConfigureHostCacheRequestType)(nil)).Elem() -} - -type ConfigureHostCache_Task ConfigureHostCacheRequestType - -func init() { - t["ConfigureHostCache_Task"] = reflect.TypeOf((*ConfigureHostCache_Task)(nil)).Elem() -} - -type ConfigureHostCache_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ConfigureLicenseSource ConfigureLicenseSourceRequestType - -func init() { - t["ConfigureLicenseSource"] = reflect.TypeOf((*ConfigureLicenseSource)(nil)).Elem() -} - -type ConfigureLicenseSourceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - LicenseSource BaseLicenseSource `xml:"licenseSource,typeattr"` -} - -func init() { - t["ConfigureLicenseSourceRequestType"] = reflect.TypeOf((*ConfigureLicenseSourceRequestType)(nil)).Elem() -} - -type ConfigureLicenseSourceResponse struct { -} - -type ConfigurePowerPolicy ConfigurePowerPolicyRequestType - -func init() { - t["ConfigurePowerPolicy"] = reflect.TypeOf((*ConfigurePowerPolicy)(nil)).Elem() -} - -type ConfigurePowerPolicyRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key int32 `xml:"key"` -} - -func init() { - t["ConfigurePowerPolicyRequestType"] = reflect.TypeOf((*ConfigurePowerPolicyRequestType)(nil)).Elem() -} - -type ConfigurePowerPolicyResponse struct { -} - -type ConfigureStorageDrsForPodRequestType struct { - This ManagedObjectReference `xml:"_this"` - Pod ManagedObjectReference `xml:"pod"` - Spec StorageDrsConfigSpec `xml:"spec"` - Modify bool `xml:"modify"` -} - -func init() { - t["ConfigureStorageDrsForPodRequestType"] = reflect.TypeOf((*ConfigureStorageDrsForPodRequestType)(nil)).Elem() -} - -type ConfigureStorageDrsForPod_Task ConfigureStorageDrsForPodRequestType - -func init() { - t["ConfigureStorageDrsForPod_Task"] = reflect.TypeOf((*ConfigureStorageDrsForPod_Task)(nil)).Elem() -} - -type ConfigureStorageDrsForPod_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ConfigureVFlashResourceExRequestType struct { - This ManagedObjectReference `xml:"_this"` - DevicePath []string `xml:"devicePath,omitempty"` -} - -func init() { - t["ConfigureVFlashResourceExRequestType"] = reflect.TypeOf((*ConfigureVFlashResourceExRequestType)(nil)).Elem() -} - -type ConfigureVFlashResourceEx_Task ConfigureVFlashResourceExRequestType - -func init() { - t["ConfigureVFlashResourceEx_Task"] = reflect.TypeOf((*ConfigureVFlashResourceEx_Task)(nil)).Elem() -} - -type ConfigureVFlashResourceEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ConflictingConfiguration struct { - DvsFault - - ConfigInConflict []ConflictingConfigurationConfig `xml:"configInConflict"` -} - -func init() { - t["ConflictingConfiguration"] = reflect.TypeOf((*ConflictingConfiguration)(nil)).Elem() -} - -type ConflictingConfigurationConfig struct { - DynamicData - - Entity *ManagedObjectReference `xml:"entity,omitempty"` - PropertyPath string `xml:"propertyPath"` -} - -func init() { - t["ConflictingConfigurationConfig"] = reflect.TypeOf((*ConflictingConfigurationConfig)(nil)).Elem() -} - -type ConflictingConfigurationFault ConflictingConfiguration - -func init() { - t["ConflictingConfigurationFault"] = reflect.TypeOf((*ConflictingConfigurationFault)(nil)).Elem() -} - -type ConflictingDatastoreFound struct { - RuntimeFault - - Name string `xml:"name"` - Url string `xml:"url"` -} - -func init() { - t["ConflictingDatastoreFound"] = reflect.TypeOf((*ConflictingDatastoreFound)(nil)).Elem() -} - -type ConflictingDatastoreFoundFault ConflictingDatastoreFound - -func init() { - t["ConflictingDatastoreFoundFault"] = reflect.TypeOf((*ConflictingDatastoreFoundFault)(nil)).Elem() -} - -type ConnectedIso struct { - OvfExport - - Cdrom VirtualCdrom `xml:"cdrom"` - Filename string `xml:"filename"` -} - -func init() { - t["ConnectedIso"] = reflect.TypeOf((*ConnectedIso)(nil)).Elem() -} - -type ConnectedIsoFault ConnectedIso - -func init() { - t["ConnectedIsoFault"] = reflect.TypeOf((*ConnectedIsoFault)(nil)).Elem() -} - -type ConsolidateVMDisksRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ConsolidateVMDisksRequestType"] = reflect.TypeOf((*ConsolidateVMDisksRequestType)(nil)).Elem() -} - -type ConsolidateVMDisks_Task ConsolidateVMDisksRequestType - -func init() { - t["ConsolidateVMDisks_Task"] = reflect.TypeOf((*ConsolidateVMDisks_Task)(nil)).Elem() -} - -type ConsolidateVMDisks_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ContinueRetrievePropertiesEx ContinueRetrievePropertiesExRequestType - -func init() { - t["ContinueRetrievePropertiesEx"] = reflect.TypeOf((*ContinueRetrievePropertiesEx)(nil)).Elem() -} - -type ContinueRetrievePropertiesExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Token string `xml:"token"` -} - -func init() { - t["ContinueRetrievePropertiesExRequestType"] = reflect.TypeOf((*ContinueRetrievePropertiesExRequestType)(nil)).Elem() -} - -type ContinueRetrievePropertiesExResponse struct { - Returnval RetrieveResult `xml:"returnval"` -} - -type ConvertNamespacePathToUuidPath ConvertNamespacePathToUuidPathRequestType - -func init() { - t["ConvertNamespacePathToUuidPath"] = reflect.TypeOf((*ConvertNamespacePathToUuidPath)(nil)).Elem() -} - -type ConvertNamespacePathToUuidPathRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - NamespaceUrl string `xml:"namespaceUrl"` -} - -func init() { - t["ConvertNamespacePathToUuidPathRequestType"] = reflect.TypeOf((*ConvertNamespacePathToUuidPathRequestType)(nil)).Elem() -} - -type ConvertNamespacePathToUuidPathResponse struct { - Returnval string `xml:"returnval"` -} - -type CopyDatastoreFileRequestType struct { - This ManagedObjectReference `xml:"_this"` - SourceName string `xml:"sourceName"` - SourceDatacenter *ManagedObjectReference `xml:"sourceDatacenter,omitempty"` - DestinationName string `xml:"destinationName"` - DestinationDatacenter *ManagedObjectReference `xml:"destinationDatacenter,omitempty"` - Force *bool `xml:"force"` -} - -func init() { - t["CopyDatastoreFileRequestType"] = reflect.TypeOf((*CopyDatastoreFileRequestType)(nil)).Elem() -} - -type CopyDatastoreFile_Task CopyDatastoreFileRequestType - -func init() { - t["CopyDatastoreFile_Task"] = reflect.TypeOf((*CopyDatastoreFile_Task)(nil)).Elem() -} - -type CopyDatastoreFile_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CopyVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - SourceName string `xml:"sourceName"` - SourceDatacenter *ManagedObjectReference `xml:"sourceDatacenter,omitempty"` - DestName string `xml:"destName"` - DestDatacenter *ManagedObjectReference `xml:"destDatacenter,omitempty"` - DestSpec BaseVirtualDiskSpec `xml:"destSpec,omitempty,typeattr"` - Force *bool `xml:"force"` -} - -func init() { - t["CopyVirtualDiskRequestType"] = reflect.TypeOf((*CopyVirtualDiskRequestType)(nil)).Elem() -} - -type CopyVirtualDisk_Task CopyVirtualDiskRequestType - -func init() { - t["CopyVirtualDisk_Task"] = reflect.TypeOf((*CopyVirtualDisk_Task)(nil)).Elem() -} - -type CopyVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CpuCompatibilityUnknown struct { - CpuIncompatible -} - -func init() { - t["CpuCompatibilityUnknown"] = reflect.TypeOf((*CpuCompatibilityUnknown)(nil)).Elem() -} - -type CpuCompatibilityUnknownFault CpuCompatibilityUnknown - -func init() { - t["CpuCompatibilityUnknownFault"] = reflect.TypeOf((*CpuCompatibilityUnknownFault)(nil)).Elem() -} - -type CpuHotPlugNotSupported struct { - VmConfigFault -} - -func init() { - t["CpuHotPlugNotSupported"] = reflect.TypeOf((*CpuHotPlugNotSupported)(nil)).Elem() -} - -type CpuHotPlugNotSupportedFault CpuHotPlugNotSupported - -func init() { - t["CpuHotPlugNotSupportedFault"] = reflect.TypeOf((*CpuHotPlugNotSupportedFault)(nil)).Elem() -} - -type CpuIncompatible struct { - VirtualHardwareCompatibilityIssue - - Level int32 `xml:"level"` - RegisterName string `xml:"registerName"` - RegisterBits string `xml:"registerBits,omitempty"` - DesiredBits string `xml:"desiredBits,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["CpuIncompatible"] = reflect.TypeOf((*CpuIncompatible)(nil)).Elem() -} - -type CpuIncompatible1ECX struct { - CpuIncompatible - - Sse3 bool `xml:"sse3"` - Pclmulqdq *bool `xml:"pclmulqdq"` - Ssse3 bool `xml:"ssse3"` - Sse41 bool `xml:"sse41"` - Sse42 bool `xml:"sse42"` - Aes *bool `xml:"aes"` - Other bool `xml:"other"` - OtherOnly bool `xml:"otherOnly"` -} - -func init() { - t["CpuIncompatible1ECX"] = reflect.TypeOf((*CpuIncompatible1ECX)(nil)).Elem() -} - -type CpuIncompatible1ECXFault CpuIncompatible1ECX - -func init() { - t["CpuIncompatible1ECXFault"] = reflect.TypeOf((*CpuIncompatible1ECXFault)(nil)).Elem() -} - -type CpuIncompatible81EDX struct { - CpuIncompatible - - Nx bool `xml:"nx"` - Ffxsr bool `xml:"ffxsr"` - Rdtscp bool `xml:"rdtscp"` - Lm bool `xml:"lm"` - Other bool `xml:"other"` - OtherOnly bool `xml:"otherOnly"` -} - -func init() { - t["CpuIncompatible81EDX"] = reflect.TypeOf((*CpuIncompatible81EDX)(nil)).Elem() -} - -type CpuIncompatible81EDXFault CpuIncompatible81EDX - -func init() { - t["CpuIncompatible81EDXFault"] = reflect.TypeOf((*CpuIncompatible81EDXFault)(nil)).Elem() -} - -type CpuIncompatibleFault BaseCpuIncompatible - -func init() { - t["CpuIncompatibleFault"] = reflect.TypeOf((*CpuIncompatibleFault)(nil)).Elem() -} - -type CreateAlarm CreateAlarmRequestType - -func init() { - t["CreateAlarm"] = reflect.TypeOf((*CreateAlarm)(nil)).Elem() -} - -type CreateAlarmRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Spec BaseAlarmSpec `xml:"spec,typeattr"` -} - -func init() { - t["CreateAlarmRequestType"] = reflect.TypeOf((*CreateAlarmRequestType)(nil)).Elem() -} - -type CreateAlarmResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateChildVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config VirtualMachineConfigSpec `xml:"config"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["CreateChildVMRequestType"] = reflect.TypeOf((*CreateChildVMRequestType)(nil)).Elem() -} - -type CreateChildVM_Task CreateChildVMRequestType - -func init() { - t["CreateChildVM_Task"] = reflect.TypeOf((*CreateChildVM_Task)(nil)).Elem() -} - -type CreateChildVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateCluster CreateClusterRequestType - -func init() { - t["CreateCluster"] = reflect.TypeOf((*CreateCluster)(nil)).Elem() -} - -type CreateClusterEx CreateClusterExRequestType - -func init() { - t["CreateClusterEx"] = reflect.TypeOf((*CreateClusterEx)(nil)).Elem() -} - -type CreateClusterExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Spec ClusterConfigSpecEx `xml:"spec"` -} - -func init() { - t["CreateClusterExRequestType"] = reflect.TypeOf((*CreateClusterExRequestType)(nil)).Elem() -} - -type CreateClusterExResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateClusterRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Spec ClusterConfigSpec `xml:"spec"` -} - -func init() { - t["CreateClusterRequestType"] = reflect.TypeOf((*CreateClusterRequestType)(nil)).Elem() -} - -type CreateClusterResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateCollectorForEvents CreateCollectorForEventsRequestType - -func init() { - t["CreateCollectorForEvents"] = reflect.TypeOf((*CreateCollectorForEvents)(nil)).Elem() -} - -type CreateCollectorForEventsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Filter EventFilterSpec `xml:"filter"` -} - -func init() { - t["CreateCollectorForEventsRequestType"] = reflect.TypeOf((*CreateCollectorForEventsRequestType)(nil)).Elem() -} - -type CreateCollectorForEventsResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateCollectorForTasks CreateCollectorForTasksRequestType - -func init() { - t["CreateCollectorForTasks"] = reflect.TypeOf((*CreateCollectorForTasks)(nil)).Elem() -} - -type CreateCollectorForTasksRequestType struct { - This ManagedObjectReference `xml:"_this"` - Filter TaskFilterSpec `xml:"filter"` -} - -func init() { - t["CreateCollectorForTasksRequestType"] = reflect.TypeOf((*CreateCollectorForTasksRequestType)(nil)).Elem() -} - -type CreateCollectorForTasksResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateContainerView CreateContainerViewRequestType - -func init() { - t["CreateContainerView"] = reflect.TypeOf((*CreateContainerView)(nil)).Elem() -} - -type CreateContainerViewRequestType struct { - This ManagedObjectReference `xml:"_this"` - Container ManagedObjectReference `xml:"container"` - Type []string `xml:"type,omitempty"` - Recursive bool `xml:"recursive"` -} - -func init() { - t["CreateContainerViewRequestType"] = reflect.TypeOf((*CreateContainerViewRequestType)(nil)).Elem() -} - -type CreateContainerViewResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateCustomizationSpec CreateCustomizationSpecRequestType - -func init() { - t["CreateCustomizationSpec"] = reflect.TypeOf((*CreateCustomizationSpec)(nil)).Elem() -} - -type CreateCustomizationSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Item CustomizationSpecItem `xml:"item"` -} - -func init() { - t["CreateCustomizationSpecRequestType"] = reflect.TypeOf((*CreateCustomizationSpecRequestType)(nil)).Elem() -} - -type CreateCustomizationSpecResponse struct { -} - -type CreateDVPortgroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec DVPortgroupConfigSpec `xml:"spec"` -} - -func init() { - t["CreateDVPortgroupRequestType"] = reflect.TypeOf((*CreateDVPortgroupRequestType)(nil)).Elem() -} - -type CreateDVPortgroup_Task CreateDVPortgroupRequestType - -func init() { - t["CreateDVPortgroup_Task"] = reflect.TypeOf((*CreateDVPortgroup_Task)(nil)).Elem() -} - -type CreateDVPortgroup_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateDVSRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec DVSCreateSpec `xml:"spec"` -} - -func init() { - t["CreateDVSRequestType"] = reflect.TypeOf((*CreateDVSRequestType)(nil)).Elem() -} - -type CreateDVS_Task CreateDVSRequestType - -func init() { - t["CreateDVS_Task"] = reflect.TypeOf((*CreateDVS_Task)(nil)).Elem() -} - -type CreateDVS_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateDatacenter CreateDatacenterRequestType - -func init() { - t["CreateDatacenter"] = reflect.TypeOf((*CreateDatacenter)(nil)).Elem() -} - -type CreateDatacenterRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` -} - -func init() { - t["CreateDatacenterRequestType"] = reflect.TypeOf((*CreateDatacenterRequestType)(nil)).Elem() -} - -type CreateDatacenterResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateDefaultProfile CreateDefaultProfileRequestType - -func init() { - t["CreateDefaultProfile"] = reflect.TypeOf((*CreateDefaultProfile)(nil)).Elem() -} - -type CreateDefaultProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProfileType string `xml:"profileType"` - ProfileTypeName string `xml:"profileTypeName,omitempty"` - Profile *ManagedObjectReference `xml:"profile,omitempty"` -} - -func init() { - t["CreateDefaultProfileRequestType"] = reflect.TypeOf((*CreateDefaultProfileRequestType)(nil)).Elem() -} - -type CreateDefaultProfileResponse struct { - Returnval BaseApplyProfile `xml:"returnval,typeattr"` -} - -type CreateDescriptor CreateDescriptorRequestType - -func init() { - t["CreateDescriptor"] = reflect.TypeOf((*CreateDescriptor)(nil)).Elem() -} - -type CreateDescriptorRequestType struct { - This ManagedObjectReference `xml:"_this"` - Obj ManagedObjectReference `xml:"obj"` - Cdp OvfCreateDescriptorParams `xml:"cdp"` -} - -func init() { - t["CreateDescriptorRequestType"] = reflect.TypeOf((*CreateDescriptorRequestType)(nil)).Elem() -} - -type CreateDescriptorResponse struct { - Returnval OvfCreateDescriptorResult `xml:"returnval"` -} - -type CreateDiagnosticPartition CreateDiagnosticPartitionRequestType - -func init() { - t["CreateDiagnosticPartition"] = reflect.TypeOf((*CreateDiagnosticPartition)(nil)).Elem() -} - -type CreateDiagnosticPartitionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostDiagnosticPartitionCreateSpec `xml:"spec"` -} - -func init() { - t["CreateDiagnosticPartitionRequestType"] = reflect.TypeOf((*CreateDiagnosticPartitionRequestType)(nil)).Elem() -} - -type CreateDiagnosticPartitionResponse struct { -} - -type CreateDirectory CreateDirectoryRequestType - -func init() { - t["CreateDirectory"] = reflect.TypeOf((*CreateDirectory)(nil)).Elem() -} - -type CreateDirectoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` - DisplayName string `xml:"displayName,omitempty"` - Policy string `xml:"policy,omitempty"` -} - -func init() { - t["CreateDirectoryRequestType"] = reflect.TypeOf((*CreateDirectoryRequestType)(nil)).Elem() -} - -type CreateDirectoryResponse struct { - Returnval string `xml:"returnval"` -} - -type CreateDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec VslmCreateSpec `xml:"spec"` -} - -func init() { - t["CreateDiskRequestType"] = reflect.TypeOf((*CreateDiskRequestType)(nil)).Elem() -} - -type CreateDisk_Task CreateDiskRequestType - -func init() { - t["CreateDisk_Task"] = reflect.TypeOf((*CreateDisk_Task)(nil)).Elem() -} - -type CreateDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateFilter CreateFilterRequestType - -func init() { - t["CreateFilter"] = reflect.TypeOf((*CreateFilter)(nil)).Elem() -} - -type CreateFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec PropertyFilterSpec `xml:"spec"` - PartialUpdates bool `xml:"partialUpdates"` -} - -func init() { - t["CreateFilterRequestType"] = reflect.TypeOf((*CreateFilterRequestType)(nil)).Elem() -} - -type CreateFilterResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateFolder CreateFolderRequestType - -func init() { - t["CreateFolder"] = reflect.TypeOf((*CreateFolder)(nil)).Elem() -} - -type CreateFolderRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` -} - -func init() { - t["CreateFolderRequestType"] = reflect.TypeOf((*CreateFolderRequestType)(nil)).Elem() -} - -type CreateFolderResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateGroup CreateGroupRequestType - -func init() { - t["CreateGroup"] = reflect.TypeOf((*CreateGroup)(nil)).Elem() -} - -type CreateGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - Group BaseHostAccountSpec `xml:"group,typeattr"` -} - -func init() { - t["CreateGroupRequestType"] = reflect.TypeOf((*CreateGroupRequestType)(nil)).Elem() -} - -type CreateGroupResponse struct { -} - -type CreateImportSpec CreateImportSpecRequestType - -func init() { - t["CreateImportSpec"] = reflect.TypeOf((*CreateImportSpec)(nil)).Elem() -} - -type CreateImportSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - OvfDescriptor string `xml:"ovfDescriptor"` - ResourcePool ManagedObjectReference `xml:"resourcePool"` - Datastore ManagedObjectReference `xml:"datastore"` - Cisp OvfCreateImportSpecParams `xml:"cisp"` -} - -func init() { - t["CreateImportSpecRequestType"] = reflect.TypeOf((*CreateImportSpecRequestType)(nil)).Elem() -} - -type CreateImportSpecResponse struct { - Returnval OvfCreateImportSpecResult `xml:"returnval"` -} - -type CreateInventoryView CreateInventoryViewRequestType - -func init() { - t["CreateInventoryView"] = reflect.TypeOf((*CreateInventoryView)(nil)).Elem() -} - -type CreateInventoryViewRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["CreateInventoryViewRequestType"] = reflect.TypeOf((*CreateInventoryViewRequestType)(nil)).Elem() -} - -type CreateInventoryViewResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateIpPool CreateIpPoolRequestType - -func init() { - t["CreateIpPool"] = reflect.TypeOf((*CreateIpPool)(nil)).Elem() -} - -type CreateIpPoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` - Pool IpPool `xml:"pool"` -} - -func init() { - t["CreateIpPoolRequestType"] = reflect.TypeOf((*CreateIpPoolRequestType)(nil)).Elem() -} - -type CreateIpPoolResponse struct { - Returnval int32 `xml:"returnval"` -} - -type CreateListView CreateListViewRequestType - -func init() { - t["CreateListView"] = reflect.TypeOf((*CreateListView)(nil)).Elem() -} - -type CreateListViewFromView CreateListViewFromViewRequestType - -func init() { - t["CreateListViewFromView"] = reflect.TypeOf((*CreateListViewFromView)(nil)).Elem() -} - -type CreateListViewFromViewRequestType struct { - This ManagedObjectReference `xml:"_this"` - View ManagedObjectReference `xml:"view"` -} - -func init() { - t["CreateListViewFromViewRequestType"] = reflect.TypeOf((*CreateListViewFromViewRequestType)(nil)).Elem() -} - -type CreateListViewFromViewResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateListViewRequestType struct { - This ManagedObjectReference `xml:"_this"` - Obj []ManagedObjectReference `xml:"obj,omitempty"` -} - -func init() { - t["CreateListViewRequestType"] = reflect.TypeOf((*CreateListViewRequestType)(nil)).Elem() -} - -type CreateListViewResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateLocalDatastore CreateLocalDatastoreRequestType - -func init() { - t["CreateLocalDatastore"] = reflect.TypeOf((*CreateLocalDatastore)(nil)).Elem() -} - -type CreateLocalDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Path string `xml:"path"` -} - -func init() { - t["CreateLocalDatastoreRequestType"] = reflect.TypeOf((*CreateLocalDatastoreRequestType)(nil)).Elem() -} - -type CreateLocalDatastoreResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateNasDatastore CreateNasDatastoreRequestType - -func init() { - t["CreateNasDatastore"] = reflect.TypeOf((*CreateNasDatastore)(nil)).Elem() -} - -type CreateNasDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostNasVolumeSpec `xml:"spec"` -} - -func init() { - t["CreateNasDatastoreRequestType"] = reflect.TypeOf((*CreateNasDatastoreRequestType)(nil)).Elem() -} - -type CreateNasDatastoreResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateObjectScheduledTask CreateObjectScheduledTaskRequestType - -func init() { - t["CreateObjectScheduledTask"] = reflect.TypeOf((*CreateObjectScheduledTask)(nil)).Elem() -} - -type CreateObjectScheduledTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Obj ManagedObjectReference `xml:"obj"` - Spec BaseScheduledTaskSpec `xml:"spec,typeattr"` -} - -func init() { - t["CreateObjectScheduledTaskRequestType"] = reflect.TypeOf((*CreateObjectScheduledTaskRequestType)(nil)).Elem() -} - -type CreateObjectScheduledTaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreatePerfInterval CreatePerfIntervalRequestType - -func init() { - t["CreatePerfInterval"] = reflect.TypeOf((*CreatePerfInterval)(nil)).Elem() -} - -type CreatePerfIntervalRequestType struct { - This ManagedObjectReference `xml:"_this"` - IntervalId PerfInterval `xml:"intervalId"` -} - -func init() { - t["CreatePerfIntervalRequestType"] = reflect.TypeOf((*CreatePerfIntervalRequestType)(nil)).Elem() -} - -type CreatePerfIntervalResponse struct { -} - -type CreateProfile CreateProfileRequestType - -func init() { - t["CreateProfile"] = reflect.TypeOf((*CreateProfile)(nil)).Elem() -} - -type CreateProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - CreateSpec BaseProfileCreateSpec `xml:"createSpec,typeattr"` -} - -func init() { - t["CreateProfileRequestType"] = reflect.TypeOf((*CreateProfileRequestType)(nil)).Elem() -} - -type CreateProfileResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreatePropertyCollector CreatePropertyCollectorRequestType - -func init() { - t["CreatePropertyCollector"] = reflect.TypeOf((*CreatePropertyCollector)(nil)).Elem() -} - -type CreatePropertyCollectorRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["CreatePropertyCollectorRequestType"] = reflect.TypeOf((*CreatePropertyCollectorRequestType)(nil)).Elem() -} - -type CreatePropertyCollectorResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateRegistryKeyInGuest CreateRegistryKeyInGuestRequestType - -func init() { - t["CreateRegistryKeyInGuest"] = reflect.TypeOf((*CreateRegistryKeyInGuest)(nil)).Elem() -} - -type CreateRegistryKeyInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - KeyName GuestRegKeyNameSpec `xml:"keyName"` - IsVolatile bool `xml:"isVolatile"` - ClassType string `xml:"classType,omitempty"` -} - -func init() { - t["CreateRegistryKeyInGuestRequestType"] = reflect.TypeOf((*CreateRegistryKeyInGuestRequestType)(nil)).Elem() -} - -type CreateRegistryKeyInGuestResponse struct { -} - -type CreateResourcePool CreateResourcePoolRequestType - -func init() { - t["CreateResourcePool"] = reflect.TypeOf((*CreateResourcePool)(nil)).Elem() -} - -type CreateResourcePoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Spec ResourceConfigSpec `xml:"spec"` -} - -func init() { - t["CreateResourcePoolRequestType"] = reflect.TypeOf((*CreateResourcePoolRequestType)(nil)).Elem() -} - -type CreateResourcePoolResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateScheduledTask CreateScheduledTaskRequestType - -func init() { - t["CreateScheduledTask"] = reflect.TypeOf((*CreateScheduledTask)(nil)).Elem() -} - -type CreateScheduledTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Spec BaseScheduledTaskSpec `xml:"spec,typeattr"` -} - -func init() { - t["CreateScheduledTaskRequestType"] = reflect.TypeOf((*CreateScheduledTaskRequestType)(nil)).Elem() -} - -type CreateScheduledTaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateScreenshotRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["CreateScreenshotRequestType"] = reflect.TypeOf((*CreateScreenshotRequestType)(nil)).Elem() -} - -type CreateScreenshot_Task CreateScreenshotRequestType - -func init() { - t["CreateScreenshot_Task"] = reflect.TypeOf((*CreateScreenshot_Task)(nil)).Elem() -} - -type CreateScreenshot_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateSecondaryVMExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Spec *FaultToleranceConfigSpec `xml:"spec,omitempty"` -} - -func init() { - t["CreateSecondaryVMExRequestType"] = reflect.TypeOf((*CreateSecondaryVMExRequestType)(nil)).Elem() -} - -type CreateSecondaryVMEx_Task CreateSecondaryVMExRequestType - -func init() { - t["CreateSecondaryVMEx_Task"] = reflect.TypeOf((*CreateSecondaryVMEx_Task)(nil)).Elem() -} - -type CreateSecondaryVMEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateSecondaryVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["CreateSecondaryVMRequestType"] = reflect.TypeOf((*CreateSecondaryVMRequestType)(nil)).Elem() -} - -type CreateSecondaryVM_Task CreateSecondaryVMRequestType - -func init() { - t["CreateSecondaryVM_Task"] = reflect.TypeOf((*CreateSecondaryVM_Task)(nil)).Elem() -} - -type CreateSecondaryVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateSnapshotExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Description string `xml:"description,omitempty"` - Memory bool `xml:"memory"` - QuiesceSpec BaseVirtualMachineGuestQuiesceSpec `xml:"quiesceSpec,omitempty,typeattr"` -} - -func init() { - t["CreateSnapshotExRequestType"] = reflect.TypeOf((*CreateSnapshotExRequestType)(nil)).Elem() -} - -type CreateSnapshotEx_Task CreateSnapshotExRequestType - -func init() { - t["CreateSnapshotEx_Task"] = reflect.TypeOf((*CreateSnapshotEx_Task)(nil)).Elem() -} - -type CreateSnapshotEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Description string `xml:"description,omitempty"` - Memory bool `xml:"memory"` - Quiesce bool `xml:"quiesce"` -} - -func init() { - t["CreateSnapshotRequestType"] = reflect.TypeOf((*CreateSnapshotRequestType)(nil)).Elem() -} - -type CreateSnapshot_Task CreateSnapshotRequestType - -func init() { - t["CreateSnapshot_Task"] = reflect.TypeOf((*CreateSnapshot_Task)(nil)).Elem() -} - -type CreateSnapshot_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateStoragePod CreateStoragePodRequestType - -func init() { - t["CreateStoragePod"] = reflect.TypeOf((*CreateStoragePod)(nil)).Elem() -} - -type CreateStoragePodRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` -} - -func init() { - t["CreateStoragePodRequestType"] = reflect.TypeOf((*CreateStoragePodRequestType)(nil)).Elem() -} - -type CreateStoragePodResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateTask CreateTaskRequestType - -func init() { - t["CreateTask"] = reflect.TypeOf((*CreateTask)(nil)).Elem() -} - -type CreateTaskAction struct { - Action - - TaskTypeId string `xml:"taskTypeId"` - Cancelable bool `xml:"cancelable"` -} - -func init() { - t["CreateTaskAction"] = reflect.TypeOf((*CreateTaskAction)(nil)).Elem() -} - -type CreateTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Obj ManagedObjectReference `xml:"obj"` - TaskTypeId string `xml:"taskTypeId"` - InitiatedBy string `xml:"initiatedBy,omitempty"` - Cancelable bool `xml:"cancelable"` - ParentTaskKey string `xml:"parentTaskKey,omitempty"` - ActivationId string `xml:"activationId,omitempty"` -} - -func init() { - t["CreateTaskRequestType"] = reflect.TypeOf((*CreateTaskRequestType)(nil)).Elem() -} - -type CreateTaskResponse struct { - Returnval TaskInfo `xml:"returnval"` -} - -type CreateTemporaryDirectoryInGuest CreateTemporaryDirectoryInGuestRequestType - -func init() { - t["CreateTemporaryDirectoryInGuest"] = reflect.TypeOf((*CreateTemporaryDirectoryInGuest)(nil)).Elem() -} - -type CreateTemporaryDirectoryInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Prefix string `xml:"prefix"` - Suffix string `xml:"suffix"` - DirectoryPath string `xml:"directoryPath,omitempty"` -} - -func init() { - t["CreateTemporaryDirectoryInGuestRequestType"] = reflect.TypeOf((*CreateTemporaryDirectoryInGuestRequestType)(nil)).Elem() -} - -type CreateTemporaryDirectoryInGuestResponse struct { - Returnval string `xml:"returnval"` -} - -type CreateTemporaryFileInGuest CreateTemporaryFileInGuestRequestType - -func init() { - t["CreateTemporaryFileInGuest"] = reflect.TypeOf((*CreateTemporaryFileInGuest)(nil)).Elem() -} - -type CreateTemporaryFileInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Prefix string `xml:"prefix"` - Suffix string `xml:"suffix"` - DirectoryPath string `xml:"directoryPath,omitempty"` -} - -func init() { - t["CreateTemporaryFileInGuestRequestType"] = reflect.TypeOf((*CreateTemporaryFileInGuestRequestType)(nil)).Elem() -} - -type CreateTemporaryFileInGuestResponse struct { - Returnval string `xml:"returnval"` -} - -type CreateUser CreateUserRequestType - -func init() { - t["CreateUser"] = reflect.TypeOf((*CreateUser)(nil)).Elem() -} - -type CreateUserRequestType struct { - This ManagedObjectReference `xml:"_this"` - User BaseHostAccountSpec `xml:"user,typeattr"` -} - -func init() { - t["CreateUserRequestType"] = reflect.TypeOf((*CreateUserRequestType)(nil)).Elem() -} - -type CreateUserResponse struct { -} - -type CreateVApp CreateVAppRequestType - -func init() { - t["CreateVApp"] = reflect.TypeOf((*CreateVApp)(nil)).Elem() -} - -type CreateVAppRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - ResSpec ResourceConfigSpec `xml:"resSpec"` - ConfigSpec VAppConfigSpec `xml:"configSpec"` - VmFolder *ManagedObjectReference `xml:"vmFolder,omitempty"` -} - -func init() { - t["CreateVAppRequestType"] = reflect.TypeOf((*CreateVAppRequestType)(nil)).Elem() -} - -type CreateVAppResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config VirtualMachineConfigSpec `xml:"config"` - Pool ManagedObjectReference `xml:"pool"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["CreateVMRequestType"] = reflect.TypeOf((*CreateVMRequestType)(nil)).Elem() -} - -type CreateVM_Task CreateVMRequestType - -func init() { - t["CreateVM_Task"] = reflect.TypeOf((*CreateVM_Task)(nil)).Elem() -} - -type CreateVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Spec BaseVirtualDiskSpec `xml:"spec,typeattr"` -} - -func init() { - t["CreateVirtualDiskRequestType"] = reflect.TypeOf((*CreateVirtualDiskRequestType)(nil)).Elem() -} - -type CreateVirtualDisk_Task CreateVirtualDiskRequestType - -func init() { - t["CreateVirtualDisk_Task"] = reflect.TypeOf((*CreateVirtualDisk_Task)(nil)).Elem() -} - -type CreateVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateVmfsDatastore CreateVmfsDatastoreRequestType - -func init() { - t["CreateVmfsDatastore"] = reflect.TypeOf((*CreateVmfsDatastore)(nil)).Elem() -} - -type CreateVmfsDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec VmfsDatastoreCreateSpec `xml:"spec"` -} - -func init() { - t["CreateVmfsDatastoreRequestType"] = reflect.TypeOf((*CreateVmfsDatastoreRequestType)(nil)).Elem() -} - -type CreateVmfsDatastoreResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CreateVvolDatastore CreateVvolDatastoreRequestType - -func init() { - t["CreateVvolDatastore"] = reflect.TypeOf((*CreateVvolDatastore)(nil)).Elem() -} - -type CreateVvolDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostDatastoreSystemVvolDatastoreSpec `xml:"spec"` -} - -func init() { - t["CreateVvolDatastoreRequestType"] = reflect.TypeOf((*CreateVvolDatastoreRequestType)(nil)).Elem() -} - -type CreateVvolDatastoreResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type CryptoKeyId struct { - DynamicData - - KeyId string `xml:"keyId"` - ProviderId *KeyProviderId `xml:"providerId,omitempty"` -} - -func init() { - t["CryptoKeyId"] = reflect.TypeOf((*CryptoKeyId)(nil)).Elem() -} - -type CryptoKeyPlain struct { - DynamicData - - KeyId CryptoKeyId `xml:"keyId"` - Algorithm string `xml:"algorithm"` - KeyData string `xml:"keyData"` -} - -func init() { - t["CryptoKeyPlain"] = reflect.TypeOf((*CryptoKeyPlain)(nil)).Elem() -} - -type CryptoKeyResult struct { - DynamicData - - KeyId CryptoKeyId `xml:"keyId"` - Success bool `xml:"success"` - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["CryptoKeyResult"] = reflect.TypeOf((*CryptoKeyResult)(nil)).Elem() -} - -type CryptoManagerKmipCertificateInfo struct { - DynamicData - - Subject string `xml:"subject"` - Issuer string `xml:"issuer"` - SerialNumber string `xml:"serialNumber"` - NotBefore time.Time `xml:"notBefore"` - NotAfter time.Time `xml:"notAfter"` - Fingerprint string `xml:"fingerprint"` - CheckTime time.Time `xml:"checkTime"` - SecondsSinceValid int32 `xml:"secondsSinceValid,omitempty"` - SecondsBeforeExpire int32 `xml:"secondsBeforeExpire,omitempty"` -} - -func init() { - t["CryptoManagerKmipCertificateInfo"] = reflect.TypeOf((*CryptoManagerKmipCertificateInfo)(nil)).Elem() -} - -type CryptoManagerKmipClusterStatus struct { - DynamicData - - ClusterId KeyProviderId `xml:"clusterId"` - Servers []CryptoManagerKmipServerStatus `xml:"servers"` - ClientCertInfo *CryptoManagerKmipCertificateInfo `xml:"clientCertInfo,omitempty"` -} - -func init() { - t["CryptoManagerKmipClusterStatus"] = reflect.TypeOf((*CryptoManagerKmipClusterStatus)(nil)).Elem() -} - -type CryptoManagerKmipServerCertInfo struct { - DynamicData - - Certificate string `xml:"certificate"` - CertInfo *CryptoManagerKmipCertificateInfo `xml:"certInfo,omitempty"` - ClientTrustServer *bool `xml:"clientTrustServer"` -} - -func init() { - t["CryptoManagerKmipServerCertInfo"] = reflect.TypeOf((*CryptoManagerKmipServerCertInfo)(nil)).Elem() -} - -type CryptoManagerKmipServerStatus struct { - DynamicData - - Name string `xml:"name"` - Status ManagedEntityStatus `xml:"status"` - ConnectionStatus string `xml:"connectionStatus"` - CertInfo *CryptoManagerKmipCertificateInfo `xml:"certInfo,omitempty"` - ClientTrustServer *bool `xml:"clientTrustServer"` - ServerTrustClient *bool `xml:"serverTrustClient"` -} - -func init() { - t["CryptoManagerKmipServerStatus"] = reflect.TypeOf((*CryptoManagerKmipServerStatus)(nil)).Elem() -} - -type CryptoSpec struct { - DynamicData -} - -func init() { - t["CryptoSpec"] = reflect.TypeOf((*CryptoSpec)(nil)).Elem() -} - -type CryptoSpecDecrypt struct { - CryptoSpec -} - -func init() { - t["CryptoSpecDecrypt"] = reflect.TypeOf((*CryptoSpecDecrypt)(nil)).Elem() -} - -type CryptoSpecDeepRecrypt struct { - CryptoSpec - - NewKeyId CryptoKeyId `xml:"newKeyId"` -} - -func init() { - t["CryptoSpecDeepRecrypt"] = reflect.TypeOf((*CryptoSpecDeepRecrypt)(nil)).Elem() -} - -type CryptoSpecEncrypt struct { - CryptoSpec - - CryptoKeyId CryptoKeyId `xml:"cryptoKeyId"` -} - -func init() { - t["CryptoSpecEncrypt"] = reflect.TypeOf((*CryptoSpecEncrypt)(nil)).Elem() -} - -type CryptoSpecNoOp struct { - CryptoSpec -} - -func init() { - t["CryptoSpecNoOp"] = reflect.TypeOf((*CryptoSpecNoOp)(nil)).Elem() -} - -type CryptoSpecRegister struct { - CryptoSpecNoOp - - CryptoKeyId CryptoKeyId `xml:"cryptoKeyId"` -} - -func init() { - t["CryptoSpecRegister"] = reflect.TypeOf((*CryptoSpecRegister)(nil)).Elem() -} - -type CryptoSpecShallowRecrypt struct { - CryptoSpec - - NewKeyId CryptoKeyId `xml:"newKeyId"` -} - -func init() { - t["CryptoSpecShallowRecrypt"] = reflect.TypeOf((*CryptoSpecShallowRecrypt)(nil)).Elem() -} - -type CurrentTime CurrentTimeRequestType - -func init() { - t["CurrentTime"] = reflect.TypeOf((*CurrentTime)(nil)).Elem() -} - -type CurrentTimeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["CurrentTimeRequestType"] = reflect.TypeOf((*CurrentTimeRequestType)(nil)).Elem() -} - -type CurrentTimeResponse struct { - Returnval time.Time `xml:"returnval"` -} - -type CustomFieldDef struct { - DynamicData - - Key int32 `xml:"key"` - Name string `xml:"name"` - Type string `xml:"type"` - ManagedObjectType string `xml:"managedObjectType,omitempty"` - FieldDefPrivileges *PrivilegePolicyDef `xml:"fieldDefPrivileges,omitempty"` - FieldInstancePrivileges *PrivilegePolicyDef `xml:"fieldInstancePrivileges,omitempty"` -} - -func init() { - t["CustomFieldDef"] = reflect.TypeOf((*CustomFieldDef)(nil)).Elem() -} - -type CustomFieldDefAddedEvent struct { - CustomFieldDefEvent -} - -func init() { - t["CustomFieldDefAddedEvent"] = reflect.TypeOf((*CustomFieldDefAddedEvent)(nil)).Elem() -} - -type CustomFieldDefEvent struct { - CustomFieldEvent - - FieldKey int32 `xml:"fieldKey"` - Name string `xml:"name"` -} - -func init() { - t["CustomFieldDefEvent"] = reflect.TypeOf((*CustomFieldDefEvent)(nil)).Elem() -} - -type CustomFieldDefRemovedEvent struct { - CustomFieldDefEvent -} - -func init() { - t["CustomFieldDefRemovedEvent"] = reflect.TypeOf((*CustomFieldDefRemovedEvent)(nil)).Elem() -} - -type CustomFieldDefRenamedEvent struct { - CustomFieldDefEvent - - NewName string `xml:"newName"` -} - -func init() { - t["CustomFieldDefRenamedEvent"] = reflect.TypeOf((*CustomFieldDefRenamedEvent)(nil)).Elem() -} - -type CustomFieldEvent struct { - Event -} - -func init() { - t["CustomFieldEvent"] = reflect.TypeOf((*CustomFieldEvent)(nil)).Elem() -} - -type CustomFieldStringValue struct { - CustomFieldValue - - Value string `xml:"value"` -} - -func init() { - t["CustomFieldStringValue"] = reflect.TypeOf((*CustomFieldStringValue)(nil)).Elem() -} - -type CustomFieldValue struct { - DynamicData - - Key int32 `xml:"key"` -} - -func init() { - t["CustomFieldValue"] = reflect.TypeOf((*CustomFieldValue)(nil)).Elem() -} - -type CustomFieldValueChangedEvent struct { - CustomFieldEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - FieldKey int32 `xml:"fieldKey"` - Name string `xml:"name"` - Value string `xml:"value"` - PrevState string `xml:"prevState,omitempty"` -} - -func init() { - t["CustomFieldValueChangedEvent"] = reflect.TypeOf((*CustomFieldValueChangedEvent)(nil)).Elem() -} - -type CustomizationAdapterMapping struct { - DynamicData - - MacAddress string `xml:"macAddress,omitempty"` - Adapter CustomizationIPSettings `xml:"adapter"` -} - -func init() { - t["CustomizationAdapterMapping"] = reflect.TypeOf((*CustomizationAdapterMapping)(nil)).Elem() -} - -type CustomizationAutoIpV6Generator struct { - CustomizationIpV6Generator -} - -func init() { - t["CustomizationAutoIpV6Generator"] = reflect.TypeOf((*CustomizationAutoIpV6Generator)(nil)).Elem() -} - -type CustomizationCustomIpGenerator struct { - CustomizationIpGenerator - - Argument string `xml:"argument,omitempty"` -} - -func init() { - t["CustomizationCustomIpGenerator"] = reflect.TypeOf((*CustomizationCustomIpGenerator)(nil)).Elem() -} - -type CustomizationCustomIpV6Generator struct { - CustomizationIpV6Generator - - Argument string `xml:"argument,omitempty"` -} - -func init() { - t["CustomizationCustomIpV6Generator"] = reflect.TypeOf((*CustomizationCustomIpV6Generator)(nil)).Elem() -} - -type CustomizationCustomName struct { - CustomizationName - - Argument string `xml:"argument,omitempty"` -} - -func init() { - t["CustomizationCustomName"] = reflect.TypeOf((*CustomizationCustomName)(nil)).Elem() -} - -type CustomizationDhcpIpGenerator struct { - CustomizationIpGenerator -} - -func init() { - t["CustomizationDhcpIpGenerator"] = reflect.TypeOf((*CustomizationDhcpIpGenerator)(nil)).Elem() -} - -type CustomizationDhcpIpV6Generator struct { - CustomizationIpV6Generator -} - -func init() { - t["CustomizationDhcpIpV6Generator"] = reflect.TypeOf((*CustomizationDhcpIpV6Generator)(nil)).Elem() -} - -type CustomizationEvent struct { - VmEvent - - LogLocation string `xml:"logLocation,omitempty"` -} - -func init() { - t["CustomizationEvent"] = reflect.TypeOf((*CustomizationEvent)(nil)).Elem() -} - -type CustomizationFailed struct { - CustomizationEvent -} - -func init() { - t["CustomizationFailed"] = reflect.TypeOf((*CustomizationFailed)(nil)).Elem() -} - -type CustomizationFault struct { - VimFault -} - -func init() { - t["CustomizationFault"] = reflect.TypeOf((*CustomizationFault)(nil)).Elem() -} - -type CustomizationFaultFault BaseCustomizationFault - -func init() { - t["CustomizationFaultFault"] = reflect.TypeOf((*CustomizationFaultFault)(nil)).Elem() -} - -type CustomizationFixedIp struct { - CustomizationIpGenerator - - IpAddress string `xml:"ipAddress"` -} - -func init() { - t["CustomizationFixedIp"] = reflect.TypeOf((*CustomizationFixedIp)(nil)).Elem() -} - -type CustomizationFixedIpV6 struct { - CustomizationIpV6Generator - - IpAddress string `xml:"ipAddress"` - SubnetMask int32 `xml:"subnetMask"` -} - -func init() { - t["CustomizationFixedIpV6"] = reflect.TypeOf((*CustomizationFixedIpV6)(nil)).Elem() -} - -type CustomizationFixedName struct { - CustomizationName - - Name string `xml:"name"` -} - -func init() { - t["CustomizationFixedName"] = reflect.TypeOf((*CustomizationFixedName)(nil)).Elem() -} - -type CustomizationGlobalIPSettings struct { - DynamicData - - DnsSuffixList []string `xml:"dnsSuffixList,omitempty"` - DnsServerList []string `xml:"dnsServerList,omitempty"` -} - -func init() { - t["CustomizationGlobalIPSettings"] = reflect.TypeOf((*CustomizationGlobalIPSettings)(nil)).Elem() -} - -type CustomizationGuiRunOnce struct { - DynamicData - - CommandList []string `xml:"commandList"` -} - -func init() { - t["CustomizationGuiRunOnce"] = reflect.TypeOf((*CustomizationGuiRunOnce)(nil)).Elem() -} - -type CustomizationGuiUnattended struct { - DynamicData - - Password *CustomizationPassword `xml:"password,omitempty"` - TimeZone int32 `xml:"timeZone"` - AutoLogon bool `xml:"autoLogon"` - AutoLogonCount int32 `xml:"autoLogonCount"` -} - -func init() { - t["CustomizationGuiUnattended"] = reflect.TypeOf((*CustomizationGuiUnattended)(nil)).Elem() -} - -type CustomizationIPSettings struct { - DynamicData - - Ip BaseCustomizationIpGenerator `xml:"ip,typeattr"` - SubnetMask string `xml:"subnetMask,omitempty"` - Gateway []string `xml:"gateway,omitempty"` - IpV6Spec *CustomizationIPSettingsIpV6AddressSpec `xml:"ipV6Spec,omitempty"` - DnsServerList []string `xml:"dnsServerList,omitempty"` - DnsDomain string `xml:"dnsDomain,omitempty"` - PrimaryWINS string `xml:"primaryWINS,omitempty"` - SecondaryWINS string `xml:"secondaryWINS,omitempty"` - NetBIOS CustomizationNetBIOSMode `xml:"netBIOS,omitempty"` -} - -func init() { - t["CustomizationIPSettings"] = reflect.TypeOf((*CustomizationIPSettings)(nil)).Elem() -} - -type CustomizationIPSettingsIpV6AddressSpec struct { - DynamicData - - Ip []BaseCustomizationIpV6Generator `xml:"ip,typeattr"` - Gateway []string `xml:"gateway,omitempty"` -} - -func init() { - t["CustomizationIPSettingsIpV6AddressSpec"] = reflect.TypeOf((*CustomizationIPSettingsIpV6AddressSpec)(nil)).Elem() -} - -type CustomizationIdentification struct { - DynamicData - - JoinWorkgroup string `xml:"joinWorkgroup,omitempty"` - JoinDomain string `xml:"joinDomain,omitempty"` - DomainAdmin string `xml:"domainAdmin,omitempty"` - DomainAdminPassword *CustomizationPassword `xml:"domainAdminPassword,omitempty"` -} - -func init() { - t["CustomizationIdentification"] = reflect.TypeOf((*CustomizationIdentification)(nil)).Elem() -} - -type CustomizationIdentitySettings struct { - DynamicData -} - -func init() { - t["CustomizationIdentitySettings"] = reflect.TypeOf((*CustomizationIdentitySettings)(nil)).Elem() -} - -type CustomizationIpGenerator struct { - DynamicData -} - -func init() { - t["CustomizationIpGenerator"] = reflect.TypeOf((*CustomizationIpGenerator)(nil)).Elem() -} - -type CustomizationIpV6Generator struct { - DynamicData -} - -func init() { - t["CustomizationIpV6Generator"] = reflect.TypeOf((*CustomizationIpV6Generator)(nil)).Elem() -} - -type CustomizationLicenseFilePrintData struct { - DynamicData - - AutoMode CustomizationLicenseDataMode `xml:"autoMode"` - AutoUsers int32 `xml:"autoUsers,omitempty"` -} - -func init() { - t["CustomizationLicenseFilePrintData"] = reflect.TypeOf((*CustomizationLicenseFilePrintData)(nil)).Elem() -} - -type CustomizationLinuxIdentityFailed struct { - CustomizationFailed -} - -func init() { - t["CustomizationLinuxIdentityFailed"] = reflect.TypeOf((*CustomizationLinuxIdentityFailed)(nil)).Elem() -} - -type CustomizationLinuxOptions struct { - CustomizationOptions -} - -func init() { - t["CustomizationLinuxOptions"] = reflect.TypeOf((*CustomizationLinuxOptions)(nil)).Elem() -} - -type CustomizationLinuxPrep struct { - CustomizationIdentitySettings - - HostName BaseCustomizationName `xml:"hostName,typeattr"` - Domain string `xml:"domain"` - TimeZone string `xml:"timeZone,omitempty"` - HwClockUTC *bool `xml:"hwClockUTC"` -} - -func init() { - t["CustomizationLinuxPrep"] = reflect.TypeOf((*CustomizationLinuxPrep)(nil)).Elem() -} - -type CustomizationName struct { - DynamicData -} - -func init() { - t["CustomizationName"] = reflect.TypeOf((*CustomizationName)(nil)).Elem() -} - -type CustomizationNetworkSetupFailed struct { - CustomizationFailed -} - -func init() { - t["CustomizationNetworkSetupFailed"] = reflect.TypeOf((*CustomizationNetworkSetupFailed)(nil)).Elem() -} - -type CustomizationOptions struct { - DynamicData -} - -func init() { - t["CustomizationOptions"] = reflect.TypeOf((*CustomizationOptions)(nil)).Elem() -} - -type CustomizationPassword struct { - DynamicData - - Value string `xml:"value"` - PlainText bool `xml:"plainText"` -} - -func init() { - t["CustomizationPassword"] = reflect.TypeOf((*CustomizationPassword)(nil)).Elem() -} - -type CustomizationPending struct { - CustomizationFault -} - -func init() { - t["CustomizationPending"] = reflect.TypeOf((*CustomizationPending)(nil)).Elem() -} - -type CustomizationPendingFault CustomizationPending - -func init() { - t["CustomizationPendingFault"] = reflect.TypeOf((*CustomizationPendingFault)(nil)).Elem() -} - -type CustomizationPrefixName struct { - CustomizationName - - Base string `xml:"base"` -} - -func init() { - t["CustomizationPrefixName"] = reflect.TypeOf((*CustomizationPrefixName)(nil)).Elem() -} - -type CustomizationSpec struct { - DynamicData - - Options BaseCustomizationOptions `xml:"options,omitempty,typeattr"` - Identity BaseCustomizationIdentitySettings `xml:"identity,typeattr"` - GlobalIPSettings CustomizationGlobalIPSettings `xml:"globalIPSettings"` - NicSettingMap []CustomizationAdapterMapping `xml:"nicSettingMap,omitempty"` - EncryptionKey []byte `xml:"encryptionKey,omitempty"` -} - -func init() { - t["CustomizationSpec"] = reflect.TypeOf((*CustomizationSpec)(nil)).Elem() -} - -type CustomizationSpecInfo struct { - DynamicData - - Name string `xml:"name"` - Description string `xml:"description"` - Type string `xml:"type"` - ChangeVersion string `xml:"changeVersion,omitempty"` - LastUpdateTime *time.Time `xml:"lastUpdateTime"` -} - -func init() { - t["CustomizationSpecInfo"] = reflect.TypeOf((*CustomizationSpecInfo)(nil)).Elem() -} - -type CustomizationSpecItem struct { - DynamicData - - Info CustomizationSpecInfo `xml:"info"` - Spec CustomizationSpec `xml:"spec"` -} - -func init() { - t["CustomizationSpecItem"] = reflect.TypeOf((*CustomizationSpecItem)(nil)).Elem() -} - -type CustomizationSpecItemToXml CustomizationSpecItemToXmlRequestType - -func init() { - t["CustomizationSpecItemToXml"] = reflect.TypeOf((*CustomizationSpecItemToXml)(nil)).Elem() -} - -type CustomizationSpecItemToXmlRequestType struct { - This ManagedObjectReference `xml:"_this"` - Item CustomizationSpecItem `xml:"item"` -} - -func init() { - t["CustomizationSpecItemToXmlRequestType"] = reflect.TypeOf((*CustomizationSpecItemToXmlRequestType)(nil)).Elem() -} - -type CustomizationSpecItemToXmlResponse struct { - Returnval string `xml:"returnval"` -} - -type CustomizationStartedEvent struct { - CustomizationEvent -} - -func init() { - t["CustomizationStartedEvent"] = reflect.TypeOf((*CustomizationStartedEvent)(nil)).Elem() -} - -type CustomizationStatelessIpV6Generator struct { - CustomizationIpV6Generator -} - -func init() { - t["CustomizationStatelessIpV6Generator"] = reflect.TypeOf((*CustomizationStatelessIpV6Generator)(nil)).Elem() -} - -type CustomizationSucceeded struct { - CustomizationEvent -} - -func init() { - t["CustomizationSucceeded"] = reflect.TypeOf((*CustomizationSucceeded)(nil)).Elem() -} - -type CustomizationSysprep struct { - CustomizationIdentitySettings - - GuiUnattended CustomizationGuiUnattended `xml:"guiUnattended"` - UserData CustomizationUserData `xml:"userData"` - GuiRunOnce *CustomizationGuiRunOnce `xml:"guiRunOnce,omitempty"` - Identification CustomizationIdentification `xml:"identification"` - LicenseFilePrintData *CustomizationLicenseFilePrintData `xml:"licenseFilePrintData,omitempty"` -} - -func init() { - t["CustomizationSysprep"] = reflect.TypeOf((*CustomizationSysprep)(nil)).Elem() -} - -type CustomizationSysprepFailed struct { - CustomizationFailed - - SysprepVersion string `xml:"sysprepVersion"` - SystemVersion string `xml:"systemVersion"` -} - -func init() { - t["CustomizationSysprepFailed"] = reflect.TypeOf((*CustomizationSysprepFailed)(nil)).Elem() -} - -type CustomizationSysprepText struct { - CustomizationIdentitySettings - - Value string `xml:"value"` -} - -func init() { - t["CustomizationSysprepText"] = reflect.TypeOf((*CustomizationSysprepText)(nil)).Elem() -} - -type CustomizationUnknownFailure struct { - CustomizationFailed -} - -func init() { - t["CustomizationUnknownFailure"] = reflect.TypeOf((*CustomizationUnknownFailure)(nil)).Elem() -} - -type CustomizationUnknownIpGenerator struct { - CustomizationIpGenerator -} - -func init() { - t["CustomizationUnknownIpGenerator"] = reflect.TypeOf((*CustomizationUnknownIpGenerator)(nil)).Elem() -} - -type CustomizationUnknownIpV6Generator struct { - CustomizationIpV6Generator -} - -func init() { - t["CustomizationUnknownIpV6Generator"] = reflect.TypeOf((*CustomizationUnknownIpV6Generator)(nil)).Elem() -} - -type CustomizationUnknownName struct { - CustomizationName -} - -func init() { - t["CustomizationUnknownName"] = reflect.TypeOf((*CustomizationUnknownName)(nil)).Elem() -} - -type CustomizationUserData struct { - DynamicData - - FullName string `xml:"fullName"` - OrgName string `xml:"orgName"` - ComputerName BaseCustomizationName `xml:"computerName,typeattr"` - ProductId string `xml:"productId"` -} - -func init() { - t["CustomizationUserData"] = reflect.TypeOf((*CustomizationUserData)(nil)).Elem() -} - -type CustomizationVirtualMachineName struct { - CustomizationName -} - -func init() { - t["CustomizationVirtualMachineName"] = reflect.TypeOf((*CustomizationVirtualMachineName)(nil)).Elem() -} - -type CustomizationWinOptions struct { - CustomizationOptions - - ChangeSID bool `xml:"changeSID"` - DeleteAccounts bool `xml:"deleteAccounts"` - Reboot CustomizationSysprepRebootOption `xml:"reboot,omitempty"` -} - -func init() { - t["CustomizationWinOptions"] = reflect.TypeOf((*CustomizationWinOptions)(nil)).Elem() -} - -type CustomizeVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec CustomizationSpec `xml:"spec"` -} - -func init() { - t["CustomizeVMRequestType"] = reflect.TypeOf((*CustomizeVMRequestType)(nil)).Elem() -} - -type CustomizeVM_Task CustomizeVMRequestType - -func init() { - t["CustomizeVM_Task"] = reflect.TypeOf((*CustomizeVM_Task)(nil)).Elem() -} - -type CustomizeVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DVPortConfigInfo struct { - DynamicData - - Name string `xml:"name,omitempty"` - Scope []ManagedObjectReference `xml:"scope,omitempty"` - Description string `xml:"description,omitempty"` - Setting BaseDVPortSetting `xml:"setting,omitempty,typeattr"` - ConfigVersion string `xml:"configVersion"` -} - -func init() { - t["DVPortConfigInfo"] = reflect.TypeOf((*DVPortConfigInfo)(nil)).Elem() -} - -type DVPortConfigSpec struct { - DynamicData - - Operation string `xml:"operation"` - Key string `xml:"key,omitempty"` - Name string `xml:"name,omitempty"` - Scope []ManagedObjectReference `xml:"scope,omitempty"` - Description string `xml:"description,omitempty"` - Setting BaseDVPortSetting `xml:"setting,omitempty,typeattr"` - ConfigVersion string `xml:"configVersion,omitempty"` -} - -func init() { - t["DVPortConfigSpec"] = reflect.TypeOf((*DVPortConfigSpec)(nil)).Elem() -} - -type DVPortNotSupported struct { - DeviceBackingNotSupported -} - -func init() { - t["DVPortNotSupported"] = reflect.TypeOf((*DVPortNotSupported)(nil)).Elem() -} - -type DVPortNotSupportedFault DVPortNotSupported - -func init() { - t["DVPortNotSupportedFault"] = reflect.TypeOf((*DVPortNotSupportedFault)(nil)).Elem() -} - -type DVPortSetting struct { - DynamicData - - Blocked *BoolPolicy `xml:"blocked,omitempty"` - VmDirectPathGen2Allowed *BoolPolicy `xml:"vmDirectPathGen2Allowed,omitempty"` - InShapingPolicy *DVSTrafficShapingPolicy `xml:"inShapingPolicy,omitempty"` - OutShapingPolicy *DVSTrafficShapingPolicy `xml:"outShapingPolicy,omitempty"` - VendorSpecificConfig *DVSVendorSpecificConfig `xml:"vendorSpecificConfig,omitempty"` - NetworkResourcePoolKey *StringPolicy `xml:"networkResourcePoolKey,omitempty"` - FilterPolicy *DvsFilterPolicy `xml:"filterPolicy,omitempty"` -} - -func init() { - t["DVPortSetting"] = reflect.TypeOf((*DVPortSetting)(nil)).Elem() -} - -type DVPortState struct { - DynamicData - - RuntimeInfo *DVPortStatus `xml:"runtimeInfo,omitempty"` - Stats DistributedVirtualSwitchPortStatistics `xml:"stats"` - VendorSpecificState []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificState,omitempty"` -} - -func init() { - t["DVPortState"] = reflect.TypeOf((*DVPortState)(nil)).Elem() -} - -type DVPortStatus struct { - DynamicData - - LinkUp bool `xml:"linkUp"` - Blocked bool `xml:"blocked"` - VlanIds []NumericRange `xml:"vlanIds,omitempty"` - TrunkingMode *bool `xml:"trunkingMode"` - Mtu int32 `xml:"mtu,omitempty"` - LinkPeer string `xml:"linkPeer,omitempty"` - MacAddress string `xml:"macAddress,omitempty"` - StatusDetail string `xml:"statusDetail,omitempty"` - VmDirectPathGen2Active *bool `xml:"vmDirectPathGen2Active"` - VmDirectPathGen2InactiveReasonNetwork []string `xml:"vmDirectPathGen2InactiveReasonNetwork,omitempty"` - VmDirectPathGen2InactiveReasonOther []string `xml:"vmDirectPathGen2InactiveReasonOther,omitempty"` - VmDirectPathGen2InactiveReasonExtended string `xml:"vmDirectPathGen2InactiveReasonExtended,omitempty"` -} - -func init() { - t["DVPortStatus"] = reflect.TypeOf((*DVPortStatus)(nil)).Elem() -} - -type DVPortgroupConfigInfo struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name"` - NumPorts int32 `xml:"numPorts"` - DistributedVirtualSwitch *ManagedObjectReference `xml:"distributedVirtualSwitch,omitempty"` - DefaultPortConfig BaseDVPortSetting `xml:"defaultPortConfig,omitempty,typeattr"` - Description string `xml:"description,omitempty"` - Type string `xml:"type"` - Policy BaseDVPortgroupPolicy `xml:"policy,typeattr"` - PortNameFormat string `xml:"portNameFormat,omitempty"` - Scope []ManagedObjectReference `xml:"scope,omitempty"` - VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` - ConfigVersion string `xml:"configVersion,omitempty"` - AutoExpand *bool `xml:"autoExpand"` - VmVnicNetworkResourcePoolKey string `xml:"vmVnicNetworkResourcePoolKey,omitempty"` - Uplink *bool `xml:"uplink"` -} - -func init() { - t["DVPortgroupConfigInfo"] = reflect.TypeOf((*DVPortgroupConfigInfo)(nil)).Elem() -} - -type DVPortgroupConfigSpec struct { - DynamicData - - ConfigVersion string `xml:"configVersion,omitempty"` - Name string `xml:"name,omitempty"` - NumPorts int32 `xml:"numPorts,omitempty"` - PortNameFormat string `xml:"portNameFormat,omitempty"` - DefaultPortConfig BaseDVPortSetting `xml:"defaultPortConfig,omitempty,typeattr"` - Description string `xml:"description,omitempty"` - Type string `xml:"type,omitempty"` - Scope []ManagedObjectReference `xml:"scope,omitempty"` - Policy BaseDVPortgroupPolicy `xml:"policy,omitempty,typeattr"` - VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` - AutoExpand *bool `xml:"autoExpand"` - VmVnicNetworkResourcePoolKey string `xml:"vmVnicNetworkResourcePoolKey,omitempty"` -} - -func init() { - t["DVPortgroupConfigSpec"] = reflect.TypeOf((*DVPortgroupConfigSpec)(nil)).Elem() -} - -type DVPortgroupCreatedEvent struct { - DVPortgroupEvent -} - -func init() { - t["DVPortgroupCreatedEvent"] = reflect.TypeOf((*DVPortgroupCreatedEvent)(nil)).Elem() -} - -type DVPortgroupDestroyedEvent struct { - DVPortgroupEvent -} - -func init() { - t["DVPortgroupDestroyedEvent"] = reflect.TypeOf((*DVPortgroupDestroyedEvent)(nil)).Elem() -} - -type DVPortgroupEvent struct { - Event -} - -func init() { - t["DVPortgroupEvent"] = reflect.TypeOf((*DVPortgroupEvent)(nil)).Elem() -} - -type DVPortgroupPolicy struct { - DynamicData - - BlockOverrideAllowed bool `xml:"blockOverrideAllowed"` - ShapingOverrideAllowed bool `xml:"shapingOverrideAllowed"` - VendorConfigOverrideAllowed bool `xml:"vendorConfigOverrideAllowed"` - LivePortMovingAllowed bool `xml:"livePortMovingAllowed"` - PortConfigResetAtDisconnect bool `xml:"portConfigResetAtDisconnect"` - NetworkResourcePoolOverrideAllowed *bool `xml:"networkResourcePoolOverrideAllowed"` - TrafficFilterOverrideAllowed *bool `xml:"trafficFilterOverrideAllowed"` -} - -func init() { - t["DVPortgroupPolicy"] = reflect.TypeOf((*DVPortgroupPolicy)(nil)).Elem() -} - -type DVPortgroupReconfiguredEvent struct { - DVPortgroupEvent - - ConfigSpec DVPortgroupConfigSpec `xml:"configSpec"` - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["DVPortgroupReconfiguredEvent"] = reflect.TypeOf((*DVPortgroupReconfiguredEvent)(nil)).Elem() -} - -type DVPortgroupRenamedEvent struct { - DVPortgroupEvent - - OldName string `xml:"oldName"` - NewName string `xml:"newName"` -} - -func init() { - t["DVPortgroupRenamedEvent"] = reflect.TypeOf((*DVPortgroupRenamedEvent)(nil)).Elem() -} - -type DVPortgroupRollbackRequestType struct { - This ManagedObjectReference `xml:"_this"` - EntityBackup *EntityBackupConfig `xml:"entityBackup,omitempty"` -} - -func init() { - t["DVPortgroupRollbackRequestType"] = reflect.TypeOf((*DVPortgroupRollbackRequestType)(nil)).Elem() -} - -type DVPortgroupRollback_Task DVPortgroupRollbackRequestType - -func init() { - t["DVPortgroupRollback_Task"] = reflect.TypeOf((*DVPortgroupRollback_Task)(nil)).Elem() -} - -type DVPortgroupRollback_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DVPortgroupSelection struct { - SelectionSet - - DvsUuid string `xml:"dvsUuid"` - PortgroupKey []string `xml:"portgroupKey"` -} - -func init() { - t["DVPortgroupSelection"] = reflect.TypeOf((*DVPortgroupSelection)(nil)).Elem() -} - -type DVSBackupRestoreCapability struct { - DynamicData - - BackupRestoreSupported bool `xml:"backupRestoreSupported"` -} - -func init() { - t["DVSBackupRestoreCapability"] = reflect.TypeOf((*DVSBackupRestoreCapability)(nil)).Elem() -} - -type DVSCapability struct { - DynamicData - - DvsOperationSupported *bool `xml:"dvsOperationSupported"` - DvPortGroupOperationSupported *bool `xml:"dvPortGroupOperationSupported"` - DvPortOperationSupported *bool `xml:"dvPortOperationSupported"` - CompatibleHostComponentProductInfo []DistributedVirtualSwitchHostProductSpec `xml:"compatibleHostComponentProductInfo,omitempty"` - FeaturesSupported BaseDVSFeatureCapability `xml:"featuresSupported,omitempty,typeattr"` -} - -func init() { - t["DVSCapability"] = reflect.TypeOf((*DVSCapability)(nil)).Elem() -} - -type DVSConfigInfo struct { - DynamicData - - Uuid string `xml:"uuid"` - Name string `xml:"name"` - NumStandalonePorts int32 `xml:"numStandalonePorts"` - NumPorts int32 `xml:"numPorts"` - MaxPorts int32 `xml:"maxPorts"` - UplinkPortPolicy BaseDVSUplinkPortPolicy `xml:"uplinkPortPolicy,typeattr"` - UplinkPortgroup []ManagedObjectReference `xml:"uplinkPortgroup,omitempty"` - DefaultPortConfig BaseDVPortSetting `xml:"defaultPortConfig,typeattr"` - Host []DistributedVirtualSwitchHostMember `xml:"host,omitempty"` - ProductInfo DistributedVirtualSwitchProductSpec `xml:"productInfo"` - TargetInfo *DistributedVirtualSwitchProductSpec `xml:"targetInfo,omitempty"` - ExtensionKey string `xml:"extensionKey,omitempty"` - VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` - Policy *DVSPolicy `xml:"policy,omitempty"` - Description string `xml:"description,omitempty"` - ConfigVersion string `xml:"configVersion"` - Contact DVSContactInfo `xml:"contact"` - SwitchIpAddress string `xml:"switchIpAddress,omitempty"` - CreateTime time.Time `xml:"createTime"` - NetworkResourceManagementEnabled *bool `xml:"networkResourceManagementEnabled"` - DefaultProxySwitchMaxNumPorts int32 `xml:"defaultProxySwitchMaxNumPorts,omitempty"` - HealthCheckConfig []BaseDVSHealthCheckConfig `xml:"healthCheckConfig,omitempty,typeattr"` - InfrastructureTrafficResourceConfig []DvsHostInfrastructureTrafficResource `xml:"infrastructureTrafficResourceConfig,omitempty"` - NetworkResourceControlVersion string `xml:"networkResourceControlVersion,omitempty"` - VmVnicNetworkResourcePool []DVSVmVnicNetworkResourcePool `xml:"vmVnicNetworkResourcePool,omitempty"` - PnicCapacityRatioForReservation int32 `xml:"pnicCapacityRatioForReservation,omitempty"` -} - -func init() { - t["DVSConfigInfo"] = reflect.TypeOf((*DVSConfigInfo)(nil)).Elem() -} - -type DVSConfigSpec struct { - DynamicData - - ConfigVersion string `xml:"configVersion,omitempty"` - Name string `xml:"name,omitempty"` - NumStandalonePorts int32 `xml:"numStandalonePorts,omitempty"` - MaxPorts int32 `xml:"maxPorts,omitempty"` - UplinkPortPolicy BaseDVSUplinkPortPolicy `xml:"uplinkPortPolicy,omitempty,typeattr"` - UplinkPortgroup []ManagedObjectReference `xml:"uplinkPortgroup,omitempty"` - DefaultPortConfig BaseDVPortSetting `xml:"defaultPortConfig,omitempty,typeattr"` - Host []DistributedVirtualSwitchHostMemberConfigSpec `xml:"host,omitempty"` - ExtensionKey string `xml:"extensionKey,omitempty"` - Description string `xml:"description,omitempty"` - Policy *DVSPolicy `xml:"policy,omitempty"` - VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` - Contact *DVSContactInfo `xml:"contact,omitempty"` - SwitchIpAddress string `xml:"switchIpAddress,omitempty"` - DefaultProxySwitchMaxNumPorts int32 `xml:"defaultProxySwitchMaxNumPorts,omitempty"` - InfrastructureTrafficResourceConfig []DvsHostInfrastructureTrafficResource `xml:"infrastructureTrafficResourceConfig,omitempty"` - NetworkResourceControlVersion string `xml:"networkResourceControlVersion,omitempty"` -} - -func init() { - t["DVSConfigSpec"] = reflect.TypeOf((*DVSConfigSpec)(nil)).Elem() -} - -type DVSContactInfo struct { - DynamicData - - Name string `xml:"name,omitempty"` - Contact string `xml:"contact,omitempty"` -} - -func init() { - t["DVSContactInfo"] = reflect.TypeOf((*DVSContactInfo)(nil)).Elem() -} - -type DVSCreateSpec struct { - DynamicData - - ConfigSpec BaseDVSConfigSpec `xml:"configSpec,typeattr"` - ProductInfo *DistributedVirtualSwitchProductSpec `xml:"productInfo,omitempty"` - Capability *DVSCapability `xml:"capability,omitempty"` -} - -func init() { - t["DVSCreateSpec"] = reflect.TypeOf((*DVSCreateSpec)(nil)).Elem() -} - -type DVSFailureCriteria struct { - InheritablePolicy - - CheckSpeed *StringPolicy `xml:"checkSpeed,omitempty"` - Speed *IntPolicy `xml:"speed,omitempty"` - CheckDuplex *BoolPolicy `xml:"checkDuplex,omitempty"` - FullDuplex *BoolPolicy `xml:"fullDuplex,omitempty"` - CheckErrorPercent *BoolPolicy `xml:"checkErrorPercent,omitempty"` - Percentage *IntPolicy `xml:"percentage,omitempty"` - CheckBeacon *BoolPolicy `xml:"checkBeacon,omitempty"` -} - -func init() { - t["DVSFailureCriteria"] = reflect.TypeOf((*DVSFailureCriteria)(nil)).Elem() -} - -type DVSFeatureCapability struct { - DynamicData - - NetworkResourceManagementSupported bool `xml:"networkResourceManagementSupported"` - VmDirectPathGen2Supported bool `xml:"vmDirectPathGen2Supported"` - NicTeamingPolicy []string `xml:"nicTeamingPolicy,omitempty"` - NetworkResourcePoolHighShareValue int32 `xml:"networkResourcePoolHighShareValue,omitempty"` - NetworkResourceManagementCapability *DVSNetworkResourceManagementCapability `xml:"networkResourceManagementCapability,omitempty"` - HealthCheckCapability BaseDVSHealthCheckCapability `xml:"healthCheckCapability,omitempty,typeattr"` - RollbackCapability *DVSRollbackCapability `xml:"rollbackCapability,omitempty"` - BackupRestoreCapability *DVSBackupRestoreCapability `xml:"backupRestoreCapability,omitempty"` - NetworkFilterSupported *bool `xml:"networkFilterSupported"` -} - -func init() { - t["DVSFeatureCapability"] = reflect.TypeOf((*DVSFeatureCapability)(nil)).Elem() -} - -type DVSHealthCheckCapability struct { - DynamicData -} - -func init() { - t["DVSHealthCheckCapability"] = reflect.TypeOf((*DVSHealthCheckCapability)(nil)).Elem() -} - -type DVSHealthCheckConfig struct { - DynamicData - - Enable *bool `xml:"enable"` - Interval int32 `xml:"interval,omitempty"` -} - -func init() { - t["DVSHealthCheckConfig"] = reflect.TypeOf((*DVSHealthCheckConfig)(nil)).Elem() -} - -type DVSHostLocalPortInfo struct { - DynamicData - - SwitchUuid string `xml:"switchUuid"` - PortKey string `xml:"portKey"` - Setting BaseDVPortSetting `xml:"setting,typeattr"` - Vnic string `xml:"vnic"` -} - -func init() { - t["DVSHostLocalPortInfo"] = reflect.TypeOf((*DVSHostLocalPortInfo)(nil)).Elem() -} - -type DVSManagerDvsConfigTarget struct { - DynamicData - - DistributedVirtualPortgroup []DistributedVirtualPortgroupInfo `xml:"distributedVirtualPortgroup,omitempty"` - DistributedVirtualSwitch []DistributedVirtualSwitchInfo `xml:"distributedVirtualSwitch,omitempty"` -} - -func init() { - t["DVSManagerDvsConfigTarget"] = reflect.TypeOf((*DVSManagerDvsConfigTarget)(nil)).Elem() -} - -type DVSManagerExportEntityRequestType struct { - This ManagedObjectReference `xml:"_this"` - SelectionSet []BaseSelectionSet `xml:"selectionSet,typeattr"` -} - -func init() { - t["DVSManagerExportEntityRequestType"] = reflect.TypeOf((*DVSManagerExportEntityRequestType)(nil)).Elem() -} - -type DVSManagerExportEntity_Task DVSManagerExportEntityRequestType - -func init() { - t["DVSManagerExportEntity_Task"] = reflect.TypeOf((*DVSManagerExportEntity_Task)(nil)).Elem() -} - -type DVSManagerExportEntity_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DVSManagerImportEntityRequestType struct { - This ManagedObjectReference `xml:"_this"` - EntityBackup []EntityBackupConfig `xml:"entityBackup"` - ImportType string `xml:"importType"` -} - -func init() { - t["DVSManagerImportEntityRequestType"] = reflect.TypeOf((*DVSManagerImportEntityRequestType)(nil)).Elem() -} - -type DVSManagerImportEntity_Task DVSManagerImportEntityRequestType - -func init() { - t["DVSManagerImportEntity_Task"] = reflect.TypeOf((*DVSManagerImportEntity_Task)(nil)).Elem() -} - -type DVSManagerImportEntity_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DVSManagerLookupDvPortGroup DVSManagerLookupDvPortGroupRequestType - -func init() { - t["DVSManagerLookupDvPortGroup"] = reflect.TypeOf((*DVSManagerLookupDvPortGroup)(nil)).Elem() -} - -type DVSManagerLookupDvPortGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - SwitchUuid string `xml:"switchUuid"` - PortgroupKey string `xml:"portgroupKey"` -} - -func init() { - t["DVSManagerLookupDvPortGroupRequestType"] = reflect.TypeOf((*DVSManagerLookupDvPortGroupRequestType)(nil)).Elem() -} - -type DVSManagerLookupDvPortGroupResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type DVSNameArrayUplinkPortPolicy struct { - DVSUplinkPortPolicy - - UplinkPortName []string `xml:"uplinkPortName"` -} - -func init() { - t["DVSNameArrayUplinkPortPolicy"] = reflect.TypeOf((*DVSNameArrayUplinkPortPolicy)(nil)).Elem() -} - -type DVSNetworkResourceManagementCapability struct { - DynamicData - - NetworkResourceManagementSupported bool `xml:"networkResourceManagementSupported"` - NetworkResourcePoolHighShareValue int32 `xml:"networkResourcePoolHighShareValue"` - QosSupported bool `xml:"qosSupported"` - UserDefinedNetworkResourcePoolsSupported bool `xml:"userDefinedNetworkResourcePoolsSupported"` - NetworkResourceControlVersion3Supported *bool `xml:"networkResourceControlVersion3Supported"` -} - -func init() { - t["DVSNetworkResourceManagementCapability"] = reflect.TypeOf((*DVSNetworkResourceManagementCapability)(nil)).Elem() -} - -type DVSNetworkResourcePool struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name,omitempty"` - Description string `xml:"description,omitempty"` - ConfigVersion string `xml:"configVersion"` - AllocationInfo DVSNetworkResourcePoolAllocationInfo `xml:"allocationInfo"` -} - -func init() { - t["DVSNetworkResourcePool"] = reflect.TypeOf((*DVSNetworkResourcePool)(nil)).Elem() -} - -type DVSNetworkResourcePoolAllocationInfo struct { - DynamicData - - Limit int64 `xml:"limit,omitempty"` - Shares *SharesInfo `xml:"shares,omitempty"` - PriorityTag int32 `xml:"priorityTag,omitempty"` -} - -func init() { - t["DVSNetworkResourcePoolAllocationInfo"] = reflect.TypeOf((*DVSNetworkResourcePoolAllocationInfo)(nil)).Elem() -} - -type DVSNetworkResourcePoolConfigSpec struct { - DynamicData - - Key string `xml:"key"` - ConfigVersion string `xml:"configVersion,omitempty"` - AllocationInfo *DVSNetworkResourcePoolAllocationInfo `xml:"allocationInfo,omitempty"` - Name string `xml:"name,omitempty"` - Description string `xml:"description,omitempty"` -} - -func init() { - t["DVSNetworkResourcePoolConfigSpec"] = reflect.TypeOf((*DVSNetworkResourcePoolConfigSpec)(nil)).Elem() -} - -type DVSPolicy struct { - DynamicData - - AutoPreInstallAllowed *bool `xml:"autoPreInstallAllowed"` - AutoUpgradeAllowed *bool `xml:"autoUpgradeAllowed"` - PartialUpgradeAllowed *bool `xml:"partialUpgradeAllowed"` -} - -func init() { - t["DVSPolicy"] = reflect.TypeOf((*DVSPolicy)(nil)).Elem() -} - -type DVSRollbackCapability struct { - DynamicData - - RollbackSupported bool `xml:"rollbackSupported"` -} - -func init() { - t["DVSRollbackCapability"] = reflect.TypeOf((*DVSRollbackCapability)(nil)).Elem() -} - -type DVSRollbackRequestType struct { - This ManagedObjectReference `xml:"_this"` - EntityBackup *EntityBackupConfig `xml:"entityBackup,omitempty"` -} - -func init() { - t["DVSRollbackRequestType"] = reflect.TypeOf((*DVSRollbackRequestType)(nil)).Elem() -} - -type DVSRollback_Task DVSRollbackRequestType - -func init() { - t["DVSRollback_Task"] = reflect.TypeOf((*DVSRollback_Task)(nil)).Elem() -} - -type DVSRollback_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DVSRuntimeInfo struct { - DynamicData - - HostMemberRuntime []HostMemberRuntimeInfo `xml:"hostMemberRuntime,omitempty"` - ResourceRuntimeInfo *DvsResourceRuntimeInfo `xml:"resourceRuntimeInfo,omitempty"` -} - -func init() { - t["DVSRuntimeInfo"] = reflect.TypeOf((*DVSRuntimeInfo)(nil)).Elem() -} - -type DVSSecurityPolicy struct { - InheritablePolicy - - AllowPromiscuous *BoolPolicy `xml:"allowPromiscuous,omitempty"` - MacChanges *BoolPolicy `xml:"macChanges,omitempty"` - ForgedTransmits *BoolPolicy `xml:"forgedTransmits,omitempty"` -} - -func init() { - t["DVSSecurityPolicy"] = reflect.TypeOf((*DVSSecurityPolicy)(nil)).Elem() -} - -type DVSSelection struct { - SelectionSet - - DvsUuid string `xml:"dvsUuid"` -} - -func init() { - t["DVSSelection"] = reflect.TypeOf((*DVSSelection)(nil)).Elem() -} - -type DVSSummary struct { - DynamicData - - Name string `xml:"name"` - Uuid string `xml:"uuid"` - NumPorts int32 `xml:"numPorts"` - ProductInfo *DistributedVirtualSwitchProductSpec `xml:"productInfo,omitempty"` - HostMember []ManagedObjectReference `xml:"hostMember,omitempty"` - Vm []ManagedObjectReference `xml:"vm,omitempty"` - Host []ManagedObjectReference `xml:"host,omitempty"` - PortgroupName []string `xml:"portgroupName,omitempty"` - Description string `xml:"description,omitempty"` - Contact *DVSContactInfo `xml:"contact,omitempty"` - NumHosts int32 `xml:"numHosts,omitempty"` -} - -func init() { - t["DVSSummary"] = reflect.TypeOf((*DVSSummary)(nil)).Elem() -} - -type DVSTrafficShapingPolicy struct { - InheritablePolicy - - Enabled *BoolPolicy `xml:"enabled,omitempty"` - AverageBandwidth *LongPolicy `xml:"averageBandwidth,omitempty"` - PeakBandwidth *LongPolicy `xml:"peakBandwidth,omitempty"` - BurstSize *LongPolicy `xml:"burstSize,omitempty"` -} - -func init() { - t["DVSTrafficShapingPolicy"] = reflect.TypeOf((*DVSTrafficShapingPolicy)(nil)).Elem() -} - -type DVSUplinkPortPolicy struct { - DynamicData -} - -func init() { - t["DVSUplinkPortPolicy"] = reflect.TypeOf((*DVSUplinkPortPolicy)(nil)).Elem() -} - -type DVSVendorSpecificConfig struct { - InheritablePolicy - - KeyValue []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"keyValue,omitempty"` -} - -func init() { - t["DVSVendorSpecificConfig"] = reflect.TypeOf((*DVSVendorSpecificConfig)(nil)).Elem() -} - -type DVSVmVnicNetworkResourcePool struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name,omitempty"` - Description string `xml:"description,omitempty"` - ConfigVersion string `xml:"configVersion"` - AllocationInfo *DvsVmVnicResourceAllocation `xml:"allocationInfo,omitempty"` -} - -func init() { - t["DVSVmVnicNetworkResourcePool"] = reflect.TypeOf((*DVSVmVnicNetworkResourcePool)(nil)).Elem() -} - -type DailyTaskScheduler struct { - HourlyTaskScheduler - - Hour int32 `xml:"hour"` -} - -func init() { - t["DailyTaskScheduler"] = reflect.TypeOf((*DailyTaskScheduler)(nil)).Elem() -} - -type DasAdmissionControlDisabledEvent struct { - ClusterEvent -} - -func init() { - t["DasAdmissionControlDisabledEvent"] = reflect.TypeOf((*DasAdmissionControlDisabledEvent)(nil)).Elem() -} - -type DasAdmissionControlEnabledEvent struct { - ClusterEvent -} - -func init() { - t["DasAdmissionControlEnabledEvent"] = reflect.TypeOf((*DasAdmissionControlEnabledEvent)(nil)).Elem() -} - -type DasAgentFoundEvent struct { - ClusterEvent -} - -func init() { - t["DasAgentFoundEvent"] = reflect.TypeOf((*DasAgentFoundEvent)(nil)).Elem() -} - -type DasAgentUnavailableEvent struct { - ClusterEvent -} - -func init() { - t["DasAgentUnavailableEvent"] = reflect.TypeOf((*DasAgentUnavailableEvent)(nil)).Elem() -} - -type DasClusterIsolatedEvent struct { - ClusterEvent -} - -func init() { - t["DasClusterIsolatedEvent"] = reflect.TypeOf((*DasClusterIsolatedEvent)(nil)).Elem() -} - -type DasConfigFault struct { - VimFault - - Reason string `xml:"reason,omitempty"` - Output string `xml:"output,omitempty"` - Event []BaseEvent `xml:"event,omitempty,typeattr"` -} - -func init() { - t["DasConfigFault"] = reflect.TypeOf((*DasConfigFault)(nil)).Elem() -} - -type DasConfigFaultFault DasConfigFault - -func init() { - t["DasConfigFaultFault"] = reflect.TypeOf((*DasConfigFaultFault)(nil)).Elem() -} - -type DasDisabledEvent struct { - ClusterEvent -} - -func init() { - t["DasDisabledEvent"] = reflect.TypeOf((*DasDisabledEvent)(nil)).Elem() -} - -type DasEnabledEvent struct { - ClusterEvent -} - -func init() { - t["DasEnabledEvent"] = reflect.TypeOf((*DasEnabledEvent)(nil)).Elem() -} - -type DasHeartbeatDatastoreInfo struct { - DynamicData - - Datastore ManagedObjectReference `xml:"datastore"` - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["DasHeartbeatDatastoreInfo"] = reflect.TypeOf((*DasHeartbeatDatastoreInfo)(nil)).Elem() -} - -type DasHostFailedEvent struct { - ClusterEvent - - FailedHost HostEventArgument `xml:"failedHost"` -} - -func init() { - t["DasHostFailedEvent"] = reflect.TypeOf((*DasHostFailedEvent)(nil)).Elem() -} - -type DasHostIsolatedEvent struct { - ClusterEvent - - IsolatedHost HostEventArgument `xml:"isolatedHost"` -} - -func init() { - t["DasHostIsolatedEvent"] = reflect.TypeOf((*DasHostIsolatedEvent)(nil)).Elem() -} - -type DatabaseError struct { - RuntimeFault -} - -func init() { - t["DatabaseError"] = reflect.TypeOf((*DatabaseError)(nil)).Elem() -} - -type DatabaseErrorFault DatabaseError - -func init() { - t["DatabaseErrorFault"] = reflect.TypeOf((*DatabaseErrorFault)(nil)).Elem() -} - -type DatabaseSizeEstimate struct { - DynamicData - - Size int64 `xml:"size"` -} - -func init() { - t["DatabaseSizeEstimate"] = reflect.TypeOf((*DatabaseSizeEstimate)(nil)).Elem() -} - -type DatabaseSizeParam struct { - DynamicData - - InventoryDesc InventoryDescription `xml:"inventoryDesc"` - PerfStatsDesc *PerformanceStatisticsDescription `xml:"perfStatsDesc,omitempty"` -} - -func init() { - t["DatabaseSizeParam"] = reflect.TypeOf((*DatabaseSizeParam)(nil)).Elem() -} - -type DatacenterConfigInfo struct { - DynamicData - - DefaultHardwareVersionKey string `xml:"defaultHardwareVersionKey,omitempty"` -} - -func init() { - t["DatacenterConfigInfo"] = reflect.TypeOf((*DatacenterConfigInfo)(nil)).Elem() -} - -type DatacenterConfigSpec struct { - DynamicData - - DefaultHardwareVersionKey string `xml:"defaultHardwareVersionKey,omitempty"` -} - -func init() { - t["DatacenterConfigSpec"] = reflect.TypeOf((*DatacenterConfigSpec)(nil)).Elem() -} - -type DatacenterCreatedEvent struct { - DatacenterEvent - - Parent FolderEventArgument `xml:"parent"` -} - -func init() { - t["DatacenterCreatedEvent"] = reflect.TypeOf((*DatacenterCreatedEvent)(nil)).Elem() -} - -type DatacenterEvent struct { - Event -} - -func init() { - t["DatacenterEvent"] = reflect.TypeOf((*DatacenterEvent)(nil)).Elem() -} - -type DatacenterEventArgument struct { - EntityEventArgument - - Datacenter ManagedObjectReference `xml:"datacenter"` -} - -func init() { - t["DatacenterEventArgument"] = reflect.TypeOf((*DatacenterEventArgument)(nil)).Elem() -} - -type DatacenterMismatch struct { - MigrationFault - - InvalidArgument []DatacenterMismatchArgument `xml:"invalidArgument"` - ExpectedDatacenter ManagedObjectReference `xml:"expectedDatacenter"` -} - -func init() { - t["DatacenterMismatch"] = reflect.TypeOf((*DatacenterMismatch)(nil)).Elem() -} - -type DatacenterMismatchArgument struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - InputDatacenter *ManagedObjectReference `xml:"inputDatacenter,omitempty"` -} - -func init() { - t["DatacenterMismatchArgument"] = reflect.TypeOf((*DatacenterMismatchArgument)(nil)).Elem() -} - -type DatacenterMismatchFault DatacenterMismatch - -func init() { - t["DatacenterMismatchFault"] = reflect.TypeOf((*DatacenterMismatchFault)(nil)).Elem() -} - -type DatacenterRenamedEvent struct { - DatacenterEvent - - OldName string `xml:"oldName"` - NewName string `xml:"newName"` -} - -func init() { - t["DatacenterRenamedEvent"] = reflect.TypeOf((*DatacenterRenamedEvent)(nil)).Elem() -} - -type DatastoreCapability struct { - DynamicData - - DirectoryHierarchySupported bool `xml:"directoryHierarchySupported"` - RawDiskMappingsSupported bool `xml:"rawDiskMappingsSupported"` - PerFileThinProvisioningSupported bool `xml:"perFileThinProvisioningSupported"` - StorageIORMSupported *bool `xml:"storageIORMSupported"` - NativeSnapshotSupported *bool `xml:"nativeSnapshotSupported"` - TopLevelDirectoryCreateSupported *bool `xml:"topLevelDirectoryCreateSupported"` - SeSparseSupported *bool `xml:"seSparseSupported"` - VmfsSparseSupported *bool `xml:"vmfsSparseSupported"` - VsanSparseSupported *bool `xml:"vsanSparseSupported"` - UpitSupported *bool `xml:"upitSupported"` -} - -func init() { - t["DatastoreCapability"] = reflect.TypeOf((*DatastoreCapability)(nil)).Elem() -} - -type DatastoreCapacityIncreasedEvent struct { - DatastoreEvent - - OldCapacity int64 `xml:"oldCapacity"` - NewCapacity int64 `xml:"newCapacity"` -} - -func init() { - t["DatastoreCapacityIncreasedEvent"] = reflect.TypeOf((*DatastoreCapacityIncreasedEvent)(nil)).Elem() -} - -type DatastoreDestroyedEvent struct { - DatastoreEvent -} - -func init() { - t["DatastoreDestroyedEvent"] = reflect.TypeOf((*DatastoreDestroyedEvent)(nil)).Elem() -} - -type DatastoreDiscoveredEvent struct { - HostEvent - - Datastore DatastoreEventArgument `xml:"datastore"` -} - -func init() { - t["DatastoreDiscoveredEvent"] = reflect.TypeOf((*DatastoreDiscoveredEvent)(nil)).Elem() -} - -type DatastoreDuplicatedEvent struct { - DatastoreEvent -} - -func init() { - t["DatastoreDuplicatedEvent"] = reflect.TypeOf((*DatastoreDuplicatedEvent)(nil)).Elem() -} - -type DatastoreEnterMaintenanceMode DatastoreEnterMaintenanceModeRequestType - -func init() { - t["DatastoreEnterMaintenanceMode"] = reflect.TypeOf((*DatastoreEnterMaintenanceMode)(nil)).Elem() -} - -type DatastoreEnterMaintenanceModeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DatastoreEnterMaintenanceModeRequestType"] = reflect.TypeOf((*DatastoreEnterMaintenanceModeRequestType)(nil)).Elem() -} - -type DatastoreEnterMaintenanceModeResponse struct { - Returnval StoragePlacementResult `xml:"returnval"` -} - -type DatastoreEvent struct { - Event - - Datastore *DatastoreEventArgument `xml:"datastore,omitempty"` -} - -func init() { - t["DatastoreEvent"] = reflect.TypeOf((*DatastoreEvent)(nil)).Elem() -} - -type DatastoreEventArgument struct { - EntityEventArgument - - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["DatastoreEventArgument"] = reflect.TypeOf((*DatastoreEventArgument)(nil)).Elem() -} - -type DatastoreExitMaintenanceModeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DatastoreExitMaintenanceModeRequestType"] = reflect.TypeOf((*DatastoreExitMaintenanceModeRequestType)(nil)).Elem() -} - -type DatastoreExitMaintenanceMode_Task DatastoreExitMaintenanceModeRequestType - -func init() { - t["DatastoreExitMaintenanceMode_Task"] = reflect.TypeOf((*DatastoreExitMaintenanceMode_Task)(nil)).Elem() -} - -type DatastoreExitMaintenanceMode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DatastoreFileCopiedEvent struct { - DatastoreFileEvent - - SourceDatastore DatastoreEventArgument `xml:"sourceDatastore"` - SourceFile string `xml:"sourceFile"` -} - -func init() { - t["DatastoreFileCopiedEvent"] = reflect.TypeOf((*DatastoreFileCopiedEvent)(nil)).Elem() -} - -type DatastoreFileDeletedEvent struct { - DatastoreFileEvent -} - -func init() { - t["DatastoreFileDeletedEvent"] = reflect.TypeOf((*DatastoreFileDeletedEvent)(nil)).Elem() -} - -type DatastoreFileEvent struct { - DatastoreEvent - - TargetFile string `xml:"targetFile"` - SourceOfOperation string `xml:"sourceOfOperation,omitempty"` - Succeeded *bool `xml:"succeeded"` -} - -func init() { - t["DatastoreFileEvent"] = reflect.TypeOf((*DatastoreFileEvent)(nil)).Elem() -} - -type DatastoreFileMovedEvent struct { - DatastoreFileEvent - - SourceDatastore DatastoreEventArgument `xml:"sourceDatastore"` - SourceFile string `xml:"sourceFile"` -} - -func init() { - t["DatastoreFileMovedEvent"] = reflect.TypeOf((*DatastoreFileMovedEvent)(nil)).Elem() -} - -type DatastoreHostMount struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - MountInfo HostMountInfo `xml:"mountInfo"` -} - -func init() { - t["DatastoreHostMount"] = reflect.TypeOf((*DatastoreHostMount)(nil)).Elem() -} - -type DatastoreIORMReconfiguredEvent struct { - DatastoreEvent -} - -func init() { - t["DatastoreIORMReconfiguredEvent"] = reflect.TypeOf((*DatastoreIORMReconfiguredEvent)(nil)).Elem() -} - -type DatastoreInfo struct { - DynamicData - - Name string `xml:"name"` - Url string `xml:"url"` - FreeSpace int64 `xml:"freeSpace"` - MaxFileSize int64 `xml:"maxFileSize"` - MaxVirtualDiskCapacity int64 `xml:"maxVirtualDiskCapacity,omitempty"` - MaxMemoryFileSize int64 `xml:"maxMemoryFileSize,omitempty"` - Timestamp *time.Time `xml:"timestamp"` - ContainerId string `xml:"containerId,omitempty"` -} - -func init() { - t["DatastoreInfo"] = reflect.TypeOf((*DatastoreInfo)(nil)).Elem() -} - -type DatastoreMountPathDatastorePair struct { - DynamicData - - OldMountPath string `xml:"oldMountPath"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["DatastoreMountPathDatastorePair"] = reflect.TypeOf((*DatastoreMountPathDatastorePair)(nil)).Elem() -} - -type DatastoreNotWritableOnHost struct { - InvalidDatastore - - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["DatastoreNotWritableOnHost"] = reflect.TypeOf((*DatastoreNotWritableOnHost)(nil)).Elem() -} - -type DatastoreNotWritableOnHostFault BaseDatastoreNotWritableOnHost - -func init() { - t["DatastoreNotWritableOnHostFault"] = reflect.TypeOf((*DatastoreNotWritableOnHostFault)(nil)).Elem() -} - -type DatastoreOption struct { - DynamicData - - UnsupportedVolumes []VirtualMachineDatastoreVolumeOption `xml:"unsupportedVolumes,omitempty"` -} - -func init() { - t["DatastoreOption"] = reflect.TypeOf((*DatastoreOption)(nil)).Elem() -} - -type DatastorePrincipalConfigured struct { - HostEvent - - DatastorePrincipal string `xml:"datastorePrincipal"` -} - -func init() { - t["DatastorePrincipalConfigured"] = reflect.TypeOf((*DatastorePrincipalConfigured)(nil)).Elem() -} - -type DatastoreRemovedOnHostEvent struct { - HostEvent - - Datastore DatastoreEventArgument `xml:"datastore"` -} - -func init() { - t["DatastoreRemovedOnHostEvent"] = reflect.TypeOf((*DatastoreRemovedOnHostEvent)(nil)).Elem() -} - -type DatastoreRenamedEvent struct { - DatastoreEvent - - OldName string `xml:"oldName"` - NewName string `xml:"newName"` -} - -func init() { - t["DatastoreRenamedEvent"] = reflect.TypeOf((*DatastoreRenamedEvent)(nil)).Elem() -} - -type DatastoreRenamedOnHostEvent struct { - HostEvent - - OldName string `xml:"oldName"` - NewName string `xml:"newName"` -} - -func init() { - t["DatastoreRenamedOnHostEvent"] = reflect.TypeOf((*DatastoreRenamedOnHostEvent)(nil)).Elem() -} - -type DatastoreSummary struct { - DynamicData - - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` - Name string `xml:"name"` - Url string `xml:"url"` - Capacity int64 `xml:"capacity"` - FreeSpace int64 `xml:"freeSpace"` - Uncommitted int64 `xml:"uncommitted,omitempty"` - Accessible bool `xml:"accessible"` - MultipleHostAccess *bool `xml:"multipleHostAccess"` - Type string `xml:"type"` - MaintenanceMode string `xml:"maintenanceMode,omitempty"` -} - -func init() { - t["DatastoreSummary"] = reflect.TypeOf((*DatastoreSummary)(nil)).Elem() -} - -type DatastoreVVolContainerFailoverPair struct { - DynamicData - - SrcContainer string `xml:"srcContainer,omitempty"` - TgtContainer string `xml:"tgtContainer"` - VvolMapping []KeyValue `xml:"vvolMapping,omitempty"` -} - -func init() { - t["DatastoreVVolContainerFailoverPair"] = reflect.TypeOf((*DatastoreVVolContainerFailoverPair)(nil)).Elem() -} - -type DateTimeProfile struct { - ApplyProfile -} - -func init() { - t["DateTimeProfile"] = reflect.TypeOf((*DateTimeProfile)(nil)).Elem() -} - -type DecodeLicense DecodeLicenseRequestType - -func init() { - t["DecodeLicense"] = reflect.TypeOf((*DecodeLicense)(nil)).Elem() -} - -type DecodeLicenseRequestType struct { - This ManagedObjectReference `xml:"_this"` - LicenseKey string `xml:"licenseKey"` -} - -func init() { - t["DecodeLicenseRequestType"] = reflect.TypeOf((*DecodeLicenseRequestType)(nil)).Elem() -} - -type DecodeLicenseResponse struct { - Returnval LicenseManagerLicenseInfo `xml:"returnval"` -} - -type DefragmentAllDisks DefragmentAllDisksRequestType - -func init() { - t["DefragmentAllDisks"] = reflect.TypeOf((*DefragmentAllDisks)(nil)).Elem() -} - -type DefragmentAllDisksRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DefragmentAllDisksRequestType"] = reflect.TypeOf((*DefragmentAllDisksRequestType)(nil)).Elem() -} - -type DefragmentAllDisksResponse struct { -} - -type DefragmentVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["DefragmentVirtualDiskRequestType"] = reflect.TypeOf((*DefragmentVirtualDiskRequestType)(nil)).Elem() -} - -type DefragmentVirtualDisk_Task DefragmentVirtualDiskRequestType - -func init() { - t["DefragmentVirtualDisk_Task"] = reflect.TypeOf((*DefragmentVirtualDisk_Task)(nil)).Elem() -} - -type DefragmentVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DeleteCustomizationSpec DeleteCustomizationSpecRequestType - -func init() { - t["DeleteCustomizationSpec"] = reflect.TypeOf((*DeleteCustomizationSpec)(nil)).Elem() -} - -type DeleteCustomizationSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` -} - -func init() { - t["DeleteCustomizationSpecRequestType"] = reflect.TypeOf((*DeleteCustomizationSpecRequestType)(nil)).Elem() -} - -type DeleteCustomizationSpecResponse struct { -} - -type DeleteDatastoreFileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["DeleteDatastoreFileRequestType"] = reflect.TypeOf((*DeleteDatastoreFileRequestType)(nil)).Elem() -} - -type DeleteDatastoreFile_Task DeleteDatastoreFileRequestType - -func init() { - t["DeleteDatastoreFile_Task"] = reflect.TypeOf((*DeleteDatastoreFile_Task)(nil)).Elem() -} - -type DeleteDatastoreFile_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DeleteDirectory DeleteDirectoryRequestType - -func init() { - t["DeleteDirectory"] = reflect.TypeOf((*DeleteDirectory)(nil)).Elem() -} - -type DeleteDirectoryInGuest DeleteDirectoryInGuestRequestType - -func init() { - t["DeleteDirectoryInGuest"] = reflect.TypeOf((*DeleteDirectoryInGuest)(nil)).Elem() -} - -type DeleteDirectoryInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - DirectoryPath string `xml:"directoryPath"` - Recursive bool `xml:"recursive"` -} - -func init() { - t["DeleteDirectoryInGuestRequestType"] = reflect.TypeOf((*DeleteDirectoryInGuestRequestType)(nil)).Elem() -} - -type DeleteDirectoryInGuestResponse struct { -} - -type DeleteDirectoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - DatastorePath string `xml:"datastorePath"` -} - -func init() { - t["DeleteDirectoryRequestType"] = reflect.TypeOf((*DeleteDirectoryRequestType)(nil)).Elem() -} - -type DeleteDirectoryResponse struct { -} - -type DeleteFile DeleteFileRequestType - -func init() { - t["DeleteFile"] = reflect.TypeOf((*DeleteFile)(nil)).Elem() -} - -type DeleteFileInGuest DeleteFileInGuestRequestType - -func init() { - t["DeleteFileInGuest"] = reflect.TypeOf((*DeleteFileInGuest)(nil)).Elem() -} - -type DeleteFileInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - FilePath string `xml:"filePath"` -} - -func init() { - t["DeleteFileInGuestRequestType"] = reflect.TypeOf((*DeleteFileInGuestRequestType)(nil)).Elem() -} - -type DeleteFileInGuestResponse struct { -} - -type DeleteFileRequestType struct { - This ManagedObjectReference `xml:"_this"` - DatastorePath string `xml:"datastorePath"` -} - -func init() { - t["DeleteFileRequestType"] = reflect.TypeOf((*DeleteFileRequestType)(nil)).Elem() -} - -type DeleteFileResponse struct { -} - -type DeleteHostSpecification DeleteHostSpecificationRequestType - -func init() { - t["DeleteHostSpecification"] = reflect.TypeOf((*DeleteHostSpecification)(nil)).Elem() -} - -type DeleteHostSpecificationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["DeleteHostSpecificationRequestType"] = reflect.TypeOf((*DeleteHostSpecificationRequestType)(nil)).Elem() -} - -type DeleteHostSpecificationResponse struct { -} - -type DeleteHostSubSpecification DeleteHostSubSpecificationRequestType - -func init() { - t["DeleteHostSubSpecification"] = reflect.TypeOf((*DeleteHostSubSpecification)(nil)).Elem() -} - -type DeleteHostSubSpecificationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - SubSpecName string `xml:"subSpecName"` -} - -func init() { - t["DeleteHostSubSpecificationRequestType"] = reflect.TypeOf((*DeleteHostSubSpecificationRequestType)(nil)).Elem() -} - -type DeleteHostSubSpecificationResponse struct { -} - -type DeleteRegistryKeyInGuest DeleteRegistryKeyInGuestRequestType - -func init() { - t["DeleteRegistryKeyInGuest"] = reflect.TypeOf((*DeleteRegistryKeyInGuest)(nil)).Elem() -} - -type DeleteRegistryKeyInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - KeyName GuestRegKeyNameSpec `xml:"keyName"` - Recursive bool `xml:"recursive"` -} - -func init() { - t["DeleteRegistryKeyInGuestRequestType"] = reflect.TypeOf((*DeleteRegistryKeyInGuestRequestType)(nil)).Elem() -} - -type DeleteRegistryKeyInGuestResponse struct { -} - -type DeleteRegistryValueInGuest DeleteRegistryValueInGuestRequestType - -func init() { - t["DeleteRegistryValueInGuest"] = reflect.TypeOf((*DeleteRegistryValueInGuest)(nil)).Elem() -} - -type DeleteRegistryValueInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - ValueName GuestRegValueNameSpec `xml:"valueName"` -} - -func init() { - t["DeleteRegistryValueInGuestRequestType"] = reflect.TypeOf((*DeleteRegistryValueInGuestRequestType)(nil)).Elem() -} - -type DeleteRegistryValueInGuestResponse struct { -} - -type DeleteScsiLunState DeleteScsiLunStateRequestType - -func init() { - t["DeleteScsiLunState"] = reflect.TypeOf((*DeleteScsiLunState)(nil)).Elem() -} - -type DeleteScsiLunStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - LunCanonicalName string `xml:"lunCanonicalName"` -} - -func init() { - t["DeleteScsiLunStateRequestType"] = reflect.TypeOf((*DeleteScsiLunStateRequestType)(nil)).Elem() -} - -type DeleteScsiLunStateResponse struct { -} - -type DeleteVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["DeleteVStorageObjectRequestType"] = reflect.TypeOf((*DeleteVStorageObjectRequestType)(nil)).Elem() -} - -type DeleteVStorageObject_Task DeleteVStorageObjectRequestType - -func init() { - t["DeleteVStorageObject_Task"] = reflect.TypeOf((*DeleteVStorageObject_Task)(nil)).Elem() -} - -type DeleteVStorageObject_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DeleteVffsVolumeState DeleteVffsVolumeStateRequestType - -func init() { - t["DeleteVffsVolumeState"] = reflect.TypeOf((*DeleteVffsVolumeState)(nil)).Elem() -} - -type DeleteVffsVolumeStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - VffsUuid string `xml:"vffsUuid"` -} - -func init() { - t["DeleteVffsVolumeStateRequestType"] = reflect.TypeOf((*DeleteVffsVolumeStateRequestType)(nil)).Elem() -} - -type DeleteVffsVolumeStateResponse struct { -} - -type DeleteVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["DeleteVirtualDiskRequestType"] = reflect.TypeOf((*DeleteVirtualDiskRequestType)(nil)).Elem() -} - -type DeleteVirtualDisk_Task DeleteVirtualDiskRequestType - -func init() { - t["DeleteVirtualDisk_Task"] = reflect.TypeOf((*DeleteVirtualDisk_Task)(nil)).Elem() -} - -type DeleteVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DeleteVmfsVolumeState DeleteVmfsVolumeStateRequestType - -func init() { - t["DeleteVmfsVolumeState"] = reflect.TypeOf((*DeleteVmfsVolumeState)(nil)).Elem() -} - -type DeleteVmfsVolumeStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid string `xml:"vmfsUuid"` -} - -func init() { - t["DeleteVmfsVolumeStateRequestType"] = reflect.TypeOf((*DeleteVmfsVolumeStateRequestType)(nil)).Elem() -} - -type DeleteVmfsVolumeStateResponse struct { -} - -type DeleteVsanObjects DeleteVsanObjectsRequestType - -func init() { - t["DeleteVsanObjects"] = reflect.TypeOf((*DeleteVsanObjects)(nil)).Elem() -} - -type DeleteVsanObjectsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuids []string `xml:"uuids"` - Force *bool `xml:"force"` -} - -func init() { - t["DeleteVsanObjectsRequestType"] = reflect.TypeOf((*DeleteVsanObjectsRequestType)(nil)).Elem() -} - -type DeleteVsanObjectsResponse struct { - Returnval []HostVsanInternalSystemDeleteVsanObjectsResult `xml:"returnval"` -} - -type DeltaDiskFormatNotSupported struct { - VmConfigFault - - Datastore []ManagedObjectReference `xml:"datastore,omitempty"` - DeltaDiskFormat string `xml:"deltaDiskFormat"` -} - -func init() { - t["DeltaDiskFormatNotSupported"] = reflect.TypeOf((*DeltaDiskFormatNotSupported)(nil)).Elem() -} - -type DeltaDiskFormatNotSupportedFault DeltaDiskFormatNotSupported - -func init() { - t["DeltaDiskFormatNotSupportedFault"] = reflect.TypeOf((*DeltaDiskFormatNotSupportedFault)(nil)).Elem() -} - -type Description struct { - DynamicData - - Label string `xml:"label"` - Summary string `xml:"summary"` -} - -func init() { - t["Description"] = reflect.TypeOf((*Description)(nil)).Elem() -} - -type DeselectVnic DeselectVnicRequestType - -func init() { - t["DeselectVnic"] = reflect.TypeOf((*DeselectVnic)(nil)).Elem() -} - -type DeselectVnicForNicType DeselectVnicForNicTypeRequestType - -func init() { - t["DeselectVnicForNicType"] = reflect.TypeOf((*DeselectVnicForNicType)(nil)).Elem() -} - -type DeselectVnicForNicTypeRequestType struct { - This ManagedObjectReference `xml:"_this"` - NicType string `xml:"nicType"` - Device string `xml:"device"` -} - -func init() { - t["DeselectVnicForNicTypeRequestType"] = reflect.TypeOf((*DeselectVnicForNicTypeRequestType)(nil)).Elem() -} - -type DeselectVnicForNicTypeResponse struct { -} - -type DeselectVnicRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DeselectVnicRequestType"] = reflect.TypeOf((*DeselectVnicRequestType)(nil)).Elem() -} - -type DeselectVnicResponse struct { -} - -type DestinationSwitchFull struct { - CannotAccessNetwork -} - -func init() { - t["DestinationSwitchFull"] = reflect.TypeOf((*DestinationSwitchFull)(nil)).Elem() -} - -type DestinationSwitchFullFault DestinationSwitchFull - -func init() { - t["DestinationSwitchFullFault"] = reflect.TypeOf((*DestinationSwitchFullFault)(nil)).Elem() -} - -type DestinationVsanDisabled struct { - CannotMoveVsanEnabledHost - - DestinationCluster string `xml:"destinationCluster"` -} - -func init() { - t["DestinationVsanDisabled"] = reflect.TypeOf((*DestinationVsanDisabled)(nil)).Elem() -} - -type DestinationVsanDisabledFault DestinationVsanDisabled - -func init() { - t["DestinationVsanDisabledFault"] = reflect.TypeOf((*DestinationVsanDisabledFault)(nil)).Elem() -} - -type DestroyChildren DestroyChildrenRequestType - -func init() { - t["DestroyChildren"] = reflect.TypeOf((*DestroyChildren)(nil)).Elem() -} - -type DestroyChildrenRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyChildrenRequestType"] = reflect.TypeOf((*DestroyChildrenRequestType)(nil)).Elem() -} - -type DestroyChildrenResponse struct { -} - -type DestroyCollector DestroyCollectorRequestType - -func init() { - t["DestroyCollector"] = reflect.TypeOf((*DestroyCollector)(nil)).Elem() -} - -type DestroyCollectorRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyCollectorRequestType"] = reflect.TypeOf((*DestroyCollectorRequestType)(nil)).Elem() -} - -type DestroyCollectorResponse struct { -} - -type DestroyDatastore DestroyDatastoreRequestType - -func init() { - t["DestroyDatastore"] = reflect.TypeOf((*DestroyDatastore)(nil)).Elem() -} - -type DestroyDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyDatastoreRequestType"] = reflect.TypeOf((*DestroyDatastoreRequestType)(nil)).Elem() -} - -type DestroyDatastoreResponse struct { -} - -type DestroyIpPool DestroyIpPoolRequestType - -func init() { - t["DestroyIpPool"] = reflect.TypeOf((*DestroyIpPool)(nil)).Elem() -} - -type DestroyIpPoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` - Id int32 `xml:"id"` - Force bool `xml:"force"` -} - -func init() { - t["DestroyIpPoolRequestType"] = reflect.TypeOf((*DestroyIpPoolRequestType)(nil)).Elem() -} - -type DestroyIpPoolResponse struct { -} - -type DestroyNetwork DestroyNetworkRequestType - -func init() { - t["DestroyNetwork"] = reflect.TypeOf((*DestroyNetwork)(nil)).Elem() -} - -type DestroyNetworkRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyNetworkRequestType"] = reflect.TypeOf((*DestroyNetworkRequestType)(nil)).Elem() -} - -type DestroyNetworkResponse struct { -} - -type DestroyProfile DestroyProfileRequestType - -func init() { - t["DestroyProfile"] = reflect.TypeOf((*DestroyProfile)(nil)).Elem() -} - -type DestroyProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyProfileRequestType"] = reflect.TypeOf((*DestroyProfileRequestType)(nil)).Elem() -} - -type DestroyProfileResponse struct { -} - -type DestroyPropertyCollector DestroyPropertyCollectorRequestType - -func init() { - t["DestroyPropertyCollector"] = reflect.TypeOf((*DestroyPropertyCollector)(nil)).Elem() -} - -type DestroyPropertyCollectorRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyPropertyCollectorRequestType"] = reflect.TypeOf((*DestroyPropertyCollectorRequestType)(nil)).Elem() -} - -type DestroyPropertyCollectorResponse struct { -} - -type DestroyPropertyFilter DestroyPropertyFilterRequestType - -func init() { - t["DestroyPropertyFilter"] = reflect.TypeOf((*DestroyPropertyFilter)(nil)).Elem() -} - -type DestroyPropertyFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyPropertyFilterRequestType"] = reflect.TypeOf((*DestroyPropertyFilterRequestType)(nil)).Elem() -} - -type DestroyPropertyFilterResponse struct { -} - -type DestroyRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyRequestType"] = reflect.TypeOf((*DestroyRequestType)(nil)).Elem() -} - -type DestroyVffs DestroyVffsRequestType - -func init() { - t["DestroyVffs"] = reflect.TypeOf((*DestroyVffs)(nil)).Elem() -} - -type DestroyVffsRequestType struct { - This ManagedObjectReference `xml:"_this"` - VffsPath string `xml:"vffsPath"` -} - -func init() { - t["DestroyVffsRequestType"] = reflect.TypeOf((*DestroyVffsRequestType)(nil)).Elem() -} - -type DestroyVffsResponse struct { -} - -type DestroyView DestroyViewRequestType - -func init() { - t["DestroyView"] = reflect.TypeOf((*DestroyView)(nil)).Elem() -} - -type DestroyViewRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DestroyViewRequestType"] = reflect.TypeOf((*DestroyViewRequestType)(nil)).Elem() -} - -type DestroyViewResponse struct { -} - -type Destroy_Task DestroyRequestType - -func init() { - t["Destroy_Task"] = reflect.TypeOf((*Destroy_Task)(nil)).Elem() -} - -type Destroy_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DetachDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - DiskId ID `xml:"diskId"` -} - -func init() { - t["DetachDiskRequestType"] = reflect.TypeOf((*DetachDiskRequestType)(nil)).Elem() -} - -type DetachDisk_Task DetachDiskRequestType - -func init() { - t["DetachDisk_Task"] = reflect.TypeOf((*DetachDisk_Task)(nil)).Elem() -} - -type DetachDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DetachScsiLun DetachScsiLunRequestType - -func init() { - t["DetachScsiLun"] = reflect.TypeOf((*DetachScsiLun)(nil)).Elem() -} - -type DetachScsiLunExRequestType struct { - This ManagedObjectReference `xml:"_this"` - LunUuid []string `xml:"lunUuid"` -} - -func init() { - t["DetachScsiLunExRequestType"] = reflect.TypeOf((*DetachScsiLunExRequestType)(nil)).Elem() -} - -type DetachScsiLunEx_Task DetachScsiLunExRequestType - -func init() { - t["DetachScsiLunEx_Task"] = reflect.TypeOf((*DetachScsiLunEx_Task)(nil)).Elem() -} - -type DetachScsiLunEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DetachScsiLunRequestType struct { - This ManagedObjectReference `xml:"_this"` - LunUuid string `xml:"lunUuid"` -} - -func init() { - t["DetachScsiLunRequestType"] = reflect.TypeOf((*DetachScsiLunRequestType)(nil)).Elem() -} - -type DetachScsiLunResponse struct { -} - -type DetachTagFromVStorageObject DetachTagFromVStorageObjectRequestType - -func init() { - t["DetachTagFromVStorageObject"] = reflect.TypeOf((*DetachTagFromVStorageObject)(nil)).Elem() -} - -type DetachTagFromVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Category string `xml:"category"` - Tag string `xml:"tag"` -} - -func init() { - t["DetachTagFromVStorageObjectRequestType"] = reflect.TypeOf((*DetachTagFromVStorageObjectRequestType)(nil)).Elem() -} - -type DetachTagFromVStorageObjectResponse struct { -} - -type DeviceBackedVirtualDiskSpec struct { - VirtualDiskSpec - - Device string `xml:"device"` -} - -func init() { - t["DeviceBackedVirtualDiskSpec"] = reflect.TypeOf((*DeviceBackedVirtualDiskSpec)(nil)).Elem() -} - -type DeviceBackingNotSupported struct { - DeviceNotSupported - - Backing string `xml:"backing"` -} - -func init() { - t["DeviceBackingNotSupported"] = reflect.TypeOf((*DeviceBackingNotSupported)(nil)).Elem() -} - -type DeviceBackingNotSupportedFault BaseDeviceBackingNotSupported - -func init() { - t["DeviceBackingNotSupportedFault"] = reflect.TypeOf((*DeviceBackingNotSupportedFault)(nil)).Elem() -} - -type DeviceControllerNotSupported struct { - DeviceNotSupported - - Controller string `xml:"controller"` -} - -func init() { - t["DeviceControllerNotSupported"] = reflect.TypeOf((*DeviceControllerNotSupported)(nil)).Elem() -} - -type DeviceControllerNotSupportedFault DeviceControllerNotSupported - -func init() { - t["DeviceControllerNotSupportedFault"] = reflect.TypeOf((*DeviceControllerNotSupportedFault)(nil)).Elem() -} - -type DeviceGroupId struct { - DynamicData - - Id string `xml:"id"` -} - -func init() { - t["DeviceGroupId"] = reflect.TypeOf((*DeviceGroupId)(nil)).Elem() -} - -type DeviceHotPlugNotSupported struct { - InvalidDeviceSpec -} - -func init() { - t["DeviceHotPlugNotSupported"] = reflect.TypeOf((*DeviceHotPlugNotSupported)(nil)).Elem() -} - -type DeviceHotPlugNotSupportedFault DeviceHotPlugNotSupported - -func init() { - t["DeviceHotPlugNotSupportedFault"] = reflect.TypeOf((*DeviceHotPlugNotSupportedFault)(nil)).Elem() -} - -type DeviceNotFound struct { - InvalidDeviceSpec -} - -func init() { - t["DeviceNotFound"] = reflect.TypeOf((*DeviceNotFound)(nil)).Elem() -} - -type DeviceNotFoundFault DeviceNotFound - -func init() { - t["DeviceNotFoundFault"] = reflect.TypeOf((*DeviceNotFoundFault)(nil)).Elem() -} - -type DeviceNotSupported struct { - VirtualHardwareCompatibilityIssue - - Device string `xml:"device"` - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["DeviceNotSupported"] = reflect.TypeOf((*DeviceNotSupported)(nil)).Elem() -} - -type DeviceNotSupportedFault BaseDeviceNotSupported - -func init() { - t["DeviceNotSupportedFault"] = reflect.TypeOf((*DeviceNotSupportedFault)(nil)).Elem() -} - -type DeviceUnsupportedForVmPlatform struct { - InvalidDeviceSpec -} - -func init() { - t["DeviceUnsupportedForVmPlatform"] = reflect.TypeOf((*DeviceUnsupportedForVmPlatform)(nil)).Elem() -} - -type DeviceUnsupportedForVmPlatformFault DeviceUnsupportedForVmPlatform - -func init() { - t["DeviceUnsupportedForVmPlatformFault"] = reflect.TypeOf((*DeviceUnsupportedForVmPlatformFault)(nil)).Elem() -} - -type DeviceUnsupportedForVmVersion struct { - InvalidDeviceSpec - - CurrentVersion string `xml:"currentVersion"` - ExpectedVersion string `xml:"expectedVersion"` -} - -func init() { - t["DeviceUnsupportedForVmVersion"] = reflect.TypeOf((*DeviceUnsupportedForVmVersion)(nil)).Elem() -} - -type DeviceUnsupportedForVmVersionFault DeviceUnsupportedForVmVersion - -func init() { - t["DeviceUnsupportedForVmVersionFault"] = reflect.TypeOf((*DeviceUnsupportedForVmVersionFault)(nil)).Elem() -} - -type DiagnosticManagerBundleInfo struct { - DynamicData - - System *ManagedObjectReference `xml:"system,omitempty"` - Url string `xml:"url"` -} - -func init() { - t["DiagnosticManagerBundleInfo"] = reflect.TypeOf((*DiagnosticManagerBundleInfo)(nil)).Elem() -} - -type DiagnosticManagerLogDescriptor struct { - DynamicData - - Key string `xml:"key"` - FileName string `xml:"fileName"` - Creator string `xml:"creator"` - Format string `xml:"format"` - MimeType string `xml:"mimeType"` - Info BaseDescription `xml:"info,typeattr"` -} - -func init() { - t["DiagnosticManagerLogDescriptor"] = reflect.TypeOf((*DiagnosticManagerLogDescriptor)(nil)).Elem() -} - -type DiagnosticManagerLogHeader struct { - DynamicData - - LineStart int32 `xml:"lineStart"` - LineEnd int32 `xml:"lineEnd"` - LineText []string `xml:"lineText,omitempty"` -} - -func init() { - t["DiagnosticManagerLogHeader"] = reflect.TypeOf((*DiagnosticManagerLogHeader)(nil)).Elem() -} - -type DigestNotSupported struct { - DeviceNotSupported -} - -func init() { - t["DigestNotSupported"] = reflect.TypeOf((*DigestNotSupported)(nil)).Elem() -} - -type DigestNotSupportedFault DigestNotSupported - -func init() { - t["DigestNotSupportedFault"] = reflect.TypeOf((*DigestNotSupportedFault)(nil)).Elem() -} - -type DirectoryNotEmpty struct { - FileFault -} - -func init() { - t["DirectoryNotEmpty"] = reflect.TypeOf((*DirectoryNotEmpty)(nil)).Elem() -} - -type DirectoryNotEmptyFault DirectoryNotEmpty - -func init() { - t["DirectoryNotEmptyFault"] = reflect.TypeOf((*DirectoryNotEmptyFault)(nil)).Elem() -} - -type DisableAdminNotSupported struct { - HostConfigFault -} - -func init() { - t["DisableAdminNotSupported"] = reflect.TypeOf((*DisableAdminNotSupported)(nil)).Elem() -} - -type DisableAdminNotSupportedFault DisableAdminNotSupported - -func init() { - t["DisableAdminNotSupportedFault"] = reflect.TypeOf((*DisableAdminNotSupportedFault)(nil)).Elem() -} - -type DisableEvcModeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DisableEvcModeRequestType"] = reflect.TypeOf((*DisableEvcModeRequestType)(nil)).Elem() -} - -type DisableEvcMode_Task DisableEvcModeRequestType - -func init() { - t["DisableEvcMode_Task"] = reflect.TypeOf((*DisableEvcMode_Task)(nil)).Elem() -} - -type DisableEvcMode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DisableFeature DisableFeatureRequestType - -func init() { - t["DisableFeature"] = reflect.TypeOf((*DisableFeature)(nil)).Elem() -} - -type DisableFeatureRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - FeatureKey string `xml:"featureKey"` -} - -func init() { - t["DisableFeatureRequestType"] = reflect.TypeOf((*DisableFeatureRequestType)(nil)).Elem() -} - -type DisableFeatureResponse struct { - Returnval bool `xml:"returnval"` -} - -type DisableHyperThreading DisableHyperThreadingRequestType - -func init() { - t["DisableHyperThreading"] = reflect.TypeOf((*DisableHyperThreading)(nil)).Elem() -} - -type DisableHyperThreadingRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DisableHyperThreadingRequestType"] = reflect.TypeOf((*DisableHyperThreadingRequestType)(nil)).Elem() -} - -type DisableHyperThreadingResponse struct { -} - -type DisableMultipathPath DisableMultipathPathRequestType - -func init() { - t["DisableMultipathPath"] = reflect.TypeOf((*DisableMultipathPath)(nil)).Elem() -} - -type DisableMultipathPathRequestType struct { - This ManagedObjectReference `xml:"_this"` - PathName string `xml:"pathName"` -} - -func init() { - t["DisableMultipathPathRequestType"] = reflect.TypeOf((*DisableMultipathPathRequestType)(nil)).Elem() -} - -type DisableMultipathPathResponse struct { -} - -type DisableRuleset DisableRulesetRequestType - -func init() { - t["DisableRuleset"] = reflect.TypeOf((*DisableRuleset)(nil)).Elem() -} - -type DisableRulesetRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["DisableRulesetRequestType"] = reflect.TypeOf((*DisableRulesetRequestType)(nil)).Elem() -} - -type DisableRulesetResponse struct { -} - -type DisableSecondaryVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` -} - -func init() { - t["DisableSecondaryVMRequestType"] = reflect.TypeOf((*DisableSecondaryVMRequestType)(nil)).Elem() -} - -type DisableSecondaryVM_Task DisableSecondaryVMRequestType - -func init() { - t["DisableSecondaryVM_Task"] = reflect.TypeOf((*DisableSecondaryVM_Task)(nil)).Elem() -} - -type DisableSecondaryVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DisableSmartCardAuthentication DisableSmartCardAuthenticationRequestType - -func init() { - t["DisableSmartCardAuthentication"] = reflect.TypeOf((*DisableSmartCardAuthentication)(nil)).Elem() -} - -type DisableSmartCardAuthenticationRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DisableSmartCardAuthenticationRequestType"] = reflect.TypeOf((*DisableSmartCardAuthenticationRequestType)(nil)).Elem() -} - -type DisableSmartCardAuthenticationResponse struct { -} - -type DisallowedChangeByService struct { - RuntimeFault - - ServiceName string `xml:"serviceName"` - DisallowedChange string `xml:"disallowedChange,omitempty"` -} - -func init() { - t["DisallowedChangeByService"] = reflect.TypeOf((*DisallowedChangeByService)(nil)).Elem() -} - -type DisallowedChangeByServiceFault DisallowedChangeByService - -func init() { - t["DisallowedChangeByServiceFault"] = reflect.TypeOf((*DisallowedChangeByServiceFault)(nil)).Elem() -} - -type DisallowedDiskModeChange struct { - InvalidDeviceSpec -} - -func init() { - t["DisallowedDiskModeChange"] = reflect.TypeOf((*DisallowedDiskModeChange)(nil)).Elem() -} - -type DisallowedDiskModeChangeFault DisallowedDiskModeChange - -func init() { - t["DisallowedDiskModeChangeFault"] = reflect.TypeOf((*DisallowedDiskModeChangeFault)(nil)).Elem() -} - -type DisallowedMigrationDeviceAttached struct { - MigrationFault - - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["DisallowedMigrationDeviceAttached"] = reflect.TypeOf((*DisallowedMigrationDeviceAttached)(nil)).Elem() -} - -type DisallowedMigrationDeviceAttachedFault DisallowedMigrationDeviceAttached - -func init() { - t["DisallowedMigrationDeviceAttachedFault"] = reflect.TypeOf((*DisallowedMigrationDeviceAttachedFault)(nil)).Elem() -} - -type DisallowedOperationOnFailoverHost struct { - RuntimeFault - - Host ManagedObjectReference `xml:"host"` - Hostname string `xml:"hostname"` -} - -func init() { - t["DisallowedOperationOnFailoverHost"] = reflect.TypeOf((*DisallowedOperationOnFailoverHost)(nil)).Elem() -} - -type DisallowedOperationOnFailoverHostFault DisallowedOperationOnFailoverHost - -func init() { - t["DisallowedOperationOnFailoverHostFault"] = reflect.TypeOf((*DisallowedOperationOnFailoverHostFault)(nil)).Elem() -} - -type DisconnectHostRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["DisconnectHostRequestType"] = reflect.TypeOf((*DisconnectHostRequestType)(nil)).Elem() -} - -type DisconnectHost_Task DisconnectHostRequestType - -func init() { - t["DisconnectHost_Task"] = reflect.TypeOf((*DisconnectHost_Task)(nil)).Elem() -} - -type DisconnectHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DisconnectedHostsBlockingEVC struct { - EVCConfigFault -} - -func init() { - t["DisconnectedHostsBlockingEVC"] = reflect.TypeOf((*DisconnectedHostsBlockingEVC)(nil)).Elem() -} - -type DisconnectedHostsBlockingEVCFault DisconnectedHostsBlockingEVC - -func init() { - t["DisconnectedHostsBlockingEVCFault"] = reflect.TypeOf((*DisconnectedHostsBlockingEVCFault)(nil)).Elem() -} - -type DiscoverFcoeHbas DiscoverFcoeHbasRequestType - -func init() { - t["DiscoverFcoeHbas"] = reflect.TypeOf((*DiscoverFcoeHbas)(nil)).Elem() -} - -type DiscoverFcoeHbasRequestType struct { - This ManagedObjectReference `xml:"_this"` - FcoeSpec FcoeConfigFcoeSpecification `xml:"fcoeSpec"` -} - -func init() { - t["DiscoverFcoeHbasRequestType"] = reflect.TypeOf((*DiscoverFcoeHbasRequestType)(nil)).Elem() -} - -type DiscoverFcoeHbasResponse struct { -} - -type DiskChangeExtent struct { - DynamicData - - Start int64 `xml:"start"` - Length int64 `xml:"length"` -} - -func init() { - t["DiskChangeExtent"] = reflect.TypeOf((*DiskChangeExtent)(nil)).Elem() -} - -type DiskChangeInfo struct { - DynamicData - - StartOffset int64 `xml:"startOffset"` - Length int64 `xml:"length"` - ChangedArea []DiskChangeExtent `xml:"changedArea,omitempty"` -} - -func init() { - t["DiskChangeInfo"] = reflect.TypeOf((*DiskChangeInfo)(nil)).Elem() -} - -type DiskHasPartitions struct { - VsanDiskFault -} - -func init() { - t["DiskHasPartitions"] = reflect.TypeOf((*DiskHasPartitions)(nil)).Elem() -} - -type DiskHasPartitionsFault DiskHasPartitions - -func init() { - t["DiskHasPartitionsFault"] = reflect.TypeOf((*DiskHasPartitionsFault)(nil)).Elem() -} - -type DiskIsLastRemainingNonSSD struct { - VsanDiskFault -} - -func init() { - t["DiskIsLastRemainingNonSSD"] = reflect.TypeOf((*DiskIsLastRemainingNonSSD)(nil)).Elem() -} - -type DiskIsLastRemainingNonSSDFault DiskIsLastRemainingNonSSD - -func init() { - t["DiskIsLastRemainingNonSSDFault"] = reflect.TypeOf((*DiskIsLastRemainingNonSSDFault)(nil)).Elem() -} - -type DiskIsNonLocal struct { - VsanDiskFault -} - -func init() { - t["DiskIsNonLocal"] = reflect.TypeOf((*DiskIsNonLocal)(nil)).Elem() -} - -type DiskIsNonLocalFault DiskIsNonLocal - -func init() { - t["DiskIsNonLocalFault"] = reflect.TypeOf((*DiskIsNonLocalFault)(nil)).Elem() -} - -type DiskIsUSB struct { - VsanDiskFault -} - -func init() { - t["DiskIsUSB"] = reflect.TypeOf((*DiskIsUSB)(nil)).Elem() -} - -type DiskIsUSBFault DiskIsUSB - -func init() { - t["DiskIsUSBFault"] = reflect.TypeOf((*DiskIsUSBFault)(nil)).Elem() -} - -type DiskMoveTypeNotSupported struct { - MigrationFault -} - -func init() { - t["DiskMoveTypeNotSupported"] = reflect.TypeOf((*DiskMoveTypeNotSupported)(nil)).Elem() -} - -type DiskMoveTypeNotSupportedFault DiskMoveTypeNotSupported - -func init() { - t["DiskMoveTypeNotSupportedFault"] = reflect.TypeOf((*DiskMoveTypeNotSupportedFault)(nil)).Elem() -} - -type DiskNotSupported struct { - VirtualHardwareCompatibilityIssue - - Disk int32 `xml:"disk"` -} - -func init() { - t["DiskNotSupported"] = reflect.TypeOf((*DiskNotSupported)(nil)).Elem() -} - -type DiskNotSupportedFault BaseDiskNotSupported - -func init() { - t["DiskNotSupportedFault"] = reflect.TypeOf((*DiskNotSupportedFault)(nil)).Elem() -} - -type DiskTooSmall struct { - VsanDiskFault -} - -func init() { - t["DiskTooSmall"] = reflect.TypeOf((*DiskTooSmall)(nil)).Elem() -} - -type DiskTooSmallFault DiskTooSmall - -func init() { - t["DiskTooSmallFault"] = reflect.TypeOf((*DiskTooSmallFault)(nil)).Elem() -} - -type DissociateProfile DissociateProfileRequestType - -func init() { - t["DissociateProfile"] = reflect.TypeOf((*DissociateProfile)(nil)).Elem() -} - -type DissociateProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity []ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["DissociateProfileRequestType"] = reflect.TypeOf((*DissociateProfileRequestType)(nil)).Elem() -} - -type DissociateProfileResponse struct { -} - -type DistributedVirtualPort struct { - DynamicData - - Key string `xml:"key"` - Config DVPortConfigInfo `xml:"config"` - DvsUuid string `xml:"dvsUuid"` - PortgroupKey string `xml:"portgroupKey,omitempty"` - ProxyHost *ManagedObjectReference `xml:"proxyHost,omitempty"` - Connectee *DistributedVirtualSwitchPortConnectee `xml:"connectee,omitempty"` - Conflict bool `xml:"conflict"` - ConflictPortKey string `xml:"conflictPortKey,omitempty"` - State *DVPortState `xml:"state,omitempty"` - ConnectionCookie int32 `xml:"connectionCookie,omitempty"` - LastStatusChange time.Time `xml:"lastStatusChange"` - HostLocalPort *bool `xml:"hostLocalPort"` -} - -func init() { - t["DistributedVirtualPort"] = reflect.TypeOf((*DistributedVirtualPort)(nil)).Elem() -} - -type DistributedVirtualPortgroupInfo struct { - DynamicData - - SwitchName string `xml:"switchName"` - SwitchUuid string `xml:"switchUuid"` - PortgroupName string `xml:"portgroupName"` - PortgroupKey string `xml:"portgroupKey"` - PortgroupType string `xml:"portgroupType"` - UplinkPortgroup bool `xml:"uplinkPortgroup"` - Portgroup ManagedObjectReference `xml:"portgroup"` - NetworkReservationSupported *bool `xml:"networkReservationSupported"` -} - -func init() { - t["DistributedVirtualPortgroupInfo"] = reflect.TypeOf((*DistributedVirtualPortgroupInfo)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMember struct { - DynamicData - - RuntimeState *DistributedVirtualSwitchHostMemberRuntimeState `xml:"runtimeState,omitempty"` - Config DistributedVirtualSwitchHostMemberConfigInfo `xml:"config"` - ProductInfo *DistributedVirtualSwitchProductSpec `xml:"productInfo,omitempty"` - UplinkPortKey []string `xml:"uplinkPortKey,omitempty"` - Status string `xml:"status"` - StatusDetail string `xml:"statusDetail,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchHostMember"] = reflect.TypeOf((*DistributedVirtualSwitchHostMember)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMemberBacking struct { - DynamicData -} - -func init() { - t["DistributedVirtualSwitchHostMemberBacking"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberBacking)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMemberConfigInfo struct { - DynamicData - - Host *ManagedObjectReference `xml:"host,omitempty"` - MaxProxySwitchPorts int32 `xml:"maxProxySwitchPorts"` - VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` - Backing BaseDistributedVirtualSwitchHostMemberBacking `xml:"backing,typeattr"` -} - -func init() { - t["DistributedVirtualSwitchHostMemberConfigInfo"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberConfigInfo)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMemberConfigSpec struct { - DynamicData - - Operation string `xml:"operation"` - Host ManagedObjectReference `xml:"host"` - Backing BaseDistributedVirtualSwitchHostMemberBacking `xml:"backing,omitempty,typeattr"` - MaxProxySwitchPorts int32 `xml:"maxProxySwitchPorts,omitempty"` - VendorSpecificConfig []DistributedVirtualSwitchKeyedOpaqueBlob `xml:"vendorSpecificConfig,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchHostMemberConfigSpec"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberConfigSpec)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMemberPnicBacking struct { - DistributedVirtualSwitchHostMemberBacking - - PnicSpec []DistributedVirtualSwitchHostMemberPnicSpec `xml:"pnicSpec,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchHostMemberPnicBacking"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberPnicBacking)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMemberPnicSpec struct { - DynamicData - - PnicDevice string `xml:"pnicDevice"` - UplinkPortKey string `xml:"uplinkPortKey,omitempty"` - UplinkPortgroupKey string `xml:"uplinkPortgroupKey,omitempty"` - ConnectionCookie int32 `xml:"connectionCookie,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchHostMemberPnicSpec"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberPnicSpec)(nil)).Elem() -} - -type DistributedVirtualSwitchHostMemberRuntimeState struct { - DynamicData - - CurrentMaxProxySwitchPorts int32 `xml:"currentMaxProxySwitchPorts"` -} - -func init() { - t["DistributedVirtualSwitchHostMemberRuntimeState"] = reflect.TypeOf((*DistributedVirtualSwitchHostMemberRuntimeState)(nil)).Elem() -} - -type DistributedVirtualSwitchHostProductSpec struct { - DynamicData - - ProductLineId string `xml:"productLineId,omitempty"` - Version string `xml:"version,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchHostProductSpec"] = reflect.TypeOf((*DistributedVirtualSwitchHostProductSpec)(nil)).Elem() -} - -type DistributedVirtualSwitchInfo struct { - DynamicData - - SwitchName string `xml:"switchName"` - SwitchUuid string `xml:"switchUuid"` - DistributedVirtualSwitch ManagedObjectReference `xml:"distributedVirtualSwitch"` - NetworkReservationSupported *bool `xml:"networkReservationSupported"` -} - -func init() { - t["DistributedVirtualSwitchInfo"] = reflect.TypeOf((*DistributedVirtualSwitchInfo)(nil)).Elem() -} - -type DistributedVirtualSwitchKeyedOpaqueBlob struct { - DynamicData - - Key string `xml:"key"` - OpaqueData string `xml:"opaqueData"` -} - -func init() { - t["DistributedVirtualSwitchKeyedOpaqueBlob"] = reflect.TypeOf((*DistributedVirtualSwitchKeyedOpaqueBlob)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerCompatibilityResult struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Error []LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchManagerCompatibilityResult"] = reflect.TypeOf((*DistributedVirtualSwitchManagerCompatibilityResult)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerDvsProductSpec struct { - DynamicData - - NewSwitchProductSpec *DistributedVirtualSwitchProductSpec `xml:"newSwitchProductSpec,omitempty"` - DistributedVirtualSwitch *ManagedObjectReference `xml:"distributedVirtualSwitch,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchManagerDvsProductSpec"] = reflect.TypeOf((*DistributedVirtualSwitchManagerDvsProductSpec)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerHostArrayFilter struct { - DistributedVirtualSwitchManagerHostDvsFilterSpec - - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["DistributedVirtualSwitchManagerHostArrayFilter"] = reflect.TypeOf((*DistributedVirtualSwitchManagerHostArrayFilter)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerHostContainer struct { - DynamicData - - Container ManagedObjectReference `xml:"container"` - Recursive bool `xml:"recursive"` -} - -func init() { - t["DistributedVirtualSwitchManagerHostContainer"] = reflect.TypeOf((*DistributedVirtualSwitchManagerHostContainer)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerHostContainerFilter struct { - DistributedVirtualSwitchManagerHostDvsFilterSpec - - HostContainer DistributedVirtualSwitchManagerHostContainer `xml:"hostContainer"` -} - -func init() { - t["DistributedVirtualSwitchManagerHostContainerFilter"] = reflect.TypeOf((*DistributedVirtualSwitchManagerHostContainerFilter)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerHostDvsFilterSpec struct { - DynamicData - - Inclusive bool `xml:"inclusive"` -} - -func init() { - t["DistributedVirtualSwitchManagerHostDvsFilterSpec"] = reflect.TypeOf((*DistributedVirtualSwitchManagerHostDvsFilterSpec)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerHostDvsMembershipFilter struct { - DistributedVirtualSwitchManagerHostDvsFilterSpec - - DistributedVirtualSwitch ManagedObjectReference `xml:"distributedVirtualSwitch"` -} - -func init() { - t["DistributedVirtualSwitchManagerHostDvsMembershipFilter"] = reflect.TypeOf((*DistributedVirtualSwitchManagerHostDvsMembershipFilter)(nil)).Elem() -} - -type DistributedVirtualSwitchManagerImportResult struct { - DynamicData - - DistributedVirtualSwitch []ManagedObjectReference `xml:"distributedVirtualSwitch,omitempty"` - DistributedVirtualPortgroup []ManagedObjectReference `xml:"distributedVirtualPortgroup,omitempty"` - ImportFault []ImportOperationBulkFaultFaultOnImport `xml:"importFault,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchManagerImportResult"] = reflect.TypeOf((*DistributedVirtualSwitchManagerImportResult)(nil)).Elem() -} - -type DistributedVirtualSwitchPortConnectee struct { - DynamicData - - ConnectedEntity *ManagedObjectReference `xml:"connectedEntity,omitempty"` - NicKey string `xml:"nicKey,omitempty"` - Type string `xml:"type,omitempty"` - AddressHint string `xml:"addressHint,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchPortConnectee"] = reflect.TypeOf((*DistributedVirtualSwitchPortConnectee)(nil)).Elem() -} - -type DistributedVirtualSwitchPortConnection struct { - DynamicData - - SwitchUuid string `xml:"switchUuid"` - PortgroupKey string `xml:"portgroupKey,omitempty"` - PortKey string `xml:"portKey,omitempty"` - ConnectionCookie int32 `xml:"connectionCookie,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchPortConnection"] = reflect.TypeOf((*DistributedVirtualSwitchPortConnection)(nil)).Elem() -} - -type DistributedVirtualSwitchPortCriteria struct { - DynamicData - - Connected *bool `xml:"connected"` - Active *bool `xml:"active"` - UplinkPort *bool `xml:"uplinkPort"` - Scope *ManagedObjectReference `xml:"scope,omitempty"` - PortgroupKey []string `xml:"portgroupKey,omitempty"` - Inside *bool `xml:"inside"` - PortKey []string `xml:"portKey,omitempty"` - Host []ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchPortCriteria"] = reflect.TypeOf((*DistributedVirtualSwitchPortCriteria)(nil)).Elem() -} - -type DistributedVirtualSwitchPortStatistics struct { - DynamicData - - PacketsInMulticast int64 `xml:"packetsInMulticast"` - PacketsOutMulticast int64 `xml:"packetsOutMulticast"` - BytesInMulticast int64 `xml:"bytesInMulticast"` - BytesOutMulticast int64 `xml:"bytesOutMulticast"` - PacketsInUnicast int64 `xml:"packetsInUnicast"` - PacketsOutUnicast int64 `xml:"packetsOutUnicast"` - BytesInUnicast int64 `xml:"bytesInUnicast"` - BytesOutUnicast int64 `xml:"bytesOutUnicast"` - PacketsInBroadcast int64 `xml:"packetsInBroadcast"` - PacketsOutBroadcast int64 `xml:"packetsOutBroadcast"` - BytesInBroadcast int64 `xml:"bytesInBroadcast"` - BytesOutBroadcast int64 `xml:"bytesOutBroadcast"` - PacketsInDropped int64 `xml:"packetsInDropped"` - PacketsOutDropped int64 `xml:"packetsOutDropped"` - PacketsInException int64 `xml:"packetsInException"` - PacketsOutException int64 `xml:"packetsOutException"` - BytesInFromPnic int64 `xml:"bytesInFromPnic,omitempty"` - BytesOutToPnic int64 `xml:"bytesOutToPnic,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchPortStatistics"] = reflect.TypeOf((*DistributedVirtualSwitchPortStatistics)(nil)).Elem() -} - -type DistributedVirtualSwitchProductSpec struct { - DynamicData - - Name string `xml:"name,omitempty"` - Vendor string `xml:"vendor,omitempty"` - Version string `xml:"version,omitempty"` - Build string `xml:"build,omitempty"` - ForwardingClass string `xml:"forwardingClass,omitempty"` - BundleId string `xml:"bundleId,omitempty"` - BundleUrl string `xml:"bundleUrl,omitempty"` -} - -func init() { - t["DistributedVirtualSwitchProductSpec"] = reflect.TypeOf((*DistributedVirtualSwitchProductSpec)(nil)).Elem() -} - -type DoesCustomizationSpecExist DoesCustomizationSpecExistRequestType - -func init() { - t["DoesCustomizationSpecExist"] = reflect.TypeOf((*DoesCustomizationSpecExist)(nil)).Elem() -} - -type DoesCustomizationSpecExistRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` -} - -func init() { - t["DoesCustomizationSpecExistRequestType"] = reflect.TypeOf((*DoesCustomizationSpecExistRequestType)(nil)).Elem() -} - -type DoesCustomizationSpecExistResponse struct { - Returnval bool `xml:"returnval"` -} - -type DomainNotFound struct { - ActiveDirectoryFault - - DomainName string `xml:"domainName"` -} - -func init() { - t["DomainNotFound"] = reflect.TypeOf((*DomainNotFound)(nil)).Elem() -} - -type DomainNotFoundFault DomainNotFound - -func init() { - t["DomainNotFoundFault"] = reflect.TypeOf((*DomainNotFoundFault)(nil)).Elem() -} - -type DrsDisabledEvent struct { - ClusterEvent -} - -func init() { - t["DrsDisabledEvent"] = reflect.TypeOf((*DrsDisabledEvent)(nil)).Elem() -} - -type DrsDisabledOnVm struct { - VimFault -} - -func init() { - t["DrsDisabledOnVm"] = reflect.TypeOf((*DrsDisabledOnVm)(nil)).Elem() -} - -type DrsDisabledOnVmFault DrsDisabledOnVm - -func init() { - t["DrsDisabledOnVmFault"] = reflect.TypeOf((*DrsDisabledOnVmFault)(nil)).Elem() -} - -type DrsEnabledEvent struct { - ClusterEvent - - Behavior string `xml:"behavior"` -} - -func init() { - t["DrsEnabledEvent"] = reflect.TypeOf((*DrsEnabledEvent)(nil)).Elem() -} - -type DrsEnteredStandbyModeEvent struct { - EnteredStandbyModeEvent -} - -func init() { - t["DrsEnteredStandbyModeEvent"] = reflect.TypeOf((*DrsEnteredStandbyModeEvent)(nil)).Elem() -} - -type DrsEnteringStandbyModeEvent struct { - EnteringStandbyModeEvent -} - -func init() { - t["DrsEnteringStandbyModeEvent"] = reflect.TypeOf((*DrsEnteringStandbyModeEvent)(nil)).Elem() -} - -type DrsExitStandbyModeFailedEvent struct { - ExitStandbyModeFailedEvent -} - -func init() { - t["DrsExitStandbyModeFailedEvent"] = reflect.TypeOf((*DrsExitStandbyModeFailedEvent)(nil)).Elem() -} - -type DrsExitedStandbyModeEvent struct { - ExitedStandbyModeEvent -} - -func init() { - t["DrsExitedStandbyModeEvent"] = reflect.TypeOf((*DrsExitedStandbyModeEvent)(nil)).Elem() -} - -type DrsExitingStandbyModeEvent struct { - ExitingStandbyModeEvent -} - -func init() { - t["DrsExitingStandbyModeEvent"] = reflect.TypeOf((*DrsExitingStandbyModeEvent)(nil)).Elem() -} - -type DrsInvocationFailedEvent struct { - ClusterEvent -} - -func init() { - t["DrsInvocationFailedEvent"] = reflect.TypeOf((*DrsInvocationFailedEvent)(nil)).Elem() -} - -type DrsRecoveredFromFailureEvent struct { - ClusterEvent -} - -func init() { - t["DrsRecoveredFromFailureEvent"] = reflect.TypeOf((*DrsRecoveredFromFailureEvent)(nil)).Elem() -} - -type DrsResourceConfigureFailedEvent struct { - HostEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["DrsResourceConfigureFailedEvent"] = reflect.TypeOf((*DrsResourceConfigureFailedEvent)(nil)).Elem() -} - -type DrsResourceConfigureSyncedEvent struct { - HostEvent -} - -func init() { - t["DrsResourceConfigureSyncedEvent"] = reflect.TypeOf((*DrsResourceConfigureSyncedEvent)(nil)).Elem() -} - -type DrsRuleComplianceEvent struct { - VmEvent -} - -func init() { - t["DrsRuleComplianceEvent"] = reflect.TypeOf((*DrsRuleComplianceEvent)(nil)).Elem() -} - -type DrsRuleViolationEvent struct { - VmEvent -} - -func init() { - t["DrsRuleViolationEvent"] = reflect.TypeOf((*DrsRuleViolationEvent)(nil)).Elem() -} - -type DrsSoftRuleViolationEvent struct { - VmEvent -} - -func init() { - t["DrsSoftRuleViolationEvent"] = reflect.TypeOf((*DrsSoftRuleViolationEvent)(nil)).Elem() -} - -type DrsVmMigratedEvent struct { - VmMigratedEvent -} - -func init() { - t["DrsVmMigratedEvent"] = reflect.TypeOf((*DrsVmMigratedEvent)(nil)).Elem() -} - -type DrsVmPoweredOnEvent struct { - VmPoweredOnEvent -} - -func init() { - t["DrsVmPoweredOnEvent"] = reflect.TypeOf((*DrsVmPoweredOnEvent)(nil)).Elem() -} - -type DrsVmotionIncompatibleFault struct { - VirtualHardwareCompatibilityIssue - - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["DrsVmotionIncompatibleFault"] = reflect.TypeOf((*DrsVmotionIncompatibleFault)(nil)).Elem() -} - -type DrsVmotionIncompatibleFaultFault DrsVmotionIncompatibleFault - -func init() { - t["DrsVmotionIncompatibleFaultFault"] = reflect.TypeOf((*DrsVmotionIncompatibleFaultFault)(nil)).Elem() -} - -type DuplicateCustomizationSpec DuplicateCustomizationSpecRequestType - -func init() { - t["DuplicateCustomizationSpec"] = reflect.TypeOf((*DuplicateCustomizationSpec)(nil)).Elem() -} - -type DuplicateCustomizationSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - NewName string `xml:"newName"` -} - -func init() { - t["DuplicateCustomizationSpecRequestType"] = reflect.TypeOf((*DuplicateCustomizationSpecRequestType)(nil)).Elem() -} - -type DuplicateCustomizationSpecResponse struct { -} - -type DuplicateDisks struct { - VsanDiskFault -} - -func init() { - t["DuplicateDisks"] = reflect.TypeOf((*DuplicateDisks)(nil)).Elem() -} - -type DuplicateDisksFault DuplicateDisks - -func init() { - t["DuplicateDisksFault"] = reflect.TypeOf((*DuplicateDisksFault)(nil)).Elem() -} - -type DuplicateIpDetectedEvent struct { - HostEvent - - DuplicateIP string `xml:"duplicateIP"` - MacAddress string `xml:"macAddress"` -} - -func init() { - t["DuplicateIpDetectedEvent"] = reflect.TypeOf((*DuplicateIpDetectedEvent)(nil)).Elem() -} - -type DuplicateName struct { - VimFault - - Name string `xml:"name"` - Object ManagedObjectReference `xml:"object"` -} - -func init() { - t["DuplicateName"] = reflect.TypeOf((*DuplicateName)(nil)).Elem() -} - -type DuplicateNameFault DuplicateName - -func init() { - t["DuplicateNameFault"] = reflect.TypeOf((*DuplicateNameFault)(nil)).Elem() -} - -type DuplicateVsanNetworkInterface struct { - VsanFault - - Device string `xml:"device"` -} - -func init() { - t["DuplicateVsanNetworkInterface"] = reflect.TypeOf((*DuplicateVsanNetworkInterface)(nil)).Elem() -} - -type DuplicateVsanNetworkInterfaceFault DuplicateVsanNetworkInterface - -func init() { - t["DuplicateVsanNetworkInterfaceFault"] = reflect.TypeOf((*DuplicateVsanNetworkInterfaceFault)(nil)).Elem() -} - -type DvpgImportEvent struct { - DVPortgroupEvent - - ImportType string `xml:"importType"` -} - -func init() { - t["DvpgImportEvent"] = reflect.TypeOf((*DvpgImportEvent)(nil)).Elem() -} - -type DvpgRestoreEvent struct { - DVPortgroupEvent -} - -func init() { - t["DvpgRestoreEvent"] = reflect.TypeOf((*DvpgRestoreEvent)(nil)).Elem() -} - -type DvsAcceptNetworkRuleAction struct { - DvsNetworkRuleAction -} - -func init() { - t["DvsAcceptNetworkRuleAction"] = reflect.TypeOf((*DvsAcceptNetworkRuleAction)(nil)).Elem() -} - -type DvsApplyOperationFault struct { - DvsFault - - ObjectFault []DvsApplyOperationFaultFaultOnObject `xml:"objectFault"` -} - -func init() { - t["DvsApplyOperationFault"] = reflect.TypeOf((*DvsApplyOperationFault)(nil)).Elem() -} - -type DvsApplyOperationFaultFault DvsApplyOperationFault - -func init() { - t["DvsApplyOperationFaultFault"] = reflect.TypeOf((*DvsApplyOperationFaultFault)(nil)).Elem() -} - -type DvsApplyOperationFaultFaultOnObject struct { - DynamicData - - ObjectId string `xml:"objectId"` - Type string `xml:"type"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["DvsApplyOperationFaultFaultOnObject"] = reflect.TypeOf((*DvsApplyOperationFaultFaultOnObject)(nil)).Elem() -} - -type DvsCopyNetworkRuleAction struct { - DvsNetworkRuleAction -} - -func init() { - t["DvsCopyNetworkRuleAction"] = reflect.TypeOf((*DvsCopyNetworkRuleAction)(nil)).Elem() -} - -type DvsCreatedEvent struct { - DvsEvent - - Parent FolderEventArgument `xml:"parent"` -} - -func init() { - t["DvsCreatedEvent"] = reflect.TypeOf((*DvsCreatedEvent)(nil)).Elem() -} - -type DvsDestroyedEvent struct { - DvsEvent -} - -func init() { - t["DvsDestroyedEvent"] = reflect.TypeOf((*DvsDestroyedEvent)(nil)).Elem() -} - -type DvsDropNetworkRuleAction struct { - DvsNetworkRuleAction -} - -func init() { - t["DvsDropNetworkRuleAction"] = reflect.TypeOf((*DvsDropNetworkRuleAction)(nil)).Elem() -} - -type DvsEvent struct { - Event -} - -func init() { - t["DvsEvent"] = reflect.TypeOf((*DvsEvent)(nil)).Elem() -} - -type DvsEventArgument struct { - EntityEventArgument - - Dvs ManagedObjectReference `xml:"dvs"` -} - -func init() { - t["DvsEventArgument"] = reflect.TypeOf((*DvsEventArgument)(nil)).Elem() -} - -type DvsFault struct { - VimFault -} - -func init() { - t["DvsFault"] = reflect.TypeOf((*DvsFault)(nil)).Elem() -} - -type DvsFaultFault BaseDvsFault - -func init() { - t["DvsFaultFault"] = reflect.TypeOf((*DvsFaultFault)(nil)).Elem() -} - -type DvsFilterConfig struct { - InheritablePolicy - - Key string `xml:"key,omitempty"` - AgentName string `xml:"agentName,omitempty"` - SlotNumber string `xml:"slotNumber,omitempty"` - Parameters *DvsFilterParameter `xml:"parameters,omitempty"` - OnFailure string `xml:"onFailure,omitempty"` -} - -func init() { - t["DvsFilterConfig"] = reflect.TypeOf((*DvsFilterConfig)(nil)).Elem() -} - -type DvsFilterConfigSpec struct { - DvsFilterConfig - - Operation string `xml:"operation"` -} - -func init() { - t["DvsFilterConfigSpec"] = reflect.TypeOf((*DvsFilterConfigSpec)(nil)).Elem() -} - -type DvsFilterParameter struct { - DynamicData - - Parameters []string `xml:"parameters,omitempty"` -} - -func init() { - t["DvsFilterParameter"] = reflect.TypeOf((*DvsFilterParameter)(nil)).Elem() -} - -type DvsFilterPolicy struct { - InheritablePolicy - - FilterConfig []BaseDvsFilterConfig `xml:"filterConfig,omitempty,typeattr"` -} - -func init() { - t["DvsFilterPolicy"] = reflect.TypeOf((*DvsFilterPolicy)(nil)).Elem() -} - -type DvsGreEncapNetworkRuleAction struct { - DvsNetworkRuleAction - - EncapsulationIp SingleIp `xml:"encapsulationIp"` -} - -func init() { - t["DvsGreEncapNetworkRuleAction"] = reflect.TypeOf((*DvsGreEncapNetworkRuleAction)(nil)).Elem() -} - -type DvsHealthStatusChangeEvent struct { - HostEvent - - SwitchUuid string `xml:"switchUuid"` - HealthResult BaseHostMemberHealthCheckResult `xml:"healthResult,omitempty,typeattr"` -} - -func init() { - t["DvsHealthStatusChangeEvent"] = reflect.TypeOf((*DvsHealthStatusChangeEvent)(nil)).Elem() -} - -type DvsHostBackInSyncEvent struct { - DvsEvent - - HostBackInSync HostEventArgument `xml:"hostBackInSync"` -} - -func init() { - t["DvsHostBackInSyncEvent"] = reflect.TypeOf((*DvsHostBackInSyncEvent)(nil)).Elem() -} - -type DvsHostInfrastructureTrafficResource struct { - DynamicData - - Key string `xml:"key"` - Description string `xml:"description,omitempty"` - AllocationInfo DvsHostInfrastructureTrafficResourceAllocation `xml:"allocationInfo"` -} - -func init() { - t["DvsHostInfrastructureTrafficResource"] = reflect.TypeOf((*DvsHostInfrastructureTrafficResource)(nil)).Elem() -} - -type DvsHostInfrastructureTrafficResourceAllocation struct { - DynamicData - - Limit int64 `xml:"limit,omitempty"` - Shares *SharesInfo `xml:"shares,omitempty"` - Reservation int64 `xml:"reservation,omitempty"` -} - -func init() { - t["DvsHostInfrastructureTrafficResourceAllocation"] = reflect.TypeOf((*DvsHostInfrastructureTrafficResourceAllocation)(nil)).Elem() -} - -type DvsHostJoinedEvent struct { - DvsEvent - - HostJoined HostEventArgument `xml:"hostJoined"` -} - -func init() { - t["DvsHostJoinedEvent"] = reflect.TypeOf((*DvsHostJoinedEvent)(nil)).Elem() -} - -type DvsHostLeftEvent struct { - DvsEvent - - HostLeft HostEventArgument `xml:"hostLeft"` -} - -func init() { - t["DvsHostLeftEvent"] = reflect.TypeOf((*DvsHostLeftEvent)(nil)).Elem() -} - -type DvsHostStatusUpdated struct { - DvsEvent - - HostMember HostEventArgument `xml:"hostMember"` - OldStatus string `xml:"oldStatus,omitempty"` - NewStatus string `xml:"newStatus,omitempty"` - OldStatusDetail string `xml:"oldStatusDetail,omitempty"` - NewStatusDetail string `xml:"newStatusDetail,omitempty"` -} - -func init() { - t["DvsHostStatusUpdated"] = reflect.TypeOf((*DvsHostStatusUpdated)(nil)).Elem() -} - -type DvsHostVNicProfile struct { - DvsVNicProfile -} - -func init() { - t["DvsHostVNicProfile"] = reflect.TypeOf((*DvsHostVNicProfile)(nil)).Elem() -} - -type DvsHostWentOutOfSyncEvent struct { - DvsEvent - - HostOutOfSync DvsOutOfSyncHostArgument `xml:"hostOutOfSync"` -} - -func init() { - t["DvsHostWentOutOfSyncEvent"] = reflect.TypeOf((*DvsHostWentOutOfSyncEvent)(nil)).Elem() -} - -type DvsImportEvent struct { - DvsEvent - - ImportType string `xml:"importType"` -} - -func init() { - t["DvsImportEvent"] = reflect.TypeOf((*DvsImportEvent)(nil)).Elem() -} - -type DvsIpNetworkRuleQualifier struct { - DvsNetworkRuleQualifier - - SourceAddress BaseIpAddress `xml:"sourceAddress,omitempty,typeattr"` - DestinationAddress BaseIpAddress `xml:"destinationAddress,omitempty,typeattr"` - Protocol *IntExpression `xml:"protocol,omitempty"` - SourceIpPort BaseDvsIpPort `xml:"sourceIpPort,omitempty,typeattr"` - DestinationIpPort BaseDvsIpPort `xml:"destinationIpPort,omitempty,typeattr"` - TcpFlags *IntExpression `xml:"tcpFlags,omitempty"` -} - -func init() { - t["DvsIpNetworkRuleQualifier"] = reflect.TypeOf((*DvsIpNetworkRuleQualifier)(nil)).Elem() -} - -type DvsIpPort struct { - NegatableExpression -} - -func init() { - t["DvsIpPort"] = reflect.TypeOf((*DvsIpPort)(nil)).Elem() -} - -type DvsIpPortRange struct { - DvsIpPort - - StartPortNumber int32 `xml:"startPortNumber"` - EndPortNumber int32 `xml:"endPortNumber"` -} - -func init() { - t["DvsIpPortRange"] = reflect.TypeOf((*DvsIpPortRange)(nil)).Elem() -} - -type DvsLogNetworkRuleAction struct { - DvsNetworkRuleAction -} - -func init() { - t["DvsLogNetworkRuleAction"] = reflect.TypeOf((*DvsLogNetworkRuleAction)(nil)).Elem() -} - -type DvsMacNetworkRuleQualifier struct { - DvsNetworkRuleQualifier - - SourceAddress BaseMacAddress `xml:"sourceAddress,omitempty,typeattr"` - DestinationAddress BaseMacAddress `xml:"destinationAddress,omitempty,typeattr"` - Protocol *IntExpression `xml:"protocol,omitempty"` - VlanId *IntExpression `xml:"vlanId,omitempty"` -} - -func init() { - t["DvsMacNetworkRuleQualifier"] = reflect.TypeOf((*DvsMacNetworkRuleQualifier)(nil)).Elem() -} - -type DvsMacRewriteNetworkRuleAction struct { - DvsNetworkRuleAction - - RewriteMac string `xml:"rewriteMac"` -} - -func init() { - t["DvsMacRewriteNetworkRuleAction"] = reflect.TypeOf((*DvsMacRewriteNetworkRuleAction)(nil)).Elem() -} - -type DvsMergedEvent struct { - DvsEvent - - SourceDvs DvsEventArgument `xml:"sourceDvs"` - DestinationDvs DvsEventArgument `xml:"destinationDvs"` -} - -func init() { - t["DvsMergedEvent"] = reflect.TypeOf((*DvsMergedEvent)(nil)).Elem() -} - -type DvsNetworkRuleAction struct { - DynamicData -} - -func init() { - t["DvsNetworkRuleAction"] = reflect.TypeOf((*DvsNetworkRuleAction)(nil)).Elem() -} - -type DvsNetworkRuleQualifier struct { - DynamicData - - Key string `xml:"key,omitempty"` -} - -func init() { - t["DvsNetworkRuleQualifier"] = reflect.TypeOf((*DvsNetworkRuleQualifier)(nil)).Elem() -} - -type DvsNotAuthorized struct { - DvsFault - - SessionExtensionKey string `xml:"sessionExtensionKey,omitempty"` - DvsExtensionKey string `xml:"dvsExtensionKey,omitempty"` -} - -func init() { - t["DvsNotAuthorized"] = reflect.TypeOf((*DvsNotAuthorized)(nil)).Elem() -} - -type DvsNotAuthorizedFault DvsNotAuthorized - -func init() { - t["DvsNotAuthorizedFault"] = reflect.TypeOf((*DvsNotAuthorizedFault)(nil)).Elem() -} - -type DvsOperationBulkFault struct { - DvsFault - - HostFault []DvsOperationBulkFaultFaultOnHost `xml:"hostFault"` -} - -func init() { - t["DvsOperationBulkFault"] = reflect.TypeOf((*DvsOperationBulkFault)(nil)).Elem() -} - -type DvsOperationBulkFaultFault DvsOperationBulkFault - -func init() { - t["DvsOperationBulkFaultFault"] = reflect.TypeOf((*DvsOperationBulkFaultFault)(nil)).Elem() -} - -type DvsOperationBulkFaultFaultOnHost struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["DvsOperationBulkFaultFaultOnHost"] = reflect.TypeOf((*DvsOperationBulkFaultFaultOnHost)(nil)).Elem() -} - -type DvsOutOfSyncHostArgument struct { - DynamicData - - OutOfSyncHost HostEventArgument `xml:"outOfSyncHost"` - ConfigParamters []string `xml:"configParamters"` -} - -func init() { - t["DvsOutOfSyncHostArgument"] = reflect.TypeOf((*DvsOutOfSyncHostArgument)(nil)).Elem() -} - -type DvsPortBlockedEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - StatusDetail string `xml:"statusDetail,omitempty"` - RuntimeInfo *DVPortStatus `xml:"runtimeInfo,omitempty"` - PrevBlockState string `xml:"prevBlockState,omitempty"` -} - -func init() { - t["DvsPortBlockedEvent"] = reflect.TypeOf((*DvsPortBlockedEvent)(nil)).Elem() -} - -type DvsPortConnectedEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - Connectee *DistributedVirtualSwitchPortConnectee `xml:"connectee,omitempty"` -} - -func init() { - t["DvsPortConnectedEvent"] = reflect.TypeOf((*DvsPortConnectedEvent)(nil)).Elem() -} - -type DvsPortCreatedEvent struct { - DvsEvent - - PortKey []string `xml:"portKey"` -} - -func init() { - t["DvsPortCreatedEvent"] = reflect.TypeOf((*DvsPortCreatedEvent)(nil)).Elem() -} - -type DvsPortDeletedEvent struct { - DvsEvent - - PortKey []string `xml:"portKey"` -} - -func init() { - t["DvsPortDeletedEvent"] = reflect.TypeOf((*DvsPortDeletedEvent)(nil)).Elem() -} - -type DvsPortDisconnectedEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - Connectee *DistributedVirtualSwitchPortConnectee `xml:"connectee,omitempty"` -} - -func init() { - t["DvsPortDisconnectedEvent"] = reflect.TypeOf((*DvsPortDisconnectedEvent)(nil)).Elem() -} - -type DvsPortEnteredPassthruEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - RuntimeInfo *DVPortStatus `xml:"runtimeInfo,omitempty"` -} - -func init() { - t["DvsPortEnteredPassthruEvent"] = reflect.TypeOf((*DvsPortEnteredPassthruEvent)(nil)).Elem() -} - -type DvsPortExitedPassthruEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - RuntimeInfo *DVPortStatus `xml:"runtimeInfo,omitempty"` -} - -func init() { - t["DvsPortExitedPassthruEvent"] = reflect.TypeOf((*DvsPortExitedPassthruEvent)(nil)).Elem() -} - -type DvsPortJoinPortgroupEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - PortgroupKey string `xml:"portgroupKey"` - PortgroupName string `xml:"portgroupName"` -} - -func init() { - t["DvsPortJoinPortgroupEvent"] = reflect.TypeOf((*DvsPortJoinPortgroupEvent)(nil)).Elem() -} - -type DvsPortLeavePortgroupEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - PortgroupKey string `xml:"portgroupKey"` - PortgroupName string `xml:"portgroupName"` -} - -func init() { - t["DvsPortLeavePortgroupEvent"] = reflect.TypeOf((*DvsPortLeavePortgroupEvent)(nil)).Elem() -} - -type DvsPortLinkDownEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - RuntimeInfo *DVPortStatus `xml:"runtimeInfo,omitempty"` -} - -func init() { - t["DvsPortLinkDownEvent"] = reflect.TypeOf((*DvsPortLinkDownEvent)(nil)).Elem() -} - -type DvsPortLinkUpEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - RuntimeInfo *DVPortStatus `xml:"runtimeInfo,omitempty"` -} - -func init() { - t["DvsPortLinkUpEvent"] = reflect.TypeOf((*DvsPortLinkUpEvent)(nil)).Elem() -} - -type DvsPortReconfiguredEvent struct { - DvsEvent - - PortKey []string `xml:"portKey"` - ConfigChanges []ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["DvsPortReconfiguredEvent"] = reflect.TypeOf((*DvsPortReconfiguredEvent)(nil)).Elem() -} - -type DvsPortRuntimeChangeEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - RuntimeInfo DVPortStatus `xml:"runtimeInfo"` -} - -func init() { - t["DvsPortRuntimeChangeEvent"] = reflect.TypeOf((*DvsPortRuntimeChangeEvent)(nil)).Elem() -} - -type DvsPortUnblockedEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` - RuntimeInfo *DVPortStatus `xml:"runtimeInfo,omitempty"` - PrevBlockState string `xml:"prevBlockState,omitempty"` -} - -func init() { - t["DvsPortUnblockedEvent"] = reflect.TypeOf((*DvsPortUnblockedEvent)(nil)).Elem() -} - -type DvsPortVendorSpecificStateChangeEvent struct { - DvsEvent - - PortKey string `xml:"portKey"` -} - -func init() { - t["DvsPortVendorSpecificStateChangeEvent"] = reflect.TypeOf((*DvsPortVendorSpecificStateChangeEvent)(nil)).Elem() -} - -type DvsProfile struct { - ApplyProfile - - Key string `xml:"key"` - Name string `xml:"name"` - Uplink []PnicUplinkProfile `xml:"uplink,omitempty"` -} - -func init() { - t["DvsProfile"] = reflect.TypeOf((*DvsProfile)(nil)).Elem() -} - -type DvsPuntNetworkRuleAction struct { - DvsNetworkRuleAction -} - -func init() { - t["DvsPuntNetworkRuleAction"] = reflect.TypeOf((*DvsPuntNetworkRuleAction)(nil)).Elem() -} - -type DvsRateLimitNetworkRuleAction struct { - DvsNetworkRuleAction - - PacketsPerSecond int32 `xml:"packetsPerSecond"` -} - -func init() { - t["DvsRateLimitNetworkRuleAction"] = reflect.TypeOf((*DvsRateLimitNetworkRuleAction)(nil)).Elem() -} - -type DvsReconfigureVmVnicNetworkResourcePoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - ConfigSpec []DvsVmVnicResourcePoolConfigSpec `xml:"configSpec"` -} - -func init() { - t["DvsReconfigureVmVnicNetworkResourcePoolRequestType"] = reflect.TypeOf((*DvsReconfigureVmVnicNetworkResourcePoolRequestType)(nil)).Elem() -} - -type DvsReconfigureVmVnicNetworkResourcePool_Task DvsReconfigureVmVnicNetworkResourcePoolRequestType - -func init() { - t["DvsReconfigureVmVnicNetworkResourcePool_Task"] = reflect.TypeOf((*DvsReconfigureVmVnicNetworkResourcePool_Task)(nil)).Elem() -} - -type DvsReconfigureVmVnicNetworkResourcePool_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type DvsReconfiguredEvent struct { - DvsEvent - - ConfigSpec BaseDVSConfigSpec `xml:"configSpec,typeattr"` - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["DvsReconfiguredEvent"] = reflect.TypeOf((*DvsReconfiguredEvent)(nil)).Elem() -} - -type DvsRenamedEvent struct { - DvsEvent - - OldName string `xml:"oldName"` - NewName string `xml:"newName"` -} - -func init() { - t["DvsRenamedEvent"] = reflect.TypeOf((*DvsRenamedEvent)(nil)).Elem() -} - -type DvsResourceRuntimeInfo struct { - DynamicData - - Capacity int32 `xml:"capacity,omitempty"` - Usage int32 `xml:"usage,omitempty"` - Available int32 `xml:"available,omitempty"` - AllocatedResource []DvsVnicAllocatedResource `xml:"allocatedResource,omitempty"` - VmVnicNetworkResourcePoolRuntime []DvsVmVnicNetworkResourcePoolRuntimeInfo `xml:"vmVnicNetworkResourcePoolRuntime,omitempty"` -} - -func init() { - t["DvsResourceRuntimeInfo"] = reflect.TypeOf((*DvsResourceRuntimeInfo)(nil)).Elem() -} - -type DvsRestoreEvent struct { - DvsEvent -} - -func init() { - t["DvsRestoreEvent"] = reflect.TypeOf((*DvsRestoreEvent)(nil)).Elem() -} - -type DvsScopeViolated struct { - DvsFault - - Scope []ManagedObjectReference `xml:"scope"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["DvsScopeViolated"] = reflect.TypeOf((*DvsScopeViolated)(nil)).Elem() -} - -type DvsScopeViolatedFault DvsScopeViolated - -func init() { - t["DvsScopeViolatedFault"] = reflect.TypeOf((*DvsScopeViolatedFault)(nil)).Elem() -} - -type DvsServiceConsoleVNicProfile struct { - DvsVNicProfile -} - -func init() { - t["DvsServiceConsoleVNicProfile"] = reflect.TypeOf((*DvsServiceConsoleVNicProfile)(nil)).Elem() -} - -type DvsSingleIpPort struct { - DvsIpPort - - PortNumber int32 `xml:"portNumber"` -} - -func init() { - t["DvsSingleIpPort"] = reflect.TypeOf((*DvsSingleIpPort)(nil)).Elem() -} - -type DvsSystemTrafficNetworkRuleQualifier struct { - DvsNetworkRuleQualifier - - TypeOfSystemTraffic *StringExpression `xml:"typeOfSystemTraffic,omitempty"` -} - -func init() { - t["DvsSystemTrafficNetworkRuleQualifier"] = reflect.TypeOf((*DvsSystemTrafficNetworkRuleQualifier)(nil)).Elem() -} - -type DvsTrafficFilterConfig struct { - DvsFilterConfig - - TrafficRuleset *DvsTrafficRuleset `xml:"trafficRuleset,omitempty"` -} - -func init() { - t["DvsTrafficFilterConfig"] = reflect.TypeOf((*DvsTrafficFilterConfig)(nil)).Elem() -} - -type DvsTrafficFilterConfigSpec struct { - DvsTrafficFilterConfig - - Operation string `xml:"operation"` -} - -func init() { - t["DvsTrafficFilterConfigSpec"] = reflect.TypeOf((*DvsTrafficFilterConfigSpec)(nil)).Elem() -} - -type DvsTrafficRule struct { - DynamicData - - Key string `xml:"key,omitempty"` - Description string `xml:"description,omitempty"` - Sequence int32 `xml:"sequence,omitempty"` - Qualifier []BaseDvsNetworkRuleQualifier `xml:"qualifier,omitempty,typeattr"` - Action BaseDvsNetworkRuleAction `xml:"action,omitempty,typeattr"` - Direction string `xml:"direction,omitempty"` -} - -func init() { - t["DvsTrafficRule"] = reflect.TypeOf((*DvsTrafficRule)(nil)).Elem() -} - -type DvsTrafficRuleset struct { - DynamicData - - Key string `xml:"key,omitempty"` - Enabled *bool `xml:"enabled"` - Precedence int32 `xml:"precedence,omitempty"` - Rules []DvsTrafficRule `xml:"rules,omitempty"` -} - -func init() { - t["DvsTrafficRuleset"] = reflect.TypeOf((*DvsTrafficRuleset)(nil)).Elem() -} - -type DvsUpdateTagNetworkRuleAction struct { - DvsNetworkRuleAction - - QosTag int32 `xml:"qosTag,omitempty"` - DscpTag int32 `xml:"dscpTag,omitempty"` -} - -func init() { - t["DvsUpdateTagNetworkRuleAction"] = reflect.TypeOf((*DvsUpdateTagNetworkRuleAction)(nil)).Elem() -} - -type DvsUpgradeAvailableEvent struct { - DvsEvent - - ProductInfo DistributedVirtualSwitchProductSpec `xml:"productInfo"` -} - -func init() { - t["DvsUpgradeAvailableEvent"] = reflect.TypeOf((*DvsUpgradeAvailableEvent)(nil)).Elem() -} - -type DvsUpgradeInProgressEvent struct { - DvsEvent - - ProductInfo DistributedVirtualSwitchProductSpec `xml:"productInfo"` -} - -func init() { - t["DvsUpgradeInProgressEvent"] = reflect.TypeOf((*DvsUpgradeInProgressEvent)(nil)).Elem() -} - -type DvsUpgradeRejectedEvent struct { - DvsEvent - - ProductInfo DistributedVirtualSwitchProductSpec `xml:"productInfo"` -} - -func init() { - t["DvsUpgradeRejectedEvent"] = reflect.TypeOf((*DvsUpgradeRejectedEvent)(nil)).Elem() -} - -type DvsUpgradedEvent struct { - DvsEvent - - ProductInfo DistributedVirtualSwitchProductSpec `xml:"productInfo"` -} - -func init() { - t["DvsUpgradedEvent"] = reflect.TypeOf((*DvsUpgradedEvent)(nil)).Elem() -} - -type DvsVNicProfile struct { - ApplyProfile - - Key string `xml:"key"` - IpConfig IpAddressProfile `xml:"ipConfig"` -} - -func init() { - t["DvsVNicProfile"] = reflect.TypeOf((*DvsVNicProfile)(nil)).Elem() -} - -type DvsVmVnicNetworkResourcePoolRuntimeInfo struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name,omitempty"` - Capacity int32 `xml:"capacity,omitempty"` - Usage int32 `xml:"usage,omitempty"` - Available int32 `xml:"available,omitempty"` - Status string `xml:"status"` - AllocatedResource []DvsVnicAllocatedResource `xml:"allocatedResource,omitempty"` -} - -func init() { - t["DvsVmVnicNetworkResourcePoolRuntimeInfo"] = reflect.TypeOf((*DvsVmVnicNetworkResourcePoolRuntimeInfo)(nil)).Elem() -} - -type DvsVmVnicResourceAllocation struct { - DynamicData - - ReservationQuota int64 `xml:"reservationQuota,omitempty"` -} - -func init() { - t["DvsVmVnicResourceAllocation"] = reflect.TypeOf((*DvsVmVnicResourceAllocation)(nil)).Elem() -} - -type DvsVmVnicResourcePoolConfigSpec struct { - DynamicData - - Operation string `xml:"operation"` - Key string `xml:"key,omitempty"` - ConfigVersion string `xml:"configVersion,omitempty"` - AllocationInfo *DvsVmVnicResourceAllocation `xml:"allocationInfo,omitempty"` - Name string `xml:"name,omitempty"` - Description string `xml:"description,omitempty"` -} - -func init() { - t["DvsVmVnicResourcePoolConfigSpec"] = reflect.TypeOf((*DvsVmVnicResourcePoolConfigSpec)(nil)).Elem() -} - -type DvsVnicAllocatedResource struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - VnicKey string `xml:"vnicKey"` - Reservation int64 `xml:"reservation,omitempty"` -} - -func init() { - t["DvsVnicAllocatedResource"] = reflect.TypeOf((*DvsVnicAllocatedResource)(nil)).Elem() -} - -type DynamicArray struct { - Val []AnyType `xml:"val,typeattr"` -} - -func init() { - t["DynamicArray"] = reflect.TypeOf((*DynamicArray)(nil)).Elem() -} - -type DynamicData struct { -} - -func init() { - t["DynamicData"] = reflect.TypeOf((*DynamicData)(nil)).Elem() -} - -type DynamicProperty struct { - Name string `xml:"name"` - Val AnyType `xml:"val,typeattr"` -} - -func init() { - t["DynamicProperty"] = reflect.TypeOf((*DynamicProperty)(nil)).Elem() -} - -type EVCAdmissionFailed struct { - NotSupportedHostInCluster - - Faults []LocalizedMethodFault `xml:"faults,omitempty"` -} - -func init() { - t["EVCAdmissionFailed"] = reflect.TypeOf((*EVCAdmissionFailed)(nil)).Elem() -} - -type EVCAdmissionFailedCPUFeaturesForMode struct { - EVCAdmissionFailed - - CurrentEVCModeKey string `xml:"currentEVCModeKey"` -} - -func init() { - t["EVCAdmissionFailedCPUFeaturesForMode"] = reflect.TypeOf((*EVCAdmissionFailedCPUFeaturesForMode)(nil)).Elem() -} - -type EVCAdmissionFailedCPUFeaturesForModeFault EVCAdmissionFailedCPUFeaturesForMode - -func init() { - t["EVCAdmissionFailedCPUFeaturesForModeFault"] = reflect.TypeOf((*EVCAdmissionFailedCPUFeaturesForModeFault)(nil)).Elem() -} - -type EVCAdmissionFailedCPUModel struct { - EVCAdmissionFailed -} - -func init() { - t["EVCAdmissionFailedCPUModel"] = reflect.TypeOf((*EVCAdmissionFailedCPUModel)(nil)).Elem() -} - -type EVCAdmissionFailedCPUModelFault EVCAdmissionFailedCPUModel - -func init() { - t["EVCAdmissionFailedCPUModelFault"] = reflect.TypeOf((*EVCAdmissionFailedCPUModelFault)(nil)).Elem() -} - -type EVCAdmissionFailedCPUModelForMode struct { - EVCAdmissionFailed - - CurrentEVCModeKey string `xml:"currentEVCModeKey"` -} - -func init() { - t["EVCAdmissionFailedCPUModelForMode"] = reflect.TypeOf((*EVCAdmissionFailedCPUModelForMode)(nil)).Elem() -} - -type EVCAdmissionFailedCPUModelForModeFault EVCAdmissionFailedCPUModelForMode - -func init() { - t["EVCAdmissionFailedCPUModelForModeFault"] = reflect.TypeOf((*EVCAdmissionFailedCPUModelForModeFault)(nil)).Elem() -} - -type EVCAdmissionFailedCPUVendor struct { - EVCAdmissionFailed - - ClusterCPUVendor string `xml:"clusterCPUVendor"` - HostCPUVendor string `xml:"hostCPUVendor"` -} - -func init() { - t["EVCAdmissionFailedCPUVendor"] = reflect.TypeOf((*EVCAdmissionFailedCPUVendor)(nil)).Elem() -} - -type EVCAdmissionFailedCPUVendorFault EVCAdmissionFailedCPUVendor - -func init() { - t["EVCAdmissionFailedCPUVendorFault"] = reflect.TypeOf((*EVCAdmissionFailedCPUVendorFault)(nil)).Elem() -} - -type EVCAdmissionFailedCPUVendorUnknown struct { - EVCAdmissionFailed -} - -func init() { - t["EVCAdmissionFailedCPUVendorUnknown"] = reflect.TypeOf((*EVCAdmissionFailedCPUVendorUnknown)(nil)).Elem() -} - -type EVCAdmissionFailedCPUVendorUnknownFault EVCAdmissionFailedCPUVendorUnknown - -func init() { - t["EVCAdmissionFailedCPUVendorUnknownFault"] = reflect.TypeOf((*EVCAdmissionFailedCPUVendorUnknownFault)(nil)).Elem() -} - -type EVCAdmissionFailedFault BaseEVCAdmissionFailed - -func init() { - t["EVCAdmissionFailedFault"] = reflect.TypeOf((*EVCAdmissionFailedFault)(nil)).Elem() -} - -type EVCAdmissionFailedHostDisconnected struct { - EVCAdmissionFailed -} - -func init() { - t["EVCAdmissionFailedHostDisconnected"] = reflect.TypeOf((*EVCAdmissionFailedHostDisconnected)(nil)).Elem() -} - -type EVCAdmissionFailedHostDisconnectedFault EVCAdmissionFailedHostDisconnected - -func init() { - t["EVCAdmissionFailedHostDisconnectedFault"] = reflect.TypeOf((*EVCAdmissionFailedHostDisconnectedFault)(nil)).Elem() -} - -type EVCAdmissionFailedHostSoftware struct { - EVCAdmissionFailed -} - -func init() { - t["EVCAdmissionFailedHostSoftware"] = reflect.TypeOf((*EVCAdmissionFailedHostSoftware)(nil)).Elem() -} - -type EVCAdmissionFailedHostSoftwareFault EVCAdmissionFailedHostSoftware - -func init() { - t["EVCAdmissionFailedHostSoftwareFault"] = reflect.TypeOf((*EVCAdmissionFailedHostSoftwareFault)(nil)).Elem() -} - -type EVCAdmissionFailedHostSoftwareForMode struct { - EVCAdmissionFailed -} - -func init() { - t["EVCAdmissionFailedHostSoftwareForMode"] = reflect.TypeOf((*EVCAdmissionFailedHostSoftwareForMode)(nil)).Elem() -} - -type EVCAdmissionFailedHostSoftwareForModeFault EVCAdmissionFailedHostSoftwareForMode - -func init() { - t["EVCAdmissionFailedHostSoftwareForModeFault"] = reflect.TypeOf((*EVCAdmissionFailedHostSoftwareForModeFault)(nil)).Elem() -} - -type EVCAdmissionFailedVmActive struct { - EVCAdmissionFailed -} - -func init() { - t["EVCAdmissionFailedVmActive"] = reflect.TypeOf((*EVCAdmissionFailedVmActive)(nil)).Elem() -} - -type EVCAdmissionFailedVmActiveFault EVCAdmissionFailedVmActive - -func init() { - t["EVCAdmissionFailedVmActiveFault"] = reflect.TypeOf((*EVCAdmissionFailedVmActiveFault)(nil)).Elem() -} - -type EVCConfigFault struct { - VimFault - - Faults []LocalizedMethodFault `xml:"faults,omitempty"` -} - -func init() { - t["EVCConfigFault"] = reflect.TypeOf((*EVCConfigFault)(nil)).Elem() -} - -type EVCConfigFaultFault BaseEVCConfigFault - -func init() { - t["EVCConfigFaultFault"] = reflect.TypeOf((*EVCConfigFaultFault)(nil)).Elem() -} - -type EVCMode struct { - ElementDescription - - GuaranteedCPUFeatures []HostCpuIdInfo `xml:"guaranteedCPUFeatures,omitempty"` - FeatureCapability []HostFeatureCapability `xml:"featureCapability,omitempty"` - FeatureMask []HostFeatureMask `xml:"featureMask,omitempty"` - FeatureRequirement []VirtualMachineFeatureRequirement `xml:"featureRequirement,omitempty"` - Vendor string `xml:"vendor"` - Track []string `xml:"track,omitempty"` - VendorTier int32 `xml:"vendorTier"` -} - -func init() { - t["EVCMode"] = reflect.TypeOf((*EVCMode)(nil)).Elem() -} - -type EVCModeIllegalByVendor struct { - EVCConfigFault - - ClusterCPUVendor string `xml:"clusterCPUVendor"` - ModeCPUVendor string `xml:"modeCPUVendor"` -} - -func init() { - t["EVCModeIllegalByVendor"] = reflect.TypeOf((*EVCModeIllegalByVendor)(nil)).Elem() -} - -type EVCModeIllegalByVendorFault EVCModeIllegalByVendor - -func init() { - t["EVCModeIllegalByVendorFault"] = reflect.TypeOf((*EVCModeIllegalByVendorFault)(nil)).Elem() -} - -type EVCModeUnsupportedByHosts struct { - EVCConfigFault - - EvcMode string `xml:"evcMode,omitempty"` - Host []ManagedObjectReference `xml:"host,omitempty"` - HostName []string `xml:"hostName,omitempty"` -} - -func init() { - t["EVCModeUnsupportedByHosts"] = reflect.TypeOf((*EVCModeUnsupportedByHosts)(nil)).Elem() -} - -type EVCModeUnsupportedByHostsFault EVCModeUnsupportedByHosts - -func init() { - t["EVCModeUnsupportedByHostsFault"] = reflect.TypeOf((*EVCModeUnsupportedByHostsFault)(nil)).Elem() -} - -type EVCUnsupportedByHostHardware struct { - EVCConfigFault - - Host []ManagedObjectReference `xml:"host"` - HostName []string `xml:"hostName"` -} - -func init() { - t["EVCUnsupportedByHostHardware"] = reflect.TypeOf((*EVCUnsupportedByHostHardware)(nil)).Elem() -} - -type EVCUnsupportedByHostHardwareFault EVCUnsupportedByHostHardware - -func init() { - t["EVCUnsupportedByHostHardwareFault"] = reflect.TypeOf((*EVCUnsupportedByHostHardwareFault)(nil)).Elem() -} - -type EVCUnsupportedByHostSoftware struct { - EVCConfigFault - - Host []ManagedObjectReference `xml:"host"` - HostName []string `xml:"hostName"` -} - -func init() { - t["EVCUnsupportedByHostSoftware"] = reflect.TypeOf((*EVCUnsupportedByHostSoftware)(nil)).Elem() -} - -type EVCUnsupportedByHostSoftwareFault EVCUnsupportedByHostSoftware - -func init() { - t["EVCUnsupportedByHostSoftwareFault"] = reflect.TypeOf((*EVCUnsupportedByHostSoftwareFault)(nil)).Elem() -} - -type EagerZeroVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["EagerZeroVirtualDiskRequestType"] = reflect.TypeOf((*EagerZeroVirtualDiskRequestType)(nil)).Elem() -} - -type EagerZeroVirtualDisk_Task EagerZeroVirtualDiskRequestType - -func init() { - t["EagerZeroVirtualDisk_Task"] = reflect.TypeOf((*EagerZeroVirtualDisk_Task)(nil)).Elem() -} - -type EagerZeroVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type EightHostLimitViolated struct { - VmConfigFault -} - -func init() { - t["EightHostLimitViolated"] = reflect.TypeOf((*EightHostLimitViolated)(nil)).Elem() -} - -type EightHostLimitViolatedFault EightHostLimitViolated - -func init() { - t["EightHostLimitViolatedFault"] = reflect.TypeOf((*EightHostLimitViolatedFault)(nil)).Elem() -} - -type ElementDescription struct { - Description - - Key string `xml:"key"` -} - -func init() { - t["ElementDescription"] = reflect.TypeOf((*ElementDescription)(nil)).Elem() -} - -type EnableAlarmActions EnableAlarmActionsRequestType - -func init() { - t["EnableAlarmActions"] = reflect.TypeOf((*EnableAlarmActions)(nil)).Elem() -} - -type EnableAlarmActionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Enabled bool `xml:"enabled"` -} - -func init() { - t["EnableAlarmActionsRequestType"] = reflect.TypeOf((*EnableAlarmActionsRequestType)(nil)).Elem() -} - -type EnableAlarmActionsResponse struct { -} - -type EnableCrypto EnableCryptoRequestType - -func init() { - t["EnableCrypto"] = reflect.TypeOf((*EnableCrypto)(nil)).Elem() -} - -type EnableCryptoRequestType struct { - This ManagedObjectReference `xml:"_this"` - KeyPlain CryptoKeyPlain `xml:"keyPlain"` -} - -func init() { - t["EnableCryptoRequestType"] = reflect.TypeOf((*EnableCryptoRequestType)(nil)).Elem() -} - -type EnableCryptoResponse struct { -} - -type EnableFeature EnableFeatureRequestType - -func init() { - t["EnableFeature"] = reflect.TypeOf((*EnableFeature)(nil)).Elem() -} - -type EnableFeatureRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - FeatureKey string `xml:"featureKey"` -} - -func init() { - t["EnableFeatureRequestType"] = reflect.TypeOf((*EnableFeatureRequestType)(nil)).Elem() -} - -type EnableFeatureResponse struct { - Returnval bool `xml:"returnval"` -} - -type EnableHyperThreading EnableHyperThreadingRequestType - -func init() { - t["EnableHyperThreading"] = reflect.TypeOf((*EnableHyperThreading)(nil)).Elem() -} - -type EnableHyperThreadingRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["EnableHyperThreadingRequestType"] = reflect.TypeOf((*EnableHyperThreadingRequestType)(nil)).Elem() -} - -type EnableHyperThreadingResponse struct { -} - -type EnableMultipathPath EnableMultipathPathRequestType - -func init() { - t["EnableMultipathPath"] = reflect.TypeOf((*EnableMultipathPath)(nil)).Elem() -} - -type EnableMultipathPathRequestType struct { - This ManagedObjectReference `xml:"_this"` - PathName string `xml:"pathName"` -} - -func init() { - t["EnableMultipathPathRequestType"] = reflect.TypeOf((*EnableMultipathPathRequestType)(nil)).Elem() -} - -type EnableMultipathPathResponse struct { -} - -type EnableNetworkResourceManagement EnableNetworkResourceManagementRequestType - -func init() { - t["EnableNetworkResourceManagement"] = reflect.TypeOf((*EnableNetworkResourceManagement)(nil)).Elem() -} - -type EnableNetworkResourceManagementRequestType struct { - This ManagedObjectReference `xml:"_this"` - Enable bool `xml:"enable"` -} - -func init() { - t["EnableNetworkResourceManagementRequestType"] = reflect.TypeOf((*EnableNetworkResourceManagementRequestType)(nil)).Elem() -} - -type EnableNetworkResourceManagementResponse struct { -} - -type EnableRuleset EnableRulesetRequestType - -func init() { - t["EnableRuleset"] = reflect.TypeOf((*EnableRuleset)(nil)).Elem() -} - -type EnableRulesetRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["EnableRulesetRequestType"] = reflect.TypeOf((*EnableRulesetRequestType)(nil)).Elem() -} - -type EnableRulesetResponse struct { -} - -type EnableSecondaryVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["EnableSecondaryVMRequestType"] = reflect.TypeOf((*EnableSecondaryVMRequestType)(nil)).Elem() -} - -type EnableSecondaryVM_Task EnableSecondaryVMRequestType - -func init() { - t["EnableSecondaryVM_Task"] = reflect.TypeOf((*EnableSecondaryVM_Task)(nil)).Elem() -} - -type EnableSecondaryVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type EnableSmartCardAuthentication EnableSmartCardAuthenticationRequestType - -func init() { - t["EnableSmartCardAuthentication"] = reflect.TypeOf((*EnableSmartCardAuthentication)(nil)).Elem() -} - -type EnableSmartCardAuthenticationRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["EnableSmartCardAuthenticationRequestType"] = reflect.TypeOf((*EnableSmartCardAuthenticationRequestType)(nil)).Elem() -} - -type EnableSmartCardAuthenticationResponse struct { -} - -type EnterLockdownMode EnterLockdownModeRequestType - -func init() { - t["EnterLockdownMode"] = reflect.TypeOf((*EnterLockdownMode)(nil)).Elem() -} - -type EnterLockdownModeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["EnterLockdownModeRequestType"] = reflect.TypeOf((*EnterLockdownModeRequestType)(nil)).Elem() -} - -type EnterLockdownModeResponse struct { -} - -type EnterMaintenanceModeRequestType struct { - This ManagedObjectReference `xml:"_this"` - Timeout int32 `xml:"timeout"` - EvacuatePoweredOffVms *bool `xml:"evacuatePoweredOffVms"` - MaintenanceSpec *HostMaintenanceSpec `xml:"maintenanceSpec,omitempty"` -} - -func init() { - t["EnterMaintenanceModeRequestType"] = reflect.TypeOf((*EnterMaintenanceModeRequestType)(nil)).Elem() -} - -type EnterMaintenanceMode_Task EnterMaintenanceModeRequestType - -func init() { - t["EnterMaintenanceMode_Task"] = reflect.TypeOf((*EnterMaintenanceMode_Task)(nil)).Elem() -} - -type EnterMaintenanceMode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type EnteredMaintenanceModeEvent struct { - HostEvent -} - -func init() { - t["EnteredMaintenanceModeEvent"] = reflect.TypeOf((*EnteredMaintenanceModeEvent)(nil)).Elem() -} - -type EnteredStandbyModeEvent struct { - HostEvent -} - -func init() { - t["EnteredStandbyModeEvent"] = reflect.TypeOf((*EnteredStandbyModeEvent)(nil)).Elem() -} - -type EnteringMaintenanceModeEvent struct { - HostEvent -} - -func init() { - t["EnteringMaintenanceModeEvent"] = reflect.TypeOf((*EnteringMaintenanceModeEvent)(nil)).Elem() -} - -type EnteringStandbyModeEvent struct { - HostEvent -} - -func init() { - t["EnteringStandbyModeEvent"] = reflect.TypeOf((*EnteringStandbyModeEvent)(nil)).Elem() -} - -type EntityBackup struct { - DynamicData -} - -func init() { - t["EntityBackup"] = reflect.TypeOf((*EntityBackup)(nil)).Elem() -} - -type EntityBackupConfig struct { - DynamicData - - EntityType string `xml:"entityType"` - ConfigBlob []byte `xml:"configBlob"` - Key string `xml:"key,omitempty"` - Name string `xml:"name,omitempty"` - Container *ManagedObjectReference `xml:"container,omitempty"` - ConfigVersion string `xml:"configVersion,omitempty"` -} - -func init() { - t["EntityBackupConfig"] = reflect.TypeOf((*EntityBackupConfig)(nil)).Elem() -} - -type EntityEventArgument struct { - EventArgument - - Name string `xml:"name"` -} - -func init() { - t["EntityEventArgument"] = reflect.TypeOf((*EntityEventArgument)(nil)).Elem() -} - -type EntityPrivilege struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - PrivAvailability []PrivilegeAvailability `xml:"privAvailability"` -} - -func init() { - t["EntityPrivilege"] = reflect.TypeOf((*EntityPrivilege)(nil)).Elem() -} - -type EnumDescription struct { - DynamicData - - Key string `xml:"key"` - Tags []BaseElementDescription `xml:"tags,typeattr"` -} - -func init() { - t["EnumDescription"] = reflect.TypeOf((*EnumDescription)(nil)).Elem() -} - -type EnvironmentBrowserConfigOptionQuerySpec struct { - DynamicData - - Key string `xml:"key,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - GuestId []string `xml:"guestId,omitempty"` -} - -func init() { - t["EnvironmentBrowserConfigOptionQuerySpec"] = reflect.TypeOf((*EnvironmentBrowserConfigOptionQuerySpec)(nil)).Elem() -} - -type ErrorUpgradeEvent struct { - UpgradeEvent -} - -func init() { - t["ErrorUpgradeEvent"] = reflect.TypeOf((*ErrorUpgradeEvent)(nil)).Elem() -} - -type EstimateDatabaseSize EstimateDatabaseSizeRequestType - -func init() { - t["EstimateDatabaseSize"] = reflect.TypeOf((*EstimateDatabaseSize)(nil)).Elem() -} - -type EstimateDatabaseSizeRequestType struct { - This ManagedObjectReference `xml:"_this"` - DbSizeParam DatabaseSizeParam `xml:"dbSizeParam"` -} - -func init() { - t["EstimateDatabaseSizeRequestType"] = reflect.TypeOf((*EstimateDatabaseSizeRequestType)(nil)).Elem() -} - -type EstimateDatabaseSizeResponse struct { - Returnval DatabaseSizeEstimate `xml:"returnval"` -} - -type EstimateStorageForConsolidateSnapshotsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["EstimateStorageForConsolidateSnapshotsRequestType"] = reflect.TypeOf((*EstimateStorageForConsolidateSnapshotsRequestType)(nil)).Elem() -} - -type EstimateStorageForConsolidateSnapshots_Task EstimateStorageForConsolidateSnapshotsRequestType - -func init() { - t["EstimateStorageForConsolidateSnapshots_Task"] = reflect.TypeOf((*EstimateStorageForConsolidateSnapshots_Task)(nil)).Elem() -} - -type EstimateStorageForConsolidateSnapshots_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type EsxAgentHostManagerUpdateConfig EsxAgentHostManagerUpdateConfigRequestType - -func init() { - t["EsxAgentHostManagerUpdateConfig"] = reflect.TypeOf((*EsxAgentHostManagerUpdateConfig)(nil)).Elem() -} - -type EsxAgentHostManagerUpdateConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - ConfigInfo HostEsxAgentHostManagerConfigInfo `xml:"configInfo"` -} - -func init() { - t["EsxAgentHostManagerUpdateConfigRequestType"] = reflect.TypeOf((*EsxAgentHostManagerUpdateConfigRequestType)(nil)).Elem() -} - -type EsxAgentHostManagerUpdateConfigResponse struct { -} - -type EvacuateVsanNodeRequestType struct { - This ManagedObjectReference `xml:"_this"` - MaintenanceSpec HostMaintenanceSpec `xml:"maintenanceSpec"` - Timeout int32 `xml:"timeout"` -} - -func init() { - t["EvacuateVsanNodeRequestType"] = reflect.TypeOf((*EvacuateVsanNodeRequestType)(nil)).Elem() -} - -type EvacuateVsanNode_Task EvacuateVsanNodeRequestType - -func init() { - t["EvacuateVsanNode_Task"] = reflect.TypeOf((*EvacuateVsanNode_Task)(nil)).Elem() -} - -type EvacuateVsanNode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type EvaluationLicenseSource struct { - LicenseSource - - RemainingHours int64 `xml:"remainingHours,omitempty"` -} - -func init() { - t["EvaluationLicenseSource"] = reflect.TypeOf((*EvaluationLicenseSource)(nil)).Elem() -} - -type EvcManager EvcManagerRequestType - -func init() { - t["EvcManager"] = reflect.TypeOf((*EvcManager)(nil)).Elem() -} - -type EvcManagerRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["EvcManagerRequestType"] = reflect.TypeOf((*EvcManagerRequestType)(nil)).Elem() -} - -type EvcManagerResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type Event struct { - DynamicData - - Key int32 `xml:"key"` - ChainId int32 `xml:"chainId"` - CreatedTime time.Time `xml:"createdTime"` - UserName string `xml:"userName"` - Datacenter *DatacenterEventArgument `xml:"datacenter,omitempty"` - ComputeResource *ComputeResourceEventArgument `xml:"computeResource,omitempty"` - Host *HostEventArgument `xml:"host,omitempty"` - Vm *VmEventArgument `xml:"vm,omitempty"` - Ds *DatastoreEventArgument `xml:"ds,omitempty"` - Net *NetworkEventArgument `xml:"net,omitempty"` - Dvs *DvsEventArgument `xml:"dvs,omitempty"` - FullFormattedMessage string `xml:"fullFormattedMessage,omitempty"` - ChangeTag string `xml:"changeTag,omitempty"` -} - -func init() { - t["Event"] = reflect.TypeOf((*Event)(nil)).Elem() -} - -type EventAlarmExpression struct { - AlarmExpression - - Comparisons []EventAlarmExpressionComparison `xml:"comparisons,omitempty"` - EventType string `xml:"eventType"` - EventTypeId string `xml:"eventTypeId,omitempty"` - ObjectType string `xml:"objectType,omitempty"` - Status ManagedEntityStatus `xml:"status,omitempty"` -} - -func init() { - t["EventAlarmExpression"] = reflect.TypeOf((*EventAlarmExpression)(nil)).Elem() -} - -type EventAlarmExpressionComparison struct { - DynamicData - - AttributeName string `xml:"attributeName"` - Operator string `xml:"operator"` - Value string `xml:"value"` -} - -func init() { - t["EventAlarmExpressionComparison"] = reflect.TypeOf((*EventAlarmExpressionComparison)(nil)).Elem() -} - -type EventArgDesc struct { - DynamicData - - Name string `xml:"name"` - Type string `xml:"type"` - Description BaseElementDescription `xml:"description,omitempty,typeattr"` -} - -func init() { - t["EventArgDesc"] = reflect.TypeOf((*EventArgDesc)(nil)).Elem() -} - -type EventArgument struct { - DynamicData -} - -func init() { - t["EventArgument"] = reflect.TypeOf((*EventArgument)(nil)).Elem() -} - -type EventDescription struct { - DynamicData - - Category []BaseElementDescription `xml:"category,typeattr"` - EventInfo []EventDescriptionEventDetail `xml:"eventInfo"` - EnumeratedTypes []EnumDescription `xml:"enumeratedTypes,omitempty"` -} - -func init() { - t["EventDescription"] = reflect.TypeOf((*EventDescription)(nil)).Elem() -} - -type EventDescriptionEventDetail struct { - DynamicData - - Key string `xml:"key"` - Description string `xml:"description,omitempty"` - Category string `xml:"category"` - FormatOnDatacenter string `xml:"formatOnDatacenter"` - FormatOnComputeResource string `xml:"formatOnComputeResource"` - FormatOnHost string `xml:"formatOnHost"` - FormatOnVm string `xml:"formatOnVm"` - FullFormat string `xml:"fullFormat"` - LongDescription string `xml:"longDescription,omitempty"` -} - -func init() { - t["EventDescriptionEventDetail"] = reflect.TypeOf((*EventDescriptionEventDetail)(nil)).Elem() -} - -type EventEx struct { - Event - - EventTypeId string `xml:"eventTypeId"` - Severity string `xml:"severity,omitempty"` - Message string `xml:"message,omitempty"` - Arguments []KeyAnyValue `xml:"arguments,omitempty"` - ObjectId string `xml:"objectId,omitempty"` - ObjectType string `xml:"objectType,omitempty"` - ObjectName string `xml:"objectName,omitempty"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["EventEx"] = reflect.TypeOf((*EventEx)(nil)).Elem() -} - -type EventFilterSpec struct { - DynamicData - - Entity *EventFilterSpecByEntity `xml:"entity,omitempty"` - Time *EventFilterSpecByTime `xml:"time,omitempty"` - UserName *EventFilterSpecByUsername `xml:"userName,omitempty"` - EventChainId int32 `xml:"eventChainId,omitempty"` - Alarm *ManagedObjectReference `xml:"alarm,omitempty"` - ScheduledTask *ManagedObjectReference `xml:"scheduledTask,omitempty"` - DisableFullMessage *bool `xml:"disableFullMessage"` - Category []string `xml:"category,omitempty"` - Type []string `xml:"type,omitempty"` - Tag []string `xml:"tag,omitempty"` - EventTypeId []string `xml:"eventTypeId,omitempty"` - MaxCount int32 `xml:"maxCount,omitempty"` -} - -func init() { - t["EventFilterSpec"] = reflect.TypeOf((*EventFilterSpec)(nil)).Elem() -} - -type EventFilterSpecByEntity struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - Recursion EventFilterSpecRecursionOption `xml:"recursion"` -} - -func init() { - t["EventFilterSpecByEntity"] = reflect.TypeOf((*EventFilterSpecByEntity)(nil)).Elem() -} - -type EventFilterSpecByTime struct { - DynamicData - - BeginTime *time.Time `xml:"beginTime"` - EndTime *time.Time `xml:"endTime"` -} - -func init() { - t["EventFilterSpecByTime"] = reflect.TypeOf((*EventFilterSpecByTime)(nil)).Elem() -} - -type EventFilterSpecByUsername struct { - DynamicData - - SystemUser bool `xml:"systemUser"` - UserList []string `xml:"userList,omitempty"` -} - -func init() { - t["EventFilterSpecByUsername"] = reflect.TypeOf((*EventFilterSpecByUsername)(nil)).Elem() -} - -type ExecuteHostProfile ExecuteHostProfileRequestType - -func init() { - t["ExecuteHostProfile"] = reflect.TypeOf((*ExecuteHostProfile)(nil)).Elem() -} - -type ExecuteHostProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - DeferredParam []ProfileDeferredPolicyOptionParameter `xml:"deferredParam,omitempty"` -} - -func init() { - t["ExecuteHostProfileRequestType"] = reflect.TypeOf((*ExecuteHostProfileRequestType)(nil)).Elem() -} - -type ExecuteHostProfileResponse struct { - Returnval BaseProfileExecuteResult `xml:"returnval,typeattr"` -} - -type ExecuteSimpleCommand ExecuteSimpleCommandRequestType - -func init() { - t["ExecuteSimpleCommand"] = reflect.TypeOf((*ExecuteSimpleCommand)(nil)).Elem() -} - -type ExecuteSimpleCommandRequestType struct { - This ManagedObjectReference `xml:"_this"` - Arguments []string `xml:"arguments,omitempty"` -} - -func init() { - t["ExecuteSimpleCommandRequestType"] = reflect.TypeOf((*ExecuteSimpleCommandRequestType)(nil)).Elem() -} - -type ExecuteSimpleCommandResponse struct { - Returnval string `xml:"returnval"` -} - -type ExitLockdownMode ExitLockdownModeRequestType - -func init() { - t["ExitLockdownMode"] = reflect.TypeOf((*ExitLockdownMode)(nil)).Elem() -} - -type ExitLockdownModeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ExitLockdownModeRequestType"] = reflect.TypeOf((*ExitLockdownModeRequestType)(nil)).Elem() -} - -type ExitLockdownModeResponse struct { -} - -type ExitMaintenanceModeEvent struct { - HostEvent -} - -func init() { - t["ExitMaintenanceModeEvent"] = reflect.TypeOf((*ExitMaintenanceModeEvent)(nil)).Elem() -} - -type ExitMaintenanceModeRequestType struct { - This ManagedObjectReference `xml:"_this"` - Timeout int32 `xml:"timeout"` -} - -func init() { - t["ExitMaintenanceModeRequestType"] = reflect.TypeOf((*ExitMaintenanceModeRequestType)(nil)).Elem() -} - -type ExitMaintenanceMode_Task ExitMaintenanceModeRequestType - -func init() { - t["ExitMaintenanceMode_Task"] = reflect.TypeOf((*ExitMaintenanceMode_Task)(nil)).Elem() -} - -type ExitMaintenanceMode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExitStandbyModeFailedEvent struct { - HostEvent -} - -func init() { - t["ExitStandbyModeFailedEvent"] = reflect.TypeOf((*ExitStandbyModeFailedEvent)(nil)).Elem() -} - -type ExitedStandbyModeEvent struct { - HostEvent -} - -func init() { - t["ExitedStandbyModeEvent"] = reflect.TypeOf((*ExitedStandbyModeEvent)(nil)).Elem() -} - -type ExitingStandbyModeEvent struct { - HostEvent -} - -func init() { - t["ExitingStandbyModeEvent"] = reflect.TypeOf((*ExitingStandbyModeEvent)(nil)).Elem() -} - -type ExpandVmfsDatastore ExpandVmfsDatastoreRequestType - -func init() { - t["ExpandVmfsDatastore"] = reflect.TypeOf((*ExpandVmfsDatastore)(nil)).Elem() -} - -type ExpandVmfsDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` - Spec VmfsDatastoreExpandSpec `xml:"spec"` -} - -func init() { - t["ExpandVmfsDatastoreRequestType"] = reflect.TypeOf((*ExpandVmfsDatastoreRequestType)(nil)).Elem() -} - -type ExpandVmfsDatastoreResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExpandVmfsExtent ExpandVmfsExtentRequestType - -func init() { - t["ExpandVmfsExtent"] = reflect.TypeOf((*ExpandVmfsExtent)(nil)).Elem() -} - -type ExpandVmfsExtentRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsPath string `xml:"vmfsPath"` - Extent HostScsiDiskPartition `xml:"extent"` -} - -func init() { - t["ExpandVmfsExtentRequestType"] = reflect.TypeOf((*ExpandVmfsExtentRequestType)(nil)).Elem() -} - -type ExpandVmfsExtentResponse struct { -} - -type ExpiredAddonLicense struct { - ExpiredFeatureLicense -} - -func init() { - t["ExpiredAddonLicense"] = reflect.TypeOf((*ExpiredAddonLicense)(nil)).Elem() -} - -type ExpiredAddonLicenseFault ExpiredAddonLicense - -func init() { - t["ExpiredAddonLicenseFault"] = reflect.TypeOf((*ExpiredAddonLicenseFault)(nil)).Elem() -} - -type ExpiredEditionLicense struct { - ExpiredFeatureLicense -} - -func init() { - t["ExpiredEditionLicense"] = reflect.TypeOf((*ExpiredEditionLicense)(nil)).Elem() -} - -type ExpiredEditionLicenseFault ExpiredEditionLicense - -func init() { - t["ExpiredEditionLicenseFault"] = reflect.TypeOf((*ExpiredEditionLicenseFault)(nil)).Elem() -} - -type ExpiredFeatureLicense struct { - NotEnoughLicenses - - Feature string `xml:"feature"` - Count int32 `xml:"count"` - ExpirationDate time.Time `xml:"expirationDate"` -} - -func init() { - t["ExpiredFeatureLicense"] = reflect.TypeOf((*ExpiredFeatureLicense)(nil)).Elem() -} - -type ExpiredFeatureLicenseFault BaseExpiredFeatureLicense - -func init() { - t["ExpiredFeatureLicenseFault"] = reflect.TypeOf((*ExpiredFeatureLicenseFault)(nil)).Elem() -} - -type ExportAnswerFileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["ExportAnswerFileRequestType"] = reflect.TypeOf((*ExportAnswerFileRequestType)(nil)).Elem() -} - -type ExportAnswerFile_Task ExportAnswerFileRequestType - -func init() { - t["ExportAnswerFile_Task"] = reflect.TypeOf((*ExportAnswerFile_Task)(nil)).Elem() -} - -type ExportAnswerFile_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExportProfile ExportProfileRequestType - -func init() { - t["ExportProfile"] = reflect.TypeOf((*ExportProfile)(nil)).Elem() -} - -type ExportProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ExportProfileRequestType"] = reflect.TypeOf((*ExportProfileRequestType)(nil)).Elem() -} - -type ExportProfileResponse struct { - Returnval string `xml:"returnval"` -} - -type ExportSnapshot ExportSnapshotRequestType - -func init() { - t["ExportSnapshot"] = reflect.TypeOf((*ExportSnapshot)(nil)).Elem() -} - -type ExportSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ExportSnapshotRequestType"] = reflect.TypeOf((*ExportSnapshotRequestType)(nil)).Elem() -} - -type ExportSnapshotResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExportVApp ExportVAppRequestType - -func init() { - t["ExportVApp"] = reflect.TypeOf((*ExportVApp)(nil)).Elem() -} - -type ExportVAppRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ExportVAppRequestType"] = reflect.TypeOf((*ExportVAppRequestType)(nil)).Elem() -} - -type ExportVAppResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExportVm ExportVmRequestType - -func init() { - t["ExportVm"] = reflect.TypeOf((*ExportVm)(nil)).Elem() -} - -type ExportVmRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ExportVmRequestType"] = reflect.TypeOf((*ExportVmRequestType)(nil)).Elem() -} - -type ExportVmResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExtExtendedProductInfo struct { - DynamicData - - CompanyUrl string `xml:"companyUrl,omitempty"` - ProductUrl string `xml:"productUrl,omitempty"` - ManagementUrl string `xml:"managementUrl,omitempty"` - Self *ManagedObjectReference `xml:"self,omitempty"` -} - -func init() { - t["ExtExtendedProductInfo"] = reflect.TypeOf((*ExtExtendedProductInfo)(nil)).Elem() -} - -type ExtManagedEntityInfo struct { - DynamicData - - Type string `xml:"type"` - SmallIconUrl string `xml:"smallIconUrl,omitempty"` - IconUrl string `xml:"iconUrl,omitempty"` - Description string `xml:"description,omitempty"` -} - -func init() { - t["ExtManagedEntityInfo"] = reflect.TypeOf((*ExtManagedEntityInfo)(nil)).Elem() -} - -type ExtSolutionManagerInfo struct { - DynamicData - - Tab []ExtSolutionManagerInfoTabInfo `xml:"tab,omitempty"` - SmallIconUrl string `xml:"smallIconUrl,omitempty"` -} - -func init() { - t["ExtSolutionManagerInfo"] = reflect.TypeOf((*ExtSolutionManagerInfo)(nil)).Elem() -} - -type ExtSolutionManagerInfoTabInfo struct { - DynamicData - - Label string `xml:"label"` - Url string `xml:"url"` -} - -func init() { - t["ExtSolutionManagerInfoTabInfo"] = reflect.TypeOf((*ExtSolutionManagerInfoTabInfo)(nil)).Elem() -} - -type ExtendDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - NewCapacityInMB int64 `xml:"newCapacityInMB"` -} - -func init() { - t["ExtendDiskRequestType"] = reflect.TypeOf((*ExtendDiskRequestType)(nil)).Elem() -} - -type ExtendDisk_Task ExtendDiskRequestType - -func init() { - t["ExtendDisk_Task"] = reflect.TypeOf((*ExtendDisk_Task)(nil)).Elem() -} - -type ExtendDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExtendVffs ExtendVffsRequestType - -func init() { - t["ExtendVffs"] = reflect.TypeOf((*ExtendVffs)(nil)).Elem() -} - -type ExtendVffsRequestType struct { - This ManagedObjectReference `xml:"_this"` - VffsPath string `xml:"vffsPath"` - DevicePath string `xml:"devicePath"` - Spec *HostDiskPartitionSpec `xml:"spec,omitempty"` -} - -func init() { - t["ExtendVffsRequestType"] = reflect.TypeOf((*ExtendVffsRequestType)(nil)).Elem() -} - -type ExtendVffsResponse struct { -} - -type ExtendVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - NewCapacityKb int64 `xml:"newCapacityKb"` - EagerZero *bool `xml:"eagerZero"` -} - -func init() { - t["ExtendVirtualDiskRequestType"] = reflect.TypeOf((*ExtendVirtualDiskRequestType)(nil)).Elem() -} - -type ExtendVirtualDisk_Task ExtendVirtualDiskRequestType - -func init() { - t["ExtendVirtualDisk_Task"] = reflect.TypeOf((*ExtendVirtualDisk_Task)(nil)).Elem() -} - -type ExtendVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExtendVmfsDatastore ExtendVmfsDatastoreRequestType - -func init() { - t["ExtendVmfsDatastore"] = reflect.TypeOf((*ExtendVmfsDatastore)(nil)).Elem() -} - -type ExtendVmfsDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` - Spec VmfsDatastoreExtendSpec `xml:"spec"` -} - -func init() { - t["ExtendVmfsDatastoreRequestType"] = reflect.TypeOf((*ExtendVmfsDatastoreRequestType)(nil)).Elem() -} - -type ExtendVmfsDatastoreResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ExtendedDescription struct { - Description - - MessageCatalogKeyPrefix string `xml:"messageCatalogKeyPrefix"` - MessageArg []KeyAnyValue `xml:"messageArg,omitempty"` -} - -func init() { - t["ExtendedDescription"] = reflect.TypeOf((*ExtendedDescription)(nil)).Elem() -} - -type ExtendedElementDescription struct { - ElementDescription - - MessageCatalogKeyPrefix string `xml:"messageCatalogKeyPrefix"` - MessageArg []KeyAnyValue `xml:"messageArg,omitempty"` -} - -func init() { - t["ExtendedElementDescription"] = reflect.TypeOf((*ExtendedElementDescription)(nil)).Elem() -} - -type ExtendedEvent struct { - GeneralEvent - - EventTypeId string `xml:"eventTypeId"` - ManagedObject ManagedObjectReference `xml:"managedObject"` - Data []ExtendedEventPair `xml:"data,omitempty"` -} - -func init() { - t["ExtendedEvent"] = reflect.TypeOf((*ExtendedEvent)(nil)).Elem() -} - -type ExtendedEventPair struct { - DynamicData - - Key string `xml:"key"` - Value string `xml:"value"` -} - -func init() { - t["ExtendedEventPair"] = reflect.TypeOf((*ExtendedEventPair)(nil)).Elem() -} - -type ExtendedFault struct { - VimFault - - FaultTypeId string `xml:"faultTypeId"` - Data []KeyValue `xml:"data,omitempty"` -} - -func init() { - t["ExtendedFault"] = reflect.TypeOf((*ExtendedFault)(nil)).Elem() -} - -type ExtendedFaultFault ExtendedFault - -func init() { - t["ExtendedFaultFault"] = reflect.TypeOf((*ExtendedFaultFault)(nil)).Elem() -} - -type Extension struct { - DynamicData - - Description BaseDescription `xml:"description,typeattr"` - Key string `xml:"key"` - Company string `xml:"company,omitempty"` - Type string `xml:"type,omitempty"` - Version string `xml:"version"` - SubjectName string `xml:"subjectName,omitempty"` - Server []ExtensionServerInfo `xml:"server,omitempty"` - Client []ExtensionClientInfo `xml:"client,omitempty"` - TaskList []ExtensionTaskTypeInfo `xml:"taskList,omitempty"` - EventList []ExtensionEventTypeInfo `xml:"eventList,omitempty"` - FaultList []ExtensionFaultTypeInfo `xml:"faultList,omitempty"` - PrivilegeList []ExtensionPrivilegeInfo `xml:"privilegeList,omitempty"` - ResourceList []ExtensionResourceInfo `xml:"resourceList,omitempty"` - LastHeartbeatTime time.Time `xml:"lastHeartbeatTime"` - HealthInfo *ExtensionHealthInfo `xml:"healthInfo,omitempty"` - OvfConsumerInfo *ExtensionOvfConsumerInfo `xml:"ovfConsumerInfo,omitempty"` - ExtendedProductInfo *ExtExtendedProductInfo `xml:"extendedProductInfo,omitempty"` - ManagedEntityInfo []ExtManagedEntityInfo `xml:"managedEntityInfo,omitempty"` - ShownInSolutionManager *bool `xml:"shownInSolutionManager"` - SolutionManagerInfo *ExtSolutionManagerInfo `xml:"solutionManagerInfo,omitempty"` -} - -func init() { - t["Extension"] = reflect.TypeOf((*Extension)(nil)).Elem() -} - -type ExtensionClientInfo struct { - DynamicData - - Version string `xml:"version"` - Description BaseDescription `xml:"description,typeattr"` - Company string `xml:"company"` - Type string `xml:"type"` - Url string `xml:"url"` -} - -func init() { - t["ExtensionClientInfo"] = reflect.TypeOf((*ExtensionClientInfo)(nil)).Elem() -} - -type ExtensionEventTypeInfo struct { - DynamicData - - EventID string `xml:"eventID"` - EventTypeSchema string `xml:"eventTypeSchema,omitempty"` -} - -func init() { - t["ExtensionEventTypeInfo"] = reflect.TypeOf((*ExtensionEventTypeInfo)(nil)).Elem() -} - -type ExtensionFaultTypeInfo struct { - DynamicData - - FaultID string `xml:"faultID"` -} - -func init() { - t["ExtensionFaultTypeInfo"] = reflect.TypeOf((*ExtensionFaultTypeInfo)(nil)).Elem() -} - -type ExtensionHealthInfo struct { - DynamicData - - Url string `xml:"url"` -} - -func init() { - t["ExtensionHealthInfo"] = reflect.TypeOf((*ExtensionHealthInfo)(nil)).Elem() -} - -type ExtensionManagerIpAllocationUsage struct { - DynamicData - - ExtensionKey string `xml:"extensionKey"` - NumAddresses int32 `xml:"numAddresses"` -} - -func init() { - t["ExtensionManagerIpAllocationUsage"] = reflect.TypeOf((*ExtensionManagerIpAllocationUsage)(nil)).Elem() -} - -type ExtensionOvfConsumerInfo struct { - DynamicData - - CallbackUrl string `xml:"callbackUrl"` - SectionType []string `xml:"sectionType"` -} - -func init() { - t["ExtensionOvfConsumerInfo"] = reflect.TypeOf((*ExtensionOvfConsumerInfo)(nil)).Elem() -} - -type ExtensionPrivilegeInfo struct { - DynamicData - - PrivID string `xml:"privID"` - PrivGroupName string `xml:"privGroupName"` -} - -func init() { - t["ExtensionPrivilegeInfo"] = reflect.TypeOf((*ExtensionPrivilegeInfo)(nil)).Elem() -} - -type ExtensionResourceInfo struct { - DynamicData - - Locale string `xml:"locale"` - Module string `xml:"module"` - Data []KeyValue `xml:"data"` -} - -func init() { - t["ExtensionResourceInfo"] = reflect.TypeOf((*ExtensionResourceInfo)(nil)).Elem() -} - -type ExtensionServerInfo struct { - DynamicData - - Url string `xml:"url"` - Description BaseDescription `xml:"description,typeattr"` - Company string `xml:"company"` - Type string `xml:"type"` - AdminEmail []string `xml:"adminEmail"` - ServerThumbprint string `xml:"serverThumbprint,omitempty"` -} - -func init() { - t["ExtensionServerInfo"] = reflect.TypeOf((*ExtensionServerInfo)(nil)).Elem() -} - -type ExtensionTaskTypeInfo struct { - DynamicData - - TaskID string `xml:"taskID"` -} - -func init() { - t["ExtensionTaskTypeInfo"] = reflect.TypeOf((*ExtensionTaskTypeInfo)(nil)).Elem() -} - -type ExtractOvfEnvironment ExtractOvfEnvironmentRequestType - -func init() { - t["ExtractOvfEnvironment"] = reflect.TypeOf((*ExtractOvfEnvironment)(nil)).Elem() -} - -type ExtractOvfEnvironmentRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ExtractOvfEnvironmentRequestType"] = reflect.TypeOf((*ExtractOvfEnvironmentRequestType)(nil)).Elem() -} - -type ExtractOvfEnvironmentResponse struct { - Returnval string `xml:"returnval"` -} - -type FailToEnableSPBM struct { - NotEnoughLicenses - - Cs ManagedObjectReference `xml:"cs"` - CsName string `xml:"csName"` - HostLicenseStates []ComputeResourceHostSPBMLicenseInfo `xml:"hostLicenseStates"` -} - -func init() { - t["FailToEnableSPBM"] = reflect.TypeOf((*FailToEnableSPBM)(nil)).Elem() -} - -type FailToEnableSPBMFault FailToEnableSPBM - -func init() { - t["FailToEnableSPBMFault"] = reflect.TypeOf((*FailToEnableSPBMFault)(nil)).Elem() -} - -type FailToLockFaultToleranceVMs struct { - RuntimeFault - - VmName string `xml:"vmName"` - Vm ManagedObjectReference `xml:"vm"` - AlreadyLockedVm ManagedObjectReference `xml:"alreadyLockedVm"` -} - -func init() { - t["FailToLockFaultToleranceVMs"] = reflect.TypeOf((*FailToLockFaultToleranceVMs)(nil)).Elem() -} - -type FailToLockFaultToleranceVMsFault FailToLockFaultToleranceVMs - -func init() { - t["FailToLockFaultToleranceVMsFault"] = reflect.TypeOf((*FailToLockFaultToleranceVMsFault)(nil)).Elem() -} - -type FailoverLevelRestored struct { - ClusterEvent -} - -func init() { - t["FailoverLevelRestored"] = reflect.TypeOf((*FailoverLevelRestored)(nil)).Elem() -} - -type FailoverNodeInfo struct { - DynamicData - - ClusterIpSettings CustomizationIPSettings `xml:"clusterIpSettings"` - FailoverIp *CustomizationIPSettings `xml:"failoverIp,omitempty"` - BiosUuid string `xml:"biosUuid,omitempty"` -} - -func init() { - t["FailoverNodeInfo"] = reflect.TypeOf((*FailoverNodeInfo)(nil)).Elem() -} - -type FaultDomainId struct { - DynamicData - - Id string `xml:"id"` -} - -func init() { - t["FaultDomainId"] = reflect.TypeOf((*FaultDomainId)(nil)).Elem() -} - -type FaultToleranceAntiAffinityViolated struct { - MigrationFault - - HostName string `xml:"hostName"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["FaultToleranceAntiAffinityViolated"] = reflect.TypeOf((*FaultToleranceAntiAffinityViolated)(nil)).Elem() -} - -type FaultToleranceAntiAffinityViolatedFault FaultToleranceAntiAffinityViolated - -func init() { - t["FaultToleranceAntiAffinityViolatedFault"] = reflect.TypeOf((*FaultToleranceAntiAffinityViolatedFault)(nil)).Elem() -} - -type FaultToleranceCannotEditMem struct { - VmConfigFault - - VmName string `xml:"vmName"` - Vm ManagedObjectReference `xml:"vm"` -} - -func init() { - t["FaultToleranceCannotEditMem"] = reflect.TypeOf((*FaultToleranceCannotEditMem)(nil)).Elem() -} - -type FaultToleranceCannotEditMemFault FaultToleranceCannotEditMem - -func init() { - t["FaultToleranceCannotEditMemFault"] = reflect.TypeOf((*FaultToleranceCannotEditMemFault)(nil)).Elem() -} - -type FaultToleranceConfigInfo struct { - DynamicData - - Role int32 `xml:"role"` - InstanceUuids []string `xml:"instanceUuids"` - ConfigPaths []string `xml:"configPaths"` - Orphaned *bool `xml:"orphaned"` -} - -func init() { - t["FaultToleranceConfigInfo"] = reflect.TypeOf((*FaultToleranceConfigInfo)(nil)).Elem() -} - -type FaultToleranceConfigSpec struct { - DynamicData - - MetaDataPath *FaultToleranceMetaSpec `xml:"metaDataPath,omitempty"` - SecondaryVmSpec *FaultToleranceVMConfigSpec `xml:"secondaryVmSpec,omitempty"` -} - -func init() { - t["FaultToleranceConfigSpec"] = reflect.TypeOf((*FaultToleranceConfigSpec)(nil)).Elem() -} - -type FaultToleranceCpuIncompatible struct { - CpuIncompatible - - Model bool `xml:"model"` - Family bool `xml:"family"` - Stepping bool `xml:"stepping"` -} - -func init() { - t["FaultToleranceCpuIncompatible"] = reflect.TypeOf((*FaultToleranceCpuIncompatible)(nil)).Elem() -} - -type FaultToleranceCpuIncompatibleFault FaultToleranceCpuIncompatible - -func init() { - t["FaultToleranceCpuIncompatibleFault"] = reflect.TypeOf((*FaultToleranceCpuIncompatibleFault)(nil)).Elem() -} - -type FaultToleranceDiskSpec struct { - DynamicData - - Disk BaseVirtualDevice `xml:"disk,typeattr"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["FaultToleranceDiskSpec"] = reflect.TypeOf((*FaultToleranceDiskSpec)(nil)).Elem() -} - -type FaultToleranceMetaSpec struct { - DynamicData - - MetaDataDatastore ManagedObjectReference `xml:"metaDataDatastore"` -} - -func init() { - t["FaultToleranceMetaSpec"] = reflect.TypeOf((*FaultToleranceMetaSpec)(nil)).Elem() -} - -type FaultToleranceNeedsThickDisk struct { - MigrationFault - - VmName string `xml:"vmName"` -} - -func init() { - t["FaultToleranceNeedsThickDisk"] = reflect.TypeOf((*FaultToleranceNeedsThickDisk)(nil)).Elem() -} - -type FaultToleranceNeedsThickDiskFault FaultToleranceNeedsThickDisk - -func init() { - t["FaultToleranceNeedsThickDiskFault"] = reflect.TypeOf((*FaultToleranceNeedsThickDiskFault)(nil)).Elem() -} - -type FaultToleranceNotLicensed struct { - VmFaultToleranceIssue - - HostName string `xml:"hostName,omitempty"` -} - -func init() { - t["FaultToleranceNotLicensed"] = reflect.TypeOf((*FaultToleranceNotLicensed)(nil)).Elem() -} - -type FaultToleranceNotLicensedFault FaultToleranceNotLicensed - -func init() { - t["FaultToleranceNotLicensedFault"] = reflect.TypeOf((*FaultToleranceNotLicensedFault)(nil)).Elem() -} - -type FaultToleranceNotSameBuild struct { - MigrationFault - - Build string `xml:"build"` -} - -func init() { - t["FaultToleranceNotSameBuild"] = reflect.TypeOf((*FaultToleranceNotSameBuild)(nil)).Elem() -} - -type FaultToleranceNotSameBuildFault FaultToleranceNotSameBuild - -func init() { - t["FaultToleranceNotSameBuildFault"] = reflect.TypeOf((*FaultToleranceNotSameBuildFault)(nil)).Elem() -} - -type FaultTolerancePrimaryConfigInfo struct { - FaultToleranceConfigInfo - - Secondaries []ManagedObjectReference `xml:"secondaries"` -} - -func init() { - t["FaultTolerancePrimaryConfigInfo"] = reflect.TypeOf((*FaultTolerancePrimaryConfigInfo)(nil)).Elem() -} - -type FaultTolerancePrimaryPowerOnNotAttempted struct { - VmFaultToleranceIssue - - SecondaryVm ManagedObjectReference `xml:"secondaryVm"` - PrimaryVm ManagedObjectReference `xml:"primaryVm"` -} - -func init() { - t["FaultTolerancePrimaryPowerOnNotAttempted"] = reflect.TypeOf((*FaultTolerancePrimaryPowerOnNotAttempted)(nil)).Elem() -} - -type FaultTolerancePrimaryPowerOnNotAttemptedFault FaultTolerancePrimaryPowerOnNotAttempted - -func init() { - t["FaultTolerancePrimaryPowerOnNotAttemptedFault"] = reflect.TypeOf((*FaultTolerancePrimaryPowerOnNotAttemptedFault)(nil)).Elem() -} - -type FaultToleranceSecondaryConfigInfo struct { - FaultToleranceConfigInfo - - PrimaryVM ManagedObjectReference `xml:"primaryVM"` -} - -func init() { - t["FaultToleranceSecondaryConfigInfo"] = reflect.TypeOf((*FaultToleranceSecondaryConfigInfo)(nil)).Elem() -} - -type FaultToleranceSecondaryOpResult struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - PowerOnAttempted bool `xml:"powerOnAttempted"` - PowerOnResult *ClusterPowerOnVmResult `xml:"powerOnResult,omitempty"` -} - -func init() { - t["FaultToleranceSecondaryOpResult"] = reflect.TypeOf((*FaultToleranceSecondaryOpResult)(nil)).Elem() -} - -type FaultToleranceVMConfigSpec struct { - DynamicData - - VmConfig *ManagedObjectReference `xml:"vmConfig,omitempty"` - Disks []FaultToleranceDiskSpec `xml:"disks,omitempty"` -} - -func init() { - t["FaultToleranceVMConfigSpec"] = reflect.TypeOf((*FaultToleranceVMConfigSpec)(nil)).Elem() -} - -type FaultToleranceVmNotDasProtected struct { - VimFault - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["FaultToleranceVmNotDasProtected"] = reflect.TypeOf((*FaultToleranceVmNotDasProtected)(nil)).Elem() -} - -type FaultToleranceVmNotDasProtectedFault FaultToleranceVmNotDasProtected - -func init() { - t["FaultToleranceVmNotDasProtectedFault"] = reflect.TypeOf((*FaultToleranceVmNotDasProtectedFault)(nil)).Elem() -} - -type FcoeConfig struct { - DynamicData - - PriorityClass int32 `xml:"priorityClass"` - SourceMac string `xml:"sourceMac"` - VlanRange []FcoeConfigVlanRange `xml:"vlanRange"` - Capabilities FcoeConfigFcoeCapabilities `xml:"capabilities"` - FcoeActive bool `xml:"fcoeActive"` -} - -func init() { - t["FcoeConfig"] = reflect.TypeOf((*FcoeConfig)(nil)).Elem() -} - -type FcoeConfigFcoeCapabilities struct { - DynamicData - - PriorityClass bool `xml:"priorityClass"` - SourceMacAddress bool `xml:"sourceMacAddress"` - VlanRange bool `xml:"vlanRange"` -} - -func init() { - t["FcoeConfigFcoeCapabilities"] = reflect.TypeOf((*FcoeConfigFcoeCapabilities)(nil)).Elem() -} - -type FcoeConfigFcoeSpecification struct { - DynamicData - - UnderlyingPnic string `xml:"underlyingPnic"` - PriorityClass int32 `xml:"priorityClass,omitempty"` - SourceMac string `xml:"sourceMac,omitempty"` - VlanRange []FcoeConfigVlanRange `xml:"vlanRange,omitempty"` -} - -func init() { - t["FcoeConfigFcoeSpecification"] = reflect.TypeOf((*FcoeConfigFcoeSpecification)(nil)).Elem() -} - -type FcoeConfigVlanRange struct { - DynamicData - - VlanLow int32 `xml:"vlanLow"` - VlanHigh int32 `xml:"vlanHigh"` -} - -func init() { - t["FcoeConfigVlanRange"] = reflect.TypeOf((*FcoeConfigVlanRange)(nil)).Elem() -} - -type FcoeFault struct { - VimFault -} - -func init() { - t["FcoeFault"] = reflect.TypeOf((*FcoeFault)(nil)).Elem() -} - -type FcoeFaultFault BaseFcoeFault - -func init() { - t["FcoeFaultFault"] = reflect.TypeOf((*FcoeFaultFault)(nil)).Elem() -} - -type FcoeFaultPnicHasNoPortSet struct { - FcoeFault - - NicDevice string `xml:"nicDevice"` -} - -func init() { - t["FcoeFaultPnicHasNoPortSet"] = reflect.TypeOf((*FcoeFaultPnicHasNoPortSet)(nil)).Elem() -} - -type FcoeFaultPnicHasNoPortSetFault FcoeFaultPnicHasNoPortSet - -func init() { - t["FcoeFaultPnicHasNoPortSetFault"] = reflect.TypeOf((*FcoeFaultPnicHasNoPortSetFault)(nil)).Elem() -} - -type FeatureRequirementsNotMet struct { - VirtualHardwareCompatibilityIssue - - FeatureRequirement []VirtualMachineFeatureRequirement `xml:"featureRequirement,omitempty"` - Vm *ManagedObjectReference `xml:"vm,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["FeatureRequirementsNotMet"] = reflect.TypeOf((*FeatureRequirementsNotMet)(nil)).Elem() -} - -type FeatureRequirementsNotMetFault FeatureRequirementsNotMet - -func init() { - t["FeatureRequirementsNotMetFault"] = reflect.TypeOf((*FeatureRequirementsNotMetFault)(nil)).Elem() -} - -type FetchDVPortKeys FetchDVPortKeysRequestType - -func init() { - t["FetchDVPortKeys"] = reflect.TypeOf((*FetchDVPortKeys)(nil)).Elem() -} - -type FetchDVPortKeysRequestType struct { - This ManagedObjectReference `xml:"_this"` - Criteria *DistributedVirtualSwitchPortCriteria `xml:"criteria,omitempty"` -} - -func init() { - t["FetchDVPortKeysRequestType"] = reflect.TypeOf((*FetchDVPortKeysRequestType)(nil)).Elem() -} - -type FetchDVPortKeysResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type FetchDVPorts FetchDVPortsRequestType - -func init() { - t["FetchDVPorts"] = reflect.TypeOf((*FetchDVPorts)(nil)).Elem() -} - -type FetchDVPortsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Criteria *DistributedVirtualSwitchPortCriteria `xml:"criteria,omitempty"` -} - -func init() { - t["FetchDVPortsRequestType"] = reflect.TypeOf((*FetchDVPortsRequestType)(nil)).Elem() -} - -type FetchDVPortsResponse struct { - Returnval []DistributedVirtualPort `xml:"returnval,omitempty"` -} - -type FetchSystemEventLog FetchSystemEventLogRequestType - -func init() { - t["FetchSystemEventLog"] = reflect.TypeOf((*FetchSystemEventLog)(nil)).Elem() -} - -type FetchSystemEventLogRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["FetchSystemEventLogRequestType"] = reflect.TypeOf((*FetchSystemEventLogRequestType)(nil)).Elem() -} - -type FetchSystemEventLogResponse struct { - Returnval []SystemEventInfo `xml:"returnval,omitempty"` -} - -type FetchUserPrivilegeOnEntities FetchUserPrivilegeOnEntitiesRequestType - -func init() { - t["FetchUserPrivilegeOnEntities"] = reflect.TypeOf((*FetchUserPrivilegeOnEntities)(nil)).Elem() -} - -type FetchUserPrivilegeOnEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entities []ManagedObjectReference `xml:"entities"` - UserName string `xml:"userName"` -} - -func init() { - t["FetchUserPrivilegeOnEntitiesRequestType"] = reflect.TypeOf((*FetchUserPrivilegeOnEntitiesRequestType)(nil)).Elem() -} - -type FetchUserPrivilegeOnEntitiesResponse struct { - Returnval []UserPrivilegeResult `xml:"returnval,omitempty"` -} - -type FileAlreadyExists struct { - FileFault -} - -func init() { - t["FileAlreadyExists"] = reflect.TypeOf((*FileAlreadyExists)(nil)).Elem() -} - -type FileAlreadyExistsFault FileAlreadyExists - -func init() { - t["FileAlreadyExistsFault"] = reflect.TypeOf((*FileAlreadyExistsFault)(nil)).Elem() -} - -type FileBackedPortNotSupported struct { - DeviceNotSupported -} - -func init() { - t["FileBackedPortNotSupported"] = reflect.TypeOf((*FileBackedPortNotSupported)(nil)).Elem() -} - -type FileBackedPortNotSupportedFault FileBackedPortNotSupported - -func init() { - t["FileBackedPortNotSupportedFault"] = reflect.TypeOf((*FileBackedPortNotSupportedFault)(nil)).Elem() -} - -type FileBackedVirtualDiskSpec struct { - VirtualDiskSpec - - CapacityKb int64 `xml:"capacityKb"` - Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` - Crypto BaseCryptoSpec `xml:"crypto,omitempty,typeattr"` -} - -func init() { - t["FileBackedVirtualDiskSpec"] = reflect.TypeOf((*FileBackedVirtualDiskSpec)(nil)).Elem() -} - -type FileFault struct { - VimFault - - File string `xml:"file"` -} - -func init() { - t["FileFault"] = reflect.TypeOf((*FileFault)(nil)).Elem() -} - -type FileFaultFault BaseFileFault - -func init() { - t["FileFaultFault"] = reflect.TypeOf((*FileFaultFault)(nil)).Elem() -} - -type FileInfo struct { - DynamicData - - Path string `xml:"path"` - FriendlyName string `xml:"friendlyName,omitempty"` - FileSize int64 `xml:"fileSize,omitempty"` - Modification *time.Time `xml:"modification"` - Owner string `xml:"owner,omitempty"` -} - -func init() { - t["FileInfo"] = reflect.TypeOf((*FileInfo)(nil)).Elem() -} - -type FileLocked struct { - FileFault -} - -func init() { - t["FileLocked"] = reflect.TypeOf((*FileLocked)(nil)).Elem() -} - -type FileLockedFault FileLocked - -func init() { - t["FileLockedFault"] = reflect.TypeOf((*FileLockedFault)(nil)).Elem() -} - -type FileNameTooLong struct { - FileFault -} - -func init() { - t["FileNameTooLong"] = reflect.TypeOf((*FileNameTooLong)(nil)).Elem() -} - -type FileNameTooLongFault FileNameTooLong - -func init() { - t["FileNameTooLongFault"] = reflect.TypeOf((*FileNameTooLongFault)(nil)).Elem() -} - -type FileNotFound struct { - FileFault -} - -func init() { - t["FileNotFound"] = reflect.TypeOf((*FileNotFound)(nil)).Elem() -} - -type FileNotFoundFault FileNotFound - -func init() { - t["FileNotFoundFault"] = reflect.TypeOf((*FileNotFoundFault)(nil)).Elem() -} - -type FileNotWritable struct { - FileFault -} - -func init() { - t["FileNotWritable"] = reflect.TypeOf((*FileNotWritable)(nil)).Elem() -} - -type FileNotWritableFault FileNotWritable - -func init() { - t["FileNotWritableFault"] = reflect.TypeOf((*FileNotWritableFault)(nil)).Elem() -} - -type FileQuery struct { - DynamicData -} - -func init() { - t["FileQuery"] = reflect.TypeOf((*FileQuery)(nil)).Elem() -} - -type FileQueryFlags struct { - DynamicData - - FileType bool `xml:"fileType"` - FileSize bool `xml:"fileSize"` - Modification bool `xml:"modification"` - FileOwner *bool `xml:"fileOwner"` -} - -func init() { - t["FileQueryFlags"] = reflect.TypeOf((*FileQueryFlags)(nil)).Elem() -} - -type FileTooLarge struct { - FileFault - - Datastore string `xml:"datastore"` - FileSize int64 `xml:"fileSize"` - MaxFileSize int64 `xml:"maxFileSize,omitempty"` -} - -func init() { - t["FileTooLarge"] = reflect.TypeOf((*FileTooLarge)(nil)).Elem() -} - -type FileTooLargeFault FileTooLarge - -func init() { - t["FileTooLargeFault"] = reflect.TypeOf((*FileTooLargeFault)(nil)).Elem() -} - -type FileTransferInformation struct { - DynamicData - - Attributes BaseGuestFileAttributes `xml:"attributes,typeattr"` - Size int64 `xml:"size"` - Url string `xml:"url"` -} - -func init() { - t["FileTransferInformation"] = reflect.TypeOf((*FileTransferInformation)(nil)).Elem() -} - -type FilesystemQuiesceFault struct { - SnapshotFault -} - -func init() { - t["FilesystemQuiesceFault"] = reflect.TypeOf((*FilesystemQuiesceFault)(nil)).Elem() -} - -type FilesystemQuiesceFaultFault FilesystemQuiesceFault - -func init() { - t["FilesystemQuiesceFaultFault"] = reflect.TypeOf((*FilesystemQuiesceFaultFault)(nil)).Elem() -} - -type FilterInUse struct { - ResourceInUse - - Disk []VirtualDiskId `xml:"disk,omitempty"` -} - -func init() { - t["FilterInUse"] = reflect.TypeOf((*FilterInUse)(nil)).Elem() -} - -type FilterInUseFault FilterInUse - -func init() { - t["FilterInUseFault"] = reflect.TypeOf((*FilterInUseFault)(nil)).Elem() -} - -type FindAllByDnsName FindAllByDnsNameRequestType - -func init() { - t["FindAllByDnsName"] = reflect.TypeOf((*FindAllByDnsName)(nil)).Elem() -} - -type FindAllByDnsNameRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - DnsName string `xml:"dnsName"` - VmSearch bool `xml:"vmSearch"` -} - -func init() { - t["FindAllByDnsNameRequestType"] = reflect.TypeOf((*FindAllByDnsNameRequestType)(nil)).Elem() -} - -type FindAllByDnsNameResponse struct { - Returnval []ManagedObjectReference `xml:"returnval"` -} - -type FindAllByIp FindAllByIpRequestType - -func init() { - t["FindAllByIp"] = reflect.TypeOf((*FindAllByIp)(nil)).Elem() -} - -type FindAllByIpRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Ip string `xml:"ip"` - VmSearch bool `xml:"vmSearch"` -} - -func init() { - t["FindAllByIpRequestType"] = reflect.TypeOf((*FindAllByIpRequestType)(nil)).Elem() -} - -type FindAllByIpResponse struct { - Returnval []ManagedObjectReference `xml:"returnval"` -} - -type FindAllByUuid FindAllByUuidRequestType - -func init() { - t["FindAllByUuid"] = reflect.TypeOf((*FindAllByUuid)(nil)).Elem() -} - -type FindAllByUuidRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Uuid string `xml:"uuid"` - VmSearch bool `xml:"vmSearch"` - InstanceUuid *bool `xml:"instanceUuid"` -} - -func init() { - t["FindAllByUuidRequestType"] = reflect.TypeOf((*FindAllByUuidRequestType)(nil)).Elem() -} - -type FindAllByUuidResponse struct { - Returnval []ManagedObjectReference `xml:"returnval"` -} - -type FindAssociatedProfile FindAssociatedProfileRequestType - -func init() { - t["FindAssociatedProfile"] = reflect.TypeOf((*FindAssociatedProfile)(nil)).Elem() -} - -type FindAssociatedProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["FindAssociatedProfileRequestType"] = reflect.TypeOf((*FindAssociatedProfileRequestType)(nil)).Elem() -} - -type FindAssociatedProfileResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type FindByDatastorePath FindByDatastorePathRequestType - -func init() { - t["FindByDatastorePath"] = reflect.TypeOf((*FindByDatastorePath)(nil)).Elem() -} - -type FindByDatastorePathRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter ManagedObjectReference `xml:"datacenter"` - Path string `xml:"path"` -} - -func init() { - t["FindByDatastorePathRequestType"] = reflect.TypeOf((*FindByDatastorePathRequestType)(nil)).Elem() -} - -type FindByDatastorePathResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type FindByDnsName FindByDnsNameRequestType - -func init() { - t["FindByDnsName"] = reflect.TypeOf((*FindByDnsName)(nil)).Elem() -} - -type FindByDnsNameRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - DnsName string `xml:"dnsName"` - VmSearch bool `xml:"vmSearch"` -} - -func init() { - t["FindByDnsNameRequestType"] = reflect.TypeOf((*FindByDnsNameRequestType)(nil)).Elem() -} - -type FindByDnsNameResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type FindByInventoryPath FindByInventoryPathRequestType - -func init() { - t["FindByInventoryPath"] = reflect.TypeOf((*FindByInventoryPath)(nil)).Elem() -} - -type FindByInventoryPathRequestType struct { - This ManagedObjectReference `xml:"_this"` - InventoryPath string `xml:"inventoryPath"` -} - -func init() { - t["FindByInventoryPathRequestType"] = reflect.TypeOf((*FindByInventoryPathRequestType)(nil)).Elem() -} - -type FindByInventoryPathResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type FindByIp FindByIpRequestType - -func init() { - t["FindByIp"] = reflect.TypeOf((*FindByIp)(nil)).Elem() -} - -type FindByIpRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Ip string `xml:"ip"` - VmSearch bool `xml:"vmSearch"` -} - -func init() { - t["FindByIpRequestType"] = reflect.TypeOf((*FindByIpRequestType)(nil)).Elem() -} - -type FindByIpResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type FindByUuid FindByUuidRequestType - -func init() { - t["FindByUuid"] = reflect.TypeOf((*FindByUuid)(nil)).Elem() -} - -type FindByUuidRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Uuid string `xml:"uuid"` - VmSearch bool `xml:"vmSearch"` - InstanceUuid *bool `xml:"instanceUuid"` -} - -func init() { - t["FindByUuidRequestType"] = reflect.TypeOf((*FindByUuidRequestType)(nil)).Elem() -} - -type FindByUuidResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type FindChild FindChildRequestType - -func init() { - t["FindChild"] = reflect.TypeOf((*FindChild)(nil)).Elem() -} - -type FindChildRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Name string `xml:"name"` -} - -func init() { - t["FindChildRequestType"] = reflect.TypeOf((*FindChildRequestType)(nil)).Elem() -} - -type FindChildResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type FindExtension FindExtensionRequestType - -func init() { - t["FindExtension"] = reflect.TypeOf((*FindExtension)(nil)).Elem() -} - -type FindExtensionRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKey string `xml:"extensionKey"` -} - -func init() { - t["FindExtensionRequestType"] = reflect.TypeOf((*FindExtensionRequestType)(nil)).Elem() -} - -type FindExtensionResponse struct { - Returnval *Extension `xml:"returnval,omitempty"` -} - -type FindRulesForVm FindRulesForVmRequestType - -func init() { - t["FindRulesForVm"] = reflect.TypeOf((*FindRulesForVm)(nil)).Elem() -} - -type FindRulesForVmRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` -} - -func init() { - t["FindRulesForVmRequestType"] = reflect.TypeOf((*FindRulesForVmRequestType)(nil)).Elem() -} - -type FindRulesForVmResponse struct { - Returnval []BaseClusterRuleInfo `xml:"returnval,omitempty,typeattr"` -} - -type FirewallProfile struct { - ApplyProfile - - Ruleset []FirewallProfileRulesetProfile `xml:"ruleset,omitempty"` -} - -func init() { - t["FirewallProfile"] = reflect.TypeOf((*FirewallProfile)(nil)).Elem() -} - -type FirewallProfileRulesetProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["FirewallProfileRulesetProfile"] = reflect.TypeOf((*FirewallProfileRulesetProfile)(nil)).Elem() -} - -type FloatOption struct { - OptionType - - Min float32 `xml:"min"` - Max float32 `xml:"max"` - DefaultValue float32 `xml:"defaultValue"` -} - -func init() { - t["FloatOption"] = reflect.TypeOf((*FloatOption)(nil)).Elem() -} - -type FloppyImageFileInfo struct { - FileInfo -} - -func init() { - t["FloppyImageFileInfo"] = reflect.TypeOf((*FloppyImageFileInfo)(nil)).Elem() -} - -type FloppyImageFileQuery struct { - FileQuery -} - -func init() { - t["FloppyImageFileQuery"] = reflect.TypeOf((*FloppyImageFileQuery)(nil)).Elem() -} - -type FolderEventArgument struct { - EntityEventArgument - - Folder ManagedObjectReference `xml:"folder"` -} - -func init() { - t["FolderEventArgument"] = reflect.TypeOf((*FolderEventArgument)(nil)).Elem() -} - -type FolderFileInfo struct { - FileInfo -} - -func init() { - t["FolderFileInfo"] = reflect.TypeOf((*FolderFileInfo)(nil)).Elem() -} - -type FolderFileQuery struct { - FileQuery -} - -func init() { - t["FolderFileQuery"] = reflect.TypeOf((*FolderFileQuery)(nil)).Elem() -} - -type FormatVffs FormatVffsRequestType - -func init() { - t["FormatVffs"] = reflect.TypeOf((*FormatVffs)(nil)).Elem() -} - -type FormatVffsRequestType struct { - This ManagedObjectReference `xml:"_this"` - CreateSpec HostVffsSpec `xml:"createSpec"` -} - -func init() { - t["FormatVffsRequestType"] = reflect.TypeOf((*FormatVffsRequestType)(nil)).Elem() -} - -type FormatVffsResponse struct { - Returnval HostVffsVolume `xml:"returnval"` -} - -type FormatVmfs FormatVmfsRequestType - -func init() { - t["FormatVmfs"] = reflect.TypeOf((*FormatVmfs)(nil)).Elem() -} - -type FormatVmfsRequestType struct { - This ManagedObjectReference `xml:"_this"` - CreateSpec HostVmfsSpec `xml:"createSpec"` -} - -func init() { - t["FormatVmfsRequestType"] = reflect.TypeOf((*FormatVmfsRequestType)(nil)).Elem() -} - -type FormatVmfsResponse struct { - Returnval HostVmfsVolume `xml:"returnval"` -} - -type FtIssuesOnHost struct { - VmFaultToleranceIssue - - Host ManagedObjectReference `xml:"host"` - HostName string `xml:"hostName"` - Errors []LocalizedMethodFault `xml:"errors,omitempty"` -} - -func init() { - t["FtIssuesOnHost"] = reflect.TypeOf((*FtIssuesOnHost)(nil)).Elem() -} - -type FtIssuesOnHostFault FtIssuesOnHost - -func init() { - t["FtIssuesOnHostFault"] = reflect.TypeOf((*FtIssuesOnHostFault)(nil)).Elem() -} - -type FullStorageVMotionNotSupported struct { - MigrationFeatureNotSupported -} - -func init() { - t["FullStorageVMotionNotSupported"] = reflect.TypeOf((*FullStorageVMotionNotSupported)(nil)).Elem() -} - -type FullStorageVMotionNotSupportedFault FullStorageVMotionNotSupported - -func init() { - t["FullStorageVMotionNotSupportedFault"] = reflect.TypeOf((*FullStorageVMotionNotSupportedFault)(nil)).Elem() -} - -type GatewayConnectFault struct { - HostConnectFault - - GatewayType string `xml:"gatewayType"` - GatewayId string `xml:"gatewayId"` - GatewayInfo string `xml:"gatewayInfo"` - Details *LocalizableMessage `xml:"details,omitempty"` -} - -func init() { - t["GatewayConnectFault"] = reflect.TypeOf((*GatewayConnectFault)(nil)).Elem() -} - -type GatewayConnectFaultFault BaseGatewayConnectFault - -func init() { - t["GatewayConnectFaultFault"] = reflect.TypeOf((*GatewayConnectFaultFault)(nil)).Elem() -} - -type GatewayHostNotReachable struct { - GatewayToHostConnectFault -} - -func init() { - t["GatewayHostNotReachable"] = reflect.TypeOf((*GatewayHostNotReachable)(nil)).Elem() -} - -type GatewayHostNotReachableFault GatewayHostNotReachable - -func init() { - t["GatewayHostNotReachableFault"] = reflect.TypeOf((*GatewayHostNotReachableFault)(nil)).Elem() -} - -type GatewayNotFound struct { - GatewayConnectFault -} - -func init() { - t["GatewayNotFound"] = reflect.TypeOf((*GatewayNotFound)(nil)).Elem() -} - -type GatewayNotFoundFault GatewayNotFound - -func init() { - t["GatewayNotFoundFault"] = reflect.TypeOf((*GatewayNotFoundFault)(nil)).Elem() -} - -type GatewayNotReachable struct { - GatewayConnectFault -} - -func init() { - t["GatewayNotReachable"] = reflect.TypeOf((*GatewayNotReachable)(nil)).Elem() -} - -type GatewayNotReachableFault GatewayNotReachable - -func init() { - t["GatewayNotReachableFault"] = reflect.TypeOf((*GatewayNotReachableFault)(nil)).Elem() -} - -type GatewayOperationRefused struct { - GatewayConnectFault -} - -func init() { - t["GatewayOperationRefused"] = reflect.TypeOf((*GatewayOperationRefused)(nil)).Elem() -} - -type GatewayOperationRefusedFault GatewayOperationRefused - -func init() { - t["GatewayOperationRefusedFault"] = reflect.TypeOf((*GatewayOperationRefusedFault)(nil)).Elem() -} - -type GatewayToHostAuthFault struct { - GatewayToHostConnectFault - - InvalidProperties []string `xml:"invalidProperties"` - MissingProperties []string `xml:"missingProperties"` -} - -func init() { - t["GatewayToHostAuthFault"] = reflect.TypeOf((*GatewayToHostAuthFault)(nil)).Elem() -} - -type GatewayToHostAuthFaultFault GatewayToHostAuthFault - -func init() { - t["GatewayToHostAuthFaultFault"] = reflect.TypeOf((*GatewayToHostAuthFaultFault)(nil)).Elem() -} - -type GatewayToHostConnectFault struct { - GatewayConnectFault - - Hostname string `xml:"hostname"` - Port int32 `xml:"port,omitempty"` -} - -func init() { - t["GatewayToHostConnectFault"] = reflect.TypeOf((*GatewayToHostConnectFault)(nil)).Elem() -} - -type GatewayToHostConnectFaultFault BaseGatewayToHostConnectFault - -func init() { - t["GatewayToHostConnectFaultFault"] = reflect.TypeOf((*GatewayToHostConnectFaultFault)(nil)).Elem() -} - -type GatewayToHostTrustVerifyFault struct { - GatewayToHostConnectFault - - VerificationToken string `xml:"verificationToken"` - PropertiesToVerify []KeyValue `xml:"propertiesToVerify"` -} - -func init() { - t["GatewayToHostTrustVerifyFault"] = reflect.TypeOf((*GatewayToHostTrustVerifyFault)(nil)).Elem() -} - -type GatewayToHostTrustVerifyFaultFault GatewayToHostTrustVerifyFault - -func init() { - t["GatewayToHostTrustVerifyFaultFault"] = reflect.TypeOf((*GatewayToHostTrustVerifyFaultFault)(nil)).Elem() -} - -type GeneralEvent struct { - Event - - Message string `xml:"message"` -} - -func init() { - t["GeneralEvent"] = reflect.TypeOf((*GeneralEvent)(nil)).Elem() -} - -type GeneralHostErrorEvent struct { - GeneralEvent -} - -func init() { - t["GeneralHostErrorEvent"] = reflect.TypeOf((*GeneralHostErrorEvent)(nil)).Elem() -} - -type GeneralHostInfoEvent struct { - GeneralEvent -} - -func init() { - t["GeneralHostInfoEvent"] = reflect.TypeOf((*GeneralHostInfoEvent)(nil)).Elem() -} - -type GeneralHostWarningEvent struct { - GeneralEvent -} - -func init() { - t["GeneralHostWarningEvent"] = reflect.TypeOf((*GeneralHostWarningEvent)(nil)).Elem() -} - -type GeneralUserEvent struct { - GeneralEvent - - Entity *ManagedEntityEventArgument `xml:"entity,omitempty"` -} - -func init() { - t["GeneralUserEvent"] = reflect.TypeOf((*GeneralUserEvent)(nil)).Elem() -} - -type GeneralVmErrorEvent struct { - GeneralEvent -} - -func init() { - t["GeneralVmErrorEvent"] = reflect.TypeOf((*GeneralVmErrorEvent)(nil)).Elem() -} - -type GeneralVmInfoEvent struct { - GeneralEvent -} - -func init() { - t["GeneralVmInfoEvent"] = reflect.TypeOf((*GeneralVmInfoEvent)(nil)).Elem() -} - -type GeneralVmWarningEvent struct { - GeneralEvent -} - -func init() { - t["GeneralVmWarningEvent"] = reflect.TypeOf((*GeneralVmWarningEvent)(nil)).Elem() -} - -type GenerateCertificateSigningRequest GenerateCertificateSigningRequestRequestType - -func init() { - t["GenerateCertificateSigningRequest"] = reflect.TypeOf((*GenerateCertificateSigningRequest)(nil)).Elem() -} - -type GenerateCertificateSigningRequestByDn GenerateCertificateSigningRequestByDnRequestType - -func init() { - t["GenerateCertificateSigningRequestByDn"] = reflect.TypeOf((*GenerateCertificateSigningRequestByDn)(nil)).Elem() -} - -type GenerateCertificateSigningRequestByDnRequestType struct { - This ManagedObjectReference `xml:"_this"` - DistinguishedName string `xml:"distinguishedName"` -} - -func init() { - t["GenerateCertificateSigningRequestByDnRequestType"] = reflect.TypeOf((*GenerateCertificateSigningRequestByDnRequestType)(nil)).Elem() -} - -type GenerateCertificateSigningRequestByDnResponse struct { - Returnval string `xml:"returnval"` -} - -type GenerateCertificateSigningRequestRequestType struct { - This ManagedObjectReference `xml:"_this"` - UseIpAddressAsCommonName bool `xml:"useIpAddressAsCommonName"` -} - -func init() { - t["GenerateCertificateSigningRequestRequestType"] = reflect.TypeOf((*GenerateCertificateSigningRequestRequestType)(nil)).Elem() -} - -type GenerateCertificateSigningRequestResponse struct { - Returnval string `xml:"returnval"` -} - -type GenerateClientCsr GenerateClientCsrRequestType - -func init() { - t["GenerateClientCsr"] = reflect.TypeOf((*GenerateClientCsr)(nil)).Elem() -} - -type GenerateClientCsrRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` -} - -func init() { - t["GenerateClientCsrRequestType"] = reflect.TypeOf((*GenerateClientCsrRequestType)(nil)).Elem() -} - -type GenerateClientCsrResponse struct { - Returnval string `xml:"returnval"` -} - -type GenerateConfigTaskList GenerateConfigTaskListRequestType - -func init() { - t["GenerateConfigTaskList"] = reflect.TypeOf((*GenerateConfigTaskList)(nil)).Elem() -} - -type GenerateConfigTaskListRequestType struct { - This ManagedObjectReference `xml:"_this"` - ConfigSpec HostConfigSpec `xml:"configSpec"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["GenerateConfigTaskListRequestType"] = reflect.TypeOf((*GenerateConfigTaskListRequestType)(nil)).Elem() -} - -type GenerateConfigTaskListResponse struct { - Returnval HostProfileManagerConfigTaskList `xml:"returnval"` -} - -type GenerateHostConfigTaskSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - HostsInfo []StructuredCustomizations `xml:"hostsInfo,omitempty"` -} - -func init() { - t["GenerateHostConfigTaskSpecRequestType"] = reflect.TypeOf((*GenerateHostConfigTaskSpecRequestType)(nil)).Elem() -} - -type GenerateHostConfigTaskSpec_Task GenerateHostConfigTaskSpecRequestType - -func init() { - t["GenerateHostConfigTaskSpec_Task"] = reflect.TypeOf((*GenerateHostConfigTaskSpec_Task)(nil)).Elem() -} - -type GenerateHostConfigTaskSpec_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type GenerateHostProfileTaskListRequestType struct { - This ManagedObjectReference `xml:"_this"` - ConfigSpec HostConfigSpec `xml:"configSpec"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["GenerateHostProfileTaskListRequestType"] = reflect.TypeOf((*GenerateHostProfileTaskListRequestType)(nil)).Elem() -} - -type GenerateHostProfileTaskList_Task GenerateHostProfileTaskListRequestType - -func init() { - t["GenerateHostProfileTaskList_Task"] = reflect.TypeOf((*GenerateHostProfileTaskList_Task)(nil)).Elem() -} - -type GenerateHostProfileTaskList_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type GenerateKey GenerateKeyRequestType - -func init() { - t["GenerateKey"] = reflect.TypeOf((*GenerateKey)(nil)).Elem() -} - -type GenerateKeyRequestType struct { - This ManagedObjectReference `xml:"_this"` - KeyProvider *KeyProviderId `xml:"keyProvider,omitempty"` -} - -func init() { - t["GenerateKeyRequestType"] = reflect.TypeOf((*GenerateKeyRequestType)(nil)).Elem() -} - -type GenerateKeyResponse struct { - Returnval CryptoKeyResult `xml:"returnval"` -} - -type GenerateLogBundlesRequestType struct { - This ManagedObjectReference `xml:"_this"` - IncludeDefault bool `xml:"includeDefault"` - Host []ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["GenerateLogBundlesRequestType"] = reflect.TypeOf((*GenerateLogBundlesRequestType)(nil)).Elem() -} - -type GenerateLogBundles_Task GenerateLogBundlesRequestType - -func init() { - t["GenerateLogBundles_Task"] = reflect.TypeOf((*GenerateLogBundles_Task)(nil)).Elem() -} - -type GenerateLogBundles_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type GenerateSelfSignedClientCert GenerateSelfSignedClientCertRequestType - -func init() { - t["GenerateSelfSignedClientCert"] = reflect.TypeOf((*GenerateSelfSignedClientCert)(nil)).Elem() -} - -type GenerateSelfSignedClientCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` -} - -func init() { - t["GenerateSelfSignedClientCertRequestType"] = reflect.TypeOf((*GenerateSelfSignedClientCertRequestType)(nil)).Elem() -} - -type GenerateSelfSignedClientCertResponse struct { - Returnval string `xml:"returnval"` -} - -type GenericDrsFault struct { - VimFault - - HostFaults []LocalizedMethodFault `xml:"hostFaults,omitempty"` -} - -func init() { - t["GenericDrsFault"] = reflect.TypeOf((*GenericDrsFault)(nil)).Elem() -} - -type GenericDrsFaultFault GenericDrsFault - -func init() { - t["GenericDrsFaultFault"] = reflect.TypeOf((*GenericDrsFaultFault)(nil)).Elem() -} - -type GenericVmConfigFault struct { - VmConfigFault - - Reason string `xml:"reason"` -} - -func init() { - t["GenericVmConfigFault"] = reflect.TypeOf((*GenericVmConfigFault)(nil)).Elem() -} - -type GenericVmConfigFaultFault GenericVmConfigFault - -func init() { - t["GenericVmConfigFaultFault"] = reflect.TypeOf((*GenericVmConfigFaultFault)(nil)).Elem() -} - -type GetAlarm GetAlarmRequestType - -func init() { - t["GetAlarm"] = reflect.TypeOf((*GetAlarm)(nil)).Elem() -} - -type GetAlarmRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["GetAlarmRequestType"] = reflect.TypeOf((*GetAlarmRequestType)(nil)).Elem() -} - -type GetAlarmResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type GetAlarmState GetAlarmStateRequestType - -func init() { - t["GetAlarmState"] = reflect.TypeOf((*GetAlarmState)(nil)).Elem() -} - -type GetAlarmStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["GetAlarmStateRequestType"] = reflect.TypeOf((*GetAlarmStateRequestType)(nil)).Elem() -} - -type GetAlarmStateResponse struct { - Returnval []AlarmState `xml:"returnval,omitempty"` -} - -type GetCustomizationSpec GetCustomizationSpecRequestType - -func init() { - t["GetCustomizationSpec"] = reflect.TypeOf((*GetCustomizationSpec)(nil)).Elem() -} - -type GetCustomizationSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` -} - -func init() { - t["GetCustomizationSpecRequestType"] = reflect.TypeOf((*GetCustomizationSpecRequestType)(nil)).Elem() -} - -type GetCustomizationSpecResponse struct { - Returnval CustomizationSpecItem `xml:"returnval"` -} - -type GetPublicKey GetPublicKeyRequestType - -func init() { - t["GetPublicKey"] = reflect.TypeOf((*GetPublicKey)(nil)).Elem() -} - -type GetPublicKeyRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["GetPublicKeyRequestType"] = reflect.TypeOf((*GetPublicKeyRequestType)(nil)).Elem() -} - -type GetPublicKeyResponse struct { - Returnval string `xml:"returnval"` -} - -type GetResourceUsage GetResourceUsageRequestType - -func init() { - t["GetResourceUsage"] = reflect.TypeOf((*GetResourceUsage)(nil)).Elem() -} - -type GetResourceUsageRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["GetResourceUsageRequestType"] = reflect.TypeOf((*GetResourceUsageRequestType)(nil)).Elem() -} - -type GetResourceUsageResponse struct { - Returnval ClusterResourceUsageSummary `xml:"returnval"` -} - -type GetVchaClusterHealth GetVchaClusterHealthRequestType - -func init() { - t["GetVchaClusterHealth"] = reflect.TypeOf((*GetVchaClusterHealth)(nil)).Elem() -} - -type GetVchaClusterHealthRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["GetVchaClusterHealthRequestType"] = reflect.TypeOf((*GetVchaClusterHealthRequestType)(nil)).Elem() -} - -type GetVchaClusterHealthResponse struct { - Returnval VchaClusterHealth `xml:"returnval"` -} - -type GetVsanObjExtAttrs GetVsanObjExtAttrsRequestType - -func init() { - t["GetVsanObjExtAttrs"] = reflect.TypeOf((*GetVsanObjExtAttrs)(nil)).Elem() -} - -type GetVsanObjExtAttrsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuids []string `xml:"uuids"` -} - -func init() { - t["GetVsanObjExtAttrsRequestType"] = reflect.TypeOf((*GetVsanObjExtAttrsRequestType)(nil)).Elem() -} - -type GetVsanObjExtAttrsResponse struct { - Returnval string `xml:"returnval"` -} - -type GhostDvsProxySwitchDetectedEvent struct { - HostEvent - - SwitchUuid []string `xml:"switchUuid"` -} - -func init() { - t["GhostDvsProxySwitchDetectedEvent"] = reflect.TypeOf((*GhostDvsProxySwitchDetectedEvent)(nil)).Elem() -} - -type GhostDvsProxySwitchRemovedEvent struct { - HostEvent - - SwitchUuid []string `xml:"switchUuid"` -} - -func init() { - t["GhostDvsProxySwitchRemovedEvent"] = reflect.TypeOf((*GhostDvsProxySwitchRemovedEvent)(nil)).Elem() -} - -type GlobalMessageChangedEvent struct { - SessionEvent - - Message string `xml:"message"` - PrevMessage string `xml:"prevMessage,omitempty"` -} - -func init() { - t["GlobalMessageChangedEvent"] = reflect.TypeOf((*GlobalMessageChangedEvent)(nil)).Elem() -} - -type GroupAlarmAction struct { - AlarmAction - - Action []BaseAlarmAction `xml:"action,typeattr"` -} - -func init() { - t["GroupAlarmAction"] = reflect.TypeOf((*GroupAlarmAction)(nil)).Elem() -} - -type GuestAliases struct { - DynamicData - - Base64Cert string `xml:"base64Cert"` - Aliases []GuestAuthAliasInfo `xml:"aliases"` -} - -func init() { - t["GuestAliases"] = reflect.TypeOf((*GuestAliases)(nil)).Elem() -} - -type GuestAuthAliasInfo struct { - DynamicData - - Subject BaseGuestAuthSubject `xml:"subject,typeattr"` - Comment string `xml:"comment"` -} - -func init() { - t["GuestAuthAliasInfo"] = reflect.TypeOf((*GuestAuthAliasInfo)(nil)).Elem() -} - -type GuestAuthAnySubject struct { - GuestAuthSubject -} - -func init() { - t["GuestAuthAnySubject"] = reflect.TypeOf((*GuestAuthAnySubject)(nil)).Elem() -} - -type GuestAuthNamedSubject struct { - GuestAuthSubject - - Name string `xml:"name"` -} - -func init() { - t["GuestAuthNamedSubject"] = reflect.TypeOf((*GuestAuthNamedSubject)(nil)).Elem() -} - -type GuestAuthSubject struct { - DynamicData -} - -func init() { - t["GuestAuthSubject"] = reflect.TypeOf((*GuestAuthSubject)(nil)).Elem() -} - -type GuestAuthentication struct { - DynamicData - - InteractiveSession bool `xml:"interactiveSession"` -} - -func init() { - t["GuestAuthentication"] = reflect.TypeOf((*GuestAuthentication)(nil)).Elem() -} - -type GuestAuthenticationChallenge struct { - GuestOperationsFault - - ServerChallenge BaseGuestAuthentication `xml:"serverChallenge,typeattr"` - SessionID int64 `xml:"sessionID"` -} - -func init() { - t["GuestAuthenticationChallenge"] = reflect.TypeOf((*GuestAuthenticationChallenge)(nil)).Elem() -} - -type GuestAuthenticationChallengeFault GuestAuthenticationChallenge - -func init() { - t["GuestAuthenticationChallengeFault"] = reflect.TypeOf((*GuestAuthenticationChallengeFault)(nil)).Elem() -} - -type GuestComponentsOutOfDate struct { - GuestOperationsFault -} - -func init() { - t["GuestComponentsOutOfDate"] = reflect.TypeOf((*GuestComponentsOutOfDate)(nil)).Elem() -} - -type GuestComponentsOutOfDateFault GuestComponentsOutOfDate - -func init() { - t["GuestComponentsOutOfDateFault"] = reflect.TypeOf((*GuestComponentsOutOfDateFault)(nil)).Elem() -} - -type GuestDiskInfo struct { - DynamicData - - DiskPath string `xml:"diskPath,omitempty"` - Capacity int64 `xml:"capacity,omitempty"` - FreeSpace int64 `xml:"freeSpace,omitempty"` -} - -func init() { - t["GuestDiskInfo"] = reflect.TypeOf((*GuestDiskInfo)(nil)).Elem() -} - -type GuestFileAttributes struct { - DynamicData - - ModificationTime *time.Time `xml:"modificationTime"` - AccessTime *time.Time `xml:"accessTime"` - SymlinkTarget string `xml:"symlinkTarget,omitempty"` -} - -func init() { - t["GuestFileAttributes"] = reflect.TypeOf((*GuestFileAttributes)(nil)).Elem() -} - -type GuestFileInfo struct { - DynamicData - - Path string `xml:"path"` - Type string `xml:"type"` - Size int64 `xml:"size"` - Attributes BaseGuestFileAttributes `xml:"attributes,typeattr"` -} - -func init() { - t["GuestFileInfo"] = reflect.TypeOf((*GuestFileInfo)(nil)).Elem() -} - -type GuestInfo struct { - DynamicData - - ToolsStatus VirtualMachineToolsStatus `xml:"toolsStatus,omitempty"` - ToolsVersionStatus string `xml:"toolsVersionStatus,omitempty"` - ToolsVersionStatus2 string `xml:"toolsVersionStatus2,omitempty"` - ToolsRunningStatus string `xml:"toolsRunningStatus,omitempty"` - ToolsVersion string `xml:"toolsVersion,omitempty"` - ToolsInstallType string `xml:"toolsInstallType,omitempty"` - GuestId string `xml:"guestId,omitempty"` - GuestFamily string `xml:"guestFamily,omitempty"` - GuestFullName string `xml:"guestFullName,omitempty"` - HostName string `xml:"hostName,omitempty"` - IpAddress string `xml:"ipAddress,omitempty"` - Net []GuestNicInfo `xml:"net,omitempty"` - IpStack []GuestStackInfo `xml:"ipStack,omitempty"` - Disk []GuestDiskInfo `xml:"disk,omitempty"` - Screen *GuestScreenInfo `xml:"screen,omitempty"` - GuestState string `xml:"guestState"` - AppHeartbeatStatus string `xml:"appHeartbeatStatus,omitempty"` - GuestKernelCrashed *bool `xml:"guestKernelCrashed"` - AppState string `xml:"appState,omitempty"` - GuestOperationsReady *bool `xml:"guestOperationsReady"` - InteractiveGuestOperationsReady *bool `xml:"interactiveGuestOperationsReady"` - GuestStateChangeSupported *bool `xml:"guestStateChangeSupported"` - GenerationInfo []GuestInfoNamespaceGenerationInfo `xml:"generationInfo,omitempty"` -} - -func init() { - t["GuestInfo"] = reflect.TypeOf((*GuestInfo)(nil)).Elem() -} - -type GuestInfoNamespaceGenerationInfo struct { - DynamicData - - Key string `xml:"key"` - GenerationNo int32 `xml:"generationNo"` -} - -func init() { - t["GuestInfoNamespaceGenerationInfo"] = reflect.TypeOf((*GuestInfoNamespaceGenerationInfo)(nil)).Elem() -} - -type GuestListFileInfo struct { - DynamicData - - Files []GuestFileInfo `xml:"files,omitempty"` - Remaining int32 `xml:"remaining"` -} - -func init() { - t["GuestListFileInfo"] = reflect.TypeOf((*GuestListFileInfo)(nil)).Elem() -} - -type GuestMappedAliases struct { - DynamicData - - Base64Cert string `xml:"base64Cert"` - Username string `xml:"username"` - Subjects []BaseGuestAuthSubject `xml:"subjects,typeattr"` -} - -func init() { - t["GuestMappedAliases"] = reflect.TypeOf((*GuestMappedAliases)(nil)).Elem() -} - -type GuestMultipleMappings struct { - GuestOperationsFault -} - -func init() { - t["GuestMultipleMappings"] = reflect.TypeOf((*GuestMultipleMappings)(nil)).Elem() -} - -type GuestMultipleMappingsFault GuestMultipleMappings - -func init() { - t["GuestMultipleMappingsFault"] = reflect.TypeOf((*GuestMultipleMappingsFault)(nil)).Elem() -} - -type GuestNicInfo struct { - DynamicData - - Network string `xml:"network,omitempty"` - IpAddress []string `xml:"ipAddress,omitempty"` - MacAddress string `xml:"macAddress,omitempty"` - Connected bool `xml:"connected"` - DeviceConfigId int32 `xml:"deviceConfigId"` - DnsConfig *NetDnsConfigInfo `xml:"dnsConfig,omitempty"` - IpConfig *NetIpConfigInfo `xml:"ipConfig,omitempty"` - NetBIOSConfig BaseNetBIOSConfigInfo `xml:"netBIOSConfig,omitempty,typeattr"` -} - -func init() { - t["GuestNicInfo"] = reflect.TypeOf((*GuestNicInfo)(nil)).Elem() -} - -type GuestOperationsFault struct { - VimFault -} - -func init() { - t["GuestOperationsFault"] = reflect.TypeOf((*GuestOperationsFault)(nil)).Elem() -} - -type GuestOperationsFaultFault BaseGuestOperationsFault - -func init() { - t["GuestOperationsFaultFault"] = reflect.TypeOf((*GuestOperationsFaultFault)(nil)).Elem() -} - -type GuestOperationsUnavailable struct { - GuestOperationsFault -} - -func init() { - t["GuestOperationsUnavailable"] = reflect.TypeOf((*GuestOperationsUnavailable)(nil)).Elem() -} - -type GuestOperationsUnavailableFault GuestOperationsUnavailable - -func init() { - t["GuestOperationsUnavailableFault"] = reflect.TypeOf((*GuestOperationsUnavailableFault)(nil)).Elem() -} - -type GuestOsDescriptor struct { - DynamicData - - Id string `xml:"id"` - Family string `xml:"family"` - FullName string `xml:"fullName"` - SupportedMaxCPUs int32 `xml:"supportedMaxCPUs"` - NumSupportedPhysicalSockets int32 `xml:"numSupportedPhysicalSockets,omitempty"` - NumSupportedCoresPerSocket int32 `xml:"numSupportedCoresPerSocket,omitempty"` - SupportedMinMemMB int32 `xml:"supportedMinMemMB"` - SupportedMaxMemMB int32 `xml:"supportedMaxMemMB"` - RecommendedMemMB int32 `xml:"recommendedMemMB"` - RecommendedColorDepth int32 `xml:"recommendedColorDepth"` - SupportedDiskControllerList []string `xml:"supportedDiskControllerList"` - RecommendedSCSIController string `xml:"recommendedSCSIController,omitempty"` - RecommendedDiskController string `xml:"recommendedDiskController"` - SupportedNumDisks int32 `xml:"supportedNumDisks"` - RecommendedDiskSizeMB int32 `xml:"recommendedDiskSizeMB"` - RecommendedCdromController string `xml:"recommendedCdromController,omitempty"` - SupportedEthernetCard []string `xml:"supportedEthernetCard"` - RecommendedEthernetCard string `xml:"recommendedEthernetCard,omitempty"` - SupportsSlaveDisk *bool `xml:"supportsSlaveDisk"` - CpuFeatureMask []HostCpuIdInfo `xml:"cpuFeatureMask,omitempty"` - SmcRequired *bool `xml:"smcRequired"` - SupportsWakeOnLan bool `xml:"supportsWakeOnLan"` - SupportsVMI *bool `xml:"supportsVMI"` - SupportsMemoryHotAdd *bool `xml:"supportsMemoryHotAdd"` - SupportsCpuHotAdd *bool `xml:"supportsCpuHotAdd"` - SupportsCpuHotRemove *bool `xml:"supportsCpuHotRemove"` - SupportedFirmware []string `xml:"supportedFirmware,omitempty"` - RecommendedFirmware string `xml:"recommendedFirmware,omitempty"` - SupportedUSBControllerList []string `xml:"supportedUSBControllerList,omitempty"` - RecommendedUSBController string `xml:"recommendedUSBController,omitempty"` - Supports3D *bool `xml:"supports3D"` - Recommended3D *bool `xml:"recommended3D"` - SmcRecommended *bool `xml:"smcRecommended"` - Ich7mRecommended *bool `xml:"ich7mRecommended"` - UsbRecommended *bool `xml:"usbRecommended"` - SupportLevel string `xml:"supportLevel,omitempty"` - SupportedForCreate *bool `xml:"supportedForCreate"` - VRAMSizeInKB *IntOption `xml:"vRAMSizeInKB,omitempty"` - NumSupportedFloppyDevices int32 `xml:"numSupportedFloppyDevices,omitempty"` - WakeOnLanEthernetCard []string `xml:"wakeOnLanEthernetCard,omitempty"` - SupportsPvscsiControllerForBoot *bool `xml:"supportsPvscsiControllerForBoot"` - DiskUuidEnabled *bool `xml:"diskUuidEnabled"` - SupportsHotPlugPCI *bool `xml:"supportsHotPlugPCI"` - SupportsSecureBoot *bool `xml:"supportsSecureBoot"` - DefaultSecureBoot *bool `xml:"defaultSecureBoot"` -} - -func init() { - t["GuestOsDescriptor"] = reflect.TypeOf((*GuestOsDescriptor)(nil)).Elem() -} - -type GuestPermissionDenied struct { - GuestOperationsFault -} - -func init() { - t["GuestPermissionDenied"] = reflect.TypeOf((*GuestPermissionDenied)(nil)).Elem() -} - -type GuestPermissionDeniedFault GuestPermissionDenied - -func init() { - t["GuestPermissionDeniedFault"] = reflect.TypeOf((*GuestPermissionDeniedFault)(nil)).Elem() -} - -type GuestPosixFileAttributes struct { - GuestFileAttributes - - OwnerId *int32 `xml:"ownerId"` - GroupId *int32 `xml:"groupId"` - Permissions int64 `xml:"permissions,omitempty"` -} - -func init() { - t["GuestPosixFileAttributes"] = reflect.TypeOf((*GuestPosixFileAttributes)(nil)).Elem() -} - -type GuestProcessInfo struct { - DynamicData - - Name string `xml:"name"` - Pid int64 `xml:"pid"` - Owner string `xml:"owner"` - CmdLine string `xml:"cmdLine"` - StartTime time.Time `xml:"startTime"` - EndTime *time.Time `xml:"endTime"` - ExitCode int32 `xml:"exitCode,omitempty"` -} - -func init() { - t["GuestProcessInfo"] = reflect.TypeOf((*GuestProcessInfo)(nil)).Elem() -} - -type GuestProcessNotFound struct { - GuestOperationsFault - - Pid int64 `xml:"pid"` -} - -func init() { - t["GuestProcessNotFound"] = reflect.TypeOf((*GuestProcessNotFound)(nil)).Elem() -} - -type GuestProcessNotFoundFault GuestProcessNotFound - -func init() { - t["GuestProcessNotFoundFault"] = reflect.TypeOf((*GuestProcessNotFoundFault)(nil)).Elem() -} - -type GuestProgramSpec struct { - DynamicData - - ProgramPath string `xml:"programPath"` - Arguments string `xml:"arguments"` - WorkingDirectory string `xml:"workingDirectory,omitempty"` - EnvVariables []string `xml:"envVariables,omitempty"` -} - -func init() { - t["GuestProgramSpec"] = reflect.TypeOf((*GuestProgramSpec)(nil)).Elem() -} - -type GuestRegKeyNameSpec struct { - DynamicData - - RegistryPath string `xml:"registryPath"` - WowBitness string `xml:"wowBitness"` -} - -func init() { - t["GuestRegKeyNameSpec"] = reflect.TypeOf((*GuestRegKeyNameSpec)(nil)).Elem() -} - -type GuestRegKeyRecordSpec struct { - DynamicData - - Key GuestRegKeySpec `xml:"key"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["GuestRegKeyRecordSpec"] = reflect.TypeOf((*GuestRegKeyRecordSpec)(nil)).Elem() -} - -type GuestRegKeySpec struct { - DynamicData - - KeyName GuestRegKeyNameSpec `xml:"keyName"` - ClassType string `xml:"classType"` - LastWritten time.Time `xml:"lastWritten"` -} - -func init() { - t["GuestRegKeySpec"] = reflect.TypeOf((*GuestRegKeySpec)(nil)).Elem() -} - -type GuestRegValueBinarySpec struct { - GuestRegValueDataSpec - - Value []byte `xml:"value,omitempty"` -} - -func init() { - t["GuestRegValueBinarySpec"] = reflect.TypeOf((*GuestRegValueBinarySpec)(nil)).Elem() -} - -type GuestRegValueDataSpec struct { - DynamicData -} - -func init() { - t["GuestRegValueDataSpec"] = reflect.TypeOf((*GuestRegValueDataSpec)(nil)).Elem() -} - -type GuestRegValueDwordSpec struct { - GuestRegValueDataSpec - - Value int32 `xml:"value"` -} - -func init() { - t["GuestRegValueDwordSpec"] = reflect.TypeOf((*GuestRegValueDwordSpec)(nil)).Elem() -} - -type GuestRegValueExpandStringSpec struct { - GuestRegValueDataSpec - - Value string `xml:"value,omitempty"` -} - -func init() { - t["GuestRegValueExpandStringSpec"] = reflect.TypeOf((*GuestRegValueExpandStringSpec)(nil)).Elem() -} - -type GuestRegValueMultiStringSpec struct { - GuestRegValueDataSpec - - Value []string `xml:"value,omitempty"` -} - -func init() { - t["GuestRegValueMultiStringSpec"] = reflect.TypeOf((*GuestRegValueMultiStringSpec)(nil)).Elem() -} - -type GuestRegValueNameSpec struct { - DynamicData - - KeyName GuestRegKeyNameSpec `xml:"keyName"` - Name string `xml:"name"` -} - -func init() { - t["GuestRegValueNameSpec"] = reflect.TypeOf((*GuestRegValueNameSpec)(nil)).Elem() -} - -type GuestRegValueQwordSpec struct { - GuestRegValueDataSpec - - Value int64 `xml:"value"` -} - -func init() { - t["GuestRegValueQwordSpec"] = reflect.TypeOf((*GuestRegValueQwordSpec)(nil)).Elem() -} - -type GuestRegValueSpec struct { - DynamicData - - Name GuestRegValueNameSpec `xml:"name"` - Data BaseGuestRegValueDataSpec `xml:"data,typeattr"` -} - -func init() { - t["GuestRegValueSpec"] = reflect.TypeOf((*GuestRegValueSpec)(nil)).Elem() -} - -type GuestRegValueStringSpec struct { - GuestRegValueDataSpec - - Value string `xml:"value,omitempty"` -} - -func init() { - t["GuestRegValueStringSpec"] = reflect.TypeOf((*GuestRegValueStringSpec)(nil)).Elem() -} - -type GuestRegistryFault struct { - GuestOperationsFault - - WindowsSystemErrorCode int64 `xml:"windowsSystemErrorCode"` -} - -func init() { - t["GuestRegistryFault"] = reflect.TypeOf((*GuestRegistryFault)(nil)).Elem() -} - -type GuestRegistryFaultFault BaseGuestRegistryFault - -func init() { - t["GuestRegistryFaultFault"] = reflect.TypeOf((*GuestRegistryFaultFault)(nil)).Elem() -} - -type GuestRegistryKeyAlreadyExists struct { - GuestRegistryKeyFault -} - -func init() { - t["GuestRegistryKeyAlreadyExists"] = reflect.TypeOf((*GuestRegistryKeyAlreadyExists)(nil)).Elem() -} - -type GuestRegistryKeyAlreadyExistsFault GuestRegistryKeyAlreadyExists - -func init() { - t["GuestRegistryKeyAlreadyExistsFault"] = reflect.TypeOf((*GuestRegistryKeyAlreadyExistsFault)(nil)).Elem() -} - -type GuestRegistryKeyFault struct { - GuestRegistryFault - - KeyName string `xml:"keyName"` -} - -func init() { - t["GuestRegistryKeyFault"] = reflect.TypeOf((*GuestRegistryKeyFault)(nil)).Elem() -} - -type GuestRegistryKeyFaultFault BaseGuestRegistryKeyFault - -func init() { - t["GuestRegistryKeyFaultFault"] = reflect.TypeOf((*GuestRegistryKeyFaultFault)(nil)).Elem() -} - -type GuestRegistryKeyHasSubkeys struct { - GuestRegistryKeyFault -} - -func init() { - t["GuestRegistryKeyHasSubkeys"] = reflect.TypeOf((*GuestRegistryKeyHasSubkeys)(nil)).Elem() -} - -type GuestRegistryKeyHasSubkeysFault GuestRegistryKeyHasSubkeys - -func init() { - t["GuestRegistryKeyHasSubkeysFault"] = reflect.TypeOf((*GuestRegistryKeyHasSubkeysFault)(nil)).Elem() -} - -type GuestRegistryKeyInvalid struct { - GuestRegistryKeyFault -} - -func init() { - t["GuestRegistryKeyInvalid"] = reflect.TypeOf((*GuestRegistryKeyInvalid)(nil)).Elem() -} - -type GuestRegistryKeyInvalidFault GuestRegistryKeyInvalid - -func init() { - t["GuestRegistryKeyInvalidFault"] = reflect.TypeOf((*GuestRegistryKeyInvalidFault)(nil)).Elem() -} - -type GuestRegistryKeyParentVolatile struct { - GuestRegistryKeyFault -} - -func init() { - t["GuestRegistryKeyParentVolatile"] = reflect.TypeOf((*GuestRegistryKeyParentVolatile)(nil)).Elem() -} - -type GuestRegistryKeyParentVolatileFault GuestRegistryKeyParentVolatile - -func init() { - t["GuestRegistryKeyParentVolatileFault"] = reflect.TypeOf((*GuestRegistryKeyParentVolatileFault)(nil)).Elem() -} - -type GuestRegistryValueFault struct { - GuestRegistryFault - - KeyName string `xml:"keyName"` - ValueName string `xml:"valueName"` -} - -func init() { - t["GuestRegistryValueFault"] = reflect.TypeOf((*GuestRegistryValueFault)(nil)).Elem() -} - -type GuestRegistryValueFaultFault BaseGuestRegistryValueFault - -func init() { - t["GuestRegistryValueFaultFault"] = reflect.TypeOf((*GuestRegistryValueFaultFault)(nil)).Elem() -} - -type GuestRegistryValueNotFound struct { - GuestRegistryValueFault -} - -func init() { - t["GuestRegistryValueNotFound"] = reflect.TypeOf((*GuestRegistryValueNotFound)(nil)).Elem() -} - -type GuestRegistryValueNotFoundFault GuestRegistryValueNotFound - -func init() { - t["GuestRegistryValueNotFoundFault"] = reflect.TypeOf((*GuestRegistryValueNotFoundFault)(nil)).Elem() -} - -type GuestScreenInfo struct { - DynamicData - - Width int32 `xml:"width"` - Height int32 `xml:"height"` -} - -func init() { - t["GuestScreenInfo"] = reflect.TypeOf((*GuestScreenInfo)(nil)).Elem() -} - -type GuestStackInfo struct { - DynamicData - - DnsConfig *NetDnsConfigInfo `xml:"dnsConfig,omitempty"` - IpRouteConfig *NetIpRouteConfigInfo `xml:"ipRouteConfig,omitempty"` - IpStackConfig []KeyValue `xml:"ipStackConfig,omitempty"` - DhcpConfig *NetDhcpConfigInfo `xml:"dhcpConfig,omitempty"` -} - -func init() { - t["GuestStackInfo"] = reflect.TypeOf((*GuestStackInfo)(nil)).Elem() -} - -type GuestWindowsFileAttributes struct { - GuestFileAttributes - - Hidden *bool `xml:"hidden"` - ReadOnly *bool `xml:"readOnly"` - CreateTime *time.Time `xml:"createTime"` -} - -func init() { - t["GuestWindowsFileAttributes"] = reflect.TypeOf((*GuestWindowsFileAttributes)(nil)).Elem() -} - -type GuestWindowsProgramSpec struct { - GuestProgramSpec - - StartMinimized bool `xml:"startMinimized"` -} - -func init() { - t["GuestWindowsProgramSpec"] = reflect.TypeOf((*GuestWindowsProgramSpec)(nil)).Elem() -} - -type HAErrorsAtDest struct { - MigrationFault -} - -func init() { - t["HAErrorsAtDest"] = reflect.TypeOf((*HAErrorsAtDest)(nil)).Elem() -} - -type HAErrorsAtDestFault HAErrorsAtDest - -func init() { - t["HAErrorsAtDestFault"] = reflect.TypeOf((*HAErrorsAtDestFault)(nil)).Elem() -} - -type HasMonitoredEntity HasMonitoredEntityRequestType - -func init() { - t["HasMonitoredEntity"] = reflect.TypeOf((*HasMonitoredEntity)(nil)).Elem() -} - -type HasMonitoredEntityRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["HasMonitoredEntityRequestType"] = reflect.TypeOf((*HasMonitoredEntityRequestType)(nil)).Elem() -} - -type HasMonitoredEntityResponse struct { - Returnval bool `xml:"returnval"` -} - -type HasPrivilegeOnEntities HasPrivilegeOnEntitiesRequestType - -func init() { - t["HasPrivilegeOnEntities"] = reflect.TypeOf((*HasPrivilegeOnEntities)(nil)).Elem() -} - -type HasPrivilegeOnEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity []ManagedObjectReference `xml:"entity"` - SessionId string `xml:"sessionId"` - PrivId []string `xml:"privId,omitempty"` -} - -func init() { - t["HasPrivilegeOnEntitiesRequestType"] = reflect.TypeOf((*HasPrivilegeOnEntitiesRequestType)(nil)).Elem() -} - -type HasPrivilegeOnEntitiesResponse struct { - Returnval []EntityPrivilege `xml:"returnval,omitempty"` -} - -type HasPrivilegeOnEntity HasPrivilegeOnEntityRequestType - -func init() { - t["HasPrivilegeOnEntity"] = reflect.TypeOf((*HasPrivilegeOnEntity)(nil)).Elem() -} - -type HasPrivilegeOnEntityRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - SessionId string `xml:"sessionId"` - PrivId []string `xml:"privId,omitempty"` -} - -func init() { - t["HasPrivilegeOnEntityRequestType"] = reflect.TypeOf((*HasPrivilegeOnEntityRequestType)(nil)).Elem() -} - -type HasPrivilegeOnEntityResponse struct { - Returnval []bool `xml:"returnval,omitempty"` -} - -type HasProvider HasProviderRequestType - -func init() { - t["HasProvider"] = reflect.TypeOf((*HasProvider)(nil)).Elem() -} - -type HasProviderRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["HasProviderRequestType"] = reflect.TypeOf((*HasProviderRequestType)(nil)).Elem() -} - -type HasProviderResponse struct { - Returnval bool `xml:"returnval"` -} - -type HasUserPrivilegeOnEntities HasUserPrivilegeOnEntitiesRequestType - -func init() { - t["HasUserPrivilegeOnEntities"] = reflect.TypeOf((*HasUserPrivilegeOnEntities)(nil)).Elem() -} - -type HasUserPrivilegeOnEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entities []ManagedObjectReference `xml:"entities"` - UserName string `xml:"userName"` - PrivId []string `xml:"privId,omitempty"` -} - -func init() { - t["HasUserPrivilegeOnEntitiesRequestType"] = reflect.TypeOf((*HasUserPrivilegeOnEntitiesRequestType)(nil)).Elem() -} - -type HasUserPrivilegeOnEntitiesResponse struct { - Returnval []EntityPrivilege `xml:"returnval,omitempty"` -} - -type HbrDiskMigrationAction struct { - ClusterAction - - CollectionId string `xml:"collectionId"` - CollectionName string `xml:"collectionName"` - DiskIds []string `xml:"diskIds"` - Source ManagedObjectReference `xml:"source"` - Destination ManagedObjectReference `xml:"destination"` - SizeTransferred int64 `xml:"sizeTransferred"` - SpaceUtilSrcBefore float32 `xml:"spaceUtilSrcBefore,omitempty"` - SpaceUtilDstBefore float32 `xml:"spaceUtilDstBefore,omitempty"` - SpaceUtilSrcAfter float32 `xml:"spaceUtilSrcAfter,omitempty"` - SpaceUtilDstAfter float32 `xml:"spaceUtilDstAfter,omitempty"` - IoLatencySrcBefore float32 `xml:"ioLatencySrcBefore,omitempty"` - IoLatencyDstBefore float32 `xml:"ioLatencyDstBefore,omitempty"` -} - -func init() { - t["HbrDiskMigrationAction"] = reflect.TypeOf((*HbrDiskMigrationAction)(nil)).Elem() -} - -type HbrManagerReplicationVmInfo struct { - DynamicData - - State string `xml:"state"` - ProgressInfo *ReplicationVmProgressInfo `xml:"progressInfo,omitempty"` - ImageId string `xml:"imageId,omitempty"` - LastError *LocalizedMethodFault `xml:"lastError,omitempty"` -} - -func init() { - t["HbrManagerReplicationVmInfo"] = reflect.TypeOf((*HbrManagerReplicationVmInfo)(nil)).Elem() -} - -type HbrManagerVmReplicationCapability struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - SupportedQuiesceMode string `xml:"supportedQuiesceMode"` - CompressionSupported bool `xml:"compressionSupported"` - MaxSupportedSourceDiskCapacity int64 `xml:"maxSupportedSourceDiskCapacity"` - MinRpo int64 `xml:"minRpo,omitempty"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HbrManagerVmReplicationCapability"] = reflect.TypeOf((*HbrManagerVmReplicationCapability)(nil)).Elem() -} - -type HealthStatusChangedEvent struct { - Event - - ComponentId string `xml:"componentId"` - OldStatus string `xml:"oldStatus"` - NewStatus string `xml:"newStatus"` - ComponentName string `xml:"componentName"` - ServiceId string `xml:"serviceId,omitempty"` -} - -func init() { - t["HealthStatusChangedEvent"] = reflect.TypeOf((*HealthStatusChangedEvent)(nil)).Elem() -} - -type HealthSystemRuntime struct { - DynamicData - - SystemHealthInfo *HostSystemHealthInfo `xml:"systemHealthInfo,omitempty"` - HardwareStatusInfo *HostHardwareStatusInfo `xml:"hardwareStatusInfo,omitempty"` -} - -func init() { - t["HealthSystemRuntime"] = reflect.TypeOf((*HealthSystemRuntime)(nil)).Elem() -} - -type HealthUpdate struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - HealthUpdateInfoId string `xml:"healthUpdateInfoId"` - Id string `xml:"id"` - Status ManagedEntityStatus `xml:"status"` - Remediation string `xml:"remediation"` -} - -func init() { - t["HealthUpdate"] = reflect.TypeOf((*HealthUpdate)(nil)).Elem() -} - -type HealthUpdateInfo struct { - DynamicData - - Id string `xml:"id"` - ComponentType string `xml:"componentType"` - Description string `xml:"description"` -} - -func init() { - t["HealthUpdateInfo"] = reflect.TypeOf((*HealthUpdateInfo)(nil)).Elem() -} - -type HeterogenousHostsBlockingEVC struct { - EVCConfigFault -} - -func init() { - t["HeterogenousHostsBlockingEVC"] = reflect.TypeOf((*HeterogenousHostsBlockingEVC)(nil)).Elem() -} - -type HeterogenousHostsBlockingEVCFault HeterogenousHostsBlockingEVC - -func init() { - t["HeterogenousHostsBlockingEVCFault"] = reflect.TypeOf((*HeterogenousHostsBlockingEVCFault)(nil)).Elem() -} - -type HostAccessControlEntry struct { - DynamicData - - Principal string `xml:"principal"` - Group bool `xml:"group"` - AccessMode HostAccessMode `xml:"accessMode"` -} - -func init() { - t["HostAccessControlEntry"] = reflect.TypeOf((*HostAccessControlEntry)(nil)).Elem() -} - -type HostAccessRestrictedToManagementServer struct { - NotSupported - - ManagementServer string `xml:"managementServer"` -} - -func init() { - t["HostAccessRestrictedToManagementServer"] = reflect.TypeOf((*HostAccessRestrictedToManagementServer)(nil)).Elem() -} - -type HostAccessRestrictedToManagementServerFault HostAccessRestrictedToManagementServer - -func init() { - t["HostAccessRestrictedToManagementServerFault"] = reflect.TypeOf((*HostAccessRestrictedToManagementServerFault)(nil)).Elem() -} - -type HostAccountSpec struct { - DynamicData - - Id string `xml:"id"` - Password string `xml:"password,omitempty"` - Description string `xml:"description,omitempty"` -} - -func init() { - t["HostAccountSpec"] = reflect.TypeOf((*HostAccountSpec)(nil)).Elem() -} - -type HostActiveDirectory struct { - DynamicData - - ChangeOperation string `xml:"changeOperation"` - Spec *HostActiveDirectorySpec `xml:"spec,omitempty"` -} - -func init() { - t["HostActiveDirectory"] = reflect.TypeOf((*HostActiveDirectory)(nil)).Elem() -} - -type HostActiveDirectoryInfo struct { - HostDirectoryStoreInfo - - JoinedDomain string `xml:"joinedDomain,omitempty"` - TrustedDomain []string `xml:"trustedDomain,omitempty"` - DomainMembershipStatus string `xml:"domainMembershipStatus,omitempty"` - SmartCardAuthenticationEnabled *bool `xml:"smartCardAuthenticationEnabled"` -} - -func init() { - t["HostActiveDirectoryInfo"] = reflect.TypeOf((*HostActiveDirectoryInfo)(nil)).Elem() -} - -type HostActiveDirectorySpec struct { - DynamicData - - DomainName string `xml:"domainName,omitempty"` - UserName string `xml:"userName,omitempty"` - Password string `xml:"password,omitempty"` - CamServer string `xml:"camServer,omitempty"` - Thumbprint string `xml:"thumbprint,omitempty"` - SmartCardAuthenticationEnabled *bool `xml:"smartCardAuthenticationEnabled"` - SmartCardTrustAnchors []string `xml:"smartCardTrustAnchors,omitempty"` -} - -func init() { - t["HostActiveDirectorySpec"] = reflect.TypeOf((*HostActiveDirectorySpec)(nil)).Elem() -} - -type HostAddFailedEvent struct { - HostEvent - - Hostname string `xml:"hostname"` -} - -func init() { - t["HostAddFailedEvent"] = reflect.TypeOf((*HostAddFailedEvent)(nil)).Elem() -} - -type HostAddedEvent struct { - HostEvent -} - -func init() { - t["HostAddedEvent"] = reflect.TypeOf((*HostAddedEvent)(nil)).Elem() -} - -type HostAdminDisableEvent struct { - HostEvent -} - -func init() { - t["HostAdminDisableEvent"] = reflect.TypeOf((*HostAdminDisableEvent)(nil)).Elem() -} - -type HostAdminEnableEvent struct { - HostEvent -} - -func init() { - t["HostAdminEnableEvent"] = reflect.TypeOf((*HostAdminEnableEvent)(nil)).Elem() -} - -type HostApplyProfile struct { - ApplyProfile - - Memory *HostMemoryProfile `xml:"memory,omitempty"` - Storage *StorageProfile `xml:"storage,omitempty"` - Network *NetworkProfile `xml:"network,omitempty"` - Datetime *DateTimeProfile `xml:"datetime,omitempty"` - Firewall *FirewallProfile `xml:"firewall,omitempty"` - Security *SecurityProfile `xml:"security,omitempty"` - Service []ServiceProfile `xml:"service,omitempty"` - Option []OptionProfile `xml:"option,omitempty"` - UserAccount []UserProfile `xml:"userAccount,omitempty"` - UsergroupAccount []UserGroupProfile `xml:"usergroupAccount,omitempty"` - Authentication *AuthenticationProfile `xml:"authentication,omitempty"` -} - -func init() { - t["HostApplyProfile"] = reflect.TypeOf((*HostApplyProfile)(nil)).Elem() -} - -type HostAuthenticationManagerInfo struct { - DynamicData - - AuthConfig []BaseHostAuthenticationStoreInfo `xml:"authConfig,typeattr"` -} - -func init() { - t["HostAuthenticationManagerInfo"] = reflect.TypeOf((*HostAuthenticationManagerInfo)(nil)).Elem() -} - -type HostAuthenticationStoreInfo struct { - DynamicData - - Enabled bool `xml:"enabled"` -} - -func init() { - t["HostAuthenticationStoreInfo"] = reflect.TypeOf((*HostAuthenticationStoreInfo)(nil)).Elem() -} - -type HostAutoStartManagerConfig struct { - DynamicData - - Defaults *AutoStartDefaults `xml:"defaults,omitempty"` - PowerInfo []AutoStartPowerInfo `xml:"powerInfo,omitempty"` -} - -func init() { - t["HostAutoStartManagerConfig"] = reflect.TypeOf((*HostAutoStartManagerConfig)(nil)).Elem() -} - -type HostBIOSInfo struct { - DynamicData - - BiosVersion string `xml:"biosVersion,omitempty"` - ReleaseDate *time.Time `xml:"releaseDate"` - Vendor string `xml:"vendor,omitempty"` - MajorRelease int32 `xml:"majorRelease,omitempty"` - MinorRelease int32 `xml:"minorRelease,omitempty"` - FirmwareMajorRelease int32 `xml:"firmwareMajorRelease,omitempty"` - FirmwareMinorRelease int32 `xml:"firmwareMinorRelease,omitempty"` -} - -func init() { - t["HostBIOSInfo"] = reflect.TypeOf((*HostBIOSInfo)(nil)).Elem() -} - -type HostBlockAdapterTargetTransport struct { - HostTargetTransport -} - -func init() { - t["HostBlockAdapterTargetTransport"] = reflect.TypeOf((*HostBlockAdapterTargetTransport)(nil)).Elem() -} - -type HostBlockHba struct { - HostHostBusAdapter -} - -func init() { - t["HostBlockHba"] = reflect.TypeOf((*HostBlockHba)(nil)).Elem() -} - -type HostBootDevice struct { - DynamicData - - Key string `xml:"key"` - Description string `xml:"description"` -} - -func init() { - t["HostBootDevice"] = reflect.TypeOf((*HostBootDevice)(nil)).Elem() -} - -type HostBootDeviceInfo struct { - DynamicData - - BootDevices []HostBootDevice `xml:"bootDevices,omitempty"` - CurrentBootDeviceKey string `xml:"currentBootDeviceKey,omitempty"` -} - -func init() { - t["HostBootDeviceInfo"] = reflect.TypeOf((*HostBootDeviceInfo)(nil)).Elem() -} - -type HostCacheConfigurationInfo struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - SwapSize int64 `xml:"swapSize"` -} - -func init() { - t["HostCacheConfigurationInfo"] = reflect.TypeOf((*HostCacheConfigurationInfo)(nil)).Elem() -} - -type HostCacheConfigurationSpec struct { - DynamicData - - Datastore ManagedObjectReference `xml:"datastore"` - SwapSize int64 `xml:"swapSize"` -} - -func init() { - t["HostCacheConfigurationSpec"] = reflect.TypeOf((*HostCacheConfigurationSpec)(nil)).Elem() -} - -type HostCapability struct { - DynamicData - - RecursiveResourcePoolsSupported bool `xml:"recursiveResourcePoolsSupported"` - CpuMemoryResourceConfigurationSupported bool `xml:"cpuMemoryResourceConfigurationSupported"` - RebootSupported bool `xml:"rebootSupported"` - ShutdownSupported bool `xml:"shutdownSupported"` - VmotionSupported bool `xml:"vmotionSupported"` - StandbySupported bool `xml:"standbySupported"` - IpmiSupported *bool `xml:"ipmiSupported"` - MaxSupportedVMs int32 `xml:"maxSupportedVMs,omitempty"` - MaxRunningVMs int32 `xml:"maxRunningVMs,omitempty"` - MaxSupportedVcpus int32 `xml:"maxSupportedVcpus,omitempty"` - MaxRegisteredVMs int32 `xml:"maxRegisteredVMs,omitempty"` - DatastorePrincipalSupported bool `xml:"datastorePrincipalSupported"` - SanSupported bool `xml:"sanSupported"` - NfsSupported bool `xml:"nfsSupported"` - IscsiSupported bool `xml:"iscsiSupported"` - VlanTaggingSupported bool `xml:"vlanTaggingSupported"` - NicTeamingSupported bool `xml:"nicTeamingSupported"` - HighGuestMemSupported bool `xml:"highGuestMemSupported"` - MaintenanceModeSupported bool `xml:"maintenanceModeSupported"` - SuspendedRelocateSupported bool `xml:"suspendedRelocateSupported"` - RestrictedSnapshotRelocateSupported bool `xml:"restrictedSnapshotRelocateSupported"` - PerVmSwapFiles bool `xml:"perVmSwapFiles"` - LocalSwapDatastoreSupported bool `xml:"localSwapDatastoreSupported"` - UnsharedSwapVMotionSupported bool `xml:"unsharedSwapVMotionSupported"` - BackgroundSnapshotsSupported bool `xml:"backgroundSnapshotsSupported"` - PreAssignedPCIUnitNumbersSupported bool `xml:"preAssignedPCIUnitNumbersSupported"` - ScreenshotSupported bool `xml:"screenshotSupported"` - ScaledScreenshotSupported bool `xml:"scaledScreenshotSupported"` - StorageVMotionSupported *bool `xml:"storageVMotionSupported"` - VmotionWithStorageVMotionSupported *bool `xml:"vmotionWithStorageVMotionSupported"` - VmotionAcrossNetworkSupported *bool `xml:"vmotionAcrossNetworkSupported"` - MaxNumDisksSVMotion int32 `xml:"maxNumDisksSVMotion,omitempty"` - HbrNicSelectionSupported *bool `xml:"hbrNicSelectionSupported"` - VrNfcNicSelectionSupported *bool `xml:"vrNfcNicSelectionSupported"` - RecordReplaySupported *bool `xml:"recordReplaySupported"` - FtSupported *bool `xml:"ftSupported"` - ReplayUnsupportedReason string `xml:"replayUnsupportedReason,omitempty"` - ReplayCompatibilityIssues []string `xml:"replayCompatibilityIssues,omitempty"` - SmpFtSupported *bool `xml:"smpFtSupported"` - FtCompatibilityIssues []string `xml:"ftCompatibilityIssues,omitempty"` - SmpFtCompatibilityIssues []string `xml:"smpFtCompatibilityIssues,omitempty"` - MaxVcpusPerFtVm int32 `xml:"maxVcpusPerFtVm,omitempty"` - LoginBySSLThumbprintSupported *bool `xml:"loginBySSLThumbprintSupported"` - CloneFromSnapshotSupported *bool `xml:"cloneFromSnapshotSupported"` - DeltaDiskBackingsSupported *bool `xml:"deltaDiskBackingsSupported"` - PerVMNetworkTrafficShapingSupported *bool `xml:"perVMNetworkTrafficShapingSupported"` - TpmSupported *bool `xml:"tpmSupported"` - SupportedCpuFeature []HostCpuIdInfo `xml:"supportedCpuFeature,omitempty"` - VirtualExecUsageSupported *bool `xml:"virtualExecUsageSupported"` - StorageIORMSupported *bool `xml:"storageIORMSupported"` - VmDirectPathGen2Supported *bool `xml:"vmDirectPathGen2Supported"` - VmDirectPathGen2UnsupportedReason []string `xml:"vmDirectPathGen2UnsupportedReason,omitempty"` - VmDirectPathGen2UnsupportedReasonExtended string `xml:"vmDirectPathGen2UnsupportedReasonExtended,omitempty"` - SupportedVmfsMajorVersion []int32 `xml:"supportedVmfsMajorVersion,omitempty"` - VStorageCapable *bool `xml:"vStorageCapable"` - SnapshotRelayoutSupported *bool `xml:"snapshotRelayoutSupported"` - FirewallIpRulesSupported *bool `xml:"firewallIpRulesSupported"` - ServicePackageInfoSupported *bool `xml:"servicePackageInfoSupported"` - MaxHostRunningVms int32 `xml:"maxHostRunningVms,omitempty"` - MaxHostSupportedVcpus int32 `xml:"maxHostSupportedVcpus,omitempty"` - VmfsDatastoreMountCapable *bool `xml:"vmfsDatastoreMountCapable"` - EightPlusHostVmfsSharedAccessSupported *bool `xml:"eightPlusHostVmfsSharedAccessSupported"` - NestedHVSupported *bool `xml:"nestedHVSupported"` - VPMCSupported *bool `xml:"vPMCSupported"` - InterVMCommunicationThroughVMCISupported *bool `xml:"interVMCommunicationThroughVMCISupported"` - ScheduledHardwareUpgradeSupported *bool `xml:"scheduledHardwareUpgradeSupported"` - FeatureCapabilitiesSupported *bool `xml:"featureCapabilitiesSupported"` - LatencySensitivitySupported *bool `xml:"latencySensitivitySupported"` - StoragePolicySupported *bool `xml:"storagePolicySupported"` - Accel3dSupported *bool `xml:"accel3dSupported"` - ReliableMemoryAware *bool `xml:"reliableMemoryAware"` - MultipleNetworkStackInstanceSupported *bool `xml:"multipleNetworkStackInstanceSupported"` - MessageBusProxySupported *bool `xml:"messageBusProxySupported"` - VsanSupported *bool `xml:"vsanSupported"` - VFlashSupported *bool `xml:"vFlashSupported"` - HostAccessManagerSupported *bool `xml:"hostAccessManagerSupported"` - ProvisioningNicSelectionSupported *bool `xml:"provisioningNicSelectionSupported"` - Nfs41Supported *bool `xml:"nfs41Supported"` - Nfs41Krb5iSupported *bool `xml:"nfs41Krb5iSupported"` - TurnDiskLocatorLedSupported *bool `xml:"turnDiskLocatorLedSupported"` - VirtualVolumeDatastoreSupported *bool `xml:"virtualVolumeDatastoreSupported"` - MarkAsSsdSupported *bool `xml:"markAsSsdSupported"` - MarkAsLocalSupported *bool `xml:"markAsLocalSupported"` - SmartCardAuthenticationSupported *bool `xml:"smartCardAuthenticationSupported"` - CryptoSupported *bool `xml:"cryptoSupported"` - OneKVolumeAPIsSupported *bool `xml:"oneKVolumeAPIsSupported"` - GatewayOnNicSupported *bool `xml:"gatewayOnNicSupported"` - UpitSupported *bool `xml:"upitSupported"` - CpuHwMmuSupported *bool `xml:"cpuHwMmuSupported"` - EncryptedVMotionSupported *bool `xml:"encryptedVMotionSupported"` - EncryptionChangeOnAddRemoveSupported *bool `xml:"encryptionChangeOnAddRemoveSupported"` - EncryptionHotOperationSupported *bool `xml:"encryptionHotOperationSupported"` - EncryptionWithSnapshotsSupported *bool `xml:"encryptionWithSnapshotsSupported"` - EncryptionFaultToleranceSupported *bool `xml:"encryptionFaultToleranceSupported"` - EncryptionMemorySaveSupported *bool `xml:"encryptionMemorySaveSupported"` - EncryptionRDMSupported *bool `xml:"encryptionRDMSupported"` - EncryptionVFlashSupported *bool `xml:"encryptionVFlashSupported"` - EncryptionCBRCSupported *bool `xml:"encryptionCBRCSupported"` - EncryptionHBRSupported *bool `xml:"encryptionHBRSupported"` -} - -func init() { - t["HostCapability"] = reflect.TypeOf((*HostCapability)(nil)).Elem() -} - -type HostCertificateManagerCertificateInfo struct { - DynamicData - - Issuer string `xml:"issuer,omitempty"` - NotBefore *time.Time `xml:"notBefore"` - NotAfter *time.Time `xml:"notAfter"` - Subject string `xml:"subject,omitempty"` - Status string `xml:"status"` -} - -func init() { - t["HostCertificateManagerCertificateInfo"] = reflect.TypeOf((*HostCertificateManagerCertificateInfo)(nil)).Elem() -} - -type HostCloneVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - Spec VslmCloneSpec `xml:"spec"` -} - -func init() { - t["HostCloneVStorageObjectRequestType"] = reflect.TypeOf((*HostCloneVStorageObjectRequestType)(nil)).Elem() -} - -type HostCloneVStorageObject_Task HostCloneVStorageObjectRequestType - -func init() { - t["HostCloneVStorageObject_Task"] = reflect.TypeOf((*HostCloneVStorageObject_Task)(nil)).Elem() -} - -type HostCloneVStorageObject_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type HostCnxFailedAccountFailedEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedAccountFailedEvent"] = reflect.TypeOf((*HostCnxFailedAccountFailedEvent)(nil)).Elem() -} - -type HostCnxFailedAlreadyManagedEvent struct { - HostEvent - - ServerName string `xml:"serverName"` -} - -func init() { - t["HostCnxFailedAlreadyManagedEvent"] = reflect.TypeOf((*HostCnxFailedAlreadyManagedEvent)(nil)).Elem() -} - -type HostCnxFailedBadCcagentEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedBadCcagentEvent"] = reflect.TypeOf((*HostCnxFailedBadCcagentEvent)(nil)).Elem() -} - -type HostCnxFailedBadUsernameEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedBadUsernameEvent"] = reflect.TypeOf((*HostCnxFailedBadUsernameEvent)(nil)).Elem() -} - -type HostCnxFailedBadVersionEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedBadVersionEvent"] = reflect.TypeOf((*HostCnxFailedBadVersionEvent)(nil)).Elem() -} - -type HostCnxFailedCcagentUpgradeEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedCcagentUpgradeEvent"] = reflect.TypeOf((*HostCnxFailedCcagentUpgradeEvent)(nil)).Elem() -} - -type HostCnxFailedEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedEvent"] = reflect.TypeOf((*HostCnxFailedEvent)(nil)).Elem() -} - -type HostCnxFailedNetworkErrorEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedNetworkErrorEvent"] = reflect.TypeOf((*HostCnxFailedNetworkErrorEvent)(nil)).Elem() -} - -type HostCnxFailedNoAccessEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedNoAccessEvent"] = reflect.TypeOf((*HostCnxFailedNoAccessEvent)(nil)).Elem() -} - -type HostCnxFailedNoConnectionEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedNoConnectionEvent"] = reflect.TypeOf((*HostCnxFailedNoConnectionEvent)(nil)).Elem() -} - -type HostCnxFailedNoLicenseEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedNoLicenseEvent"] = reflect.TypeOf((*HostCnxFailedNoLicenseEvent)(nil)).Elem() -} - -type HostCnxFailedNotFoundEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedNotFoundEvent"] = reflect.TypeOf((*HostCnxFailedNotFoundEvent)(nil)).Elem() -} - -type HostCnxFailedTimeoutEvent struct { - HostEvent -} - -func init() { - t["HostCnxFailedTimeoutEvent"] = reflect.TypeOf((*HostCnxFailedTimeoutEvent)(nil)).Elem() -} - -type HostCommunication struct { - RuntimeFault -} - -func init() { - t["HostCommunication"] = reflect.TypeOf((*HostCommunication)(nil)).Elem() -} - -type HostCommunicationFault BaseHostCommunication - -func init() { - t["HostCommunicationFault"] = reflect.TypeOf((*HostCommunicationFault)(nil)).Elem() -} - -type HostComplianceCheckedEvent struct { - HostEvent - - Profile ProfileEventArgument `xml:"profile"` -} - -func init() { - t["HostComplianceCheckedEvent"] = reflect.TypeOf((*HostComplianceCheckedEvent)(nil)).Elem() -} - -type HostCompliantEvent struct { - HostEvent -} - -func init() { - t["HostCompliantEvent"] = reflect.TypeOf((*HostCompliantEvent)(nil)).Elem() -} - -type HostConfigAppliedEvent struct { - HostEvent -} - -func init() { - t["HostConfigAppliedEvent"] = reflect.TypeOf((*HostConfigAppliedEvent)(nil)).Elem() -} - -type HostConfigChange struct { - DynamicData -} - -func init() { - t["HostConfigChange"] = reflect.TypeOf((*HostConfigChange)(nil)).Elem() -} - -type HostConfigFailed struct { - HostConfigFault - - Failure []LocalizedMethodFault `xml:"failure"` -} - -func init() { - t["HostConfigFailed"] = reflect.TypeOf((*HostConfigFailed)(nil)).Elem() -} - -type HostConfigFailedFault HostConfigFailed - -func init() { - t["HostConfigFailedFault"] = reflect.TypeOf((*HostConfigFailedFault)(nil)).Elem() -} - -type HostConfigFault struct { - VimFault -} - -func init() { - t["HostConfigFault"] = reflect.TypeOf((*HostConfigFault)(nil)).Elem() -} - -type HostConfigFaultFault BaseHostConfigFault - -func init() { - t["HostConfigFaultFault"] = reflect.TypeOf((*HostConfigFaultFault)(nil)).Elem() -} - -type HostConfigInfo struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Product AboutInfo `xml:"product"` - DeploymentInfo *HostDeploymentInfo `xml:"deploymentInfo,omitempty"` - HyperThread *HostHyperThreadScheduleInfo `xml:"hyperThread,omitempty"` - ConsoleReservation *ServiceConsoleReservationInfo `xml:"consoleReservation,omitempty"` - VirtualMachineReservation *VirtualMachineMemoryReservationInfo `xml:"virtualMachineReservation,omitempty"` - StorageDevice *HostStorageDeviceInfo `xml:"storageDevice,omitempty"` - MultipathState *HostMultipathStateInfo `xml:"multipathState,omitempty"` - FileSystemVolume *HostFileSystemVolumeInfo `xml:"fileSystemVolume,omitempty"` - SystemFile []string `xml:"systemFile,omitempty"` - Network *HostNetworkInfo `xml:"network,omitempty"` - Vmotion *HostVMotionInfo `xml:"vmotion,omitempty"` - VirtualNicManagerInfo *HostVirtualNicManagerInfo `xml:"virtualNicManagerInfo,omitempty"` - Capabilities *HostNetCapabilities `xml:"capabilities,omitempty"` - DatastoreCapabilities *HostDatastoreSystemCapabilities `xml:"datastoreCapabilities,omitempty"` - OffloadCapabilities *HostNetOffloadCapabilities `xml:"offloadCapabilities,omitempty"` - Service *HostServiceInfo `xml:"service,omitempty"` - Firewall *HostFirewallInfo `xml:"firewall,omitempty"` - AutoStart *HostAutoStartManagerConfig `xml:"autoStart,omitempty"` - ActiveDiagnosticPartition *HostDiagnosticPartition `xml:"activeDiagnosticPartition,omitempty"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` - OptionDef []OptionDef `xml:"optionDef,omitempty"` - DatastorePrincipal string `xml:"datastorePrincipal,omitempty"` - LocalSwapDatastore *ManagedObjectReference `xml:"localSwapDatastore,omitempty"` - SystemSwapConfiguration *HostSystemSwapConfiguration `xml:"systemSwapConfiguration,omitempty"` - SystemResources *HostSystemResourceInfo `xml:"systemResources,omitempty"` - DateTimeInfo *HostDateTimeInfo `xml:"dateTimeInfo,omitempty"` - Flags *HostFlagInfo `xml:"flags,omitempty"` - AdminDisabled *bool `xml:"adminDisabled"` - LockdownMode HostLockdownMode `xml:"lockdownMode,omitempty"` - Ipmi *HostIpmiInfo `xml:"ipmi,omitempty"` - SslThumbprintInfo *HostSslThumbprintInfo `xml:"sslThumbprintInfo,omitempty"` - SslThumbprintData []HostSslThumbprintInfo `xml:"sslThumbprintData,omitempty"` - Certificate []byte `xml:"certificate,omitempty"` - PciPassthruInfo []BaseHostPciPassthruInfo `xml:"pciPassthruInfo,omitempty,typeattr"` - AuthenticationManagerInfo *HostAuthenticationManagerInfo `xml:"authenticationManagerInfo,omitempty"` - FeatureVersion []HostFeatureVersionInfo `xml:"featureVersion,omitempty"` - PowerSystemCapability *PowerSystemCapability `xml:"powerSystemCapability,omitempty"` - PowerSystemInfo *PowerSystemInfo `xml:"powerSystemInfo,omitempty"` - CacheConfigurationInfo []HostCacheConfigurationInfo `xml:"cacheConfigurationInfo,omitempty"` - WakeOnLanCapable *bool `xml:"wakeOnLanCapable"` - FeatureCapability []HostFeatureCapability `xml:"featureCapability,omitempty"` - MaskedFeatureCapability []HostFeatureCapability `xml:"maskedFeatureCapability,omitempty"` - VFlashConfigInfo *HostVFlashManagerVFlashConfigInfo `xml:"vFlashConfigInfo,omitempty"` - VsanHostConfig *VsanHostConfigInfo `xml:"vsanHostConfig,omitempty"` - DomainList []string `xml:"domainList,omitempty"` - ScriptCheckSum []byte `xml:"scriptCheckSum,omitempty"` - HostConfigCheckSum []byte `xml:"hostConfigCheckSum,omitempty"` - GraphicsInfo []HostGraphicsInfo `xml:"graphicsInfo,omitempty"` - SharedPassthruGpuTypes []string `xml:"sharedPassthruGpuTypes,omitempty"` - GraphicsConfig *HostGraphicsConfig `xml:"graphicsConfig,omitempty"` - IoFilterInfo []HostIoFilterInfo `xml:"ioFilterInfo,omitempty"` - SriovDevicePool []BaseHostSriovDevicePoolInfo `xml:"sriovDevicePool,omitempty,typeattr"` -} - -func init() { - t["HostConfigInfo"] = reflect.TypeOf((*HostConfigInfo)(nil)).Elem() -} - -type HostConfigManager struct { - DynamicData - - CpuScheduler *ManagedObjectReference `xml:"cpuScheduler,omitempty"` - DatastoreSystem *ManagedObjectReference `xml:"datastoreSystem,omitempty"` - MemoryManager *ManagedObjectReference `xml:"memoryManager,omitempty"` - StorageSystem *ManagedObjectReference `xml:"storageSystem,omitempty"` - NetworkSystem *ManagedObjectReference `xml:"networkSystem,omitempty"` - VmotionSystem *ManagedObjectReference `xml:"vmotionSystem,omitempty"` - VirtualNicManager *ManagedObjectReference `xml:"virtualNicManager,omitempty"` - ServiceSystem *ManagedObjectReference `xml:"serviceSystem,omitempty"` - FirewallSystem *ManagedObjectReference `xml:"firewallSystem,omitempty"` - AdvancedOption *ManagedObjectReference `xml:"advancedOption,omitempty"` - DiagnosticSystem *ManagedObjectReference `xml:"diagnosticSystem,omitempty"` - AutoStartManager *ManagedObjectReference `xml:"autoStartManager,omitempty"` - SnmpSystem *ManagedObjectReference `xml:"snmpSystem,omitempty"` - DateTimeSystem *ManagedObjectReference `xml:"dateTimeSystem,omitempty"` - PatchManager *ManagedObjectReference `xml:"patchManager,omitempty"` - ImageConfigManager *ManagedObjectReference `xml:"imageConfigManager,omitempty"` - BootDeviceSystem *ManagedObjectReference `xml:"bootDeviceSystem,omitempty"` - FirmwareSystem *ManagedObjectReference `xml:"firmwareSystem,omitempty"` - HealthStatusSystem *ManagedObjectReference `xml:"healthStatusSystem,omitempty"` - PciPassthruSystem *ManagedObjectReference `xml:"pciPassthruSystem,omitempty"` - LicenseManager *ManagedObjectReference `xml:"licenseManager,omitempty"` - KernelModuleSystem *ManagedObjectReference `xml:"kernelModuleSystem,omitempty"` - AuthenticationManager *ManagedObjectReference `xml:"authenticationManager,omitempty"` - PowerSystem *ManagedObjectReference `xml:"powerSystem,omitempty"` - CacheConfigurationManager *ManagedObjectReference `xml:"cacheConfigurationManager,omitempty"` - EsxAgentHostManager *ManagedObjectReference `xml:"esxAgentHostManager,omitempty"` - IscsiManager *ManagedObjectReference `xml:"iscsiManager,omitempty"` - VFlashManager *ManagedObjectReference `xml:"vFlashManager,omitempty"` - VsanSystem *ManagedObjectReference `xml:"vsanSystem,omitempty"` - MessageBusProxy *ManagedObjectReference `xml:"messageBusProxy,omitempty"` - UserDirectory *ManagedObjectReference `xml:"userDirectory,omitempty"` - AccountManager *ManagedObjectReference `xml:"accountManager,omitempty"` - HostAccessManager *ManagedObjectReference `xml:"hostAccessManager,omitempty"` - GraphicsManager *ManagedObjectReference `xml:"graphicsManager,omitempty"` - VsanInternalSystem *ManagedObjectReference `xml:"vsanInternalSystem,omitempty"` - CertificateManager *ManagedObjectReference `xml:"certificateManager,omitempty"` - CryptoManager *ManagedObjectReference `xml:"cryptoManager,omitempty"` -} - -func init() { - t["HostConfigManager"] = reflect.TypeOf((*HostConfigManager)(nil)).Elem() -} - -type HostConfigSpec struct { - DynamicData - - NasDatastore []HostNasVolumeConfig `xml:"nasDatastore,omitempty"` - Network *HostNetworkConfig `xml:"network,omitempty"` - NicTypeSelection []HostVirtualNicManagerNicTypeSelection `xml:"nicTypeSelection,omitempty"` - Service []HostServiceConfig `xml:"service,omitempty"` - Firewall *HostFirewallConfig `xml:"firewall,omitempty"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` - DatastorePrincipal string `xml:"datastorePrincipal,omitempty"` - DatastorePrincipalPasswd string `xml:"datastorePrincipalPasswd,omitempty"` - Datetime *HostDateTimeConfig `xml:"datetime,omitempty"` - StorageDevice *HostStorageDeviceInfo `xml:"storageDevice,omitempty"` - License *HostLicenseSpec `xml:"license,omitempty"` - Security *HostSecuritySpec `xml:"security,omitempty"` - UserAccount []BaseHostAccountSpec `xml:"userAccount,omitempty,typeattr"` - UsergroupAccount []BaseHostAccountSpec `xml:"usergroupAccount,omitempty,typeattr"` - Memory *HostMemorySpec `xml:"memory,omitempty"` - ActiveDirectory []HostActiveDirectory `xml:"activeDirectory,omitempty"` - GenericConfig []KeyAnyValue `xml:"genericConfig,omitempty"` - GraphicsConfig *HostGraphicsConfig `xml:"graphicsConfig,omitempty"` -} - -func init() { - t["HostConfigSpec"] = reflect.TypeOf((*HostConfigSpec)(nil)).Elem() -} - -type HostConfigSummary struct { - DynamicData - - Name string `xml:"name"` - Port int32 `xml:"port"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` - Product *AboutInfo `xml:"product,omitempty"` - VmotionEnabled bool `xml:"vmotionEnabled"` - FaultToleranceEnabled *bool `xml:"faultToleranceEnabled"` - FeatureVersion []HostFeatureVersionInfo `xml:"featureVersion,omitempty"` - AgentVmDatastore *ManagedObjectReference `xml:"agentVmDatastore,omitempty"` - AgentVmNetwork *ManagedObjectReference `xml:"agentVmNetwork,omitempty"` -} - -func init() { - t["HostConfigSummary"] = reflect.TypeOf((*HostConfigSummary)(nil)).Elem() -} - -type HostConfigVFlashCache HostConfigVFlashCacheRequestType - -func init() { - t["HostConfigVFlashCache"] = reflect.TypeOf((*HostConfigVFlashCache)(nil)).Elem() -} - -type HostConfigVFlashCacheRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostVFlashManagerVFlashCacheConfigSpec `xml:"spec"` -} - -func init() { - t["HostConfigVFlashCacheRequestType"] = reflect.TypeOf((*HostConfigVFlashCacheRequestType)(nil)).Elem() -} - -type HostConfigVFlashCacheResponse struct { -} - -type HostConfigureVFlashResource HostConfigureVFlashResourceRequestType - -func init() { - t["HostConfigureVFlashResource"] = reflect.TypeOf((*HostConfigureVFlashResource)(nil)).Elem() -} - -type HostConfigureVFlashResourceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostVFlashManagerVFlashResourceConfigSpec `xml:"spec"` -} - -func init() { - t["HostConfigureVFlashResourceRequestType"] = reflect.TypeOf((*HostConfigureVFlashResourceRequestType)(nil)).Elem() -} - -type HostConfigureVFlashResourceResponse struct { -} - -type HostConnectFault struct { - VimFault -} - -func init() { - t["HostConnectFault"] = reflect.TypeOf((*HostConnectFault)(nil)).Elem() -} - -type HostConnectFaultFault BaseHostConnectFault - -func init() { - t["HostConnectFaultFault"] = reflect.TypeOf((*HostConnectFaultFault)(nil)).Elem() -} - -type HostConnectInfo struct { - DynamicData - - ServerIp string `xml:"serverIp,omitempty"` - InDasCluster *bool `xml:"inDasCluster"` - Host HostListSummary `xml:"host"` - Vm []VirtualMachineSummary `xml:"vm,omitempty"` - VimAccountNameRequired *bool `xml:"vimAccountNameRequired"` - ClusterSupported *bool `xml:"clusterSupported"` - Network []BaseHostConnectInfoNetworkInfo `xml:"network,omitempty,typeattr"` - Datastore []BaseHostDatastoreConnectInfo `xml:"datastore,omitempty,typeattr"` - License *HostLicenseConnectInfo `xml:"license,omitempty"` - Capability *HostCapability `xml:"capability,omitempty"` -} - -func init() { - t["HostConnectInfo"] = reflect.TypeOf((*HostConnectInfo)(nil)).Elem() -} - -type HostConnectInfoNetworkInfo struct { - DynamicData - - Summary BaseNetworkSummary `xml:"summary,typeattr"` -} - -func init() { - t["HostConnectInfoNetworkInfo"] = reflect.TypeOf((*HostConnectInfoNetworkInfo)(nil)).Elem() -} - -type HostConnectSpec struct { - DynamicData - - HostName string `xml:"hostName,omitempty"` - Port int32 `xml:"port,omitempty"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` - UserName string `xml:"userName,omitempty"` - Password string `xml:"password,omitempty"` - VmFolder *ManagedObjectReference `xml:"vmFolder,omitempty"` - Force bool `xml:"force"` - VimAccountName string `xml:"vimAccountName,omitempty"` - VimAccountPassword string `xml:"vimAccountPassword,omitempty"` - ManagementIp string `xml:"managementIp,omitempty"` - LockdownMode HostLockdownMode `xml:"lockdownMode,omitempty"` - HostGateway *HostGatewaySpec `xml:"hostGateway,omitempty"` -} - -func init() { - t["HostConnectSpec"] = reflect.TypeOf((*HostConnectSpec)(nil)).Elem() -} - -type HostConnectedEvent struct { - HostEvent -} - -func init() { - t["HostConnectedEvent"] = reflect.TypeOf((*HostConnectedEvent)(nil)).Elem() -} - -type HostConnectionLostEvent struct { - HostEvent -} - -func init() { - t["HostConnectionLostEvent"] = reflect.TypeOf((*HostConnectionLostEvent)(nil)).Elem() -} - -type HostCpuIdInfo struct { - DynamicData - - Level int32 `xml:"level"` - Vendor string `xml:"vendor,omitempty"` - Eax string `xml:"eax,omitempty"` - Ebx string `xml:"ebx,omitempty"` - Ecx string `xml:"ecx,omitempty"` - Edx string `xml:"edx,omitempty"` -} - -func init() { - t["HostCpuIdInfo"] = reflect.TypeOf((*HostCpuIdInfo)(nil)).Elem() -} - -type HostCpuInfo struct { - DynamicData - - NumCpuPackages int16 `xml:"numCpuPackages"` - NumCpuCores int16 `xml:"numCpuCores"` - NumCpuThreads int16 `xml:"numCpuThreads"` - Hz int64 `xml:"hz"` -} - -func init() { - t["HostCpuInfo"] = reflect.TypeOf((*HostCpuInfo)(nil)).Elem() -} - -type HostCpuPackage struct { - DynamicData - - Index int16 `xml:"index"` - Vendor string `xml:"vendor"` - Hz int64 `xml:"hz"` - BusHz int64 `xml:"busHz"` - Description string `xml:"description"` - ThreadId []int16 `xml:"threadId"` - CpuFeature []HostCpuIdInfo `xml:"cpuFeature,omitempty"` -} - -func init() { - t["HostCpuPackage"] = reflect.TypeOf((*HostCpuPackage)(nil)).Elem() -} - -type HostCpuPowerManagementInfo struct { - DynamicData - - CurrentPolicy string `xml:"currentPolicy,omitempty"` - HardwareSupport string `xml:"hardwareSupport,omitempty"` -} - -func init() { - t["HostCpuPowerManagementInfo"] = reflect.TypeOf((*HostCpuPowerManagementInfo)(nil)).Elem() -} - -type HostCreateDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec VslmCreateSpec `xml:"spec"` -} - -func init() { - t["HostCreateDiskRequestType"] = reflect.TypeOf((*HostCreateDiskRequestType)(nil)).Elem() -} - -type HostCreateDisk_Task HostCreateDiskRequestType - -func init() { - t["HostCreateDisk_Task"] = reflect.TypeOf((*HostCreateDisk_Task)(nil)).Elem() -} - -type HostCreateDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type HostDasDisabledEvent struct { - HostEvent -} - -func init() { - t["HostDasDisabledEvent"] = reflect.TypeOf((*HostDasDisabledEvent)(nil)).Elem() -} - -type HostDasDisablingEvent struct { - HostEvent -} - -func init() { - t["HostDasDisablingEvent"] = reflect.TypeOf((*HostDasDisablingEvent)(nil)).Elem() -} - -type HostDasEnabledEvent struct { - HostEvent -} - -func init() { - t["HostDasEnabledEvent"] = reflect.TypeOf((*HostDasEnabledEvent)(nil)).Elem() -} - -type HostDasEnablingEvent struct { - HostEvent -} - -func init() { - t["HostDasEnablingEvent"] = reflect.TypeOf((*HostDasEnablingEvent)(nil)).Elem() -} - -type HostDasErrorEvent struct { - HostEvent - - Message string `xml:"message,omitempty"` - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["HostDasErrorEvent"] = reflect.TypeOf((*HostDasErrorEvent)(nil)).Elem() -} - -type HostDasEvent struct { - HostEvent -} - -func init() { - t["HostDasEvent"] = reflect.TypeOf((*HostDasEvent)(nil)).Elem() -} - -type HostDasOkEvent struct { - HostEvent -} - -func init() { - t["HostDasOkEvent"] = reflect.TypeOf((*HostDasOkEvent)(nil)).Elem() -} - -type HostDatastoreBrowserSearchResults struct { - DynamicData - - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` - FolderPath string `xml:"folderPath,omitempty"` - File []BaseFileInfo `xml:"file,omitempty,typeattr"` -} - -func init() { - t["HostDatastoreBrowserSearchResults"] = reflect.TypeOf((*HostDatastoreBrowserSearchResults)(nil)).Elem() -} - -type HostDatastoreBrowserSearchSpec struct { - DynamicData - - Query []BaseFileQuery `xml:"query,omitempty,typeattr"` - Details *FileQueryFlags `xml:"details,omitempty"` - SearchCaseInsensitive *bool `xml:"searchCaseInsensitive"` - MatchPattern []string `xml:"matchPattern,omitempty"` - SortFoldersFirst *bool `xml:"sortFoldersFirst"` -} - -func init() { - t["HostDatastoreBrowserSearchSpec"] = reflect.TypeOf((*HostDatastoreBrowserSearchSpec)(nil)).Elem() -} - -type HostDatastoreConnectInfo struct { - DynamicData - - Summary DatastoreSummary `xml:"summary"` -} - -func init() { - t["HostDatastoreConnectInfo"] = reflect.TypeOf((*HostDatastoreConnectInfo)(nil)).Elem() -} - -type HostDatastoreExistsConnectInfo struct { - HostDatastoreConnectInfo - - NewDatastoreName string `xml:"newDatastoreName"` -} - -func init() { - t["HostDatastoreExistsConnectInfo"] = reflect.TypeOf((*HostDatastoreExistsConnectInfo)(nil)).Elem() -} - -type HostDatastoreNameConflictConnectInfo struct { - HostDatastoreConnectInfo - - NewDatastoreName string `xml:"newDatastoreName"` -} - -func init() { - t["HostDatastoreNameConflictConnectInfo"] = reflect.TypeOf((*HostDatastoreNameConflictConnectInfo)(nil)).Elem() -} - -type HostDatastoreSystemCapabilities struct { - DynamicData - - NfsMountCreationRequired bool `xml:"nfsMountCreationRequired"` - NfsMountCreationSupported bool `xml:"nfsMountCreationSupported"` - LocalDatastoreSupported bool `xml:"localDatastoreSupported"` - VmfsExtentExpansionSupported *bool `xml:"vmfsExtentExpansionSupported"` -} - -func init() { - t["HostDatastoreSystemCapabilities"] = reflect.TypeOf((*HostDatastoreSystemCapabilities)(nil)).Elem() -} - -type HostDatastoreSystemDatastoreResult struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HostDatastoreSystemDatastoreResult"] = reflect.TypeOf((*HostDatastoreSystemDatastoreResult)(nil)).Elem() -} - -type HostDatastoreSystemVvolDatastoreSpec struct { - DynamicData - - Name string `xml:"name"` - ScId string `xml:"scId"` -} - -func init() { - t["HostDatastoreSystemVvolDatastoreSpec"] = reflect.TypeOf((*HostDatastoreSystemVvolDatastoreSpec)(nil)).Elem() -} - -type HostDateTimeConfig struct { - DynamicData - - TimeZone string `xml:"timeZone,omitempty"` - NtpConfig *HostNtpConfig `xml:"ntpConfig,omitempty"` -} - -func init() { - t["HostDateTimeConfig"] = reflect.TypeOf((*HostDateTimeConfig)(nil)).Elem() -} - -type HostDateTimeInfo struct { - DynamicData - - TimeZone HostDateTimeSystemTimeZone `xml:"timeZone"` - NtpConfig *HostNtpConfig `xml:"ntpConfig,omitempty"` -} - -func init() { - t["HostDateTimeInfo"] = reflect.TypeOf((*HostDateTimeInfo)(nil)).Elem() -} - -type HostDateTimeSystemTimeZone struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name"` - Description string `xml:"description"` - GmtOffset int32 `xml:"gmtOffset"` -} - -func init() { - t["HostDateTimeSystemTimeZone"] = reflect.TypeOf((*HostDateTimeSystemTimeZone)(nil)).Elem() -} - -type HostDeleteVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["HostDeleteVStorageObjectRequestType"] = reflect.TypeOf((*HostDeleteVStorageObjectRequestType)(nil)).Elem() -} - -type HostDeleteVStorageObject_Task HostDeleteVStorageObjectRequestType - -func init() { - t["HostDeleteVStorageObject_Task"] = reflect.TypeOf((*HostDeleteVStorageObject_Task)(nil)).Elem() -} - -type HostDeleteVStorageObject_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type HostDeploymentInfo struct { - DynamicData - - BootedFromStatelessCache *bool `xml:"bootedFromStatelessCache"` -} - -func init() { - t["HostDeploymentInfo"] = reflect.TypeOf((*HostDeploymentInfo)(nil)).Elem() -} - -type HostDevice struct { - DynamicData - - DeviceName string `xml:"deviceName"` - DeviceType string `xml:"deviceType"` -} - -func init() { - t["HostDevice"] = reflect.TypeOf((*HostDevice)(nil)).Elem() -} - -type HostDhcpService struct { - DynamicData - - Key string `xml:"key"` - Spec HostDhcpServiceSpec `xml:"spec"` -} - -func init() { - t["HostDhcpService"] = reflect.TypeOf((*HostDhcpService)(nil)).Elem() -} - -type HostDhcpServiceConfig struct { - DynamicData - - ChangeOperation string `xml:"changeOperation,omitempty"` - Key string `xml:"key"` - Spec HostDhcpServiceSpec `xml:"spec"` -} - -func init() { - t["HostDhcpServiceConfig"] = reflect.TypeOf((*HostDhcpServiceConfig)(nil)).Elem() -} - -type HostDhcpServiceSpec struct { - DynamicData - - VirtualSwitch string `xml:"virtualSwitch"` - DefaultLeaseDuration int32 `xml:"defaultLeaseDuration"` - LeaseBeginIp string `xml:"leaseBeginIp"` - LeaseEndIp string `xml:"leaseEndIp"` - MaxLeaseDuration int32 `xml:"maxLeaseDuration"` - UnlimitedLease bool `xml:"unlimitedLease"` - IpSubnetAddr string `xml:"ipSubnetAddr"` - IpSubnetMask string `xml:"ipSubnetMask"` -} - -func init() { - t["HostDhcpServiceSpec"] = reflect.TypeOf((*HostDhcpServiceSpec)(nil)).Elem() -} - -type HostDiagnosticPartition struct { - DynamicData - - StorageType string `xml:"storageType"` - DiagnosticType string `xml:"diagnosticType"` - Slots int32 `xml:"slots"` - Id HostScsiDiskPartition `xml:"id"` -} - -func init() { - t["HostDiagnosticPartition"] = reflect.TypeOf((*HostDiagnosticPartition)(nil)).Elem() -} - -type HostDiagnosticPartitionCreateDescription struct { - DynamicData - - Layout HostDiskPartitionLayout `xml:"layout"` - DiskUuid string `xml:"diskUuid"` - Spec HostDiagnosticPartitionCreateSpec `xml:"spec"` -} - -func init() { - t["HostDiagnosticPartitionCreateDescription"] = reflect.TypeOf((*HostDiagnosticPartitionCreateDescription)(nil)).Elem() -} - -type HostDiagnosticPartitionCreateOption struct { - DynamicData - - StorageType string `xml:"storageType"` - DiagnosticType string `xml:"diagnosticType"` - Disk HostScsiDisk `xml:"disk"` -} - -func init() { - t["HostDiagnosticPartitionCreateOption"] = reflect.TypeOf((*HostDiagnosticPartitionCreateOption)(nil)).Elem() -} - -type HostDiagnosticPartitionCreateSpec struct { - DynamicData - - StorageType string `xml:"storageType"` - DiagnosticType string `xml:"diagnosticType"` - Id HostScsiDiskPartition `xml:"id"` - Partition HostDiskPartitionSpec `xml:"partition"` - Active *bool `xml:"active"` -} - -func init() { - t["HostDiagnosticPartitionCreateSpec"] = reflect.TypeOf((*HostDiagnosticPartitionCreateSpec)(nil)).Elem() -} - -type HostDigestInfo struct { - DynamicData - - DigestMethod string `xml:"digestMethod"` - DigestValue []byte `xml:"digestValue"` - ObjectName string `xml:"objectName,omitempty"` -} - -func init() { - t["HostDigestInfo"] = reflect.TypeOf((*HostDigestInfo)(nil)).Elem() -} - -type HostDirectoryStoreInfo struct { - HostAuthenticationStoreInfo -} - -func init() { - t["HostDirectoryStoreInfo"] = reflect.TypeOf((*HostDirectoryStoreInfo)(nil)).Elem() -} - -type HostDisconnectedEvent struct { - HostEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["HostDisconnectedEvent"] = reflect.TypeOf((*HostDisconnectedEvent)(nil)).Elem() -} - -type HostDiskConfigurationResult struct { - DynamicData - - DevicePath string `xml:"devicePath,omitempty"` - Success *bool `xml:"success"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HostDiskConfigurationResult"] = reflect.TypeOf((*HostDiskConfigurationResult)(nil)).Elem() -} - -type HostDiskDimensions struct { - DynamicData -} - -func init() { - t["HostDiskDimensions"] = reflect.TypeOf((*HostDiskDimensions)(nil)).Elem() -} - -type HostDiskDimensionsChs struct { - DynamicData - - Cylinder int64 `xml:"cylinder"` - Head int32 `xml:"head"` - Sector int32 `xml:"sector"` -} - -func init() { - t["HostDiskDimensionsChs"] = reflect.TypeOf((*HostDiskDimensionsChs)(nil)).Elem() -} - -type HostDiskDimensionsLba struct { - DynamicData - - BlockSize int32 `xml:"blockSize"` - Block int64 `xml:"block"` -} - -func init() { - t["HostDiskDimensionsLba"] = reflect.TypeOf((*HostDiskDimensionsLba)(nil)).Elem() -} - -type HostDiskMappingInfo struct { - DynamicData - - PhysicalPartition *HostDiskMappingPartitionInfo `xml:"physicalPartition,omitempty"` - Name string `xml:"name"` - Exclusive *bool `xml:"exclusive"` -} - -func init() { - t["HostDiskMappingInfo"] = reflect.TypeOf((*HostDiskMappingInfo)(nil)).Elem() -} - -type HostDiskMappingOption struct { - DynamicData - - PhysicalPartition []HostDiskMappingPartitionOption `xml:"physicalPartition,omitempty"` - Name string `xml:"name"` -} - -func init() { - t["HostDiskMappingOption"] = reflect.TypeOf((*HostDiskMappingOption)(nil)).Elem() -} - -type HostDiskMappingPartitionInfo struct { - DynamicData - - Name string `xml:"name"` - FileSystem string `xml:"fileSystem"` - CapacityInKb int64 `xml:"capacityInKb"` -} - -func init() { - t["HostDiskMappingPartitionInfo"] = reflect.TypeOf((*HostDiskMappingPartitionInfo)(nil)).Elem() -} - -type HostDiskMappingPartitionOption struct { - DynamicData - - Name string `xml:"name"` - FileSystem string `xml:"fileSystem"` - CapacityInKb int64 `xml:"capacityInKb"` -} - -func init() { - t["HostDiskMappingPartitionOption"] = reflect.TypeOf((*HostDiskMappingPartitionOption)(nil)).Elem() -} - -type HostDiskPartitionAttributes struct { - DynamicData - - Partition int32 `xml:"partition"` - StartSector int64 `xml:"startSector"` - EndSector int64 `xml:"endSector"` - Type string `xml:"type"` - Guid string `xml:"guid,omitempty"` - Logical bool `xml:"logical"` - Attributes byte `xml:"attributes"` - PartitionAlignment int64 `xml:"partitionAlignment,omitempty"` -} - -func init() { - t["HostDiskPartitionAttributes"] = reflect.TypeOf((*HostDiskPartitionAttributes)(nil)).Elem() -} - -type HostDiskPartitionBlockRange struct { - DynamicData - - Partition int32 `xml:"partition,omitempty"` - Type string `xml:"type"` - Start HostDiskDimensionsLba `xml:"start"` - End HostDiskDimensionsLba `xml:"end"` -} - -func init() { - t["HostDiskPartitionBlockRange"] = reflect.TypeOf((*HostDiskPartitionBlockRange)(nil)).Elem() -} - -type HostDiskPartitionInfo struct { - DynamicData - - DeviceName string `xml:"deviceName"` - Spec HostDiskPartitionSpec `xml:"spec"` - Layout HostDiskPartitionLayout `xml:"layout"` -} - -func init() { - t["HostDiskPartitionInfo"] = reflect.TypeOf((*HostDiskPartitionInfo)(nil)).Elem() -} - -type HostDiskPartitionLayout struct { - DynamicData - - Total *HostDiskDimensionsLba `xml:"total,omitempty"` - Partition []HostDiskPartitionBlockRange `xml:"partition"` -} - -func init() { - t["HostDiskPartitionLayout"] = reflect.TypeOf((*HostDiskPartitionLayout)(nil)).Elem() -} - -type HostDiskPartitionSpec struct { - DynamicData - - PartitionFormat string `xml:"partitionFormat,omitempty"` - Chs *HostDiskDimensionsChs `xml:"chs,omitempty"` - TotalSectors int64 `xml:"totalSectors,omitempty"` - Partition []HostDiskPartitionAttributes `xml:"partition,omitempty"` -} - -func init() { - t["HostDiskPartitionSpec"] = reflect.TypeOf((*HostDiskPartitionSpec)(nil)).Elem() -} - -type HostDnsConfig struct { - DynamicData - - Dhcp bool `xml:"dhcp"` - VirtualNicDevice string `xml:"virtualNicDevice,omitempty"` - HostName string `xml:"hostName"` - DomainName string `xml:"domainName"` - Address []string `xml:"address,omitempty"` - SearchDomain []string `xml:"searchDomain,omitempty"` -} - -func init() { - t["HostDnsConfig"] = reflect.TypeOf((*HostDnsConfig)(nil)).Elem() -} - -type HostDnsConfigSpec struct { - HostDnsConfig - - VirtualNicConnection *HostVirtualNicConnection `xml:"virtualNicConnection,omitempty"` -} - -func init() { - t["HostDnsConfigSpec"] = reflect.TypeOf((*HostDnsConfigSpec)(nil)).Elem() -} - -type HostEnableAdminFailedEvent struct { - HostEvent - - Permissions []Permission `xml:"permissions"` -} - -func init() { - t["HostEnableAdminFailedEvent"] = reflect.TypeOf((*HostEnableAdminFailedEvent)(nil)).Elem() -} - -type HostEsxAgentHostManagerConfigInfo struct { - DynamicData - - AgentVmDatastore *ManagedObjectReference `xml:"agentVmDatastore,omitempty"` - AgentVmNetwork *ManagedObjectReference `xml:"agentVmNetwork,omitempty"` -} - -func init() { - t["HostEsxAgentHostManagerConfigInfo"] = reflect.TypeOf((*HostEsxAgentHostManagerConfigInfo)(nil)).Elem() -} - -type HostEvent struct { - Event -} - -func init() { - t["HostEvent"] = reflect.TypeOf((*HostEvent)(nil)).Elem() -} - -type HostEventArgument struct { - EntityEventArgument - - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["HostEventArgument"] = reflect.TypeOf((*HostEventArgument)(nil)).Elem() -} - -type HostExtendDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - NewCapacityInMB int64 `xml:"newCapacityInMB"` -} - -func init() { - t["HostExtendDiskRequestType"] = reflect.TypeOf((*HostExtendDiskRequestType)(nil)).Elem() -} - -type HostExtendDisk_Task HostExtendDiskRequestType - -func init() { - t["HostExtendDisk_Task"] = reflect.TypeOf((*HostExtendDisk_Task)(nil)).Elem() -} - -type HostExtendDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type HostExtraNetworksEvent struct { - HostDasEvent - - Ips string `xml:"ips,omitempty"` -} - -func init() { - t["HostExtraNetworksEvent"] = reflect.TypeOf((*HostExtraNetworksEvent)(nil)).Elem() -} - -type HostFaultToleranceManagerComponentHealthInfo struct { - DynamicData - - IsStorageHealthy bool `xml:"isStorageHealthy"` - IsNetworkHealthy bool `xml:"isNetworkHealthy"` -} - -func init() { - t["HostFaultToleranceManagerComponentHealthInfo"] = reflect.TypeOf((*HostFaultToleranceManagerComponentHealthInfo)(nil)).Elem() -} - -type HostFeatureCapability struct { - DynamicData - - Key string `xml:"key"` - FeatureName string `xml:"featureName"` - Value string `xml:"value"` -} - -func init() { - t["HostFeatureCapability"] = reflect.TypeOf((*HostFeatureCapability)(nil)).Elem() -} - -type HostFeatureMask struct { - DynamicData - - Key string `xml:"key"` - FeatureName string `xml:"featureName"` - Value string `xml:"value"` -} - -func init() { - t["HostFeatureMask"] = reflect.TypeOf((*HostFeatureMask)(nil)).Elem() -} - -type HostFeatureVersionInfo struct { - DynamicData - - Key string `xml:"key"` - Value string `xml:"value"` -} - -func init() { - t["HostFeatureVersionInfo"] = reflect.TypeOf((*HostFeatureVersionInfo)(nil)).Elem() -} - -type HostFibreChannelHba struct { - HostHostBusAdapter - - PortWorldWideName int64 `xml:"portWorldWideName"` - NodeWorldWideName int64 `xml:"nodeWorldWideName"` - PortType FibreChannelPortType `xml:"portType"` - Speed int64 `xml:"speed"` -} - -func init() { - t["HostFibreChannelHba"] = reflect.TypeOf((*HostFibreChannelHba)(nil)).Elem() -} - -type HostFibreChannelOverEthernetHba struct { - HostFibreChannelHba - - UnderlyingNic string `xml:"underlyingNic"` - LinkInfo HostFibreChannelOverEthernetHbaLinkInfo `xml:"linkInfo"` - IsSoftwareFcoe bool `xml:"isSoftwareFcoe"` - MarkedForRemoval bool `xml:"markedForRemoval"` -} - -func init() { - t["HostFibreChannelOverEthernetHba"] = reflect.TypeOf((*HostFibreChannelOverEthernetHba)(nil)).Elem() -} - -type HostFibreChannelOverEthernetHbaLinkInfo struct { - DynamicData - - VnportMac string `xml:"vnportMac"` - FcfMac string `xml:"fcfMac"` - VlanId int32 `xml:"vlanId"` -} - -func init() { - t["HostFibreChannelOverEthernetHbaLinkInfo"] = reflect.TypeOf((*HostFibreChannelOverEthernetHbaLinkInfo)(nil)).Elem() -} - -type HostFibreChannelOverEthernetTargetTransport struct { - HostFibreChannelTargetTransport - - VnportMac string `xml:"vnportMac"` - FcfMac string `xml:"fcfMac"` - VlanId int32 `xml:"vlanId"` -} - -func init() { - t["HostFibreChannelOverEthernetTargetTransport"] = reflect.TypeOf((*HostFibreChannelOverEthernetTargetTransport)(nil)).Elem() -} - -type HostFibreChannelTargetTransport struct { - HostTargetTransport - - PortWorldWideName int64 `xml:"portWorldWideName"` - NodeWorldWideName int64 `xml:"nodeWorldWideName"` -} - -func init() { - t["HostFibreChannelTargetTransport"] = reflect.TypeOf((*HostFibreChannelTargetTransport)(nil)).Elem() -} - -type HostFileAccess struct { - DynamicData - - Who string `xml:"who"` - What string `xml:"what"` -} - -func init() { - t["HostFileAccess"] = reflect.TypeOf((*HostFileAccess)(nil)).Elem() -} - -type HostFileSystemMountInfo struct { - DynamicData - - MountInfo HostMountInfo `xml:"mountInfo"` - Volume BaseHostFileSystemVolume `xml:"volume,typeattr"` - VStorageSupport string `xml:"vStorageSupport,omitempty"` -} - -func init() { - t["HostFileSystemMountInfo"] = reflect.TypeOf((*HostFileSystemMountInfo)(nil)).Elem() -} - -type HostFileSystemVolume struct { - DynamicData - - Type string `xml:"type"` - Name string `xml:"name"` - Capacity int64 `xml:"capacity"` -} - -func init() { - t["HostFileSystemVolume"] = reflect.TypeOf((*HostFileSystemVolume)(nil)).Elem() -} - -type HostFileSystemVolumeInfo struct { - DynamicData - - VolumeTypeList []string `xml:"volumeTypeList,omitempty"` - MountInfo []HostFileSystemMountInfo `xml:"mountInfo,omitempty"` -} - -func init() { - t["HostFileSystemVolumeInfo"] = reflect.TypeOf((*HostFileSystemVolumeInfo)(nil)).Elem() -} - -type HostFirewallConfig struct { - DynamicData - - Rule []HostFirewallConfigRuleSetConfig `xml:"rule,omitempty"` - DefaultBlockingPolicy HostFirewallDefaultPolicy `xml:"defaultBlockingPolicy"` -} - -func init() { - t["HostFirewallConfig"] = reflect.TypeOf((*HostFirewallConfig)(nil)).Elem() -} - -type HostFirewallConfigRuleSetConfig struct { - DynamicData - - RulesetId string `xml:"rulesetId"` - Enabled bool `xml:"enabled"` - AllowedHosts *HostFirewallRulesetIpList `xml:"allowedHosts,omitempty"` -} - -func init() { - t["HostFirewallConfigRuleSetConfig"] = reflect.TypeOf((*HostFirewallConfigRuleSetConfig)(nil)).Elem() -} - -type HostFirewallDefaultPolicy struct { - DynamicData - - IncomingBlocked *bool `xml:"incomingBlocked"` - OutgoingBlocked *bool `xml:"outgoingBlocked"` -} - -func init() { - t["HostFirewallDefaultPolicy"] = reflect.TypeOf((*HostFirewallDefaultPolicy)(nil)).Elem() -} - -type HostFirewallInfo struct { - DynamicData - - DefaultPolicy HostFirewallDefaultPolicy `xml:"defaultPolicy"` - Ruleset []HostFirewallRuleset `xml:"ruleset,omitempty"` -} - -func init() { - t["HostFirewallInfo"] = reflect.TypeOf((*HostFirewallInfo)(nil)).Elem() -} - -type HostFirewallRule struct { - DynamicData - - Port int32 `xml:"port"` - EndPort int32 `xml:"endPort,omitempty"` - Direction HostFirewallRuleDirection `xml:"direction"` - PortType HostFirewallRulePortType `xml:"portType,omitempty"` - Protocol string `xml:"protocol"` -} - -func init() { - t["HostFirewallRule"] = reflect.TypeOf((*HostFirewallRule)(nil)).Elem() -} - -type HostFirewallRuleset struct { - DynamicData - - Key string `xml:"key"` - Label string `xml:"label"` - Required bool `xml:"required"` - Rule []HostFirewallRule `xml:"rule"` - Service string `xml:"service,omitempty"` - Enabled bool `xml:"enabled"` - AllowedHosts *HostFirewallRulesetIpList `xml:"allowedHosts,omitempty"` -} - -func init() { - t["HostFirewallRuleset"] = reflect.TypeOf((*HostFirewallRuleset)(nil)).Elem() -} - -type HostFirewallRulesetIpList struct { - DynamicData - - IpAddress []string `xml:"ipAddress,omitempty"` - IpNetwork []HostFirewallRulesetIpNetwork `xml:"ipNetwork,omitempty"` - AllIp bool `xml:"allIp"` -} - -func init() { - t["HostFirewallRulesetIpList"] = reflect.TypeOf((*HostFirewallRulesetIpList)(nil)).Elem() -} - -type HostFirewallRulesetIpNetwork struct { - DynamicData - - Network string `xml:"network"` - PrefixLength int32 `xml:"prefixLength"` -} - -func init() { - t["HostFirewallRulesetIpNetwork"] = reflect.TypeOf((*HostFirewallRulesetIpNetwork)(nil)).Elem() -} - -type HostFirewallRulesetRulesetSpec struct { - DynamicData - - AllowedHosts HostFirewallRulesetIpList `xml:"allowedHosts"` -} - -func init() { - t["HostFirewallRulesetRulesetSpec"] = reflect.TypeOf((*HostFirewallRulesetRulesetSpec)(nil)).Elem() -} - -type HostFlagInfo struct { - DynamicData - - BackgroundSnapshotsEnabled *bool `xml:"backgroundSnapshotsEnabled"` -} - -func init() { - t["HostFlagInfo"] = reflect.TypeOf((*HostFlagInfo)(nil)).Elem() -} - -type HostForceMountedInfo struct { - DynamicData - - Persist bool `xml:"persist"` - Mounted bool `xml:"mounted"` -} - -func init() { - t["HostForceMountedInfo"] = reflect.TypeOf((*HostForceMountedInfo)(nil)).Elem() -} - -type HostGatewaySpec struct { - DynamicData - - GatewayType string `xml:"gatewayType"` - GatewayId string `xml:"gatewayId,omitempty"` - TrustVerificationToken string `xml:"trustVerificationToken,omitempty"` - HostAuthParams []KeyValue `xml:"hostAuthParams,omitempty"` -} - -func init() { - t["HostGatewaySpec"] = reflect.TypeOf((*HostGatewaySpec)(nil)).Elem() -} - -type HostGetShortNameFailedEvent struct { - HostEvent -} - -func init() { - t["HostGetShortNameFailedEvent"] = reflect.TypeOf((*HostGetShortNameFailedEvent)(nil)).Elem() -} - -type HostGetVFlashModuleDefaultConfig HostGetVFlashModuleDefaultConfigRequestType - -func init() { - t["HostGetVFlashModuleDefaultConfig"] = reflect.TypeOf((*HostGetVFlashModuleDefaultConfig)(nil)).Elem() -} - -type HostGetVFlashModuleDefaultConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - VFlashModule string `xml:"vFlashModule"` -} - -func init() { - t["HostGetVFlashModuleDefaultConfigRequestType"] = reflect.TypeOf((*HostGetVFlashModuleDefaultConfigRequestType)(nil)).Elem() -} - -type HostGetVFlashModuleDefaultConfigResponse struct { - Returnval VirtualDiskVFlashCacheConfigInfo `xml:"returnval"` -} - -type HostGraphicsConfig struct { - DynamicData - - HostDefaultGraphicsType string `xml:"hostDefaultGraphicsType"` - SharedPassthruAssignmentPolicy string `xml:"sharedPassthruAssignmentPolicy"` - DeviceType []HostGraphicsConfigDeviceType `xml:"deviceType,omitempty"` -} - -func init() { - t["HostGraphicsConfig"] = reflect.TypeOf((*HostGraphicsConfig)(nil)).Elem() -} - -type HostGraphicsConfigDeviceType struct { - DynamicData - - DeviceId string `xml:"deviceId"` - GraphicsType string `xml:"graphicsType"` -} - -func init() { - t["HostGraphicsConfigDeviceType"] = reflect.TypeOf((*HostGraphicsConfigDeviceType)(nil)).Elem() -} - -type HostGraphicsInfo struct { - DynamicData - - DeviceName string `xml:"deviceName"` - VendorName string `xml:"vendorName"` - PciId string `xml:"pciId"` - GraphicsType string `xml:"graphicsType"` - MemorySizeInKB int64 `xml:"memorySizeInKB"` - Vm []ManagedObjectReference `xml:"vm,omitempty"` -} - -func init() { - t["HostGraphicsInfo"] = reflect.TypeOf((*HostGraphicsInfo)(nil)).Elem() -} - -type HostHardwareElementInfo struct { - DynamicData - - Name string `xml:"name"` - Status BaseElementDescription `xml:"status,typeattr"` -} - -func init() { - t["HostHardwareElementInfo"] = reflect.TypeOf((*HostHardwareElementInfo)(nil)).Elem() -} - -type HostHardwareInfo struct { - DynamicData - - SystemInfo HostSystemInfo `xml:"systemInfo"` - CpuPowerManagementInfo *HostCpuPowerManagementInfo `xml:"cpuPowerManagementInfo,omitempty"` - CpuInfo HostCpuInfo `xml:"cpuInfo"` - CpuPkg []HostCpuPackage `xml:"cpuPkg"` - MemorySize int64 `xml:"memorySize"` - NumaInfo *HostNumaInfo `xml:"numaInfo,omitempty"` - SmcPresent *bool `xml:"smcPresent"` - PciDevice []HostPciDevice `xml:"pciDevice,omitempty"` - CpuFeature []HostCpuIdInfo `xml:"cpuFeature,omitempty"` - BiosInfo *HostBIOSInfo `xml:"biosInfo,omitempty"` - ReliableMemoryInfo *HostReliableMemoryInfo `xml:"reliableMemoryInfo,omitempty"` -} - -func init() { - t["HostHardwareInfo"] = reflect.TypeOf((*HostHardwareInfo)(nil)).Elem() -} - -type HostHardwareStatusInfo struct { - DynamicData - - MemoryStatusInfo []BaseHostHardwareElementInfo `xml:"memoryStatusInfo,omitempty,typeattr"` - CpuStatusInfo []BaseHostHardwareElementInfo `xml:"cpuStatusInfo,omitempty,typeattr"` - StorageStatusInfo []HostStorageElementInfo `xml:"storageStatusInfo,omitempty"` -} - -func init() { - t["HostHardwareStatusInfo"] = reflect.TypeOf((*HostHardwareStatusInfo)(nil)).Elem() -} - -type HostHardwareSummary struct { - DynamicData - - Vendor string `xml:"vendor"` - Model string `xml:"model"` - Uuid string `xml:"uuid"` - OtherIdentifyingInfo []HostSystemIdentificationInfo `xml:"otherIdentifyingInfo,omitempty"` - MemorySize int64 `xml:"memorySize"` - CpuModel string `xml:"cpuModel"` - CpuMhz int32 `xml:"cpuMhz"` - NumCpuPkgs int16 `xml:"numCpuPkgs"` - NumCpuCores int16 `xml:"numCpuCores"` - NumCpuThreads int16 `xml:"numCpuThreads"` - NumNics int32 `xml:"numNics"` - NumHBAs int32 `xml:"numHBAs"` -} - -func init() { - t["HostHardwareSummary"] = reflect.TypeOf((*HostHardwareSummary)(nil)).Elem() -} - -type HostHasComponentFailure struct { - VimFault - - HostName string `xml:"hostName"` - ComponentType string `xml:"componentType"` - ComponentName string `xml:"componentName"` -} - -func init() { - t["HostHasComponentFailure"] = reflect.TypeOf((*HostHasComponentFailure)(nil)).Elem() -} - -type HostHasComponentFailureFault HostHasComponentFailure - -func init() { - t["HostHasComponentFailureFault"] = reflect.TypeOf((*HostHasComponentFailureFault)(nil)).Elem() -} - -type HostHostBusAdapter struct { - DynamicData - - Key string `xml:"key,omitempty"` - Device string `xml:"device"` - Bus int32 `xml:"bus"` - Status string `xml:"status"` - Model string `xml:"model"` - Driver string `xml:"driver,omitempty"` - Pci string `xml:"pci,omitempty"` -} - -func init() { - t["HostHostBusAdapter"] = reflect.TypeOf((*HostHostBusAdapter)(nil)).Elem() -} - -type HostHyperThreadScheduleInfo struct { - DynamicData - - Available bool `xml:"available"` - Active bool `xml:"active"` - Config bool `xml:"config"` -} - -func init() { - t["HostHyperThreadScheduleInfo"] = reflect.TypeOf((*HostHyperThreadScheduleInfo)(nil)).Elem() -} - -type HostImageConfigGetAcceptance HostImageConfigGetAcceptanceRequestType - -func init() { - t["HostImageConfigGetAcceptance"] = reflect.TypeOf((*HostImageConfigGetAcceptance)(nil)).Elem() -} - -type HostImageConfigGetAcceptanceRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["HostImageConfigGetAcceptanceRequestType"] = reflect.TypeOf((*HostImageConfigGetAcceptanceRequestType)(nil)).Elem() -} - -type HostImageConfigGetAcceptanceResponse struct { - Returnval string `xml:"returnval"` -} - -type HostImageConfigGetProfile HostImageConfigGetProfileRequestType - -func init() { - t["HostImageConfigGetProfile"] = reflect.TypeOf((*HostImageConfigGetProfile)(nil)).Elem() -} - -type HostImageConfigGetProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["HostImageConfigGetProfileRequestType"] = reflect.TypeOf((*HostImageConfigGetProfileRequestType)(nil)).Elem() -} - -type HostImageConfigGetProfileResponse struct { - Returnval HostImageProfileSummary `xml:"returnval"` -} - -type HostImageProfileSummary struct { - DynamicData - - Name string `xml:"name"` - Vendor string `xml:"vendor"` -} - -func init() { - t["HostImageProfileSummary"] = reflect.TypeOf((*HostImageProfileSummary)(nil)).Elem() -} - -type HostInAuditModeEvent struct { - HostEvent -} - -func init() { - t["HostInAuditModeEvent"] = reflect.TypeOf((*HostInAuditModeEvent)(nil)).Elem() -} - -type HostInDomain struct { - HostConfigFault -} - -func init() { - t["HostInDomain"] = reflect.TypeOf((*HostInDomain)(nil)).Elem() -} - -type HostInDomainFault HostInDomain - -func init() { - t["HostInDomainFault"] = reflect.TypeOf((*HostInDomainFault)(nil)).Elem() -} - -type HostIncompatibleForFaultTolerance struct { - VmFaultToleranceIssue - - HostName string `xml:"hostName,omitempty"` - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["HostIncompatibleForFaultTolerance"] = reflect.TypeOf((*HostIncompatibleForFaultTolerance)(nil)).Elem() -} - -type HostIncompatibleForFaultToleranceFault HostIncompatibleForFaultTolerance - -func init() { - t["HostIncompatibleForFaultToleranceFault"] = reflect.TypeOf((*HostIncompatibleForFaultToleranceFault)(nil)).Elem() -} - -type HostIncompatibleForRecordReplay struct { - VimFault - - HostName string `xml:"hostName,omitempty"` - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["HostIncompatibleForRecordReplay"] = reflect.TypeOf((*HostIncompatibleForRecordReplay)(nil)).Elem() -} - -type HostIncompatibleForRecordReplayFault HostIncompatibleForRecordReplay - -func init() { - t["HostIncompatibleForRecordReplayFault"] = reflect.TypeOf((*HostIncompatibleForRecordReplayFault)(nil)).Elem() -} - -type HostInflateDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["HostInflateDiskRequestType"] = reflect.TypeOf((*HostInflateDiskRequestType)(nil)).Elem() -} - -type HostInflateDisk_Task HostInflateDiskRequestType - -func init() { - t["HostInflateDisk_Task"] = reflect.TypeOf((*HostInflateDisk_Task)(nil)).Elem() -} - -type HostInflateDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type HostInternetScsiHba struct { - HostHostBusAdapter - - IsSoftwareBased bool `xml:"isSoftwareBased"` - CanBeDisabled *bool `xml:"canBeDisabled"` - NetworkBindingSupport HostInternetScsiHbaNetworkBindingSupportType `xml:"networkBindingSupport,omitempty"` - DiscoveryCapabilities HostInternetScsiHbaDiscoveryCapabilities `xml:"discoveryCapabilities"` - DiscoveryProperties HostInternetScsiHbaDiscoveryProperties `xml:"discoveryProperties"` - AuthenticationCapabilities HostInternetScsiHbaAuthenticationCapabilities `xml:"authenticationCapabilities"` - AuthenticationProperties HostInternetScsiHbaAuthenticationProperties `xml:"authenticationProperties"` - DigestCapabilities *HostInternetScsiHbaDigestCapabilities `xml:"digestCapabilities,omitempty"` - DigestProperties *HostInternetScsiHbaDigestProperties `xml:"digestProperties,omitempty"` - IpCapabilities HostInternetScsiHbaIPCapabilities `xml:"ipCapabilities"` - IpProperties HostInternetScsiHbaIPProperties `xml:"ipProperties"` - SupportedAdvancedOptions []OptionDef `xml:"supportedAdvancedOptions,omitempty"` - AdvancedOptions []HostInternetScsiHbaParamValue `xml:"advancedOptions,omitempty"` - IScsiName string `xml:"iScsiName"` - IScsiAlias string `xml:"iScsiAlias,omitempty"` - ConfiguredSendTarget []HostInternetScsiHbaSendTarget `xml:"configuredSendTarget,omitempty"` - ConfiguredStaticTarget []HostInternetScsiHbaStaticTarget `xml:"configuredStaticTarget,omitempty"` - MaxSpeedMb int32 `xml:"maxSpeedMb,omitempty"` - CurrentSpeedMb int32 `xml:"currentSpeedMb,omitempty"` -} - -func init() { - t["HostInternetScsiHba"] = reflect.TypeOf((*HostInternetScsiHba)(nil)).Elem() -} - -type HostInternetScsiHbaAuthenticationCapabilities struct { - DynamicData - - ChapAuthSettable bool `xml:"chapAuthSettable"` - Krb5AuthSettable bool `xml:"krb5AuthSettable"` - SrpAuthSettable bool `xml:"srpAuthSettable"` - SpkmAuthSettable bool `xml:"spkmAuthSettable"` - MutualChapSettable *bool `xml:"mutualChapSettable"` - TargetChapSettable *bool `xml:"targetChapSettable"` - TargetMutualChapSettable *bool `xml:"targetMutualChapSettable"` -} - -func init() { - t["HostInternetScsiHbaAuthenticationCapabilities"] = reflect.TypeOf((*HostInternetScsiHbaAuthenticationCapabilities)(nil)).Elem() -} - -type HostInternetScsiHbaAuthenticationProperties struct { - DynamicData - - ChapAuthEnabled bool `xml:"chapAuthEnabled"` - ChapName string `xml:"chapName,omitempty"` - ChapSecret string `xml:"chapSecret,omitempty"` - ChapAuthenticationType string `xml:"chapAuthenticationType,omitempty"` - ChapInherited *bool `xml:"chapInherited"` - MutualChapName string `xml:"mutualChapName,omitempty"` - MutualChapSecret string `xml:"mutualChapSecret,omitempty"` - MutualChapAuthenticationType string `xml:"mutualChapAuthenticationType,omitempty"` - MutualChapInherited *bool `xml:"mutualChapInherited"` -} - -func init() { - t["HostInternetScsiHbaAuthenticationProperties"] = reflect.TypeOf((*HostInternetScsiHbaAuthenticationProperties)(nil)).Elem() -} - -type HostInternetScsiHbaDigestCapabilities struct { - DynamicData - - HeaderDigestSettable *bool `xml:"headerDigestSettable"` - DataDigestSettable *bool `xml:"dataDigestSettable"` - TargetHeaderDigestSettable *bool `xml:"targetHeaderDigestSettable"` - TargetDataDigestSettable *bool `xml:"targetDataDigestSettable"` -} - -func init() { - t["HostInternetScsiHbaDigestCapabilities"] = reflect.TypeOf((*HostInternetScsiHbaDigestCapabilities)(nil)).Elem() -} - -type HostInternetScsiHbaDigestProperties struct { - DynamicData - - HeaderDigestType string `xml:"headerDigestType,omitempty"` - HeaderDigestInherited *bool `xml:"headerDigestInherited"` - DataDigestType string `xml:"dataDigestType,omitempty"` - DataDigestInherited *bool `xml:"dataDigestInherited"` -} - -func init() { - t["HostInternetScsiHbaDigestProperties"] = reflect.TypeOf((*HostInternetScsiHbaDigestProperties)(nil)).Elem() -} - -type HostInternetScsiHbaDiscoveryCapabilities struct { - DynamicData - - ISnsDiscoverySettable bool `xml:"iSnsDiscoverySettable"` - SlpDiscoverySettable bool `xml:"slpDiscoverySettable"` - StaticTargetDiscoverySettable bool `xml:"staticTargetDiscoverySettable"` - SendTargetsDiscoverySettable bool `xml:"sendTargetsDiscoverySettable"` -} - -func init() { - t["HostInternetScsiHbaDiscoveryCapabilities"] = reflect.TypeOf((*HostInternetScsiHbaDiscoveryCapabilities)(nil)).Elem() -} - -type HostInternetScsiHbaDiscoveryProperties struct { - DynamicData - - ISnsDiscoveryEnabled bool `xml:"iSnsDiscoveryEnabled"` - ISnsDiscoveryMethod string `xml:"iSnsDiscoveryMethod,omitempty"` - ISnsHost string `xml:"iSnsHost,omitempty"` - SlpDiscoveryEnabled bool `xml:"slpDiscoveryEnabled"` - SlpDiscoveryMethod string `xml:"slpDiscoveryMethod,omitempty"` - SlpHost string `xml:"slpHost,omitempty"` - StaticTargetDiscoveryEnabled bool `xml:"staticTargetDiscoveryEnabled"` - SendTargetsDiscoveryEnabled bool `xml:"sendTargetsDiscoveryEnabled"` -} - -func init() { - t["HostInternetScsiHbaDiscoveryProperties"] = reflect.TypeOf((*HostInternetScsiHbaDiscoveryProperties)(nil)).Elem() -} - -type HostInternetScsiHbaIPCapabilities struct { - DynamicData - - AddressSettable bool `xml:"addressSettable"` - IpConfigurationMethodSettable bool `xml:"ipConfigurationMethodSettable"` - SubnetMaskSettable bool `xml:"subnetMaskSettable"` - DefaultGatewaySettable bool `xml:"defaultGatewaySettable"` - PrimaryDnsServerAddressSettable bool `xml:"primaryDnsServerAddressSettable"` - AlternateDnsServerAddressSettable bool `xml:"alternateDnsServerAddressSettable"` - Ipv6Supported *bool `xml:"ipv6Supported"` - ArpRedirectSettable *bool `xml:"arpRedirectSettable"` - MtuSettable *bool `xml:"mtuSettable"` - HostNameAsTargetAddress *bool `xml:"hostNameAsTargetAddress"` - NameAliasSettable *bool `xml:"nameAliasSettable"` - Ipv4EnableSettable *bool `xml:"ipv4EnableSettable"` - Ipv6EnableSettable *bool `xml:"ipv6EnableSettable"` - Ipv6PrefixLengthSettable *bool `xml:"ipv6PrefixLengthSettable"` - Ipv6PrefixLength int32 `xml:"ipv6PrefixLength,omitempty"` - Ipv6DhcpConfigurationSettable *bool `xml:"ipv6DhcpConfigurationSettable"` - Ipv6LinkLocalAutoConfigurationSettable *bool `xml:"ipv6LinkLocalAutoConfigurationSettable"` - Ipv6RouterAdvertisementConfigurationSettable *bool `xml:"ipv6RouterAdvertisementConfigurationSettable"` - Ipv6DefaultGatewaySettable *bool `xml:"ipv6DefaultGatewaySettable"` - Ipv6MaxStaticAddressesSupported int32 `xml:"ipv6MaxStaticAddressesSupported,omitempty"` -} - -func init() { - t["HostInternetScsiHbaIPCapabilities"] = reflect.TypeOf((*HostInternetScsiHbaIPCapabilities)(nil)).Elem() -} - -type HostInternetScsiHbaIPProperties struct { - DynamicData - - Mac string `xml:"mac,omitempty"` - Address string `xml:"address,omitempty"` - DhcpConfigurationEnabled bool `xml:"dhcpConfigurationEnabled"` - SubnetMask string `xml:"subnetMask,omitempty"` - DefaultGateway string `xml:"defaultGateway,omitempty"` - PrimaryDnsServerAddress string `xml:"primaryDnsServerAddress,omitempty"` - AlternateDnsServerAddress string `xml:"alternateDnsServerAddress,omitempty"` - Ipv6Address string `xml:"ipv6Address,omitempty"` - Ipv6SubnetMask string `xml:"ipv6SubnetMask,omitempty"` - Ipv6DefaultGateway string `xml:"ipv6DefaultGateway,omitempty"` - ArpRedirectEnabled *bool `xml:"arpRedirectEnabled"` - Mtu int32 `xml:"mtu,omitempty"` - JumboFramesEnabled *bool `xml:"jumboFramesEnabled"` - Ipv4Enabled *bool `xml:"ipv4Enabled"` - Ipv6Enabled *bool `xml:"ipv6Enabled"` - Ipv6properties *HostInternetScsiHbaIPv6Properties `xml:"ipv6properties,omitempty"` -} - -func init() { - t["HostInternetScsiHbaIPProperties"] = reflect.TypeOf((*HostInternetScsiHbaIPProperties)(nil)).Elem() -} - -type HostInternetScsiHbaIPv6Properties struct { - DynamicData - - IscsiIpv6Address []HostInternetScsiHbaIscsiIpv6Address `xml:"iscsiIpv6Address,omitempty"` - Ipv6DhcpConfigurationEnabled *bool `xml:"ipv6DhcpConfigurationEnabled"` - Ipv6LinkLocalAutoConfigurationEnabled *bool `xml:"ipv6LinkLocalAutoConfigurationEnabled"` - Ipv6RouterAdvertisementConfigurationEnabled *bool `xml:"ipv6RouterAdvertisementConfigurationEnabled"` - Ipv6DefaultGateway string `xml:"ipv6DefaultGateway,omitempty"` -} - -func init() { - t["HostInternetScsiHbaIPv6Properties"] = reflect.TypeOf((*HostInternetScsiHbaIPv6Properties)(nil)).Elem() -} - -type HostInternetScsiHbaIscsiIpv6Address struct { - DynamicData - - Address string `xml:"address"` - PrefixLength int32 `xml:"prefixLength"` - Origin string `xml:"origin"` - Operation string `xml:"operation,omitempty"` -} - -func init() { - t["HostInternetScsiHbaIscsiIpv6Address"] = reflect.TypeOf((*HostInternetScsiHbaIscsiIpv6Address)(nil)).Elem() -} - -type HostInternetScsiHbaParamValue struct { - OptionValue - - IsInherited *bool `xml:"isInherited"` -} - -func init() { - t["HostInternetScsiHbaParamValue"] = reflect.TypeOf((*HostInternetScsiHbaParamValue)(nil)).Elem() -} - -type HostInternetScsiHbaSendTarget struct { - DynamicData - - Address string `xml:"address"` - Port int32 `xml:"port,omitempty"` - AuthenticationProperties *HostInternetScsiHbaAuthenticationProperties `xml:"authenticationProperties,omitempty"` - DigestProperties *HostInternetScsiHbaDigestProperties `xml:"digestProperties,omitempty"` - SupportedAdvancedOptions []OptionDef `xml:"supportedAdvancedOptions,omitempty"` - AdvancedOptions []HostInternetScsiHbaParamValue `xml:"advancedOptions,omitempty"` - Parent string `xml:"parent,omitempty"` -} - -func init() { - t["HostInternetScsiHbaSendTarget"] = reflect.TypeOf((*HostInternetScsiHbaSendTarget)(nil)).Elem() -} - -type HostInternetScsiHbaStaticTarget struct { - DynamicData - - Address string `xml:"address"` - Port int32 `xml:"port,omitempty"` - IScsiName string `xml:"iScsiName"` - DiscoveryMethod string `xml:"discoveryMethod,omitempty"` - AuthenticationProperties *HostInternetScsiHbaAuthenticationProperties `xml:"authenticationProperties,omitempty"` - DigestProperties *HostInternetScsiHbaDigestProperties `xml:"digestProperties,omitempty"` - SupportedAdvancedOptions []OptionDef `xml:"supportedAdvancedOptions,omitempty"` - AdvancedOptions []HostInternetScsiHbaParamValue `xml:"advancedOptions,omitempty"` - Parent string `xml:"parent,omitempty"` -} - -func init() { - t["HostInternetScsiHbaStaticTarget"] = reflect.TypeOf((*HostInternetScsiHbaStaticTarget)(nil)).Elem() -} - -type HostInternetScsiHbaTargetSet struct { - DynamicData - - StaticTargets []HostInternetScsiHbaStaticTarget `xml:"staticTargets,omitempty"` - SendTargets []HostInternetScsiHbaSendTarget `xml:"sendTargets,omitempty"` -} - -func init() { - t["HostInternetScsiHbaTargetSet"] = reflect.TypeOf((*HostInternetScsiHbaTargetSet)(nil)).Elem() -} - -type HostInternetScsiTargetTransport struct { - HostTargetTransport - - IScsiName string `xml:"iScsiName"` - IScsiAlias string `xml:"iScsiAlias"` - Address []string `xml:"address,omitempty"` -} - -func init() { - t["HostInternetScsiTargetTransport"] = reflect.TypeOf((*HostInternetScsiTargetTransport)(nil)).Elem() -} - -type HostInventoryFull struct { - NotEnoughLicenses - - Capacity int32 `xml:"capacity"` -} - -func init() { - t["HostInventoryFull"] = reflect.TypeOf((*HostInventoryFull)(nil)).Elem() -} - -type HostInventoryFullEvent struct { - LicenseEvent - - Capacity int32 `xml:"capacity"` -} - -func init() { - t["HostInventoryFullEvent"] = reflect.TypeOf((*HostInventoryFullEvent)(nil)).Elem() -} - -type HostInventoryFullFault HostInventoryFull - -func init() { - t["HostInventoryFullFault"] = reflect.TypeOf((*HostInventoryFullFault)(nil)).Elem() -} - -type HostInventoryUnreadableEvent struct { - Event -} - -func init() { - t["HostInventoryUnreadableEvent"] = reflect.TypeOf((*HostInventoryUnreadableEvent)(nil)).Elem() -} - -type HostIoFilterInfo struct { - IoFilterInfo - - Available bool `xml:"available"` -} - -func init() { - t["HostIoFilterInfo"] = reflect.TypeOf((*HostIoFilterInfo)(nil)).Elem() -} - -type HostIpChangedEvent struct { - HostEvent - - OldIP string `xml:"oldIP"` - NewIP string `xml:"newIP"` -} - -func init() { - t["HostIpChangedEvent"] = reflect.TypeOf((*HostIpChangedEvent)(nil)).Elem() -} - -type HostIpConfig struct { - DynamicData - - Dhcp bool `xml:"dhcp"` - IpAddress string `xml:"ipAddress,omitempty"` - SubnetMask string `xml:"subnetMask,omitempty"` - IpV6Config *HostIpConfigIpV6AddressConfiguration `xml:"ipV6Config,omitempty"` -} - -func init() { - t["HostIpConfig"] = reflect.TypeOf((*HostIpConfig)(nil)).Elem() -} - -type HostIpConfigIpV6Address struct { - DynamicData - - IpAddress string `xml:"ipAddress"` - PrefixLength int32 `xml:"prefixLength"` - Origin string `xml:"origin,omitempty"` - DadState string `xml:"dadState,omitempty"` - Lifetime *time.Time `xml:"lifetime"` - Operation string `xml:"operation,omitempty"` -} - -func init() { - t["HostIpConfigIpV6Address"] = reflect.TypeOf((*HostIpConfigIpV6Address)(nil)).Elem() -} - -type HostIpConfigIpV6AddressConfiguration struct { - DynamicData - - IpV6Address []HostIpConfigIpV6Address `xml:"ipV6Address,omitempty"` - AutoConfigurationEnabled *bool `xml:"autoConfigurationEnabled"` - DhcpV6Enabled *bool `xml:"dhcpV6Enabled"` -} - -func init() { - t["HostIpConfigIpV6AddressConfiguration"] = reflect.TypeOf((*HostIpConfigIpV6AddressConfiguration)(nil)).Elem() -} - -type HostIpInconsistentEvent struct { - HostEvent - - IpAddress string `xml:"ipAddress"` - IpAddress2 string `xml:"ipAddress2"` -} - -func init() { - t["HostIpInconsistentEvent"] = reflect.TypeOf((*HostIpInconsistentEvent)(nil)).Elem() -} - -type HostIpRouteConfig struct { - DynamicData - - DefaultGateway string `xml:"defaultGateway,omitempty"` - GatewayDevice string `xml:"gatewayDevice,omitempty"` - IpV6DefaultGateway string `xml:"ipV6DefaultGateway,omitempty"` - IpV6GatewayDevice string `xml:"ipV6GatewayDevice,omitempty"` -} - -func init() { - t["HostIpRouteConfig"] = reflect.TypeOf((*HostIpRouteConfig)(nil)).Elem() -} - -type HostIpRouteConfigSpec struct { - HostIpRouteConfig - - GatewayDeviceConnection *HostVirtualNicConnection `xml:"gatewayDeviceConnection,omitempty"` - IpV6GatewayDeviceConnection *HostVirtualNicConnection `xml:"ipV6GatewayDeviceConnection,omitempty"` -} - -func init() { - t["HostIpRouteConfigSpec"] = reflect.TypeOf((*HostIpRouteConfigSpec)(nil)).Elem() -} - -type HostIpRouteEntry struct { - DynamicData - - Network string `xml:"network"` - PrefixLength int32 `xml:"prefixLength"` - Gateway string `xml:"gateway"` - DeviceName string `xml:"deviceName,omitempty"` -} - -func init() { - t["HostIpRouteEntry"] = reflect.TypeOf((*HostIpRouteEntry)(nil)).Elem() -} - -type HostIpRouteOp struct { - DynamicData - - ChangeOperation string `xml:"changeOperation"` - Route HostIpRouteEntry `xml:"route"` -} - -func init() { - t["HostIpRouteOp"] = reflect.TypeOf((*HostIpRouteOp)(nil)).Elem() -} - -type HostIpRouteTableConfig struct { - DynamicData - - IpRoute []HostIpRouteOp `xml:"ipRoute,omitempty"` - Ipv6Route []HostIpRouteOp `xml:"ipv6Route,omitempty"` -} - -func init() { - t["HostIpRouteTableConfig"] = reflect.TypeOf((*HostIpRouteTableConfig)(nil)).Elem() -} - -type HostIpRouteTableInfo struct { - DynamicData - - IpRoute []HostIpRouteEntry `xml:"ipRoute,omitempty"` - Ipv6Route []HostIpRouteEntry `xml:"ipv6Route,omitempty"` -} - -func init() { - t["HostIpRouteTableInfo"] = reflect.TypeOf((*HostIpRouteTableInfo)(nil)).Elem() -} - -type HostIpToShortNameFailedEvent struct { - HostEvent -} - -func init() { - t["HostIpToShortNameFailedEvent"] = reflect.TypeOf((*HostIpToShortNameFailedEvent)(nil)).Elem() -} - -type HostIpmiInfo struct { - DynamicData - - BmcIpAddress string `xml:"bmcIpAddress,omitempty"` - BmcMacAddress string `xml:"bmcMacAddress,omitempty"` - Login string `xml:"login,omitempty"` - Password string `xml:"password,omitempty"` -} - -func init() { - t["HostIpmiInfo"] = reflect.TypeOf((*HostIpmiInfo)(nil)).Elem() -} - -type HostIsolationIpPingFailedEvent struct { - HostDasEvent - - IsolationIp string `xml:"isolationIp"` -} - -func init() { - t["HostIsolationIpPingFailedEvent"] = reflect.TypeOf((*HostIsolationIpPingFailedEvent)(nil)).Elem() -} - -type HostLicensableResourceInfo struct { - DynamicData - - Resource []KeyAnyValue `xml:"resource"` -} - -func init() { - t["HostLicensableResourceInfo"] = reflect.TypeOf((*HostLicensableResourceInfo)(nil)).Elem() -} - -type HostLicenseConnectInfo struct { - DynamicData - - License LicenseManagerLicenseInfo `xml:"license"` - Evaluation LicenseManagerEvaluationInfo `xml:"evaluation"` - Resource *HostLicensableResourceInfo `xml:"resource,omitempty"` -} - -func init() { - t["HostLicenseConnectInfo"] = reflect.TypeOf((*HostLicenseConnectInfo)(nil)).Elem() -} - -type HostLicenseExpiredEvent struct { - LicenseEvent -} - -func init() { - t["HostLicenseExpiredEvent"] = reflect.TypeOf((*HostLicenseExpiredEvent)(nil)).Elem() -} - -type HostLicenseSpec struct { - DynamicData - - Source BaseLicenseSource `xml:"source,omitempty,typeattr"` - EditionKey string `xml:"editionKey,omitempty"` - DisabledFeatureKey []string `xml:"disabledFeatureKey,omitempty"` - EnabledFeatureKey []string `xml:"enabledFeatureKey,omitempty"` -} - -func init() { - t["HostLicenseSpec"] = reflect.TypeOf((*HostLicenseSpec)(nil)).Elem() -} - -type HostListSummary struct { - DynamicData - - Host *ManagedObjectReference `xml:"host,omitempty"` - Hardware *HostHardwareSummary `xml:"hardware,omitempty"` - Runtime *HostRuntimeInfo `xml:"runtime,omitempty"` - Config HostConfigSummary `xml:"config"` - QuickStats HostListSummaryQuickStats `xml:"quickStats"` - OverallStatus ManagedEntityStatus `xml:"overallStatus"` - RebootRequired bool `xml:"rebootRequired"` - CustomValue []BaseCustomFieldValue `xml:"customValue,omitempty,typeattr"` - ManagementServerIp string `xml:"managementServerIp,omitempty"` - MaxEVCModeKey string `xml:"maxEVCModeKey,omitempty"` - CurrentEVCModeKey string `xml:"currentEVCModeKey,omitempty"` - Gateway *HostListSummaryGatewaySummary `xml:"gateway,omitempty"` -} - -func init() { - t["HostListSummary"] = reflect.TypeOf((*HostListSummary)(nil)).Elem() -} - -type HostListSummaryGatewaySummary struct { - DynamicData - - GatewayType string `xml:"gatewayType"` - GatewayId string `xml:"gatewayId"` -} - -func init() { - t["HostListSummaryGatewaySummary"] = reflect.TypeOf((*HostListSummaryGatewaySummary)(nil)).Elem() -} - -type HostListSummaryQuickStats struct { - DynamicData - - OverallCpuUsage int32 `xml:"overallCpuUsage,omitempty"` - OverallMemoryUsage int32 `xml:"overallMemoryUsage,omitempty"` - DistributedCpuFairness int32 `xml:"distributedCpuFairness,omitempty"` - DistributedMemoryFairness int32 `xml:"distributedMemoryFairness,omitempty"` - Uptime int32 `xml:"uptime,omitempty"` -} - -func init() { - t["HostListSummaryQuickStats"] = reflect.TypeOf((*HostListSummaryQuickStats)(nil)).Elem() -} - -type HostListVStorageObject HostListVStorageObjectRequestType - -func init() { - t["HostListVStorageObject"] = reflect.TypeOf((*HostListVStorageObject)(nil)).Elem() -} - -type HostListVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["HostListVStorageObjectRequestType"] = reflect.TypeOf((*HostListVStorageObjectRequestType)(nil)).Elem() -} - -type HostListVStorageObjectResponse struct { - Returnval []ID `xml:"returnval,omitempty"` -} - -type HostLocalAuthenticationInfo struct { - HostAuthenticationStoreInfo -} - -func init() { - t["HostLocalAuthenticationInfo"] = reflect.TypeOf((*HostLocalAuthenticationInfo)(nil)).Elem() -} - -type HostLocalFileSystemVolume struct { - HostFileSystemVolume - - Device string `xml:"device"` -} - -func init() { - t["HostLocalFileSystemVolume"] = reflect.TypeOf((*HostLocalFileSystemVolume)(nil)).Elem() -} - -type HostLocalFileSystemVolumeSpec struct { - DynamicData - - Device string `xml:"device"` - LocalPath string `xml:"localPath"` -} - -func init() { - t["HostLocalFileSystemVolumeSpec"] = reflect.TypeOf((*HostLocalFileSystemVolumeSpec)(nil)).Elem() -} - -type HostLocalPortCreatedEvent struct { - DvsEvent - - HostLocalPort DVSHostLocalPortInfo `xml:"hostLocalPort"` -} - -func init() { - t["HostLocalPortCreatedEvent"] = reflect.TypeOf((*HostLocalPortCreatedEvent)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerDiskLayoutSpec struct { - DynamicData - - ControllerType string `xml:"controllerType"` - BusNumber int32 `xml:"busNumber"` - UnitNumber *int32 `xml:"unitNumber"` - SrcFilename string `xml:"srcFilename"` - DstFilename string `xml:"dstFilename"` -} - -func init() { - t["HostLowLevelProvisioningManagerDiskLayoutSpec"] = reflect.TypeOf((*HostLowLevelProvisioningManagerDiskLayoutSpec)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerFileDeleteResult struct { - DynamicData - - FileName string `xml:"fileName"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["HostLowLevelProvisioningManagerFileDeleteResult"] = reflect.TypeOf((*HostLowLevelProvisioningManagerFileDeleteResult)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerFileDeleteSpec struct { - DynamicData - - FileName string `xml:"fileName"` - FileType string `xml:"fileType"` -} - -func init() { - t["HostLowLevelProvisioningManagerFileDeleteSpec"] = reflect.TypeOf((*HostLowLevelProvisioningManagerFileDeleteSpec)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerFileReserveResult struct { - DynamicData - - BaseName string `xml:"baseName"` - ParentDir string `xml:"parentDir"` - ReservedName string `xml:"reservedName"` -} - -func init() { - t["HostLowLevelProvisioningManagerFileReserveResult"] = reflect.TypeOf((*HostLowLevelProvisioningManagerFileReserveResult)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerFileReserveSpec struct { - DynamicData - - BaseName string `xml:"baseName"` - ParentDir string `xml:"parentDir"` - FileType string `xml:"fileType"` - StorageProfile string `xml:"storageProfile"` -} - -func init() { - t["HostLowLevelProvisioningManagerFileReserveSpec"] = reflect.TypeOf((*HostLowLevelProvisioningManagerFileReserveSpec)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerSnapshotLayoutSpec struct { - DynamicData - - Id int32 `xml:"id"` - SrcFilename string `xml:"srcFilename"` - DstFilename string `xml:"dstFilename"` - Disk []HostLowLevelProvisioningManagerDiskLayoutSpec `xml:"disk,omitempty"` -} - -func init() { - t["HostLowLevelProvisioningManagerSnapshotLayoutSpec"] = reflect.TypeOf((*HostLowLevelProvisioningManagerSnapshotLayoutSpec)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerVmMigrationStatus struct { - DynamicData - - MigrationId int64 `xml:"migrationId"` - Type string `xml:"type"` - Source bool `xml:"source"` - ConsideredSuccessful bool `xml:"consideredSuccessful"` -} - -func init() { - t["HostLowLevelProvisioningManagerVmMigrationStatus"] = reflect.TypeOf((*HostLowLevelProvisioningManagerVmMigrationStatus)(nil)).Elem() -} - -type HostLowLevelProvisioningManagerVmRecoveryInfo struct { - DynamicData - - Version string `xml:"version"` - BiosUUID string `xml:"biosUUID"` - InstanceUUID string `xml:"instanceUUID"` - FtInfo BaseFaultToleranceConfigInfo `xml:"ftInfo,omitempty,typeattr"` -} - -func init() { - t["HostLowLevelProvisioningManagerVmRecoveryInfo"] = reflect.TypeOf((*HostLowLevelProvisioningManagerVmRecoveryInfo)(nil)).Elem() -} - -type HostMaintenanceSpec struct { - DynamicData - - VsanMode *VsanHostDecommissionMode `xml:"vsanMode,omitempty"` -} - -func init() { - t["HostMaintenanceSpec"] = reflect.TypeOf((*HostMaintenanceSpec)(nil)).Elem() -} - -type HostMemberHealthCheckResult struct { - DynamicData - - Summary string `xml:"summary,omitempty"` -} - -func init() { - t["HostMemberHealthCheckResult"] = reflect.TypeOf((*HostMemberHealthCheckResult)(nil)).Elem() -} - -type HostMemberRuntimeInfo struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Status string `xml:"status,omitempty"` - StatusDetail string `xml:"statusDetail,omitempty"` - HealthCheckResult []BaseHostMemberHealthCheckResult `xml:"healthCheckResult,omitempty,typeattr"` -} - -func init() { - t["HostMemberRuntimeInfo"] = reflect.TypeOf((*HostMemberRuntimeInfo)(nil)).Elem() -} - -type HostMemberUplinkHealthCheckResult struct { - HostMemberHealthCheckResult - - UplinkPortKey string `xml:"uplinkPortKey"` -} - -func init() { - t["HostMemberUplinkHealthCheckResult"] = reflect.TypeOf((*HostMemberUplinkHealthCheckResult)(nil)).Elem() -} - -type HostMemoryProfile struct { - ApplyProfile -} - -func init() { - t["HostMemoryProfile"] = reflect.TypeOf((*HostMemoryProfile)(nil)).Elem() -} - -type HostMemorySpec struct { - DynamicData - - ServiceConsoleReservation int64 `xml:"serviceConsoleReservation,omitempty"` -} - -func init() { - t["HostMemorySpec"] = reflect.TypeOf((*HostMemorySpec)(nil)).Elem() -} - -type HostMissingNetworksEvent struct { - HostDasEvent - - Ips string `xml:"ips,omitempty"` -} - -func init() { - t["HostMissingNetworksEvent"] = reflect.TypeOf((*HostMissingNetworksEvent)(nil)).Elem() -} - -type HostMonitoringStateChangedEvent struct { - ClusterEvent - - State string `xml:"state"` - PrevState string `xml:"prevState,omitempty"` -} - -func init() { - t["HostMonitoringStateChangedEvent"] = reflect.TypeOf((*HostMonitoringStateChangedEvent)(nil)).Elem() -} - -type HostMountInfo struct { - DynamicData - - Path string `xml:"path,omitempty"` - AccessMode string `xml:"accessMode"` - Mounted *bool `xml:"mounted"` - Accessible *bool `xml:"accessible"` - InaccessibleReason string `xml:"inaccessibleReason,omitempty"` -} - -func init() { - t["HostMountInfo"] = reflect.TypeOf((*HostMountInfo)(nil)).Elem() -} - -type HostMultipathInfo struct { - DynamicData - - Lun []HostMultipathInfoLogicalUnit `xml:"lun,omitempty"` -} - -func init() { - t["HostMultipathInfo"] = reflect.TypeOf((*HostMultipathInfo)(nil)).Elem() -} - -type HostMultipathInfoFixedLogicalUnitPolicy struct { - HostMultipathInfoLogicalUnitPolicy - - Prefer string `xml:"prefer"` -} - -func init() { - t["HostMultipathInfoFixedLogicalUnitPolicy"] = reflect.TypeOf((*HostMultipathInfoFixedLogicalUnitPolicy)(nil)).Elem() -} - -type HostMultipathInfoLogicalUnit struct { - DynamicData - - Key string `xml:"key"` - Id string `xml:"id"` - Lun string `xml:"lun"` - Path []HostMultipathInfoPath `xml:"path"` - Policy BaseHostMultipathInfoLogicalUnitPolicy `xml:"policy,typeattr"` - StorageArrayTypePolicy *HostMultipathInfoLogicalUnitStorageArrayTypePolicy `xml:"storageArrayTypePolicy,omitempty"` -} - -func init() { - t["HostMultipathInfoLogicalUnit"] = reflect.TypeOf((*HostMultipathInfoLogicalUnit)(nil)).Elem() -} - -type HostMultipathInfoLogicalUnitPolicy struct { - DynamicData - - Policy string `xml:"policy"` -} - -func init() { - t["HostMultipathInfoLogicalUnitPolicy"] = reflect.TypeOf((*HostMultipathInfoLogicalUnitPolicy)(nil)).Elem() -} - -type HostMultipathInfoLogicalUnitStorageArrayTypePolicy struct { - DynamicData - - Policy string `xml:"policy"` -} - -func init() { - t["HostMultipathInfoLogicalUnitStorageArrayTypePolicy"] = reflect.TypeOf((*HostMultipathInfoLogicalUnitStorageArrayTypePolicy)(nil)).Elem() -} - -type HostMultipathInfoPath struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name"` - PathState string `xml:"pathState"` - State string `xml:"state,omitempty"` - IsWorkingPath *bool `xml:"isWorkingPath"` - Adapter string `xml:"adapter"` - Lun string `xml:"lun"` - Transport BaseHostTargetTransport `xml:"transport,omitempty,typeattr"` -} - -func init() { - t["HostMultipathInfoPath"] = reflect.TypeOf((*HostMultipathInfoPath)(nil)).Elem() -} - -type HostMultipathStateInfo struct { - DynamicData - - Path []HostMultipathStateInfoPath `xml:"path,omitempty"` -} - -func init() { - t["HostMultipathStateInfo"] = reflect.TypeOf((*HostMultipathStateInfo)(nil)).Elem() -} - -type HostMultipathStateInfoPath struct { - DynamicData - - Name string `xml:"name"` - PathState string `xml:"pathState"` -} - -func init() { - t["HostMultipathStateInfoPath"] = reflect.TypeOf((*HostMultipathStateInfoPath)(nil)).Elem() -} - -type HostNasVolume struct { - HostFileSystemVolume - - RemoteHost string `xml:"remoteHost"` - RemotePath string `xml:"remotePath"` - UserName string `xml:"userName,omitempty"` - RemoteHostNames []string `xml:"remoteHostNames,omitempty"` - SecurityType string `xml:"securityType,omitempty"` - ProtocolEndpoint *bool `xml:"protocolEndpoint"` -} - -func init() { - t["HostNasVolume"] = reflect.TypeOf((*HostNasVolume)(nil)).Elem() -} - -type HostNasVolumeConfig struct { - DynamicData - - ChangeOperation string `xml:"changeOperation,omitempty"` - Spec *HostNasVolumeSpec `xml:"spec,omitempty"` -} - -func init() { - t["HostNasVolumeConfig"] = reflect.TypeOf((*HostNasVolumeConfig)(nil)).Elem() -} - -type HostNasVolumeSpec struct { - DynamicData - - RemoteHost string `xml:"remoteHost"` - RemotePath string `xml:"remotePath"` - LocalPath string `xml:"localPath"` - AccessMode string `xml:"accessMode"` - Type string `xml:"type,omitempty"` - UserName string `xml:"userName,omitempty"` - Password string `xml:"password,omitempty"` - RemoteHostNames []string `xml:"remoteHostNames,omitempty"` - SecurityType string `xml:"securityType,omitempty"` -} - -func init() { - t["HostNasVolumeSpec"] = reflect.TypeOf((*HostNasVolumeSpec)(nil)).Elem() -} - -type HostNasVolumeUserInfo struct { - DynamicData - - User string `xml:"user"` -} - -func init() { - t["HostNasVolumeUserInfo"] = reflect.TypeOf((*HostNasVolumeUserInfo)(nil)).Elem() -} - -type HostNatService struct { - DynamicData - - Key string `xml:"key"` - Spec HostNatServiceSpec `xml:"spec"` -} - -func init() { - t["HostNatService"] = reflect.TypeOf((*HostNatService)(nil)).Elem() -} - -type HostNatServiceConfig struct { - DynamicData - - ChangeOperation string `xml:"changeOperation,omitempty"` - Key string `xml:"key"` - Spec HostNatServiceSpec `xml:"spec"` -} - -func init() { - t["HostNatServiceConfig"] = reflect.TypeOf((*HostNatServiceConfig)(nil)).Elem() -} - -type HostNatServiceNameServiceSpec struct { - DynamicData - - DnsAutoDetect bool `xml:"dnsAutoDetect"` - DnsPolicy string `xml:"dnsPolicy"` - DnsRetries int32 `xml:"dnsRetries"` - DnsTimeout int32 `xml:"dnsTimeout"` - DnsNameServer []string `xml:"dnsNameServer,omitempty"` - NbdsTimeout int32 `xml:"nbdsTimeout"` - NbnsRetries int32 `xml:"nbnsRetries"` - NbnsTimeout int32 `xml:"nbnsTimeout"` -} - -func init() { - t["HostNatServiceNameServiceSpec"] = reflect.TypeOf((*HostNatServiceNameServiceSpec)(nil)).Elem() -} - -type HostNatServicePortForwardSpec struct { - DynamicData - - Type string `xml:"type"` - Name string `xml:"name"` - HostPort int32 `xml:"hostPort"` - GuestPort int32 `xml:"guestPort"` - GuestIpAddress string `xml:"guestIpAddress"` -} - -func init() { - t["HostNatServicePortForwardSpec"] = reflect.TypeOf((*HostNatServicePortForwardSpec)(nil)).Elem() -} - -type HostNatServiceSpec struct { - DynamicData - - VirtualSwitch string `xml:"virtualSwitch"` - ActiveFtp bool `xml:"activeFtp"` - AllowAnyOui bool `xml:"allowAnyOui"` - ConfigPort bool `xml:"configPort"` - IpGatewayAddress string `xml:"ipGatewayAddress"` - UdpTimeout int32 `xml:"udpTimeout"` - PortForward []HostNatServicePortForwardSpec `xml:"portForward,omitempty"` - NameService *HostNatServiceNameServiceSpec `xml:"nameService,omitempty"` -} - -func init() { - t["HostNatServiceSpec"] = reflect.TypeOf((*HostNatServiceSpec)(nil)).Elem() -} - -type HostNetCapabilities struct { - DynamicData - - CanSetPhysicalNicLinkSpeed bool `xml:"canSetPhysicalNicLinkSpeed"` - SupportsNicTeaming bool `xml:"supportsNicTeaming"` - NicTeamingPolicy []string `xml:"nicTeamingPolicy,omitempty"` - SupportsVlan bool `xml:"supportsVlan"` - UsesServiceConsoleNic bool `xml:"usesServiceConsoleNic"` - SupportsNetworkHints bool `xml:"supportsNetworkHints"` - MaxPortGroupsPerVswitch int32 `xml:"maxPortGroupsPerVswitch,omitempty"` - VswitchConfigSupported bool `xml:"vswitchConfigSupported"` - VnicConfigSupported bool `xml:"vnicConfigSupported"` - IpRouteConfigSupported bool `xml:"ipRouteConfigSupported"` - DnsConfigSupported bool `xml:"dnsConfigSupported"` - DhcpOnVnicSupported bool `xml:"dhcpOnVnicSupported"` - IpV6Supported *bool `xml:"ipV6Supported"` -} - -func init() { - t["HostNetCapabilities"] = reflect.TypeOf((*HostNetCapabilities)(nil)).Elem() -} - -type HostNetOffloadCapabilities struct { - DynamicData - - CsumOffload *bool `xml:"csumOffload"` - TcpSegmentation *bool `xml:"tcpSegmentation"` - ZeroCopyXmit *bool `xml:"zeroCopyXmit"` -} - -func init() { - t["HostNetOffloadCapabilities"] = reflect.TypeOf((*HostNetOffloadCapabilities)(nil)).Elem() -} - -type HostNetStackInstance struct { - DynamicData - - Key string `xml:"key,omitempty"` - Name string `xml:"name,omitempty"` - DnsConfig BaseHostDnsConfig `xml:"dnsConfig,omitempty,typeattr"` - IpRouteConfig BaseHostIpRouteConfig `xml:"ipRouteConfig,omitempty,typeattr"` - RequestedMaxNumberOfConnections int32 `xml:"requestedMaxNumberOfConnections,omitempty"` - CongestionControlAlgorithm string `xml:"congestionControlAlgorithm,omitempty"` - IpV6Enabled *bool `xml:"ipV6Enabled"` - RouteTableConfig *HostIpRouteTableConfig `xml:"routeTableConfig,omitempty"` -} - -func init() { - t["HostNetStackInstance"] = reflect.TypeOf((*HostNetStackInstance)(nil)).Elem() -} - -type HostNetworkConfig struct { - DynamicData - - Vswitch []HostVirtualSwitchConfig `xml:"vswitch,omitempty"` - ProxySwitch []HostProxySwitchConfig `xml:"proxySwitch,omitempty"` - Portgroup []HostPortGroupConfig `xml:"portgroup,omitempty"` - Pnic []PhysicalNicConfig `xml:"pnic,omitempty"` - Vnic []HostVirtualNicConfig `xml:"vnic,omitempty"` - ConsoleVnic []HostVirtualNicConfig `xml:"consoleVnic,omitempty"` - DnsConfig BaseHostDnsConfig `xml:"dnsConfig,omitempty,typeattr"` - IpRouteConfig BaseHostIpRouteConfig `xml:"ipRouteConfig,omitempty,typeattr"` - ConsoleIpRouteConfig BaseHostIpRouteConfig `xml:"consoleIpRouteConfig,omitempty,typeattr"` - RouteTableConfig *HostIpRouteTableConfig `xml:"routeTableConfig,omitempty"` - Dhcp []HostDhcpServiceConfig `xml:"dhcp,omitempty"` - Nat []HostNatServiceConfig `xml:"nat,omitempty"` - IpV6Enabled *bool `xml:"ipV6Enabled"` - NetStackSpec []HostNetworkConfigNetStackSpec `xml:"netStackSpec,omitempty"` -} - -func init() { - t["HostNetworkConfig"] = reflect.TypeOf((*HostNetworkConfig)(nil)).Elem() -} - -type HostNetworkConfigNetStackSpec struct { - DynamicData - - NetStackInstance HostNetStackInstance `xml:"netStackInstance"` - Operation string `xml:"operation,omitempty"` -} - -func init() { - t["HostNetworkConfigNetStackSpec"] = reflect.TypeOf((*HostNetworkConfigNetStackSpec)(nil)).Elem() -} - -type HostNetworkConfigResult struct { - DynamicData - - VnicDevice []string `xml:"vnicDevice,omitempty"` - ConsoleVnicDevice []string `xml:"consoleVnicDevice,omitempty"` -} - -func init() { - t["HostNetworkConfigResult"] = reflect.TypeOf((*HostNetworkConfigResult)(nil)).Elem() -} - -type HostNetworkInfo struct { - DynamicData - - Vswitch []HostVirtualSwitch `xml:"vswitch,omitempty"` - ProxySwitch []HostProxySwitch `xml:"proxySwitch,omitempty"` - Portgroup []HostPortGroup `xml:"portgroup,omitempty"` - Pnic []PhysicalNic `xml:"pnic,omitempty"` - Vnic []HostVirtualNic `xml:"vnic,omitempty"` - ConsoleVnic []HostVirtualNic `xml:"consoleVnic,omitempty"` - DnsConfig BaseHostDnsConfig `xml:"dnsConfig,omitempty,typeattr"` - IpRouteConfig BaseHostIpRouteConfig `xml:"ipRouteConfig,omitempty,typeattr"` - ConsoleIpRouteConfig BaseHostIpRouteConfig `xml:"consoleIpRouteConfig,omitempty,typeattr"` - RouteTableInfo *HostIpRouteTableInfo `xml:"routeTableInfo,omitempty"` - Dhcp []HostDhcpService `xml:"dhcp,omitempty"` - Nat []HostNatService `xml:"nat,omitempty"` - IpV6Enabled *bool `xml:"ipV6Enabled"` - AtBootIpV6Enabled *bool `xml:"atBootIpV6Enabled"` - NetStackInstance []HostNetStackInstance `xml:"netStackInstance,omitempty"` - OpaqueSwitch []HostOpaqueSwitch `xml:"opaqueSwitch,omitempty"` - OpaqueNetwork []HostOpaqueNetworkInfo `xml:"opaqueNetwork,omitempty"` -} - -func init() { - t["HostNetworkInfo"] = reflect.TypeOf((*HostNetworkInfo)(nil)).Elem() -} - -type HostNetworkPolicy struct { - DynamicData - - Security *HostNetworkSecurityPolicy `xml:"security,omitempty"` - NicTeaming *HostNicTeamingPolicy `xml:"nicTeaming,omitempty"` - OffloadPolicy *HostNetOffloadCapabilities `xml:"offloadPolicy,omitempty"` - ShapingPolicy *HostNetworkTrafficShapingPolicy `xml:"shapingPolicy,omitempty"` -} - -func init() { - t["HostNetworkPolicy"] = reflect.TypeOf((*HostNetworkPolicy)(nil)).Elem() -} - -type HostNetworkResourceRuntime struct { - DynamicData - - PnicResourceInfo []HostPnicNetworkResourceInfo `xml:"pnicResourceInfo"` -} - -func init() { - t["HostNetworkResourceRuntime"] = reflect.TypeOf((*HostNetworkResourceRuntime)(nil)).Elem() -} - -type HostNetworkSecurityPolicy struct { - DynamicData - - AllowPromiscuous *bool `xml:"allowPromiscuous"` - MacChanges *bool `xml:"macChanges"` - ForgedTransmits *bool `xml:"forgedTransmits"` -} - -func init() { - t["HostNetworkSecurityPolicy"] = reflect.TypeOf((*HostNetworkSecurityPolicy)(nil)).Elem() -} - -type HostNetworkTrafficShapingPolicy struct { - DynamicData - - Enabled *bool `xml:"enabled"` - AverageBandwidth int64 `xml:"averageBandwidth,omitempty"` - PeakBandwidth int64 `xml:"peakBandwidth,omitempty"` - BurstSize int64 `xml:"burstSize,omitempty"` -} - -func init() { - t["HostNetworkTrafficShapingPolicy"] = reflect.TypeOf((*HostNetworkTrafficShapingPolicy)(nil)).Elem() -} - -type HostNewNetworkConnectInfo struct { - HostConnectInfoNetworkInfo -} - -func init() { - t["HostNewNetworkConnectInfo"] = reflect.TypeOf((*HostNewNetworkConnectInfo)(nil)).Elem() -} - -type HostNicFailureCriteria struct { - DynamicData - - CheckSpeed string `xml:"checkSpeed,omitempty"` - Speed int32 `xml:"speed,omitempty"` - CheckDuplex *bool `xml:"checkDuplex"` - FullDuplex *bool `xml:"fullDuplex"` - CheckErrorPercent *bool `xml:"checkErrorPercent"` - Percentage int32 `xml:"percentage,omitempty"` - CheckBeacon *bool `xml:"checkBeacon"` -} - -func init() { - t["HostNicFailureCriteria"] = reflect.TypeOf((*HostNicFailureCriteria)(nil)).Elem() -} - -type HostNicOrderPolicy struct { - DynamicData - - ActiveNic []string `xml:"activeNic,omitempty"` - StandbyNic []string `xml:"standbyNic,omitempty"` -} - -func init() { - t["HostNicOrderPolicy"] = reflect.TypeOf((*HostNicOrderPolicy)(nil)).Elem() -} - -type HostNicTeamingPolicy struct { - DynamicData - - Policy string `xml:"policy,omitempty"` - ReversePolicy *bool `xml:"reversePolicy"` - NotifySwitches *bool `xml:"notifySwitches"` - RollingOrder *bool `xml:"rollingOrder"` - FailureCriteria *HostNicFailureCriteria `xml:"failureCriteria,omitempty"` - NicOrder *HostNicOrderPolicy `xml:"nicOrder,omitempty"` -} - -func init() { - t["HostNicTeamingPolicy"] = reflect.TypeOf((*HostNicTeamingPolicy)(nil)).Elem() -} - -type HostNoAvailableNetworksEvent struct { - HostDasEvent - - Ips string `xml:"ips,omitempty"` -} - -func init() { - t["HostNoAvailableNetworksEvent"] = reflect.TypeOf((*HostNoAvailableNetworksEvent)(nil)).Elem() -} - -type HostNoHAEnabledPortGroupsEvent struct { - HostDasEvent -} - -func init() { - t["HostNoHAEnabledPortGroupsEvent"] = reflect.TypeOf((*HostNoHAEnabledPortGroupsEvent)(nil)).Elem() -} - -type HostNoRedundantManagementNetworkEvent struct { - HostDasEvent -} - -func init() { - t["HostNoRedundantManagementNetworkEvent"] = reflect.TypeOf((*HostNoRedundantManagementNetworkEvent)(nil)).Elem() -} - -type HostNonCompliantEvent struct { - HostEvent -} - -func init() { - t["HostNonCompliantEvent"] = reflect.TypeOf((*HostNonCompliantEvent)(nil)).Elem() -} - -type HostNotConnected struct { - HostCommunication -} - -func init() { - t["HostNotConnected"] = reflect.TypeOf((*HostNotConnected)(nil)).Elem() -} - -type HostNotConnectedFault HostNotConnected - -func init() { - t["HostNotConnectedFault"] = reflect.TypeOf((*HostNotConnectedFault)(nil)).Elem() -} - -type HostNotInClusterEvent struct { - HostDasEvent -} - -func init() { - t["HostNotInClusterEvent"] = reflect.TypeOf((*HostNotInClusterEvent)(nil)).Elem() -} - -type HostNotReachable struct { - HostCommunication -} - -func init() { - t["HostNotReachable"] = reflect.TypeOf((*HostNotReachable)(nil)).Elem() -} - -type HostNotReachableFault HostNotReachable - -func init() { - t["HostNotReachableFault"] = reflect.TypeOf((*HostNotReachableFault)(nil)).Elem() -} - -type HostNtpConfig struct { - DynamicData - - Server []string `xml:"server,omitempty"` - ConfigFile []string `xml:"configFile,omitempty"` -} - -func init() { - t["HostNtpConfig"] = reflect.TypeOf((*HostNtpConfig)(nil)).Elem() -} - -type HostNumaInfo struct { - DynamicData - - Type string `xml:"type"` - NumNodes int32 `xml:"numNodes"` - NumaNode []HostNumaNode `xml:"numaNode,omitempty"` -} - -func init() { - t["HostNumaInfo"] = reflect.TypeOf((*HostNumaInfo)(nil)).Elem() -} - -type HostNumaNode struct { - DynamicData - - TypeId byte `xml:"typeId"` - CpuID []int16 `xml:"cpuID"` - MemoryRangeBegin int64 `xml:"memoryRangeBegin"` - MemoryRangeLength int64 `xml:"memoryRangeLength"` -} - -func init() { - t["HostNumaNode"] = reflect.TypeOf((*HostNumaNode)(nil)).Elem() -} - -type HostNumericSensorInfo struct { - DynamicData - - Name string `xml:"name"` - HealthState BaseElementDescription `xml:"healthState,omitempty,typeattr"` - CurrentReading int64 `xml:"currentReading"` - UnitModifier int32 `xml:"unitModifier"` - BaseUnits string `xml:"baseUnits"` - RateUnits string `xml:"rateUnits,omitempty"` - SensorType string `xml:"sensorType"` - Id string `xml:"id,omitempty"` - TimeStamp string `xml:"timeStamp,omitempty"` -} - -func init() { - t["HostNumericSensorInfo"] = reflect.TypeOf((*HostNumericSensorInfo)(nil)).Elem() -} - -type HostOpaqueNetworkInfo struct { - DynamicData - - OpaqueNetworkId string `xml:"opaqueNetworkId"` - OpaqueNetworkName string `xml:"opaqueNetworkName"` - OpaqueNetworkType string `xml:"opaqueNetworkType"` - PnicZone []string `xml:"pnicZone,omitempty"` - Capability *OpaqueNetworkCapability `xml:"capability,omitempty"` - ExtraConfig []BaseOptionValue `xml:"extraConfig,omitempty,typeattr"` -} - -func init() { - t["HostOpaqueNetworkInfo"] = reflect.TypeOf((*HostOpaqueNetworkInfo)(nil)).Elem() -} - -type HostOpaqueSwitch struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name,omitempty"` - Pnic []string `xml:"pnic,omitempty"` - PnicZone []HostOpaqueSwitchPhysicalNicZone `xml:"pnicZone,omitempty"` - Status string `xml:"status,omitempty"` - Vtep []HostVirtualNic `xml:"vtep,omitempty"` - ExtraConfig []BaseOptionValue `xml:"extraConfig,omitempty,typeattr"` -} - -func init() { - t["HostOpaqueSwitch"] = reflect.TypeOf((*HostOpaqueSwitch)(nil)).Elem() -} - -type HostOpaqueSwitchPhysicalNicZone struct { - DynamicData - - Key string `xml:"key"` - PnicDevice []string `xml:"pnicDevice,omitempty"` -} - -func init() { - t["HostOpaqueSwitchPhysicalNicZone"] = reflect.TypeOf((*HostOpaqueSwitchPhysicalNicZone)(nil)).Elem() -} - -type HostOvercommittedEvent struct { - ClusterOvercommittedEvent -} - -func init() { - t["HostOvercommittedEvent"] = reflect.TypeOf((*HostOvercommittedEvent)(nil)).Elem() -} - -type HostParallelScsiHba struct { - HostHostBusAdapter -} - -func init() { - t["HostParallelScsiHba"] = reflect.TypeOf((*HostParallelScsiHba)(nil)).Elem() -} - -type HostParallelScsiTargetTransport struct { - HostTargetTransport -} - -func init() { - t["HostParallelScsiTargetTransport"] = reflect.TypeOf((*HostParallelScsiTargetTransport)(nil)).Elem() -} - -type HostPatchManagerLocator struct { - DynamicData - - Url string `xml:"url"` - Proxy string `xml:"proxy,omitempty"` -} - -func init() { - t["HostPatchManagerLocator"] = reflect.TypeOf((*HostPatchManagerLocator)(nil)).Elem() -} - -type HostPatchManagerPatchManagerOperationSpec struct { - DynamicData - - Proxy string `xml:"proxy,omitempty"` - Port int32 `xml:"port,omitempty"` - UserName string `xml:"userName,omitempty"` - Password string `xml:"password,omitempty"` - CmdOption string `xml:"cmdOption,omitempty"` -} - -func init() { - t["HostPatchManagerPatchManagerOperationSpec"] = reflect.TypeOf((*HostPatchManagerPatchManagerOperationSpec)(nil)).Elem() -} - -type HostPatchManagerResult struct { - DynamicData - - Version string `xml:"version"` - Status []HostPatchManagerStatus `xml:"status,omitempty"` - XmlResult string `xml:"xmlResult,omitempty"` -} - -func init() { - t["HostPatchManagerResult"] = reflect.TypeOf((*HostPatchManagerResult)(nil)).Elem() -} - -type HostPatchManagerStatus struct { - DynamicData - - Id string `xml:"id"` - Applicable bool `xml:"applicable"` - Reason []string `xml:"reason,omitempty"` - Integrity string `xml:"integrity,omitempty"` - Installed bool `xml:"installed"` - InstallState []string `xml:"installState,omitempty"` - PrerequisitePatch []HostPatchManagerStatusPrerequisitePatch `xml:"prerequisitePatch,omitempty"` - RestartRequired bool `xml:"restartRequired"` - ReconnectRequired bool `xml:"reconnectRequired"` - VmOffRequired bool `xml:"vmOffRequired"` - SupersededPatchIds []string `xml:"supersededPatchIds,omitempty"` -} - -func init() { - t["HostPatchManagerStatus"] = reflect.TypeOf((*HostPatchManagerStatus)(nil)).Elem() -} - -type HostPatchManagerStatusPrerequisitePatch struct { - DynamicData - - Id string `xml:"id"` - InstallState []string `xml:"installState,omitempty"` -} - -func init() { - t["HostPatchManagerStatusPrerequisitePatch"] = reflect.TypeOf((*HostPatchManagerStatusPrerequisitePatch)(nil)).Elem() -} - -type HostPathSelectionPolicyOption struct { - DynamicData - - Policy BaseElementDescription `xml:"policy,typeattr"` -} - -func init() { - t["HostPathSelectionPolicyOption"] = reflect.TypeOf((*HostPathSelectionPolicyOption)(nil)).Elem() -} - -type HostPciDevice struct { - DynamicData - - Id string `xml:"id"` - ClassId int16 `xml:"classId"` - Bus byte `xml:"bus"` - Slot byte `xml:"slot"` - Function byte `xml:"function"` - VendorId int16 `xml:"vendorId"` - SubVendorId int16 `xml:"subVendorId"` - VendorName string `xml:"vendorName"` - DeviceId int16 `xml:"deviceId"` - SubDeviceId int16 `xml:"subDeviceId"` - ParentBridge string `xml:"parentBridge,omitempty"` - DeviceName string `xml:"deviceName"` -} - -func init() { - t["HostPciDevice"] = reflect.TypeOf((*HostPciDevice)(nil)).Elem() -} - -type HostPciPassthruConfig struct { - DynamicData - - Id string `xml:"id"` - PassthruEnabled bool `xml:"passthruEnabled"` -} - -func init() { - t["HostPciPassthruConfig"] = reflect.TypeOf((*HostPciPassthruConfig)(nil)).Elem() -} - -type HostPciPassthruInfo struct { - DynamicData - - Id string `xml:"id"` - DependentDevice string `xml:"dependentDevice"` - PassthruEnabled bool `xml:"passthruEnabled"` - PassthruCapable bool `xml:"passthruCapable"` - PassthruActive bool `xml:"passthruActive"` -} - -func init() { - t["HostPciPassthruInfo"] = reflect.TypeOf((*HostPciPassthruInfo)(nil)).Elem() -} - -type HostPlacedVirtualNicIdentifier struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - VnicKey string `xml:"vnicKey"` - Reservation int32 `xml:"reservation,omitempty"` -} - -func init() { - t["HostPlacedVirtualNicIdentifier"] = reflect.TypeOf((*HostPlacedVirtualNicIdentifier)(nil)).Elem() -} - -type HostPlugStoreTopology struct { - DynamicData - - Adapter []HostPlugStoreTopologyAdapter `xml:"adapter,omitempty"` - Path []HostPlugStoreTopologyPath `xml:"path,omitempty"` - Target []HostPlugStoreTopologyTarget `xml:"target,omitempty"` - Device []HostPlugStoreTopologyDevice `xml:"device,omitempty"` - Plugin []HostPlugStoreTopologyPlugin `xml:"plugin,omitempty"` -} - -func init() { - t["HostPlugStoreTopology"] = reflect.TypeOf((*HostPlugStoreTopology)(nil)).Elem() -} - -type HostPlugStoreTopologyAdapter struct { - DynamicData - - Key string `xml:"key"` - Adapter string `xml:"adapter"` - Path []string `xml:"path,omitempty"` -} - -func init() { - t["HostPlugStoreTopologyAdapter"] = reflect.TypeOf((*HostPlugStoreTopologyAdapter)(nil)).Elem() -} - -type HostPlugStoreTopologyDevice struct { - DynamicData - - Key string `xml:"key"` - Lun string `xml:"lun"` - Path []string `xml:"path,omitempty"` -} - -func init() { - t["HostPlugStoreTopologyDevice"] = reflect.TypeOf((*HostPlugStoreTopologyDevice)(nil)).Elem() -} - -type HostPlugStoreTopologyPath struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name"` - ChannelNumber int32 `xml:"channelNumber,omitempty"` - TargetNumber int32 `xml:"targetNumber,omitempty"` - LunNumber int32 `xml:"lunNumber,omitempty"` - Adapter string `xml:"adapter,omitempty"` - Target string `xml:"target,omitempty"` - Device string `xml:"device,omitempty"` -} - -func init() { - t["HostPlugStoreTopologyPath"] = reflect.TypeOf((*HostPlugStoreTopologyPath)(nil)).Elem() -} - -type HostPlugStoreTopologyPlugin struct { - DynamicData - - Key string `xml:"key"` - Name string `xml:"name"` - Device []string `xml:"device,omitempty"` - ClaimedPath []string `xml:"claimedPath,omitempty"` -} - -func init() { - t["HostPlugStoreTopologyPlugin"] = reflect.TypeOf((*HostPlugStoreTopologyPlugin)(nil)).Elem() -} - -type HostPlugStoreTopologyTarget struct { - DynamicData - - Key string `xml:"key"` - Transport BaseHostTargetTransport `xml:"transport,omitempty,typeattr"` -} - -func init() { - t["HostPlugStoreTopologyTarget"] = reflect.TypeOf((*HostPlugStoreTopologyTarget)(nil)).Elem() -} - -type HostPnicNetworkResourceInfo struct { - DynamicData - - PnicDevice string `xml:"pnicDevice"` - AvailableBandwidthForVMTraffic int64 `xml:"availableBandwidthForVMTraffic,omitempty"` - UnusedBandwidthForVMTraffic int64 `xml:"unusedBandwidthForVMTraffic,omitempty"` - PlacedVirtualNics []HostPlacedVirtualNicIdentifier `xml:"placedVirtualNics,omitempty"` -} - -func init() { - t["HostPnicNetworkResourceInfo"] = reflect.TypeOf((*HostPnicNetworkResourceInfo)(nil)).Elem() -} - -type HostPortGroup struct { - DynamicData - - Key string `xml:"key,omitempty"` - Port []HostPortGroupPort `xml:"port,omitempty"` - Vswitch string `xml:"vswitch,omitempty"` - ComputedPolicy HostNetworkPolicy `xml:"computedPolicy"` - Spec HostPortGroupSpec `xml:"spec"` -} - -func init() { - t["HostPortGroup"] = reflect.TypeOf((*HostPortGroup)(nil)).Elem() -} - -type HostPortGroupConfig struct { - DynamicData - - ChangeOperation string `xml:"changeOperation,omitempty"` - Spec *HostPortGroupSpec `xml:"spec,omitempty"` -} - -func init() { - t["HostPortGroupConfig"] = reflect.TypeOf((*HostPortGroupConfig)(nil)).Elem() -} - -type HostPortGroupPort struct { - DynamicData - - Key string `xml:"key,omitempty"` - Mac []string `xml:"mac,omitempty"` - Type string `xml:"type"` -} - -func init() { - t["HostPortGroupPort"] = reflect.TypeOf((*HostPortGroupPort)(nil)).Elem() -} - -type HostPortGroupProfile struct { - PortGroupProfile - - IpConfig IpAddressProfile `xml:"ipConfig"` -} - -func init() { - t["HostPortGroupProfile"] = reflect.TypeOf((*HostPortGroupProfile)(nil)).Elem() -} - -type HostPortGroupSpec struct { - DynamicData - - Name string `xml:"name"` - VlanId int32 `xml:"vlanId"` - VswitchName string `xml:"vswitchName"` - Policy HostNetworkPolicy `xml:"policy"` -} - -func init() { - t["HostPortGroupSpec"] = reflect.TypeOf((*HostPortGroupSpec)(nil)).Elem() -} - -type HostPosixAccountSpec struct { - HostAccountSpec - - PosixId int32 `xml:"posixId,omitempty"` - ShellAccess *bool `xml:"shellAccess"` -} - -func init() { - t["HostPosixAccountSpec"] = reflect.TypeOf((*HostPosixAccountSpec)(nil)).Elem() -} - -type HostPowerOpFailed struct { - VimFault -} - -func init() { - t["HostPowerOpFailed"] = reflect.TypeOf((*HostPowerOpFailed)(nil)).Elem() -} - -type HostPowerOpFailedFault BaseHostPowerOpFailed - -func init() { - t["HostPowerOpFailedFault"] = reflect.TypeOf((*HostPowerOpFailedFault)(nil)).Elem() -} - -type HostPowerPolicy struct { - DynamicData - - Key int32 `xml:"key"` - Name string `xml:"name"` - ShortName string `xml:"shortName"` - Description string `xml:"description"` -} - -func init() { - t["HostPowerPolicy"] = reflect.TypeOf((*HostPowerPolicy)(nil)).Elem() -} - -type HostPrimaryAgentNotShortNameEvent struct { - HostDasEvent - - PrimaryAgent string `xml:"primaryAgent"` -} - -func init() { - t["HostPrimaryAgentNotShortNameEvent"] = reflect.TypeOf((*HostPrimaryAgentNotShortNameEvent)(nil)).Elem() -} - -type HostProfileAppliedEvent struct { - HostEvent - - Profile ProfileEventArgument `xml:"profile"` -} - -func init() { - t["HostProfileAppliedEvent"] = reflect.TypeOf((*HostProfileAppliedEvent)(nil)).Elem() -} - -type HostProfileCompleteConfigSpec struct { - HostProfileConfigSpec - - ApplyProfile *HostApplyProfile `xml:"applyProfile,omitempty"` - CustomComplyProfile *ComplianceProfile `xml:"customComplyProfile,omitempty"` - DisabledExpressionListChanged bool `xml:"disabledExpressionListChanged"` - DisabledExpressionList []string `xml:"disabledExpressionList,omitempty"` - ValidatorHost *ManagedObjectReference `xml:"validatorHost,omitempty"` - Validating *bool `xml:"validating"` - HostConfig *HostProfileConfigInfo `xml:"hostConfig,omitempty"` -} - -func init() { - t["HostProfileCompleteConfigSpec"] = reflect.TypeOf((*HostProfileCompleteConfigSpec)(nil)).Elem() -} - -type HostProfileConfigInfo struct { - ProfileConfigInfo - - ApplyProfile *HostApplyProfile `xml:"applyProfile,omitempty"` - DefaultComplyProfile *ComplianceProfile `xml:"defaultComplyProfile,omitempty"` - DefaultComplyLocator []ComplianceLocator `xml:"defaultComplyLocator,omitempty"` - CustomComplyProfile *ComplianceProfile `xml:"customComplyProfile,omitempty"` - DisabledExpressionList []string `xml:"disabledExpressionList,omitempty"` - Description *ProfileDescription `xml:"description,omitempty"` -} - -func init() { - t["HostProfileConfigInfo"] = reflect.TypeOf((*HostProfileConfigInfo)(nil)).Elem() -} - -type HostProfileConfigSpec struct { - ProfileCreateSpec -} - -func init() { - t["HostProfileConfigSpec"] = reflect.TypeOf((*HostProfileConfigSpec)(nil)).Elem() -} - -type HostProfileHostBasedConfigSpec struct { - HostProfileConfigSpec - - Host ManagedObjectReference `xml:"host"` - UseHostProfileEngine *bool `xml:"useHostProfileEngine"` -} - -func init() { - t["HostProfileHostBasedConfigSpec"] = reflect.TypeOf((*HostProfileHostBasedConfigSpec)(nil)).Elem() -} - -type HostProfileManagerCompositionValidationResultResultElement struct { - DynamicData - - Target ManagedObjectReference `xml:"target"` - Status string `xml:"status"` - Errors []LocalizableMessage `xml:"errors,omitempty"` - SourceDiffForToBeMerged *HostApplyProfile `xml:"sourceDiffForToBeMerged,omitempty"` - TargetDiffForToBeMerged *HostApplyProfile `xml:"targetDiffForToBeMerged,omitempty"` - ToBeAdded *HostApplyProfile `xml:"toBeAdded,omitempty"` - ToBeDeleted *HostApplyProfile `xml:"toBeDeleted,omitempty"` - ToBeDisabled *HostApplyProfile `xml:"toBeDisabled,omitempty"` - ToBeEnabled *HostApplyProfile `xml:"toBeEnabled,omitempty"` - ToBeReenableCC *HostApplyProfile `xml:"toBeReenableCC,omitempty"` -} - -func init() { - t["HostProfileManagerCompositionValidationResultResultElement"] = reflect.TypeOf((*HostProfileManagerCompositionValidationResultResultElement)(nil)).Elem() -} - -type HostProfileManagerConfigTaskList struct { - DynamicData - - ConfigSpec *HostConfigSpec `xml:"configSpec,omitempty"` - TaskDescription []LocalizableMessage `xml:"taskDescription,omitempty"` - TaskListRequirement []string `xml:"taskListRequirement,omitempty"` -} - -func init() { - t["HostProfileManagerConfigTaskList"] = reflect.TypeOf((*HostProfileManagerConfigTaskList)(nil)).Elem() -} - -type HostProfileManagerHostToConfigSpecMap struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - ConfigSpec BaseAnswerFileCreateSpec `xml:"configSpec,typeattr"` -} - -func init() { - t["HostProfileManagerHostToConfigSpecMap"] = reflect.TypeOf((*HostProfileManagerHostToConfigSpecMap)(nil)).Elem() -} - -type HostProfileSerializedHostProfileSpec struct { - ProfileSerializedCreateSpec - - ValidatorHost *ManagedObjectReference `xml:"validatorHost,omitempty"` - Validating *bool `xml:"validating"` -} - -func init() { - t["HostProfileSerializedHostProfileSpec"] = reflect.TypeOf((*HostProfileSerializedHostProfileSpec)(nil)).Elem() -} - -type HostProfilesEntityCustomizations struct { - DynamicData -} - -func init() { - t["HostProfilesEntityCustomizations"] = reflect.TypeOf((*HostProfilesEntityCustomizations)(nil)).Elem() -} - -type HostProtocolEndpoint struct { - DynamicData - - PeType string `xml:"peType"` - Type string `xml:"type,omitempty"` - Uuid string `xml:"uuid"` - HostKey []ManagedObjectReference `xml:"hostKey,omitempty"` - StorageArray string `xml:"storageArray,omitempty"` - NfsServer string `xml:"nfsServer,omitempty"` - NfsDir string `xml:"nfsDir,omitempty"` - NfsServerScope string `xml:"nfsServerScope,omitempty"` - NfsServerMajor string `xml:"nfsServerMajor,omitempty"` - NfsServerAuthType string `xml:"nfsServerAuthType,omitempty"` - NfsServerUser string `xml:"nfsServerUser,omitempty"` - DeviceId string `xml:"deviceId,omitempty"` -} - -func init() { - t["HostProtocolEndpoint"] = reflect.TypeOf((*HostProtocolEndpoint)(nil)).Elem() -} - -type HostProxySwitch struct { - DynamicData - - DvsUuid string `xml:"dvsUuid"` - DvsName string `xml:"dvsName"` - Key string `xml:"key"` - NumPorts int32 `xml:"numPorts"` - ConfigNumPorts int32 `xml:"configNumPorts,omitempty"` - NumPortsAvailable int32 `xml:"numPortsAvailable"` - UplinkPort []KeyValue `xml:"uplinkPort,omitempty"` - Mtu int32 `xml:"mtu,omitempty"` - Pnic []string `xml:"pnic,omitempty"` - Spec HostProxySwitchSpec `xml:"spec"` - HostLag []HostProxySwitchHostLagConfig `xml:"hostLag,omitempty"` - NetworkReservationSupported *bool `xml:"networkReservationSupported"` -} - -func init() { - t["HostProxySwitch"] = reflect.TypeOf((*HostProxySwitch)(nil)).Elem() -} - -type HostProxySwitchConfig struct { - DynamicData - - ChangeOperation string `xml:"changeOperation,omitempty"` - Uuid string `xml:"uuid"` - Spec *HostProxySwitchSpec `xml:"spec,omitempty"` -} - -func init() { - t["HostProxySwitchConfig"] = reflect.TypeOf((*HostProxySwitchConfig)(nil)).Elem() -} - -type HostProxySwitchHostLagConfig struct { - DynamicData - - LagKey string `xml:"lagKey"` - LagName string `xml:"lagName,omitempty"` - UplinkPort []KeyValue `xml:"uplinkPort,omitempty"` -} - -func init() { - t["HostProxySwitchHostLagConfig"] = reflect.TypeOf((*HostProxySwitchHostLagConfig)(nil)).Elem() -} - -type HostProxySwitchSpec struct { - DynamicData - - Backing BaseDistributedVirtualSwitchHostMemberBacking `xml:"backing,omitempty,typeattr"` -} - -func init() { - t["HostProxySwitchSpec"] = reflect.TypeOf((*HostProxySwitchSpec)(nil)).Elem() -} - -type HostReconcileDatastoreInventoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["HostReconcileDatastoreInventoryRequestType"] = reflect.TypeOf((*HostReconcileDatastoreInventoryRequestType)(nil)).Elem() -} - -type HostReconcileDatastoreInventory_Task HostReconcileDatastoreInventoryRequestType - -func init() { - t["HostReconcileDatastoreInventory_Task"] = reflect.TypeOf((*HostReconcileDatastoreInventory_Task)(nil)).Elem() -} - -type HostReconcileDatastoreInventory_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type HostReconnectionFailedEvent struct { - HostEvent -} - -func init() { - t["HostReconnectionFailedEvent"] = reflect.TypeOf((*HostReconnectionFailedEvent)(nil)).Elem() -} - -type HostRegisterDisk HostRegisterDiskRequestType - -func init() { - t["HostRegisterDisk"] = reflect.TypeOf((*HostRegisterDisk)(nil)).Elem() -} - -type HostRegisterDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Path string `xml:"path"` - Name string `xml:"name,omitempty"` -} - -func init() { - t["HostRegisterDiskRequestType"] = reflect.TypeOf((*HostRegisterDiskRequestType)(nil)).Elem() -} - -type HostRegisterDiskResponse struct { - Returnval VStorageObject `xml:"returnval"` -} - -type HostReliableMemoryInfo struct { - DynamicData - - MemorySize int64 `xml:"memorySize"` -} - -func init() { - t["HostReliableMemoryInfo"] = reflect.TypeOf((*HostReliableMemoryInfo)(nil)).Elem() -} - -type HostRelocateVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - Spec VslmRelocateSpec `xml:"spec"` -} - -func init() { - t["HostRelocateVStorageObjectRequestType"] = reflect.TypeOf((*HostRelocateVStorageObjectRequestType)(nil)).Elem() -} - -type HostRelocateVStorageObject_Task HostRelocateVStorageObjectRequestType - -func init() { - t["HostRelocateVStorageObject_Task"] = reflect.TypeOf((*HostRelocateVStorageObject_Task)(nil)).Elem() -} - -type HostRelocateVStorageObject_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type HostRemoveVFlashResource HostRemoveVFlashResourceRequestType - -func init() { - t["HostRemoveVFlashResource"] = reflect.TypeOf((*HostRemoveVFlashResource)(nil)).Elem() -} - -type HostRemoveVFlashResourceRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["HostRemoveVFlashResourceRequestType"] = reflect.TypeOf((*HostRemoveVFlashResourceRequestType)(nil)).Elem() -} - -type HostRemoveVFlashResourceResponse struct { -} - -type HostRemovedEvent struct { - HostEvent -} - -func init() { - t["HostRemovedEvent"] = reflect.TypeOf((*HostRemovedEvent)(nil)).Elem() -} - -type HostRenameVStorageObject HostRenameVStorageObjectRequestType - -func init() { - t["HostRenameVStorageObject"] = reflect.TypeOf((*HostRenameVStorageObject)(nil)).Elem() -} - -type HostRenameVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - Name string `xml:"name"` -} - -func init() { - t["HostRenameVStorageObjectRequestType"] = reflect.TypeOf((*HostRenameVStorageObjectRequestType)(nil)).Elem() -} - -type HostRenameVStorageObjectResponse struct { -} - -type HostResignatureRescanResult struct { - DynamicData - - Rescan []HostVmfsRescanResult `xml:"rescan,omitempty"` - Result ManagedObjectReference `xml:"result"` -} - -func init() { - t["HostResignatureRescanResult"] = reflect.TypeOf((*HostResignatureRescanResult)(nil)).Elem() -} - -type HostRetrieveVStorageObject HostRetrieveVStorageObjectRequestType - -func init() { - t["HostRetrieveVStorageObject"] = reflect.TypeOf((*HostRetrieveVStorageObject)(nil)).Elem() -} - -type HostRetrieveVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["HostRetrieveVStorageObjectRequestType"] = reflect.TypeOf((*HostRetrieveVStorageObjectRequestType)(nil)).Elem() -} - -type HostRetrieveVStorageObjectResponse struct { - Returnval VStorageObject `xml:"returnval"` -} - -type HostRetrieveVStorageObjectState HostRetrieveVStorageObjectStateRequestType - -func init() { - t["HostRetrieveVStorageObjectState"] = reflect.TypeOf((*HostRetrieveVStorageObjectState)(nil)).Elem() -} - -type HostRetrieveVStorageObjectStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["HostRetrieveVStorageObjectStateRequestType"] = reflect.TypeOf((*HostRetrieveVStorageObjectStateRequestType)(nil)).Elem() -} - -type HostRetrieveVStorageObjectStateResponse struct { - Returnval VStorageObjectStateInfo `xml:"returnval"` -} - -type HostRuntimeInfo struct { - DynamicData - - ConnectionState HostSystemConnectionState `xml:"connectionState"` - PowerState HostSystemPowerState `xml:"powerState"` - StandbyMode string `xml:"standbyMode,omitempty"` - InMaintenanceMode bool `xml:"inMaintenanceMode"` - InQuarantineMode *bool `xml:"inQuarantineMode"` - BootTime *time.Time `xml:"bootTime"` - HealthSystemRuntime *HealthSystemRuntime `xml:"healthSystemRuntime,omitempty"` - DasHostState *ClusterDasFdmHostState `xml:"dasHostState,omitempty"` - TpmPcrValues []HostTpmDigestInfo `xml:"tpmPcrValues,omitempty"` - VsanRuntimeInfo *VsanHostRuntimeInfo `xml:"vsanRuntimeInfo,omitempty"` - NetworkRuntimeInfo *HostRuntimeInfoNetworkRuntimeInfo `xml:"networkRuntimeInfo,omitempty"` - VFlashResourceRuntimeInfo *HostVFlashManagerVFlashResourceRunTimeInfo `xml:"vFlashResourceRuntimeInfo,omitempty"` - HostMaxVirtualDiskCapacity int64 `xml:"hostMaxVirtualDiskCapacity,omitempty"` - CryptoState string `xml:"cryptoState,omitempty"` - CryptoKeyId *CryptoKeyId `xml:"cryptoKeyId,omitempty"` -} - -func init() { - t["HostRuntimeInfo"] = reflect.TypeOf((*HostRuntimeInfo)(nil)).Elem() -} - -type HostRuntimeInfoNetStackInstanceRuntimeInfo struct { - DynamicData - - NetStackInstanceKey string `xml:"netStackInstanceKey"` - State string `xml:"state,omitempty"` - VmknicKeys []string `xml:"vmknicKeys,omitempty"` - MaxNumberOfConnections int32 `xml:"maxNumberOfConnections,omitempty"` - CurrentIpV6Enabled *bool `xml:"currentIpV6Enabled"` -} - -func init() { - t["HostRuntimeInfoNetStackInstanceRuntimeInfo"] = reflect.TypeOf((*HostRuntimeInfoNetStackInstanceRuntimeInfo)(nil)).Elem() -} - -type HostRuntimeInfoNetworkRuntimeInfo struct { - DynamicData - - NetStackInstanceRuntimeInfo []HostRuntimeInfoNetStackInstanceRuntimeInfo `xml:"netStackInstanceRuntimeInfo,omitempty"` - NetworkResourceRuntime *HostNetworkResourceRuntime `xml:"networkResourceRuntime,omitempty"` -} - -func init() { - t["HostRuntimeInfoNetworkRuntimeInfo"] = reflect.TypeOf((*HostRuntimeInfoNetworkRuntimeInfo)(nil)).Elem() -} - -type HostScheduleReconcileDatastoreInventory HostScheduleReconcileDatastoreInventoryRequestType - -func init() { - t["HostScheduleReconcileDatastoreInventory"] = reflect.TypeOf((*HostScheduleReconcileDatastoreInventory)(nil)).Elem() -} - -type HostScheduleReconcileDatastoreInventoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["HostScheduleReconcileDatastoreInventoryRequestType"] = reflect.TypeOf((*HostScheduleReconcileDatastoreInventoryRequestType)(nil)).Elem() -} - -type HostScheduleReconcileDatastoreInventoryResponse struct { -} - -type HostScsiDisk struct { - ScsiLun - - Capacity HostDiskDimensionsLba `xml:"capacity"` - DevicePath string `xml:"devicePath"` - Ssd *bool `xml:"ssd"` - LocalDisk *bool `xml:"localDisk"` - PhysicalLocation []string `xml:"physicalLocation,omitempty"` - EmulatedDIXDIFEnabled *bool `xml:"emulatedDIXDIFEnabled"` - VsanDiskInfo *VsanHostVsanDiskInfo `xml:"vsanDiskInfo,omitempty"` - ScsiDiskType string `xml:"scsiDiskType,omitempty"` -} - -func init() { - t["HostScsiDisk"] = reflect.TypeOf((*HostScsiDisk)(nil)).Elem() -} - -type HostScsiDiskPartition struct { - DynamicData - - DiskName string `xml:"diskName"` - Partition int32 `xml:"partition"` -} - -func init() { - t["HostScsiDiskPartition"] = reflect.TypeOf((*HostScsiDiskPartition)(nil)).Elem() -} - -type HostScsiTopology struct { - DynamicData - - Adapter []HostScsiTopologyInterface `xml:"adapter,omitempty"` -} - -func init() { - t["HostScsiTopology"] = reflect.TypeOf((*HostScsiTopology)(nil)).Elem() -} - -type HostScsiTopologyInterface struct { - DynamicData - - Key string `xml:"key"` - Adapter string `xml:"adapter"` - Target []HostScsiTopologyTarget `xml:"target,omitempty"` -} - -func init() { - t["HostScsiTopologyInterface"] = reflect.TypeOf((*HostScsiTopologyInterface)(nil)).Elem() -} - -type HostScsiTopologyLun struct { - DynamicData - - Key string `xml:"key"` - Lun int32 `xml:"lun"` - ScsiLun string `xml:"scsiLun"` -} - -func init() { - t["HostScsiTopologyLun"] = reflect.TypeOf((*HostScsiTopologyLun)(nil)).Elem() -} - -type HostScsiTopologyTarget struct { - DynamicData - - Key string `xml:"key"` - Target int32 `xml:"target"` - Lun []HostScsiTopologyLun `xml:"lun,omitempty"` - Transport BaseHostTargetTransport `xml:"transport,omitempty,typeattr"` -} - -func init() { - t["HostScsiTopologyTarget"] = reflect.TypeOf((*HostScsiTopologyTarget)(nil)).Elem() -} - -type HostSecuritySpec struct { - DynamicData - - AdminPassword string `xml:"adminPassword,omitempty"` - RemovePermission []Permission `xml:"removePermission,omitempty"` - AddPermission []Permission `xml:"addPermission,omitempty"` -} - -func init() { - t["HostSecuritySpec"] = reflect.TypeOf((*HostSecuritySpec)(nil)).Elem() -} - -type HostSerialAttachedHba struct { - HostHostBusAdapter - - NodeWorldWideName string `xml:"nodeWorldWideName"` -} - -func init() { - t["HostSerialAttachedHba"] = reflect.TypeOf((*HostSerialAttachedHba)(nil)).Elem() -} - -type HostSerialAttachedTargetTransport struct { - HostTargetTransport -} - -func init() { - t["HostSerialAttachedTargetTransport"] = reflect.TypeOf((*HostSerialAttachedTargetTransport)(nil)).Elem() -} - -type HostService struct { - DynamicData - - Key string `xml:"key"` - Label string `xml:"label"` - Required bool `xml:"required"` - Uninstallable bool `xml:"uninstallable"` - Running bool `xml:"running"` - Ruleset []string `xml:"ruleset,omitempty"` - Policy string `xml:"policy"` - SourcePackage *HostServiceSourcePackage `xml:"sourcePackage,omitempty"` -} - -func init() { - t["HostService"] = reflect.TypeOf((*HostService)(nil)).Elem() -} - -type HostServiceConfig struct { - DynamicData - - ServiceId string `xml:"serviceId"` - StartupPolicy string `xml:"startupPolicy"` -} - -func init() { - t["HostServiceConfig"] = reflect.TypeOf((*HostServiceConfig)(nil)).Elem() -} - -type HostServiceInfo struct { - DynamicData - - Service []HostService `xml:"service,omitempty"` -} - -func init() { - t["HostServiceInfo"] = reflect.TypeOf((*HostServiceInfo)(nil)).Elem() -} - -type HostServiceSourcePackage struct { - DynamicData - - SourcePackageName string `xml:"sourcePackageName"` - Description string `xml:"description"` -} - -func init() { - t["HostServiceSourcePackage"] = reflect.TypeOf((*HostServiceSourcePackage)(nil)).Elem() -} - -type HostServiceTicket struct { - DynamicData - - Host string `xml:"host,omitempty"` - Port int32 `xml:"port,omitempty"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` - Service string `xml:"service"` - ServiceVersion string `xml:"serviceVersion"` - SessionId string `xml:"sessionId"` -} - -func init() { - t["HostServiceTicket"] = reflect.TypeOf((*HostServiceTicket)(nil)).Elem() -} - -type HostShortNameInconsistentEvent struct { - HostDasEvent - - ShortName string `xml:"shortName"` - ShortName2 string `xml:"shortName2"` -} - -func init() { - t["HostShortNameInconsistentEvent"] = reflect.TypeOf((*HostShortNameInconsistentEvent)(nil)).Elem() -} - -type HostShortNameToIpFailedEvent struct { - HostEvent - - ShortName string `xml:"shortName"` -} - -func init() { - t["HostShortNameToIpFailedEvent"] = reflect.TypeOf((*HostShortNameToIpFailedEvent)(nil)).Elem() -} - -type HostShutdownEvent struct { - HostEvent - - Reason string `xml:"reason"` -} - -func init() { - t["HostShutdownEvent"] = reflect.TypeOf((*HostShutdownEvent)(nil)).Elem() -} - -type HostSnmpConfigSpec struct { - DynamicData - - Enabled *bool `xml:"enabled"` - Port int32 `xml:"port,omitempty"` - ReadOnlyCommunities []string `xml:"readOnlyCommunities,omitempty"` - TrapTargets []HostSnmpDestination `xml:"trapTargets,omitempty"` - Option []KeyValue `xml:"option,omitempty"` -} - -func init() { - t["HostSnmpConfigSpec"] = reflect.TypeOf((*HostSnmpConfigSpec)(nil)).Elem() -} - -type HostSnmpDestination struct { - DynamicData - - HostName string `xml:"hostName"` - Port int32 `xml:"port"` - Community string `xml:"community"` -} - -func init() { - t["HostSnmpDestination"] = reflect.TypeOf((*HostSnmpDestination)(nil)).Elem() -} - -type HostSnmpSystemAgentLimits struct { - DynamicData - - MaxReadOnlyCommunities int32 `xml:"maxReadOnlyCommunities"` - MaxTrapDestinations int32 `xml:"maxTrapDestinations"` - MaxCommunityLength int32 `xml:"maxCommunityLength"` - MaxBufferSize int32 `xml:"maxBufferSize"` - Capability HostSnmpAgentCapability `xml:"capability,omitempty"` -} - -func init() { - t["HostSnmpSystemAgentLimits"] = reflect.TypeOf((*HostSnmpSystemAgentLimits)(nil)).Elem() -} - -type HostSpecGetUpdatedHosts HostSpecGetUpdatedHostsRequestType - -func init() { - t["HostSpecGetUpdatedHosts"] = reflect.TypeOf((*HostSpecGetUpdatedHosts)(nil)).Elem() -} - -type HostSpecGetUpdatedHostsRequestType struct { - This ManagedObjectReference `xml:"_this"` - StartChangeID string `xml:"startChangeID,omitempty"` - EndChangeID string `xml:"endChangeID,omitempty"` -} - -func init() { - t["HostSpecGetUpdatedHostsRequestType"] = reflect.TypeOf((*HostSpecGetUpdatedHostsRequestType)(nil)).Elem() -} - -type HostSpecGetUpdatedHostsResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type HostSpecification struct { - DynamicData - - CreatedTime time.Time `xml:"createdTime"` - LastModified *time.Time `xml:"lastModified"` - Host ManagedObjectReference `xml:"host"` - SubSpecs []HostSubSpecification `xml:"subSpecs,omitempty"` - ChangeID string `xml:"changeID,omitempty"` -} - -func init() { - t["HostSpecification"] = reflect.TypeOf((*HostSpecification)(nil)).Elem() -} - -type HostSpecificationOperationFailed struct { - VimFault - - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["HostSpecificationOperationFailed"] = reflect.TypeOf((*HostSpecificationOperationFailed)(nil)).Elem() -} - -type HostSpecificationOperationFailedFault HostSpecificationOperationFailed - -func init() { - t["HostSpecificationOperationFailedFault"] = reflect.TypeOf((*HostSpecificationOperationFailedFault)(nil)).Elem() -} - -type HostSriovConfig struct { - HostPciPassthruConfig - - SriovEnabled bool `xml:"sriovEnabled"` - NumVirtualFunction int32 `xml:"numVirtualFunction"` -} - -func init() { - t["HostSriovConfig"] = reflect.TypeOf((*HostSriovConfig)(nil)).Elem() -} - -type HostSriovDevicePoolInfo struct { - DynamicData - - Key string `xml:"key"` -} - -func init() { - t["HostSriovDevicePoolInfo"] = reflect.TypeOf((*HostSriovDevicePoolInfo)(nil)).Elem() -} - -type HostSriovInfo struct { - HostPciPassthruInfo - - SriovEnabled bool `xml:"sriovEnabled"` - SriovCapable bool `xml:"sriovCapable"` - SriovActive bool `xml:"sriovActive"` - NumVirtualFunctionRequested int32 `xml:"numVirtualFunctionRequested"` - NumVirtualFunction int32 `xml:"numVirtualFunction"` - MaxVirtualFunctionSupported int32 `xml:"maxVirtualFunctionSupported"` -} - -func init() { - t["HostSriovInfo"] = reflect.TypeOf((*HostSriovInfo)(nil)).Elem() -} - -type HostSriovNetworkDevicePoolInfo struct { - HostSriovDevicePoolInfo - - SwitchKey string `xml:"switchKey,omitempty"` - SwitchUuid string `xml:"switchUuid,omitempty"` - Pnic []PhysicalNic `xml:"pnic,omitempty"` -} - -func init() { - t["HostSriovNetworkDevicePoolInfo"] = reflect.TypeOf((*HostSriovNetworkDevicePoolInfo)(nil)).Elem() -} - -type HostSslThumbprintInfo struct { - DynamicData - - Principal string `xml:"principal"` - OwnerTag string `xml:"ownerTag,omitempty"` - SslThumbprints []string `xml:"sslThumbprints,omitempty"` -} - -func init() { - t["HostSslThumbprintInfo"] = reflect.TypeOf((*HostSslThumbprintInfo)(nil)).Elem() -} - -type HostStatusChangedEvent struct { - ClusterStatusChangedEvent -} - -func init() { - t["HostStatusChangedEvent"] = reflect.TypeOf((*HostStatusChangedEvent)(nil)).Elem() -} - -type HostStorageArrayTypePolicyOption struct { - DynamicData - - Policy BaseElementDescription `xml:"policy,typeattr"` -} - -func init() { - t["HostStorageArrayTypePolicyOption"] = reflect.TypeOf((*HostStorageArrayTypePolicyOption)(nil)).Elem() -} - -type HostStorageDeviceInfo struct { - DynamicData - - HostBusAdapter []BaseHostHostBusAdapter `xml:"hostBusAdapter,omitempty,typeattr"` - ScsiLun []BaseScsiLun `xml:"scsiLun,omitempty,typeattr"` - ScsiTopology *HostScsiTopology `xml:"scsiTopology,omitempty"` - MultipathInfo *HostMultipathInfo `xml:"multipathInfo,omitempty"` - PlugStoreTopology *HostPlugStoreTopology `xml:"plugStoreTopology,omitempty"` - SoftwareInternetScsiEnabled bool `xml:"softwareInternetScsiEnabled"` -} - -func init() { - t["HostStorageDeviceInfo"] = reflect.TypeOf((*HostStorageDeviceInfo)(nil)).Elem() -} - -type HostStorageElementInfo struct { - HostHardwareElementInfo - - OperationalInfo []HostStorageOperationalInfo `xml:"operationalInfo,omitempty"` -} - -func init() { - t["HostStorageElementInfo"] = reflect.TypeOf((*HostStorageElementInfo)(nil)).Elem() -} - -type HostStorageOperationalInfo struct { - DynamicData - - Property string `xml:"property"` - Value string `xml:"value"` -} - -func init() { - t["HostStorageOperationalInfo"] = reflect.TypeOf((*HostStorageOperationalInfo)(nil)).Elem() -} - -type HostStorageSystemDiskLocatorLedResult struct { - DynamicData - - Key string `xml:"key"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["HostStorageSystemDiskLocatorLedResult"] = reflect.TypeOf((*HostStorageSystemDiskLocatorLedResult)(nil)).Elem() -} - -type HostStorageSystemScsiLunResult struct { - DynamicData - - Key string `xml:"key"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HostStorageSystemScsiLunResult"] = reflect.TypeOf((*HostStorageSystemScsiLunResult)(nil)).Elem() -} - -type HostStorageSystemVmfsVolumeResult struct { - DynamicData - - Key string `xml:"key"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HostStorageSystemVmfsVolumeResult"] = reflect.TypeOf((*HostStorageSystemVmfsVolumeResult)(nil)).Elem() -} - -type HostSubSpecification struct { - DynamicData - - Name string `xml:"name"` - CreatedTime time.Time `xml:"createdTime"` - Data []byte `xml:"data,omitempty"` -} - -func init() { - t["HostSubSpecification"] = reflect.TypeOf((*HostSubSpecification)(nil)).Elem() -} - -type HostSyncFailedEvent struct { - HostEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["HostSyncFailedEvent"] = reflect.TypeOf((*HostSyncFailedEvent)(nil)).Elem() -} - -type HostSystemHealthInfo struct { - DynamicData - - NumericSensorInfo []HostNumericSensorInfo `xml:"numericSensorInfo,omitempty"` -} - -func init() { - t["HostSystemHealthInfo"] = reflect.TypeOf((*HostSystemHealthInfo)(nil)).Elem() -} - -type HostSystemIdentificationInfo struct { - DynamicData - - IdentifierValue string `xml:"identifierValue"` - IdentifierType BaseElementDescription `xml:"identifierType,typeattr"` -} - -func init() { - t["HostSystemIdentificationInfo"] = reflect.TypeOf((*HostSystemIdentificationInfo)(nil)).Elem() -} - -type HostSystemInfo struct { - DynamicData - - Vendor string `xml:"vendor"` - Model string `xml:"model"` - Uuid string `xml:"uuid"` - OtherIdentifyingInfo []HostSystemIdentificationInfo `xml:"otherIdentifyingInfo,omitempty"` -} - -func init() { - t["HostSystemInfo"] = reflect.TypeOf((*HostSystemInfo)(nil)).Elem() -} - -type HostSystemReconnectSpec struct { - DynamicData - - SyncState *bool `xml:"syncState"` -} - -func init() { - t["HostSystemReconnectSpec"] = reflect.TypeOf((*HostSystemReconnectSpec)(nil)).Elem() -} - -type HostSystemResourceInfo struct { - DynamicData - - Key string `xml:"key"` - Config *ResourceConfigSpec `xml:"config,omitempty"` - Child []HostSystemResourceInfo `xml:"child,omitempty"` -} - -func init() { - t["HostSystemResourceInfo"] = reflect.TypeOf((*HostSystemResourceInfo)(nil)).Elem() -} - -type HostSystemSwapConfiguration struct { - DynamicData - - Option []BaseHostSystemSwapConfigurationSystemSwapOption `xml:"option,omitempty,typeattr"` -} - -func init() { - t["HostSystemSwapConfiguration"] = reflect.TypeOf((*HostSystemSwapConfiguration)(nil)).Elem() -} - -type HostSystemSwapConfigurationDatastoreOption struct { - HostSystemSwapConfigurationSystemSwapOption - - Datastore string `xml:"datastore"` -} - -func init() { - t["HostSystemSwapConfigurationDatastoreOption"] = reflect.TypeOf((*HostSystemSwapConfigurationDatastoreOption)(nil)).Elem() -} - -type HostSystemSwapConfigurationDisabledOption struct { - HostSystemSwapConfigurationSystemSwapOption -} - -func init() { - t["HostSystemSwapConfigurationDisabledOption"] = reflect.TypeOf((*HostSystemSwapConfigurationDisabledOption)(nil)).Elem() -} - -type HostSystemSwapConfigurationHostCacheOption struct { - HostSystemSwapConfigurationSystemSwapOption -} - -func init() { - t["HostSystemSwapConfigurationHostCacheOption"] = reflect.TypeOf((*HostSystemSwapConfigurationHostCacheOption)(nil)).Elem() -} - -type HostSystemSwapConfigurationHostLocalSwapOption struct { - HostSystemSwapConfigurationSystemSwapOption -} - -func init() { - t["HostSystemSwapConfigurationHostLocalSwapOption"] = reflect.TypeOf((*HostSystemSwapConfigurationHostLocalSwapOption)(nil)).Elem() -} - -type HostSystemSwapConfigurationSystemSwapOption struct { - DynamicData - - Key int32 `xml:"key"` -} - -func init() { - t["HostSystemSwapConfigurationSystemSwapOption"] = reflect.TypeOf((*HostSystemSwapConfigurationSystemSwapOption)(nil)).Elem() -} - -type HostTargetTransport struct { - DynamicData -} - -func init() { - t["HostTargetTransport"] = reflect.TypeOf((*HostTargetTransport)(nil)).Elem() -} - -type HostTpmAttestationReport struct { - DynamicData - - TpmPcrValues []HostTpmDigestInfo `xml:"tpmPcrValues"` - TpmEvents []HostTpmEventLogEntry `xml:"tpmEvents"` - TpmLogReliable bool `xml:"tpmLogReliable"` -} - -func init() { - t["HostTpmAttestationReport"] = reflect.TypeOf((*HostTpmAttestationReport)(nil)).Elem() -} - -type HostTpmBootSecurityOptionEventDetails struct { - HostTpmEventDetails - - BootSecurityOption string `xml:"bootSecurityOption"` -} - -func init() { - t["HostTpmBootSecurityOptionEventDetails"] = reflect.TypeOf((*HostTpmBootSecurityOptionEventDetails)(nil)).Elem() -} - -type HostTpmCommandEventDetails struct { - HostTpmEventDetails - - CommandLine string `xml:"commandLine"` -} - -func init() { - t["HostTpmCommandEventDetails"] = reflect.TypeOf((*HostTpmCommandEventDetails)(nil)).Elem() -} - -type HostTpmDigestInfo struct { - HostDigestInfo - - PcrNumber int32 `xml:"pcrNumber"` -} - -func init() { - t["HostTpmDigestInfo"] = reflect.TypeOf((*HostTpmDigestInfo)(nil)).Elem() -} - -type HostTpmEventDetails struct { - DynamicData - - DataHash []byte `xml:"dataHash"` -} - -func init() { - t["HostTpmEventDetails"] = reflect.TypeOf((*HostTpmEventDetails)(nil)).Elem() -} - -type HostTpmEventLogEntry struct { - DynamicData - - PcrIndex int32 `xml:"pcrIndex"` - EventDetails BaseHostTpmEventDetails `xml:"eventDetails,typeattr"` -} - -func init() { - t["HostTpmEventLogEntry"] = reflect.TypeOf((*HostTpmEventLogEntry)(nil)).Elem() -} - -type HostTpmOptionEventDetails struct { - HostTpmEventDetails - - OptionsFileName string `xml:"optionsFileName"` - BootOptions []byte `xml:"bootOptions,omitempty"` -} - -func init() { - t["HostTpmOptionEventDetails"] = reflect.TypeOf((*HostTpmOptionEventDetails)(nil)).Elem() -} - -type HostTpmSoftwareComponentEventDetails struct { - HostTpmEventDetails - - ComponentName string `xml:"componentName"` - VibName string `xml:"vibName"` - VibVersion string `xml:"vibVersion"` - VibVendor string `xml:"vibVendor"` -} - -func init() { - t["HostTpmSoftwareComponentEventDetails"] = reflect.TypeOf((*HostTpmSoftwareComponentEventDetails)(nil)).Elem() -} - -type HostUnresolvedVmfsExtent struct { - DynamicData - - Device HostScsiDiskPartition `xml:"device"` - DevicePath string `xml:"devicePath"` - VmfsUuid string `xml:"vmfsUuid"` - IsHeadExtent bool `xml:"isHeadExtent"` - Ordinal int32 `xml:"ordinal"` - StartBlock int32 `xml:"startBlock"` - EndBlock int32 `xml:"endBlock"` - Reason string `xml:"reason"` -} - -func init() { - t["HostUnresolvedVmfsExtent"] = reflect.TypeOf((*HostUnresolvedVmfsExtent)(nil)).Elem() -} - -type HostUnresolvedVmfsResignatureSpec struct { - DynamicData - - ExtentDevicePath []string `xml:"extentDevicePath"` -} - -func init() { - t["HostUnresolvedVmfsResignatureSpec"] = reflect.TypeOf((*HostUnresolvedVmfsResignatureSpec)(nil)).Elem() -} - -type HostUnresolvedVmfsResolutionResult struct { - DynamicData - - Spec HostUnresolvedVmfsResolutionSpec `xml:"spec"` - Vmfs *HostVmfsVolume `xml:"vmfs,omitempty"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HostUnresolvedVmfsResolutionResult"] = reflect.TypeOf((*HostUnresolvedVmfsResolutionResult)(nil)).Elem() -} - -type HostUnresolvedVmfsResolutionSpec struct { - DynamicData - - ExtentDevicePath []string `xml:"extentDevicePath"` - UuidResolution string `xml:"uuidResolution"` -} - -func init() { - t["HostUnresolvedVmfsResolutionSpec"] = reflect.TypeOf((*HostUnresolvedVmfsResolutionSpec)(nil)).Elem() -} - -type HostUnresolvedVmfsVolume struct { - DynamicData - - Extent []HostUnresolvedVmfsExtent `xml:"extent"` - VmfsLabel string `xml:"vmfsLabel"` - VmfsUuid string `xml:"vmfsUuid"` - TotalBlocks int32 `xml:"totalBlocks"` - ResolveStatus HostUnresolvedVmfsVolumeResolveStatus `xml:"resolveStatus"` -} - -func init() { - t["HostUnresolvedVmfsVolume"] = reflect.TypeOf((*HostUnresolvedVmfsVolume)(nil)).Elem() -} - -type HostUnresolvedVmfsVolumeResolveStatus struct { - DynamicData - - Resolvable bool `xml:"resolvable"` - IncompleteExtents *bool `xml:"incompleteExtents"` - MultipleCopies *bool `xml:"multipleCopies"` -} - -func init() { - t["HostUnresolvedVmfsVolumeResolveStatus"] = reflect.TypeOf((*HostUnresolvedVmfsVolumeResolveStatus)(nil)).Elem() -} - -type HostUpgradeFailedEvent struct { - HostEvent -} - -func init() { - t["HostUpgradeFailedEvent"] = reflect.TypeOf((*HostUpgradeFailedEvent)(nil)).Elem() -} - -type HostUserWorldSwapNotEnabledEvent struct { - HostEvent -} - -func init() { - t["HostUserWorldSwapNotEnabledEvent"] = reflect.TypeOf((*HostUserWorldSwapNotEnabledEvent)(nil)).Elem() -} - -type HostVFlashManagerVFlashCacheConfigInfo struct { - DynamicData - - VFlashModuleConfigOption []HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption `xml:"vFlashModuleConfigOption,omitempty"` - DefaultVFlashModule string `xml:"defaultVFlashModule,omitempty"` - SwapCacheReservationInGB int64 `xml:"swapCacheReservationInGB,omitempty"` -} - -func init() { - t["HostVFlashManagerVFlashCacheConfigInfo"] = reflect.TypeOf((*HostVFlashManagerVFlashCacheConfigInfo)(nil)).Elem() -} - -type HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption struct { - DynamicData - - VFlashModule string `xml:"vFlashModule"` - VFlashModuleVersion string `xml:"vFlashModuleVersion"` - MinSupportedModuleVersion string `xml:"minSupportedModuleVersion"` - CacheConsistencyType ChoiceOption `xml:"cacheConsistencyType"` - CacheMode ChoiceOption `xml:"cacheMode"` - BlockSizeInKBOption LongOption `xml:"blockSizeInKBOption"` - ReservationInMBOption LongOption `xml:"reservationInMBOption"` - MaxDiskSizeInKB int64 `xml:"maxDiskSizeInKB"` -} - -func init() { - t["HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption"] = reflect.TypeOf((*HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption)(nil)).Elem() -} - -type HostVFlashManagerVFlashCacheConfigSpec struct { - DynamicData - - DefaultVFlashModule string `xml:"defaultVFlashModule"` - SwapCacheReservationInGB int64 `xml:"swapCacheReservationInGB"` -} - -func init() { - t["HostVFlashManagerVFlashCacheConfigSpec"] = reflect.TypeOf((*HostVFlashManagerVFlashCacheConfigSpec)(nil)).Elem() -} - -type HostVFlashManagerVFlashConfigInfo struct { - DynamicData - - VFlashResourceConfigInfo *HostVFlashManagerVFlashResourceConfigInfo `xml:"vFlashResourceConfigInfo,omitempty"` - VFlashCacheConfigInfo *HostVFlashManagerVFlashCacheConfigInfo `xml:"vFlashCacheConfigInfo,omitempty"` -} - -func init() { - t["HostVFlashManagerVFlashConfigInfo"] = reflect.TypeOf((*HostVFlashManagerVFlashConfigInfo)(nil)).Elem() -} - -type HostVFlashManagerVFlashResourceConfigInfo struct { - DynamicData - - Vffs *HostVffsVolume `xml:"vffs,omitempty"` - Capacity int64 `xml:"capacity"` -} - -func init() { - t["HostVFlashManagerVFlashResourceConfigInfo"] = reflect.TypeOf((*HostVFlashManagerVFlashResourceConfigInfo)(nil)).Elem() -} - -type HostVFlashManagerVFlashResourceConfigSpec struct { - DynamicData - - VffsUuid string `xml:"vffsUuid"` -} - -func init() { - t["HostVFlashManagerVFlashResourceConfigSpec"] = reflect.TypeOf((*HostVFlashManagerVFlashResourceConfigSpec)(nil)).Elem() -} - -type HostVFlashManagerVFlashResourceRunTimeInfo struct { - DynamicData - - Usage int64 `xml:"usage"` - Capacity int64 `xml:"capacity"` - Accessible bool `xml:"accessible"` - CapacityForVmCache int64 `xml:"capacityForVmCache"` - FreeForVmCache int64 `xml:"freeForVmCache"` -} - -func init() { - t["HostVFlashManagerVFlashResourceRunTimeInfo"] = reflect.TypeOf((*HostVFlashManagerVFlashResourceRunTimeInfo)(nil)).Elem() -} - -type HostVFlashResourceConfigurationResult struct { - DynamicData - - DevicePath []string `xml:"devicePath,omitempty"` - Vffs *HostVffsVolume `xml:"vffs,omitempty"` - DiskConfigurationResult []HostDiskConfigurationResult `xml:"diskConfigurationResult,omitempty"` -} - -func init() { - t["HostVFlashResourceConfigurationResult"] = reflect.TypeOf((*HostVFlashResourceConfigurationResult)(nil)).Elem() -} - -type HostVMotionCompatibility struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Compatibility []string `xml:"compatibility,omitempty"` -} - -func init() { - t["HostVMotionCompatibility"] = reflect.TypeOf((*HostVMotionCompatibility)(nil)).Elem() -} - -type HostVMotionConfig struct { - DynamicData - - VmotionNicKey string `xml:"vmotionNicKey,omitempty"` - Enabled bool `xml:"enabled"` -} - -func init() { - t["HostVMotionConfig"] = reflect.TypeOf((*HostVMotionConfig)(nil)).Elem() -} - -type HostVMotionInfo struct { - DynamicData - - NetConfig *HostVMotionNetConfig `xml:"netConfig,omitempty"` - IpConfig *HostIpConfig `xml:"ipConfig,omitempty"` -} - -func init() { - t["HostVMotionInfo"] = reflect.TypeOf((*HostVMotionInfo)(nil)).Elem() -} - -type HostVMotionNetConfig struct { - DynamicData - - CandidateVnic []HostVirtualNic `xml:"candidateVnic,omitempty"` - SelectedVnic string `xml:"selectedVnic,omitempty"` -} - -func init() { - t["HostVMotionNetConfig"] = reflect.TypeOf((*HostVMotionNetConfig)(nil)).Elem() -} - -type HostVfatVolume struct { - HostFileSystemVolume -} - -func init() { - t["HostVfatVolume"] = reflect.TypeOf((*HostVfatVolume)(nil)).Elem() -} - -type HostVffsSpec struct { - DynamicData - - DevicePath string `xml:"devicePath"` - Partition *HostDiskPartitionSpec `xml:"partition,omitempty"` - MajorVersion int32 `xml:"majorVersion"` - VolumeName string `xml:"volumeName"` -} - -func init() { - t["HostVffsSpec"] = reflect.TypeOf((*HostVffsSpec)(nil)).Elem() -} - -type HostVffsVolume struct { - HostFileSystemVolume - - MajorVersion int32 `xml:"majorVersion"` - Version string `xml:"version"` - Uuid string `xml:"uuid"` - Extent []HostScsiDiskPartition `xml:"extent"` -} - -func init() { - t["HostVffsVolume"] = reflect.TypeOf((*HostVffsVolume)(nil)).Elem() -} - -type HostVirtualNic struct { - DynamicData - - Device string `xml:"device"` - Key string `xml:"key"` - Portgroup string `xml:"portgroup"` - Spec HostVirtualNicSpec `xml:"spec"` - Port string `xml:"port,omitempty"` -} - -func init() { - t["HostVirtualNic"] = reflect.TypeOf((*HostVirtualNic)(nil)).Elem() -} - -type HostVirtualNicConfig struct { - DynamicData - - ChangeOperation string `xml:"changeOperation,omitempty"` - Device string `xml:"device,omitempty"` - Portgroup string `xml:"portgroup"` - Spec *HostVirtualNicSpec `xml:"spec,omitempty"` -} - -func init() { - t["HostVirtualNicConfig"] = reflect.TypeOf((*HostVirtualNicConfig)(nil)).Elem() -} - -type HostVirtualNicConnection struct { - DynamicData - - Portgroup string `xml:"portgroup,omitempty"` - DvPort *DistributedVirtualSwitchPortConnection `xml:"dvPort,omitempty"` -} - -func init() { - t["HostVirtualNicConnection"] = reflect.TypeOf((*HostVirtualNicConnection)(nil)).Elem() -} - -type HostVirtualNicIpRouteSpec struct { - DynamicData - - IpRouteConfig BaseHostIpRouteConfig `xml:"ipRouteConfig,omitempty,typeattr"` -} - -func init() { - t["HostVirtualNicIpRouteSpec"] = reflect.TypeOf((*HostVirtualNicIpRouteSpec)(nil)).Elem() -} - -type HostVirtualNicManagerInfo struct { - DynamicData - - NetConfig []VirtualNicManagerNetConfig `xml:"netConfig,omitempty"` -} - -func init() { - t["HostVirtualNicManagerInfo"] = reflect.TypeOf((*HostVirtualNicManagerInfo)(nil)).Elem() -} - -type HostVirtualNicManagerNicTypeSelection struct { - DynamicData - - Vnic HostVirtualNicConnection `xml:"vnic"` - NicType []string `xml:"nicType,omitempty"` -} - -func init() { - t["HostVirtualNicManagerNicTypeSelection"] = reflect.TypeOf((*HostVirtualNicManagerNicTypeSelection)(nil)).Elem() -} - -type HostVirtualNicOpaqueNetworkSpec struct { - DynamicData - - OpaqueNetworkId string `xml:"opaqueNetworkId"` - OpaqueNetworkType string `xml:"opaqueNetworkType"` -} - -func init() { - t["HostVirtualNicOpaqueNetworkSpec"] = reflect.TypeOf((*HostVirtualNicOpaqueNetworkSpec)(nil)).Elem() -} - -type HostVirtualNicSpec struct { - DynamicData - - Ip *HostIpConfig `xml:"ip,omitempty"` - Mac string `xml:"mac,omitempty"` - DistributedVirtualPort *DistributedVirtualSwitchPortConnection `xml:"distributedVirtualPort,omitempty"` - Portgroup string `xml:"portgroup,omitempty"` - Mtu int32 `xml:"mtu,omitempty"` - TsoEnabled *bool `xml:"tsoEnabled"` - NetStackInstanceKey string `xml:"netStackInstanceKey,omitempty"` - OpaqueNetwork *HostVirtualNicOpaqueNetworkSpec `xml:"opaqueNetwork,omitempty"` - ExternalId string `xml:"externalId,omitempty"` - PinnedPnic string `xml:"pinnedPnic,omitempty"` - IpRouteSpec *HostVirtualNicIpRouteSpec `xml:"ipRouteSpec,omitempty"` -} - -func init() { - t["HostVirtualNicSpec"] = reflect.TypeOf((*HostVirtualNicSpec)(nil)).Elem() -} - -type HostVirtualSwitch struct { - DynamicData - - Name string `xml:"name"` - Key string `xml:"key"` - NumPorts int32 `xml:"numPorts"` - NumPortsAvailable int32 `xml:"numPortsAvailable"` - Mtu int32 `xml:"mtu,omitempty"` - Portgroup []string `xml:"portgroup,omitempty"` - Pnic []string `xml:"pnic,omitempty"` - Spec HostVirtualSwitchSpec `xml:"spec"` -} - -func init() { - t["HostVirtualSwitch"] = reflect.TypeOf((*HostVirtualSwitch)(nil)).Elem() -} - -type HostVirtualSwitchAutoBridge struct { - HostVirtualSwitchBridge - - ExcludedNicDevice []string `xml:"excludedNicDevice,omitempty"` -} - -func init() { - t["HostVirtualSwitchAutoBridge"] = reflect.TypeOf((*HostVirtualSwitchAutoBridge)(nil)).Elem() -} - -type HostVirtualSwitchBeaconConfig struct { - DynamicData - - Interval int32 `xml:"interval"` -} - -func init() { - t["HostVirtualSwitchBeaconConfig"] = reflect.TypeOf((*HostVirtualSwitchBeaconConfig)(nil)).Elem() -} - -type HostVirtualSwitchBondBridge struct { - HostVirtualSwitchBridge - - NicDevice []string `xml:"nicDevice"` - Beacon *HostVirtualSwitchBeaconConfig `xml:"beacon,omitempty"` - LinkDiscoveryProtocolConfig *LinkDiscoveryProtocolConfig `xml:"linkDiscoveryProtocolConfig,omitempty"` -} - -func init() { - t["HostVirtualSwitchBondBridge"] = reflect.TypeOf((*HostVirtualSwitchBondBridge)(nil)).Elem() -} - -type HostVirtualSwitchBridge struct { - DynamicData -} - -func init() { - t["HostVirtualSwitchBridge"] = reflect.TypeOf((*HostVirtualSwitchBridge)(nil)).Elem() -} - -type HostVirtualSwitchConfig struct { - DynamicData - - ChangeOperation string `xml:"changeOperation,omitempty"` - Name string `xml:"name"` - Spec *HostVirtualSwitchSpec `xml:"spec,omitempty"` -} - -func init() { - t["HostVirtualSwitchConfig"] = reflect.TypeOf((*HostVirtualSwitchConfig)(nil)).Elem() -} - -type HostVirtualSwitchSimpleBridge struct { - HostVirtualSwitchBridge - - NicDevice string `xml:"nicDevice"` -} - -func init() { - t["HostVirtualSwitchSimpleBridge"] = reflect.TypeOf((*HostVirtualSwitchSimpleBridge)(nil)).Elem() -} - -type HostVirtualSwitchSpec struct { - DynamicData - - NumPorts int32 `xml:"numPorts"` - Bridge BaseHostVirtualSwitchBridge `xml:"bridge,omitempty,typeattr"` - Policy *HostNetworkPolicy `xml:"policy,omitempty"` - Mtu int32 `xml:"mtu,omitempty"` -} - -func init() { - t["HostVirtualSwitchSpec"] = reflect.TypeOf((*HostVirtualSwitchSpec)(nil)).Elem() -} - -type HostVmciAccessManagerAccessSpec struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - Services []string `xml:"services,omitempty"` - Mode string `xml:"mode"` -} - -func init() { - t["HostVmciAccessManagerAccessSpec"] = reflect.TypeOf((*HostVmciAccessManagerAccessSpec)(nil)).Elem() -} - -type HostVmfsRescanResult struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HostVmfsRescanResult"] = reflect.TypeOf((*HostVmfsRescanResult)(nil)).Elem() -} - -type HostVmfsSpec struct { - DynamicData - - Extent HostScsiDiskPartition `xml:"extent"` - BlockSizeMb int32 `xml:"blockSizeMb,omitempty"` - MajorVersion int32 `xml:"majorVersion"` - VolumeName string `xml:"volumeName"` - BlockSize int32 `xml:"blockSize,omitempty"` - UnmapGranularity int32 `xml:"unmapGranularity,omitempty"` - UnmapPriority string `xml:"unmapPriority,omitempty"` -} - -func init() { - t["HostVmfsSpec"] = reflect.TypeOf((*HostVmfsSpec)(nil)).Elem() -} - -type HostVmfsVolume struct { - HostFileSystemVolume - - BlockSizeMb int32 `xml:"blockSizeMb"` - BlockSize int32 `xml:"blockSize,omitempty"` - UnmapGranularity int32 `xml:"unmapGranularity,omitempty"` - UnmapPriority string `xml:"unmapPriority,omitempty"` - MaxBlocks int32 `xml:"maxBlocks"` - MajorVersion int32 `xml:"majorVersion"` - Version string `xml:"version"` - Uuid string `xml:"uuid"` - Extent []HostScsiDiskPartition `xml:"extent"` - VmfsUpgradable bool `xml:"vmfsUpgradable"` - ForceMountedInfo *HostForceMountedInfo `xml:"forceMountedInfo,omitempty"` - Ssd *bool `xml:"ssd"` - Local *bool `xml:"local"` - ScsiDiskType string `xml:"scsiDiskType,omitempty"` -} - -func init() { - t["HostVmfsVolume"] = reflect.TypeOf((*HostVmfsVolume)(nil)).Elem() -} - -type HostVnicConnectedToCustomizedDVPortEvent struct { - HostEvent - - Vnic VnicPortArgument `xml:"vnic"` - PrevPortKey string `xml:"prevPortKey,omitempty"` -} - -func init() { - t["HostVnicConnectedToCustomizedDVPortEvent"] = reflect.TypeOf((*HostVnicConnectedToCustomizedDVPortEvent)(nil)).Elem() -} - -type HostVsanInternalSystemCmmdsQuery struct { - DynamicData - - Type string `xml:"type,omitempty"` - Uuid string `xml:"uuid,omitempty"` - Owner string `xml:"owner,omitempty"` -} - -func init() { - t["HostVsanInternalSystemCmmdsQuery"] = reflect.TypeOf((*HostVsanInternalSystemCmmdsQuery)(nil)).Elem() -} - -type HostVsanInternalSystemDeleteVsanObjectsResult struct { - DynamicData - - Uuid string `xml:"uuid"` - Success bool `xml:"success"` - FailureReason []LocalizableMessage `xml:"failureReason,omitempty"` -} - -func init() { - t["HostVsanInternalSystemDeleteVsanObjectsResult"] = reflect.TypeOf((*HostVsanInternalSystemDeleteVsanObjectsResult)(nil)).Elem() -} - -type HostVsanInternalSystemVsanObjectOperationResult struct { - DynamicData - - Uuid string `xml:"uuid"` - FailureReason []LocalizableMessage `xml:"failureReason,omitempty"` -} - -func init() { - t["HostVsanInternalSystemVsanObjectOperationResult"] = reflect.TypeOf((*HostVsanInternalSystemVsanObjectOperationResult)(nil)).Elem() -} - -type HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult struct { - DynamicData - - DiskUuid string `xml:"diskUuid"` - Success bool `xml:"success"` - FailureReason string `xml:"failureReason,omitempty"` -} - -func init() { - t["HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult"] = reflect.TypeOf((*HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult)(nil)).Elem() -} - -type HostVvolVolume struct { - HostFileSystemVolume - - ScId string `xml:"scId"` - HostPE []VVolHostPE `xml:"hostPE,omitempty"` - VasaProviderInfo []VimVasaProviderInfo `xml:"vasaProviderInfo,omitempty"` - StorageArray []VASAStorageArray `xml:"storageArray,omitempty"` -} - -func init() { - t["HostVvolVolume"] = reflect.TypeOf((*HostVvolVolume)(nil)).Elem() -} - -type HostVvolVolumeSpecification struct { - DynamicData - - MaxSizeInMB int64 `xml:"maxSizeInMB"` - VolumeName string `xml:"volumeName"` - VasaProviderInfo []VimVasaProviderInfo `xml:"vasaProviderInfo,omitempty"` - StorageArray []VASAStorageArray `xml:"storageArray,omitempty"` - Uuid string `xml:"uuid"` -} - -func init() { - t["HostVvolVolumeSpecification"] = reflect.TypeOf((*HostVvolVolumeSpecification)(nil)).Elem() -} - -type HostWwnChangedEvent struct { - HostEvent - - OldNodeWwns []int64 `xml:"oldNodeWwns,omitempty"` - OldPortWwns []int64 `xml:"oldPortWwns,omitempty"` - NewNodeWwns []int64 `xml:"newNodeWwns,omitempty"` - NewPortWwns []int64 `xml:"newPortWwns,omitempty"` -} - -func init() { - t["HostWwnChangedEvent"] = reflect.TypeOf((*HostWwnChangedEvent)(nil)).Elem() -} - -type HostWwnConflictEvent struct { - HostEvent - - ConflictedVms []VmEventArgument `xml:"conflictedVms,omitempty"` - ConflictedHosts []HostEventArgument `xml:"conflictedHosts,omitempty"` - Wwn int64 `xml:"wwn"` -} - -func init() { - t["HostWwnConflictEvent"] = reflect.TypeOf((*HostWwnConflictEvent)(nil)).Elem() -} - -type HotSnapshotMoveNotSupported struct { - SnapshotCopyNotSupported -} - -func init() { - t["HotSnapshotMoveNotSupported"] = reflect.TypeOf((*HotSnapshotMoveNotSupported)(nil)).Elem() -} - -type HotSnapshotMoveNotSupportedFault HotSnapshotMoveNotSupported - -func init() { - t["HotSnapshotMoveNotSupportedFault"] = reflect.TypeOf((*HotSnapshotMoveNotSupportedFault)(nil)).Elem() -} - -type HourlyTaskScheduler struct { - RecurrentTaskScheduler - - Minute int32 `xml:"minute"` -} - -func init() { - t["HourlyTaskScheduler"] = reflect.TypeOf((*HourlyTaskScheduler)(nil)).Elem() -} - -type HttpNfcLeaseAbort HttpNfcLeaseAbortRequestType - -func init() { - t["HttpNfcLeaseAbort"] = reflect.TypeOf((*HttpNfcLeaseAbort)(nil)).Elem() -} - -type HttpNfcLeaseAbortRequestType struct { - This ManagedObjectReference `xml:"_this"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["HttpNfcLeaseAbortRequestType"] = reflect.TypeOf((*HttpNfcLeaseAbortRequestType)(nil)).Elem() -} - -type HttpNfcLeaseAbortResponse struct { -} - -type HttpNfcLeaseComplete HttpNfcLeaseCompleteRequestType - -func init() { - t["HttpNfcLeaseComplete"] = reflect.TypeOf((*HttpNfcLeaseComplete)(nil)).Elem() -} - -type HttpNfcLeaseCompleteRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["HttpNfcLeaseCompleteRequestType"] = reflect.TypeOf((*HttpNfcLeaseCompleteRequestType)(nil)).Elem() -} - -type HttpNfcLeaseCompleteResponse struct { -} - -type HttpNfcLeaseDatastoreLeaseInfo struct { - DynamicData - - DatastoreKey string `xml:"datastoreKey"` - Hosts []HttpNfcLeaseHostInfo `xml:"hosts"` -} - -func init() { - t["HttpNfcLeaseDatastoreLeaseInfo"] = reflect.TypeOf((*HttpNfcLeaseDatastoreLeaseInfo)(nil)).Elem() -} - -type HttpNfcLeaseDeviceUrl struct { - DynamicData - - Key string `xml:"key"` - ImportKey string `xml:"importKey"` - Url string `xml:"url"` - SslThumbprint string `xml:"sslThumbprint"` - Disk *bool `xml:"disk"` - TargetId string `xml:"targetId,omitempty"` - DatastoreKey string `xml:"datastoreKey,omitempty"` - FileSize int64 `xml:"fileSize,omitempty"` -} - -func init() { - t["HttpNfcLeaseDeviceUrl"] = reflect.TypeOf((*HttpNfcLeaseDeviceUrl)(nil)).Elem() -} - -type HttpNfcLeaseGetManifest HttpNfcLeaseGetManifestRequestType - -func init() { - t["HttpNfcLeaseGetManifest"] = reflect.TypeOf((*HttpNfcLeaseGetManifest)(nil)).Elem() -} - -type HttpNfcLeaseGetManifestRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["HttpNfcLeaseGetManifestRequestType"] = reflect.TypeOf((*HttpNfcLeaseGetManifestRequestType)(nil)).Elem() -} - -type HttpNfcLeaseGetManifestResponse struct { - Returnval []HttpNfcLeaseManifestEntry `xml:"returnval,omitempty"` -} - -type HttpNfcLeaseHostInfo struct { - DynamicData - - Url string `xml:"url"` - SslThumbprint string `xml:"sslThumbprint"` -} - -func init() { - t["HttpNfcLeaseHostInfo"] = reflect.TypeOf((*HttpNfcLeaseHostInfo)(nil)).Elem() -} - -type HttpNfcLeaseInfo struct { - DynamicData - - Lease ManagedObjectReference `xml:"lease"` - Entity ManagedObjectReference `xml:"entity"` - DeviceUrl []HttpNfcLeaseDeviceUrl `xml:"deviceUrl,omitempty"` - TotalDiskCapacityInKB int64 `xml:"totalDiskCapacityInKB"` - LeaseTimeout int32 `xml:"leaseTimeout"` - HostMap []HttpNfcLeaseDatastoreLeaseInfo `xml:"hostMap,omitempty"` -} - -func init() { - t["HttpNfcLeaseInfo"] = reflect.TypeOf((*HttpNfcLeaseInfo)(nil)).Elem() -} - -type HttpNfcLeaseManifestEntry struct { - DynamicData - - Key string `xml:"key"` - Sha1 string `xml:"sha1"` - Size int64 `xml:"size"` - Disk bool `xml:"disk"` - Capacity int64 `xml:"capacity,omitempty"` - PopulatedSize int64 `xml:"populatedSize,omitempty"` -} - -func init() { - t["HttpNfcLeaseManifestEntry"] = reflect.TypeOf((*HttpNfcLeaseManifestEntry)(nil)).Elem() -} - -type HttpNfcLeaseProgress HttpNfcLeaseProgressRequestType - -func init() { - t["HttpNfcLeaseProgress"] = reflect.TypeOf((*HttpNfcLeaseProgress)(nil)).Elem() -} - -type HttpNfcLeaseProgressRequestType struct { - This ManagedObjectReference `xml:"_this"` - Percent int32 `xml:"percent"` -} - -func init() { - t["HttpNfcLeaseProgressRequestType"] = reflect.TypeOf((*HttpNfcLeaseProgressRequestType)(nil)).Elem() -} - -type HttpNfcLeaseProgressResponse struct { -} - -type ID struct { - DynamicData - - Id string `xml:"id"` -} - -func init() { - t["ID"] = reflect.TypeOf((*ID)(nil)).Elem() -} - -type IDEDiskNotSupported struct { - DiskNotSupported -} - -func init() { - t["IDEDiskNotSupported"] = reflect.TypeOf((*IDEDiskNotSupported)(nil)).Elem() -} - -type IDEDiskNotSupportedFault IDEDiskNotSupported - -func init() { - t["IDEDiskNotSupportedFault"] = reflect.TypeOf((*IDEDiskNotSupportedFault)(nil)).Elem() -} - -type IORMNotSupportedHostOnDatastore struct { - VimFault - - Datastore ManagedObjectReference `xml:"datastore"` - DatastoreName string `xml:"datastoreName"` - Host []ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["IORMNotSupportedHostOnDatastore"] = reflect.TypeOf((*IORMNotSupportedHostOnDatastore)(nil)).Elem() -} - -type IORMNotSupportedHostOnDatastoreFault IORMNotSupportedHostOnDatastore - -func init() { - t["IORMNotSupportedHostOnDatastoreFault"] = reflect.TypeOf((*IORMNotSupportedHostOnDatastoreFault)(nil)).Elem() -} - -type IScsiBootFailureEvent struct { - HostEvent -} - -func init() { - t["IScsiBootFailureEvent"] = reflect.TypeOf((*IScsiBootFailureEvent)(nil)).Elem() -} - -type ImpersonateUser ImpersonateUserRequestType - -func init() { - t["ImpersonateUser"] = reflect.TypeOf((*ImpersonateUser)(nil)).Elem() -} - -type ImpersonateUserRequestType struct { - This ManagedObjectReference `xml:"_this"` - UserName string `xml:"userName"` - Locale string `xml:"locale,omitempty"` -} - -func init() { - t["ImpersonateUserRequestType"] = reflect.TypeOf((*ImpersonateUserRequestType)(nil)).Elem() -} - -type ImpersonateUserResponse struct { - Returnval UserSession `xml:"returnval"` -} - -type ImportCertificateForCAMRequestType struct { - This ManagedObjectReference `xml:"_this"` - CertPath string `xml:"certPath"` - CamServer string `xml:"camServer"` -} - -func init() { - t["ImportCertificateForCAMRequestType"] = reflect.TypeOf((*ImportCertificateForCAMRequestType)(nil)).Elem() -} - -type ImportCertificateForCAM_Task ImportCertificateForCAMRequestType - -func init() { - t["ImportCertificateForCAM_Task"] = reflect.TypeOf((*ImportCertificateForCAM_Task)(nil)).Elem() -} - -type ImportCertificateForCAM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ImportHostAddFailure struct { - DvsFault - - HostIp []string `xml:"hostIp"` -} - -func init() { - t["ImportHostAddFailure"] = reflect.TypeOf((*ImportHostAddFailure)(nil)).Elem() -} - -type ImportHostAddFailureFault ImportHostAddFailure - -func init() { - t["ImportHostAddFailureFault"] = reflect.TypeOf((*ImportHostAddFailureFault)(nil)).Elem() -} - -type ImportOperationBulkFault struct { - DvsFault - - ImportFaults []ImportOperationBulkFaultFaultOnImport `xml:"importFaults"` -} - -func init() { - t["ImportOperationBulkFault"] = reflect.TypeOf((*ImportOperationBulkFault)(nil)).Elem() -} - -type ImportOperationBulkFaultFault ImportOperationBulkFault - -func init() { - t["ImportOperationBulkFaultFault"] = reflect.TypeOf((*ImportOperationBulkFaultFault)(nil)).Elem() -} - -type ImportOperationBulkFaultFaultOnImport struct { - DynamicData - - EntityType string `xml:"entityType,omitempty"` - Key string `xml:"key,omitempty"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["ImportOperationBulkFaultFaultOnImport"] = reflect.TypeOf((*ImportOperationBulkFaultFaultOnImport)(nil)).Elem() -} - -type ImportSpec struct { - DynamicData - - EntityConfig *VAppEntityConfigInfo `xml:"entityConfig,omitempty"` - InstantiationOst *OvfConsumerOstNode `xml:"instantiationOst,omitempty"` -} - -func init() { - t["ImportSpec"] = reflect.TypeOf((*ImportSpec)(nil)).Elem() -} - -type ImportUnmanagedSnapshot ImportUnmanagedSnapshotRequestType - -func init() { - t["ImportUnmanagedSnapshot"] = reflect.TypeOf((*ImportUnmanagedSnapshot)(nil)).Elem() -} - -type ImportUnmanagedSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vdisk string `xml:"vdisk"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - VvolId string `xml:"vvolId"` -} - -func init() { - t["ImportUnmanagedSnapshotRequestType"] = reflect.TypeOf((*ImportUnmanagedSnapshotRequestType)(nil)).Elem() -} - -type ImportUnmanagedSnapshotResponse struct { -} - -type ImportVApp ImportVAppRequestType - -func init() { - t["ImportVApp"] = reflect.TypeOf((*ImportVApp)(nil)).Elem() -} - -type ImportVAppRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec BaseImportSpec `xml:"spec,typeattr"` - Folder *ManagedObjectReference `xml:"folder,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["ImportVAppRequestType"] = reflect.TypeOf((*ImportVAppRequestType)(nil)).Elem() -} - -type ImportVAppResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type InUseFeatureManipulationDisallowed struct { - NotEnoughLicenses -} - -func init() { - t["InUseFeatureManipulationDisallowed"] = reflect.TypeOf((*InUseFeatureManipulationDisallowed)(nil)).Elem() -} - -type InUseFeatureManipulationDisallowedFault InUseFeatureManipulationDisallowed - -func init() { - t["InUseFeatureManipulationDisallowedFault"] = reflect.TypeOf((*InUseFeatureManipulationDisallowedFault)(nil)).Elem() -} - -type InaccessibleDatastore struct { - InvalidDatastore - - Detail string `xml:"detail,omitempty"` -} - -func init() { - t["InaccessibleDatastore"] = reflect.TypeOf((*InaccessibleDatastore)(nil)).Elem() -} - -type InaccessibleDatastoreFault BaseInaccessibleDatastore - -func init() { - t["InaccessibleDatastoreFault"] = reflect.TypeOf((*InaccessibleDatastoreFault)(nil)).Elem() -} - -type InaccessibleFTMetadataDatastore struct { - InaccessibleDatastore -} - -func init() { - t["InaccessibleFTMetadataDatastore"] = reflect.TypeOf((*InaccessibleFTMetadataDatastore)(nil)).Elem() -} - -type InaccessibleFTMetadataDatastoreFault InaccessibleFTMetadataDatastore - -func init() { - t["InaccessibleFTMetadataDatastoreFault"] = reflect.TypeOf((*InaccessibleFTMetadataDatastoreFault)(nil)).Elem() -} - -type InaccessibleVFlashSource struct { - VimFault - - HostName string `xml:"hostName"` -} - -func init() { - t["InaccessibleVFlashSource"] = reflect.TypeOf((*InaccessibleVFlashSource)(nil)).Elem() -} - -type InaccessibleVFlashSourceFault InaccessibleVFlashSource - -func init() { - t["InaccessibleVFlashSourceFault"] = reflect.TypeOf((*InaccessibleVFlashSourceFault)(nil)).Elem() -} - -type IncompatibleDefaultDevice struct { - MigrationFault - - Device string `xml:"device"` -} - -func init() { - t["IncompatibleDefaultDevice"] = reflect.TypeOf((*IncompatibleDefaultDevice)(nil)).Elem() -} - -type IncompatibleDefaultDeviceFault IncompatibleDefaultDevice - -func init() { - t["IncompatibleDefaultDeviceFault"] = reflect.TypeOf((*IncompatibleDefaultDeviceFault)(nil)).Elem() -} - -type IncompatibleHostForFtSecondary struct { - VmFaultToleranceIssue - - Host ManagedObjectReference `xml:"host"` - Error []LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["IncompatibleHostForFtSecondary"] = reflect.TypeOf((*IncompatibleHostForFtSecondary)(nil)).Elem() -} - -type IncompatibleHostForFtSecondaryFault IncompatibleHostForFtSecondary - -func init() { - t["IncompatibleHostForFtSecondaryFault"] = reflect.TypeOf((*IncompatibleHostForFtSecondaryFault)(nil)).Elem() -} - -type IncompatibleHostForVmReplication struct { - ReplicationFault - - VmName string `xml:"vmName"` - HostName string `xml:"hostName"` - Reason string `xml:"reason"` -} - -func init() { - t["IncompatibleHostForVmReplication"] = reflect.TypeOf((*IncompatibleHostForVmReplication)(nil)).Elem() -} - -type IncompatibleHostForVmReplicationFault IncompatibleHostForVmReplication - -func init() { - t["IncompatibleHostForVmReplicationFault"] = reflect.TypeOf((*IncompatibleHostForVmReplicationFault)(nil)).Elem() -} - -type IncompatibleSetting struct { - InvalidArgument - - ConflictingProperty string `xml:"conflictingProperty"` -} - -func init() { - t["IncompatibleSetting"] = reflect.TypeOf((*IncompatibleSetting)(nil)).Elem() -} - -type IncompatibleSettingFault IncompatibleSetting - -func init() { - t["IncompatibleSettingFault"] = reflect.TypeOf((*IncompatibleSettingFault)(nil)).Elem() -} - -type IncorrectFileType struct { - FileFault -} - -func init() { - t["IncorrectFileType"] = reflect.TypeOf((*IncorrectFileType)(nil)).Elem() -} - -type IncorrectFileTypeFault IncorrectFileType - -func init() { - t["IncorrectFileTypeFault"] = reflect.TypeOf((*IncorrectFileTypeFault)(nil)).Elem() -} - -type IncorrectHostInformation struct { - NotEnoughLicenses -} - -func init() { - t["IncorrectHostInformation"] = reflect.TypeOf((*IncorrectHostInformation)(nil)).Elem() -} - -type IncorrectHostInformationEvent struct { - LicenseEvent -} - -func init() { - t["IncorrectHostInformationEvent"] = reflect.TypeOf((*IncorrectHostInformationEvent)(nil)).Elem() -} - -type IncorrectHostInformationFault IncorrectHostInformation - -func init() { - t["IncorrectHostInformationFault"] = reflect.TypeOf((*IncorrectHostInformationFault)(nil)).Elem() -} - -type IndependentDiskVMotionNotSupported struct { - MigrationFeatureNotSupported -} - -func init() { - t["IndependentDiskVMotionNotSupported"] = reflect.TypeOf((*IndependentDiskVMotionNotSupported)(nil)).Elem() -} - -type IndependentDiskVMotionNotSupportedFault IndependentDiskVMotionNotSupported - -func init() { - t["IndependentDiskVMotionNotSupportedFault"] = reflect.TypeOf((*IndependentDiskVMotionNotSupportedFault)(nil)).Elem() -} - -type InflateDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["InflateDiskRequestType"] = reflect.TypeOf((*InflateDiskRequestType)(nil)).Elem() -} - -type InflateDisk_Task InflateDiskRequestType - -func init() { - t["InflateDisk_Task"] = reflect.TypeOf((*InflateDisk_Task)(nil)).Elem() -} - -type InflateDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type InflateVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["InflateVirtualDiskRequestType"] = reflect.TypeOf((*InflateVirtualDiskRequestType)(nil)).Elem() -} - -type InflateVirtualDisk_Task InflateVirtualDiskRequestType - -func init() { - t["InflateVirtualDisk_Task"] = reflect.TypeOf((*InflateVirtualDisk_Task)(nil)).Elem() -} - -type InflateVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type InfoUpgradeEvent struct { - UpgradeEvent -} - -func init() { - t["InfoUpgradeEvent"] = reflect.TypeOf((*InfoUpgradeEvent)(nil)).Elem() -} - -type InheritablePolicy struct { - DynamicData - - Inherited bool `xml:"inherited"` -} - -func init() { - t["InheritablePolicy"] = reflect.TypeOf((*InheritablePolicy)(nil)).Elem() -} - -type InitializeDisksRequestType struct { - This ManagedObjectReference `xml:"_this"` - Mapping []VsanHostDiskMapping `xml:"mapping"` -} - -func init() { - t["InitializeDisksRequestType"] = reflect.TypeOf((*InitializeDisksRequestType)(nil)).Elem() -} - -type InitializeDisks_Task InitializeDisksRequestType - -func init() { - t["InitializeDisks_Task"] = reflect.TypeOf((*InitializeDisks_Task)(nil)).Elem() -} - -type InitializeDisks_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type InitiateFileTransferFromGuest InitiateFileTransferFromGuestRequestType - -func init() { - t["InitiateFileTransferFromGuest"] = reflect.TypeOf((*InitiateFileTransferFromGuest)(nil)).Elem() -} - -type InitiateFileTransferFromGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - GuestFilePath string `xml:"guestFilePath"` -} - -func init() { - t["InitiateFileTransferFromGuestRequestType"] = reflect.TypeOf((*InitiateFileTransferFromGuestRequestType)(nil)).Elem() -} - -type InitiateFileTransferFromGuestResponse struct { - Returnval FileTransferInformation `xml:"returnval"` -} - -type InitiateFileTransferToGuest InitiateFileTransferToGuestRequestType - -func init() { - t["InitiateFileTransferToGuest"] = reflect.TypeOf((*InitiateFileTransferToGuest)(nil)).Elem() -} - -type InitiateFileTransferToGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - GuestFilePath string `xml:"guestFilePath"` - FileAttributes BaseGuestFileAttributes `xml:"fileAttributes,typeattr"` - FileSize int64 `xml:"fileSize"` - Overwrite bool `xml:"overwrite"` -} - -func init() { - t["InitiateFileTransferToGuestRequestType"] = reflect.TypeOf((*InitiateFileTransferToGuestRequestType)(nil)).Elem() -} - -type InitiateFileTransferToGuestResponse struct { - Returnval string `xml:"returnval"` -} - -type InstallHostPatchRequestType struct { - This ManagedObjectReference `xml:"_this"` - Repository HostPatchManagerLocator `xml:"repository"` - UpdateID string `xml:"updateID"` - Force *bool `xml:"force"` -} - -func init() { - t["InstallHostPatchRequestType"] = reflect.TypeOf((*InstallHostPatchRequestType)(nil)).Elem() -} - -type InstallHostPatchV2RequestType struct { - This ManagedObjectReference `xml:"_this"` - MetaUrls []string `xml:"metaUrls,omitempty"` - BundleUrls []string `xml:"bundleUrls,omitempty"` - VibUrls []string `xml:"vibUrls,omitempty"` - Spec *HostPatchManagerPatchManagerOperationSpec `xml:"spec,omitempty"` -} - -func init() { - t["InstallHostPatchV2RequestType"] = reflect.TypeOf((*InstallHostPatchV2RequestType)(nil)).Elem() -} - -type InstallHostPatchV2_Task InstallHostPatchV2RequestType - -func init() { - t["InstallHostPatchV2_Task"] = reflect.TypeOf((*InstallHostPatchV2_Task)(nil)).Elem() -} - -type InstallHostPatchV2_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type InstallHostPatch_Task InstallHostPatchRequestType - -func init() { - t["InstallHostPatch_Task"] = reflect.TypeOf((*InstallHostPatch_Task)(nil)).Elem() -} - -type InstallHostPatch_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type InstallIoFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - VibUrl string `xml:"vibUrl"` - CompRes ManagedObjectReference `xml:"compRes"` -} - -func init() { - t["InstallIoFilterRequestType"] = reflect.TypeOf((*InstallIoFilterRequestType)(nil)).Elem() -} - -type InstallIoFilter_Task InstallIoFilterRequestType - -func init() { - t["InstallIoFilter_Task"] = reflect.TypeOf((*InstallIoFilter_Task)(nil)).Elem() -} - -type InstallIoFilter_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type InstallServerCertificate InstallServerCertificateRequestType - -func init() { - t["InstallServerCertificate"] = reflect.TypeOf((*InstallServerCertificate)(nil)).Elem() -} - -type InstallServerCertificateRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cert string `xml:"cert"` -} - -func init() { - t["InstallServerCertificateRequestType"] = reflect.TypeOf((*InstallServerCertificateRequestType)(nil)).Elem() -} - -type InstallServerCertificateResponse struct { -} - -type InstallSmartCardTrustAnchor InstallSmartCardTrustAnchorRequestType - -func init() { - t["InstallSmartCardTrustAnchor"] = reflect.TypeOf((*InstallSmartCardTrustAnchor)(nil)).Elem() -} - -type InstallSmartCardTrustAnchorRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cert string `xml:"cert"` -} - -func init() { - t["InstallSmartCardTrustAnchorRequestType"] = reflect.TypeOf((*InstallSmartCardTrustAnchorRequestType)(nil)).Elem() -} - -type InstallSmartCardTrustAnchorResponse struct { -} - -type InsufficientAgentVmsDeployed struct { - InsufficientResourcesFault - - HostName string `xml:"hostName"` - RequiredNumAgentVms int32 `xml:"requiredNumAgentVms"` - CurrentNumAgentVms int32 `xml:"currentNumAgentVms"` -} - -func init() { - t["InsufficientAgentVmsDeployed"] = reflect.TypeOf((*InsufficientAgentVmsDeployed)(nil)).Elem() -} - -type InsufficientAgentVmsDeployedFault InsufficientAgentVmsDeployed - -func init() { - t["InsufficientAgentVmsDeployedFault"] = reflect.TypeOf((*InsufficientAgentVmsDeployedFault)(nil)).Elem() -} - -type InsufficientCpuResourcesFault struct { - InsufficientResourcesFault - - Unreserved int64 `xml:"unreserved"` - Requested int64 `xml:"requested"` -} - -func init() { - t["InsufficientCpuResourcesFault"] = reflect.TypeOf((*InsufficientCpuResourcesFault)(nil)).Elem() -} - -type InsufficientCpuResourcesFaultFault InsufficientCpuResourcesFault - -func init() { - t["InsufficientCpuResourcesFaultFault"] = reflect.TypeOf((*InsufficientCpuResourcesFaultFault)(nil)).Elem() -} - -type InsufficientDisks struct { - VsanDiskFault -} - -func init() { - t["InsufficientDisks"] = reflect.TypeOf((*InsufficientDisks)(nil)).Elem() -} - -type InsufficientDisksFault InsufficientDisks - -func init() { - t["InsufficientDisksFault"] = reflect.TypeOf((*InsufficientDisksFault)(nil)).Elem() -} - -type InsufficientFailoverResourcesEvent struct { - ClusterEvent -} - -func init() { - t["InsufficientFailoverResourcesEvent"] = reflect.TypeOf((*InsufficientFailoverResourcesEvent)(nil)).Elem() -} - -type InsufficientFailoverResourcesFault struct { - InsufficientResourcesFault -} - -func init() { - t["InsufficientFailoverResourcesFault"] = reflect.TypeOf((*InsufficientFailoverResourcesFault)(nil)).Elem() -} - -type InsufficientFailoverResourcesFaultFault InsufficientFailoverResourcesFault - -func init() { - t["InsufficientFailoverResourcesFaultFault"] = reflect.TypeOf((*InsufficientFailoverResourcesFaultFault)(nil)).Elem() -} - -type InsufficientGraphicsResourcesFault struct { - InsufficientResourcesFault -} - -func init() { - t["InsufficientGraphicsResourcesFault"] = reflect.TypeOf((*InsufficientGraphicsResourcesFault)(nil)).Elem() -} - -type InsufficientGraphicsResourcesFaultFault InsufficientGraphicsResourcesFault - -func init() { - t["InsufficientGraphicsResourcesFaultFault"] = reflect.TypeOf((*InsufficientGraphicsResourcesFaultFault)(nil)).Elem() -} - -type InsufficientHostCapacityFault struct { - InsufficientResourcesFault - - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["InsufficientHostCapacityFault"] = reflect.TypeOf((*InsufficientHostCapacityFault)(nil)).Elem() -} - -type InsufficientHostCapacityFaultFault BaseInsufficientHostCapacityFault - -func init() { - t["InsufficientHostCapacityFaultFault"] = reflect.TypeOf((*InsufficientHostCapacityFaultFault)(nil)).Elem() -} - -type InsufficientHostCpuCapacityFault struct { - InsufficientHostCapacityFault - - Unreserved int64 `xml:"unreserved"` - Requested int64 `xml:"requested"` -} - -func init() { - t["InsufficientHostCpuCapacityFault"] = reflect.TypeOf((*InsufficientHostCpuCapacityFault)(nil)).Elem() -} - -type InsufficientHostCpuCapacityFaultFault InsufficientHostCpuCapacityFault - -func init() { - t["InsufficientHostCpuCapacityFaultFault"] = reflect.TypeOf((*InsufficientHostCpuCapacityFaultFault)(nil)).Elem() -} - -type InsufficientHostMemoryCapacityFault struct { - InsufficientHostCapacityFault - - Unreserved int64 `xml:"unreserved"` - Requested int64 `xml:"requested"` -} - -func init() { - t["InsufficientHostMemoryCapacityFault"] = reflect.TypeOf((*InsufficientHostMemoryCapacityFault)(nil)).Elem() -} - -type InsufficientHostMemoryCapacityFaultFault InsufficientHostMemoryCapacityFault - -func init() { - t["InsufficientHostMemoryCapacityFaultFault"] = reflect.TypeOf((*InsufficientHostMemoryCapacityFaultFault)(nil)).Elem() -} - -type InsufficientMemoryResourcesFault struct { - InsufficientResourcesFault - - Unreserved int64 `xml:"unreserved"` - Requested int64 `xml:"requested"` -} - -func init() { - t["InsufficientMemoryResourcesFault"] = reflect.TypeOf((*InsufficientMemoryResourcesFault)(nil)).Elem() -} - -type InsufficientMemoryResourcesFaultFault InsufficientMemoryResourcesFault - -func init() { - t["InsufficientMemoryResourcesFaultFault"] = reflect.TypeOf((*InsufficientMemoryResourcesFaultFault)(nil)).Elem() -} - -type InsufficientNetworkCapacity struct { - InsufficientResourcesFault -} - -func init() { - t["InsufficientNetworkCapacity"] = reflect.TypeOf((*InsufficientNetworkCapacity)(nil)).Elem() -} - -type InsufficientNetworkCapacityFault InsufficientNetworkCapacity - -func init() { - t["InsufficientNetworkCapacityFault"] = reflect.TypeOf((*InsufficientNetworkCapacityFault)(nil)).Elem() -} - -type InsufficientNetworkResourcePoolCapacity struct { - InsufficientResourcesFault - - DvsName string `xml:"dvsName"` - DvsUuid string `xml:"dvsUuid"` - ResourcePoolKey string `xml:"resourcePoolKey"` - Available int64 `xml:"available"` - Requested int64 `xml:"requested"` - Device []string `xml:"device"` -} - -func init() { - t["InsufficientNetworkResourcePoolCapacity"] = reflect.TypeOf((*InsufficientNetworkResourcePoolCapacity)(nil)).Elem() -} - -type InsufficientNetworkResourcePoolCapacityFault InsufficientNetworkResourcePoolCapacity - -func init() { - t["InsufficientNetworkResourcePoolCapacityFault"] = reflect.TypeOf((*InsufficientNetworkResourcePoolCapacityFault)(nil)).Elem() -} - -type InsufficientPerCpuCapacity struct { - InsufficientHostCapacityFault -} - -func init() { - t["InsufficientPerCpuCapacity"] = reflect.TypeOf((*InsufficientPerCpuCapacity)(nil)).Elem() -} - -type InsufficientPerCpuCapacityFault InsufficientPerCpuCapacity - -func init() { - t["InsufficientPerCpuCapacityFault"] = reflect.TypeOf((*InsufficientPerCpuCapacityFault)(nil)).Elem() -} - -type InsufficientResourcesFault struct { - VimFault -} - -func init() { - t["InsufficientResourcesFault"] = reflect.TypeOf((*InsufficientResourcesFault)(nil)).Elem() -} - -type InsufficientResourcesFaultFault BaseInsufficientResourcesFault - -func init() { - t["InsufficientResourcesFaultFault"] = reflect.TypeOf((*InsufficientResourcesFaultFault)(nil)).Elem() -} - -type InsufficientStandbyCpuResource struct { - InsufficientStandbyResource - - Available int64 `xml:"available"` - Requested int64 `xml:"requested"` -} - -func init() { - t["InsufficientStandbyCpuResource"] = reflect.TypeOf((*InsufficientStandbyCpuResource)(nil)).Elem() -} - -type InsufficientStandbyCpuResourceFault InsufficientStandbyCpuResource - -func init() { - t["InsufficientStandbyCpuResourceFault"] = reflect.TypeOf((*InsufficientStandbyCpuResourceFault)(nil)).Elem() -} - -type InsufficientStandbyMemoryResource struct { - InsufficientStandbyResource - - Available int64 `xml:"available"` - Requested int64 `xml:"requested"` -} - -func init() { - t["InsufficientStandbyMemoryResource"] = reflect.TypeOf((*InsufficientStandbyMemoryResource)(nil)).Elem() -} - -type InsufficientStandbyMemoryResourceFault InsufficientStandbyMemoryResource - -func init() { - t["InsufficientStandbyMemoryResourceFault"] = reflect.TypeOf((*InsufficientStandbyMemoryResourceFault)(nil)).Elem() -} - -type InsufficientStandbyResource struct { - InsufficientResourcesFault -} - -func init() { - t["InsufficientStandbyResource"] = reflect.TypeOf((*InsufficientStandbyResource)(nil)).Elem() -} - -type InsufficientStandbyResourceFault BaseInsufficientStandbyResource - -func init() { - t["InsufficientStandbyResourceFault"] = reflect.TypeOf((*InsufficientStandbyResourceFault)(nil)).Elem() -} - -type InsufficientStorageIops struct { - VimFault - - UnreservedIops int64 `xml:"unreservedIops"` - RequestedIops int64 `xml:"requestedIops"` - DatastoreName string `xml:"datastoreName"` -} - -func init() { - t["InsufficientStorageIops"] = reflect.TypeOf((*InsufficientStorageIops)(nil)).Elem() -} - -type InsufficientStorageIopsFault InsufficientStorageIops - -func init() { - t["InsufficientStorageIopsFault"] = reflect.TypeOf((*InsufficientStorageIopsFault)(nil)).Elem() -} - -type InsufficientStorageSpace struct { - InsufficientResourcesFault -} - -func init() { - t["InsufficientStorageSpace"] = reflect.TypeOf((*InsufficientStorageSpace)(nil)).Elem() -} - -type InsufficientStorageSpaceFault InsufficientStorageSpace - -func init() { - t["InsufficientStorageSpaceFault"] = reflect.TypeOf((*InsufficientStorageSpaceFault)(nil)).Elem() -} - -type InsufficientVFlashResourcesFault struct { - InsufficientResourcesFault - - FreeSpaceInMB int64 `xml:"freeSpaceInMB,omitempty"` - FreeSpace int64 `xml:"freeSpace"` - RequestedSpaceInMB int64 `xml:"requestedSpaceInMB,omitempty"` - RequestedSpace int64 `xml:"requestedSpace"` -} - -func init() { - t["InsufficientVFlashResourcesFault"] = reflect.TypeOf((*InsufficientVFlashResourcesFault)(nil)).Elem() -} - -type InsufficientVFlashResourcesFaultFault InsufficientVFlashResourcesFault - -func init() { - t["InsufficientVFlashResourcesFaultFault"] = reflect.TypeOf((*InsufficientVFlashResourcesFaultFault)(nil)).Elem() -} - -type IntExpression struct { - NegatableExpression - - Value int32 `xml:"value,omitempty"` -} - -func init() { - t["IntExpression"] = reflect.TypeOf((*IntExpression)(nil)).Elem() -} - -type IntOption struct { - OptionType - - Min int32 `xml:"min"` - Max int32 `xml:"max"` - DefaultValue int32 `xml:"defaultValue"` -} - -func init() { - t["IntOption"] = reflect.TypeOf((*IntOption)(nil)).Elem() -} - -type IntPolicy struct { - InheritablePolicy - - Value int32 `xml:"value,omitempty"` -} - -func init() { - t["IntPolicy"] = reflect.TypeOf((*IntPolicy)(nil)).Elem() -} - -type InvalidAffinitySettingFault struct { - VimFault -} - -func init() { - t["InvalidAffinitySettingFault"] = reflect.TypeOf((*InvalidAffinitySettingFault)(nil)).Elem() -} - -type InvalidAffinitySettingFaultFault InvalidAffinitySettingFault - -func init() { - t["InvalidAffinitySettingFaultFault"] = reflect.TypeOf((*InvalidAffinitySettingFaultFault)(nil)).Elem() -} - -type InvalidArgument struct { - RuntimeFault - - InvalidProperty string `xml:"invalidProperty,omitempty"` -} - -func init() { - t["InvalidArgument"] = reflect.TypeOf((*InvalidArgument)(nil)).Elem() -} - -type InvalidArgumentFault BaseInvalidArgument - -func init() { - t["InvalidArgumentFault"] = reflect.TypeOf((*InvalidArgumentFault)(nil)).Elem() -} - -type InvalidBmcRole struct { - VimFault -} - -func init() { - t["InvalidBmcRole"] = reflect.TypeOf((*InvalidBmcRole)(nil)).Elem() -} - -type InvalidBmcRoleFault InvalidBmcRole - -func init() { - t["InvalidBmcRoleFault"] = reflect.TypeOf((*InvalidBmcRoleFault)(nil)).Elem() -} - -type InvalidBundle struct { - PlatformConfigFault -} - -func init() { - t["InvalidBundle"] = reflect.TypeOf((*InvalidBundle)(nil)).Elem() -} - -type InvalidBundleFault InvalidBundle - -func init() { - t["InvalidBundleFault"] = reflect.TypeOf((*InvalidBundleFault)(nil)).Elem() -} - -type InvalidCAMCertificate struct { - InvalidCAMServer -} - -func init() { - t["InvalidCAMCertificate"] = reflect.TypeOf((*InvalidCAMCertificate)(nil)).Elem() -} - -type InvalidCAMCertificateFault InvalidCAMCertificate - -func init() { - t["InvalidCAMCertificateFault"] = reflect.TypeOf((*InvalidCAMCertificateFault)(nil)).Elem() -} - -type InvalidCAMServer struct { - ActiveDirectoryFault - - CamServer string `xml:"camServer"` -} - -func init() { - t["InvalidCAMServer"] = reflect.TypeOf((*InvalidCAMServer)(nil)).Elem() -} - -type InvalidCAMServerFault BaseInvalidCAMServer - -func init() { - t["InvalidCAMServerFault"] = reflect.TypeOf((*InvalidCAMServerFault)(nil)).Elem() -} - -type InvalidClientCertificate struct { - InvalidLogin -} - -func init() { - t["InvalidClientCertificate"] = reflect.TypeOf((*InvalidClientCertificate)(nil)).Elem() -} - -type InvalidClientCertificateFault InvalidClientCertificate - -func init() { - t["InvalidClientCertificateFault"] = reflect.TypeOf((*InvalidClientCertificateFault)(nil)).Elem() -} - -type InvalidCollectorVersion struct { - MethodFault -} - -func init() { - t["InvalidCollectorVersion"] = reflect.TypeOf((*InvalidCollectorVersion)(nil)).Elem() -} - -type InvalidCollectorVersionFault InvalidCollectorVersion - -func init() { - t["InvalidCollectorVersionFault"] = reflect.TypeOf((*InvalidCollectorVersionFault)(nil)).Elem() -} - -type InvalidController struct { - InvalidDeviceSpec - - ControllerKey int32 `xml:"controllerKey"` -} - -func init() { - t["InvalidController"] = reflect.TypeOf((*InvalidController)(nil)).Elem() -} - -type InvalidControllerFault InvalidController - -func init() { - t["InvalidControllerFault"] = reflect.TypeOf((*InvalidControllerFault)(nil)).Elem() -} - -type InvalidDasConfigArgument struct { - InvalidArgument - - Entry string `xml:"entry,omitempty"` - ClusterName string `xml:"clusterName,omitempty"` -} - -func init() { - t["InvalidDasConfigArgument"] = reflect.TypeOf((*InvalidDasConfigArgument)(nil)).Elem() -} - -type InvalidDasConfigArgumentFault InvalidDasConfigArgument - -func init() { - t["InvalidDasConfigArgumentFault"] = reflect.TypeOf((*InvalidDasConfigArgumentFault)(nil)).Elem() -} - -type InvalidDasRestartPriorityForFtVm struct { - InvalidArgument - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["InvalidDasRestartPriorityForFtVm"] = reflect.TypeOf((*InvalidDasRestartPriorityForFtVm)(nil)).Elem() -} - -type InvalidDasRestartPriorityForFtVmFault InvalidDasRestartPriorityForFtVm - -func init() { - t["InvalidDasRestartPriorityForFtVmFault"] = reflect.TypeOf((*InvalidDasRestartPriorityForFtVmFault)(nil)).Elem() -} - -type InvalidDatastore struct { - VimFault - - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` - Name string `xml:"name,omitempty"` -} - -func init() { - t["InvalidDatastore"] = reflect.TypeOf((*InvalidDatastore)(nil)).Elem() -} - -type InvalidDatastoreFault BaseInvalidDatastore - -func init() { - t["InvalidDatastoreFault"] = reflect.TypeOf((*InvalidDatastoreFault)(nil)).Elem() -} - -type InvalidDatastorePath struct { - InvalidDatastore - - DatastorePath string `xml:"datastorePath"` -} - -func init() { - t["InvalidDatastorePath"] = reflect.TypeOf((*InvalidDatastorePath)(nil)).Elem() -} - -type InvalidDatastorePathFault InvalidDatastorePath - -func init() { - t["InvalidDatastorePathFault"] = reflect.TypeOf((*InvalidDatastorePathFault)(nil)).Elem() -} - -type InvalidDatastoreState struct { - InvalidState - - DatastoreName string `xml:"datastoreName,omitempty"` -} - -func init() { - t["InvalidDatastoreState"] = reflect.TypeOf((*InvalidDatastoreState)(nil)).Elem() -} - -type InvalidDatastoreStateFault InvalidDatastoreState - -func init() { - t["InvalidDatastoreStateFault"] = reflect.TypeOf((*InvalidDatastoreStateFault)(nil)).Elem() -} - -type InvalidDeviceBacking struct { - InvalidDeviceSpec -} - -func init() { - t["InvalidDeviceBacking"] = reflect.TypeOf((*InvalidDeviceBacking)(nil)).Elem() -} - -type InvalidDeviceBackingFault InvalidDeviceBacking - -func init() { - t["InvalidDeviceBackingFault"] = reflect.TypeOf((*InvalidDeviceBackingFault)(nil)).Elem() -} - -type InvalidDeviceOperation struct { - InvalidDeviceSpec - - BadOp VirtualDeviceConfigSpecOperation `xml:"badOp,omitempty"` - BadFileOp VirtualDeviceConfigSpecFileOperation `xml:"badFileOp,omitempty"` -} - -func init() { - t["InvalidDeviceOperation"] = reflect.TypeOf((*InvalidDeviceOperation)(nil)).Elem() -} - -type InvalidDeviceOperationFault InvalidDeviceOperation - -func init() { - t["InvalidDeviceOperationFault"] = reflect.TypeOf((*InvalidDeviceOperationFault)(nil)).Elem() -} - -type InvalidDeviceSpec struct { - InvalidVmConfig - - DeviceIndex int32 `xml:"deviceIndex"` -} - -func init() { - t["InvalidDeviceSpec"] = reflect.TypeOf((*InvalidDeviceSpec)(nil)).Elem() -} - -type InvalidDeviceSpecFault BaseInvalidDeviceSpec - -func init() { - t["InvalidDeviceSpecFault"] = reflect.TypeOf((*InvalidDeviceSpecFault)(nil)).Elem() -} - -type InvalidDiskFormat struct { - InvalidFormat -} - -func init() { - t["InvalidDiskFormat"] = reflect.TypeOf((*InvalidDiskFormat)(nil)).Elem() -} - -type InvalidDiskFormatFault InvalidDiskFormat - -func init() { - t["InvalidDiskFormatFault"] = reflect.TypeOf((*InvalidDiskFormatFault)(nil)).Elem() -} - -type InvalidDrsBehaviorForFtVm struct { - InvalidArgument - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["InvalidDrsBehaviorForFtVm"] = reflect.TypeOf((*InvalidDrsBehaviorForFtVm)(nil)).Elem() -} - -type InvalidDrsBehaviorForFtVmFault InvalidDrsBehaviorForFtVm - -func init() { - t["InvalidDrsBehaviorForFtVmFault"] = reflect.TypeOf((*InvalidDrsBehaviorForFtVmFault)(nil)).Elem() -} - -type InvalidEditionEvent struct { - LicenseEvent - - Feature string `xml:"feature"` -} - -func init() { - t["InvalidEditionEvent"] = reflect.TypeOf((*InvalidEditionEvent)(nil)).Elem() -} - -type InvalidEditionLicense struct { - NotEnoughLicenses - - Feature string `xml:"feature"` -} - -func init() { - t["InvalidEditionLicense"] = reflect.TypeOf((*InvalidEditionLicense)(nil)).Elem() -} - -type InvalidEditionLicenseFault InvalidEditionLicense - -func init() { - t["InvalidEditionLicenseFault"] = reflect.TypeOf((*InvalidEditionLicenseFault)(nil)).Elem() -} - -type InvalidEvent struct { - VimFault -} - -func init() { - t["InvalidEvent"] = reflect.TypeOf((*InvalidEvent)(nil)).Elem() -} - -type InvalidEventFault InvalidEvent - -func init() { - t["InvalidEventFault"] = reflect.TypeOf((*InvalidEventFault)(nil)).Elem() -} - -type InvalidFolder struct { - VimFault - - Target ManagedObjectReference `xml:"target"` -} - -func init() { - t["InvalidFolder"] = reflect.TypeOf((*InvalidFolder)(nil)).Elem() -} - -type InvalidFolderFault BaseInvalidFolder - -func init() { - t["InvalidFolderFault"] = reflect.TypeOf((*InvalidFolderFault)(nil)).Elem() -} - -type InvalidFormat struct { - VmConfigFault -} - -func init() { - t["InvalidFormat"] = reflect.TypeOf((*InvalidFormat)(nil)).Elem() -} - -type InvalidFormatFault BaseInvalidFormat - -func init() { - t["InvalidFormatFault"] = reflect.TypeOf((*InvalidFormatFault)(nil)).Elem() -} - -type InvalidGuestLogin struct { - GuestOperationsFault -} - -func init() { - t["InvalidGuestLogin"] = reflect.TypeOf((*InvalidGuestLogin)(nil)).Elem() -} - -type InvalidGuestLoginFault InvalidGuestLogin - -func init() { - t["InvalidGuestLoginFault"] = reflect.TypeOf((*InvalidGuestLoginFault)(nil)).Elem() -} - -type InvalidHostConnectionState struct { - InvalidHostState -} - -func init() { - t["InvalidHostConnectionState"] = reflect.TypeOf((*InvalidHostConnectionState)(nil)).Elem() -} - -type InvalidHostConnectionStateFault InvalidHostConnectionState - -func init() { - t["InvalidHostConnectionStateFault"] = reflect.TypeOf((*InvalidHostConnectionStateFault)(nil)).Elem() -} - -type InvalidHostName struct { - HostConfigFault -} - -func init() { - t["InvalidHostName"] = reflect.TypeOf((*InvalidHostName)(nil)).Elem() -} - -type InvalidHostNameFault InvalidHostName - -func init() { - t["InvalidHostNameFault"] = reflect.TypeOf((*InvalidHostNameFault)(nil)).Elem() -} - -type InvalidHostState struct { - InvalidState - - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["InvalidHostState"] = reflect.TypeOf((*InvalidHostState)(nil)).Elem() -} - -type InvalidHostStateFault BaseInvalidHostState - -func init() { - t["InvalidHostStateFault"] = reflect.TypeOf((*InvalidHostStateFault)(nil)).Elem() -} - -type InvalidIndexArgument struct { - InvalidArgument - - Key string `xml:"key"` -} - -func init() { - t["InvalidIndexArgument"] = reflect.TypeOf((*InvalidIndexArgument)(nil)).Elem() -} - -type InvalidIndexArgumentFault InvalidIndexArgument - -func init() { - t["InvalidIndexArgumentFault"] = reflect.TypeOf((*InvalidIndexArgumentFault)(nil)).Elem() -} - -type InvalidIpfixConfig struct { - DvsFault - - Property string `xml:"property,omitempty"` -} - -func init() { - t["InvalidIpfixConfig"] = reflect.TypeOf((*InvalidIpfixConfig)(nil)).Elem() -} - -type InvalidIpfixConfigFault InvalidIpfixConfig - -func init() { - t["InvalidIpfixConfigFault"] = reflect.TypeOf((*InvalidIpfixConfigFault)(nil)).Elem() -} - -type InvalidIpmiLoginInfo struct { - VimFault -} - -func init() { - t["InvalidIpmiLoginInfo"] = reflect.TypeOf((*InvalidIpmiLoginInfo)(nil)).Elem() -} - -type InvalidIpmiLoginInfoFault InvalidIpmiLoginInfo - -func init() { - t["InvalidIpmiLoginInfoFault"] = reflect.TypeOf((*InvalidIpmiLoginInfoFault)(nil)).Elem() -} - -type InvalidIpmiMacAddress struct { - VimFault - - UserProvidedMacAddress string `xml:"userProvidedMacAddress"` - ObservedMacAddress string `xml:"observedMacAddress"` -} - -func init() { - t["InvalidIpmiMacAddress"] = reflect.TypeOf((*InvalidIpmiMacAddress)(nil)).Elem() -} - -type InvalidIpmiMacAddressFault InvalidIpmiMacAddress - -func init() { - t["InvalidIpmiMacAddressFault"] = reflect.TypeOf((*InvalidIpmiMacAddressFault)(nil)).Elem() -} - -type InvalidLicense struct { - VimFault - - LicenseContent string `xml:"licenseContent"` -} - -func init() { - t["InvalidLicense"] = reflect.TypeOf((*InvalidLicense)(nil)).Elem() -} - -type InvalidLicenseFault InvalidLicense - -func init() { - t["InvalidLicenseFault"] = reflect.TypeOf((*InvalidLicenseFault)(nil)).Elem() -} - -type InvalidLocale struct { - VimFault -} - -func init() { - t["InvalidLocale"] = reflect.TypeOf((*InvalidLocale)(nil)).Elem() -} - -type InvalidLocaleFault InvalidLocale - -func init() { - t["InvalidLocaleFault"] = reflect.TypeOf((*InvalidLocaleFault)(nil)).Elem() -} - -type InvalidLogin struct { - VimFault -} - -func init() { - t["InvalidLogin"] = reflect.TypeOf((*InvalidLogin)(nil)).Elem() -} - -type InvalidLoginFault BaseInvalidLogin - -func init() { - t["InvalidLoginFault"] = reflect.TypeOf((*InvalidLoginFault)(nil)).Elem() -} - -type InvalidName struct { - VimFault - - Name string `xml:"name"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["InvalidName"] = reflect.TypeOf((*InvalidName)(nil)).Elem() -} - -type InvalidNameFault InvalidName - -func init() { - t["InvalidNameFault"] = reflect.TypeOf((*InvalidNameFault)(nil)).Elem() -} - -type InvalidNasCredentials struct { - NasConfigFault - - UserName string `xml:"userName"` -} - -func init() { - t["InvalidNasCredentials"] = reflect.TypeOf((*InvalidNasCredentials)(nil)).Elem() -} - -type InvalidNasCredentialsFault InvalidNasCredentials - -func init() { - t["InvalidNasCredentialsFault"] = reflect.TypeOf((*InvalidNasCredentialsFault)(nil)).Elem() -} - -type InvalidNetworkInType struct { - VAppPropertyFault -} - -func init() { - t["InvalidNetworkInType"] = reflect.TypeOf((*InvalidNetworkInType)(nil)).Elem() -} - -type InvalidNetworkInTypeFault InvalidNetworkInType - -func init() { - t["InvalidNetworkInTypeFault"] = reflect.TypeOf((*InvalidNetworkInTypeFault)(nil)).Elem() -} - -type InvalidNetworkResource struct { - NasConfigFault - - RemoteHost string `xml:"remoteHost"` - RemotePath string `xml:"remotePath"` -} - -func init() { - t["InvalidNetworkResource"] = reflect.TypeOf((*InvalidNetworkResource)(nil)).Elem() -} - -type InvalidNetworkResourceFault InvalidNetworkResource - -func init() { - t["InvalidNetworkResourceFault"] = reflect.TypeOf((*InvalidNetworkResourceFault)(nil)).Elem() -} - -type InvalidOperationOnSecondaryVm struct { - VmFaultToleranceIssue - - InstanceUuid string `xml:"instanceUuid,omitempty"` -} - -func init() { - t["InvalidOperationOnSecondaryVm"] = reflect.TypeOf((*InvalidOperationOnSecondaryVm)(nil)).Elem() -} - -type InvalidOperationOnSecondaryVmFault InvalidOperationOnSecondaryVm - -func init() { - t["InvalidOperationOnSecondaryVmFault"] = reflect.TypeOf((*InvalidOperationOnSecondaryVmFault)(nil)).Elem() -} - -type InvalidPowerState struct { - InvalidState - - RequestedState VirtualMachinePowerState `xml:"requestedState,omitempty"` - ExistingState VirtualMachinePowerState `xml:"existingState"` -} - -func init() { - t["InvalidPowerState"] = reflect.TypeOf((*InvalidPowerState)(nil)).Elem() -} - -type InvalidPowerStateFault InvalidPowerState - -func init() { - t["InvalidPowerStateFault"] = reflect.TypeOf((*InvalidPowerStateFault)(nil)).Elem() -} - -type InvalidPrivilege struct { - VimFault - - Privilege string `xml:"privilege"` -} - -func init() { - t["InvalidPrivilege"] = reflect.TypeOf((*InvalidPrivilege)(nil)).Elem() -} - -type InvalidPrivilegeFault InvalidPrivilege - -func init() { - t["InvalidPrivilegeFault"] = reflect.TypeOf((*InvalidPrivilegeFault)(nil)).Elem() -} - -type InvalidProfileReferenceHost struct { - RuntimeFault - - Reason string `xml:"reason,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Profile *ManagedObjectReference `xml:"profile,omitempty"` - ProfileName string `xml:"profileName,omitempty"` -} - -func init() { - t["InvalidProfileReferenceHost"] = reflect.TypeOf((*InvalidProfileReferenceHost)(nil)).Elem() -} - -type InvalidProfileReferenceHostFault InvalidProfileReferenceHost - -func init() { - t["InvalidProfileReferenceHostFault"] = reflect.TypeOf((*InvalidProfileReferenceHostFault)(nil)).Elem() -} - -type InvalidProperty struct { - MethodFault - - Name string `xml:"name"` -} - -func init() { - t["InvalidProperty"] = reflect.TypeOf((*InvalidProperty)(nil)).Elem() -} - -type InvalidPropertyFault InvalidProperty - -func init() { - t["InvalidPropertyFault"] = reflect.TypeOf((*InvalidPropertyFault)(nil)).Elem() -} - -type InvalidPropertyType struct { - VAppPropertyFault -} - -func init() { - t["InvalidPropertyType"] = reflect.TypeOf((*InvalidPropertyType)(nil)).Elem() -} - -type InvalidPropertyTypeFault InvalidPropertyType - -func init() { - t["InvalidPropertyTypeFault"] = reflect.TypeOf((*InvalidPropertyTypeFault)(nil)).Elem() -} - -type InvalidPropertyValue struct { - VAppPropertyFault -} - -func init() { - t["InvalidPropertyValue"] = reflect.TypeOf((*InvalidPropertyValue)(nil)).Elem() -} - -type InvalidPropertyValueFault BaseInvalidPropertyValue - -func init() { - t["InvalidPropertyValueFault"] = reflect.TypeOf((*InvalidPropertyValueFault)(nil)).Elem() -} - -type InvalidRequest struct { - RuntimeFault -} - -func init() { - t["InvalidRequest"] = reflect.TypeOf((*InvalidRequest)(nil)).Elem() -} - -type InvalidRequestFault BaseInvalidRequest - -func init() { - t["InvalidRequestFault"] = reflect.TypeOf((*InvalidRequestFault)(nil)).Elem() -} - -type InvalidResourcePoolStructureFault struct { - InsufficientResourcesFault -} - -func init() { - t["InvalidResourcePoolStructureFault"] = reflect.TypeOf((*InvalidResourcePoolStructureFault)(nil)).Elem() -} - -type InvalidResourcePoolStructureFaultFault InvalidResourcePoolStructureFault - -func init() { - t["InvalidResourcePoolStructureFaultFault"] = reflect.TypeOf((*InvalidResourcePoolStructureFaultFault)(nil)).Elem() -} - -type InvalidSnapshotFormat struct { - InvalidFormat -} - -func init() { - t["InvalidSnapshotFormat"] = reflect.TypeOf((*InvalidSnapshotFormat)(nil)).Elem() -} - -type InvalidSnapshotFormatFault InvalidSnapshotFormat - -func init() { - t["InvalidSnapshotFormatFault"] = reflect.TypeOf((*InvalidSnapshotFormatFault)(nil)).Elem() -} - -type InvalidState struct { - VimFault -} - -func init() { - t["InvalidState"] = reflect.TypeOf((*InvalidState)(nil)).Elem() -} - -type InvalidStateFault BaseInvalidState - -func init() { - t["InvalidStateFault"] = reflect.TypeOf((*InvalidStateFault)(nil)).Elem() -} - -type InvalidType struct { - InvalidRequest - - Argument string `xml:"argument,omitempty"` -} - -func init() { - t["InvalidType"] = reflect.TypeOf((*InvalidType)(nil)).Elem() -} - -type InvalidTypeFault InvalidType - -func init() { - t["InvalidTypeFault"] = reflect.TypeOf((*InvalidTypeFault)(nil)).Elem() -} - -type InvalidVmConfig struct { - VmConfigFault - - Property string `xml:"property,omitempty"` -} - -func init() { - t["InvalidVmConfig"] = reflect.TypeOf((*InvalidVmConfig)(nil)).Elem() -} - -type InvalidVmConfigFault BaseInvalidVmConfig - -func init() { - t["InvalidVmConfigFault"] = reflect.TypeOf((*InvalidVmConfigFault)(nil)).Elem() -} - -type InvalidVmState struct { - InvalidState - - Vm ManagedObjectReference `xml:"vm"` -} - -func init() { - t["InvalidVmState"] = reflect.TypeOf((*InvalidVmState)(nil)).Elem() -} - -type InvalidVmStateFault InvalidVmState - -func init() { - t["InvalidVmStateFault"] = reflect.TypeOf((*InvalidVmStateFault)(nil)).Elem() -} - -type InventoryDescription struct { - DynamicData - - NumHosts int32 `xml:"numHosts"` - NumVirtualMachines int32 `xml:"numVirtualMachines"` - NumResourcePools int32 `xml:"numResourcePools,omitempty"` - NumClusters int32 `xml:"numClusters,omitempty"` - NumCpuDev int32 `xml:"numCpuDev,omitempty"` - NumNetDev int32 `xml:"numNetDev,omitempty"` - NumDiskDev int32 `xml:"numDiskDev,omitempty"` - NumvCpuDev int32 `xml:"numvCpuDev,omitempty"` - NumvNetDev int32 `xml:"numvNetDev,omitempty"` - NumvDiskDev int32 `xml:"numvDiskDev,omitempty"` -} - -func init() { - t["InventoryDescription"] = reflect.TypeOf((*InventoryDescription)(nil)).Elem() -} - -type InventoryHasStandardAloneHosts struct { - NotEnoughLicenses - - Hosts []string `xml:"hosts"` -} - -func init() { - t["InventoryHasStandardAloneHosts"] = reflect.TypeOf((*InventoryHasStandardAloneHosts)(nil)).Elem() -} - -type InventoryHasStandardAloneHostsFault InventoryHasStandardAloneHosts - -func init() { - t["InventoryHasStandardAloneHostsFault"] = reflect.TypeOf((*InventoryHasStandardAloneHostsFault)(nil)).Elem() -} - -type IoFilterHostIssue struct { - DynamicData - - Host ManagedObjectReference `xml:"host"` - Issue []LocalizedMethodFault `xml:"issue"` -} - -func init() { - t["IoFilterHostIssue"] = reflect.TypeOf((*IoFilterHostIssue)(nil)).Elem() -} - -type IoFilterInfo struct { - DynamicData - - Id string `xml:"id"` - Name string `xml:"name"` - Vendor string `xml:"vendor"` - Version string `xml:"version"` - Type string `xml:"type,omitempty"` - Summary string `xml:"summary,omitempty"` - ReleaseDate string `xml:"releaseDate,omitempty"` -} - -func init() { - t["IoFilterInfo"] = reflect.TypeOf((*IoFilterInfo)(nil)).Elem() -} - -type IoFilterQueryIssueResult struct { - DynamicData - - OpType string `xml:"opType"` - HostIssue []IoFilterHostIssue `xml:"hostIssue,omitempty"` -} - -func init() { - t["IoFilterQueryIssueResult"] = reflect.TypeOf((*IoFilterQueryIssueResult)(nil)).Elem() -} - -type IpAddress struct { - NegatableExpression -} - -func init() { - t["IpAddress"] = reflect.TypeOf((*IpAddress)(nil)).Elem() -} - -type IpAddressProfile struct { - ApplyProfile -} - -func init() { - t["IpAddressProfile"] = reflect.TypeOf((*IpAddressProfile)(nil)).Elem() -} - -type IpHostnameGeneratorError struct { - CustomizationFault -} - -func init() { - t["IpHostnameGeneratorError"] = reflect.TypeOf((*IpHostnameGeneratorError)(nil)).Elem() -} - -type IpHostnameGeneratorErrorFault IpHostnameGeneratorError - -func init() { - t["IpHostnameGeneratorErrorFault"] = reflect.TypeOf((*IpHostnameGeneratorErrorFault)(nil)).Elem() -} - -type IpPool struct { - DynamicData - - Id int32 `xml:"id,omitempty"` - Name string `xml:"name,omitempty"` - Ipv4Config *IpPoolIpPoolConfigInfo `xml:"ipv4Config,omitempty"` - Ipv6Config *IpPoolIpPoolConfigInfo `xml:"ipv6Config,omitempty"` - DnsDomain string `xml:"dnsDomain,omitempty"` - DnsSearchPath string `xml:"dnsSearchPath,omitempty"` - HostPrefix string `xml:"hostPrefix,omitempty"` - HttpProxy string `xml:"httpProxy,omitempty"` - NetworkAssociation []IpPoolAssociation `xml:"networkAssociation,omitempty"` - AvailableIpv4Addresses int32 `xml:"availableIpv4Addresses,omitempty"` - AvailableIpv6Addresses int32 `xml:"availableIpv6Addresses,omitempty"` - AllocatedIpv4Addresses int32 `xml:"allocatedIpv4Addresses,omitempty"` - AllocatedIpv6Addresses int32 `xml:"allocatedIpv6Addresses,omitempty"` -} - -func init() { - t["IpPool"] = reflect.TypeOf((*IpPool)(nil)).Elem() -} - -type IpPoolAssociation struct { - DynamicData - - Network *ManagedObjectReference `xml:"network,omitempty"` - NetworkName string `xml:"networkName"` -} - -func init() { - t["IpPoolAssociation"] = reflect.TypeOf((*IpPoolAssociation)(nil)).Elem() -} - -type IpPoolIpPoolConfigInfo struct { - DynamicData - - SubnetAddress string `xml:"subnetAddress,omitempty"` - Netmask string `xml:"netmask,omitempty"` - Gateway string `xml:"gateway,omitempty"` - Range string `xml:"range,omitempty"` - Dns []string `xml:"dns,omitempty"` - DhcpServerAvailable *bool `xml:"dhcpServerAvailable"` - IpPoolEnabled *bool `xml:"ipPoolEnabled"` -} - -func init() { - t["IpPoolIpPoolConfigInfo"] = reflect.TypeOf((*IpPoolIpPoolConfigInfo)(nil)).Elem() -} - -type IpPoolManagerIpAllocation struct { - DynamicData - - IpAddress string `xml:"ipAddress"` - AllocationId string `xml:"allocationId"` -} - -func init() { - t["IpPoolManagerIpAllocation"] = reflect.TypeOf((*IpPoolManagerIpAllocation)(nil)).Elem() -} - -type IpRange struct { - IpAddress - - AddressPrefix string `xml:"addressPrefix"` - PrefixLength int32 `xml:"prefixLength,omitempty"` -} - -func init() { - t["IpRange"] = reflect.TypeOf((*IpRange)(nil)).Elem() -} - -type IpRouteProfile struct { - ApplyProfile - - StaticRoute []StaticRouteProfile `xml:"staticRoute,omitempty"` -} - -func init() { - t["IpRouteProfile"] = reflect.TypeOf((*IpRouteProfile)(nil)).Elem() -} - -type IsSharedGraphicsActive IsSharedGraphicsActiveRequestType - -func init() { - t["IsSharedGraphicsActive"] = reflect.TypeOf((*IsSharedGraphicsActive)(nil)).Elem() -} - -type IsSharedGraphicsActiveRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["IsSharedGraphicsActiveRequestType"] = reflect.TypeOf((*IsSharedGraphicsActiveRequestType)(nil)).Elem() -} - -type IsSharedGraphicsActiveResponse struct { - Returnval bool `xml:"returnval"` -} - -type IscsiDependencyEntity struct { - DynamicData - - PnicDevice string `xml:"pnicDevice"` - VnicDevice string `xml:"vnicDevice"` - VmhbaName string `xml:"vmhbaName"` -} - -func init() { - t["IscsiDependencyEntity"] = reflect.TypeOf((*IscsiDependencyEntity)(nil)).Elem() -} - -type IscsiFault struct { - VimFault -} - -func init() { - t["IscsiFault"] = reflect.TypeOf((*IscsiFault)(nil)).Elem() -} - -type IscsiFaultFault BaseIscsiFault - -func init() { - t["IscsiFaultFault"] = reflect.TypeOf((*IscsiFaultFault)(nil)).Elem() -} - -type IscsiFaultInvalidVnic struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultInvalidVnic"] = reflect.TypeOf((*IscsiFaultInvalidVnic)(nil)).Elem() -} - -type IscsiFaultInvalidVnicFault IscsiFaultInvalidVnic - -func init() { - t["IscsiFaultInvalidVnicFault"] = reflect.TypeOf((*IscsiFaultInvalidVnicFault)(nil)).Elem() -} - -type IscsiFaultPnicInUse struct { - IscsiFault - - PnicDevice string `xml:"pnicDevice"` -} - -func init() { - t["IscsiFaultPnicInUse"] = reflect.TypeOf((*IscsiFaultPnicInUse)(nil)).Elem() -} - -type IscsiFaultPnicInUseFault IscsiFaultPnicInUse - -func init() { - t["IscsiFaultPnicInUseFault"] = reflect.TypeOf((*IscsiFaultPnicInUseFault)(nil)).Elem() -} - -type IscsiFaultVnicAlreadyBound struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicAlreadyBound"] = reflect.TypeOf((*IscsiFaultVnicAlreadyBound)(nil)).Elem() -} - -type IscsiFaultVnicAlreadyBoundFault IscsiFaultVnicAlreadyBound - -func init() { - t["IscsiFaultVnicAlreadyBoundFault"] = reflect.TypeOf((*IscsiFaultVnicAlreadyBoundFault)(nil)).Elem() -} - -type IscsiFaultVnicHasActivePaths struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicHasActivePaths"] = reflect.TypeOf((*IscsiFaultVnicHasActivePaths)(nil)).Elem() -} - -type IscsiFaultVnicHasActivePathsFault IscsiFaultVnicHasActivePaths - -func init() { - t["IscsiFaultVnicHasActivePathsFault"] = reflect.TypeOf((*IscsiFaultVnicHasActivePathsFault)(nil)).Elem() -} - -type IscsiFaultVnicHasMultipleUplinks struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicHasMultipleUplinks"] = reflect.TypeOf((*IscsiFaultVnicHasMultipleUplinks)(nil)).Elem() -} - -type IscsiFaultVnicHasMultipleUplinksFault IscsiFaultVnicHasMultipleUplinks - -func init() { - t["IscsiFaultVnicHasMultipleUplinksFault"] = reflect.TypeOf((*IscsiFaultVnicHasMultipleUplinksFault)(nil)).Elem() -} - -type IscsiFaultVnicHasNoUplinks struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicHasNoUplinks"] = reflect.TypeOf((*IscsiFaultVnicHasNoUplinks)(nil)).Elem() -} - -type IscsiFaultVnicHasNoUplinksFault IscsiFaultVnicHasNoUplinks - -func init() { - t["IscsiFaultVnicHasNoUplinksFault"] = reflect.TypeOf((*IscsiFaultVnicHasNoUplinksFault)(nil)).Elem() -} - -type IscsiFaultVnicHasWrongUplink struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicHasWrongUplink"] = reflect.TypeOf((*IscsiFaultVnicHasWrongUplink)(nil)).Elem() -} - -type IscsiFaultVnicHasWrongUplinkFault IscsiFaultVnicHasWrongUplink - -func init() { - t["IscsiFaultVnicHasWrongUplinkFault"] = reflect.TypeOf((*IscsiFaultVnicHasWrongUplinkFault)(nil)).Elem() -} - -type IscsiFaultVnicInUse struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicInUse"] = reflect.TypeOf((*IscsiFaultVnicInUse)(nil)).Elem() -} - -type IscsiFaultVnicInUseFault IscsiFaultVnicInUse - -func init() { - t["IscsiFaultVnicInUseFault"] = reflect.TypeOf((*IscsiFaultVnicInUseFault)(nil)).Elem() -} - -type IscsiFaultVnicIsLastPath struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicIsLastPath"] = reflect.TypeOf((*IscsiFaultVnicIsLastPath)(nil)).Elem() -} - -type IscsiFaultVnicIsLastPathFault IscsiFaultVnicIsLastPath - -func init() { - t["IscsiFaultVnicIsLastPathFault"] = reflect.TypeOf((*IscsiFaultVnicIsLastPathFault)(nil)).Elem() -} - -type IscsiFaultVnicNotBound struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicNotBound"] = reflect.TypeOf((*IscsiFaultVnicNotBound)(nil)).Elem() -} - -type IscsiFaultVnicNotBoundFault IscsiFaultVnicNotBound - -func init() { - t["IscsiFaultVnicNotBoundFault"] = reflect.TypeOf((*IscsiFaultVnicNotBoundFault)(nil)).Elem() -} - -type IscsiFaultVnicNotFound struct { - IscsiFault - - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["IscsiFaultVnicNotFound"] = reflect.TypeOf((*IscsiFaultVnicNotFound)(nil)).Elem() -} - -type IscsiFaultVnicNotFoundFault IscsiFaultVnicNotFound - -func init() { - t["IscsiFaultVnicNotFoundFault"] = reflect.TypeOf((*IscsiFaultVnicNotFoundFault)(nil)).Elem() -} - -type IscsiMigrationDependency struct { - DynamicData - - MigrationAllowed bool `xml:"migrationAllowed"` - DisallowReason *IscsiStatus `xml:"disallowReason,omitempty"` - Dependency []IscsiDependencyEntity `xml:"dependency,omitempty"` -} - -func init() { - t["IscsiMigrationDependency"] = reflect.TypeOf((*IscsiMigrationDependency)(nil)).Elem() -} - -type IscsiPortInfo struct { - DynamicData - - VnicDevice string `xml:"vnicDevice,omitempty"` - Vnic *HostVirtualNic `xml:"vnic,omitempty"` - PnicDevice string `xml:"pnicDevice,omitempty"` - Pnic *PhysicalNic `xml:"pnic,omitempty"` - SwitchName string `xml:"switchName,omitempty"` - SwitchUuid string `xml:"switchUuid,omitempty"` - PortgroupName string `xml:"portgroupName,omitempty"` - PortgroupKey string `xml:"portgroupKey,omitempty"` - PortKey string `xml:"portKey,omitempty"` - OpaqueNetworkId string `xml:"opaqueNetworkId,omitempty"` - OpaqueNetworkType string `xml:"opaqueNetworkType,omitempty"` - OpaqueNetworkName string `xml:"opaqueNetworkName,omitempty"` - ExternalId string `xml:"externalId,omitempty"` - ComplianceStatus *IscsiStatus `xml:"complianceStatus,omitempty"` - PathStatus string `xml:"pathStatus,omitempty"` -} - -func init() { - t["IscsiPortInfo"] = reflect.TypeOf((*IscsiPortInfo)(nil)).Elem() -} - -type IscsiStatus struct { - DynamicData - - Reason []LocalizedMethodFault `xml:"reason,omitempty"` -} - -func init() { - t["IscsiStatus"] = reflect.TypeOf((*IscsiStatus)(nil)).Elem() -} - -type IsoImageFileInfo struct { - FileInfo -} - -func init() { - t["IsoImageFileInfo"] = reflect.TypeOf((*IsoImageFileInfo)(nil)).Elem() -} - -type IsoImageFileQuery struct { - FileQuery -} - -func init() { - t["IsoImageFileQuery"] = reflect.TypeOf((*IsoImageFileQuery)(nil)).Elem() -} - -type JoinDomainRequestType struct { - This ManagedObjectReference `xml:"_this"` - DomainName string `xml:"domainName"` - UserName string `xml:"userName"` - Password string `xml:"password"` -} - -func init() { - t["JoinDomainRequestType"] = reflect.TypeOf((*JoinDomainRequestType)(nil)).Elem() -} - -type JoinDomainWithCAMRequestType struct { - This ManagedObjectReference `xml:"_this"` - DomainName string `xml:"domainName"` - CamServer string `xml:"camServer"` -} - -func init() { - t["JoinDomainWithCAMRequestType"] = reflect.TypeOf((*JoinDomainWithCAMRequestType)(nil)).Elem() -} - -type JoinDomainWithCAM_Task JoinDomainWithCAMRequestType - -func init() { - t["JoinDomainWithCAM_Task"] = reflect.TypeOf((*JoinDomainWithCAM_Task)(nil)).Elem() -} - -type JoinDomainWithCAM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type JoinDomain_Task JoinDomainRequestType - -func init() { - t["JoinDomain_Task"] = reflect.TypeOf((*JoinDomain_Task)(nil)).Elem() -} - -type JoinDomain_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type KernelModuleInfo struct { - DynamicData - - Id int32 `xml:"id"` - Name string `xml:"name"` - Version string `xml:"version"` - Filename string `xml:"filename"` - OptionString string `xml:"optionString"` - Loaded bool `xml:"loaded"` - Enabled bool `xml:"enabled"` - UseCount int32 `xml:"useCount"` - ReadOnlySection KernelModuleSectionInfo `xml:"readOnlySection"` - WritableSection KernelModuleSectionInfo `xml:"writableSection"` - TextSection KernelModuleSectionInfo `xml:"textSection"` - DataSection KernelModuleSectionInfo `xml:"dataSection"` - BssSection KernelModuleSectionInfo `xml:"bssSection"` -} - -func init() { - t["KernelModuleInfo"] = reflect.TypeOf((*KernelModuleInfo)(nil)).Elem() -} - -type KernelModuleSectionInfo struct { - DynamicData - - Address int64 `xml:"address"` - Length int32 `xml:"length,omitempty"` -} - -func init() { - t["KernelModuleSectionInfo"] = reflect.TypeOf((*KernelModuleSectionInfo)(nil)).Elem() -} - -type KeyAnyValue struct { - DynamicData - - Key string `xml:"key"` - Value AnyType `xml:"value,typeattr"` -} - -func init() { - t["KeyAnyValue"] = reflect.TypeOf((*KeyAnyValue)(nil)).Elem() -} - -type KeyProviderId struct { - DynamicData - - Id string `xml:"id"` -} - -func init() { - t["KeyProviderId"] = reflect.TypeOf((*KeyProviderId)(nil)).Elem() -} - -type KeyValue struct { - DynamicData - - Key string `xml:"key"` - Value string `xml:"value"` -} - -func init() { - t["KeyValue"] = reflect.TypeOf((*KeyValue)(nil)).Elem() -} - -type KmipClusterInfo struct { - DynamicData - - ClusterId KeyProviderId `xml:"clusterId"` - Servers []KmipServerInfo `xml:"servers,omitempty"` - UseAsDefault bool `xml:"useAsDefault"` -} - -func init() { - t["KmipClusterInfo"] = reflect.TypeOf((*KmipClusterInfo)(nil)).Elem() -} - -type KmipServerInfo struct { - DynamicData - - Name string `xml:"name"` - Address string `xml:"address"` - Port int32 `xml:"port"` - ProxyAddress string `xml:"proxyAddress,omitempty"` - ProxyPort int32 `xml:"proxyPort,omitempty"` - Reconnect int32 `xml:"reconnect,omitempty"` - Protocol string `xml:"protocol,omitempty"` - Nbio int32 `xml:"nbio,omitempty"` - Timeout int32 `xml:"timeout,omitempty"` - UserName string `xml:"userName,omitempty"` -} - -func init() { - t["KmipServerInfo"] = reflect.TypeOf((*KmipServerInfo)(nil)).Elem() -} - -type KmipServerSpec struct { - DynamicData - - ClusterId KeyProviderId `xml:"clusterId"` - Info KmipServerInfo `xml:"info"` - Password string `xml:"password,omitempty"` -} - -func init() { - t["KmipServerSpec"] = reflect.TypeOf((*KmipServerSpec)(nil)).Elem() -} - -type KmipServerStatus struct { - DynamicData - - ClusterId KeyProviderId `xml:"clusterId"` - Name string `xml:"name"` - Status ManagedEntityStatus `xml:"status"` - Description string `xml:"description"` -} - -func init() { - t["KmipServerStatus"] = reflect.TypeOf((*KmipServerStatus)(nil)).Elem() -} - -type LargeRDMConversionNotSupported struct { - MigrationFault - - Device string `xml:"device"` -} - -func init() { - t["LargeRDMConversionNotSupported"] = reflect.TypeOf((*LargeRDMConversionNotSupported)(nil)).Elem() -} - -type LargeRDMConversionNotSupportedFault LargeRDMConversionNotSupported - -func init() { - t["LargeRDMConversionNotSupportedFault"] = reflect.TypeOf((*LargeRDMConversionNotSupportedFault)(nil)).Elem() -} - -type LargeRDMNotSupportedOnDatastore struct { - VmConfigFault - - Device string `xml:"device"` - Datastore ManagedObjectReference `xml:"datastore"` - DatastoreName string `xml:"datastoreName"` -} - -func init() { - t["LargeRDMNotSupportedOnDatastore"] = reflect.TypeOf((*LargeRDMNotSupportedOnDatastore)(nil)).Elem() -} - -type LargeRDMNotSupportedOnDatastoreFault LargeRDMNotSupportedOnDatastore - -func init() { - t["LargeRDMNotSupportedOnDatastoreFault"] = reflect.TypeOf((*LargeRDMNotSupportedOnDatastoreFault)(nil)).Elem() -} - -type LatencySensitivity struct { - DynamicData - - Level LatencySensitivitySensitivityLevel `xml:"level"` - Sensitivity int32 `xml:"sensitivity,omitempty"` -} - -func init() { - t["LatencySensitivity"] = reflect.TypeOf((*LatencySensitivity)(nil)).Elem() -} - -type LeaveCurrentDomainRequestType struct { - This ManagedObjectReference `xml:"_this"` - Force bool `xml:"force"` -} - -func init() { - t["LeaveCurrentDomainRequestType"] = reflect.TypeOf((*LeaveCurrentDomainRequestType)(nil)).Elem() -} - -type LeaveCurrentDomain_Task LeaveCurrentDomainRequestType - -func init() { - t["LeaveCurrentDomain_Task"] = reflect.TypeOf((*LeaveCurrentDomain_Task)(nil)).Elem() -} - -type LeaveCurrentDomain_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type LegacyNetworkInterfaceInUse struct { - CannotAccessNetwork -} - -func init() { - t["LegacyNetworkInterfaceInUse"] = reflect.TypeOf((*LegacyNetworkInterfaceInUse)(nil)).Elem() -} - -type LegacyNetworkInterfaceInUseFault LegacyNetworkInterfaceInUse - -func init() { - t["LegacyNetworkInterfaceInUseFault"] = reflect.TypeOf((*LegacyNetworkInterfaceInUseFault)(nil)).Elem() -} - -type LicenseAssignmentFailed struct { - RuntimeFault - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["LicenseAssignmentFailed"] = reflect.TypeOf((*LicenseAssignmentFailed)(nil)).Elem() -} - -type LicenseAssignmentFailedFault LicenseAssignmentFailed - -func init() { - t["LicenseAssignmentFailedFault"] = reflect.TypeOf((*LicenseAssignmentFailedFault)(nil)).Elem() -} - -type LicenseAssignmentManagerLicenseAssignment struct { - DynamicData - - EntityId string `xml:"entityId"` - Scope string `xml:"scope,omitempty"` - EntityDisplayName string `xml:"entityDisplayName,omitempty"` - AssignedLicense LicenseManagerLicenseInfo `xml:"assignedLicense"` - Properties []KeyAnyValue `xml:"properties,omitempty"` -} - -func init() { - t["LicenseAssignmentManagerLicenseAssignment"] = reflect.TypeOf((*LicenseAssignmentManagerLicenseAssignment)(nil)).Elem() -} - -type LicenseAvailabilityInfo struct { - DynamicData - - Feature LicenseFeatureInfo `xml:"feature"` - Total int32 `xml:"total"` - Available int32 `xml:"available"` -} - -func init() { - t["LicenseAvailabilityInfo"] = reflect.TypeOf((*LicenseAvailabilityInfo)(nil)).Elem() -} - -type LicenseDiagnostics struct { - DynamicData - - SourceLastChanged time.Time `xml:"sourceLastChanged"` - SourceLost string `xml:"sourceLost"` - SourceLatency float32 `xml:"sourceLatency"` - LicenseRequests string `xml:"licenseRequests"` - LicenseRequestFailures string `xml:"licenseRequestFailures"` - LicenseFeatureUnknowns string `xml:"licenseFeatureUnknowns"` - OpState LicenseManagerState `xml:"opState"` - LastStatusUpdate time.Time `xml:"lastStatusUpdate"` - OpFailureMessage string `xml:"opFailureMessage"` -} - -func init() { - t["LicenseDiagnostics"] = reflect.TypeOf((*LicenseDiagnostics)(nil)).Elem() -} - -type LicenseDowngradeDisallowed struct { - NotEnoughLicenses - - Edition string `xml:"edition"` - EntityId string `xml:"entityId"` - Features []KeyAnyValue `xml:"features"` -} - -func init() { - t["LicenseDowngradeDisallowed"] = reflect.TypeOf((*LicenseDowngradeDisallowed)(nil)).Elem() -} - -type LicenseDowngradeDisallowedFault LicenseDowngradeDisallowed - -func init() { - t["LicenseDowngradeDisallowedFault"] = reflect.TypeOf((*LicenseDowngradeDisallowedFault)(nil)).Elem() -} - -type LicenseEntityNotFound struct { - VimFault - - EntityId string `xml:"entityId"` -} - -func init() { - t["LicenseEntityNotFound"] = reflect.TypeOf((*LicenseEntityNotFound)(nil)).Elem() -} - -type LicenseEntityNotFoundFault LicenseEntityNotFound - -func init() { - t["LicenseEntityNotFoundFault"] = reflect.TypeOf((*LicenseEntityNotFoundFault)(nil)).Elem() -} - -type LicenseEvent struct { - Event -} - -func init() { - t["LicenseEvent"] = reflect.TypeOf((*LicenseEvent)(nil)).Elem() -} - -type LicenseExpired struct { - NotEnoughLicenses - - LicenseKey string `xml:"licenseKey"` -} - -func init() { - t["LicenseExpired"] = reflect.TypeOf((*LicenseExpired)(nil)).Elem() -} - -type LicenseExpiredEvent struct { - Event - - Feature LicenseFeatureInfo `xml:"feature"` -} - -func init() { - t["LicenseExpiredEvent"] = reflect.TypeOf((*LicenseExpiredEvent)(nil)).Elem() -} - -type LicenseExpiredFault LicenseExpired - -func init() { - t["LicenseExpiredFault"] = reflect.TypeOf((*LicenseExpiredFault)(nil)).Elem() -} - -type LicenseFeatureInfo struct { - DynamicData - - Key string `xml:"key"` - FeatureName string `xml:"featureName"` - FeatureDescription string `xml:"featureDescription,omitempty"` - State LicenseFeatureInfoState `xml:"state,omitempty"` - CostUnit string `xml:"costUnit"` - SourceRestriction string `xml:"sourceRestriction,omitempty"` - DependentKey []string `xml:"dependentKey,omitempty"` - Edition *bool `xml:"edition"` - ExpiresOn *time.Time `xml:"expiresOn"` -} - -func init() { - t["LicenseFeatureInfo"] = reflect.TypeOf((*LicenseFeatureInfo)(nil)).Elem() -} - -type LicenseKeyEntityMismatch struct { - NotEnoughLicenses -} - -func init() { - t["LicenseKeyEntityMismatch"] = reflect.TypeOf((*LicenseKeyEntityMismatch)(nil)).Elem() -} - -type LicenseKeyEntityMismatchFault LicenseKeyEntityMismatch - -func init() { - t["LicenseKeyEntityMismatchFault"] = reflect.TypeOf((*LicenseKeyEntityMismatchFault)(nil)).Elem() -} - -type LicenseManagerEvaluationInfo struct { - DynamicData - - Properties []KeyAnyValue `xml:"properties"` -} - -func init() { - t["LicenseManagerEvaluationInfo"] = reflect.TypeOf((*LicenseManagerEvaluationInfo)(nil)).Elem() -} - -type LicenseManagerLicenseInfo struct { - DynamicData - - LicenseKey string `xml:"licenseKey"` - EditionKey string `xml:"editionKey"` - Name string `xml:"name"` - Total int32 `xml:"total"` - Used int32 `xml:"used,omitempty"` - CostUnit string `xml:"costUnit"` - Properties []KeyAnyValue `xml:"properties,omitempty"` - Labels []KeyValue `xml:"labels,omitempty"` -} - -func init() { - t["LicenseManagerLicenseInfo"] = reflect.TypeOf((*LicenseManagerLicenseInfo)(nil)).Elem() -} - -type LicenseNonComplianceEvent struct { - LicenseEvent - - Url string `xml:"url"` -} - -func init() { - t["LicenseNonComplianceEvent"] = reflect.TypeOf((*LicenseNonComplianceEvent)(nil)).Elem() -} - -type LicenseReservationInfo struct { - DynamicData - - Key string `xml:"key"` - State LicenseReservationInfoState `xml:"state"` - Required int32 `xml:"required"` -} - -func init() { - t["LicenseReservationInfo"] = reflect.TypeOf((*LicenseReservationInfo)(nil)).Elem() -} - -type LicenseRestricted struct { - NotEnoughLicenses -} - -func init() { - t["LicenseRestricted"] = reflect.TypeOf((*LicenseRestricted)(nil)).Elem() -} - -type LicenseRestrictedEvent struct { - LicenseEvent -} - -func init() { - t["LicenseRestrictedEvent"] = reflect.TypeOf((*LicenseRestrictedEvent)(nil)).Elem() -} - -type LicenseRestrictedFault LicenseRestricted - -func init() { - t["LicenseRestrictedFault"] = reflect.TypeOf((*LicenseRestrictedFault)(nil)).Elem() -} - -type LicenseServerAvailableEvent struct { - LicenseEvent - - LicenseServer string `xml:"licenseServer"` -} - -func init() { - t["LicenseServerAvailableEvent"] = reflect.TypeOf((*LicenseServerAvailableEvent)(nil)).Elem() -} - -type LicenseServerSource struct { - LicenseSource - - LicenseServer string `xml:"licenseServer"` -} - -func init() { - t["LicenseServerSource"] = reflect.TypeOf((*LicenseServerSource)(nil)).Elem() -} - -type LicenseServerUnavailable struct { - VimFault - - LicenseServer string `xml:"licenseServer"` -} - -func init() { - t["LicenseServerUnavailable"] = reflect.TypeOf((*LicenseServerUnavailable)(nil)).Elem() -} - -type LicenseServerUnavailableEvent struct { - LicenseEvent - - LicenseServer string `xml:"licenseServer"` -} - -func init() { - t["LicenseServerUnavailableEvent"] = reflect.TypeOf((*LicenseServerUnavailableEvent)(nil)).Elem() -} - -type LicenseServerUnavailableFault LicenseServerUnavailable - -func init() { - t["LicenseServerUnavailableFault"] = reflect.TypeOf((*LicenseServerUnavailableFault)(nil)).Elem() -} - -type LicenseSource struct { - DynamicData -} - -func init() { - t["LicenseSource"] = reflect.TypeOf((*LicenseSource)(nil)).Elem() -} - -type LicenseSourceUnavailable struct { - NotEnoughLicenses - - LicenseSource BaseLicenseSource `xml:"licenseSource,typeattr"` -} - -func init() { - t["LicenseSourceUnavailable"] = reflect.TypeOf((*LicenseSourceUnavailable)(nil)).Elem() -} - -type LicenseSourceUnavailableFault LicenseSourceUnavailable - -func init() { - t["LicenseSourceUnavailableFault"] = reflect.TypeOf((*LicenseSourceUnavailableFault)(nil)).Elem() -} - -type LicenseUsageInfo struct { - DynamicData - - Source BaseLicenseSource `xml:"source,typeattr"` - SourceAvailable bool `xml:"sourceAvailable"` - ReservationInfo []LicenseReservationInfo `xml:"reservationInfo,omitempty"` - FeatureInfo []LicenseFeatureInfo `xml:"featureInfo,omitempty"` -} - -func init() { - t["LicenseUsageInfo"] = reflect.TypeOf((*LicenseUsageInfo)(nil)).Elem() -} - -type LimitExceeded struct { - VimFault - - Property string `xml:"property,omitempty"` - Limit int32 `xml:"limit,omitempty"` -} - -func init() { - t["LimitExceeded"] = reflect.TypeOf((*LimitExceeded)(nil)).Elem() -} - -type LimitExceededFault LimitExceeded - -func init() { - t["LimitExceededFault"] = reflect.TypeOf((*LimitExceededFault)(nil)).Elem() -} - -type LinkDiscoveryProtocolConfig struct { - DynamicData - - Protocol string `xml:"protocol"` - Operation string `xml:"operation"` -} - -func init() { - t["LinkDiscoveryProtocolConfig"] = reflect.TypeOf((*LinkDiscoveryProtocolConfig)(nil)).Elem() -} - -type LinkLayerDiscoveryProtocolInfo struct { - DynamicData - - ChassisId string `xml:"chassisId"` - PortId string `xml:"portId"` - TimeToLive int32 `xml:"timeToLive"` - Parameter []KeyAnyValue `xml:"parameter,omitempty"` -} - -func init() { - t["LinkLayerDiscoveryProtocolInfo"] = reflect.TypeOf((*LinkLayerDiscoveryProtocolInfo)(nil)).Elem() -} - -type LinkProfile struct { - ApplyProfile -} - -func init() { - t["LinkProfile"] = reflect.TypeOf((*LinkProfile)(nil)).Elem() -} - -type LinuxVolumeNotClean struct { - CustomizationFault -} - -func init() { - t["LinuxVolumeNotClean"] = reflect.TypeOf((*LinuxVolumeNotClean)(nil)).Elem() -} - -type LinuxVolumeNotCleanFault LinuxVolumeNotClean - -func init() { - t["LinuxVolumeNotCleanFault"] = reflect.TypeOf((*LinuxVolumeNotCleanFault)(nil)).Elem() -} - -type ListCACertificateRevocationLists ListCACertificateRevocationListsRequestType - -func init() { - t["ListCACertificateRevocationLists"] = reflect.TypeOf((*ListCACertificateRevocationLists)(nil)).Elem() -} - -type ListCACertificateRevocationListsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ListCACertificateRevocationListsRequestType"] = reflect.TypeOf((*ListCACertificateRevocationListsRequestType)(nil)).Elem() -} - -type ListCACertificateRevocationListsResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type ListCACertificates ListCACertificatesRequestType - -func init() { - t["ListCACertificates"] = reflect.TypeOf((*ListCACertificates)(nil)).Elem() -} - -type ListCACertificatesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ListCACertificatesRequestType"] = reflect.TypeOf((*ListCACertificatesRequestType)(nil)).Elem() -} - -type ListCACertificatesResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type ListFilesInGuest ListFilesInGuestRequestType - -func init() { - t["ListFilesInGuest"] = reflect.TypeOf((*ListFilesInGuest)(nil)).Elem() -} - -type ListFilesInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - FilePath string `xml:"filePath"` - Index int32 `xml:"index,omitempty"` - MaxResults int32 `xml:"maxResults,omitempty"` - MatchPattern string `xml:"matchPattern,omitempty"` -} - -func init() { - t["ListFilesInGuestRequestType"] = reflect.TypeOf((*ListFilesInGuestRequestType)(nil)).Elem() -} - -type ListFilesInGuestResponse struct { - Returnval GuestListFileInfo `xml:"returnval"` -} - -type ListGuestAliases ListGuestAliasesRequestType - -func init() { - t["ListGuestAliases"] = reflect.TypeOf((*ListGuestAliases)(nil)).Elem() -} - -type ListGuestAliasesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Username string `xml:"username"` -} - -func init() { - t["ListGuestAliasesRequestType"] = reflect.TypeOf((*ListGuestAliasesRequestType)(nil)).Elem() -} - -type ListGuestAliasesResponse struct { - Returnval []GuestAliases `xml:"returnval,omitempty"` -} - -type ListGuestMappedAliases ListGuestMappedAliasesRequestType - -func init() { - t["ListGuestMappedAliases"] = reflect.TypeOf((*ListGuestMappedAliases)(nil)).Elem() -} - -type ListGuestMappedAliasesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` -} - -func init() { - t["ListGuestMappedAliasesRequestType"] = reflect.TypeOf((*ListGuestMappedAliasesRequestType)(nil)).Elem() -} - -type ListGuestMappedAliasesResponse struct { - Returnval []GuestMappedAliases `xml:"returnval,omitempty"` -} - -type ListKeys ListKeysRequestType - -func init() { - t["ListKeys"] = reflect.TypeOf((*ListKeys)(nil)).Elem() -} - -type ListKeysRequestType struct { - This ManagedObjectReference `xml:"_this"` - Limit int32 `xml:"limit,omitempty"` -} - -func init() { - t["ListKeysRequestType"] = reflect.TypeOf((*ListKeysRequestType)(nil)).Elem() -} - -type ListKeysResponse struct { - Returnval []CryptoKeyId `xml:"returnval,omitempty"` -} - -type ListKmipServers ListKmipServersRequestType - -func init() { - t["ListKmipServers"] = reflect.TypeOf((*ListKmipServers)(nil)).Elem() -} - -type ListKmipServersRequestType struct { - This ManagedObjectReference `xml:"_this"` - Limit int32 `xml:"limit,omitempty"` -} - -func init() { - t["ListKmipServersRequestType"] = reflect.TypeOf((*ListKmipServersRequestType)(nil)).Elem() -} - -type ListKmipServersResponse struct { - Returnval []KmipClusterInfo `xml:"returnval,omitempty"` -} - -type ListProcessesInGuest ListProcessesInGuestRequestType - -func init() { - t["ListProcessesInGuest"] = reflect.TypeOf((*ListProcessesInGuest)(nil)).Elem() -} - -type ListProcessesInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Pids []int64 `xml:"pids,omitempty"` -} - -func init() { - t["ListProcessesInGuestRequestType"] = reflect.TypeOf((*ListProcessesInGuestRequestType)(nil)).Elem() -} - -type ListProcessesInGuestResponse struct { - Returnval []GuestProcessInfo `xml:"returnval,omitempty"` -} - -type ListRegistryKeysInGuest ListRegistryKeysInGuestRequestType - -func init() { - t["ListRegistryKeysInGuest"] = reflect.TypeOf((*ListRegistryKeysInGuest)(nil)).Elem() -} - -type ListRegistryKeysInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - KeyName GuestRegKeyNameSpec `xml:"keyName"` - Recursive bool `xml:"recursive"` - MatchPattern string `xml:"matchPattern,omitempty"` -} - -func init() { - t["ListRegistryKeysInGuestRequestType"] = reflect.TypeOf((*ListRegistryKeysInGuestRequestType)(nil)).Elem() -} - -type ListRegistryKeysInGuestResponse struct { - Returnval []GuestRegKeyRecordSpec `xml:"returnval,omitempty"` -} - -type ListRegistryValuesInGuest ListRegistryValuesInGuestRequestType - -func init() { - t["ListRegistryValuesInGuest"] = reflect.TypeOf((*ListRegistryValuesInGuest)(nil)).Elem() -} - -type ListRegistryValuesInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - KeyName GuestRegKeyNameSpec `xml:"keyName"` - ExpandStrings bool `xml:"expandStrings"` - MatchPattern string `xml:"matchPattern,omitempty"` -} - -func init() { - t["ListRegistryValuesInGuestRequestType"] = reflect.TypeOf((*ListRegistryValuesInGuestRequestType)(nil)).Elem() -} - -type ListRegistryValuesInGuestResponse struct { - Returnval []GuestRegValueSpec `xml:"returnval,omitempty"` -} - -type ListSmartCardTrustAnchors ListSmartCardTrustAnchorsRequestType - -func init() { - t["ListSmartCardTrustAnchors"] = reflect.TypeOf((*ListSmartCardTrustAnchors)(nil)).Elem() -} - -type ListSmartCardTrustAnchorsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ListSmartCardTrustAnchorsRequestType"] = reflect.TypeOf((*ListSmartCardTrustAnchorsRequestType)(nil)).Elem() -} - -type ListSmartCardTrustAnchorsResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type ListTagsAttachedToVStorageObject ListTagsAttachedToVStorageObjectRequestType - -func init() { - t["ListTagsAttachedToVStorageObject"] = reflect.TypeOf((*ListTagsAttachedToVStorageObject)(nil)).Elem() -} - -type ListTagsAttachedToVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` -} - -func init() { - t["ListTagsAttachedToVStorageObjectRequestType"] = reflect.TypeOf((*ListTagsAttachedToVStorageObjectRequestType)(nil)).Elem() -} - -type ListTagsAttachedToVStorageObjectResponse struct { - Returnval []VslmTagEntry `xml:"returnval,omitempty"` -} - -type ListVStorageObject ListVStorageObjectRequestType - -func init() { - t["ListVStorageObject"] = reflect.TypeOf((*ListVStorageObject)(nil)).Elem() -} - -type ListVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["ListVStorageObjectRequestType"] = reflect.TypeOf((*ListVStorageObjectRequestType)(nil)).Elem() -} - -type ListVStorageObjectResponse struct { - Returnval []ID `xml:"returnval,omitempty"` -} - -type ListVStorageObjectsAttachedToTag ListVStorageObjectsAttachedToTagRequestType - -func init() { - t["ListVStorageObjectsAttachedToTag"] = reflect.TypeOf((*ListVStorageObjectsAttachedToTag)(nil)).Elem() -} - -type ListVStorageObjectsAttachedToTagRequestType struct { - This ManagedObjectReference `xml:"_this"` - Category string `xml:"category"` - Tag string `xml:"tag"` -} - -func init() { - t["ListVStorageObjectsAttachedToTagRequestType"] = reflect.TypeOf((*ListVStorageObjectsAttachedToTagRequestType)(nil)).Elem() -} - -type ListVStorageObjectsAttachedToTagResponse struct { - Returnval []ID `xml:"returnval,omitempty"` -} - -type LocalDatastoreCreatedEvent struct { - HostEvent - - Datastore DatastoreEventArgument `xml:"datastore"` - DatastoreUrl string `xml:"datastoreUrl,omitempty"` -} - -func init() { - t["LocalDatastoreCreatedEvent"] = reflect.TypeOf((*LocalDatastoreCreatedEvent)(nil)).Elem() -} - -type LocalDatastoreInfo struct { - DatastoreInfo - - Path string `xml:"path,omitempty"` -} - -func init() { - t["LocalDatastoreInfo"] = reflect.TypeOf((*LocalDatastoreInfo)(nil)).Elem() -} - -type LocalLicenseSource struct { - LicenseSource - - LicenseKeys string `xml:"licenseKeys"` -} - -func init() { - t["LocalLicenseSource"] = reflect.TypeOf((*LocalLicenseSource)(nil)).Elem() -} - -type LocalTSMEnabledEvent struct { - HostEvent -} - -func init() { - t["LocalTSMEnabledEvent"] = reflect.TypeOf((*LocalTSMEnabledEvent)(nil)).Elem() -} - -type LocalizableMessage struct { - DynamicData - - Key string `xml:"key"` - Arg []KeyAnyValue `xml:"arg,omitempty"` - Message string `xml:"message,omitempty"` -} - -func init() { - t["LocalizableMessage"] = reflect.TypeOf((*LocalizableMessage)(nil)).Elem() -} - -type LocalizationManagerMessageCatalog struct { - DynamicData - - ModuleName string `xml:"moduleName"` - CatalogName string `xml:"catalogName"` - Locale string `xml:"locale"` - CatalogUri string `xml:"catalogUri"` - LastModified *time.Time `xml:"lastModified"` - Md5sum string `xml:"md5sum,omitempty"` - Version string `xml:"version,omitempty"` -} - -func init() { - t["LocalizationManagerMessageCatalog"] = reflect.TypeOf((*LocalizationManagerMessageCatalog)(nil)).Elem() -} - -type LocalizedMethodFault struct { - DynamicData - - Fault BaseMethodFault `xml:"fault,typeattr"` - LocalizedMessage string `xml:"localizedMessage,omitempty"` -} - -func init() { - t["LocalizedMethodFault"] = reflect.TypeOf((*LocalizedMethodFault)(nil)).Elem() -} - -type LockerMisconfiguredEvent struct { - Event - - Datastore DatastoreEventArgument `xml:"datastore"` -} - -func init() { - t["LockerMisconfiguredEvent"] = reflect.TypeOf((*LockerMisconfiguredEvent)(nil)).Elem() -} - -type LockerReconfiguredEvent struct { - Event - - OldDatastore *DatastoreEventArgument `xml:"oldDatastore,omitempty"` - NewDatastore *DatastoreEventArgument `xml:"newDatastore,omitempty"` -} - -func init() { - t["LockerReconfiguredEvent"] = reflect.TypeOf((*LockerReconfiguredEvent)(nil)).Elem() -} - -type LogBundlingFailed struct { - VimFault -} - -func init() { - t["LogBundlingFailed"] = reflect.TypeOf((*LogBundlingFailed)(nil)).Elem() -} - -type LogBundlingFailedFault LogBundlingFailed - -func init() { - t["LogBundlingFailedFault"] = reflect.TypeOf((*LogBundlingFailedFault)(nil)).Elem() -} - -type LogUserEvent LogUserEventRequestType - -func init() { - t["LogUserEvent"] = reflect.TypeOf((*LogUserEvent)(nil)).Elem() -} - -type LogUserEventRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Msg string `xml:"msg"` -} - -func init() { - t["LogUserEventRequestType"] = reflect.TypeOf((*LogUserEventRequestType)(nil)).Elem() -} - -type LogUserEventResponse struct { -} - -type Login LoginRequestType - -func init() { - t["Login"] = reflect.TypeOf((*Login)(nil)).Elem() -} - -type LoginBySSPI LoginBySSPIRequestType - -func init() { - t["LoginBySSPI"] = reflect.TypeOf((*LoginBySSPI)(nil)).Elem() -} - -type LoginBySSPIRequestType struct { - This ManagedObjectReference `xml:"_this"` - Base64Token string `xml:"base64Token"` - Locale string `xml:"locale,omitempty"` -} - -func init() { - t["LoginBySSPIRequestType"] = reflect.TypeOf((*LoginBySSPIRequestType)(nil)).Elem() -} - -type LoginBySSPIResponse struct { - Returnval UserSession `xml:"returnval"` -} - -type LoginByToken LoginByTokenRequestType - -func init() { - t["LoginByToken"] = reflect.TypeOf((*LoginByToken)(nil)).Elem() -} - -type LoginByTokenRequestType struct { - This ManagedObjectReference `xml:"_this"` - Locale string `xml:"locale,omitempty"` -} - -func init() { - t["LoginByTokenRequestType"] = reflect.TypeOf((*LoginByTokenRequestType)(nil)).Elem() -} - -type LoginByTokenResponse struct { - Returnval UserSession `xml:"returnval"` -} - -type LoginExtensionByCertificate LoginExtensionByCertificateRequestType - -func init() { - t["LoginExtensionByCertificate"] = reflect.TypeOf((*LoginExtensionByCertificate)(nil)).Elem() -} - -type LoginExtensionByCertificateRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKey string `xml:"extensionKey"` - Locale string `xml:"locale,omitempty"` -} - -func init() { - t["LoginExtensionByCertificateRequestType"] = reflect.TypeOf((*LoginExtensionByCertificateRequestType)(nil)).Elem() -} - -type LoginExtensionByCertificateResponse struct { - Returnval UserSession `xml:"returnval"` -} - -type LoginExtensionBySubjectName LoginExtensionBySubjectNameRequestType - -func init() { - t["LoginExtensionBySubjectName"] = reflect.TypeOf((*LoginExtensionBySubjectName)(nil)).Elem() -} - -type LoginExtensionBySubjectNameRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKey string `xml:"extensionKey"` - Locale string `xml:"locale,omitempty"` -} - -func init() { - t["LoginExtensionBySubjectNameRequestType"] = reflect.TypeOf((*LoginExtensionBySubjectNameRequestType)(nil)).Elem() -} - -type LoginExtensionBySubjectNameResponse struct { - Returnval UserSession `xml:"returnval"` -} - -type LoginRequestType struct { - This ManagedObjectReference `xml:"_this"` - UserName string `xml:"userName"` - Password string `xml:"password"` - Locale string `xml:"locale,omitempty"` -} - -func init() { - t["LoginRequestType"] = reflect.TypeOf((*LoginRequestType)(nil)).Elem() -} - -type LoginResponse struct { - Returnval UserSession `xml:"returnval"` -} - -type Logout LogoutRequestType - -func init() { - t["Logout"] = reflect.TypeOf((*Logout)(nil)).Elem() -} - -type LogoutRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["LogoutRequestType"] = reflect.TypeOf((*LogoutRequestType)(nil)).Elem() -} - -type LogoutResponse struct { -} - -type LongOption struct { - OptionType - - Min int64 `xml:"min"` - Max int64 `xml:"max"` - DefaultValue int64 `xml:"defaultValue"` -} - -func init() { - t["LongOption"] = reflect.TypeOf((*LongOption)(nil)).Elem() -} - -type LongPolicy struct { - InheritablePolicy - - Value int64 `xml:"value,omitempty"` -} - -func init() { - t["LongPolicy"] = reflect.TypeOf((*LongPolicy)(nil)).Elem() -} - -type LookupDvPortGroup LookupDvPortGroupRequestType - -func init() { - t["LookupDvPortGroup"] = reflect.TypeOf((*LookupDvPortGroup)(nil)).Elem() -} - -type LookupDvPortGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - PortgroupKey string `xml:"portgroupKey"` -} - -func init() { - t["LookupDvPortGroupRequestType"] = reflect.TypeOf((*LookupDvPortGroupRequestType)(nil)).Elem() -} - -type LookupDvPortGroupResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type LookupVmOverheadMemory LookupVmOverheadMemoryRequestType - -func init() { - t["LookupVmOverheadMemory"] = reflect.TypeOf((*LookupVmOverheadMemory)(nil)).Elem() -} - -type LookupVmOverheadMemoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["LookupVmOverheadMemoryRequestType"] = reflect.TypeOf((*LookupVmOverheadMemoryRequestType)(nil)).Elem() -} - -type LookupVmOverheadMemoryResponse struct { - Returnval int64 `xml:"returnval"` -} - -type MacAddress struct { - NegatableExpression -} - -func init() { - t["MacAddress"] = reflect.TypeOf((*MacAddress)(nil)).Elem() -} - -type MacRange struct { - MacAddress - - Address string `xml:"address"` - Mask string `xml:"mask"` -} - -func init() { - t["MacRange"] = reflect.TypeOf((*MacRange)(nil)).Elem() -} - -type MaintenanceModeFileMove struct { - MigrationFault -} - -func init() { - t["MaintenanceModeFileMove"] = reflect.TypeOf((*MaintenanceModeFileMove)(nil)).Elem() -} - -type MaintenanceModeFileMoveFault MaintenanceModeFileMove - -func init() { - t["MaintenanceModeFileMoveFault"] = reflect.TypeOf((*MaintenanceModeFileMoveFault)(nil)).Elem() -} - -type MakeDirectory MakeDirectoryRequestType - -func init() { - t["MakeDirectory"] = reflect.TypeOf((*MakeDirectory)(nil)).Elem() -} - -type MakeDirectoryInGuest MakeDirectoryInGuestRequestType - -func init() { - t["MakeDirectoryInGuest"] = reflect.TypeOf((*MakeDirectoryInGuest)(nil)).Elem() -} - -type MakeDirectoryInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - DirectoryPath string `xml:"directoryPath"` - CreateParentDirectories bool `xml:"createParentDirectories"` -} - -func init() { - t["MakeDirectoryInGuestRequestType"] = reflect.TypeOf((*MakeDirectoryInGuestRequestType)(nil)).Elem() -} - -type MakeDirectoryInGuestResponse struct { -} - -type MakeDirectoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - CreateParentDirectories *bool `xml:"createParentDirectories"` -} - -func init() { - t["MakeDirectoryRequestType"] = reflect.TypeOf((*MakeDirectoryRequestType)(nil)).Elem() -} - -type MakeDirectoryResponse struct { -} - -type MakePrimaryVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` -} - -func init() { - t["MakePrimaryVMRequestType"] = reflect.TypeOf((*MakePrimaryVMRequestType)(nil)).Elem() -} - -type MakePrimaryVM_Task MakePrimaryVMRequestType - -func init() { - t["MakePrimaryVM_Task"] = reflect.TypeOf((*MakePrimaryVM_Task)(nil)).Elem() -} - -type MakePrimaryVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ManagedByInfo struct { - DynamicData - - ExtensionKey string `xml:"extensionKey"` - Type string `xml:"type"` -} - -func init() { - t["ManagedByInfo"] = reflect.TypeOf((*ManagedByInfo)(nil)).Elem() -} - -type ManagedEntityEventArgument struct { - EntityEventArgument - - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["ManagedEntityEventArgument"] = reflect.TypeOf((*ManagedEntityEventArgument)(nil)).Elem() -} - -type ManagedObjectNotFound struct { - RuntimeFault - - Obj ManagedObjectReference `xml:"obj"` -} - -func init() { - t["ManagedObjectNotFound"] = reflect.TypeOf((*ManagedObjectNotFound)(nil)).Elem() -} - -type ManagedObjectNotFoundFault ManagedObjectNotFound - -func init() { - t["ManagedObjectNotFoundFault"] = reflect.TypeOf((*ManagedObjectNotFoundFault)(nil)).Elem() -} - -type ManagedObjectReference struct { - Type string `xml:"type,attr"` - Value string `xml:",chardata"` -} - -func init() { - t["ManagedObjectReference"] = reflect.TypeOf((*ManagedObjectReference)(nil)).Elem() -} - -type MarkAsLocalRequestType struct { - This ManagedObjectReference `xml:"_this"` - ScsiDiskUuid string `xml:"scsiDiskUuid"` -} - -func init() { - t["MarkAsLocalRequestType"] = reflect.TypeOf((*MarkAsLocalRequestType)(nil)).Elem() -} - -type MarkAsLocal_Task MarkAsLocalRequestType - -func init() { - t["MarkAsLocal_Task"] = reflect.TypeOf((*MarkAsLocal_Task)(nil)).Elem() -} - -type MarkAsLocal_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MarkAsNonLocalRequestType struct { - This ManagedObjectReference `xml:"_this"` - ScsiDiskUuid string `xml:"scsiDiskUuid"` -} - -func init() { - t["MarkAsNonLocalRequestType"] = reflect.TypeOf((*MarkAsNonLocalRequestType)(nil)).Elem() -} - -type MarkAsNonLocal_Task MarkAsNonLocalRequestType - -func init() { - t["MarkAsNonLocal_Task"] = reflect.TypeOf((*MarkAsNonLocal_Task)(nil)).Elem() -} - -type MarkAsNonLocal_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MarkAsNonSsdRequestType struct { - This ManagedObjectReference `xml:"_this"` - ScsiDiskUuid string `xml:"scsiDiskUuid"` -} - -func init() { - t["MarkAsNonSsdRequestType"] = reflect.TypeOf((*MarkAsNonSsdRequestType)(nil)).Elem() -} - -type MarkAsNonSsd_Task MarkAsNonSsdRequestType - -func init() { - t["MarkAsNonSsd_Task"] = reflect.TypeOf((*MarkAsNonSsd_Task)(nil)).Elem() -} - -type MarkAsNonSsd_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MarkAsSsdRequestType struct { - This ManagedObjectReference `xml:"_this"` - ScsiDiskUuid string `xml:"scsiDiskUuid"` -} - -func init() { - t["MarkAsSsdRequestType"] = reflect.TypeOf((*MarkAsSsdRequestType)(nil)).Elem() -} - -type MarkAsSsd_Task MarkAsSsdRequestType - -func init() { - t["MarkAsSsd_Task"] = reflect.TypeOf((*MarkAsSsd_Task)(nil)).Elem() -} - -type MarkAsSsd_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MarkAsTemplate MarkAsTemplateRequestType - -func init() { - t["MarkAsTemplate"] = reflect.TypeOf((*MarkAsTemplate)(nil)).Elem() -} - -type MarkAsTemplateRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["MarkAsTemplateRequestType"] = reflect.TypeOf((*MarkAsTemplateRequestType)(nil)).Elem() -} - -type MarkAsTemplateResponse struct { -} - -type MarkAsVirtualMachine MarkAsVirtualMachineRequestType - -func init() { - t["MarkAsVirtualMachine"] = reflect.TypeOf((*MarkAsVirtualMachine)(nil)).Elem() -} - -type MarkAsVirtualMachineRequestType struct { - This ManagedObjectReference `xml:"_this"` - Pool ManagedObjectReference `xml:"pool"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["MarkAsVirtualMachineRequestType"] = reflect.TypeOf((*MarkAsVirtualMachineRequestType)(nil)).Elem() -} - -type MarkAsVirtualMachineResponse struct { -} - -type MarkDefault MarkDefaultRequestType - -func init() { - t["MarkDefault"] = reflect.TypeOf((*MarkDefault)(nil)).Elem() -} - -type MarkDefaultRequestType struct { - This ManagedObjectReference `xml:"_this"` - ClusterId KeyProviderId `xml:"clusterId"` -} - -func init() { - t["MarkDefaultRequestType"] = reflect.TypeOf((*MarkDefaultRequestType)(nil)).Elem() -} - -type MarkDefaultResponse struct { -} - -type MarkForRemoval MarkForRemovalRequestType - -func init() { - t["MarkForRemoval"] = reflect.TypeOf((*MarkForRemoval)(nil)).Elem() -} - -type MarkForRemovalRequestType struct { - This ManagedObjectReference `xml:"_this"` - HbaName string `xml:"hbaName"` - Remove bool `xml:"remove"` -} - -func init() { - t["MarkForRemovalRequestType"] = reflect.TypeOf((*MarkForRemovalRequestType)(nil)).Elem() -} - -type MarkForRemovalResponse struct { -} - -type MemoryFileFormatNotSupportedByDatastore struct { - UnsupportedDatastore - - DatastoreName string `xml:"datastoreName"` - Type string `xml:"type"` -} - -func init() { - t["MemoryFileFormatNotSupportedByDatastore"] = reflect.TypeOf((*MemoryFileFormatNotSupportedByDatastore)(nil)).Elem() -} - -type MemoryFileFormatNotSupportedByDatastoreFault MemoryFileFormatNotSupportedByDatastore - -func init() { - t["MemoryFileFormatNotSupportedByDatastoreFault"] = reflect.TypeOf((*MemoryFileFormatNotSupportedByDatastoreFault)(nil)).Elem() -} - -type MemoryHotPlugNotSupported struct { - VmConfigFault -} - -func init() { - t["MemoryHotPlugNotSupported"] = reflect.TypeOf((*MemoryHotPlugNotSupported)(nil)).Elem() -} - -type MemoryHotPlugNotSupportedFault MemoryHotPlugNotSupported - -func init() { - t["MemoryHotPlugNotSupportedFault"] = reflect.TypeOf((*MemoryHotPlugNotSupportedFault)(nil)).Elem() -} - -type MemorySizeNotRecommended struct { - VirtualHardwareCompatibilityIssue - - MemorySizeMB int32 `xml:"memorySizeMB"` - MinMemorySizeMB int32 `xml:"minMemorySizeMB"` - MaxMemorySizeMB int32 `xml:"maxMemorySizeMB"` -} - -func init() { - t["MemorySizeNotRecommended"] = reflect.TypeOf((*MemorySizeNotRecommended)(nil)).Elem() -} - -type MemorySizeNotRecommendedFault MemorySizeNotRecommended - -func init() { - t["MemorySizeNotRecommendedFault"] = reflect.TypeOf((*MemorySizeNotRecommendedFault)(nil)).Elem() -} - -type MemorySizeNotSupported struct { - VirtualHardwareCompatibilityIssue - - MemorySizeMB int32 `xml:"memorySizeMB"` - MinMemorySizeMB int32 `xml:"minMemorySizeMB"` - MaxMemorySizeMB int32 `xml:"maxMemorySizeMB"` -} - -func init() { - t["MemorySizeNotSupported"] = reflect.TypeOf((*MemorySizeNotSupported)(nil)).Elem() -} - -type MemorySizeNotSupportedByDatastore struct { - VirtualHardwareCompatibilityIssue - - Datastore ManagedObjectReference `xml:"datastore"` - MemorySizeMB int32 `xml:"memorySizeMB"` - MaxMemorySizeMB int32 `xml:"maxMemorySizeMB"` -} - -func init() { - t["MemorySizeNotSupportedByDatastore"] = reflect.TypeOf((*MemorySizeNotSupportedByDatastore)(nil)).Elem() -} - -type MemorySizeNotSupportedByDatastoreFault MemorySizeNotSupportedByDatastore - -func init() { - t["MemorySizeNotSupportedByDatastoreFault"] = reflect.TypeOf((*MemorySizeNotSupportedByDatastoreFault)(nil)).Elem() -} - -type MemorySizeNotSupportedFault MemorySizeNotSupported - -func init() { - t["MemorySizeNotSupportedFault"] = reflect.TypeOf((*MemorySizeNotSupportedFault)(nil)).Elem() -} - -type MemorySnapshotOnIndependentDisk struct { - SnapshotFault -} - -func init() { - t["MemorySnapshotOnIndependentDisk"] = reflect.TypeOf((*MemorySnapshotOnIndependentDisk)(nil)).Elem() -} - -type MemorySnapshotOnIndependentDiskFault MemorySnapshotOnIndependentDisk - -func init() { - t["MemorySnapshotOnIndependentDiskFault"] = reflect.TypeOf((*MemorySnapshotOnIndependentDiskFault)(nil)).Elem() -} - -type MergeDvsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dvs ManagedObjectReference `xml:"dvs"` -} - -func init() { - t["MergeDvsRequestType"] = reflect.TypeOf((*MergeDvsRequestType)(nil)).Elem() -} - -type MergeDvs_Task MergeDvsRequestType - -func init() { - t["MergeDvs_Task"] = reflect.TypeOf((*MergeDvs_Task)(nil)).Elem() -} - -type MergeDvs_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MergePermissions MergePermissionsRequestType - -func init() { - t["MergePermissions"] = reflect.TypeOf((*MergePermissions)(nil)).Elem() -} - -type MergePermissionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - SrcRoleId int32 `xml:"srcRoleId"` - DstRoleId int32 `xml:"dstRoleId"` -} - -func init() { - t["MergePermissionsRequestType"] = reflect.TypeOf((*MergePermissionsRequestType)(nil)).Elem() -} - -type MergePermissionsResponse struct { -} - -type MethodAction struct { - Action - - Name string `xml:"name"` - Argument []MethodActionArgument `xml:"argument,omitempty"` -} - -func init() { - t["MethodAction"] = reflect.TypeOf((*MethodAction)(nil)).Elem() -} - -type MethodActionArgument struct { - DynamicData - - Value AnyType `xml:"value,typeattr"` -} - -func init() { - t["MethodActionArgument"] = reflect.TypeOf((*MethodActionArgument)(nil)).Elem() -} - -type MethodAlreadyDisabledFault struct { - RuntimeFault - - SourceId string `xml:"sourceId"` -} - -func init() { - t["MethodAlreadyDisabledFault"] = reflect.TypeOf((*MethodAlreadyDisabledFault)(nil)).Elem() -} - -type MethodAlreadyDisabledFaultFault MethodAlreadyDisabledFault - -func init() { - t["MethodAlreadyDisabledFaultFault"] = reflect.TypeOf((*MethodAlreadyDisabledFaultFault)(nil)).Elem() -} - -type MethodDescription struct { - Description - - Key string `xml:"key"` -} - -func init() { - t["MethodDescription"] = reflect.TypeOf((*MethodDescription)(nil)).Elem() -} - -type MethodDisabled struct { - RuntimeFault - - Source string `xml:"source,omitempty"` -} - -func init() { - t["MethodDisabled"] = reflect.TypeOf((*MethodDisabled)(nil)).Elem() -} - -type MethodDisabledFault MethodDisabled - -func init() { - t["MethodDisabledFault"] = reflect.TypeOf((*MethodDisabledFault)(nil)).Elem() -} - -type MethodFault struct { - FaultCause *LocalizedMethodFault `xml:"faultCause,omitempty"` - FaultMessage []LocalizableMessage `xml:"faultMessage,omitempty"` -} - -func init() { - t["MethodFault"] = reflect.TypeOf((*MethodFault)(nil)).Elem() -} - -type MethodFaultFault BaseMethodFault - -func init() { - t["MethodFaultFault"] = reflect.TypeOf((*MethodFaultFault)(nil)).Elem() -} - -type MethodNotFound struct { - InvalidRequest - - Receiver ManagedObjectReference `xml:"receiver"` - Method string `xml:"method"` -} - -func init() { - t["MethodNotFound"] = reflect.TypeOf((*MethodNotFound)(nil)).Elem() -} - -type MethodNotFoundFault MethodNotFound - -func init() { - t["MethodNotFoundFault"] = reflect.TypeOf((*MethodNotFoundFault)(nil)).Elem() -} - -type MetricAlarmExpression struct { - AlarmExpression - - Operator MetricAlarmOperator `xml:"operator"` - Type string `xml:"type"` - Metric PerfMetricId `xml:"metric"` - Yellow int32 `xml:"yellow,omitempty"` - YellowInterval int32 `xml:"yellowInterval,omitempty"` - Red int32 `xml:"red,omitempty"` - RedInterval int32 `xml:"redInterval,omitempty"` -} - -func init() { - t["MetricAlarmExpression"] = reflect.TypeOf((*MetricAlarmExpression)(nil)).Elem() -} - -type MigrateVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Priority VirtualMachineMovePriority `xml:"priority"` - State VirtualMachinePowerState `xml:"state,omitempty"` -} - -func init() { - t["MigrateVMRequestType"] = reflect.TypeOf((*MigrateVMRequestType)(nil)).Elem() -} - -type MigrateVM_Task MigrateVMRequestType - -func init() { - t["MigrateVM_Task"] = reflect.TypeOf((*MigrateVM_Task)(nil)).Elem() -} - -type MigrateVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MigrationDisabled struct { - MigrationFault -} - -func init() { - t["MigrationDisabled"] = reflect.TypeOf((*MigrationDisabled)(nil)).Elem() -} - -type MigrationDisabledFault MigrationDisabled - -func init() { - t["MigrationDisabledFault"] = reflect.TypeOf((*MigrationDisabledFault)(nil)).Elem() -} - -type MigrationErrorEvent struct { - MigrationEvent -} - -func init() { - t["MigrationErrorEvent"] = reflect.TypeOf((*MigrationErrorEvent)(nil)).Elem() -} - -type MigrationEvent struct { - VmEvent - - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["MigrationEvent"] = reflect.TypeOf((*MigrationEvent)(nil)).Elem() -} - -type MigrationFault struct { - VimFault -} - -func init() { - t["MigrationFault"] = reflect.TypeOf((*MigrationFault)(nil)).Elem() -} - -type MigrationFaultFault BaseMigrationFault - -func init() { - t["MigrationFaultFault"] = reflect.TypeOf((*MigrationFaultFault)(nil)).Elem() -} - -type MigrationFeatureNotSupported struct { - MigrationFault - - AtSourceHost bool `xml:"atSourceHost"` - FailedHostName string `xml:"failedHostName"` - FailedHost ManagedObjectReference `xml:"failedHost"` -} - -func init() { - t["MigrationFeatureNotSupported"] = reflect.TypeOf((*MigrationFeatureNotSupported)(nil)).Elem() -} - -type MigrationFeatureNotSupportedFault BaseMigrationFeatureNotSupported - -func init() { - t["MigrationFeatureNotSupportedFault"] = reflect.TypeOf((*MigrationFeatureNotSupportedFault)(nil)).Elem() -} - -type MigrationHostErrorEvent struct { - MigrationEvent - - DstHost HostEventArgument `xml:"dstHost"` -} - -func init() { - t["MigrationHostErrorEvent"] = reflect.TypeOf((*MigrationHostErrorEvent)(nil)).Elem() -} - -type MigrationHostWarningEvent struct { - MigrationEvent - - DstHost HostEventArgument `xml:"dstHost"` -} - -func init() { - t["MigrationHostWarningEvent"] = reflect.TypeOf((*MigrationHostWarningEvent)(nil)).Elem() -} - -type MigrationNotReady struct { - MigrationFault - - Reason string `xml:"reason"` -} - -func init() { - t["MigrationNotReady"] = reflect.TypeOf((*MigrationNotReady)(nil)).Elem() -} - -type MigrationNotReadyFault MigrationNotReady - -func init() { - t["MigrationNotReadyFault"] = reflect.TypeOf((*MigrationNotReadyFault)(nil)).Elem() -} - -type MigrationResourceErrorEvent struct { - MigrationEvent - - DstPool ResourcePoolEventArgument `xml:"dstPool"` - DstHost HostEventArgument `xml:"dstHost"` -} - -func init() { - t["MigrationResourceErrorEvent"] = reflect.TypeOf((*MigrationResourceErrorEvent)(nil)).Elem() -} - -type MigrationResourceWarningEvent struct { - MigrationEvent - - DstPool ResourcePoolEventArgument `xml:"dstPool"` - DstHost HostEventArgument `xml:"dstHost"` -} - -func init() { - t["MigrationResourceWarningEvent"] = reflect.TypeOf((*MigrationResourceWarningEvent)(nil)).Elem() -} - -type MigrationWarningEvent struct { - MigrationEvent -} - -func init() { - t["MigrationWarningEvent"] = reflect.TypeOf((*MigrationWarningEvent)(nil)).Elem() -} - -type MismatchedBundle struct { - VimFault - - BundleUuid string `xml:"bundleUuid"` - HostUuid string `xml:"hostUuid"` - BundleBuildNumber int32 `xml:"bundleBuildNumber"` - HostBuildNumber int32 `xml:"hostBuildNumber"` -} - -func init() { - t["MismatchedBundle"] = reflect.TypeOf((*MismatchedBundle)(nil)).Elem() -} - -type MismatchedBundleFault MismatchedBundle - -func init() { - t["MismatchedBundleFault"] = reflect.TypeOf((*MismatchedBundleFault)(nil)).Elem() -} - -type MismatchedNetworkPolicies struct { - MigrationFault - - Device string `xml:"device"` - Backing string `xml:"backing"` - Connected bool `xml:"connected"` -} - -func init() { - t["MismatchedNetworkPolicies"] = reflect.TypeOf((*MismatchedNetworkPolicies)(nil)).Elem() -} - -type MismatchedNetworkPoliciesFault MismatchedNetworkPolicies - -func init() { - t["MismatchedNetworkPoliciesFault"] = reflect.TypeOf((*MismatchedNetworkPoliciesFault)(nil)).Elem() -} - -type MismatchedVMotionNetworkNames struct { - MigrationFault - - SourceNetwork string `xml:"sourceNetwork"` - DestNetwork string `xml:"destNetwork"` -} - -func init() { - t["MismatchedVMotionNetworkNames"] = reflect.TypeOf((*MismatchedVMotionNetworkNames)(nil)).Elem() -} - -type MismatchedVMotionNetworkNamesFault MismatchedVMotionNetworkNames - -func init() { - t["MismatchedVMotionNetworkNamesFault"] = reflect.TypeOf((*MismatchedVMotionNetworkNamesFault)(nil)).Elem() -} - -type MissingBmcSupport struct { - VimFault -} - -func init() { - t["MissingBmcSupport"] = reflect.TypeOf((*MissingBmcSupport)(nil)).Elem() -} - -type MissingBmcSupportFault MissingBmcSupport - -func init() { - t["MissingBmcSupportFault"] = reflect.TypeOf((*MissingBmcSupportFault)(nil)).Elem() -} - -type MissingController struct { - InvalidDeviceSpec -} - -func init() { - t["MissingController"] = reflect.TypeOf((*MissingController)(nil)).Elem() -} - -type MissingControllerFault MissingController - -func init() { - t["MissingControllerFault"] = reflect.TypeOf((*MissingControllerFault)(nil)).Elem() -} - -type MissingIpPool struct { - VAppPropertyFault -} - -func init() { - t["MissingIpPool"] = reflect.TypeOf((*MissingIpPool)(nil)).Elem() -} - -type MissingIpPoolFault MissingIpPool - -func init() { - t["MissingIpPoolFault"] = reflect.TypeOf((*MissingIpPoolFault)(nil)).Elem() -} - -type MissingLinuxCustResources struct { - CustomizationFault -} - -func init() { - t["MissingLinuxCustResources"] = reflect.TypeOf((*MissingLinuxCustResources)(nil)).Elem() -} - -type MissingLinuxCustResourcesFault MissingLinuxCustResources - -func init() { - t["MissingLinuxCustResourcesFault"] = reflect.TypeOf((*MissingLinuxCustResourcesFault)(nil)).Elem() -} - -type MissingNetworkIpConfig struct { - VAppPropertyFault -} - -func init() { - t["MissingNetworkIpConfig"] = reflect.TypeOf((*MissingNetworkIpConfig)(nil)).Elem() -} - -type MissingNetworkIpConfigFault MissingNetworkIpConfig - -func init() { - t["MissingNetworkIpConfigFault"] = reflect.TypeOf((*MissingNetworkIpConfigFault)(nil)).Elem() -} - -type MissingObject struct { - DynamicData - - Obj ManagedObjectReference `xml:"obj"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["MissingObject"] = reflect.TypeOf((*MissingObject)(nil)).Elem() -} - -type MissingPowerOffConfiguration struct { - VAppConfigFault -} - -func init() { - t["MissingPowerOffConfiguration"] = reflect.TypeOf((*MissingPowerOffConfiguration)(nil)).Elem() -} - -type MissingPowerOffConfigurationFault MissingPowerOffConfiguration - -func init() { - t["MissingPowerOffConfigurationFault"] = reflect.TypeOf((*MissingPowerOffConfigurationFault)(nil)).Elem() -} - -type MissingPowerOnConfiguration struct { - VAppConfigFault -} - -func init() { - t["MissingPowerOnConfiguration"] = reflect.TypeOf((*MissingPowerOnConfiguration)(nil)).Elem() -} - -type MissingPowerOnConfigurationFault MissingPowerOnConfiguration - -func init() { - t["MissingPowerOnConfigurationFault"] = reflect.TypeOf((*MissingPowerOnConfigurationFault)(nil)).Elem() -} - -type MissingProperty struct { - DynamicData - - Path string `xml:"path"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["MissingProperty"] = reflect.TypeOf((*MissingProperty)(nil)).Elem() -} - -type MissingWindowsCustResources struct { - CustomizationFault -} - -func init() { - t["MissingWindowsCustResources"] = reflect.TypeOf((*MissingWindowsCustResources)(nil)).Elem() -} - -type MissingWindowsCustResourcesFault MissingWindowsCustResources - -func init() { - t["MissingWindowsCustResourcesFault"] = reflect.TypeOf((*MissingWindowsCustResourcesFault)(nil)).Elem() -} - -type MksConnectionLimitReached struct { - InvalidState - - ConnectionLimit int32 `xml:"connectionLimit"` -} - -func init() { - t["MksConnectionLimitReached"] = reflect.TypeOf((*MksConnectionLimitReached)(nil)).Elem() -} - -type MksConnectionLimitReachedFault MksConnectionLimitReached - -func init() { - t["MksConnectionLimitReachedFault"] = reflect.TypeOf((*MksConnectionLimitReachedFault)(nil)).Elem() -} - -type ModeInfo struct { - DynamicData - - Browse string `xml:"browse,omitempty"` - Read string `xml:"read"` - Modify string `xml:"modify"` - Use string `xml:"use"` - Admin string `xml:"admin,omitempty"` - Full string `xml:"full"` -} - -func init() { - t["ModeInfo"] = reflect.TypeOf((*ModeInfo)(nil)).Elem() -} - -type ModifyListView ModifyListViewRequestType - -func init() { - t["ModifyListView"] = reflect.TypeOf((*ModifyListView)(nil)).Elem() -} - -type ModifyListViewRequestType struct { - This ManagedObjectReference `xml:"_this"` - Add []ManagedObjectReference `xml:"add,omitempty"` - Remove []ManagedObjectReference `xml:"remove,omitempty"` -} - -func init() { - t["ModifyListViewRequestType"] = reflect.TypeOf((*ModifyListViewRequestType)(nil)).Elem() -} - -type ModifyListViewResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type MonthlyByDayTaskScheduler struct { - MonthlyTaskScheduler - - Day int32 `xml:"day"` -} - -func init() { - t["MonthlyByDayTaskScheduler"] = reflect.TypeOf((*MonthlyByDayTaskScheduler)(nil)).Elem() -} - -type MonthlyByWeekdayTaskScheduler struct { - MonthlyTaskScheduler - - Offset WeekOfMonth `xml:"offset"` - Weekday DayOfWeek `xml:"weekday"` -} - -func init() { - t["MonthlyByWeekdayTaskScheduler"] = reflect.TypeOf((*MonthlyByWeekdayTaskScheduler)(nil)).Elem() -} - -type MonthlyTaskScheduler struct { - DailyTaskScheduler -} - -func init() { - t["MonthlyTaskScheduler"] = reflect.TypeOf((*MonthlyTaskScheduler)(nil)).Elem() -} - -type MountError struct { - CustomizationFault - - Vm ManagedObjectReference `xml:"vm"` - DiskIndex int32 `xml:"diskIndex"` -} - -func init() { - t["MountError"] = reflect.TypeOf((*MountError)(nil)).Elem() -} - -type MountErrorFault MountError - -func init() { - t["MountErrorFault"] = reflect.TypeOf((*MountErrorFault)(nil)).Elem() -} - -type MountToolsInstaller MountToolsInstallerRequestType - -func init() { - t["MountToolsInstaller"] = reflect.TypeOf((*MountToolsInstaller)(nil)).Elem() -} - -type MountToolsInstallerRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["MountToolsInstallerRequestType"] = reflect.TypeOf((*MountToolsInstallerRequestType)(nil)).Elem() -} - -type MountToolsInstallerResponse struct { -} - -type MountVffsVolume MountVffsVolumeRequestType - -func init() { - t["MountVffsVolume"] = reflect.TypeOf((*MountVffsVolume)(nil)).Elem() -} - -type MountVffsVolumeRequestType struct { - This ManagedObjectReference `xml:"_this"` - VffsUuid string `xml:"vffsUuid"` -} - -func init() { - t["MountVffsVolumeRequestType"] = reflect.TypeOf((*MountVffsVolumeRequestType)(nil)).Elem() -} - -type MountVffsVolumeResponse struct { -} - -type MountVmfsVolume MountVmfsVolumeRequestType - -func init() { - t["MountVmfsVolume"] = reflect.TypeOf((*MountVmfsVolume)(nil)).Elem() -} - -type MountVmfsVolumeExRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid []string `xml:"vmfsUuid"` -} - -func init() { - t["MountVmfsVolumeExRequestType"] = reflect.TypeOf((*MountVmfsVolumeExRequestType)(nil)).Elem() -} - -type MountVmfsVolumeEx_Task MountVmfsVolumeExRequestType - -func init() { - t["MountVmfsVolumeEx_Task"] = reflect.TypeOf((*MountVmfsVolumeEx_Task)(nil)).Elem() -} - -type MountVmfsVolumeEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MountVmfsVolumeRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid string `xml:"vmfsUuid"` -} - -func init() { - t["MountVmfsVolumeRequestType"] = reflect.TypeOf((*MountVmfsVolumeRequestType)(nil)).Elem() -} - -type MountVmfsVolumeResponse struct { -} - -type MoveDVPortRequestType struct { - This ManagedObjectReference `xml:"_this"` - PortKey []string `xml:"portKey"` - DestinationPortgroupKey string `xml:"destinationPortgroupKey,omitempty"` -} - -func init() { - t["MoveDVPortRequestType"] = reflect.TypeOf((*MoveDVPortRequestType)(nil)).Elem() -} - -type MoveDVPort_Task MoveDVPortRequestType - -func init() { - t["MoveDVPort_Task"] = reflect.TypeOf((*MoveDVPort_Task)(nil)).Elem() -} - -type MoveDVPort_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MoveDatastoreFileRequestType struct { - This ManagedObjectReference `xml:"_this"` - SourceName string `xml:"sourceName"` - SourceDatacenter *ManagedObjectReference `xml:"sourceDatacenter,omitempty"` - DestinationName string `xml:"destinationName"` - DestinationDatacenter *ManagedObjectReference `xml:"destinationDatacenter,omitempty"` - Force *bool `xml:"force"` -} - -func init() { - t["MoveDatastoreFileRequestType"] = reflect.TypeOf((*MoveDatastoreFileRequestType)(nil)).Elem() -} - -type MoveDatastoreFile_Task MoveDatastoreFileRequestType - -func init() { - t["MoveDatastoreFile_Task"] = reflect.TypeOf((*MoveDatastoreFile_Task)(nil)).Elem() -} - -type MoveDatastoreFile_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MoveDirectoryInGuest MoveDirectoryInGuestRequestType - -func init() { - t["MoveDirectoryInGuest"] = reflect.TypeOf((*MoveDirectoryInGuest)(nil)).Elem() -} - -type MoveDirectoryInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - SrcDirectoryPath string `xml:"srcDirectoryPath"` - DstDirectoryPath string `xml:"dstDirectoryPath"` -} - -func init() { - t["MoveDirectoryInGuestRequestType"] = reflect.TypeOf((*MoveDirectoryInGuestRequestType)(nil)).Elem() -} - -type MoveDirectoryInGuestResponse struct { -} - -type MoveFileInGuest MoveFileInGuestRequestType - -func init() { - t["MoveFileInGuest"] = reflect.TypeOf((*MoveFileInGuest)(nil)).Elem() -} - -type MoveFileInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - SrcFilePath string `xml:"srcFilePath"` - DstFilePath string `xml:"dstFilePath"` - Overwrite bool `xml:"overwrite"` -} - -func init() { - t["MoveFileInGuestRequestType"] = reflect.TypeOf((*MoveFileInGuestRequestType)(nil)).Elem() -} - -type MoveFileInGuestResponse struct { -} - -type MoveHostIntoRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - ResourcePool *ManagedObjectReference `xml:"resourcePool,omitempty"` -} - -func init() { - t["MoveHostIntoRequestType"] = reflect.TypeOf((*MoveHostIntoRequestType)(nil)).Elem() -} - -type MoveHostInto_Task MoveHostIntoRequestType - -func init() { - t["MoveHostInto_Task"] = reflect.TypeOf((*MoveHostInto_Task)(nil)).Elem() -} - -type MoveHostInto_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MoveIntoFolderRequestType struct { - This ManagedObjectReference `xml:"_this"` - List []ManagedObjectReference `xml:"list"` -} - -func init() { - t["MoveIntoFolderRequestType"] = reflect.TypeOf((*MoveIntoFolderRequestType)(nil)).Elem() -} - -type MoveIntoFolder_Task MoveIntoFolderRequestType - -func init() { - t["MoveIntoFolder_Task"] = reflect.TypeOf((*MoveIntoFolder_Task)(nil)).Elem() -} - -type MoveIntoFolder_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MoveIntoRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["MoveIntoRequestType"] = reflect.TypeOf((*MoveIntoRequestType)(nil)).Elem() -} - -type MoveIntoResourcePool MoveIntoResourcePoolRequestType - -func init() { - t["MoveIntoResourcePool"] = reflect.TypeOf((*MoveIntoResourcePool)(nil)).Elem() -} - -type MoveIntoResourcePoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - List []ManagedObjectReference `xml:"list"` -} - -func init() { - t["MoveIntoResourcePoolRequestType"] = reflect.TypeOf((*MoveIntoResourcePoolRequestType)(nil)).Elem() -} - -type MoveIntoResourcePoolResponse struct { -} - -type MoveInto_Task MoveIntoRequestType - -func init() { - t["MoveInto_Task"] = reflect.TypeOf((*MoveInto_Task)(nil)).Elem() -} - -type MoveInto_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MoveVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - SourceName string `xml:"sourceName"` - SourceDatacenter *ManagedObjectReference `xml:"sourceDatacenter,omitempty"` - DestName string `xml:"destName"` - DestDatacenter *ManagedObjectReference `xml:"destDatacenter,omitempty"` - Force *bool `xml:"force"` - Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` -} - -func init() { - t["MoveVirtualDiskRequestType"] = reflect.TypeOf((*MoveVirtualDiskRequestType)(nil)).Elem() -} - -type MoveVirtualDisk_Task MoveVirtualDiskRequestType - -func init() { - t["MoveVirtualDisk_Task"] = reflect.TypeOf((*MoveVirtualDisk_Task)(nil)).Elem() -} - -type MoveVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type MtuMatchEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["MtuMatchEvent"] = reflect.TypeOf((*MtuMatchEvent)(nil)).Elem() -} - -type MtuMismatchEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["MtuMismatchEvent"] = reflect.TypeOf((*MtuMismatchEvent)(nil)).Elem() -} - -type MultiWriterNotSupported struct { - DeviceNotSupported -} - -func init() { - t["MultiWriterNotSupported"] = reflect.TypeOf((*MultiWriterNotSupported)(nil)).Elem() -} - -type MultiWriterNotSupportedFault MultiWriterNotSupported - -func init() { - t["MultiWriterNotSupportedFault"] = reflect.TypeOf((*MultiWriterNotSupportedFault)(nil)).Elem() -} - -type MultipleCertificatesVerifyFault struct { - HostConnectFault - - ThumbprintData []MultipleCertificatesVerifyFaultThumbprintData `xml:"thumbprintData"` -} - -func init() { - t["MultipleCertificatesVerifyFault"] = reflect.TypeOf((*MultipleCertificatesVerifyFault)(nil)).Elem() -} - -type MultipleCertificatesVerifyFaultFault MultipleCertificatesVerifyFault - -func init() { - t["MultipleCertificatesVerifyFaultFault"] = reflect.TypeOf((*MultipleCertificatesVerifyFaultFault)(nil)).Elem() -} - -type MultipleCertificatesVerifyFaultThumbprintData struct { - DynamicData - - Port int32 `xml:"port"` - Thumbprint string `xml:"thumbprint"` -} - -func init() { - t["MultipleCertificatesVerifyFaultThumbprintData"] = reflect.TypeOf((*MultipleCertificatesVerifyFaultThumbprintData)(nil)).Elem() -} - -type MultipleSnapshotsNotSupported struct { - SnapshotFault -} - -func init() { - t["MultipleSnapshotsNotSupported"] = reflect.TypeOf((*MultipleSnapshotsNotSupported)(nil)).Elem() -} - -type MultipleSnapshotsNotSupportedFault MultipleSnapshotsNotSupported - -func init() { - t["MultipleSnapshotsNotSupportedFault"] = reflect.TypeOf((*MultipleSnapshotsNotSupportedFault)(nil)).Elem() -} - -type NASDatastoreCreatedEvent struct { - HostEvent - - Datastore DatastoreEventArgument `xml:"datastore"` - DatastoreUrl string `xml:"datastoreUrl,omitempty"` -} - -func init() { - t["NASDatastoreCreatedEvent"] = reflect.TypeOf((*NASDatastoreCreatedEvent)(nil)).Elem() -} - -type NamePasswordAuthentication struct { - GuestAuthentication - - Username string `xml:"username"` - Password string `xml:"password"` -} - -func init() { - t["NamePasswordAuthentication"] = reflect.TypeOf((*NamePasswordAuthentication)(nil)).Elem() -} - -type NamespaceFull struct { - VimFault - - Name string `xml:"name"` - CurrentMaxSize int64 `xml:"currentMaxSize"` - RequiredSize int64 `xml:"requiredSize,omitempty"` -} - -func init() { - t["NamespaceFull"] = reflect.TypeOf((*NamespaceFull)(nil)).Elem() -} - -type NamespaceFullFault NamespaceFull - -func init() { - t["NamespaceFullFault"] = reflect.TypeOf((*NamespaceFullFault)(nil)).Elem() -} - -type NamespaceLimitReached struct { - VimFault - - Limit int32 `xml:"limit,omitempty"` -} - -func init() { - t["NamespaceLimitReached"] = reflect.TypeOf((*NamespaceLimitReached)(nil)).Elem() -} - -type NamespaceLimitReachedFault NamespaceLimitReached - -func init() { - t["NamespaceLimitReachedFault"] = reflect.TypeOf((*NamespaceLimitReachedFault)(nil)).Elem() -} - -type NamespaceWriteProtected struct { - VimFault - - Name string `xml:"name"` -} - -func init() { - t["NamespaceWriteProtected"] = reflect.TypeOf((*NamespaceWriteProtected)(nil)).Elem() -} - -type NamespaceWriteProtectedFault NamespaceWriteProtected - -func init() { - t["NamespaceWriteProtectedFault"] = reflect.TypeOf((*NamespaceWriteProtectedFault)(nil)).Elem() -} - -type NasConfigFault struct { - HostConfigFault - - Name string `xml:"name"` -} - -func init() { - t["NasConfigFault"] = reflect.TypeOf((*NasConfigFault)(nil)).Elem() -} - -type NasConfigFaultFault BaseNasConfigFault - -func init() { - t["NasConfigFaultFault"] = reflect.TypeOf((*NasConfigFaultFault)(nil)).Elem() -} - -type NasConnectionLimitReached struct { - NasConfigFault - - RemoteHost string `xml:"remoteHost"` - RemotePath string `xml:"remotePath"` -} - -func init() { - t["NasConnectionLimitReached"] = reflect.TypeOf((*NasConnectionLimitReached)(nil)).Elem() -} - -type NasConnectionLimitReachedFault NasConnectionLimitReached - -func init() { - t["NasConnectionLimitReachedFault"] = reflect.TypeOf((*NasConnectionLimitReachedFault)(nil)).Elem() -} - -type NasDatastoreInfo struct { - DatastoreInfo - - Nas *HostNasVolume `xml:"nas,omitempty"` -} - -func init() { - t["NasDatastoreInfo"] = reflect.TypeOf((*NasDatastoreInfo)(nil)).Elem() -} - -type NasSessionCredentialConflict struct { - NasConfigFault - - RemoteHost string `xml:"remoteHost"` - RemotePath string `xml:"remotePath"` - UserName string `xml:"userName"` -} - -func init() { - t["NasSessionCredentialConflict"] = reflect.TypeOf((*NasSessionCredentialConflict)(nil)).Elem() -} - -type NasSessionCredentialConflictFault NasSessionCredentialConflict - -func init() { - t["NasSessionCredentialConflictFault"] = reflect.TypeOf((*NasSessionCredentialConflictFault)(nil)).Elem() -} - -type NasStorageProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["NasStorageProfile"] = reflect.TypeOf((*NasStorageProfile)(nil)).Elem() -} - -type NasVolumeNotMounted struct { - NasConfigFault - - RemoteHost string `xml:"remoteHost"` - RemotePath string `xml:"remotePath"` -} - -func init() { - t["NasVolumeNotMounted"] = reflect.TypeOf((*NasVolumeNotMounted)(nil)).Elem() -} - -type NasVolumeNotMountedFault NasVolumeNotMounted - -func init() { - t["NasVolumeNotMountedFault"] = reflect.TypeOf((*NasVolumeNotMountedFault)(nil)).Elem() -} - -type NegatableExpression struct { - DynamicData - - Negate *bool `xml:"negate"` -} - -func init() { - t["NegatableExpression"] = reflect.TypeOf((*NegatableExpression)(nil)).Elem() -} - -type NetBIOSConfigInfo struct { - DynamicData - - Mode string `xml:"mode"` -} - -func init() { - t["NetBIOSConfigInfo"] = reflect.TypeOf((*NetBIOSConfigInfo)(nil)).Elem() -} - -type NetDhcpConfigInfo struct { - DynamicData - - Ipv6 *NetDhcpConfigInfoDhcpOptions `xml:"ipv6,omitempty"` - Ipv4 *NetDhcpConfigInfoDhcpOptions `xml:"ipv4,omitempty"` -} - -func init() { - t["NetDhcpConfigInfo"] = reflect.TypeOf((*NetDhcpConfigInfo)(nil)).Elem() -} - -type NetDhcpConfigInfoDhcpOptions struct { - DynamicData - - Enable bool `xml:"enable"` - Config []KeyValue `xml:"config,omitempty"` -} - -func init() { - t["NetDhcpConfigInfoDhcpOptions"] = reflect.TypeOf((*NetDhcpConfigInfoDhcpOptions)(nil)).Elem() -} - -type NetDhcpConfigSpec struct { - DynamicData - - Ipv6 *NetDhcpConfigSpecDhcpOptionsSpec `xml:"ipv6,omitempty"` - Ipv4 *NetDhcpConfigSpecDhcpOptionsSpec `xml:"ipv4,omitempty"` -} - -func init() { - t["NetDhcpConfigSpec"] = reflect.TypeOf((*NetDhcpConfigSpec)(nil)).Elem() -} - -type NetDhcpConfigSpecDhcpOptionsSpec struct { - DynamicData - - Enable *bool `xml:"enable"` - Config []KeyValue `xml:"config"` - Operation string `xml:"operation"` -} - -func init() { - t["NetDhcpConfigSpecDhcpOptionsSpec"] = reflect.TypeOf((*NetDhcpConfigSpecDhcpOptionsSpec)(nil)).Elem() -} - -type NetDnsConfigInfo struct { - DynamicData - - Dhcp bool `xml:"dhcp"` - HostName string `xml:"hostName"` - DomainName string `xml:"domainName"` - IpAddress []string `xml:"ipAddress,omitempty"` - SearchDomain []string `xml:"searchDomain,omitempty"` -} - -func init() { - t["NetDnsConfigInfo"] = reflect.TypeOf((*NetDnsConfigInfo)(nil)).Elem() -} - -type NetDnsConfigSpec struct { - DynamicData - - Dhcp *bool `xml:"dhcp"` - HostName string `xml:"hostName,omitempty"` - DomainName string `xml:"domainName,omitempty"` - IpAddress []string `xml:"ipAddress,omitempty"` - SearchDomain []string `xml:"searchDomain,omitempty"` -} - -func init() { - t["NetDnsConfigSpec"] = reflect.TypeOf((*NetDnsConfigSpec)(nil)).Elem() -} - -type NetIpConfigInfo struct { - DynamicData - - IpAddress []NetIpConfigInfoIpAddress `xml:"ipAddress,omitempty"` - Dhcp *NetDhcpConfigInfo `xml:"dhcp,omitempty"` - AutoConfigurationEnabled *bool `xml:"autoConfigurationEnabled"` -} - -func init() { - t["NetIpConfigInfo"] = reflect.TypeOf((*NetIpConfigInfo)(nil)).Elem() -} - -type NetIpConfigInfoIpAddress struct { - DynamicData - - IpAddress string `xml:"ipAddress"` - PrefixLength int32 `xml:"prefixLength"` - Origin string `xml:"origin,omitempty"` - State string `xml:"state,omitempty"` - Lifetime *time.Time `xml:"lifetime"` -} - -func init() { - t["NetIpConfigInfoIpAddress"] = reflect.TypeOf((*NetIpConfigInfoIpAddress)(nil)).Elem() -} - -type NetIpConfigSpec struct { - DynamicData - - IpAddress []NetIpConfigSpecIpAddressSpec `xml:"ipAddress,omitempty"` - Dhcp *NetDhcpConfigSpec `xml:"dhcp,omitempty"` - AutoConfigurationEnabled *bool `xml:"autoConfigurationEnabled"` -} - -func init() { - t["NetIpConfigSpec"] = reflect.TypeOf((*NetIpConfigSpec)(nil)).Elem() -} - -type NetIpConfigSpecIpAddressSpec struct { - DynamicData - - IpAddress string `xml:"ipAddress"` - PrefixLength int32 `xml:"prefixLength"` - Operation string `xml:"operation"` -} - -func init() { - t["NetIpConfigSpecIpAddressSpec"] = reflect.TypeOf((*NetIpConfigSpecIpAddressSpec)(nil)).Elem() -} - -type NetIpRouteConfigInfo struct { - DynamicData - - IpRoute []NetIpRouteConfigInfoIpRoute `xml:"ipRoute,omitempty"` -} - -func init() { - t["NetIpRouteConfigInfo"] = reflect.TypeOf((*NetIpRouteConfigInfo)(nil)).Elem() -} - -type NetIpRouteConfigInfoGateway struct { - DynamicData - - IpAddress string `xml:"ipAddress,omitempty"` - Device string `xml:"device,omitempty"` -} - -func init() { - t["NetIpRouteConfigInfoGateway"] = reflect.TypeOf((*NetIpRouteConfigInfoGateway)(nil)).Elem() -} - -type NetIpRouteConfigInfoIpRoute struct { - DynamicData - - Network string `xml:"network"` - PrefixLength int32 `xml:"prefixLength"` - Gateway NetIpRouteConfigInfoGateway `xml:"gateway"` -} - -func init() { - t["NetIpRouteConfigInfoIpRoute"] = reflect.TypeOf((*NetIpRouteConfigInfoIpRoute)(nil)).Elem() -} - -type NetIpRouteConfigSpec struct { - DynamicData - - IpRoute []NetIpRouteConfigSpecIpRouteSpec `xml:"ipRoute,omitempty"` -} - -func init() { - t["NetIpRouteConfigSpec"] = reflect.TypeOf((*NetIpRouteConfigSpec)(nil)).Elem() -} - -type NetIpRouteConfigSpecGatewaySpec struct { - DynamicData - - IpAddress string `xml:"ipAddress,omitempty"` - Device string `xml:"device,omitempty"` -} - -func init() { - t["NetIpRouteConfigSpecGatewaySpec"] = reflect.TypeOf((*NetIpRouteConfigSpecGatewaySpec)(nil)).Elem() -} - -type NetIpRouteConfigSpecIpRouteSpec struct { - DynamicData - - Network string `xml:"network"` - PrefixLength int32 `xml:"prefixLength"` - Gateway NetIpRouteConfigSpecGatewaySpec `xml:"gateway"` - Operation string `xml:"operation"` -} - -func init() { - t["NetIpRouteConfigSpecIpRouteSpec"] = reflect.TypeOf((*NetIpRouteConfigSpecIpRouteSpec)(nil)).Elem() -} - -type NetIpStackInfo struct { - DynamicData - - Neighbor []NetIpStackInfoNetToMedia `xml:"neighbor,omitempty"` - DefaultRouter []NetIpStackInfoDefaultRouter `xml:"defaultRouter,omitempty"` -} - -func init() { - t["NetIpStackInfo"] = reflect.TypeOf((*NetIpStackInfo)(nil)).Elem() -} - -type NetIpStackInfoDefaultRouter struct { - DynamicData - - IpAddress string `xml:"ipAddress"` - Device string `xml:"device"` - Lifetime time.Time `xml:"lifetime"` - Preference string `xml:"preference"` -} - -func init() { - t["NetIpStackInfoDefaultRouter"] = reflect.TypeOf((*NetIpStackInfoDefaultRouter)(nil)).Elem() -} - -type NetIpStackInfoNetToMedia struct { - DynamicData - - IpAddress string `xml:"ipAddress"` - PhysicalAddress string `xml:"physicalAddress"` - Device string `xml:"device"` - Type string `xml:"type"` -} - -func init() { - t["NetIpStackInfoNetToMedia"] = reflect.TypeOf((*NetIpStackInfoNetToMedia)(nil)).Elem() -} - -type NetStackInstanceProfile struct { - ApplyProfile - - Key string `xml:"key"` - DnsConfig NetworkProfileDnsConfigProfile `xml:"dnsConfig"` - IpRouteConfig IpRouteProfile `xml:"ipRouteConfig"` -} - -func init() { - t["NetStackInstanceProfile"] = reflect.TypeOf((*NetStackInstanceProfile)(nil)).Elem() -} - -type NetworkCopyFault struct { - FileFault -} - -func init() { - t["NetworkCopyFault"] = reflect.TypeOf((*NetworkCopyFault)(nil)).Elem() -} - -type NetworkCopyFaultFault NetworkCopyFault - -func init() { - t["NetworkCopyFaultFault"] = reflect.TypeOf((*NetworkCopyFaultFault)(nil)).Elem() -} - -type NetworkDisruptedAndConfigRolledBack struct { - VimFault - - Host string `xml:"host"` -} - -func init() { - t["NetworkDisruptedAndConfigRolledBack"] = reflect.TypeOf((*NetworkDisruptedAndConfigRolledBack)(nil)).Elem() -} - -type NetworkDisruptedAndConfigRolledBackFault NetworkDisruptedAndConfigRolledBack - -func init() { - t["NetworkDisruptedAndConfigRolledBackFault"] = reflect.TypeOf((*NetworkDisruptedAndConfigRolledBackFault)(nil)).Elem() -} - -type NetworkEventArgument struct { - EntityEventArgument - - Network ManagedObjectReference `xml:"network"` -} - -func init() { - t["NetworkEventArgument"] = reflect.TypeOf((*NetworkEventArgument)(nil)).Elem() -} - -type NetworkInaccessible struct { - NasConfigFault -} - -func init() { - t["NetworkInaccessible"] = reflect.TypeOf((*NetworkInaccessible)(nil)).Elem() -} - -type NetworkInaccessibleFault NetworkInaccessible - -func init() { - t["NetworkInaccessibleFault"] = reflect.TypeOf((*NetworkInaccessibleFault)(nil)).Elem() -} - -type NetworkPolicyProfile struct { - ApplyProfile -} - -func init() { - t["NetworkPolicyProfile"] = reflect.TypeOf((*NetworkPolicyProfile)(nil)).Elem() -} - -type NetworkProfile struct { - ApplyProfile - - Vswitch []VirtualSwitchProfile `xml:"vswitch,omitempty"` - VmPortGroup []VmPortGroupProfile `xml:"vmPortGroup,omitempty"` - HostPortGroup []HostPortGroupProfile `xml:"hostPortGroup,omitempty"` - ServiceConsolePortGroup []ServiceConsolePortGroupProfile `xml:"serviceConsolePortGroup,omitempty"` - DnsConfig *NetworkProfileDnsConfigProfile `xml:"dnsConfig,omitempty"` - IpRouteConfig *IpRouteProfile `xml:"ipRouteConfig,omitempty"` - ConsoleIpRouteConfig *IpRouteProfile `xml:"consoleIpRouteConfig,omitempty"` - Pnic []PhysicalNicProfile `xml:"pnic,omitempty"` - Dvswitch []DvsProfile `xml:"dvswitch,omitempty"` - DvsServiceConsoleNic []DvsServiceConsoleVNicProfile `xml:"dvsServiceConsoleNic,omitempty"` - DvsHostNic []DvsHostVNicProfile `xml:"dvsHostNic,omitempty"` - NetStackInstance []NetStackInstanceProfile `xml:"netStackInstance,omitempty"` -} - -func init() { - t["NetworkProfile"] = reflect.TypeOf((*NetworkProfile)(nil)).Elem() -} - -type NetworkProfileDnsConfigProfile struct { - ApplyProfile -} - -func init() { - t["NetworkProfileDnsConfigProfile"] = reflect.TypeOf((*NetworkProfileDnsConfigProfile)(nil)).Elem() -} - -type NetworkRollbackEvent struct { - Event - - MethodName string `xml:"methodName"` - TransactionId string `xml:"transactionId"` -} - -func init() { - t["NetworkRollbackEvent"] = reflect.TypeOf((*NetworkRollbackEvent)(nil)).Elem() -} - -type NetworkSummary struct { - DynamicData - - Network *ManagedObjectReference `xml:"network,omitempty"` - Name string `xml:"name"` - Accessible bool `xml:"accessible"` - IpPoolName string `xml:"ipPoolName,omitempty"` - IpPoolId int32 `xml:"ipPoolId,omitempty"` -} - -func init() { - t["NetworkSummary"] = reflect.TypeOf((*NetworkSummary)(nil)).Elem() -} - -type NetworksMayNotBeTheSame struct { - MigrationFault - - Name string `xml:"name,omitempty"` -} - -func init() { - t["NetworksMayNotBeTheSame"] = reflect.TypeOf((*NetworksMayNotBeTheSame)(nil)).Elem() -} - -type NetworksMayNotBeTheSameFault NetworksMayNotBeTheSame - -func init() { - t["NetworksMayNotBeTheSameFault"] = reflect.TypeOf((*NetworksMayNotBeTheSameFault)(nil)).Elem() -} - -type NicSettingMismatch struct { - CustomizationFault - - NumberOfNicsInSpec int32 `xml:"numberOfNicsInSpec"` - NumberOfNicsInVM int32 `xml:"numberOfNicsInVM"` -} - -func init() { - t["NicSettingMismatch"] = reflect.TypeOf((*NicSettingMismatch)(nil)).Elem() -} - -type NicSettingMismatchFault NicSettingMismatch - -func init() { - t["NicSettingMismatchFault"] = reflect.TypeOf((*NicSettingMismatchFault)(nil)).Elem() -} - -type NoAccessUserEvent struct { - SessionEvent - - IpAddress string `xml:"ipAddress"` -} - -func init() { - t["NoAccessUserEvent"] = reflect.TypeOf((*NoAccessUserEvent)(nil)).Elem() -} - -type NoActiveHostInCluster struct { - InvalidState - - ComputeResource ManagedObjectReference `xml:"computeResource"` -} - -func init() { - t["NoActiveHostInCluster"] = reflect.TypeOf((*NoActiveHostInCluster)(nil)).Elem() -} - -type NoActiveHostInClusterFault NoActiveHostInCluster - -func init() { - t["NoActiveHostInClusterFault"] = reflect.TypeOf((*NoActiveHostInClusterFault)(nil)).Elem() -} - -type NoAvailableIp struct { - VAppPropertyFault - - Network ManagedObjectReference `xml:"network"` -} - -func init() { - t["NoAvailableIp"] = reflect.TypeOf((*NoAvailableIp)(nil)).Elem() -} - -type NoAvailableIpFault NoAvailableIp - -func init() { - t["NoAvailableIpFault"] = reflect.TypeOf((*NoAvailableIpFault)(nil)).Elem() -} - -type NoClientCertificate struct { - VimFault -} - -func init() { - t["NoClientCertificate"] = reflect.TypeOf((*NoClientCertificate)(nil)).Elem() -} - -type NoClientCertificateFault NoClientCertificate - -func init() { - t["NoClientCertificateFault"] = reflect.TypeOf((*NoClientCertificateFault)(nil)).Elem() -} - -type NoCompatibleDatastore struct { - VimFault -} - -func init() { - t["NoCompatibleDatastore"] = reflect.TypeOf((*NoCompatibleDatastore)(nil)).Elem() -} - -type NoCompatibleDatastoreFault NoCompatibleDatastore - -func init() { - t["NoCompatibleDatastoreFault"] = reflect.TypeOf((*NoCompatibleDatastoreFault)(nil)).Elem() -} - -type NoCompatibleHardAffinityHost struct { - VmConfigFault - - VmName string `xml:"vmName"` -} - -func init() { - t["NoCompatibleHardAffinityHost"] = reflect.TypeOf((*NoCompatibleHardAffinityHost)(nil)).Elem() -} - -type NoCompatibleHardAffinityHostFault NoCompatibleHardAffinityHost - -func init() { - t["NoCompatibleHardAffinityHostFault"] = reflect.TypeOf((*NoCompatibleHardAffinityHostFault)(nil)).Elem() -} - -type NoCompatibleHost struct { - VimFault - - Host []ManagedObjectReference `xml:"host,omitempty"` - Error []LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["NoCompatibleHost"] = reflect.TypeOf((*NoCompatibleHost)(nil)).Elem() -} - -type NoCompatibleHostFault BaseNoCompatibleHost - -func init() { - t["NoCompatibleHostFault"] = reflect.TypeOf((*NoCompatibleHostFault)(nil)).Elem() -} - -type NoCompatibleHostWithAccessToDevice struct { - NoCompatibleHost -} - -func init() { - t["NoCompatibleHostWithAccessToDevice"] = reflect.TypeOf((*NoCompatibleHostWithAccessToDevice)(nil)).Elem() -} - -type NoCompatibleHostWithAccessToDeviceFault NoCompatibleHostWithAccessToDevice - -func init() { - t["NoCompatibleHostWithAccessToDeviceFault"] = reflect.TypeOf((*NoCompatibleHostWithAccessToDeviceFault)(nil)).Elem() -} - -type NoCompatibleSoftAffinityHost struct { - VmConfigFault - - VmName string `xml:"vmName"` -} - -func init() { - t["NoCompatibleSoftAffinityHost"] = reflect.TypeOf((*NoCompatibleSoftAffinityHost)(nil)).Elem() -} - -type NoCompatibleSoftAffinityHostFault NoCompatibleSoftAffinityHost - -func init() { - t["NoCompatibleSoftAffinityHostFault"] = reflect.TypeOf((*NoCompatibleSoftAffinityHostFault)(nil)).Elem() -} - -type NoConnectedDatastore struct { - VimFault -} - -func init() { - t["NoConnectedDatastore"] = reflect.TypeOf((*NoConnectedDatastore)(nil)).Elem() -} - -type NoConnectedDatastoreFault NoConnectedDatastore - -func init() { - t["NoConnectedDatastoreFault"] = reflect.TypeOf((*NoConnectedDatastoreFault)(nil)).Elem() -} - -type NoDatastoresConfiguredEvent struct { - HostEvent -} - -func init() { - t["NoDatastoresConfiguredEvent"] = reflect.TypeOf((*NoDatastoresConfiguredEvent)(nil)).Elem() -} - -type NoDiskFound struct { - VimFault -} - -func init() { - t["NoDiskFound"] = reflect.TypeOf((*NoDiskFound)(nil)).Elem() -} - -type NoDiskFoundFault NoDiskFound - -func init() { - t["NoDiskFoundFault"] = reflect.TypeOf((*NoDiskFoundFault)(nil)).Elem() -} - -type NoDiskSpace struct { - FileFault - - Datastore string `xml:"datastore"` -} - -func init() { - t["NoDiskSpace"] = reflect.TypeOf((*NoDiskSpace)(nil)).Elem() -} - -type NoDiskSpaceFault NoDiskSpace - -func init() { - t["NoDiskSpaceFault"] = reflect.TypeOf((*NoDiskSpaceFault)(nil)).Elem() -} - -type NoDisksToCustomize struct { - CustomizationFault -} - -func init() { - t["NoDisksToCustomize"] = reflect.TypeOf((*NoDisksToCustomize)(nil)).Elem() -} - -type NoDisksToCustomizeFault NoDisksToCustomize - -func init() { - t["NoDisksToCustomizeFault"] = reflect.TypeOf((*NoDisksToCustomizeFault)(nil)).Elem() -} - -type NoGateway struct { - HostConfigFault -} - -func init() { - t["NoGateway"] = reflect.TypeOf((*NoGateway)(nil)).Elem() -} - -type NoGatewayFault NoGateway - -func init() { - t["NoGatewayFault"] = reflect.TypeOf((*NoGatewayFault)(nil)).Elem() -} - -type NoGuestHeartbeat struct { - MigrationFault -} - -func init() { - t["NoGuestHeartbeat"] = reflect.TypeOf((*NoGuestHeartbeat)(nil)).Elem() -} - -type NoGuestHeartbeatFault NoGuestHeartbeat - -func init() { - t["NoGuestHeartbeatFault"] = reflect.TypeOf((*NoGuestHeartbeatFault)(nil)).Elem() -} - -type NoHost struct { - HostConnectFault - - Name string `xml:"name,omitempty"` -} - -func init() { - t["NoHost"] = reflect.TypeOf((*NoHost)(nil)).Elem() -} - -type NoHostFault NoHost - -func init() { - t["NoHostFault"] = reflect.TypeOf((*NoHostFault)(nil)).Elem() -} - -type NoHostSuitableForFtSecondary struct { - VmFaultToleranceIssue - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` -} - -func init() { - t["NoHostSuitableForFtSecondary"] = reflect.TypeOf((*NoHostSuitableForFtSecondary)(nil)).Elem() -} - -type NoHostSuitableForFtSecondaryFault NoHostSuitableForFtSecondary - -func init() { - t["NoHostSuitableForFtSecondaryFault"] = reflect.TypeOf((*NoHostSuitableForFtSecondaryFault)(nil)).Elem() -} - -type NoLicenseEvent struct { - LicenseEvent - - Feature LicenseFeatureInfo `xml:"feature"` -} - -func init() { - t["NoLicenseEvent"] = reflect.TypeOf((*NoLicenseEvent)(nil)).Elem() -} - -type NoLicenseServerConfigured struct { - NotEnoughLicenses -} - -func init() { - t["NoLicenseServerConfigured"] = reflect.TypeOf((*NoLicenseServerConfigured)(nil)).Elem() -} - -type NoLicenseServerConfiguredFault NoLicenseServerConfigured - -func init() { - t["NoLicenseServerConfiguredFault"] = reflect.TypeOf((*NoLicenseServerConfiguredFault)(nil)).Elem() -} - -type NoMaintenanceModeDrsRecommendationForVM struct { - VmEvent -} - -func init() { - t["NoMaintenanceModeDrsRecommendationForVM"] = reflect.TypeOf((*NoMaintenanceModeDrsRecommendationForVM)(nil)).Elem() -} - -type NoPeerHostFound struct { - HostPowerOpFailed -} - -func init() { - t["NoPeerHostFound"] = reflect.TypeOf((*NoPeerHostFound)(nil)).Elem() -} - -type NoPeerHostFoundFault NoPeerHostFound - -func init() { - t["NoPeerHostFoundFault"] = reflect.TypeOf((*NoPeerHostFoundFault)(nil)).Elem() -} - -type NoPermission struct { - SecurityError - - Object ManagedObjectReference `xml:"object"` - PrivilegeId string `xml:"privilegeId"` -} - -func init() { - t["NoPermission"] = reflect.TypeOf((*NoPermission)(nil)).Elem() -} - -type NoPermissionFault BaseNoPermission - -func init() { - t["NoPermissionFault"] = reflect.TypeOf((*NoPermissionFault)(nil)).Elem() -} - -type NoPermissionOnAD struct { - ActiveDirectoryFault -} - -func init() { - t["NoPermissionOnAD"] = reflect.TypeOf((*NoPermissionOnAD)(nil)).Elem() -} - -type NoPermissionOnADFault NoPermissionOnAD - -func init() { - t["NoPermissionOnADFault"] = reflect.TypeOf((*NoPermissionOnADFault)(nil)).Elem() -} - -type NoPermissionOnHost struct { - HostConnectFault -} - -func init() { - t["NoPermissionOnHost"] = reflect.TypeOf((*NoPermissionOnHost)(nil)).Elem() -} - -type NoPermissionOnHostFault NoPermissionOnHost - -func init() { - t["NoPermissionOnHostFault"] = reflect.TypeOf((*NoPermissionOnHostFault)(nil)).Elem() -} - -type NoPermissionOnNasVolume struct { - NasConfigFault - - UserName string `xml:"userName,omitempty"` -} - -func init() { - t["NoPermissionOnNasVolume"] = reflect.TypeOf((*NoPermissionOnNasVolume)(nil)).Elem() -} - -type NoPermissionOnNasVolumeFault NoPermissionOnNasVolume - -func init() { - t["NoPermissionOnNasVolumeFault"] = reflect.TypeOf((*NoPermissionOnNasVolumeFault)(nil)).Elem() -} - -type NoSubjectName struct { - VimFault -} - -func init() { - t["NoSubjectName"] = reflect.TypeOf((*NoSubjectName)(nil)).Elem() -} - -type NoSubjectNameFault NoSubjectName - -func init() { - t["NoSubjectNameFault"] = reflect.TypeOf((*NoSubjectNameFault)(nil)).Elem() -} - -type NoVcManagedIpConfigured struct { - VAppPropertyFault -} - -func init() { - t["NoVcManagedIpConfigured"] = reflect.TypeOf((*NoVcManagedIpConfigured)(nil)).Elem() -} - -type NoVcManagedIpConfiguredFault NoVcManagedIpConfigured - -func init() { - t["NoVcManagedIpConfiguredFault"] = reflect.TypeOf((*NoVcManagedIpConfiguredFault)(nil)).Elem() -} - -type NoVirtualNic struct { - HostConfigFault -} - -func init() { - t["NoVirtualNic"] = reflect.TypeOf((*NoVirtualNic)(nil)).Elem() -} - -type NoVirtualNicFault NoVirtualNic - -func init() { - t["NoVirtualNicFault"] = reflect.TypeOf((*NoVirtualNicFault)(nil)).Elem() -} - -type NoVmInVApp struct { - VAppConfigFault -} - -func init() { - t["NoVmInVApp"] = reflect.TypeOf((*NoVmInVApp)(nil)).Elem() -} - -type NoVmInVAppFault NoVmInVApp - -func init() { - t["NoVmInVAppFault"] = reflect.TypeOf((*NoVmInVAppFault)(nil)).Elem() -} - -type NodeDeploymentSpec struct { - DynamicData - - EsxHost *ManagedObjectReference `xml:"esxHost,omitempty"` - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` - PublicNetworkPortGroup *ManagedObjectReference `xml:"publicNetworkPortGroup,omitempty"` - ClusterNetworkPortGroup *ManagedObjectReference `xml:"clusterNetworkPortGroup,omitempty"` - Folder ManagedObjectReference `xml:"folder"` - ResourcePool *ManagedObjectReference `xml:"resourcePool,omitempty"` - ManagementVc *ServiceLocator `xml:"managementVc,omitempty"` - NodeName string `xml:"nodeName"` - IpSettings CustomizationIPSettings `xml:"ipSettings"` -} - -func init() { - t["NodeDeploymentSpec"] = reflect.TypeOf((*NodeDeploymentSpec)(nil)).Elem() -} - -type NodeNetworkSpec struct { - DynamicData - - IpSettings CustomizationIPSettings `xml:"ipSettings"` -} - -func init() { - t["NodeNetworkSpec"] = reflect.TypeOf((*NodeNetworkSpec)(nil)).Elem() -} - -type NonADUserRequired struct { - ActiveDirectoryFault -} - -func init() { - t["NonADUserRequired"] = reflect.TypeOf((*NonADUserRequired)(nil)).Elem() -} - -type NonADUserRequiredFault NonADUserRequired - -func init() { - t["NonADUserRequiredFault"] = reflect.TypeOf((*NonADUserRequiredFault)(nil)).Elem() -} - -type NonHomeRDMVMotionNotSupported struct { - MigrationFeatureNotSupported - - Device string `xml:"device"` -} - -func init() { - t["NonHomeRDMVMotionNotSupported"] = reflect.TypeOf((*NonHomeRDMVMotionNotSupported)(nil)).Elem() -} - -type NonHomeRDMVMotionNotSupportedFault NonHomeRDMVMotionNotSupported - -func init() { - t["NonHomeRDMVMotionNotSupportedFault"] = reflect.TypeOf((*NonHomeRDMVMotionNotSupportedFault)(nil)).Elem() -} - -type NonPersistentDisksNotSupported struct { - DeviceNotSupported -} - -func init() { - t["NonPersistentDisksNotSupported"] = reflect.TypeOf((*NonPersistentDisksNotSupported)(nil)).Elem() -} - -type NonPersistentDisksNotSupportedFault NonPersistentDisksNotSupported - -func init() { - t["NonPersistentDisksNotSupportedFault"] = reflect.TypeOf((*NonPersistentDisksNotSupportedFault)(nil)).Elem() -} - -type NonVIWorkloadDetectedOnDatastoreEvent struct { - DatastoreEvent -} - -func init() { - t["NonVIWorkloadDetectedOnDatastoreEvent"] = reflect.TypeOf((*NonVIWorkloadDetectedOnDatastoreEvent)(nil)).Elem() -} - -type NonVmwareOuiMacNotSupportedHost struct { - NotSupportedHost - - HostName string `xml:"hostName"` -} - -func init() { - t["NonVmwareOuiMacNotSupportedHost"] = reflect.TypeOf((*NonVmwareOuiMacNotSupportedHost)(nil)).Elem() -} - -type NonVmwareOuiMacNotSupportedHostFault NonVmwareOuiMacNotSupportedHost - -func init() { - t["NonVmwareOuiMacNotSupportedHostFault"] = reflect.TypeOf((*NonVmwareOuiMacNotSupportedHostFault)(nil)).Elem() -} - -type NotADirectory struct { - FileFault -} - -func init() { - t["NotADirectory"] = reflect.TypeOf((*NotADirectory)(nil)).Elem() -} - -type NotADirectoryFault NotADirectory - -func init() { - t["NotADirectoryFault"] = reflect.TypeOf((*NotADirectoryFault)(nil)).Elem() -} - -type NotAFile struct { - FileFault -} - -func init() { - t["NotAFile"] = reflect.TypeOf((*NotAFile)(nil)).Elem() -} - -type NotAFileFault NotAFile - -func init() { - t["NotAFileFault"] = reflect.TypeOf((*NotAFileFault)(nil)).Elem() -} - -type NotAuthenticated struct { - NoPermission -} - -func init() { - t["NotAuthenticated"] = reflect.TypeOf((*NotAuthenticated)(nil)).Elem() -} - -type NotAuthenticatedFault NotAuthenticated - -func init() { - t["NotAuthenticatedFault"] = reflect.TypeOf((*NotAuthenticatedFault)(nil)).Elem() -} - -type NotEnoughCpus struct { - VirtualHardwareCompatibilityIssue - - NumCpuDest int32 `xml:"numCpuDest"` - NumCpuVm int32 `xml:"numCpuVm"` -} - -func init() { - t["NotEnoughCpus"] = reflect.TypeOf((*NotEnoughCpus)(nil)).Elem() -} - -type NotEnoughCpusFault BaseNotEnoughCpus - -func init() { - t["NotEnoughCpusFault"] = reflect.TypeOf((*NotEnoughCpusFault)(nil)).Elem() -} - -type NotEnoughLicenses struct { - RuntimeFault -} - -func init() { - t["NotEnoughLicenses"] = reflect.TypeOf((*NotEnoughLicenses)(nil)).Elem() -} - -type NotEnoughLicensesFault BaseNotEnoughLicenses - -func init() { - t["NotEnoughLicensesFault"] = reflect.TypeOf((*NotEnoughLicensesFault)(nil)).Elem() -} - -type NotEnoughLogicalCpus struct { - NotEnoughCpus - - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["NotEnoughLogicalCpus"] = reflect.TypeOf((*NotEnoughLogicalCpus)(nil)).Elem() -} - -type NotEnoughLogicalCpusFault NotEnoughLogicalCpus - -func init() { - t["NotEnoughLogicalCpusFault"] = reflect.TypeOf((*NotEnoughLogicalCpusFault)(nil)).Elem() -} - -type NotEnoughResourcesToStartVmEvent struct { - VmEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["NotEnoughResourcesToStartVmEvent"] = reflect.TypeOf((*NotEnoughResourcesToStartVmEvent)(nil)).Elem() -} - -type NotFound struct { - VimFault -} - -func init() { - t["NotFound"] = reflect.TypeOf((*NotFound)(nil)).Elem() -} - -type NotFoundFault NotFound - -func init() { - t["NotFoundFault"] = reflect.TypeOf((*NotFoundFault)(nil)).Elem() -} - -type NotImplemented struct { - RuntimeFault -} - -func init() { - t["NotImplemented"] = reflect.TypeOf((*NotImplemented)(nil)).Elem() -} - -type NotImplementedFault NotImplemented - -func init() { - t["NotImplementedFault"] = reflect.TypeOf((*NotImplementedFault)(nil)).Elem() -} - -type NotSupported struct { - RuntimeFault -} - -func init() { - t["NotSupported"] = reflect.TypeOf((*NotSupported)(nil)).Elem() -} - -type NotSupportedDeviceForFT struct { - VmFaultToleranceIssue - - Host ManagedObjectReference `xml:"host"` - HostName string `xml:"hostName,omitempty"` - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName,omitempty"` - DeviceType string `xml:"deviceType"` - DeviceLabel string `xml:"deviceLabel,omitempty"` -} - -func init() { - t["NotSupportedDeviceForFT"] = reflect.TypeOf((*NotSupportedDeviceForFT)(nil)).Elem() -} - -type NotSupportedDeviceForFTFault NotSupportedDeviceForFT - -func init() { - t["NotSupportedDeviceForFTFault"] = reflect.TypeOf((*NotSupportedDeviceForFTFault)(nil)).Elem() -} - -type NotSupportedFault BaseNotSupported - -func init() { - t["NotSupportedFault"] = reflect.TypeOf((*NotSupportedFault)(nil)).Elem() -} - -type NotSupportedHost struct { - HostConnectFault - - ProductName string `xml:"productName,omitempty"` - ProductVersion string `xml:"productVersion,omitempty"` -} - -func init() { - t["NotSupportedHost"] = reflect.TypeOf((*NotSupportedHost)(nil)).Elem() -} - -type NotSupportedHostFault BaseNotSupportedHost - -func init() { - t["NotSupportedHostFault"] = reflect.TypeOf((*NotSupportedHostFault)(nil)).Elem() -} - -type NotSupportedHostForChecksum struct { - VimFault -} - -func init() { - t["NotSupportedHostForChecksum"] = reflect.TypeOf((*NotSupportedHostForChecksum)(nil)).Elem() -} - -type NotSupportedHostForChecksumFault NotSupportedHostForChecksum - -func init() { - t["NotSupportedHostForChecksumFault"] = reflect.TypeOf((*NotSupportedHostForChecksumFault)(nil)).Elem() -} - -type NotSupportedHostForVFlash struct { - NotSupportedHost - - HostName string `xml:"hostName"` -} - -func init() { - t["NotSupportedHostForVFlash"] = reflect.TypeOf((*NotSupportedHostForVFlash)(nil)).Elem() -} - -type NotSupportedHostForVFlashFault NotSupportedHostForVFlash - -func init() { - t["NotSupportedHostForVFlashFault"] = reflect.TypeOf((*NotSupportedHostForVFlashFault)(nil)).Elem() -} - -type NotSupportedHostForVmcp struct { - NotSupportedHost - - HostName string `xml:"hostName"` -} - -func init() { - t["NotSupportedHostForVmcp"] = reflect.TypeOf((*NotSupportedHostForVmcp)(nil)).Elem() -} - -type NotSupportedHostForVmcpFault NotSupportedHostForVmcp - -func init() { - t["NotSupportedHostForVmcpFault"] = reflect.TypeOf((*NotSupportedHostForVmcpFault)(nil)).Elem() -} - -type NotSupportedHostForVmemFile struct { - NotSupportedHost - - HostName string `xml:"hostName"` -} - -func init() { - t["NotSupportedHostForVmemFile"] = reflect.TypeOf((*NotSupportedHostForVmemFile)(nil)).Elem() -} - -type NotSupportedHostForVmemFileFault NotSupportedHostForVmemFile - -func init() { - t["NotSupportedHostForVmemFileFault"] = reflect.TypeOf((*NotSupportedHostForVmemFileFault)(nil)).Elem() -} - -type NotSupportedHostForVsan struct { - NotSupportedHost - - HostName string `xml:"hostName"` -} - -func init() { - t["NotSupportedHostForVsan"] = reflect.TypeOf((*NotSupportedHostForVsan)(nil)).Elem() -} - -type NotSupportedHostForVsanFault NotSupportedHostForVsan - -func init() { - t["NotSupportedHostForVsanFault"] = reflect.TypeOf((*NotSupportedHostForVsanFault)(nil)).Elem() -} - -type NotSupportedHostInCluster struct { - NotSupportedHost -} - -func init() { - t["NotSupportedHostInCluster"] = reflect.TypeOf((*NotSupportedHostInCluster)(nil)).Elem() -} - -type NotSupportedHostInClusterFault BaseNotSupportedHostInCluster - -func init() { - t["NotSupportedHostInClusterFault"] = reflect.TypeOf((*NotSupportedHostInClusterFault)(nil)).Elem() -} - -type NotSupportedHostInDvs struct { - NotSupportedHost - - SwitchProductSpec DistributedVirtualSwitchProductSpec `xml:"switchProductSpec"` -} - -func init() { - t["NotSupportedHostInDvs"] = reflect.TypeOf((*NotSupportedHostInDvs)(nil)).Elem() -} - -type NotSupportedHostInDvsFault NotSupportedHostInDvs - -func init() { - t["NotSupportedHostInDvsFault"] = reflect.TypeOf((*NotSupportedHostInDvsFault)(nil)).Elem() -} - -type NotSupportedHostInHACluster struct { - NotSupportedHost - - HostName string `xml:"hostName"` - Build string `xml:"build"` -} - -func init() { - t["NotSupportedHostInHACluster"] = reflect.TypeOf((*NotSupportedHostInHACluster)(nil)).Elem() -} - -type NotSupportedHostInHAClusterFault NotSupportedHostInHACluster - -func init() { - t["NotSupportedHostInHAClusterFault"] = reflect.TypeOf((*NotSupportedHostInHAClusterFault)(nil)).Elem() -} - -type NotUserConfigurableProperty struct { - VAppPropertyFault -} - -func init() { - t["NotUserConfigurableProperty"] = reflect.TypeOf((*NotUserConfigurableProperty)(nil)).Elem() -} - -type NotUserConfigurablePropertyFault NotUserConfigurableProperty - -func init() { - t["NotUserConfigurablePropertyFault"] = reflect.TypeOf((*NotUserConfigurablePropertyFault)(nil)).Elem() -} - -type NumPortsProfile struct { - ApplyProfile -} - -func init() { - t["NumPortsProfile"] = reflect.TypeOf((*NumPortsProfile)(nil)).Elem() -} - -type NumVirtualCoresPerSocketNotSupported struct { - VirtualHardwareCompatibilityIssue - - MaxSupportedCoresPerSocketDest int32 `xml:"maxSupportedCoresPerSocketDest"` - NumCoresPerSocketVm int32 `xml:"numCoresPerSocketVm"` -} - -func init() { - t["NumVirtualCoresPerSocketNotSupported"] = reflect.TypeOf((*NumVirtualCoresPerSocketNotSupported)(nil)).Elem() -} - -type NumVirtualCoresPerSocketNotSupportedFault NumVirtualCoresPerSocketNotSupported - -func init() { - t["NumVirtualCoresPerSocketNotSupportedFault"] = reflect.TypeOf((*NumVirtualCoresPerSocketNotSupportedFault)(nil)).Elem() -} - -type NumVirtualCpusExceedsLimit struct { - InsufficientResourcesFault - - MaxSupportedVcpus int32 `xml:"maxSupportedVcpus"` -} - -func init() { - t["NumVirtualCpusExceedsLimit"] = reflect.TypeOf((*NumVirtualCpusExceedsLimit)(nil)).Elem() -} - -type NumVirtualCpusExceedsLimitFault NumVirtualCpusExceedsLimit - -func init() { - t["NumVirtualCpusExceedsLimitFault"] = reflect.TypeOf((*NumVirtualCpusExceedsLimitFault)(nil)).Elem() -} - -type NumVirtualCpusIncompatible struct { - VmConfigFault - - Reason string `xml:"reason"` - NumCpu int32 `xml:"numCpu"` -} - -func init() { - t["NumVirtualCpusIncompatible"] = reflect.TypeOf((*NumVirtualCpusIncompatible)(nil)).Elem() -} - -type NumVirtualCpusIncompatibleFault NumVirtualCpusIncompatible - -func init() { - t["NumVirtualCpusIncompatibleFault"] = reflect.TypeOf((*NumVirtualCpusIncompatibleFault)(nil)).Elem() -} - -type NumVirtualCpusNotSupported struct { - VirtualHardwareCompatibilityIssue - - MaxSupportedVcpusDest int32 `xml:"maxSupportedVcpusDest"` - NumCpuVm int32 `xml:"numCpuVm"` -} - -func init() { - t["NumVirtualCpusNotSupported"] = reflect.TypeOf((*NumVirtualCpusNotSupported)(nil)).Elem() -} - -type NumVirtualCpusNotSupportedFault NumVirtualCpusNotSupported - -func init() { - t["NumVirtualCpusNotSupportedFault"] = reflect.TypeOf((*NumVirtualCpusNotSupportedFault)(nil)).Elem() -} - -type NumericRange struct { - DynamicData - - Start int32 `xml:"start"` - End int32 `xml:"end"` -} - -func init() { - t["NumericRange"] = reflect.TypeOf((*NumericRange)(nil)).Elem() -} - -type ObjectContent struct { - DynamicData - - Obj ManagedObjectReference `xml:"obj"` - PropSet []DynamicProperty `xml:"propSet,omitempty"` - MissingSet []MissingProperty `xml:"missingSet,omitempty"` -} - -func init() { - t["ObjectContent"] = reflect.TypeOf((*ObjectContent)(nil)).Elem() -} - -type ObjectSpec struct { - DynamicData - - Obj ManagedObjectReference `xml:"obj"` - Skip *bool `xml:"skip"` - SelectSet []BaseSelectionSpec `xml:"selectSet,omitempty,typeattr"` -} - -func init() { - t["ObjectSpec"] = reflect.TypeOf((*ObjectSpec)(nil)).Elem() -} - -type ObjectUpdate struct { - DynamicData - - Kind ObjectUpdateKind `xml:"kind"` - Obj ManagedObjectReference `xml:"obj"` - ChangeSet []PropertyChange `xml:"changeSet,omitempty"` - MissingSet []MissingProperty `xml:"missingSet,omitempty"` -} - -func init() { - t["ObjectUpdate"] = reflect.TypeOf((*ObjectUpdate)(nil)).Elem() -} - -type OnceTaskScheduler struct { - TaskScheduler - - RunAt *time.Time `xml:"runAt"` -} - -func init() { - t["OnceTaskScheduler"] = reflect.TypeOf((*OnceTaskScheduler)(nil)).Elem() -} - -type OpaqueNetworkCapability struct { - DynamicData - - NetworkReservationSupported bool `xml:"networkReservationSupported"` -} - -func init() { - t["OpaqueNetworkCapability"] = reflect.TypeOf((*OpaqueNetworkCapability)(nil)).Elem() -} - -type OpaqueNetworkSummary struct { - NetworkSummary - - OpaqueNetworkId string `xml:"opaqueNetworkId"` - OpaqueNetworkType string `xml:"opaqueNetworkType"` -} - -func init() { - t["OpaqueNetworkSummary"] = reflect.TypeOf((*OpaqueNetworkSummary)(nil)).Elem() -} - -type OpaqueNetworkTargetInfo struct { - VirtualMachineTargetInfo - - Network OpaqueNetworkSummary `xml:"network"` - NetworkReservationSupported *bool `xml:"networkReservationSupported"` -} - -func init() { - t["OpaqueNetworkTargetInfo"] = reflect.TypeOf((*OpaqueNetworkTargetInfo)(nil)).Elem() -} - -type OpenInventoryViewFolder OpenInventoryViewFolderRequestType - -func init() { - t["OpenInventoryViewFolder"] = reflect.TypeOf((*OpenInventoryViewFolder)(nil)).Elem() -} - -type OpenInventoryViewFolderRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity []ManagedObjectReference `xml:"entity"` -} - -func init() { - t["OpenInventoryViewFolderRequestType"] = reflect.TypeOf((*OpenInventoryViewFolderRequestType)(nil)).Elem() -} - -type OpenInventoryViewFolderResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type OperationDisabledByGuest struct { - GuestOperationsFault -} - -func init() { - t["OperationDisabledByGuest"] = reflect.TypeOf((*OperationDisabledByGuest)(nil)).Elem() -} - -type OperationDisabledByGuestFault OperationDisabledByGuest - -func init() { - t["OperationDisabledByGuestFault"] = reflect.TypeOf((*OperationDisabledByGuestFault)(nil)).Elem() -} - -type OperationDisallowedOnHost struct { - RuntimeFault -} - -func init() { - t["OperationDisallowedOnHost"] = reflect.TypeOf((*OperationDisallowedOnHost)(nil)).Elem() -} - -type OperationDisallowedOnHostFault OperationDisallowedOnHost - -func init() { - t["OperationDisallowedOnHostFault"] = reflect.TypeOf((*OperationDisallowedOnHostFault)(nil)).Elem() -} - -type OperationNotSupportedByGuest struct { - GuestOperationsFault -} - -func init() { - t["OperationNotSupportedByGuest"] = reflect.TypeOf((*OperationNotSupportedByGuest)(nil)).Elem() -} - -type OperationNotSupportedByGuestFault OperationNotSupportedByGuest - -func init() { - t["OperationNotSupportedByGuestFault"] = reflect.TypeOf((*OperationNotSupportedByGuestFault)(nil)).Elem() -} - -type OptionDef struct { - ElementDescription - - OptionType BaseOptionType `xml:"optionType,typeattr"` -} - -func init() { - t["OptionDef"] = reflect.TypeOf((*OptionDef)(nil)).Elem() -} - -type OptionProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["OptionProfile"] = reflect.TypeOf((*OptionProfile)(nil)).Elem() -} - -type OptionType struct { - DynamicData - - ValueIsReadonly *bool `xml:"valueIsReadonly"` -} - -func init() { - t["OptionType"] = reflect.TypeOf((*OptionType)(nil)).Elem() -} - -type OptionValue struct { - DynamicData - - Key string `xml:"key"` - Value AnyType `xml:"value,typeattr"` -} - -func init() { - t["OptionValue"] = reflect.TypeOf((*OptionValue)(nil)).Elem() -} - -type OrAlarmExpression struct { - AlarmExpression - - Expression []BaseAlarmExpression `xml:"expression,typeattr"` -} - -func init() { - t["OrAlarmExpression"] = reflect.TypeOf((*OrAlarmExpression)(nil)).Elem() -} - -type OutOfBounds struct { - VimFault - - ArgumentName string `xml:"argumentName"` -} - -func init() { - t["OutOfBounds"] = reflect.TypeOf((*OutOfBounds)(nil)).Elem() -} - -type OutOfBoundsFault OutOfBounds - -func init() { - t["OutOfBoundsFault"] = reflect.TypeOf((*OutOfBoundsFault)(nil)).Elem() -} - -type OutOfSyncDvsHost struct { - DvsEvent - - HostOutOfSync []DvsOutOfSyncHostArgument `xml:"hostOutOfSync"` -} - -func init() { - t["OutOfSyncDvsHost"] = reflect.TypeOf((*OutOfSyncDvsHost)(nil)).Elem() -} - -type OverwriteCustomizationSpec OverwriteCustomizationSpecRequestType - -func init() { - t["OverwriteCustomizationSpec"] = reflect.TypeOf((*OverwriteCustomizationSpec)(nil)).Elem() -} - -type OverwriteCustomizationSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Item CustomizationSpecItem `xml:"item"` -} - -func init() { - t["OverwriteCustomizationSpecRequestType"] = reflect.TypeOf((*OverwriteCustomizationSpecRequestType)(nil)).Elem() -} - -type OverwriteCustomizationSpecResponse struct { -} - -type OvfAttribute struct { - OvfInvalidPackage - - ElementName string `xml:"elementName"` - AttributeName string `xml:"attributeName"` -} - -func init() { - t["OvfAttribute"] = reflect.TypeOf((*OvfAttribute)(nil)).Elem() -} - -type OvfAttributeFault BaseOvfAttribute - -func init() { - t["OvfAttributeFault"] = reflect.TypeOf((*OvfAttributeFault)(nil)).Elem() -} - -type OvfConnectedDevice struct { - OvfHardwareExport -} - -func init() { - t["OvfConnectedDevice"] = reflect.TypeOf((*OvfConnectedDevice)(nil)).Elem() -} - -type OvfConnectedDeviceFault BaseOvfConnectedDevice - -func init() { - t["OvfConnectedDeviceFault"] = reflect.TypeOf((*OvfConnectedDeviceFault)(nil)).Elem() -} - -type OvfConnectedDeviceFloppy struct { - OvfConnectedDevice - - Filename string `xml:"filename"` -} - -func init() { - t["OvfConnectedDeviceFloppy"] = reflect.TypeOf((*OvfConnectedDeviceFloppy)(nil)).Elem() -} - -type OvfConnectedDeviceFloppyFault OvfConnectedDeviceFloppy - -func init() { - t["OvfConnectedDeviceFloppyFault"] = reflect.TypeOf((*OvfConnectedDeviceFloppyFault)(nil)).Elem() -} - -type OvfConnectedDeviceIso struct { - OvfConnectedDevice - - Filename string `xml:"filename"` -} - -func init() { - t["OvfConnectedDeviceIso"] = reflect.TypeOf((*OvfConnectedDeviceIso)(nil)).Elem() -} - -type OvfConnectedDeviceIsoFault OvfConnectedDeviceIso - -func init() { - t["OvfConnectedDeviceIsoFault"] = reflect.TypeOf((*OvfConnectedDeviceIsoFault)(nil)).Elem() -} - -type OvfConstraint struct { - OvfInvalidPackage - - Name string `xml:"name"` -} - -func init() { - t["OvfConstraint"] = reflect.TypeOf((*OvfConstraint)(nil)).Elem() -} - -type OvfConstraintFault BaseOvfConstraint - -func init() { - t["OvfConstraintFault"] = reflect.TypeOf((*OvfConstraintFault)(nil)).Elem() -} - -type OvfConsumerCallbackFault struct { - OvfFault - - ExtensionKey string `xml:"extensionKey"` - ExtensionName string `xml:"extensionName"` -} - -func init() { - t["OvfConsumerCallbackFault"] = reflect.TypeOf((*OvfConsumerCallbackFault)(nil)).Elem() -} - -type OvfConsumerCallbackFaultFault BaseOvfConsumerCallbackFault - -func init() { - t["OvfConsumerCallbackFaultFault"] = reflect.TypeOf((*OvfConsumerCallbackFaultFault)(nil)).Elem() -} - -type OvfConsumerCommunicationError struct { - OvfConsumerCallbackFault - - Description string `xml:"description"` -} - -func init() { - t["OvfConsumerCommunicationError"] = reflect.TypeOf((*OvfConsumerCommunicationError)(nil)).Elem() -} - -type OvfConsumerCommunicationErrorFault OvfConsumerCommunicationError - -func init() { - t["OvfConsumerCommunicationErrorFault"] = reflect.TypeOf((*OvfConsumerCommunicationErrorFault)(nil)).Elem() -} - -type OvfConsumerFault struct { - OvfConsumerCallbackFault - - ErrorKey string `xml:"errorKey"` - Message string `xml:"message"` - Params []KeyValue `xml:"params,omitempty"` -} - -func init() { - t["OvfConsumerFault"] = reflect.TypeOf((*OvfConsumerFault)(nil)).Elem() -} - -type OvfConsumerFaultFault OvfConsumerFault - -func init() { - t["OvfConsumerFaultFault"] = reflect.TypeOf((*OvfConsumerFaultFault)(nil)).Elem() -} - -type OvfConsumerInvalidSection struct { - OvfConsumerCallbackFault - - LineNumber int32 `xml:"lineNumber"` - Description string `xml:"description"` -} - -func init() { - t["OvfConsumerInvalidSection"] = reflect.TypeOf((*OvfConsumerInvalidSection)(nil)).Elem() -} - -type OvfConsumerInvalidSectionFault OvfConsumerInvalidSection - -func init() { - t["OvfConsumerInvalidSectionFault"] = reflect.TypeOf((*OvfConsumerInvalidSectionFault)(nil)).Elem() -} - -type OvfConsumerOstNode struct { - DynamicData - - Id string `xml:"id"` - Type string `xml:"type"` - Section []OvfConsumerOvfSection `xml:"section,omitempty"` - Child []OvfConsumerOstNode `xml:"child,omitempty"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["OvfConsumerOstNode"] = reflect.TypeOf((*OvfConsumerOstNode)(nil)).Elem() -} - -type OvfConsumerOvfSection struct { - DynamicData - - LineNumber int32 `xml:"lineNumber"` - Xml string `xml:"xml"` -} - -func init() { - t["OvfConsumerOvfSection"] = reflect.TypeOf((*OvfConsumerOvfSection)(nil)).Elem() -} - -type OvfConsumerPowerOnFault struct { - InvalidState - - ExtensionKey string `xml:"extensionKey"` - ExtensionName string `xml:"extensionName"` - Description string `xml:"description"` -} - -func init() { - t["OvfConsumerPowerOnFault"] = reflect.TypeOf((*OvfConsumerPowerOnFault)(nil)).Elem() -} - -type OvfConsumerPowerOnFaultFault OvfConsumerPowerOnFault - -func init() { - t["OvfConsumerPowerOnFaultFault"] = reflect.TypeOf((*OvfConsumerPowerOnFaultFault)(nil)).Elem() -} - -type OvfConsumerUndeclaredSection struct { - OvfConsumerCallbackFault - - QualifiedSectionType string `xml:"qualifiedSectionType"` -} - -func init() { - t["OvfConsumerUndeclaredSection"] = reflect.TypeOf((*OvfConsumerUndeclaredSection)(nil)).Elem() -} - -type OvfConsumerUndeclaredSectionFault OvfConsumerUndeclaredSection - -func init() { - t["OvfConsumerUndeclaredSectionFault"] = reflect.TypeOf((*OvfConsumerUndeclaredSectionFault)(nil)).Elem() -} - -type OvfConsumerUndefinedPrefix struct { - OvfConsumerCallbackFault - - Prefix string `xml:"prefix"` -} - -func init() { - t["OvfConsumerUndefinedPrefix"] = reflect.TypeOf((*OvfConsumerUndefinedPrefix)(nil)).Elem() -} - -type OvfConsumerUndefinedPrefixFault OvfConsumerUndefinedPrefix - -func init() { - t["OvfConsumerUndefinedPrefixFault"] = reflect.TypeOf((*OvfConsumerUndefinedPrefixFault)(nil)).Elem() -} - -type OvfConsumerValidationFault struct { - VmConfigFault - - ExtensionKey string `xml:"extensionKey"` - ExtensionName string `xml:"extensionName"` - Message string `xml:"message"` -} - -func init() { - t["OvfConsumerValidationFault"] = reflect.TypeOf((*OvfConsumerValidationFault)(nil)).Elem() -} - -type OvfConsumerValidationFaultFault OvfConsumerValidationFault - -func init() { - t["OvfConsumerValidationFaultFault"] = reflect.TypeOf((*OvfConsumerValidationFaultFault)(nil)).Elem() -} - -type OvfCpuCompatibility struct { - OvfImport - - RegisterName string `xml:"registerName"` - Level int32 `xml:"level"` - RegisterValue string `xml:"registerValue"` - DesiredRegisterValue string `xml:"desiredRegisterValue"` -} - -func init() { - t["OvfCpuCompatibility"] = reflect.TypeOf((*OvfCpuCompatibility)(nil)).Elem() -} - -type OvfCpuCompatibilityCheckNotSupported struct { - OvfImport -} - -func init() { - t["OvfCpuCompatibilityCheckNotSupported"] = reflect.TypeOf((*OvfCpuCompatibilityCheckNotSupported)(nil)).Elem() -} - -type OvfCpuCompatibilityCheckNotSupportedFault OvfCpuCompatibilityCheckNotSupported - -func init() { - t["OvfCpuCompatibilityCheckNotSupportedFault"] = reflect.TypeOf((*OvfCpuCompatibilityCheckNotSupportedFault)(nil)).Elem() -} - -type OvfCpuCompatibilityFault OvfCpuCompatibility - -func init() { - t["OvfCpuCompatibilityFault"] = reflect.TypeOf((*OvfCpuCompatibilityFault)(nil)).Elem() -} - -type OvfCreateDescriptorParams struct { - DynamicData - - OvfFiles []OvfFile `xml:"ovfFiles,omitempty"` - Name string `xml:"name,omitempty"` - Description string `xml:"description,omitempty"` - IncludeImageFiles *bool `xml:"includeImageFiles"` - ExportOption []string `xml:"exportOption,omitempty"` - Snapshot *ManagedObjectReference `xml:"snapshot,omitempty"` -} - -func init() { - t["OvfCreateDescriptorParams"] = reflect.TypeOf((*OvfCreateDescriptorParams)(nil)).Elem() -} - -type OvfCreateDescriptorResult struct { - DynamicData - - OvfDescriptor string `xml:"ovfDescriptor"` - Error []LocalizedMethodFault `xml:"error,omitempty"` - Warning []LocalizedMethodFault `xml:"warning,omitempty"` - IncludeImageFiles *bool `xml:"includeImageFiles"` -} - -func init() { - t["OvfCreateDescriptorResult"] = reflect.TypeOf((*OvfCreateDescriptorResult)(nil)).Elem() -} - -type OvfCreateImportSpecParams struct { - OvfManagerCommonParams - - EntityName string `xml:"entityName"` - HostSystem *ManagedObjectReference `xml:"hostSystem,omitempty"` - NetworkMapping []OvfNetworkMapping `xml:"networkMapping,omitempty"` - IpAllocationPolicy string `xml:"ipAllocationPolicy,omitempty"` - IpProtocol string `xml:"ipProtocol,omitempty"` - PropertyMapping []KeyValue `xml:"propertyMapping,omitempty"` - ResourceMapping []OvfResourceMap `xml:"resourceMapping,omitempty"` - DiskProvisioning string `xml:"diskProvisioning,omitempty"` - InstantiationOst *OvfConsumerOstNode `xml:"instantiationOst,omitempty"` -} - -func init() { - t["OvfCreateImportSpecParams"] = reflect.TypeOf((*OvfCreateImportSpecParams)(nil)).Elem() -} - -type OvfCreateImportSpecResult struct { - DynamicData - - ImportSpec BaseImportSpec `xml:"importSpec,omitempty,typeattr"` - FileItem []OvfFileItem `xml:"fileItem,omitempty"` - Warning []LocalizedMethodFault `xml:"warning,omitempty"` - Error []LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["OvfCreateImportSpecResult"] = reflect.TypeOf((*OvfCreateImportSpecResult)(nil)).Elem() -} - -type OvfDeploymentOption struct { - DynamicData - - Key string `xml:"key"` - Label string `xml:"label"` - Description string `xml:"description"` -} - -func init() { - t["OvfDeploymentOption"] = reflect.TypeOf((*OvfDeploymentOption)(nil)).Elem() -} - -type OvfDiskMappingNotFound struct { - OvfSystemFault - - DiskName string `xml:"diskName"` - VmName string `xml:"vmName"` -} - -func init() { - t["OvfDiskMappingNotFound"] = reflect.TypeOf((*OvfDiskMappingNotFound)(nil)).Elem() -} - -type OvfDiskMappingNotFoundFault OvfDiskMappingNotFound - -func init() { - t["OvfDiskMappingNotFoundFault"] = reflect.TypeOf((*OvfDiskMappingNotFoundFault)(nil)).Elem() -} - -type OvfDiskOrderConstraint struct { - OvfConstraint -} - -func init() { - t["OvfDiskOrderConstraint"] = reflect.TypeOf((*OvfDiskOrderConstraint)(nil)).Elem() -} - -type OvfDiskOrderConstraintFault OvfDiskOrderConstraint - -func init() { - t["OvfDiskOrderConstraintFault"] = reflect.TypeOf((*OvfDiskOrderConstraintFault)(nil)).Elem() -} - -type OvfDuplicateElement struct { - OvfElement -} - -func init() { - t["OvfDuplicateElement"] = reflect.TypeOf((*OvfDuplicateElement)(nil)).Elem() -} - -type OvfDuplicateElementFault OvfDuplicateElement - -func init() { - t["OvfDuplicateElementFault"] = reflect.TypeOf((*OvfDuplicateElementFault)(nil)).Elem() -} - -type OvfDuplicatedElementBoundary struct { - OvfElement - - Boundary string `xml:"boundary"` -} - -func init() { - t["OvfDuplicatedElementBoundary"] = reflect.TypeOf((*OvfDuplicatedElementBoundary)(nil)).Elem() -} - -type OvfDuplicatedElementBoundaryFault OvfDuplicatedElementBoundary - -func init() { - t["OvfDuplicatedElementBoundaryFault"] = reflect.TypeOf((*OvfDuplicatedElementBoundaryFault)(nil)).Elem() -} - -type OvfDuplicatedPropertyIdExport struct { - OvfExport - - Fqid string `xml:"fqid"` -} - -func init() { - t["OvfDuplicatedPropertyIdExport"] = reflect.TypeOf((*OvfDuplicatedPropertyIdExport)(nil)).Elem() -} - -type OvfDuplicatedPropertyIdExportFault OvfDuplicatedPropertyIdExport - -func init() { - t["OvfDuplicatedPropertyIdExportFault"] = reflect.TypeOf((*OvfDuplicatedPropertyIdExportFault)(nil)).Elem() -} - -type OvfDuplicatedPropertyIdImport struct { - OvfExport -} - -func init() { - t["OvfDuplicatedPropertyIdImport"] = reflect.TypeOf((*OvfDuplicatedPropertyIdImport)(nil)).Elem() -} - -type OvfDuplicatedPropertyIdImportFault OvfDuplicatedPropertyIdImport - -func init() { - t["OvfDuplicatedPropertyIdImportFault"] = reflect.TypeOf((*OvfDuplicatedPropertyIdImportFault)(nil)).Elem() -} - -type OvfElement struct { - OvfInvalidPackage - - Name string `xml:"name"` -} - -func init() { - t["OvfElement"] = reflect.TypeOf((*OvfElement)(nil)).Elem() -} - -type OvfElementFault BaseOvfElement - -func init() { - t["OvfElementFault"] = reflect.TypeOf((*OvfElementFault)(nil)).Elem() -} - -type OvfElementInvalidValue struct { - OvfElement - - Value string `xml:"value"` -} - -func init() { - t["OvfElementInvalidValue"] = reflect.TypeOf((*OvfElementInvalidValue)(nil)).Elem() -} - -type OvfElementInvalidValueFault OvfElementInvalidValue - -func init() { - t["OvfElementInvalidValueFault"] = reflect.TypeOf((*OvfElementInvalidValueFault)(nil)).Elem() -} - -type OvfExport struct { - OvfFault -} - -func init() { - t["OvfExport"] = reflect.TypeOf((*OvfExport)(nil)).Elem() -} - -type OvfExportFailed struct { - OvfExport -} - -func init() { - t["OvfExportFailed"] = reflect.TypeOf((*OvfExportFailed)(nil)).Elem() -} - -type OvfExportFailedFault OvfExportFailed - -func init() { - t["OvfExportFailedFault"] = reflect.TypeOf((*OvfExportFailedFault)(nil)).Elem() -} - -type OvfExportFault BaseOvfExport - -func init() { - t["OvfExportFault"] = reflect.TypeOf((*OvfExportFault)(nil)).Elem() -} - -type OvfFault struct { - VimFault -} - -func init() { - t["OvfFault"] = reflect.TypeOf((*OvfFault)(nil)).Elem() -} - -type OvfFaultFault BaseOvfFault - -func init() { - t["OvfFaultFault"] = reflect.TypeOf((*OvfFaultFault)(nil)).Elem() -} - -type OvfFile struct { - DynamicData - - DeviceId string `xml:"deviceId"` - Path string `xml:"path"` - CompressionMethod string `xml:"compressionMethod,omitempty"` - ChunkSize int64 `xml:"chunkSize,omitempty"` - Size int64 `xml:"size"` - Capacity int64 `xml:"capacity,omitempty"` - PopulatedSize int64 `xml:"populatedSize,omitempty"` -} - -func init() { - t["OvfFile"] = reflect.TypeOf((*OvfFile)(nil)).Elem() -} - -type OvfFileItem struct { - DynamicData - - DeviceId string `xml:"deviceId"` - Path string `xml:"path"` - CompressionMethod string `xml:"compressionMethod,omitempty"` - ChunkSize int64 `xml:"chunkSize,omitempty"` - Size int64 `xml:"size,omitempty"` - CimType int32 `xml:"cimType"` - Create bool `xml:"create"` -} - -func init() { - t["OvfFileItem"] = reflect.TypeOf((*OvfFileItem)(nil)).Elem() -} - -type OvfHardwareCheck struct { - OvfImport -} - -func init() { - t["OvfHardwareCheck"] = reflect.TypeOf((*OvfHardwareCheck)(nil)).Elem() -} - -type OvfHardwareCheckFault OvfHardwareCheck - -func init() { - t["OvfHardwareCheckFault"] = reflect.TypeOf((*OvfHardwareCheckFault)(nil)).Elem() -} - -type OvfHardwareExport struct { - OvfExport - - Device BaseVirtualDevice `xml:"device,omitempty,typeattr"` - VmPath string `xml:"vmPath"` -} - -func init() { - t["OvfHardwareExport"] = reflect.TypeOf((*OvfHardwareExport)(nil)).Elem() -} - -type OvfHardwareExportFault BaseOvfHardwareExport - -func init() { - t["OvfHardwareExportFault"] = reflect.TypeOf((*OvfHardwareExportFault)(nil)).Elem() -} - -type OvfHostResourceConstraint struct { - OvfConstraint - - Value string `xml:"value"` -} - -func init() { - t["OvfHostResourceConstraint"] = reflect.TypeOf((*OvfHostResourceConstraint)(nil)).Elem() -} - -type OvfHostResourceConstraintFault OvfHostResourceConstraint - -func init() { - t["OvfHostResourceConstraintFault"] = reflect.TypeOf((*OvfHostResourceConstraintFault)(nil)).Elem() -} - -type OvfHostValueNotParsed struct { - OvfSystemFault - - Property string `xml:"property"` - Value string `xml:"value"` -} - -func init() { - t["OvfHostValueNotParsed"] = reflect.TypeOf((*OvfHostValueNotParsed)(nil)).Elem() -} - -type OvfHostValueNotParsedFault OvfHostValueNotParsed - -func init() { - t["OvfHostValueNotParsedFault"] = reflect.TypeOf((*OvfHostValueNotParsedFault)(nil)).Elem() -} - -type OvfImport struct { - OvfFault -} - -func init() { - t["OvfImport"] = reflect.TypeOf((*OvfImport)(nil)).Elem() -} - -type OvfImportFailed struct { - OvfImport -} - -func init() { - t["OvfImportFailed"] = reflect.TypeOf((*OvfImportFailed)(nil)).Elem() -} - -type OvfImportFailedFault OvfImportFailed - -func init() { - t["OvfImportFailedFault"] = reflect.TypeOf((*OvfImportFailedFault)(nil)).Elem() -} - -type OvfImportFault BaseOvfImport - -func init() { - t["OvfImportFault"] = reflect.TypeOf((*OvfImportFault)(nil)).Elem() -} - -type OvfInternalError struct { - OvfSystemFault -} - -func init() { - t["OvfInternalError"] = reflect.TypeOf((*OvfInternalError)(nil)).Elem() -} - -type OvfInternalErrorFault OvfInternalError - -func init() { - t["OvfInternalErrorFault"] = reflect.TypeOf((*OvfInternalErrorFault)(nil)).Elem() -} - -type OvfInvalidPackage struct { - OvfFault - - LineNumber int32 `xml:"lineNumber"` -} - -func init() { - t["OvfInvalidPackage"] = reflect.TypeOf((*OvfInvalidPackage)(nil)).Elem() -} - -type OvfInvalidPackageFault BaseOvfInvalidPackage - -func init() { - t["OvfInvalidPackageFault"] = reflect.TypeOf((*OvfInvalidPackageFault)(nil)).Elem() -} - -type OvfInvalidValue struct { - OvfAttribute - - Value string `xml:"value"` -} - -func init() { - t["OvfInvalidValue"] = reflect.TypeOf((*OvfInvalidValue)(nil)).Elem() -} - -type OvfInvalidValueConfiguration struct { - OvfInvalidValue -} - -func init() { - t["OvfInvalidValueConfiguration"] = reflect.TypeOf((*OvfInvalidValueConfiguration)(nil)).Elem() -} - -type OvfInvalidValueConfigurationFault OvfInvalidValueConfiguration - -func init() { - t["OvfInvalidValueConfigurationFault"] = reflect.TypeOf((*OvfInvalidValueConfigurationFault)(nil)).Elem() -} - -type OvfInvalidValueEmpty struct { - OvfInvalidValue -} - -func init() { - t["OvfInvalidValueEmpty"] = reflect.TypeOf((*OvfInvalidValueEmpty)(nil)).Elem() -} - -type OvfInvalidValueEmptyFault OvfInvalidValueEmpty - -func init() { - t["OvfInvalidValueEmptyFault"] = reflect.TypeOf((*OvfInvalidValueEmptyFault)(nil)).Elem() -} - -type OvfInvalidValueFault BaseOvfInvalidValue - -func init() { - t["OvfInvalidValueFault"] = reflect.TypeOf((*OvfInvalidValueFault)(nil)).Elem() -} - -type OvfInvalidValueFormatMalformed struct { - OvfInvalidValue -} - -func init() { - t["OvfInvalidValueFormatMalformed"] = reflect.TypeOf((*OvfInvalidValueFormatMalformed)(nil)).Elem() -} - -type OvfInvalidValueFormatMalformedFault OvfInvalidValueFormatMalformed - -func init() { - t["OvfInvalidValueFormatMalformedFault"] = reflect.TypeOf((*OvfInvalidValueFormatMalformedFault)(nil)).Elem() -} - -type OvfInvalidValueReference struct { - OvfInvalidValue -} - -func init() { - t["OvfInvalidValueReference"] = reflect.TypeOf((*OvfInvalidValueReference)(nil)).Elem() -} - -type OvfInvalidValueReferenceFault OvfInvalidValueReference - -func init() { - t["OvfInvalidValueReferenceFault"] = reflect.TypeOf((*OvfInvalidValueReferenceFault)(nil)).Elem() -} - -type OvfInvalidVmName struct { - OvfUnsupportedPackage - - Name string `xml:"name"` -} - -func init() { - t["OvfInvalidVmName"] = reflect.TypeOf((*OvfInvalidVmName)(nil)).Elem() -} - -type OvfInvalidVmNameFault OvfInvalidVmName - -func init() { - t["OvfInvalidVmNameFault"] = reflect.TypeOf((*OvfInvalidVmNameFault)(nil)).Elem() -} - -type OvfManagerCommonParams struct { - DynamicData - - Locale string `xml:"locale"` - DeploymentOption string `xml:"deploymentOption"` - MsgBundle []KeyValue `xml:"msgBundle,omitempty"` - ImportOption []string `xml:"importOption,omitempty"` -} - -func init() { - t["OvfManagerCommonParams"] = reflect.TypeOf((*OvfManagerCommonParams)(nil)).Elem() -} - -type OvfMappedOsId struct { - OvfImport - - OvfId int32 `xml:"ovfId"` - OvfDescription string `xml:"ovfDescription"` - TargetDescription string `xml:"targetDescription"` -} - -func init() { - t["OvfMappedOsId"] = reflect.TypeOf((*OvfMappedOsId)(nil)).Elem() -} - -type OvfMappedOsIdFault OvfMappedOsId - -func init() { - t["OvfMappedOsIdFault"] = reflect.TypeOf((*OvfMappedOsIdFault)(nil)).Elem() -} - -type OvfMissingAttribute struct { - OvfAttribute -} - -func init() { - t["OvfMissingAttribute"] = reflect.TypeOf((*OvfMissingAttribute)(nil)).Elem() -} - -type OvfMissingAttributeFault OvfMissingAttribute - -func init() { - t["OvfMissingAttributeFault"] = reflect.TypeOf((*OvfMissingAttributeFault)(nil)).Elem() -} - -type OvfMissingElement struct { - OvfElement -} - -func init() { - t["OvfMissingElement"] = reflect.TypeOf((*OvfMissingElement)(nil)).Elem() -} - -type OvfMissingElementFault BaseOvfMissingElement - -func init() { - t["OvfMissingElementFault"] = reflect.TypeOf((*OvfMissingElementFault)(nil)).Elem() -} - -type OvfMissingElementNormalBoundary struct { - OvfMissingElement - - Boundary string `xml:"boundary"` -} - -func init() { - t["OvfMissingElementNormalBoundary"] = reflect.TypeOf((*OvfMissingElementNormalBoundary)(nil)).Elem() -} - -type OvfMissingElementNormalBoundaryFault OvfMissingElementNormalBoundary - -func init() { - t["OvfMissingElementNormalBoundaryFault"] = reflect.TypeOf((*OvfMissingElementNormalBoundaryFault)(nil)).Elem() -} - -type OvfMissingHardware struct { - OvfImport - - Name string `xml:"name"` - ResourceType int32 `xml:"resourceType"` -} - -func init() { - t["OvfMissingHardware"] = reflect.TypeOf((*OvfMissingHardware)(nil)).Elem() -} - -type OvfMissingHardwareFault OvfMissingHardware - -func init() { - t["OvfMissingHardwareFault"] = reflect.TypeOf((*OvfMissingHardwareFault)(nil)).Elem() -} - -type OvfNetworkInfo struct { - DynamicData - - Name string `xml:"name"` - Description string `xml:"description"` -} - -func init() { - t["OvfNetworkInfo"] = reflect.TypeOf((*OvfNetworkInfo)(nil)).Elem() -} - -type OvfNetworkMapping struct { - DynamicData - - Name string `xml:"name"` - Network ManagedObjectReference `xml:"network"` -} - -func init() { - t["OvfNetworkMapping"] = reflect.TypeOf((*OvfNetworkMapping)(nil)).Elem() -} - -type OvfNetworkMappingNotSupported struct { - OvfImport -} - -func init() { - t["OvfNetworkMappingNotSupported"] = reflect.TypeOf((*OvfNetworkMappingNotSupported)(nil)).Elem() -} - -type OvfNetworkMappingNotSupportedFault OvfNetworkMappingNotSupported - -func init() { - t["OvfNetworkMappingNotSupportedFault"] = reflect.TypeOf((*OvfNetworkMappingNotSupportedFault)(nil)).Elem() -} - -type OvfNoHostNic struct { - OvfUnsupportedPackage -} - -func init() { - t["OvfNoHostNic"] = reflect.TypeOf((*OvfNoHostNic)(nil)).Elem() -} - -type OvfNoHostNicFault OvfNoHostNic - -func init() { - t["OvfNoHostNicFault"] = reflect.TypeOf((*OvfNoHostNicFault)(nil)).Elem() -} - -type OvfNoSpaceOnController struct { - OvfUnsupportedElement - - Parent string `xml:"parent"` -} - -func init() { - t["OvfNoSpaceOnController"] = reflect.TypeOf((*OvfNoSpaceOnController)(nil)).Elem() -} - -type OvfNoSpaceOnControllerFault OvfNoSpaceOnController - -func init() { - t["OvfNoSpaceOnControllerFault"] = reflect.TypeOf((*OvfNoSpaceOnControllerFault)(nil)).Elem() -} - -type OvfNoSupportedHardwareFamily struct { - OvfUnsupportedPackage - - Version string `xml:"version"` -} - -func init() { - t["OvfNoSupportedHardwareFamily"] = reflect.TypeOf((*OvfNoSupportedHardwareFamily)(nil)).Elem() -} - -type OvfNoSupportedHardwareFamilyFault OvfNoSupportedHardwareFamily - -func init() { - t["OvfNoSupportedHardwareFamilyFault"] = reflect.TypeOf((*OvfNoSupportedHardwareFamilyFault)(nil)).Elem() -} - -type OvfOptionInfo struct { - DynamicData - - Option string `xml:"option"` - Description LocalizableMessage `xml:"description"` -} - -func init() { - t["OvfOptionInfo"] = reflect.TypeOf((*OvfOptionInfo)(nil)).Elem() -} - -type OvfParseDescriptorParams struct { - OvfManagerCommonParams -} - -func init() { - t["OvfParseDescriptorParams"] = reflect.TypeOf((*OvfParseDescriptorParams)(nil)).Elem() -} - -type OvfParseDescriptorResult struct { - DynamicData - - Eula []string `xml:"eula,omitempty"` - Network []OvfNetworkInfo `xml:"network,omitempty"` - IpAllocationScheme []string `xml:"ipAllocationScheme,omitempty"` - IpProtocols []string `xml:"ipProtocols,omitempty"` - Property []VAppPropertyInfo `xml:"property,omitempty"` - ProductInfo *VAppProductInfo `xml:"productInfo,omitempty"` - Annotation string `xml:"annotation"` - ApproximateDownloadSize int64 `xml:"approximateDownloadSize,omitempty"` - ApproximateFlatDeploymentSize int64 `xml:"approximateFlatDeploymentSize,omitempty"` - ApproximateSparseDeploymentSize int64 `xml:"approximateSparseDeploymentSize,omitempty"` - DefaultEntityName string `xml:"defaultEntityName"` - VirtualApp bool `xml:"virtualApp"` - DeploymentOption []OvfDeploymentOption `xml:"deploymentOption,omitempty"` - DefaultDeploymentOption string `xml:"defaultDeploymentOption"` - EntityName []KeyValue `xml:"entityName,omitempty"` - AnnotatedOst *OvfConsumerOstNode `xml:"annotatedOst,omitempty"` - Error []LocalizedMethodFault `xml:"error,omitempty"` - Warning []LocalizedMethodFault `xml:"warning,omitempty"` -} - -func init() { - t["OvfParseDescriptorResult"] = reflect.TypeOf((*OvfParseDescriptorResult)(nil)).Elem() -} - -type OvfProperty struct { - OvfInvalidPackage - - Type string `xml:"type"` - Value string `xml:"value"` -} - -func init() { - t["OvfProperty"] = reflect.TypeOf((*OvfProperty)(nil)).Elem() -} - -type OvfPropertyExport struct { - OvfExport - - Type string `xml:"type"` - Value string `xml:"value"` -} - -func init() { - t["OvfPropertyExport"] = reflect.TypeOf((*OvfPropertyExport)(nil)).Elem() -} - -type OvfPropertyExportFault OvfPropertyExport - -func init() { - t["OvfPropertyExportFault"] = reflect.TypeOf((*OvfPropertyExportFault)(nil)).Elem() -} - -type OvfPropertyFault BaseOvfProperty - -func init() { - t["OvfPropertyFault"] = reflect.TypeOf((*OvfPropertyFault)(nil)).Elem() -} - -type OvfPropertyNetwork struct { - OvfProperty -} - -func init() { - t["OvfPropertyNetwork"] = reflect.TypeOf((*OvfPropertyNetwork)(nil)).Elem() -} - -type OvfPropertyNetworkExport struct { - OvfExport - - Network string `xml:"network"` -} - -func init() { - t["OvfPropertyNetworkExport"] = reflect.TypeOf((*OvfPropertyNetworkExport)(nil)).Elem() -} - -type OvfPropertyNetworkExportFault OvfPropertyNetworkExport - -func init() { - t["OvfPropertyNetworkExportFault"] = reflect.TypeOf((*OvfPropertyNetworkExportFault)(nil)).Elem() -} - -type OvfPropertyNetworkFault OvfPropertyNetwork - -func init() { - t["OvfPropertyNetworkFault"] = reflect.TypeOf((*OvfPropertyNetworkFault)(nil)).Elem() -} - -type OvfPropertyQualifier struct { - OvfProperty - - Qualifier string `xml:"qualifier"` -} - -func init() { - t["OvfPropertyQualifier"] = reflect.TypeOf((*OvfPropertyQualifier)(nil)).Elem() -} - -type OvfPropertyQualifierDuplicate struct { - OvfProperty - - Qualifier string `xml:"qualifier"` -} - -func init() { - t["OvfPropertyQualifierDuplicate"] = reflect.TypeOf((*OvfPropertyQualifierDuplicate)(nil)).Elem() -} - -type OvfPropertyQualifierDuplicateFault OvfPropertyQualifierDuplicate - -func init() { - t["OvfPropertyQualifierDuplicateFault"] = reflect.TypeOf((*OvfPropertyQualifierDuplicateFault)(nil)).Elem() -} - -type OvfPropertyQualifierFault OvfPropertyQualifier - -func init() { - t["OvfPropertyQualifierFault"] = reflect.TypeOf((*OvfPropertyQualifierFault)(nil)).Elem() -} - -type OvfPropertyQualifierIgnored struct { - OvfProperty - - Qualifier string `xml:"qualifier"` -} - -func init() { - t["OvfPropertyQualifierIgnored"] = reflect.TypeOf((*OvfPropertyQualifierIgnored)(nil)).Elem() -} - -type OvfPropertyQualifierIgnoredFault OvfPropertyQualifierIgnored - -func init() { - t["OvfPropertyQualifierIgnoredFault"] = reflect.TypeOf((*OvfPropertyQualifierIgnoredFault)(nil)).Elem() -} - -type OvfPropertyType struct { - OvfProperty -} - -func init() { - t["OvfPropertyType"] = reflect.TypeOf((*OvfPropertyType)(nil)).Elem() -} - -type OvfPropertyTypeFault OvfPropertyType - -func init() { - t["OvfPropertyTypeFault"] = reflect.TypeOf((*OvfPropertyTypeFault)(nil)).Elem() -} - -type OvfPropertyValue struct { - OvfProperty -} - -func init() { - t["OvfPropertyValue"] = reflect.TypeOf((*OvfPropertyValue)(nil)).Elem() -} - -type OvfPropertyValueFault OvfPropertyValue - -func init() { - t["OvfPropertyValueFault"] = reflect.TypeOf((*OvfPropertyValueFault)(nil)).Elem() -} - -type OvfResourceMap struct { - DynamicData - - Source string `xml:"source"` - Parent *ManagedObjectReference `xml:"parent,omitempty"` - ResourceSpec *ResourceConfigSpec `xml:"resourceSpec,omitempty"` - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` -} - -func init() { - t["OvfResourceMap"] = reflect.TypeOf((*OvfResourceMap)(nil)).Elem() -} - -type OvfSystemFault struct { - OvfFault -} - -func init() { - t["OvfSystemFault"] = reflect.TypeOf((*OvfSystemFault)(nil)).Elem() -} - -type OvfSystemFaultFault BaseOvfSystemFault - -func init() { - t["OvfSystemFaultFault"] = reflect.TypeOf((*OvfSystemFaultFault)(nil)).Elem() -} - -type OvfToXmlUnsupportedElement struct { - OvfSystemFault - - Name string `xml:"name,omitempty"` -} - -func init() { - t["OvfToXmlUnsupportedElement"] = reflect.TypeOf((*OvfToXmlUnsupportedElement)(nil)).Elem() -} - -type OvfToXmlUnsupportedElementFault OvfToXmlUnsupportedElement - -func init() { - t["OvfToXmlUnsupportedElementFault"] = reflect.TypeOf((*OvfToXmlUnsupportedElementFault)(nil)).Elem() -} - -type OvfUnableToExportDisk struct { - OvfHardwareExport - - DiskName string `xml:"diskName"` -} - -func init() { - t["OvfUnableToExportDisk"] = reflect.TypeOf((*OvfUnableToExportDisk)(nil)).Elem() -} - -type OvfUnableToExportDiskFault OvfUnableToExportDisk - -func init() { - t["OvfUnableToExportDiskFault"] = reflect.TypeOf((*OvfUnableToExportDiskFault)(nil)).Elem() -} - -type OvfUnexpectedElement struct { - OvfElement -} - -func init() { - t["OvfUnexpectedElement"] = reflect.TypeOf((*OvfUnexpectedElement)(nil)).Elem() -} - -type OvfUnexpectedElementFault OvfUnexpectedElement - -func init() { - t["OvfUnexpectedElementFault"] = reflect.TypeOf((*OvfUnexpectedElementFault)(nil)).Elem() -} - -type OvfUnknownDevice struct { - OvfSystemFault - - Device BaseVirtualDevice `xml:"device,omitempty,typeattr"` - VmName string `xml:"vmName"` -} - -func init() { - t["OvfUnknownDevice"] = reflect.TypeOf((*OvfUnknownDevice)(nil)).Elem() -} - -type OvfUnknownDeviceBacking struct { - OvfHardwareExport - - Backing BaseVirtualDeviceBackingInfo `xml:"backing,typeattr"` -} - -func init() { - t["OvfUnknownDeviceBacking"] = reflect.TypeOf((*OvfUnknownDeviceBacking)(nil)).Elem() -} - -type OvfUnknownDeviceBackingFault OvfUnknownDeviceBacking - -func init() { - t["OvfUnknownDeviceBackingFault"] = reflect.TypeOf((*OvfUnknownDeviceBackingFault)(nil)).Elem() -} - -type OvfUnknownDeviceFault OvfUnknownDevice - -func init() { - t["OvfUnknownDeviceFault"] = reflect.TypeOf((*OvfUnknownDeviceFault)(nil)).Elem() -} - -type OvfUnknownEntity struct { - OvfSystemFault - - LineNumber int32 `xml:"lineNumber"` -} - -func init() { - t["OvfUnknownEntity"] = reflect.TypeOf((*OvfUnknownEntity)(nil)).Elem() -} - -type OvfUnknownEntityFault OvfUnknownEntity - -func init() { - t["OvfUnknownEntityFault"] = reflect.TypeOf((*OvfUnknownEntityFault)(nil)).Elem() -} - -type OvfUnsupportedAttribute struct { - OvfUnsupportedPackage - - ElementName string `xml:"elementName"` - AttributeName string `xml:"attributeName"` -} - -func init() { - t["OvfUnsupportedAttribute"] = reflect.TypeOf((*OvfUnsupportedAttribute)(nil)).Elem() -} - -type OvfUnsupportedAttributeFault BaseOvfUnsupportedAttribute - -func init() { - t["OvfUnsupportedAttributeFault"] = reflect.TypeOf((*OvfUnsupportedAttributeFault)(nil)).Elem() -} - -type OvfUnsupportedAttributeValue struct { - OvfUnsupportedAttribute - - Value string `xml:"value"` -} - -func init() { - t["OvfUnsupportedAttributeValue"] = reflect.TypeOf((*OvfUnsupportedAttributeValue)(nil)).Elem() -} - -type OvfUnsupportedAttributeValueFault OvfUnsupportedAttributeValue - -func init() { - t["OvfUnsupportedAttributeValueFault"] = reflect.TypeOf((*OvfUnsupportedAttributeValueFault)(nil)).Elem() -} - -type OvfUnsupportedDeviceBackingInfo struct { - OvfSystemFault - - ElementName string `xml:"elementName,omitempty"` - InstanceId string `xml:"instanceId,omitempty"` - DeviceName string `xml:"deviceName"` - BackingName string `xml:"backingName,omitempty"` -} - -func init() { - t["OvfUnsupportedDeviceBackingInfo"] = reflect.TypeOf((*OvfUnsupportedDeviceBackingInfo)(nil)).Elem() -} - -type OvfUnsupportedDeviceBackingInfoFault OvfUnsupportedDeviceBackingInfo - -func init() { - t["OvfUnsupportedDeviceBackingInfoFault"] = reflect.TypeOf((*OvfUnsupportedDeviceBackingInfoFault)(nil)).Elem() -} - -type OvfUnsupportedDeviceBackingOption struct { - OvfSystemFault - - ElementName string `xml:"elementName,omitempty"` - InstanceId string `xml:"instanceId,omitempty"` - DeviceName string `xml:"deviceName"` - BackingName string `xml:"backingName,omitempty"` -} - -func init() { - t["OvfUnsupportedDeviceBackingOption"] = reflect.TypeOf((*OvfUnsupportedDeviceBackingOption)(nil)).Elem() -} - -type OvfUnsupportedDeviceBackingOptionFault OvfUnsupportedDeviceBackingOption - -func init() { - t["OvfUnsupportedDeviceBackingOptionFault"] = reflect.TypeOf((*OvfUnsupportedDeviceBackingOptionFault)(nil)).Elem() -} - -type OvfUnsupportedDeviceExport struct { - OvfHardwareExport -} - -func init() { - t["OvfUnsupportedDeviceExport"] = reflect.TypeOf((*OvfUnsupportedDeviceExport)(nil)).Elem() -} - -type OvfUnsupportedDeviceExportFault OvfUnsupportedDeviceExport - -func init() { - t["OvfUnsupportedDeviceExportFault"] = reflect.TypeOf((*OvfUnsupportedDeviceExportFault)(nil)).Elem() -} - -type OvfUnsupportedDiskProvisioning struct { - OvfImport - - DiskProvisioning string `xml:"diskProvisioning"` - SupportedDiskProvisioning string `xml:"supportedDiskProvisioning"` -} - -func init() { - t["OvfUnsupportedDiskProvisioning"] = reflect.TypeOf((*OvfUnsupportedDiskProvisioning)(nil)).Elem() -} - -type OvfUnsupportedDiskProvisioningFault OvfUnsupportedDiskProvisioning - -func init() { - t["OvfUnsupportedDiskProvisioningFault"] = reflect.TypeOf((*OvfUnsupportedDiskProvisioningFault)(nil)).Elem() -} - -type OvfUnsupportedElement struct { - OvfUnsupportedPackage - - Name string `xml:"name"` -} - -func init() { - t["OvfUnsupportedElement"] = reflect.TypeOf((*OvfUnsupportedElement)(nil)).Elem() -} - -type OvfUnsupportedElementFault BaseOvfUnsupportedElement - -func init() { - t["OvfUnsupportedElementFault"] = reflect.TypeOf((*OvfUnsupportedElementFault)(nil)).Elem() -} - -type OvfUnsupportedElementValue struct { - OvfUnsupportedElement - - Value string `xml:"value"` -} - -func init() { - t["OvfUnsupportedElementValue"] = reflect.TypeOf((*OvfUnsupportedElementValue)(nil)).Elem() -} - -type OvfUnsupportedElementValueFault OvfUnsupportedElementValue - -func init() { - t["OvfUnsupportedElementValueFault"] = reflect.TypeOf((*OvfUnsupportedElementValueFault)(nil)).Elem() -} - -type OvfUnsupportedPackage struct { - OvfFault - - LineNumber int32 `xml:"lineNumber,omitempty"` -} - -func init() { - t["OvfUnsupportedPackage"] = reflect.TypeOf((*OvfUnsupportedPackage)(nil)).Elem() -} - -type OvfUnsupportedPackageFault BaseOvfUnsupportedPackage - -func init() { - t["OvfUnsupportedPackageFault"] = reflect.TypeOf((*OvfUnsupportedPackageFault)(nil)).Elem() -} - -type OvfUnsupportedSection struct { - OvfUnsupportedElement - - Info string `xml:"info"` -} - -func init() { - t["OvfUnsupportedSection"] = reflect.TypeOf((*OvfUnsupportedSection)(nil)).Elem() -} - -type OvfUnsupportedSectionFault OvfUnsupportedSection - -func init() { - t["OvfUnsupportedSectionFault"] = reflect.TypeOf((*OvfUnsupportedSectionFault)(nil)).Elem() -} - -type OvfUnsupportedSubType struct { - OvfUnsupportedPackage - - ElementName string `xml:"elementName"` - InstanceId string `xml:"instanceId"` - DeviceType int32 `xml:"deviceType"` - DeviceSubType string `xml:"deviceSubType"` -} - -func init() { - t["OvfUnsupportedSubType"] = reflect.TypeOf((*OvfUnsupportedSubType)(nil)).Elem() -} - -type OvfUnsupportedSubTypeFault OvfUnsupportedSubType - -func init() { - t["OvfUnsupportedSubTypeFault"] = reflect.TypeOf((*OvfUnsupportedSubTypeFault)(nil)).Elem() -} - -type OvfUnsupportedType struct { - OvfUnsupportedPackage - - Name string `xml:"name"` - InstanceId string `xml:"instanceId"` - DeviceType int32 `xml:"deviceType"` -} - -func init() { - t["OvfUnsupportedType"] = reflect.TypeOf((*OvfUnsupportedType)(nil)).Elem() -} - -type OvfUnsupportedTypeFault OvfUnsupportedType - -func init() { - t["OvfUnsupportedTypeFault"] = reflect.TypeOf((*OvfUnsupportedTypeFault)(nil)).Elem() -} - -type OvfValidateHostParams struct { - OvfManagerCommonParams -} - -func init() { - t["OvfValidateHostParams"] = reflect.TypeOf((*OvfValidateHostParams)(nil)).Elem() -} - -type OvfValidateHostResult struct { - DynamicData - - DownloadSize int64 `xml:"downloadSize,omitempty"` - FlatDeploymentSize int64 `xml:"flatDeploymentSize,omitempty"` - SparseDeploymentSize int64 `xml:"sparseDeploymentSize,omitempty"` - Error []LocalizedMethodFault `xml:"error,omitempty"` - Warning []LocalizedMethodFault `xml:"warning,omitempty"` - SupportedDiskProvisioning []string `xml:"supportedDiskProvisioning,omitempty"` -} - -func init() { - t["OvfValidateHostResult"] = reflect.TypeOf((*OvfValidateHostResult)(nil)).Elem() -} - -type OvfWrongElement struct { - OvfElement -} - -func init() { - t["OvfWrongElement"] = reflect.TypeOf((*OvfWrongElement)(nil)).Elem() -} - -type OvfWrongElementFault OvfWrongElement - -func init() { - t["OvfWrongElementFault"] = reflect.TypeOf((*OvfWrongElementFault)(nil)).Elem() -} - -type OvfWrongNamespace struct { - OvfInvalidPackage - - NamespaceName string `xml:"namespaceName"` -} - -func init() { - t["OvfWrongNamespace"] = reflect.TypeOf((*OvfWrongNamespace)(nil)).Elem() -} - -type OvfWrongNamespaceFault OvfWrongNamespace - -func init() { - t["OvfWrongNamespaceFault"] = reflect.TypeOf((*OvfWrongNamespaceFault)(nil)).Elem() -} - -type OvfXmlFormat struct { - OvfInvalidPackage - - Description string `xml:"description"` -} - -func init() { - t["OvfXmlFormat"] = reflect.TypeOf((*OvfXmlFormat)(nil)).Elem() -} - -type OvfXmlFormatFault OvfXmlFormat - -func init() { - t["OvfXmlFormatFault"] = reflect.TypeOf((*OvfXmlFormatFault)(nil)).Elem() -} - -type ParaVirtualSCSIController struct { - VirtualSCSIController -} - -func init() { - t["ParaVirtualSCSIController"] = reflect.TypeOf((*ParaVirtualSCSIController)(nil)).Elem() -} - -type ParaVirtualSCSIControllerOption struct { - VirtualSCSIControllerOption -} - -func init() { - t["ParaVirtualSCSIControllerOption"] = reflect.TypeOf((*ParaVirtualSCSIControllerOption)(nil)).Elem() -} - -type ParseDescriptor ParseDescriptorRequestType - -func init() { - t["ParseDescriptor"] = reflect.TypeOf((*ParseDescriptor)(nil)).Elem() -} - -type ParseDescriptorRequestType struct { - This ManagedObjectReference `xml:"_this"` - OvfDescriptor string `xml:"ovfDescriptor"` - Pdp OvfParseDescriptorParams `xml:"pdp"` -} - -func init() { - t["ParseDescriptorRequestType"] = reflect.TypeOf((*ParseDescriptorRequestType)(nil)).Elem() -} - -type ParseDescriptorResponse struct { - Returnval OvfParseDescriptorResult `xml:"returnval"` -} - -type PassiveNodeDeploymentSpec struct { - NodeDeploymentSpec - - FailoverIpSettings *CustomizationIPSettings `xml:"failoverIpSettings,omitempty"` -} - -func init() { - t["PassiveNodeDeploymentSpec"] = reflect.TypeOf((*PassiveNodeDeploymentSpec)(nil)).Elem() -} - -type PassiveNodeNetworkSpec struct { - NodeNetworkSpec - - FailoverIpSettings *CustomizationIPSettings `xml:"failoverIpSettings,omitempty"` -} - -func init() { - t["PassiveNodeNetworkSpec"] = reflect.TypeOf((*PassiveNodeNetworkSpec)(nil)).Elem() -} - -type PasswordField struct { - DynamicData - - Value string `xml:"value"` -} - -func init() { - t["PasswordField"] = reflect.TypeOf((*PasswordField)(nil)).Elem() -} - -type PatchAlreadyInstalled struct { - PatchNotApplicable -} - -func init() { - t["PatchAlreadyInstalled"] = reflect.TypeOf((*PatchAlreadyInstalled)(nil)).Elem() -} - -type PatchAlreadyInstalledFault PatchAlreadyInstalled - -func init() { - t["PatchAlreadyInstalledFault"] = reflect.TypeOf((*PatchAlreadyInstalledFault)(nil)).Elem() -} - -type PatchBinariesNotFound struct { - VimFault - - PatchID string `xml:"patchID"` - Binary []string `xml:"binary,omitempty"` -} - -func init() { - t["PatchBinariesNotFound"] = reflect.TypeOf((*PatchBinariesNotFound)(nil)).Elem() -} - -type PatchBinariesNotFoundFault PatchBinariesNotFound - -func init() { - t["PatchBinariesNotFoundFault"] = reflect.TypeOf((*PatchBinariesNotFoundFault)(nil)).Elem() -} - -type PatchInstallFailed struct { - PlatformConfigFault - - RolledBack bool `xml:"rolledBack"` -} - -func init() { - t["PatchInstallFailed"] = reflect.TypeOf((*PatchInstallFailed)(nil)).Elem() -} - -type PatchInstallFailedFault PatchInstallFailed - -func init() { - t["PatchInstallFailedFault"] = reflect.TypeOf((*PatchInstallFailedFault)(nil)).Elem() -} - -type PatchIntegrityError struct { - PlatformConfigFault -} - -func init() { - t["PatchIntegrityError"] = reflect.TypeOf((*PatchIntegrityError)(nil)).Elem() -} - -type PatchIntegrityErrorFault PatchIntegrityError - -func init() { - t["PatchIntegrityErrorFault"] = reflect.TypeOf((*PatchIntegrityErrorFault)(nil)).Elem() -} - -type PatchMetadataCorrupted struct { - PatchMetadataInvalid -} - -func init() { - t["PatchMetadataCorrupted"] = reflect.TypeOf((*PatchMetadataCorrupted)(nil)).Elem() -} - -type PatchMetadataCorruptedFault PatchMetadataCorrupted - -func init() { - t["PatchMetadataCorruptedFault"] = reflect.TypeOf((*PatchMetadataCorruptedFault)(nil)).Elem() -} - -type PatchMetadataInvalid struct { - VimFault - - PatchID string `xml:"patchID"` - MetaData []string `xml:"metaData,omitempty"` -} - -func init() { - t["PatchMetadataInvalid"] = reflect.TypeOf((*PatchMetadataInvalid)(nil)).Elem() -} - -type PatchMetadataInvalidFault BasePatchMetadataInvalid - -func init() { - t["PatchMetadataInvalidFault"] = reflect.TypeOf((*PatchMetadataInvalidFault)(nil)).Elem() -} - -type PatchMetadataNotFound struct { - PatchMetadataInvalid -} - -func init() { - t["PatchMetadataNotFound"] = reflect.TypeOf((*PatchMetadataNotFound)(nil)).Elem() -} - -type PatchMetadataNotFoundFault PatchMetadataNotFound - -func init() { - t["PatchMetadataNotFoundFault"] = reflect.TypeOf((*PatchMetadataNotFoundFault)(nil)).Elem() -} - -type PatchMissingDependencies struct { - PatchNotApplicable - - PrerequisitePatch []string `xml:"prerequisitePatch,omitempty"` - PrerequisiteLib []string `xml:"prerequisiteLib,omitempty"` -} - -func init() { - t["PatchMissingDependencies"] = reflect.TypeOf((*PatchMissingDependencies)(nil)).Elem() -} - -type PatchMissingDependenciesFault PatchMissingDependencies - -func init() { - t["PatchMissingDependenciesFault"] = reflect.TypeOf((*PatchMissingDependenciesFault)(nil)).Elem() -} - -type PatchNotApplicable struct { - VimFault - - PatchID string `xml:"patchID"` -} - -func init() { - t["PatchNotApplicable"] = reflect.TypeOf((*PatchNotApplicable)(nil)).Elem() -} - -type PatchNotApplicableFault BasePatchNotApplicable - -func init() { - t["PatchNotApplicableFault"] = reflect.TypeOf((*PatchNotApplicableFault)(nil)).Elem() -} - -type PatchSuperseded struct { - PatchNotApplicable - - Supersede []string `xml:"supersede,omitempty"` -} - -func init() { - t["PatchSuperseded"] = reflect.TypeOf((*PatchSuperseded)(nil)).Elem() -} - -type PatchSupersededFault PatchSuperseded - -func init() { - t["PatchSupersededFault"] = reflect.TypeOf((*PatchSupersededFault)(nil)).Elem() -} - -type PerfCompositeMetric struct { - DynamicData - - Entity BasePerfEntityMetricBase `xml:"entity,omitempty,typeattr"` - ChildEntity []BasePerfEntityMetricBase `xml:"childEntity,omitempty,typeattr"` -} - -func init() { - t["PerfCompositeMetric"] = reflect.TypeOf((*PerfCompositeMetric)(nil)).Elem() -} - -type PerfCounterInfo struct { - DynamicData - - Key int32 `xml:"key"` - NameInfo BaseElementDescription `xml:"nameInfo,typeattr"` - GroupInfo BaseElementDescription `xml:"groupInfo,typeattr"` - UnitInfo BaseElementDescription `xml:"unitInfo,typeattr"` - RollupType PerfSummaryType `xml:"rollupType"` - StatsType PerfStatsType `xml:"statsType"` - Level int32 `xml:"level,omitempty"` - PerDeviceLevel int32 `xml:"perDeviceLevel,omitempty"` - AssociatedCounterId []int32 `xml:"associatedCounterId,omitempty"` -} - -func init() { - t["PerfCounterInfo"] = reflect.TypeOf((*PerfCounterInfo)(nil)).Elem() -} - -type PerfEntityMetric struct { - PerfEntityMetricBase - - SampleInfo []PerfSampleInfo `xml:"sampleInfo,omitempty"` - Value []BasePerfMetricSeries `xml:"value,omitempty,typeattr"` -} - -func init() { - t["PerfEntityMetric"] = reflect.TypeOf((*PerfEntityMetric)(nil)).Elem() -} - -type PerfEntityMetricBase struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["PerfEntityMetricBase"] = reflect.TypeOf((*PerfEntityMetricBase)(nil)).Elem() -} - -type PerfEntityMetricCSV struct { - PerfEntityMetricBase - - SampleInfoCSV string `xml:"sampleInfoCSV"` - Value []PerfMetricSeriesCSV `xml:"value,omitempty"` -} - -func init() { - t["PerfEntityMetricCSV"] = reflect.TypeOf((*PerfEntityMetricCSV)(nil)).Elem() -} - -type PerfInterval struct { - DynamicData - - Key int32 `xml:"key"` - SamplingPeriod int32 `xml:"samplingPeriod"` - Name string `xml:"name"` - Length int32 `xml:"length"` - Level int32 `xml:"level,omitempty"` - Enabled bool `xml:"enabled"` -} - -func init() { - t["PerfInterval"] = reflect.TypeOf((*PerfInterval)(nil)).Elem() -} - -type PerfMetricId struct { - DynamicData - - CounterId int32 `xml:"counterId"` - Instance string `xml:"instance"` -} - -func init() { - t["PerfMetricId"] = reflect.TypeOf((*PerfMetricId)(nil)).Elem() -} - -type PerfMetricIntSeries struct { - PerfMetricSeries - - Value []int64 `xml:"value,omitempty"` -} - -func init() { - t["PerfMetricIntSeries"] = reflect.TypeOf((*PerfMetricIntSeries)(nil)).Elem() -} - -type PerfMetricSeries struct { - DynamicData - - Id PerfMetricId `xml:"id"` -} - -func init() { - t["PerfMetricSeries"] = reflect.TypeOf((*PerfMetricSeries)(nil)).Elem() -} - -type PerfMetricSeriesCSV struct { - PerfMetricSeries - - Value string `xml:"value,omitempty"` -} - -func init() { - t["PerfMetricSeriesCSV"] = reflect.TypeOf((*PerfMetricSeriesCSV)(nil)).Elem() -} - -type PerfProviderSummary struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - CurrentSupported bool `xml:"currentSupported"` - SummarySupported bool `xml:"summarySupported"` - RefreshRate int32 `xml:"refreshRate,omitempty"` -} - -func init() { - t["PerfProviderSummary"] = reflect.TypeOf((*PerfProviderSummary)(nil)).Elem() -} - -type PerfQuerySpec struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - StartTime *time.Time `xml:"startTime"` - EndTime *time.Time `xml:"endTime"` - MaxSample int32 `xml:"maxSample,omitempty"` - MetricId []PerfMetricId `xml:"metricId,omitempty"` - IntervalId int32 `xml:"intervalId,omitempty"` - Format string `xml:"format,omitempty"` -} - -func init() { - t["PerfQuerySpec"] = reflect.TypeOf((*PerfQuerySpec)(nil)).Elem() -} - -type PerfSampleInfo struct { - DynamicData - - Timestamp time.Time `xml:"timestamp"` - Interval int32 `xml:"interval"` -} - -func init() { - t["PerfSampleInfo"] = reflect.TypeOf((*PerfSampleInfo)(nil)).Elem() -} - -type PerformDvsProductSpecOperationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Operation string `xml:"operation"` - ProductSpec *DistributedVirtualSwitchProductSpec `xml:"productSpec,omitempty"` -} - -func init() { - t["PerformDvsProductSpecOperationRequestType"] = reflect.TypeOf((*PerformDvsProductSpecOperationRequestType)(nil)).Elem() -} - -type PerformDvsProductSpecOperation_Task PerformDvsProductSpecOperationRequestType - -func init() { - t["PerformDvsProductSpecOperation_Task"] = reflect.TypeOf((*PerformDvsProductSpecOperation_Task)(nil)).Elem() -} - -type PerformDvsProductSpecOperation_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PerformVsanUpgradePreflightCheck PerformVsanUpgradePreflightCheckRequestType - -func init() { - t["PerformVsanUpgradePreflightCheck"] = reflect.TypeOf((*PerformVsanUpgradePreflightCheck)(nil)).Elem() -} - -type PerformVsanUpgradePreflightCheckRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster ManagedObjectReference `xml:"cluster"` - DowngradeFormat *bool `xml:"downgradeFormat"` -} - -func init() { - t["PerformVsanUpgradePreflightCheckRequestType"] = reflect.TypeOf((*PerformVsanUpgradePreflightCheckRequestType)(nil)).Elem() -} - -type PerformVsanUpgradePreflightCheckResponse struct { - Returnval VsanUpgradeSystemPreflightCheckResult `xml:"returnval"` -} - -type PerformVsanUpgradeRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster ManagedObjectReference `xml:"cluster"` - PerformObjectUpgrade *bool `xml:"performObjectUpgrade"` - DowngradeFormat *bool `xml:"downgradeFormat"` - AllowReducedRedundancy *bool `xml:"allowReducedRedundancy"` - ExcludeHosts []ManagedObjectReference `xml:"excludeHosts,omitempty"` -} - -func init() { - t["PerformVsanUpgradeRequestType"] = reflect.TypeOf((*PerformVsanUpgradeRequestType)(nil)).Elem() -} - -type PerformVsanUpgrade_Task PerformVsanUpgradeRequestType - -func init() { - t["PerformVsanUpgrade_Task"] = reflect.TypeOf((*PerformVsanUpgrade_Task)(nil)).Elem() -} - -type PerformVsanUpgrade_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PerformanceDescription struct { - DynamicData - - CounterType []BaseElementDescription `xml:"counterType,typeattr"` - StatsType []BaseElementDescription `xml:"statsType,typeattr"` -} - -func init() { - t["PerformanceDescription"] = reflect.TypeOf((*PerformanceDescription)(nil)).Elem() -} - -type PerformanceManagerCounterLevelMapping struct { - DynamicData - - CounterId int32 `xml:"counterId"` - AggregateLevel int32 `xml:"aggregateLevel,omitempty"` - PerDeviceLevel int32 `xml:"perDeviceLevel,omitempty"` -} - -func init() { - t["PerformanceManagerCounterLevelMapping"] = reflect.TypeOf((*PerformanceManagerCounterLevelMapping)(nil)).Elem() -} - -type PerformanceStatisticsDescription struct { - DynamicData - - Intervals []PerfInterval `xml:"intervals,omitempty"` -} - -func init() { - t["PerformanceStatisticsDescription"] = reflect.TypeOf((*PerformanceStatisticsDescription)(nil)).Elem() -} - -type Permission struct { - DynamicData - - Entity *ManagedObjectReference `xml:"entity,omitempty"` - Principal string `xml:"principal"` - Group bool `xml:"group"` - RoleId int32 `xml:"roleId"` - Propagate bool `xml:"propagate"` -} - -func init() { - t["Permission"] = reflect.TypeOf((*Permission)(nil)).Elem() -} - -type PermissionAddedEvent struct { - PermissionEvent - - Role RoleEventArgument `xml:"role"` - Propagate bool `xml:"propagate"` -} - -func init() { - t["PermissionAddedEvent"] = reflect.TypeOf((*PermissionAddedEvent)(nil)).Elem() -} - -type PermissionEvent struct { - AuthorizationEvent - - Entity ManagedEntityEventArgument `xml:"entity"` - Principal string `xml:"principal"` - Group bool `xml:"group"` -} - -func init() { - t["PermissionEvent"] = reflect.TypeOf((*PermissionEvent)(nil)).Elem() -} - -type PermissionProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["PermissionProfile"] = reflect.TypeOf((*PermissionProfile)(nil)).Elem() -} - -type PermissionRemovedEvent struct { - PermissionEvent -} - -func init() { - t["PermissionRemovedEvent"] = reflect.TypeOf((*PermissionRemovedEvent)(nil)).Elem() -} - -type PermissionUpdatedEvent struct { - PermissionEvent - - Role RoleEventArgument `xml:"role"` - Propagate bool `xml:"propagate"` - PrevRole *RoleEventArgument `xml:"prevRole,omitempty"` - PrevPropagate *bool `xml:"prevPropagate"` -} - -func init() { - t["PermissionUpdatedEvent"] = reflect.TypeOf((*PermissionUpdatedEvent)(nil)).Elem() -} - -type PhysCompatRDMNotSupported struct { - RDMNotSupported -} - -func init() { - t["PhysCompatRDMNotSupported"] = reflect.TypeOf((*PhysCompatRDMNotSupported)(nil)).Elem() -} - -type PhysCompatRDMNotSupportedFault PhysCompatRDMNotSupported - -func init() { - t["PhysCompatRDMNotSupportedFault"] = reflect.TypeOf((*PhysCompatRDMNotSupportedFault)(nil)).Elem() -} - -type PhysicalNic struct { - DynamicData - - Key string `xml:"key,omitempty"` - Device string `xml:"device"` - Pci string `xml:"pci"` - Driver string `xml:"driver,omitempty"` - LinkSpeed *PhysicalNicLinkInfo `xml:"linkSpeed,omitempty"` - ValidLinkSpecification []PhysicalNicLinkInfo `xml:"validLinkSpecification,omitempty"` - Spec PhysicalNicSpec `xml:"spec"` - WakeOnLanSupported bool `xml:"wakeOnLanSupported"` - Mac string `xml:"mac"` - FcoeConfiguration *FcoeConfig `xml:"fcoeConfiguration,omitempty"` - VmDirectPathGen2Supported *bool `xml:"vmDirectPathGen2Supported"` - VmDirectPathGen2SupportedMode string `xml:"vmDirectPathGen2SupportedMode,omitempty"` - ResourcePoolSchedulerAllowed *bool `xml:"resourcePoolSchedulerAllowed"` - ResourcePoolSchedulerDisallowedReason []string `xml:"resourcePoolSchedulerDisallowedReason,omitempty"` - AutoNegotiateSupported *bool `xml:"autoNegotiateSupported"` -} - -func init() { - t["PhysicalNic"] = reflect.TypeOf((*PhysicalNic)(nil)).Elem() -} - -type PhysicalNicCdpDeviceCapability struct { - DynamicData - - Router bool `xml:"router"` - TransparentBridge bool `xml:"transparentBridge"` - SourceRouteBridge bool `xml:"sourceRouteBridge"` - NetworkSwitch bool `xml:"networkSwitch"` - Host bool `xml:"host"` - IgmpEnabled bool `xml:"igmpEnabled"` - Repeater bool `xml:"repeater"` -} - -func init() { - t["PhysicalNicCdpDeviceCapability"] = reflect.TypeOf((*PhysicalNicCdpDeviceCapability)(nil)).Elem() -} - -type PhysicalNicCdpInfo struct { - DynamicData - - CdpVersion int32 `xml:"cdpVersion,omitempty"` - Timeout int32 `xml:"timeout,omitempty"` - Ttl int32 `xml:"ttl,omitempty"` - Samples int32 `xml:"samples,omitempty"` - DevId string `xml:"devId,omitempty"` - Address string `xml:"address,omitempty"` - PortId string `xml:"portId,omitempty"` - DeviceCapability *PhysicalNicCdpDeviceCapability `xml:"deviceCapability,omitempty"` - SoftwareVersion string `xml:"softwareVersion,omitempty"` - HardwarePlatform string `xml:"hardwarePlatform,omitempty"` - IpPrefix string `xml:"ipPrefix,omitempty"` - IpPrefixLen int32 `xml:"ipPrefixLen,omitempty"` - Vlan int32 `xml:"vlan,omitempty"` - FullDuplex *bool `xml:"fullDuplex"` - Mtu int32 `xml:"mtu,omitempty"` - SystemName string `xml:"systemName,omitempty"` - SystemOID string `xml:"systemOID,omitempty"` - MgmtAddr string `xml:"mgmtAddr,omitempty"` - Location string `xml:"location,omitempty"` -} - -func init() { - t["PhysicalNicCdpInfo"] = reflect.TypeOf((*PhysicalNicCdpInfo)(nil)).Elem() -} - -type PhysicalNicConfig struct { - DynamicData - - Device string `xml:"device"` - Spec PhysicalNicSpec `xml:"spec"` -} - -func init() { - t["PhysicalNicConfig"] = reflect.TypeOf((*PhysicalNicConfig)(nil)).Elem() -} - -type PhysicalNicHint struct { - DynamicData - - VlanId int32 `xml:"vlanId,omitempty"` -} - -func init() { - t["PhysicalNicHint"] = reflect.TypeOf((*PhysicalNicHint)(nil)).Elem() -} - -type PhysicalNicHintInfo struct { - DynamicData - - Device string `xml:"device"` - Subnet []PhysicalNicIpHint `xml:"subnet,omitempty"` - Network []PhysicalNicNameHint `xml:"network,omitempty"` - ConnectedSwitchPort *PhysicalNicCdpInfo `xml:"connectedSwitchPort,omitempty"` - LldpInfo *LinkLayerDiscoveryProtocolInfo `xml:"lldpInfo,omitempty"` -} - -func init() { - t["PhysicalNicHintInfo"] = reflect.TypeOf((*PhysicalNicHintInfo)(nil)).Elem() -} - -type PhysicalNicIpHint struct { - PhysicalNicHint - - IpSubnet string `xml:"ipSubnet"` -} - -func init() { - t["PhysicalNicIpHint"] = reflect.TypeOf((*PhysicalNicIpHint)(nil)).Elem() -} - -type PhysicalNicLinkInfo struct { - DynamicData - - SpeedMb int32 `xml:"speedMb"` - Duplex bool `xml:"duplex"` -} - -func init() { - t["PhysicalNicLinkInfo"] = reflect.TypeOf((*PhysicalNicLinkInfo)(nil)).Elem() -} - -type PhysicalNicNameHint struct { - PhysicalNicHint - - Network string `xml:"network"` -} - -func init() { - t["PhysicalNicNameHint"] = reflect.TypeOf((*PhysicalNicNameHint)(nil)).Elem() -} - -type PhysicalNicProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["PhysicalNicProfile"] = reflect.TypeOf((*PhysicalNicProfile)(nil)).Elem() -} - -type PhysicalNicSpec struct { - DynamicData - - Ip *HostIpConfig `xml:"ip,omitempty"` - LinkSpeed *PhysicalNicLinkInfo `xml:"linkSpeed,omitempty"` -} - -func init() { - t["PhysicalNicSpec"] = reflect.TypeOf((*PhysicalNicSpec)(nil)).Elem() -} - -type PlaceVm PlaceVmRequestType - -func init() { - t["PlaceVm"] = reflect.TypeOf((*PlaceVm)(nil)).Elem() -} - -type PlaceVmRequestType struct { - This ManagedObjectReference `xml:"_this"` - PlacementSpec PlacementSpec `xml:"placementSpec"` -} - -func init() { - t["PlaceVmRequestType"] = reflect.TypeOf((*PlaceVmRequestType)(nil)).Elem() -} - -type PlaceVmResponse struct { - Returnval PlacementResult `xml:"returnval"` -} - -type PlacementAction struct { - ClusterAction - - Vm *ManagedObjectReference `xml:"vm,omitempty"` - TargetHost *ManagedObjectReference `xml:"targetHost,omitempty"` - RelocateSpec *VirtualMachineRelocateSpec `xml:"relocateSpec,omitempty"` -} - -func init() { - t["PlacementAction"] = reflect.TypeOf((*PlacementAction)(nil)).Elem() -} - -type PlacementAffinityRule struct { - DynamicData - - RuleType string `xml:"ruleType"` - RuleScope string `xml:"ruleScope"` - Vms []ManagedObjectReference `xml:"vms,omitempty"` - Keys []string `xml:"keys,omitempty"` -} - -func init() { - t["PlacementAffinityRule"] = reflect.TypeOf((*PlacementAffinityRule)(nil)).Elem() -} - -type PlacementRankResult struct { - DynamicData - - Key string `xml:"key"` - Candidate ManagedObjectReference `xml:"candidate"` - ReservedSpaceMB int64 `xml:"reservedSpaceMB"` - UsedSpaceMB int64 `xml:"usedSpaceMB"` - TotalSpaceMB int64 `xml:"totalSpaceMB"` - Utilization float64 `xml:"utilization"` - Faults []LocalizedMethodFault `xml:"faults,omitempty"` -} - -func init() { - t["PlacementRankResult"] = reflect.TypeOf((*PlacementRankResult)(nil)).Elem() -} - -type PlacementRankSpec struct { - DynamicData - - Specs []PlacementSpec `xml:"specs"` - Clusters []ManagedObjectReference `xml:"clusters"` - Rules []PlacementAffinityRule `xml:"rules,omitempty"` - PlacementRankByVm []StorageDrsPlacementRankVmSpec `xml:"placementRankByVm,omitempty"` -} - -func init() { - t["PlacementRankSpec"] = reflect.TypeOf((*PlacementRankSpec)(nil)).Elem() -} - -type PlacementResult struct { - DynamicData - - Recommendations []ClusterRecommendation `xml:"recommendations,omitempty"` - DrsFault *ClusterDrsFaults `xml:"drsFault,omitempty"` -} - -func init() { - t["PlacementResult"] = reflect.TypeOf((*PlacementResult)(nil)).Elem() -} - -type PlacementSpec struct { - DynamicData - - Priority VirtualMachineMovePriority `xml:"priority,omitempty"` - Vm *ManagedObjectReference `xml:"vm,omitempty"` - ConfigSpec *VirtualMachineConfigSpec `xml:"configSpec,omitempty"` - RelocateSpec *VirtualMachineRelocateSpec `xml:"relocateSpec,omitempty"` - Hosts []ManagedObjectReference `xml:"hosts,omitempty"` - Datastores []ManagedObjectReference `xml:"datastores,omitempty"` - StoragePods []ManagedObjectReference `xml:"storagePods,omitempty"` - DisallowPrerequisiteMoves *bool `xml:"disallowPrerequisiteMoves"` - Rules []BaseClusterRuleInfo `xml:"rules,omitempty,typeattr"` - Key string `xml:"key,omitempty"` - PlacementType string `xml:"placementType,omitempty"` - CloneSpec *VirtualMachineCloneSpec `xml:"cloneSpec,omitempty"` - CloneName string `xml:"cloneName,omitempty"` -} - -func init() { - t["PlacementSpec"] = reflect.TypeOf((*PlacementSpec)(nil)).Elem() -} - -type PlatformConfigFault struct { - HostConfigFault - - Text string `xml:"text"` -} - -func init() { - t["PlatformConfigFault"] = reflect.TypeOf((*PlatformConfigFault)(nil)).Elem() -} - -type PlatformConfigFaultFault BasePlatformConfigFault - -func init() { - t["PlatformConfigFaultFault"] = reflect.TypeOf((*PlatformConfigFaultFault)(nil)).Elem() -} - -type PnicUplinkProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["PnicUplinkProfile"] = reflect.TypeOf((*PnicUplinkProfile)(nil)).Elem() -} - -type PodDiskLocator struct { - DynamicData - - DiskId int32 `xml:"diskId"` - DiskMoveType string `xml:"diskMoveType,omitempty"` - DiskBackingInfo BaseVirtualDeviceBackingInfo `xml:"diskBackingInfo,omitempty,typeattr"` - Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` -} - -func init() { - t["PodDiskLocator"] = reflect.TypeOf((*PodDiskLocator)(nil)).Elem() -} - -type PodStorageDrsEntry struct { - DynamicData - - StorageDrsConfig StorageDrsConfigInfo `xml:"storageDrsConfig"` - Recommendation []ClusterRecommendation `xml:"recommendation,omitempty"` - DrsFault []ClusterDrsFaults `xml:"drsFault,omitempty"` - ActionHistory []ClusterActionHistory `xml:"actionHistory,omitempty"` -} - -func init() { - t["PodStorageDrsEntry"] = reflect.TypeOf((*PodStorageDrsEntry)(nil)).Elem() -} - -type PolicyOption struct { - DynamicData - - Id string `xml:"id"` - Parameter []KeyAnyValue `xml:"parameter,omitempty"` -} - -func init() { - t["PolicyOption"] = reflect.TypeOf((*PolicyOption)(nil)).Elem() -} - -type PortGroupProfile struct { - ApplyProfile - - Key string `xml:"key"` - Name string `xml:"name"` - Vlan VlanProfile `xml:"vlan"` - Vswitch VirtualSwitchSelectionProfile `xml:"vswitch"` - NetworkPolicy NetworkPolicyProfile `xml:"networkPolicy"` -} - -func init() { - t["PortGroupProfile"] = reflect.TypeOf((*PortGroupProfile)(nil)).Elem() -} - -type PosixUserSearchResult struct { - UserSearchResult - - Id int32 `xml:"id"` - ShellAccess *bool `xml:"shellAccess"` -} - -func init() { - t["PosixUserSearchResult"] = reflect.TypeOf((*PosixUserSearchResult)(nil)).Elem() -} - -type PostEvent PostEventRequestType - -func init() { - t["PostEvent"] = reflect.TypeOf((*PostEvent)(nil)).Elem() -} - -type PostEventRequestType struct { - This ManagedObjectReference `xml:"_this"` - EventToPost BaseEvent `xml:"eventToPost,typeattr"` - TaskInfo *TaskInfo `xml:"taskInfo,omitempty"` -} - -func init() { - t["PostEventRequestType"] = reflect.TypeOf((*PostEventRequestType)(nil)).Elem() -} - -type PostEventResponse struct { -} - -type PostHealthUpdates PostHealthUpdatesRequestType - -func init() { - t["PostHealthUpdates"] = reflect.TypeOf((*PostHealthUpdates)(nil)).Elem() -} - -type PostHealthUpdatesRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` - Updates []HealthUpdate `xml:"updates,omitempty"` -} - -func init() { - t["PostHealthUpdatesRequestType"] = reflect.TypeOf((*PostHealthUpdatesRequestType)(nil)).Elem() -} - -type PostHealthUpdatesResponse struct { -} - -type PowerDownHostToStandByRequestType struct { - This ManagedObjectReference `xml:"_this"` - TimeoutSec int32 `xml:"timeoutSec"` - EvacuatePoweredOffVms *bool `xml:"evacuatePoweredOffVms"` -} - -func init() { - t["PowerDownHostToStandByRequestType"] = reflect.TypeOf((*PowerDownHostToStandByRequestType)(nil)).Elem() -} - -type PowerDownHostToStandBy_Task PowerDownHostToStandByRequestType - -func init() { - t["PowerDownHostToStandBy_Task"] = reflect.TypeOf((*PowerDownHostToStandBy_Task)(nil)).Elem() -} - -type PowerDownHostToStandBy_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PowerOffVAppRequestType struct { - This ManagedObjectReference `xml:"_this"` - Force bool `xml:"force"` -} - -func init() { - t["PowerOffVAppRequestType"] = reflect.TypeOf((*PowerOffVAppRequestType)(nil)).Elem() -} - -type PowerOffVApp_Task PowerOffVAppRequestType - -func init() { - t["PowerOffVApp_Task"] = reflect.TypeOf((*PowerOffVApp_Task)(nil)).Elem() -} - -type PowerOffVApp_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PowerOffVMRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["PowerOffVMRequestType"] = reflect.TypeOf((*PowerOffVMRequestType)(nil)).Elem() -} - -type PowerOffVM_Task PowerOffVMRequestType - -func init() { - t["PowerOffVM_Task"] = reflect.TypeOf((*PowerOffVM_Task)(nil)).Elem() -} - -type PowerOffVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PowerOnFtSecondaryFailed struct { - VmFaultToleranceIssue - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` - HostSelectionBy FtIssuesOnHostHostSelectionType `xml:"hostSelectionBy"` - HostErrors []LocalizedMethodFault `xml:"hostErrors,omitempty"` - RootCause LocalizedMethodFault `xml:"rootCause"` -} - -func init() { - t["PowerOnFtSecondaryFailed"] = reflect.TypeOf((*PowerOnFtSecondaryFailed)(nil)).Elem() -} - -type PowerOnFtSecondaryFailedFault PowerOnFtSecondaryFailed - -func init() { - t["PowerOnFtSecondaryFailedFault"] = reflect.TypeOf((*PowerOnFtSecondaryFailedFault)(nil)).Elem() -} - -type PowerOnFtSecondaryTimedout struct { - Timedout - - Vm ManagedObjectReference `xml:"vm"` - VmName string `xml:"vmName"` - Timeout int32 `xml:"timeout"` -} - -func init() { - t["PowerOnFtSecondaryTimedout"] = reflect.TypeOf((*PowerOnFtSecondaryTimedout)(nil)).Elem() -} - -type PowerOnFtSecondaryTimedoutFault PowerOnFtSecondaryTimedout - -func init() { - t["PowerOnFtSecondaryTimedoutFault"] = reflect.TypeOf((*PowerOnFtSecondaryTimedoutFault)(nil)).Elem() -} - -type PowerOnMultiVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm []ManagedObjectReference `xml:"vm"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` -} - -func init() { - t["PowerOnMultiVMRequestType"] = reflect.TypeOf((*PowerOnMultiVMRequestType)(nil)).Elem() -} - -type PowerOnMultiVM_Task PowerOnMultiVMRequestType - -func init() { - t["PowerOnMultiVM_Task"] = reflect.TypeOf((*PowerOnMultiVM_Task)(nil)).Elem() -} - -type PowerOnMultiVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PowerOnVAppRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["PowerOnVAppRequestType"] = reflect.TypeOf((*PowerOnVAppRequestType)(nil)).Elem() -} - -type PowerOnVApp_Task PowerOnVAppRequestType - -func init() { - t["PowerOnVApp_Task"] = reflect.TypeOf((*PowerOnVApp_Task)(nil)).Elem() -} - -type PowerOnVApp_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PowerOnVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["PowerOnVMRequestType"] = reflect.TypeOf((*PowerOnVMRequestType)(nil)).Elem() -} - -type PowerOnVM_Task PowerOnVMRequestType - -func init() { - t["PowerOnVM_Task"] = reflect.TypeOf((*PowerOnVM_Task)(nil)).Elem() -} - -type PowerOnVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PowerSystemCapability struct { - DynamicData - - AvailablePolicy []HostPowerPolicy `xml:"availablePolicy"` -} - -func init() { - t["PowerSystemCapability"] = reflect.TypeOf((*PowerSystemCapability)(nil)).Elem() -} - -type PowerSystemInfo struct { - DynamicData - - CurrentPolicy HostPowerPolicy `xml:"currentPolicy"` -} - -func init() { - t["PowerSystemInfo"] = reflect.TypeOf((*PowerSystemInfo)(nil)).Elem() -} - -type PowerUpHostFromStandByRequestType struct { - This ManagedObjectReference `xml:"_this"` - TimeoutSec int32 `xml:"timeoutSec"` -} - -func init() { - t["PowerUpHostFromStandByRequestType"] = reflect.TypeOf((*PowerUpHostFromStandByRequestType)(nil)).Elem() -} - -type PowerUpHostFromStandBy_Task PowerUpHostFromStandByRequestType - -func init() { - t["PowerUpHostFromStandBy_Task"] = reflect.TypeOf((*PowerUpHostFromStandBy_Task)(nil)).Elem() -} - -type PowerUpHostFromStandBy_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PrepareCrypto PrepareCryptoRequestType - -func init() { - t["PrepareCrypto"] = reflect.TypeOf((*PrepareCrypto)(nil)).Elem() -} - -type PrepareCryptoRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["PrepareCryptoRequestType"] = reflect.TypeOf((*PrepareCryptoRequestType)(nil)).Elem() -} - -type PrepareCryptoResponse struct { -} - -type PrivilegeAvailability struct { - DynamicData - - PrivId string `xml:"privId"` - IsGranted bool `xml:"isGranted"` -} - -func init() { - t["PrivilegeAvailability"] = reflect.TypeOf((*PrivilegeAvailability)(nil)).Elem() -} - -type PrivilegePolicyDef struct { - DynamicData - - CreatePrivilege string `xml:"createPrivilege"` - ReadPrivilege string `xml:"readPrivilege"` - UpdatePrivilege string `xml:"updatePrivilege"` - DeletePrivilege string `xml:"deletePrivilege"` -} - -func init() { - t["PrivilegePolicyDef"] = reflect.TypeOf((*PrivilegePolicyDef)(nil)).Elem() -} - -type ProductComponentInfo struct { - DynamicData - - Id string `xml:"id"` - Name string `xml:"name"` - Version string `xml:"version"` - Release int32 `xml:"release"` -} - -func init() { - t["ProductComponentInfo"] = reflect.TypeOf((*ProductComponentInfo)(nil)).Elem() -} - -type ProfileApplyProfileElement struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["ProfileApplyProfileElement"] = reflect.TypeOf((*ProfileApplyProfileElement)(nil)).Elem() -} - -type ProfileApplyProfileProperty struct { - DynamicData - - PropertyName string `xml:"propertyName"` - Array bool `xml:"array"` - Profile []BaseApplyProfile `xml:"profile,omitempty,typeattr"` -} - -func init() { - t["ProfileApplyProfileProperty"] = reflect.TypeOf((*ProfileApplyProfileProperty)(nil)).Elem() -} - -type ProfileAssociatedEvent struct { - ProfileEvent -} - -func init() { - t["ProfileAssociatedEvent"] = reflect.TypeOf((*ProfileAssociatedEvent)(nil)).Elem() -} - -type ProfileChangedEvent struct { - ProfileEvent -} - -func init() { - t["ProfileChangedEvent"] = reflect.TypeOf((*ProfileChangedEvent)(nil)).Elem() -} - -type ProfileCompositeExpression struct { - ProfileExpression - - Operator string `xml:"operator"` - ExpressionName []string `xml:"expressionName"` -} - -func init() { - t["ProfileCompositeExpression"] = reflect.TypeOf((*ProfileCompositeExpression)(nil)).Elem() -} - -type ProfileCompositePolicyOptionMetadata struct { - ProfilePolicyOptionMetadata - - Option []string `xml:"option"` -} - -func init() { - t["ProfileCompositePolicyOptionMetadata"] = reflect.TypeOf((*ProfileCompositePolicyOptionMetadata)(nil)).Elem() -} - -type ProfileConfigInfo struct { - DynamicData - - Name string `xml:"name"` - Annotation string `xml:"annotation,omitempty"` - Enabled bool `xml:"enabled"` -} - -func init() { - t["ProfileConfigInfo"] = reflect.TypeOf((*ProfileConfigInfo)(nil)).Elem() -} - -type ProfileCreateSpec struct { - DynamicData - - Name string `xml:"name,omitempty"` - Annotation string `xml:"annotation,omitempty"` - Enabled *bool `xml:"enabled"` -} - -func init() { - t["ProfileCreateSpec"] = reflect.TypeOf((*ProfileCreateSpec)(nil)).Elem() -} - -type ProfileCreatedEvent struct { - ProfileEvent -} - -func init() { - t["ProfileCreatedEvent"] = reflect.TypeOf((*ProfileCreatedEvent)(nil)).Elem() -} - -type ProfileDeferredPolicyOptionParameter struct { - DynamicData - - InputPath ProfilePropertyPath `xml:"inputPath"` - Parameter []KeyAnyValue `xml:"parameter,omitempty"` -} - -func init() { - t["ProfileDeferredPolicyOptionParameter"] = reflect.TypeOf((*ProfileDeferredPolicyOptionParameter)(nil)).Elem() -} - -type ProfileDescription struct { - DynamicData - - Section []ProfileDescriptionSection `xml:"section"` -} - -func init() { - t["ProfileDescription"] = reflect.TypeOf((*ProfileDescription)(nil)).Elem() -} - -type ProfileDescriptionSection struct { - DynamicData - - Description ExtendedElementDescription `xml:"description"` - Message []LocalizableMessage `xml:"message,omitempty"` -} - -func init() { - t["ProfileDescriptionSection"] = reflect.TypeOf((*ProfileDescriptionSection)(nil)).Elem() -} - -type ProfileDissociatedEvent struct { - ProfileEvent -} - -func init() { - t["ProfileDissociatedEvent"] = reflect.TypeOf((*ProfileDissociatedEvent)(nil)).Elem() -} - -type ProfileEvent struct { - Event - - Profile ProfileEventArgument `xml:"profile"` -} - -func init() { - t["ProfileEvent"] = reflect.TypeOf((*ProfileEvent)(nil)).Elem() -} - -type ProfileEventArgument struct { - EventArgument - - Profile ManagedObjectReference `xml:"profile"` - Name string `xml:"name"` -} - -func init() { - t["ProfileEventArgument"] = reflect.TypeOf((*ProfileEventArgument)(nil)).Elem() -} - -type ProfileExecuteError struct { - DynamicData - - Path *ProfilePropertyPath `xml:"path,omitempty"` - Message LocalizableMessage `xml:"message"` -} - -func init() { - t["ProfileExecuteError"] = reflect.TypeOf((*ProfileExecuteError)(nil)).Elem() -} - -type ProfileExecuteResult struct { - DynamicData - - Status string `xml:"status"` - ConfigSpec *HostConfigSpec `xml:"configSpec,omitempty"` - InapplicablePath []string `xml:"inapplicablePath,omitempty"` - RequireInput []ProfileDeferredPolicyOptionParameter `xml:"requireInput,omitempty"` - Error []ProfileExecuteError `xml:"error,omitempty"` -} - -func init() { - t["ProfileExecuteResult"] = reflect.TypeOf((*ProfileExecuteResult)(nil)).Elem() -} - -type ProfileExpression struct { - DynamicData - - Id string `xml:"id"` - DisplayName string `xml:"displayName"` - Negated bool `xml:"negated"` -} - -func init() { - t["ProfileExpression"] = reflect.TypeOf((*ProfileExpression)(nil)).Elem() -} - -type ProfileExpressionMetadata struct { - DynamicData - - ExpressionId ExtendedElementDescription `xml:"expressionId"` - Parameter []ProfileParameterMetadata `xml:"parameter,omitempty"` -} - -func init() { - t["ProfileExpressionMetadata"] = reflect.TypeOf((*ProfileExpressionMetadata)(nil)).Elem() -} - -type ProfileMetadata struct { - DynamicData - - Key string `xml:"key"` - ProfileTypeName string `xml:"profileTypeName,omitempty"` - Description *ExtendedDescription `xml:"description,omitempty"` - SortSpec []ProfileMetadataProfileSortSpec `xml:"sortSpec,omitempty"` - ProfileCategory string `xml:"profileCategory,omitempty"` - ProfileComponent string `xml:"profileComponent,omitempty"` -} - -func init() { - t["ProfileMetadata"] = reflect.TypeOf((*ProfileMetadata)(nil)).Elem() -} - -type ProfileMetadataProfileSortSpec struct { - DynamicData - - PolicyId string `xml:"policyId"` - Parameter string `xml:"parameter"` -} - -func init() { - t["ProfileMetadataProfileSortSpec"] = reflect.TypeOf((*ProfileMetadataProfileSortSpec)(nil)).Elem() -} - -type ProfileParameterMetadata struct { - DynamicData - - Id ExtendedElementDescription `xml:"id"` - Type string `xml:"type"` - Optional bool `xml:"optional"` - DefaultValue AnyType `xml:"defaultValue,omitempty,typeattr"` - Hidden *bool `xml:"hidden"` - SecuritySensitive *bool `xml:"securitySensitive"` - ReadOnly *bool `xml:"readOnly"` -} - -func init() { - t["ProfileParameterMetadata"] = reflect.TypeOf((*ProfileParameterMetadata)(nil)).Elem() -} - -type ProfilePolicy struct { - DynamicData - - Id string `xml:"id"` - PolicyOption BasePolicyOption `xml:"policyOption,typeattr"` -} - -func init() { - t["ProfilePolicy"] = reflect.TypeOf((*ProfilePolicy)(nil)).Elem() -} - -type ProfilePolicyMetadata struct { - DynamicData - - Id ExtendedElementDescription `xml:"id"` - PossibleOption []BaseProfilePolicyOptionMetadata `xml:"possibleOption,typeattr"` -} - -func init() { - t["ProfilePolicyMetadata"] = reflect.TypeOf((*ProfilePolicyMetadata)(nil)).Elem() -} - -type ProfilePolicyOptionMetadata struct { - DynamicData - - Id ExtendedElementDescription `xml:"id"` - Parameter []ProfileParameterMetadata `xml:"parameter,omitempty"` -} - -func init() { - t["ProfilePolicyOptionMetadata"] = reflect.TypeOf((*ProfilePolicyOptionMetadata)(nil)).Elem() -} - -type ProfileProfileStructure struct { - DynamicData - - ProfileTypeName string `xml:"profileTypeName"` - Child []ProfileProfileStructureProperty `xml:"child,omitempty"` -} - -func init() { - t["ProfileProfileStructure"] = reflect.TypeOf((*ProfileProfileStructure)(nil)).Elem() -} - -type ProfileProfileStructureProperty struct { - DynamicData - - PropertyName string `xml:"propertyName"` - Array bool `xml:"array"` - Element ProfileProfileStructure `xml:"element"` -} - -func init() { - t["ProfileProfileStructureProperty"] = reflect.TypeOf((*ProfileProfileStructureProperty)(nil)).Elem() -} - -type ProfilePropertyPath struct { - DynamicData - - ProfilePath string `xml:"profilePath"` - PolicyId string `xml:"policyId,omitempty"` - ParameterId string `xml:"parameterId,omitempty"` -} - -func init() { - t["ProfilePropertyPath"] = reflect.TypeOf((*ProfilePropertyPath)(nil)).Elem() -} - -type ProfileReferenceHostChangedEvent struct { - ProfileEvent - - ReferenceHost *ManagedObjectReference `xml:"referenceHost,omitempty"` - ReferenceHostName string `xml:"referenceHostName,omitempty"` - PrevReferenceHostName string `xml:"prevReferenceHostName,omitempty"` -} - -func init() { - t["ProfileReferenceHostChangedEvent"] = reflect.TypeOf((*ProfileReferenceHostChangedEvent)(nil)).Elem() -} - -type ProfileRemovedEvent struct { - ProfileEvent -} - -func init() { - t["ProfileRemovedEvent"] = reflect.TypeOf((*ProfileRemovedEvent)(nil)).Elem() -} - -type ProfileSerializedCreateSpec struct { - ProfileCreateSpec - - ProfileConfigString string `xml:"profileConfigString"` -} - -func init() { - t["ProfileSerializedCreateSpec"] = reflect.TypeOf((*ProfileSerializedCreateSpec)(nil)).Elem() -} - -type ProfileSimpleExpression struct { - ProfileExpression - - ExpressionType string `xml:"expressionType"` - Parameter []KeyAnyValue `xml:"parameter,omitempty"` -} - -func init() { - t["ProfileSimpleExpression"] = reflect.TypeOf((*ProfileSimpleExpression)(nil)).Elem() -} - -type ProfileUpdateFailed struct { - VimFault - - Failure []ProfileUpdateFailedUpdateFailure `xml:"failure"` -} - -func init() { - t["ProfileUpdateFailed"] = reflect.TypeOf((*ProfileUpdateFailed)(nil)).Elem() -} - -type ProfileUpdateFailedFault ProfileUpdateFailed - -func init() { - t["ProfileUpdateFailedFault"] = reflect.TypeOf((*ProfileUpdateFailedFault)(nil)).Elem() -} - -type ProfileUpdateFailedUpdateFailure struct { - DynamicData - - ProfilePath ProfilePropertyPath `xml:"profilePath"` - ErrMsg LocalizableMessage `xml:"errMsg"` -} - -func init() { - t["ProfileUpdateFailedUpdateFailure"] = reflect.TypeOf((*ProfileUpdateFailedUpdateFailure)(nil)).Elem() -} - -type PromoteDisksRequestType struct { - This ManagedObjectReference `xml:"_this"` - Unlink bool `xml:"unlink"` - Disks []VirtualDisk `xml:"disks,omitempty"` -} - -func init() { - t["PromoteDisksRequestType"] = reflect.TypeOf((*PromoteDisksRequestType)(nil)).Elem() -} - -type PromoteDisks_Task PromoteDisksRequestType - -func init() { - t["PromoteDisks_Task"] = reflect.TypeOf((*PromoteDisks_Task)(nil)).Elem() -} - -type PromoteDisks_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type PropertyChange struct { - DynamicData - - Name string `xml:"name"` - Op PropertyChangeOp `xml:"op"` - Val AnyType `xml:"val,omitempty,typeattr"` -} - -func init() { - t["PropertyChange"] = reflect.TypeOf((*PropertyChange)(nil)).Elem() -} - -type PropertyFilterSpec struct { - DynamicData - - PropSet []PropertySpec `xml:"propSet"` - ObjectSet []ObjectSpec `xml:"objectSet"` - ReportMissingObjectsInResults *bool `xml:"reportMissingObjectsInResults"` -} - -func init() { - t["PropertyFilterSpec"] = reflect.TypeOf((*PropertyFilterSpec)(nil)).Elem() -} - -type PropertyFilterUpdate struct { - DynamicData - - Filter ManagedObjectReference `xml:"filter"` - ObjectSet []ObjectUpdate `xml:"objectSet,omitempty"` - MissingSet []MissingObject `xml:"missingSet,omitempty"` -} - -func init() { - t["PropertyFilterUpdate"] = reflect.TypeOf((*PropertyFilterUpdate)(nil)).Elem() -} - -type PropertySpec struct { - DynamicData - - Type string `xml:"type"` - All *bool `xml:"all"` - PathSet []string `xml:"pathSet,omitempty"` -} - -func init() { - t["PropertySpec"] = reflect.TypeOf((*PropertySpec)(nil)).Elem() -} - -type PutUsbScanCodes PutUsbScanCodesRequestType - -func init() { - t["PutUsbScanCodes"] = reflect.TypeOf((*PutUsbScanCodes)(nil)).Elem() -} - -type PutUsbScanCodesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec UsbScanCodeSpec `xml:"spec"` -} - -func init() { - t["PutUsbScanCodesRequestType"] = reflect.TypeOf((*PutUsbScanCodesRequestType)(nil)).Elem() -} - -type PutUsbScanCodesResponse struct { - Returnval int32 `xml:"returnval"` -} - -type QuarantineModeFault struct { - VmConfigFault - - VmName string `xml:"vmName"` - FaultType string `xml:"faultType"` -} - -func init() { - t["QuarantineModeFault"] = reflect.TypeOf((*QuarantineModeFault)(nil)).Elem() -} - -type QuarantineModeFaultFault QuarantineModeFault - -func init() { - t["QuarantineModeFaultFault"] = reflect.TypeOf((*QuarantineModeFaultFault)(nil)).Elem() -} - -type QueryAnswerFileStatus QueryAnswerFileStatusRequestType - -func init() { - t["QueryAnswerFileStatus"] = reflect.TypeOf((*QueryAnswerFileStatus)(nil)).Elem() -} - -type QueryAnswerFileStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["QueryAnswerFileStatusRequestType"] = reflect.TypeOf((*QueryAnswerFileStatusRequestType)(nil)).Elem() -} - -type QueryAnswerFileStatusResponse struct { - Returnval []AnswerFileStatusResult `xml:"returnval,omitempty"` -} - -type QueryAssignedLicenses QueryAssignedLicensesRequestType - -func init() { - t["QueryAssignedLicenses"] = reflect.TypeOf((*QueryAssignedLicenses)(nil)).Elem() -} - -type QueryAssignedLicensesRequestType struct { - This ManagedObjectReference `xml:"_this"` - EntityId string `xml:"entityId,omitempty"` -} - -func init() { - t["QueryAssignedLicensesRequestType"] = reflect.TypeOf((*QueryAssignedLicensesRequestType)(nil)).Elem() -} - -type QueryAssignedLicensesResponse struct { - Returnval []LicenseAssignmentManagerLicenseAssignment `xml:"returnval"` -} - -type QueryAvailableDisksForVmfs QueryAvailableDisksForVmfsRequestType - -func init() { - t["QueryAvailableDisksForVmfs"] = reflect.TypeOf((*QueryAvailableDisksForVmfs)(nil)).Elem() -} - -type QueryAvailableDisksForVmfsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` -} - -func init() { - t["QueryAvailableDisksForVmfsRequestType"] = reflect.TypeOf((*QueryAvailableDisksForVmfsRequestType)(nil)).Elem() -} - -type QueryAvailableDisksForVmfsResponse struct { - Returnval []HostScsiDisk `xml:"returnval,omitempty"` -} - -type QueryAvailableDvsSpec QueryAvailableDvsSpecRequestType - -func init() { - t["QueryAvailableDvsSpec"] = reflect.TypeOf((*QueryAvailableDvsSpec)(nil)).Elem() -} - -type QueryAvailableDvsSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Recommended *bool `xml:"recommended"` -} - -func init() { - t["QueryAvailableDvsSpecRequestType"] = reflect.TypeOf((*QueryAvailableDvsSpecRequestType)(nil)).Elem() -} - -type QueryAvailableDvsSpecResponse struct { - Returnval []DistributedVirtualSwitchProductSpec `xml:"returnval,omitempty"` -} - -type QueryAvailablePartition QueryAvailablePartitionRequestType - -func init() { - t["QueryAvailablePartition"] = reflect.TypeOf((*QueryAvailablePartition)(nil)).Elem() -} - -type QueryAvailablePartitionRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryAvailablePartitionRequestType"] = reflect.TypeOf((*QueryAvailablePartitionRequestType)(nil)).Elem() -} - -type QueryAvailablePartitionResponse struct { - Returnval []HostDiagnosticPartition `xml:"returnval,omitempty"` -} - -type QueryAvailablePerfMetric QueryAvailablePerfMetricRequestType - -func init() { - t["QueryAvailablePerfMetric"] = reflect.TypeOf((*QueryAvailablePerfMetric)(nil)).Elem() -} - -type QueryAvailablePerfMetricRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - BeginTime *time.Time `xml:"beginTime"` - EndTime *time.Time `xml:"endTime"` - IntervalId int32 `xml:"intervalId,omitempty"` -} - -func init() { - t["QueryAvailablePerfMetricRequestType"] = reflect.TypeOf((*QueryAvailablePerfMetricRequestType)(nil)).Elem() -} - -type QueryAvailablePerfMetricResponse struct { - Returnval []PerfMetricId `xml:"returnval,omitempty"` -} - -type QueryAvailableSsds QueryAvailableSsdsRequestType - -func init() { - t["QueryAvailableSsds"] = reflect.TypeOf((*QueryAvailableSsds)(nil)).Elem() -} - -type QueryAvailableSsdsRequestType struct { - This ManagedObjectReference `xml:"_this"` - VffsPath string `xml:"vffsPath,omitempty"` -} - -func init() { - t["QueryAvailableSsdsRequestType"] = reflect.TypeOf((*QueryAvailableSsdsRequestType)(nil)).Elem() -} - -type QueryAvailableSsdsResponse struct { - Returnval []HostScsiDisk `xml:"returnval,omitempty"` -} - -type QueryAvailableTimeZones QueryAvailableTimeZonesRequestType - -func init() { - t["QueryAvailableTimeZones"] = reflect.TypeOf((*QueryAvailableTimeZones)(nil)).Elem() -} - -type QueryAvailableTimeZonesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryAvailableTimeZonesRequestType"] = reflect.TypeOf((*QueryAvailableTimeZonesRequestType)(nil)).Elem() -} - -type QueryAvailableTimeZonesResponse struct { - Returnval []HostDateTimeSystemTimeZone `xml:"returnval,omitempty"` -} - -type QueryBootDevices QueryBootDevicesRequestType - -func init() { - t["QueryBootDevices"] = reflect.TypeOf((*QueryBootDevices)(nil)).Elem() -} - -type QueryBootDevicesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryBootDevicesRequestType"] = reflect.TypeOf((*QueryBootDevicesRequestType)(nil)).Elem() -} - -type QueryBootDevicesResponse struct { - Returnval *HostBootDeviceInfo `xml:"returnval,omitempty"` -} - -type QueryBoundVnics QueryBoundVnicsRequestType - -func init() { - t["QueryBoundVnics"] = reflect.TypeOf((*QueryBoundVnics)(nil)).Elem() -} - -type QueryBoundVnicsRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaName string `xml:"iScsiHbaName"` -} - -func init() { - t["QueryBoundVnicsRequestType"] = reflect.TypeOf((*QueryBoundVnicsRequestType)(nil)).Elem() -} - -type QueryBoundVnicsResponse struct { - Returnval []IscsiPortInfo `xml:"returnval,omitempty"` -} - -type QueryCandidateNics QueryCandidateNicsRequestType - -func init() { - t["QueryCandidateNics"] = reflect.TypeOf((*QueryCandidateNics)(nil)).Elem() -} - -type QueryCandidateNicsRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaName string `xml:"iScsiHbaName"` -} - -func init() { - t["QueryCandidateNicsRequestType"] = reflect.TypeOf((*QueryCandidateNicsRequestType)(nil)).Elem() -} - -type QueryCandidateNicsResponse struct { - Returnval []IscsiPortInfo `xml:"returnval,omitempty"` -} - -type QueryChangedDiskAreas QueryChangedDiskAreasRequestType - -func init() { - t["QueryChangedDiskAreas"] = reflect.TypeOf((*QueryChangedDiskAreas)(nil)).Elem() -} - -type QueryChangedDiskAreasRequestType struct { - This ManagedObjectReference `xml:"_this"` - Snapshot *ManagedObjectReference `xml:"snapshot,omitempty"` - DeviceKey int32 `xml:"deviceKey"` - StartOffset int64 `xml:"startOffset"` - ChangeId string `xml:"changeId"` -} - -func init() { - t["QueryChangedDiskAreasRequestType"] = reflect.TypeOf((*QueryChangedDiskAreasRequestType)(nil)).Elem() -} - -type QueryChangedDiskAreasResponse struct { - Returnval DiskChangeInfo `xml:"returnval"` -} - -type QueryCmmds QueryCmmdsRequestType - -func init() { - t["QueryCmmds"] = reflect.TypeOf((*QueryCmmds)(nil)).Elem() -} - -type QueryCmmdsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Queries []HostVsanInternalSystemCmmdsQuery `xml:"queries"` -} - -func init() { - t["QueryCmmdsRequestType"] = reflect.TypeOf((*QueryCmmdsRequestType)(nil)).Elem() -} - -type QueryCmmdsResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryCompatibleHostForExistingDvs QueryCompatibleHostForExistingDvsRequestType - -func init() { - t["QueryCompatibleHostForExistingDvs"] = reflect.TypeOf((*QueryCompatibleHostForExistingDvs)(nil)).Elem() -} - -type QueryCompatibleHostForExistingDvsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Container ManagedObjectReference `xml:"container"` - Recursive bool `xml:"recursive"` - Dvs ManagedObjectReference `xml:"dvs"` -} - -func init() { - t["QueryCompatibleHostForExistingDvsRequestType"] = reflect.TypeOf((*QueryCompatibleHostForExistingDvsRequestType)(nil)).Elem() -} - -type QueryCompatibleHostForExistingDvsResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type QueryCompatibleHostForNewDvs QueryCompatibleHostForNewDvsRequestType - -func init() { - t["QueryCompatibleHostForNewDvs"] = reflect.TypeOf((*QueryCompatibleHostForNewDvs)(nil)).Elem() -} - -type QueryCompatibleHostForNewDvsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Container ManagedObjectReference `xml:"container"` - Recursive bool `xml:"recursive"` - SwitchProductSpec *DistributedVirtualSwitchProductSpec `xml:"switchProductSpec,omitempty"` -} - -func init() { - t["QueryCompatibleHostForNewDvsRequestType"] = reflect.TypeOf((*QueryCompatibleHostForNewDvsRequestType)(nil)).Elem() -} - -type QueryCompatibleHostForNewDvsResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type QueryComplianceStatus QueryComplianceStatusRequestType - -func init() { - t["QueryComplianceStatus"] = reflect.TypeOf((*QueryComplianceStatus)(nil)).Elem() -} - -type QueryComplianceStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - Profile []ManagedObjectReference `xml:"profile,omitempty"` - Entity []ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["QueryComplianceStatusRequestType"] = reflect.TypeOf((*QueryComplianceStatusRequestType)(nil)).Elem() -} - -type QueryComplianceStatusResponse struct { - Returnval []ComplianceResult `xml:"returnval,omitempty"` -} - -type QueryConfigOption QueryConfigOptionRequestType - -func init() { - t["QueryConfigOption"] = reflect.TypeOf((*QueryConfigOption)(nil)).Elem() -} - -type QueryConfigOptionDescriptor QueryConfigOptionDescriptorRequestType - -func init() { - t["QueryConfigOptionDescriptor"] = reflect.TypeOf((*QueryConfigOptionDescriptor)(nil)).Elem() -} - -type QueryConfigOptionDescriptorRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryConfigOptionDescriptorRequestType"] = reflect.TypeOf((*QueryConfigOptionDescriptorRequestType)(nil)).Elem() -} - -type QueryConfigOptionDescriptorResponse struct { - Returnval []VirtualMachineConfigOptionDescriptor `xml:"returnval,omitempty"` -} - -type QueryConfigOptionEx QueryConfigOptionExRequestType - -func init() { - t["QueryConfigOptionEx"] = reflect.TypeOf((*QueryConfigOptionEx)(nil)).Elem() -} - -type QueryConfigOptionExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec *EnvironmentBrowserConfigOptionQuerySpec `xml:"spec,omitempty"` -} - -func init() { - t["QueryConfigOptionExRequestType"] = reflect.TypeOf((*QueryConfigOptionExRequestType)(nil)).Elem() -} - -type QueryConfigOptionExResponse struct { - Returnval *VirtualMachineConfigOption `xml:"returnval,omitempty"` -} - -type QueryConfigOptionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key string `xml:"key,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["QueryConfigOptionRequestType"] = reflect.TypeOf((*QueryConfigOptionRequestType)(nil)).Elem() -} - -type QueryConfigOptionResponse struct { - Returnval *VirtualMachineConfigOption `xml:"returnval,omitempty"` -} - -type QueryConfigTarget QueryConfigTargetRequestType - -func init() { - t["QueryConfigTarget"] = reflect.TypeOf((*QueryConfigTarget)(nil)).Elem() -} - -type QueryConfigTargetRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["QueryConfigTargetRequestType"] = reflect.TypeOf((*QueryConfigTargetRequestType)(nil)).Elem() -} - -type QueryConfigTargetResponse struct { - Returnval *ConfigTarget `xml:"returnval,omitempty"` -} - -type QueryConfiguredModuleOptionString QueryConfiguredModuleOptionStringRequestType - -func init() { - t["QueryConfiguredModuleOptionString"] = reflect.TypeOf((*QueryConfiguredModuleOptionString)(nil)).Elem() -} - -type QueryConfiguredModuleOptionStringRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` -} - -func init() { - t["QueryConfiguredModuleOptionStringRequestType"] = reflect.TypeOf((*QueryConfiguredModuleOptionStringRequestType)(nil)).Elem() -} - -type QueryConfiguredModuleOptionStringResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryConnectionInfo QueryConnectionInfoRequestType - -func init() { - t["QueryConnectionInfo"] = reflect.TypeOf((*QueryConnectionInfo)(nil)).Elem() -} - -type QueryConnectionInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` - Hostname string `xml:"hostname"` - Port int32 `xml:"port"` - Username string `xml:"username"` - Password string `xml:"password"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` -} - -func init() { - t["QueryConnectionInfoRequestType"] = reflect.TypeOf((*QueryConnectionInfoRequestType)(nil)).Elem() -} - -type QueryConnectionInfoResponse struct { - Returnval HostConnectInfo `xml:"returnval"` -} - -type QueryConnectionInfoViaSpec QueryConnectionInfoViaSpecRequestType - -func init() { - t["QueryConnectionInfoViaSpec"] = reflect.TypeOf((*QueryConnectionInfoViaSpec)(nil)).Elem() -} - -type QueryConnectionInfoViaSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostConnectSpec `xml:"spec"` -} - -func init() { - t["QueryConnectionInfoViaSpecRequestType"] = reflect.TypeOf((*QueryConnectionInfoViaSpecRequestType)(nil)).Elem() -} - -type QueryConnectionInfoViaSpecResponse struct { - Returnval HostConnectInfo `xml:"returnval"` -} - -type QueryDatastorePerformanceSummary QueryDatastorePerformanceSummaryRequestType - -func init() { - t["QueryDatastorePerformanceSummary"] = reflect.TypeOf((*QueryDatastorePerformanceSummary)(nil)).Elem() -} - -type QueryDatastorePerformanceSummaryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["QueryDatastorePerformanceSummaryRequestType"] = reflect.TypeOf((*QueryDatastorePerformanceSummaryRequestType)(nil)).Elem() -} - -type QueryDatastorePerformanceSummaryResponse struct { - Returnval []StoragePerformanceSummary `xml:"returnval,omitempty"` -} - -type QueryDateTime QueryDateTimeRequestType - -func init() { - t["QueryDateTime"] = reflect.TypeOf((*QueryDateTime)(nil)).Elem() -} - -type QueryDateTimeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryDateTimeRequestType"] = reflect.TypeOf((*QueryDateTimeRequestType)(nil)).Elem() -} - -type QueryDateTimeResponse struct { - Returnval time.Time `xml:"returnval"` -} - -type QueryDescriptions QueryDescriptionsRequestType - -func init() { - t["QueryDescriptions"] = reflect.TypeOf((*QueryDescriptions)(nil)).Elem() -} - -type QueryDescriptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["QueryDescriptionsRequestType"] = reflect.TypeOf((*QueryDescriptionsRequestType)(nil)).Elem() -} - -type QueryDescriptionsResponse struct { - Returnval []DiagnosticManagerLogDescriptor `xml:"returnval,omitempty"` -} - -type QueryDisksForVsan QueryDisksForVsanRequestType - -func init() { - t["QueryDisksForVsan"] = reflect.TypeOf((*QueryDisksForVsan)(nil)).Elem() -} - -type QueryDisksForVsanRequestType struct { - This ManagedObjectReference `xml:"_this"` - CanonicalName []string `xml:"canonicalName,omitempty"` -} - -func init() { - t["QueryDisksForVsanRequestType"] = reflect.TypeOf((*QueryDisksForVsanRequestType)(nil)).Elem() -} - -type QueryDisksForVsanResponse struct { - Returnval []VsanHostDiskResult `xml:"returnval,omitempty"` -} - -type QueryDisksUsingFilter QueryDisksUsingFilterRequestType - -func init() { - t["QueryDisksUsingFilter"] = reflect.TypeOf((*QueryDisksUsingFilter)(nil)).Elem() -} - -type QueryDisksUsingFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - CompRes ManagedObjectReference `xml:"compRes"` -} - -func init() { - t["QueryDisksUsingFilterRequestType"] = reflect.TypeOf((*QueryDisksUsingFilterRequestType)(nil)).Elem() -} - -type QueryDisksUsingFilterResponse struct { - Returnval []VirtualDiskId `xml:"returnval"` -} - -type QueryDvsByUuid QueryDvsByUuidRequestType - -func init() { - t["QueryDvsByUuid"] = reflect.TypeOf((*QueryDvsByUuid)(nil)).Elem() -} - -type QueryDvsByUuidRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuid string `xml:"uuid"` -} - -func init() { - t["QueryDvsByUuidRequestType"] = reflect.TypeOf((*QueryDvsByUuidRequestType)(nil)).Elem() -} - -type QueryDvsByUuidResponse struct { - Returnval *ManagedObjectReference `xml:"returnval,omitempty"` -} - -type QueryDvsCheckCompatibility QueryDvsCheckCompatibilityRequestType - -func init() { - t["QueryDvsCheckCompatibility"] = reflect.TypeOf((*QueryDvsCheckCompatibility)(nil)).Elem() -} - -type QueryDvsCheckCompatibilityRequestType struct { - This ManagedObjectReference `xml:"_this"` - HostContainer DistributedVirtualSwitchManagerHostContainer `xml:"hostContainer"` - DvsProductSpec *DistributedVirtualSwitchManagerDvsProductSpec `xml:"dvsProductSpec,omitempty"` - HostFilterSpec []BaseDistributedVirtualSwitchManagerHostDvsFilterSpec `xml:"hostFilterSpec,omitempty,typeattr"` -} - -func init() { - t["QueryDvsCheckCompatibilityRequestType"] = reflect.TypeOf((*QueryDvsCheckCompatibilityRequestType)(nil)).Elem() -} - -type QueryDvsCheckCompatibilityResponse struct { - Returnval []DistributedVirtualSwitchManagerCompatibilityResult `xml:"returnval,omitempty"` -} - -type QueryDvsCompatibleHostSpec QueryDvsCompatibleHostSpecRequestType - -func init() { - t["QueryDvsCompatibleHostSpec"] = reflect.TypeOf((*QueryDvsCompatibleHostSpec)(nil)).Elem() -} - -type QueryDvsCompatibleHostSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - SwitchProductSpec *DistributedVirtualSwitchProductSpec `xml:"switchProductSpec,omitempty"` -} - -func init() { - t["QueryDvsCompatibleHostSpecRequestType"] = reflect.TypeOf((*QueryDvsCompatibleHostSpecRequestType)(nil)).Elem() -} - -type QueryDvsCompatibleHostSpecResponse struct { - Returnval []DistributedVirtualSwitchHostProductSpec `xml:"returnval,omitempty"` -} - -type QueryDvsConfigTarget QueryDvsConfigTargetRequestType - -func init() { - t["QueryDvsConfigTarget"] = reflect.TypeOf((*QueryDvsConfigTarget)(nil)).Elem() -} - -type QueryDvsConfigTargetRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Dvs *ManagedObjectReference `xml:"dvs,omitempty"` -} - -func init() { - t["QueryDvsConfigTargetRequestType"] = reflect.TypeOf((*QueryDvsConfigTargetRequestType)(nil)).Elem() -} - -type QueryDvsConfigTargetResponse struct { - Returnval DVSManagerDvsConfigTarget `xml:"returnval"` -} - -type QueryDvsFeatureCapability QueryDvsFeatureCapabilityRequestType - -func init() { - t["QueryDvsFeatureCapability"] = reflect.TypeOf((*QueryDvsFeatureCapability)(nil)).Elem() -} - -type QueryDvsFeatureCapabilityRequestType struct { - This ManagedObjectReference `xml:"_this"` - SwitchProductSpec *DistributedVirtualSwitchProductSpec `xml:"switchProductSpec,omitempty"` -} - -func init() { - t["QueryDvsFeatureCapabilityRequestType"] = reflect.TypeOf((*QueryDvsFeatureCapabilityRequestType)(nil)).Elem() -} - -type QueryDvsFeatureCapabilityResponse struct { - Returnval BaseDVSFeatureCapability `xml:"returnval,omitempty,typeattr"` -} - -type QueryEvents QueryEventsRequestType - -func init() { - t["QueryEvents"] = reflect.TypeOf((*QueryEvents)(nil)).Elem() -} - -type QueryEventsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Filter EventFilterSpec `xml:"filter"` -} - -func init() { - t["QueryEventsRequestType"] = reflect.TypeOf((*QueryEventsRequestType)(nil)).Elem() -} - -type QueryEventsResponse struct { - Returnval []BaseEvent `xml:"returnval,omitempty,typeattr"` -} - -type QueryExpressionMetadata QueryExpressionMetadataRequestType - -func init() { - t["QueryExpressionMetadata"] = reflect.TypeOf((*QueryExpressionMetadata)(nil)).Elem() -} - -type QueryExpressionMetadataRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExpressionName []string `xml:"expressionName,omitempty"` - Profile *ManagedObjectReference `xml:"profile,omitempty"` -} - -func init() { - t["QueryExpressionMetadataRequestType"] = reflect.TypeOf((*QueryExpressionMetadataRequestType)(nil)).Elem() -} - -type QueryExpressionMetadataResponse struct { - Returnval []ProfileExpressionMetadata `xml:"returnval,omitempty"` -} - -type QueryExtensionIpAllocationUsage QueryExtensionIpAllocationUsageRequestType - -func init() { - t["QueryExtensionIpAllocationUsage"] = reflect.TypeOf((*QueryExtensionIpAllocationUsage)(nil)).Elem() -} - -type QueryExtensionIpAllocationUsageRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKeys []string `xml:"extensionKeys,omitempty"` -} - -func init() { - t["QueryExtensionIpAllocationUsageRequestType"] = reflect.TypeOf((*QueryExtensionIpAllocationUsageRequestType)(nil)).Elem() -} - -type QueryExtensionIpAllocationUsageResponse struct { - Returnval []ExtensionManagerIpAllocationUsage `xml:"returnval,omitempty"` -} - -type QueryFaultToleranceCompatibility QueryFaultToleranceCompatibilityRequestType - -func init() { - t["QueryFaultToleranceCompatibility"] = reflect.TypeOf((*QueryFaultToleranceCompatibility)(nil)).Elem() -} - -type QueryFaultToleranceCompatibilityEx QueryFaultToleranceCompatibilityExRequestType - -func init() { - t["QueryFaultToleranceCompatibilityEx"] = reflect.TypeOf((*QueryFaultToleranceCompatibilityEx)(nil)).Elem() -} - -type QueryFaultToleranceCompatibilityExRequestType struct { - This ManagedObjectReference `xml:"_this"` - ForLegacyFt *bool `xml:"forLegacyFt"` -} - -func init() { - t["QueryFaultToleranceCompatibilityExRequestType"] = reflect.TypeOf((*QueryFaultToleranceCompatibilityExRequestType)(nil)).Elem() -} - -type QueryFaultToleranceCompatibilityExResponse struct { - Returnval []LocalizedMethodFault `xml:"returnval,omitempty"` -} - -type QueryFaultToleranceCompatibilityRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryFaultToleranceCompatibilityRequestType"] = reflect.TypeOf((*QueryFaultToleranceCompatibilityRequestType)(nil)).Elem() -} - -type QueryFaultToleranceCompatibilityResponse struct { - Returnval []LocalizedMethodFault `xml:"returnval,omitempty"` -} - -type QueryFilterEntities QueryFilterEntitiesRequestType - -func init() { - t["QueryFilterEntities"] = reflect.TypeOf((*QueryFilterEntities)(nil)).Elem() -} - -type QueryFilterEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` -} - -func init() { - t["QueryFilterEntitiesRequestType"] = reflect.TypeOf((*QueryFilterEntitiesRequestType)(nil)).Elem() -} - -type QueryFilterEntitiesResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type QueryFilterInfoIds QueryFilterInfoIdsRequestType - -func init() { - t["QueryFilterInfoIds"] = reflect.TypeOf((*QueryFilterInfoIds)(nil)).Elem() -} - -type QueryFilterInfoIdsRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` -} - -func init() { - t["QueryFilterInfoIdsRequestType"] = reflect.TypeOf((*QueryFilterInfoIdsRequestType)(nil)).Elem() -} - -type QueryFilterInfoIdsResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type QueryFilterList QueryFilterListRequestType - -func init() { - t["QueryFilterList"] = reflect.TypeOf((*QueryFilterList)(nil)).Elem() -} - -type QueryFilterListRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` -} - -func init() { - t["QueryFilterListRequestType"] = reflect.TypeOf((*QueryFilterListRequestType)(nil)).Elem() -} - -type QueryFilterListResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type QueryFilterName QueryFilterNameRequestType - -func init() { - t["QueryFilterName"] = reflect.TypeOf((*QueryFilterName)(nil)).Elem() -} - -type QueryFilterNameRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` -} - -func init() { - t["QueryFilterNameRequestType"] = reflect.TypeOf((*QueryFilterNameRequestType)(nil)).Elem() -} - -type QueryFilterNameResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryFirmwareConfigUploadURL QueryFirmwareConfigUploadURLRequestType - -func init() { - t["QueryFirmwareConfigUploadURL"] = reflect.TypeOf((*QueryFirmwareConfigUploadURL)(nil)).Elem() -} - -type QueryFirmwareConfigUploadURLRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryFirmwareConfigUploadURLRequestType"] = reflect.TypeOf((*QueryFirmwareConfigUploadURLRequestType)(nil)).Elem() -} - -type QueryFirmwareConfigUploadURLResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryHealthUpdateInfos QueryHealthUpdateInfosRequestType - -func init() { - t["QueryHealthUpdateInfos"] = reflect.TypeOf((*QueryHealthUpdateInfos)(nil)).Elem() -} - -type QueryHealthUpdateInfosRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` -} - -func init() { - t["QueryHealthUpdateInfosRequestType"] = reflect.TypeOf((*QueryHealthUpdateInfosRequestType)(nil)).Elem() -} - -type QueryHealthUpdateInfosResponse struct { - Returnval []HealthUpdateInfo `xml:"returnval,omitempty"` -} - -type QueryHealthUpdates QueryHealthUpdatesRequestType - -func init() { - t["QueryHealthUpdates"] = reflect.TypeOf((*QueryHealthUpdates)(nil)).Elem() -} - -type QueryHealthUpdatesRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` -} - -func init() { - t["QueryHealthUpdatesRequestType"] = reflect.TypeOf((*QueryHealthUpdatesRequestType)(nil)).Elem() -} - -type QueryHealthUpdatesResponse struct { - Returnval []HealthUpdate `xml:"returnval,omitempty"` -} - -type QueryHostConnectionInfo QueryHostConnectionInfoRequestType - -func init() { - t["QueryHostConnectionInfo"] = reflect.TypeOf((*QueryHostConnectionInfo)(nil)).Elem() -} - -type QueryHostConnectionInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryHostConnectionInfoRequestType"] = reflect.TypeOf((*QueryHostConnectionInfoRequestType)(nil)).Elem() -} - -type QueryHostConnectionInfoResponse struct { - Returnval HostConnectInfo `xml:"returnval"` -} - -type QueryHostPatchRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec *HostPatchManagerPatchManagerOperationSpec `xml:"spec,omitempty"` -} - -func init() { - t["QueryHostPatchRequestType"] = reflect.TypeOf((*QueryHostPatchRequestType)(nil)).Elem() -} - -type QueryHostPatch_Task QueryHostPatchRequestType - -func init() { - t["QueryHostPatch_Task"] = reflect.TypeOf((*QueryHostPatch_Task)(nil)).Elem() -} - -type QueryHostPatch_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type QueryHostProfileMetadata QueryHostProfileMetadataRequestType - -func init() { - t["QueryHostProfileMetadata"] = reflect.TypeOf((*QueryHostProfileMetadata)(nil)).Elem() -} - -type QueryHostProfileMetadataRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProfileName []string `xml:"profileName,omitempty"` - Profile *ManagedObjectReference `xml:"profile,omitempty"` -} - -func init() { - t["QueryHostProfileMetadataRequestType"] = reflect.TypeOf((*QueryHostProfileMetadataRequestType)(nil)).Elem() -} - -type QueryHostProfileMetadataResponse struct { - Returnval []ProfileMetadata `xml:"returnval,omitempty"` -} - -type QueryHostStatus QueryHostStatusRequestType - -func init() { - t["QueryHostStatus"] = reflect.TypeOf((*QueryHostStatus)(nil)).Elem() -} - -type QueryHostStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryHostStatusRequestType"] = reflect.TypeOf((*QueryHostStatusRequestType)(nil)).Elem() -} - -type QueryHostStatusResponse struct { - Returnval VsanHostClusterStatus `xml:"returnval"` -} - -type QueryIORMConfigOption QueryIORMConfigOptionRequestType - -func init() { - t["QueryIORMConfigOption"] = reflect.TypeOf((*QueryIORMConfigOption)(nil)).Elem() -} - -type QueryIORMConfigOptionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["QueryIORMConfigOptionRequestType"] = reflect.TypeOf((*QueryIORMConfigOptionRequestType)(nil)).Elem() -} - -type QueryIORMConfigOptionResponse struct { - Returnval StorageIORMConfigOption `xml:"returnval"` -} - -type QueryIPAllocations QueryIPAllocationsRequestType - -func init() { - t["QueryIPAllocations"] = reflect.TypeOf((*QueryIPAllocations)(nil)).Elem() -} - -type QueryIPAllocationsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` - PoolId int32 `xml:"poolId"` - ExtensionKey string `xml:"extensionKey"` -} - -func init() { - t["QueryIPAllocationsRequestType"] = reflect.TypeOf((*QueryIPAllocationsRequestType)(nil)).Elem() -} - -type QueryIPAllocationsResponse struct { - Returnval []IpPoolManagerIpAllocation `xml:"returnval"` -} - -type QueryIoFilterInfo QueryIoFilterInfoRequestType - -func init() { - t["QueryIoFilterInfo"] = reflect.TypeOf((*QueryIoFilterInfo)(nil)).Elem() -} - -type QueryIoFilterInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` - CompRes ManagedObjectReference `xml:"compRes"` -} - -func init() { - t["QueryIoFilterInfoRequestType"] = reflect.TypeOf((*QueryIoFilterInfoRequestType)(nil)).Elem() -} - -type QueryIoFilterInfoResponse struct { - Returnval []ClusterIoFilterInfo `xml:"returnval,omitempty"` -} - -type QueryIoFilterIssues QueryIoFilterIssuesRequestType - -func init() { - t["QueryIoFilterIssues"] = reflect.TypeOf((*QueryIoFilterIssues)(nil)).Elem() -} - -type QueryIoFilterIssuesRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - CompRes ManagedObjectReference `xml:"compRes"` -} - -func init() { - t["QueryIoFilterIssuesRequestType"] = reflect.TypeOf((*QueryIoFilterIssuesRequestType)(nil)).Elem() -} - -type QueryIoFilterIssuesResponse struct { - Returnval IoFilterQueryIssueResult `xml:"returnval"` -} - -type QueryIpPools QueryIpPoolsRequestType - -func init() { - t["QueryIpPools"] = reflect.TypeOf((*QueryIpPools)(nil)).Elem() -} - -type QueryIpPoolsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` -} - -func init() { - t["QueryIpPoolsRequestType"] = reflect.TypeOf((*QueryIpPoolsRequestType)(nil)).Elem() -} - -type QueryIpPoolsResponse struct { - Returnval []IpPool `xml:"returnval,omitempty"` -} - -type QueryLicenseSourceAvailability QueryLicenseSourceAvailabilityRequestType - -func init() { - t["QueryLicenseSourceAvailability"] = reflect.TypeOf((*QueryLicenseSourceAvailability)(nil)).Elem() -} - -type QueryLicenseSourceAvailabilityRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["QueryLicenseSourceAvailabilityRequestType"] = reflect.TypeOf((*QueryLicenseSourceAvailabilityRequestType)(nil)).Elem() -} - -type QueryLicenseSourceAvailabilityResponse struct { - Returnval []LicenseAvailabilityInfo `xml:"returnval,omitempty"` -} - -type QueryLicenseUsage QueryLicenseUsageRequestType - -func init() { - t["QueryLicenseUsage"] = reflect.TypeOf((*QueryLicenseUsage)(nil)).Elem() -} - -type QueryLicenseUsageRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["QueryLicenseUsageRequestType"] = reflect.TypeOf((*QueryLicenseUsageRequestType)(nil)).Elem() -} - -type QueryLicenseUsageResponse struct { - Returnval LicenseUsageInfo `xml:"returnval"` -} - -type QueryLockdownExceptions QueryLockdownExceptionsRequestType - -func init() { - t["QueryLockdownExceptions"] = reflect.TypeOf((*QueryLockdownExceptions)(nil)).Elem() -} - -type QueryLockdownExceptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryLockdownExceptionsRequestType"] = reflect.TypeOf((*QueryLockdownExceptionsRequestType)(nil)).Elem() -} - -type QueryLockdownExceptionsResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type QueryManagedBy QueryManagedByRequestType - -func init() { - t["QueryManagedBy"] = reflect.TypeOf((*QueryManagedBy)(nil)).Elem() -} - -type QueryManagedByRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKey string `xml:"extensionKey"` -} - -func init() { - t["QueryManagedByRequestType"] = reflect.TypeOf((*QueryManagedByRequestType)(nil)).Elem() -} - -type QueryManagedByResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type QueryMemoryOverhead QueryMemoryOverheadRequestType - -func init() { - t["QueryMemoryOverhead"] = reflect.TypeOf((*QueryMemoryOverhead)(nil)).Elem() -} - -type QueryMemoryOverheadEx QueryMemoryOverheadExRequestType - -func init() { - t["QueryMemoryOverheadEx"] = reflect.TypeOf((*QueryMemoryOverheadEx)(nil)).Elem() -} - -type QueryMemoryOverheadExRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmConfigInfo VirtualMachineConfigInfo `xml:"vmConfigInfo"` -} - -func init() { - t["QueryMemoryOverheadExRequestType"] = reflect.TypeOf((*QueryMemoryOverheadExRequestType)(nil)).Elem() -} - -type QueryMemoryOverheadExResponse struct { - Returnval int64 `xml:"returnval"` -} - -type QueryMemoryOverheadRequestType struct { - This ManagedObjectReference `xml:"_this"` - MemorySize int64 `xml:"memorySize"` - VideoRamSize int32 `xml:"videoRamSize,omitempty"` - NumVcpus int32 `xml:"numVcpus"` -} - -func init() { - t["QueryMemoryOverheadRequestType"] = reflect.TypeOf((*QueryMemoryOverheadRequestType)(nil)).Elem() -} - -type QueryMemoryOverheadResponse struct { - Returnval int64 `xml:"returnval"` -} - -type QueryMigrationDependencies QueryMigrationDependenciesRequestType - -func init() { - t["QueryMigrationDependencies"] = reflect.TypeOf((*QueryMigrationDependencies)(nil)).Elem() -} - -type QueryMigrationDependenciesRequestType struct { - This ManagedObjectReference `xml:"_this"` - PnicDevice []string `xml:"pnicDevice"` -} - -func init() { - t["QueryMigrationDependenciesRequestType"] = reflect.TypeOf((*QueryMigrationDependenciesRequestType)(nil)).Elem() -} - -type QueryMigrationDependenciesResponse struct { - Returnval IscsiMigrationDependency `xml:"returnval"` -} - -type QueryModules QueryModulesRequestType - -func init() { - t["QueryModules"] = reflect.TypeOf((*QueryModules)(nil)).Elem() -} - -type QueryModulesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryModulesRequestType"] = reflect.TypeOf((*QueryModulesRequestType)(nil)).Elem() -} - -type QueryModulesResponse struct { - Returnval []KernelModuleInfo `xml:"returnval,omitempty"` -} - -type QueryMonitoredEntities QueryMonitoredEntitiesRequestType - -func init() { - t["QueryMonitoredEntities"] = reflect.TypeOf((*QueryMonitoredEntities)(nil)).Elem() -} - -type QueryMonitoredEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` -} - -func init() { - t["QueryMonitoredEntitiesRequestType"] = reflect.TypeOf((*QueryMonitoredEntitiesRequestType)(nil)).Elem() -} - -type QueryMonitoredEntitiesResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type QueryNFSUser QueryNFSUserRequestType - -func init() { - t["QueryNFSUser"] = reflect.TypeOf((*QueryNFSUser)(nil)).Elem() -} - -type QueryNFSUserRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryNFSUserRequestType"] = reflect.TypeOf((*QueryNFSUserRequestType)(nil)).Elem() -} - -type QueryNFSUserResponse struct { - Returnval *HostNasVolumeUserInfo `xml:"returnval,omitempty"` -} - -type QueryNetConfig QueryNetConfigRequestType - -func init() { - t["QueryNetConfig"] = reflect.TypeOf((*QueryNetConfig)(nil)).Elem() -} - -type QueryNetConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - NicType string `xml:"nicType"` -} - -func init() { - t["QueryNetConfigRequestType"] = reflect.TypeOf((*QueryNetConfigRequestType)(nil)).Elem() -} - -type QueryNetConfigResponse struct { - Returnval *VirtualNicManagerNetConfig `xml:"returnval,omitempty"` -} - -type QueryNetworkHint QueryNetworkHintRequestType - -func init() { - t["QueryNetworkHint"] = reflect.TypeOf((*QueryNetworkHint)(nil)).Elem() -} - -type QueryNetworkHintRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device []string `xml:"device,omitempty"` -} - -func init() { - t["QueryNetworkHintRequestType"] = reflect.TypeOf((*QueryNetworkHintRequestType)(nil)).Elem() -} - -type QueryNetworkHintResponse struct { - Returnval []PhysicalNicHintInfo `xml:"returnval,omitempty"` -} - -type QueryObjectsOnPhysicalVsanDisk QueryObjectsOnPhysicalVsanDiskRequestType - -func init() { - t["QueryObjectsOnPhysicalVsanDisk"] = reflect.TypeOf((*QueryObjectsOnPhysicalVsanDisk)(nil)).Elem() -} - -type QueryObjectsOnPhysicalVsanDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Disks []string `xml:"disks"` -} - -func init() { - t["QueryObjectsOnPhysicalVsanDiskRequestType"] = reflect.TypeOf((*QueryObjectsOnPhysicalVsanDiskRequestType)(nil)).Elem() -} - -type QueryObjectsOnPhysicalVsanDiskResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryOptions QueryOptionsRequestType - -func init() { - t["QueryOptions"] = reflect.TypeOf((*QueryOptions)(nil)).Elem() -} - -type QueryOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name,omitempty"` -} - -func init() { - t["QueryOptionsRequestType"] = reflect.TypeOf((*QueryOptionsRequestType)(nil)).Elem() -} - -type QueryOptionsResponse struct { - Returnval []BaseOptionValue `xml:"returnval,omitempty,typeattr"` -} - -type QueryPartitionCreateDesc QueryPartitionCreateDescRequestType - -func init() { - t["QueryPartitionCreateDesc"] = reflect.TypeOf((*QueryPartitionCreateDesc)(nil)).Elem() -} - -type QueryPartitionCreateDescRequestType struct { - This ManagedObjectReference `xml:"_this"` - DiskUuid string `xml:"diskUuid"` - DiagnosticType string `xml:"diagnosticType"` -} - -func init() { - t["QueryPartitionCreateDescRequestType"] = reflect.TypeOf((*QueryPartitionCreateDescRequestType)(nil)).Elem() -} - -type QueryPartitionCreateDescResponse struct { - Returnval HostDiagnosticPartitionCreateDescription `xml:"returnval"` -} - -type QueryPartitionCreateOptions QueryPartitionCreateOptionsRequestType - -func init() { - t["QueryPartitionCreateOptions"] = reflect.TypeOf((*QueryPartitionCreateOptions)(nil)).Elem() -} - -type QueryPartitionCreateOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - StorageType string `xml:"storageType"` - DiagnosticType string `xml:"diagnosticType"` -} - -func init() { - t["QueryPartitionCreateOptionsRequestType"] = reflect.TypeOf((*QueryPartitionCreateOptionsRequestType)(nil)).Elem() -} - -type QueryPartitionCreateOptionsResponse struct { - Returnval []HostDiagnosticPartitionCreateOption `xml:"returnval,omitempty"` -} - -type QueryPathSelectionPolicyOptions QueryPathSelectionPolicyOptionsRequestType - -func init() { - t["QueryPathSelectionPolicyOptions"] = reflect.TypeOf((*QueryPathSelectionPolicyOptions)(nil)).Elem() -} - -type QueryPathSelectionPolicyOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryPathSelectionPolicyOptionsRequestType"] = reflect.TypeOf((*QueryPathSelectionPolicyOptionsRequestType)(nil)).Elem() -} - -type QueryPathSelectionPolicyOptionsResponse struct { - Returnval []HostPathSelectionPolicyOption `xml:"returnval,omitempty"` -} - -type QueryPerf QueryPerfRequestType - -func init() { - t["QueryPerf"] = reflect.TypeOf((*QueryPerf)(nil)).Elem() -} - -type QueryPerfComposite QueryPerfCompositeRequestType - -func init() { - t["QueryPerfComposite"] = reflect.TypeOf((*QueryPerfComposite)(nil)).Elem() -} - -type QueryPerfCompositeRequestType struct { - This ManagedObjectReference `xml:"_this"` - QuerySpec PerfQuerySpec `xml:"querySpec"` -} - -func init() { - t["QueryPerfCompositeRequestType"] = reflect.TypeOf((*QueryPerfCompositeRequestType)(nil)).Elem() -} - -type QueryPerfCompositeResponse struct { - Returnval PerfCompositeMetric `xml:"returnval"` -} - -type QueryPerfCounter QueryPerfCounterRequestType - -func init() { - t["QueryPerfCounter"] = reflect.TypeOf((*QueryPerfCounter)(nil)).Elem() -} - -type QueryPerfCounterByLevel QueryPerfCounterByLevelRequestType - -func init() { - t["QueryPerfCounterByLevel"] = reflect.TypeOf((*QueryPerfCounterByLevel)(nil)).Elem() -} - -type QueryPerfCounterByLevelRequestType struct { - This ManagedObjectReference `xml:"_this"` - Level int32 `xml:"level"` -} - -func init() { - t["QueryPerfCounterByLevelRequestType"] = reflect.TypeOf((*QueryPerfCounterByLevelRequestType)(nil)).Elem() -} - -type QueryPerfCounterByLevelResponse struct { - Returnval []PerfCounterInfo `xml:"returnval"` -} - -type QueryPerfCounterRequestType struct { - This ManagedObjectReference `xml:"_this"` - CounterId []int32 `xml:"counterId"` -} - -func init() { - t["QueryPerfCounterRequestType"] = reflect.TypeOf((*QueryPerfCounterRequestType)(nil)).Elem() -} - -type QueryPerfCounterResponse struct { - Returnval []PerfCounterInfo `xml:"returnval,omitempty"` -} - -type QueryPerfProviderSummary QueryPerfProviderSummaryRequestType - -func init() { - t["QueryPerfProviderSummary"] = reflect.TypeOf((*QueryPerfProviderSummary)(nil)).Elem() -} - -type QueryPerfProviderSummaryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["QueryPerfProviderSummaryRequestType"] = reflect.TypeOf((*QueryPerfProviderSummaryRequestType)(nil)).Elem() -} - -type QueryPerfProviderSummaryResponse struct { - Returnval PerfProviderSummary `xml:"returnval"` -} - -type QueryPerfRequestType struct { - This ManagedObjectReference `xml:"_this"` - QuerySpec []PerfQuerySpec `xml:"querySpec"` -} - -func init() { - t["QueryPerfRequestType"] = reflect.TypeOf((*QueryPerfRequestType)(nil)).Elem() -} - -type QueryPerfResponse struct { - Returnval []BasePerfEntityMetricBase `xml:"returnval,omitempty,typeattr"` -} - -type QueryPhysicalVsanDisks QueryPhysicalVsanDisksRequestType - -func init() { - t["QueryPhysicalVsanDisks"] = reflect.TypeOf((*QueryPhysicalVsanDisks)(nil)).Elem() -} - -type QueryPhysicalVsanDisksRequestType struct { - This ManagedObjectReference `xml:"_this"` - Props []string `xml:"props,omitempty"` -} - -func init() { - t["QueryPhysicalVsanDisksRequestType"] = reflect.TypeOf((*QueryPhysicalVsanDisksRequestType)(nil)).Elem() -} - -type QueryPhysicalVsanDisksResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryPnicStatus QueryPnicStatusRequestType - -func init() { - t["QueryPnicStatus"] = reflect.TypeOf((*QueryPnicStatus)(nil)).Elem() -} - -type QueryPnicStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - PnicDevice string `xml:"pnicDevice"` -} - -func init() { - t["QueryPnicStatusRequestType"] = reflect.TypeOf((*QueryPnicStatusRequestType)(nil)).Elem() -} - -type QueryPnicStatusResponse struct { - Returnval IscsiStatus `xml:"returnval"` -} - -type QueryPolicyMetadata QueryPolicyMetadataRequestType - -func init() { - t["QueryPolicyMetadata"] = reflect.TypeOf((*QueryPolicyMetadata)(nil)).Elem() -} - -type QueryPolicyMetadataRequestType struct { - This ManagedObjectReference `xml:"_this"` - PolicyName []string `xml:"policyName,omitempty"` - Profile *ManagedObjectReference `xml:"profile,omitempty"` -} - -func init() { - t["QueryPolicyMetadataRequestType"] = reflect.TypeOf((*QueryPolicyMetadataRequestType)(nil)).Elem() -} - -type QueryPolicyMetadataResponse struct { - Returnval []ProfilePolicyMetadata `xml:"returnval,omitempty"` -} - -type QueryProfileStructure QueryProfileStructureRequestType - -func init() { - t["QueryProfileStructure"] = reflect.TypeOf((*QueryProfileStructure)(nil)).Elem() -} - -type QueryProfileStructureRequestType struct { - This ManagedObjectReference `xml:"_this"` - Profile *ManagedObjectReference `xml:"profile,omitempty"` -} - -func init() { - t["QueryProfileStructureRequestType"] = reflect.TypeOf((*QueryProfileStructureRequestType)(nil)).Elem() -} - -type QueryProfileStructureResponse struct { - Returnval ProfileProfileStructure `xml:"returnval"` -} - -type QueryProviderList QueryProviderListRequestType - -func init() { - t["QueryProviderList"] = reflect.TypeOf((*QueryProviderList)(nil)).Elem() -} - -type QueryProviderListRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryProviderListRequestType"] = reflect.TypeOf((*QueryProviderListRequestType)(nil)).Elem() -} - -type QueryProviderListResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type QueryProviderName QueryProviderNameRequestType - -func init() { - t["QueryProviderName"] = reflect.TypeOf((*QueryProviderName)(nil)).Elem() -} - -type QueryProviderNameRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["QueryProviderNameRequestType"] = reflect.TypeOf((*QueryProviderNameRequestType)(nil)).Elem() -} - -type QueryProviderNameResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryResourceConfigOption QueryResourceConfigOptionRequestType - -func init() { - t["QueryResourceConfigOption"] = reflect.TypeOf((*QueryResourceConfigOption)(nil)).Elem() -} - -type QueryResourceConfigOptionRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryResourceConfigOptionRequestType"] = reflect.TypeOf((*QueryResourceConfigOptionRequestType)(nil)).Elem() -} - -type QueryResourceConfigOptionResponse struct { - Returnval ResourceConfigOption `xml:"returnval"` -} - -type QueryServiceList QueryServiceListRequestType - -func init() { - t["QueryServiceList"] = reflect.TypeOf((*QueryServiceList)(nil)).Elem() -} - -type QueryServiceListRequestType struct { - This ManagedObjectReference `xml:"_this"` - ServiceName string `xml:"serviceName,omitempty"` - Location []string `xml:"location,omitempty"` -} - -func init() { - t["QueryServiceListRequestType"] = reflect.TypeOf((*QueryServiceListRequestType)(nil)).Elem() -} - -type QueryServiceListResponse struct { - Returnval []ServiceManagerServiceInfo `xml:"returnval,omitempty"` -} - -type QueryStorageArrayTypePolicyOptions QueryStorageArrayTypePolicyOptionsRequestType - -func init() { - t["QueryStorageArrayTypePolicyOptions"] = reflect.TypeOf((*QueryStorageArrayTypePolicyOptions)(nil)).Elem() -} - -type QueryStorageArrayTypePolicyOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryStorageArrayTypePolicyOptionsRequestType"] = reflect.TypeOf((*QueryStorageArrayTypePolicyOptionsRequestType)(nil)).Elem() -} - -type QueryStorageArrayTypePolicyOptionsResponse struct { - Returnval []HostStorageArrayTypePolicyOption `xml:"returnval,omitempty"` -} - -type QuerySupportedFeatures QuerySupportedFeaturesRequestType - -func init() { - t["QuerySupportedFeatures"] = reflect.TypeOf((*QuerySupportedFeatures)(nil)).Elem() -} - -type QuerySupportedFeaturesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["QuerySupportedFeaturesRequestType"] = reflect.TypeOf((*QuerySupportedFeaturesRequestType)(nil)).Elem() -} - -type QuerySupportedFeaturesResponse struct { - Returnval []LicenseFeatureInfo `xml:"returnval,omitempty"` -} - -type QuerySyncingVsanObjects QuerySyncingVsanObjectsRequestType - -func init() { - t["QuerySyncingVsanObjects"] = reflect.TypeOf((*QuerySyncingVsanObjects)(nil)).Elem() -} - -type QuerySyncingVsanObjectsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuids []string `xml:"uuids,omitempty"` -} - -func init() { - t["QuerySyncingVsanObjectsRequestType"] = reflect.TypeOf((*QuerySyncingVsanObjectsRequestType)(nil)).Elem() -} - -type QuerySyncingVsanObjectsResponse struct { - Returnval string `xml:"returnval"` -} - -type QuerySystemUsers QuerySystemUsersRequestType - -func init() { - t["QuerySystemUsers"] = reflect.TypeOf((*QuerySystemUsers)(nil)).Elem() -} - -type QuerySystemUsersRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QuerySystemUsersRequestType"] = reflect.TypeOf((*QuerySystemUsersRequestType)(nil)).Elem() -} - -type QuerySystemUsersResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type QueryTargetCapabilities QueryTargetCapabilitiesRequestType - -func init() { - t["QueryTargetCapabilities"] = reflect.TypeOf((*QueryTargetCapabilities)(nil)).Elem() -} - -type QueryTargetCapabilitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["QueryTargetCapabilitiesRequestType"] = reflect.TypeOf((*QueryTargetCapabilitiesRequestType)(nil)).Elem() -} - -type QueryTargetCapabilitiesResponse struct { - Returnval *HostCapability `xml:"returnval,omitempty"` -} - -type QueryTpmAttestationReport QueryTpmAttestationReportRequestType - -func init() { - t["QueryTpmAttestationReport"] = reflect.TypeOf((*QueryTpmAttestationReport)(nil)).Elem() -} - -type QueryTpmAttestationReportRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryTpmAttestationReportRequestType"] = reflect.TypeOf((*QueryTpmAttestationReportRequestType)(nil)).Elem() -} - -type QueryTpmAttestationReportResponse struct { - Returnval *HostTpmAttestationReport `xml:"returnval,omitempty"` -} - -type QueryUnmonitoredHosts QueryUnmonitoredHostsRequestType - -func init() { - t["QueryUnmonitoredHosts"] = reflect.TypeOf((*QueryUnmonitoredHosts)(nil)).Elem() -} - -type QueryUnmonitoredHostsRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` - Cluster ManagedObjectReference `xml:"cluster"` -} - -func init() { - t["QueryUnmonitoredHostsRequestType"] = reflect.TypeOf((*QueryUnmonitoredHostsRequestType)(nil)).Elem() -} - -type QueryUnmonitoredHostsResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type QueryUnownedFiles QueryUnownedFilesRequestType - -func init() { - t["QueryUnownedFiles"] = reflect.TypeOf((*QueryUnownedFiles)(nil)).Elem() -} - -type QueryUnownedFilesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryUnownedFilesRequestType"] = reflect.TypeOf((*QueryUnownedFilesRequestType)(nil)).Elem() -} - -type QueryUnownedFilesResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type QueryUnresolvedVmfsVolume QueryUnresolvedVmfsVolumeRequestType - -func init() { - t["QueryUnresolvedVmfsVolume"] = reflect.TypeOf((*QueryUnresolvedVmfsVolume)(nil)).Elem() -} - -type QueryUnresolvedVmfsVolumeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryUnresolvedVmfsVolumeRequestType"] = reflect.TypeOf((*QueryUnresolvedVmfsVolumeRequestType)(nil)).Elem() -} - -type QueryUnresolvedVmfsVolumeResponse struct { - Returnval []HostUnresolvedVmfsVolume `xml:"returnval,omitempty"` -} - -type QueryUnresolvedVmfsVolumes QueryUnresolvedVmfsVolumesRequestType - -func init() { - t["QueryUnresolvedVmfsVolumes"] = reflect.TypeOf((*QueryUnresolvedVmfsVolumes)(nil)).Elem() -} - -type QueryUnresolvedVmfsVolumesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryUnresolvedVmfsVolumesRequestType"] = reflect.TypeOf((*QueryUnresolvedVmfsVolumesRequestType)(nil)).Elem() -} - -type QueryUnresolvedVmfsVolumesResponse struct { - Returnval []HostUnresolvedVmfsVolume `xml:"returnval,omitempty"` -} - -type QueryUsedVlanIdInDvs QueryUsedVlanIdInDvsRequestType - -func init() { - t["QueryUsedVlanIdInDvs"] = reflect.TypeOf((*QueryUsedVlanIdInDvs)(nil)).Elem() -} - -type QueryUsedVlanIdInDvsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryUsedVlanIdInDvsRequestType"] = reflect.TypeOf((*QueryUsedVlanIdInDvsRequestType)(nil)).Elem() -} - -type QueryUsedVlanIdInDvsResponse struct { - Returnval []int32 `xml:"returnval,omitempty"` -} - -type QueryVMotionCompatibility QueryVMotionCompatibilityRequestType - -func init() { - t["QueryVMotionCompatibility"] = reflect.TypeOf((*QueryVMotionCompatibility)(nil)).Elem() -} - -type QueryVMotionCompatibilityExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm []ManagedObjectReference `xml:"vm"` - Host []ManagedObjectReference `xml:"host"` -} - -func init() { - t["QueryVMotionCompatibilityExRequestType"] = reflect.TypeOf((*QueryVMotionCompatibilityExRequestType)(nil)).Elem() -} - -type QueryVMotionCompatibilityEx_Task QueryVMotionCompatibilityExRequestType - -func init() { - t["QueryVMotionCompatibilityEx_Task"] = reflect.TypeOf((*QueryVMotionCompatibilityEx_Task)(nil)).Elem() -} - -type QueryVMotionCompatibilityEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type QueryVMotionCompatibilityRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Host []ManagedObjectReference `xml:"host"` - Compatibility []string `xml:"compatibility,omitempty"` -} - -func init() { - t["QueryVMotionCompatibilityRequestType"] = reflect.TypeOf((*QueryVMotionCompatibilityRequestType)(nil)).Elem() -} - -type QueryVMotionCompatibilityResponse struct { - Returnval []HostVMotionCompatibility `xml:"returnval,omitempty"` -} - -type QueryVirtualDiskFragmentation QueryVirtualDiskFragmentationRequestType - -func init() { - t["QueryVirtualDiskFragmentation"] = reflect.TypeOf((*QueryVirtualDiskFragmentation)(nil)).Elem() -} - -type QueryVirtualDiskFragmentationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["QueryVirtualDiskFragmentationRequestType"] = reflect.TypeOf((*QueryVirtualDiskFragmentationRequestType)(nil)).Elem() -} - -type QueryVirtualDiskFragmentationResponse struct { - Returnval int32 `xml:"returnval"` -} - -type QueryVirtualDiskGeometry QueryVirtualDiskGeometryRequestType - -func init() { - t["QueryVirtualDiskGeometry"] = reflect.TypeOf((*QueryVirtualDiskGeometry)(nil)).Elem() -} - -type QueryVirtualDiskGeometryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["QueryVirtualDiskGeometryRequestType"] = reflect.TypeOf((*QueryVirtualDiskGeometryRequestType)(nil)).Elem() -} - -type QueryVirtualDiskGeometryResponse struct { - Returnval HostDiskDimensionsChs `xml:"returnval"` -} - -type QueryVirtualDiskUuid QueryVirtualDiskUuidRequestType - -func init() { - t["QueryVirtualDiskUuid"] = reflect.TypeOf((*QueryVirtualDiskUuid)(nil)).Elem() -} - -type QueryVirtualDiskUuidRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["QueryVirtualDiskUuidRequestType"] = reflect.TypeOf((*QueryVirtualDiskUuidRequestType)(nil)).Elem() -} - -type QueryVirtualDiskUuidResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryVmfsConfigOption QueryVmfsConfigOptionRequestType - -func init() { - t["QueryVmfsConfigOption"] = reflect.TypeOf((*QueryVmfsConfigOption)(nil)).Elem() -} - -type QueryVmfsConfigOptionRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["QueryVmfsConfigOptionRequestType"] = reflect.TypeOf((*QueryVmfsConfigOptionRequestType)(nil)).Elem() -} - -type QueryVmfsConfigOptionResponse struct { - Returnval []VmfsConfigOption `xml:"returnval,omitempty"` -} - -type QueryVmfsDatastoreCreateOptions QueryVmfsDatastoreCreateOptionsRequestType - -func init() { - t["QueryVmfsDatastoreCreateOptions"] = reflect.TypeOf((*QueryVmfsDatastoreCreateOptions)(nil)).Elem() -} - -type QueryVmfsDatastoreCreateOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - DevicePath string `xml:"devicePath"` - VmfsMajorVersion int32 `xml:"vmfsMajorVersion,omitempty"` -} - -func init() { - t["QueryVmfsDatastoreCreateOptionsRequestType"] = reflect.TypeOf((*QueryVmfsDatastoreCreateOptionsRequestType)(nil)).Elem() -} - -type QueryVmfsDatastoreCreateOptionsResponse struct { - Returnval []VmfsDatastoreOption `xml:"returnval,omitempty"` -} - -type QueryVmfsDatastoreExpandOptions QueryVmfsDatastoreExpandOptionsRequestType - -func init() { - t["QueryVmfsDatastoreExpandOptions"] = reflect.TypeOf((*QueryVmfsDatastoreExpandOptions)(nil)).Elem() -} - -type QueryVmfsDatastoreExpandOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["QueryVmfsDatastoreExpandOptionsRequestType"] = reflect.TypeOf((*QueryVmfsDatastoreExpandOptionsRequestType)(nil)).Elem() -} - -type QueryVmfsDatastoreExpandOptionsResponse struct { - Returnval []VmfsDatastoreOption `xml:"returnval,omitempty"` -} - -type QueryVmfsDatastoreExtendOptions QueryVmfsDatastoreExtendOptionsRequestType - -func init() { - t["QueryVmfsDatastoreExtendOptions"] = reflect.TypeOf((*QueryVmfsDatastoreExtendOptions)(nil)).Elem() -} - -type QueryVmfsDatastoreExtendOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` - DevicePath string `xml:"devicePath"` - SuppressExpandCandidates *bool `xml:"suppressExpandCandidates"` -} - -func init() { - t["QueryVmfsDatastoreExtendOptionsRequestType"] = reflect.TypeOf((*QueryVmfsDatastoreExtendOptionsRequestType)(nil)).Elem() -} - -type QueryVmfsDatastoreExtendOptionsResponse struct { - Returnval []VmfsDatastoreOption `xml:"returnval,omitempty"` -} - -type QueryVnicStatus QueryVnicStatusRequestType - -func init() { - t["QueryVnicStatus"] = reflect.TypeOf((*QueryVnicStatus)(nil)).Elem() -} - -type QueryVnicStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - VnicDevice string `xml:"vnicDevice"` -} - -func init() { - t["QueryVnicStatusRequestType"] = reflect.TypeOf((*QueryVnicStatusRequestType)(nil)).Elem() -} - -type QueryVnicStatusResponse struct { - Returnval IscsiStatus `xml:"returnval"` -} - -type QueryVsanObjectUuidsByFilter QueryVsanObjectUuidsByFilterRequestType - -func init() { - t["QueryVsanObjectUuidsByFilter"] = reflect.TypeOf((*QueryVsanObjectUuidsByFilter)(nil)).Elem() -} - -type QueryVsanObjectUuidsByFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuids []string `xml:"uuids,omitempty"` - Limit int32 `xml:"limit,omitempty"` - Version int32 `xml:"version,omitempty"` -} - -func init() { - t["QueryVsanObjectUuidsByFilterRequestType"] = reflect.TypeOf((*QueryVsanObjectUuidsByFilterRequestType)(nil)).Elem() -} - -type QueryVsanObjectUuidsByFilterResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type QueryVsanObjects QueryVsanObjectsRequestType - -func init() { - t["QueryVsanObjects"] = reflect.TypeOf((*QueryVsanObjects)(nil)).Elem() -} - -type QueryVsanObjectsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuids []string `xml:"uuids,omitempty"` -} - -func init() { - t["QueryVsanObjectsRequestType"] = reflect.TypeOf((*QueryVsanObjectsRequestType)(nil)).Elem() -} - -type QueryVsanObjectsResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryVsanStatistics QueryVsanStatisticsRequestType - -func init() { - t["QueryVsanStatistics"] = reflect.TypeOf((*QueryVsanStatistics)(nil)).Elem() -} - -type QueryVsanStatisticsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Labels []string `xml:"labels"` -} - -func init() { - t["QueryVsanStatisticsRequestType"] = reflect.TypeOf((*QueryVsanStatisticsRequestType)(nil)).Elem() -} - -type QueryVsanStatisticsResponse struct { - Returnval string `xml:"returnval"` -} - -type QueryVsanUpgradeStatus QueryVsanUpgradeStatusRequestType - -func init() { - t["QueryVsanUpgradeStatus"] = reflect.TypeOf((*QueryVsanUpgradeStatus)(nil)).Elem() -} - -type QueryVsanUpgradeStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster ManagedObjectReference `xml:"cluster"` -} - -func init() { - t["QueryVsanUpgradeStatusRequestType"] = reflect.TypeOf((*QueryVsanUpgradeStatusRequestType)(nil)).Elem() -} - -type QueryVsanUpgradeStatusResponse struct { - Returnval VsanUpgradeSystemUpgradeStatus `xml:"returnval"` -} - -type QuestionPending struct { - InvalidState - - Text string `xml:"text"` -} - -func init() { - t["QuestionPending"] = reflect.TypeOf((*QuestionPending)(nil)).Elem() -} - -type QuestionPendingFault QuestionPending - -func init() { - t["QuestionPendingFault"] = reflect.TypeOf((*QuestionPendingFault)(nil)).Elem() -} - -type QuiesceDatastoreIOForHAFailed struct { - ResourceInUse - - Host ManagedObjectReference `xml:"host"` - HostName string `xml:"hostName"` - Ds ManagedObjectReference `xml:"ds"` - DsName string `xml:"dsName"` -} - -func init() { - t["QuiesceDatastoreIOForHAFailed"] = reflect.TypeOf((*QuiesceDatastoreIOForHAFailed)(nil)).Elem() -} - -type QuiesceDatastoreIOForHAFailedFault QuiesceDatastoreIOForHAFailed - -func init() { - t["QuiesceDatastoreIOForHAFailedFault"] = reflect.TypeOf((*QuiesceDatastoreIOForHAFailedFault)(nil)).Elem() -} - -type RDMConversionNotSupported struct { - MigrationFault - - Device string `xml:"device"` -} - -func init() { - t["RDMConversionNotSupported"] = reflect.TypeOf((*RDMConversionNotSupported)(nil)).Elem() -} - -type RDMConversionNotSupportedFault RDMConversionNotSupported - -func init() { - t["RDMConversionNotSupportedFault"] = reflect.TypeOf((*RDMConversionNotSupportedFault)(nil)).Elem() -} - -type RDMNotPreserved struct { - MigrationFault - - Device string `xml:"device"` -} - -func init() { - t["RDMNotPreserved"] = reflect.TypeOf((*RDMNotPreserved)(nil)).Elem() -} - -type RDMNotPreservedFault RDMNotPreserved - -func init() { - t["RDMNotPreservedFault"] = reflect.TypeOf((*RDMNotPreservedFault)(nil)).Elem() -} - -type RDMNotSupported struct { - DeviceNotSupported -} - -func init() { - t["RDMNotSupported"] = reflect.TypeOf((*RDMNotSupported)(nil)).Elem() -} - -type RDMNotSupportedFault BaseRDMNotSupported - -func init() { - t["RDMNotSupportedFault"] = reflect.TypeOf((*RDMNotSupportedFault)(nil)).Elem() -} - -type RDMNotSupportedOnDatastore struct { - VmConfigFault - - Device string `xml:"device"` - Datastore ManagedObjectReference `xml:"datastore"` - DatastoreName string `xml:"datastoreName"` -} - -func init() { - t["RDMNotSupportedOnDatastore"] = reflect.TypeOf((*RDMNotSupportedOnDatastore)(nil)).Elem() -} - -type RDMNotSupportedOnDatastoreFault RDMNotSupportedOnDatastore - -func init() { - t["RDMNotSupportedOnDatastoreFault"] = reflect.TypeOf((*RDMNotSupportedOnDatastoreFault)(nil)).Elem() -} - -type RDMPointsToInaccessibleDisk struct { - CannotAccessVmDisk -} - -func init() { - t["RDMPointsToInaccessibleDisk"] = reflect.TypeOf((*RDMPointsToInaccessibleDisk)(nil)).Elem() -} - -type RDMPointsToInaccessibleDiskFault RDMPointsToInaccessibleDisk - -func init() { - t["RDMPointsToInaccessibleDiskFault"] = reflect.TypeOf((*RDMPointsToInaccessibleDiskFault)(nil)).Elem() -} - -type RawDiskNotSupported struct { - DeviceNotSupported -} - -func init() { - t["RawDiskNotSupported"] = reflect.TypeOf((*RawDiskNotSupported)(nil)).Elem() -} - -type RawDiskNotSupportedFault RawDiskNotSupported - -func init() { - t["RawDiskNotSupportedFault"] = reflect.TypeOf((*RawDiskNotSupportedFault)(nil)).Elem() -} - -type ReadEnvironmentVariableInGuest ReadEnvironmentVariableInGuestRequestType - -func init() { - t["ReadEnvironmentVariableInGuest"] = reflect.TypeOf((*ReadEnvironmentVariableInGuest)(nil)).Elem() -} - -type ReadEnvironmentVariableInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Names []string `xml:"names,omitempty"` -} - -func init() { - t["ReadEnvironmentVariableInGuestRequestType"] = reflect.TypeOf((*ReadEnvironmentVariableInGuestRequestType)(nil)).Elem() -} - -type ReadEnvironmentVariableInGuestResponse struct { - Returnval []string `xml:"returnval,omitempty"` -} - -type ReadHostResourcePoolTreeFailed struct { - HostConnectFault -} - -func init() { - t["ReadHostResourcePoolTreeFailed"] = reflect.TypeOf((*ReadHostResourcePoolTreeFailed)(nil)).Elem() -} - -type ReadHostResourcePoolTreeFailedFault ReadHostResourcePoolTreeFailed - -func init() { - t["ReadHostResourcePoolTreeFailedFault"] = reflect.TypeOf((*ReadHostResourcePoolTreeFailedFault)(nil)).Elem() -} - -type ReadNextEvents ReadNextEventsRequestType - -func init() { - t["ReadNextEvents"] = reflect.TypeOf((*ReadNextEvents)(nil)).Elem() -} - -type ReadNextEventsRequestType struct { - This ManagedObjectReference `xml:"_this"` - MaxCount int32 `xml:"maxCount"` -} - -func init() { - t["ReadNextEventsRequestType"] = reflect.TypeOf((*ReadNextEventsRequestType)(nil)).Elem() -} - -type ReadNextEventsResponse struct { - Returnval []BaseEvent `xml:"returnval,omitempty,typeattr"` -} - -type ReadNextTasks ReadNextTasksRequestType - -func init() { - t["ReadNextTasks"] = reflect.TypeOf((*ReadNextTasks)(nil)).Elem() -} - -type ReadNextTasksRequestType struct { - This ManagedObjectReference `xml:"_this"` - MaxCount int32 `xml:"maxCount"` -} - -func init() { - t["ReadNextTasksRequestType"] = reflect.TypeOf((*ReadNextTasksRequestType)(nil)).Elem() -} - -type ReadNextTasksResponse struct { - Returnval []TaskInfo `xml:"returnval,omitempty"` -} - -type ReadOnlyDisksWithLegacyDestination struct { - MigrationFault - - RoDiskCount int32 `xml:"roDiskCount"` - TimeoutDanger bool `xml:"timeoutDanger"` -} - -func init() { - t["ReadOnlyDisksWithLegacyDestination"] = reflect.TypeOf((*ReadOnlyDisksWithLegacyDestination)(nil)).Elem() -} - -type ReadOnlyDisksWithLegacyDestinationFault ReadOnlyDisksWithLegacyDestination - -func init() { - t["ReadOnlyDisksWithLegacyDestinationFault"] = reflect.TypeOf((*ReadOnlyDisksWithLegacyDestinationFault)(nil)).Elem() -} - -type ReadPreviousEvents ReadPreviousEventsRequestType - -func init() { - t["ReadPreviousEvents"] = reflect.TypeOf((*ReadPreviousEvents)(nil)).Elem() -} - -type ReadPreviousEventsRequestType struct { - This ManagedObjectReference `xml:"_this"` - MaxCount int32 `xml:"maxCount"` -} - -func init() { - t["ReadPreviousEventsRequestType"] = reflect.TypeOf((*ReadPreviousEventsRequestType)(nil)).Elem() -} - -type ReadPreviousEventsResponse struct { - Returnval []BaseEvent `xml:"returnval,omitempty,typeattr"` -} - -type ReadPreviousTasks ReadPreviousTasksRequestType - -func init() { - t["ReadPreviousTasks"] = reflect.TypeOf((*ReadPreviousTasks)(nil)).Elem() -} - -type ReadPreviousTasksRequestType struct { - This ManagedObjectReference `xml:"_this"` - MaxCount int32 `xml:"maxCount"` -} - -func init() { - t["ReadPreviousTasksRequestType"] = reflect.TypeOf((*ReadPreviousTasksRequestType)(nil)).Elem() -} - -type ReadPreviousTasksResponse struct { - Returnval []TaskInfo `xml:"returnval,omitempty"` -} - -type RebootGuest RebootGuestRequestType - -func init() { - t["RebootGuest"] = reflect.TypeOf((*RebootGuest)(nil)).Elem() -} - -type RebootGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RebootGuestRequestType"] = reflect.TypeOf((*RebootGuestRequestType)(nil)).Elem() -} - -type RebootGuestResponse struct { -} - -type RebootHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - Force bool `xml:"force"` -} - -func init() { - t["RebootHostRequestType"] = reflect.TypeOf((*RebootHostRequestType)(nil)).Elem() -} - -type RebootHost_Task RebootHostRequestType - -func init() { - t["RebootHost_Task"] = reflect.TypeOf((*RebootHost_Task)(nil)).Elem() -} - -type RebootHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RebootRequired struct { - VimFault - - Patch string `xml:"patch,omitempty"` -} - -func init() { - t["RebootRequired"] = reflect.TypeOf((*RebootRequired)(nil)).Elem() -} - -type RebootRequiredFault RebootRequired - -func init() { - t["RebootRequiredFault"] = reflect.TypeOf((*RebootRequiredFault)(nil)).Elem() -} - -type RecommendDatastores RecommendDatastoresRequestType - -func init() { - t["RecommendDatastores"] = reflect.TypeOf((*RecommendDatastores)(nil)).Elem() -} - -type RecommendDatastoresRequestType struct { - This ManagedObjectReference `xml:"_this"` - StorageSpec StoragePlacementSpec `xml:"storageSpec"` -} - -func init() { - t["RecommendDatastoresRequestType"] = reflect.TypeOf((*RecommendDatastoresRequestType)(nil)).Elem() -} - -type RecommendDatastoresResponse struct { - Returnval StoragePlacementResult `xml:"returnval"` -} - -type RecommendHostsForVm RecommendHostsForVmRequestType - -func init() { - t["RecommendHostsForVm"] = reflect.TypeOf((*RecommendHostsForVm)(nil)).Elem() -} - -type RecommendHostsForVmRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` -} - -func init() { - t["RecommendHostsForVmRequestType"] = reflect.TypeOf((*RecommendHostsForVmRequestType)(nil)).Elem() -} - -type RecommendHostsForVmResponse struct { - Returnval []ClusterHostRecommendation `xml:"returnval,omitempty"` -} - -type RecommissionVsanNodeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RecommissionVsanNodeRequestType"] = reflect.TypeOf((*RecommissionVsanNodeRequestType)(nil)).Elem() -} - -type RecommissionVsanNode_Task RecommissionVsanNodeRequestType - -func init() { - t["RecommissionVsanNode_Task"] = reflect.TypeOf((*RecommissionVsanNode_Task)(nil)).Elem() -} - -type RecommissionVsanNode_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconcileDatastoreInventoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["ReconcileDatastoreInventoryRequestType"] = reflect.TypeOf((*ReconcileDatastoreInventoryRequestType)(nil)).Elem() -} - -type ReconcileDatastoreInventory_Task ReconcileDatastoreInventoryRequestType - -func init() { - t["ReconcileDatastoreInventory_Task"] = reflect.TypeOf((*ReconcileDatastoreInventory_Task)(nil)).Elem() -} - -type ReconcileDatastoreInventory_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec VirtualMachineConfigSpec `xml:"spec"` -} - -func init() { - t["ReconfigVMRequestType"] = reflect.TypeOf((*ReconfigVMRequestType)(nil)).Elem() -} - -type ReconfigVM_Task ReconfigVMRequestType - -func init() { - t["ReconfigVM_Task"] = reflect.TypeOf((*ReconfigVM_Task)(nil)).Elem() -} - -type ReconfigVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigurationSatisfiable ReconfigurationSatisfiableRequestType - -func init() { - t["ReconfigurationSatisfiable"] = reflect.TypeOf((*ReconfigurationSatisfiable)(nil)).Elem() -} - -type ReconfigurationSatisfiableRequestType struct { - This ManagedObjectReference `xml:"_this"` - Pcbs []VsanPolicyChangeBatch `xml:"pcbs"` - IgnoreSatisfiability *bool `xml:"ignoreSatisfiability"` -} - -func init() { - t["ReconfigurationSatisfiableRequestType"] = reflect.TypeOf((*ReconfigurationSatisfiableRequestType)(nil)).Elem() -} - -type ReconfigurationSatisfiableResponse struct { - Returnval []VsanPolicySatisfiability `xml:"returnval"` -} - -type ReconfigureAlarm ReconfigureAlarmRequestType - -func init() { - t["ReconfigureAlarm"] = reflect.TypeOf((*ReconfigureAlarm)(nil)).Elem() -} - -type ReconfigureAlarmRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec BaseAlarmSpec `xml:"spec,typeattr"` -} - -func init() { - t["ReconfigureAlarmRequestType"] = reflect.TypeOf((*ReconfigureAlarmRequestType)(nil)).Elem() -} - -type ReconfigureAlarmResponse struct { -} - -type ReconfigureAutostart ReconfigureAutostartRequestType - -func init() { - t["ReconfigureAutostart"] = reflect.TypeOf((*ReconfigureAutostart)(nil)).Elem() -} - -type ReconfigureAutostartRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostAutoStartManagerConfig `xml:"spec"` -} - -func init() { - t["ReconfigureAutostartRequestType"] = reflect.TypeOf((*ReconfigureAutostartRequestType)(nil)).Elem() -} - -type ReconfigureAutostartResponse struct { -} - -type ReconfigureClusterRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec ClusterConfigSpec `xml:"spec"` - Modify bool `xml:"modify"` -} - -func init() { - t["ReconfigureClusterRequestType"] = reflect.TypeOf((*ReconfigureClusterRequestType)(nil)).Elem() -} - -type ReconfigureCluster_Task ReconfigureClusterRequestType - -func init() { - t["ReconfigureCluster_Task"] = reflect.TypeOf((*ReconfigureCluster_Task)(nil)).Elem() -} - -type ReconfigureCluster_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigureComputeResourceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec BaseComputeResourceConfigSpec `xml:"spec,typeattr"` - Modify bool `xml:"modify"` -} - -func init() { - t["ReconfigureComputeResourceRequestType"] = reflect.TypeOf((*ReconfigureComputeResourceRequestType)(nil)).Elem() -} - -type ReconfigureComputeResource_Task ReconfigureComputeResourceRequestType - -func init() { - t["ReconfigureComputeResource_Task"] = reflect.TypeOf((*ReconfigureComputeResource_Task)(nil)).Elem() -} - -type ReconfigureComputeResource_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigureDVPortRequestType struct { - This ManagedObjectReference `xml:"_this"` - Port []DVPortConfigSpec `xml:"port"` -} - -func init() { - t["ReconfigureDVPortRequestType"] = reflect.TypeOf((*ReconfigureDVPortRequestType)(nil)).Elem() -} - -type ReconfigureDVPort_Task ReconfigureDVPortRequestType - -func init() { - t["ReconfigureDVPort_Task"] = reflect.TypeOf((*ReconfigureDVPort_Task)(nil)).Elem() -} - -type ReconfigureDVPort_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigureDVPortgroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec DVPortgroupConfigSpec `xml:"spec"` -} - -func init() { - t["ReconfigureDVPortgroupRequestType"] = reflect.TypeOf((*ReconfigureDVPortgroupRequestType)(nil)).Elem() -} - -type ReconfigureDVPortgroup_Task ReconfigureDVPortgroupRequestType - -func init() { - t["ReconfigureDVPortgroup_Task"] = reflect.TypeOf((*ReconfigureDVPortgroup_Task)(nil)).Elem() -} - -type ReconfigureDVPortgroup_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigureDatacenterRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec DatacenterConfigSpec `xml:"spec"` - Modify bool `xml:"modify"` -} - -func init() { - t["ReconfigureDatacenterRequestType"] = reflect.TypeOf((*ReconfigureDatacenterRequestType)(nil)).Elem() -} - -type ReconfigureDatacenter_Task ReconfigureDatacenterRequestType - -func init() { - t["ReconfigureDatacenter_Task"] = reflect.TypeOf((*ReconfigureDatacenter_Task)(nil)).Elem() -} - -type ReconfigureDatacenter_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigureDomObject ReconfigureDomObjectRequestType - -func init() { - t["ReconfigureDomObject"] = reflect.TypeOf((*ReconfigureDomObject)(nil)).Elem() -} - -type ReconfigureDomObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuid string `xml:"uuid"` - Policy string `xml:"policy"` -} - -func init() { - t["ReconfigureDomObjectRequestType"] = reflect.TypeOf((*ReconfigureDomObjectRequestType)(nil)).Elem() -} - -type ReconfigureDomObjectResponse struct { -} - -type ReconfigureDvsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec BaseDVSConfigSpec `xml:"spec,typeattr"` -} - -func init() { - t["ReconfigureDvsRequestType"] = reflect.TypeOf((*ReconfigureDvsRequestType)(nil)).Elem() -} - -type ReconfigureDvs_Task ReconfigureDvsRequestType - -func init() { - t["ReconfigureDvs_Task"] = reflect.TypeOf((*ReconfigureDvs_Task)(nil)).Elem() -} - -type ReconfigureDvs_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigureHostForDASRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ReconfigureHostForDASRequestType"] = reflect.TypeOf((*ReconfigureHostForDASRequestType)(nil)).Elem() -} - -type ReconfigureHostForDAS_Task ReconfigureHostForDASRequestType - -func init() { - t["ReconfigureHostForDAS_Task"] = reflect.TypeOf((*ReconfigureHostForDAS_Task)(nil)).Elem() -} - -type ReconfigureHostForDAS_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReconfigureScheduledTask ReconfigureScheduledTaskRequestType - -func init() { - t["ReconfigureScheduledTask"] = reflect.TypeOf((*ReconfigureScheduledTask)(nil)).Elem() -} - -type ReconfigureScheduledTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec BaseScheduledTaskSpec `xml:"spec,typeattr"` -} - -func init() { - t["ReconfigureScheduledTaskRequestType"] = reflect.TypeOf((*ReconfigureScheduledTaskRequestType)(nil)).Elem() -} - -type ReconfigureScheduledTaskResponse struct { -} - -type ReconfigureServiceConsoleReservation ReconfigureServiceConsoleReservationRequestType - -func init() { - t["ReconfigureServiceConsoleReservation"] = reflect.TypeOf((*ReconfigureServiceConsoleReservation)(nil)).Elem() -} - -type ReconfigureServiceConsoleReservationRequestType struct { - This ManagedObjectReference `xml:"_this"` - CfgBytes int64 `xml:"cfgBytes"` -} - -func init() { - t["ReconfigureServiceConsoleReservationRequestType"] = reflect.TypeOf((*ReconfigureServiceConsoleReservationRequestType)(nil)).Elem() -} - -type ReconfigureServiceConsoleReservationResponse struct { -} - -type ReconfigureSnmpAgent ReconfigureSnmpAgentRequestType - -func init() { - t["ReconfigureSnmpAgent"] = reflect.TypeOf((*ReconfigureSnmpAgent)(nil)).Elem() -} - -type ReconfigureSnmpAgentRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec HostSnmpConfigSpec `xml:"spec"` -} - -func init() { - t["ReconfigureSnmpAgentRequestType"] = reflect.TypeOf((*ReconfigureSnmpAgentRequestType)(nil)).Elem() -} - -type ReconfigureSnmpAgentResponse struct { -} - -type ReconfigureVirtualMachineReservation ReconfigureVirtualMachineReservationRequestType - -func init() { - t["ReconfigureVirtualMachineReservation"] = reflect.TypeOf((*ReconfigureVirtualMachineReservation)(nil)).Elem() -} - -type ReconfigureVirtualMachineReservationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec VirtualMachineMemoryReservationSpec `xml:"spec"` -} - -func init() { - t["ReconfigureVirtualMachineReservationRequestType"] = reflect.TypeOf((*ReconfigureVirtualMachineReservationRequestType)(nil)).Elem() -} - -type ReconfigureVirtualMachineReservationResponse struct { -} - -type ReconnectHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - CnxSpec *HostConnectSpec `xml:"cnxSpec,omitempty"` - ReconnectSpec *HostSystemReconnectSpec `xml:"reconnectSpec,omitempty"` -} - -func init() { - t["ReconnectHostRequestType"] = reflect.TypeOf((*ReconnectHostRequestType)(nil)).Elem() -} - -type ReconnectHost_Task ReconnectHostRequestType - -func init() { - t["ReconnectHost_Task"] = reflect.TypeOf((*ReconnectHost_Task)(nil)).Elem() -} - -type ReconnectHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RecordReplayDisabled struct { - VimFault -} - -func init() { - t["RecordReplayDisabled"] = reflect.TypeOf((*RecordReplayDisabled)(nil)).Elem() -} - -type RecordReplayDisabledFault RecordReplayDisabled - -func init() { - t["RecordReplayDisabledFault"] = reflect.TypeOf((*RecordReplayDisabledFault)(nil)).Elem() -} - -type RecoveryEvent struct { - DvsEvent - - HostName string `xml:"hostName"` - PortKey string `xml:"portKey"` - DvsUuid string `xml:"dvsUuid,omitempty"` - Vnic string `xml:"vnic,omitempty"` -} - -func init() { - t["RecoveryEvent"] = reflect.TypeOf((*RecoveryEvent)(nil)).Elem() -} - -type RectifyDvsHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - Hosts []ManagedObjectReference `xml:"hosts,omitempty"` -} - -func init() { - t["RectifyDvsHostRequestType"] = reflect.TypeOf((*RectifyDvsHostRequestType)(nil)).Elem() -} - -type RectifyDvsHost_Task RectifyDvsHostRequestType - -func init() { - t["RectifyDvsHost_Task"] = reflect.TypeOf((*RectifyDvsHost_Task)(nil)).Elem() -} - -type RectifyDvsHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RectifyDvsOnHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["RectifyDvsOnHostRequestType"] = reflect.TypeOf((*RectifyDvsOnHostRequestType)(nil)).Elem() -} - -type RectifyDvsOnHost_Task RectifyDvsOnHostRequestType - -func init() { - t["RectifyDvsOnHost_Task"] = reflect.TypeOf((*RectifyDvsOnHost_Task)(nil)).Elem() -} - -type RectifyDvsOnHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RecurrentTaskScheduler struct { - TaskScheduler - - Interval int32 `xml:"interval"` -} - -func init() { - t["RecurrentTaskScheduler"] = reflect.TypeOf((*RecurrentTaskScheduler)(nil)).Elem() -} - -type Refresh RefreshRequestType - -func init() { - t["Refresh"] = reflect.TypeOf((*Refresh)(nil)).Elem() -} - -type RefreshDVPortState RefreshDVPortStateRequestType - -func init() { - t["RefreshDVPortState"] = reflect.TypeOf((*RefreshDVPortState)(nil)).Elem() -} - -type RefreshDVPortStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - PortKeys []string `xml:"portKeys,omitempty"` -} - -func init() { - t["RefreshDVPortStateRequestType"] = reflect.TypeOf((*RefreshDVPortStateRequestType)(nil)).Elem() -} - -type RefreshDVPortStateResponse struct { -} - -type RefreshDatastore RefreshDatastoreRequestType - -func init() { - t["RefreshDatastore"] = reflect.TypeOf((*RefreshDatastore)(nil)).Elem() -} - -type RefreshDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshDatastoreRequestType"] = reflect.TypeOf((*RefreshDatastoreRequestType)(nil)).Elem() -} - -type RefreshDatastoreResponse struct { -} - -type RefreshDatastoreStorageInfo RefreshDatastoreStorageInfoRequestType - -func init() { - t["RefreshDatastoreStorageInfo"] = reflect.TypeOf((*RefreshDatastoreStorageInfo)(nil)).Elem() -} - -type RefreshDatastoreStorageInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshDatastoreStorageInfoRequestType"] = reflect.TypeOf((*RefreshDatastoreStorageInfoRequestType)(nil)).Elem() -} - -type RefreshDatastoreStorageInfoResponse struct { -} - -type RefreshDateTimeSystem RefreshDateTimeSystemRequestType - -func init() { - t["RefreshDateTimeSystem"] = reflect.TypeOf((*RefreshDateTimeSystem)(nil)).Elem() -} - -type RefreshDateTimeSystemRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshDateTimeSystemRequestType"] = reflect.TypeOf((*RefreshDateTimeSystemRequestType)(nil)).Elem() -} - -type RefreshDateTimeSystemResponse struct { -} - -type RefreshFirewall RefreshFirewallRequestType - -func init() { - t["RefreshFirewall"] = reflect.TypeOf((*RefreshFirewall)(nil)).Elem() -} - -type RefreshFirewallRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshFirewallRequestType"] = reflect.TypeOf((*RefreshFirewallRequestType)(nil)).Elem() -} - -type RefreshFirewallResponse struct { -} - -type RefreshGraphicsManager RefreshGraphicsManagerRequestType - -func init() { - t["RefreshGraphicsManager"] = reflect.TypeOf((*RefreshGraphicsManager)(nil)).Elem() -} - -type RefreshGraphicsManagerRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshGraphicsManagerRequestType"] = reflect.TypeOf((*RefreshGraphicsManagerRequestType)(nil)).Elem() -} - -type RefreshGraphicsManagerResponse struct { -} - -type RefreshHealthStatusSystem RefreshHealthStatusSystemRequestType - -func init() { - t["RefreshHealthStatusSystem"] = reflect.TypeOf((*RefreshHealthStatusSystem)(nil)).Elem() -} - -type RefreshHealthStatusSystemRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshHealthStatusSystemRequestType"] = reflect.TypeOf((*RefreshHealthStatusSystemRequestType)(nil)).Elem() -} - -type RefreshHealthStatusSystemResponse struct { -} - -type RefreshNetworkSystem RefreshNetworkSystemRequestType - -func init() { - t["RefreshNetworkSystem"] = reflect.TypeOf((*RefreshNetworkSystem)(nil)).Elem() -} - -type RefreshNetworkSystemRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshNetworkSystemRequestType"] = reflect.TypeOf((*RefreshNetworkSystemRequestType)(nil)).Elem() -} - -type RefreshNetworkSystemResponse struct { -} - -type RefreshRecommendation RefreshRecommendationRequestType - -func init() { - t["RefreshRecommendation"] = reflect.TypeOf((*RefreshRecommendation)(nil)).Elem() -} - -type RefreshRecommendationRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshRecommendationRequestType"] = reflect.TypeOf((*RefreshRecommendationRequestType)(nil)).Elem() -} - -type RefreshRecommendationResponse struct { -} - -type RefreshRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshRequestType"] = reflect.TypeOf((*RefreshRequestType)(nil)).Elem() -} - -type RefreshResponse struct { -} - -type RefreshRuntime RefreshRuntimeRequestType - -func init() { - t["RefreshRuntime"] = reflect.TypeOf((*RefreshRuntime)(nil)).Elem() -} - -type RefreshRuntimeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshRuntimeRequestType"] = reflect.TypeOf((*RefreshRuntimeRequestType)(nil)).Elem() -} - -type RefreshRuntimeResponse struct { -} - -type RefreshServices RefreshServicesRequestType - -func init() { - t["RefreshServices"] = reflect.TypeOf((*RefreshServices)(nil)).Elem() -} - -type RefreshServicesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshServicesRequestType"] = reflect.TypeOf((*RefreshServicesRequestType)(nil)).Elem() -} - -type RefreshServicesResponse struct { -} - -type RefreshStorageDrsRecommendation RefreshStorageDrsRecommendationRequestType - -func init() { - t["RefreshStorageDrsRecommendation"] = reflect.TypeOf((*RefreshStorageDrsRecommendation)(nil)).Elem() -} - -type RefreshStorageDrsRecommendationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Pod ManagedObjectReference `xml:"pod"` -} - -func init() { - t["RefreshStorageDrsRecommendationRequestType"] = reflect.TypeOf((*RefreshStorageDrsRecommendationRequestType)(nil)).Elem() -} - -type RefreshStorageDrsRecommendationResponse struct { -} - -type RefreshStorageInfo RefreshStorageInfoRequestType - -func init() { - t["RefreshStorageInfo"] = reflect.TypeOf((*RefreshStorageInfo)(nil)).Elem() -} - -type RefreshStorageInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshStorageInfoRequestType"] = reflect.TypeOf((*RefreshStorageInfoRequestType)(nil)).Elem() -} - -type RefreshStorageInfoResponse struct { -} - -type RefreshStorageSystem RefreshStorageSystemRequestType - -func init() { - t["RefreshStorageSystem"] = reflect.TypeOf((*RefreshStorageSystem)(nil)).Elem() -} - -type RefreshStorageSystemRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RefreshStorageSystemRequestType"] = reflect.TypeOf((*RefreshStorageSystemRequestType)(nil)).Elem() -} - -type RefreshStorageSystemResponse struct { -} - -type RegisterChildVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Path string `xml:"path"` - Name string `xml:"name,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["RegisterChildVMRequestType"] = reflect.TypeOf((*RegisterChildVMRequestType)(nil)).Elem() -} - -type RegisterChildVM_Task RegisterChildVMRequestType - -func init() { - t["RegisterChildVM_Task"] = reflect.TypeOf((*RegisterChildVM_Task)(nil)).Elem() -} - -type RegisterChildVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RegisterDisk RegisterDiskRequestType - -func init() { - t["RegisterDisk"] = reflect.TypeOf((*RegisterDisk)(nil)).Elem() -} - -type RegisterDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Path string `xml:"path"` - Name string `xml:"name,omitempty"` -} - -func init() { - t["RegisterDiskRequestType"] = reflect.TypeOf((*RegisterDiskRequestType)(nil)).Elem() -} - -type RegisterDiskResponse struct { - Returnval VStorageObject `xml:"returnval"` -} - -type RegisterExtension RegisterExtensionRequestType - -func init() { - t["RegisterExtension"] = reflect.TypeOf((*RegisterExtension)(nil)).Elem() -} - -type RegisterExtensionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Extension Extension `xml:"extension"` -} - -func init() { - t["RegisterExtensionRequestType"] = reflect.TypeOf((*RegisterExtensionRequestType)(nil)).Elem() -} - -type RegisterExtensionResponse struct { -} - -type RegisterHealthUpdateProvider RegisterHealthUpdateProviderRequestType - -func init() { - t["RegisterHealthUpdateProvider"] = reflect.TypeOf((*RegisterHealthUpdateProvider)(nil)).Elem() -} - -type RegisterHealthUpdateProviderRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - HealthUpdateInfo []HealthUpdateInfo `xml:"healthUpdateInfo,omitempty"` -} - -func init() { - t["RegisterHealthUpdateProviderRequestType"] = reflect.TypeOf((*RegisterHealthUpdateProviderRequestType)(nil)).Elem() -} - -type RegisterHealthUpdateProviderResponse struct { - Returnval string `xml:"returnval"` -} - -type RegisterKmipServer RegisterKmipServerRequestType - -func init() { - t["RegisterKmipServer"] = reflect.TypeOf((*RegisterKmipServer)(nil)).Elem() -} - -type RegisterKmipServerRequestType struct { - This ManagedObjectReference `xml:"_this"` - Server KmipServerSpec `xml:"server"` -} - -func init() { - t["RegisterKmipServerRequestType"] = reflect.TypeOf((*RegisterKmipServerRequestType)(nil)).Elem() -} - -type RegisterKmipServerResponse struct { -} - -type RegisterVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Path string `xml:"path"` - Name string `xml:"name,omitempty"` - AsTemplate bool `xml:"asTemplate"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["RegisterVMRequestType"] = reflect.TypeOf((*RegisterVMRequestType)(nil)).Elem() -} - -type RegisterVM_Task RegisterVMRequestType - -func init() { - t["RegisterVM_Task"] = reflect.TypeOf((*RegisterVM_Task)(nil)).Elem() -} - -type RegisterVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type Relation struct { - DynamicData - - Constraint string `xml:"constraint,omitempty"` - Name string `xml:"name"` - Version string `xml:"version,omitempty"` -} - -func init() { - t["Relation"] = reflect.TypeOf((*Relation)(nil)).Elem() -} - -type ReleaseCredentialsInGuest ReleaseCredentialsInGuestRequestType - -func init() { - t["ReleaseCredentialsInGuest"] = reflect.TypeOf((*ReleaseCredentialsInGuest)(nil)).Elem() -} - -type ReleaseCredentialsInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` -} - -func init() { - t["ReleaseCredentialsInGuestRequestType"] = reflect.TypeOf((*ReleaseCredentialsInGuestRequestType)(nil)).Elem() -} - -type ReleaseCredentialsInGuestResponse struct { -} - -type ReleaseIpAllocation ReleaseIpAllocationRequestType - -func init() { - t["ReleaseIpAllocation"] = reflect.TypeOf((*ReleaseIpAllocation)(nil)).Elem() -} - -type ReleaseIpAllocationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` - PoolId int32 `xml:"poolId"` - AllocationId string `xml:"allocationId"` -} - -func init() { - t["ReleaseIpAllocationRequestType"] = reflect.TypeOf((*ReleaseIpAllocationRequestType)(nil)).Elem() -} - -type ReleaseIpAllocationResponse struct { -} - -type ReleaseManagedSnapshot ReleaseManagedSnapshotRequestType - -func init() { - t["ReleaseManagedSnapshot"] = reflect.TypeOf((*ReleaseManagedSnapshot)(nil)).Elem() -} - -type ReleaseManagedSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vdisk string `xml:"vdisk"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["ReleaseManagedSnapshotRequestType"] = reflect.TypeOf((*ReleaseManagedSnapshotRequestType)(nil)).Elem() -} - -type ReleaseManagedSnapshotResponse struct { -} - -type Reload ReloadRequestType - -func init() { - t["Reload"] = reflect.TypeOf((*Reload)(nil)).Elem() -} - -type ReloadRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ReloadRequestType"] = reflect.TypeOf((*ReloadRequestType)(nil)).Elem() -} - -type ReloadResponse struct { -} - -type RelocateVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec VirtualMachineRelocateSpec `xml:"spec"` - Priority VirtualMachineMovePriority `xml:"priority,omitempty"` -} - -func init() { - t["RelocateVMRequestType"] = reflect.TypeOf((*RelocateVMRequestType)(nil)).Elem() -} - -type RelocateVM_Task RelocateVMRequestType - -func init() { - t["RelocateVM_Task"] = reflect.TypeOf((*RelocateVM_Task)(nil)).Elem() -} - -type RelocateVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RelocateVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - Spec VslmRelocateSpec `xml:"spec"` -} - -func init() { - t["RelocateVStorageObjectRequestType"] = reflect.TypeOf((*RelocateVStorageObjectRequestType)(nil)).Elem() -} - -type RelocateVStorageObject_Task RelocateVStorageObjectRequestType - -func init() { - t["RelocateVStorageObject_Task"] = reflect.TypeOf((*RelocateVStorageObject_Task)(nil)).Elem() -} - -type RelocateVStorageObject_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RemoteDeviceNotSupported struct { - DeviceNotSupported -} - -func init() { - t["RemoteDeviceNotSupported"] = reflect.TypeOf((*RemoteDeviceNotSupported)(nil)).Elem() -} - -type RemoteDeviceNotSupportedFault RemoteDeviceNotSupported - -func init() { - t["RemoteDeviceNotSupportedFault"] = reflect.TypeOf((*RemoteDeviceNotSupportedFault)(nil)).Elem() -} - -type RemoteTSMEnabledEvent struct { - HostEvent -} - -func init() { - t["RemoteTSMEnabledEvent"] = reflect.TypeOf((*RemoteTSMEnabledEvent)(nil)).Elem() -} - -type RemoveAlarm RemoveAlarmRequestType - -func init() { - t["RemoveAlarm"] = reflect.TypeOf((*RemoveAlarm)(nil)).Elem() -} - -type RemoveAlarmRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RemoveAlarmRequestType"] = reflect.TypeOf((*RemoveAlarmRequestType)(nil)).Elem() -} - -type RemoveAlarmResponse struct { -} - -type RemoveAllSnapshotsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Consolidate *bool `xml:"consolidate"` -} - -func init() { - t["RemoveAllSnapshotsRequestType"] = reflect.TypeOf((*RemoveAllSnapshotsRequestType)(nil)).Elem() -} - -type RemoveAllSnapshots_Task RemoveAllSnapshotsRequestType - -func init() { - t["RemoveAllSnapshots_Task"] = reflect.TypeOf((*RemoveAllSnapshots_Task)(nil)).Elem() -} - -type RemoveAllSnapshots_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RemoveAssignedLicense RemoveAssignedLicenseRequestType - -func init() { - t["RemoveAssignedLicense"] = reflect.TypeOf((*RemoveAssignedLicense)(nil)).Elem() -} - -type RemoveAssignedLicenseRequestType struct { - This ManagedObjectReference `xml:"_this"` - EntityId string `xml:"entityId"` -} - -func init() { - t["RemoveAssignedLicenseRequestType"] = reflect.TypeOf((*RemoveAssignedLicenseRequestType)(nil)).Elem() -} - -type RemoveAssignedLicenseResponse struct { -} - -type RemoveAuthorizationRole RemoveAuthorizationRoleRequestType - -func init() { - t["RemoveAuthorizationRole"] = reflect.TypeOf((*RemoveAuthorizationRole)(nil)).Elem() -} - -type RemoveAuthorizationRoleRequestType struct { - This ManagedObjectReference `xml:"_this"` - RoleId int32 `xml:"roleId"` - FailIfUsed bool `xml:"failIfUsed"` -} - -func init() { - t["RemoveAuthorizationRoleRequestType"] = reflect.TypeOf((*RemoveAuthorizationRoleRequestType)(nil)).Elem() -} - -type RemoveAuthorizationRoleResponse struct { -} - -type RemoveCustomFieldDef RemoveCustomFieldDefRequestType - -func init() { - t["RemoveCustomFieldDef"] = reflect.TypeOf((*RemoveCustomFieldDef)(nil)).Elem() -} - -type RemoveCustomFieldDefRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key int32 `xml:"key"` -} - -func init() { - t["RemoveCustomFieldDefRequestType"] = reflect.TypeOf((*RemoveCustomFieldDefRequestType)(nil)).Elem() -} - -type RemoveCustomFieldDefResponse struct { -} - -type RemoveDatastore RemoveDatastoreRequestType - -func init() { - t["RemoveDatastore"] = reflect.TypeOf((*RemoveDatastore)(nil)).Elem() -} - -type RemoveDatastoreExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore []ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["RemoveDatastoreExRequestType"] = reflect.TypeOf((*RemoveDatastoreExRequestType)(nil)).Elem() -} - -type RemoveDatastoreEx_Task RemoveDatastoreExRequestType - -func init() { - t["RemoveDatastoreEx_Task"] = reflect.TypeOf((*RemoveDatastoreEx_Task)(nil)).Elem() -} - -type RemoveDatastoreEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RemoveDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["RemoveDatastoreRequestType"] = reflect.TypeOf((*RemoveDatastoreRequestType)(nil)).Elem() -} - -type RemoveDatastoreResponse struct { -} - -type RemoveDiskMappingRequestType struct { - This ManagedObjectReference `xml:"_this"` - Mapping []VsanHostDiskMapping `xml:"mapping"` - MaintenanceSpec *HostMaintenanceSpec `xml:"maintenanceSpec,omitempty"` - Timeout int32 `xml:"timeout,omitempty"` -} - -func init() { - t["RemoveDiskMappingRequestType"] = reflect.TypeOf((*RemoveDiskMappingRequestType)(nil)).Elem() -} - -type RemoveDiskMapping_Task RemoveDiskMappingRequestType - -func init() { - t["RemoveDiskMapping_Task"] = reflect.TypeOf((*RemoveDiskMapping_Task)(nil)).Elem() -} - -type RemoveDiskMapping_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RemoveDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Disk []HostScsiDisk `xml:"disk"` - MaintenanceSpec *HostMaintenanceSpec `xml:"maintenanceSpec,omitempty"` - Timeout int32 `xml:"timeout,omitempty"` -} - -func init() { - t["RemoveDiskRequestType"] = reflect.TypeOf((*RemoveDiskRequestType)(nil)).Elem() -} - -type RemoveDisk_Task RemoveDiskRequestType - -func init() { - t["RemoveDisk_Task"] = reflect.TypeOf((*RemoveDisk_Task)(nil)).Elem() -} - -type RemoveDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RemoveEntityPermission RemoveEntityPermissionRequestType - -func init() { - t["RemoveEntityPermission"] = reflect.TypeOf((*RemoveEntityPermission)(nil)).Elem() -} - -type RemoveEntityPermissionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - User string `xml:"user"` - IsGroup bool `xml:"isGroup"` -} - -func init() { - t["RemoveEntityPermissionRequestType"] = reflect.TypeOf((*RemoveEntityPermissionRequestType)(nil)).Elem() -} - -type RemoveEntityPermissionResponse struct { -} - -type RemoveFailed struct { - VimFault -} - -func init() { - t["RemoveFailed"] = reflect.TypeOf((*RemoveFailed)(nil)).Elem() -} - -type RemoveFailedFault RemoveFailed - -func init() { - t["RemoveFailedFault"] = reflect.TypeOf((*RemoveFailedFault)(nil)).Elem() -} - -type RemoveFilter RemoveFilterRequestType - -func init() { - t["RemoveFilter"] = reflect.TypeOf((*RemoveFilter)(nil)).Elem() -} - -type RemoveFilterEntities RemoveFilterEntitiesRequestType - -func init() { - t["RemoveFilterEntities"] = reflect.TypeOf((*RemoveFilterEntities)(nil)).Elem() -} - -type RemoveFilterEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - Entities []ManagedObjectReference `xml:"entities,omitempty"` -} - -func init() { - t["RemoveFilterEntitiesRequestType"] = reflect.TypeOf((*RemoveFilterEntitiesRequestType)(nil)).Elem() -} - -type RemoveFilterEntitiesResponse struct { -} - -type RemoveFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` -} - -func init() { - t["RemoveFilterRequestType"] = reflect.TypeOf((*RemoveFilterRequestType)(nil)).Elem() -} - -type RemoveFilterResponse struct { -} - -type RemoveGroup RemoveGroupRequestType - -func init() { - t["RemoveGroup"] = reflect.TypeOf((*RemoveGroup)(nil)).Elem() -} - -type RemoveGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - GroupName string `xml:"groupName"` -} - -func init() { - t["RemoveGroupRequestType"] = reflect.TypeOf((*RemoveGroupRequestType)(nil)).Elem() -} - -type RemoveGroupResponse struct { -} - -type RemoveGuestAlias RemoveGuestAliasRequestType - -func init() { - t["RemoveGuestAlias"] = reflect.TypeOf((*RemoveGuestAlias)(nil)).Elem() -} - -type RemoveGuestAliasByCert RemoveGuestAliasByCertRequestType - -func init() { - t["RemoveGuestAliasByCert"] = reflect.TypeOf((*RemoveGuestAliasByCert)(nil)).Elem() -} - -type RemoveGuestAliasByCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Username string `xml:"username"` - Base64Cert string `xml:"base64Cert"` -} - -func init() { - t["RemoveGuestAliasByCertRequestType"] = reflect.TypeOf((*RemoveGuestAliasByCertRequestType)(nil)).Elem() -} - -type RemoveGuestAliasByCertResponse struct { -} - -type RemoveGuestAliasRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Username string `xml:"username"` - Base64Cert string `xml:"base64Cert"` - Subject BaseGuestAuthSubject `xml:"subject,typeattr"` -} - -func init() { - t["RemoveGuestAliasRequestType"] = reflect.TypeOf((*RemoveGuestAliasRequestType)(nil)).Elem() -} - -type RemoveGuestAliasResponse struct { -} - -type RemoveInternetScsiSendTargets RemoveInternetScsiSendTargetsRequestType - -func init() { - t["RemoveInternetScsiSendTargets"] = reflect.TypeOf((*RemoveInternetScsiSendTargets)(nil)).Elem() -} - -type RemoveInternetScsiSendTargetsRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - Targets []HostInternetScsiHbaSendTarget `xml:"targets"` -} - -func init() { - t["RemoveInternetScsiSendTargetsRequestType"] = reflect.TypeOf((*RemoveInternetScsiSendTargetsRequestType)(nil)).Elem() -} - -type RemoveInternetScsiSendTargetsResponse struct { -} - -type RemoveInternetScsiStaticTargets RemoveInternetScsiStaticTargetsRequestType - -func init() { - t["RemoveInternetScsiStaticTargets"] = reflect.TypeOf((*RemoveInternetScsiStaticTargets)(nil)).Elem() -} - -type RemoveInternetScsiStaticTargetsRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - Targets []HostInternetScsiHbaStaticTarget `xml:"targets"` -} - -func init() { - t["RemoveInternetScsiStaticTargetsRequestType"] = reflect.TypeOf((*RemoveInternetScsiStaticTargetsRequestType)(nil)).Elem() -} - -type RemoveInternetScsiStaticTargetsResponse struct { -} - -type RemoveKey RemoveKeyRequestType - -func init() { - t["RemoveKey"] = reflect.TypeOf((*RemoveKey)(nil)).Elem() -} - -type RemoveKeyRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key CryptoKeyId `xml:"key"` - Force bool `xml:"force"` -} - -func init() { - t["RemoveKeyRequestType"] = reflect.TypeOf((*RemoveKeyRequestType)(nil)).Elem() -} - -type RemoveKeyResponse struct { -} - -type RemoveKeys RemoveKeysRequestType - -func init() { - t["RemoveKeys"] = reflect.TypeOf((*RemoveKeys)(nil)).Elem() -} - -type RemoveKeysRequestType struct { - This ManagedObjectReference `xml:"_this"` - Keys []CryptoKeyId `xml:"keys,omitempty"` - Force bool `xml:"force"` -} - -func init() { - t["RemoveKeysRequestType"] = reflect.TypeOf((*RemoveKeysRequestType)(nil)).Elem() -} - -type RemoveKeysResponse struct { - Returnval []CryptoKeyResult `xml:"returnval,omitempty"` -} - -type RemoveKmipServer RemoveKmipServerRequestType - -func init() { - t["RemoveKmipServer"] = reflect.TypeOf((*RemoveKmipServer)(nil)).Elem() -} - -type RemoveKmipServerRequestType struct { - This ManagedObjectReference `xml:"_this"` - ClusterId KeyProviderId `xml:"clusterId"` - ServerName string `xml:"serverName"` -} - -func init() { - t["RemoveKmipServerRequestType"] = reflect.TypeOf((*RemoveKmipServerRequestType)(nil)).Elem() -} - -type RemoveKmipServerResponse struct { -} - -type RemoveLicense RemoveLicenseRequestType - -func init() { - t["RemoveLicense"] = reflect.TypeOf((*RemoveLicense)(nil)).Elem() -} - -type RemoveLicenseLabel RemoveLicenseLabelRequestType - -func init() { - t["RemoveLicenseLabel"] = reflect.TypeOf((*RemoveLicenseLabel)(nil)).Elem() -} - -type RemoveLicenseLabelRequestType struct { - This ManagedObjectReference `xml:"_this"` - LicenseKey string `xml:"licenseKey"` - LabelKey string `xml:"labelKey"` -} - -func init() { - t["RemoveLicenseLabelRequestType"] = reflect.TypeOf((*RemoveLicenseLabelRequestType)(nil)).Elem() -} - -type RemoveLicenseLabelResponse struct { -} - -type RemoveLicenseRequestType struct { - This ManagedObjectReference `xml:"_this"` - LicenseKey string `xml:"licenseKey"` -} - -func init() { - t["RemoveLicenseRequestType"] = reflect.TypeOf((*RemoveLicenseRequestType)(nil)).Elem() -} - -type RemoveLicenseResponse struct { -} - -type RemoveMonitoredEntities RemoveMonitoredEntitiesRequestType - -func init() { - t["RemoveMonitoredEntities"] = reflect.TypeOf((*RemoveMonitoredEntities)(nil)).Elem() -} - -type RemoveMonitoredEntitiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` - Entities []ManagedObjectReference `xml:"entities,omitempty"` -} - -func init() { - t["RemoveMonitoredEntitiesRequestType"] = reflect.TypeOf((*RemoveMonitoredEntitiesRequestType)(nil)).Elem() -} - -type RemoveMonitoredEntitiesResponse struct { -} - -type RemoveNetworkResourcePool RemoveNetworkResourcePoolRequestType - -func init() { - t["RemoveNetworkResourcePool"] = reflect.TypeOf((*RemoveNetworkResourcePool)(nil)).Elem() -} - -type RemoveNetworkResourcePoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key []string `xml:"key"` -} - -func init() { - t["RemoveNetworkResourcePoolRequestType"] = reflect.TypeOf((*RemoveNetworkResourcePoolRequestType)(nil)).Elem() -} - -type RemoveNetworkResourcePoolResponse struct { -} - -type RemovePerfInterval RemovePerfIntervalRequestType - -func init() { - t["RemovePerfInterval"] = reflect.TypeOf((*RemovePerfInterval)(nil)).Elem() -} - -type RemovePerfIntervalRequestType struct { - This ManagedObjectReference `xml:"_this"` - SamplePeriod int32 `xml:"samplePeriod"` -} - -func init() { - t["RemovePerfIntervalRequestType"] = reflect.TypeOf((*RemovePerfIntervalRequestType)(nil)).Elem() -} - -type RemovePerfIntervalResponse struct { -} - -type RemovePortGroup RemovePortGroupRequestType - -func init() { - t["RemovePortGroup"] = reflect.TypeOf((*RemovePortGroup)(nil)).Elem() -} - -type RemovePortGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - PgName string `xml:"pgName"` -} - -func init() { - t["RemovePortGroupRequestType"] = reflect.TypeOf((*RemovePortGroupRequestType)(nil)).Elem() -} - -type RemovePortGroupResponse struct { -} - -type RemoveScheduledTask RemoveScheduledTaskRequestType - -func init() { - t["RemoveScheduledTask"] = reflect.TypeOf((*RemoveScheduledTask)(nil)).Elem() -} - -type RemoveScheduledTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RemoveScheduledTaskRequestType"] = reflect.TypeOf((*RemoveScheduledTaskRequestType)(nil)).Elem() -} - -type RemoveScheduledTaskResponse struct { -} - -type RemoveServiceConsoleVirtualNic RemoveServiceConsoleVirtualNicRequestType - -func init() { - t["RemoveServiceConsoleVirtualNic"] = reflect.TypeOf((*RemoveServiceConsoleVirtualNic)(nil)).Elem() -} - -type RemoveServiceConsoleVirtualNicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device string `xml:"device"` -} - -func init() { - t["RemoveServiceConsoleVirtualNicRequestType"] = reflect.TypeOf((*RemoveServiceConsoleVirtualNicRequestType)(nil)).Elem() -} - -type RemoveServiceConsoleVirtualNicResponse struct { -} - -type RemoveSmartCardTrustAnchor RemoveSmartCardTrustAnchorRequestType - -func init() { - t["RemoveSmartCardTrustAnchor"] = reflect.TypeOf((*RemoveSmartCardTrustAnchor)(nil)).Elem() -} - -type RemoveSmartCardTrustAnchorByFingerprint RemoveSmartCardTrustAnchorByFingerprintRequestType - -func init() { - t["RemoveSmartCardTrustAnchorByFingerprint"] = reflect.TypeOf((*RemoveSmartCardTrustAnchorByFingerprint)(nil)).Elem() -} - -type RemoveSmartCardTrustAnchorByFingerprintRequestType struct { - This ManagedObjectReference `xml:"_this"` - Fingerprint string `xml:"fingerprint"` - Digest string `xml:"digest"` -} - -func init() { - t["RemoveSmartCardTrustAnchorByFingerprintRequestType"] = reflect.TypeOf((*RemoveSmartCardTrustAnchorByFingerprintRequestType)(nil)).Elem() -} - -type RemoveSmartCardTrustAnchorByFingerprintResponse struct { -} - -type RemoveSmartCardTrustAnchorRequestType struct { - This ManagedObjectReference `xml:"_this"` - Issuer string `xml:"issuer"` - Serial string `xml:"serial"` -} - -func init() { - t["RemoveSmartCardTrustAnchorRequestType"] = reflect.TypeOf((*RemoveSmartCardTrustAnchorRequestType)(nil)).Elem() -} - -type RemoveSmartCardTrustAnchorResponse struct { -} - -type RemoveSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` - RemoveChildren bool `xml:"removeChildren"` - Consolidate *bool `xml:"consolidate"` -} - -func init() { - t["RemoveSnapshotRequestType"] = reflect.TypeOf((*RemoveSnapshotRequestType)(nil)).Elem() -} - -type RemoveSnapshot_Task RemoveSnapshotRequestType - -func init() { - t["RemoveSnapshot_Task"] = reflect.TypeOf((*RemoveSnapshot_Task)(nil)).Elem() -} - -type RemoveSnapshot_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RemoveUser RemoveUserRequestType - -func init() { - t["RemoveUser"] = reflect.TypeOf((*RemoveUser)(nil)).Elem() -} - -type RemoveUserRequestType struct { - This ManagedObjectReference `xml:"_this"` - UserName string `xml:"userName"` -} - -func init() { - t["RemoveUserRequestType"] = reflect.TypeOf((*RemoveUserRequestType)(nil)).Elem() -} - -type RemoveUserResponse struct { -} - -type RemoveVirtualNic RemoveVirtualNicRequestType - -func init() { - t["RemoveVirtualNic"] = reflect.TypeOf((*RemoveVirtualNic)(nil)).Elem() -} - -type RemoveVirtualNicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device string `xml:"device"` -} - -func init() { - t["RemoveVirtualNicRequestType"] = reflect.TypeOf((*RemoveVirtualNicRequestType)(nil)).Elem() -} - -type RemoveVirtualNicResponse struct { -} - -type RemoveVirtualSwitch RemoveVirtualSwitchRequestType - -func init() { - t["RemoveVirtualSwitch"] = reflect.TypeOf((*RemoveVirtualSwitch)(nil)).Elem() -} - -type RemoveVirtualSwitchRequestType struct { - This ManagedObjectReference `xml:"_this"` - VswitchName string `xml:"vswitchName"` -} - -func init() { - t["RemoveVirtualSwitchRequestType"] = reflect.TypeOf((*RemoveVirtualSwitchRequestType)(nil)).Elem() -} - -type RemoveVirtualSwitchResponse struct { -} - -type RenameCustomFieldDef RenameCustomFieldDefRequestType - -func init() { - t["RenameCustomFieldDef"] = reflect.TypeOf((*RenameCustomFieldDef)(nil)).Elem() -} - -type RenameCustomFieldDefRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key int32 `xml:"key"` - Name string `xml:"name"` -} - -func init() { - t["RenameCustomFieldDefRequestType"] = reflect.TypeOf((*RenameCustomFieldDefRequestType)(nil)).Elem() -} - -type RenameCustomFieldDefResponse struct { -} - -type RenameCustomizationSpec RenameCustomizationSpecRequestType - -func init() { - t["RenameCustomizationSpec"] = reflect.TypeOf((*RenameCustomizationSpec)(nil)).Elem() -} - -type RenameCustomizationSpecRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - NewName string `xml:"newName"` -} - -func init() { - t["RenameCustomizationSpecRequestType"] = reflect.TypeOf((*RenameCustomizationSpecRequestType)(nil)).Elem() -} - -type RenameCustomizationSpecResponse struct { -} - -type RenameDatastore RenameDatastoreRequestType - -func init() { - t["RenameDatastore"] = reflect.TypeOf((*RenameDatastore)(nil)).Elem() -} - -type RenameDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - NewName string `xml:"newName"` -} - -func init() { - t["RenameDatastoreRequestType"] = reflect.TypeOf((*RenameDatastoreRequestType)(nil)).Elem() -} - -type RenameDatastoreResponse struct { -} - -type RenameRequestType struct { - This ManagedObjectReference `xml:"_this"` - NewName string `xml:"newName"` -} - -func init() { - t["RenameRequestType"] = reflect.TypeOf((*RenameRequestType)(nil)).Elem() -} - -type RenameSnapshot RenameSnapshotRequestType - -func init() { - t["RenameSnapshot"] = reflect.TypeOf((*RenameSnapshot)(nil)).Elem() -} - -type RenameSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name,omitempty"` - Description string `xml:"description,omitempty"` -} - -func init() { - t["RenameSnapshotRequestType"] = reflect.TypeOf((*RenameSnapshotRequestType)(nil)).Elem() -} - -type RenameSnapshotResponse struct { -} - -type RenameVStorageObject RenameVStorageObjectRequestType - -func init() { - t["RenameVStorageObject"] = reflect.TypeOf((*RenameVStorageObject)(nil)).Elem() -} - -type RenameVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` - Name string `xml:"name"` -} - -func init() { - t["RenameVStorageObjectRequestType"] = reflect.TypeOf((*RenameVStorageObjectRequestType)(nil)).Elem() -} - -type RenameVStorageObjectResponse struct { -} - -type Rename_Task RenameRequestType - -func init() { - t["Rename_Task"] = reflect.TypeOf((*Rename_Task)(nil)).Elem() -} - -type Rename_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ReplaceCACertificatesAndCRLs ReplaceCACertificatesAndCRLsRequestType - -func init() { - t["ReplaceCACertificatesAndCRLs"] = reflect.TypeOf((*ReplaceCACertificatesAndCRLs)(nil)).Elem() -} - -type ReplaceCACertificatesAndCRLsRequestType struct { - This ManagedObjectReference `xml:"_this"` - CaCert []string `xml:"caCert"` - CaCrl []string `xml:"caCrl,omitempty"` -} - -func init() { - t["ReplaceCACertificatesAndCRLsRequestType"] = reflect.TypeOf((*ReplaceCACertificatesAndCRLsRequestType)(nil)).Elem() -} - -type ReplaceCACertificatesAndCRLsResponse struct { -} - -type ReplaceSmartCardTrustAnchors ReplaceSmartCardTrustAnchorsRequestType - -func init() { - t["ReplaceSmartCardTrustAnchors"] = reflect.TypeOf((*ReplaceSmartCardTrustAnchors)(nil)).Elem() -} - -type ReplaceSmartCardTrustAnchorsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Certs []string `xml:"certs,omitempty"` -} - -func init() { - t["ReplaceSmartCardTrustAnchorsRequestType"] = reflect.TypeOf((*ReplaceSmartCardTrustAnchorsRequestType)(nil)).Elem() -} - -type ReplaceSmartCardTrustAnchorsResponse struct { -} - -type ReplicationConfigFault struct { - ReplicationFault -} - -func init() { - t["ReplicationConfigFault"] = reflect.TypeOf((*ReplicationConfigFault)(nil)).Elem() -} - -type ReplicationConfigFaultFault BaseReplicationConfigFault - -func init() { - t["ReplicationConfigFaultFault"] = reflect.TypeOf((*ReplicationConfigFaultFault)(nil)).Elem() -} - -type ReplicationConfigSpec struct { - DynamicData - - Generation int64 `xml:"generation"` - VmReplicationId string `xml:"vmReplicationId"` - Destination string `xml:"destination"` - Port int32 `xml:"port"` - Rpo int64 `xml:"rpo"` - QuiesceGuestEnabled bool `xml:"quiesceGuestEnabled"` - Paused bool `xml:"paused"` - OppUpdatesEnabled bool `xml:"oppUpdatesEnabled"` - NetCompressionEnabled *bool `xml:"netCompressionEnabled"` - Disk []ReplicationInfoDiskSettings `xml:"disk,omitempty"` -} - -func init() { - t["ReplicationConfigSpec"] = reflect.TypeOf((*ReplicationConfigSpec)(nil)).Elem() -} - -type ReplicationDiskConfigFault struct { - ReplicationConfigFault - - Reason string `xml:"reason,omitempty"` - VmRef *ManagedObjectReference `xml:"vmRef,omitempty"` - Key int32 `xml:"key,omitempty"` -} - -func init() { - t["ReplicationDiskConfigFault"] = reflect.TypeOf((*ReplicationDiskConfigFault)(nil)).Elem() -} - -type ReplicationDiskConfigFaultFault ReplicationDiskConfigFault - -func init() { - t["ReplicationDiskConfigFaultFault"] = reflect.TypeOf((*ReplicationDiskConfigFaultFault)(nil)).Elem() -} - -type ReplicationFault struct { - VimFault -} - -func init() { - t["ReplicationFault"] = reflect.TypeOf((*ReplicationFault)(nil)).Elem() -} - -type ReplicationFaultFault BaseReplicationFault - -func init() { - t["ReplicationFaultFault"] = reflect.TypeOf((*ReplicationFaultFault)(nil)).Elem() -} - -type ReplicationGroupId struct { - DynamicData - - FaultDomainId FaultDomainId `xml:"faultDomainId"` - DeviceGroupId DeviceGroupId `xml:"deviceGroupId"` -} - -func init() { - t["ReplicationGroupId"] = reflect.TypeOf((*ReplicationGroupId)(nil)).Elem() -} - -type ReplicationIncompatibleWithFT struct { - ReplicationFault -} - -func init() { - t["ReplicationIncompatibleWithFT"] = reflect.TypeOf((*ReplicationIncompatibleWithFT)(nil)).Elem() -} - -type ReplicationIncompatibleWithFTFault ReplicationIncompatibleWithFT - -func init() { - t["ReplicationIncompatibleWithFTFault"] = reflect.TypeOf((*ReplicationIncompatibleWithFTFault)(nil)).Elem() -} - -type ReplicationInfoDiskSettings struct { - DynamicData - - Key int32 `xml:"key"` - DiskReplicationId string `xml:"diskReplicationId"` -} - -func init() { - t["ReplicationInfoDiskSettings"] = reflect.TypeOf((*ReplicationInfoDiskSettings)(nil)).Elem() -} - -type ReplicationInvalidOptions struct { - ReplicationFault - - Options string `xml:"options"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["ReplicationInvalidOptions"] = reflect.TypeOf((*ReplicationInvalidOptions)(nil)).Elem() -} - -type ReplicationInvalidOptionsFault ReplicationInvalidOptions - -func init() { - t["ReplicationInvalidOptionsFault"] = reflect.TypeOf((*ReplicationInvalidOptionsFault)(nil)).Elem() -} - -type ReplicationNotSupportedOnHost struct { - ReplicationFault -} - -func init() { - t["ReplicationNotSupportedOnHost"] = reflect.TypeOf((*ReplicationNotSupportedOnHost)(nil)).Elem() -} - -type ReplicationNotSupportedOnHostFault ReplicationNotSupportedOnHost - -func init() { - t["ReplicationNotSupportedOnHostFault"] = reflect.TypeOf((*ReplicationNotSupportedOnHostFault)(nil)).Elem() -} - -type ReplicationSpec struct { - DynamicData - - ReplicationGroupId ReplicationGroupId `xml:"replicationGroupId"` -} - -func init() { - t["ReplicationSpec"] = reflect.TypeOf((*ReplicationSpec)(nil)).Elem() -} - -type ReplicationVmConfigFault struct { - ReplicationConfigFault - - Reason string `xml:"reason,omitempty"` - VmRef *ManagedObjectReference `xml:"vmRef,omitempty"` -} - -func init() { - t["ReplicationVmConfigFault"] = reflect.TypeOf((*ReplicationVmConfigFault)(nil)).Elem() -} - -type ReplicationVmConfigFaultFault ReplicationVmConfigFault - -func init() { - t["ReplicationVmConfigFaultFault"] = reflect.TypeOf((*ReplicationVmConfigFaultFault)(nil)).Elem() -} - -type ReplicationVmFault struct { - ReplicationFault - - Reason string `xml:"reason,omitempty"` - State string `xml:"state,omitempty"` - InstanceId string `xml:"instanceId,omitempty"` - Vm *ManagedObjectReference `xml:"vm,omitempty"` -} - -func init() { - t["ReplicationVmFault"] = reflect.TypeOf((*ReplicationVmFault)(nil)).Elem() -} - -type ReplicationVmFaultFault BaseReplicationVmFault - -func init() { - t["ReplicationVmFaultFault"] = reflect.TypeOf((*ReplicationVmFaultFault)(nil)).Elem() -} - -type ReplicationVmInProgressFault struct { - ReplicationVmFault - - RequestedActivity string `xml:"requestedActivity"` - InProgressActivity string `xml:"inProgressActivity"` -} - -func init() { - t["ReplicationVmInProgressFault"] = reflect.TypeOf((*ReplicationVmInProgressFault)(nil)).Elem() -} - -type ReplicationVmInProgressFaultFault ReplicationVmInProgressFault - -func init() { - t["ReplicationVmInProgressFaultFault"] = reflect.TypeOf((*ReplicationVmInProgressFaultFault)(nil)).Elem() -} - -type ReplicationVmProgressInfo struct { - DynamicData - - Progress int32 `xml:"progress"` - BytesTransferred int64 `xml:"bytesTransferred"` - BytesToTransfer int64 `xml:"bytesToTransfer"` - ChecksumTotalBytes int64 `xml:"checksumTotalBytes,omitempty"` - ChecksumComparedBytes int64 `xml:"checksumComparedBytes,omitempty"` -} - -func init() { - t["ReplicationVmProgressInfo"] = reflect.TypeOf((*ReplicationVmProgressInfo)(nil)).Elem() -} - -type RequestCanceled struct { - RuntimeFault -} - -func init() { - t["RequestCanceled"] = reflect.TypeOf((*RequestCanceled)(nil)).Elem() -} - -type RequestCanceledFault RequestCanceled - -func init() { - t["RequestCanceledFault"] = reflect.TypeOf((*RequestCanceledFault)(nil)).Elem() -} - -type RescanAllHba RescanAllHbaRequestType - -func init() { - t["RescanAllHba"] = reflect.TypeOf((*RescanAllHba)(nil)).Elem() -} - -type RescanAllHbaRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RescanAllHbaRequestType"] = reflect.TypeOf((*RescanAllHbaRequestType)(nil)).Elem() -} - -type RescanAllHbaResponse struct { -} - -type RescanHba RescanHbaRequestType - -func init() { - t["RescanHba"] = reflect.TypeOf((*RescanHba)(nil)).Elem() -} - -type RescanHbaRequestType struct { - This ManagedObjectReference `xml:"_this"` - HbaDevice string `xml:"hbaDevice"` -} - -func init() { - t["RescanHbaRequestType"] = reflect.TypeOf((*RescanHbaRequestType)(nil)).Elem() -} - -type RescanHbaResponse struct { -} - -type RescanVffs RescanVffsRequestType - -func init() { - t["RescanVffs"] = reflect.TypeOf((*RescanVffs)(nil)).Elem() -} - -type RescanVffsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RescanVffsRequestType"] = reflect.TypeOf((*RescanVffsRequestType)(nil)).Elem() -} - -type RescanVffsResponse struct { -} - -type RescanVmfs RescanVmfsRequestType - -func init() { - t["RescanVmfs"] = reflect.TypeOf((*RescanVmfs)(nil)).Elem() -} - -type RescanVmfsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RescanVmfsRequestType"] = reflect.TypeOf((*RescanVmfsRequestType)(nil)).Elem() -} - -type RescanVmfsResponse struct { -} - -type ResetCollector ResetCollectorRequestType - -func init() { - t["ResetCollector"] = reflect.TypeOf((*ResetCollector)(nil)).Elem() -} - -type ResetCollectorRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ResetCollectorRequestType"] = reflect.TypeOf((*ResetCollectorRequestType)(nil)).Elem() -} - -type ResetCollectorResponse struct { -} - -type ResetCounterLevelMapping ResetCounterLevelMappingRequestType - -func init() { - t["ResetCounterLevelMapping"] = reflect.TypeOf((*ResetCounterLevelMapping)(nil)).Elem() -} - -type ResetCounterLevelMappingRequestType struct { - This ManagedObjectReference `xml:"_this"` - Counters []int32 `xml:"counters"` -} - -func init() { - t["ResetCounterLevelMappingRequestType"] = reflect.TypeOf((*ResetCounterLevelMappingRequestType)(nil)).Elem() -} - -type ResetCounterLevelMappingResponse struct { -} - -type ResetEntityPermissions ResetEntityPermissionsRequestType - -func init() { - t["ResetEntityPermissions"] = reflect.TypeOf((*ResetEntityPermissions)(nil)).Elem() -} - -type ResetEntityPermissionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Permission []Permission `xml:"permission,omitempty"` -} - -func init() { - t["ResetEntityPermissionsRequestType"] = reflect.TypeOf((*ResetEntityPermissionsRequestType)(nil)).Elem() -} - -type ResetEntityPermissionsResponse struct { -} - -type ResetFirmwareToFactoryDefaults ResetFirmwareToFactoryDefaultsRequestType - -func init() { - t["ResetFirmwareToFactoryDefaults"] = reflect.TypeOf((*ResetFirmwareToFactoryDefaults)(nil)).Elem() -} - -type ResetFirmwareToFactoryDefaultsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ResetFirmwareToFactoryDefaultsRequestType"] = reflect.TypeOf((*ResetFirmwareToFactoryDefaultsRequestType)(nil)).Elem() -} - -type ResetFirmwareToFactoryDefaultsResponse struct { -} - -type ResetGuestInformation ResetGuestInformationRequestType - -func init() { - t["ResetGuestInformation"] = reflect.TypeOf((*ResetGuestInformation)(nil)).Elem() -} - -type ResetGuestInformationRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ResetGuestInformationRequestType"] = reflect.TypeOf((*ResetGuestInformationRequestType)(nil)).Elem() -} - -type ResetGuestInformationResponse struct { -} - -type ResetListView ResetListViewRequestType - -func init() { - t["ResetListView"] = reflect.TypeOf((*ResetListView)(nil)).Elem() -} - -type ResetListViewFromView ResetListViewFromViewRequestType - -func init() { - t["ResetListViewFromView"] = reflect.TypeOf((*ResetListViewFromView)(nil)).Elem() -} - -type ResetListViewFromViewRequestType struct { - This ManagedObjectReference `xml:"_this"` - View ManagedObjectReference `xml:"view"` -} - -func init() { - t["ResetListViewFromViewRequestType"] = reflect.TypeOf((*ResetListViewFromViewRequestType)(nil)).Elem() -} - -type ResetListViewFromViewResponse struct { -} - -type ResetListViewRequestType struct { - This ManagedObjectReference `xml:"_this"` - Obj []ManagedObjectReference `xml:"obj,omitempty"` -} - -func init() { - t["ResetListViewRequestType"] = reflect.TypeOf((*ResetListViewRequestType)(nil)).Elem() -} - -type ResetListViewResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type ResetSystemHealthInfo ResetSystemHealthInfoRequestType - -func init() { - t["ResetSystemHealthInfo"] = reflect.TypeOf((*ResetSystemHealthInfo)(nil)).Elem() -} - -type ResetSystemHealthInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ResetSystemHealthInfoRequestType"] = reflect.TypeOf((*ResetSystemHealthInfoRequestType)(nil)).Elem() -} - -type ResetSystemHealthInfoResponse struct { -} - -type ResetVMRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ResetVMRequestType"] = reflect.TypeOf((*ResetVMRequestType)(nil)).Elem() -} - -type ResetVM_Task ResetVMRequestType - -func init() { - t["ResetVM_Task"] = reflect.TypeOf((*ResetVM_Task)(nil)).Elem() -} - -type ResetVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ResignatureUnresolvedVmfsVolumeRequestType struct { - This ManagedObjectReference `xml:"_this"` - ResolutionSpec HostUnresolvedVmfsResignatureSpec `xml:"resolutionSpec"` -} - -func init() { - t["ResignatureUnresolvedVmfsVolumeRequestType"] = reflect.TypeOf((*ResignatureUnresolvedVmfsVolumeRequestType)(nil)).Elem() -} - -type ResignatureUnresolvedVmfsVolume_Task ResignatureUnresolvedVmfsVolumeRequestType - -func init() { - t["ResignatureUnresolvedVmfsVolume_Task"] = reflect.TypeOf((*ResignatureUnresolvedVmfsVolume_Task)(nil)).Elem() -} - -type ResignatureUnresolvedVmfsVolume_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ResolveInstallationErrorsOnClusterRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - Cluster ManagedObjectReference `xml:"cluster"` -} - -func init() { - t["ResolveInstallationErrorsOnClusterRequestType"] = reflect.TypeOf((*ResolveInstallationErrorsOnClusterRequestType)(nil)).Elem() -} - -type ResolveInstallationErrorsOnCluster_Task ResolveInstallationErrorsOnClusterRequestType - -func init() { - t["ResolveInstallationErrorsOnCluster_Task"] = reflect.TypeOf((*ResolveInstallationErrorsOnCluster_Task)(nil)).Elem() -} - -type ResolveInstallationErrorsOnCluster_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ResolveInstallationErrorsOnHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["ResolveInstallationErrorsOnHostRequestType"] = reflect.TypeOf((*ResolveInstallationErrorsOnHostRequestType)(nil)).Elem() -} - -type ResolveInstallationErrorsOnHost_Task ResolveInstallationErrorsOnHostRequestType - -func init() { - t["ResolveInstallationErrorsOnHost_Task"] = reflect.TypeOf((*ResolveInstallationErrorsOnHost_Task)(nil)).Elem() -} - -type ResolveInstallationErrorsOnHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ResolveMultipleUnresolvedVmfsVolumes ResolveMultipleUnresolvedVmfsVolumesRequestType - -func init() { - t["ResolveMultipleUnresolvedVmfsVolumes"] = reflect.TypeOf((*ResolveMultipleUnresolvedVmfsVolumes)(nil)).Elem() -} - -type ResolveMultipleUnresolvedVmfsVolumesExRequestType struct { - This ManagedObjectReference `xml:"_this"` - ResolutionSpec []HostUnresolvedVmfsResolutionSpec `xml:"resolutionSpec"` -} - -func init() { - t["ResolveMultipleUnresolvedVmfsVolumesExRequestType"] = reflect.TypeOf((*ResolveMultipleUnresolvedVmfsVolumesExRequestType)(nil)).Elem() -} - -type ResolveMultipleUnresolvedVmfsVolumesEx_Task ResolveMultipleUnresolvedVmfsVolumesExRequestType - -func init() { - t["ResolveMultipleUnresolvedVmfsVolumesEx_Task"] = reflect.TypeOf((*ResolveMultipleUnresolvedVmfsVolumesEx_Task)(nil)).Elem() -} - -type ResolveMultipleUnresolvedVmfsVolumesEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ResolveMultipleUnresolvedVmfsVolumesRequestType struct { - This ManagedObjectReference `xml:"_this"` - ResolutionSpec []HostUnresolvedVmfsResolutionSpec `xml:"resolutionSpec"` -} - -func init() { - t["ResolveMultipleUnresolvedVmfsVolumesRequestType"] = reflect.TypeOf((*ResolveMultipleUnresolvedVmfsVolumesRequestType)(nil)).Elem() -} - -type ResolveMultipleUnresolvedVmfsVolumesResponse struct { - Returnval []HostUnresolvedVmfsResolutionResult `xml:"returnval,omitempty"` -} - -type ResourceAllocationInfo struct { - DynamicData - - Reservation int64 `xml:"reservation,omitempty"` - ExpandableReservation *bool `xml:"expandableReservation"` - Limit int64 `xml:"limit,omitempty"` - Shares *SharesInfo `xml:"shares,omitempty"` - OverheadLimit int64 `xml:"overheadLimit,omitempty"` -} - -func init() { - t["ResourceAllocationInfo"] = reflect.TypeOf((*ResourceAllocationInfo)(nil)).Elem() -} - -type ResourceAllocationOption struct { - DynamicData - - SharesOption SharesOption `xml:"sharesOption"` -} - -func init() { - t["ResourceAllocationOption"] = reflect.TypeOf((*ResourceAllocationOption)(nil)).Elem() -} - -type ResourceConfigOption struct { - DynamicData - - CpuAllocationOption ResourceAllocationOption `xml:"cpuAllocationOption"` - MemoryAllocationOption ResourceAllocationOption `xml:"memoryAllocationOption"` -} - -func init() { - t["ResourceConfigOption"] = reflect.TypeOf((*ResourceConfigOption)(nil)).Elem() -} - -type ResourceConfigSpec struct { - DynamicData - - Entity *ManagedObjectReference `xml:"entity,omitempty"` - ChangeVersion string `xml:"changeVersion,omitempty"` - LastModified *time.Time `xml:"lastModified"` - CpuAllocation BaseResourceAllocationInfo `xml:"cpuAllocation,typeattr"` - MemoryAllocation BaseResourceAllocationInfo `xml:"memoryAllocation,typeattr"` -} - -func init() { - t["ResourceConfigSpec"] = reflect.TypeOf((*ResourceConfigSpec)(nil)).Elem() -} - -type ResourceInUse struct { - VimFault - - Type string `xml:"type,omitempty"` - Name string `xml:"name,omitempty"` -} - -func init() { - t["ResourceInUse"] = reflect.TypeOf((*ResourceInUse)(nil)).Elem() -} - -type ResourceInUseFault BaseResourceInUse - -func init() { - t["ResourceInUseFault"] = reflect.TypeOf((*ResourceInUseFault)(nil)).Elem() -} - -type ResourceNotAvailable struct { - VimFault - - ContainerType string `xml:"containerType,omitempty"` - ContainerName string `xml:"containerName,omitempty"` - Type string `xml:"type,omitempty"` -} - -func init() { - t["ResourceNotAvailable"] = reflect.TypeOf((*ResourceNotAvailable)(nil)).Elem() -} - -type ResourceNotAvailableFault ResourceNotAvailable - -func init() { - t["ResourceNotAvailableFault"] = reflect.TypeOf((*ResourceNotAvailableFault)(nil)).Elem() -} - -type ResourcePoolCreatedEvent struct { - ResourcePoolEvent - - Parent ResourcePoolEventArgument `xml:"parent"` -} - -func init() { - t["ResourcePoolCreatedEvent"] = reflect.TypeOf((*ResourcePoolCreatedEvent)(nil)).Elem() -} - -type ResourcePoolDestroyedEvent struct { - ResourcePoolEvent -} - -func init() { - t["ResourcePoolDestroyedEvent"] = reflect.TypeOf((*ResourcePoolDestroyedEvent)(nil)).Elem() -} - -type ResourcePoolEvent struct { - Event - - ResourcePool ResourcePoolEventArgument `xml:"resourcePool"` -} - -func init() { - t["ResourcePoolEvent"] = reflect.TypeOf((*ResourcePoolEvent)(nil)).Elem() -} - -type ResourcePoolEventArgument struct { - EntityEventArgument - - ResourcePool ManagedObjectReference `xml:"resourcePool"` -} - -func init() { - t["ResourcePoolEventArgument"] = reflect.TypeOf((*ResourcePoolEventArgument)(nil)).Elem() -} - -type ResourcePoolMovedEvent struct { - ResourcePoolEvent - - OldParent ResourcePoolEventArgument `xml:"oldParent"` - NewParent ResourcePoolEventArgument `xml:"newParent"` -} - -func init() { - t["ResourcePoolMovedEvent"] = reflect.TypeOf((*ResourcePoolMovedEvent)(nil)).Elem() -} - -type ResourcePoolQuickStats struct { - DynamicData - - OverallCpuUsage int64 `xml:"overallCpuUsage,omitempty"` - OverallCpuDemand int64 `xml:"overallCpuDemand,omitempty"` - GuestMemoryUsage int64 `xml:"guestMemoryUsage,omitempty"` - HostMemoryUsage int64 `xml:"hostMemoryUsage,omitempty"` - DistributedCpuEntitlement int64 `xml:"distributedCpuEntitlement,omitempty"` - DistributedMemoryEntitlement int64 `xml:"distributedMemoryEntitlement,omitempty"` - StaticCpuEntitlement int32 `xml:"staticCpuEntitlement,omitempty"` - StaticMemoryEntitlement int32 `xml:"staticMemoryEntitlement,omitempty"` - PrivateMemory int64 `xml:"privateMemory,omitempty"` - SharedMemory int64 `xml:"sharedMemory,omitempty"` - SwappedMemory int64 `xml:"swappedMemory,omitempty"` - BalloonedMemory int64 `xml:"balloonedMemory,omitempty"` - OverheadMemory int64 `xml:"overheadMemory,omitempty"` - ConsumedOverheadMemory int64 `xml:"consumedOverheadMemory,omitempty"` - CompressedMemory int64 `xml:"compressedMemory,omitempty"` -} - -func init() { - t["ResourcePoolQuickStats"] = reflect.TypeOf((*ResourcePoolQuickStats)(nil)).Elem() -} - -type ResourcePoolReconfiguredEvent struct { - ResourcePoolEvent - - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["ResourcePoolReconfiguredEvent"] = reflect.TypeOf((*ResourcePoolReconfiguredEvent)(nil)).Elem() -} - -type ResourcePoolResourceUsage struct { - DynamicData - - ReservationUsed int64 `xml:"reservationUsed"` - ReservationUsedForVm int64 `xml:"reservationUsedForVm"` - UnreservedForPool int64 `xml:"unreservedForPool"` - UnreservedForVm int64 `xml:"unreservedForVm"` - OverallUsage int64 `xml:"overallUsage"` - MaxUsage int64 `xml:"maxUsage"` -} - -func init() { - t["ResourcePoolResourceUsage"] = reflect.TypeOf((*ResourcePoolResourceUsage)(nil)).Elem() -} - -type ResourcePoolRuntimeInfo struct { - DynamicData - - Memory ResourcePoolResourceUsage `xml:"memory"` - Cpu ResourcePoolResourceUsage `xml:"cpu"` - OverallStatus ManagedEntityStatus `xml:"overallStatus"` -} - -func init() { - t["ResourcePoolRuntimeInfo"] = reflect.TypeOf((*ResourcePoolRuntimeInfo)(nil)).Elem() -} - -type ResourcePoolSummary struct { - DynamicData - - Name string `xml:"name"` - Config ResourceConfigSpec `xml:"config"` - Runtime ResourcePoolRuntimeInfo `xml:"runtime"` - QuickStats *ResourcePoolQuickStats `xml:"quickStats,omitempty"` - ConfiguredMemoryMB int32 `xml:"configuredMemoryMB,omitempty"` -} - -func init() { - t["ResourcePoolSummary"] = reflect.TypeOf((*ResourcePoolSummary)(nil)).Elem() -} - -type ResourceViolatedEvent struct { - ResourcePoolEvent -} - -func init() { - t["ResourceViolatedEvent"] = reflect.TypeOf((*ResourceViolatedEvent)(nil)).Elem() -} - -type RestartService RestartServiceRequestType - -func init() { - t["RestartService"] = reflect.TypeOf((*RestartService)(nil)).Elem() -} - -type RestartServiceConsoleVirtualNic RestartServiceConsoleVirtualNicRequestType - -func init() { - t["RestartServiceConsoleVirtualNic"] = reflect.TypeOf((*RestartServiceConsoleVirtualNic)(nil)).Elem() -} - -type RestartServiceConsoleVirtualNicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device string `xml:"device"` -} - -func init() { - t["RestartServiceConsoleVirtualNicRequestType"] = reflect.TypeOf((*RestartServiceConsoleVirtualNicRequestType)(nil)).Elem() -} - -type RestartServiceConsoleVirtualNicResponse struct { -} - -type RestartServiceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["RestartServiceRequestType"] = reflect.TypeOf((*RestartServiceRequestType)(nil)).Elem() -} - -type RestartServiceResponse struct { -} - -type RestoreFirmwareConfiguration RestoreFirmwareConfigurationRequestType - -func init() { - t["RestoreFirmwareConfiguration"] = reflect.TypeOf((*RestoreFirmwareConfiguration)(nil)).Elem() -} - -type RestoreFirmwareConfigurationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Force bool `xml:"force"` -} - -func init() { - t["RestoreFirmwareConfigurationRequestType"] = reflect.TypeOf((*RestoreFirmwareConfigurationRequestType)(nil)).Elem() -} - -type RestoreFirmwareConfigurationResponse struct { -} - -type RestrictedByAdministrator struct { - RuntimeFault - - Details string `xml:"details"` -} - -func init() { - t["RestrictedByAdministrator"] = reflect.TypeOf((*RestrictedByAdministrator)(nil)).Elem() -} - -type RestrictedByAdministratorFault RestrictedByAdministrator - -func init() { - t["RestrictedByAdministratorFault"] = reflect.TypeOf((*RestrictedByAdministratorFault)(nil)).Elem() -} - -type RestrictedVersion struct { - SecurityError -} - -func init() { - t["RestrictedVersion"] = reflect.TypeOf((*RestrictedVersion)(nil)).Elem() -} - -type RestrictedVersionFault RestrictedVersion - -func init() { - t["RestrictedVersionFault"] = reflect.TypeOf((*RestrictedVersionFault)(nil)).Elem() -} - -type RetrieveAllPermissions RetrieveAllPermissionsRequestType - -func init() { - t["RetrieveAllPermissions"] = reflect.TypeOf((*RetrieveAllPermissions)(nil)).Elem() -} - -type RetrieveAllPermissionsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveAllPermissionsRequestType"] = reflect.TypeOf((*RetrieveAllPermissionsRequestType)(nil)).Elem() -} - -type RetrieveAllPermissionsResponse struct { - Returnval []Permission `xml:"returnval,omitempty"` -} - -type RetrieveAnswerFile RetrieveAnswerFileRequestType - -func init() { - t["RetrieveAnswerFile"] = reflect.TypeOf((*RetrieveAnswerFile)(nil)).Elem() -} - -type RetrieveAnswerFileForProfile RetrieveAnswerFileForProfileRequestType - -func init() { - t["RetrieveAnswerFileForProfile"] = reflect.TypeOf((*RetrieveAnswerFileForProfile)(nil)).Elem() -} - -type RetrieveAnswerFileForProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - ApplyProfile HostApplyProfile `xml:"applyProfile"` -} - -func init() { - t["RetrieveAnswerFileForProfileRequestType"] = reflect.TypeOf((*RetrieveAnswerFileForProfileRequestType)(nil)).Elem() -} - -type RetrieveAnswerFileForProfileResponse struct { - Returnval *AnswerFile `xml:"returnval,omitempty"` -} - -type RetrieveAnswerFileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["RetrieveAnswerFileRequestType"] = reflect.TypeOf((*RetrieveAnswerFileRequestType)(nil)).Elem() -} - -type RetrieveAnswerFileResponse struct { - Returnval *AnswerFile `xml:"returnval,omitempty"` -} - -type RetrieveArgumentDescription RetrieveArgumentDescriptionRequestType - -func init() { - t["RetrieveArgumentDescription"] = reflect.TypeOf((*RetrieveArgumentDescription)(nil)).Elem() -} - -type RetrieveArgumentDescriptionRequestType struct { - This ManagedObjectReference `xml:"_this"` - EventTypeId string `xml:"eventTypeId"` -} - -func init() { - t["RetrieveArgumentDescriptionRequestType"] = reflect.TypeOf((*RetrieveArgumentDescriptionRequestType)(nil)).Elem() -} - -type RetrieveArgumentDescriptionResponse struct { - Returnval []EventArgDesc `xml:"returnval,omitempty"` -} - -type RetrieveClientCert RetrieveClientCertRequestType - -func init() { - t["RetrieveClientCert"] = reflect.TypeOf((*RetrieveClientCert)(nil)).Elem() -} - -type RetrieveClientCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` -} - -func init() { - t["RetrieveClientCertRequestType"] = reflect.TypeOf((*RetrieveClientCertRequestType)(nil)).Elem() -} - -type RetrieveClientCertResponse struct { - Returnval string `xml:"returnval"` -} - -type RetrieveClientCsr RetrieveClientCsrRequestType - -func init() { - t["RetrieveClientCsr"] = reflect.TypeOf((*RetrieveClientCsr)(nil)).Elem() -} - -type RetrieveClientCsrRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` -} - -func init() { - t["RetrieveClientCsrRequestType"] = reflect.TypeOf((*RetrieveClientCsrRequestType)(nil)).Elem() -} - -type RetrieveClientCsrResponse struct { - Returnval string `xml:"returnval"` -} - -type RetrieveDasAdvancedRuntimeInfo RetrieveDasAdvancedRuntimeInfoRequestType - -func init() { - t["RetrieveDasAdvancedRuntimeInfo"] = reflect.TypeOf((*RetrieveDasAdvancedRuntimeInfo)(nil)).Elem() -} - -type RetrieveDasAdvancedRuntimeInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveDasAdvancedRuntimeInfoRequestType"] = reflect.TypeOf((*RetrieveDasAdvancedRuntimeInfoRequestType)(nil)).Elem() -} - -type RetrieveDasAdvancedRuntimeInfoResponse struct { - Returnval BaseClusterDasAdvancedRuntimeInfo `xml:"returnval,omitempty,typeattr"` -} - -type RetrieveDescription RetrieveDescriptionRequestType - -func init() { - t["RetrieveDescription"] = reflect.TypeOf((*RetrieveDescription)(nil)).Elem() -} - -type RetrieveDescriptionRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveDescriptionRequestType"] = reflect.TypeOf((*RetrieveDescriptionRequestType)(nil)).Elem() -} - -type RetrieveDescriptionResponse struct { - Returnval *ProfileDescription `xml:"returnval,omitempty"` -} - -type RetrieveDiskPartitionInfo RetrieveDiskPartitionInfoRequestType - -func init() { - t["RetrieveDiskPartitionInfo"] = reflect.TypeOf((*RetrieveDiskPartitionInfo)(nil)).Elem() -} - -type RetrieveDiskPartitionInfoRequestType struct { - This ManagedObjectReference `xml:"_this"` - DevicePath []string `xml:"devicePath"` -} - -func init() { - t["RetrieveDiskPartitionInfoRequestType"] = reflect.TypeOf((*RetrieveDiskPartitionInfoRequestType)(nil)).Elem() -} - -type RetrieveDiskPartitionInfoResponse struct { - Returnval []HostDiskPartitionInfo `xml:"returnval,omitempty"` -} - -type RetrieveEntityPermissions RetrieveEntityPermissionsRequestType - -func init() { - t["RetrieveEntityPermissions"] = reflect.TypeOf((*RetrieveEntityPermissions)(nil)).Elem() -} - -type RetrieveEntityPermissionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Inherited bool `xml:"inherited"` -} - -func init() { - t["RetrieveEntityPermissionsRequestType"] = reflect.TypeOf((*RetrieveEntityPermissionsRequestType)(nil)).Elem() -} - -type RetrieveEntityPermissionsResponse struct { - Returnval []Permission `xml:"returnval,omitempty"` -} - -type RetrieveEntityScheduledTask RetrieveEntityScheduledTaskRequestType - -func init() { - t["RetrieveEntityScheduledTask"] = reflect.TypeOf((*RetrieveEntityScheduledTask)(nil)).Elem() -} - -type RetrieveEntityScheduledTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["RetrieveEntityScheduledTaskRequestType"] = reflect.TypeOf((*RetrieveEntityScheduledTaskRequestType)(nil)).Elem() -} - -type RetrieveEntityScheduledTaskResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type RetrieveHardwareUptime RetrieveHardwareUptimeRequestType - -func init() { - t["RetrieveHardwareUptime"] = reflect.TypeOf((*RetrieveHardwareUptime)(nil)).Elem() -} - -type RetrieveHardwareUptimeRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveHardwareUptimeRequestType"] = reflect.TypeOf((*RetrieveHardwareUptimeRequestType)(nil)).Elem() -} - -type RetrieveHardwareUptimeResponse struct { - Returnval int64 `xml:"returnval"` -} - -type RetrieveHostAccessControlEntries RetrieveHostAccessControlEntriesRequestType - -func init() { - t["RetrieveHostAccessControlEntries"] = reflect.TypeOf((*RetrieveHostAccessControlEntries)(nil)).Elem() -} - -type RetrieveHostAccessControlEntriesRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveHostAccessControlEntriesRequestType"] = reflect.TypeOf((*RetrieveHostAccessControlEntriesRequestType)(nil)).Elem() -} - -type RetrieveHostAccessControlEntriesResponse struct { - Returnval []HostAccessControlEntry `xml:"returnval,omitempty"` -} - -type RetrieveHostCustomizations RetrieveHostCustomizationsRequestType - -func init() { - t["RetrieveHostCustomizations"] = reflect.TypeOf((*RetrieveHostCustomizations)(nil)).Elem() -} - -type RetrieveHostCustomizationsForProfile RetrieveHostCustomizationsForProfileRequestType - -func init() { - t["RetrieveHostCustomizationsForProfile"] = reflect.TypeOf((*RetrieveHostCustomizationsForProfile)(nil)).Elem() -} - -type RetrieveHostCustomizationsForProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Hosts []ManagedObjectReference `xml:"hosts,omitempty"` - ApplyProfile HostApplyProfile `xml:"applyProfile"` -} - -func init() { - t["RetrieveHostCustomizationsForProfileRequestType"] = reflect.TypeOf((*RetrieveHostCustomizationsForProfileRequestType)(nil)).Elem() -} - -type RetrieveHostCustomizationsForProfileResponse struct { - Returnval []StructuredCustomizations `xml:"returnval,omitempty"` -} - -type RetrieveHostCustomizationsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Hosts []ManagedObjectReference `xml:"hosts,omitempty"` -} - -func init() { - t["RetrieveHostCustomizationsRequestType"] = reflect.TypeOf((*RetrieveHostCustomizationsRequestType)(nil)).Elem() -} - -type RetrieveHostCustomizationsResponse struct { - Returnval []StructuredCustomizations `xml:"returnval,omitempty"` -} - -type RetrieveHostSpecification RetrieveHostSpecificationRequestType - -func init() { - t["RetrieveHostSpecification"] = reflect.TypeOf((*RetrieveHostSpecification)(nil)).Elem() -} - -type RetrieveHostSpecificationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - FromHost bool `xml:"fromHost"` -} - -func init() { - t["RetrieveHostSpecificationRequestType"] = reflect.TypeOf((*RetrieveHostSpecificationRequestType)(nil)).Elem() -} - -type RetrieveHostSpecificationResponse struct { - Returnval HostSpecification `xml:"returnval"` -} - -type RetrieveKmipServerCert RetrieveKmipServerCertRequestType - -func init() { - t["RetrieveKmipServerCert"] = reflect.TypeOf((*RetrieveKmipServerCert)(nil)).Elem() -} - -type RetrieveKmipServerCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - KeyProvider KeyProviderId `xml:"keyProvider"` - Server KmipServerInfo `xml:"server"` -} - -func init() { - t["RetrieveKmipServerCertRequestType"] = reflect.TypeOf((*RetrieveKmipServerCertRequestType)(nil)).Elem() -} - -type RetrieveKmipServerCertResponse struct { - Returnval CryptoManagerKmipServerCertInfo `xml:"returnval"` -} - -type RetrieveKmipServersStatusRequestType struct { - This ManagedObjectReference `xml:"_this"` - Clusters []KmipClusterInfo `xml:"clusters,omitempty"` -} - -func init() { - t["RetrieveKmipServersStatusRequestType"] = reflect.TypeOf((*RetrieveKmipServersStatusRequestType)(nil)).Elem() -} - -type RetrieveKmipServersStatus_Task RetrieveKmipServersStatusRequestType - -func init() { - t["RetrieveKmipServersStatus_Task"] = reflect.TypeOf((*RetrieveKmipServersStatus_Task)(nil)).Elem() -} - -type RetrieveKmipServersStatus_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RetrieveObjectScheduledTask RetrieveObjectScheduledTaskRequestType - -func init() { - t["RetrieveObjectScheduledTask"] = reflect.TypeOf((*RetrieveObjectScheduledTask)(nil)).Elem() -} - -type RetrieveObjectScheduledTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Obj *ManagedObjectReference `xml:"obj,omitempty"` -} - -func init() { - t["RetrieveObjectScheduledTaskRequestType"] = reflect.TypeOf((*RetrieveObjectScheduledTaskRequestType)(nil)).Elem() -} - -type RetrieveObjectScheduledTaskResponse struct { - Returnval []ManagedObjectReference `xml:"returnval,omitempty"` -} - -type RetrieveOptions struct { - DynamicData - - MaxObjects int32 `xml:"maxObjects,omitempty"` -} - -func init() { - t["RetrieveOptions"] = reflect.TypeOf((*RetrieveOptions)(nil)).Elem() -} - -type RetrieveProductComponents RetrieveProductComponentsRequestType - -func init() { - t["RetrieveProductComponents"] = reflect.TypeOf((*RetrieveProductComponents)(nil)).Elem() -} - -type RetrieveProductComponentsRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveProductComponentsRequestType"] = reflect.TypeOf((*RetrieveProductComponentsRequestType)(nil)).Elem() -} - -type RetrieveProductComponentsResponse struct { - Returnval []ProductComponentInfo `xml:"returnval,omitempty"` -} - -type RetrieveProperties RetrievePropertiesRequestType - -func init() { - t["RetrieveProperties"] = reflect.TypeOf((*RetrieveProperties)(nil)).Elem() -} - -type RetrievePropertiesEx RetrievePropertiesExRequestType - -func init() { - t["RetrievePropertiesEx"] = reflect.TypeOf((*RetrievePropertiesEx)(nil)).Elem() -} - -type RetrievePropertiesExRequestType struct { - This ManagedObjectReference `xml:"_this"` - SpecSet []PropertyFilterSpec `xml:"specSet"` - Options RetrieveOptions `xml:"options"` -} - -func init() { - t["RetrievePropertiesExRequestType"] = reflect.TypeOf((*RetrievePropertiesExRequestType)(nil)).Elem() -} - -type RetrievePropertiesExResponse struct { - Returnval *RetrieveResult `xml:"returnval,omitempty"` -} - -type RetrievePropertiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - SpecSet []PropertyFilterSpec `xml:"specSet"` -} - -func init() { - t["RetrievePropertiesRequestType"] = reflect.TypeOf((*RetrievePropertiesRequestType)(nil)).Elem() -} - -type RetrievePropertiesResponse struct { - Returnval []ObjectContent `xml:"returnval,omitempty"` -} - -type RetrieveResult struct { - DynamicData - - Token string `xml:"token,omitempty"` - Objects []ObjectContent `xml:"objects"` -} - -func init() { - t["RetrieveResult"] = reflect.TypeOf((*RetrieveResult)(nil)).Elem() -} - -type RetrieveRolePermissions RetrieveRolePermissionsRequestType - -func init() { - t["RetrieveRolePermissions"] = reflect.TypeOf((*RetrieveRolePermissions)(nil)).Elem() -} - -type RetrieveRolePermissionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - RoleId int32 `xml:"roleId"` -} - -func init() { - t["RetrieveRolePermissionsRequestType"] = reflect.TypeOf((*RetrieveRolePermissionsRequestType)(nil)).Elem() -} - -type RetrieveRolePermissionsResponse struct { - Returnval []Permission `xml:"returnval,omitempty"` -} - -type RetrieveSelfSignedClientCert RetrieveSelfSignedClientCertRequestType - -func init() { - t["RetrieveSelfSignedClientCert"] = reflect.TypeOf((*RetrieveSelfSignedClientCert)(nil)).Elem() -} - -type RetrieveSelfSignedClientCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` -} - -func init() { - t["RetrieveSelfSignedClientCertRequestType"] = reflect.TypeOf((*RetrieveSelfSignedClientCertRequestType)(nil)).Elem() -} - -type RetrieveSelfSignedClientCertResponse struct { - Returnval string `xml:"returnval"` -} - -type RetrieveServiceContent RetrieveServiceContentRequestType - -func init() { - t["RetrieveServiceContent"] = reflect.TypeOf((*RetrieveServiceContent)(nil)).Elem() -} - -type RetrieveServiceContentRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RetrieveServiceContentRequestType"] = reflect.TypeOf((*RetrieveServiceContentRequestType)(nil)).Elem() -} - -type RetrieveServiceContentResponse struct { - Returnval ServiceContent `xml:"returnval"` -} - -type RetrieveUserGroups RetrieveUserGroupsRequestType - -func init() { - t["RetrieveUserGroups"] = reflect.TypeOf((*RetrieveUserGroups)(nil)).Elem() -} - -type RetrieveUserGroupsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Domain string `xml:"domain,omitempty"` - SearchStr string `xml:"searchStr"` - BelongsToGroup string `xml:"belongsToGroup,omitempty"` - BelongsToUser string `xml:"belongsToUser,omitempty"` - ExactMatch bool `xml:"exactMatch"` - FindUsers bool `xml:"findUsers"` - FindGroups bool `xml:"findGroups"` -} - -func init() { - t["RetrieveUserGroupsRequestType"] = reflect.TypeOf((*RetrieveUserGroupsRequestType)(nil)).Elem() -} - -type RetrieveUserGroupsResponse struct { - Returnval []BaseUserSearchResult `xml:"returnval,omitempty,typeattr"` -} - -type RetrieveVStorageObject RetrieveVStorageObjectRequestType - -func init() { - t["RetrieveVStorageObject"] = reflect.TypeOf((*RetrieveVStorageObject)(nil)).Elem() -} - -type RetrieveVStorageObjectRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["RetrieveVStorageObjectRequestType"] = reflect.TypeOf((*RetrieveVStorageObjectRequestType)(nil)).Elem() -} - -type RetrieveVStorageObjectResponse struct { - Returnval VStorageObject `xml:"returnval"` -} - -type RetrieveVStorageObjectState RetrieveVStorageObjectStateRequestType - -func init() { - t["RetrieveVStorageObjectState"] = reflect.TypeOf((*RetrieveVStorageObjectState)(nil)).Elem() -} - -type RetrieveVStorageObjectStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id ID `xml:"id"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["RetrieveVStorageObjectStateRequestType"] = reflect.TypeOf((*RetrieveVStorageObjectStateRequestType)(nil)).Elem() -} - -type RetrieveVStorageObjectStateResponse struct { - Returnval VStorageObjectStateInfo `xml:"returnval"` -} - -type RevertToCurrentSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - SuppressPowerOn *bool `xml:"suppressPowerOn"` -} - -func init() { - t["RevertToCurrentSnapshotRequestType"] = reflect.TypeOf((*RevertToCurrentSnapshotRequestType)(nil)).Elem() -} - -type RevertToCurrentSnapshot_Task RevertToCurrentSnapshotRequestType - -func init() { - t["RevertToCurrentSnapshot_Task"] = reflect.TypeOf((*RevertToCurrentSnapshot_Task)(nil)).Elem() -} - -type RevertToCurrentSnapshot_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RevertToSnapshotRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - SuppressPowerOn *bool `xml:"suppressPowerOn"` -} - -func init() { - t["RevertToSnapshotRequestType"] = reflect.TypeOf((*RevertToSnapshotRequestType)(nil)).Elem() -} - -type RevertToSnapshot_Task RevertToSnapshotRequestType - -func init() { - t["RevertToSnapshot_Task"] = reflect.TypeOf((*RevertToSnapshot_Task)(nil)).Elem() -} - -type RevertToSnapshot_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type RewindCollector RewindCollectorRequestType - -func init() { - t["RewindCollector"] = reflect.TypeOf((*RewindCollector)(nil)).Elem() -} - -type RewindCollectorRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RewindCollectorRequestType"] = reflect.TypeOf((*RewindCollectorRequestType)(nil)).Elem() -} - -type RewindCollectorResponse struct { -} - -type RoleAddedEvent struct { - RoleEvent - - PrivilegeList []string `xml:"privilegeList,omitempty"` -} - -func init() { - t["RoleAddedEvent"] = reflect.TypeOf((*RoleAddedEvent)(nil)).Elem() -} - -type RoleEvent struct { - AuthorizationEvent - - Role RoleEventArgument `xml:"role"` -} - -func init() { - t["RoleEvent"] = reflect.TypeOf((*RoleEvent)(nil)).Elem() -} - -type RoleEventArgument struct { - EventArgument - - RoleId int32 `xml:"roleId"` - Name string `xml:"name"` -} - -func init() { - t["RoleEventArgument"] = reflect.TypeOf((*RoleEventArgument)(nil)).Elem() -} - -type RoleRemovedEvent struct { - RoleEvent -} - -func init() { - t["RoleRemovedEvent"] = reflect.TypeOf((*RoleRemovedEvent)(nil)).Elem() -} - -type RoleUpdatedEvent struct { - RoleEvent - - PrivilegeList []string `xml:"privilegeList,omitempty"` - PrevRoleName string `xml:"prevRoleName,omitempty"` - PrivilegesAdded []string `xml:"privilegesAdded,omitempty"` - PrivilegesRemoved []string `xml:"privilegesRemoved,omitempty"` -} - -func init() { - t["RoleUpdatedEvent"] = reflect.TypeOf((*RoleUpdatedEvent)(nil)).Elem() -} - -type RollbackEvent struct { - DvsEvent - - HostName string `xml:"hostName"` - MethodName string `xml:"methodName,omitempty"` -} - -func init() { - t["RollbackEvent"] = reflect.TypeOf((*RollbackEvent)(nil)).Elem() -} - -type RollbackFailure struct { - DvsFault - - EntityName string `xml:"entityName"` - EntityType string `xml:"entityType"` -} - -func init() { - t["RollbackFailure"] = reflect.TypeOf((*RollbackFailure)(nil)).Elem() -} - -type RollbackFailureFault RollbackFailure - -func init() { - t["RollbackFailureFault"] = reflect.TypeOf((*RollbackFailureFault)(nil)).Elem() -} - -type RuleViolation struct { - VmConfigFault - - Host *ManagedObjectReference `xml:"host,omitempty"` - Rule BaseClusterRuleInfo `xml:"rule,omitempty,typeattr"` -} - -func init() { - t["RuleViolation"] = reflect.TypeOf((*RuleViolation)(nil)).Elem() -} - -type RuleViolationFault RuleViolation - -func init() { - t["RuleViolationFault"] = reflect.TypeOf((*RuleViolationFault)(nil)).Elem() -} - -type RunScheduledTask RunScheduledTaskRequestType - -func init() { - t["RunScheduledTask"] = reflect.TypeOf((*RunScheduledTask)(nil)).Elem() -} - -type RunScheduledTaskRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["RunScheduledTaskRequestType"] = reflect.TypeOf((*RunScheduledTaskRequestType)(nil)).Elem() -} - -type RunScheduledTaskResponse struct { -} - -type RunScriptAction struct { - Action - - Script string `xml:"script"` -} - -func init() { - t["RunScriptAction"] = reflect.TypeOf((*RunScriptAction)(nil)).Elem() -} - -type RunVsanPhysicalDiskDiagnostics RunVsanPhysicalDiskDiagnosticsRequestType - -func init() { - t["RunVsanPhysicalDiskDiagnostics"] = reflect.TypeOf((*RunVsanPhysicalDiskDiagnostics)(nil)).Elem() -} - -type RunVsanPhysicalDiskDiagnosticsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Disks []string `xml:"disks,omitempty"` -} - -func init() { - t["RunVsanPhysicalDiskDiagnosticsRequestType"] = reflect.TypeOf((*RunVsanPhysicalDiskDiagnosticsRequestType)(nil)).Elem() -} - -type RunVsanPhysicalDiskDiagnosticsResponse struct { - Returnval []HostVsanInternalSystemVsanPhysicalDiskDiagnosticsResult `xml:"returnval"` -} - -type RuntimeFault struct { - MethodFault -} - -func init() { - t["RuntimeFault"] = reflect.TypeOf((*RuntimeFault)(nil)).Elem() -} - -type RuntimeFaultFault BaseRuntimeFault - -func init() { - t["RuntimeFaultFault"] = reflect.TypeOf((*RuntimeFaultFault)(nil)).Elem() -} - -type SAMLTokenAuthentication struct { - GuestAuthentication - - Token string `xml:"token"` - Username string `xml:"username,omitempty"` -} - -func init() { - t["SAMLTokenAuthentication"] = reflect.TypeOf((*SAMLTokenAuthentication)(nil)).Elem() -} - -type SSLDisabledFault struct { - HostConnectFault -} - -func init() { - t["SSLDisabledFault"] = reflect.TypeOf((*SSLDisabledFault)(nil)).Elem() -} - -type SSLDisabledFaultFault SSLDisabledFault - -func init() { - t["SSLDisabledFaultFault"] = reflect.TypeOf((*SSLDisabledFaultFault)(nil)).Elem() -} - -type SSLVerifyFault struct { - HostConnectFault - - SelfSigned bool `xml:"selfSigned"` - Thumbprint string `xml:"thumbprint"` -} - -func init() { - t["SSLVerifyFault"] = reflect.TypeOf((*SSLVerifyFault)(nil)).Elem() -} - -type SSLVerifyFaultFault SSLVerifyFault - -func init() { - t["SSLVerifyFaultFault"] = reflect.TypeOf((*SSLVerifyFaultFault)(nil)).Elem() -} - -type SSPIAuthentication struct { - GuestAuthentication - - SspiToken string `xml:"sspiToken"` -} - -func init() { - t["SSPIAuthentication"] = reflect.TypeOf((*SSPIAuthentication)(nil)).Elem() -} - -type SSPIChallenge struct { - VimFault - - Base64Token string `xml:"base64Token"` -} - -func init() { - t["SSPIChallenge"] = reflect.TypeOf((*SSPIChallenge)(nil)).Elem() -} - -type SSPIChallengeFault SSPIChallenge - -func init() { - t["SSPIChallengeFault"] = reflect.TypeOf((*SSPIChallengeFault)(nil)).Elem() -} - -type ScanHostPatchRequestType struct { - This ManagedObjectReference `xml:"_this"` - Repository HostPatchManagerLocator `xml:"repository"` - UpdateID []string `xml:"updateID,omitempty"` -} - -func init() { - t["ScanHostPatchRequestType"] = reflect.TypeOf((*ScanHostPatchRequestType)(nil)).Elem() -} - -type ScanHostPatchV2RequestType struct { - This ManagedObjectReference `xml:"_this"` - MetaUrls []string `xml:"metaUrls,omitempty"` - BundleUrls []string `xml:"bundleUrls,omitempty"` - Spec *HostPatchManagerPatchManagerOperationSpec `xml:"spec,omitempty"` -} - -func init() { - t["ScanHostPatchV2RequestType"] = reflect.TypeOf((*ScanHostPatchV2RequestType)(nil)).Elem() -} - -type ScanHostPatchV2_Task ScanHostPatchV2RequestType - -func init() { - t["ScanHostPatchV2_Task"] = reflect.TypeOf((*ScanHostPatchV2_Task)(nil)).Elem() -} - -type ScanHostPatchV2_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ScanHostPatch_Task ScanHostPatchRequestType - -func init() { - t["ScanHostPatch_Task"] = reflect.TypeOf((*ScanHostPatch_Task)(nil)).Elem() -} - -type ScanHostPatch_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ScheduleReconcileDatastoreInventory ScheduleReconcileDatastoreInventoryRequestType - -func init() { - t["ScheduleReconcileDatastoreInventory"] = reflect.TypeOf((*ScheduleReconcileDatastoreInventory)(nil)).Elem() -} - -type ScheduleReconcileDatastoreInventoryRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["ScheduleReconcileDatastoreInventoryRequestType"] = reflect.TypeOf((*ScheduleReconcileDatastoreInventoryRequestType)(nil)).Elem() -} - -type ScheduleReconcileDatastoreInventoryResponse struct { -} - -type ScheduledHardwareUpgradeInfo struct { - DynamicData - - UpgradePolicy string `xml:"upgradePolicy,omitempty"` - VersionKey string `xml:"versionKey,omitempty"` - ScheduledHardwareUpgradeStatus string `xml:"scheduledHardwareUpgradeStatus,omitempty"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["ScheduledHardwareUpgradeInfo"] = reflect.TypeOf((*ScheduledHardwareUpgradeInfo)(nil)).Elem() -} - -type ScheduledTaskCompletedEvent struct { - ScheduledTaskEvent -} - -func init() { - t["ScheduledTaskCompletedEvent"] = reflect.TypeOf((*ScheduledTaskCompletedEvent)(nil)).Elem() -} - -type ScheduledTaskCreatedEvent struct { - ScheduledTaskEvent -} - -func init() { - t["ScheduledTaskCreatedEvent"] = reflect.TypeOf((*ScheduledTaskCreatedEvent)(nil)).Elem() -} - -type ScheduledTaskDescription struct { - DynamicData - - Action []BaseTypeDescription `xml:"action,typeattr"` - SchedulerInfo []ScheduledTaskDetail `xml:"schedulerInfo"` - State []BaseElementDescription `xml:"state,typeattr"` - DayOfWeek []BaseElementDescription `xml:"dayOfWeek,typeattr"` - WeekOfMonth []BaseElementDescription `xml:"weekOfMonth,typeattr"` -} - -func init() { - t["ScheduledTaskDescription"] = reflect.TypeOf((*ScheduledTaskDescription)(nil)).Elem() -} - -type ScheduledTaskDetail struct { - TypeDescription - - Frequency string `xml:"frequency"` -} - -func init() { - t["ScheduledTaskDetail"] = reflect.TypeOf((*ScheduledTaskDetail)(nil)).Elem() -} - -type ScheduledTaskEmailCompletedEvent struct { - ScheduledTaskEvent - - To string `xml:"to"` -} - -func init() { - t["ScheduledTaskEmailCompletedEvent"] = reflect.TypeOf((*ScheduledTaskEmailCompletedEvent)(nil)).Elem() -} - -type ScheduledTaskEmailFailedEvent struct { - ScheduledTaskEvent - - To string `xml:"to"` - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["ScheduledTaskEmailFailedEvent"] = reflect.TypeOf((*ScheduledTaskEmailFailedEvent)(nil)).Elem() -} - -type ScheduledTaskEvent struct { - Event - - ScheduledTask ScheduledTaskEventArgument `xml:"scheduledTask"` - Entity ManagedEntityEventArgument `xml:"entity"` -} - -func init() { - t["ScheduledTaskEvent"] = reflect.TypeOf((*ScheduledTaskEvent)(nil)).Elem() -} - -type ScheduledTaskEventArgument struct { - EntityEventArgument - - ScheduledTask ManagedObjectReference `xml:"scheduledTask"` -} - -func init() { - t["ScheduledTaskEventArgument"] = reflect.TypeOf((*ScheduledTaskEventArgument)(nil)).Elem() -} - -type ScheduledTaskFailedEvent struct { - ScheduledTaskEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["ScheduledTaskFailedEvent"] = reflect.TypeOf((*ScheduledTaskFailedEvent)(nil)).Elem() -} - -type ScheduledTaskInfo struct { - ScheduledTaskSpec - - ScheduledTask ManagedObjectReference `xml:"scheduledTask"` - Entity ManagedObjectReference `xml:"entity"` - LastModifiedTime time.Time `xml:"lastModifiedTime"` - LastModifiedUser string `xml:"lastModifiedUser"` - NextRunTime *time.Time `xml:"nextRunTime"` - PrevRunTime *time.Time `xml:"prevRunTime"` - State TaskInfoState `xml:"state"` - Error *LocalizedMethodFault `xml:"error,omitempty"` - Result AnyType `xml:"result,omitempty,typeattr"` - Progress int32 `xml:"progress,omitempty"` - ActiveTask *ManagedObjectReference `xml:"activeTask,omitempty"` - TaskObject *ManagedObjectReference `xml:"taskObject,omitempty"` -} - -func init() { - t["ScheduledTaskInfo"] = reflect.TypeOf((*ScheduledTaskInfo)(nil)).Elem() -} - -type ScheduledTaskReconfiguredEvent struct { - ScheduledTaskEvent - - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["ScheduledTaskReconfiguredEvent"] = reflect.TypeOf((*ScheduledTaskReconfiguredEvent)(nil)).Elem() -} - -type ScheduledTaskRemovedEvent struct { - ScheduledTaskEvent -} - -func init() { - t["ScheduledTaskRemovedEvent"] = reflect.TypeOf((*ScheduledTaskRemovedEvent)(nil)).Elem() -} - -type ScheduledTaskSpec struct { - DynamicData - - Name string `xml:"name"` - Description string `xml:"description"` - Enabled bool `xml:"enabled"` - Scheduler BaseTaskScheduler `xml:"scheduler,typeattr"` - Action BaseAction `xml:"action,typeattr"` - Notification string `xml:"notification,omitempty"` -} - -func init() { - t["ScheduledTaskSpec"] = reflect.TypeOf((*ScheduledTaskSpec)(nil)).Elem() -} - -type ScheduledTaskStartedEvent struct { - ScheduledTaskEvent -} - -func init() { - t["ScheduledTaskStartedEvent"] = reflect.TypeOf((*ScheduledTaskStartedEvent)(nil)).Elem() -} - -type ScsiLun struct { - HostDevice - - Key string `xml:"key,omitempty"` - Uuid string `xml:"uuid"` - Descriptor []ScsiLunDescriptor `xml:"descriptor,omitempty"` - CanonicalName string `xml:"canonicalName,omitempty"` - DisplayName string `xml:"displayName,omitempty"` - LunType string `xml:"lunType"` - Vendor string `xml:"vendor,omitempty"` - Model string `xml:"model,omitempty"` - Revision string `xml:"revision,omitempty"` - ScsiLevel int32 `xml:"scsiLevel,omitempty"` - SerialNumber string `xml:"serialNumber,omitempty"` - DurableName *ScsiLunDurableName `xml:"durableName,omitempty"` - AlternateName []ScsiLunDurableName `xml:"alternateName,omitempty"` - StandardInquiry []byte `xml:"standardInquiry,omitempty"` - QueueDepth int32 `xml:"queueDepth,omitempty"` - OperationalState []string `xml:"operationalState"` - Capabilities *ScsiLunCapabilities `xml:"capabilities,omitempty"` - VStorageSupport string `xml:"vStorageSupport,omitempty"` - ProtocolEndpoint *bool `xml:"protocolEndpoint"` -} - -func init() { - t["ScsiLun"] = reflect.TypeOf((*ScsiLun)(nil)).Elem() -} - -type ScsiLunCapabilities struct { - DynamicData - - UpdateDisplayNameSupported bool `xml:"updateDisplayNameSupported"` -} - -func init() { - t["ScsiLunCapabilities"] = reflect.TypeOf((*ScsiLunCapabilities)(nil)).Elem() -} - -type ScsiLunDescriptor struct { - DynamicData - - Quality string `xml:"quality"` - Id string `xml:"id"` -} - -func init() { - t["ScsiLunDescriptor"] = reflect.TypeOf((*ScsiLunDescriptor)(nil)).Elem() -} - -type ScsiLunDurableName struct { - DynamicData - - Namespace string `xml:"namespace"` - NamespaceId byte `xml:"namespaceId"` - Data []byte `xml:"data,omitempty"` -} - -func init() { - t["ScsiLunDurableName"] = reflect.TypeOf((*ScsiLunDurableName)(nil)).Elem() -} - -type SeSparseVirtualDiskSpec struct { - FileBackedVirtualDiskSpec - - GrainSizeKb int32 `xml:"grainSizeKb,omitempty"` -} - -func init() { - t["SeSparseVirtualDiskSpec"] = reflect.TypeOf((*SeSparseVirtualDiskSpec)(nil)).Elem() -} - -type SearchDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - DatastorePath string `xml:"datastorePath"` - SearchSpec *HostDatastoreBrowserSearchSpec `xml:"searchSpec,omitempty"` -} - -func init() { - t["SearchDatastoreRequestType"] = reflect.TypeOf((*SearchDatastoreRequestType)(nil)).Elem() -} - -type SearchDatastoreSubFoldersRequestType struct { - This ManagedObjectReference `xml:"_this"` - DatastorePath string `xml:"datastorePath"` - SearchSpec *HostDatastoreBrowserSearchSpec `xml:"searchSpec,omitempty"` -} - -func init() { - t["SearchDatastoreSubFoldersRequestType"] = reflect.TypeOf((*SearchDatastoreSubFoldersRequestType)(nil)).Elem() -} - -type SearchDatastoreSubFolders_Task SearchDatastoreSubFoldersRequestType - -func init() { - t["SearchDatastoreSubFolders_Task"] = reflect.TypeOf((*SearchDatastoreSubFolders_Task)(nil)).Elem() -} - -type SearchDatastoreSubFolders_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type SearchDatastore_Task SearchDatastoreRequestType - -func init() { - t["SearchDatastore_Task"] = reflect.TypeOf((*SearchDatastore_Task)(nil)).Elem() -} - -type SearchDatastore_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type SecondaryVmAlreadyDisabled struct { - VmFaultToleranceIssue - - InstanceUuid string `xml:"instanceUuid"` -} - -func init() { - t["SecondaryVmAlreadyDisabled"] = reflect.TypeOf((*SecondaryVmAlreadyDisabled)(nil)).Elem() -} - -type SecondaryVmAlreadyDisabledFault SecondaryVmAlreadyDisabled - -func init() { - t["SecondaryVmAlreadyDisabledFault"] = reflect.TypeOf((*SecondaryVmAlreadyDisabledFault)(nil)).Elem() -} - -type SecondaryVmAlreadyEnabled struct { - VmFaultToleranceIssue - - InstanceUuid string `xml:"instanceUuid"` -} - -func init() { - t["SecondaryVmAlreadyEnabled"] = reflect.TypeOf((*SecondaryVmAlreadyEnabled)(nil)).Elem() -} - -type SecondaryVmAlreadyEnabledFault SecondaryVmAlreadyEnabled - -func init() { - t["SecondaryVmAlreadyEnabledFault"] = reflect.TypeOf((*SecondaryVmAlreadyEnabledFault)(nil)).Elem() -} - -type SecondaryVmAlreadyRegistered struct { - VmFaultToleranceIssue - - InstanceUuid string `xml:"instanceUuid,omitempty"` -} - -func init() { - t["SecondaryVmAlreadyRegistered"] = reflect.TypeOf((*SecondaryVmAlreadyRegistered)(nil)).Elem() -} - -type SecondaryVmAlreadyRegisteredFault SecondaryVmAlreadyRegistered - -func init() { - t["SecondaryVmAlreadyRegisteredFault"] = reflect.TypeOf((*SecondaryVmAlreadyRegisteredFault)(nil)).Elem() -} - -type SecondaryVmNotRegistered struct { - VmFaultToleranceIssue - - InstanceUuid string `xml:"instanceUuid,omitempty"` -} - -func init() { - t["SecondaryVmNotRegistered"] = reflect.TypeOf((*SecondaryVmNotRegistered)(nil)).Elem() -} - -type SecondaryVmNotRegisteredFault SecondaryVmNotRegistered - -func init() { - t["SecondaryVmNotRegisteredFault"] = reflect.TypeOf((*SecondaryVmNotRegisteredFault)(nil)).Elem() -} - -type SecurityError struct { - RuntimeFault -} - -func init() { - t["SecurityError"] = reflect.TypeOf((*SecurityError)(nil)).Elem() -} - -type SecurityErrorFault BaseSecurityError - -func init() { - t["SecurityErrorFault"] = reflect.TypeOf((*SecurityErrorFault)(nil)).Elem() -} - -type SecurityProfile struct { - ApplyProfile - - Permission []PermissionProfile `xml:"permission,omitempty"` -} - -func init() { - t["SecurityProfile"] = reflect.TypeOf((*SecurityProfile)(nil)).Elem() -} - -type SelectActivePartition SelectActivePartitionRequestType - -func init() { - t["SelectActivePartition"] = reflect.TypeOf((*SelectActivePartition)(nil)).Elem() -} - -type SelectActivePartitionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Partition *HostScsiDiskPartition `xml:"partition,omitempty"` -} - -func init() { - t["SelectActivePartitionRequestType"] = reflect.TypeOf((*SelectActivePartitionRequestType)(nil)).Elem() -} - -type SelectActivePartitionResponse struct { -} - -type SelectVnic SelectVnicRequestType - -func init() { - t["SelectVnic"] = reflect.TypeOf((*SelectVnic)(nil)).Elem() -} - -type SelectVnicForNicType SelectVnicForNicTypeRequestType - -func init() { - t["SelectVnicForNicType"] = reflect.TypeOf((*SelectVnicForNicType)(nil)).Elem() -} - -type SelectVnicForNicTypeRequestType struct { - This ManagedObjectReference `xml:"_this"` - NicType string `xml:"nicType"` - Device string `xml:"device"` -} - -func init() { - t["SelectVnicForNicTypeRequestType"] = reflect.TypeOf((*SelectVnicForNicTypeRequestType)(nil)).Elem() -} - -type SelectVnicForNicTypeResponse struct { -} - -type SelectVnicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device string `xml:"device"` -} - -func init() { - t["SelectVnicRequestType"] = reflect.TypeOf((*SelectVnicRequestType)(nil)).Elem() -} - -type SelectVnicResponse struct { -} - -type SelectionSet struct { - DynamicData -} - -func init() { - t["SelectionSet"] = reflect.TypeOf((*SelectionSet)(nil)).Elem() -} - -type SelectionSpec struct { - DynamicData - - Name string `xml:"name,omitempty"` -} - -func init() { - t["SelectionSpec"] = reflect.TypeOf((*SelectionSpec)(nil)).Elem() -} - -type SendEmailAction struct { - Action - - ToList string `xml:"toList"` - CcList string `xml:"ccList"` - Subject string `xml:"subject"` - Body string `xml:"body"` -} - -func init() { - t["SendEmailAction"] = reflect.TypeOf((*SendEmailAction)(nil)).Elem() -} - -type SendNMI SendNMIRequestType - -func init() { - t["SendNMI"] = reflect.TypeOf((*SendNMI)(nil)).Elem() -} - -type SendNMIRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["SendNMIRequestType"] = reflect.TypeOf((*SendNMIRequestType)(nil)).Elem() -} - -type SendNMIResponse struct { -} - -type SendSNMPAction struct { - Action -} - -func init() { - t["SendSNMPAction"] = reflect.TypeOf((*SendSNMPAction)(nil)).Elem() -} - -type SendTestNotification SendTestNotificationRequestType - -func init() { - t["SendTestNotification"] = reflect.TypeOf((*SendTestNotification)(nil)).Elem() -} - -type SendTestNotificationRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["SendTestNotificationRequestType"] = reflect.TypeOf((*SendTestNotificationRequestType)(nil)).Elem() -} - -type SendTestNotificationResponse struct { -} - -type ServerLicenseExpiredEvent struct { - LicenseEvent - - Product string `xml:"product"` -} - -func init() { - t["ServerLicenseExpiredEvent"] = reflect.TypeOf((*ServerLicenseExpiredEvent)(nil)).Elem() -} - -type ServerStartedSessionEvent struct { - SessionEvent -} - -func init() { - t["ServerStartedSessionEvent"] = reflect.TypeOf((*ServerStartedSessionEvent)(nil)).Elem() -} - -type ServiceConsolePortGroupProfile struct { - PortGroupProfile - - IpConfig IpAddressProfile `xml:"ipConfig"` -} - -func init() { - t["ServiceConsolePortGroupProfile"] = reflect.TypeOf((*ServiceConsolePortGroupProfile)(nil)).Elem() -} - -type ServiceConsoleReservationInfo struct { - DynamicData - - ServiceConsoleReservedCfg int64 `xml:"serviceConsoleReservedCfg"` - ServiceConsoleReserved int64 `xml:"serviceConsoleReserved"` - Unreserved int64 `xml:"unreserved"` -} - -func init() { - t["ServiceConsoleReservationInfo"] = reflect.TypeOf((*ServiceConsoleReservationInfo)(nil)).Elem() -} - -type ServiceContent struct { - DynamicData - - RootFolder ManagedObjectReference `xml:"rootFolder"` - PropertyCollector ManagedObjectReference `xml:"propertyCollector"` - ViewManager *ManagedObjectReference `xml:"viewManager,omitempty"` - About AboutInfo `xml:"about"` - Setting *ManagedObjectReference `xml:"setting,omitempty"` - UserDirectory *ManagedObjectReference `xml:"userDirectory,omitempty"` - SessionManager *ManagedObjectReference `xml:"sessionManager,omitempty"` - AuthorizationManager *ManagedObjectReference `xml:"authorizationManager,omitempty"` - ServiceManager *ManagedObjectReference `xml:"serviceManager,omitempty"` - PerfManager *ManagedObjectReference `xml:"perfManager,omitempty"` - ScheduledTaskManager *ManagedObjectReference `xml:"scheduledTaskManager,omitempty"` - AlarmManager *ManagedObjectReference `xml:"alarmManager,omitempty"` - EventManager *ManagedObjectReference `xml:"eventManager,omitempty"` - TaskManager *ManagedObjectReference `xml:"taskManager,omitempty"` - ExtensionManager *ManagedObjectReference `xml:"extensionManager,omitempty"` - CustomizationSpecManager *ManagedObjectReference `xml:"customizationSpecManager,omitempty"` - CustomFieldsManager *ManagedObjectReference `xml:"customFieldsManager,omitempty"` - AccountManager *ManagedObjectReference `xml:"accountManager,omitempty"` - DiagnosticManager *ManagedObjectReference `xml:"diagnosticManager,omitempty"` - LicenseManager *ManagedObjectReference `xml:"licenseManager,omitempty"` - SearchIndex *ManagedObjectReference `xml:"searchIndex,omitempty"` - FileManager *ManagedObjectReference `xml:"fileManager,omitempty"` - DatastoreNamespaceManager *ManagedObjectReference `xml:"datastoreNamespaceManager,omitempty"` - VirtualDiskManager *ManagedObjectReference `xml:"virtualDiskManager,omitempty"` - VirtualizationManager *ManagedObjectReference `xml:"virtualizationManager,omitempty"` - SnmpSystem *ManagedObjectReference `xml:"snmpSystem,omitempty"` - VmProvisioningChecker *ManagedObjectReference `xml:"vmProvisioningChecker,omitempty"` - VmCompatibilityChecker *ManagedObjectReference `xml:"vmCompatibilityChecker,omitempty"` - OvfManager *ManagedObjectReference `xml:"ovfManager,omitempty"` - IpPoolManager *ManagedObjectReference `xml:"ipPoolManager,omitempty"` - DvSwitchManager *ManagedObjectReference `xml:"dvSwitchManager,omitempty"` - HostProfileManager *ManagedObjectReference `xml:"hostProfileManager,omitempty"` - ClusterProfileManager *ManagedObjectReference `xml:"clusterProfileManager,omitempty"` - ComplianceManager *ManagedObjectReference `xml:"complianceManager,omitempty"` - LocalizationManager *ManagedObjectReference `xml:"localizationManager,omitempty"` - StorageResourceManager *ManagedObjectReference `xml:"storageResourceManager,omitempty"` - GuestOperationsManager *ManagedObjectReference `xml:"guestOperationsManager,omitempty"` - OverheadMemoryManager *ManagedObjectReference `xml:"overheadMemoryManager,omitempty"` - CertificateManager *ManagedObjectReference `xml:"certificateManager,omitempty"` - IoFilterManager *ManagedObjectReference `xml:"ioFilterManager,omitempty"` - VStorageObjectManager *ManagedObjectReference `xml:"vStorageObjectManager,omitempty"` - HostSpecManager *ManagedObjectReference `xml:"hostSpecManager,omitempty"` - CryptoManager *ManagedObjectReference `xml:"cryptoManager,omitempty"` - HealthUpdateManager *ManagedObjectReference `xml:"healthUpdateManager,omitempty"` - FailoverClusterConfigurator *ManagedObjectReference `xml:"failoverClusterConfigurator,omitempty"` - FailoverClusterManager *ManagedObjectReference `xml:"failoverClusterManager,omitempty"` -} - -func init() { - t["ServiceContent"] = reflect.TypeOf((*ServiceContent)(nil)).Elem() -} - -type ServiceLocator struct { - DynamicData - - InstanceUuid string `xml:"instanceUuid"` - Url string `xml:"url"` - Credential BaseServiceLocatorCredential `xml:"credential,typeattr"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` -} - -func init() { - t["ServiceLocator"] = reflect.TypeOf((*ServiceLocator)(nil)).Elem() -} - -type ServiceLocatorCredential struct { - DynamicData -} - -func init() { - t["ServiceLocatorCredential"] = reflect.TypeOf((*ServiceLocatorCredential)(nil)).Elem() -} - -type ServiceLocatorNamePassword struct { - ServiceLocatorCredential - - Username string `xml:"username"` - Password string `xml:"password"` -} - -func init() { - t["ServiceLocatorNamePassword"] = reflect.TypeOf((*ServiceLocatorNamePassword)(nil)).Elem() -} - -type ServiceLocatorSAMLCredential struct { - ServiceLocatorCredential - - Token string `xml:"token,omitempty"` -} - -func init() { - t["ServiceLocatorSAMLCredential"] = reflect.TypeOf((*ServiceLocatorSAMLCredential)(nil)).Elem() -} - -type ServiceManagerServiceInfo struct { - DynamicData - - ServiceName string `xml:"serviceName"` - Location []string `xml:"location,omitempty"` - Service ManagedObjectReference `xml:"service"` - Description string `xml:"description"` -} - -func init() { - t["ServiceManagerServiceInfo"] = reflect.TypeOf((*ServiceManagerServiceInfo)(nil)).Elem() -} - -type ServiceProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["ServiceProfile"] = reflect.TypeOf((*ServiceProfile)(nil)).Elem() -} - -type SessionEvent struct { - Event -} - -func init() { - t["SessionEvent"] = reflect.TypeOf((*SessionEvent)(nil)).Elem() -} - -type SessionIsActive SessionIsActiveRequestType - -func init() { - t["SessionIsActive"] = reflect.TypeOf((*SessionIsActive)(nil)).Elem() -} - -type SessionIsActiveRequestType struct { - This ManagedObjectReference `xml:"_this"` - SessionID string `xml:"sessionID"` - UserName string `xml:"userName"` -} - -func init() { - t["SessionIsActiveRequestType"] = reflect.TypeOf((*SessionIsActiveRequestType)(nil)).Elem() -} - -type SessionIsActiveResponse struct { - Returnval bool `xml:"returnval"` -} - -type SessionManagerGenericServiceTicket struct { - DynamicData - - Id string `xml:"id"` - HostName string `xml:"hostName,omitempty"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` -} - -func init() { - t["SessionManagerGenericServiceTicket"] = reflect.TypeOf((*SessionManagerGenericServiceTicket)(nil)).Elem() -} - -type SessionManagerHttpServiceRequestSpec struct { - SessionManagerServiceRequestSpec - - Method string `xml:"method,omitempty"` - Url string `xml:"url"` -} - -func init() { - t["SessionManagerHttpServiceRequestSpec"] = reflect.TypeOf((*SessionManagerHttpServiceRequestSpec)(nil)).Elem() -} - -type SessionManagerLocalTicket struct { - DynamicData - - UserName string `xml:"userName"` - PasswordFilePath string `xml:"passwordFilePath"` -} - -func init() { - t["SessionManagerLocalTicket"] = reflect.TypeOf((*SessionManagerLocalTicket)(nil)).Elem() -} - -type SessionManagerServiceRequestSpec struct { - DynamicData -} - -func init() { - t["SessionManagerServiceRequestSpec"] = reflect.TypeOf((*SessionManagerServiceRequestSpec)(nil)).Elem() -} - -type SessionManagerVmomiServiceRequestSpec struct { - SessionManagerServiceRequestSpec - - Method string `xml:"method"` -} - -func init() { - t["SessionManagerVmomiServiceRequestSpec"] = reflect.TypeOf((*SessionManagerVmomiServiceRequestSpec)(nil)).Elem() -} - -type SessionTerminatedEvent struct { - SessionEvent - - SessionId string `xml:"sessionId"` - TerminatedUsername string `xml:"terminatedUsername"` -} - -func init() { - t["SessionTerminatedEvent"] = reflect.TypeOf((*SessionTerminatedEvent)(nil)).Elem() -} - -type SetCollectorPageSize SetCollectorPageSizeRequestType - -func init() { - t["SetCollectorPageSize"] = reflect.TypeOf((*SetCollectorPageSize)(nil)).Elem() -} - -type SetCollectorPageSizeRequestType struct { - This ManagedObjectReference `xml:"_this"` - MaxCount int32 `xml:"maxCount"` -} - -func init() { - t["SetCollectorPageSizeRequestType"] = reflect.TypeOf((*SetCollectorPageSizeRequestType)(nil)).Elem() -} - -type SetCollectorPageSizeResponse struct { -} - -type SetDisplayTopology SetDisplayTopologyRequestType - -func init() { - t["SetDisplayTopology"] = reflect.TypeOf((*SetDisplayTopology)(nil)).Elem() -} - -type SetDisplayTopologyRequestType struct { - This ManagedObjectReference `xml:"_this"` - Displays []VirtualMachineDisplayTopology `xml:"displays"` -} - -func init() { - t["SetDisplayTopologyRequestType"] = reflect.TypeOf((*SetDisplayTopologyRequestType)(nil)).Elem() -} - -type SetDisplayTopologyResponse struct { -} - -type SetEntityPermissions SetEntityPermissionsRequestType - -func init() { - t["SetEntityPermissions"] = reflect.TypeOf((*SetEntityPermissions)(nil)).Elem() -} - -type SetEntityPermissionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Permission []Permission `xml:"permission,omitempty"` -} - -func init() { - t["SetEntityPermissionsRequestType"] = reflect.TypeOf((*SetEntityPermissionsRequestType)(nil)).Elem() -} - -type SetEntityPermissionsResponse struct { -} - -type SetExtensionCertificate SetExtensionCertificateRequestType - -func init() { - t["SetExtensionCertificate"] = reflect.TypeOf((*SetExtensionCertificate)(nil)).Elem() -} - -type SetExtensionCertificateRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKey string `xml:"extensionKey"` - CertificatePem string `xml:"certificatePem,omitempty"` -} - -func init() { - t["SetExtensionCertificateRequestType"] = reflect.TypeOf((*SetExtensionCertificateRequestType)(nil)).Elem() -} - -type SetExtensionCertificateResponse struct { -} - -type SetField SetFieldRequestType - -func init() { - t["SetField"] = reflect.TypeOf((*SetField)(nil)).Elem() -} - -type SetFieldRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity ManagedObjectReference `xml:"entity"` - Key int32 `xml:"key"` - Value string `xml:"value"` -} - -func init() { - t["SetFieldRequestType"] = reflect.TypeOf((*SetFieldRequestType)(nil)).Elem() -} - -type SetFieldResponse struct { -} - -type SetLicenseEdition SetLicenseEditionRequestType - -func init() { - t["SetLicenseEdition"] = reflect.TypeOf((*SetLicenseEdition)(nil)).Elem() -} - -type SetLicenseEditionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` - FeatureKey string `xml:"featureKey,omitempty"` -} - -func init() { - t["SetLicenseEditionRequestType"] = reflect.TypeOf((*SetLicenseEditionRequestType)(nil)).Elem() -} - -type SetLicenseEditionResponse struct { -} - -type SetLocale SetLocaleRequestType - -func init() { - t["SetLocale"] = reflect.TypeOf((*SetLocale)(nil)).Elem() -} - -type SetLocaleRequestType struct { - This ManagedObjectReference `xml:"_this"` - Locale string `xml:"locale"` -} - -func init() { - t["SetLocaleRequestType"] = reflect.TypeOf((*SetLocaleRequestType)(nil)).Elem() -} - -type SetLocaleResponse struct { -} - -type SetMultipathLunPolicy SetMultipathLunPolicyRequestType - -func init() { - t["SetMultipathLunPolicy"] = reflect.TypeOf((*SetMultipathLunPolicy)(nil)).Elem() -} - -type SetMultipathLunPolicyRequestType struct { - This ManagedObjectReference `xml:"_this"` - LunId string `xml:"lunId"` - Policy BaseHostMultipathInfoLogicalUnitPolicy `xml:"policy,typeattr"` -} - -func init() { - t["SetMultipathLunPolicyRequestType"] = reflect.TypeOf((*SetMultipathLunPolicyRequestType)(nil)).Elem() -} - -type SetMultipathLunPolicyResponse struct { -} - -type SetNFSUser SetNFSUserRequestType - -func init() { - t["SetNFSUser"] = reflect.TypeOf((*SetNFSUser)(nil)).Elem() -} - -type SetNFSUserRequestType struct { - This ManagedObjectReference `xml:"_this"` - User string `xml:"user"` - Password string `xml:"password"` -} - -func init() { - t["SetNFSUserRequestType"] = reflect.TypeOf((*SetNFSUserRequestType)(nil)).Elem() -} - -type SetNFSUserResponse struct { -} - -type SetPublicKey SetPublicKeyRequestType - -func init() { - t["SetPublicKey"] = reflect.TypeOf((*SetPublicKey)(nil)).Elem() -} - -type SetPublicKeyRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKey string `xml:"extensionKey"` - PublicKey string `xml:"publicKey"` -} - -func init() { - t["SetPublicKeyRequestType"] = reflect.TypeOf((*SetPublicKeyRequestType)(nil)).Elem() -} - -type SetPublicKeyResponse struct { -} - -type SetRegistryValueInGuest SetRegistryValueInGuestRequestType - -func init() { - t["SetRegistryValueInGuest"] = reflect.TypeOf((*SetRegistryValueInGuest)(nil)).Elem() -} - -type SetRegistryValueInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Value GuestRegValueSpec `xml:"value"` -} - -func init() { - t["SetRegistryValueInGuestRequestType"] = reflect.TypeOf((*SetRegistryValueInGuestRequestType)(nil)).Elem() -} - -type SetRegistryValueInGuestResponse struct { -} - -type SetScreenResolution SetScreenResolutionRequestType - -func init() { - t["SetScreenResolution"] = reflect.TypeOf((*SetScreenResolution)(nil)).Elem() -} - -type SetScreenResolutionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Width int32 `xml:"width"` - Height int32 `xml:"height"` -} - -func init() { - t["SetScreenResolutionRequestType"] = reflect.TypeOf((*SetScreenResolutionRequestType)(nil)).Elem() -} - -type SetScreenResolutionResponse struct { -} - -type SetTaskDescription SetTaskDescriptionRequestType - -func init() { - t["SetTaskDescription"] = reflect.TypeOf((*SetTaskDescription)(nil)).Elem() -} - -type SetTaskDescriptionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Description LocalizableMessage `xml:"description"` -} - -func init() { - t["SetTaskDescriptionRequestType"] = reflect.TypeOf((*SetTaskDescriptionRequestType)(nil)).Elem() -} - -type SetTaskDescriptionResponse struct { -} - -type SetTaskState SetTaskStateRequestType - -func init() { - t["SetTaskState"] = reflect.TypeOf((*SetTaskState)(nil)).Elem() -} - -type SetTaskStateRequestType struct { - This ManagedObjectReference `xml:"_this"` - State TaskInfoState `xml:"state"` - Result AnyType `xml:"result,omitempty,typeattr"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["SetTaskStateRequestType"] = reflect.TypeOf((*SetTaskStateRequestType)(nil)).Elem() -} - -type SetTaskStateResponse struct { -} - -type SetVirtualDiskUuid SetVirtualDiskUuidRequestType - -func init() { - t["SetVirtualDiskUuid"] = reflect.TypeOf((*SetVirtualDiskUuid)(nil)).Elem() -} - -type SetVirtualDiskUuidRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Uuid string `xml:"uuid"` -} - -func init() { - t["SetVirtualDiskUuidRequestType"] = reflect.TypeOf((*SetVirtualDiskUuidRequestType)(nil)).Elem() -} - -type SetVirtualDiskUuidResponse struct { -} - -type SharedBusControllerNotSupported struct { - DeviceNotSupported -} - -func init() { - t["SharedBusControllerNotSupported"] = reflect.TypeOf((*SharedBusControllerNotSupported)(nil)).Elem() -} - -type SharedBusControllerNotSupportedFault SharedBusControllerNotSupported - -func init() { - t["SharedBusControllerNotSupportedFault"] = reflect.TypeOf((*SharedBusControllerNotSupportedFault)(nil)).Elem() -} - -type SharesInfo struct { - DynamicData - - Shares int32 `xml:"shares"` - Level SharesLevel `xml:"level"` -} - -func init() { - t["SharesInfo"] = reflect.TypeOf((*SharesInfo)(nil)).Elem() -} - -type SharesOption struct { - DynamicData - - SharesOption IntOption `xml:"sharesOption"` - DefaultLevel SharesLevel `xml:"defaultLevel"` -} - -func init() { - t["SharesOption"] = reflect.TypeOf((*SharesOption)(nil)).Elem() -} - -type ShrinkDiskFault struct { - VimFault - - DiskId int32 `xml:"diskId,omitempty"` -} - -func init() { - t["ShrinkDiskFault"] = reflect.TypeOf((*ShrinkDiskFault)(nil)).Elem() -} - -type ShrinkDiskFaultFault ShrinkDiskFault - -func init() { - t["ShrinkDiskFaultFault"] = reflect.TypeOf((*ShrinkDiskFaultFault)(nil)).Elem() -} - -type ShrinkVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` - Copy *bool `xml:"copy"` -} - -func init() { - t["ShrinkVirtualDiskRequestType"] = reflect.TypeOf((*ShrinkVirtualDiskRequestType)(nil)).Elem() -} - -type ShrinkVirtualDisk_Task ShrinkVirtualDiskRequestType - -func init() { - t["ShrinkVirtualDisk_Task"] = reflect.TypeOf((*ShrinkVirtualDisk_Task)(nil)).Elem() -} - -type ShrinkVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type ShutdownGuest ShutdownGuestRequestType - -func init() { - t["ShutdownGuest"] = reflect.TypeOf((*ShutdownGuest)(nil)).Elem() -} - -type ShutdownGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["ShutdownGuestRequestType"] = reflect.TypeOf((*ShutdownGuestRequestType)(nil)).Elem() -} - -type ShutdownGuestResponse struct { -} - -type ShutdownHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - Force bool `xml:"force"` -} - -func init() { - t["ShutdownHostRequestType"] = reflect.TypeOf((*ShutdownHostRequestType)(nil)).Elem() -} - -type ShutdownHost_Task ShutdownHostRequestType - -func init() { - t["ShutdownHost_Task"] = reflect.TypeOf((*ShutdownHost_Task)(nil)).Elem() -} - -type ShutdownHost_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type SingleIp struct { - IpAddress - - Address string `xml:"address"` -} - -func init() { - t["SingleIp"] = reflect.TypeOf((*SingleIp)(nil)).Elem() -} - -type SingleMac struct { - MacAddress - - Address string `xml:"address"` -} - -func init() { - t["SingleMac"] = reflect.TypeOf((*SingleMac)(nil)).Elem() -} - -type SnapshotCloneNotSupported struct { - SnapshotCopyNotSupported -} - -func init() { - t["SnapshotCloneNotSupported"] = reflect.TypeOf((*SnapshotCloneNotSupported)(nil)).Elem() -} - -type SnapshotCloneNotSupportedFault SnapshotCloneNotSupported - -func init() { - t["SnapshotCloneNotSupportedFault"] = reflect.TypeOf((*SnapshotCloneNotSupportedFault)(nil)).Elem() -} - -type SnapshotCopyNotSupported struct { - MigrationFault -} - -func init() { - t["SnapshotCopyNotSupported"] = reflect.TypeOf((*SnapshotCopyNotSupported)(nil)).Elem() -} - -type SnapshotCopyNotSupportedFault BaseSnapshotCopyNotSupported - -func init() { - t["SnapshotCopyNotSupportedFault"] = reflect.TypeOf((*SnapshotCopyNotSupportedFault)(nil)).Elem() -} - -type SnapshotDisabled struct { - SnapshotFault -} - -func init() { - t["SnapshotDisabled"] = reflect.TypeOf((*SnapshotDisabled)(nil)).Elem() -} - -type SnapshotDisabledFault SnapshotDisabled - -func init() { - t["SnapshotDisabledFault"] = reflect.TypeOf((*SnapshotDisabledFault)(nil)).Elem() -} - -type SnapshotFault struct { - VimFault -} - -func init() { - t["SnapshotFault"] = reflect.TypeOf((*SnapshotFault)(nil)).Elem() -} - -type SnapshotFaultFault BaseSnapshotFault - -func init() { - t["SnapshotFaultFault"] = reflect.TypeOf((*SnapshotFaultFault)(nil)).Elem() -} - -type SnapshotIncompatibleDeviceInVm struct { - SnapshotFault - - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["SnapshotIncompatibleDeviceInVm"] = reflect.TypeOf((*SnapshotIncompatibleDeviceInVm)(nil)).Elem() -} - -type SnapshotIncompatibleDeviceInVmFault SnapshotIncompatibleDeviceInVm - -func init() { - t["SnapshotIncompatibleDeviceInVmFault"] = reflect.TypeOf((*SnapshotIncompatibleDeviceInVmFault)(nil)).Elem() -} - -type SnapshotLocked struct { - SnapshotFault -} - -func init() { - t["SnapshotLocked"] = reflect.TypeOf((*SnapshotLocked)(nil)).Elem() -} - -type SnapshotLockedFault SnapshotLocked - -func init() { - t["SnapshotLockedFault"] = reflect.TypeOf((*SnapshotLockedFault)(nil)).Elem() -} - -type SnapshotMoveFromNonHomeNotSupported struct { - SnapshotCopyNotSupported -} - -func init() { - t["SnapshotMoveFromNonHomeNotSupported"] = reflect.TypeOf((*SnapshotMoveFromNonHomeNotSupported)(nil)).Elem() -} - -type SnapshotMoveFromNonHomeNotSupportedFault SnapshotMoveFromNonHomeNotSupported - -func init() { - t["SnapshotMoveFromNonHomeNotSupportedFault"] = reflect.TypeOf((*SnapshotMoveFromNonHomeNotSupportedFault)(nil)).Elem() -} - -type SnapshotMoveNotSupported struct { - SnapshotCopyNotSupported -} - -func init() { - t["SnapshotMoveNotSupported"] = reflect.TypeOf((*SnapshotMoveNotSupported)(nil)).Elem() -} - -type SnapshotMoveNotSupportedFault SnapshotMoveNotSupported - -func init() { - t["SnapshotMoveNotSupportedFault"] = reflect.TypeOf((*SnapshotMoveNotSupportedFault)(nil)).Elem() -} - -type SnapshotMoveToNonHomeNotSupported struct { - SnapshotCopyNotSupported -} - -func init() { - t["SnapshotMoveToNonHomeNotSupported"] = reflect.TypeOf((*SnapshotMoveToNonHomeNotSupported)(nil)).Elem() -} - -type SnapshotMoveToNonHomeNotSupportedFault SnapshotMoveToNonHomeNotSupported - -func init() { - t["SnapshotMoveToNonHomeNotSupportedFault"] = reflect.TypeOf((*SnapshotMoveToNonHomeNotSupportedFault)(nil)).Elem() -} - -type SnapshotNoChange struct { - SnapshotFault -} - -func init() { - t["SnapshotNoChange"] = reflect.TypeOf((*SnapshotNoChange)(nil)).Elem() -} - -type SnapshotNoChangeFault SnapshotNoChange - -func init() { - t["SnapshotNoChangeFault"] = reflect.TypeOf((*SnapshotNoChangeFault)(nil)).Elem() -} - -type SnapshotRevertIssue struct { - MigrationFault - - SnapshotName string `xml:"snapshotName,omitempty"` - Event []BaseEvent `xml:"event,omitempty,typeattr"` - Errors bool `xml:"errors"` -} - -func init() { - t["SnapshotRevertIssue"] = reflect.TypeOf((*SnapshotRevertIssue)(nil)).Elem() -} - -type SnapshotRevertIssueFault SnapshotRevertIssue - -func init() { - t["SnapshotRevertIssueFault"] = reflect.TypeOf((*SnapshotRevertIssueFault)(nil)).Elem() -} - -type SoftRuleVioCorrectionDisallowed struct { - VmConfigFault - - VmName string `xml:"vmName"` -} - -func init() { - t["SoftRuleVioCorrectionDisallowed"] = reflect.TypeOf((*SoftRuleVioCorrectionDisallowed)(nil)).Elem() -} - -type SoftRuleVioCorrectionDisallowedFault SoftRuleVioCorrectionDisallowed - -func init() { - t["SoftRuleVioCorrectionDisallowedFault"] = reflect.TypeOf((*SoftRuleVioCorrectionDisallowedFault)(nil)).Elem() -} - -type SoftRuleVioCorrectionImpact struct { - VmConfigFault - - VmName string `xml:"vmName"` -} - -func init() { - t["SoftRuleVioCorrectionImpact"] = reflect.TypeOf((*SoftRuleVioCorrectionImpact)(nil)).Elem() -} - -type SoftRuleVioCorrectionImpactFault SoftRuleVioCorrectionImpact - -func init() { - t["SoftRuleVioCorrectionImpactFault"] = reflect.TypeOf((*SoftRuleVioCorrectionImpactFault)(nil)).Elem() -} - -type SoftwarePackage struct { - DynamicData - - Name string `xml:"name"` - Version string `xml:"version"` - Type string `xml:"type"` - Vendor string `xml:"vendor"` - AcceptanceLevel string `xml:"acceptanceLevel"` - Summary string `xml:"summary"` - Description string `xml:"description"` - ReferenceURL []string `xml:"referenceURL,omitempty"` - CreationDate *time.Time `xml:"creationDate"` - Depends []Relation `xml:"depends,omitempty"` - Conflicts []Relation `xml:"conflicts,omitempty"` - Replaces []Relation `xml:"replaces,omitempty"` - Provides []string `xml:"provides,omitempty"` - MaintenanceModeRequired *bool `xml:"maintenanceModeRequired"` - HardwarePlatformsRequired []string `xml:"hardwarePlatformsRequired,omitempty"` - Capability SoftwarePackageCapability `xml:"capability"` - Tag []string `xml:"tag,omitempty"` - Payload []string `xml:"payload,omitempty"` -} - -func init() { - t["SoftwarePackage"] = reflect.TypeOf((*SoftwarePackage)(nil)).Elem() -} - -type SoftwarePackageCapability struct { - DynamicData - - LiveInstallAllowed *bool `xml:"liveInstallAllowed"` - LiveRemoveAllowed *bool `xml:"liveRemoveAllowed"` - StatelessReady *bool `xml:"statelessReady"` - Overlay *bool `xml:"overlay"` -} - -func init() { - t["SoftwarePackageCapability"] = reflect.TypeOf((*SoftwarePackageCapability)(nil)).Elem() -} - -type SourceNodeSpec struct { - DynamicData - - ManagementVc ServiceLocator `xml:"managementVc"` - ActiveVc ManagedObjectReference `xml:"activeVc"` -} - -func init() { - t["SourceNodeSpec"] = reflect.TypeOf((*SourceNodeSpec)(nil)).Elem() -} - -type SsdDiskNotAvailable struct { - VimFault - - DevicePath string `xml:"devicePath"` -} - -func init() { - t["SsdDiskNotAvailable"] = reflect.TypeOf((*SsdDiskNotAvailable)(nil)).Elem() -} - -type SsdDiskNotAvailableFault SsdDiskNotAvailable - -func init() { - t["SsdDiskNotAvailableFault"] = reflect.TypeOf((*SsdDiskNotAvailableFault)(nil)).Elem() -} - -type StageHostPatchRequestType struct { - This ManagedObjectReference `xml:"_this"` - MetaUrls []string `xml:"metaUrls,omitempty"` - BundleUrls []string `xml:"bundleUrls,omitempty"` - VibUrls []string `xml:"vibUrls,omitempty"` - Spec *HostPatchManagerPatchManagerOperationSpec `xml:"spec,omitempty"` -} - -func init() { - t["StageHostPatchRequestType"] = reflect.TypeOf((*StageHostPatchRequestType)(nil)).Elem() -} - -type StageHostPatch_Task StageHostPatchRequestType - -func init() { - t["StageHostPatch_Task"] = reflect.TypeOf((*StageHostPatch_Task)(nil)).Elem() -} - -type StageHostPatch_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type StampAllRulesWithUuidRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["StampAllRulesWithUuidRequestType"] = reflect.TypeOf((*StampAllRulesWithUuidRequestType)(nil)).Elem() -} - -type StampAllRulesWithUuid_Task StampAllRulesWithUuidRequestType - -func init() { - t["StampAllRulesWithUuid_Task"] = reflect.TypeOf((*StampAllRulesWithUuid_Task)(nil)).Elem() -} - -type StampAllRulesWithUuid_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type StandbyGuest StandbyGuestRequestType - -func init() { - t["StandbyGuest"] = reflect.TypeOf((*StandbyGuest)(nil)).Elem() -} - -type StandbyGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["StandbyGuestRequestType"] = reflect.TypeOf((*StandbyGuestRequestType)(nil)).Elem() -} - -type StandbyGuestResponse struct { -} - -type StartProgramInGuest StartProgramInGuestRequestType - -func init() { - t["StartProgramInGuest"] = reflect.TypeOf((*StartProgramInGuest)(nil)).Elem() -} - -type StartProgramInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Spec BaseGuestProgramSpec `xml:"spec,typeattr"` -} - -func init() { - t["StartProgramInGuestRequestType"] = reflect.TypeOf((*StartProgramInGuestRequestType)(nil)).Elem() -} - -type StartProgramInGuestResponse struct { - Returnval int64 `xml:"returnval"` -} - -type StartRecordingRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Description string `xml:"description,omitempty"` -} - -func init() { - t["StartRecordingRequestType"] = reflect.TypeOf((*StartRecordingRequestType)(nil)).Elem() -} - -type StartRecording_Task StartRecordingRequestType - -func init() { - t["StartRecording_Task"] = reflect.TypeOf((*StartRecording_Task)(nil)).Elem() -} - -type StartRecording_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type StartReplayingRequestType struct { - This ManagedObjectReference `xml:"_this"` - ReplaySnapshot ManagedObjectReference `xml:"replaySnapshot"` -} - -func init() { - t["StartReplayingRequestType"] = reflect.TypeOf((*StartReplayingRequestType)(nil)).Elem() -} - -type StartReplaying_Task StartReplayingRequestType - -func init() { - t["StartReplaying_Task"] = reflect.TypeOf((*StartReplaying_Task)(nil)).Elem() -} - -type StartReplaying_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type StartService StartServiceRequestType - -func init() { - t["StartService"] = reflect.TypeOf((*StartService)(nil)).Elem() -} - -type StartServiceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["StartServiceRequestType"] = reflect.TypeOf((*StartServiceRequestType)(nil)).Elem() -} - -type StartServiceResponse struct { -} - -type StateAlarmExpression struct { - AlarmExpression - - Operator StateAlarmOperator `xml:"operator"` - Type string `xml:"type"` - StatePath string `xml:"statePath"` - Yellow string `xml:"yellow,omitempty"` - Red string `xml:"red,omitempty"` -} - -func init() { - t["StateAlarmExpression"] = reflect.TypeOf((*StateAlarmExpression)(nil)).Elem() -} - -type StaticRouteProfile struct { - ApplyProfile - - Key string `xml:"key,omitempty"` -} - -func init() { - t["StaticRouteProfile"] = reflect.TypeOf((*StaticRouteProfile)(nil)).Elem() -} - -type StopRecordingRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["StopRecordingRequestType"] = reflect.TypeOf((*StopRecordingRequestType)(nil)).Elem() -} - -type StopRecording_Task StopRecordingRequestType - -func init() { - t["StopRecording_Task"] = reflect.TypeOf((*StopRecording_Task)(nil)).Elem() -} - -type StopRecording_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type StopReplayingRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["StopReplayingRequestType"] = reflect.TypeOf((*StopReplayingRequestType)(nil)).Elem() -} - -type StopReplaying_Task StopReplayingRequestType - -func init() { - t["StopReplaying_Task"] = reflect.TypeOf((*StopReplaying_Task)(nil)).Elem() -} - -type StopReplaying_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type StopService StopServiceRequestType - -func init() { - t["StopService"] = reflect.TypeOf((*StopService)(nil)).Elem() -} - -type StopServiceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["StopServiceRequestType"] = reflect.TypeOf((*StopServiceRequestType)(nil)).Elem() -} - -type StopServiceResponse struct { -} - -type StorageDrsAutomationConfig struct { - DynamicData - - SpaceLoadBalanceAutomationMode string `xml:"spaceLoadBalanceAutomationMode,omitempty"` - IoLoadBalanceAutomationMode string `xml:"ioLoadBalanceAutomationMode,omitempty"` - RuleEnforcementAutomationMode string `xml:"ruleEnforcementAutomationMode,omitempty"` - PolicyEnforcementAutomationMode string `xml:"policyEnforcementAutomationMode,omitempty"` - VmEvacuationAutomationMode string `xml:"vmEvacuationAutomationMode,omitempty"` -} - -func init() { - t["StorageDrsAutomationConfig"] = reflect.TypeOf((*StorageDrsAutomationConfig)(nil)).Elem() -} - -type StorageDrsCannotMoveDiskInMultiWriterMode struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveDiskInMultiWriterMode"] = reflect.TypeOf((*StorageDrsCannotMoveDiskInMultiWriterMode)(nil)).Elem() -} - -type StorageDrsCannotMoveDiskInMultiWriterModeFault StorageDrsCannotMoveDiskInMultiWriterMode - -func init() { - t["StorageDrsCannotMoveDiskInMultiWriterModeFault"] = reflect.TypeOf((*StorageDrsCannotMoveDiskInMultiWriterModeFault)(nil)).Elem() -} - -type StorageDrsCannotMoveFTVm struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveFTVm"] = reflect.TypeOf((*StorageDrsCannotMoveFTVm)(nil)).Elem() -} - -type StorageDrsCannotMoveFTVmFault StorageDrsCannotMoveFTVm - -func init() { - t["StorageDrsCannotMoveFTVmFault"] = reflect.TypeOf((*StorageDrsCannotMoveFTVmFault)(nil)).Elem() -} - -type StorageDrsCannotMoveIndependentDisk struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveIndependentDisk"] = reflect.TypeOf((*StorageDrsCannotMoveIndependentDisk)(nil)).Elem() -} - -type StorageDrsCannotMoveIndependentDiskFault StorageDrsCannotMoveIndependentDisk - -func init() { - t["StorageDrsCannotMoveIndependentDiskFault"] = reflect.TypeOf((*StorageDrsCannotMoveIndependentDiskFault)(nil)).Elem() -} - -type StorageDrsCannotMoveManuallyPlacedSwapFile struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveManuallyPlacedSwapFile"] = reflect.TypeOf((*StorageDrsCannotMoveManuallyPlacedSwapFile)(nil)).Elem() -} - -type StorageDrsCannotMoveManuallyPlacedSwapFileFault StorageDrsCannotMoveManuallyPlacedSwapFile - -func init() { - t["StorageDrsCannotMoveManuallyPlacedSwapFileFault"] = reflect.TypeOf((*StorageDrsCannotMoveManuallyPlacedSwapFileFault)(nil)).Elem() -} - -type StorageDrsCannotMoveManuallyPlacedVm struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveManuallyPlacedVm"] = reflect.TypeOf((*StorageDrsCannotMoveManuallyPlacedVm)(nil)).Elem() -} - -type StorageDrsCannotMoveManuallyPlacedVmFault StorageDrsCannotMoveManuallyPlacedVm - -func init() { - t["StorageDrsCannotMoveManuallyPlacedVmFault"] = reflect.TypeOf((*StorageDrsCannotMoveManuallyPlacedVmFault)(nil)).Elem() -} - -type StorageDrsCannotMoveSharedDisk struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveSharedDisk"] = reflect.TypeOf((*StorageDrsCannotMoveSharedDisk)(nil)).Elem() -} - -type StorageDrsCannotMoveSharedDiskFault StorageDrsCannotMoveSharedDisk - -func init() { - t["StorageDrsCannotMoveSharedDiskFault"] = reflect.TypeOf((*StorageDrsCannotMoveSharedDiskFault)(nil)).Elem() -} - -type StorageDrsCannotMoveTemplate struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveTemplate"] = reflect.TypeOf((*StorageDrsCannotMoveTemplate)(nil)).Elem() -} - -type StorageDrsCannotMoveTemplateFault StorageDrsCannotMoveTemplate - -func init() { - t["StorageDrsCannotMoveTemplateFault"] = reflect.TypeOf((*StorageDrsCannotMoveTemplateFault)(nil)).Elem() -} - -type StorageDrsCannotMoveVmInUserFolder struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveVmInUserFolder"] = reflect.TypeOf((*StorageDrsCannotMoveVmInUserFolder)(nil)).Elem() -} - -type StorageDrsCannotMoveVmInUserFolderFault StorageDrsCannotMoveVmInUserFolder - -func init() { - t["StorageDrsCannotMoveVmInUserFolderFault"] = reflect.TypeOf((*StorageDrsCannotMoveVmInUserFolderFault)(nil)).Elem() -} - -type StorageDrsCannotMoveVmWithMountedCDROM struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveVmWithMountedCDROM"] = reflect.TypeOf((*StorageDrsCannotMoveVmWithMountedCDROM)(nil)).Elem() -} - -type StorageDrsCannotMoveVmWithMountedCDROMFault StorageDrsCannotMoveVmWithMountedCDROM - -func init() { - t["StorageDrsCannotMoveVmWithMountedCDROMFault"] = reflect.TypeOf((*StorageDrsCannotMoveVmWithMountedCDROMFault)(nil)).Elem() -} - -type StorageDrsCannotMoveVmWithNoFilesInLayout struct { - VimFault -} - -func init() { - t["StorageDrsCannotMoveVmWithNoFilesInLayout"] = reflect.TypeOf((*StorageDrsCannotMoveVmWithNoFilesInLayout)(nil)).Elem() -} - -type StorageDrsCannotMoveVmWithNoFilesInLayoutFault StorageDrsCannotMoveVmWithNoFilesInLayout - -func init() { - t["StorageDrsCannotMoveVmWithNoFilesInLayoutFault"] = reflect.TypeOf((*StorageDrsCannotMoveVmWithNoFilesInLayoutFault)(nil)).Elem() -} - -type StorageDrsConfigInfo struct { - DynamicData - - PodConfig StorageDrsPodConfigInfo `xml:"podConfig"` - VmConfig []StorageDrsVmConfigInfo `xml:"vmConfig,omitempty"` -} - -func init() { - t["StorageDrsConfigInfo"] = reflect.TypeOf((*StorageDrsConfigInfo)(nil)).Elem() -} - -type StorageDrsConfigSpec struct { - DynamicData - - PodConfigSpec *StorageDrsPodConfigSpec `xml:"podConfigSpec,omitempty"` - VmConfigSpec []StorageDrsVmConfigSpec `xml:"vmConfigSpec,omitempty"` -} - -func init() { - t["StorageDrsConfigSpec"] = reflect.TypeOf((*StorageDrsConfigSpec)(nil)).Elem() -} - -type StorageDrsDatacentersCannotShareDatastore struct { - VimFault -} - -func init() { - t["StorageDrsDatacentersCannotShareDatastore"] = reflect.TypeOf((*StorageDrsDatacentersCannotShareDatastore)(nil)).Elem() -} - -type StorageDrsDatacentersCannotShareDatastoreFault StorageDrsDatacentersCannotShareDatastore - -func init() { - t["StorageDrsDatacentersCannotShareDatastoreFault"] = reflect.TypeOf((*StorageDrsDatacentersCannotShareDatastoreFault)(nil)).Elem() -} - -type StorageDrsDisabledOnVm struct { - VimFault -} - -func init() { - t["StorageDrsDisabledOnVm"] = reflect.TypeOf((*StorageDrsDisabledOnVm)(nil)).Elem() -} - -type StorageDrsDisabledOnVmFault StorageDrsDisabledOnVm - -func init() { - t["StorageDrsDisabledOnVmFault"] = reflect.TypeOf((*StorageDrsDisabledOnVmFault)(nil)).Elem() -} - -type StorageDrsHbrDiskNotMovable struct { - VimFault - - NonMovableDiskIds string `xml:"nonMovableDiskIds"` -} - -func init() { - t["StorageDrsHbrDiskNotMovable"] = reflect.TypeOf((*StorageDrsHbrDiskNotMovable)(nil)).Elem() -} - -type StorageDrsHbrDiskNotMovableFault StorageDrsHbrDiskNotMovable - -func init() { - t["StorageDrsHbrDiskNotMovableFault"] = reflect.TypeOf((*StorageDrsHbrDiskNotMovableFault)(nil)).Elem() -} - -type StorageDrsHmsMoveInProgress struct { - VimFault -} - -func init() { - t["StorageDrsHmsMoveInProgress"] = reflect.TypeOf((*StorageDrsHmsMoveInProgress)(nil)).Elem() -} - -type StorageDrsHmsMoveInProgressFault StorageDrsHmsMoveInProgress - -func init() { - t["StorageDrsHmsMoveInProgressFault"] = reflect.TypeOf((*StorageDrsHmsMoveInProgressFault)(nil)).Elem() -} - -type StorageDrsHmsUnreachable struct { - VimFault -} - -func init() { - t["StorageDrsHmsUnreachable"] = reflect.TypeOf((*StorageDrsHmsUnreachable)(nil)).Elem() -} - -type StorageDrsHmsUnreachableFault StorageDrsHmsUnreachable - -func init() { - t["StorageDrsHmsUnreachableFault"] = reflect.TypeOf((*StorageDrsHmsUnreachableFault)(nil)).Elem() -} - -type StorageDrsIoLoadBalanceConfig struct { - DynamicData - - ReservablePercentThreshold int32 `xml:"reservablePercentThreshold,omitempty"` - ReservableIopsThreshold int32 `xml:"reservableIopsThreshold,omitempty"` - ReservableThresholdMode string `xml:"reservableThresholdMode,omitempty"` - IoLatencyThreshold int32 `xml:"ioLatencyThreshold,omitempty"` - IoLoadImbalanceThreshold int32 `xml:"ioLoadImbalanceThreshold,omitempty"` -} - -func init() { - t["StorageDrsIoLoadBalanceConfig"] = reflect.TypeOf((*StorageDrsIoLoadBalanceConfig)(nil)).Elem() -} - -type StorageDrsIolbDisabledInternally struct { - VimFault -} - -func init() { - t["StorageDrsIolbDisabledInternally"] = reflect.TypeOf((*StorageDrsIolbDisabledInternally)(nil)).Elem() -} - -type StorageDrsIolbDisabledInternallyFault StorageDrsIolbDisabledInternally - -func init() { - t["StorageDrsIolbDisabledInternallyFault"] = reflect.TypeOf((*StorageDrsIolbDisabledInternallyFault)(nil)).Elem() -} - -type StorageDrsOptionSpec struct { - ArrayUpdateSpec - - Option BaseOptionValue `xml:"option,omitempty,typeattr"` -} - -func init() { - t["StorageDrsOptionSpec"] = reflect.TypeOf((*StorageDrsOptionSpec)(nil)).Elem() -} - -type StorageDrsPlacementRankVmSpec struct { - DynamicData - - VmPlacementSpec PlacementSpec `xml:"vmPlacementSpec"` - VmClusters []ManagedObjectReference `xml:"vmClusters"` -} - -func init() { - t["StorageDrsPlacementRankVmSpec"] = reflect.TypeOf((*StorageDrsPlacementRankVmSpec)(nil)).Elem() -} - -type StorageDrsPodConfigInfo struct { - DynamicData - - Enabled bool `xml:"enabled"` - IoLoadBalanceEnabled bool `xml:"ioLoadBalanceEnabled"` - DefaultVmBehavior string `xml:"defaultVmBehavior"` - LoadBalanceInterval int32 `xml:"loadBalanceInterval,omitempty"` - DefaultIntraVmAffinity *bool `xml:"defaultIntraVmAffinity"` - SpaceLoadBalanceConfig *StorageDrsSpaceLoadBalanceConfig `xml:"spaceLoadBalanceConfig,omitempty"` - IoLoadBalanceConfig *StorageDrsIoLoadBalanceConfig `xml:"ioLoadBalanceConfig,omitempty"` - AutomationOverrides *StorageDrsAutomationConfig `xml:"automationOverrides,omitempty"` - Rule []BaseClusterRuleInfo `xml:"rule,omitempty,typeattr"` - Option []BaseOptionValue `xml:"option,omitempty,typeattr"` -} - -func init() { - t["StorageDrsPodConfigInfo"] = reflect.TypeOf((*StorageDrsPodConfigInfo)(nil)).Elem() -} - -type StorageDrsPodConfigSpec struct { - DynamicData - - Enabled *bool `xml:"enabled"` - IoLoadBalanceEnabled *bool `xml:"ioLoadBalanceEnabled"` - DefaultVmBehavior string `xml:"defaultVmBehavior,omitempty"` - LoadBalanceInterval int32 `xml:"loadBalanceInterval,omitempty"` - DefaultIntraVmAffinity *bool `xml:"defaultIntraVmAffinity"` - SpaceLoadBalanceConfig *StorageDrsSpaceLoadBalanceConfig `xml:"spaceLoadBalanceConfig,omitempty"` - IoLoadBalanceConfig *StorageDrsIoLoadBalanceConfig `xml:"ioLoadBalanceConfig,omitempty"` - AutomationOverrides *StorageDrsAutomationConfig `xml:"automationOverrides,omitempty"` - Rule []ClusterRuleSpec `xml:"rule,omitempty"` - Option []StorageDrsOptionSpec `xml:"option,omitempty"` -} - -func init() { - t["StorageDrsPodConfigSpec"] = reflect.TypeOf((*StorageDrsPodConfigSpec)(nil)).Elem() -} - -type StorageDrsPodSelectionSpec struct { - DynamicData - - InitialVmConfig []VmPodConfigForPlacement `xml:"initialVmConfig,omitempty"` - StoragePod *ManagedObjectReference `xml:"storagePod,omitempty"` -} - -func init() { - t["StorageDrsPodSelectionSpec"] = reflect.TypeOf((*StorageDrsPodSelectionSpec)(nil)).Elem() -} - -type StorageDrsRelocateDisabled struct { - VimFault -} - -func init() { - t["StorageDrsRelocateDisabled"] = reflect.TypeOf((*StorageDrsRelocateDisabled)(nil)).Elem() -} - -type StorageDrsRelocateDisabledFault StorageDrsRelocateDisabled - -func init() { - t["StorageDrsRelocateDisabledFault"] = reflect.TypeOf((*StorageDrsRelocateDisabledFault)(nil)).Elem() -} - -type StorageDrsSpaceLoadBalanceConfig struct { - DynamicData - - SpaceThresholdMode string `xml:"spaceThresholdMode,omitempty"` - SpaceUtilizationThreshold int32 `xml:"spaceUtilizationThreshold,omitempty"` - FreeSpaceThresholdGB int32 `xml:"freeSpaceThresholdGB,omitempty"` - MinSpaceUtilizationDifference int32 `xml:"minSpaceUtilizationDifference,omitempty"` -} - -func init() { - t["StorageDrsSpaceLoadBalanceConfig"] = reflect.TypeOf((*StorageDrsSpaceLoadBalanceConfig)(nil)).Elem() -} - -type StorageDrsStaleHmsCollection struct { - VimFault -} - -func init() { - t["StorageDrsStaleHmsCollection"] = reflect.TypeOf((*StorageDrsStaleHmsCollection)(nil)).Elem() -} - -type StorageDrsStaleHmsCollectionFault StorageDrsStaleHmsCollection - -func init() { - t["StorageDrsStaleHmsCollectionFault"] = reflect.TypeOf((*StorageDrsStaleHmsCollectionFault)(nil)).Elem() -} - -type StorageDrsUnableToMoveFiles struct { - VimFault -} - -func init() { - t["StorageDrsUnableToMoveFiles"] = reflect.TypeOf((*StorageDrsUnableToMoveFiles)(nil)).Elem() -} - -type StorageDrsUnableToMoveFilesFault StorageDrsUnableToMoveFiles - -func init() { - t["StorageDrsUnableToMoveFilesFault"] = reflect.TypeOf((*StorageDrsUnableToMoveFilesFault)(nil)).Elem() -} - -type StorageDrsVmConfigInfo struct { - DynamicData - - Vm *ManagedObjectReference `xml:"vm,omitempty"` - Enabled *bool `xml:"enabled"` - Behavior string `xml:"behavior,omitempty"` - IntraVmAffinity *bool `xml:"intraVmAffinity"` - IntraVmAntiAffinity *VirtualDiskAntiAffinityRuleSpec `xml:"intraVmAntiAffinity,omitempty"` -} - -func init() { - t["StorageDrsVmConfigInfo"] = reflect.TypeOf((*StorageDrsVmConfigInfo)(nil)).Elem() -} - -type StorageDrsVmConfigSpec struct { - ArrayUpdateSpec - - Info *StorageDrsVmConfigInfo `xml:"info,omitempty"` -} - -func init() { - t["StorageDrsVmConfigSpec"] = reflect.TypeOf((*StorageDrsVmConfigSpec)(nil)).Elem() -} - -type StorageIOAllocationInfo struct { - DynamicData - - Limit int64 `xml:"limit,omitempty"` - Shares *SharesInfo `xml:"shares,omitempty"` - Reservation int32 `xml:"reservation,omitempty"` -} - -func init() { - t["StorageIOAllocationInfo"] = reflect.TypeOf((*StorageIOAllocationInfo)(nil)).Elem() -} - -type StorageIOAllocationOption struct { - DynamicData - - LimitOption LongOption `xml:"limitOption"` - SharesOption SharesOption `xml:"sharesOption"` -} - -func init() { - t["StorageIOAllocationOption"] = reflect.TypeOf((*StorageIOAllocationOption)(nil)).Elem() -} - -type StorageIORMConfigOption struct { - DynamicData - - EnabledOption BoolOption `xml:"enabledOption"` - CongestionThresholdOption IntOption `xml:"congestionThresholdOption"` - StatsCollectionEnabledOption *BoolOption `xml:"statsCollectionEnabledOption,omitempty"` - ReservationEnabledOption *BoolOption `xml:"reservationEnabledOption,omitempty"` -} - -func init() { - t["StorageIORMConfigOption"] = reflect.TypeOf((*StorageIORMConfigOption)(nil)).Elem() -} - -type StorageIORMConfigSpec struct { - DynamicData - - Enabled *bool `xml:"enabled"` - CongestionThresholdMode string `xml:"congestionThresholdMode,omitempty"` - CongestionThreshold int32 `xml:"congestionThreshold,omitempty"` - PercentOfPeakThroughput int32 `xml:"percentOfPeakThroughput,omitempty"` - StatsCollectionEnabled *bool `xml:"statsCollectionEnabled"` - ReservationEnabled *bool `xml:"reservationEnabled"` - StatsAggregationDisabled *bool `xml:"statsAggregationDisabled"` - ReservableIopsThreshold int32 `xml:"reservableIopsThreshold,omitempty"` -} - -func init() { - t["StorageIORMConfigSpec"] = reflect.TypeOf((*StorageIORMConfigSpec)(nil)).Elem() -} - -type StorageIORMInfo struct { - DynamicData - - Enabled bool `xml:"enabled"` - CongestionThresholdMode string `xml:"congestionThresholdMode,omitempty"` - CongestionThreshold int32 `xml:"congestionThreshold"` - PercentOfPeakThroughput int32 `xml:"percentOfPeakThroughput,omitempty"` - StatsCollectionEnabled *bool `xml:"statsCollectionEnabled"` - ReservationEnabled *bool `xml:"reservationEnabled"` - StatsAggregationDisabled *bool `xml:"statsAggregationDisabled"` - ReservableIopsThreshold int32 `xml:"reservableIopsThreshold,omitempty"` -} - -func init() { - t["StorageIORMInfo"] = reflect.TypeOf((*StorageIORMInfo)(nil)).Elem() -} - -type StorageMigrationAction struct { - ClusterAction - - Vm ManagedObjectReference `xml:"vm"` - RelocateSpec VirtualMachineRelocateSpec `xml:"relocateSpec"` - Source ManagedObjectReference `xml:"source"` - Destination ManagedObjectReference `xml:"destination"` - SizeTransferred int64 `xml:"sizeTransferred"` - SpaceUtilSrcBefore float32 `xml:"spaceUtilSrcBefore,omitempty"` - SpaceUtilDstBefore float32 `xml:"spaceUtilDstBefore,omitempty"` - SpaceUtilSrcAfter float32 `xml:"spaceUtilSrcAfter,omitempty"` - SpaceUtilDstAfter float32 `xml:"spaceUtilDstAfter,omitempty"` - IoLatencySrcBefore float32 `xml:"ioLatencySrcBefore,omitempty"` - IoLatencyDstBefore float32 `xml:"ioLatencyDstBefore,omitempty"` -} - -func init() { - t["StorageMigrationAction"] = reflect.TypeOf((*StorageMigrationAction)(nil)).Elem() -} - -type StoragePerformanceSummary struct { - DynamicData - - Interval int32 `xml:"interval"` - Percentile []int32 `xml:"percentile"` - DatastoreReadLatency []float64 `xml:"datastoreReadLatency"` - DatastoreWriteLatency []float64 `xml:"datastoreWriteLatency"` - DatastoreVmLatency []float64 `xml:"datastoreVmLatency"` - DatastoreReadIops []float64 `xml:"datastoreReadIops"` - DatastoreWriteIops []float64 `xml:"datastoreWriteIops"` - SiocActivityDuration int32 `xml:"siocActivityDuration"` -} - -func init() { - t["StoragePerformanceSummary"] = reflect.TypeOf((*StoragePerformanceSummary)(nil)).Elem() -} - -type StoragePlacementAction struct { - ClusterAction - - Vm *ManagedObjectReference `xml:"vm,omitempty"` - RelocateSpec VirtualMachineRelocateSpec `xml:"relocateSpec"` - Destination ManagedObjectReference `xml:"destination"` - SpaceUtilBefore float32 `xml:"spaceUtilBefore,omitempty"` - SpaceDemandBefore float32 `xml:"spaceDemandBefore,omitempty"` - SpaceUtilAfter float32 `xml:"spaceUtilAfter,omitempty"` - SpaceDemandAfter float32 `xml:"spaceDemandAfter,omitempty"` - IoLatencyBefore float32 `xml:"ioLatencyBefore,omitempty"` -} - -func init() { - t["StoragePlacementAction"] = reflect.TypeOf((*StoragePlacementAction)(nil)).Elem() -} - -type StoragePlacementResult struct { - DynamicData - - Recommendations []ClusterRecommendation `xml:"recommendations,omitempty"` - DrsFault *ClusterDrsFaults `xml:"drsFault,omitempty"` - Task *ManagedObjectReference `xml:"task,omitempty"` -} - -func init() { - t["StoragePlacementResult"] = reflect.TypeOf((*StoragePlacementResult)(nil)).Elem() -} - -type StoragePlacementSpec struct { - DynamicData - - Type string `xml:"type"` - Priority VirtualMachineMovePriority `xml:"priority,omitempty"` - Vm *ManagedObjectReference `xml:"vm,omitempty"` - PodSelectionSpec StorageDrsPodSelectionSpec `xml:"podSelectionSpec"` - CloneSpec *VirtualMachineCloneSpec `xml:"cloneSpec,omitempty"` - CloneName string `xml:"cloneName,omitempty"` - ConfigSpec *VirtualMachineConfigSpec `xml:"configSpec,omitempty"` - RelocateSpec *VirtualMachineRelocateSpec `xml:"relocateSpec,omitempty"` - ResourcePool *ManagedObjectReference `xml:"resourcePool,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Folder *ManagedObjectReference `xml:"folder,omitempty"` - DisallowPrerequisiteMoves *bool `xml:"disallowPrerequisiteMoves"` - ResourceLeaseDurationSec int32 `xml:"resourceLeaseDurationSec,omitempty"` -} - -func init() { - t["StoragePlacementSpec"] = reflect.TypeOf((*StoragePlacementSpec)(nil)).Elem() -} - -type StoragePodSummary struct { - DynamicData - - Name string `xml:"name"` - Capacity int64 `xml:"capacity"` - FreeSpace int64 `xml:"freeSpace"` -} - -func init() { - t["StoragePodSummary"] = reflect.TypeOf((*StoragePodSummary)(nil)).Elem() -} - -type StorageProfile struct { - ApplyProfile - - NasStorage []NasStorageProfile `xml:"nasStorage,omitempty"` -} - -func init() { - t["StorageProfile"] = reflect.TypeOf((*StorageProfile)(nil)).Elem() -} - -type StorageRequirement struct { - DynamicData - - Datastore ManagedObjectReference `xml:"datastore"` - FreeSpaceRequiredInKb int64 `xml:"freeSpaceRequiredInKb"` -} - -func init() { - t["StorageRequirement"] = reflect.TypeOf((*StorageRequirement)(nil)).Elem() -} - -type StorageResourceManagerStorageProfileStatistics struct { - DynamicData - - ProfileId string `xml:"profileId"` - TotalSpaceMB int64 `xml:"totalSpaceMB"` - UsedSpaceMB int64 `xml:"usedSpaceMB"` -} - -func init() { - t["StorageResourceManagerStorageProfileStatistics"] = reflect.TypeOf((*StorageResourceManagerStorageProfileStatistics)(nil)).Elem() -} - -type StorageVMotionNotSupported struct { - MigrationFeatureNotSupported -} - -func init() { - t["StorageVMotionNotSupported"] = reflect.TypeOf((*StorageVMotionNotSupported)(nil)).Elem() -} - -type StorageVMotionNotSupportedFault StorageVMotionNotSupported - -func init() { - t["StorageVMotionNotSupportedFault"] = reflect.TypeOf((*StorageVMotionNotSupportedFault)(nil)).Elem() -} - -type StorageVmotionIncompatible struct { - VirtualHardwareCompatibilityIssue - - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` -} - -func init() { - t["StorageVmotionIncompatible"] = reflect.TypeOf((*StorageVmotionIncompatible)(nil)).Elem() -} - -type StorageVmotionIncompatibleFault StorageVmotionIncompatible - -func init() { - t["StorageVmotionIncompatibleFault"] = reflect.TypeOf((*StorageVmotionIncompatibleFault)(nil)).Elem() -} - -type StringExpression struct { - NegatableExpression - - Value string `xml:"value,omitempty"` -} - -func init() { - t["StringExpression"] = reflect.TypeOf((*StringExpression)(nil)).Elem() -} - -type StringOption struct { - OptionType - - DefaultValue string `xml:"defaultValue"` - ValidCharacters string `xml:"validCharacters,omitempty"` -} - -func init() { - t["StringOption"] = reflect.TypeOf((*StringOption)(nil)).Elem() -} - -type StringPolicy struct { - InheritablePolicy - - Value string `xml:"value,omitempty"` -} - -func init() { - t["StringPolicy"] = reflect.TypeOf((*StringPolicy)(nil)).Elem() -} - -type StructuredCustomizations struct { - HostProfilesEntityCustomizations - - Entity ManagedObjectReference `xml:"entity"` - Customizations *AnswerFile `xml:"customizations,omitempty"` -} - -func init() { - t["StructuredCustomizations"] = reflect.TypeOf((*StructuredCustomizations)(nil)).Elem() -} - -type SuspendVAppRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["SuspendVAppRequestType"] = reflect.TypeOf((*SuspendVAppRequestType)(nil)).Elem() -} - -type SuspendVApp_Task SuspendVAppRequestType - -func init() { - t["SuspendVApp_Task"] = reflect.TypeOf((*SuspendVApp_Task)(nil)).Elem() -} - -type SuspendVApp_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type SuspendVMRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["SuspendVMRequestType"] = reflect.TypeOf((*SuspendVMRequestType)(nil)).Elem() -} - -type SuspendVM_Task SuspendVMRequestType - -func init() { - t["SuspendVM_Task"] = reflect.TypeOf((*SuspendVM_Task)(nil)).Elem() -} - -type SuspendVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type SuspendedRelocateNotSupported struct { - MigrationFault -} - -func init() { - t["SuspendedRelocateNotSupported"] = reflect.TypeOf((*SuspendedRelocateNotSupported)(nil)).Elem() -} - -type SuspendedRelocateNotSupportedFault SuspendedRelocateNotSupported - -func init() { - t["SuspendedRelocateNotSupportedFault"] = reflect.TypeOf((*SuspendedRelocateNotSupportedFault)(nil)).Elem() -} - -type SwapDatastoreNotWritableOnHost struct { - DatastoreNotWritableOnHost -} - -func init() { - t["SwapDatastoreNotWritableOnHost"] = reflect.TypeOf((*SwapDatastoreNotWritableOnHost)(nil)).Elem() -} - -type SwapDatastoreNotWritableOnHostFault SwapDatastoreNotWritableOnHost - -func init() { - t["SwapDatastoreNotWritableOnHostFault"] = reflect.TypeOf((*SwapDatastoreNotWritableOnHostFault)(nil)).Elem() -} - -type SwapDatastoreUnset struct { - VimFault -} - -func init() { - t["SwapDatastoreUnset"] = reflect.TypeOf((*SwapDatastoreUnset)(nil)).Elem() -} - -type SwapDatastoreUnsetFault SwapDatastoreUnset - -func init() { - t["SwapDatastoreUnsetFault"] = reflect.TypeOf((*SwapDatastoreUnsetFault)(nil)).Elem() -} - -type SwapPlacementOverrideNotSupported struct { - InvalidVmConfig -} - -func init() { - t["SwapPlacementOverrideNotSupported"] = reflect.TypeOf((*SwapPlacementOverrideNotSupported)(nil)).Elem() -} - -type SwapPlacementOverrideNotSupportedFault SwapPlacementOverrideNotSupported - -func init() { - t["SwapPlacementOverrideNotSupportedFault"] = reflect.TypeOf((*SwapPlacementOverrideNotSupportedFault)(nil)).Elem() -} - -type SwitchIpUnset struct { - DvsFault -} - -func init() { - t["SwitchIpUnset"] = reflect.TypeOf((*SwitchIpUnset)(nil)).Elem() -} - -type SwitchIpUnsetFault SwitchIpUnset - -func init() { - t["SwitchIpUnsetFault"] = reflect.TypeOf((*SwitchIpUnsetFault)(nil)).Elem() -} - -type SwitchNotInUpgradeMode struct { - DvsFault -} - -func init() { - t["SwitchNotInUpgradeMode"] = reflect.TypeOf((*SwitchNotInUpgradeMode)(nil)).Elem() -} - -type SwitchNotInUpgradeModeFault SwitchNotInUpgradeMode - -func init() { - t["SwitchNotInUpgradeModeFault"] = reflect.TypeOf((*SwitchNotInUpgradeModeFault)(nil)).Elem() -} - -type SystemError struct { - RuntimeFault - - Reason string `xml:"reason"` -} - -func init() { - t["SystemError"] = reflect.TypeOf((*SystemError)(nil)).Elem() -} - -type SystemErrorFault SystemError - -func init() { - t["SystemErrorFault"] = reflect.TypeOf((*SystemErrorFault)(nil)).Elem() -} - -type SystemEventInfo struct { - DynamicData - - RecordId int64 `xml:"recordId"` - When string `xml:"when"` - SelType int64 `xml:"selType"` - Message string `xml:"message"` - SensorNumber int64 `xml:"sensorNumber"` -} - -func init() { - t["SystemEventInfo"] = reflect.TypeOf((*SystemEventInfo)(nil)).Elem() -} - -type Tag struct { - DynamicData - - Key string `xml:"key"` -} - -func init() { - t["Tag"] = reflect.TypeOf((*Tag)(nil)).Elem() -} - -type TaskDescription struct { - DynamicData - - MethodInfo []BaseElementDescription `xml:"methodInfo,typeattr"` - State []BaseElementDescription `xml:"state,typeattr"` - Reason []BaseTypeDescription `xml:"reason,typeattr"` -} - -func init() { - t["TaskDescription"] = reflect.TypeOf((*TaskDescription)(nil)).Elem() -} - -type TaskEvent struct { - Event - - Info TaskInfo `xml:"info"` -} - -func init() { - t["TaskEvent"] = reflect.TypeOf((*TaskEvent)(nil)).Elem() -} - -type TaskFilterSpec struct { - DynamicData - - Entity *TaskFilterSpecByEntity `xml:"entity,omitempty"` - Time *TaskFilterSpecByTime `xml:"time,omitempty"` - UserName *TaskFilterSpecByUsername `xml:"userName,omitempty"` - ActivationId []string `xml:"activationId,omitempty"` - State []TaskInfoState `xml:"state,omitempty"` - Alarm *ManagedObjectReference `xml:"alarm,omitempty"` - ScheduledTask *ManagedObjectReference `xml:"scheduledTask,omitempty"` - EventChainId []int32 `xml:"eventChainId,omitempty"` - Tag []string `xml:"tag,omitempty"` - ParentTaskKey []string `xml:"parentTaskKey,omitempty"` - RootTaskKey []string `xml:"rootTaskKey,omitempty"` -} - -func init() { - t["TaskFilterSpec"] = reflect.TypeOf((*TaskFilterSpec)(nil)).Elem() -} - -type TaskFilterSpecByEntity struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - Recursion TaskFilterSpecRecursionOption `xml:"recursion"` -} - -func init() { - t["TaskFilterSpecByEntity"] = reflect.TypeOf((*TaskFilterSpecByEntity)(nil)).Elem() -} - -type TaskFilterSpecByTime struct { - DynamicData - - TimeType TaskFilterSpecTimeOption `xml:"timeType"` - BeginTime *time.Time `xml:"beginTime"` - EndTime *time.Time `xml:"endTime"` -} - -func init() { - t["TaskFilterSpecByTime"] = reflect.TypeOf((*TaskFilterSpecByTime)(nil)).Elem() -} - -type TaskFilterSpecByUsername struct { - DynamicData - - SystemUser bool `xml:"systemUser"` - UserList []string `xml:"userList,omitempty"` -} - -func init() { - t["TaskFilterSpecByUsername"] = reflect.TypeOf((*TaskFilterSpecByUsername)(nil)).Elem() -} - -type TaskInProgress struct { - VimFault - - Task ManagedObjectReference `xml:"task"` -} - -func init() { - t["TaskInProgress"] = reflect.TypeOf((*TaskInProgress)(nil)).Elem() -} - -type TaskInProgressFault BaseTaskInProgress - -func init() { - t["TaskInProgressFault"] = reflect.TypeOf((*TaskInProgressFault)(nil)).Elem() -} - -type TaskInfo struct { - DynamicData - - Key string `xml:"key"` - Task ManagedObjectReference `xml:"task"` - Description *LocalizableMessage `xml:"description,omitempty"` - Name string `xml:"name,omitempty"` - DescriptionId string `xml:"descriptionId"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` - EntityName string `xml:"entityName,omitempty"` - Locked []ManagedObjectReference `xml:"locked,omitempty"` - State TaskInfoState `xml:"state"` - Cancelled bool `xml:"cancelled"` - Cancelable bool `xml:"cancelable"` - Error *LocalizedMethodFault `xml:"error,omitempty"` - Result AnyType `xml:"result,omitempty,typeattr"` - Progress int32 `xml:"progress,omitempty"` - Reason BaseTaskReason `xml:"reason,typeattr"` - QueueTime time.Time `xml:"queueTime"` - StartTime *time.Time `xml:"startTime"` - CompleteTime *time.Time `xml:"completeTime"` - EventChainId int32 `xml:"eventChainId"` - ChangeTag string `xml:"changeTag,omitempty"` - ParentTaskKey string `xml:"parentTaskKey,omitempty"` - RootTaskKey string `xml:"rootTaskKey,omitempty"` - ActivationId string `xml:"activationId,omitempty"` -} - -func init() { - t["TaskInfo"] = reflect.TypeOf((*TaskInfo)(nil)).Elem() -} - -type TaskReason struct { - DynamicData -} - -func init() { - t["TaskReason"] = reflect.TypeOf((*TaskReason)(nil)).Elem() -} - -type TaskReasonAlarm struct { - TaskReason - - AlarmName string `xml:"alarmName"` - Alarm ManagedObjectReference `xml:"alarm"` - EntityName string `xml:"entityName"` - Entity ManagedObjectReference `xml:"entity"` -} - -func init() { - t["TaskReasonAlarm"] = reflect.TypeOf((*TaskReasonAlarm)(nil)).Elem() -} - -type TaskReasonSchedule struct { - TaskReason - - Name string `xml:"name"` - ScheduledTask ManagedObjectReference `xml:"scheduledTask"` -} - -func init() { - t["TaskReasonSchedule"] = reflect.TypeOf((*TaskReasonSchedule)(nil)).Elem() -} - -type TaskReasonSystem struct { - TaskReason -} - -func init() { - t["TaskReasonSystem"] = reflect.TypeOf((*TaskReasonSystem)(nil)).Elem() -} - -type TaskReasonUser struct { - TaskReason - - UserName string `xml:"userName"` -} - -func init() { - t["TaskReasonUser"] = reflect.TypeOf((*TaskReasonUser)(nil)).Elem() -} - -type TaskScheduler struct { - DynamicData - - ActiveTime *time.Time `xml:"activeTime"` - ExpireTime *time.Time `xml:"expireTime"` -} - -func init() { - t["TaskScheduler"] = reflect.TypeOf((*TaskScheduler)(nil)).Elem() -} - -type TaskTimeoutEvent struct { - TaskEvent -} - -func init() { - t["TaskTimeoutEvent"] = reflect.TypeOf((*TaskTimeoutEvent)(nil)).Elem() -} - -type TeamingMatchEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["TeamingMatchEvent"] = reflect.TypeOf((*TeamingMatchEvent)(nil)).Elem() -} - -type TeamingMisMatchEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["TeamingMisMatchEvent"] = reflect.TypeOf((*TeamingMisMatchEvent)(nil)).Elem() -} - -type TemplateBeingUpgradedEvent struct { - TemplateUpgradeEvent -} - -func init() { - t["TemplateBeingUpgradedEvent"] = reflect.TypeOf((*TemplateBeingUpgradedEvent)(nil)).Elem() -} - -type TemplateConfigFileInfo struct { - VmConfigFileInfo -} - -func init() { - t["TemplateConfigFileInfo"] = reflect.TypeOf((*TemplateConfigFileInfo)(nil)).Elem() -} - -type TemplateConfigFileQuery struct { - VmConfigFileQuery -} - -func init() { - t["TemplateConfigFileQuery"] = reflect.TypeOf((*TemplateConfigFileQuery)(nil)).Elem() -} - -type TemplateUpgradeEvent struct { - Event - - LegacyTemplate string `xml:"legacyTemplate"` -} - -func init() { - t["TemplateUpgradeEvent"] = reflect.TypeOf((*TemplateUpgradeEvent)(nil)).Elem() -} - -type TemplateUpgradeFailedEvent struct { - TemplateUpgradeEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["TemplateUpgradeFailedEvent"] = reflect.TypeOf((*TemplateUpgradeFailedEvent)(nil)).Elem() -} - -type TemplateUpgradedEvent struct { - TemplateUpgradeEvent -} - -func init() { - t["TemplateUpgradedEvent"] = reflect.TypeOf((*TemplateUpgradedEvent)(nil)).Elem() -} - -type TerminateFaultTolerantVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm *ManagedObjectReference `xml:"vm,omitempty"` -} - -func init() { - t["TerminateFaultTolerantVMRequestType"] = reflect.TypeOf((*TerminateFaultTolerantVMRequestType)(nil)).Elem() -} - -type TerminateFaultTolerantVM_Task TerminateFaultTolerantVMRequestType - -func init() { - t["TerminateFaultTolerantVM_Task"] = reflect.TypeOf((*TerminateFaultTolerantVM_Task)(nil)).Elem() -} - -type TerminateFaultTolerantVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type TerminateProcessInGuest TerminateProcessInGuestRequestType - -func init() { - t["TerminateProcessInGuest"] = reflect.TypeOf((*TerminateProcessInGuest)(nil)).Elem() -} - -type TerminateProcessInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` - Pid int64 `xml:"pid"` -} - -func init() { - t["TerminateProcessInGuestRequestType"] = reflect.TypeOf((*TerminateProcessInGuestRequestType)(nil)).Elem() -} - -type TerminateProcessInGuestResponse struct { -} - -type TerminateSession TerminateSessionRequestType - -func init() { - t["TerminateSession"] = reflect.TypeOf((*TerminateSession)(nil)).Elem() -} - -type TerminateSessionRequestType struct { - This ManagedObjectReference `xml:"_this"` - SessionId []string `xml:"sessionId"` -} - -func init() { - t["TerminateSessionRequestType"] = reflect.TypeOf((*TerminateSessionRequestType)(nil)).Elem() -} - -type TerminateSessionResponse struct { -} - -type TerminateVM TerminateVMRequestType - -func init() { - t["TerminateVM"] = reflect.TypeOf((*TerminateVM)(nil)).Elem() -} - -type TerminateVMRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["TerminateVMRequestType"] = reflect.TypeOf((*TerminateVMRequestType)(nil)).Elem() -} - -type TerminateVMResponse struct { -} - -type ThirdPartyLicenseAssignmentFailed struct { - RuntimeFault - - Host ManagedObjectReference `xml:"host"` - Module string `xml:"module"` - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["ThirdPartyLicenseAssignmentFailed"] = reflect.TypeOf((*ThirdPartyLicenseAssignmentFailed)(nil)).Elem() -} - -type ThirdPartyLicenseAssignmentFailedFault ThirdPartyLicenseAssignmentFailed - -func init() { - t["ThirdPartyLicenseAssignmentFailedFault"] = reflect.TypeOf((*ThirdPartyLicenseAssignmentFailedFault)(nil)).Elem() -} - -type TicketedSessionAuthentication struct { - GuestAuthentication - - Ticket string `xml:"ticket"` -} - -func init() { - t["TicketedSessionAuthentication"] = reflect.TypeOf((*TicketedSessionAuthentication)(nil)).Elem() -} - -type TimedOutHostOperationEvent struct { - HostEvent -} - -func init() { - t["TimedOutHostOperationEvent"] = reflect.TypeOf((*TimedOutHostOperationEvent)(nil)).Elem() -} - -type Timedout struct { - VimFault -} - -func init() { - t["Timedout"] = reflect.TypeOf((*Timedout)(nil)).Elem() -} - -type TimedoutFault BaseTimedout - -func init() { - t["TimedoutFault"] = reflect.TypeOf((*TimedoutFault)(nil)).Elem() -} - -type TooManyConcurrentNativeClones struct { - FileFault -} - -func init() { - t["TooManyConcurrentNativeClones"] = reflect.TypeOf((*TooManyConcurrentNativeClones)(nil)).Elem() -} - -type TooManyConcurrentNativeClonesFault TooManyConcurrentNativeClones - -func init() { - t["TooManyConcurrentNativeClonesFault"] = reflect.TypeOf((*TooManyConcurrentNativeClonesFault)(nil)).Elem() -} - -type TooManyConsecutiveOverrides struct { - VimFault -} - -func init() { - t["TooManyConsecutiveOverrides"] = reflect.TypeOf((*TooManyConsecutiveOverrides)(nil)).Elem() -} - -type TooManyConsecutiveOverridesFault TooManyConsecutiveOverrides - -func init() { - t["TooManyConsecutiveOverridesFault"] = reflect.TypeOf((*TooManyConsecutiveOverridesFault)(nil)).Elem() -} - -type TooManyDevices struct { - InvalidVmConfig -} - -func init() { - t["TooManyDevices"] = reflect.TypeOf((*TooManyDevices)(nil)).Elem() -} - -type TooManyDevicesFault TooManyDevices - -func init() { - t["TooManyDevicesFault"] = reflect.TypeOf((*TooManyDevicesFault)(nil)).Elem() -} - -type TooManyDisksOnLegacyHost struct { - MigrationFault - - DiskCount int32 `xml:"diskCount"` - TimeoutDanger bool `xml:"timeoutDanger"` -} - -func init() { - t["TooManyDisksOnLegacyHost"] = reflect.TypeOf((*TooManyDisksOnLegacyHost)(nil)).Elem() -} - -type TooManyDisksOnLegacyHostFault TooManyDisksOnLegacyHost - -func init() { - t["TooManyDisksOnLegacyHostFault"] = reflect.TypeOf((*TooManyDisksOnLegacyHostFault)(nil)).Elem() -} - -type TooManyGuestLogons struct { - GuestOperationsFault -} - -func init() { - t["TooManyGuestLogons"] = reflect.TypeOf((*TooManyGuestLogons)(nil)).Elem() -} - -type TooManyGuestLogonsFault TooManyGuestLogons - -func init() { - t["TooManyGuestLogonsFault"] = reflect.TypeOf((*TooManyGuestLogonsFault)(nil)).Elem() -} - -type TooManyHosts struct { - HostConnectFault -} - -func init() { - t["TooManyHosts"] = reflect.TypeOf((*TooManyHosts)(nil)).Elem() -} - -type TooManyHostsFault TooManyHosts - -func init() { - t["TooManyHostsFault"] = reflect.TypeOf((*TooManyHostsFault)(nil)).Elem() -} - -type TooManyNativeCloneLevels struct { - FileFault -} - -func init() { - t["TooManyNativeCloneLevels"] = reflect.TypeOf((*TooManyNativeCloneLevels)(nil)).Elem() -} - -type TooManyNativeCloneLevelsFault TooManyNativeCloneLevels - -func init() { - t["TooManyNativeCloneLevelsFault"] = reflect.TypeOf((*TooManyNativeCloneLevelsFault)(nil)).Elem() -} - -type TooManyNativeClonesOnFile struct { - FileFault -} - -func init() { - t["TooManyNativeClonesOnFile"] = reflect.TypeOf((*TooManyNativeClonesOnFile)(nil)).Elem() -} - -type TooManyNativeClonesOnFileFault TooManyNativeClonesOnFile - -func init() { - t["TooManyNativeClonesOnFileFault"] = reflect.TypeOf((*TooManyNativeClonesOnFileFault)(nil)).Elem() -} - -type TooManySnapshotLevels struct { - SnapshotFault -} - -func init() { - t["TooManySnapshotLevels"] = reflect.TypeOf((*TooManySnapshotLevels)(nil)).Elem() -} - -type TooManySnapshotLevelsFault TooManySnapshotLevels - -func init() { - t["TooManySnapshotLevelsFault"] = reflect.TypeOf((*TooManySnapshotLevelsFault)(nil)).Elem() -} - -type ToolsAlreadyUpgraded struct { - VmToolsUpgradeFault -} - -func init() { - t["ToolsAlreadyUpgraded"] = reflect.TypeOf((*ToolsAlreadyUpgraded)(nil)).Elem() -} - -type ToolsAlreadyUpgradedFault ToolsAlreadyUpgraded - -func init() { - t["ToolsAlreadyUpgradedFault"] = reflect.TypeOf((*ToolsAlreadyUpgradedFault)(nil)).Elem() -} - -type ToolsAutoUpgradeNotSupported struct { - VmToolsUpgradeFault -} - -func init() { - t["ToolsAutoUpgradeNotSupported"] = reflect.TypeOf((*ToolsAutoUpgradeNotSupported)(nil)).Elem() -} - -type ToolsAutoUpgradeNotSupportedFault ToolsAutoUpgradeNotSupported - -func init() { - t["ToolsAutoUpgradeNotSupportedFault"] = reflect.TypeOf((*ToolsAutoUpgradeNotSupportedFault)(nil)).Elem() -} - -type ToolsConfigInfo struct { - DynamicData - - ToolsVersion int32 `xml:"toolsVersion,omitempty"` - ToolsInstallType string `xml:"toolsInstallType,omitempty"` - AfterPowerOn *bool `xml:"afterPowerOn"` - AfterResume *bool `xml:"afterResume"` - BeforeGuestStandby *bool `xml:"beforeGuestStandby"` - BeforeGuestShutdown *bool `xml:"beforeGuestShutdown"` - BeforeGuestReboot *bool `xml:"beforeGuestReboot"` - ToolsUpgradePolicy string `xml:"toolsUpgradePolicy,omitempty"` - PendingCustomization string `xml:"pendingCustomization,omitempty"` - CustomizationKeyId *CryptoKeyId `xml:"customizationKeyId,omitempty"` - SyncTimeWithHost *bool `xml:"syncTimeWithHost"` - LastInstallInfo *ToolsConfigInfoToolsLastInstallInfo `xml:"lastInstallInfo,omitempty"` -} - -func init() { - t["ToolsConfigInfo"] = reflect.TypeOf((*ToolsConfigInfo)(nil)).Elem() -} - -type ToolsConfigInfoToolsLastInstallInfo struct { - DynamicData - - Counter int32 `xml:"counter"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["ToolsConfigInfoToolsLastInstallInfo"] = reflect.TypeOf((*ToolsConfigInfoToolsLastInstallInfo)(nil)).Elem() -} - -type ToolsImageCopyFailed struct { - VmToolsUpgradeFault -} - -func init() { - t["ToolsImageCopyFailed"] = reflect.TypeOf((*ToolsImageCopyFailed)(nil)).Elem() -} - -type ToolsImageCopyFailedFault ToolsImageCopyFailed - -func init() { - t["ToolsImageCopyFailedFault"] = reflect.TypeOf((*ToolsImageCopyFailedFault)(nil)).Elem() -} - -type ToolsImageNotAvailable struct { - VmToolsUpgradeFault -} - -func init() { - t["ToolsImageNotAvailable"] = reflect.TypeOf((*ToolsImageNotAvailable)(nil)).Elem() -} - -type ToolsImageNotAvailableFault ToolsImageNotAvailable - -func init() { - t["ToolsImageNotAvailableFault"] = reflect.TypeOf((*ToolsImageNotAvailableFault)(nil)).Elem() -} - -type ToolsImageSignatureCheckFailed struct { - VmToolsUpgradeFault -} - -func init() { - t["ToolsImageSignatureCheckFailed"] = reflect.TypeOf((*ToolsImageSignatureCheckFailed)(nil)).Elem() -} - -type ToolsImageSignatureCheckFailedFault ToolsImageSignatureCheckFailed - -func init() { - t["ToolsImageSignatureCheckFailedFault"] = reflect.TypeOf((*ToolsImageSignatureCheckFailedFault)(nil)).Elem() -} - -type ToolsInstallationInProgress struct { - MigrationFault -} - -func init() { - t["ToolsInstallationInProgress"] = reflect.TypeOf((*ToolsInstallationInProgress)(nil)).Elem() -} - -type ToolsInstallationInProgressFault ToolsInstallationInProgress - -func init() { - t["ToolsInstallationInProgressFault"] = reflect.TypeOf((*ToolsInstallationInProgressFault)(nil)).Elem() -} - -type ToolsUnavailable struct { - VimFault -} - -func init() { - t["ToolsUnavailable"] = reflect.TypeOf((*ToolsUnavailable)(nil)).Elem() -} - -type ToolsUnavailableFault ToolsUnavailable - -func init() { - t["ToolsUnavailableFault"] = reflect.TypeOf((*ToolsUnavailableFault)(nil)).Elem() -} - -type ToolsUpgradeCancelled struct { - VmToolsUpgradeFault -} - -func init() { - t["ToolsUpgradeCancelled"] = reflect.TypeOf((*ToolsUpgradeCancelled)(nil)).Elem() -} - -type ToolsUpgradeCancelledFault ToolsUpgradeCancelled - -func init() { - t["ToolsUpgradeCancelledFault"] = reflect.TypeOf((*ToolsUpgradeCancelledFault)(nil)).Elem() -} - -type TraversalSpec struct { - SelectionSpec - - Type string `xml:"type"` - Path string `xml:"path"` - Skip *bool `xml:"skip"` - SelectSet []BaseSelectionSpec `xml:"selectSet,omitempty,typeattr"` -} - -func init() { - t["TraversalSpec"] = reflect.TypeOf((*TraversalSpec)(nil)).Elem() -} - -type TurnDiskLocatorLedOffRequestType struct { - This ManagedObjectReference `xml:"_this"` - ScsiDiskUuids []string `xml:"scsiDiskUuids"` -} - -func init() { - t["TurnDiskLocatorLedOffRequestType"] = reflect.TypeOf((*TurnDiskLocatorLedOffRequestType)(nil)).Elem() -} - -type TurnDiskLocatorLedOff_Task TurnDiskLocatorLedOffRequestType - -func init() { - t["TurnDiskLocatorLedOff_Task"] = reflect.TypeOf((*TurnDiskLocatorLedOff_Task)(nil)).Elem() -} - -type TurnDiskLocatorLedOff_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type TurnDiskLocatorLedOnRequestType struct { - This ManagedObjectReference `xml:"_this"` - ScsiDiskUuids []string `xml:"scsiDiskUuids"` -} - -func init() { - t["TurnDiskLocatorLedOnRequestType"] = reflect.TypeOf((*TurnDiskLocatorLedOnRequestType)(nil)).Elem() -} - -type TurnDiskLocatorLedOn_Task TurnDiskLocatorLedOnRequestType - -func init() { - t["TurnDiskLocatorLedOn_Task"] = reflect.TypeOf((*TurnDiskLocatorLedOn_Task)(nil)).Elem() -} - -type TurnDiskLocatorLedOn_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type TurnOffFaultToleranceForVMRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["TurnOffFaultToleranceForVMRequestType"] = reflect.TypeOf((*TurnOffFaultToleranceForVMRequestType)(nil)).Elem() -} - -type TurnOffFaultToleranceForVM_Task TurnOffFaultToleranceForVMRequestType - -func init() { - t["TurnOffFaultToleranceForVM_Task"] = reflect.TypeOf((*TurnOffFaultToleranceForVM_Task)(nil)).Elem() -} - -type TurnOffFaultToleranceForVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type TypeDescription struct { - Description - - Key string `xml:"key"` -} - -func init() { - t["TypeDescription"] = reflect.TypeOf((*TypeDescription)(nil)).Elem() -} - -type UnSupportedDatastoreForVFlash struct { - UnsupportedDatastore - - DatastoreName string `xml:"datastoreName"` - Type string `xml:"type"` -} - -func init() { - t["UnSupportedDatastoreForVFlash"] = reflect.TypeOf((*UnSupportedDatastoreForVFlash)(nil)).Elem() -} - -type UnSupportedDatastoreForVFlashFault UnSupportedDatastoreForVFlash - -func init() { - t["UnSupportedDatastoreForVFlashFault"] = reflect.TypeOf((*UnSupportedDatastoreForVFlashFault)(nil)).Elem() -} - -type UnassignUserFromGroup UnassignUserFromGroupRequestType - -func init() { - t["UnassignUserFromGroup"] = reflect.TypeOf((*UnassignUserFromGroup)(nil)).Elem() -} - -type UnassignUserFromGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - User string `xml:"user"` - Group string `xml:"group"` -} - -func init() { - t["UnassignUserFromGroupRequestType"] = reflect.TypeOf((*UnassignUserFromGroupRequestType)(nil)).Elem() -} - -type UnassignUserFromGroupResponse struct { -} - -type UnbindVnic UnbindVnicRequestType - -func init() { - t["UnbindVnic"] = reflect.TypeOf((*UnbindVnic)(nil)).Elem() -} - -type UnbindVnicRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaName string `xml:"iScsiHbaName"` - VnicDevice string `xml:"vnicDevice"` - Force bool `xml:"force"` -} - -func init() { - t["UnbindVnicRequestType"] = reflect.TypeOf((*UnbindVnicRequestType)(nil)).Elem() -} - -type UnbindVnicResponse struct { -} - -type UncommittedUndoableDisk struct { - MigrationFault -} - -func init() { - t["UncommittedUndoableDisk"] = reflect.TypeOf((*UncommittedUndoableDisk)(nil)).Elem() -} - -type UncommittedUndoableDiskFault UncommittedUndoableDisk - -func init() { - t["UncommittedUndoableDiskFault"] = reflect.TypeOf((*UncommittedUndoableDiskFault)(nil)).Elem() -} - -type UnconfiguredPropertyValue struct { - InvalidPropertyValue -} - -func init() { - t["UnconfiguredPropertyValue"] = reflect.TypeOf((*UnconfiguredPropertyValue)(nil)).Elem() -} - -type UnconfiguredPropertyValueFault UnconfiguredPropertyValue - -func init() { - t["UnconfiguredPropertyValueFault"] = reflect.TypeOf((*UnconfiguredPropertyValueFault)(nil)).Elem() -} - -type UncustomizableGuest struct { - CustomizationFault - - UncustomizableGuestOS string `xml:"uncustomizableGuestOS"` -} - -func init() { - t["UncustomizableGuest"] = reflect.TypeOf((*UncustomizableGuest)(nil)).Elem() -} - -type UncustomizableGuestFault UncustomizableGuest - -func init() { - t["UncustomizableGuestFault"] = reflect.TypeOf((*UncustomizableGuestFault)(nil)).Elem() -} - -type UnexpectedCustomizationFault struct { - CustomizationFault -} - -func init() { - t["UnexpectedCustomizationFault"] = reflect.TypeOf((*UnexpectedCustomizationFault)(nil)).Elem() -} - -type UnexpectedCustomizationFaultFault UnexpectedCustomizationFault - -func init() { - t["UnexpectedCustomizationFaultFault"] = reflect.TypeOf((*UnexpectedCustomizationFaultFault)(nil)).Elem() -} - -type UnexpectedFault struct { - RuntimeFault - - FaultName string `xml:"faultName"` - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["UnexpectedFault"] = reflect.TypeOf((*UnexpectedFault)(nil)).Elem() -} - -type UnexpectedFaultFault UnexpectedFault - -func init() { - t["UnexpectedFaultFault"] = reflect.TypeOf((*UnexpectedFaultFault)(nil)).Elem() -} - -type UninstallHostPatchRequestType struct { - This ManagedObjectReference `xml:"_this"` - BulletinIds []string `xml:"bulletinIds,omitempty"` - Spec *HostPatchManagerPatchManagerOperationSpec `xml:"spec,omitempty"` -} - -func init() { - t["UninstallHostPatchRequestType"] = reflect.TypeOf((*UninstallHostPatchRequestType)(nil)).Elem() -} - -type UninstallHostPatch_Task UninstallHostPatchRequestType - -func init() { - t["UninstallHostPatch_Task"] = reflect.TypeOf((*UninstallHostPatch_Task)(nil)).Elem() -} - -type UninstallHostPatch_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UninstallIoFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - CompRes ManagedObjectReference `xml:"compRes"` -} - -func init() { - t["UninstallIoFilterRequestType"] = reflect.TypeOf((*UninstallIoFilterRequestType)(nil)).Elem() -} - -type UninstallIoFilter_Task UninstallIoFilterRequestType - -func init() { - t["UninstallIoFilter_Task"] = reflect.TypeOf((*UninstallIoFilter_Task)(nil)).Elem() -} - -type UninstallIoFilter_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UninstallService UninstallServiceRequestType - -func init() { - t["UninstallService"] = reflect.TypeOf((*UninstallService)(nil)).Elem() -} - -type UninstallServiceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` -} - -func init() { - t["UninstallServiceRequestType"] = reflect.TypeOf((*UninstallServiceRequestType)(nil)).Elem() -} - -type UninstallServiceResponse struct { -} - -type UnlicensedVirtualMachinesEvent struct { - LicenseEvent - - Unlicensed int32 `xml:"unlicensed"` - Available int32 `xml:"available"` -} - -func init() { - t["UnlicensedVirtualMachinesEvent"] = reflect.TypeOf((*UnlicensedVirtualMachinesEvent)(nil)).Elem() -} - -type UnlicensedVirtualMachinesFoundEvent struct { - LicenseEvent - - Available int32 `xml:"available"` -} - -func init() { - t["UnlicensedVirtualMachinesFoundEvent"] = reflect.TypeOf((*UnlicensedVirtualMachinesFoundEvent)(nil)).Elem() -} - -type UnmapVmfsVolumeExRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid []string `xml:"vmfsUuid"` -} - -func init() { - t["UnmapVmfsVolumeExRequestType"] = reflect.TypeOf((*UnmapVmfsVolumeExRequestType)(nil)).Elem() -} - -type UnmapVmfsVolumeEx_Task UnmapVmfsVolumeExRequestType - -func init() { - t["UnmapVmfsVolumeEx_Task"] = reflect.TypeOf((*UnmapVmfsVolumeEx_Task)(nil)).Elem() -} - -type UnmapVmfsVolumeEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UnmountDiskMappingRequestType struct { - This ManagedObjectReference `xml:"_this"` - Mapping []VsanHostDiskMapping `xml:"mapping"` -} - -func init() { - t["UnmountDiskMappingRequestType"] = reflect.TypeOf((*UnmountDiskMappingRequestType)(nil)).Elem() -} - -type UnmountDiskMapping_Task UnmountDiskMappingRequestType - -func init() { - t["UnmountDiskMapping_Task"] = reflect.TypeOf((*UnmountDiskMapping_Task)(nil)).Elem() -} - -type UnmountDiskMapping_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UnmountForceMountedVmfsVolume UnmountForceMountedVmfsVolumeRequestType - -func init() { - t["UnmountForceMountedVmfsVolume"] = reflect.TypeOf((*UnmountForceMountedVmfsVolume)(nil)).Elem() -} - -type UnmountForceMountedVmfsVolumeRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid string `xml:"vmfsUuid"` -} - -func init() { - t["UnmountForceMountedVmfsVolumeRequestType"] = reflect.TypeOf((*UnmountForceMountedVmfsVolumeRequestType)(nil)).Elem() -} - -type UnmountForceMountedVmfsVolumeResponse struct { -} - -type UnmountToolsInstaller UnmountToolsInstallerRequestType - -func init() { - t["UnmountToolsInstaller"] = reflect.TypeOf((*UnmountToolsInstaller)(nil)).Elem() -} - -type UnmountToolsInstallerRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["UnmountToolsInstallerRequestType"] = reflect.TypeOf((*UnmountToolsInstallerRequestType)(nil)).Elem() -} - -type UnmountToolsInstallerResponse struct { -} - -type UnmountVffsVolume UnmountVffsVolumeRequestType - -func init() { - t["UnmountVffsVolume"] = reflect.TypeOf((*UnmountVffsVolume)(nil)).Elem() -} - -type UnmountVffsVolumeRequestType struct { - This ManagedObjectReference `xml:"_this"` - VffsUuid string `xml:"vffsUuid"` -} - -func init() { - t["UnmountVffsVolumeRequestType"] = reflect.TypeOf((*UnmountVffsVolumeRequestType)(nil)).Elem() -} - -type UnmountVffsVolumeResponse struct { -} - -type UnmountVmfsVolume UnmountVmfsVolumeRequestType - -func init() { - t["UnmountVmfsVolume"] = reflect.TypeOf((*UnmountVmfsVolume)(nil)).Elem() -} - -type UnmountVmfsVolumeExRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid []string `xml:"vmfsUuid"` -} - -func init() { - t["UnmountVmfsVolumeExRequestType"] = reflect.TypeOf((*UnmountVmfsVolumeExRequestType)(nil)).Elem() -} - -type UnmountVmfsVolumeEx_Task UnmountVmfsVolumeExRequestType - -func init() { - t["UnmountVmfsVolumeEx_Task"] = reflect.TypeOf((*UnmountVmfsVolumeEx_Task)(nil)).Elem() -} - -type UnmountVmfsVolumeEx_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UnmountVmfsVolumeRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid string `xml:"vmfsUuid"` -} - -func init() { - t["UnmountVmfsVolumeRequestType"] = reflect.TypeOf((*UnmountVmfsVolumeRequestType)(nil)).Elem() -} - -type UnmountVmfsVolumeResponse struct { -} - -type UnrecognizedHost struct { - VimFault - - HostName string `xml:"hostName"` -} - -func init() { - t["UnrecognizedHost"] = reflect.TypeOf((*UnrecognizedHost)(nil)).Elem() -} - -type UnrecognizedHostFault UnrecognizedHost - -func init() { - t["UnrecognizedHostFault"] = reflect.TypeOf((*UnrecognizedHostFault)(nil)).Elem() -} - -type UnregisterAndDestroyRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["UnregisterAndDestroyRequestType"] = reflect.TypeOf((*UnregisterAndDestroyRequestType)(nil)).Elem() -} - -type UnregisterAndDestroy_Task UnregisterAndDestroyRequestType - -func init() { - t["UnregisterAndDestroy_Task"] = reflect.TypeOf((*UnregisterAndDestroy_Task)(nil)).Elem() -} - -type UnregisterAndDestroy_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UnregisterExtension UnregisterExtensionRequestType - -func init() { - t["UnregisterExtension"] = reflect.TypeOf((*UnregisterExtension)(nil)).Elem() -} - -type UnregisterExtensionRequestType struct { - This ManagedObjectReference `xml:"_this"` - ExtensionKey string `xml:"extensionKey"` -} - -func init() { - t["UnregisterExtensionRequestType"] = reflect.TypeOf((*UnregisterExtensionRequestType)(nil)).Elem() -} - -type UnregisterExtensionResponse struct { -} - -type UnregisterHealthUpdateProvider UnregisterHealthUpdateProviderRequestType - -func init() { - t["UnregisterHealthUpdateProvider"] = reflect.TypeOf((*UnregisterHealthUpdateProvider)(nil)).Elem() -} - -type UnregisterHealthUpdateProviderRequestType struct { - This ManagedObjectReference `xml:"_this"` - ProviderId string `xml:"providerId"` -} - -func init() { - t["UnregisterHealthUpdateProviderRequestType"] = reflect.TypeOf((*UnregisterHealthUpdateProviderRequestType)(nil)).Elem() -} - -type UnregisterHealthUpdateProviderResponse struct { -} - -type UnregisterVM UnregisterVMRequestType - -func init() { - t["UnregisterVM"] = reflect.TypeOf((*UnregisterVM)(nil)).Elem() -} - -type UnregisterVMRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["UnregisterVMRequestType"] = reflect.TypeOf((*UnregisterVMRequestType)(nil)).Elem() -} - -type UnregisterVMResponse struct { -} - -type UnsharedSwapVMotionNotSupported struct { - MigrationFeatureNotSupported -} - -func init() { - t["UnsharedSwapVMotionNotSupported"] = reflect.TypeOf((*UnsharedSwapVMotionNotSupported)(nil)).Elem() -} - -type UnsharedSwapVMotionNotSupportedFault UnsharedSwapVMotionNotSupported - -func init() { - t["UnsharedSwapVMotionNotSupportedFault"] = reflect.TypeOf((*UnsharedSwapVMotionNotSupportedFault)(nil)).Elem() -} - -type UnsupportedDatastore struct { - VmConfigFault - - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` -} - -func init() { - t["UnsupportedDatastore"] = reflect.TypeOf((*UnsupportedDatastore)(nil)).Elem() -} - -type UnsupportedDatastoreFault BaseUnsupportedDatastore - -func init() { - t["UnsupportedDatastoreFault"] = reflect.TypeOf((*UnsupportedDatastoreFault)(nil)).Elem() -} - -type UnsupportedGuest struct { - InvalidVmConfig - - UnsupportedGuestOS string `xml:"unsupportedGuestOS"` -} - -func init() { - t["UnsupportedGuest"] = reflect.TypeOf((*UnsupportedGuest)(nil)).Elem() -} - -type UnsupportedGuestFault UnsupportedGuest - -func init() { - t["UnsupportedGuestFault"] = reflect.TypeOf((*UnsupportedGuestFault)(nil)).Elem() -} - -type UnsupportedVimApiVersion struct { - VimFault - - Version string `xml:"version,omitempty"` -} - -func init() { - t["UnsupportedVimApiVersion"] = reflect.TypeOf((*UnsupportedVimApiVersion)(nil)).Elem() -} - -type UnsupportedVimApiVersionFault UnsupportedVimApiVersion - -func init() { - t["UnsupportedVimApiVersionFault"] = reflect.TypeOf((*UnsupportedVimApiVersionFault)(nil)).Elem() -} - -type UnsupportedVmxLocation struct { - VmConfigFault -} - -func init() { - t["UnsupportedVmxLocation"] = reflect.TypeOf((*UnsupportedVmxLocation)(nil)).Elem() -} - -type UnsupportedVmxLocationFault UnsupportedVmxLocation - -func init() { - t["UnsupportedVmxLocationFault"] = reflect.TypeOf((*UnsupportedVmxLocationFault)(nil)).Elem() -} - -type UnusedVirtualDiskBlocksNotScrubbed struct { - DeviceBackingNotSupported -} - -func init() { - t["UnusedVirtualDiskBlocksNotScrubbed"] = reflect.TypeOf((*UnusedVirtualDiskBlocksNotScrubbed)(nil)).Elem() -} - -type UnusedVirtualDiskBlocksNotScrubbedFault UnusedVirtualDiskBlocksNotScrubbed - -func init() { - t["UnusedVirtualDiskBlocksNotScrubbedFault"] = reflect.TypeOf((*UnusedVirtualDiskBlocksNotScrubbedFault)(nil)).Elem() -} - -type UpdateAnswerFileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - ConfigSpec BaseAnswerFileCreateSpec `xml:"configSpec,typeattr"` -} - -func init() { - t["UpdateAnswerFileRequestType"] = reflect.TypeOf((*UpdateAnswerFileRequestType)(nil)).Elem() -} - -type UpdateAnswerFile_Task UpdateAnswerFileRequestType - -func init() { - t["UpdateAnswerFile_Task"] = reflect.TypeOf((*UpdateAnswerFile_Task)(nil)).Elem() -} - -type UpdateAnswerFile_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpdateAssignedLicense UpdateAssignedLicenseRequestType - -func init() { - t["UpdateAssignedLicense"] = reflect.TypeOf((*UpdateAssignedLicense)(nil)).Elem() -} - -type UpdateAssignedLicenseRequestType struct { - This ManagedObjectReference `xml:"_this"` - Entity string `xml:"entity"` - LicenseKey string `xml:"licenseKey"` - EntityDisplayName string `xml:"entityDisplayName,omitempty"` -} - -func init() { - t["UpdateAssignedLicenseRequestType"] = reflect.TypeOf((*UpdateAssignedLicenseRequestType)(nil)).Elem() -} - -type UpdateAssignedLicenseResponse struct { - Returnval LicenseManagerLicenseInfo `xml:"returnval"` -} - -type UpdateAuthorizationRole UpdateAuthorizationRoleRequestType - -func init() { - t["UpdateAuthorizationRole"] = reflect.TypeOf((*UpdateAuthorizationRole)(nil)).Elem() -} - -type UpdateAuthorizationRoleRequestType struct { - This ManagedObjectReference `xml:"_this"` - RoleId int32 `xml:"roleId"` - NewName string `xml:"newName"` - PrivIds []string `xml:"privIds,omitempty"` -} - -func init() { - t["UpdateAuthorizationRoleRequestType"] = reflect.TypeOf((*UpdateAuthorizationRoleRequestType)(nil)).Elem() -} - -type UpdateAuthorizationRoleResponse struct { -} - -type UpdateBootDevice UpdateBootDeviceRequestType - -func init() { - t["UpdateBootDevice"] = reflect.TypeOf((*UpdateBootDevice)(nil)).Elem() -} - -type UpdateBootDeviceRequestType struct { - This ManagedObjectReference `xml:"_this"` - Key string `xml:"key"` -} - -func init() { - t["UpdateBootDeviceRequestType"] = reflect.TypeOf((*UpdateBootDeviceRequestType)(nil)).Elem() -} - -type UpdateBootDeviceResponse struct { -} - -type UpdateChildResourceConfiguration UpdateChildResourceConfigurationRequestType - -func init() { - t["UpdateChildResourceConfiguration"] = reflect.TypeOf((*UpdateChildResourceConfiguration)(nil)).Elem() -} - -type UpdateChildResourceConfigurationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec []ResourceConfigSpec `xml:"spec"` -} - -func init() { - t["UpdateChildResourceConfigurationRequestType"] = reflect.TypeOf((*UpdateChildResourceConfigurationRequestType)(nil)).Elem() -} - -type UpdateChildResourceConfigurationResponse struct { -} - -type UpdateClusterProfile UpdateClusterProfileRequestType - -func init() { - t["UpdateClusterProfile"] = reflect.TypeOf((*UpdateClusterProfile)(nil)).Elem() -} - -type UpdateClusterProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config BaseClusterProfileConfigSpec `xml:"config,typeattr"` -} - -func init() { - t["UpdateClusterProfileRequestType"] = reflect.TypeOf((*UpdateClusterProfileRequestType)(nil)).Elem() -} - -type UpdateClusterProfileResponse struct { -} - -type UpdateConfig UpdateConfigRequestType - -func init() { - t["UpdateConfig"] = reflect.TypeOf((*UpdateConfig)(nil)).Elem() -} - -type UpdateConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name,omitempty"` - Config *ResourceConfigSpec `xml:"config,omitempty"` -} - -func init() { - t["UpdateConfigRequestType"] = reflect.TypeOf((*UpdateConfigRequestType)(nil)).Elem() -} - -type UpdateConfigResponse struct { -} - -type UpdateConsoleIpRouteConfig UpdateConsoleIpRouteConfigRequestType - -func init() { - t["UpdateConsoleIpRouteConfig"] = reflect.TypeOf((*UpdateConsoleIpRouteConfig)(nil)).Elem() -} - -type UpdateConsoleIpRouteConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config BaseHostIpRouteConfig `xml:"config,typeattr"` -} - -func init() { - t["UpdateConsoleIpRouteConfigRequestType"] = reflect.TypeOf((*UpdateConsoleIpRouteConfigRequestType)(nil)).Elem() -} - -type UpdateConsoleIpRouteConfigResponse struct { -} - -type UpdateCounterLevelMapping UpdateCounterLevelMappingRequestType - -func init() { - t["UpdateCounterLevelMapping"] = reflect.TypeOf((*UpdateCounterLevelMapping)(nil)).Elem() -} - -type UpdateCounterLevelMappingRequestType struct { - This ManagedObjectReference `xml:"_this"` - CounterLevelMap []PerformanceManagerCounterLevelMapping `xml:"counterLevelMap"` -} - -func init() { - t["UpdateCounterLevelMappingRequestType"] = reflect.TypeOf((*UpdateCounterLevelMappingRequestType)(nil)).Elem() -} - -type UpdateCounterLevelMappingResponse struct { -} - -type UpdateDVSHealthCheckConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - HealthCheckConfig []BaseDVSHealthCheckConfig `xml:"healthCheckConfig,typeattr"` -} - -func init() { - t["UpdateDVSHealthCheckConfigRequestType"] = reflect.TypeOf((*UpdateDVSHealthCheckConfigRequestType)(nil)).Elem() -} - -type UpdateDVSHealthCheckConfig_Task UpdateDVSHealthCheckConfigRequestType - -func init() { - t["UpdateDVSHealthCheckConfig_Task"] = reflect.TypeOf((*UpdateDVSHealthCheckConfig_Task)(nil)).Elem() -} - -type UpdateDVSHealthCheckConfig_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpdateDVSLacpGroupConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - LacpGroupSpec []VMwareDvsLacpGroupSpec `xml:"lacpGroupSpec"` -} - -func init() { - t["UpdateDVSLacpGroupConfigRequestType"] = reflect.TypeOf((*UpdateDVSLacpGroupConfigRequestType)(nil)).Elem() -} - -type UpdateDVSLacpGroupConfig_Task UpdateDVSLacpGroupConfigRequestType - -func init() { - t["UpdateDVSLacpGroupConfig_Task"] = reflect.TypeOf((*UpdateDVSLacpGroupConfig_Task)(nil)).Elem() -} - -type UpdateDVSLacpGroupConfig_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpdateDateTime UpdateDateTimeRequestType - -func init() { - t["UpdateDateTime"] = reflect.TypeOf((*UpdateDateTime)(nil)).Elem() -} - -type UpdateDateTimeConfig UpdateDateTimeConfigRequestType - -func init() { - t["UpdateDateTimeConfig"] = reflect.TypeOf((*UpdateDateTimeConfig)(nil)).Elem() -} - -type UpdateDateTimeConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config HostDateTimeConfig `xml:"config"` -} - -func init() { - t["UpdateDateTimeConfigRequestType"] = reflect.TypeOf((*UpdateDateTimeConfigRequestType)(nil)).Elem() -} - -type UpdateDateTimeConfigResponse struct { -} - -type UpdateDateTimeRequestType struct { - This ManagedObjectReference `xml:"_this"` - DateTime time.Time `xml:"dateTime"` -} - -func init() { - t["UpdateDateTimeRequestType"] = reflect.TypeOf((*UpdateDateTimeRequestType)(nil)).Elem() -} - -type UpdateDateTimeResponse struct { -} - -type UpdateDefaultPolicy UpdateDefaultPolicyRequestType - -func init() { - t["UpdateDefaultPolicy"] = reflect.TypeOf((*UpdateDefaultPolicy)(nil)).Elem() -} - -type UpdateDefaultPolicyRequestType struct { - This ManagedObjectReference `xml:"_this"` - DefaultPolicy HostFirewallDefaultPolicy `xml:"defaultPolicy"` -} - -func init() { - t["UpdateDefaultPolicyRequestType"] = reflect.TypeOf((*UpdateDefaultPolicyRequestType)(nil)).Elem() -} - -type UpdateDefaultPolicyResponse struct { -} - -type UpdateDiskPartitions UpdateDiskPartitionsRequestType - -func init() { - t["UpdateDiskPartitions"] = reflect.TypeOf((*UpdateDiskPartitions)(nil)).Elem() -} - -type UpdateDiskPartitionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - DevicePath string `xml:"devicePath"` - Spec HostDiskPartitionSpec `xml:"spec"` -} - -func init() { - t["UpdateDiskPartitionsRequestType"] = reflect.TypeOf((*UpdateDiskPartitionsRequestType)(nil)).Elem() -} - -type UpdateDiskPartitionsResponse struct { -} - -type UpdateDnsConfig UpdateDnsConfigRequestType - -func init() { - t["UpdateDnsConfig"] = reflect.TypeOf((*UpdateDnsConfig)(nil)).Elem() -} - -type UpdateDnsConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config BaseHostDnsConfig `xml:"config,typeattr"` -} - -func init() { - t["UpdateDnsConfigRequestType"] = reflect.TypeOf((*UpdateDnsConfigRequestType)(nil)).Elem() -} - -type UpdateDnsConfigResponse struct { -} - -type UpdateDvsCapability UpdateDvsCapabilityRequestType - -func init() { - t["UpdateDvsCapability"] = reflect.TypeOf((*UpdateDvsCapability)(nil)).Elem() -} - -type UpdateDvsCapabilityRequestType struct { - This ManagedObjectReference `xml:"_this"` - Capability DVSCapability `xml:"capability"` -} - -func init() { - t["UpdateDvsCapabilityRequestType"] = reflect.TypeOf((*UpdateDvsCapabilityRequestType)(nil)).Elem() -} - -type UpdateDvsCapabilityResponse struct { -} - -type UpdateExtension UpdateExtensionRequestType - -func init() { - t["UpdateExtension"] = reflect.TypeOf((*UpdateExtension)(nil)).Elem() -} - -type UpdateExtensionRequestType struct { - This ManagedObjectReference `xml:"_this"` - Extension Extension `xml:"extension"` -} - -func init() { - t["UpdateExtensionRequestType"] = reflect.TypeOf((*UpdateExtensionRequestType)(nil)).Elem() -} - -type UpdateExtensionResponse struct { -} - -type UpdateFlags UpdateFlagsRequestType - -func init() { - t["UpdateFlags"] = reflect.TypeOf((*UpdateFlags)(nil)).Elem() -} - -type UpdateFlagsRequestType struct { - This ManagedObjectReference `xml:"_this"` - FlagInfo HostFlagInfo `xml:"flagInfo"` -} - -func init() { - t["UpdateFlagsRequestType"] = reflect.TypeOf((*UpdateFlagsRequestType)(nil)).Elem() -} - -type UpdateFlagsResponse struct { -} - -type UpdateGraphicsConfig UpdateGraphicsConfigRequestType - -func init() { - t["UpdateGraphicsConfig"] = reflect.TypeOf((*UpdateGraphicsConfig)(nil)).Elem() -} - -type UpdateGraphicsConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config HostGraphicsConfig `xml:"config"` -} - -func init() { - t["UpdateGraphicsConfigRequestType"] = reflect.TypeOf((*UpdateGraphicsConfigRequestType)(nil)).Elem() -} - -type UpdateGraphicsConfigResponse struct { -} - -type UpdateHostCustomizationsRequestType struct { - This ManagedObjectReference `xml:"_this"` - HostToConfigSpecMap []HostProfileManagerHostToConfigSpecMap `xml:"hostToConfigSpecMap,omitempty"` -} - -func init() { - t["UpdateHostCustomizationsRequestType"] = reflect.TypeOf((*UpdateHostCustomizationsRequestType)(nil)).Elem() -} - -type UpdateHostCustomizations_Task UpdateHostCustomizationsRequestType - -func init() { - t["UpdateHostCustomizations_Task"] = reflect.TypeOf((*UpdateHostCustomizations_Task)(nil)).Elem() -} - -type UpdateHostCustomizations_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpdateHostImageAcceptanceLevel UpdateHostImageAcceptanceLevelRequestType - -func init() { - t["UpdateHostImageAcceptanceLevel"] = reflect.TypeOf((*UpdateHostImageAcceptanceLevel)(nil)).Elem() -} - -type UpdateHostImageAcceptanceLevelRequestType struct { - This ManagedObjectReference `xml:"_this"` - NewAcceptanceLevel string `xml:"newAcceptanceLevel"` -} - -func init() { - t["UpdateHostImageAcceptanceLevelRequestType"] = reflect.TypeOf((*UpdateHostImageAcceptanceLevelRequestType)(nil)).Elem() -} - -type UpdateHostImageAcceptanceLevelResponse struct { -} - -type UpdateHostProfile UpdateHostProfileRequestType - -func init() { - t["UpdateHostProfile"] = reflect.TypeOf((*UpdateHostProfile)(nil)).Elem() -} - -type UpdateHostProfileRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config BaseHostProfileConfigSpec `xml:"config,typeattr"` -} - -func init() { - t["UpdateHostProfileRequestType"] = reflect.TypeOf((*UpdateHostProfileRequestType)(nil)).Elem() -} - -type UpdateHostProfileResponse struct { -} - -type UpdateHostSpecification UpdateHostSpecificationRequestType - -func init() { - t["UpdateHostSpecification"] = reflect.TypeOf((*UpdateHostSpecification)(nil)).Elem() -} - -type UpdateHostSpecificationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - HostSpec HostSpecification `xml:"hostSpec"` -} - -func init() { - t["UpdateHostSpecificationRequestType"] = reflect.TypeOf((*UpdateHostSpecificationRequestType)(nil)).Elem() -} - -type UpdateHostSpecificationResponse struct { -} - -type UpdateHostSubSpecification UpdateHostSubSpecificationRequestType - -func init() { - t["UpdateHostSubSpecification"] = reflect.TypeOf((*UpdateHostSubSpecification)(nil)).Elem() -} - -type UpdateHostSubSpecificationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host ManagedObjectReference `xml:"host"` - HostSubSpec HostSubSpecification `xml:"hostSubSpec"` -} - -func init() { - t["UpdateHostSubSpecificationRequestType"] = reflect.TypeOf((*UpdateHostSubSpecificationRequestType)(nil)).Elem() -} - -type UpdateHostSubSpecificationResponse struct { -} - -type UpdateInternetScsiAdvancedOptions UpdateInternetScsiAdvancedOptionsRequestType - -func init() { - t["UpdateInternetScsiAdvancedOptions"] = reflect.TypeOf((*UpdateInternetScsiAdvancedOptions)(nil)).Elem() -} - -type UpdateInternetScsiAdvancedOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - TargetSet *HostInternetScsiHbaTargetSet `xml:"targetSet,omitempty"` - Options []HostInternetScsiHbaParamValue `xml:"options"` -} - -func init() { - t["UpdateInternetScsiAdvancedOptionsRequestType"] = reflect.TypeOf((*UpdateInternetScsiAdvancedOptionsRequestType)(nil)).Elem() -} - -type UpdateInternetScsiAdvancedOptionsResponse struct { -} - -type UpdateInternetScsiAlias UpdateInternetScsiAliasRequestType - -func init() { - t["UpdateInternetScsiAlias"] = reflect.TypeOf((*UpdateInternetScsiAlias)(nil)).Elem() -} - -type UpdateInternetScsiAliasRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - IScsiAlias string `xml:"iScsiAlias"` -} - -func init() { - t["UpdateInternetScsiAliasRequestType"] = reflect.TypeOf((*UpdateInternetScsiAliasRequestType)(nil)).Elem() -} - -type UpdateInternetScsiAliasResponse struct { -} - -type UpdateInternetScsiAuthenticationProperties UpdateInternetScsiAuthenticationPropertiesRequestType - -func init() { - t["UpdateInternetScsiAuthenticationProperties"] = reflect.TypeOf((*UpdateInternetScsiAuthenticationProperties)(nil)).Elem() -} - -type UpdateInternetScsiAuthenticationPropertiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - AuthenticationProperties HostInternetScsiHbaAuthenticationProperties `xml:"authenticationProperties"` - TargetSet *HostInternetScsiHbaTargetSet `xml:"targetSet,omitempty"` -} - -func init() { - t["UpdateInternetScsiAuthenticationPropertiesRequestType"] = reflect.TypeOf((*UpdateInternetScsiAuthenticationPropertiesRequestType)(nil)).Elem() -} - -type UpdateInternetScsiAuthenticationPropertiesResponse struct { -} - -type UpdateInternetScsiDigestProperties UpdateInternetScsiDigestPropertiesRequestType - -func init() { - t["UpdateInternetScsiDigestProperties"] = reflect.TypeOf((*UpdateInternetScsiDigestProperties)(nil)).Elem() -} - -type UpdateInternetScsiDigestPropertiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - TargetSet *HostInternetScsiHbaTargetSet `xml:"targetSet,omitempty"` - DigestProperties HostInternetScsiHbaDigestProperties `xml:"digestProperties"` -} - -func init() { - t["UpdateInternetScsiDigestPropertiesRequestType"] = reflect.TypeOf((*UpdateInternetScsiDigestPropertiesRequestType)(nil)).Elem() -} - -type UpdateInternetScsiDigestPropertiesResponse struct { -} - -type UpdateInternetScsiDiscoveryProperties UpdateInternetScsiDiscoveryPropertiesRequestType - -func init() { - t["UpdateInternetScsiDiscoveryProperties"] = reflect.TypeOf((*UpdateInternetScsiDiscoveryProperties)(nil)).Elem() -} - -type UpdateInternetScsiDiscoveryPropertiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - DiscoveryProperties HostInternetScsiHbaDiscoveryProperties `xml:"discoveryProperties"` -} - -func init() { - t["UpdateInternetScsiDiscoveryPropertiesRequestType"] = reflect.TypeOf((*UpdateInternetScsiDiscoveryPropertiesRequestType)(nil)).Elem() -} - -type UpdateInternetScsiDiscoveryPropertiesResponse struct { -} - -type UpdateInternetScsiIPProperties UpdateInternetScsiIPPropertiesRequestType - -func init() { - t["UpdateInternetScsiIPProperties"] = reflect.TypeOf((*UpdateInternetScsiIPProperties)(nil)).Elem() -} - -type UpdateInternetScsiIPPropertiesRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - IpProperties HostInternetScsiHbaIPProperties `xml:"ipProperties"` -} - -func init() { - t["UpdateInternetScsiIPPropertiesRequestType"] = reflect.TypeOf((*UpdateInternetScsiIPPropertiesRequestType)(nil)).Elem() -} - -type UpdateInternetScsiIPPropertiesResponse struct { -} - -type UpdateInternetScsiName UpdateInternetScsiNameRequestType - -func init() { - t["UpdateInternetScsiName"] = reflect.TypeOf((*UpdateInternetScsiName)(nil)).Elem() -} - -type UpdateInternetScsiNameRequestType struct { - This ManagedObjectReference `xml:"_this"` - IScsiHbaDevice string `xml:"iScsiHbaDevice"` - IScsiName string `xml:"iScsiName"` -} - -func init() { - t["UpdateInternetScsiNameRequestType"] = reflect.TypeOf((*UpdateInternetScsiNameRequestType)(nil)).Elem() -} - -type UpdateInternetScsiNameResponse struct { -} - -type UpdateIpConfig UpdateIpConfigRequestType - -func init() { - t["UpdateIpConfig"] = reflect.TypeOf((*UpdateIpConfig)(nil)).Elem() -} - -type UpdateIpConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - IpConfig HostIpConfig `xml:"ipConfig"` -} - -func init() { - t["UpdateIpConfigRequestType"] = reflect.TypeOf((*UpdateIpConfigRequestType)(nil)).Elem() -} - -type UpdateIpConfigResponse struct { -} - -type UpdateIpPool UpdateIpPoolRequestType - -func init() { - t["UpdateIpPool"] = reflect.TypeOf((*UpdateIpPool)(nil)).Elem() -} - -type UpdateIpPoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - Dc ManagedObjectReference `xml:"dc"` - Pool IpPool `xml:"pool"` -} - -func init() { - t["UpdateIpPoolRequestType"] = reflect.TypeOf((*UpdateIpPoolRequestType)(nil)).Elem() -} - -type UpdateIpPoolResponse struct { -} - -type UpdateIpRouteConfig UpdateIpRouteConfigRequestType - -func init() { - t["UpdateIpRouteConfig"] = reflect.TypeOf((*UpdateIpRouteConfig)(nil)).Elem() -} - -type UpdateIpRouteConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config BaseHostIpRouteConfig `xml:"config,typeattr"` -} - -func init() { - t["UpdateIpRouteConfigRequestType"] = reflect.TypeOf((*UpdateIpRouteConfigRequestType)(nil)).Elem() -} - -type UpdateIpRouteConfigResponse struct { -} - -type UpdateIpRouteTableConfig UpdateIpRouteTableConfigRequestType - -func init() { - t["UpdateIpRouteTableConfig"] = reflect.TypeOf((*UpdateIpRouteTableConfig)(nil)).Elem() -} - -type UpdateIpRouteTableConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config HostIpRouteTableConfig `xml:"config"` -} - -func init() { - t["UpdateIpRouteTableConfigRequestType"] = reflect.TypeOf((*UpdateIpRouteTableConfigRequestType)(nil)).Elem() -} - -type UpdateIpRouteTableConfigResponse struct { -} - -type UpdateIpmi UpdateIpmiRequestType - -func init() { - t["UpdateIpmi"] = reflect.TypeOf((*UpdateIpmi)(nil)).Elem() -} - -type UpdateIpmiRequestType struct { - This ManagedObjectReference `xml:"_this"` - IpmiInfo HostIpmiInfo `xml:"ipmiInfo"` -} - -func init() { - t["UpdateIpmiRequestType"] = reflect.TypeOf((*UpdateIpmiRequestType)(nil)).Elem() -} - -type UpdateIpmiResponse struct { -} - -type UpdateKmipServer UpdateKmipServerRequestType - -func init() { - t["UpdateKmipServer"] = reflect.TypeOf((*UpdateKmipServer)(nil)).Elem() -} - -type UpdateKmipServerRequestType struct { - This ManagedObjectReference `xml:"_this"` - Server KmipServerSpec `xml:"server"` -} - -func init() { - t["UpdateKmipServerRequestType"] = reflect.TypeOf((*UpdateKmipServerRequestType)(nil)).Elem() -} - -type UpdateKmipServerResponse struct { -} - -type UpdateKmsSignedCsrClientCert UpdateKmsSignedCsrClientCertRequestType - -func init() { - t["UpdateKmsSignedCsrClientCert"] = reflect.TypeOf((*UpdateKmsSignedCsrClientCert)(nil)).Elem() -} - -type UpdateKmsSignedCsrClientCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` - Certificate string `xml:"certificate"` -} - -func init() { - t["UpdateKmsSignedCsrClientCertRequestType"] = reflect.TypeOf((*UpdateKmsSignedCsrClientCertRequestType)(nil)).Elem() -} - -type UpdateKmsSignedCsrClientCertResponse struct { -} - -type UpdateLicense UpdateLicenseRequestType - -func init() { - t["UpdateLicense"] = reflect.TypeOf((*UpdateLicense)(nil)).Elem() -} - -type UpdateLicenseLabel UpdateLicenseLabelRequestType - -func init() { - t["UpdateLicenseLabel"] = reflect.TypeOf((*UpdateLicenseLabel)(nil)).Elem() -} - -type UpdateLicenseLabelRequestType struct { - This ManagedObjectReference `xml:"_this"` - LicenseKey string `xml:"licenseKey"` - LabelKey string `xml:"labelKey"` - LabelValue string `xml:"labelValue"` -} - -func init() { - t["UpdateLicenseLabelRequestType"] = reflect.TypeOf((*UpdateLicenseLabelRequestType)(nil)).Elem() -} - -type UpdateLicenseLabelResponse struct { -} - -type UpdateLicenseRequestType struct { - This ManagedObjectReference `xml:"_this"` - LicenseKey string `xml:"licenseKey"` - Labels []KeyValue `xml:"labels,omitempty"` -} - -func init() { - t["UpdateLicenseRequestType"] = reflect.TypeOf((*UpdateLicenseRequestType)(nil)).Elem() -} - -type UpdateLicenseResponse struct { - Returnval LicenseManagerLicenseInfo `xml:"returnval"` -} - -type UpdateLinkedChildren UpdateLinkedChildrenRequestType - -func init() { - t["UpdateLinkedChildren"] = reflect.TypeOf((*UpdateLinkedChildren)(nil)).Elem() -} - -type UpdateLinkedChildrenRequestType struct { - This ManagedObjectReference `xml:"_this"` - AddChangeSet []VirtualAppLinkInfo `xml:"addChangeSet,omitempty"` - RemoveSet []ManagedObjectReference `xml:"removeSet,omitempty"` -} - -func init() { - t["UpdateLinkedChildrenRequestType"] = reflect.TypeOf((*UpdateLinkedChildrenRequestType)(nil)).Elem() -} - -type UpdateLinkedChildrenResponse struct { -} - -type UpdateLocalSwapDatastore UpdateLocalSwapDatastoreRequestType - -func init() { - t["UpdateLocalSwapDatastore"] = reflect.TypeOf((*UpdateLocalSwapDatastore)(nil)).Elem() -} - -type UpdateLocalSwapDatastoreRequestType struct { - This ManagedObjectReference `xml:"_this"` - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` -} - -func init() { - t["UpdateLocalSwapDatastoreRequestType"] = reflect.TypeOf((*UpdateLocalSwapDatastoreRequestType)(nil)).Elem() -} - -type UpdateLocalSwapDatastoreResponse struct { -} - -type UpdateLockdownExceptions UpdateLockdownExceptionsRequestType - -func init() { - t["UpdateLockdownExceptions"] = reflect.TypeOf((*UpdateLockdownExceptions)(nil)).Elem() -} - -type UpdateLockdownExceptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Users []string `xml:"users,omitempty"` -} - -func init() { - t["UpdateLockdownExceptionsRequestType"] = reflect.TypeOf((*UpdateLockdownExceptionsRequestType)(nil)).Elem() -} - -type UpdateLockdownExceptionsResponse struct { -} - -type UpdateModuleOptionString UpdateModuleOptionStringRequestType - -func init() { - t["UpdateModuleOptionString"] = reflect.TypeOf((*UpdateModuleOptionString)(nil)).Elem() -} - -type UpdateModuleOptionStringRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Options string `xml:"options"` -} - -func init() { - t["UpdateModuleOptionStringRequestType"] = reflect.TypeOf((*UpdateModuleOptionStringRequestType)(nil)).Elem() -} - -type UpdateModuleOptionStringResponse struct { -} - -type UpdateNetworkConfig UpdateNetworkConfigRequestType - -func init() { - t["UpdateNetworkConfig"] = reflect.TypeOf((*UpdateNetworkConfig)(nil)).Elem() -} - -type UpdateNetworkConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config HostNetworkConfig `xml:"config"` - ChangeMode string `xml:"changeMode"` -} - -func init() { - t["UpdateNetworkConfigRequestType"] = reflect.TypeOf((*UpdateNetworkConfigRequestType)(nil)).Elem() -} - -type UpdateNetworkConfigResponse struct { - Returnval HostNetworkConfigResult `xml:"returnval"` -} - -type UpdateNetworkResourcePool UpdateNetworkResourcePoolRequestType - -func init() { - t["UpdateNetworkResourcePool"] = reflect.TypeOf((*UpdateNetworkResourcePool)(nil)).Elem() -} - -type UpdateNetworkResourcePoolRequestType struct { - This ManagedObjectReference `xml:"_this"` - ConfigSpec []DVSNetworkResourcePoolConfigSpec `xml:"configSpec"` -} - -func init() { - t["UpdateNetworkResourcePoolRequestType"] = reflect.TypeOf((*UpdateNetworkResourcePoolRequestType)(nil)).Elem() -} - -type UpdateNetworkResourcePoolResponse struct { -} - -type UpdateOptions UpdateOptionsRequestType - -func init() { - t["UpdateOptions"] = reflect.TypeOf((*UpdateOptions)(nil)).Elem() -} - -type UpdateOptionsRequestType struct { - This ManagedObjectReference `xml:"_this"` - ChangedValue []BaseOptionValue `xml:"changedValue,typeattr"` -} - -func init() { - t["UpdateOptionsRequestType"] = reflect.TypeOf((*UpdateOptionsRequestType)(nil)).Elem() -} - -type UpdateOptionsResponse struct { -} - -type UpdatePassthruConfig UpdatePassthruConfigRequestType - -func init() { - t["UpdatePassthruConfig"] = reflect.TypeOf((*UpdatePassthruConfig)(nil)).Elem() -} - -type UpdatePassthruConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config []BaseHostPciPassthruConfig `xml:"config,typeattr"` -} - -func init() { - t["UpdatePassthruConfigRequestType"] = reflect.TypeOf((*UpdatePassthruConfigRequestType)(nil)).Elem() -} - -type UpdatePassthruConfigResponse struct { -} - -type UpdatePerfInterval UpdatePerfIntervalRequestType - -func init() { - t["UpdatePerfInterval"] = reflect.TypeOf((*UpdatePerfInterval)(nil)).Elem() -} - -type UpdatePerfIntervalRequestType struct { - This ManagedObjectReference `xml:"_this"` - Interval PerfInterval `xml:"interval"` -} - -func init() { - t["UpdatePerfIntervalRequestType"] = reflect.TypeOf((*UpdatePerfIntervalRequestType)(nil)).Elem() -} - -type UpdatePerfIntervalResponse struct { -} - -type UpdatePhysicalNicLinkSpeed UpdatePhysicalNicLinkSpeedRequestType - -func init() { - t["UpdatePhysicalNicLinkSpeed"] = reflect.TypeOf((*UpdatePhysicalNicLinkSpeed)(nil)).Elem() -} - -type UpdatePhysicalNicLinkSpeedRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device string `xml:"device"` - LinkSpeed *PhysicalNicLinkInfo `xml:"linkSpeed,omitempty"` -} - -func init() { - t["UpdatePhysicalNicLinkSpeedRequestType"] = reflect.TypeOf((*UpdatePhysicalNicLinkSpeedRequestType)(nil)).Elem() -} - -type UpdatePhysicalNicLinkSpeedResponse struct { -} - -type UpdatePortGroup UpdatePortGroupRequestType - -func init() { - t["UpdatePortGroup"] = reflect.TypeOf((*UpdatePortGroup)(nil)).Elem() -} - -type UpdatePortGroupRequestType struct { - This ManagedObjectReference `xml:"_this"` - PgName string `xml:"pgName"` - Portgrp HostPortGroupSpec `xml:"portgrp"` -} - -func init() { - t["UpdatePortGroupRequestType"] = reflect.TypeOf((*UpdatePortGroupRequestType)(nil)).Elem() -} - -type UpdatePortGroupResponse struct { -} - -type UpdateProgress UpdateProgressRequestType - -func init() { - t["UpdateProgress"] = reflect.TypeOf((*UpdateProgress)(nil)).Elem() -} - -type UpdateProgressRequestType struct { - This ManagedObjectReference `xml:"_this"` - PercentDone int32 `xml:"percentDone"` -} - -func init() { - t["UpdateProgressRequestType"] = reflect.TypeOf((*UpdateProgressRequestType)(nil)).Elem() -} - -type UpdateProgressResponse struct { -} - -type UpdateReferenceHost UpdateReferenceHostRequestType - -func init() { - t["UpdateReferenceHost"] = reflect.TypeOf((*UpdateReferenceHost)(nil)).Elem() -} - -type UpdateReferenceHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["UpdateReferenceHostRequestType"] = reflect.TypeOf((*UpdateReferenceHostRequestType)(nil)).Elem() -} - -type UpdateReferenceHostResponse struct { -} - -type UpdateRuleset UpdateRulesetRequestType - -func init() { - t["UpdateRuleset"] = reflect.TypeOf((*UpdateRuleset)(nil)).Elem() -} - -type UpdateRulesetRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` - Spec HostFirewallRulesetRulesetSpec `xml:"spec"` -} - -func init() { - t["UpdateRulesetRequestType"] = reflect.TypeOf((*UpdateRulesetRequestType)(nil)).Elem() -} - -type UpdateRulesetResponse struct { -} - -type UpdateScsiLunDisplayName UpdateScsiLunDisplayNameRequestType - -func init() { - t["UpdateScsiLunDisplayName"] = reflect.TypeOf((*UpdateScsiLunDisplayName)(nil)).Elem() -} - -type UpdateScsiLunDisplayNameRequestType struct { - This ManagedObjectReference `xml:"_this"` - LunUuid string `xml:"lunUuid"` - DisplayName string `xml:"displayName"` -} - -func init() { - t["UpdateScsiLunDisplayNameRequestType"] = reflect.TypeOf((*UpdateScsiLunDisplayNameRequestType)(nil)).Elem() -} - -type UpdateScsiLunDisplayNameResponse struct { -} - -type UpdateSelfSignedClientCert UpdateSelfSignedClientCertRequestType - -func init() { - t["UpdateSelfSignedClientCert"] = reflect.TypeOf((*UpdateSelfSignedClientCert)(nil)).Elem() -} - -type UpdateSelfSignedClientCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` - Certificate string `xml:"certificate"` -} - -func init() { - t["UpdateSelfSignedClientCertRequestType"] = reflect.TypeOf((*UpdateSelfSignedClientCertRequestType)(nil)).Elem() -} - -type UpdateSelfSignedClientCertResponse struct { -} - -type UpdateServiceConsoleVirtualNic UpdateServiceConsoleVirtualNicRequestType - -func init() { - t["UpdateServiceConsoleVirtualNic"] = reflect.TypeOf((*UpdateServiceConsoleVirtualNic)(nil)).Elem() -} - -type UpdateServiceConsoleVirtualNicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device string `xml:"device"` - Nic HostVirtualNicSpec `xml:"nic"` -} - -func init() { - t["UpdateServiceConsoleVirtualNicRequestType"] = reflect.TypeOf((*UpdateServiceConsoleVirtualNicRequestType)(nil)).Elem() -} - -type UpdateServiceConsoleVirtualNicResponse struct { -} - -type UpdateServiceMessage UpdateServiceMessageRequestType - -func init() { - t["UpdateServiceMessage"] = reflect.TypeOf((*UpdateServiceMessage)(nil)).Elem() -} - -type UpdateServiceMessageRequestType struct { - This ManagedObjectReference `xml:"_this"` - Message string `xml:"message"` -} - -func init() { - t["UpdateServiceMessageRequestType"] = reflect.TypeOf((*UpdateServiceMessageRequestType)(nil)).Elem() -} - -type UpdateServiceMessageResponse struct { -} - -type UpdateServicePolicy UpdateServicePolicyRequestType - -func init() { - t["UpdateServicePolicy"] = reflect.TypeOf((*UpdateServicePolicy)(nil)).Elem() -} - -type UpdateServicePolicyRequestType struct { - This ManagedObjectReference `xml:"_this"` - Id string `xml:"id"` - Policy string `xml:"policy"` -} - -func init() { - t["UpdateServicePolicyRequestType"] = reflect.TypeOf((*UpdateServicePolicyRequestType)(nil)).Elem() -} - -type UpdateServicePolicyResponse struct { -} - -type UpdateSet struct { - DynamicData - - Version string `xml:"version"` - FilterSet []PropertyFilterUpdate `xml:"filterSet,omitempty"` - Truncated *bool `xml:"truncated"` -} - -func init() { - t["UpdateSet"] = reflect.TypeOf((*UpdateSet)(nil)).Elem() -} - -type UpdateSoftwareInternetScsiEnabled UpdateSoftwareInternetScsiEnabledRequestType - -func init() { - t["UpdateSoftwareInternetScsiEnabled"] = reflect.TypeOf((*UpdateSoftwareInternetScsiEnabled)(nil)).Elem() -} - -type UpdateSoftwareInternetScsiEnabledRequestType struct { - This ManagedObjectReference `xml:"_this"` - Enabled bool `xml:"enabled"` -} - -func init() { - t["UpdateSoftwareInternetScsiEnabledRequestType"] = reflect.TypeOf((*UpdateSoftwareInternetScsiEnabledRequestType)(nil)).Elem() -} - -type UpdateSoftwareInternetScsiEnabledResponse struct { -} - -type UpdateSystemResources UpdateSystemResourcesRequestType - -func init() { - t["UpdateSystemResources"] = reflect.TypeOf((*UpdateSystemResources)(nil)).Elem() -} - -type UpdateSystemResourcesRequestType struct { - This ManagedObjectReference `xml:"_this"` - ResourceInfo HostSystemResourceInfo `xml:"resourceInfo"` -} - -func init() { - t["UpdateSystemResourcesRequestType"] = reflect.TypeOf((*UpdateSystemResourcesRequestType)(nil)).Elem() -} - -type UpdateSystemResourcesResponse struct { -} - -type UpdateSystemSwapConfiguration UpdateSystemSwapConfigurationRequestType - -func init() { - t["UpdateSystemSwapConfiguration"] = reflect.TypeOf((*UpdateSystemSwapConfiguration)(nil)).Elem() -} - -type UpdateSystemSwapConfigurationRequestType struct { - This ManagedObjectReference `xml:"_this"` - SysSwapConfig HostSystemSwapConfiguration `xml:"sysSwapConfig"` -} - -func init() { - t["UpdateSystemSwapConfigurationRequestType"] = reflect.TypeOf((*UpdateSystemSwapConfigurationRequestType)(nil)).Elem() -} - -type UpdateSystemSwapConfigurationResponse struct { -} - -type UpdateSystemUsers UpdateSystemUsersRequestType - -func init() { - t["UpdateSystemUsers"] = reflect.TypeOf((*UpdateSystemUsers)(nil)).Elem() -} - -type UpdateSystemUsersRequestType struct { - This ManagedObjectReference `xml:"_this"` - Users []string `xml:"users,omitempty"` -} - -func init() { - t["UpdateSystemUsersRequestType"] = reflect.TypeOf((*UpdateSystemUsersRequestType)(nil)).Elem() -} - -type UpdateSystemUsersResponse struct { -} - -type UpdateUser UpdateUserRequestType - -func init() { - t["UpdateUser"] = reflect.TypeOf((*UpdateUser)(nil)).Elem() -} - -type UpdateUserRequestType struct { - This ManagedObjectReference `xml:"_this"` - User BaseHostAccountSpec `xml:"user,typeattr"` -} - -func init() { - t["UpdateUserRequestType"] = reflect.TypeOf((*UpdateUserRequestType)(nil)).Elem() -} - -type UpdateUserResponse struct { -} - -type UpdateVAppConfig UpdateVAppConfigRequestType - -func init() { - t["UpdateVAppConfig"] = reflect.TypeOf((*UpdateVAppConfig)(nil)).Elem() -} - -type UpdateVAppConfigRequestType struct { - This ManagedObjectReference `xml:"_this"` - Spec VAppConfigSpec `xml:"spec"` -} - -func init() { - t["UpdateVAppConfigRequestType"] = reflect.TypeOf((*UpdateVAppConfigRequestType)(nil)).Elem() -} - -type UpdateVAppConfigResponse struct { -} - -type UpdateVVolVirtualMachineFilesRequestType struct { - This ManagedObjectReference `xml:"_this"` - FailoverPair []DatastoreVVolContainerFailoverPair `xml:"failoverPair,omitempty"` -} - -func init() { - t["UpdateVVolVirtualMachineFilesRequestType"] = reflect.TypeOf((*UpdateVVolVirtualMachineFilesRequestType)(nil)).Elem() -} - -type UpdateVVolVirtualMachineFiles_Task UpdateVVolVirtualMachineFilesRequestType - -func init() { - t["UpdateVVolVirtualMachineFiles_Task"] = reflect.TypeOf((*UpdateVVolVirtualMachineFiles_Task)(nil)).Elem() -} - -type UpdateVVolVirtualMachineFiles_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpdateVirtualMachineFilesRequestType struct { - This ManagedObjectReference `xml:"_this"` - MountPathDatastoreMapping []DatastoreMountPathDatastorePair `xml:"mountPathDatastoreMapping"` -} - -func init() { - t["UpdateVirtualMachineFilesRequestType"] = reflect.TypeOf((*UpdateVirtualMachineFilesRequestType)(nil)).Elem() -} - -type UpdateVirtualMachineFilesResult struct { - DynamicData - - FailedVmFile []UpdateVirtualMachineFilesResultFailedVmFileInfo `xml:"failedVmFile,omitempty"` -} - -func init() { - t["UpdateVirtualMachineFilesResult"] = reflect.TypeOf((*UpdateVirtualMachineFilesResult)(nil)).Elem() -} - -type UpdateVirtualMachineFilesResultFailedVmFileInfo struct { - DynamicData - - VmFile string `xml:"vmFile"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["UpdateVirtualMachineFilesResultFailedVmFileInfo"] = reflect.TypeOf((*UpdateVirtualMachineFilesResultFailedVmFileInfo)(nil)).Elem() -} - -type UpdateVirtualMachineFiles_Task UpdateVirtualMachineFilesRequestType - -func init() { - t["UpdateVirtualMachineFiles_Task"] = reflect.TypeOf((*UpdateVirtualMachineFiles_Task)(nil)).Elem() -} - -type UpdateVirtualMachineFiles_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpdateVirtualNic UpdateVirtualNicRequestType - -func init() { - t["UpdateVirtualNic"] = reflect.TypeOf((*UpdateVirtualNic)(nil)).Elem() -} - -type UpdateVirtualNicRequestType struct { - This ManagedObjectReference `xml:"_this"` - Device string `xml:"device"` - Nic HostVirtualNicSpec `xml:"nic"` -} - -func init() { - t["UpdateVirtualNicRequestType"] = reflect.TypeOf((*UpdateVirtualNicRequestType)(nil)).Elem() -} - -type UpdateVirtualNicResponse struct { -} - -type UpdateVirtualSwitch UpdateVirtualSwitchRequestType - -func init() { - t["UpdateVirtualSwitch"] = reflect.TypeOf((*UpdateVirtualSwitch)(nil)).Elem() -} - -type UpdateVirtualSwitchRequestType struct { - This ManagedObjectReference `xml:"_this"` - VswitchName string `xml:"vswitchName"` - Spec HostVirtualSwitchSpec `xml:"spec"` -} - -func init() { - t["UpdateVirtualSwitchRequestType"] = reflect.TypeOf((*UpdateVirtualSwitchRequestType)(nil)).Elem() -} - -type UpdateVirtualSwitchResponse struct { -} - -type UpdateVmfsUnmapPriority UpdateVmfsUnmapPriorityRequestType - -func init() { - t["UpdateVmfsUnmapPriority"] = reflect.TypeOf((*UpdateVmfsUnmapPriority)(nil)).Elem() -} - -type UpdateVmfsUnmapPriorityRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsUuid string `xml:"vmfsUuid"` - UnmapPriority string `xml:"unmapPriority"` -} - -func init() { - t["UpdateVmfsUnmapPriorityRequestType"] = reflect.TypeOf((*UpdateVmfsUnmapPriorityRequestType)(nil)).Elem() -} - -type UpdateVmfsUnmapPriorityResponse struct { -} - -type UpdateVsanRequestType struct { - This ManagedObjectReference `xml:"_this"` - Config VsanHostConfigInfo `xml:"config"` -} - -func init() { - t["UpdateVsanRequestType"] = reflect.TypeOf((*UpdateVsanRequestType)(nil)).Elem() -} - -type UpdateVsan_Task UpdateVsanRequestType - -func init() { - t["UpdateVsan_Task"] = reflect.TypeOf((*UpdateVsan_Task)(nil)).Elem() -} - -type UpdateVsan_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpdatedAgentBeingRestartedEvent struct { - HostEvent -} - -func init() { - t["UpdatedAgentBeingRestartedEvent"] = reflect.TypeOf((*UpdatedAgentBeingRestartedEvent)(nil)).Elem() -} - -type UpgradeEvent struct { - Event - - Message string `xml:"message"` -} - -func init() { - t["UpgradeEvent"] = reflect.TypeOf((*UpgradeEvent)(nil)).Elem() -} - -type UpgradeIoFilterRequestType struct { - This ManagedObjectReference `xml:"_this"` - FilterId string `xml:"filterId"` - CompRes ManagedObjectReference `xml:"compRes"` - VibUrl string `xml:"vibUrl"` -} - -func init() { - t["UpgradeIoFilterRequestType"] = reflect.TypeOf((*UpgradeIoFilterRequestType)(nil)).Elem() -} - -type UpgradeIoFilter_Task UpgradeIoFilterRequestType - -func init() { - t["UpgradeIoFilter_Task"] = reflect.TypeOf((*UpgradeIoFilter_Task)(nil)).Elem() -} - -type UpgradeIoFilter_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpgradeToolsRequestType struct { - This ManagedObjectReference `xml:"_this"` - InstallerOptions string `xml:"installerOptions,omitempty"` -} - -func init() { - t["UpgradeToolsRequestType"] = reflect.TypeOf((*UpgradeToolsRequestType)(nil)).Elem() -} - -type UpgradeTools_Task UpgradeToolsRequestType - -func init() { - t["UpgradeTools_Task"] = reflect.TypeOf((*UpgradeTools_Task)(nil)).Elem() -} - -type UpgradeTools_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpgradeVMRequestType struct { - This ManagedObjectReference `xml:"_this"` - Version string `xml:"version,omitempty"` -} - -func init() { - t["UpgradeVMRequestType"] = reflect.TypeOf((*UpgradeVMRequestType)(nil)).Elem() -} - -type UpgradeVM_Task UpgradeVMRequestType - -func init() { - t["UpgradeVM_Task"] = reflect.TypeOf((*UpgradeVM_Task)(nil)).Elem() -} - -type UpgradeVM_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} - -type UpgradeVmLayout UpgradeVmLayoutRequestType - -func init() { - t["UpgradeVmLayout"] = reflect.TypeOf((*UpgradeVmLayout)(nil)).Elem() -} - -type UpgradeVmLayoutRequestType struct { - This ManagedObjectReference `xml:"_this"` -} - -func init() { - t["UpgradeVmLayoutRequestType"] = reflect.TypeOf((*UpgradeVmLayoutRequestType)(nil)).Elem() -} - -type UpgradeVmLayoutResponse struct { -} - -type UpgradeVmfs UpgradeVmfsRequestType - -func init() { - t["UpgradeVmfs"] = reflect.TypeOf((*UpgradeVmfs)(nil)).Elem() -} - -type UpgradeVmfsRequestType struct { - This ManagedObjectReference `xml:"_this"` - VmfsPath string `xml:"vmfsPath"` -} - -func init() { - t["UpgradeVmfsRequestType"] = reflect.TypeOf((*UpgradeVmfsRequestType)(nil)).Elem() -} - -type UpgradeVmfsResponse struct { -} - -type UpgradeVsanObjects UpgradeVsanObjectsRequestType - -func init() { - t["UpgradeVsanObjects"] = reflect.TypeOf((*UpgradeVsanObjects)(nil)).Elem() -} - -type UpgradeVsanObjectsRequestType struct { - This ManagedObjectReference `xml:"_this"` - Uuids []string `xml:"uuids"` - NewVersion int32 `xml:"newVersion"` -} - -func init() { - t["UpgradeVsanObjectsRequestType"] = reflect.TypeOf((*UpgradeVsanObjectsRequestType)(nil)).Elem() -} - -type UpgradeVsanObjectsResponse struct { - Returnval []HostVsanInternalSystemVsanObjectOperationResult `xml:"returnval,omitempty"` -} - -type UplinkPortMtuNotSupportEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["UplinkPortMtuNotSupportEvent"] = reflect.TypeOf((*UplinkPortMtuNotSupportEvent)(nil)).Elem() -} - -type UplinkPortMtuSupportEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["UplinkPortMtuSupportEvent"] = reflect.TypeOf((*UplinkPortMtuSupportEvent)(nil)).Elem() -} - -type UplinkPortVlanTrunkedEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["UplinkPortVlanTrunkedEvent"] = reflect.TypeOf((*UplinkPortVlanTrunkedEvent)(nil)).Elem() -} - -type UplinkPortVlanUntrunkedEvent struct { - DvsHealthStatusChangeEvent -} - -func init() { - t["UplinkPortVlanUntrunkedEvent"] = reflect.TypeOf((*UplinkPortVlanUntrunkedEvent)(nil)).Elem() -} - -type UploadClientCert UploadClientCertRequestType - -func init() { - t["UploadClientCert"] = reflect.TypeOf((*UploadClientCert)(nil)).Elem() -} - -type UploadClientCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` - Certificate string `xml:"certificate"` - PrivateKey string `xml:"privateKey"` -} - -func init() { - t["UploadClientCertRequestType"] = reflect.TypeOf((*UploadClientCertRequestType)(nil)).Elem() -} - -type UploadClientCertResponse struct { -} - -type UploadKmipServerCert UploadKmipServerCertRequestType - -func init() { - t["UploadKmipServerCert"] = reflect.TypeOf((*UploadKmipServerCert)(nil)).Elem() -} - -type UploadKmipServerCertRequestType struct { - This ManagedObjectReference `xml:"_this"` - Cluster KeyProviderId `xml:"cluster"` - Certificate string `xml:"certificate"` -} - -func init() { - t["UploadKmipServerCertRequestType"] = reflect.TypeOf((*UploadKmipServerCertRequestType)(nil)).Elem() -} - -type UploadKmipServerCertResponse struct { -} - -type UsbScanCodeSpec struct { - DynamicData - - KeyEvents []UsbScanCodeSpecKeyEvent `xml:"keyEvents"` -} - -func init() { - t["UsbScanCodeSpec"] = reflect.TypeOf((*UsbScanCodeSpec)(nil)).Elem() -} - -type UsbScanCodeSpecKeyEvent struct { - DynamicData - - UsbHidCode int32 `xml:"usbHidCode"` - Modifiers *UsbScanCodeSpecModifierType `xml:"modifiers,omitempty"` -} - -func init() { - t["UsbScanCodeSpecKeyEvent"] = reflect.TypeOf((*UsbScanCodeSpecKeyEvent)(nil)).Elem() -} - -type UsbScanCodeSpecModifierType struct { - DynamicData - - LeftControl *bool `xml:"leftControl"` - LeftShift *bool `xml:"leftShift"` - LeftAlt *bool `xml:"leftAlt"` - LeftGui *bool `xml:"leftGui"` - RightControl *bool `xml:"rightControl"` - RightShift *bool `xml:"rightShift"` - RightAlt *bool `xml:"rightAlt"` - RightGui *bool `xml:"rightGui"` -} - -func init() { - t["UsbScanCodeSpecModifierType"] = reflect.TypeOf((*UsbScanCodeSpecModifierType)(nil)).Elem() -} - -type UserAssignedToGroup struct { - HostEvent - - UserLogin string `xml:"userLogin"` - Group string `xml:"group"` -} - -func init() { - t["UserAssignedToGroup"] = reflect.TypeOf((*UserAssignedToGroup)(nil)).Elem() -} - -type UserGroupProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["UserGroupProfile"] = reflect.TypeOf((*UserGroupProfile)(nil)).Elem() -} - -type UserInputRequiredParameterMetadata struct { - ProfilePolicyOptionMetadata - - UserInputParameter []ProfileParameterMetadata `xml:"userInputParameter,omitempty"` -} - -func init() { - t["UserInputRequiredParameterMetadata"] = reflect.TypeOf((*UserInputRequiredParameterMetadata)(nil)).Elem() -} - -type UserLoginSessionEvent struct { - SessionEvent - - IpAddress string `xml:"ipAddress"` - UserAgent string `xml:"userAgent,omitempty"` - Locale string `xml:"locale"` - SessionId string `xml:"sessionId"` -} - -func init() { - t["UserLoginSessionEvent"] = reflect.TypeOf((*UserLoginSessionEvent)(nil)).Elem() -} - -type UserLogoutSessionEvent struct { - SessionEvent - - IpAddress string `xml:"ipAddress,omitempty"` - UserAgent string `xml:"userAgent,omitempty"` - CallCount int64 `xml:"callCount,omitempty"` - SessionId string `xml:"sessionId,omitempty"` - LoginTime *time.Time `xml:"loginTime"` -} - -func init() { - t["UserLogoutSessionEvent"] = reflect.TypeOf((*UserLogoutSessionEvent)(nil)).Elem() -} - -type UserNotFound struct { - VimFault - - Principal string `xml:"principal"` - Unresolved bool `xml:"unresolved"` -} - -func init() { - t["UserNotFound"] = reflect.TypeOf((*UserNotFound)(nil)).Elem() -} - -type UserNotFoundFault UserNotFound - -func init() { - t["UserNotFoundFault"] = reflect.TypeOf((*UserNotFoundFault)(nil)).Elem() -} - -type UserPasswordChanged struct { - HostEvent - - UserLogin string `xml:"userLogin"` -} - -func init() { - t["UserPasswordChanged"] = reflect.TypeOf((*UserPasswordChanged)(nil)).Elem() -} - -type UserPrivilegeResult struct { - DynamicData - - Entity ManagedObjectReference `xml:"entity"` - Privileges []string `xml:"privileges,omitempty"` -} - -func init() { - t["UserPrivilegeResult"] = reflect.TypeOf((*UserPrivilegeResult)(nil)).Elem() -} - -type UserProfile struct { - ApplyProfile - - Key string `xml:"key"` -} - -func init() { - t["UserProfile"] = reflect.TypeOf((*UserProfile)(nil)).Elem() -} - -type UserSearchResult struct { - DynamicData - - Principal string `xml:"principal"` - FullName string `xml:"fullName,omitempty"` - Group bool `xml:"group"` -} - -func init() { - t["UserSearchResult"] = reflect.TypeOf((*UserSearchResult)(nil)).Elem() -} - -type UserSession struct { - DynamicData - - Key string `xml:"key"` - UserName string `xml:"userName"` - FullName string `xml:"fullName"` - LoginTime time.Time `xml:"loginTime"` - LastActiveTime time.Time `xml:"lastActiveTime"` - Locale string `xml:"locale"` - MessageLocale string `xml:"messageLocale"` - ExtensionSession *bool `xml:"extensionSession"` - IpAddress string `xml:"ipAddress,omitempty"` - UserAgent string `xml:"userAgent,omitempty"` - CallCount int64 `xml:"callCount,omitempty"` -} - -func init() { - t["UserSession"] = reflect.TypeOf((*UserSession)(nil)).Elem() -} - -type UserUnassignedFromGroup struct { - HostEvent - - UserLogin string `xml:"userLogin"` - Group string `xml:"group"` -} - -func init() { - t["UserUnassignedFromGroup"] = reflect.TypeOf((*UserUnassignedFromGroup)(nil)).Elem() -} - -type UserUpgradeEvent struct { - UpgradeEvent -} - -func init() { - t["UserUpgradeEvent"] = reflect.TypeOf((*UserUpgradeEvent)(nil)).Elem() -} - -type VASAStorageArray struct { - DynamicData - - Name string `xml:"name"` - Uuid string `xml:"uuid"` - VendorId string `xml:"vendorId"` - ModelId string `xml:"modelId"` -} - -func init() { - t["VASAStorageArray"] = reflect.TypeOf((*VASAStorageArray)(nil)).Elem() -} - -type VAppCloneSpec struct { - DynamicData - - Location ManagedObjectReference `xml:"location"` - Host *ManagedObjectReference `xml:"host,omitempty"` - ResourceSpec *ResourceConfigSpec `xml:"resourceSpec,omitempty"` - VmFolder *ManagedObjectReference `xml:"vmFolder,omitempty"` - NetworkMapping []VAppCloneSpecNetworkMappingPair `xml:"networkMapping,omitempty"` - Property []KeyValue `xml:"property,omitempty"` - ResourceMapping []VAppCloneSpecResourceMap `xml:"resourceMapping,omitempty"` - Provisioning string `xml:"provisioning,omitempty"` -} - -func init() { - t["VAppCloneSpec"] = reflect.TypeOf((*VAppCloneSpec)(nil)).Elem() -} - -type VAppCloneSpecNetworkMappingPair struct { - DynamicData - - Source ManagedObjectReference `xml:"source"` - Destination ManagedObjectReference `xml:"destination"` -} - -func init() { - t["VAppCloneSpecNetworkMappingPair"] = reflect.TypeOf((*VAppCloneSpecNetworkMappingPair)(nil)).Elem() -} - -type VAppCloneSpecResourceMap struct { - DynamicData - - Source ManagedObjectReference `xml:"source"` - Parent *ManagedObjectReference `xml:"parent,omitempty"` - ResourceSpec *ResourceConfigSpec `xml:"resourceSpec,omitempty"` - Location *ManagedObjectReference `xml:"location,omitempty"` -} - -func init() { - t["VAppCloneSpecResourceMap"] = reflect.TypeOf((*VAppCloneSpecResourceMap)(nil)).Elem() -} - -type VAppConfigFault struct { - VimFault -} - -func init() { - t["VAppConfigFault"] = reflect.TypeOf((*VAppConfigFault)(nil)).Elem() -} - -type VAppConfigFaultFault BaseVAppConfigFault - -func init() { - t["VAppConfigFaultFault"] = reflect.TypeOf((*VAppConfigFaultFault)(nil)).Elem() -} - -type VAppConfigInfo struct { - VmConfigInfo - - EntityConfig []VAppEntityConfigInfo `xml:"entityConfig,omitempty"` - Annotation string `xml:"annotation"` - InstanceUuid string `xml:"instanceUuid,omitempty"` - ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` -} - -func init() { - t["VAppConfigInfo"] = reflect.TypeOf((*VAppConfigInfo)(nil)).Elem() -} - -type VAppConfigSpec struct { - VmConfigSpec - - EntityConfig []VAppEntityConfigInfo `xml:"entityConfig,omitempty"` - Annotation string `xml:"annotation,omitempty"` - InstanceUuid string `xml:"instanceUuid,omitempty"` - ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` -} - -func init() { - t["VAppConfigSpec"] = reflect.TypeOf((*VAppConfigSpec)(nil)).Elem() -} - -type VAppEntityConfigInfo struct { - DynamicData - - Key *ManagedObjectReference `xml:"key,omitempty"` - Tag string `xml:"tag,omitempty"` - StartOrder int32 `xml:"startOrder,omitempty"` - StartDelay int32 `xml:"startDelay,omitempty"` - WaitingForGuest *bool `xml:"waitingForGuest"` - StartAction string `xml:"startAction,omitempty"` - StopDelay int32 `xml:"stopDelay,omitempty"` - StopAction string `xml:"stopAction,omitempty"` - DestroyWithParent *bool `xml:"destroyWithParent"` -} - -func init() { - t["VAppEntityConfigInfo"] = reflect.TypeOf((*VAppEntityConfigInfo)(nil)).Elem() -} - -type VAppIPAssignmentInfo struct { - DynamicData - - SupportedAllocationScheme []string `xml:"supportedAllocationScheme,omitempty"` - IpAllocationPolicy string `xml:"ipAllocationPolicy,omitempty"` - SupportedIpProtocol []string `xml:"supportedIpProtocol,omitempty"` - IpProtocol string `xml:"ipProtocol,omitempty"` -} - -func init() { - t["VAppIPAssignmentInfo"] = reflect.TypeOf((*VAppIPAssignmentInfo)(nil)).Elem() -} - -type VAppNotRunning struct { - VmConfigFault -} - -func init() { - t["VAppNotRunning"] = reflect.TypeOf((*VAppNotRunning)(nil)).Elem() -} - -type VAppNotRunningFault VAppNotRunning - -func init() { - t["VAppNotRunningFault"] = reflect.TypeOf((*VAppNotRunningFault)(nil)).Elem() -} - -type VAppOperationInProgress struct { - RuntimeFault -} - -func init() { - t["VAppOperationInProgress"] = reflect.TypeOf((*VAppOperationInProgress)(nil)).Elem() -} - -type VAppOperationInProgressFault VAppOperationInProgress - -func init() { - t["VAppOperationInProgressFault"] = reflect.TypeOf((*VAppOperationInProgressFault)(nil)).Elem() -} - -type VAppOvfSectionInfo struct { - DynamicData - - Key int32 `xml:"key,omitempty"` - Namespace string `xml:"namespace,omitempty"` - Type string `xml:"type,omitempty"` - AtEnvelopeLevel *bool `xml:"atEnvelopeLevel"` - Contents string `xml:"contents,omitempty"` -} - -func init() { - t["VAppOvfSectionInfo"] = reflect.TypeOf((*VAppOvfSectionInfo)(nil)).Elem() -} - -type VAppOvfSectionSpec struct { - ArrayUpdateSpec - - Info *VAppOvfSectionInfo `xml:"info,omitempty"` -} - -func init() { - t["VAppOvfSectionSpec"] = reflect.TypeOf((*VAppOvfSectionSpec)(nil)).Elem() -} - -type VAppProductInfo struct { - DynamicData - - Key int32 `xml:"key"` - ClassId string `xml:"classId,omitempty"` - InstanceId string `xml:"instanceId,omitempty"` - Name string `xml:"name,omitempty"` - Vendor string `xml:"vendor,omitempty"` - Version string `xml:"version,omitempty"` - FullVersion string `xml:"fullVersion,omitempty"` - VendorUrl string `xml:"vendorUrl,omitempty"` - ProductUrl string `xml:"productUrl,omitempty"` - AppUrl string `xml:"appUrl,omitempty"` -} - -func init() { - t["VAppProductInfo"] = reflect.TypeOf((*VAppProductInfo)(nil)).Elem() -} - -type VAppProductSpec struct { - ArrayUpdateSpec - - Info *VAppProductInfo `xml:"info,omitempty"` -} - -func init() { - t["VAppProductSpec"] = reflect.TypeOf((*VAppProductSpec)(nil)).Elem() -} - -type VAppPropertyFault struct { - VmConfigFault - - Id string `xml:"id"` - Category string `xml:"category"` - Label string `xml:"label"` - Type string `xml:"type"` - Value string `xml:"value"` -} - -func init() { - t["VAppPropertyFault"] = reflect.TypeOf((*VAppPropertyFault)(nil)).Elem() -} - -type VAppPropertyFaultFault BaseVAppPropertyFault - -func init() { - t["VAppPropertyFaultFault"] = reflect.TypeOf((*VAppPropertyFaultFault)(nil)).Elem() -} - -type VAppPropertyInfo struct { - DynamicData - - Key int32 `xml:"key"` - ClassId string `xml:"classId,omitempty"` - InstanceId string `xml:"instanceId,omitempty"` - Id string `xml:"id,omitempty"` - Category string `xml:"category,omitempty"` - Label string `xml:"label,omitempty"` - Type string `xml:"type,omitempty"` - TypeReference string `xml:"typeReference,omitempty"` - UserConfigurable *bool `xml:"userConfigurable"` - DefaultValue string `xml:"defaultValue,omitempty"` - Value string `xml:"value,omitempty"` - Description string `xml:"description,omitempty"` -} - -func init() { - t["VAppPropertyInfo"] = reflect.TypeOf((*VAppPropertyInfo)(nil)).Elem() -} - -type VAppPropertySpec struct { - ArrayUpdateSpec - - Info *VAppPropertyInfo `xml:"info,omitempty"` -} - -func init() { - t["VAppPropertySpec"] = reflect.TypeOf((*VAppPropertySpec)(nil)).Elem() -} - -type VAppTaskInProgress struct { - TaskInProgress -} - -func init() { - t["VAppTaskInProgress"] = reflect.TypeOf((*VAppTaskInProgress)(nil)).Elem() -} - -type VAppTaskInProgressFault VAppTaskInProgress - -func init() { - t["VAppTaskInProgressFault"] = reflect.TypeOf((*VAppTaskInProgressFault)(nil)).Elem() -} - -type VFlashCacheHotConfigNotSupported struct { - VmConfigFault -} - -func init() { - t["VFlashCacheHotConfigNotSupported"] = reflect.TypeOf((*VFlashCacheHotConfigNotSupported)(nil)).Elem() -} - -type VFlashCacheHotConfigNotSupportedFault VFlashCacheHotConfigNotSupported - -func init() { - t["VFlashCacheHotConfigNotSupportedFault"] = reflect.TypeOf((*VFlashCacheHotConfigNotSupportedFault)(nil)).Elem() -} - -type VFlashModuleNotSupported struct { - VmConfigFault - - VmName string `xml:"vmName"` - ModuleName string `xml:"moduleName"` - Reason string `xml:"reason"` - HostName string `xml:"hostName"` -} - -func init() { - t["VFlashModuleNotSupported"] = reflect.TypeOf((*VFlashModuleNotSupported)(nil)).Elem() -} - -type VFlashModuleNotSupportedFault VFlashModuleNotSupported - -func init() { - t["VFlashModuleNotSupportedFault"] = reflect.TypeOf((*VFlashModuleNotSupportedFault)(nil)).Elem() -} - -type VFlashModuleVersionIncompatible struct { - VimFault - - ModuleName string `xml:"moduleName"` - VmRequestModuleVersion string `xml:"vmRequestModuleVersion"` - HostMinSupportedVerson string `xml:"hostMinSupportedVerson"` - HostModuleVersion string `xml:"hostModuleVersion"` -} - -func init() { - t["VFlashModuleVersionIncompatible"] = reflect.TypeOf((*VFlashModuleVersionIncompatible)(nil)).Elem() -} - -type VFlashModuleVersionIncompatibleFault VFlashModuleVersionIncompatible - -func init() { - t["VFlashModuleVersionIncompatibleFault"] = reflect.TypeOf((*VFlashModuleVersionIncompatibleFault)(nil)).Elem() -} - -type VMFSDatastoreCreatedEvent struct { - HostEvent - - Datastore DatastoreEventArgument `xml:"datastore"` - DatastoreUrl string `xml:"datastoreUrl,omitempty"` -} - -func init() { - t["VMFSDatastoreCreatedEvent"] = reflect.TypeOf((*VMFSDatastoreCreatedEvent)(nil)).Elem() -} - -type VMFSDatastoreExpandedEvent struct { - HostEvent - - Datastore DatastoreEventArgument `xml:"datastore"` -} - -func init() { - t["VMFSDatastoreExpandedEvent"] = reflect.TypeOf((*VMFSDatastoreExpandedEvent)(nil)).Elem() -} - -type VMFSDatastoreExtendedEvent struct { - HostEvent - - Datastore DatastoreEventArgument `xml:"datastore"` -} - -func init() { - t["VMFSDatastoreExtendedEvent"] = reflect.TypeOf((*VMFSDatastoreExtendedEvent)(nil)).Elem() -} - -type VMINotSupported struct { - DeviceNotSupported -} - -func init() { - t["VMINotSupported"] = reflect.TypeOf((*VMINotSupported)(nil)).Elem() -} - -type VMINotSupportedFault VMINotSupported - -func init() { - t["VMINotSupportedFault"] = reflect.TypeOf((*VMINotSupportedFault)(nil)).Elem() -} - -type VMOnConflictDVPort struct { - CannotAccessNetwork -} - -func init() { - t["VMOnConflictDVPort"] = reflect.TypeOf((*VMOnConflictDVPort)(nil)).Elem() -} - -type VMOnConflictDVPortFault VMOnConflictDVPort - -func init() { - t["VMOnConflictDVPortFault"] = reflect.TypeOf((*VMOnConflictDVPortFault)(nil)).Elem() -} - -type VMOnVirtualIntranet struct { - CannotAccessNetwork -} - -func init() { - t["VMOnVirtualIntranet"] = reflect.TypeOf((*VMOnVirtualIntranet)(nil)).Elem() -} - -type VMOnVirtualIntranetFault VMOnVirtualIntranet - -func init() { - t["VMOnVirtualIntranetFault"] = reflect.TypeOf((*VMOnVirtualIntranetFault)(nil)).Elem() -} - -type VMotionAcrossNetworkNotSupported struct { - MigrationFeatureNotSupported -} - -func init() { - t["VMotionAcrossNetworkNotSupported"] = reflect.TypeOf((*VMotionAcrossNetworkNotSupported)(nil)).Elem() -} - -type VMotionAcrossNetworkNotSupportedFault VMotionAcrossNetworkNotSupported - -func init() { - t["VMotionAcrossNetworkNotSupportedFault"] = reflect.TypeOf((*VMotionAcrossNetworkNotSupportedFault)(nil)).Elem() -} - -type VMotionInterfaceIssue struct { - MigrationFault - - AtSourceHost bool `xml:"atSourceHost"` - FailedHost string `xml:"failedHost"` - FailedHostEntity *ManagedObjectReference `xml:"failedHostEntity,omitempty"` -} - -func init() { - t["VMotionInterfaceIssue"] = reflect.TypeOf((*VMotionInterfaceIssue)(nil)).Elem() -} - -type VMotionInterfaceIssueFault BaseVMotionInterfaceIssue - -func init() { - t["VMotionInterfaceIssueFault"] = reflect.TypeOf((*VMotionInterfaceIssueFault)(nil)).Elem() -} - -type VMotionLicenseExpiredEvent struct { - LicenseEvent -} - -func init() { - t["VMotionLicenseExpiredEvent"] = reflect.TypeOf((*VMotionLicenseExpiredEvent)(nil)).Elem() -} - -type VMotionLinkCapacityLow struct { - VMotionInterfaceIssue - - Network string `xml:"network"` -} - -func init() { - t["VMotionLinkCapacityLow"] = reflect.TypeOf((*VMotionLinkCapacityLow)(nil)).Elem() -} - -type VMotionLinkCapacityLowFault VMotionLinkCapacityLow - -func init() { - t["VMotionLinkCapacityLowFault"] = reflect.TypeOf((*VMotionLinkCapacityLowFault)(nil)).Elem() -} - -type VMotionLinkDown struct { - VMotionInterfaceIssue - - Network string `xml:"network"` -} - -func init() { - t["VMotionLinkDown"] = reflect.TypeOf((*VMotionLinkDown)(nil)).Elem() -} - -type VMotionLinkDownFault VMotionLinkDown - -func init() { - t["VMotionLinkDownFault"] = reflect.TypeOf((*VMotionLinkDownFault)(nil)).Elem() -} - -type VMotionNotConfigured struct { - VMotionInterfaceIssue -} - -func init() { - t["VMotionNotConfigured"] = reflect.TypeOf((*VMotionNotConfigured)(nil)).Elem() -} - -type VMotionNotConfiguredFault VMotionNotConfigured - -func init() { - t["VMotionNotConfiguredFault"] = reflect.TypeOf((*VMotionNotConfiguredFault)(nil)).Elem() -} - -type VMotionNotLicensed struct { - VMotionInterfaceIssue -} - -func init() { - t["VMotionNotLicensed"] = reflect.TypeOf((*VMotionNotLicensed)(nil)).Elem() -} - -type VMotionNotLicensedFault VMotionNotLicensed - -func init() { - t["VMotionNotLicensedFault"] = reflect.TypeOf((*VMotionNotLicensedFault)(nil)).Elem() -} - -type VMotionNotSupported struct { - VMotionInterfaceIssue -} - -func init() { - t["VMotionNotSupported"] = reflect.TypeOf((*VMotionNotSupported)(nil)).Elem() -} - -type VMotionNotSupportedFault VMotionNotSupported - -func init() { - t["VMotionNotSupportedFault"] = reflect.TypeOf((*VMotionNotSupportedFault)(nil)).Elem() -} - -type VMotionProtocolIncompatible struct { - MigrationFault -} - -func init() { - t["VMotionProtocolIncompatible"] = reflect.TypeOf((*VMotionProtocolIncompatible)(nil)).Elem() -} - -type VMotionProtocolIncompatibleFault VMotionProtocolIncompatible - -func init() { - t["VMotionProtocolIncompatibleFault"] = reflect.TypeOf((*VMotionProtocolIncompatibleFault)(nil)).Elem() -} - -type VMwareDVSConfigInfo struct { - DVSConfigInfo - - VspanSession []VMwareVspanSession `xml:"vspanSession,omitempty"` - PvlanConfig []VMwareDVSPvlanMapEntry `xml:"pvlanConfig,omitempty"` - MaxMtu int32 `xml:"maxMtu"` - LinkDiscoveryProtocolConfig *LinkDiscoveryProtocolConfig `xml:"linkDiscoveryProtocolConfig,omitempty"` - IpfixConfig *VMwareIpfixConfig `xml:"ipfixConfig,omitempty"` - LacpGroupConfig []VMwareDvsLacpGroupConfig `xml:"lacpGroupConfig,omitempty"` - LacpApiVersion string `xml:"lacpApiVersion,omitempty"` - MulticastFilteringMode string `xml:"multicastFilteringMode,omitempty"` -} - -func init() { - t["VMwareDVSConfigInfo"] = reflect.TypeOf((*VMwareDVSConfigInfo)(nil)).Elem() -} - -type VMwareDVSConfigSpec struct { - DVSConfigSpec - - PvlanConfigSpec []VMwareDVSPvlanConfigSpec `xml:"pvlanConfigSpec,omitempty"` - VspanConfigSpec []VMwareDVSVspanConfigSpec `xml:"vspanConfigSpec,omitempty"` - MaxMtu int32 `xml:"maxMtu,omitempty"` - LinkDiscoveryProtocolConfig *LinkDiscoveryProtocolConfig `xml:"linkDiscoveryProtocolConfig,omitempty"` - IpfixConfig *VMwareIpfixConfig `xml:"ipfixConfig,omitempty"` - LacpApiVersion string `xml:"lacpApiVersion,omitempty"` - MulticastFilteringMode string `xml:"multicastFilteringMode,omitempty"` -} - -func init() { - t["VMwareDVSConfigSpec"] = reflect.TypeOf((*VMwareDVSConfigSpec)(nil)).Elem() -} - -type VMwareDVSFeatureCapability struct { - DVSFeatureCapability - - VspanSupported *bool `xml:"vspanSupported"` - LldpSupported *bool `xml:"lldpSupported"` - IpfixSupported *bool `xml:"ipfixSupported"` - IpfixCapability *VMwareDvsIpfixCapability `xml:"ipfixCapability,omitempty"` - MulticastSnoopingSupported *bool `xml:"multicastSnoopingSupported"` - VspanCapability *VMwareDVSVspanCapability `xml:"vspanCapability,omitempty"` - LacpCapability *VMwareDvsLacpCapability `xml:"lacpCapability,omitempty"` -} - -func init() { - t["VMwareDVSFeatureCapability"] = reflect.TypeOf((*VMwareDVSFeatureCapability)(nil)).Elem() -} - -type VMwareDVSHealthCheckCapability struct { - DVSHealthCheckCapability - - VlanMtuSupported bool `xml:"vlanMtuSupported"` - TeamingSupported bool `xml:"teamingSupported"` -} - -func init() { - t["VMwareDVSHealthCheckCapability"] = reflect.TypeOf((*VMwareDVSHealthCheckCapability)(nil)).Elem() -} - -type VMwareDVSHealthCheckConfig struct { - DVSHealthCheckConfig -} - -func init() { - t["VMwareDVSHealthCheckConfig"] = reflect.TypeOf((*VMwareDVSHealthCheckConfig)(nil)).Elem() -} - -type VMwareDVSMtuHealthCheckResult struct { - HostMemberUplinkHealthCheckResult - - MtuMismatch bool `xml:"mtuMismatch"` - VlanSupportSwitchMtu []NumericRange `xml:"vlanSupportSwitchMtu,omitempty"` - VlanNotSupportSwitchMtu []NumericRange `xml:"vlanNotSupportSwitchMtu,omitempty"` -} - -func init() { - t["VMwareDVSMtuHealthCheckResult"] = reflect.TypeOf((*VMwareDVSMtuHealthCheckResult)(nil)).Elem() -} - -type VMwareDVSPortSetting struct { - DVPortSetting - - Vlan BaseVmwareDistributedVirtualSwitchVlanSpec `xml:"vlan,omitempty,typeattr"` - QosTag *IntPolicy `xml:"qosTag,omitempty"` - UplinkTeamingPolicy *VmwareUplinkPortTeamingPolicy `xml:"uplinkTeamingPolicy,omitempty"` - SecurityPolicy *DVSSecurityPolicy `xml:"securityPolicy,omitempty"` - IpfixEnabled *BoolPolicy `xml:"ipfixEnabled,omitempty"` - TxUplink *BoolPolicy `xml:"txUplink,omitempty"` - LacpPolicy *VMwareUplinkLacpPolicy `xml:"lacpPolicy,omitempty"` -} - -func init() { - t["VMwareDVSPortSetting"] = reflect.TypeOf((*VMwareDVSPortSetting)(nil)).Elem() -} - -type VMwareDVSPortgroupPolicy struct { - DVPortgroupPolicy - - VlanOverrideAllowed bool `xml:"vlanOverrideAllowed"` - UplinkTeamingOverrideAllowed bool `xml:"uplinkTeamingOverrideAllowed"` - SecurityPolicyOverrideAllowed bool `xml:"securityPolicyOverrideAllowed"` - IpfixOverrideAllowed *bool `xml:"ipfixOverrideAllowed"` -} - -func init() { - t["VMwareDVSPortgroupPolicy"] = reflect.TypeOf((*VMwareDVSPortgroupPolicy)(nil)).Elem() -} - -type VMwareDVSPvlanConfigSpec struct { - DynamicData - - PvlanEntry VMwareDVSPvlanMapEntry `xml:"pvlanEntry"` - Operation string `xml:"operation"` -} - -func init() { - t["VMwareDVSPvlanConfigSpec"] = reflect.TypeOf((*VMwareDVSPvlanConfigSpec)(nil)).Elem() -} - -type VMwareDVSPvlanMapEntry struct { - DynamicData - - PrimaryVlanId int32 `xml:"primaryVlanId"` - SecondaryVlanId int32 `xml:"secondaryVlanId"` - PvlanType string `xml:"pvlanType"` -} - -func init() { - t["VMwareDVSPvlanMapEntry"] = reflect.TypeOf((*VMwareDVSPvlanMapEntry)(nil)).Elem() -} - -type VMwareDVSTeamingHealthCheckConfig struct { - VMwareDVSHealthCheckConfig -} - -func init() { - t["VMwareDVSTeamingHealthCheckConfig"] = reflect.TypeOf((*VMwareDVSTeamingHealthCheckConfig)(nil)).Elem() -} - -type VMwareDVSTeamingHealthCheckResult struct { - HostMemberHealthCheckResult - - TeamingStatus string `xml:"teamingStatus"` -} - -func init() { - t["VMwareDVSTeamingHealthCheckResult"] = reflect.TypeOf((*VMwareDVSTeamingHealthCheckResult)(nil)).Elem() -} - -type VMwareDVSVlanHealthCheckResult struct { - HostMemberUplinkHealthCheckResult - - TrunkedVlan []NumericRange `xml:"trunkedVlan,omitempty"` - UntrunkedVlan []NumericRange `xml:"untrunkedVlan,omitempty"` -} - -func init() { - t["VMwareDVSVlanHealthCheckResult"] = reflect.TypeOf((*VMwareDVSVlanHealthCheckResult)(nil)).Elem() -} - -type VMwareDVSVlanMtuHealthCheckConfig struct { - VMwareDVSHealthCheckConfig -} - -func init() { - t["VMwareDVSVlanMtuHealthCheckConfig"] = reflect.TypeOf((*VMwareDVSVlanMtuHealthCheckConfig)(nil)).Elem() -} - -type VMwareDVSVspanCapability struct { - DynamicData - - MixedDestSupported bool `xml:"mixedDestSupported"` - DvportSupported bool `xml:"dvportSupported"` - RemoteSourceSupported bool `xml:"remoteSourceSupported"` - RemoteDestSupported bool `xml:"remoteDestSupported"` - EncapRemoteSourceSupported bool `xml:"encapRemoteSourceSupported"` - ErspanProtocolSupported *bool `xml:"erspanProtocolSupported"` -} - -func init() { - t["VMwareDVSVspanCapability"] = reflect.TypeOf((*VMwareDVSVspanCapability)(nil)).Elem() -} - -type VMwareDVSVspanConfigSpec struct { - DynamicData - - VspanSession VMwareVspanSession `xml:"vspanSession"` - Operation string `xml:"operation"` -} - -func init() { - t["VMwareDVSVspanConfigSpec"] = reflect.TypeOf((*VMwareDVSVspanConfigSpec)(nil)).Elem() -} - -type VMwareDvsIpfixCapability struct { - DynamicData - - IpfixSupported *bool `xml:"ipfixSupported"` - Ipv6ForIpfixSupported *bool `xml:"ipv6ForIpfixSupported"` - ObservationDomainIdSupported *bool `xml:"observationDomainIdSupported"` -} - -func init() { - t["VMwareDvsIpfixCapability"] = reflect.TypeOf((*VMwareDvsIpfixCapability)(nil)).Elem() -} - -type VMwareDvsLacpCapability struct { - DynamicData - - LacpSupported *bool `xml:"lacpSupported"` - MultiLacpGroupSupported *bool `xml:"multiLacpGroupSupported"` -} - -func init() { - t["VMwareDvsLacpCapability"] = reflect.TypeOf((*VMwareDvsLacpCapability)(nil)).Elem() -} - -type VMwareDvsLacpGroupConfig struct { - DynamicData - - Key string `xml:"key,omitempty"` - Name string `xml:"name,omitempty"` - Mode string `xml:"mode,omitempty"` - UplinkNum int32 `xml:"uplinkNum,omitempty"` - LoadbalanceAlgorithm string `xml:"loadbalanceAlgorithm,omitempty"` - Vlan *VMwareDvsLagVlanConfig `xml:"vlan,omitempty"` - Ipfix *VMwareDvsLagIpfixConfig `xml:"ipfix,omitempty"` - UplinkName []string `xml:"uplinkName,omitempty"` - UplinkPortKey []string `xml:"uplinkPortKey,omitempty"` -} - -func init() { - t["VMwareDvsLacpGroupConfig"] = reflect.TypeOf((*VMwareDvsLacpGroupConfig)(nil)).Elem() -} - -type VMwareDvsLacpGroupSpec struct { - DynamicData - - LacpGroupConfig VMwareDvsLacpGroupConfig `xml:"lacpGroupConfig"` - Operation string `xml:"operation"` -} - -func init() { - t["VMwareDvsLacpGroupSpec"] = reflect.TypeOf((*VMwareDvsLacpGroupSpec)(nil)).Elem() -} - -type VMwareDvsLagIpfixConfig struct { - DynamicData - - IpfixEnabled *bool `xml:"ipfixEnabled"` -} - -func init() { - t["VMwareDvsLagIpfixConfig"] = reflect.TypeOf((*VMwareDvsLagIpfixConfig)(nil)).Elem() -} - -type VMwareDvsLagVlanConfig struct { - DynamicData - - VlanId []NumericRange `xml:"vlanId,omitempty"` -} - -func init() { - t["VMwareDvsLagVlanConfig"] = reflect.TypeOf((*VMwareDvsLagVlanConfig)(nil)).Elem() -} - -type VMwareIpfixConfig struct { - DynamicData - - CollectorIpAddress string `xml:"collectorIpAddress,omitempty"` - CollectorPort int32 `xml:"collectorPort,omitempty"` - ObservationDomainId int64 `xml:"observationDomainId,omitempty"` - ActiveFlowTimeout int32 `xml:"activeFlowTimeout"` - IdleFlowTimeout int32 `xml:"idleFlowTimeout"` - SamplingRate int32 `xml:"samplingRate"` - InternalFlowsOnly bool `xml:"internalFlowsOnly"` -} - -func init() { - t["VMwareIpfixConfig"] = reflect.TypeOf((*VMwareIpfixConfig)(nil)).Elem() -} - -type VMwareUplinkLacpPolicy struct { - InheritablePolicy - - Enable *BoolPolicy `xml:"enable,omitempty"` - Mode *StringPolicy `xml:"mode,omitempty"` -} - -func init() { - t["VMwareUplinkLacpPolicy"] = reflect.TypeOf((*VMwareUplinkLacpPolicy)(nil)).Elem() -} - -type VMwareUplinkPortOrderPolicy struct { - InheritablePolicy - - ActiveUplinkPort []string `xml:"activeUplinkPort,omitempty"` - StandbyUplinkPort []string `xml:"standbyUplinkPort,omitempty"` -} - -func init() { - t["VMwareUplinkPortOrderPolicy"] = reflect.TypeOf((*VMwareUplinkPortOrderPolicy)(nil)).Elem() -} - -type VMwareVspanPort struct { - DynamicData - - PortKey []string `xml:"portKey,omitempty"` - UplinkPortName []string `xml:"uplinkPortName,omitempty"` - WildcardPortConnecteeType []string `xml:"wildcardPortConnecteeType,omitempty"` - Vlans []int32 `xml:"vlans,omitempty"` - IpAddress []string `xml:"ipAddress,omitempty"` -} - -func init() { - t["VMwareVspanPort"] = reflect.TypeOf((*VMwareVspanPort)(nil)).Elem() -} - -type VMwareVspanSession struct { - DynamicData - - Key string `xml:"key,omitempty"` - Name string `xml:"name,omitempty"` - Description string `xml:"description,omitempty"` - Enabled bool `xml:"enabled"` - SourcePortTransmitted *VMwareVspanPort `xml:"sourcePortTransmitted,omitempty"` - SourcePortReceived *VMwareVspanPort `xml:"sourcePortReceived,omitempty"` - DestinationPort *VMwareVspanPort `xml:"destinationPort,omitempty"` - EncapsulationVlanId int32 `xml:"encapsulationVlanId,omitempty"` - StripOriginalVlan bool `xml:"stripOriginalVlan"` - MirroredPacketLength int32 `xml:"mirroredPacketLength,omitempty"` - NormalTrafficAllowed bool `xml:"normalTrafficAllowed"` - SessionType string `xml:"sessionType,omitempty"` - SamplingRate int32 `xml:"samplingRate,omitempty"` - EncapType string `xml:"encapType,omitempty"` - ErspanId int32 `xml:"erspanId,omitempty"` - ErspanCOS int32 `xml:"erspanCOS,omitempty"` - ErspanGraNanosec *bool `xml:"erspanGraNanosec"` -} - -func init() { - t["VMwareVspanSession"] = reflect.TypeOf((*VMwareVspanSession)(nil)).Elem() -} - -type VRPEditSpec struct { - DynamicData - - VrpId string `xml:"vrpId"` - Description string `xml:"description,omitempty"` - CpuAllocation *VrpResourceAllocationInfo `xml:"cpuAllocation,omitempty"` - MemoryAllocation *VrpResourceAllocationInfo `xml:"memoryAllocation,omitempty"` - AddedHubs []ManagedObjectReference `xml:"addedHubs,omitempty"` - RemovedHubs []ManagedObjectReference `xml:"removedHubs,omitempty"` - ChangeVersion int64 `xml:"changeVersion,omitempty"` -} - -func init() { - t["VRPEditSpec"] = reflect.TypeOf((*VRPEditSpec)(nil)).Elem() -} - -type VStorageObject struct { - DynamicData - - Config VStorageObjectConfigInfo `xml:"config"` -} - -func init() { - t["VStorageObject"] = reflect.TypeOf((*VStorageObject)(nil)).Elem() -} - -type VStorageObjectConfigInfo struct { - BaseConfigInfo - - CapacityInMB int64 `xml:"capacityInMB"` - ConsumptionType []string `xml:"consumptionType,omitempty"` - ConsumerId []ID `xml:"consumerId,omitempty"` -} - -func init() { - t["VStorageObjectConfigInfo"] = reflect.TypeOf((*VStorageObjectConfigInfo)(nil)).Elem() -} - -type VStorageObjectStateInfo struct { - DynamicData - - Tentative *bool `xml:"tentative"` -} - -func init() { - t["VStorageObjectStateInfo"] = reflect.TypeOf((*VStorageObjectStateInfo)(nil)).Elem() -} - -type VVolHostPE struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - ProtocolEndpoint []HostProtocolEndpoint `xml:"protocolEndpoint"` -} - -func init() { - t["VVolHostPE"] = reflect.TypeOf((*VVolHostPE)(nil)).Elem() -} - -type VVolVmConfigFileUpdateResult struct { - DynamicData - - SucceededVmConfigFile []KeyValue `xml:"succeededVmConfigFile,omitempty"` - FailedVmConfigFile []VVolVmConfigFileUpdateResultFailedVmConfigFileInfo `xml:"failedVmConfigFile,omitempty"` -} - -func init() { - t["VVolVmConfigFileUpdateResult"] = reflect.TypeOf((*VVolVmConfigFileUpdateResult)(nil)).Elem() -} - -type VVolVmConfigFileUpdateResultFailedVmConfigFileInfo struct { - DynamicData - - TargetConfigVVolId string `xml:"targetConfigVVolId"` - Fault LocalizedMethodFault `xml:"fault"` -} - -func init() { - t["VVolVmConfigFileUpdateResultFailedVmConfigFileInfo"] = reflect.TypeOf((*VVolVmConfigFileUpdateResultFailedVmConfigFileInfo)(nil)).Elem() -} - -type ValidateCredentialsInGuest ValidateCredentialsInGuestRequestType - -func init() { - t["ValidateCredentialsInGuest"] = reflect.TypeOf((*ValidateCredentialsInGuest)(nil)).Elem() -} - -type ValidateCredentialsInGuestRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm ManagedObjectReference `xml:"vm"` - Auth BaseGuestAuthentication `xml:"auth,typeattr"` -} - -func init() { - t["ValidateCredentialsInGuestRequestType"] = reflect.TypeOf((*ValidateCredentialsInGuestRequestType)(nil)).Elem() -} - -type ValidateCredentialsInGuestResponse struct { -} - -type ValidateHost ValidateHostRequestType - -func init() { - t["ValidateHost"] = reflect.TypeOf((*ValidateHost)(nil)).Elem() -} - -type ValidateHostRequestType struct { - This ManagedObjectReference `xml:"_this"` - OvfDescriptor string `xml:"ovfDescriptor"` - Host ManagedObjectReference `xml:"host"` - Vhp OvfValidateHostParams `xml:"vhp"` -} - -func init() { - t["ValidateHostRequestType"] = reflect.TypeOf((*ValidateHostRequestType)(nil)).Elem() -} - -type ValidateHostResponse struct { - Returnval OvfValidateHostResult `xml:"returnval"` -} - -type ValidateMigration ValidateMigrationRequestType - -func init() { - t["ValidateMigration"] = reflect.TypeOf((*ValidateMigration)(nil)).Elem() -} - -type ValidateMigrationRequestType struct { - This ManagedObjectReference `xml:"_this"` - Vm []ManagedObjectReference `xml:"vm"` - State VirtualMachinePowerState `xml:"state,omitempty"` - TestType []string `xml:"testType,omitempty"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` -} - -func init() { - t["ValidateMigrationRequestType"] = reflect.TypeOf((*ValidateMigrationRequestType)(nil)).Elem() -} - -type ValidateMigrationResponse struct { - Returnval []BaseEvent `xml:"returnval,omitempty,typeattr"` -} - -type VasaProviderContainerSpec struct { - DynamicData - - VasaProviderInfo []VimVasaProviderInfo `xml:"vasaProviderInfo,omitempty"` - ScId string `xml:"scId"` - Deleted bool `xml:"deleted"` -} - -func init() { - t["VasaProviderContainerSpec"] = reflect.TypeOf((*VasaProviderContainerSpec)(nil)).Elem() -} - -type VcAgentUninstallFailedEvent struct { - HostEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["VcAgentUninstallFailedEvent"] = reflect.TypeOf((*VcAgentUninstallFailedEvent)(nil)).Elem() -} - -type VcAgentUninstalledEvent struct { - HostEvent -} - -func init() { - t["VcAgentUninstalledEvent"] = reflect.TypeOf((*VcAgentUninstalledEvent)(nil)).Elem() -} - -type VcAgentUpgradeFailedEvent struct { - HostEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["VcAgentUpgradeFailedEvent"] = reflect.TypeOf((*VcAgentUpgradeFailedEvent)(nil)).Elem() -} - -type VcAgentUpgradedEvent struct { - HostEvent -} - -func init() { - t["VcAgentUpgradedEvent"] = reflect.TypeOf((*VcAgentUpgradedEvent)(nil)).Elem() -} - -type VchaClusterConfigInfo struct { - DynamicData - - FailoverNodeInfo1 *FailoverNodeInfo `xml:"failoverNodeInfo1,omitempty"` - FailoverNodeInfo2 *FailoverNodeInfo `xml:"failoverNodeInfo2,omitempty"` - WitnessNodeInfo *WitnessNodeInfo `xml:"witnessNodeInfo,omitempty"` - State string `xml:"state"` -} - -func init() { - t["VchaClusterConfigInfo"] = reflect.TypeOf((*VchaClusterConfigInfo)(nil)).Elem() -} - -type VchaClusterConfigSpec struct { - DynamicData - - PassiveIp string `xml:"passiveIp"` - WitnessIp string `xml:"witnessIp"` -} - -func init() { - t["VchaClusterConfigSpec"] = reflect.TypeOf((*VchaClusterConfigSpec)(nil)).Elem() -} - -type VchaClusterDeploymentSpec struct { - DynamicData - - PassiveDeploymentSpec PassiveNodeDeploymentSpec `xml:"passiveDeploymentSpec"` - WitnessDeploymentSpec BaseNodeDeploymentSpec `xml:"witnessDeploymentSpec,typeattr"` - ActiveVcSpec SourceNodeSpec `xml:"activeVcSpec"` - ActiveVcNetworkConfig *ClusterNetworkConfigSpec `xml:"activeVcNetworkConfig,omitempty"` -} - -func init() { - t["VchaClusterDeploymentSpec"] = reflect.TypeOf((*VchaClusterDeploymentSpec)(nil)).Elem() -} - -type VchaClusterHealth struct { - DynamicData - - RuntimeInfo VchaClusterRuntimeInfo `xml:"runtimeInfo"` - HealthMessages []LocalizableMessage `xml:"healthMessages,omitempty"` - AdditionalInformation []LocalizableMessage `xml:"additionalInformation,omitempty"` -} - -func init() { - t["VchaClusterHealth"] = reflect.TypeOf((*VchaClusterHealth)(nil)).Elem() -} - -type VchaClusterNetworkSpec struct { - DynamicData - - WitnessNetworkSpec BaseNodeNetworkSpec `xml:"witnessNetworkSpec,typeattr"` - PassiveNetworkSpec PassiveNodeNetworkSpec `xml:"passiveNetworkSpec"` -} - -func init() { - t["VchaClusterNetworkSpec"] = reflect.TypeOf((*VchaClusterNetworkSpec)(nil)).Elem() -} - -type VchaClusterRuntimeInfo struct { - DynamicData - - ClusterState string `xml:"clusterState"` - NodeInfo []VchaNodeRuntimeInfo `xml:"nodeInfo,omitempty"` - ClusterMode string `xml:"clusterMode"` -} - -func init() { - t["VchaClusterRuntimeInfo"] = reflect.TypeOf((*VchaClusterRuntimeInfo)(nil)).Elem() -} - -type VchaNodeRuntimeInfo struct { - DynamicData - - NodeState string `xml:"nodeState"` - NodeRole string `xml:"nodeRole"` - NodeIp string `xml:"nodeIp"` -} - -func init() { - t["VchaNodeRuntimeInfo"] = reflect.TypeOf((*VchaNodeRuntimeInfo)(nil)).Elem() -} - -type VimAccountPasswordChangedEvent struct { - HostEvent -} - -func init() { - t["VimAccountPasswordChangedEvent"] = reflect.TypeOf((*VimAccountPasswordChangedEvent)(nil)).Elem() -} - -type VimFault struct { - MethodFault -} - -func init() { - t["VimFault"] = reflect.TypeOf((*VimFault)(nil)).Elem() -} - -type VimFaultFault BaseVimFault - -func init() { - t["VimFaultFault"] = reflect.TypeOf((*VimFaultFault)(nil)).Elem() -} - -type VimVasaProvider struct { - DynamicData - - Url string `xml:"url"` - Name string `xml:"name,omitempty"` - SelfSignedCertificate string `xml:"selfSignedCertificate,omitempty"` -} - -func init() { - t["VimVasaProvider"] = reflect.TypeOf((*VimVasaProvider)(nil)).Elem() -} - -type VimVasaProviderInfo struct { - DynamicData - - Provider VimVasaProvider `xml:"provider"` - ArrayState []VimVasaProviderStatePerArray `xml:"arrayState,omitempty"` -} - -func init() { - t["VimVasaProviderInfo"] = reflect.TypeOf((*VimVasaProviderInfo)(nil)).Elem() -} - -type VimVasaProviderStatePerArray struct { - DynamicData - - Priority int32 `xml:"priority"` - ArrayId string `xml:"arrayId"` - Active bool `xml:"active"` -} - -func init() { - t["VimVasaProviderStatePerArray"] = reflect.TypeOf((*VimVasaProviderStatePerArray)(nil)).Elem() -} - -type VirtualAHCIController struct { - VirtualSATAController -} - -func init() { - t["VirtualAHCIController"] = reflect.TypeOf((*VirtualAHCIController)(nil)).Elem() -} - -type VirtualAHCIControllerOption struct { - VirtualSATAControllerOption -} - -func init() { - t["VirtualAHCIControllerOption"] = reflect.TypeOf((*VirtualAHCIControllerOption)(nil)).Elem() -} - -type VirtualAppImportSpec struct { - ImportSpec - - Name string `xml:"name"` - VAppConfigSpec VAppConfigSpec `xml:"vAppConfigSpec"` - ResourcePoolSpec ResourceConfigSpec `xml:"resourcePoolSpec"` - Child []BaseImportSpec `xml:"child,omitempty,typeattr"` -} - -func init() { - t["VirtualAppImportSpec"] = reflect.TypeOf((*VirtualAppImportSpec)(nil)).Elem() -} - -type VirtualAppLinkInfo struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - DestroyWithParent *bool `xml:"destroyWithParent"` -} - -func init() { - t["VirtualAppLinkInfo"] = reflect.TypeOf((*VirtualAppLinkInfo)(nil)).Elem() -} - -type VirtualAppSummary struct { - ResourcePoolSummary - - Product *VAppProductInfo `xml:"product,omitempty"` - VAppState VirtualAppVAppState `xml:"vAppState,omitempty"` - Suspended *bool `xml:"suspended"` - InstallBootRequired *bool `xml:"installBootRequired"` - InstanceUuid string `xml:"instanceUuid,omitempty"` -} - -func init() { - t["VirtualAppSummary"] = reflect.TypeOf((*VirtualAppSummary)(nil)).Elem() -} - -type VirtualBusLogicController struct { - VirtualSCSIController -} - -func init() { - t["VirtualBusLogicController"] = reflect.TypeOf((*VirtualBusLogicController)(nil)).Elem() -} - -type VirtualBusLogicControllerOption struct { - VirtualSCSIControllerOption -} - -func init() { - t["VirtualBusLogicControllerOption"] = reflect.TypeOf((*VirtualBusLogicControllerOption)(nil)).Elem() -} - -type VirtualCdrom struct { - VirtualDevice -} - -func init() { - t["VirtualCdrom"] = reflect.TypeOf((*VirtualCdrom)(nil)).Elem() -} - -type VirtualCdromAtapiBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualCdromAtapiBackingInfo"] = reflect.TypeOf((*VirtualCdromAtapiBackingInfo)(nil)).Elem() -} - -type VirtualCdromAtapiBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualCdromAtapiBackingOption"] = reflect.TypeOf((*VirtualCdromAtapiBackingOption)(nil)).Elem() -} - -type VirtualCdromIsoBackingInfo struct { - VirtualDeviceFileBackingInfo -} - -func init() { - t["VirtualCdromIsoBackingInfo"] = reflect.TypeOf((*VirtualCdromIsoBackingInfo)(nil)).Elem() -} - -type VirtualCdromIsoBackingOption struct { - VirtualDeviceFileBackingOption -} - -func init() { - t["VirtualCdromIsoBackingOption"] = reflect.TypeOf((*VirtualCdromIsoBackingOption)(nil)).Elem() -} - -type VirtualCdromOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualCdromOption"] = reflect.TypeOf((*VirtualCdromOption)(nil)).Elem() -} - -type VirtualCdromPassthroughBackingInfo struct { - VirtualDeviceDeviceBackingInfo - - Exclusive bool `xml:"exclusive"` -} - -func init() { - t["VirtualCdromPassthroughBackingInfo"] = reflect.TypeOf((*VirtualCdromPassthroughBackingInfo)(nil)).Elem() -} - -type VirtualCdromPassthroughBackingOption struct { - VirtualDeviceDeviceBackingOption - - Exclusive BoolOption `xml:"exclusive"` -} - -func init() { - t["VirtualCdromPassthroughBackingOption"] = reflect.TypeOf((*VirtualCdromPassthroughBackingOption)(nil)).Elem() -} - -type VirtualCdromRemoteAtapiBackingInfo struct { - VirtualDeviceRemoteDeviceBackingInfo -} - -func init() { - t["VirtualCdromRemoteAtapiBackingInfo"] = reflect.TypeOf((*VirtualCdromRemoteAtapiBackingInfo)(nil)).Elem() -} - -type VirtualCdromRemoteAtapiBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualCdromRemoteAtapiBackingOption"] = reflect.TypeOf((*VirtualCdromRemoteAtapiBackingOption)(nil)).Elem() -} - -type VirtualCdromRemotePassthroughBackingInfo struct { - VirtualDeviceRemoteDeviceBackingInfo - - Exclusive bool `xml:"exclusive"` -} - -func init() { - t["VirtualCdromRemotePassthroughBackingInfo"] = reflect.TypeOf((*VirtualCdromRemotePassthroughBackingInfo)(nil)).Elem() -} - -type VirtualCdromRemotePassthroughBackingOption struct { - VirtualDeviceRemoteDeviceBackingOption - - Exclusive BoolOption `xml:"exclusive"` -} - -func init() { - t["VirtualCdromRemotePassthroughBackingOption"] = reflect.TypeOf((*VirtualCdromRemotePassthroughBackingOption)(nil)).Elem() -} - -type VirtualController struct { - VirtualDevice - - BusNumber int32 `xml:"busNumber"` - Device []int32 `xml:"device,omitempty"` -} - -func init() { - t["VirtualController"] = reflect.TypeOf((*VirtualController)(nil)).Elem() -} - -type VirtualControllerOption struct { - VirtualDeviceOption - - Devices IntOption `xml:"devices"` - SupportedDevice []string `xml:"supportedDevice,omitempty"` -} - -func init() { - t["VirtualControllerOption"] = reflect.TypeOf((*VirtualControllerOption)(nil)).Elem() -} - -type VirtualDevice struct { - DynamicData - - Key int32 `xml:"key"` - DeviceInfo BaseDescription `xml:"deviceInfo,omitempty,typeattr"` - Backing BaseVirtualDeviceBackingInfo `xml:"backing,omitempty,typeattr"` - Connectable *VirtualDeviceConnectInfo `xml:"connectable,omitempty"` - SlotInfo BaseVirtualDeviceBusSlotInfo `xml:"slotInfo,omitempty,typeattr"` - ControllerKey int32 `xml:"controllerKey,omitempty"` - UnitNumber *int32 `xml:"unitNumber"` -} - -func init() { - t["VirtualDevice"] = reflect.TypeOf((*VirtualDevice)(nil)).Elem() -} - -type VirtualDeviceBackingInfo struct { - DynamicData -} - -func init() { - t["VirtualDeviceBackingInfo"] = reflect.TypeOf((*VirtualDeviceBackingInfo)(nil)).Elem() -} - -type VirtualDeviceBackingOption struct { - DynamicData - - Type string `xml:"type"` -} - -func init() { - t["VirtualDeviceBackingOption"] = reflect.TypeOf((*VirtualDeviceBackingOption)(nil)).Elem() -} - -type VirtualDeviceBusSlotInfo struct { - DynamicData -} - -func init() { - t["VirtualDeviceBusSlotInfo"] = reflect.TypeOf((*VirtualDeviceBusSlotInfo)(nil)).Elem() -} - -type VirtualDeviceBusSlotOption struct { - DynamicData - - Type string `xml:"type"` -} - -func init() { - t["VirtualDeviceBusSlotOption"] = reflect.TypeOf((*VirtualDeviceBusSlotOption)(nil)).Elem() -} - -type VirtualDeviceConfigSpec struct { - DynamicData - - Operation VirtualDeviceConfigSpecOperation `xml:"operation,omitempty"` - FileOperation VirtualDeviceConfigSpecFileOperation `xml:"fileOperation,omitempty"` - Device BaseVirtualDevice `xml:"device,typeattr"` - Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` - Backing *VirtualDeviceConfigSpecBackingSpec `xml:"backing,omitempty"` -} - -func init() { - t["VirtualDeviceConfigSpec"] = reflect.TypeOf((*VirtualDeviceConfigSpec)(nil)).Elem() -} - -type VirtualDeviceConfigSpecBackingSpec struct { - DynamicData - - Parent *VirtualDeviceConfigSpecBackingSpec `xml:"parent,omitempty"` - Crypto BaseCryptoSpec `xml:"crypto,omitempty,typeattr"` -} - -func init() { - t["VirtualDeviceConfigSpecBackingSpec"] = reflect.TypeOf((*VirtualDeviceConfigSpecBackingSpec)(nil)).Elem() -} - -type VirtualDeviceConnectInfo struct { - DynamicData - - StartConnected bool `xml:"startConnected"` - AllowGuestControl bool `xml:"allowGuestControl"` - Connected bool `xml:"connected"` - Status string `xml:"status,omitempty"` -} - -func init() { - t["VirtualDeviceConnectInfo"] = reflect.TypeOf((*VirtualDeviceConnectInfo)(nil)).Elem() -} - -type VirtualDeviceConnectOption struct { - DynamicData - - StartConnected BoolOption `xml:"startConnected"` - AllowGuestControl BoolOption `xml:"allowGuestControl"` -} - -func init() { - t["VirtualDeviceConnectOption"] = reflect.TypeOf((*VirtualDeviceConnectOption)(nil)).Elem() -} - -type VirtualDeviceDeviceBackingInfo struct { - VirtualDeviceBackingInfo - - DeviceName string `xml:"deviceName"` - UseAutoDetect *bool `xml:"useAutoDetect"` -} - -func init() { - t["VirtualDeviceDeviceBackingInfo"] = reflect.TypeOf((*VirtualDeviceDeviceBackingInfo)(nil)).Elem() -} - -type VirtualDeviceDeviceBackingOption struct { - VirtualDeviceBackingOption - - AutoDetectAvailable BoolOption `xml:"autoDetectAvailable"` -} - -func init() { - t["VirtualDeviceDeviceBackingOption"] = reflect.TypeOf((*VirtualDeviceDeviceBackingOption)(nil)).Elem() -} - -type VirtualDeviceFileBackingInfo struct { - VirtualDeviceBackingInfo - - FileName string `xml:"fileName"` - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` - BackingObjectId string `xml:"backingObjectId,omitempty"` -} - -func init() { - t["VirtualDeviceFileBackingInfo"] = reflect.TypeOf((*VirtualDeviceFileBackingInfo)(nil)).Elem() -} - -type VirtualDeviceFileBackingOption struct { - VirtualDeviceBackingOption - - FileNameExtensions *ChoiceOption `xml:"fileNameExtensions,omitempty"` -} - -func init() { - t["VirtualDeviceFileBackingOption"] = reflect.TypeOf((*VirtualDeviceFileBackingOption)(nil)).Elem() -} - -type VirtualDeviceOption struct { - DynamicData - - Type string `xml:"type"` - ConnectOption *VirtualDeviceConnectOption `xml:"connectOption,omitempty"` - BusSlotOption *VirtualDeviceBusSlotOption `xml:"busSlotOption,omitempty"` - ControllerType string `xml:"controllerType,omitempty"` - AutoAssignController *BoolOption `xml:"autoAssignController,omitempty"` - BackingOption []BaseVirtualDeviceBackingOption `xml:"backingOption,omitempty,typeattr"` - DefaultBackingOptionIndex int32 `xml:"defaultBackingOptionIndex,omitempty"` - LicensingLimit []string `xml:"licensingLimit,omitempty"` - Deprecated bool `xml:"deprecated"` - PlugAndPlay bool `xml:"plugAndPlay"` - HotRemoveSupported *bool `xml:"hotRemoveSupported"` -} - -func init() { - t["VirtualDeviceOption"] = reflect.TypeOf((*VirtualDeviceOption)(nil)).Elem() -} - -type VirtualDevicePciBusSlotInfo struct { - VirtualDeviceBusSlotInfo - - PciSlotNumber int32 `xml:"pciSlotNumber"` -} - -func init() { - t["VirtualDevicePciBusSlotInfo"] = reflect.TypeOf((*VirtualDevicePciBusSlotInfo)(nil)).Elem() -} - -type VirtualDevicePipeBackingInfo struct { - VirtualDeviceBackingInfo - - PipeName string `xml:"pipeName"` -} - -func init() { - t["VirtualDevicePipeBackingInfo"] = reflect.TypeOf((*VirtualDevicePipeBackingInfo)(nil)).Elem() -} - -type VirtualDevicePipeBackingOption struct { - VirtualDeviceBackingOption -} - -func init() { - t["VirtualDevicePipeBackingOption"] = reflect.TypeOf((*VirtualDevicePipeBackingOption)(nil)).Elem() -} - -type VirtualDeviceRemoteDeviceBackingInfo struct { - VirtualDeviceBackingInfo - - DeviceName string `xml:"deviceName"` - UseAutoDetect *bool `xml:"useAutoDetect"` -} - -func init() { - t["VirtualDeviceRemoteDeviceBackingInfo"] = reflect.TypeOf((*VirtualDeviceRemoteDeviceBackingInfo)(nil)).Elem() -} - -type VirtualDeviceRemoteDeviceBackingOption struct { - VirtualDeviceBackingOption - - AutoDetectAvailable BoolOption `xml:"autoDetectAvailable"` -} - -func init() { - t["VirtualDeviceRemoteDeviceBackingOption"] = reflect.TypeOf((*VirtualDeviceRemoteDeviceBackingOption)(nil)).Elem() -} - -type VirtualDeviceURIBackingInfo struct { - VirtualDeviceBackingInfo - - ServiceURI string `xml:"serviceURI"` - Direction string `xml:"direction"` - ProxyURI string `xml:"proxyURI,omitempty"` -} - -func init() { - t["VirtualDeviceURIBackingInfo"] = reflect.TypeOf((*VirtualDeviceURIBackingInfo)(nil)).Elem() -} - -type VirtualDeviceURIBackingOption struct { - VirtualDeviceBackingOption - - Directions ChoiceOption `xml:"directions"` -} - -func init() { - t["VirtualDeviceURIBackingOption"] = reflect.TypeOf((*VirtualDeviceURIBackingOption)(nil)).Elem() -} - -type VirtualDisk struct { - VirtualDevice - - CapacityInKB int64 `xml:"capacityInKB"` - CapacityInBytes int64 `xml:"capacityInBytes,omitempty"` - Shares *SharesInfo `xml:"shares,omitempty"` - StorageIOAllocation *StorageIOAllocationInfo `xml:"storageIOAllocation,omitempty"` - DiskObjectId string `xml:"diskObjectId,omitempty"` - VFlashCacheConfigInfo *VirtualDiskVFlashCacheConfigInfo `xml:"vFlashCacheConfigInfo,omitempty"` - Iofilter []string `xml:"iofilter,omitempty"` - VDiskId *ID `xml:"vDiskId,omitempty"` -} - -func init() { - t["VirtualDisk"] = reflect.TypeOf((*VirtualDisk)(nil)).Elem() -} - -type VirtualDiskAntiAffinityRuleSpec struct { - ClusterRuleInfo - - DiskId []int32 `xml:"diskId"` -} - -func init() { - t["VirtualDiskAntiAffinityRuleSpec"] = reflect.TypeOf((*VirtualDiskAntiAffinityRuleSpec)(nil)).Elem() -} - -type VirtualDiskBlocksNotFullyProvisioned struct { - DeviceBackingNotSupported -} - -func init() { - t["VirtualDiskBlocksNotFullyProvisioned"] = reflect.TypeOf((*VirtualDiskBlocksNotFullyProvisioned)(nil)).Elem() -} - -type VirtualDiskBlocksNotFullyProvisionedFault VirtualDiskBlocksNotFullyProvisioned - -func init() { - t["VirtualDiskBlocksNotFullyProvisionedFault"] = reflect.TypeOf((*VirtualDiskBlocksNotFullyProvisionedFault)(nil)).Elem() -} - -type VirtualDiskConfigSpec struct { - VirtualDeviceConfigSpec - - DiskMoveType string `xml:"diskMoveType,omitempty"` - MigrateCache *bool `xml:"migrateCache"` -} - -func init() { - t["VirtualDiskConfigSpec"] = reflect.TypeOf((*VirtualDiskConfigSpec)(nil)).Elem() -} - -type VirtualDiskDeltaDiskFormatsSupported struct { - DynamicData - - DatastoreType string `xml:"datastoreType"` - DeltaDiskFormat ChoiceOption `xml:"deltaDiskFormat"` -} - -func init() { - t["VirtualDiskDeltaDiskFormatsSupported"] = reflect.TypeOf((*VirtualDiskDeltaDiskFormatsSupported)(nil)).Elem() -} - -type VirtualDiskFlatVer1BackingInfo struct { - VirtualDeviceFileBackingInfo - - DiskMode string `xml:"diskMode"` - Split *bool `xml:"split"` - WriteThrough *bool `xml:"writeThrough"` - ContentId string `xml:"contentId,omitempty"` - Parent *VirtualDiskFlatVer1BackingInfo `xml:"parent,omitempty"` -} - -func init() { - t["VirtualDiskFlatVer1BackingInfo"] = reflect.TypeOf((*VirtualDiskFlatVer1BackingInfo)(nil)).Elem() -} - -type VirtualDiskFlatVer1BackingOption struct { - VirtualDeviceFileBackingOption - - DiskMode ChoiceOption `xml:"diskMode"` - Split BoolOption `xml:"split"` - WriteThrough BoolOption `xml:"writeThrough"` - Growable bool `xml:"growable"` -} - -func init() { - t["VirtualDiskFlatVer1BackingOption"] = reflect.TypeOf((*VirtualDiskFlatVer1BackingOption)(nil)).Elem() -} - -type VirtualDiskFlatVer2BackingInfo struct { - VirtualDeviceFileBackingInfo - - DiskMode string `xml:"diskMode"` - Split *bool `xml:"split"` - WriteThrough *bool `xml:"writeThrough"` - ThinProvisioned *bool `xml:"thinProvisioned"` - EagerlyScrub *bool `xml:"eagerlyScrub"` - Uuid string `xml:"uuid,omitempty"` - ContentId string `xml:"contentId,omitempty"` - ChangeId string `xml:"changeId,omitempty"` - Parent *VirtualDiskFlatVer2BackingInfo `xml:"parent,omitempty"` - DeltaDiskFormat string `xml:"deltaDiskFormat,omitempty"` - DigestEnabled *bool `xml:"digestEnabled"` - DeltaGrainSize int32 `xml:"deltaGrainSize,omitempty"` - DeltaDiskFormatVariant string `xml:"deltaDiskFormatVariant,omitempty"` - Sharing string `xml:"sharing,omitempty"` - KeyId *CryptoKeyId `xml:"keyId,omitempty"` -} - -func init() { - t["VirtualDiskFlatVer2BackingInfo"] = reflect.TypeOf((*VirtualDiskFlatVer2BackingInfo)(nil)).Elem() -} - -type VirtualDiskFlatVer2BackingOption struct { - VirtualDeviceFileBackingOption - - DiskMode ChoiceOption `xml:"diskMode"` - Split BoolOption `xml:"split"` - WriteThrough BoolOption `xml:"writeThrough"` - Growable bool `xml:"growable"` - HotGrowable bool `xml:"hotGrowable"` - Uuid bool `xml:"uuid"` - ThinProvisioned *BoolOption `xml:"thinProvisioned,omitempty"` - EagerlyScrub *BoolOption `xml:"eagerlyScrub,omitempty"` - DeltaDiskFormat *ChoiceOption `xml:"deltaDiskFormat,omitempty"` - DeltaDiskFormatsSupported []VirtualDiskDeltaDiskFormatsSupported `xml:"deltaDiskFormatsSupported,omitempty"` -} - -func init() { - t["VirtualDiskFlatVer2BackingOption"] = reflect.TypeOf((*VirtualDiskFlatVer2BackingOption)(nil)).Elem() -} - -type VirtualDiskId struct { - DynamicData - - Vm ManagedObjectReference `xml:"vm"` - DiskId int32 `xml:"diskId"` -} - -func init() { - t["VirtualDiskId"] = reflect.TypeOf((*VirtualDiskId)(nil)).Elem() -} - -type VirtualDiskModeNotSupported struct { - DeviceNotSupported - - Mode string `xml:"mode"` -} - -func init() { - t["VirtualDiskModeNotSupported"] = reflect.TypeOf((*VirtualDiskModeNotSupported)(nil)).Elem() -} - -type VirtualDiskModeNotSupportedFault VirtualDiskModeNotSupported - -func init() { - t["VirtualDiskModeNotSupportedFault"] = reflect.TypeOf((*VirtualDiskModeNotSupportedFault)(nil)).Elem() -} - -type VirtualDiskOption struct { - VirtualDeviceOption - - CapacityInKB LongOption `xml:"capacityInKB"` - IoAllocationOption *StorageIOAllocationOption `xml:"ioAllocationOption,omitempty"` - VFlashCacheConfigOption *VirtualDiskOptionVFlashCacheConfigOption `xml:"vFlashCacheConfigOption,omitempty"` -} - -func init() { - t["VirtualDiskOption"] = reflect.TypeOf((*VirtualDiskOption)(nil)).Elem() -} - -type VirtualDiskOptionVFlashCacheConfigOption struct { - DynamicData - - CacheConsistencyType ChoiceOption `xml:"cacheConsistencyType"` - CacheMode ChoiceOption `xml:"cacheMode"` - ReservationInMB LongOption `xml:"reservationInMB"` - BlockSizeInKB LongOption `xml:"blockSizeInKB"` -} - -func init() { - t["VirtualDiskOptionVFlashCacheConfigOption"] = reflect.TypeOf((*VirtualDiskOptionVFlashCacheConfigOption)(nil)).Elem() -} - -type VirtualDiskPartitionedRawDiskVer2BackingInfo struct { - VirtualDiskRawDiskVer2BackingInfo - - Partition []int32 `xml:"partition"` -} - -func init() { - t["VirtualDiskPartitionedRawDiskVer2BackingInfo"] = reflect.TypeOf((*VirtualDiskPartitionedRawDiskVer2BackingInfo)(nil)).Elem() -} - -type VirtualDiskPartitionedRawDiskVer2BackingOption struct { - VirtualDiskRawDiskVer2BackingOption -} - -func init() { - t["VirtualDiskPartitionedRawDiskVer2BackingOption"] = reflect.TypeOf((*VirtualDiskPartitionedRawDiskVer2BackingOption)(nil)).Elem() -} - -type VirtualDiskRawDiskMappingVer1BackingInfo struct { - VirtualDeviceFileBackingInfo - - LunUuid string `xml:"lunUuid,omitempty"` - DeviceName string `xml:"deviceName,omitempty"` - CompatibilityMode string `xml:"compatibilityMode,omitempty"` - DiskMode string `xml:"diskMode,omitempty"` - Uuid string `xml:"uuid,omitempty"` - ContentId string `xml:"contentId,omitempty"` - ChangeId string `xml:"changeId,omitempty"` - Parent *VirtualDiskRawDiskMappingVer1BackingInfo `xml:"parent,omitempty"` - Sharing string `xml:"sharing,omitempty"` -} - -func init() { - t["VirtualDiskRawDiskMappingVer1BackingInfo"] = reflect.TypeOf((*VirtualDiskRawDiskMappingVer1BackingInfo)(nil)).Elem() -} - -type VirtualDiskRawDiskMappingVer1BackingOption struct { - VirtualDeviceDeviceBackingOption - - DescriptorFileNameExtensions *ChoiceOption `xml:"descriptorFileNameExtensions,omitempty"` - CompatibilityMode ChoiceOption `xml:"compatibilityMode"` - DiskMode ChoiceOption `xml:"diskMode"` - Uuid bool `xml:"uuid"` -} - -func init() { - t["VirtualDiskRawDiskMappingVer1BackingOption"] = reflect.TypeOf((*VirtualDiskRawDiskMappingVer1BackingOption)(nil)).Elem() -} - -type VirtualDiskRawDiskVer2BackingInfo struct { - VirtualDeviceDeviceBackingInfo - - DescriptorFileName string `xml:"descriptorFileName"` - Uuid string `xml:"uuid,omitempty"` - ChangeId string `xml:"changeId,omitempty"` - Sharing string `xml:"sharing,omitempty"` -} - -func init() { - t["VirtualDiskRawDiskVer2BackingInfo"] = reflect.TypeOf((*VirtualDiskRawDiskVer2BackingInfo)(nil)).Elem() -} - -type VirtualDiskRawDiskVer2BackingOption struct { - VirtualDeviceDeviceBackingOption - - DescriptorFileNameExtensions ChoiceOption `xml:"descriptorFileNameExtensions"` - Uuid bool `xml:"uuid"` -} - -func init() { - t["VirtualDiskRawDiskVer2BackingOption"] = reflect.TypeOf((*VirtualDiskRawDiskVer2BackingOption)(nil)).Elem() -} - -type VirtualDiskSeSparseBackingInfo struct { - VirtualDeviceFileBackingInfo - - DiskMode string `xml:"diskMode"` - WriteThrough *bool `xml:"writeThrough"` - Uuid string `xml:"uuid,omitempty"` - ContentId string `xml:"contentId,omitempty"` - ChangeId string `xml:"changeId,omitempty"` - Parent *VirtualDiskSeSparseBackingInfo `xml:"parent,omitempty"` - DeltaDiskFormat string `xml:"deltaDiskFormat,omitempty"` - DigestEnabled *bool `xml:"digestEnabled"` - GrainSize int32 `xml:"grainSize,omitempty"` - KeyId *CryptoKeyId `xml:"keyId,omitempty"` -} - -func init() { - t["VirtualDiskSeSparseBackingInfo"] = reflect.TypeOf((*VirtualDiskSeSparseBackingInfo)(nil)).Elem() -} - -type VirtualDiskSeSparseBackingOption struct { - VirtualDeviceFileBackingOption - - DiskMode ChoiceOption `xml:"diskMode"` - WriteThrough BoolOption `xml:"writeThrough"` - Growable bool `xml:"growable"` - HotGrowable bool `xml:"hotGrowable"` - Uuid bool `xml:"uuid"` - DeltaDiskFormatsSupported []VirtualDiskDeltaDiskFormatsSupported `xml:"deltaDiskFormatsSupported"` -} - -func init() { - t["VirtualDiskSeSparseBackingOption"] = reflect.TypeOf((*VirtualDiskSeSparseBackingOption)(nil)).Elem() -} - -type VirtualDiskSparseVer1BackingInfo struct { - VirtualDeviceFileBackingInfo - - DiskMode string `xml:"diskMode"` - Split *bool `xml:"split"` - WriteThrough *bool `xml:"writeThrough"` - SpaceUsedInKB int64 `xml:"spaceUsedInKB,omitempty"` - ContentId string `xml:"contentId,omitempty"` - Parent *VirtualDiskSparseVer1BackingInfo `xml:"parent,omitempty"` -} - -func init() { - t["VirtualDiskSparseVer1BackingInfo"] = reflect.TypeOf((*VirtualDiskSparseVer1BackingInfo)(nil)).Elem() -} - -type VirtualDiskSparseVer1BackingOption struct { - VirtualDeviceFileBackingOption - - DiskModes ChoiceOption `xml:"diskModes"` - Split BoolOption `xml:"split"` - WriteThrough BoolOption `xml:"writeThrough"` - Growable bool `xml:"growable"` -} - -func init() { - t["VirtualDiskSparseVer1BackingOption"] = reflect.TypeOf((*VirtualDiskSparseVer1BackingOption)(nil)).Elem() -} - -type VirtualDiskSparseVer2BackingInfo struct { - VirtualDeviceFileBackingInfo - - DiskMode string `xml:"diskMode"` - Split *bool `xml:"split"` - WriteThrough *bool `xml:"writeThrough"` - SpaceUsedInKB int64 `xml:"spaceUsedInKB,omitempty"` - Uuid string `xml:"uuid,omitempty"` - ContentId string `xml:"contentId,omitempty"` - ChangeId string `xml:"changeId,omitempty"` - Parent *VirtualDiskSparseVer2BackingInfo `xml:"parent,omitempty"` - KeyId *CryptoKeyId `xml:"keyId,omitempty"` -} - -func init() { - t["VirtualDiskSparseVer2BackingInfo"] = reflect.TypeOf((*VirtualDiskSparseVer2BackingInfo)(nil)).Elem() -} - -type VirtualDiskSparseVer2BackingOption struct { - VirtualDeviceFileBackingOption - - DiskMode ChoiceOption `xml:"diskMode"` - Split BoolOption `xml:"split"` - WriteThrough BoolOption `xml:"writeThrough"` - Growable bool `xml:"growable"` - HotGrowable bool `xml:"hotGrowable"` - Uuid bool `xml:"uuid"` -} - -func init() { - t["VirtualDiskSparseVer2BackingOption"] = reflect.TypeOf((*VirtualDiskSparseVer2BackingOption)(nil)).Elem() -} - -type VirtualDiskSpec struct { - DynamicData - - DiskType string `xml:"diskType"` - AdapterType string `xml:"adapterType"` -} - -func init() { - t["VirtualDiskSpec"] = reflect.TypeOf((*VirtualDiskSpec)(nil)).Elem() -} - -type VirtualDiskVFlashCacheConfigInfo struct { - DynamicData - - VFlashModule string `xml:"vFlashModule,omitempty"` - ReservationInMB int64 `xml:"reservationInMB,omitempty"` - CacheConsistencyType string `xml:"cacheConsistencyType,omitempty"` - CacheMode string `xml:"cacheMode,omitempty"` - BlockSizeInKB int64 `xml:"blockSizeInKB,omitempty"` -} - -func init() { - t["VirtualDiskVFlashCacheConfigInfo"] = reflect.TypeOf((*VirtualDiskVFlashCacheConfigInfo)(nil)).Elem() -} - -type VirtualE1000 struct { - VirtualEthernetCard -} - -func init() { - t["VirtualE1000"] = reflect.TypeOf((*VirtualE1000)(nil)).Elem() -} - -type VirtualE1000Option struct { - VirtualEthernetCardOption -} - -func init() { - t["VirtualE1000Option"] = reflect.TypeOf((*VirtualE1000Option)(nil)).Elem() -} - -type VirtualE1000e struct { - VirtualEthernetCard -} - -func init() { - t["VirtualE1000e"] = reflect.TypeOf((*VirtualE1000e)(nil)).Elem() -} - -type VirtualE1000eOption struct { - VirtualEthernetCardOption -} - -func init() { - t["VirtualE1000eOption"] = reflect.TypeOf((*VirtualE1000eOption)(nil)).Elem() -} - -type VirtualEnsoniq1371 struct { - VirtualSoundCard -} - -func init() { - t["VirtualEnsoniq1371"] = reflect.TypeOf((*VirtualEnsoniq1371)(nil)).Elem() -} - -type VirtualEnsoniq1371Option struct { - VirtualSoundCardOption -} - -func init() { - t["VirtualEnsoniq1371Option"] = reflect.TypeOf((*VirtualEnsoniq1371Option)(nil)).Elem() -} - -type VirtualEthernetCard struct { - VirtualDevice - - AddressType string `xml:"addressType,omitempty"` - MacAddress string `xml:"macAddress,omitempty"` - WakeOnLanEnabled *bool `xml:"wakeOnLanEnabled"` - ResourceAllocation *VirtualEthernetCardResourceAllocation `xml:"resourceAllocation,omitempty"` - ExternalId string `xml:"externalId,omitempty"` - UptCompatibilityEnabled *bool `xml:"uptCompatibilityEnabled"` -} - -func init() { - t["VirtualEthernetCard"] = reflect.TypeOf((*VirtualEthernetCard)(nil)).Elem() -} - -type VirtualEthernetCardDVPortBackingOption struct { - VirtualDeviceBackingOption -} - -func init() { - t["VirtualEthernetCardDVPortBackingOption"] = reflect.TypeOf((*VirtualEthernetCardDVPortBackingOption)(nil)).Elem() -} - -type VirtualEthernetCardDistributedVirtualPortBackingInfo struct { - VirtualDeviceBackingInfo - - Port DistributedVirtualSwitchPortConnection `xml:"port"` -} - -func init() { - t["VirtualEthernetCardDistributedVirtualPortBackingInfo"] = reflect.TypeOf((*VirtualEthernetCardDistributedVirtualPortBackingInfo)(nil)).Elem() -} - -type VirtualEthernetCardLegacyNetworkBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualEthernetCardLegacyNetworkBackingInfo"] = reflect.TypeOf((*VirtualEthernetCardLegacyNetworkBackingInfo)(nil)).Elem() -} - -type VirtualEthernetCardLegacyNetworkBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualEthernetCardLegacyNetworkBackingOption"] = reflect.TypeOf((*VirtualEthernetCardLegacyNetworkBackingOption)(nil)).Elem() -} - -type VirtualEthernetCardNetworkBackingInfo struct { - VirtualDeviceDeviceBackingInfo - - Network *ManagedObjectReference `xml:"network,omitempty"` - InPassthroughMode *bool `xml:"inPassthroughMode"` -} - -func init() { - t["VirtualEthernetCardNetworkBackingInfo"] = reflect.TypeOf((*VirtualEthernetCardNetworkBackingInfo)(nil)).Elem() -} - -type VirtualEthernetCardNetworkBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualEthernetCardNetworkBackingOption"] = reflect.TypeOf((*VirtualEthernetCardNetworkBackingOption)(nil)).Elem() -} - -type VirtualEthernetCardNotSupported struct { - DeviceNotSupported -} - -func init() { - t["VirtualEthernetCardNotSupported"] = reflect.TypeOf((*VirtualEthernetCardNotSupported)(nil)).Elem() -} - -type VirtualEthernetCardNotSupportedFault VirtualEthernetCardNotSupported - -func init() { - t["VirtualEthernetCardNotSupportedFault"] = reflect.TypeOf((*VirtualEthernetCardNotSupportedFault)(nil)).Elem() -} - -type VirtualEthernetCardOpaqueNetworkBackingInfo struct { - VirtualDeviceBackingInfo - - OpaqueNetworkId string `xml:"opaqueNetworkId"` - OpaqueNetworkType string `xml:"opaqueNetworkType"` -} - -func init() { - t["VirtualEthernetCardOpaqueNetworkBackingInfo"] = reflect.TypeOf((*VirtualEthernetCardOpaqueNetworkBackingInfo)(nil)).Elem() -} - -type VirtualEthernetCardOpaqueNetworkBackingOption struct { - VirtualDeviceBackingOption -} - -func init() { - t["VirtualEthernetCardOpaqueNetworkBackingOption"] = reflect.TypeOf((*VirtualEthernetCardOpaqueNetworkBackingOption)(nil)).Elem() -} - -type VirtualEthernetCardOption struct { - VirtualDeviceOption - - SupportedOUI ChoiceOption `xml:"supportedOUI"` - MacType ChoiceOption `xml:"macType"` - WakeOnLanEnabled BoolOption `xml:"wakeOnLanEnabled"` - VmDirectPathGen2Supported *bool `xml:"vmDirectPathGen2Supported"` - UptCompatibilityEnabled *BoolOption `xml:"uptCompatibilityEnabled,omitempty"` -} - -func init() { - t["VirtualEthernetCardOption"] = reflect.TypeOf((*VirtualEthernetCardOption)(nil)).Elem() -} - -type VirtualEthernetCardResourceAllocation struct { - DynamicData - - Reservation int64 `xml:"reservation,omitempty"` - Share SharesInfo `xml:"share"` - Limit int64 `xml:"limit,omitempty"` -} - -func init() { - t["VirtualEthernetCardResourceAllocation"] = reflect.TypeOf((*VirtualEthernetCardResourceAllocation)(nil)).Elem() -} - -type VirtualFloppy struct { - VirtualDevice -} - -func init() { - t["VirtualFloppy"] = reflect.TypeOf((*VirtualFloppy)(nil)).Elem() -} - -type VirtualFloppyDeviceBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualFloppyDeviceBackingInfo"] = reflect.TypeOf((*VirtualFloppyDeviceBackingInfo)(nil)).Elem() -} - -type VirtualFloppyDeviceBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualFloppyDeviceBackingOption"] = reflect.TypeOf((*VirtualFloppyDeviceBackingOption)(nil)).Elem() -} - -type VirtualFloppyImageBackingInfo struct { - VirtualDeviceFileBackingInfo -} - -func init() { - t["VirtualFloppyImageBackingInfo"] = reflect.TypeOf((*VirtualFloppyImageBackingInfo)(nil)).Elem() -} - -type VirtualFloppyImageBackingOption struct { - VirtualDeviceFileBackingOption -} - -func init() { - t["VirtualFloppyImageBackingOption"] = reflect.TypeOf((*VirtualFloppyImageBackingOption)(nil)).Elem() -} - -type VirtualFloppyOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualFloppyOption"] = reflect.TypeOf((*VirtualFloppyOption)(nil)).Elem() -} - -type VirtualFloppyRemoteDeviceBackingInfo struct { - VirtualDeviceRemoteDeviceBackingInfo -} - -func init() { - t["VirtualFloppyRemoteDeviceBackingInfo"] = reflect.TypeOf((*VirtualFloppyRemoteDeviceBackingInfo)(nil)).Elem() -} - -type VirtualFloppyRemoteDeviceBackingOption struct { - VirtualDeviceRemoteDeviceBackingOption -} - -func init() { - t["VirtualFloppyRemoteDeviceBackingOption"] = reflect.TypeOf((*VirtualFloppyRemoteDeviceBackingOption)(nil)).Elem() -} - -type VirtualHardware struct { - DynamicData - - NumCPU int32 `xml:"numCPU"` - NumCoresPerSocket int32 `xml:"numCoresPerSocket,omitempty"` - MemoryMB int32 `xml:"memoryMB"` - VirtualICH7MPresent *bool `xml:"virtualICH7MPresent"` - VirtualSMCPresent *bool `xml:"virtualSMCPresent"` - Device []BaseVirtualDevice `xml:"device,omitempty,typeattr"` -} - -func init() { - t["VirtualHardware"] = reflect.TypeOf((*VirtualHardware)(nil)).Elem() -} - -type VirtualHardwareCompatibilityIssue struct { - VmConfigFault -} - -func init() { - t["VirtualHardwareCompatibilityIssue"] = reflect.TypeOf((*VirtualHardwareCompatibilityIssue)(nil)).Elem() -} - -type VirtualHardwareCompatibilityIssueFault BaseVirtualHardwareCompatibilityIssue - -func init() { - t["VirtualHardwareCompatibilityIssueFault"] = reflect.TypeOf((*VirtualHardwareCompatibilityIssueFault)(nil)).Elem() -} - -type VirtualHardwareOption struct { - DynamicData - - HwVersion int32 `xml:"hwVersion"` - VirtualDeviceOption []BaseVirtualDeviceOption `xml:"virtualDeviceOption,typeattr"` - DeviceListReadonly bool `xml:"deviceListReadonly"` - NumCPU []int32 `xml:"numCPU"` - NumCoresPerSocket *IntOption `xml:"numCoresPerSocket,omitempty"` - NumCpuReadonly bool `xml:"numCpuReadonly"` - MemoryMB LongOption `xml:"memoryMB"` - NumPCIControllers IntOption `xml:"numPCIControllers"` - NumIDEControllers IntOption `xml:"numIDEControllers"` - NumUSBControllers IntOption `xml:"numUSBControllers"` - NumUSBXHCIControllers *IntOption `xml:"numUSBXHCIControllers,omitempty"` - NumSIOControllers IntOption `xml:"numSIOControllers"` - NumPS2Controllers IntOption `xml:"numPS2Controllers"` - LicensingLimit []string `xml:"licensingLimit,omitempty"` - NumSupportedWwnPorts *IntOption `xml:"numSupportedWwnPorts,omitempty"` - NumSupportedWwnNodes *IntOption `xml:"numSupportedWwnNodes,omitempty"` - ResourceConfigOption *ResourceConfigOption `xml:"resourceConfigOption,omitempty"` -} - -func init() { - t["VirtualHardwareOption"] = reflect.TypeOf((*VirtualHardwareOption)(nil)).Elem() -} - -type VirtualHardwareVersionNotSupported struct { - VirtualHardwareCompatibilityIssue - - HostName string `xml:"hostName"` - Host ManagedObjectReference `xml:"host"` -} - -func init() { - t["VirtualHardwareVersionNotSupported"] = reflect.TypeOf((*VirtualHardwareVersionNotSupported)(nil)).Elem() -} - -type VirtualHardwareVersionNotSupportedFault VirtualHardwareVersionNotSupported - -func init() { - t["VirtualHardwareVersionNotSupportedFault"] = reflect.TypeOf((*VirtualHardwareVersionNotSupportedFault)(nil)).Elem() -} - -type VirtualHdAudioCard struct { - VirtualSoundCard -} - -func init() { - t["VirtualHdAudioCard"] = reflect.TypeOf((*VirtualHdAudioCard)(nil)).Elem() -} - -type VirtualHdAudioCardOption struct { - VirtualSoundCardOption -} - -func init() { - t["VirtualHdAudioCardOption"] = reflect.TypeOf((*VirtualHdAudioCardOption)(nil)).Elem() -} - -type VirtualIDEController struct { - VirtualController -} - -func init() { - t["VirtualIDEController"] = reflect.TypeOf((*VirtualIDEController)(nil)).Elem() -} - -type VirtualIDEControllerOption struct { - VirtualControllerOption - - NumIDEDisks IntOption `xml:"numIDEDisks"` - NumIDECdroms IntOption `xml:"numIDECdroms"` -} - -func init() { - t["VirtualIDEControllerOption"] = reflect.TypeOf((*VirtualIDEControllerOption)(nil)).Elem() -} - -type VirtualKeyboard struct { - VirtualDevice -} - -func init() { - t["VirtualKeyboard"] = reflect.TypeOf((*VirtualKeyboard)(nil)).Elem() -} - -type VirtualKeyboardOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualKeyboardOption"] = reflect.TypeOf((*VirtualKeyboardOption)(nil)).Elem() -} - -type VirtualLsiLogicController struct { - VirtualSCSIController -} - -func init() { - t["VirtualLsiLogicController"] = reflect.TypeOf((*VirtualLsiLogicController)(nil)).Elem() -} - -type VirtualLsiLogicControllerOption struct { - VirtualSCSIControllerOption -} - -func init() { - t["VirtualLsiLogicControllerOption"] = reflect.TypeOf((*VirtualLsiLogicControllerOption)(nil)).Elem() -} - -type VirtualLsiLogicSASController struct { - VirtualSCSIController -} - -func init() { - t["VirtualLsiLogicSASController"] = reflect.TypeOf((*VirtualLsiLogicSASController)(nil)).Elem() -} - -type VirtualLsiLogicSASControllerOption struct { - VirtualSCSIControllerOption -} - -func init() { - t["VirtualLsiLogicSASControllerOption"] = reflect.TypeOf((*VirtualLsiLogicSASControllerOption)(nil)).Elem() -} - -type VirtualMachineAffinityInfo struct { - DynamicData - - AffinitySet []int32 `xml:"affinitySet,omitempty"` -} - -func init() { - t["VirtualMachineAffinityInfo"] = reflect.TypeOf((*VirtualMachineAffinityInfo)(nil)).Elem() -} - -type VirtualMachineBootOptions struct { - DynamicData - - BootDelay int64 `xml:"bootDelay,omitempty"` - EnterBIOSSetup *bool `xml:"enterBIOSSetup"` - EfiSecureBootEnabled *bool `xml:"efiSecureBootEnabled"` - BootRetryEnabled *bool `xml:"bootRetryEnabled"` - BootRetryDelay int64 `xml:"bootRetryDelay,omitempty"` - BootOrder []BaseVirtualMachineBootOptionsBootableDevice `xml:"bootOrder,omitempty,typeattr"` - NetworkBootProtocol string `xml:"networkBootProtocol,omitempty"` -} - -func init() { - t["VirtualMachineBootOptions"] = reflect.TypeOf((*VirtualMachineBootOptions)(nil)).Elem() -} - -type VirtualMachineBootOptionsBootableCdromDevice struct { - VirtualMachineBootOptionsBootableDevice -} - -func init() { - t["VirtualMachineBootOptionsBootableCdromDevice"] = reflect.TypeOf((*VirtualMachineBootOptionsBootableCdromDevice)(nil)).Elem() -} - -type VirtualMachineBootOptionsBootableDevice struct { - DynamicData -} - -func init() { - t["VirtualMachineBootOptionsBootableDevice"] = reflect.TypeOf((*VirtualMachineBootOptionsBootableDevice)(nil)).Elem() -} - -type VirtualMachineBootOptionsBootableDiskDevice struct { - VirtualMachineBootOptionsBootableDevice - - DeviceKey int32 `xml:"deviceKey"` -} - -func init() { - t["VirtualMachineBootOptionsBootableDiskDevice"] = reflect.TypeOf((*VirtualMachineBootOptionsBootableDiskDevice)(nil)).Elem() -} - -type VirtualMachineBootOptionsBootableEthernetDevice struct { - VirtualMachineBootOptionsBootableDevice - - DeviceKey int32 `xml:"deviceKey"` -} - -func init() { - t["VirtualMachineBootOptionsBootableEthernetDevice"] = reflect.TypeOf((*VirtualMachineBootOptionsBootableEthernetDevice)(nil)).Elem() -} - -type VirtualMachineBootOptionsBootableFloppyDevice struct { - VirtualMachineBootOptionsBootableDevice -} - -func init() { - t["VirtualMachineBootOptionsBootableFloppyDevice"] = reflect.TypeOf((*VirtualMachineBootOptionsBootableFloppyDevice)(nil)).Elem() -} - -type VirtualMachineCapability struct { - DynamicData - - SnapshotOperationsSupported bool `xml:"snapshotOperationsSupported"` - MultipleSnapshotsSupported bool `xml:"multipleSnapshotsSupported"` - SnapshotConfigSupported bool `xml:"snapshotConfigSupported"` - PoweredOffSnapshotsSupported bool `xml:"poweredOffSnapshotsSupported"` - MemorySnapshotsSupported bool `xml:"memorySnapshotsSupported"` - RevertToSnapshotSupported bool `xml:"revertToSnapshotSupported"` - QuiescedSnapshotsSupported bool `xml:"quiescedSnapshotsSupported"` - DisableSnapshotsSupported bool `xml:"disableSnapshotsSupported"` - LockSnapshotsSupported bool `xml:"lockSnapshotsSupported"` - ConsolePreferencesSupported bool `xml:"consolePreferencesSupported"` - CpuFeatureMaskSupported bool `xml:"cpuFeatureMaskSupported"` - S1AcpiManagementSupported bool `xml:"s1AcpiManagementSupported"` - SettingScreenResolutionSupported bool `xml:"settingScreenResolutionSupported"` - ToolsAutoUpdateSupported bool `xml:"toolsAutoUpdateSupported"` - VmNpivWwnSupported bool `xml:"vmNpivWwnSupported"` - NpivWwnOnNonRdmVmSupported bool `xml:"npivWwnOnNonRdmVmSupported"` - VmNpivWwnDisableSupported *bool `xml:"vmNpivWwnDisableSupported"` - VmNpivWwnUpdateSupported *bool `xml:"vmNpivWwnUpdateSupported"` - SwapPlacementSupported bool `xml:"swapPlacementSupported"` - ToolsSyncTimeSupported bool `xml:"toolsSyncTimeSupported"` - VirtualMmuUsageSupported bool `xml:"virtualMmuUsageSupported"` - DiskSharesSupported bool `xml:"diskSharesSupported"` - BootOptionsSupported bool `xml:"bootOptionsSupported"` - BootRetryOptionsSupported *bool `xml:"bootRetryOptionsSupported"` - SettingVideoRamSizeSupported bool `xml:"settingVideoRamSizeSupported"` - SettingDisplayTopologySupported *bool `xml:"settingDisplayTopologySupported"` - RecordReplaySupported *bool `xml:"recordReplaySupported"` - ChangeTrackingSupported *bool `xml:"changeTrackingSupported"` - MultipleCoresPerSocketSupported *bool `xml:"multipleCoresPerSocketSupported"` - HostBasedReplicationSupported *bool `xml:"hostBasedReplicationSupported"` - GuestAutoLockSupported *bool `xml:"guestAutoLockSupported"` - MemoryReservationLockSupported *bool `xml:"memoryReservationLockSupported"` - FeatureRequirementSupported *bool `xml:"featureRequirementSupported"` - PoweredOnMonitorTypeChangeSupported *bool `xml:"poweredOnMonitorTypeChangeSupported"` - SeSparseDiskSupported *bool `xml:"seSparseDiskSupported"` - NestedHVSupported *bool `xml:"nestedHVSupported"` - VPMCSupported *bool `xml:"vPMCSupported"` - SecureBootSupported *bool `xml:"secureBootSupported"` -} - -func init() { - t["VirtualMachineCapability"] = reflect.TypeOf((*VirtualMachineCapability)(nil)).Elem() -} - -type VirtualMachineCdromInfo struct { - VirtualMachineTargetInfo - - Description string `xml:"description,omitempty"` -} - -func init() { - t["VirtualMachineCdromInfo"] = reflect.TypeOf((*VirtualMachineCdromInfo)(nil)).Elem() -} - -type VirtualMachineCloneSpec struct { - DynamicData - - Location VirtualMachineRelocateSpec `xml:"location"` - Template bool `xml:"template"` - Config *VirtualMachineConfigSpec `xml:"config,omitempty"` - Customization *CustomizationSpec `xml:"customization,omitempty"` - PowerOn bool `xml:"powerOn"` - Snapshot *ManagedObjectReference `xml:"snapshot,omitempty"` - Memory *bool `xml:"memory"` -} - -func init() { - t["VirtualMachineCloneSpec"] = reflect.TypeOf((*VirtualMachineCloneSpec)(nil)).Elem() -} - -type VirtualMachineConfigInfo struct { - DynamicData - - ChangeVersion string `xml:"changeVersion"` - Modified time.Time `xml:"modified"` - Name string `xml:"name"` - GuestFullName string `xml:"guestFullName"` - Version string `xml:"version"` - Uuid string `xml:"uuid"` - InstanceUuid string `xml:"instanceUuid,omitempty"` - NpivNodeWorldWideName []int64 `xml:"npivNodeWorldWideName,omitempty"` - NpivPortWorldWideName []int64 `xml:"npivPortWorldWideName,omitempty"` - NpivWorldWideNameType string `xml:"npivWorldWideNameType,omitempty"` - NpivDesiredNodeWwns int16 `xml:"npivDesiredNodeWwns,omitempty"` - NpivDesiredPortWwns int16 `xml:"npivDesiredPortWwns,omitempty"` - NpivTemporaryDisabled *bool `xml:"npivTemporaryDisabled"` - NpivOnNonRdmDisks *bool `xml:"npivOnNonRdmDisks"` - LocationId string `xml:"locationId,omitempty"` - Template bool `xml:"template"` - GuestId string `xml:"guestId"` - AlternateGuestName string `xml:"alternateGuestName"` - Annotation string `xml:"annotation,omitempty"` - Files VirtualMachineFileInfo `xml:"files"` - Tools *ToolsConfigInfo `xml:"tools,omitempty"` - Flags VirtualMachineFlagInfo `xml:"flags"` - ConsolePreferences *VirtualMachineConsolePreferences `xml:"consolePreferences,omitempty"` - DefaultPowerOps VirtualMachineDefaultPowerOpInfo `xml:"defaultPowerOps"` - Hardware VirtualHardware `xml:"hardware"` - CpuAllocation BaseResourceAllocationInfo `xml:"cpuAllocation,omitempty,typeattr"` - MemoryAllocation BaseResourceAllocationInfo `xml:"memoryAllocation,omitempty,typeattr"` - LatencySensitivity *LatencySensitivity `xml:"latencySensitivity,omitempty"` - MemoryHotAddEnabled *bool `xml:"memoryHotAddEnabled"` - CpuHotAddEnabled *bool `xml:"cpuHotAddEnabled"` - CpuHotRemoveEnabled *bool `xml:"cpuHotRemoveEnabled"` - HotPlugMemoryLimit int64 `xml:"hotPlugMemoryLimit,omitempty"` - HotPlugMemoryIncrementSize int64 `xml:"hotPlugMemoryIncrementSize,omitempty"` - CpuAffinity *VirtualMachineAffinityInfo `xml:"cpuAffinity,omitempty"` - MemoryAffinity *VirtualMachineAffinityInfo `xml:"memoryAffinity,omitempty"` - NetworkShaper *VirtualMachineNetworkShaperInfo `xml:"networkShaper,omitempty"` - ExtraConfig []BaseOptionValue `xml:"extraConfig,omitempty,typeattr"` - CpuFeatureMask []HostCpuIdInfo `xml:"cpuFeatureMask,omitempty"` - DatastoreUrl []VirtualMachineConfigInfoDatastoreUrlPair `xml:"datastoreUrl,omitempty"` - SwapPlacement string `xml:"swapPlacement,omitempty"` - BootOptions *VirtualMachineBootOptions `xml:"bootOptions,omitempty"` - FtInfo BaseFaultToleranceConfigInfo `xml:"ftInfo,omitempty,typeattr"` - RepConfig *ReplicationConfigSpec `xml:"repConfig,omitempty"` - VAppConfig BaseVmConfigInfo `xml:"vAppConfig,omitempty,typeattr"` - VAssertsEnabled *bool `xml:"vAssertsEnabled"` - ChangeTrackingEnabled *bool `xml:"changeTrackingEnabled"` - Firmware string `xml:"firmware,omitempty"` - MaxMksConnections int32 `xml:"maxMksConnections,omitempty"` - GuestAutoLockEnabled *bool `xml:"guestAutoLockEnabled"` - ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` - MemoryReservationLockedToMax *bool `xml:"memoryReservationLockedToMax"` - InitialOverhead *VirtualMachineConfigInfoOverheadInfo `xml:"initialOverhead,omitempty"` - NestedHVEnabled *bool `xml:"nestedHVEnabled"` - VPMCEnabled *bool `xml:"vPMCEnabled"` - ScheduledHardwareUpgradeInfo *ScheduledHardwareUpgradeInfo `xml:"scheduledHardwareUpgradeInfo,omitempty"` - ForkConfigInfo *VirtualMachineForkConfigInfo `xml:"forkConfigInfo,omitempty"` - VFlashCacheReservation int64 `xml:"vFlashCacheReservation,omitempty"` - VmxConfigChecksum []byte `xml:"vmxConfigChecksum,omitempty"` - MessageBusTunnelEnabled *bool `xml:"messageBusTunnelEnabled"` - VmStorageObjectId string `xml:"vmStorageObjectId,omitempty"` - SwapStorageObjectId string `xml:"swapStorageObjectId,omitempty"` - KeyId *CryptoKeyId `xml:"keyId,omitempty"` - GuestIntegrityInfo *VirtualMachineGuestIntegrityInfo `xml:"guestIntegrityInfo,omitempty"` - MigrateEncryption string `xml:"migrateEncryption,omitempty"` -} - -func init() { - t["VirtualMachineConfigInfo"] = reflect.TypeOf((*VirtualMachineConfigInfo)(nil)).Elem() -} - -type VirtualMachineConfigInfoDatastoreUrlPair struct { - DynamicData - - Name string `xml:"name"` - Url string `xml:"url"` -} - -func init() { - t["VirtualMachineConfigInfoDatastoreUrlPair"] = reflect.TypeOf((*VirtualMachineConfigInfoDatastoreUrlPair)(nil)).Elem() -} - -type VirtualMachineConfigInfoOverheadInfo struct { - DynamicData - - InitialMemoryReservation int64 `xml:"initialMemoryReservation,omitempty"` - InitialSwapReservation int64 `xml:"initialSwapReservation,omitempty"` -} - -func init() { - t["VirtualMachineConfigInfoOverheadInfo"] = reflect.TypeOf((*VirtualMachineConfigInfoOverheadInfo)(nil)).Elem() -} - -type VirtualMachineConfigOption struct { - DynamicData - - Version string `xml:"version"` - Description string `xml:"description"` - GuestOSDescriptor []GuestOsDescriptor `xml:"guestOSDescriptor"` - GuestOSDefaultIndex int32 `xml:"guestOSDefaultIndex"` - HardwareOptions VirtualHardwareOption `xml:"hardwareOptions"` - Capabilities VirtualMachineCapability `xml:"capabilities"` - Datastore DatastoreOption `xml:"datastore"` - DefaultDevice []BaseVirtualDevice `xml:"defaultDevice,omitempty,typeattr"` - SupportedMonitorType []string `xml:"supportedMonitorType"` - SupportedOvfEnvironmentTransport []string `xml:"supportedOvfEnvironmentTransport,omitempty"` - SupportedOvfInstallTransport []string `xml:"supportedOvfInstallTransport,omitempty"` -} - -func init() { - t["VirtualMachineConfigOption"] = reflect.TypeOf((*VirtualMachineConfigOption)(nil)).Elem() -} - -type VirtualMachineConfigOptionDescriptor struct { - DynamicData - - Key string `xml:"key"` - Description string `xml:"description,omitempty"` - Host []ManagedObjectReference `xml:"host,omitempty"` - CreateSupported *bool `xml:"createSupported"` - DefaultConfigOption *bool `xml:"defaultConfigOption"` - RunSupported *bool `xml:"runSupported"` - UpgradeSupported *bool `xml:"upgradeSupported"` -} - -func init() { - t["VirtualMachineConfigOptionDescriptor"] = reflect.TypeOf((*VirtualMachineConfigOptionDescriptor)(nil)).Elem() -} - -type VirtualMachineConfigSpec struct { - DynamicData - - ChangeVersion string `xml:"changeVersion,omitempty"` - Name string `xml:"name,omitempty"` - Version string `xml:"version,omitempty"` - Uuid string `xml:"uuid,omitempty"` - InstanceUuid string `xml:"instanceUuid,omitempty"` - NpivNodeWorldWideName []int64 `xml:"npivNodeWorldWideName,omitempty"` - NpivPortWorldWideName []int64 `xml:"npivPortWorldWideName,omitempty"` - NpivWorldWideNameType string `xml:"npivWorldWideNameType,omitempty"` - NpivDesiredNodeWwns int16 `xml:"npivDesiredNodeWwns,omitempty"` - NpivDesiredPortWwns int16 `xml:"npivDesiredPortWwns,omitempty"` - NpivTemporaryDisabled *bool `xml:"npivTemporaryDisabled"` - NpivOnNonRdmDisks *bool `xml:"npivOnNonRdmDisks"` - NpivWorldWideNameOp string `xml:"npivWorldWideNameOp,omitempty"` - LocationId string `xml:"locationId,omitempty"` - GuestId string `xml:"guestId,omitempty"` - AlternateGuestName string `xml:"alternateGuestName,omitempty"` - Annotation string `xml:"annotation,omitempty"` - Files *VirtualMachineFileInfo `xml:"files,omitempty"` - Tools *ToolsConfigInfo `xml:"tools,omitempty"` - Flags *VirtualMachineFlagInfo `xml:"flags,omitempty"` - ConsolePreferences *VirtualMachineConsolePreferences `xml:"consolePreferences,omitempty"` - PowerOpInfo *VirtualMachineDefaultPowerOpInfo `xml:"powerOpInfo,omitempty"` - NumCPUs int32 `xml:"numCPUs,omitempty"` - NumCoresPerSocket int32 `xml:"numCoresPerSocket,omitempty"` - MemoryMB int64 `xml:"memoryMB,omitempty"` - MemoryHotAddEnabled *bool `xml:"memoryHotAddEnabled"` - CpuHotAddEnabled *bool `xml:"cpuHotAddEnabled"` - CpuHotRemoveEnabled *bool `xml:"cpuHotRemoveEnabled"` - VirtualICH7MPresent *bool `xml:"virtualICH7MPresent"` - VirtualSMCPresent *bool `xml:"virtualSMCPresent"` - DeviceChange []BaseVirtualDeviceConfigSpec `xml:"deviceChange,omitempty,typeattr"` - CpuAllocation BaseResourceAllocationInfo `xml:"cpuAllocation,omitempty,typeattr"` - MemoryAllocation BaseResourceAllocationInfo `xml:"memoryAllocation,omitempty,typeattr"` - LatencySensitivity *LatencySensitivity `xml:"latencySensitivity,omitempty"` - CpuAffinity *VirtualMachineAffinityInfo `xml:"cpuAffinity,omitempty"` - MemoryAffinity *VirtualMachineAffinityInfo `xml:"memoryAffinity,omitempty"` - NetworkShaper *VirtualMachineNetworkShaperInfo `xml:"networkShaper,omitempty"` - CpuFeatureMask []VirtualMachineCpuIdInfoSpec `xml:"cpuFeatureMask,omitempty"` - ExtraConfig []BaseOptionValue `xml:"extraConfig,omitempty,typeattr"` - SwapPlacement string `xml:"swapPlacement,omitempty"` - BootOptions *VirtualMachineBootOptions `xml:"bootOptions,omitempty"` - VAppConfig BaseVmConfigSpec `xml:"vAppConfig,omitempty,typeattr"` - FtInfo BaseFaultToleranceConfigInfo `xml:"ftInfo,omitempty,typeattr"` - RepConfig *ReplicationConfigSpec `xml:"repConfig,omitempty"` - VAppConfigRemoved *bool `xml:"vAppConfigRemoved"` - VAssertsEnabled *bool `xml:"vAssertsEnabled"` - ChangeTrackingEnabled *bool `xml:"changeTrackingEnabled"` - Firmware string `xml:"firmware,omitempty"` - MaxMksConnections int32 `xml:"maxMksConnections,omitempty"` - GuestAutoLockEnabled *bool `xml:"guestAutoLockEnabled"` - ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` - MemoryReservationLockedToMax *bool `xml:"memoryReservationLockedToMax"` - NestedHVEnabled *bool `xml:"nestedHVEnabled"` - VPMCEnabled *bool `xml:"vPMCEnabled"` - ScheduledHardwareUpgradeInfo *ScheduledHardwareUpgradeInfo `xml:"scheduledHardwareUpgradeInfo,omitempty"` - VmProfile []BaseVirtualMachineProfileSpec `xml:"vmProfile,omitempty,typeattr"` - MessageBusTunnelEnabled *bool `xml:"messageBusTunnelEnabled"` - Crypto BaseCryptoSpec `xml:"crypto,omitempty,typeattr"` - MigrateEncryption string `xml:"migrateEncryption,omitempty"` -} - -func init() { - t["VirtualMachineConfigSpec"] = reflect.TypeOf((*VirtualMachineConfigSpec)(nil)).Elem() -} - -type VirtualMachineConfigSummary struct { - DynamicData - - Name string `xml:"name"` - Template bool `xml:"template"` - VmPathName string `xml:"vmPathName"` - MemorySizeMB int32 `xml:"memorySizeMB,omitempty"` - CpuReservation int32 `xml:"cpuReservation,omitempty"` - MemoryReservation int32 `xml:"memoryReservation,omitempty"` - NumCpu int32 `xml:"numCpu,omitempty"` - NumEthernetCards int32 `xml:"numEthernetCards,omitempty"` - NumVirtualDisks int32 `xml:"numVirtualDisks,omitempty"` - Uuid string `xml:"uuid,omitempty"` - InstanceUuid string `xml:"instanceUuid,omitempty"` - GuestId string `xml:"guestId,omitempty"` - GuestFullName string `xml:"guestFullName,omitempty"` - Annotation string `xml:"annotation,omitempty"` - Product *VAppProductInfo `xml:"product,omitempty"` - InstallBootRequired *bool `xml:"installBootRequired"` - FtInfo BaseFaultToleranceConfigInfo `xml:"ftInfo,omitempty,typeattr"` - ManagedBy *ManagedByInfo `xml:"managedBy,omitempty"` -} - -func init() { - t["VirtualMachineConfigSummary"] = reflect.TypeOf((*VirtualMachineConfigSummary)(nil)).Elem() -} - -type VirtualMachineConsolePreferences struct { - DynamicData - - PowerOnWhenOpened *bool `xml:"powerOnWhenOpened"` - EnterFullScreenOnPowerOn *bool `xml:"enterFullScreenOnPowerOn"` - CloseOnPowerOffOrSuspend *bool `xml:"closeOnPowerOffOrSuspend"` -} - -func init() { - t["VirtualMachineConsolePreferences"] = reflect.TypeOf((*VirtualMachineConsolePreferences)(nil)).Elem() -} - -type VirtualMachineCpuIdInfoSpec struct { - ArrayUpdateSpec - - Info *HostCpuIdInfo `xml:"info,omitempty"` -} - -func init() { - t["VirtualMachineCpuIdInfoSpec"] = reflect.TypeOf((*VirtualMachineCpuIdInfoSpec)(nil)).Elem() -} - -type VirtualMachineDatastoreInfo struct { - VirtualMachineTargetInfo - - Datastore DatastoreSummary `xml:"datastore"` - Capability DatastoreCapability `xml:"capability"` - MaxFileSize int64 `xml:"maxFileSize"` - MaxVirtualDiskCapacity int64 `xml:"maxVirtualDiskCapacity,omitempty"` - MaxPhysicalRDMFileSize int64 `xml:"maxPhysicalRDMFileSize,omitempty"` - MaxVirtualRDMFileSize int64 `xml:"maxVirtualRDMFileSize,omitempty"` - Mode string `xml:"mode"` - VStorageSupport string `xml:"vStorageSupport,omitempty"` -} - -func init() { - t["VirtualMachineDatastoreInfo"] = reflect.TypeOf((*VirtualMachineDatastoreInfo)(nil)).Elem() -} - -type VirtualMachineDatastoreVolumeOption struct { - DynamicData - - FileSystemType string `xml:"fileSystemType"` - MajorVersion int32 `xml:"majorVersion,omitempty"` -} - -func init() { - t["VirtualMachineDatastoreVolumeOption"] = reflect.TypeOf((*VirtualMachineDatastoreVolumeOption)(nil)).Elem() -} - -type VirtualMachineDefaultPowerOpInfo struct { - DynamicData - - PowerOffType string `xml:"powerOffType,omitempty"` - SuspendType string `xml:"suspendType,omitempty"` - ResetType string `xml:"resetType,omitempty"` - DefaultPowerOffType string `xml:"defaultPowerOffType,omitempty"` - DefaultSuspendType string `xml:"defaultSuspendType,omitempty"` - DefaultResetType string `xml:"defaultResetType,omitempty"` - StandbyAction string `xml:"standbyAction,omitempty"` -} - -func init() { - t["VirtualMachineDefaultPowerOpInfo"] = reflect.TypeOf((*VirtualMachineDefaultPowerOpInfo)(nil)).Elem() -} - -type VirtualMachineDefaultProfileSpec struct { - VirtualMachineProfileSpec -} - -func init() { - t["VirtualMachineDefaultProfileSpec"] = reflect.TypeOf((*VirtualMachineDefaultProfileSpec)(nil)).Elem() -} - -type VirtualMachineDefinedProfileSpec struct { - VirtualMachineProfileSpec - - ProfileId string `xml:"profileId"` - ReplicationSpec *ReplicationSpec `xml:"replicationSpec,omitempty"` - ProfileData *VirtualMachineProfileRawData `xml:"profileData,omitempty"` -} - -func init() { - t["VirtualMachineDefinedProfileSpec"] = reflect.TypeOf((*VirtualMachineDefinedProfileSpec)(nil)).Elem() -} - -type VirtualMachineDeviceRuntimeInfo struct { - DynamicData - - RuntimeState BaseVirtualMachineDeviceRuntimeInfoDeviceRuntimeState `xml:"runtimeState,typeattr"` - Key int32 `xml:"key"` -} - -func init() { - t["VirtualMachineDeviceRuntimeInfo"] = reflect.TypeOf((*VirtualMachineDeviceRuntimeInfo)(nil)).Elem() -} - -type VirtualMachineDeviceRuntimeInfoDeviceRuntimeState struct { - DynamicData -} - -func init() { - t["VirtualMachineDeviceRuntimeInfoDeviceRuntimeState"] = reflect.TypeOf((*VirtualMachineDeviceRuntimeInfoDeviceRuntimeState)(nil)).Elem() -} - -type VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState struct { - VirtualMachineDeviceRuntimeInfoDeviceRuntimeState - - VmDirectPathGen2Active bool `xml:"vmDirectPathGen2Active"` - VmDirectPathGen2InactiveReasonVm []string `xml:"vmDirectPathGen2InactiveReasonVm,omitempty"` - VmDirectPathGen2InactiveReasonOther []string `xml:"vmDirectPathGen2InactiveReasonOther,omitempty"` - VmDirectPathGen2InactiveReasonExtended string `xml:"vmDirectPathGen2InactiveReasonExtended,omitempty"` - ReservationStatus string `xml:"reservationStatus,omitempty"` -} - -func init() { - t["VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState"] = reflect.TypeOf((*VirtualMachineDeviceRuntimeInfoVirtualEthernetCardRuntimeState)(nil)).Elem() -} - -type VirtualMachineDiskDeviceInfo struct { - VirtualMachineTargetInfo - - Capacity int64 `xml:"capacity,omitempty"` - Vm []ManagedObjectReference `xml:"vm,omitempty"` -} - -func init() { - t["VirtualMachineDiskDeviceInfo"] = reflect.TypeOf((*VirtualMachineDiskDeviceInfo)(nil)).Elem() -} - -type VirtualMachineDisplayTopology struct { - DynamicData - - X int32 `xml:"x"` - Y int32 `xml:"y"` - Width int32 `xml:"width"` - Height int32 `xml:"height"` -} - -func init() { - t["VirtualMachineDisplayTopology"] = reflect.TypeOf((*VirtualMachineDisplayTopology)(nil)).Elem() -} - -type VirtualMachineEmptyProfileSpec struct { - VirtualMachineProfileSpec -} - -func init() { - t["VirtualMachineEmptyProfileSpec"] = reflect.TypeOf((*VirtualMachineEmptyProfileSpec)(nil)).Elem() -} - -type VirtualMachineFeatureRequirement struct { - DynamicData - - Key string `xml:"key"` - FeatureName string `xml:"featureName"` - Value string `xml:"value"` -} - -func init() { - t["VirtualMachineFeatureRequirement"] = reflect.TypeOf((*VirtualMachineFeatureRequirement)(nil)).Elem() -} - -type VirtualMachineFileInfo struct { - DynamicData - - VmPathName string `xml:"vmPathName,omitempty"` - SnapshotDirectory string `xml:"snapshotDirectory,omitempty"` - SuspendDirectory string `xml:"suspendDirectory,omitempty"` - LogDirectory string `xml:"logDirectory,omitempty"` - FtMetadataDirectory string `xml:"ftMetadataDirectory,omitempty"` -} - -func init() { - t["VirtualMachineFileInfo"] = reflect.TypeOf((*VirtualMachineFileInfo)(nil)).Elem() -} - -type VirtualMachineFileLayout struct { - DynamicData - - ConfigFile []string `xml:"configFile,omitempty"` - LogFile []string `xml:"logFile,omitempty"` - Disk []VirtualMachineFileLayoutDiskLayout `xml:"disk,omitempty"` - Snapshot []VirtualMachineFileLayoutSnapshotLayout `xml:"snapshot,omitempty"` - SwapFile string `xml:"swapFile,omitempty"` -} - -func init() { - t["VirtualMachineFileLayout"] = reflect.TypeOf((*VirtualMachineFileLayout)(nil)).Elem() -} - -type VirtualMachineFileLayoutDiskLayout struct { - DynamicData - - Key int32 `xml:"key"` - DiskFile []string `xml:"diskFile"` -} - -func init() { - t["VirtualMachineFileLayoutDiskLayout"] = reflect.TypeOf((*VirtualMachineFileLayoutDiskLayout)(nil)).Elem() -} - -type VirtualMachineFileLayoutEx struct { - DynamicData - - File []VirtualMachineFileLayoutExFileInfo `xml:"file,omitempty"` - Disk []VirtualMachineFileLayoutExDiskLayout `xml:"disk,omitempty"` - Snapshot []VirtualMachineFileLayoutExSnapshotLayout `xml:"snapshot,omitempty"` - Timestamp time.Time `xml:"timestamp"` -} - -func init() { - t["VirtualMachineFileLayoutEx"] = reflect.TypeOf((*VirtualMachineFileLayoutEx)(nil)).Elem() -} - -type VirtualMachineFileLayoutExDiskLayout struct { - DynamicData - - Key int32 `xml:"key"` - Chain []VirtualMachineFileLayoutExDiskUnit `xml:"chain,omitempty"` -} - -func init() { - t["VirtualMachineFileLayoutExDiskLayout"] = reflect.TypeOf((*VirtualMachineFileLayoutExDiskLayout)(nil)).Elem() -} - -type VirtualMachineFileLayoutExDiskUnit struct { - DynamicData - - FileKey []int32 `xml:"fileKey"` -} - -func init() { - t["VirtualMachineFileLayoutExDiskUnit"] = reflect.TypeOf((*VirtualMachineFileLayoutExDiskUnit)(nil)).Elem() -} - -type VirtualMachineFileLayoutExFileInfo struct { - DynamicData - - Key int32 `xml:"key"` - Name string `xml:"name"` - Type string `xml:"type"` - Size int64 `xml:"size"` - UniqueSize int64 `xml:"uniqueSize,omitempty"` - BackingObjectId string `xml:"backingObjectId,omitempty"` - Accessible *bool `xml:"accessible"` -} - -func init() { - t["VirtualMachineFileLayoutExFileInfo"] = reflect.TypeOf((*VirtualMachineFileLayoutExFileInfo)(nil)).Elem() -} - -type VirtualMachineFileLayoutExSnapshotLayout struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - DataKey int32 `xml:"dataKey"` - MemoryKey int32 `xml:"memoryKey,omitempty"` - Disk []VirtualMachineFileLayoutExDiskLayout `xml:"disk,omitempty"` -} - -func init() { - t["VirtualMachineFileLayoutExSnapshotLayout"] = reflect.TypeOf((*VirtualMachineFileLayoutExSnapshotLayout)(nil)).Elem() -} - -type VirtualMachineFileLayoutSnapshotLayout struct { - DynamicData - - Key ManagedObjectReference `xml:"key"` - SnapshotFile []string `xml:"snapshotFile"` -} - -func init() { - t["VirtualMachineFileLayoutSnapshotLayout"] = reflect.TypeOf((*VirtualMachineFileLayoutSnapshotLayout)(nil)).Elem() -} - -type VirtualMachineFlagInfo struct { - DynamicData - - DisableAcceleration *bool `xml:"disableAcceleration"` - EnableLogging *bool `xml:"enableLogging"` - UseToe *bool `xml:"useToe"` - RunWithDebugInfo *bool `xml:"runWithDebugInfo"` - MonitorType string `xml:"monitorType,omitempty"` - HtSharing string `xml:"htSharing,omitempty"` - SnapshotDisabled *bool `xml:"snapshotDisabled"` - SnapshotLocked *bool `xml:"snapshotLocked"` - DiskUuidEnabled *bool `xml:"diskUuidEnabled"` - VirtualMmuUsage string `xml:"virtualMmuUsage,omitempty"` - VirtualExecUsage string `xml:"virtualExecUsage,omitempty"` - SnapshotPowerOffBehavior string `xml:"snapshotPowerOffBehavior,omitempty"` - RecordReplayEnabled *bool `xml:"recordReplayEnabled"` - FaultToleranceType string `xml:"faultToleranceType,omitempty"` - CbrcCacheEnabled *bool `xml:"cbrcCacheEnabled"` -} - -func init() { - t["VirtualMachineFlagInfo"] = reflect.TypeOf((*VirtualMachineFlagInfo)(nil)).Elem() -} - -type VirtualMachineFloppyInfo struct { - VirtualMachineTargetInfo -} - -func init() { - t["VirtualMachineFloppyInfo"] = reflect.TypeOf((*VirtualMachineFloppyInfo)(nil)).Elem() -} - -type VirtualMachineForkConfigInfo struct { - DynamicData - - ParentEnabled *bool `xml:"parentEnabled"` - ChildForkGroupId string `xml:"childForkGroupId,omitempty"` - ParentForkGroupId string `xml:"parentForkGroupId,omitempty"` - ChildType string `xml:"childType,omitempty"` -} - -func init() { - t["VirtualMachineForkConfigInfo"] = reflect.TypeOf((*VirtualMachineForkConfigInfo)(nil)).Elem() -} - -type VirtualMachineGuestIntegrityInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` -} - -func init() { - t["VirtualMachineGuestIntegrityInfo"] = reflect.TypeOf((*VirtualMachineGuestIntegrityInfo)(nil)).Elem() -} - -type VirtualMachineGuestQuiesceSpec struct { - DynamicData - - Timeout int32 `xml:"timeout,omitempty"` -} - -func init() { - t["VirtualMachineGuestQuiesceSpec"] = reflect.TypeOf((*VirtualMachineGuestQuiesceSpec)(nil)).Elem() -} - -type VirtualMachineGuestSummary struct { - DynamicData - - GuestId string `xml:"guestId,omitempty"` - GuestFullName string `xml:"guestFullName,omitempty"` - ToolsStatus VirtualMachineToolsStatus `xml:"toolsStatus,omitempty"` - ToolsVersionStatus string `xml:"toolsVersionStatus,omitempty"` - ToolsVersionStatus2 string `xml:"toolsVersionStatus2,omitempty"` - ToolsRunningStatus string `xml:"toolsRunningStatus,omitempty"` - HostName string `xml:"hostName,omitempty"` - IpAddress string `xml:"ipAddress,omitempty"` -} - -func init() { - t["VirtualMachineGuestSummary"] = reflect.TypeOf((*VirtualMachineGuestSummary)(nil)).Elem() -} - -type VirtualMachineIdeDiskDeviceInfo struct { - VirtualMachineDiskDeviceInfo - - PartitionTable []VirtualMachineIdeDiskDevicePartitionInfo `xml:"partitionTable,omitempty"` -} - -func init() { - t["VirtualMachineIdeDiskDeviceInfo"] = reflect.TypeOf((*VirtualMachineIdeDiskDeviceInfo)(nil)).Elem() -} - -type VirtualMachineIdeDiskDevicePartitionInfo struct { - DynamicData - - Id int32 `xml:"id"` - Capacity int32 `xml:"capacity"` -} - -func init() { - t["VirtualMachineIdeDiskDevicePartitionInfo"] = reflect.TypeOf((*VirtualMachineIdeDiskDevicePartitionInfo)(nil)).Elem() -} - -type VirtualMachineImportSpec struct { - ImportSpec - - ConfigSpec VirtualMachineConfigSpec `xml:"configSpec"` - ResPoolEntity *ManagedObjectReference `xml:"resPoolEntity,omitempty"` -} - -func init() { - t["VirtualMachineImportSpec"] = reflect.TypeOf((*VirtualMachineImportSpec)(nil)).Elem() -} - -type VirtualMachineLegacyNetworkSwitchInfo struct { - DynamicData - - Name string `xml:"name"` -} - -func init() { - t["VirtualMachineLegacyNetworkSwitchInfo"] = reflect.TypeOf((*VirtualMachineLegacyNetworkSwitchInfo)(nil)).Elem() -} - -type VirtualMachineMemoryReservationInfo struct { - DynamicData - - VirtualMachineMin int64 `xml:"virtualMachineMin"` - VirtualMachineMax int64 `xml:"virtualMachineMax"` - VirtualMachineReserved int64 `xml:"virtualMachineReserved"` - AllocationPolicy string `xml:"allocationPolicy"` -} - -func init() { - t["VirtualMachineMemoryReservationInfo"] = reflect.TypeOf((*VirtualMachineMemoryReservationInfo)(nil)).Elem() -} - -type VirtualMachineMemoryReservationSpec struct { - DynamicData - - VirtualMachineReserved int64 `xml:"virtualMachineReserved,omitempty"` - AllocationPolicy string `xml:"allocationPolicy,omitempty"` -} - -func init() { - t["VirtualMachineMemoryReservationSpec"] = reflect.TypeOf((*VirtualMachineMemoryReservationSpec)(nil)).Elem() -} - -type VirtualMachineMessage struct { - DynamicData - - Id string `xml:"id"` - Argument []AnyType `xml:"argument,omitempty,typeattr"` - Text string `xml:"text,omitempty"` -} - -func init() { - t["VirtualMachineMessage"] = reflect.TypeOf((*VirtualMachineMessage)(nil)).Elem() -} - -type VirtualMachineMetadataManagerVmMetadata struct { - DynamicData - - VmId string `xml:"vmId"` - Metadata string `xml:"metadata,omitempty"` -} - -func init() { - t["VirtualMachineMetadataManagerVmMetadata"] = reflect.TypeOf((*VirtualMachineMetadataManagerVmMetadata)(nil)).Elem() -} - -type VirtualMachineMetadataManagerVmMetadataInput struct { - DynamicData - - Operation string `xml:"operation"` - VmMetadata VirtualMachineMetadataManagerVmMetadata `xml:"vmMetadata"` -} - -func init() { - t["VirtualMachineMetadataManagerVmMetadataInput"] = reflect.TypeOf((*VirtualMachineMetadataManagerVmMetadataInput)(nil)).Elem() -} - -type VirtualMachineMetadataManagerVmMetadataOwner struct { - DynamicData - - Name string `xml:"name"` -} - -func init() { - t["VirtualMachineMetadataManagerVmMetadataOwner"] = reflect.TypeOf((*VirtualMachineMetadataManagerVmMetadataOwner)(nil)).Elem() -} - -type VirtualMachineMetadataManagerVmMetadataResult struct { - DynamicData - - VmMetadata VirtualMachineMetadataManagerVmMetadata `xml:"vmMetadata"` - Error *LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["VirtualMachineMetadataManagerVmMetadataResult"] = reflect.TypeOf((*VirtualMachineMetadataManagerVmMetadataResult)(nil)).Elem() -} - -type VirtualMachineMksTicket struct { - DynamicData - - Ticket string `xml:"ticket"` - CfgFile string `xml:"cfgFile"` - Host string `xml:"host,omitempty"` - Port int32 `xml:"port,omitempty"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` -} - -func init() { - t["VirtualMachineMksTicket"] = reflect.TypeOf((*VirtualMachineMksTicket)(nil)).Elem() -} - -type VirtualMachineNetworkInfo struct { - VirtualMachineTargetInfo - - Network BaseNetworkSummary `xml:"network,typeattr"` - Vswitch string `xml:"vswitch,omitempty"` -} - -func init() { - t["VirtualMachineNetworkInfo"] = reflect.TypeOf((*VirtualMachineNetworkInfo)(nil)).Elem() -} - -type VirtualMachineNetworkShaperInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` - PeakBps int64 `xml:"peakBps,omitempty"` - AverageBps int64 `xml:"averageBps,omitempty"` - BurstSize int64 `xml:"burstSize,omitempty"` -} - -func init() { - t["VirtualMachineNetworkShaperInfo"] = reflect.TypeOf((*VirtualMachineNetworkShaperInfo)(nil)).Elem() -} - -type VirtualMachineParallelInfo struct { - VirtualMachineTargetInfo -} - -func init() { - t["VirtualMachineParallelInfo"] = reflect.TypeOf((*VirtualMachineParallelInfo)(nil)).Elem() -} - -type VirtualMachinePciPassthroughInfo struct { - VirtualMachineTargetInfo - - PciDevice HostPciDevice `xml:"pciDevice"` - SystemId string `xml:"systemId"` -} - -func init() { - t["VirtualMachinePciPassthroughInfo"] = reflect.TypeOf((*VirtualMachinePciPassthroughInfo)(nil)).Elem() -} - -type VirtualMachinePciSharedGpuPassthroughInfo struct { - VirtualMachineTargetInfo - - Vgpu string `xml:"vgpu"` -} - -func init() { - t["VirtualMachinePciSharedGpuPassthroughInfo"] = reflect.TypeOf((*VirtualMachinePciSharedGpuPassthroughInfo)(nil)).Elem() -} - -type VirtualMachineProfileRawData struct { - DynamicData - - ExtensionKey string `xml:"extensionKey"` - ObjectData string `xml:"objectData,omitempty"` -} - -func init() { - t["VirtualMachineProfileRawData"] = reflect.TypeOf((*VirtualMachineProfileRawData)(nil)).Elem() -} - -type VirtualMachineProfileSpec struct { - DynamicData -} - -func init() { - t["VirtualMachineProfileSpec"] = reflect.TypeOf((*VirtualMachineProfileSpec)(nil)).Elem() -} - -type VirtualMachineQuestionInfo struct { - DynamicData - - Id string `xml:"id"` - Text string `xml:"text"` - Choice ChoiceOption `xml:"choice"` - Message []VirtualMachineMessage `xml:"message,omitempty"` -} - -func init() { - t["VirtualMachineQuestionInfo"] = reflect.TypeOf((*VirtualMachineQuestionInfo)(nil)).Elem() -} - -type VirtualMachineQuickStats struct { - DynamicData - - OverallCpuUsage int32 `xml:"overallCpuUsage,omitempty"` - OverallCpuDemand int32 `xml:"overallCpuDemand,omitempty"` - GuestMemoryUsage int32 `xml:"guestMemoryUsage,omitempty"` - HostMemoryUsage int32 `xml:"hostMemoryUsage,omitempty"` - GuestHeartbeatStatus ManagedEntityStatus `xml:"guestHeartbeatStatus"` - DistributedCpuEntitlement int32 `xml:"distributedCpuEntitlement,omitempty"` - DistributedMemoryEntitlement int32 `xml:"distributedMemoryEntitlement,omitempty"` - StaticCpuEntitlement int32 `xml:"staticCpuEntitlement,omitempty"` - StaticMemoryEntitlement int32 `xml:"staticMemoryEntitlement,omitempty"` - PrivateMemory int32 `xml:"privateMemory,omitempty"` - SharedMemory int32 `xml:"sharedMemory,omitempty"` - SwappedMemory int32 `xml:"swappedMemory,omitempty"` - BalloonedMemory int32 `xml:"balloonedMemory,omitempty"` - ConsumedOverheadMemory int32 `xml:"consumedOverheadMemory,omitempty"` - FtLogBandwidth int32 `xml:"ftLogBandwidth,omitempty"` - FtSecondaryLatency int32 `xml:"ftSecondaryLatency,omitempty"` - FtLatencyStatus ManagedEntityStatus `xml:"ftLatencyStatus,omitempty"` - CompressedMemory int64 `xml:"compressedMemory,omitempty"` - UptimeSeconds int32 `xml:"uptimeSeconds,omitempty"` - SsdSwappedMemory int64 `xml:"ssdSwappedMemory,omitempty"` -} - -func init() { - t["VirtualMachineQuickStats"] = reflect.TypeOf((*VirtualMachineQuickStats)(nil)).Elem() -} - -type VirtualMachineRelocateSpec struct { - DynamicData - - Service *ServiceLocator `xml:"service,omitempty"` - Folder *ManagedObjectReference `xml:"folder,omitempty"` - Datastore *ManagedObjectReference `xml:"datastore,omitempty"` - DiskMoveType string `xml:"diskMoveType,omitempty"` - Pool *ManagedObjectReference `xml:"pool,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Disk []VirtualMachineRelocateSpecDiskLocator `xml:"disk,omitempty"` - Transform VirtualMachineRelocateTransformation `xml:"transform,omitempty"` - DeviceChange []BaseVirtualDeviceConfigSpec `xml:"deviceChange,omitempty,typeattr"` - Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` -} - -func init() { - t["VirtualMachineRelocateSpec"] = reflect.TypeOf((*VirtualMachineRelocateSpec)(nil)).Elem() -} - -type VirtualMachineRelocateSpecDiskLocator struct { - DynamicData - - DiskId int32 `xml:"diskId"` - Datastore ManagedObjectReference `xml:"datastore"` - DiskMoveType string `xml:"diskMoveType,omitempty"` - DiskBackingInfo BaseVirtualDeviceBackingInfo `xml:"diskBackingInfo,omitempty,typeattr"` - Profile []BaseVirtualMachineProfileSpec `xml:"profile,omitempty,typeattr"` -} - -func init() { - t["VirtualMachineRelocateSpecDiskLocator"] = reflect.TypeOf((*VirtualMachineRelocateSpecDiskLocator)(nil)).Elem() -} - -type VirtualMachineRuntimeInfo struct { - DynamicData - - Device []VirtualMachineDeviceRuntimeInfo `xml:"device,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - ConnectionState VirtualMachineConnectionState `xml:"connectionState"` - PowerState VirtualMachinePowerState `xml:"powerState"` - FaultToleranceState VirtualMachineFaultToleranceState `xml:"faultToleranceState,omitempty"` - DasVmProtection *VirtualMachineRuntimeInfoDasProtectionState `xml:"dasVmProtection,omitempty"` - ToolsInstallerMounted bool `xml:"toolsInstallerMounted"` - SuspendTime *time.Time `xml:"suspendTime"` - BootTime *time.Time `xml:"bootTime"` - SuspendInterval int64 `xml:"suspendInterval,omitempty"` - Question *VirtualMachineQuestionInfo `xml:"question,omitempty"` - MemoryOverhead int64 `xml:"memoryOverhead,omitempty"` - MaxCpuUsage int32 `xml:"maxCpuUsage,omitempty"` - MaxMemoryUsage int32 `xml:"maxMemoryUsage,omitempty"` - NumMksConnections int32 `xml:"numMksConnections"` - RecordReplayState VirtualMachineRecordReplayState `xml:"recordReplayState,omitempty"` - CleanPowerOff *bool `xml:"cleanPowerOff"` - NeedSecondaryReason string `xml:"needSecondaryReason,omitempty"` - OnlineStandby *bool `xml:"onlineStandby"` - MinRequiredEVCModeKey string `xml:"minRequiredEVCModeKey,omitempty"` - ConsolidationNeeded *bool `xml:"consolidationNeeded"` - OfflineFeatureRequirement []VirtualMachineFeatureRequirement `xml:"offlineFeatureRequirement,omitempty"` - FeatureRequirement []VirtualMachineFeatureRequirement `xml:"featureRequirement,omitempty"` - FeatureMask []HostFeatureMask `xml:"featureMask,omitempty"` - VFlashCacheAllocation int64 `xml:"vFlashCacheAllocation,omitempty"` - Paused *bool `xml:"paused"` - SnapshotInBackground *bool `xml:"snapshotInBackground"` - QuiescedForkParent *bool `xml:"quiescedForkParent"` -} - -func init() { - t["VirtualMachineRuntimeInfo"] = reflect.TypeOf((*VirtualMachineRuntimeInfo)(nil)).Elem() -} - -type VirtualMachineRuntimeInfoDasProtectionState struct { - DynamicData - - DasProtected bool `xml:"dasProtected"` -} - -func init() { - t["VirtualMachineRuntimeInfoDasProtectionState"] = reflect.TypeOf((*VirtualMachineRuntimeInfoDasProtectionState)(nil)).Elem() -} - -type VirtualMachineScsiDiskDeviceInfo struct { - VirtualMachineDiskDeviceInfo - - Disk *HostScsiDisk `xml:"disk,omitempty"` - TransportHint string `xml:"transportHint,omitempty"` - LunNumber int32 `xml:"lunNumber,omitempty"` -} - -func init() { - t["VirtualMachineScsiDiskDeviceInfo"] = reflect.TypeOf((*VirtualMachineScsiDiskDeviceInfo)(nil)).Elem() -} - -type VirtualMachineScsiPassthroughInfo struct { - VirtualMachineTargetInfo - - ScsiClass string `xml:"scsiClass"` - Vendor string `xml:"vendor"` - PhysicalUnitNumber int32 `xml:"physicalUnitNumber"` -} - -func init() { - t["VirtualMachineScsiPassthroughInfo"] = reflect.TypeOf((*VirtualMachineScsiPassthroughInfo)(nil)).Elem() -} - -type VirtualMachineSerialInfo struct { - VirtualMachineTargetInfo -} - -func init() { - t["VirtualMachineSerialInfo"] = reflect.TypeOf((*VirtualMachineSerialInfo)(nil)).Elem() -} - -type VirtualMachineSnapshotInfo struct { - DynamicData - - CurrentSnapshot *ManagedObjectReference `xml:"currentSnapshot,omitempty"` - RootSnapshotList []VirtualMachineSnapshotTree `xml:"rootSnapshotList"` -} - -func init() { - t["VirtualMachineSnapshotInfo"] = reflect.TypeOf((*VirtualMachineSnapshotInfo)(nil)).Elem() -} - -type VirtualMachineSnapshotTree struct { - DynamicData - - Snapshot ManagedObjectReference `xml:"snapshot"` - Vm ManagedObjectReference `xml:"vm"` - Name string `xml:"name"` - Description string `xml:"description"` - Id int32 `xml:"id,omitempty"` - CreateTime time.Time `xml:"createTime"` - State VirtualMachinePowerState `xml:"state"` - Quiesced bool `xml:"quiesced"` - BackupManifest string `xml:"backupManifest,omitempty"` - ChildSnapshotList []VirtualMachineSnapshotTree `xml:"childSnapshotList,omitempty"` - ReplaySupported *bool `xml:"replaySupported"` -} - -func init() { - t["VirtualMachineSnapshotTree"] = reflect.TypeOf((*VirtualMachineSnapshotTree)(nil)).Elem() -} - -type VirtualMachineSoundInfo struct { - VirtualMachineTargetInfo -} - -func init() { - t["VirtualMachineSoundInfo"] = reflect.TypeOf((*VirtualMachineSoundInfo)(nil)).Elem() -} - -type VirtualMachineSriovDevicePoolInfo struct { - DynamicData - - Key string `xml:"key"` -} - -func init() { - t["VirtualMachineSriovDevicePoolInfo"] = reflect.TypeOf((*VirtualMachineSriovDevicePoolInfo)(nil)).Elem() -} - -type VirtualMachineSriovInfo struct { - VirtualMachinePciPassthroughInfo - - VirtualFunction bool `xml:"virtualFunction"` - Pnic string `xml:"pnic,omitempty"` - DevicePool BaseVirtualMachineSriovDevicePoolInfo `xml:"devicePool,omitempty,typeattr"` -} - -func init() { - t["VirtualMachineSriovInfo"] = reflect.TypeOf((*VirtualMachineSriovInfo)(nil)).Elem() -} - -type VirtualMachineSriovNetworkDevicePoolInfo struct { - VirtualMachineSriovDevicePoolInfo - - SwitchKey string `xml:"switchKey,omitempty"` - SwitchUuid string `xml:"switchUuid,omitempty"` -} - -func init() { - t["VirtualMachineSriovNetworkDevicePoolInfo"] = reflect.TypeOf((*VirtualMachineSriovNetworkDevicePoolInfo)(nil)).Elem() -} - -type VirtualMachineStorageInfo struct { - DynamicData - - PerDatastoreUsage []VirtualMachineUsageOnDatastore `xml:"perDatastoreUsage,omitempty"` - Timestamp time.Time `xml:"timestamp"` -} - -func init() { - t["VirtualMachineStorageInfo"] = reflect.TypeOf((*VirtualMachineStorageInfo)(nil)).Elem() -} - -type VirtualMachineStorageSummary struct { - DynamicData - - Committed int64 `xml:"committed"` - Uncommitted int64 `xml:"uncommitted"` - Unshared int64 `xml:"unshared"` - Timestamp time.Time `xml:"timestamp"` -} - -func init() { - t["VirtualMachineStorageSummary"] = reflect.TypeOf((*VirtualMachineStorageSummary)(nil)).Elem() -} - -type VirtualMachineSummary struct { - DynamicData - - Vm *ManagedObjectReference `xml:"vm,omitempty"` - Runtime VirtualMachineRuntimeInfo `xml:"runtime"` - Guest *VirtualMachineGuestSummary `xml:"guest,omitempty"` - Config VirtualMachineConfigSummary `xml:"config"` - Storage *VirtualMachineStorageSummary `xml:"storage,omitempty"` - QuickStats VirtualMachineQuickStats `xml:"quickStats"` - OverallStatus ManagedEntityStatus `xml:"overallStatus"` - CustomValue []BaseCustomFieldValue `xml:"customValue,omitempty,typeattr"` -} - -func init() { - t["VirtualMachineSummary"] = reflect.TypeOf((*VirtualMachineSummary)(nil)).Elem() -} - -type VirtualMachineTargetInfo struct { - DynamicData - - Name string `xml:"name"` - ConfigurationTag []string `xml:"configurationTag,omitempty"` -} - -func init() { - t["VirtualMachineTargetInfo"] = reflect.TypeOf((*VirtualMachineTargetInfo)(nil)).Elem() -} - -type VirtualMachineTicket struct { - DynamicData - - Ticket string `xml:"ticket"` - CfgFile string `xml:"cfgFile"` - Host string `xml:"host,omitempty"` - Port int32 `xml:"port,omitempty"` - SslThumbprint string `xml:"sslThumbprint,omitempty"` -} - -func init() { - t["VirtualMachineTicket"] = reflect.TypeOf((*VirtualMachineTicket)(nil)).Elem() -} - -type VirtualMachineUsageOnDatastore struct { - DynamicData - - Datastore ManagedObjectReference `xml:"datastore"` - Committed int64 `xml:"committed"` - Uncommitted int64 `xml:"uncommitted"` - Unshared int64 `xml:"unshared"` -} - -func init() { - t["VirtualMachineUsageOnDatastore"] = reflect.TypeOf((*VirtualMachineUsageOnDatastore)(nil)).Elem() -} - -type VirtualMachineUsbInfo struct { - VirtualMachineTargetInfo - - Description string `xml:"description"` - Vendor int32 `xml:"vendor"` - Product int32 `xml:"product"` - PhysicalPath string `xml:"physicalPath"` - Family []string `xml:"family,omitempty"` - Speed []string `xml:"speed,omitempty"` - Summary *VirtualMachineSummary `xml:"summary,omitempty"` -} - -func init() { - t["VirtualMachineUsbInfo"] = reflect.TypeOf((*VirtualMachineUsbInfo)(nil)).Elem() -} - -type VirtualMachineVFlashModuleInfo struct { - VirtualMachineTargetInfo - - VFlashModule HostVFlashManagerVFlashCacheConfigInfoVFlashModuleConfigOption `xml:"vFlashModule"` -} - -func init() { - t["VirtualMachineVFlashModuleInfo"] = reflect.TypeOf((*VirtualMachineVFlashModuleInfo)(nil)).Elem() -} - -type VirtualMachineVMCIDevice struct { - VirtualDevice - - Id int64 `xml:"id,omitempty"` - AllowUnrestrictedCommunication *bool `xml:"allowUnrestrictedCommunication"` - FilterEnable *bool `xml:"filterEnable"` - FilterInfo *VirtualMachineVMCIDeviceFilterInfo `xml:"filterInfo,omitempty"` -} - -func init() { - t["VirtualMachineVMCIDevice"] = reflect.TypeOf((*VirtualMachineVMCIDevice)(nil)).Elem() -} - -type VirtualMachineVMCIDeviceFilterInfo struct { - DynamicData - - Filters []VirtualMachineVMCIDeviceFilterSpec `xml:"filters,omitempty"` -} - -func init() { - t["VirtualMachineVMCIDeviceFilterInfo"] = reflect.TypeOf((*VirtualMachineVMCIDeviceFilterInfo)(nil)).Elem() -} - -type VirtualMachineVMCIDeviceFilterSpec struct { - DynamicData - - Rank int64 `xml:"rank"` - Action string `xml:"action"` - Protocol string `xml:"protocol"` - Direction string `xml:"direction"` - LowerDstPortBoundary int64 `xml:"lowerDstPortBoundary,omitempty"` - UpperDstPortBoundary int64 `xml:"upperDstPortBoundary,omitempty"` -} - -func init() { - t["VirtualMachineVMCIDeviceFilterSpec"] = reflect.TypeOf((*VirtualMachineVMCIDeviceFilterSpec)(nil)).Elem() -} - -type VirtualMachineVMCIDeviceOption struct { - VirtualDeviceOption - - AllowUnrestrictedCommunication BoolOption `xml:"allowUnrestrictedCommunication"` - FilterSpecOption *VirtualMachineVMCIDeviceOptionFilterSpecOption `xml:"filterSpecOption,omitempty"` - FilterSupported *BoolOption `xml:"filterSupported,omitempty"` -} - -func init() { - t["VirtualMachineVMCIDeviceOption"] = reflect.TypeOf((*VirtualMachineVMCIDeviceOption)(nil)).Elem() -} - -type VirtualMachineVMCIDeviceOptionFilterSpecOption struct { - DynamicData - - Action ChoiceOption `xml:"action"` - Protocol ChoiceOption `xml:"protocol"` - Direction ChoiceOption `xml:"direction"` - LowerDstPortBoundary LongOption `xml:"lowerDstPortBoundary"` - UpperDstPortBoundary LongOption `xml:"upperDstPortBoundary"` -} - -func init() { - t["VirtualMachineVMCIDeviceOptionFilterSpecOption"] = reflect.TypeOf((*VirtualMachineVMCIDeviceOptionFilterSpecOption)(nil)).Elem() -} - -type VirtualMachineVMIROM struct { - VirtualDevice -} - -func init() { - t["VirtualMachineVMIROM"] = reflect.TypeOf((*VirtualMachineVMIROM)(nil)).Elem() -} - -type VirtualMachineVideoCard struct { - VirtualDevice - - VideoRamSizeInKB int64 `xml:"videoRamSizeInKB,omitempty"` - NumDisplays int32 `xml:"numDisplays,omitempty"` - UseAutoDetect *bool `xml:"useAutoDetect"` - Enable3DSupport *bool `xml:"enable3DSupport"` - Use3dRenderer string `xml:"use3dRenderer,omitempty"` - GraphicsMemorySizeInKB int64 `xml:"graphicsMemorySizeInKB,omitempty"` -} - -func init() { - t["VirtualMachineVideoCard"] = reflect.TypeOf((*VirtualMachineVideoCard)(nil)).Elem() -} - -type VirtualMachineWindowsQuiesceSpec struct { - VirtualMachineGuestQuiesceSpec - - VssBackupType int32 `xml:"vssBackupType,omitempty"` - VssBootableSystemState *bool `xml:"vssBootableSystemState"` - VssPartialFileSupport *bool `xml:"vssPartialFileSupport"` - VssBackupContext string `xml:"vssBackupContext,omitempty"` -} - -func init() { - t["VirtualMachineWindowsQuiesceSpec"] = reflect.TypeOf((*VirtualMachineWindowsQuiesceSpec)(nil)).Elem() -} - -type VirtualMachineWipeResult struct { - DynamicData - - DiskId int32 `xml:"diskId"` - ShrinkableDiskSpace int64 `xml:"shrinkableDiskSpace"` -} - -func init() { - t["VirtualMachineWipeResult"] = reflect.TypeOf((*VirtualMachineWipeResult)(nil)).Elem() -} - -type VirtualNVMEController struct { - VirtualController -} - -func init() { - t["VirtualNVMEController"] = reflect.TypeOf((*VirtualNVMEController)(nil)).Elem() -} - -type VirtualNVMEControllerOption struct { - VirtualControllerOption - - NumNVMEDisks IntOption `xml:"numNVMEDisks"` -} - -func init() { - t["VirtualNVMEControllerOption"] = reflect.TypeOf((*VirtualNVMEControllerOption)(nil)).Elem() -} - -type VirtualNicManagerNetConfig struct { - DynamicData - - NicType string `xml:"nicType"` - MultiSelectAllowed bool `xml:"multiSelectAllowed"` - CandidateVnic []HostVirtualNic `xml:"candidateVnic,omitempty"` - SelectedVnic []string `xml:"selectedVnic,omitempty"` -} - -func init() { - t["VirtualNicManagerNetConfig"] = reflect.TypeOf((*VirtualNicManagerNetConfig)(nil)).Elem() -} - -type VirtualPCIController struct { - VirtualController -} - -func init() { - t["VirtualPCIController"] = reflect.TypeOf((*VirtualPCIController)(nil)).Elem() -} - -type VirtualPCIControllerOption struct { - VirtualControllerOption - - NumSCSIControllers IntOption `xml:"numSCSIControllers"` - NumEthernetCards IntOption `xml:"numEthernetCards"` - NumVideoCards IntOption `xml:"numVideoCards"` - NumSoundCards IntOption `xml:"numSoundCards"` - NumVmiRoms IntOption `xml:"numVmiRoms"` - NumVmciDevices *IntOption `xml:"numVmciDevices,omitempty"` - NumPCIPassthroughDevices *IntOption `xml:"numPCIPassthroughDevices,omitempty"` - NumSasSCSIControllers *IntOption `xml:"numSasSCSIControllers,omitempty"` - NumVmxnet3EthernetCards *IntOption `xml:"numVmxnet3EthernetCards,omitempty"` - NumParaVirtualSCSIControllers *IntOption `xml:"numParaVirtualSCSIControllers,omitempty"` - NumSATAControllers *IntOption `xml:"numSATAControllers,omitempty"` - NumNVMEControllers *IntOption `xml:"numNVMEControllers,omitempty"` -} - -func init() { - t["VirtualPCIControllerOption"] = reflect.TypeOf((*VirtualPCIControllerOption)(nil)).Elem() -} - -type VirtualPCIPassthrough struct { - VirtualDevice -} - -func init() { - t["VirtualPCIPassthrough"] = reflect.TypeOf((*VirtualPCIPassthrough)(nil)).Elem() -} - -type VirtualPCIPassthroughDeviceBackingInfo struct { - VirtualDeviceDeviceBackingInfo - - Id string `xml:"id"` - DeviceId string `xml:"deviceId"` - SystemId string `xml:"systemId"` - VendorId int16 `xml:"vendorId"` -} - -func init() { - t["VirtualPCIPassthroughDeviceBackingInfo"] = reflect.TypeOf((*VirtualPCIPassthroughDeviceBackingInfo)(nil)).Elem() -} - -type VirtualPCIPassthroughDeviceBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualPCIPassthroughDeviceBackingOption"] = reflect.TypeOf((*VirtualPCIPassthroughDeviceBackingOption)(nil)).Elem() -} - -type VirtualPCIPassthroughOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualPCIPassthroughOption"] = reflect.TypeOf((*VirtualPCIPassthroughOption)(nil)).Elem() -} - -type VirtualPCIPassthroughPluginBackingInfo struct { - VirtualDeviceBackingInfo -} - -func init() { - t["VirtualPCIPassthroughPluginBackingInfo"] = reflect.TypeOf((*VirtualPCIPassthroughPluginBackingInfo)(nil)).Elem() -} - -type VirtualPCIPassthroughPluginBackingOption struct { - VirtualDeviceBackingOption -} - -func init() { - t["VirtualPCIPassthroughPluginBackingOption"] = reflect.TypeOf((*VirtualPCIPassthroughPluginBackingOption)(nil)).Elem() -} - -type VirtualPCIPassthroughVmiopBackingInfo struct { - VirtualPCIPassthroughPluginBackingInfo - - Vgpu string `xml:"vgpu,omitempty"` -} - -func init() { - t["VirtualPCIPassthroughVmiopBackingInfo"] = reflect.TypeOf((*VirtualPCIPassthroughVmiopBackingInfo)(nil)).Elem() -} - -type VirtualPCIPassthroughVmiopBackingOption struct { - VirtualPCIPassthroughPluginBackingOption - - Vgpu StringOption `xml:"vgpu"` - MaxInstances int32 `xml:"maxInstances"` -} - -func init() { - t["VirtualPCIPassthroughVmiopBackingOption"] = reflect.TypeOf((*VirtualPCIPassthroughVmiopBackingOption)(nil)).Elem() -} - -type VirtualPCNet32 struct { - VirtualEthernetCard -} - -func init() { - t["VirtualPCNet32"] = reflect.TypeOf((*VirtualPCNet32)(nil)).Elem() -} - -type VirtualPCNet32Option struct { - VirtualEthernetCardOption - - SupportsMorphing bool `xml:"supportsMorphing"` -} - -func init() { - t["VirtualPCNet32Option"] = reflect.TypeOf((*VirtualPCNet32Option)(nil)).Elem() -} - -type VirtualPS2Controller struct { - VirtualController -} - -func init() { - t["VirtualPS2Controller"] = reflect.TypeOf((*VirtualPS2Controller)(nil)).Elem() -} - -type VirtualPS2ControllerOption struct { - VirtualControllerOption - - NumKeyboards IntOption `xml:"numKeyboards"` - NumPointingDevices IntOption `xml:"numPointingDevices"` -} - -func init() { - t["VirtualPS2ControllerOption"] = reflect.TypeOf((*VirtualPS2ControllerOption)(nil)).Elem() -} - -type VirtualParallelPort struct { - VirtualDevice -} - -func init() { - t["VirtualParallelPort"] = reflect.TypeOf((*VirtualParallelPort)(nil)).Elem() -} - -type VirtualParallelPortDeviceBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualParallelPortDeviceBackingInfo"] = reflect.TypeOf((*VirtualParallelPortDeviceBackingInfo)(nil)).Elem() -} - -type VirtualParallelPortDeviceBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualParallelPortDeviceBackingOption"] = reflect.TypeOf((*VirtualParallelPortDeviceBackingOption)(nil)).Elem() -} - -type VirtualParallelPortFileBackingInfo struct { - VirtualDeviceFileBackingInfo -} - -func init() { - t["VirtualParallelPortFileBackingInfo"] = reflect.TypeOf((*VirtualParallelPortFileBackingInfo)(nil)).Elem() -} - -type VirtualParallelPortFileBackingOption struct { - VirtualDeviceFileBackingOption -} - -func init() { - t["VirtualParallelPortFileBackingOption"] = reflect.TypeOf((*VirtualParallelPortFileBackingOption)(nil)).Elem() -} - -type VirtualParallelPortOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualParallelPortOption"] = reflect.TypeOf((*VirtualParallelPortOption)(nil)).Elem() -} - -type VirtualPointingDevice struct { - VirtualDevice -} - -func init() { - t["VirtualPointingDevice"] = reflect.TypeOf((*VirtualPointingDevice)(nil)).Elem() -} - -type VirtualPointingDeviceBackingOption struct { - VirtualDeviceDeviceBackingOption - - HostPointingDevice ChoiceOption `xml:"hostPointingDevice"` -} - -func init() { - t["VirtualPointingDeviceBackingOption"] = reflect.TypeOf((*VirtualPointingDeviceBackingOption)(nil)).Elem() -} - -type VirtualPointingDeviceDeviceBackingInfo struct { - VirtualDeviceDeviceBackingInfo - - HostPointingDevice string `xml:"hostPointingDevice"` -} - -func init() { - t["VirtualPointingDeviceDeviceBackingInfo"] = reflect.TypeOf((*VirtualPointingDeviceDeviceBackingInfo)(nil)).Elem() -} - -type VirtualPointingDeviceOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualPointingDeviceOption"] = reflect.TypeOf((*VirtualPointingDeviceOption)(nil)).Elem() -} - -type VirtualResourcePoolSpec struct { - DynamicData - - VrpId string `xml:"vrpId,omitempty"` - VrpName string `xml:"vrpName,omitempty"` - Description string `xml:"description,omitempty"` - CpuAllocation VrpResourceAllocationInfo `xml:"cpuAllocation"` - MemoryAllocation VrpResourceAllocationInfo `xml:"memoryAllocation"` - RpList []ManagedObjectReference `xml:"rpList,omitempty"` - HubList []ManagedObjectReference `xml:"hubList,omitempty"` - RootVRP *bool `xml:"rootVRP"` - StaticVRP *bool `xml:"staticVRP"` - ChangeVersion int64 `xml:"changeVersion,omitempty"` -} - -func init() { - t["VirtualResourcePoolSpec"] = reflect.TypeOf((*VirtualResourcePoolSpec)(nil)).Elem() -} - -type VirtualResourcePoolUsage struct { - DynamicData - - VrpId string `xml:"vrpId"` - CpuReservationMhz int64 `xml:"cpuReservationMhz"` - MemReservationMB int64 `xml:"memReservationMB"` - CpuReservationUsedMhz int64 `xml:"cpuReservationUsedMhz"` - MemReservationUsedMB int64 `xml:"memReservationUsedMB"` -} - -func init() { - t["VirtualResourcePoolUsage"] = reflect.TypeOf((*VirtualResourcePoolUsage)(nil)).Elem() -} - -type VirtualSATAController struct { - VirtualController -} - -func init() { - t["VirtualSATAController"] = reflect.TypeOf((*VirtualSATAController)(nil)).Elem() -} - -type VirtualSATAControllerOption struct { - VirtualControllerOption - - NumSATADisks IntOption `xml:"numSATADisks"` - NumSATACdroms IntOption `xml:"numSATACdroms"` -} - -func init() { - t["VirtualSATAControllerOption"] = reflect.TypeOf((*VirtualSATAControllerOption)(nil)).Elem() -} - -type VirtualSCSIController struct { - VirtualController - - HotAddRemove *bool `xml:"hotAddRemove"` - SharedBus VirtualSCSISharing `xml:"sharedBus"` - ScsiCtlrUnitNumber int32 `xml:"scsiCtlrUnitNumber,omitempty"` -} - -func init() { - t["VirtualSCSIController"] = reflect.TypeOf((*VirtualSCSIController)(nil)).Elem() -} - -type VirtualSCSIControllerOption struct { - VirtualControllerOption - - NumSCSIDisks IntOption `xml:"numSCSIDisks"` - NumSCSICdroms IntOption `xml:"numSCSICdroms"` - NumSCSIPassthrough IntOption `xml:"numSCSIPassthrough"` - Sharing []VirtualSCSISharing `xml:"sharing"` - DefaultSharedIndex int32 `xml:"defaultSharedIndex"` - HotAddRemove BoolOption `xml:"hotAddRemove"` - ScsiCtlrUnitNumber int32 `xml:"scsiCtlrUnitNumber"` -} - -func init() { - t["VirtualSCSIControllerOption"] = reflect.TypeOf((*VirtualSCSIControllerOption)(nil)).Elem() -} - -type VirtualSCSIPassthrough struct { - VirtualDevice -} - -func init() { - t["VirtualSCSIPassthrough"] = reflect.TypeOf((*VirtualSCSIPassthrough)(nil)).Elem() -} - -type VirtualSCSIPassthroughDeviceBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualSCSIPassthroughDeviceBackingInfo"] = reflect.TypeOf((*VirtualSCSIPassthroughDeviceBackingInfo)(nil)).Elem() -} - -type VirtualSCSIPassthroughDeviceBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualSCSIPassthroughDeviceBackingOption"] = reflect.TypeOf((*VirtualSCSIPassthroughDeviceBackingOption)(nil)).Elem() -} - -type VirtualSCSIPassthroughOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualSCSIPassthroughOption"] = reflect.TypeOf((*VirtualSCSIPassthroughOption)(nil)).Elem() -} - -type VirtualSIOController struct { - VirtualController -} - -func init() { - t["VirtualSIOController"] = reflect.TypeOf((*VirtualSIOController)(nil)).Elem() -} - -type VirtualSIOControllerOption struct { - VirtualControllerOption - - NumFloppyDrives IntOption `xml:"numFloppyDrives"` - NumSerialPorts IntOption `xml:"numSerialPorts"` - NumParallelPorts IntOption `xml:"numParallelPorts"` -} - -func init() { - t["VirtualSIOControllerOption"] = reflect.TypeOf((*VirtualSIOControllerOption)(nil)).Elem() -} - -type VirtualSerialPort struct { - VirtualDevice - - YieldOnPoll bool `xml:"yieldOnPoll"` -} - -func init() { - t["VirtualSerialPort"] = reflect.TypeOf((*VirtualSerialPort)(nil)).Elem() -} - -type VirtualSerialPortDeviceBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualSerialPortDeviceBackingInfo"] = reflect.TypeOf((*VirtualSerialPortDeviceBackingInfo)(nil)).Elem() -} - -type VirtualSerialPortDeviceBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualSerialPortDeviceBackingOption"] = reflect.TypeOf((*VirtualSerialPortDeviceBackingOption)(nil)).Elem() -} - -type VirtualSerialPortFileBackingInfo struct { - VirtualDeviceFileBackingInfo -} - -func init() { - t["VirtualSerialPortFileBackingInfo"] = reflect.TypeOf((*VirtualSerialPortFileBackingInfo)(nil)).Elem() -} - -type VirtualSerialPortFileBackingOption struct { - VirtualDeviceFileBackingOption -} - -func init() { - t["VirtualSerialPortFileBackingOption"] = reflect.TypeOf((*VirtualSerialPortFileBackingOption)(nil)).Elem() -} - -type VirtualSerialPortOption struct { - VirtualDeviceOption - - YieldOnPoll BoolOption `xml:"yieldOnPoll"` -} - -func init() { - t["VirtualSerialPortOption"] = reflect.TypeOf((*VirtualSerialPortOption)(nil)).Elem() -} - -type VirtualSerialPortPipeBackingInfo struct { - VirtualDevicePipeBackingInfo - - Endpoint string `xml:"endpoint"` - NoRxLoss *bool `xml:"noRxLoss"` -} - -func init() { - t["VirtualSerialPortPipeBackingInfo"] = reflect.TypeOf((*VirtualSerialPortPipeBackingInfo)(nil)).Elem() -} - -type VirtualSerialPortPipeBackingOption struct { - VirtualDevicePipeBackingOption - - Endpoint ChoiceOption `xml:"endpoint"` - NoRxLoss BoolOption `xml:"noRxLoss"` -} - -func init() { - t["VirtualSerialPortPipeBackingOption"] = reflect.TypeOf((*VirtualSerialPortPipeBackingOption)(nil)).Elem() -} - -type VirtualSerialPortThinPrintBackingInfo struct { - VirtualDeviceBackingInfo -} - -func init() { - t["VirtualSerialPortThinPrintBackingInfo"] = reflect.TypeOf((*VirtualSerialPortThinPrintBackingInfo)(nil)).Elem() -} - -type VirtualSerialPortThinPrintBackingOption struct { - VirtualDeviceBackingOption -} - -func init() { - t["VirtualSerialPortThinPrintBackingOption"] = reflect.TypeOf((*VirtualSerialPortThinPrintBackingOption)(nil)).Elem() -} - -type VirtualSerialPortURIBackingInfo struct { - VirtualDeviceURIBackingInfo -} - -func init() { - t["VirtualSerialPortURIBackingInfo"] = reflect.TypeOf((*VirtualSerialPortURIBackingInfo)(nil)).Elem() -} - -type VirtualSerialPortURIBackingOption struct { - VirtualDeviceURIBackingOption -} - -func init() { - t["VirtualSerialPortURIBackingOption"] = reflect.TypeOf((*VirtualSerialPortURIBackingOption)(nil)).Elem() -} - -type VirtualSoundBlaster16 struct { - VirtualSoundCard -} - -func init() { - t["VirtualSoundBlaster16"] = reflect.TypeOf((*VirtualSoundBlaster16)(nil)).Elem() -} - -type VirtualSoundBlaster16Option struct { - VirtualSoundCardOption -} - -func init() { - t["VirtualSoundBlaster16Option"] = reflect.TypeOf((*VirtualSoundBlaster16Option)(nil)).Elem() -} - -type VirtualSoundCard struct { - VirtualDevice -} - -func init() { - t["VirtualSoundCard"] = reflect.TypeOf((*VirtualSoundCard)(nil)).Elem() -} - -type VirtualSoundCardDeviceBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualSoundCardDeviceBackingInfo"] = reflect.TypeOf((*VirtualSoundCardDeviceBackingInfo)(nil)).Elem() -} - -type VirtualSoundCardDeviceBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualSoundCardDeviceBackingOption"] = reflect.TypeOf((*VirtualSoundCardDeviceBackingOption)(nil)).Elem() -} - -type VirtualSoundCardOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualSoundCardOption"] = reflect.TypeOf((*VirtualSoundCardOption)(nil)).Elem() -} - -type VirtualSriovEthernetCard struct { - VirtualEthernetCard - - AllowGuestOSMtuChange *bool `xml:"allowGuestOSMtuChange"` - SriovBacking *VirtualSriovEthernetCardSriovBackingInfo `xml:"sriovBacking,omitempty"` -} - -func init() { - t["VirtualSriovEthernetCard"] = reflect.TypeOf((*VirtualSriovEthernetCard)(nil)).Elem() -} - -type VirtualSriovEthernetCardOption struct { - VirtualEthernetCardOption -} - -func init() { - t["VirtualSriovEthernetCardOption"] = reflect.TypeOf((*VirtualSriovEthernetCardOption)(nil)).Elem() -} - -type VirtualSriovEthernetCardSriovBackingInfo struct { - VirtualDeviceBackingInfo - - PhysicalFunctionBacking *VirtualPCIPassthroughDeviceBackingInfo `xml:"physicalFunctionBacking,omitempty"` - VirtualFunctionBacking *VirtualPCIPassthroughDeviceBackingInfo `xml:"virtualFunctionBacking,omitempty"` - VirtualFunctionIndex int32 `xml:"virtualFunctionIndex,omitempty"` -} - -func init() { - t["VirtualSriovEthernetCardSriovBackingInfo"] = reflect.TypeOf((*VirtualSriovEthernetCardSriovBackingInfo)(nil)).Elem() -} - -type VirtualSriovEthernetCardSriovBackingOption struct { - VirtualDeviceBackingOption -} - -func init() { - t["VirtualSriovEthernetCardSriovBackingOption"] = reflect.TypeOf((*VirtualSriovEthernetCardSriovBackingOption)(nil)).Elem() -} - -type VirtualSwitchProfile struct { - ApplyProfile - - Key string `xml:"key"` - Name string `xml:"name"` - Link LinkProfile `xml:"link"` - NumPorts NumPortsProfile `xml:"numPorts"` - NetworkPolicy NetworkPolicyProfile `xml:"networkPolicy"` -} - -func init() { - t["VirtualSwitchProfile"] = reflect.TypeOf((*VirtualSwitchProfile)(nil)).Elem() -} - -type VirtualSwitchSelectionProfile struct { - ApplyProfile -} - -func init() { - t["VirtualSwitchSelectionProfile"] = reflect.TypeOf((*VirtualSwitchSelectionProfile)(nil)).Elem() -} - -type VirtualUSB struct { - VirtualDevice - - Connected bool `xml:"connected"` - Vendor int32 `xml:"vendor,omitempty"` - Product int32 `xml:"product,omitempty"` - Family []string `xml:"family,omitempty"` - Speed []string `xml:"speed,omitempty"` -} - -func init() { - t["VirtualUSB"] = reflect.TypeOf((*VirtualUSB)(nil)).Elem() -} - -type VirtualUSBController struct { - VirtualController - - AutoConnectDevices *bool `xml:"autoConnectDevices"` - EhciEnabled *bool `xml:"ehciEnabled"` -} - -func init() { - t["VirtualUSBController"] = reflect.TypeOf((*VirtualUSBController)(nil)).Elem() -} - -type VirtualUSBControllerOption struct { - VirtualControllerOption - - AutoConnectDevices BoolOption `xml:"autoConnectDevices"` - EhciSupported BoolOption `xml:"ehciSupported"` - SupportedSpeeds []string `xml:"supportedSpeeds,omitempty"` -} - -func init() { - t["VirtualUSBControllerOption"] = reflect.TypeOf((*VirtualUSBControllerOption)(nil)).Elem() -} - -type VirtualUSBControllerPciBusSlotInfo struct { - VirtualDevicePciBusSlotInfo - - EhciPciSlotNumber int32 `xml:"ehciPciSlotNumber,omitempty"` -} - -func init() { - t["VirtualUSBControllerPciBusSlotInfo"] = reflect.TypeOf((*VirtualUSBControllerPciBusSlotInfo)(nil)).Elem() -} - -type VirtualUSBOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualUSBOption"] = reflect.TypeOf((*VirtualUSBOption)(nil)).Elem() -} - -type VirtualUSBRemoteClientBackingInfo struct { - VirtualDeviceRemoteDeviceBackingInfo - - Hostname string `xml:"hostname"` -} - -func init() { - t["VirtualUSBRemoteClientBackingInfo"] = reflect.TypeOf((*VirtualUSBRemoteClientBackingInfo)(nil)).Elem() -} - -type VirtualUSBRemoteClientBackingOption struct { - VirtualDeviceRemoteDeviceBackingOption -} - -func init() { - t["VirtualUSBRemoteClientBackingOption"] = reflect.TypeOf((*VirtualUSBRemoteClientBackingOption)(nil)).Elem() -} - -type VirtualUSBRemoteHostBackingInfo struct { - VirtualDeviceDeviceBackingInfo - - Hostname string `xml:"hostname"` -} - -func init() { - t["VirtualUSBRemoteHostBackingInfo"] = reflect.TypeOf((*VirtualUSBRemoteHostBackingInfo)(nil)).Elem() -} - -type VirtualUSBRemoteHostBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualUSBRemoteHostBackingOption"] = reflect.TypeOf((*VirtualUSBRemoteHostBackingOption)(nil)).Elem() -} - -type VirtualUSBUSBBackingInfo struct { - VirtualDeviceDeviceBackingInfo -} - -func init() { - t["VirtualUSBUSBBackingInfo"] = reflect.TypeOf((*VirtualUSBUSBBackingInfo)(nil)).Elem() -} - -type VirtualUSBUSBBackingOption struct { - VirtualDeviceDeviceBackingOption -} - -func init() { - t["VirtualUSBUSBBackingOption"] = reflect.TypeOf((*VirtualUSBUSBBackingOption)(nil)).Elem() -} - -type VirtualUSBXHCIController struct { - VirtualController - - AutoConnectDevices *bool `xml:"autoConnectDevices"` -} - -func init() { - t["VirtualUSBXHCIController"] = reflect.TypeOf((*VirtualUSBXHCIController)(nil)).Elem() -} - -type VirtualUSBXHCIControllerOption struct { - VirtualControllerOption - - AutoConnectDevices BoolOption `xml:"autoConnectDevices"` - SupportedSpeeds []string `xml:"supportedSpeeds"` -} - -func init() { - t["VirtualUSBXHCIControllerOption"] = reflect.TypeOf((*VirtualUSBXHCIControllerOption)(nil)).Elem() -} - -type VirtualVMIROMOption struct { - VirtualDeviceOption -} - -func init() { - t["VirtualVMIROMOption"] = reflect.TypeOf((*VirtualVMIROMOption)(nil)).Elem() -} - -type VirtualVideoCardOption struct { - VirtualDeviceOption - - VideoRamSizeInKB *LongOption `xml:"videoRamSizeInKB,omitempty"` - NumDisplays *IntOption `xml:"numDisplays,omitempty"` - UseAutoDetect *BoolOption `xml:"useAutoDetect,omitempty"` - Support3D *BoolOption `xml:"support3D,omitempty"` - Use3dRendererSupported *BoolOption `xml:"use3dRendererSupported,omitempty"` - GraphicsMemorySizeInKB *LongOption `xml:"graphicsMemorySizeInKB,omitempty"` - GraphicsMemorySizeSupported *BoolOption `xml:"graphicsMemorySizeSupported,omitempty"` -} - -func init() { - t["VirtualVideoCardOption"] = reflect.TypeOf((*VirtualVideoCardOption)(nil)).Elem() -} - -type VirtualVmxnet struct { - VirtualEthernetCard -} - -func init() { - t["VirtualVmxnet"] = reflect.TypeOf((*VirtualVmxnet)(nil)).Elem() -} - -type VirtualVmxnet2 struct { - VirtualVmxnet -} - -func init() { - t["VirtualVmxnet2"] = reflect.TypeOf((*VirtualVmxnet2)(nil)).Elem() -} - -type VirtualVmxnet2Option struct { - VirtualVmxnetOption -} - -func init() { - t["VirtualVmxnet2Option"] = reflect.TypeOf((*VirtualVmxnet2Option)(nil)).Elem() -} - -type VirtualVmxnet3 struct { - VirtualVmxnet -} - -func init() { - t["VirtualVmxnet3"] = reflect.TypeOf((*VirtualVmxnet3)(nil)).Elem() -} - -type VirtualVmxnet3Option struct { - VirtualVmxnetOption -} - -func init() { - t["VirtualVmxnet3Option"] = reflect.TypeOf((*VirtualVmxnet3Option)(nil)).Elem() -} - -type VirtualVmxnet3Vrdma struct { - VirtualVmxnet3 -} - -func init() { - t["VirtualVmxnet3Vrdma"] = reflect.TypeOf((*VirtualVmxnet3Vrdma)(nil)).Elem() -} - -type VirtualVmxnet3VrdmaOption struct { - VirtualVmxnet3Option -} - -func init() { - t["VirtualVmxnet3VrdmaOption"] = reflect.TypeOf((*VirtualVmxnet3VrdmaOption)(nil)).Elem() -} - -type VirtualVmxnetOption struct { - VirtualEthernetCardOption -} - -func init() { - t["VirtualVmxnetOption"] = reflect.TypeOf((*VirtualVmxnetOption)(nil)).Elem() -} - -type VlanProfile struct { - ApplyProfile -} - -func init() { - t["VlanProfile"] = reflect.TypeOf((*VlanProfile)(nil)).Elem() -} - -type VmAcquiredMksTicketEvent struct { - VmEvent -} - -func init() { - t["VmAcquiredMksTicketEvent"] = reflect.TypeOf((*VmAcquiredMksTicketEvent)(nil)).Elem() -} - -type VmAcquiredTicketEvent struct { - VmEvent - - TicketType string `xml:"ticketType"` -} - -func init() { - t["VmAcquiredTicketEvent"] = reflect.TypeOf((*VmAcquiredTicketEvent)(nil)).Elem() -} - -type VmAlreadyExistsInDatacenter struct { - InvalidFolder - - Host ManagedObjectReference `xml:"host"` - Hostname string `xml:"hostname"` - Vm []ManagedObjectReference `xml:"vm"` -} - -func init() { - t["VmAlreadyExistsInDatacenter"] = reflect.TypeOf((*VmAlreadyExistsInDatacenter)(nil)).Elem() -} - -type VmAlreadyExistsInDatacenterFault VmAlreadyExistsInDatacenter - -func init() { - t["VmAlreadyExistsInDatacenterFault"] = reflect.TypeOf((*VmAlreadyExistsInDatacenterFault)(nil)).Elem() -} - -type VmAutoRenameEvent struct { - VmEvent - - OldName string `xml:"oldName"` - NewName string `xml:"newName"` -} - -func init() { - t["VmAutoRenameEvent"] = reflect.TypeOf((*VmAutoRenameEvent)(nil)).Elem() -} - -type VmBeingClonedEvent struct { - VmCloneEvent - - DestFolder FolderEventArgument `xml:"destFolder"` - DestName string `xml:"destName"` - DestHost HostEventArgument `xml:"destHost"` -} - -func init() { - t["VmBeingClonedEvent"] = reflect.TypeOf((*VmBeingClonedEvent)(nil)).Elem() -} - -type VmBeingClonedNoFolderEvent struct { - VmCloneEvent - - DestName string `xml:"destName"` - DestHost HostEventArgument `xml:"destHost"` -} - -func init() { - t["VmBeingClonedNoFolderEvent"] = reflect.TypeOf((*VmBeingClonedNoFolderEvent)(nil)).Elem() -} - -type VmBeingCreatedEvent struct { - VmEvent - - ConfigSpec *VirtualMachineConfigSpec `xml:"configSpec,omitempty"` -} - -func init() { - t["VmBeingCreatedEvent"] = reflect.TypeOf((*VmBeingCreatedEvent)(nil)).Elem() -} - -type VmBeingDeployedEvent struct { - VmEvent - - SrcTemplate VmEventArgument `xml:"srcTemplate"` -} - -func init() { - t["VmBeingDeployedEvent"] = reflect.TypeOf((*VmBeingDeployedEvent)(nil)).Elem() -} - -type VmBeingHotMigratedEvent struct { - VmEvent - - DestHost HostEventArgument `xml:"destHost"` - DestDatacenter *DatacenterEventArgument `xml:"destDatacenter,omitempty"` - DestDatastore *DatastoreEventArgument `xml:"destDatastore,omitempty"` -} - -func init() { - t["VmBeingHotMigratedEvent"] = reflect.TypeOf((*VmBeingHotMigratedEvent)(nil)).Elem() -} - -type VmBeingMigratedEvent struct { - VmEvent - - DestHost HostEventArgument `xml:"destHost"` - DestDatacenter *DatacenterEventArgument `xml:"destDatacenter,omitempty"` - DestDatastore *DatastoreEventArgument `xml:"destDatastore,omitempty"` -} - -func init() { - t["VmBeingMigratedEvent"] = reflect.TypeOf((*VmBeingMigratedEvent)(nil)).Elem() -} - -type VmBeingRelocatedEvent struct { - VmRelocateSpecEvent - - DestHost HostEventArgument `xml:"destHost"` - DestDatacenter *DatacenterEventArgument `xml:"destDatacenter,omitempty"` - DestDatastore *DatastoreEventArgument `xml:"destDatastore,omitempty"` -} - -func init() { - t["VmBeingRelocatedEvent"] = reflect.TypeOf((*VmBeingRelocatedEvent)(nil)).Elem() -} - -type VmCloneEvent struct { - VmEvent -} - -func init() { - t["VmCloneEvent"] = reflect.TypeOf((*VmCloneEvent)(nil)).Elem() -} - -type VmCloneFailedEvent struct { - VmCloneEvent - - DestFolder FolderEventArgument `xml:"destFolder"` - DestName string `xml:"destName"` - DestHost HostEventArgument `xml:"destHost"` - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmCloneFailedEvent"] = reflect.TypeOf((*VmCloneFailedEvent)(nil)).Elem() -} - -type VmClonedEvent struct { - VmCloneEvent - - SourceVm VmEventArgument `xml:"sourceVm"` -} - -func init() { - t["VmClonedEvent"] = reflect.TypeOf((*VmClonedEvent)(nil)).Elem() -} - -type VmConfigFault struct { - VimFault -} - -func init() { - t["VmConfigFault"] = reflect.TypeOf((*VmConfigFault)(nil)).Elem() -} - -type VmConfigFaultFault BaseVmConfigFault - -func init() { - t["VmConfigFaultFault"] = reflect.TypeOf((*VmConfigFaultFault)(nil)).Elem() -} - -type VmConfigFileEncryptionInfo struct { - DynamicData - - KeyId *CryptoKeyId `xml:"keyId,omitempty"` -} - -func init() { - t["VmConfigFileEncryptionInfo"] = reflect.TypeOf((*VmConfigFileEncryptionInfo)(nil)).Elem() -} - -type VmConfigFileInfo struct { - FileInfo - - ConfigVersion int32 `xml:"configVersion,omitempty"` - Encryption *VmConfigFileEncryptionInfo `xml:"encryption,omitempty"` -} - -func init() { - t["VmConfigFileInfo"] = reflect.TypeOf((*VmConfigFileInfo)(nil)).Elem() -} - -type VmConfigFileQuery struct { - FileQuery - - Filter *VmConfigFileQueryFilter `xml:"filter,omitempty"` - Details *VmConfigFileQueryFlags `xml:"details,omitempty"` -} - -func init() { - t["VmConfigFileQuery"] = reflect.TypeOf((*VmConfigFileQuery)(nil)).Elem() -} - -type VmConfigFileQueryFilter struct { - DynamicData - - MatchConfigVersion []int32 `xml:"matchConfigVersion,omitempty"` - Encrypted *bool `xml:"encrypted"` -} - -func init() { - t["VmConfigFileQueryFilter"] = reflect.TypeOf((*VmConfigFileQueryFilter)(nil)).Elem() -} - -type VmConfigFileQueryFlags struct { - DynamicData - - ConfigVersion bool `xml:"configVersion"` - Encryption *bool `xml:"encryption"` -} - -func init() { - t["VmConfigFileQueryFlags"] = reflect.TypeOf((*VmConfigFileQueryFlags)(nil)).Elem() -} - -type VmConfigIncompatibleForFaultTolerance struct { - VmConfigFault - - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["VmConfigIncompatibleForFaultTolerance"] = reflect.TypeOf((*VmConfigIncompatibleForFaultTolerance)(nil)).Elem() -} - -type VmConfigIncompatibleForFaultToleranceFault VmConfigIncompatibleForFaultTolerance - -func init() { - t["VmConfigIncompatibleForFaultToleranceFault"] = reflect.TypeOf((*VmConfigIncompatibleForFaultToleranceFault)(nil)).Elem() -} - -type VmConfigIncompatibleForRecordReplay struct { - VmConfigFault - - Fault *LocalizedMethodFault `xml:"fault,omitempty"` -} - -func init() { - t["VmConfigIncompatibleForRecordReplay"] = reflect.TypeOf((*VmConfigIncompatibleForRecordReplay)(nil)).Elem() -} - -type VmConfigIncompatibleForRecordReplayFault VmConfigIncompatibleForRecordReplay - -func init() { - t["VmConfigIncompatibleForRecordReplayFault"] = reflect.TypeOf((*VmConfigIncompatibleForRecordReplayFault)(nil)).Elem() -} - -type VmConfigInfo struct { - DynamicData - - Product []VAppProductInfo `xml:"product,omitempty"` - Property []VAppPropertyInfo `xml:"property,omitempty"` - IpAssignment VAppIPAssignmentInfo `xml:"ipAssignment"` - Eula []string `xml:"eula,omitempty"` - OvfSection []VAppOvfSectionInfo `xml:"ovfSection,omitempty"` - OvfEnvironmentTransport []string `xml:"ovfEnvironmentTransport,omitempty"` - InstallBootRequired bool `xml:"installBootRequired"` - InstallBootStopDelay int32 `xml:"installBootStopDelay"` -} - -func init() { - t["VmConfigInfo"] = reflect.TypeOf((*VmConfigInfo)(nil)).Elem() -} - -type VmConfigMissingEvent struct { - VmEvent -} - -func init() { - t["VmConfigMissingEvent"] = reflect.TypeOf((*VmConfigMissingEvent)(nil)).Elem() -} - -type VmConfigSpec struct { - DynamicData - - Product []VAppProductSpec `xml:"product,omitempty"` - Property []VAppPropertySpec `xml:"property,omitempty"` - IpAssignment *VAppIPAssignmentInfo `xml:"ipAssignment,omitempty"` - Eula []string `xml:"eula,omitempty"` - OvfSection []VAppOvfSectionSpec `xml:"ovfSection,omitempty"` - OvfEnvironmentTransport []string `xml:"ovfEnvironmentTransport,omitempty"` - InstallBootRequired *bool `xml:"installBootRequired"` - InstallBootStopDelay int32 `xml:"installBootStopDelay,omitempty"` -} - -func init() { - t["VmConfigSpec"] = reflect.TypeOf((*VmConfigSpec)(nil)).Elem() -} - -type VmConnectedEvent struct { - VmEvent -} - -func init() { - t["VmConnectedEvent"] = reflect.TypeOf((*VmConnectedEvent)(nil)).Elem() -} - -type VmCreatedEvent struct { - VmEvent -} - -func init() { - t["VmCreatedEvent"] = reflect.TypeOf((*VmCreatedEvent)(nil)).Elem() -} - -type VmDasBeingResetEvent struct { - VmEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["VmDasBeingResetEvent"] = reflect.TypeOf((*VmDasBeingResetEvent)(nil)).Elem() -} - -type VmDasBeingResetWithScreenshotEvent struct { - VmDasBeingResetEvent - - ScreenshotFilePath string `xml:"screenshotFilePath"` -} - -func init() { - t["VmDasBeingResetWithScreenshotEvent"] = reflect.TypeOf((*VmDasBeingResetWithScreenshotEvent)(nil)).Elem() -} - -type VmDasResetFailedEvent struct { - VmEvent -} - -func init() { - t["VmDasResetFailedEvent"] = reflect.TypeOf((*VmDasResetFailedEvent)(nil)).Elem() -} - -type VmDasUpdateErrorEvent struct { - VmEvent -} - -func init() { - t["VmDasUpdateErrorEvent"] = reflect.TypeOf((*VmDasUpdateErrorEvent)(nil)).Elem() -} - -type VmDasUpdateOkEvent struct { - VmEvent -} - -func init() { - t["VmDasUpdateOkEvent"] = reflect.TypeOf((*VmDasUpdateOkEvent)(nil)).Elem() -} - -type VmDateRolledBackEvent struct { - VmEvent -} - -func init() { - t["VmDateRolledBackEvent"] = reflect.TypeOf((*VmDateRolledBackEvent)(nil)).Elem() -} - -type VmDeployFailedEvent struct { - VmEvent - - DestDatastore BaseEntityEventArgument `xml:"destDatastore,typeattr"` - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmDeployFailedEvent"] = reflect.TypeOf((*VmDeployFailedEvent)(nil)).Elem() -} - -type VmDeployedEvent struct { - VmEvent - - SrcTemplate VmEventArgument `xml:"srcTemplate"` -} - -func init() { - t["VmDeployedEvent"] = reflect.TypeOf((*VmDeployedEvent)(nil)).Elem() -} - -type VmDisconnectedEvent struct { - VmEvent -} - -func init() { - t["VmDisconnectedEvent"] = reflect.TypeOf((*VmDisconnectedEvent)(nil)).Elem() -} - -type VmDiscoveredEvent struct { - VmEvent -} - -func init() { - t["VmDiscoveredEvent"] = reflect.TypeOf((*VmDiscoveredEvent)(nil)).Elem() -} - -type VmDiskFailedEvent struct { - VmEvent - - Disk string `xml:"disk"` - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmDiskFailedEvent"] = reflect.TypeOf((*VmDiskFailedEvent)(nil)).Elem() -} - -type VmDiskFileEncryptionInfo struct { - DynamicData - - KeyId *CryptoKeyId `xml:"keyId,omitempty"` -} - -func init() { - t["VmDiskFileEncryptionInfo"] = reflect.TypeOf((*VmDiskFileEncryptionInfo)(nil)).Elem() -} - -type VmDiskFileInfo struct { - FileInfo - - DiskType string `xml:"diskType,omitempty"` - CapacityKb int64 `xml:"capacityKb,omitempty"` - HardwareVersion int32 `xml:"hardwareVersion,omitempty"` - ControllerType string `xml:"controllerType,omitempty"` - DiskExtents []string `xml:"diskExtents,omitempty"` - Thin *bool `xml:"thin"` - Encryption *VmDiskFileEncryptionInfo `xml:"encryption,omitempty"` -} - -func init() { - t["VmDiskFileInfo"] = reflect.TypeOf((*VmDiskFileInfo)(nil)).Elem() -} - -type VmDiskFileQuery struct { - FileQuery - - Filter *VmDiskFileQueryFilter `xml:"filter,omitempty"` - Details *VmDiskFileQueryFlags `xml:"details,omitempty"` -} - -func init() { - t["VmDiskFileQuery"] = reflect.TypeOf((*VmDiskFileQuery)(nil)).Elem() -} - -type VmDiskFileQueryFilter struct { - DynamicData - - DiskType []string `xml:"diskType,omitempty"` - MatchHardwareVersion []int32 `xml:"matchHardwareVersion,omitempty"` - ControllerType []string `xml:"controllerType,omitempty"` - Thin *bool `xml:"thin"` - Encrypted *bool `xml:"encrypted"` -} - -func init() { - t["VmDiskFileQueryFilter"] = reflect.TypeOf((*VmDiskFileQueryFilter)(nil)).Elem() -} - -type VmDiskFileQueryFlags struct { - DynamicData - - DiskType bool `xml:"diskType"` - CapacityKb bool `xml:"capacityKb"` - HardwareVersion bool `xml:"hardwareVersion"` - ControllerType *bool `xml:"controllerType"` - DiskExtents *bool `xml:"diskExtents"` - Thin *bool `xml:"thin"` - Encryption *bool `xml:"encryption"` -} - -func init() { - t["VmDiskFileQueryFlags"] = reflect.TypeOf((*VmDiskFileQueryFlags)(nil)).Elem() -} - -type VmEmigratingEvent struct { - VmEvent -} - -func init() { - t["VmEmigratingEvent"] = reflect.TypeOf((*VmEmigratingEvent)(nil)).Elem() -} - -type VmEndRecordingEvent struct { - VmEvent -} - -func init() { - t["VmEndRecordingEvent"] = reflect.TypeOf((*VmEndRecordingEvent)(nil)).Elem() -} - -type VmEndReplayingEvent struct { - VmEvent -} - -func init() { - t["VmEndReplayingEvent"] = reflect.TypeOf((*VmEndReplayingEvent)(nil)).Elem() -} - -type VmEvent struct { - Event - - Template bool `xml:"template"` -} - -func init() { - t["VmEvent"] = reflect.TypeOf((*VmEvent)(nil)).Elem() -} - -type VmEventArgument struct { - EntityEventArgument - - Vm ManagedObjectReference `xml:"vm"` -} - -func init() { - t["VmEventArgument"] = reflect.TypeOf((*VmEventArgument)(nil)).Elem() -} - -type VmFailedMigrateEvent struct { - VmEvent - - DestHost HostEventArgument `xml:"destHost"` - Reason LocalizedMethodFault `xml:"reason"` - DestDatacenter *DatacenterEventArgument `xml:"destDatacenter,omitempty"` - DestDatastore *DatastoreEventArgument `xml:"destDatastore,omitempty"` -} - -func init() { - t["VmFailedMigrateEvent"] = reflect.TypeOf((*VmFailedMigrateEvent)(nil)).Elem() -} - -type VmFailedRelayoutEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedRelayoutEvent"] = reflect.TypeOf((*VmFailedRelayoutEvent)(nil)).Elem() -} - -type VmFailedRelayoutOnVmfs2DatastoreEvent struct { - VmEvent -} - -func init() { - t["VmFailedRelayoutOnVmfs2DatastoreEvent"] = reflect.TypeOf((*VmFailedRelayoutOnVmfs2DatastoreEvent)(nil)).Elem() -} - -type VmFailedStartingSecondaryEvent struct { - VmEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["VmFailedStartingSecondaryEvent"] = reflect.TypeOf((*VmFailedStartingSecondaryEvent)(nil)).Elem() -} - -type VmFailedToPowerOffEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedToPowerOffEvent"] = reflect.TypeOf((*VmFailedToPowerOffEvent)(nil)).Elem() -} - -type VmFailedToPowerOnEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedToPowerOnEvent"] = reflect.TypeOf((*VmFailedToPowerOnEvent)(nil)).Elem() -} - -type VmFailedToRebootGuestEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedToRebootGuestEvent"] = reflect.TypeOf((*VmFailedToRebootGuestEvent)(nil)).Elem() -} - -type VmFailedToResetEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedToResetEvent"] = reflect.TypeOf((*VmFailedToResetEvent)(nil)).Elem() -} - -type VmFailedToShutdownGuestEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedToShutdownGuestEvent"] = reflect.TypeOf((*VmFailedToShutdownGuestEvent)(nil)).Elem() -} - -type VmFailedToStandbyGuestEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedToStandbyGuestEvent"] = reflect.TypeOf((*VmFailedToStandbyGuestEvent)(nil)).Elem() -} - -type VmFailedToSuspendEvent struct { - VmEvent - - Reason LocalizedMethodFault `xml:"reason"` -} - -func init() { - t["VmFailedToSuspendEvent"] = reflect.TypeOf((*VmFailedToSuspendEvent)(nil)).Elem() -} - -type VmFailedUpdatingSecondaryConfig struct { - VmEvent -} - -func init() { - t["VmFailedUpdatingSecondaryConfig"] = reflect.TypeOf((*VmFailedUpdatingSecondaryConfig)(nil)).Elem() -} - -type VmFailoverFailed struct { - VmEvent - - Reason *LocalizedMethodFault `xml:"reason,omitempty"` -} - -func init() { - t["VmFailoverFailed"] = reflect.TypeOf((*VmFailoverFailed)(nil)).Elem() -} - -type VmFaultToleranceConfigIssue struct { - VmFaultToleranceIssue - - Reason string `xml:"reason,omitempty"` - EntityName string `xml:"entityName,omitempty"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` -} - -func init() { - t["VmFaultToleranceConfigIssue"] = reflect.TypeOf((*VmFaultToleranceConfigIssue)(nil)).Elem() -} - -type VmFaultToleranceConfigIssueFault VmFaultToleranceConfigIssue - -func init() { - t["VmFaultToleranceConfigIssueFault"] = reflect.TypeOf((*VmFaultToleranceConfigIssueFault)(nil)).Elem() -} - -type VmFaultToleranceConfigIssueWrapper struct { - VmFaultToleranceIssue - - EntityName string `xml:"entityName,omitempty"` - Entity *ManagedObjectReference `xml:"entity,omitempty"` - Error *LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["VmFaultToleranceConfigIssueWrapper"] = reflect.TypeOf((*VmFaultToleranceConfigIssueWrapper)(nil)).Elem() -} - -type VmFaultToleranceConfigIssueWrapperFault VmFaultToleranceConfigIssueWrapper - -func init() { - t["VmFaultToleranceConfigIssueWrapperFault"] = reflect.TypeOf((*VmFaultToleranceConfigIssueWrapperFault)(nil)).Elem() -} - -type VmFaultToleranceInvalidFileBacking struct { - VmFaultToleranceIssue - - BackingType string `xml:"backingType,omitempty"` - BackingFilename string `xml:"backingFilename,omitempty"` -} - -func init() { - t["VmFaultToleranceInvalidFileBacking"] = reflect.TypeOf((*VmFaultToleranceInvalidFileBacking)(nil)).Elem() -} - -type VmFaultToleranceInvalidFileBackingFault VmFaultToleranceInvalidFileBacking - -func init() { - t["VmFaultToleranceInvalidFileBackingFault"] = reflect.TypeOf((*VmFaultToleranceInvalidFileBackingFault)(nil)).Elem() -} - -type VmFaultToleranceIssue struct { - VimFault -} - -func init() { - t["VmFaultToleranceIssue"] = reflect.TypeOf((*VmFaultToleranceIssue)(nil)).Elem() -} - -type VmFaultToleranceIssueFault BaseVmFaultToleranceIssue - -func init() { - t["VmFaultToleranceIssueFault"] = reflect.TypeOf((*VmFaultToleranceIssueFault)(nil)).Elem() -} - -type VmFaultToleranceOpIssuesList struct { - VmFaultToleranceIssue - - Errors []LocalizedMethodFault `xml:"errors,omitempty"` - Warnings []LocalizedMethodFault `xml:"warnings,omitempty"` -} - -func init() { - t["VmFaultToleranceOpIssuesList"] = reflect.TypeOf((*VmFaultToleranceOpIssuesList)(nil)).Elem() -} - -type VmFaultToleranceOpIssuesListFault VmFaultToleranceOpIssuesList - -func init() { - t["VmFaultToleranceOpIssuesListFault"] = reflect.TypeOf((*VmFaultToleranceOpIssuesListFault)(nil)).Elem() -} - -type VmFaultToleranceStateChangedEvent struct { - VmEvent - - OldState VirtualMachineFaultToleranceState `xml:"oldState"` - NewState VirtualMachineFaultToleranceState `xml:"newState"` -} - -func init() { - t["VmFaultToleranceStateChangedEvent"] = reflect.TypeOf((*VmFaultToleranceStateChangedEvent)(nil)).Elem() -} - -type VmFaultToleranceTooManyFtVcpusOnHost struct { - InsufficientResourcesFault - - HostName string `xml:"hostName,omitempty"` - MaxNumFtVcpus int32 `xml:"maxNumFtVcpus"` -} - -func init() { - t["VmFaultToleranceTooManyFtVcpusOnHost"] = reflect.TypeOf((*VmFaultToleranceTooManyFtVcpusOnHost)(nil)).Elem() -} - -type VmFaultToleranceTooManyFtVcpusOnHostFault VmFaultToleranceTooManyFtVcpusOnHost - -func init() { - t["VmFaultToleranceTooManyFtVcpusOnHostFault"] = reflect.TypeOf((*VmFaultToleranceTooManyFtVcpusOnHostFault)(nil)).Elem() -} - -type VmFaultToleranceTooManyVMsOnHost struct { - InsufficientResourcesFault - - HostName string `xml:"hostName,omitempty"` - MaxNumFtVms int32 `xml:"maxNumFtVms"` -} - -func init() { - t["VmFaultToleranceTooManyVMsOnHost"] = reflect.TypeOf((*VmFaultToleranceTooManyVMsOnHost)(nil)).Elem() -} - -type VmFaultToleranceTooManyVMsOnHostFault VmFaultToleranceTooManyVMsOnHost - -func init() { - t["VmFaultToleranceTooManyVMsOnHostFault"] = reflect.TypeOf((*VmFaultToleranceTooManyVMsOnHostFault)(nil)).Elem() -} - -type VmFaultToleranceTurnedOffEvent struct { - VmEvent -} - -func init() { - t["VmFaultToleranceTurnedOffEvent"] = reflect.TypeOf((*VmFaultToleranceTurnedOffEvent)(nil)).Elem() -} - -type VmFaultToleranceVmTerminatedEvent struct { - VmEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["VmFaultToleranceVmTerminatedEvent"] = reflect.TypeOf((*VmFaultToleranceVmTerminatedEvent)(nil)).Elem() -} - -type VmGuestOSCrashedEvent struct { - VmEvent -} - -func init() { - t["VmGuestOSCrashedEvent"] = reflect.TypeOf((*VmGuestOSCrashedEvent)(nil)).Elem() -} - -type VmGuestRebootEvent struct { - VmEvent -} - -func init() { - t["VmGuestRebootEvent"] = reflect.TypeOf((*VmGuestRebootEvent)(nil)).Elem() -} - -type VmGuestShutdownEvent struct { - VmEvent -} - -func init() { - t["VmGuestShutdownEvent"] = reflect.TypeOf((*VmGuestShutdownEvent)(nil)).Elem() -} - -type VmGuestStandbyEvent struct { - VmEvent -} - -func init() { - t["VmGuestStandbyEvent"] = reflect.TypeOf((*VmGuestStandbyEvent)(nil)).Elem() -} - -type VmHealthMonitoringStateChangedEvent struct { - ClusterEvent - - State string `xml:"state"` - PrevState string `xml:"prevState,omitempty"` -} - -func init() { - t["VmHealthMonitoringStateChangedEvent"] = reflect.TypeOf((*VmHealthMonitoringStateChangedEvent)(nil)).Elem() -} - -type VmHostAffinityRuleViolation struct { - VmConfigFault - - VmName string `xml:"vmName"` - HostName string `xml:"hostName"` -} - -func init() { - t["VmHostAffinityRuleViolation"] = reflect.TypeOf((*VmHostAffinityRuleViolation)(nil)).Elem() -} - -type VmHostAffinityRuleViolationFault VmHostAffinityRuleViolation - -func init() { - t["VmHostAffinityRuleViolationFault"] = reflect.TypeOf((*VmHostAffinityRuleViolationFault)(nil)).Elem() -} - -type VmInstanceUuidAssignedEvent struct { - VmEvent - - InstanceUuid string `xml:"instanceUuid"` -} - -func init() { - t["VmInstanceUuidAssignedEvent"] = reflect.TypeOf((*VmInstanceUuidAssignedEvent)(nil)).Elem() -} - -type VmInstanceUuidChangedEvent struct { - VmEvent - - OldInstanceUuid string `xml:"oldInstanceUuid"` - NewInstanceUuid string `xml:"newInstanceUuid"` -} - -func init() { - t["VmInstanceUuidChangedEvent"] = reflect.TypeOf((*VmInstanceUuidChangedEvent)(nil)).Elem() -} - -type VmInstanceUuidConflictEvent struct { - VmEvent - - ConflictedVm VmEventArgument `xml:"conflictedVm"` - InstanceUuid string `xml:"instanceUuid"` -} - -func init() { - t["VmInstanceUuidConflictEvent"] = reflect.TypeOf((*VmInstanceUuidConflictEvent)(nil)).Elem() -} - -type VmLimitLicense struct { - NotEnoughLicenses - - Limit int32 `xml:"limit"` -} - -func init() { - t["VmLimitLicense"] = reflect.TypeOf((*VmLimitLicense)(nil)).Elem() -} - -type VmLimitLicenseFault VmLimitLicense - -func init() { - t["VmLimitLicenseFault"] = reflect.TypeOf((*VmLimitLicenseFault)(nil)).Elem() -} - -type VmLogFileInfo struct { - FileInfo -} - -func init() { - t["VmLogFileInfo"] = reflect.TypeOf((*VmLogFileInfo)(nil)).Elem() -} - -type VmLogFileQuery struct { - FileQuery -} - -func init() { - t["VmLogFileQuery"] = reflect.TypeOf((*VmLogFileQuery)(nil)).Elem() -} - -type VmMacAssignedEvent struct { - VmEvent - - Adapter string `xml:"adapter"` - Mac string `xml:"mac"` -} - -func init() { - t["VmMacAssignedEvent"] = reflect.TypeOf((*VmMacAssignedEvent)(nil)).Elem() -} - -type VmMacChangedEvent struct { - VmEvent - - Adapter string `xml:"adapter"` - OldMac string `xml:"oldMac"` - NewMac string `xml:"newMac"` -} - -func init() { - t["VmMacChangedEvent"] = reflect.TypeOf((*VmMacChangedEvent)(nil)).Elem() -} - -type VmMacConflictEvent struct { - VmEvent - - ConflictedVm VmEventArgument `xml:"conflictedVm"` - Mac string `xml:"mac"` -} - -func init() { - t["VmMacConflictEvent"] = reflect.TypeOf((*VmMacConflictEvent)(nil)).Elem() -} - -type VmMaxFTRestartCountReached struct { - VmEvent -} - -func init() { - t["VmMaxFTRestartCountReached"] = reflect.TypeOf((*VmMaxFTRestartCountReached)(nil)).Elem() -} - -type VmMaxRestartCountReached struct { - VmEvent -} - -func init() { - t["VmMaxRestartCountReached"] = reflect.TypeOf((*VmMaxRestartCountReached)(nil)).Elem() -} - -type VmMessageErrorEvent struct { - VmEvent - - Message string `xml:"message"` - MessageInfo []VirtualMachineMessage `xml:"messageInfo,omitempty"` -} - -func init() { - t["VmMessageErrorEvent"] = reflect.TypeOf((*VmMessageErrorEvent)(nil)).Elem() -} - -type VmMessageEvent struct { - VmEvent - - Message string `xml:"message"` - MessageInfo []VirtualMachineMessage `xml:"messageInfo,omitempty"` -} - -func init() { - t["VmMessageEvent"] = reflect.TypeOf((*VmMessageEvent)(nil)).Elem() -} - -type VmMessageWarningEvent struct { - VmEvent - - Message string `xml:"message"` - MessageInfo []VirtualMachineMessage `xml:"messageInfo,omitempty"` -} - -func init() { - t["VmMessageWarningEvent"] = reflect.TypeOf((*VmMessageWarningEvent)(nil)).Elem() -} - -type VmMetadataManagerFault struct { - VimFault -} - -func init() { - t["VmMetadataManagerFault"] = reflect.TypeOf((*VmMetadataManagerFault)(nil)).Elem() -} - -type VmMetadataManagerFaultFault VmMetadataManagerFault - -func init() { - t["VmMetadataManagerFaultFault"] = reflect.TypeOf((*VmMetadataManagerFaultFault)(nil)).Elem() -} - -type VmMigratedEvent struct { - VmEvent - - SourceHost HostEventArgument `xml:"sourceHost"` - SourceDatacenter *DatacenterEventArgument `xml:"sourceDatacenter,omitempty"` - SourceDatastore *DatastoreEventArgument `xml:"sourceDatastore,omitempty"` -} - -func init() { - t["VmMigratedEvent"] = reflect.TypeOf((*VmMigratedEvent)(nil)).Elem() -} - -type VmMonitorIncompatibleForFaultTolerance struct { - VimFault -} - -func init() { - t["VmMonitorIncompatibleForFaultTolerance"] = reflect.TypeOf((*VmMonitorIncompatibleForFaultTolerance)(nil)).Elem() -} - -type VmMonitorIncompatibleForFaultToleranceFault VmMonitorIncompatibleForFaultTolerance - -func init() { - t["VmMonitorIncompatibleForFaultToleranceFault"] = reflect.TypeOf((*VmMonitorIncompatibleForFaultToleranceFault)(nil)).Elem() -} - -type VmNoCompatibleHostForSecondaryEvent struct { - VmEvent -} - -func init() { - t["VmNoCompatibleHostForSecondaryEvent"] = reflect.TypeOf((*VmNoCompatibleHostForSecondaryEvent)(nil)).Elem() -} - -type VmNoNetworkAccessEvent struct { - VmEvent - - DestHost HostEventArgument `xml:"destHost"` -} - -func init() { - t["VmNoNetworkAccessEvent"] = reflect.TypeOf((*VmNoNetworkAccessEvent)(nil)).Elem() -} - -type VmNvramFileInfo struct { - FileInfo -} - -func init() { - t["VmNvramFileInfo"] = reflect.TypeOf((*VmNvramFileInfo)(nil)).Elem() -} - -type VmNvramFileQuery struct { - FileQuery -} - -func init() { - t["VmNvramFileQuery"] = reflect.TypeOf((*VmNvramFileQuery)(nil)).Elem() -} - -type VmOrphanedEvent struct { - VmEvent -} - -func init() { - t["VmOrphanedEvent"] = reflect.TypeOf((*VmOrphanedEvent)(nil)).Elem() -} - -type VmPodConfigForPlacement struct { - DynamicData - - StoragePod ManagedObjectReference `xml:"storagePod"` - Disk []PodDiskLocator `xml:"disk,omitempty"` - VmConfig *StorageDrsVmConfigInfo `xml:"vmConfig,omitempty"` - InterVmRule []BaseClusterRuleInfo `xml:"interVmRule,omitempty,typeattr"` -} - -func init() { - t["VmPodConfigForPlacement"] = reflect.TypeOf((*VmPodConfigForPlacement)(nil)).Elem() -} - -type VmPortGroupProfile struct { - PortGroupProfile -} - -func init() { - t["VmPortGroupProfile"] = reflect.TypeOf((*VmPortGroupProfile)(nil)).Elem() -} - -type VmPowerOffOnIsolationEvent struct { - VmPoweredOffEvent - - IsolatedHost HostEventArgument `xml:"isolatedHost"` -} - -func init() { - t["VmPowerOffOnIsolationEvent"] = reflect.TypeOf((*VmPowerOffOnIsolationEvent)(nil)).Elem() -} - -type VmPowerOnDisabled struct { - InvalidState -} - -func init() { - t["VmPowerOnDisabled"] = reflect.TypeOf((*VmPowerOnDisabled)(nil)).Elem() -} - -type VmPowerOnDisabledFault VmPowerOnDisabled - -func init() { - t["VmPowerOnDisabledFault"] = reflect.TypeOf((*VmPowerOnDisabledFault)(nil)).Elem() -} - -type VmPoweredOffEvent struct { - VmEvent -} - -func init() { - t["VmPoweredOffEvent"] = reflect.TypeOf((*VmPoweredOffEvent)(nil)).Elem() -} - -type VmPoweredOnEvent struct { - VmEvent -} - -func init() { - t["VmPoweredOnEvent"] = reflect.TypeOf((*VmPoweredOnEvent)(nil)).Elem() -} - -type VmPoweringOnWithCustomizedDVPortEvent struct { - VmEvent - - Vnic []VnicPortArgument `xml:"vnic"` -} - -func init() { - t["VmPoweringOnWithCustomizedDVPortEvent"] = reflect.TypeOf((*VmPoweringOnWithCustomizedDVPortEvent)(nil)).Elem() -} - -type VmPrimaryFailoverEvent struct { - VmEvent - - Reason string `xml:"reason,omitempty"` -} - -func init() { - t["VmPrimaryFailoverEvent"] = reflect.TypeOf((*VmPrimaryFailoverEvent)(nil)).Elem() -} - -type VmReconfiguredEvent struct { - VmEvent - - ConfigSpec VirtualMachineConfigSpec `xml:"configSpec"` - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["VmReconfiguredEvent"] = reflect.TypeOf((*VmReconfiguredEvent)(nil)).Elem() -} - -type VmRegisteredEvent struct { - VmEvent -} - -func init() { - t["VmRegisteredEvent"] = reflect.TypeOf((*VmRegisteredEvent)(nil)).Elem() -} - -type VmRelayoutSuccessfulEvent struct { - VmEvent -} - -func init() { - t["VmRelayoutSuccessfulEvent"] = reflect.TypeOf((*VmRelayoutSuccessfulEvent)(nil)).Elem() -} - -type VmRelayoutUpToDateEvent struct { - VmEvent -} - -func init() { - t["VmRelayoutUpToDateEvent"] = reflect.TypeOf((*VmRelayoutUpToDateEvent)(nil)).Elem() -} - -type VmReloadFromPathEvent struct { - VmEvent - - ConfigPath string `xml:"configPath"` -} - -func init() { - t["VmReloadFromPathEvent"] = reflect.TypeOf((*VmReloadFromPathEvent)(nil)).Elem() -} - -type VmReloadFromPathFailedEvent struct { - VmEvent - - ConfigPath string `xml:"configPath"` -} - -func init() { - t["VmReloadFromPathFailedEvent"] = reflect.TypeOf((*VmReloadFromPathFailedEvent)(nil)).Elem() -} - -type VmRelocateFailedEvent struct { - VmRelocateSpecEvent - - DestHost HostEventArgument `xml:"destHost"` - Reason LocalizedMethodFault `xml:"reason"` - DestDatacenter *DatacenterEventArgument `xml:"destDatacenter,omitempty"` - DestDatastore *DatastoreEventArgument `xml:"destDatastore,omitempty"` -} - -func init() { - t["VmRelocateFailedEvent"] = reflect.TypeOf((*VmRelocateFailedEvent)(nil)).Elem() -} - -type VmRelocateSpecEvent struct { - VmEvent -} - -func init() { - t["VmRelocateSpecEvent"] = reflect.TypeOf((*VmRelocateSpecEvent)(nil)).Elem() -} - -type VmRelocatedEvent struct { - VmRelocateSpecEvent - - SourceHost HostEventArgument `xml:"sourceHost"` - SourceDatacenter *DatacenterEventArgument `xml:"sourceDatacenter,omitempty"` - SourceDatastore *DatastoreEventArgument `xml:"sourceDatastore,omitempty"` -} - -func init() { - t["VmRelocatedEvent"] = reflect.TypeOf((*VmRelocatedEvent)(nil)).Elem() -} - -type VmRemoteConsoleConnectedEvent struct { - VmEvent -} - -func init() { - t["VmRemoteConsoleConnectedEvent"] = reflect.TypeOf((*VmRemoteConsoleConnectedEvent)(nil)).Elem() -} - -type VmRemoteConsoleDisconnectedEvent struct { - VmEvent -} - -func init() { - t["VmRemoteConsoleDisconnectedEvent"] = reflect.TypeOf((*VmRemoteConsoleDisconnectedEvent)(nil)).Elem() -} - -type VmRemovedEvent struct { - VmEvent -} - -func init() { - t["VmRemovedEvent"] = reflect.TypeOf((*VmRemovedEvent)(nil)).Elem() -} - -type VmRenamedEvent struct { - VmEvent - - OldName string `xml:"oldName"` - NewName string `xml:"newName"` -} - -func init() { - t["VmRenamedEvent"] = reflect.TypeOf((*VmRenamedEvent)(nil)).Elem() -} - -type VmRequirementsExceedCurrentEVCModeEvent struct { - VmEvent -} - -func init() { - t["VmRequirementsExceedCurrentEVCModeEvent"] = reflect.TypeOf((*VmRequirementsExceedCurrentEVCModeEvent)(nil)).Elem() -} - -type VmResettingEvent struct { - VmEvent -} - -func init() { - t["VmResettingEvent"] = reflect.TypeOf((*VmResettingEvent)(nil)).Elem() -} - -type VmResourcePoolMovedEvent struct { - VmEvent - - OldParent ResourcePoolEventArgument `xml:"oldParent"` - NewParent ResourcePoolEventArgument `xml:"newParent"` -} - -func init() { - t["VmResourcePoolMovedEvent"] = reflect.TypeOf((*VmResourcePoolMovedEvent)(nil)).Elem() -} - -type VmResourceReallocatedEvent struct { - VmEvent - - ConfigChanges *ChangesInfoEventArgument `xml:"configChanges,omitempty"` -} - -func init() { - t["VmResourceReallocatedEvent"] = reflect.TypeOf((*VmResourceReallocatedEvent)(nil)).Elem() -} - -type VmRestartedOnAlternateHostEvent struct { - VmPoweredOnEvent - - SourceHost HostEventArgument `xml:"sourceHost"` -} - -func init() { - t["VmRestartedOnAlternateHostEvent"] = reflect.TypeOf((*VmRestartedOnAlternateHostEvent)(nil)).Elem() -} - -type VmResumingEvent struct { - VmEvent -} - -func init() { - t["VmResumingEvent"] = reflect.TypeOf((*VmResumingEvent)(nil)).Elem() -} - -type VmSecondaryAddedEvent struct { - VmEvent -} - -func init() { - t["VmSecondaryAddedEvent"] = reflect.TypeOf((*VmSecondaryAddedEvent)(nil)).Elem() -} - -type VmSecondaryDisabledBySystemEvent struct { - VmEvent - - Reason *LocalizedMethodFault `xml:"reason,omitempty"` -} - -func init() { - t["VmSecondaryDisabledBySystemEvent"] = reflect.TypeOf((*VmSecondaryDisabledBySystemEvent)(nil)).Elem() -} - -type VmSecondaryDisabledEvent struct { - VmEvent -} - -func init() { - t["VmSecondaryDisabledEvent"] = reflect.TypeOf((*VmSecondaryDisabledEvent)(nil)).Elem() -} - -type VmSecondaryEnabledEvent struct { - VmEvent -} - -func init() { - t["VmSecondaryEnabledEvent"] = reflect.TypeOf((*VmSecondaryEnabledEvent)(nil)).Elem() -} - -type VmSecondaryStartedEvent struct { - VmEvent -} - -func init() { - t["VmSecondaryStartedEvent"] = reflect.TypeOf((*VmSecondaryStartedEvent)(nil)).Elem() -} - -type VmShutdownOnIsolationEvent struct { - VmPoweredOffEvent - - IsolatedHost HostEventArgument `xml:"isolatedHost"` - ShutdownResult string `xml:"shutdownResult,omitempty"` -} - -func init() { - t["VmShutdownOnIsolationEvent"] = reflect.TypeOf((*VmShutdownOnIsolationEvent)(nil)).Elem() -} - -type VmSmpFaultToleranceTooManyVMsOnHost struct { - InsufficientResourcesFault - - HostName string `xml:"hostName,omitempty"` - MaxNumSmpFtVms int32 `xml:"maxNumSmpFtVms"` -} - -func init() { - t["VmSmpFaultToleranceTooManyVMsOnHost"] = reflect.TypeOf((*VmSmpFaultToleranceTooManyVMsOnHost)(nil)).Elem() -} - -type VmSmpFaultToleranceTooManyVMsOnHostFault VmSmpFaultToleranceTooManyVMsOnHost - -func init() { - t["VmSmpFaultToleranceTooManyVMsOnHostFault"] = reflect.TypeOf((*VmSmpFaultToleranceTooManyVMsOnHostFault)(nil)).Elem() -} - -type VmSnapshotFileInfo struct { - FileInfo -} - -func init() { - t["VmSnapshotFileInfo"] = reflect.TypeOf((*VmSnapshotFileInfo)(nil)).Elem() -} - -type VmSnapshotFileQuery struct { - FileQuery -} - -func init() { - t["VmSnapshotFileQuery"] = reflect.TypeOf((*VmSnapshotFileQuery)(nil)).Elem() -} - -type VmStartRecordingEvent struct { - VmEvent -} - -func init() { - t["VmStartRecordingEvent"] = reflect.TypeOf((*VmStartRecordingEvent)(nil)).Elem() -} - -type VmStartReplayingEvent struct { - VmEvent -} - -func init() { - t["VmStartReplayingEvent"] = reflect.TypeOf((*VmStartReplayingEvent)(nil)).Elem() -} - -type VmStartingEvent struct { - VmEvent -} - -func init() { - t["VmStartingEvent"] = reflect.TypeOf((*VmStartingEvent)(nil)).Elem() -} - -type VmStartingSecondaryEvent struct { - VmEvent -} - -func init() { - t["VmStartingSecondaryEvent"] = reflect.TypeOf((*VmStartingSecondaryEvent)(nil)).Elem() -} - -type VmStaticMacConflictEvent struct { - VmEvent - - ConflictedVm VmEventArgument `xml:"conflictedVm"` - Mac string `xml:"mac"` -} - -func init() { - t["VmStaticMacConflictEvent"] = reflect.TypeOf((*VmStaticMacConflictEvent)(nil)).Elem() -} - -type VmStoppingEvent struct { - VmEvent -} - -func init() { - t["VmStoppingEvent"] = reflect.TypeOf((*VmStoppingEvent)(nil)).Elem() -} - -type VmSuspendedEvent struct { - VmEvent -} - -func init() { - t["VmSuspendedEvent"] = reflect.TypeOf((*VmSuspendedEvent)(nil)).Elem() -} - -type VmSuspendingEvent struct { - VmEvent -} - -func init() { - t["VmSuspendingEvent"] = reflect.TypeOf((*VmSuspendingEvent)(nil)).Elem() -} - -type VmTimedoutStartingSecondaryEvent struct { - VmEvent - - Timeout int64 `xml:"timeout,omitempty"` -} - -func init() { - t["VmTimedoutStartingSecondaryEvent"] = reflect.TypeOf((*VmTimedoutStartingSecondaryEvent)(nil)).Elem() -} - -type VmToolsUpgradeFault struct { - VimFault -} - -func init() { - t["VmToolsUpgradeFault"] = reflect.TypeOf((*VmToolsUpgradeFault)(nil)).Elem() -} - -type VmToolsUpgradeFaultFault BaseVmToolsUpgradeFault - -func init() { - t["VmToolsUpgradeFaultFault"] = reflect.TypeOf((*VmToolsUpgradeFaultFault)(nil)).Elem() -} - -type VmUnsupportedStartingEvent struct { - VmStartingEvent - - GuestId string `xml:"guestId"` -} - -func init() { - t["VmUnsupportedStartingEvent"] = reflect.TypeOf((*VmUnsupportedStartingEvent)(nil)).Elem() -} - -type VmUpgradeCompleteEvent struct { - VmEvent - - Version string `xml:"version"` -} - -func init() { - t["VmUpgradeCompleteEvent"] = reflect.TypeOf((*VmUpgradeCompleteEvent)(nil)).Elem() -} - -type VmUpgradeFailedEvent struct { - VmEvent -} - -func init() { - t["VmUpgradeFailedEvent"] = reflect.TypeOf((*VmUpgradeFailedEvent)(nil)).Elem() -} - -type VmUpgradingEvent struct { - VmEvent - - Version string `xml:"version"` -} - -func init() { - t["VmUpgradingEvent"] = reflect.TypeOf((*VmUpgradingEvent)(nil)).Elem() -} - -type VmUuidAssignedEvent struct { - VmEvent - - Uuid string `xml:"uuid"` -} - -func init() { - t["VmUuidAssignedEvent"] = reflect.TypeOf((*VmUuidAssignedEvent)(nil)).Elem() -} - -type VmUuidChangedEvent struct { - VmEvent - - OldUuid string `xml:"oldUuid"` - NewUuid string `xml:"newUuid"` -} - -func init() { - t["VmUuidChangedEvent"] = reflect.TypeOf((*VmUuidChangedEvent)(nil)).Elem() -} - -type VmUuidConflictEvent struct { - VmEvent - - ConflictedVm VmEventArgument `xml:"conflictedVm"` - Uuid string `xml:"uuid"` -} - -func init() { - t["VmUuidConflictEvent"] = reflect.TypeOf((*VmUuidConflictEvent)(nil)).Elem() -} - -type VmValidateMaxDevice struct { - VimFault - - Device string `xml:"device"` - Max int32 `xml:"max"` - Count int32 `xml:"count"` -} - -func init() { - t["VmValidateMaxDevice"] = reflect.TypeOf((*VmValidateMaxDevice)(nil)).Elem() -} - -type VmValidateMaxDeviceFault VmValidateMaxDevice - -func init() { - t["VmValidateMaxDeviceFault"] = reflect.TypeOf((*VmValidateMaxDeviceFault)(nil)).Elem() -} - -type VmVnicPoolReservationViolationClearEvent struct { - DvsEvent - - VmVnicResourcePoolKey string `xml:"vmVnicResourcePoolKey"` - VmVnicResourcePoolName string `xml:"vmVnicResourcePoolName,omitempty"` -} - -func init() { - t["VmVnicPoolReservationViolationClearEvent"] = reflect.TypeOf((*VmVnicPoolReservationViolationClearEvent)(nil)).Elem() -} - -type VmVnicPoolReservationViolationRaiseEvent struct { - DvsEvent - - VmVnicResourcePoolKey string `xml:"vmVnicResourcePoolKey"` - VmVnicResourcePoolName string `xml:"vmVnicResourcePoolName,omitempty"` -} - -func init() { - t["VmVnicPoolReservationViolationRaiseEvent"] = reflect.TypeOf((*VmVnicPoolReservationViolationRaiseEvent)(nil)).Elem() -} - -type VmWwnAssignedEvent struct { - VmEvent - - NodeWwns []int64 `xml:"nodeWwns"` - PortWwns []int64 `xml:"portWwns"` -} - -func init() { - t["VmWwnAssignedEvent"] = reflect.TypeOf((*VmWwnAssignedEvent)(nil)).Elem() -} - -type VmWwnChangedEvent struct { - VmEvent - - OldNodeWwns []int64 `xml:"oldNodeWwns,omitempty"` - OldPortWwns []int64 `xml:"oldPortWwns,omitempty"` - NewNodeWwns []int64 `xml:"newNodeWwns,omitempty"` - NewPortWwns []int64 `xml:"newPortWwns,omitempty"` -} - -func init() { - t["VmWwnChangedEvent"] = reflect.TypeOf((*VmWwnChangedEvent)(nil)).Elem() -} - -type VmWwnConflict struct { - InvalidVmConfig - - Vm *ManagedObjectReference `xml:"vm,omitempty"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Name string `xml:"name,omitempty"` - Wwn int64 `xml:"wwn,omitempty"` -} - -func init() { - t["VmWwnConflict"] = reflect.TypeOf((*VmWwnConflict)(nil)).Elem() -} - -type VmWwnConflictEvent struct { - VmEvent - - ConflictedVms []VmEventArgument `xml:"conflictedVms,omitempty"` - ConflictedHosts []HostEventArgument `xml:"conflictedHosts,omitempty"` - Wwn int64 `xml:"wwn"` -} - -func init() { - t["VmWwnConflictEvent"] = reflect.TypeOf((*VmWwnConflictEvent)(nil)).Elem() -} - -type VmWwnConflictFault VmWwnConflict - -func init() { - t["VmWwnConflictFault"] = reflect.TypeOf((*VmWwnConflictFault)(nil)).Elem() -} - -type VmfsAlreadyMounted struct { - VmfsMountFault -} - -func init() { - t["VmfsAlreadyMounted"] = reflect.TypeOf((*VmfsAlreadyMounted)(nil)).Elem() -} - -type VmfsAlreadyMountedFault VmfsAlreadyMounted - -func init() { - t["VmfsAlreadyMountedFault"] = reflect.TypeOf((*VmfsAlreadyMountedFault)(nil)).Elem() -} - -type VmfsAmbiguousMount struct { - VmfsMountFault -} - -func init() { - t["VmfsAmbiguousMount"] = reflect.TypeOf((*VmfsAmbiguousMount)(nil)).Elem() -} - -type VmfsAmbiguousMountFault VmfsAmbiguousMount - -func init() { - t["VmfsAmbiguousMountFault"] = reflect.TypeOf((*VmfsAmbiguousMountFault)(nil)).Elem() -} - -type VmfsConfigOption struct { - DynamicData - - BlockSizeOption int32 `xml:"blockSizeOption"` - UnmapGranularityOption []int32 `xml:"unmapGranularityOption,omitempty"` -} - -func init() { - t["VmfsConfigOption"] = reflect.TypeOf((*VmfsConfigOption)(nil)).Elem() -} - -type VmfsDatastoreAllExtentOption struct { - VmfsDatastoreSingleExtentOption -} - -func init() { - t["VmfsDatastoreAllExtentOption"] = reflect.TypeOf((*VmfsDatastoreAllExtentOption)(nil)).Elem() -} - -type VmfsDatastoreBaseOption struct { - DynamicData - - Layout HostDiskPartitionLayout `xml:"layout"` - PartitionFormatChange *bool `xml:"partitionFormatChange"` -} - -func init() { - t["VmfsDatastoreBaseOption"] = reflect.TypeOf((*VmfsDatastoreBaseOption)(nil)).Elem() -} - -type VmfsDatastoreCreateSpec struct { - VmfsDatastoreSpec - - Partition HostDiskPartitionSpec `xml:"partition"` - Vmfs HostVmfsSpec `xml:"vmfs"` - Extent []HostScsiDiskPartition `xml:"extent,omitempty"` -} - -func init() { - t["VmfsDatastoreCreateSpec"] = reflect.TypeOf((*VmfsDatastoreCreateSpec)(nil)).Elem() -} - -type VmfsDatastoreExpandSpec struct { - VmfsDatastoreSpec - - Partition HostDiskPartitionSpec `xml:"partition"` - Extent HostScsiDiskPartition `xml:"extent"` -} - -func init() { - t["VmfsDatastoreExpandSpec"] = reflect.TypeOf((*VmfsDatastoreExpandSpec)(nil)).Elem() -} - -type VmfsDatastoreExtendSpec struct { - VmfsDatastoreSpec - - Partition HostDiskPartitionSpec `xml:"partition"` - Extent []HostScsiDiskPartition `xml:"extent"` -} - -func init() { - t["VmfsDatastoreExtendSpec"] = reflect.TypeOf((*VmfsDatastoreExtendSpec)(nil)).Elem() -} - -type VmfsDatastoreInfo struct { - DatastoreInfo - - MaxPhysicalRDMFileSize int64 `xml:"maxPhysicalRDMFileSize,omitempty"` - MaxVirtualRDMFileSize int64 `xml:"maxVirtualRDMFileSize,omitempty"` - Vmfs *HostVmfsVolume `xml:"vmfs,omitempty"` -} - -func init() { - t["VmfsDatastoreInfo"] = reflect.TypeOf((*VmfsDatastoreInfo)(nil)).Elem() -} - -type VmfsDatastoreMultipleExtentOption struct { - VmfsDatastoreBaseOption - - VmfsExtent []HostDiskPartitionBlockRange `xml:"vmfsExtent"` -} - -func init() { - t["VmfsDatastoreMultipleExtentOption"] = reflect.TypeOf((*VmfsDatastoreMultipleExtentOption)(nil)).Elem() -} - -type VmfsDatastoreOption struct { - DynamicData - - Info BaseVmfsDatastoreBaseOption `xml:"info,typeattr"` - Spec BaseVmfsDatastoreSpec `xml:"spec,typeattr"` -} - -func init() { - t["VmfsDatastoreOption"] = reflect.TypeOf((*VmfsDatastoreOption)(nil)).Elem() -} - -type VmfsDatastoreSingleExtentOption struct { - VmfsDatastoreBaseOption - - VmfsExtent HostDiskPartitionBlockRange `xml:"vmfsExtent"` -} - -func init() { - t["VmfsDatastoreSingleExtentOption"] = reflect.TypeOf((*VmfsDatastoreSingleExtentOption)(nil)).Elem() -} - -type VmfsDatastoreSpec struct { - DynamicData - - DiskUuid string `xml:"diskUuid"` -} - -func init() { - t["VmfsDatastoreSpec"] = reflect.TypeOf((*VmfsDatastoreSpec)(nil)).Elem() -} - -type VmfsMountFault struct { - HostConfigFault - - Uuid string `xml:"uuid"` -} - -func init() { - t["VmfsMountFault"] = reflect.TypeOf((*VmfsMountFault)(nil)).Elem() -} - -type VmfsMountFaultFault BaseVmfsMountFault - -func init() { - t["VmfsMountFaultFault"] = reflect.TypeOf((*VmfsMountFaultFault)(nil)).Elem() -} - -type VmotionInterfaceNotEnabled struct { - HostPowerOpFailed -} - -func init() { - t["VmotionInterfaceNotEnabled"] = reflect.TypeOf((*VmotionInterfaceNotEnabled)(nil)).Elem() -} - -type VmotionInterfaceNotEnabledFault VmotionInterfaceNotEnabled - -func init() { - t["VmotionInterfaceNotEnabledFault"] = reflect.TypeOf((*VmotionInterfaceNotEnabledFault)(nil)).Elem() -} - -type VmwareDistributedVirtualSwitchPvlanSpec struct { - VmwareDistributedVirtualSwitchVlanSpec - - PvlanId int32 `xml:"pvlanId"` -} - -func init() { - t["VmwareDistributedVirtualSwitchPvlanSpec"] = reflect.TypeOf((*VmwareDistributedVirtualSwitchPvlanSpec)(nil)).Elem() -} - -type VmwareDistributedVirtualSwitchTrunkVlanSpec struct { - VmwareDistributedVirtualSwitchVlanSpec - - VlanId []NumericRange `xml:"vlanId"` -} - -func init() { - t["VmwareDistributedVirtualSwitchTrunkVlanSpec"] = reflect.TypeOf((*VmwareDistributedVirtualSwitchTrunkVlanSpec)(nil)).Elem() -} - -type VmwareDistributedVirtualSwitchVlanIdSpec struct { - VmwareDistributedVirtualSwitchVlanSpec - - VlanId int32 `xml:"vlanId"` -} - -func init() { - t["VmwareDistributedVirtualSwitchVlanIdSpec"] = reflect.TypeOf((*VmwareDistributedVirtualSwitchVlanIdSpec)(nil)).Elem() -} - -type VmwareDistributedVirtualSwitchVlanSpec struct { - InheritablePolicy -} - -func init() { - t["VmwareDistributedVirtualSwitchVlanSpec"] = reflect.TypeOf((*VmwareDistributedVirtualSwitchVlanSpec)(nil)).Elem() -} - -type VmwareUplinkPortTeamingPolicy struct { - InheritablePolicy - - Policy *StringPolicy `xml:"policy,omitempty"` - ReversePolicy *BoolPolicy `xml:"reversePolicy,omitempty"` - NotifySwitches *BoolPolicy `xml:"notifySwitches,omitempty"` - RollingOrder *BoolPolicy `xml:"rollingOrder,omitempty"` - FailureCriteria *DVSFailureCriteria `xml:"failureCriteria,omitempty"` - UplinkPortOrder *VMwareUplinkPortOrderPolicy `xml:"uplinkPortOrder,omitempty"` -} - -func init() { - t["VmwareUplinkPortTeamingPolicy"] = reflect.TypeOf((*VmwareUplinkPortTeamingPolicy)(nil)).Elem() -} - -type VnicPortArgument struct { - DynamicData - - Vnic string `xml:"vnic"` - Port DistributedVirtualSwitchPortConnection `xml:"port"` -} - -func init() { - t["VnicPortArgument"] = reflect.TypeOf((*VnicPortArgument)(nil)).Elem() -} - -type VolumeEditorError struct { - CustomizationFault -} - -func init() { - t["VolumeEditorError"] = reflect.TypeOf((*VolumeEditorError)(nil)).Elem() -} - -type VolumeEditorErrorFault VolumeEditorError - -func init() { - t["VolumeEditorErrorFault"] = reflect.TypeOf((*VolumeEditorErrorFault)(nil)).Elem() -} - -type VramLimitLicense struct { - NotEnoughLicenses - - Limit int32 `xml:"limit"` -} - -func init() { - t["VramLimitLicense"] = reflect.TypeOf((*VramLimitLicense)(nil)).Elem() -} - -type VramLimitLicenseFault VramLimitLicense - -func init() { - t["VramLimitLicenseFault"] = reflect.TypeOf((*VramLimitLicenseFault)(nil)).Elem() -} - -type VrpResourceAllocationInfo struct { - ResourceAllocationInfo - - ReservationLimit int64 `xml:"reservationLimit,omitempty"` -} - -func init() { - t["VrpResourceAllocationInfo"] = reflect.TypeOf((*VrpResourceAllocationInfo)(nil)).Elem() -} - -type VsanClusterConfigInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` - DefaultConfig *VsanClusterConfigInfoHostDefaultInfo `xml:"defaultConfig,omitempty"` -} - -func init() { - t["VsanClusterConfigInfo"] = reflect.TypeOf((*VsanClusterConfigInfo)(nil)).Elem() -} - -type VsanClusterConfigInfoHostDefaultInfo struct { - DynamicData - - Uuid string `xml:"uuid,omitempty"` - AutoClaimStorage *bool `xml:"autoClaimStorage"` - ChecksumEnabled *bool `xml:"checksumEnabled"` -} - -func init() { - t["VsanClusterConfigInfoHostDefaultInfo"] = reflect.TypeOf((*VsanClusterConfigInfoHostDefaultInfo)(nil)).Elem() -} - -type VsanClusterUuidMismatch struct { - CannotMoveVsanEnabledHost - - HostClusterUuid string `xml:"hostClusterUuid"` - DestinationClusterUuid string `xml:"destinationClusterUuid"` -} - -func init() { - t["VsanClusterUuidMismatch"] = reflect.TypeOf((*VsanClusterUuidMismatch)(nil)).Elem() -} - -type VsanClusterUuidMismatchFault VsanClusterUuidMismatch - -func init() { - t["VsanClusterUuidMismatchFault"] = reflect.TypeOf((*VsanClusterUuidMismatchFault)(nil)).Elem() -} - -type VsanDiskFault struct { - VsanFault - - Device string `xml:"device,omitempty"` -} - -func init() { - t["VsanDiskFault"] = reflect.TypeOf((*VsanDiskFault)(nil)).Elem() -} - -type VsanDiskFaultFault BaseVsanDiskFault - -func init() { - t["VsanDiskFaultFault"] = reflect.TypeOf((*VsanDiskFaultFault)(nil)).Elem() -} - -type VsanFault struct { - VimFault -} - -func init() { - t["VsanFault"] = reflect.TypeOf((*VsanFault)(nil)).Elem() -} - -type VsanFaultFault BaseVsanFault - -func init() { - t["VsanFaultFault"] = reflect.TypeOf((*VsanFaultFault)(nil)).Elem() -} - -type VsanHostClusterStatus struct { - DynamicData - - Uuid string `xml:"uuid,omitempty"` - NodeUuid string `xml:"nodeUuid,omitempty"` - Health string `xml:"health"` - NodeState VsanHostClusterStatusState `xml:"nodeState"` - MemberUuid []string `xml:"memberUuid,omitempty"` -} - -func init() { - t["VsanHostClusterStatus"] = reflect.TypeOf((*VsanHostClusterStatus)(nil)).Elem() -} - -type VsanHostClusterStatusState struct { - DynamicData - - State string `xml:"state"` - Completion *VsanHostClusterStatusStateCompletionEstimate `xml:"completion,omitempty"` -} - -func init() { - t["VsanHostClusterStatusState"] = reflect.TypeOf((*VsanHostClusterStatusState)(nil)).Elem() -} - -type VsanHostClusterStatusStateCompletionEstimate struct { - DynamicData - - CompleteTime *time.Time `xml:"completeTime"` - PercentComplete int32 `xml:"percentComplete,omitempty"` -} - -func init() { - t["VsanHostClusterStatusStateCompletionEstimate"] = reflect.TypeOf((*VsanHostClusterStatusStateCompletionEstimate)(nil)).Elem() -} - -type VsanHostConfigInfo struct { - DynamicData - - Enabled *bool `xml:"enabled"` - HostSystem *ManagedObjectReference `xml:"hostSystem,omitempty"` - ClusterInfo *VsanHostConfigInfoClusterInfo `xml:"clusterInfo,omitempty"` - StorageInfo *VsanHostConfigInfoStorageInfo `xml:"storageInfo,omitempty"` - NetworkInfo *VsanHostConfigInfoNetworkInfo `xml:"networkInfo,omitempty"` - FaultDomainInfo *VsanHostFaultDomainInfo `xml:"faultDomainInfo,omitempty"` -} - -func init() { - t["VsanHostConfigInfo"] = reflect.TypeOf((*VsanHostConfigInfo)(nil)).Elem() -} - -type VsanHostConfigInfoClusterInfo struct { - DynamicData - - Uuid string `xml:"uuid,omitempty"` - NodeUuid string `xml:"nodeUuid,omitempty"` -} - -func init() { - t["VsanHostConfigInfoClusterInfo"] = reflect.TypeOf((*VsanHostConfigInfoClusterInfo)(nil)).Elem() -} - -type VsanHostConfigInfoNetworkInfo struct { - DynamicData - - Port []VsanHostConfigInfoNetworkInfoPortConfig `xml:"port,omitempty"` -} - -func init() { - t["VsanHostConfigInfoNetworkInfo"] = reflect.TypeOf((*VsanHostConfigInfoNetworkInfo)(nil)).Elem() -} - -type VsanHostConfigInfoNetworkInfoPortConfig struct { - DynamicData - - IpConfig *VsanHostIpConfig `xml:"ipConfig,omitempty"` - Device string `xml:"device"` -} - -func init() { - t["VsanHostConfigInfoNetworkInfoPortConfig"] = reflect.TypeOf((*VsanHostConfigInfoNetworkInfoPortConfig)(nil)).Elem() -} - -type VsanHostConfigInfoStorageInfo struct { - DynamicData - - AutoClaimStorage *bool `xml:"autoClaimStorage"` - DiskMapping []VsanHostDiskMapping `xml:"diskMapping,omitempty"` - DiskMapInfo []VsanHostDiskMapInfo `xml:"diskMapInfo,omitempty"` - ChecksumEnabled *bool `xml:"checksumEnabled"` -} - -func init() { - t["VsanHostConfigInfoStorageInfo"] = reflect.TypeOf((*VsanHostConfigInfoStorageInfo)(nil)).Elem() -} - -type VsanHostDecommissionMode struct { - DynamicData - - ObjectAction string `xml:"objectAction"` -} - -func init() { - t["VsanHostDecommissionMode"] = reflect.TypeOf((*VsanHostDecommissionMode)(nil)).Elem() -} - -type VsanHostDiskMapInfo struct { - DynamicData - - Mapping VsanHostDiskMapping `xml:"mapping"` - Mounted bool `xml:"mounted"` -} - -func init() { - t["VsanHostDiskMapInfo"] = reflect.TypeOf((*VsanHostDiskMapInfo)(nil)).Elem() -} - -type VsanHostDiskMapResult struct { - DynamicData - - Mapping VsanHostDiskMapping `xml:"mapping"` - DiskResult []VsanHostDiskResult `xml:"diskResult,omitempty"` - Error *LocalizedMethodFault `xml:"error,omitempty"` -} - -func init() { - t["VsanHostDiskMapResult"] = reflect.TypeOf((*VsanHostDiskMapResult)(nil)).Elem() -} - -type VsanHostDiskMapping struct { - DynamicData - - Ssd HostScsiDisk `xml:"ssd"` - NonSsd []HostScsiDisk `xml:"nonSsd"` -} - -func init() { - t["VsanHostDiskMapping"] = reflect.TypeOf((*VsanHostDiskMapping)(nil)).Elem() -} - -type VsanHostDiskResult struct { - DynamicData - - Disk HostScsiDisk `xml:"disk"` - State string `xml:"state"` - VsanUuid string `xml:"vsanUuid,omitempty"` - Error *LocalizedMethodFault `xml:"error,omitempty"` - Degraded *bool `xml:"degraded"` -} - -func init() { - t["VsanHostDiskResult"] = reflect.TypeOf((*VsanHostDiskResult)(nil)).Elem() -} - -type VsanHostFaultDomainInfo struct { - DynamicData - - Name string `xml:"name"` -} - -func init() { - t["VsanHostFaultDomainInfo"] = reflect.TypeOf((*VsanHostFaultDomainInfo)(nil)).Elem() -} - -type VsanHostIpConfig struct { - DynamicData - - UpstreamIpAddress string `xml:"upstreamIpAddress"` - DownstreamIpAddress string `xml:"downstreamIpAddress"` -} - -func init() { - t["VsanHostIpConfig"] = reflect.TypeOf((*VsanHostIpConfig)(nil)).Elem() -} - -type VsanHostMembershipInfo struct { - DynamicData - - NodeUuid string `xml:"nodeUuid"` - Hostname string `xml:"hostname"` -} - -func init() { - t["VsanHostMembershipInfo"] = reflect.TypeOf((*VsanHostMembershipInfo)(nil)).Elem() -} - -type VsanHostRuntimeInfo struct { - DynamicData - - MembershipList []VsanHostMembershipInfo `xml:"membershipList,omitempty"` - DiskIssues []VsanHostRuntimeInfoDiskIssue `xml:"diskIssues,omitempty"` - AccessGenNo int32 `xml:"accessGenNo,omitempty"` -} - -func init() { - t["VsanHostRuntimeInfo"] = reflect.TypeOf((*VsanHostRuntimeInfo)(nil)).Elem() -} - -type VsanHostRuntimeInfoDiskIssue struct { - DynamicData - - DiskId string `xml:"diskId"` - Issue string `xml:"issue"` -} - -func init() { - t["VsanHostRuntimeInfoDiskIssue"] = reflect.TypeOf((*VsanHostRuntimeInfoDiskIssue)(nil)).Elem() -} - -type VsanHostVsanDiskInfo struct { - DynamicData - - VsanUuid string `xml:"vsanUuid"` - FormatVersion int32 `xml:"formatVersion"` -} - -func init() { - t["VsanHostVsanDiskInfo"] = reflect.TypeOf((*VsanHostVsanDiskInfo)(nil)).Elem() -} - -type VsanIncompatibleDiskMapping struct { - VsanDiskFault -} - -func init() { - t["VsanIncompatibleDiskMapping"] = reflect.TypeOf((*VsanIncompatibleDiskMapping)(nil)).Elem() -} - -type VsanIncompatibleDiskMappingFault VsanIncompatibleDiskMapping - -func init() { - t["VsanIncompatibleDiskMappingFault"] = reflect.TypeOf((*VsanIncompatibleDiskMappingFault)(nil)).Elem() -} - -type VsanNewPolicyBatch struct { - DynamicData - - Size []int64 `xml:"size,omitempty"` - Policy string `xml:"policy,omitempty"` -} - -func init() { - t["VsanNewPolicyBatch"] = reflect.TypeOf((*VsanNewPolicyBatch)(nil)).Elem() -} - -type VsanPolicyChangeBatch struct { - DynamicData - - Uuid []string `xml:"uuid,omitempty"` - Policy string `xml:"policy,omitempty"` -} - -func init() { - t["VsanPolicyChangeBatch"] = reflect.TypeOf((*VsanPolicyChangeBatch)(nil)).Elem() -} - -type VsanPolicyCost struct { - DynamicData - - ChangeDataSize int64 `xml:"changeDataSize,omitempty"` - CurrentDataSize int64 `xml:"currentDataSize,omitempty"` - TempDataSize int64 `xml:"tempDataSize,omitempty"` - CopyDataSize int64 `xml:"copyDataSize,omitempty"` - ChangeFlashReadCacheSize int64 `xml:"changeFlashReadCacheSize,omitempty"` - CurrentFlashReadCacheSize int64 `xml:"currentFlashReadCacheSize,omitempty"` - CurrentDiskSpaceToAddressSpaceRatio float32 `xml:"currentDiskSpaceToAddressSpaceRatio,omitempty"` - DiskSpaceToAddressSpaceRatio float32 `xml:"diskSpaceToAddressSpaceRatio,omitempty"` -} - -func init() { - t["VsanPolicyCost"] = reflect.TypeOf((*VsanPolicyCost)(nil)).Elem() -} - -type VsanPolicySatisfiability struct { - DynamicData - - Uuid string `xml:"uuid,omitempty"` - IsSatisfiable bool `xml:"isSatisfiable"` - Reason *LocalizableMessage `xml:"reason,omitempty"` - Cost *VsanPolicyCost `xml:"cost,omitempty"` -} - -func init() { - t["VsanPolicySatisfiability"] = reflect.TypeOf((*VsanPolicySatisfiability)(nil)).Elem() -} - -type VsanUpgradeSystemAPIBrokenIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["VsanUpgradeSystemAPIBrokenIssue"] = reflect.TypeOf((*VsanUpgradeSystemAPIBrokenIssue)(nil)).Elem() -} - -type VsanUpgradeSystemAutoClaimEnabledOnHostsIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["VsanUpgradeSystemAutoClaimEnabledOnHostsIssue"] = reflect.TypeOf((*VsanUpgradeSystemAutoClaimEnabledOnHostsIssue)(nil)).Elem() -} - -type VsanUpgradeSystemHostsDisconnectedIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["VsanUpgradeSystemHostsDisconnectedIssue"] = reflect.TypeOf((*VsanUpgradeSystemHostsDisconnectedIssue)(nil)).Elem() -} - -type VsanUpgradeSystemMissingHostsInClusterIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["VsanUpgradeSystemMissingHostsInClusterIssue"] = reflect.TypeOf((*VsanUpgradeSystemMissingHostsInClusterIssue)(nil)).Elem() -} - -type VsanUpgradeSystemNetworkPartitionInfo struct { - DynamicData - - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["VsanUpgradeSystemNetworkPartitionInfo"] = reflect.TypeOf((*VsanUpgradeSystemNetworkPartitionInfo)(nil)).Elem() -} - -type VsanUpgradeSystemNetworkPartitionIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Partitions []VsanUpgradeSystemNetworkPartitionInfo `xml:"partitions"` -} - -func init() { - t["VsanUpgradeSystemNetworkPartitionIssue"] = reflect.TypeOf((*VsanUpgradeSystemNetworkPartitionIssue)(nil)).Elem() -} - -type VsanUpgradeSystemNotEnoughFreeCapacityIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - ReducedRedundancyUpgradePossible bool `xml:"reducedRedundancyUpgradePossible"` -} - -func init() { - t["VsanUpgradeSystemNotEnoughFreeCapacityIssue"] = reflect.TypeOf((*VsanUpgradeSystemNotEnoughFreeCapacityIssue)(nil)).Elem() -} - -type VsanUpgradeSystemPreflightCheckIssue struct { - DynamicData - - Msg string `xml:"msg"` -} - -func init() { - t["VsanUpgradeSystemPreflightCheckIssue"] = reflect.TypeOf((*VsanUpgradeSystemPreflightCheckIssue)(nil)).Elem() -} - -type VsanUpgradeSystemPreflightCheckResult struct { - DynamicData - - Issues []BaseVsanUpgradeSystemPreflightCheckIssue `xml:"issues,omitempty,typeattr"` - DiskMappingToRestore *VsanHostDiskMapping `xml:"diskMappingToRestore,omitempty"` -} - -func init() { - t["VsanUpgradeSystemPreflightCheckResult"] = reflect.TypeOf((*VsanUpgradeSystemPreflightCheckResult)(nil)).Elem() -} - -type VsanUpgradeSystemRogueHostsInClusterIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Uuids []string `xml:"uuids"` -} - -func init() { - t["VsanUpgradeSystemRogueHostsInClusterIssue"] = reflect.TypeOf((*VsanUpgradeSystemRogueHostsInClusterIssue)(nil)).Elem() -} - -type VsanUpgradeSystemUpgradeHistoryDiskGroupOp struct { - VsanUpgradeSystemUpgradeHistoryItem - - Operation string `xml:"operation"` - DiskMapping VsanHostDiskMapping `xml:"diskMapping"` -} - -func init() { - t["VsanUpgradeSystemUpgradeHistoryDiskGroupOp"] = reflect.TypeOf((*VsanUpgradeSystemUpgradeHistoryDiskGroupOp)(nil)).Elem() -} - -type VsanUpgradeSystemUpgradeHistoryItem struct { - DynamicData - - Timestamp time.Time `xml:"timestamp"` - Host *ManagedObjectReference `xml:"host,omitempty"` - Message string `xml:"message"` - Task *ManagedObjectReference `xml:"task,omitempty"` -} - -func init() { - t["VsanUpgradeSystemUpgradeHistoryItem"] = reflect.TypeOf((*VsanUpgradeSystemUpgradeHistoryItem)(nil)).Elem() -} - -type VsanUpgradeSystemUpgradeHistoryPreflightFail struct { - VsanUpgradeSystemUpgradeHistoryItem - - PreflightResult VsanUpgradeSystemPreflightCheckResult `xml:"preflightResult"` -} - -func init() { - t["VsanUpgradeSystemUpgradeHistoryPreflightFail"] = reflect.TypeOf((*VsanUpgradeSystemUpgradeHistoryPreflightFail)(nil)).Elem() -} - -type VsanUpgradeSystemUpgradeStatus struct { - DynamicData - - InProgress bool `xml:"inProgress"` - History []BaseVsanUpgradeSystemUpgradeHistoryItem `xml:"history,omitempty,typeattr"` - Aborted *bool `xml:"aborted"` - Completed *bool `xml:"completed"` - Progress int32 `xml:"progress,omitempty"` -} - -func init() { - t["VsanUpgradeSystemUpgradeStatus"] = reflect.TypeOf((*VsanUpgradeSystemUpgradeStatus)(nil)).Elem() -} - -type VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Uuids []string `xml:"uuids"` -} - -func init() { - t["VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue"] = reflect.TypeOf((*VsanUpgradeSystemV2ObjectsPresentDuringDowngradeIssue)(nil)).Elem() -} - -type VsanUpgradeSystemWrongEsxVersionIssue struct { - VsanUpgradeSystemPreflightCheckIssue - - Hosts []ManagedObjectReference `xml:"hosts"` -} - -func init() { - t["VsanUpgradeSystemWrongEsxVersionIssue"] = reflect.TypeOf((*VsanUpgradeSystemWrongEsxVersionIssue)(nil)).Elem() -} - -type VslmCloneSpec struct { - VslmMigrateSpec - - Name string `xml:"name"` -} - -func init() { - t["VslmCloneSpec"] = reflect.TypeOf((*VslmCloneSpec)(nil)).Elem() -} - -type VslmCreateSpec struct { - DynamicData - - Name string `xml:"name"` - BackingSpec BaseVslmCreateSpecBackingSpec `xml:"backingSpec,typeattr"` - CapacityInMB int64 `xml:"capacityInMB"` -} - -func init() { - t["VslmCreateSpec"] = reflect.TypeOf((*VslmCreateSpec)(nil)).Elem() -} - -type VslmCreateSpecBackingSpec struct { - DynamicData - - Datastore ManagedObjectReference `xml:"datastore"` -} - -func init() { - t["VslmCreateSpecBackingSpec"] = reflect.TypeOf((*VslmCreateSpecBackingSpec)(nil)).Elem() -} - -type VslmCreateSpecDiskFileBackingSpec struct { - VslmCreateSpecBackingSpec - - ProvisioningType string `xml:"provisioningType,omitempty"` -} - -func init() { - t["VslmCreateSpecDiskFileBackingSpec"] = reflect.TypeOf((*VslmCreateSpecDiskFileBackingSpec)(nil)).Elem() -} - -type VslmCreateSpecRawDiskMappingBackingSpec struct { - VslmCreateSpecBackingSpec - - LunUuid string `xml:"lunUuid"` - CompatibilityMode string `xml:"compatibilityMode"` -} - -func init() { - t["VslmCreateSpecRawDiskMappingBackingSpec"] = reflect.TypeOf((*VslmCreateSpecRawDiskMappingBackingSpec)(nil)).Elem() -} - -type VslmMigrateSpec struct { - DynamicData - - BackingSpec BaseVslmCreateSpecBackingSpec `xml:"backingSpec,typeattr"` - Consolidate *bool `xml:"consolidate"` -} - -func init() { - t["VslmMigrateSpec"] = reflect.TypeOf((*VslmMigrateSpec)(nil)).Elem() -} - -type VslmRelocateSpec struct { - VslmMigrateSpec -} - -func init() { - t["VslmRelocateSpec"] = reflect.TypeOf((*VslmRelocateSpec)(nil)).Elem() -} - -type VslmTagEntry struct { - DynamicData - - TagName string `xml:"tagName"` - ParentCategoryName string `xml:"parentCategoryName"` -} - -func init() { - t["VslmTagEntry"] = reflect.TypeOf((*VslmTagEntry)(nil)).Elem() -} - -type VspanDestPortConflict struct { - DvsFault - - VspanSessionKey1 string `xml:"vspanSessionKey1"` - VspanSessionKey2 string `xml:"vspanSessionKey2"` - PortKey string `xml:"portKey"` -} - -func init() { - t["VspanDestPortConflict"] = reflect.TypeOf((*VspanDestPortConflict)(nil)).Elem() -} - -type VspanDestPortConflictFault VspanDestPortConflict - -func init() { - t["VspanDestPortConflictFault"] = reflect.TypeOf((*VspanDestPortConflictFault)(nil)).Elem() -} - -type VspanPortConflict struct { - DvsFault - - VspanSessionKey1 string `xml:"vspanSessionKey1"` - VspanSessionKey2 string `xml:"vspanSessionKey2"` - PortKey string `xml:"portKey"` -} - -func init() { - t["VspanPortConflict"] = reflect.TypeOf((*VspanPortConflict)(nil)).Elem() -} - -type VspanPortConflictFault VspanPortConflict - -func init() { - t["VspanPortConflictFault"] = reflect.TypeOf((*VspanPortConflictFault)(nil)).Elem() -} - -type VspanPortMoveFault struct { - DvsFault - - SrcPortgroupName string `xml:"srcPortgroupName"` - DestPortgroupName string `xml:"destPortgroupName"` - PortKey string `xml:"portKey"` -} - -func init() { - t["VspanPortMoveFault"] = reflect.TypeOf((*VspanPortMoveFault)(nil)).Elem() -} - -type VspanPortMoveFaultFault VspanPortMoveFault - -func init() { - t["VspanPortMoveFaultFault"] = reflect.TypeOf((*VspanPortMoveFaultFault)(nil)).Elem() -} - -type VspanPortPromiscChangeFault struct { - DvsFault - - PortKey string `xml:"portKey"` -} - -func init() { - t["VspanPortPromiscChangeFault"] = reflect.TypeOf((*VspanPortPromiscChangeFault)(nil)).Elem() -} - -type VspanPortPromiscChangeFaultFault VspanPortPromiscChangeFault - -func init() { - t["VspanPortPromiscChangeFaultFault"] = reflect.TypeOf((*VspanPortPromiscChangeFaultFault)(nil)).Elem() -} - -type VspanPortgroupPromiscChangeFault struct { - DvsFault - - PortgroupName string `xml:"portgroupName"` -} - -func init() { - t["VspanPortgroupPromiscChangeFault"] = reflect.TypeOf((*VspanPortgroupPromiscChangeFault)(nil)).Elem() -} - -type VspanPortgroupPromiscChangeFaultFault VspanPortgroupPromiscChangeFault - -func init() { - t["VspanPortgroupPromiscChangeFaultFault"] = reflect.TypeOf((*VspanPortgroupPromiscChangeFaultFault)(nil)).Elem() -} - -type VspanPortgroupTypeChangeFault struct { - DvsFault - - PortgroupName string `xml:"portgroupName"` -} - -func init() { - t["VspanPortgroupTypeChangeFault"] = reflect.TypeOf((*VspanPortgroupTypeChangeFault)(nil)).Elem() -} - -type VspanPortgroupTypeChangeFaultFault VspanPortgroupTypeChangeFault - -func init() { - t["VspanPortgroupTypeChangeFaultFault"] = reflect.TypeOf((*VspanPortgroupTypeChangeFaultFault)(nil)).Elem() -} - -type VspanPromiscuousPortNotSupported struct { - DvsFault - - VspanSessionKey string `xml:"vspanSessionKey"` - PortKey string `xml:"portKey"` -} - -func init() { - t["VspanPromiscuousPortNotSupported"] = reflect.TypeOf((*VspanPromiscuousPortNotSupported)(nil)).Elem() -} - -type VspanPromiscuousPortNotSupportedFault VspanPromiscuousPortNotSupported - -func init() { - t["VspanPromiscuousPortNotSupportedFault"] = reflect.TypeOf((*VspanPromiscuousPortNotSupportedFault)(nil)).Elem() -} - -type VspanSameSessionPortConflict struct { - DvsFault - - VspanSessionKey string `xml:"vspanSessionKey"` - PortKey string `xml:"portKey"` -} - -func init() { - t["VspanSameSessionPortConflict"] = reflect.TypeOf((*VspanSameSessionPortConflict)(nil)).Elem() -} - -type VspanSameSessionPortConflictFault VspanSameSessionPortConflict - -func init() { - t["VspanSameSessionPortConflictFault"] = reflect.TypeOf((*VspanSameSessionPortConflictFault)(nil)).Elem() -} - -type VvolDatastoreInfo struct { - DatastoreInfo - - VvolDS *HostVvolVolume `xml:"vvolDS,omitempty"` -} - -func init() { - t["VvolDatastoreInfo"] = reflect.TypeOf((*VvolDatastoreInfo)(nil)).Elem() -} - -type WaitForUpdates WaitForUpdatesRequestType - -func init() { - t["WaitForUpdates"] = reflect.TypeOf((*WaitForUpdates)(nil)).Elem() -} - -type WaitForUpdatesEx WaitForUpdatesExRequestType - -func init() { - t["WaitForUpdatesEx"] = reflect.TypeOf((*WaitForUpdatesEx)(nil)).Elem() -} - -type WaitForUpdatesExRequestType struct { - This ManagedObjectReference `xml:"_this"` - Version string `xml:"version,omitempty"` - Options *WaitOptions `xml:"options,omitempty"` -} - -func init() { - t["WaitForUpdatesExRequestType"] = reflect.TypeOf((*WaitForUpdatesExRequestType)(nil)).Elem() -} - -type WaitForUpdatesExResponse struct { - Returnval *UpdateSet `xml:"returnval,omitempty"` -} - -type WaitForUpdatesRequestType struct { - This ManagedObjectReference `xml:"_this"` - Version string `xml:"version,omitempty"` -} - -func init() { - t["WaitForUpdatesRequestType"] = reflect.TypeOf((*WaitForUpdatesRequestType)(nil)).Elem() -} - -type WaitForUpdatesResponse struct { - Returnval UpdateSet `xml:"returnval"` -} - -type WaitOptions struct { - DynamicData - - MaxWaitSeconds *int32 `xml:"maxWaitSeconds"` - MaxObjectUpdates int32 `xml:"maxObjectUpdates,omitempty"` -} - -func init() { - t["WaitOptions"] = reflect.TypeOf((*WaitOptions)(nil)).Elem() -} - -type WakeOnLanNotSupported struct { - VirtualHardwareCompatibilityIssue -} - -func init() { - t["WakeOnLanNotSupported"] = reflect.TypeOf((*WakeOnLanNotSupported)(nil)).Elem() -} - -type WakeOnLanNotSupportedByVmotionNIC struct { - HostPowerOpFailed -} - -func init() { - t["WakeOnLanNotSupportedByVmotionNIC"] = reflect.TypeOf((*WakeOnLanNotSupportedByVmotionNIC)(nil)).Elem() -} - -type WakeOnLanNotSupportedByVmotionNICFault WakeOnLanNotSupportedByVmotionNIC - -func init() { - t["WakeOnLanNotSupportedByVmotionNICFault"] = reflect.TypeOf((*WakeOnLanNotSupportedByVmotionNICFault)(nil)).Elem() -} - -type WakeOnLanNotSupportedFault WakeOnLanNotSupported - -func init() { - t["WakeOnLanNotSupportedFault"] = reflect.TypeOf((*WakeOnLanNotSupportedFault)(nil)).Elem() -} - -type WarningUpgradeEvent struct { - UpgradeEvent -} - -func init() { - t["WarningUpgradeEvent"] = reflect.TypeOf((*WarningUpgradeEvent)(nil)).Elem() -} - -type WeeklyTaskScheduler struct { - DailyTaskScheduler - - Sunday bool `xml:"sunday"` - Monday bool `xml:"monday"` - Tuesday bool `xml:"tuesday"` - Wednesday bool `xml:"wednesday"` - Thursday bool `xml:"thursday"` - Friday bool `xml:"friday"` - Saturday bool `xml:"saturday"` -} - -func init() { - t["WeeklyTaskScheduler"] = reflect.TypeOf((*WeeklyTaskScheduler)(nil)).Elem() -} - -type WillLoseHAProtection struct { - MigrationFault - - Resolution string `xml:"resolution"` -} - -func init() { - t["WillLoseHAProtection"] = reflect.TypeOf((*WillLoseHAProtection)(nil)).Elem() -} - -type WillLoseHAProtectionFault WillLoseHAProtection - -func init() { - t["WillLoseHAProtectionFault"] = reflect.TypeOf((*WillLoseHAProtectionFault)(nil)).Elem() -} - -type WillModifyConfigCpuRequirements struct { - MigrationFault -} - -func init() { - t["WillModifyConfigCpuRequirements"] = reflect.TypeOf((*WillModifyConfigCpuRequirements)(nil)).Elem() -} - -type WillModifyConfigCpuRequirementsFault WillModifyConfigCpuRequirements - -func init() { - t["WillModifyConfigCpuRequirementsFault"] = reflect.TypeOf((*WillModifyConfigCpuRequirementsFault)(nil)).Elem() -} - -type WillResetSnapshotDirectory struct { - MigrationFault -} - -func init() { - t["WillResetSnapshotDirectory"] = reflect.TypeOf((*WillResetSnapshotDirectory)(nil)).Elem() -} - -type WillResetSnapshotDirectoryFault WillResetSnapshotDirectory - -func init() { - t["WillResetSnapshotDirectoryFault"] = reflect.TypeOf((*WillResetSnapshotDirectoryFault)(nil)).Elem() -} - -type WinNetBIOSConfigInfo struct { - NetBIOSConfigInfo - - PrimaryWINS string `xml:"primaryWINS"` - SecondaryWINS string `xml:"secondaryWINS,omitempty"` -} - -func init() { - t["WinNetBIOSConfigInfo"] = reflect.TypeOf((*WinNetBIOSConfigInfo)(nil)).Elem() -} - -type WipeDiskFault struct { - VimFault -} - -func init() { - t["WipeDiskFault"] = reflect.TypeOf((*WipeDiskFault)(nil)).Elem() -} - -type WipeDiskFaultFault WipeDiskFault - -func init() { - t["WipeDiskFaultFault"] = reflect.TypeOf((*WipeDiskFaultFault)(nil)).Elem() -} - -type WitnessNodeInfo struct { - DynamicData - - IpSettings CustomizationIPSettings `xml:"ipSettings"` - BiosUuid string `xml:"biosUuid,omitempty"` -} - -func init() { - t["WitnessNodeInfo"] = reflect.TypeOf((*WitnessNodeInfo)(nil)).Elem() -} - -type XmlToCustomizationSpecItem XmlToCustomizationSpecItemRequestType - -func init() { - t["XmlToCustomizationSpecItem"] = reflect.TypeOf((*XmlToCustomizationSpecItem)(nil)).Elem() -} - -type XmlToCustomizationSpecItemRequestType struct { - This ManagedObjectReference `xml:"_this"` - SpecItemXml string `xml:"specItemXml"` -} - -func init() { - t["XmlToCustomizationSpecItemRequestType"] = reflect.TypeOf((*XmlToCustomizationSpecItemRequestType)(nil)).Elem() -} - -type XmlToCustomizationSpecItemResponse struct { - Returnval CustomizationSpecItem `xml:"returnval"` -} - -type ZeroFillVirtualDiskRequestType struct { - This ManagedObjectReference `xml:"_this"` - Name string `xml:"name"` - Datacenter *ManagedObjectReference `xml:"datacenter,omitempty"` -} - -func init() { - t["ZeroFillVirtualDiskRequestType"] = reflect.TypeOf((*ZeroFillVirtualDiskRequestType)(nil)).Elem() -} - -type ZeroFillVirtualDisk_Task ZeroFillVirtualDiskRequestType - -func init() { - t["ZeroFillVirtualDisk_Task"] = reflect.TypeOf((*ZeroFillVirtualDisk_Task)(nil)).Elem() -} - -type ZeroFillVirtualDisk_TaskResponse struct { - Returnval ManagedObjectReference `xml:"returnval"` -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/extras.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/extras.go deleted file mode 100644 index 9a15b7c8..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/extras.go +++ /dev/null @@ -1,99 +0,0 @@ -/* -Copyright (c) 2014 VMware, 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 xml - -import ( - "reflect" - "time" -) - -var xmlSchemaInstance = Name{Space: "http://www.w3.org/2001/XMLSchema-instance", Local: "type"} - -var xsiType = Name{Space: "xsi", Local: "type"} - -var stringToTypeMap = map[string]reflect.Type{ - "xsd:boolean": reflect.TypeOf((*bool)(nil)).Elem(), - "xsd:byte": reflect.TypeOf((*int8)(nil)).Elem(), - "xsd:short": reflect.TypeOf((*int16)(nil)).Elem(), - "xsd:int": reflect.TypeOf((*int32)(nil)).Elem(), - "xsd:long": reflect.TypeOf((*int64)(nil)).Elem(), - "xsd:unsignedByte": reflect.TypeOf((*uint8)(nil)).Elem(), - "xsd:unsignedShort": reflect.TypeOf((*uint16)(nil)).Elem(), - "xsd:unsignedInt": reflect.TypeOf((*uint32)(nil)).Elem(), - "xsd:unsignedLong": reflect.TypeOf((*uint64)(nil)).Elem(), - "xsd:float": reflect.TypeOf((*float32)(nil)).Elem(), - "xsd:double": reflect.TypeOf((*float64)(nil)).Elem(), - "xsd:string": reflect.TypeOf((*string)(nil)).Elem(), - "xsd:dateTime": reflect.TypeOf((*time.Time)(nil)).Elem(), - "xsd:base64Binary": reflect.TypeOf((*[]byte)(nil)).Elem(), -} - -// Return a reflect.Type for the specified type. Nil if unknown. -func stringToType(s string) reflect.Type { - return stringToTypeMap[s] -} - -// Return a string for the specified reflect.Type. Panic if unknown. -func typeToString(typ reflect.Type) string { - switch typ.Kind() { - case reflect.Bool: - return "xsd:boolean" - case reflect.Int8: - return "xsd:byte" - case reflect.Int16: - return "xsd:short" - case reflect.Int32: - return "xsd:int" - case reflect.Int, reflect.Int64: - return "xsd:long" - case reflect.Uint8: - return "xsd:unsignedByte" - case reflect.Uint16: - return "xsd:unsignedShort" - case reflect.Uint32: - return "xsd:unsignedInt" - case reflect.Uint, reflect.Uint64: - return "xsd:unsignedLong" - case reflect.Float32: - return "xsd:float" - case reflect.Float64: - return "xsd:double" - case reflect.String: - name := typ.Name() - if name == "string" { - return "xsd:string" - } - return name - case reflect.Struct: - if typ == stringToTypeMap["xsd:dateTime"] { - return "xsd:dateTime" - } - - // Expect any other struct to be handled... - return typ.Name() - case reflect.Slice: - if typ.Elem().Kind() == reflect.Uint8 { - return "xsd:base64Binary" - } - case reflect.Array: - if typ.Elem().Kind() == reflect.Uint8 { - return "xsd:base64Binary" - } - } - - panic("don't know what to do for type: " + typ.String()) -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go deleted file mode 100644 index 39bbac1d..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go +++ /dev/null @@ -1,949 +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 xml - -import ( - "bufio" - "bytes" - "encoding" - "fmt" - "io" - "reflect" - "strconv" - "strings" -) - -const ( - // A generic XML header suitable for use with the output of Marshal. - // This is not automatically added to any output of this package, - // it is provided as a convenience. - Header = `` + "\n" -) - -// Marshal returns the XML encoding of v. -// -// Marshal handles an array or slice by marshalling each of the elements. -// Marshal handles a pointer by marshalling the value it points at or, if the -// pointer is nil, by writing nothing. Marshal handles an interface value by -// marshalling the value it contains or, if the interface value is nil, by -// writing nothing. Marshal handles all other data by writing one or more XML -// elements containing the data. -// -// The name for the XML elements is taken from, in order of preference: -// - the tag on the XMLName field, if the data is a struct -// - the value of the XMLName field of type xml.Name -// - the tag of the struct field used to obtain the data -// - the name of the struct field used to obtain the data -// - the name of the marshalled type -// -// The XML element for a struct contains marshalled elements for each of the -// exported fields of the struct, with these exceptions: -// - the XMLName field, described above, is omitted. -// - a field with tag "-" is omitted. -// - a field with tag "name,attr" becomes an attribute with -// the given name in the XML element. -// - a field with tag ",attr" becomes an attribute with the -// field name in the XML element. -// - a field with tag ",chardata" is written as character data, -// not as an XML element. -// - a field with tag ",innerxml" is written verbatim, not subject -// to the usual marshalling procedure. -// - a field with tag ",comment" is written as an XML comment, not -// subject to the usual marshalling procedure. It must not contain -// the "--" string within it. -// - a field with a tag including the "omitempty" option is omitted -// if the field value is empty. The empty values are false, 0, any -// nil pointer or interface value, and any array, slice, map, or -// string of length zero. -// - an anonymous struct field is handled as if the fields of its -// value were part of the outer struct. -// -// If a field uses a tag "a>b>c", then the element c will be nested inside -// parent elements a and b. Fields that appear next to each other that name -// the same parent will be enclosed in one XML element. -// -// See MarshalIndent for an example. -// -// Marshal will return an error if asked to marshal a channel, function, or map. -func Marshal(v interface{}) ([]byte, error) { - var b bytes.Buffer - if err := NewEncoder(&b).Encode(v); err != nil { - return nil, err - } - return b.Bytes(), nil -} - -// Marshaler is the interface implemented by objects that can marshal -// themselves into valid XML elements. -// -// MarshalXML encodes the receiver as zero or more XML elements. -// By convention, arrays or slices are typically encoded as a sequence -// of elements, one per entry. -// Using start as the element tag is not required, but doing so -// will enable Unmarshal to match the XML elements to the correct -// struct field. -// One common implementation strategy is to construct a separate -// value with a layout corresponding to the desired XML and then -// to encode it using e.EncodeElement. -// Another common strategy is to use repeated calls to e.EncodeToken -// to generate the XML output one token at a time. -// The sequence of encoded tokens must make up zero or more valid -// XML elements. -type Marshaler interface { - MarshalXML(e *Encoder, start StartElement) error -} - -// MarshalerAttr is the interface implemented by objects that can marshal -// themselves into valid XML attributes. -// -// MarshalXMLAttr returns an XML attribute with the encoded value of the receiver. -// Using name as the attribute name is not required, but doing so -// will enable Unmarshal to match the attribute to the correct -// struct field. -// If MarshalXMLAttr returns the zero attribute Attr{}, no attribute -// will be generated in the output. -// MarshalXMLAttr is used only for struct fields with the -// "attr" option in the field tag. -type MarshalerAttr interface { - MarshalXMLAttr(name Name) (Attr, error) -} - -// MarshalIndent works like Marshal, but each XML element begins on a new -// indented line that starts with prefix and is followed by one or more -// copies of indent according to the nesting depth. -func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) { - var b bytes.Buffer - enc := NewEncoder(&b) - enc.Indent(prefix, indent) - if err := enc.Encode(v); err != nil { - return nil, err - } - return b.Bytes(), nil -} - -// An Encoder writes XML data to an output stream. -type Encoder struct { - p printer -} - -// NewEncoder returns a new encoder that writes to w. -func NewEncoder(w io.Writer) *Encoder { - e := &Encoder{printer{Writer: bufio.NewWriter(w)}} - e.p.encoder = e - return e -} - -// Indent sets the encoder to generate XML in which each element -// begins on a new indented line that starts with prefix and is followed by -// one or more copies of indent according to the nesting depth. -func (enc *Encoder) Indent(prefix, indent string) { - enc.p.prefix = prefix - enc.p.indent = indent -} - -// Encode writes the XML encoding of v to the stream. -// -// See the documentation for Marshal for details about the conversion -// of Go values to XML. -// -// Encode calls Flush before returning. -func (enc *Encoder) Encode(v interface{}) error { - err := enc.p.marshalValue(reflect.ValueOf(v), nil, nil) - if err != nil { - return err - } - return enc.p.Flush() -} - -// EncodeElement writes the XML encoding of v to the stream, -// using start as the outermost tag in the encoding. -// -// See the documentation for Marshal for details about the conversion -// of Go values to XML. -// -// EncodeElement calls Flush before returning. -func (enc *Encoder) EncodeElement(v interface{}, start StartElement) error { - err := enc.p.marshalValue(reflect.ValueOf(v), nil, &start) - if err != nil { - return err - } - return enc.p.Flush() -} - -var ( - endComment = []byte("-->") - endProcInst = []byte("?>") - endDirective = []byte(">") -) - -// EncodeToken writes the given XML token to the stream. -// It returns an error if StartElement and EndElement tokens are not properly matched. -// -// EncodeToken does not call Flush, because usually it is part of a larger operation -// such as Encode or EncodeElement (or a custom Marshaler's MarshalXML invoked -// during those), and those will call Flush when finished. -// Callers that create an Encoder and then invoke EncodeToken directly, without -// using Encode or EncodeElement, need to call Flush when finished to ensure -// that the XML is written to the underlying writer. -// -// EncodeToken allows writing a ProcInst with Target set to "xml" only as the first token -// in the stream. -func (enc *Encoder) EncodeToken(t Token) error { - p := &enc.p - switch t := t.(type) { - case StartElement: - if err := p.writeStart(&t); err != nil { - return err - } - case EndElement: - if err := p.writeEnd(t.Name); err != nil { - return err - } - case CharData: - EscapeText(p, t) - case Comment: - if bytes.Contains(t, endComment) { - return fmt.Errorf("xml: EncodeToken of Comment containing --> marker") - } - p.WriteString("") - return p.cachedWriteError() - case ProcInst: - // First token to be encoded which is also a ProcInst with target of xml - // is the xml declaration. The only ProcInst where target of xml is allowed. - if t.Target == "xml" && p.Buffered() != 0 { - return fmt.Errorf("xml: EncodeToken of ProcInst xml target only valid for xml declaration, first token encoded") - } - if !isNameString(t.Target) { - return fmt.Errorf("xml: EncodeToken of ProcInst with invalid Target") - } - if bytes.Contains(t.Inst, endProcInst) { - return fmt.Errorf("xml: EncodeToken of ProcInst containing ?> marker") - } - p.WriteString(" 0 { - p.WriteByte(' ') - p.Write(t.Inst) - } - p.WriteString("?>") - case Directive: - if bytes.Contains(t, endDirective) { - return fmt.Errorf("xml: EncodeToken of Directive containing > marker") - } - p.WriteString("") - } - return p.cachedWriteError() -} - -// Flush flushes any buffered XML to the underlying writer. -// See the EncodeToken documentation for details about when it is necessary. -func (enc *Encoder) Flush() error { - return enc.p.Flush() -} - -type printer struct { - *bufio.Writer - encoder *Encoder - seq int - indent string - prefix string - depth int - indentedIn bool - putNewline bool - attrNS map[string]string // map prefix -> name space - attrPrefix map[string]string // map name space -> prefix - prefixes []string - tags []Name -} - -// createAttrPrefix finds the name space prefix attribute to use for the given name space, -// defining a new prefix if necessary. It returns the prefix. -func (p *printer) createAttrPrefix(url string) string { - if prefix := p.attrPrefix[url]; prefix != "" { - return prefix - } - - // The "http://www.w3.org/XML/1998/namespace" name space is predefined as "xml" - // and must be referred to that way. - // (The "http://www.w3.org/2000/xmlns/" name space is also predefined as "xmlns", - // but users should not be trying to use that one directly - that's our job.) - if url == xmlURL { - return "xml" - } - - // Need to define a new name space. - if p.attrPrefix == nil { - p.attrPrefix = make(map[string]string) - p.attrNS = make(map[string]string) - } - - // Pick a name. We try to use the final element of the path - // but fall back to _. - prefix := strings.TrimRight(url, "/") - if i := strings.LastIndex(prefix, "/"); i >= 0 { - prefix = prefix[i+1:] - } - if prefix == "" || !isName([]byte(prefix)) || strings.Contains(prefix, ":") { - prefix = "_" - } - if strings.HasPrefix(prefix, "xml") { - // xmlanything is reserved. - prefix = "_" + prefix - } - if p.attrNS[prefix] != "" { - // Name is taken. Find a better one. - for p.seq++; ; p.seq++ { - if id := prefix + "_" + strconv.Itoa(p.seq); p.attrNS[id] == "" { - prefix = id - break - } - } - } - - p.attrPrefix[url] = prefix - p.attrNS[prefix] = url - - p.WriteString(`xmlns:`) - p.WriteString(prefix) - p.WriteString(`="`) - EscapeText(p, []byte(url)) - p.WriteString(`" `) - - p.prefixes = append(p.prefixes, prefix) - - return prefix -} - -// deleteAttrPrefix removes an attribute name space prefix. -func (p *printer) deleteAttrPrefix(prefix string) { - delete(p.attrPrefix, p.attrNS[prefix]) - delete(p.attrNS, prefix) -} - -func (p *printer) markPrefix() { - p.prefixes = append(p.prefixes, "") -} - -func (p *printer) popPrefix() { - for len(p.prefixes) > 0 { - prefix := p.prefixes[len(p.prefixes)-1] - p.prefixes = p.prefixes[:len(p.prefixes)-1] - if prefix == "" { - break - } - p.deleteAttrPrefix(prefix) - } -} - -var ( - marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() - marshalerAttrType = reflect.TypeOf((*MarshalerAttr)(nil)).Elem() - textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() -) - -// marshalValue writes one or more XML elements representing val. -// If val was obtained from a struct field, finfo must have its details. -func (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo, startTemplate *StartElement) error { - if startTemplate != nil && startTemplate.Name.Local == "" { - return fmt.Errorf("xml: EncodeElement of StartElement with missing name") - } - - if !val.IsValid() { - return nil - } - if finfo != nil && finfo.flags&fOmitEmpty != 0 && isEmptyValue(val) { - return nil - } - - // Drill into interfaces and pointers. - // This can turn into an infinite loop given a cyclic chain, - // but it matches the Go 1 behavior. - for val.Kind() == reflect.Interface || val.Kind() == reflect.Ptr { - if val.IsNil() { - return nil - } - val = val.Elem() - } - - kind := val.Kind() - typ := val.Type() - - // Check for marshaler. - if val.CanInterface() && typ.Implements(marshalerType) { - return p.marshalInterface(val.Interface().(Marshaler), defaultStart(typ, finfo, startTemplate)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(marshalerType) { - return p.marshalInterface(pv.Interface().(Marshaler), defaultStart(pv.Type(), finfo, startTemplate)) - } - } - - // Check for text marshaler. - if val.CanInterface() && typ.Implements(textMarshalerType) { - return p.marshalTextInterface(val.Interface().(encoding.TextMarshaler), defaultStart(typ, finfo, startTemplate)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - return p.marshalTextInterface(pv.Interface().(encoding.TextMarshaler), defaultStart(pv.Type(), finfo, startTemplate)) - } - } - - // Slices and arrays iterate over the elements. They do not have an enclosing tag. - if (kind == reflect.Slice || kind == reflect.Array) && typ.Elem().Kind() != reflect.Uint8 { - for i, n := 0, val.Len(); i < n; i++ { - if err := p.marshalValue(val.Index(i), finfo, startTemplate); err != nil { - return err - } - } - return nil - } - - tinfo, err := getTypeInfo(typ) - if err != nil { - return err - } - - // Create start element. - // Precedence for the XML element name is: - // 0. startTemplate - // 1. XMLName field in underlying struct; - // 2. field name/tag in the struct field; and - // 3. type name - var start StartElement - - if startTemplate != nil { - start.Name = startTemplate.Name - start.Attr = append(start.Attr, startTemplate.Attr...) - } else if tinfo.xmlname != nil { - xmlname := tinfo.xmlname - if xmlname.name != "" { - start.Name.Space, start.Name.Local = xmlname.xmlns, xmlname.name - } else if v, ok := xmlname.value(val).Interface().(Name); ok && v.Local != "" { - start.Name = v - } - } - if start.Name.Local == "" && finfo != nil { - start.Name.Space, start.Name.Local = finfo.xmlns, finfo.name - } - if start.Name.Local == "" { - name := typ.Name() - if name == "" { - return &UnsupportedTypeError{typ} - } - start.Name.Local = name - } - - // Add type attribute if necessary - if finfo != nil && finfo.flags&fTypeAttr != 0 { - start.Attr = append(start.Attr, Attr{xmlSchemaInstance, typeToString(typ)}) - } - - // Attributes - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fAttr == 0 { - continue - } - fv := finfo.value(val) - name := Name{Space: finfo.xmlns, Local: finfo.name} - - if finfo.flags&fOmitEmpty != 0 && isEmptyValue(fv) { - continue - } - - if fv.Kind() == reflect.Interface && fv.IsNil() { - continue - } - - if fv.CanInterface() && fv.Type().Implements(marshalerAttrType) { - attr, err := fv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - if err != nil { - return err - } - if attr.Name.Local != "" { - start.Attr = append(start.Attr, attr) - } - continue - } - - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(marshalerAttrType) { - attr, err := pv.Interface().(MarshalerAttr).MarshalXMLAttr(name) - if err != nil { - return err - } - if attr.Name.Local != "" { - start.Attr = append(start.Attr, attr) - } - continue - } - } - - if fv.CanInterface() && fv.Type().Implements(textMarshalerType) { - text, err := fv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - start.Attr = append(start.Attr, Attr{name, string(text)}) - continue - } - - if fv.CanAddr() { - pv := fv.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - text, err := pv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - start.Attr = append(start.Attr, Attr{name, string(text)}) - continue - } - } - - // Dereference or skip nil pointer, interface values. - switch fv.Kind() { - case reflect.Ptr, reflect.Interface: - if fv.IsNil() { - continue - } - fv = fv.Elem() - } - - s, b, err := p.marshalSimple(fv.Type(), fv) - if err != nil { - return err - } - if b != nil { - s = string(b) - } - start.Attr = append(start.Attr, Attr{name, s}) - } - - if err := p.writeStart(&start); err != nil { - return err - } - - if val.Kind() == reflect.Struct { - err = p.marshalStruct(tinfo, val) - } else { - s, b, err1 := p.marshalSimple(typ, val) - if err1 != nil { - err = err1 - } else if b != nil { - EscapeText(p, b) - } else { - p.EscapeString(s) - } - } - if err != nil { - return err - } - - if err := p.writeEnd(start.Name); err != nil { - return err - } - - return p.cachedWriteError() -} - -// defaultStart returns the default start element to use, -// given the reflect type, field info, and start template. -func defaultStart(typ reflect.Type, finfo *fieldInfo, startTemplate *StartElement) StartElement { - var start StartElement - // Precedence for the XML element name is as above, - // except that we do not look inside structs for the first field. - if startTemplate != nil { - start.Name = startTemplate.Name - start.Attr = append(start.Attr, startTemplate.Attr...) - } else if finfo != nil && finfo.name != "" { - start.Name.Local = finfo.name - start.Name.Space = finfo.xmlns - } else if typ.Name() != "" { - start.Name.Local = typ.Name() - } else { - // Must be a pointer to a named type, - // since it has the Marshaler methods. - start.Name.Local = typ.Elem().Name() - } - - // Add type attribute if necessary - if finfo != nil && finfo.flags&fTypeAttr != 0 { - start.Attr = append(start.Attr, Attr{xmlSchemaInstance, typeToString(typ)}) - } - - return start -} - -// marshalInterface marshals a Marshaler interface value. -func (p *printer) marshalInterface(val Marshaler, start StartElement) error { - // Push a marker onto the tag stack so that MarshalXML - // cannot close the XML tags that it did not open. - p.tags = append(p.tags, Name{}) - n := len(p.tags) - - err := val.MarshalXML(p.encoder, start) - if err != nil { - return err - } - - // Make sure MarshalXML closed all its tags. p.tags[n-1] is the mark. - if len(p.tags) > n { - return fmt.Errorf("xml: %s.MarshalXML wrote invalid XML: <%s> not closed", receiverType(val), p.tags[len(p.tags)-1].Local) - } - p.tags = p.tags[:n-1] - return nil -} - -// marshalTextInterface marshals a TextMarshaler interface value. -func (p *printer) marshalTextInterface(val encoding.TextMarshaler, start StartElement) error { - if err := p.writeStart(&start); err != nil { - return err - } - text, err := val.MarshalText() - if err != nil { - return err - } - EscapeText(p, text) - return p.writeEnd(start.Name) -} - -// writeStart writes the given start element. -func (p *printer) writeStart(start *StartElement) error { - if start.Name.Local == "" { - return fmt.Errorf("xml: start tag with no name") - } - - p.tags = append(p.tags, start.Name) - p.markPrefix() - - p.writeIndent(1) - p.WriteByte('<') - p.WriteString(start.Name.Local) - - if start.Name.Space != "" { - p.WriteString(` xmlns="`) - p.EscapeString(start.Name.Space) - p.WriteByte('"') - } - - // Attributes - for _, attr := range start.Attr { - name := attr.Name - if name.Local == "" { - continue - } - p.WriteByte(' ') - if name.Space != "" { - p.WriteString(p.createAttrPrefix(name.Space)) - p.WriteByte(':') - } - p.WriteString(name.Local) - p.WriteString(`="`) - p.EscapeString(attr.Value) - p.WriteByte('"') - } - p.WriteByte('>') - return nil -} - -func (p *printer) writeEnd(name Name) error { - if name.Local == "" { - return fmt.Errorf("xml: end tag with no name") - } - if len(p.tags) == 0 || p.tags[len(p.tags)-1].Local == "" { - return fmt.Errorf("xml: end tag without start tag", name.Local) - } - if top := p.tags[len(p.tags)-1]; top != name { - if top.Local != name.Local { - return fmt.Errorf("xml: end tag does not match start tag <%s>", name.Local, top.Local) - } - return fmt.Errorf("xml: end tag in namespace %s does not match start tag <%s> in namespace %s", name.Local, name.Space, top.Local, top.Space) - } - p.tags = p.tags[:len(p.tags)-1] - - p.writeIndent(-1) - p.WriteByte('<') - p.WriteByte('/') - p.WriteString(name.Local) - p.WriteByte('>') - p.popPrefix() - return nil -} - -func (p *printer) marshalSimple(typ reflect.Type, val reflect.Value) (string, []byte, error) { - switch val.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return strconv.FormatInt(val.Int(), 10), nil, nil - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return strconv.FormatUint(val.Uint(), 10), nil, nil - case reflect.Float32, reflect.Float64: - return strconv.FormatFloat(val.Float(), 'g', -1, val.Type().Bits()), nil, nil - case reflect.String: - return val.String(), nil, nil - case reflect.Bool: - return strconv.FormatBool(val.Bool()), nil, nil - case reflect.Array: - if typ.Elem().Kind() != reflect.Uint8 { - break - } - // [...]byte - var bytes []byte - if val.CanAddr() { - bytes = val.Slice(0, val.Len()).Bytes() - } else { - bytes = make([]byte, val.Len()) - reflect.Copy(reflect.ValueOf(bytes), val) - } - return "", bytes, nil - case reflect.Slice: - if typ.Elem().Kind() != reflect.Uint8 { - break - } - // []byte - return "", val.Bytes(), nil - } - return "", nil, &UnsupportedTypeError{typ} -} - -var ddBytes = []byte("--") - -func (p *printer) marshalStruct(tinfo *typeInfo, val reflect.Value) error { - s := parentStack{p: p} - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fAttr != 0 { - continue - } - vf := finfo.value(val) - - // Dereference or skip nil pointer, interface values. - switch vf.Kind() { - case reflect.Ptr, reflect.Interface: - if !vf.IsNil() { - vf = vf.Elem() - } - } - - switch finfo.flags & fMode { - case fCharData: - if vf.CanInterface() && vf.Type().Implements(textMarshalerType) { - data, err := vf.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - Escape(p, data) - continue - } - if vf.CanAddr() { - pv := vf.Addr() - if pv.CanInterface() && pv.Type().Implements(textMarshalerType) { - data, err := pv.Interface().(encoding.TextMarshaler).MarshalText() - if err != nil { - return err - } - Escape(p, data) - continue - } - } - var scratch [64]byte - switch vf.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - Escape(p, strconv.AppendInt(scratch[:0], vf.Int(), 10)) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - Escape(p, strconv.AppendUint(scratch[:0], vf.Uint(), 10)) - case reflect.Float32, reflect.Float64: - Escape(p, strconv.AppendFloat(scratch[:0], vf.Float(), 'g', -1, vf.Type().Bits())) - case reflect.Bool: - Escape(p, strconv.AppendBool(scratch[:0], vf.Bool())) - case reflect.String: - if err := EscapeText(p, []byte(vf.String())); err != nil { - return err - } - case reflect.Slice: - if elem, ok := vf.Interface().([]byte); ok { - if err := EscapeText(p, elem); err != nil { - return err - } - } - } - continue - - case fComment: - k := vf.Kind() - if !(k == reflect.String || k == reflect.Slice && vf.Type().Elem().Kind() == reflect.Uint8) { - return fmt.Errorf("xml: bad type for comment field of %s", val.Type()) - } - if vf.Len() == 0 { - continue - } - p.writeIndent(0) - p.WriteString("" is invalid grammar. Make it "- -->" - p.WriteByte(' ') - } - p.WriteString("-->") - continue - - case fInnerXml: - iface := vf.Interface() - switch raw := iface.(type) { - case []byte: - p.Write(raw) - continue - case string: - p.WriteString(raw) - continue - } - - case fElement, fElement | fAny: - if err := s.trim(finfo.parents); err != nil { - return err - } - if len(finfo.parents) > len(s.stack) { - if vf.Kind() != reflect.Ptr && vf.Kind() != reflect.Interface || !vf.IsNil() { - if err := s.push(finfo.parents[len(s.stack):]); err != nil { - return err - } - } - } - } - if err := p.marshalValue(vf, finfo, nil); err != nil { - return err - } - } - s.trim(nil) - return p.cachedWriteError() -} - -// return the bufio Writer's cached write error -func (p *printer) cachedWriteError() error { - _, err := p.Write(nil) - return err -} - -func (p *printer) writeIndent(depthDelta int) { - if len(p.prefix) == 0 && len(p.indent) == 0 { - return - } - if depthDelta < 0 { - p.depth-- - if p.indentedIn { - p.indentedIn = false - return - } - p.indentedIn = false - } - if p.putNewline { - p.WriteByte('\n') - } else { - p.putNewline = true - } - if len(p.prefix) > 0 { - p.WriteString(p.prefix) - } - if len(p.indent) > 0 { - for i := 0; i < p.depth; i++ { - p.WriteString(p.indent) - } - } - if depthDelta > 0 { - p.depth++ - p.indentedIn = true - } -} - -type parentStack struct { - p *printer - stack []string -} - -// trim updates the XML context to match the longest common prefix of the stack -// and the given parents. A closing tag will be written for every parent -// popped. Passing a zero slice or nil will close all the elements. -func (s *parentStack) trim(parents []string) error { - split := 0 - for ; split < len(parents) && split < len(s.stack); split++ { - if parents[split] != s.stack[split] { - break - } - } - for i := len(s.stack) - 1; i >= split; i-- { - if err := s.p.writeEnd(Name{Local: s.stack[i]}); err != nil { - return err - } - } - s.stack = parents[:split] - return nil -} - -// push adds parent elements to the stack and writes open tags. -func (s *parentStack) push(parents []string) error { - for i := 0; i < len(parents); i++ { - if err := s.p.writeStart(&StartElement{Name: Name{Local: parents[i]}}); err != nil { - return err - } - } - s.stack = append(s.stack, parents...) - return nil -} - -// A MarshalXMLError is returned when Marshal encounters a type -// that cannot be converted into XML. -type UnsupportedTypeError struct { - Type reflect.Type -} - -func (e *UnsupportedTypeError) Error() string { - return "xml: unsupported type: " + e.Type.String() -} - -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() - } - return false -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/read.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/read.go deleted file mode 100644 index fe35fce6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/read.go +++ /dev/null @@ -1,781 +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 xml - -import ( - "bytes" - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" -) - -// BUG(rsc): Mapping between XML elements and data structures is inherently flawed: -// an XML element is an order-dependent collection of anonymous -// values, while a data structure is an order-independent collection -// of named values. -// See package json for a textual representation more suitable -// to data structures. - -// Unmarshal parses the XML-encoded data and stores the result in -// the value pointed to by v, which must be an arbitrary struct, -// slice, or string. Well-formed data that does not fit into v is -// discarded. -// -// Because Unmarshal uses the reflect package, it can only assign -// to exported (upper case) fields. Unmarshal uses a case-sensitive -// comparison to match XML element names to tag values and struct -// field names. -// -// Unmarshal maps an XML element to a struct using the following rules. -// In the rules, the tag of a field refers to the value associated with the -// key 'xml' in the struct field's tag (see the example above). -// -// * If the struct has a field of type []byte or string with tag -// ",innerxml", Unmarshal accumulates the raw XML nested inside the -// element in that field. The rest of the rules still apply. -// -// * If the struct has a field named XMLName of type xml.Name, -// Unmarshal records the element name in that field. -// -// * If the XMLName field has an associated tag of the form -// "name" or "namespace-URL name", the XML element must have -// the given name (and, optionally, name space) or else Unmarshal -// returns an error. -// -// * If the XML element has an attribute whose name matches a -// struct field name with an associated tag containing ",attr" or -// the explicit name in a struct field tag of the form "name,attr", -// Unmarshal records the attribute value in that field. -// -// * If the XML element contains character data, that data is -// accumulated in the first struct field that has tag ",chardata". -// The struct field may have type []byte or string. -// If there is no such field, the character data is discarded. -// -// * If the XML element contains comments, they are accumulated in -// the first struct field that has tag ",comment". The struct -// field may have type []byte or string. If there is no such -// field, the comments are discarded. -// -// * If the XML element contains a sub-element whose name matches -// the prefix of a tag formatted as "a" or "a>b>c", unmarshal -// will descend into the XML structure looking for elements with the -// given names, and will map the innermost elements to that struct -// field. A tag starting with ">" is equivalent to one starting -// with the field name followed by ">". -// -// * If the XML element contains a sub-element whose name matches -// a struct field's XMLName tag and the struct field has no -// explicit name tag as per the previous rule, unmarshal maps -// the sub-element to that struct field. -// -// * If the XML element contains a sub-element whose name matches a -// field without any mode flags (",attr", ",chardata", etc), Unmarshal -// maps the sub-element to that struct field. -// -// * If the XML element contains a sub-element that hasn't matched any -// of the above rules and the struct has a field with tag ",any", -// unmarshal maps the sub-element to that struct field. -// -// * An anonymous struct field is handled as if the fields of its -// value were part of the outer struct. -// -// * A struct field with tag "-" is never unmarshalled into. -// -// Unmarshal maps an XML element to a string or []byte by saving the -// concatenation of that element's character data in the string or -// []byte. The saved []byte is never nil. -// -// Unmarshal maps an attribute value to a string or []byte by saving -// the value in the string or slice. -// -// Unmarshal maps an XML element to a slice by extending the length of -// the slice and mapping the element to the newly created value. -// -// Unmarshal maps an XML element or attribute value to a bool by -// setting it to the boolean value represented by the string. -// -// Unmarshal maps an XML element or attribute value to an integer or -// floating-point field by setting the field to the result of -// interpreting the string value in decimal. There is no check for -// overflow. -// -// Unmarshal maps an XML element to an xml.Name by recording the -// element name. -// -// Unmarshal maps an XML element to a pointer by setting the pointer -// to a freshly allocated value and then mapping the element to that value. -// -func Unmarshal(data []byte, v interface{}) error { - return NewDecoder(bytes.NewReader(data)).Decode(v) -} - -// Decode works like xml.Unmarshal, except it reads the decoder -// stream to find the start element. -func (d *Decoder) Decode(v interface{}) error { - return d.DecodeElement(v, nil) -} - -// DecodeElement works like xml.Unmarshal except that it takes -// a pointer to the start XML element to decode into v. -// It is useful when a client reads some raw XML tokens itself -// but also wants to defer to Unmarshal for some elements. -func (d *Decoder) DecodeElement(v interface{}, start *StartElement) error { - val := reflect.ValueOf(v) - if val.Kind() != reflect.Ptr { - return errors.New("non-pointer passed to Unmarshal") - } - return d.unmarshal(val.Elem(), start) -} - -// An UnmarshalError represents an error in the unmarshalling process. -type UnmarshalError string - -func (e UnmarshalError) Error() string { return string(e) } - -// Unmarshaler is the interface implemented by objects that can unmarshal -// an XML element description of themselves. -// -// UnmarshalXML decodes a single XML element -// beginning with the given start element. -// If it returns an error, the outer call to Unmarshal stops and -// returns that error. -// UnmarshalXML must consume exactly one XML element. -// One common implementation strategy is to unmarshal into -// a separate value with a layout matching the expected XML -// using d.DecodeElement, and then to copy the data from -// that value into the receiver. -// Another common strategy is to use d.Token to process the -// XML object one token at a time. -// UnmarshalXML may not use d.RawToken. -type Unmarshaler interface { - UnmarshalXML(d *Decoder, start StartElement) error -} - -// UnmarshalerAttr is the interface implemented by objects that can unmarshal -// an XML attribute description of themselves. -// -// UnmarshalXMLAttr decodes a single XML attribute. -// If it returns an error, the outer call to Unmarshal stops and -// returns that error. -// UnmarshalXMLAttr is used only for struct fields with the -// "attr" option in the field tag. -type UnmarshalerAttr interface { - UnmarshalXMLAttr(attr Attr) error -} - -// receiverType returns the receiver type to use in an expression like "%s.MethodName". -func receiverType(val interface{}) string { - t := reflect.TypeOf(val) - if t.Name() != "" { - return t.String() - } - return "(" + t.String() + ")" -} - -// unmarshalInterface unmarshals a single XML element into val. -// start is the opening tag of the element. -func (p *Decoder) unmarshalInterface(val Unmarshaler, start *StartElement) error { - // Record that decoder must stop at end tag corresponding to start. - p.pushEOF() - - p.unmarshalDepth++ - err := val.UnmarshalXML(p, *start) - p.unmarshalDepth-- - if err != nil { - p.popEOF() - return err - } - - if !p.popEOF() { - return fmt.Errorf("xml: %s.UnmarshalXML did not consume entire <%s> element", receiverType(val), start.Name.Local) - } - - return nil -} - -// unmarshalTextInterface unmarshals a single XML element into val. -// The chardata contained in the element (but not its children) -// is passed to the text unmarshaler. -func (p *Decoder) unmarshalTextInterface(val encoding.TextUnmarshaler, start *StartElement) error { - var buf []byte - depth := 1 - for depth > 0 { - t, err := p.Token() - if err != nil { - return err - } - switch t := t.(type) { - case CharData: - if depth == 1 { - buf = append(buf, t...) - } - case StartElement: - depth++ - case EndElement: - depth-- - } - } - return val.UnmarshalText(buf) -} - -// unmarshalAttr unmarshals a single XML attribute into val. -func (p *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error { - if val.Kind() == reflect.Ptr { - if val.IsNil() { - val.Set(reflect.New(val.Type().Elem())) - } - val = val.Elem() - } - - if val.CanInterface() && val.Type().Implements(unmarshalerAttrType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return val.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(unmarshalerAttrType) { - return pv.Interface().(UnmarshalerAttr).UnmarshalXMLAttr(attr) - } - } - - // Not an UnmarshalerAttr; try encoding.TextUnmarshaler. - if val.CanInterface() && val.Type().Implements(textUnmarshalerType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return val.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value)) - } - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - return pv.Interface().(encoding.TextUnmarshaler).UnmarshalText([]byte(attr.Value)) - } - } - - copyValue(val, []byte(attr.Value)) - return nil -} - -var ( - unmarshalerType = reflect.TypeOf((*Unmarshaler)(nil)).Elem() - unmarshalerAttrType = reflect.TypeOf((*UnmarshalerAttr)(nil)).Elem() - textUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() -) - -// Find reflect.Type for an element's type attribute. -func (p *Decoder) typeForElement(val reflect.Value, start *StartElement) reflect.Type { - t := "" - for i, a := range start.Attr { - if a.Name == xmlSchemaInstance || a.Name == xsiType { - t = a.Value - // HACK: ensure xsi:type is last in the list to avoid using that value for - // a "type" attribute, such as ManagedObjectReference.Type for example. - // Note that xsi:type is already the last attribute in VC/ESX responses. - // This is only an issue with govmomi simulator generated responses. - // Proper fix will require finding a few needles in this xml package haystack. - // Note: govmomi uses xmlSchemaInstance, other clients (e.g. rbvmomi) use xsiType. - // They are the same thing to XML parsers, but not to this hack here. - x := len(start.Attr) - 1 - if i != x { - start.Attr[i] = start.Attr[x] - start.Attr[x] = a - } - break - } - } - - if t == "" { - // No type attribute; fall back to looking up type by interface name. - t = val.Type().Name() - } - - // Maybe the type is a basic xsd:* type. - typ := stringToType(t) - if typ != nil { - return typ - } - - // Maybe the type is a custom type. - if p.TypeFunc != nil { - if typ, ok := p.TypeFunc(t); ok { - return typ - } - } - - return nil -} - -// Unmarshal a single XML element into val. -func (p *Decoder) unmarshal(val reflect.Value, start *StartElement) error { - // Find start element if we need it. - if start == nil { - for { - tok, err := p.Token() - if err != nil { - return err - } - if t, ok := tok.(StartElement); ok { - start = &t - break - } - } - } - - // Try to figure out type for empty interface values. - if val.Kind() == reflect.Interface && val.IsNil() { - typ := p.typeForElement(val, start) - if typ != nil { - pval := reflect.New(typ).Elem() - err := p.unmarshal(pval, start) - if err != nil { - return err - } - - for i := 0; i < 2; i++ { - if typ.Implements(val.Type()) { - val.Set(pval) - return nil - } - - typ = reflect.PtrTo(typ) - pval = pval.Addr() - } - - val.Set(pval) - return nil - } - } - - // Load value from interface, but only if the result will be - // usefully addressable. - if val.Kind() == reflect.Interface && !val.IsNil() { - e := val.Elem() - if e.Kind() == reflect.Ptr && !e.IsNil() { - val = e - } - } - - if val.Kind() == reflect.Ptr { - if val.IsNil() { - val.Set(reflect.New(val.Type().Elem())) - } - val = val.Elem() - } - - if val.CanInterface() && val.Type().Implements(unmarshalerType) { - // This is an unmarshaler with a non-pointer receiver, - // so it's likely to be incorrect, but we do what we're told. - return p.unmarshalInterface(val.Interface().(Unmarshaler), start) - } - - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(unmarshalerType) { - return p.unmarshalInterface(pv.Interface().(Unmarshaler), start) - } - } - - if val.CanInterface() && val.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(val.Interface().(encoding.TextUnmarshaler), start) - } - - if val.CanAddr() { - pv := val.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - return p.unmarshalTextInterface(pv.Interface().(encoding.TextUnmarshaler), start) - } - } - - var ( - data []byte - saveData reflect.Value - comment []byte - saveComment reflect.Value - saveXML reflect.Value - saveXMLIndex int - saveXMLData []byte - saveAny reflect.Value - sv reflect.Value - tinfo *typeInfo - err error - ) - - switch v := val; v.Kind() { - default: - return errors.New("unknown type " + v.Type().String()) - - case reflect.Interface: - // TODO: For now, simply ignore the field. In the near - // future we may choose to unmarshal the start - // element on it, if not nil. - return p.Skip() - - case reflect.Slice: - typ := v.Type() - if typ.Elem().Kind() == reflect.Uint8 { - // []byte - saveData = v - break - } - - // Slice of element values. - // Grow slice. - n := v.Len() - if n >= v.Cap() { - ncap := 2 * n - if ncap < 4 { - ncap = 4 - } - new := reflect.MakeSlice(typ, n, ncap) - reflect.Copy(new, v) - v.Set(new) - } - v.SetLen(n + 1) - - // Recur to read element into slice. - if err := p.unmarshal(v.Index(n), start); err != nil { - v.SetLen(n) - return err - } - return nil - - case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.String: - saveData = v - - case reflect.Struct: - typ := v.Type() - if typ == nameType { - v.Set(reflect.ValueOf(start.Name)) - break - } - - sv = v - tinfo, err = getTypeInfo(typ) - if err != nil { - return err - } - - // Validate and assign element name. - if tinfo.xmlname != nil { - finfo := tinfo.xmlname - if finfo.name != "" && finfo.name != start.Name.Local { - return UnmarshalError("expected element type <" + finfo.name + "> but have <" + start.Name.Local + ">") - } - if finfo.xmlns != "" && finfo.xmlns != start.Name.Space { - e := "expected element <" + finfo.name + "> in name space " + finfo.xmlns + " but have " - if start.Name.Space == "" { - e += "no name space" - } else { - e += start.Name.Space - } - return UnmarshalError(e) - } - fv := finfo.value(sv) - if _, ok := fv.Interface().(Name); ok { - fv.Set(reflect.ValueOf(start.Name)) - } - } - - // Assign attributes. - // Also, determine whether we need to save character data or comments. - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - switch finfo.flags & fMode { - case fAttr: - strv := finfo.value(sv) - // Look for attribute. - for _, a := range start.Attr { - if a.Name.Local == finfo.name && (finfo.xmlns == "" || finfo.xmlns == a.Name.Space) { - if err := p.unmarshalAttr(strv, a); err != nil { - return err - } - break - } - } - - case fCharData: - if !saveData.IsValid() { - saveData = finfo.value(sv) - } - - case fComment: - if !saveComment.IsValid() { - saveComment = finfo.value(sv) - } - - case fAny, fAny | fElement: - if !saveAny.IsValid() { - saveAny = finfo.value(sv) - } - - case fInnerXml: - if !saveXML.IsValid() { - saveXML = finfo.value(sv) - if p.saved == nil { - saveXMLIndex = 0 - p.saved = new(bytes.Buffer) - } else { - saveXMLIndex = p.savedOffset() - } - } - } - } - } - - // Find end element. - // Process sub-elements along the way. -Loop: - for { - var savedOffset int - if saveXML.IsValid() { - savedOffset = p.savedOffset() - } - tok, err := p.Token() - if err != nil { - return err - } - switch t := tok.(type) { - case StartElement: - consumed := false - if sv.IsValid() { - consumed, err = p.unmarshalPath(tinfo, sv, nil, &t) - if err != nil { - return err - } - if !consumed && saveAny.IsValid() { - consumed = true - if err := p.unmarshal(saveAny, &t); err != nil { - return err - } - } - } - if !consumed { - if err := p.Skip(); err != nil { - return err - } - } - - case EndElement: - if saveXML.IsValid() { - saveXMLData = p.saved.Bytes()[saveXMLIndex:savedOffset] - if saveXMLIndex == 0 { - p.saved = nil - } - } - break Loop - - case CharData: - if saveData.IsValid() { - data = append(data, t...) - } - - case Comment: - if saveComment.IsValid() { - comment = append(comment, t...) - } - } - } - - if saveData.IsValid() && saveData.CanInterface() && saveData.Type().Implements(textUnmarshalerType) { - if err := saveData.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return err - } - saveData = reflect.Value{} - } - - if saveData.IsValid() && saveData.CanAddr() { - pv := saveData.Addr() - if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) { - if err := pv.Interface().(encoding.TextUnmarshaler).UnmarshalText(data); err != nil { - return err - } - saveData = reflect.Value{} - } - } - - if err := copyValue(saveData, data); err != nil { - return err - } - - switch t := saveComment; t.Kind() { - case reflect.String: - t.SetString(string(comment)) - case reflect.Slice: - t.Set(reflect.ValueOf(comment)) - } - - switch t := saveXML; t.Kind() { - case reflect.String: - t.SetString(string(saveXMLData)) - case reflect.Slice: - t.Set(reflect.ValueOf(saveXMLData)) - } - - return nil -} - -func copyValue(dst reflect.Value, src []byte) (err error) { - dst0 := dst - - if dst.Kind() == reflect.Ptr { - if dst.IsNil() { - dst.Set(reflect.New(dst.Type().Elem())) - } - dst = dst.Elem() - } - - // Save accumulated data. - switch dst.Kind() { - case reflect.Invalid: - // Probably a comment. - default: - return errors.New("cannot unmarshal into " + dst0.Type().String()) - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - itmp, err := strconv.ParseInt(string(src), 10, dst.Type().Bits()) - if err != nil { - return err - } - dst.SetInt(itmp) - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - var utmp uint64 - if len(src) > 0 && src[0] == '-' { - // Negative value for unsigned field. - // Assume it was serialized following two's complement. - itmp, err := strconv.ParseInt(string(src), 10, dst.Type().Bits()) - if err != nil { - return err - } - // Reinterpret value based on type width. - switch dst.Type().Bits() { - case 8: - utmp = uint64(uint8(itmp)) - case 16: - utmp = uint64(uint16(itmp)) - case 32: - utmp = uint64(uint32(itmp)) - case 64: - utmp = uint64(uint64(itmp)) - } - } else { - utmp, err = strconv.ParseUint(string(src), 10, dst.Type().Bits()) - if err != nil { - return err - } - } - dst.SetUint(utmp) - case reflect.Float32, reflect.Float64: - ftmp, err := strconv.ParseFloat(string(src), dst.Type().Bits()) - if err != nil { - return err - } - dst.SetFloat(ftmp) - case reflect.Bool: - value, err := strconv.ParseBool(strings.TrimSpace(string(src))) - if err != nil { - return err - } - dst.SetBool(value) - case reflect.String: - dst.SetString(string(src)) - case reflect.Slice: - if len(src) == 0 { - // non-nil to flag presence - src = []byte{} - } - dst.SetBytes(src) - } - return nil -} - -// unmarshalPath walks down an XML structure looking for wanted -// paths, and calls unmarshal on them. -// The consumed result tells whether XML elements have been consumed -// from the Decoder until start's matching end element, or if it's -// still untouched because start is uninteresting for sv's fields. -func (p *Decoder) unmarshalPath(tinfo *typeInfo, sv reflect.Value, parents []string, start *StartElement) (consumed bool, err error) { - recurse := false -Loop: - for i := range tinfo.fields { - finfo := &tinfo.fields[i] - if finfo.flags&fElement == 0 || len(finfo.parents) < len(parents) || finfo.xmlns != "" && finfo.xmlns != start.Name.Space { - continue - } - for j := range parents { - if parents[j] != finfo.parents[j] { - continue Loop - } - } - if len(finfo.parents) == len(parents) && finfo.name == start.Name.Local { - // It's a perfect match, unmarshal the field. - return true, p.unmarshal(finfo.value(sv), start) - } - if len(finfo.parents) > len(parents) && finfo.parents[len(parents)] == start.Name.Local { - // It's a prefix for the field. Break and recurse - // since it's not ok for one field path to be itself - // the prefix for another field path. - recurse = true - - // We can reuse the same slice as long as we - // don't try to append to it. - parents = finfo.parents[:len(parents)+1] - break - } - } - if !recurse { - // We have no business with this element. - return false, nil - } - // The element is not a perfect match for any field, but one - // or more fields have the path to this element as a parent - // prefix. Recurse and attempt to match these. - for { - var tok Token - tok, err = p.Token() - if err != nil { - return true, err - } - switch t := tok.(type) { - case StartElement: - consumed2, err := p.unmarshalPath(tinfo, sv, parents, &t) - if err != nil { - return true, err - } - if !consumed2 { - if err := p.Skip(); err != nil { - return true, err - } - } - case EndElement: - return true, nil - } - } -} - -// Skip reads tokens until it has consumed the end element -// matching the most recent start element already consumed. -// It recurs if it encounters a start element, so it can be used to -// skip nested structures. -// It returns nil if it finds an end element matching the start -// element; otherwise it returns an error describing the problem. -func (d *Decoder) Skip() error { - for { - tok, err := d.Token() - if err != nil { - return err - } - switch tok.(type) { - case StartElement: - if err := d.Skip(); err != nil { - return err - } - case EndElement: - return nil - } - } -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go deleted file mode 100644 index 086e83b6..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go +++ /dev/null @@ -1,366 +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 xml - -import ( - "fmt" - "reflect" - "strings" - "sync" -) - -// typeInfo holds details for the xml representation of a type. -type typeInfo struct { - xmlname *fieldInfo - fields []fieldInfo -} - -// fieldInfo holds details for the xml representation of a single field. -type fieldInfo struct { - idx []int - name string - xmlns string - flags fieldFlags - parents []string -} - -type fieldFlags int - -const ( - fElement fieldFlags = 1 << iota - fAttr - fCharData - fInnerXml - fComment - fAny - - fOmitEmpty - fTypeAttr - - fMode = fElement | fAttr | fCharData | fInnerXml | fComment | fAny -) - -var tinfoMap = make(map[reflect.Type]*typeInfo) -var tinfoLock sync.RWMutex - -var nameType = reflect.TypeOf(Name{}) - -// getTypeInfo returns the typeInfo structure with details necessary -// for marshalling and unmarshalling typ. -func getTypeInfo(typ reflect.Type) (*typeInfo, error) { - tinfoLock.RLock() - tinfo, ok := tinfoMap[typ] - tinfoLock.RUnlock() - if ok { - return tinfo, nil - } - tinfo = &typeInfo{} - if typ.Kind() == reflect.Struct && typ != nameType { - n := typ.NumField() - for i := 0; i < n; i++ { - f := typ.Field(i) - if f.PkgPath != "" || f.Tag.Get("xml") == "-" { - continue // Private field - } - - // For embedded structs, embed its fields. - if f.Anonymous { - t := f.Type - if t.Kind() == reflect.Ptr { - t = t.Elem() - } - if t.Kind() == reflect.Struct { - inner, err := getTypeInfo(t) - if err != nil { - return nil, err - } - if tinfo.xmlname == nil { - tinfo.xmlname = inner.xmlname - } - for _, finfo := range inner.fields { - finfo.idx = append([]int{i}, finfo.idx...) - if err := addFieldInfo(typ, tinfo, &finfo); err != nil { - return nil, err - } - } - continue - } - } - - finfo, err := structFieldInfo(typ, &f) - if err != nil { - return nil, err - } - - if f.Name == "XMLName" { - tinfo.xmlname = finfo - continue - } - - // Add the field if it doesn't conflict with other fields. - if err := addFieldInfo(typ, tinfo, finfo); err != nil { - return nil, err - } - } - } - tinfoLock.Lock() - tinfoMap[typ] = tinfo - tinfoLock.Unlock() - return tinfo, nil -} - -// structFieldInfo builds and returns a fieldInfo for f. -func structFieldInfo(typ reflect.Type, f *reflect.StructField) (*fieldInfo, error) { - finfo := &fieldInfo{idx: f.Index} - - // Split the tag from the xml namespace if necessary. - tag := f.Tag.Get("xml") - if i := strings.Index(tag, " "); i >= 0 { - finfo.xmlns, tag = tag[:i], tag[i+1:] - } - - // Parse flags. - tokens := strings.Split(tag, ",") - if len(tokens) == 1 { - finfo.flags = fElement - } else { - tag = tokens[0] - for _, flag := range tokens[1:] { - switch flag { - case "attr": - finfo.flags |= fAttr - case "chardata": - finfo.flags |= fCharData - case "innerxml": - finfo.flags |= fInnerXml - case "comment": - finfo.flags |= fComment - case "any": - finfo.flags |= fAny - case "omitempty": - finfo.flags |= fOmitEmpty - case "typeattr": - finfo.flags |= fTypeAttr - } - } - - // Validate the flags used. - valid := true - switch mode := finfo.flags & fMode; mode { - case 0: - finfo.flags |= fElement - case fAttr, fCharData, fInnerXml, fComment, fAny: - if f.Name == "XMLName" || tag != "" && mode != fAttr { - valid = false - } - default: - // This will also catch multiple modes in a single field. - valid = false - } - if finfo.flags&fMode == fAny { - finfo.flags |= fElement - } - if finfo.flags&fOmitEmpty != 0 && finfo.flags&(fElement|fAttr) == 0 { - valid = false - } - if !valid { - return nil, fmt.Errorf("xml: invalid tag in field %s of type %s: %q", - f.Name, typ, f.Tag.Get("xml")) - } - } - - // Use of xmlns without a name is not allowed. - if finfo.xmlns != "" && tag == "" { - return nil, fmt.Errorf("xml: namespace without name in field %s of type %s: %q", - f.Name, typ, f.Tag.Get("xml")) - } - - if f.Name == "XMLName" { - // The XMLName field records the XML element name. Don't - // process it as usual because its name should default to - // empty rather than to the field name. - finfo.name = tag - return finfo, nil - } - - if tag == "" { - // If the name part of the tag is completely empty, get - // default from XMLName of underlying struct if feasible, - // or field name otherwise. - if xmlname := lookupXMLName(f.Type); xmlname != nil { - finfo.xmlns, finfo.name = xmlname.xmlns, xmlname.name - } else { - finfo.name = f.Name - } - return finfo, nil - } - - // Prepare field name and parents. - parents := strings.Split(tag, ">") - if parents[0] == "" { - parents[0] = f.Name - } - if parents[len(parents)-1] == "" { - return nil, fmt.Errorf("xml: trailing '>' in field %s of type %s", f.Name, typ) - } - finfo.name = parents[len(parents)-1] - if len(parents) > 1 { - if (finfo.flags & fElement) == 0 { - return nil, fmt.Errorf("xml: %s chain not valid with %s flag", tag, strings.Join(tokens[1:], ",")) - } - finfo.parents = parents[:len(parents)-1] - } - - // If the field type has an XMLName field, the names must match - // so that the behavior of both marshalling and unmarshalling - // is straightforward and unambiguous. - if finfo.flags&fElement != 0 { - ftyp := f.Type - xmlname := lookupXMLName(ftyp) - if xmlname != nil && xmlname.name != finfo.name { - return nil, fmt.Errorf("xml: name %q in tag of %s.%s conflicts with name %q in %s.XMLName", - finfo.name, typ, f.Name, xmlname.name, ftyp) - } - } - return finfo, nil -} - -// lookupXMLName returns the fieldInfo for typ's XMLName field -// in case it exists and has a valid xml field tag, otherwise -// it returns nil. -func lookupXMLName(typ reflect.Type) (xmlname *fieldInfo) { - for typ.Kind() == reflect.Ptr { - typ = typ.Elem() - } - if typ.Kind() != reflect.Struct { - return nil - } - for i, n := 0, typ.NumField(); i < n; i++ { - f := typ.Field(i) - if f.Name != "XMLName" { - continue - } - finfo, err := structFieldInfo(typ, &f) - if finfo.name != "" && err == nil { - return finfo - } - // Also consider errors as a non-existent field tag - // and let getTypeInfo itself report the error. - break - } - return nil -} - -func min(a, b int) int { - if a <= b { - return a - } - return b -} - -// addFieldInfo adds finfo to tinfo.fields if there are no -// conflicts, or if conflicts arise from previous fields that were -// obtained from deeper embedded structures than finfo. In the latter -// case, the conflicting entries are dropped. -// A conflict occurs when the path (parent + name) to a field is -// itself a prefix of another path, or when two paths match exactly. -// It is okay for field paths to share a common, shorter prefix. -func addFieldInfo(typ reflect.Type, tinfo *typeInfo, newf *fieldInfo) error { - var conflicts []int -Loop: - // First, figure all conflicts. Most working code will have none. - for i := range tinfo.fields { - oldf := &tinfo.fields[i] - if oldf.flags&fMode != newf.flags&fMode { - continue - } - if oldf.xmlns != "" && newf.xmlns != "" && oldf.xmlns != newf.xmlns { - continue - } - minl := min(len(newf.parents), len(oldf.parents)) - for p := 0; p < minl; p++ { - if oldf.parents[p] != newf.parents[p] { - continue Loop - } - } - if len(oldf.parents) > len(newf.parents) { - if oldf.parents[len(newf.parents)] == newf.name { - conflicts = append(conflicts, i) - } - } else if len(oldf.parents) < len(newf.parents) { - if newf.parents[len(oldf.parents)] == oldf.name { - conflicts = append(conflicts, i) - } - } else { - if newf.name == oldf.name { - conflicts = append(conflicts, i) - } - } - } - // Without conflicts, add the new field and return. - if conflicts == nil { - tinfo.fields = append(tinfo.fields, *newf) - return nil - } - - // If any conflict is shallower, ignore the new field. - // This matches the Go field resolution on embedding. - for _, i := range conflicts { - if len(tinfo.fields[i].idx) < len(newf.idx) { - return nil - } - } - - // Otherwise, if any of them is at the same depth level, it's an error. - for _, i := range conflicts { - oldf := &tinfo.fields[i] - if len(oldf.idx) == len(newf.idx) { - f1 := typ.FieldByIndex(oldf.idx) - f2 := typ.FieldByIndex(newf.idx) - return &TagPathError{typ, f1.Name, f1.Tag.Get("xml"), f2.Name, f2.Tag.Get("xml")} - } - } - - // Otherwise, the new field is shallower, and thus takes precedence, - // so drop the conflicting fields from tinfo and append the new one. - for c := len(conflicts) - 1; c >= 0; c-- { - i := conflicts[c] - copy(tinfo.fields[i:], tinfo.fields[i+1:]) - tinfo.fields = tinfo.fields[:len(tinfo.fields)-1] - } - tinfo.fields = append(tinfo.fields, *newf) - return nil -} - -// A TagPathError represents an error in the unmarshalling process -// caused by the use of field tags with conflicting paths. -type TagPathError struct { - Struct reflect.Type - Field1, Tag1 string - Field2, Tag2 string -} - -func (e *TagPathError) Error() string { - return fmt.Sprintf("%s field %q with tag %q conflicts with field %q with tag %q", e.Struct, e.Field1, e.Tag1, e.Field2, e.Tag2) -} - -// value returns v's field value corresponding to finfo. -// It's equivalent to v.FieldByIndex(finfo.idx), but initializes -// and dereferences pointers as necessary. -func (finfo *fieldInfo) value(v reflect.Value) reflect.Value { - for i, x := range finfo.idx { - if i > 0 { - t := v.Type() - if t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Struct { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - } - } - v = v.Field(x) - } - return v -} diff --git a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/xml.go b/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/xml.go deleted file mode 100644 index 6c6c5c82..00000000 --- a/vendor/github.com/elastic/beats/metricbeat/module/vsphere/vendor/github.com/vmware/govmomi/vim25/xml/xml.go +++ /dev/null @@ -1,1939 +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 xml implements a simple XML 1.0 parser that -// understands XML name spaces. -package xml - -// References: -// Annotated XML spec: http://www.xml.com/axml/testaxml.htm -// XML name spaces: http://www.w3.org/TR/REC-xml-names/ - -// TODO(rsc): -// Test error handling. - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "reflect" - "strconv" - "strings" - "unicode" - "unicode/utf8" -) - -// A SyntaxError represents a syntax error in the XML input stream. -type SyntaxError struct { - Msg string - Line int -} - -func (e *SyntaxError) Error() string { - return "XML syntax error on line " + strconv.Itoa(e.Line) + ": " + e.Msg -} - -// A Name represents an XML name (Local) annotated -// with a name space identifier (Space). -// In tokens returned by Decoder.Token, the Space identifier -// is given as a canonical URL, not the short prefix used -// in the document being parsed. -type Name struct { - Space, Local string -} - -// An Attr represents an attribute in an XML element (Name=Value). -type Attr struct { - Name Name - Value string -} - -// A Token is an interface holding one of the token types: -// StartElement, EndElement, CharData, Comment, ProcInst, or Directive. -type Token interface{} - -// A StartElement represents an XML start element. -type StartElement struct { - Name Name - Attr []Attr -} - -func (e StartElement) Copy() StartElement { - attrs := make([]Attr, len(e.Attr)) - copy(attrs, e.Attr) - e.Attr = attrs - return e -} - -// End returns the corresponding XML end element. -func (e StartElement) End() EndElement { - return EndElement{e.Name} -} - -// An EndElement represents an XML end element. -type EndElement struct { - Name Name -} - -// A CharData represents XML character data (raw text), -// in which XML escape sequences have been replaced by -// the characters they represent. -type CharData []byte - -func makeCopy(b []byte) []byte { - b1 := make([]byte, len(b)) - copy(b1, b) - return b1 -} - -func (c CharData) Copy() CharData { return CharData(makeCopy(c)) } - -// A Comment represents an XML comment of the form . -// The bytes do not include the comment markers. -type Comment []byte - -func (c Comment) Copy() Comment { return Comment(makeCopy(c)) } - -// A ProcInst represents an XML processing instruction of the form -type ProcInst struct { - Target string - Inst []byte -} - -func (p ProcInst) Copy() ProcInst { - p.Inst = makeCopy(p.Inst) - return p -} - -// A Directive represents an XML directive of the form . -// The bytes do not include the markers. -type Directive []byte - -func (d Directive) Copy() Directive { return Directive(makeCopy(d)) } - -// CopyToken returns a copy of a Token. -func CopyToken(t Token) Token { - switch v := t.(type) { - case CharData: - return v.Copy() - case Comment: - return v.Copy() - case Directive: - return v.Copy() - case ProcInst: - return v.Copy() - case StartElement: - return v.Copy() - } - return t -} - -// A Decoder represents an XML parser reading a particular input stream. -// The parser assumes that its input is encoded in UTF-8. -type Decoder struct { - // Strict defaults to true, enforcing the requirements - // of the XML specification. - // If set to false, the parser allows input containing common - // mistakes: - // * If an element is missing an end tag, the parser invents - // end tags as necessary to keep the return values from Token - // properly balanced. - // * In attribute values and character data, unknown or malformed - // character entities (sequences beginning with &) are left alone. - // - // Setting: - // - // d.Strict = false; - // d.AutoClose = HTMLAutoClose; - // d.Entity = HTMLEntity - // - // creates a parser that can handle typical HTML. - // - // Strict mode does not enforce the requirements of the XML name spaces TR. - // In particular it does not reject name space tags using undefined prefixes. - // Such tags are recorded with the unknown prefix as the name space URL. - Strict bool - - // When Strict == false, AutoClose indicates a set of elements to - // consider closed immediately after they are opened, regardless - // of whether an end element is present. - AutoClose []string - - // Entity can be used to map non-standard entity names to string replacements. - // The parser behaves as if these standard mappings are present in the map, - // regardless of the actual map content: - // - // "lt": "<", - // "gt": ">", - // "amp": "&", - // "apos": "'", - // "quot": `"`, - Entity map[string]string - - // CharsetReader, if non-nil, defines a function to generate - // charset-conversion readers, converting from the provided - // non-UTF-8 charset into UTF-8. If CharsetReader is nil or - // returns an error, parsing stops with an error. One of the - // the CharsetReader's result values must be non-nil. - CharsetReader func(charset string, input io.Reader) (io.Reader, error) - - // DefaultSpace sets the default name space used for unadorned tags, - // as if the entire XML stream were wrapped in an element containing - // the attribute xmlns="DefaultSpace". - DefaultSpace string - - // TypeFunc is used to map type names to actual types. - TypeFunc func(string) (reflect.Type, bool) - - r io.ByteReader - buf bytes.Buffer - saved *bytes.Buffer - stk *stack - free *stack - needClose bool - toClose Name - nextToken Token - nextByte int - ns map[string]string - err error - line int - unmarshalDepth int -} - -// NewDecoder creates a new XML parser reading from r. -// If r does not implement io.ByteReader, NewDecoder will -// do its own buffering. -func NewDecoder(r io.Reader) *Decoder { - d := &Decoder{ - ns: make(map[string]string), - nextByte: -1, - line: 1, - Strict: true, - } - d.switchToReader(r) - return d -} - -// Token returns the next XML token in the input stream. -// At the end of the input stream, Token returns nil, io.EOF. -// -// Slices of bytes in the returned token data refer to the -// parser's internal buffer and remain valid only until the next -// call to Token. To acquire a copy of the bytes, call CopyToken -// or the token's Copy method. -// -// Token expands self-closing elements such as
-// into separate start and end elements returned by successive calls. -// -// Token guarantees that the StartElement and EndElement -// tokens it returns are properly nested and matched: -// if Token encounters an unexpected end element, -// it will return an error. -// -// Token implements XML name spaces as described by -// http://www.w3.org/TR/REC-xml-names/. Each of the -// Name structures contained in the Token has the Space -// set to the URL identifying its name space when known. -// If Token encounters an unrecognized name space prefix, -// it uses the prefix as the Space rather than report an error. -func (d *Decoder) Token() (t Token, err error) { - if d.stk != nil && d.stk.kind == stkEOF { - err = io.EOF - return - } - if d.nextToken != nil { - t = d.nextToken - d.nextToken = nil - } else if t, err = d.rawToken(); err != nil { - return - } - - if !d.Strict { - if t1, ok := d.autoClose(t); ok { - d.nextToken = t - t = t1 - } - } - switch t1 := t.(type) { - case StartElement: - // In XML name spaces, the translations listed in the - // attributes apply to the element name and - // to the other attribute names, so process - // the translations first. - for _, a := range t1.Attr { - if a.Name.Space == "xmlns" { - v, ok := d.ns[a.Name.Local] - d.pushNs(a.Name.Local, v, ok) - d.ns[a.Name.Local] = a.Value - } - if a.Name.Space == "" && a.Name.Local == "xmlns" { - // Default space for untagged names - v, ok := d.ns[""] - d.pushNs("", v, ok) - d.ns[""] = a.Value - } - } - - d.translate(&t1.Name, true) - for i := range t1.Attr { - d.translate(&t1.Attr[i].Name, false) - } - d.pushElement(t1.Name) - t = t1 - - case EndElement: - d.translate(&t1.Name, true) - if !d.popElement(&t1) { - return nil, d.err - } - t = t1 - } - return -} - -const xmlURL = "http://www.w3.org/XML/1998/namespace" - -// Apply name space translation to name n. -// The default name space (for Space=="") -// applies only to element names, not to attribute names. -func (d *Decoder) translate(n *Name, isElementName bool) { - switch { - case n.Space == "xmlns": - return - case n.Space == "" && !isElementName: - return - case n.Space == "xml": - n.Space = xmlURL - case n.Space == "" && n.Local == "xmlns": - return - } - if v, ok := d.ns[n.Space]; ok { - n.Space = v - } else if n.Space == "" { - n.Space = d.DefaultSpace - } -} - -func (d *Decoder) switchToReader(r io.Reader) { - // Get efficient byte at a time reader. - // Assume that if reader has its own - // ReadByte, it's efficient enough. - // Otherwise, use bufio. - if rb, ok := r.(io.ByteReader); ok { - d.r = rb - } else { - d.r = bufio.NewReader(r) - } -} - -// Parsing state - stack holds old name space translations -// and the current set of open elements. The translations to pop when -// ending a given tag are *below* it on the stack, which is -// more work but forced on us by XML. -type stack struct { - next *stack - kind int - name Name - ok bool -} - -const ( - stkStart = iota - stkNs - stkEOF -) - -func (d *Decoder) push(kind int) *stack { - s := d.free - if s != nil { - d.free = s.next - } else { - s = new(stack) - } - s.next = d.stk - s.kind = kind - d.stk = s - return s -} - -func (d *Decoder) pop() *stack { - s := d.stk - if s != nil { - d.stk = s.next - s.next = d.free - d.free = s - } - return s -} - -// Record that after the current element is finished -// (that element is already pushed on the stack) -// Token should return EOF until popEOF is called. -func (d *Decoder) pushEOF() { - // Walk down stack to find Start. - // It might not be the top, because there might be stkNs - // entries above it. - start := d.stk - for start.kind != stkStart { - start = start.next - } - // The stkNs entries below a start are associated with that - // element too; skip over them. - for start.next != nil && start.next.kind == stkNs { - start = start.next - } - s := d.free - if s != nil { - d.free = s.next - } else { - s = new(stack) - } - s.kind = stkEOF - s.next = start.next - start.next = s -} - -// Undo a pushEOF. -// The element must have been finished, so the EOF should be at the top of the stack. -func (d *Decoder) popEOF() bool { - if d.stk == nil || d.stk.kind != stkEOF { - return false - } - d.pop() - return true -} - -// Record that we are starting an element with the given name. -func (d *Decoder) pushElement(name Name) { - s := d.push(stkStart) - s.name = name -} - -// Record that we are changing the value of ns[local]. -// The old value is url, ok. -func (d *Decoder) pushNs(local string, url string, ok bool) { - s := d.push(stkNs) - s.name.Local = local - s.name.Space = url - s.ok = ok -} - -// Creates a SyntaxError with the current line number. -func (d *Decoder) syntaxError(msg string) error { - return &SyntaxError{Msg: msg, Line: d.line} -} - -// Record that we are ending an element with the given name. -// The name must match the record at the top of the stack, -// which must be a pushElement record. -// After popping the element, apply any undo records from -// the stack to restore the name translations that existed -// before we saw this element. -func (d *Decoder) popElement(t *EndElement) bool { - s := d.pop() - name := t.Name - switch { - case s == nil || s.kind != stkStart: - d.err = d.syntaxError("unexpected end element ") - return false - case s.name.Local != name.Local: - if !d.Strict { - d.needClose = true - d.toClose = t.Name - t.Name = s.name - return true - } - d.err = d.syntaxError("element <" + s.name.Local + "> closed by ") - return false - case s.name.Space != name.Space: - d.err = d.syntaxError("element <" + s.name.Local + "> in space " + s.name.Space + - "closed by in space " + name.Space) - return false - } - - // Pop stack until a Start or EOF is on the top, undoing the - // translations that were associated with the element we just closed. - for d.stk != nil && d.stk.kind != stkStart && d.stk.kind != stkEOF { - s := d.pop() - if s.ok { - d.ns[s.name.Local] = s.name.Space - } else { - delete(d.ns, s.name.Local) - } - } - - return true -} - -// If the top element on the stack is autoclosing and -// t is not the end tag, invent the end tag. -func (d *Decoder) autoClose(t Token) (Token, bool) { - if d.stk == nil || d.stk.kind != stkStart { - return nil, false - } - name := strings.ToLower(d.stk.name.Local) - for _, s := range d.AutoClose { - if strings.ToLower(s) == name { - // This one should be auto closed if t doesn't close it. - et, ok := t.(EndElement) - if !ok || et.Name.Local != name { - return EndElement{d.stk.name}, true - } - break - } - } - return nil, false -} - -var errRawToken = errors.New("xml: cannot use RawToken from UnmarshalXML method") - -// RawToken is like Token but does not verify that -// start and end elements match and does not translate -// name space prefixes to their corresponding URLs. -func (d *Decoder) RawToken() (Token, error) { - if d.unmarshalDepth > 0 { - return nil, errRawToken - } - return d.rawToken() -} - -func (d *Decoder) rawToken() (Token, error) { - if d.err != nil { - return nil, d.err - } - if d.needClose { - // The last element we read was self-closing and - // we returned just the StartElement half. - // Return the EndElement half now. - d.needClose = false - return EndElement{d.toClose}, nil - } - - b, ok := d.getc() - if !ok { - return nil, d.err - } - - if b != '<' { - // Text section. - d.ungetc(b) - data := d.text(-1, false) - if data == nil { - return nil, d.err - } - return CharData(data), nil - } - - if b, ok = d.mustgetc(); !ok { - return nil, d.err - } - switch b { - case '/': - // ' { - d.err = d.syntaxError("invalid characters between ") - return nil, d.err - } - return EndElement{name}, nil - - case '?': - // ' { - break - } - b0 = b - } - data := d.buf.Bytes() - data = data[0 : len(data)-2] // chop ?> - - if target == "xml" { - enc := procInstEncoding(string(data)) - if enc != "" && enc != "utf-8" && enc != "UTF-8" { - if d.CharsetReader == nil { - d.err = fmt.Errorf("xml: encoding %q declared but Decoder.CharsetReader is nil", enc) - return nil, d.err - } - newr, err := d.CharsetReader(enc, d.r.(io.Reader)) - if err != nil { - d.err = fmt.Errorf("xml: opening charset %q: %v", enc, err) - return nil, d.err - } - if newr == nil { - panic("CharsetReader returned a nil Reader for charset " + enc) - } - d.switchToReader(newr) - } - } - return ProcInst{target, data}, nil - - case '!': - // ' { - break - } - b0, b1 = b1, b - } - data := d.buf.Bytes() - data = data[0 : len(data)-3] // chop --> - return Comment(data), nil - - case '[': // . - data := d.text(-1, true) - if data == nil { - return nil, d.err - } - return CharData(data), nil - } - - // Probably a directive: , , etc. - // We don't care, but accumulate for caller. Quoted angle - // brackets do not count for nesting. - d.buf.Reset() - d.buf.WriteByte(b) - inquote := uint8(0) - depth := 0 - for { - if b, ok = d.mustgetc(); !ok { - return nil, d.err - } - if inquote == 0 && b == '>' && depth == 0 { - break - } - HandleB: - d.buf.WriteByte(b) - switch { - case b == inquote: - inquote = 0 - - case inquote != 0: - // in quotes, no special action - - case b == '\'' || b == '"': - inquote = b - - case b == '>' && inquote == 0: - depth-- - - case b == '<' && inquote == 0: - // Look for | - // |<- controlMessageLen ---------->| | - // |<- controlHeaderLen ->| | | - // +---------------+------+---------+------+ - // | Header | PadH | Data | PadD | - // +---------------+------+---------+------+ - // - // On compatible message reception: - // - // | ... |<- controlMessageLen ----------->| - // | ... |<- controlHeaderLen ->| | - // +-----+---------------+------+----------+ - // | ... | Header | PadH | Data | - // +-----+---------------+------+----------+ - ms = append(ms, ControlMessage(m[:l])) - ll := l - controlHeaderLen() - if len(m) >= ControlMessageSpace(ll) { - m = m[ControlMessageSpace(ll):] - } else { - m = m[controlMessageLen(ll):] - } - } - return ms, nil -} - -// NewControlMessage returns a new stream of control messages. -func NewControlMessage(dataLen []int) ControlMessage { - var l int - for i := range dataLen { - l += ControlMessageSpace(dataLen[i]) - } - return make([]byte, l) -} - -// A Message represents an IO message. -type Message struct { - // When writing, the Buffers field must contain at least one - // byte to write. - // When reading, the Buffers field will always contain a byte - // to read. - Buffers [][]byte - - // OOB contains protocol-specific control or miscellaneous - // ancillary data known as out-of-band data. - OOB []byte - - // Addr specifies a destination address when writing. - // It can be nil when the underlying protocol of the raw - // connection uses connection-oriented communication. - // After a successful read, it may contain the source address - // on the received packet. - Addr net.Addr - - N int // # of bytes read or written from/to Buffers - NN int // # of bytes read or written from/to OOB - Flags int // protocol-specific information on the received message -} - -// RecvMsg wraps recvmsg system call. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_PEEK. -func (c *Conn) RecvMsg(m *Message, flags int) error { - return c.recvMsg(m, flags) -} - -// SendMsg wraps sendmsg system call. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_DONTROUTE. -func (c *Conn) SendMsg(m *Message, flags int) error { - return c.sendMsg(m, flags) -} - -// RecvMsgs wraps recvmmsg system call. -// -// It returns the number of processed messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_PEEK. -// -// Only Linux supports this. -func (c *Conn) RecvMsgs(ms []Message, flags int) (int, error) { - return c.recvMsgs(ms, flags) -} - -// SendMsgs wraps sendmmsg system call. -// -// It returns the number of processed messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_DONTROUTE. -// -// Only Linux supports this. -func (c *Conn) SendMsgs(ms []Message, flags int) (int, error) { - return c.sendMsgs(ms, flags) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys.go deleted file mode 100644 index 4f0eead1..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys.go +++ /dev/null @@ -1,33 +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 socket - -import ( - "encoding/binary" - "unsafe" -) - -var ( - // NativeEndian is the machine native endian implementation of - // ByteOrder. - NativeEndian binary.ByteOrder - - kernelAlign int -) - -func init() { - i := uint32(1) - b := (*[4]byte)(unsafe.Pointer(&i)) - if b[0] == 1 { - NativeEndian = binary.LittleEndian - } else { - NativeEndian = binary.BigEndian - } - kernelAlign = probeProtocolStack() -} - -func roundup(l int) int { - return (l + kernelAlign - 1) & ^(kernelAlign - 1) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_bsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_bsd.go deleted file mode 100644 index f13e14ff..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_bsd.go +++ /dev/null @@ -1,17 +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. - -// +build darwin dragonfly freebsd openbsd - -package socket - -import "errors" - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go deleted file mode 100644 index f723fa36..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go +++ /dev/null @@ -1,14 +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. - -// +build freebsd netbsd openbsd - -package socket - -import "unsafe" - -func probeProtocolStack() int { - var p uintptr - return int(unsafe.Sizeof(p)) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_darwin.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_darwin.go deleted file mode 100644 index b17d223b..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_darwin.go +++ /dev/null @@ -1,7 +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 socket - -func probeProtocolStack() int { return 4 } diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go deleted file mode 100644 index b17d223b..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_dragonfly.go +++ /dev/null @@ -1,7 +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 socket - -func probeProtocolStack() int { return 4 } diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux.go deleted file mode 100644 index 1559521e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux.go +++ /dev/null @@ -1,27 +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. - -// +build linux,!s390x,!386 - -package socket - -import ( - "syscall" - "unsafe" -) - -func probeProtocolStack() int { - var p uintptr - return int(unsafe.Sizeof(p)) -} - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, _, errno := syscall.Syscall6(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, _, errno := syscall.Syscall6(sysSENDMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_386.go deleted file mode 100644 index 235b2cc0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_386.go +++ /dev/null @@ -1,55 +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 socket - -import ( - "syscall" - "unsafe" -) - -func probeProtocolStack() int { return 4 } - -const ( - sysSETSOCKOPT = 0xe - sysGETSOCKOPT = 0xf - sysSENDMSG = 0x10 - sysRECVMSG = 0x11 - sysRECVMMSG = 0x13 - sysSENDMMSG = 0x14 -) - -func socketcall(call, a0, a1, a2, a3, a4, a5 uintptr) (uintptr, syscall.Errno) -func rawsocketcall(call, a0, a1, a2, a3, a4, a5 uintptr) (uintptr, syscall.Errno) - -func getsockopt(s uintptr, level, name int, b []byte) (int, error) { - l := uint32(len(b)) - _, errno := socketcall(sysGETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0) - return int(l), errnoErr(errno) -} - -func setsockopt(s uintptr, level, name int, b []byte) error { - _, errno := socketcall(sysSETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0) - return errnoErr(errno) -} - -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, errno := socketcall(sysRECVMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags), 0, 0, 0) - return int(n), errnoErr(errno) -} - -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, errno := socketcall(sysSENDMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags), 0, 0, 0) - return int(n), errnoErr(errno) -} - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, errno := socketcall(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, errno := socketcall(sysSENDMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_386.s b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_386.s deleted file mode 100644 index 93e7d75e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_386.s +++ /dev/null @@ -1,11 +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. - -#include "textflag.h" - -TEXT ·socketcall(SB),NOSPLIT,$0-36 - JMP syscall·socketcall(SB) - -TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 - JMP syscall·rawsocketcall(SB) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_amd64.go deleted file mode 100644 index 9decee2e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_amd64.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x12b - sysSENDMMSG = 0x133 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_arm.go deleted file mode 100644 index d753b436..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_arm.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x16d - sysSENDMMSG = 0x176 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_arm64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_arm64.go deleted file mode 100644 index b6708943..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_arm64.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0xf3 - sysSENDMMSG = 0x10d -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips.go deleted file mode 100644 index 9c0d7401..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x10ef - sysSENDMMSG = 0x10f7 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips64.go deleted file mode 100644 index 071a4aba..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips64.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x14ae - sysSENDMMSG = 0x14b6 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips64le.go deleted file mode 100644 index 071a4aba..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mips64le.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x14ae - sysSENDMMSG = 0x14b6 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mipsle.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mipsle.go deleted file mode 100644 index 9c0d7401..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_mipsle.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x10ef - sysSENDMMSG = 0x10f7 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64.go deleted file mode 100644 index 21c1e3f0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x157 - sysSENDMMSG = 0x15d -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64le.go deleted file mode 100644 index 21c1e3f0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_ppc64le.go +++ /dev/null @@ -1,10 +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 socket - -const ( - sysRECVMMSG = 0x157 - sysSENDMMSG = 0x15d -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go deleted file mode 100644 index 327979ef..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.go +++ /dev/null @@ -1,55 +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 socket - -import ( - "syscall" - "unsafe" -) - -func probeProtocolStack() int { return 8 } - -const ( - sysSETSOCKOPT = 0xe - sysGETSOCKOPT = 0xf - sysSENDMSG = 0x10 - sysRECVMSG = 0x11 - sysRECVMMSG = 0x13 - sysSENDMMSG = 0x14 -) - -func socketcall(call, a0, a1, a2, a3, a4, a5 uintptr) (uintptr, syscall.Errno) -func rawsocketcall(call, a0, a1, a2, a3, a4, a5 uintptr) (uintptr, syscall.Errno) - -func getsockopt(s uintptr, level, name int, b []byte) (int, error) { - l := uint32(len(b)) - _, errno := socketcall(sysGETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0) - return int(l), errnoErr(errno) -} - -func setsockopt(s uintptr, level, name int, b []byte) error { - _, errno := socketcall(sysSETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0) - return errnoErr(errno) -} - -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, errno := socketcall(sysRECVMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags), 0, 0, 0) - return int(n), errnoErr(errno) -} - -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, errno := socketcall(sysSENDMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags), 0, 0, 0) - return int(n), errnoErr(errno) -} - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, errno := socketcall(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, errno := socketcall(sysSENDMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.s b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.s deleted file mode 100644 index 06d75628..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_linux_s390x.s +++ /dev/null @@ -1,11 +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. - -#include "textflag.h" - -TEXT ·socketcall(SB),NOSPLIT,$0-72 - JMP syscall·socketcall(SB) - -TEXT ·rawsocketcall(SB),NOSPLIT,$0-72 - JMP syscall·rawsocketcall(SB) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_netbsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_netbsd.go deleted file mode 100644 index 431851c1..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_netbsd.go +++ /dev/null @@ -1,25 +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 socket - -import ( - "syscall" - "unsafe" -) - -const ( - sysRECVMMSG = 0x1db - sysSENDMMSG = 0x1dc -) - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, _, errno := syscall.Syscall6(sysRECVMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - n, _, errno := syscall.Syscall6(sysSENDMMSG, s, uintptr(unsafe.Pointer(&hs[0])), uintptr(len(hs)), uintptr(flags), 0, 0) - return int(n), errnoErr(errno) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_posix.go deleted file mode 100644 index dc130c27..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_posix.go +++ /dev/null @@ -1,168 +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. - -// +build go1.9 -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows - -package socket - -import ( - "encoding/binary" - "errors" - "net" - "runtime" - "strconv" - "sync" - "time" -) - -func marshalInetAddr(a net.Addr) []byte { - switch a := a.(type) { - case *net.TCPAddr: - return marshalSockaddr(a.IP, a.Port, a.Zone) - case *net.UDPAddr: - return marshalSockaddr(a.IP, a.Port, a.Zone) - case *net.IPAddr: - return marshalSockaddr(a.IP, 0, a.Zone) - default: - return nil - } -} - -func marshalSockaddr(ip net.IP, port int, zone string) []byte { - if ip4 := ip.To4(); ip4 != nil { - b := make([]byte, sizeofSockaddrInet) - switch runtime.GOOS { - case "android", "linux", "solaris", "windows": - NativeEndian.PutUint16(b[:2], uint16(sysAF_INET)) - default: - b[0] = sizeofSockaddrInet - b[1] = sysAF_INET - } - binary.BigEndian.PutUint16(b[2:4], uint16(port)) - copy(b[4:8], ip4) - return b - } - if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil { - b := make([]byte, sizeofSockaddrInet6) - switch runtime.GOOS { - case "android", "linux", "solaris", "windows": - NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6)) - default: - b[0] = sizeofSockaddrInet6 - b[1] = sysAF_INET6 - } - binary.BigEndian.PutUint16(b[2:4], uint16(port)) - copy(b[8:24], ip6) - if zone != "" { - NativeEndian.PutUint32(b[24:28], uint32(zoneCache.index(zone))) - } - return b - } - return nil -} - -func parseInetAddr(b []byte, network string) (net.Addr, error) { - if len(b) < 2 { - return nil, errors.New("invalid address") - } - var af int - switch runtime.GOOS { - case "android", "linux", "solaris", "windows": - af = int(NativeEndian.Uint16(b[:2])) - default: - af = int(b[1]) - } - var ip net.IP - var zone string - if af == sysAF_INET { - if len(b) < sizeofSockaddrInet { - return nil, errors.New("short address") - } - ip = make(net.IP, net.IPv4len) - copy(ip, b[4:8]) - } - if af == sysAF_INET6 { - if len(b) < sizeofSockaddrInet6 { - return nil, errors.New("short address") - } - ip = make(net.IP, net.IPv6len) - copy(ip, b[8:24]) - if id := int(NativeEndian.Uint32(b[24:28])); id > 0 { - zone = zoneCache.name(id) - } - } - switch network { - case "tcp", "tcp4", "tcp6": - return &net.TCPAddr{IP: ip, Port: int(binary.BigEndian.Uint16(b[2:4])), Zone: zone}, nil - case "udp", "udp4", "udp6": - return &net.UDPAddr{IP: ip, Port: int(binary.BigEndian.Uint16(b[2:4])), Zone: zone}, nil - default: - return &net.IPAddr{IP: ip, Zone: zone}, nil - } -} - -// An ipv6ZoneCache represents a cache holding partial network -// interface information. It is used for reducing the cost of IPv6 -// addressing scope zone resolution. -// -// Multiple names sharing the index are managed by first-come -// first-served basis for consistency. -type ipv6ZoneCache struct { - sync.RWMutex // guard the following - lastFetched time.Time // last time routing information was fetched - toIndex map[string]int // interface name to its index - toName map[int]string // interface index to its name -} - -var zoneCache = ipv6ZoneCache{ - toIndex: make(map[string]int), - toName: make(map[int]string), -} - -func (zc *ipv6ZoneCache) update(ift []net.Interface) { - zc.Lock() - defer zc.Unlock() - now := time.Now() - if zc.lastFetched.After(now.Add(-60 * time.Second)) { - return - } - zc.lastFetched = now - if len(ift) == 0 { - var err error - if ift, err = net.Interfaces(); err != nil { - return - } - } - zc.toIndex = make(map[string]int, len(ift)) - zc.toName = make(map[int]string, len(ift)) - for _, ifi := range ift { - zc.toIndex[ifi.Name] = ifi.Index - if _, ok := zc.toName[ifi.Index]; !ok { - zc.toName[ifi.Index] = ifi.Name - } - } -} - -func (zc *ipv6ZoneCache) name(zone int) string { - zoneCache.update(nil) - zoneCache.RLock() - defer zoneCache.RUnlock() - name, ok := zoneCache.toName[zone] - if !ok { - name = strconv.Itoa(zone) - } - return name -} - -func (zc *ipv6ZoneCache) index(zone string) int { - zoneCache.update(nil) - zoneCache.RLock() - defer zoneCache.RUnlock() - index, ok := zoneCache.toIndex[zone] - if !ok { - index, _ = strconv.Atoi(zone) - } - return index -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_solaris.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_solaris.go deleted file mode 100644 index cced74e6..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_solaris.go +++ /dev/null @@ -1,71 +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 socket - -import ( - "errors" - "runtime" - "syscall" - "unsafe" -) - -func probeProtocolStack() int { - switch runtime.GOARCH { - case "amd64": - return 4 - default: - var p uintptr - return int(unsafe.Sizeof(p)) - } -} - -//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" -//go:cgo_import_dynamic libc_setsockopt setsockopt "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:linkname procGetsockopt libc___xnet_getsockopt -//go:linkname procSetsockopt libc_setsockopt -//go:linkname procRecvmsg libc___xnet_recvmsg -//go:linkname procSendmsg libc___xnet_sendmsg - -var ( - procGetsockopt uintptr - procSetsockopt uintptr - procRecvmsg uintptr - procSendmsg uintptr -) - -func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (uintptr, uintptr, syscall.Errno) -func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (uintptr, uintptr, syscall.Errno) - -func getsockopt(s uintptr, level, name int, b []byte) (int, error) { - l := uint32(len(b)) - _, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procGetsockopt)), 5, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0) - return int(l), errnoErr(errno) -} - -func setsockopt(s uintptr, level, name int, b []byte) error { - _, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procSetsockopt)), 5, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0) - return errnoErr(errno) -} - -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procRecvmsg)), 3, s, uintptr(unsafe.Pointer(h)), uintptr(flags), 0, 0, 0) - return int(n), errnoErr(errno) -} - -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procSendmsg)), 3, s, uintptr(unsafe.Pointer(h)), uintptr(flags), 0, 0, 0) - return int(n), errnoErr(errno) -} - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_solaris_amd64.s b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_solaris_amd64.s deleted file mode 100644 index a18ac5ed..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_solaris_amd64.s +++ /dev/null @@ -1,11 +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. - -#include "textflag.h" - -TEXT ·sysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·sysvicall6(SB) - -TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 - JMP syscall·rawSysvicall6(SB) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_stub.go deleted file mode 100644 index d9f06d00..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_stub.go +++ /dev/null @@ -1,64 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package socket - -import ( - "errors" - "net" - "runtime" - "unsafe" -) - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -func probeProtocolStack() int { - switch runtime.GOARCH { - case "amd64p32", "mips64p32": - return 4 - default: - var p uintptr - return int(unsafe.Sizeof(p)) - } -} - -func marshalInetAddr(ip net.IP, port int, zone string) []byte { - return nil -} - -func parseInetAddr(b []byte, network string) (net.Addr, error) { - return nil, errors.New("not implemented") -} - -func getsockopt(s uintptr, level, name int, b []byte) (int, error) { - return 0, errors.New("not implemented") -} - -func setsockopt(s uintptr, level, name int, b []byte) error { - return errors.New("not implemented") -} - -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_unix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_unix.go deleted file mode 100644 index 18eba308..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_unix.go +++ /dev/null @@ -1,33 +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. - -// +build darwin dragonfly freebsd linux,!s390x,!386 netbsd openbsd - -package socket - -import ( - "syscall" - "unsafe" -) - -func getsockopt(s uintptr, level, name int, b []byte) (int, error) { - l := uint32(len(b)) - _, _, errno := syscall.Syscall6(syscall.SYS_GETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(unsafe.Pointer(&l)), 0) - return int(l), errnoErr(errno) -} - -func setsockopt(s uintptr, level, name int, b []byte) error { - _, _, errno := syscall.Syscall6(syscall.SYS_SETSOCKOPT, s, uintptr(level), uintptr(name), uintptr(unsafe.Pointer(&b[0])), uintptr(len(b)), 0) - return errnoErr(errno) -} - -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, _, errno := syscall.Syscall(syscall.SYS_RECVMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags)) - return int(n), errnoErr(errno) -} - -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, _, errno := syscall.Syscall(syscall.SYS_SENDMSG, s, uintptr(unsafe.Pointer(h)), uintptr(flags)) - return int(n), errnoErr(errno) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_windows.go deleted file mode 100644 index 54a470eb..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/sys_windows.go +++ /dev/null @@ -1,70 +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 socket - -import ( - "errors" - "syscall" - "unsafe" -) - -func probeProtocolStack() int { - var p uintptr - return int(unsafe.Sizeof(p)) -} - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x17 - - sysSOCK_RAW = 0x3 -) - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) - -func getsockopt(s uintptr, level, name int, b []byte) (int, error) { - l := uint32(len(b)) - err := syscall.Getsockopt(syscall.Handle(s), int32(level), int32(name), (*byte)(unsafe.Pointer(&b[0])), (*int32)(unsafe.Pointer(&l))) - return int(l), err -} - -func setsockopt(s uintptr, level, name int, b []byte) error { - return syscall.Setsockopt(syscall.Handle(s), int32(level), int32(name), (*byte)(unsafe.Pointer(&b[0])), int32(len(b))) -} - -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func recvmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} - -func sendmmsg(s uintptr, hs []mmsghdr, flags int) (int, error) { - return 0, errors.New("not implemented") -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go deleted file mode 100644 index 26f8feff..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go +++ /dev/null @@ -1,59 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len 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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go deleted file mode 100644 index e2987f7d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_amd64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go deleted file mode 100644 index 26f8feff..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go +++ /dev/null @@ -1,59 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len 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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go deleted file mode 100644 index e2987f7d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1e - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go deleted file mode 100644 index c582abd5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_dragonfly_amd64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_dragonfly.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go deleted file mode 100644 index 04a24886..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_386.go +++ /dev/null @@ -1,59 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len 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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go deleted file mode 100644 index 35c7cb9c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_amd64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go deleted file mode 100644 index 04a24886..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_freebsd_arm.go +++ /dev/null @@ -1,59 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1c - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len 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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go deleted file mode 100644 index 43020693..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_386.go +++ /dev/null @@ -1,63 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -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 mmsghdr struct { - Hdr msghdr - Len uint32 -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go deleted file mode 100644 index 1502f6c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_amd64.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0x10 - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go deleted file mode 100644 index 43020693..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_arm.go +++ /dev/null @@ -1,63 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -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 mmsghdr struct { - Hdr msghdr - Len uint32 -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go deleted file mode 100644 index 1502f6c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_arm64.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0x10 - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go deleted file mode 100644 index 43020693..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips.go +++ /dev/null @@ -1,63 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -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 mmsghdr struct { - Hdr msghdr - Len uint32 -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go deleted file mode 100644 index 1502f6c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0x10 - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go deleted file mode 100644 index 1502f6c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mips64le.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0x10 - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go deleted file mode 100644 index 43020693..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_mipsle.go +++ /dev/null @@ -1,63 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -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 mmsghdr struct { - Hdr msghdr - Len uint32 -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go deleted file mode 100644 index 1502f6c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0x10 - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go deleted file mode 100644 index 1502f6c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_ppc64le.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0x10 - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go deleted file mode 100644 index 1502f6c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_linux_s390x.go +++ /dev/null @@ -1,66 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0xa - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x38 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0x10 - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go deleted file mode 100644 index db60491f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_386.go +++ /dev/null @@ -1,65 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_netbsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint32 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Iov *iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type mmsghdr struct { - Hdr msghdr - Len uint32 -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofMmsghdr = 0x20 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go deleted file mode 100644 index 2a1a7998..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_amd64.go +++ /dev/null @@ -1,68 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_netbsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -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 mmsghdr struct { - Hdr msghdr - Len uint32 - Pad_cgo_0 [4]byte -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofMmsghdr = 0x40 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go deleted file mode 100644 index 206ea2d1..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_netbsd_arm.go +++ /dev/null @@ -1,59 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_netbsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len 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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go deleted file mode 100644 index 1c836361..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_386.go +++ /dev/null @@ -1,59 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_openbsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - -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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go deleted file mode 100644 index a6c0bf46..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_amd64.go +++ /dev/null @@ -1,61 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_openbsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - -type iovec struct { - Base *byte - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen uint32 - Pad_cgo_1 [4]byte - Control *byte - Controllen uint32 - Flags int32 -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go deleted file mode 100644 index 1c836361..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_openbsd_arm.go +++ /dev/null @@ -1,59 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_openbsd.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x18 - - sysSOCK_RAW = 0x3 -) - -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 sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x1c -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go deleted file mode 100644 index 327c6329..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/internal/socket/zsys_solaris_amd64.go +++ /dev/null @@ -1,60 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_solaris.go - -package socket - -const ( - sysAF_UNSPEC = 0x0 - sysAF_INET = 0x2 - sysAF_INET6 = 0x1a - - sysSOCK_RAW = 0x4 -) - -type iovec struct { - Base *int8 - Len uint64 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Pad_cgo_0 [4]byte - Iov *iovec - Iovlen int32 - Pad_cgo_1 [4]byte - Accrights *int8 - Accrightslen int32 - Pad_cgo_2 [4]byte -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - X__sin6_src_id uint32 -} - -const ( - sizeofIovec = 0x10 - sizeofMsghdr = 0x30 - sizeofCmsghdr = 0xc - - sizeofSockaddrInet = 0x10 - sizeofSockaddrInet6 = 0x20 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/batch.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/batch.go deleted file mode 100644 index b4454992..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/batch.go +++ /dev/null @@ -1,191 +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. - -// +build go1.9 - -package ipv4 - -import ( - "net" - "runtime" - "syscall" - - "golang.org/x/net/internal/socket" -) - -// BUG(mikio): On Windows, the ReadBatch and WriteBatch methods of -// PacketConn are not implemented. - -// BUG(mikio): On Windows, the ReadBatch and WriteBatch methods of -// RawConn are not implemented. - -// A Message represents an IO message. -// -// type Message struct { -// Buffers [][]byte -// OOB []byte -// Addr net.Addr -// N int -// NN int -// Flags int -// } -// -// The Buffers fields represents a list of contiguous buffers, which -// can be used for vectored IO, for example, putting a header and a -// payload in each slice. -// When writing, the Buffers field must contain at least one byte to -// write. -// When reading, the Buffers field will always contain a byte to read. -// -// The OOB field contains protocol-specific control or miscellaneous -// ancillary data known as out-of-band data. -// It can be nil when not required. -// -// The Addr field specifies a destination address when writing. -// It can be nil when the underlying protocol of the endpoint uses -// connection-oriented communication. -// After a successful read, it may contain the source address on the -// received packet. -// -// The N field indicates the number of bytes read or written from/to -// Buffers. -// -// The NN field indicates the number of bytes read or written from/to -// OOB. -// -// The Flags field contains protocol-specific information on the -// received message. -type Message = socket.Message - -// ReadBatch reads a batch of messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_PEEK. -// -// On a successful read it returns the number of messages received, up -// to len(ms). -// -// On Linux, a batch read will be optimized. -// On other platforms, this method will read only a single message. -// -// Unlike the ReadFrom method, it doesn't strip the IPv4 header -// followed by option headers from the received IPv4 datagram when the -// underlying transport is net.IPConn. Each Buffers field of Message -// must be large enough to accommodate an IPv4 header and option -// headers. -func (c *payloadHandler) ReadBatch(ms []Message, flags int) (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - switch runtime.GOOS { - case "linux": - n, err := c.RecvMsgs([]socket.Message(ms), flags) - if err != nil { - err = &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - default: - n := 1 - err := c.RecvMsg(&ms[0], flags) - if err != nil { - n = 0 - err = &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - } -} - -// WriteBatch writes a batch of messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_DONTROUTE. -// -// It returns the number of messages written on a successful write. -// -// On Linux, a batch write will be optimized. -// On other platforms, this method will write only a single message. -func (c *payloadHandler) WriteBatch(ms []Message, flags int) (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - switch runtime.GOOS { - case "linux": - n, err := c.SendMsgs([]socket.Message(ms), flags) - if err != nil { - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - default: - n := 1 - err := c.SendMsg(&ms[0], flags) - if err != nil { - n = 0 - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - } -} - -// ReadBatch reads a batch of messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_PEEK. -// -// On a successful read it returns the number of messages received, up -// to len(ms). -// -// On Linux, a batch read will be optimized. -// On other platforms, this method will read only a single message. -func (c *packetHandler) ReadBatch(ms []Message, flags int) (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - switch runtime.GOOS { - case "linux": - n, err := c.RecvMsgs([]socket.Message(ms), flags) - if err != nil { - err = &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - return n, err - default: - n := 1 - err := c.RecvMsg(&ms[0], flags) - if err != nil { - n = 0 - err = &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - return n, err - } -} - -// WriteBatch writes a batch of messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_DONTROUTE. -// -// It returns the number of messages written on a successful write. -// -// On Linux, a batch write will be optimized. -// On other platforms, this method will write only a single message. -func (c *packetHandler) WriteBatch(ms []Message, flags int) (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - switch runtime.GOOS { - case "linux": - n, err := c.SendMsgs([]socket.Message(ms), flags) - if err != nil { - err = &net.OpError{Op: "write", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - return n, err - default: - n := 1 - err := c.SendMsg(&ms[0], flags) - if err != nil { - n = 0 - err = &net.OpError{Op: "write", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - return n, err - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control.go deleted file mode 100644 index a2b02ca9..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control.go +++ /dev/null @@ -1,144 +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 ipv4 - -import ( - "fmt" - "net" - "sync" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -type rawOpt struct { - sync.RWMutex - cflags ControlFlags -} - -func (c *rawOpt) set(f ControlFlags) { c.cflags |= f } -func (c *rawOpt) clear(f ControlFlags) { c.cflags &^= f } -func (c *rawOpt) isset(f ControlFlags) bool { return c.cflags&f != 0 } - -type ControlFlags uint - -const ( - FlagTTL ControlFlags = 1 << iota // pass the TTL on the received packet - FlagSrc // pass the source address on the received packet - FlagDst // pass the destination address on the received packet - FlagInterface // pass the interface index on the received packet -) - -// A ControlMessage represents per packet basis IP-level socket options. -type ControlMessage struct { - // Receiving socket options: SetControlMessage allows to - // receive the options from the protocol stack using ReadFrom - // method of PacketConn or RawConn. - // - // Specifying socket options: ControlMessage for WriteTo - // method of PacketConn or RawConn allows to send the options - // to the protocol stack. - // - TTL int // time-to-live, receiving only - Src net.IP // source address, specifying only - Dst net.IP // destination address, receiving only - IfIndex int // interface index, must be 1 <= value when specifying -} - -func (cm *ControlMessage) String() string { - if cm == nil { - return "" - } - return fmt.Sprintf("ttl=%d src=%v dst=%v ifindex=%d", cm.TTL, cm.Src, cm.Dst, cm.IfIndex) -} - -// Marshal returns the binary encoding of cm. -func (cm *ControlMessage) Marshal() []byte { - if cm == nil { - return nil - } - var m socket.ControlMessage - if ctlOpts[ctlPacketInfo].name > 0 && (cm.Src.To4() != nil || cm.IfIndex > 0) { - m = socket.NewControlMessage([]int{ctlOpts[ctlPacketInfo].length}) - } - if len(m) > 0 { - ctlOpts[ctlPacketInfo].marshal(m, cm) - } - return m -} - -// Parse parses b as a control message and stores the result in cm. -func (cm *ControlMessage) Parse(b []byte) error { - ms, err := socket.ControlMessage(b).Parse() - if err != nil { - return err - } - for _, m := range ms { - lvl, typ, l, err := m.ParseHeader() - if err != nil { - return err - } - if lvl != iana.ProtocolIP { - continue - } - switch { - case typ == ctlOpts[ctlTTL].name && l >= ctlOpts[ctlTTL].length: - ctlOpts[ctlTTL].parse(cm, m.Data(l)) - case typ == ctlOpts[ctlDst].name && l >= ctlOpts[ctlDst].length: - ctlOpts[ctlDst].parse(cm, m.Data(l)) - case typ == ctlOpts[ctlInterface].name && l >= ctlOpts[ctlInterface].length: - ctlOpts[ctlInterface].parse(cm, m.Data(l)) - case typ == ctlOpts[ctlPacketInfo].name && l >= ctlOpts[ctlPacketInfo].length: - ctlOpts[ctlPacketInfo].parse(cm, m.Data(l)) - } - } - return nil -} - -// NewControlMessage returns a new control message. -// -// The returned message is large enough for options specified by cf. -func NewControlMessage(cf ControlFlags) []byte { - opt := rawOpt{cflags: cf} - var l int - if opt.isset(FlagTTL) && ctlOpts[ctlTTL].name > 0 { - l += socket.ControlMessageSpace(ctlOpts[ctlTTL].length) - } - if ctlOpts[ctlPacketInfo].name > 0 { - if opt.isset(FlagSrc | FlagDst | FlagInterface) { - l += socket.ControlMessageSpace(ctlOpts[ctlPacketInfo].length) - } - } else { - if opt.isset(FlagDst) && ctlOpts[ctlDst].name > 0 { - l += socket.ControlMessageSpace(ctlOpts[ctlDst].length) - } - if opt.isset(FlagInterface) && ctlOpts[ctlInterface].name > 0 { - l += socket.ControlMessageSpace(ctlOpts[ctlInterface].length) - } - } - var b []byte - if l > 0 { - b = make([]byte, l) - } - return b -} - -// Ancillary data socket options -const ( - ctlTTL = iota // header field - ctlSrc // header field - ctlDst // header field - ctlInterface // inbound or outbound interface - ctlPacketInfo // inbound or outbound packet path - ctlMax -) - -// A ctlOpt represents a binding for ancillary data socket option. -type ctlOpt struct { - name int // option name, must be equal or greater than 1 - length int // option length - marshal func([]byte, *ControlMessage) []byte - parse func(*ControlMessage, []byte) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_bsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_bsd.go deleted file mode 100644 index 77e7ad5b..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_bsd.go +++ /dev/null @@ -1,40 +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. - -// +build darwin dragonfly freebsd netbsd openbsd - -package ipv4 - -import ( - "net" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -func marshalDst(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIP, sysIP_RECVDSTADDR, net.IPv4len) - return m.Next(net.IPv4len) -} - -func parseDst(cm *ControlMessage, b []byte) { - if len(cm.Dst) < net.IPv4len { - cm.Dst = make(net.IP, net.IPv4len) - } - copy(cm.Dst, b[:net.IPv4len]) -} - -func marshalInterface(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIP, sysIP_RECVIF, syscall.SizeofSockaddrDatalink) - return m.Next(syscall.SizeofSockaddrDatalink) -} - -func parseInterface(cm *ControlMessage, b []byte) { - sadl := (*syscall.SockaddrDatalink)(unsafe.Pointer(&b[0])) - cm.IfIndex = int(sadl.Index) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_pktinfo.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_pktinfo.go deleted file mode 100644 index 425338f3..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_pktinfo.go +++ /dev/null @@ -1,39 +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. - -// +build darwin linux solaris - -package ipv4 - -import ( - "net" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -func marshalPacketInfo(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIP, sysIP_PKTINFO, sizeofInetPktinfo) - if cm != nil { - pi := (*inetPktinfo)(unsafe.Pointer(&m.Data(sizeofInetPktinfo)[0])) - if ip := cm.Src.To4(); ip != nil { - copy(pi.Spec_dst[:], ip) - } - if cm.IfIndex > 0 { - pi.setIfindex(cm.IfIndex) - } - } - return m.Next(sizeofInetPktinfo) -} - -func parsePacketInfo(cm *ControlMessage, b []byte) { - pi := (*inetPktinfo)(unsafe.Pointer(&b[0])) - cm.IfIndex = int(pi.Ifindex) - if len(cm.Dst) < net.IPv4len { - cm.Dst = make(net.IP, net.IPv4len) - } - copy(cm.Dst, pi.Addr[:]) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_stub.go deleted file mode 100644 index 5a2f7d8d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_stub.go +++ /dev/null @@ -1,13 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv4 - -import "golang.org/x/net/internal/socket" - -func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_unix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_unix.go deleted file mode 100644 index e1ae8167..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_unix.go +++ /dev/null @@ -1,73 +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. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package ipv4 - -import ( - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - opt.Lock() - defer opt.Unlock() - if so, ok := sockOpts[ssoReceiveTTL]; ok && cf&FlagTTL != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagTTL) - } else { - opt.clear(FlagTTL) - } - } - if so, ok := sockOpts[ssoPacketInfo]; ok { - if cf&(FlagSrc|FlagDst|FlagInterface) != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(cf & (FlagSrc | FlagDst | FlagInterface)) - } else { - opt.clear(cf & (FlagSrc | FlagDst | FlagInterface)) - } - } - } else { - if so, ok := sockOpts[ssoReceiveDst]; ok && cf&FlagDst != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagDst) - } else { - opt.clear(FlagDst) - } - } - if so, ok := sockOpts[ssoReceiveInterface]; ok && cf&FlagInterface != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagInterface) - } else { - opt.clear(FlagInterface) - } - } - } - return nil -} - -func marshalTTL(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIP, sysIP_RECVTTL, 1) - return m.Next(1) -} - -func parseTTL(cm *ControlMessage, b []byte) { - cm.TTL = int(*(*byte)(unsafe.Pointer(&b[:1][0]))) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_windows.go deleted file mode 100644 index ce55c664..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/control_windows.go +++ /dev/null @@ -1,16 +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 ipv4 - -import ( - "syscall" - - "golang.org/x/net/internal/socket" -) - -func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - // TODO(mikio): implement this - return syscall.EWINDOWS -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/dgramopt.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/dgramopt.go deleted file mode 100644 index 54d77d5f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/dgramopt.go +++ /dev/null @@ -1,265 +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 ipv4 - -import ( - "net" - "syscall" - - "golang.org/x/net/bpf" -) - -// MulticastTTL returns the time-to-live field value for outgoing -// multicast packets. -func (c *dgramOpt) MulticastTTL() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastTTL] - if !ok { - return 0, errOpNoSupport - } - return so.GetInt(c.Conn) -} - -// SetMulticastTTL sets the time-to-live field value for future -// outgoing multicast packets. -func (c *dgramOpt) SetMulticastTTL(ttl int) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastTTL] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, ttl) -} - -// MulticastInterface returns the default interface for multicast -// packet transmissions. -func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastInterface] - if !ok { - return nil, errOpNoSupport - } - return so.getMulticastInterface(c.Conn) -} - -// SetMulticastInterface sets the default interface for future -// multicast packet transmissions. -func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastInterface] - if !ok { - return errOpNoSupport - } - return so.setMulticastInterface(c.Conn, ifi) -} - -// MulticastLoopback reports whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) MulticastLoopback() (bool, error) { - if !c.ok() { - return false, syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastLoopback] - if !ok { - return false, errOpNoSupport - } - on, err := so.GetInt(c.Conn) - if err != nil { - return false, err - } - return on == 1, nil -} - -// SetMulticastLoopback sets whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) SetMulticastLoopback(on bool) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastLoopback] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, boolint(on)) -} - -// JoinGroup joins the group address group on the interface ifi. -// By default all sources that can cast data to group are accepted. -// It's possible to mute and unmute data transmission from a specific -// source by using ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup. -// JoinGroup uses the system assigned multicast interface when ifi is -// nil, although this is not recommended because the assignment -// depends on platforms and sometimes it might require routing -// configuration. -func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoJoinGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - return so.setGroup(c.Conn, ifi, grp) -} - -// LeaveGroup leaves the group address group on the interface ifi -// regardless of whether the group is any-source group or -// source-specific group. -func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoLeaveGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - return so.setGroup(c.Conn, ifi, grp) -} - -// JoinSourceSpecificGroup joins the source-specific group comprising -// group and source on the interface ifi. -// JoinSourceSpecificGroup uses the system assigned multicast -// interface when ifi is nil, although this is not recommended because -// the assignment depends on platforms and sometimes it might require -// routing configuration. -func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoJoinSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// LeaveSourceSpecificGroup leaves the source-specific group on the -// interface ifi. -func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoLeaveSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// ExcludeSourceSpecificGroup excludes the source-specific group from -// the already joined any-source groups by JoinGroup on the interface -// ifi. -func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoBlockSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// IncludeSourceSpecificGroup includes the excluded source-specific -// group by ExcludeSourceSpecificGroup again on the interface ifi. -func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoUnblockSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP4(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP4(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// ICMPFilter returns an ICMP filter. -// Currently only Linux supports this. -func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - so, ok := sockOpts[ssoICMPFilter] - if !ok { - return nil, errOpNoSupport - } - return so.getICMPFilter(c.Conn) -} - -// SetICMPFilter deploys the ICMP filter. -// Currently only Linux supports this. -func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoICMPFilter] - if !ok { - return errOpNoSupport - } - return so.setICMPFilter(c.Conn, f) -} - -// SetBPF attaches a BPF program to the connection. -// -// Only supported on Linux. -func (c *dgramOpt) SetBPF(filter []bpf.RawInstruction) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoAttachFilter] - if !ok { - return errOpNoSupport - } - return so.setBPF(c.Conn, filter) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/doc.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/doc.go deleted file mode 100644 index b43935a5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/doc.go +++ /dev/null @@ -1,244 +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 ipv4 implements IP-level socket options for the Internet -// Protocol version 4. -// -// The package provides IP-level socket options that allow -// manipulation of IPv4 facilities. -// -// The IPv4 protocol and basic host requirements for IPv4 are defined -// in RFC 791 and RFC 1122. -// Host extensions for multicasting and socket interface extensions -// for multicast source filters are defined in RFC 1112 and RFC 3678. -// IGMPv1, IGMPv2 and IGMPv3 are defined in RFC 1112, RFC 2236 and RFC -// 3376. -// Source-specific multicast is defined in RFC 4607. -// -// -// Unicasting -// -// The options for unicasting are available for net.TCPConn, -// net.UDPConn and net.IPConn which are created as network connections -// that use the IPv4 transport. When a single TCP connection carrying -// a data flow of multiple packets needs to indicate the flow is -// important, Conn is used to set the type-of-service field on the -// IPv4 header for each packet. -// -// ln, err := net.Listen("tcp4", "0.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer ln.Close() -// for { -// c, err := ln.Accept() -// if err != nil { -// // error handling -// } -// go func(c net.Conn) { -// defer c.Close() -// -// The outgoing packets will be labeled DiffServ assured forwarding -// class 1 low drop precedence, known as AF11 packets. -// -// if err := ipv4.NewConn(c).SetTOS(0x28); err != nil { -// // error handling -// } -// if _, err := c.Write(data); err != nil { -// // error handling -// } -// }(c) -// } -// -// -// Multicasting -// -// The options for multicasting are available for net.UDPConn and -// net.IPconn which are created as network connections that use the -// IPv4 transport. A few network facilities must be prepared before -// you begin multicasting, at a minimum joining network interfaces and -// multicast groups. -// -// en0, err := net.InterfaceByName("en0") -// if err != nil { -// // error handling -// } -// en1, err := net.InterfaceByIndex(911) -// if err != nil { -// // error handling -// } -// group := net.IPv4(224, 0, 0, 250) -// -// First, an application listens to an appropriate address with an -// appropriate service port. -// -// c, err := net.ListenPacket("udp4", "0.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// -// Second, the application joins multicast groups, starts listening to -// the groups on the specified network interfaces. Note that the -// service port for transport layer protocol does not matter with this -// operation as joining groups affects only network and link layer -// protocols, such as IPv4 and Ethernet. -// -// p := ipv4.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// -// The application might set per packet control message transmissions -// between the protocol stack within the kernel. When the application -// needs a destination address on an incoming packet, -// SetControlMessage of PacketConn is used to enable control message -// transmissions. -// -// if err := p.SetControlMessage(ipv4.FlagDst, true); err != nil { -// // error handling -// } -// -// The application could identify whether the received packets are -// of interest by using the control message that contains the -// destination address of the received packet. -// -// b := make([]byte, 1500) -// for { -// n, cm, src, err := p.ReadFrom(b) -// if err != nil { -// // error handling -// } -// if cm.Dst.IsMulticast() { -// if cm.Dst.Equal(group) { -// // joined group, do something -// } else { -// // unknown group, discard -// continue -// } -// } -// -// The application can also send both unicast and multicast packets. -// -// p.SetTOS(0x0) -// p.SetTTL(16) -// if _, err := p.WriteTo(data, nil, src); err != nil { -// // error handling -// } -// dst := &net.UDPAddr{IP: group, Port: 1024} -// for _, ifi := range []*net.Interface{en0, en1} { -// if err := p.SetMulticastInterface(ifi); err != nil { -// // error handling -// } -// p.SetMulticastTTL(2) -// if _, err := p.WriteTo(data, nil, dst); err != nil { -// // error handling -// } -// } -// } -// -// -// More multicasting -// -// An application that uses PacketConn or RawConn may join multiple -// multicast groups. For example, a UDP listener with port 1024 might -// join two different groups across over two different network -// interfaces by using: -// -// c, err := net.ListenPacket("udp4", "0.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// p := ipv4.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 249)}); err != nil { -// // error handling -// } -// -// It is possible for multiple UDP listeners that listen on the same -// UDP port to join the same multicast group. The net package will -// provide a socket that listens to a wildcard address with reusable -// UDP port when an appropriate multicast address prefix is passed to -// the net.ListenPacket or net.ListenUDP. -// -// c1, err := net.ListenPacket("udp4", "224.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c1.Close() -// c2, err := net.ListenPacket("udp4", "224.0.0.0:1024") -// if err != nil { -// // error handling -// } -// defer c2.Close() -// p1 := ipv4.NewPacketConn(c1) -// if err := p1.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// p2 := ipv4.NewPacketConn(c2) -// if err := p2.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// -// Also it is possible for the application to leave or rejoin a -// multicast group on the network interface. -// -// if err := p.LeaveGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 248)}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.IPv4(224, 0, 0, 250)}); err != nil { -// // error handling -// } -// -// -// Source-specific multicasting -// -// An application that uses PacketConn or RawConn on IGMPv3 supported -// platform is able to join source-specific multicast groups. -// The application may use JoinSourceSpecificGroup and -// LeaveSourceSpecificGroup for the operation known as "include" mode, -// -// ssmgroup := net.UDPAddr{IP: net.IPv4(232, 7, 8, 9)} -// ssmsource := net.UDPAddr{IP: net.IPv4(192, 168, 0, 1)}) -// if err := p.JoinSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// if err := p.LeaveSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// -// or JoinGroup, ExcludeSourceSpecificGroup, -// IncludeSourceSpecificGroup and LeaveGroup for the operation known -// as "exclude" mode. -// -// exclsource := net.UDPAddr{IP: net.IPv4(192, 168, 0, 254)} -// if err := p.JoinGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// if err := p.ExcludeSourceSpecificGroup(en0, &ssmgroup, &exclsource); err != nil { -// // error handling -// } -// if err := p.LeaveGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// -// Note that it depends on each platform implementation what happens -// when an application which runs on IGMPv3 unsupported platform uses -// JoinSourceSpecificGroup and LeaveSourceSpecificGroup. -// In general the platform tries to fall back to conversations using -// IGMPv1 or IGMPv2 and starts to listen to multicast traffic. -// In the fallback case, ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup may return an error. -package ipv4 // import "golang.org/x/net/ipv4" - -// BUG(mikio): This package is not implemented on NaCl and Plan 9. diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/endpoint.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/endpoint.go deleted file mode 100644 index 2ab87736..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/endpoint.go +++ /dev/null @@ -1,187 +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 ipv4 - -import ( - "net" - "syscall" - "time" - - "golang.org/x/net/internal/socket" -) - -// BUG(mikio): On Windows, the JoinSourceSpecificGroup, -// LeaveSourceSpecificGroup, ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup methods of PacketConn and RawConn are -// not implemented. - -// A Conn represents a network endpoint that uses the IPv4 transport. -// It is used to control basic IP-level socket options such as TOS and -// TTL. -type Conn struct { - genericOpt -} - -type genericOpt struct { - *socket.Conn -} - -func (c *genericOpt) ok() bool { return c != nil && c.Conn != nil } - -// NewConn returns a new Conn. -func NewConn(c net.Conn) *Conn { - cc, _ := socket.NewConn(c) - return &Conn{ - genericOpt: genericOpt{Conn: cc}, - } -} - -// A PacketConn represents a packet network endpoint that uses the -// IPv4 transport. It is used to control several IP-level socket -// options including multicasting. It also provides datagram based -// network I/O methods specific to the IPv4 and higher layer protocols -// such as UDP. -type PacketConn struct { - genericOpt - dgramOpt - payloadHandler -} - -type dgramOpt struct { - *socket.Conn -} - -func (c *dgramOpt) ok() bool { return c != nil && c.Conn != nil } - -// SetControlMessage sets the per packet IP-level socket options. -func (c *PacketConn) SetControlMessage(cf ControlFlags, on bool) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return setControlMessage(c.dgramOpt.Conn, &c.payloadHandler.rawOpt, cf, on) -} - -// SetDeadline sets the read and write deadlines associated with the -// endpoint. -func (c *PacketConn) SetDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.SetDeadline(t) -} - -// SetReadDeadline sets the read deadline associated with the -// endpoint. -func (c *PacketConn) SetReadDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.SetReadDeadline(t) -} - -// SetWriteDeadline sets the write deadline associated with the -// endpoint. -func (c *PacketConn) SetWriteDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.SetWriteDeadline(t) -} - -// Close closes the endpoint. -func (c *PacketConn) Close() error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.PacketConn.Close() -} - -// NewPacketConn returns a new PacketConn using c as its underlying -// transport. -func NewPacketConn(c net.PacketConn) *PacketConn { - cc, _ := socket.NewConn(c.(net.Conn)) - p := &PacketConn{ - genericOpt: genericOpt{Conn: cc}, - dgramOpt: dgramOpt{Conn: cc}, - payloadHandler: payloadHandler{PacketConn: c, Conn: cc}, - } - return p -} - -// A RawConn represents a packet network endpoint that uses the IPv4 -// transport. It is used to control several IP-level socket options -// including IPv4 header manipulation. It also provides datagram -// based network I/O methods specific to the IPv4 and higher layer -// protocols that handle IPv4 datagram directly such as OSPF, GRE. -type RawConn struct { - genericOpt - dgramOpt - packetHandler -} - -// SetControlMessage sets the per packet IP-level socket options. -func (c *RawConn) SetControlMessage(cf ControlFlags, on bool) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return setControlMessage(c.dgramOpt.Conn, &c.packetHandler.rawOpt, cf, on) -} - -// SetDeadline sets the read and write deadlines associated with the -// endpoint. -func (c *RawConn) SetDeadline(t time.Time) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.IPConn.SetDeadline(t) -} - -// SetReadDeadline sets the read deadline associated with the -// endpoint. -func (c *RawConn) SetReadDeadline(t time.Time) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.IPConn.SetReadDeadline(t) -} - -// SetWriteDeadline sets the write deadline associated with the -// endpoint. -func (c *RawConn) SetWriteDeadline(t time.Time) error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.IPConn.SetWriteDeadline(t) -} - -// Close closes the endpoint. -func (c *RawConn) Close() error { - if !c.packetHandler.ok() { - return syscall.EINVAL - } - return c.packetHandler.IPConn.Close() -} - -// NewRawConn returns a new RawConn using c as its underlying -// transport. -func NewRawConn(c net.PacketConn) (*RawConn, error) { - cc, err := socket.NewConn(c.(net.Conn)) - if err != nil { - return nil, err - } - r := &RawConn{ - genericOpt: genericOpt{Conn: cc}, - dgramOpt: dgramOpt{Conn: cc}, - packetHandler: packetHandler{IPConn: c.(*net.IPConn), Conn: cc}, - } - so, ok := sockOpts[ssoHeaderPrepend] - if !ok { - return nil, errOpNoSupport - } - if err := so.SetInt(r.dgramOpt.Conn, boolint(true)); err != nil { - return nil, err - } - return r, nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/genericopt.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/genericopt.go deleted file mode 100644 index 119bf841..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/genericopt.go +++ /dev/null @@ -1,57 +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 ipv4 - -import "syscall" - -// TOS returns the type-of-service field value for outgoing packets. -func (c *genericOpt) TOS() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - so, ok := sockOpts[ssoTOS] - if !ok { - return 0, errOpNoSupport - } - return so.GetInt(c.Conn) -} - -// SetTOS sets the type-of-service field value for future outgoing -// packets. -func (c *genericOpt) SetTOS(tos int) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoTOS] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, tos) -} - -// TTL returns the time-to-live field value for outgoing packets. -func (c *genericOpt) TTL() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - so, ok := sockOpts[ssoTTL] - if !ok { - return 0, errOpNoSupport - } - return so.GetInt(c.Conn) -} - -// SetTTL sets the time-to-live field value for future outgoing -// packets. -func (c *genericOpt) SetTTL(ttl int) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoTTL] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, ttl) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/header.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/header.go deleted file mode 100644 index 8bb0f0f4..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/header.go +++ /dev/null @@ -1,159 +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 ipv4 - -import ( - "encoding/binary" - "fmt" - "net" - "runtime" - "syscall" - - "golang.org/x/net/internal/socket" -) - -const ( - Version = 4 // protocol version - HeaderLen = 20 // header length without extension headers - maxHeaderLen = 60 // sensible default, revisit if later RFCs define new usage of version and header length fields -) - -type HeaderFlags int - -const ( - MoreFragments HeaderFlags = 1 << iota // more fragments flag - DontFragment // don't fragment flag -) - -// A Header represents an IPv4 header. -type Header struct { - Version int // protocol version - Len int // header length - TOS int // type-of-service - TotalLen int // packet total length - ID int // identification - Flags HeaderFlags // flags - FragOff int // fragment offset - TTL int // time-to-live - Protocol int // next protocol - Checksum int // checksum - Src net.IP // source address - Dst net.IP // destination address - Options []byte // options, extension headers -} - -func (h *Header) String() string { - if h == nil { - return "" - } - return fmt.Sprintf("ver=%d hdrlen=%d tos=%#x totallen=%d id=%#x flags=%#x fragoff=%#x ttl=%d proto=%d cksum=%#x src=%v dst=%v", h.Version, h.Len, h.TOS, h.TotalLen, h.ID, h.Flags, h.FragOff, h.TTL, h.Protocol, h.Checksum, h.Src, h.Dst) -} - -// Marshal returns the binary encoding of h. -func (h *Header) Marshal() ([]byte, error) { - if h == nil { - return nil, syscall.EINVAL - } - if h.Len < HeaderLen { - return nil, errHeaderTooShort - } - hdrlen := HeaderLen + len(h.Options) - b := make([]byte, hdrlen) - b[0] = byte(Version<<4 | (hdrlen >> 2 & 0x0f)) - b[1] = byte(h.TOS) - flagsAndFragOff := (h.FragOff & 0x1fff) | int(h.Flags<<13) - switch runtime.GOOS { - case "darwin", "dragonfly", "netbsd": - socket.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen)) - socket.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff)) - case "freebsd": - if freebsdVersion < 1100000 { - socket.NativeEndian.PutUint16(b[2:4], uint16(h.TotalLen)) - socket.NativeEndian.PutUint16(b[6:8], uint16(flagsAndFragOff)) - } else { - binary.BigEndian.PutUint16(b[2:4], uint16(h.TotalLen)) - binary.BigEndian.PutUint16(b[6:8], uint16(flagsAndFragOff)) - } - default: - binary.BigEndian.PutUint16(b[2:4], uint16(h.TotalLen)) - binary.BigEndian.PutUint16(b[6:8], uint16(flagsAndFragOff)) - } - binary.BigEndian.PutUint16(b[4:6], uint16(h.ID)) - b[8] = byte(h.TTL) - b[9] = byte(h.Protocol) - binary.BigEndian.PutUint16(b[10:12], uint16(h.Checksum)) - if ip := h.Src.To4(); ip != nil { - copy(b[12:16], ip[:net.IPv4len]) - } - if ip := h.Dst.To4(); ip != nil { - copy(b[16:20], ip[:net.IPv4len]) - } else { - return nil, errMissingAddress - } - if len(h.Options) > 0 { - copy(b[HeaderLen:], h.Options) - } - return b, nil -} - -// Parse parses b as an IPv4 header and sotres the result in h. -func (h *Header) Parse(b []byte) error { - if h == nil || len(b) < HeaderLen { - return errHeaderTooShort - } - hdrlen := int(b[0]&0x0f) << 2 - if hdrlen > len(b) { - return errBufferTooShort - } - h.Version = int(b[0] >> 4) - h.Len = hdrlen - h.TOS = int(b[1]) - h.ID = int(binary.BigEndian.Uint16(b[4:6])) - h.TTL = int(b[8]) - h.Protocol = int(b[9]) - h.Checksum = int(binary.BigEndian.Uint16(b[10:12])) - h.Src = net.IPv4(b[12], b[13], b[14], b[15]) - h.Dst = net.IPv4(b[16], b[17], b[18], b[19]) - switch runtime.GOOS { - case "darwin", "dragonfly", "netbsd": - h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4])) + hdrlen - h.FragOff = int(socket.NativeEndian.Uint16(b[6:8])) - case "freebsd": - if freebsdVersion < 1100000 { - h.TotalLen = int(socket.NativeEndian.Uint16(b[2:4])) - if freebsdVersion < 1000000 { - h.TotalLen += hdrlen - } - h.FragOff = int(socket.NativeEndian.Uint16(b[6:8])) - } else { - h.TotalLen = int(binary.BigEndian.Uint16(b[2:4])) - h.FragOff = int(binary.BigEndian.Uint16(b[6:8])) - } - default: - h.TotalLen = int(binary.BigEndian.Uint16(b[2:4])) - h.FragOff = int(binary.BigEndian.Uint16(b[6:8])) - } - h.Flags = HeaderFlags(h.FragOff&0xe000) >> 13 - h.FragOff = h.FragOff & 0x1fff - optlen := hdrlen - HeaderLen - if optlen > 0 && len(b) >= hdrlen { - if cap(h.Options) < optlen { - h.Options = make([]byte, optlen) - } else { - h.Options = h.Options[:optlen] - } - copy(h.Options, b[HeaderLen:hdrlen]) - } - return nil -} - -// ParseHeader parses b as an IPv4 header. -func ParseHeader(b []byte) (*Header, error) { - h := new(Header) - if err := h.Parse(b); err != nil { - return nil, err - } - return h, nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/helper.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/helper.go deleted file mode 100644 index a5052e32..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/helper.go +++ /dev/null @@ -1,63 +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 ipv4 - -import ( - "errors" - "net" -) - -var ( - errMissingAddress = errors.New("missing address") - errMissingHeader = errors.New("missing header") - errHeaderTooShort = errors.New("header too short") - errBufferTooShort = errors.New("buffer too short") - errInvalidConnType = errors.New("invalid conn type") - errOpNoSupport = errors.New("operation not supported") - errNoSuchInterface = errors.New("no such interface") - errNoSuchMulticastInterface = errors.New("no such multicast interface") - - // See http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html. - freebsdVersion uint32 -) - -func boolint(b bool) int { - if b { - return 1 - } - return 0 -} - -func netAddrToIP4(a net.Addr) net.IP { - switch v := a.(type) { - case *net.UDPAddr: - if ip := v.IP.To4(); ip != nil { - return ip - } - case *net.IPAddr: - if ip := v.IP.To4(); ip != nil { - return ip - } - } - return nil -} - -func opAddr(a net.Addr) net.Addr { - switch a.(type) { - case *net.TCPAddr: - if a == nil { - return nil - } - case *net.UDPAddr: - if a == nil { - return nil - } - case *net.IPAddr: - if a == nil { - return nil - } - } - return a -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/iana.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/iana.go deleted file mode 100644 index be10c948..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/iana.go +++ /dev/null @@ -1,34 +0,0 @@ -// go generate gen.go -// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package ipv4 - -// Internet Control Message Protocol (ICMP) Parameters, Updated: 2013-04-19 -const ( - ICMPTypeEchoReply ICMPType = 0 // Echo Reply - ICMPTypeDestinationUnreachable ICMPType = 3 // Destination Unreachable - ICMPTypeRedirect ICMPType = 5 // Redirect - ICMPTypeEcho ICMPType = 8 // Echo - ICMPTypeRouterAdvertisement ICMPType = 9 // Router Advertisement - ICMPTypeRouterSolicitation ICMPType = 10 // Router Solicitation - ICMPTypeTimeExceeded ICMPType = 11 // Time Exceeded - ICMPTypeParameterProblem ICMPType = 12 // Parameter Problem - ICMPTypeTimestamp ICMPType = 13 // Timestamp - ICMPTypeTimestampReply ICMPType = 14 // Timestamp Reply - ICMPTypePhoturis ICMPType = 40 // Photuris -) - -// Internet Control Message Protocol (ICMP) Parameters, Updated: 2013-04-19 -var icmpTypes = map[ICMPType]string{ - 0: "echo reply", - 3: "destination unreachable", - 5: "redirect", - 8: "echo", - 9: "router advertisement", - 10: "router solicitation", - 11: "time exceeded", - 12: "parameter problem", - 13: "timestamp", - 14: "timestamp reply", - 40: "photuris", -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp.go deleted file mode 100644 index 9902bb3d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp.go +++ /dev/null @@ -1,57 +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 ipv4 - -import "golang.org/x/net/internal/iana" - -// An ICMPType represents a type of ICMP message. -type ICMPType int - -func (typ ICMPType) String() string { - s, ok := icmpTypes[typ] - if !ok { - return "" - } - return s -} - -// Protocol returns the ICMPv4 protocol number. -func (typ ICMPType) Protocol() int { - return iana.ProtocolICMP -} - -// An ICMPFilter represents an ICMP message filter for incoming -// packets. The filter belongs to a packet delivery path on a host and -// it cannot interact with forwarding packets or tunnel-outer packets. -// -// Note: RFC 8200 defines a reasonable role model and it works not -// only for IPv6 but IPv4. A node means a device that implements IP. -// A router means a node that forwards IP packets not explicitly -// addressed to itself, and a host means a node that is not a router. -type ICMPFilter struct { - icmpFilter -} - -// Accept accepts incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Accept(typ ICMPType) { - f.accept(typ) -} - -// Block blocks incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Block(typ ICMPType) { - f.block(typ) -} - -// SetAll sets the filter action to the filter. -func (f *ICMPFilter) SetAll(block bool) { - f.setAll(block) -} - -// WillBlock reports whether the ICMP type will be blocked. -func (f *ICMPFilter) WillBlock(typ ICMPType) bool { - return f.willBlock(typ) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp_linux.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp_linux.go deleted file mode 100644 index 6e1c5c80..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp_linux.go +++ /dev/null @@ -1,25 +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 ipv4 - -func (f *icmpFilter) accept(typ ICMPType) { - f.Data &^= 1 << (uint32(typ) & 31) -} - -func (f *icmpFilter) block(typ ICMPType) { - f.Data |= 1 << (uint32(typ) & 31) -} - -func (f *icmpFilter) setAll(block bool) { - if block { - f.Data = 1<<32 - 1 - } else { - f.Data = 0 - } -} - -func (f *icmpFilter) willBlock(typ ICMPType) bool { - return f.Data&(1<<(uint32(typ)&31)) != 0 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp_stub.go deleted file mode 100644 index 21bb29ab..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/icmp_stub.go +++ /dev/null @@ -1,25 +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. - -// +build !linux - -package ipv4 - -const sizeofICMPFilter = 0x0 - -type icmpFilter struct { -} - -func (f *icmpFilter) accept(typ ICMPType) { -} - -func (f *icmpFilter) block(typ ICMPType) { -} - -func (f *icmpFilter) setAll(block bool) { -} - -func (f *icmpFilter) willBlock(typ ICMPType) bool { - return false -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet.go deleted file mode 100644 index f00f5b05..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet.go +++ /dev/null @@ -1,69 +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 ipv4 - -import ( - "net" - "syscall" - - "golang.org/x/net/internal/socket" -) - -// BUG(mikio): On Windows, the ReadFrom and WriteTo methods of RawConn -// are not implemented. - -// A packetHandler represents the IPv4 datagram handler. -type packetHandler struct { - *net.IPConn - *socket.Conn - rawOpt -} - -func (c *packetHandler) ok() bool { return c != nil && c.IPConn != nil && c.Conn != nil } - -// ReadFrom reads an IPv4 datagram from the endpoint c, copying the -// datagram into b. It returns the received datagram as the IPv4 -// header h, the payload p and the control message cm. -func (c *packetHandler) ReadFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) { - if !c.ok() { - return nil, nil, nil, syscall.EINVAL - } - return c.readFrom(b) -} - -func slicePacket(b []byte) (h, p []byte, err error) { - if len(b) < HeaderLen { - return nil, nil, errHeaderTooShort - } - hdrlen := int(b[0]&0x0f) << 2 - return b[:hdrlen], b[hdrlen:], nil -} - -// WriteTo writes an IPv4 datagram through the endpoint c, copying the -// datagram from the IPv4 header h and the payload p. The control -// message cm allows the datagram path and the outgoing interface to be -// specified. Currently only Darwin and Linux support this. The cm -// may be nil if control of the outgoing datagram is not required. -// -// The IPv4 header h must contain appropriate fields that include: -// -// Version = -// Len = -// TOS = -// TotalLen = -// ID = platform sets an appropriate value if ID is zero -// FragOff = -// TTL = -// Protocol = -// Checksum = platform sets an appropriate value if Checksum is zero -// Src = platform sets an appropriate value if Src is nil -// Dst = -// Options = optional -func (c *packetHandler) WriteTo(h *Header, p []byte, cm *ControlMessage) error { - if !c.ok() { - return syscall.EINVAL - } - return c.writeTo(h, p, cm) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet_go1_8.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet_go1_8.go deleted file mode 100644 index b47d1868..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet_go1_8.go +++ /dev/null @@ -1,56 +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. - -// +build !go1.9 - -package ipv4 - -import "net" - -func (c *packetHandler) readFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) { - c.rawOpt.RLock() - oob := NewControlMessage(c.rawOpt.cflags) - c.rawOpt.RUnlock() - n, nn, _, src, err := c.ReadMsgIP(b, oob) - if err != nil { - return nil, nil, nil, err - } - var hs []byte - if hs, p, err = slicePacket(b[:n]); err != nil { - return nil, nil, nil, err - } - if h, err = ParseHeader(hs); err != nil { - return nil, nil, nil, err - } - if nn > 0 { - cm = new(ControlMessage) - if err := cm.Parse(oob[:nn]); err != nil { - return nil, nil, nil, err - } - } - if src != nil && cm != nil { - cm.Src = src.IP - } - return -} - -func (c *packetHandler) writeTo(h *Header, p []byte, cm *ControlMessage) error { - oob := cm.Marshal() - wh, err := h.Marshal() - if err != nil { - return err - } - dst := new(net.IPAddr) - if cm != nil { - if ip := cm.Dst.To4(); ip != nil { - dst.IP = ip - } - } - if dst.IP == nil { - dst.IP = h.Dst - } - wh = append(wh, p...) - _, _, err = c.WriteMsgIP(wh, oob, dst) - return err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet_go1_9.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet_go1_9.go deleted file mode 100644 index 082c36d7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/packet_go1_9.go +++ /dev/null @@ -1,67 +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. - -// +build go1.9 - -package ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (c *packetHandler) readFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) { - c.rawOpt.RLock() - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: NewControlMessage(c.rawOpt.cflags), - } - c.rawOpt.RUnlock() - if err := c.RecvMsg(&m, 0); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - var hs []byte - if hs, p, err = slicePacket(b[:m.N]); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - if h, err = ParseHeader(hs); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - if m.NN > 0 { - cm = new(ControlMessage) - if err := cm.Parse(m.OOB[:m.NN]); err != nil { - return nil, nil, nil, &net.OpError{Op: "read", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Err: err} - } - } - if src, ok := m.Addr.(*net.IPAddr); ok && cm != nil { - cm.Src = src.IP - } - return -} - -func (c *packetHandler) writeTo(h *Header, p []byte, cm *ControlMessage) error { - m := socket.Message{ - OOB: cm.Marshal(), - } - wh, err := h.Marshal() - if err != nil { - return err - } - m.Buffers = [][]byte{wh, p} - dst := new(net.IPAddr) - if cm != nil { - if ip := cm.Dst.To4(); ip != nil { - dst.IP = ip - } - } - if dst.IP == nil { - dst.IP = h.Dst - } - m.Addr = dst - if err := c.SendMsg(&m, 0); err != nil { - return &net.OpError{Op: "write", Net: c.IPConn.LocalAddr().Network(), Source: c.IPConn.LocalAddr(), Addr: opAddr(dst), Err: err} - } - return nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload.go deleted file mode 100644 index f95f811a..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload.go +++ /dev/null @@ -1,23 +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 ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -// BUG(mikio): On Windows, the ControlMessage for ReadFrom and WriteTo -// methods of PacketConn is not implemented. - -// A payloadHandler represents the IPv4 datagram payload handler. -type payloadHandler struct { - net.PacketConn - *socket.Conn - rawOpt -} - -func (c *payloadHandler) ok() bool { return c != nil && c.PacketConn != nil && c.Conn != nil } diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg.go deleted file mode 100644 index 3f06d760..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg.go +++ /dev/null @@ -1,36 +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. - -// +build !nacl,!plan9,!windows - -package ipv4 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv4 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - return c.readFrom(b) -} - -// WriteTo writes a payload of the IPv4 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the datagram path and the outgoing interface to be specified. -// Currently only Darwin and Linux support this. The cm may be nil if -// control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - return c.writeTo(b, cm, dst) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_8.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_8.go deleted file mode 100644 index d26ccd90..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_8.go +++ /dev/null @@ -1,59 +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. - -// +build !go1.9 -// +build !nacl,!plan9,!windows - -package ipv4 - -import "net" - -func (c *payloadHandler) readFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - c.rawOpt.RLock() - oob := NewControlMessage(c.rawOpt.cflags) - c.rawOpt.RUnlock() - var nn int - switch c := c.PacketConn.(type) { - case *net.UDPConn: - if n, nn, _, src, err = c.ReadMsgUDP(b, oob); err != nil { - return 0, nil, nil, err - } - case *net.IPConn: - nb := make([]byte, maxHeaderLen+len(b)) - if n, nn, _, src, err = c.ReadMsgIP(nb, oob); err != nil { - return 0, nil, nil, err - } - hdrlen := int(nb[0]&0x0f) << 2 - copy(b, nb[hdrlen:]) - n -= hdrlen - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Err: errInvalidConnType} - } - if nn > 0 { - cm = new(ControlMessage) - if err = cm.Parse(oob[:nn]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - } - if cm != nil { - cm.Src = netAddrToIP4(src) - } - return -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - oob := cm.Marshal() - if dst == nil { - return 0, &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errMissingAddress} - } - switch c := c.PacketConn.(type) { - case *net.UDPConn: - n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr)) - case *net.IPConn: - n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr)) - default: - return 0, &net.OpError{Op: "write", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Addr: opAddr(dst), Err: errInvalidConnType} - } - return -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_9.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_9.go deleted file mode 100644 index 2f193118..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_cmsg_go1_9.go +++ /dev/null @@ -1,67 +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. - -// +build go1.9 -// +build !nacl,!plan9,!windows - -package ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (c *payloadHandler) readFrom(b []byte) (int, *ControlMessage, net.Addr, error) { - c.rawOpt.RLock() - m := socket.Message{ - OOB: NewControlMessage(c.rawOpt.cflags), - } - c.rawOpt.RUnlock() - switch c.PacketConn.(type) { - case *net.UDPConn: - m.Buffers = [][]byte{b} - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - case *net.IPConn: - h := make([]byte, HeaderLen) - m.Buffers = [][]byte{h, b} - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - hdrlen := int(h[0]&0x0f) << 2 - if hdrlen > len(h) { - d := hdrlen - len(h) - copy(b, b[d:]) - m.N -= d - } else { - m.N -= hdrlen - } - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errInvalidConnType} - } - var cm *ControlMessage - if m.NN > 0 { - cm = new(ControlMessage) - if err := cm.Parse(m.OOB[:m.NN]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - cm.Src = netAddrToIP4(m.Addr) - } - return m.N, cm, m.Addr, nil -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (int, error) { - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: cm.Marshal(), - Addr: dst, - } - err := c.SendMsg(&m, 0) - if err != nil { - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Addr: opAddr(dst), Err: err} - } - return m.N, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_nocmsg.go deleted file mode 100644 index 3926de70..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/payload_nocmsg.go +++ /dev/null @@ -1,42 +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. - -// +build nacl plan9 windows - -package ipv4 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv4 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - if n, src, err = c.PacketConn.ReadFrom(b); err != nil { - return 0, nil, nil, err - } - return -} - -// WriteTo writes a payload of the IPv4 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the datagram path and the outgoing interface to be specified. -// Currently only Darwin and Linux support this. The cm may be nil if -// control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - if dst == nil { - return 0, errMissingAddress - } - return c.PacketConn.WriteTo(b, dst) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt.go deleted file mode 100644 index 22e90c03..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt.go +++ /dev/null @@ -1,44 +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 ipv4 - -import "golang.org/x/net/internal/socket" - -// Sticky socket options -const ( - ssoTOS = iota // header field for unicast packet - ssoTTL // header field for unicast packet - ssoMulticastTTL // header field for multicast packet - ssoMulticastInterface // outbound interface for multicast packet - ssoMulticastLoopback // loopback for multicast packet - ssoReceiveTTL // header field on received packet - ssoReceiveDst // header field on received packet - ssoReceiveInterface // inbound interface on received packet - ssoPacketInfo // incbound or outbound packet path - ssoHeaderPrepend // ipv4 header prepend - ssoStripHeader // strip ipv4 header - ssoICMPFilter // icmp filter - ssoJoinGroup // any-source multicast - ssoLeaveGroup // any-source multicast - ssoJoinSourceGroup // source-specific multicast - ssoLeaveSourceGroup // source-specific multicast - ssoBlockSourceGroup // any-source or source-specific multicast - ssoUnblockSourceGroup // any-source or source-specific multicast - ssoAttachFilter // attach BPF for filtering inbound traffic -) - -// Sticky socket option value types -const ( - ssoTypeIPMreq = iota + 1 - ssoTypeIPMreqn - ssoTypeGroupReq - ssoTypeGroupSourceReq -) - -// A sockOpt represents a binding for sticky socket option. -type sockOpt struct { - socket.Option - typ int // hint for option value type; optional -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt_posix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt_posix.go deleted file mode 100644 index e96955bc..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt_posix.go +++ /dev/null @@ -1,71 +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. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows - -package ipv4 - -import ( - "net" - "unsafe" - - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) getMulticastInterface(c *socket.Conn) (*net.Interface, error) { - switch so.typ { - case ssoTypeIPMreqn: - return so.getIPMreqn(c) - default: - return so.getMulticastIf(c) - } -} - -func (so *sockOpt) setMulticastInterface(c *socket.Conn, ifi *net.Interface) error { - switch so.typ { - case ssoTypeIPMreqn: - return so.setIPMreqn(c, ifi, nil) - default: - return so.setMulticastIf(c, ifi) - } -} - -func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { - b := make([]byte, so.Len) - n, err := so.Get(c, b) - if err != nil { - return nil, err - } - if n != sizeofICMPFilter { - return nil, errOpNoSupport - } - return (*ICMPFilter)(unsafe.Pointer(&b[0])), nil -} - -func (so *sockOpt) setICMPFilter(c *socket.Conn, f *ICMPFilter) error { - b := (*[sizeofICMPFilter]byte)(unsafe.Pointer(f))[:sizeofICMPFilter] - return so.Set(c, b) -} - -func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - switch so.typ { - case ssoTypeIPMreq: - return so.setIPMreq(c, ifi, grp) - case ssoTypeIPMreqn: - return so.setIPMreqn(c, ifi, grp) - case ssoTypeGroupReq: - return so.setGroupReq(c, ifi, grp) - default: - return errOpNoSupport - } -} - -func (so *sockOpt) setSourceGroup(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return so.setGroupSourceReq(c, ifi, grp, src) -} - -func (so *sockOpt) setBPF(c *socket.Conn, f []bpf.RawInstruction) error { - return so.setAttachFilter(c, f) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt_stub.go deleted file mode 100644 index 23249b78..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sockopt_stub.go +++ /dev/null @@ -1,42 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv4 - -import ( - "net" - - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) getMulticastInterface(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport -} - -func (so *sockOpt) setMulticastInterface(c *socket.Conn, ifi *net.Interface) error { - return errOpNoSupport -} - -func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { - return nil, errOpNoSupport -} - -func (so *sockOpt) setICMPFilter(c *socket.Conn, f *ICMPFilter) error { - return errOpNoSupport -} - -func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func (so *sockOpt) setSourceGroup(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport -} - -func (so *sockOpt) setBPF(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreq.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreq.go deleted file mode 100644 index 0388cba0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreq.go +++ /dev/null @@ -1,119 +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. - -// +build darwin dragonfly freebsd netbsd openbsd solaris windows - -package ipv4 - -import ( - "net" - "unsafe" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setIPMreq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - mreq := ipMreq{Multiaddr: [4]byte{grp[0], grp[1], grp[2], grp[3]}} - if err := setIPMreqInterface(&mreq, ifi); err != nil { - return err - } - b := (*[sizeofIPMreq]byte)(unsafe.Pointer(&mreq))[:sizeofIPMreq] - return so.Set(c, b) -} - -func (so *sockOpt) getMulticastIf(c *socket.Conn) (*net.Interface, error) { - var b [4]byte - if _, err := so.Get(c, b[:]); err != nil { - return nil, err - } - ifi, err := netIP4ToInterface(net.IPv4(b[0], b[1], b[2], b[3])) - if err != nil { - return nil, err - } - return ifi, nil -} - -func (so *sockOpt) setMulticastIf(c *socket.Conn, ifi *net.Interface) error { - ip, err := netInterfaceToIP4(ifi) - if err != nil { - return err - } - var b [4]byte - copy(b[:], ip) - return so.Set(c, b[:]) -} - -func setIPMreqInterface(mreq *ipMreq, ifi *net.Interface) error { - if ifi == nil { - return nil - } - ifat, err := ifi.Addrs() - if err != nil { - return err - } - for _, ifa := range ifat { - switch ifa := ifa.(type) { - case *net.IPAddr: - if ip := ifa.IP.To4(); ip != nil { - copy(mreq.Interface[:], ip) - return nil - } - case *net.IPNet: - if ip := ifa.IP.To4(); ip != nil { - copy(mreq.Interface[:], ip) - return nil - } - } - } - return errNoSuchInterface -} - -func netIP4ToInterface(ip net.IP) (*net.Interface, error) { - ift, err := net.Interfaces() - if err != nil { - return nil, err - } - for _, ifi := range ift { - ifat, err := ifi.Addrs() - if err != nil { - return nil, err - } - for _, ifa := range ifat { - switch ifa := ifa.(type) { - case *net.IPAddr: - if ip.Equal(ifa.IP) { - return &ifi, nil - } - case *net.IPNet: - if ip.Equal(ifa.IP) { - return &ifi, nil - } - } - } - } - return nil, errNoSuchInterface -} - -func netInterfaceToIP4(ifi *net.Interface) (net.IP, error) { - if ifi == nil { - return net.IPv4zero.To4(), nil - } - ifat, err := ifi.Addrs() - if err != nil { - return nil, err - } - for _, ifa := range ifat { - switch ifa := ifa.(type) { - case *net.IPAddr: - if ip := ifa.IP.To4(); ip != nil { - return ip, nil - } - case *net.IPNet: - if ip := ifa.IP.To4(); ip != nil { - return ip, nil - } - } - } - return nil, errNoSuchInterface -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go deleted file mode 100644 index f3919208..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go +++ /dev/null @@ -1,25 +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. - -// +build !darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows - -package ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setIPMreq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func (so *sockOpt) getMulticastIf(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport -} - -func (so *sockOpt) setMulticastIf(c *socket.Conn, ifi *net.Interface) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreqn.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreqn.go deleted file mode 100644 index 1f24f69f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreqn.go +++ /dev/null @@ -1,42 +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. - -// +build darwin freebsd linux - -package ipv4 - -import ( - "net" - "unsafe" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) getIPMreqn(c *socket.Conn) (*net.Interface, error) { - b := make([]byte, so.Len) - if _, err := so.Get(c, b); err != nil { - return nil, err - } - mreqn := (*ipMreqn)(unsafe.Pointer(&b[0])) - if mreqn.Ifindex == 0 { - return nil, nil - } - ifi, err := net.InterfaceByIndex(int(mreqn.Ifindex)) - if err != nil { - return nil, err - } - return ifi, nil -} - -func (so *sockOpt) setIPMreqn(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - var mreqn ipMreqn - if ifi != nil { - mreqn.Ifindex = int32(ifi.Index) - } - if grp != nil { - mreqn.Multiaddr = [4]byte{grp[0], grp[1], grp[2], grp[3]} - } - b := (*[sizeofIPMreqn]byte)(unsafe.Pointer(&mreqn))[:sizeofIPMreqn] - return so.Set(c, b) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go deleted file mode 100644 index 0711d3d7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go +++ /dev/null @@ -1,21 +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. - -// +build !darwin,!freebsd,!linux - -package ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) getIPMreqn(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport -} - -func (so *sockOpt) setIPMreqn(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bpf.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bpf.go deleted file mode 100644 index 9f30b730..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bpf.go +++ /dev/null @@ -1,23 +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. - -// +build linux - -package ipv4 - -import ( - "unsafe" - - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - prog := sockFProg{ - Len: uint16(len(f)), - Filter: (*sockFilter)(unsafe.Pointer(&f[0])), - } - b := (*[sizeofSockFprog]byte)(unsafe.Pointer(&prog))[:sizeofSockFprog] - return so.Set(c, b) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go deleted file mode 100644 index 9a213209..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bpf_stub.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. - -// +build !linux - -package ipv4 - -import ( - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bsd.go deleted file mode 100644 index 58256dd9..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_bsd.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. - -// +build netbsd openbsd - -package ipv4 - -import ( - "net" - "syscall" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = map[int]*sockOpt{ - ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, - ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, - ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 1}}, - ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, - ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}}, - ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}}, - ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - } -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_darwin.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_darwin.go deleted file mode 100644 index e8fb1916..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_darwin.go +++ /dev/null @@ -1,93 +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 ipv4 - -import ( - "net" - "strconv" - "strings" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = map[int]*sockOpt{ - ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, - ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, - ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, - ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}}, - ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}}, - ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, - ssoStripHeader: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_STRIPHDR, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - } -) - -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - s, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - ss := strings.Split(s, ".") - if len(ss) == 0 { - return - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11). But it looks like - // those features require OS X 10.8 (Darwin 12) or above. - // See http://support.apple.com/kb/HT1633. - if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 { - return - } - ctlOpts[ctlPacketInfo].name = sysIP_PKTINFO - ctlOpts[ctlPacketInfo].length = sizeofInetPktinfo - ctlOpts[ctlPacketInfo].marshal = marshalPacketInfo - ctlOpts[ctlPacketInfo].parse = parsePacketInfo - sockOpts[ssoPacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}} - sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn} - sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} -} - -func (pi *inetPktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(uintptr(unsafe.Pointer(gr)) + 4)) - sa.Len = sizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 4)) - sa.Len = sizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) - sa = (*sockaddrInet)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 132)) - sa.Len = sizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_dragonfly.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_dragonfly.go deleted file mode 100644 index 859764f3..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_dragonfly.go +++ /dev/null @@ -1,35 +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 ipv4 - -import ( - "net" - "syscall" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = map[int]*sockOpt{ - ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, - ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, - ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, - ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}}, - ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}}, - ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - } -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_freebsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_freebsd.go deleted file mode 100644 index b8003245..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_freebsd.go +++ /dev/null @@ -1,76 +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 ipv4 - -import ( - "net" - "runtime" - "strings" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, - } - - sockOpts = map[int]*sockOpt{ - ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, - ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, - ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, - ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}}, - ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}}, - ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - } -) - -func init() { - freebsdVersion, _ = syscall.SysctlUint32("kern.osreldate") - if freebsdVersion >= 1000000 { - sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn} - } - if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" { - archs, _ := syscall.Sysctl("kern.supported_archs") - for _, s := range strings.Fields(archs) { - if s == "amd64" { - freebsd32o64 = true - break - } - } - } -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(&gr.Group)) - sa.Len = sizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(&gsr.Group)) - sa.Len = sizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) - sa = (*sockaddrInet)(unsafe.Pointer(&gsr.Source)) - sa.Len = sizeofSockaddrInet - sa.Family = syscall.AF_INET - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_linux.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_linux.go deleted file mode 100644 index 60defe13..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_linux.go +++ /dev/null @@ -1,59 +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 ipv4 - -import ( - "net" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_TTL, 1, marshalTTL, parseTTL}, - ctlPacketInfo: {sysIP_PKTINFO, sizeofInetPktinfo, marshalPacketInfo, parsePacketInfo}, - } - - sockOpts = map[int]*sockOpt{ - ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, - ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, - ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, - ssoPacketInfo: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_PKTINFO, Len: 4}}, - ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolReserved, Name: sysICMP_FILTER, Len: sizeofICMPFilter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoAttachFilter: {Option: socket.Option{Level: sysSOL_SOCKET, Name: sysSO_ATTACH_FILTER, Len: sizeofSockFprog}}, - } -) - -func (pi *inetPktinfo) setIfindex(i int) { - pi.Ifindex = int32(i) -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(&gr.Group)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(&gsr.Group)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) - sa = (*sockaddrInet)(unsafe.Pointer(&gsr.Source)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_solaris.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_solaris.go deleted file mode 100644 index 832fef1e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_solaris.go +++ /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. - -package ipv4 - -import ( - "net" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 4, marshalTTL, parseTTL}, - ctlPacketInfo: {sysIP_PKTINFO, sizeofInetPktinfo, marshalPacketInfo, parsePacketInfo}, - } - - sockOpts = map[int]sockOpt{ - ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, - ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, - ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 1}}, - ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, - ssoPacketInfo: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}}, - ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - } -) - -func (pi *inetPktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(uintptr(unsafe.Pointer(gr)) + 4)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 4)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], grp) - sa = (*sockaddrInet)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 260)) - sa.Family = syscall.AF_INET - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_ssmreq.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_ssmreq.go deleted file mode 100644 index ae5704e7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_ssmreq.go +++ /dev/null @@ -1,54 +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. - -// +build darwin freebsd linux solaris - -package ipv4 - -import ( - "net" - "unsafe" - - "golang.org/x/net/internal/socket" -) - -var freebsd32o64 bool - -func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - var gr groupReq - if ifi != nil { - gr.Interface = uint32(ifi.Index) - } - gr.setGroup(grp) - var b []byte - if freebsd32o64 { - var d [sizeofGroupReq + 4]byte - s := (*[sizeofGroupReq]byte)(unsafe.Pointer(&gr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - b = d[:] - } else { - b = (*[sizeofGroupReq]byte)(unsafe.Pointer(&gr))[:sizeofGroupReq] - } - return so.Set(c, b) -} - -func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - var gsr groupSourceReq - if ifi != nil { - gsr.Interface = uint32(ifi.Index) - } - gsr.setSourceGroup(grp, src) - var b []byte - if freebsd32o64 { - var d [sizeofGroupSourceReq + 4]byte - s := (*[sizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - b = d[:] - } else { - b = (*[sizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr))[:sizeofGroupSourceReq] - } - return so.Set(c, b) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go deleted file mode 100644 index e6b7623d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go +++ /dev/null @@ -1,21 +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. - -// +build !darwin,!freebsd,!linux,!solaris - -package ipv4 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_stub.go deleted file mode 100644 index 4f076473..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_stub.go +++ /dev/null @@ -1,13 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv4 - -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = map[int]*sockOpt{} -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_windows.go deleted file mode 100644 index b0913d53..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/sys_windows.go +++ /dev/null @@ -1,67 +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 ipv4 - -import ( - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -const ( - // See ws2tcpip.h. - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_DONTFRAGMENT = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0xf - sysIP_DROP_SOURCE_MEMBERSHIP = 0x10 - sysIP_PKTINFO = 0x13 - - sizeofInetPktinfo = 0x8 - sizeofIPMreq = 0x8 - sizeofIPMreqSource = 0xc -) - -type inetPktinfo struct { - Addr [4]byte - Ifindex int32 -} - -type ipMreq struct { - Multiaddr [4]byte - Interface [4]byte -} - -type ipMreqSource struct { - Multiaddr [4]byte - Sourceaddr [4]byte - Interface [4]byte -} - -// See http://msdn.microsoft.com/en-us/library/windows/desktop/ms738586(v=vs.85).aspx -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = map[int]*sockOpt{ - ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, - ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, - ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}}, - ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - } -) - -func (pi *inetPktinfo) setIfindex(i int) { - pi.Ifindex = int32(i) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_darwin.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_darwin.go deleted file mode 100644 index c07cc883..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_darwin.go +++ /dev/null @@ -1,99 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_STRIPHDR = 0x17 - sysIP_RECVTTL = 0x18 - sysIP_BOUND_IF = 0x19 - sysIP_PKTINFO = 0x1a - sysIP_RECVPKTINFO = 0x1a - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_MULTICAST_IFINDEX = 0x42 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type inetPktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -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 ipMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [128]byte -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [128]byte - Pad_cgo_1 [128]byte -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go deleted file mode 100644 index c4365e9e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_dragonfly.go +++ /dev/null @@ -1,31 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_dragonfly.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_RECVTTL = 0x41 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - - sizeofIPMreq = 0x8 -) - -type ipMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go deleted file mode 100644 index 8c4aec94..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_386.go +++ /dev/null @@ -1,93 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_SENDSRCADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_ONESBCAST = 0x17 - sysIP_BINDANY = 0x18 - sysIP_RECVTTL = 0x41 - sysIP_MINTTL = 0x42 - sysIP_DONTFRAG = 0x43 - sysIP_RECVTOS = 0x44 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -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 ipMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type groupReq struct { - Interface uint32 - Group sockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group sockaddrStorage - Source sockaddrStorage -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go deleted file mode 100644 index 4b10b7c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_amd64.go +++ /dev/null @@ -1,95 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_SENDSRCADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_ONESBCAST = 0x17 - sysIP_BINDANY = 0x18 - sysIP_RECVTTL = 0x41 - sysIP_MINTTL = 0x42 - sysIP_DONTFRAG = 0x43 - sysIP_RECVTOS = 0x44 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -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 ipMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage - Source sockaddrStorage -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go deleted file mode 100644 index 4b10b7c5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_freebsd_arm.go +++ /dev/null @@ -1,95 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_SENDSRCADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_ONESBCAST = 0x17 - sysIP_BINDANY = 0x18 - sysIP_RECVTTL = 0x41 - sysIP_MINTTL = 0x42 - sysIP_DONTFRAG = 0x43 - sysIP_RECVTOS = 0x44 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - sysIP_MULTICAST_VIF = 0xe - sysIP_ADD_SOURCE_MEMBERSHIP = 0x46 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x47 - sysIP_BLOCK_SOURCE = 0x48 - sysIP_UNBLOCK_SOURCE = 0x49 - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet struct { - Len uint8 - Family uint8 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -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 ipMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage - Source sockaddrStorage -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_386.go deleted file mode 100644 index c0260f0c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_386.go +++ /dev/null @@ -1,148 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go deleted file mode 100644 index 9c967eaa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_amd64.go +++ /dev/null @@ -1,150 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go deleted file mode 100644 index c0260f0c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_arm.go +++ /dev/null @@ -1,148 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go deleted file mode 100644 index 9c967eaa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_arm64.go +++ /dev/null @@ -1,150 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go deleted file mode 100644 index c0260f0c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips.go +++ /dev/null @@ -1,148 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go deleted file mode 100644 index 9c967eaa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips64.go +++ /dev/null @@ -1,150 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go deleted file mode 100644 index 9c967eaa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mips64le.go +++ /dev/null @@ -1,150 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go deleted file mode 100644 index c0260f0c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_mipsle.go +++ /dev/null @@ -1,148 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go deleted file mode 100644 index f65bd9a7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc.go +++ /dev/null @@ -1,148 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]uint8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go deleted file mode 100644 index 9c967eaa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64.go +++ /dev/null @@ -1,150 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go deleted file mode 100644 index 9c967eaa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_ppc64le.go +++ /dev/null @@ -1,150 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go deleted file mode 100644 index 9c967eaa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_linux_s390x.go +++ /dev/null @@ -1,150 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv4 - -const ( - sysIP_TOS = 0x1 - sysIP_TTL = 0x2 - sysIP_HDRINCL = 0x3 - sysIP_OPTIONS = 0x4 - sysIP_ROUTER_ALERT = 0x5 - sysIP_RECVOPTS = 0x6 - sysIP_RETOPTS = 0x7 - sysIP_PKTINFO = 0x8 - sysIP_PKTOPTIONS = 0x9 - sysIP_MTU_DISCOVER = 0xa - sysIP_RECVERR = 0xb - sysIP_RECVTTL = 0xc - sysIP_RECVTOS = 0xd - sysIP_MTU = 0xe - sysIP_FREEBIND = 0xf - sysIP_TRANSPARENT = 0x13 - sysIP_RECVRETOPTS = 0x7 - sysIP_ORIGDSTADDR = 0x14 - sysIP_RECVORIGDSTADDR = 0x14 - sysIP_MINTTL = 0x15 - sysIP_NODEFRAG = 0x16 - sysIP_UNICAST_IF = 0x32 - - sysIP_MULTICAST_IF = 0x20 - sysIP_MULTICAST_TTL = 0x21 - sysIP_MULTICAST_LOOP = 0x22 - sysIP_ADD_MEMBERSHIP = 0x23 - sysIP_DROP_MEMBERSHIP = 0x24 - sysIP_UNBLOCK_SOURCE = 0x25 - sysIP_BLOCK_SOURCE = 0x26 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x27 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x28 - sysIP_MSFILTER = 0x29 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIP_MULTICAST_ALL = 0x31 - - sysICMP_FILTER = 0x1 - - sysSO_EE_ORIGIN_NONE = 0x0 - sysSO_EE_ORIGIN_LOCAL = 0x1 - sysSO_EE_ORIGIN_ICMP = 0x2 - sysSO_EE_ORIGIN_ICMP6 = 0x3 - sysSO_EE_ORIGIN_TXSTATUS = 0x4 - sysSO_EE_ORIGIN_TIMESTAMPING = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - sizeofSockExtendedErr = 0x10 - - sizeofIPMreq = 0x8 - sizeofIPMreqn = 0xc - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPFilter = 0x4 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - X__pad [8]uint8 -} - -type inetPktinfo struct { - Ifindex int32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type sockExtendedErr struct { - Errno uint32 - Origin uint8 - Type uint8 - Code uint8 - Pad uint8 - Info uint32 - Data 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 ipMreqSource struct { - Multiaddr uint32 - Interface uint32 - Sourceaddr uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpFilter struct { - Data uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_netbsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_netbsd.go deleted file mode 100644 index fd3624d9..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_netbsd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_netbsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x14 - sysIP_RECVTTL = 0x17 - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - - sizeofIPMreq = 0x8 -) - -type ipMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_openbsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_openbsd.go deleted file mode 100644 index 12f36be7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_openbsd.go +++ /dev/null @@ -1,30 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_openbsd.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x1e - sysIP_RECVTTL = 0x1f - - sysIP_MULTICAST_IF = 0x9 - sysIP_MULTICAST_TTL = 0xa - sysIP_MULTICAST_LOOP = 0xb - sysIP_ADD_MEMBERSHIP = 0xc - sysIP_DROP_MEMBERSHIP = 0xd - - sizeofIPMreq = 0x8 -) - -type ipMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_solaris.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_solaris.go deleted file mode 100644 index 0a3875cc..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv4/zsys_solaris.go +++ /dev/null @@ -1,100 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_solaris.go - -package ipv4 - -const ( - sysIP_OPTIONS = 0x1 - sysIP_HDRINCL = 0x2 - sysIP_TOS = 0x3 - sysIP_TTL = 0x4 - sysIP_RECVOPTS = 0x5 - sysIP_RECVRETOPTS = 0x6 - sysIP_RECVDSTADDR = 0x7 - sysIP_RETOPTS = 0x8 - sysIP_RECVIF = 0x9 - sysIP_RECVSLLA = 0xa - sysIP_RECVTTL = 0xb - - sysIP_MULTICAST_IF = 0x10 - sysIP_MULTICAST_TTL = 0x11 - sysIP_MULTICAST_LOOP = 0x12 - sysIP_ADD_MEMBERSHIP = 0x13 - sysIP_DROP_MEMBERSHIP = 0x14 - sysIP_BLOCK_SOURCE = 0x15 - sysIP_UNBLOCK_SOURCE = 0x16 - sysIP_ADD_SOURCE_MEMBERSHIP = 0x17 - sysIP_DROP_SOURCE_MEMBERSHIP = 0x18 - sysIP_NEXTHOP = 0x19 - - sysIP_PKTINFO = 0x1a - sysIP_RECVPKTINFO = 0x1a - sysIP_DONTFRAG = 0x1b - - sysIP_BOUND_IF = 0x41 - sysIP_UNSPEC_SRC = 0x42 - sysIP_BROADCAST_TTL = 0x43 - sysIP_DHCPINIT_IF = 0x45 - - sysIP_REUSEADDR = 0x104 - sysIP_DONTROUTE = 0x105 - sysIP_BROADCAST = 0x106 - - sysMCAST_JOIN_GROUP = 0x29 - sysMCAST_LEAVE_GROUP = 0x2a - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_JOIN_SOURCE_GROUP = 0x2d - sysMCAST_LEAVE_SOURCE_GROUP = 0x2e - - sizeofSockaddrStorage = 0x100 - sizeofSockaddrInet = 0x10 - sizeofInetPktinfo = 0xc - - sizeofIPMreq = 0x8 - sizeofIPMreqSource = 0xc - sizeofGroupReq = 0x104 - sizeofGroupSourceReq = 0x204 -) - -type sockaddrStorage struct { - Family uint16 - X_ss_pad1 [6]int8 - X_ss_align float64 - X_ss_pad2 [240]int8 -} - -type sockaddrInet struct { - Family uint16 - Port uint16 - Addr [4]byte /* in_addr */ - Zero [8]int8 -} - -type inetPktinfo struct { - Ifindex uint32 - Spec_dst [4]byte /* in_addr */ - Addr [4]byte /* in_addr */ -} - -type ipMreq struct { - Multiaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type ipMreqSource struct { - Multiaddr [4]byte /* in_addr */ - Sourceaddr [4]byte /* in_addr */ - Interface [4]byte /* in_addr */ -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [256]byte -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [256]byte - Pad_cgo_1 [256]byte -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/batch.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/batch.go deleted file mode 100644 index 4f5fe683..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/batch.go +++ /dev/null @@ -1,119 +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. - -// +build go1.9 - -package ipv6 - -import ( - "net" - "runtime" - "syscall" - - "golang.org/x/net/internal/socket" -) - -// BUG(mikio): On Windows, the ReadBatch and WriteBatch methods of -// PacketConn are not implemented. - -// A Message represents an IO message. -// -// type Message struct { -// Buffers [][]byte -// OOB []byte -// Addr net.Addr -// N int -// NN int -// Flags int -// } -// -// The Buffers fields represents a list of contiguous buffers, which -// can be used for vectored IO, for example, putting a header and a -// payload in each slice. -// When writing, the Buffers field must contain at least one byte to -// write. -// When reading, the Buffers field will always contain a byte to read. -// -// The OOB field contains protocol-specific control or miscellaneous -// ancillary data known as out-of-band data. -// It can be nil when not required. -// -// The Addr field specifies a destination address when writing. -// It can be nil when the underlying protocol of the endpoint uses -// connection-oriented communication. -// After a successful read, it may contain the source address on the -// received packet. -// -// The N field indicates the number of bytes read or written from/to -// Buffers. -// -// The NN field indicates the number of bytes read or written from/to -// OOB. -// -// The Flags field contains protocol-specific information on the -// received message. -type Message = socket.Message - -// ReadBatch reads a batch of messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_PEEK. -// -// On a successful read it returns the number of messages received, up -// to len(ms). -// -// On Linux, a batch read will be optimized. -// On other platforms, this method will read only a single message. -func (c *payloadHandler) ReadBatch(ms []Message, flags int) (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - switch runtime.GOOS { - case "linux": - n, err := c.RecvMsgs([]socket.Message(ms), flags) - if err != nil { - err = &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - default: - n := 1 - err := c.RecvMsg(&ms[0], flags) - if err != nil { - n = 0 - err = &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - } -} - -// WriteBatch writes a batch of messages. -// -// The provided flags is a set of platform-dependent flags, such as -// syscall.MSG_DONTROUTE. -// -// It returns the number of messages written on a successful write. -// -// On Linux, a batch write will be optimized. -// On other platforms, this method will write only a single message. -func (c *payloadHandler) WriteBatch(ms []Message, flags int) (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - switch runtime.GOOS { - case "linux": - n, err := c.SendMsgs([]socket.Message(ms), flags) - if err != nil { - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - default: - n := 1 - err := c.SendMsg(&ms[0], flags) - if err != nil { - n = 0 - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - return n, err - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control.go deleted file mode 100644 index 2da64441..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control.go +++ /dev/null @@ -1,187 +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 ipv6 - -import ( - "fmt" - "net" - "sync" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -// Note that RFC 3542 obsoletes RFC 2292 but OS X Snow Leopard and the -// former still support RFC 2292 only. Please be aware that almost -// all protocol implementations prohibit using a combination of RFC -// 2292 and RFC 3542 for some practical reasons. - -type rawOpt struct { - sync.RWMutex - cflags ControlFlags -} - -func (c *rawOpt) set(f ControlFlags) { c.cflags |= f } -func (c *rawOpt) clear(f ControlFlags) { c.cflags &^= f } -func (c *rawOpt) isset(f ControlFlags) bool { return c.cflags&f != 0 } - -// A ControlFlags represents per packet basis IP-level socket option -// control flags. -type ControlFlags uint - -const ( - FlagTrafficClass ControlFlags = 1 << iota // pass the traffic class on the received packet - FlagHopLimit // pass the hop limit on the received packet - FlagSrc // pass the source address on the received packet - FlagDst // pass the destination address on the received packet - FlagInterface // pass the interface index on the received packet - FlagPathMTU // pass the path MTU on the received packet path -) - -const flagPacketInfo = FlagDst | FlagInterface - -// A ControlMessage represents per packet basis IP-level socket -// options. -type ControlMessage struct { - // Receiving socket options: SetControlMessage allows to - // receive the options from the protocol stack using ReadFrom - // method of PacketConn. - // - // Specifying socket options: ControlMessage for WriteTo - // method of PacketConn allows to send the options to the - // protocol stack. - // - TrafficClass int // traffic class, must be 1 <= value <= 255 when specifying - HopLimit int // hop limit, must be 1 <= value <= 255 when specifying - Src net.IP // source address, specifying only - Dst net.IP // destination address, receiving only - IfIndex int // interface index, must be 1 <= value when specifying - NextHop net.IP // next hop address, specifying only - MTU int // path MTU, receiving only -} - -func (cm *ControlMessage) String() string { - if cm == nil { - return "" - } - return fmt.Sprintf("tclass=%#x hoplim=%d src=%v dst=%v ifindex=%d nexthop=%v mtu=%d", cm.TrafficClass, cm.HopLimit, cm.Src, cm.Dst, cm.IfIndex, cm.NextHop, cm.MTU) -} - -// Marshal returns the binary encoding of cm. -func (cm *ControlMessage) Marshal() []byte { - if cm == nil { - return nil - } - var l int - tclass := false - if ctlOpts[ctlTrafficClass].name > 0 && cm.TrafficClass > 0 { - tclass = true - l += socket.ControlMessageSpace(ctlOpts[ctlTrafficClass].length) - } - hoplimit := false - if ctlOpts[ctlHopLimit].name > 0 && cm.HopLimit > 0 { - hoplimit = true - l += socket.ControlMessageSpace(ctlOpts[ctlHopLimit].length) - } - pktinfo := false - if ctlOpts[ctlPacketInfo].name > 0 && (cm.Src.To16() != nil && cm.Src.To4() == nil || cm.IfIndex > 0) { - pktinfo = true - l += socket.ControlMessageSpace(ctlOpts[ctlPacketInfo].length) - } - nexthop := false - if ctlOpts[ctlNextHop].name > 0 && cm.NextHop.To16() != nil && cm.NextHop.To4() == nil { - nexthop = true - l += socket.ControlMessageSpace(ctlOpts[ctlNextHop].length) - } - var b []byte - if l > 0 { - b = make([]byte, l) - bb := b - if tclass { - bb = ctlOpts[ctlTrafficClass].marshal(bb, cm) - } - if hoplimit { - bb = ctlOpts[ctlHopLimit].marshal(bb, cm) - } - if pktinfo { - bb = ctlOpts[ctlPacketInfo].marshal(bb, cm) - } - if nexthop { - bb = ctlOpts[ctlNextHop].marshal(bb, cm) - } - } - return b -} - -// Parse parses b as a control message and stores the result in cm. -func (cm *ControlMessage) Parse(b []byte) error { - ms, err := socket.ControlMessage(b).Parse() - if err != nil { - return err - } - for _, m := range ms { - lvl, typ, l, err := m.ParseHeader() - if err != nil { - return err - } - if lvl != iana.ProtocolIPv6 { - continue - } - switch { - case typ == ctlOpts[ctlTrafficClass].name && l >= ctlOpts[ctlTrafficClass].length: - ctlOpts[ctlTrafficClass].parse(cm, m.Data(l)) - case typ == ctlOpts[ctlHopLimit].name && l >= ctlOpts[ctlHopLimit].length: - ctlOpts[ctlHopLimit].parse(cm, m.Data(l)) - case typ == ctlOpts[ctlPacketInfo].name && l >= ctlOpts[ctlPacketInfo].length: - ctlOpts[ctlPacketInfo].parse(cm, m.Data(l)) - case typ == ctlOpts[ctlPathMTU].name && l >= ctlOpts[ctlPathMTU].length: - ctlOpts[ctlPathMTU].parse(cm, m.Data(l)) - } - } - return nil -} - -// NewControlMessage returns a new control message. -// -// The returned message is large enough for options specified by cf. -func NewControlMessage(cf ControlFlags) []byte { - opt := rawOpt{cflags: cf} - var l int - if opt.isset(FlagTrafficClass) && ctlOpts[ctlTrafficClass].name > 0 { - l += socket.ControlMessageSpace(ctlOpts[ctlTrafficClass].length) - } - if opt.isset(FlagHopLimit) && ctlOpts[ctlHopLimit].name > 0 { - l += socket.ControlMessageSpace(ctlOpts[ctlHopLimit].length) - } - if opt.isset(flagPacketInfo) && ctlOpts[ctlPacketInfo].name > 0 { - l += socket.ControlMessageSpace(ctlOpts[ctlPacketInfo].length) - } - if opt.isset(FlagPathMTU) && ctlOpts[ctlPathMTU].name > 0 { - l += socket.ControlMessageSpace(ctlOpts[ctlPathMTU].length) - } - var b []byte - if l > 0 { - b = make([]byte, l) - } - return b -} - -// Ancillary data socket options -const ( - ctlTrafficClass = iota // header field - ctlHopLimit // header field - ctlPacketInfo // inbound or outbound packet path - ctlNextHop // nexthop - ctlPathMTU // path mtu - ctlMax -) - -// A ctlOpt represents a binding for ancillary data socket option. -type ctlOpt struct { - name int // option name, must be equal or greater than 1 - length int // option length - marshal func([]byte, *ControlMessage) []byte - parse func(*ControlMessage, []byte) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_rfc2292_unix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_rfc2292_unix.go deleted file mode 100644 index 9fd9eb15..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_rfc2292_unix.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. - -// +build darwin - -package ipv6 - -import ( - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -func marshal2292HopLimit(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_2292HOPLIMIT, 4) - if cm != nil { - socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.HopLimit)) - } - return m.Next(4) -} - -func marshal2292PacketInfo(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_2292PKTINFO, sizeofInet6Pktinfo) - if cm != nil { - pi := (*inet6Pktinfo)(unsafe.Pointer(&m.Data(sizeofInet6Pktinfo)[0])) - if ip := cm.Src.To16(); ip != nil && ip.To4() == nil { - copy(pi.Addr[:], ip) - } - if cm.IfIndex > 0 { - pi.setIfindex(cm.IfIndex) - } - } - return m.Next(sizeofInet6Pktinfo) -} - -func marshal2292NextHop(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_2292NEXTHOP, sizeofSockaddrInet6) - if cm != nil { - sa := (*sockaddrInet6)(unsafe.Pointer(&m.Data(sizeofSockaddrInet6)[0])) - sa.setSockaddr(cm.NextHop, cm.IfIndex) - } - return m.Next(sizeofSockaddrInet6) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go deleted file mode 100644 index eec529c2..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_rfc3542_unix.go +++ /dev/null @@ -1,94 +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. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package ipv6 - -import ( - "net" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -func marshalTrafficClass(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_TCLASS, 4) - if cm != nil { - socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.TrafficClass)) - } - return m.Next(4) -} - -func parseTrafficClass(cm *ControlMessage, b []byte) { - cm.TrafficClass = int(socket.NativeEndian.Uint32(b[:4])) -} - -func marshalHopLimit(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_HOPLIMIT, 4) - if cm != nil { - socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.HopLimit)) - } - return m.Next(4) -} - -func parseHopLimit(cm *ControlMessage, b []byte) { - cm.HopLimit = int(socket.NativeEndian.Uint32(b[:4])) -} - -func marshalPacketInfo(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_PKTINFO, sizeofInet6Pktinfo) - if cm != nil { - pi := (*inet6Pktinfo)(unsafe.Pointer(&m.Data(sizeofInet6Pktinfo)[0])) - if ip := cm.Src.To16(); ip != nil && ip.To4() == nil { - copy(pi.Addr[:], ip) - } - if cm.IfIndex > 0 { - pi.setIfindex(cm.IfIndex) - } - } - return m.Next(sizeofInet6Pktinfo) -} - -func parsePacketInfo(cm *ControlMessage, b []byte) { - pi := (*inet6Pktinfo)(unsafe.Pointer(&b[0])) - if len(cm.Dst) < net.IPv6len { - cm.Dst = make(net.IP, net.IPv6len) - } - copy(cm.Dst, pi.Addr[:]) - cm.IfIndex = int(pi.Ifindex) -} - -func marshalNextHop(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_NEXTHOP, sizeofSockaddrInet6) - if cm != nil { - sa := (*sockaddrInet6)(unsafe.Pointer(&m.Data(sizeofSockaddrInet6)[0])) - sa.setSockaddr(cm.NextHop, cm.IfIndex) - } - return m.Next(sizeofSockaddrInet6) -} - -func parseNextHop(cm *ControlMessage, b []byte) { -} - -func marshalPathMTU(b []byte, cm *ControlMessage) []byte { - m := socket.ControlMessage(b) - m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_PATHMTU, sizeofIPv6Mtuinfo) - return m.Next(sizeofIPv6Mtuinfo) -} - -func parsePathMTU(cm *ControlMessage, b []byte) { - mi := (*ipv6Mtuinfo)(unsafe.Pointer(&b[0])) - if len(cm.Dst) < net.IPv6len { - cm.Dst = make(net.IP, net.IPv6len) - } - copy(cm.Dst, mi.Addr.Addr[:]) - cm.IfIndex = int(mi.Addr.Scope_id) - cm.MTU = int(mi.Mtu) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_stub.go deleted file mode 100644 index a045f28f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_stub.go +++ /dev/null @@ -1,13 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv6 - -import "golang.org/x/net/internal/socket" - -func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_unix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_unix.go deleted file mode 100644 index 66515060..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_unix.go +++ /dev/null @@ -1,55 +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. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package ipv6 - -import "golang.org/x/net/internal/socket" - -func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - opt.Lock() - defer opt.Unlock() - if so, ok := sockOpts[ssoReceiveTrafficClass]; ok && cf&FlagTrafficClass != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagTrafficClass) - } else { - opt.clear(FlagTrafficClass) - } - } - if so, ok := sockOpts[ssoReceiveHopLimit]; ok && cf&FlagHopLimit != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagHopLimit) - } else { - opt.clear(FlagHopLimit) - } - } - if so, ok := sockOpts[ssoReceivePacketInfo]; ok && cf&flagPacketInfo != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(cf & flagPacketInfo) - } else { - opt.clear(cf & flagPacketInfo) - } - } - if so, ok := sockOpts[ssoReceivePathMTU]; ok && cf&FlagPathMTU != 0 { - if err := so.SetInt(c, boolint(on)); err != nil { - return err - } - if on { - opt.set(FlagPathMTU) - } else { - opt.clear(FlagPathMTU) - } - } - return nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_windows.go deleted file mode 100644 index ef2563b3..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/control_windows.go +++ /dev/null @@ -1,16 +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 ipv6 - -import ( - "syscall" - - "golang.org/x/net/internal/socket" -) - -func setControlMessage(c *socket.Conn, opt *rawOpt, cf ControlFlags, on bool) error { - // TODO(mikio): implement this - return syscall.EWINDOWS -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/dgramopt.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/dgramopt.go deleted file mode 100644 index 703dafe8..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/dgramopt.go +++ /dev/null @@ -1,302 +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 ipv6 - -import ( - "net" - "syscall" - - "golang.org/x/net/bpf" -) - -// MulticastHopLimit returns the hop limit field value for outgoing -// multicast packets. -func (c *dgramOpt) MulticastHopLimit() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastHopLimit] - if !ok { - return 0, errOpNoSupport - } - return so.GetInt(c.Conn) -} - -// SetMulticastHopLimit sets the hop limit field value for future -// outgoing multicast packets. -func (c *dgramOpt) SetMulticastHopLimit(hoplim int) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastHopLimit] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, hoplim) -} - -// MulticastInterface returns the default interface for multicast -// packet transmissions. -func (c *dgramOpt) MulticastInterface() (*net.Interface, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastInterface] - if !ok { - return nil, errOpNoSupport - } - return so.getMulticastInterface(c.Conn) -} - -// SetMulticastInterface sets the default interface for future -// multicast packet transmissions. -func (c *dgramOpt) SetMulticastInterface(ifi *net.Interface) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastInterface] - if !ok { - return errOpNoSupport - } - return so.setMulticastInterface(c.Conn, ifi) -} - -// MulticastLoopback reports whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) MulticastLoopback() (bool, error) { - if !c.ok() { - return false, syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastLoopback] - if !ok { - return false, errOpNoSupport - } - on, err := so.GetInt(c.Conn) - if err != nil { - return false, err - } - return on == 1, nil -} - -// SetMulticastLoopback sets whether transmitted multicast packets -// should be copied and send back to the originator. -func (c *dgramOpt) SetMulticastLoopback(on bool) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoMulticastLoopback] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, boolint(on)) -} - -// JoinGroup joins the group address group on the interface ifi. -// By default all sources that can cast data to group are accepted. -// It's possible to mute and unmute data transmission from a specific -// source by using ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup. -// JoinGroup uses the system assigned multicast interface when ifi is -// nil, although this is not recommended because the assignment -// depends on platforms and sometimes it might require routing -// configuration. -func (c *dgramOpt) JoinGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoJoinGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - return so.setGroup(c.Conn, ifi, grp) -} - -// LeaveGroup leaves the group address group on the interface ifi -// regardless of whether the group is any-source group or -// source-specific group. -func (c *dgramOpt) LeaveGroup(ifi *net.Interface, group net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoLeaveGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - return so.setGroup(c.Conn, ifi, grp) -} - -// JoinSourceSpecificGroup joins the source-specific group comprising -// group and source on the interface ifi. -// JoinSourceSpecificGroup uses the system assigned multicast -// interface when ifi is nil, although this is not recommended because -// the assignment depends on platforms and sometimes it might require -// routing configuration. -func (c *dgramOpt) JoinSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoJoinSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// LeaveSourceSpecificGroup leaves the source-specific group on the -// interface ifi. -func (c *dgramOpt) LeaveSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoLeaveSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// ExcludeSourceSpecificGroup excludes the source-specific group from -// the already joined any-source groups by JoinGroup on the interface -// ifi. -func (c *dgramOpt) ExcludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoBlockSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// IncludeSourceSpecificGroup includes the excluded source-specific -// group by ExcludeSourceSpecificGroup again on the interface ifi. -func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source net.Addr) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoUnblockSourceGroup] - if !ok { - return errOpNoSupport - } - grp := netAddrToIP16(group) - if grp == nil { - return errMissingAddress - } - src := netAddrToIP16(source) - if src == nil { - return errMissingAddress - } - return so.setSourceGroup(c.Conn, ifi, grp, src) -} - -// Checksum reports whether the kernel will compute, store or verify a -// checksum for both incoming and outgoing packets. If on is true, it -// returns an offset in bytes into the data of where the checksum -// field is located. -func (c *dgramOpt) Checksum() (on bool, offset int, err error) { - if !c.ok() { - return false, 0, syscall.EINVAL - } - so, ok := sockOpts[ssoChecksum] - if !ok { - return false, 0, errOpNoSupport - } - offset, err = so.GetInt(c.Conn) - if err != nil { - return false, 0, err - } - if offset < 0 { - return false, 0, nil - } - return true, offset, nil -} - -// SetChecksum enables the kernel checksum processing. If on is ture, -// the offset should be an offset in bytes into the data of where the -// checksum field is located. -func (c *dgramOpt) SetChecksum(on bool, offset int) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoChecksum] - if !ok { - return errOpNoSupport - } - if !on { - offset = -1 - } - return so.SetInt(c.Conn, offset) -} - -// ICMPFilter returns an ICMP filter. -func (c *dgramOpt) ICMPFilter() (*ICMPFilter, error) { - if !c.ok() { - return nil, syscall.EINVAL - } - so, ok := sockOpts[ssoICMPFilter] - if !ok { - return nil, errOpNoSupport - } - return so.getICMPFilter(c.Conn) -} - -// SetICMPFilter deploys the ICMP filter. -func (c *dgramOpt) SetICMPFilter(f *ICMPFilter) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoICMPFilter] - if !ok { - return errOpNoSupport - } - return so.setICMPFilter(c.Conn, f) -} - -// SetBPF attaches a BPF program to the connection. -// -// Only supported on Linux. -func (c *dgramOpt) SetBPF(filter []bpf.RawInstruction) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoAttachFilter] - if !ok { - return errOpNoSupport - } - return so.setBPF(c.Conn, filter) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/doc.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/doc.go deleted file mode 100644 index 664a97de..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/doc.go +++ /dev/null @@ -1,243 +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 ipv6 implements IP-level socket options for the Internet -// Protocol version 6. -// -// The package provides IP-level socket options that allow -// manipulation of IPv6 facilities. -// -// The IPv6 protocol is defined in RFC 8200. -// Socket interface extensions are defined in RFC 3493, RFC 3542 and -// RFC 3678. -// MLDv1 and MLDv2 are defined in RFC 2710 and RFC 3810. -// Source-specific multicast is defined in RFC 4607. -// -// On Darwin, this package requires OS X Mavericks version 10.9 or -// above, or equivalent. -// -// -// Unicasting -// -// The options for unicasting are available for net.TCPConn, -// net.UDPConn and net.IPConn which are created as network connections -// that use the IPv6 transport. When a single TCP connection carrying -// a data flow of multiple packets needs to indicate the flow is -// important, Conn is used to set the traffic class field on the IPv6 -// header for each packet. -// -// ln, err := net.Listen("tcp6", "[::]:1024") -// if err != nil { -// // error handling -// } -// defer ln.Close() -// for { -// c, err := ln.Accept() -// if err != nil { -// // error handling -// } -// go func(c net.Conn) { -// defer c.Close() -// -// The outgoing packets will be labeled DiffServ assured forwarding -// class 1 low drop precedence, known as AF11 packets. -// -// if err := ipv6.NewConn(c).SetTrafficClass(0x28); err != nil { -// // error handling -// } -// if _, err := c.Write(data); err != nil { -// // error handling -// } -// }(c) -// } -// -// -// Multicasting -// -// The options for multicasting are available for net.UDPConn and -// net.IPconn which are created as network connections that use the -// IPv6 transport. A few network facilities must be prepared before -// you begin multicasting, at a minimum joining network interfaces and -// multicast groups. -// -// en0, err := net.InterfaceByName("en0") -// if err != nil { -// // error handling -// } -// en1, err := net.InterfaceByIndex(911) -// if err != nil { -// // error handling -// } -// group := net.ParseIP("ff02::114") -// -// First, an application listens to an appropriate address with an -// appropriate service port. -// -// c, err := net.ListenPacket("udp6", "[::]:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// -// Second, the application joins multicast groups, starts listening to -// the groups on the specified network interfaces. Note that the -// service port for transport layer protocol does not matter with this -// operation as joining groups affects only network and link layer -// protocols, such as IPv6 and Ethernet. -// -// p := ipv6.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: group}); err != nil { -// // error handling -// } -// -// The application might set per packet control message transmissions -// between the protocol stack within the kernel. When the application -// needs a destination address on an incoming packet, -// SetControlMessage of PacketConn is used to enable control message -// transmissions. -// -// if err := p.SetControlMessage(ipv6.FlagDst, true); err != nil { -// // error handling -// } -// -// The application could identify whether the received packets are -// of interest by using the control message that contains the -// destination address of the received packet. -// -// b := make([]byte, 1500) -// for { -// n, rcm, src, err := p.ReadFrom(b) -// if err != nil { -// // error handling -// } -// if rcm.Dst.IsMulticast() { -// if rcm.Dst.Equal(group) { -// // joined group, do something -// } else { -// // unknown group, discard -// continue -// } -// } -// -// The application can also send both unicast and multicast packets. -// -// p.SetTrafficClass(0x0) -// p.SetHopLimit(16) -// if _, err := p.WriteTo(data[:n], nil, src); err != nil { -// // error handling -// } -// dst := &net.UDPAddr{IP: group, Port: 1024} -// wcm := ipv6.ControlMessage{TrafficClass: 0xe0, HopLimit: 1} -// for _, ifi := range []*net.Interface{en0, en1} { -// wcm.IfIndex = ifi.Index -// if _, err := p.WriteTo(data[:n], &wcm, dst); err != nil { -// // error handling -// } -// } -// } -// -// -// More multicasting -// -// An application that uses PacketConn may join multiple multicast -// groups. For example, a UDP listener with port 1024 might join two -// different groups across over two different network interfaces by -// using: -// -// c, err := net.ListenPacket("udp6", "[::]:1024") -// if err != nil { -// // error handling -// } -// defer c.Close() -// p := ipv6.NewPacketConn(c) -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::1:114")}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::2:114")}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en1, &net.UDPAddr{IP: net.ParseIP("ff02::2:114")}); err != nil { -// // error handling -// } -// -// It is possible for multiple UDP listeners that listen on the same -// UDP port to join the same multicast group. The net package will -// provide a socket that listens to a wildcard address with reusable -// UDP port when an appropriate multicast address prefix is passed to -// the net.ListenPacket or net.ListenUDP. -// -// c1, err := net.ListenPacket("udp6", "[ff02::]:1024") -// if err != nil { -// // error handling -// } -// defer c1.Close() -// c2, err := net.ListenPacket("udp6", "[ff02::]:1024") -// if err != nil { -// // error handling -// } -// defer c2.Close() -// p1 := ipv6.NewPacketConn(c1) -// if err := p1.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil { -// // error handling -// } -// p2 := ipv6.NewPacketConn(c2) -// if err := p2.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil { -// // error handling -// } -// -// Also it is possible for the application to leave or rejoin a -// multicast group on the network interface. -// -// if err := p.LeaveGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff02::114")}); err != nil { -// // error handling -// } -// if err := p.JoinGroup(en0, &net.UDPAddr{IP: net.ParseIP("ff01::114")}); err != nil { -// // error handling -// } -// -// -// Source-specific multicasting -// -// An application that uses PacketConn on MLDv2 supported platform is -// able to join source-specific multicast groups. -// The application may use JoinSourceSpecificGroup and -// LeaveSourceSpecificGroup for the operation known as "include" mode, -// -// ssmgroup := net.UDPAddr{IP: net.ParseIP("ff32::8000:9")} -// ssmsource := net.UDPAddr{IP: net.ParseIP("fe80::cafe")} -// if err := p.JoinSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// if err := p.LeaveSourceSpecificGroup(en0, &ssmgroup, &ssmsource); err != nil { -// // error handling -// } -// -// or JoinGroup, ExcludeSourceSpecificGroup, -// IncludeSourceSpecificGroup and LeaveGroup for the operation known -// as "exclude" mode. -// -// exclsource := net.UDPAddr{IP: net.ParseIP("fe80::dead")} -// if err := p.JoinGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// if err := p.ExcludeSourceSpecificGroup(en0, &ssmgroup, &exclsource); err != nil { -// // error handling -// } -// if err := p.LeaveGroup(en0, &ssmgroup); err != nil { -// // error handling -// } -// -// Note that it depends on each platform implementation what happens -// when an application which runs on MLDv2 unsupported platform uses -// JoinSourceSpecificGroup and LeaveSourceSpecificGroup. -// In general the platform tries to fall back to conversations using -// MLDv1 and starts to listen to multicast traffic. -// In the fallback case, ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup may return an error. -package ipv6 // import "golang.org/x/net/ipv6" - -// BUG(mikio): This package is not implemented on NaCl and Plan 9. diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/endpoint.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/endpoint.go deleted file mode 100644 index 0624c174..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/endpoint.go +++ /dev/null @@ -1,128 +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 ipv6 - -import ( - "net" - "syscall" - "time" - - "golang.org/x/net/internal/socket" -) - -// BUG(mikio): On Windows, the JoinSourceSpecificGroup, -// LeaveSourceSpecificGroup, ExcludeSourceSpecificGroup and -// IncludeSourceSpecificGroup methods of PacketConn are not -// implemented. - -// A Conn represents a network endpoint that uses IPv6 transport. -// It allows to set basic IP-level socket options such as traffic -// class and hop limit. -type Conn struct { - genericOpt -} - -type genericOpt struct { - *socket.Conn -} - -func (c *genericOpt) ok() bool { return c != nil && c.Conn != nil } - -// PathMTU returns a path MTU value for the destination associated -// with the endpoint. -func (c *Conn) PathMTU() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - so, ok := sockOpts[ssoPathMTU] - if !ok { - return 0, errOpNoSupport - } - _, mtu, err := so.getMTUInfo(c.Conn) - if err != nil { - return 0, err - } - return mtu, nil -} - -// NewConn returns a new Conn. -func NewConn(c net.Conn) *Conn { - cc, _ := socket.NewConn(c) - return &Conn{ - genericOpt: genericOpt{Conn: cc}, - } -} - -// A PacketConn represents a packet network endpoint that uses IPv6 -// transport. It is used to control several IP-level socket options -// including IPv6 header manipulation. It also provides datagram -// based network I/O methods specific to the IPv6 and higher layer -// protocols such as OSPF, GRE, and UDP. -type PacketConn struct { - genericOpt - dgramOpt - payloadHandler -} - -type dgramOpt struct { - *socket.Conn -} - -func (c *dgramOpt) ok() bool { return c != nil && c.Conn != nil } - -// SetControlMessage allows to receive the per packet basis IP-level -// socket options. -func (c *PacketConn) SetControlMessage(cf ControlFlags, on bool) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return setControlMessage(c.dgramOpt.Conn, &c.payloadHandler.rawOpt, cf, on) -} - -// SetDeadline sets the read and write deadlines associated with the -// endpoint. -func (c *PacketConn) SetDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.SetDeadline(t) -} - -// SetReadDeadline sets the read deadline associated with the -// endpoint. -func (c *PacketConn) SetReadDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.SetReadDeadline(t) -} - -// SetWriteDeadline sets the write deadline associated with the -// endpoint. -func (c *PacketConn) SetWriteDeadline(t time.Time) error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.SetWriteDeadline(t) -} - -// Close closes the endpoint. -func (c *PacketConn) Close() error { - if !c.payloadHandler.ok() { - return syscall.EINVAL - } - return c.payloadHandler.Close() -} - -// NewPacketConn returns a new PacketConn using c as its underlying -// transport. -func NewPacketConn(c net.PacketConn) *PacketConn { - cc, _ := socket.NewConn(c.(net.Conn)) - return &PacketConn{ - genericOpt: genericOpt{Conn: cc}, - dgramOpt: dgramOpt{Conn: cc}, - payloadHandler: payloadHandler{PacketConn: c, Conn: cc}, - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/genericopt.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/genericopt.go deleted file mode 100644 index e9dbc2e1..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/genericopt.go +++ /dev/null @@ -1,58 +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 ipv6 - -import "syscall" - -// TrafficClass returns the traffic class field value for outgoing -// packets. -func (c *genericOpt) TrafficClass() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - so, ok := sockOpts[ssoTrafficClass] - if !ok { - return 0, errOpNoSupport - } - return so.GetInt(c.Conn) -} - -// SetTrafficClass sets the traffic class field value for future -// outgoing packets. -func (c *genericOpt) SetTrafficClass(tclass int) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoTrafficClass] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, tclass) -} - -// HopLimit returns the hop limit field value for outgoing packets. -func (c *genericOpt) HopLimit() (int, error) { - if !c.ok() { - return 0, syscall.EINVAL - } - so, ok := sockOpts[ssoHopLimit] - if !ok { - return 0, errOpNoSupport - } - return so.GetInt(c.Conn) -} - -// SetHopLimit sets the hop limit field value for future outgoing -// packets. -func (c *genericOpt) SetHopLimit(hoplim int) error { - if !c.ok() { - return syscall.EINVAL - } - so, ok := sockOpts[ssoHopLimit] - if !ok { - return errOpNoSupport - } - return so.SetInt(c.Conn, hoplim) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/header.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/header.go deleted file mode 100644 index e05cb08b..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/header.go +++ /dev/null @@ -1,55 +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 ipv6 - -import ( - "encoding/binary" - "fmt" - "net" -) - -const ( - Version = 6 // protocol version - HeaderLen = 40 // header length -) - -// A Header represents an IPv6 base header. -type Header struct { - Version int // protocol version - TrafficClass int // traffic class - FlowLabel int // flow label - PayloadLen int // payload length - NextHeader int // next header - HopLimit int // hop limit - Src net.IP // source address - Dst net.IP // destination address -} - -func (h *Header) String() string { - if h == nil { - return "" - } - return fmt.Sprintf("ver=%d tclass=%#x flowlbl=%#x payloadlen=%d nxthdr=%d hoplim=%d src=%v dst=%v", h.Version, h.TrafficClass, h.FlowLabel, h.PayloadLen, h.NextHeader, h.HopLimit, h.Src, h.Dst) -} - -// ParseHeader parses b as an IPv6 base header. -func ParseHeader(b []byte) (*Header, error) { - if len(b) < HeaderLen { - return nil, errHeaderTooShort - } - h := &Header{ - Version: int(b[0]) >> 4, - TrafficClass: int(b[0]&0x0f)<<4 | int(b[1])>>4, - FlowLabel: int(b[1]&0x0f)<<16 | int(b[2])<<8 | int(b[3]), - PayloadLen: int(binary.BigEndian.Uint16(b[4:6])), - NextHeader: int(b[6]), - HopLimit: int(b[7]), - } - h.Src = make(net.IP, net.IPv6len) - copy(h.Src, b[8:24]) - h.Dst = make(net.IP, net.IPv6len) - copy(h.Dst, b[24:40]) - return h, nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/helper.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/helper.go deleted file mode 100644 index 25974013..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/helper.go +++ /dev/null @@ -1,57 +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 ipv6 - -import ( - "errors" - "net" -) - -var ( - errMissingAddress = errors.New("missing address") - errHeaderTooShort = errors.New("header too short") - errInvalidConnType = errors.New("invalid conn type") - errOpNoSupport = errors.New("operation not supported") - errNoSuchInterface = errors.New("no such interface") -) - -func boolint(b bool) int { - if b { - return 1 - } - return 0 -} - -func netAddrToIP16(a net.Addr) net.IP { - switch v := a.(type) { - case *net.UDPAddr: - if ip := v.IP.To16(); ip != nil && ip.To4() == nil { - return ip - } - case *net.IPAddr: - if ip := v.IP.To16(); ip != nil && ip.To4() == nil { - return ip - } - } - return nil -} - -func opAddr(a net.Addr) net.Addr { - switch a.(type) { - case *net.TCPAddr: - if a == nil { - return nil - } - case *net.UDPAddr: - if a == nil { - return nil - } - case *net.IPAddr: - if a == nil { - return nil - } - } - return a -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/iana.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/iana.go deleted file mode 100644 index 3c6214fb..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/iana.go +++ /dev/null @@ -1,82 +0,0 @@ -// go generate gen.go -// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package ipv6 - -// Internet Control Message Protocol version 6 (ICMPv6) Parameters, Updated: 2015-07-07 -const ( - ICMPTypeDestinationUnreachable ICMPType = 1 // Destination Unreachable - ICMPTypePacketTooBig ICMPType = 2 // Packet Too Big - ICMPTypeTimeExceeded ICMPType = 3 // Time Exceeded - ICMPTypeParameterProblem ICMPType = 4 // Parameter Problem - ICMPTypeEchoRequest ICMPType = 128 // Echo Request - ICMPTypeEchoReply ICMPType = 129 // Echo Reply - ICMPTypeMulticastListenerQuery ICMPType = 130 // Multicast Listener Query - ICMPTypeMulticastListenerReport ICMPType = 131 // Multicast Listener Report - ICMPTypeMulticastListenerDone ICMPType = 132 // Multicast Listener Done - ICMPTypeRouterSolicitation ICMPType = 133 // Router Solicitation - ICMPTypeRouterAdvertisement ICMPType = 134 // Router Advertisement - ICMPTypeNeighborSolicitation ICMPType = 135 // Neighbor Solicitation - ICMPTypeNeighborAdvertisement ICMPType = 136 // Neighbor Advertisement - ICMPTypeRedirect ICMPType = 137 // Redirect Message - ICMPTypeRouterRenumbering ICMPType = 138 // Router Renumbering - ICMPTypeNodeInformationQuery ICMPType = 139 // ICMP Node Information Query - ICMPTypeNodeInformationResponse ICMPType = 140 // ICMP Node Information Response - ICMPTypeInverseNeighborDiscoverySolicitation ICMPType = 141 // Inverse Neighbor Discovery Solicitation Message - ICMPTypeInverseNeighborDiscoveryAdvertisement ICMPType = 142 // Inverse Neighbor Discovery Advertisement Message - ICMPTypeVersion2MulticastListenerReport ICMPType = 143 // Version 2 Multicast Listener Report - ICMPTypeHomeAgentAddressDiscoveryRequest ICMPType = 144 // Home Agent Address Discovery Request Message - ICMPTypeHomeAgentAddressDiscoveryReply ICMPType = 145 // Home Agent Address Discovery Reply Message - ICMPTypeMobilePrefixSolicitation ICMPType = 146 // Mobile Prefix Solicitation - ICMPTypeMobilePrefixAdvertisement ICMPType = 147 // Mobile Prefix Advertisement - ICMPTypeCertificationPathSolicitation ICMPType = 148 // Certification Path Solicitation Message - ICMPTypeCertificationPathAdvertisement ICMPType = 149 // Certification Path Advertisement Message - ICMPTypeMulticastRouterAdvertisement ICMPType = 151 // Multicast Router Advertisement - ICMPTypeMulticastRouterSolicitation ICMPType = 152 // Multicast Router Solicitation - ICMPTypeMulticastRouterTermination ICMPType = 153 // Multicast Router Termination - ICMPTypeFMIPv6 ICMPType = 154 // FMIPv6 Messages - ICMPTypeRPLControl ICMPType = 155 // RPL Control Message - ICMPTypeILNPv6LocatorUpdate ICMPType = 156 // ILNPv6 Locator Update Message - ICMPTypeDuplicateAddressRequest ICMPType = 157 // Duplicate Address Request - ICMPTypeDuplicateAddressConfirmation ICMPType = 158 // Duplicate Address Confirmation - ICMPTypeMPLControl ICMPType = 159 // MPL Control Message -) - -// Internet Control Message Protocol version 6 (ICMPv6) Parameters, Updated: 2015-07-07 -var icmpTypes = map[ICMPType]string{ - 1: "destination unreachable", - 2: "packet too big", - 3: "time exceeded", - 4: "parameter problem", - 128: "echo request", - 129: "echo reply", - 130: "multicast listener query", - 131: "multicast listener report", - 132: "multicast listener done", - 133: "router solicitation", - 134: "router advertisement", - 135: "neighbor solicitation", - 136: "neighbor advertisement", - 137: "redirect message", - 138: "router renumbering", - 139: "icmp node information query", - 140: "icmp node information response", - 141: "inverse neighbor discovery solicitation message", - 142: "inverse neighbor discovery advertisement message", - 143: "version 2 multicast listener report", - 144: "home agent address discovery request message", - 145: "home agent address discovery reply message", - 146: "mobile prefix solicitation", - 147: "mobile prefix advertisement", - 148: "certification path solicitation message", - 149: "certification path advertisement message", - 151: "multicast router advertisement", - 152: "multicast router solicitation", - 153: "multicast router termination", - 154: "fmipv6 messages", - 155: "rpl control message", - 156: "ilnpv6 locator update message", - 157: "duplicate address request", - 158: "duplicate address confirmation", - 159: "mpl control message", -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp.go deleted file mode 100644 index b7f48e27..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp.go +++ /dev/null @@ -1,60 +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 ipv6 - -import "golang.org/x/net/internal/iana" - -// BUG(mikio): On Windows, methods related to ICMPFilter are not -// implemented. - -// An ICMPType represents a type of ICMP message. -type ICMPType int - -func (typ ICMPType) String() string { - s, ok := icmpTypes[typ] - if !ok { - return "" - } - return s -} - -// Protocol returns the ICMPv6 protocol number. -func (typ ICMPType) Protocol() int { - return iana.ProtocolIPv6ICMP -} - -// An ICMPFilter represents an ICMP message filter for incoming -// packets. The filter belongs to a packet delivery path on a host and -// it cannot interact with forwarding packets or tunnel-outer packets. -// -// Note: RFC 8200 defines a reasonable role model. A node means a -// device that implements IP. A router means a node that forwards IP -// packets not explicitly addressed to itself, and a host means a node -// that is not a router. -type ICMPFilter struct { - icmpv6Filter -} - -// Accept accepts incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Accept(typ ICMPType) { - f.accept(typ) -} - -// Block blocks incoming ICMP packets including the type field value -// typ. -func (f *ICMPFilter) Block(typ ICMPType) { - f.block(typ) -} - -// SetAll sets the filter action to the filter. -func (f *ICMPFilter) SetAll(block bool) { - f.setAll(block) -} - -// WillBlock reports whether the ICMP type will be blocked. -func (f *ICMPFilter) WillBlock(typ ICMPType) bool { - return f.willBlock(typ) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_bsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_bsd.go deleted file mode 100644 index e1a791de..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_bsd.go +++ /dev/null @@ -1,29 +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. - -// +build darwin dragonfly freebsd netbsd openbsd - -package ipv6 - -func (f *icmpv6Filter) accept(typ ICMPType) { - f.Filt[typ>>5] |= 1 << (uint32(typ) & 31) -} - -func (f *icmpv6Filter) block(typ ICMPType) { - f.Filt[typ>>5] &^= 1 << (uint32(typ) & 31) -} - -func (f *icmpv6Filter) setAll(block bool) { - for i := range f.Filt { - if block { - f.Filt[i] = 0 - } else { - f.Filt[i] = 1<<32 - 1 - } - } -} - -func (f *icmpv6Filter) willBlock(typ ICMPType) bool { - return f.Filt[typ>>5]&(1<<(uint32(typ)&31)) == 0 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_linux.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_linux.go deleted file mode 100644 index 647f6b44..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_linux.go +++ /dev/null @@ -1,27 +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 ipv6 - -func (f *icmpv6Filter) accept(typ ICMPType) { - f.Data[typ>>5] &^= 1 << (uint32(typ) & 31) -} - -func (f *icmpv6Filter) block(typ ICMPType) { - f.Data[typ>>5] |= 1 << (uint32(typ) & 31) -} - -func (f *icmpv6Filter) setAll(block bool) { - for i := range f.Data { - if block { - f.Data[i] = 1<<32 - 1 - } else { - f.Data[i] = 0 - } - } -} - -func (f *icmpv6Filter) willBlock(typ ICMPType) bool { - return f.Data[typ>>5]&(1<<(uint32(typ)&31)) != 0 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_solaris.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_solaris.go deleted file mode 100644 index 7c23bb1c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_solaris.go +++ /dev/null @@ -1,27 +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 ipv6 - -func (f *icmpv6Filter) accept(typ ICMPType) { - f.X__icmp6_filt[typ>>5] |= 1 << (uint32(typ) & 31) -} - -func (f *icmpv6Filter) block(typ ICMPType) { - f.X__icmp6_filt[typ>>5] &^= 1 << (uint32(typ) & 31) -} - -func (f *icmpv6Filter) setAll(block bool) { - for i := range f.X__icmp6_filt { - if block { - f.X__icmp6_filt[i] = 0 - } else { - f.X__icmp6_filt[i] = 1<<32 - 1 - } - } -} - -func (f *icmpv6Filter) willBlock(typ ICMPType) bool { - return f.X__icmp6_filt[typ>>5]&(1<<(uint32(typ)&31)) == 0 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_stub.go deleted file mode 100644 index c4b9be6d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_stub.go +++ /dev/null @@ -1,23 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv6 - -type icmpv6Filter struct { -} - -func (f *icmpv6Filter) accept(typ ICMPType) { -} - -func (f *icmpv6Filter) block(typ ICMPType) { -} - -func (f *icmpv6Filter) setAll(block bool) { -} - -func (f *icmpv6Filter) willBlock(typ ICMPType) bool { - return false -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_windows.go deleted file mode 100644 index 443cd073..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/icmp_windows.go +++ /dev/null @@ -1,22 +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 ipv6 - -func (f *icmpv6Filter) accept(typ ICMPType) { - // TODO(mikio): implement this -} - -func (f *icmpv6Filter) block(typ ICMPType) { - // TODO(mikio): implement this -} - -func (f *icmpv6Filter) setAll(block bool) { - // TODO(mikio): implement this -} - -func (f *icmpv6Filter) willBlock(typ ICMPType) bool { - // TODO(mikio): implement this - return false -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload.go deleted file mode 100644 index a8197f16..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload.go +++ /dev/null @@ -1,23 +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 ipv6 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -// BUG(mikio): On Windows, the ControlMessage for ReadFrom and WriteTo -// methods of PacketConn is not implemented. - -// A payloadHandler represents the IPv6 datagram payload handler. -type payloadHandler struct { - net.PacketConn - *socket.Conn - rawOpt -} - -func (c *payloadHandler) ok() bool { return c != nil && c.PacketConn != nil && c.Conn != nil } diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg.go deleted file mode 100644 index 4ee4b062..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg.go +++ /dev/null @@ -1,35 +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. - -// +build !nacl,!plan9,!windows - -package ipv6 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv6 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - return c.readFrom(b) -} - -// WriteTo writes a payload of the IPv6 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the IPv6 header fields and the datagram path to be specified. The -// cm may be nil if control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - return c.writeTo(b, cm, dst) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_8.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_8.go deleted file mode 100644 index fdc6c399..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_8.go +++ /dev/null @@ -1,55 +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. - -// +build !go1.9 -// +build !nacl,!plan9,!windows - -package ipv6 - -import "net" - -func (c *payloadHandler) readFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - c.rawOpt.RLock() - oob := NewControlMessage(c.rawOpt.cflags) - c.rawOpt.RUnlock() - var nn int - switch c := c.PacketConn.(type) { - case *net.UDPConn: - if n, nn, _, src, err = c.ReadMsgUDP(b, oob); err != nil { - return 0, nil, nil, err - } - case *net.IPConn: - if n, nn, _, src, err = c.ReadMsgIP(b, oob); err != nil { - return 0, nil, nil, err - } - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Err: errInvalidConnType} - } - if nn > 0 { - cm = new(ControlMessage) - if err = cm.Parse(oob[:nn]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - } - if cm != nil { - cm.Src = netAddrToIP16(src) - } - return -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - oob := cm.Marshal() - if dst == nil { - return 0, &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errMissingAddress} - } - switch c := c.PacketConn.(type) { - case *net.UDPConn: - n, _, err = c.WriteMsgUDP(b, oob, dst.(*net.UDPAddr)) - case *net.IPConn: - n, _, err = c.WriteMsgIP(b, oob, dst.(*net.IPAddr)) - default: - return 0, &net.OpError{Op: "write", Net: c.LocalAddr().Network(), Source: c.LocalAddr(), Addr: opAddr(dst), Err: errInvalidConnType} - } - return -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_9.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_9.go deleted file mode 100644 index 8f6d02e2..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_cmsg_go1_9.go +++ /dev/null @@ -1,57 +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. - -// +build go1.9 -// +build !nacl,!plan9,!windows - -package ipv6 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (c *payloadHandler) readFrom(b []byte) (int, *ControlMessage, net.Addr, error) { - c.rawOpt.RLock() - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: NewControlMessage(c.rawOpt.cflags), - } - c.rawOpt.RUnlock() - switch c.PacketConn.(type) { - case *net.UDPConn: - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - case *net.IPConn: - if err := c.RecvMsg(&m, 0); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - default: - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: errInvalidConnType} - } - var cm *ControlMessage - if m.NN > 0 { - cm = new(ControlMessage) - if err := cm.Parse(m.OOB[:m.NN]); err != nil { - return 0, nil, nil, &net.OpError{Op: "read", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Err: err} - } - cm.Src = netAddrToIP16(m.Addr) - } - return m.N, cm, m.Addr, nil -} - -func (c *payloadHandler) writeTo(b []byte, cm *ControlMessage, dst net.Addr) (int, error) { - m := socket.Message{ - Buffers: [][]byte{b}, - OOB: cm.Marshal(), - Addr: dst, - } - err := c.SendMsg(&m, 0) - if err != nil { - err = &net.OpError{Op: "write", Net: c.PacketConn.LocalAddr().Network(), Source: c.PacketConn.LocalAddr(), Addr: opAddr(dst), Err: err} - } - return m.N, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_nocmsg.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_nocmsg.go deleted file mode 100644 index 99a43542..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/payload_nocmsg.go +++ /dev/null @@ -1,41 +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. - -// +build nacl plan9 windows - -package ipv6 - -import ( - "net" - "syscall" -) - -// ReadFrom reads a payload of the received IPv6 datagram, from the -// endpoint c, copying the payload into b. It returns the number of -// bytes copied into b, the control message cm and the source address -// src of the received datagram. -func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) { - if !c.ok() { - return 0, nil, nil, syscall.EINVAL - } - if n, src, err = c.PacketConn.ReadFrom(b); err != nil { - return 0, nil, nil, err - } - return -} - -// WriteTo writes a payload of the IPv6 datagram, to the destination -// address dst through the endpoint c, copying the payload from b. It -// returns the number of bytes written. The control message cm allows -// the IPv6 header fields and the datagram path to be specified. The -// cm may be nil if control of the outgoing datagram is not required. -func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) { - if !c.ok() { - return 0, syscall.EINVAL - } - if dst == nil { - return 0, errMissingAddress - } - return c.PacketConn.WriteTo(b, dst) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt.go deleted file mode 100644 index cc3907df..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt.go +++ /dev/null @@ -1,43 +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 ipv6 - -import "golang.org/x/net/internal/socket" - -// Sticky socket options -const ( - ssoTrafficClass = iota // header field for unicast packet, RFC 3542 - ssoHopLimit // header field for unicast packet, RFC 3493 - ssoMulticastInterface // outbound interface for multicast packet, RFC 3493 - ssoMulticastHopLimit // header field for multicast packet, RFC 3493 - ssoMulticastLoopback // loopback for multicast packet, RFC 3493 - ssoReceiveTrafficClass // header field on received packet, RFC 3542 - ssoReceiveHopLimit // header field on received packet, RFC 2292 or 3542 - ssoReceivePacketInfo // incbound or outbound packet path, RFC 2292 or 3542 - ssoReceivePathMTU // path mtu, RFC 3542 - ssoPathMTU // path mtu, RFC 3542 - ssoChecksum // packet checksum, RFC 2292 or 3542 - ssoICMPFilter // icmp filter, RFC 2292 or 3542 - ssoJoinGroup // any-source multicast, RFC 3493 - ssoLeaveGroup // any-source multicast, RFC 3493 - ssoJoinSourceGroup // source-specific multicast - ssoLeaveSourceGroup // source-specific multicast - ssoBlockSourceGroup // any-source or source-specific multicast - ssoUnblockSourceGroup // any-source or source-specific multicast - ssoAttachFilter // attach BPF for filtering inbound traffic -) - -// Sticky socket option value types -const ( - ssoTypeIPMreq = iota + 1 - ssoTypeGroupReq - ssoTypeGroupSourceReq -) - -// A sockOpt represents a binding for sticky socket option. -type sockOpt struct { - socket.Option - typ int // hint for option value type; optional -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt_posix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt_posix.go deleted file mode 100644 index 0eac86eb..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt_posix.go +++ /dev/null @@ -1,87 +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. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows - -package ipv6 - -import ( - "net" - "unsafe" - - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) getMulticastInterface(c *socket.Conn) (*net.Interface, error) { - n, err := so.GetInt(c) - if err != nil { - return nil, err - } - return net.InterfaceByIndex(n) -} - -func (so *sockOpt) setMulticastInterface(c *socket.Conn, ifi *net.Interface) error { - var n int - if ifi != nil { - n = ifi.Index - } - return so.SetInt(c, n) -} - -func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { - b := make([]byte, so.Len) - n, err := so.Get(c, b) - if err != nil { - return nil, err - } - if n != sizeofICMPv6Filter { - return nil, errOpNoSupport - } - return (*ICMPFilter)(unsafe.Pointer(&b[0])), nil -} - -func (so *sockOpt) setICMPFilter(c *socket.Conn, f *ICMPFilter) error { - b := (*[sizeofICMPv6Filter]byte)(unsafe.Pointer(f))[:sizeofICMPv6Filter] - return so.Set(c, b) -} - -func (so *sockOpt) getMTUInfo(c *socket.Conn) (*net.Interface, int, error) { - b := make([]byte, so.Len) - n, err := so.Get(c, b) - if err != nil { - return nil, 0, err - } - if n != sizeofIPv6Mtuinfo { - return nil, 0, errOpNoSupport - } - mi := (*ipv6Mtuinfo)(unsafe.Pointer(&b[0])) - if mi.Addr.Scope_id == 0 { - return nil, int(mi.Mtu), nil - } - ifi, err := net.InterfaceByIndex(int(mi.Addr.Scope_id)) - if err != nil { - return nil, 0, err - } - return ifi, int(mi.Mtu), nil -} - -func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - switch so.typ { - case ssoTypeIPMreq: - return so.setIPMreq(c, ifi, grp) - case ssoTypeGroupReq: - return so.setGroupReq(c, ifi, grp) - default: - return errOpNoSupport - } -} - -func (so *sockOpt) setSourceGroup(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return so.setGroupSourceReq(c, ifi, grp, src) -} - -func (so *sockOpt) setBPF(c *socket.Conn, f []bpf.RawInstruction) error { - return so.setAttachFilter(c, f) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt_stub.go deleted file mode 100644 index 1f4a273e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sockopt_stub.go +++ /dev/null @@ -1,46 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv6 - -import ( - "net" - - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) getMulticastInterface(c *socket.Conn) (*net.Interface, error) { - return nil, errOpNoSupport -} - -func (so *sockOpt) setMulticastInterface(c *socket.Conn, ifi *net.Interface) error { - return errOpNoSupport -} - -func (so *sockOpt) getICMPFilter(c *socket.Conn) (*ICMPFilter, error) { - return nil, errOpNoSupport -} - -func (so *sockOpt) setICMPFilter(c *socket.Conn, f *ICMPFilter) error { - return errOpNoSupport -} - -func (so *sockOpt) getMTUInfo(c *socket.Conn) (*net.Interface, int, error) { - return nil, 0, errOpNoSupport -} - -func (so *sockOpt) setGroup(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func (so *sockOpt) setSourceGroup(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport -} - -func (so *sockOpt) setBPF(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_asmreq.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_asmreq.go deleted file mode 100644 index b0510c0b..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_asmreq.go +++ /dev/null @@ -1,24 +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. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows - -package ipv6 - -import ( - "net" - "unsafe" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setIPMreq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - var mreq ipv6Mreq - copy(mreq.Multiaddr[:], grp) - if ifi != nil { - mreq.setIfindex(ifi.Index) - } - b := (*[sizeofIPv6Mreq]byte)(unsafe.Pointer(&mreq))[:sizeofIPv6Mreq] - return so.Set(c, b) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go deleted file mode 100644 index eece9618..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_asmreq_stub.go +++ /dev/null @@ -1,17 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv6 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setIPMreq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bpf.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bpf.go deleted file mode 100644 index b2dbcb2f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bpf.go +++ /dev/null @@ -1,23 +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. - -// +build linux - -package ipv6 - -import ( - "unsafe" - - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - prog := sockFProg{ - Len: uint16(len(f)), - Filter: (*sockFilter)(unsafe.Pointer(&f[0])), - } - b := (*[sizeofSockFprog]byte)(unsafe.Pointer(&prog))[:sizeofSockFprog] - return so.Set(c, b) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bpf_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bpf_stub.go deleted file mode 100644 index 676bea55..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bpf_stub.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. - -// +build !linux - -package ipv6 - -import ( - "golang.org/x/net/bpf" - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setAttachFilter(c *socket.Conn, f []bpf.RawInstruction) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bsd.go deleted file mode 100644 index e416eaa1..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_bsd.go +++ /dev/null @@ -1,57 +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. - -// +build dragonfly netbsd openbsd - -package ipv6 - -import ( - "net" - "syscall" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, - ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, - ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop}, - ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, - } - - sockOpts = map[int]*sockOpt{ - ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}, - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}, - ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}, - ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}, - ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}, - ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}, - ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_JOIN_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_LEAVE_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - } -) - -func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *inet6Pktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (mreq *ipv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_darwin.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_darwin.go deleted file mode 100644 index e3d04439..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_darwin.go +++ /dev/null @@ -1,106 +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 ipv6 - -import ( - "net" - "strconv" - "strings" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlHopLimit: {sysIPV6_2292HOPLIMIT, 4, marshal2292HopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_2292PKTINFO, sizeofInet6Pktinfo, marshal2292PacketInfo, parsePacketInfo}, - } - - sockOpts = map[int]*sockOpt{ - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292HOPLIMIT, Len: 4}}, - ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292PKTINFO, Len: 4}}, - ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_JOIN_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_LEAVE_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - } -) - -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - s, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - ss := strings.Split(s, ".") - if len(ss) == 0 { - return - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11). But it looks like - // those features require OS X 10.8 (Darwin 12) or above. - // See http://support.apple.com/kb/HT1633. - if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 { - return - } - ctlOpts[ctlTrafficClass] = ctlOpt{sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass} - ctlOpts[ctlHopLimit] = ctlOpt{sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit} - ctlOpts[ctlPacketInfo] = ctlOpt{sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo} - ctlOpts[ctlNextHop] = ctlOpt{sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop} - ctlOpts[ctlPathMTU] = ctlOpt{sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU} - sockOpts[ssoTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}} - sockOpts[ssoReceiveTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}} - sockOpts[ssoReceiveHopLimit] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}} - sockOpts[ssoReceivePacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}} - sockOpts[ssoReceivePathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}} - sockOpts[ssoPathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}} - sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} -} - -func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *inet6Pktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (mreq *ipv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gr)) + 4)) - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 4)) - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) - sa = (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 132)) - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_freebsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_freebsd.go deleted file mode 100644 index e9349dc2..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_freebsd.go +++ /dev/null @@ -1,92 +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 ipv6 - -import ( - "net" - "runtime" - "strings" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, - ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, - ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop}, - ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, - } - - sockOpts = map[int]sockOpt{ - ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}, - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}, - ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}, - ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}, - ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}, - ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}, - ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - } -) - -func init() { - if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" { - archs, _ := syscall.Sysctl("kern.supported_archs") - for _, s := range strings.Fields(archs) { - if s == "amd64" { - freebsd32o64 = true - break - } - } - } -} - -func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *inet6Pktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (mreq *ipv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(&gr.Group)) - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(&gsr.Group)) - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) - sa = (*sockaddrInet6)(unsafe.Pointer(&gsr.Source)) - sa.Len = sizeofSockaddrInet6 - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_linux.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_linux.go deleted file mode 100644 index bc218103..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_linux.go +++ /dev/null @@ -1,74 +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 ipv6 - -import ( - "net" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, - ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, - ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, - } - - sockOpts = map[int]*sockOpt{ - ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}, - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}, - ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}, - ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}, - ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}, - ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}, - ssoChecksum: {Option: socket.Option{Level: iana.ProtocolReserved, Name: sysIPV6_CHECKSUM, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMPV6_FILTER, Len: sizeofICMPv6Filter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoAttachFilter: {Option: socket.Option{Level: sysSOL_SOCKET, Name: sysSO_ATTACH_FILTER, Len: sizeofSockFprog}}, - } -) - -func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *inet6Pktinfo) setIfindex(i int) { - pi.Ifindex = int32(i) -} - -func (mreq *ipv6Mreq) setIfindex(i int) { - mreq.Ifindex = int32(i) -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(&gr.Group)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(&gsr.Group)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) - sa = (*sockaddrInet6)(unsafe.Pointer(&gsr.Source)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_solaris.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_solaris.go deleted file mode 100644 index d348b5f6..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_solaris.go +++ /dev/null @@ -1,74 +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 ipv6 - -import ( - "net" - "syscall" - "unsafe" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -var ( - ctlOpts = [ctlMax]ctlOpt{ - ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, - ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, - ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop}, - ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, - } - - sockOpts = map[int]*sockOpt{ - ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}, - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}, - ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}, - ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}, - ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}, - ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}, - ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, - ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, - } -) - -func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (pi *inet6Pktinfo) setIfindex(i int) { - pi.Ifindex = uint32(i) -} - -func (mreq *ipv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} - -func (gr *groupReq) setGroup(grp net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gr)) + 4)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) -} - -func (gsr *groupSourceReq) setSourceGroup(grp, src net.IP) { - sa := (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 4)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], grp) - sa = (*sockaddrInet6)(unsafe.Pointer(uintptr(unsafe.Pointer(gsr)) + 260)) - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], src) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_ssmreq.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_ssmreq.go deleted file mode 100644 index add8ccc0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_ssmreq.go +++ /dev/null @@ -1,54 +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. - -// +build darwin freebsd linux solaris - -package ipv6 - -import ( - "net" - "unsafe" - - "golang.org/x/net/internal/socket" -) - -var freebsd32o64 bool - -func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - var gr groupReq - if ifi != nil { - gr.Interface = uint32(ifi.Index) - } - gr.setGroup(grp) - var b []byte - if freebsd32o64 { - var d [sizeofGroupReq + 4]byte - s := (*[sizeofGroupReq]byte)(unsafe.Pointer(&gr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - b = d[:] - } else { - b = (*[sizeofGroupReq]byte)(unsafe.Pointer(&gr))[:sizeofGroupReq] - } - return so.Set(c, b) -} - -func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - var gsr groupSourceReq - if ifi != nil { - gsr.Interface = uint32(ifi.Index) - } - gsr.setSourceGroup(grp, src) - var b []byte - if freebsd32o64 { - var d [sizeofGroupSourceReq + 4]byte - s := (*[sizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr)) - copy(d[:4], s[:4]) - copy(d[8:], s[4:]) - b = d[:] - } else { - b = (*[sizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr))[:sizeofGroupSourceReq] - } - return so.Set(c, b) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go deleted file mode 100644 index 581ee490..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_ssmreq_stub.go +++ /dev/null @@ -1,21 +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. - -// +build !darwin,!freebsd,!linux,!solaris - -package ipv6 - -import ( - "net" - - "golang.org/x/net/internal/socket" -) - -func (so *sockOpt) setGroupReq(c *socket.Conn, ifi *net.Interface, grp net.IP) error { - return errOpNoSupport -} - -func (so *sockOpt) setGroupSourceReq(c *socket.Conn, ifi *net.Interface, grp, src net.IP) error { - return errOpNoSupport -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_stub.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_stub.go deleted file mode 100644 index b845388e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_stub.go +++ /dev/null @@ -1,13 +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. - -// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows - -package ipv6 - -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = map[int]*sockOpt{} -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_windows.go deleted file mode 100644 index fc36b018..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/sys_windows.go +++ /dev/null @@ -1,75 +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 ipv6 - -import ( - "net" - "syscall" - - "golang.org/x/net/internal/iana" - "golang.org/x/net/internal/socket" -) - -const ( - // See ws2tcpip.h. - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PKTINFO = 0x13 - - sizeofSockaddrInet6 = 0x1c - - sizeofIPv6Mreq = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofICMPv6Filter = 0 -) - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type icmpv6Filter struct { - // TODO(mikio): implement this -} - -var ( - ctlOpts = [ctlMax]ctlOpt{} - - sockOpts = map[int]*sockOpt{ - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_JOIN_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_LEAVE_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - } -) - -func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { - sa.Family = syscall.AF_INET6 - copy(sa.Addr[:], ip) - sa.Scope_id = uint32(i) -} - -func (mreq *ipv6Mreq) setIfindex(i int) { - mreq.Interface = uint32(i) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_darwin.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_darwin.go deleted file mode 100644 index 6aab1dfa..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_darwin.go +++ /dev/null @@ -1,131 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_darwin.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - sysIPV6_2292PKTINFO = 0x13 - sysIPV6_2292HOPLIMIT = 0x14 - sysIPV6_2292NEXTHOP = 0x15 - sysIPV6_2292HOPOPTS = 0x16 - sysIPV6_2292DSTOPTS = 0x17 - sysIPV6_2292RTHDR = 0x18 - - sysIPV6_2292PKTOPTIONS = 0x19 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RECVTCLASS = 0x23 - sysIPV6_TCLASS = 0x24 - - sysIPV6_RTHDRDSTOPTS = 0x39 - - sysIPV6_RECVPKTINFO = 0x3d - - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_MSFILTER = 0x4a - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_BOUND_IF = 0x7d - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type icmpv6Filter struct { - Filt [8]uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [128]byte -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [128]byte - Pad_cgo_1 [128]byte -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go deleted file mode 100644 index d2de804d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_dragonfly.go +++ /dev/null @@ -1,88 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_dragonfly.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - - sizeofIPv6Mreq = 0x14 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type icmpv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go deleted file mode 100644 index 919e572d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_386.go +++ /dev/null @@ -1,122 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_BINDANY = 0x40 - - sysIPV6_MSFILTER = 0x4a - - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type groupReq struct { - Interface uint32 - Group sockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group sockaddrStorage - Source sockaddrStorage -} - -type icmpv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go deleted file mode 100644 index cb8141f9..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_amd64.go +++ /dev/null @@ -1,124 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_BINDANY = 0x40 - - sysIPV6_MSFILTER = 0x4a - - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage - Source sockaddrStorage -} - -type icmpv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go deleted file mode 100644 index cb8141f9..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_freebsd_arm.go +++ /dev/null @@ -1,124 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_freebsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PREFER_TEMPADDR = 0x3f - - sysIPV6_BINDANY = 0x40 - - sysIPV6_MSFILTER = 0x4a - - sysMCAST_JOIN_GROUP = 0x50 - sysMCAST_LEAVE_GROUP = 0x51 - sysMCAST_JOIN_SOURCE_GROUP = 0x52 - sysMCAST_LEAVE_SOURCE_GROUP = 0x53 - sysMCAST_BLOCK_SOURCE = 0x54 - sysMCAST_UNBLOCK_SOURCE = 0x55 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sizeofSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrStorage struct { - Len uint8 - Family uint8 - X__ss_pad1 [6]int8 - X__ss_align int64 - X__ss_pad2 [112]int8 -} - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group sockaddrStorage - Source sockaddrStorage -} - -type icmpv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_386.go deleted file mode 100644 index 73aa8c6d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_386.go +++ /dev/null @@ -1,170 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go deleted file mode 100644 index b64f0157..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_amd64.go +++ /dev/null @@ -1,172 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go deleted file mode 100644 index 73aa8c6d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_arm.go +++ /dev/null @@ -1,170 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go deleted file mode 100644 index b64f0157..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_arm64.go +++ /dev/null @@ -1,172 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go deleted file mode 100644 index 73aa8c6d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips.go +++ /dev/null @@ -1,170 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go deleted file mode 100644 index b64f0157..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips64.go +++ /dev/null @@ -1,172 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go deleted file mode 100644 index b64f0157..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mips64le.go +++ /dev/null @@ -1,172 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go deleted file mode 100644 index 73aa8c6d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_mipsle.go +++ /dev/null @@ -1,170 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go deleted file mode 100644 index c9bf6a87..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc.go +++ /dev/null @@ -1,170 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x84 - sizeofGroupSourceReq = 0x104 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x8 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]uint8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [2]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go deleted file mode 100644 index b64f0157..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64.go +++ /dev/null @@ -1,172 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go deleted file mode 100644 index b64f0157..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_ppc64le.go +++ /dev/null @@ -1,172 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go deleted file mode 100644 index b64f0157..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_linux_s390x.go +++ /dev/null @@ -1,172 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_linux.go - -package ipv6 - -const ( - sysIPV6_ADDRFORM = 0x1 - sysIPV6_2292PKTINFO = 0x2 - sysIPV6_2292HOPOPTS = 0x3 - sysIPV6_2292DSTOPTS = 0x4 - sysIPV6_2292RTHDR = 0x5 - sysIPV6_2292PKTOPTIONS = 0x6 - sysIPV6_CHECKSUM = 0x7 - sysIPV6_2292HOPLIMIT = 0x8 - sysIPV6_NEXTHOP = 0x9 - sysIPV6_FLOWINFO = 0xb - - sysIPV6_UNICAST_HOPS = 0x10 - sysIPV6_MULTICAST_IF = 0x11 - sysIPV6_MULTICAST_HOPS = 0x12 - sysIPV6_MULTICAST_LOOP = 0x13 - sysIPV6_ADD_MEMBERSHIP = 0x14 - sysIPV6_DROP_MEMBERSHIP = 0x15 - sysMCAST_JOIN_GROUP = 0x2a - sysMCAST_LEAVE_GROUP = 0x2d - sysMCAST_JOIN_SOURCE_GROUP = 0x2e - sysMCAST_LEAVE_SOURCE_GROUP = 0x2f - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_MSFILTER = 0x30 - sysIPV6_ROUTER_ALERT = 0x16 - sysIPV6_MTU_DISCOVER = 0x17 - sysIPV6_MTU = 0x18 - sysIPV6_RECVERR = 0x19 - sysIPV6_V6ONLY = 0x1a - sysIPV6_JOIN_ANYCAST = 0x1b - sysIPV6_LEAVE_ANYCAST = 0x1c - - sysIPV6_FLOWLABEL_MGR = 0x20 - sysIPV6_FLOWINFO_SEND = 0x21 - - sysIPV6_IPSEC_POLICY = 0x22 - sysIPV6_XFRM_POLICY = 0x23 - - sysIPV6_RECVPKTINFO = 0x31 - sysIPV6_PKTINFO = 0x32 - sysIPV6_RECVHOPLIMIT = 0x33 - sysIPV6_HOPLIMIT = 0x34 - sysIPV6_RECVHOPOPTS = 0x35 - sysIPV6_HOPOPTS = 0x36 - sysIPV6_RTHDRDSTOPTS = 0x37 - sysIPV6_RECVRTHDR = 0x38 - sysIPV6_RTHDR = 0x39 - sysIPV6_RECVDSTOPTS = 0x3a - sysIPV6_DSTOPTS = 0x3b - sysIPV6_RECVPATHMTU = 0x3c - sysIPV6_PATHMTU = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_RECVTCLASS = 0x42 - sysIPV6_TCLASS = 0x43 - - sysIPV6_ADDR_PREFERENCES = 0x48 - - sysIPV6_PREFER_SRC_TMP = 0x1 - sysIPV6_PREFER_SRC_PUBLIC = 0x2 - sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100 - sysIPV6_PREFER_SRC_COA = 0x4 - sysIPV6_PREFER_SRC_HOME = 0x400 - sysIPV6_PREFER_SRC_CGA = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x800 - - sysIPV6_MINHOPCOUNT = 0x49 - - sysIPV6_ORIGDSTADDR = 0x4a - sysIPV6_RECVORIGDSTADDR = 0x4a - sysIPV6_TRANSPARENT = 0x4b - sysIPV6_UNICAST_IF = 0x4c - - sysICMPV6_FILTER = 0x1 - - sysICMPV6_FILTER_BLOCK = 0x1 - sysICMPV6_FILTER_PASS = 0x2 - sysICMPV6_FILTER_BLOCKOTHERS = 0x3 - sysICMPV6_FILTER_PASSONLY = 0x4 - - sysSOL_SOCKET = 0x1 - sysSO_ATTACH_FILTER = 0x1a - - sizeofKernelSockaddrStorage = 0x80 - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - sizeofIPv6FlowlabelReq = 0x20 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x88 - sizeofGroupSourceReq = 0x108 - - sizeofICMPv6Filter = 0x20 - - sizeofSockFprog = 0x10 -) - -type kernelSockaddrStorage struct { - Family uint16 - X__data [126]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex int32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6FlowlabelReq struct { - Dst [16]byte /* in6_addr */ - Label uint32 - Action uint8 - Share uint8 - Flags uint16 - Expires uint16 - Linger uint16 - X__flr_pad uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Ifindex int32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [4]byte - Group kernelSockaddrStorage - Source kernelSockaddrStorage -} - -type icmpv6Filter struct { - Data [8]uint32 -} - -type sockFProg struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *sockFilter -} - -type sockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_netbsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_netbsd.go deleted file mode 100644 index bcada13b..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_netbsd.go +++ /dev/null @@ -1,84 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_netbsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_IPSEC_POLICY = 0x1c - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - - sizeofIPv6Mreq = 0x14 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type icmpv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_openbsd.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_openbsd.go deleted file mode 100644 index 86cf3c63..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_openbsd.go +++ /dev/null @@ -1,93 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_openbsd.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x4 - sysIPV6_MULTICAST_IF = 0x9 - sysIPV6_MULTICAST_HOPS = 0xa - sysIPV6_MULTICAST_LOOP = 0xb - sysIPV6_JOIN_GROUP = 0xc - sysIPV6_LEAVE_GROUP = 0xd - sysIPV6_PORTRANGE = 0xe - sysICMP6_FILTER = 0x12 - - sysIPV6_CHECKSUM = 0x1a - sysIPV6_V6ONLY = 0x1b - - sysIPV6_RTHDRDSTOPTS = 0x23 - - sysIPV6_RECVPKTINFO = 0x24 - sysIPV6_RECVHOPLIMIT = 0x25 - sysIPV6_RECVRTHDR = 0x26 - sysIPV6_RECVHOPOPTS = 0x27 - sysIPV6_RECVDSTOPTS = 0x28 - - sysIPV6_USE_MIN_MTU = 0x2a - sysIPV6_RECVPATHMTU = 0x2b - - sysIPV6_PATHMTU = 0x2c - - sysIPV6_PKTINFO = 0x2e - sysIPV6_HOPLIMIT = 0x2f - sysIPV6_NEXTHOP = 0x30 - sysIPV6_HOPOPTS = 0x31 - sysIPV6_DSTOPTS = 0x32 - sysIPV6_RTHDR = 0x33 - - sysIPV6_AUTH_LEVEL = 0x35 - sysIPV6_ESP_TRANS_LEVEL = 0x36 - sysIPV6_ESP_NETWORK_LEVEL = 0x37 - sysIPSEC6_OUTSA = 0x38 - sysIPV6_RECVTCLASS = 0x39 - - sysIPV6_AUTOFLOWLABEL = 0x3b - sysIPV6_IPCOMP_LEVEL = 0x3c - - sysIPV6_TCLASS = 0x3d - sysIPV6_DONTFRAG = 0x3e - sysIPV6_PIPEX = 0x3f - - sysIPV6_RTABLE = 0x1021 - - sysIPV6_PORTRANGE_DEFAULT = 0x0 - sysIPV6_PORTRANGE_HIGH = 0x1 - sysIPV6_PORTRANGE_LOW = 0x2 - - sizeofSockaddrInet6 = 0x1c - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x20 - - sizeofIPv6Mreq = 0x14 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrInet6 struct { - Len uint8 - Family uint8 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type icmpv6Filter struct { - Filt [8]uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_solaris.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_solaris.go deleted file mode 100644 index cf1837dd..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/ipv6/zsys_solaris.go +++ /dev/null @@ -1,131 +0,0 @@ -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs defs_solaris.go - -package ipv6 - -const ( - sysIPV6_UNICAST_HOPS = 0x5 - sysIPV6_MULTICAST_IF = 0x6 - sysIPV6_MULTICAST_HOPS = 0x7 - sysIPV6_MULTICAST_LOOP = 0x8 - sysIPV6_JOIN_GROUP = 0x9 - sysIPV6_LEAVE_GROUP = 0xa - - sysIPV6_PKTINFO = 0xb - - sysIPV6_HOPLIMIT = 0xc - sysIPV6_NEXTHOP = 0xd - sysIPV6_HOPOPTS = 0xe - sysIPV6_DSTOPTS = 0xf - - sysIPV6_RTHDR = 0x10 - sysIPV6_RTHDRDSTOPTS = 0x11 - - sysIPV6_RECVPKTINFO = 0x12 - sysIPV6_RECVHOPLIMIT = 0x13 - sysIPV6_RECVHOPOPTS = 0x14 - - sysIPV6_RECVRTHDR = 0x16 - - sysIPV6_RECVRTHDRDSTOPTS = 0x17 - - sysIPV6_CHECKSUM = 0x18 - sysIPV6_RECVTCLASS = 0x19 - sysIPV6_USE_MIN_MTU = 0x20 - sysIPV6_DONTFRAG = 0x21 - sysIPV6_SEC_OPT = 0x22 - sysIPV6_SRC_PREFERENCES = 0x23 - sysIPV6_RECVPATHMTU = 0x24 - sysIPV6_PATHMTU = 0x25 - sysIPV6_TCLASS = 0x26 - sysIPV6_V6ONLY = 0x27 - - sysIPV6_RECVDSTOPTS = 0x28 - - sysMCAST_JOIN_GROUP = 0x29 - sysMCAST_LEAVE_GROUP = 0x2a - sysMCAST_BLOCK_SOURCE = 0x2b - sysMCAST_UNBLOCK_SOURCE = 0x2c - sysMCAST_JOIN_SOURCE_GROUP = 0x2d - sysMCAST_LEAVE_SOURCE_GROUP = 0x2e - - sysIPV6_PREFER_SRC_HOME = 0x1 - sysIPV6_PREFER_SRC_COA = 0x2 - sysIPV6_PREFER_SRC_PUBLIC = 0x4 - sysIPV6_PREFER_SRC_TMP = 0x8 - sysIPV6_PREFER_SRC_NONCGA = 0x10 - sysIPV6_PREFER_SRC_CGA = 0x20 - - sysIPV6_PREFER_SRC_MIPMASK = 0x3 - sysIPV6_PREFER_SRC_MIPDEFAULT = 0x1 - sysIPV6_PREFER_SRC_TMPMASK = 0xc - sysIPV6_PREFER_SRC_TMPDEFAULT = 0x4 - sysIPV6_PREFER_SRC_CGAMASK = 0x30 - sysIPV6_PREFER_SRC_CGADEFAULT = 0x10 - - sysIPV6_PREFER_SRC_MASK = 0x3f - - sysIPV6_PREFER_SRC_DEFAULT = 0x15 - - sysIPV6_BOUND_IF = 0x41 - sysIPV6_UNSPEC_SRC = 0x42 - - sysICMP6_FILTER = 0x1 - - sizeofSockaddrStorage = 0x100 - sizeofSockaddrInet6 = 0x20 - sizeofInet6Pktinfo = 0x14 - sizeofIPv6Mtuinfo = 0x24 - - sizeofIPv6Mreq = 0x14 - sizeofGroupReq = 0x104 - sizeofGroupSourceReq = 0x204 - - sizeofICMPv6Filter = 0x20 -) - -type sockaddrStorage struct { - Family uint16 - X_ss_pad1 [6]int8 - X_ss_align float64 - X_ss_pad2 [240]int8 -} - -type sockaddrInet6 struct { - Family uint16 - Port uint16 - Flowinfo uint32 - Addr [16]byte /* in6_addr */ - Scope_id uint32 - X__sin6_src_id uint32 -} - -type inet6Pktinfo struct { - Addr [16]byte /* in6_addr */ - Ifindex uint32 -} - -type ipv6Mtuinfo struct { - Addr sockaddrInet6 - Mtu uint32 -} - -type ipv6Mreq struct { - Multiaddr [16]byte /* in6_addr */ - Interface uint32 -} - -type groupReq struct { - Interface uint32 - Pad_cgo_0 [256]byte -} - -type groupSourceReq struct { - Interface uint32 - Pad_cgo_0 [256]byte - Pad_cgo_1 [256]byte -} - -type icmpv6Filter struct { - X__icmp6_filt [8]uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/proxy/socks5.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/proxy/socks5.go deleted file mode 100644 index 2efec6e8..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/proxy/socks5.go +++ /dev/null @@ -1,213 +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 proxy - -import ( - "errors" - "io" - "net" - "strconv" -) - -// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address -// with an optional username and password. See RFC 1928. -func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error) { - s := &socks5{ - network: network, - addr: addr, - forward: forward, - } - if auth != nil { - s.user = auth.User - s.password = auth.Password - } - - return s, nil -} - -type socks5 struct { - user, password string - network, addr string - forward Dialer -} - -const socks5Version = 5 - -const ( - socks5AuthNone = 0 - socks5AuthPassword = 2 -) - -const socks5Connect = 1 - -const ( - socks5IP4 = 1 - socks5Domain = 3 - socks5IP6 = 4 -) - -var 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 network net via the SOCKS5 proxy. -func (s *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 *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, socks5Version) - if len(s.user) > 0 && len(s.user) < 256 && len(s.password) < 256 { - buf = append(buf, 2 /* num auth methods */, socks5AuthNone, socks5AuthPassword) - } else { - buf = append(buf, 1 /* num auth methods */, 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") - } - - if buf[1] == 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, socks5Version, socks5Connect, 0 /* reserved */) - - if ip := net.ParseIP(host); ip != nil { - if ip4 := ip.To4(); ip4 != nil { - buf = append(buf, socks5IP4) - ip = ip4 - } else { - buf = append(buf, socks5IP6) - } - buf = append(buf, ip...) - } else { - if len(host) > 255 { - return errors.New("proxy: destination host name too long: " + host) - } - buf = append(buf, 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(socks5Errors) { - failure = 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 socks5IP4: - bytesToDiscard = net.IPv4len - case socks5IP6: - bytesToDiscard = net.IPv6len - case 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/vendor/github.com/elastic/beats/vendor/golang.org/x/net/publicsuffix/list.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/net/publicsuffix/list.go deleted file mode 100644 index 8bbf3bcd..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/net/publicsuffix/list.go +++ /dev/null @@ -1,135 +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:generate go run gen.go - -// Package publicsuffix provides a public suffix list based on data from -// http://publicsuffix.org/. A public suffix is one under which Internet users -// can directly register names. -package publicsuffix // import "golang.org/x/net/publicsuffix" - -// TODO: specify case sensitivity and leading/trailing dot behavior for -// func PublicSuffix and func EffectiveTLDPlusOne. - -import ( - "fmt" - "net/http/cookiejar" - "strings" -) - -// List implements the cookiejar.PublicSuffixList interface by calling the -// PublicSuffix function. -var List cookiejar.PublicSuffixList = list{} - -type list struct{} - -func (list) PublicSuffix(domain string) string { - ps, _ := PublicSuffix(domain) - return ps -} - -func (list) String() string { - return version -} - -// PublicSuffix returns the public suffix of the domain using a copy of the -// publicsuffix.org database compiled into the library. -// -// icann is whether the public suffix is managed by the Internet Corporation -// for Assigned Names and Numbers. If not, the public suffix is privately -// managed. For example, foo.org and foo.co.uk are ICANN domains, -// foo.dyndns.org and foo.blogspot.co.uk are private domains. -// -// Use cases for distinguishing ICANN domains like foo.com from private -// domains like foo.appspot.com can be found at -// https://wiki.mozilla.org/Public_Suffix_List/Use_Cases -func PublicSuffix(domain string) (publicSuffix string, icann bool) { - lo, hi := uint32(0), uint32(numTLD) - s, suffix, wildcard := domain, len(domain), false -loop: - for { - dot := strings.LastIndex(s, ".") - if wildcard { - suffix = 1 + dot - } - if lo == hi { - break - } - f := find(s[1+dot:], lo, hi) - if f == notFound { - break - } - - u := nodes[f] >> (nodesBitsTextOffset + nodesBitsTextLength) - icann = u&(1<>= nodesBitsICANN - u = children[u&(1<>= childrenBitsLo - hi = u & (1<>= childrenBitsHi - switch u & (1<>= childrenBitsNodeType - wildcard = u&(1<>= nodesBitsTextLength - offset := x & (1< SizeofSockaddrAny { - panic("RawSockaddrAny too small") - } - sa, err = anyToSockaddr(&rsa) - if err != nil { - Close(nfd) - nfd = 0 - } - return -} - -const ImplementsGetwd = true - -//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD - -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 -} - -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 -} - -func setattrlistTimes(path string, times []Timespec, flags int) error { - // used on Darwin for UtimesNano - return ENOSYS -} - -// Derive extattr namespace and attribute name - -func xattrnamespace(fullattr string) (ns int, attr string, err error) { - s := -1 - for idx, val := range fullattr { - if val == '.' { - s = idx - break - } - } - - 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]) - } else { - return unsafe.Pointer(_zero) - } -} - -// FreeBSD implements its 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) { - 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) { - 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) { - 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) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - // FreeBSD won't allow you to list xattrs from multiple namespaces - s := 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) - - /* 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 && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } else if e != nil { - return s, e - } - - s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 - } - d = initxattrdest(dest, s) - } - - return s, nil -} - -func Flistxattr(fd int, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s := 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } else if e != nil { - return s, e - } - - s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 - } - d = initxattrdest(dest, s) - } - - return s, nil -} - -func Llistxattr(link string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) - destsiz := len(dest) - - s := 0 - for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } else if e != nil { - return s, e - } - - s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 - } - d = initxattrdest(dest, s) - } - - return s, nil -} - -//sys ioctl(fd int, req uint, arg uintptr) (err error) - -// 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)) -} - -func IoctlSetWinsize(fd int, req uint, value *Winsize) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -func IoctlSetTermios(fd int, req uint, value *Termios) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(value))) -} - -// IoctlGetInt performs an ioctl operation which gets an integer value -// from fd, using the specified request number. -func IoctlGetInt(fd int, req uint) (int, error) { - var value int - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return value, err -} - -func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { - var value Winsize - err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) - return &value, err -} - -func IoctlGetTermios(fd int, req uint) (*Termios, error) { - var value Termios - err := ioctl(fd, req, uintptr(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 -} - -/* - * 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 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 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 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(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (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 Setrlimit(which int, lim *Rlimit) (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 - */ -// 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 -// 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 -// 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/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/syscall_unix.go deleted file mode 100644 index cd8f3a9c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/syscall_unix.go +++ /dev/null @@ -1,307 +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. - -// +build darwin dragonfly freebsd linux netbsd openbsd solaris - -package unix - -import ( - "runtime" - "sync" - "syscall" - "unsafe" -) - -var ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -const ( - darwin64Bit = runtime.GOOS == "darwin" && sizeofPtr == 8 - dragonfly64Bit = runtime.GOOS == "dragonfly" && sizeofPtr == 8 - netbsd32Bit = runtime.GOOS == "netbsd" && sizeofPtr == 4 - solaris64Bit = runtime.GOOS == "solaris" && sizeofPtr == 8 -) - -// Do the interface allocations only once for common -// Errno values. -var ( - errEAGAIN error = syscall.EAGAIN - errEINVAL error = syscall.EINVAL - errENOENT error = syscall.ENOENT -) - -// 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 -} - -// 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 { - for i := 0; i < len(n); i++ { - if n[i] == 0 { - return i - } - } - return len(n) -} - -// 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(&rsa) -} - -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 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(&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) { - return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), 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 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 -} - -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) -} - -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 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go deleted file mode 100644 index b64a8122..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ /dev/null @@ -1,353 +0,0 @@ -// mksysnum_freebsd.pl -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +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_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ - 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, \ - 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 \ - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ - 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, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ - 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_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ - 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, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ - 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, \ - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ - 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, \ - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ - 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_STAT = 188 // { int stat(char *path, struct stat *ub); } - SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } - 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, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ - 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, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ - SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } - SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } - SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ - 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 \ - 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, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ - 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, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ - 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, \ - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ - 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, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ - 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, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ - SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ - 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__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ - 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, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ - 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( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - 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_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ - 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, \ - 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, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ - 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_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ - 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, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go deleted file mode 100644 index 81722ac9..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ /dev/null @@ -1,353 +0,0 @@ -// mksysnum_freebsd.pl -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +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_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ - 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, \ - 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 \ - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ - 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, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ - 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_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ - 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, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ - 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, \ - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ - 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, \ - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ - 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_STAT = 188 // { int stat(char *path, struct stat *ub); } - SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } - 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, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ - 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, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ - SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } - SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } - SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ - 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 \ - 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, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ - 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, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ - 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, \ - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ - 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, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ - 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, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ - SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ - 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__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ - 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, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ - 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( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - 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_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ - 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, \ - 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, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ - 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_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ - 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, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go deleted file mode 100644 index 44883141..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ /dev/null @@ -1,353 +0,0 @@ -// mksysnum_freebsd.pl -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +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_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ - 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, \ - 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 \ - SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ - 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, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ - 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_PIPE = 42 // { int pipe(void); } - SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ - SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ - SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } - SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ - 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, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ - SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ - SYS_VFORK = 66 // { int vfork(void); } - SYS_SBRK = 69 // { int sbrk(int incr); } - SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ - SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ - SYS_GETPGRP = 81 // { int getpgrp(void); } - SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ - SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ - 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, \ - SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ - SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ - SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ - 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, \ - SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ - SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } - SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ - SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ - SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ - 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_STAT = 188 // { int stat(char *path, struct stat *ub); } - SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } - SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } - 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, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ - 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, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ - SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ - SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ - SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ - SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ - SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ - SYS_ISSETUGID = 253 // { int issetugid(void); } - SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ - SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ - SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } - SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } - SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ - SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ - 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 \ - 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, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ - 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, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ - 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, \ - SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ - SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ - 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, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ - SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ - SYS___SETUGID = 374 // { int __setugid(int flag); } - SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ - 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, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ - SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ - SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ - SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ - 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__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } - SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } - SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ - 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, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ - 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( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ - SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ - SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - 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_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ - 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, \ - 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, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ - 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_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ - SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } - SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ - SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } - SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ - 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, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ - SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ - SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go deleted file mode 100644 index d8abcab1..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ /dev/null @@ -1,499 +0,0 @@ -// cgo -godefs types_darwin.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +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 - Pad_cgo_0 [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 - Pad_cgo_0 [4]byte - Atimespec Timespec - Mtimespec Timespec - Ctimespec Timespec - Birthtimespec 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]int8 - Mntonname [1024]int8 - Mntfromname [1024]int8 - Reserved [8]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 - Pad_cgo_0 [4]byte -} - -type Fbootstraptransfer_t struct { - Offset int64 - Length uint64 - Buffer *byte -} - -type Log2phys_t struct { - Flags uint32 - Pad_cgo_0 [8]byte - Pad_cgo_1 [8]byte -} - -type Fsid struct { - Val [2]int32 -} - -type Dirent struct { - Ino uint64 - Seekoff uint64 - Reclen uint16 - Namlen uint16 - Type uint8 - Name [1024]int8 - Pad_cgo_0 [3]byte -} - -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 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 = 0x1c - SizeofSockaddrAny = 0x6c - SizeofSockaddrUnix = 0x6a - SizeofSockaddrDatalink = 0x14 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 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]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 - Pad_cgo_0 [2]byte - 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 - Pad_cgo_0 [2]byte - Metric int32 -} - -type IfmaMsghdr struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte -} - -type IfmaMsghdr2 struct { - Msglen uint16 - Version uint8 - Type uint8 - Addrs int32 - Flags int32 - Index uint16 - Pad_cgo_0 [2]byte - Refcount int32 -} - -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 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 - Filler [4]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 - Pad_cgo_0 [4]byte - Insns *BpfInsn -} - -type BpfInsn struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type BpfHdr struct { - Tstamp Timeval32 - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type Termios struct { - Iflag uint64 - Oflag uint64 - Cflag uint64 - Lflag uint64 - Cc [20]uint8 - Pad_cgo_0 [4]byte - 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 -) - -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 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_386.go deleted file mode 100644 index 7aa206e3..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ /dev/null @@ -1,871 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build 386,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - X__pad1 uint16 - _ [2]byte - X__st_ino uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad2 uint16 - _ [2]byte - Size int64 - Blksize int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [1]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Start int64 - Len int64 - Pid int32 -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 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 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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -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 - X_f [8]int8 -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - Tinode uint32 - Fname [6]int8 - Fpack [6]int8 -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint32 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go deleted file mode 100644 index abb3d89a..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ /dev/null @@ -1,889 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build amd64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - X__pad0 int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [3]int64 -} - -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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 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 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint64 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go deleted file mode 100644 index 11654174..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ /dev/null @@ -1,860 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - X__pad1 uint16 - _ [2]byte - X__st_ino uint32 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad2 uint16 - _ [6]byte - Size int64 - Blksize int32 - _ [4]byte - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - Ino uint64 -} - -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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -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 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 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 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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -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 - X_f [8]uint8 -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -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 ( - 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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint32 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go deleted file mode 100644 index 0d0de46f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ /dev/null @@ -1,868 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build arm64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - 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 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 - X__pad1 uint64 - Size int64 - Blksize int32 - X__pad2 int32 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ [2]int32 -} - -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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 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 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - PadFd int32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint64 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go deleted file mode 100644 index a9087c52..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ /dev/null @@ -1,865 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -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 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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 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 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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -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 - X_f [8]int8 -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -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 ( - 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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint32 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go deleted file mode 100644 index 01e8f65c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ /dev/null @@ -1,870 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -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 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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 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 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint64 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go deleted file mode 100644 index 6f9452d8..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ /dev/null @@ -1,870 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mips64le,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -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 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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 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 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint64 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go deleted file mode 100644 index 6de721f7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ /dev/null @@ -1,865 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build mipsle,linux - -package unix - -const ( - sizeofPtr = 0x4 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x4 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -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 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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 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 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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x1c - SizeofCmsghdr = 0xc - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x8 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [2]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -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 - X_f [8]int8 -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -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 ( - 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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [32]uint32 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [23]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint32 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x20 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go deleted file mode 100644 index cb2701fd..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ /dev/null @@ -1,878 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - X__pad2 int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ 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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -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 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 Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 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 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]uint8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - X_padFd int32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint64 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go deleted file mode 100644 index fa5b15be..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ /dev/null @@ -1,878 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build ppc64le,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - Ino uint64 - Nlink uint64 - Mode uint32 - Uid uint32 - Gid uint32 - X__pad2 int32 - Rdev uint64 - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - _ uint64 - _ uint64 - _ 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 StatxTimestamp struct { - Sec int64 - Nsec uint32 - X__reserved 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]uint8 - _ [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]uint8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]uint8 -} - -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 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 Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 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 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]uint8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]uint8 - Fpack [6]uint8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - X_padFd int32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -const RNDGETENTCNT = 0x40045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Line uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint64 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go deleted file mode 100644 index 64952cb7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ /dev/null @@ -1,895 +0,0 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +build s390x,linux - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - _ [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - _ [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - _ [4]byte - 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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -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 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 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 - _ [14]uint64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - _ [5]byte -} - -type Fsid struct { - _ [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - _ [4]byte - Start int64 - Len int64 - Pid int32 - _ [4]byte -} - -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 KeyctlDHParams struct { - Private int32 - Prime int32 - Base int32 -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x6 - FADV_NOREUSE = 0x7 -) - -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 RawSockaddrCAN struct { - Family uint16 - _ [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 Msghdr struct { - Name *byte - Namelen uint32 - _ [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - _ [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - _ [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrL2 = 0xe - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIovec = 0x10 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofPacketMreq = 0x10 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2c - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - _ [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 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 - _ [4]byte - Fprs [16]float64 -} - -type PtracePer struct { - _ [0]uint64 - _ [24]byte - _ [8]byte - Starting_addr uint64 - Ending_addr uint64 - Perc_atmid uint16 - _ [6]byte - 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 - _ [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - _ [0]int8 - _ [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - _ [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - _ [4]byte -} - -type EpollEvent struct { - Events uint32 - _ int32 - Fd int32 - Pad int32 -} - -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_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x2000 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - _ [16]uint64 -} - -const RNDGETENTCNT = 0x80045200 - -const PERF_IOC_FLAG_GROUP = 0x1 - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} - -type Winsize struct { - Row uint16 - Col uint16 - Xpixel uint16 - Ypixel uint16 -} - -type Taskstats struct { - Version uint16 - _ [2]byte - Ac_exitcode uint32 - Ac_flag uint8 - Ac_nice uint8 - _ [6]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 -} - -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_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_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 -) - -type cpuMask uint64 - -const ( - _CPU_SETSIZE = 0x400 - _NCPUBITS = 0x40 -) - -const ( - BDADDR_BREDR = 0x0 - BDADDR_LE_PUBLIC = 0x1 - BDADDR_LE_RANDOM = 0x2 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go deleted file mode 100644 index 9dbbb1ce..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ /dev/null @@ -1,664 +0,0 @@ -// +build sparc64,linux -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go | go run mkpost.go - -package unix - -const ( - sizeofPtr = 0x8 - sizeofShort = 0x2 - sizeofInt = 0x4 - sizeofLong = 0x8 - sizeofLongLong = 0x8 - PathMax = 0x1000 -) - -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 Timex struct { - Modes uint32 - Pad_cgo_0 [4]byte - Offset int64 - Freq int64 - Maxerror int64 - Esterror int64 - Status int32 - Pad_cgo_1 [4]byte - Constant int64 - Precision int64 - Tolerance int64 - Time Timeval - Tick int64 - Ppsfreq int64 - Jitter int64 - Shift int32 - Pad_cgo_2 [4]byte - Stabil int64 - Jitcnt int64 - Calcnt int64 - Errcnt int64 - Stbcnt int64 - Tai int32 - Pad_cgo_3 [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 Rlimit struct { - Cur uint64 - Max uint64 -} - -type _Gid_t uint32 - -type Stat_t struct { - Dev uint64 - X__pad1 uint16 - Pad_cgo_0 [6]byte - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad2 uint16 - Pad_cgo_1 [6]byte - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - X__glibc_reserved4 uint64 - X__glibc_reserved5 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 Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte -} - -type Fsid struct { - X__val [2]int32 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - X__glibc_reserved int16 - Pad_cgo_1 [2]byte -} - -const ( - FADV_NORMAL = 0x0 - FADV_RANDOM = 0x1 - FADV_SEQUENTIAL = 0x2 - FADV_WILLNEED = 0x3 - FADV_DONTNEED = 0x4 - FADV_NOREUSE = 0x5 -) - -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 RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]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 - Zero [4]uint8 -} - -type RawSockaddr struct { - Family uint16 - Data [14]int8 -} - -type RawSockaddrAny struct { - Addr RawSockaddr - Pad [96]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 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 - Pad_cgo_0 [4]byte - Iov *Iovec - Iovlen uint64 - Control *byte - Controllen uint64 - Flags int32 - Pad_cgo_1 [4]byte -} - -type Cmsghdr struct { - Len uint64 - Level int32 - Type int32 -} - -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 - Pad_cgo_0 [2]byte - 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 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x1c - SizeofSockaddrAny = 0x70 - SizeofSockaddrUnix = 0x6e - SizeofSockaddrLinklayer = 0x14 - SizeofSockaddrNetlink = 0xc - SizeofSockaddrHCI = 0x6 - SizeofSockaddrCAN = 0x10 - SizeofSockaddrALG = 0x58 - SizeofSockaddrVM = 0x10 - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPMreqn = 0xc - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x38 - SizeofCmsghdr = 0x10 - SizeofInet4Pktinfo = 0xc - SizeofInet6Pktinfo = 0x14 - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc - SizeofTCPInfo = 0x68 -) - -const ( - IFA_UNSPEC = 0x0 - IFA_ADDRESS = 0x1 - IFA_LOCAL = 0x2 - IFA_LABEL = 0x3 - IFA_BROADCAST = 0x4 - IFA_ANYCAST = 0x5 - IFA_CACHEINFO = 0x6 - IFA_MULTICAST = 0x7 - 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_MAX = 0x2a - 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 - 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 - 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_IPV6_PREFIX = 0x12 - RTNLGRP_IPV6_RULE = 0x13 - RTNLGRP_ND_USEROPT = 0x14 - SizeofNlMsghdr = 0x10 - SizeofNlMsgerr = 0x14 - SizeofRtGenmsg = 0x1 - SizeofNlAttr = 0x4 - SizeofRtAttr = 0x4 - SizeofIfInfomsg = 0x10 - SizeofIfAddrmsg = 0x8 - SizeofRtMsg = 0xc - SizeofRtNexthop = 0x8 -) - -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 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 -} - -type IfAddrmsg struct { - Family uint8 - Prefixlen uint8 - Flags uint8 - Scope uint8 - Index 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 -} - -const ( - SizeofSockFilter = 0x8 - SizeofSockFprog = 0x10 -) - -type SockFilter struct { - Code uint16 - Jt uint8 - Jf uint8 - K uint32 -} - -type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter -} - -type InotifyEvent struct { - Wd int32 - Mask uint32 - Cookie uint32 - Len uint32 -} - -const SizeofInotifyEvent = 0x10 - -type PtraceRegs struct { - Regs [16]uint64 - Tstate uint64 - Tpc uint64 - Tnpc uint64 - Y uint32 - Magic uint32 -} - -type ptracePsw struct { -} - -type ptraceFpregs struct { -} - -type ptracePer struct { -} - -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 - Pad_cgo_0 [4]byte - Totalhigh uint64 - Freehigh uint64 - Unit uint32 - X_f [0]int8 - Pad_cgo_1 [4]byte -} - -type Utsname struct { - Sysname [65]byte - Nodename [65]byte - Release [65]byte - Version [65]byte - Machine [65]byte - Domainname [65]byte -} - -type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_1 [4]byte -} - -type EpollEvent struct { - Events uint32 - X_padFd int32 - Fd int32 - Pad int32 -} - -const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 - AT_SYMLINK_FOLLOW = 0x400 - AT_SYMLINK_NOFOLLOW = 0x100 -) - -type PollFd struct { - Fd int32 - Events int16 - Revents int16 -} - -const ( - POLLIN = 0x1 - POLLPRI = 0x2 - POLLOUT = 0x4 - POLLRDHUP = 0x800 - POLLERR = 0x8 - POLLHUP = 0x10 - POLLNVAL = 0x20 -) - -type Sigset_t struct { - X__val [16]uint64 -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Line uint8 - Cc [19]uint8 - Ispeed uint32 - Ospeed uint32 -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go deleted file mode 100644 index d4454524..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ /dev/null @@ -1,459 +0,0 @@ -// cgo -godefs types_solaris.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -// +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 - -const ( - S_IFMT = 0xf000 - 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_IWUSR = 0x80 - S_IXUSR = 0x40 -) - -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 - Pad_cgo_0 [4]byte - Blocks int64 - Fstype [16]int8 -} - -type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Sysid int32 - Pid int32 - Pad [4]int64 -} - -type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Name [1]int8 - Pad_cgo_0 [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 - X__sin6_src_id 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 *int8 - 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 - Accrights *int8 - Accrightslen int32 - Pad_cgo_2 [4]byte -} - -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 { - X__icmp6_filt [8]uint32 -} - -const ( - SizeofSockaddrInet4 = 0x10 - SizeofSockaddrInet6 = 0x20 - SizeofSockaddrAny = 0xfc - SizeofSockaddrUnix = 0x6e - SizeofSockaddrDatalink = 0xfc - SizeofLinger = 0x8 - SizeofIPMreq = 0x8 - SizeofIPv6Mreq = 0x14 - SizeofMsghdr = 0x30 - SizeofCmsghdr = 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 - Pad_cgo_0 [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 - Pad_cgo_0 [2]byte - Data IfData -} - -type IfData struct { - Type uint8 - Addrlen uint8 - Hdrlen uint8 - Pad_cgo_0 [1]byte - 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 - Pad_cgo_0 [2]byte - Metric int32 -} - -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 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 - 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 BpfTimeval struct { - Sec int32 - Usec int32 -} - -type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte -} - -type Termios struct { - Iflag uint32 - Oflag uint32 - Cflag uint32 - Lflag uint32 - Cc [19]uint8 - Pad_cgo_0 [1]byte -} - -type Termio struct { - Iflag uint16 - Oflag uint16 - Cflag uint16 - Lflag uint16 - Line int8 - Cc [8]uint8 - Pad_cgo_0 [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 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/registry/key.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/registry/key.go deleted file mode 100644 index d0beb195..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/registry/key.go +++ /dev/null @@ -1,200 +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. - -// +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" - "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) { - ki, err := k.Stat() - if err != nil { - return nil, err - } - names := make([]string, 0, ki.SubKeyCount) - buf := make([]uint16, ki.MaxSubKeyLen+1) // 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/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go deleted file mode 100644 index ceebdd77..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go +++ /dev/null @@ -1,120 +0,0 @@ -// MACHINE GENERATED BY 'go generate' COMMAND; 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) -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return nil - 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") - - procRegCreateKeyExW = modadvapi32.NewProc("RegCreateKeyExW") - procRegDeleteKeyW = modadvapi32.NewProc("RegDeleteKeyW") - procRegSetValueExW = modadvapi32.NewProc("RegSetValueExW") - procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW") - procRegDeleteValueW = modadvapi32.NewProc("RegDeleteValueW") - procRegLoadMUIStringW = modadvapi32.NewProc("RegLoadMUIStringW") - procRegConnectRegistryW = modadvapi32.NewProc("RegConnectRegistryW") - procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") -) - -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 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 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 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 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 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 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/service.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/service.go deleted file mode 100644 index a500dd7d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/service.go +++ /dev/null @@ -1,164 +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. - -// +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 -) - -//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW - -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 - - 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_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_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 - - NO_ERROR = 0 - - SC_ENUM_PROCESS_INFO = 0 -) - -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_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 -} - -//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 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 diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/debug/service.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/debug/service.go deleted file mode 100644 index 123df989..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/debug/service.go +++ /dev/null @@ -1,45 +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. - -// +build windows - -// Package debug provides facilities to execute svc.Handler on console. -// -package debug - -import ( - "os" - "os/signal" - "syscall" - - "golang.org/x/sys/windows/svc" -) - -// Run executes service name by calling appropriate handler function. -// The process is running on console, unlike real service. Use Ctrl+C to -// send "Stop" command to your service. -func Run(name string, handler svc.Handler) error { - cmds := make(chan svc.ChangeRequest) - changes := make(chan svc.Status) - - sig := make(chan os.Signal) - signal.Notify(sig) - - go func() { - status := svc.Status{State: svc.Stopped} - for { - select { - case <-sig: - cmds <- svc.ChangeRequest{svc.Stop, 0, 0, status} - case status = <-changes: - } - } - }() - - _, errno := handler.Execute([]string{name}, cmds, changes) - if errno != 0 { - return syscall.Errno(errno) - } - return nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/service.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/service.go deleted file mode 100644 index 903cba3f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/svc/service.go +++ /dev/null @@ -1,363 +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. - -// +build windows - -// Package svc provides everything required to build Windows service. -// -package svc - -import ( - "errors" - "runtime" - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -// State describes service execution state (Stopped, Running and so on). -type State uint32 - -const ( - Stopped = State(windows.SERVICE_STOPPED) - StartPending = State(windows.SERVICE_START_PENDING) - StopPending = State(windows.SERVICE_STOP_PENDING) - Running = State(windows.SERVICE_RUNNING) - ContinuePending = State(windows.SERVICE_CONTINUE_PENDING) - PausePending = State(windows.SERVICE_PAUSE_PENDING) - Paused = State(windows.SERVICE_PAUSED) -) - -// Cmd represents service state change request. It is sent to a service -// by the service manager, and should be actioned upon by the service. -type Cmd uint32 - -const ( - Stop = Cmd(windows.SERVICE_CONTROL_STOP) - Pause = Cmd(windows.SERVICE_CONTROL_PAUSE) - Continue = Cmd(windows.SERVICE_CONTROL_CONTINUE) - Interrogate = Cmd(windows.SERVICE_CONTROL_INTERROGATE) - Shutdown = Cmd(windows.SERVICE_CONTROL_SHUTDOWN) - ParamChange = Cmd(windows.SERVICE_CONTROL_PARAMCHANGE) - NetBindAdd = Cmd(windows.SERVICE_CONTROL_NETBINDADD) - NetBindRemove = Cmd(windows.SERVICE_CONTROL_NETBINDREMOVE) - NetBindEnable = Cmd(windows.SERVICE_CONTROL_NETBINDENABLE) - NetBindDisable = Cmd(windows.SERVICE_CONTROL_NETBINDDISABLE) - DeviceEvent = Cmd(windows.SERVICE_CONTROL_DEVICEEVENT) - HardwareProfileChange = Cmd(windows.SERVICE_CONTROL_HARDWAREPROFILECHANGE) - PowerEvent = Cmd(windows.SERVICE_CONTROL_POWEREVENT) - SessionChange = Cmd(windows.SERVICE_CONTROL_SESSIONCHANGE) -) - -// Accepted is used to describe commands accepted by the service. -// Note that Interrogate is always accepted. -type Accepted uint32 - -const ( - AcceptStop = Accepted(windows.SERVICE_ACCEPT_STOP) - AcceptShutdown = Accepted(windows.SERVICE_ACCEPT_SHUTDOWN) - AcceptPauseAndContinue = Accepted(windows.SERVICE_ACCEPT_PAUSE_CONTINUE) - AcceptParamChange = Accepted(windows.SERVICE_ACCEPT_PARAMCHANGE) - AcceptNetBindChange = Accepted(windows.SERVICE_ACCEPT_NETBINDCHANGE) - AcceptHardwareProfileChange = Accepted(windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE) - AcceptPowerEvent = Accepted(windows.SERVICE_ACCEPT_POWEREVENT) - AcceptSessionChange = Accepted(windows.SERVICE_ACCEPT_SESSIONCHANGE) -) - -// Status combines State and Accepted commands to fully describe running service. -type Status struct { - State State - Accepts Accepted - CheckPoint uint32 // used to report progress during a lengthy operation - WaitHint uint32 // estimated time required for a pending operation, in milliseconds -} - -// ChangeRequest is sent to the service Handler to request service status change. -type ChangeRequest struct { - Cmd Cmd - EventType uint32 - EventData uintptr - CurrentStatus Status -} - -// Handler is the interface that must be implemented to build Windows service. -type Handler interface { - - // Execute will be called by the package code at the start of - // the service, and the service will exit once Execute completes. - // Inside Execute you must read service change requests from r and - // act accordingly. You must keep service control manager up to date - // about state of your service by writing into s as required. - // args contains service name followed by argument strings passed - // to the service. - // You can provide service exit code in exitCode return parameter, - // with 0 being "no error". You can also indicate if exit code, - // if any, is service specific or not by using svcSpecificEC - // parameter. - Execute(args []string, r <-chan ChangeRequest, s chan<- Status) (svcSpecificEC bool, exitCode uint32) -} - -var ( - // These are used by asm code. - goWaitsH uintptr - cWaitsH uintptr - ssHandle uintptr - sName *uint16 - sArgc uintptr - sArgv **uint16 - ctlHandlerExProc uintptr - cSetEvent uintptr - cWaitForSingleObject uintptr - cRegisterServiceCtrlHandlerExW uintptr -) - -func init() { - k := syscall.MustLoadDLL("kernel32.dll") - cSetEvent = k.MustFindProc("SetEvent").Addr() - cWaitForSingleObject = k.MustFindProc("WaitForSingleObject").Addr() - a := syscall.MustLoadDLL("advapi32.dll") - cRegisterServiceCtrlHandlerExW = a.MustFindProc("RegisterServiceCtrlHandlerExW").Addr() -} - -// The HandlerEx prototype also has a context pointer but since we don't use -// it at start-up time we don't have to pass it over either. -type ctlEvent struct { - cmd Cmd - eventType uint32 - eventData uintptr - errno uint32 -} - -// service provides access to windows service api. -type service struct { - name string - h windows.Handle - cWaits *event - goWaits *event - c chan ctlEvent - handler Handler -} - -func newService(name string, handler Handler) (*service, error) { - var s service - var err error - s.name = name - s.c = make(chan ctlEvent) - s.handler = handler - s.cWaits, err = newEvent() - if err != nil { - return nil, err - } - s.goWaits, err = newEvent() - if err != nil { - s.cWaits.Close() - return nil, err - } - return &s, nil -} - -func (s *service) close() error { - s.cWaits.Close() - s.goWaits.Close() - return nil -} - -type exitCode struct { - isSvcSpecific bool - errno uint32 -} - -func (s *service) updateStatus(status *Status, ec *exitCode) error { - if s.h == 0 { - return errors.New("updateStatus with no service status handle") - } - var t windows.SERVICE_STATUS - t.ServiceType = windows.SERVICE_WIN32_OWN_PROCESS - t.CurrentState = uint32(status.State) - if status.Accepts&AcceptStop != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_STOP - } - if status.Accepts&AcceptShutdown != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_SHUTDOWN - } - if status.Accepts&AcceptPauseAndContinue != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_PAUSE_CONTINUE - } - if status.Accepts&AcceptParamChange != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_PARAMCHANGE - } - if status.Accepts&AcceptNetBindChange != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_NETBINDCHANGE - } - if status.Accepts&AcceptHardwareProfileChange != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE - } - if status.Accepts&AcceptPowerEvent != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_POWEREVENT - } - if status.Accepts&AcceptSessionChange != 0 { - t.ControlsAccepted |= windows.SERVICE_ACCEPT_SESSIONCHANGE - } - if ec.errno == 0 { - t.Win32ExitCode = windows.NO_ERROR - t.ServiceSpecificExitCode = windows.NO_ERROR - } else if ec.isSvcSpecific { - t.Win32ExitCode = uint32(windows.ERROR_SERVICE_SPECIFIC_ERROR) - t.ServiceSpecificExitCode = ec.errno - } else { - t.Win32ExitCode = ec.errno - t.ServiceSpecificExitCode = windows.NO_ERROR - } - t.CheckPoint = status.CheckPoint - t.WaitHint = status.WaitHint - return windows.SetServiceStatus(s.h, &t) -} - -const ( - sysErrSetServiceStatusFailed = uint32(syscall.APPLICATION_ERROR) + iota - sysErrNewThreadInCallback -) - -func (s *service) run() { - s.goWaits.Wait() - s.h = windows.Handle(ssHandle) - argv := (*[100]*int16)(unsafe.Pointer(sArgv))[:sArgc] - args := make([]string, len(argv)) - for i, a := range argv { - args[i] = syscall.UTF16ToString((*[1 << 20]uint16)(unsafe.Pointer(a))[:]) - } - - cmdsToHandler := make(chan ChangeRequest) - changesFromHandler := make(chan Status) - exitFromHandler := make(chan exitCode) - - go func() { - ss, errno := s.handler.Execute(args, cmdsToHandler, changesFromHandler) - exitFromHandler <- exitCode{ss, errno} - }() - - status := Status{State: Stopped} - ec := exitCode{isSvcSpecific: true, errno: 0} - var outch chan ChangeRequest - inch := s.c - var cmd Cmd - var evtype uint32 - var evdata uintptr -loop: - for { - select { - case r := <-inch: - if r.errno != 0 { - ec.errno = r.errno - break loop - } - inch = nil - outch = cmdsToHandler - cmd = r.cmd - evtype = r.eventType - evdata = r.eventData - case outch <- ChangeRequest{cmd, evtype, evdata, status}: - inch = s.c - outch = nil - case c := <-changesFromHandler: - err := s.updateStatus(&c, &ec) - if err != nil { - // best suitable error number - ec.errno = sysErrSetServiceStatusFailed - if err2, ok := err.(syscall.Errno); ok { - ec.errno = uint32(err2) - } - break loop - } - status = c - case ec = <-exitFromHandler: - break loop - } - } - - s.updateStatus(&Status{State: Stopped}, &ec) - s.cWaits.Set() -} - -func newCallback(fn interface{}) (cb uintptr, err error) { - defer func() { - r := recover() - if r == nil { - return - } - cb = 0 - switch v := r.(type) { - case string: - err = errors.New(v) - case error: - err = v - default: - err = errors.New("unexpected panic in syscall.NewCallback") - } - }() - return syscall.NewCallback(fn), nil -} - -// BUG(brainman): There is no mechanism to run multiple services -// inside one single executable. Perhaps, it can be overcome by -// using RegisterServiceCtrlHandlerEx Windows api. - -// Run executes service name by calling appropriate handler function. -func Run(name string, handler Handler) error { - runtime.LockOSThread() - - tid := windows.GetCurrentThreadId() - - s, err := newService(name, handler) - if err != nil { - return err - } - - ctlHandler := func(ctl uint32, evtype uint32, evdata uintptr, context uintptr) uintptr { - e := ctlEvent{cmd: Cmd(ctl), eventType: evtype, eventData: evdata} - // We assume that this callback function is running on - // the same thread as Run. Nowhere in MS documentation - // I could find statement to guarantee that. So putting - // check here to verify, otherwise things will go bad - // quickly, if ignored. - i := windows.GetCurrentThreadId() - if i != tid { - e.errno = sysErrNewThreadInCallback - } - s.c <- e - // Always return NO_ERROR (0) for now. - return 0 - } - - var svcmain uintptr - getServiceMain(&svcmain) - t := []windows.SERVICE_TABLE_ENTRY{ - {syscall.StringToUTF16Ptr(s.name), svcmain}, - {nil, 0}, - } - - goWaitsH = uintptr(s.goWaits.h) - cWaitsH = uintptr(s.cWaits.h) - sName = t[0].ServiceName - ctlHandlerExProc, err = newCallback(ctlHandler) - if err != nil { - return err - } - - go s.run() - - err = windows.StartServiceCtrlDispatcher(&t[0]) - if err != nil { - return err - } - return nil -} - -// StatusHandle returns service status handle. It is safe to call this function -// from inside the Handler.Execute because then it is guaranteed to be set. -// This code will have to change once multiple services are possible per process. -func StatusHandle() windows.Handle { - return windows.Handle(ssHandle) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/syscall.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/syscall.go deleted file mode 100644 index b07bc230..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/syscall.go +++ /dev/null @@ -1,71 +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. - -// +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 ( - "syscall" -) - -// 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) { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - 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 -} - -// 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/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/zsyscall_windows.go deleted file mode 100644 index c7b3b15e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ /dev/null @@ -1,2687 +0,0 @@ -// MACHINE GENERATED BY 'go generate' COMMAND; 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) -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return nil - 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 = NewLazySystemDLL("advapi32.dll") - modkernel32 = NewLazySystemDLL("kernel32.dll") - modshell32 = NewLazySystemDLL("shell32.dll") - modmswsock = NewLazySystemDLL("mswsock.dll") - modcrypt32 = NewLazySystemDLL("crypt32.dll") - modws2_32 = NewLazySystemDLL("ws2_32.dll") - moddnsapi = NewLazySystemDLL("dnsapi.dll") - modiphlpapi = NewLazySystemDLL("iphlpapi.dll") - modsecur32 = NewLazySystemDLL("secur32.dll") - modnetapi32 = NewLazySystemDLL("netapi32.dll") - moduserenv = NewLazySystemDLL("userenv.dll") - - procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") - procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") - procReportEventW = modadvapi32.NewProc("ReportEventW") - procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") - procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") - procCreateServiceW = modadvapi32.NewProc("CreateServiceW") - procOpenServiceW = modadvapi32.NewProc("OpenServiceW") - procDeleteService = modadvapi32.NewProc("DeleteService") - procStartServiceW = modadvapi32.NewProc("StartServiceW") - procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") - procControlService = modadvapi32.NewProc("ControlService") - procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") - procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") - procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") - procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") - procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") - procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") - procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") - procGetLastError = modkernel32.NewProc("GetLastError") - procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") - procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") - procFreeLibrary = modkernel32.NewProc("FreeLibrary") - procGetProcAddress = modkernel32.NewProc("GetProcAddress") - procGetVersion = modkernel32.NewProc("GetVersion") - procFormatMessageW = modkernel32.NewProc("FormatMessageW") - procExitProcess = modkernel32.NewProc("ExitProcess") - procCreateFileW = modkernel32.NewProc("CreateFileW") - procReadFile = modkernel32.NewProc("ReadFile") - procWriteFile = modkernel32.NewProc("WriteFile") - procSetFilePointer = modkernel32.NewProc("SetFilePointer") - procCloseHandle = modkernel32.NewProc("CloseHandle") - procGetStdHandle = modkernel32.NewProc("GetStdHandle") - procSetStdHandle = modkernel32.NewProc("SetStdHandle") - procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") - procFindNextFileW = modkernel32.NewProc("FindNextFileW") - procFindClose = modkernel32.NewProc("FindClose") - procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") - procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") - procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") - procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") - procDeleteFileW = modkernel32.NewProc("DeleteFileW") - procMoveFileW = modkernel32.NewProc("MoveFileW") - procMoveFileExW = modkernel32.NewProc("MoveFileExW") - procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") - procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") - procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") - procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") - procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") - procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") - procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") - procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procCreateProcessW = modkernel32.NewProc("CreateProcessW") - procOpenProcess = modkernel32.NewProc("OpenProcess") - procTerminateProcess = modkernel32.NewProc("TerminateProcess") - procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") - procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") - procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess") - procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") - procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") - procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") - procGetTempPathW = modkernel32.NewProc("GetTempPathW") - procCreatePipe = modkernel32.NewProc("CreatePipe") - procGetFileType = modkernel32.NewProc("GetFileType") - procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") - procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") - procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") - procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") - procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") - procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetFileTime = modkernel32.NewProc("SetFileTime") - procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") - procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") - procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") - procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") - procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") - procLocalFree = modkernel32.NewProc("LocalFree") - procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") - procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") - procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") - procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") - procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") - procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") - procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") - procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") - procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") - procVirtualLock = modkernel32.NewProc("VirtualLock") - procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") - procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") - procVirtualFree = modkernel32.NewProc("VirtualFree") - procVirtualProtect = modkernel32.NewProc("VirtualProtect") - procTransmitFile = modmswsock.NewProc("TransmitFile") - procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") - procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") - procCertOpenStore = modcrypt32.NewProc("CertOpenStore") - procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") - procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") - procCertCloseStore = modcrypt32.NewProc("CertCloseStore") - procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") - procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") - procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") - procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") - procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") - procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") - procRegCloseKey = modadvapi32.NewProc("RegCloseKey") - procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") - procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") - procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") - procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") - procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") - procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") - procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") - procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") - procReadConsoleW = modkernel32.NewProc("ReadConsoleW") - procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") - procProcess32FirstW = modkernel32.NewProc("Process32FirstW") - procProcess32NextW = modkernel32.NewProc("Process32NextW") - procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") - procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") - procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") - procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") - procCreateEventW = modkernel32.NewProc("CreateEventW") - procCreateEventExW = modkernel32.NewProc("CreateEventExW") - procOpenEventW = modkernel32.NewProc("OpenEventW") - procSetEvent = modkernel32.NewProc("SetEvent") - procResetEvent = modkernel32.NewProc("ResetEvent") - procPulseEvent = modkernel32.NewProc("PulseEvent") - procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") - procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") - procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") - procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") - procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") - procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") - procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") - procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") - procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") - procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") - procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") - procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") - procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") - procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") - procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") - procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") - procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") - procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") - procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") - procWSAStartup = modws2_32.NewProc("WSAStartup") - procWSACleanup = modws2_32.NewProc("WSACleanup") - procWSAIoctl = modws2_32.NewProc("WSAIoctl") - procsocket = modws2_32.NewProc("socket") - procsetsockopt = modws2_32.NewProc("setsockopt") - procgetsockopt = modws2_32.NewProc("getsockopt") - procbind = modws2_32.NewProc("bind") - procconnect = modws2_32.NewProc("connect") - procgetsockname = modws2_32.NewProc("getsockname") - procgetpeername = modws2_32.NewProc("getpeername") - proclisten = modws2_32.NewProc("listen") - procshutdown = modws2_32.NewProc("shutdown") - procclosesocket = modws2_32.NewProc("closesocket") - procAcceptEx = modmswsock.NewProc("AcceptEx") - procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") - procWSARecv = modws2_32.NewProc("WSARecv") - procWSASend = modws2_32.NewProc("WSASend") - procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") - procWSASendTo = modws2_32.NewProc("WSASendTo") - procgethostbyname = modws2_32.NewProc("gethostbyname") - procgetservbyname = modws2_32.NewProc("getservbyname") - procntohs = modws2_32.NewProc("ntohs") - procgetprotobyname = modws2_32.NewProc("getprotobyname") - procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") - procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") - procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") - procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") - procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") - procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") - procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") - procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") - procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") - procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") - procGetACP = modkernel32.NewProc("GetACP") - procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") - procTranslateNameW = modsecur32.NewProc("TranslateNameW") - procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") - procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") - procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") - procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") - procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") - procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") - procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") - procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") - procGetLengthSid = modadvapi32.NewProc("GetLengthSid") - procCopySid = modadvapi32.NewProc("CopySid") - procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") - procFreeSid = modadvapi32.NewProc("FreeSid") - procEqualSid = modadvapi32.NewProc("EqualSid") - procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") - procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") - procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") - procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") -) - -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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) - if r0 != 0 { - lasterr = syscall.Errno(r0) - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) - ver = uint32(r0) - if ver == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) - return -} - -func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 - } else { - _p0 = 0 - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(da), uintptr(_p0), uintptr(pid)) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetStartupInfo(startupInfo *StartupInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetCurrentProcess() (pseudoHandle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentProcess.Addr(), 0, 0, 0, 0) - pseudoHandle = Handle(r0) - if pseudoHandle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 - } else { - _p0 = 0 - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) - cmd = (*uint16)(unsafe.Pointer(r0)) - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 - } else { - _p0 = 0 - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 == InvalidHandle { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 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 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 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 getCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) - pid = uint32(r0) - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) - id = uint32(r0) - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { - var _p0 uint32 - if inheritHandle { - _p0 = 1 - } else { - _p0 = 0 - } - r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) - handle = Handle(r0) - if handle == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) - driveType = uint32(r0) - return -} - -func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) - drivesBitMask = uint32(r0) - if drivesBitMask == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) - if r1 == socket_error { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) - u = uint16(r0) - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 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 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 FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) - 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 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 SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) - acp = uint32(r0) - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 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 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 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - len = uint32(r0) - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) - if r1 != 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func OpenProcessToken(h Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(h), uintptr(access), uintptr(unsafe.Pointer(token))) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(t), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) - if r1 == 0 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - 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 { - if e1 != 0 { - err = errnoErr(e1) - } else { - err = syscall.EINVAL - } - } - return -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/CONTRIBUTING.md b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/CONTRIBUTING.md deleted file mode 100644 index 88dff59b..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/CONTRIBUTING.md +++ /dev/null @@ -1,31 +0,0 @@ -# Contributing to Go - -Go is an open source project. - -It is the work of hundreds of contributors. We appreciate your help! - - -## Filing issues - -When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: - -1. What version of Go are you using (`go version`)? -2. What operating system and processor architecture are you using? -3. What did you do? -4. What did you expect to see? -5. What did you see instead? - -General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. -The gophers there will answer or ask you to file an issue if you've tripped over a bug. - -## Contributing code - -Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) -before sending patches. - -**We do not accept GitHub pull requests** -(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). - -Unless otherwise noted, the Go source files are distributed under -the BSD-style license found in the LICENSE file. - diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/LICENSE b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/vendor/github.com/elastic/beats/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/vendor/github.com/elastic/beats/vendor/golang.org/x/text/PATENTS b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/github.com/elastic/beats/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/vendor/github.com/elastic/beats/vendor/golang.org/x/text/README.md b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/README.md deleted file mode 100644 index b3f365ee..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/README.md +++ /dev/null @@ -1,93 +0,0 @@ -# Go Text - -This repository holds supplementary Go libraries for text processing, many involving Unicode. - -## Semantic Versioning -This repo uses Semantic versioning (http://semver.org/), so -1. MAJOR version when you make incompatible API changes, -1. MINOR version when you add functionality in a backwards-compatible manner, - and -1. PATCH version when you make backwards-compatible bug fixes. - -Until version 1.0.0 of x/text is reached, the minor version is considered a -major version. So going from 0.1.0 to 0.2.0 is considered to be a major version -bump. - -A major new CLDR version is mapped to a minor version increase in x/text. -Any other new CLDR version is mapped to a patch version increase in x/text. - -It is important that the Unicode version used in `x/text` matches the one used -by your Go compiler. The `x/text` repository supports multiple versions of -Unicode and will match the version of Unicode to that of the Go compiler. At the -moment this is supported for Go compilers from version 1.7. - -## Download/Install - -The easiest way to install is to run `go get -u golang.org/x/text`. You can -also manually git clone the repository to `$GOPATH/src/golang.org/x/text`. - -## Contribute -To submit changes to this repository, see http://golang.org/doc/contribute.html. - -To generate the tables in this repository (except for the encoding tables), -run go generate from this directory. By default tables are generated for the -Unicode version in core and the CLDR version defined in -golang.org/x/text/unicode/cldr. - -Running go generate will as a side effect create a DATA subdirectory in this -directory, which holds all files that are used as a source for generating the -tables. This directory will also serve as a cache. - -## Testing -Run - - go test ./... - -from this directory to run all tests. Add the "-tags icu" flag to also run -ICU conformance tests (if available). This requires that you have the correct -ICU version installed on your system. - -TODO: -- updating unversioned source files. - -## Generating Tables - -To generate the tables in this repository (except for the encoding -tables), run `go generate` from this directory. By default tables are -generated for the Unicode version in core and the CLDR version defined in -golang.org/x/text/unicode/cldr. - -Running go generate will as a side effect create a DATA subdirectory in this -directory which holds all files that are used as a source for generating the -tables. This directory will also serve as a cache. - -## Versions -To update a Unicode version run - - UNICODE_VERSION=x.x.x go generate - -where `x.x.x` must correspond to a directory in http://www.unicode.org/Public/. -If this version is newer than the version in core it will also update the -relevant packages there. The idna package in x/net will always be updated. - -To update a CLDR version run - - CLDR_VERSION=version go generate - -where `version` must correspond to a directory in -http://www.unicode.org/Public/cldr/. - -Note that the code gets adapted over time to changes in the data and that -backwards compatibility is not maintained. -So updating to a different version may not work. - -The files in DATA/{iana|icu|w3|whatwg} are currently not versioned. - -## Report Issues / Send Patches - -This repository uses Gerrit for code changes. To learn how to submit changes to -this repository, see https://golang.org/doc/contribute.html. - -The main issue tracker for the image repository is located at -https://github.com/golang/go/issues. Prefix your issue with "x/image:" in the -subject line, so it is easy to find. diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/codereview.cfg b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/codereview.cfg deleted file mode 100644 index 3f8b14b6..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/codereview.cfg +++ /dev/null @@ -1 +0,0 @@ -issuerepo: golang/go diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/doc.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/doc.go deleted file mode 100644 index 2e19a419..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/doc.go +++ /dev/null @@ -1,16 +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:generate go run gen.go - -// text is a repository of text-related packages related to internationalization -// (i18n) and localization (l10n), such as character encodings, text -// transformations, and locale-specific text handling. -// -// There is a 30 minute video, recorded on 2017-11-30, on the "State of -// golang.org/x/text" at https://www.youtube.com/watch?v=uYrDrMEGu58 -package text - -// TODO: more documentation on general concepts, such as Transformers, use -// of normalization, etc. diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/charmap/charmap.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/charmap/charmap.go deleted file mode 100644 index e89ff073..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/charmap/charmap.go +++ /dev/null @@ -1,249 +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 maketables.go - -// Package charmap provides simple character encodings such as IBM Code Page 437 -// and Windows 1252. -package charmap // import "golang.org/x/text/encoding/charmap" - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// These encodings vary only in the way clients should interpret them. Their -// coded character set is identical and a single implementation can be shared. -var ( - // ISO8859_6E is the ISO 8859-6E encoding. - ISO8859_6E encoding.Encoding = &iso8859_6E - - // ISO8859_6I is the ISO 8859-6I encoding. - ISO8859_6I encoding.Encoding = &iso8859_6I - - // ISO8859_8E is the ISO 8859-8E encoding. - ISO8859_8E encoding.Encoding = &iso8859_8E - - // ISO8859_8I is the ISO 8859-8I encoding. - ISO8859_8I encoding.Encoding = &iso8859_8I - - iso8859_6E = internal.Encoding{ - Encoding: ISO8859_6, - Name: "ISO-8859-6E", - MIB: identifier.ISO88596E, - } - - iso8859_6I = internal.Encoding{ - Encoding: ISO8859_6, - Name: "ISO-8859-6I", - MIB: identifier.ISO88596I, - } - - iso8859_8E = internal.Encoding{ - Encoding: ISO8859_8, - Name: "ISO-8859-8E", - MIB: identifier.ISO88598E, - } - - iso8859_8I = internal.Encoding{ - Encoding: ISO8859_8, - Name: "ISO-8859-8I", - MIB: identifier.ISO88598I, - } -) - -// All is a list of all defined encodings in this package. -var All []encoding.Encoding = listAll - -// TODO: implement these encodings, in order of importance. -// ASCII, ISO8859_1: Rather common. Close to Windows 1252. -// ISO8859_9: Close to Windows 1254. - -// utf8Enc holds a rune's UTF-8 encoding in data[:len]. -type utf8Enc struct { - len uint8 - data [3]byte -} - -// Charmap is an 8-bit character set encoding. -type Charmap struct { - // name is the encoding's name. - name string - // mib is the encoding type of this encoder. - mib identifier.MIB - // asciiSuperset states whether the encoding is a superset of ASCII. - asciiSuperset bool - // low is the lower bound of the encoded byte for a non-ASCII rune. If - // Charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00. - low uint8 - // replacement is the encoded replacement character. - replacement byte - // decode is the map from encoded byte to UTF-8. - decode [256]utf8Enc - // encoding is the map from runes to encoded bytes. Each entry is a - // uint32: the high 8 bits are the encoded byte and the low 24 bits are - // the rune. The table entries are sorted by ascending rune. - encode [256]uint32 -} - -// NewDecoder implements the encoding.Encoding interface. -func (m *Charmap) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: charmapDecoder{charmap: m}} -} - -// NewEncoder implements the encoding.Encoding interface. -func (m *Charmap) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: charmapEncoder{charmap: m}} -} - -// String returns the Charmap's name. -func (m *Charmap) String() string { - return m.name -} - -// ID implements an internal interface. -func (m *Charmap) ID() (mib identifier.MIB, other string) { - return m.mib, "" -} - -// charmapDecoder implements transform.Transformer by decoding to UTF-8. -type charmapDecoder struct { - transform.NopResetter - charmap *Charmap -} - -func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for i, c := range src { - if m.charmap.asciiSuperset && c < utf8.RuneSelf { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = c - nDst++ - nSrc = i + 1 - continue - } - - decode := &m.charmap.decode[c] - n := int(decode.len) - if nDst+n > len(dst) { - err = transform.ErrShortDst - break - } - // It's 15% faster to avoid calling copy for these tiny slices. - for j := 0; j < n; j++ { - dst[nDst] = decode.data[j] - nDst++ - } - nSrc = i + 1 - } - return nDst, nSrc, err -} - -// DecodeByte returns the Charmap's rune decoding of the byte b. -func (m *Charmap) DecodeByte(b byte) rune { - switch x := &m.decode[b]; x.len { - case 1: - return rune(x.data[0]) - case 2: - return rune(x.data[0]&0x1f)<<6 | rune(x.data[1]&0x3f) - default: - return rune(x.data[0]&0x0f)<<12 | rune(x.data[1]&0x3f)<<6 | rune(x.data[2]&0x3f) - } -} - -// charmapEncoder implements transform.Transformer by encoding from UTF-8. -type charmapEncoder struct { - transform.NopResetter - charmap *Charmap -} - -func (m charmapEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for nSrc < len(src) { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - if m.charmap.asciiSuperset { - nSrc++ - dst[nDst] = uint8(r) - nDst++ - continue - } - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - } else { - err = internal.RepertoireError(m.charmap.replacement) - } - break - } - } - - // Binary search in [low, high) for that rune in the m.charmap.encode table. - for low, high := int(m.charmap.low), 0x100; ; { - if low >= high { - err = internal.RepertoireError(m.charmap.replacement) - break loop - } - mid := (low + high) / 2 - got := m.charmap.encode[mid] - gotRune := rune(got & (1<<24 - 1)) - if gotRune < r { - low = mid + 1 - } else if gotRune > r { - high = mid - } else { - dst[nDst] = byte(got >> 24) - nDst++ - break - } - } - nSrc += size - } - return nDst, nSrc, err -} - -// EncodeRune returns the Charmap's byte encoding of the rune r. ok is whether -// r is in the Charmap's repertoire. If not, b is set to the Charmap's -// replacement byte. This is often the ASCII substitute character '\x1a'. -func (m *Charmap) EncodeRune(r rune) (b byte, ok bool) { - if r < utf8.RuneSelf && m.asciiSuperset { - return byte(r), true - } - for low, high := int(m.low), 0x100; ; { - if low >= high { - return m.replacement, false - } - mid := (low + high) / 2 - got := m.encode[mid] - gotRune := rune(got & (1<<24 - 1)) - if gotRune < r { - low = mid + 1 - } else if gotRune > r { - high = mid - } else { - return byte(got >> 24), true - } - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/charmap/tables.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/charmap/tables.go deleted file mode 100644 index cf7281e9..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/charmap/tables.go +++ /dev/null @@ -1,7410 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package charmap - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" -) - -// CodePage037 is the IBM Code Page 037 encoding. -var CodePage037 *Charmap = &codePage037 - -var codePage037 = Charmap{ - name: "IBM Code Page 037", - mib: identifier.IBM037, - asciiSuperset: false, - low: 0x00, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, - {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, - {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x3b, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xac, 0x00}}, - {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, - {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, - {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, - {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, - {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, - {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, - {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, - {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, - {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, - {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, - {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {1, [3]byte{0x5b, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, - {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, - {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, - {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, - {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, - {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, - {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, - {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, - 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, - 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, - 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, - 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, - 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, - 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, - 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, - 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, - 0xe7000058, 0xe8000059, 0xe900005a, 0xba00005b, 0xe000005c, 0xbb00005d, 0xb000005e, 0x6d00005f, - 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, - 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, - 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, - 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, - 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, - 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, - 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, - 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, - 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0x9f0000a4, 0xb20000a5, 0x6a0000a6, 0xb50000a7, - 0xbd0000a8, 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0x5f0000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, - 0x900000b0, 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, - 0x9d0000b8, 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, - 0x640000c0, 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, - 0x740000c8, 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, - 0xac0000d0, 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, - 0x800000d8, 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xad0000dd, 0xae0000de, 0x590000df, - 0x440000e0, 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, - 0x540000e8, 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, - 0x8c0000f0, 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, - 0x700000f8, 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, - }, -} - -// CodePage437 is the IBM Code Page 437 encoding. -var CodePage437 *Charmap = &codePage437 - -var codePage437 = Charmap{ - name: "IBM Code Page 437", - mib: identifier.PC8CodePage437, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, - 0x990000d6, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, - 0x910000e6, 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, - 0x8c0000ee, 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, - 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage850 is the IBM Code Page 850 encoding. -var CodePage850 *Charmap = &codePage850 - -var codePage850 = Charmap{ - name: "IBM Code Page 850", - mib: identifier.PC850Multilingual, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0xd5000131, 0x9f000192, 0xf2002017, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage852 is the IBM Code Page 852 encoding. -var CodePage852 *Charmap = &codePage852 - -var codePage852 = Charmap{ - name: "IBM Code Page 852", - mib: identifier.PCp852, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xa5, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbe, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc4, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc4, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x8f, 0x00}}, {2, [3]byte{0xc5, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc5, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x84, 0x00}}, {2, [3]byte{0xc5, 0x88, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x99, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xf50000a7, 0xf90000a8, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xf80000b0, - 0xef0000b4, 0xf70000b8, 0xaf0000bb, 0xb50000c1, 0xb60000c2, 0x8e0000c4, 0x800000c7, 0x900000c9, - 0xd30000cb, 0xd60000cd, 0xd70000ce, 0xe00000d3, 0xe20000d4, 0x990000d6, 0x9e0000d7, 0xe90000da, - 0x9a0000dc, 0xed0000dd, 0xe10000df, 0xa00000e1, 0x830000e2, 0x840000e4, 0x870000e7, 0x820000e9, - 0x890000eb, 0xa10000ed, 0x8c0000ee, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0xa30000fa, - 0x810000fc, 0xec0000fd, 0xc6000102, 0xc7000103, 0xa4000104, 0xa5000105, 0x8f000106, 0x86000107, - 0xac00010c, 0x9f00010d, 0xd200010e, 0xd400010f, 0xd1000110, 0xd0000111, 0xa8000118, 0xa9000119, - 0xb700011a, 0xd800011b, 0x91000139, 0x9200013a, 0x9500013d, 0x9600013e, 0x9d000141, 0x88000142, - 0xe3000143, 0xe4000144, 0xd5000147, 0xe5000148, 0x8a000150, 0x8b000151, 0xe8000154, 0xea000155, - 0xfc000158, 0xfd000159, 0x9700015a, 0x9800015b, 0xb800015e, 0xad00015f, 0xe6000160, 0xe7000161, - 0xdd000162, 0xee000163, 0x9b000164, 0x9c000165, 0xde00016e, 0x8500016f, 0xeb000170, 0xfb000171, - 0x8d000179, 0xab00017a, 0xbd00017b, 0xbe00017c, 0xa600017d, 0xa700017e, 0xf30002c7, 0xf40002d8, - 0xfa0002d9, 0xf20002db, 0xf10002dd, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage855 is the IBM Code Page 855 encoding. -var CodePage855 *Charmap = &codePage855 - -var codePage855 = Charmap{ - name: "IBM Code Page 855", - mib: identifier.IBM855, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x93, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x84, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xd1, 0x97, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x8a, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xae, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0xb5, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xb3, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd1, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd0, 0xaf, 0x00}}, {2, [3]byte{0xd1, 0x80, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0xa1, 0x00}}, {2, [3]byte{0xd1, 0x82, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xa3, 0x00}}, {2, [3]byte{0xd0, 0xb6, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xab, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0xa9, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xfd0000a7, 0xae0000ab, 0xf00000ad, 0xaf0000bb, 0x85000401, 0x81000402, - 0x83000403, 0x87000404, 0x89000405, 0x8b000406, 0x8d000407, 0x8f000408, 0x91000409, 0x9300040a, - 0x9500040b, 0x9700040c, 0x9900040e, 0x9b00040f, 0xa1000410, 0xa3000411, 0xec000412, 0xad000413, - 0xa7000414, 0xa9000415, 0xea000416, 0xf4000417, 0xb8000418, 0xbe000419, 0xc700041a, 0xd100041b, - 0xd300041c, 0xd500041d, 0xd700041e, 0xdd00041f, 0xe2000420, 0xe4000421, 0xe6000422, 0xe8000423, - 0xab000424, 0xb6000425, 0xa5000426, 0xfc000427, 0xf6000428, 0xfa000429, 0x9f00042a, 0xf200042b, - 0xee00042c, 0xf800042d, 0x9d00042e, 0xe000042f, 0xa0000430, 0xa2000431, 0xeb000432, 0xac000433, - 0xa6000434, 0xa8000435, 0xe9000436, 0xf3000437, 0xb7000438, 0xbd000439, 0xc600043a, 0xd000043b, - 0xd200043c, 0xd400043d, 0xd600043e, 0xd800043f, 0xe1000440, 0xe3000441, 0xe5000442, 0xe7000443, - 0xaa000444, 0xb5000445, 0xa4000446, 0xfb000447, 0xf5000448, 0xf9000449, 0x9e00044a, 0xf100044b, - 0xed00044c, 0xf700044d, 0x9c00044e, 0xde00044f, 0x84000451, 0x80000452, 0x82000453, 0x86000454, - 0x88000455, 0x8a000456, 0x8c000457, 0x8e000458, 0x90000459, 0x9200045a, 0x9400045b, 0x9600045c, - 0x9800045e, 0x9a00045f, 0xef002116, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage858 is the Windows Code Page 858 encoding. -var CodePage858 *Charmap = &codePage858 - -var codePage858 = Charmap{ - name: "Windows Code Page 858", - mib: identifier.IBM00858, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0x9f000192, 0xf2002017, 0xd50020ac, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage860 is the IBM Code Page 860 encoding. -var CodePage860 *Charmap = &codePage860 - -var codePage860 = Charmap{ - name: "IBM Code Page 860", - mib: identifier.IBM860, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x8a, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, - 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, - 0xa80000bf, 0x910000c0, 0x860000c1, 0x8f0000c2, 0x8e0000c3, 0x800000c7, 0x920000c8, 0x900000c9, - 0x890000ca, 0x980000cc, 0x8b0000cd, 0xa50000d1, 0xa90000d2, 0x9f0000d3, 0x8c0000d4, 0x990000d5, - 0x9d0000d9, 0x960000da, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e3, - 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x8d0000ec, 0xa10000ed, 0xa40000f1, 0x950000f2, - 0xa20000f3, 0x930000f4, 0x940000f5, 0xf60000f7, 0x970000f9, 0xa30000fa, 0x810000fc, 0xe2000393, - 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, - 0xe50003c3, 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, - 0xef002229, 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage862 is the IBM Code Page 862 encoding. -var CodePage862 *Charmap = &codePage862 - -var codePage862 = Charmap{ - name: "IBM Code Page 862", - mib: identifier.PC862LatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0xa50000d1, 0xe10000df, 0xa00000e1, 0xa10000ed, 0xa40000f1, 0xa20000f3, - 0xf60000f7, 0xa30000fa, 0x9f000192, 0xe2000393, 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, - 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, 0xe70003c4, 0xed0003c6, 0x800005d0, - 0x810005d1, 0x820005d2, 0x830005d3, 0x840005d4, 0x850005d5, 0x860005d6, 0x870005d7, 0x880005d8, - 0x890005d9, 0x8a0005da, 0x8b0005db, 0x8c0005dc, 0x8d0005dd, 0x8e0005de, 0x8f0005df, 0x900005e0, - 0x910005e1, 0x920005e2, 0x930005e3, 0x940005e4, 0x950005e5, 0x960005e6, 0x970005e7, 0x980005e8, - 0x990005e9, 0x9a0005ea, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage863 is the IBM Code Page 863 encoding. -var CodePage863 *Charmap = &codePage863 - -var codePage863 = Charmap{ - name: "IBM Code Page 863", - mib: identifier.IBM863, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x97}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0x9b0000a2, 0x9c0000a3, 0x980000a4, 0xa00000a6, 0x8f0000a7, 0xa40000a8, 0xae0000ab, - 0xaa0000ac, 0xa70000af, 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xa60000b3, 0xa10000b4, 0xe60000b5, - 0x860000b6, 0xfa0000b7, 0xa50000b8, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xad0000be, 0x8e0000c0, - 0x840000c2, 0x800000c7, 0x910000c8, 0x900000c9, 0x920000ca, 0x940000cb, 0xa80000ce, 0x950000cf, - 0x990000d4, 0x9d0000d9, 0x9e0000db, 0x9a0000dc, 0xe10000df, 0x850000e0, 0x830000e2, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8c0000ee, 0x8b0000ef, 0xa20000f3, 0x930000f4, - 0xf60000f7, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0x8d002017, 0xfc00207f, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage865 is the IBM Code Page 865 encoding. -var CodePage865 *Charmap = &codePage865 - -var codePage865 = Charmap{ - name: "IBM Code Page 865", - mib: identifier.IBM865, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9c0000a3, 0xaf0000a4, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, - 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xac0000bc, 0xab0000bd, 0xa80000bf, - 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, 0x990000d6, 0x9d0000d8, - 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, 0x910000e6, - 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, - 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0x9b0000f8, - 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage866 is the IBM Code Page 866 encoding. -var CodePage866 *Charmap = &codePage866 - -var codePage866 = Charmap{ - name: "IBM Code Page 866", - mib: identifier.IBM866, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xfd0000a4, 0xf80000b0, 0xfa0000b7, 0xf0000401, 0xf2000404, 0xf4000407, 0xf600040e, - 0x80000410, 0x81000411, 0x82000412, 0x83000413, 0x84000414, 0x85000415, 0x86000416, 0x87000417, - 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, - 0x90000420, 0x91000421, 0x92000422, 0x93000423, 0x94000424, 0x95000425, 0x96000426, 0x97000427, - 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, - 0xa0000430, 0xa1000431, 0xa2000432, 0xa3000433, 0xa4000434, 0xa5000435, 0xa6000436, 0xa7000437, - 0xa8000438, 0xa9000439, 0xaa00043a, 0xab00043b, 0xac00043c, 0xad00043d, 0xae00043e, 0xaf00043f, - 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, 0xe7000447, - 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, 0xef00044f, - 0xf1000451, 0xf3000454, 0xf5000457, 0xf700045e, 0xfc002116, 0xf9002219, 0xfb00221a, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage1047 is the IBM Code Page 1047 encoding. -var CodePage1047 *Charmap = &codePage1047 - -var codePage1047 = Charmap{ - name: "IBM Code Page 1047", - mib: identifier.IBM1047, - asciiSuperset: false, - low: 0x00, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, - {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, - {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x3b, 0x00, 0x00}}, {1, [3]byte{0x5e, 0x00, 0x00}}, - {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, - {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, - {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, - {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, - {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, - {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, - {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, - {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, - {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, - {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, - {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, - {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, - {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, - {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, - {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, - {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, - {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, - {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, - 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, - 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, - 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, - 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, - 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, - 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, - 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, - 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, - 0xe7000058, 0xe8000059, 0xe900005a, 0xad00005b, 0xe000005c, 0xbd00005d, 0x5f00005e, 0x6d00005f, - 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, - 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, - 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, - 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, - 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, - 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, - 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, - 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, - 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0x9f0000a4, 0xb20000a5, 0x6a0000a6, 0xb50000a7, - 0xbb0000a8, 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0xb00000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, - 0x900000b0, 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, - 0x9d0000b8, 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, - 0x640000c0, 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, - 0x740000c8, 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, - 0xac0000d0, 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, - 0x800000d8, 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xba0000dd, 0xae0000de, 0x590000df, - 0x440000e0, 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, - 0x540000e8, 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, - 0x8c0000f0, 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, - 0x700000f8, 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, - }, -} - -// CodePage1140 is the IBM Code Page 1140 encoding. -var CodePage1140 *Charmap = &codePage1140 - -var codePage1140 = Charmap{ - name: "IBM Code Page 1140", - mib: identifier.IBM01140, - asciiSuperset: false, - low: 0x00, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, - {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, - {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x3b, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xac, 0x00}}, - {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, - {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, - {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, - {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, - {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, - {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, - {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, - {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, - {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, - {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, - {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {1, [3]byte{0x5b, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, - {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, - {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, - {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, - {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, - {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, - {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, - {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, - 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, - 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, - 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, - 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, - 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, - 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, - 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, - 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, - 0xe7000058, 0xe8000059, 0xe900005a, 0xba00005b, 0xe000005c, 0xbb00005d, 0xb000005e, 0x6d00005f, - 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, - 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, - 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, - 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, - 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, - 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, - 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, - 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, - 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0xb20000a5, 0x6a0000a6, 0xb50000a7, 0xbd0000a8, - 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0x5f0000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, 0x900000b0, - 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, 0x9d0000b8, - 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, 0x640000c0, - 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, 0x740000c8, - 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, 0xac0000d0, - 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, 0x800000d8, - 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xad0000dd, 0xae0000de, 0x590000df, 0x440000e0, - 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, 0x540000e8, - 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, 0x8c0000f0, - 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, 0x700000f8, - 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, 0x9f0020ac, - }, -} - -// ISO8859_1 is the ISO 8859-1 encoding. -var ISO8859_1 *Charmap = &iso8859_1 - -var iso8859_1 = Charmap{ - name: "ISO 8859-1", - mib: identifier.ISOLatin1, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087, - 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f, - 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097, - 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - }, -} - -// ISO8859_2 is the ISO 8859-2 encoding. -var ISO8859_2 *Charmap = &iso8859_2 - -var iso8859_2 = Charmap{ - name: "ISO 8859-2", - mib: identifier.ISOLatin2, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xbe, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb40000b4, 0xb80000b8, - 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, - 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, - 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, 0xfd0000fd, 0xc3000102, - 0xe3000103, 0xa1000104, 0xb1000105, 0xc6000106, 0xe6000107, 0xc800010c, 0xe800010d, 0xcf00010e, - 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, 0xec00011b, 0xc5000139, - 0xe500013a, 0xa500013d, 0xb500013e, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, 0xd2000147, - 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, 0xf8000159, 0xa600015a, - 0xb600015b, 0xaa00015e, 0xba00015f, 0xa9000160, 0xb9000161, 0xde000162, 0xfe000163, 0xab000164, - 0xbb000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0xac000179, 0xbc00017a, 0xaf00017b, - 0xbf00017c, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xa20002d8, 0xff0002d9, 0xb20002db, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - }, -} - -// ISO8859_3 is the ISO 8859-3 encoding. -var ISO8859_3 *Charmap = &iso8859_3 - -var iso8859_3 = Charmap{ - name: "ISO 8859-3", - mib: identifier.ISOLatin3, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa6, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc4, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc4, 0x9e, 0x00}}, - {2, [3]byte{0xc4, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc4, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc4, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0xb5, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x8a, 0x00}}, - {2, [3]byte{0xc4, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc4, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xac, 0x00}}, - {2, [3]byte{0xc5, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0x9d, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0x9d, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb70000b7, 0xb80000b8, 0xbd0000bd, 0xc00000c0, 0xc10000c1, - 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, - 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, - 0xd70000d7, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, - 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, - 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf60000f6, - 0xf70000f7, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc6000108, 0xe6000109, 0xc500010a, - 0xe500010b, 0xd800011c, 0xf800011d, 0xab00011e, 0xbb00011f, 0xd5000120, 0xf5000121, 0xa6000124, - 0xb6000125, 0xa1000126, 0xb1000127, 0xa9000130, 0xb9000131, 0xac000134, 0xbc000135, 0xde00015c, - 0xfe00015d, 0xaa00015e, 0xba00015f, 0xdd00016c, 0xfd00016d, 0xaf00017b, 0xbf00017c, 0xa20002d8, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - }, -} - -// ISO8859_4 is the ISO 8859-4 encoding. -var ISO8859_4 *Charmap = &iso8859_4 - -var iso8859_4 = Charmap{ - name: "ISO 8859-4", - mib: identifier.ISOLatin4, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0x96, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc5, 0xa7, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0xaa, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xaf0000af, 0xb00000b0, 0xb40000b4, - 0xb80000b8, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, - 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xf40000f4, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc0000100, 0xe0000101, - 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, 0xd0000110, 0xf0000111, 0xaa000112, 0xba000113, - 0xcc000116, 0xec000117, 0xca000118, 0xea000119, 0xab000122, 0xbb000123, 0xa5000128, 0xb5000129, - 0xcf00012a, 0xef00012b, 0xc700012e, 0xe700012f, 0xd3000136, 0xf3000137, 0xa2000138, 0xa600013b, - 0xb600013c, 0xd1000145, 0xf1000146, 0xbd00014a, 0xbf00014b, 0xd200014c, 0xf200014d, 0xa3000156, - 0xb3000157, 0xa9000160, 0xb9000161, 0xac000166, 0xbc000167, 0xdd000168, 0xfd000169, 0xde00016a, - 0xfe00016b, 0xd9000172, 0xf9000173, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xff0002d9, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - }, -} - -// ISO8859_5 is the ISO 8859-5 encoding. -var ISO8859_5 *Charmap = &iso8859_5 - -var iso8859_5 = Charmap{ - name: "ISO 8859-5", - mib: identifier.ISOLatinCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0x88, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xfd0000a7, 0xad0000ad, 0xa1000401, 0xa2000402, 0xa3000403, 0xa4000404, 0xa5000405, - 0xa6000406, 0xa7000407, 0xa8000408, 0xa9000409, 0xaa00040a, 0xab00040b, 0xac00040c, 0xae00040e, - 0xaf00040f, 0xb0000410, 0xb1000411, 0xb2000412, 0xb3000413, 0xb4000414, 0xb5000415, 0xb6000416, - 0xb7000417, 0xb8000418, 0xb9000419, 0xba00041a, 0xbb00041b, 0xbc00041c, 0xbd00041d, 0xbe00041e, - 0xbf00041f, 0xc0000420, 0xc1000421, 0xc2000422, 0xc3000423, 0xc4000424, 0xc5000425, 0xc6000426, - 0xc7000427, 0xc8000428, 0xc9000429, 0xca00042a, 0xcb00042b, 0xcc00042c, 0xcd00042d, 0xce00042e, - 0xcf00042f, 0xd0000430, 0xd1000431, 0xd2000432, 0xd3000433, 0xd4000434, 0xd5000435, 0xd6000436, - 0xd7000437, 0xd8000438, 0xd9000439, 0xda00043a, 0xdb00043b, 0xdc00043c, 0xdd00043d, 0xde00043e, - 0xdf00043f, 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, - 0xe7000447, 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, - 0xef00044f, 0xf1000451, 0xf2000452, 0xf3000453, 0xf4000454, 0xf5000455, 0xf6000456, 0xf7000457, - 0xf8000458, 0xf9000459, 0xfa00045a, 0xfb00045b, 0xfc00045c, 0xfe00045e, 0xff00045f, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - }, -} - -// ISO8859_6 is the ISO 8859-6 encoding. -var ISO8859_6 *Charmap = &iso8859_6 - -var iso8859_6 = Charmap{ - name: "ISO 8859-6", - mib: identifier.ISOLatinArabic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd8, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9b, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xd8, 0xb7, 0x00}}, - {2, [3]byte{0xd8, 0xb8, 0x00}}, {2, [3]byte{0xd8, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0xba, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xd9, 0x84, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xd9, 0x89, 0x00}}, - {2, [3]byte{0xd9, 0x8a, 0x00}}, {2, [3]byte{0xd9, 0x8b, 0x00}}, - {2, [3]byte{0xd9, 0x8c, 0x00}}, {2, [3]byte{0xd9, 0x8d, 0x00}}, - {2, [3]byte{0xd9, 0x8e, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xd9, 0x91, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xad0000ad, 0xac00060c, 0xbb00061b, 0xbf00061f, 0xc1000621, 0xc2000622, - 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, - 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, - 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, 0xd7000637, 0xd8000638, 0xd9000639, 0xda00063a, - 0xe0000640, 0xe1000641, 0xe2000642, 0xe3000643, 0xe4000644, 0xe5000645, 0xe6000646, 0xe7000647, - 0xe8000648, 0xe9000649, 0xea00064a, 0xeb00064b, 0xec00064c, 0xed00064d, 0xee00064e, 0xef00064f, - 0xf0000650, 0xf1000651, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - }, -} - -// ISO8859_7 is the ISO 8859-7 encoding. -var ISO8859_7 *Charmap = &iso8859_7 - -var iso8859_7 = Charmap{ - name: "ISO 8859-7", - mib: identifier.ISOLatinGreek, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x82, 0xaf}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xcd, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, - 0xaa00037a, 0xb4000384, 0xb5000385, 0xb6000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, - 0xbe00038e, 0xbf00038f, 0xc0000390, 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, - 0xc6000396, 0xc7000397, 0xc8000398, 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, - 0xce00039e, 0xcf00039f, 0xd00003a0, 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, - 0xd70003a7, 0xd80003a8, 0xd90003a9, 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, - 0xdf0003af, 0xe00003b0, 0xe10003b1, 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, - 0xe70003b7, 0xe80003b8, 0xe90003b9, 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, - 0xef0003bf, 0xf00003c0, 0xf10003c1, 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, - 0xf70003c7, 0xf80003c8, 0xf90003c9, 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, - 0xaf002015, 0xa1002018, 0xa2002019, 0xa40020ac, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - }, -} - -// ISO8859_8 is the ISO 8859-8 encoding. -var ISO8859_8 *Charmap = &iso8859_8 - -var iso8859_8 = Charmap{ - name: "ISO 8859-8", - mib: identifier.ISOLatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x97}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xaa0000d7, 0xba0000f7, 0xe00005d0, 0xe10005d1, - 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, - 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, - 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, - 0xfa0005ea, 0xfd00200e, 0xfe00200f, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - }, -} - -// ISO8859_9 is the ISO 8859-9 encoding. -var ISO8859_9 *Charmap = &iso8859_9 - -var iso8859_9 = Charmap{ - name: "ISO 8859-9", - mib: identifier.ISOLatin5, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087, - 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f, - 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097, - 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, - 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, - 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, - 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0xde00015e, 0xfe00015f, - }, -} - -// ISO8859_10 is the ISO 8859-10 encoding. -var ISO8859_10 *Charmap = &iso8859_10 - -var iso8859_10 = Charmap{ - name: "ISO 8859-10", - mib: identifier.ISOLatin6, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa6, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x91, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0xb8, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xad0000ad, 0xb00000b0, 0xb70000b7, 0xc10000c1, 0xc20000c2, 0xc30000c3, - 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xda0000da, 0xdb0000db, - 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf00000f0, - 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, - 0xfd0000fd, 0xfe0000fe, 0xc0000100, 0xe0000101, 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, - 0xa9000110, 0xb9000111, 0xa2000112, 0xb2000113, 0xcc000116, 0xec000117, 0xca000118, 0xea000119, - 0xa3000122, 0xb3000123, 0xa5000128, 0xb5000129, 0xa400012a, 0xb400012b, 0xc700012e, 0xe700012f, - 0xa6000136, 0xb6000137, 0xff000138, 0xa800013b, 0xb800013c, 0xd1000145, 0xf1000146, 0xaf00014a, - 0xbf00014b, 0xd200014c, 0xf200014d, 0xaa000160, 0xba000161, 0xab000166, 0xbb000167, 0xd7000168, - 0xf7000169, 0xae00016a, 0xbe00016b, 0xd9000172, 0xf9000173, 0xac00017d, 0xbc00017e, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - }, -} - -// ISO8859_13 is the ISO 8859-13 encoding. -var ISO8859_13 *Charmap = &iso8859_13 - -var iso8859_13 = Charmap{ - name: "ISO 8859-13", - mib: identifier.ISO885913, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, - 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb50000b5, - 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, - 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, - 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, - 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, - 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, - 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, - 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, - 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, - 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, 0xff002019, 0xb400201c, 0xa100201d, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - }, -} - -// ISO8859_14 is the ISO 8859-14 encoding. -var ISO8859_14 *Charmap = &iso8859_14 - -var iso8859_14 = Charmap{ - name: "ISO 8859-14", - mib: identifier.ISO885914, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe1, 0xb8, 0x82}}, - {3, [3]byte{0xe1, 0xb8, 0x83}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0x8a, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x8a}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x80}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x82}}, {3, [3]byte{0xe1, 0xb8, 0x8b}}, - {3, [3]byte{0xe1, 0xbb, 0xb2}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x9e}}, {3, [3]byte{0xe1, 0xb8, 0x9f}}, - {2, [3]byte{0xc4, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {3, [3]byte{0xe1, 0xb9, 0x80}}, {3, [3]byte{0xe1, 0xb9, 0x81}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0x96}}, - {3, [3]byte{0xe1, 0xba, 0x81}}, {3, [3]byte{0xe1, 0xb9, 0x97}}, - {3, [3]byte{0xe1, 0xba, 0x83}}, {3, [3]byte{0xe1, 0xb9, 0xa0}}, - {3, [3]byte{0xe1, 0xbb, 0xb3}}, {3, [3]byte{0xe1, 0xba, 0x84}}, - {3, [3]byte{0xe1, 0xba, 0x85}}, {3, [3]byte{0xe1, 0xb9, 0xa1}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc5, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xaa}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc5, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xab}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa70000a7, 0xa90000a9, 0xad0000ad, 0xae0000ae, 0xb60000b6, 0xc00000c0, - 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xd90000d9, 0xda0000da, - 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, - 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, - 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, - 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, - 0xff0000ff, 0xa400010a, 0xa500010b, 0xb2000120, 0xb3000121, 0xd0000174, 0xf0000175, 0xde000176, - 0xfe000177, 0xaf000178, 0xa1001e02, 0xa2001e03, 0xa6001e0a, 0xab001e0b, 0xb0001e1e, 0xb1001e1f, - 0xb4001e40, 0xb5001e41, 0xb7001e56, 0xb9001e57, 0xbb001e60, 0xbf001e61, 0xd7001e6a, 0xf7001e6b, - 0xa8001e80, 0xb8001e81, 0xaa001e82, 0xba001e83, 0xbd001e84, 0xbe001e85, 0xac001ef2, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - }, -} - -// ISO8859_15 is the ISO 8859-15 encoding. -var ISO8859_15 *Charmap = &iso8859_15 - -var iso8859_15 = Charmap{ - name: "ISO 8859-15", - mib: identifier.ISO885915, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa70000a7, 0xa90000a9, 0xaa0000aa, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0xbc000152, 0xbd000153, 0xa6000160, 0xa8000161, 0xbe000178, 0xb400017d, 0xb800017e, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - }, -} - -// ISO8859_16 is the ISO 8859-16 encoding. -var ISO8859_16 *Charmap = &iso8859_16 - -var iso8859_16 = Charmap{ - name: "ISO 8859-16", - mib: identifier.ISO885916, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc8, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc8, 0x99, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0x98, 0x00}}, - {2, [3]byte{0xc8, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0x9b, 0x00}}, - {2, [3]byte{0xc5, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc8, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb60000b6, - 0xb70000b7, 0xbb0000bb, 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe60000e6, 0xe70000e7, 0xe80000e8, - 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf20000f2, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xff0000ff, - 0xc3000102, 0xe3000103, 0xa1000104, 0xa2000105, 0xc5000106, 0xe5000107, 0xb200010c, 0xb900010d, - 0xd0000110, 0xf0000111, 0xdd000118, 0xfd000119, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, - 0xd5000150, 0xf5000151, 0xbc000152, 0xbd000153, 0xd700015a, 0xf700015b, 0xa6000160, 0xa8000161, - 0xd8000170, 0xf8000171, 0xbe000178, 0xac000179, 0xae00017a, 0xaf00017b, 0xbf00017c, 0xb400017d, - 0xb800017e, 0xaa000218, 0xba000219, 0xde00021a, 0xfe00021b, 0xb500201d, 0xa500201e, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - }, -} - -// KOI8R is the KOI8-R encoding. -var KOI8R *Charmap = &koi8R - -var koi8R = Charmap{ - name: "KOI8-R", - mib: identifier.KOI8R, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa5}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xe1000410, - 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, - 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, - 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, - 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, - 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, - 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, - 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, - 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, - 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, 0x9b002321, 0x80002500, - 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, 0x87002524, 0x8800252c, - 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa4002553, 0xa5002554, 0xa6002555, - 0xa7002556, 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xad00255c, 0xae00255d, - 0xaf00255e, 0xb000255f, 0xb1002560, 0xb2002561, 0xb4002562, 0xb5002563, 0xb6002564, 0xb7002565, - 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0xbd00256b, 0xbe00256c, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// KOI8U is the KOI8-U encoding. -var KOI8U *Charmap = &koi8U - -var koi8U = Charmap{ - name: "KOI8-U", - mib: identifier.KOI8U, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {2, [3]byte{0xd2, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xb4000404, - 0xb6000406, 0xb7000407, 0xbe00040e, 0xe1000410, 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, - 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, - 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, - 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, - 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, - 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, - 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, - 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, - 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, 0xa4000454, 0xa6000456, 0xa7000457, 0xae00045e, - 0xbd000490, 0xad000491, 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, - 0x9b002321, 0x80002500, 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, - 0x87002524, 0x8800252c, 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa5002554, - 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xaf00255e, 0xb000255f, 0xb1002560, - 0xb2002561, 0xb5002563, 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// Macintosh is the Macintosh encoding. -var Macintosh *Charmap = &macintosh - -var macintosh = Charmap{ - name: "Macintosh", - mib: identifier.Macintosh, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x91, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x82}}, {3, [3]byte{0xe2, 0x88, 0x91}}, - {3, [3]byte{0xe2, 0x88, 0x8f}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0xab}}, {2, [3]byte{0xc2, 0xaa, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x97, 0x8a}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe2, 0x81, 0x84}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {3, [3]byte{0xe2, 0x80, 0xb9}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xac, 0x81}}, {3, [3]byte{0xef, 0xac, 0x82}}, - {3, [3]byte{0xe2, 0x80, 0xa1}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {3, [3]byte{0xe2, 0x80, 0xb0}}, {2, [3]byte{0xc3, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {2, [3]byte{0xc3, 0x8c, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {3, [3]byte{0xef, 0xa3, 0xbf}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x99, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {2, [3]byte{0xcb, 0x9c, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xcb, 0x98, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xcb, 0x9a, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xc10000a1, 0xa20000a2, 0xa30000a3, 0xb40000a5, 0xa40000a7, 0xac0000a8, 0xa90000a9, - 0xbb0000aa, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xf80000af, 0xa10000b0, 0xb10000b1, 0xab0000b4, - 0xb50000b5, 0xa60000b6, 0xe10000b7, 0xfc0000b8, 0xbc0000ba, 0xc80000bb, 0xc00000bf, 0xcb0000c0, - 0xe70000c1, 0xe50000c2, 0xcc0000c3, 0x800000c4, 0x810000c5, 0xae0000c6, 0x820000c7, 0xe90000c8, - 0x830000c9, 0xe60000ca, 0xe80000cb, 0xed0000cc, 0xea0000cd, 0xeb0000ce, 0xec0000cf, 0x840000d1, - 0xf10000d2, 0xee0000d3, 0xef0000d4, 0xcd0000d5, 0x850000d6, 0xaf0000d8, 0xf40000d9, 0xf20000da, - 0xf30000db, 0x860000dc, 0xa70000df, 0x880000e0, 0x870000e1, 0x890000e2, 0x8b0000e3, 0x8a0000e4, - 0x8c0000e5, 0xbe0000e6, 0x8d0000e7, 0x8f0000e8, 0x8e0000e9, 0x900000ea, 0x910000eb, 0x930000ec, - 0x920000ed, 0x940000ee, 0x950000ef, 0x960000f1, 0x980000f2, 0x970000f3, 0x990000f4, 0x9b0000f5, - 0x9a0000f6, 0xd60000f7, 0xbf0000f8, 0x9d0000f9, 0x9c0000fa, 0x9e0000fb, 0x9f0000fc, 0xd80000ff, - 0xf5000131, 0xce000152, 0xcf000153, 0xd9000178, 0xc4000192, 0xf60002c6, 0xff0002c7, 0xf90002d8, - 0xfa0002d9, 0xfb0002da, 0xfe0002db, 0xf70002dc, 0xfd0002dd, 0xbd0003a9, 0xb90003c0, 0xd0002013, - 0xd1002014, 0xd4002018, 0xd5002019, 0xe200201a, 0xd200201c, 0xd300201d, 0xe300201e, 0xa0002020, - 0xe0002021, 0xa5002022, 0xc9002026, 0xe4002030, 0xdc002039, 0xdd00203a, 0xda002044, 0xdb0020ac, - 0xaa002122, 0xb6002202, 0xc6002206, 0xb800220f, 0xb7002211, 0xc300221a, 0xb000221e, 0xba00222b, - 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, 0xd70025ca, 0xf000f8ff, 0xde00fb01, 0xdf00fb02, - }, -} - -// MacintoshCyrillic is the Macintosh Cyrillic encoding. -var MacintoshCyrillic *Charmap = &macintoshCyrillic - -var macintoshCyrillic = Charmap{ - name: "Macintosh Cyrillic", - mib: identifier.MacintoshCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xd2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xd0, 0x83, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x9a, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x8f, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xa30000a3, 0xa40000a7, 0xa90000a9, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xa10000b0, - 0xb10000b1, 0xb50000b5, 0xa60000b6, 0xc80000bb, 0xd60000f7, 0xc4000192, 0xdd000401, 0xab000402, - 0xae000403, 0xb8000404, 0xc1000405, 0xa7000406, 0xba000407, 0xb7000408, 0xbc000409, 0xbe00040a, - 0xcb00040b, 0xcd00040c, 0xd800040e, 0xda00040f, 0x80000410, 0x81000411, 0x82000412, 0x83000413, - 0x84000414, 0x85000415, 0x86000416, 0x87000417, 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, - 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, 0x90000420, 0x91000421, 0x92000422, 0x93000423, - 0x94000424, 0x95000425, 0x96000426, 0x97000427, 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, - 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, 0xe0000430, 0xe1000431, 0xe2000432, 0xe3000433, - 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, 0xeb00043b, - 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, 0xf3000443, - 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, 0xfb00044b, - 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xdf00044f, 0xde000451, 0xac000452, 0xaf000453, 0xb9000454, - 0xcf000455, 0xb4000456, 0xbb000457, 0xc0000458, 0xbd000459, 0xbf00045a, 0xcc00045b, 0xce00045c, - 0xd900045e, 0xdb00045f, 0xa2000490, 0xb6000491, 0xd0002013, 0xd1002014, 0xd4002018, 0xd5002019, - 0xd200201c, 0xd300201d, 0xd700201e, 0xa0002020, 0xa5002022, 0xc9002026, 0xff0020ac, 0xdc002116, - 0xaa002122, 0xc6002206, 0xc300221a, 0xb000221e, 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, - }, -} - -// Windows874 is the Windows 874 encoding. -var Windows874 *Charmap = &windows874 - -var windows874 = Charmap{ - name: "Windows 874", - mib: identifier.Windows874, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe0, 0xb8, 0x81}}, - {3, [3]byte{0xe0, 0xb8, 0x82}}, {3, [3]byte{0xe0, 0xb8, 0x83}}, - {3, [3]byte{0xe0, 0xb8, 0x84}}, {3, [3]byte{0xe0, 0xb8, 0x85}}, - {3, [3]byte{0xe0, 0xb8, 0x86}}, {3, [3]byte{0xe0, 0xb8, 0x87}}, - {3, [3]byte{0xe0, 0xb8, 0x88}}, {3, [3]byte{0xe0, 0xb8, 0x89}}, - {3, [3]byte{0xe0, 0xb8, 0x8a}}, {3, [3]byte{0xe0, 0xb8, 0x8b}}, - {3, [3]byte{0xe0, 0xb8, 0x8c}}, {3, [3]byte{0xe0, 0xb8, 0x8d}}, - {3, [3]byte{0xe0, 0xb8, 0x8e}}, {3, [3]byte{0xe0, 0xb8, 0x8f}}, - {3, [3]byte{0xe0, 0xb8, 0x90}}, {3, [3]byte{0xe0, 0xb8, 0x91}}, - {3, [3]byte{0xe0, 0xb8, 0x92}}, {3, [3]byte{0xe0, 0xb8, 0x93}}, - {3, [3]byte{0xe0, 0xb8, 0x94}}, {3, [3]byte{0xe0, 0xb8, 0x95}}, - {3, [3]byte{0xe0, 0xb8, 0x96}}, {3, [3]byte{0xe0, 0xb8, 0x97}}, - {3, [3]byte{0xe0, 0xb8, 0x98}}, {3, [3]byte{0xe0, 0xb8, 0x99}}, - {3, [3]byte{0xe0, 0xb8, 0x9a}}, {3, [3]byte{0xe0, 0xb8, 0x9b}}, - {3, [3]byte{0xe0, 0xb8, 0x9c}}, {3, [3]byte{0xe0, 0xb8, 0x9d}}, - {3, [3]byte{0xe0, 0xb8, 0x9e}}, {3, [3]byte{0xe0, 0xb8, 0x9f}}, - {3, [3]byte{0xe0, 0xb8, 0xa0}}, {3, [3]byte{0xe0, 0xb8, 0xa1}}, - {3, [3]byte{0xe0, 0xb8, 0xa2}}, {3, [3]byte{0xe0, 0xb8, 0xa3}}, - {3, [3]byte{0xe0, 0xb8, 0xa4}}, {3, [3]byte{0xe0, 0xb8, 0xa5}}, - {3, [3]byte{0xe0, 0xb8, 0xa6}}, {3, [3]byte{0xe0, 0xb8, 0xa7}}, - {3, [3]byte{0xe0, 0xb8, 0xa8}}, {3, [3]byte{0xe0, 0xb8, 0xa9}}, - {3, [3]byte{0xe0, 0xb8, 0xaa}}, {3, [3]byte{0xe0, 0xb8, 0xab}}, - {3, [3]byte{0xe0, 0xb8, 0xac}}, {3, [3]byte{0xe0, 0xb8, 0xad}}, - {3, [3]byte{0xe0, 0xb8, 0xae}}, {3, [3]byte{0xe0, 0xb8, 0xaf}}, - {3, [3]byte{0xe0, 0xb8, 0xb0}}, {3, [3]byte{0xe0, 0xb8, 0xb1}}, - {3, [3]byte{0xe0, 0xb8, 0xb2}}, {3, [3]byte{0xe0, 0xb8, 0xb3}}, - {3, [3]byte{0xe0, 0xb8, 0xb4}}, {3, [3]byte{0xe0, 0xb8, 0xb5}}, - {3, [3]byte{0xe0, 0xb8, 0xb6}}, {3, [3]byte{0xe0, 0xb8, 0xb7}}, - {3, [3]byte{0xe0, 0xb8, 0xb8}}, {3, [3]byte{0xe0, 0xb8, 0xb9}}, - {3, [3]byte{0xe0, 0xb8, 0xba}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe0, 0xb8, 0xbf}}, - {3, [3]byte{0xe0, 0xb9, 0x80}}, {3, [3]byte{0xe0, 0xb9, 0x81}}, - {3, [3]byte{0xe0, 0xb9, 0x82}}, {3, [3]byte{0xe0, 0xb9, 0x83}}, - {3, [3]byte{0xe0, 0xb9, 0x84}}, {3, [3]byte{0xe0, 0xb9, 0x85}}, - {3, [3]byte{0xe0, 0xb9, 0x86}}, {3, [3]byte{0xe0, 0xb9, 0x87}}, - {3, [3]byte{0xe0, 0xb9, 0x88}}, {3, [3]byte{0xe0, 0xb9, 0x89}}, - {3, [3]byte{0xe0, 0xb9, 0x8a}}, {3, [3]byte{0xe0, 0xb9, 0x8b}}, - {3, [3]byte{0xe0, 0xb9, 0x8c}}, {3, [3]byte{0xe0, 0xb9, 0x8d}}, - {3, [3]byte{0xe0, 0xb9, 0x8e}}, {3, [3]byte{0xe0, 0xb9, 0x8f}}, - {3, [3]byte{0xe0, 0xb9, 0x90}}, {3, [3]byte{0xe0, 0xb9, 0x91}}, - {3, [3]byte{0xe0, 0xb9, 0x92}}, {3, [3]byte{0xe0, 0xb9, 0x93}}, - {3, [3]byte{0xe0, 0xb9, 0x94}}, {3, [3]byte{0xe0, 0xb9, 0x95}}, - {3, [3]byte{0xe0, 0xb9, 0x96}}, {3, [3]byte{0xe0, 0xb9, 0x97}}, - {3, [3]byte{0xe0, 0xb9, 0x98}}, {3, [3]byte{0xe0, 0xb9, 0x99}}, - {3, [3]byte{0xe0, 0xb9, 0x9a}}, {3, [3]byte{0xe0, 0xb9, 0x9b}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa1000e01, 0xa2000e02, 0xa3000e03, 0xa4000e04, 0xa5000e05, 0xa6000e06, 0xa7000e07, - 0xa8000e08, 0xa9000e09, 0xaa000e0a, 0xab000e0b, 0xac000e0c, 0xad000e0d, 0xae000e0e, 0xaf000e0f, - 0xb0000e10, 0xb1000e11, 0xb2000e12, 0xb3000e13, 0xb4000e14, 0xb5000e15, 0xb6000e16, 0xb7000e17, - 0xb8000e18, 0xb9000e19, 0xba000e1a, 0xbb000e1b, 0xbc000e1c, 0xbd000e1d, 0xbe000e1e, 0xbf000e1f, - 0xc0000e20, 0xc1000e21, 0xc2000e22, 0xc3000e23, 0xc4000e24, 0xc5000e25, 0xc6000e26, 0xc7000e27, - 0xc8000e28, 0xc9000e29, 0xca000e2a, 0xcb000e2b, 0xcc000e2c, 0xcd000e2d, 0xce000e2e, 0xcf000e2f, - 0xd0000e30, 0xd1000e31, 0xd2000e32, 0xd3000e33, 0xd4000e34, 0xd5000e35, 0xd6000e36, 0xd7000e37, - 0xd8000e38, 0xd9000e39, 0xda000e3a, 0xdf000e3f, 0xe0000e40, 0xe1000e41, 0xe2000e42, 0xe3000e43, - 0xe4000e44, 0xe5000e45, 0xe6000e46, 0xe7000e47, 0xe8000e48, 0xe9000e49, 0xea000e4a, 0xeb000e4b, - 0xec000e4c, 0xed000e4d, 0xee000e4e, 0xef000e4f, 0xf0000e50, 0xf1000e51, 0xf2000e52, 0xf3000e53, - 0xf4000e54, 0xf5000e55, 0xf6000e56, 0xf7000e57, 0xf8000e58, 0xf9000e59, 0xfa000e5a, 0xfb000e5b, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x9300201c, 0x9400201d, 0x95002022, 0x85002026, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - }, -} - -// Windows1250 is the Windows 1250 encoding. -var Windows1250 *Charmap = &windows1250 - -var windows1250 = Charmap{ - name: "Windows 1250", - mib: identifier.Windows1250, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc4, 0xbd, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xbb0000bb, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, - 0xcd0000cd, 0xce0000ce, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, - 0xdd0000dd, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, - 0xed0000ed, 0xee0000ee, 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, - 0xfd0000fd, 0xc3000102, 0xe3000103, 0xa5000104, 0xb9000105, 0xc6000106, 0xe6000107, 0xc800010c, - 0xe800010d, 0xcf00010e, 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, - 0xec00011b, 0xc5000139, 0xe500013a, 0xbc00013d, 0xbe00013e, 0xa3000141, 0xb3000142, 0xd1000143, - 0xf1000144, 0xd2000147, 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, - 0xf8000159, 0x8c00015a, 0x9c00015b, 0xaa00015e, 0xba00015f, 0x8a000160, 0x9a000161, 0xde000162, - 0xfe000163, 0x8d000164, 0x9d000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0x8f000179, - 0x9f00017a, 0xaf00017b, 0xbf00017c, 0x8e00017d, 0x9e00017e, 0xa10002c7, 0xa20002d8, 0xff0002d9, - 0xb20002db, 0xbd0002dd, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1251 is the Windows 1251 encoding. -var Windows1251 *Charmap = &windows1251 - -var windows1251 = Charmap{ - name: "Windows 1251", - mib: identifier.Windows1251, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0x8b, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9c, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x96, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, - 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xa8000401, - 0x80000402, 0x81000403, 0xaa000404, 0xbd000405, 0xb2000406, 0xaf000407, 0xa3000408, 0x8a000409, - 0x8c00040a, 0x8e00040b, 0x8d00040c, 0xa100040e, 0x8f00040f, 0xc0000410, 0xc1000411, 0xc2000412, - 0xc3000413, 0xc4000414, 0xc5000415, 0xc6000416, 0xc7000417, 0xc8000418, 0xc9000419, 0xca00041a, - 0xcb00041b, 0xcc00041c, 0xcd00041d, 0xce00041e, 0xcf00041f, 0xd0000420, 0xd1000421, 0xd2000422, - 0xd3000423, 0xd4000424, 0xd5000425, 0xd6000426, 0xd7000427, 0xd8000428, 0xd9000429, 0xda00042a, - 0xdb00042b, 0xdc00042c, 0xdd00042d, 0xde00042e, 0xdf00042f, 0xe0000430, 0xe1000431, 0xe2000432, - 0xe3000433, 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, - 0xeb00043b, 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, - 0xf3000443, 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, - 0xfb00044b, 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xff00044f, 0xb8000451, 0x90000452, 0x83000453, - 0xba000454, 0xbe000455, 0xb3000456, 0xbf000457, 0xbc000458, 0x9a000459, 0x9c00045a, 0x9e00045b, - 0x9d00045c, 0xa200045e, 0x9f00045f, 0xa5000490, 0xb4000491, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x880020ac, 0xb9002116, 0x99002122, 0x99002122, - }, -} - -// Windows1252 is the Windows 1252 encoding. -var Windows1252 *Charmap = &windows1252 - -var windows1252 = Charmap{ - name: "Windows 1252", - mib: identifier.Windows1252, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0x8c000152, 0x9c000153, 0x8a000160, 0x9a000161, 0x9f000178, 0x8e00017d, 0x9e00017e, 0x83000192, - 0x880002c6, 0x980002dc, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1253 is the Windows 1253 encoding. -var Windows1253 *Charmap = &windows1253 - -var windows1253 = Charmap{ - name: "Windows 1253", - mib: identifier.Windows1253, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, - 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, 0x83000192, 0xb4000384, 0xa1000385, - 0xa2000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, 0xbe00038e, 0xbf00038f, 0xc0000390, - 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, 0xc6000396, 0xc7000397, 0xc8000398, - 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, 0xce00039e, 0xcf00039f, 0xd00003a0, - 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, 0xd70003a7, 0xd80003a8, 0xd90003a9, - 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, 0xdf0003af, 0xe00003b0, 0xe10003b1, - 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, 0xe70003b7, 0xe80003b8, 0xe90003b9, - 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, 0xef0003bf, 0xf00003c0, 0xf10003c1, - 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, 0xf70003c7, 0xf80003c8, 0xf90003c9, - 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, 0x96002013, 0x97002014, 0xaf002015, - 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, - 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1254 is the Windows 1254 encoding. -var Windows1254 *Charmap = &windows1254 - -var windows1254 = Charmap{ - name: "Windows 1254", - mib: identifier.Windows1254, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, - 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, - 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, - 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0x8c000152, 0x9c000153, - 0xde00015e, 0xfe00015f, 0x8a000160, 0x9a000161, 0x9f000178, 0x83000192, 0x880002c6, 0x980002dc, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, - 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1255 is the Windows 1255 encoding. -var Windows1255 *Charmap = &windows1255 - -var windows1255 = Charmap{ - name: "Windows 1255", - mib: identifier.Windows1255, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xaa}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xd6, 0xb0, 0x00}}, {2, [3]byte{0xd6, 0xb1, 0x00}}, - {2, [3]byte{0xd6, 0xb2, 0x00}}, {2, [3]byte{0xd6, 0xb3, 0x00}}, - {2, [3]byte{0xd6, 0xb4, 0x00}}, {2, [3]byte{0xd6, 0xb5, 0x00}}, - {2, [3]byte{0xd6, 0xb6, 0x00}}, {2, [3]byte{0xd6, 0xb7, 0x00}}, - {2, [3]byte{0xd6, 0xb8, 0x00}}, {2, [3]byte{0xd6, 0xb9, 0x00}}, - {2, [3]byte{0xd6, 0xba, 0x00}}, {2, [3]byte{0xd6, 0xbb, 0x00}}, - {2, [3]byte{0xd6, 0xbc, 0x00}}, {2, [3]byte{0xd6, 0xbd, 0x00}}, - {2, [3]byte{0xd6, 0xbe, 0x00}}, {2, [3]byte{0xd6, 0xbf, 0x00}}, - {2, [3]byte{0xd7, 0x80, 0x00}}, {2, [3]byte{0xd7, 0x81, 0x00}}, - {2, [3]byte{0xd7, 0x82, 0x00}}, {2, [3]byte{0xd7, 0x83, 0x00}}, - {2, [3]byte{0xd7, 0xb0, 0x00}}, {2, [3]byte{0xd7, 0xb1, 0x00}}, - {2, [3]byte{0xd7, 0xb2, 0x00}}, {2, [3]byte{0xd7, 0xb3, 0x00}}, - {2, [3]byte{0xd7, 0xb4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, 0xaa0000d7, 0xba0000f7, 0x83000192, - 0x880002c6, 0x980002dc, 0xc00005b0, 0xc10005b1, 0xc20005b2, 0xc30005b3, 0xc40005b4, 0xc50005b5, - 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xca0005ba, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, - 0xce0005be, 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, - 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, - 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, - 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, - 0xfa0005ea, 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, - 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, - 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1256 is the Windows 1256 encoding. -var Windows1256 *Charmap = &windows1256 - -var windows1256 = Charmap{ - name: "Windows 1256", - mib: identifier.Windows1256, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xd9, 0xbe, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd9, 0xb9, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xda, 0x86, 0x00}}, - {2, [3]byte{0xda, 0x98, 0x00}}, {2, [3]byte{0xda, 0x88, 0x00}}, - {2, [3]byte{0xda, 0xaf, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xda, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xda, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8c}}, - {3, [3]byte{0xe2, 0x80, 0x8d}}, {2, [3]byte{0xda, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd8, 0x8c, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xda, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0x9b, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {2, [3]byte{0xdb, 0x81, 0x00}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xd8, 0xb7, 0x00}}, {2, [3]byte{0xd8, 0xb8, 0x00}}, - {2, [3]byte{0xd8, 0xb9, 0x00}}, {2, [3]byte{0xd8, 0xba, 0x00}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xd9, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xd9, 0x89, 0x00}}, {2, [3]byte{0xd9, 0x8a, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xd9, 0x8b, 0x00}}, {2, [3]byte{0xd9, 0x8c, 0x00}}, - {2, [3]byte{0xd9, 0x8d, 0x00}}, {2, [3]byte{0xd9, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xd9, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {2, [3]byte{0xdb, 0x92, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xd70000d7, 0xe00000e0, 0xe20000e2, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xee0000ee, 0xef0000ef, 0xf40000f4, 0xf70000f7, - 0xf90000f9, 0xfb0000fb, 0xfc0000fc, 0x8c000152, 0x9c000153, 0x83000192, 0x880002c6, 0xa100060c, - 0xba00061b, 0xbf00061f, 0xc1000621, 0xc2000622, 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, - 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, - 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, - 0xd8000637, 0xd9000638, 0xda000639, 0xdb00063a, 0xdc000640, 0xdd000641, 0xde000642, 0xdf000643, - 0xe1000644, 0xe3000645, 0xe4000646, 0xe5000647, 0xe6000648, 0xec000649, 0xed00064a, 0xf000064b, - 0xf100064c, 0xf200064d, 0xf300064e, 0xf500064f, 0xf6000650, 0xf8000651, 0xfa000652, 0x8a000679, - 0x8100067e, 0x8d000686, 0x8f000688, 0x9a000691, 0x8e000698, 0x980006a9, 0x900006af, 0x9f0006ba, - 0xaa0006be, 0xc00006c1, 0xff0006d2, 0x9d00200c, 0x9e00200d, 0xfd00200e, 0xfe00200f, 0x96002013, - 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, - 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, - }, -} - -// Windows1257 is the Windows 1257 encoding. -var Windows1257 *Charmap = &windows1257 - -var windows1257 = Charmap{ - name: "Windows 1257", - mib: identifier.Windows1257, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x87, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0x8d0000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0x9d0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0x8f0000b8, 0xb90000b9, 0xbb0000bb, - 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, - 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, - 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, - 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, - 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, - 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, - 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, - 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, - 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, - 0x8e0002c7, 0xff0002d9, 0x9e0002db, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, - 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, - 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1258 is the Windows 1258 encoding. -var Windows1258 *Charmap = &windows1258 - -var windows1258 = Charmap{ - name: "Windows 1258", - mib: identifier.Windows1258, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xcc, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xcc, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc6, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc6, 0xaf, 0x00}}, - {2, [3]byte{0xcc, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xcc, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xcc, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc6, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc6, 0xb0, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xab}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd30000d3, - 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xc3000102, 0xe3000103, 0xd0000110, 0xf0000111, 0x8c000152, 0x9c000153, - 0x9f000178, 0x83000192, 0xd50001a0, 0xf50001a1, 0xdd0001af, 0xfd0001b0, 0x880002c6, 0x980002dc, - 0xcc000300, 0xec000301, 0xde000303, 0xd2000309, 0xf2000323, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xfe0020ab, 0x800020ac, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// XUserDefined is the X-User-Defined encoding. -// -// It is defined at http://encoding.spec.whatwg.org/#x-user-defined -var XUserDefined *Charmap = &xUserDefined - -var xUserDefined = Charmap{ - name: "X-User-Defined", - mib: identifier.XUserDefined, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0x9e, 0x80}}, {3, [3]byte{0xef, 0x9e, 0x81}}, - {3, [3]byte{0xef, 0x9e, 0x82}}, {3, [3]byte{0xef, 0x9e, 0x83}}, - {3, [3]byte{0xef, 0x9e, 0x84}}, {3, [3]byte{0xef, 0x9e, 0x85}}, - {3, [3]byte{0xef, 0x9e, 0x86}}, {3, [3]byte{0xef, 0x9e, 0x87}}, - {3, [3]byte{0xef, 0x9e, 0x88}}, {3, [3]byte{0xef, 0x9e, 0x89}}, - {3, [3]byte{0xef, 0x9e, 0x8a}}, {3, [3]byte{0xef, 0x9e, 0x8b}}, - {3, [3]byte{0xef, 0x9e, 0x8c}}, {3, [3]byte{0xef, 0x9e, 0x8d}}, - {3, [3]byte{0xef, 0x9e, 0x8e}}, {3, [3]byte{0xef, 0x9e, 0x8f}}, - {3, [3]byte{0xef, 0x9e, 0x90}}, {3, [3]byte{0xef, 0x9e, 0x91}}, - {3, [3]byte{0xef, 0x9e, 0x92}}, {3, [3]byte{0xef, 0x9e, 0x93}}, - {3, [3]byte{0xef, 0x9e, 0x94}}, {3, [3]byte{0xef, 0x9e, 0x95}}, - {3, [3]byte{0xef, 0x9e, 0x96}}, {3, [3]byte{0xef, 0x9e, 0x97}}, - {3, [3]byte{0xef, 0x9e, 0x98}}, {3, [3]byte{0xef, 0x9e, 0x99}}, - {3, [3]byte{0xef, 0x9e, 0x9a}}, {3, [3]byte{0xef, 0x9e, 0x9b}}, - {3, [3]byte{0xef, 0x9e, 0x9c}}, {3, [3]byte{0xef, 0x9e, 0x9d}}, - {3, [3]byte{0xef, 0x9e, 0x9e}}, {3, [3]byte{0xef, 0x9e, 0x9f}}, - {3, [3]byte{0xef, 0x9e, 0xa0}}, {3, [3]byte{0xef, 0x9e, 0xa1}}, - {3, [3]byte{0xef, 0x9e, 0xa2}}, {3, [3]byte{0xef, 0x9e, 0xa3}}, - {3, [3]byte{0xef, 0x9e, 0xa4}}, {3, [3]byte{0xef, 0x9e, 0xa5}}, - {3, [3]byte{0xef, 0x9e, 0xa6}}, {3, [3]byte{0xef, 0x9e, 0xa7}}, - {3, [3]byte{0xef, 0x9e, 0xa8}}, {3, [3]byte{0xef, 0x9e, 0xa9}}, - {3, [3]byte{0xef, 0x9e, 0xaa}}, {3, [3]byte{0xef, 0x9e, 0xab}}, - {3, [3]byte{0xef, 0x9e, 0xac}}, {3, [3]byte{0xef, 0x9e, 0xad}}, - {3, [3]byte{0xef, 0x9e, 0xae}}, {3, [3]byte{0xef, 0x9e, 0xaf}}, - {3, [3]byte{0xef, 0x9e, 0xb0}}, {3, [3]byte{0xef, 0x9e, 0xb1}}, - {3, [3]byte{0xef, 0x9e, 0xb2}}, {3, [3]byte{0xef, 0x9e, 0xb3}}, - {3, [3]byte{0xef, 0x9e, 0xb4}}, {3, [3]byte{0xef, 0x9e, 0xb5}}, - {3, [3]byte{0xef, 0x9e, 0xb6}}, {3, [3]byte{0xef, 0x9e, 0xb7}}, - {3, [3]byte{0xef, 0x9e, 0xb8}}, {3, [3]byte{0xef, 0x9e, 0xb9}}, - {3, [3]byte{0xef, 0x9e, 0xba}}, {3, [3]byte{0xef, 0x9e, 0xbb}}, - {3, [3]byte{0xef, 0x9e, 0xbc}}, {3, [3]byte{0xef, 0x9e, 0xbd}}, - {3, [3]byte{0xef, 0x9e, 0xbe}}, {3, [3]byte{0xef, 0x9e, 0xbf}}, - {3, [3]byte{0xef, 0x9f, 0x80}}, {3, [3]byte{0xef, 0x9f, 0x81}}, - {3, [3]byte{0xef, 0x9f, 0x82}}, {3, [3]byte{0xef, 0x9f, 0x83}}, - {3, [3]byte{0xef, 0x9f, 0x84}}, {3, [3]byte{0xef, 0x9f, 0x85}}, - {3, [3]byte{0xef, 0x9f, 0x86}}, {3, [3]byte{0xef, 0x9f, 0x87}}, - {3, [3]byte{0xef, 0x9f, 0x88}}, {3, [3]byte{0xef, 0x9f, 0x89}}, - {3, [3]byte{0xef, 0x9f, 0x8a}}, {3, [3]byte{0xef, 0x9f, 0x8b}}, - {3, [3]byte{0xef, 0x9f, 0x8c}}, {3, [3]byte{0xef, 0x9f, 0x8d}}, - {3, [3]byte{0xef, 0x9f, 0x8e}}, {3, [3]byte{0xef, 0x9f, 0x8f}}, - {3, [3]byte{0xef, 0x9f, 0x90}}, {3, [3]byte{0xef, 0x9f, 0x91}}, - {3, [3]byte{0xef, 0x9f, 0x92}}, {3, [3]byte{0xef, 0x9f, 0x93}}, - {3, [3]byte{0xef, 0x9f, 0x94}}, {3, [3]byte{0xef, 0x9f, 0x95}}, - {3, [3]byte{0xef, 0x9f, 0x96}}, {3, [3]byte{0xef, 0x9f, 0x97}}, - {3, [3]byte{0xef, 0x9f, 0x98}}, {3, [3]byte{0xef, 0x9f, 0x99}}, - {3, [3]byte{0xef, 0x9f, 0x9a}}, {3, [3]byte{0xef, 0x9f, 0x9b}}, - {3, [3]byte{0xef, 0x9f, 0x9c}}, {3, [3]byte{0xef, 0x9f, 0x9d}}, - {3, [3]byte{0xef, 0x9f, 0x9e}}, {3, [3]byte{0xef, 0x9f, 0x9f}}, - {3, [3]byte{0xef, 0x9f, 0xa0}}, {3, [3]byte{0xef, 0x9f, 0xa1}}, - {3, [3]byte{0xef, 0x9f, 0xa2}}, {3, [3]byte{0xef, 0x9f, 0xa3}}, - {3, [3]byte{0xef, 0x9f, 0xa4}}, {3, [3]byte{0xef, 0x9f, 0xa5}}, - {3, [3]byte{0xef, 0x9f, 0xa6}}, {3, [3]byte{0xef, 0x9f, 0xa7}}, - {3, [3]byte{0xef, 0x9f, 0xa8}}, {3, [3]byte{0xef, 0x9f, 0xa9}}, - {3, [3]byte{0xef, 0x9f, 0xaa}}, {3, [3]byte{0xef, 0x9f, 0xab}}, - {3, [3]byte{0xef, 0x9f, 0xac}}, {3, [3]byte{0xef, 0x9f, 0xad}}, - {3, [3]byte{0xef, 0x9f, 0xae}}, {3, [3]byte{0xef, 0x9f, 0xaf}}, - {3, [3]byte{0xef, 0x9f, 0xb0}}, {3, [3]byte{0xef, 0x9f, 0xb1}}, - {3, [3]byte{0xef, 0x9f, 0xb2}}, {3, [3]byte{0xef, 0x9f, 0xb3}}, - {3, [3]byte{0xef, 0x9f, 0xb4}}, {3, [3]byte{0xef, 0x9f, 0xb5}}, - {3, [3]byte{0xef, 0x9f, 0xb6}}, {3, [3]byte{0xef, 0x9f, 0xb7}}, - {3, [3]byte{0xef, 0x9f, 0xb8}}, {3, [3]byte{0xef, 0x9f, 0xb9}}, - {3, [3]byte{0xef, 0x9f, 0xba}}, {3, [3]byte{0xef, 0x9f, 0xbb}}, - {3, [3]byte{0xef, 0x9f, 0xbc}}, {3, [3]byte{0xef, 0x9f, 0xbd}}, - {3, [3]byte{0xef, 0x9f, 0xbe}}, {3, [3]byte{0xef, 0x9f, 0xbf}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x8000f780, 0x8100f781, 0x8200f782, 0x8300f783, 0x8400f784, 0x8500f785, 0x8600f786, 0x8700f787, - 0x8800f788, 0x8900f789, 0x8a00f78a, 0x8b00f78b, 0x8c00f78c, 0x8d00f78d, 0x8e00f78e, 0x8f00f78f, - 0x9000f790, 0x9100f791, 0x9200f792, 0x9300f793, 0x9400f794, 0x9500f795, 0x9600f796, 0x9700f797, - 0x9800f798, 0x9900f799, 0x9a00f79a, 0x9b00f79b, 0x9c00f79c, 0x9d00f79d, 0x9e00f79e, 0x9f00f79f, - 0xa000f7a0, 0xa100f7a1, 0xa200f7a2, 0xa300f7a3, 0xa400f7a4, 0xa500f7a5, 0xa600f7a6, 0xa700f7a7, - 0xa800f7a8, 0xa900f7a9, 0xaa00f7aa, 0xab00f7ab, 0xac00f7ac, 0xad00f7ad, 0xae00f7ae, 0xaf00f7af, - 0xb000f7b0, 0xb100f7b1, 0xb200f7b2, 0xb300f7b3, 0xb400f7b4, 0xb500f7b5, 0xb600f7b6, 0xb700f7b7, - 0xb800f7b8, 0xb900f7b9, 0xba00f7ba, 0xbb00f7bb, 0xbc00f7bc, 0xbd00f7bd, 0xbe00f7be, 0xbf00f7bf, - 0xc000f7c0, 0xc100f7c1, 0xc200f7c2, 0xc300f7c3, 0xc400f7c4, 0xc500f7c5, 0xc600f7c6, 0xc700f7c7, - 0xc800f7c8, 0xc900f7c9, 0xca00f7ca, 0xcb00f7cb, 0xcc00f7cc, 0xcd00f7cd, 0xce00f7ce, 0xcf00f7cf, - 0xd000f7d0, 0xd100f7d1, 0xd200f7d2, 0xd300f7d3, 0xd400f7d4, 0xd500f7d5, 0xd600f7d6, 0xd700f7d7, - 0xd800f7d8, 0xd900f7d9, 0xda00f7da, 0xdb00f7db, 0xdc00f7dc, 0xdd00f7dd, 0xde00f7de, 0xdf00f7df, - 0xe000f7e0, 0xe100f7e1, 0xe200f7e2, 0xe300f7e3, 0xe400f7e4, 0xe500f7e5, 0xe600f7e6, 0xe700f7e7, - 0xe800f7e8, 0xe900f7e9, 0xea00f7ea, 0xeb00f7eb, 0xec00f7ec, 0xed00f7ed, 0xee00f7ee, 0xef00f7ef, - 0xf000f7f0, 0xf100f7f1, 0xf200f7f2, 0xf300f7f3, 0xf400f7f4, 0xf500f7f5, 0xf600f7f6, 0xf700f7f7, - 0xf800f7f8, 0xf900f7f9, 0xfa00f7fa, 0xfb00f7fb, 0xfc00f7fc, 0xfd00f7fd, 0xfe00f7fe, 0xff00f7ff, - }, -} -var listAll = []encoding.Encoding{ - CodePage037, - CodePage437, - CodePage850, - CodePage852, - CodePage855, - CodePage858, - CodePage860, - CodePage862, - CodePage863, - CodePage865, - CodePage866, - CodePage1047, - CodePage1140, - ISO8859_1, - ISO8859_2, - ISO8859_3, - ISO8859_4, - ISO8859_5, - ISO8859_6, - ISO8859_6E, - ISO8859_6I, - ISO8859_7, - ISO8859_8, - ISO8859_8E, - ISO8859_8I, - ISO8859_9, - ISO8859_10, - ISO8859_13, - ISO8859_14, - ISO8859_15, - ISO8859_16, - KOI8R, - KOI8U, - Macintosh, - MacintoshCyrillic, - Windows874, - Windows1250, - Windows1251, - Windows1252, - Windows1253, - Windows1254, - Windows1255, - Windows1256, - Windows1257, - Windows1258, - XUserDefined, -} - -// Total table size 87024 bytes (84KiB); checksum: 811C9DC5 diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/encoding.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/encoding.go deleted file mode 100644 index 221f175c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/encoding.go +++ /dev/null @@ -1,335 +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 encoding defines an interface for character encodings, such as Shift -// JIS and Windows 1252, that can convert to and from UTF-8. -// -// Encoding implementations are provided in other packages, such as -// golang.org/x/text/encoding/charmap and -// golang.org/x/text/encoding/japanese. -package encoding // import "golang.org/x/text/encoding" - -import ( - "errors" - "io" - "strconv" - "unicode/utf8" - - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// TODO: -// - There seems to be some inconsistency in when decoders return errors -// and when not. Also documentation seems to suggest they shouldn't return -// errors at all (except for UTF-16). -// - Encoders seem to rely on or at least benefit from the input being in NFC -// normal form. Perhaps add an example how users could prepare their output. - -// Encoding is a character set encoding that can be transformed to and from -// UTF-8. -type Encoding interface { - // NewDecoder returns a Decoder. - NewDecoder() *Decoder - - // NewEncoder returns an Encoder. - NewEncoder() *Encoder -} - -// A Decoder converts bytes to UTF-8. It implements transform.Transformer. -// -// Transforming source bytes that are not of that encoding will not result in an -// error per se. Each byte that cannot be transcoded will be represented in the -// output by the UTF-8 encoding of '\uFFFD', the replacement rune. -type Decoder struct { - transform.Transformer - - // This forces external creators of Decoders to use names in struct - // initializers, allowing for future extendibility without having to break - // code. - _ struct{} -} - -// Bytes converts the given encoded bytes to UTF-8. It returns the converted -// bytes or nil, err if any error occurred. -func (d *Decoder) Bytes(b []byte) ([]byte, error) { - b, _, err := transform.Bytes(d, b) - if err != nil { - return nil, err - } - return b, nil -} - -// String converts the given encoded string to UTF-8. It returns the converted -// string or "", err if any error occurred. -func (d *Decoder) String(s string) (string, error) { - s, _, err := transform.String(d, s) - if err != nil { - return "", err - } - return s, nil -} - -// Reader wraps another Reader to decode its bytes. -// -// The Decoder may not be used for any other operation as long as the returned -// Reader is in use. -func (d *Decoder) Reader(r io.Reader) io.Reader { - return transform.NewReader(r, d) -} - -// An Encoder converts bytes from UTF-8. It implements transform.Transformer. -// -// Each rune that cannot be transcoded will result in an error. In this case, -// the transform will consume all source byte up to, not including the offending -// rune. Transforming source bytes that are not valid UTF-8 will be replaced by -// `\uFFFD`. To return early with an error instead, use transform.Chain to -// preprocess the data with a UTF8Validator. -type Encoder struct { - transform.Transformer - - // This forces external creators of Encoders to use names in struct - // initializers, allowing for future extendibility without having to break - // code. - _ struct{} -} - -// Bytes converts bytes from UTF-8. It returns the converted bytes or nil, err if -// any error occurred. -func (e *Encoder) Bytes(b []byte) ([]byte, error) { - b, _, err := transform.Bytes(e, b) - if err != nil { - return nil, err - } - return b, nil -} - -// String converts a string from UTF-8. It returns the converted string or -// "", err if any error occurred. -func (e *Encoder) String(s string) (string, error) { - s, _, err := transform.String(e, s) - if err != nil { - return "", err - } - return s, nil -} - -// Writer wraps another Writer to encode its UTF-8 output. -// -// The Encoder may not be used for any other operation as long as the returned -// Writer is in use. -func (e *Encoder) Writer(w io.Writer) io.Writer { - return transform.NewWriter(w, e) -} - -// ASCIISub is the ASCII substitute character, as recommended by -// http://unicode.org/reports/tr36/#Text_Comparison -const ASCIISub = '\x1a' - -// Nop is the nop encoding. Its transformed bytes are the same as the source -// bytes; it does not replace invalid UTF-8 sequences. -var Nop Encoding = nop{} - -type nop struct{} - -func (nop) NewDecoder() *Decoder { - return &Decoder{Transformer: transform.Nop} -} -func (nop) NewEncoder() *Encoder { - return &Encoder{Transformer: transform.Nop} -} - -// Replacement is the replacement encoding. Decoding from the replacement -// encoding yields a single '\uFFFD' replacement rune. Encoding from UTF-8 to -// the replacement encoding yields the same as the source bytes except that -// invalid UTF-8 is converted to '\uFFFD'. -// -// It is defined at http://encoding.spec.whatwg.org/#replacement -var Replacement Encoding = replacement{} - -type replacement struct{} - -func (replacement) NewDecoder() *Decoder { - return &Decoder{Transformer: replacementDecoder{}} -} - -func (replacement) NewEncoder() *Encoder { - return &Encoder{Transformer: replacementEncoder{}} -} - -func (replacement) ID() (mib identifier.MIB, other string) { - return identifier.Replacement, "" -} - -type replacementDecoder struct{ transform.NopResetter } - -func (replacementDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(dst) < 3 { - return 0, 0, transform.ErrShortDst - } - if atEOF { - const fffd = "\ufffd" - dst[0] = fffd[0] - dst[1] = fffd[1] - dst[2] = fffd[2] - nDst = 3 - } - return nDst, len(src), nil -} - -type replacementEncoder struct{ transform.NopResetter } - -func (replacementEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - r = '\ufffd' - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -// HTMLEscapeUnsupported wraps encoders to replace source runes outside the -// repertoire of the destination encoding with HTML escape sequences. -// -// This wrapper exists to comply to URL and HTML forms requiring a -// non-terminating legacy encoder. The produced sequences may lead to data -// loss as they are indistinguishable from legitimate input. To avoid this -// issue, use UTF-8 encodings whenever possible. -func HTMLEscapeUnsupported(e *Encoder) *Encoder { - return &Encoder{Transformer: &errorHandler{e, errorToHTML}} -} - -// ReplaceUnsupported wraps encoders to replace source runes outside the -// repertoire of the destination encoding with an encoding-specific -// replacement. -// -// This wrapper is only provided for backwards compatibility and legacy -// handling. Its use is strongly discouraged. Use UTF-8 whenever possible. -func ReplaceUnsupported(e *Encoder) *Encoder { - return &Encoder{Transformer: &errorHandler{e, errorToReplacement}} -} - -type errorHandler struct { - *Encoder - handler func(dst []byte, r rune, err repertoireError) (n int, ok bool) -} - -// TODO: consider making this error public in some form. -type repertoireError interface { - Replacement() byte -} - -func (h errorHandler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - nDst, nSrc, err = h.Transformer.Transform(dst, src, atEOF) - for err != nil { - rerr, ok := err.(repertoireError) - if !ok { - return nDst, nSrc, err - } - r, sz := utf8.DecodeRune(src[nSrc:]) - n, ok := h.handler(dst[nDst:], r, rerr) - if !ok { - return nDst, nSrc, transform.ErrShortDst - } - err = nil - nDst += n - if nSrc += sz; nSrc < len(src) { - var dn, sn int - dn, sn, err = h.Transformer.Transform(dst[nDst:], src[nSrc:], atEOF) - nDst += dn - nSrc += sn - } - } - return nDst, nSrc, err -} - -func errorToHTML(dst []byte, r rune, err repertoireError) (n int, ok bool) { - buf := [8]byte{} - b := strconv.AppendUint(buf[:0], uint64(r), 10) - if n = len(b) + len("&#;"); n >= len(dst) { - return 0, false - } - dst[0] = '&' - dst[1] = '#' - dst[copy(dst[2:], b)+2] = ';' - return n, true -} - -func errorToReplacement(dst []byte, r rune, err repertoireError) (n int, ok bool) { - if len(dst) == 0 { - return 0, false - } - dst[0] = err.Replacement() - return 1, true -} - -// ErrInvalidUTF8 means that a transformer encountered invalid UTF-8. -var ErrInvalidUTF8 = errors.New("encoding: invalid UTF-8") - -// UTF8Validator is a transformer that returns ErrInvalidUTF8 on the first -// input byte that is not valid UTF-8. -var UTF8Validator transform.Transformer = utf8Validator{} - -type utf8Validator struct{ transform.NopResetter } - -func (utf8Validator) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n = len(dst) - } - for i := 0; i < n; { - if c := src[i]; c < utf8.RuneSelf { - dst[i] = c - i++ - continue - } - _, size := utf8.DecodeRune(src[i:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - err = ErrInvalidUTF8 - if !atEOF && !utf8.FullRune(src[i:]) { - err = transform.ErrShortSrc - } - return i, i, err - } - if i+size > len(dst) { - return i, i, transform.ErrShortDst - } - for ; size > 0; size-- { - dst[i] = src[i] - i++ - } - } - if len(src) > len(dst) { - err = transform.ErrShortDst - } - return n, n, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go deleted file mode 100644 index bdc7d15d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go +++ /dev/null @@ -1,86 +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:generate go run gen.go - -// Package htmlindex maps character set encoding names to Encodings as -// recommended by the W3C for use in HTML 5. See http://www.w3.org/TR/encoding. -package htmlindex - -// TODO: perhaps have a "bare" version of the index (used by this package) that -// is not pre-loaded with all encodings. Global variables in encodings prevent -// the linker from being able to purge unneeded tables. This means that -// referencing all encodings, as this package does for the default index, links -// in all encodings unconditionally. -// -// This issue can be solved by either solving the linking issue (see -// https://github.com/golang/go/issues/6330) or refactoring the encoding tables -// (e.g. moving the tables to internal packages that do not use global -// variables). - -// TODO: allow canonicalizing names - -import ( - "errors" - "strings" - "sync" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/language" -) - -var ( - errInvalidName = errors.New("htmlindex: invalid encoding name") - errUnknown = errors.New("htmlindex: unknown Encoding") - errUnsupported = errors.New("htmlindex: this encoding is not supported") -) - -var ( - matcherOnce sync.Once - matcher language.Matcher -) - -// LanguageDefault returns the canonical name of the default encoding for a -// given language. -func LanguageDefault(tag language.Tag) string { - matcherOnce.Do(func() { - tags := []language.Tag{} - for _, t := range strings.Split(locales, " ") { - tags = append(tags, language.MustParse(t)) - } - matcher = language.NewMatcher(tags, language.PreferSameScript(true)) - }) - _, i, _ := matcher.Match(tag) - return canonical[localeMap[i]] // Default is Windows-1252. -} - -// Get returns an Encoding for one of the names listed in -// http://www.w3.org/TR/encoding using the Default Index. Matching is case- -// insensitive. -func Get(name string) (encoding.Encoding, error) { - x, ok := nameMap[strings.ToLower(strings.TrimSpace(name))] - if !ok { - return nil, errInvalidName - } - return encodings[x], nil -} - -// Name reports the canonical name of the given Encoding. It will return -// an error if e is not associated with a supported encoding scheme. -func Name(e encoding.Encoding) (string, error) { - id, ok := e.(identifier.Interface) - if !ok { - return "", errUnknown - } - mib, _ := id.ID() - if mib == 0 { - return "", errUnknown - } - v, ok := mibMap[mib] - if !ok { - return "", errUnsupported - } - return canonical[v], nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/map.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/map.go deleted file mode 100644 index c6143904..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/map.go +++ /dev/null @@ -1,105 +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 htmlindex - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/encoding/japanese" - "golang.org/x/text/encoding/korean" - "golang.org/x/text/encoding/simplifiedchinese" - "golang.org/x/text/encoding/traditionalchinese" - "golang.org/x/text/encoding/unicode" -) - -// mibMap maps a MIB identifier to an htmlEncoding index. -var mibMap = map[identifier.MIB]htmlEncoding{ - identifier.UTF8: utf8, - identifier.UTF16BE: utf16be, - identifier.UTF16LE: utf16le, - identifier.IBM866: ibm866, - identifier.ISOLatin2: iso8859_2, - identifier.ISOLatin3: iso8859_3, - identifier.ISOLatin4: iso8859_4, - identifier.ISOLatinCyrillic: iso8859_5, - identifier.ISOLatinArabic: iso8859_6, - identifier.ISOLatinGreek: iso8859_7, - identifier.ISOLatinHebrew: iso8859_8, - identifier.ISO88598I: iso8859_8I, - identifier.ISOLatin6: iso8859_10, - identifier.ISO885913: iso8859_13, - identifier.ISO885914: iso8859_14, - identifier.ISO885915: iso8859_15, - identifier.ISO885916: iso8859_16, - identifier.KOI8R: koi8r, - identifier.KOI8U: koi8u, - identifier.Macintosh: macintosh, - identifier.MacintoshCyrillic: macintoshCyrillic, - identifier.Windows874: windows874, - identifier.Windows1250: windows1250, - identifier.Windows1251: windows1251, - identifier.Windows1252: windows1252, - identifier.Windows1253: windows1253, - identifier.Windows1254: windows1254, - identifier.Windows1255: windows1255, - identifier.Windows1256: windows1256, - identifier.Windows1257: windows1257, - identifier.Windows1258: windows1258, - identifier.XUserDefined: xUserDefined, - identifier.GBK: gbk, - identifier.GB18030: gb18030, - identifier.Big5: big5, - identifier.EUCPkdFmtJapanese: eucjp, - identifier.ISO2022JP: iso2022jp, - identifier.ShiftJIS: shiftJIS, - identifier.EUCKR: euckr, - identifier.Replacement: replacement, -} - -// encodings maps the internal htmlEncoding to an Encoding. -// TODO: consider using a reusable index in encoding/internal. -var encodings = [numEncodings]encoding.Encoding{ - utf8: unicode.UTF8, - ibm866: charmap.CodePage866, - iso8859_2: charmap.ISO8859_2, - iso8859_3: charmap.ISO8859_3, - iso8859_4: charmap.ISO8859_4, - iso8859_5: charmap.ISO8859_5, - iso8859_6: charmap.ISO8859_6, - iso8859_7: charmap.ISO8859_7, - iso8859_8: charmap.ISO8859_8, - iso8859_8I: charmap.ISO8859_8I, - iso8859_10: charmap.ISO8859_10, - iso8859_13: charmap.ISO8859_13, - iso8859_14: charmap.ISO8859_14, - iso8859_15: charmap.ISO8859_15, - iso8859_16: charmap.ISO8859_16, - koi8r: charmap.KOI8R, - koi8u: charmap.KOI8U, - macintosh: charmap.Macintosh, - windows874: charmap.Windows874, - windows1250: charmap.Windows1250, - windows1251: charmap.Windows1251, - windows1252: charmap.Windows1252, - windows1253: charmap.Windows1253, - windows1254: charmap.Windows1254, - windows1255: charmap.Windows1255, - windows1256: charmap.Windows1256, - windows1257: charmap.Windows1257, - windows1258: charmap.Windows1258, - macintoshCyrillic: charmap.MacintoshCyrillic, - gbk: simplifiedchinese.GBK, - gb18030: simplifiedchinese.GB18030, - big5: traditionalchinese.Big5, - eucjp: japanese.EUCJP, - iso2022jp: japanese.ISO2022JP, - shiftJIS: japanese.ShiftJIS, - euckr: korean.EUCKR, - replacement: encoding.Replacement, - utf16be: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - utf16le: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), - xUserDefined: charmap.XUserDefined, -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/tables.go deleted file mode 100644 index 9d6b4315..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/htmlindex/tables.go +++ /dev/null @@ -1,352 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package htmlindex - -type htmlEncoding byte - -const ( - utf8 htmlEncoding = iota - ibm866 - iso8859_2 - iso8859_3 - iso8859_4 - iso8859_5 - iso8859_6 - iso8859_7 - iso8859_8 - iso8859_8I - iso8859_10 - iso8859_13 - iso8859_14 - iso8859_15 - iso8859_16 - koi8r - koi8u - macintosh - windows874 - windows1250 - windows1251 - windows1252 - windows1253 - windows1254 - windows1255 - windows1256 - windows1257 - windows1258 - macintoshCyrillic - gbk - gb18030 - big5 - eucjp - iso2022jp - shiftJIS - euckr - replacement - utf16be - utf16le - xUserDefined - numEncodings -) - -var canonical = [numEncodings]string{ - "utf-8", - "ibm866", - "iso-8859-2", - "iso-8859-3", - "iso-8859-4", - "iso-8859-5", - "iso-8859-6", - "iso-8859-7", - "iso-8859-8", - "iso-8859-8-i", - "iso-8859-10", - "iso-8859-13", - "iso-8859-14", - "iso-8859-15", - "iso-8859-16", - "koi8-r", - "koi8-u", - "macintosh", - "windows-874", - "windows-1250", - "windows-1251", - "windows-1252", - "windows-1253", - "windows-1254", - "windows-1255", - "windows-1256", - "windows-1257", - "windows-1258", - "x-mac-cyrillic", - "gbk", - "gb18030", - "big5", - "euc-jp", - "iso-2022-jp", - "shift_jis", - "euc-kr", - "replacement", - "utf-16be", - "utf-16le", - "x-user-defined", -} - -var nameMap = map[string]htmlEncoding{ - "unicode-1-1-utf-8": utf8, - "utf-8": utf8, - "utf8": utf8, - "866": ibm866, - "cp866": ibm866, - "csibm866": ibm866, - "ibm866": ibm866, - "csisolatin2": iso8859_2, - "iso-8859-2": iso8859_2, - "iso-ir-101": iso8859_2, - "iso8859-2": iso8859_2, - "iso88592": iso8859_2, - "iso_8859-2": iso8859_2, - "iso_8859-2:1987": iso8859_2, - "l2": iso8859_2, - "latin2": iso8859_2, - "csisolatin3": iso8859_3, - "iso-8859-3": iso8859_3, - "iso-ir-109": iso8859_3, - "iso8859-3": iso8859_3, - "iso88593": iso8859_3, - "iso_8859-3": iso8859_3, - "iso_8859-3:1988": iso8859_3, - "l3": iso8859_3, - "latin3": iso8859_3, - "csisolatin4": iso8859_4, - "iso-8859-4": iso8859_4, - "iso-ir-110": iso8859_4, - "iso8859-4": iso8859_4, - "iso88594": iso8859_4, - "iso_8859-4": iso8859_4, - "iso_8859-4:1988": iso8859_4, - "l4": iso8859_4, - "latin4": iso8859_4, - "csisolatincyrillic": iso8859_5, - "cyrillic": iso8859_5, - "iso-8859-5": iso8859_5, - "iso-ir-144": iso8859_5, - "iso8859-5": iso8859_5, - "iso88595": iso8859_5, - "iso_8859-5": iso8859_5, - "iso_8859-5:1988": iso8859_5, - "arabic": iso8859_6, - "asmo-708": iso8859_6, - "csiso88596e": iso8859_6, - "csiso88596i": iso8859_6, - "csisolatinarabic": iso8859_6, - "ecma-114": iso8859_6, - "iso-8859-6": iso8859_6, - "iso-8859-6-e": iso8859_6, - "iso-8859-6-i": iso8859_6, - "iso-ir-127": iso8859_6, - "iso8859-6": iso8859_6, - "iso88596": iso8859_6, - "iso_8859-6": iso8859_6, - "iso_8859-6:1987": iso8859_6, - "csisolatingreek": iso8859_7, - "ecma-118": iso8859_7, - "elot_928": iso8859_7, - "greek": iso8859_7, - "greek8": iso8859_7, - "iso-8859-7": iso8859_7, - "iso-ir-126": iso8859_7, - "iso8859-7": iso8859_7, - "iso88597": iso8859_7, - "iso_8859-7": iso8859_7, - "iso_8859-7:1987": iso8859_7, - "sun_eu_greek": iso8859_7, - "csiso88598e": iso8859_8, - "csisolatinhebrew": iso8859_8, - "hebrew": iso8859_8, - "iso-8859-8": iso8859_8, - "iso-8859-8-e": iso8859_8, - "iso-ir-138": iso8859_8, - "iso8859-8": iso8859_8, - "iso88598": iso8859_8, - "iso_8859-8": iso8859_8, - "iso_8859-8:1988": iso8859_8, - "visual": iso8859_8, - "csiso88598i": iso8859_8I, - "iso-8859-8-i": iso8859_8I, - "logical": iso8859_8I, - "csisolatin6": iso8859_10, - "iso-8859-10": iso8859_10, - "iso-ir-157": iso8859_10, - "iso8859-10": iso8859_10, - "iso885910": iso8859_10, - "l6": iso8859_10, - "latin6": iso8859_10, - "iso-8859-13": iso8859_13, - "iso8859-13": iso8859_13, - "iso885913": iso8859_13, - "iso-8859-14": iso8859_14, - "iso8859-14": iso8859_14, - "iso885914": iso8859_14, - "csisolatin9": iso8859_15, - "iso-8859-15": iso8859_15, - "iso8859-15": iso8859_15, - "iso885915": iso8859_15, - "iso_8859-15": iso8859_15, - "l9": iso8859_15, - "iso-8859-16": iso8859_16, - "cskoi8r": koi8r, - "koi": koi8r, - "koi8": koi8r, - "koi8-r": koi8r, - "koi8_r": koi8r, - "koi8-ru": koi8u, - "koi8-u": koi8u, - "csmacintosh": macintosh, - "mac": macintosh, - "macintosh": macintosh, - "x-mac-roman": macintosh, - "dos-874": windows874, - "iso-8859-11": windows874, - "iso8859-11": windows874, - "iso885911": windows874, - "tis-620": windows874, - "windows-874": windows874, - "cp1250": windows1250, - "windows-1250": windows1250, - "x-cp1250": windows1250, - "cp1251": windows1251, - "windows-1251": windows1251, - "x-cp1251": windows1251, - "ansi_x3.4-1968": windows1252, - "ascii": windows1252, - "cp1252": windows1252, - "cp819": windows1252, - "csisolatin1": windows1252, - "ibm819": windows1252, - "iso-8859-1": windows1252, - "iso-ir-100": windows1252, - "iso8859-1": windows1252, - "iso88591": windows1252, - "iso_8859-1": windows1252, - "iso_8859-1:1987": windows1252, - "l1": windows1252, - "latin1": windows1252, - "us-ascii": windows1252, - "windows-1252": windows1252, - "x-cp1252": windows1252, - "cp1253": windows1253, - "windows-1253": windows1253, - "x-cp1253": windows1253, - "cp1254": windows1254, - "csisolatin5": windows1254, - "iso-8859-9": windows1254, - "iso-ir-148": windows1254, - "iso8859-9": windows1254, - "iso88599": windows1254, - "iso_8859-9": windows1254, - "iso_8859-9:1989": windows1254, - "l5": windows1254, - "latin5": windows1254, - "windows-1254": windows1254, - "x-cp1254": windows1254, - "cp1255": windows1255, - "windows-1255": windows1255, - "x-cp1255": windows1255, - "cp1256": windows1256, - "windows-1256": windows1256, - "x-cp1256": windows1256, - "cp1257": windows1257, - "windows-1257": windows1257, - "x-cp1257": windows1257, - "cp1258": windows1258, - "windows-1258": windows1258, - "x-cp1258": windows1258, - "x-mac-cyrillic": macintoshCyrillic, - "x-mac-ukrainian": macintoshCyrillic, - "chinese": gbk, - "csgb2312": gbk, - "csiso58gb231280": gbk, - "gb2312": gbk, - "gb_2312": gbk, - "gb_2312-80": gbk, - "gbk": gbk, - "iso-ir-58": gbk, - "x-gbk": gbk, - "gb18030": gb18030, - "big5": big5, - "big5-hkscs": big5, - "cn-big5": big5, - "csbig5": big5, - "x-x-big5": big5, - "cseucpkdfmtjapanese": eucjp, - "euc-jp": eucjp, - "x-euc-jp": eucjp, - "csiso2022jp": iso2022jp, - "iso-2022-jp": iso2022jp, - "csshiftjis": shiftJIS, - "ms932": shiftJIS, - "ms_kanji": shiftJIS, - "shift-jis": shiftJIS, - "shift_jis": shiftJIS, - "sjis": shiftJIS, - "windows-31j": shiftJIS, - "x-sjis": shiftJIS, - "cseuckr": euckr, - "csksc56011987": euckr, - "euc-kr": euckr, - "iso-ir-149": euckr, - "korean": euckr, - "ks_c_5601-1987": euckr, - "ks_c_5601-1989": euckr, - "ksc5601": euckr, - "ksc_5601": euckr, - "windows-949": euckr, - "csiso2022kr": replacement, - "hz-gb-2312": replacement, - "iso-2022-cn": replacement, - "iso-2022-cn-ext": replacement, - "iso-2022-kr": replacement, - "utf-16be": utf16be, - "utf-16": utf16le, - "utf-16le": utf16le, - "x-user-defined": xUserDefined, -} - -var localeMap = []htmlEncoding{ - windows1252, // und_Latn - windows1256, // ar - windows1251, // ba - windows1251, // be - windows1251, // bg - windows1250, // cs - iso8859_7, // el - windows1257, // et - windows1256, // fa - windows1255, // he - windows1250, // hr - iso8859_2, // hu - shiftJIS, // ja - windows1251, // kk - euckr, // ko - windows1254, // ku - windows1251, // ky - windows1257, // lt - windows1257, // lv - windows1251, // mk - iso8859_2, // pl - windows1251, // ru - windows1251, // sah - windows1250, // sk - iso8859_2, // sl - windows1251, // sr - windows1251, // tg - windows874, // th - windows1254, // tr - windows1251, // tt - windows1251, // uk - windows1258, // vi - gb18030, // zh-hans - big5, // zh-hant -} - -const locales = "und_Latn ar ba be bg cs el et fa he hr hu ja kk ko ku ky lt lv mk pl ru sah sk sl sr tg th tr tt uk vi zh-hans zh-hant" diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go deleted file mode 100644 index 7351b4ef..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go +++ /dev/null @@ -1,81 +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:generate go run gen.go - -// Package identifier defines the contract between implementations of Encoding -// and Index by defining identifiers that uniquely identify standardized coded -// character sets (CCS) and character encoding schemes (CES), which we will -// together refer to as encodings, for which Encoding implementations provide -// converters to and from UTF-8. This package is typically only of concern to -// implementers of Indexes and Encodings. -// -// One part of the identifier is the MIB code, which is defined by IANA and -// uniquely identifies a CCS or CES. Each code is associated with data that -// references authorities, official documentation as well as aliases and MIME -// names. -// -// Not all CESs are covered by the IANA registry. The "other" string that is -// returned by ID can be used to identify other character sets or versions of -// existing ones. -// -// It is recommended that each package that provides a set of Encodings provide -// the All and Common variables to reference all supported encodings and -// commonly used subset. This allows Index implementations to include all -// available encodings without explicitly referencing or knowing about them. -package identifier - -// Note: this package is internal, but could be made public if there is a need -// for writing third-party Indexes and Encodings. - -// References: -// - http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt -// - http://www.iana.org/assignments/character-sets/character-sets.xhtml -// - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib -// - http://www.ietf.org/rfc/rfc2978.txt -// - http://www.unicode.org/reports/tr22/ -// - http://www.w3.org/TR/encoding/ -// - https://encoding.spec.whatwg.org/ -// - https://encoding.spec.whatwg.org/encodings.json -// - https://tools.ietf.org/html/rfc6657#section-5 - -// Interface can be implemented by Encodings to define the CCS or CES for which -// it implements conversions. -type Interface interface { - // ID returns an encoding identifier. Exactly one of the mib and other - // values should be non-zero. - // - // In the usual case it is only necessary to indicate the MIB code. The - // other string can be used to specify encodings for which there is no MIB, - // such as "x-mac-dingbat". - // - // The other string may only contain the characters a-z, A-Z, 0-9, - and _. - ID() (mib MIB, other string) - - // NOTE: the restrictions on the encoding are to allow extending the syntax - // with additional information such as versions, vendors and other variants. -} - -// A MIB identifies an encoding. It is derived from the IANA MIB codes and adds -// some identifiers for some encodings that are not covered by the IANA -// standard. -// -// See http://www.iana.org/assignments/ianacharset-mib. -type MIB uint16 - -// These additional MIB types are not defined in IANA. They are added because -// they are common and defined within the text repo. -const ( - // Unofficial marks the start of encodings not registered by IANA. - Unofficial MIB = 10000 + iota - - // Replacement is the WhatWG replacement encoding. - Replacement - - // XUserDefined is the code for x-user-defined. - XUserDefined - - // MacintoshCyrillic is the code for x-mac-cyrillic. - MacintoshCyrillic -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/identifier/mib.go deleted file mode 100644 index 768842b0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/identifier/mib.go +++ /dev/null @@ -1,1621 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package identifier - -const ( - // ASCII is the MIB identifier with IANA name US-ASCII (MIME: US-ASCII). - // - // ANSI X3.4-1986 - // Reference: RFC2046 - ASCII MIB = 3 - - // ISOLatin1 is the MIB identifier with IANA name ISO_8859-1:1987 (MIME: ISO-8859-1). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin1 MIB = 4 - - // ISOLatin2 is the MIB identifier with IANA name ISO_8859-2:1987 (MIME: ISO-8859-2). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin2 MIB = 5 - - // ISOLatin3 is the MIB identifier with IANA name ISO_8859-3:1988 (MIME: ISO-8859-3). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin3 MIB = 6 - - // ISOLatin4 is the MIB identifier with IANA name ISO_8859-4:1988 (MIME: ISO-8859-4). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin4 MIB = 7 - - // ISOLatinCyrillic is the MIB identifier with IANA name ISO_8859-5:1988 (MIME: ISO-8859-5). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinCyrillic MIB = 8 - - // ISOLatinArabic is the MIB identifier with IANA name ISO_8859-6:1987 (MIME: ISO-8859-6). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinArabic MIB = 9 - - // ISOLatinGreek is the MIB identifier with IANA name ISO_8859-7:1987 (MIME: ISO-8859-7). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1947 - // Reference: RFC1345 - ISOLatinGreek MIB = 10 - - // ISOLatinHebrew is the MIB identifier with IANA name ISO_8859-8:1988 (MIME: ISO-8859-8). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinHebrew MIB = 11 - - // ISOLatin5 is the MIB identifier with IANA name ISO_8859-9:1989 (MIME: ISO-8859-9). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin5 MIB = 12 - - // ISOLatin6 is the MIB identifier with IANA name ISO-8859-10 (MIME: ISO-8859-10). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin6 MIB = 13 - - // ISOTextComm is the MIB identifier with IANA name ISO_6937-2-add. - // - // ISO-IR: International Register of Escape Sequences and ISO 6937-2:1983 - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOTextComm MIB = 14 - - // HalfWidthKatakana is the MIB identifier with IANA name JIS_X0201. - // - // JIS X 0201-1976. One byte only, this is equivalent to - // JIS/Roman (similar to ASCII) plus eight-bit half-width - // Katakana - // Reference: RFC1345 - HalfWidthKatakana MIB = 15 - - // JISEncoding is the MIB identifier with IANA name JIS_Encoding. - // - // JIS X 0202-1991. Uses ISO 2022 escape sequences to - // shift code sets as documented in JIS X 0202-1991. - JISEncoding MIB = 16 - - // ShiftJIS is the MIB identifier with IANA name Shift_JIS (MIME: Shift_JIS). - // - // This charset is an extension of csHalfWidthKatakana by - // adding graphic characters in JIS X 0208. The CCS's are - // JIS X0201:1997 and JIS X0208:1997. The - // complete definition is shown in Appendix 1 of JIS - // X0208:1997. - // This charset can be used for the top-level media type "text". - ShiftJIS MIB = 17 - - // EUCPkdFmtJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Packed_Format_for_Japanese (MIME: EUC-JP). - // - // Standardized by OSF, UNIX International, and UNIX Systems - // Laboratories Pacific. Uses ISO 2022 rules to select - // code set 0: US-ASCII (a single 7-bit byte set) - // code set 1: JIS X0208-1990 (a double 8-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // requiring SS2 as the character prefix - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // requiring SS3 as the character prefix - EUCPkdFmtJapanese MIB = 18 - - // EUCFixWidJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Fixed_Width_for_Japanese. - // - // Used in Japan. Each character is 2 octets. - // code set 0: US-ASCII (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = 20-7E - // code set 1: JIS X0208-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = A0-FF - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in - // the first byte - // and 21-7E in the second byte - EUCFixWidJapanese MIB = 19 - - // ISO4UnitedKingdom is the MIB identifier with IANA name BS_4730. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO4UnitedKingdom MIB = 20 - - // ISO11SwedishForNames is the MIB identifier with IANA name SEN_850200_C. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO11SwedishForNames MIB = 21 - - // ISO15Italian is the MIB identifier with IANA name IT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO15Italian MIB = 22 - - // ISO17Spanish is the MIB identifier with IANA name ES. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO17Spanish MIB = 23 - - // ISO21German is the MIB identifier with IANA name DIN_66003. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO21German MIB = 24 - - // ISO60Norwegian1 is the MIB identifier with IANA name NS_4551-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO60Norwegian1 MIB = 25 - - // ISO69French is the MIB identifier with IANA name NF_Z_62-010. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO69French MIB = 26 - - // ISO10646UTF1 is the MIB identifier with IANA name ISO-10646-UTF-1. - // - // Universal Transfer Format (1), this is the multibyte - // encoding, that subsets ASCII-7. It does not have byte - // ordering issues. - ISO10646UTF1 MIB = 27 - - // ISO646basic1983 is the MIB identifier with IANA name ISO_646.basic:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO646basic1983 MIB = 28 - - // INVARIANT is the MIB identifier with IANA name INVARIANT. - // - // Reference: RFC1345 - INVARIANT MIB = 29 - - // ISO2IntlRefVersion is the MIB identifier with IANA name ISO_646.irv:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2IntlRefVersion MIB = 30 - - // NATSSEFI is the MIB identifier with IANA name NATS-SEFI. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFI MIB = 31 - - // NATSSEFIADD is the MIB identifier with IANA name NATS-SEFI-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFIADD MIB = 32 - - // NATSDANO is the MIB identifier with IANA name NATS-DANO. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANO MIB = 33 - - // NATSDANOADD is the MIB identifier with IANA name NATS-DANO-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANOADD MIB = 34 - - // ISO10Swedish is the MIB identifier with IANA name SEN_850200_B. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10Swedish MIB = 35 - - // KSC56011987 is the MIB identifier with IANA name KS_C_5601-1987. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - KSC56011987 MIB = 36 - - // ISO2022KR is the MIB identifier with IANA name ISO-2022-KR (MIME: ISO-2022-KR). - // - // rfc1557 (see also KS_C_5601-1987) - // Reference: RFC1557 - ISO2022KR MIB = 37 - - // EUCKR is the MIB identifier with IANA name EUC-KR (MIME: EUC-KR). - // - // rfc1557 (see also KS_C_5861-1992) - // Reference: RFC1557 - EUCKR MIB = 38 - - // ISO2022JP is the MIB identifier with IANA name ISO-2022-JP (MIME: ISO-2022-JP). - // - // rfc1468 (see also rfc2237 ) - // Reference: RFC1468 - ISO2022JP MIB = 39 - - // ISO2022JP2 is the MIB identifier with IANA name ISO-2022-JP-2 (MIME: ISO-2022-JP-2). - // - // rfc1554 - // Reference: RFC1554 - ISO2022JP2 MIB = 40 - - // ISO13JISC6220jp is the MIB identifier with IANA name JIS_C6220-1969-jp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO13JISC6220jp MIB = 41 - - // ISO14JISC6220ro is the MIB identifier with IANA name JIS_C6220-1969-ro. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO14JISC6220ro MIB = 42 - - // ISO16Portuguese is the MIB identifier with IANA name PT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO16Portuguese MIB = 43 - - // ISO18Greek7Old is the MIB identifier with IANA name greek7-old. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO18Greek7Old MIB = 44 - - // ISO19LatinGreek is the MIB identifier with IANA name latin-greek. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO19LatinGreek MIB = 45 - - // ISO25French is the MIB identifier with IANA name NF_Z_62-010_(1973). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO25French MIB = 46 - - // ISO27LatinGreek1 is the MIB identifier with IANA name Latin-greek-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO27LatinGreek1 MIB = 47 - - // ISO5427Cyrillic is the MIB identifier with IANA name ISO_5427. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5427Cyrillic MIB = 48 - - // ISO42JISC62261978 is the MIB identifier with IANA name JIS_C6226-1978. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO42JISC62261978 MIB = 49 - - // ISO47BSViewdata is the MIB identifier with IANA name BS_viewdata. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO47BSViewdata MIB = 50 - - // ISO49INIS is the MIB identifier with IANA name INIS. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO49INIS MIB = 51 - - // ISO50INIS8 is the MIB identifier with IANA name INIS-8. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO50INIS8 MIB = 52 - - // ISO51INISCyrillic is the MIB identifier with IANA name INIS-cyrillic. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO51INISCyrillic MIB = 53 - - // ISO54271981 is the MIB identifier with IANA name ISO_5427:1981. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO54271981 MIB = 54 - - // ISO5428Greek is the MIB identifier with IANA name ISO_5428:1980. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5428Greek MIB = 55 - - // ISO57GB1988 is the MIB identifier with IANA name GB_1988-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO57GB1988 MIB = 56 - - // ISO58GB231280 is the MIB identifier with IANA name GB_2312-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO58GB231280 MIB = 57 - - // ISO61Norwegian2 is the MIB identifier with IANA name NS_4551-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO61Norwegian2 MIB = 58 - - // ISO70VideotexSupp1 is the MIB identifier with IANA name videotex-suppl. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO70VideotexSupp1 MIB = 59 - - // ISO84Portuguese2 is the MIB identifier with IANA name PT2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO84Portuguese2 MIB = 60 - - // ISO85Spanish2 is the MIB identifier with IANA name ES2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO85Spanish2 MIB = 61 - - // ISO86Hungarian is the MIB identifier with IANA name MSZ_7795.3. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO86Hungarian MIB = 62 - - // ISO87JISX0208 is the MIB identifier with IANA name JIS_C6226-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO87JISX0208 MIB = 63 - - // ISO88Greek7 is the MIB identifier with IANA name greek7. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO88Greek7 MIB = 64 - - // ISO89ASMO449 is the MIB identifier with IANA name ASMO_449. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO89ASMO449 MIB = 65 - - // ISO90 is the MIB identifier with IANA name iso-ir-90. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO90 MIB = 66 - - // ISO91JISC62291984a is the MIB identifier with IANA name JIS_C6229-1984-a. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO91JISC62291984a MIB = 67 - - // ISO92JISC62991984b is the MIB identifier with IANA name JIS_C6229-1984-b. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO92JISC62991984b MIB = 68 - - // ISO93JIS62291984badd is the MIB identifier with IANA name JIS_C6229-1984-b-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO93JIS62291984badd MIB = 69 - - // ISO94JIS62291984hand is the MIB identifier with IANA name JIS_C6229-1984-hand. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO94JIS62291984hand MIB = 70 - - // ISO95JIS62291984handadd is the MIB identifier with IANA name JIS_C6229-1984-hand-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO95JIS62291984handadd MIB = 71 - - // ISO96JISC62291984kana is the MIB identifier with IANA name JIS_C6229-1984-kana. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO96JISC62291984kana MIB = 72 - - // ISO2033 is the MIB identifier with IANA name ISO_2033-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2033 MIB = 73 - - // ISO99NAPLPS is the MIB identifier with IANA name ANSI_X3.110-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO99NAPLPS MIB = 74 - - // ISO102T617bit is the MIB identifier with IANA name T.61-7bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO102T617bit MIB = 75 - - // ISO103T618bit is the MIB identifier with IANA name T.61-8bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO103T618bit MIB = 76 - - // ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic. - // - // ISO registry - // (formerly ECMA - // registry ) - ISO111ECMACyrillic MIB = 77 - - // ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO121Canadian1 MIB = 78 - - // ISO122Canadian2 is the MIB identifier with IANA name CSA_Z243.4-1985-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO122Canadian2 MIB = 79 - - // ISO123CSAZ24341985gr is the MIB identifier with IANA name CSA_Z243.4-1985-gr. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO123CSAZ24341985gr MIB = 80 - - // ISO88596E is the MIB identifier with IANA name ISO_8859-6-E (MIME: ISO-8859-6-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88596E MIB = 81 - - // ISO88596I is the MIB identifier with IANA name ISO_8859-6-I (MIME: ISO-8859-6-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88596I MIB = 82 - - // ISO128T101G2 is the MIB identifier with IANA name T.101-G2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO128T101G2 MIB = 83 - - // ISO88598E is the MIB identifier with IANA name ISO_8859-8-E (MIME: ISO-8859-8-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88598E MIB = 84 - - // ISO88598I is the MIB identifier with IANA name ISO_8859-8-I (MIME: ISO-8859-8-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88598I MIB = 85 - - // ISO139CSN369103 is the MIB identifier with IANA name CSN_369103. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO139CSN369103 MIB = 86 - - // ISO141JUSIB1002 is the MIB identifier with IANA name JUS_I.B1.002. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO141JUSIB1002 MIB = 87 - - // ISO143IECP271 is the MIB identifier with IANA name IEC_P27-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO143IECP271 MIB = 88 - - // ISO146Serbian is the MIB identifier with IANA name JUS_I.B1.003-serb. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO146Serbian MIB = 89 - - // ISO147Macedonian is the MIB identifier with IANA name JUS_I.B1.003-mac. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO147Macedonian MIB = 90 - - // ISO150GreekCCITT is the MIB identifier with IANA name greek-ccitt. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO150GreekCCITT MIB = 91 - - // ISO151Cuba is the MIB identifier with IANA name NC_NC00-10:81. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO151Cuba MIB = 92 - - // ISO6937Add is the MIB identifier with IANA name ISO_6937-2-25. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO6937Add MIB = 93 - - // ISO153GOST1976874 is the MIB identifier with IANA name GOST_19768-74. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO153GOST1976874 MIB = 94 - - // ISO8859Supp is the MIB identifier with IANA name ISO_8859-supp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO8859Supp MIB = 95 - - // ISO10367Box is the MIB identifier with IANA name ISO_10367-box. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10367Box MIB = 96 - - // ISO158Lap is the MIB identifier with IANA name latin-lap. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO158Lap MIB = 97 - - // ISO159JISX02121990 is the MIB identifier with IANA name JIS_X0212-1990. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO159JISX02121990 MIB = 98 - - // ISO646Danish is the MIB identifier with IANA name DS_2089. - // - // Danish Standard, DS 2089, February 1974 - // Reference: RFC1345 - ISO646Danish MIB = 99 - - // USDK is the MIB identifier with IANA name us-dk. - // - // Reference: RFC1345 - USDK MIB = 100 - - // DKUS is the MIB identifier with IANA name dk-us. - // - // Reference: RFC1345 - DKUS MIB = 101 - - // KSC5636 is the MIB identifier with IANA name KSC5636. - // - // Reference: RFC1345 - KSC5636 MIB = 102 - - // Unicode11UTF7 is the MIB identifier with IANA name UNICODE-1-1-UTF-7. - // - // rfc1642 - // Reference: RFC1642 - Unicode11UTF7 MIB = 103 - - // ISO2022CN is the MIB identifier with IANA name ISO-2022-CN. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CN MIB = 104 - - // ISO2022CNEXT is the MIB identifier with IANA name ISO-2022-CN-EXT. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CNEXT MIB = 105 - - // UTF8 is the MIB identifier with IANA name UTF-8. - // - // rfc3629 - // Reference: RFC3629 - UTF8 MIB = 106 - - // ISO885913 is the MIB identifier with IANA name ISO-8859-13. - // - // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-13 http://www.iana.org/assignments/charset-reg/ISO-8859-13 - ISO885913 MIB = 109 - - // ISO885914 is the MIB identifier with IANA name ISO-8859-14. - // - // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-14 - ISO885914 MIB = 110 - - // ISO885915 is the MIB identifier with IANA name ISO-8859-15. - // - // ISO - // Please see: http://www.iana.org/assignments/charset-reg/ISO-8859-15 - ISO885915 MIB = 111 - - // ISO885916 is the MIB identifier with IANA name ISO-8859-16. - // - // ISO - ISO885916 MIB = 112 - - // GBK is the MIB identifier with IANA name GBK. - // - // Chinese IT Standardization Technical Committee - // Please see: http://www.iana.org/assignments/charset-reg/GBK - GBK MIB = 113 - - // GB18030 is the MIB identifier with IANA name GB18030. - // - // Chinese IT Standardization Technical Committee - // Please see: http://www.iana.org/assignments/charset-reg/GB18030 - GB18030 MIB = 114 - - // OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15 - OSDEBCDICDF0415 MIB = 115 - - // OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV - OSDEBCDICDF03IRV MIB = 116 - - // OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1 - OSDEBCDICDF041 MIB = 117 - - // ISO115481 is the MIB identifier with IANA name ISO-11548-1. - // - // See http://www.iana.org/assignments/charset-reg/ISO-11548-1 - ISO115481 MIB = 118 - - // KZ1048 is the MIB identifier with IANA name KZ-1048. - // - // See http://www.iana.org/assignments/charset-reg/KZ-1048 - KZ1048 MIB = 119 - - // Unicode is the MIB identifier with IANA name ISO-10646-UCS-2. - // - // the 2-octet Basic Multilingual Plane, aka Unicode - // this needs to specify network byte order: the standard - // does not specify (it is a 16-bit integer space) - Unicode MIB = 1000 - - // UCS4 is the MIB identifier with IANA name ISO-10646-UCS-4. - // - // the full code space. (same comment about byte order, - // these are 31-bit numbers. - UCS4 MIB = 1001 - - // UnicodeASCII is the MIB identifier with IANA name ISO-10646-UCS-Basic. - // - // ASCII subset of Unicode. Basic Latin = collection 1 - // See ISO 10646, Appendix A - UnicodeASCII MIB = 1002 - - // UnicodeLatin1 is the MIB identifier with IANA name ISO-10646-Unicode-Latin1. - // - // ISO Latin-1 subset of Unicode. Basic Latin and Latin-1 - // Supplement = collections 1 and 2. See ISO 10646, - // Appendix A. See rfc1815 . - UnicodeLatin1 MIB = 1003 - - // UnicodeJapanese is the MIB identifier with IANA name ISO-10646-J-1. - // - // ISO 10646 Japanese, see rfc1815 . - UnicodeJapanese MIB = 1004 - - // UnicodeIBM1261 is the MIB identifier with IANA name ISO-Unicode-IBM-1261. - // - // IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261 - UnicodeIBM1261 MIB = 1005 - - // UnicodeIBM1268 is the MIB identifier with IANA name ISO-Unicode-IBM-1268. - // - // IBM Latin-4 Extended Presentation Set, GCSGID: 1268 - UnicodeIBM1268 MIB = 1006 - - // UnicodeIBM1276 is the MIB identifier with IANA name ISO-Unicode-IBM-1276. - // - // IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276 - UnicodeIBM1276 MIB = 1007 - - // UnicodeIBM1264 is the MIB identifier with IANA name ISO-Unicode-IBM-1264. - // - // IBM Arabic Presentation Set, GCSGID: 1264 - UnicodeIBM1264 MIB = 1008 - - // UnicodeIBM1265 is the MIB identifier with IANA name ISO-Unicode-IBM-1265. - // - // IBM Hebrew Presentation Set, GCSGID: 1265 - UnicodeIBM1265 MIB = 1009 - - // Unicode11 is the MIB identifier with IANA name UNICODE-1-1. - // - // rfc1641 - // Reference: RFC1641 - Unicode11 MIB = 1010 - - // SCSU is the MIB identifier with IANA name SCSU. - // - // SCSU See http://www.iana.org/assignments/charset-reg/SCSU - SCSU MIB = 1011 - - // UTF7 is the MIB identifier with IANA name UTF-7. - // - // rfc2152 - // Reference: RFC2152 - UTF7 MIB = 1012 - - // UTF16BE is the MIB identifier with IANA name UTF-16BE. - // - // rfc2781 - // Reference: RFC2781 - UTF16BE MIB = 1013 - - // UTF16LE is the MIB identifier with IANA name UTF-16LE. - // - // rfc2781 - // Reference: RFC2781 - UTF16LE MIB = 1014 - - // UTF16 is the MIB identifier with IANA name UTF-16. - // - // rfc2781 - // Reference: RFC2781 - UTF16 MIB = 1015 - - // CESU8 is the MIB identifier with IANA name CESU-8. - // - // http://www.unicode.org/unicode/reports/tr26 - CESU8 MIB = 1016 - - // UTF32 is the MIB identifier with IANA name UTF-32. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32 MIB = 1017 - - // UTF32BE is the MIB identifier with IANA name UTF-32BE. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32BE MIB = 1018 - - // UTF32LE is the MIB identifier with IANA name UTF-32LE. - // - // http://www.unicode.org/unicode/reports/tr19/ - UTF32LE MIB = 1019 - - // BOCU1 is the MIB identifier with IANA name BOCU-1. - // - // http://www.unicode.org/notes/tn6/ - BOCU1 MIB = 1020 - - // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.0. - // PCL Symbol Set id: 9U - Windows30Latin1 MIB = 2000 - - // Windows31Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.1-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.1. - // PCL Symbol Set id: 19U - Windows31Latin1 MIB = 2001 - - // Windows31Latin2 is the MIB identifier with IANA name ISO-8859-2-Windows-Latin-2. - // - // Extended ISO 8859-2. Latin-2 for Windows 3.1. - // PCL Symbol Set id: 9E - Windows31Latin2 MIB = 2002 - - // Windows31Latin5 is the MIB identifier with IANA name ISO-8859-9-Windows-Latin-5. - // - // Extended ISO 8859-9. Latin-5 for Windows 3.1 - // PCL Symbol Set id: 5T - Windows31Latin5 MIB = 2003 - - // HPRoman8 is the MIB identifier with IANA name hp-roman8. - // - // LaserJet IIP Printer User's Manual, - // HP part no 33471-90901, Hewlet-Packard, June 1989. - // Reference: RFC1345 - HPRoman8 MIB = 2004 - - // AdobeStandardEncoding is the MIB identifier with IANA name Adobe-Standard-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 10J - AdobeStandardEncoding MIB = 2005 - - // VenturaUS is the MIB identifier with IANA name Ventura-US. - // - // Ventura US. ASCII plus characters typically used in - // publishing, like pilcrow, copyright, registered, trade mark, - // section, dagger, and double dagger in the range A0 (hex) - // to FF (hex). - // PCL Symbol Set id: 14J - VenturaUS MIB = 2006 - - // VenturaInternational is the MIB identifier with IANA name Ventura-International. - // - // Ventura International. ASCII plus coded characters similar - // to Roman8. - // PCL Symbol Set id: 13J - VenturaInternational MIB = 2007 - - // DECMCS is the MIB identifier with IANA name DEC-MCS. - // - // VAX/VMS User's Manual, - // Order Number: AI-Y517A-TE, April 1986. - // Reference: RFC1345 - DECMCS MIB = 2008 - - // PC850Multilingual is the MIB identifier with IANA name IBM850. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC850Multilingual MIB = 2009 - - // PC8DanishNorwegian is the MIB identifier with IANA name PC8-Danish-Norwegian. - // - // PC Danish Norwegian - // 8-bit PC set for Danish Norwegian - // PCL Symbol Set id: 11U - PC8DanishNorwegian MIB = 2012 - - // PC862LatinHebrew is the MIB identifier with IANA name IBM862. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC862LatinHebrew MIB = 2013 - - // PC8Turkish is the MIB identifier with IANA name PC8-Turkish. - // - // PC Latin Turkish. PCL Symbol Set id: 9T - PC8Turkish MIB = 2014 - - // IBMSymbols is the MIB identifier with IANA name IBM-Symbols. - // - // Presentation Set, CPGID: 259 - IBMSymbols MIB = 2015 - - // IBMThai is the MIB identifier with IANA name IBM-Thai. - // - // Presentation Set, CPGID: 838 - IBMThai MIB = 2016 - - // HPLegal is the MIB identifier with IANA name HP-Legal. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 1U - HPLegal MIB = 2017 - - // HPPiFont is the MIB identifier with IANA name HP-Pi-font. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 15U - HPPiFont MIB = 2018 - - // HPMath8 is the MIB identifier with IANA name HP-Math8. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 8M - HPMath8 MIB = 2019 - - // HPPSMath is the MIB identifier with IANA name Adobe-Symbol-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 5M - HPPSMath MIB = 2020 - - // HPDesktop is the MIB identifier with IANA name HP-DeskTop. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 7J - HPDesktop MIB = 2021 - - // VenturaMath is the MIB identifier with IANA name Ventura-Math. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6M - VenturaMath MIB = 2022 - - // MicrosoftPublishing is the MIB identifier with IANA name Microsoft-Publishing. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6J - MicrosoftPublishing MIB = 2023 - - // Windows31J is the MIB identifier with IANA name Windows-31J. - // - // Windows Japanese. A further extension of Shift_JIS - // to include NEC special characters (Row 13), NEC - // selection of IBM extensions (Rows 89 to 92), and IBM - // extensions (Rows 115 to 119). The CCS's are - // JIS X0201:1997, JIS X0208:1997, and these extensions. - // This charset can be used for the top-level media type "text", - // but it is of limited or specialized use (see rfc2278 ). - // PCL Symbol Set id: 19K - Windows31J MIB = 2024 - - // GB2312 is the MIB identifier with IANA name GB2312 (MIME: GB2312). - // - // Chinese for People's Republic of China (PRC) mixed one byte, - // two byte set: - // 20-7E = one byte ASCII - // A1-FE = two byte PRC Kanji - // See GB 2312-80 - // PCL Symbol Set Id: 18C - GB2312 MIB = 2025 - - // Big5 is the MIB identifier with IANA name Big5 (MIME: Big5). - // - // Chinese for Taiwan Multi-byte set. - // PCL Symbol Set Id: 18T - Big5 MIB = 2026 - - // Macintosh is the MIB identifier with IANA name macintosh. - // - // The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991 - // Reference: RFC1345 - Macintosh MIB = 2027 - - // IBM037 is the MIB identifier with IANA name IBM037. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM037 MIB = 2028 - - // IBM038 is the MIB identifier with IANA name IBM038. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM038 MIB = 2029 - - // IBM273 is the MIB identifier with IANA name IBM273. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM273 MIB = 2030 - - // IBM274 is the MIB identifier with IANA name IBM274. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM274 MIB = 2031 - - // IBM275 is the MIB identifier with IANA name IBM275. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM275 MIB = 2032 - - // IBM277 is the MIB identifier with IANA name IBM277. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM277 MIB = 2033 - - // IBM278 is the MIB identifier with IANA name IBM278. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM278 MIB = 2034 - - // IBM280 is the MIB identifier with IANA name IBM280. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM280 MIB = 2035 - - // IBM281 is the MIB identifier with IANA name IBM281. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM281 MIB = 2036 - - // IBM284 is the MIB identifier with IANA name IBM284. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM284 MIB = 2037 - - // IBM285 is the MIB identifier with IANA name IBM285. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM285 MIB = 2038 - - // IBM290 is the MIB identifier with IANA name IBM290. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM290 MIB = 2039 - - // IBM297 is the MIB identifier with IANA name IBM297. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM297 MIB = 2040 - - // IBM420 is the MIB identifier with IANA name IBM420. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990, - // IBM NLS RM p 11-11 - // Reference: RFC1345 - IBM420 MIB = 2041 - - // IBM423 is the MIB identifier with IANA name IBM423. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM423 MIB = 2042 - - // IBM424 is the MIB identifier with IANA name IBM424. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM424 MIB = 2043 - - // PC8CodePage437 is the MIB identifier with IANA name IBM437. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC8CodePage437 MIB = 2011 - - // IBM500 is the MIB identifier with IANA name IBM500. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM500 MIB = 2044 - - // IBM851 is the MIB identifier with IANA name IBM851. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM851 MIB = 2045 - - // PCp852 is the MIB identifier with IANA name IBM852. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PCp852 MIB = 2010 - - // IBM855 is the MIB identifier with IANA name IBM855. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM855 MIB = 2046 - - // IBM857 is the MIB identifier with IANA name IBM857. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM857 MIB = 2047 - - // IBM860 is the MIB identifier with IANA name IBM860. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM860 MIB = 2048 - - // IBM861 is the MIB identifier with IANA name IBM861. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM861 MIB = 2049 - - // IBM863 is the MIB identifier with IANA name IBM863. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM863 MIB = 2050 - - // IBM864 is the MIB identifier with IANA name IBM864. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM864 MIB = 2051 - - // IBM865 is the MIB identifier with IANA name IBM865. - // - // IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987) - // Reference: RFC1345 - IBM865 MIB = 2052 - - // IBM868 is the MIB identifier with IANA name IBM868. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM868 MIB = 2053 - - // IBM869 is the MIB identifier with IANA name IBM869. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM869 MIB = 2054 - - // IBM870 is the MIB identifier with IANA name IBM870. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM870 MIB = 2055 - - // IBM871 is the MIB identifier with IANA name IBM871. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM871 MIB = 2056 - - // IBM880 is the MIB identifier with IANA name IBM880. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM880 MIB = 2057 - - // IBM891 is the MIB identifier with IANA name IBM891. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM891 MIB = 2058 - - // IBM903 is the MIB identifier with IANA name IBM903. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM903 MIB = 2059 - - // IBBM904 is the MIB identifier with IANA name IBM904. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBBM904 MIB = 2060 - - // IBM905 is the MIB identifier with IANA name IBM905. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM905 MIB = 2061 - - // IBM918 is the MIB identifier with IANA name IBM918. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM918 MIB = 2062 - - // IBM1026 is the MIB identifier with IANA name IBM1026. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM1026 MIB = 2063 - - // IBMEBCDICATDE is the MIB identifier with IANA name EBCDIC-AT-DE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - IBMEBCDICATDE MIB = 2064 - - // EBCDICATDEA is the MIB identifier with IANA name EBCDIC-AT-DE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICATDEA MIB = 2065 - - // EBCDICCAFR is the MIB identifier with IANA name EBCDIC-CA-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICCAFR MIB = 2066 - - // EBCDICDKNO is the MIB identifier with IANA name EBCDIC-DK-NO. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNO MIB = 2067 - - // EBCDICDKNOA is the MIB identifier with IANA name EBCDIC-DK-NO-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNOA MIB = 2068 - - // EBCDICFISE is the MIB identifier with IANA name EBCDIC-FI-SE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISE MIB = 2069 - - // EBCDICFISEA is the MIB identifier with IANA name EBCDIC-FI-SE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISEA MIB = 2070 - - // EBCDICFR is the MIB identifier with IANA name EBCDIC-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFR MIB = 2071 - - // EBCDICIT is the MIB identifier with IANA name EBCDIC-IT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICIT MIB = 2072 - - // EBCDICPT is the MIB identifier with IANA name EBCDIC-PT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICPT MIB = 2073 - - // EBCDICES is the MIB identifier with IANA name EBCDIC-ES. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICES MIB = 2074 - - // EBCDICESA is the MIB identifier with IANA name EBCDIC-ES-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESA MIB = 2075 - - // EBCDICESS is the MIB identifier with IANA name EBCDIC-ES-S. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESS MIB = 2076 - - // EBCDICUK is the MIB identifier with IANA name EBCDIC-UK. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUK MIB = 2077 - - // EBCDICUS is the MIB identifier with IANA name EBCDIC-US. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUS MIB = 2078 - - // Unknown8BiT is the MIB identifier with IANA name UNKNOWN-8BIT. - // - // Reference: RFC1428 - Unknown8BiT MIB = 2079 - - // Mnemonic is the MIB identifier with IANA name MNEMONIC. - // - // rfc1345 , also known as "mnemonic+ascii+38" - // Reference: RFC1345 - Mnemonic MIB = 2080 - - // Mnem is the MIB identifier with IANA name MNEM. - // - // rfc1345 , also known as "mnemonic+ascii+8200" - // Reference: RFC1345 - Mnem MIB = 2081 - - // VISCII is the MIB identifier with IANA name VISCII. - // - // rfc1456 - // Reference: RFC1456 - VISCII MIB = 2082 - - // VIQR is the MIB identifier with IANA name VIQR. - // - // rfc1456 - // Reference: RFC1456 - VIQR MIB = 2083 - - // KOI8R is the MIB identifier with IANA name KOI8-R (MIME: KOI8-R). - // - // rfc1489 , based on GOST-19768-74, ISO-6937/8, - // INIS-Cyrillic, ISO-5427. - // Reference: RFC1489 - KOI8R MIB = 2084 - - // HZGB2312 is the MIB identifier with IANA name HZ-GB-2312. - // - // rfc1842 , rfc1843 rfc1843 rfc1842 - HZGB2312 MIB = 2085 - - // IBM866 is the MIB identifier with IANA name IBM866. - // - // IBM NLDG Volume 2 (SE09-8002-03) August 1994 - IBM866 MIB = 2086 - - // PC775Baltic is the MIB identifier with IANA name IBM775. - // - // HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996 - PC775Baltic MIB = 2087 - - // KOI8U is the MIB identifier with IANA name KOI8-U. - // - // rfc2319 - // Reference: RFC2319 - KOI8U MIB = 2088 - - // IBM00858 is the MIB identifier with IANA name IBM00858. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM00858 - IBM00858 MIB = 2089 - - // IBM00924 is the MIB identifier with IANA name IBM00924. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM00924 - IBM00924 MIB = 2090 - - // IBM01140 is the MIB identifier with IANA name IBM01140. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01140 - IBM01140 MIB = 2091 - - // IBM01141 is the MIB identifier with IANA name IBM01141. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01141 - IBM01141 MIB = 2092 - - // IBM01142 is the MIB identifier with IANA name IBM01142. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01142 - IBM01142 MIB = 2093 - - // IBM01143 is the MIB identifier with IANA name IBM01143. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01143 - IBM01143 MIB = 2094 - - // IBM01144 is the MIB identifier with IANA name IBM01144. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01144 - IBM01144 MIB = 2095 - - // IBM01145 is the MIB identifier with IANA name IBM01145. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01145 - IBM01145 MIB = 2096 - - // IBM01146 is the MIB identifier with IANA name IBM01146. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01146 - IBM01146 MIB = 2097 - - // IBM01147 is the MIB identifier with IANA name IBM01147. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01147 - IBM01147 MIB = 2098 - - // IBM01148 is the MIB identifier with IANA name IBM01148. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01148 - IBM01148 MIB = 2099 - - // IBM01149 is the MIB identifier with IANA name IBM01149. - // - // IBM See http://www.iana.org/assignments/charset-reg/IBM01149 - IBM01149 MIB = 2100 - - // Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS. - // - // See http://www.iana.org/assignments/charset-reg/Big5-HKSCS - Big5HKSCS MIB = 2101 - - // IBM1047 is the MIB identifier with IANA name IBM1047. - // - // IBM1047 (EBCDIC Latin 1/Open Systems) http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf - IBM1047 MIB = 2102 - - // PTCP154 is the MIB identifier with IANA name PTCP154. - // - // See http://www.iana.org/assignments/charset-reg/PTCP154 - PTCP154 MIB = 2103 - - // Amiga1251 is the MIB identifier with IANA name Amiga-1251. - // - // See http://www.amiga.ultranet.ru/Amiga-1251.html - Amiga1251 MIB = 2104 - - // KOI7switched is the MIB identifier with IANA name KOI7-switched. - // - // See http://www.iana.org/assignments/charset-reg/KOI7-switched - KOI7switched MIB = 2105 - - // BRF is the MIB identifier with IANA name BRF. - // - // See http://www.iana.org/assignments/charset-reg/BRF - BRF MIB = 2106 - - // TSCII is the MIB identifier with IANA name TSCII. - // - // See http://www.iana.org/assignments/charset-reg/TSCII - TSCII MIB = 2107 - - // CP51932 is the MIB identifier with IANA name CP51932. - // - // See http://www.iana.org/assignments/charset-reg/CP51932 - CP51932 MIB = 2108 - - // Windows874 is the MIB identifier with IANA name windows-874. - // - // See http://www.iana.org/assignments/charset-reg/windows-874 - Windows874 MIB = 2109 - - // Windows1250 is the MIB identifier with IANA name windows-1250. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1250 - Windows1250 MIB = 2250 - - // Windows1251 is the MIB identifier with IANA name windows-1251. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1251 - Windows1251 MIB = 2251 - - // Windows1252 is the MIB identifier with IANA name windows-1252. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1252 - Windows1252 MIB = 2252 - - // Windows1253 is the MIB identifier with IANA name windows-1253. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1253 - Windows1253 MIB = 2253 - - // Windows1254 is the MIB identifier with IANA name windows-1254. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1254 - Windows1254 MIB = 2254 - - // Windows1255 is the MIB identifier with IANA name windows-1255. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1255 - Windows1255 MIB = 2255 - - // Windows1256 is the MIB identifier with IANA name windows-1256. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1256 - Windows1256 MIB = 2256 - - // Windows1257 is the MIB identifier with IANA name windows-1257. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1257 - Windows1257 MIB = 2257 - - // Windows1258 is the MIB identifier with IANA name windows-1258. - // - // Microsoft http://www.iana.org/assignments/charset-reg/windows-1258 - Windows1258 MIB = 2258 - - // TIS620 is the MIB identifier with IANA name TIS-620. - // - // Thai Industrial Standards Institute (TISI) - TIS620 MIB = 2259 - - // CP50220 is the MIB identifier with IANA name CP50220. - // - // See http://www.iana.org/assignments/charset-reg/CP50220 - CP50220 MIB = 2260 -) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/internal.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/internal.go deleted file mode 100644 index 75a5fd16..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/internal/internal.go +++ /dev/null @@ -1,75 +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 code that is shared among encoding implementations. -package internal - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// Encoding is an implementation of the Encoding interface that adds the String -// and ID methods to an existing encoding. -type Encoding struct { - encoding.Encoding - Name string - MIB identifier.MIB -} - -// _ verifies that Encoding implements identifier.Interface. -var _ identifier.Interface = (*Encoding)(nil) - -func (e *Encoding) String() string { - return e.Name -} - -func (e *Encoding) ID() (mib identifier.MIB, other string) { - return e.MIB, "" -} - -// SimpleEncoding is an Encoding that combines two Transformers. -type SimpleEncoding struct { - Decoder transform.Transformer - Encoder transform.Transformer -} - -func (e *SimpleEncoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: e.Decoder} -} - -func (e *SimpleEncoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: e.Encoder} -} - -// FuncEncoding is an Encoding that combines two functions returning a new -// Transformer. -type FuncEncoding struct { - Decoder func() transform.Transformer - Encoder func() transform.Transformer -} - -func (e FuncEncoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: e.Decoder()} -} - -func (e FuncEncoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: e.Encoder()} -} - -// A RepertoireError indicates a rune is not in the repertoire of a destination -// encoding. It is associated with an encoding-specific suggested replacement -// byte. -type RepertoireError byte - -// Error implements the error interrface. -func (r RepertoireError) Error() string { - return "encoding: rune not supported by encoding." -} - -// Replacement returns the replacement string associated with this error. -func (r RepertoireError) Replacement() byte { return byte(r) } - -var ErrASCIIReplacement = RepertoireError(encoding.ASCIISub) diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/all.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/all.go deleted file mode 100644 index 6cfa8de4..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/all.go +++ /dev/null @@ -1,12 +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 japanese - -import ( - "golang.org/x/text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCJP, ISO2022JP, ShiftJIS} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/eucjp.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/eucjp.go deleted file mode 100644 index 79313fa5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/eucjp.go +++ /dev/null @@ -1,225 +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 japanese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// EUCJP is the EUC-JP encoding. -var EUCJP encoding.Encoding = &eucJP - -var eucJP = internal.Encoding{ - &internal.SimpleEncoding{eucJPDecoder{}, eucJPEncoder{}}, - "EUC-JP", - identifier.EUCPkdFmtJapanese, -} - -type eucJPDecoder struct{ transform.NopResetter } - -// See https://encoding.spec.whatwg.org/#euc-jp-decoder. -func (eucJPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case c0 == 0x8e: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - break - } - c1 := src[nSrc+1] - switch { - case c1 < 0xa1: - r, size = utf8.RuneError, 1 - case c1 > 0xdf: - r, size = utf8.RuneError, 2 - if c1 == 0xff { - size = 1 - } - default: - r, size = rune(c1)+(0xff61-0xa1), 2 - } - case c0 == 0x8f: - if nSrc+2 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - if p := nSrc + 1; p < len(src) && 0xa1 <= src[p] && src[p] < 0xfe { - size = 2 - } - break - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - r, size = utf8.RuneError, 1 - break - } - c2 := src[nSrc+2] - if c2 < 0xa1 || 0xfe < c2 { - r, size = utf8.RuneError, 2 - break - } - r, size = utf8.RuneError, 3 - if i := int(c1-0xa1)*94 + int(c2-0xa1); i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - if r == 0 { - r = utf8.RuneError - } - } - - case 0xa1 <= c0 && c0 <= 0xfe: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - break - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - r, size = utf8.RuneError, 1 - break - } - r, size = utf8.RuneError, 2 - if i := int(c0-0xa1)*94 + int(c1-0xa1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = utf8.RuneError - } - } - - default: - r, size = utf8.RuneError, 1 - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type eucJPEncoder struct{ transform.NopResetter } - -func (eucJPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2or3 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2or3 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2or3 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2or3 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2or3 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto write2 - } - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2or3 - } - } - err = internal.ErrASCIIReplacement - break - } - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2or3: - if r>>tableShift == jis0208 { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - } else { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = 0x8f - nDst++ - } - dst[nDst+0] = 0xa1 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0xa1 + uint8(r)&codeMask - nDst += 2 - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x8e - dst[nDst+1] = uint8(r - (0xff61 - 0xa1)) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 6 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go deleted file mode 100644 index 613226df..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go +++ /dev/null @@ -1,299 +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 japanese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// ISO2022JP is the ISO-2022-JP encoding. -var ISO2022JP encoding.Encoding = &iso2022JP - -var iso2022JP = internal.Encoding{ - internal.FuncEncoding{iso2022JPNewDecoder, iso2022JPNewEncoder}, - "ISO-2022-JP", - identifier.ISO2022JP, -} - -func iso2022JPNewDecoder() transform.Transformer { - return new(iso2022JPDecoder) -} - -func iso2022JPNewEncoder() transform.Transformer { - return new(iso2022JPEncoder) -} - -const ( - asciiState = iota - katakanaState - jis0208State - jis0212State -) - -const asciiEsc = 0x1b - -type iso2022JPDecoder int - -func (d *iso2022JPDecoder) Reset() { - *d = asciiState -} - -func (d *iso2022JPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - r, size = '\ufffd', 1 - goto write - } - - if c0 == asciiEsc { - if nSrc+2 >= len(src) { - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - // TODO: is it correct to only skip 1?? - r, size = '\ufffd', 1 - goto write - } - size = 3 - c1 := src[nSrc+1] - c2 := src[nSrc+2] - switch { - case c1 == '$' && (c2 == '@' || c2 == 'B'): // 0x24 {0x40, 0x42} - *d = jis0208State - continue - case c1 == '$' && c2 == '(': // 0x24 0x28 - if nSrc+3 >= len(src) { - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - r, size = '\ufffd', 1 - goto write - } - size = 4 - if src[nSrc+3] == 'D' { - *d = jis0212State - continue - } - case c1 == '(' && (c2 == 'B' || c2 == 'J'): // 0x28 {0x42, 0x4A} - *d = asciiState - continue - case c1 == '(' && c2 == 'I': // 0x28 0x49 - *d = katakanaState - continue - } - r, size = '\ufffd', 1 - goto write - } - - switch *d { - case asciiState: - r, size = rune(c0), 1 - - case katakanaState: - if c0 < 0x21 || 0x60 <= c0 { - r, size = '\ufffd', 1 - goto write - } - r, size = rune(c0)+(0xff61-0x21), 1 - - default: - if c0 == 0x0a { - *d = asciiState - r, size = rune(c0), 1 - goto write - } - if nSrc+1 >= len(src) { - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - r, size = '\ufffd', 1 - goto write - } - size = 2 - c1 := src[nSrc+1] - i := int(c0-0x21)*94 + int(c1-0x21) - if *d == jis0208State && i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - } else if *d == jis0212State && i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - } else { - r = '\ufffd' - goto write - } - if r == 0 { - r = '\ufffd' - } - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type iso2022JPEncoder int - -func (e *iso2022JPEncoder) Reset() { - *e = asciiState -} - -func (e *iso2022JPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - // - // http://encoding.spec.whatwg.org/#iso-2022-jp says that "the index jis0212 - // is not used by the iso-2022-jp encoder due to lack of widespread support". - // - // TODO: do we have to special-case U+00A5 and U+203E, as per - // http://encoding.spec.whatwg.org/#iso-2022-jp - // Doing so would mean that "\u00a5" would not be preserved - // after an encode-decode round trip. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto writeKatakana - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto writeJIS - } - } - - // Switch back to ASCII state in case of error so that an ASCII - // replacement character can be written in the correct state. - if *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } - err = internal.ErrASCIIReplacement - break - } - - if *e != asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - writeJIS: - if *e != jis0208State { - if nDst+5 > len(dst) { - err = transform.ErrShortDst - break - } - *e = jis0208State - dst[nDst+0] = asciiEsc - dst[nDst+1] = '$' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x21 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0x21 + uint8(r)&codeMask - nDst += 2 - continue - - writeKatakana: - if *e != katakanaState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = katakanaState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'I' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r - (0xff61 - 0x21)) - nDst++ - continue - } - if atEOF && err == nil && *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - } else { - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } - } - return nDst, nSrc, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/shiftjis.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/shiftjis.go deleted file mode 100644 index 16fd8a6e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/shiftjis.go +++ /dev/null @@ -1,189 +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 japanese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// ShiftJIS is the Shift JIS encoding, also known as Code Page 932 and -// Windows-31J. -var ShiftJIS encoding.Encoding = &shiftJIS - -var shiftJIS = internal.Encoding{ - &internal.SimpleEncoding{shiftJISDecoder{}, shiftJISEncoder{}}, - "Shift JIS", - identifier.ShiftJIS, -} - -type shiftJISDecoder struct{ transform.NopResetter } - -func (shiftJISDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0xa1 <= c0 && c0 < 0xe0: - r, size = rune(c0)+(0xff61-0xa1), 1 - - case (0x81 <= c0 && c0 < 0xa0) || (0xe0 <= c0 && c0 < 0xfd): - if c0 <= 0x9f { - c0 -= 0x70 - } else { - c0 -= 0xb0 - } - c0 = 2*c0 - 0x21 - - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = '\ufffd', 1 - goto write - } - c1 := src[nSrc+1] - switch { - case c1 < 0x40: - r, size = '\ufffd', 1 // c1 is ASCII so output on next round - goto write - case c1 < 0x7f: - c0-- - c1 -= 0x40 - case c1 == 0x7f: - r, size = '\ufffd', 1 // c1 is ASCII so output on next round - goto write - case c1 < 0x9f: - c0-- - c1 -= 0x41 - case c1 < 0xfd: - c1 -= 0x9f - default: - r, size = '\ufffd', 2 - goto write - } - r, size = '\ufffd', 2 - if i := int(c0)*94 + int(c1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - case c0 == 0x80: - r, size = 0x80, 1 - - default: - r, size = '\ufffd', 1 - } - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type shiftJISEncoder struct{ transform.NopResetter } - -func (shiftJISEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break loop - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - r -= 0xff61 - 0xa1 - goto write1 - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - j1 := uint8(r>>codeShift) & codeMask - j2 := uint8(r) & codeMask - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break loop - } - if j1 <= 61 { - dst[nDst+0] = 129 + j1/2 - } else { - dst[nDst+0] = 193 + j1/2 - } - if j1&1 == 0 { - dst[nDst+1] = j2 + j2/63 + 64 - } else { - dst[nDst+1] = j2 + 159 - } - nDst += 2 - continue - } - return nDst, nSrc, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/tables.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/tables.go deleted file mode 100644 index 8717b79a..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/japanese/tables.go +++ /dev/null @@ -1,26971 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS. -package japanese // import "golang.org/x/text/encoding/japanese" - -// jis0208Decode is the decoding table from JIS 0208 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0208.txt -var jis0208Decode = [...]uint16{ - 0: 0x3000, - 1: 0x3001, - 2: 0x3002, - 3: 0xFF0C, - 4: 0xFF0E, - 5: 0x30FB, - 6: 0xFF1A, - 7: 0xFF1B, - 8: 0xFF1F, - 9: 0xFF01, - 10: 0x309B, - 11: 0x309C, - 12: 0x00B4, - 13: 0xFF40, - 14: 0x00A8, - 15: 0xFF3E, - 16: 0xFFE3, - 17: 0xFF3F, - 18: 0x30FD, - 19: 0x30FE, - 20: 0x309D, - 21: 0x309E, - 22: 0x3003, - 23: 0x4EDD, - 24: 0x3005, - 25: 0x3006, - 26: 0x3007, - 27: 0x30FC, - 28: 0x2015, - 29: 0x2010, - 30: 0xFF0F, - 31: 0xFF3C, - 32: 0xFF5E, - 33: 0x2225, - 34: 0xFF5C, - 35: 0x2026, - 36: 0x2025, - 37: 0x2018, - 38: 0x2019, - 39: 0x201C, - 40: 0x201D, - 41: 0xFF08, - 42: 0xFF09, - 43: 0x3014, - 44: 0x3015, - 45: 0xFF3B, - 46: 0xFF3D, - 47: 0xFF5B, - 48: 0xFF5D, - 49: 0x3008, - 50: 0x3009, - 51: 0x300A, - 52: 0x300B, - 53: 0x300C, - 54: 0x300D, - 55: 0x300E, - 56: 0x300F, - 57: 0x3010, - 58: 0x3011, - 59: 0xFF0B, - 60: 0xFF0D, - 61: 0x00B1, - 62: 0x00D7, - 63: 0x00F7, - 64: 0xFF1D, - 65: 0x2260, - 66: 0xFF1C, - 67: 0xFF1E, - 68: 0x2266, - 69: 0x2267, - 70: 0x221E, - 71: 0x2234, - 72: 0x2642, - 73: 0x2640, - 74: 0x00B0, - 75: 0x2032, - 76: 0x2033, - 77: 0x2103, - 78: 0xFFE5, - 79: 0xFF04, - 80: 0xFFE0, - 81: 0xFFE1, - 82: 0xFF05, - 83: 0xFF03, - 84: 0xFF06, - 85: 0xFF0A, - 86: 0xFF20, - 87: 0x00A7, - 88: 0x2606, - 89: 0x2605, - 90: 0x25CB, - 91: 0x25CF, - 92: 0x25CE, - 93: 0x25C7, - 94: 0x25C6, - 95: 0x25A1, - 96: 0x25A0, - 97: 0x25B3, - 98: 0x25B2, - 99: 0x25BD, - 100: 0x25BC, - 101: 0x203B, - 102: 0x3012, - 103: 0x2192, - 104: 0x2190, - 105: 0x2191, - 106: 0x2193, - 107: 0x3013, - 119: 0x2208, - 120: 0x220B, - 121: 0x2286, - 122: 0x2287, - 123: 0x2282, - 124: 0x2283, - 125: 0x222A, - 126: 0x2229, - 135: 0x2227, - 136: 0x2228, - 137: 0xFFE2, - 138: 0x21D2, - 139: 0x21D4, - 140: 0x2200, - 141: 0x2203, - 153: 0x2220, - 154: 0x22A5, - 155: 0x2312, - 156: 0x2202, - 157: 0x2207, - 158: 0x2261, - 159: 0x2252, - 160: 0x226A, - 161: 0x226B, - 162: 0x221A, - 163: 0x223D, - 164: 0x221D, - 165: 0x2235, - 166: 0x222B, - 167: 0x222C, - 175: 0x212B, - 176: 0x2030, - 177: 0x266F, - 178: 0x266D, - 179: 0x266A, - 180: 0x2020, - 181: 0x2021, - 182: 0x00B6, - 187: 0x25EF, - 203: 0xFF10, - 204: 0xFF11, - 205: 0xFF12, - 206: 0xFF13, - 207: 0xFF14, - 208: 0xFF15, - 209: 0xFF16, - 210: 0xFF17, - 211: 0xFF18, - 212: 0xFF19, - 220: 0xFF21, - 221: 0xFF22, - 222: 0xFF23, - 223: 0xFF24, - 224: 0xFF25, - 225: 0xFF26, - 226: 0xFF27, - 227: 0xFF28, - 228: 0xFF29, - 229: 0xFF2A, - 230: 0xFF2B, - 231: 0xFF2C, - 232: 0xFF2D, - 233: 0xFF2E, - 234: 0xFF2F, - 235: 0xFF30, - 236: 0xFF31, - 237: 0xFF32, - 238: 0xFF33, - 239: 0xFF34, - 240: 0xFF35, - 241: 0xFF36, - 242: 0xFF37, - 243: 0xFF38, - 244: 0xFF39, - 245: 0xFF3A, - 252: 0xFF41, - 253: 0xFF42, - 254: 0xFF43, - 255: 0xFF44, - 256: 0xFF45, - 257: 0xFF46, - 258: 0xFF47, - 259: 0xFF48, - 260: 0xFF49, - 261: 0xFF4A, - 262: 0xFF4B, - 263: 0xFF4C, - 264: 0xFF4D, - 265: 0xFF4E, - 266: 0xFF4F, - 267: 0xFF50, - 268: 0xFF51, - 269: 0xFF52, - 270: 0xFF53, - 271: 0xFF54, - 272: 0xFF55, - 273: 0xFF56, - 274: 0xFF57, - 275: 0xFF58, - 276: 0xFF59, - 277: 0xFF5A, - 282: 0x3041, - 283: 0x3042, - 284: 0x3043, - 285: 0x3044, - 286: 0x3045, - 287: 0x3046, - 288: 0x3047, - 289: 0x3048, - 290: 0x3049, - 291: 0x304A, - 292: 0x304B, - 293: 0x304C, - 294: 0x304D, - 295: 0x304E, - 296: 0x304F, - 297: 0x3050, - 298: 0x3051, - 299: 0x3052, - 300: 0x3053, - 301: 0x3054, - 302: 0x3055, - 303: 0x3056, - 304: 0x3057, - 305: 0x3058, - 306: 0x3059, - 307: 0x305A, - 308: 0x305B, - 309: 0x305C, - 310: 0x305D, - 311: 0x305E, - 312: 0x305F, - 313: 0x3060, - 314: 0x3061, - 315: 0x3062, - 316: 0x3063, - 317: 0x3064, - 318: 0x3065, - 319: 0x3066, - 320: 0x3067, - 321: 0x3068, - 322: 0x3069, - 323: 0x306A, - 324: 0x306B, - 325: 0x306C, - 326: 0x306D, - 327: 0x306E, - 328: 0x306F, - 329: 0x3070, - 330: 0x3071, - 331: 0x3072, - 332: 0x3073, - 333: 0x3074, - 334: 0x3075, - 335: 0x3076, - 336: 0x3077, - 337: 0x3078, - 338: 0x3079, - 339: 0x307A, - 340: 0x307B, - 341: 0x307C, - 342: 0x307D, - 343: 0x307E, - 344: 0x307F, - 345: 0x3080, - 346: 0x3081, - 347: 0x3082, - 348: 0x3083, - 349: 0x3084, - 350: 0x3085, - 351: 0x3086, - 352: 0x3087, - 353: 0x3088, - 354: 0x3089, - 355: 0x308A, - 356: 0x308B, - 357: 0x308C, - 358: 0x308D, - 359: 0x308E, - 360: 0x308F, - 361: 0x3090, - 362: 0x3091, - 363: 0x3092, - 364: 0x3093, - 376: 0x30A1, - 377: 0x30A2, - 378: 0x30A3, - 379: 0x30A4, - 380: 0x30A5, - 381: 0x30A6, - 382: 0x30A7, - 383: 0x30A8, - 384: 0x30A9, - 385: 0x30AA, - 386: 0x30AB, - 387: 0x30AC, - 388: 0x30AD, - 389: 0x30AE, - 390: 0x30AF, - 391: 0x30B0, - 392: 0x30B1, - 393: 0x30B2, - 394: 0x30B3, - 395: 0x30B4, - 396: 0x30B5, - 397: 0x30B6, - 398: 0x30B7, - 399: 0x30B8, - 400: 0x30B9, - 401: 0x30BA, - 402: 0x30BB, - 403: 0x30BC, - 404: 0x30BD, - 405: 0x30BE, - 406: 0x30BF, - 407: 0x30C0, - 408: 0x30C1, - 409: 0x30C2, - 410: 0x30C3, - 411: 0x30C4, - 412: 0x30C5, - 413: 0x30C6, - 414: 0x30C7, - 415: 0x30C8, - 416: 0x30C9, - 417: 0x30CA, - 418: 0x30CB, - 419: 0x30CC, - 420: 0x30CD, - 421: 0x30CE, - 422: 0x30CF, - 423: 0x30D0, - 424: 0x30D1, - 425: 0x30D2, - 426: 0x30D3, - 427: 0x30D4, - 428: 0x30D5, - 429: 0x30D6, - 430: 0x30D7, - 431: 0x30D8, - 432: 0x30D9, - 433: 0x30DA, - 434: 0x30DB, - 435: 0x30DC, - 436: 0x30DD, - 437: 0x30DE, - 438: 0x30DF, - 439: 0x30E0, - 440: 0x30E1, - 441: 0x30E2, - 442: 0x30E3, - 443: 0x30E4, - 444: 0x30E5, - 445: 0x30E6, - 446: 0x30E7, - 447: 0x30E8, - 448: 0x30E9, - 449: 0x30EA, - 450: 0x30EB, - 451: 0x30EC, - 452: 0x30ED, - 453: 0x30EE, - 454: 0x30EF, - 455: 0x30F0, - 456: 0x30F1, - 457: 0x30F2, - 458: 0x30F3, - 459: 0x30F4, - 460: 0x30F5, - 461: 0x30F6, - 470: 0x0391, - 471: 0x0392, - 472: 0x0393, - 473: 0x0394, - 474: 0x0395, - 475: 0x0396, - 476: 0x0397, - 477: 0x0398, - 478: 0x0399, - 479: 0x039A, - 480: 0x039B, - 481: 0x039C, - 482: 0x039D, - 483: 0x039E, - 484: 0x039F, - 485: 0x03A0, - 486: 0x03A1, - 487: 0x03A3, - 488: 0x03A4, - 489: 0x03A5, - 490: 0x03A6, - 491: 0x03A7, - 492: 0x03A8, - 493: 0x03A9, - 502: 0x03B1, - 503: 0x03B2, - 504: 0x03B3, - 505: 0x03B4, - 506: 0x03B5, - 507: 0x03B6, - 508: 0x03B7, - 509: 0x03B8, - 510: 0x03B9, - 511: 0x03BA, - 512: 0x03BB, - 513: 0x03BC, - 514: 0x03BD, - 515: 0x03BE, - 516: 0x03BF, - 517: 0x03C0, - 518: 0x03C1, - 519: 0x03C3, - 520: 0x03C4, - 521: 0x03C5, - 522: 0x03C6, - 523: 0x03C7, - 524: 0x03C8, - 525: 0x03C9, - 564: 0x0410, - 565: 0x0411, - 566: 0x0412, - 567: 0x0413, - 568: 0x0414, - 569: 0x0415, - 570: 0x0401, - 571: 0x0416, - 572: 0x0417, - 573: 0x0418, - 574: 0x0419, - 575: 0x041A, - 576: 0x041B, - 577: 0x041C, - 578: 0x041D, - 579: 0x041E, - 580: 0x041F, - 581: 0x0420, - 582: 0x0421, - 583: 0x0422, - 584: 0x0423, - 585: 0x0424, - 586: 0x0425, - 587: 0x0426, - 588: 0x0427, - 589: 0x0428, - 590: 0x0429, - 591: 0x042A, - 592: 0x042B, - 593: 0x042C, - 594: 0x042D, - 595: 0x042E, - 596: 0x042F, - 612: 0x0430, - 613: 0x0431, - 614: 0x0432, - 615: 0x0433, - 616: 0x0434, - 617: 0x0435, - 618: 0x0451, - 619: 0x0436, - 620: 0x0437, - 621: 0x0438, - 622: 0x0439, - 623: 0x043A, - 624: 0x043B, - 625: 0x043C, - 626: 0x043D, - 627: 0x043E, - 628: 0x043F, - 629: 0x0440, - 630: 0x0441, - 631: 0x0442, - 632: 0x0443, - 633: 0x0444, - 634: 0x0445, - 635: 0x0446, - 636: 0x0447, - 637: 0x0448, - 638: 0x0449, - 639: 0x044A, - 640: 0x044B, - 641: 0x044C, - 642: 0x044D, - 643: 0x044E, - 644: 0x044F, - 658: 0x2500, - 659: 0x2502, - 660: 0x250C, - 661: 0x2510, - 662: 0x2518, - 663: 0x2514, - 664: 0x251C, - 665: 0x252C, - 666: 0x2524, - 667: 0x2534, - 668: 0x253C, - 669: 0x2501, - 670: 0x2503, - 671: 0x250F, - 672: 0x2513, - 673: 0x251B, - 674: 0x2517, - 675: 0x2523, - 676: 0x2533, - 677: 0x252B, - 678: 0x253B, - 679: 0x254B, - 680: 0x2520, - 681: 0x252F, - 682: 0x2528, - 683: 0x2537, - 684: 0x253F, - 685: 0x251D, - 686: 0x2530, - 687: 0x2525, - 688: 0x2538, - 689: 0x2542, - 1128: 0x2460, - 1129: 0x2461, - 1130: 0x2462, - 1131: 0x2463, - 1132: 0x2464, - 1133: 0x2465, - 1134: 0x2466, - 1135: 0x2467, - 1136: 0x2468, - 1137: 0x2469, - 1138: 0x246A, - 1139: 0x246B, - 1140: 0x246C, - 1141: 0x246D, - 1142: 0x246E, - 1143: 0x246F, - 1144: 0x2470, - 1145: 0x2471, - 1146: 0x2472, - 1147: 0x2473, - 1148: 0x2160, - 1149: 0x2161, - 1150: 0x2162, - 1151: 0x2163, - 1152: 0x2164, - 1153: 0x2165, - 1154: 0x2166, - 1155: 0x2167, - 1156: 0x2168, - 1157: 0x2169, - 1159: 0x3349, - 1160: 0x3314, - 1161: 0x3322, - 1162: 0x334D, - 1163: 0x3318, - 1164: 0x3327, - 1165: 0x3303, - 1166: 0x3336, - 1167: 0x3351, - 1168: 0x3357, - 1169: 0x330D, - 1170: 0x3326, - 1171: 0x3323, - 1172: 0x332B, - 1173: 0x334A, - 1174: 0x333B, - 1175: 0x339C, - 1176: 0x339D, - 1177: 0x339E, - 1178: 0x338E, - 1179: 0x338F, - 1180: 0x33C4, - 1181: 0x33A1, - 1190: 0x337B, - 1191: 0x301D, - 1192: 0x301F, - 1193: 0x2116, - 1194: 0x33CD, - 1195: 0x2121, - 1196: 0x32A4, - 1197: 0x32A5, - 1198: 0x32A6, - 1199: 0x32A7, - 1200: 0x32A8, - 1201: 0x3231, - 1202: 0x3232, - 1203: 0x3239, - 1204: 0x337E, - 1205: 0x337D, - 1206: 0x337C, - 1207: 0x2252, - 1208: 0x2261, - 1209: 0x222B, - 1210: 0x222E, - 1211: 0x2211, - 1212: 0x221A, - 1213: 0x22A5, - 1214: 0x2220, - 1215: 0x221F, - 1216: 0x22BF, - 1217: 0x2235, - 1218: 0x2229, - 1219: 0x222A, - 1410: 0x4E9C, - 1411: 0x5516, - 1412: 0x5A03, - 1413: 0x963F, - 1414: 0x54C0, - 1415: 0x611B, - 1416: 0x6328, - 1417: 0x59F6, - 1418: 0x9022, - 1419: 0x8475, - 1420: 0x831C, - 1421: 0x7A50, - 1422: 0x60AA, - 1423: 0x63E1, - 1424: 0x6E25, - 1425: 0x65ED, - 1426: 0x8466, - 1427: 0x82A6, - 1428: 0x9BF5, - 1429: 0x6893, - 1430: 0x5727, - 1431: 0x65A1, - 1432: 0x6271, - 1433: 0x5B9B, - 1434: 0x59D0, - 1435: 0x867B, - 1436: 0x98F4, - 1437: 0x7D62, - 1438: 0x7DBE, - 1439: 0x9B8E, - 1440: 0x6216, - 1441: 0x7C9F, - 1442: 0x88B7, - 1443: 0x5B89, - 1444: 0x5EB5, - 1445: 0x6309, - 1446: 0x6697, - 1447: 0x6848, - 1448: 0x95C7, - 1449: 0x978D, - 1450: 0x674F, - 1451: 0x4EE5, - 1452: 0x4F0A, - 1453: 0x4F4D, - 1454: 0x4F9D, - 1455: 0x5049, - 1456: 0x56F2, - 1457: 0x5937, - 1458: 0x59D4, - 1459: 0x5A01, - 1460: 0x5C09, - 1461: 0x60DF, - 1462: 0x610F, - 1463: 0x6170, - 1464: 0x6613, - 1465: 0x6905, - 1466: 0x70BA, - 1467: 0x754F, - 1468: 0x7570, - 1469: 0x79FB, - 1470: 0x7DAD, - 1471: 0x7DEF, - 1472: 0x80C3, - 1473: 0x840E, - 1474: 0x8863, - 1475: 0x8B02, - 1476: 0x9055, - 1477: 0x907A, - 1478: 0x533B, - 1479: 0x4E95, - 1480: 0x4EA5, - 1481: 0x57DF, - 1482: 0x80B2, - 1483: 0x90C1, - 1484: 0x78EF, - 1485: 0x4E00, - 1486: 0x58F1, - 1487: 0x6EA2, - 1488: 0x9038, - 1489: 0x7A32, - 1490: 0x8328, - 1491: 0x828B, - 1492: 0x9C2F, - 1493: 0x5141, - 1494: 0x5370, - 1495: 0x54BD, - 1496: 0x54E1, - 1497: 0x56E0, - 1498: 0x59FB, - 1499: 0x5F15, - 1500: 0x98F2, - 1501: 0x6DEB, - 1502: 0x80E4, - 1503: 0x852D, - 1504: 0x9662, - 1505: 0x9670, - 1506: 0x96A0, - 1507: 0x97FB, - 1508: 0x540B, - 1509: 0x53F3, - 1510: 0x5B87, - 1511: 0x70CF, - 1512: 0x7FBD, - 1513: 0x8FC2, - 1514: 0x96E8, - 1515: 0x536F, - 1516: 0x9D5C, - 1517: 0x7ABA, - 1518: 0x4E11, - 1519: 0x7893, - 1520: 0x81FC, - 1521: 0x6E26, - 1522: 0x5618, - 1523: 0x5504, - 1524: 0x6B1D, - 1525: 0x851A, - 1526: 0x9C3B, - 1527: 0x59E5, - 1528: 0x53A9, - 1529: 0x6D66, - 1530: 0x74DC, - 1531: 0x958F, - 1532: 0x5642, - 1533: 0x4E91, - 1534: 0x904B, - 1535: 0x96F2, - 1536: 0x834F, - 1537: 0x990C, - 1538: 0x53E1, - 1539: 0x55B6, - 1540: 0x5B30, - 1541: 0x5F71, - 1542: 0x6620, - 1543: 0x66F3, - 1544: 0x6804, - 1545: 0x6C38, - 1546: 0x6CF3, - 1547: 0x6D29, - 1548: 0x745B, - 1549: 0x76C8, - 1550: 0x7A4E, - 1551: 0x9834, - 1552: 0x82F1, - 1553: 0x885B, - 1554: 0x8A60, - 1555: 0x92ED, - 1556: 0x6DB2, - 1557: 0x75AB, - 1558: 0x76CA, - 1559: 0x99C5, - 1560: 0x60A6, - 1561: 0x8B01, - 1562: 0x8D8A, - 1563: 0x95B2, - 1564: 0x698E, - 1565: 0x53AD, - 1566: 0x5186, - 1567: 0x5712, - 1568: 0x5830, - 1569: 0x5944, - 1570: 0x5BB4, - 1571: 0x5EF6, - 1572: 0x6028, - 1573: 0x63A9, - 1574: 0x63F4, - 1575: 0x6CBF, - 1576: 0x6F14, - 1577: 0x708E, - 1578: 0x7114, - 1579: 0x7159, - 1580: 0x71D5, - 1581: 0x733F, - 1582: 0x7E01, - 1583: 0x8276, - 1584: 0x82D1, - 1585: 0x8597, - 1586: 0x9060, - 1587: 0x925B, - 1588: 0x9D1B, - 1589: 0x5869, - 1590: 0x65BC, - 1591: 0x6C5A, - 1592: 0x7525, - 1593: 0x51F9, - 1594: 0x592E, - 1595: 0x5965, - 1596: 0x5F80, - 1597: 0x5FDC, - 1598: 0x62BC, - 1599: 0x65FA, - 1600: 0x6A2A, - 1601: 0x6B27, - 1602: 0x6BB4, - 1603: 0x738B, - 1604: 0x7FC1, - 1605: 0x8956, - 1606: 0x9D2C, - 1607: 0x9D0E, - 1608: 0x9EC4, - 1609: 0x5CA1, - 1610: 0x6C96, - 1611: 0x837B, - 1612: 0x5104, - 1613: 0x5C4B, - 1614: 0x61B6, - 1615: 0x81C6, - 1616: 0x6876, - 1617: 0x7261, - 1618: 0x4E59, - 1619: 0x4FFA, - 1620: 0x5378, - 1621: 0x6069, - 1622: 0x6E29, - 1623: 0x7A4F, - 1624: 0x97F3, - 1625: 0x4E0B, - 1626: 0x5316, - 1627: 0x4EEE, - 1628: 0x4F55, - 1629: 0x4F3D, - 1630: 0x4FA1, - 1631: 0x4F73, - 1632: 0x52A0, - 1633: 0x53EF, - 1634: 0x5609, - 1635: 0x590F, - 1636: 0x5AC1, - 1637: 0x5BB6, - 1638: 0x5BE1, - 1639: 0x79D1, - 1640: 0x6687, - 1641: 0x679C, - 1642: 0x67B6, - 1643: 0x6B4C, - 1644: 0x6CB3, - 1645: 0x706B, - 1646: 0x73C2, - 1647: 0x798D, - 1648: 0x79BE, - 1649: 0x7A3C, - 1650: 0x7B87, - 1651: 0x82B1, - 1652: 0x82DB, - 1653: 0x8304, - 1654: 0x8377, - 1655: 0x83EF, - 1656: 0x83D3, - 1657: 0x8766, - 1658: 0x8AB2, - 1659: 0x5629, - 1660: 0x8CA8, - 1661: 0x8FE6, - 1662: 0x904E, - 1663: 0x971E, - 1664: 0x868A, - 1665: 0x4FC4, - 1666: 0x5CE8, - 1667: 0x6211, - 1668: 0x7259, - 1669: 0x753B, - 1670: 0x81E5, - 1671: 0x82BD, - 1672: 0x86FE, - 1673: 0x8CC0, - 1674: 0x96C5, - 1675: 0x9913, - 1676: 0x99D5, - 1677: 0x4ECB, - 1678: 0x4F1A, - 1679: 0x89E3, - 1680: 0x56DE, - 1681: 0x584A, - 1682: 0x58CA, - 1683: 0x5EFB, - 1684: 0x5FEB, - 1685: 0x602A, - 1686: 0x6094, - 1687: 0x6062, - 1688: 0x61D0, - 1689: 0x6212, - 1690: 0x62D0, - 1691: 0x6539, - 1692: 0x9B41, - 1693: 0x6666, - 1694: 0x68B0, - 1695: 0x6D77, - 1696: 0x7070, - 1697: 0x754C, - 1698: 0x7686, - 1699: 0x7D75, - 1700: 0x82A5, - 1701: 0x87F9, - 1702: 0x958B, - 1703: 0x968E, - 1704: 0x8C9D, - 1705: 0x51F1, - 1706: 0x52BE, - 1707: 0x5916, - 1708: 0x54B3, - 1709: 0x5BB3, - 1710: 0x5D16, - 1711: 0x6168, - 1712: 0x6982, - 1713: 0x6DAF, - 1714: 0x788D, - 1715: 0x84CB, - 1716: 0x8857, - 1717: 0x8A72, - 1718: 0x93A7, - 1719: 0x9AB8, - 1720: 0x6D6C, - 1721: 0x99A8, - 1722: 0x86D9, - 1723: 0x57A3, - 1724: 0x67FF, - 1725: 0x86CE, - 1726: 0x920E, - 1727: 0x5283, - 1728: 0x5687, - 1729: 0x5404, - 1730: 0x5ED3, - 1731: 0x62E1, - 1732: 0x64B9, - 1733: 0x683C, - 1734: 0x6838, - 1735: 0x6BBB, - 1736: 0x7372, - 1737: 0x78BA, - 1738: 0x7A6B, - 1739: 0x899A, - 1740: 0x89D2, - 1741: 0x8D6B, - 1742: 0x8F03, - 1743: 0x90ED, - 1744: 0x95A3, - 1745: 0x9694, - 1746: 0x9769, - 1747: 0x5B66, - 1748: 0x5CB3, - 1749: 0x697D, - 1750: 0x984D, - 1751: 0x984E, - 1752: 0x639B, - 1753: 0x7B20, - 1754: 0x6A2B, - 1755: 0x6A7F, - 1756: 0x68B6, - 1757: 0x9C0D, - 1758: 0x6F5F, - 1759: 0x5272, - 1760: 0x559D, - 1761: 0x6070, - 1762: 0x62EC, - 1763: 0x6D3B, - 1764: 0x6E07, - 1765: 0x6ED1, - 1766: 0x845B, - 1767: 0x8910, - 1768: 0x8F44, - 1769: 0x4E14, - 1770: 0x9C39, - 1771: 0x53F6, - 1772: 0x691B, - 1773: 0x6A3A, - 1774: 0x9784, - 1775: 0x682A, - 1776: 0x515C, - 1777: 0x7AC3, - 1778: 0x84B2, - 1779: 0x91DC, - 1780: 0x938C, - 1781: 0x565B, - 1782: 0x9D28, - 1783: 0x6822, - 1784: 0x8305, - 1785: 0x8431, - 1786: 0x7CA5, - 1787: 0x5208, - 1788: 0x82C5, - 1789: 0x74E6, - 1790: 0x4E7E, - 1791: 0x4F83, - 1792: 0x51A0, - 1793: 0x5BD2, - 1794: 0x520A, - 1795: 0x52D8, - 1796: 0x52E7, - 1797: 0x5DFB, - 1798: 0x559A, - 1799: 0x582A, - 1800: 0x59E6, - 1801: 0x5B8C, - 1802: 0x5B98, - 1803: 0x5BDB, - 1804: 0x5E72, - 1805: 0x5E79, - 1806: 0x60A3, - 1807: 0x611F, - 1808: 0x6163, - 1809: 0x61BE, - 1810: 0x63DB, - 1811: 0x6562, - 1812: 0x67D1, - 1813: 0x6853, - 1814: 0x68FA, - 1815: 0x6B3E, - 1816: 0x6B53, - 1817: 0x6C57, - 1818: 0x6F22, - 1819: 0x6F97, - 1820: 0x6F45, - 1821: 0x74B0, - 1822: 0x7518, - 1823: 0x76E3, - 1824: 0x770B, - 1825: 0x7AFF, - 1826: 0x7BA1, - 1827: 0x7C21, - 1828: 0x7DE9, - 1829: 0x7F36, - 1830: 0x7FF0, - 1831: 0x809D, - 1832: 0x8266, - 1833: 0x839E, - 1834: 0x89B3, - 1835: 0x8ACC, - 1836: 0x8CAB, - 1837: 0x9084, - 1838: 0x9451, - 1839: 0x9593, - 1840: 0x9591, - 1841: 0x95A2, - 1842: 0x9665, - 1843: 0x97D3, - 1844: 0x9928, - 1845: 0x8218, - 1846: 0x4E38, - 1847: 0x542B, - 1848: 0x5CB8, - 1849: 0x5DCC, - 1850: 0x73A9, - 1851: 0x764C, - 1852: 0x773C, - 1853: 0x5CA9, - 1854: 0x7FEB, - 1855: 0x8D0B, - 1856: 0x96C1, - 1857: 0x9811, - 1858: 0x9854, - 1859: 0x9858, - 1860: 0x4F01, - 1861: 0x4F0E, - 1862: 0x5371, - 1863: 0x559C, - 1864: 0x5668, - 1865: 0x57FA, - 1866: 0x5947, - 1867: 0x5B09, - 1868: 0x5BC4, - 1869: 0x5C90, - 1870: 0x5E0C, - 1871: 0x5E7E, - 1872: 0x5FCC, - 1873: 0x63EE, - 1874: 0x673A, - 1875: 0x65D7, - 1876: 0x65E2, - 1877: 0x671F, - 1878: 0x68CB, - 1879: 0x68C4, - 1880: 0x6A5F, - 1881: 0x5E30, - 1882: 0x6BC5, - 1883: 0x6C17, - 1884: 0x6C7D, - 1885: 0x757F, - 1886: 0x7948, - 1887: 0x5B63, - 1888: 0x7A00, - 1889: 0x7D00, - 1890: 0x5FBD, - 1891: 0x898F, - 1892: 0x8A18, - 1893: 0x8CB4, - 1894: 0x8D77, - 1895: 0x8ECC, - 1896: 0x8F1D, - 1897: 0x98E2, - 1898: 0x9A0E, - 1899: 0x9B3C, - 1900: 0x4E80, - 1901: 0x507D, - 1902: 0x5100, - 1903: 0x5993, - 1904: 0x5B9C, - 1905: 0x622F, - 1906: 0x6280, - 1907: 0x64EC, - 1908: 0x6B3A, - 1909: 0x72A0, - 1910: 0x7591, - 1911: 0x7947, - 1912: 0x7FA9, - 1913: 0x87FB, - 1914: 0x8ABC, - 1915: 0x8B70, - 1916: 0x63AC, - 1917: 0x83CA, - 1918: 0x97A0, - 1919: 0x5409, - 1920: 0x5403, - 1921: 0x55AB, - 1922: 0x6854, - 1923: 0x6A58, - 1924: 0x8A70, - 1925: 0x7827, - 1926: 0x6775, - 1927: 0x9ECD, - 1928: 0x5374, - 1929: 0x5BA2, - 1930: 0x811A, - 1931: 0x8650, - 1932: 0x9006, - 1933: 0x4E18, - 1934: 0x4E45, - 1935: 0x4EC7, - 1936: 0x4F11, - 1937: 0x53CA, - 1938: 0x5438, - 1939: 0x5BAE, - 1940: 0x5F13, - 1941: 0x6025, - 1942: 0x6551, - 1943: 0x673D, - 1944: 0x6C42, - 1945: 0x6C72, - 1946: 0x6CE3, - 1947: 0x7078, - 1948: 0x7403, - 1949: 0x7A76, - 1950: 0x7AAE, - 1951: 0x7B08, - 1952: 0x7D1A, - 1953: 0x7CFE, - 1954: 0x7D66, - 1955: 0x65E7, - 1956: 0x725B, - 1957: 0x53BB, - 1958: 0x5C45, - 1959: 0x5DE8, - 1960: 0x62D2, - 1961: 0x62E0, - 1962: 0x6319, - 1963: 0x6E20, - 1964: 0x865A, - 1965: 0x8A31, - 1966: 0x8DDD, - 1967: 0x92F8, - 1968: 0x6F01, - 1969: 0x79A6, - 1970: 0x9B5A, - 1971: 0x4EA8, - 1972: 0x4EAB, - 1973: 0x4EAC, - 1974: 0x4F9B, - 1975: 0x4FA0, - 1976: 0x50D1, - 1977: 0x5147, - 1978: 0x7AF6, - 1979: 0x5171, - 1980: 0x51F6, - 1981: 0x5354, - 1982: 0x5321, - 1983: 0x537F, - 1984: 0x53EB, - 1985: 0x55AC, - 1986: 0x5883, - 1987: 0x5CE1, - 1988: 0x5F37, - 1989: 0x5F4A, - 1990: 0x602F, - 1991: 0x6050, - 1992: 0x606D, - 1993: 0x631F, - 1994: 0x6559, - 1995: 0x6A4B, - 1996: 0x6CC1, - 1997: 0x72C2, - 1998: 0x72ED, - 1999: 0x77EF, - 2000: 0x80F8, - 2001: 0x8105, - 2002: 0x8208, - 2003: 0x854E, - 2004: 0x90F7, - 2005: 0x93E1, - 2006: 0x97FF, - 2007: 0x9957, - 2008: 0x9A5A, - 2009: 0x4EF0, - 2010: 0x51DD, - 2011: 0x5C2D, - 2012: 0x6681, - 2013: 0x696D, - 2014: 0x5C40, - 2015: 0x66F2, - 2016: 0x6975, - 2017: 0x7389, - 2018: 0x6850, - 2019: 0x7C81, - 2020: 0x50C5, - 2021: 0x52E4, - 2022: 0x5747, - 2023: 0x5DFE, - 2024: 0x9326, - 2025: 0x65A4, - 2026: 0x6B23, - 2027: 0x6B3D, - 2028: 0x7434, - 2029: 0x7981, - 2030: 0x79BD, - 2031: 0x7B4B, - 2032: 0x7DCA, - 2033: 0x82B9, - 2034: 0x83CC, - 2035: 0x887F, - 2036: 0x895F, - 2037: 0x8B39, - 2038: 0x8FD1, - 2039: 0x91D1, - 2040: 0x541F, - 2041: 0x9280, - 2042: 0x4E5D, - 2043: 0x5036, - 2044: 0x53E5, - 2045: 0x533A, - 2046: 0x72D7, - 2047: 0x7396, - 2048: 0x77E9, - 2049: 0x82E6, - 2050: 0x8EAF, - 2051: 0x99C6, - 2052: 0x99C8, - 2053: 0x99D2, - 2054: 0x5177, - 2055: 0x611A, - 2056: 0x865E, - 2057: 0x55B0, - 2058: 0x7A7A, - 2059: 0x5076, - 2060: 0x5BD3, - 2061: 0x9047, - 2062: 0x9685, - 2063: 0x4E32, - 2064: 0x6ADB, - 2065: 0x91E7, - 2066: 0x5C51, - 2067: 0x5C48, - 2068: 0x6398, - 2069: 0x7A9F, - 2070: 0x6C93, - 2071: 0x9774, - 2072: 0x8F61, - 2073: 0x7AAA, - 2074: 0x718A, - 2075: 0x9688, - 2076: 0x7C82, - 2077: 0x6817, - 2078: 0x7E70, - 2079: 0x6851, - 2080: 0x936C, - 2081: 0x52F2, - 2082: 0x541B, - 2083: 0x85AB, - 2084: 0x8A13, - 2085: 0x7FA4, - 2086: 0x8ECD, - 2087: 0x90E1, - 2088: 0x5366, - 2089: 0x8888, - 2090: 0x7941, - 2091: 0x4FC2, - 2092: 0x50BE, - 2093: 0x5211, - 2094: 0x5144, - 2095: 0x5553, - 2096: 0x572D, - 2097: 0x73EA, - 2098: 0x578B, - 2099: 0x5951, - 2100: 0x5F62, - 2101: 0x5F84, - 2102: 0x6075, - 2103: 0x6176, - 2104: 0x6167, - 2105: 0x61A9, - 2106: 0x63B2, - 2107: 0x643A, - 2108: 0x656C, - 2109: 0x666F, - 2110: 0x6842, - 2111: 0x6E13, - 2112: 0x7566, - 2113: 0x7A3D, - 2114: 0x7CFB, - 2115: 0x7D4C, - 2116: 0x7D99, - 2117: 0x7E4B, - 2118: 0x7F6B, - 2119: 0x830E, - 2120: 0x834A, - 2121: 0x86CD, - 2122: 0x8A08, - 2123: 0x8A63, - 2124: 0x8B66, - 2125: 0x8EFD, - 2126: 0x981A, - 2127: 0x9D8F, - 2128: 0x82B8, - 2129: 0x8FCE, - 2130: 0x9BE8, - 2131: 0x5287, - 2132: 0x621F, - 2133: 0x6483, - 2134: 0x6FC0, - 2135: 0x9699, - 2136: 0x6841, - 2137: 0x5091, - 2138: 0x6B20, - 2139: 0x6C7A, - 2140: 0x6F54, - 2141: 0x7A74, - 2142: 0x7D50, - 2143: 0x8840, - 2144: 0x8A23, - 2145: 0x6708, - 2146: 0x4EF6, - 2147: 0x5039, - 2148: 0x5026, - 2149: 0x5065, - 2150: 0x517C, - 2151: 0x5238, - 2152: 0x5263, - 2153: 0x55A7, - 2154: 0x570F, - 2155: 0x5805, - 2156: 0x5ACC, - 2157: 0x5EFA, - 2158: 0x61B2, - 2159: 0x61F8, - 2160: 0x62F3, - 2161: 0x6372, - 2162: 0x691C, - 2163: 0x6A29, - 2164: 0x727D, - 2165: 0x72AC, - 2166: 0x732E, - 2167: 0x7814, - 2168: 0x786F, - 2169: 0x7D79, - 2170: 0x770C, - 2171: 0x80A9, - 2172: 0x898B, - 2173: 0x8B19, - 2174: 0x8CE2, - 2175: 0x8ED2, - 2176: 0x9063, - 2177: 0x9375, - 2178: 0x967A, - 2179: 0x9855, - 2180: 0x9A13, - 2181: 0x9E78, - 2182: 0x5143, - 2183: 0x539F, - 2184: 0x53B3, - 2185: 0x5E7B, - 2186: 0x5F26, - 2187: 0x6E1B, - 2188: 0x6E90, - 2189: 0x7384, - 2190: 0x73FE, - 2191: 0x7D43, - 2192: 0x8237, - 2193: 0x8A00, - 2194: 0x8AFA, - 2195: 0x9650, - 2196: 0x4E4E, - 2197: 0x500B, - 2198: 0x53E4, - 2199: 0x547C, - 2200: 0x56FA, - 2201: 0x59D1, - 2202: 0x5B64, - 2203: 0x5DF1, - 2204: 0x5EAB, - 2205: 0x5F27, - 2206: 0x6238, - 2207: 0x6545, - 2208: 0x67AF, - 2209: 0x6E56, - 2210: 0x72D0, - 2211: 0x7CCA, - 2212: 0x88B4, - 2213: 0x80A1, - 2214: 0x80E1, - 2215: 0x83F0, - 2216: 0x864E, - 2217: 0x8A87, - 2218: 0x8DE8, - 2219: 0x9237, - 2220: 0x96C7, - 2221: 0x9867, - 2222: 0x9F13, - 2223: 0x4E94, - 2224: 0x4E92, - 2225: 0x4F0D, - 2226: 0x5348, - 2227: 0x5449, - 2228: 0x543E, - 2229: 0x5A2F, - 2230: 0x5F8C, - 2231: 0x5FA1, - 2232: 0x609F, - 2233: 0x68A7, - 2234: 0x6A8E, - 2235: 0x745A, - 2236: 0x7881, - 2237: 0x8A9E, - 2238: 0x8AA4, - 2239: 0x8B77, - 2240: 0x9190, - 2241: 0x4E5E, - 2242: 0x9BC9, - 2243: 0x4EA4, - 2244: 0x4F7C, - 2245: 0x4FAF, - 2246: 0x5019, - 2247: 0x5016, - 2248: 0x5149, - 2249: 0x516C, - 2250: 0x529F, - 2251: 0x52B9, - 2252: 0x52FE, - 2253: 0x539A, - 2254: 0x53E3, - 2255: 0x5411, - 2256: 0x540E, - 2257: 0x5589, - 2258: 0x5751, - 2259: 0x57A2, - 2260: 0x597D, - 2261: 0x5B54, - 2262: 0x5B5D, - 2263: 0x5B8F, - 2264: 0x5DE5, - 2265: 0x5DE7, - 2266: 0x5DF7, - 2267: 0x5E78, - 2268: 0x5E83, - 2269: 0x5E9A, - 2270: 0x5EB7, - 2271: 0x5F18, - 2272: 0x6052, - 2273: 0x614C, - 2274: 0x6297, - 2275: 0x62D8, - 2276: 0x63A7, - 2277: 0x653B, - 2278: 0x6602, - 2279: 0x6643, - 2280: 0x66F4, - 2281: 0x676D, - 2282: 0x6821, - 2283: 0x6897, - 2284: 0x69CB, - 2285: 0x6C5F, - 2286: 0x6D2A, - 2287: 0x6D69, - 2288: 0x6E2F, - 2289: 0x6E9D, - 2290: 0x7532, - 2291: 0x7687, - 2292: 0x786C, - 2293: 0x7A3F, - 2294: 0x7CE0, - 2295: 0x7D05, - 2296: 0x7D18, - 2297: 0x7D5E, - 2298: 0x7DB1, - 2299: 0x8015, - 2300: 0x8003, - 2301: 0x80AF, - 2302: 0x80B1, - 2303: 0x8154, - 2304: 0x818F, - 2305: 0x822A, - 2306: 0x8352, - 2307: 0x884C, - 2308: 0x8861, - 2309: 0x8B1B, - 2310: 0x8CA2, - 2311: 0x8CFC, - 2312: 0x90CA, - 2313: 0x9175, - 2314: 0x9271, - 2315: 0x783F, - 2316: 0x92FC, - 2317: 0x95A4, - 2318: 0x964D, - 2319: 0x9805, - 2320: 0x9999, - 2321: 0x9AD8, - 2322: 0x9D3B, - 2323: 0x525B, - 2324: 0x52AB, - 2325: 0x53F7, - 2326: 0x5408, - 2327: 0x58D5, - 2328: 0x62F7, - 2329: 0x6FE0, - 2330: 0x8C6A, - 2331: 0x8F5F, - 2332: 0x9EB9, - 2333: 0x514B, - 2334: 0x523B, - 2335: 0x544A, - 2336: 0x56FD, - 2337: 0x7A40, - 2338: 0x9177, - 2339: 0x9D60, - 2340: 0x9ED2, - 2341: 0x7344, - 2342: 0x6F09, - 2343: 0x8170, - 2344: 0x7511, - 2345: 0x5FFD, - 2346: 0x60DA, - 2347: 0x9AA8, - 2348: 0x72DB, - 2349: 0x8FBC, - 2350: 0x6B64, - 2351: 0x9803, - 2352: 0x4ECA, - 2353: 0x56F0, - 2354: 0x5764, - 2355: 0x58BE, - 2356: 0x5A5A, - 2357: 0x6068, - 2358: 0x61C7, - 2359: 0x660F, - 2360: 0x6606, - 2361: 0x6839, - 2362: 0x68B1, - 2363: 0x6DF7, - 2364: 0x75D5, - 2365: 0x7D3A, - 2366: 0x826E, - 2367: 0x9B42, - 2368: 0x4E9B, - 2369: 0x4F50, - 2370: 0x53C9, - 2371: 0x5506, - 2372: 0x5D6F, - 2373: 0x5DE6, - 2374: 0x5DEE, - 2375: 0x67FB, - 2376: 0x6C99, - 2377: 0x7473, - 2378: 0x7802, - 2379: 0x8A50, - 2380: 0x9396, - 2381: 0x88DF, - 2382: 0x5750, - 2383: 0x5EA7, - 2384: 0x632B, - 2385: 0x50B5, - 2386: 0x50AC, - 2387: 0x518D, - 2388: 0x6700, - 2389: 0x54C9, - 2390: 0x585E, - 2391: 0x59BB, - 2392: 0x5BB0, - 2393: 0x5F69, - 2394: 0x624D, - 2395: 0x63A1, - 2396: 0x683D, - 2397: 0x6B73, - 2398: 0x6E08, - 2399: 0x707D, - 2400: 0x91C7, - 2401: 0x7280, - 2402: 0x7815, - 2403: 0x7826, - 2404: 0x796D, - 2405: 0x658E, - 2406: 0x7D30, - 2407: 0x83DC, - 2408: 0x88C1, - 2409: 0x8F09, - 2410: 0x969B, - 2411: 0x5264, - 2412: 0x5728, - 2413: 0x6750, - 2414: 0x7F6A, - 2415: 0x8CA1, - 2416: 0x51B4, - 2417: 0x5742, - 2418: 0x962A, - 2419: 0x583A, - 2420: 0x698A, - 2421: 0x80B4, - 2422: 0x54B2, - 2423: 0x5D0E, - 2424: 0x57FC, - 2425: 0x7895, - 2426: 0x9DFA, - 2427: 0x4F5C, - 2428: 0x524A, - 2429: 0x548B, - 2430: 0x643E, - 2431: 0x6628, - 2432: 0x6714, - 2433: 0x67F5, - 2434: 0x7A84, - 2435: 0x7B56, - 2436: 0x7D22, - 2437: 0x932F, - 2438: 0x685C, - 2439: 0x9BAD, - 2440: 0x7B39, - 2441: 0x5319, - 2442: 0x518A, - 2443: 0x5237, - 2444: 0x5BDF, - 2445: 0x62F6, - 2446: 0x64AE, - 2447: 0x64E6, - 2448: 0x672D, - 2449: 0x6BBA, - 2450: 0x85A9, - 2451: 0x96D1, - 2452: 0x7690, - 2453: 0x9BD6, - 2454: 0x634C, - 2455: 0x9306, - 2456: 0x9BAB, - 2457: 0x76BF, - 2458: 0x6652, - 2459: 0x4E09, - 2460: 0x5098, - 2461: 0x53C2, - 2462: 0x5C71, - 2463: 0x60E8, - 2464: 0x6492, - 2465: 0x6563, - 2466: 0x685F, - 2467: 0x71E6, - 2468: 0x73CA, - 2469: 0x7523, - 2470: 0x7B97, - 2471: 0x7E82, - 2472: 0x8695, - 2473: 0x8B83, - 2474: 0x8CDB, - 2475: 0x9178, - 2476: 0x9910, - 2477: 0x65AC, - 2478: 0x66AB, - 2479: 0x6B8B, - 2480: 0x4ED5, - 2481: 0x4ED4, - 2482: 0x4F3A, - 2483: 0x4F7F, - 2484: 0x523A, - 2485: 0x53F8, - 2486: 0x53F2, - 2487: 0x55E3, - 2488: 0x56DB, - 2489: 0x58EB, - 2490: 0x59CB, - 2491: 0x59C9, - 2492: 0x59FF, - 2493: 0x5B50, - 2494: 0x5C4D, - 2495: 0x5E02, - 2496: 0x5E2B, - 2497: 0x5FD7, - 2498: 0x601D, - 2499: 0x6307, - 2500: 0x652F, - 2501: 0x5B5C, - 2502: 0x65AF, - 2503: 0x65BD, - 2504: 0x65E8, - 2505: 0x679D, - 2506: 0x6B62, - 2507: 0x6B7B, - 2508: 0x6C0F, - 2509: 0x7345, - 2510: 0x7949, - 2511: 0x79C1, - 2512: 0x7CF8, - 2513: 0x7D19, - 2514: 0x7D2B, - 2515: 0x80A2, - 2516: 0x8102, - 2517: 0x81F3, - 2518: 0x8996, - 2519: 0x8A5E, - 2520: 0x8A69, - 2521: 0x8A66, - 2522: 0x8A8C, - 2523: 0x8AEE, - 2524: 0x8CC7, - 2525: 0x8CDC, - 2526: 0x96CC, - 2527: 0x98FC, - 2528: 0x6B6F, - 2529: 0x4E8B, - 2530: 0x4F3C, - 2531: 0x4F8D, - 2532: 0x5150, - 2533: 0x5B57, - 2534: 0x5BFA, - 2535: 0x6148, - 2536: 0x6301, - 2537: 0x6642, - 2538: 0x6B21, - 2539: 0x6ECB, - 2540: 0x6CBB, - 2541: 0x723E, - 2542: 0x74BD, - 2543: 0x75D4, - 2544: 0x78C1, - 2545: 0x793A, - 2546: 0x800C, - 2547: 0x8033, - 2548: 0x81EA, - 2549: 0x8494, - 2550: 0x8F9E, - 2551: 0x6C50, - 2552: 0x9E7F, - 2553: 0x5F0F, - 2554: 0x8B58, - 2555: 0x9D2B, - 2556: 0x7AFA, - 2557: 0x8EF8, - 2558: 0x5B8D, - 2559: 0x96EB, - 2560: 0x4E03, - 2561: 0x53F1, - 2562: 0x57F7, - 2563: 0x5931, - 2564: 0x5AC9, - 2565: 0x5BA4, - 2566: 0x6089, - 2567: 0x6E7F, - 2568: 0x6F06, - 2569: 0x75BE, - 2570: 0x8CEA, - 2571: 0x5B9F, - 2572: 0x8500, - 2573: 0x7BE0, - 2574: 0x5072, - 2575: 0x67F4, - 2576: 0x829D, - 2577: 0x5C61, - 2578: 0x854A, - 2579: 0x7E1E, - 2580: 0x820E, - 2581: 0x5199, - 2582: 0x5C04, - 2583: 0x6368, - 2584: 0x8D66, - 2585: 0x659C, - 2586: 0x716E, - 2587: 0x793E, - 2588: 0x7D17, - 2589: 0x8005, - 2590: 0x8B1D, - 2591: 0x8ECA, - 2592: 0x906E, - 2593: 0x86C7, - 2594: 0x90AA, - 2595: 0x501F, - 2596: 0x52FA, - 2597: 0x5C3A, - 2598: 0x6753, - 2599: 0x707C, - 2600: 0x7235, - 2601: 0x914C, - 2602: 0x91C8, - 2603: 0x932B, - 2604: 0x82E5, - 2605: 0x5BC2, - 2606: 0x5F31, - 2607: 0x60F9, - 2608: 0x4E3B, - 2609: 0x53D6, - 2610: 0x5B88, - 2611: 0x624B, - 2612: 0x6731, - 2613: 0x6B8A, - 2614: 0x72E9, - 2615: 0x73E0, - 2616: 0x7A2E, - 2617: 0x816B, - 2618: 0x8DA3, - 2619: 0x9152, - 2620: 0x9996, - 2621: 0x5112, - 2622: 0x53D7, - 2623: 0x546A, - 2624: 0x5BFF, - 2625: 0x6388, - 2626: 0x6A39, - 2627: 0x7DAC, - 2628: 0x9700, - 2629: 0x56DA, - 2630: 0x53CE, - 2631: 0x5468, - 2632: 0x5B97, - 2633: 0x5C31, - 2634: 0x5DDE, - 2635: 0x4FEE, - 2636: 0x6101, - 2637: 0x62FE, - 2638: 0x6D32, - 2639: 0x79C0, - 2640: 0x79CB, - 2641: 0x7D42, - 2642: 0x7E4D, - 2643: 0x7FD2, - 2644: 0x81ED, - 2645: 0x821F, - 2646: 0x8490, - 2647: 0x8846, - 2648: 0x8972, - 2649: 0x8B90, - 2650: 0x8E74, - 2651: 0x8F2F, - 2652: 0x9031, - 2653: 0x914B, - 2654: 0x916C, - 2655: 0x96C6, - 2656: 0x919C, - 2657: 0x4EC0, - 2658: 0x4F4F, - 2659: 0x5145, - 2660: 0x5341, - 2661: 0x5F93, - 2662: 0x620E, - 2663: 0x67D4, - 2664: 0x6C41, - 2665: 0x6E0B, - 2666: 0x7363, - 2667: 0x7E26, - 2668: 0x91CD, - 2669: 0x9283, - 2670: 0x53D4, - 2671: 0x5919, - 2672: 0x5BBF, - 2673: 0x6DD1, - 2674: 0x795D, - 2675: 0x7E2E, - 2676: 0x7C9B, - 2677: 0x587E, - 2678: 0x719F, - 2679: 0x51FA, - 2680: 0x8853, - 2681: 0x8FF0, - 2682: 0x4FCA, - 2683: 0x5CFB, - 2684: 0x6625, - 2685: 0x77AC, - 2686: 0x7AE3, - 2687: 0x821C, - 2688: 0x99FF, - 2689: 0x51C6, - 2690: 0x5FAA, - 2691: 0x65EC, - 2692: 0x696F, - 2693: 0x6B89, - 2694: 0x6DF3, - 2695: 0x6E96, - 2696: 0x6F64, - 2697: 0x76FE, - 2698: 0x7D14, - 2699: 0x5DE1, - 2700: 0x9075, - 2701: 0x9187, - 2702: 0x9806, - 2703: 0x51E6, - 2704: 0x521D, - 2705: 0x6240, - 2706: 0x6691, - 2707: 0x66D9, - 2708: 0x6E1A, - 2709: 0x5EB6, - 2710: 0x7DD2, - 2711: 0x7F72, - 2712: 0x66F8, - 2713: 0x85AF, - 2714: 0x85F7, - 2715: 0x8AF8, - 2716: 0x52A9, - 2717: 0x53D9, - 2718: 0x5973, - 2719: 0x5E8F, - 2720: 0x5F90, - 2721: 0x6055, - 2722: 0x92E4, - 2723: 0x9664, - 2724: 0x50B7, - 2725: 0x511F, - 2726: 0x52DD, - 2727: 0x5320, - 2728: 0x5347, - 2729: 0x53EC, - 2730: 0x54E8, - 2731: 0x5546, - 2732: 0x5531, - 2733: 0x5617, - 2734: 0x5968, - 2735: 0x59BE, - 2736: 0x5A3C, - 2737: 0x5BB5, - 2738: 0x5C06, - 2739: 0x5C0F, - 2740: 0x5C11, - 2741: 0x5C1A, - 2742: 0x5E84, - 2743: 0x5E8A, - 2744: 0x5EE0, - 2745: 0x5F70, - 2746: 0x627F, - 2747: 0x6284, - 2748: 0x62DB, - 2749: 0x638C, - 2750: 0x6377, - 2751: 0x6607, - 2752: 0x660C, - 2753: 0x662D, - 2754: 0x6676, - 2755: 0x677E, - 2756: 0x68A2, - 2757: 0x6A1F, - 2758: 0x6A35, - 2759: 0x6CBC, - 2760: 0x6D88, - 2761: 0x6E09, - 2762: 0x6E58, - 2763: 0x713C, - 2764: 0x7126, - 2765: 0x7167, - 2766: 0x75C7, - 2767: 0x7701, - 2768: 0x785D, - 2769: 0x7901, - 2770: 0x7965, - 2771: 0x79F0, - 2772: 0x7AE0, - 2773: 0x7B11, - 2774: 0x7CA7, - 2775: 0x7D39, - 2776: 0x8096, - 2777: 0x83D6, - 2778: 0x848B, - 2779: 0x8549, - 2780: 0x885D, - 2781: 0x88F3, - 2782: 0x8A1F, - 2783: 0x8A3C, - 2784: 0x8A54, - 2785: 0x8A73, - 2786: 0x8C61, - 2787: 0x8CDE, - 2788: 0x91A4, - 2789: 0x9266, - 2790: 0x937E, - 2791: 0x9418, - 2792: 0x969C, - 2793: 0x9798, - 2794: 0x4E0A, - 2795: 0x4E08, - 2796: 0x4E1E, - 2797: 0x4E57, - 2798: 0x5197, - 2799: 0x5270, - 2800: 0x57CE, - 2801: 0x5834, - 2802: 0x58CC, - 2803: 0x5B22, - 2804: 0x5E38, - 2805: 0x60C5, - 2806: 0x64FE, - 2807: 0x6761, - 2808: 0x6756, - 2809: 0x6D44, - 2810: 0x72B6, - 2811: 0x7573, - 2812: 0x7A63, - 2813: 0x84B8, - 2814: 0x8B72, - 2815: 0x91B8, - 2816: 0x9320, - 2817: 0x5631, - 2818: 0x57F4, - 2819: 0x98FE, - 2820: 0x62ED, - 2821: 0x690D, - 2822: 0x6B96, - 2823: 0x71ED, - 2824: 0x7E54, - 2825: 0x8077, - 2826: 0x8272, - 2827: 0x89E6, - 2828: 0x98DF, - 2829: 0x8755, - 2830: 0x8FB1, - 2831: 0x5C3B, - 2832: 0x4F38, - 2833: 0x4FE1, - 2834: 0x4FB5, - 2835: 0x5507, - 2836: 0x5A20, - 2837: 0x5BDD, - 2838: 0x5BE9, - 2839: 0x5FC3, - 2840: 0x614E, - 2841: 0x632F, - 2842: 0x65B0, - 2843: 0x664B, - 2844: 0x68EE, - 2845: 0x699B, - 2846: 0x6D78, - 2847: 0x6DF1, - 2848: 0x7533, - 2849: 0x75B9, - 2850: 0x771F, - 2851: 0x795E, - 2852: 0x79E6, - 2853: 0x7D33, - 2854: 0x81E3, - 2855: 0x82AF, - 2856: 0x85AA, - 2857: 0x89AA, - 2858: 0x8A3A, - 2859: 0x8EAB, - 2860: 0x8F9B, - 2861: 0x9032, - 2862: 0x91DD, - 2863: 0x9707, - 2864: 0x4EBA, - 2865: 0x4EC1, - 2866: 0x5203, - 2867: 0x5875, - 2868: 0x58EC, - 2869: 0x5C0B, - 2870: 0x751A, - 2871: 0x5C3D, - 2872: 0x814E, - 2873: 0x8A0A, - 2874: 0x8FC5, - 2875: 0x9663, - 2876: 0x976D, - 2877: 0x7B25, - 2878: 0x8ACF, - 2879: 0x9808, - 2880: 0x9162, - 2881: 0x56F3, - 2882: 0x53A8, - 2883: 0x9017, - 2884: 0x5439, - 2885: 0x5782, - 2886: 0x5E25, - 2887: 0x63A8, - 2888: 0x6C34, - 2889: 0x708A, - 2890: 0x7761, - 2891: 0x7C8B, - 2892: 0x7FE0, - 2893: 0x8870, - 2894: 0x9042, - 2895: 0x9154, - 2896: 0x9310, - 2897: 0x9318, - 2898: 0x968F, - 2899: 0x745E, - 2900: 0x9AC4, - 2901: 0x5D07, - 2902: 0x5D69, - 2903: 0x6570, - 2904: 0x67A2, - 2905: 0x8DA8, - 2906: 0x96DB, - 2907: 0x636E, - 2908: 0x6749, - 2909: 0x6919, - 2910: 0x83C5, - 2911: 0x9817, - 2912: 0x96C0, - 2913: 0x88FE, - 2914: 0x6F84, - 2915: 0x647A, - 2916: 0x5BF8, - 2917: 0x4E16, - 2918: 0x702C, - 2919: 0x755D, - 2920: 0x662F, - 2921: 0x51C4, - 2922: 0x5236, - 2923: 0x52E2, - 2924: 0x59D3, - 2925: 0x5F81, - 2926: 0x6027, - 2927: 0x6210, - 2928: 0x653F, - 2929: 0x6574, - 2930: 0x661F, - 2931: 0x6674, - 2932: 0x68F2, - 2933: 0x6816, - 2934: 0x6B63, - 2935: 0x6E05, - 2936: 0x7272, - 2937: 0x751F, - 2938: 0x76DB, - 2939: 0x7CBE, - 2940: 0x8056, - 2941: 0x58F0, - 2942: 0x88FD, - 2943: 0x897F, - 2944: 0x8AA0, - 2945: 0x8A93, - 2946: 0x8ACB, - 2947: 0x901D, - 2948: 0x9192, - 2949: 0x9752, - 2950: 0x9759, - 2951: 0x6589, - 2952: 0x7A0E, - 2953: 0x8106, - 2954: 0x96BB, - 2955: 0x5E2D, - 2956: 0x60DC, - 2957: 0x621A, - 2958: 0x65A5, - 2959: 0x6614, - 2960: 0x6790, - 2961: 0x77F3, - 2962: 0x7A4D, - 2963: 0x7C4D, - 2964: 0x7E3E, - 2965: 0x810A, - 2966: 0x8CAC, - 2967: 0x8D64, - 2968: 0x8DE1, - 2969: 0x8E5F, - 2970: 0x78A9, - 2971: 0x5207, - 2972: 0x62D9, - 2973: 0x63A5, - 2974: 0x6442, - 2975: 0x6298, - 2976: 0x8A2D, - 2977: 0x7A83, - 2978: 0x7BC0, - 2979: 0x8AAC, - 2980: 0x96EA, - 2981: 0x7D76, - 2982: 0x820C, - 2983: 0x8749, - 2984: 0x4ED9, - 2985: 0x5148, - 2986: 0x5343, - 2987: 0x5360, - 2988: 0x5BA3, - 2989: 0x5C02, - 2990: 0x5C16, - 2991: 0x5DDD, - 2992: 0x6226, - 2993: 0x6247, - 2994: 0x64B0, - 2995: 0x6813, - 2996: 0x6834, - 2997: 0x6CC9, - 2998: 0x6D45, - 2999: 0x6D17, - 3000: 0x67D3, - 3001: 0x6F5C, - 3002: 0x714E, - 3003: 0x717D, - 3004: 0x65CB, - 3005: 0x7A7F, - 3006: 0x7BAD, - 3007: 0x7DDA, - 3008: 0x7E4A, - 3009: 0x7FA8, - 3010: 0x817A, - 3011: 0x821B, - 3012: 0x8239, - 3013: 0x85A6, - 3014: 0x8A6E, - 3015: 0x8CCE, - 3016: 0x8DF5, - 3017: 0x9078, - 3018: 0x9077, - 3019: 0x92AD, - 3020: 0x9291, - 3021: 0x9583, - 3022: 0x9BAE, - 3023: 0x524D, - 3024: 0x5584, - 3025: 0x6F38, - 3026: 0x7136, - 3027: 0x5168, - 3028: 0x7985, - 3029: 0x7E55, - 3030: 0x81B3, - 3031: 0x7CCE, - 3032: 0x564C, - 3033: 0x5851, - 3034: 0x5CA8, - 3035: 0x63AA, - 3036: 0x66FE, - 3037: 0x66FD, - 3038: 0x695A, - 3039: 0x72D9, - 3040: 0x758F, - 3041: 0x758E, - 3042: 0x790E, - 3043: 0x7956, - 3044: 0x79DF, - 3045: 0x7C97, - 3046: 0x7D20, - 3047: 0x7D44, - 3048: 0x8607, - 3049: 0x8A34, - 3050: 0x963B, - 3051: 0x9061, - 3052: 0x9F20, - 3053: 0x50E7, - 3054: 0x5275, - 3055: 0x53CC, - 3056: 0x53E2, - 3057: 0x5009, - 3058: 0x55AA, - 3059: 0x58EE, - 3060: 0x594F, - 3061: 0x723D, - 3062: 0x5B8B, - 3063: 0x5C64, - 3064: 0x531D, - 3065: 0x60E3, - 3066: 0x60F3, - 3067: 0x635C, - 3068: 0x6383, - 3069: 0x633F, - 3070: 0x63BB, - 3071: 0x64CD, - 3072: 0x65E9, - 3073: 0x66F9, - 3074: 0x5DE3, - 3075: 0x69CD, - 3076: 0x69FD, - 3077: 0x6F15, - 3078: 0x71E5, - 3079: 0x4E89, - 3080: 0x75E9, - 3081: 0x76F8, - 3082: 0x7A93, - 3083: 0x7CDF, - 3084: 0x7DCF, - 3085: 0x7D9C, - 3086: 0x8061, - 3087: 0x8349, - 3088: 0x8358, - 3089: 0x846C, - 3090: 0x84BC, - 3091: 0x85FB, - 3092: 0x88C5, - 3093: 0x8D70, - 3094: 0x9001, - 3095: 0x906D, - 3096: 0x9397, - 3097: 0x971C, - 3098: 0x9A12, - 3099: 0x50CF, - 3100: 0x5897, - 3101: 0x618E, - 3102: 0x81D3, - 3103: 0x8535, - 3104: 0x8D08, - 3105: 0x9020, - 3106: 0x4FC3, - 3107: 0x5074, - 3108: 0x5247, - 3109: 0x5373, - 3110: 0x606F, - 3111: 0x6349, - 3112: 0x675F, - 3113: 0x6E2C, - 3114: 0x8DB3, - 3115: 0x901F, - 3116: 0x4FD7, - 3117: 0x5C5E, - 3118: 0x8CCA, - 3119: 0x65CF, - 3120: 0x7D9A, - 3121: 0x5352, - 3122: 0x8896, - 3123: 0x5176, - 3124: 0x63C3, - 3125: 0x5B58, - 3126: 0x5B6B, - 3127: 0x5C0A, - 3128: 0x640D, - 3129: 0x6751, - 3130: 0x905C, - 3131: 0x4ED6, - 3132: 0x591A, - 3133: 0x592A, - 3134: 0x6C70, - 3135: 0x8A51, - 3136: 0x553E, - 3137: 0x5815, - 3138: 0x59A5, - 3139: 0x60F0, - 3140: 0x6253, - 3141: 0x67C1, - 3142: 0x8235, - 3143: 0x6955, - 3144: 0x9640, - 3145: 0x99C4, - 3146: 0x9A28, - 3147: 0x4F53, - 3148: 0x5806, - 3149: 0x5BFE, - 3150: 0x8010, - 3151: 0x5CB1, - 3152: 0x5E2F, - 3153: 0x5F85, - 3154: 0x6020, - 3155: 0x614B, - 3156: 0x6234, - 3157: 0x66FF, - 3158: 0x6CF0, - 3159: 0x6EDE, - 3160: 0x80CE, - 3161: 0x817F, - 3162: 0x82D4, - 3163: 0x888B, - 3164: 0x8CB8, - 3165: 0x9000, - 3166: 0x902E, - 3167: 0x968A, - 3168: 0x9EDB, - 3169: 0x9BDB, - 3170: 0x4EE3, - 3171: 0x53F0, - 3172: 0x5927, - 3173: 0x7B2C, - 3174: 0x918D, - 3175: 0x984C, - 3176: 0x9DF9, - 3177: 0x6EDD, - 3178: 0x7027, - 3179: 0x5353, - 3180: 0x5544, - 3181: 0x5B85, - 3182: 0x6258, - 3183: 0x629E, - 3184: 0x62D3, - 3185: 0x6CA2, - 3186: 0x6FEF, - 3187: 0x7422, - 3188: 0x8A17, - 3189: 0x9438, - 3190: 0x6FC1, - 3191: 0x8AFE, - 3192: 0x8338, - 3193: 0x51E7, - 3194: 0x86F8, - 3195: 0x53EA, - 3196: 0x53E9, - 3197: 0x4F46, - 3198: 0x9054, - 3199: 0x8FB0, - 3200: 0x596A, - 3201: 0x8131, - 3202: 0x5DFD, - 3203: 0x7AEA, - 3204: 0x8FBF, - 3205: 0x68DA, - 3206: 0x8C37, - 3207: 0x72F8, - 3208: 0x9C48, - 3209: 0x6A3D, - 3210: 0x8AB0, - 3211: 0x4E39, - 3212: 0x5358, - 3213: 0x5606, - 3214: 0x5766, - 3215: 0x62C5, - 3216: 0x63A2, - 3217: 0x65E6, - 3218: 0x6B4E, - 3219: 0x6DE1, - 3220: 0x6E5B, - 3221: 0x70AD, - 3222: 0x77ED, - 3223: 0x7AEF, - 3224: 0x7BAA, - 3225: 0x7DBB, - 3226: 0x803D, - 3227: 0x80C6, - 3228: 0x86CB, - 3229: 0x8A95, - 3230: 0x935B, - 3231: 0x56E3, - 3232: 0x58C7, - 3233: 0x5F3E, - 3234: 0x65AD, - 3235: 0x6696, - 3236: 0x6A80, - 3237: 0x6BB5, - 3238: 0x7537, - 3239: 0x8AC7, - 3240: 0x5024, - 3241: 0x77E5, - 3242: 0x5730, - 3243: 0x5F1B, - 3244: 0x6065, - 3245: 0x667A, - 3246: 0x6C60, - 3247: 0x75F4, - 3248: 0x7A1A, - 3249: 0x7F6E, - 3250: 0x81F4, - 3251: 0x8718, - 3252: 0x9045, - 3253: 0x99B3, - 3254: 0x7BC9, - 3255: 0x755C, - 3256: 0x7AF9, - 3257: 0x7B51, - 3258: 0x84C4, - 3259: 0x9010, - 3260: 0x79E9, - 3261: 0x7A92, - 3262: 0x8336, - 3263: 0x5AE1, - 3264: 0x7740, - 3265: 0x4E2D, - 3266: 0x4EF2, - 3267: 0x5B99, - 3268: 0x5FE0, - 3269: 0x62BD, - 3270: 0x663C, - 3271: 0x67F1, - 3272: 0x6CE8, - 3273: 0x866B, - 3274: 0x8877, - 3275: 0x8A3B, - 3276: 0x914E, - 3277: 0x92F3, - 3278: 0x99D0, - 3279: 0x6A17, - 3280: 0x7026, - 3281: 0x732A, - 3282: 0x82E7, - 3283: 0x8457, - 3284: 0x8CAF, - 3285: 0x4E01, - 3286: 0x5146, - 3287: 0x51CB, - 3288: 0x558B, - 3289: 0x5BF5, - 3290: 0x5E16, - 3291: 0x5E33, - 3292: 0x5E81, - 3293: 0x5F14, - 3294: 0x5F35, - 3295: 0x5F6B, - 3296: 0x5FB4, - 3297: 0x61F2, - 3298: 0x6311, - 3299: 0x66A2, - 3300: 0x671D, - 3301: 0x6F6E, - 3302: 0x7252, - 3303: 0x753A, - 3304: 0x773A, - 3305: 0x8074, - 3306: 0x8139, - 3307: 0x8178, - 3308: 0x8776, - 3309: 0x8ABF, - 3310: 0x8ADC, - 3311: 0x8D85, - 3312: 0x8DF3, - 3313: 0x929A, - 3314: 0x9577, - 3315: 0x9802, - 3316: 0x9CE5, - 3317: 0x52C5, - 3318: 0x6357, - 3319: 0x76F4, - 3320: 0x6715, - 3321: 0x6C88, - 3322: 0x73CD, - 3323: 0x8CC3, - 3324: 0x93AE, - 3325: 0x9673, - 3326: 0x6D25, - 3327: 0x589C, - 3328: 0x690E, - 3329: 0x69CC, - 3330: 0x8FFD, - 3331: 0x939A, - 3332: 0x75DB, - 3333: 0x901A, - 3334: 0x585A, - 3335: 0x6802, - 3336: 0x63B4, - 3337: 0x69FB, - 3338: 0x4F43, - 3339: 0x6F2C, - 3340: 0x67D8, - 3341: 0x8FBB, - 3342: 0x8526, - 3343: 0x7DB4, - 3344: 0x9354, - 3345: 0x693F, - 3346: 0x6F70, - 3347: 0x576A, - 3348: 0x58F7, - 3349: 0x5B2C, - 3350: 0x7D2C, - 3351: 0x722A, - 3352: 0x540A, - 3353: 0x91E3, - 3354: 0x9DB4, - 3355: 0x4EAD, - 3356: 0x4F4E, - 3357: 0x505C, - 3358: 0x5075, - 3359: 0x5243, - 3360: 0x8C9E, - 3361: 0x5448, - 3362: 0x5824, - 3363: 0x5B9A, - 3364: 0x5E1D, - 3365: 0x5E95, - 3366: 0x5EAD, - 3367: 0x5EF7, - 3368: 0x5F1F, - 3369: 0x608C, - 3370: 0x62B5, - 3371: 0x633A, - 3372: 0x63D0, - 3373: 0x68AF, - 3374: 0x6C40, - 3375: 0x7887, - 3376: 0x798E, - 3377: 0x7A0B, - 3378: 0x7DE0, - 3379: 0x8247, - 3380: 0x8A02, - 3381: 0x8AE6, - 3382: 0x8E44, - 3383: 0x9013, - 3384: 0x90B8, - 3385: 0x912D, - 3386: 0x91D8, - 3387: 0x9F0E, - 3388: 0x6CE5, - 3389: 0x6458, - 3390: 0x64E2, - 3391: 0x6575, - 3392: 0x6EF4, - 3393: 0x7684, - 3394: 0x7B1B, - 3395: 0x9069, - 3396: 0x93D1, - 3397: 0x6EBA, - 3398: 0x54F2, - 3399: 0x5FB9, - 3400: 0x64A4, - 3401: 0x8F4D, - 3402: 0x8FED, - 3403: 0x9244, - 3404: 0x5178, - 3405: 0x586B, - 3406: 0x5929, - 3407: 0x5C55, - 3408: 0x5E97, - 3409: 0x6DFB, - 3410: 0x7E8F, - 3411: 0x751C, - 3412: 0x8CBC, - 3413: 0x8EE2, - 3414: 0x985B, - 3415: 0x70B9, - 3416: 0x4F1D, - 3417: 0x6BBF, - 3418: 0x6FB1, - 3419: 0x7530, - 3420: 0x96FB, - 3421: 0x514E, - 3422: 0x5410, - 3423: 0x5835, - 3424: 0x5857, - 3425: 0x59AC, - 3426: 0x5C60, - 3427: 0x5F92, - 3428: 0x6597, - 3429: 0x675C, - 3430: 0x6E21, - 3431: 0x767B, - 3432: 0x83DF, - 3433: 0x8CED, - 3434: 0x9014, - 3435: 0x90FD, - 3436: 0x934D, - 3437: 0x7825, - 3438: 0x783A, - 3439: 0x52AA, - 3440: 0x5EA6, - 3441: 0x571F, - 3442: 0x5974, - 3443: 0x6012, - 3444: 0x5012, - 3445: 0x515A, - 3446: 0x51AC, - 3447: 0x51CD, - 3448: 0x5200, - 3449: 0x5510, - 3450: 0x5854, - 3451: 0x5858, - 3452: 0x5957, - 3453: 0x5B95, - 3454: 0x5CF6, - 3455: 0x5D8B, - 3456: 0x60BC, - 3457: 0x6295, - 3458: 0x642D, - 3459: 0x6771, - 3460: 0x6843, - 3461: 0x68BC, - 3462: 0x68DF, - 3463: 0x76D7, - 3464: 0x6DD8, - 3465: 0x6E6F, - 3466: 0x6D9B, - 3467: 0x706F, - 3468: 0x71C8, - 3469: 0x5F53, - 3470: 0x75D8, - 3471: 0x7977, - 3472: 0x7B49, - 3473: 0x7B54, - 3474: 0x7B52, - 3475: 0x7CD6, - 3476: 0x7D71, - 3477: 0x5230, - 3478: 0x8463, - 3479: 0x8569, - 3480: 0x85E4, - 3481: 0x8A0E, - 3482: 0x8B04, - 3483: 0x8C46, - 3484: 0x8E0F, - 3485: 0x9003, - 3486: 0x900F, - 3487: 0x9419, - 3488: 0x9676, - 3489: 0x982D, - 3490: 0x9A30, - 3491: 0x95D8, - 3492: 0x50CD, - 3493: 0x52D5, - 3494: 0x540C, - 3495: 0x5802, - 3496: 0x5C0E, - 3497: 0x61A7, - 3498: 0x649E, - 3499: 0x6D1E, - 3500: 0x77B3, - 3501: 0x7AE5, - 3502: 0x80F4, - 3503: 0x8404, - 3504: 0x9053, - 3505: 0x9285, - 3506: 0x5CE0, - 3507: 0x9D07, - 3508: 0x533F, - 3509: 0x5F97, - 3510: 0x5FB3, - 3511: 0x6D9C, - 3512: 0x7279, - 3513: 0x7763, - 3514: 0x79BF, - 3515: 0x7BE4, - 3516: 0x6BD2, - 3517: 0x72EC, - 3518: 0x8AAD, - 3519: 0x6803, - 3520: 0x6A61, - 3521: 0x51F8, - 3522: 0x7A81, - 3523: 0x6934, - 3524: 0x5C4A, - 3525: 0x9CF6, - 3526: 0x82EB, - 3527: 0x5BC5, - 3528: 0x9149, - 3529: 0x701E, - 3530: 0x5678, - 3531: 0x5C6F, - 3532: 0x60C7, - 3533: 0x6566, - 3534: 0x6C8C, - 3535: 0x8C5A, - 3536: 0x9041, - 3537: 0x9813, - 3538: 0x5451, - 3539: 0x66C7, - 3540: 0x920D, - 3541: 0x5948, - 3542: 0x90A3, - 3543: 0x5185, - 3544: 0x4E4D, - 3545: 0x51EA, - 3546: 0x8599, - 3547: 0x8B0E, - 3548: 0x7058, - 3549: 0x637A, - 3550: 0x934B, - 3551: 0x6962, - 3552: 0x99B4, - 3553: 0x7E04, - 3554: 0x7577, - 3555: 0x5357, - 3556: 0x6960, - 3557: 0x8EDF, - 3558: 0x96E3, - 3559: 0x6C5D, - 3560: 0x4E8C, - 3561: 0x5C3C, - 3562: 0x5F10, - 3563: 0x8FE9, - 3564: 0x5302, - 3565: 0x8CD1, - 3566: 0x8089, - 3567: 0x8679, - 3568: 0x5EFF, - 3569: 0x65E5, - 3570: 0x4E73, - 3571: 0x5165, - 3572: 0x5982, - 3573: 0x5C3F, - 3574: 0x97EE, - 3575: 0x4EFB, - 3576: 0x598A, - 3577: 0x5FCD, - 3578: 0x8A8D, - 3579: 0x6FE1, - 3580: 0x79B0, - 3581: 0x7962, - 3582: 0x5BE7, - 3583: 0x8471, - 3584: 0x732B, - 3585: 0x71B1, - 3586: 0x5E74, - 3587: 0x5FF5, - 3588: 0x637B, - 3589: 0x649A, - 3590: 0x71C3, - 3591: 0x7C98, - 3592: 0x4E43, - 3593: 0x5EFC, - 3594: 0x4E4B, - 3595: 0x57DC, - 3596: 0x56A2, - 3597: 0x60A9, - 3598: 0x6FC3, - 3599: 0x7D0D, - 3600: 0x80FD, - 3601: 0x8133, - 3602: 0x81BF, - 3603: 0x8FB2, - 3604: 0x8997, - 3605: 0x86A4, - 3606: 0x5DF4, - 3607: 0x628A, - 3608: 0x64AD, - 3609: 0x8987, - 3610: 0x6777, - 3611: 0x6CE2, - 3612: 0x6D3E, - 3613: 0x7436, - 3614: 0x7834, - 3615: 0x5A46, - 3616: 0x7F75, - 3617: 0x82AD, - 3618: 0x99AC, - 3619: 0x4FF3, - 3620: 0x5EC3, - 3621: 0x62DD, - 3622: 0x6392, - 3623: 0x6557, - 3624: 0x676F, - 3625: 0x76C3, - 3626: 0x724C, - 3627: 0x80CC, - 3628: 0x80BA, - 3629: 0x8F29, - 3630: 0x914D, - 3631: 0x500D, - 3632: 0x57F9, - 3633: 0x5A92, - 3634: 0x6885, - 3635: 0x6973, - 3636: 0x7164, - 3637: 0x72FD, - 3638: 0x8CB7, - 3639: 0x58F2, - 3640: 0x8CE0, - 3641: 0x966A, - 3642: 0x9019, - 3643: 0x877F, - 3644: 0x79E4, - 3645: 0x77E7, - 3646: 0x8429, - 3647: 0x4F2F, - 3648: 0x5265, - 3649: 0x535A, - 3650: 0x62CD, - 3651: 0x67CF, - 3652: 0x6CCA, - 3653: 0x767D, - 3654: 0x7B94, - 3655: 0x7C95, - 3656: 0x8236, - 3657: 0x8584, - 3658: 0x8FEB, - 3659: 0x66DD, - 3660: 0x6F20, - 3661: 0x7206, - 3662: 0x7E1B, - 3663: 0x83AB, - 3664: 0x99C1, - 3665: 0x9EA6, - 3666: 0x51FD, - 3667: 0x7BB1, - 3668: 0x7872, - 3669: 0x7BB8, - 3670: 0x8087, - 3671: 0x7B48, - 3672: 0x6AE8, - 3673: 0x5E61, - 3674: 0x808C, - 3675: 0x7551, - 3676: 0x7560, - 3677: 0x516B, - 3678: 0x9262, - 3679: 0x6E8C, - 3680: 0x767A, - 3681: 0x9197, - 3682: 0x9AEA, - 3683: 0x4F10, - 3684: 0x7F70, - 3685: 0x629C, - 3686: 0x7B4F, - 3687: 0x95A5, - 3688: 0x9CE9, - 3689: 0x567A, - 3690: 0x5859, - 3691: 0x86E4, - 3692: 0x96BC, - 3693: 0x4F34, - 3694: 0x5224, - 3695: 0x534A, - 3696: 0x53CD, - 3697: 0x53DB, - 3698: 0x5E06, - 3699: 0x642C, - 3700: 0x6591, - 3701: 0x677F, - 3702: 0x6C3E, - 3703: 0x6C4E, - 3704: 0x7248, - 3705: 0x72AF, - 3706: 0x73ED, - 3707: 0x7554, - 3708: 0x7E41, - 3709: 0x822C, - 3710: 0x85E9, - 3711: 0x8CA9, - 3712: 0x7BC4, - 3713: 0x91C6, - 3714: 0x7169, - 3715: 0x9812, - 3716: 0x98EF, - 3717: 0x633D, - 3718: 0x6669, - 3719: 0x756A, - 3720: 0x76E4, - 3721: 0x78D0, - 3722: 0x8543, - 3723: 0x86EE, - 3724: 0x532A, - 3725: 0x5351, - 3726: 0x5426, - 3727: 0x5983, - 3728: 0x5E87, - 3729: 0x5F7C, - 3730: 0x60B2, - 3731: 0x6249, - 3732: 0x6279, - 3733: 0x62AB, - 3734: 0x6590, - 3735: 0x6BD4, - 3736: 0x6CCC, - 3737: 0x75B2, - 3738: 0x76AE, - 3739: 0x7891, - 3740: 0x79D8, - 3741: 0x7DCB, - 3742: 0x7F77, - 3743: 0x80A5, - 3744: 0x88AB, - 3745: 0x8AB9, - 3746: 0x8CBB, - 3747: 0x907F, - 3748: 0x975E, - 3749: 0x98DB, - 3750: 0x6A0B, - 3751: 0x7C38, - 3752: 0x5099, - 3753: 0x5C3E, - 3754: 0x5FAE, - 3755: 0x6787, - 3756: 0x6BD8, - 3757: 0x7435, - 3758: 0x7709, - 3759: 0x7F8E, - 3760: 0x9F3B, - 3761: 0x67CA, - 3762: 0x7A17, - 3763: 0x5339, - 3764: 0x758B, - 3765: 0x9AED, - 3766: 0x5F66, - 3767: 0x819D, - 3768: 0x83F1, - 3769: 0x8098, - 3770: 0x5F3C, - 3771: 0x5FC5, - 3772: 0x7562, - 3773: 0x7B46, - 3774: 0x903C, - 3775: 0x6867, - 3776: 0x59EB, - 3777: 0x5A9B, - 3778: 0x7D10, - 3779: 0x767E, - 3780: 0x8B2C, - 3781: 0x4FF5, - 3782: 0x5F6A, - 3783: 0x6A19, - 3784: 0x6C37, - 3785: 0x6F02, - 3786: 0x74E2, - 3787: 0x7968, - 3788: 0x8868, - 3789: 0x8A55, - 3790: 0x8C79, - 3791: 0x5EDF, - 3792: 0x63CF, - 3793: 0x75C5, - 3794: 0x79D2, - 3795: 0x82D7, - 3796: 0x9328, - 3797: 0x92F2, - 3798: 0x849C, - 3799: 0x86ED, - 3800: 0x9C2D, - 3801: 0x54C1, - 3802: 0x5F6C, - 3803: 0x658C, - 3804: 0x6D5C, - 3805: 0x7015, - 3806: 0x8CA7, - 3807: 0x8CD3, - 3808: 0x983B, - 3809: 0x654F, - 3810: 0x74F6, - 3811: 0x4E0D, - 3812: 0x4ED8, - 3813: 0x57E0, - 3814: 0x592B, - 3815: 0x5A66, - 3816: 0x5BCC, - 3817: 0x51A8, - 3818: 0x5E03, - 3819: 0x5E9C, - 3820: 0x6016, - 3821: 0x6276, - 3822: 0x6577, - 3823: 0x65A7, - 3824: 0x666E, - 3825: 0x6D6E, - 3826: 0x7236, - 3827: 0x7B26, - 3828: 0x8150, - 3829: 0x819A, - 3830: 0x8299, - 3831: 0x8B5C, - 3832: 0x8CA0, - 3833: 0x8CE6, - 3834: 0x8D74, - 3835: 0x961C, - 3836: 0x9644, - 3837: 0x4FAE, - 3838: 0x64AB, - 3839: 0x6B66, - 3840: 0x821E, - 3841: 0x8461, - 3842: 0x856A, - 3843: 0x90E8, - 3844: 0x5C01, - 3845: 0x6953, - 3846: 0x98A8, - 3847: 0x847A, - 3848: 0x8557, - 3849: 0x4F0F, - 3850: 0x526F, - 3851: 0x5FA9, - 3852: 0x5E45, - 3853: 0x670D, - 3854: 0x798F, - 3855: 0x8179, - 3856: 0x8907, - 3857: 0x8986, - 3858: 0x6DF5, - 3859: 0x5F17, - 3860: 0x6255, - 3861: 0x6CB8, - 3862: 0x4ECF, - 3863: 0x7269, - 3864: 0x9B92, - 3865: 0x5206, - 3866: 0x543B, - 3867: 0x5674, - 3868: 0x58B3, - 3869: 0x61A4, - 3870: 0x626E, - 3871: 0x711A, - 3872: 0x596E, - 3873: 0x7C89, - 3874: 0x7CDE, - 3875: 0x7D1B, - 3876: 0x96F0, - 3877: 0x6587, - 3878: 0x805E, - 3879: 0x4E19, - 3880: 0x4F75, - 3881: 0x5175, - 3882: 0x5840, - 3883: 0x5E63, - 3884: 0x5E73, - 3885: 0x5F0A, - 3886: 0x67C4, - 3887: 0x4E26, - 3888: 0x853D, - 3889: 0x9589, - 3890: 0x965B, - 3891: 0x7C73, - 3892: 0x9801, - 3893: 0x50FB, - 3894: 0x58C1, - 3895: 0x7656, - 3896: 0x78A7, - 3897: 0x5225, - 3898: 0x77A5, - 3899: 0x8511, - 3900: 0x7B86, - 3901: 0x504F, - 3902: 0x5909, - 3903: 0x7247, - 3904: 0x7BC7, - 3905: 0x7DE8, - 3906: 0x8FBA, - 3907: 0x8FD4, - 3908: 0x904D, - 3909: 0x4FBF, - 3910: 0x52C9, - 3911: 0x5A29, - 3912: 0x5F01, - 3913: 0x97AD, - 3914: 0x4FDD, - 3915: 0x8217, - 3916: 0x92EA, - 3917: 0x5703, - 3918: 0x6355, - 3919: 0x6B69, - 3920: 0x752B, - 3921: 0x88DC, - 3922: 0x8F14, - 3923: 0x7A42, - 3924: 0x52DF, - 3925: 0x5893, - 3926: 0x6155, - 3927: 0x620A, - 3928: 0x66AE, - 3929: 0x6BCD, - 3930: 0x7C3F, - 3931: 0x83E9, - 3932: 0x5023, - 3933: 0x4FF8, - 3934: 0x5305, - 3935: 0x5446, - 3936: 0x5831, - 3937: 0x5949, - 3938: 0x5B9D, - 3939: 0x5CF0, - 3940: 0x5CEF, - 3941: 0x5D29, - 3942: 0x5E96, - 3943: 0x62B1, - 3944: 0x6367, - 3945: 0x653E, - 3946: 0x65B9, - 3947: 0x670B, - 3948: 0x6CD5, - 3949: 0x6CE1, - 3950: 0x70F9, - 3951: 0x7832, - 3952: 0x7E2B, - 3953: 0x80DE, - 3954: 0x82B3, - 3955: 0x840C, - 3956: 0x84EC, - 3957: 0x8702, - 3958: 0x8912, - 3959: 0x8A2A, - 3960: 0x8C4A, - 3961: 0x90A6, - 3962: 0x92D2, - 3963: 0x98FD, - 3964: 0x9CF3, - 3965: 0x9D6C, - 3966: 0x4E4F, - 3967: 0x4EA1, - 3968: 0x508D, - 3969: 0x5256, - 3970: 0x574A, - 3971: 0x59A8, - 3972: 0x5E3D, - 3973: 0x5FD8, - 3974: 0x5FD9, - 3975: 0x623F, - 3976: 0x66B4, - 3977: 0x671B, - 3978: 0x67D0, - 3979: 0x68D2, - 3980: 0x5192, - 3981: 0x7D21, - 3982: 0x80AA, - 3983: 0x81A8, - 3984: 0x8B00, - 3985: 0x8C8C, - 3986: 0x8CBF, - 3987: 0x927E, - 3988: 0x9632, - 3989: 0x5420, - 3990: 0x982C, - 3991: 0x5317, - 3992: 0x50D5, - 3993: 0x535C, - 3994: 0x58A8, - 3995: 0x64B2, - 3996: 0x6734, - 3997: 0x7267, - 3998: 0x7766, - 3999: 0x7A46, - 4000: 0x91E6, - 4001: 0x52C3, - 4002: 0x6CA1, - 4003: 0x6B86, - 4004: 0x5800, - 4005: 0x5E4C, - 4006: 0x5954, - 4007: 0x672C, - 4008: 0x7FFB, - 4009: 0x51E1, - 4010: 0x76C6, - 4011: 0x6469, - 4012: 0x78E8, - 4013: 0x9B54, - 4014: 0x9EBB, - 4015: 0x57CB, - 4016: 0x59B9, - 4017: 0x6627, - 4018: 0x679A, - 4019: 0x6BCE, - 4020: 0x54E9, - 4021: 0x69D9, - 4022: 0x5E55, - 4023: 0x819C, - 4024: 0x6795, - 4025: 0x9BAA, - 4026: 0x67FE, - 4027: 0x9C52, - 4028: 0x685D, - 4029: 0x4EA6, - 4030: 0x4FE3, - 4031: 0x53C8, - 4032: 0x62B9, - 4033: 0x672B, - 4034: 0x6CAB, - 4035: 0x8FC4, - 4036: 0x4FAD, - 4037: 0x7E6D, - 4038: 0x9EBF, - 4039: 0x4E07, - 4040: 0x6162, - 4041: 0x6E80, - 4042: 0x6F2B, - 4043: 0x8513, - 4044: 0x5473, - 4045: 0x672A, - 4046: 0x9B45, - 4047: 0x5DF3, - 4048: 0x7B95, - 4049: 0x5CAC, - 4050: 0x5BC6, - 4051: 0x871C, - 4052: 0x6E4A, - 4053: 0x84D1, - 4054: 0x7A14, - 4055: 0x8108, - 4056: 0x5999, - 4057: 0x7C8D, - 4058: 0x6C11, - 4059: 0x7720, - 4060: 0x52D9, - 4061: 0x5922, - 4062: 0x7121, - 4063: 0x725F, - 4064: 0x77DB, - 4065: 0x9727, - 4066: 0x9D61, - 4067: 0x690B, - 4068: 0x5A7F, - 4069: 0x5A18, - 4070: 0x51A5, - 4071: 0x540D, - 4072: 0x547D, - 4073: 0x660E, - 4074: 0x76DF, - 4075: 0x8FF7, - 4076: 0x9298, - 4077: 0x9CF4, - 4078: 0x59EA, - 4079: 0x725D, - 4080: 0x6EC5, - 4081: 0x514D, - 4082: 0x68C9, - 4083: 0x7DBF, - 4084: 0x7DEC, - 4085: 0x9762, - 4086: 0x9EBA, - 4087: 0x6478, - 4088: 0x6A21, - 4089: 0x8302, - 4090: 0x5984, - 4091: 0x5B5F, - 4092: 0x6BDB, - 4093: 0x731B, - 4094: 0x76F2, - 4095: 0x7DB2, - 4096: 0x8017, - 4097: 0x8499, - 4098: 0x5132, - 4099: 0x6728, - 4100: 0x9ED9, - 4101: 0x76EE, - 4102: 0x6762, - 4103: 0x52FF, - 4104: 0x9905, - 4105: 0x5C24, - 4106: 0x623B, - 4107: 0x7C7E, - 4108: 0x8CB0, - 4109: 0x554F, - 4110: 0x60B6, - 4111: 0x7D0B, - 4112: 0x9580, - 4113: 0x5301, - 4114: 0x4E5F, - 4115: 0x51B6, - 4116: 0x591C, - 4117: 0x723A, - 4118: 0x8036, - 4119: 0x91CE, - 4120: 0x5F25, - 4121: 0x77E2, - 4122: 0x5384, - 4123: 0x5F79, - 4124: 0x7D04, - 4125: 0x85AC, - 4126: 0x8A33, - 4127: 0x8E8D, - 4128: 0x9756, - 4129: 0x67F3, - 4130: 0x85AE, - 4131: 0x9453, - 4132: 0x6109, - 4133: 0x6108, - 4134: 0x6CB9, - 4135: 0x7652, - 4136: 0x8AED, - 4137: 0x8F38, - 4138: 0x552F, - 4139: 0x4F51, - 4140: 0x512A, - 4141: 0x52C7, - 4142: 0x53CB, - 4143: 0x5BA5, - 4144: 0x5E7D, - 4145: 0x60A0, - 4146: 0x6182, - 4147: 0x63D6, - 4148: 0x6709, - 4149: 0x67DA, - 4150: 0x6E67, - 4151: 0x6D8C, - 4152: 0x7336, - 4153: 0x7337, - 4154: 0x7531, - 4155: 0x7950, - 4156: 0x88D5, - 4157: 0x8A98, - 4158: 0x904A, - 4159: 0x9091, - 4160: 0x90F5, - 4161: 0x96C4, - 4162: 0x878D, - 4163: 0x5915, - 4164: 0x4E88, - 4165: 0x4F59, - 4166: 0x4E0E, - 4167: 0x8A89, - 4168: 0x8F3F, - 4169: 0x9810, - 4170: 0x50AD, - 4171: 0x5E7C, - 4172: 0x5996, - 4173: 0x5BB9, - 4174: 0x5EB8, - 4175: 0x63DA, - 4176: 0x63FA, - 4177: 0x64C1, - 4178: 0x66DC, - 4179: 0x694A, - 4180: 0x69D8, - 4181: 0x6D0B, - 4182: 0x6EB6, - 4183: 0x7194, - 4184: 0x7528, - 4185: 0x7AAF, - 4186: 0x7F8A, - 4187: 0x8000, - 4188: 0x8449, - 4189: 0x84C9, - 4190: 0x8981, - 4191: 0x8B21, - 4192: 0x8E0A, - 4193: 0x9065, - 4194: 0x967D, - 4195: 0x990A, - 4196: 0x617E, - 4197: 0x6291, - 4198: 0x6B32, - 4199: 0x6C83, - 4200: 0x6D74, - 4201: 0x7FCC, - 4202: 0x7FFC, - 4203: 0x6DC0, - 4204: 0x7F85, - 4205: 0x87BA, - 4206: 0x88F8, - 4207: 0x6765, - 4208: 0x83B1, - 4209: 0x983C, - 4210: 0x96F7, - 4211: 0x6D1B, - 4212: 0x7D61, - 4213: 0x843D, - 4214: 0x916A, - 4215: 0x4E71, - 4216: 0x5375, - 4217: 0x5D50, - 4218: 0x6B04, - 4219: 0x6FEB, - 4220: 0x85CD, - 4221: 0x862D, - 4222: 0x89A7, - 4223: 0x5229, - 4224: 0x540F, - 4225: 0x5C65, - 4226: 0x674E, - 4227: 0x68A8, - 4228: 0x7406, - 4229: 0x7483, - 4230: 0x75E2, - 4231: 0x88CF, - 4232: 0x88E1, - 4233: 0x91CC, - 4234: 0x96E2, - 4235: 0x9678, - 4236: 0x5F8B, - 4237: 0x7387, - 4238: 0x7ACB, - 4239: 0x844E, - 4240: 0x63A0, - 4241: 0x7565, - 4242: 0x5289, - 4243: 0x6D41, - 4244: 0x6E9C, - 4245: 0x7409, - 4246: 0x7559, - 4247: 0x786B, - 4248: 0x7C92, - 4249: 0x9686, - 4250: 0x7ADC, - 4251: 0x9F8D, - 4252: 0x4FB6, - 4253: 0x616E, - 4254: 0x65C5, - 4255: 0x865C, - 4256: 0x4E86, - 4257: 0x4EAE, - 4258: 0x50DA, - 4259: 0x4E21, - 4260: 0x51CC, - 4261: 0x5BEE, - 4262: 0x6599, - 4263: 0x6881, - 4264: 0x6DBC, - 4265: 0x731F, - 4266: 0x7642, - 4267: 0x77AD, - 4268: 0x7A1C, - 4269: 0x7CE7, - 4270: 0x826F, - 4271: 0x8AD2, - 4272: 0x907C, - 4273: 0x91CF, - 4274: 0x9675, - 4275: 0x9818, - 4276: 0x529B, - 4277: 0x7DD1, - 4278: 0x502B, - 4279: 0x5398, - 4280: 0x6797, - 4281: 0x6DCB, - 4282: 0x71D0, - 4283: 0x7433, - 4284: 0x81E8, - 4285: 0x8F2A, - 4286: 0x96A3, - 4287: 0x9C57, - 4288: 0x9E9F, - 4289: 0x7460, - 4290: 0x5841, - 4291: 0x6D99, - 4292: 0x7D2F, - 4293: 0x985E, - 4294: 0x4EE4, - 4295: 0x4F36, - 4296: 0x4F8B, - 4297: 0x51B7, - 4298: 0x52B1, - 4299: 0x5DBA, - 4300: 0x601C, - 4301: 0x73B2, - 4302: 0x793C, - 4303: 0x82D3, - 4304: 0x9234, - 4305: 0x96B7, - 4306: 0x96F6, - 4307: 0x970A, - 4308: 0x9E97, - 4309: 0x9F62, - 4310: 0x66A6, - 4311: 0x6B74, - 4312: 0x5217, - 4313: 0x52A3, - 4314: 0x70C8, - 4315: 0x88C2, - 4316: 0x5EC9, - 4317: 0x604B, - 4318: 0x6190, - 4319: 0x6F23, - 4320: 0x7149, - 4321: 0x7C3E, - 4322: 0x7DF4, - 4323: 0x806F, - 4324: 0x84EE, - 4325: 0x9023, - 4326: 0x932C, - 4327: 0x5442, - 4328: 0x9B6F, - 4329: 0x6AD3, - 4330: 0x7089, - 4331: 0x8CC2, - 4332: 0x8DEF, - 4333: 0x9732, - 4334: 0x52B4, - 4335: 0x5A41, - 4336: 0x5ECA, - 4337: 0x5F04, - 4338: 0x6717, - 4339: 0x697C, - 4340: 0x6994, - 4341: 0x6D6A, - 4342: 0x6F0F, - 4343: 0x7262, - 4344: 0x72FC, - 4345: 0x7BED, - 4346: 0x8001, - 4347: 0x807E, - 4348: 0x874B, - 4349: 0x90CE, - 4350: 0x516D, - 4351: 0x9E93, - 4352: 0x7984, - 4353: 0x808B, - 4354: 0x9332, - 4355: 0x8AD6, - 4356: 0x502D, - 4357: 0x548C, - 4358: 0x8A71, - 4359: 0x6B6A, - 4360: 0x8CC4, - 4361: 0x8107, - 4362: 0x60D1, - 4363: 0x67A0, - 4364: 0x9DF2, - 4365: 0x4E99, - 4366: 0x4E98, - 4367: 0x9C10, - 4368: 0x8A6B, - 4369: 0x85C1, - 4370: 0x8568, - 4371: 0x6900, - 4372: 0x6E7E, - 4373: 0x7897, - 4374: 0x8155, - 4418: 0x5F0C, - 4419: 0x4E10, - 4420: 0x4E15, - 4421: 0x4E2A, - 4422: 0x4E31, - 4423: 0x4E36, - 4424: 0x4E3C, - 4425: 0x4E3F, - 4426: 0x4E42, - 4427: 0x4E56, - 4428: 0x4E58, - 4429: 0x4E82, - 4430: 0x4E85, - 4431: 0x8C6B, - 4432: 0x4E8A, - 4433: 0x8212, - 4434: 0x5F0D, - 4435: 0x4E8E, - 4436: 0x4E9E, - 4437: 0x4E9F, - 4438: 0x4EA0, - 4439: 0x4EA2, - 4440: 0x4EB0, - 4441: 0x4EB3, - 4442: 0x4EB6, - 4443: 0x4ECE, - 4444: 0x4ECD, - 4445: 0x4EC4, - 4446: 0x4EC6, - 4447: 0x4EC2, - 4448: 0x4ED7, - 4449: 0x4EDE, - 4450: 0x4EED, - 4451: 0x4EDF, - 4452: 0x4EF7, - 4453: 0x4F09, - 4454: 0x4F5A, - 4455: 0x4F30, - 4456: 0x4F5B, - 4457: 0x4F5D, - 4458: 0x4F57, - 4459: 0x4F47, - 4460: 0x4F76, - 4461: 0x4F88, - 4462: 0x4F8F, - 4463: 0x4F98, - 4464: 0x4F7B, - 4465: 0x4F69, - 4466: 0x4F70, - 4467: 0x4F91, - 4468: 0x4F6F, - 4469: 0x4F86, - 4470: 0x4F96, - 4471: 0x5118, - 4472: 0x4FD4, - 4473: 0x4FDF, - 4474: 0x4FCE, - 4475: 0x4FD8, - 4476: 0x4FDB, - 4477: 0x4FD1, - 4478: 0x4FDA, - 4479: 0x4FD0, - 4480: 0x4FE4, - 4481: 0x4FE5, - 4482: 0x501A, - 4483: 0x5028, - 4484: 0x5014, - 4485: 0x502A, - 4486: 0x5025, - 4487: 0x5005, - 4488: 0x4F1C, - 4489: 0x4FF6, - 4490: 0x5021, - 4491: 0x5029, - 4492: 0x502C, - 4493: 0x4FFE, - 4494: 0x4FEF, - 4495: 0x5011, - 4496: 0x5006, - 4497: 0x5043, - 4498: 0x5047, - 4499: 0x6703, - 4500: 0x5055, - 4501: 0x5050, - 4502: 0x5048, - 4503: 0x505A, - 4504: 0x5056, - 4505: 0x506C, - 4506: 0x5078, - 4507: 0x5080, - 4508: 0x509A, - 4509: 0x5085, - 4510: 0x50B4, - 4511: 0x50B2, - 4512: 0x50C9, - 4513: 0x50CA, - 4514: 0x50B3, - 4515: 0x50C2, - 4516: 0x50D6, - 4517: 0x50DE, - 4518: 0x50E5, - 4519: 0x50ED, - 4520: 0x50E3, - 4521: 0x50EE, - 4522: 0x50F9, - 4523: 0x50F5, - 4524: 0x5109, - 4525: 0x5101, - 4526: 0x5102, - 4527: 0x5116, - 4528: 0x5115, - 4529: 0x5114, - 4530: 0x511A, - 4531: 0x5121, - 4532: 0x513A, - 4533: 0x5137, - 4534: 0x513C, - 4535: 0x513B, - 4536: 0x513F, - 4537: 0x5140, - 4538: 0x5152, - 4539: 0x514C, - 4540: 0x5154, - 4541: 0x5162, - 4542: 0x7AF8, - 4543: 0x5169, - 4544: 0x516A, - 4545: 0x516E, - 4546: 0x5180, - 4547: 0x5182, - 4548: 0x56D8, - 4549: 0x518C, - 4550: 0x5189, - 4551: 0x518F, - 4552: 0x5191, - 4553: 0x5193, - 4554: 0x5195, - 4555: 0x5196, - 4556: 0x51A4, - 4557: 0x51A6, - 4558: 0x51A2, - 4559: 0x51A9, - 4560: 0x51AA, - 4561: 0x51AB, - 4562: 0x51B3, - 4563: 0x51B1, - 4564: 0x51B2, - 4565: 0x51B0, - 4566: 0x51B5, - 4567: 0x51BD, - 4568: 0x51C5, - 4569: 0x51C9, - 4570: 0x51DB, - 4571: 0x51E0, - 4572: 0x8655, - 4573: 0x51E9, - 4574: 0x51ED, - 4575: 0x51F0, - 4576: 0x51F5, - 4577: 0x51FE, - 4578: 0x5204, - 4579: 0x520B, - 4580: 0x5214, - 4581: 0x520E, - 4582: 0x5227, - 4583: 0x522A, - 4584: 0x522E, - 4585: 0x5233, - 4586: 0x5239, - 4587: 0x524F, - 4588: 0x5244, - 4589: 0x524B, - 4590: 0x524C, - 4591: 0x525E, - 4592: 0x5254, - 4593: 0x526A, - 4594: 0x5274, - 4595: 0x5269, - 4596: 0x5273, - 4597: 0x527F, - 4598: 0x527D, - 4599: 0x528D, - 4600: 0x5294, - 4601: 0x5292, - 4602: 0x5271, - 4603: 0x5288, - 4604: 0x5291, - 4605: 0x8FA8, - 4606: 0x8FA7, - 4607: 0x52AC, - 4608: 0x52AD, - 4609: 0x52BC, - 4610: 0x52B5, - 4611: 0x52C1, - 4612: 0x52CD, - 4613: 0x52D7, - 4614: 0x52DE, - 4615: 0x52E3, - 4616: 0x52E6, - 4617: 0x98ED, - 4618: 0x52E0, - 4619: 0x52F3, - 4620: 0x52F5, - 4621: 0x52F8, - 4622: 0x52F9, - 4623: 0x5306, - 4624: 0x5308, - 4625: 0x7538, - 4626: 0x530D, - 4627: 0x5310, - 4628: 0x530F, - 4629: 0x5315, - 4630: 0x531A, - 4631: 0x5323, - 4632: 0x532F, - 4633: 0x5331, - 4634: 0x5333, - 4635: 0x5338, - 4636: 0x5340, - 4637: 0x5346, - 4638: 0x5345, - 4639: 0x4E17, - 4640: 0x5349, - 4641: 0x534D, - 4642: 0x51D6, - 4643: 0x535E, - 4644: 0x5369, - 4645: 0x536E, - 4646: 0x5918, - 4647: 0x537B, - 4648: 0x5377, - 4649: 0x5382, - 4650: 0x5396, - 4651: 0x53A0, - 4652: 0x53A6, - 4653: 0x53A5, - 4654: 0x53AE, - 4655: 0x53B0, - 4656: 0x53B6, - 4657: 0x53C3, - 4658: 0x7C12, - 4659: 0x96D9, - 4660: 0x53DF, - 4661: 0x66FC, - 4662: 0x71EE, - 4663: 0x53EE, - 4664: 0x53E8, - 4665: 0x53ED, - 4666: 0x53FA, - 4667: 0x5401, - 4668: 0x543D, - 4669: 0x5440, - 4670: 0x542C, - 4671: 0x542D, - 4672: 0x543C, - 4673: 0x542E, - 4674: 0x5436, - 4675: 0x5429, - 4676: 0x541D, - 4677: 0x544E, - 4678: 0x548F, - 4679: 0x5475, - 4680: 0x548E, - 4681: 0x545F, - 4682: 0x5471, - 4683: 0x5477, - 4684: 0x5470, - 4685: 0x5492, - 4686: 0x547B, - 4687: 0x5480, - 4688: 0x5476, - 4689: 0x5484, - 4690: 0x5490, - 4691: 0x5486, - 4692: 0x54C7, - 4693: 0x54A2, - 4694: 0x54B8, - 4695: 0x54A5, - 4696: 0x54AC, - 4697: 0x54C4, - 4698: 0x54C8, - 4699: 0x54A8, - 4700: 0x54AB, - 4701: 0x54C2, - 4702: 0x54A4, - 4703: 0x54BE, - 4704: 0x54BC, - 4705: 0x54D8, - 4706: 0x54E5, - 4707: 0x54E6, - 4708: 0x550F, - 4709: 0x5514, - 4710: 0x54FD, - 4711: 0x54EE, - 4712: 0x54ED, - 4713: 0x54FA, - 4714: 0x54E2, - 4715: 0x5539, - 4716: 0x5540, - 4717: 0x5563, - 4718: 0x554C, - 4719: 0x552E, - 4720: 0x555C, - 4721: 0x5545, - 4722: 0x5556, - 4723: 0x5557, - 4724: 0x5538, - 4725: 0x5533, - 4726: 0x555D, - 4727: 0x5599, - 4728: 0x5580, - 4729: 0x54AF, - 4730: 0x558A, - 4731: 0x559F, - 4732: 0x557B, - 4733: 0x557E, - 4734: 0x5598, - 4735: 0x559E, - 4736: 0x55AE, - 4737: 0x557C, - 4738: 0x5583, - 4739: 0x55A9, - 4740: 0x5587, - 4741: 0x55A8, - 4742: 0x55DA, - 4743: 0x55C5, - 4744: 0x55DF, - 4745: 0x55C4, - 4746: 0x55DC, - 4747: 0x55E4, - 4748: 0x55D4, - 4749: 0x5614, - 4750: 0x55F7, - 4751: 0x5616, - 4752: 0x55FE, - 4753: 0x55FD, - 4754: 0x561B, - 4755: 0x55F9, - 4756: 0x564E, - 4757: 0x5650, - 4758: 0x71DF, - 4759: 0x5634, - 4760: 0x5636, - 4761: 0x5632, - 4762: 0x5638, - 4763: 0x566B, - 4764: 0x5664, - 4765: 0x562F, - 4766: 0x566C, - 4767: 0x566A, - 4768: 0x5686, - 4769: 0x5680, - 4770: 0x568A, - 4771: 0x56A0, - 4772: 0x5694, - 4773: 0x568F, - 4774: 0x56A5, - 4775: 0x56AE, - 4776: 0x56B6, - 4777: 0x56B4, - 4778: 0x56C2, - 4779: 0x56BC, - 4780: 0x56C1, - 4781: 0x56C3, - 4782: 0x56C0, - 4783: 0x56C8, - 4784: 0x56CE, - 4785: 0x56D1, - 4786: 0x56D3, - 4787: 0x56D7, - 4788: 0x56EE, - 4789: 0x56F9, - 4790: 0x5700, - 4791: 0x56FF, - 4792: 0x5704, - 4793: 0x5709, - 4794: 0x5708, - 4795: 0x570B, - 4796: 0x570D, - 4797: 0x5713, - 4798: 0x5718, - 4799: 0x5716, - 4800: 0x55C7, - 4801: 0x571C, - 4802: 0x5726, - 4803: 0x5737, - 4804: 0x5738, - 4805: 0x574E, - 4806: 0x573B, - 4807: 0x5740, - 4808: 0x574F, - 4809: 0x5769, - 4810: 0x57C0, - 4811: 0x5788, - 4812: 0x5761, - 4813: 0x577F, - 4814: 0x5789, - 4815: 0x5793, - 4816: 0x57A0, - 4817: 0x57B3, - 4818: 0x57A4, - 4819: 0x57AA, - 4820: 0x57B0, - 4821: 0x57C3, - 4822: 0x57C6, - 4823: 0x57D4, - 4824: 0x57D2, - 4825: 0x57D3, - 4826: 0x580A, - 4827: 0x57D6, - 4828: 0x57E3, - 4829: 0x580B, - 4830: 0x5819, - 4831: 0x581D, - 4832: 0x5872, - 4833: 0x5821, - 4834: 0x5862, - 4835: 0x584B, - 4836: 0x5870, - 4837: 0x6BC0, - 4838: 0x5852, - 4839: 0x583D, - 4840: 0x5879, - 4841: 0x5885, - 4842: 0x58B9, - 4843: 0x589F, - 4844: 0x58AB, - 4845: 0x58BA, - 4846: 0x58DE, - 4847: 0x58BB, - 4848: 0x58B8, - 4849: 0x58AE, - 4850: 0x58C5, - 4851: 0x58D3, - 4852: 0x58D1, - 4853: 0x58D7, - 4854: 0x58D9, - 4855: 0x58D8, - 4856: 0x58E5, - 4857: 0x58DC, - 4858: 0x58E4, - 4859: 0x58DF, - 4860: 0x58EF, - 4861: 0x58FA, - 4862: 0x58F9, - 4863: 0x58FB, - 4864: 0x58FC, - 4865: 0x58FD, - 4866: 0x5902, - 4867: 0x590A, - 4868: 0x5910, - 4869: 0x591B, - 4870: 0x68A6, - 4871: 0x5925, - 4872: 0x592C, - 4873: 0x592D, - 4874: 0x5932, - 4875: 0x5938, - 4876: 0x593E, - 4877: 0x7AD2, - 4878: 0x5955, - 4879: 0x5950, - 4880: 0x594E, - 4881: 0x595A, - 4882: 0x5958, - 4883: 0x5962, - 4884: 0x5960, - 4885: 0x5967, - 4886: 0x596C, - 4887: 0x5969, - 4888: 0x5978, - 4889: 0x5981, - 4890: 0x599D, - 4891: 0x4F5E, - 4892: 0x4FAB, - 4893: 0x59A3, - 4894: 0x59B2, - 4895: 0x59C6, - 4896: 0x59E8, - 4897: 0x59DC, - 4898: 0x598D, - 4899: 0x59D9, - 4900: 0x59DA, - 4901: 0x5A25, - 4902: 0x5A1F, - 4903: 0x5A11, - 4904: 0x5A1C, - 4905: 0x5A09, - 4906: 0x5A1A, - 4907: 0x5A40, - 4908: 0x5A6C, - 4909: 0x5A49, - 4910: 0x5A35, - 4911: 0x5A36, - 4912: 0x5A62, - 4913: 0x5A6A, - 4914: 0x5A9A, - 4915: 0x5ABC, - 4916: 0x5ABE, - 4917: 0x5ACB, - 4918: 0x5AC2, - 4919: 0x5ABD, - 4920: 0x5AE3, - 4921: 0x5AD7, - 4922: 0x5AE6, - 4923: 0x5AE9, - 4924: 0x5AD6, - 4925: 0x5AFA, - 4926: 0x5AFB, - 4927: 0x5B0C, - 4928: 0x5B0B, - 4929: 0x5B16, - 4930: 0x5B32, - 4931: 0x5AD0, - 4932: 0x5B2A, - 4933: 0x5B36, - 4934: 0x5B3E, - 4935: 0x5B43, - 4936: 0x5B45, - 4937: 0x5B40, - 4938: 0x5B51, - 4939: 0x5B55, - 4940: 0x5B5A, - 4941: 0x5B5B, - 4942: 0x5B65, - 4943: 0x5B69, - 4944: 0x5B70, - 4945: 0x5B73, - 4946: 0x5B75, - 4947: 0x5B78, - 4948: 0x6588, - 4949: 0x5B7A, - 4950: 0x5B80, - 4951: 0x5B83, - 4952: 0x5BA6, - 4953: 0x5BB8, - 4954: 0x5BC3, - 4955: 0x5BC7, - 4956: 0x5BC9, - 4957: 0x5BD4, - 4958: 0x5BD0, - 4959: 0x5BE4, - 4960: 0x5BE6, - 4961: 0x5BE2, - 4962: 0x5BDE, - 4963: 0x5BE5, - 4964: 0x5BEB, - 4965: 0x5BF0, - 4966: 0x5BF6, - 4967: 0x5BF3, - 4968: 0x5C05, - 4969: 0x5C07, - 4970: 0x5C08, - 4971: 0x5C0D, - 4972: 0x5C13, - 4973: 0x5C20, - 4974: 0x5C22, - 4975: 0x5C28, - 4976: 0x5C38, - 4977: 0x5C39, - 4978: 0x5C41, - 4979: 0x5C46, - 4980: 0x5C4E, - 4981: 0x5C53, - 4982: 0x5C50, - 4983: 0x5C4F, - 4984: 0x5B71, - 4985: 0x5C6C, - 4986: 0x5C6E, - 4987: 0x4E62, - 4988: 0x5C76, - 4989: 0x5C79, - 4990: 0x5C8C, - 4991: 0x5C91, - 4992: 0x5C94, - 4993: 0x599B, - 4994: 0x5CAB, - 4995: 0x5CBB, - 4996: 0x5CB6, - 4997: 0x5CBC, - 4998: 0x5CB7, - 4999: 0x5CC5, - 5000: 0x5CBE, - 5001: 0x5CC7, - 5002: 0x5CD9, - 5003: 0x5CE9, - 5004: 0x5CFD, - 5005: 0x5CFA, - 5006: 0x5CED, - 5007: 0x5D8C, - 5008: 0x5CEA, - 5009: 0x5D0B, - 5010: 0x5D15, - 5011: 0x5D17, - 5012: 0x5D5C, - 5013: 0x5D1F, - 5014: 0x5D1B, - 5015: 0x5D11, - 5016: 0x5D14, - 5017: 0x5D22, - 5018: 0x5D1A, - 5019: 0x5D19, - 5020: 0x5D18, - 5021: 0x5D4C, - 5022: 0x5D52, - 5023: 0x5D4E, - 5024: 0x5D4B, - 5025: 0x5D6C, - 5026: 0x5D73, - 5027: 0x5D76, - 5028: 0x5D87, - 5029: 0x5D84, - 5030: 0x5D82, - 5031: 0x5DA2, - 5032: 0x5D9D, - 5033: 0x5DAC, - 5034: 0x5DAE, - 5035: 0x5DBD, - 5036: 0x5D90, - 5037: 0x5DB7, - 5038: 0x5DBC, - 5039: 0x5DC9, - 5040: 0x5DCD, - 5041: 0x5DD3, - 5042: 0x5DD2, - 5043: 0x5DD6, - 5044: 0x5DDB, - 5045: 0x5DEB, - 5046: 0x5DF2, - 5047: 0x5DF5, - 5048: 0x5E0B, - 5049: 0x5E1A, - 5050: 0x5E19, - 5051: 0x5E11, - 5052: 0x5E1B, - 5053: 0x5E36, - 5054: 0x5E37, - 5055: 0x5E44, - 5056: 0x5E43, - 5057: 0x5E40, - 5058: 0x5E4E, - 5059: 0x5E57, - 5060: 0x5E54, - 5061: 0x5E5F, - 5062: 0x5E62, - 5063: 0x5E64, - 5064: 0x5E47, - 5065: 0x5E75, - 5066: 0x5E76, - 5067: 0x5E7A, - 5068: 0x9EBC, - 5069: 0x5E7F, - 5070: 0x5EA0, - 5071: 0x5EC1, - 5072: 0x5EC2, - 5073: 0x5EC8, - 5074: 0x5ED0, - 5075: 0x5ECF, - 5076: 0x5ED6, - 5077: 0x5EE3, - 5078: 0x5EDD, - 5079: 0x5EDA, - 5080: 0x5EDB, - 5081: 0x5EE2, - 5082: 0x5EE1, - 5083: 0x5EE8, - 5084: 0x5EE9, - 5085: 0x5EEC, - 5086: 0x5EF1, - 5087: 0x5EF3, - 5088: 0x5EF0, - 5089: 0x5EF4, - 5090: 0x5EF8, - 5091: 0x5EFE, - 5092: 0x5F03, - 5093: 0x5F09, - 5094: 0x5F5D, - 5095: 0x5F5C, - 5096: 0x5F0B, - 5097: 0x5F11, - 5098: 0x5F16, - 5099: 0x5F29, - 5100: 0x5F2D, - 5101: 0x5F38, - 5102: 0x5F41, - 5103: 0x5F48, - 5104: 0x5F4C, - 5105: 0x5F4E, - 5106: 0x5F2F, - 5107: 0x5F51, - 5108: 0x5F56, - 5109: 0x5F57, - 5110: 0x5F59, - 5111: 0x5F61, - 5112: 0x5F6D, - 5113: 0x5F73, - 5114: 0x5F77, - 5115: 0x5F83, - 5116: 0x5F82, - 5117: 0x5F7F, - 5118: 0x5F8A, - 5119: 0x5F88, - 5120: 0x5F91, - 5121: 0x5F87, - 5122: 0x5F9E, - 5123: 0x5F99, - 5124: 0x5F98, - 5125: 0x5FA0, - 5126: 0x5FA8, - 5127: 0x5FAD, - 5128: 0x5FBC, - 5129: 0x5FD6, - 5130: 0x5FFB, - 5131: 0x5FE4, - 5132: 0x5FF8, - 5133: 0x5FF1, - 5134: 0x5FDD, - 5135: 0x60B3, - 5136: 0x5FFF, - 5137: 0x6021, - 5138: 0x6060, - 5139: 0x6019, - 5140: 0x6010, - 5141: 0x6029, - 5142: 0x600E, - 5143: 0x6031, - 5144: 0x601B, - 5145: 0x6015, - 5146: 0x602B, - 5147: 0x6026, - 5148: 0x600F, - 5149: 0x603A, - 5150: 0x605A, - 5151: 0x6041, - 5152: 0x606A, - 5153: 0x6077, - 5154: 0x605F, - 5155: 0x604A, - 5156: 0x6046, - 5157: 0x604D, - 5158: 0x6063, - 5159: 0x6043, - 5160: 0x6064, - 5161: 0x6042, - 5162: 0x606C, - 5163: 0x606B, - 5164: 0x6059, - 5165: 0x6081, - 5166: 0x608D, - 5167: 0x60E7, - 5168: 0x6083, - 5169: 0x609A, - 5170: 0x6084, - 5171: 0x609B, - 5172: 0x6096, - 5173: 0x6097, - 5174: 0x6092, - 5175: 0x60A7, - 5176: 0x608B, - 5177: 0x60E1, - 5178: 0x60B8, - 5179: 0x60E0, - 5180: 0x60D3, - 5181: 0x60B4, - 5182: 0x5FF0, - 5183: 0x60BD, - 5184: 0x60C6, - 5185: 0x60B5, - 5186: 0x60D8, - 5187: 0x614D, - 5188: 0x6115, - 5189: 0x6106, - 5190: 0x60F6, - 5191: 0x60F7, - 5192: 0x6100, - 5193: 0x60F4, - 5194: 0x60FA, - 5195: 0x6103, - 5196: 0x6121, - 5197: 0x60FB, - 5198: 0x60F1, - 5199: 0x610D, - 5200: 0x610E, - 5201: 0x6147, - 5202: 0x613E, - 5203: 0x6128, - 5204: 0x6127, - 5205: 0x614A, - 5206: 0x613F, - 5207: 0x613C, - 5208: 0x612C, - 5209: 0x6134, - 5210: 0x613D, - 5211: 0x6142, - 5212: 0x6144, - 5213: 0x6173, - 5214: 0x6177, - 5215: 0x6158, - 5216: 0x6159, - 5217: 0x615A, - 5218: 0x616B, - 5219: 0x6174, - 5220: 0x616F, - 5221: 0x6165, - 5222: 0x6171, - 5223: 0x615F, - 5224: 0x615D, - 5225: 0x6153, - 5226: 0x6175, - 5227: 0x6199, - 5228: 0x6196, - 5229: 0x6187, - 5230: 0x61AC, - 5231: 0x6194, - 5232: 0x619A, - 5233: 0x618A, - 5234: 0x6191, - 5235: 0x61AB, - 5236: 0x61AE, - 5237: 0x61CC, - 5238: 0x61CA, - 5239: 0x61C9, - 5240: 0x61F7, - 5241: 0x61C8, - 5242: 0x61C3, - 5243: 0x61C6, - 5244: 0x61BA, - 5245: 0x61CB, - 5246: 0x7F79, - 5247: 0x61CD, - 5248: 0x61E6, - 5249: 0x61E3, - 5250: 0x61F6, - 5251: 0x61FA, - 5252: 0x61F4, - 5253: 0x61FF, - 5254: 0x61FD, - 5255: 0x61FC, - 5256: 0x61FE, - 5257: 0x6200, - 5258: 0x6208, - 5259: 0x6209, - 5260: 0x620D, - 5261: 0x620C, - 5262: 0x6214, - 5263: 0x621B, - 5264: 0x621E, - 5265: 0x6221, - 5266: 0x622A, - 5267: 0x622E, - 5268: 0x6230, - 5269: 0x6232, - 5270: 0x6233, - 5271: 0x6241, - 5272: 0x624E, - 5273: 0x625E, - 5274: 0x6263, - 5275: 0x625B, - 5276: 0x6260, - 5277: 0x6268, - 5278: 0x627C, - 5279: 0x6282, - 5280: 0x6289, - 5281: 0x627E, - 5282: 0x6292, - 5283: 0x6293, - 5284: 0x6296, - 5285: 0x62D4, - 5286: 0x6283, - 5287: 0x6294, - 5288: 0x62D7, - 5289: 0x62D1, - 5290: 0x62BB, - 5291: 0x62CF, - 5292: 0x62FF, - 5293: 0x62C6, - 5294: 0x64D4, - 5295: 0x62C8, - 5296: 0x62DC, - 5297: 0x62CC, - 5298: 0x62CA, - 5299: 0x62C2, - 5300: 0x62C7, - 5301: 0x629B, - 5302: 0x62C9, - 5303: 0x630C, - 5304: 0x62EE, - 5305: 0x62F1, - 5306: 0x6327, - 5307: 0x6302, - 5308: 0x6308, - 5309: 0x62EF, - 5310: 0x62F5, - 5311: 0x6350, - 5312: 0x633E, - 5313: 0x634D, - 5314: 0x641C, - 5315: 0x634F, - 5316: 0x6396, - 5317: 0x638E, - 5318: 0x6380, - 5319: 0x63AB, - 5320: 0x6376, - 5321: 0x63A3, - 5322: 0x638F, - 5323: 0x6389, - 5324: 0x639F, - 5325: 0x63B5, - 5326: 0x636B, - 5327: 0x6369, - 5328: 0x63BE, - 5329: 0x63E9, - 5330: 0x63C0, - 5331: 0x63C6, - 5332: 0x63E3, - 5333: 0x63C9, - 5334: 0x63D2, - 5335: 0x63F6, - 5336: 0x63C4, - 5337: 0x6416, - 5338: 0x6434, - 5339: 0x6406, - 5340: 0x6413, - 5341: 0x6426, - 5342: 0x6436, - 5343: 0x651D, - 5344: 0x6417, - 5345: 0x6428, - 5346: 0x640F, - 5347: 0x6467, - 5348: 0x646F, - 5349: 0x6476, - 5350: 0x644E, - 5351: 0x652A, - 5352: 0x6495, - 5353: 0x6493, - 5354: 0x64A5, - 5355: 0x64A9, - 5356: 0x6488, - 5357: 0x64BC, - 5358: 0x64DA, - 5359: 0x64D2, - 5360: 0x64C5, - 5361: 0x64C7, - 5362: 0x64BB, - 5363: 0x64D8, - 5364: 0x64C2, - 5365: 0x64F1, - 5366: 0x64E7, - 5367: 0x8209, - 5368: 0x64E0, - 5369: 0x64E1, - 5370: 0x62AC, - 5371: 0x64E3, - 5372: 0x64EF, - 5373: 0x652C, - 5374: 0x64F6, - 5375: 0x64F4, - 5376: 0x64F2, - 5377: 0x64FA, - 5378: 0x6500, - 5379: 0x64FD, - 5380: 0x6518, - 5381: 0x651C, - 5382: 0x6505, - 5383: 0x6524, - 5384: 0x6523, - 5385: 0x652B, - 5386: 0x6534, - 5387: 0x6535, - 5388: 0x6537, - 5389: 0x6536, - 5390: 0x6538, - 5391: 0x754B, - 5392: 0x6548, - 5393: 0x6556, - 5394: 0x6555, - 5395: 0x654D, - 5396: 0x6558, - 5397: 0x655E, - 5398: 0x655D, - 5399: 0x6572, - 5400: 0x6578, - 5401: 0x6582, - 5402: 0x6583, - 5403: 0x8B8A, - 5404: 0x659B, - 5405: 0x659F, - 5406: 0x65AB, - 5407: 0x65B7, - 5408: 0x65C3, - 5409: 0x65C6, - 5410: 0x65C1, - 5411: 0x65C4, - 5412: 0x65CC, - 5413: 0x65D2, - 5414: 0x65DB, - 5415: 0x65D9, - 5416: 0x65E0, - 5417: 0x65E1, - 5418: 0x65F1, - 5419: 0x6772, - 5420: 0x660A, - 5421: 0x6603, - 5422: 0x65FB, - 5423: 0x6773, - 5424: 0x6635, - 5425: 0x6636, - 5426: 0x6634, - 5427: 0x661C, - 5428: 0x664F, - 5429: 0x6644, - 5430: 0x6649, - 5431: 0x6641, - 5432: 0x665E, - 5433: 0x665D, - 5434: 0x6664, - 5435: 0x6667, - 5436: 0x6668, - 5437: 0x665F, - 5438: 0x6662, - 5439: 0x6670, - 5440: 0x6683, - 5441: 0x6688, - 5442: 0x668E, - 5443: 0x6689, - 5444: 0x6684, - 5445: 0x6698, - 5446: 0x669D, - 5447: 0x66C1, - 5448: 0x66B9, - 5449: 0x66C9, - 5450: 0x66BE, - 5451: 0x66BC, - 5452: 0x66C4, - 5453: 0x66B8, - 5454: 0x66D6, - 5455: 0x66DA, - 5456: 0x66E0, - 5457: 0x663F, - 5458: 0x66E6, - 5459: 0x66E9, - 5460: 0x66F0, - 5461: 0x66F5, - 5462: 0x66F7, - 5463: 0x670F, - 5464: 0x6716, - 5465: 0x671E, - 5466: 0x6726, - 5467: 0x6727, - 5468: 0x9738, - 5469: 0x672E, - 5470: 0x673F, - 5471: 0x6736, - 5472: 0x6741, - 5473: 0x6738, - 5474: 0x6737, - 5475: 0x6746, - 5476: 0x675E, - 5477: 0x6760, - 5478: 0x6759, - 5479: 0x6763, - 5480: 0x6764, - 5481: 0x6789, - 5482: 0x6770, - 5483: 0x67A9, - 5484: 0x677C, - 5485: 0x676A, - 5486: 0x678C, - 5487: 0x678B, - 5488: 0x67A6, - 5489: 0x67A1, - 5490: 0x6785, - 5491: 0x67B7, - 5492: 0x67EF, - 5493: 0x67B4, - 5494: 0x67EC, - 5495: 0x67B3, - 5496: 0x67E9, - 5497: 0x67B8, - 5498: 0x67E4, - 5499: 0x67DE, - 5500: 0x67DD, - 5501: 0x67E2, - 5502: 0x67EE, - 5503: 0x67B9, - 5504: 0x67CE, - 5505: 0x67C6, - 5506: 0x67E7, - 5507: 0x6A9C, - 5508: 0x681E, - 5509: 0x6846, - 5510: 0x6829, - 5511: 0x6840, - 5512: 0x684D, - 5513: 0x6832, - 5514: 0x684E, - 5515: 0x68B3, - 5516: 0x682B, - 5517: 0x6859, - 5518: 0x6863, - 5519: 0x6877, - 5520: 0x687F, - 5521: 0x689F, - 5522: 0x688F, - 5523: 0x68AD, - 5524: 0x6894, - 5525: 0x689D, - 5526: 0x689B, - 5527: 0x6883, - 5528: 0x6AAE, - 5529: 0x68B9, - 5530: 0x6874, - 5531: 0x68B5, - 5532: 0x68A0, - 5533: 0x68BA, - 5534: 0x690F, - 5535: 0x688D, - 5536: 0x687E, - 5537: 0x6901, - 5538: 0x68CA, - 5539: 0x6908, - 5540: 0x68D8, - 5541: 0x6922, - 5542: 0x6926, - 5543: 0x68E1, - 5544: 0x690C, - 5545: 0x68CD, - 5546: 0x68D4, - 5547: 0x68E7, - 5548: 0x68D5, - 5549: 0x6936, - 5550: 0x6912, - 5551: 0x6904, - 5552: 0x68D7, - 5553: 0x68E3, - 5554: 0x6925, - 5555: 0x68F9, - 5556: 0x68E0, - 5557: 0x68EF, - 5558: 0x6928, - 5559: 0x692A, - 5560: 0x691A, - 5561: 0x6923, - 5562: 0x6921, - 5563: 0x68C6, - 5564: 0x6979, - 5565: 0x6977, - 5566: 0x695C, - 5567: 0x6978, - 5568: 0x696B, - 5569: 0x6954, - 5570: 0x697E, - 5571: 0x696E, - 5572: 0x6939, - 5573: 0x6974, - 5574: 0x693D, - 5575: 0x6959, - 5576: 0x6930, - 5577: 0x6961, - 5578: 0x695E, - 5579: 0x695D, - 5580: 0x6981, - 5581: 0x696A, - 5582: 0x69B2, - 5583: 0x69AE, - 5584: 0x69D0, - 5585: 0x69BF, - 5586: 0x69C1, - 5587: 0x69D3, - 5588: 0x69BE, - 5589: 0x69CE, - 5590: 0x5BE8, - 5591: 0x69CA, - 5592: 0x69DD, - 5593: 0x69BB, - 5594: 0x69C3, - 5595: 0x69A7, - 5596: 0x6A2E, - 5597: 0x6991, - 5598: 0x69A0, - 5599: 0x699C, - 5600: 0x6995, - 5601: 0x69B4, - 5602: 0x69DE, - 5603: 0x69E8, - 5604: 0x6A02, - 5605: 0x6A1B, - 5606: 0x69FF, - 5607: 0x6B0A, - 5608: 0x69F9, - 5609: 0x69F2, - 5610: 0x69E7, - 5611: 0x6A05, - 5612: 0x69B1, - 5613: 0x6A1E, - 5614: 0x69ED, - 5615: 0x6A14, - 5616: 0x69EB, - 5617: 0x6A0A, - 5618: 0x6A12, - 5619: 0x6AC1, - 5620: 0x6A23, - 5621: 0x6A13, - 5622: 0x6A44, - 5623: 0x6A0C, - 5624: 0x6A72, - 5625: 0x6A36, - 5626: 0x6A78, - 5627: 0x6A47, - 5628: 0x6A62, - 5629: 0x6A59, - 5630: 0x6A66, - 5631: 0x6A48, - 5632: 0x6A38, - 5633: 0x6A22, - 5634: 0x6A90, - 5635: 0x6A8D, - 5636: 0x6AA0, - 5637: 0x6A84, - 5638: 0x6AA2, - 5639: 0x6AA3, - 5640: 0x6A97, - 5641: 0x8617, - 5642: 0x6ABB, - 5643: 0x6AC3, - 5644: 0x6AC2, - 5645: 0x6AB8, - 5646: 0x6AB3, - 5647: 0x6AAC, - 5648: 0x6ADE, - 5649: 0x6AD1, - 5650: 0x6ADF, - 5651: 0x6AAA, - 5652: 0x6ADA, - 5653: 0x6AEA, - 5654: 0x6AFB, - 5655: 0x6B05, - 5656: 0x8616, - 5657: 0x6AFA, - 5658: 0x6B12, - 5659: 0x6B16, - 5660: 0x9B31, - 5661: 0x6B1F, - 5662: 0x6B38, - 5663: 0x6B37, - 5664: 0x76DC, - 5665: 0x6B39, - 5666: 0x98EE, - 5667: 0x6B47, - 5668: 0x6B43, - 5669: 0x6B49, - 5670: 0x6B50, - 5671: 0x6B59, - 5672: 0x6B54, - 5673: 0x6B5B, - 5674: 0x6B5F, - 5675: 0x6B61, - 5676: 0x6B78, - 5677: 0x6B79, - 5678: 0x6B7F, - 5679: 0x6B80, - 5680: 0x6B84, - 5681: 0x6B83, - 5682: 0x6B8D, - 5683: 0x6B98, - 5684: 0x6B95, - 5685: 0x6B9E, - 5686: 0x6BA4, - 5687: 0x6BAA, - 5688: 0x6BAB, - 5689: 0x6BAF, - 5690: 0x6BB2, - 5691: 0x6BB1, - 5692: 0x6BB3, - 5693: 0x6BB7, - 5694: 0x6BBC, - 5695: 0x6BC6, - 5696: 0x6BCB, - 5697: 0x6BD3, - 5698: 0x6BDF, - 5699: 0x6BEC, - 5700: 0x6BEB, - 5701: 0x6BF3, - 5702: 0x6BEF, - 5703: 0x9EBE, - 5704: 0x6C08, - 5705: 0x6C13, - 5706: 0x6C14, - 5707: 0x6C1B, - 5708: 0x6C24, - 5709: 0x6C23, - 5710: 0x6C5E, - 5711: 0x6C55, - 5712: 0x6C62, - 5713: 0x6C6A, - 5714: 0x6C82, - 5715: 0x6C8D, - 5716: 0x6C9A, - 5717: 0x6C81, - 5718: 0x6C9B, - 5719: 0x6C7E, - 5720: 0x6C68, - 5721: 0x6C73, - 5722: 0x6C92, - 5723: 0x6C90, - 5724: 0x6CC4, - 5725: 0x6CF1, - 5726: 0x6CD3, - 5727: 0x6CBD, - 5728: 0x6CD7, - 5729: 0x6CC5, - 5730: 0x6CDD, - 5731: 0x6CAE, - 5732: 0x6CB1, - 5733: 0x6CBE, - 5734: 0x6CBA, - 5735: 0x6CDB, - 5736: 0x6CEF, - 5737: 0x6CD9, - 5738: 0x6CEA, - 5739: 0x6D1F, - 5740: 0x884D, - 5741: 0x6D36, - 5742: 0x6D2B, - 5743: 0x6D3D, - 5744: 0x6D38, - 5745: 0x6D19, - 5746: 0x6D35, - 5747: 0x6D33, - 5748: 0x6D12, - 5749: 0x6D0C, - 5750: 0x6D63, - 5751: 0x6D93, - 5752: 0x6D64, - 5753: 0x6D5A, - 5754: 0x6D79, - 5755: 0x6D59, - 5756: 0x6D8E, - 5757: 0x6D95, - 5758: 0x6FE4, - 5759: 0x6D85, - 5760: 0x6DF9, - 5761: 0x6E15, - 5762: 0x6E0A, - 5763: 0x6DB5, - 5764: 0x6DC7, - 5765: 0x6DE6, - 5766: 0x6DB8, - 5767: 0x6DC6, - 5768: 0x6DEC, - 5769: 0x6DDE, - 5770: 0x6DCC, - 5771: 0x6DE8, - 5772: 0x6DD2, - 5773: 0x6DC5, - 5774: 0x6DFA, - 5775: 0x6DD9, - 5776: 0x6DE4, - 5777: 0x6DD5, - 5778: 0x6DEA, - 5779: 0x6DEE, - 5780: 0x6E2D, - 5781: 0x6E6E, - 5782: 0x6E2E, - 5783: 0x6E19, - 5784: 0x6E72, - 5785: 0x6E5F, - 5786: 0x6E3E, - 5787: 0x6E23, - 5788: 0x6E6B, - 5789: 0x6E2B, - 5790: 0x6E76, - 5791: 0x6E4D, - 5792: 0x6E1F, - 5793: 0x6E43, - 5794: 0x6E3A, - 5795: 0x6E4E, - 5796: 0x6E24, - 5797: 0x6EFF, - 5798: 0x6E1D, - 5799: 0x6E38, - 5800: 0x6E82, - 5801: 0x6EAA, - 5802: 0x6E98, - 5803: 0x6EC9, - 5804: 0x6EB7, - 5805: 0x6ED3, - 5806: 0x6EBD, - 5807: 0x6EAF, - 5808: 0x6EC4, - 5809: 0x6EB2, - 5810: 0x6ED4, - 5811: 0x6ED5, - 5812: 0x6E8F, - 5813: 0x6EA5, - 5814: 0x6EC2, - 5815: 0x6E9F, - 5816: 0x6F41, - 5817: 0x6F11, - 5818: 0x704C, - 5819: 0x6EEC, - 5820: 0x6EF8, - 5821: 0x6EFE, - 5822: 0x6F3F, - 5823: 0x6EF2, - 5824: 0x6F31, - 5825: 0x6EEF, - 5826: 0x6F32, - 5827: 0x6ECC, - 5828: 0x6F3E, - 5829: 0x6F13, - 5830: 0x6EF7, - 5831: 0x6F86, - 5832: 0x6F7A, - 5833: 0x6F78, - 5834: 0x6F81, - 5835: 0x6F80, - 5836: 0x6F6F, - 5837: 0x6F5B, - 5838: 0x6FF3, - 5839: 0x6F6D, - 5840: 0x6F82, - 5841: 0x6F7C, - 5842: 0x6F58, - 5843: 0x6F8E, - 5844: 0x6F91, - 5845: 0x6FC2, - 5846: 0x6F66, - 5847: 0x6FB3, - 5848: 0x6FA3, - 5849: 0x6FA1, - 5850: 0x6FA4, - 5851: 0x6FB9, - 5852: 0x6FC6, - 5853: 0x6FAA, - 5854: 0x6FDF, - 5855: 0x6FD5, - 5856: 0x6FEC, - 5857: 0x6FD4, - 5858: 0x6FD8, - 5859: 0x6FF1, - 5860: 0x6FEE, - 5861: 0x6FDB, - 5862: 0x7009, - 5863: 0x700B, - 5864: 0x6FFA, - 5865: 0x7011, - 5866: 0x7001, - 5867: 0x700F, - 5868: 0x6FFE, - 5869: 0x701B, - 5870: 0x701A, - 5871: 0x6F74, - 5872: 0x701D, - 5873: 0x7018, - 5874: 0x701F, - 5875: 0x7030, - 5876: 0x703E, - 5877: 0x7032, - 5878: 0x7051, - 5879: 0x7063, - 5880: 0x7099, - 5881: 0x7092, - 5882: 0x70AF, - 5883: 0x70F1, - 5884: 0x70AC, - 5885: 0x70B8, - 5886: 0x70B3, - 5887: 0x70AE, - 5888: 0x70DF, - 5889: 0x70CB, - 5890: 0x70DD, - 5891: 0x70D9, - 5892: 0x7109, - 5893: 0x70FD, - 5894: 0x711C, - 5895: 0x7119, - 5896: 0x7165, - 5897: 0x7155, - 5898: 0x7188, - 5899: 0x7166, - 5900: 0x7162, - 5901: 0x714C, - 5902: 0x7156, - 5903: 0x716C, - 5904: 0x718F, - 5905: 0x71FB, - 5906: 0x7184, - 5907: 0x7195, - 5908: 0x71A8, - 5909: 0x71AC, - 5910: 0x71D7, - 5911: 0x71B9, - 5912: 0x71BE, - 5913: 0x71D2, - 5914: 0x71C9, - 5915: 0x71D4, - 5916: 0x71CE, - 5917: 0x71E0, - 5918: 0x71EC, - 5919: 0x71E7, - 5920: 0x71F5, - 5921: 0x71FC, - 5922: 0x71F9, - 5923: 0x71FF, - 5924: 0x720D, - 5925: 0x7210, - 5926: 0x721B, - 5927: 0x7228, - 5928: 0x722D, - 5929: 0x722C, - 5930: 0x7230, - 5931: 0x7232, - 5932: 0x723B, - 5933: 0x723C, - 5934: 0x723F, - 5935: 0x7240, - 5936: 0x7246, - 5937: 0x724B, - 5938: 0x7258, - 5939: 0x7274, - 5940: 0x727E, - 5941: 0x7282, - 5942: 0x7281, - 5943: 0x7287, - 5944: 0x7292, - 5945: 0x7296, - 5946: 0x72A2, - 5947: 0x72A7, - 5948: 0x72B9, - 5949: 0x72B2, - 5950: 0x72C3, - 5951: 0x72C6, - 5952: 0x72C4, - 5953: 0x72CE, - 5954: 0x72D2, - 5955: 0x72E2, - 5956: 0x72E0, - 5957: 0x72E1, - 5958: 0x72F9, - 5959: 0x72F7, - 5960: 0x500F, - 5961: 0x7317, - 5962: 0x730A, - 5963: 0x731C, - 5964: 0x7316, - 5965: 0x731D, - 5966: 0x7334, - 5967: 0x732F, - 5968: 0x7329, - 5969: 0x7325, - 5970: 0x733E, - 5971: 0x734E, - 5972: 0x734F, - 5973: 0x9ED8, - 5974: 0x7357, - 5975: 0x736A, - 5976: 0x7368, - 5977: 0x7370, - 5978: 0x7378, - 5979: 0x7375, - 5980: 0x737B, - 5981: 0x737A, - 5982: 0x73C8, - 5983: 0x73B3, - 5984: 0x73CE, - 5985: 0x73BB, - 5986: 0x73C0, - 5987: 0x73E5, - 5988: 0x73EE, - 5989: 0x73DE, - 5990: 0x74A2, - 5991: 0x7405, - 5992: 0x746F, - 5993: 0x7425, - 5994: 0x73F8, - 5995: 0x7432, - 5996: 0x743A, - 5997: 0x7455, - 5998: 0x743F, - 5999: 0x745F, - 6000: 0x7459, - 6001: 0x7441, - 6002: 0x745C, - 6003: 0x7469, - 6004: 0x7470, - 6005: 0x7463, - 6006: 0x746A, - 6007: 0x7476, - 6008: 0x747E, - 6009: 0x748B, - 6010: 0x749E, - 6011: 0x74A7, - 6012: 0x74CA, - 6013: 0x74CF, - 6014: 0x74D4, - 6015: 0x73F1, - 6016: 0x74E0, - 6017: 0x74E3, - 6018: 0x74E7, - 6019: 0x74E9, - 6020: 0x74EE, - 6021: 0x74F2, - 6022: 0x74F0, - 6023: 0x74F1, - 6024: 0x74F8, - 6025: 0x74F7, - 6026: 0x7504, - 6027: 0x7503, - 6028: 0x7505, - 6029: 0x750C, - 6030: 0x750E, - 6031: 0x750D, - 6032: 0x7515, - 6033: 0x7513, - 6034: 0x751E, - 6035: 0x7526, - 6036: 0x752C, - 6037: 0x753C, - 6038: 0x7544, - 6039: 0x754D, - 6040: 0x754A, - 6041: 0x7549, - 6042: 0x755B, - 6043: 0x7546, - 6044: 0x755A, - 6045: 0x7569, - 6046: 0x7564, - 6047: 0x7567, - 6048: 0x756B, - 6049: 0x756D, - 6050: 0x7578, - 6051: 0x7576, - 6052: 0x7586, - 6053: 0x7587, - 6054: 0x7574, - 6055: 0x758A, - 6056: 0x7589, - 6057: 0x7582, - 6058: 0x7594, - 6059: 0x759A, - 6060: 0x759D, - 6061: 0x75A5, - 6062: 0x75A3, - 6063: 0x75C2, - 6064: 0x75B3, - 6065: 0x75C3, - 6066: 0x75B5, - 6067: 0x75BD, - 6068: 0x75B8, - 6069: 0x75BC, - 6070: 0x75B1, - 6071: 0x75CD, - 6072: 0x75CA, - 6073: 0x75D2, - 6074: 0x75D9, - 6075: 0x75E3, - 6076: 0x75DE, - 6077: 0x75FE, - 6078: 0x75FF, - 6079: 0x75FC, - 6080: 0x7601, - 6081: 0x75F0, - 6082: 0x75FA, - 6083: 0x75F2, - 6084: 0x75F3, - 6085: 0x760B, - 6086: 0x760D, - 6087: 0x7609, - 6088: 0x761F, - 6089: 0x7627, - 6090: 0x7620, - 6091: 0x7621, - 6092: 0x7622, - 6093: 0x7624, - 6094: 0x7634, - 6095: 0x7630, - 6096: 0x763B, - 6097: 0x7647, - 6098: 0x7648, - 6099: 0x7646, - 6100: 0x765C, - 6101: 0x7658, - 6102: 0x7661, - 6103: 0x7662, - 6104: 0x7668, - 6105: 0x7669, - 6106: 0x766A, - 6107: 0x7667, - 6108: 0x766C, - 6109: 0x7670, - 6110: 0x7672, - 6111: 0x7676, - 6112: 0x7678, - 6113: 0x767C, - 6114: 0x7680, - 6115: 0x7683, - 6116: 0x7688, - 6117: 0x768B, - 6118: 0x768E, - 6119: 0x7696, - 6120: 0x7693, - 6121: 0x7699, - 6122: 0x769A, - 6123: 0x76B0, - 6124: 0x76B4, - 6125: 0x76B8, - 6126: 0x76B9, - 6127: 0x76BA, - 6128: 0x76C2, - 6129: 0x76CD, - 6130: 0x76D6, - 6131: 0x76D2, - 6132: 0x76DE, - 6133: 0x76E1, - 6134: 0x76E5, - 6135: 0x76E7, - 6136: 0x76EA, - 6137: 0x862F, - 6138: 0x76FB, - 6139: 0x7708, - 6140: 0x7707, - 6141: 0x7704, - 6142: 0x7729, - 6143: 0x7724, - 6144: 0x771E, - 6145: 0x7725, - 6146: 0x7726, - 6147: 0x771B, - 6148: 0x7737, - 6149: 0x7738, - 6150: 0x7747, - 6151: 0x775A, - 6152: 0x7768, - 6153: 0x776B, - 6154: 0x775B, - 6155: 0x7765, - 6156: 0x777F, - 6157: 0x777E, - 6158: 0x7779, - 6159: 0x778E, - 6160: 0x778B, - 6161: 0x7791, - 6162: 0x77A0, - 6163: 0x779E, - 6164: 0x77B0, - 6165: 0x77B6, - 6166: 0x77B9, - 6167: 0x77BF, - 6168: 0x77BC, - 6169: 0x77BD, - 6170: 0x77BB, - 6171: 0x77C7, - 6172: 0x77CD, - 6173: 0x77D7, - 6174: 0x77DA, - 6175: 0x77DC, - 6176: 0x77E3, - 6177: 0x77EE, - 6178: 0x77FC, - 6179: 0x780C, - 6180: 0x7812, - 6181: 0x7926, - 6182: 0x7820, - 6183: 0x792A, - 6184: 0x7845, - 6185: 0x788E, - 6186: 0x7874, - 6187: 0x7886, - 6188: 0x787C, - 6189: 0x789A, - 6190: 0x788C, - 6191: 0x78A3, - 6192: 0x78B5, - 6193: 0x78AA, - 6194: 0x78AF, - 6195: 0x78D1, - 6196: 0x78C6, - 6197: 0x78CB, - 6198: 0x78D4, - 6199: 0x78BE, - 6200: 0x78BC, - 6201: 0x78C5, - 6202: 0x78CA, - 6203: 0x78EC, - 6204: 0x78E7, - 6205: 0x78DA, - 6206: 0x78FD, - 6207: 0x78F4, - 6208: 0x7907, - 6209: 0x7912, - 6210: 0x7911, - 6211: 0x7919, - 6212: 0x792C, - 6213: 0x792B, - 6214: 0x7940, - 6215: 0x7960, - 6216: 0x7957, - 6217: 0x795F, - 6218: 0x795A, - 6219: 0x7955, - 6220: 0x7953, - 6221: 0x797A, - 6222: 0x797F, - 6223: 0x798A, - 6224: 0x799D, - 6225: 0x79A7, - 6226: 0x9F4B, - 6227: 0x79AA, - 6228: 0x79AE, - 6229: 0x79B3, - 6230: 0x79B9, - 6231: 0x79BA, - 6232: 0x79C9, - 6233: 0x79D5, - 6234: 0x79E7, - 6235: 0x79EC, - 6236: 0x79E1, - 6237: 0x79E3, - 6238: 0x7A08, - 6239: 0x7A0D, - 6240: 0x7A18, - 6241: 0x7A19, - 6242: 0x7A20, - 6243: 0x7A1F, - 6244: 0x7980, - 6245: 0x7A31, - 6246: 0x7A3B, - 6247: 0x7A3E, - 6248: 0x7A37, - 6249: 0x7A43, - 6250: 0x7A57, - 6251: 0x7A49, - 6252: 0x7A61, - 6253: 0x7A62, - 6254: 0x7A69, - 6255: 0x9F9D, - 6256: 0x7A70, - 6257: 0x7A79, - 6258: 0x7A7D, - 6259: 0x7A88, - 6260: 0x7A97, - 6261: 0x7A95, - 6262: 0x7A98, - 6263: 0x7A96, - 6264: 0x7AA9, - 6265: 0x7AC8, - 6266: 0x7AB0, - 6267: 0x7AB6, - 6268: 0x7AC5, - 6269: 0x7AC4, - 6270: 0x7ABF, - 6271: 0x9083, - 6272: 0x7AC7, - 6273: 0x7ACA, - 6274: 0x7ACD, - 6275: 0x7ACF, - 6276: 0x7AD5, - 6277: 0x7AD3, - 6278: 0x7AD9, - 6279: 0x7ADA, - 6280: 0x7ADD, - 6281: 0x7AE1, - 6282: 0x7AE2, - 6283: 0x7AE6, - 6284: 0x7AED, - 6285: 0x7AF0, - 6286: 0x7B02, - 6287: 0x7B0F, - 6288: 0x7B0A, - 6289: 0x7B06, - 6290: 0x7B33, - 6291: 0x7B18, - 6292: 0x7B19, - 6293: 0x7B1E, - 6294: 0x7B35, - 6295: 0x7B28, - 6296: 0x7B36, - 6297: 0x7B50, - 6298: 0x7B7A, - 6299: 0x7B04, - 6300: 0x7B4D, - 6301: 0x7B0B, - 6302: 0x7B4C, - 6303: 0x7B45, - 6304: 0x7B75, - 6305: 0x7B65, - 6306: 0x7B74, - 6307: 0x7B67, - 6308: 0x7B70, - 6309: 0x7B71, - 6310: 0x7B6C, - 6311: 0x7B6E, - 6312: 0x7B9D, - 6313: 0x7B98, - 6314: 0x7B9F, - 6315: 0x7B8D, - 6316: 0x7B9C, - 6317: 0x7B9A, - 6318: 0x7B8B, - 6319: 0x7B92, - 6320: 0x7B8F, - 6321: 0x7B5D, - 6322: 0x7B99, - 6323: 0x7BCB, - 6324: 0x7BC1, - 6325: 0x7BCC, - 6326: 0x7BCF, - 6327: 0x7BB4, - 6328: 0x7BC6, - 6329: 0x7BDD, - 6330: 0x7BE9, - 6331: 0x7C11, - 6332: 0x7C14, - 6333: 0x7BE6, - 6334: 0x7BE5, - 6335: 0x7C60, - 6336: 0x7C00, - 6337: 0x7C07, - 6338: 0x7C13, - 6339: 0x7BF3, - 6340: 0x7BF7, - 6341: 0x7C17, - 6342: 0x7C0D, - 6343: 0x7BF6, - 6344: 0x7C23, - 6345: 0x7C27, - 6346: 0x7C2A, - 6347: 0x7C1F, - 6348: 0x7C37, - 6349: 0x7C2B, - 6350: 0x7C3D, - 6351: 0x7C4C, - 6352: 0x7C43, - 6353: 0x7C54, - 6354: 0x7C4F, - 6355: 0x7C40, - 6356: 0x7C50, - 6357: 0x7C58, - 6358: 0x7C5F, - 6359: 0x7C64, - 6360: 0x7C56, - 6361: 0x7C65, - 6362: 0x7C6C, - 6363: 0x7C75, - 6364: 0x7C83, - 6365: 0x7C90, - 6366: 0x7CA4, - 6367: 0x7CAD, - 6368: 0x7CA2, - 6369: 0x7CAB, - 6370: 0x7CA1, - 6371: 0x7CA8, - 6372: 0x7CB3, - 6373: 0x7CB2, - 6374: 0x7CB1, - 6375: 0x7CAE, - 6376: 0x7CB9, - 6377: 0x7CBD, - 6378: 0x7CC0, - 6379: 0x7CC5, - 6380: 0x7CC2, - 6381: 0x7CD8, - 6382: 0x7CD2, - 6383: 0x7CDC, - 6384: 0x7CE2, - 6385: 0x9B3B, - 6386: 0x7CEF, - 6387: 0x7CF2, - 6388: 0x7CF4, - 6389: 0x7CF6, - 6390: 0x7CFA, - 6391: 0x7D06, - 6392: 0x7D02, - 6393: 0x7D1C, - 6394: 0x7D15, - 6395: 0x7D0A, - 6396: 0x7D45, - 6397: 0x7D4B, - 6398: 0x7D2E, - 6399: 0x7D32, - 6400: 0x7D3F, - 6401: 0x7D35, - 6402: 0x7D46, - 6403: 0x7D73, - 6404: 0x7D56, - 6405: 0x7D4E, - 6406: 0x7D72, - 6407: 0x7D68, - 6408: 0x7D6E, - 6409: 0x7D4F, - 6410: 0x7D63, - 6411: 0x7D93, - 6412: 0x7D89, - 6413: 0x7D5B, - 6414: 0x7D8F, - 6415: 0x7D7D, - 6416: 0x7D9B, - 6417: 0x7DBA, - 6418: 0x7DAE, - 6419: 0x7DA3, - 6420: 0x7DB5, - 6421: 0x7DC7, - 6422: 0x7DBD, - 6423: 0x7DAB, - 6424: 0x7E3D, - 6425: 0x7DA2, - 6426: 0x7DAF, - 6427: 0x7DDC, - 6428: 0x7DB8, - 6429: 0x7D9F, - 6430: 0x7DB0, - 6431: 0x7DD8, - 6432: 0x7DDD, - 6433: 0x7DE4, - 6434: 0x7DDE, - 6435: 0x7DFB, - 6436: 0x7DF2, - 6437: 0x7DE1, - 6438: 0x7E05, - 6439: 0x7E0A, - 6440: 0x7E23, - 6441: 0x7E21, - 6442: 0x7E12, - 6443: 0x7E31, - 6444: 0x7E1F, - 6445: 0x7E09, - 6446: 0x7E0B, - 6447: 0x7E22, - 6448: 0x7E46, - 6449: 0x7E66, - 6450: 0x7E3B, - 6451: 0x7E35, - 6452: 0x7E39, - 6453: 0x7E43, - 6454: 0x7E37, - 6455: 0x7E32, - 6456: 0x7E3A, - 6457: 0x7E67, - 6458: 0x7E5D, - 6459: 0x7E56, - 6460: 0x7E5E, - 6461: 0x7E59, - 6462: 0x7E5A, - 6463: 0x7E79, - 6464: 0x7E6A, - 6465: 0x7E69, - 6466: 0x7E7C, - 6467: 0x7E7B, - 6468: 0x7E83, - 6469: 0x7DD5, - 6470: 0x7E7D, - 6471: 0x8FAE, - 6472: 0x7E7F, - 6473: 0x7E88, - 6474: 0x7E89, - 6475: 0x7E8C, - 6476: 0x7E92, - 6477: 0x7E90, - 6478: 0x7E93, - 6479: 0x7E94, - 6480: 0x7E96, - 6481: 0x7E8E, - 6482: 0x7E9B, - 6483: 0x7E9C, - 6484: 0x7F38, - 6485: 0x7F3A, - 6486: 0x7F45, - 6487: 0x7F4C, - 6488: 0x7F4D, - 6489: 0x7F4E, - 6490: 0x7F50, - 6491: 0x7F51, - 6492: 0x7F55, - 6493: 0x7F54, - 6494: 0x7F58, - 6495: 0x7F5F, - 6496: 0x7F60, - 6497: 0x7F68, - 6498: 0x7F69, - 6499: 0x7F67, - 6500: 0x7F78, - 6501: 0x7F82, - 6502: 0x7F86, - 6503: 0x7F83, - 6504: 0x7F88, - 6505: 0x7F87, - 6506: 0x7F8C, - 6507: 0x7F94, - 6508: 0x7F9E, - 6509: 0x7F9D, - 6510: 0x7F9A, - 6511: 0x7FA3, - 6512: 0x7FAF, - 6513: 0x7FB2, - 6514: 0x7FB9, - 6515: 0x7FAE, - 6516: 0x7FB6, - 6517: 0x7FB8, - 6518: 0x8B71, - 6519: 0x7FC5, - 6520: 0x7FC6, - 6521: 0x7FCA, - 6522: 0x7FD5, - 6523: 0x7FD4, - 6524: 0x7FE1, - 6525: 0x7FE6, - 6526: 0x7FE9, - 6527: 0x7FF3, - 6528: 0x7FF9, - 6529: 0x98DC, - 6530: 0x8006, - 6531: 0x8004, - 6532: 0x800B, - 6533: 0x8012, - 6534: 0x8018, - 6535: 0x8019, - 6536: 0x801C, - 6537: 0x8021, - 6538: 0x8028, - 6539: 0x803F, - 6540: 0x803B, - 6541: 0x804A, - 6542: 0x8046, - 6543: 0x8052, - 6544: 0x8058, - 6545: 0x805A, - 6546: 0x805F, - 6547: 0x8062, - 6548: 0x8068, - 6549: 0x8073, - 6550: 0x8072, - 6551: 0x8070, - 6552: 0x8076, - 6553: 0x8079, - 6554: 0x807D, - 6555: 0x807F, - 6556: 0x8084, - 6557: 0x8086, - 6558: 0x8085, - 6559: 0x809B, - 6560: 0x8093, - 6561: 0x809A, - 6562: 0x80AD, - 6563: 0x5190, - 6564: 0x80AC, - 6565: 0x80DB, - 6566: 0x80E5, - 6567: 0x80D9, - 6568: 0x80DD, - 6569: 0x80C4, - 6570: 0x80DA, - 6571: 0x80D6, - 6572: 0x8109, - 6573: 0x80EF, - 6574: 0x80F1, - 6575: 0x811B, - 6576: 0x8129, - 6577: 0x8123, - 6578: 0x812F, - 6579: 0x814B, - 6580: 0x968B, - 6581: 0x8146, - 6582: 0x813E, - 6583: 0x8153, - 6584: 0x8151, - 6585: 0x80FC, - 6586: 0x8171, - 6587: 0x816E, - 6588: 0x8165, - 6589: 0x8166, - 6590: 0x8174, - 6591: 0x8183, - 6592: 0x8188, - 6593: 0x818A, - 6594: 0x8180, - 6595: 0x8182, - 6596: 0x81A0, - 6597: 0x8195, - 6598: 0x81A4, - 6599: 0x81A3, - 6600: 0x815F, - 6601: 0x8193, - 6602: 0x81A9, - 6603: 0x81B0, - 6604: 0x81B5, - 6605: 0x81BE, - 6606: 0x81B8, - 6607: 0x81BD, - 6608: 0x81C0, - 6609: 0x81C2, - 6610: 0x81BA, - 6611: 0x81C9, - 6612: 0x81CD, - 6613: 0x81D1, - 6614: 0x81D9, - 6615: 0x81D8, - 6616: 0x81C8, - 6617: 0x81DA, - 6618: 0x81DF, - 6619: 0x81E0, - 6620: 0x81E7, - 6621: 0x81FA, - 6622: 0x81FB, - 6623: 0x81FE, - 6624: 0x8201, - 6625: 0x8202, - 6626: 0x8205, - 6627: 0x8207, - 6628: 0x820A, - 6629: 0x820D, - 6630: 0x8210, - 6631: 0x8216, - 6632: 0x8229, - 6633: 0x822B, - 6634: 0x8238, - 6635: 0x8233, - 6636: 0x8240, - 6637: 0x8259, - 6638: 0x8258, - 6639: 0x825D, - 6640: 0x825A, - 6641: 0x825F, - 6642: 0x8264, - 6643: 0x8262, - 6644: 0x8268, - 6645: 0x826A, - 6646: 0x826B, - 6647: 0x822E, - 6648: 0x8271, - 6649: 0x8277, - 6650: 0x8278, - 6651: 0x827E, - 6652: 0x828D, - 6653: 0x8292, - 6654: 0x82AB, - 6655: 0x829F, - 6656: 0x82BB, - 6657: 0x82AC, - 6658: 0x82E1, - 6659: 0x82E3, - 6660: 0x82DF, - 6661: 0x82D2, - 6662: 0x82F4, - 6663: 0x82F3, - 6664: 0x82FA, - 6665: 0x8393, - 6666: 0x8303, - 6667: 0x82FB, - 6668: 0x82F9, - 6669: 0x82DE, - 6670: 0x8306, - 6671: 0x82DC, - 6672: 0x8309, - 6673: 0x82D9, - 6674: 0x8335, - 6675: 0x8334, - 6676: 0x8316, - 6677: 0x8332, - 6678: 0x8331, - 6679: 0x8340, - 6680: 0x8339, - 6681: 0x8350, - 6682: 0x8345, - 6683: 0x832F, - 6684: 0x832B, - 6685: 0x8317, - 6686: 0x8318, - 6687: 0x8385, - 6688: 0x839A, - 6689: 0x83AA, - 6690: 0x839F, - 6691: 0x83A2, - 6692: 0x8396, - 6693: 0x8323, - 6694: 0x838E, - 6695: 0x8387, - 6696: 0x838A, - 6697: 0x837C, - 6698: 0x83B5, - 6699: 0x8373, - 6700: 0x8375, - 6701: 0x83A0, - 6702: 0x8389, - 6703: 0x83A8, - 6704: 0x83F4, - 6705: 0x8413, - 6706: 0x83EB, - 6707: 0x83CE, - 6708: 0x83FD, - 6709: 0x8403, - 6710: 0x83D8, - 6711: 0x840B, - 6712: 0x83C1, - 6713: 0x83F7, - 6714: 0x8407, - 6715: 0x83E0, - 6716: 0x83F2, - 6717: 0x840D, - 6718: 0x8422, - 6719: 0x8420, - 6720: 0x83BD, - 6721: 0x8438, - 6722: 0x8506, - 6723: 0x83FB, - 6724: 0x846D, - 6725: 0x842A, - 6726: 0x843C, - 6727: 0x855A, - 6728: 0x8484, - 6729: 0x8477, - 6730: 0x846B, - 6731: 0x84AD, - 6732: 0x846E, - 6733: 0x8482, - 6734: 0x8469, - 6735: 0x8446, - 6736: 0x842C, - 6737: 0x846F, - 6738: 0x8479, - 6739: 0x8435, - 6740: 0x84CA, - 6741: 0x8462, - 6742: 0x84B9, - 6743: 0x84BF, - 6744: 0x849F, - 6745: 0x84D9, - 6746: 0x84CD, - 6747: 0x84BB, - 6748: 0x84DA, - 6749: 0x84D0, - 6750: 0x84C1, - 6751: 0x84C6, - 6752: 0x84D6, - 6753: 0x84A1, - 6754: 0x8521, - 6755: 0x84FF, - 6756: 0x84F4, - 6757: 0x8517, - 6758: 0x8518, - 6759: 0x852C, - 6760: 0x851F, - 6761: 0x8515, - 6762: 0x8514, - 6763: 0x84FC, - 6764: 0x8540, - 6765: 0x8563, - 6766: 0x8558, - 6767: 0x8548, - 6768: 0x8541, - 6769: 0x8602, - 6770: 0x854B, - 6771: 0x8555, - 6772: 0x8580, - 6773: 0x85A4, - 6774: 0x8588, - 6775: 0x8591, - 6776: 0x858A, - 6777: 0x85A8, - 6778: 0x856D, - 6779: 0x8594, - 6780: 0x859B, - 6781: 0x85EA, - 6782: 0x8587, - 6783: 0x859C, - 6784: 0x8577, - 6785: 0x857E, - 6786: 0x8590, - 6787: 0x85C9, - 6788: 0x85BA, - 6789: 0x85CF, - 6790: 0x85B9, - 6791: 0x85D0, - 6792: 0x85D5, - 6793: 0x85DD, - 6794: 0x85E5, - 6795: 0x85DC, - 6796: 0x85F9, - 6797: 0x860A, - 6798: 0x8613, - 6799: 0x860B, - 6800: 0x85FE, - 6801: 0x85FA, - 6802: 0x8606, - 6803: 0x8622, - 6804: 0x861A, - 6805: 0x8630, - 6806: 0x863F, - 6807: 0x864D, - 6808: 0x4E55, - 6809: 0x8654, - 6810: 0x865F, - 6811: 0x8667, - 6812: 0x8671, - 6813: 0x8693, - 6814: 0x86A3, - 6815: 0x86A9, - 6816: 0x86AA, - 6817: 0x868B, - 6818: 0x868C, - 6819: 0x86B6, - 6820: 0x86AF, - 6821: 0x86C4, - 6822: 0x86C6, - 6823: 0x86B0, - 6824: 0x86C9, - 6825: 0x8823, - 6826: 0x86AB, - 6827: 0x86D4, - 6828: 0x86DE, - 6829: 0x86E9, - 6830: 0x86EC, - 6831: 0x86DF, - 6832: 0x86DB, - 6833: 0x86EF, - 6834: 0x8712, - 6835: 0x8706, - 6836: 0x8708, - 6837: 0x8700, - 6838: 0x8703, - 6839: 0x86FB, - 6840: 0x8711, - 6841: 0x8709, - 6842: 0x870D, - 6843: 0x86F9, - 6844: 0x870A, - 6845: 0x8734, - 6846: 0x873F, - 6847: 0x8737, - 6848: 0x873B, - 6849: 0x8725, - 6850: 0x8729, - 6851: 0x871A, - 6852: 0x8760, - 6853: 0x875F, - 6854: 0x8778, - 6855: 0x874C, - 6856: 0x874E, - 6857: 0x8774, - 6858: 0x8757, - 6859: 0x8768, - 6860: 0x876E, - 6861: 0x8759, - 6862: 0x8753, - 6863: 0x8763, - 6864: 0x876A, - 6865: 0x8805, - 6866: 0x87A2, - 6867: 0x879F, - 6868: 0x8782, - 6869: 0x87AF, - 6870: 0x87CB, - 6871: 0x87BD, - 6872: 0x87C0, - 6873: 0x87D0, - 6874: 0x96D6, - 6875: 0x87AB, - 6876: 0x87C4, - 6877: 0x87B3, - 6878: 0x87C7, - 6879: 0x87C6, - 6880: 0x87BB, - 6881: 0x87EF, - 6882: 0x87F2, - 6883: 0x87E0, - 6884: 0x880F, - 6885: 0x880D, - 6886: 0x87FE, - 6887: 0x87F6, - 6888: 0x87F7, - 6889: 0x880E, - 6890: 0x87D2, - 6891: 0x8811, - 6892: 0x8816, - 6893: 0x8815, - 6894: 0x8822, - 6895: 0x8821, - 6896: 0x8831, - 6897: 0x8836, - 6898: 0x8839, - 6899: 0x8827, - 6900: 0x883B, - 6901: 0x8844, - 6902: 0x8842, - 6903: 0x8852, - 6904: 0x8859, - 6905: 0x885E, - 6906: 0x8862, - 6907: 0x886B, - 6908: 0x8881, - 6909: 0x887E, - 6910: 0x889E, - 6911: 0x8875, - 6912: 0x887D, - 6913: 0x88B5, - 6914: 0x8872, - 6915: 0x8882, - 6916: 0x8897, - 6917: 0x8892, - 6918: 0x88AE, - 6919: 0x8899, - 6920: 0x88A2, - 6921: 0x888D, - 6922: 0x88A4, - 6923: 0x88B0, - 6924: 0x88BF, - 6925: 0x88B1, - 6926: 0x88C3, - 6927: 0x88C4, - 6928: 0x88D4, - 6929: 0x88D8, - 6930: 0x88D9, - 6931: 0x88DD, - 6932: 0x88F9, - 6933: 0x8902, - 6934: 0x88FC, - 6935: 0x88F4, - 6936: 0x88E8, - 6937: 0x88F2, - 6938: 0x8904, - 6939: 0x890C, - 6940: 0x890A, - 6941: 0x8913, - 6942: 0x8943, - 6943: 0x891E, - 6944: 0x8925, - 6945: 0x892A, - 6946: 0x892B, - 6947: 0x8941, - 6948: 0x8944, - 6949: 0x893B, - 6950: 0x8936, - 6951: 0x8938, - 6952: 0x894C, - 6953: 0x891D, - 6954: 0x8960, - 6955: 0x895E, - 6956: 0x8966, - 6957: 0x8964, - 6958: 0x896D, - 6959: 0x896A, - 6960: 0x896F, - 6961: 0x8974, - 6962: 0x8977, - 6963: 0x897E, - 6964: 0x8983, - 6965: 0x8988, - 6966: 0x898A, - 6967: 0x8993, - 6968: 0x8998, - 6969: 0x89A1, - 6970: 0x89A9, - 6971: 0x89A6, - 6972: 0x89AC, - 6973: 0x89AF, - 6974: 0x89B2, - 6975: 0x89BA, - 6976: 0x89BD, - 6977: 0x89BF, - 6978: 0x89C0, - 6979: 0x89DA, - 6980: 0x89DC, - 6981: 0x89DD, - 6982: 0x89E7, - 6983: 0x89F4, - 6984: 0x89F8, - 6985: 0x8A03, - 6986: 0x8A16, - 6987: 0x8A10, - 6988: 0x8A0C, - 6989: 0x8A1B, - 6990: 0x8A1D, - 6991: 0x8A25, - 6992: 0x8A36, - 6993: 0x8A41, - 6994: 0x8A5B, - 6995: 0x8A52, - 6996: 0x8A46, - 6997: 0x8A48, - 6998: 0x8A7C, - 6999: 0x8A6D, - 7000: 0x8A6C, - 7001: 0x8A62, - 7002: 0x8A85, - 7003: 0x8A82, - 7004: 0x8A84, - 7005: 0x8AA8, - 7006: 0x8AA1, - 7007: 0x8A91, - 7008: 0x8AA5, - 7009: 0x8AA6, - 7010: 0x8A9A, - 7011: 0x8AA3, - 7012: 0x8AC4, - 7013: 0x8ACD, - 7014: 0x8AC2, - 7015: 0x8ADA, - 7016: 0x8AEB, - 7017: 0x8AF3, - 7018: 0x8AE7, - 7019: 0x8AE4, - 7020: 0x8AF1, - 7021: 0x8B14, - 7022: 0x8AE0, - 7023: 0x8AE2, - 7024: 0x8AF7, - 7025: 0x8ADE, - 7026: 0x8ADB, - 7027: 0x8B0C, - 7028: 0x8B07, - 7029: 0x8B1A, - 7030: 0x8AE1, - 7031: 0x8B16, - 7032: 0x8B10, - 7033: 0x8B17, - 7034: 0x8B20, - 7035: 0x8B33, - 7036: 0x97AB, - 7037: 0x8B26, - 7038: 0x8B2B, - 7039: 0x8B3E, - 7040: 0x8B28, - 7041: 0x8B41, - 7042: 0x8B4C, - 7043: 0x8B4F, - 7044: 0x8B4E, - 7045: 0x8B49, - 7046: 0x8B56, - 7047: 0x8B5B, - 7048: 0x8B5A, - 7049: 0x8B6B, - 7050: 0x8B5F, - 7051: 0x8B6C, - 7052: 0x8B6F, - 7053: 0x8B74, - 7054: 0x8B7D, - 7055: 0x8B80, - 7056: 0x8B8C, - 7057: 0x8B8E, - 7058: 0x8B92, - 7059: 0x8B93, - 7060: 0x8B96, - 7061: 0x8B99, - 7062: 0x8B9A, - 7063: 0x8C3A, - 7064: 0x8C41, - 7065: 0x8C3F, - 7066: 0x8C48, - 7067: 0x8C4C, - 7068: 0x8C4E, - 7069: 0x8C50, - 7070: 0x8C55, - 7071: 0x8C62, - 7072: 0x8C6C, - 7073: 0x8C78, - 7074: 0x8C7A, - 7075: 0x8C82, - 7076: 0x8C89, - 7077: 0x8C85, - 7078: 0x8C8A, - 7079: 0x8C8D, - 7080: 0x8C8E, - 7081: 0x8C94, - 7082: 0x8C7C, - 7083: 0x8C98, - 7084: 0x621D, - 7085: 0x8CAD, - 7086: 0x8CAA, - 7087: 0x8CBD, - 7088: 0x8CB2, - 7089: 0x8CB3, - 7090: 0x8CAE, - 7091: 0x8CB6, - 7092: 0x8CC8, - 7093: 0x8CC1, - 7094: 0x8CE4, - 7095: 0x8CE3, - 7096: 0x8CDA, - 7097: 0x8CFD, - 7098: 0x8CFA, - 7099: 0x8CFB, - 7100: 0x8D04, - 7101: 0x8D05, - 7102: 0x8D0A, - 7103: 0x8D07, - 7104: 0x8D0F, - 7105: 0x8D0D, - 7106: 0x8D10, - 7107: 0x9F4E, - 7108: 0x8D13, - 7109: 0x8CCD, - 7110: 0x8D14, - 7111: 0x8D16, - 7112: 0x8D67, - 7113: 0x8D6D, - 7114: 0x8D71, - 7115: 0x8D73, - 7116: 0x8D81, - 7117: 0x8D99, - 7118: 0x8DC2, - 7119: 0x8DBE, - 7120: 0x8DBA, - 7121: 0x8DCF, - 7122: 0x8DDA, - 7123: 0x8DD6, - 7124: 0x8DCC, - 7125: 0x8DDB, - 7126: 0x8DCB, - 7127: 0x8DEA, - 7128: 0x8DEB, - 7129: 0x8DDF, - 7130: 0x8DE3, - 7131: 0x8DFC, - 7132: 0x8E08, - 7133: 0x8E09, - 7134: 0x8DFF, - 7135: 0x8E1D, - 7136: 0x8E1E, - 7137: 0x8E10, - 7138: 0x8E1F, - 7139: 0x8E42, - 7140: 0x8E35, - 7141: 0x8E30, - 7142: 0x8E34, - 7143: 0x8E4A, - 7144: 0x8E47, - 7145: 0x8E49, - 7146: 0x8E4C, - 7147: 0x8E50, - 7148: 0x8E48, - 7149: 0x8E59, - 7150: 0x8E64, - 7151: 0x8E60, - 7152: 0x8E2A, - 7153: 0x8E63, - 7154: 0x8E55, - 7155: 0x8E76, - 7156: 0x8E72, - 7157: 0x8E7C, - 7158: 0x8E81, - 7159: 0x8E87, - 7160: 0x8E85, - 7161: 0x8E84, - 7162: 0x8E8B, - 7163: 0x8E8A, - 7164: 0x8E93, - 7165: 0x8E91, - 7166: 0x8E94, - 7167: 0x8E99, - 7168: 0x8EAA, - 7169: 0x8EA1, - 7170: 0x8EAC, - 7171: 0x8EB0, - 7172: 0x8EC6, - 7173: 0x8EB1, - 7174: 0x8EBE, - 7175: 0x8EC5, - 7176: 0x8EC8, - 7177: 0x8ECB, - 7178: 0x8EDB, - 7179: 0x8EE3, - 7180: 0x8EFC, - 7181: 0x8EFB, - 7182: 0x8EEB, - 7183: 0x8EFE, - 7184: 0x8F0A, - 7185: 0x8F05, - 7186: 0x8F15, - 7187: 0x8F12, - 7188: 0x8F19, - 7189: 0x8F13, - 7190: 0x8F1C, - 7191: 0x8F1F, - 7192: 0x8F1B, - 7193: 0x8F0C, - 7194: 0x8F26, - 7195: 0x8F33, - 7196: 0x8F3B, - 7197: 0x8F39, - 7198: 0x8F45, - 7199: 0x8F42, - 7200: 0x8F3E, - 7201: 0x8F4C, - 7202: 0x8F49, - 7203: 0x8F46, - 7204: 0x8F4E, - 7205: 0x8F57, - 7206: 0x8F5C, - 7207: 0x8F62, - 7208: 0x8F63, - 7209: 0x8F64, - 7210: 0x8F9C, - 7211: 0x8F9F, - 7212: 0x8FA3, - 7213: 0x8FAD, - 7214: 0x8FAF, - 7215: 0x8FB7, - 7216: 0x8FDA, - 7217: 0x8FE5, - 7218: 0x8FE2, - 7219: 0x8FEA, - 7220: 0x8FEF, - 7221: 0x9087, - 7222: 0x8FF4, - 7223: 0x9005, - 7224: 0x8FF9, - 7225: 0x8FFA, - 7226: 0x9011, - 7227: 0x9015, - 7228: 0x9021, - 7229: 0x900D, - 7230: 0x901E, - 7231: 0x9016, - 7232: 0x900B, - 7233: 0x9027, - 7234: 0x9036, - 7235: 0x9035, - 7236: 0x9039, - 7237: 0x8FF8, - 7238: 0x904F, - 7239: 0x9050, - 7240: 0x9051, - 7241: 0x9052, - 7242: 0x900E, - 7243: 0x9049, - 7244: 0x903E, - 7245: 0x9056, - 7246: 0x9058, - 7247: 0x905E, - 7248: 0x9068, - 7249: 0x906F, - 7250: 0x9076, - 7251: 0x96A8, - 7252: 0x9072, - 7253: 0x9082, - 7254: 0x907D, - 7255: 0x9081, - 7256: 0x9080, - 7257: 0x908A, - 7258: 0x9089, - 7259: 0x908F, - 7260: 0x90A8, - 7261: 0x90AF, - 7262: 0x90B1, - 7263: 0x90B5, - 7264: 0x90E2, - 7265: 0x90E4, - 7266: 0x6248, - 7267: 0x90DB, - 7268: 0x9102, - 7269: 0x9112, - 7270: 0x9119, - 7271: 0x9132, - 7272: 0x9130, - 7273: 0x914A, - 7274: 0x9156, - 7275: 0x9158, - 7276: 0x9163, - 7277: 0x9165, - 7278: 0x9169, - 7279: 0x9173, - 7280: 0x9172, - 7281: 0x918B, - 7282: 0x9189, - 7283: 0x9182, - 7284: 0x91A2, - 7285: 0x91AB, - 7286: 0x91AF, - 7287: 0x91AA, - 7288: 0x91B5, - 7289: 0x91B4, - 7290: 0x91BA, - 7291: 0x91C0, - 7292: 0x91C1, - 7293: 0x91C9, - 7294: 0x91CB, - 7295: 0x91D0, - 7296: 0x91D6, - 7297: 0x91DF, - 7298: 0x91E1, - 7299: 0x91DB, - 7300: 0x91FC, - 7301: 0x91F5, - 7302: 0x91F6, - 7303: 0x921E, - 7304: 0x91FF, - 7305: 0x9214, - 7306: 0x922C, - 7307: 0x9215, - 7308: 0x9211, - 7309: 0x925E, - 7310: 0x9257, - 7311: 0x9245, - 7312: 0x9249, - 7313: 0x9264, - 7314: 0x9248, - 7315: 0x9295, - 7316: 0x923F, - 7317: 0x924B, - 7318: 0x9250, - 7319: 0x929C, - 7320: 0x9296, - 7321: 0x9293, - 7322: 0x929B, - 7323: 0x925A, - 7324: 0x92CF, - 7325: 0x92B9, - 7326: 0x92B7, - 7327: 0x92E9, - 7328: 0x930F, - 7329: 0x92FA, - 7330: 0x9344, - 7331: 0x932E, - 7332: 0x9319, - 7333: 0x9322, - 7334: 0x931A, - 7335: 0x9323, - 7336: 0x933A, - 7337: 0x9335, - 7338: 0x933B, - 7339: 0x935C, - 7340: 0x9360, - 7341: 0x937C, - 7342: 0x936E, - 7343: 0x9356, - 7344: 0x93B0, - 7345: 0x93AC, - 7346: 0x93AD, - 7347: 0x9394, - 7348: 0x93B9, - 7349: 0x93D6, - 7350: 0x93D7, - 7351: 0x93E8, - 7352: 0x93E5, - 7353: 0x93D8, - 7354: 0x93C3, - 7355: 0x93DD, - 7356: 0x93D0, - 7357: 0x93C8, - 7358: 0x93E4, - 7359: 0x941A, - 7360: 0x9414, - 7361: 0x9413, - 7362: 0x9403, - 7363: 0x9407, - 7364: 0x9410, - 7365: 0x9436, - 7366: 0x942B, - 7367: 0x9435, - 7368: 0x9421, - 7369: 0x943A, - 7370: 0x9441, - 7371: 0x9452, - 7372: 0x9444, - 7373: 0x945B, - 7374: 0x9460, - 7375: 0x9462, - 7376: 0x945E, - 7377: 0x946A, - 7378: 0x9229, - 7379: 0x9470, - 7380: 0x9475, - 7381: 0x9477, - 7382: 0x947D, - 7383: 0x945A, - 7384: 0x947C, - 7385: 0x947E, - 7386: 0x9481, - 7387: 0x947F, - 7388: 0x9582, - 7389: 0x9587, - 7390: 0x958A, - 7391: 0x9594, - 7392: 0x9596, - 7393: 0x9598, - 7394: 0x9599, - 7395: 0x95A0, - 7396: 0x95A8, - 7397: 0x95A7, - 7398: 0x95AD, - 7399: 0x95BC, - 7400: 0x95BB, - 7401: 0x95B9, - 7402: 0x95BE, - 7403: 0x95CA, - 7404: 0x6FF6, - 7405: 0x95C3, - 7406: 0x95CD, - 7407: 0x95CC, - 7408: 0x95D5, - 7409: 0x95D4, - 7410: 0x95D6, - 7411: 0x95DC, - 7412: 0x95E1, - 7413: 0x95E5, - 7414: 0x95E2, - 7415: 0x9621, - 7416: 0x9628, - 7417: 0x962E, - 7418: 0x962F, - 7419: 0x9642, - 7420: 0x964C, - 7421: 0x964F, - 7422: 0x964B, - 7423: 0x9677, - 7424: 0x965C, - 7425: 0x965E, - 7426: 0x965D, - 7427: 0x965F, - 7428: 0x9666, - 7429: 0x9672, - 7430: 0x966C, - 7431: 0x968D, - 7432: 0x9698, - 7433: 0x9695, - 7434: 0x9697, - 7435: 0x96AA, - 7436: 0x96A7, - 7437: 0x96B1, - 7438: 0x96B2, - 7439: 0x96B0, - 7440: 0x96B4, - 7441: 0x96B6, - 7442: 0x96B8, - 7443: 0x96B9, - 7444: 0x96CE, - 7445: 0x96CB, - 7446: 0x96C9, - 7447: 0x96CD, - 7448: 0x894D, - 7449: 0x96DC, - 7450: 0x970D, - 7451: 0x96D5, - 7452: 0x96F9, - 7453: 0x9704, - 7454: 0x9706, - 7455: 0x9708, - 7456: 0x9713, - 7457: 0x970E, - 7458: 0x9711, - 7459: 0x970F, - 7460: 0x9716, - 7461: 0x9719, - 7462: 0x9724, - 7463: 0x972A, - 7464: 0x9730, - 7465: 0x9739, - 7466: 0x973D, - 7467: 0x973E, - 7468: 0x9744, - 7469: 0x9746, - 7470: 0x9748, - 7471: 0x9742, - 7472: 0x9749, - 7473: 0x975C, - 7474: 0x9760, - 7475: 0x9764, - 7476: 0x9766, - 7477: 0x9768, - 7478: 0x52D2, - 7479: 0x976B, - 7480: 0x9771, - 7481: 0x9779, - 7482: 0x9785, - 7483: 0x977C, - 7484: 0x9781, - 7485: 0x977A, - 7486: 0x9786, - 7487: 0x978B, - 7488: 0x978F, - 7489: 0x9790, - 7490: 0x979C, - 7491: 0x97A8, - 7492: 0x97A6, - 7493: 0x97A3, - 7494: 0x97B3, - 7495: 0x97B4, - 7496: 0x97C3, - 7497: 0x97C6, - 7498: 0x97C8, - 7499: 0x97CB, - 7500: 0x97DC, - 7501: 0x97ED, - 7502: 0x9F4F, - 7503: 0x97F2, - 7504: 0x7ADF, - 7505: 0x97F6, - 7506: 0x97F5, - 7507: 0x980F, - 7508: 0x980C, - 7509: 0x9838, - 7510: 0x9824, - 7511: 0x9821, - 7512: 0x9837, - 7513: 0x983D, - 7514: 0x9846, - 7515: 0x984F, - 7516: 0x984B, - 7517: 0x986B, - 7518: 0x986F, - 7519: 0x9870, - 7520: 0x9871, - 7521: 0x9874, - 7522: 0x9873, - 7523: 0x98AA, - 7524: 0x98AF, - 7525: 0x98B1, - 7526: 0x98B6, - 7527: 0x98C4, - 7528: 0x98C3, - 7529: 0x98C6, - 7530: 0x98E9, - 7531: 0x98EB, - 7532: 0x9903, - 7533: 0x9909, - 7534: 0x9912, - 7535: 0x9914, - 7536: 0x9918, - 7537: 0x9921, - 7538: 0x991D, - 7539: 0x991E, - 7540: 0x9924, - 7541: 0x9920, - 7542: 0x992C, - 7543: 0x992E, - 7544: 0x993D, - 7545: 0x993E, - 7546: 0x9942, - 7547: 0x9949, - 7548: 0x9945, - 7549: 0x9950, - 7550: 0x994B, - 7551: 0x9951, - 7552: 0x9952, - 7553: 0x994C, - 7554: 0x9955, - 7555: 0x9997, - 7556: 0x9998, - 7557: 0x99A5, - 7558: 0x99AD, - 7559: 0x99AE, - 7560: 0x99BC, - 7561: 0x99DF, - 7562: 0x99DB, - 7563: 0x99DD, - 7564: 0x99D8, - 7565: 0x99D1, - 7566: 0x99ED, - 7567: 0x99EE, - 7568: 0x99F1, - 7569: 0x99F2, - 7570: 0x99FB, - 7571: 0x99F8, - 7572: 0x9A01, - 7573: 0x9A0F, - 7574: 0x9A05, - 7575: 0x99E2, - 7576: 0x9A19, - 7577: 0x9A2B, - 7578: 0x9A37, - 7579: 0x9A45, - 7580: 0x9A42, - 7581: 0x9A40, - 7582: 0x9A43, - 7583: 0x9A3E, - 7584: 0x9A55, - 7585: 0x9A4D, - 7586: 0x9A5B, - 7587: 0x9A57, - 7588: 0x9A5F, - 7589: 0x9A62, - 7590: 0x9A65, - 7591: 0x9A64, - 7592: 0x9A69, - 7593: 0x9A6B, - 7594: 0x9A6A, - 7595: 0x9AAD, - 7596: 0x9AB0, - 7597: 0x9ABC, - 7598: 0x9AC0, - 7599: 0x9ACF, - 7600: 0x9AD1, - 7601: 0x9AD3, - 7602: 0x9AD4, - 7603: 0x9ADE, - 7604: 0x9ADF, - 7605: 0x9AE2, - 7606: 0x9AE3, - 7607: 0x9AE6, - 7608: 0x9AEF, - 7609: 0x9AEB, - 7610: 0x9AEE, - 7611: 0x9AF4, - 7612: 0x9AF1, - 7613: 0x9AF7, - 7614: 0x9AFB, - 7615: 0x9B06, - 7616: 0x9B18, - 7617: 0x9B1A, - 7618: 0x9B1F, - 7619: 0x9B22, - 7620: 0x9B23, - 7621: 0x9B25, - 7622: 0x9B27, - 7623: 0x9B28, - 7624: 0x9B29, - 7625: 0x9B2A, - 7626: 0x9B2E, - 7627: 0x9B2F, - 7628: 0x9B32, - 7629: 0x9B44, - 7630: 0x9B43, - 7631: 0x9B4F, - 7632: 0x9B4D, - 7633: 0x9B4E, - 7634: 0x9B51, - 7635: 0x9B58, - 7636: 0x9B74, - 7637: 0x9B93, - 7638: 0x9B83, - 7639: 0x9B91, - 7640: 0x9B96, - 7641: 0x9B97, - 7642: 0x9B9F, - 7643: 0x9BA0, - 7644: 0x9BA8, - 7645: 0x9BB4, - 7646: 0x9BC0, - 7647: 0x9BCA, - 7648: 0x9BB9, - 7649: 0x9BC6, - 7650: 0x9BCF, - 7651: 0x9BD1, - 7652: 0x9BD2, - 7653: 0x9BE3, - 7654: 0x9BE2, - 7655: 0x9BE4, - 7656: 0x9BD4, - 7657: 0x9BE1, - 7658: 0x9C3A, - 7659: 0x9BF2, - 7660: 0x9BF1, - 7661: 0x9BF0, - 7662: 0x9C15, - 7663: 0x9C14, - 7664: 0x9C09, - 7665: 0x9C13, - 7666: 0x9C0C, - 7667: 0x9C06, - 7668: 0x9C08, - 7669: 0x9C12, - 7670: 0x9C0A, - 7671: 0x9C04, - 7672: 0x9C2E, - 7673: 0x9C1B, - 7674: 0x9C25, - 7675: 0x9C24, - 7676: 0x9C21, - 7677: 0x9C30, - 7678: 0x9C47, - 7679: 0x9C32, - 7680: 0x9C46, - 7681: 0x9C3E, - 7682: 0x9C5A, - 7683: 0x9C60, - 7684: 0x9C67, - 7685: 0x9C76, - 7686: 0x9C78, - 7687: 0x9CE7, - 7688: 0x9CEC, - 7689: 0x9CF0, - 7690: 0x9D09, - 7691: 0x9D08, - 7692: 0x9CEB, - 7693: 0x9D03, - 7694: 0x9D06, - 7695: 0x9D2A, - 7696: 0x9D26, - 7697: 0x9DAF, - 7698: 0x9D23, - 7699: 0x9D1F, - 7700: 0x9D44, - 7701: 0x9D15, - 7702: 0x9D12, - 7703: 0x9D41, - 7704: 0x9D3F, - 7705: 0x9D3E, - 7706: 0x9D46, - 7707: 0x9D48, - 7708: 0x9D5D, - 7709: 0x9D5E, - 7710: 0x9D64, - 7711: 0x9D51, - 7712: 0x9D50, - 7713: 0x9D59, - 7714: 0x9D72, - 7715: 0x9D89, - 7716: 0x9D87, - 7717: 0x9DAB, - 7718: 0x9D6F, - 7719: 0x9D7A, - 7720: 0x9D9A, - 7721: 0x9DA4, - 7722: 0x9DA9, - 7723: 0x9DB2, - 7724: 0x9DC4, - 7725: 0x9DC1, - 7726: 0x9DBB, - 7727: 0x9DB8, - 7728: 0x9DBA, - 7729: 0x9DC6, - 7730: 0x9DCF, - 7731: 0x9DC2, - 7732: 0x9DD9, - 7733: 0x9DD3, - 7734: 0x9DF8, - 7735: 0x9DE6, - 7736: 0x9DED, - 7737: 0x9DEF, - 7738: 0x9DFD, - 7739: 0x9E1A, - 7740: 0x9E1B, - 7741: 0x9E1E, - 7742: 0x9E75, - 7743: 0x9E79, - 7744: 0x9E7D, - 7745: 0x9E81, - 7746: 0x9E88, - 7747: 0x9E8B, - 7748: 0x9E8C, - 7749: 0x9E92, - 7750: 0x9E95, - 7751: 0x9E91, - 7752: 0x9E9D, - 7753: 0x9EA5, - 7754: 0x9EA9, - 7755: 0x9EB8, - 7756: 0x9EAA, - 7757: 0x9EAD, - 7758: 0x9761, - 7759: 0x9ECC, - 7760: 0x9ECE, - 7761: 0x9ECF, - 7762: 0x9ED0, - 7763: 0x9ED4, - 7764: 0x9EDC, - 7765: 0x9EDE, - 7766: 0x9EDD, - 7767: 0x9EE0, - 7768: 0x9EE5, - 7769: 0x9EE8, - 7770: 0x9EEF, - 7771: 0x9EF4, - 7772: 0x9EF6, - 7773: 0x9EF7, - 7774: 0x9EF9, - 7775: 0x9EFB, - 7776: 0x9EFC, - 7777: 0x9EFD, - 7778: 0x9F07, - 7779: 0x9F08, - 7780: 0x76B7, - 7781: 0x9F15, - 7782: 0x9F21, - 7783: 0x9F2C, - 7784: 0x9F3E, - 7785: 0x9F4A, - 7786: 0x9F52, - 7787: 0x9F54, - 7788: 0x9F63, - 7789: 0x9F5F, - 7790: 0x9F60, - 7791: 0x9F61, - 7792: 0x9F66, - 7793: 0x9F67, - 7794: 0x9F6C, - 7795: 0x9F6A, - 7796: 0x9F77, - 7797: 0x9F72, - 7798: 0x9F76, - 7799: 0x9F95, - 7800: 0x9F9C, - 7801: 0x9FA0, - 7802: 0x582F, - 7803: 0x69C7, - 7804: 0x9059, - 7805: 0x7464, - 7806: 0x51DC, - 7807: 0x7199, - 8272: 0x7E8A, - 8273: 0x891C, - 8274: 0x9348, - 8275: 0x9288, - 8276: 0x84DC, - 8277: 0x4FC9, - 8278: 0x70BB, - 8279: 0x6631, - 8280: 0x68C8, - 8281: 0x92F9, - 8282: 0x66FB, - 8283: 0x5F45, - 8284: 0x4E28, - 8285: 0x4EE1, - 8286: 0x4EFC, - 8287: 0x4F00, - 8288: 0x4F03, - 8289: 0x4F39, - 8290: 0x4F56, - 8291: 0x4F92, - 8292: 0x4F8A, - 8293: 0x4F9A, - 8294: 0x4F94, - 8295: 0x4FCD, - 8296: 0x5040, - 8297: 0x5022, - 8298: 0x4FFF, - 8299: 0x501E, - 8300: 0x5046, - 8301: 0x5070, - 8302: 0x5042, - 8303: 0x5094, - 8304: 0x50F4, - 8305: 0x50D8, - 8306: 0x514A, - 8307: 0x5164, - 8308: 0x519D, - 8309: 0x51BE, - 8310: 0x51EC, - 8311: 0x5215, - 8312: 0x529C, - 8313: 0x52A6, - 8314: 0x52C0, - 8315: 0x52DB, - 8316: 0x5300, - 8317: 0x5307, - 8318: 0x5324, - 8319: 0x5372, - 8320: 0x5393, - 8321: 0x53B2, - 8322: 0x53DD, - 8323: 0xFA0E, - 8324: 0x549C, - 8325: 0x548A, - 8326: 0x54A9, - 8327: 0x54FF, - 8328: 0x5586, - 8329: 0x5759, - 8330: 0x5765, - 8331: 0x57AC, - 8332: 0x57C8, - 8333: 0x57C7, - 8334: 0xFA0F, - 8335: 0xFA10, - 8336: 0x589E, - 8337: 0x58B2, - 8338: 0x590B, - 8339: 0x5953, - 8340: 0x595B, - 8341: 0x595D, - 8342: 0x5963, - 8343: 0x59A4, - 8344: 0x59BA, - 8345: 0x5B56, - 8346: 0x5BC0, - 8347: 0x752F, - 8348: 0x5BD8, - 8349: 0x5BEC, - 8350: 0x5C1E, - 8351: 0x5CA6, - 8352: 0x5CBA, - 8353: 0x5CF5, - 8354: 0x5D27, - 8355: 0x5D53, - 8356: 0xFA11, - 8357: 0x5D42, - 8358: 0x5D6D, - 8359: 0x5DB8, - 8360: 0x5DB9, - 8361: 0x5DD0, - 8362: 0x5F21, - 8363: 0x5F34, - 8364: 0x5F67, - 8365: 0x5FB7, - 8366: 0x5FDE, - 8367: 0x605D, - 8368: 0x6085, - 8369: 0x608A, - 8370: 0x60DE, - 8371: 0x60D5, - 8372: 0x6120, - 8373: 0x60F2, - 8374: 0x6111, - 8375: 0x6137, - 8376: 0x6130, - 8377: 0x6198, - 8378: 0x6213, - 8379: 0x62A6, - 8380: 0x63F5, - 8381: 0x6460, - 8382: 0x649D, - 8383: 0x64CE, - 8384: 0x654E, - 8385: 0x6600, - 8386: 0x6615, - 8387: 0x663B, - 8388: 0x6609, - 8389: 0x662E, - 8390: 0x661E, - 8391: 0x6624, - 8392: 0x6665, - 8393: 0x6657, - 8394: 0x6659, - 8395: 0xFA12, - 8396: 0x6673, - 8397: 0x6699, - 8398: 0x66A0, - 8399: 0x66B2, - 8400: 0x66BF, - 8401: 0x66FA, - 8402: 0x670E, - 8403: 0xF929, - 8404: 0x6766, - 8405: 0x67BB, - 8406: 0x6852, - 8407: 0x67C0, - 8408: 0x6801, - 8409: 0x6844, - 8410: 0x68CF, - 8411: 0xFA13, - 8412: 0x6968, - 8413: 0xFA14, - 8414: 0x6998, - 8415: 0x69E2, - 8416: 0x6A30, - 8417: 0x6A6B, - 8418: 0x6A46, - 8419: 0x6A73, - 8420: 0x6A7E, - 8421: 0x6AE2, - 8422: 0x6AE4, - 8423: 0x6BD6, - 8424: 0x6C3F, - 8425: 0x6C5C, - 8426: 0x6C86, - 8427: 0x6C6F, - 8428: 0x6CDA, - 8429: 0x6D04, - 8430: 0x6D87, - 8431: 0x6D6F, - 8432: 0x6D96, - 8433: 0x6DAC, - 8434: 0x6DCF, - 8435: 0x6DF8, - 8436: 0x6DF2, - 8437: 0x6DFC, - 8438: 0x6E39, - 8439: 0x6E5C, - 8440: 0x6E27, - 8441: 0x6E3C, - 8442: 0x6EBF, - 8443: 0x6F88, - 8444: 0x6FB5, - 8445: 0x6FF5, - 8446: 0x7005, - 8447: 0x7007, - 8448: 0x7028, - 8449: 0x7085, - 8450: 0x70AB, - 8451: 0x710F, - 8452: 0x7104, - 8453: 0x715C, - 8454: 0x7146, - 8455: 0x7147, - 8456: 0xFA15, - 8457: 0x71C1, - 8458: 0x71FE, - 8459: 0x72B1, - 8460: 0x72BE, - 8461: 0x7324, - 8462: 0xFA16, - 8463: 0x7377, - 8464: 0x73BD, - 8465: 0x73C9, - 8466: 0x73D6, - 8467: 0x73E3, - 8468: 0x73D2, - 8469: 0x7407, - 8470: 0x73F5, - 8471: 0x7426, - 8472: 0x742A, - 8473: 0x7429, - 8474: 0x742E, - 8475: 0x7462, - 8476: 0x7489, - 8477: 0x749F, - 8478: 0x7501, - 8479: 0x756F, - 8480: 0x7682, - 8481: 0x769C, - 8482: 0x769E, - 8483: 0x769B, - 8484: 0x76A6, - 8485: 0xFA17, - 8486: 0x7746, - 8487: 0x52AF, - 8488: 0x7821, - 8489: 0x784E, - 8490: 0x7864, - 8491: 0x787A, - 8492: 0x7930, - 8493: 0xFA18, - 8494: 0xFA19, - 8495: 0xFA1A, - 8496: 0x7994, - 8497: 0xFA1B, - 8498: 0x799B, - 8499: 0x7AD1, - 8500: 0x7AE7, - 8501: 0xFA1C, - 8502: 0x7AEB, - 8503: 0x7B9E, - 8504: 0xFA1D, - 8505: 0x7D48, - 8506: 0x7D5C, - 8507: 0x7DB7, - 8508: 0x7DA0, - 8509: 0x7DD6, - 8510: 0x7E52, - 8511: 0x7F47, - 8512: 0x7FA1, - 8513: 0xFA1E, - 8514: 0x8301, - 8515: 0x8362, - 8516: 0x837F, - 8517: 0x83C7, - 8518: 0x83F6, - 8519: 0x8448, - 8520: 0x84B4, - 8521: 0x8553, - 8522: 0x8559, - 8523: 0x856B, - 8524: 0xFA1F, - 8525: 0x85B0, - 8526: 0xFA20, - 8527: 0xFA21, - 8528: 0x8807, - 8529: 0x88F5, - 8530: 0x8A12, - 8531: 0x8A37, - 8532: 0x8A79, - 8533: 0x8AA7, - 8534: 0x8ABE, - 8535: 0x8ADF, - 8536: 0xFA22, - 8537: 0x8AF6, - 8538: 0x8B53, - 8539: 0x8B7F, - 8540: 0x8CF0, - 8541: 0x8CF4, - 8542: 0x8D12, - 8543: 0x8D76, - 8544: 0xFA23, - 8545: 0x8ECF, - 8546: 0xFA24, - 8547: 0xFA25, - 8548: 0x9067, - 8549: 0x90DE, - 8550: 0xFA26, - 8551: 0x9115, - 8552: 0x9127, - 8553: 0x91DA, - 8554: 0x91D7, - 8555: 0x91DE, - 8556: 0x91ED, - 8557: 0x91EE, - 8558: 0x91E4, - 8559: 0x91E5, - 8560: 0x9206, - 8561: 0x9210, - 8562: 0x920A, - 8563: 0x923A, - 8564: 0x9240, - 8565: 0x923C, - 8566: 0x924E, - 8567: 0x9259, - 8568: 0x9251, - 8569: 0x9239, - 8570: 0x9267, - 8571: 0x92A7, - 8572: 0x9277, - 8573: 0x9278, - 8574: 0x92E7, - 8575: 0x92D7, - 8576: 0x92D9, - 8577: 0x92D0, - 8578: 0xFA27, - 8579: 0x92D5, - 8580: 0x92E0, - 8581: 0x92D3, - 8582: 0x9325, - 8583: 0x9321, - 8584: 0x92FB, - 8585: 0xFA28, - 8586: 0x931E, - 8587: 0x92FF, - 8588: 0x931D, - 8589: 0x9302, - 8590: 0x9370, - 8591: 0x9357, - 8592: 0x93A4, - 8593: 0x93C6, - 8594: 0x93DE, - 8595: 0x93F8, - 8596: 0x9431, - 8597: 0x9445, - 8598: 0x9448, - 8599: 0x9592, - 8600: 0xF9DC, - 8601: 0xFA29, - 8602: 0x969D, - 8603: 0x96AF, - 8604: 0x9733, - 8605: 0x973B, - 8606: 0x9743, - 8607: 0x974D, - 8608: 0x974F, - 8609: 0x9751, - 8610: 0x9755, - 8611: 0x9857, - 8612: 0x9865, - 8613: 0xFA2A, - 8614: 0xFA2B, - 8615: 0x9927, - 8616: 0xFA2C, - 8617: 0x999E, - 8618: 0x9A4E, - 8619: 0x9AD9, - 8620: 0x9ADC, - 8621: 0x9B75, - 8622: 0x9B72, - 8623: 0x9B8F, - 8624: 0x9BB1, - 8625: 0x9BBB, - 8626: 0x9C00, - 8627: 0x9D70, - 8628: 0x9D6B, - 8629: 0xFA2D, - 8630: 0x9E19, - 8631: 0x9ED1, - 8634: 0x2170, - 8635: 0x2171, - 8636: 0x2172, - 8637: 0x2173, - 8638: 0x2174, - 8639: 0x2175, - 8640: 0x2176, - 8641: 0x2177, - 8642: 0x2178, - 8643: 0x2179, - 8644: 0xFFE2, - 8645: 0xFFE4, - 8646: 0xFF07, - 8647: 0xFF02, - 10716: 0x2170, - 10717: 0x2171, - 10718: 0x2172, - 10719: 0x2173, - 10720: 0x2174, - 10721: 0x2175, - 10722: 0x2176, - 10723: 0x2177, - 10724: 0x2178, - 10725: 0x2179, - 10726: 0x2160, - 10727: 0x2161, - 10728: 0x2162, - 10729: 0x2163, - 10730: 0x2164, - 10731: 0x2165, - 10732: 0x2166, - 10733: 0x2167, - 10734: 0x2168, - 10735: 0x2169, - 10736: 0xFFE2, - 10737: 0xFFE4, - 10738: 0xFF07, - 10739: 0xFF02, - 10740: 0x3231, - 10741: 0x2116, - 10742: 0x2121, - 10743: 0x2235, - 10744: 0x7E8A, - 10745: 0x891C, - 10746: 0x9348, - 10747: 0x9288, - 10748: 0x84DC, - 10749: 0x4FC9, - 10750: 0x70BB, - 10751: 0x6631, - 10752: 0x68C8, - 10753: 0x92F9, - 10754: 0x66FB, - 10755: 0x5F45, - 10756: 0x4E28, - 10757: 0x4EE1, - 10758: 0x4EFC, - 10759: 0x4F00, - 10760: 0x4F03, - 10761: 0x4F39, - 10762: 0x4F56, - 10763: 0x4F92, - 10764: 0x4F8A, - 10765: 0x4F9A, - 10766: 0x4F94, - 10767: 0x4FCD, - 10768: 0x5040, - 10769: 0x5022, - 10770: 0x4FFF, - 10771: 0x501E, - 10772: 0x5046, - 10773: 0x5070, - 10774: 0x5042, - 10775: 0x5094, - 10776: 0x50F4, - 10777: 0x50D8, - 10778: 0x514A, - 10779: 0x5164, - 10780: 0x519D, - 10781: 0x51BE, - 10782: 0x51EC, - 10783: 0x5215, - 10784: 0x529C, - 10785: 0x52A6, - 10786: 0x52C0, - 10787: 0x52DB, - 10788: 0x5300, - 10789: 0x5307, - 10790: 0x5324, - 10791: 0x5372, - 10792: 0x5393, - 10793: 0x53B2, - 10794: 0x53DD, - 10795: 0xFA0E, - 10796: 0x549C, - 10797: 0x548A, - 10798: 0x54A9, - 10799: 0x54FF, - 10800: 0x5586, - 10801: 0x5759, - 10802: 0x5765, - 10803: 0x57AC, - 10804: 0x57C8, - 10805: 0x57C7, - 10806: 0xFA0F, - 10807: 0xFA10, - 10808: 0x589E, - 10809: 0x58B2, - 10810: 0x590B, - 10811: 0x5953, - 10812: 0x595B, - 10813: 0x595D, - 10814: 0x5963, - 10815: 0x59A4, - 10816: 0x59BA, - 10817: 0x5B56, - 10818: 0x5BC0, - 10819: 0x752F, - 10820: 0x5BD8, - 10821: 0x5BEC, - 10822: 0x5C1E, - 10823: 0x5CA6, - 10824: 0x5CBA, - 10825: 0x5CF5, - 10826: 0x5D27, - 10827: 0x5D53, - 10828: 0xFA11, - 10829: 0x5D42, - 10830: 0x5D6D, - 10831: 0x5DB8, - 10832: 0x5DB9, - 10833: 0x5DD0, - 10834: 0x5F21, - 10835: 0x5F34, - 10836: 0x5F67, - 10837: 0x5FB7, - 10838: 0x5FDE, - 10839: 0x605D, - 10840: 0x6085, - 10841: 0x608A, - 10842: 0x60DE, - 10843: 0x60D5, - 10844: 0x6120, - 10845: 0x60F2, - 10846: 0x6111, - 10847: 0x6137, - 10848: 0x6130, - 10849: 0x6198, - 10850: 0x6213, - 10851: 0x62A6, - 10852: 0x63F5, - 10853: 0x6460, - 10854: 0x649D, - 10855: 0x64CE, - 10856: 0x654E, - 10857: 0x6600, - 10858: 0x6615, - 10859: 0x663B, - 10860: 0x6609, - 10861: 0x662E, - 10862: 0x661E, - 10863: 0x6624, - 10864: 0x6665, - 10865: 0x6657, - 10866: 0x6659, - 10867: 0xFA12, - 10868: 0x6673, - 10869: 0x6699, - 10870: 0x66A0, - 10871: 0x66B2, - 10872: 0x66BF, - 10873: 0x66FA, - 10874: 0x670E, - 10875: 0xF929, - 10876: 0x6766, - 10877: 0x67BB, - 10878: 0x6852, - 10879: 0x67C0, - 10880: 0x6801, - 10881: 0x6844, - 10882: 0x68CF, - 10883: 0xFA13, - 10884: 0x6968, - 10885: 0xFA14, - 10886: 0x6998, - 10887: 0x69E2, - 10888: 0x6A30, - 10889: 0x6A6B, - 10890: 0x6A46, - 10891: 0x6A73, - 10892: 0x6A7E, - 10893: 0x6AE2, - 10894: 0x6AE4, - 10895: 0x6BD6, - 10896: 0x6C3F, - 10897: 0x6C5C, - 10898: 0x6C86, - 10899: 0x6C6F, - 10900: 0x6CDA, - 10901: 0x6D04, - 10902: 0x6D87, - 10903: 0x6D6F, - 10904: 0x6D96, - 10905: 0x6DAC, - 10906: 0x6DCF, - 10907: 0x6DF8, - 10908: 0x6DF2, - 10909: 0x6DFC, - 10910: 0x6E39, - 10911: 0x6E5C, - 10912: 0x6E27, - 10913: 0x6E3C, - 10914: 0x6EBF, - 10915: 0x6F88, - 10916: 0x6FB5, - 10917: 0x6FF5, - 10918: 0x7005, - 10919: 0x7007, - 10920: 0x7028, - 10921: 0x7085, - 10922: 0x70AB, - 10923: 0x710F, - 10924: 0x7104, - 10925: 0x715C, - 10926: 0x7146, - 10927: 0x7147, - 10928: 0xFA15, - 10929: 0x71C1, - 10930: 0x71FE, - 10931: 0x72B1, - 10932: 0x72BE, - 10933: 0x7324, - 10934: 0xFA16, - 10935: 0x7377, - 10936: 0x73BD, - 10937: 0x73C9, - 10938: 0x73D6, - 10939: 0x73E3, - 10940: 0x73D2, - 10941: 0x7407, - 10942: 0x73F5, - 10943: 0x7426, - 10944: 0x742A, - 10945: 0x7429, - 10946: 0x742E, - 10947: 0x7462, - 10948: 0x7489, - 10949: 0x749F, - 10950: 0x7501, - 10951: 0x756F, - 10952: 0x7682, - 10953: 0x769C, - 10954: 0x769E, - 10955: 0x769B, - 10956: 0x76A6, - 10957: 0xFA17, - 10958: 0x7746, - 10959: 0x52AF, - 10960: 0x7821, - 10961: 0x784E, - 10962: 0x7864, - 10963: 0x787A, - 10964: 0x7930, - 10965: 0xFA18, - 10966: 0xFA19, - 10967: 0xFA1A, - 10968: 0x7994, - 10969: 0xFA1B, - 10970: 0x799B, - 10971: 0x7AD1, - 10972: 0x7AE7, - 10973: 0xFA1C, - 10974: 0x7AEB, - 10975: 0x7B9E, - 10976: 0xFA1D, - 10977: 0x7D48, - 10978: 0x7D5C, - 10979: 0x7DB7, - 10980: 0x7DA0, - 10981: 0x7DD6, - 10982: 0x7E52, - 10983: 0x7F47, - 10984: 0x7FA1, - 10985: 0xFA1E, - 10986: 0x8301, - 10987: 0x8362, - 10988: 0x837F, - 10989: 0x83C7, - 10990: 0x83F6, - 10991: 0x8448, - 10992: 0x84B4, - 10993: 0x8553, - 10994: 0x8559, - 10995: 0x856B, - 10996: 0xFA1F, - 10997: 0x85B0, - 10998: 0xFA20, - 10999: 0xFA21, - 11000: 0x8807, - 11001: 0x88F5, - 11002: 0x8A12, - 11003: 0x8A37, - 11004: 0x8A79, - 11005: 0x8AA7, - 11006: 0x8ABE, - 11007: 0x8ADF, - 11008: 0xFA22, - 11009: 0x8AF6, - 11010: 0x8B53, - 11011: 0x8B7F, - 11012: 0x8CF0, - 11013: 0x8CF4, - 11014: 0x8D12, - 11015: 0x8D76, - 11016: 0xFA23, - 11017: 0x8ECF, - 11018: 0xFA24, - 11019: 0xFA25, - 11020: 0x9067, - 11021: 0x90DE, - 11022: 0xFA26, - 11023: 0x9115, - 11024: 0x9127, - 11025: 0x91DA, - 11026: 0x91D7, - 11027: 0x91DE, - 11028: 0x91ED, - 11029: 0x91EE, - 11030: 0x91E4, - 11031: 0x91E5, - 11032: 0x9206, - 11033: 0x9210, - 11034: 0x920A, - 11035: 0x923A, - 11036: 0x9240, - 11037: 0x923C, - 11038: 0x924E, - 11039: 0x9259, - 11040: 0x9251, - 11041: 0x9239, - 11042: 0x9267, - 11043: 0x92A7, - 11044: 0x9277, - 11045: 0x9278, - 11046: 0x92E7, - 11047: 0x92D7, - 11048: 0x92D9, - 11049: 0x92D0, - 11050: 0xFA27, - 11051: 0x92D5, - 11052: 0x92E0, - 11053: 0x92D3, - 11054: 0x9325, - 11055: 0x9321, - 11056: 0x92FB, - 11057: 0xFA28, - 11058: 0x931E, - 11059: 0x92FF, - 11060: 0x931D, - 11061: 0x9302, - 11062: 0x9370, - 11063: 0x9357, - 11064: 0x93A4, - 11065: 0x93C6, - 11066: 0x93DE, - 11067: 0x93F8, - 11068: 0x9431, - 11069: 0x9445, - 11070: 0x9448, - 11071: 0x9592, - 11072: 0xF9DC, - 11073: 0xFA29, - 11074: 0x969D, - 11075: 0x96AF, - 11076: 0x9733, - 11077: 0x973B, - 11078: 0x9743, - 11079: 0x974D, - 11080: 0x974F, - 11081: 0x9751, - 11082: 0x9755, - 11083: 0x9857, - 11084: 0x9865, - 11085: 0xFA2A, - 11086: 0xFA2B, - 11087: 0x9927, - 11088: 0xFA2C, - 11089: 0x999E, - 11090: 0x9A4E, - 11091: 0x9AD9, - 11092: 0x9ADC, - 11093: 0x9B75, - 11094: 0x9B72, - 11095: 0x9B8F, - 11096: 0x9BB1, - 11097: 0x9BBB, - 11098: 0x9C00, - 11099: 0x9D70, - 11100: 0x9D6B, - 11101: 0xFA2D, - 11102: 0x9E19, - 11103: 0x9ED1, -} - -// jis0212Decode is the decoding table from JIS 0212 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0212.txt -var jis0212Decode = [...]uint16{ - 108: 0x02D8, - 109: 0x02C7, - 110: 0x00B8, - 111: 0x02D9, - 112: 0x02DD, - 113: 0x00AF, - 114: 0x02DB, - 115: 0x02DA, - 116: 0xFF5E, - 117: 0x0384, - 118: 0x0385, - 127: 0x00A1, - 128: 0x00A6, - 129: 0x00BF, - 168: 0x00BA, - 169: 0x00AA, - 170: 0x00A9, - 171: 0x00AE, - 172: 0x2122, - 173: 0x00A4, - 174: 0x2116, - 534: 0x0386, - 535: 0x0388, - 536: 0x0389, - 537: 0x038A, - 538: 0x03AA, - 540: 0x038C, - 542: 0x038E, - 543: 0x03AB, - 545: 0x038F, - 550: 0x03AC, - 551: 0x03AD, - 552: 0x03AE, - 553: 0x03AF, - 554: 0x03CA, - 555: 0x0390, - 556: 0x03CC, - 557: 0x03C2, - 558: 0x03CD, - 559: 0x03CB, - 560: 0x03B0, - 561: 0x03CE, - 597: 0x0402, - 598: 0x0403, - 599: 0x0404, - 600: 0x0405, - 601: 0x0406, - 602: 0x0407, - 603: 0x0408, - 604: 0x0409, - 605: 0x040A, - 606: 0x040B, - 607: 0x040C, - 608: 0x040E, - 609: 0x040F, - 645: 0x0452, - 646: 0x0453, - 647: 0x0454, - 648: 0x0455, - 649: 0x0456, - 650: 0x0457, - 651: 0x0458, - 652: 0x0459, - 653: 0x045A, - 654: 0x045B, - 655: 0x045C, - 656: 0x045E, - 657: 0x045F, - 752: 0x00C6, - 753: 0x0110, - 755: 0x0126, - 757: 0x0132, - 759: 0x0141, - 760: 0x013F, - 762: 0x014A, - 763: 0x00D8, - 764: 0x0152, - 766: 0x0166, - 767: 0x00DE, - 784: 0x00E6, - 785: 0x0111, - 786: 0x00F0, - 787: 0x0127, - 788: 0x0131, - 789: 0x0133, - 790: 0x0138, - 791: 0x0142, - 792: 0x0140, - 793: 0x0149, - 794: 0x014B, - 795: 0x00F8, - 796: 0x0153, - 797: 0x00DF, - 798: 0x0167, - 799: 0x00FE, - 846: 0x00C1, - 847: 0x00C0, - 848: 0x00C4, - 849: 0x00C2, - 850: 0x0102, - 851: 0x01CD, - 852: 0x0100, - 853: 0x0104, - 854: 0x00C5, - 855: 0x00C3, - 856: 0x0106, - 857: 0x0108, - 858: 0x010C, - 859: 0x00C7, - 860: 0x010A, - 861: 0x010E, - 862: 0x00C9, - 863: 0x00C8, - 864: 0x00CB, - 865: 0x00CA, - 866: 0x011A, - 867: 0x0116, - 868: 0x0112, - 869: 0x0118, - 871: 0x011C, - 872: 0x011E, - 873: 0x0122, - 874: 0x0120, - 875: 0x0124, - 876: 0x00CD, - 877: 0x00CC, - 878: 0x00CF, - 879: 0x00CE, - 880: 0x01CF, - 881: 0x0130, - 882: 0x012A, - 883: 0x012E, - 884: 0x0128, - 885: 0x0134, - 886: 0x0136, - 887: 0x0139, - 888: 0x013D, - 889: 0x013B, - 890: 0x0143, - 891: 0x0147, - 892: 0x0145, - 893: 0x00D1, - 894: 0x00D3, - 895: 0x00D2, - 896: 0x00D6, - 897: 0x00D4, - 898: 0x01D1, - 899: 0x0150, - 900: 0x014C, - 901: 0x00D5, - 902: 0x0154, - 903: 0x0158, - 904: 0x0156, - 905: 0x015A, - 906: 0x015C, - 907: 0x0160, - 908: 0x015E, - 909: 0x0164, - 910: 0x0162, - 911: 0x00DA, - 912: 0x00D9, - 913: 0x00DC, - 914: 0x00DB, - 915: 0x016C, - 916: 0x01D3, - 917: 0x0170, - 918: 0x016A, - 919: 0x0172, - 920: 0x016E, - 921: 0x0168, - 922: 0x01D7, - 923: 0x01DB, - 924: 0x01D9, - 925: 0x01D5, - 926: 0x0174, - 927: 0x00DD, - 928: 0x0178, - 929: 0x0176, - 930: 0x0179, - 931: 0x017D, - 932: 0x017B, - 940: 0x00E1, - 941: 0x00E0, - 942: 0x00E4, - 943: 0x00E2, - 944: 0x0103, - 945: 0x01CE, - 946: 0x0101, - 947: 0x0105, - 948: 0x00E5, - 949: 0x00E3, - 950: 0x0107, - 951: 0x0109, - 952: 0x010D, - 953: 0x00E7, - 954: 0x010B, - 955: 0x010F, - 956: 0x00E9, - 957: 0x00E8, - 958: 0x00EB, - 959: 0x00EA, - 960: 0x011B, - 961: 0x0117, - 962: 0x0113, - 963: 0x0119, - 964: 0x01F5, - 965: 0x011D, - 966: 0x011F, - 968: 0x0121, - 969: 0x0125, - 970: 0x00ED, - 971: 0x00EC, - 972: 0x00EF, - 973: 0x00EE, - 974: 0x01D0, - 976: 0x012B, - 977: 0x012F, - 978: 0x0129, - 979: 0x0135, - 980: 0x0137, - 981: 0x013A, - 982: 0x013E, - 983: 0x013C, - 984: 0x0144, - 985: 0x0148, - 986: 0x0146, - 987: 0x00F1, - 988: 0x00F3, - 989: 0x00F2, - 990: 0x00F6, - 991: 0x00F4, - 992: 0x01D2, - 993: 0x0151, - 994: 0x014D, - 995: 0x00F5, - 996: 0x0155, - 997: 0x0159, - 998: 0x0157, - 999: 0x015B, - 1000: 0x015D, - 1001: 0x0161, - 1002: 0x015F, - 1003: 0x0165, - 1004: 0x0163, - 1005: 0x00FA, - 1006: 0x00F9, - 1007: 0x00FC, - 1008: 0x00FB, - 1009: 0x016D, - 1010: 0x01D4, - 1011: 0x0171, - 1012: 0x016B, - 1013: 0x0173, - 1014: 0x016F, - 1015: 0x0169, - 1016: 0x01D8, - 1017: 0x01DC, - 1018: 0x01DA, - 1019: 0x01D6, - 1020: 0x0175, - 1021: 0x00FD, - 1022: 0x00FF, - 1023: 0x0177, - 1024: 0x017A, - 1025: 0x017E, - 1026: 0x017C, - 1410: 0x4E02, - 1411: 0x4E04, - 1412: 0x4E05, - 1413: 0x4E0C, - 1414: 0x4E12, - 1415: 0x4E1F, - 1416: 0x4E23, - 1417: 0x4E24, - 1418: 0x4E28, - 1419: 0x4E2B, - 1420: 0x4E2E, - 1421: 0x4E2F, - 1422: 0x4E30, - 1423: 0x4E35, - 1424: 0x4E40, - 1425: 0x4E41, - 1426: 0x4E44, - 1427: 0x4E47, - 1428: 0x4E51, - 1429: 0x4E5A, - 1430: 0x4E5C, - 1431: 0x4E63, - 1432: 0x4E68, - 1433: 0x4E69, - 1434: 0x4E74, - 1435: 0x4E75, - 1436: 0x4E79, - 1437: 0x4E7F, - 1438: 0x4E8D, - 1439: 0x4E96, - 1440: 0x4E97, - 1441: 0x4E9D, - 1442: 0x4EAF, - 1443: 0x4EB9, - 1444: 0x4EC3, - 1445: 0x4ED0, - 1446: 0x4EDA, - 1447: 0x4EDB, - 1448: 0x4EE0, - 1449: 0x4EE1, - 1450: 0x4EE2, - 1451: 0x4EE8, - 1452: 0x4EEF, - 1453: 0x4EF1, - 1454: 0x4EF3, - 1455: 0x4EF5, - 1456: 0x4EFD, - 1457: 0x4EFE, - 1458: 0x4EFF, - 1459: 0x4F00, - 1460: 0x4F02, - 1461: 0x4F03, - 1462: 0x4F08, - 1463: 0x4F0B, - 1464: 0x4F0C, - 1465: 0x4F12, - 1466: 0x4F15, - 1467: 0x4F16, - 1468: 0x4F17, - 1469: 0x4F19, - 1470: 0x4F2E, - 1471: 0x4F31, - 1472: 0x4F60, - 1473: 0x4F33, - 1474: 0x4F35, - 1475: 0x4F37, - 1476: 0x4F39, - 1477: 0x4F3B, - 1478: 0x4F3E, - 1479: 0x4F40, - 1480: 0x4F42, - 1481: 0x4F48, - 1482: 0x4F49, - 1483: 0x4F4B, - 1484: 0x4F4C, - 1485: 0x4F52, - 1486: 0x4F54, - 1487: 0x4F56, - 1488: 0x4F58, - 1489: 0x4F5F, - 1490: 0x4F63, - 1491: 0x4F6A, - 1492: 0x4F6C, - 1493: 0x4F6E, - 1494: 0x4F71, - 1495: 0x4F77, - 1496: 0x4F78, - 1497: 0x4F79, - 1498: 0x4F7A, - 1499: 0x4F7D, - 1500: 0x4F7E, - 1501: 0x4F81, - 1502: 0x4F82, - 1503: 0x4F84, - 1504: 0x4F85, - 1505: 0x4F89, - 1506: 0x4F8A, - 1507: 0x4F8C, - 1508: 0x4F8E, - 1509: 0x4F90, - 1510: 0x4F92, - 1511: 0x4F93, - 1512: 0x4F94, - 1513: 0x4F97, - 1514: 0x4F99, - 1515: 0x4F9A, - 1516: 0x4F9E, - 1517: 0x4F9F, - 1518: 0x4FB2, - 1519: 0x4FB7, - 1520: 0x4FB9, - 1521: 0x4FBB, - 1522: 0x4FBC, - 1523: 0x4FBD, - 1524: 0x4FBE, - 1525: 0x4FC0, - 1526: 0x4FC1, - 1527: 0x4FC5, - 1528: 0x4FC6, - 1529: 0x4FC8, - 1530: 0x4FC9, - 1531: 0x4FCB, - 1532: 0x4FCC, - 1533: 0x4FCD, - 1534: 0x4FCF, - 1535: 0x4FD2, - 1536: 0x4FDC, - 1537: 0x4FE0, - 1538: 0x4FE2, - 1539: 0x4FF0, - 1540: 0x4FF2, - 1541: 0x4FFC, - 1542: 0x4FFD, - 1543: 0x4FFF, - 1544: 0x5000, - 1545: 0x5001, - 1546: 0x5004, - 1547: 0x5007, - 1548: 0x500A, - 1549: 0x500C, - 1550: 0x500E, - 1551: 0x5010, - 1552: 0x5013, - 1553: 0x5017, - 1554: 0x5018, - 1555: 0x501B, - 1556: 0x501C, - 1557: 0x501D, - 1558: 0x501E, - 1559: 0x5022, - 1560: 0x5027, - 1561: 0x502E, - 1562: 0x5030, - 1563: 0x5032, - 1564: 0x5033, - 1565: 0x5035, - 1566: 0x5040, - 1567: 0x5041, - 1568: 0x5042, - 1569: 0x5045, - 1570: 0x5046, - 1571: 0x504A, - 1572: 0x504C, - 1573: 0x504E, - 1574: 0x5051, - 1575: 0x5052, - 1576: 0x5053, - 1577: 0x5057, - 1578: 0x5059, - 1579: 0x505F, - 1580: 0x5060, - 1581: 0x5062, - 1582: 0x5063, - 1583: 0x5066, - 1584: 0x5067, - 1585: 0x506A, - 1586: 0x506D, - 1587: 0x5070, - 1588: 0x5071, - 1589: 0x503B, - 1590: 0x5081, - 1591: 0x5083, - 1592: 0x5084, - 1593: 0x5086, - 1594: 0x508A, - 1595: 0x508E, - 1596: 0x508F, - 1597: 0x5090, - 1598: 0x5092, - 1599: 0x5093, - 1600: 0x5094, - 1601: 0x5096, - 1602: 0x509B, - 1603: 0x509C, - 1604: 0x509E, - 1605: 0x509F, - 1606: 0x50A0, - 1607: 0x50A1, - 1608: 0x50A2, - 1609: 0x50AA, - 1610: 0x50AF, - 1611: 0x50B0, - 1612: 0x50B9, - 1613: 0x50BA, - 1614: 0x50BD, - 1615: 0x50C0, - 1616: 0x50C3, - 1617: 0x50C4, - 1618: 0x50C7, - 1619: 0x50CC, - 1620: 0x50CE, - 1621: 0x50D0, - 1622: 0x50D3, - 1623: 0x50D4, - 1624: 0x50D8, - 1625: 0x50DC, - 1626: 0x50DD, - 1627: 0x50DF, - 1628: 0x50E2, - 1629: 0x50E4, - 1630: 0x50E6, - 1631: 0x50E8, - 1632: 0x50E9, - 1633: 0x50EF, - 1634: 0x50F1, - 1635: 0x50F6, - 1636: 0x50FA, - 1637: 0x50FE, - 1638: 0x5103, - 1639: 0x5106, - 1640: 0x5107, - 1641: 0x5108, - 1642: 0x510B, - 1643: 0x510C, - 1644: 0x510D, - 1645: 0x510E, - 1646: 0x50F2, - 1647: 0x5110, - 1648: 0x5117, - 1649: 0x5119, - 1650: 0x511B, - 1651: 0x511C, - 1652: 0x511D, - 1653: 0x511E, - 1654: 0x5123, - 1655: 0x5127, - 1656: 0x5128, - 1657: 0x512C, - 1658: 0x512D, - 1659: 0x512F, - 1660: 0x5131, - 1661: 0x5133, - 1662: 0x5134, - 1663: 0x5135, - 1664: 0x5138, - 1665: 0x5139, - 1666: 0x5142, - 1667: 0x514A, - 1668: 0x514F, - 1669: 0x5153, - 1670: 0x5155, - 1671: 0x5157, - 1672: 0x5158, - 1673: 0x515F, - 1674: 0x5164, - 1675: 0x5166, - 1676: 0x517E, - 1677: 0x5183, - 1678: 0x5184, - 1679: 0x518B, - 1680: 0x518E, - 1681: 0x5198, - 1682: 0x519D, - 1683: 0x51A1, - 1684: 0x51A3, - 1685: 0x51AD, - 1686: 0x51B8, - 1687: 0x51BA, - 1688: 0x51BC, - 1689: 0x51BE, - 1690: 0x51BF, - 1691: 0x51C2, - 1692: 0x51C8, - 1693: 0x51CF, - 1694: 0x51D1, - 1695: 0x51D2, - 1696: 0x51D3, - 1697: 0x51D5, - 1698: 0x51D8, - 1699: 0x51DE, - 1700: 0x51E2, - 1701: 0x51E5, - 1702: 0x51EE, - 1703: 0x51F2, - 1704: 0x51F3, - 1705: 0x51F4, - 1706: 0x51F7, - 1707: 0x5201, - 1708: 0x5202, - 1709: 0x5205, - 1710: 0x5212, - 1711: 0x5213, - 1712: 0x5215, - 1713: 0x5216, - 1714: 0x5218, - 1715: 0x5222, - 1716: 0x5228, - 1717: 0x5231, - 1718: 0x5232, - 1719: 0x5235, - 1720: 0x523C, - 1721: 0x5245, - 1722: 0x5249, - 1723: 0x5255, - 1724: 0x5257, - 1725: 0x5258, - 1726: 0x525A, - 1727: 0x525C, - 1728: 0x525F, - 1729: 0x5260, - 1730: 0x5261, - 1731: 0x5266, - 1732: 0x526E, - 1733: 0x5277, - 1734: 0x5278, - 1735: 0x5279, - 1736: 0x5280, - 1737: 0x5282, - 1738: 0x5285, - 1739: 0x528A, - 1740: 0x528C, - 1741: 0x5293, - 1742: 0x5295, - 1743: 0x5296, - 1744: 0x5297, - 1745: 0x5298, - 1746: 0x529A, - 1747: 0x529C, - 1748: 0x52A4, - 1749: 0x52A5, - 1750: 0x52A6, - 1751: 0x52A7, - 1752: 0x52AF, - 1753: 0x52B0, - 1754: 0x52B6, - 1755: 0x52B7, - 1756: 0x52B8, - 1757: 0x52BA, - 1758: 0x52BB, - 1759: 0x52BD, - 1760: 0x52C0, - 1761: 0x52C4, - 1762: 0x52C6, - 1763: 0x52C8, - 1764: 0x52CC, - 1765: 0x52CF, - 1766: 0x52D1, - 1767: 0x52D4, - 1768: 0x52D6, - 1769: 0x52DB, - 1770: 0x52DC, - 1771: 0x52E1, - 1772: 0x52E5, - 1773: 0x52E8, - 1774: 0x52E9, - 1775: 0x52EA, - 1776: 0x52EC, - 1777: 0x52F0, - 1778: 0x52F1, - 1779: 0x52F4, - 1780: 0x52F6, - 1781: 0x52F7, - 1782: 0x5300, - 1783: 0x5303, - 1784: 0x530A, - 1785: 0x530B, - 1786: 0x530C, - 1787: 0x5311, - 1788: 0x5313, - 1789: 0x5318, - 1790: 0x531B, - 1791: 0x531C, - 1792: 0x531E, - 1793: 0x531F, - 1794: 0x5325, - 1795: 0x5327, - 1796: 0x5328, - 1797: 0x5329, - 1798: 0x532B, - 1799: 0x532C, - 1800: 0x532D, - 1801: 0x5330, - 1802: 0x5332, - 1803: 0x5335, - 1804: 0x533C, - 1805: 0x533D, - 1806: 0x533E, - 1807: 0x5342, - 1808: 0x534C, - 1809: 0x534B, - 1810: 0x5359, - 1811: 0x535B, - 1812: 0x5361, - 1813: 0x5363, - 1814: 0x5365, - 1815: 0x536C, - 1816: 0x536D, - 1817: 0x5372, - 1818: 0x5379, - 1819: 0x537E, - 1820: 0x5383, - 1821: 0x5387, - 1822: 0x5388, - 1823: 0x538E, - 1824: 0x5393, - 1825: 0x5394, - 1826: 0x5399, - 1827: 0x539D, - 1828: 0x53A1, - 1829: 0x53A4, - 1830: 0x53AA, - 1831: 0x53AB, - 1832: 0x53AF, - 1833: 0x53B2, - 1834: 0x53B4, - 1835: 0x53B5, - 1836: 0x53B7, - 1837: 0x53B8, - 1838: 0x53BA, - 1839: 0x53BD, - 1840: 0x53C0, - 1841: 0x53C5, - 1842: 0x53CF, - 1843: 0x53D2, - 1844: 0x53D3, - 1845: 0x53D5, - 1846: 0x53DA, - 1847: 0x53DD, - 1848: 0x53DE, - 1849: 0x53E0, - 1850: 0x53E6, - 1851: 0x53E7, - 1852: 0x53F5, - 1853: 0x5402, - 1854: 0x5413, - 1855: 0x541A, - 1856: 0x5421, - 1857: 0x5427, - 1858: 0x5428, - 1859: 0x542A, - 1860: 0x542F, - 1861: 0x5431, - 1862: 0x5434, - 1863: 0x5435, - 1864: 0x5443, - 1865: 0x5444, - 1866: 0x5447, - 1867: 0x544D, - 1868: 0x544F, - 1869: 0x545E, - 1870: 0x5462, - 1871: 0x5464, - 1872: 0x5466, - 1873: 0x5467, - 1874: 0x5469, - 1875: 0x546B, - 1876: 0x546D, - 1877: 0x546E, - 1878: 0x5474, - 1879: 0x547F, - 1880: 0x5481, - 1881: 0x5483, - 1882: 0x5485, - 1883: 0x5488, - 1884: 0x5489, - 1885: 0x548D, - 1886: 0x5491, - 1887: 0x5495, - 1888: 0x5496, - 1889: 0x549C, - 1890: 0x549F, - 1891: 0x54A1, - 1892: 0x54A6, - 1893: 0x54A7, - 1894: 0x54A9, - 1895: 0x54AA, - 1896: 0x54AD, - 1897: 0x54AE, - 1898: 0x54B1, - 1899: 0x54B7, - 1900: 0x54B9, - 1901: 0x54BA, - 1902: 0x54BB, - 1903: 0x54BF, - 1904: 0x54C6, - 1905: 0x54CA, - 1906: 0x54CD, - 1907: 0x54CE, - 1908: 0x54E0, - 1909: 0x54EA, - 1910: 0x54EC, - 1911: 0x54EF, - 1912: 0x54F6, - 1913: 0x54FC, - 1914: 0x54FE, - 1915: 0x54FF, - 1916: 0x5500, - 1917: 0x5501, - 1918: 0x5505, - 1919: 0x5508, - 1920: 0x5509, - 1921: 0x550C, - 1922: 0x550D, - 1923: 0x550E, - 1924: 0x5515, - 1925: 0x552A, - 1926: 0x552B, - 1927: 0x5532, - 1928: 0x5535, - 1929: 0x5536, - 1930: 0x553B, - 1931: 0x553C, - 1932: 0x553D, - 1933: 0x5541, - 1934: 0x5547, - 1935: 0x5549, - 1936: 0x554A, - 1937: 0x554D, - 1938: 0x5550, - 1939: 0x5551, - 1940: 0x5558, - 1941: 0x555A, - 1942: 0x555B, - 1943: 0x555E, - 1944: 0x5560, - 1945: 0x5561, - 1946: 0x5564, - 1947: 0x5566, - 1948: 0x557F, - 1949: 0x5581, - 1950: 0x5582, - 1951: 0x5586, - 1952: 0x5588, - 1953: 0x558E, - 1954: 0x558F, - 1955: 0x5591, - 1956: 0x5592, - 1957: 0x5593, - 1958: 0x5594, - 1959: 0x5597, - 1960: 0x55A3, - 1961: 0x55A4, - 1962: 0x55AD, - 1963: 0x55B2, - 1964: 0x55BF, - 1965: 0x55C1, - 1966: 0x55C3, - 1967: 0x55C6, - 1968: 0x55C9, - 1969: 0x55CB, - 1970: 0x55CC, - 1971: 0x55CE, - 1972: 0x55D1, - 1973: 0x55D2, - 1974: 0x55D3, - 1975: 0x55D7, - 1976: 0x55D8, - 1977: 0x55DB, - 1978: 0x55DE, - 1979: 0x55E2, - 1980: 0x55E9, - 1981: 0x55F6, - 1982: 0x55FF, - 1983: 0x5605, - 1984: 0x5608, - 1985: 0x560A, - 1986: 0x560D, - 1987: 0x560E, - 1988: 0x560F, - 1989: 0x5610, - 1990: 0x5611, - 1991: 0x5612, - 1992: 0x5619, - 1993: 0x562C, - 1994: 0x5630, - 1995: 0x5633, - 1996: 0x5635, - 1997: 0x5637, - 1998: 0x5639, - 1999: 0x563B, - 2000: 0x563C, - 2001: 0x563D, - 2002: 0x563F, - 2003: 0x5640, - 2004: 0x5641, - 2005: 0x5643, - 2006: 0x5644, - 2007: 0x5646, - 2008: 0x5649, - 2009: 0x564B, - 2010: 0x564D, - 2011: 0x564F, - 2012: 0x5654, - 2013: 0x565E, - 2014: 0x5660, - 2015: 0x5661, - 2016: 0x5662, - 2017: 0x5663, - 2018: 0x5666, - 2019: 0x5669, - 2020: 0x566D, - 2021: 0x566F, - 2022: 0x5671, - 2023: 0x5672, - 2024: 0x5675, - 2025: 0x5684, - 2026: 0x5685, - 2027: 0x5688, - 2028: 0x568B, - 2029: 0x568C, - 2030: 0x5695, - 2031: 0x5699, - 2032: 0x569A, - 2033: 0x569D, - 2034: 0x569E, - 2035: 0x569F, - 2036: 0x56A6, - 2037: 0x56A7, - 2038: 0x56A8, - 2039: 0x56A9, - 2040: 0x56AB, - 2041: 0x56AC, - 2042: 0x56AD, - 2043: 0x56B1, - 2044: 0x56B3, - 2045: 0x56B7, - 2046: 0x56BE, - 2047: 0x56C5, - 2048: 0x56C9, - 2049: 0x56CA, - 2050: 0x56CB, - 2051: 0x56CF, - 2052: 0x56D0, - 2053: 0x56CC, - 2054: 0x56CD, - 2055: 0x56D9, - 2056: 0x56DC, - 2057: 0x56DD, - 2058: 0x56DF, - 2059: 0x56E1, - 2060: 0x56E4, - 2061: 0x56E5, - 2062: 0x56E6, - 2063: 0x56E7, - 2064: 0x56E8, - 2065: 0x56F1, - 2066: 0x56EB, - 2067: 0x56ED, - 2068: 0x56F6, - 2069: 0x56F7, - 2070: 0x5701, - 2071: 0x5702, - 2072: 0x5707, - 2073: 0x570A, - 2074: 0x570C, - 2075: 0x5711, - 2076: 0x5715, - 2077: 0x571A, - 2078: 0x571B, - 2079: 0x571D, - 2080: 0x5720, - 2081: 0x5722, - 2082: 0x5723, - 2083: 0x5724, - 2084: 0x5725, - 2085: 0x5729, - 2086: 0x572A, - 2087: 0x572C, - 2088: 0x572E, - 2089: 0x572F, - 2090: 0x5733, - 2091: 0x5734, - 2092: 0x573D, - 2093: 0x573E, - 2094: 0x573F, - 2095: 0x5745, - 2096: 0x5746, - 2097: 0x574C, - 2098: 0x574D, - 2099: 0x5752, - 2100: 0x5762, - 2101: 0x5765, - 2102: 0x5767, - 2103: 0x5768, - 2104: 0x576B, - 2105: 0x576D, - 2106: 0x576E, - 2107: 0x576F, - 2108: 0x5770, - 2109: 0x5771, - 2110: 0x5773, - 2111: 0x5774, - 2112: 0x5775, - 2113: 0x5777, - 2114: 0x5779, - 2115: 0x577A, - 2116: 0x577B, - 2117: 0x577C, - 2118: 0x577E, - 2119: 0x5781, - 2120: 0x5783, - 2121: 0x578C, - 2122: 0x5794, - 2123: 0x5797, - 2124: 0x5799, - 2125: 0x579A, - 2126: 0x579C, - 2127: 0x579D, - 2128: 0x579E, - 2129: 0x579F, - 2130: 0x57A1, - 2131: 0x5795, - 2132: 0x57A7, - 2133: 0x57A8, - 2134: 0x57A9, - 2135: 0x57AC, - 2136: 0x57B8, - 2137: 0x57BD, - 2138: 0x57C7, - 2139: 0x57C8, - 2140: 0x57CC, - 2141: 0x57CF, - 2142: 0x57D5, - 2143: 0x57DD, - 2144: 0x57DE, - 2145: 0x57E4, - 2146: 0x57E6, - 2147: 0x57E7, - 2148: 0x57E9, - 2149: 0x57ED, - 2150: 0x57F0, - 2151: 0x57F5, - 2152: 0x57F6, - 2153: 0x57F8, - 2154: 0x57FD, - 2155: 0x57FE, - 2156: 0x57FF, - 2157: 0x5803, - 2158: 0x5804, - 2159: 0x5808, - 2160: 0x5809, - 2161: 0x57E1, - 2162: 0x580C, - 2163: 0x580D, - 2164: 0x581B, - 2165: 0x581E, - 2166: 0x581F, - 2167: 0x5820, - 2168: 0x5826, - 2169: 0x5827, - 2170: 0x582D, - 2171: 0x5832, - 2172: 0x5839, - 2173: 0x583F, - 2174: 0x5849, - 2175: 0x584C, - 2176: 0x584D, - 2177: 0x584F, - 2178: 0x5850, - 2179: 0x5855, - 2180: 0x585F, - 2181: 0x5861, - 2182: 0x5864, - 2183: 0x5867, - 2184: 0x5868, - 2185: 0x5878, - 2186: 0x587C, - 2187: 0x587F, - 2188: 0x5880, - 2189: 0x5881, - 2190: 0x5887, - 2191: 0x5888, - 2192: 0x5889, - 2193: 0x588A, - 2194: 0x588C, - 2195: 0x588D, - 2196: 0x588F, - 2197: 0x5890, - 2198: 0x5894, - 2199: 0x5896, - 2200: 0x589D, - 2201: 0x58A0, - 2202: 0x58A1, - 2203: 0x58A2, - 2204: 0x58A6, - 2205: 0x58A9, - 2206: 0x58B1, - 2207: 0x58B2, - 2208: 0x58C4, - 2209: 0x58BC, - 2210: 0x58C2, - 2211: 0x58C8, - 2212: 0x58CD, - 2213: 0x58CE, - 2214: 0x58D0, - 2215: 0x58D2, - 2216: 0x58D4, - 2217: 0x58D6, - 2218: 0x58DA, - 2219: 0x58DD, - 2220: 0x58E1, - 2221: 0x58E2, - 2222: 0x58E9, - 2223: 0x58F3, - 2224: 0x5905, - 2225: 0x5906, - 2226: 0x590B, - 2227: 0x590C, - 2228: 0x5912, - 2229: 0x5913, - 2230: 0x5914, - 2231: 0x8641, - 2232: 0x591D, - 2233: 0x5921, - 2234: 0x5923, - 2235: 0x5924, - 2236: 0x5928, - 2237: 0x592F, - 2238: 0x5930, - 2239: 0x5933, - 2240: 0x5935, - 2241: 0x5936, - 2242: 0x593F, - 2243: 0x5943, - 2244: 0x5946, - 2245: 0x5952, - 2246: 0x5953, - 2247: 0x5959, - 2248: 0x595B, - 2249: 0x595D, - 2250: 0x595E, - 2251: 0x595F, - 2252: 0x5961, - 2253: 0x5963, - 2254: 0x596B, - 2255: 0x596D, - 2256: 0x596F, - 2257: 0x5972, - 2258: 0x5975, - 2259: 0x5976, - 2260: 0x5979, - 2261: 0x597B, - 2262: 0x597C, - 2263: 0x598B, - 2264: 0x598C, - 2265: 0x598E, - 2266: 0x5992, - 2267: 0x5995, - 2268: 0x5997, - 2269: 0x599F, - 2270: 0x59A4, - 2271: 0x59A7, - 2272: 0x59AD, - 2273: 0x59AE, - 2274: 0x59AF, - 2275: 0x59B0, - 2276: 0x59B3, - 2277: 0x59B7, - 2278: 0x59BA, - 2279: 0x59BC, - 2280: 0x59C1, - 2281: 0x59C3, - 2282: 0x59C4, - 2283: 0x59C8, - 2284: 0x59CA, - 2285: 0x59CD, - 2286: 0x59D2, - 2287: 0x59DD, - 2288: 0x59DE, - 2289: 0x59DF, - 2290: 0x59E3, - 2291: 0x59E4, - 2292: 0x59E7, - 2293: 0x59EE, - 2294: 0x59EF, - 2295: 0x59F1, - 2296: 0x59F2, - 2297: 0x59F4, - 2298: 0x59F7, - 2299: 0x5A00, - 2300: 0x5A04, - 2301: 0x5A0C, - 2302: 0x5A0D, - 2303: 0x5A0E, - 2304: 0x5A12, - 2305: 0x5A13, - 2306: 0x5A1E, - 2307: 0x5A23, - 2308: 0x5A24, - 2309: 0x5A27, - 2310: 0x5A28, - 2311: 0x5A2A, - 2312: 0x5A2D, - 2313: 0x5A30, - 2314: 0x5A44, - 2315: 0x5A45, - 2316: 0x5A47, - 2317: 0x5A48, - 2318: 0x5A4C, - 2319: 0x5A50, - 2320: 0x5A55, - 2321: 0x5A5E, - 2322: 0x5A63, - 2323: 0x5A65, - 2324: 0x5A67, - 2325: 0x5A6D, - 2326: 0x5A77, - 2327: 0x5A7A, - 2328: 0x5A7B, - 2329: 0x5A7E, - 2330: 0x5A8B, - 2331: 0x5A90, - 2332: 0x5A93, - 2333: 0x5A96, - 2334: 0x5A99, - 2335: 0x5A9C, - 2336: 0x5A9E, - 2337: 0x5A9F, - 2338: 0x5AA0, - 2339: 0x5AA2, - 2340: 0x5AA7, - 2341: 0x5AAC, - 2342: 0x5AB1, - 2343: 0x5AB2, - 2344: 0x5AB3, - 2345: 0x5AB5, - 2346: 0x5AB8, - 2347: 0x5ABA, - 2348: 0x5ABB, - 2349: 0x5ABF, - 2350: 0x5AC4, - 2351: 0x5AC6, - 2352: 0x5AC8, - 2353: 0x5ACF, - 2354: 0x5ADA, - 2355: 0x5ADC, - 2356: 0x5AE0, - 2357: 0x5AE5, - 2358: 0x5AEA, - 2359: 0x5AEE, - 2360: 0x5AF5, - 2361: 0x5AF6, - 2362: 0x5AFD, - 2363: 0x5B00, - 2364: 0x5B01, - 2365: 0x5B08, - 2366: 0x5B17, - 2367: 0x5B34, - 2368: 0x5B19, - 2369: 0x5B1B, - 2370: 0x5B1D, - 2371: 0x5B21, - 2372: 0x5B25, - 2373: 0x5B2D, - 2374: 0x5B38, - 2375: 0x5B41, - 2376: 0x5B4B, - 2377: 0x5B4C, - 2378: 0x5B52, - 2379: 0x5B56, - 2380: 0x5B5E, - 2381: 0x5B68, - 2382: 0x5B6E, - 2383: 0x5B6F, - 2384: 0x5B7C, - 2385: 0x5B7D, - 2386: 0x5B7E, - 2387: 0x5B7F, - 2388: 0x5B81, - 2389: 0x5B84, - 2390: 0x5B86, - 2391: 0x5B8A, - 2392: 0x5B8E, - 2393: 0x5B90, - 2394: 0x5B91, - 2395: 0x5B93, - 2396: 0x5B94, - 2397: 0x5B96, - 2398: 0x5BA8, - 2399: 0x5BA9, - 2400: 0x5BAC, - 2401: 0x5BAD, - 2402: 0x5BAF, - 2403: 0x5BB1, - 2404: 0x5BB2, - 2405: 0x5BB7, - 2406: 0x5BBA, - 2407: 0x5BBC, - 2408: 0x5BC0, - 2409: 0x5BC1, - 2410: 0x5BCD, - 2411: 0x5BCF, - 2412: 0x5BD6, - 2413: 0x5BD7, - 2414: 0x5BD8, - 2415: 0x5BD9, - 2416: 0x5BDA, - 2417: 0x5BE0, - 2418: 0x5BEF, - 2419: 0x5BF1, - 2420: 0x5BF4, - 2421: 0x5BFD, - 2422: 0x5C0C, - 2423: 0x5C17, - 2424: 0x5C1E, - 2425: 0x5C1F, - 2426: 0x5C23, - 2427: 0x5C26, - 2428: 0x5C29, - 2429: 0x5C2B, - 2430: 0x5C2C, - 2431: 0x5C2E, - 2432: 0x5C30, - 2433: 0x5C32, - 2434: 0x5C35, - 2435: 0x5C36, - 2436: 0x5C59, - 2437: 0x5C5A, - 2438: 0x5C5C, - 2439: 0x5C62, - 2440: 0x5C63, - 2441: 0x5C67, - 2442: 0x5C68, - 2443: 0x5C69, - 2444: 0x5C6D, - 2445: 0x5C70, - 2446: 0x5C74, - 2447: 0x5C75, - 2448: 0x5C7A, - 2449: 0x5C7B, - 2450: 0x5C7C, - 2451: 0x5C7D, - 2452: 0x5C87, - 2453: 0x5C88, - 2454: 0x5C8A, - 2455: 0x5C8F, - 2456: 0x5C92, - 2457: 0x5C9D, - 2458: 0x5C9F, - 2459: 0x5CA0, - 2460: 0x5CA2, - 2461: 0x5CA3, - 2462: 0x5CA6, - 2463: 0x5CAA, - 2464: 0x5CB2, - 2465: 0x5CB4, - 2466: 0x5CB5, - 2467: 0x5CBA, - 2468: 0x5CC9, - 2469: 0x5CCB, - 2470: 0x5CD2, - 2471: 0x5CDD, - 2472: 0x5CD7, - 2473: 0x5CEE, - 2474: 0x5CF1, - 2475: 0x5CF2, - 2476: 0x5CF4, - 2477: 0x5D01, - 2478: 0x5D06, - 2479: 0x5D0D, - 2480: 0x5D12, - 2481: 0x5D2B, - 2482: 0x5D23, - 2483: 0x5D24, - 2484: 0x5D26, - 2485: 0x5D27, - 2486: 0x5D31, - 2487: 0x5D34, - 2488: 0x5D39, - 2489: 0x5D3D, - 2490: 0x5D3F, - 2491: 0x5D42, - 2492: 0x5D43, - 2493: 0x5D46, - 2494: 0x5D48, - 2495: 0x5D55, - 2496: 0x5D51, - 2497: 0x5D59, - 2498: 0x5D4A, - 2499: 0x5D5F, - 2500: 0x5D60, - 2501: 0x5D61, - 2502: 0x5D62, - 2503: 0x5D64, - 2504: 0x5D6A, - 2505: 0x5D6D, - 2506: 0x5D70, - 2507: 0x5D79, - 2508: 0x5D7A, - 2509: 0x5D7E, - 2510: 0x5D7F, - 2511: 0x5D81, - 2512: 0x5D83, - 2513: 0x5D88, - 2514: 0x5D8A, - 2515: 0x5D92, - 2516: 0x5D93, - 2517: 0x5D94, - 2518: 0x5D95, - 2519: 0x5D99, - 2520: 0x5D9B, - 2521: 0x5D9F, - 2522: 0x5DA0, - 2523: 0x5DA7, - 2524: 0x5DAB, - 2525: 0x5DB0, - 2526: 0x5DB4, - 2527: 0x5DB8, - 2528: 0x5DB9, - 2529: 0x5DC3, - 2530: 0x5DC7, - 2531: 0x5DCB, - 2532: 0x5DD0, - 2533: 0x5DCE, - 2534: 0x5DD8, - 2535: 0x5DD9, - 2536: 0x5DE0, - 2537: 0x5DE4, - 2538: 0x5DE9, - 2539: 0x5DF8, - 2540: 0x5DF9, - 2541: 0x5E00, - 2542: 0x5E07, - 2543: 0x5E0D, - 2544: 0x5E12, - 2545: 0x5E14, - 2546: 0x5E15, - 2547: 0x5E18, - 2548: 0x5E1F, - 2549: 0x5E20, - 2550: 0x5E2E, - 2551: 0x5E28, - 2552: 0x5E32, - 2553: 0x5E35, - 2554: 0x5E3E, - 2555: 0x5E4B, - 2556: 0x5E50, - 2557: 0x5E49, - 2558: 0x5E51, - 2559: 0x5E56, - 2560: 0x5E58, - 2561: 0x5E5B, - 2562: 0x5E5C, - 2563: 0x5E5E, - 2564: 0x5E68, - 2565: 0x5E6A, - 2566: 0x5E6B, - 2567: 0x5E6C, - 2568: 0x5E6D, - 2569: 0x5E6E, - 2570: 0x5E70, - 2571: 0x5E80, - 2572: 0x5E8B, - 2573: 0x5E8E, - 2574: 0x5EA2, - 2575: 0x5EA4, - 2576: 0x5EA5, - 2577: 0x5EA8, - 2578: 0x5EAA, - 2579: 0x5EAC, - 2580: 0x5EB1, - 2581: 0x5EB3, - 2582: 0x5EBD, - 2583: 0x5EBE, - 2584: 0x5EBF, - 2585: 0x5EC6, - 2586: 0x5ECC, - 2587: 0x5ECB, - 2588: 0x5ECE, - 2589: 0x5ED1, - 2590: 0x5ED2, - 2591: 0x5ED4, - 2592: 0x5ED5, - 2593: 0x5EDC, - 2594: 0x5EDE, - 2595: 0x5EE5, - 2596: 0x5EEB, - 2597: 0x5F02, - 2598: 0x5F06, - 2599: 0x5F07, - 2600: 0x5F08, - 2601: 0x5F0E, - 2602: 0x5F19, - 2603: 0x5F1C, - 2604: 0x5F1D, - 2605: 0x5F21, - 2606: 0x5F22, - 2607: 0x5F23, - 2608: 0x5F24, - 2609: 0x5F28, - 2610: 0x5F2B, - 2611: 0x5F2C, - 2612: 0x5F2E, - 2613: 0x5F30, - 2614: 0x5F34, - 2615: 0x5F36, - 2616: 0x5F3B, - 2617: 0x5F3D, - 2618: 0x5F3F, - 2619: 0x5F40, - 2620: 0x5F44, - 2621: 0x5F45, - 2622: 0x5F47, - 2623: 0x5F4D, - 2624: 0x5F50, - 2625: 0x5F54, - 2626: 0x5F58, - 2627: 0x5F5B, - 2628: 0x5F60, - 2629: 0x5F63, - 2630: 0x5F64, - 2631: 0x5F67, - 2632: 0x5F6F, - 2633: 0x5F72, - 2634: 0x5F74, - 2635: 0x5F75, - 2636: 0x5F78, - 2637: 0x5F7A, - 2638: 0x5F7D, - 2639: 0x5F7E, - 2640: 0x5F89, - 2641: 0x5F8D, - 2642: 0x5F8F, - 2643: 0x5F96, - 2644: 0x5F9C, - 2645: 0x5F9D, - 2646: 0x5FA2, - 2647: 0x5FA7, - 2648: 0x5FAB, - 2649: 0x5FA4, - 2650: 0x5FAC, - 2651: 0x5FAF, - 2652: 0x5FB0, - 2653: 0x5FB1, - 2654: 0x5FB8, - 2655: 0x5FC4, - 2656: 0x5FC7, - 2657: 0x5FC8, - 2658: 0x5FC9, - 2659: 0x5FCB, - 2660: 0x5FD0, - 2661: 0x5FD1, - 2662: 0x5FD2, - 2663: 0x5FD3, - 2664: 0x5FD4, - 2665: 0x5FDE, - 2666: 0x5FE1, - 2667: 0x5FE2, - 2668: 0x5FE8, - 2669: 0x5FE9, - 2670: 0x5FEA, - 2671: 0x5FEC, - 2672: 0x5FED, - 2673: 0x5FEE, - 2674: 0x5FEF, - 2675: 0x5FF2, - 2676: 0x5FF3, - 2677: 0x5FF6, - 2678: 0x5FFA, - 2679: 0x5FFC, - 2680: 0x6007, - 2681: 0x600A, - 2682: 0x600D, - 2683: 0x6013, - 2684: 0x6014, - 2685: 0x6017, - 2686: 0x6018, - 2687: 0x601A, - 2688: 0x601F, - 2689: 0x6024, - 2690: 0x602D, - 2691: 0x6033, - 2692: 0x6035, - 2693: 0x6040, - 2694: 0x6047, - 2695: 0x6048, - 2696: 0x6049, - 2697: 0x604C, - 2698: 0x6051, - 2699: 0x6054, - 2700: 0x6056, - 2701: 0x6057, - 2702: 0x605D, - 2703: 0x6061, - 2704: 0x6067, - 2705: 0x6071, - 2706: 0x607E, - 2707: 0x607F, - 2708: 0x6082, - 2709: 0x6086, - 2710: 0x6088, - 2711: 0x608A, - 2712: 0x608E, - 2713: 0x6091, - 2714: 0x6093, - 2715: 0x6095, - 2716: 0x6098, - 2717: 0x609D, - 2718: 0x609E, - 2719: 0x60A2, - 2720: 0x60A4, - 2721: 0x60A5, - 2722: 0x60A8, - 2723: 0x60B0, - 2724: 0x60B1, - 2725: 0x60B7, - 2726: 0x60BB, - 2727: 0x60BE, - 2728: 0x60C2, - 2729: 0x60C4, - 2730: 0x60C8, - 2731: 0x60C9, - 2732: 0x60CA, - 2733: 0x60CB, - 2734: 0x60CE, - 2735: 0x60CF, - 2736: 0x60D4, - 2737: 0x60D5, - 2738: 0x60D9, - 2739: 0x60DB, - 2740: 0x60DD, - 2741: 0x60DE, - 2742: 0x60E2, - 2743: 0x60E5, - 2744: 0x60F2, - 2745: 0x60F5, - 2746: 0x60F8, - 2747: 0x60FC, - 2748: 0x60FD, - 2749: 0x6102, - 2750: 0x6107, - 2751: 0x610A, - 2752: 0x610C, - 2753: 0x6110, - 2754: 0x6111, - 2755: 0x6112, - 2756: 0x6113, - 2757: 0x6114, - 2758: 0x6116, - 2759: 0x6117, - 2760: 0x6119, - 2761: 0x611C, - 2762: 0x611E, - 2763: 0x6122, - 2764: 0x612A, - 2765: 0x612B, - 2766: 0x6130, - 2767: 0x6131, - 2768: 0x6135, - 2769: 0x6136, - 2770: 0x6137, - 2771: 0x6139, - 2772: 0x6141, - 2773: 0x6145, - 2774: 0x6146, - 2775: 0x6149, - 2776: 0x615E, - 2777: 0x6160, - 2778: 0x616C, - 2779: 0x6172, - 2780: 0x6178, - 2781: 0x617B, - 2782: 0x617C, - 2783: 0x617F, - 2784: 0x6180, - 2785: 0x6181, - 2786: 0x6183, - 2787: 0x6184, - 2788: 0x618B, - 2789: 0x618D, - 2790: 0x6192, - 2791: 0x6193, - 2792: 0x6197, - 2793: 0x6198, - 2794: 0x619C, - 2795: 0x619D, - 2796: 0x619F, - 2797: 0x61A0, - 2798: 0x61A5, - 2799: 0x61A8, - 2800: 0x61AA, - 2801: 0x61AD, - 2802: 0x61B8, - 2803: 0x61B9, - 2804: 0x61BC, - 2805: 0x61C0, - 2806: 0x61C1, - 2807: 0x61C2, - 2808: 0x61CE, - 2809: 0x61CF, - 2810: 0x61D5, - 2811: 0x61DC, - 2812: 0x61DD, - 2813: 0x61DE, - 2814: 0x61DF, - 2815: 0x61E1, - 2816: 0x61E2, - 2817: 0x61E7, - 2818: 0x61E9, - 2819: 0x61E5, - 2820: 0x61EC, - 2821: 0x61ED, - 2822: 0x61EF, - 2823: 0x6201, - 2824: 0x6203, - 2825: 0x6204, - 2826: 0x6207, - 2827: 0x6213, - 2828: 0x6215, - 2829: 0x621C, - 2830: 0x6220, - 2831: 0x6222, - 2832: 0x6223, - 2833: 0x6227, - 2834: 0x6229, - 2835: 0x622B, - 2836: 0x6239, - 2837: 0x623D, - 2838: 0x6242, - 2839: 0x6243, - 2840: 0x6244, - 2841: 0x6246, - 2842: 0x624C, - 2843: 0x6250, - 2844: 0x6251, - 2845: 0x6252, - 2846: 0x6254, - 2847: 0x6256, - 2848: 0x625A, - 2849: 0x625C, - 2850: 0x6264, - 2851: 0x626D, - 2852: 0x626F, - 2853: 0x6273, - 2854: 0x627A, - 2855: 0x627D, - 2856: 0x628D, - 2857: 0x628E, - 2858: 0x628F, - 2859: 0x6290, - 2860: 0x62A6, - 2861: 0x62A8, - 2862: 0x62B3, - 2863: 0x62B6, - 2864: 0x62B7, - 2865: 0x62BA, - 2866: 0x62BE, - 2867: 0x62BF, - 2868: 0x62C4, - 2869: 0x62CE, - 2870: 0x62D5, - 2871: 0x62D6, - 2872: 0x62DA, - 2873: 0x62EA, - 2874: 0x62F2, - 2875: 0x62F4, - 2876: 0x62FC, - 2877: 0x62FD, - 2878: 0x6303, - 2879: 0x6304, - 2880: 0x630A, - 2881: 0x630B, - 2882: 0x630D, - 2883: 0x6310, - 2884: 0x6313, - 2885: 0x6316, - 2886: 0x6318, - 2887: 0x6329, - 2888: 0x632A, - 2889: 0x632D, - 2890: 0x6335, - 2891: 0x6336, - 2892: 0x6339, - 2893: 0x633C, - 2894: 0x6341, - 2895: 0x6342, - 2896: 0x6343, - 2897: 0x6344, - 2898: 0x6346, - 2899: 0x634A, - 2900: 0x634B, - 2901: 0x634E, - 2902: 0x6352, - 2903: 0x6353, - 2904: 0x6354, - 2905: 0x6358, - 2906: 0x635B, - 2907: 0x6365, - 2908: 0x6366, - 2909: 0x636C, - 2910: 0x636D, - 2911: 0x6371, - 2912: 0x6374, - 2913: 0x6375, - 2914: 0x6378, - 2915: 0x637C, - 2916: 0x637D, - 2917: 0x637F, - 2918: 0x6382, - 2919: 0x6384, - 2920: 0x6387, - 2921: 0x638A, - 2922: 0x6390, - 2923: 0x6394, - 2924: 0x6395, - 2925: 0x6399, - 2926: 0x639A, - 2927: 0x639E, - 2928: 0x63A4, - 2929: 0x63A6, - 2930: 0x63AD, - 2931: 0x63AE, - 2932: 0x63AF, - 2933: 0x63BD, - 2934: 0x63C1, - 2935: 0x63C5, - 2936: 0x63C8, - 2937: 0x63CE, - 2938: 0x63D1, - 2939: 0x63D3, - 2940: 0x63D4, - 2941: 0x63D5, - 2942: 0x63DC, - 2943: 0x63E0, - 2944: 0x63E5, - 2945: 0x63EA, - 2946: 0x63EC, - 2947: 0x63F2, - 2948: 0x63F3, - 2949: 0x63F5, - 2950: 0x63F8, - 2951: 0x63F9, - 2952: 0x6409, - 2953: 0x640A, - 2954: 0x6410, - 2955: 0x6412, - 2956: 0x6414, - 2957: 0x6418, - 2958: 0x641E, - 2959: 0x6420, - 2960: 0x6422, - 2961: 0x6424, - 2962: 0x6425, - 2963: 0x6429, - 2964: 0x642A, - 2965: 0x642F, - 2966: 0x6430, - 2967: 0x6435, - 2968: 0x643D, - 2969: 0x643F, - 2970: 0x644B, - 2971: 0x644F, - 2972: 0x6451, - 2973: 0x6452, - 2974: 0x6453, - 2975: 0x6454, - 2976: 0x645A, - 2977: 0x645B, - 2978: 0x645C, - 2979: 0x645D, - 2980: 0x645F, - 2981: 0x6460, - 2982: 0x6461, - 2983: 0x6463, - 2984: 0x646D, - 2985: 0x6473, - 2986: 0x6474, - 2987: 0x647B, - 2988: 0x647D, - 2989: 0x6485, - 2990: 0x6487, - 2991: 0x648F, - 2992: 0x6490, - 2993: 0x6491, - 2994: 0x6498, - 2995: 0x6499, - 2996: 0x649B, - 2997: 0x649D, - 2998: 0x649F, - 2999: 0x64A1, - 3000: 0x64A3, - 3001: 0x64A6, - 3002: 0x64A8, - 3003: 0x64AC, - 3004: 0x64B3, - 3005: 0x64BD, - 3006: 0x64BE, - 3007: 0x64BF, - 3008: 0x64C4, - 3009: 0x64C9, - 3010: 0x64CA, - 3011: 0x64CB, - 3012: 0x64CC, - 3013: 0x64CE, - 3014: 0x64D0, - 3015: 0x64D1, - 3016: 0x64D5, - 3017: 0x64D7, - 3018: 0x64E4, - 3019: 0x64E5, - 3020: 0x64E9, - 3021: 0x64EA, - 3022: 0x64ED, - 3023: 0x64F0, - 3024: 0x64F5, - 3025: 0x64F7, - 3026: 0x64FB, - 3027: 0x64FF, - 3028: 0x6501, - 3029: 0x6504, - 3030: 0x6508, - 3031: 0x6509, - 3032: 0x650A, - 3033: 0x650F, - 3034: 0x6513, - 3035: 0x6514, - 3036: 0x6516, - 3037: 0x6519, - 3038: 0x651B, - 3039: 0x651E, - 3040: 0x651F, - 3041: 0x6522, - 3042: 0x6526, - 3043: 0x6529, - 3044: 0x652E, - 3045: 0x6531, - 3046: 0x653A, - 3047: 0x653C, - 3048: 0x653D, - 3049: 0x6543, - 3050: 0x6547, - 3051: 0x6549, - 3052: 0x6550, - 3053: 0x6552, - 3054: 0x6554, - 3055: 0x655F, - 3056: 0x6560, - 3057: 0x6567, - 3058: 0x656B, - 3059: 0x657A, - 3060: 0x657D, - 3061: 0x6581, - 3062: 0x6585, - 3063: 0x658A, - 3064: 0x6592, - 3065: 0x6595, - 3066: 0x6598, - 3067: 0x659D, - 3068: 0x65A0, - 3069: 0x65A3, - 3070: 0x65A6, - 3071: 0x65AE, - 3072: 0x65B2, - 3073: 0x65B3, - 3074: 0x65B4, - 3075: 0x65BF, - 3076: 0x65C2, - 3077: 0x65C8, - 3078: 0x65C9, - 3079: 0x65CE, - 3080: 0x65D0, - 3081: 0x65D4, - 3082: 0x65D6, - 3083: 0x65D8, - 3084: 0x65DF, - 3085: 0x65F0, - 3086: 0x65F2, - 3087: 0x65F4, - 3088: 0x65F5, - 3089: 0x65F9, - 3090: 0x65FE, - 3091: 0x65FF, - 3092: 0x6600, - 3093: 0x6604, - 3094: 0x6608, - 3095: 0x6609, - 3096: 0x660D, - 3097: 0x6611, - 3098: 0x6612, - 3099: 0x6615, - 3100: 0x6616, - 3101: 0x661D, - 3102: 0x661E, - 3103: 0x6621, - 3104: 0x6622, - 3105: 0x6623, - 3106: 0x6624, - 3107: 0x6626, - 3108: 0x6629, - 3109: 0x662A, - 3110: 0x662B, - 3111: 0x662C, - 3112: 0x662E, - 3113: 0x6630, - 3114: 0x6631, - 3115: 0x6633, - 3116: 0x6639, - 3117: 0x6637, - 3118: 0x6640, - 3119: 0x6645, - 3120: 0x6646, - 3121: 0x664A, - 3122: 0x664C, - 3123: 0x6651, - 3124: 0x664E, - 3125: 0x6657, - 3126: 0x6658, - 3127: 0x6659, - 3128: 0x665B, - 3129: 0x665C, - 3130: 0x6660, - 3131: 0x6661, - 3132: 0x66FB, - 3133: 0x666A, - 3134: 0x666B, - 3135: 0x666C, - 3136: 0x667E, - 3137: 0x6673, - 3138: 0x6675, - 3139: 0x667F, - 3140: 0x6677, - 3141: 0x6678, - 3142: 0x6679, - 3143: 0x667B, - 3144: 0x6680, - 3145: 0x667C, - 3146: 0x668B, - 3147: 0x668C, - 3148: 0x668D, - 3149: 0x6690, - 3150: 0x6692, - 3151: 0x6699, - 3152: 0x669A, - 3153: 0x669B, - 3154: 0x669C, - 3155: 0x669F, - 3156: 0x66A0, - 3157: 0x66A4, - 3158: 0x66AD, - 3159: 0x66B1, - 3160: 0x66B2, - 3161: 0x66B5, - 3162: 0x66BB, - 3163: 0x66BF, - 3164: 0x66C0, - 3165: 0x66C2, - 3166: 0x66C3, - 3167: 0x66C8, - 3168: 0x66CC, - 3169: 0x66CE, - 3170: 0x66CF, - 3171: 0x66D4, - 3172: 0x66DB, - 3173: 0x66DF, - 3174: 0x66E8, - 3175: 0x66EB, - 3176: 0x66EC, - 3177: 0x66EE, - 3178: 0x66FA, - 3179: 0x6705, - 3180: 0x6707, - 3181: 0x670E, - 3182: 0x6713, - 3183: 0x6719, - 3184: 0x671C, - 3185: 0x6720, - 3186: 0x6722, - 3187: 0x6733, - 3188: 0x673E, - 3189: 0x6745, - 3190: 0x6747, - 3191: 0x6748, - 3192: 0x674C, - 3193: 0x6754, - 3194: 0x6755, - 3195: 0x675D, - 3196: 0x6766, - 3197: 0x676C, - 3198: 0x676E, - 3199: 0x6774, - 3200: 0x6776, - 3201: 0x677B, - 3202: 0x6781, - 3203: 0x6784, - 3204: 0x678E, - 3205: 0x678F, - 3206: 0x6791, - 3207: 0x6793, - 3208: 0x6796, - 3209: 0x6798, - 3210: 0x6799, - 3211: 0x679B, - 3212: 0x67B0, - 3213: 0x67B1, - 3214: 0x67B2, - 3215: 0x67B5, - 3216: 0x67BB, - 3217: 0x67BC, - 3218: 0x67BD, - 3219: 0x67F9, - 3220: 0x67C0, - 3221: 0x67C2, - 3222: 0x67C3, - 3223: 0x67C5, - 3224: 0x67C8, - 3225: 0x67C9, - 3226: 0x67D2, - 3227: 0x67D7, - 3228: 0x67D9, - 3229: 0x67DC, - 3230: 0x67E1, - 3231: 0x67E6, - 3232: 0x67F0, - 3233: 0x67F2, - 3234: 0x67F6, - 3235: 0x67F7, - 3236: 0x6852, - 3237: 0x6814, - 3238: 0x6819, - 3239: 0x681D, - 3240: 0x681F, - 3241: 0x6828, - 3242: 0x6827, - 3243: 0x682C, - 3244: 0x682D, - 3245: 0x682F, - 3246: 0x6830, - 3247: 0x6831, - 3248: 0x6833, - 3249: 0x683B, - 3250: 0x683F, - 3251: 0x6844, - 3252: 0x6845, - 3253: 0x684A, - 3254: 0x684C, - 3255: 0x6855, - 3256: 0x6857, - 3257: 0x6858, - 3258: 0x685B, - 3259: 0x686B, - 3260: 0x686E, - 3261: 0x686F, - 3262: 0x6870, - 3263: 0x6871, - 3264: 0x6872, - 3265: 0x6875, - 3266: 0x6879, - 3267: 0x687A, - 3268: 0x687B, - 3269: 0x687C, - 3270: 0x6882, - 3271: 0x6884, - 3272: 0x6886, - 3273: 0x6888, - 3274: 0x6896, - 3275: 0x6898, - 3276: 0x689A, - 3277: 0x689C, - 3278: 0x68A1, - 3279: 0x68A3, - 3280: 0x68A5, - 3281: 0x68A9, - 3282: 0x68AA, - 3283: 0x68AE, - 3284: 0x68B2, - 3285: 0x68BB, - 3286: 0x68C5, - 3287: 0x68C8, - 3288: 0x68CC, - 3289: 0x68CF, - 3290: 0x68D0, - 3291: 0x68D1, - 3292: 0x68D3, - 3293: 0x68D6, - 3294: 0x68D9, - 3295: 0x68DC, - 3296: 0x68DD, - 3297: 0x68E5, - 3298: 0x68E8, - 3299: 0x68EA, - 3300: 0x68EB, - 3301: 0x68EC, - 3302: 0x68ED, - 3303: 0x68F0, - 3304: 0x68F1, - 3305: 0x68F5, - 3306: 0x68F6, - 3307: 0x68FB, - 3308: 0x68FC, - 3309: 0x68FD, - 3310: 0x6906, - 3311: 0x6909, - 3312: 0x690A, - 3313: 0x6910, - 3314: 0x6911, - 3315: 0x6913, - 3316: 0x6916, - 3317: 0x6917, - 3318: 0x6931, - 3319: 0x6933, - 3320: 0x6935, - 3321: 0x6938, - 3322: 0x693B, - 3323: 0x6942, - 3324: 0x6945, - 3325: 0x6949, - 3326: 0x694E, - 3327: 0x6957, - 3328: 0x695B, - 3329: 0x6963, - 3330: 0x6964, - 3331: 0x6965, - 3332: 0x6966, - 3333: 0x6968, - 3334: 0x6969, - 3335: 0x696C, - 3336: 0x6970, - 3337: 0x6971, - 3338: 0x6972, - 3339: 0x697A, - 3340: 0x697B, - 3341: 0x697F, - 3342: 0x6980, - 3343: 0x698D, - 3344: 0x6992, - 3345: 0x6996, - 3346: 0x6998, - 3347: 0x69A1, - 3348: 0x69A5, - 3349: 0x69A6, - 3350: 0x69A8, - 3351: 0x69AB, - 3352: 0x69AD, - 3353: 0x69AF, - 3354: 0x69B7, - 3355: 0x69B8, - 3356: 0x69BA, - 3357: 0x69BC, - 3358: 0x69C5, - 3359: 0x69C8, - 3360: 0x69D1, - 3361: 0x69D6, - 3362: 0x69D7, - 3363: 0x69E2, - 3364: 0x69E5, - 3365: 0x69EE, - 3366: 0x69EF, - 3367: 0x69F1, - 3368: 0x69F3, - 3369: 0x69F5, - 3370: 0x69FE, - 3371: 0x6A00, - 3372: 0x6A01, - 3373: 0x6A03, - 3374: 0x6A0F, - 3375: 0x6A11, - 3376: 0x6A15, - 3377: 0x6A1A, - 3378: 0x6A1D, - 3379: 0x6A20, - 3380: 0x6A24, - 3381: 0x6A28, - 3382: 0x6A30, - 3383: 0x6A32, - 3384: 0x6A34, - 3385: 0x6A37, - 3386: 0x6A3B, - 3387: 0x6A3E, - 3388: 0x6A3F, - 3389: 0x6A45, - 3390: 0x6A46, - 3391: 0x6A49, - 3392: 0x6A4A, - 3393: 0x6A4E, - 3394: 0x6A50, - 3395: 0x6A51, - 3396: 0x6A52, - 3397: 0x6A55, - 3398: 0x6A56, - 3399: 0x6A5B, - 3400: 0x6A64, - 3401: 0x6A67, - 3402: 0x6A6A, - 3403: 0x6A71, - 3404: 0x6A73, - 3405: 0x6A7E, - 3406: 0x6A81, - 3407: 0x6A83, - 3408: 0x6A86, - 3409: 0x6A87, - 3410: 0x6A89, - 3411: 0x6A8B, - 3412: 0x6A91, - 3413: 0x6A9B, - 3414: 0x6A9D, - 3415: 0x6A9E, - 3416: 0x6A9F, - 3417: 0x6AA5, - 3418: 0x6AAB, - 3419: 0x6AAF, - 3420: 0x6AB0, - 3421: 0x6AB1, - 3422: 0x6AB4, - 3423: 0x6ABD, - 3424: 0x6ABE, - 3425: 0x6ABF, - 3426: 0x6AC6, - 3427: 0x6AC9, - 3428: 0x6AC8, - 3429: 0x6ACC, - 3430: 0x6AD0, - 3431: 0x6AD4, - 3432: 0x6AD5, - 3433: 0x6AD6, - 3434: 0x6ADC, - 3435: 0x6ADD, - 3436: 0x6AE4, - 3437: 0x6AE7, - 3438: 0x6AEC, - 3439: 0x6AF0, - 3440: 0x6AF1, - 3441: 0x6AF2, - 3442: 0x6AFC, - 3443: 0x6AFD, - 3444: 0x6B02, - 3445: 0x6B03, - 3446: 0x6B06, - 3447: 0x6B07, - 3448: 0x6B09, - 3449: 0x6B0F, - 3450: 0x6B10, - 3451: 0x6B11, - 3452: 0x6B17, - 3453: 0x6B1B, - 3454: 0x6B1E, - 3455: 0x6B24, - 3456: 0x6B28, - 3457: 0x6B2B, - 3458: 0x6B2C, - 3459: 0x6B2F, - 3460: 0x6B35, - 3461: 0x6B36, - 3462: 0x6B3B, - 3463: 0x6B3F, - 3464: 0x6B46, - 3465: 0x6B4A, - 3466: 0x6B4D, - 3467: 0x6B52, - 3468: 0x6B56, - 3469: 0x6B58, - 3470: 0x6B5D, - 3471: 0x6B60, - 3472: 0x6B67, - 3473: 0x6B6B, - 3474: 0x6B6E, - 3475: 0x6B70, - 3476: 0x6B75, - 3477: 0x6B7D, - 3478: 0x6B7E, - 3479: 0x6B82, - 3480: 0x6B85, - 3481: 0x6B97, - 3482: 0x6B9B, - 3483: 0x6B9F, - 3484: 0x6BA0, - 3485: 0x6BA2, - 3486: 0x6BA3, - 3487: 0x6BA8, - 3488: 0x6BA9, - 3489: 0x6BAC, - 3490: 0x6BAD, - 3491: 0x6BAE, - 3492: 0x6BB0, - 3493: 0x6BB8, - 3494: 0x6BB9, - 3495: 0x6BBD, - 3496: 0x6BBE, - 3497: 0x6BC3, - 3498: 0x6BC4, - 3499: 0x6BC9, - 3500: 0x6BCC, - 3501: 0x6BD6, - 3502: 0x6BDA, - 3503: 0x6BE1, - 3504: 0x6BE3, - 3505: 0x6BE6, - 3506: 0x6BE7, - 3507: 0x6BEE, - 3508: 0x6BF1, - 3509: 0x6BF7, - 3510: 0x6BF9, - 3511: 0x6BFF, - 3512: 0x6C02, - 3513: 0x6C04, - 3514: 0x6C05, - 3515: 0x6C09, - 3516: 0x6C0D, - 3517: 0x6C0E, - 3518: 0x6C10, - 3519: 0x6C12, - 3520: 0x6C19, - 3521: 0x6C1F, - 3522: 0x6C26, - 3523: 0x6C27, - 3524: 0x6C28, - 3525: 0x6C2C, - 3526: 0x6C2E, - 3527: 0x6C33, - 3528: 0x6C35, - 3529: 0x6C36, - 3530: 0x6C3A, - 3531: 0x6C3B, - 3532: 0x6C3F, - 3533: 0x6C4A, - 3534: 0x6C4B, - 3535: 0x6C4D, - 3536: 0x6C4F, - 3537: 0x6C52, - 3538: 0x6C54, - 3539: 0x6C59, - 3540: 0x6C5B, - 3541: 0x6C5C, - 3542: 0x6C6B, - 3543: 0x6C6D, - 3544: 0x6C6F, - 3545: 0x6C74, - 3546: 0x6C76, - 3547: 0x6C78, - 3548: 0x6C79, - 3549: 0x6C7B, - 3550: 0x6C85, - 3551: 0x6C86, - 3552: 0x6C87, - 3553: 0x6C89, - 3554: 0x6C94, - 3555: 0x6C95, - 3556: 0x6C97, - 3557: 0x6C98, - 3558: 0x6C9C, - 3559: 0x6C9F, - 3560: 0x6CB0, - 3561: 0x6CB2, - 3562: 0x6CB4, - 3563: 0x6CC2, - 3564: 0x6CC6, - 3565: 0x6CCD, - 3566: 0x6CCF, - 3567: 0x6CD0, - 3568: 0x6CD1, - 3569: 0x6CD2, - 3570: 0x6CD4, - 3571: 0x6CD6, - 3572: 0x6CDA, - 3573: 0x6CDC, - 3574: 0x6CE0, - 3575: 0x6CE7, - 3576: 0x6CE9, - 3577: 0x6CEB, - 3578: 0x6CEC, - 3579: 0x6CEE, - 3580: 0x6CF2, - 3581: 0x6CF4, - 3582: 0x6D04, - 3583: 0x6D07, - 3584: 0x6D0A, - 3585: 0x6D0E, - 3586: 0x6D0F, - 3587: 0x6D11, - 3588: 0x6D13, - 3589: 0x6D1A, - 3590: 0x6D26, - 3591: 0x6D27, - 3592: 0x6D28, - 3593: 0x6C67, - 3594: 0x6D2E, - 3595: 0x6D2F, - 3596: 0x6D31, - 3597: 0x6D39, - 3598: 0x6D3C, - 3599: 0x6D3F, - 3600: 0x6D57, - 3601: 0x6D5E, - 3602: 0x6D5F, - 3603: 0x6D61, - 3604: 0x6D65, - 3605: 0x6D67, - 3606: 0x6D6F, - 3607: 0x6D70, - 3608: 0x6D7C, - 3609: 0x6D82, - 3610: 0x6D87, - 3611: 0x6D91, - 3612: 0x6D92, - 3613: 0x6D94, - 3614: 0x6D96, - 3615: 0x6D97, - 3616: 0x6D98, - 3617: 0x6DAA, - 3618: 0x6DAC, - 3619: 0x6DB4, - 3620: 0x6DB7, - 3621: 0x6DB9, - 3622: 0x6DBD, - 3623: 0x6DBF, - 3624: 0x6DC4, - 3625: 0x6DC8, - 3626: 0x6DCA, - 3627: 0x6DCE, - 3628: 0x6DCF, - 3629: 0x6DD6, - 3630: 0x6DDB, - 3631: 0x6DDD, - 3632: 0x6DDF, - 3633: 0x6DE0, - 3634: 0x6DE2, - 3635: 0x6DE5, - 3636: 0x6DE9, - 3637: 0x6DEF, - 3638: 0x6DF0, - 3639: 0x6DF4, - 3640: 0x6DF6, - 3641: 0x6DFC, - 3642: 0x6E00, - 3643: 0x6E04, - 3644: 0x6E1E, - 3645: 0x6E22, - 3646: 0x6E27, - 3647: 0x6E32, - 3648: 0x6E36, - 3649: 0x6E39, - 3650: 0x6E3B, - 3651: 0x6E3C, - 3652: 0x6E44, - 3653: 0x6E45, - 3654: 0x6E48, - 3655: 0x6E49, - 3656: 0x6E4B, - 3657: 0x6E4F, - 3658: 0x6E51, - 3659: 0x6E52, - 3660: 0x6E53, - 3661: 0x6E54, - 3662: 0x6E57, - 3663: 0x6E5C, - 3664: 0x6E5D, - 3665: 0x6E5E, - 3666: 0x6E62, - 3667: 0x6E63, - 3668: 0x6E68, - 3669: 0x6E73, - 3670: 0x6E7B, - 3671: 0x6E7D, - 3672: 0x6E8D, - 3673: 0x6E93, - 3674: 0x6E99, - 3675: 0x6EA0, - 3676: 0x6EA7, - 3677: 0x6EAD, - 3678: 0x6EAE, - 3679: 0x6EB1, - 3680: 0x6EB3, - 3681: 0x6EBB, - 3682: 0x6EBF, - 3683: 0x6EC0, - 3684: 0x6EC1, - 3685: 0x6EC3, - 3686: 0x6EC7, - 3687: 0x6EC8, - 3688: 0x6ECA, - 3689: 0x6ECD, - 3690: 0x6ECE, - 3691: 0x6ECF, - 3692: 0x6EEB, - 3693: 0x6EED, - 3694: 0x6EEE, - 3695: 0x6EF9, - 3696: 0x6EFB, - 3697: 0x6EFD, - 3698: 0x6F04, - 3699: 0x6F08, - 3700: 0x6F0A, - 3701: 0x6F0C, - 3702: 0x6F0D, - 3703: 0x6F16, - 3704: 0x6F18, - 3705: 0x6F1A, - 3706: 0x6F1B, - 3707: 0x6F26, - 3708: 0x6F29, - 3709: 0x6F2A, - 3710: 0x6F2F, - 3711: 0x6F30, - 3712: 0x6F33, - 3713: 0x6F36, - 3714: 0x6F3B, - 3715: 0x6F3C, - 3716: 0x6F2D, - 3717: 0x6F4F, - 3718: 0x6F51, - 3719: 0x6F52, - 3720: 0x6F53, - 3721: 0x6F57, - 3722: 0x6F59, - 3723: 0x6F5A, - 3724: 0x6F5D, - 3725: 0x6F5E, - 3726: 0x6F61, - 3727: 0x6F62, - 3728: 0x6F68, - 3729: 0x6F6C, - 3730: 0x6F7D, - 3731: 0x6F7E, - 3732: 0x6F83, - 3733: 0x6F87, - 3734: 0x6F88, - 3735: 0x6F8B, - 3736: 0x6F8C, - 3737: 0x6F8D, - 3738: 0x6F90, - 3739: 0x6F92, - 3740: 0x6F93, - 3741: 0x6F94, - 3742: 0x6F96, - 3743: 0x6F9A, - 3744: 0x6F9F, - 3745: 0x6FA0, - 3746: 0x6FA5, - 3747: 0x6FA6, - 3748: 0x6FA7, - 3749: 0x6FA8, - 3750: 0x6FAE, - 3751: 0x6FAF, - 3752: 0x6FB0, - 3753: 0x6FB5, - 3754: 0x6FB6, - 3755: 0x6FBC, - 3756: 0x6FC5, - 3757: 0x6FC7, - 3758: 0x6FC8, - 3759: 0x6FCA, - 3760: 0x6FDA, - 3761: 0x6FDE, - 3762: 0x6FE8, - 3763: 0x6FE9, - 3764: 0x6FF0, - 3765: 0x6FF5, - 3766: 0x6FF9, - 3767: 0x6FFC, - 3768: 0x6FFD, - 3769: 0x7000, - 3770: 0x7005, - 3771: 0x7006, - 3772: 0x7007, - 3773: 0x700D, - 3774: 0x7017, - 3775: 0x7020, - 3776: 0x7023, - 3777: 0x702F, - 3778: 0x7034, - 3779: 0x7037, - 3780: 0x7039, - 3781: 0x703C, - 3782: 0x7043, - 3783: 0x7044, - 3784: 0x7048, - 3785: 0x7049, - 3786: 0x704A, - 3787: 0x704B, - 3788: 0x7054, - 3789: 0x7055, - 3790: 0x705D, - 3791: 0x705E, - 3792: 0x704E, - 3793: 0x7064, - 3794: 0x7065, - 3795: 0x706C, - 3796: 0x706E, - 3797: 0x7075, - 3798: 0x7076, - 3799: 0x707E, - 3800: 0x7081, - 3801: 0x7085, - 3802: 0x7086, - 3803: 0x7094, - 3804: 0x7095, - 3805: 0x7096, - 3806: 0x7097, - 3807: 0x7098, - 3808: 0x709B, - 3809: 0x70A4, - 3810: 0x70AB, - 3811: 0x70B0, - 3812: 0x70B1, - 3813: 0x70B4, - 3814: 0x70B7, - 3815: 0x70CA, - 3816: 0x70D1, - 3817: 0x70D3, - 3818: 0x70D4, - 3819: 0x70D5, - 3820: 0x70D6, - 3821: 0x70D8, - 3822: 0x70DC, - 3823: 0x70E4, - 3824: 0x70FA, - 3825: 0x7103, - 3826: 0x7104, - 3827: 0x7105, - 3828: 0x7106, - 3829: 0x7107, - 3830: 0x710B, - 3831: 0x710C, - 3832: 0x710F, - 3833: 0x711E, - 3834: 0x7120, - 3835: 0x712B, - 3836: 0x712D, - 3837: 0x712F, - 3838: 0x7130, - 3839: 0x7131, - 3840: 0x7138, - 3841: 0x7141, - 3842: 0x7145, - 3843: 0x7146, - 3844: 0x7147, - 3845: 0x714A, - 3846: 0x714B, - 3847: 0x7150, - 3848: 0x7152, - 3849: 0x7157, - 3850: 0x715A, - 3851: 0x715C, - 3852: 0x715E, - 3853: 0x7160, - 3854: 0x7168, - 3855: 0x7179, - 3856: 0x7180, - 3857: 0x7185, - 3858: 0x7187, - 3859: 0x718C, - 3860: 0x7192, - 3861: 0x719A, - 3862: 0x719B, - 3863: 0x71A0, - 3864: 0x71A2, - 3865: 0x71AF, - 3866: 0x71B0, - 3867: 0x71B2, - 3868: 0x71B3, - 3869: 0x71BA, - 3870: 0x71BF, - 3871: 0x71C0, - 3872: 0x71C1, - 3873: 0x71C4, - 3874: 0x71CB, - 3875: 0x71CC, - 3876: 0x71D3, - 3877: 0x71D6, - 3878: 0x71D9, - 3879: 0x71DA, - 3880: 0x71DC, - 3881: 0x71F8, - 3882: 0x71FE, - 3883: 0x7200, - 3884: 0x7207, - 3885: 0x7208, - 3886: 0x7209, - 3887: 0x7213, - 3888: 0x7217, - 3889: 0x721A, - 3890: 0x721D, - 3891: 0x721F, - 3892: 0x7224, - 3893: 0x722B, - 3894: 0x722F, - 3895: 0x7234, - 3896: 0x7238, - 3897: 0x7239, - 3898: 0x7241, - 3899: 0x7242, - 3900: 0x7243, - 3901: 0x7245, - 3902: 0x724E, - 3903: 0x724F, - 3904: 0x7250, - 3905: 0x7253, - 3906: 0x7255, - 3907: 0x7256, - 3908: 0x725A, - 3909: 0x725C, - 3910: 0x725E, - 3911: 0x7260, - 3912: 0x7263, - 3913: 0x7268, - 3914: 0x726B, - 3915: 0x726E, - 3916: 0x726F, - 3917: 0x7271, - 3918: 0x7277, - 3919: 0x7278, - 3920: 0x727B, - 3921: 0x727C, - 3922: 0x727F, - 3923: 0x7284, - 3924: 0x7289, - 3925: 0x728D, - 3926: 0x728E, - 3927: 0x7293, - 3928: 0x729B, - 3929: 0x72A8, - 3930: 0x72AD, - 3931: 0x72AE, - 3932: 0x72B1, - 3933: 0x72B4, - 3934: 0x72BE, - 3935: 0x72C1, - 3936: 0x72C7, - 3937: 0x72C9, - 3938: 0x72CC, - 3939: 0x72D5, - 3940: 0x72D6, - 3941: 0x72D8, - 3942: 0x72DF, - 3943: 0x72E5, - 3944: 0x72F3, - 3945: 0x72F4, - 3946: 0x72FA, - 3947: 0x72FB, - 3948: 0x72FE, - 3949: 0x7302, - 3950: 0x7304, - 3951: 0x7305, - 3952: 0x7307, - 3953: 0x730B, - 3954: 0x730D, - 3955: 0x7312, - 3956: 0x7313, - 3957: 0x7318, - 3958: 0x7319, - 3959: 0x731E, - 3960: 0x7322, - 3961: 0x7324, - 3962: 0x7327, - 3963: 0x7328, - 3964: 0x732C, - 3965: 0x7331, - 3966: 0x7332, - 3967: 0x7335, - 3968: 0x733A, - 3969: 0x733B, - 3970: 0x733D, - 3971: 0x7343, - 3972: 0x734D, - 3973: 0x7350, - 3974: 0x7352, - 3975: 0x7356, - 3976: 0x7358, - 3977: 0x735D, - 3978: 0x735E, - 3979: 0x735F, - 3980: 0x7360, - 3981: 0x7366, - 3982: 0x7367, - 3983: 0x7369, - 3984: 0x736B, - 3985: 0x736C, - 3986: 0x736E, - 3987: 0x736F, - 3988: 0x7371, - 3989: 0x7377, - 3990: 0x7379, - 3991: 0x737C, - 3992: 0x7380, - 3993: 0x7381, - 3994: 0x7383, - 3995: 0x7385, - 3996: 0x7386, - 3997: 0x738E, - 3998: 0x7390, - 3999: 0x7393, - 4000: 0x7395, - 4001: 0x7397, - 4002: 0x7398, - 4003: 0x739C, - 4004: 0x739E, - 4005: 0x739F, - 4006: 0x73A0, - 4007: 0x73A2, - 4008: 0x73A5, - 4009: 0x73A6, - 4010: 0x73AA, - 4011: 0x73AB, - 4012: 0x73AD, - 4013: 0x73B5, - 4014: 0x73B7, - 4015: 0x73B9, - 4016: 0x73BC, - 4017: 0x73BD, - 4018: 0x73BF, - 4019: 0x73C5, - 4020: 0x73C6, - 4021: 0x73C9, - 4022: 0x73CB, - 4023: 0x73CC, - 4024: 0x73CF, - 4025: 0x73D2, - 4026: 0x73D3, - 4027: 0x73D6, - 4028: 0x73D9, - 4029: 0x73DD, - 4030: 0x73E1, - 4031: 0x73E3, - 4032: 0x73E6, - 4033: 0x73E7, - 4034: 0x73E9, - 4035: 0x73F4, - 4036: 0x73F5, - 4037: 0x73F7, - 4038: 0x73F9, - 4039: 0x73FA, - 4040: 0x73FB, - 4041: 0x73FD, - 4042: 0x73FF, - 4043: 0x7400, - 4044: 0x7401, - 4045: 0x7404, - 4046: 0x7407, - 4047: 0x740A, - 4048: 0x7411, - 4049: 0x741A, - 4050: 0x741B, - 4051: 0x7424, - 4052: 0x7426, - 4053: 0x7428, - 4054: 0x7429, - 4055: 0x742A, - 4056: 0x742B, - 4057: 0x742C, - 4058: 0x742D, - 4059: 0x742E, - 4060: 0x742F, - 4061: 0x7430, - 4062: 0x7431, - 4063: 0x7439, - 4064: 0x7440, - 4065: 0x7443, - 4066: 0x7444, - 4067: 0x7446, - 4068: 0x7447, - 4069: 0x744B, - 4070: 0x744D, - 4071: 0x7451, - 4072: 0x7452, - 4073: 0x7457, - 4074: 0x745D, - 4075: 0x7462, - 4076: 0x7466, - 4077: 0x7467, - 4078: 0x7468, - 4079: 0x746B, - 4080: 0x746D, - 4081: 0x746E, - 4082: 0x7471, - 4083: 0x7472, - 4084: 0x7480, - 4085: 0x7481, - 4086: 0x7485, - 4087: 0x7486, - 4088: 0x7487, - 4089: 0x7489, - 4090: 0x748F, - 4091: 0x7490, - 4092: 0x7491, - 4093: 0x7492, - 4094: 0x7498, - 4095: 0x7499, - 4096: 0x749A, - 4097: 0x749C, - 4098: 0x749F, - 4099: 0x74A0, - 4100: 0x74A1, - 4101: 0x74A3, - 4102: 0x74A6, - 4103: 0x74A8, - 4104: 0x74A9, - 4105: 0x74AA, - 4106: 0x74AB, - 4107: 0x74AE, - 4108: 0x74AF, - 4109: 0x74B1, - 4110: 0x74B2, - 4111: 0x74B5, - 4112: 0x74B9, - 4113: 0x74BB, - 4114: 0x74BF, - 4115: 0x74C8, - 4116: 0x74C9, - 4117: 0x74CC, - 4118: 0x74D0, - 4119: 0x74D3, - 4120: 0x74D8, - 4121: 0x74DA, - 4122: 0x74DB, - 4123: 0x74DE, - 4124: 0x74DF, - 4125: 0x74E4, - 4126: 0x74E8, - 4127: 0x74EA, - 4128: 0x74EB, - 4129: 0x74EF, - 4130: 0x74F4, - 4131: 0x74FA, - 4132: 0x74FB, - 4133: 0x74FC, - 4134: 0x74FF, - 4135: 0x7506, - 4136: 0x7512, - 4137: 0x7516, - 4138: 0x7517, - 4139: 0x7520, - 4140: 0x7521, - 4141: 0x7524, - 4142: 0x7527, - 4143: 0x7529, - 4144: 0x752A, - 4145: 0x752F, - 4146: 0x7536, - 4147: 0x7539, - 4148: 0x753D, - 4149: 0x753E, - 4150: 0x753F, - 4151: 0x7540, - 4152: 0x7543, - 4153: 0x7547, - 4154: 0x7548, - 4155: 0x754E, - 4156: 0x7550, - 4157: 0x7552, - 4158: 0x7557, - 4159: 0x755E, - 4160: 0x755F, - 4161: 0x7561, - 4162: 0x756F, - 4163: 0x7571, - 4164: 0x7579, - 4165: 0x757A, - 4166: 0x757B, - 4167: 0x757C, - 4168: 0x757D, - 4169: 0x757E, - 4170: 0x7581, - 4171: 0x7585, - 4172: 0x7590, - 4173: 0x7592, - 4174: 0x7593, - 4175: 0x7595, - 4176: 0x7599, - 4177: 0x759C, - 4178: 0x75A2, - 4179: 0x75A4, - 4180: 0x75B4, - 4181: 0x75BA, - 4182: 0x75BF, - 4183: 0x75C0, - 4184: 0x75C1, - 4185: 0x75C4, - 4186: 0x75C6, - 4187: 0x75CC, - 4188: 0x75CE, - 4189: 0x75CF, - 4190: 0x75D7, - 4191: 0x75DC, - 4192: 0x75DF, - 4193: 0x75E0, - 4194: 0x75E1, - 4195: 0x75E4, - 4196: 0x75E7, - 4197: 0x75EC, - 4198: 0x75EE, - 4199: 0x75EF, - 4200: 0x75F1, - 4201: 0x75F9, - 4202: 0x7600, - 4203: 0x7602, - 4204: 0x7603, - 4205: 0x7604, - 4206: 0x7607, - 4207: 0x7608, - 4208: 0x760A, - 4209: 0x760C, - 4210: 0x760F, - 4211: 0x7612, - 4212: 0x7613, - 4213: 0x7615, - 4214: 0x7616, - 4215: 0x7619, - 4216: 0x761B, - 4217: 0x761C, - 4218: 0x761D, - 4219: 0x761E, - 4220: 0x7623, - 4221: 0x7625, - 4222: 0x7626, - 4223: 0x7629, - 4224: 0x762D, - 4225: 0x7632, - 4226: 0x7633, - 4227: 0x7635, - 4228: 0x7638, - 4229: 0x7639, - 4230: 0x763A, - 4231: 0x763C, - 4232: 0x764A, - 4233: 0x7640, - 4234: 0x7641, - 4235: 0x7643, - 4236: 0x7644, - 4237: 0x7645, - 4238: 0x7649, - 4239: 0x764B, - 4240: 0x7655, - 4241: 0x7659, - 4242: 0x765F, - 4243: 0x7664, - 4244: 0x7665, - 4245: 0x766D, - 4246: 0x766E, - 4247: 0x766F, - 4248: 0x7671, - 4249: 0x7674, - 4250: 0x7681, - 4251: 0x7685, - 4252: 0x768C, - 4253: 0x768D, - 4254: 0x7695, - 4255: 0x769B, - 4256: 0x769C, - 4257: 0x769D, - 4258: 0x769F, - 4259: 0x76A0, - 4260: 0x76A2, - 4261: 0x76A3, - 4262: 0x76A4, - 4263: 0x76A5, - 4264: 0x76A6, - 4265: 0x76A7, - 4266: 0x76A8, - 4267: 0x76AA, - 4268: 0x76AD, - 4269: 0x76BD, - 4270: 0x76C1, - 4271: 0x76C5, - 4272: 0x76C9, - 4273: 0x76CB, - 4274: 0x76CC, - 4275: 0x76CE, - 4276: 0x76D4, - 4277: 0x76D9, - 4278: 0x76E0, - 4279: 0x76E6, - 4280: 0x76E8, - 4281: 0x76EC, - 4282: 0x76F0, - 4283: 0x76F1, - 4284: 0x76F6, - 4285: 0x76F9, - 4286: 0x76FC, - 4287: 0x7700, - 4288: 0x7706, - 4289: 0x770A, - 4290: 0x770E, - 4291: 0x7712, - 4292: 0x7714, - 4293: 0x7715, - 4294: 0x7717, - 4295: 0x7719, - 4296: 0x771A, - 4297: 0x771C, - 4298: 0x7722, - 4299: 0x7728, - 4300: 0x772D, - 4301: 0x772E, - 4302: 0x772F, - 4303: 0x7734, - 4304: 0x7735, - 4305: 0x7736, - 4306: 0x7739, - 4307: 0x773D, - 4308: 0x773E, - 4309: 0x7742, - 4310: 0x7745, - 4311: 0x7746, - 4312: 0x774A, - 4313: 0x774D, - 4314: 0x774E, - 4315: 0x774F, - 4316: 0x7752, - 4317: 0x7756, - 4318: 0x7757, - 4319: 0x775C, - 4320: 0x775E, - 4321: 0x775F, - 4322: 0x7760, - 4323: 0x7762, - 4324: 0x7764, - 4325: 0x7767, - 4326: 0x776A, - 4327: 0x776C, - 4328: 0x7770, - 4329: 0x7772, - 4330: 0x7773, - 4331: 0x7774, - 4332: 0x777A, - 4333: 0x777D, - 4334: 0x7780, - 4335: 0x7784, - 4336: 0x778C, - 4337: 0x778D, - 4338: 0x7794, - 4339: 0x7795, - 4340: 0x7796, - 4341: 0x779A, - 4342: 0x779F, - 4343: 0x77A2, - 4344: 0x77A7, - 4345: 0x77AA, - 4346: 0x77AE, - 4347: 0x77AF, - 4348: 0x77B1, - 4349: 0x77B5, - 4350: 0x77BE, - 4351: 0x77C3, - 4352: 0x77C9, - 4353: 0x77D1, - 4354: 0x77D2, - 4355: 0x77D5, - 4356: 0x77D9, - 4357: 0x77DE, - 4358: 0x77DF, - 4359: 0x77E0, - 4360: 0x77E4, - 4361: 0x77E6, - 4362: 0x77EA, - 4363: 0x77EC, - 4364: 0x77F0, - 4365: 0x77F1, - 4366: 0x77F4, - 4367: 0x77F8, - 4368: 0x77FB, - 4369: 0x7805, - 4370: 0x7806, - 4371: 0x7809, - 4372: 0x780D, - 4373: 0x780E, - 4374: 0x7811, - 4375: 0x781D, - 4376: 0x7821, - 4377: 0x7822, - 4378: 0x7823, - 4379: 0x782D, - 4380: 0x782E, - 4381: 0x7830, - 4382: 0x7835, - 4383: 0x7837, - 4384: 0x7843, - 4385: 0x7844, - 4386: 0x7847, - 4387: 0x7848, - 4388: 0x784C, - 4389: 0x784E, - 4390: 0x7852, - 4391: 0x785C, - 4392: 0x785E, - 4393: 0x7860, - 4394: 0x7861, - 4395: 0x7863, - 4396: 0x7864, - 4397: 0x7868, - 4398: 0x786A, - 4399: 0x786E, - 4400: 0x787A, - 4401: 0x787E, - 4402: 0x788A, - 4403: 0x788F, - 4404: 0x7894, - 4405: 0x7898, - 4406: 0x78A1, - 4407: 0x789D, - 4408: 0x789E, - 4409: 0x789F, - 4410: 0x78A4, - 4411: 0x78A8, - 4412: 0x78AC, - 4413: 0x78AD, - 4414: 0x78B0, - 4415: 0x78B1, - 4416: 0x78B2, - 4417: 0x78B3, - 4418: 0x78BB, - 4419: 0x78BD, - 4420: 0x78BF, - 4421: 0x78C7, - 4422: 0x78C8, - 4423: 0x78C9, - 4424: 0x78CC, - 4425: 0x78CE, - 4426: 0x78D2, - 4427: 0x78D3, - 4428: 0x78D5, - 4429: 0x78D6, - 4430: 0x78E4, - 4431: 0x78DB, - 4432: 0x78DF, - 4433: 0x78E0, - 4434: 0x78E1, - 4435: 0x78E6, - 4436: 0x78EA, - 4437: 0x78F2, - 4438: 0x78F3, - 4439: 0x7900, - 4440: 0x78F6, - 4441: 0x78F7, - 4442: 0x78FA, - 4443: 0x78FB, - 4444: 0x78FF, - 4445: 0x7906, - 4446: 0x790C, - 4447: 0x7910, - 4448: 0x791A, - 4449: 0x791C, - 4450: 0x791E, - 4451: 0x791F, - 4452: 0x7920, - 4453: 0x7925, - 4454: 0x7927, - 4455: 0x7929, - 4456: 0x792D, - 4457: 0x7931, - 4458: 0x7934, - 4459: 0x7935, - 4460: 0x793B, - 4461: 0x793D, - 4462: 0x793F, - 4463: 0x7944, - 4464: 0x7945, - 4465: 0x7946, - 4466: 0x794A, - 4467: 0x794B, - 4468: 0x794F, - 4469: 0x7951, - 4470: 0x7954, - 4471: 0x7958, - 4472: 0x795B, - 4473: 0x795C, - 4474: 0x7967, - 4475: 0x7969, - 4476: 0x796B, - 4477: 0x7972, - 4478: 0x7979, - 4479: 0x797B, - 4480: 0x797C, - 4481: 0x797E, - 4482: 0x798B, - 4483: 0x798C, - 4484: 0x7991, - 4485: 0x7993, - 4486: 0x7994, - 4487: 0x7995, - 4488: 0x7996, - 4489: 0x7998, - 4490: 0x799B, - 4491: 0x799C, - 4492: 0x79A1, - 4493: 0x79A8, - 4494: 0x79A9, - 4495: 0x79AB, - 4496: 0x79AF, - 4497: 0x79B1, - 4498: 0x79B4, - 4499: 0x79B8, - 4500: 0x79BB, - 4501: 0x79C2, - 4502: 0x79C4, - 4503: 0x79C7, - 4504: 0x79C8, - 4505: 0x79CA, - 4506: 0x79CF, - 4507: 0x79D4, - 4508: 0x79D6, - 4509: 0x79DA, - 4510: 0x79DD, - 4511: 0x79DE, - 4512: 0x79E0, - 4513: 0x79E2, - 4514: 0x79E5, - 4515: 0x79EA, - 4516: 0x79EB, - 4517: 0x79ED, - 4518: 0x79F1, - 4519: 0x79F8, - 4520: 0x79FC, - 4521: 0x7A02, - 4522: 0x7A03, - 4523: 0x7A07, - 4524: 0x7A09, - 4525: 0x7A0A, - 4526: 0x7A0C, - 4527: 0x7A11, - 4528: 0x7A15, - 4529: 0x7A1B, - 4530: 0x7A1E, - 4531: 0x7A21, - 4532: 0x7A27, - 4533: 0x7A2B, - 4534: 0x7A2D, - 4535: 0x7A2F, - 4536: 0x7A30, - 4537: 0x7A34, - 4538: 0x7A35, - 4539: 0x7A38, - 4540: 0x7A39, - 4541: 0x7A3A, - 4542: 0x7A44, - 4543: 0x7A45, - 4544: 0x7A47, - 4545: 0x7A48, - 4546: 0x7A4C, - 4547: 0x7A55, - 4548: 0x7A56, - 4549: 0x7A59, - 4550: 0x7A5C, - 4551: 0x7A5D, - 4552: 0x7A5F, - 4553: 0x7A60, - 4554: 0x7A65, - 4555: 0x7A67, - 4556: 0x7A6A, - 4557: 0x7A6D, - 4558: 0x7A75, - 4559: 0x7A78, - 4560: 0x7A7E, - 4561: 0x7A80, - 4562: 0x7A82, - 4563: 0x7A85, - 4564: 0x7A86, - 4565: 0x7A8A, - 4566: 0x7A8B, - 4567: 0x7A90, - 4568: 0x7A91, - 4569: 0x7A94, - 4570: 0x7A9E, - 4571: 0x7AA0, - 4572: 0x7AA3, - 4573: 0x7AAC, - 4574: 0x7AB3, - 4575: 0x7AB5, - 4576: 0x7AB9, - 4577: 0x7ABB, - 4578: 0x7ABC, - 4579: 0x7AC6, - 4580: 0x7AC9, - 4581: 0x7ACC, - 4582: 0x7ACE, - 4583: 0x7AD1, - 4584: 0x7ADB, - 4585: 0x7AE8, - 4586: 0x7AE9, - 4587: 0x7AEB, - 4588: 0x7AEC, - 4589: 0x7AF1, - 4590: 0x7AF4, - 4591: 0x7AFB, - 4592: 0x7AFD, - 4593: 0x7AFE, - 4594: 0x7B07, - 4595: 0x7B14, - 4596: 0x7B1F, - 4597: 0x7B23, - 4598: 0x7B27, - 4599: 0x7B29, - 4600: 0x7B2A, - 4601: 0x7B2B, - 4602: 0x7B2D, - 4603: 0x7B2E, - 4604: 0x7B2F, - 4605: 0x7B30, - 4606: 0x7B31, - 4607: 0x7B34, - 4608: 0x7B3D, - 4609: 0x7B3F, - 4610: 0x7B40, - 4611: 0x7B41, - 4612: 0x7B47, - 4613: 0x7B4E, - 4614: 0x7B55, - 4615: 0x7B60, - 4616: 0x7B64, - 4617: 0x7B66, - 4618: 0x7B69, - 4619: 0x7B6A, - 4620: 0x7B6D, - 4621: 0x7B6F, - 4622: 0x7B72, - 4623: 0x7B73, - 4624: 0x7B77, - 4625: 0x7B84, - 4626: 0x7B89, - 4627: 0x7B8E, - 4628: 0x7B90, - 4629: 0x7B91, - 4630: 0x7B96, - 4631: 0x7B9B, - 4632: 0x7B9E, - 4633: 0x7BA0, - 4634: 0x7BA5, - 4635: 0x7BAC, - 4636: 0x7BAF, - 4637: 0x7BB0, - 4638: 0x7BB2, - 4639: 0x7BB5, - 4640: 0x7BB6, - 4641: 0x7BBA, - 4642: 0x7BBB, - 4643: 0x7BBC, - 4644: 0x7BBD, - 4645: 0x7BC2, - 4646: 0x7BC5, - 4647: 0x7BC8, - 4648: 0x7BCA, - 4649: 0x7BD4, - 4650: 0x7BD6, - 4651: 0x7BD7, - 4652: 0x7BD9, - 4653: 0x7BDA, - 4654: 0x7BDB, - 4655: 0x7BE8, - 4656: 0x7BEA, - 4657: 0x7BF2, - 4658: 0x7BF4, - 4659: 0x7BF5, - 4660: 0x7BF8, - 4661: 0x7BF9, - 4662: 0x7BFA, - 4663: 0x7BFC, - 4664: 0x7BFE, - 4665: 0x7C01, - 4666: 0x7C02, - 4667: 0x7C03, - 4668: 0x7C04, - 4669: 0x7C06, - 4670: 0x7C09, - 4671: 0x7C0B, - 4672: 0x7C0C, - 4673: 0x7C0E, - 4674: 0x7C0F, - 4675: 0x7C19, - 4676: 0x7C1B, - 4677: 0x7C20, - 4678: 0x7C25, - 4679: 0x7C26, - 4680: 0x7C28, - 4681: 0x7C2C, - 4682: 0x7C31, - 4683: 0x7C33, - 4684: 0x7C34, - 4685: 0x7C36, - 4686: 0x7C39, - 4687: 0x7C3A, - 4688: 0x7C46, - 4689: 0x7C4A, - 4690: 0x7C55, - 4691: 0x7C51, - 4692: 0x7C52, - 4693: 0x7C53, - 4694: 0x7C59, - 4695: 0x7C5A, - 4696: 0x7C5B, - 4697: 0x7C5C, - 4698: 0x7C5D, - 4699: 0x7C5E, - 4700: 0x7C61, - 4701: 0x7C63, - 4702: 0x7C67, - 4703: 0x7C69, - 4704: 0x7C6D, - 4705: 0x7C6E, - 4706: 0x7C70, - 4707: 0x7C72, - 4708: 0x7C79, - 4709: 0x7C7C, - 4710: 0x7C7D, - 4711: 0x7C86, - 4712: 0x7C87, - 4713: 0x7C8F, - 4714: 0x7C94, - 4715: 0x7C9E, - 4716: 0x7CA0, - 4717: 0x7CA6, - 4718: 0x7CB0, - 4719: 0x7CB6, - 4720: 0x7CB7, - 4721: 0x7CBA, - 4722: 0x7CBB, - 4723: 0x7CBC, - 4724: 0x7CBF, - 4725: 0x7CC4, - 4726: 0x7CC7, - 4727: 0x7CC8, - 4728: 0x7CC9, - 4729: 0x7CCD, - 4730: 0x7CCF, - 4731: 0x7CD3, - 4732: 0x7CD4, - 4733: 0x7CD5, - 4734: 0x7CD7, - 4735: 0x7CD9, - 4736: 0x7CDA, - 4737: 0x7CDD, - 4738: 0x7CE6, - 4739: 0x7CE9, - 4740: 0x7CEB, - 4741: 0x7CF5, - 4742: 0x7D03, - 4743: 0x7D07, - 4744: 0x7D08, - 4745: 0x7D09, - 4746: 0x7D0F, - 4747: 0x7D11, - 4748: 0x7D12, - 4749: 0x7D13, - 4750: 0x7D16, - 4751: 0x7D1D, - 4752: 0x7D1E, - 4753: 0x7D23, - 4754: 0x7D26, - 4755: 0x7D2A, - 4756: 0x7D2D, - 4757: 0x7D31, - 4758: 0x7D3C, - 4759: 0x7D3D, - 4760: 0x7D3E, - 4761: 0x7D40, - 4762: 0x7D41, - 4763: 0x7D47, - 4764: 0x7D48, - 4765: 0x7D4D, - 4766: 0x7D51, - 4767: 0x7D53, - 4768: 0x7D57, - 4769: 0x7D59, - 4770: 0x7D5A, - 4771: 0x7D5C, - 4772: 0x7D5D, - 4773: 0x7D65, - 4774: 0x7D67, - 4775: 0x7D6A, - 4776: 0x7D70, - 4777: 0x7D78, - 4778: 0x7D7A, - 4779: 0x7D7B, - 4780: 0x7D7F, - 4781: 0x7D81, - 4782: 0x7D82, - 4783: 0x7D83, - 4784: 0x7D85, - 4785: 0x7D86, - 4786: 0x7D88, - 4787: 0x7D8B, - 4788: 0x7D8C, - 4789: 0x7D8D, - 4790: 0x7D91, - 4791: 0x7D96, - 4792: 0x7D97, - 4793: 0x7D9D, - 4794: 0x7D9E, - 4795: 0x7DA6, - 4796: 0x7DA7, - 4797: 0x7DAA, - 4798: 0x7DB3, - 4799: 0x7DB6, - 4800: 0x7DB7, - 4801: 0x7DB9, - 4802: 0x7DC2, - 4803: 0x7DC3, - 4804: 0x7DC4, - 4805: 0x7DC5, - 4806: 0x7DC6, - 4807: 0x7DCC, - 4808: 0x7DCD, - 4809: 0x7DCE, - 4810: 0x7DD7, - 4811: 0x7DD9, - 4812: 0x7E00, - 4813: 0x7DE2, - 4814: 0x7DE5, - 4815: 0x7DE6, - 4816: 0x7DEA, - 4817: 0x7DEB, - 4818: 0x7DED, - 4819: 0x7DF1, - 4820: 0x7DF5, - 4821: 0x7DF6, - 4822: 0x7DF9, - 4823: 0x7DFA, - 4824: 0x7E08, - 4825: 0x7E10, - 4826: 0x7E11, - 4827: 0x7E15, - 4828: 0x7E17, - 4829: 0x7E1C, - 4830: 0x7E1D, - 4831: 0x7E20, - 4832: 0x7E27, - 4833: 0x7E28, - 4834: 0x7E2C, - 4835: 0x7E2D, - 4836: 0x7E2F, - 4837: 0x7E33, - 4838: 0x7E36, - 4839: 0x7E3F, - 4840: 0x7E44, - 4841: 0x7E45, - 4842: 0x7E47, - 4843: 0x7E4E, - 4844: 0x7E50, - 4845: 0x7E52, - 4846: 0x7E58, - 4847: 0x7E5F, - 4848: 0x7E61, - 4849: 0x7E62, - 4850: 0x7E65, - 4851: 0x7E6B, - 4852: 0x7E6E, - 4853: 0x7E6F, - 4854: 0x7E73, - 4855: 0x7E78, - 4856: 0x7E7E, - 4857: 0x7E81, - 4858: 0x7E86, - 4859: 0x7E87, - 4860: 0x7E8A, - 4861: 0x7E8D, - 4862: 0x7E91, - 4863: 0x7E95, - 4864: 0x7E98, - 4865: 0x7E9A, - 4866: 0x7E9D, - 4867: 0x7E9E, - 4868: 0x7F3C, - 4869: 0x7F3B, - 4870: 0x7F3D, - 4871: 0x7F3E, - 4872: 0x7F3F, - 4873: 0x7F43, - 4874: 0x7F44, - 4875: 0x7F47, - 4876: 0x7F4F, - 4877: 0x7F52, - 4878: 0x7F53, - 4879: 0x7F5B, - 4880: 0x7F5C, - 4881: 0x7F5D, - 4882: 0x7F61, - 4883: 0x7F63, - 4884: 0x7F64, - 4885: 0x7F65, - 4886: 0x7F66, - 4887: 0x7F6D, - 4888: 0x7F71, - 4889: 0x7F7D, - 4890: 0x7F7E, - 4891: 0x7F7F, - 4892: 0x7F80, - 4893: 0x7F8B, - 4894: 0x7F8D, - 4895: 0x7F8F, - 4896: 0x7F90, - 4897: 0x7F91, - 4898: 0x7F96, - 4899: 0x7F97, - 4900: 0x7F9C, - 4901: 0x7FA1, - 4902: 0x7FA2, - 4903: 0x7FA6, - 4904: 0x7FAA, - 4905: 0x7FAD, - 4906: 0x7FB4, - 4907: 0x7FBC, - 4908: 0x7FBF, - 4909: 0x7FC0, - 4910: 0x7FC3, - 4911: 0x7FC8, - 4912: 0x7FCE, - 4913: 0x7FCF, - 4914: 0x7FDB, - 4915: 0x7FDF, - 4916: 0x7FE3, - 4917: 0x7FE5, - 4918: 0x7FE8, - 4919: 0x7FEC, - 4920: 0x7FEE, - 4921: 0x7FEF, - 4922: 0x7FF2, - 4923: 0x7FFA, - 4924: 0x7FFD, - 4925: 0x7FFE, - 4926: 0x7FFF, - 4927: 0x8007, - 4928: 0x8008, - 4929: 0x800A, - 4930: 0x800D, - 4931: 0x800E, - 4932: 0x800F, - 4933: 0x8011, - 4934: 0x8013, - 4935: 0x8014, - 4936: 0x8016, - 4937: 0x801D, - 4938: 0x801E, - 4939: 0x801F, - 4940: 0x8020, - 4941: 0x8024, - 4942: 0x8026, - 4943: 0x802C, - 4944: 0x802E, - 4945: 0x8030, - 4946: 0x8034, - 4947: 0x8035, - 4948: 0x8037, - 4949: 0x8039, - 4950: 0x803A, - 4951: 0x803C, - 4952: 0x803E, - 4953: 0x8040, - 4954: 0x8044, - 4955: 0x8060, - 4956: 0x8064, - 4957: 0x8066, - 4958: 0x806D, - 4959: 0x8071, - 4960: 0x8075, - 4961: 0x8081, - 4962: 0x8088, - 4963: 0x808E, - 4964: 0x809C, - 4965: 0x809E, - 4966: 0x80A6, - 4967: 0x80A7, - 4968: 0x80AB, - 4969: 0x80B8, - 4970: 0x80B9, - 4971: 0x80C8, - 4972: 0x80CD, - 4973: 0x80CF, - 4974: 0x80D2, - 4975: 0x80D4, - 4976: 0x80D5, - 4977: 0x80D7, - 4978: 0x80D8, - 4979: 0x80E0, - 4980: 0x80ED, - 4981: 0x80EE, - 4982: 0x80F0, - 4983: 0x80F2, - 4984: 0x80F3, - 4985: 0x80F6, - 4986: 0x80F9, - 4987: 0x80FA, - 4988: 0x80FE, - 4989: 0x8103, - 4990: 0x810B, - 4991: 0x8116, - 4992: 0x8117, - 4993: 0x8118, - 4994: 0x811C, - 4995: 0x811E, - 4996: 0x8120, - 4997: 0x8124, - 4998: 0x8127, - 4999: 0x812C, - 5000: 0x8130, - 5001: 0x8135, - 5002: 0x813A, - 5003: 0x813C, - 5004: 0x8145, - 5005: 0x8147, - 5006: 0x814A, - 5007: 0x814C, - 5008: 0x8152, - 5009: 0x8157, - 5010: 0x8160, - 5011: 0x8161, - 5012: 0x8167, - 5013: 0x8168, - 5014: 0x8169, - 5015: 0x816D, - 5016: 0x816F, - 5017: 0x8177, - 5018: 0x8181, - 5019: 0x8190, - 5020: 0x8184, - 5021: 0x8185, - 5022: 0x8186, - 5023: 0x818B, - 5024: 0x818E, - 5025: 0x8196, - 5026: 0x8198, - 5027: 0x819B, - 5028: 0x819E, - 5029: 0x81A2, - 5030: 0x81AE, - 5031: 0x81B2, - 5032: 0x81B4, - 5033: 0x81BB, - 5034: 0x81CB, - 5035: 0x81C3, - 5036: 0x81C5, - 5037: 0x81CA, - 5038: 0x81CE, - 5039: 0x81CF, - 5040: 0x81D5, - 5041: 0x81D7, - 5042: 0x81DB, - 5043: 0x81DD, - 5044: 0x81DE, - 5045: 0x81E1, - 5046: 0x81E4, - 5047: 0x81EB, - 5048: 0x81EC, - 5049: 0x81F0, - 5050: 0x81F1, - 5051: 0x81F2, - 5052: 0x81F5, - 5053: 0x81F6, - 5054: 0x81F8, - 5055: 0x81F9, - 5056: 0x81FD, - 5057: 0x81FF, - 5058: 0x8200, - 5059: 0x8203, - 5060: 0x820F, - 5061: 0x8213, - 5062: 0x8214, - 5063: 0x8219, - 5064: 0x821A, - 5065: 0x821D, - 5066: 0x8221, - 5067: 0x8222, - 5068: 0x8228, - 5069: 0x8232, - 5070: 0x8234, - 5071: 0x823A, - 5072: 0x8243, - 5073: 0x8244, - 5074: 0x8245, - 5075: 0x8246, - 5076: 0x824B, - 5077: 0x824E, - 5078: 0x824F, - 5079: 0x8251, - 5080: 0x8256, - 5081: 0x825C, - 5082: 0x8260, - 5083: 0x8263, - 5084: 0x8267, - 5085: 0x826D, - 5086: 0x8274, - 5087: 0x827B, - 5088: 0x827D, - 5089: 0x827F, - 5090: 0x8280, - 5091: 0x8281, - 5092: 0x8283, - 5093: 0x8284, - 5094: 0x8287, - 5095: 0x8289, - 5096: 0x828A, - 5097: 0x828E, - 5098: 0x8291, - 5099: 0x8294, - 5100: 0x8296, - 5101: 0x8298, - 5102: 0x829A, - 5103: 0x829B, - 5104: 0x82A0, - 5105: 0x82A1, - 5106: 0x82A3, - 5107: 0x82A4, - 5108: 0x82A7, - 5109: 0x82A8, - 5110: 0x82A9, - 5111: 0x82AA, - 5112: 0x82AE, - 5113: 0x82B0, - 5114: 0x82B2, - 5115: 0x82B4, - 5116: 0x82B7, - 5117: 0x82BA, - 5118: 0x82BC, - 5119: 0x82BE, - 5120: 0x82BF, - 5121: 0x82C6, - 5122: 0x82D0, - 5123: 0x82D5, - 5124: 0x82DA, - 5125: 0x82E0, - 5126: 0x82E2, - 5127: 0x82E4, - 5128: 0x82E8, - 5129: 0x82EA, - 5130: 0x82ED, - 5131: 0x82EF, - 5132: 0x82F6, - 5133: 0x82F7, - 5134: 0x82FD, - 5135: 0x82FE, - 5136: 0x8300, - 5137: 0x8301, - 5138: 0x8307, - 5139: 0x8308, - 5140: 0x830A, - 5141: 0x830B, - 5142: 0x8354, - 5143: 0x831B, - 5144: 0x831D, - 5145: 0x831E, - 5146: 0x831F, - 5147: 0x8321, - 5148: 0x8322, - 5149: 0x832C, - 5150: 0x832D, - 5151: 0x832E, - 5152: 0x8330, - 5153: 0x8333, - 5154: 0x8337, - 5155: 0x833A, - 5156: 0x833C, - 5157: 0x833D, - 5158: 0x8342, - 5159: 0x8343, - 5160: 0x8344, - 5161: 0x8347, - 5162: 0x834D, - 5163: 0x834E, - 5164: 0x8351, - 5165: 0x8355, - 5166: 0x8356, - 5167: 0x8357, - 5168: 0x8370, - 5169: 0x8378, - 5170: 0x837D, - 5171: 0x837F, - 5172: 0x8380, - 5173: 0x8382, - 5174: 0x8384, - 5175: 0x8386, - 5176: 0x838D, - 5177: 0x8392, - 5178: 0x8394, - 5179: 0x8395, - 5180: 0x8398, - 5181: 0x8399, - 5182: 0x839B, - 5183: 0x839C, - 5184: 0x839D, - 5185: 0x83A6, - 5186: 0x83A7, - 5187: 0x83A9, - 5188: 0x83AC, - 5189: 0x83BE, - 5190: 0x83BF, - 5191: 0x83C0, - 5192: 0x83C7, - 5193: 0x83C9, - 5194: 0x83CF, - 5195: 0x83D0, - 5196: 0x83D1, - 5197: 0x83D4, - 5198: 0x83DD, - 5199: 0x8353, - 5200: 0x83E8, - 5201: 0x83EA, - 5202: 0x83F6, - 5203: 0x83F8, - 5204: 0x83F9, - 5205: 0x83FC, - 5206: 0x8401, - 5207: 0x8406, - 5208: 0x840A, - 5209: 0x840F, - 5210: 0x8411, - 5211: 0x8415, - 5212: 0x8419, - 5213: 0x83AD, - 5214: 0x842F, - 5215: 0x8439, - 5216: 0x8445, - 5217: 0x8447, - 5218: 0x8448, - 5219: 0x844A, - 5220: 0x844D, - 5221: 0x844F, - 5222: 0x8451, - 5223: 0x8452, - 5224: 0x8456, - 5225: 0x8458, - 5226: 0x8459, - 5227: 0x845A, - 5228: 0x845C, - 5229: 0x8460, - 5230: 0x8464, - 5231: 0x8465, - 5232: 0x8467, - 5233: 0x846A, - 5234: 0x8470, - 5235: 0x8473, - 5236: 0x8474, - 5237: 0x8476, - 5238: 0x8478, - 5239: 0x847C, - 5240: 0x847D, - 5241: 0x8481, - 5242: 0x8485, - 5243: 0x8492, - 5244: 0x8493, - 5245: 0x8495, - 5246: 0x849E, - 5247: 0x84A6, - 5248: 0x84A8, - 5249: 0x84A9, - 5250: 0x84AA, - 5251: 0x84AF, - 5252: 0x84B1, - 5253: 0x84B4, - 5254: 0x84BA, - 5255: 0x84BD, - 5256: 0x84BE, - 5257: 0x84C0, - 5258: 0x84C2, - 5259: 0x84C7, - 5260: 0x84C8, - 5261: 0x84CC, - 5262: 0x84CF, - 5263: 0x84D3, - 5264: 0x84DC, - 5265: 0x84E7, - 5266: 0x84EA, - 5267: 0x84EF, - 5268: 0x84F0, - 5269: 0x84F1, - 5270: 0x84F2, - 5271: 0x84F7, - 5272: 0x8532, - 5273: 0x84FA, - 5274: 0x84FB, - 5275: 0x84FD, - 5276: 0x8502, - 5277: 0x8503, - 5278: 0x8507, - 5279: 0x850C, - 5280: 0x850E, - 5281: 0x8510, - 5282: 0x851C, - 5283: 0x851E, - 5284: 0x8522, - 5285: 0x8523, - 5286: 0x8524, - 5287: 0x8525, - 5288: 0x8527, - 5289: 0x852A, - 5290: 0x852B, - 5291: 0x852F, - 5292: 0x8533, - 5293: 0x8534, - 5294: 0x8536, - 5295: 0x853F, - 5296: 0x8546, - 5297: 0x854F, - 5298: 0x8550, - 5299: 0x8551, - 5300: 0x8552, - 5301: 0x8553, - 5302: 0x8556, - 5303: 0x8559, - 5304: 0x855C, - 5305: 0x855D, - 5306: 0x855E, - 5307: 0x855F, - 5308: 0x8560, - 5309: 0x8561, - 5310: 0x8562, - 5311: 0x8564, - 5312: 0x856B, - 5313: 0x856F, - 5314: 0x8579, - 5315: 0x857A, - 5316: 0x857B, - 5317: 0x857D, - 5318: 0x857F, - 5319: 0x8581, - 5320: 0x8585, - 5321: 0x8586, - 5322: 0x8589, - 5323: 0x858B, - 5324: 0x858C, - 5325: 0x858F, - 5326: 0x8593, - 5327: 0x8598, - 5328: 0x859D, - 5329: 0x859F, - 5330: 0x85A0, - 5331: 0x85A2, - 5332: 0x85A5, - 5333: 0x85A7, - 5334: 0x85B4, - 5335: 0x85B6, - 5336: 0x85B7, - 5337: 0x85B8, - 5338: 0x85BC, - 5339: 0x85BD, - 5340: 0x85BE, - 5341: 0x85BF, - 5342: 0x85C2, - 5343: 0x85C7, - 5344: 0x85CA, - 5345: 0x85CB, - 5346: 0x85CE, - 5347: 0x85AD, - 5348: 0x85D8, - 5349: 0x85DA, - 5350: 0x85DF, - 5351: 0x85E0, - 5352: 0x85E6, - 5353: 0x85E8, - 5354: 0x85ED, - 5355: 0x85F3, - 5356: 0x85F6, - 5357: 0x85FC, - 5358: 0x85FF, - 5359: 0x8600, - 5360: 0x8604, - 5361: 0x8605, - 5362: 0x860D, - 5363: 0x860E, - 5364: 0x8610, - 5365: 0x8611, - 5366: 0x8612, - 5367: 0x8618, - 5368: 0x8619, - 5369: 0x861B, - 5370: 0x861E, - 5371: 0x8621, - 5372: 0x8627, - 5373: 0x8629, - 5374: 0x8636, - 5375: 0x8638, - 5376: 0x863A, - 5377: 0x863C, - 5378: 0x863D, - 5379: 0x8640, - 5380: 0x8642, - 5381: 0x8646, - 5382: 0x8652, - 5383: 0x8653, - 5384: 0x8656, - 5385: 0x8657, - 5386: 0x8658, - 5387: 0x8659, - 5388: 0x865D, - 5389: 0x8660, - 5390: 0x8661, - 5391: 0x8662, - 5392: 0x8663, - 5393: 0x8664, - 5394: 0x8669, - 5395: 0x866C, - 5396: 0x866F, - 5397: 0x8675, - 5398: 0x8676, - 5399: 0x8677, - 5400: 0x867A, - 5401: 0x868D, - 5402: 0x8691, - 5403: 0x8696, - 5404: 0x8698, - 5405: 0x869A, - 5406: 0x869C, - 5407: 0x86A1, - 5408: 0x86A6, - 5409: 0x86A7, - 5410: 0x86A8, - 5411: 0x86AD, - 5412: 0x86B1, - 5413: 0x86B3, - 5414: 0x86B4, - 5415: 0x86B5, - 5416: 0x86B7, - 5417: 0x86B8, - 5418: 0x86B9, - 5419: 0x86BF, - 5420: 0x86C0, - 5421: 0x86C1, - 5422: 0x86C3, - 5423: 0x86C5, - 5424: 0x86D1, - 5425: 0x86D2, - 5426: 0x86D5, - 5427: 0x86D7, - 5428: 0x86DA, - 5429: 0x86DC, - 5430: 0x86E0, - 5431: 0x86E3, - 5432: 0x86E5, - 5433: 0x86E7, - 5434: 0x8688, - 5435: 0x86FA, - 5436: 0x86FC, - 5437: 0x86FD, - 5438: 0x8704, - 5439: 0x8705, - 5440: 0x8707, - 5441: 0x870B, - 5442: 0x870E, - 5443: 0x870F, - 5444: 0x8710, - 5445: 0x8713, - 5446: 0x8714, - 5447: 0x8719, - 5448: 0x871E, - 5449: 0x871F, - 5450: 0x8721, - 5451: 0x8723, - 5452: 0x8728, - 5453: 0x872E, - 5454: 0x872F, - 5455: 0x8731, - 5456: 0x8732, - 5457: 0x8739, - 5458: 0x873A, - 5459: 0x873C, - 5460: 0x873D, - 5461: 0x873E, - 5462: 0x8740, - 5463: 0x8743, - 5464: 0x8745, - 5465: 0x874D, - 5466: 0x8758, - 5467: 0x875D, - 5468: 0x8761, - 5469: 0x8764, - 5470: 0x8765, - 5471: 0x876F, - 5472: 0x8771, - 5473: 0x8772, - 5474: 0x877B, - 5475: 0x8783, - 5476: 0x8784, - 5477: 0x8785, - 5478: 0x8786, - 5479: 0x8787, - 5480: 0x8788, - 5481: 0x8789, - 5482: 0x878B, - 5483: 0x878C, - 5484: 0x8790, - 5485: 0x8793, - 5486: 0x8795, - 5487: 0x8797, - 5488: 0x8798, - 5489: 0x8799, - 5490: 0x879E, - 5491: 0x87A0, - 5492: 0x87A3, - 5493: 0x87A7, - 5494: 0x87AC, - 5495: 0x87AD, - 5496: 0x87AE, - 5497: 0x87B1, - 5498: 0x87B5, - 5499: 0x87BE, - 5500: 0x87BF, - 5501: 0x87C1, - 5502: 0x87C8, - 5503: 0x87C9, - 5504: 0x87CA, - 5505: 0x87CE, - 5506: 0x87D5, - 5507: 0x87D6, - 5508: 0x87D9, - 5509: 0x87DA, - 5510: 0x87DC, - 5511: 0x87DF, - 5512: 0x87E2, - 5513: 0x87E3, - 5514: 0x87E4, - 5515: 0x87EA, - 5516: 0x87EB, - 5517: 0x87ED, - 5518: 0x87F1, - 5519: 0x87F3, - 5520: 0x87F8, - 5521: 0x87FA, - 5522: 0x87FF, - 5523: 0x8801, - 5524: 0x8803, - 5525: 0x8806, - 5526: 0x8809, - 5527: 0x880A, - 5528: 0x880B, - 5529: 0x8810, - 5530: 0x8819, - 5531: 0x8812, - 5532: 0x8813, - 5533: 0x8814, - 5534: 0x8818, - 5535: 0x881A, - 5536: 0x881B, - 5537: 0x881C, - 5538: 0x881E, - 5539: 0x881F, - 5540: 0x8828, - 5541: 0x882D, - 5542: 0x882E, - 5543: 0x8830, - 5544: 0x8832, - 5545: 0x8835, - 5546: 0x883A, - 5547: 0x883C, - 5548: 0x8841, - 5549: 0x8843, - 5550: 0x8845, - 5551: 0x8848, - 5552: 0x8849, - 5553: 0x884A, - 5554: 0x884B, - 5555: 0x884E, - 5556: 0x8851, - 5557: 0x8855, - 5558: 0x8856, - 5559: 0x8858, - 5560: 0x885A, - 5561: 0x885C, - 5562: 0x885F, - 5563: 0x8860, - 5564: 0x8864, - 5565: 0x8869, - 5566: 0x8871, - 5567: 0x8879, - 5568: 0x887B, - 5569: 0x8880, - 5570: 0x8898, - 5571: 0x889A, - 5572: 0x889B, - 5573: 0x889C, - 5574: 0x889F, - 5575: 0x88A0, - 5576: 0x88A8, - 5577: 0x88AA, - 5578: 0x88BA, - 5579: 0x88BD, - 5580: 0x88BE, - 5581: 0x88C0, - 5582: 0x88CA, - 5583: 0x88CB, - 5584: 0x88CC, - 5585: 0x88CD, - 5586: 0x88CE, - 5587: 0x88D1, - 5588: 0x88D2, - 5589: 0x88D3, - 5590: 0x88DB, - 5591: 0x88DE, - 5592: 0x88E7, - 5593: 0x88EF, - 5594: 0x88F0, - 5595: 0x88F1, - 5596: 0x88F5, - 5597: 0x88F7, - 5598: 0x8901, - 5599: 0x8906, - 5600: 0x890D, - 5601: 0x890E, - 5602: 0x890F, - 5603: 0x8915, - 5604: 0x8916, - 5605: 0x8918, - 5606: 0x8919, - 5607: 0x891A, - 5608: 0x891C, - 5609: 0x8920, - 5610: 0x8926, - 5611: 0x8927, - 5612: 0x8928, - 5613: 0x8930, - 5614: 0x8931, - 5615: 0x8932, - 5616: 0x8935, - 5617: 0x8939, - 5618: 0x893A, - 5619: 0x893E, - 5620: 0x8940, - 5621: 0x8942, - 5622: 0x8945, - 5623: 0x8946, - 5624: 0x8949, - 5625: 0x894F, - 5626: 0x8952, - 5627: 0x8957, - 5628: 0x895A, - 5629: 0x895B, - 5630: 0x895C, - 5631: 0x8961, - 5632: 0x8962, - 5633: 0x8963, - 5634: 0x896B, - 5635: 0x896E, - 5636: 0x8970, - 5637: 0x8973, - 5638: 0x8975, - 5639: 0x897A, - 5640: 0x897B, - 5641: 0x897C, - 5642: 0x897D, - 5643: 0x8989, - 5644: 0x898D, - 5645: 0x8990, - 5646: 0x8994, - 5647: 0x8995, - 5648: 0x899B, - 5649: 0x899C, - 5650: 0x899F, - 5651: 0x89A0, - 5652: 0x89A5, - 5653: 0x89B0, - 5654: 0x89B4, - 5655: 0x89B5, - 5656: 0x89B6, - 5657: 0x89B7, - 5658: 0x89BC, - 5659: 0x89D4, - 5660: 0x89D5, - 5661: 0x89D6, - 5662: 0x89D7, - 5663: 0x89D8, - 5664: 0x89E5, - 5665: 0x89E9, - 5666: 0x89EB, - 5667: 0x89ED, - 5668: 0x89F1, - 5669: 0x89F3, - 5670: 0x89F6, - 5671: 0x89F9, - 5672: 0x89FD, - 5673: 0x89FF, - 5674: 0x8A04, - 5675: 0x8A05, - 5676: 0x8A07, - 5677: 0x8A0F, - 5678: 0x8A11, - 5679: 0x8A12, - 5680: 0x8A14, - 5681: 0x8A15, - 5682: 0x8A1E, - 5683: 0x8A20, - 5684: 0x8A22, - 5685: 0x8A24, - 5686: 0x8A26, - 5687: 0x8A2B, - 5688: 0x8A2C, - 5689: 0x8A2F, - 5690: 0x8A35, - 5691: 0x8A37, - 5692: 0x8A3D, - 5693: 0x8A3E, - 5694: 0x8A40, - 5695: 0x8A43, - 5696: 0x8A45, - 5697: 0x8A47, - 5698: 0x8A49, - 5699: 0x8A4D, - 5700: 0x8A4E, - 5701: 0x8A53, - 5702: 0x8A56, - 5703: 0x8A57, - 5704: 0x8A58, - 5705: 0x8A5C, - 5706: 0x8A5D, - 5707: 0x8A61, - 5708: 0x8A65, - 5709: 0x8A67, - 5710: 0x8A75, - 5711: 0x8A76, - 5712: 0x8A77, - 5713: 0x8A79, - 5714: 0x8A7A, - 5715: 0x8A7B, - 5716: 0x8A7E, - 5717: 0x8A7F, - 5718: 0x8A80, - 5719: 0x8A83, - 5720: 0x8A86, - 5721: 0x8A8B, - 5722: 0x8A8F, - 5723: 0x8A90, - 5724: 0x8A92, - 5725: 0x8A96, - 5726: 0x8A97, - 5727: 0x8A99, - 5728: 0x8A9F, - 5729: 0x8AA7, - 5730: 0x8AA9, - 5731: 0x8AAE, - 5732: 0x8AAF, - 5733: 0x8AB3, - 5734: 0x8AB6, - 5735: 0x8AB7, - 5736: 0x8ABB, - 5737: 0x8ABE, - 5738: 0x8AC3, - 5739: 0x8AC6, - 5740: 0x8AC8, - 5741: 0x8AC9, - 5742: 0x8ACA, - 5743: 0x8AD1, - 5744: 0x8AD3, - 5745: 0x8AD4, - 5746: 0x8AD5, - 5747: 0x8AD7, - 5748: 0x8ADD, - 5749: 0x8ADF, - 5750: 0x8AEC, - 5751: 0x8AF0, - 5752: 0x8AF4, - 5753: 0x8AF5, - 5754: 0x8AF6, - 5755: 0x8AFC, - 5756: 0x8AFF, - 5757: 0x8B05, - 5758: 0x8B06, - 5759: 0x8B0B, - 5760: 0x8B11, - 5761: 0x8B1C, - 5762: 0x8B1E, - 5763: 0x8B1F, - 5764: 0x8B0A, - 5765: 0x8B2D, - 5766: 0x8B30, - 5767: 0x8B37, - 5768: 0x8B3C, - 5769: 0x8B42, - 5770: 0x8B43, - 5771: 0x8B44, - 5772: 0x8B45, - 5773: 0x8B46, - 5774: 0x8B48, - 5775: 0x8B52, - 5776: 0x8B53, - 5777: 0x8B54, - 5778: 0x8B59, - 5779: 0x8B4D, - 5780: 0x8B5E, - 5781: 0x8B63, - 5782: 0x8B6D, - 5783: 0x8B76, - 5784: 0x8B78, - 5785: 0x8B79, - 5786: 0x8B7C, - 5787: 0x8B7E, - 5788: 0x8B81, - 5789: 0x8B84, - 5790: 0x8B85, - 5791: 0x8B8B, - 5792: 0x8B8D, - 5793: 0x8B8F, - 5794: 0x8B94, - 5795: 0x8B95, - 5796: 0x8B9C, - 5797: 0x8B9E, - 5798: 0x8B9F, - 5799: 0x8C38, - 5800: 0x8C39, - 5801: 0x8C3D, - 5802: 0x8C3E, - 5803: 0x8C45, - 5804: 0x8C47, - 5805: 0x8C49, - 5806: 0x8C4B, - 5807: 0x8C4F, - 5808: 0x8C51, - 5809: 0x8C53, - 5810: 0x8C54, - 5811: 0x8C57, - 5812: 0x8C58, - 5813: 0x8C5B, - 5814: 0x8C5D, - 5815: 0x8C59, - 5816: 0x8C63, - 5817: 0x8C64, - 5818: 0x8C66, - 5819: 0x8C68, - 5820: 0x8C69, - 5821: 0x8C6D, - 5822: 0x8C73, - 5823: 0x8C75, - 5824: 0x8C76, - 5825: 0x8C7B, - 5826: 0x8C7E, - 5827: 0x8C86, - 5828: 0x8C87, - 5829: 0x8C8B, - 5830: 0x8C90, - 5831: 0x8C92, - 5832: 0x8C93, - 5833: 0x8C99, - 5834: 0x8C9B, - 5835: 0x8C9C, - 5836: 0x8CA4, - 5837: 0x8CB9, - 5838: 0x8CBA, - 5839: 0x8CC5, - 5840: 0x8CC6, - 5841: 0x8CC9, - 5842: 0x8CCB, - 5843: 0x8CCF, - 5844: 0x8CD6, - 5845: 0x8CD5, - 5846: 0x8CD9, - 5847: 0x8CDD, - 5848: 0x8CE1, - 5849: 0x8CE8, - 5850: 0x8CEC, - 5851: 0x8CEF, - 5852: 0x8CF0, - 5853: 0x8CF2, - 5854: 0x8CF5, - 5855: 0x8CF7, - 5856: 0x8CF8, - 5857: 0x8CFE, - 5858: 0x8CFF, - 5859: 0x8D01, - 5860: 0x8D03, - 5861: 0x8D09, - 5862: 0x8D12, - 5863: 0x8D17, - 5864: 0x8D1B, - 5865: 0x8D65, - 5866: 0x8D69, - 5867: 0x8D6C, - 5868: 0x8D6E, - 5869: 0x8D7F, - 5870: 0x8D82, - 5871: 0x8D84, - 5872: 0x8D88, - 5873: 0x8D8D, - 5874: 0x8D90, - 5875: 0x8D91, - 5876: 0x8D95, - 5877: 0x8D9E, - 5878: 0x8D9F, - 5879: 0x8DA0, - 5880: 0x8DA6, - 5881: 0x8DAB, - 5882: 0x8DAC, - 5883: 0x8DAF, - 5884: 0x8DB2, - 5885: 0x8DB5, - 5886: 0x8DB7, - 5887: 0x8DB9, - 5888: 0x8DBB, - 5889: 0x8DC0, - 5890: 0x8DC5, - 5891: 0x8DC6, - 5892: 0x8DC7, - 5893: 0x8DC8, - 5894: 0x8DCA, - 5895: 0x8DCE, - 5896: 0x8DD1, - 5897: 0x8DD4, - 5898: 0x8DD5, - 5899: 0x8DD7, - 5900: 0x8DD9, - 5901: 0x8DE4, - 5902: 0x8DE5, - 5903: 0x8DE7, - 5904: 0x8DEC, - 5905: 0x8DF0, - 5906: 0x8DBC, - 5907: 0x8DF1, - 5908: 0x8DF2, - 5909: 0x8DF4, - 5910: 0x8DFD, - 5911: 0x8E01, - 5912: 0x8E04, - 5913: 0x8E05, - 5914: 0x8E06, - 5915: 0x8E0B, - 5916: 0x8E11, - 5917: 0x8E14, - 5918: 0x8E16, - 5919: 0x8E20, - 5920: 0x8E21, - 5921: 0x8E22, - 5922: 0x8E23, - 5923: 0x8E26, - 5924: 0x8E27, - 5925: 0x8E31, - 5926: 0x8E33, - 5927: 0x8E36, - 5928: 0x8E37, - 5929: 0x8E38, - 5930: 0x8E39, - 5931: 0x8E3D, - 5932: 0x8E40, - 5933: 0x8E41, - 5934: 0x8E4B, - 5935: 0x8E4D, - 5936: 0x8E4E, - 5937: 0x8E4F, - 5938: 0x8E54, - 5939: 0x8E5B, - 5940: 0x8E5C, - 5941: 0x8E5D, - 5942: 0x8E5E, - 5943: 0x8E61, - 5944: 0x8E62, - 5945: 0x8E69, - 5946: 0x8E6C, - 5947: 0x8E6D, - 5948: 0x8E6F, - 5949: 0x8E70, - 5950: 0x8E71, - 5951: 0x8E79, - 5952: 0x8E7A, - 5953: 0x8E7B, - 5954: 0x8E82, - 5955: 0x8E83, - 5956: 0x8E89, - 5957: 0x8E90, - 5958: 0x8E92, - 5959: 0x8E95, - 5960: 0x8E9A, - 5961: 0x8E9B, - 5962: 0x8E9D, - 5963: 0x8E9E, - 5964: 0x8EA2, - 5965: 0x8EA7, - 5966: 0x8EA9, - 5967: 0x8EAD, - 5968: 0x8EAE, - 5969: 0x8EB3, - 5970: 0x8EB5, - 5971: 0x8EBA, - 5972: 0x8EBB, - 5973: 0x8EC0, - 5974: 0x8EC1, - 5975: 0x8EC3, - 5976: 0x8EC4, - 5977: 0x8EC7, - 5978: 0x8ECF, - 5979: 0x8ED1, - 5980: 0x8ED4, - 5981: 0x8EDC, - 5982: 0x8EE8, - 5983: 0x8EEE, - 5984: 0x8EF0, - 5985: 0x8EF1, - 5986: 0x8EF7, - 5987: 0x8EF9, - 5988: 0x8EFA, - 5989: 0x8EED, - 5990: 0x8F00, - 5991: 0x8F02, - 5992: 0x8F07, - 5993: 0x8F08, - 5994: 0x8F0F, - 5995: 0x8F10, - 5996: 0x8F16, - 5997: 0x8F17, - 5998: 0x8F18, - 5999: 0x8F1E, - 6000: 0x8F20, - 6001: 0x8F21, - 6002: 0x8F23, - 6003: 0x8F25, - 6004: 0x8F27, - 6005: 0x8F28, - 6006: 0x8F2C, - 6007: 0x8F2D, - 6008: 0x8F2E, - 6009: 0x8F34, - 6010: 0x8F35, - 6011: 0x8F36, - 6012: 0x8F37, - 6013: 0x8F3A, - 6014: 0x8F40, - 6015: 0x8F41, - 6016: 0x8F43, - 6017: 0x8F47, - 6018: 0x8F4F, - 6019: 0x8F51, - 6020: 0x8F52, - 6021: 0x8F53, - 6022: 0x8F54, - 6023: 0x8F55, - 6024: 0x8F58, - 6025: 0x8F5D, - 6026: 0x8F5E, - 6027: 0x8F65, - 6028: 0x8F9D, - 6029: 0x8FA0, - 6030: 0x8FA1, - 6031: 0x8FA4, - 6032: 0x8FA5, - 6033: 0x8FA6, - 6034: 0x8FB5, - 6035: 0x8FB6, - 6036: 0x8FB8, - 6037: 0x8FBE, - 6038: 0x8FC0, - 6039: 0x8FC1, - 6040: 0x8FC6, - 6041: 0x8FCA, - 6042: 0x8FCB, - 6043: 0x8FCD, - 6044: 0x8FD0, - 6045: 0x8FD2, - 6046: 0x8FD3, - 6047: 0x8FD5, - 6048: 0x8FE0, - 6049: 0x8FE3, - 6050: 0x8FE4, - 6051: 0x8FE8, - 6052: 0x8FEE, - 6053: 0x8FF1, - 6054: 0x8FF5, - 6055: 0x8FF6, - 6056: 0x8FFB, - 6057: 0x8FFE, - 6058: 0x9002, - 6059: 0x9004, - 6060: 0x9008, - 6061: 0x900C, - 6062: 0x9018, - 6063: 0x901B, - 6064: 0x9028, - 6065: 0x9029, - 6066: 0x902F, - 6067: 0x902A, - 6068: 0x902C, - 6069: 0x902D, - 6070: 0x9033, - 6071: 0x9034, - 6072: 0x9037, - 6073: 0x903F, - 6074: 0x9043, - 6075: 0x9044, - 6076: 0x904C, - 6077: 0x905B, - 6078: 0x905D, - 6079: 0x9062, - 6080: 0x9066, - 6081: 0x9067, - 6082: 0x906C, - 6083: 0x9070, - 6084: 0x9074, - 6085: 0x9079, - 6086: 0x9085, - 6087: 0x9088, - 6088: 0x908B, - 6089: 0x908C, - 6090: 0x908E, - 6091: 0x9090, - 6092: 0x9095, - 6093: 0x9097, - 6094: 0x9098, - 6095: 0x9099, - 6096: 0x909B, - 6097: 0x90A0, - 6098: 0x90A1, - 6099: 0x90A2, - 6100: 0x90A5, - 6101: 0x90B0, - 6102: 0x90B2, - 6103: 0x90B3, - 6104: 0x90B4, - 6105: 0x90B6, - 6106: 0x90BD, - 6107: 0x90CC, - 6108: 0x90BE, - 6109: 0x90C3, - 6110: 0x90C4, - 6111: 0x90C5, - 6112: 0x90C7, - 6113: 0x90C8, - 6114: 0x90D5, - 6115: 0x90D7, - 6116: 0x90D8, - 6117: 0x90D9, - 6118: 0x90DC, - 6119: 0x90DD, - 6120: 0x90DF, - 6121: 0x90E5, - 6122: 0x90D2, - 6123: 0x90F6, - 6124: 0x90EB, - 6125: 0x90EF, - 6126: 0x90F0, - 6127: 0x90F4, - 6128: 0x90FE, - 6129: 0x90FF, - 6130: 0x9100, - 6131: 0x9104, - 6132: 0x9105, - 6133: 0x9106, - 6134: 0x9108, - 6135: 0x910D, - 6136: 0x9110, - 6137: 0x9114, - 6138: 0x9116, - 6139: 0x9117, - 6140: 0x9118, - 6141: 0x911A, - 6142: 0x911C, - 6143: 0x911E, - 6144: 0x9120, - 6145: 0x9125, - 6146: 0x9122, - 6147: 0x9123, - 6148: 0x9127, - 6149: 0x9129, - 6150: 0x912E, - 6151: 0x912F, - 6152: 0x9131, - 6153: 0x9134, - 6154: 0x9136, - 6155: 0x9137, - 6156: 0x9139, - 6157: 0x913A, - 6158: 0x913C, - 6159: 0x913D, - 6160: 0x9143, - 6161: 0x9147, - 6162: 0x9148, - 6163: 0x914F, - 6164: 0x9153, - 6165: 0x9157, - 6166: 0x9159, - 6167: 0x915A, - 6168: 0x915B, - 6169: 0x9161, - 6170: 0x9164, - 6171: 0x9167, - 6172: 0x916D, - 6173: 0x9174, - 6174: 0x9179, - 6175: 0x917A, - 6176: 0x917B, - 6177: 0x9181, - 6178: 0x9183, - 6179: 0x9185, - 6180: 0x9186, - 6181: 0x918A, - 6182: 0x918E, - 6183: 0x9191, - 6184: 0x9193, - 6185: 0x9194, - 6186: 0x9195, - 6187: 0x9198, - 6188: 0x919E, - 6189: 0x91A1, - 6190: 0x91A6, - 6191: 0x91A8, - 6192: 0x91AC, - 6193: 0x91AD, - 6194: 0x91AE, - 6195: 0x91B0, - 6196: 0x91B1, - 6197: 0x91B2, - 6198: 0x91B3, - 6199: 0x91B6, - 6200: 0x91BB, - 6201: 0x91BC, - 6202: 0x91BD, - 6203: 0x91BF, - 6204: 0x91C2, - 6205: 0x91C3, - 6206: 0x91C5, - 6207: 0x91D3, - 6208: 0x91D4, - 6209: 0x91D7, - 6210: 0x91D9, - 6211: 0x91DA, - 6212: 0x91DE, - 6213: 0x91E4, - 6214: 0x91E5, - 6215: 0x91E9, - 6216: 0x91EA, - 6217: 0x91EC, - 6218: 0x91ED, - 6219: 0x91EE, - 6220: 0x91EF, - 6221: 0x91F0, - 6222: 0x91F1, - 6223: 0x91F7, - 6224: 0x91F9, - 6225: 0x91FB, - 6226: 0x91FD, - 6227: 0x9200, - 6228: 0x9201, - 6229: 0x9204, - 6230: 0x9205, - 6231: 0x9206, - 6232: 0x9207, - 6233: 0x9209, - 6234: 0x920A, - 6235: 0x920C, - 6236: 0x9210, - 6237: 0x9212, - 6238: 0x9213, - 6239: 0x9216, - 6240: 0x9218, - 6241: 0x921C, - 6242: 0x921D, - 6243: 0x9223, - 6244: 0x9224, - 6245: 0x9225, - 6246: 0x9226, - 6247: 0x9228, - 6248: 0x922E, - 6249: 0x922F, - 6250: 0x9230, - 6251: 0x9233, - 6252: 0x9235, - 6253: 0x9236, - 6254: 0x9238, - 6255: 0x9239, - 6256: 0x923A, - 6257: 0x923C, - 6258: 0x923E, - 6259: 0x9240, - 6260: 0x9242, - 6261: 0x9243, - 6262: 0x9246, - 6263: 0x9247, - 6264: 0x924A, - 6265: 0x924D, - 6266: 0x924E, - 6267: 0x924F, - 6268: 0x9251, - 6269: 0x9258, - 6270: 0x9259, - 6271: 0x925C, - 6272: 0x925D, - 6273: 0x9260, - 6274: 0x9261, - 6275: 0x9265, - 6276: 0x9267, - 6277: 0x9268, - 6278: 0x9269, - 6279: 0x926E, - 6280: 0x926F, - 6281: 0x9270, - 6282: 0x9275, - 6283: 0x9276, - 6284: 0x9277, - 6285: 0x9278, - 6286: 0x9279, - 6287: 0x927B, - 6288: 0x927C, - 6289: 0x927D, - 6290: 0x927F, - 6291: 0x9288, - 6292: 0x9289, - 6293: 0x928A, - 6294: 0x928D, - 6295: 0x928E, - 6296: 0x9292, - 6297: 0x9297, - 6298: 0x9299, - 6299: 0x929F, - 6300: 0x92A0, - 6301: 0x92A4, - 6302: 0x92A5, - 6303: 0x92A7, - 6304: 0x92A8, - 6305: 0x92AB, - 6306: 0x92AF, - 6307: 0x92B2, - 6308: 0x92B6, - 6309: 0x92B8, - 6310: 0x92BA, - 6311: 0x92BB, - 6312: 0x92BC, - 6313: 0x92BD, - 6314: 0x92BF, - 6315: 0x92C0, - 6316: 0x92C1, - 6317: 0x92C2, - 6318: 0x92C3, - 6319: 0x92C5, - 6320: 0x92C6, - 6321: 0x92C7, - 6322: 0x92C8, - 6323: 0x92CB, - 6324: 0x92CC, - 6325: 0x92CD, - 6326: 0x92CE, - 6327: 0x92D0, - 6328: 0x92D3, - 6329: 0x92D5, - 6330: 0x92D7, - 6331: 0x92D8, - 6332: 0x92D9, - 6333: 0x92DC, - 6334: 0x92DD, - 6335: 0x92DF, - 6336: 0x92E0, - 6337: 0x92E1, - 6338: 0x92E3, - 6339: 0x92E5, - 6340: 0x92E7, - 6341: 0x92E8, - 6342: 0x92EC, - 6343: 0x92EE, - 6344: 0x92F0, - 6345: 0x92F9, - 6346: 0x92FB, - 6347: 0x92FF, - 6348: 0x9300, - 6349: 0x9302, - 6350: 0x9308, - 6351: 0x930D, - 6352: 0x9311, - 6353: 0x9314, - 6354: 0x9315, - 6355: 0x931C, - 6356: 0x931D, - 6357: 0x931E, - 6358: 0x931F, - 6359: 0x9321, - 6360: 0x9324, - 6361: 0x9325, - 6362: 0x9327, - 6363: 0x9329, - 6364: 0x932A, - 6365: 0x9333, - 6366: 0x9334, - 6367: 0x9336, - 6368: 0x9337, - 6369: 0x9347, - 6370: 0x9348, - 6371: 0x9349, - 6372: 0x9350, - 6373: 0x9351, - 6374: 0x9352, - 6375: 0x9355, - 6376: 0x9357, - 6377: 0x9358, - 6378: 0x935A, - 6379: 0x935E, - 6380: 0x9364, - 6381: 0x9365, - 6382: 0x9367, - 6383: 0x9369, - 6384: 0x936A, - 6385: 0x936D, - 6386: 0x936F, - 6387: 0x9370, - 6388: 0x9371, - 6389: 0x9373, - 6390: 0x9374, - 6391: 0x9376, - 6392: 0x937A, - 6393: 0x937D, - 6394: 0x937F, - 6395: 0x9380, - 6396: 0x9381, - 6397: 0x9382, - 6398: 0x9388, - 6399: 0x938A, - 6400: 0x938B, - 6401: 0x938D, - 6402: 0x938F, - 6403: 0x9392, - 6404: 0x9395, - 6405: 0x9398, - 6406: 0x939B, - 6407: 0x939E, - 6408: 0x93A1, - 6409: 0x93A3, - 6410: 0x93A4, - 6411: 0x93A6, - 6412: 0x93A8, - 6413: 0x93AB, - 6414: 0x93B4, - 6415: 0x93B5, - 6416: 0x93B6, - 6417: 0x93BA, - 6418: 0x93A9, - 6419: 0x93C1, - 6420: 0x93C4, - 6421: 0x93C5, - 6422: 0x93C6, - 6423: 0x93C7, - 6424: 0x93C9, - 6425: 0x93CA, - 6426: 0x93CB, - 6427: 0x93CC, - 6428: 0x93CD, - 6429: 0x93D3, - 6430: 0x93D9, - 6431: 0x93DC, - 6432: 0x93DE, - 6433: 0x93DF, - 6434: 0x93E2, - 6435: 0x93E6, - 6436: 0x93E7, - 6437: 0x93F9, - 6438: 0x93F7, - 6439: 0x93F8, - 6440: 0x93FA, - 6441: 0x93FB, - 6442: 0x93FD, - 6443: 0x9401, - 6444: 0x9402, - 6445: 0x9404, - 6446: 0x9408, - 6447: 0x9409, - 6448: 0x940D, - 6449: 0x940E, - 6450: 0x940F, - 6451: 0x9415, - 6452: 0x9416, - 6453: 0x9417, - 6454: 0x941F, - 6455: 0x942E, - 6456: 0x942F, - 6457: 0x9431, - 6458: 0x9432, - 6459: 0x9433, - 6460: 0x9434, - 6461: 0x943B, - 6462: 0x943F, - 6463: 0x943D, - 6464: 0x9443, - 6465: 0x9445, - 6466: 0x9448, - 6467: 0x944A, - 6468: 0x944C, - 6469: 0x9455, - 6470: 0x9459, - 6471: 0x945C, - 6472: 0x945F, - 6473: 0x9461, - 6474: 0x9463, - 6475: 0x9468, - 6476: 0x946B, - 6477: 0x946D, - 6478: 0x946E, - 6479: 0x946F, - 6480: 0x9471, - 6481: 0x9472, - 6482: 0x9484, - 6483: 0x9483, - 6484: 0x9578, - 6485: 0x9579, - 6486: 0x957E, - 6487: 0x9584, - 6488: 0x9588, - 6489: 0x958C, - 6490: 0x958D, - 6491: 0x958E, - 6492: 0x959D, - 6493: 0x959E, - 6494: 0x959F, - 6495: 0x95A1, - 6496: 0x95A6, - 6497: 0x95A9, - 6498: 0x95AB, - 6499: 0x95AC, - 6500: 0x95B4, - 6501: 0x95B6, - 6502: 0x95BA, - 6503: 0x95BD, - 6504: 0x95BF, - 6505: 0x95C6, - 6506: 0x95C8, - 6507: 0x95C9, - 6508: 0x95CB, - 6509: 0x95D0, - 6510: 0x95D1, - 6511: 0x95D2, - 6512: 0x95D3, - 6513: 0x95D9, - 6514: 0x95DA, - 6515: 0x95DD, - 6516: 0x95DE, - 6517: 0x95DF, - 6518: 0x95E0, - 6519: 0x95E4, - 6520: 0x95E6, - 6521: 0x961D, - 6522: 0x961E, - 6523: 0x9622, - 6524: 0x9624, - 6525: 0x9625, - 6526: 0x9626, - 6527: 0x962C, - 6528: 0x9631, - 6529: 0x9633, - 6530: 0x9637, - 6531: 0x9638, - 6532: 0x9639, - 6533: 0x963A, - 6534: 0x963C, - 6535: 0x963D, - 6536: 0x9641, - 6537: 0x9652, - 6538: 0x9654, - 6539: 0x9656, - 6540: 0x9657, - 6541: 0x9658, - 6542: 0x9661, - 6543: 0x966E, - 6544: 0x9674, - 6545: 0x967B, - 6546: 0x967C, - 6547: 0x967E, - 6548: 0x967F, - 6549: 0x9681, - 6550: 0x9682, - 6551: 0x9683, - 6552: 0x9684, - 6553: 0x9689, - 6554: 0x9691, - 6555: 0x9696, - 6556: 0x969A, - 6557: 0x969D, - 6558: 0x969F, - 6559: 0x96A4, - 6560: 0x96A5, - 6561: 0x96A6, - 6562: 0x96A9, - 6563: 0x96AE, - 6564: 0x96AF, - 6565: 0x96B3, - 6566: 0x96BA, - 6567: 0x96CA, - 6568: 0x96D2, - 6569: 0x5DB2, - 6570: 0x96D8, - 6571: 0x96DA, - 6572: 0x96DD, - 6573: 0x96DE, - 6574: 0x96DF, - 6575: 0x96E9, - 6576: 0x96EF, - 6577: 0x96F1, - 6578: 0x96FA, - 6579: 0x9702, - 6580: 0x9703, - 6581: 0x9705, - 6582: 0x9709, - 6583: 0x971A, - 6584: 0x971B, - 6585: 0x971D, - 6586: 0x9721, - 6587: 0x9722, - 6588: 0x9723, - 6589: 0x9728, - 6590: 0x9731, - 6591: 0x9733, - 6592: 0x9741, - 6593: 0x9743, - 6594: 0x974A, - 6595: 0x974E, - 6596: 0x974F, - 6597: 0x9755, - 6598: 0x9757, - 6599: 0x9758, - 6600: 0x975A, - 6601: 0x975B, - 6602: 0x9763, - 6603: 0x9767, - 6604: 0x976A, - 6605: 0x976E, - 6606: 0x9773, - 6607: 0x9776, - 6608: 0x9777, - 6609: 0x9778, - 6610: 0x977B, - 6611: 0x977D, - 6612: 0x977F, - 6613: 0x9780, - 6614: 0x9789, - 6615: 0x9795, - 6616: 0x9796, - 6617: 0x9797, - 6618: 0x9799, - 6619: 0x979A, - 6620: 0x979E, - 6621: 0x979F, - 6622: 0x97A2, - 6623: 0x97AC, - 6624: 0x97AE, - 6625: 0x97B1, - 6626: 0x97B2, - 6627: 0x97B5, - 6628: 0x97B6, - 6629: 0x97B8, - 6630: 0x97B9, - 6631: 0x97BA, - 6632: 0x97BC, - 6633: 0x97BE, - 6634: 0x97BF, - 6635: 0x97C1, - 6636: 0x97C4, - 6637: 0x97C5, - 6638: 0x97C7, - 6639: 0x97C9, - 6640: 0x97CA, - 6641: 0x97CC, - 6642: 0x97CD, - 6643: 0x97CE, - 6644: 0x97D0, - 6645: 0x97D1, - 6646: 0x97D4, - 6647: 0x97D7, - 6648: 0x97D8, - 6649: 0x97D9, - 6650: 0x97DD, - 6651: 0x97DE, - 6652: 0x97E0, - 6653: 0x97DB, - 6654: 0x97E1, - 6655: 0x97E4, - 6656: 0x97EF, - 6657: 0x97F1, - 6658: 0x97F4, - 6659: 0x97F7, - 6660: 0x97F8, - 6661: 0x97FA, - 6662: 0x9807, - 6663: 0x980A, - 6664: 0x9819, - 6665: 0x980D, - 6666: 0x980E, - 6667: 0x9814, - 6668: 0x9816, - 6669: 0x981C, - 6670: 0x981E, - 6671: 0x9820, - 6672: 0x9823, - 6673: 0x9826, - 6674: 0x982B, - 6675: 0x982E, - 6676: 0x982F, - 6677: 0x9830, - 6678: 0x9832, - 6679: 0x9833, - 6680: 0x9835, - 6681: 0x9825, - 6682: 0x983E, - 6683: 0x9844, - 6684: 0x9847, - 6685: 0x984A, - 6686: 0x9851, - 6687: 0x9852, - 6688: 0x9853, - 6689: 0x9856, - 6690: 0x9857, - 6691: 0x9859, - 6692: 0x985A, - 6693: 0x9862, - 6694: 0x9863, - 6695: 0x9865, - 6696: 0x9866, - 6697: 0x986A, - 6698: 0x986C, - 6699: 0x98AB, - 6700: 0x98AD, - 6701: 0x98AE, - 6702: 0x98B0, - 6703: 0x98B4, - 6704: 0x98B7, - 6705: 0x98B8, - 6706: 0x98BA, - 6707: 0x98BB, - 6708: 0x98BF, - 6709: 0x98C2, - 6710: 0x98C5, - 6711: 0x98C8, - 6712: 0x98CC, - 6713: 0x98E1, - 6714: 0x98E3, - 6715: 0x98E5, - 6716: 0x98E6, - 6717: 0x98E7, - 6718: 0x98EA, - 6719: 0x98F3, - 6720: 0x98F6, - 6721: 0x9902, - 6722: 0x9907, - 6723: 0x9908, - 6724: 0x9911, - 6725: 0x9915, - 6726: 0x9916, - 6727: 0x9917, - 6728: 0x991A, - 6729: 0x991B, - 6730: 0x991C, - 6731: 0x991F, - 6732: 0x9922, - 6733: 0x9926, - 6734: 0x9927, - 6735: 0x992B, - 6736: 0x9931, - 6737: 0x9932, - 6738: 0x9933, - 6739: 0x9934, - 6740: 0x9935, - 6741: 0x9939, - 6742: 0x993A, - 6743: 0x993B, - 6744: 0x993C, - 6745: 0x9940, - 6746: 0x9941, - 6747: 0x9946, - 6748: 0x9947, - 6749: 0x9948, - 6750: 0x994D, - 6751: 0x994E, - 6752: 0x9954, - 6753: 0x9958, - 6754: 0x9959, - 6755: 0x995B, - 6756: 0x995C, - 6757: 0x995E, - 6758: 0x995F, - 6759: 0x9960, - 6760: 0x999B, - 6761: 0x999D, - 6762: 0x999F, - 6763: 0x99A6, - 6764: 0x99B0, - 6765: 0x99B1, - 6766: 0x99B2, - 6767: 0x99B5, - 6768: 0x99B9, - 6769: 0x99BA, - 6770: 0x99BD, - 6771: 0x99BF, - 6772: 0x99C3, - 6773: 0x99C9, - 6774: 0x99D3, - 6775: 0x99D4, - 6776: 0x99D9, - 6777: 0x99DA, - 6778: 0x99DC, - 6779: 0x99DE, - 6780: 0x99E7, - 6781: 0x99EA, - 6782: 0x99EB, - 6783: 0x99EC, - 6784: 0x99F0, - 6785: 0x99F4, - 6786: 0x99F5, - 6787: 0x99F9, - 6788: 0x99FD, - 6789: 0x99FE, - 6790: 0x9A02, - 6791: 0x9A03, - 6792: 0x9A04, - 6793: 0x9A0B, - 6794: 0x9A0C, - 6795: 0x9A10, - 6796: 0x9A11, - 6797: 0x9A16, - 6798: 0x9A1E, - 6799: 0x9A20, - 6800: 0x9A22, - 6801: 0x9A23, - 6802: 0x9A24, - 6803: 0x9A27, - 6804: 0x9A2D, - 6805: 0x9A2E, - 6806: 0x9A33, - 6807: 0x9A35, - 6808: 0x9A36, - 6809: 0x9A38, - 6810: 0x9A47, - 6811: 0x9A41, - 6812: 0x9A44, - 6813: 0x9A4A, - 6814: 0x9A4B, - 6815: 0x9A4C, - 6816: 0x9A4E, - 6817: 0x9A51, - 6818: 0x9A54, - 6819: 0x9A56, - 6820: 0x9A5D, - 6821: 0x9AAA, - 6822: 0x9AAC, - 6823: 0x9AAE, - 6824: 0x9AAF, - 6825: 0x9AB2, - 6826: 0x9AB4, - 6827: 0x9AB5, - 6828: 0x9AB6, - 6829: 0x9AB9, - 6830: 0x9ABB, - 6831: 0x9ABE, - 6832: 0x9ABF, - 6833: 0x9AC1, - 6834: 0x9AC3, - 6835: 0x9AC6, - 6836: 0x9AC8, - 6837: 0x9ACE, - 6838: 0x9AD0, - 6839: 0x9AD2, - 6840: 0x9AD5, - 6841: 0x9AD6, - 6842: 0x9AD7, - 6843: 0x9ADB, - 6844: 0x9ADC, - 6845: 0x9AE0, - 6846: 0x9AE4, - 6847: 0x9AE5, - 6848: 0x9AE7, - 6849: 0x9AE9, - 6850: 0x9AEC, - 6851: 0x9AF2, - 6852: 0x9AF3, - 6853: 0x9AF5, - 6854: 0x9AF9, - 6855: 0x9AFA, - 6856: 0x9AFD, - 6857: 0x9AFF, - 6858: 0x9B00, - 6859: 0x9B01, - 6860: 0x9B02, - 6861: 0x9B03, - 6862: 0x9B04, - 6863: 0x9B05, - 6864: 0x9B08, - 6865: 0x9B09, - 6866: 0x9B0B, - 6867: 0x9B0C, - 6868: 0x9B0D, - 6869: 0x9B0E, - 6870: 0x9B10, - 6871: 0x9B12, - 6872: 0x9B16, - 6873: 0x9B19, - 6874: 0x9B1B, - 6875: 0x9B1C, - 6876: 0x9B20, - 6877: 0x9B26, - 6878: 0x9B2B, - 6879: 0x9B2D, - 6880: 0x9B33, - 6881: 0x9B34, - 6882: 0x9B35, - 6883: 0x9B37, - 6884: 0x9B39, - 6885: 0x9B3A, - 6886: 0x9B3D, - 6887: 0x9B48, - 6888: 0x9B4B, - 6889: 0x9B4C, - 6890: 0x9B55, - 6891: 0x9B56, - 6892: 0x9B57, - 6893: 0x9B5B, - 6894: 0x9B5E, - 6895: 0x9B61, - 6896: 0x9B63, - 6897: 0x9B65, - 6898: 0x9B66, - 6899: 0x9B68, - 6900: 0x9B6A, - 6901: 0x9B6B, - 6902: 0x9B6C, - 6903: 0x9B6D, - 6904: 0x9B6E, - 6905: 0x9B73, - 6906: 0x9B75, - 6907: 0x9B77, - 6908: 0x9B78, - 6909: 0x9B79, - 6910: 0x9B7F, - 6911: 0x9B80, - 6912: 0x9B84, - 6913: 0x9B85, - 6914: 0x9B86, - 6915: 0x9B87, - 6916: 0x9B89, - 6917: 0x9B8A, - 6918: 0x9B8B, - 6919: 0x9B8D, - 6920: 0x9B8F, - 6921: 0x9B90, - 6922: 0x9B94, - 6923: 0x9B9A, - 6924: 0x9B9D, - 6925: 0x9B9E, - 6926: 0x9BA6, - 6927: 0x9BA7, - 6928: 0x9BA9, - 6929: 0x9BAC, - 6930: 0x9BB0, - 6931: 0x9BB1, - 6932: 0x9BB2, - 6933: 0x9BB7, - 6934: 0x9BB8, - 6935: 0x9BBB, - 6936: 0x9BBC, - 6937: 0x9BBE, - 6938: 0x9BBF, - 6939: 0x9BC1, - 6940: 0x9BC7, - 6941: 0x9BC8, - 6942: 0x9BCE, - 6943: 0x9BD0, - 6944: 0x9BD7, - 6945: 0x9BD8, - 6946: 0x9BDD, - 6947: 0x9BDF, - 6948: 0x9BE5, - 6949: 0x9BE7, - 6950: 0x9BEA, - 6951: 0x9BEB, - 6952: 0x9BEF, - 6953: 0x9BF3, - 6954: 0x9BF7, - 6955: 0x9BF8, - 6956: 0x9BF9, - 6957: 0x9BFA, - 6958: 0x9BFD, - 6959: 0x9BFF, - 6960: 0x9C00, - 6961: 0x9C02, - 6962: 0x9C0B, - 6963: 0x9C0F, - 6964: 0x9C11, - 6965: 0x9C16, - 6966: 0x9C18, - 6967: 0x9C19, - 6968: 0x9C1A, - 6969: 0x9C1C, - 6970: 0x9C1E, - 6971: 0x9C22, - 6972: 0x9C23, - 6973: 0x9C26, - 6974: 0x9C27, - 6975: 0x9C28, - 6976: 0x9C29, - 6977: 0x9C2A, - 6978: 0x9C31, - 6979: 0x9C35, - 6980: 0x9C36, - 6981: 0x9C37, - 6982: 0x9C3D, - 6983: 0x9C41, - 6984: 0x9C43, - 6985: 0x9C44, - 6986: 0x9C45, - 6987: 0x9C49, - 6988: 0x9C4A, - 6989: 0x9C4E, - 6990: 0x9C4F, - 6991: 0x9C50, - 6992: 0x9C53, - 6993: 0x9C54, - 6994: 0x9C56, - 6995: 0x9C58, - 6996: 0x9C5B, - 6997: 0x9C5D, - 6998: 0x9C5E, - 6999: 0x9C5F, - 7000: 0x9C63, - 7001: 0x9C69, - 7002: 0x9C6A, - 7003: 0x9C5C, - 7004: 0x9C6B, - 7005: 0x9C68, - 7006: 0x9C6E, - 7007: 0x9C70, - 7008: 0x9C72, - 7009: 0x9C75, - 7010: 0x9C77, - 7011: 0x9C7B, - 7012: 0x9CE6, - 7013: 0x9CF2, - 7014: 0x9CF7, - 7015: 0x9CF9, - 7016: 0x9D0B, - 7017: 0x9D02, - 7018: 0x9D11, - 7019: 0x9D17, - 7020: 0x9D18, - 7021: 0x9D1C, - 7022: 0x9D1D, - 7023: 0x9D1E, - 7024: 0x9D2F, - 7025: 0x9D30, - 7026: 0x9D32, - 7027: 0x9D33, - 7028: 0x9D34, - 7029: 0x9D3A, - 7030: 0x9D3C, - 7031: 0x9D45, - 7032: 0x9D3D, - 7033: 0x9D42, - 7034: 0x9D43, - 7035: 0x9D47, - 7036: 0x9D4A, - 7037: 0x9D53, - 7038: 0x9D54, - 7039: 0x9D5F, - 7040: 0x9D63, - 7041: 0x9D62, - 7042: 0x9D65, - 7043: 0x9D69, - 7044: 0x9D6A, - 7045: 0x9D6B, - 7046: 0x9D70, - 7047: 0x9D76, - 7048: 0x9D77, - 7049: 0x9D7B, - 7050: 0x9D7C, - 7051: 0x9D7E, - 7052: 0x9D83, - 7053: 0x9D84, - 7054: 0x9D86, - 7055: 0x9D8A, - 7056: 0x9D8D, - 7057: 0x9D8E, - 7058: 0x9D92, - 7059: 0x9D93, - 7060: 0x9D95, - 7061: 0x9D96, - 7062: 0x9D97, - 7063: 0x9D98, - 7064: 0x9DA1, - 7065: 0x9DAA, - 7066: 0x9DAC, - 7067: 0x9DAE, - 7068: 0x9DB1, - 7069: 0x9DB5, - 7070: 0x9DB9, - 7071: 0x9DBC, - 7072: 0x9DBF, - 7073: 0x9DC3, - 7074: 0x9DC7, - 7075: 0x9DC9, - 7076: 0x9DCA, - 7077: 0x9DD4, - 7078: 0x9DD5, - 7079: 0x9DD6, - 7080: 0x9DD7, - 7081: 0x9DDA, - 7082: 0x9DDE, - 7083: 0x9DDF, - 7084: 0x9DE0, - 7085: 0x9DE5, - 7086: 0x9DE7, - 7087: 0x9DE9, - 7088: 0x9DEB, - 7089: 0x9DEE, - 7090: 0x9DF0, - 7091: 0x9DF3, - 7092: 0x9DF4, - 7093: 0x9DFE, - 7094: 0x9E0A, - 7095: 0x9E02, - 7096: 0x9E07, - 7097: 0x9E0E, - 7098: 0x9E10, - 7099: 0x9E11, - 7100: 0x9E12, - 7101: 0x9E15, - 7102: 0x9E16, - 7103: 0x9E19, - 7104: 0x9E1C, - 7105: 0x9E1D, - 7106: 0x9E7A, - 7107: 0x9E7B, - 7108: 0x9E7C, - 7109: 0x9E80, - 7110: 0x9E82, - 7111: 0x9E83, - 7112: 0x9E84, - 7113: 0x9E85, - 7114: 0x9E87, - 7115: 0x9E8E, - 7116: 0x9E8F, - 7117: 0x9E96, - 7118: 0x9E98, - 7119: 0x9E9B, - 7120: 0x9E9E, - 7121: 0x9EA4, - 7122: 0x9EA8, - 7123: 0x9EAC, - 7124: 0x9EAE, - 7125: 0x9EAF, - 7126: 0x9EB0, - 7127: 0x9EB3, - 7128: 0x9EB4, - 7129: 0x9EB5, - 7130: 0x9EC6, - 7131: 0x9EC8, - 7132: 0x9ECB, - 7133: 0x9ED5, - 7134: 0x9EDF, - 7135: 0x9EE4, - 7136: 0x9EE7, - 7137: 0x9EEC, - 7138: 0x9EED, - 7139: 0x9EEE, - 7140: 0x9EF0, - 7141: 0x9EF1, - 7142: 0x9EF2, - 7143: 0x9EF5, - 7144: 0x9EF8, - 7145: 0x9EFF, - 7146: 0x9F02, - 7147: 0x9F03, - 7148: 0x9F09, - 7149: 0x9F0F, - 7150: 0x9F10, - 7151: 0x9F11, - 7152: 0x9F12, - 7153: 0x9F14, - 7154: 0x9F16, - 7155: 0x9F17, - 7156: 0x9F19, - 7157: 0x9F1A, - 7158: 0x9F1B, - 7159: 0x9F1F, - 7160: 0x9F22, - 7161: 0x9F26, - 7162: 0x9F2A, - 7163: 0x9F2B, - 7164: 0x9F2F, - 7165: 0x9F31, - 7166: 0x9F32, - 7167: 0x9F34, - 7168: 0x9F37, - 7169: 0x9F39, - 7170: 0x9F3A, - 7171: 0x9F3C, - 7172: 0x9F3D, - 7173: 0x9F3F, - 7174: 0x9F41, - 7175: 0x9F43, - 7176: 0x9F44, - 7177: 0x9F45, - 7178: 0x9F46, - 7179: 0x9F47, - 7180: 0x9F53, - 7181: 0x9F55, - 7182: 0x9F56, - 7183: 0x9F57, - 7184: 0x9F58, - 7185: 0x9F5A, - 7186: 0x9F5D, - 7187: 0x9F5E, - 7188: 0x9F68, - 7189: 0x9F69, - 7190: 0x9F6D, - 7191: 0x9F6E, - 7192: 0x9F6F, - 7193: 0x9F70, - 7194: 0x9F71, - 7195: 0x9F73, - 7196: 0x9F75, - 7197: 0x9F7A, - 7198: 0x9F7D, - 7199: 0x9F8F, - 7200: 0x9F90, - 7201: 0x9F91, - 7202: 0x9F92, - 7203: 0x9F94, - 7204: 0x9F96, - 7205: 0x9F97, - 7206: 0x9F9E, - 7207: 0x9FA1, - 7208: 0x9FA2, - 7209: 0x9FA3, - 7210: 0x9FA5, -} - -const ( - jis0208 = 1 - jis0212 = 2 - codeMask = 0x7f - codeShift = 7 - tableShift = 14 -) - -const numEncodeTables = 6 - -// encodeX are the encoding tables from Unicode to JIS code, -// sorted by decreasing length. -// encode0: 20902 entries for runes in [19968, 40870). -// encode1: 1632 entries for runes in [ 8208, 9840). -// encode2: 974 entries for runes in [12288, 13262). -// encode3: 959 entries for runes in [ 161, 1120). -// encode4: 261 entries for runes in [63785, 64046). -// encode5: 229 entries for runes in [65281, 65510). -// -// The high two bits of the value record whether the JIS code comes from the -// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2). -// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the -// JIS code (94*j1 + j2) within that table. - -const encode0Low, encode0High = 19968, 40870 - -var encode0 = [...]uint16{ - 19968 - 19968: jis0208<<14 | 0x0F<<7 | 0x4B, - 19969 - 19968: jis0208<<14 | 0x22<<7 | 0x59, - 19970 - 19968: jis0212<<14 | 0x0F<<7 | 0x00, - 19971 - 19968: jis0208<<14 | 0x1B<<7 | 0x16, - 19972 - 19968: jis0212<<14 | 0x0F<<7 | 0x01, - 19973 - 19968: jis0212<<14 | 0x0F<<7 | 0x02, - 19975 - 19968: jis0208<<14 | 0x2A<<7 | 0x5B, - 19976 - 19968: jis0208<<14 | 0x1D<<7 | 0x45, - 19977 - 19968: jis0208<<14 | 0x1A<<7 | 0x0F, - 19978 - 19968: jis0208<<14 | 0x1D<<7 | 0x44, - 19979 - 19968: jis0208<<14 | 0x11<<7 | 0x1B, - 19980 - 19968: jis0212<<14 | 0x0F<<7 | 0x03, - 19981 - 19968: jis0208<<14 | 0x28<<7 | 0x33, - 19982 - 19968: jis0208<<14 | 0x2C<<7 | 0x1E, - 19984 - 19968: jis0208<<14 | 0x2F<<7 | 0x01, - 19985 - 19968: jis0208<<14 | 0x10<<7 | 0x0E, - 19986 - 19968: jis0212<<14 | 0x0F<<7 | 0x04, - 19988 - 19968: jis0208<<14 | 0x12<<7 | 0x4D, - 19989 - 19968: jis0208<<14 | 0x2F<<7 | 0x02, - 19990 - 19968: jis0208<<14 | 0x1F<<7 | 0x03, - 19991 - 19968: jis0208<<14 | 0x31<<7 | 0x21, - 19992 - 19968: jis0208<<14 | 0x14<<7 | 0x35, - 19993 - 19968: jis0208<<14 | 0x29<<7 | 0x19, - 19998 - 19968: jis0208<<14 | 0x1D<<7 | 0x46, - 19999 - 19968: jis0212<<14 | 0x0F<<7 | 0x05, - 20001 - 19968: jis0208<<14 | 0x2D<<7 | 0x1D, - 20003 - 19968: jis0212<<14 | 0x0F<<7 | 0x06, - 20004 - 19968: jis0212<<14 | 0x0F<<7 | 0x07, - 20006 - 19968: jis0208<<14 | 0x29<<7 | 0x21, - 20008 - 19968: jis0208<<14 | 0x58<<7 | 0x0C, - 20010 - 19968: jis0208<<14 | 0x2F<<7 | 0x03, - 20011 - 19968: jis0212<<14 | 0x0F<<7 | 0x09, - 20013 - 19968: jis0208<<14 | 0x22<<7 | 0x45, - 20014 - 19968: jis0212<<14 | 0x0F<<7 | 0x0A, - 20015 - 19968: jis0212<<14 | 0x0F<<7 | 0x0B, - 20016 - 19968: jis0212<<14 | 0x0F<<7 | 0x0C, - 20017 - 19968: jis0208<<14 | 0x2F<<7 | 0x04, - 20018 - 19968: jis0208<<14 | 0x15<<7 | 0x59, - 20021 - 19968: jis0212<<14 | 0x0F<<7 | 0x0D, - 20022 - 19968: jis0208<<14 | 0x2F<<7 | 0x05, - 20024 - 19968: jis0208<<14 | 0x13<<7 | 0x3C, - 20025 - 19968: jis0208<<14 | 0x22<<7 | 0x0F, - 20027 - 19968: jis0208<<14 | 0x1B<<7 | 0x46, - 20028 - 19968: jis0208<<14 | 0x2F<<7 | 0x06, - 20031 - 19968: jis0208<<14 | 0x2F<<7 | 0x07, - 20032 - 19968: jis0212<<14 | 0x0F<<7 | 0x0E, - 20033 - 19968: jis0212<<14 | 0x0F<<7 | 0x0F, - 20034 - 19968: jis0208<<14 | 0x2F<<7 | 0x08, - 20035 - 19968: jis0208<<14 | 0x26<<7 | 0x14, - 20036 - 19968: jis0212<<14 | 0x0F<<7 | 0x10, - 20037 - 19968: jis0208<<14 | 0x14<<7 | 0x36, - 20039 - 19968: jis0212<<14 | 0x0F<<7 | 0x11, - 20043 - 19968: jis0208<<14 | 0x26<<7 | 0x16, - 20045 - 19968: jis0208<<14 | 0x25<<7 | 0x42, - 20046 - 19968: jis0208<<14 | 0x17<<7 | 0x22, - 20047 - 19968: jis0208<<14 | 0x2A<<7 | 0x12, - 20049 - 19968: jis0212<<14 | 0x0F<<7 | 0x12, - 20053 - 19968: jis0208<<14 | 0x48<<7 | 0x28, - 20054 - 19968: jis0208<<14 | 0x2F<<7 | 0x09, - 20055 - 19968: jis0208<<14 | 0x1D<<7 | 0x47, - 20056 - 19968: jis0208<<14 | 0x2F<<7 | 0x0A, - 20057 - 19968: jis0208<<14 | 0x11<<7 | 0x14, - 20058 - 19968: jis0212<<14 | 0x0F<<7 | 0x13, - 20060 - 19968: jis0212<<14 | 0x0F<<7 | 0x14, - 20061 - 19968: jis0208<<14 | 0x15<<7 | 0x44, - 20062 - 19968: jis0208<<14 | 0x17<<7 | 0x4F, - 20063 - 19968: jis0208<<14 | 0x2B<<7 | 0x48, - 20066 - 19968: jis0208<<14 | 0x35<<7 | 0x05, - 20067 - 19968: jis0212<<14 | 0x0F<<7 | 0x15, - 20072 - 19968: jis0212<<14 | 0x0F<<7 | 0x16, - 20073 - 19968: jis0212<<14 | 0x0F<<7 | 0x17, - 20081 - 19968: jis0208<<14 | 0x2C<<7 | 0x4F, - 20083 - 19968: jis0208<<14 | 0x25<<7 | 0x5C, - 20084 - 19968: jis0212<<14 | 0x0F<<7 | 0x18, - 20085 - 19968: jis0212<<14 | 0x0F<<7 | 0x19, - 20089 - 19968: jis0212<<14 | 0x0F<<7 | 0x1A, - 20094 - 19968: jis0208<<14 | 0x13<<7 | 0x04, - 20095 - 19968: jis0212<<14 | 0x0F<<7 | 0x1B, - 20096 - 19968: jis0208<<14 | 0x14<<7 | 0x14, - 20098 - 19968: jis0208<<14 | 0x2F<<7 | 0x0B, - 20101 - 19968: jis0208<<14 | 0x2F<<7 | 0x0C, - 20102 - 19968: jis0208<<14 | 0x2D<<7 | 0x1A, - 20104 - 19968: jis0208<<14 | 0x2C<<7 | 0x1C, - 20105 - 19968: jis0208<<14 | 0x20<<7 | 0x47, - 20106 - 19968: jis0208<<14 | 0x2F<<7 | 0x0E, - 20107 - 19968: jis0208<<14 | 0x1A<<7 | 0x55, - 20108 - 19968: jis0208<<14 | 0x25<<7 | 0x52, - 20109 - 19968: jis0212<<14 | 0x0F<<7 | 0x1C, - 20110 - 19968: jis0208<<14 | 0x2F<<7 | 0x11, - 20113 - 19968: jis0208<<14 | 0x10<<7 | 0x1D, - 20114 - 19968: jis0208<<14 | 0x17<<7 | 0x3E, - 20116 - 19968: jis0208<<14 | 0x17<<7 | 0x3D, - 20117 - 19968: jis0208<<14 | 0x0F<<7 | 0x45, - 20118 - 19968: jis0212<<14 | 0x0F<<7 | 0x1D, - 20119 - 19968: jis0212<<14 | 0x0F<<7 | 0x1E, - 20120 - 19968: jis0208<<14 | 0x2E<<7 | 0x2A, - 20121 - 19968: jis0208<<14 | 0x2E<<7 | 0x29, - 20123 - 19968: jis0208<<14 | 0x19<<7 | 0x12, - 20124 - 19968: jis0208<<14 | 0x0F<<7 | 0x00, - 20125 - 19968: jis0212<<14 | 0x0F<<7 | 0x1F, - 20126 - 19968: jis0208<<14 | 0x2F<<7 | 0x12, - 20127 - 19968: jis0208<<14 | 0x2F<<7 | 0x13, - 20128 - 19968: jis0208<<14 | 0x2F<<7 | 0x14, - 20129 - 19968: jis0208<<14 | 0x2A<<7 | 0x13, - 20130 - 19968: jis0208<<14 | 0x2F<<7 | 0x15, - 20132 - 19968: jis0208<<14 | 0x17<<7 | 0x51, - 20133 - 19968: jis0208<<14 | 0x0F<<7 | 0x46, - 20134 - 19968: jis0208<<14 | 0x2A<<7 | 0x51, - 20136 - 19968: jis0208<<14 | 0x14<<7 | 0x5B, - 20139 - 19968: jis0208<<14 | 0x14<<7 | 0x5C, - 20140 - 19968: jis0208<<14 | 0x14<<7 | 0x5D, - 20141 - 19968: jis0208<<14 | 0x23<<7 | 0x41, - 20142 - 19968: jis0208<<14 | 0x2D<<7 | 0x1B, - 20143 - 19968: jis0212<<14 | 0x0F<<7 | 0x20, - 20144 - 19968: jis0208<<14 | 0x2F<<7 | 0x16, - 20147 - 19968: jis0208<<14 | 0x2F<<7 | 0x17, - 20150 - 19968: jis0208<<14 | 0x2F<<7 | 0x18, - 20153 - 19968: jis0212<<14 | 0x0F<<7 | 0x21, - 20154 - 19968: jis0208<<14 | 0x1E<<7 | 0x2C, - 20160 - 19968: jis0208<<14 | 0x1C<<7 | 0x19, - 20161 - 19968: jis0208<<14 | 0x1E<<7 | 0x2D, - 20162 - 19968: jis0208<<14 | 0x2F<<7 | 0x1D, - 20163 - 19968: jis0212<<14 | 0x0F<<7 | 0x22, - 20164 - 19968: jis0208<<14 | 0x2F<<7 | 0x1B, - 20166 - 19968: jis0208<<14 | 0x2F<<7 | 0x1C, - 20167 - 19968: jis0208<<14 | 0x14<<7 | 0x37, - 20170 - 19968: jis0208<<14 | 0x19<<7 | 0x02, - 20171 - 19968: jis0208<<14 | 0x11<<7 | 0x4F, - 20173 - 19968: jis0208<<14 | 0x2F<<7 | 0x1A, - 20174 - 19968: jis0208<<14 | 0x2F<<7 | 0x19, - 20175 - 19968: jis0208<<14 | 0x29<<7 | 0x08, - 20176 - 19968: jis0212<<14 | 0x0F<<7 | 0x23, - 20180 - 19968: jis0208<<14 | 0x1A<<7 | 0x25, - 20181 - 19968: jis0208<<14 | 0x1A<<7 | 0x24, - 20182 - 19968: jis0208<<14 | 0x21<<7 | 0x1D, - 20183 - 19968: jis0208<<14 | 0x2F<<7 | 0x1E, - 20184 - 19968: jis0208<<14 | 0x28<<7 | 0x34, - 20185 - 19968: jis0208<<14 | 0x1F<<7 | 0x46, - 20186 - 19968: jis0212<<14 | 0x0F<<7 | 0x24, - 20187 - 19968: jis0212<<14 | 0x0F<<7 | 0x25, - 20189 - 19968: jis0208<<14 | 0x00<<7 | 0x17, - 20190 - 19968: jis0208<<14 | 0x2F<<7 | 0x1F, - 20191 - 19968: jis0208<<14 | 0x2F<<7 | 0x21, - 20192 - 19968: jis0212<<14 | 0x0F<<7 | 0x26, - 20193 - 19968: jis0208<<14 | 0x58<<7 | 0x0D, - 20194 - 19968: jis0212<<14 | 0x0F<<7 | 0x28, - 20195 - 19968: jis0208<<14 | 0x21<<7 | 0x44, - 20196 - 19968: jis0208<<14 | 0x2D<<7 | 0x40, - 20197 - 19968: jis0208<<14 | 0x0F<<7 | 0x29, - 20200 - 19968: jis0212<<14 | 0x0F<<7 | 0x29, - 20205 - 19968: jis0208<<14 | 0x2F<<7 | 0x20, - 20206 - 19968: jis0208<<14 | 0x11<<7 | 0x1D, - 20207 - 19968: jis0212<<14 | 0x0F<<7 | 0x2A, - 20208 - 19968: jis0208<<14 | 0x15<<7 | 0x23, - 20209 - 19968: jis0212<<14 | 0x0F<<7 | 0x2B, - 20210 - 19968: jis0208<<14 | 0x22<<7 | 0x46, - 20211 - 19968: jis0212<<14 | 0x0F<<7 | 0x2C, - 20213 - 19968: jis0212<<14 | 0x0F<<7 | 0x2D, - 20214 - 19968: jis0208<<14 | 0x16<<7 | 0x4E, - 20215 - 19968: jis0208<<14 | 0x2F<<7 | 0x22, - 20219 - 19968: jis0208<<14 | 0x26<<7 | 0x03, - 20220 - 19968: jis0208<<14 | 0x58<<7 | 0x0E, - 20221 - 19968: jis0212<<14 | 0x0F<<7 | 0x2E, - 20222 - 19968: jis0212<<14 | 0x0F<<7 | 0x2F, - 20223 - 19968: jis0212<<14 | 0x0F<<7 | 0x30, - 20224 - 19968: jis0208<<14 | 0x58<<7 | 0x0F, - 20225 - 19968: jis0208<<14 | 0x13<<7 | 0x4A, - 20226 - 19968: jis0212<<14 | 0x0F<<7 | 0x32, - 20227 - 19968: jis0208<<14 | 0x58<<7 | 0x10, - 20232 - 19968: jis0212<<14 | 0x0F<<7 | 0x34, - 20233 - 19968: jis0208<<14 | 0x2F<<7 | 0x23, - 20234 - 19968: jis0208<<14 | 0x0F<<7 | 0x2A, - 20235 - 19968: jis0212<<14 | 0x0F<<7 | 0x35, - 20236 - 19968: jis0212<<14 | 0x0F<<7 | 0x36, - 20237 - 19968: jis0208<<14 | 0x17<<7 | 0x3F, - 20238 - 19968: jis0208<<14 | 0x13<<7 | 0x4B, - 20239 - 19968: jis0208<<14 | 0x28<<7 | 0x59, - 20240 - 19968: jis0208<<14 | 0x27<<7 | 0x11, - 20241 - 19968: jis0208<<14 | 0x14<<7 | 0x38, - 20242 - 19968: jis0212<<14 | 0x0F<<7 | 0x37, - 20245 - 19968: jis0212<<14 | 0x0F<<7 | 0x38, - 20246 - 19968: jis0212<<14 | 0x0F<<7 | 0x39, - 20247 - 19968: jis0212<<14 | 0x0F<<7 | 0x3A, - 20249 - 19968: jis0212<<14 | 0x0F<<7 | 0x3B, - 20250 - 19968: jis0208<<14 | 0x11<<7 | 0x50, - 20252 - 19968: jis0208<<14 | 0x2F<<7 | 0x46, - 20253 - 19968: jis0208<<14 | 0x24<<7 | 0x20, - 20270 - 19968: jis0212<<14 | 0x0F<<7 | 0x3C, - 20271 - 19968: jis0208<<14 | 0x26<<7 | 0x4B, - 20272 - 19968: jis0208<<14 | 0x2F<<7 | 0x25, - 20273 - 19968: jis0212<<14 | 0x0F<<7 | 0x3D, - 20275 - 19968: jis0212<<14 | 0x0F<<7 | 0x3F, - 20276 - 19968: jis0208<<14 | 0x27<<7 | 0x1B, - 20277 - 19968: jis0212<<14 | 0x0F<<7 | 0x40, - 20278 - 19968: jis0208<<14 | 0x2D<<7 | 0x41, - 20279 - 19968: jis0212<<14 | 0x0F<<7 | 0x41, - 20280 - 19968: jis0208<<14 | 0x1E<<7 | 0x0C, - 20281 - 19968: jis0208<<14 | 0x58<<7 | 0x11, - 20282 - 19968: jis0208<<14 | 0x1A<<7 | 0x26, - 20283 - 19968: jis0212<<14 | 0x0F<<7 | 0x43, - 20284 - 19968: jis0208<<14 | 0x1A<<7 | 0x56, - 20285 - 19968: jis0208<<14 | 0x11<<7 | 0x1F, - 20286 - 19968: jis0212<<14 | 0x0F<<7 | 0x44, - 20288 - 19968: jis0212<<14 | 0x0F<<7 | 0x45, - 20290 - 19968: jis0212<<14 | 0x0F<<7 | 0x46, - 20291 - 19968: jis0208<<14 | 0x23<<7 | 0x30, - 20294 - 19968: jis0208<<14 | 0x22<<7 | 0x01, - 20295 - 19968: jis0208<<14 | 0x2F<<7 | 0x29, - 20296 - 19968: jis0212<<14 | 0x0F<<7 | 0x47, - 20297 - 19968: jis0212<<14 | 0x0F<<7 | 0x48, - 20299 - 19968: jis0212<<14 | 0x0F<<7 | 0x49, - 20300 - 19968: jis0212<<14 | 0x0F<<7 | 0x4A, - 20301 - 19968: jis0208<<14 | 0x0F<<7 | 0x2B, - 20302 - 19968: jis0208<<14 | 0x23<<7 | 0x42, - 20303 - 19968: jis0208<<14 | 0x1C<<7 | 0x1A, - 20304 - 19968: jis0208<<14 | 0x19<<7 | 0x13, - 20305 - 19968: jis0208<<14 | 0x2C<<7 | 0x03, - 20306 - 19968: jis0212<<14 | 0x0F<<7 | 0x4B, - 20307 - 19968: jis0208<<14 | 0x21<<7 | 0x2D, - 20308 - 19968: jis0212<<14 | 0x0F<<7 | 0x4C, - 20309 - 19968: jis0208<<14 | 0x11<<7 | 0x1E, - 20310 - 19968: jis0208<<14 | 0x58<<7 | 0x12, - 20311 - 19968: jis0208<<14 | 0x2F<<7 | 0x28, - 20312 - 19968: jis0212<<14 | 0x0F<<7 | 0x4E, - 20313 - 19968: jis0208<<14 | 0x2C<<7 | 0x1D, - 20314 - 19968: jis0208<<14 | 0x2F<<7 | 0x24, - 20315 - 19968: jis0208<<14 | 0x2F<<7 | 0x26, - 20316 - 19968: jis0208<<14 | 0x19<<7 | 0x4D, - 20317 - 19968: jis0208<<14 | 0x2F<<7 | 0x27, - 20318 - 19968: jis0208<<14 | 0x34<<7 | 0x03, - 20319 - 19968: jis0212<<14 | 0x0F<<7 | 0x4F, - 20320 - 19968: jis0212<<14 | 0x0F<<7 | 0x3E, - 20323 - 19968: jis0212<<14 | 0x0F<<7 | 0x50, - 20329 - 19968: jis0208<<14 | 0x2F<<7 | 0x2F, - 20330 - 19968: jis0212<<14 | 0x0F<<7 | 0x51, - 20332 - 19968: jis0212<<14 | 0x0F<<7 | 0x52, - 20334 - 19968: jis0212<<14 | 0x0F<<7 | 0x53, - 20335 - 19968: jis0208<<14 | 0x2F<<7 | 0x32, - 20336 - 19968: jis0208<<14 | 0x2F<<7 | 0x30, - 20337 - 19968: jis0212<<14 | 0x0F<<7 | 0x54, - 20339 - 19968: jis0208<<14 | 0x11<<7 | 0x21, - 20341 - 19968: jis0208<<14 | 0x29<<7 | 0x1A, - 20342 - 19968: jis0208<<14 | 0x2F<<7 | 0x2A, - 20343 - 19968: jis0212<<14 | 0x0F<<7 | 0x55, - 20344 - 19968: jis0212<<14 | 0x0F<<7 | 0x56, - 20345 - 19968: jis0212<<14 | 0x0F<<7 | 0x57, - 20346 - 19968: jis0212<<14 | 0x0F<<7 | 0x58, - 20347 - 19968: jis0208<<14 | 0x2F<<7 | 0x2E, - 20348 - 19968: jis0208<<14 | 0x17<<7 | 0x52, - 20349 - 19968: jis0212<<14 | 0x0F<<7 | 0x59, - 20350 - 19968: jis0212<<14 | 0x0F<<7 | 0x5A, - 20351 - 19968: jis0208<<14 | 0x1A<<7 | 0x27, - 20353 - 19968: jis0212<<14 | 0x0F<<7 | 0x5B, - 20354 - 19968: jis0212<<14 | 0x0F<<7 | 0x5C, - 20355 - 19968: jis0208<<14 | 0x13<<7 | 0x05, - 20356 - 19968: jis0212<<14 | 0x0F<<7 | 0x5D, - 20357 - 19968: jis0212<<14 | 0x10<<7 | 0x00, - 20358 - 19968: jis0208<<14 | 0x2F<<7 | 0x33, - 20360 - 19968: jis0208<<14 | 0x2F<<7 | 0x2B, - 20361 - 19968: jis0212<<14 | 0x10<<7 | 0x01, - 20362 - 19968: jis0208<<14 | 0x58<<7 | 0x14, - 20363 - 19968: jis0208<<14 | 0x2D<<7 | 0x42, - 20364 - 19968: jis0212<<14 | 0x10<<7 | 0x03, - 20365 - 19968: jis0208<<14 | 0x1A<<7 | 0x57, - 20366 - 19968: jis0212<<14 | 0x10<<7 | 0x04, - 20367 - 19968: jis0208<<14 | 0x2F<<7 | 0x2C, - 20368 - 19968: jis0212<<14 | 0x10<<7 | 0x05, - 20369 - 19968: jis0208<<14 | 0x2F<<7 | 0x31, - 20370 - 19968: jis0208<<14 | 0x58<<7 | 0x13, - 20371 - 19968: jis0212<<14 | 0x10<<7 | 0x07, - 20372 - 19968: jis0208<<14 | 0x58<<7 | 0x16, - 20374 - 19968: jis0208<<14 | 0x2F<<7 | 0x34, - 20375 - 19968: jis0212<<14 | 0x10<<7 | 0x09, - 20376 - 19968: jis0208<<14 | 0x2F<<7 | 0x2D, - 20377 - 19968: jis0212<<14 | 0x10<<7 | 0x0A, - 20378 - 19968: jis0208<<14 | 0x58<<7 | 0x15, - 20379 - 19968: jis0208<<14 | 0x15<<7 | 0x00, - 20381 - 19968: jis0208<<14 | 0x0F<<7 | 0x2C, - 20382 - 19968: jis0212<<14 | 0x10<<7 | 0x0C, - 20383 - 19968: jis0212<<14 | 0x10<<7 | 0x0D, - 20384 - 19968: jis0208<<14 | 0x15<<7 | 0x01, - 20385 - 19968: jis0208<<14 | 0x11<<7 | 0x20, - 20395 - 19968: jis0208<<14 | 0x34<<7 | 0x04, - 20397 - 19968: jis0208<<14 | 0x2A<<7 | 0x58, - 20398 - 19968: jis0208<<14 | 0x28<<7 | 0x4D, - 20399 - 19968: jis0208<<14 | 0x17<<7 | 0x53, - 20402 - 19968: jis0212<<14 | 0x10<<7 | 0x0E, - 20405 - 19968: jis0208<<14 | 0x1E<<7 | 0x0E, - 20406 - 19968: jis0208<<14 | 0x2D<<7 | 0x16, - 20407 - 19968: jis0212<<14 | 0x10<<7 | 0x0F, - 20409 - 19968: jis0212<<14 | 0x10<<7 | 0x10, - 20411 - 19968: jis0212<<14 | 0x10<<7 | 0x11, - 20412 - 19968: jis0212<<14 | 0x10<<7 | 0x12, - 20413 - 19968: jis0212<<14 | 0x10<<7 | 0x13, - 20414 - 19968: jis0212<<14 | 0x10<<7 | 0x14, - 20415 - 19968: jis0208<<14 | 0x29<<7 | 0x37, - 20416 - 19968: jis0212<<14 | 0x10<<7 | 0x15, - 20417 - 19968: jis0212<<14 | 0x10<<7 | 0x16, - 20418 - 19968: jis0208<<14 | 0x16<<7 | 0x17, - 20419 - 19968: jis0208<<14 | 0x21<<7 | 0x04, - 20420 - 19968: jis0208<<14 | 0x11<<7 | 0x43, - 20421 - 19968: jis0212<<14 | 0x10<<7 | 0x17, - 20422 - 19968: jis0212<<14 | 0x10<<7 | 0x18, - 20424 - 19968: jis0212<<14 | 0x10<<7 | 0x19, - 20425 - 19968: jis0208<<14 | 0x58<<7 | 0x05, - 20426 - 19968: jis0208<<14 | 0x1C<<7 | 0x32, - 20427 - 19968: jis0212<<14 | 0x10<<7 | 0x1B, - 20428 - 19968: jis0212<<14 | 0x10<<7 | 0x1C, - 20429 - 19968: jis0208<<14 | 0x58<<7 | 0x17, - 20430 - 19968: jis0208<<14 | 0x2F<<7 | 0x38, - 20431 - 19968: jis0212<<14 | 0x10<<7 | 0x1E, - 20432 - 19968: jis0208<<14 | 0x2F<<7 | 0x3D, - 20433 - 19968: jis0208<<14 | 0x2F<<7 | 0x3B, - 20434 - 19968: jis0212<<14 | 0x10<<7 | 0x1F, - 20436 - 19968: jis0208<<14 | 0x2F<<7 | 0x36, - 20439 - 19968: jis0208<<14 | 0x21<<7 | 0x0E, - 20440 - 19968: jis0208<<14 | 0x2F<<7 | 0x39, - 20442 - 19968: jis0208<<14 | 0x2F<<7 | 0x3C, - 20443 - 19968: jis0208<<14 | 0x2F<<7 | 0x3A, - 20444 - 19968: jis0212<<14 | 0x10<<7 | 0x20, - 20445 - 19968: jis0208<<14 | 0x29<<7 | 0x3C, - 20447 - 19968: jis0208<<14 | 0x2F<<7 | 0x37, - 20448 - 19968: jis0212<<14 | 0x10<<7 | 0x21, - 20449 - 19968: jis0208<<14 | 0x1E<<7 | 0x0D, - 20450 - 19968: jis0212<<14 | 0x10<<7 | 0x22, - 20451 - 19968: jis0208<<14 | 0x2A<<7 | 0x52, - 20452 - 19968: jis0208<<14 | 0x2F<<7 | 0x3E, - 20453 - 19968: jis0208<<14 | 0x2F<<7 | 0x3F, - 20462 - 19968: jis0208<<14 | 0x1C<<7 | 0x03, - 20463 - 19968: jis0208<<14 | 0x2F<<7 | 0x4C, - 20464 - 19968: jis0212<<14 | 0x10<<7 | 0x23, - 20466 - 19968: jis0212<<14 | 0x10<<7 | 0x24, - 20467 - 19968: jis0208<<14 | 0x26<<7 | 0x2F, - 20469 - 19968: jis0208<<14 | 0x28<<7 | 0x15, - 20470 - 19968: jis0208<<14 | 0x2F<<7 | 0x47, - 20472 - 19968: jis0208<<14 | 0x29<<7 | 0x4F, - 20474 - 19968: jis0208<<14 | 0x11<<7 | 0x15, - 20476 - 19968: jis0212<<14 | 0x10<<7 | 0x25, - 20477 - 19968: jis0212<<14 | 0x10<<7 | 0x26, - 20478 - 19968: jis0208<<14 | 0x2F<<7 | 0x4B, - 20479 - 19968: jis0208<<14 | 0x58<<7 | 0x1A, - 20480 - 19968: jis0212<<14 | 0x10<<7 | 0x28, - 20481 - 19968: jis0212<<14 | 0x10<<7 | 0x29, - 20484 - 19968: jis0212<<14 | 0x10<<7 | 0x2A, - 20485 - 19968: jis0208<<14 | 0x2F<<7 | 0x45, - 20486 - 19968: jis0208<<14 | 0x2F<<7 | 0x4E, - 20487 - 19968: jis0212<<14 | 0x10<<7 | 0x2B, - 20489 - 19968: jis0208<<14 | 0x20<<7 | 0x31, - 20490 - 19968: jis0212<<14 | 0x10<<7 | 0x2C, - 20491 - 19968: jis0208<<14 | 0x17<<7 | 0x23, - 20492 - 19968: jis0212<<14 | 0x10<<7 | 0x2D, - 20493 - 19968: jis0208<<14 | 0x26<<7 | 0x3B, - 20494 - 19968: jis0212<<14 | 0x10<<7 | 0x2E, - 20495 - 19968: jis0208<<14 | 0x3F<<7 | 0x26, - 20496 - 19968: jis0212<<14 | 0x10<<7 | 0x2F, - 20497 - 19968: jis0208<<14 | 0x2F<<7 | 0x4D, - 20498 - 19968: jis0208<<14 | 0x24<<7 | 0x3C, - 20499 - 19968: jis0212<<14 | 0x10<<7 | 0x30, - 20500 - 19968: jis0208<<14 | 0x2F<<7 | 0x42, - 20502 - 19968: jis0208<<14 | 0x17<<7 | 0x55, - 20503 - 19968: jis0212<<14 | 0x10<<7 | 0x31, - 20504 - 19968: jis0212<<14 | 0x10<<7 | 0x32, - 20505 - 19968: jis0208<<14 | 0x17<<7 | 0x54, - 20506 - 19968: jis0208<<14 | 0x2F<<7 | 0x40, - 20507 - 19968: jis0212<<14 | 0x10<<7 | 0x33, - 20508 - 19968: jis0212<<14 | 0x10<<7 | 0x34, - 20509 - 19968: jis0212<<14 | 0x10<<7 | 0x35, - 20510 - 19968: jis0208<<14 | 0x58<<7 | 0x1B, - 20511 - 19968: jis0208<<14 | 0x1B<<7 | 0x39, - 20513 - 19968: jis0208<<14 | 0x2F<<7 | 0x48, - 20514 - 19968: jis0208<<14 | 0x58<<7 | 0x19, - 20515 - 19968: jis0208<<14 | 0x29<<7 | 0x4E, - 20516 - 19968: jis0208<<14 | 0x22<<7 | 0x2C, - 20517 - 19968: jis0208<<14 | 0x2F<<7 | 0x44, - 20518 - 19968: jis0208<<14 | 0x16<<7 | 0x50, - 20519 - 19968: jis0212<<14 | 0x10<<7 | 0x38, - 20520 - 19968: jis0208<<14 | 0x2F<<7 | 0x41, - 20521 - 19968: jis0208<<14 | 0x2F<<7 | 0x49, - 20522 - 19968: jis0208<<14 | 0x2F<<7 | 0x43, - 20523 - 19968: jis0208<<14 | 0x2D<<7 | 0x30, - 20524 - 19968: jis0208<<14 | 0x2F<<7 | 0x4A, - 20525 - 19968: jis0208<<14 | 0x2E<<7 | 0x20, - 20526 - 19968: jis0212<<14 | 0x10<<7 | 0x39, - 20528 - 19968: jis0212<<14 | 0x10<<7 | 0x3A, - 20530 - 19968: jis0212<<14 | 0x10<<7 | 0x3B, - 20531 - 19968: jis0212<<14 | 0x10<<7 | 0x3C, - 20533 - 19968: jis0212<<14 | 0x10<<7 | 0x3D, - 20534 - 19968: jis0208<<14 | 0x15<<7 | 0x45, - 20537 - 19968: jis0208<<14 | 0x16<<7 | 0x4F, - 20539 - 19968: jis0212<<14 | 0x10<<7 | 0x55, - 20544 - 19968: jis0208<<14 | 0x58<<7 | 0x18, - 20545 - 19968: jis0212<<14 | 0x10<<7 | 0x3F, - 20546 - 19968: jis0208<<14 | 0x58<<7 | 0x1E, - 20547 - 19968: jis0208<<14 | 0x2F<<7 | 0x4F, - 20549 - 19968: jis0212<<14 | 0x10<<7 | 0x41, - 20550 - 19968: jis0208<<14 | 0x58<<7 | 0x1C, - 20551 - 19968: jis0208<<14 | 0x2F<<7 | 0x50, - 20552 - 19968: jis0208<<14 | 0x2F<<7 | 0x54, - 20553 - 19968: jis0208<<14 | 0x0F<<7 | 0x2D, - 20554 - 19968: jis0212<<14 | 0x10<<7 | 0x43, - 20556 - 19968: jis0212<<14 | 0x10<<7 | 0x44, - 20558 - 19968: jis0212<<14 | 0x10<<7 | 0x45, - 20559 - 19968: jis0208<<14 | 0x29<<7 | 0x2F, - 20560 - 19968: jis0208<<14 | 0x2F<<7 | 0x53, - 20561 - 19968: jis0212<<14 | 0x10<<7 | 0x46, - 20562 - 19968: jis0212<<14 | 0x10<<7 | 0x47, - 20563 - 19968: jis0212<<14 | 0x10<<7 | 0x48, - 20565 - 19968: jis0208<<14 | 0x2F<<7 | 0x52, - 20566 - 19968: jis0208<<14 | 0x2F<<7 | 0x56, - 20567 - 19968: jis0212<<14 | 0x10<<7 | 0x49, - 20569 - 19968: jis0212<<14 | 0x10<<7 | 0x4A, - 20570 - 19968: jis0208<<14 | 0x2F<<7 | 0x55, - 20572 - 19968: jis0208<<14 | 0x23<<7 | 0x43, - 20575 - 19968: jis0212<<14 | 0x10<<7 | 0x4B, - 20576 - 19968: jis0212<<14 | 0x10<<7 | 0x4C, - 20578 - 19968: jis0212<<14 | 0x10<<7 | 0x4D, - 20579 - 19968: jis0212<<14 | 0x10<<7 | 0x4E, - 20581 - 19968: jis0208<<14 | 0x16<<7 | 0x51, - 20582 - 19968: jis0212<<14 | 0x10<<7 | 0x4F, - 20583 - 19968: jis0212<<14 | 0x10<<7 | 0x50, - 20586 - 19968: jis0212<<14 | 0x10<<7 | 0x51, - 20588 - 19968: jis0208<<14 | 0x2F<<7 | 0x57, - 20589 - 19968: jis0212<<14 | 0x10<<7 | 0x52, - 20592 - 19968: jis0208<<14 | 0x58<<7 | 0x1D, - 20593 - 19968: jis0212<<14 | 0x10<<7 | 0x54, - 20594 - 19968: jis0208<<14 | 0x1B<<7 | 0x24, - 20596 - 19968: jis0208<<14 | 0x21<<7 | 0x05, - 20597 - 19968: jis0208<<14 | 0x23<<7 | 0x44, - 20598 - 19968: jis0208<<14 | 0x15<<7 | 0x55, - 20600 - 19968: jis0208<<14 | 0x2F<<7 | 0x58, - 20605 - 19968: jis0208<<14 | 0x14<<7 | 0x15, - 20608 - 19968: jis0208<<14 | 0x2F<<7 | 0x59, - 20609 - 19968: jis0212<<14 | 0x10<<7 | 0x56, - 20611 - 19968: jis0212<<14 | 0x10<<7 | 0x57, - 20612 - 19968: jis0212<<14 | 0x10<<7 | 0x58, - 20613 - 19968: jis0208<<14 | 0x2F<<7 | 0x5B, - 20614 - 19968: jis0212<<14 | 0x10<<7 | 0x59, - 20618 - 19968: jis0212<<14 | 0x10<<7 | 0x5A, - 20621 - 19968: jis0208<<14 | 0x2A<<7 | 0x14, - 20622 - 19968: jis0212<<14 | 0x10<<7 | 0x5B, - 20623 - 19968: jis0212<<14 | 0x10<<7 | 0x5C, - 20624 - 19968: jis0212<<14 | 0x10<<7 | 0x5D, - 20625 - 19968: jis0208<<14 | 0x16<<7 | 0x45, - 20626 - 19968: jis0212<<14 | 0x11<<7 | 0x00, - 20627 - 19968: jis0212<<14 | 0x11<<7 | 0x01, - 20628 - 19968: jis0208<<14 | 0x58<<7 | 0x1F, - 20630 - 19968: jis0212<<14 | 0x11<<7 | 0x03, - 20632 - 19968: jis0208<<14 | 0x1A<<7 | 0x10, - 20633 - 19968: jis0208<<14 | 0x27<<7 | 0x56, - 20634 - 19968: jis0208<<14 | 0x2F<<7 | 0x5A, - 20635 - 19968: jis0212<<14 | 0x11<<7 | 0x04, - 20636 - 19968: jis0212<<14 | 0x11<<7 | 0x05, - 20638 - 19968: jis0212<<14 | 0x11<<7 | 0x06, - 20639 - 19968: jis0212<<14 | 0x11<<7 | 0x07, - 20640 - 19968: jis0212<<14 | 0x11<<7 | 0x08, - 20641 - 19968: jis0212<<14 | 0x11<<7 | 0x09, - 20642 - 19968: jis0212<<14 | 0x11<<7 | 0x0A, - 20650 - 19968: jis0212<<14 | 0x11<<7 | 0x0B, - 20652 - 19968: jis0208<<14 | 0x19<<7 | 0x24, - 20653 - 19968: jis0208<<14 | 0x2C<<7 | 0x22, - 20655 - 19968: jis0212<<14 | 0x11<<7 | 0x0C, - 20656 - 19968: jis0212<<14 | 0x11<<7 | 0x0D, - 20658 - 19968: jis0208<<14 | 0x2F<<7 | 0x5D, - 20659 - 19968: jis0208<<14 | 0x30<<7 | 0x02, - 20660 - 19968: jis0208<<14 | 0x2F<<7 | 0x5C, - 20661 - 19968: jis0208<<14 | 0x19<<7 | 0x23, - 20663 - 19968: jis0208<<14 | 0x1C<<7 | 0x5C, - 20665 - 19968: jis0212<<14 | 0x11<<7 | 0x0E, - 20666 - 19968: jis0212<<14 | 0x11<<7 | 0x0F, - 20669 - 19968: jis0212<<14 | 0x11<<7 | 0x10, - 20670 - 19968: jis0208<<14 | 0x16<<7 | 0x18, - 20672 - 19968: jis0212<<14 | 0x11<<7 | 0x11, - 20674 - 19968: jis0208<<14 | 0x30<<7 | 0x03, - 20675 - 19968: jis0212<<14 | 0x11<<7 | 0x12, - 20676 - 19968: jis0212<<14 | 0x11<<7 | 0x13, - 20677 - 19968: jis0208<<14 | 0x15<<7 | 0x2E, - 20679 - 19968: jis0212<<14 | 0x11<<7 | 0x14, - 20681 - 19968: jis0208<<14 | 0x30<<7 | 0x00, - 20682 - 19968: jis0208<<14 | 0x30<<7 | 0x01, - 20684 - 19968: jis0212<<14 | 0x11<<7 | 0x15, - 20685 - 19968: jis0208<<14 | 0x25<<7 | 0x0E, - 20686 - 19968: jis0212<<14 | 0x11<<7 | 0x16, - 20687 - 19968: jis0208<<14 | 0x20<<7 | 0x5B, - 20688 - 19968: jis0212<<14 | 0x11<<7 | 0x17, - 20689 - 19968: jis0208<<14 | 0x15<<7 | 0x02, - 20691 - 19968: jis0212<<14 | 0x11<<7 | 0x18, - 20692 - 19968: jis0212<<14 | 0x11<<7 | 0x19, - 20693 - 19968: jis0208<<14 | 0x2A<<7 | 0x2C, - 20694 - 19968: jis0208<<14 | 0x30<<7 | 0x04, - 20696 - 19968: jis0208<<14 | 0x58<<7 | 0x21, - 20698 - 19968: jis0208<<14 | 0x2D<<7 | 0x1C, - 20700 - 19968: jis0212<<14 | 0x11<<7 | 0x1B, - 20701 - 19968: jis0212<<14 | 0x11<<7 | 0x1C, - 20702 - 19968: jis0208<<14 | 0x30<<7 | 0x05, - 20703 - 19968: jis0212<<14 | 0x11<<7 | 0x1D, - 20706 - 19968: jis0212<<14 | 0x11<<7 | 0x1E, - 20707 - 19968: jis0208<<14 | 0x30<<7 | 0x08, - 20708 - 19968: jis0212<<14 | 0x11<<7 | 0x1F, - 20709 - 19968: jis0208<<14 | 0x30<<7 | 0x06, - 20710 - 19968: jis0212<<14 | 0x11<<7 | 0x20, - 20711 - 19968: jis0208<<14 | 0x20<<7 | 0x2D, - 20712 - 19968: jis0212<<14 | 0x11<<7 | 0x21, - 20713 - 19968: jis0212<<14 | 0x11<<7 | 0x22, - 20717 - 19968: jis0208<<14 | 0x30<<7 | 0x07, - 20718 - 19968: jis0208<<14 | 0x30<<7 | 0x09, - 20719 - 19968: jis0212<<14 | 0x11<<7 | 0x23, - 20721 - 19968: jis0212<<14 | 0x11<<7 | 0x24, - 20722 - 19968: jis0212<<14 | 0x11<<7 | 0x30, - 20724 - 19968: jis0208<<14 | 0x58<<7 | 0x20, - 20725 - 19968: jis0208<<14 | 0x30<<7 | 0x0B, - 20726 - 19968: jis0212<<14 | 0x11<<7 | 0x25, - 20729 - 19968: jis0208<<14 | 0x30<<7 | 0x0A, - 20730 - 19968: jis0212<<14 | 0x11<<7 | 0x26, - 20731 - 19968: jis0208<<14 | 0x29<<7 | 0x27, - 20734 - 19968: jis0212<<14 | 0x11<<7 | 0x27, - 20736 - 19968: jis0208<<14 | 0x14<<7 | 0x16, - 20737 - 19968: jis0208<<14 | 0x30<<7 | 0x0D, - 20738 - 19968: jis0208<<14 | 0x30<<7 | 0x0E, - 20739 - 19968: jis0212<<14 | 0x11<<7 | 0x28, - 20740 - 19968: jis0208<<14 | 0x11<<7 | 0x0E, - 20742 - 19968: jis0212<<14 | 0x11<<7 | 0x29, - 20743 - 19968: jis0212<<14 | 0x11<<7 | 0x2A, - 20744 - 19968: jis0212<<14 | 0x11<<7 | 0x2B, - 20745 - 19968: jis0208<<14 | 0x30<<7 | 0x0C, - 20747 - 19968: jis0212<<14 | 0x11<<7 | 0x2C, - 20748 - 19968: jis0212<<14 | 0x11<<7 | 0x2D, - 20749 - 19968: jis0212<<14 | 0x11<<7 | 0x2E, - 20750 - 19968: jis0212<<14 | 0x11<<7 | 0x2F, - 20752 - 19968: jis0212<<14 | 0x11<<7 | 0x31, - 20754 - 19968: jis0208<<14 | 0x1B<<7 | 0x53, - 20756 - 19968: jis0208<<14 | 0x30<<7 | 0x11, - 20757 - 19968: jis0208<<14 | 0x30<<7 | 0x10, - 20758 - 19968: jis0208<<14 | 0x30<<7 | 0x0F, - 20759 - 19968: jis0212<<14 | 0x11<<7 | 0x32, - 20760 - 19968: jis0208<<14 | 0x2F<<7 | 0x35, - 20761 - 19968: jis0212<<14 | 0x11<<7 | 0x33, - 20762 - 19968: jis0208<<14 | 0x30<<7 | 0x12, - 20763 - 19968: jis0212<<14 | 0x11<<7 | 0x34, - 20764 - 19968: jis0212<<14 | 0x11<<7 | 0x35, - 20765 - 19968: jis0212<<14 | 0x11<<7 | 0x36, - 20766 - 19968: jis0212<<14 | 0x11<<7 | 0x37, - 20767 - 19968: jis0208<<14 | 0x1C<<7 | 0x5D, - 20769 - 19968: jis0208<<14 | 0x30<<7 | 0x13, - 20771 - 19968: jis0212<<14 | 0x11<<7 | 0x38, - 20775 - 19968: jis0212<<14 | 0x11<<7 | 0x39, - 20776 - 19968: jis0212<<14 | 0x11<<7 | 0x3A, - 20778 - 19968: jis0208<<14 | 0x2C<<7 | 0x04, - 20780 - 19968: jis0212<<14 | 0x11<<7 | 0x3B, - 20781 - 19968: jis0212<<14 | 0x11<<7 | 0x3C, - 20783 - 19968: jis0212<<14 | 0x11<<7 | 0x3D, - 20785 - 19968: jis0212<<14 | 0x11<<7 | 0x3E, - 20786 - 19968: jis0208<<14 | 0x2B<<7 | 0x38, - 20787 - 19968: jis0212<<14 | 0x11<<7 | 0x3F, - 20788 - 19968: jis0212<<14 | 0x11<<7 | 0x40, - 20789 - 19968: jis0212<<14 | 0x11<<7 | 0x41, - 20791 - 19968: jis0208<<14 | 0x30<<7 | 0x15, - 20792 - 19968: jis0212<<14 | 0x11<<7 | 0x42, - 20793 - 19968: jis0212<<14 | 0x11<<7 | 0x43, - 20794 - 19968: jis0208<<14 | 0x30<<7 | 0x14, - 20795 - 19968: jis0208<<14 | 0x30<<7 | 0x17, - 20796 - 19968: jis0208<<14 | 0x30<<7 | 0x16, - 20799 - 19968: jis0208<<14 | 0x30<<7 | 0x18, - 20800 - 19968: jis0208<<14 | 0x30<<7 | 0x19, - 20801 - 19968: jis0208<<14 | 0x0F<<7 | 0x53, - 20802 - 19968: jis0212<<14 | 0x11<<7 | 0x44, - 20803 - 19968: jis0208<<14 | 0x17<<7 | 0x14, - 20804 - 19968: jis0208<<14 | 0x16<<7 | 0x1A, - 20805 - 19968: jis0208<<14 | 0x1C<<7 | 0x1B, - 20806 - 19968: jis0208<<14 | 0x22<<7 | 0x5A, - 20807 - 19968: jis0208<<14 | 0x15<<7 | 0x03, - 20808 - 19968: jis0208<<14 | 0x1F<<7 | 0x47, - 20809 - 19968: jis0208<<14 | 0x17<<7 | 0x56, - 20810 - 19968: jis0208<<14 | 0x58<<7 | 0x22, - 20811 - 19968: jis0208<<14 | 0x18<<7 | 0x4D, - 20812 - 19968: jis0208<<14 | 0x30<<7 | 0x1B, - 20813 - 19968: jis0208<<14 | 0x2B<<7 | 0x27, - 20814 - 19968: jis0208<<14 | 0x24<<7 | 0x25, - 20815 - 19968: jis0212<<14 | 0x11<<7 | 0x46, - 20816 - 19968: jis0208<<14 | 0x1A<<7 | 0x58, - 20818 - 19968: jis0208<<14 | 0x30<<7 | 0x1A, - 20819 - 19968: jis0212<<14 | 0x11<<7 | 0x47, - 20820 - 19968: jis0208<<14 | 0x30<<7 | 0x1C, - 20821 - 19968: jis0212<<14 | 0x11<<7 | 0x48, - 20823 - 19968: jis0212<<14 | 0x11<<7 | 0x49, - 20824 - 19968: jis0212<<14 | 0x11<<7 | 0x4A, - 20826 - 19968: jis0208<<14 | 0x24<<7 | 0x3D, - 20828 - 19968: jis0208<<14 | 0x12<<7 | 0x54, - 20831 - 19968: jis0212<<14 | 0x11<<7 | 0x4B, - 20834 - 19968: jis0208<<14 | 0x30<<7 | 0x1D, - 20836 - 19968: jis0208<<14 | 0x58<<7 | 0x23, - 20837 - 19968: jis0208<<14 | 0x25<<7 | 0x5D, - 20838 - 19968: jis0212<<14 | 0x11<<7 | 0x4D, - 20840 - 19968: jis0208<<14 | 0x20<<7 | 0x13, - 20841 - 19968: jis0208<<14 | 0x30<<7 | 0x1F, - 20842 - 19968: jis0208<<14 | 0x30<<7 | 0x20, - 20843 - 19968: jis0208<<14 | 0x27<<7 | 0x0B, - 20844 - 19968: jis0208<<14 | 0x17<<7 | 0x57, - 20845 - 19968: jis0208<<14 | 0x2E<<7 | 0x1A, - 20846 - 19968: jis0208<<14 | 0x30<<7 | 0x21, - 20849 - 19968: jis0208<<14 | 0x15<<7 | 0x05, - 20853 - 19968: jis0208<<14 | 0x29<<7 | 0x1B, - 20854 - 19968: jis0208<<14 | 0x21<<7 | 0x15, - 20855 - 19968: jis0208<<14 | 0x15<<7 | 0x50, - 20856 - 19968: jis0208<<14 | 0x24<<7 | 0x14, - 20860 - 19968: jis0208<<14 | 0x16<<7 | 0x52, - 20862 - 19968: jis0212<<14 | 0x11<<7 | 0x4E, - 20864 - 19968: jis0208<<14 | 0x30<<7 | 0x22, - 20866 - 19968: jis0208<<14 | 0x30<<7 | 0x23, - 20867 - 19968: jis0212<<14 | 0x11<<7 | 0x4F, - 20868 - 19968: jis0212<<14 | 0x11<<7 | 0x50, - 20869 - 19968: jis0208<<14 | 0x25<<7 | 0x41, - 20870 - 19968: jis0208<<14 | 0x10<<7 | 0x3E, - 20873 - 19968: jis0208<<14 | 0x30<<7 | 0x26, - 20874 - 19968: jis0208<<14 | 0x19<<7 | 0x5C, - 20875 - 19968: jis0212<<14 | 0x11<<7 | 0x51, - 20876 - 19968: jis0208<<14 | 0x30<<7 | 0x25, - 20877 - 19968: jis0208<<14 | 0x19<<7 | 0x25, - 20878 - 19968: jis0212<<14 | 0x11<<7 | 0x52, - 20879 - 19968: jis0208<<14 | 0x30<<7 | 0x27, - 20880 - 19968: jis0208<<14 | 0x45<<7 | 0x4D, - 20881 - 19968: jis0208<<14 | 0x30<<7 | 0x28, - 20882 - 19968: jis0208<<14 | 0x2A<<7 | 0x20, - 20883 - 19968: jis0208<<14 | 0x30<<7 | 0x29, - 20885 - 19968: jis0208<<14 | 0x30<<7 | 0x2A, - 20886 - 19968: jis0208<<14 | 0x30<<7 | 0x2B, - 20887 - 19968: jis0208<<14 | 0x1D<<7 | 0x48, - 20888 - 19968: jis0212<<14 | 0x11<<7 | 0x53, - 20889 - 19968: jis0208<<14 | 0x1B<<7 | 0x2B, - 20893 - 19968: jis0208<<14 | 0x58<<7 | 0x24, - 20896 - 19968: jis0208<<14 | 0x13<<7 | 0x06, - 20897 - 19968: jis0212<<14 | 0x11<<7 | 0x55, - 20898 - 19968: jis0208<<14 | 0x30<<7 | 0x2E, - 20899 - 19968: jis0212<<14 | 0x11<<7 | 0x56, - 20900 - 19968: jis0208<<14 | 0x30<<7 | 0x2C, - 20901 - 19968: jis0208<<14 | 0x2B<<7 | 0x1C, - 20902 - 19968: jis0208<<14 | 0x30<<7 | 0x2D, - 20904 - 19968: jis0208<<14 | 0x28<<7 | 0x39, - 20905 - 19968: jis0208<<14 | 0x30<<7 | 0x2F, - 20906 - 19968: jis0208<<14 | 0x30<<7 | 0x30, - 20907 - 19968: jis0208<<14 | 0x30<<7 | 0x31, - 20908 - 19968: jis0208<<14 | 0x24<<7 | 0x3E, - 20909 - 19968: jis0212<<14 | 0x11<<7 | 0x57, - 20912 - 19968: jis0208<<14 | 0x30<<7 | 0x35, - 20913 - 19968: jis0208<<14 | 0x30<<7 | 0x33, - 20914 - 19968: jis0208<<14 | 0x30<<7 | 0x34, - 20915 - 19968: jis0208<<14 | 0x30<<7 | 0x32, - 20916 - 19968: jis0208<<14 | 0x19<<7 | 0x42, - 20917 - 19968: jis0208<<14 | 0x30<<7 | 0x36, - 20918 - 19968: jis0208<<14 | 0x2B<<7 | 0x49, - 20919 - 19968: jis0208<<14 | 0x2D<<7 | 0x43, - 20920 - 19968: jis0212<<14 | 0x11<<7 | 0x58, - 20922 - 19968: jis0212<<14 | 0x11<<7 | 0x59, - 20924 - 19968: jis0212<<14 | 0x11<<7 | 0x5A, - 20925 - 19968: jis0208<<14 | 0x30<<7 | 0x37, - 20926 - 19968: jis0208<<14 | 0x58<<7 | 0x25, - 20927 - 19968: jis0212<<14 | 0x11<<7 | 0x5C, - 20930 - 19968: jis0212<<14 | 0x11<<7 | 0x5D, - 20932 - 19968: jis0208<<14 | 0x1F<<7 | 0x07, - 20933 - 19968: jis0208<<14 | 0x30<<7 | 0x38, - 20934 - 19968: jis0208<<14 | 0x1C<<7 | 0x39, - 20936 - 19968: jis0212<<14 | 0x12<<7 | 0x00, - 20937 - 19968: jis0208<<14 | 0x30<<7 | 0x39, - 20939 - 19968: jis0208<<14 | 0x22<<7 | 0x5B, - 20940 - 19968: jis0208<<14 | 0x2D<<7 | 0x1E, - 20941 - 19968: jis0208<<14 | 0x24<<7 | 0x3F, - 20943 - 19968: jis0212<<14 | 0x12<<7 | 0x01, - 20945 - 19968: jis0212<<14 | 0x12<<7 | 0x02, - 20946 - 19968: jis0212<<14 | 0x12<<7 | 0x03, - 20947 - 19968: jis0212<<14 | 0x12<<7 | 0x04, - 20949 - 19968: jis0212<<14 | 0x12<<7 | 0x05, - 20950 - 19968: jis0208<<14 | 0x31<<7 | 0x24, - 20952 - 19968: jis0212<<14 | 0x12<<7 | 0x06, - 20955 - 19968: jis0208<<14 | 0x30<<7 | 0x3A, - 20956 - 19968: jis0208<<14 | 0x53<<7 | 0x04, - 20957 - 19968: jis0208<<14 | 0x15<<7 | 0x24, - 20958 - 19968: jis0212<<14 | 0x12<<7 | 0x07, - 20960 - 19968: jis0208<<14 | 0x30<<7 | 0x3B, - 20961 - 19968: jis0208<<14 | 0x2A<<7 | 0x3D, - 20962 - 19968: jis0212<<14 | 0x12<<7 | 0x08, - 20965 - 19968: jis0212<<14 | 0x12<<7 | 0x09, - 20966 - 19968: jis0208<<14 | 0x1C<<7 | 0x47, - 20967 - 19968: jis0208<<14 | 0x21<<7 | 0x5B, - 20969 - 19968: jis0208<<14 | 0x30<<7 | 0x3D, - 20970 - 19968: jis0208<<14 | 0x25<<7 | 0x43, - 20972 - 19968: jis0208<<14 | 0x58<<7 | 0x26, - 20973 - 19968: jis0208<<14 | 0x30<<7 | 0x3E, - 20974 - 19968: jis0212<<14 | 0x12<<7 | 0x0A, - 20976 - 19968: jis0208<<14 | 0x30<<7 | 0x3F, - 20977 - 19968: jis0208<<14 | 0x12<<7 | 0x0D, - 20978 - 19968: jis0212<<14 | 0x12<<7 | 0x0B, - 20979 - 19968: jis0212<<14 | 0x12<<7 | 0x0C, - 20980 - 19968: jis0212<<14 | 0x12<<7 | 0x0D, - 20981 - 19968: jis0208<<14 | 0x30<<7 | 0x40, - 20982 - 19968: jis0208<<14 | 0x15<<7 | 0x06, - 20983 - 19968: jis0212<<14 | 0x12<<7 | 0x0E, - 20984 - 19968: jis0208<<14 | 0x25<<7 | 0x2B, - 20985 - 19968: jis0208<<14 | 0x10<<7 | 0x59, - 20986 - 19968: jis0208<<14 | 0x1C<<7 | 0x2F, - 20989 - 19968: jis0208<<14 | 0x27<<7 | 0x00, - 20990 - 19968: jis0208<<14 | 0x30<<7 | 0x41, - 20992 - 19968: jis0208<<14 | 0x24<<7 | 0x40, - 20993 - 19968: jis0212<<14 | 0x12<<7 | 0x0F, - 20994 - 19968: jis0212<<14 | 0x12<<7 | 0x10, - 20995 - 19968: jis0208<<14 | 0x1E<<7 | 0x2E, - 20996 - 19968: jis0208<<14 | 0x30<<7 | 0x42, - 20997 - 19968: jis0212<<14 | 0x12<<7 | 0x11, - 20998 - 19968: jis0208<<14 | 0x29<<7 | 0x0B, - 20999 - 19968: jis0208<<14 | 0x1F<<7 | 0x39, - 21000 - 19968: jis0208<<14 | 0x13<<7 | 0x01, - 21002 - 19968: jis0208<<14 | 0x13<<7 | 0x08, - 21003 - 19968: jis0208<<14 | 0x30<<7 | 0x43, - 21006 - 19968: jis0208<<14 | 0x30<<7 | 0x45, - 21009 - 19968: jis0208<<14 | 0x16<<7 | 0x19, - 21010 - 19968: jis0212<<14 | 0x12<<7 | 0x12, - 21011 - 19968: jis0212<<14 | 0x12<<7 | 0x13, - 21012 - 19968: jis0208<<14 | 0x30<<7 | 0x44, - 21013 - 19968: jis0208<<14 | 0x58<<7 | 0x27, - 21014 - 19968: jis0212<<14 | 0x12<<7 | 0x15, - 21015 - 19968: jis0208<<14 | 0x2D<<7 | 0x52, - 21016 - 19968: jis0212<<14 | 0x12<<7 | 0x16, - 21021 - 19968: jis0208<<14 | 0x1C<<7 | 0x48, - 21026 - 19968: jis0212<<14 | 0x12<<7 | 0x17, - 21028 - 19968: jis0208<<14 | 0x27<<7 | 0x1C, - 21029 - 19968: jis0208<<14 | 0x29<<7 | 0x2B, - 21031 - 19968: jis0208<<14 | 0x30<<7 | 0x46, - 21032 - 19968: jis0212<<14 | 0x12<<7 | 0x18, - 21033 - 19968: jis0208<<14 | 0x2C<<7 | 0x57, - 21034 - 19968: jis0208<<14 | 0x30<<7 | 0x47, - 21038 - 19968: jis0208<<14 | 0x30<<7 | 0x48, - 21040 - 19968: jis0208<<14 | 0x24<<7 | 0x5D, - 21041 - 19968: jis0212<<14 | 0x12<<7 | 0x19, - 21042 - 19968: jis0212<<14 | 0x12<<7 | 0x1A, - 21043 - 19968: jis0208<<14 | 0x30<<7 | 0x49, - 21045 - 19968: jis0212<<14 | 0x12<<7 | 0x1B, - 21046 - 19968: jis0208<<14 | 0x1F<<7 | 0x08, - 21047 - 19968: jis0208<<14 | 0x19<<7 | 0x5D, - 21048 - 19968: jis0208<<14 | 0x16<<7 | 0x53, - 21049 - 19968: jis0208<<14 | 0x30<<7 | 0x4A, - 21050 - 19968: jis0208<<14 | 0x1A<<7 | 0x28, - 21051 - 19968: jis0208<<14 | 0x18<<7 | 0x4E, - 21052 - 19968: jis0212<<14 | 0x12<<7 | 0x1C, - 21059 - 19968: jis0208<<14 | 0x23<<7 | 0x45, - 21060 - 19968: jis0208<<14 | 0x30<<7 | 0x4C, - 21061 - 19968: jis0212<<14 | 0x12<<7 | 0x1D, - 21063 - 19968: jis0208<<14 | 0x21<<7 | 0x06, - 21065 - 19968: jis0212<<14 | 0x12<<7 | 0x1E, - 21066 - 19968: jis0208<<14 | 0x19<<7 | 0x4E, - 21067 - 19968: jis0208<<14 | 0x30<<7 | 0x4D, - 21068 - 19968: jis0208<<14 | 0x30<<7 | 0x4E, - 21069 - 19968: jis0208<<14 | 0x20<<7 | 0x0F, - 21071 - 19968: jis0208<<14 | 0x30<<7 | 0x4B, - 21076 - 19968: jis0208<<14 | 0x30<<7 | 0x50, - 21077 - 19968: jis0212<<14 | 0x12<<7 | 0x1F, - 21078 - 19968: jis0208<<14 | 0x2A<<7 | 0x15, - 21079 - 19968: jis0212<<14 | 0x12<<7 | 0x20, - 21080 - 19968: jis0212<<14 | 0x12<<7 | 0x21, - 21082 - 19968: jis0212<<14 | 0x12<<7 | 0x22, - 21083 - 19968: jis0208<<14 | 0x18<<7 | 0x43, - 21084 - 19968: jis0212<<14 | 0x12<<7 | 0x23, - 21086 - 19968: jis0208<<14 | 0x30<<7 | 0x4F, - 21087 - 19968: jis0212<<14 | 0x12<<7 | 0x24, - 21088 - 19968: jis0212<<14 | 0x12<<7 | 0x25, - 21089 - 19968: jis0212<<14 | 0x12<<7 | 0x26, - 21091 - 19968: jis0208<<14 | 0x16<<7 | 0x54, - 21092 - 19968: jis0208<<14 | 0x19<<7 | 0x3D, - 21093 - 19968: jis0208<<14 | 0x26<<7 | 0x4C, - 21094 - 19968: jis0212<<14 | 0x12<<7 | 0x27, - 21097 - 19968: jis0208<<14 | 0x30<<7 | 0x53, - 21098 - 19968: jis0208<<14 | 0x30<<7 | 0x51, - 21102 - 19968: jis0212<<14 | 0x12<<7 | 0x28, - 21103 - 19968: jis0208<<14 | 0x28<<7 | 0x5A, - 21104 - 19968: jis0208<<14 | 0x1D<<7 | 0x49, - 21105 - 19968: jis0208<<14 | 0x30<<7 | 0x5A, - 21106 - 19968: jis0208<<14 | 0x12<<7 | 0x43, - 21107 - 19968: jis0208<<14 | 0x30<<7 | 0x54, - 21108 - 19968: jis0208<<14 | 0x30<<7 | 0x52, - 21109 - 19968: jis0208<<14 | 0x20<<7 | 0x2E, - 21111 - 19968: jis0212<<14 | 0x12<<7 | 0x29, - 21112 - 19968: jis0212<<14 | 0x12<<7 | 0x2A, - 21113 - 19968: jis0212<<14 | 0x12<<7 | 0x2B, - 21117 - 19968: jis0208<<14 | 0x30<<7 | 0x56, - 21119 - 19968: jis0208<<14 | 0x30<<7 | 0x55, - 21120 - 19968: jis0212<<14 | 0x12<<7 | 0x2C, - 21122 - 19968: jis0212<<14 | 0x12<<7 | 0x2D, - 21123 - 19968: jis0208<<14 | 0x12<<7 | 0x23, - 21125 - 19968: jis0212<<14 | 0x12<<7 | 0x2E, - 21127 - 19968: jis0208<<14 | 0x16<<7 | 0x3F, - 21128 - 19968: jis0208<<14 | 0x30<<7 | 0x5B, - 21129 - 19968: jis0208<<14 | 0x2D<<7 | 0x0C, - 21130 - 19968: jis0212<<14 | 0x12<<7 | 0x2F, - 21132 - 19968: jis0212<<14 | 0x12<<7 | 0x30, - 21133 - 19968: jis0208<<14 | 0x30<<7 | 0x57, - 21137 - 19968: jis0208<<14 | 0x30<<7 | 0x5C, - 21138 - 19968: jis0208<<14 | 0x30<<7 | 0x59, - 21139 - 19968: jis0212<<14 | 0x12<<7 | 0x31, - 21140 - 19968: jis0208<<14 | 0x30<<7 | 0x58, - 21141 - 19968: jis0212<<14 | 0x12<<7 | 0x32, - 21142 - 19968: jis0212<<14 | 0x12<<7 | 0x33, - 21143 - 19968: jis0212<<14 | 0x12<<7 | 0x34, - 21144 - 19968: jis0212<<14 | 0x12<<7 | 0x35, - 21146 - 19968: jis0212<<14 | 0x12<<7 | 0x36, - 21147 - 19968: jis0208<<14 | 0x2D<<7 | 0x2E, - 21148 - 19968: jis0208<<14 | 0x58<<7 | 0x28, - 21151 - 19968: jis0208<<14 | 0x17<<7 | 0x58, - 21152 - 19968: jis0208<<14 | 0x11<<7 | 0x22, - 21155 - 19968: jis0208<<14 | 0x2D<<7 | 0x53, - 21156 - 19968: jis0212<<14 | 0x12<<7 | 0x38, - 21157 - 19968: jis0212<<14 | 0x12<<7 | 0x39, - 21158 - 19968: jis0208<<14 | 0x58<<7 | 0x29, - 21159 - 19968: jis0212<<14 | 0x12<<7 | 0x3B, - 21161 - 19968: jis0208<<14 | 0x1C<<7 | 0x54, - 21162 - 19968: jis0208<<14 | 0x24<<7 | 0x37, - 21163 - 19968: jis0208<<14 | 0x18<<7 | 0x44, - 21164 - 19968: jis0208<<14 | 0x31<<7 | 0x01, - 21165 - 19968: jis0208<<14 | 0x31<<7 | 0x02, - 21167 - 19968: jis0208<<14 | 0x5A<<7 | 0x1B, - 21168 - 19968: jis0212<<14 | 0x12<<7 | 0x3D, - 21169 - 19968: jis0208<<14 | 0x2D<<7 | 0x44, - 21172 - 19968: jis0208<<14 | 0x2E<<7 | 0x0A, - 21173 - 19968: jis0208<<14 | 0x31<<7 | 0x04, - 21174 - 19968: jis0212<<14 | 0x12<<7 | 0x3E, - 21175 - 19968: jis0212<<14 | 0x12<<7 | 0x3F, - 21176 - 19968: jis0212<<14 | 0x12<<7 | 0x40, - 21177 - 19968: jis0208<<14 | 0x17<<7 | 0x59, - 21178 - 19968: jis0212<<14 | 0x12<<7 | 0x41, - 21179 - 19968: jis0212<<14 | 0x12<<7 | 0x42, - 21180 - 19968: jis0208<<14 | 0x31<<7 | 0x03, - 21181 - 19968: jis0212<<14 | 0x12<<7 | 0x43, - 21182 - 19968: jis0208<<14 | 0x12<<7 | 0x0E, - 21184 - 19968: jis0208<<14 | 0x58<<7 | 0x2A, - 21185 - 19968: jis0208<<14 | 0x31<<7 | 0x05, - 21187 - 19968: jis0208<<14 | 0x2A<<7 | 0x35, - 21188 - 19968: jis0212<<14 | 0x12<<7 | 0x45, - 21189 - 19968: jis0208<<14 | 0x23<<7 | 0x1B, - 21190 - 19968: jis0212<<14 | 0x12<<7 | 0x46, - 21191 - 19968: jis0208<<14 | 0x2C<<7 | 0x05, - 21192 - 19968: jis0212<<14 | 0x12<<7 | 0x47, - 21193 - 19968: jis0208<<14 | 0x29<<7 | 0x38, - 21196 - 19968: jis0212<<14 | 0x12<<7 | 0x48, - 21197 - 19968: jis0208<<14 | 0x31<<7 | 0x06, - 21199 - 19968: jis0212<<14 | 0x12<<7 | 0x49, - 21201 - 19968: jis0212<<14 | 0x12<<7 | 0x4A, - 21202 - 19968: jis0208<<14 | 0x4F<<7 | 0x34, - 21204 - 19968: jis0212<<14 | 0x12<<7 | 0x4B, - 21205 - 19968: jis0208<<14 | 0x25<<7 | 0x0F, - 21206 - 19968: jis0212<<14 | 0x12<<7 | 0x4C, - 21207 - 19968: jis0208<<14 | 0x31<<7 | 0x07, - 21208 - 19968: jis0208<<14 | 0x13<<7 | 0x09, - 21209 - 19968: jis0208<<14 | 0x2B<<7 | 0x12, - 21211 - 19968: jis0208<<14 | 0x58<<7 | 0x2B, - 21212 - 19968: jis0212<<14 | 0x12<<7 | 0x4E, - 21213 - 19968: jis0208<<14 | 0x1D<<7 | 0x00, - 21214 - 19968: jis0208<<14 | 0x31<<7 | 0x08, - 21215 - 19968: jis0208<<14 | 0x29<<7 | 0x46, - 21216 - 19968: jis0208<<14 | 0x31<<7 | 0x0C, - 21217 - 19968: jis0212<<14 | 0x12<<7 | 0x4F, - 21218 - 19968: jis0208<<14 | 0x1F<<7 | 0x09, - 21219 - 19968: jis0208<<14 | 0x31<<7 | 0x09, - 21220 - 19968: jis0208<<14 | 0x15<<7 | 0x2F, - 21221 - 19968: jis0212<<14 | 0x12<<7 | 0x50, - 21222 - 19968: jis0208<<14 | 0x31<<7 | 0x0A, - 21223 - 19968: jis0208<<14 | 0x13<<7 | 0x0A, - 21224 - 19968: jis0212<<14 | 0x12<<7 | 0x51, - 21225 - 19968: jis0212<<14 | 0x12<<7 | 0x52, - 21226 - 19968: jis0212<<14 | 0x12<<7 | 0x53, - 21228 - 19968: jis0212<<14 | 0x12<<7 | 0x54, - 21232 - 19968: jis0212<<14 | 0x12<<7 | 0x55, - 21233 - 19968: jis0212<<14 | 0x12<<7 | 0x56, - 21234 - 19968: jis0208<<14 | 0x16<<7 | 0x0D, - 21235 - 19968: jis0208<<14 | 0x31<<7 | 0x0D, - 21236 - 19968: jis0212<<14 | 0x12<<7 | 0x57, - 21237 - 19968: jis0208<<14 | 0x31<<7 | 0x0E, - 21238 - 19968: jis0212<<14 | 0x12<<7 | 0x58, - 21239 - 19968: jis0212<<14 | 0x12<<7 | 0x59, - 21240 - 19968: jis0208<<14 | 0x31<<7 | 0x0F, - 21241 - 19968: jis0208<<14 | 0x31<<7 | 0x10, - 21242 - 19968: jis0208<<14 | 0x1B<<7 | 0x3A, - 21246 - 19968: jis0208<<14 | 0x17<<7 | 0x5A, - 21247 - 19968: jis0208<<14 | 0x2B<<7 | 0x3D, - 21248 - 19968: jis0208<<14 | 0x58<<7 | 0x2C, - 21249 - 19968: jis0208<<14 | 0x2B<<7 | 0x47, - 21250 - 19968: jis0208<<14 | 0x25<<7 | 0x56, - 21251 - 19968: jis0212<<14 | 0x12<<7 | 0x5B, - 21253 - 19968: jis0208<<14 | 0x29<<7 | 0x50, - 21254 - 19968: jis0208<<14 | 0x31<<7 | 0x11, - 21255 - 19968: jis0208<<14 | 0x58<<7 | 0x2D, - 21256 - 19968: jis0208<<14 | 0x31<<7 | 0x12, - 21258 - 19968: jis0212<<14 | 0x12<<7 | 0x5C, - 21259 - 19968: jis0212<<14 | 0x12<<7 | 0x5D, - 21260 - 19968: jis0212<<14 | 0x13<<7 | 0x00, - 21261 - 19968: jis0208<<14 | 0x31<<7 | 0x14, - 21263 - 19968: jis0208<<14 | 0x31<<7 | 0x16, - 21264 - 19968: jis0208<<14 | 0x31<<7 | 0x15, - 21265 - 19968: jis0212<<14 | 0x13<<7 | 0x01, - 21267 - 19968: jis0212<<14 | 0x13<<7 | 0x02, - 21269 - 19968: jis0208<<14 | 0x31<<7 | 0x17, - 21270 - 19968: jis0208<<14 | 0x11<<7 | 0x1C, - 21271 - 19968: jis0208<<14 | 0x2A<<7 | 0x2B, - 21272 - 19968: jis0212<<14 | 0x13<<7 | 0x03, - 21273 - 19968: jis0208<<14 | 0x19<<7 | 0x5B, - 21274 - 19968: jis0208<<14 | 0x31<<7 | 0x18, - 21275 - 19968: jis0212<<14 | 0x13<<7 | 0x04, - 21276 - 19968: jis0212<<14 | 0x13<<7 | 0x05, - 21277 - 19968: jis0208<<14 | 0x20<<7 | 0x38, - 21278 - 19968: jis0212<<14 | 0x13<<7 | 0x06, - 21279 - 19968: jis0212<<14 | 0x13<<7 | 0x07, - 21280 - 19968: jis0208<<14 | 0x1D<<7 | 0x01, - 21281 - 19968: jis0208<<14 | 0x15<<7 | 0x08, - 21283 - 19968: jis0208<<14 | 0x31<<7 | 0x19, - 21284 - 19968: jis0208<<14 | 0x58<<7 | 0x2E, - 21285 - 19968: jis0212<<14 | 0x13<<7 | 0x08, - 21287 - 19968: jis0212<<14 | 0x13<<7 | 0x09, - 21288 - 19968: jis0212<<14 | 0x13<<7 | 0x0A, - 21289 - 19968: jis0212<<14 | 0x13<<7 | 0x0B, - 21290 - 19968: jis0208<<14 | 0x27<<7 | 0x3A, - 21291 - 19968: jis0212<<14 | 0x13<<7 | 0x0C, - 21292 - 19968: jis0212<<14 | 0x13<<7 | 0x0D, - 21293 - 19968: jis0212<<14 | 0x13<<7 | 0x0E, - 21295 - 19968: jis0208<<14 | 0x31<<7 | 0x1A, - 21296 - 19968: jis0212<<14 | 0x13<<7 | 0x0F, - 21297 - 19968: jis0208<<14 | 0x31<<7 | 0x1B, - 21298 - 19968: jis0212<<14 | 0x13<<7 | 0x10, - 21299 - 19968: jis0208<<14 | 0x31<<7 | 0x1C, - 21301 - 19968: jis0212<<14 | 0x13<<7 | 0x11, - 21304 - 19968: jis0208<<14 | 0x31<<7 | 0x1D, - 21305 - 19968: jis0208<<14 | 0x28<<7 | 0x03, - 21306 - 19968: jis0208<<14 | 0x15<<7 | 0x47, - 21307 - 19968: jis0208<<14 | 0x0F<<7 | 0x44, - 21308 - 19968: jis0212<<14 | 0x13<<7 | 0x12, - 21309 - 19968: jis0212<<14 | 0x13<<7 | 0x13, - 21310 - 19968: jis0212<<14 | 0x13<<7 | 0x14, - 21311 - 19968: jis0208<<14 | 0x25<<7 | 0x1E, - 21312 - 19968: jis0208<<14 | 0x31<<7 | 0x1E, - 21313 - 19968: jis0208<<14 | 0x1C<<7 | 0x1C, - 21314 - 19968: jis0212<<14 | 0x13<<7 | 0x15, - 21315 - 19968: jis0208<<14 | 0x1F<<7 | 0x48, - 21317 - 19968: jis0208<<14 | 0x31<<7 | 0x20, - 21318 - 19968: jis0208<<14 | 0x31<<7 | 0x1F, - 21319 - 19968: jis0208<<14 | 0x1D<<7 | 0x02, - 21320 - 19968: jis0208<<14 | 0x17<<7 | 0x40, - 21321 - 19968: jis0208<<14 | 0x31<<7 | 0x22, - 21322 - 19968: jis0208<<14 | 0x27<<7 | 0x1D, - 21323 - 19968: jis0212<<14 | 0x13<<7 | 0x17, - 21324 - 19968: jis0212<<14 | 0x13<<7 | 0x16, - 21325 - 19968: jis0208<<14 | 0x31<<7 | 0x23, - 21329 - 19968: jis0208<<14 | 0x27<<7 | 0x3B, - 21330 - 19968: jis0208<<14 | 0x21<<7 | 0x13, - 21331 - 19968: jis0208<<14 | 0x21<<7 | 0x4D, - 21332 - 19968: jis0208<<14 | 0x15<<7 | 0x07, - 21335 - 19968: jis0208<<14 | 0x25<<7 | 0x4D, - 21336 - 19968: jis0208<<14 | 0x22<<7 | 0x10, - 21337 - 19968: jis0212<<14 | 0x13<<7 | 0x18, - 21338 - 19968: jis0208<<14 | 0x26<<7 | 0x4D, - 21339 - 19968: jis0212<<14 | 0x13<<7 | 0x19, - 21340 - 19968: jis0208<<14 | 0x2A<<7 | 0x2D, - 21342 - 19968: jis0208<<14 | 0x31<<7 | 0x25, - 21344 - 19968: jis0208<<14 | 0x1F<<7 | 0x49, - 21345 - 19968: jis0212<<14 | 0x13<<7 | 0x1A, - 21347 - 19968: jis0212<<14 | 0x13<<7 | 0x1B, - 21349 - 19968: jis0212<<14 | 0x13<<7 | 0x1C, - 21350 - 19968: jis0208<<14 | 0x16<<7 | 0x14, - 21353 - 19968: jis0208<<14 | 0x31<<7 | 0x26, - 21356 - 19968: jis0212<<14 | 0x13<<7 | 0x1D, - 21357 - 19968: jis0212<<14 | 0x13<<7 | 0x1E, - 21358 - 19968: jis0208<<14 | 0x31<<7 | 0x27, - 21359 - 19968: jis0208<<14 | 0x10<<7 | 0x0B, - 21360 - 19968: jis0208<<14 | 0x0F<<7 | 0x54, - 21361 - 19968: jis0208<<14 | 0x13<<7 | 0x4C, - 21362 - 19968: jis0208<<14 | 0x58<<7 | 0x2F, - 21363 - 19968: jis0208<<14 | 0x21<<7 | 0x07, - 21364 - 19968: jis0208<<14 | 0x14<<7 | 0x30, - 21365 - 19968: jis0208<<14 | 0x2C<<7 | 0x50, - 21367 - 19968: jis0208<<14 | 0x31<<7 | 0x2A, - 21368 - 19968: jis0208<<14 | 0x11<<7 | 0x16, - 21369 - 19968: jis0212<<14 | 0x13<<7 | 0x20, - 21371 - 19968: jis0208<<14 | 0x31<<7 | 0x29, - 21374 - 19968: jis0212<<14 | 0x13<<7 | 0x21, - 21375 - 19968: jis0208<<14 | 0x15<<7 | 0x09, - 21378 - 19968: jis0208<<14 | 0x31<<7 | 0x2B, - 21379 - 19968: jis0212<<14 | 0x13<<7 | 0x22, - 21380 - 19968: jis0208<<14 | 0x2B<<7 | 0x50, - 21383 - 19968: jis0212<<14 | 0x13<<7 | 0x23, - 21384 - 19968: jis0212<<14 | 0x13<<7 | 0x24, - 21390 - 19968: jis0212<<14 | 0x13<<7 | 0x25, - 21395 - 19968: jis0208<<14 | 0x58<<7 | 0x30, - 21396 - 19968: jis0212<<14 | 0x13<<7 | 0x27, - 21398 - 19968: jis0208<<14 | 0x31<<7 | 0x2C, - 21400 - 19968: jis0208<<14 | 0x2D<<7 | 0x31, - 21401 - 19968: jis0212<<14 | 0x13<<7 | 0x28, - 21402 - 19968: jis0208<<14 | 0x17<<7 | 0x5B, - 21405 - 19968: jis0212<<14 | 0x13<<7 | 0x29, - 21407 - 19968: jis0208<<14 | 0x17<<7 | 0x15, - 21408 - 19968: jis0208<<14 | 0x31<<7 | 0x2D, - 21409 - 19968: jis0212<<14 | 0x13<<7 | 0x2A, - 21412 - 19968: jis0212<<14 | 0x13<<7 | 0x2B, - 21413 - 19968: jis0208<<14 | 0x31<<7 | 0x2F, - 21414 - 19968: jis0208<<14 | 0x31<<7 | 0x2E, - 21416 - 19968: jis0208<<14 | 0x1E<<7 | 0x3E, - 21417 - 19968: jis0208<<14 | 0x10<<7 | 0x18, - 21418 - 19968: jis0212<<14 | 0x13<<7 | 0x2C, - 21419 - 19968: jis0212<<14 | 0x13<<7 | 0x2D, - 21421 - 19968: jis0208<<14 | 0x10<<7 | 0x3D, - 21422 - 19968: jis0208<<14 | 0x31<<7 | 0x30, - 21423 - 19968: jis0212<<14 | 0x13<<7 | 0x2E, - 21424 - 19968: jis0208<<14 | 0x31<<7 | 0x31, - 21426 - 19968: jis0208<<14 | 0x58<<7 | 0x31, - 21427 - 19968: jis0208<<14 | 0x17<<7 | 0x16, - 21428 - 19968: jis0212<<14 | 0x13<<7 | 0x30, - 21429 - 19968: jis0212<<14 | 0x13<<7 | 0x31, - 21430 - 19968: jis0208<<14 | 0x31<<7 | 0x32, - 21431 - 19968: jis0212<<14 | 0x13<<7 | 0x32, - 21432 - 19968: jis0212<<14 | 0x13<<7 | 0x33, - 21434 - 19968: jis0212<<14 | 0x13<<7 | 0x34, - 21435 - 19968: jis0208<<14 | 0x14<<7 | 0x4D, - 21437 - 19968: jis0212<<14 | 0x13<<7 | 0x35, - 21440 - 19968: jis0212<<14 | 0x13<<7 | 0x36, - 21442 - 19968: jis0208<<14 | 0x1A<<7 | 0x11, - 21443 - 19968: jis0208<<14 | 0x31<<7 | 0x33, - 21445 - 19968: jis0212<<14 | 0x13<<7 | 0x37, - 21448 - 19968: jis0208<<14 | 0x2A<<7 | 0x53, - 21449 - 19968: jis0208<<14 | 0x19<<7 | 0x14, - 21450 - 19968: jis0208<<14 | 0x14<<7 | 0x39, - 21451 - 19968: jis0208<<14 | 0x2C<<7 | 0x06, - 21452 - 19968: jis0208<<14 | 0x20<<7 | 0x2F, - 21453 - 19968: jis0208<<14 | 0x27<<7 | 0x1E, - 21454 - 19968: jis0208<<14 | 0x1B<<7 | 0x5C, - 21455 - 19968: jis0212<<14 | 0x13<<7 | 0x38, - 21458 - 19968: jis0212<<14 | 0x13<<7 | 0x39, - 21459 - 19968: jis0212<<14 | 0x13<<7 | 0x3A, - 21460 - 19968: jis0208<<14 | 0x1C<<7 | 0x26, - 21461 - 19968: jis0212<<14 | 0x13<<7 | 0x3B, - 21462 - 19968: jis0208<<14 | 0x1B<<7 | 0x47, - 21463 - 19968: jis0208<<14 | 0x1B<<7 | 0x54, - 21465 - 19968: jis0208<<14 | 0x1C<<7 | 0x55, - 21466 - 19968: jis0212<<14 | 0x13<<7 | 0x3C, - 21467 - 19968: jis0208<<14 | 0x27<<7 | 0x1F, - 21469 - 19968: jis0208<<14 | 0x58<<7 | 0x32, - 21470 - 19968: jis0212<<14 | 0x13<<7 | 0x3E, - 21471 - 19968: jis0208<<14 | 0x31<<7 | 0x36, - 21472 - 19968: jis0212<<14 | 0x13<<7 | 0x3F, - 21473 - 19968: jis0208<<14 | 0x10<<7 | 0x22, - 21474 - 19968: jis0208<<14 | 0x20<<7 | 0x30, - 21475 - 19968: jis0208<<14 | 0x17<<7 | 0x5C, - 21476 - 19968: jis0208<<14 | 0x17<<7 | 0x24, - 21477 - 19968: jis0208<<14 | 0x15<<7 | 0x46, - 21478 - 19968: jis0212<<14 | 0x13<<7 | 0x40, - 21479 - 19968: jis0212<<14 | 0x13<<7 | 0x41, - 21480 - 19968: jis0208<<14 | 0x31<<7 | 0x3A, - 21481 - 19968: jis0208<<14 | 0x22<<7 | 0x00, - 21482 - 19968: jis0208<<14 | 0x21<<7 | 0x5D, - 21483 - 19968: jis0208<<14 | 0x15<<7 | 0x0A, - 21484 - 19968: jis0208<<14 | 0x1D<<7 | 0x03, - 21485 - 19968: jis0208<<14 | 0x31<<7 | 0x3B, - 21486 - 19968: jis0208<<14 | 0x31<<7 | 0x39, - 21487 - 19968: jis0208<<14 | 0x11<<7 | 0x23, - 21488 - 19968: jis0208<<14 | 0x21<<7 | 0x45, - 21489 - 19968: jis0208<<14 | 0x1B<<7 | 0x17, - 21490 - 19968: jis0208<<14 | 0x1A<<7 | 0x2A, - 21491 - 19968: jis0208<<14 | 0x10<<7 | 0x05, - 21493 - 19968: jis0212<<14 | 0x13<<7 | 0x42, - 21494 - 19968: jis0208<<14 | 0x12<<7 | 0x4F, - 21495 - 19968: jis0208<<14 | 0x18<<7 | 0x45, - 21496 - 19968: jis0208<<14 | 0x1A<<7 | 0x29, - 21498 - 19968: jis0208<<14 | 0x31<<7 | 0x3C, - 21505 - 19968: jis0208<<14 | 0x31<<7 | 0x3D, - 21506 - 19968: jis0212<<14 | 0x13<<7 | 0x43, - 21507 - 19968: jis0208<<14 | 0x14<<7 | 0x28, - 21508 - 19968: jis0208<<14 | 0x12<<7 | 0x25, - 21512 - 19968: jis0208<<14 | 0x18<<7 | 0x46, - 21513 - 19968: jis0208<<14 | 0x14<<7 | 0x27, - 21514 - 19968: jis0208<<14 | 0x23<<7 | 0x3E, - 21515 - 19968: jis0208<<14 | 0x10<<7 | 0x04, - 21516 - 19968: jis0208<<14 | 0x25<<7 | 0x10, - 21517 - 19968: jis0208<<14 | 0x2B<<7 | 0x1D, - 21518 - 19968: jis0208<<14 | 0x18<<7 | 0x00, - 21519 - 19968: jis0208<<14 | 0x2C<<7 | 0x58, - 21520 - 19968: jis0208<<14 | 0x24<<7 | 0x26, - 21521 - 19968: jis0208<<14 | 0x17<<7 | 0x5D, - 21523 - 19968: jis0212<<14 | 0x13<<7 | 0x44, - 21530 - 19968: jis0212<<14 | 0x13<<7 | 0x45, - 21531 - 19968: jis0208<<14 | 0x16<<7 | 0x0E, - 21533 - 19968: jis0208<<14 | 0x31<<7 | 0x46, - 21535 - 19968: jis0208<<14 | 0x15<<7 | 0x42, - 21536 - 19968: jis0208<<14 | 0x2A<<7 | 0x29, - 21537 - 19968: jis0212<<14 | 0x13<<7 | 0x46, - 21542 - 19968: jis0208<<14 | 0x27<<7 | 0x3C, - 21543 - 19968: jis0212<<14 | 0x13<<7 | 0x47, - 21544 - 19968: jis0212<<14 | 0x13<<7 | 0x48, - 21545 - 19968: jis0208<<14 | 0x31<<7 | 0x45, - 21546 - 19968: jis0212<<14 | 0x13<<7 | 0x49, - 21547 - 19968: jis0208<<14 | 0x13<<7 | 0x3D, - 21548 - 19968: jis0208<<14 | 0x31<<7 | 0x40, - 21549 - 19968: jis0208<<14 | 0x31<<7 | 0x41, - 21550 - 19968: jis0208<<14 | 0x31<<7 | 0x43, - 21551 - 19968: jis0212<<14 | 0x13<<7 | 0x4A, - 21553 - 19968: jis0212<<14 | 0x13<<7 | 0x4B, - 21556 - 19968: jis0212<<14 | 0x13<<7 | 0x4C, - 21557 - 19968: jis0212<<14 | 0x13<<7 | 0x4D, - 21558 - 19968: jis0208<<14 | 0x31<<7 | 0x44, - 21560 - 19968: jis0208<<14 | 0x14<<7 | 0x3A, - 21561 - 19968: jis0208<<14 | 0x1E<<7 | 0x40, - 21563 - 19968: jis0208<<14 | 0x29<<7 | 0x0C, - 21564 - 19968: jis0208<<14 | 0x31<<7 | 0x42, - 21565 - 19968: jis0208<<14 | 0x31<<7 | 0x3E, - 21566 - 19968: jis0208<<14 | 0x17<<7 | 0x42, - 21568 - 19968: jis0208<<14 | 0x31<<7 | 0x3F, - 21570 - 19968: jis0208<<14 | 0x2E<<7 | 0x03, - 21571 - 19968: jis0212<<14 | 0x13<<7 | 0x4E, - 21572 - 19968: jis0212<<14 | 0x13<<7 | 0x4F, - 21574 - 19968: jis0208<<14 | 0x29<<7 | 0x51, - 21575 - 19968: jis0212<<14 | 0x13<<7 | 0x50, - 21576 - 19968: jis0208<<14 | 0x23<<7 | 0x47, - 21577 - 19968: jis0208<<14 | 0x17<<7 | 0x41, - 21578 - 19968: jis0208<<14 | 0x18<<7 | 0x4F, - 21581 - 19968: jis0212<<14 | 0x13<<7 | 0x51, - 21582 - 19968: jis0208<<14 | 0x31<<7 | 0x47, - 21583 - 19968: jis0212<<14 | 0x13<<7 | 0x52, - 21585 - 19968: jis0208<<14 | 0x25<<7 | 0x3C, - 21598 - 19968: jis0212<<14 | 0x13<<7 | 0x53, - 21599 - 19968: jis0208<<14 | 0x31<<7 | 0x4B, - 21602 - 19968: jis0212<<14 | 0x13<<7 | 0x54, - 21604 - 19968: jis0212<<14 | 0x13<<7 | 0x55, - 21606 - 19968: jis0212<<14 | 0x13<<7 | 0x56, - 21607 - 19968: jis0212<<14 | 0x13<<7 | 0x57, - 21608 - 19968: jis0208<<14 | 0x1B<<7 | 0x5D, - 21609 - 19968: jis0212<<14 | 0x13<<7 | 0x58, - 21610 - 19968: jis0208<<14 | 0x1B<<7 | 0x55, - 21611 - 19968: jis0212<<14 | 0x13<<7 | 0x59, - 21613 - 19968: jis0212<<14 | 0x13<<7 | 0x5A, - 21614 - 19968: jis0212<<14 | 0x13<<7 | 0x5B, - 21616 - 19968: jis0208<<14 | 0x31<<7 | 0x4E, - 21617 - 19968: jis0208<<14 | 0x31<<7 | 0x4C, - 21619 - 19968: jis0208<<14 | 0x2B<<7 | 0x02, - 21620 - 19968: jis0212<<14 | 0x13<<7 | 0x5C, - 21621 - 19968: jis0208<<14 | 0x31<<7 | 0x49, - 21622 - 19968: jis0208<<14 | 0x31<<7 | 0x52, - 21623 - 19968: jis0208<<14 | 0x31<<7 | 0x4D, - 21627 - 19968: jis0208<<14 | 0x31<<7 | 0x50, - 21628 - 19968: jis0208<<14 | 0x17<<7 | 0x25, - 21629 - 19968: jis0208<<14 | 0x2B<<7 | 0x1E, - 21631 - 19968: jis0212<<14 | 0x13<<7 | 0x5D, - 21632 - 19968: jis0208<<14 | 0x31<<7 | 0x51, - 21633 - 19968: jis0212<<14 | 0x14<<7 | 0x00, - 21635 - 19968: jis0212<<14 | 0x14<<7 | 0x01, - 21636 - 19968: jis0208<<14 | 0x31<<7 | 0x53, - 21637 - 19968: jis0212<<14 | 0x14<<7 | 0x02, - 21638 - 19968: jis0208<<14 | 0x31<<7 | 0x55, - 21640 - 19968: jis0212<<14 | 0x14<<7 | 0x03, - 21641 - 19968: jis0212<<14 | 0x14<<7 | 0x04, - 21642 - 19968: jis0208<<14 | 0x58<<7 | 0x35, - 21643 - 19968: jis0208<<14 | 0x19<<7 | 0x4F, - 21644 - 19968: jis0208<<14 | 0x2E<<7 | 0x21, - 21645 - 19968: jis0212<<14 | 0x14<<7 | 0x05, - 21646 - 19968: jis0208<<14 | 0x31<<7 | 0x4A, - 21647 - 19968: jis0208<<14 | 0x31<<7 | 0x48, - 21648 - 19968: jis0208<<14 | 0x31<<7 | 0x54, - 21649 - 19968: jis0212<<14 | 0x14<<7 | 0x06, - 21650 - 19968: jis0208<<14 | 0x31<<7 | 0x4F, - 21653 - 19968: jis0212<<14 | 0x14<<7 | 0x07, - 21654 - 19968: jis0212<<14 | 0x14<<7 | 0x08, - 21660 - 19968: jis0208<<14 | 0x58<<7 | 0x34, - 21663 - 19968: jis0212<<14 | 0x14<<7 | 0x0A, - 21665 - 19968: jis0212<<14 | 0x14<<7 | 0x0B, - 21666 - 19968: jis0208<<14 | 0x31<<7 | 0x57, - 21668 - 19968: jis0208<<14 | 0x32<<7 | 0x02, - 21669 - 19968: jis0208<<14 | 0x31<<7 | 0x59, - 21670 - 19968: jis0212<<14 | 0x14<<7 | 0x0C, - 21671 - 19968: jis0212<<14 | 0x14<<7 | 0x0D, - 21672 - 19968: jis0208<<14 | 0x31<<7 | 0x5D, - 21673 - 19968: jis0208<<14 | 0x58<<7 | 0x36, - 21674 - 19968: jis0212<<14 | 0x14<<7 | 0x0F, - 21675 - 19968: jis0208<<14 | 0x32<<7 | 0x00, - 21676 - 19968: jis0208<<14 | 0x31<<7 | 0x5A, - 21677 - 19968: jis0212<<14 | 0x14<<7 | 0x10, - 21678 - 19968: jis0212<<14 | 0x14<<7 | 0x11, - 21679 - 19968: jis0208<<14 | 0x32<<7 | 0x1D, - 21681 - 19968: jis0212<<14 | 0x14<<7 | 0x12, - 21682 - 19968: jis0208<<14 | 0x19<<7 | 0x48, - 21683 - 19968: jis0208<<14 | 0x12<<7 | 0x10, - 21687 - 19968: jis0212<<14 | 0x14<<7 | 0x13, - 21688 - 19968: jis0208<<14 | 0x31<<7 | 0x58, - 21689 - 19968: jis0212<<14 | 0x14<<7 | 0x14, - 21690 - 19968: jis0212<<14 | 0x14<<7 | 0x15, - 21691 - 19968: jis0212<<14 | 0x14<<7 | 0x16, - 21692 - 19968: jis0208<<14 | 0x32<<7 | 0x04, - 21693 - 19968: jis0208<<14 | 0x0F<<7 | 0x55, - 21694 - 19968: jis0208<<14 | 0x32<<7 | 0x03, - 21695 - 19968: jis0212<<14 | 0x14<<7 | 0x17, - 21696 - 19968: jis0208<<14 | 0x0F<<7 | 0x04, - 21697 - 19968: jis0208<<14 | 0x28<<7 | 0x29, - 21698 - 19968: jis0208<<14 | 0x32<<7 | 0x01, - 21700 - 19968: jis0208<<14 | 0x31<<7 | 0x5B, - 21702 - 19968: jis0212<<14 | 0x14<<7 | 0x18, - 21703 - 19968: jis0208<<14 | 0x31<<7 | 0x56, - 21704 - 19968: jis0208<<14 | 0x31<<7 | 0x5C, - 21705 - 19968: jis0208<<14 | 0x19<<7 | 0x27, - 21706 - 19968: jis0212<<14 | 0x14<<7 | 0x19, - 21709 - 19968: jis0212<<14 | 0x14<<7 | 0x1A, - 21710 - 19968: jis0212<<14 | 0x14<<7 | 0x1B, - 21720 - 19968: jis0208<<14 | 0x32<<7 | 0x05, - 21728 - 19968: jis0212<<14 | 0x14<<7 | 0x1C, - 21729 - 19968: jis0208<<14 | 0x0F<<7 | 0x56, - 21730 - 19968: jis0208<<14 | 0x32<<7 | 0x0E, - 21733 - 19968: jis0208<<14 | 0x32<<7 | 0x06, - 21734 - 19968: jis0208<<14 | 0x32<<7 | 0x07, - 21736 - 19968: jis0208<<14 | 0x1D<<7 | 0x04, - 21737 - 19968: jis0208<<14 | 0x2A<<7 | 0x48, - 21738 - 19968: jis0212<<14 | 0x14<<7 | 0x1D, - 21740 - 19968: jis0212<<14 | 0x14<<7 | 0x1E, - 21741 - 19968: jis0208<<14 | 0x32<<7 | 0x0C, - 21742 - 19968: jis0208<<14 | 0x32<<7 | 0x0B, - 21743 - 19968: jis0212<<14 | 0x14<<7 | 0x1F, - 21746 - 19968: jis0208<<14 | 0x24<<7 | 0x0E, - 21750 - 19968: jis0212<<14 | 0x14<<7 | 0x20, - 21754 - 19968: jis0208<<14 | 0x32<<7 | 0x0D, - 21756 - 19968: jis0212<<14 | 0x14<<7 | 0x21, - 21757 - 19968: jis0208<<14 | 0x32<<7 | 0x0A, - 21758 - 19968: jis0212<<14 | 0x14<<7 | 0x22, - 21759 - 19968: jis0208<<14 | 0x58<<7 | 0x37, - 21760 - 19968: jis0212<<14 | 0x14<<7 | 0x24, - 21761 - 19968: jis0212<<14 | 0x14<<7 | 0x25, - 21764 - 19968: jis0208<<14 | 0x10<<7 | 0x13, - 21765 - 19968: jis0212<<14 | 0x14<<7 | 0x26, - 21766 - 19968: jis0208<<14 | 0x19<<7 | 0x15, - 21767 - 19968: jis0208<<14 | 0x1E<<7 | 0x0F, - 21768 - 19968: jis0212<<14 | 0x14<<7 | 0x27, - 21769 - 19968: jis0212<<14 | 0x14<<7 | 0x28, - 21772 - 19968: jis0212<<14 | 0x14<<7 | 0x29, - 21773 - 19968: jis0212<<14 | 0x14<<7 | 0x2A, - 21774 - 19968: jis0212<<14 | 0x14<<7 | 0x2B, - 21775 - 19968: jis0208<<14 | 0x32<<7 | 0x08, - 21776 - 19968: jis0208<<14 | 0x24<<7 | 0x41, - 21780 - 19968: jis0208<<14 | 0x32<<7 | 0x09, - 21781 - 19968: jis0212<<14 | 0x14<<7 | 0x2C, - 21782 - 19968: jis0208<<14 | 0x0F<<7 | 0x01, - 21802 - 19968: jis0212<<14 | 0x14<<7 | 0x2D, - 21803 - 19968: jis0212<<14 | 0x14<<7 | 0x2E, - 21806 - 19968: jis0208<<14 | 0x32<<7 | 0x13, - 21807 - 19968: jis0208<<14 | 0x2C<<7 | 0x02, - 21809 - 19968: jis0208<<14 | 0x1D<<7 | 0x06, - 21810 - 19968: jis0212<<14 | 0x14<<7 | 0x2F, - 21811 - 19968: jis0208<<14 | 0x32<<7 | 0x19, - 21813 - 19968: jis0212<<14 | 0x14<<7 | 0x30, - 21814 - 19968: jis0212<<14 | 0x14<<7 | 0x31, - 21816 - 19968: jis0208<<14 | 0x32<<7 | 0x18, - 21817 - 19968: jis0208<<14 | 0x32<<7 | 0x0F, - 21819 - 19968: jis0212<<14 | 0x14<<7 | 0x32, - 21820 - 19968: jis0212<<14 | 0x14<<7 | 0x33, - 21821 - 19968: jis0212<<14 | 0x14<<7 | 0x34, - 21822 - 19968: jis0208<<14 | 0x21<<7 | 0x22, - 21824 - 19968: jis0208<<14 | 0x32<<7 | 0x10, - 21825 - 19968: jis0212<<14 | 0x14<<7 | 0x35, - 21828 - 19968: jis0208<<14 | 0x21<<7 | 0x4E, - 21829 - 19968: jis0208<<14 | 0x32<<7 | 0x15, - 21830 - 19968: jis0208<<14 | 0x1D<<7 | 0x05, - 21831 - 19968: jis0212<<14 | 0x14<<7 | 0x36, - 21833 - 19968: jis0212<<14 | 0x14<<7 | 0x37, - 21834 - 19968: jis0212<<14 | 0x14<<7 | 0x38, - 21836 - 19968: jis0208<<14 | 0x32<<7 | 0x12, - 21837 - 19968: jis0212<<14 | 0x14<<7 | 0x39, - 21839 - 19968: jis0208<<14 | 0x2B<<7 | 0x43, - 21840 - 19968: jis0212<<14 | 0x14<<7 | 0x3A, - 21841 - 19968: jis0212<<14 | 0x14<<7 | 0x3B, - 21843 - 19968: jis0208<<14 | 0x16<<7 | 0x1B, - 21846 - 19968: jis0208<<14 | 0x32<<7 | 0x16, - 21847 - 19968: jis0208<<14 | 0x32<<7 | 0x17, - 21848 - 19968: jis0212<<14 | 0x14<<7 | 0x3C, - 21850 - 19968: jis0212<<14 | 0x14<<7 | 0x3D, - 21851 - 19968: jis0212<<14 | 0x14<<7 | 0x3E, - 21852 - 19968: jis0208<<14 | 0x32<<7 | 0x14, - 21853 - 19968: jis0208<<14 | 0x32<<7 | 0x1A, - 21854 - 19968: jis0212<<14 | 0x14<<7 | 0x3F, - 21856 - 19968: jis0212<<14 | 0x14<<7 | 0x40, - 21857 - 19968: jis0212<<14 | 0x14<<7 | 0x41, - 21859 - 19968: jis0208<<14 | 0x32<<7 | 0x11, - 21860 - 19968: jis0212<<14 | 0x14<<7 | 0x42, - 21862 - 19968: jis0212<<14 | 0x14<<7 | 0x43, - 21883 - 19968: jis0208<<14 | 0x32<<7 | 0x20, - 21884 - 19968: jis0208<<14 | 0x32<<7 | 0x25, - 21886 - 19968: jis0208<<14 | 0x32<<7 | 0x21, - 21887 - 19968: jis0212<<14 | 0x14<<7 | 0x44, - 21888 - 19968: jis0208<<14 | 0x32<<7 | 0x1C, - 21889 - 19968: jis0212<<14 | 0x14<<7 | 0x45, - 21890 - 19968: jis0212<<14 | 0x14<<7 | 0x46, - 21891 - 19968: jis0208<<14 | 0x32<<7 | 0x26, - 21892 - 19968: jis0208<<14 | 0x20<<7 | 0x10, - 21894 - 19968: jis0208<<14 | 0x58<<7 | 0x38, - 21895 - 19968: jis0208<<14 | 0x32<<7 | 0x28, - 21896 - 19968: jis0212<<14 | 0x14<<7 | 0x48, - 21897 - 19968: jis0208<<14 | 0x18<<7 | 0x01, - 21898 - 19968: jis0208<<14 | 0x32<<7 | 0x1E, - 21899 - 19968: jis0208<<14 | 0x22<<7 | 0x5C, - 21902 - 19968: jis0212<<14 | 0x14<<7 | 0x49, - 21903 - 19968: jis0212<<14 | 0x14<<7 | 0x4A, - 21905 - 19968: jis0212<<14 | 0x14<<7 | 0x4B, - 21906 - 19968: jis0212<<14 | 0x14<<7 | 0x4C, - 21907 - 19968: jis0212<<14 | 0x14<<7 | 0x4D, - 21908 - 19968: jis0212<<14 | 0x14<<7 | 0x4E, - 21911 - 19968: jis0212<<14 | 0x14<<7 | 0x4F, - 21912 - 19968: jis0208<<14 | 0x32<<7 | 0x22, - 21913 - 19968: jis0208<<14 | 0x32<<7 | 0x1B, - 21914 - 19968: jis0208<<14 | 0x13<<7 | 0x0C, - 21916 - 19968: jis0208<<14 | 0x13<<7 | 0x4D, - 21917 - 19968: jis0208<<14 | 0x12<<7 | 0x44, - 21918 - 19968: jis0208<<14 | 0x32<<7 | 0x23, - 21919 - 19968: jis0208<<14 | 0x32<<7 | 0x1F, - 21923 - 19968: jis0212<<14 | 0x14<<7 | 0x50, - 21924 - 19968: jis0212<<14 | 0x14<<7 | 0x51, - 21927 - 19968: jis0208<<14 | 0x16<<7 | 0x55, - 21928 - 19968: jis0208<<14 | 0x32<<7 | 0x29, - 21929 - 19968: jis0208<<14 | 0x32<<7 | 0x27, - 21930 - 19968: jis0208<<14 | 0x20<<7 | 0x32, - 21931 - 19968: jis0208<<14 | 0x14<<7 | 0x29, - 21932 - 19968: jis0208<<14 | 0x15<<7 | 0x0B, - 21933 - 19968: jis0212<<14 | 0x14<<7 | 0x52, - 21934 - 19968: jis0208<<14 | 0x32<<7 | 0x24, - 21936 - 19968: jis0208<<14 | 0x15<<7 | 0x53, - 21938 - 19968: jis0212<<14 | 0x14<<7 | 0x53, - 21942 - 19968: jis0208<<14 | 0x10<<7 | 0x23, - 21951 - 19968: jis0212<<14 | 0x14<<7 | 0x54, - 21953 - 19968: jis0212<<14 | 0x14<<7 | 0x55, - 21955 - 19968: jis0212<<14 | 0x14<<7 | 0x56, - 21956 - 19968: jis0208<<14 | 0x32<<7 | 0x2D, - 21957 - 19968: jis0208<<14 | 0x32<<7 | 0x2B, - 21958 - 19968: jis0212<<14 | 0x14<<7 | 0x57, - 21959 - 19968: jis0208<<14 | 0x33<<7 | 0x06, - 21961 - 19968: jis0212<<14 | 0x14<<7 | 0x58, - 21963 - 19968: jis0212<<14 | 0x14<<7 | 0x59, - 21964 - 19968: jis0212<<14 | 0x14<<7 | 0x5A, - 21966 - 19968: jis0212<<14 | 0x14<<7 | 0x5B, - 21969 - 19968: jis0212<<14 | 0x14<<7 | 0x5C, - 21970 - 19968: jis0212<<14 | 0x14<<7 | 0x5D, - 21971 - 19968: jis0212<<14 | 0x15<<7 | 0x00, - 21972 - 19968: jis0208<<14 | 0x32<<7 | 0x30, - 21975 - 19968: jis0212<<14 | 0x15<<7 | 0x01, - 21976 - 19968: jis0212<<14 | 0x15<<7 | 0x02, - 21978 - 19968: jis0208<<14 | 0x32<<7 | 0x2A, - 21979 - 19968: jis0212<<14 | 0x15<<7 | 0x03, - 21980 - 19968: jis0208<<14 | 0x32<<7 | 0x2E, - 21982 - 19968: jis0212<<14 | 0x15<<7 | 0x04, - 21983 - 19968: jis0208<<14 | 0x32<<7 | 0x2C, - 21986 - 19968: jis0212<<14 | 0x15<<7 | 0x05, - 21987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2B, - 21988 - 19968: jis0208<<14 | 0x32<<7 | 0x2F, - 21993 - 19968: jis0212<<14 | 0x15<<7 | 0x06, - 22006 - 19968: jis0212<<14 | 0x15<<7 | 0x07, - 22007 - 19968: jis0208<<14 | 0x32<<7 | 0x32, - 22009 - 19968: jis0208<<14 | 0x32<<7 | 0x37, - 22013 - 19968: jis0208<<14 | 0x32<<7 | 0x35, - 22014 - 19968: jis0208<<14 | 0x32<<7 | 0x34, - 22015 - 19968: jis0212<<14 | 0x15<<7 | 0x08, - 22021 - 19968: jis0212<<14 | 0x15<<7 | 0x09, - 22022 - 19968: jis0208<<14 | 0x22<<7 | 0x11, - 22024 - 19968: jis0212<<14 | 0x15<<7 | 0x0A, - 22025 - 19968: jis0208<<14 | 0x11<<7 | 0x24, - 22026 - 19968: jis0212<<14 | 0x15<<7 | 0x0B, - 22029 - 19968: jis0212<<14 | 0x15<<7 | 0x0C, - 22030 - 19968: jis0212<<14 | 0x15<<7 | 0x0D, - 22031 - 19968: jis0212<<14 | 0x15<<7 | 0x0E, - 22032 - 19968: jis0212<<14 | 0x15<<7 | 0x0F, - 22033 - 19968: jis0212<<14 | 0x15<<7 | 0x10, - 22034 - 19968: jis0212<<14 | 0x15<<7 | 0x11, - 22036 - 19968: jis0208<<14 | 0x32<<7 | 0x31, - 22038 - 19968: jis0208<<14 | 0x32<<7 | 0x33, - 22039 - 19968: jis0208<<14 | 0x1D<<7 | 0x07, - 22040 - 19968: jis0208<<14 | 0x10<<7 | 0x12, - 22041 - 19968: jis0212<<14 | 0x15<<7 | 0x12, - 22043 - 19968: jis0208<<14 | 0x32<<7 | 0x36, - 22057 - 19968: jis0208<<14 | 0x11<<7 | 0x3D, - 22060 - 19968: jis0212<<14 | 0x15<<7 | 0x13, - 22063 - 19968: jis0208<<14 | 0x32<<7 | 0x41, - 22064 - 19968: jis0212<<14 | 0x15<<7 | 0x14, - 22065 - 19968: jis0208<<14 | 0x1D<<7 | 0x5B, - 22066 - 19968: jis0208<<14 | 0x32<<7 | 0x3D, - 22067 - 19968: jis0212<<14 | 0x15<<7 | 0x15, - 22068 - 19968: jis0208<<14 | 0x32<<7 | 0x3B, - 22069 - 19968: jis0212<<14 | 0x15<<7 | 0x16, - 22070 - 19968: jis0208<<14 | 0x32<<7 | 0x3C, - 22071 - 19968: jis0212<<14 | 0x15<<7 | 0x17, - 22072 - 19968: jis0208<<14 | 0x32<<7 | 0x3E, - 22073 - 19968: jis0212<<14 | 0x15<<7 | 0x18, - 22075 - 19968: jis0212<<14 | 0x15<<7 | 0x19, - 22076 - 19968: jis0212<<14 | 0x15<<7 | 0x1A, - 22077 - 19968: jis0212<<14 | 0x15<<7 | 0x1B, - 22079 - 19968: jis0212<<14 | 0x15<<7 | 0x1C, - 22080 - 19968: jis0212<<14 | 0x15<<7 | 0x1D, - 22081 - 19968: jis0212<<14 | 0x15<<7 | 0x1E, - 22082 - 19968: jis0208<<14 | 0x10<<7 | 0x1C, - 22083 - 19968: jis0212<<14 | 0x15<<7 | 0x1F, - 22084 - 19968: jis0212<<14 | 0x15<<7 | 0x20, - 22086 - 19968: jis0212<<14 | 0x15<<7 | 0x21, - 22089 - 19968: jis0212<<14 | 0x15<<7 | 0x22, - 22091 - 19968: jis0212<<14 | 0x15<<7 | 0x23, - 22092 - 19968: jis0208<<14 | 0x20<<7 | 0x18, - 22093 - 19968: jis0212<<14 | 0x15<<7 | 0x24, - 22094 - 19968: jis0208<<14 | 0x32<<7 | 0x38, - 22095 - 19968: jis0212<<14 | 0x15<<7 | 0x25, - 22096 - 19968: jis0208<<14 | 0x32<<7 | 0x39, - 22100 - 19968: jis0212<<14 | 0x15<<7 | 0x26, - 22107 - 19968: jis0208<<14 | 0x12<<7 | 0x59, - 22110 - 19968: jis0212<<14 | 0x15<<7 | 0x27, - 22112 - 19968: jis0212<<14 | 0x15<<7 | 0x28, - 22113 - 19968: jis0212<<14 | 0x15<<7 | 0x29, - 22114 - 19968: jis0212<<14 | 0x15<<7 | 0x2A, - 22115 - 19968: jis0212<<14 | 0x15<<7 | 0x2B, - 22116 - 19968: jis0208<<14 | 0x32<<7 | 0x40, - 22118 - 19968: jis0212<<14 | 0x15<<7 | 0x2C, - 22120 - 19968: jis0208<<14 | 0x13<<7 | 0x4E, - 22121 - 19968: jis0212<<14 | 0x15<<7 | 0x2D, - 22122 - 19968: jis0208<<14 | 0x32<<7 | 0x43, - 22123 - 19968: jis0208<<14 | 0x32<<7 | 0x3F, - 22124 - 19968: jis0208<<14 | 0x32<<7 | 0x42, - 22125 - 19968: jis0212<<14 | 0x15<<7 | 0x2E, - 22127 - 19968: jis0212<<14 | 0x15<<7 | 0x2F, - 22129 - 19968: jis0212<<14 | 0x15<<7 | 0x30, - 22130 - 19968: jis0212<<14 | 0x15<<7 | 0x31, - 22132 - 19968: jis0208<<14 | 0x29<<7 | 0x0D, - 22133 - 19968: jis0212<<14 | 0x15<<7 | 0x32, - 22136 - 19968: jis0208<<14 | 0x25<<7 | 0x34, - 22138 - 19968: jis0208<<14 | 0x27<<7 | 0x17, - 22144 - 19968: jis0208<<14 | 0x32<<7 | 0x45, - 22148 - 19968: jis0212<<14 | 0x15<<7 | 0x33, - 22149 - 19968: jis0212<<14 | 0x15<<7 | 0x34, - 22150 - 19968: jis0208<<14 | 0x32<<7 | 0x44, - 22151 - 19968: jis0208<<14 | 0x12<<7 | 0x24, - 22152 - 19968: jis0212<<14 | 0x15<<7 | 0x35, - 22154 - 19968: jis0208<<14 | 0x32<<7 | 0x46, - 22155 - 19968: jis0212<<14 | 0x15<<7 | 0x36, - 22156 - 19968: jis0212<<14 | 0x15<<7 | 0x37, - 22159 - 19968: jis0208<<14 | 0x32<<7 | 0x49, - 22164 - 19968: jis0208<<14 | 0x32<<7 | 0x48, - 22165 - 19968: jis0212<<14 | 0x15<<7 | 0x38, - 22169 - 19968: jis0212<<14 | 0x15<<7 | 0x39, - 22170 - 19968: jis0212<<14 | 0x15<<7 | 0x3A, - 22173 - 19968: jis0212<<14 | 0x15<<7 | 0x3B, - 22174 - 19968: jis0212<<14 | 0x15<<7 | 0x3C, - 22175 - 19968: jis0212<<14 | 0x15<<7 | 0x3D, - 22176 - 19968: jis0208<<14 | 0x32<<7 | 0x47, - 22178 - 19968: jis0208<<14 | 0x26<<7 | 0x18, - 22181 - 19968: jis0208<<14 | 0x32<<7 | 0x4A, - 22182 - 19968: jis0212<<14 | 0x15<<7 | 0x3E, - 22183 - 19968: jis0212<<14 | 0x15<<7 | 0x3F, - 22184 - 19968: jis0212<<14 | 0x15<<7 | 0x40, - 22185 - 19968: jis0212<<14 | 0x15<<7 | 0x41, - 22187 - 19968: jis0212<<14 | 0x15<<7 | 0x42, - 22188 - 19968: jis0212<<14 | 0x15<<7 | 0x43, - 22189 - 19968: jis0212<<14 | 0x15<<7 | 0x44, - 22190 - 19968: jis0208<<14 | 0x32<<7 | 0x4B, - 22193 - 19968: jis0212<<14 | 0x15<<7 | 0x45, - 22195 - 19968: jis0212<<14 | 0x15<<7 | 0x46, - 22196 - 19968: jis0208<<14 | 0x32<<7 | 0x4D, - 22198 - 19968: jis0208<<14 | 0x32<<7 | 0x4C, - 22199 - 19968: jis0212<<14 | 0x15<<7 | 0x47, - 22204 - 19968: jis0208<<14 | 0x32<<7 | 0x4F, - 22206 - 19968: jis0212<<14 | 0x15<<7 | 0x48, - 22208 - 19968: jis0208<<14 | 0x32<<7 | 0x52, - 22209 - 19968: jis0208<<14 | 0x32<<7 | 0x50, - 22210 - 19968: jis0208<<14 | 0x32<<7 | 0x4E, - 22211 - 19968: jis0208<<14 | 0x32<<7 | 0x51, - 22213 - 19968: jis0212<<14 | 0x15<<7 | 0x49, - 22216 - 19968: jis0208<<14 | 0x32<<7 | 0x53, - 22217 - 19968: jis0212<<14 | 0x15<<7 | 0x4A, - 22218 - 19968: jis0212<<14 | 0x15<<7 | 0x4B, - 22219 - 19968: jis0212<<14 | 0x15<<7 | 0x4C, - 22220 - 19968: jis0212<<14 | 0x15<<7 | 0x4F, - 22221 - 19968: jis0212<<14 | 0x15<<7 | 0x50, - 22222 - 19968: jis0208<<14 | 0x32<<7 | 0x54, - 22223 - 19968: jis0212<<14 | 0x15<<7 | 0x4D, - 22224 - 19968: jis0212<<14 | 0x15<<7 | 0x4E, - 22225 - 19968: jis0208<<14 | 0x32<<7 | 0x55, - 22227 - 19968: jis0208<<14 | 0x32<<7 | 0x56, - 22231 - 19968: jis0208<<14 | 0x32<<7 | 0x57, - 22232 - 19968: jis0208<<14 | 0x30<<7 | 0x24, - 22233 - 19968: jis0212<<14 | 0x15<<7 | 0x51, - 22234 - 19968: jis0208<<14 | 0x1B<<7 | 0x5B, - 22235 - 19968: jis0208<<14 | 0x1A<<7 | 0x2C, - 22236 - 19968: jis0212<<14 | 0x15<<7 | 0x52, - 22237 - 19968: jis0212<<14 | 0x15<<7 | 0x53, - 22238 - 19968: jis0208<<14 | 0x11<<7 | 0x52, - 22239 - 19968: jis0212<<14 | 0x15<<7 | 0x54, - 22240 - 19968: jis0208<<14 | 0x0F<<7 | 0x57, - 22241 - 19968: jis0212<<14 | 0x15<<7 | 0x55, - 22243 - 19968: jis0208<<14 | 0x22<<7 | 0x23, - 22244 - 19968: jis0212<<14 | 0x15<<7 | 0x56, - 22245 - 19968: jis0212<<14 | 0x15<<7 | 0x57, - 22246 - 19968: jis0212<<14 | 0x15<<7 | 0x58, - 22247 - 19968: jis0212<<14 | 0x15<<7 | 0x59, - 22248 - 19968: jis0212<<14 | 0x15<<7 | 0x5A, - 22251 - 19968: jis0212<<14 | 0x15<<7 | 0x5C, - 22253 - 19968: jis0212<<14 | 0x15<<7 | 0x5D, - 22254 - 19968: jis0208<<14 | 0x32<<7 | 0x58, - 22256 - 19968: jis0208<<14 | 0x19<<7 | 0x03, - 22257 - 19968: jis0212<<14 | 0x15<<7 | 0x5B, - 22258 - 19968: jis0208<<14 | 0x0F<<7 | 0x2E, - 22259 - 19968: jis0208<<14 | 0x1E<<7 | 0x3D, - 22262 - 19968: jis0212<<14 | 0x16<<7 | 0x00, - 22263 - 19968: jis0212<<14 | 0x16<<7 | 0x01, - 22265 - 19968: jis0208<<14 | 0x32<<7 | 0x59, - 22266 - 19968: jis0208<<14 | 0x17<<7 | 0x26, - 22269 - 19968: jis0208<<14 | 0x18<<7 | 0x50, - 22271 - 19968: jis0208<<14 | 0x32<<7 | 0x5B, - 22272 - 19968: jis0208<<14 | 0x32<<7 | 0x5A, - 22273 - 19968: jis0212<<14 | 0x16<<7 | 0x02, - 22274 - 19968: jis0212<<14 | 0x16<<7 | 0x03, - 22275 - 19968: jis0208<<14 | 0x29<<7 | 0x3F, - 22276 - 19968: jis0208<<14 | 0x32<<7 | 0x5C, - 22279 - 19968: jis0212<<14 | 0x16<<7 | 0x04, - 22280 - 19968: jis0208<<14 | 0x33<<7 | 0x00, - 22281 - 19968: jis0208<<14 | 0x32<<7 | 0x5D, - 22282 - 19968: jis0212<<14 | 0x16<<7 | 0x05, - 22283 - 19968: jis0208<<14 | 0x33<<7 | 0x01, - 22284 - 19968: jis0212<<14 | 0x16<<7 | 0x06, - 22285 - 19968: jis0208<<14 | 0x33<<7 | 0x02, - 22287 - 19968: jis0208<<14 | 0x16<<7 | 0x56, - 22289 - 19968: jis0212<<14 | 0x16<<7 | 0x07, - 22290 - 19968: jis0208<<14 | 0x10<<7 | 0x3F, - 22291 - 19968: jis0208<<14 | 0x33<<7 | 0x03, - 22293 - 19968: jis0212<<14 | 0x16<<7 | 0x08, - 22294 - 19968: jis0208<<14 | 0x33<<7 | 0x05, - 22296 - 19968: jis0208<<14 | 0x33<<7 | 0x04, - 22298 - 19968: jis0212<<14 | 0x16<<7 | 0x09, - 22299 - 19968: jis0212<<14 | 0x16<<7 | 0x0A, - 22300 - 19968: jis0208<<14 | 0x33<<7 | 0x07, - 22301 - 19968: jis0212<<14 | 0x16<<7 | 0x0B, - 22303 - 19968: jis0208<<14 | 0x24<<7 | 0x39, - 22304 - 19968: jis0212<<14 | 0x16<<7 | 0x0C, - 22306 - 19968: jis0212<<14 | 0x16<<7 | 0x0D, - 22307 - 19968: jis0212<<14 | 0x16<<7 | 0x0E, - 22308 - 19968: jis0212<<14 | 0x16<<7 | 0x0F, - 22309 - 19968: jis0212<<14 | 0x16<<7 | 0x10, - 22310 - 19968: jis0208<<14 | 0x33<<7 | 0x08, - 22311 - 19968: jis0208<<14 | 0x0F<<7 | 0x14, - 22312 - 19968: jis0208<<14 | 0x19<<7 | 0x3E, - 22313 - 19968: jis0212<<14 | 0x16<<7 | 0x11, - 22314 - 19968: jis0212<<14 | 0x16<<7 | 0x12, - 22316 - 19968: jis0212<<14 | 0x16<<7 | 0x13, - 22317 - 19968: jis0208<<14 | 0x16<<7 | 0x1C, - 22318 - 19968: jis0212<<14 | 0x16<<7 | 0x14, - 22319 - 19968: jis0212<<14 | 0x16<<7 | 0x15, - 22320 - 19968: jis0208<<14 | 0x22<<7 | 0x2E, - 22323 - 19968: jis0212<<14 | 0x16<<7 | 0x16, - 22324 - 19968: jis0212<<14 | 0x16<<7 | 0x17, - 22327 - 19968: jis0208<<14 | 0x33<<7 | 0x09, - 22328 - 19968: jis0208<<14 | 0x33<<7 | 0x0A, - 22331 - 19968: jis0208<<14 | 0x33<<7 | 0x0C, - 22333 - 19968: jis0212<<14 | 0x16<<7 | 0x18, - 22334 - 19968: jis0212<<14 | 0x16<<7 | 0x19, - 22335 - 19968: jis0212<<14 | 0x16<<7 | 0x1A, - 22336 - 19968: jis0208<<14 | 0x33<<7 | 0x0D, - 22338 - 19968: jis0208<<14 | 0x19<<7 | 0x43, - 22341 - 19968: jis0212<<14 | 0x16<<7 | 0x1B, - 22342 - 19968: jis0212<<14 | 0x16<<7 | 0x1C, - 22343 - 19968: jis0208<<14 | 0x15<<7 | 0x30, - 22346 - 19968: jis0208<<14 | 0x2A<<7 | 0x16, - 22348 - 19968: jis0212<<14 | 0x16<<7 | 0x1D, - 22349 - 19968: jis0212<<14 | 0x16<<7 | 0x1E, - 22350 - 19968: jis0208<<14 | 0x33<<7 | 0x0B, - 22351 - 19968: jis0208<<14 | 0x33<<7 | 0x0E, - 22352 - 19968: jis0208<<14 | 0x19<<7 | 0x20, - 22353 - 19968: jis0208<<14 | 0x18<<7 | 0x02, - 22354 - 19968: jis0212<<14 | 0x16<<7 | 0x1F, - 22361 - 19968: jis0208<<14 | 0x58<<7 | 0x39, - 22369 - 19968: jis0208<<14 | 0x33<<7 | 0x12, - 22370 - 19968: jis0212<<14 | 0x16<<7 | 0x20, - 22372 - 19968: jis0208<<14 | 0x19<<7 | 0x04, - 22373 - 19968: jis0208<<14 | 0x58<<7 | 0x3A, - 22374 - 19968: jis0208<<14 | 0x22<<7 | 0x12, - 22375 - 19968: jis0212<<14 | 0x16<<7 | 0x22, - 22376 - 19968: jis0212<<14 | 0x16<<7 | 0x23, - 22377 - 19968: jis0208<<14 | 0x33<<7 | 0x0F, - 22378 - 19968: jis0208<<14 | 0x23<<7 | 0x39, - 22379 - 19968: jis0212<<14 | 0x16<<7 | 0x24, - 22381 - 19968: jis0212<<14 | 0x16<<7 | 0x25, - 22382 - 19968: jis0212<<14 | 0x16<<7 | 0x26, - 22383 - 19968: jis0212<<14 | 0x16<<7 | 0x27, - 22384 - 19968: jis0212<<14 | 0x16<<7 | 0x28, - 22385 - 19968: jis0212<<14 | 0x16<<7 | 0x29, - 22387 - 19968: jis0212<<14 | 0x16<<7 | 0x2A, - 22388 - 19968: jis0212<<14 | 0x16<<7 | 0x2B, - 22389 - 19968: jis0212<<14 | 0x16<<7 | 0x2C, - 22391 - 19968: jis0212<<14 | 0x16<<7 | 0x2D, - 22393 - 19968: jis0212<<14 | 0x16<<7 | 0x2E, - 22394 - 19968: jis0212<<14 | 0x16<<7 | 0x2F, - 22395 - 19968: jis0212<<14 | 0x16<<7 | 0x30, - 22396 - 19968: jis0212<<14 | 0x16<<7 | 0x31, - 22398 - 19968: jis0212<<14 | 0x16<<7 | 0x32, - 22399 - 19968: jis0208<<14 | 0x33<<7 | 0x13, - 22401 - 19968: jis0212<<14 | 0x16<<7 | 0x33, - 22402 - 19968: jis0208<<14 | 0x1E<<7 | 0x41, - 22403 - 19968: jis0212<<14 | 0x16<<7 | 0x34, - 22408 - 19968: jis0208<<14 | 0x33<<7 | 0x11, - 22409 - 19968: jis0208<<14 | 0x33<<7 | 0x14, - 22411 - 19968: jis0208<<14 | 0x16<<7 | 0x1E, - 22412 - 19968: jis0212<<14 | 0x16<<7 | 0x35, - 22419 - 19968: jis0208<<14 | 0x33<<7 | 0x15, - 22420 - 19968: jis0212<<14 | 0x16<<7 | 0x36, - 22421 - 19968: jis0212<<14 | 0x16<<7 | 0x3F, - 22423 - 19968: jis0212<<14 | 0x16<<7 | 0x37, - 22425 - 19968: jis0212<<14 | 0x16<<7 | 0x38, - 22426 - 19968: jis0212<<14 | 0x16<<7 | 0x39, - 22428 - 19968: jis0212<<14 | 0x16<<7 | 0x3A, - 22429 - 19968: jis0212<<14 | 0x16<<7 | 0x3B, - 22430 - 19968: jis0212<<14 | 0x16<<7 | 0x3C, - 22431 - 19968: jis0212<<14 | 0x16<<7 | 0x3D, - 22432 - 19968: jis0208<<14 | 0x33<<7 | 0x16, - 22433 - 19968: jis0212<<14 | 0x16<<7 | 0x3E, - 22434 - 19968: jis0208<<14 | 0x18<<7 | 0x03, - 22435 - 19968: jis0208<<14 | 0x12<<7 | 0x1F, - 22436 - 19968: jis0208<<14 | 0x33<<7 | 0x18, - 22439 - 19968: jis0212<<14 | 0x16<<7 | 0x40, - 22440 - 19968: jis0212<<14 | 0x16<<7 | 0x41, - 22441 - 19968: jis0212<<14 | 0x16<<7 | 0x42, - 22442 - 19968: jis0208<<14 | 0x33<<7 | 0x19, - 22444 - 19968: jis0208<<14 | 0x58<<7 | 0x3B, - 22448 - 19968: jis0208<<14 | 0x33<<7 | 0x1A, - 22451 - 19968: jis0208<<14 | 0x33<<7 | 0x17, - 22456 - 19968: jis0212<<14 | 0x16<<7 | 0x44, - 22461 - 19968: jis0212<<14 | 0x16<<7 | 0x45, - 22464 - 19968: jis0208<<14 | 0x33<<7 | 0x10, - 22467 - 19968: jis0208<<14 | 0x33<<7 | 0x1B, - 22470 - 19968: jis0208<<14 | 0x33<<7 | 0x1C, - 22471 - 19968: jis0208<<14 | 0x58<<7 | 0x3D, - 22472 - 19968: jis0208<<14 | 0x58<<7 | 0x3C, - 22475 - 19968: jis0208<<14 | 0x2A<<7 | 0x43, - 22476 - 19968: jis0212<<14 | 0x16<<7 | 0x48, - 22478 - 19968: jis0208<<14 | 0x1D<<7 | 0x4A, - 22479 - 19968: jis0212<<14 | 0x16<<7 | 0x49, - 22482 - 19968: jis0208<<14 | 0x33<<7 | 0x1E, - 22483 - 19968: jis0208<<14 | 0x33<<7 | 0x1F, - 22484 - 19968: jis0208<<14 | 0x33<<7 | 0x1D, - 22485 - 19968: jis0212<<14 | 0x16<<7 | 0x4A, - 22486 - 19968: jis0208<<14 | 0x33<<7 | 0x21, - 22492 - 19968: jis0208<<14 | 0x26<<7 | 0x17, - 22493 - 19968: jis0212<<14 | 0x16<<7 | 0x4B, - 22494 - 19968: jis0212<<14 | 0x16<<7 | 0x4C, - 22495 - 19968: jis0208<<14 | 0x0F<<7 | 0x47, - 22496 - 19968: jis0208<<14 | 0x28<<7 | 0x35, - 22497 - 19968: jis0212<<14 | 0x16<<7 | 0x5D, - 22499 - 19968: jis0208<<14 | 0x33<<7 | 0x22, - 22500 - 19968: jis0212<<14 | 0x16<<7 | 0x4D, - 22502 - 19968: jis0212<<14 | 0x16<<7 | 0x4E, - 22503 - 19968: jis0212<<14 | 0x16<<7 | 0x4F, - 22505 - 19968: jis0212<<14 | 0x16<<7 | 0x50, - 22509 - 19968: jis0212<<14 | 0x16<<7 | 0x51, - 22512 - 19968: jis0212<<14 | 0x16<<7 | 0x52, - 22516 - 19968: jis0208<<14 | 0x1D<<7 | 0x5C, - 22517 - 19968: jis0212<<14 | 0x16<<7 | 0x53, - 22518 - 19968: jis0212<<14 | 0x16<<7 | 0x54, - 22519 - 19968: jis0208<<14 | 0x1B<<7 | 0x18, - 22520 - 19968: jis0212<<14 | 0x16<<7 | 0x55, - 22521 - 19968: jis0208<<14 | 0x26<<7 | 0x3C, - 22522 - 19968: jis0208<<14 | 0x13<<7 | 0x4F, - 22524 - 19968: jis0208<<14 | 0x19<<7 | 0x4A, - 22525 - 19968: jis0212<<14 | 0x16<<7 | 0x56, - 22526 - 19968: jis0212<<14 | 0x16<<7 | 0x57, - 22527 - 19968: jis0212<<14 | 0x16<<7 | 0x58, - 22528 - 19968: jis0208<<14 | 0x2A<<7 | 0x38, - 22530 - 19968: jis0208<<14 | 0x25<<7 | 0x11, - 22531 - 19968: jis0212<<14 | 0x16<<7 | 0x59, - 22532 - 19968: jis0212<<14 | 0x16<<7 | 0x5A, - 22533 - 19968: jis0208<<14 | 0x16<<7 | 0x57, - 22534 - 19968: jis0208<<14 | 0x21<<7 | 0x2E, - 22536 - 19968: jis0212<<14 | 0x16<<7 | 0x5B, - 22537 - 19968: jis0212<<14 | 0x16<<7 | 0x5C, - 22538 - 19968: jis0208<<14 | 0x33<<7 | 0x20, - 22539 - 19968: jis0208<<14 | 0x33<<7 | 0x23, - 22540 - 19968: jis0212<<14 | 0x17<<7 | 0x00, - 22541 - 19968: jis0212<<14 | 0x17<<7 | 0x01, - 22549 - 19968: jis0208<<14 | 0x21<<7 | 0x23, - 22553 - 19968: jis0208<<14 | 0x33<<7 | 0x24, - 22555 - 19968: jis0212<<14 | 0x17<<7 | 0x02, - 22557 - 19968: jis0208<<14 | 0x33<<7 | 0x25, - 22558 - 19968: jis0212<<14 | 0x17<<7 | 0x03, - 22559 - 19968: jis0212<<14 | 0x17<<7 | 0x04, - 22560 - 19968: jis0212<<14 | 0x17<<7 | 0x05, - 22561 - 19968: jis0208<<14 | 0x33<<7 | 0x27, - 22564 - 19968: jis0208<<14 | 0x23<<7 | 0x48, - 22566 - 19968: jis0212<<14 | 0x17<<7 | 0x06, - 22567 - 19968: jis0212<<14 | 0x17<<7 | 0x07, - 22570 - 19968: jis0208<<14 | 0x13<<7 | 0x0D, - 22573 - 19968: jis0212<<14 | 0x17<<7 | 0x08, - 22575 - 19968: jis0208<<14 | 0x53<<7 | 0x00, - 22576 - 19968: jis0208<<14 | 0x10<<7 | 0x40, - 22577 - 19968: jis0208<<14 | 0x29<<7 | 0x52, - 22578 - 19968: jis0212<<14 | 0x17<<7 | 0x09, - 22580 - 19968: jis0208<<14 | 0x1D<<7 | 0x4B, - 22581 - 19968: jis0208<<14 | 0x24<<7 | 0x27, - 22585 - 19968: jis0212<<14 | 0x17<<7 | 0x0A, - 22586 - 19968: jis0208<<14 | 0x19<<7 | 0x45, - 22589 - 19968: jis0208<<14 | 0x33<<7 | 0x2D, - 22591 - 19968: jis0212<<14 | 0x17<<7 | 0x0B, - 22592 - 19968: jis0208<<14 | 0x29<<7 | 0x1C, - 22593 - 19968: jis0208<<14 | 0x2D<<7 | 0x3C, - 22601 - 19968: jis0212<<14 | 0x17<<7 | 0x0C, - 22602 - 19968: jis0208<<14 | 0x11<<7 | 0x53, - 22603 - 19968: jis0208<<14 | 0x33<<7 | 0x29, - 22604 - 19968: jis0212<<14 | 0x17<<7 | 0x0D, - 22605 - 19968: jis0212<<14 | 0x17<<7 | 0x0E, - 22607 - 19968: jis0212<<14 | 0x17<<7 | 0x0F, - 22608 - 19968: jis0212<<14 | 0x17<<7 | 0x10, - 22609 - 19968: jis0208<<14 | 0x20<<7 | 0x19, - 22610 - 19968: jis0208<<14 | 0x33<<7 | 0x2C, - 22612 - 19968: jis0208<<14 | 0x24<<7 | 0x42, - 22613 - 19968: jis0212<<14 | 0x17<<7 | 0x11, - 22615 - 19968: jis0208<<14 | 0x24<<7 | 0x28, - 22616 - 19968: jis0208<<14 | 0x24<<7 | 0x43, - 22617 - 19968: jis0208<<14 | 0x27<<7 | 0x18, - 22618 - 19968: jis0208<<14 | 0x23<<7 | 0x2C, - 22622 - 19968: jis0208<<14 | 0x19<<7 | 0x28, - 22623 - 19968: jis0212<<14 | 0x17<<7 | 0x12, - 22625 - 19968: jis0212<<14 | 0x17<<7 | 0x13, - 22626 - 19968: jis0208<<14 | 0x33<<7 | 0x28, - 22628 - 19968: jis0212<<14 | 0x17<<7 | 0x14, - 22631 - 19968: jis0212<<14 | 0x17<<7 | 0x15, - 22632 - 19968: jis0212<<14 | 0x17<<7 | 0x16, - 22633 - 19968: jis0208<<14 | 0x10<<7 | 0x55, - 22635 - 19968: jis0208<<14 | 0x24<<7 | 0x15, - 22640 - 19968: jis0208<<14 | 0x33<<7 | 0x2A, - 22642 - 19968: jis0208<<14 | 0x33<<7 | 0x26, - 22645 - 19968: jis0208<<14 | 0x1E<<7 | 0x2F, - 22648 - 19968: jis0212<<14 | 0x17<<7 | 0x17, - 22649 - 19968: jis0208<<14 | 0x33<<7 | 0x2E, - 22652 - 19968: jis0212<<14 | 0x17<<7 | 0x18, - 22654 - 19968: jis0208<<14 | 0x1C<<7 | 0x2D, - 22655 - 19968: jis0212<<14 | 0x17<<7 | 0x19, - 22656 - 19968: jis0212<<14 | 0x17<<7 | 0x1A, - 22657 - 19968: jis0212<<14 | 0x17<<7 | 0x1B, - 22659 - 19968: jis0208<<14 | 0x15<<7 | 0x0C, - 22661 - 19968: jis0208<<14 | 0x33<<7 | 0x2F, - 22663 - 19968: jis0212<<14 | 0x17<<7 | 0x1C, - 22664 - 19968: jis0212<<14 | 0x17<<7 | 0x1D, - 22665 - 19968: jis0212<<14 | 0x17<<7 | 0x1E, - 22666 - 19968: jis0212<<14 | 0x17<<7 | 0x1F, - 22668 - 19968: jis0212<<14 | 0x17<<7 | 0x20, - 22669 - 19968: jis0212<<14 | 0x17<<7 | 0x21, - 22671 - 19968: jis0212<<14 | 0x17<<7 | 0x22, - 22672 - 19968: jis0212<<14 | 0x17<<7 | 0x23, - 22675 - 19968: jis0208<<14 | 0x29<<7 | 0x47, - 22676 - 19968: jis0212<<14 | 0x17<<7 | 0x24, - 22678 - 19968: jis0212<<14 | 0x17<<7 | 0x25, - 22679 - 19968: jis0208<<14 | 0x20<<7 | 0x5C, - 22684 - 19968: jis0208<<14 | 0x23<<7 | 0x25, - 22685 - 19968: jis0212<<14 | 0x17<<7 | 0x26, - 22686 - 19968: jis0208<<14 | 0x58<<7 | 0x40, - 22687 - 19968: jis0208<<14 | 0x33<<7 | 0x31, - 22688 - 19968: jis0212<<14 | 0x17<<7 | 0x27, - 22689 - 19968: jis0212<<14 | 0x17<<7 | 0x28, - 22690 - 19968: jis0212<<14 | 0x17<<7 | 0x29, - 22694 - 19968: jis0212<<14 | 0x17<<7 | 0x2A, - 22696 - 19968: jis0208<<14 | 0x2A<<7 | 0x2E, - 22697 - 19968: jis0212<<14 | 0x17<<7 | 0x2B, - 22699 - 19968: jis0208<<14 | 0x33<<7 | 0x32, - 22702 - 19968: jis0208<<14 | 0x33<<7 | 0x37, - 22705 - 19968: jis0212<<14 | 0x17<<7 | 0x2C, - 22706 - 19968: jis0208<<14 | 0x58<<7 | 0x41, - 22707 - 19968: jis0208<<14 | 0x29<<7 | 0x0E, - 22712 - 19968: jis0208<<14 | 0x33<<7 | 0x36, - 22713 - 19968: jis0208<<14 | 0x33<<7 | 0x30, - 22714 - 19968: jis0208<<14 | 0x33<<7 | 0x33, - 22715 - 19968: jis0208<<14 | 0x33<<7 | 0x35, - 22716 - 19968: jis0212<<14 | 0x17<<7 | 0x2F, - 22718 - 19968: jis0208<<14 | 0x19<<7 | 0x05, - 22721 - 19968: jis0208<<14 | 0x29<<7 | 0x28, - 22722 - 19968: jis0212<<14 | 0x17<<7 | 0x30, - 22724 - 19968: jis0212<<14 | 0x17<<7 | 0x2E, - 22725 - 19968: jis0208<<14 | 0x33<<7 | 0x38, - 22727 - 19968: jis0208<<14 | 0x22<<7 | 0x24, - 22728 - 19968: jis0212<<14 | 0x17<<7 | 0x31, - 22730 - 19968: jis0208<<14 | 0x11<<7 | 0x54, - 22732 - 19968: jis0208<<14 | 0x1D<<7 | 0x4C, - 22733 - 19968: jis0212<<14 | 0x17<<7 | 0x32, - 22734 - 19968: jis0212<<14 | 0x17<<7 | 0x33, - 22736 - 19968: jis0212<<14 | 0x17<<7 | 0x34, - 22737 - 19968: jis0208<<14 | 0x33<<7 | 0x3A, - 22738 - 19968: jis0212<<14 | 0x17<<7 | 0x35, - 22739 - 19968: jis0208<<14 | 0x33<<7 | 0x39, - 22740 - 19968: jis0212<<14 | 0x17<<7 | 0x36, - 22741 - 19968: jis0208<<14 | 0x18<<7 | 0x47, - 22742 - 19968: jis0212<<14 | 0x17<<7 | 0x37, - 22743 - 19968: jis0208<<14 | 0x33<<7 | 0x3B, - 22744 - 19968: jis0208<<14 | 0x33<<7 | 0x3D, - 22745 - 19968: jis0208<<14 | 0x33<<7 | 0x3C, - 22746 - 19968: jis0212<<14 | 0x17<<7 | 0x38, - 22748 - 19968: jis0208<<14 | 0x33<<7 | 0x3F, - 22749 - 19968: jis0212<<14 | 0x17<<7 | 0x39, - 22750 - 19968: jis0208<<14 | 0x33<<7 | 0x34, - 22751 - 19968: jis0208<<14 | 0x33<<7 | 0x41, - 22753 - 19968: jis0212<<14 | 0x17<<7 | 0x3A, - 22754 - 19968: jis0212<<14 | 0x17<<7 | 0x3B, - 22756 - 19968: jis0208<<14 | 0x33<<7 | 0x40, - 22757 - 19968: jis0208<<14 | 0x33<<7 | 0x3E, - 22761 - 19968: jis0212<<14 | 0x17<<7 | 0x3C, - 22763 - 19968: jis0208<<14 | 0x1A<<7 | 0x2D, - 22764 - 19968: jis0208<<14 | 0x1E<<7 | 0x30, - 22766 - 19968: jis0208<<14 | 0x20<<7 | 0x33, - 22767 - 19968: jis0208<<14 | 0x33<<7 | 0x42, - 22768 - 19968: jis0208<<14 | 0x1F<<7 | 0x1B, - 22769 - 19968: jis0208<<14 | 0x0F<<7 | 0x4C, - 22770 - 19968: jis0208<<14 | 0x26<<7 | 0x43, - 22771 - 19968: jis0212<<14 | 0x17<<7 | 0x3D, - 22775 - 19968: jis0208<<14 | 0x23<<7 | 0x3A, - 22777 - 19968: jis0208<<14 | 0x33<<7 | 0x44, - 22778 - 19968: jis0208<<14 | 0x33<<7 | 0x43, - 22779 - 19968: jis0208<<14 | 0x33<<7 | 0x45, - 22780 - 19968: jis0208<<14 | 0x33<<7 | 0x46, - 22781 - 19968: jis0208<<14 | 0x33<<7 | 0x47, - 22786 - 19968: jis0208<<14 | 0x33<<7 | 0x48, - 22789 - 19968: jis0212<<14 | 0x17<<7 | 0x3E, - 22790 - 19968: jis0212<<14 | 0x17<<7 | 0x3F, - 22793 - 19968: jis0208<<14 | 0x29<<7 | 0x30, - 22794 - 19968: jis0208<<14 | 0x33<<7 | 0x49, - 22795 - 19968: jis0208<<14 | 0x58<<7 | 0x42, - 22796 - 19968: jis0212<<14 | 0x17<<7 | 0x41, - 22799 - 19968: jis0208<<14 | 0x11<<7 | 0x25, - 22800 - 19968: jis0208<<14 | 0x33<<7 | 0x4A, - 22802 - 19968: jis0212<<14 | 0x17<<7 | 0x42, - 22803 - 19968: jis0212<<14 | 0x17<<7 | 0x43, - 22804 - 19968: jis0212<<14 | 0x17<<7 | 0x44, - 22805 - 19968: jis0208<<14 | 0x2C<<7 | 0x1B, - 22806 - 19968: jis0208<<14 | 0x12<<7 | 0x0F, - 22808 - 19968: jis0208<<14 | 0x31<<7 | 0x28, - 22809 - 19968: jis0208<<14 | 0x1C<<7 | 0x27, - 22810 - 19968: jis0208<<14 | 0x21<<7 | 0x1E, - 22811 - 19968: jis0208<<14 | 0x33<<7 | 0x4B, - 22812 - 19968: jis0208<<14 | 0x2B<<7 | 0x4A, - 22813 - 19968: jis0212<<14 | 0x17<<7 | 0x46, - 22817 - 19968: jis0212<<14 | 0x17<<7 | 0x47, - 22818 - 19968: jis0208<<14 | 0x2B<<7 | 0x13, - 22819 - 19968: jis0212<<14 | 0x17<<7 | 0x48, - 22820 - 19968: jis0212<<14 | 0x17<<7 | 0x49, - 22821 - 19968: jis0208<<14 | 0x33<<7 | 0x4D, - 22823 - 19968: jis0208<<14 | 0x21<<7 | 0x46, - 22824 - 19968: jis0212<<14 | 0x17<<7 | 0x4A, - 22825 - 19968: jis0208<<14 | 0x24<<7 | 0x16, - 22826 - 19968: jis0208<<14 | 0x21<<7 | 0x1F, - 22827 - 19968: jis0208<<14 | 0x28<<7 | 0x36, - 22828 - 19968: jis0208<<14 | 0x33<<7 | 0x4E, - 22829 - 19968: jis0208<<14 | 0x33<<7 | 0x4F, - 22830 - 19968: jis0208<<14 | 0x10<<7 | 0x5A, - 22831 - 19968: jis0212<<14 | 0x17<<7 | 0x4B, - 22832 - 19968: jis0212<<14 | 0x17<<7 | 0x4C, - 22833 - 19968: jis0208<<14 | 0x1B<<7 | 0x19, - 22834 - 19968: jis0208<<14 | 0x33<<7 | 0x50, - 22835 - 19968: jis0212<<14 | 0x17<<7 | 0x4D, - 22837 - 19968: jis0212<<14 | 0x17<<7 | 0x4E, - 22838 - 19968: jis0212<<14 | 0x17<<7 | 0x4F, - 22839 - 19968: jis0208<<14 | 0x0F<<7 | 0x2F, - 22840 - 19968: jis0208<<14 | 0x33<<7 | 0x51, - 22846 - 19968: jis0208<<14 | 0x33<<7 | 0x52, - 22847 - 19968: jis0212<<14 | 0x17<<7 | 0x50, - 22851 - 19968: jis0212<<14 | 0x17<<7 | 0x51, - 22852 - 19968: jis0208<<14 | 0x10<<7 | 0x41, - 22854 - 19968: jis0212<<14 | 0x17<<7 | 0x52, - 22855 - 19968: jis0208<<14 | 0x13<<7 | 0x50, - 22856 - 19968: jis0208<<14 | 0x25<<7 | 0x3F, - 22857 - 19968: jis0208<<14 | 0x29<<7 | 0x53, - 22862 - 19968: jis0208<<14 | 0x33<<7 | 0x56, - 22863 - 19968: jis0208<<14 | 0x20<<7 | 0x34, - 22864 - 19968: jis0208<<14 | 0x33<<7 | 0x55, - 22865 - 19968: jis0208<<14 | 0x16<<7 | 0x1F, - 22866 - 19968: jis0212<<14 | 0x17<<7 | 0x53, - 22867 - 19968: jis0208<<14 | 0x58<<7 | 0x43, - 22868 - 19968: jis0208<<14 | 0x2A<<7 | 0x3A, - 22869 - 19968: jis0208<<14 | 0x33<<7 | 0x54, - 22871 - 19968: jis0208<<14 | 0x24<<7 | 0x44, - 22872 - 19968: jis0208<<14 | 0x33<<7 | 0x58, - 22873 - 19968: jis0212<<14 | 0x17<<7 | 0x55, - 22874 - 19968: jis0208<<14 | 0x33<<7 | 0x57, - 22875 - 19968: jis0208<<14 | 0x58<<7 | 0x44, - 22877 - 19968: jis0208<<14 | 0x58<<7 | 0x45, - 22878 - 19968: jis0212<<14 | 0x17<<7 | 0x58, - 22879 - 19968: jis0212<<14 | 0x17<<7 | 0x59, - 22880 - 19968: jis0208<<14 | 0x33<<7 | 0x5A, - 22881 - 19968: jis0212<<14 | 0x17<<7 | 0x5A, - 22882 - 19968: jis0208<<14 | 0x33<<7 | 0x59, - 22883 - 19968: jis0208<<14 | 0x58<<7 | 0x46, - 22885 - 19968: jis0208<<14 | 0x10<<7 | 0x5B, - 22887 - 19968: jis0208<<14 | 0x33<<7 | 0x5B, - 22888 - 19968: jis0208<<14 | 0x1D<<7 | 0x08, - 22889 - 19968: jis0208<<14 | 0x33<<7 | 0x5D, - 22890 - 19968: jis0208<<14 | 0x22<<7 | 0x04, - 22891 - 19968: jis0212<<14 | 0x17<<7 | 0x5C, - 22892 - 19968: jis0208<<14 | 0x33<<7 | 0x5C, - 22893 - 19968: jis0212<<14 | 0x17<<7 | 0x5D, - 22894 - 19968: jis0208<<14 | 0x29<<7 | 0x12, - 22895 - 19968: jis0212<<14 | 0x18<<7 | 0x00, - 22898 - 19968: jis0212<<14 | 0x18<<7 | 0x01, - 22899 - 19968: jis0208<<14 | 0x1C<<7 | 0x56, - 22900 - 19968: jis0208<<14 | 0x24<<7 | 0x3A, - 22901 - 19968: jis0212<<14 | 0x18<<7 | 0x02, - 22902 - 19968: jis0212<<14 | 0x18<<7 | 0x03, - 22904 - 19968: jis0208<<14 | 0x34<<7 | 0x00, - 22905 - 19968: jis0212<<14 | 0x18<<7 | 0x04, - 22907 - 19968: jis0212<<14 | 0x18<<7 | 0x05, - 22908 - 19968: jis0212<<14 | 0x18<<7 | 0x06, - 22909 - 19968: jis0208<<14 | 0x18<<7 | 0x04, - 22913 - 19968: jis0208<<14 | 0x34<<7 | 0x01, - 22914 - 19968: jis0208<<14 | 0x26<<7 | 0x00, - 22915 - 19968: jis0208<<14 | 0x27<<7 | 0x3D, - 22916 - 19968: jis0208<<14 | 0x2B<<7 | 0x30, - 22922 - 19968: jis0208<<14 | 0x26<<7 | 0x04, - 22923 - 19968: jis0212<<14 | 0x18<<7 | 0x07, - 22924 - 19968: jis0212<<14 | 0x18<<7 | 0x08, - 22925 - 19968: jis0208<<14 | 0x34<<7 | 0x0A, - 22926 - 19968: jis0212<<14 | 0x18<<7 | 0x09, - 22930 - 19968: jis0212<<14 | 0x18<<7 | 0x0A, - 22931 - 19968: jis0208<<14 | 0x14<<7 | 0x17, - 22933 - 19968: jis0212<<14 | 0x18<<7 | 0x0B, - 22934 - 19968: jis0208<<14 | 0x2C<<7 | 0x24, - 22935 - 19968: jis0212<<14 | 0x18<<7 | 0x0C, - 22937 - 19968: jis0208<<14 | 0x2B<<7 | 0x0E, - 22939 - 19968: jis0208<<14 | 0x35<<7 | 0x0B, - 22941 - 19968: jis0208<<14 | 0x34<<7 | 0x02, - 22943 - 19968: jis0212<<14 | 0x18<<7 | 0x0D, - 22947 - 19968: jis0208<<14 | 0x34<<7 | 0x05, - 22948 - 19968: jis0208<<14 | 0x58<<7 | 0x47, - 22949 - 19968: jis0208<<14 | 0x21<<7 | 0x24, - 22951 - 19968: jis0212<<14 | 0x18<<7 | 0x0F, - 22952 - 19968: jis0208<<14 | 0x2A<<7 | 0x17, - 22956 - 19968: jis0208<<14 | 0x24<<7 | 0x29, - 22957 - 19968: jis0212<<14 | 0x18<<7 | 0x10, - 22958 - 19968: jis0212<<14 | 0x18<<7 | 0x11, - 22959 - 19968: jis0212<<14 | 0x18<<7 | 0x12, - 22960 - 19968: jis0212<<14 | 0x18<<7 | 0x13, - 22962 - 19968: jis0208<<14 | 0x34<<7 | 0x06, - 22963 - 19968: jis0212<<14 | 0x18<<7 | 0x14, - 22967 - 19968: jis0212<<14 | 0x18<<7 | 0x15, - 22969 - 19968: jis0208<<14 | 0x2A<<7 | 0x44, - 22970 - 19968: jis0208<<14 | 0x58<<7 | 0x48, - 22971 - 19968: jis0208<<14 | 0x19<<7 | 0x29, - 22972 - 19968: jis0212<<14 | 0x18<<7 | 0x17, - 22974 - 19968: jis0208<<14 | 0x1D<<7 | 0x09, - 22977 - 19968: jis0212<<14 | 0x18<<7 | 0x18, - 22979 - 19968: jis0212<<14 | 0x18<<7 | 0x19, - 22980 - 19968: jis0212<<14 | 0x18<<7 | 0x1A, - 22982 - 19968: jis0208<<14 | 0x34<<7 | 0x07, - 22984 - 19968: jis0212<<14 | 0x18<<7 | 0x1B, - 22985 - 19968: jis0208<<14 | 0x1A<<7 | 0x2F, - 22986 - 19968: jis0212<<14 | 0x18<<7 | 0x1C, - 22987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2E, - 22989 - 19968: jis0212<<14 | 0x18<<7 | 0x1D, - 22992 - 19968: jis0208<<14 | 0x0F<<7 | 0x18, - 22993 - 19968: jis0208<<14 | 0x17<<7 | 0x27, - 22994 - 19968: jis0212<<14 | 0x18<<7 | 0x1E, - 22995 - 19968: jis0208<<14 | 0x1F<<7 | 0x0A, - 22996 - 19968: jis0208<<14 | 0x0F<<7 | 0x30, - 23001 - 19968: jis0208<<14 | 0x34<<7 | 0x0B, - 23002 - 19968: jis0208<<14 | 0x34<<7 | 0x0C, - 23004 - 19968: jis0208<<14 | 0x34<<7 | 0x09, - 23005 - 19968: jis0212<<14 | 0x18<<7 | 0x1F, - 23006 - 19968: jis0212<<14 | 0x18<<7 | 0x20, - 23007 - 19968: jis0212<<14 | 0x18<<7 | 0x21, - 23011 - 19968: jis0212<<14 | 0x18<<7 | 0x22, - 23012 - 19968: jis0212<<14 | 0x18<<7 | 0x23, - 23013 - 19968: jis0208<<14 | 0x10<<7 | 0x17, - 23014 - 19968: jis0208<<14 | 0x13<<7 | 0x0E, - 23015 - 19968: jis0212<<14 | 0x18<<7 | 0x24, - 23016 - 19968: jis0208<<14 | 0x34<<7 | 0x08, - 23018 - 19968: jis0208<<14 | 0x2B<<7 | 0x24, - 23019 - 19968: jis0208<<14 | 0x28<<7 | 0x10, - 23022 - 19968: jis0212<<14 | 0x18<<7 | 0x25, - 23023 - 19968: jis0212<<14 | 0x18<<7 | 0x26, - 23025 - 19968: jis0212<<14 | 0x18<<7 | 0x27, - 23026 - 19968: jis0212<<14 | 0x18<<7 | 0x28, - 23028 - 19968: jis0212<<14 | 0x18<<7 | 0x29, - 23030 - 19968: jis0208<<14 | 0x0F<<7 | 0x07, - 23031 - 19968: jis0212<<14 | 0x18<<7 | 0x2A, - 23035 - 19968: jis0208<<14 | 0x0F<<7 | 0x58, - 23039 - 19968: jis0208<<14 | 0x1A<<7 | 0x30, - 23040 - 19968: jis0212<<14 | 0x18<<7 | 0x2B, - 23041 - 19968: jis0208<<14 | 0x0F<<7 | 0x31, - 23043 - 19968: jis0208<<14 | 0x0F<<7 | 0x02, - 23044 - 19968: jis0212<<14 | 0x18<<7 | 0x2C, - 23049 - 19968: jis0208<<14 | 0x34<<7 | 0x11, - 23052 - 19968: jis0212<<14 | 0x18<<7 | 0x2D, - 23053 - 19968: jis0212<<14 | 0x18<<7 | 0x2E, - 23054 - 19968: jis0212<<14 | 0x18<<7 | 0x2F, - 23057 - 19968: jis0208<<14 | 0x34<<7 | 0x0F, - 23058 - 19968: jis0212<<14 | 0x18<<7 | 0x30, - 23059 - 19968: jis0212<<14 | 0x18<<7 | 0x31, - 23064 - 19968: jis0208<<14 | 0x2B<<7 | 0x1B, - 23066 - 19968: jis0208<<14 | 0x34<<7 | 0x12, - 23068 - 19968: jis0208<<14 | 0x34<<7 | 0x10, - 23070 - 19968: jis0212<<14 | 0x18<<7 | 0x32, - 23071 - 19968: jis0208<<14 | 0x34<<7 | 0x0E, - 23072 - 19968: jis0208<<14 | 0x1E<<7 | 0x10, - 23075 - 19968: jis0212<<14 | 0x18<<7 | 0x33, - 23076 - 19968: jis0212<<14 | 0x18<<7 | 0x34, - 23077 - 19968: jis0208<<14 | 0x34<<7 | 0x0D, - 23079 - 19968: jis0212<<14 | 0x18<<7 | 0x35, - 23080 - 19968: jis0212<<14 | 0x18<<7 | 0x36, - 23081 - 19968: jis0208<<14 | 0x29<<7 | 0x39, - 23082 - 19968: jis0212<<14 | 0x18<<7 | 0x37, - 23085 - 19968: jis0212<<14 | 0x18<<7 | 0x38, - 23087 - 19968: jis0208<<14 | 0x17<<7 | 0x43, - 23088 - 19968: jis0212<<14 | 0x18<<7 | 0x39, - 23093 - 19968: jis0208<<14 | 0x34<<7 | 0x16, - 23094 - 19968: jis0208<<14 | 0x34<<7 | 0x17, - 23100 - 19968: jis0208<<14 | 0x1D<<7 | 0x0A, - 23104 - 19968: jis0208<<14 | 0x34<<7 | 0x13, - 23105 - 19968: jis0208<<14 | 0x2E<<7 | 0x0B, - 23108 - 19968: jis0212<<14 | 0x18<<7 | 0x3A, - 23109 - 19968: jis0212<<14 | 0x18<<7 | 0x3B, - 23110 - 19968: jis0208<<14 | 0x26<<7 | 0x2B, - 23111 - 19968: jis0212<<14 | 0x18<<7 | 0x3C, - 23112 - 19968: jis0212<<14 | 0x18<<7 | 0x3D, - 23113 - 19968: jis0208<<14 | 0x34<<7 | 0x15, - 23116 - 19968: jis0212<<14 | 0x18<<7 | 0x3E, - 23120 - 19968: jis0212<<14 | 0x18<<7 | 0x3F, - 23125 - 19968: jis0212<<14 | 0x18<<7 | 0x40, - 23130 - 19968: jis0208<<14 | 0x19<<7 | 0x06, - 23134 - 19968: jis0212<<14 | 0x18<<7 | 0x41, - 23138 - 19968: jis0208<<14 | 0x34<<7 | 0x18, - 23139 - 19968: jis0212<<14 | 0x18<<7 | 0x42, - 23141 - 19968: jis0212<<14 | 0x18<<7 | 0x43, - 23142 - 19968: jis0208<<14 | 0x28<<7 | 0x37, - 23143 - 19968: jis0212<<14 | 0x18<<7 | 0x44, - 23146 - 19968: jis0208<<14 | 0x34<<7 | 0x19, - 23148 - 19968: jis0208<<14 | 0x34<<7 | 0x14, - 23149 - 19968: jis0212<<14 | 0x18<<7 | 0x45, - 23159 - 19968: jis0212<<14 | 0x18<<7 | 0x46, - 23162 - 19968: jis0212<<14 | 0x18<<7 | 0x47, - 23163 - 19968: jis0212<<14 | 0x18<<7 | 0x48, - 23166 - 19968: jis0212<<14 | 0x18<<7 | 0x49, - 23167 - 19968: jis0208<<14 | 0x2B<<7 | 0x1A, - 23179 - 19968: jis0212<<14 | 0x18<<7 | 0x4A, - 23184 - 19968: jis0212<<14 | 0x18<<7 | 0x4B, - 23186 - 19968: jis0208<<14 | 0x26<<7 | 0x3D, - 23187 - 19968: jis0212<<14 | 0x18<<7 | 0x4C, - 23190 - 19968: jis0212<<14 | 0x18<<7 | 0x4D, - 23193 - 19968: jis0212<<14 | 0x18<<7 | 0x4E, - 23194 - 19968: jis0208<<14 | 0x34<<7 | 0x1A, - 23195 - 19968: jis0208<<14 | 0x28<<7 | 0x11, - 23196 - 19968: jis0212<<14 | 0x18<<7 | 0x4F, - 23198 - 19968: jis0212<<14 | 0x18<<7 | 0x50, - 23199 - 19968: jis0212<<14 | 0x18<<7 | 0x51, - 23200 - 19968: jis0212<<14 | 0x18<<7 | 0x52, - 23202 - 19968: jis0212<<14 | 0x18<<7 | 0x53, - 23207 - 19968: jis0212<<14 | 0x18<<7 | 0x54, - 23212 - 19968: jis0212<<14 | 0x18<<7 | 0x55, - 23217 - 19968: jis0212<<14 | 0x18<<7 | 0x56, - 23218 - 19968: jis0212<<14 | 0x18<<7 | 0x57, - 23219 - 19968: jis0212<<14 | 0x18<<7 | 0x58, - 23221 - 19968: jis0212<<14 | 0x18<<7 | 0x59, - 23224 - 19968: jis0212<<14 | 0x18<<7 | 0x5A, - 23226 - 19968: jis0212<<14 | 0x18<<7 | 0x5B, - 23227 - 19968: jis0212<<14 | 0x18<<7 | 0x5C, - 23228 - 19968: jis0208<<14 | 0x34<<7 | 0x1B, - 23229 - 19968: jis0208<<14 | 0x34<<7 | 0x1F, - 23230 - 19968: jis0208<<14 | 0x34<<7 | 0x1C, - 23231 - 19968: jis0212<<14 | 0x18<<7 | 0x5D, - 23233 - 19968: jis0208<<14 | 0x11<<7 | 0x26, - 23234 - 19968: jis0208<<14 | 0x34<<7 | 0x1E, - 23236 - 19968: jis0212<<14 | 0x19<<7 | 0x00, - 23238 - 19968: jis0212<<14 | 0x19<<7 | 0x01, - 23240 - 19968: jis0212<<14 | 0x19<<7 | 0x02, - 23241 - 19968: jis0208<<14 | 0x1B<<7 | 0x1A, - 23243 - 19968: jis0208<<14 | 0x34<<7 | 0x1D, - 23244 - 19968: jis0208<<14 | 0x16<<7 | 0x58, - 23247 - 19968: jis0212<<14 | 0x19<<7 | 0x03, - 23248 - 19968: jis0208<<14 | 0x34<<7 | 0x2B, - 23254 - 19968: jis0208<<14 | 0x34<<7 | 0x24, - 23255 - 19968: jis0208<<14 | 0x34<<7 | 0x21, - 23258 - 19968: jis0212<<14 | 0x19<<7 | 0x04, - 23260 - 19968: jis0212<<14 | 0x19<<7 | 0x05, - 23264 - 19968: jis0212<<14 | 0x19<<7 | 0x06, - 23265 - 19968: jis0208<<14 | 0x22<<7 | 0x43, - 23267 - 19968: jis0208<<14 | 0x34<<7 | 0x20, - 23269 - 19968: jis0212<<14 | 0x19<<7 | 0x07, - 23270 - 19968: jis0208<<14 | 0x34<<7 | 0x22, - 23273 - 19968: jis0208<<14 | 0x34<<7 | 0x23, - 23274 - 19968: jis0212<<14 | 0x19<<7 | 0x08, - 23278 - 19968: jis0212<<14 | 0x19<<7 | 0x09, - 23285 - 19968: jis0212<<14 | 0x19<<7 | 0x0A, - 23286 - 19968: jis0212<<14 | 0x19<<7 | 0x0B, - 23290 - 19968: jis0208<<14 | 0x34<<7 | 0x25, - 23291 - 19968: jis0208<<14 | 0x34<<7 | 0x26, - 23293 - 19968: jis0212<<14 | 0x19<<7 | 0x0C, - 23296 - 19968: jis0212<<14 | 0x19<<7 | 0x0D, - 23297 - 19968: jis0212<<14 | 0x19<<7 | 0x0E, - 23304 - 19968: jis0212<<14 | 0x19<<7 | 0x0F, - 23305 - 19968: jis0208<<14 | 0x13<<7 | 0x51, - 23307 - 19968: jis0208<<14 | 0x34<<7 | 0x28, - 23308 - 19968: jis0208<<14 | 0x34<<7 | 0x27, - 23318 - 19968: jis0208<<14 | 0x34<<7 | 0x29, - 23319 - 19968: jis0212<<14 | 0x19<<7 | 0x10, - 23321 - 19968: jis0212<<14 | 0x19<<7 | 0x12, - 23323 - 19968: jis0212<<14 | 0x19<<7 | 0x13, - 23325 - 19968: jis0212<<14 | 0x19<<7 | 0x14, - 23329 - 19968: jis0212<<14 | 0x19<<7 | 0x15, - 23330 - 19968: jis0208<<14 | 0x1D<<7 | 0x4D, - 23333 - 19968: jis0212<<14 | 0x19<<7 | 0x16, - 23338 - 19968: jis0208<<14 | 0x34<<7 | 0x2C, - 23340 - 19968: jis0208<<14 | 0x23<<7 | 0x3B, - 23341 - 19968: jis0212<<14 | 0x19<<7 | 0x17, - 23344 - 19968: jis0208<<14 | 0x10<<7 | 0x24, - 23346 - 19968: jis0208<<14 | 0x34<<7 | 0x2A, - 23348 - 19968: jis0212<<14 | 0x19<<7 | 0x11, - 23350 - 19968: jis0208<<14 | 0x34<<7 | 0x2D, - 23352 - 19968: jis0212<<14 | 0x19<<7 | 0x18, - 23358 - 19968: jis0208<<14 | 0x34<<7 | 0x2E, - 23360 - 19968: jis0208<<14 | 0x34<<7 | 0x31, - 23361 - 19968: jis0212<<14 | 0x19<<7 | 0x19, - 23363 - 19968: jis0208<<14 | 0x34<<7 | 0x2F, - 23365 - 19968: jis0208<<14 | 0x34<<7 | 0x30, - 23371 - 19968: jis0212<<14 | 0x19<<7 | 0x1A, - 23372 - 19968: jis0212<<14 | 0x19<<7 | 0x1B, - 23376 - 19968: jis0208<<14 | 0x1A<<7 | 0x31, - 23377 - 19968: jis0208<<14 | 0x34<<7 | 0x32, - 23378 - 19968: jis0212<<14 | 0x19<<7 | 0x1C, - 23380 - 19968: jis0208<<14 | 0x18<<7 | 0x05, - 23381 - 19968: jis0208<<14 | 0x34<<7 | 0x33, - 23382 - 19968: jis0208<<14 | 0x58<<7 | 0x49, - 23383 - 19968: jis0208<<14 | 0x1A<<7 | 0x59, - 23384 - 19968: jis0208<<14 | 0x21<<7 | 0x17, - 23386 - 19968: jis0208<<14 | 0x34<<7 | 0x34, - 23387 - 19968: jis0208<<14 | 0x34<<7 | 0x35, - 23388 - 19968: jis0208<<14 | 0x1A<<7 | 0x39, - 23389 - 19968: jis0208<<14 | 0x18<<7 | 0x06, - 23390 - 19968: jis0212<<14 | 0x19<<7 | 0x1E, - 23391 - 19968: jis0208<<14 | 0x2B<<7 | 0x31, - 23395 - 19968: jis0208<<14 | 0x14<<7 | 0x07, - 23396 - 19968: jis0208<<14 | 0x17<<7 | 0x28, - 23397 - 19968: jis0208<<14 | 0x34<<7 | 0x36, - 23398 - 19968: jis0208<<14 | 0x12<<7 | 0x37, - 23400 - 19968: jis0212<<14 | 0x19<<7 | 0x1F, - 23401 - 19968: jis0208<<14 | 0x34<<7 | 0x37, - 23403 - 19968: jis0208<<14 | 0x21<<7 | 0x18, - 23406 - 19968: jis0212<<14 | 0x19<<7 | 0x20, - 23407 - 19968: jis0212<<14 | 0x19<<7 | 0x21, - 23408 - 19968: jis0208<<14 | 0x34<<7 | 0x38, - 23409 - 19968: jis0208<<14 | 0x35<<7 | 0x02, - 23411 - 19968: jis0208<<14 | 0x34<<7 | 0x39, - 23413 - 19968: jis0208<<14 | 0x34<<7 | 0x3A, - 23416 - 19968: jis0208<<14 | 0x34<<7 | 0x3B, - 23418 - 19968: jis0208<<14 | 0x34<<7 | 0x3D, - 23420 - 19968: jis0212<<14 | 0x19<<7 | 0x22, - 23421 - 19968: jis0212<<14 | 0x19<<7 | 0x23, - 23422 - 19968: jis0212<<14 | 0x19<<7 | 0x24, - 23423 - 19968: jis0212<<14 | 0x19<<7 | 0x25, - 23424 - 19968: jis0208<<14 | 0x34<<7 | 0x3E, - 23425 - 19968: jis0212<<14 | 0x19<<7 | 0x26, - 23427 - 19968: jis0208<<14 | 0x34<<7 | 0x3F, - 23428 - 19968: jis0212<<14 | 0x19<<7 | 0x27, - 23429 - 19968: jis0208<<14 | 0x21<<7 | 0x4F, - 23430 - 19968: jis0212<<14 | 0x19<<7 | 0x28, - 23431 - 19968: jis0208<<14 | 0x10<<7 | 0x06, - 23432 - 19968: jis0208<<14 | 0x1B<<7 | 0x48, - 23433 - 19968: jis0208<<14 | 0x0F<<7 | 0x21, - 23434 - 19968: jis0212<<14 | 0x19<<7 | 0x29, - 23435 - 19968: jis0208<<14 | 0x20<<7 | 0x36, - 23436 - 19968: jis0208<<14 | 0x13<<7 | 0x0F, - 23437 - 19968: jis0208<<14 | 0x1B<<7 | 0x14, - 23438 - 19968: jis0212<<14 | 0x19<<7 | 0x2A, - 23439 - 19968: jis0208<<14 | 0x18<<7 | 0x07, - 23440 - 19968: jis0212<<14 | 0x19<<7 | 0x2B, - 23441 - 19968: jis0212<<14 | 0x19<<7 | 0x2C, - 23443 - 19968: jis0212<<14 | 0x19<<7 | 0x2D, - 23444 - 19968: jis0212<<14 | 0x19<<7 | 0x2E, - 23445 - 19968: jis0208<<14 | 0x24<<7 | 0x45, - 23446 - 19968: jis0212<<14 | 0x19<<7 | 0x2F, - 23447 - 19968: jis0208<<14 | 0x1C<<7 | 0x00, - 23448 - 19968: jis0208<<14 | 0x13<<7 | 0x10, - 23449 - 19968: jis0208<<14 | 0x22<<7 | 0x47, - 23450 - 19968: jis0208<<14 | 0x23<<7 | 0x49, - 23451 - 19968: jis0208<<14 | 0x0F<<7 | 0x17, - 23452 - 19968: jis0208<<14 | 0x14<<7 | 0x18, - 23453 - 19968: jis0208<<14 | 0x29<<7 | 0x54, - 23455 - 19968: jis0208<<14 | 0x1B<<7 | 0x21, - 23458 - 19968: jis0208<<14 | 0x14<<7 | 0x31, - 23459 - 19968: jis0208<<14 | 0x1F<<7 | 0x4A, - 23460 - 19968: jis0208<<14 | 0x1B<<7 | 0x1B, - 23461 - 19968: jis0208<<14 | 0x2C<<7 | 0x07, - 23462 - 19968: jis0208<<14 | 0x34<<7 | 0x40, - 23464 - 19968: jis0212<<14 | 0x19<<7 | 0x30, - 23465 - 19968: jis0212<<14 | 0x19<<7 | 0x31, - 23468 - 19968: jis0212<<14 | 0x19<<7 | 0x32, - 23469 - 19968: jis0212<<14 | 0x19<<7 | 0x33, - 23470 - 19968: jis0208<<14 | 0x14<<7 | 0x3B, - 23471 - 19968: jis0212<<14 | 0x19<<7 | 0x34, - 23472 - 19968: jis0208<<14 | 0x19<<7 | 0x2A, - 23473 - 19968: jis0212<<14 | 0x19<<7 | 0x35, - 23474 - 19968: jis0212<<14 | 0x19<<7 | 0x36, - 23475 - 19968: jis0208<<14 | 0x12<<7 | 0x11, - 23476 - 19968: jis0208<<14 | 0x10<<7 | 0x42, - 23477 - 19968: jis0208<<14 | 0x1D<<7 | 0x0B, - 23478 - 19968: jis0208<<14 | 0x11<<7 | 0x27, - 23479 - 19968: jis0212<<14 | 0x19<<7 | 0x37, - 23480 - 19968: jis0208<<14 | 0x34<<7 | 0x41, - 23481 - 19968: jis0208<<14 | 0x2C<<7 | 0x25, - 23482 - 19968: jis0212<<14 | 0x19<<7 | 0x38, - 23484 - 19968: jis0212<<14 | 0x19<<7 | 0x39, - 23487 - 19968: jis0208<<14 | 0x1C<<7 | 0x28, - 23488 - 19968: jis0208<<14 | 0x58<<7 | 0x4A, - 23489 - 19968: jis0212<<14 | 0x19<<7 | 0x3B, - 23490 - 19968: jis0208<<14 | 0x1B<<7 | 0x43, - 23491 - 19968: jis0208<<14 | 0x34<<7 | 0x42, - 23492 - 19968: jis0208<<14 | 0x13<<7 | 0x52, - 23493 - 19968: jis0208<<14 | 0x25<<7 | 0x31, - 23494 - 19968: jis0208<<14 | 0x2B<<7 | 0x08, - 23495 - 19968: jis0208<<14 | 0x34<<7 | 0x43, - 23497 - 19968: jis0208<<14 | 0x34<<7 | 0x44, - 23500 - 19968: jis0208<<14 | 0x28<<7 | 0x38, - 23501 - 19968: jis0212<<14 | 0x19<<7 | 0x3C, - 23503 - 19968: jis0212<<14 | 0x19<<7 | 0x3D, - 23504 - 19968: jis0208<<14 | 0x34<<7 | 0x46, - 23506 - 19968: jis0208<<14 | 0x13<<7 | 0x07, - 23507 - 19968: jis0208<<14 | 0x15<<7 | 0x56, - 23508 - 19968: jis0208<<14 | 0x34<<7 | 0x45, - 23510 - 19968: jis0212<<14 | 0x19<<7 | 0x3E, - 23511 - 19968: jis0212<<14 | 0x19<<7 | 0x3F, - 23512 - 19968: jis0208<<14 | 0x58<<7 | 0x4C, - 23513 - 19968: jis0212<<14 | 0x19<<7 | 0x41, - 23514 - 19968: jis0212<<14 | 0x19<<7 | 0x42, - 23515 - 19968: jis0208<<14 | 0x13<<7 | 0x11, - 23517 - 19968: jis0208<<14 | 0x1E<<7 | 0x11, - 23518 - 19968: jis0208<<14 | 0x34<<7 | 0x4A, - 23519 - 19968: jis0208<<14 | 0x1A<<7 | 0x00, - 23520 - 19968: jis0212<<14 | 0x19<<7 | 0x43, - 23521 - 19968: jis0208<<14 | 0x11<<7 | 0x28, - 23522 - 19968: jis0208<<14 | 0x34<<7 | 0x49, - 23524 - 19968: jis0208<<14 | 0x34<<7 | 0x47, - 23525 - 19968: jis0208<<14 | 0x34<<7 | 0x4B, - 23526 - 19968: jis0208<<14 | 0x34<<7 | 0x48, - 23527 - 19968: jis0208<<14 | 0x26<<7 | 0x0A, - 23528 - 19968: jis0208<<14 | 0x3B<<7 | 0x2C, - 23529 - 19968: jis0208<<14 | 0x1E<<7 | 0x12, - 23531 - 19968: jis0208<<14 | 0x34<<7 | 0x4C, - 23532 - 19968: jis0208<<14 | 0x58<<7 | 0x4D, - 23534 - 19968: jis0208<<14 | 0x2D<<7 | 0x1F, - 23535 - 19968: jis0212<<14 | 0x19<<7 | 0x44, - 23536 - 19968: jis0208<<14 | 0x34<<7 | 0x4D, - 23537 - 19968: jis0212<<14 | 0x19<<7 | 0x45, - 23539 - 19968: jis0208<<14 | 0x34<<7 | 0x4F, - 23540 - 19968: jis0212<<14 | 0x19<<7 | 0x46, - 23541 - 19968: jis0208<<14 | 0x22<<7 | 0x5D, - 23542 - 19968: jis0208<<14 | 0x34<<7 | 0x4E, - 23544 - 19968: jis0208<<14 | 0x1F<<7 | 0x02, - 23546 - 19968: jis0208<<14 | 0x1A<<7 | 0x5A, - 23549 - 19968: jis0212<<14 | 0x19<<7 | 0x47, - 23550 - 19968: jis0208<<14 | 0x21<<7 | 0x2F, - 23551 - 19968: jis0208<<14 | 0x1B<<7 | 0x56, - 23553 - 19968: jis0208<<14 | 0x28<<7 | 0x54, - 23554 - 19968: jis0208<<14 | 0x1F<<7 | 0x4B, - 23556 - 19968: jis0208<<14 | 0x1B<<7 | 0x2C, - 23557 - 19968: jis0208<<14 | 0x34<<7 | 0x50, - 23558 - 19968: jis0208<<14 | 0x1D<<7 | 0x0C, - 23559 - 19968: jis0208<<14 | 0x34<<7 | 0x51, - 23560 - 19968: jis0208<<14 | 0x34<<7 | 0x52, - 23561 - 19968: jis0208<<14 | 0x0F<<7 | 0x32, - 23562 - 19968: jis0208<<14 | 0x21<<7 | 0x19, - 23563 - 19968: jis0208<<14 | 0x1E<<7 | 0x31, - 23564 - 19968: jis0212<<14 | 0x19<<7 | 0x48, - 23565 - 19968: jis0208<<14 | 0x34<<7 | 0x53, - 23566 - 19968: jis0208<<14 | 0x25<<7 | 0x12, - 23567 - 19968: jis0208<<14 | 0x1D<<7 | 0x0D, - 23569 - 19968: jis0208<<14 | 0x1D<<7 | 0x0E, - 23571 - 19968: jis0208<<14 | 0x34<<7 | 0x54, - 23574 - 19968: jis0208<<14 | 0x1F<<7 | 0x4C, - 23575 - 19968: jis0212<<14 | 0x19<<7 | 0x49, - 23578 - 19968: jis0208<<14 | 0x1D<<7 | 0x0F, - 23582 - 19968: jis0208<<14 | 0x58<<7 | 0x4E, - 23583 - 19968: jis0212<<14 | 0x19<<7 | 0x4B, - 23584 - 19968: jis0208<<14 | 0x34<<7 | 0x55, - 23586 - 19968: jis0208<<14 | 0x34<<7 | 0x56, - 23587 - 19968: jis0212<<14 | 0x19<<7 | 0x4C, - 23588 - 19968: jis0208<<14 | 0x2B<<7 | 0x3F, - 23590 - 19968: jis0212<<14 | 0x19<<7 | 0x4D, - 23592 - 19968: jis0208<<14 | 0x34<<7 | 0x57, - 23593 - 19968: jis0212<<14 | 0x19<<7 | 0x4E, - 23595 - 19968: jis0212<<14 | 0x19<<7 | 0x4F, - 23596 - 19968: jis0212<<14 | 0x19<<7 | 0x50, - 23597 - 19968: jis0208<<14 | 0x15<<7 | 0x25, - 23598 - 19968: jis0212<<14 | 0x19<<7 | 0x51, - 23600 - 19968: jis0212<<14 | 0x19<<7 | 0x52, - 23601 - 19968: jis0208<<14 | 0x1C<<7 | 0x01, - 23602 - 19968: jis0212<<14 | 0x19<<7 | 0x53, - 23605 - 19968: jis0212<<14 | 0x19<<7 | 0x54, - 23606 - 19968: jis0212<<14 | 0x19<<7 | 0x55, - 23608 - 19968: jis0208<<14 | 0x34<<7 | 0x58, - 23609 - 19968: jis0208<<14 | 0x34<<7 | 0x59, - 23610 - 19968: jis0208<<14 | 0x1B<<7 | 0x3B, - 23611 - 19968: jis0208<<14 | 0x1E<<7 | 0x0B, - 23612 - 19968: jis0208<<14 | 0x25<<7 | 0x53, - 23613 - 19968: jis0208<<14 | 0x1E<<7 | 0x33, - 23614 - 19968: jis0208<<14 | 0x27<<7 | 0x57, - 23615 - 19968: jis0208<<14 | 0x26<<7 | 0x01, - 23616 - 19968: jis0208<<14 | 0x15<<7 | 0x28, - 23617 - 19968: jis0208<<14 | 0x34<<7 | 0x5A, - 23621 - 19968: jis0208<<14 | 0x14<<7 | 0x4E, - 23622 - 19968: jis0208<<14 | 0x34<<7 | 0x5B, - 23624 - 19968: jis0208<<14 | 0x15<<7 | 0x5D, - 23626 - 19968: jis0208<<14 | 0x25<<7 | 0x2E, - 23627 - 19968: jis0208<<14 | 0x11<<7 | 0x0F, - 23629 - 19968: jis0208<<14 | 0x1A<<7 | 0x32, - 23630 - 19968: jis0208<<14 | 0x34<<7 | 0x5C, - 23631 - 19968: jis0208<<14 | 0x35<<7 | 0x01, - 23632 - 19968: jis0208<<14 | 0x35<<7 | 0x00, - 23633 - 19968: jis0208<<14 | 0x15<<7 | 0x5C, - 23635 - 19968: jis0208<<14 | 0x34<<7 | 0x5D, - 23637 - 19968: jis0208<<14 | 0x24<<7 | 0x17, - 23641 - 19968: jis0212<<14 | 0x19<<7 | 0x56, - 23642 - 19968: jis0212<<14 | 0x19<<7 | 0x57, - 23644 - 19968: jis0212<<14 | 0x19<<7 | 0x58, - 23646 - 19968: jis0208<<14 | 0x21<<7 | 0x0F, - 23648 - 19968: jis0208<<14 | 0x24<<7 | 0x2A, - 23649 - 19968: jis0208<<14 | 0x1B<<7 | 0x27, - 23650 - 19968: jis0212<<14 | 0x19<<7 | 0x59, - 23651 - 19968: jis0212<<14 | 0x19<<7 | 0x5A, - 23652 - 19968: jis0208<<14 | 0x20<<7 | 0x37, - 23653 - 19968: jis0208<<14 | 0x2C<<7 | 0x59, - 23655 - 19968: jis0212<<14 | 0x19<<7 | 0x5B, - 23656 - 19968: jis0212<<14 | 0x19<<7 | 0x5C, - 23657 - 19968: jis0212<<14 | 0x19<<7 | 0x5D, - 23660 - 19968: jis0208<<14 | 0x35<<7 | 0x03, - 23661 - 19968: jis0212<<14 | 0x1A<<7 | 0x00, - 23662 - 19968: jis0208<<14 | 0x35<<7 | 0x04, - 23663 - 19968: jis0208<<14 | 0x25<<7 | 0x35, - 23664 - 19968: jis0212<<14 | 0x1A<<7 | 0x01, - 23665 - 19968: jis0208<<14 | 0x1A<<7 | 0x12, - 23668 - 19968: jis0212<<14 | 0x1A<<7 | 0x02, - 23669 - 19968: jis0212<<14 | 0x1A<<7 | 0x03, - 23670 - 19968: jis0208<<14 | 0x35<<7 | 0x06, - 23673 - 19968: jis0208<<14 | 0x35<<7 | 0x07, - 23674 - 19968: jis0212<<14 | 0x1A<<7 | 0x04, - 23675 - 19968: jis0212<<14 | 0x1A<<7 | 0x05, - 23676 - 19968: jis0212<<14 | 0x1A<<7 | 0x06, - 23677 - 19968: jis0212<<14 | 0x1A<<7 | 0x07, - 23687 - 19968: jis0212<<14 | 0x1A<<7 | 0x08, - 23688 - 19968: jis0212<<14 | 0x1A<<7 | 0x09, - 23690 - 19968: jis0212<<14 | 0x1A<<7 | 0x0A, - 23692 - 19968: jis0208<<14 | 0x35<<7 | 0x08, - 23695 - 19968: jis0212<<14 | 0x1A<<7 | 0x0B, - 23696 - 19968: jis0208<<14 | 0x13<<7 | 0x53, - 23697 - 19968: jis0208<<14 | 0x35<<7 | 0x09, - 23698 - 19968: jis0212<<14 | 0x1A<<7 | 0x0C, - 23700 - 19968: jis0208<<14 | 0x35<<7 | 0x0A, - 23709 - 19968: jis0212<<14 | 0x1A<<7 | 0x0D, - 23711 - 19968: jis0212<<14 | 0x1A<<7 | 0x0E, - 23712 - 19968: jis0212<<14 | 0x1A<<7 | 0x0F, - 23713 - 19968: jis0208<<14 | 0x11<<7 | 0x0B, - 23714 - 19968: jis0212<<14 | 0x1A<<7 | 0x10, - 23715 - 19968: jis0212<<14 | 0x1A<<7 | 0x11, - 23718 - 19968: jis0208<<14 | 0x58<<7 | 0x4F, - 23720 - 19968: jis0208<<14 | 0x20<<7 | 0x1A, - 23721 - 19968: jis0208<<14 | 0x13<<7 | 0x43, - 23722 - 19968: jis0212<<14 | 0x1A<<7 | 0x13, - 23723 - 19968: jis0208<<14 | 0x35<<7 | 0x0C, - 23724 - 19968: jis0208<<14 | 0x2B<<7 | 0x07, - 23729 - 19968: jis0208<<14 | 0x21<<7 | 0x31, - 23730 - 19968: jis0212<<14 | 0x1A<<7 | 0x14, - 23731 - 19968: jis0208<<14 | 0x12<<7 | 0x38, - 23732 - 19968: jis0212<<14 | 0x1A<<7 | 0x15, - 23733 - 19968: jis0212<<14 | 0x1A<<7 | 0x16, - 23734 - 19968: jis0208<<14 | 0x35<<7 | 0x0E, - 23735 - 19968: jis0208<<14 | 0x35<<7 | 0x10, - 23736 - 19968: jis0208<<14 | 0x13<<7 | 0x3E, - 23738 - 19968: jis0208<<14 | 0x58<<7 | 0x50, - 23739 - 19968: jis0208<<14 | 0x35<<7 | 0x0D, - 23740 - 19968: jis0208<<14 | 0x35<<7 | 0x0F, - 23742 - 19968: jis0208<<14 | 0x35<<7 | 0x12, - 23749 - 19968: jis0208<<14 | 0x35<<7 | 0x11, - 23751 - 19968: jis0208<<14 | 0x35<<7 | 0x13, - 23753 - 19968: jis0212<<14 | 0x1A<<7 | 0x18, - 23755 - 19968: jis0212<<14 | 0x1A<<7 | 0x19, - 23762 - 19968: jis0212<<14 | 0x1A<<7 | 0x1A, - 23767 - 19968: jis0212<<14 | 0x1A<<7 | 0x1C, - 23769 - 19968: jis0208<<14 | 0x35<<7 | 0x14, - 23773 - 19968: jis0212<<14 | 0x1A<<7 | 0x1B, - 23776 - 19968: jis0208<<14 | 0x25<<7 | 0x1C, - 23777 - 19968: jis0208<<14 | 0x15<<7 | 0x0D, - 23784 - 19968: jis0208<<14 | 0x11<<7 | 0x44, - 23785 - 19968: jis0208<<14 | 0x35<<7 | 0x15, - 23786 - 19968: jis0208<<14 | 0x35<<7 | 0x1A, - 23789 - 19968: jis0208<<14 | 0x35<<7 | 0x18, - 23790 - 19968: jis0212<<14 | 0x1A<<7 | 0x1D, - 23791 - 19968: jis0208<<14 | 0x29<<7 | 0x56, - 23792 - 19968: jis0208<<14 | 0x29<<7 | 0x55, - 23793 - 19968: jis0212<<14 | 0x1A<<7 | 0x1E, - 23794 - 19968: jis0212<<14 | 0x1A<<7 | 0x1F, - 23796 - 19968: jis0212<<14 | 0x1A<<7 | 0x20, - 23797 - 19968: jis0208<<14 | 0x58<<7 | 0x51, - 23798 - 19968: jis0208<<14 | 0x24<<7 | 0x46, - 23802 - 19968: jis0208<<14 | 0x35<<7 | 0x17, - 23803 - 19968: jis0208<<14 | 0x1C<<7 | 0x33, - 23805 - 19968: jis0208<<14 | 0x35<<7 | 0x16, - 23809 - 19968: jis0212<<14 | 0x1A<<7 | 0x21, - 23814 - 19968: jis0212<<14 | 0x1A<<7 | 0x22, - 23815 - 19968: jis0208<<14 | 0x1E<<7 | 0x51, - 23819 - 19968: jis0208<<14 | 0x35<<7 | 0x1B, - 23821 - 19968: jis0212<<14 | 0x1A<<7 | 0x23, - 23822 - 19968: jis0208<<14 | 0x19<<7 | 0x49, - 23825 - 19968: jis0208<<14 | 0x35<<7 | 0x21, - 23826 - 19968: jis0212<<14 | 0x1A<<7 | 0x24, - 23828 - 19968: jis0208<<14 | 0x35<<7 | 0x22, - 23829 - 19968: jis0208<<14 | 0x35<<7 | 0x1C, - 23830 - 19968: jis0208<<14 | 0x12<<7 | 0x12, - 23831 - 19968: jis0208<<14 | 0x35<<7 | 0x1D, - 23832 - 19968: jis0208<<14 | 0x35<<7 | 0x26, - 23833 - 19968: jis0208<<14 | 0x35<<7 | 0x25, - 23834 - 19968: jis0208<<14 | 0x35<<7 | 0x24, - 23835 - 19968: jis0208<<14 | 0x35<<7 | 0x20, - 23839 - 19968: jis0208<<14 | 0x35<<7 | 0x1F, - 23842 - 19968: jis0208<<14 | 0x35<<7 | 0x23, - 23843 - 19968: jis0212<<14 | 0x1A<<7 | 0x26, - 23844 - 19968: jis0212<<14 | 0x1A<<7 | 0x27, - 23846 - 19968: jis0212<<14 | 0x1A<<7 | 0x28, - 23847 - 19968: jis0208<<14 | 0x58<<7 | 0x52, - 23849 - 19968: jis0208<<14 | 0x29<<7 | 0x57, - 23851 - 19968: jis0212<<14 | 0x1A<<7 | 0x25, - 23857 - 19968: jis0212<<14 | 0x1A<<7 | 0x2A, - 23860 - 19968: jis0212<<14 | 0x1A<<7 | 0x2B, - 23865 - 19968: jis0212<<14 | 0x1A<<7 | 0x2C, - 23869 - 19968: jis0212<<14 | 0x1A<<7 | 0x2D, - 23871 - 19968: jis0212<<14 | 0x1A<<7 | 0x2E, - 23874 - 19968: jis0208<<14 | 0x58<<7 | 0x55, - 23875 - 19968: jis0212<<14 | 0x1A<<7 | 0x30, - 23878 - 19968: jis0212<<14 | 0x1A<<7 | 0x31, - 23880 - 19968: jis0212<<14 | 0x1A<<7 | 0x32, - 23882 - 19968: jis0212<<14 | 0x1A<<7 | 0x36, - 23883 - 19968: jis0208<<14 | 0x35<<7 | 0x2A, - 23884 - 19968: jis0208<<14 | 0x35<<7 | 0x27, - 23886 - 19968: jis0208<<14 | 0x35<<7 | 0x29, - 23888 - 19968: jis0208<<14 | 0x2C<<7 | 0x51, - 23889 - 19968: jis0212<<14 | 0x1A<<7 | 0x34, - 23890 - 19968: jis0208<<14 | 0x35<<7 | 0x28, - 23891 - 19968: jis0208<<14 | 0x58<<7 | 0x53, - 23893 - 19968: jis0212<<14 | 0x1A<<7 | 0x33, - 23897 - 19968: jis0212<<14 | 0x1A<<7 | 0x35, - 23900 - 19968: jis0208<<14 | 0x35<<7 | 0x1E, - 23903 - 19968: jis0212<<14 | 0x1A<<7 | 0x37, - 23904 - 19968: jis0212<<14 | 0x1A<<7 | 0x38, - 23905 - 19968: jis0212<<14 | 0x1A<<7 | 0x39, - 23906 - 19968: jis0212<<14 | 0x1A<<7 | 0x3A, - 23908 - 19968: jis0212<<14 | 0x1A<<7 | 0x3B, - 23913 - 19968: jis0208<<14 | 0x1E<<7 | 0x52, - 23914 - 19968: jis0212<<14 | 0x1A<<7 | 0x3C, - 23916 - 19968: jis0208<<14 | 0x35<<7 | 0x2B, - 23917 - 19968: jis0208<<14 | 0x58<<7 | 0x56, - 23919 - 19968: jis0208<<14 | 0x19<<7 | 0x16, - 23920 - 19968: jis0212<<14 | 0x1A<<7 | 0x3E, - 23923 - 19968: jis0208<<14 | 0x35<<7 | 0x2C, - 23926 - 19968: jis0208<<14 | 0x35<<7 | 0x2D, - 23929 - 19968: jis0212<<14 | 0x1A<<7 | 0x3F, - 23930 - 19968: jis0212<<14 | 0x1A<<7 | 0x40, - 23934 - 19968: jis0212<<14 | 0x1A<<7 | 0x41, - 23935 - 19968: jis0212<<14 | 0x1A<<7 | 0x42, - 23937 - 19968: jis0212<<14 | 0x1A<<7 | 0x43, - 23938 - 19968: jis0208<<14 | 0x35<<7 | 0x30, - 23939 - 19968: jis0212<<14 | 0x1A<<7 | 0x44, - 23940 - 19968: jis0208<<14 | 0x35<<7 | 0x2F, - 23943 - 19968: jis0208<<14 | 0x35<<7 | 0x2E, - 23944 - 19968: jis0212<<14 | 0x1A<<7 | 0x45, - 23946 - 19968: jis0212<<14 | 0x1A<<7 | 0x46, - 23947 - 19968: jis0208<<14 | 0x24<<7 | 0x47, - 23948 - 19968: jis0208<<14 | 0x35<<7 | 0x19, - 23952 - 19968: jis0208<<14 | 0x35<<7 | 0x36, - 23954 - 19968: jis0212<<14 | 0x1A<<7 | 0x47, - 23955 - 19968: jis0212<<14 | 0x1A<<7 | 0x48, - 23956 - 19968: jis0212<<14 | 0x1A<<7 | 0x49, - 23957 - 19968: jis0212<<14 | 0x1A<<7 | 0x4A, - 23961 - 19968: jis0212<<14 | 0x1A<<7 | 0x4B, - 23963 - 19968: jis0212<<14 | 0x1A<<7 | 0x4C, - 23965 - 19968: jis0208<<14 | 0x35<<7 | 0x32, - 23967 - 19968: jis0212<<14 | 0x1A<<7 | 0x4D, - 23968 - 19968: jis0212<<14 | 0x1A<<7 | 0x4E, - 23970 - 19968: jis0208<<14 | 0x35<<7 | 0x31, - 23975 - 19968: jis0212<<14 | 0x1A<<7 | 0x4F, - 23979 - 19968: jis0212<<14 | 0x1A<<7 | 0x50, - 23980 - 19968: jis0208<<14 | 0x35<<7 | 0x33, - 23982 - 19968: jis0208<<14 | 0x35<<7 | 0x34, - 23984 - 19968: jis0212<<14 | 0x1A<<7 | 0x51, - 23986 - 19968: jis0212<<14 | 0x45<<7 | 0x53, - 23988 - 19968: jis0212<<14 | 0x1A<<7 | 0x52, - 23991 - 19968: jis0208<<14 | 0x35<<7 | 0x37, - 23992 - 19968: jis0208<<14 | 0x58<<7 | 0x57, - 23993 - 19968: jis0208<<14 | 0x58<<7 | 0x58, - 23994 - 19968: jis0208<<14 | 0x2D<<7 | 0x45, - 23996 - 19968: jis0208<<14 | 0x35<<7 | 0x38, - 23997 - 19968: jis0208<<14 | 0x35<<7 | 0x35, - 24003 - 19968: jis0212<<14 | 0x1A<<7 | 0x55, - 24007 - 19968: jis0212<<14 | 0x1A<<7 | 0x56, - 24009 - 19968: jis0208<<14 | 0x35<<7 | 0x39, - 24011 - 19968: jis0212<<14 | 0x1A<<7 | 0x57, - 24012 - 19968: jis0208<<14 | 0x13<<7 | 0x3F, - 24013 - 19968: jis0208<<14 | 0x35<<7 | 0x3A, - 24014 - 19968: jis0212<<14 | 0x1A<<7 | 0x59, - 24016 - 19968: jis0208<<14 | 0x58<<7 | 0x59, - 24018 - 19968: jis0208<<14 | 0x35<<7 | 0x3C, - 24019 - 19968: jis0208<<14 | 0x35<<7 | 0x3B, - 24022 - 19968: jis0208<<14 | 0x35<<7 | 0x3D, - 24024 - 19968: jis0212<<14 | 0x1A<<7 | 0x5A, - 24025 - 19968: jis0212<<14 | 0x1A<<7 | 0x5B, - 24027 - 19968: jis0208<<14 | 0x35<<7 | 0x3E, - 24029 - 19968: jis0208<<14 | 0x1F<<7 | 0x4D, - 24030 - 19968: jis0208<<14 | 0x1C<<7 | 0x02, - 24032 - 19968: jis0212<<14 | 0x1A<<7 | 0x5C, - 24033 - 19968: jis0208<<14 | 0x1C<<7 | 0x43, - 24035 - 19968: jis0208<<14 | 0x20<<7 | 0x42, - 24036 - 19968: jis0212<<14 | 0x1A<<7 | 0x5D, - 24037 - 19968: jis0208<<14 | 0x18<<7 | 0x08, - 24038 - 19968: jis0208<<14 | 0x19<<7 | 0x17, - 24039 - 19968: jis0208<<14 | 0x18<<7 | 0x09, - 24040 - 19968: jis0208<<14 | 0x14<<7 | 0x4F, - 24041 - 19968: jis0212<<14 | 0x1B<<7 | 0x00, - 24043 - 19968: jis0208<<14 | 0x35<<7 | 0x3F, - 24046 - 19968: jis0208<<14 | 0x19<<7 | 0x18, - 24049 - 19968: jis0208<<14 | 0x17<<7 | 0x29, - 24050 - 19968: jis0208<<14 | 0x35<<7 | 0x40, - 24051 - 19968: jis0208<<14 | 0x2B<<7 | 0x05, - 24052 - 19968: jis0208<<14 | 0x26<<7 | 0x22, - 24053 - 19968: jis0208<<14 | 0x35<<7 | 0x41, - 24055 - 19968: jis0208<<14 | 0x18<<7 | 0x0A, - 24056 - 19968: jis0212<<14 | 0x1B<<7 | 0x01, - 24057 - 19968: jis0212<<14 | 0x1B<<7 | 0x02, - 24059 - 19968: jis0208<<14 | 0x13<<7 | 0x0B, - 24061 - 19968: jis0208<<14 | 0x22<<7 | 0x06, - 24062 - 19968: jis0208<<14 | 0x15<<7 | 0x31, - 24064 - 19968: jis0212<<14 | 0x1B<<7 | 0x03, - 24066 - 19968: jis0208<<14 | 0x1A<<7 | 0x33, - 24067 - 19968: jis0208<<14 | 0x28<<7 | 0x3A, - 24070 - 19968: jis0208<<14 | 0x27<<7 | 0x20, - 24071 - 19968: jis0212<<14 | 0x1B<<7 | 0x04, - 24075 - 19968: jis0208<<14 | 0x35<<7 | 0x42, - 24076 - 19968: jis0208<<14 | 0x13<<7 | 0x54, - 24077 - 19968: jis0212<<14 | 0x1B<<7 | 0x05, - 24081 - 19968: jis0208<<14 | 0x35<<7 | 0x45, - 24082 - 19968: jis0212<<14 | 0x1B<<7 | 0x06, - 24084 - 19968: jis0212<<14 | 0x1B<<7 | 0x07, - 24085 - 19968: jis0212<<14 | 0x1B<<7 | 0x08, - 24086 - 19968: jis0208<<14 | 0x23<<7 | 0x00, - 24088 - 19968: jis0212<<14 | 0x1B<<7 | 0x09, - 24089 - 19968: jis0208<<14 | 0x35<<7 | 0x44, - 24090 - 19968: jis0208<<14 | 0x35<<7 | 0x43, - 24091 - 19968: jis0208<<14 | 0x35<<7 | 0x46, - 24093 - 19968: jis0208<<14 | 0x23<<7 | 0x4A, - 24095 - 19968: jis0212<<14 | 0x1B<<7 | 0x0A, - 24096 - 19968: jis0212<<14 | 0x1B<<7 | 0x0B, - 24101 - 19968: jis0208<<14 | 0x1E<<7 | 0x42, - 24104 - 19968: jis0212<<14 | 0x1B<<7 | 0x0D, - 24107 - 19968: jis0208<<14 | 0x1A<<7 | 0x34, - 24109 - 19968: jis0208<<14 | 0x1F<<7 | 0x29, - 24110 - 19968: jis0212<<14 | 0x1B<<7 | 0x0C, - 24111 - 19968: jis0208<<14 | 0x21<<7 | 0x32, - 24112 - 19968: jis0208<<14 | 0x14<<7 | 0x01, - 24114 - 19968: jis0212<<14 | 0x1B<<7 | 0x0E, - 24115 - 19968: jis0208<<14 | 0x23<<7 | 0x01, - 24117 - 19968: jis0212<<14 | 0x1B<<7 | 0x0F, - 24118 - 19968: jis0208<<14 | 0x35<<7 | 0x47, - 24119 - 19968: jis0208<<14 | 0x35<<7 | 0x48, - 24120 - 19968: jis0208<<14 | 0x1D<<7 | 0x4E, - 24125 - 19968: jis0208<<14 | 0x2A<<7 | 0x18, - 24126 - 19968: jis0212<<14 | 0x1B<<7 | 0x10, - 24128 - 19968: jis0208<<14 | 0x35<<7 | 0x4B, - 24131 - 19968: jis0208<<14 | 0x35<<7 | 0x4A, - 24132 - 19968: jis0208<<14 | 0x35<<7 | 0x49, - 24133 - 19968: jis0208<<14 | 0x28<<7 | 0x5C, - 24135 - 19968: jis0208<<14 | 0x35<<7 | 0x52, - 24137 - 19968: jis0212<<14 | 0x1B<<7 | 0x13, - 24139 - 19968: jis0212<<14 | 0x1B<<7 | 0x11, - 24140 - 19968: jis0208<<14 | 0x2A<<7 | 0x39, - 24142 - 19968: jis0208<<14 | 0x35<<7 | 0x4C, - 24144 - 19968: jis0212<<14 | 0x1B<<7 | 0x12, - 24145 - 19968: jis0212<<14 | 0x1B<<7 | 0x14, - 24148 - 19968: jis0208<<14 | 0x35<<7 | 0x4E, - 24149 - 19968: jis0208<<14 | 0x2A<<7 | 0x4A, - 24150 - 19968: jis0212<<14 | 0x1B<<7 | 0x15, - 24151 - 19968: jis0208<<14 | 0x35<<7 | 0x4D, - 24152 - 19968: jis0212<<14 | 0x1B<<7 | 0x16, - 24155 - 19968: jis0212<<14 | 0x1B<<7 | 0x17, - 24156 - 19968: jis0212<<14 | 0x1B<<7 | 0x18, - 24158 - 19968: jis0212<<14 | 0x1B<<7 | 0x19, - 24159 - 19968: jis0208<<14 | 0x35<<7 | 0x4F, - 24161 - 19968: jis0208<<14 | 0x27<<7 | 0x07, - 24162 - 19968: jis0208<<14 | 0x35<<7 | 0x50, - 24163 - 19968: jis0208<<14 | 0x29<<7 | 0x1D, - 24164 - 19968: jis0208<<14 | 0x35<<7 | 0x51, - 24168 - 19968: jis0212<<14 | 0x1B<<7 | 0x1A, - 24170 - 19968: jis0212<<14 | 0x1B<<7 | 0x1B, - 24171 - 19968: jis0212<<14 | 0x1B<<7 | 0x1C, - 24172 - 19968: jis0212<<14 | 0x1B<<7 | 0x1D, - 24173 - 19968: jis0212<<14 | 0x1B<<7 | 0x1E, - 24174 - 19968: jis0212<<14 | 0x1B<<7 | 0x1F, - 24176 - 19968: jis0212<<14 | 0x1B<<7 | 0x20, - 24178 - 19968: jis0208<<14 | 0x13<<7 | 0x12, - 24179 - 19968: jis0208<<14 | 0x29<<7 | 0x1E, - 24180 - 19968: jis0208<<14 | 0x26<<7 | 0x0E, - 24181 - 19968: jis0208<<14 | 0x35<<7 | 0x53, - 24182 - 19968: jis0208<<14 | 0x35<<7 | 0x54, - 24184 - 19968: jis0208<<14 | 0x18<<7 | 0x0B, - 24185 - 19968: jis0208<<14 | 0x13<<7 | 0x13, - 24186 - 19968: jis0208<<14 | 0x35<<7 | 0x55, - 24187 - 19968: jis0208<<14 | 0x17<<7 | 0x17, - 24188 - 19968: jis0208<<14 | 0x2C<<7 | 0x23, - 24189 - 19968: jis0208<<14 | 0x2C<<7 | 0x08, - 24190 - 19968: jis0208<<14 | 0x13<<7 | 0x55, - 24191 - 19968: jis0208<<14 | 0x35<<7 | 0x57, - 24192 - 19968: jis0212<<14 | 0x1B<<7 | 0x21, - 24193 - 19968: jis0208<<14 | 0x23<<7 | 0x02, - 24195 - 19968: jis0208<<14 | 0x18<<7 | 0x0C, - 24196 - 19968: jis0208<<14 | 0x1D<<7 | 0x10, - 24199 - 19968: jis0208<<14 | 0x27<<7 | 0x3E, - 24202 - 19968: jis0208<<14 | 0x1D<<7 | 0x11, - 24203 - 19968: jis0212<<14 | 0x1B<<7 | 0x22, - 24206 - 19968: jis0212<<14 | 0x1B<<7 | 0x23, - 24207 - 19968: jis0208<<14 | 0x1C<<7 | 0x57, - 24213 - 19968: jis0208<<14 | 0x23<<7 | 0x4B, - 24214 - 19968: jis0208<<14 | 0x29<<7 | 0x58, - 24215 - 19968: jis0208<<14 | 0x24<<7 | 0x18, - 24218 - 19968: jis0208<<14 | 0x18<<7 | 0x0D, - 24220 - 19968: jis0208<<14 | 0x28<<7 | 0x3B, - 24224 - 19968: jis0208<<14 | 0x35<<7 | 0x58, - 24226 - 19968: jis0212<<14 | 0x1B<<7 | 0x24, - 24228 - 19968: jis0212<<14 | 0x1B<<7 | 0x25, - 24229 - 19968: jis0212<<14 | 0x1B<<7 | 0x26, - 24230 - 19968: jis0208<<14 | 0x24<<7 | 0x38, - 24231 - 19968: jis0208<<14 | 0x19<<7 | 0x21, - 24232 - 19968: jis0212<<14 | 0x1B<<7 | 0x27, - 24234 - 19968: jis0212<<14 | 0x1B<<7 | 0x28, - 24235 - 19968: jis0208<<14 | 0x17<<7 | 0x2A, - 24236 - 19968: jis0212<<14 | 0x1B<<7 | 0x29, - 24237 - 19968: jis0208<<14 | 0x23<<7 | 0x4C, - 24241 - 19968: jis0212<<14 | 0x1B<<7 | 0x2A, - 24243 - 19968: jis0212<<14 | 0x1B<<7 | 0x2B, - 24245 - 19968: jis0208<<14 | 0x0F<<7 | 0x22, - 24246 - 19968: jis0208<<14 | 0x1C<<7 | 0x4D, - 24247 - 19968: jis0208<<14 | 0x18<<7 | 0x0E, - 24248 - 19968: jis0208<<14 | 0x2C<<7 | 0x26, - 24253 - 19968: jis0212<<14 | 0x1B<<7 | 0x2C, - 24254 - 19968: jis0212<<14 | 0x1B<<7 | 0x2D, - 24255 - 19968: jis0212<<14 | 0x1B<<7 | 0x2E, - 24257 - 19968: jis0208<<14 | 0x35<<7 | 0x59, - 24258 - 19968: jis0208<<14 | 0x35<<7 | 0x5A, - 24259 - 19968: jis0208<<14 | 0x26<<7 | 0x30, - 24262 - 19968: jis0212<<14 | 0x1B<<7 | 0x2F, - 24264 - 19968: jis0208<<14 | 0x35<<7 | 0x5B, - 24265 - 19968: jis0208<<14 | 0x2D<<7 | 0x56, - 24266 - 19968: jis0208<<14 | 0x2E<<7 | 0x0C, - 24267 - 19968: jis0212<<14 | 0x1B<<7 | 0x31, - 24268 - 19968: jis0212<<14 | 0x1B<<7 | 0x30, - 24270 - 19968: jis0212<<14 | 0x1B<<7 | 0x32, - 24271 - 19968: jis0208<<14 | 0x35<<7 | 0x5D, - 24272 - 19968: jis0208<<14 | 0x35<<7 | 0x5C, - 24273 - 19968: jis0212<<14 | 0x1B<<7 | 0x33, - 24274 - 19968: jis0212<<14 | 0x1B<<7 | 0x34, - 24275 - 19968: jis0208<<14 | 0x12<<7 | 0x26, - 24276 - 19968: jis0212<<14 | 0x1B<<7 | 0x35, - 24277 - 19968: jis0212<<14 | 0x1B<<7 | 0x36, - 24278 - 19968: jis0208<<14 | 0x36<<7 | 0x00, - 24282 - 19968: jis0208<<14 | 0x36<<7 | 0x03, - 24283 - 19968: jis0208<<14 | 0x36<<7 | 0x04, - 24284 - 19968: jis0212<<14 | 0x1B<<7 | 0x37, - 24285 - 19968: jis0208<<14 | 0x36<<7 | 0x02, - 24286 - 19968: jis0212<<14 | 0x1B<<7 | 0x38, - 24287 - 19968: jis0208<<14 | 0x28<<7 | 0x1F, - 24288 - 19968: jis0208<<14 | 0x1D<<7 | 0x12, - 24289 - 19968: jis0208<<14 | 0x36<<7 | 0x06, - 24290 - 19968: jis0208<<14 | 0x36<<7 | 0x05, - 24291 - 19968: jis0208<<14 | 0x36<<7 | 0x01, - 24293 - 19968: jis0212<<14 | 0x1B<<7 | 0x39, - 24296 - 19968: jis0208<<14 | 0x36<<7 | 0x07, - 24297 - 19968: jis0208<<14 | 0x36<<7 | 0x08, - 24299 - 19968: jis0212<<14 | 0x1B<<7 | 0x3A, - 24300 - 19968: jis0208<<14 | 0x36<<7 | 0x09, - 24304 - 19968: jis0208<<14 | 0x36<<7 | 0x0C, - 24305 - 19968: jis0208<<14 | 0x36<<7 | 0x0A, - 24307 - 19968: jis0208<<14 | 0x36<<7 | 0x0B, - 24308 - 19968: jis0208<<14 | 0x36<<7 | 0x0D, - 24310 - 19968: jis0208<<14 | 0x10<<7 | 0x43, - 24311 - 19968: jis0208<<14 | 0x23<<7 | 0x4D, - 24312 - 19968: jis0208<<14 | 0x36<<7 | 0x0E, - 24314 - 19968: jis0208<<14 | 0x16<<7 | 0x59, - 24315 - 19968: jis0208<<14 | 0x11<<7 | 0x55, - 24316 - 19968: jis0208<<14 | 0x26<<7 | 0x15, - 24318 - 19968: jis0208<<14 | 0x36<<7 | 0x0F, - 24319 - 19968: jis0208<<14 | 0x25<<7 | 0x5A, - 24321 - 19968: jis0208<<14 | 0x29<<7 | 0x3A, - 24322 - 19968: jis0212<<14 | 0x1B<<7 | 0x3B, - 24323 - 19968: jis0208<<14 | 0x36<<7 | 0x10, - 24324 - 19968: jis0208<<14 | 0x2E<<7 | 0x0D, - 24326 - 19968: jis0212<<14 | 0x1B<<7 | 0x3C, - 24327 - 19968: jis0212<<14 | 0x1B<<7 | 0x3D, - 24328 - 19968: jis0212<<14 | 0x1B<<7 | 0x3E, - 24329 - 19968: jis0208<<14 | 0x36<<7 | 0x11, - 24330 - 19968: jis0208<<14 | 0x29<<7 | 0x1F, - 24331 - 19968: jis0208<<14 | 0x36<<7 | 0x14, - 24332 - 19968: jis0208<<14 | 0x2F<<7 | 0x00, - 24333 - 19968: jis0208<<14 | 0x2F<<7 | 0x10, - 24334 - 19968: jis0212<<14 | 0x1B<<7 | 0x3F, - 24335 - 19968: jis0208<<14 | 0x1B<<7 | 0x0F, - 24336 - 19968: jis0208<<14 | 0x25<<7 | 0x54, - 24337 - 19968: jis0208<<14 | 0x36<<7 | 0x15, - 24339 - 19968: jis0208<<14 | 0x14<<7 | 0x3C, - 24340 - 19968: jis0208<<14 | 0x23<<7 | 0x03, - 24341 - 19968: jis0208<<14 | 0x0F<<7 | 0x59, - 24342 - 19968: jis0208<<14 | 0x36<<7 | 0x16, - 24343 - 19968: jis0208<<14 | 0x29<<7 | 0x05, - 24344 - 19968: jis0208<<14 | 0x18<<7 | 0x0F, - 24345 - 19968: jis0212<<14 | 0x1B<<7 | 0x40, - 24347 - 19968: jis0208<<14 | 0x22<<7 | 0x2F, - 24348 - 19968: jis0212<<14 | 0x1B<<7 | 0x41, - 24349 - 19968: jis0212<<14 | 0x1B<<7 | 0x42, - 24351 - 19968: jis0208<<14 | 0x23<<7 | 0x4E, - 24353 - 19968: jis0208<<14 | 0x58<<7 | 0x5A, - 24354 - 19968: jis0212<<14 | 0x1B<<7 | 0x44, - 24355 - 19968: jis0212<<14 | 0x1B<<7 | 0x45, - 24356 - 19968: jis0212<<14 | 0x1B<<7 | 0x46, - 24357 - 19968: jis0208<<14 | 0x2B<<7 | 0x4E, - 24358 - 19968: jis0208<<14 | 0x17<<7 | 0x18, - 24359 - 19968: jis0208<<14 | 0x17<<7 | 0x2B, - 24360 - 19968: jis0212<<14 | 0x1B<<7 | 0x47, - 24361 - 19968: jis0208<<14 | 0x36<<7 | 0x17, - 24363 - 19968: jis0212<<14 | 0x1B<<7 | 0x48, - 24364 - 19968: jis0212<<14 | 0x1B<<7 | 0x49, - 24365 - 19968: jis0208<<14 | 0x36<<7 | 0x18, - 24366 - 19968: jis0212<<14 | 0x1B<<7 | 0x4A, - 24367 - 19968: jis0208<<14 | 0x36<<7 | 0x1E, - 24368 - 19968: jis0212<<14 | 0x1B<<7 | 0x4B, - 24369 - 19968: jis0208<<14 | 0x1B<<7 | 0x44, - 24372 - 19968: jis0208<<14 | 0x58<<7 | 0x5B, - 24373 - 19968: jis0208<<14 | 0x23<<7 | 0x04, - 24374 - 19968: jis0212<<14 | 0x1B<<7 | 0x4D, - 24375 - 19968: jis0208<<14 | 0x15<<7 | 0x0E, - 24376 - 19968: jis0208<<14 | 0x36<<7 | 0x19, - 24379 - 19968: jis0212<<14 | 0x1B<<7 | 0x4E, - 24380 - 19968: jis0208<<14 | 0x28<<7 | 0x0A, - 24381 - 19968: jis0212<<14 | 0x1B<<7 | 0x4F, - 24382 - 19968: jis0208<<14 | 0x22<<7 | 0x25, - 24383 - 19968: jis0212<<14 | 0x1B<<7 | 0x50, - 24384 - 19968: jis0212<<14 | 0x1B<<7 | 0x51, - 24385 - 19968: jis0208<<14 | 0x36<<7 | 0x1A, - 24388 - 19968: jis0212<<14 | 0x1B<<7 | 0x52, - 24389 - 19968: jis0208<<14 | 0x58<<7 | 0x0B, - 24391 - 19968: jis0212<<14 | 0x1B<<7 | 0x54, - 24392 - 19968: jis0208<<14 | 0x36<<7 | 0x1B, - 24394 - 19968: jis0208<<14 | 0x15<<7 | 0x0F, - 24396 - 19968: jis0208<<14 | 0x36<<7 | 0x1C, - 24397 - 19968: jis0212<<14 | 0x1B<<7 | 0x55, - 24398 - 19968: jis0208<<14 | 0x36<<7 | 0x1D, - 24400 - 19968: jis0212<<14 | 0x1B<<7 | 0x56, - 24401 - 19968: jis0208<<14 | 0x36<<7 | 0x1F, - 24403 - 19968: jis0208<<14 | 0x24<<7 | 0x55, - 24404 - 19968: jis0212<<14 | 0x1B<<7 | 0x57, - 24406 - 19968: jis0208<<14 | 0x36<<7 | 0x20, - 24407 - 19968: jis0208<<14 | 0x36<<7 | 0x21, - 24408 - 19968: jis0212<<14 | 0x1B<<7 | 0x58, - 24409 - 19968: jis0208<<14 | 0x36<<7 | 0x22, - 24411 - 19968: jis0212<<14 | 0x1B<<7 | 0x59, - 24412 - 19968: jis0208<<14 | 0x36<<7 | 0x13, - 24413 - 19968: jis0208<<14 | 0x36<<7 | 0x12, - 24416 - 19968: jis0212<<14 | 0x1B<<7 | 0x5A, - 24417 - 19968: jis0208<<14 | 0x36<<7 | 0x23, - 24418 - 19968: jis0208<<14 | 0x16<<7 | 0x20, - 24419 - 19968: jis0212<<14 | 0x1B<<7 | 0x5B, - 24420 - 19968: jis0212<<14 | 0x1B<<7 | 0x5C, - 24422 - 19968: jis0208<<14 | 0x28<<7 | 0x06, - 24423 - 19968: jis0208<<14 | 0x58<<7 | 0x5C, - 24425 - 19968: jis0208<<14 | 0x19<<7 | 0x2B, - 24426 - 19968: jis0208<<14 | 0x28<<7 | 0x16, - 24427 - 19968: jis0208<<14 | 0x23<<7 | 0x05, - 24428 - 19968: jis0208<<14 | 0x28<<7 | 0x2A, - 24429 - 19968: jis0208<<14 | 0x36<<7 | 0x24, - 24431 - 19968: jis0212<<14 | 0x1C<<7 | 0x00, - 24432 - 19968: jis0208<<14 | 0x1D<<7 | 0x13, - 24433 - 19968: jis0208<<14 | 0x10<<7 | 0x25, - 24434 - 19968: jis0212<<14 | 0x1C<<7 | 0x01, - 24435 - 19968: jis0208<<14 | 0x36<<7 | 0x25, - 24436 - 19968: jis0212<<14 | 0x1C<<7 | 0x02, - 24437 - 19968: jis0212<<14 | 0x1C<<7 | 0x03, - 24439 - 19968: jis0208<<14 | 0x36<<7 | 0x26, - 24440 - 19968: jis0212<<14 | 0x1C<<7 | 0x04, - 24441 - 19968: jis0208<<14 | 0x2B<<7 | 0x51, - 24442 - 19968: jis0212<<14 | 0x1C<<7 | 0x05, - 24444 - 19968: jis0208<<14 | 0x27<<7 | 0x3F, - 24445 - 19968: jis0212<<14 | 0x1C<<7 | 0x06, - 24446 - 19968: jis0212<<14 | 0x1C<<7 | 0x07, - 24447 - 19968: jis0208<<14 | 0x36<<7 | 0x29, - 24448 - 19968: jis0208<<14 | 0x10<<7 | 0x5C, - 24449 - 19968: jis0208<<14 | 0x1F<<7 | 0x0B, - 24450 - 19968: jis0208<<14 | 0x36<<7 | 0x28, - 24451 - 19968: jis0208<<14 | 0x36<<7 | 0x27, - 24452 - 19968: jis0208<<14 | 0x16<<7 | 0x21, - 24453 - 19968: jis0208<<14 | 0x21<<7 | 0x33, - 24455 - 19968: jis0208<<14 | 0x36<<7 | 0x2D, - 24456 - 19968: jis0208<<14 | 0x36<<7 | 0x2B, - 24457 - 19968: jis0212<<14 | 0x1C<<7 | 0x08, - 24458 - 19968: jis0208<<14 | 0x36<<7 | 0x2A, - 24459 - 19968: jis0208<<14 | 0x2D<<7 | 0x06, - 24460 - 19968: jis0208<<14 | 0x17<<7 | 0x44, - 24461 - 19968: jis0212<<14 | 0x1C<<7 | 0x09, - 24463 - 19968: jis0212<<14 | 0x1C<<7 | 0x0A, - 24464 - 19968: jis0208<<14 | 0x1C<<7 | 0x58, - 24465 - 19968: jis0208<<14 | 0x36<<7 | 0x2C, - 24466 - 19968: jis0208<<14 | 0x24<<7 | 0x2B, - 24467 - 19968: jis0208<<14 | 0x1C<<7 | 0x1D, - 24470 - 19968: jis0212<<14 | 0x1C<<7 | 0x0B, - 24471 - 19968: jis0208<<14 | 0x25<<7 | 0x1F, - 24472 - 19968: jis0208<<14 | 0x36<<7 | 0x30, - 24473 - 19968: jis0208<<14 | 0x36<<7 | 0x2F, - 24476 - 19968: jis0212<<14 | 0x1C<<7 | 0x0C, - 24477 - 19968: jis0212<<14 | 0x1C<<7 | 0x0D, - 24478 - 19968: jis0208<<14 | 0x36<<7 | 0x2E, - 24480 - 19968: jis0208<<14 | 0x36<<7 | 0x31, - 24481 - 19968: jis0208<<14 | 0x17<<7 | 0x45, - 24482 - 19968: jis0212<<14 | 0x1C<<7 | 0x0E, - 24484 - 19968: jis0212<<14 | 0x1C<<7 | 0x11, - 24487 - 19968: jis0212<<14 | 0x1C<<7 | 0x0F, - 24488 - 19968: jis0208<<14 | 0x36<<7 | 0x32, - 24489 - 19968: jis0208<<14 | 0x28<<7 | 0x5B, - 24490 - 19968: jis0208<<14 | 0x1C<<7 | 0x3A, - 24491 - 19968: jis0212<<14 | 0x1C<<7 | 0x10, - 24492 - 19968: jis0212<<14 | 0x1C<<7 | 0x12, - 24493 - 19968: jis0208<<14 | 0x36<<7 | 0x33, - 24494 - 19968: jis0208<<14 | 0x27<<7 | 0x58, - 24495 - 19968: jis0212<<14 | 0x1C<<7 | 0x13, - 24496 - 19968: jis0212<<14 | 0x1C<<7 | 0x14, - 24497 - 19968: jis0212<<14 | 0x1C<<7 | 0x15, - 24499 - 19968: jis0208<<14 | 0x25<<7 | 0x20, - 24500 - 19968: jis0208<<14 | 0x23<<7 | 0x06, - 24503 - 19968: jis0208<<14 | 0x58<<7 | 0x5D, - 24504 - 19968: jis0212<<14 | 0x1C<<7 | 0x16, - 24505 - 19968: jis0208<<14 | 0x24<<7 | 0x0F, - 24508 - 19968: jis0208<<14 | 0x36<<7 | 0x34, - 24509 - 19968: jis0208<<14 | 0x14<<7 | 0x0A, - 24515 - 19968: jis0208<<14 | 0x1E<<7 | 0x13, - 24516 - 19968: jis0212<<14 | 0x1C<<7 | 0x17, - 24517 - 19968: jis0208<<14 | 0x28<<7 | 0x0B, - 24519 - 19968: jis0212<<14 | 0x1C<<7 | 0x18, - 24520 - 19968: jis0212<<14 | 0x1C<<7 | 0x19, - 24521 - 19968: jis0212<<14 | 0x1C<<7 | 0x1A, - 24523 - 19968: jis0212<<14 | 0x1C<<7 | 0x1B, - 24524 - 19968: jis0208<<14 | 0x13<<7 | 0x56, - 24525 - 19968: jis0208<<14 | 0x26<<7 | 0x05, - 24528 - 19968: jis0212<<14 | 0x1C<<7 | 0x1C, - 24529 - 19968: jis0212<<14 | 0x1C<<7 | 0x1D, - 24530 - 19968: jis0212<<14 | 0x1C<<7 | 0x1E, - 24531 - 19968: jis0212<<14 | 0x1C<<7 | 0x1F, - 24532 - 19968: jis0212<<14 | 0x1C<<7 | 0x20, - 24534 - 19968: jis0208<<14 | 0x36<<7 | 0x35, - 24535 - 19968: jis0208<<14 | 0x1A<<7 | 0x35, - 24536 - 19968: jis0208<<14 | 0x2A<<7 | 0x19, - 24537 - 19968: jis0208<<14 | 0x2A<<7 | 0x1A, - 24540 - 19968: jis0208<<14 | 0x10<<7 | 0x5D, - 24541 - 19968: jis0208<<14 | 0x36<<7 | 0x3A, - 24542 - 19968: jis0208<<14 | 0x59<<7 | 0x00, - 24544 - 19968: jis0208<<14 | 0x22<<7 | 0x48, - 24545 - 19968: jis0212<<14 | 0x1C<<7 | 0x22, - 24546 - 19968: jis0212<<14 | 0x1C<<7 | 0x23, - 24548 - 19968: jis0208<<14 | 0x36<<7 | 0x37, - 24552 - 19968: jis0212<<14 | 0x1C<<7 | 0x24, - 24553 - 19968: jis0212<<14 | 0x1C<<7 | 0x25, - 24554 - 19968: jis0212<<14 | 0x1C<<7 | 0x26, - 24555 - 19968: jis0208<<14 | 0x11<<7 | 0x56, - 24556 - 19968: jis0212<<14 | 0x1C<<7 | 0x27, - 24557 - 19968: jis0212<<14 | 0x1C<<7 | 0x28, - 24558 - 19968: jis0212<<14 | 0x1C<<7 | 0x29, - 24559 - 19968: jis0212<<14 | 0x1C<<7 | 0x2A, - 24560 - 19968: jis0208<<14 | 0x37<<7 | 0x0C, - 24561 - 19968: jis0208<<14 | 0x36<<7 | 0x39, - 24562 - 19968: jis0212<<14 | 0x1C<<7 | 0x2B, - 24563 - 19968: jis0212<<14 | 0x1C<<7 | 0x2C, - 24565 - 19968: jis0208<<14 | 0x26<<7 | 0x0F, - 24566 - 19968: jis0212<<14 | 0x1C<<7 | 0x2D, - 24568 - 19968: jis0208<<14 | 0x36<<7 | 0x38, - 24570 - 19968: jis0212<<14 | 0x1C<<7 | 0x2E, - 24571 - 19968: jis0208<<14 | 0x36<<7 | 0x36, - 24572 - 19968: jis0212<<14 | 0x1C<<7 | 0x2F, - 24573 - 19968: jis0208<<14 | 0x18<<7 | 0x59, - 24575 - 19968: jis0208<<14 | 0x36<<7 | 0x3C, - 24583 - 19968: jis0212<<14 | 0x1C<<7 | 0x30, - 24586 - 19968: jis0212<<14 | 0x1C<<7 | 0x31, - 24589 - 19968: jis0212<<14 | 0x1C<<7 | 0x32, - 24590 - 19968: jis0208<<14 | 0x36<<7 | 0x42, - 24591 - 19968: jis0208<<14 | 0x36<<7 | 0x48, - 24592 - 19968: jis0208<<14 | 0x36<<7 | 0x40, - 24594 - 19968: jis0208<<14 | 0x24<<7 | 0x3B, - 24595 - 19968: jis0212<<14 | 0x1C<<7 | 0x33, - 24596 - 19968: jis0212<<14 | 0x1C<<7 | 0x34, - 24597 - 19968: jis0208<<14 | 0x36<<7 | 0x45, - 24598 - 19968: jis0208<<14 | 0x28<<7 | 0x3C, - 24599 - 19968: jis0212<<14 | 0x1C<<7 | 0x35, - 24600 - 19968: jis0212<<14 | 0x1C<<7 | 0x36, - 24601 - 19968: jis0208<<14 | 0x36<<7 | 0x3F, - 24602 - 19968: jis0212<<14 | 0x1C<<7 | 0x37, - 24603 - 19968: jis0208<<14 | 0x36<<7 | 0x44, - 24604 - 19968: jis0208<<14 | 0x2D<<7 | 0x46, - 24605 - 19968: jis0208<<14 | 0x1A<<7 | 0x36, - 24607 - 19968: jis0212<<14 | 0x1C<<7 | 0x38, - 24608 - 19968: jis0208<<14 | 0x21<<7 | 0x34, - 24609 - 19968: jis0208<<14 | 0x36<<7 | 0x3D, - 24612 - 19968: jis0212<<14 | 0x1C<<7 | 0x39, - 24613 - 19968: jis0208<<14 | 0x14<<7 | 0x3D, - 24614 - 19968: jis0208<<14 | 0x36<<7 | 0x47, - 24615 - 19968: jis0208<<14 | 0x1F<<7 | 0x0C, - 24616 - 19968: jis0208<<14 | 0x10<<7 | 0x44, - 24617 - 19968: jis0208<<14 | 0x36<<7 | 0x41, - 24618 - 19968: jis0208<<14 | 0x11<<7 | 0x57, - 24619 - 19968: jis0208<<14 | 0x36<<7 | 0x46, - 24621 - 19968: jis0212<<14 | 0x1C<<7 | 0x3A, - 24623 - 19968: jis0208<<14 | 0x15<<7 | 0x10, - 24625 - 19968: jis0208<<14 | 0x36<<7 | 0x43, - 24627 - 19968: jis0212<<14 | 0x1C<<7 | 0x3B, - 24629 - 19968: jis0212<<14 | 0x1C<<7 | 0x3C, - 24634 - 19968: jis0208<<14 | 0x36<<7 | 0x49, - 24640 - 19968: jis0212<<14 | 0x1C<<7 | 0x3D, - 24641 - 19968: jis0208<<14 | 0x36<<7 | 0x4B, - 24642 - 19968: jis0208<<14 | 0x36<<7 | 0x55, - 24643 - 19968: jis0208<<14 | 0x36<<7 | 0x53, - 24646 - 19968: jis0208<<14 | 0x36<<7 | 0x50, - 24647 - 19968: jis0212<<14 | 0x1C<<7 | 0x3E, - 24648 - 19968: jis0212<<14 | 0x1C<<7 | 0x3F, - 24649 - 19968: jis0212<<14 | 0x1C<<7 | 0x40, - 24650 - 19968: jis0208<<14 | 0x36<<7 | 0x4F, - 24651 - 19968: jis0208<<14 | 0x2D<<7 | 0x57, - 24652 - 19968: jis0212<<14 | 0x1C<<7 | 0x41, - 24653 - 19968: jis0208<<14 | 0x36<<7 | 0x51, - 24656 - 19968: jis0208<<14 | 0x15<<7 | 0x11, - 24657 - 19968: jis0212<<14 | 0x1C<<7 | 0x42, - 24658 - 19968: jis0208<<14 | 0x18<<7 | 0x10, - 24660 - 19968: jis0212<<14 | 0x1C<<7 | 0x43, - 24661 - 19968: jis0208<<14 | 0x1C<<7 | 0x59, - 24662 - 19968: jis0212<<14 | 0x1C<<7 | 0x44, - 24663 - 19968: jis0212<<14 | 0x1C<<7 | 0x45, - 24665 - 19968: jis0208<<14 | 0x36<<7 | 0x58, - 24666 - 19968: jis0208<<14 | 0x36<<7 | 0x4A, - 24669 - 19968: jis0208<<14 | 0x59<<7 | 0x01, - 24671 - 19968: jis0208<<14 | 0x36<<7 | 0x4E, - 24672 - 19968: jis0208<<14 | 0x36<<7 | 0x3E, - 24673 - 19968: jis0212<<14 | 0x1C<<7 | 0x47, - 24674 - 19968: jis0208<<14 | 0x11<<7 | 0x59, - 24675 - 19968: jis0208<<14 | 0x36<<7 | 0x52, - 24676 - 19968: jis0208<<14 | 0x36<<7 | 0x54, - 24677 - 19968: jis0208<<14 | 0x22<<7 | 0x30, - 24679 - 19968: jis0212<<14 | 0x1C<<7 | 0x48, - 24680 - 19968: jis0208<<14 | 0x19<<7 | 0x07, - 24681 - 19968: jis0208<<14 | 0x11<<7 | 0x17, - 24682 - 19968: jis0208<<14 | 0x36<<7 | 0x4C, - 24683 - 19968: jis0208<<14 | 0x36<<7 | 0x57, - 24684 - 19968: jis0208<<14 | 0x36<<7 | 0x56, - 24685 - 19968: jis0208<<14 | 0x15<<7 | 0x12, - 24687 - 19968: jis0208<<14 | 0x21<<7 | 0x08, - 24688 - 19968: jis0208<<14 | 0x12<<7 | 0x45, - 24689 - 19968: jis0212<<14 | 0x1C<<7 | 0x49, - 24693 - 19968: jis0208<<14 | 0x16<<7 | 0x22, - 24695 - 19968: jis0208<<14 | 0x36<<7 | 0x4D, - 24702 - 19968: jis0212<<14 | 0x1C<<7 | 0x4A, - 24703 - 19968: jis0212<<14 | 0x1C<<7 | 0x4B, - 24705 - 19968: jis0208<<14 | 0x36<<7 | 0x59, - 24706 - 19968: jis0212<<14 | 0x1C<<7 | 0x4C, - 24707 - 19968: jis0208<<14 | 0x36<<7 | 0x5C, - 24708 - 19968: jis0208<<14 | 0x37<<7 | 0x00, - 24709 - 19968: jis0208<<14 | 0x59<<7 | 0x02, - 24710 - 19968: jis0212<<14 | 0x1C<<7 | 0x4D, - 24712 - 19968: jis0212<<14 | 0x1C<<7 | 0x4E, - 24713 - 19968: jis0208<<14 | 0x1B<<7 | 0x1C, - 24714 - 19968: jis0208<<14 | 0x59<<7 | 0x03, - 24715 - 19968: jis0208<<14 | 0x37<<7 | 0x06, - 24716 - 19968: jis0208<<14 | 0x23<<7 | 0x4F, - 24717 - 19968: jis0208<<14 | 0x36<<7 | 0x5A, - 24718 - 19968: jis0212<<14 | 0x1C<<7 | 0x50, - 24721 - 19968: jis0212<<14 | 0x1C<<7 | 0x51, - 24722 - 19968: jis0208<<14 | 0x37<<7 | 0x04, - 24723 - 19968: jis0212<<14 | 0x1C<<7 | 0x52, - 24724 - 19968: jis0208<<14 | 0x11<<7 | 0x58, - 24725 - 19968: jis0212<<14 | 0x1C<<7 | 0x53, - 24726 - 19968: jis0208<<14 | 0x37<<7 | 0x02, - 24727 - 19968: jis0208<<14 | 0x37<<7 | 0x03, - 24728 - 19968: jis0212<<14 | 0x1C<<7 | 0x54, - 24730 - 19968: jis0208<<14 | 0x36<<7 | 0x5D, - 24731 - 19968: jis0208<<14 | 0x37<<7 | 0x01, - 24733 - 19968: jis0212<<14 | 0x1C<<7 | 0x55, - 24734 - 19968: jis0212<<14 | 0x1C<<7 | 0x56, - 24735 - 19968: jis0208<<14 | 0x17<<7 | 0x46, - 24736 - 19968: jis0208<<14 | 0x2C<<7 | 0x09, - 24738 - 19968: jis0212<<14 | 0x1C<<7 | 0x57, - 24739 - 19968: jis0208<<14 | 0x13<<7 | 0x14, - 24740 - 19968: jis0212<<14 | 0x1C<<7 | 0x58, - 24741 - 19968: jis0212<<14 | 0x1C<<7 | 0x59, - 24742 - 19968: jis0208<<14 | 0x10<<7 | 0x38, - 24743 - 19968: jis0208<<14 | 0x37<<7 | 0x05, - 24744 - 19968: jis0212<<14 | 0x1C<<7 | 0x5A, - 24745 - 19968: jis0208<<14 | 0x26<<7 | 0x19, - 24746 - 19968: jis0208<<14 | 0x0F<<7 | 0x0C, - 24752 - 19968: jis0212<<14 | 0x1C<<7 | 0x5B, - 24753 - 19968: jis0212<<14 | 0x1C<<7 | 0x5C, - 24754 - 19968: jis0208<<14 | 0x27<<7 | 0x40, - 24755 - 19968: jis0208<<14 | 0x36<<7 | 0x3B, - 24756 - 19968: jis0208<<14 | 0x37<<7 | 0x0B, - 24757 - 19968: jis0208<<14 | 0x37<<7 | 0x0F, - 24758 - 19968: jis0208<<14 | 0x2B<<7 | 0x44, - 24759 - 19968: jis0212<<14 | 0x1C<<7 | 0x5D, - 24760 - 19968: jis0208<<14 | 0x37<<7 | 0x08, - 24763 - 19968: jis0212<<14 | 0x1D<<7 | 0x00, - 24764 - 19968: jis0208<<14 | 0x24<<7 | 0x48, - 24765 - 19968: jis0208<<14 | 0x37<<7 | 0x0D, - 24766 - 19968: jis0212<<14 | 0x1D<<7 | 0x01, - 24770 - 19968: jis0212<<14 | 0x1D<<7 | 0x02, - 24772 - 19968: jis0212<<14 | 0x1D<<7 | 0x03, - 24773 - 19968: jis0208<<14 | 0x1D<<7 | 0x4F, - 24774 - 19968: jis0208<<14 | 0x37<<7 | 0x0E, - 24775 - 19968: jis0208<<14 | 0x25<<7 | 0x36, - 24776 - 19968: jis0212<<14 | 0x1D<<7 | 0x04, - 24777 - 19968: jis0212<<14 | 0x1D<<7 | 0x05, - 24778 - 19968: jis0212<<14 | 0x1D<<7 | 0x06, - 24779 - 19968: jis0212<<14 | 0x1D<<7 | 0x07, - 24782 - 19968: jis0212<<14 | 0x1D<<7 | 0x08, - 24783 - 19968: jis0212<<14 | 0x1D<<7 | 0x09, - 24785 - 19968: jis0208<<14 | 0x2E<<7 | 0x26, - 24787 - 19968: jis0208<<14 | 0x37<<7 | 0x0A, - 24788 - 19968: jis0212<<14 | 0x1D<<7 | 0x0A, - 24789 - 19968: jis0208<<14 | 0x59<<7 | 0x05, - 24792 - 19968: jis0208<<14 | 0x37<<7 | 0x10, - 24793 - 19968: jis0212<<14 | 0x1D<<7 | 0x0C, - 24794 - 19968: jis0208<<14 | 0x18<<7 | 0x5A, - 24795 - 19968: jis0212<<14 | 0x1D<<7 | 0x0D, - 24796 - 19968: jis0208<<14 | 0x1F<<7 | 0x2A, - 24797 - 19968: jis0212<<14 | 0x1D<<7 | 0x0E, - 24798 - 19968: jis0208<<14 | 0x59<<7 | 0x04, - 24799 - 19968: jis0208<<14 | 0x0F<<7 | 0x33, - 24800 - 19968: jis0208<<14 | 0x37<<7 | 0x09, - 24801 - 19968: jis0208<<14 | 0x37<<7 | 0x07, - 24802 - 19968: jis0212<<14 | 0x1D<<7 | 0x10, - 24803 - 19968: jis0208<<14 | 0x20<<7 | 0x39, - 24805 - 19968: jis0212<<14 | 0x1D<<7 | 0x11, - 24807 - 19968: jis0208<<14 | 0x36<<7 | 0x5B, - 24808 - 19968: jis0208<<14 | 0x1A<<7 | 0x13, - 24816 - 19968: jis0208<<14 | 0x21<<7 | 0x25, - 24817 - 19968: jis0208<<14 | 0x37<<7 | 0x1C, - 24818 - 19968: jis0208<<14 | 0x59<<7 | 0x07, - 24819 - 19968: jis0208<<14 | 0x20<<7 | 0x3A, - 24820 - 19968: jis0208<<14 | 0x37<<7 | 0x17, - 24821 - 19968: jis0212<<14 | 0x1D<<7 | 0x13, - 24822 - 19968: jis0208<<14 | 0x37<<7 | 0x14, - 24823 - 19968: jis0208<<14 | 0x37<<7 | 0x15, - 24824 - 19968: jis0212<<14 | 0x1D<<7 | 0x14, - 24825 - 19968: jis0208<<14 | 0x1B<<7 | 0x45, - 24826 - 19968: jis0208<<14 | 0x37<<7 | 0x18, - 24827 - 19968: jis0208<<14 | 0x37<<7 | 0x1B, - 24828 - 19968: jis0212<<14 | 0x1D<<7 | 0x15, - 24829 - 19968: jis0212<<14 | 0x1D<<7 | 0x16, - 24832 - 19968: jis0208<<14 | 0x37<<7 | 0x16, - 24833 - 19968: jis0208<<14 | 0x1C<<7 | 0x04, - 24834 - 19968: jis0212<<14 | 0x1D<<7 | 0x17, - 24835 - 19968: jis0208<<14 | 0x37<<7 | 0x19, - 24838 - 19968: jis0208<<14 | 0x37<<7 | 0x13, - 24839 - 19968: jis0212<<14 | 0x1D<<7 | 0x18, - 24840 - 19968: jis0208<<14 | 0x2B<<7 | 0x5B, - 24841 - 19968: jis0208<<14 | 0x2B<<7 | 0x5A, - 24842 - 19968: jis0212<<14 | 0x1D<<7 | 0x19, - 24844 - 19968: jis0212<<14 | 0x1D<<7 | 0x1A, - 24845 - 19968: jis0208<<14 | 0x37<<7 | 0x1D, - 24846 - 19968: jis0208<<14 | 0x37<<7 | 0x1E, - 24847 - 19968: jis0208<<14 | 0x0F<<7 | 0x34, - 24848 - 19968: jis0212<<14 | 0x1D<<7 | 0x1B, - 24849 - 19968: jis0208<<14 | 0x59<<7 | 0x08, - 24850 - 19968: jis0212<<14 | 0x1D<<7 | 0x1D, - 24851 - 19968: jis0212<<14 | 0x1D<<7 | 0x1E, - 24852 - 19968: jis0212<<14 | 0x1D<<7 | 0x1F, - 24853 - 19968: jis0208<<14 | 0x37<<7 | 0x12, - 24854 - 19968: jis0212<<14 | 0x1D<<7 | 0x20, - 24855 - 19968: jis0212<<14 | 0x1D<<7 | 0x21, - 24857 - 19968: jis0212<<14 | 0x1D<<7 | 0x22, - 24858 - 19968: jis0208<<14 | 0x15<<7 | 0x51, - 24859 - 19968: jis0208<<14 | 0x0F<<7 | 0x05, - 24860 - 19968: jis0212<<14 | 0x1D<<7 | 0x23, - 24862 - 19968: jis0212<<14 | 0x1D<<7 | 0x24, - 24863 - 19968: jis0208<<14 | 0x13<<7 | 0x15, - 24864 - 19968: jis0208<<14 | 0x59<<7 | 0x06, - 24865 - 19968: jis0208<<14 | 0x37<<7 | 0x1A, - 24866 - 19968: jis0212<<14 | 0x1D<<7 | 0x25, - 24871 - 19968: jis0208<<14 | 0x37<<7 | 0x22, - 24872 - 19968: jis0208<<14 | 0x37<<7 | 0x21, - 24874 - 19968: jis0212<<14 | 0x1D<<7 | 0x26, - 24875 - 19968: jis0212<<14 | 0x1D<<7 | 0x27, - 24876 - 19968: jis0208<<14 | 0x37<<7 | 0x26, - 24880 - 19968: jis0208<<14 | 0x59<<7 | 0x0A, - 24881 - 19968: jis0212<<14 | 0x1D<<7 | 0x29, - 24884 - 19968: jis0208<<14 | 0x37<<7 | 0x27, - 24885 - 19968: jis0212<<14 | 0x1D<<7 | 0x2A, - 24886 - 19968: jis0212<<14 | 0x1D<<7 | 0x2B, - 24887 - 19968: jis0208<<14 | 0x59<<7 | 0x09, - 24889 - 19968: jis0212<<14 | 0x1D<<7 | 0x2D, - 24892 - 19968: jis0208<<14 | 0x37<<7 | 0x25, - 24893 - 19968: jis0208<<14 | 0x37<<7 | 0x28, - 24894 - 19968: jis0208<<14 | 0x37<<7 | 0x20, - 24895 - 19968: jis0208<<14 | 0x37<<7 | 0x24, - 24897 - 19968: jis0212<<14 | 0x1D<<7 | 0x2E, - 24898 - 19968: jis0208<<14 | 0x37<<7 | 0x29, - 24900 - 19968: jis0208<<14 | 0x37<<7 | 0x2A, - 24901 - 19968: jis0212<<14 | 0x1D<<7 | 0x2F, - 24902 - 19968: jis0212<<14 | 0x1D<<7 | 0x30, - 24903 - 19968: jis0208<<14 | 0x37<<7 | 0x1F, - 24904 - 19968: jis0208<<14 | 0x1A<<7 | 0x5B, - 24905 - 19968: jis0212<<14 | 0x1D<<7 | 0x31, - 24906 - 19968: jis0208<<14 | 0x37<<7 | 0x23, - 24907 - 19968: jis0208<<14 | 0x21<<7 | 0x35, - 24908 - 19968: jis0208<<14 | 0x18<<7 | 0x11, - 24909 - 19968: jis0208<<14 | 0x37<<7 | 0x11, - 24910 - 19968: jis0208<<14 | 0x1E<<7 | 0x14, - 24915 - 19968: jis0208<<14 | 0x37<<7 | 0x37, - 24917 - 19968: jis0208<<14 | 0x29<<7 | 0x48, - 24920 - 19968: jis0208<<14 | 0x37<<7 | 0x2D, - 24921 - 19968: jis0208<<14 | 0x37<<7 | 0x2E, - 24922 - 19968: jis0208<<14 | 0x37<<7 | 0x2F, - 24925 - 19968: jis0208<<14 | 0x37<<7 | 0x36, - 24926 - 19968: jis0212<<14 | 0x1D<<7 | 0x32, - 24927 - 19968: jis0208<<14 | 0x37<<7 | 0x35, - 24928 - 19968: jis0212<<14 | 0x1D<<7 | 0x33, - 24930 - 19968: jis0208<<14 | 0x2A<<7 | 0x5C, - 24931 - 19968: jis0208<<14 | 0x13<<7 | 0x16, - 24933 - 19968: jis0208<<14 | 0x37<<7 | 0x33, - 24935 - 19968: jis0208<<14 | 0x16<<7 | 0x24, - 24936 - 19968: jis0208<<14 | 0x12<<7 | 0x13, - 24939 - 19968: jis0208<<14 | 0x37<<7 | 0x30, - 24940 - 19968: jis0212<<14 | 0x1D<<7 | 0x34, - 24942 - 19968: jis0208<<14 | 0x2D<<7 | 0x17, - 24943 - 19968: jis0208<<14 | 0x37<<7 | 0x32, - 24944 - 19968: jis0208<<14 | 0x0F<<7 | 0x35, - 24945 - 19968: jis0208<<14 | 0x37<<7 | 0x34, - 24946 - 19968: jis0212<<14 | 0x1D<<7 | 0x35, - 24947 - 19968: jis0208<<14 | 0x37<<7 | 0x2B, - 24948 - 19968: jis0208<<14 | 0x37<<7 | 0x31, - 24949 - 19968: jis0208<<14 | 0x37<<7 | 0x38, - 24950 - 19968: jis0208<<14 | 0x16<<7 | 0x23, - 24951 - 19968: jis0208<<14 | 0x37<<7 | 0x2C, - 24952 - 19968: jis0212<<14 | 0x1D<<7 | 0x36, - 24955 - 19968: jis0212<<14 | 0x1D<<7 | 0x37, - 24956 - 19968: jis0212<<14 | 0x1D<<7 | 0x38, - 24958 - 19968: jis0208<<14 | 0x2C<<7 | 0x3C, - 24959 - 19968: jis0212<<14 | 0x1D<<7 | 0x39, - 24960 - 19968: jis0212<<14 | 0x1D<<7 | 0x3A, - 24961 - 19968: jis0212<<14 | 0x1D<<7 | 0x3B, - 24962 - 19968: jis0208<<14 | 0x2C<<7 | 0x0A, - 24963 - 19968: jis0212<<14 | 0x1D<<7 | 0x3C, - 24964 - 19968: jis0212<<14 | 0x1D<<7 | 0x3D, - 24967 - 19968: jis0208<<14 | 0x37<<7 | 0x3B, - 24970 - 19968: jis0208<<14 | 0x37<<7 | 0x3F, - 24971 - 19968: jis0212<<14 | 0x1D<<7 | 0x3E, - 24973 - 19968: jis0212<<14 | 0x1D<<7 | 0x3F, - 24974 - 19968: jis0208<<14 | 0x20<<7 | 0x5D, - 24976 - 19968: jis0208<<14 | 0x2D<<7 | 0x58, - 24977 - 19968: jis0208<<14 | 0x37<<7 | 0x40, - 24978 - 19968: jis0212<<14 | 0x1D<<7 | 0x40, - 24979 - 19968: jis0212<<14 | 0x1D<<7 | 0x41, - 24980 - 19968: jis0208<<14 | 0x37<<7 | 0x3D, - 24982 - 19968: jis0208<<14 | 0x37<<7 | 0x3A, - 24983 - 19968: jis0212<<14 | 0x1D<<7 | 0x42, - 24984 - 19968: jis0208<<14 | 0x59<<7 | 0x0B, - 24985 - 19968: jis0208<<14 | 0x37<<7 | 0x39, - 24986 - 19968: jis0208<<14 | 0x37<<7 | 0x3E, - 24988 - 19968: jis0212<<14 | 0x1D<<7 | 0x44, - 24989 - 19968: jis0212<<14 | 0x1D<<7 | 0x45, - 24991 - 19968: jis0212<<14 | 0x1D<<7 | 0x46, - 24992 - 19968: jis0212<<14 | 0x1D<<7 | 0x47, - 24996 - 19968: jis0208<<14 | 0x29<<7 | 0x0F, - 24997 - 19968: jis0212<<14 | 0x1D<<7 | 0x48, - 24999 - 19968: jis0208<<14 | 0x25<<7 | 0x13, - 25000 - 19968: jis0212<<14 | 0x1D<<7 | 0x49, - 25001 - 19968: jis0208<<14 | 0x16<<7 | 0x25, - 25002 - 19968: jis0212<<14 | 0x1D<<7 | 0x4A, - 25003 - 19968: jis0208<<14 | 0x37<<7 | 0x41, - 25004 - 19968: jis0208<<14 | 0x37<<7 | 0x3C, - 25005 - 19968: jis0212<<14 | 0x1D<<7 | 0x4B, - 25006 - 19968: jis0208<<14 | 0x37<<7 | 0x42, - 25010 - 19968: jis0208<<14 | 0x16<<7 | 0x5A, - 25014 - 19968: jis0208<<14 | 0x11<<7 | 0x10, - 25016 - 19968: jis0212<<14 | 0x1D<<7 | 0x4C, - 25017 - 19968: jis0212<<14 | 0x1D<<7 | 0x4D, - 25018 - 19968: jis0208<<14 | 0x37<<7 | 0x4A, - 25020 - 19968: jis0212<<14 | 0x1D<<7 | 0x4E, - 25022 - 19968: jis0208<<14 | 0x13<<7 | 0x17, - 25024 - 19968: jis0212<<14 | 0x1D<<7 | 0x4F, - 25025 - 19968: jis0212<<14 | 0x1D<<7 | 0x50, - 25026 - 19968: jis0212<<14 | 0x1D<<7 | 0x51, - 25027 - 19968: jis0208<<14 | 0x37<<7 | 0x48, - 25030 - 19968: jis0208<<14 | 0x37<<7 | 0x49, - 25031 - 19968: jis0208<<14 | 0x19<<7 | 0x08, - 25032 - 19968: jis0208<<14 | 0x37<<7 | 0x47, - 25033 - 19968: jis0208<<14 | 0x37<<7 | 0x45, - 25034 - 19968: jis0208<<14 | 0x37<<7 | 0x44, - 25035 - 19968: jis0208<<14 | 0x37<<7 | 0x4B, - 25036 - 19968: jis0208<<14 | 0x37<<7 | 0x43, - 25037 - 19968: jis0208<<14 | 0x37<<7 | 0x4D, - 25038 - 19968: jis0212<<14 | 0x1D<<7 | 0x52, - 25039 - 19968: jis0212<<14 | 0x1D<<7 | 0x53, - 25040 - 19968: jis0208<<14 | 0x11<<7 | 0x5A, - 25045 - 19968: jis0212<<14 | 0x1D<<7 | 0x54, - 25052 - 19968: jis0212<<14 | 0x1D<<7 | 0x55, - 25053 - 19968: jis0212<<14 | 0x1D<<7 | 0x56, - 25054 - 19968: jis0212<<14 | 0x1D<<7 | 0x57, - 25055 - 19968: jis0212<<14 | 0x1D<<7 | 0x58, - 25057 - 19968: jis0212<<14 | 0x1D<<7 | 0x59, - 25058 - 19968: jis0212<<14 | 0x1D<<7 | 0x5A, - 25059 - 19968: jis0208<<14 | 0x37<<7 | 0x4F, - 25061 - 19968: jis0212<<14 | 0x1D<<7 | 0x5D, - 25062 - 19968: jis0208<<14 | 0x37<<7 | 0x4E, - 25063 - 19968: jis0212<<14 | 0x1D<<7 | 0x5B, - 25065 - 19968: jis0212<<14 | 0x1D<<7 | 0x5C, - 25068 - 19968: jis0212<<14 | 0x1E<<7 | 0x00, - 25069 - 19968: jis0212<<14 | 0x1E<<7 | 0x01, - 25071 - 19968: jis0212<<14 | 0x1E<<7 | 0x02, - 25074 - 19968: jis0208<<14 | 0x23<<7 | 0x07, - 25076 - 19968: jis0208<<14 | 0x37<<7 | 0x52, - 25078 - 19968: jis0208<<14 | 0x37<<7 | 0x50, - 25079 - 19968: jis0208<<14 | 0x37<<7 | 0x46, - 25080 - 19968: jis0208<<14 | 0x16<<7 | 0x5B, - 25082 - 19968: jis0208<<14 | 0x37<<7 | 0x51, - 25084 - 19968: jis0208<<14 | 0x37<<7 | 0x55, - 25085 - 19968: jis0208<<14 | 0x37<<7 | 0x54, - 25086 - 19968: jis0208<<14 | 0x37<<7 | 0x56, - 25087 - 19968: jis0208<<14 | 0x37<<7 | 0x53, - 25088 - 19968: jis0208<<14 | 0x37<<7 | 0x57, - 25089 - 19968: jis0212<<14 | 0x1E<<7 | 0x03, - 25091 - 19968: jis0212<<14 | 0x1E<<7 | 0x04, - 25092 - 19968: jis0212<<14 | 0x1E<<7 | 0x05, - 25095 - 19968: jis0212<<14 | 0x1E<<7 | 0x06, - 25096 - 19968: jis0208<<14 | 0x37<<7 | 0x58, - 25097 - 19968: jis0208<<14 | 0x37<<7 | 0x59, - 25098 - 19968: jis0208<<14 | 0x29<<7 | 0x49, - 25100 - 19968: jis0208<<14 | 0x37<<7 | 0x5B, - 25101 - 19968: jis0208<<14 | 0x37<<7 | 0x5A, - 25102 - 19968: jis0208<<14 | 0x1C<<7 | 0x1E, - 25104 - 19968: jis0208<<14 | 0x1F<<7 | 0x0D, - 25105 - 19968: jis0208<<14 | 0x11<<7 | 0x45, - 25106 - 19968: jis0208<<14 | 0x11<<7 | 0x5B, - 25107 - 19968: jis0208<<14 | 0x59<<7 | 0x0C, - 25108 - 19968: jis0208<<14 | 0x37<<7 | 0x5C, - 25109 - 19968: jis0212<<14 | 0x1E<<7 | 0x08, - 25110 - 19968: jis0208<<14 | 0x0F<<7 | 0x1E, - 25114 - 19968: jis0208<<14 | 0x1F<<7 | 0x2B, - 25115 - 19968: jis0208<<14 | 0x37<<7 | 0x5D, - 25116 - 19968: jis0212<<14 | 0x1E<<7 | 0x09, - 25117 - 19968: jis0208<<14 | 0x4B<<7 | 0x22, - 25118 - 19968: jis0208<<14 | 0x38<<7 | 0x00, - 25119 - 19968: jis0208<<14 | 0x16<<7 | 0x40, - 25120 - 19968: jis0212<<14 | 0x1E<<7 | 0x0A, - 25121 - 19968: jis0208<<14 | 0x38<<7 | 0x01, - 25122 - 19968: jis0212<<14 | 0x1E<<7 | 0x0B, - 25123 - 19968: jis0212<<14 | 0x1E<<7 | 0x0C, - 25126 - 19968: jis0208<<14 | 0x1F<<7 | 0x4E, - 25127 - 19968: jis0212<<14 | 0x1E<<7 | 0x0D, - 25129 - 19968: jis0212<<14 | 0x1E<<7 | 0x0E, - 25130 - 19968: jis0208<<14 | 0x38<<7 | 0x02, - 25131 - 19968: jis0212<<14 | 0x1E<<7 | 0x0F, - 25134 - 19968: jis0208<<14 | 0x38<<7 | 0x03, - 25135 - 19968: jis0208<<14 | 0x14<<7 | 0x19, - 25136 - 19968: jis0208<<14 | 0x38<<7 | 0x04, - 25138 - 19968: jis0208<<14 | 0x38<<7 | 0x05, - 25139 - 19968: jis0208<<14 | 0x38<<7 | 0x06, - 25140 - 19968: jis0208<<14 | 0x21<<7 | 0x36, - 25144 - 19968: jis0208<<14 | 0x17<<7 | 0x2C, - 25145 - 19968: jis0212<<14 | 0x1E<<7 | 0x10, - 25147 - 19968: jis0208<<14 | 0x2B<<7 | 0x40, - 25149 - 19968: jis0212<<14 | 0x1E<<7 | 0x11, - 25151 - 19968: jis0208<<14 | 0x2A<<7 | 0x1B, - 25152 - 19968: jis0208<<14 | 0x1C<<7 | 0x49, - 25153 - 19968: jis0208<<14 | 0x38<<7 | 0x07, - 25154 - 19968: jis0212<<14 | 0x1E<<7 | 0x12, - 25155 - 19968: jis0212<<14 | 0x1E<<7 | 0x13, - 25156 - 19968: jis0212<<14 | 0x1E<<7 | 0x14, - 25158 - 19968: jis0212<<14 | 0x1E<<7 | 0x15, - 25159 - 19968: jis0208<<14 | 0x1F<<7 | 0x4F, - 25160 - 19968: jis0208<<14 | 0x4D<<7 | 0x1C, - 25161 - 19968: jis0208<<14 | 0x27<<7 | 0x41, - 25163 - 19968: jis0208<<14 | 0x1B<<7 | 0x49, - 25164 - 19968: jis0212<<14 | 0x1E<<7 | 0x16, - 25165 - 19968: jis0208<<14 | 0x19<<7 | 0x2C, - 25166 - 19968: jis0208<<14 | 0x38<<7 | 0x08, - 25168 - 19968: jis0212<<14 | 0x1E<<7 | 0x17, - 25169 - 19968: jis0212<<14 | 0x1E<<7 | 0x18, - 25170 - 19968: jis0212<<14 | 0x1E<<7 | 0x19, - 25171 - 19968: jis0208<<14 | 0x21<<7 | 0x26, - 25172 - 19968: jis0212<<14 | 0x1E<<7 | 0x1A, - 25173 - 19968: jis0208<<14 | 0x29<<7 | 0x06, - 25174 - 19968: jis0212<<14 | 0x1E<<7 | 0x1B, - 25176 - 19968: jis0208<<14 | 0x21<<7 | 0x50, - 25178 - 19968: jis0212<<14 | 0x1E<<7 | 0x1C, - 25179 - 19968: jis0208<<14 | 0x38<<7 | 0x0B, - 25180 - 19968: jis0212<<14 | 0x1E<<7 | 0x1D, - 25182 - 19968: jis0208<<14 | 0x38<<7 | 0x09, - 25184 - 19968: jis0208<<14 | 0x38<<7 | 0x0C, - 25187 - 19968: jis0208<<14 | 0x38<<7 | 0x0A, - 25188 - 19968: jis0212<<14 | 0x1E<<7 | 0x1E, - 25192 - 19968: jis0208<<14 | 0x38<<7 | 0x0D, - 25197 - 19968: jis0212<<14 | 0x1E<<7 | 0x1F, - 25198 - 19968: jis0208<<14 | 0x29<<7 | 0x10, - 25199 - 19968: jis0212<<14 | 0x1E<<7 | 0x20, - 25201 - 19968: jis0208<<14 | 0x0F<<7 | 0x16, - 25203 - 19968: jis0212<<14 | 0x1E<<7 | 0x21, - 25206 - 19968: jis0208<<14 | 0x28<<7 | 0x3D, - 25209 - 19968: jis0208<<14 | 0x27<<7 | 0x42, - 25210 - 19968: jis0212<<14 | 0x1E<<7 | 0x22, - 25212 - 19968: jis0208<<14 | 0x38<<7 | 0x0E, - 25213 - 19968: jis0212<<14 | 0x1E<<7 | 0x23, - 25214 - 19968: jis0208<<14 | 0x38<<7 | 0x11, - 25215 - 19968: jis0208<<14 | 0x1D<<7 | 0x14, - 25216 - 19968: jis0208<<14 | 0x14<<7 | 0x1A, - 25218 - 19968: jis0208<<14 | 0x38<<7 | 0x0F, - 25219 - 19968: jis0208<<14 | 0x38<<7 | 0x16, - 25220 - 19968: jis0208<<14 | 0x1D<<7 | 0x15, - 25225 - 19968: jis0208<<14 | 0x38<<7 | 0x10, - 25226 - 19968: jis0208<<14 | 0x26<<7 | 0x23, - 25229 - 19968: jis0212<<14 | 0x1E<<7 | 0x24, - 25230 - 19968: jis0212<<14 | 0x1E<<7 | 0x25, - 25231 - 19968: jis0212<<14 | 0x1E<<7 | 0x26, - 25232 - 19968: jis0212<<14 | 0x1E<<7 | 0x27, - 25233 - 19968: jis0208<<14 | 0x2C<<7 | 0x3D, - 25234 - 19968: jis0208<<14 | 0x38<<7 | 0x12, - 25235 - 19968: jis0208<<14 | 0x38<<7 | 0x13, - 25236 - 19968: jis0208<<14 | 0x38<<7 | 0x17, - 25237 - 19968: jis0208<<14 | 0x24<<7 | 0x49, - 25238 - 19968: jis0208<<14 | 0x38<<7 | 0x14, - 25239 - 19968: jis0208<<14 | 0x18<<7 | 0x12, - 25240 - 19968: jis0208<<14 | 0x1F<<7 | 0x3D, - 25243 - 19968: jis0208<<14 | 0x38<<7 | 0x25, - 25244 - 19968: jis0208<<14 | 0x27<<7 | 0x13, - 25246 - 19968: jis0208<<14 | 0x21<<7 | 0x51, - 25254 - 19968: jis0208<<14 | 0x59<<7 | 0x0D, - 25256 - 19968: jis0212<<14 | 0x1E<<7 | 0x29, - 25259 - 19968: jis0208<<14 | 0x27<<7 | 0x43, - 25260 - 19968: jis0208<<14 | 0x39<<7 | 0x0C, - 25265 - 19968: jis0208<<14 | 0x29<<7 | 0x59, - 25267 - 19968: jis0212<<14 | 0x1E<<7 | 0x2A, - 25269 - 19968: jis0208<<14 | 0x23<<7 | 0x50, - 25270 - 19968: jis0212<<14 | 0x1E<<7 | 0x2B, - 25271 - 19968: jis0212<<14 | 0x1E<<7 | 0x2C, - 25273 - 19968: jis0208<<14 | 0x2A<<7 | 0x54, - 25274 - 19968: jis0212<<14 | 0x1E<<7 | 0x2D, - 25275 - 19968: jis0208<<14 | 0x38<<7 | 0x1A, - 25276 - 19968: jis0208<<14 | 0x11<<7 | 0x00, - 25277 - 19968: jis0208<<14 | 0x22<<7 | 0x49, - 25278 - 19968: jis0212<<14 | 0x1E<<7 | 0x2E, - 25279 - 19968: jis0212<<14 | 0x1E<<7 | 0x2F, - 25282 - 19968: jis0208<<14 | 0x38<<7 | 0x23, - 25284 - 19968: jis0212<<14 | 0x1E<<7 | 0x30, - 25285 - 19968: jis0208<<14 | 0x22<<7 | 0x13, - 25286 - 19968: jis0208<<14 | 0x38<<7 | 0x1D, - 25287 - 19968: jis0208<<14 | 0x38<<7 | 0x24, - 25288 - 19968: jis0208<<14 | 0x38<<7 | 0x1F, - 25289 - 19968: jis0208<<14 | 0x38<<7 | 0x26, - 25290 - 19968: jis0208<<14 | 0x38<<7 | 0x22, - 25292 - 19968: jis0208<<14 | 0x38<<7 | 0x21, - 25293 - 19968: jis0208<<14 | 0x26<<7 | 0x4E, - 25294 - 19968: jis0212<<14 | 0x1E<<7 | 0x31, - 25295 - 19968: jis0208<<14 | 0x38<<7 | 0x1B, - 25296 - 19968: jis0208<<14 | 0x11<<7 | 0x5C, - 25297 - 19968: jis0208<<14 | 0x38<<7 | 0x19, - 25298 - 19968: jis0208<<14 | 0x14<<7 | 0x50, - 25299 - 19968: jis0208<<14 | 0x21<<7 | 0x52, - 25300 - 19968: jis0208<<14 | 0x38<<7 | 0x15, - 25301 - 19968: jis0212<<14 | 0x1E<<7 | 0x32, - 25302 - 19968: jis0212<<14 | 0x1E<<7 | 0x33, - 25303 - 19968: jis0208<<14 | 0x38<<7 | 0x18, - 25304 - 19968: jis0208<<14 | 0x18<<7 | 0x13, - 25305 - 19968: jis0208<<14 | 0x1F<<7 | 0x3A, - 25306 - 19968: jis0212<<14 | 0x1E<<7 | 0x34, - 25307 - 19968: jis0208<<14 | 0x1D<<7 | 0x16, - 25308 - 19968: jis0208<<14 | 0x38<<7 | 0x20, - 25309 - 19968: jis0208<<14 | 0x26<<7 | 0x31, - 25312 - 19968: jis0208<<14 | 0x14<<7 | 0x51, - 25313 - 19968: jis0208<<14 | 0x12<<7 | 0x27, - 25322 - 19968: jis0212<<14 | 0x1E<<7 | 0x35, - 25324 - 19968: jis0208<<14 | 0x12<<7 | 0x46, - 25325 - 19968: jis0208<<14 | 0x1E<<7 | 0x00, - 25326 - 19968: jis0208<<14 | 0x38<<7 | 0x28, - 25327 - 19968: jis0208<<14 | 0x38<<7 | 0x2D, - 25329 - 19968: jis0208<<14 | 0x38<<7 | 0x29, - 25330 - 19968: jis0212<<14 | 0x1E<<7 | 0x36, - 25331 - 19968: jis0208<<14 | 0x16<<7 | 0x5C, - 25332 - 19968: jis0212<<14 | 0x1E<<7 | 0x37, - 25333 - 19968: jis0208<<14 | 0x38<<7 | 0x2E, - 25334 - 19968: jis0208<<14 | 0x1A<<7 | 0x01, - 25335 - 19968: jis0208<<14 | 0x18<<7 | 0x48, - 25340 - 19968: jis0212<<14 | 0x1E<<7 | 0x38, - 25341 - 19968: jis0212<<14 | 0x1E<<7 | 0x39, - 25342 - 19968: jis0208<<14 | 0x1C<<7 | 0x05, - 25343 - 19968: jis0208<<14 | 0x38<<7 | 0x1C, - 25345 - 19968: jis0208<<14 | 0x1A<<7 | 0x5C, - 25346 - 19968: jis0208<<14 | 0x38<<7 | 0x2B, - 25347 - 19968: jis0212<<14 | 0x1E<<7 | 0x3A, - 25348 - 19968: jis0212<<14 | 0x1E<<7 | 0x3B, - 25351 - 19968: jis0208<<14 | 0x1A<<7 | 0x37, - 25352 - 19968: jis0208<<14 | 0x38<<7 | 0x2C, - 25353 - 19968: jis0208<<14 | 0x0F<<7 | 0x23, - 25354 - 19968: jis0212<<14 | 0x1E<<7 | 0x3C, - 25355 - 19968: jis0212<<14 | 0x1E<<7 | 0x3D, - 25356 - 19968: jis0208<<14 | 0x38<<7 | 0x27, - 25357 - 19968: jis0212<<14 | 0x1E<<7 | 0x3E, - 25360 - 19968: jis0212<<14 | 0x1E<<7 | 0x3F, - 25361 - 19968: jis0208<<14 | 0x23<<7 | 0x08, - 25363 - 19968: jis0212<<14 | 0x1E<<7 | 0x40, - 25366 - 19968: jis0212<<14 | 0x1E<<7 | 0x41, - 25368 - 19968: jis0212<<14 | 0x1E<<7 | 0x42, - 25369 - 19968: jis0208<<14 | 0x14<<7 | 0x52, - 25375 - 19968: jis0208<<14 | 0x15<<7 | 0x13, - 25383 - 19968: jis0208<<14 | 0x38<<7 | 0x2A, - 25384 - 19968: jis0208<<14 | 0x0F<<7 | 0x06, - 25385 - 19968: jis0212<<14 | 0x1E<<7 | 0x43, - 25386 - 19968: jis0212<<14 | 0x1E<<7 | 0x44, - 25387 - 19968: jis0208<<14 | 0x19<<7 | 0x22, - 25389 - 19968: jis0212<<14 | 0x1E<<7 | 0x45, - 25391 - 19968: jis0208<<14 | 0x1E<<7 | 0x15, - 25397 - 19968: jis0212<<14 | 0x1E<<7 | 0x46, - 25398 - 19968: jis0212<<14 | 0x1E<<7 | 0x47, - 25401 - 19968: jis0212<<14 | 0x1E<<7 | 0x48, - 25402 - 19968: jis0208<<14 | 0x23<<7 | 0x51, - 25404 - 19968: jis0212<<14 | 0x1E<<7 | 0x49, - 25405 - 19968: jis0208<<14 | 0x27<<7 | 0x33, - 25406 - 19968: jis0208<<14 | 0x38<<7 | 0x30, - 25407 - 19968: jis0208<<14 | 0x20<<7 | 0x3D, - 25409 - 19968: jis0212<<14 | 0x1E<<7 | 0x4A, - 25410 - 19968: jis0212<<14 | 0x1E<<7 | 0x4B, - 25411 - 19968: jis0212<<14 | 0x1E<<7 | 0x4C, - 25412 - 19968: jis0212<<14 | 0x1E<<7 | 0x4D, - 25414 - 19968: jis0212<<14 | 0x1E<<7 | 0x4E, - 25417 - 19968: jis0208<<14 | 0x21<<7 | 0x09, - 25418 - 19968: jis0212<<14 | 0x1E<<7 | 0x4F, - 25419 - 19968: jis0212<<14 | 0x1E<<7 | 0x50, - 25420 - 19968: jis0208<<14 | 0x1A<<7 | 0x0A, - 25421 - 19968: jis0208<<14 | 0x38<<7 | 0x31, - 25422 - 19968: jis0212<<14 | 0x1E<<7 | 0x51, - 25423 - 19968: jis0208<<14 | 0x38<<7 | 0x33, - 25424 - 19968: jis0208<<14 | 0x38<<7 | 0x2F, - 25426 - 19968: jis0212<<14 | 0x1E<<7 | 0x52, - 25427 - 19968: jis0212<<14 | 0x1E<<7 | 0x53, - 25428 - 19968: jis0212<<14 | 0x1E<<7 | 0x54, - 25429 - 19968: jis0208<<14 | 0x29<<7 | 0x40, - 25431 - 19968: jis0208<<14 | 0x23<<7 | 0x1C, - 25432 - 19968: jis0212<<14 | 0x1E<<7 | 0x55, - 25435 - 19968: jis0212<<14 | 0x1E<<7 | 0x56, - 25436 - 19968: jis0208<<14 | 0x20<<7 | 0x3B, - 25445 - 19968: jis0212<<14 | 0x1E<<7 | 0x57, - 25446 - 19968: jis0212<<14 | 0x1E<<7 | 0x58, - 25447 - 19968: jis0208<<14 | 0x29<<7 | 0x5A, - 25448 - 19968: jis0208<<14 | 0x1B<<7 | 0x2D, - 25449 - 19968: jis0208<<14 | 0x38<<7 | 0x3F, - 25451 - 19968: jis0208<<14 | 0x38<<7 | 0x3E, - 25452 - 19968: jis0212<<14 | 0x1E<<7 | 0x59, - 25453 - 19968: jis0212<<14 | 0x1E<<7 | 0x5A, - 25454 - 19968: jis0208<<14 | 0x1E<<7 | 0x57, - 25457 - 19968: jis0212<<14 | 0x1E<<7 | 0x5B, - 25458 - 19968: jis0208<<14 | 0x16<<7 | 0x5D, - 25460 - 19968: jis0212<<14 | 0x1E<<7 | 0x5C, - 25461 - 19968: jis0212<<14 | 0x1E<<7 | 0x5D, - 25462 - 19968: jis0208<<14 | 0x38<<7 | 0x38, - 25463 - 19968: jis0208<<14 | 0x1D<<7 | 0x18, - 25464 - 19968: jis0212<<14 | 0x1F<<7 | 0x00, - 25466 - 19968: jis0208<<14 | 0x25<<7 | 0x47, - 25467 - 19968: jis0208<<14 | 0x26<<7 | 0x10, - 25468 - 19968: jis0212<<14 | 0x1F<<7 | 0x01, - 25469 - 19968: jis0212<<14 | 0x1F<<7 | 0x02, - 25471 - 19968: jis0212<<14 | 0x1F<<7 | 0x03, - 25472 - 19968: jis0208<<14 | 0x38<<7 | 0x36, - 25474 - 19968: jis0212<<14 | 0x1F<<7 | 0x04, - 25475 - 19968: jis0208<<14 | 0x20<<7 | 0x3C, - 25476 - 19968: jis0212<<14 | 0x1F<<7 | 0x05, - 25479 - 19968: jis0212<<14 | 0x1F<<7 | 0x06, - 25480 - 19968: jis0208<<14 | 0x1B<<7 | 0x57, - 25481 - 19968: jis0208<<14 | 0x38<<7 | 0x3B, - 25482 - 19968: jis0212<<14 | 0x1F<<7 | 0x07, - 25484 - 19968: jis0208<<14 | 0x1D<<7 | 0x17, - 25486 - 19968: jis0208<<14 | 0x38<<7 | 0x35, - 25487 - 19968: jis0208<<14 | 0x38<<7 | 0x3A, - 25488 - 19968: jis0212<<14 | 0x1F<<7 | 0x08, - 25490 - 19968: jis0208<<14 | 0x26<<7 | 0x32, - 25492 - 19968: jis0212<<14 | 0x1F<<7 | 0x09, - 25493 - 19968: jis0212<<14 | 0x1F<<7 | 0x0A, - 25494 - 19968: jis0208<<14 | 0x38<<7 | 0x34, - 25496 - 19968: jis0208<<14 | 0x16<<7 | 0x00, - 25497 - 19968: jis0212<<14 | 0x1F<<7 | 0x0B, - 25498 - 19968: jis0212<<14 | 0x1F<<7 | 0x0C, - 25499 - 19968: jis0208<<14 | 0x12<<7 | 0x3C, - 25502 - 19968: jis0212<<14 | 0x1F<<7 | 0x0D, - 25503 - 19968: jis0208<<14 | 0x38<<7 | 0x3C, - 25504 - 19968: jis0208<<14 | 0x2D<<7 | 0x0A, - 25505 - 19968: jis0208<<14 | 0x19<<7 | 0x2D, - 25506 - 19968: jis0208<<14 | 0x22<<7 | 0x14, - 25507 - 19968: jis0208<<14 | 0x38<<7 | 0x39, - 25508 - 19968: jis0212<<14 | 0x1F<<7 | 0x0E, - 25509 - 19968: jis0208<<14 | 0x1F<<7 | 0x3B, - 25510 - 19968: jis0212<<14 | 0x1F<<7 | 0x0F, - 25511 - 19968: jis0208<<14 | 0x18<<7 | 0x14, - 25512 - 19968: jis0208<<14 | 0x1E<<7 | 0x43, - 25513 - 19968: jis0208<<14 | 0x10<<7 | 0x45, - 25514 - 19968: jis0208<<14 | 0x20<<7 | 0x1B, - 25515 - 19968: jis0208<<14 | 0x38<<7 | 0x37, - 25516 - 19968: jis0208<<14 | 0x14<<7 | 0x24, - 25517 - 19968: jis0212<<14 | 0x1F<<7 | 0x10, - 25518 - 19968: jis0212<<14 | 0x1F<<7 | 0x11, - 25519 - 19968: jis0212<<14 | 0x1F<<7 | 0x12, - 25522 - 19968: jis0208<<14 | 0x16<<7 | 0x26, - 25524 - 19968: jis0208<<14 | 0x23<<7 | 0x2E, - 25525 - 19968: jis0208<<14 | 0x38<<7 | 0x3D, - 25531 - 19968: jis0208<<14 | 0x20<<7 | 0x3E, - 25533 - 19968: jis0212<<14 | 0x1F<<7 | 0x13, - 25534 - 19968: jis0208<<14 | 0x38<<7 | 0x40, - 25536 - 19968: jis0208<<14 | 0x38<<7 | 0x42, - 25537 - 19968: jis0212<<14 | 0x1F<<7 | 0x14, - 25539 - 19968: jis0208<<14 | 0x21<<7 | 0x16, - 25540 - 19968: jis0208<<14 | 0x38<<7 | 0x48, - 25541 - 19968: jis0212<<14 | 0x1F<<7 | 0x15, - 25542 - 19968: jis0208<<14 | 0x38<<7 | 0x43, - 25544 - 19968: jis0212<<14 | 0x1F<<7 | 0x16, - 25545 - 19968: jis0208<<14 | 0x38<<7 | 0x45, - 25550 - 19968: jis0212<<14 | 0x1F<<7 | 0x17, - 25551 - 19968: jis0208<<14 | 0x28<<7 | 0x20, - 25552 - 19968: jis0208<<14 | 0x23<<7 | 0x52, - 25553 - 19968: jis0212<<14 | 0x1F<<7 | 0x18, - 25554 - 19968: jis0208<<14 | 0x38<<7 | 0x46, - 25555 - 19968: jis0212<<14 | 0x1F<<7 | 0x19, - 25556 - 19968: jis0212<<14 | 0x1F<<7 | 0x1A, - 25557 - 19968: jis0212<<14 | 0x1F<<7 | 0x1B, - 25558 - 19968: jis0208<<14 | 0x2C<<7 | 0x0B, - 25562 - 19968: jis0208<<14 | 0x2C<<7 | 0x27, - 25563 - 19968: jis0208<<14 | 0x13<<7 | 0x18, - 25564 - 19968: jis0212<<14 | 0x1F<<7 | 0x1C, - 25568 - 19968: jis0212<<14 | 0x1F<<7 | 0x1D, - 25569 - 19968: jis0208<<14 | 0x0F<<7 | 0x0D, - 25571 - 19968: jis0208<<14 | 0x38<<7 | 0x44, - 25573 - 19968: jis0212<<14 | 0x1F<<7 | 0x1E, - 25577 - 19968: jis0208<<14 | 0x38<<7 | 0x41, - 25578 - 19968: jis0212<<14 | 0x1F<<7 | 0x1F, - 25580 - 19968: jis0212<<14 | 0x1F<<7 | 0x20, - 25582 - 19968: jis0208<<14 | 0x13<<7 | 0x57, - 25586 - 19968: jis0212<<14 | 0x1F<<7 | 0x21, - 25587 - 19968: jis0212<<14 | 0x1F<<7 | 0x22, - 25588 - 19968: jis0208<<14 | 0x10<<7 | 0x46, - 25589 - 19968: jis0208<<14 | 0x59<<7 | 0x0E, - 25590 - 19968: jis0208<<14 | 0x38<<7 | 0x47, - 25592 - 19968: jis0212<<14 | 0x1F<<7 | 0x24, - 25593 - 19968: jis0212<<14 | 0x1F<<7 | 0x25, - 25594 - 19968: jis0208<<14 | 0x2C<<7 | 0x28, - 25606 - 19968: jis0208<<14 | 0x38<<7 | 0x4B, - 25609 - 19968: jis0212<<14 | 0x1F<<7 | 0x26, - 25610 - 19968: jis0212<<14 | 0x1F<<7 | 0x27, - 25613 - 19968: jis0208<<14 | 0x21<<7 | 0x1A, - 25615 - 19968: jis0208<<14 | 0x38<<7 | 0x52, - 25616 - 19968: jis0212<<14 | 0x1F<<7 | 0x28, - 25618 - 19968: jis0212<<14 | 0x1F<<7 | 0x29, - 25619 - 19968: jis0208<<14 | 0x38<<7 | 0x4C, - 25620 - 19968: jis0212<<14 | 0x1F<<7 | 0x2A, - 25622 - 19968: jis0208<<14 | 0x38<<7 | 0x49, - 25623 - 19968: jis0208<<14 | 0x38<<7 | 0x50, - 25624 - 19968: jis0212<<14 | 0x1F<<7 | 0x2B, - 25628 - 19968: jis0208<<14 | 0x38<<7 | 0x32, - 25630 - 19968: jis0212<<14 | 0x1F<<7 | 0x2C, - 25632 - 19968: jis0212<<14 | 0x1F<<7 | 0x2D, - 25634 - 19968: jis0212<<14 | 0x1F<<7 | 0x2E, - 25636 - 19968: jis0212<<14 | 0x1F<<7 | 0x2F, - 25637 - 19968: jis0212<<14 | 0x1F<<7 | 0x30, - 25638 - 19968: jis0208<<14 | 0x38<<7 | 0x4D, - 25640 - 19968: jis0208<<14 | 0x38<<7 | 0x51, - 25641 - 19968: jis0212<<14 | 0x1F<<7 | 0x31, - 25642 - 19968: jis0212<<14 | 0x1F<<7 | 0x32, - 25644 - 19968: jis0208<<14 | 0x27<<7 | 0x21, - 25645 - 19968: jis0208<<14 | 0x24<<7 | 0x4A, - 25647 - 19968: jis0212<<14 | 0x1F<<7 | 0x33, - 25648 - 19968: jis0212<<14 | 0x1F<<7 | 0x34, - 25652 - 19968: jis0208<<14 | 0x38<<7 | 0x4A, - 25653 - 19968: jis0212<<14 | 0x1F<<7 | 0x35, - 25654 - 19968: jis0208<<14 | 0x38<<7 | 0x4E, - 25658 - 19968: jis0208<<14 | 0x16<<7 | 0x27, - 25661 - 19968: jis0212<<14 | 0x1F<<7 | 0x36, - 25662 - 19968: jis0208<<14 | 0x19<<7 | 0x50, - 25663 - 19968: jis0212<<14 | 0x1F<<7 | 0x37, - 25666 - 19968: jis0208<<14 | 0x1F<<7 | 0x3C, - 25675 - 19968: jis0212<<14 | 0x1F<<7 | 0x38, - 25678 - 19968: jis0208<<14 | 0x38<<7 | 0x56, - 25679 - 19968: jis0212<<14 | 0x1F<<7 | 0x39, - 25681 - 19968: jis0212<<14 | 0x1F<<7 | 0x3A, - 25682 - 19968: jis0212<<14 | 0x1F<<7 | 0x3B, - 25683 - 19968: jis0212<<14 | 0x1F<<7 | 0x3C, - 25684 - 19968: jis0212<<14 | 0x1F<<7 | 0x3D, - 25688 - 19968: jis0208<<14 | 0x24<<7 | 0x05, - 25690 - 19968: jis0212<<14 | 0x1F<<7 | 0x3E, - 25691 - 19968: jis0212<<14 | 0x1F<<7 | 0x3F, - 25692 - 19968: jis0212<<14 | 0x1F<<7 | 0x40, - 25693 - 19968: jis0212<<14 | 0x1F<<7 | 0x41, - 25695 - 19968: jis0212<<14 | 0x1F<<7 | 0x42, - 25696 - 19968: jis0208<<14 | 0x59<<7 | 0x0F, - 25697 - 19968: jis0212<<14 | 0x1F<<7 | 0x44, - 25699 - 19968: jis0212<<14 | 0x1F<<7 | 0x45, - 25703 - 19968: jis0208<<14 | 0x38<<7 | 0x53, - 25705 - 19968: jis0208<<14 | 0x2A<<7 | 0x3F, - 25709 - 19968: jis0212<<14 | 0x1F<<7 | 0x46, - 25711 - 19968: jis0208<<14 | 0x38<<7 | 0x54, - 25715 - 19968: jis0212<<14 | 0x1F<<7 | 0x47, - 25716 - 19968: jis0212<<14 | 0x1F<<7 | 0x48, - 25718 - 19968: jis0208<<14 | 0x38<<7 | 0x55, - 25720 - 19968: jis0208<<14 | 0x2B<<7 | 0x2D, - 25722 - 19968: jis0208<<14 | 0x1F<<7 | 0x01, - 25723 - 19968: jis0212<<14 | 0x1F<<7 | 0x49, - 25725 - 19968: jis0212<<14 | 0x1F<<7 | 0x4A, - 25731 - 19968: jis0208<<14 | 0x16<<7 | 0x41, - 25733 - 19968: jis0212<<14 | 0x1F<<7 | 0x4B, - 25735 - 19968: jis0212<<14 | 0x1F<<7 | 0x4C, - 25736 - 19968: jis0208<<14 | 0x38<<7 | 0x5C, - 25743 - 19968: jis0212<<14 | 0x1F<<7 | 0x4D, - 25744 - 19968: jis0212<<14 | 0x1F<<7 | 0x4E, - 25745 - 19968: jis0212<<14 | 0x1F<<7 | 0x4F, - 25746 - 19968: jis0208<<14 | 0x1A<<7 | 0x14, - 25747 - 19968: jis0208<<14 | 0x38<<7 | 0x59, - 25749 - 19968: jis0208<<14 | 0x38<<7 | 0x58, - 25752 - 19968: jis0212<<14 | 0x1F<<7 | 0x50, - 25753 - 19968: jis0212<<14 | 0x1F<<7 | 0x51, - 25754 - 19968: jis0208<<14 | 0x26<<7 | 0x11, - 25755 - 19968: jis0212<<14 | 0x1F<<7 | 0x52, - 25757 - 19968: jis0208<<14 | 0x59<<7 | 0x10, - 25758 - 19968: jis0208<<14 | 0x25<<7 | 0x14, - 25759 - 19968: jis0212<<14 | 0x1F<<7 | 0x54, - 25761 - 19968: jis0212<<14 | 0x1F<<7 | 0x55, - 25763 - 19968: jis0212<<14 | 0x1F<<7 | 0x56, - 25764 - 19968: jis0208<<14 | 0x24<<7 | 0x10, - 25765 - 19968: jis0208<<14 | 0x38<<7 | 0x5A, - 25766 - 19968: jis0212<<14 | 0x1F<<7 | 0x57, - 25768 - 19968: jis0212<<14 | 0x1F<<7 | 0x58, - 25769 - 19968: jis0208<<14 | 0x38<<7 | 0x5B, - 25771 - 19968: jis0208<<14 | 0x28<<7 | 0x4E, - 25772 - 19968: jis0212<<14 | 0x1F<<7 | 0x59, - 25773 - 19968: jis0208<<14 | 0x26<<7 | 0x24, - 25774 - 19968: jis0208<<14 | 0x1A<<7 | 0x02, - 25776 - 19968: jis0208<<14 | 0x1F<<7 | 0x50, - 25778 - 19968: jis0208<<14 | 0x2A<<7 | 0x2F, - 25779 - 19968: jis0212<<14 | 0x1F<<7 | 0x5A, - 25785 - 19968: jis0208<<14 | 0x12<<7 | 0x28, - 25787 - 19968: jis0208<<14 | 0x39<<7 | 0x04, - 25788 - 19968: jis0208<<14 | 0x38<<7 | 0x5D, - 25789 - 19968: jis0212<<14 | 0x1F<<7 | 0x5B, - 25790 - 19968: jis0212<<14 | 0x1F<<7 | 0x5C, - 25791 - 19968: jis0212<<14 | 0x1F<<7 | 0x5D, - 25793 - 19968: jis0208<<14 | 0x2C<<7 | 0x29, - 25794 - 19968: jis0208<<14 | 0x39<<7 | 0x06, - 25796 - 19968: jis0212<<14 | 0x20<<7 | 0x00, - 25797 - 19968: jis0208<<14 | 0x39<<7 | 0x02, - 25799 - 19968: jis0208<<14 | 0x39<<7 | 0x03, - 25801 - 19968: jis0212<<14 | 0x20<<7 | 0x01, - 25802 - 19968: jis0212<<14 | 0x20<<7 | 0x02, - 25803 - 19968: jis0212<<14 | 0x20<<7 | 0x03, - 25804 - 19968: jis0212<<14 | 0x20<<7 | 0x04, - 25805 - 19968: jis0208<<14 | 0x20<<7 | 0x3F, - 25806 - 19968: jis0208<<14 | 0x59<<7 | 0x11, - 25808 - 19968: jis0212<<14 | 0x20<<7 | 0x06, - 25809 - 19968: jis0212<<14 | 0x20<<7 | 0x07, - 25810 - 19968: jis0208<<14 | 0x39<<7 | 0x01, - 25812 - 19968: jis0208<<14 | 0x38<<7 | 0x1E, - 25813 - 19968: jis0212<<14 | 0x20<<7 | 0x08, - 25815 - 19968: jis0212<<14 | 0x20<<7 | 0x09, - 25816 - 19968: jis0208<<14 | 0x39<<7 | 0x05, - 25818 - 19968: jis0208<<14 | 0x39<<7 | 0x00, - 25824 - 19968: jis0208<<14 | 0x39<<7 | 0x0A, - 25825 - 19968: jis0208<<14 | 0x39<<7 | 0x0B, - 25826 - 19968: jis0208<<14 | 0x24<<7 | 0x06, - 25827 - 19968: jis0208<<14 | 0x39<<7 | 0x0D, - 25828 - 19968: jis0212<<14 | 0x20<<7 | 0x0A, - 25829 - 19968: jis0212<<14 | 0x20<<7 | 0x0B, - 25830 - 19968: jis0208<<14 | 0x1A<<7 | 0x03, - 25831 - 19968: jis0208<<14 | 0x39<<7 | 0x08, - 25833 - 19968: jis0212<<14 | 0x20<<7 | 0x0C, - 25834 - 19968: jis0212<<14 | 0x20<<7 | 0x0D, - 25836 - 19968: jis0208<<14 | 0x14<<7 | 0x1B, - 25837 - 19968: jis0212<<14 | 0x20<<7 | 0x0E, - 25839 - 19968: jis0208<<14 | 0x39<<7 | 0x0E, - 25840 - 19968: jis0212<<14 | 0x20<<7 | 0x0F, - 25841 - 19968: jis0208<<14 | 0x39<<7 | 0x07, - 25842 - 19968: jis0208<<14 | 0x39<<7 | 0x12, - 25844 - 19968: jis0208<<14 | 0x39<<7 | 0x11, - 25845 - 19968: jis0212<<14 | 0x20<<7 | 0x10, - 25846 - 19968: jis0208<<14 | 0x39<<7 | 0x10, - 25847 - 19968: jis0212<<14 | 0x20<<7 | 0x11, - 25850 - 19968: jis0208<<14 | 0x39<<7 | 0x13, - 25851 - 19968: jis0212<<14 | 0x20<<7 | 0x12, - 25853 - 19968: jis0208<<14 | 0x39<<7 | 0x15, - 25854 - 19968: jis0208<<14 | 0x1D<<7 | 0x50, - 25855 - 19968: jis0212<<14 | 0x20<<7 | 0x13, - 25856 - 19968: jis0208<<14 | 0x39<<7 | 0x14, - 25857 - 19968: jis0212<<14 | 0x20<<7 | 0x14, - 25860 - 19968: jis0212<<14 | 0x20<<7 | 0x15, - 25861 - 19968: jis0208<<14 | 0x39<<7 | 0x18, - 25864 - 19968: jis0212<<14 | 0x20<<7 | 0x16, - 25865 - 19968: jis0212<<14 | 0x20<<7 | 0x17, - 25866 - 19968: jis0212<<14 | 0x20<<7 | 0x18, - 25871 - 19968: jis0212<<14 | 0x20<<7 | 0x19, - 25875 - 19968: jis0212<<14 | 0x20<<7 | 0x1A, - 25876 - 19968: jis0212<<14 | 0x20<<7 | 0x1B, - 25878 - 19968: jis0212<<14 | 0x20<<7 | 0x1C, - 25880 - 19968: jis0208<<14 | 0x39<<7 | 0x16, - 25881 - 19968: jis0212<<14 | 0x20<<7 | 0x1D, - 25883 - 19968: jis0212<<14 | 0x20<<7 | 0x1E, - 25884 - 19968: jis0208<<14 | 0x39<<7 | 0x17, - 25885 - 19968: jis0208<<14 | 0x38<<7 | 0x4F, - 25886 - 19968: jis0212<<14 | 0x20<<7 | 0x1F, - 25887 - 19968: jis0212<<14 | 0x20<<7 | 0x20, - 25890 - 19968: jis0212<<14 | 0x20<<7 | 0x21, - 25891 - 19968: jis0208<<14 | 0x39<<7 | 0x1A, - 25892 - 19968: jis0208<<14 | 0x39<<7 | 0x19, - 25894 - 19968: jis0212<<14 | 0x20<<7 | 0x22, - 25897 - 19968: jis0212<<14 | 0x20<<7 | 0x23, - 25898 - 19968: jis0208<<14 | 0x38<<7 | 0x57, - 25899 - 19968: jis0208<<14 | 0x39<<7 | 0x1B, - 25900 - 19968: jis0208<<14 | 0x39<<7 | 0x0F, - 25902 - 19968: jis0212<<14 | 0x20<<7 | 0x24, - 25903 - 19968: jis0208<<14 | 0x1A<<7 | 0x38, - 25905 - 19968: jis0212<<14 | 0x20<<7 | 0x25, - 25908 - 19968: jis0208<<14 | 0x39<<7 | 0x1C, - 25909 - 19968: jis0208<<14 | 0x39<<7 | 0x1D, - 25910 - 19968: jis0208<<14 | 0x39<<7 | 0x1F, - 25911 - 19968: jis0208<<14 | 0x39<<7 | 0x1E, - 25912 - 19968: jis0208<<14 | 0x39<<7 | 0x20, - 25913 - 19968: jis0208<<14 | 0x11<<7 | 0x5D, - 25914 - 19968: jis0212<<14 | 0x20<<7 | 0x26, - 25915 - 19968: jis0208<<14 | 0x18<<7 | 0x15, - 25916 - 19968: jis0212<<14 | 0x20<<7 | 0x27, - 25917 - 19968: jis0212<<14 | 0x20<<7 | 0x28, - 25918 - 19968: jis0208<<14 | 0x29<<7 | 0x5B, - 25919 - 19968: jis0208<<14 | 0x1F<<7 | 0x0E, - 25923 - 19968: jis0212<<14 | 0x20<<7 | 0x29, - 25925 - 19968: jis0208<<14 | 0x17<<7 | 0x2D, - 25927 - 19968: jis0212<<14 | 0x20<<7 | 0x2A, - 25928 - 19968: jis0208<<14 | 0x39<<7 | 0x22, - 25929 - 19968: jis0212<<14 | 0x20<<7 | 0x2B, - 25933 - 19968: jis0208<<14 | 0x39<<7 | 0x25, - 25934 - 19968: jis0208<<14 | 0x59<<7 | 0x12, - 25935 - 19968: jis0208<<14 | 0x28<<7 | 0x31, - 25936 - 19968: jis0212<<14 | 0x20<<7 | 0x2C, - 25937 - 19968: jis0208<<14 | 0x14<<7 | 0x3E, - 25938 - 19968: jis0212<<14 | 0x20<<7 | 0x2D, - 25940 - 19968: jis0212<<14 | 0x20<<7 | 0x2E, - 25941 - 19968: jis0208<<14 | 0x39<<7 | 0x24, - 25942 - 19968: jis0208<<14 | 0x39<<7 | 0x23, - 25943 - 19968: jis0208<<14 | 0x26<<7 | 0x33, - 25944 - 19968: jis0208<<14 | 0x39<<7 | 0x26, - 25945 - 19968: jis0208<<14 | 0x15<<7 | 0x14, - 25949 - 19968: jis0208<<14 | 0x39<<7 | 0x28, - 25950 - 19968: jis0208<<14 | 0x39<<7 | 0x27, - 25951 - 19968: jis0212<<14 | 0x20<<7 | 0x2F, - 25952 - 19968: jis0212<<14 | 0x20<<7 | 0x30, - 25954 - 19968: jis0208<<14 | 0x13<<7 | 0x19, - 25955 - 19968: jis0208<<14 | 0x1A<<7 | 0x15, - 25958 - 19968: jis0208<<14 | 0x25<<7 | 0x37, - 25959 - 19968: jis0212<<14 | 0x20<<7 | 0x31, - 25963 - 19968: jis0212<<14 | 0x20<<7 | 0x32, - 25964 - 19968: jis0208<<14 | 0x16<<7 | 0x28, - 25968 - 19968: jis0208<<14 | 0x1E<<7 | 0x53, - 25970 - 19968: jis0208<<14 | 0x39<<7 | 0x29, - 25972 - 19968: jis0208<<14 | 0x1F<<7 | 0x0F, - 25973 - 19968: jis0208<<14 | 0x24<<7 | 0x07, - 25975 - 19968: jis0208<<14 | 0x28<<7 | 0x3E, - 25976 - 19968: jis0208<<14 | 0x39<<7 | 0x2A, - 25978 - 19968: jis0212<<14 | 0x20<<7 | 0x33, - 25981 - 19968: jis0212<<14 | 0x20<<7 | 0x34, - 25985 - 19968: jis0212<<14 | 0x20<<7 | 0x35, - 25986 - 19968: jis0208<<14 | 0x39<<7 | 0x2B, - 25987 - 19968: jis0208<<14 | 0x39<<7 | 0x2C, - 25989 - 19968: jis0212<<14 | 0x20<<7 | 0x36, - 25991 - 19968: jis0208<<14 | 0x29<<7 | 0x17, - 25992 - 19968: jis0208<<14 | 0x34<<7 | 0x3C, - 25993 - 19968: jis0208<<14 | 0x1F<<7 | 0x25, - 25994 - 19968: jis0212<<14 | 0x20<<7 | 0x37, - 25996 - 19968: jis0208<<14 | 0x28<<7 | 0x2B, - 25998 - 19968: jis0208<<14 | 0x19<<7 | 0x37, - 26000 - 19968: jis0208<<14 | 0x27<<7 | 0x44, - 26001 - 19968: jis0208<<14 | 0x27<<7 | 0x22, - 26002 - 19968: jis0212<<14 | 0x20<<7 | 0x38, - 26005 - 19968: jis0212<<14 | 0x20<<7 | 0x39, - 26007 - 19968: jis0208<<14 | 0x24<<7 | 0x2C, - 26008 - 19968: jis0212<<14 | 0x20<<7 | 0x3A, - 26009 - 19968: jis0208<<14 | 0x2D<<7 | 0x20, - 26011 - 19968: jis0208<<14 | 0x39<<7 | 0x2E, - 26012 - 19968: jis0208<<14 | 0x1B<<7 | 0x2F, - 26013 - 19968: jis0212<<14 | 0x20<<7 | 0x3B, - 26015 - 19968: jis0208<<14 | 0x39<<7 | 0x2F, - 26016 - 19968: jis0212<<14 | 0x20<<7 | 0x3C, - 26017 - 19968: jis0208<<14 | 0x0F<<7 | 0x15, - 26019 - 19968: jis0212<<14 | 0x20<<7 | 0x3D, - 26020 - 19968: jis0208<<14 | 0x15<<7 | 0x33, - 26021 - 19968: jis0208<<14 | 0x1F<<7 | 0x2C, - 26022 - 19968: jis0212<<14 | 0x20<<7 | 0x3E, - 26023 - 19968: jis0208<<14 | 0x28<<7 | 0x3F, - 26027 - 19968: jis0208<<14 | 0x39<<7 | 0x30, - 26028 - 19968: jis0208<<14 | 0x1A<<7 | 0x21, - 26029 - 19968: jis0208<<14 | 0x22<<7 | 0x26, - 26030 - 19968: jis0212<<14 | 0x20<<7 | 0x3F, - 26031 - 19968: jis0208<<14 | 0x1A<<7 | 0x3A, - 26032 - 19968: jis0208<<14 | 0x1E<<7 | 0x16, - 26034 - 19968: jis0212<<14 | 0x20<<7 | 0x40, - 26035 - 19968: jis0212<<14 | 0x20<<7 | 0x41, - 26036 - 19968: jis0212<<14 | 0x20<<7 | 0x42, - 26039 - 19968: jis0208<<14 | 0x39<<7 | 0x31, - 26041 - 19968: jis0208<<14 | 0x29<<7 | 0x5C, - 26044 - 19968: jis0208<<14 | 0x10<<7 | 0x56, - 26045 - 19968: jis0208<<14 | 0x1A<<7 | 0x3B, - 26047 - 19968: jis0212<<14 | 0x20<<7 | 0x43, - 26049 - 19968: jis0208<<14 | 0x39<<7 | 0x34, - 26050 - 19968: jis0212<<14 | 0x20<<7 | 0x44, - 26051 - 19968: jis0208<<14 | 0x39<<7 | 0x32, - 26052 - 19968: jis0208<<14 | 0x39<<7 | 0x35, - 26053 - 19968: jis0208<<14 | 0x2D<<7 | 0x18, - 26054 - 19968: jis0208<<14 | 0x39<<7 | 0x33, - 26056 - 19968: jis0212<<14 | 0x20<<7 | 0x45, - 26057 - 19968: jis0212<<14 | 0x20<<7 | 0x46, - 26059 - 19968: jis0208<<14 | 0x1F<<7 | 0x5A, - 26060 - 19968: jis0208<<14 | 0x39<<7 | 0x36, - 26062 - 19968: jis0212<<14 | 0x20<<7 | 0x47, - 26063 - 19968: jis0208<<14 | 0x21<<7 | 0x11, - 26064 - 19968: jis0212<<14 | 0x20<<7 | 0x48, - 26066 - 19968: jis0208<<14 | 0x39<<7 | 0x37, - 26068 - 19968: jis0212<<14 | 0x20<<7 | 0x49, - 26070 - 19968: jis0212<<14 | 0x20<<7 | 0x4A, - 26071 - 19968: jis0208<<14 | 0x13<<7 | 0x59, - 26072 - 19968: jis0212<<14 | 0x20<<7 | 0x4B, - 26073 - 19968: jis0208<<14 | 0x39<<7 | 0x39, - 26075 - 19968: jis0208<<14 | 0x39<<7 | 0x38, - 26079 - 19968: jis0212<<14 | 0x20<<7 | 0x4C, - 26080 - 19968: jis0208<<14 | 0x39<<7 | 0x3A, - 26081 - 19968: jis0208<<14 | 0x39<<7 | 0x3B, - 26082 - 19968: jis0208<<14 | 0x13<<7 | 0x5A, - 26085 - 19968: jis0208<<14 | 0x25<<7 | 0x5B, - 26086 - 19968: jis0208<<14 | 0x22<<7 | 0x15, - 26087 - 19968: jis0208<<14 | 0x14<<7 | 0x4B, - 26088 - 19968: jis0208<<14 | 0x1A<<7 | 0x3C, - 26089 - 19968: jis0208<<14 | 0x20<<7 | 0x40, - 26092 - 19968: jis0208<<14 | 0x1C<<7 | 0x3B, - 26093 - 19968: jis0208<<14 | 0x0F<<7 | 0x0F, - 26096 - 19968: jis0212<<14 | 0x20<<7 | 0x4D, - 26097 - 19968: jis0208<<14 | 0x39<<7 | 0x3C, - 26098 - 19968: jis0212<<14 | 0x20<<7 | 0x4E, - 26100 - 19968: jis0212<<14 | 0x20<<7 | 0x4F, - 26101 - 19968: jis0212<<14 | 0x20<<7 | 0x50, - 26105 - 19968: jis0212<<14 | 0x20<<7 | 0x51, - 26106 - 19968: jis0208<<14 | 0x11<<7 | 0x01, - 26107 - 19968: jis0208<<14 | 0x39<<7 | 0x40, - 26110 - 19968: jis0212<<14 | 0x20<<7 | 0x52, - 26111 - 19968: jis0212<<14 | 0x20<<7 | 0x53, - 26112 - 19968: jis0208<<14 | 0x59<<7 | 0x13, - 26114 - 19968: jis0208<<14 | 0x18<<7 | 0x16, - 26115 - 19968: jis0208<<14 | 0x39<<7 | 0x3F, - 26116 - 19968: jis0212<<14 | 0x20<<7 | 0x55, - 26118 - 19968: jis0208<<14 | 0x19<<7 | 0x0A, - 26119 - 19968: jis0208<<14 | 0x1D<<7 | 0x19, - 26120 - 19968: jis0212<<14 | 0x20<<7 | 0x56, - 26121 - 19968: jis0208<<14 | 0x59<<7 | 0x16, - 26122 - 19968: jis0208<<14 | 0x39<<7 | 0x3E, - 26124 - 19968: jis0208<<14 | 0x1D<<7 | 0x1A, - 26125 - 19968: jis0212<<14 | 0x20<<7 | 0x58, - 26126 - 19968: jis0208<<14 | 0x2B<<7 | 0x1F, - 26127 - 19968: jis0208<<14 | 0x19<<7 | 0x09, - 26129 - 19968: jis0212<<14 | 0x20<<7 | 0x59, - 26130 - 19968: jis0212<<14 | 0x20<<7 | 0x5A, - 26131 - 19968: jis0208<<14 | 0x0F<<7 | 0x36, - 26132 - 19968: jis0208<<14 | 0x1F<<7 | 0x2D, - 26133 - 19968: jis0208<<14 | 0x59<<7 | 0x14, - 26134 - 19968: jis0212<<14 | 0x20<<7 | 0x5C, - 26140 - 19968: jis0208<<14 | 0x39<<7 | 0x45, - 26141 - 19968: jis0212<<14 | 0x20<<7 | 0x5D, - 26142 - 19968: jis0208<<14 | 0x59<<7 | 0x18, - 26143 - 19968: jis0208<<14 | 0x1F<<7 | 0x10, - 26144 - 19968: jis0208<<14 | 0x10<<7 | 0x26, - 26145 - 19968: jis0212<<14 | 0x21<<7 | 0x01, - 26146 - 19968: jis0212<<14 | 0x21<<7 | 0x02, - 26147 - 19968: jis0212<<14 | 0x21<<7 | 0x03, - 26148 - 19968: jis0208<<14 | 0x59<<7 | 0x19, - 26149 - 19968: jis0208<<14 | 0x1C<<7 | 0x34, - 26150 - 19968: jis0212<<14 | 0x21<<7 | 0x05, - 26151 - 19968: jis0208<<14 | 0x2A<<7 | 0x45, - 26152 - 19968: jis0208<<14 | 0x19<<7 | 0x51, - 26153 - 19968: jis0212<<14 | 0x21<<7 | 0x06, - 26154 - 19968: jis0212<<14 | 0x21<<7 | 0x07, - 26155 - 19968: jis0212<<14 | 0x21<<7 | 0x08, - 26156 - 19968: jis0212<<14 | 0x21<<7 | 0x09, - 26157 - 19968: jis0208<<14 | 0x1D<<7 | 0x1B, - 26158 - 19968: jis0208<<14 | 0x59<<7 | 0x17, - 26159 - 19968: jis0208<<14 | 0x1F<<7 | 0x06, - 26160 - 19968: jis0212<<14 | 0x21<<7 | 0x0B, - 26161 - 19968: jis0208<<14 | 0x58<<7 | 0x07, - 26163 - 19968: jis0212<<14 | 0x21<<7 | 0x0D, - 26164 - 19968: jis0208<<14 | 0x39<<7 | 0x44, - 26165 - 19968: jis0208<<14 | 0x39<<7 | 0x42, - 26166 - 19968: jis0208<<14 | 0x39<<7 | 0x43, - 26167 - 19968: jis0212<<14 | 0x21<<7 | 0x0F, - 26169 - 19968: jis0212<<14 | 0x21<<7 | 0x0E, - 26171 - 19968: jis0208<<14 | 0x59<<7 | 0x15, - 26172 - 19968: jis0208<<14 | 0x22<<7 | 0x4A, - 26175 - 19968: jis0208<<14 | 0x3A<<7 | 0x05, - 26176 - 19968: jis0212<<14 | 0x21<<7 | 0x10, - 26177 - 19968: jis0208<<14 | 0x39<<7 | 0x49, - 26178 - 19968: jis0208<<14 | 0x1A<<7 | 0x5D, - 26179 - 19968: jis0208<<14 | 0x18<<7 | 0x17, - 26180 - 19968: jis0208<<14 | 0x39<<7 | 0x47, - 26181 - 19968: jis0212<<14 | 0x21<<7 | 0x11, - 26182 - 19968: jis0212<<14 | 0x21<<7 | 0x12, - 26185 - 19968: jis0208<<14 | 0x39<<7 | 0x48, - 26186 - 19968: jis0212<<14 | 0x21<<7 | 0x13, - 26187 - 19968: jis0208<<14 | 0x1E<<7 | 0x17, - 26188 - 19968: jis0212<<14 | 0x21<<7 | 0x14, - 26190 - 19968: jis0212<<14 | 0x21<<7 | 0x16, - 26191 - 19968: jis0208<<14 | 0x39<<7 | 0x46, - 26193 - 19968: jis0212<<14 | 0x21<<7 | 0x15, - 26194 - 19968: jis0208<<14 | 0x1A<<7 | 0x0E, - 26199 - 19968: jis0208<<14 | 0x59<<7 | 0x1B, - 26200 - 19968: jis0212<<14 | 0x21<<7 | 0x18, - 26201 - 19968: jis0208<<14 | 0x59<<7 | 0x1C, - 26203 - 19968: jis0212<<14 | 0x21<<7 | 0x1A, - 26204 - 19968: jis0212<<14 | 0x21<<7 | 0x1B, - 26205 - 19968: jis0208<<14 | 0x39<<7 | 0x4B, - 26206 - 19968: jis0208<<14 | 0x39<<7 | 0x4A, - 26207 - 19968: jis0208<<14 | 0x39<<7 | 0x4F, - 26208 - 19968: jis0212<<14 | 0x21<<7 | 0x1C, - 26209 - 19968: jis0212<<14 | 0x21<<7 | 0x1D, - 26210 - 19968: jis0208<<14 | 0x39<<7 | 0x50, - 26212 - 19968: jis0208<<14 | 0x39<<7 | 0x4C, - 26213 - 19968: jis0208<<14 | 0x59<<7 | 0x1A, - 26214 - 19968: jis0208<<14 | 0x12<<7 | 0x01, - 26215 - 19968: jis0208<<14 | 0x39<<7 | 0x4D, - 26216 - 19968: jis0208<<14 | 0x39<<7 | 0x4E, - 26217 - 19968: jis0208<<14 | 0x27<<7 | 0x34, - 26218 - 19968: jis0212<<14 | 0x21<<7 | 0x1F, - 26219 - 19968: jis0212<<14 | 0x21<<7 | 0x20, - 26220 - 19968: jis0212<<14 | 0x21<<7 | 0x21, - 26222 - 19968: jis0208<<14 | 0x28<<7 | 0x40, - 26223 - 19968: jis0208<<14 | 0x16<<7 | 0x29, - 26224 - 19968: jis0208<<14 | 0x39<<7 | 0x51, - 26227 - 19968: jis0208<<14 | 0x59<<7 | 0x1E, - 26228 - 19968: jis0208<<14 | 0x1F<<7 | 0x11, - 26229 - 19968: jis0212<<14 | 0x21<<7 | 0x24, - 26230 - 19968: jis0208<<14 | 0x1D<<7 | 0x1C, - 26231 - 19968: jis0212<<14 | 0x21<<7 | 0x26, - 26232 - 19968: jis0212<<14 | 0x21<<7 | 0x27, - 26233 - 19968: jis0212<<14 | 0x21<<7 | 0x28, - 26234 - 19968: jis0208<<14 | 0x22<<7 | 0x31, - 26235 - 19968: jis0212<<14 | 0x21<<7 | 0x29, - 26236 - 19968: jis0212<<14 | 0x21<<7 | 0x2B, - 26238 - 19968: jis0212<<14 | 0x21<<7 | 0x22, - 26239 - 19968: jis0212<<14 | 0x21<<7 | 0x25, - 26240 - 19968: jis0212<<14 | 0x21<<7 | 0x2A, - 26241 - 19968: jis0208<<14 | 0x15<<7 | 0x26, - 26243 - 19968: jis0208<<14 | 0x39<<7 | 0x52, - 26244 - 19968: jis0208<<14 | 0x39<<7 | 0x56, - 26247 - 19968: jis0208<<14 | 0x11<<7 | 0x2A, - 26248 - 19968: jis0208<<14 | 0x39<<7 | 0x53, - 26249 - 19968: jis0208<<14 | 0x39<<7 | 0x55, - 26251 - 19968: jis0212<<14 | 0x21<<7 | 0x2C, - 26252 - 19968: jis0212<<14 | 0x21<<7 | 0x2D, - 26253 - 19968: jis0212<<14 | 0x21<<7 | 0x2E, - 26254 - 19968: jis0208<<14 | 0x39<<7 | 0x54, - 26256 - 19968: jis0212<<14 | 0x21<<7 | 0x2F, - 26257 - 19968: jis0208<<14 | 0x1C<<7 | 0x4A, - 26258 - 19968: jis0212<<14 | 0x21<<7 | 0x30, - 26262 - 19968: jis0208<<14 | 0x22<<7 | 0x27, - 26263 - 19968: jis0208<<14 | 0x0F<<7 | 0x24, - 26264 - 19968: jis0208<<14 | 0x39<<7 | 0x57, - 26265 - 19968: jis0208<<14 | 0x59<<7 | 0x1F, - 26266 - 19968: jis0212<<14 | 0x21<<7 | 0x32, - 26267 - 19968: jis0212<<14 | 0x21<<7 | 0x33, - 26268 - 19968: jis0212<<14 | 0x21<<7 | 0x34, - 26269 - 19968: jis0208<<14 | 0x39<<7 | 0x58, - 26271 - 19968: jis0212<<14 | 0x21<<7 | 0x35, - 26272 - 19968: jis0208<<14 | 0x59<<7 | 0x20, - 26274 - 19968: jis0208<<14 | 0x23<<7 | 0x09, - 26276 - 19968: jis0212<<14 | 0x21<<7 | 0x37, - 26278 - 19968: jis0208<<14 | 0x2D<<7 | 0x50, - 26283 - 19968: jis0208<<14 | 0x1A<<7 | 0x22, - 26285 - 19968: jis0212<<14 | 0x21<<7 | 0x38, - 26286 - 19968: jis0208<<14 | 0x29<<7 | 0x4A, - 26289 - 19968: jis0212<<14 | 0x21<<7 | 0x39, - 26290 - 19968: jis0208<<14 | 0x59<<7 | 0x21, - 26292 - 19968: jis0208<<14 | 0x2A<<7 | 0x1C, - 26293 - 19968: jis0212<<14 | 0x21<<7 | 0x3B, - 26296 - 19968: jis0208<<14 | 0x3A<<7 | 0x01, - 26297 - 19968: jis0208<<14 | 0x39<<7 | 0x5A, - 26299 - 19968: jis0212<<14 | 0x21<<7 | 0x3C, - 26300 - 19968: jis0208<<14 | 0x39<<7 | 0x5D, - 26302 - 19968: jis0208<<14 | 0x39<<7 | 0x5C, - 26303 - 19968: jis0208<<14 | 0x59<<7 | 0x22, - 26304 - 19968: jis0212<<14 | 0x21<<7 | 0x3E, - 26305 - 19968: jis0208<<14 | 0x39<<7 | 0x59, - 26306 - 19968: jis0212<<14 | 0x21<<7 | 0x3F, - 26307 - 19968: jis0212<<14 | 0x21<<7 | 0x40, - 26308 - 19968: jis0208<<14 | 0x3A<<7 | 0x00, - 26311 - 19968: jis0208<<14 | 0x25<<7 | 0x3D, - 26312 - 19968: jis0212<<14 | 0x21<<7 | 0x41, - 26313 - 19968: jis0208<<14 | 0x39<<7 | 0x5B, - 26316 - 19968: jis0212<<14 | 0x21<<7 | 0x42, - 26318 - 19968: jis0212<<14 | 0x21<<7 | 0x43, - 26319 - 19968: jis0212<<14 | 0x21<<7 | 0x44, - 26324 - 19968: jis0212<<14 | 0x21<<7 | 0x45, - 26326 - 19968: jis0208<<14 | 0x3A<<7 | 0x02, - 26329 - 19968: jis0208<<14 | 0x1C<<7 | 0x4B, - 26330 - 19968: jis0208<<14 | 0x3A<<7 | 0x03, - 26331 - 19968: jis0212<<14 | 0x21<<7 | 0x46, - 26332 - 19968: jis0208<<14 | 0x2C<<7 | 0x2A, - 26333 - 19968: jis0208<<14 | 0x26<<7 | 0x57, - 26335 - 19968: jis0212<<14 | 0x21<<7 | 0x47, - 26336 - 19968: jis0208<<14 | 0x3A<<7 | 0x04, - 26342 - 19968: jis0208<<14 | 0x3A<<7 | 0x06, - 26344 - 19968: jis0212<<14 | 0x21<<7 | 0x48, - 26345 - 19968: jis0208<<14 | 0x3A<<7 | 0x07, - 26347 - 19968: jis0212<<14 | 0x21<<7 | 0x49, - 26348 - 19968: jis0212<<14 | 0x21<<7 | 0x4A, - 26350 - 19968: jis0212<<14 | 0x21<<7 | 0x4B, - 26352 - 19968: jis0208<<14 | 0x3A<<7 | 0x08, - 26354 - 19968: jis0208<<14 | 0x15<<7 | 0x29, - 26355 - 19968: jis0208<<14 | 0x10<<7 | 0x27, - 26356 - 19968: jis0208<<14 | 0x18<<7 | 0x18, - 26357 - 19968: jis0208<<14 | 0x3A<<7 | 0x09, - 26359 - 19968: jis0208<<14 | 0x3A<<7 | 0x0A, - 26360 - 19968: jis0208<<14 | 0x1C<<7 | 0x50, - 26361 - 19968: jis0208<<14 | 0x20<<7 | 0x41, - 26362 - 19968: jis0208<<14 | 0x59<<7 | 0x23, - 26363 - 19968: jis0208<<14 | 0x58<<7 | 0x0A, - 26364 - 19968: jis0208<<14 | 0x31<<7 | 0x37, - 26365 - 19968: jis0208<<14 | 0x20<<7 | 0x1D, - 26366 - 19968: jis0208<<14 | 0x20<<7 | 0x1C, - 26367 - 19968: jis0208<<14 | 0x21<<7 | 0x37, - 26368 - 19968: jis0208<<14 | 0x19<<7 | 0x26, - 26371 - 19968: jis0208<<14 | 0x2F<<7 | 0x51, - 26373 - 19968: jis0212<<14 | 0x21<<7 | 0x4D, - 26375 - 19968: jis0212<<14 | 0x21<<7 | 0x4E, - 26376 - 19968: jis0208<<14 | 0x16<<7 | 0x4D, - 26377 - 19968: jis0208<<14 | 0x2C<<7 | 0x0C, - 26379 - 19968: jis0208<<14 | 0x29<<7 | 0x5D, - 26381 - 19968: jis0208<<14 | 0x28<<7 | 0x5D, - 26382 - 19968: jis0208<<14 | 0x59<<7 | 0x24, - 26383 - 19968: jis0208<<14 | 0x3A<<7 | 0x0B, - 26387 - 19968: jis0212<<14 | 0x21<<7 | 0x50, - 26388 - 19968: jis0208<<14 | 0x19<<7 | 0x52, - 26389 - 19968: jis0208<<14 | 0x23<<7 | 0x1E, - 26390 - 19968: jis0208<<14 | 0x3A<<7 | 0x0C, - 26391 - 19968: jis0208<<14 | 0x2E<<7 | 0x0E, - 26393 - 19968: jis0212<<14 | 0x21<<7 | 0x51, - 26395 - 19968: jis0208<<14 | 0x2A<<7 | 0x1D, - 26396 - 19968: jis0212<<14 | 0x21<<7 | 0x52, - 26397 - 19968: jis0208<<14 | 0x23<<7 | 0x0A, - 26398 - 19968: jis0208<<14 | 0x3A<<7 | 0x0D, - 26399 - 19968: jis0208<<14 | 0x13<<7 | 0x5B, - 26400 - 19968: jis0212<<14 | 0x21<<7 | 0x53, - 26402 - 19968: jis0212<<14 | 0x21<<7 | 0x54, - 26406 - 19968: jis0208<<14 | 0x3A<<7 | 0x0E, - 26407 - 19968: jis0208<<14 | 0x3A<<7 | 0x0F, - 26408 - 19968: jis0208<<14 | 0x2B<<7 | 0x39, - 26410 - 19968: jis0208<<14 | 0x2B<<7 | 0x03, - 26411 - 19968: jis0208<<14 | 0x2A<<7 | 0x55, - 26412 - 19968: jis0208<<14 | 0x2A<<7 | 0x3B, - 26413 - 19968: jis0208<<14 | 0x1A<<7 | 0x04, - 26414 - 19968: jis0208<<14 | 0x3A<<7 | 0x11, - 26417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4A, - 26419 - 19968: jis0212<<14 | 0x21<<7 | 0x55, - 26420 - 19968: jis0208<<14 | 0x2A<<7 | 0x30, - 26422 - 19968: jis0208<<14 | 0x3A<<7 | 0x13, - 26423 - 19968: jis0208<<14 | 0x3A<<7 | 0x16, - 26424 - 19968: jis0208<<14 | 0x3A<<7 | 0x15, - 26426 - 19968: jis0208<<14 | 0x13<<7 | 0x58, - 26429 - 19968: jis0208<<14 | 0x14<<7 | 0x3F, - 26430 - 19968: jis0212<<14 | 0x21<<7 | 0x56, - 26431 - 19968: jis0208<<14 | 0x3A<<7 | 0x12, - 26433 - 19968: jis0208<<14 | 0x3A<<7 | 0x14, - 26437 - 19968: jis0212<<14 | 0x21<<7 | 0x57, - 26438 - 19968: jis0208<<14 | 0x3A<<7 | 0x17, - 26439 - 19968: jis0212<<14 | 0x21<<7 | 0x58, - 26440 - 19968: jis0212<<14 | 0x21<<7 | 0x59, - 26441 - 19968: jis0208<<14 | 0x1E<<7 | 0x58, - 26444 - 19968: jis0212<<14 | 0x21<<7 | 0x5A, - 26446 - 19968: jis0208<<14 | 0x2C<<7 | 0x5A, - 26447 - 19968: jis0208<<14 | 0x0F<<7 | 0x28, - 26448 - 19968: jis0208<<14 | 0x19<<7 | 0x3F, - 26449 - 19968: jis0208<<14 | 0x21<<7 | 0x1B, - 26451 - 19968: jis0208<<14 | 0x1B<<7 | 0x3C, - 26452 - 19968: jis0212<<14 | 0x21<<7 | 0x5B, - 26453 - 19968: jis0212<<14 | 0x21<<7 | 0x5C, - 26454 - 19968: jis0208<<14 | 0x1D<<7 | 0x52, - 26457 - 19968: jis0208<<14 | 0x3A<<7 | 0x1A, - 26460 - 19968: jis0208<<14 | 0x24<<7 | 0x2D, - 26461 - 19968: jis0212<<14 | 0x21<<7 | 0x5D, - 26462 - 19968: jis0208<<14 | 0x3A<<7 | 0x18, - 26463 - 19968: jis0208<<14 | 0x21<<7 | 0x0A, - 26464 - 19968: jis0208<<14 | 0x3A<<7 | 0x19, - 26465 - 19968: jis0208<<14 | 0x1D<<7 | 0x51, - 26466 - 19968: jis0208<<14 | 0x2B<<7 | 0x3C, - 26467 - 19968: jis0208<<14 | 0x3A<<7 | 0x1B, - 26468 - 19968: jis0208<<14 | 0x3A<<7 | 0x1C, - 26469 - 19968: jis0208<<14 | 0x2C<<7 | 0x47, - 26470 - 19968: jis0208<<14 | 0x59<<7 | 0x26, - 26474 - 19968: jis0208<<14 | 0x3A<<7 | 0x21, - 26476 - 19968: jis0212<<14 | 0x22<<7 | 0x01, - 26477 - 19968: jis0208<<14 | 0x18<<7 | 0x19, - 26478 - 19968: jis0212<<14 | 0x22<<7 | 0x02, - 26479 - 19968: jis0208<<14 | 0x26<<7 | 0x34, - 26480 - 19968: jis0208<<14 | 0x3A<<7 | 0x1E, - 26481 - 19968: jis0208<<14 | 0x24<<7 | 0x4B, - 26482 - 19968: jis0208<<14 | 0x39<<7 | 0x3D, - 26483 - 19968: jis0208<<14 | 0x39<<7 | 0x41, - 26484 - 19968: jis0212<<14 | 0x22<<7 | 0x03, - 26485 - 19968: jis0208<<14 | 0x14<<7 | 0x2E, - 26486 - 19968: jis0212<<14 | 0x22<<7 | 0x04, - 26487 - 19968: jis0208<<14 | 0x26<<7 | 0x26, - 26491 - 19968: jis0212<<14 | 0x22<<7 | 0x05, - 26492 - 19968: jis0208<<14 | 0x3A<<7 | 0x20, - 26494 - 19968: jis0208<<14 | 0x1D<<7 | 0x1D, - 26495 - 19968: jis0208<<14 | 0x27<<7 | 0x23, - 26497 - 19968: jis0212<<14 | 0x22<<7 | 0x06, - 26500 - 19968: jis0212<<14 | 0x22<<7 | 0x07, - 26501 - 19968: jis0208<<14 | 0x3A<<7 | 0x26, - 26503 - 19968: jis0208<<14 | 0x27<<7 | 0x59, - 26505 - 19968: jis0208<<14 | 0x3A<<7 | 0x1D, - 26507 - 19968: jis0208<<14 | 0x3A<<7 | 0x23, - 26508 - 19968: jis0208<<14 | 0x3A<<7 | 0x22, - 26510 - 19968: jis0212<<14 | 0x22<<7 | 0x08, - 26511 - 19968: jis0212<<14 | 0x22<<7 | 0x09, - 26512 - 19968: jis0208<<14 | 0x1F<<7 | 0x2E, - 26513 - 19968: jis0212<<14 | 0x22<<7 | 0x0A, - 26515 - 19968: jis0212<<14 | 0x22<<7 | 0x0B, - 26517 - 19968: jis0208<<14 | 0x2A<<7 | 0x4C, - 26518 - 19968: jis0212<<14 | 0x22<<7 | 0x0C, - 26519 - 19968: jis0208<<14 | 0x2D<<7 | 0x32, - 26520 - 19968: jis0212<<14 | 0x22<<7 | 0x0D, - 26521 - 19968: jis0212<<14 | 0x22<<7 | 0x0E, - 26522 - 19968: jis0208<<14 | 0x2A<<7 | 0x46, - 26523 - 19968: jis0212<<14 | 0x22<<7 | 0x0F, - 26524 - 19968: jis0208<<14 | 0x11<<7 | 0x2B, - 26525 - 19968: jis0208<<14 | 0x1A<<7 | 0x3D, - 26528 - 19968: jis0208<<14 | 0x2E<<7 | 0x27, - 26529 - 19968: jis0208<<14 | 0x3A<<7 | 0x25, - 26530 - 19968: jis0208<<14 | 0x1E<<7 | 0x54, - 26534 - 19968: jis0208<<14 | 0x3A<<7 | 0x24, - 26537 - 19968: jis0208<<14 | 0x3A<<7 | 0x1F, - 26543 - 19968: jis0208<<14 | 0x17<<7 | 0x2E, - 26544 - 19968: jis0212<<14 | 0x22<<7 | 0x10, - 26545 - 19968: jis0212<<14 | 0x22<<7 | 0x11, - 26546 - 19968: jis0212<<14 | 0x22<<7 | 0x12, - 26547 - 19968: jis0208<<14 | 0x3A<<7 | 0x2B, - 26548 - 19968: jis0208<<14 | 0x3A<<7 | 0x29, - 26549 - 19968: jis0212<<14 | 0x22<<7 | 0x13, - 26550 - 19968: jis0208<<14 | 0x11<<7 | 0x2C, - 26551 - 19968: jis0208<<14 | 0x3A<<7 | 0x27, - 26552 - 19968: jis0208<<14 | 0x3A<<7 | 0x2D, - 26553 - 19968: jis0208<<14 | 0x3A<<7 | 0x33, - 26555 - 19968: jis0208<<14 | 0x59<<7 | 0x27, - 26556 - 19968: jis0212<<14 | 0x22<<7 | 0x15, - 26557 - 19968: jis0212<<14 | 0x22<<7 | 0x16, - 26560 - 19968: jis0208<<14 | 0x59<<7 | 0x29, - 26561 - 19968: jis0208<<14 | 0x21<<7 | 0x27, - 26562 - 19968: jis0212<<14 | 0x22<<7 | 0x19, - 26563 - 19968: jis0212<<14 | 0x22<<7 | 0x1A, - 26564 - 19968: jis0208<<14 | 0x29<<7 | 0x20, - 26565 - 19968: jis0212<<14 | 0x22<<7 | 0x1B, - 26566 - 19968: jis0208<<14 | 0x3A<<7 | 0x35, - 26568 - 19968: jis0212<<14 | 0x22<<7 | 0x1C, - 26569 - 19968: jis0212<<14 | 0x22<<7 | 0x1D, - 26570 - 19968: jis0208<<14 | 0x28<<7 | 0x01, - 26574 - 19968: jis0208<<14 | 0x3A<<7 | 0x34, - 26575 - 19968: jis0208<<14 | 0x26<<7 | 0x4F, - 26576 - 19968: jis0208<<14 | 0x2A<<7 | 0x1E, - 26577 - 19968: jis0208<<14 | 0x13<<7 | 0x1A, - 26578 - 19968: jis0212<<14 | 0x22<<7 | 0x1E, - 26579 - 19968: jis0208<<14 | 0x1F<<7 | 0x56, - 26580 - 19968: jis0208<<14 | 0x1C<<7 | 0x1F, - 26583 - 19968: jis0212<<14 | 0x22<<7 | 0x1F, - 26584 - 19968: jis0208<<14 | 0x23<<7 | 0x32, - 26585 - 19968: jis0212<<14 | 0x22<<7 | 0x20, - 26586 - 19968: jis0208<<14 | 0x2C<<7 | 0x0D, - 26588 - 19968: jis0212<<14 | 0x22<<7 | 0x21, - 26589 - 19968: jis0208<<14 | 0x3A<<7 | 0x30, - 26590 - 19968: jis0208<<14 | 0x3A<<7 | 0x2F, - 26593 - 19968: jis0212<<14 | 0x22<<7 | 0x22, - 26594 - 19968: jis0208<<14 | 0x3A<<7 | 0x31, - 26596 - 19968: jis0208<<14 | 0x3A<<7 | 0x2E, - 26598 - 19968: jis0212<<14 | 0x22<<7 | 0x23, - 26599 - 19968: jis0208<<14 | 0x3A<<7 | 0x36, - 26601 - 19968: jis0208<<14 | 0x3A<<7 | 0x2C, - 26604 - 19968: jis0208<<14 | 0x3A<<7 | 0x2A, - 26606 - 19968: jis0208<<14 | 0x3A<<7 | 0x32, - 26607 - 19968: jis0208<<14 | 0x3A<<7 | 0x28, - 26608 - 19968: jis0212<<14 | 0x22<<7 | 0x24, - 26609 - 19968: jis0208<<14 | 0x22<<7 | 0x4B, - 26610 - 19968: jis0212<<14 | 0x22<<7 | 0x25, - 26611 - 19968: jis0208<<14 | 0x2B<<7 | 0x57, - 26612 - 19968: jis0208<<14 | 0x1B<<7 | 0x25, - 26613 - 19968: jis0208<<14 | 0x19<<7 | 0x53, - 26614 - 19968: jis0212<<14 | 0x22<<7 | 0x26, - 26615 - 19968: jis0212<<14 | 0x22<<7 | 0x27, - 26617 - 19968: jis0212<<14 | 0x22<<7 | 0x17, - 26619 - 19968: jis0208<<14 | 0x19<<7 | 0x19, - 26622 - 19968: jis0208<<14 | 0x2A<<7 | 0x4E, - 26623 - 19968: jis0208<<14 | 0x12<<7 | 0x20, - 26625 - 19968: jis0208<<14 | 0x59<<7 | 0x2A, - 26626 - 19968: jis0208<<14 | 0x23<<7 | 0x2D, - 26627 - 19968: jis0208<<14 | 0x25<<7 | 0x29, - 26628 - 19968: jis0208<<14 | 0x10<<7 | 0x28, - 26643 - 19968: jis0208<<14 | 0x1F<<7 | 0x51, - 26644 - 19968: jis0212<<14 | 0x22<<7 | 0x29, - 26646 - 19968: jis0208<<14 | 0x1F<<7 | 0x13, - 26647 - 19968: jis0208<<14 | 0x16<<7 | 0x09, - 26649 - 19968: jis0212<<14 | 0x22<<7 | 0x2A, - 26653 - 19968: jis0212<<14 | 0x22<<7 | 0x2B, - 26654 - 19968: jis0208<<14 | 0x3A<<7 | 0x38, - 26655 - 19968: jis0212<<14 | 0x22<<7 | 0x2C, - 26657 - 19968: jis0208<<14 | 0x18<<7 | 0x1A, - 26658 - 19968: jis0208<<14 | 0x12<<7 | 0x5B, - 26663 - 19968: jis0212<<14 | 0x22<<7 | 0x2E, - 26664 - 19968: jis0212<<14 | 0x22<<7 | 0x2D, - 26665 - 19968: jis0208<<14 | 0x3A<<7 | 0x3A, - 26666 - 19968: jis0208<<14 | 0x12<<7 | 0x53, - 26667 - 19968: jis0208<<14 | 0x3A<<7 | 0x40, - 26668 - 19968: jis0212<<14 | 0x22<<7 | 0x2F, - 26669 - 19968: jis0212<<14 | 0x22<<7 | 0x30, - 26671 - 19968: jis0212<<14 | 0x22<<7 | 0x31, - 26672 - 19968: jis0212<<14 | 0x22<<7 | 0x32, - 26673 - 19968: jis0212<<14 | 0x22<<7 | 0x33, - 26674 - 19968: jis0208<<14 | 0x3A<<7 | 0x3D, - 26675 - 19968: jis0212<<14 | 0x22<<7 | 0x34, - 26676 - 19968: jis0208<<14 | 0x1F<<7 | 0x52, - 26680 - 19968: jis0208<<14 | 0x12<<7 | 0x2A, - 26681 - 19968: jis0208<<14 | 0x19<<7 | 0x0B, - 26683 - 19968: jis0212<<14 | 0x22<<7 | 0x35, - 26684 - 19968: jis0208<<14 | 0x12<<7 | 0x29, - 26685 - 19968: jis0208<<14 | 0x19<<7 | 0x2E, - 26687 - 19968: jis0212<<14 | 0x22<<7 | 0x36, - 26688 - 19968: jis0208<<14 | 0x3A<<7 | 0x3B, - 26689 - 19968: jis0208<<14 | 0x16<<7 | 0x44, - 26690 - 19968: jis0208<<14 | 0x16<<7 | 0x2A, - 26691 - 19968: jis0208<<14 | 0x24<<7 | 0x4C, - 26692 - 19968: jis0208<<14 | 0x59<<7 | 0x2B, - 26693 - 19968: jis0212<<14 | 0x22<<7 | 0x38, - 26694 - 19968: jis0208<<14 | 0x3A<<7 | 0x39, - 26696 - 19968: jis0208<<14 | 0x0F<<7 | 0x25, - 26698 - 19968: jis0212<<14 | 0x22<<7 | 0x39, - 26700 - 19968: jis0212<<14 | 0x22<<7 | 0x3A, - 26701 - 19968: jis0208<<14 | 0x3A<<7 | 0x3C, - 26702 - 19968: jis0208<<14 | 0x3A<<7 | 0x3E, - 26704 - 19968: jis0208<<14 | 0x15<<7 | 0x2C, - 26705 - 19968: jis0208<<14 | 0x16<<7 | 0x0B, - 26706 - 19968: jis0208<<14 | 0x59<<7 | 0x28, - 26707 - 19968: jis0208<<14 | 0x13<<7 | 0x1B, - 26708 - 19968: jis0208<<14 | 0x14<<7 | 0x2A, - 26709 - 19968: jis0212<<14 | 0x22<<7 | 0x3B, - 26711 - 19968: jis0212<<14 | 0x22<<7 | 0x3C, - 26712 - 19968: jis0212<<14 | 0x22<<7 | 0x3D, - 26713 - 19968: jis0208<<14 | 0x3A<<7 | 0x41, - 26715 - 19968: jis0212<<14 | 0x22<<7 | 0x3E, - 26716 - 19968: jis0208<<14 | 0x19<<7 | 0x58, - 26717 - 19968: jis0208<<14 | 0x2A<<7 | 0x50, - 26719 - 19968: jis0208<<14 | 0x1A<<7 | 0x16, - 26723 - 19968: jis0208<<14 | 0x3A<<7 | 0x42, - 26727 - 19968: jis0208<<14 | 0x28<<7 | 0x0F, - 26731 - 19968: jis0212<<14 | 0x22<<7 | 0x3F, - 26734 - 19968: jis0212<<14 | 0x22<<7 | 0x40, - 26735 - 19968: jis0212<<14 | 0x22<<7 | 0x41, - 26736 - 19968: jis0212<<14 | 0x22<<7 | 0x42, - 26737 - 19968: jis0212<<14 | 0x22<<7 | 0x43, - 26738 - 19968: jis0212<<14 | 0x22<<7 | 0x44, - 26740 - 19968: jis0208<<14 | 0x3A<<7 | 0x4E, - 26741 - 19968: jis0212<<14 | 0x22<<7 | 0x45, - 26742 - 19968: jis0208<<14 | 0x11<<7 | 0x12, - 26743 - 19968: jis0208<<14 | 0x3A<<7 | 0x43, - 26745 - 19968: jis0212<<14 | 0x22<<7 | 0x46, - 26746 - 19968: jis0212<<14 | 0x22<<7 | 0x47, - 26747 - 19968: jis0212<<14 | 0x22<<7 | 0x48, - 26748 - 19968: jis0212<<14 | 0x22<<7 | 0x49, - 26750 - 19968: jis0208<<14 | 0x3A<<7 | 0x54, - 26751 - 19968: jis0208<<14 | 0x3A<<7 | 0x44, - 26753 - 19968: jis0208<<14 | 0x2D<<7 | 0x21, - 26754 - 19968: jis0212<<14 | 0x22<<7 | 0x4A, - 26755 - 19968: jis0208<<14 | 0x3A<<7 | 0x4B, - 26756 - 19968: jis0212<<14 | 0x22<<7 | 0x4B, - 26757 - 19968: jis0208<<14 | 0x26<<7 | 0x3E, - 26758 - 19968: jis0212<<14 | 0x22<<7 | 0x4C, - 26760 - 19968: jis0212<<14 | 0x22<<7 | 0x4D, - 26765 - 19968: jis0208<<14 | 0x3A<<7 | 0x53, - 26767 - 19968: jis0208<<14 | 0x3A<<7 | 0x46, - 26771 - 19968: jis0208<<14 | 0x0F<<7 | 0x13, - 26772 - 19968: jis0208<<14 | 0x3A<<7 | 0x48, - 26774 - 19968: jis0212<<14 | 0x22<<7 | 0x4E, - 26775 - 19968: jis0208<<14 | 0x18<<7 | 0x1B, - 26776 - 19968: jis0212<<14 | 0x22<<7 | 0x4F, - 26778 - 19968: jis0212<<14 | 0x22<<7 | 0x50, - 26779 - 19968: jis0208<<14 | 0x3A<<7 | 0x4A, - 26780 - 19968: jis0212<<14 | 0x22<<7 | 0x51, - 26781 - 19968: jis0208<<14 | 0x3A<<7 | 0x49, - 26783 - 19968: jis0208<<14 | 0x3A<<7 | 0x45, - 26784 - 19968: jis0208<<14 | 0x3A<<7 | 0x50, - 26785 - 19968: jis0212<<14 | 0x22<<7 | 0x52, - 26786 - 19968: jis0208<<14 | 0x1D<<7 | 0x1E, - 26787 - 19968: jis0212<<14 | 0x22<<7 | 0x53, - 26789 - 19968: jis0212<<14 | 0x22<<7 | 0x54, - 26790 - 19968: jis0208<<14 | 0x33<<7 | 0x4C, - 26791 - 19968: jis0208<<14 | 0x17<<7 | 0x47, - 26792 - 19968: jis0208<<14 | 0x2C<<7 | 0x5B, - 26793 - 19968: jis0212<<14 | 0x22<<7 | 0x55, - 26794 - 19968: jis0212<<14 | 0x22<<7 | 0x56, - 26797 - 19968: jis0208<<14 | 0x3A<<7 | 0x47, - 26798 - 19968: jis0212<<14 | 0x22<<7 | 0x57, - 26799 - 19968: jis0208<<14 | 0x23<<7 | 0x53, - 26800 - 19968: jis0208<<14 | 0x12<<7 | 0x02, - 26801 - 19968: jis0208<<14 | 0x19<<7 | 0x0C, - 26802 - 19968: jis0212<<14 | 0x22<<7 | 0x58, - 26803 - 19968: jis0208<<14 | 0x3A<<7 | 0x3F, - 26805 - 19968: jis0208<<14 | 0x3A<<7 | 0x4F, - 26806 - 19968: jis0208<<14 | 0x12<<7 | 0x40, - 26809 - 19968: jis0208<<14 | 0x3A<<7 | 0x4D, - 26810 - 19968: jis0208<<14 | 0x3A<<7 | 0x51, - 26811 - 19968: jis0212<<14 | 0x22<<7 | 0x59, - 26812 - 19968: jis0208<<14 | 0x24<<7 | 0x4D, - 26820 - 19968: jis0208<<14 | 0x13<<7 | 0x5D, - 26821 - 19968: jis0212<<14 | 0x22<<7 | 0x5A, - 26822 - 19968: jis0208<<14 | 0x3B<<7 | 0x11, - 26824 - 19968: jis0208<<14 | 0x58<<7 | 0x08, - 26825 - 19968: jis0208<<14 | 0x2B<<7 | 0x28, - 26826 - 19968: jis0208<<14 | 0x3A<<7 | 0x56, - 26827 - 19968: jis0208<<14 | 0x13<<7 | 0x5C, - 26828 - 19968: jis0212<<14 | 0x22<<7 | 0x5C, - 26829 - 19968: jis0208<<14 | 0x3A<<7 | 0x5D, - 26831 - 19968: jis0208<<14 | 0x59<<7 | 0x2C, - 26832 - 19968: jis0212<<14 | 0x23<<7 | 0x00, - 26833 - 19968: jis0212<<14 | 0x23<<7 | 0x01, - 26834 - 19968: jis0208<<14 | 0x2A<<7 | 0x1F, - 26835 - 19968: jis0212<<14 | 0x23<<7 | 0x02, - 26836 - 19968: jis0208<<14 | 0x3B<<7 | 0x00, - 26837 - 19968: jis0208<<14 | 0x3B<<7 | 0x02, - 26838 - 19968: jis0212<<14 | 0x23<<7 | 0x03, - 26839 - 19968: jis0208<<14 | 0x3B<<7 | 0x06, - 26840 - 19968: jis0208<<14 | 0x3A<<7 | 0x58, - 26841 - 19968: jis0212<<14 | 0x23<<7 | 0x04, - 26842 - 19968: jis0208<<14 | 0x22<<7 | 0x09, - 26844 - 19968: jis0212<<14 | 0x23<<7 | 0x05, - 26845 - 19968: jis0212<<14 | 0x23<<7 | 0x06, - 26847 - 19968: jis0208<<14 | 0x24<<7 | 0x4E, - 26848 - 19968: jis0208<<14 | 0x3B<<7 | 0x0A, - 26849 - 19968: jis0208<<14 | 0x3A<<7 | 0x5B, - 26851 - 19968: jis0208<<14 | 0x3B<<7 | 0x07, - 26853 - 19968: jis0212<<14 | 0x23<<7 | 0x07, - 26855 - 19968: jis0208<<14 | 0x3B<<7 | 0x01, - 26856 - 19968: jis0212<<14 | 0x23<<7 | 0x08, - 26858 - 19968: jis0212<<14 | 0x23<<7 | 0x09, - 26859 - 19968: jis0212<<14 | 0x23<<7 | 0x0A, - 26860 - 19968: jis0212<<14 | 0x23<<7 | 0x0B, - 26861 - 19968: jis0212<<14 | 0x23<<7 | 0x0C, - 26862 - 19968: jis0208<<14 | 0x1E<<7 | 0x18, - 26863 - 19968: jis0208<<14 | 0x3B<<7 | 0x0B, - 26864 - 19968: jis0212<<14 | 0x23<<7 | 0x0D, - 26865 - 19968: jis0212<<14 | 0x23<<7 | 0x0E, - 26866 - 19968: jis0208<<14 | 0x1F<<7 | 0x12, - 26869 - 19968: jis0212<<14 | 0x23<<7 | 0x0F, - 26870 - 19968: jis0212<<14 | 0x23<<7 | 0x10, - 26873 - 19968: jis0208<<14 | 0x3B<<7 | 0x09, - 26874 - 19968: jis0208<<14 | 0x13<<7 | 0x1C, - 26875 - 19968: jis0212<<14 | 0x23<<7 | 0x11, - 26876 - 19968: jis0212<<14 | 0x23<<7 | 0x12, - 26877 - 19968: jis0212<<14 | 0x23<<7 | 0x13, - 26880 - 19968: jis0208<<14 | 0x2E<<7 | 0x2F, - 26881 - 19968: jis0208<<14 | 0x3A<<7 | 0x55, - 26884 - 19968: jis0208<<14 | 0x3B<<7 | 0x05, - 26885 - 19968: jis0208<<14 | 0x0F<<7 | 0x37, - 26886 - 19968: jis0212<<14 | 0x23<<7 | 0x14, - 26888 - 19968: jis0208<<14 | 0x3A<<7 | 0x57, - 26889 - 19968: jis0212<<14 | 0x23<<7 | 0x15, - 26890 - 19968: jis0212<<14 | 0x23<<7 | 0x16, - 26891 - 19968: jis0208<<14 | 0x2B<<7 | 0x19, - 26892 - 19968: jis0208<<14 | 0x3A<<7 | 0x5C, - 26893 - 19968: jis0208<<14 | 0x1E<<7 | 0x01, - 26894 - 19968: jis0208<<14 | 0x23<<7 | 0x26, - 26895 - 19968: jis0208<<14 | 0x3A<<7 | 0x52, - 26896 - 19968: jis0212<<14 | 0x23<<7 | 0x17, - 26897 - 19968: jis0212<<14 | 0x23<<7 | 0x18, - 26898 - 19968: jis0208<<14 | 0x3B<<7 | 0x04, - 26899 - 19968: jis0212<<14 | 0x23<<7 | 0x19, - 26902 - 19968: jis0212<<14 | 0x23<<7 | 0x1A, - 26903 - 19968: jis0212<<14 | 0x23<<7 | 0x1B, - 26905 - 19968: jis0208<<14 | 0x1E<<7 | 0x59, - 26906 - 19968: jis0208<<14 | 0x3B<<7 | 0x0E, - 26907 - 19968: jis0208<<14 | 0x12<<7 | 0x50, - 26908 - 19968: jis0208<<14 | 0x17<<7 | 0x00, - 26913 - 19968: jis0208<<14 | 0x3B<<7 | 0x10, - 26914 - 19968: jis0208<<14 | 0x3A<<7 | 0x59, - 26915 - 19968: jis0208<<14 | 0x3B<<7 | 0x0F, - 26917 - 19968: jis0208<<14 | 0x3B<<7 | 0x08, - 26918 - 19968: jis0208<<14 | 0x3A<<7 | 0x5A, - 26920 - 19968: jis0208<<14 | 0x3B<<7 | 0x0C, - 26922 - 19968: jis0208<<14 | 0x3B<<7 | 0x0D, - 26928 - 19968: jis0208<<14 | 0x3B<<7 | 0x1E, - 26929 - 19968: jis0212<<14 | 0x23<<7 | 0x1C, - 26931 - 19968: jis0212<<14 | 0x23<<7 | 0x1D, - 26932 - 19968: jis0208<<14 | 0x25<<7 | 0x2D, - 26933 - 19968: jis0212<<14 | 0x23<<7 | 0x1E, - 26934 - 19968: jis0208<<14 | 0x3B<<7 | 0x03, - 26936 - 19968: jis0212<<14 | 0x23<<7 | 0x1F, - 26937 - 19968: jis0208<<14 | 0x3B<<7 | 0x1A, - 26939 - 19968: jis0212<<14 | 0x23<<7 | 0x20, - 26941 - 19968: jis0208<<14 | 0x3B<<7 | 0x1C, - 26943 - 19968: jis0208<<14 | 0x23<<7 | 0x37, - 26946 - 19968: jis0212<<14 | 0x23<<7 | 0x21, - 26949 - 19968: jis0212<<14 | 0x23<<7 | 0x22, - 26953 - 19968: jis0212<<14 | 0x23<<7 | 0x23, - 26954 - 19968: jis0208<<14 | 0x2C<<7 | 0x2B, - 26958 - 19968: jis0212<<14 | 0x23<<7 | 0x24, - 26963 - 19968: jis0208<<14 | 0x28<<7 | 0x55, - 26964 - 19968: jis0208<<14 | 0x3B<<7 | 0x17, - 26965 - 19968: jis0208<<14 | 0x21<<7 | 0x29, - 26967 - 19968: jis0212<<14 | 0x23<<7 | 0x25, - 26969 - 19968: jis0208<<14 | 0x3B<<7 | 0x1D, - 26970 - 19968: jis0208<<14 | 0x20<<7 | 0x1E, - 26971 - 19968: jis0212<<14 | 0x23<<7 | 0x26, - 26972 - 19968: jis0208<<14 | 0x3B<<7 | 0x14, - 26973 - 19968: jis0208<<14 | 0x3B<<7 | 0x21, - 26974 - 19968: jis0208<<14 | 0x3B<<7 | 0x20, - 26976 - 19968: jis0208<<14 | 0x25<<7 | 0x4E, - 26977 - 19968: jis0208<<14 | 0x3B<<7 | 0x1F, - 26978 - 19968: jis0208<<14 | 0x25<<7 | 0x49, - 26979 - 19968: jis0212<<14 | 0x23<<7 | 0x27, - 26980 - 19968: jis0212<<14 | 0x23<<7 | 0x28, - 26981 - 19968: jis0212<<14 | 0x23<<7 | 0x29, - 26982 - 19968: jis0212<<14 | 0x23<<7 | 0x2A, - 26984 - 19968: jis0208<<14 | 0x59<<7 | 0x2E, - 26985 - 19968: jis0212<<14 | 0x23<<7 | 0x2C, - 26986 - 19968: jis0208<<14 | 0x3B<<7 | 0x23, - 26987 - 19968: jis0208<<14 | 0x3B<<7 | 0x16, - 26988 - 19968: jis0212<<14 | 0x23<<7 | 0x2D, - 26989 - 19968: jis0208<<14 | 0x15<<7 | 0x27, - 26990 - 19968: jis0208<<14 | 0x3B<<7 | 0x19, - 26991 - 19968: jis0208<<14 | 0x1C<<7 | 0x3C, - 26992 - 19968: jis0212<<14 | 0x23<<7 | 0x2E, - 26993 - 19968: jis0212<<14 | 0x23<<7 | 0x2F, - 26994 - 19968: jis0212<<14 | 0x23<<7 | 0x30, - 26995 - 19968: jis0208<<14 | 0x26<<7 | 0x3F, - 26996 - 19968: jis0208<<14 | 0x3B<<7 | 0x1B, - 26997 - 19968: jis0208<<14 | 0x15<<7 | 0x2A, - 26999 - 19968: jis0208<<14 | 0x3B<<7 | 0x13, - 27000 - 19968: jis0208<<14 | 0x3B<<7 | 0x15, - 27001 - 19968: jis0208<<14 | 0x3B<<7 | 0x12, - 27002 - 19968: jis0212<<14 | 0x23<<7 | 0x31, - 27003 - 19968: jis0212<<14 | 0x23<<7 | 0x32, - 27004 - 19968: jis0208<<14 | 0x2E<<7 | 0x0F, - 27005 - 19968: jis0208<<14 | 0x12<<7 | 0x39, - 27006 - 19968: jis0208<<14 | 0x3B<<7 | 0x18, - 27007 - 19968: jis0212<<14 | 0x23<<7 | 0x33, - 27008 - 19968: jis0212<<14 | 0x23<<7 | 0x34, - 27009 - 19968: jis0208<<14 | 0x3B<<7 | 0x22, - 27010 - 19968: jis0208<<14 | 0x12<<7 | 0x14, - 27018 - 19968: jis0208<<14 | 0x19<<7 | 0x46, - 27021 - 19968: jis0212<<14 | 0x23<<7 | 0x35, - 27022 - 19968: jis0208<<14 | 0x10<<7 | 0x3C, - 27025 - 19968: jis0208<<14 | 0x3B<<7 | 0x33, - 27026 - 19968: jis0212<<14 | 0x23<<7 | 0x36, - 27028 - 19968: jis0208<<14 | 0x2E<<7 | 0x10, - 27029 - 19968: jis0208<<14 | 0x3B<<7 | 0x36, - 27030 - 19968: jis0212<<14 | 0x23<<7 | 0x37, - 27032 - 19968: jis0208<<14 | 0x59<<7 | 0x30, - 27035 - 19968: jis0208<<14 | 0x1E<<7 | 0x19, - 27036 - 19968: jis0208<<14 | 0x3B<<7 | 0x35, - 27040 - 19968: jis0208<<14 | 0x3B<<7 | 0x34, - 27041 - 19968: jis0212<<14 | 0x23<<7 | 0x39, - 27045 - 19968: jis0212<<14 | 0x23<<7 | 0x3A, - 27046 - 19968: jis0212<<14 | 0x23<<7 | 0x3B, - 27047 - 19968: jis0208<<14 | 0x3B<<7 | 0x31, - 27048 - 19968: jis0212<<14 | 0x23<<7 | 0x3C, - 27051 - 19968: jis0212<<14 | 0x23<<7 | 0x3D, - 27053 - 19968: jis0212<<14 | 0x23<<7 | 0x3E, - 27054 - 19968: jis0208<<14 | 0x3B<<7 | 0x25, - 27055 - 19968: jis0212<<14 | 0x23<<7 | 0x3F, - 27057 - 19968: jis0208<<14 | 0x3B<<7 | 0x42, - 27058 - 19968: jis0208<<14 | 0x3B<<7 | 0x24, - 27060 - 19968: jis0208<<14 | 0x3B<<7 | 0x37, - 27063 - 19968: jis0212<<14 | 0x23<<7 | 0x40, - 27064 - 19968: jis0212<<14 | 0x23<<7 | 0x41, - 27066 - 19968: jis0212<<14 | 0x23<<7 | 0x42, - 27067 - 19968: jis0208<<14 | 0x3B<<7 | 0x2F, - 27068 - 19968: jis0212<<14 | 0x23<<7 | 0x43, - 27070 - 19968: jis0208<<14 | 0x3B<<7 | 0x2A, - 27071 - 19968: jis0208<<14 | 0x3B<<7 | 0x27, - 27073 - 19968: jis0208<<14 | 0x3B<<7 | 0x28, - 27075 - 19968: jis0208<<14 | 0x3B<<7 | 0x30, - 27077 - 19968: jis0212<<14 | 0x23<<7 | 0x44, - 27079 - 19968: jis0208<<14 | 0x53<<7 | 0x01, - 27080 - 19968: jis0212<<14 | 0x23<<7 | 0x45, - 27082 - 19968: jis0208<<14 | 0x3B<<7 | 0x2D, - 27083 - 19968: jis0208<<14 | 0x18<<7 | 0x1C, - 27084 - 19968: jis0208<<14 | 0x23<<7 | 0x27, - 27085 - 19968: jis0208<<14 | 0x20<<7 | 0x43, - 27086 - 19968: jis0208<<14 | 0x3B<<7 | 0x2B, - 27088 - 19968: jis0208<<14 | 0x3B<<7 | 0x26, - 27089 - 19968: jis0212<<14 | 0x23<<7 | 0x46, - 27091 - 19968: jis0208<<14 | 0x3B<<7 | 0x29, - 27094 - 19968: jis0212<<14 | 0x23<<7 | 0x47, - 27095 - 19968: jis0212<<14 | 0x23<<7 | 0x48, - 27096 - 19968: jis0208<<14 | 0x2C<<7 | 0x2C, - 27097 - 19968: jis0208<<14 | 0x2A<<7 | 0x49, - 27101 - 19968: jis0208<<14 | 0x3B<<7 | 0x2E, - 27102 - 19968: jis0208<<14 | 0x3B<<7 | 0x38, - 27106 - 19968: jis0208<<14 | 0x59<<7 | 0x31, - 27109 - 19968: jis0212<<14 | 0x23<<7 | 0x4A, - 27111 - 19968: jis0208<<14 | 0x3B<<7 | 0x40, - 27112 - 19968: jis0208<<14 | 0x3B<<7 | 0x39, - 27115 - 19968: jis0208<<14 | 0x3B<<7 | 0x46, - 27117 - 19968: jis0208<<14 | 0x3B<<7 | 0x44, - 27118 - 19968: jis0212<<14 | 0x23<<7 | 0x4B, - 27119 - 19968: jis0212<<14 | 0x23<<7 | 0x4C, - 27121 - 19968: jis0212<<14 | 0x23<<7 | 0x4D, - 27122 - 19968: jis0208<<14 | 0x3B<<7 | 0x3F, - 27123 - 19968: jis0212<<14 | 0x23<<7 | 0x4E, - 27125 - 19968: jis0212<<14 | 0x23<<7 | 0x4F, - 27129 - 19968: jis0208<<14 | 0x3B<<7 | 0x3E, - 27131 - 19968: jis0208<<14 | 0x23<<7 | 0x2F, - 27133 - 19968: jis0208<<14 | 0x20<<7 | 0x44, - 27134 - 19968: jis0212<<14 | 0x23<<7 | 0x50, - 27135 - 19968: jis0208<<14 | 0x3B<<7 | 0x3C, - 27136 - 19968: jis0212<<14 | 0x23<<7 | 0x51, - 27137 - 19968: jis0212<<14 | 0x23<<7 | 0x52, - 27138 - 19968: jis0208<<14 | 0x3B<<7 | 0x3A, - 27139 - 19968: jis0212<<14 | 0x23<<7 | 0x53, - 27141 - 19968: jis0208<<14 | 0x3B<<7 | 0x41, - 27146 - 19968: jis0208<<14 | 0x3B<<7 | 0x47, - 27147 - 19968: jis0208<<14 | 0x27<<7 | 0x54, - 27148 - 19968: jis0208<<14 | 0x3B<<7 | 0x4D, - 27151 - 19968: jis0212<<14 | 0x23<<7 | 0x54, - 27153 - 19968: jis0212<<14 | 0x23<<7 | 0x55, - 27154 - 19968: jis0208<<14 | 0x3B<<7 | 0x48, - 27155 - 19968: jis0208<<14 | 0x3B<<7 | 0x4B, - 27156 - 19968: jis0208<<14 | 0x3B<<7 | 0x45, - 27157 - 19968: jis0212<<14 | 0x23<<7 | 0x56, - 27159 - 19968: jis0208<<14 | 0x22<<7 | 0x53, - 27161 - 19968: jis0208<<14 | 0x28<<7 | 0x17, - 27162 - 19968: jis0212<<14 | 0x23<<7 | 0x57, - 27163 - 19968: jis0208<<14 | 0x3B<<7 | 0x3B, - 27165 - 19968: jis0212<<14 | 0x23<<7 | 0x58, - 27166 - 19968: jis0208<<14 | 0x3B<<7 | 0x43, - 27167 - 19968: jis0208<<14 | 0x1D<<7 | 0x1F, - 27168 - 19968: jis0212<<14 | 0x23<<7 | 0x59, - 27169 - 19968: jis0208<<14 | 0x2B<<7 | 0x2E, - 27170 - 19968: jis0208<<14 | 0x3B<<7 | 0x57, - 27171 - 19968: jis0208<<14 | 0x3B<<7 | 0x4A, - 27172 - 19968: jis0212<<14 | 0x23<<7 | 0x5A, - 27176 - 19968: jis0212<<14 | 0x23<<7 | 0x5B, - 27177 - 19968: jis0208<<14 | 0x17<<7 | 0x01, - 27178 - 19968: jis0208<<14 | 0x11<<7 | 0x02, - 27179 - 19968: jis0208<<14 | 0x12<<7 | 0x3E, - 27182 - 19968: jis0208<<14 | 0x3B<<7 | 0x32, - 27184 - 19968: jis0208<<14 | 0x59<<7 | 0x32, - 27186 - 19968: jis0212<<14 | 0x23<<7 | 0x5D, - 27188 - 19968: jis0212<<14 | 0x24<<7 | 0x00, - 27189 - 19968: jis0208<<14 | 0x1D<<7 | 0x20, - 27190 - 19968: jis0208<<14 | 0x3B<<7 | 0x4F, - 27191 - 19968: jis0212<<14 | 0x24<<7 | 0x01, - 27192 - 19968: jis0208<<14 | 0x3B<<7 | 0x56, - 27193 - 19968: jis0208<<14 | 0x1B<<7 | 0x58, - 27194 - 19968: jis0208<<14 | 0x12<<7 | 0x51, - 27195 - 19968: jis0212<<14 | 0x24<<7 | 0x02, - 27197 - 19968: jis0208<<14 | 0x22<<7 | 0x0D, - 27198 - 19968: jis0212<<14 | 0x24<<7 | 0x03, - 27199 - 19968: jis0212<<14 | 0x24<<7 | 0x04, - 27204 - 19968: jis0208<<14 | 0x3B<<7 | 0x4C, - 27205 - 19968: jis0212<<14 | 0x24<<7 | 0x05, - 27206 - 19968: jis0208<<14 | 0x59<<7 | 0x34, - 27207 - 19968: jis0208<<14 | 0x3B<<7 | 0x51, - 27208 - 19968: jis0208<<14 | 0x3B<<7 | 0x55, - 27209 - 19968: jis0212<<14 | 0x24<<7 | 0x07, - 27210 - 19968: jis0212<<14 | 0x24<<7 | 0x08, - 27211 - 19968: jis0208<<14 | 0x15<<7 | 0x15, - 27214 - 19968: jis0212<<14 | 0x24<<7 | 0x09, - 27216 - 19968: jis0212<<14 | 0x24<<7 | 0x0A, - 27217 - 19968: jis0212<<14 | 0x24<<7 | 0x0B, - 27218 - 19968: jis0212<<14 | 0x24<<7 | 0x0C, - 27221 - 19968: jis0212<<14 | 0x24<<7 | 0x0D, - 27222 - 19968: jis0212<<14 | 0x24<<7 | 0x0E, - 27224 - 19968: jis0208<<14 | 0x14<<7 | 0x2B, - 27225 - 19968: jis0208<<14 | 0x3B<<7 | 0x53, - 27227 - 19968: jis0212<<14 | 0x24<<7 | 0x0F, - 27231 - 19968: jis0208<<14 | 0x14<<7 | 0x00, - 27233 - 19968: jis0208<<14 | 0x25<<7 | 0x2A, - 27234 - 19968: jis0208<<14 | 0x3B<<7 | 0x52, - 27236 - 19968: jis0212<<14 | 0x24<<7 | 0x10, - 27238 - 19968: jis0208<<14 | 0x3B<<7 | 0x54, - 27239 - 19968: jis0212<<14 | 0x24<<7 | 0x11, - 27242 - 19968: jis0212<<14 | 0x24<<7 | 0x12, - 27243 - 19968: jis0208<<14 | 0x59<<7 | 0x33, - 27249 - 19968: jis0212<<14 | 0x24<<7 | 0x13, - 27250 - 19968: jis0208<<14 | 0x3B<<7 | 0x4E, - 27251 - 19968: jis0208<<14 | 0x59<<7 | 0x35, - 27256 - 19968: jis0208<<14 | 0x3B<<7 | 0x50, - 27262 - 19968: jis0208<<14 | 0x59<<7 | 0x36, - 27263 - 19968: jis0208<<14 | 0x12<<7 | 0x3F, - 27264 - 19968: jis0208<<14 | 0x22<<7 | 0x28, - 27265 - 19968: jis0212<<14 | 0x24<<7 | 0x16, - 27267 - 19968: jis0212<<14 | 0x24<<7 | 0x17, - 27268 - 19968: jis0208<<14 | 0x3B<<7 | 0x5B, - 27270 - 19968: jis0212<<14 | 0x24<<7 | 0x18, - 27271 - 19968: jis0212<<14 | 0x24<<7 | 0x19, - 27273 - 19968: jis0212<<14 | 0x24<<7 | 0x1A, - 27275 - 19968: jis0212<<14 | 0x24<<7 | 0x1B, - 27277 - 19968: jis0208<<14 | 0x3B<<7 | 0x59, - 27278 - 19968: jis0208<<14 | 0x17<<7 | 0x48, - 27280 - 19968: jis0208<<14 | 0x3B<<7 | 0x58, - 27281 - 19968: jis0212<<14 | 0x24<<7 | 0x1C, - 27287 - 19968: jis0208<<14 | 0x3C<<7 | 0x00, - 27291 - 19968: jis0212<<14 | 0x24<<7 | 0x1D, - 27292 - 19968: jis0208<<14 | 0x3A<<7 | 0x37, - 27293 - 19968: jis0212<<14 | 0x24<<7 | 0x1E, - 27294 - 19968: jis0212<<14 | 0x24<<7 | 0x1F, - 27295 - 19968: jis0212<<14 | 0x24<<7 | 0x20, - 27296 - 19968: jis0208<<14 | 0x3B<<7 | 0x5A, - 27298 - 19968: jis0208<<14 | 0x3B<<7 | 0x5C, - 27299 - 19968: jis0208<<14 | 0x3B<<7 | 0x5D, - 27301 - 19968: jis0212<<14 | 0x24<<7 | 0x21, - 27306 - 19968: jis0208<<14 | 0x3C<<7 | 0x0B, - 27307 - 19968: jis0212<<14 | 0x24<<7 | 0x22, - 27308 - 19968: jis0208<<14 | 0x3C<<7 | 0x07, - 27310 - 19968: jis0208<<14 | 0x3A<<7 | 0x4C, - 27311 - 19968: jis0212<<14 | 0x24<<7 | 0x23, - 27312 - 19968: jis0212<<14 | 0x24<<7 | 0x24, - 27313 - 19968: jis0212<<14 | 0x24<<7 | 0x25, - 27315 - 19968: jis0208<<14 | 0x3C<<7 | 0x06, - 27316 - 19968: jis0212<<14 | 0x24<<7 | 0x26, - 27320 - 19968: jis0208<<14 | 0x3C<<7 | 0x05, - 27323 - 19968: jis0208<<14 | 0x3C<<7 | 0x02, - 27325 - 19968: jis0212<<14 | 0x24<<7 | 0x27, - 27326 - 19968: jis0212<<14 | 0x24<<7 | 0x28, - 27327 - 19968: jis0212<<14 | 0x24<<7 | 0x29, - 27329 - 19968: jis0208<<14 | 0x3B<<7 | 0x49, - 27330 - 19968: jis0208<<14 | 0x3C<<7 | 0x04, - 27331 - 19968: jis0208<<14 | 0x3C<<7 | 0x03, - 27334 - 19968: jis0212<<14 | 0x24<<7 | 0x2A, - 27336 - 19968: jis0212<<14 | 0x24<<7 | 0x2C, - 27337 - 19968: jis0212<<14 | 0x24<<7 | 0x2B, - 27340 - 19968: jis0212<<14 | 0x24<<7 | 0x2D, - 27344 - 19968: jis0212<<14 | 0x24<<7 | 0x2E, - 27345 - 19968: jis0208<<14 | 0x3C<<7 | 0x09, - 27347 - 19968: jis0208<<14 | 0x2E<<7 | 0x05, - 27348 - 19968: jis0212<<14 | 0x24<<7 | 0x2F, - 27349 - 19968: jis0212<<14 | 0x24<<7 | 0x30, - 27350 - 19968: jis0212<<14 | 0x24<<7 | 0x31, - 27354 - 19968: jis0208<<14 | 0x3C<<7 | 0x0C, - 27355 - 19968: jis0208<<14 | 0x15<<7 | 0x5A, - 27356 - 19968: jis0212<<14 | 0x24<<7 | 0x32, - 27357 - 19968: jis0212<<14 | 0x24<<7 | 0x33, - 27358 - 19968: jis0208<<14 | 0x3C<<7 | 0x08, - 27359 - 19968: jis0208<<14 | 0x3C<<7 | 0x0A, - 27362 - 19968: jis0208<<14 | 0x59<<7 | 0x37, - 27364 - 19968: jis0208<<14 | 0x59<<7 | 0x38, - 27367 - 19968: jis0212<<14 | 0x24<<7 | 0x35, - 27368 - 19968: jis0208<<14 | 0x27<<7 | 0x06, - 27370 - 19968: jis0208<<14 | 0x3C<<7 | 0x0D, - 27372 - 19968: jis0212<<14 | 0x24<<7 | 0x36, - 27376 - 19968: jis0212<<14 | 0x24<<7 | 0x37, - 27377 - 19968: jis0212<<14 | 0x24<<7 | 0x38, - 27378 - 19968: jis0212<<14 | 0x24<<7 | 0x39, - 27386 - 19968: jis0208<<14 | 0x3C<<7 | 0x11, - 27387 - 19968: jis0208<<14 | 0x3C<<7 | 0x0E, - 27388 - 19968: jis0212<<14 | 0x24<<7 | 0x3A, - 27389 - 19968: jis0212<<14 | 0x24<<7 | 0x3B, - 27394 - 19968: jis0212<<14 | 0x24<<7 | 0x3C, - 27395 - 19968: jis0212<<14 | 0x24<<7 | 0x3D, - 27396 - 19968: jis0208<<14 | 0x2C<<7 | 0x52, - 27397 - 19968: jis0208<<14 | 0x3C<<7 | 0x0F, - 27398 - 19968: jis0212<<14 | 0x24<<7 | 0x3E, - 27399 - 19968: jis0212<<14 | 0x24<<7 | 0x3F, - 27401 - 19968: jis0212<<14 | 0x24<<7 | 0x40, - 27402 - 19968: jis0208<<14 | 0x3B<<7 | 0x3D, - 27407 - 19968: jis0212<<14 | 0x24<<7 | 0x41, - 27408 - 19968: jis0212<<14 | 0x24<<7 | 0x42, - 27409 - 19968: jis0212<<14 | 0x24<<7 | 0x43, - 27410 - 19968: jis0208<<14 | 0x3C<<7 | 0x12, - 27414 - 19968: jis0208<<14 | 0x3C<<7 | 0x13, - 27415 - 19968: jis0212<<14 | 0x24<<7 | 0x44, - 27419 - 19968: jis0212<<14 | 0x24<<7 | 0x45, - 27421 - 19968: jis0208<<14 | 0x10<<7 | 0x14, - 27422 - 19968: jis0212<<14 | 0x24<<7 | 0x46, - 27423 - 19968: jis0208<<14 | 0x3C<<7 | 0x15, - 27424 - 19968: jis0208<<14 | 0x16<<7 | 0x46, - 27425 - 19968: jis0208<<14 | 0x1B<<7 | 0x00, - 27427 - 19968: jis0208<<14 | 0x15<<7 | 0x34, - 27428 - 19968: jis0212<<14 | 0x24<<7 | 0x47, - 27431 - 19968: jis0208<<14 | 0x11<<7 | 0x03, - 27432 - 19968: jis0212<<14 | 0x24<<7 | 0x48, - 27435 - 19968: jis0212<<14 | 0x24<<7 | 0x49, - 27436 - 19968: jis0212<<14 | 0x24<<7 | 0x4A, - 27439 - 19968: jis0212<<14 | 0x24<<7 | 0x4B, - 27442 - 19968: jis0208<<14 | 0x2C<<7 | 0x3E, - 27445 - 19968: jis0212<<14 | 0x24<<7 | 0x4C, - 27446 - 19968: jis0212<<14 | 0x24<<7 | 0x4D, - 27447 - 19968: jis0208<<14 | 0x3C<<7 | 0x17, - 27448 - 19968: jis0208<<14 | 0x3C<<7 | 0x16, - 27449 - 19968: jis0208<<14 | 0x3C<<7 | 0x19, - 27450 - 19968: jis0208<<14 | 0x14<<7 | 0x1C, - 27451 - 19968: jis0212<<14 | 0x24<<7 | 0x4E, - 27453 - 19968: jis0208<<14 | 0x15<<7 | 0x35, - 27454 - 19968: jis0208<<14 | 0x13<<7 | 0x1D, - 27455 - 19968: jis0212<<14 | 0x24<<7 | 0x4F, - 27459 - 19968: jis0208<<14 | 0x3C<<7 | 0x1C, - 27462 - 19968: jis0212<<14 | 0x24<<7 | 0x50, - 27463 - 19968: jis0208<<14 | 0x3C<<7 | 0x1B, - 27465 - 19968: jis0208<<14 | 0x3C<<7 | 0x1D, - 27466 - 19968: jis0212<<14 | 0x24<<7 | 0x51, - 27468 - 19968: jis0208<<14 | 0x11<<7 | 0x2D, - 27469 - 19968: jis0212<<14 | 0x24<<7 | 0x52, - 27470 - 19968: jis0208<<14 | 0x22<<7 | 0x16, - 27472 - 19968: jis0208<<14 | 0x3C<<7 | 0x1E, - 27474 - 19968: jis0212<<14 | 0x24<<7 | 0x53, - 27475 - 19968: jis0208<<14 | 0x13<<7 | 0x1E, - 27476 - 19968: jis0208<<14 | 0x3C<<7 | 0x20, - 27478 - 19968: jis0212<<14 | 0x24<<7 | 0x54, - 27480 - 19968: jis0212<<14 | 0x24<<7 | 0x55, - 27481 - 19968: jis0208<<14 | 0x3C<<7 | 0x1F, - 27483 - 19968: jis0208<<14 | 0x3C<<7 | 0x21, - 27485 - 19968: jis0212<<14 | 0x24<<7 | 0x56, - 27487 - 19968: jis0208<<14 | 0x3C<<7 | 0x22, - 27488 - 19968: jis0212<<14 | 0x24<<7 | 0x57, - 27489 - 19968: jis0208<<14 | 0x3C<<7 | 0x23, - 27490 - 19968: jis0208<<14 | 0x1A<<7 | 0x3E, - 27491 - 19968: jis0208<<14 | 0x1F<<7 | 0x14, - 27492 - 19968: jis0208<<14 | 0x19<<7 | 0x00, - 27494 - 19968: jis0208<<14 | 0x28<<7 | 0x4F, - 27495 - 19968: jis0212<<14 | 0x24<<7 | 0x58, - 27497 - 19968: jis0208<<14 | 0x29<<7 | 0x41, - 27498 - 19968: jis0208<<14 | 0x2E<<7 | 0x23, - 27499 - 19968: jis0212<<14 | 0x24<<7 | 0x59, - 27502 - 19968: jis0212<<14 | 0x24<<7 | 0x5A, - 27503 - 19968: jis0208<<14 | 0x1A<<7 | 0x54, - 27504 - 19968: jis0212<<14 | 0x24<<7 | 0x5B, - 27507 - 19968: jis0208<<14 | 0x19<<7 | 0x2F, - 27508 - 19968: jis0208<<14 | 0x2D<<7 | 0x51, - 27509 - 19968: jis0212<<14 | 0x24<<7 | 0x5C, - 27512 - 19968: jis0208<<14 | 0x3C<<7 | 0x24, - 27513 - 19968: jis0208<<14 | 0x3C<<7 | 0x25, - 27515 - 19968: jis0208<<14 | 0x1A<<7 | 0x3F, - 27517 - 19968: jis0212<<14 | 0x24<<7 | 0x5D, - 27518 - 19968: jis0212<<14 | 0x25<<7 | 0x00, - 27519 - 19968: jis0208<<14 | 0x3C<<7 | 0x26, - 27520 - 19968: jis0208<<14 | 0x3C<<7 | 0x27, - 27522 - 19968: jis0212<<14 | 0x25<<7 | 0x01, - 27523 - 19968: jis0208<<14 | 0x3C<<7 | 0x29, - 27524 - 19968: jis0208<<14 | 0x3C<<7 | 0x28, - 27525 - 19968: jis0212<<14 | 0x25<<7 | 0x02, - 27526 - 19968: jis0208<<14 | 0x2A<<7 | 0x37, - 27529 - 19968: jis0208<<14 | 0x1C<<7 | 0x3D, - 27530 - 19968: jis0208<<14 | 0x1B<<7 | 0x4B, - 27531 - 19968: jis0208<<14 | 0x1A<<7 | 0x23, - 27533 - 19968: jis0208<<14 | 0x3C<<7 | 0x2A, - 27541 - 19968: jis0208<<14 | 0x3C<<7 | 0x2C, - 27542 - 19968: jis0208<<14 | 0x1E<<7 | 0x02, - 27543 - 19968: jis0212<<14 | 0x25<<7 | 0x03, - 27544 - 19968: jis0208<<14 | 0x3C<<7 | 0x2B, - 27547 - 19968: jis0212<<14 | 0x25<<7 | 0x04, - 27550 - 19968: jis0208<<14 | 0x3C<<7 | 0x2D, - 27551 - 19968: jis0212<<14 | 0x25<<7 | 0x05, - 27552 - 19968: jis0212<<14 | 0x25<<7 | 0x06, - 27554 - 19968: jis0212<<14 | 0x25<<7 | 0x07, - 27555 - 19968: jis0212<<14 | 0x25<<7 | 0x08, - 27556 - 19968: jis0208<<14 | 0x3C<<7 | 0x2E, - 27560 - 19968: jis0212<<14 | 0x25<<7 | 0x09, - 27561 - 19968: jis0212<<14 | 0x25<<7 | 0x0A, - 27562 - 19968: jis0208<<14 | 0x3C<<7 | 0x2F, - 27563 - 19968: jis0208<<14 | 0x3C<<7 | 0x30, - 27564 - 19968: jis0212<<14 | 0x25<<7 | 0x0B, - 27565 - 19968: jis0212<<14 | 0x25<<7 | 0x0C, - 27566 - 19968: jis0212<<14 | 0x25<<7 | 0x0D, - 27567 - 19968: jis0208<<14 | 0x3C<<7 | 0x31, - 27568 - 19968: jis0212<<14 | 0x25<<7 | 0x0E, - 27569 - 19968: jis0208<<14 | 0x3C<<7 | 0x33, - 27570 - 19968: jis0208<<14 | 0x3C<<7 | 0x32, - 27571 - 19968: jis0208<<14 | 0x3C<<7 | 0x34, - 27572 - 19968: jis0208<<14 | 0x11<<7 | 0x04, - 27573 - 19968: jis0208<<14 | 0x22<<7 | 0x29, - 27575 - 19968: jis0208<<14 | 0x3C<<7 | 0x35, - 27576 - 19968: jis0212<<14 | 0x25<<7 | 0x0F, - 27577 - 19968: jis0212<<14 | 0x25<<7 | 0x10, - 27578 - 19968: jis0208<<14 | 0x1A<<7 | 0x05, - 27579 - 19968: jis0208<<14 | 0x12<<7 | 0x2B, - 27580 - 19968: jis0208<<14 | 0x3C<<7 | 0x36, - 27581 - 19968: jis0212<<14 | 0x25<<7 | 0x11, - 27582 - 19968: jis0212<<14 | 0x25<<7 | 0x12, - 27583 - 19968: jis0208<<14 | 0x24<<7 | 0x21, - 27584 - 19968: jis0208<<14 | 0x33<<7 | 0x2B, - 27587 - 19968: jis0212<<14 | 0x25<<7 | 0x13, - 27588 - 19968: jis0212<<14 | 0x25<<7 | 0x14, - 27589 - 19968: jis0208<<14 | 0x14<<7 | 0x02, - 27590 - 19968: jis0208<<14 | 0x3C<<7 | 0x37, - 27593 - 19968: jis0212<<14 | 0x25<<7 | 0x15, - 27595 - 19968: jis0208<<14 | 0x3C<<7 | 0x38, - 27596 - 19968: jis0212<<14 | 0x25<<7 | 0x16, - 27597 - 19968: jis0208<<14 | 0x29<<7 | 0x4B, - 27598 - 19968: jis0208<<14 | 0x2A<<7 | 0x47, - 27602 - 19968: jis0208<<14 | 0x25<<7 | 0x26, - 27603 - 19968: jis0208<<14 | 0x3C<<7 | 0x39, - 27604 - 19968: jis0208<<14 | 0x27<<7 | 0x45, - 27606 - 19968: jis0208<<14 | 0x59<<7 | 0x39, - 27608 - 19968: jis0208<<14 | 0x27<<7 | 0x5A, - 27610 - 19968: jis0212<<14 | 0x25<<7 | 0x18, - 27611 - 19968: jis0208<<14 | 0x2B<<7 | 0x32, - 27615 - 19968: jis0208<<14 | 0x3C<<7 | 0x3A, - 27617 - 19968: jis0212<<14 | 0x25<<7 | 0x19, - 27619 - 19968: jis0212<<14 | 0x25<<7 | 0x1A, - 27622 - 19968: jis0212<<14 | 0x25<<7 | 0x1B, - 27623 - 19968: jis0212<<14 | 0x25<<7 | 0x1C, - 27627 - 19968: jis0208<<14 | 0x3C<<7 | 0x3C, - 27628 - 19968: jis0208<<14 | 0x3C<<7 | 0x3B, - 27630 - 19968: jis0212<<14 | 0x25<<7 | 0x1D, - 27631 - 19968: jis0208<<14 | 0x3C<<7 | 0x3E, - 27633 - 19968: jis0212<<14 | 0x25<<7 | 0x1E, - 27635 - 19968: jis0208<<14 | 0x3C<<7 | 0x3D, - 27639 - 19968: jis0212<<14 | 0x25<<7 | 0x1F, - 27641 - 19968: jis0212<<14 | 0x25<<7 | 0x20, - 27647 - 19968: jis0212<<14 | 0x25<<7 | 0x21, - 27650 - 19968: jis0212<<14 | 0x25<<7 | 0x22, - 27652 - 19968: jis0212<<14 | 0x25<<7 | 0x23, - 27653 - 19968: jis0212<<14 | 0x25<<7 | 0x24, - 27656 - 19968: jis0208<<14 | 0x3C<<7 | 0x40, - 27657 - 19968: jis0212<<14 | 0x25<<7 | 0x25, - 27661 - 19968: jis0212<<14 | 0x25<<7 | 0x26, - 27662 - 19968: jis0212<<14 | 0x25<<7 | 0x27, - 27663 - 19968: jis0208<<14 | 0x1A<<7 | 0x40, - 27664 - 19968: jis0212<<14 | 0x25<<7 | 0x28, - 27665 - 19968: jis0208<<14 | 0x2B<<7 | 0x10, - 27666 - 19968: jis0212<<14 | 0x25<<7 | 0x29, - 27667 - 19968: jis0208<<14 | 0x3C<<7 | 0x41, - 27668 - 19968: jis0208<<14 | 0x3C<<7 | 0x42, - 27671 - 19968: jis0208<<14 | 0x14<<7 | 0x03, - 27673 - 19968: jis0212<<14 | 0x25<<7 | 0x2A, - 27675 - 19968: jis0208<<14 | 0x3C<<7 | 0x43, - 27679 - 19968: jis0212<<14 | 0x25<<7 | 0x2B, - 27683 - 19968: jis0208<<14 | 0x3C<<7 | 0x45, - 27684 - 19968: jis0208<<14 | 0x3C<<7 | 0x44, - 27686 - 19968: jis0212<<14 | 0x25<<7 | 0x2C, - 27687 - 19968: jis0212<<14 | 0x25<<7 | 0x2D, - 27688 - 19968: jis0212<<14 | 0x25<<7 | 0x2E, - 27692 - 19968: jis0212<<14 | 0x25<<7 | 0x2F, - 27694 - 19968: jis0212<<14 | 0x25<<7 | 0x30, - 27699 - 19968: jis0212<<14 | 0x25<<7 | 0x31, - 27700 - 19968: jis0208<<14 | 0x1E<<7 | 0x44, - 27701 - 19968: jis0212<<14 | 0x25<<7 | 0x32, - 27702 - 19968: jis0212<<14 | 0x25<<7 | 0x33, - 27703 - 19968: jis0208<<14 | 0x28<<7 | 0x18, - 27704 - 19968: jis0208<<14 | 0x10<<7 | 0x29, - 27706 - 19968: jis0212<<14 | 0x25<<7 | 0x34, - 27707 - 19968: jis0212<<14 | 0x25<<7 | 0x35, - 27710 - 19968: jis0208<<14 | 0x27<<7 | 0x24, - 27711 - 19968: jis0208<<14 | 0x59<<7 | 0x3A, - 27712 - 19968: jis0208<<14 | 0x23<<7 | 0x54, - 27713 - 19968: jis0208<<14 | 0x1C<<7 | 0x20, - 27714 - 19968: jis0208<<14 | 0x14<<7 | 0x40, - 27722 - 19968: jis0212<<14 | 0x25<<7 | 0x37, - 27723 - 19968: jis0212<<14 | 0x25<<7 | 0x38, - 27725 - 19968: jis0212<<14 | 0x25<<7 | 0x39, - 27726 - 19968: jis0208<<14 | 0x27<<7 | 0x25, - 27727 - 19968: jis0212<<14 | 0x25<<7 | 0x3A, - 27728 - 19968: jis0208<<14 | 0x1B<<7 | 0x0D, - 27730 - 19968: jis0212<<14 | 0x25<<7 | 0x3B, - 27732 - 19968: jis0212<<14 | 0x25<<7 | 0x3C, - 27733 - 19968: jis0208<<14 | 0x3C<<7 | 0x47, - 27735 - 19968: jis0208<<14 | 0x13<<7 | 0x1F, - 27737 - 19968: jis0212<<14 | 0x25<<7 | 0x3D, - 27738 - 19968: jis0208<<14 | 0x10<<7 | 0x57, - 27739 - 19968: jis0212<<14 | 0x25<<7 | 0x3E, - 27740 - 19968: jis0208<<14 | 0x59<<7 | 0x3B, - 27741 - 19968: jis0208<<14 | 0x25<<7 | 0x51, - 27742 - 19968: jis0208<<14 | 0x3C<<7 | 0x46, - 27743 - 19968: jis0208<<14 | 0x18<<7 | 0x1D, - 27744 - 19968: jis0208<<14 | 0x22<<7 | 0x32, - 27746 - 19968: jis0208<<14 | 0x3C<<7 | 0x48, - 27751 - 19968: jis0212<<14 | 0x26<<7 | 0x15, - 27752 - 19968: jis0208<<14 | 0x3C<<7 | 0x50, - 27754 - 19968: jis0208<<14 | 0x3C<<7 | 0x49, - 27755 - 19968: jis0212<<14 | 0x25<<7 | 0x40, - 27757 - 19968: jis0212<<14 | 0x25<<7 | 0x41, - 27759 - 19968: jis0208<<14 | 0x59<<7 | 0x3D, - 27760 - 19968: jis0208<<14 | 0x21<<7 | 0x20, - 27762 - 19968: jis0208<<14 | 0x14<<7 | 0x41, - 27763 - 19968: jis0208<<14 | 0x3C<<7 | 0x51, - 27764 - 19968: jis0212<<14 | 0x25<<7 | 0x43, - 27766 - 19968: jis0212<<14 | 0x25<<7 | 0x44, - 27768 - 19968: jis0212<<14 | 0x25<<7 | 0x45, - 27769 - 19968: jis0212<<14 | 0x25<<7 | 0x46, - 27770 - 19968: jis0208<<14 | 0x16<<7 | 0x47, - 27771 - 19968: jis0212<<14 | 0x25<<7 | 0x47, - 27773 - 19968: jis0208<<14 | 0x14<<7 | 0x04, - 27774 - 19968: jis0208<<14 | 0x3C<<7 | 0x4F, - 27777 - 19968: jis0208<<14 | 0x3C<<7 | 0x4D, - 27778 - 19968: jis0208<<14 | 0x3C<<7 | 0x4A, - 27779 - 19968: jis0208<<14 | 0x2C<<7 | 0x3F, - 27781 - 19968: jis0212<<14 | 0x25<<7 | 0x48, - 27782 - 19968: jis0208<<14 | 0x59<<7 | 0x3C, - 27783 - 19968: jis0212<<14 | 0x25<<7 | 0x4A, - 27784 - 19968: jis0208<<14 | 0x23<<7 | 0x1F, - 27785 - 19968: jis0212<<14 | 0x25<<7 | 0x4B, - 27788 - 19968: jis0208<<14 | 0x25<<7 | 0x38, - 27789 - 19968: jis0208<<14 | 0x3C<<7 | 0x4B, - 27792 - 19968: jis0208<<14 | 0x3C<<7 | 0x53, - 27794 - 19968: jis0208<<14 | 0x3C<<7 | 0x52, - 27795 - 19968: jis0208<<14 | 0x16<<7 | 0x02, - 27796 - 19968: jis0212<<14 | 0x25<<7 | 0x4C, - 27797 - 19968: jis0212<<14 | 0x25<<7 | 0x4D, - 27798 - 19968: jis0208<<14 | 0x11<<7 | 0x0C, - 27799 - 19968: jis0212<<14 | 0x25<<7 | 0x4E, - 27800 - 19968: jis0212<<14 | 0x25<<7 | 0x4F, - 27801 - 19968: jis0208<<14 | 0x19<<7 | 0x1A, - 27802 - 19968: jis0208<<14 | 0x3C<<7 | 0x4C, - 27803 - 19968: jis0208<<14 | 0x3C<<7 | 0x4E, - 27804 - 19968: jis0212<<14 | 0x25<<7 | 0x50, - 27807 - 19968: jis0212<<14 | 0x25<<7 | 0x51, - 27809 - 19968: jis0208<<14 | 0x2A<<7 | 0x36, - 27810 - 19968: jis0208<<14 | 0x21<<7 | 0x53, - 27819 - 19968: jis0208<<14 | 0x2A<<7 | 0x56, - 27822 - 19968: jis0208<<14 | 0x3C<<7 | 0x5B, - 27824 - 19968: jis0212<<14 | 0x25<<7 | 0x52, - 27825 - 19968: jis0208<<14 | 0x3C<<7 | 0x5C, - 27826 - 19968: jis0212<<14 | 0x25<<7 | 0x53, - 27827 - 19968: jis0208<<14 | 0x11<<7 | 0x2E, - 27828 - 19968: jis0212<<14 | 0x25<<7 | 0x54, - 27832 - 19968: jis0208<<14 | 0x29<<7 | 0x07, - 27833 - 19968: jis0208<<14 | 0x2B<<7 | 0x5C, - 27834 - 19968: jis0208<<14 | 0x3D<<7 | 0x00, - 27835 - 19968: jis0208<<14 | 0x1B<<7 | 0x02, - 27836 - 19968: jis0208<<14 | 0x1D<<7 | 0x21, - 27837 - 19968: jis0208<<14 | 0x3C<<7 | 0x57, - 27838 - 19968: jis0208<<14 | 0x3C<<7 | 0x5D, - 27839 - 19968: jis0208<<14 | 0x10<<7 | 0x47, - 27841 - 19968: jis0208<<14 | 0x15<<7 | 0x16, - 27842 - 19968: jis0212<<14 | 0x25<<7 | 0x55, - 27844 - 19968: jis0208<<14 | 0x3C<<7 | 0x54, - 27845 - 19968: jis0208<<14 | 0x3C<<7 | 0x59, - 27846 - 19968: jis0212<<14 | 0x25<<7 | 0x56, - 27849 - 19968: jis0208<<14 | 0x1F<<7 | 0x53, - 27850 - 19968: jis0208<<14 | 0x26<<7 | 0x50, - 27852 - 19968: jis0208<<14 | 0x27<<7 | 0x46, - 27853 - 19968: jis0212<<14 | 0x25<<7 | 0x57, - 27855 - 19968: jis0212<<14 | 0x25<<7 | 0x58, - 27856 - 19968: jis0212<<14 | 0x25<<7 | 0x59, - 27857 - 19968: jis0212<<14 | 0x25<<7 | 0x5A, - 27858 - 19968: jis0212<<14 | 0x25<<7 | 0x5B, - 27859 - 19968: jis0208<<14 | 0x3C<<7 | 0x56, - 27860 - 19968: jis0212<<14 | 0x25<<7 | 0x5C, - 27861 - 19968: jis0208<<14 | 0x2A<<7 | 0x00, - 27862 - 19968: jis0212<<14 | 0x25<<7 | 0x5D, - 27863 - 19968: jis0208<<14 | 0x3C<<7 | 0x58, - 27865 - 19968: jis0208<<14 | 0x3D<<7 | 0x03, - 27866 - 19968: jis0208<<14 | 0x59<<7 | 0x3E, - 27867 - 19968: jis0208<<14 | 0x3D<<7 | 0x01, - 27868 - 19968: jis0212<<14 | 0x26<<7 | 0x01, - 27869 - 19968: jis0208<<14 | 0x3C<<7 | 0x5A, - 27872 - 19968: jis0212<<14 | 0x26<<7 | 0x02, - 27873 - 19968: jis0208<<14 | 0x2A<<7 | 0x01, - 27874 - 19968: jis0208<<14 | 0x26<<7 | 0x27, - 27875 - 19968: jis0208<<14 | 0x14<<7 | 0x42, - 27877 - 19968: jis0208<<14 | 0x24<<7 | 0x04, - 27879 - 19968: jis0212<<14 | 0x26<<7 | 0x03, - 27880 - 19968: jis0208<<14 | 0x22<<7 | 0x4C, - 27881 - 19968: jis0212<<14 | 0x26<<7 | 0x04, - 27882 - 19968: jis0208<<14 | 0x3D<<7 | 0x04, - 27883 - 19968: jis0212<<14 | 0x26<<7 | 0x05, - 27884 - 19968: jis0212<<14 | 0x26<<7 | 0x06, - 27886 - 19968: jis0212<<14 | 0x26<<7 | 0x07, - 27887 - 19968: jis0208<<14 | 0x3D<<7 | 0x02, - 27888 - 19968: jis0208<<14 | 0x21<<7 | 0x38, - 27889 - 19968: jis0208<<14 | 0x3C<<7 | 0x55, - 27890 - 19968: jis0212<<14 | 0x26<<7 | 0x08, - 27891 - 19968: jis0208<<14 | 0x10<<7 | 0x2A, - 27892 - 19968: jis0212<<14 | 0x26<<7 | 0x09, - 27908 - 19968: jis0208<<14 | 0x59<<7 | 0x3F, - 27911 - 19968: jis0212<<14 | 0x26<<7 | 0x0B, - 27914 - 19968: jis0212<<14 | 0x26<<7 | 0x0C, - 27915 - 19968: jis0208<<14 | 0x2C<<7 | 0x2D, - 27916 - 19968: jis0208<<14 | 0x3D<<7 | 0x0F, - 27918 - 19968: jis0212<<14 | 0x26<<7 | 0x0D, - 27919 - 19968: jis0212<<14 | 0x26<<7 | 0x0E, - 27921 - 19968: jis0212<<14 | 0x26<<7 | 0x0F, - 27922 - 19968: jis0208<<14 | 0x3D<<7 | 0x0E, - 27923 - 19968: jis0212<<14 | 0x26<<7 | 0x10, - 27927 - 19968: jis0208<<14 | 0x1F<<7 | 0x55, - 27929 - 19968: jis0208<<14 | 0x3D<<7 | 0x0B, - 27930 - 19968: jis0212<<14 | 0x26<<7 | 0x11, - 27931 - 19968: jis0208<<14 | 0x2C<<7 | 0x4B, - 27934 - 19968: jis0208<<14 | 0x25<<7 | 0x15, - 27935 - 19968: jis0208<<14 | 0x3D<<7 | 0x05, - 27941 - 19968: jis0208<<14 | 0x23<<7 | 0x24, - 27942 - 19968: jis0212<<14 | 0x26<<7 | 0x12, - 27943 - 19968: jis0212<<14 | 0x26<<7 | 0x13, - 27944 - 19968: jis0212<<14 | 0x26<<7 | 0x14, - 27945 - 19968: jis0208<<14 | 0x10<<7 | 0x2B, - 27946 - 19968: jis0208<<14 | 0x18<<7 | 0x1E, - 27947 - 19968: jis0208<<14 | 0x3D<<7 | 0x08, - 27950 - 19968: jis0212<<14 | 0x26<<7 | 0x16, - 27951 - 19968: jis0212<<14 | 0x26<<7 | 0x17, - 27953 - 19968: jis0212<<14 | 0x26<<7 | 0x18, - 27954 - 19968: jis0208<<14 | 0x1C<<7 | 0x06, - 27955 - 19968: jis0208<<14 | 0x3D<<7 | 0x0D, - 27957 - 19968: jis0208<<14 | 0x3D<<7 | 0x0C, - 27958 - 19968: jis0208<<14 | 0x3D<<7 | 0x07, - 27960 - 19968: jis0208<<14 | 0x3D<<7 | 0x0A, - 27961 - 19968: jis0212<<14 | 0x26<<7 | 0x19, - 27963 - 19968: jis0208<<14 | 0x12<<7 | 0x47, - 27964 - 19968: jis0212<<14 | 0x26<<7 | 0x1A, - 27965 - 19968: jis0208<<14 | 0x3D<<7 | 0x09, - 27966 - 19968: jis0208<<14 | 0x26<<7 | 0x28, - 27967 - 19968: jis0212<<14 | 0x26<<7 | 0x1B, - 27969 - 19968: jis0208<<14 | 0x2D<<7 | 0x0D, - 27972 - 19968: jis0208<<14 | 0x1D<<7 | 0x53, - 27973 - 19968: jis0208<<14 | 0x1F<<7 | 0x54, - 27991 - 19968: jis0212<<14 | 0x26<<7 | 0x1C, - 27993 - 19968: jis0208<<14 | 0x3D<<7 | 0x15, - 27994 - 19968: jis0208<<14 | 0x3D<<7 | 0x13, - 27996 - 19968: jis0208<<14 | 0x28<<7 | 0x2C, - 27998 - 19968: jis0212<<14 | 0x26<<7 | 0x1D, - 27999 - 19968: jis0212<<14 | 0x26<<7 | 0x1E, - 28001 - 19968: jis0212<<14 | 0x26<<7 | 0x1F, - 28003 - 19968: jis0208<<14 | 0x3D<<7 | 0x10, - 28004 - 19968: jis0208<<14 | 0x3D<<7 | 0x12, - 28005 - 19968: jis0212<<14 | 0x26<<7 | 0x20, - 28006 - 19968: jis0208<<14 | 0x10<<7 | 0x19, - 28007 - 19968: jis0212<<14 | 0x26<<7 | 0x21, - 28009 - 19968: jis0208<<14 | 0x18<<7 | 0x1F, - 28010 - 19968: jis0208<<14 | 0x2E<<7 | 0x11, - 28012 - 19968: jis0208<<14 | 0x12<<7 | 0x1C, - 28014 - 19968: jis0208<<14 | 0x28<<7 | 0x41, - 28015 - 19968: jis0208<<14 | 0x59<<7 | 0x41, - 28016 - 19968: jis0212<<14 | 0x26<<7 | 0x23, - 28020 - 19968: jis0208<<14 | 0x2C<<7 | 0x40, - 28023 - 19968: jis0208<<14 | 0x12<<7 | 0x03, - 28024 - 19968: jis0208<<14 | 0x1E<<7 | 0x1A, - 28025 - 19968: jis0208<<14 | 0x3D<<7 | 0x14, - 28028 - 19968: jis0212<<14 | 0x26<<7 | 0x24, - 28034 - 19968: jis0212<<14 | 0x26<<7 | 0x25, - 28037 - 19968: jis0208<<14 | 0x3D<<7 | 0x19, - 28039 - 19968: jis0208<<14 | 0x59<<7 | 0x40, - 28040 - 19968: jis0208<<14 | 0x1D<<7 | 0x22, - 28044 - 19968: jis0208<<14 | 0x2C<<7 | 0x0F, - 28046 - 19968: jis0208<<14 | 0x3D<<7 | 0x16, - 28049 - 19968: jis0212<<14 | 0x26<<7 | 0x27, - 28050 - 19968: jis0212<<14 | 0x26<<7 | 0x28, - 28051 - 19968: jis0208<<14 | 0x3D<<7 | 0x11, - 28052 - 19968: jis0212<<14 | 0x26<<7 | 0x29, - 28053 - 19968: jis0208<<14 | 0x3D<<7 | 0x17, - 28054 - 19968: jis0208<<14 | 0x59<<7 | 0x42, - 28055 - 19968: jis0212<<14 | 0x26<<7 | 0x2B, - 28056 - 19968: jis0212<<14 | 0x26<<7 | 0x2C, - 28057 - 19968: jis0208<<14 | 0x2D<<7 | 0x3D, - 28059 - 19968: jis0208<<14 | 0x24<<7 | 0x52, - 28060 - 19968: jis0208<<14 | 0x25<<7 | 0x21, - 28074 - 19968: jis0212<<14 | 0x26<<7 | 0x2D, - 28076 - 19968: jis0208<<14 | 0x59<<7 | 0x43, - 28079 - 19968: jis0208<<14 | 0x12<<7 | 0x15, - 28082 - 19968: jis0208<<14 | 0x10<<7 | 0x34, - 28084 - 19968: jis0212<<14 | 0x26<<7 | 0x2F, - 28085 - 19968: jis0208<<14 | 0x3D<<7 | 0x1D, - 28087 - 19968: jis0212<<14 | 0x26<<7 | 0x30, - 28088 - 19968: jis0208<<14 | 0x3D<<7 | 0x20, - 28089 - 19968: jis0212<<14 | 0x26<<7 | 0x31, - 28092 - 19968: jis0208<<14 | 0x2D<<7 | 0x22, - 28093 - 19968: jis0212<<14 | 0x26<<7 | 0x32, - 28095 - 19968: jis0212<<14 | 0x26<<7 | 0x33, - 28096 - 19968: jis0208<<14 | 0x2C<<7 | 0x43, - 28100 - 19968: jis0212<<14 | 0x26<<7 | 0x34, - 28101 - 19968: jis0208<<14 | 0x3D<<7 | 0x27, - 28102 - 19968: jis0208<<14 | 0x3D<<7 | 0x21, - 28103 - 19968: jis0208<<14 | 0x3D<<7 | 0x1E, - 28104 - 19968: jis0212<<14 | 0x26<<7 | 0x35, - 28106 - 19968: jis0212<<14 | 0x26<<7 | 0x36, - 28107 - 19968: jis0208<<14 | 0x2D<<7 | 0x33, - 28108 - 19968: jis0208<<14 | 0x3D<<7 | 0x24, - 28110 - 19968: jis0212<<14 | 0x26<<7 | 0x37, - 28111 - 19968: jis0208<<14 | 0x59<<7 | 0x44, - 28113 - 19968: jis0208<<14 | 0x1C<<7 | 0x29, - 28114 - 19968: jis0208<<14 | 0x3D<<7 | 0x26, - 28117 - 19968: jis0208<<14 | 0x3D<<7 | 0x2B, - 28118 - 19968: jis0212<<14 | 0x26<<7 | 0x39, - 28120 - 19968: jis0208<<14 | 0x24<<7 | 0x50, - 28121 - 19968: jis0208<<14 | 0x3D<<7 | 0x29, - 28123 - 19968: jis0212<<14 | 0x26<<7 | 0x3A, - 28125 - 19968: jis0212<<14 | 0x26<<7 | 0x3B, - 28126 - 19968: jis0208<<14 | 0x3D<<7 | 0x23, - 28127 - 19968: jis0212<<14 | 0x26<<7 | 0x3C, - 28128 - 19968: jis0212<<14 | 0x26<<7 | 0x3D, - 28129 - 19968: jis0208<<14 | 0x22<<7 | 0x17, - 28130 - 19968: jis0212<<14 | 0x26<<7 | 0x3E, - 28132 - 19968: jis0208<<14 | 0x3D<<7 | 0x2A, - 28133 - 19968: jis0212<<14 | 0x26<<7 | 0x3F, - 28134 - 19968: jis0208<<14 | 0x3D<<7 | 0x1F, - 28136 - 19968: jis0208<<14 | 0x3D<<7 | 0x25, - 28137 - 19968: jis0212<<14 | 0x26<<7 | 0x40, - 28138 - 19968: jis0208<<14 | 0x3D<<7 | 0x2C, - 28139 - 19968: jis0208<<14 | 0x0F<<7 | 0x5B, - 28140 - 19968: jis0208<<14 | 0x3D<<7 | 0x22, - 28142 - 19968: jis0208<<14 | 0x3D<<7 | 0x2D, - 28143 - 19968: jis0212<<14 | 0x26<<7 | 0x41, - 28144 - 19968: jis0212<<14 | 0x26<<7 | 0x42, - 28145 - 19968: jis0208<<14 | 0x1E<<7 | 0x1B, - 28146 - 19968: jis0208<<14 | 0x59<<7 | 0x46, - 28147 - 19968: jis0208<<14 | 0x1C<<7 | 0x3E, - 28148 - 19968: jis0212<<14 | 0x26<<7 | 0x43, - 28149 - 19968: jis0208<<14 | 0x29<<7 | 0x04, - 28150 - 19968: jis0212<<14 | 0x26<<7 | 0x44, - 28151 - 19968: jis0208<<14 | 0x19<<7 | 0x0D, - 28152 - 19968: jis0208<<14 | 0x59<<7 | 0x45, - 28153 - 19968: jis0208<<14 | 0x3D<<7 | 0x1A, - 28154 - 19968: jis0208<<14 | 0x3D<<7 | 0x28, - 28155 - 19968: jis0208<<14 | 0x24<<7 | 0x19, - 28156 - 19968: jis0208<<14 | 0x59<<7 | 0x47, - 28160 - 19968: jis0212<<14 | 0x26<<7 | 0x46, - 28164 - 19968: jis0212<<14 | 0x26<<7 | 0x47, - 28165 - 19968: jis0208<<14 | 0x1F<<7 | 0x15, - 28167 - 19968: jis0208<<14 | 0x12<<7 | 0x48, - 28168 - 19968: jis0208<<14 | 0x19<<7 | 0x30, - 28169 - 19968: jis0208<<14 | 0x1D<<7 | 0x23, - 28170 - 19968: jis0208<<14 | 0x3D<<7 | 0x1C, - 28171 - 19968: jis0208<<14 | 0x1C<<7 | 0x21, - 28179 - 19968: jis0208<<14 | 0x16<<7 | 0x2B, - 28181 - 19968: jis0208<<14 | 0x3D<<7 | 0x1B, - 28185 - 19968: jis0208<<14 | 0x3D<<7 | 0x31, - 28186 - 19968: jis0208<<14 | 0x1C<<7 | 0x4C, - 28187 - 19968: jis0208<<14 | 0x17<<7 | 0x19, - 28189 - 19968: jis0208<<14 | 0x3D<<7 | 0x40, - 28190 - 19968: jis0212<<14 | 0x26<<7 | 0x48, - 28191 - 19968: jis0208<<14 | 0x3D<<7 | 0x3A, - 28192 - 19968: jis0208<<14 | 0x14<<7 | 0x53, - 28193 - 19968: jis0208<<14 | 0x24<<7 | 0x2E, - 28194 - 19968: jis0212<<14 | 0x26<<7 | 0x49, - 28195 - 19968: jis0208<<14 | 0x3D<<7 | 0x35, - 28196 - 19968: jis0208<<14 | 0x3D<<7 | 0x3E, - 28197 - 19968: jis0208<<14 | 0x0F<<7 | 0x0E, - 28198 - 19968: jis0208<<14 | 0x10<<7 | 0x11, - 28199 - 19968: jis0208<<14 | 0x59<<7 | 0x4A, - 28201 - 19968: jis0208<<14 | 0x11<<7 | 0x18, - 28203 - 19968: jis0208<<14 | 0x3D<<7 | 0x37, - 28204 - 19968: jis0208<<14 | 0x21<<7 | 0x0B, - 28205 - 19968: jis0208<<14 | 0x3D<<7 | 0x2E, - 28206 - 19968: jis0208<<14 | 0x3D<<7 | 0x30, - 28207 - 19968: jis0208<<14 | 0x18<<7 | 0x20, - 28210 - 19968: jis0212<<14 | 0x26<<7 | 0x4B, - 28214 - 19968: jis0212<<14 | 0x26<<7 | 0x4C, - 28216 - 19968: jis0208<<14 | 0x3D<<7 | 0x41, - 28217 - 19968: jis0208<<14 | 0x59<<7 | 0x48, - 28218 - 19968: jis0208<<14 | 0x3D<<7 | 0x3C, - 28219 - 19968: jis0212<<14 | 0x26<<7 | 0x4E, - 28220 - 19968: jis0208<<14 | 0x59<<7 | 0x4B, - 28222 - 19968: jis0208<<14 | 0x3D<<7 | 0x34, - 28227 - 19968: jis0208<<14 | 0x3D<<7 | 0x3B, - 28228 - 19968: jis0212<<14 | 0x26<<7 | 0x50, - 28229 - 19968: jis0212<<14 | 0x26<<7 | 0x51, - 28232 - 19968: jis0212<<14 | 0x26<<7 | 0x52, - 28233 - 19968: jis0212<<14 | 0x26<<7 | 0x53, - 28234 - 19968: jis0208<<14 | 0x2B<<7 | 0x0A, - 28235 - 19968: jis0212<<14 | 0x26<<7 | 0x54, - 28237 - 19968: jis0208<<14 | 0x3D<<7 | 0x39, - 28238 - 19968: jis0208<<14 | 0x3D<<7 | 0x3D, - 28239 - 19968: jis0212<<14 | 0x26<<7 | 0x55, - 28241 - 19968: jis0212<<14 | 0x26<<7 | 0x56, - 28242 - 19968: jis0212<<14 | 0x26<<7 | 0x57, - 28243 - 19968: jis0212<<14 | 0x26<<7 | 0x58, - 28244 - 19968: jis0212<<14 | 0x26<<7 | 0x59, - 28246 - 19968: jis0208<<14 | 0x17<<7 | 0x2F, - 28247 - 19968: jis0212<<14 | 0x26<<7 | 0x5A, - 28248 - 19968: jis0208<<14 | 0x1D<<7 | 0x24, - 28251 - 19968: jis0208<<14 | 0x22<<7 | 0x18, - 28252 - 19968: jis0208<<14 | 0x59<<7 | 0x49, - 28253 - 19968: jis0212<<14 | 0x26<<7 | 0x5C, - 28254 - 19968: jis0212<<14 | 0x26<<7 | 0x5D, - 28255 - 19968: jis0208<<14 | 0x3D<<7 | 0x33, - 28258 - 19968: jis0212<<14 | 0x27<<7 | 0x00, - 28259 - 19968: jis0212<<14 | 0x27<<7 | 0x01, - 28263 - 19968: jis0208<<14 | 0x2C<<7 | 0x0E, - 28264 - 19968: jis0212<<14 | 0x27<<7 | 0x02, - 28267 - 19968: jis0208<<14 | 0x3D<<7 | 0x36, - 28270 - 19968: jis0208<<14 | 0x3D<<7 | 0x2F, - 28271 - 19968: jis0208<<14 | 0x24<<7 | 0x51, - 28274 - 19968: jis0208<<14 | 0x3D<<7 | 0x32, - 28275 - 19968: jis0212<<14 | 0x27<<7 | 0x03, - 28278 - 19968: jis0208<<14 | 0x3D<<7 | 0x38, - 28283 - 19968: jis0212<<14 | 0x27<<7 | 0x04, - 28285 - 19968: jis0212<<14 | 0x27<<7 | 0x05, - 28286 - 19968: jis0208<<14 | 0x2E<<7 | 0x30, - 28287 - 19968: jis0208<<14 | 0x1B<<7 | 0x1D, - 28288 - 19968: jis0208<<14 | 0x2A<<7 | 0x5D, - 28290 - 19968: jis0208<<14 | 0x3D<<7 | 0x42, - 28300 - 19968: jis0208<<14 | 0x27<<7 | 0x0D, - 28301 - 19968: jis0212<<14 | 0x27<<7 | 0x06, - 28303 - 19968: jis0208<<14 | 0x3D<<7 | 0x4E, - 28304 - 19968: jis0208<<14 | 0x17<<7 | 0x1A, - 28307 - 19968: jis0212<<14 | 0x27<<7 | 0x07, - 28310 - 19968: jis0208<<14 | 0x1C<<7 | 0x3F, - 28312 - 19968: jis0208<<14 | 0x3D<<7 | 0x44, - 28313 - 19968: jis0212<<14 | 0x27<<7 | 0x08, - 28316 - 19968: jis0208<<14 | 0x2D<<7 | 0x0E, - 28317 - 19968: jis0208<<14 | 0x18<<7 | 0x21, - 28319 - 19968: jis0208<<14 | 0x3D<<7 | 0x51, - 28320 - 19968: jis0212<<14 | 0x27<<7 | 0x09, - 28322 - 19968: jis0208<<14 | 0x0F<<7 | 0x4D, - 28325 - 19968: jis0208<<14 | 0x3D<<7 | 0x4F, - 28327 - 19968: jis0212<<14 | 0x27<<7 | 0x0A, - 28330 - 19968: jis0208<<14 | 0x3D<<7 | 0x43, - 28333 - 19968: jis0212<<14 | 0x27<<7 | 0x0B, - 28334 - 19968: jis0212<<14 | 0x27<<7 | 0x0C, - 28335 - 19968: jis0208<<14 | 0x3D<<7 | 0x49, - 28337 - 19968: jis0212<<14 | 0x27<<7 | 0x0D, - 28338 - 19968: jis0208<<14 | 0x3D<<7 | 0x4B, - 28339 - 19968: jis0212<<14 | 0x27<<7 | 0x0E, - 28342 - 19968: jis0208<<14 | 0x2C<<7 | 0x2E, - 28343 - 19968: jis0208<<14 | 0x3D<<7 | 0x46, - 28346 - 19968: jis0208<<14 | 0x24<<7 | 0x0D, - 28347 - 19968: jis0212<<14 | 0x27<<7 | 0x0F, - 28349 - 19968: jis0208<<14 | 0x3D<<7 | 0x48, - 28351 - 19968: jis0208<<14 | 0x59<<7 | 0x4C, - 28352 - 19968: jis0212<<14 | 0x27<<7 | 0x11, - 28353 - 19968: jis0212<<14 | 0x27<<7 | 0x12, - 28354 - 19968: jis0208<<14 | 0x3D<<7 | 0x50, - 28355 - 19968: jis0212<<14 | 0x27<<7 | 0x13, - 28356 - 19968: jis0208<<14 | 0x3D<<7 | 0x4A, - 28357 - 19968: jis0208<<14 | 0x2B<<7 | 0x26, - 28359 - 19968: jis0212<<14 | 0x27<<7 | 0x14, - 28360 - 19968: jis0212<<14 | 0x27<<7 | 0x15, - 28361 - 19968: jis0208<<14 | 0x3D<<7 | 0x45, - 28362 - 19968: jis0212<<14 | 0x27<<7 | 0x16, - 28363 - 19968: jis0208<<14 | 0x1B<<7 | 0x01, - 28364 - 19968: jis0208<<14 | 0x3D<<7 | 0x5D, - 28365 - 19968: jis0212<<14 | 0x27<<7 | 0x17, - 28366 - 19968: jis0212<<14 | 0x27<<7 | 0x18, - 28367 - 19968: jis0212<<14 | 0x27<<7 | 0x19, - 28369 - 19968: jis0208<<14 | 0x12<<7 | 0x49, - 28371 - 19968: jis0208<<14 | 0x3D<<7 | 0x47, - 28372 - 19968: jis0208<<14 | 0x3D<<7 | 0x4C, - 28373 - 19968: jis0208<<14 | 0x3D<<7 | 0x4D, - 28381 - 19968: jis0208<<14 | 0x21<<7 | 0x4B, - 28382 - 19968: jis0208<<14 | 0x21<<7 | 0x39, - 28395 - 19968: jis0212<<14 | 0x27<<7 | 0x1A, - 28396 - 19968: jis0208<<14 | 0x3D<<7 | 0x55, - 28397 - 19968: jis0212<<14 | 0x27<<7 | 0x1B, - 28398 - 19968: jis0212<<14 | 0x27<<7 | 0x1C, - 28399 - 19968: jis0208<<14 | 0x3D<<7 | 0x5B, - 28402 - 19968: jis0208<<14 | 0x3D<<7 | 0x59, - 28404 - 19968: jis0208<<14 | 0x24<<7 | 0x08, - 28407 - 19968: jis0208<<14 | 0x3E<<7 | 0x02, - 28408 - 19968: jis0208<<14 | 0x3D<<7 | 0x56, - 28409 - 19968: jis0212<<14 | 0x27<<7 | 0x1D, - 28411 - 19968: jis0212<<14 | 0x27<<7 | 0x1E, - 28413 - 19968: jis0212<<14 | 0x27<<7 | 0x1F, - 28414 - 19968: jis0208<<14 | 0x3D<<7 | 0x57, - 28415 - 19968: jis0208<<14 | 0x3D<<7 | 0x3F, - 28417 - 19968: jis0208<<14 | 0x14<<7 | 0x58, - 28418 - 19968: jis0208<<14 | 0x28<<7 | 0x19, - 28420 - 19968: jis0212<<14 | 0x27<<7 | 0x20, - 28422 - 19968: jis0208<<14 | 0x1B<<7 | 0x1E, - 28424 - 19968: jis0212<<14 | 0x27<<7 | 0x21, - 28425 - 19968: jis0208<<14 | 0x18<<7 | 0x56, - 28426 - 19968: jis0212<<14 | 0x27<<7 | 0x22, - 28428 - 19968: jis0212<<14 | 0x27<<7 | 0x23, - 28429 - 19968: jis0212<<14 | 0x27<<7 | 0x24, - 28431 - 19968: jis0208<<14 | 0x2E<<7 | 0x12, - 28433 - 19968: jis0208<<14 | 0x3D<<7 | 0x53, - 28435 - 19968: jis0208<<14 | 0x3E<<7 | 0x01, - 28436 - 19968: jis0208<<14 | 0x10<<7 | 0x48, - 28437 - 19968: jis0208<<14 | 0x20<<7 | 0x45, - 28438 - 19968: jis0212<<14 | 0x27<<7 | 0x25, - 28440 - 19968: jis0212<<14 | 0x27<<7 | 0x26, - 28442 - 19968: jis0212<<14 | 0x27<<7 | 0x27, - 28443 - 19968: jis0212<<14 | 0x27<<7 | 0x28, - 28448 - 19968: jis0208<<14 | 0x26<<7 | 0x58, - 28450 - 19968: jis0208<<14 | 0x13<<7 | 0x20, - 28451 - 19968: jis0208<<14 | 0x2D<<7 | 0x59, - 28454 - 19968: jis0212<<14 | 0x27<<7 | 0x29, - 28457 - 19968: jis0212<<14 | 0x27<<7 | 0x2A, - 28458 - 19968: jis0212<<14 | 0x27<<7 | 0x2B, - 28459 - 19968: jis0208<<14 | 0x2B<<7 | 0x00, - 28460 - 19968: jis0208<<14 | 0x23<<7 | 0x31, - 28461 - 19968: jis0212<<14 | 0x27<<7 | 0x32, - 28463 - 19968: jis0212<<14 | 0x27<<7 | 0x2C, - 28464 - 19968: jis0212<<14 | 0x27<<7 | 0x2D, - 28465 - 19968: jis0208<<14 | 0x3D<<7 | 0x5A, - 28466 - 19968: jis0208<<14 | 0x3D<<7 | 0x5C, - 28467 - 19968: jis0212<<14 | 0x27<<7 | 0x2E, - 28470 - 19968: jis0212<<14 | 0x27<<7 | 0x2F, - 28472 - 19968: jis0208<<14 | 0x20<<7 | 0x11, - 28475 - 19968: jis0212<<14 | 0x27<<7 | 0x30, - 28476 - 19968: jis0212<<14 | 0x27<<7 | 0x31, - 28478 - 19968: jis0208<<14 | 0x3E<<7 | 0x00, - 28479 - 19968: jis0208<<14 | 0x3D<<7 | 0x58, - 28481 - 19968: jis0208<<14 | 0x3D<<7 | 0x52, - 28485 - 19968: jis0208<<14 | 0x13<<7 | 0x22, - 28495 - 19968: jis0212<<14 | 0x27<<7 | 0x33, - 28497 - 19968: jis0212<<14 | 0x27<<7 | 0x34, - 28498 - 19968: jis0212<<14 | 0x27<<7 | 0x35, - 28499 - 19968: jis0212<<14 | 0x27<<7 | 0x36, - 28500 - 19968: jis0208<<14 | 0x16<<7 | 0x48, - 28503 - 19968: jis0212<<14 | 0x27<<7 | 0x37, - 28504 - 19968: jis0208<<14 | 0x3E<<7 | 0x0E, - 28505 - 19968: jis0212<<14 | 0x27<<7 | 0x38, - 28506 - 19968: jis0212<<14 | 0x27<<7 | 0x39, - 28507 - 19968: jis0208<<14 | 0x3E<<7 | 0x09, - 28508 - 19968: jis0208<<14 | 0x1F<<7 | 0x57, - 28509 - 19968: jis0212<<14 | 0x27<<7 | 0x3A, - 28510 - 19968: jis0212<<14 | 0x27<<7 | 0x3B, - 28511 - 19968: jis0208<<14 | 0x12<<7 | 0x42, - 28513 - 19968: jis0212<<14 | 0x27<<7 | 0x3C, - 28514 - 19968: jis0212<<14 | 0x27<<7 | 0x3D, - 28516 - 19968: jis0208<<14 | 0x1C<<7 | 0x40, - 28518 - 19968: jis0208<<14 | 0x3E<<7 | 0x12, - 28520 - 19968: jis0212<<14 | 0x27<<7 | 0x3E, - 28524 - 19968: jis0212<<14 | 0x27<<7 | 0x3F, - 28525 - 19968: jis0208<<14 | 0x3E<<7 | 0x0B, - 28526 - 19968: jis0208<<14 | 0x23<<7 | 0x0B, - 28527 - 19968: jis0208<<14 | 0x3E<<7 | 0x08, - 28528 - 19968: jis0208<<14 | 0x23<<7 | 0x38, - 28532 - 19968: jis0208<<14 | 0x3E<<7 | 0x2B, - 28536 - 19968: jis0208<<14 | 0x3E<<7 | 0x05, - 28538 - 19968: jis0208<<14 | 0x3E<<7 | 0x04, - 28540 - 19968: jis0208<<14 | 0x3E<<7 | 0x0D, - 28541 - 19968: jis0212<<14 | 0x27<<7 | 0x40, - 28542 - 19968: jis0212<<14 | 0x27<<7 | 0x41, - 28544 - 19968: jis0208<<14 | 0x3E<<7 | 0x07, - 28545 - 19968: jis0208<<14 | 0x3E<<7 | 0x06, - 28546 - 19968: jis0208<<14 | 0x3E<<7 | 0x0C, - 28547 - 19968: jis0212<<14 | 0x27<<7 | 0x42, - 28548 - 19968: jis0208<<14 | 0x1F<<7 | 0x00, - 28550 - 19968: jis0208<<14 | 0x3E<<7 | 0x03, - 28551 - 19968: jis0212<<14 | 0x27<<7 | 0x43, - 28552 - 19968: jis0208<<14 | 0x59<<7 | 0x4D, - 28555 - 19968: jis0212<<14 | 0x27<<7 | 0x45, - 28556 - 19968: jis0212<<14 | 0x27<<7 | 0x46, - 28557 - 19968: jis0212<<14 | 0x27<<7 | 0x47, - 28558 - 19968: jis0208<<14 | 0x3E<<7 | 0x0F, - 28560 - 19968: jis0212<<14 | 0x27<<7 | 0x48, - 28561 - 19968: jis0208<<14 | 0x3E<<7 | 0x10, - 28562 - 19968: jis0212<<14 | 0x27<<7 | 0x49, - 28563 - 19968: jis0212<<14 | 0x27<<7 | 0x4A, - 28564 - 19968: jis0212<<14 | 0x27<<7 | 0x4B, - 28566 - 19968: jis0212<<14 | 0x27<<7 | 0x4C, - 28567 - 19968: jis0208<<14 | 0x13<<7 | 0x21, - 28570 - 19968: jis0212<<14 | 0x27<<7 | 0x4D, - 28575 - 19968: jis0212<<14 | 0x27<<7 | 0x4E, - 28576 - 19968: jis0212<<14 | 0x27<<7 | 0x4F, - 28577 - 19968: jis0208<<14 | 0x3E<<7 | 0x15, - 28579 - 19968: jis0208<<14 | 0x3E<<7 | 0x14, - 28580 - 19968: jis0208<<14 | 0x3E<<7 | 0x16, - 28581 - 19968: jis0212<<14 | 0x27<<7 | 0x50, - 28582 - 19968: jis0212<<14 | 0x27<<7 | 0x51, - 28583 - 19968: jis0212<<14 | 0x27<<7 | 0x52, - 28584 - 19968: jis0212<<14 | 0x27<<7 | 0x53, - 28586 - 19968: jis0208<<14 | 0x3E<<7 | 0x19, - 28590 - 19968: jis0212<<14 | 0x27<<7 | 0x54, - 28591 - 19968: jis0212<<14 | 0x27<<7 | 0x55, - 28592 - 19968: jis0212<<14 | 0x27<<7 | 0x56, - 28593 - 19968: jis0208<<14 | 0x24<<7 | 0x22, - 28595 - 19968: jis0208<<14 | 0x3E<<7 | 0x13, - 28597 - 19968: jis0208<<14 | 0x59<<7 | 0x4E, - 28598 - 19968: jis0212<<14 | 0x27<<7 | 0x58, - 28601 - 19968: jis0208<<14 | 0x3E<<7 | 0x17, - 28604 - 19968: jis0212<<14 | 0x27<<7 | 0x59, - 28608 - 19968: jis0208<<14 | 0x16<<7 | 0x42, - 28609 - 19968: jis0208<<14 | 0x21<<7 | 0x58, - 28610 - 19968: jis0208<<14 | 0x3E<<7 | 0x11, - 28611 - 19968: jis0208<<14 | 0x26<<7 | 0x1A, - 28613 - 19968: jis0212<<14 | 0x27<<7 | 0x5A, - 28614 - 19968: jis0208<<14 | 0x3E<<7 | 0x18, - 28615 - 19968: jis0212<<14 | 0x27<<7 | 0x5B, - 28616 - 19968: jis0212<<14 | 0x27<<7 | 0x5C, - 28618 - 19968: jis0212<<14 | 0x27<<7 | 0x5D, - 28628 - 19968: jis0208<<14 | 0x3E<<7 | 0x1D, - 28629 - 19968: jis0208<<14 | 0x3E<<7 | 0x1B, - 28632 - 19968: jis0208<<14 | 0x3E<<7 | 0x1E, - 28634 - 19968: jis0212<<14 | 0x28<<7 | 0x00, - 28635 - 19968: jis0208<<14 | 0x3E<<7 | 0x21, - 28638 - 19968: jis0212<<14 | 0x28<<7 | 0x01, - 28639 - 19968: jis0208<<14 | 0x3E<<7 | 0x1A, - 28640 - 19968: jis0208<<14 | 0x18<<7 | 0x49, - 28641 - 19968: jis0208<<14 | 0x26<<7 | 0x07, - 28644 - 19968: jis0208<<14 | 0x3D<<7 | 0x18, - 28648 - 19968: jis0212<<14 | 0x28<<7 | 0x02, - 28649 - 19968: jis0212<<14 | 0x28<<7 | 0x03, - 28651 - 19968: jis0208<<14 | 0x2C<<7 | 0x53, - 28652 - 19968: jis0208<<14 | 0x3E<<7 | 0x1C, - 28654 - 19968: jis0208<<14 | 0x3E<<7 | 0x20, - 28655 - 19968: jis0208<<14 | 0x21<<7 | 0x54, - 28656 - 19968: jis0212<<14 | 0x28<<7 | 0x04, - 28657 - 19968: jis0208<<14 | 0x3E<<7 | 0x1F, - 28659 - 19968: jis0208<<14 | 0x3E<<7 | 0x0A, - 28661 - 19968: jis0208<<14 | 0x59<<7 | 0x4F, - 28662 - 19968: jis0208<<14 | 0x4E<<7 | 0x48, - 28665 - 19968: jis0212<<14 | 0x28<<7 | 0x06, - 28666 - 19968: jis0208<<14 | 0x3E<<7 | 0x24, - 28668 - 19968: jis0212<<14 | 0x28<<7 | 0x07, - 28669 - 19968: jis0212<<14 | 0x28<<7 | 0x08, - 28670 - 19968: jis0208<<14 | 0x3E<<7 | 0x28, - 28672 - 19968: jis0212<<14 | 0x28<<7 | 0x09, - 28673 - 19968: jis0208<<14 | 0x3E<<7 | 0x26, - 28677 - 19968: jis0208<<14 | 0x59<<7 | 0x50, - 28678 - 19968: jis0212<<14 | 0x28<<7 | 0x0B, - 28679 - 19968: jis0208<<14 | 0x59<<7 | 0x51, - 28681 - 19968: jis0208<<14 | 0x3E<<7 | 0x22, - 28683 - 19968: jis0208<<14 | 0x3E<<7 | 0x23, - 28685 - 19968: jis0212<<14 | 0x28<<7 | 0x0D, - 28687 - 19968: jis0208<<14 | 0x3E<<7 | 0x27, - 28689 - 19968: jis0208<<14 | 0x3E<<7 | 0x25, - 28693 - 19968: jis0208<<14 | 0x28<<7 | 0x2D, - 28695 - 19968: jis0212<<14 | 0x28<<7 | 0x0E, - 28696 - 19968: jis0208<<14 | 0x3E<<7 | 0x2D, - 28698 - 19968: jis0208<<14 | 0x3E<<7 | 0x2A, - 28699 - 19968: jis0208<<14 | 0x3E<<7 | 0x29, - 28701 - 19968: jis0208<<14 | 0x3E<<7 | 0x2C, - 28702 - 19968: jis0208<<14 | 0x25<<7 | 0x33, - 28703 - 19968: jis0208<<14 | 0x3E<<7 | 0x2E, - 28704 - 19968: jis0212<<14 | 0x28<<7 | 0x0F, - 28707 - 19968: jis0212<<14 | 0x28<<7 | 0x10, - 28710 - 19968: jis0208<<14 | 0x22<<7 | 0x54, - 28711 - 19968: jis0208<<14 | 0x21<<7 | 0x4C, - 28712 - 19968: jis0208<<14 | 0x59<<7 | 0x52, - 28716 - 19968: jis0208<<14 | 0x1F<<7 | 0x04, - 28719 - 19968: jis0212<<14 | 0x28<<7 | 0x11, - 28720 - 19968: jis0208<<14 | 0x3E<<7 | 0x2F, - 28722 - 19968: jis0208<<14 | 0x3E<<7 | 0x31, - 28724 - 19968: jis0212<<14 | 0x28<<7 | 0x12, - 28727 - 19968: jis0212<<14 | 0x28<<7 | 0x13, - 28729 - 19968: jis0212<<14 | 0x28<<7 | 0x14, - 28732 - 19968: jis0212<<14 | 0x28<<7 | 0x15, - 28734 - 19968: jis0208<<14 | 0x3E<<7 | 0x30, - 28739 - 19968: jis0212<<14 | 0x28<<7 | 0x16, - 28740 - 19968: jis0212<<14 | 0x28<<7 | 0x17, - 28744 - 19968: jis0212<<14 | 0x28<<7 | 0x18, - 28745 - 19968: jis0212<<14 | 0x28<<7 | 0x19, - 28746 - 19968: jis0212<<14 | 0x28<<7 | 0x1A, - 28747 - 19968: jis0212<<14 | 0x28<<7 | 0x1B, - 28748 - 19968: jis0208<<14 | 0x3D<<7 | 0x54, - 28750 - 19968: jis0212<<14 | 0x28<<7 | 0x20, - 28753 - 19968: jis0208<<14 | 0x3E<<7 | 0x32, - 28756 - 19968: jis0212<<14 | 0x28<<7 | 0x1C, - 28757 - 19968: jis0212<<14 | 0x28<<7 | 0x1D, - 28760 - 19968: jis0208<<14 | 0x25<<7 | 0x46, - 28765 - 19968: jis0212<<14 | 0x28<<7 | 0x1E, - 28766 - 19968: jis0212<<14 | 0x28<<7 | 0x1F, - 28771 - 19968: jis0208<<14 | 0x3E<<7 | 0x33, - 28772 - 19968: jis0212<<14 | 0x28<<7 | 0x21, - 28773 - 19968: jis0212<<14 | 0x28<<7 | 0x22, - 28779 - 19968: jis0208<<14 | 0x11<<7 | 0x2F, - 28780 - 19968: jis0212<<14 | 0x28<<7 | 0x23, - 28782 - 19968: jis0212<<14 | 0x28<<7 | 0x24, - 28783 - 19968: jis0208<<14 | 0x24<<7 | 0x53, - 28784 - 19968: jis0208<<14 | 0x12<<7 | 0x04, - 28789 - 19968: jis0212<<14 | 0x28<<7 | 0x25, - 28790 - 19968: jis0212<<14 | 0x28<<7 | 0x26, - 28792 - 19968: jis0208<<14 | 0x14<<7 | 0x43, - 28796 - 19968: jis0208<<14 | 0x1B<<7 | 0x3D, - 28797 - 19968: jis0208<<14 | 0x19<<7 | 0x31, - 28798 - 19968: jis0212<<14 | 0x28<<7 | 0x27, - 28801 - 19968: jis0212<<14 | 0x28<<7 | 0x28, - 28805 - 19968: jis0208<<14 | 0x59<<7 | 0x53, - 28806 - 19968: jis0212<<14 | 0x28<<7 | 0x2A, - 28809 - 19968: jis0208<<14 | 0x2E<<7 | 0x06, - 28810 - 19968: jis0208<<14 | 0x1E<<7 | 0x45, - 28814 - 19968: jis0208<<14 | 0x10<<7 | 0x49, - 28818 - 19968: jis0208<<14 | 0x3E<<7 | 0x35, - 28820 - 19968: jis0212<<14 | 0x28<<7 | 0x2B, - 28821 - 19968: jis0212<<14 | 0x28<<7 | 0x2C, - 28822 - 19968: jis0212<<14 | 0x28<<7 | 0x2D, - 28823 - 19968: jis0212<<14 | 0x28<<7 | 0x2E, - 28824 - 19968: jis0212<<14 | 0x28<<7 | 0x2F, - 28825 - 19968: jis0208<<14 | 0x3E<<7 | 0x34, - 28827 - 19968: jis0212<<14 | 0x28<<7 | 0x30, - 28836 - 19968: jis0212<<14 | 0x28<<7 | 0x31, - 28843 - 19968: jis0208<<14 | 0x59<<7 | 0x54, - 28844 - 19968: jis0208<<14 | 0x3E<<7 | 0x38, - 28845 - 19968: jis0208<<14 | 0x22<<7 | 0x19, - 28846 - 19968: jis0208<<14 | 0x3E<<7 | 0x3B, - 28847 - 19968: jis0208<<14 | 0x3E<<7 | 0x36, - 28848 - 19968: jis0212<<14 | 0x28<<7 | 0x33, - 28849 - 19968: jis0212<<14 | 0x28<<7 | 0x34, - 28851 - 19968: jis0208<<14 | 0x3E<<7 | 0x3A, - 28852 - 19968: jis0212<<14 | 0x28<<7 | 0x35, - 28855 - 19968: jis0212<<14 | 0x28<<7 | 0x36, - 28856 - 19968: jis0208<<14 | 0x3E<<7 | 0x39, - 28857 - 19968: jis0208<<14 | 0x24<<7 | 0x1F, - 28858 - 19968: jis0208<<14 | 0x0F<<7 | 0x38, - 28859 - 19968: jis0208<<14 | 0x58<<7 | 0x06, - 28872 - 19968: jis0208<<14 | 0x2D<<7 | 0x54, - 28874 - 19968: jis0212<<14 | 0x28<<7 | 0x37, - 28875 - 19968: jis0208<<14 | 0x3E<<7 | 0x3D, - 28879 - 19968: jis0208<<14 | 0x10<<7 | 0x07, - 28881 - 19968: jis0212<<14 | 0x28<<7 | 0x38, - 28883 - 19968: jis0212<<14 | 0x28<<7 | 0x39, - 28884 - 19968: jis0212<<14 | 0x28<<7 | 0x3A, - 28885 - 19968: jis0212<<14 | 0x28<<7 | 0x3B, - 28886 - 19968: jis0212<<14 | 0x28<<7 | 0x3C, - 28888 - 19968: jis0212<<14 | 0x28<<7 | 0x3D, - 28889 - 19968: jis0208<<14 | 0x3E<<7 | 0x3F, - 28892 - 19968: jis0212<<14 | 0x28<<7 | 0x3E, - 28893 - 19968: jis0208<<14 | 0x3E<<7 | 0x3E, - 28895 - 19968: jis0208<<14 | 0x3E<<7 | 0x3C, - 28900 - 19968: jis0212<<14 | 0x28<<7 | 0x3F, - 28913 - 19968: jis0208<<14 | 0x3E<<7 | 0x37, - 28921 - 19968: jis0208<<14 | 0x2A<<7 | 0x02, - 28922 - 19968: jis0212<<14 | 0x28<<7 | 0x40, - 28925 - 19968: jis0208<<14 | 0x3E<<7 | 0x41, - 28931 - 19968: jis0212<<14 | 0x28<<7 | 0x41, - 28932 - 19968: jis0208<<14 | 0x59<<7 | 0x56, - 28933 - 19968: jis0212<<14 | 0x28<<7 | 0x43, - 28934 - 19968: jis0212<<14 | 0x28<<7 | 0x44, - 28935 - 19968: jis0212<<14 | 0x28<<7 | 0x45, - 28937 - 19968: jis0208<<14 | 0x3E<<7 | 0x40, - 28939 - 19968: jis0212<<14 | 0x28<<7 | 0x46, - 28940 - 19968: jis0212<<14 | 0x28<<7 | 0x47, - 28943 - 19968: jis0208<<14 | 0x59<<7 | 0x55, - 28948 - 19968: jis0208<<14 | 0x10<<7 | 0x4A, - 28953 - 19968: jis0208<<14 | 0x3E<<7 | 0x43, - 28954 - 19968: jis0208<<14 | 0x29<<7 | 0x11, - 28956 - 19968: jis0208<<14 | 0x3E<<7 | 0x42, - 28958 - 19968: jis0212<<14 | 0x28<<7 | 0x49, - 28960 - 19968: jis0212<<14 | 0x28<<7 | 0x4A, - 28961 - 19968: jis0208<<14 | 0x2B<<7 | 0x14, - 28966 - 19968: jis0208<<14 | 0x1D<<7 | 0x26, - 28971 - 19968: jis0212<<14 | 0x28<<7 | 0x4B, - 28973 - 19968: jis0212<<14 | 0x28<<7 | 0x4C, - 28975 - 19968: jis0212<<14 | 0x28<<7 | 0x4D, - 28976 - 19968: jis0212<<14 | 0x28<<7 | 0x4E, - 28977 - 19968: jis0212<<14 | 0x28<<7 | 0x4F, - 28982 - 19968: jis0208<<14 | 0x20<<7 | 0x12, - 28984 - 19968: jis0212<<14 | 0x28<<7 | 0x50, - 28988 - 19968: jis0208<<14 | 0x1D<<7 | 0x25, - 28993 - 19968: jis0212<<14 | 0x28<<7 | 0x51, - 28997 - 19968: jis0212<<14 | 0x28<<7 | 0x52, - 28998 - 19968: jis0208<<14 | 0x59<<7 | 0x58, - 28999 - 19968: jis0208<<14 | 0x59<<7 | 0x59, - 29001 - 19968: jis0208<<14 | 0x2D<<7 | 0x5A, - 29002 - 19968: jis0212<<14 | 0x28<<7 | 0x55, - 29003 - 19968: jis0212<<14 | 0x28<<7 | 0x56, - 29004 - 19968: jis0208<<14 | 0x3E<<7 | 0x49, - 29006 - 19968: jis0208<<14 | 0x1F<<7 | 0x58, - 29008 - 19968: jis0212<<14 | 0x28<<7 | 0x57, - 29010 - 19968: jis0212<<14 | 0x28<<7 | 0x58, - 29013 - 19968: jis0208<<14 | 0x3E<<7 | 0x45, - 29014 - 19968: jis0208<<14 | 0x3E<<7 | 0x4A, - 29015 - 19968: jis0212<<14 | 0x28<<7 | 0x59, - 29017 - 19968: jis0208<<14 | 0x10<<7 | 0x4B, - 29018 - 19968: jis0212<<14 | 0x28<<7 | 0x5A, - 29020 - 19968: jis0208<<14 | 0x59<<7 | 0x57, - 29022 - 19968: jis0212<<14 | 0x28<<7 | 0x5C, - 29024 - 19968: jis0212<<14 | 0x28<<7 | 0x5D, - 29026 - 19968: jis0208<<14 | 0x3E<<7 | 0x48, - 29028 - 19968: jis0208<<14 | 0x26<<7 | 0x40, - 29029 - 19968: jis0208<<14 | 0x3E<<7 | 0x44, - 29030 - 19968: jis0208<<14 | 0x3E<<7 | 0x47, - 29031 - 19968: jis0208<<14 | 0x1D<<7 | 0x27, - 29032 - 19968: jis0212<<14 | 0x29<<7 | 0x00, - 29033 - 19968: jis0208<<14 | 0x27<<7 | 0x30, - 29036 - 19968: jis0208<<14 | 0x3E<<7 | 0x4B, - 29038 - 19968: jis0208<<14 | 0x1B<<7 | 0x30, - 29049 - 19968: jis0212<<14 | 0x29<<7 | 0x01, - 29053 - 19968: jis0208<<14 | 0x1F<<7 | 0x59, - 29056 - 19968: jis0212<<14 | 0x29<<7 | 0x02, - 29060 - 19968: jis0208<<14 | 0x3E<<7 | 0x4E, - 29061 - 19968: jis0212<<14 | 0x29<<7 | 0x03, - 29063 - 19968: jis0212<<14 | 0x29<<7 | 0x04, - 29064 - 19968: jis0208<<14 | 0x3E<<7 | 0x46, - 29066 - 19968: jis0208<<14 | 0x16<<7 | 0x06, - 29068 - 19968: jis0212<<14 | 0x29<<7 | 0x05, - 29071 - 19968: jis0208<<14 | 0x3E<<7 | 0x4C, - 29074 - 19968: jis0212<<14 | 0x29<<7 | 0x06, - 29076 - 19968: jis0208<<14 | 0x2C<<7 | 0x2F, - 29077 - 19968: jis0208<<14 | 0x3E<<7 | 0x4F, - 29081 - 19968: jis0208<<14 | 0x53<<7 | 0x05, - 29082 - 19968: jis0212<<14 | 0x29<<7 | 0x07, - 29083 - 19968: jis0212<<14 | 0x29<<7 | 0x08, - 29087 - 19968: jis0208<<14 | 0x1C<<7 | 0x2E, - 29088 - 19968: jis0212<<14 | 0x29<<7 | 0x09, - 29090 - 19968: jis0212<<14 | 0x29<<7 | 0x0A, - 29096 - 19968: jis0208<<14 | 0x3E<<7 | 0x50, - 29100 - 19968: jis0208<<14 | 0x3E<<7 | 0x51, - 29103 - 19968: jis0212<<14 | 0x29<<7 | 0x0B, - 29104 - 19968: jis0212<<14 | 0x29<<7 | 0x0C, - 29105 - 19968: jis0208<<14 | 0x26<<7 | 0x0D, - 29106 - 19968: jis0212<<14 | 0x29<<7 | 0x0D, - 29107 - 19968: jis0212<<14 | 0x29<<7 | 0x0E, - 29113 - 19968: jis0208<<14 | 0x3E<<7 | 0x53, - 29114 - 19968: jis0212<<14 | 0x29<<7 | 0x0F, - 29118 - 19968: jis0208<<14 | 0x3E<<7 | 0x54, - 29119 - 19968: jis0212<<14 | 0x29<<7 | 0x10, - 29120 - 19968: jis0212<<14 | 0x29<<7 | 0x11, - 29121 - 19968: jis0208<<14 | 0x59<<7 | 0x5B, - 29123 - 19968: jis0208<<14 | 0x26<<7 | 0x12, - 29124 - 19968: jis0212<<14 | 0x29<<7 | 0x13, - 29128 - 19968: jis0208<<14 | 0x24<<7 | 0x54, - 29129 - 19968: jis0208<<14 | 0x3E<<7 | 0x56, - 29131 - 19968: jis0212<<14 | 0x29<<7 | 0x14, - 29132 - 19968: jis0212<<14 | 0x29<<7 | 0x15, - 29134 - 19968: jis0208<<14 | 0x3E<<7 | 0x58, - 29136 - 19968: jis0208<<14 | 0x2D<<7 | 0x34, - 29138 - 19968: jis0208<<14 | 0x3E<<7 | 0x55, - 29139 - 19968: jis0212<<14 | 0x29<<7 | 0x16, - 29140 - 19968: jis0208<<14 | 0x3E<<7 | 0x57, - 29141 - 19968: jis0208<<14 | 0x10<<7 | 0x4C, - 29142 - 19968: jis0212<<14 | 0x29<<7 | 0x17, - 29143 - 19968: jis0208<<14 | 0x3E<<7 | 0x52, - 29145 - 19968: jis0212<<14 | 0x29<<7 | 0x18, - 29146 - 19968: jis0212<<14 | 0x29<<7 | 0x19, - 29148 - 19968: jis0212<<14 | 0x29<<7 | 0x1A, - 29151 - 19968: jis0208<<14 | 0x32<<7 | 0x3A, - 29152 - 19968: jis0208<<14 | 0x3E<<7 | 0x59, - 29157 - 19968: jis0208<<14 | 0x20<<7 | 0x46, - 29158 - 19968: jis0208<<14 | 0x1A<<7 | 0x17, - 29159 - 19968: jis0208<<14 | 0x3E<<7 | 0x5B, - 29164 - 19968: jis0208<<14 | 0x3E<<7 | 0x5A, - 29165 - 19968: jis0208<<14 | 0x1E<<7 | 0x03, - 29166 - 19968: jis0208<<14 | 0x31<<7 | 0x38, - 29173 - 19968: jis0208<<14 | 0x3E<<7 | 0x5C, - 29176 - 19968: jis0212<<14 | 0x29<<7 | 0x1B, - 29177 - 19968: jis0208<<14 | 0x3F<<7 | 0x00, - 29179 - 19968: jis0208<<14 | 0x3E<<7 | 0x4D, - 29180 - 19968: jis0208<<14 | 0x3E<<7 | 0x5D, - 29182 - 19968: jis0208<<14 | 0x59<<7 | 0x5C, - 29183 - 19968: jis0208<<14 | 0x3F<<7 | 0x01, - 29184 - 19968: jis0212<<14 | 0x29<<7 | 0x1D, - 29190 - 19968: jis0208<<14 | 0x26<<7 | 0x59, - 29191 - 19968: jis0212<<14 | 0x29<<7 | 0x1E, - 29192 - 19968: jis0212<<14 | 0x29<<7 | 0x1F, - 29193 - 19968: jis0212<<14 | 0x29<<7 | 0x20, - 29197 - 19968: jis0208<<14 | 0x3F<<7 | 0x02, - 29200 - 19968: jis0208<<14 | 0x3F<<7 | 0x03, - 29203 - 19968: jis0212<<14 | 0x29<<7 | 0x21, - 29207 - 19968: jis0212<<14 | 0x29<<7 | 0x22, - 29210 - 19968: jis0212<<14 | 0x29<<7 | 0x23, - 29211 - 19968: jis0208<<14 | 0x3F<<7 | 0x04, - 29213 - 19968: jis0212<<14 | 0x29<<7 | 0x24, - 29215 - 19968: jis0212<<14 | 0x29<<7 | 0x25, - 29220 - 19968: jis0212<<14 | 0x29<<7 | 0x26, - 29224 - 19968: jis0208<<14 | 0x3F<<7 | 0x05, - 29226 - 19968: jis0208<<14 | 0x23<<7 | 0x3D, - 29227 - 19968: jis0212<<14 | 0x29<<7 | 0x27, - 29228 - 19968: jis0208<<14 | 0x3F<<7 | 0x07, - 29229 - 19968: jis0208<<14 | 0x3F<<7 | 0x06, - 29231 - 19968: jis0212<<14 | 0x29<<7 | 0x28, - 29232 - 19968: jis0208<<14 | 0x3F<<7 | 0x08, - 29234 - 19968: jis0208<<14 | 0x3F<<7 | 0x09, - 29236 - 19968: jis0212<<14 | 0x29<<7 | 0x29, - 29237 - 19968: jis0208<<14 | 0x1B<<7 | 0x3E, - 29238 - 19968: jis0208<<14 | 0x28<<7 | 0x42, - 29240 - 19968: jis0212<<14 | 0x29<<7 | 0x2A, - 29241 - 19968: jis0212<<14 | 0x29<<7 | 0x2B, - 29242 - 19968: jis0208<<14 | 0x2B<<7 | 0x4B, - 29243 - 19968: jis0208<<14 | 0x3F<<7 | 0x0A, - 29244 - 19968: jis0208<<14 | 0x3F<<7 | 0x0B, - 29245 - 19968: jis0208<<14 | 0x20<<7 | 0x35, - 29246 - 19968: jis0208<<14 | 0x1B<<7 | 0x03, - 29247 - 19968: jis0208<<14 | 0x3F<<7 | 0x0C, - 29248 - 19968: jis0208<<14 | 0x3F<<7 | 0x0D, - 29249 - 19968: jis0212<<14 | 0x29<<7 | 0x2C, - 29250 - 19968: jis0212<<14 | 0x29<<7 | 0x2D, - 29251 - 19968: jis0212<<14 | 0x29<<7 | 0x2E, - 29253 - 19968: jis0212<<14 | 0x29<<7 | 0x2F, - 29254 - 19968: jis0208<<14 | 0x3F<<7 | 0x0E, - 29255 - 19968: jis0208<<14 | 0x29<<7 | 0x31, - 29256 - 19968: jis0208<<14 | 0x27<<7 | 0x26, - 29259 - 19968: jis0208<<14 | 0x3F<<7 | 0x0F, - 29260 - 19968: jis0208<<14 | 0x26<<7 | 0x36, - 29262 - 19968: jis0212<<14 | 0x29<<7 | 0x30, - 29263 - 19968: jis0212<<14 | 0x29<<7 | 0x31, - 29264 - 19968: jis0212<<14 | 0x29<<7 | 0x32, - 29266 - 19968: jis0208<<14 | 0x23<<7 | 0x0C, - 29267 - 19968: jis0212<<14 | 0x29<<7 | 0x33, - 29269 - 19968: jis0212<<14 | 0x29<<7 | 0x34, - 29270 - 19968: jis0212<<14 | 0x29<<7 | 0x35, - 29272 - 19968: jis0208<<14 | 0x3F<<7 | 0x10, - 29273 - 19968: jis0208<<14 | 0x11<<7 | 0x46, - 29274 - 19968: jis0212<<14 | 0x29<<7 | 0x36, - 29275 - 19968: jis0208<<14 | 0x14<<7 | 0x4C, - 29276 - 19968: jis0212<<14 | 0x29<<7 | 0x37, - 29277 - 19968: jis0208<<14 | 0x2B<<7 | 0x25, - 29278 - 19968: jis0212<<14 | 0x29<<7 | 0x38, - 29279 - 19968: jis0208<<14 | 0x2B<<7 | 0x15, - 29280 - 19968: jis0212<<14 | 0x29<<7 | 0x39, - 29281 - 19968: jis0208<<14 | 0x11<<7 | 0x13, - 29282 - 19968: jis0208<<14 | 0x2E<<7 | 0x13, - 29283 - 19968: jis0212<<14 | 0x29<<7 | 0x3A, - 29287 - 19968: jis0208<<14 | 0x2A<<7 | 0x31, - 29288 - 19968: jis0212<<14 | 0x29<<7 | 0x3B, - 29289 - 19968: jis0208<<14 | 0x29<<7 | 0x09, - 29291 - 19968: jis0212<<14 | 0x29<<7 | 0x3C, - 29294 - 19968: jis0212<<14 | 0x29<<7 | 0x3D, - 29295 - 19968: jis0212<<14 | 0x29<<7 | 0x3E, - 29297 - 19968: jis0212<<14 | 0x29<<7 | 0x3F, - 29298 - 19968: jis0208<<14 | 0x1F<<7 | 0x16, - 29300 - 19968: jis0208<<14 | 0x3F<<7 | 0x11, - 29303 - 19968: jis0212<<14 | 0x29<<7 | 0x40, - 29304 - 19968: jis0212<<14 | 0x29<<7 | 0x41, - 29305 - 19968: jis0208<<14 | 0x25<<7 | 0x22, - 29307 - 19968: jis0212<<14 | 0x29<<7 | 0x42, - 29308 - 19968: jis0212<<14 | 0x29<<7 | 0x43, - 29309 - 19968: jis0208<<14 | 0x17<<7 | 0x02, - 29310 - 19968: jis0208<<14 | 0x3F<<7 | 0x12, - 29311 - 19968: jis0212<<14 | 0x29<<7 | 0x44, - 29312 - 19968: jis0208<<14 | 0x19<<7 | 0x33, - 29313 - 19968: jis0208<<14 | 0x3F<<7 | 0x14, - 29314 - 19968: jis0208<<14 | 0x3F<<7 | 0x13, - 29316 - 19968: jis0212<<14 | 0x29<<7 | 0x45, - 29319 - 19968: jis0208<<14 | 0x3F<<7 | 0x15, - 29321 - 19968: jis0212<<14 | 0x29<<7 | 0x46, - 29325 - 19968: jis0212<<14 | 0x29<<7 | 0x47, - 29326 - 19968: jis0212<<14 | 0x29<<7 | 0x48, - 29330 - 19968: jis0208<<14 | 0x3F<<7 | 0x16, - 29331 - 19968: jis0212<<14 | 0x29<<7 | 0x49, - 29334 - 19968: jis0208<<14 | 0x3F<<7 | 0x17, - 29339 - 19968: jis0212<<14 | 0x29<<7 | 0x4A, - 29344 - 19968: jis0208<<14 | 0x14<<7 | 0x1D, - 29346 - 19968: jis0208<<14 | 0x3F<<7 | 0x18, - 29351 - 19968: jis0208<<14 | 0x3F<<7 | 0x19, - 29352 - 19968: jis0212<<14 | 0x29<<7 | 0x4B, - 29356 - 19968: jis0208<<14 | 0x17<<7 | 0x03, - 29357 - 19968: jis0212<<14 | 0x29<<7 | 0x4C, - 29358 - 19968: jis0212<<14 | 0x29<<7 | 0x4D, - 29359 - 19968: jis0208<<14 | 0x27<<7 | 0x27, - 29361 - 19968: jis0208<<14 | 0x59<<7 | 0x5D, - 29362 - 19968: jis0208<<14 | 0x3F<<7 | 0x1B, - 29364 - 19968: jis0212<<14 | 0x29<<7 | 0x4F, - 29366 - 19968: jis0208<<14 | 0x1D<<7 | 0x54, - 29369 - 19968: jis0208<<14 | 0x3F<<7 | 0x1A, - 29374 - 19968: jis0208<<14 | 0x5A<<7 | 0x00, - 29377 - 19968: jis0212<<14 | 0x29<<7 | 0x51, - 29378 - 19968: jis0208<<14 | 0x15<<7 | 0x17, - 29379 - 19968: jis0208<<14 | 0x3F<<7 | 0x1C, - 29380 - 19968: jis0208<<14 | 0x3F<<7 | 0x1E, - 29382 - 19968: jis0208<<14 | 0x3F<<7 | 0x1D, - 29383 - 19968: jis0212<<14 | 0x29<<7 | 0x52, - 29385 - 19968: jis0212<<14 | 0x29<<7 | 0x53, - 29388 - 19968: jis0212<<14 | 0x29<<7 | 0x54, - 29390 - 19968: jis0208<<14 | 0x3F<<7 | 0x1F, - 29392 - 19968: jis0208<<14 | 0x17<<7 | 0x30, - 29394 - 19968: jis0208<<14 | 0x3F<<7 | 0x20, - 29397 - 19968: jis0212<<14 | 0x29<<7 | 0x55, - 29398 - 19968: jis0212<<14 | 0x29<<7 | 0x56, - 29399 - 19968: jis0208<<14 | 0x15<<7 | 0x48, - 29400 - 19968: jis0212<<14 | 0x29<<7 | 0x57, - 29401 - 19968: jis0208<<14 | 0x20<<7 | 0x1F, - 29403 - 19968: jis0208<<14 | 0x18<<7 | 0x5C, - 29407 - 19968: jis0212<<14 | 0x29<<7 | 0x58, - 29408 - 19968: jis0208<<14 | 0x3F<<7 | 0x22, - 29409 - 19968: jis0208<<14 | 0x3F<<7 | 0x23, - 29410 - 19968: jis0208<<14 | 0x3F<<7 | 0x21, - 29413 - 19968: jis0212<<14 | 0x29<<7 | 0x59, - 29417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4C, - 29420 - 19968: jis0208<<14 | 0x25<<7 | 0x27, - 29421 - 19968: jis0208<<14 | 0x15<<7 | 0x18, - 29427 - 19968: jis0212<<14 | 0x29<<7 | 0x5A, - 29428 - 19968: jis0212<<14 | 0x29<<7 | 0x5B, - 29431 - 19968: jis0208<<14 | 0x3F<<7 | 0x25, - 29432 - 19968: jis0208<<14 | 0x22<<7 | 0x0B, - 29433 - 19968: jis0208<<14 | 0x3F<<7 | 0x24, - 29434 - 19968: jis0212<<14 | 0x29<<7 | 0x5C, - 29435 - 19968: jis0212<<14 | 0x29<<7 | 0x5D, - 29436 - 19968: jis0208<<14 | 0x2E<<7 | 0x14, - 29437 - 19968: jis0208<<14 | 0x26<<7 | 0x41, - 29438 - 19968: jis0212<<14 | 0x2A<<7 | 0x00, - 29442 - 19968: jis0212<<14 | 0x2A<<7 | 0x01, - 29444 - 19968: jis0212<<14 | 0x2A<<7 | 0x02, - 29445 - 19968: jis0212<<14 | 0x2A<<7 | 0x03, - 29447 - 19968: jis0212<<14 | 0x2A<<7 | 0x04, - 29450 - 19968: jis0208<<14 | 0x3F<<7 | 0x28, - 29451 - 19968: jis0212<<14 | 0x2A<<7 | 0x05, - 29453 - 19968: jis0212<<14 | 0x2A<<7 | 0x06, - 29458 - 19968: jis0212<<14 | 0x2A<<7 | 0x07, - 29459 - 19968: jis0212<<14 | 0x2A<<7 | 0x08, - 29462 - 19968: jis0208<<14 | 0x3F<<7 | 0x2A, - 29463 - 19968: jis0208<<14 | 0x3F<<7 | 0x27, - 29464 - 19968: jis0212<<14 | 0x2A<<7 | 0x09, - 29465 - 19968: jis0212<<14 | 0x2A<<7 | 0x0A, - 29467 - 19968: jis0208<<14 | 0x2B<<7 | 0x33, - 29468 - 19968: jis0208<<14 | 0x3F<<7 | 0x29, - 29469 - 19968: jis0208<<14 | 0x3F<<7 | 0x2B, - 29470 - 19968: jis0212<<14 | 0x2A<<7 | 0x0B, - 29471 - 19968: jis0208<<14 | 0x2D<<7 | 0x23, - 29474 - 19968: jis0212<<14 | 0x2A<<7 | 0x0C, - 29476 - 19968: jis0208<<14 | 0x5A<<7 | 0x01, - 29477 - 19968: jis0208<<14 | 0x3F<<7 | 0x2F, - 29479 - 19968: jis0212<<14 | 0x2A<<7 | 0x0E, - 29480 - 19968: jis0212<<14 | 0x2A<<7 | 0x0F, - 29481 - 19968: jis0208<<14 | 0x3F<<7 | 0x2E, - 29482 - 19968: jis0208<<14 | 0x22<<7 | 0x55, - 29483 - 19968: jis0208<<14 | 0x26<<7 | 0x0C, - 29484 - 19968: jis0212<<14 | 0x2A<<7 | 0x10, - 29486 - 19968: jis0208<<14 | 0x17<<7 | 0x04, - 29487 - 19968: jis0208<<14 | 0x3F<<7 | 0x2D, - 29489 - 19968: jis0212<<14 | 0x2A<<7 | 0x11, - 29490 - 19968: jis0212<<14 | 0x2A<<7 | 0x12, - 29492 - 19968: jis0208<<14 | 0x3F<<7 | 0x2C, - 29493 - 19968: jis0212<<14 | 0x2A<<7 | 0x13, - 29494 - 19968: jis0208<<14 | 0x2C<<7 | 0x10, - 29495 - 19968: jis0208<<14 | 0x2C<<7 | 0x11, - 29498 - 19968: jis0212<<14 | 0x2A<<7 | 0x14, - 29499 - 19968: jis0212<<14 | 0x2A<<7 | 0x15, - 29501 - 19968: jis0212<<14 | 0x2A<<7 | 0x16, - 29502 - 19968: jis0208<<14 | 0x3F<<7 | 0x30, - 29503 - 19968: jis0208<<14 | 0x10<<7 | 0x4D, - 29507 - 19968: jis0212<<14 | 0x2A<<7 | 0x17, - 29508 - 19968: jis0208<<14 | 0x18<<7 | 0x55, - 29509 - 19968: jis0208<<14 | 0x1A<<7 | 0x41, - 29517 - 19968: jis0212<<14 | 0x2A<<7 | 0x18, - 29518 - 19968: jis0208<<14 | 0x3F<<7 | 0x31, - 29519 - 19968: jis0208<<14 | 0x3F<<7 | 0x32, - 29520 - 19968: jis0212<<14 | 0x2A<<7 | 0x19, - 29522 - 19968: jis0212<<14 | 0x2A<<7 | 0x1A, - 29526 - 19968: jis0212<<14 | 0x2A<<7 | 0x1B, - 29527 - 19968: jis0208<<14 | 0x3F<<7 | 0x34, - 29528 - 19968: jis0212<<14 | 0x2A<<7 | 0x1C, - 29533 - 19968: jis0212<<14 | 0x2A<<7 | 0x1D, - 29534 - 19968: jis0212<<14 | 0x2A<<7 | 0x1E, - 29535 - 19968: jis0212<<14 | 0x2A<<7 | 0x1F, - 29536 - 19968: jis0212<<14 | 0x2A<<7 | 0x20, - 29539 - 19968: jis0208<<14 | 0x1C<<7 | 0x22, - 29542 - 19968: jis0212<<14 | 0x2A<<7 | 0x21, - 29543 - 19968: jis0212<<14 | 0x2A<<7 | 0x22, - 29544 - 19968: jis0208<<14 | 0x3F<<7 | 0x36, - 29545 - 19968: jis0212<<14 | 0x2A<<7 | 0x23, - 29546 - 19968: jis0208<<14 | 0x3F<<7 | 0x35, - 29547 - 19968: jis0212<<14 | 0x2A<<7 | 0x24, - 29548 - 19968: jis0212<<14 | 0x2A<<7 | 0x25, - 29550 - 19968: jis0212<<14 | 0x2A<<7 | 0x26, - 29551 - 19968: jis0212<<14 | 0x2A<<7 | 0x27, - 29552 - 19968: jis0208<<14 | 0x3F<<7 | 0x37, - 29553 - 19968: jis0212<<14 | 0x2A<<7 | 0x28, - 29554 - 19968: jis0208<<14 | 0x12<<7 | 0x2C, - 29557 - 19968: jis0208<<14 | 0x3F<<7 | 0x39, - 29559 - 19968: jis0208<<14 | 0x5A<<7 | 0x03, - 29560 - 19968: jis0208<<14 | 0x3F<<7 | 0x38, - 29561 - 19968: jis0212<<14 | 0x2A<<7 | 0x2A, - 29562 - 19968: jis0208<<14 | 0x3F<<7 | 0x3B, - 29563 - 19968: jis0208<<14 | 0x3F<<7 | 0x3A, - 29564 - 19968: jis0212<<14 | 0x2A<<7 | 0x2B, - 29568 - 19968: jis0212<<14 | 0x2A<<7 | 0x2C, - 29569 - 19968: jis0212<<14 | 0x2A<<7 | 0x2D, - 29571 - 19968: jis0212<<14 | 0x2A<<7 | 0x2E, - 29572 - 19968: jis0208<<14 | 0x17<<7 | 0x1B, - 29573 - 19968: jis0212<<14 | 0x2A<<7 | 0x2F, - 29574 - 19968: jis0212<<14 | 0x2A<<7 | 0x30, - 29575 - 19968: jis0208<<14 | 0x2D<<7 | 0x07, - 29577 - 19968: jis0208<<14 | 0x15<<7 | 0x2B, - 29579 - 19968: jis0208<<14 | 0x11<<7 | 0x05, - 29582 - 19968: jis0212<<14 | 0x2A<<7 | 0x31, - 29584 - 19968: jis0212<<14 | 0x2A<<7 | 0x32, - 29587 - 19968: jis0212<<14 | 0x2A<<7 | 0x33, - 29589 - 19968: jis0212<<14 | 0x2A<<7 | 0x34, - 29590 - 19968: jis0208<<14 | 0x15<<7 | 0x49, - 29591 - 19968: jis0212<<14 | 0x2A<<7 | 0x35, - 29592 - 19968: jis0212<<14 | 0x2A<<7 | 0x36, - 29596 - 19968: jis0212<<14 | 0x2A<<7 | 0x37, - 29598 - 19968: jis0212<<14 | 0x2A<<7 | 0x38, - 29599 - 19968: jis0212<<14 | 0x2A<<7 | 0x39, - 29600 - 19968: jis0212<<14 | 0x2A<<7 | 0x3A, - 29602 - 19968: jis0212<<14 | 0x2A<<7 | 0x3B, - 29605 - 19968: jis0212<<14 | 0x2A<<7 | 0x3C, - 29606 - 19968: jis0212<<14 | 0x2A<<7 | 0x3D, - 29609 - 19968: jis0208<<14 | 0x13<<7 | 0x40, - 29610 - 19968: jis0212<<14 | 0x2A<<7 | 0x3E, - 29611 - 19968: jis0212<<14 | 0x2A<<7 | 0x3F, - 29613 - 19968: jis0212<<14 | 0x2A<<7 | 0x40, - 29618 - 19968: jis0208<<14 | 0x2D<<7 | 0x47, - 29619 - 19968: jis0208<<14 | 0x3F<<7 | 0x3D, - 29621 - 19968: jis0212<<14 | 0x2A<<7 | 0x41, - 29623 - 19968: jis0212<<14 | 0x2A<<7 | 0x42, - 29625 - 19968: jis0212<<14 | 0x2A<<7 | 0x43, - 29627 - 19968: jis0208<<14 | 0x3F<<7 | 0x3F, - 29628 - 19968: jis0212<<14 | 0x2A<<7 | 0x44, - 29629 - 19968: jis0208<<14 | 0x5A<<7 | 0x04, - 29631 - 19968: jis0212<<14 | 0x2A<<7 | 0x46, - 29632 - 19968: jis0208<<14 | 0x3F<<7 | 0x40, - 29634 - 19968: jis0208<<14 | 0x11<<7 | 0x30, - 29637 - 19968: jis0212<<14 | 0x2A<<7 | 0x47, - 29638 - 19968: jis0212<<14 | 0x2A<<7 | 0x48, - 29640 - 19968: jis0208<<14 | 0x3F<<7 | 0x3C, - 29641 - 19968: jis0208<<14 | 0x5A<<7 | 0x05, - 29642 - 19968: jis0208<<14 | 0x1A<<7 | 0x18, - 29643 - 19968: jis0212<<14 | 0x2A<<7 | 0x4A, - 29644 - 19968: jis0212<<14 | 0x2A<<7 | 0x4B, - 29645 - 19968: jis0208<<14 | 0x23<<7 | 0x20, - 29646 - 19968: jis0208<<14 | 0x3F<<7 | 0x3E, - 29647 - 19968: jis0212<<14 | 0x2A<<7 | 0x4C, - 29650 - 19968: jis0208<<14 | 0x5A<<7 | 0x08, - 29651 - 19968: jis0212<<14 | 0x2A<<7 | 0x4E, - 29654 - 19968: jis0208<<14 | 0x5A<<7 | 0x06, - 29657 - 19968: jis0212<<14 | 0x2A<<7 | 0x50, - 29661 - 19968: jis0212<<14 | 0x2A<<7 | 0x51, - 29662 - 19968: jis0208<<14 | 0x3F<<7 | 0x43, - 29664 - 19968: jis0208<<14 | 0x1B<<7 | 0x4D, - 29665 - 19968: jis0212<<14 | 0x2A<<7 | 0x52, - 29667 - 19968: jis0208<<14 | 0x5A<<7 | 0x07, - 29669 - 19968: jis0208<<14 | 0x3F<<7 | 0x41, - 29670 - 19968: jis0212<<14 | 0x2A<<7 | 0x54, - 29671 - 19968: jis0212<<14 | 0x2A<<7 | 0x55, - 29673 - 19968: jis0212<<14 | 0x2A<<7 | 0x56, - 29674 - 19968: jis0208<<14 | 0x16<<7 | 0x1D, - 29677 - 19968: jis0208<<14 | 0x27<<7 | 0x28, - 29678 - 19968: jis0208<<14 | 0x3F<<7 | 0x42, - 29681 - 19968: jis0208<<14 | 0x3F<<7 | 0x5D, - 29684 - 19968: jis0212<<14 | 0x2A<<7 | 0x57, - 29685 - 19968: jis0208<<14 | 0x5A<<7 | 0x0A, - 29687 - 19968: jis0212<<14 | 0x2A<<7 | 0x59, - 29688 - 19968: jis0208<<14 | 0x3F<<7 | 0x48, - 29689 - 19968: jis0212<<14 | 0x2A<<7 | 0x5A, - 29690 - 19968: jis0212<<14 | 0x2A<<7 | 0x5B, - 29691 - 19968: jis0212<<14 | 0x2A<<7 | 0x5C, - 29693 - 19968: jis0212<<14 | 0x2A<<7 | 0x5D, - 29694 - 19968: jis0208<<14 | 0x17<<7 | 0x1C, - 29695 - 19968: jis0212<<14 | 0x2B<<7 | 0x00, - 29696 - 19968: jis0212<<14 | 0x2B<<7 | 0x01, - 29697 - 19968: jis0212<<14 | 0x2B<<7 | 0x02, - 29699 - 19968: jis0208<<14 | 0x14<<7 | 0x44, - 29700 - 19968: jis0212<<14 | 0x2B<<7 | 0x03, - 29701 - 19968: jis0208<<14 | 0x3F<<7 | 0x45, - 29702 - 19968: jis0208<<14 | 0x2C<<7 | 0x5C, - 29703 - 19968: jis0208<<14 | 0x5A<<7 | 0x09, - 29705 - 19968: jis0208<<14 | 0x2D<<7 | 0x0F, - 29706 - 19968: jis0212<<14 | 0x2B<<7 | 0x05, - 29713 - 19968: jis0212<<14 | 0x2B<<7 | 0x06, - 29722 - 19968: jis0212<<14 | 0x2B<<7 | 0x07, - 29723 - 19968: jis0212<<14 | 0x2B<<7 | 0x08, - 29730 - 19968: jis0208<<14 | 0x21<<7 | 0x55, - 29732 - 19968: jis0212<<14 | 0x2B<<7 | 0x09, - 29733 - 19968: jis0208<<14 | 0x3F<<7 | 0x47, - 29734 - 19968: jis0208<<14 | 0x5A<<7 | 0x0B, - 29736 - 19968: jis0212<<14 | 0x2B<<7 | 0x0B, - 29737 - 19968: jis0208<<14 | 0x5A<<7 | 0x0D, - 29738 - 19968: jis0208<<14 | 0x5A<<7 | 0x0C, - 29739 - 19968: jis0212<<14 | 0x2B<<7 | 0x0E, - 29740 - 19968: jis0212<<14 | 0x2B<<7 | 0x0F, - 29741 - 19968: jis0212<<14 | 0x2B<<7 | 0x10, - 29742 - 19968: jis0208<<14 | 0x5A<<7 | 0x0E, - 29743 - 19968: jis0212<<14 | 0x2B<<7 | 0x12, - 29744 - 19968: jis0212<<14 | 0x2B<<7 | 0x13, - 29745 - 19968: jis0212<<14 | 0x2B<<7 | 0x14, - 29746 - 19968: jis0208<<14 | 0x3F<<7 | 0x49, - 29747 - 19968: jis0208<<14 | 0x2D<<7 | 0x35, - 29748 - 19968: jis0208<<14 | 0x15<<7 | 0x36, - 29749 - 19968: jis0208<<14 | 0x27<<7 | 0x5B, - 29750 - 19968: jis0208<<14 | 0x26<<7 | 0x29, - 29753 - 19968: jis0212<<14 | 0x2B<<7 | 0x15, - 29754 - 19968: jis0208<<14 | 0x3F<<7 | 0x4A, - 29759 - 19968: jis0208<<14 | 0x3F<<7 | 0x4C, - 29760 - 19968: jis0212<<14 | 0x2B<<7 | 0x16, - 29761 - 19968: jis0208<<14 | 0x3F<<7 | 0x4F, - 29763 - 19968: jis0212<<14 | 0x2B<<7 | 0x17, - 29764 - 19968: jis0212<<14 | 0x2B<<7 | 0x18, - 29766 - 19968: jis0212<<14 | 0x2B<<7 | 0x19, - 29767 - 19968: jis0212<<14 | 0x2B<<7 | 0x1A, - 29771 - 19968: jis0212<<14 | 0x2B<<7 | 0x1B, - 29773 - 19968: jis0212<<14 | 0x2B<<7 | 0x1C, - 29777 - 19968: jis0212<<14 | 0x2B<<7 | 0x1D, - 29778 - 19968: jis0212<<14 | 0x2B<<7 | 0x1E, - 29781 - 19968: jis0208<<14 | 0x3F<<7 | 0x4B, - 29783 - 19968: jis0212<<14 | 0x2B<<7 | 0x1F, - 29785 - 19968: jis0208<<14 | 0x3F<<7 | 0x4E, - 29786 - 19968: jis0208<<14 | 0x17<<7 | 0x49, - 29787 - 19968: jis0208<<14 | 0x10<<7 | 0x2C, - 29788 - 19968: jis0208<<14 | 0x3F<<7 | 0x50, - 29789 - 19968: jis0212<<14 | 0x2B<<7 | 0x20, - 29790 - 19968: jis0208<<14 | 0x1E<<7 | 0x4F, - 29791 - 19968: jis0208<<14 | 0x3F<<7 | 0x4D, - 29792 - 19968: jis0208<<14 | 0x2D<<7 | 0x3B, - 29794 - 19968: jis0208<<14 | 0x5A<<7 | 0x0F, - 29795 - 19968: jis0208<<14 | 0x3F<<7 | 0x53, - 29796 - 19968: jis0208<<14 | 0x53<<7 | 0x03, - 29798 - 19968: jis0212<<14 | 0x2B<<7 | 0x22, - 29799 - 19968: jis0212<<14 | 0x2B<<7 | 0x23, - 29800 - 19968: jis0212<<14 | 0x2B<<7 | 0x24, - 29801 - 19968: jis0208<<14 | 0x3F<<7 | 0x51, - 29802 - 19968: jis0208<<14 | 0x3F<<7 | 0x54, - 29803 - 19968: jis0212<<14 | 0x2B<<7 | 0x25, - 29805 - 19968: jis0212<<14 | 0x2B<<7 | 0x26, - 29806 - 19968: jis0212<<14 | 0x2B<<7 | 0x27, - 29807 - 19968: jis0208<<14 | 0x3F<<7 | 0x46, - 29808 - 19968: jis0208<<14 | 0x3F<<7 | 0x52, - 29809 - 19968: jis0212<<14 | 0x2B<<7 | 0x28, - 29810 - 19968: jis0212<<14 | 0x2B<<7 | 0x29, - 29811 - 19968: jis0208<<14 | 0x19<<7 | 0x1B, - 29814 - 19968: jis0208<<14 | 0x3F<<7 | 0x55, - 29822 - 19968: jis0208<<14 | 0x3F<<7 | 0x56, - 29824 - 19968: jis0212<<14 | 0x2B<<7 | 0x2A, - 29825 - 19968: jis0212<<14 | 0x2B<<7 | 0x2B, - 29827 - 19968: jis0208<<14 | 0x2C<<7 | 0x5D, - 29829 - 19968: jis0212<<14 | 0x2B<<7 | 0x2C, - 29830 - 19968: jis0212<<14 | 0x2B<<7 | 0x2D, - 29831 - 19968: jis0212<<14 | 0x2B<<7 | 0x2E, - 29833 - 19968: jis0208<<14 | 0x5A<<7 | 0x10, - 29835 - 19968: jis0208<<14 | 0x3F<<7 | 0x57, - 29839 - 19968: jis0212<<14 | 0x2B<<7 | 0x30, - 29840 - 19968: jis0212<<14 | 0x2B<<7 | 0x31, - 29841 - 19968: jis0212<<14 | 0x2B<<7 | 0x32, - 29842 - 19968: jis0212<<14 | 0x2B<<7 | 0x33, - 29848 - 19968: jis0212<<14 | 0x2B<<7 | 0x34, - 29849 - 19968: jis0212<<14 | 0x2B<<7 | 0x35, - 29850 - 19968: jis0212<<14 | 0x2B<<7 | 0x36, - 29852 - 19968: jis0212<<14 | 0x2B<<7 | 0x37, - 29854 - 19968: jis0208<<14 | 0x3F<<7 | 0x58, - 29855 - 19968: jis0208<<14 | 0x5A<<7 | 0x11, - 29856 - 19968: jis0212<<14 | 0x2B<<7 | 0x39, - 29857 - 19968: jis0212<<14 | 0x2B<<7 | 0x3A, - 29858 - 19968: jis0208<<14 | 0x3F<<7 | 0x44, - 29859 - 19968: jis0212<<14 | 0x2B<<7 | 0x3B, - 29862 - 19968: jis0212<<14 | 0x2B<<7 | 0x3C, - 29863 - 19968: jis0208<<14 | 0x3F<<7 | 0x59, - 29864 - 19968: jis0212<<14 | 0x2B<<7 | 0x3D, - 29865 - 19968: jis0212<<14 | 0x2B<<7 | 0x3E, - 29866 - 19968: jis0212<<14 | 0x2B<<7 | 0x3F, - 29867 - 19968: jis0212<<14 | 0x2B<<7 | 0x40, - 29870 - 19968: jis0212<<14 | 0x2B<<7 | 0x41, - 29871 - 19968: jis0212<<14 | 0x2B<<7 | 0x42, - 29872 - 19968: jis0208<<14 | 0x13<<7 | 0x23, - 29873 - 19968: jis0212<<14 | 0x2B<<7 | 0x43, - 29874 - 19968: jis0212<<14 | 0x2B<<7 | 0x44, - 29877 - 19968: jis0212<<14 | 0x2B<<7 | 0x45, - 29881 - 19968: jis0212<<14 | 0x2B<<7 | 0x46, - 29883 - 19968: jis0212<<14 | 0x2B<<7 | 0x47, - 29885 - 19968: jis0208<<14 | 0x1B<<7 | 0x04, - 29887 - 19968: jis0212<<14 | 0x2B<<7 | 0x48, - 29896 - 19968: jis0212<<14 | 0x2B<<7 | 0x49, - 29897 - 19968: jis0212<<14 | 0x2B<<7 | 0x4A, - 29898 - 19968: jis0208<<14 | 0x3F<<7 | 0x5A, - 29900 - 19968: jis0212<<14 | 0x2B<<7 | 0x4B, - 29903 - 19968: jis0208<<14 | 0x3F<<7 | 0x5B, - 29904 - 19968: jis0212<<14 | 0x2B<<7 | 0x4C, - 29907 - 19968: jis0212<<14 | 0x2B<<7 | 0x4D, - 29908 - 19968: jis0208<<14 | 0x3F<<7 | 0x5C, - 29912 - 19968: jis0212<<14 | 0x2B<<7 | 0x4E, - 29914 - 19968: jis0212<<14 | 0x2B<<7 | 0x4F, - 29915 - 19968: jis0212<<14 | 0x2B<<7 | 0x50, - 29916 - 19968: jis0208<<14 | 0x10<<7 | 0x1A, - 29918 - 19968: jis0212<<14 | 0x2B<<7 | 0x51, - 29919 - 19968: jis0212<<14 | 0x2B<<7 | 0x52, - 29920 - 19968: jis0208<<14 | 0x40<<7 | 0x00, - 29922 - 19968: jis0208<<14 | 0x28<<7 | 0x1A, - 29923 - 19968: jis0208<<14 | 0x40<<7 | 0x01, - 29924 - 19968: jis0212<<14 | 0x2B<<7 | 0x53, - 29926 - 19968: jis0208<<14 | 0x13<<7 | 0x03, - 29927 - 19968: jis0208<<14 | 0x40<<7 | 0x02, - 29928 - 19968: jis0212<<14 | 0x2B<<7 | 0x54, - 29929 - 19968: jis0208<<14 | 0x40<<7 | 0x03, - 29930 - 19968: jis0212<<14 | 0x2B<<7 | 0x55, - 29931 - 19968: jis0212<<14 | 0x2B<<7 | 0x56, - 29934 - 19968: jis0208<<14 | 0x40<<7 | 0x04, - 29935 - 19968: jis0212<<14 | 0x2B<<7 | 0x57, - 29936 - 19968: jis0208<<14 | 0x40<<7 | 0x06, - 29937 - 19968: jis0208<<14 | 0x40<<7 | 0x07, - 29938 - 19968: jis0208<<14 | 0x40<<7 | 0x05, - 29940 - 19968: jis0212<<14 | 0x2B<<7 | 0x58, - 29942 - 19968: jis0208<<14 | 0x28<<7 | 0x32, - 29943 - 19968: jis0208<<14 | 0x40<<7 | 0x09, - 29944 - 19968: jis0208<<14 | 0x40<<7 | 0x08, - 29946 - 19968: jis0212<<14 | 0x2B<<7 | 0x59, - 29947 - 19968: jis0212<<14 | 0x2B<<7 | 0x5A, - 29948 - 19968: jis0212<<14 | 0x2B<<7 | 0x5B, - 29951 - 19968: jis0212<<14 | 0x2B<<7 | 0x5C, - 29953 - 19968: jis0208<<14 | 0x5A<<7 | 0x12, - 29955 - 19968: jis0208<<14 | 0x40<<7 | 0x0B, - 29956 - 19968: jis0208<<14 | 0x40<<7 | 0x0A, - 29957 - 19968: jis0208<<14 | 0x40<<7 | 0x0C, - 29958 - 19968: jis0212<<14 | 0x2B<<7 | 0x5D, - 29964 - 19968: jis0208<<14 | 0x40<<7 | 0x0D, - 29965 - 19968: jis0208<<14 | 0x40<<7 | 0x0F, - 29966 - 19968: jis0208<<14 | 0x40<<7 | 0x0E, - 29969 - 19968: jis0208<<14 | 0x18<<7 | 0x58, - 29970 - 19968: jis0212<<14 | 0x2C<<7 | 0x00, - 29971 - 19968: jis0208<<14 | 0x40<<7 | 0x11, - 29973 - 19968: jis0208<<14 | 0x40<<7 | 0x10, - 29974 - 19968: jis0212<<14 | 0x2C<<7 | 0x01, - 29975 - 19968: jis0212<<14 | 0x2C<<7 | 0x02, - 29976 - 19968: jis0208<<14 | 0x13<<7 | 0x24, - 29978 - 19968: jis0208<<14 | 0x1E<<7 | 0x32, - 29980 - 19968: jis0208<<14 | 0x24<<7 | 0x1B, - 29982 - 19968: jis0208<<14 | 0x40<<7 | 0x12, - 29983 - 19968: jis0208<<14 | 0x1F<<7 | 0x17, - 29984 - 19968: jis0212<<14 | 0x2C<<7 | 0x03, - 29985 - 19968: jis0212<<14 | 0x2C<<7 | 0x04, - 29987 - 19968: jis0208<<14 | 0x1A<<7 | 0x19, - 29988 - 19968: jis0212<<14 | 0x2C<<7 | 0x05, - 29989 - 19968: jis0208<<14 | 0x10<<7 | 0x58, - 29990 - 19968: jis0208<<14 | 0x40<<7 | 0x13, - 29991 - 19968: jis0212<<14 | 0x2C<<7 | 0x06, - 29992 - 19968: jis0208<<14 | 0x2C<<7 | 0x30, - 29993 - 19968: jis0212<<14 | 0x2C<<7 | 0x07, - 29994 - 19968: jis0212<<14 | 0x2C<<7 | 0x08, - 29995 - 19968: jis0208<<14 | 0x29<<7 | 0x42, - 29996 - 19968: jis0208<<14 | 0x40<<7 | 0x14, - 29999 - 19968: jis0208<<14 | 0x58<<7 | 0x4B, - 30000 - 19968: jis0208<<14 | 0x24<<7 | 0x23, - 30001 - 19968: jis0208<<14 | 0x2C<<7 | 0x12, - 30002 - 19968: jis0208<<14 | 0x18<<7 | 0x22, - 30003 - 19968: jis0208<<14 | 0x1E<<7 | 0x1C, - 30006 - 19968: jis0212<<14 | 0x2C<<7 | 0x0A, - 30007 - 19968: jis0208<<14 | 0x22<<7 | 0x2A, - 30008 - 19968: jis0208<<14 | 0x31<<7 | 0x13, - 30009 - 19968: jis0212<<14 | 0x2C<<7 | 0x0B, - 30010 - 19968: jis0208<<14 | 0x23<<7 | 0x0D, - 30011 - 19968: jis0208<<14 | 0x11<<7 | 0x47, - 30012 - 19968: jis0208<<14 | 0x40<<7 | 0x15, - 30013 - 19968: jis0212<<14 | 0x2C<<7 | 0x0C, - 30014 - 19968: jis0212<<14 | 0x2C<<7 | 0x0D, - 30015 - 19968: jis0212<<14 | 0x2C<<7 | 0x0E, - 30016 - 19968: jis0212<<14 | 0x2C<<7 | 0x0F, - 30019 - 19968: jis0212<<14 | 0x2C<<7 | 0x10, - 30020 - 19968: jis0208<<14 | 0x40<<7 | 0x16, - 30022 - 19968: jis0208<<14 | 0x40<<7 | 0x1B, - 30023 - 19968: jis0212<<14 | 0x2C<<7 | 0x11, - 30024 - 19968: jis0212<<14 | 0x2C<<7 | 0x12, - 30025 - 19968: jis0208<<14 | 0x40<<7 | 0x19, - 30026 - 19968: jis0208<<14 | 0x40<<7 | 0x18, - 30027 - 19968: jis0208<<14 | 0x39<<7 | 0x21, - 30028 - 19968: jis0208<<14 | 0x12<<7 | 0x05, - 30029 - 19968: jis0208<<14 | 0x40<<7 | 0x17, - 30030 - 19968: jis0212<<14 | 0x2C<<7 | 0x13, - 30031 - 19968: jis0208<<14 | 0x0F<<7 | 0x39, - 30032 - 19968: jis0212<<14 | 0x2C<<7 | 0x14, - 30033 - 19968: jis0208<<14 | 0x27<<7 | 0x09, - 30034 - 19968: jis0212<<14 | 0x2C<<7 | 0x15, - 30036 - 19968: jis0208<<14 | 0x27<<7 | 0x29, - 30039 - 19968: jis0212<<14 | 0x2C<<7 | 0x16, - 30041 - 19968: jis0208<<14 | 0x2D<<7 | 0x10, - 30042 - 19968: jis0208<<14 | 0x40<<7 | 0x1C, - 30043 - 19968: jis0208<<14 | 0x40<<7 | 0x1A, - 30044 - 19968: jis0208<<14 | 0x22<<7 | 0x3B, - 30045 - 19968: jis0208<<14 | 0x1F<<7 | 0x05, - 30046 - 19968: jis0212<<14 | 0x2C<<7 | 0x17, - 30047 - 19968: jis0212<<14 | 0x2C<<7 | 0x18, - 30048 - 19968: jis0208<<14 | 0x27<<7 | 0x0A, - 30049 - 19968: jis0212<<14 | 0x2C<<7 | 0x19, - 30050 - 19968: jis0208<<14 | 0x28<<7 | 0x0C, - 30052 - 19968: jis0208<<14 | 0x40<<7 | 0x1E, - 30053 - 19968: jis0208<<14 | 0x2D<<7 | 0x0B, - 30054 - 19968: jis0208<<14 | 0x16<<7 | 0x2C, - 30055 - 19968: jis0208<<14 | 0x40<<7 | 0x1F, - 30057 - 19968: jis0208<<14 | 0x40<<7 | 0x1D, - 30058 - 19968: jis0208<<14 | 0x27<<7 | 0x35, - 30059 - 19968: jis0208<<14 | 0x40<<7 | 0x20, - 30061 - 19968: jis0208<<14 | 0x40<<7 | 0x21, - 30063 - 19968: jis0208<<14 | 0x5A<<7 | 0x13, - 30064 - 19968: jis0208<<14 | 0x0F<<7 | 0x3A, - 30065 - 19968: jis0212<<14 | 0x2C<<7 | 0x1B, - 30067 - 19968: jis0208<<14 | 0x1D<<7 | 0x55, - 30068 - 19968: jis0208<<14 | 0x40<<7 | 0x26, - 30070 - 19968: jis0208<<14 | 0x40<<7 | 0x23, - 30071 - 19968: jis0208<<14 | 0x25<<7 | 0x4C, - 30072 - 19968: jis0208<<14 | 0x40<<7 | 0x22, - 30073 - 19968: jis0212<<14 | 0x2C<<7 | 0x1C, - 30074 - 19968: jis0212<<14 | 0x2C<<7 | 0x1D, - 30075 - 19968: jis0212<<14 | 0x2C<<7 | 0x1E, - 30076 - 19968: jis0212<<14 | 0x2C<<7 | 0x1F, - 30077 - 19968: jis0212<<14 | 0x2C<<7 | 0x20, - 30078 - 19968: jis0212<<14 | 0x2C<<7 | 0x21, - 30079 - 19968: jis0208<<14 | 0x14<<7 | 0x05, - 30081 - 19968: jis0212<<14 | 0x2C<<7 | 0x22, - 30082 - 19968: jis0208<<14 | 0x40<<7 | 0x29, - 30085 - 19968: jis0212<<14 | 0x2C<<7 | 0x23, - 30086 - 19968: jis0208<<14 | 0x40<<7 | 0x24, - 30087 - 19968: jis0208<<14 | 0x40<<7 | 0x25, - 30089 - 19968: jis0208<<14 | 0x40<<7 | 0x28, - 30090 - 19968: jis0208<<14 | 0x40<<7 | 0x27, - 30091 - 19968: jis0208<<14 | 0x28<<7 | 0x04, - 30094 - 19968: jis0208<<14 | 0x20<<7 | 0x21, - 30095 - 19968: jis0208<<14 | 0x20<<7 | 0x20, - 30096 - 19968: jis0212<<14 | 0x2C<<7 | 0x24, - 30097 - 19968: jis0208<<14 | 0x14<<7 | 0x1E, - 30098 - 19968: jis0212<<14 | 0x2C<<7 | 0x25, - 30099 - 19968: jis0212<<14 | 0x2C<<7 | 0x26, - 30100 - 19968: jis0208<<14 | 0x40<<7 | 0x2A, - 30101 - 19968: jis0212<<14 | 0x2C<<7 | 0x27, - 30105 - 19968: jis0212<<14 | 0x2C<<7 | 0x28, - 30106 - 19968: jis0208<<14 | 0x40<<7 | 0x2B, - 30108 - 19968: jis0212<<14 | 0x2C<<7 | 0x29, - 30109 - 19968: jis0208<<14 | 0x40<<7 | 0x2C, - 30114 - 19968: jis0212<<14 | 0x2C<<7 | 0x2A, - 30115 - 19968: jis0208<<14 | 0x40<<7 | 0x2E, - 30116 - 19968: jis0212<<14 | 0x2C<<7 | 0x2B, - 30117 - 19968: jis0208<<14 | 0x40<<7 | 0x2D, - 30123 - 19968: jis0208<<14 | 0x10<<7 | 0x35, - 30129 - 19968: jis0208<<14 | 0x40<<7 | 0x36, - 30130 - 19968: jis0208<<14 | 0x27<<7 | 0x47, - 30131 - 19968: jis0208<<14 | 0x40<<7 | 0x30, - 30132 - 19968: jis0212<<14 | 0x2C<<7 | 0x2C, - 30133 - 19968: jis0208<<14 | 0x40<<7 | 0x32, - 30136 - 19968: jis0208<<14 | 0x40<<7 | 0x34, - 30137 - 19968: jis0208<<14 | 0x1E<<7 | 0x1D, - 30138 - 19968: jis0212<<14 | 0x2C<<7 | 0x2D, - 30140 - 19968: jis0208<<14 | 0x40<<7 | 0x35, - 30141 - 19968: jis0208<<14 | 0x40<<7 | 0x33, - 30142 - 19968: jis0208<<14 | 0x1B<<7 | 0x1F, - 30143 - 19968: jis0212<<14 | 0x2C<<7 | 0x2E, - 30144 - 19968: jis0212<<14 | 0x2C<<7 | 0x2F, - 30145 - 19968: jis0212<<14 | 0x2C<<7 | 0x30, - 30146 - 19968: jis0208<<14 | 0x40<<7 | 0x2F, - 30147 - 19968: jis0208<<14 | 0x40<<7 | 0x31, - 30148 - 19968: jis0212<<14 | 0x2C<<7 | 0x31, - 30149 - 19968: jis0208<<14 | 0x28<<7 | 0x21, - 30150 - 19968: jis0212<<14 | 0x2C<<7 | 0x32, - 30151 - 19968: jis0208<<14 | 0x1D<<7 | 0x28, - 30154 - 19968: jis0208<<14 | 0x40<<7 | 0x38, - 30156 - 19968: jis0212<<14 | 0x2C<<7 | 0x33, - 30157 - 19968: jis0208<<14 | 0x40<<7 | 0x37, - 30158 - 19968: jis0212<<14 | 0x2C<<7 | 0x34, - 30159 - 19968: jis0212<<14 | 0x2C<<7 | 0x35, - 30162 - 19968: jis0208<<14 | 0x40<<7 | 0x39, - 30164 - 19968: jis0208<<14 | 0x1B<<7 | 0x05, - 30165 - 19968: jis0208<<14 | 0x19<<7 | 0x0E, - 30167 - 19968: jis0212<<14 | 0x2C<<7 | 0x36, - 30168 - 19968: jis0208<<14 | 0x24<<7 | 0x56, - 30169 - 19968: jis0208<<14 | 0x40<<7 | 0x3A, - 30171 - 19968: jis0208<<14 | 0x23<<7 | 0x2A, - 30172 - 19968: jis0212<<14 | 0x2C<<7 | 0x37, - 30174 - 19968: jis0208<<14 | 0x40<<7 | 0x3C, - 30175 - 19968: jis0212<<14 | 0x2C<<7 | 0x38, - 30176 - 19968: jis0212<<14 | 0x2C<<7 | 0x39, - 30177 - 19968: jis0212<<14 | 0x2C<<7 | 0x3A, - 30178 - 19968: jis0208<<14 | 0x2D<<7 | 0x00, - 30179 - 19968: jis0208<<14 | 0x40<<7 | 0x3B, - 30180 - 19968: jis0212<<14 | 0x2C<<7 | 0x3B, - 30183 - 19968: jis0212<<14 | 0x2C<<7 | 0x3C, - 30185 - 19968: jis0208<<14 | 0x20<<7 | 0x48, - 30188 - 19968: jis0212<<14 | 0x2C<<7 | 0x3D, - 30190 - 19968: jis0212<<14 | 0x2C<<7 | 0x3E, - 30191 - 19968: jis0212<<14 | 0x2C<<7 | 0x3F, - 30192 - 19968: jis0208<<14 | 0x40<<7 | 0x41, - 30193 - 19968: jis0212<<14 | 0x2C<<7 | 0x40, - 30194 - 19968: jis0208<<14 | 0x40<<7 | 0x43, - 30195 - 19968: jis0208<<14 | 0x40<<7 | 0x44, - 30196 - 19968: jis0208<<14 | 0x22<<7 | 0x33, - 30201 - 19968: jis0212<<14 | 0x2C<<7 | 0x41, - 30202 - 19968: jis0208<<14 | 0x40<<7 | 0x42, - 30204 - 19968: jis0208<<14 | 0x40<<7 | 0x3F, - 30206 - 19968: jis0208<<14 | 0x40<<7 | 0x3D, - 30207 - 19968: jis0208<<14 | 0x40<<7 | 0x3E, - 30208 - 19968: jis0212<<14 | 0x2C<<7 | 0x42, - 30209 - 19968: jis0208<<14 | 0x40<<7 | 0x40, - 30210 - 19968: jis0212<<14 | 0x2C<<7 | 0x43, - 30211 - 19968: jis0212<<14 | 0x2C<<7 | 0x44, - 30212 - 19968: jis0212<<14 | 0x2C<<7 | 0x45, - 30215 - 19968: jis0212<<14 | 0x2C<<7 | 0x46, - 30216 - 19968: jis0212<<14 | 0x2C<<7 | 0x47, - 30217 - 19968: jis0208<<14 | 0x40<<7 | 0x47, - 30218 - 19968: jis0212<<14 | 0x2C<<7 | 0x48, - 30219 - 19968: jis0208<<14 | 0x40<<7 | 0x45, - 30220 - 19968: jis0212<<14 | 0x2C<<7 | 0x49, - 30221 - 19968: jis0208<<14 | 0x40<<7 | 0x46, - 30223 - 19968: jis0212<<14 | 0x2C<<7 | 0x4A, - 30226 - 19968: jis0212<<14 | 0x2C<<7 | 0x4B, - 30227 - 19968: jis0212<<14 | 0x2C<<7 | 0x4C, - 30229 - 19968: jis0212<<14 | 0x2C<<7 | 0x4D, - 30230 - 19968: jis0212<<14 | 0x2C<<7 | 0x4E, - 30233 - 19968: jis0212<<14 | 0x2C<<7 | 0x4F, - 30235 - 19968: jis0212<<14 | 0x2C<<7 | 0x50, - 30236 - 19968: jis0212<<14 | 0x2C<<7 | 0x51, - 30237 - 19968: jis0212<<14 | 0x2C<<7 | 0x52, - 30238 - 19968: jis0212<<14 | 0x2C<<7 | 0x53, - 30239 - 19968: jis0208<<14 | 0x40<<7 | 0x48, - 30240 - 19968: jis0208<<14 | 0x40<<7 | 0x4A, - 30241 - 19968: jis0208<<14 | 0x40<<7 | 0x4B, - 30242 - 19968: jis0208<<14 | 0x40<<7 | 0x4C, - 30243 - 19968: jis0212<<14 | 0x2C<<7 | 0x54, - 30244 - 19968: jis0208<<14 | 0x40<<7 | 0x4D, - 30245 - 19968: jis0212<<14 | 0x2C<<7 | 0x55, - 30246 - 19968: jis0212<<14 | 0x2C<<7 | 0x56, - 30247 - 19968: jis0208<<14 | 0x40<<7 | 0x49, - 30249 - 19968: jis0212<<14 | 0x2C<<7 | 0x57, - 30253 - 19968: jis0212<<14 | 0x2C<<7 | 0x58, - 30256 - 19968: jis0208<<14 | 0x40<<7 | 0x4F, - 30258 - 19968: jis0212<<14 | 0x2C<<7 | 0x59, - 30259 - 19968: jis0212<<14 | 0x2C<<7 | 0x5A, - 30260 - 19968: jis0208<<14 | 0x40<<7 | 0x4E, - 30261 - 19968: jis0212<<14 | 0x2C<<7 | 0x5B, - 30264 - 19968: jis0212<<14 | 0x2C<<7 | 0x5C, - 30265 - 19968: jis0212<<14 | 0x2C<<7 | 0x5D, - 30266 - 19968: jis0212<<14 | 0x2D<<7 | 0x00, - 30267 - 19968: jis0208<<14 | 0x40<<7 | 0x50, - 30268 - 19968: jis0212<<14 | 0x2D<<7 | 0x01, - 30272 - 19968: jis0212<<14 | 0x2D<<7 | 0x03, - 30273 - 19968: jis0212<<14 | 0x2D<<7 | 0x04, - 30274 - 19968: jis0208<<14 | 0x2D<<7 | 0x24, - 30275 - 19968: jis0212<<14 | 0x2D<<7 | 0x05, - 30276 - 19968: jis0212<<14 | 0x2D<<7 | 0x06, - 30277 - 19968: jis0212<<14 | 0x2D<<7 | 0x07, - 30278 - 19968: jis0208<<14 | 0x40<<7 | 0x53, - 30279 - 19968: jis0208<<14 | 0x40<<7 | 0x51, - 30280 - 19968: jis0208<<14 | 0x40<<7 | 0x52, - 30281 - 19968: jis0212<<14 | 0x2D<<7 | 0x08, - 30282 - 19968: jis0212<<14 | 0x2D<<7 | 0x02, - 30283 - 19968: jis0212<<14 | 0x2D<<7 | 0x09, - 30284 - 19968: jis0208<<14 | 0x13<<7 | 0x41, - 30290 - 19968: jis0208<<14 | 0x2B<<7 | 0x5D, - 30293 - 19968: jis0212<<14 | 0x2D<<7 | 0x0A, - 30294 - 19968: jis0208<<14 | 0x29<<7 | 0x29, - 30296 - 19968: jis0208<<14 | 0x40<<7 | 0x55, - 30297 - 19968: jis0212<<14 | 0x2D<<7 | 0x0B, - 30300 - 19968: jis0208<<14 | 0x40<<7 | 0x54, - 30303 - 19968: jis0212<<14 | 0x2D<<7 | 0x0C, - 30305 - 19968: jis0208<<14 | 0x40<<7 | 0x56, - 30306 - 19968: jis0208<<14 | 0x40<<7 | 0x57, - 30308 - 19968: jis0212<<14 | 0x2D<<7 | 0x0D, - 30309 - 19968: jis0212<<14 | 0x2D<<7 | 0x0E, - 30311 - 19968: jis0208<<14 | 0x40<<7 | 0x5B, - 30312 - 19968: jis0208<<14 | 0x40<<7 | 0x58, - 30313 - 19968: jis0208<<14 | 0x40<<7 | 0x59, - 30314 - 19968: jis0208<<14 | 0x40<<7 | 0x5A, - 30316 - 19968: jis0208<<14 | 0x40<<7 | 0x5C, - 30317 - 19968: jis0212<<14 | 0x2D<<7 | 0x0F, - 30318 - 19968: jis0212<<14 | 0x2D<<7 | 0x10, - 30319 - 19968: jis0212<<14 | 0x2D<<7 | 0x11, - 30320 - 19968: jis0208<<14 | 0x40<<7 | 0x5D, - 30321 - 19968: jis0212<<14 | 0x2D<<7 | 0x12, - 30322 - 19968: jis0208<<14 | 0x41<<7 | 0x00, - 30324 - 19968: jis0212<<14 | 0x2D<<7 | 0x13, - 30326 - 19968: jis0208<<14 | 0x41<<7 | 0x01, - 30328 - 19968: jis0208<<14 | 0x41<<7 | 0x02, - 30330 - 19968: jis0208<<14 | 0x27<<7 | 0x0E, - 30331 - 19968: jis0208<<14 | 0x24<<7 | 0x2F, - 30332 - 19968: jis0208<<14 | 0x41<<7 | 0x03, - 30333 - 19968: jis0208<<14 | 0x26<<7 | 0x51, - 30334 - 19968: jis0208<<14 | 0x28<<7 | 0x13, - 30336 - 19968: jis0208<<14 | 0x41<<7 | 0x04, - 30337 - 19968: jis0212<<14 | 0x2D<<7 | 0x14, - 30338 - 19968: jis0208<<14 | 0x5A<<7 | 0x14, - 30339 - 19968: jis0208<<14 | 0x41<<7 | 0x05, - 30340 - 19968: jis0208<<14 | 0x24<<7 | 0x09, - 30341 - 19968: jis0212<<14 | 0x2D<<7 | 0x15, - 30342 - 19968: jis0208<<14 | 0x12<<7 | 0x06, - 30343 - 19968: jis0208<<14 | 0x18<<7 | 0x23, - 30344 - 19968: jis0208<<14 | 0x41<<7 | 0x06, - 30347 - 19968: jis0208<<14 | 0x41<<7 | 0x07, - 30348 - 19968: jis0212<<14 | 0x2D<<7 | 0x16, - 30349 - 19968: jis0212<<14 | 0x2D<<7 | 0x17, - 30350 - 19968: jis0208<<14 | 0x41<<7 | 0x08, - 30352 - 19968: jis0208<<14 | 0x1A<<7 | 0x08, - 30355 - 19968: jis0208<<14 | 0x41<<7 | 0x0A, - 30357 - 19968: jis0212<<14 | 0x2D<<7 | 0x18, - 30358 - 19968: jis0208<<14 | 0x41<<7 | 0x09, - 30361 - 19968: jis0208<<14 | 0x41<<7 | 0x0B, - 30362 - 19968: jis0208<<14 | 0x41<<7 | 0x0C, - 30363 - 19968: jis0208<<14 | 0x5A<<7 | 0x17, - 30364 - 19968: jis0208<<14 | 0x5A<<7 | 0x15, - 30365 - 19968: jis0212<<14 | 0x2D<<7 | 0x1B, - 30366 - 19968: jis0208<<14 | 0x5A<<7 | 0x16, - 30367 - 19968: jis0212<<14 | 0x2D<<7 | 0x1C, - 30368 - 19968: jis0212<<14 | 0x2D<<7 | 0x1D, - 30370 - 19968: jis0212<<14 | 0x2D<<7 | 0x1E, - 30371 - 19968: jis0212<<14 | 0x2D<<7 | 0x1F, - 30372 - 19968: jis0212<<14 | 0x2D<<7 | 0x20, - 30373 - 19968: jis0212<<14 | 0x2D<<7 | 0x21, - 30374 - 19968: jis0208<<14 | 0x5A<<7 | 0x18, - 30375 - 19968: jis0212<<14 | 0x2D<<7 | 0x23, - 30376 - 19968: jis0212<<14 | 0x2D<<7 | 0x24, - 30378 - 19968: jis0212<<14 | 0x2D<<7 | 0x25, - 30381 - 19968: jis0212<<14 | 0x2D<<7 | 0x26, - 30382 - 19968: jis0208<<14 | 0x27<<7 | 0x48, - 30384 - 19968: jis0208<<14 | 0x41<<7 | 0x0D, - 30388 - 19968: jis0208<<14 | 0x41<<7 | 0x0E, - 30391 - 19968: jis0208<<14 | 0x52<<7 | 0x48, - 30392 - 19968: jis0208<<14 | 0x41<<7 | 0x0F, - 30393 - 19968: jis0208<<14 | 0x41<<7 | 0x10, - 30394 - 19968: jis0208<<14 | 0x41<<7 | 0x11, - 30397 - 19968: jis0212<<14 | 0x2D<<7 | 0x27, - 30399 - 19968: jis0208<<14 | 0x1A<<7 | 0x0D, - 30401 - 19968: jis0212<<14 | 0x2D<<7 | 0x28, - 30402 - 19968: jis0208<<14 | 0x41<<7 | 0x12, - 30403 - 19968: jis0208<<14 | 0x26<<7 | 0x35, - 30405 - 19968: jis0212<<14 | 0x2D<<7 | 0x29, - 30406 - 19968: jis0208<<14 | 0x2A<<7 | 0x3E, - 30408 - 19968: jis0208<<14 | 0x10<<7 | 0x2D, - 30409 - 19968: jis0212<<14 | 0x2D<<7 | 0x2A, - 30410 - 19968: jis0208<<14 | 0x10<<7 | 0x36, - 30411 - 19968: jis0212<<14 | 0x2D<<7 | 0x2B, - 30412 - 19968: jis0212<<14 | 0x2D<<7 | 0x2C, - 30413 - 19968: jis0208<<14 | 0x41<<7 | 0x13, - 30414 - 19968: jis0212<<14 | 0x2D<<7 | 0x2D, - 30418 - 19968: jis0208<<14 | 0x41<<7 | 0x15, - 30420 - 19968: jis0212<<14 | 0x2D<<7 | 0x2E, - 30422 - 19968: jis0208<<14 | 0x41<<7 | 0x14, - 30423 - 19968: jis0208<<14 | 0x24<<7 | 0x4F, - 30425 - 19968: jis0212<<14 | 0x2D<<7 | 0x2F, - 30427 - 19968: jis0208<<14 | 0x1F<<7 | 0x18, - 30428 - 19968: jis0208<<14 | 0x3C<<7 | 0x18, - 30430 - 19968: jis0208<<14 | 0x41<<7 | 0x16, - 30431 - 19968: jis0208<<14 | 0x2B<<7 | 0x20, - 30432 - 19968: jis0212<<14 | 0x2D<<7 | 0x30, - 30433 - 19968: jis0208<<14 | 0x41<<7 | 0x17, - 30435 - 19968: jis0208<<14 | 0x13<<7 | 0x25, - 30436 - 19968: jis0208<<14 | 0x27<<7 | 0x36, - 30437 - 19968: jis0208<<14 | 0x41<<7 | 0x18, - 30438 - 19968: jis0212<<14 | 0x2D<<7 | 0x31, - 30439 - 19968: jis0208<<14 | 0x41<<7 | 0x19, - 30440 - 19968: jis0212<<14 | 0x2D<<7 | 0x32, - 30442 - 19968: jis0208<<14 | 0x41<<7 | 0x1A, - 30444 - 19968: jis0212<<14 | 0x2D<<7 | 0x33, - 30446 - 19968: jis0208<<14 | 0x2B<<7 | 0x3B, - 30448 - 19968: jis0212<<14 | 0x2D<<7 | 0x34, - 30449 - 19968: jis0212<<14 | 0x2D<<7 | 0x35, - 30450 - 19968: jis0208<<14 | 0x2B<<7 | 0x34, - 30452 - 19968: jis0208<<14 | 0x23<<7 | 0x1D, - 30454 - 19968: jis0212<<14 | 0x2D<<7 | 0x36, - 30456 - 19968: jis0208<<14 | 0x20<<7 | 0x49, - 30457 - 19968: jis0212<<14 | 0x2D<<7 | 0x37, - 30459 - 19968: jis0208<<14 | 0x41<<7 | 0x1C, - 30460 - 19968: jis0212<<14 | 0x2D<<7 | 0x38, - 30462 - 19968: jis0208<<14 | 0x1C<<7 | 0x41, - 30464 - 19968: jis0212<<14 | 0x2D<<7 | 0x39, - 30465 - 19968: jis0208<<14 | 0x1D<<7 | 0x29, - 30468 - 19968: jis0208<<14 | 0x41<<7 | 0x1F, - 30470 - 19968: jis0212<<14 | 0x2D<<7 | 0x3A, - 30471 - 19968: jis0208<<14 | 0x41<<7 | 0x1E, - 30472 - 19968: jis0208<<14 | 0x41<<7 | 0x1D, - 30473 - 19968: jis0208<<14 | 0x27<<7 | 0x5C, - 30474 - 19968: jis0212<<14 | 0x2D<<7 | 0x3B, - 30475 - 19968: jis0208<<14 | 0x13<<7 | 0x26, - 30476 - 19968: jis0208<<14 | 0x17<<7 | 0x08, - 30478 - 19968: jis0212<<14 | 0x2D<<7 | 0x3C, - 30482 - 19968: jis0212<<14 | 0x2D<<7 | 0x3D, - 30484 - 19968: jis0212<<14 | 0x2D<<7 | 0x3E, - 30485 - 19968: jis0212<<14 | 0x2D<<7 | 0x3F, - 30487 - 19968: jis0212<<14 | 0x2D<<7 | 0x40, - 30489 - 19968: jis0212<<14 | 0x2D<<7 | 0x41, - 30490 - 19968: jis0212<<14 | 0x2D<<7 | 0x42, - 30491 - 19968: jis0208<<14 | 0x41<<7 | 0x25, - 30492 - 19968: jis0212<<14 | 0x2D<<7 | 0x43, - 30494 - 19968: jis0208<<14 | 0x41<<7 | 0x22, - 30495 - 19968: jis0208<<14 | 0x1E<<7 | 0x1E, - 30496 - 19968: jis0208<<14 | 0x2B<<7 | 0x11, - 30498 - 19968: jis0212<<14 | 0x2D<<7 | 0x44, - 30500 - 19968: jis0208<<14 | 0x41<<7 | 0x21, - 30501 - 19968: jis0208<<14 | 0x41<<7 | 0x23, - 30502 - 19968: jis0208<<14 | 0x41<<7 | 0x24, - 30504 - 19968: jis0212<<14 | 0x2D<<7 | 0x45, - 30505 - 19968: jis0208<<14 | 0x41<<7 | 0x20, - 30509 - 19968: jis0212<<14 | 0x2D<<7 | 0x46, - 30510 - 19968: jis0212<<14 | 0x2D<<7 | 0x47, - 30511 - 19968: jis0212<<14 | 0x2D<<7 | 0x48, - 30516 - 19968: jis0212<<14 | 0x2D<<7 | 0x49, - 30517 - 19968: jis0212<<14 | 0x2D<<7 | 0x4A, - 30518 - 19968: jis0212<<14 | 0x2D<<7 | 0x4B, - 30519 - 19968: jis0208<<14 | 0x41<<7 | 0x26, - 30520 - 19968: jis0208<<14 | 0x41<<7 | 0x27, - 30521 - 19968: jis0212<<14 | 0x2D<<7 | 0x4C, - 30522 - 19968: jis0208<<14 | 0x23<<7 | 0x0E, - 30524 - 19968: jis0208<<14 | 0x13<<7 | 0x42, - 30525 - 19968: jis0212<<14 | 0x2D<<7 | 0x4D, - 30526 - 19968: jis0212<<14 | 0x2D<<7 | 0x4E, - 30528 - 19968: jis0208<<14 | 0x22<<7 | 0x44, - 30530 - 19968: jis0212<<14 | 0x2D<<7 | 0x4F, - 30533 - 19968: jis0212<<14 | 0x2D<<7 | 0x50, - 30534 - 19968: jis0208<<14 | 0x5A<<7 | 0x1A, - 30535 - 19968: jis0208<<14 | 0x41<<7 | 0x28, - 30538 - 19968: jis0212<<14 | 0x2D<<7 | 0x52, - 30541 - 19968: jis0212<<14 | 0x2D<<7 | 0x53, - 30542 - 19968: jis0212<<14 | 0x2D<<7 | 0x54, - 30543 - 19968: jis0212<<14 | 0x2D<<7 | 0x55, - 30546 - 19968: jis0212<<14 | 0x2D<<7 | 0x56, - 30550 - 19968: jis0212<<14 | 0x2D<<7 | 0x57, - 30551 - 19968: jis0212<<14 | 0x2D<<7 | 0x58, - 30554 - 19968: jis0208<<14 | 0x41<<7 | 0x29, - 30555 - 19968: jis0208<<14 | 0x41<<7 | 0x2C, - 30556 - 19968: jis0212<<14 | 0x2D<<7 | 0x59, - 30558 - 19968: jis0212<<14 | 0x2D<<7 | 0x5A, - 30559 - 19968: jis0212<<14 | 0x2D<<7 | 0x5B, - 30560 - 19968: jis0212<<14 | 0x2D<<7 | 0x5C, - 30561 - 19968: jis0208<<14 | 0x1E<<7 | 0x46, - 30562 - 19968: jis0212<<14 | 0x2D<<7 | 0x5D, - 30563 - 19968: jis0208<<14 | 0x25<<7 | 0x23, - 30564 - 19968: jis0212<<14 | 0x2E<<7 | 0x00, - 30565 - 19968: jis0208<<14 | 0x41<<7 | 0x2D, - 30566 - 19968: jis0208<<14 | 0x2A<<7 | 0x32, - 30567 - 19968: jis0212<<14 | 0x2E<<7 | 0x01, - 30568 - 19968: jis0208<<14 | 0x41<<7 | 0x2A, - 30570 - 19968: jis0212<<14 | 0x2E<<7 | 0x02, - 30571 - 19968: jis0208<<14 | 0x41<<7 | 0x2B, - 30572 - 19968: jis0212<<14 | 0x2E<<7 | 0x03, - 30576 - 19968: jis0212<<14 | 0x2E<<7 | 0x04, - 30578 - 19968: jis0212<<14 | 0x2E<<7 | 0x05, - 30579 - 19968: jis0212<<14 | 0x2E<<7 | 0x06, - 30580 - 19968: jis0212<<14 | 0x2E<<7 | 0x07, - 30585 - 19968: jis0208<<14 | 0x41<<7 | 0x30, - 30586 - 19968: jis0212<<14 | 0x2E<<7 | 0x08, - 30589 - 19968: jis0212<<14 | 0x2E<<7 | 0x09, - 30590 - 19968: jis0208<<14 | 0x41<<7 | 0x2F, - 30591 - 19968: jis0208<<14 | 0x41<<7 | 0x2E, - 30592 - 19968: jis0212<<14 | 0x2E<<7 | 0x0A, - 30596 - 19968: jis0212<<14 | 0x2E<<7 | 0x0B, - 30603 - 19968: jis0208<<14 | 0x41<<7 | 0x32, - 30604 - 19968: jis0212<<14 | 0x2E<<7 | 0x0C, - 30605 - 19968: jis0212<<14 | 0x2E<<7 | 0x0D, - 30606 - 19968: jis0208<<14 | 0x41<<7 | 0x31, - 30609 - 19968: jis0208<<14 | 0x41<<7 | 0x33, - 30612 - 19968: jis0212<<14 | 0x2E<<7 | 0x0E, - 30613 - 19968: jis0212<<14 | 0x2E<<7 | 0x0F, - 30614 - 19968: jis0212<<14 | 0x2E<<7 | 0x10, - 30618 - 19968: jis0212<<14 | 0x2E<<7 | 0x11, - 30622 - 19968: jis0208<<14 | 0x41<<7 | 0x35, - 30623 - 19968: jis0212<<14 | 0x2E<<7 | 0x12, - 30624 - 19968: jis0208<<14 | 0x41<<7 | 0x34, - 30626 - 19968: jis0212<<14 | 0x2E<<7 | 0x13, - 30629 - 19968: jis0208<<14 | 0x29<<7 | 0x2C, - 30631 - 19968: jis0212<<14 | 0x2E<<7 | 0x14, - 30634 - 19968: jis0212<<14 | 0x2E<<7 | 0x15, - 30636 - 19968: jis0208<<14 | 0x1C<<7 | 0x35, - 30637 - 19968: jis0208<<14 | 0x2D<<7 | 0x25, - 30638 - 19968: jis0212<<14 | 0x2E<<7 | 0x16, - 30639 - 19968: jis0212<<14 | 0x2E<<7 | 0x17, - 30640 - 19968: jis0208<<14 | 0x41<<7 | 0x36, - 30641 - 19968: jis0212<<14 | 0x2E<<7 | 0x18, - 30643 - 19968: jis0208<<14 | 0x25<<7 | 0x16, - 30645 - 19968: jis0212<<14 | 0x2E<<7 | 0x19, - 30646 - 19968: jis0208<<14 | 0x41<<7 | 0x37, - 30649 - 19968: jis0208<<14 | 0x41<<7 | 0x38, - 30651 - 19968: jis0208<<14 | 0x41<<7 | 0x3C, - 30652 - 19968: jis0208<<14 | 0x41<<7 | 0x3A, - 30653 - 19968: jis0208<<14 | 0x41<<7 | 0x3B, - 30654 - 19968: jis0212<<14 | 0x2E<<7 | 0x1A, - 30655 - 19968: jis0208<<14 | 0x41<<7 | 0x39, - 30659 - 19968: jis0212<<14 | 0x2E<<7 | 0x1B, - 30663 - 19968: jis0208<<14 | 0x41<<7 | 0x3D, - 30665 - 19968: jis0212<<14 | 0x2E<<7 | 0x1C, - 30669 - 19968: jis0208<<14 | 0x41<<7 | 0x3E, - 30673 - 19968: jis0212<<14 | 0x2E<<7 | 0x1D, - 30674 - 19968: jis0212<<14 | 0x2E<<7 | 0x1E, - 30677 - 19968: jis0212<<14 | 0x2E<<7 | 0x1F, - 30679 - 19968: jis0208<<14 | 0x41<<7 | 0x3F, - 30681 - 19968: jis0212<<14 | 0x2E<<7 | 0x20, - 30682 - 19968: jis0208<<14 | 0x41<<7 | 0x40, - 30683 - 19968: jis0208<<14 | 0x2B<<7 | 0x16, - 30684 - 19968: jis0208<<14 | 0x41<<7 | 0x41, - 30686 - 19968: jis0212<<14 | 0x2E<<7 | 0x21, - 30687 - 19968: jis0212<<14 | 0x2E<<7 | 0x22, - 30688 - 19968: jis0212<<14 | 0x2E<<7 | 0x23, - 30690 - 19968: jis0208<<14 | 0x2B<<7 | 0x4F, - 30691 - 19968: jis0208<<14 | 0x41<<7 | 0x42, - 30692 - 19968: jis0212<<14 | 0x2E<<7 | 0x24, - 30693 - 19968: jis0208<<14 | 0x22<<7 | 0x2D, - 30694 - 19968: jis0212<<14 | 0x2E<<7 | 0x25, - 30695 - 19968: jis0208<<14 | 0x26<<7 | 0x49, - 30697 - 19968: jis0208<<14 | 0x15<<7 | 0x4A, - 30698 - 19968: jis0212<<14 | 0x2E<<7 | 0x26, - 30700 - 19968: jis0212<<14 | 0x2E<<7 | 0x27, - 30701 - 19968: jis0208<<14 | 0x22<<7 | 0x1A, - 30702 - 19968: jis0208<<14 | 0x41<<7 | 0x43, - 30703 - 19968: jis0208<<14 | 0x15<<7 | 0x19, - 30704 - 19968: jis0212<<14 | 0x2E<<7 | 0x28, - 30705 - 19968: jis0212<<14 | 0x2E<<7 | 0x29, - 30707 - 19968: jis0208<<14 | 0x1F<<7 | 0x2F, - 30708 - 19968: jis0212<<14 | 0x2E<<7 | 0x2A, - 30712 - 19968: jis0212<<14 | 0x2E<<7 | 0x2B, - 30715 - 19968: jis0212<<14 | 0x2E<<7 | 0x2C, - 30716 - 19968: jis0208<<14 | 0x41<<7 | 0x44, - 30722 - 19968: jis0208<<14 | 0x19<<7 | 0x1C, - 30725 - 19968: jis0212<<14 | 0x2E<<7 | 0x2D, - 30726 - 19968: jis0212<<14 | 0x2E<<7 | 0x2E, - 30729 - 19968: jis0212<<14 | 0x2E<<7 | 0x2F, - 30732 - 19968: jis0208<<14 | 0x41<<7 | 0x45, - 30733 - 19968: jis0212<<14 | 0x2E<<7 | 0x30, - 30734 - 19968: jis0212<<14 | 0x2E<<7 | 0x31, - 30737 - 19968: jis0212<<14 | 0x2E<<7 | 0x32, - 30738 - 19968: jis0208<<14 | 0x41<<7 | 0x46, - 30740 - 19968: jis0208<<14 | 0x17<<7 | 0x05, - 30741 - 19968: jis0208<<14 | 0x19<<7 | 0x34, - 30749 - 19968: jis0212<<14 | 0x2E<<7 | 0x33, - 30752 - 19968: jis0208<<14 | 0x41<<7 | 0x48, - 30753 - 19968: jis0208<<14 | 0x5A<<7 | 0x1C, - 30754 - 19968: jis0212<<14 | 0x2E<<7 | 0x35, - 30755 - 19968: jis0212<<14 | 0x2E<<7 | 0x36, - 30757 - 19968: jis0208<<14 | 0x24<<7 | 0x35, - 30758 - 19968: jis0208<<14 | 0x19<<7 | 0x35, - 30759 - 19968: jis0208<<14 | 0x14<<7 | 0x2D, - 30765 - 19968: jis0212<<14 | 0x2E<<7 | 0x37, - 30766 - 19968: jis0212<<14 | 0x2E<<7 | 0x38, - 30768 - 19968: jis0212<<14 | 0x2E<<7 | 0x39, - 30770 - 19968: jis0208<<14 | 0x2A<<7 | 0x03, - 30772 - 19968: jis0208<<14 | 0x26<<7 | 0x2A, - 30773 - 19968: jis0212<<14 | 0x2E<<7 | 0x3A, - 30775 - 19968: jis0212<<14 | 0x2E<<7 | 0x3B, - 30778 - 19968: jis0208<<14 | 0x24<<7 | 0x36, - 30783 - 19968: jis0208<<14 | 0x18<<7 | 0x3B, - 30787 - 19968: jis0212<<14 | 0x2E<<7 | 0x3C, - 30788 - 19968: jis0212<<14 | 0x2E<<7 | 0x3D, - 30789 - 19968: jis0208<<14 | 0x41<<7 | 0x4A, - 30791 - 19968: jis0212<<14 | 0x2E<<7 | 0x3E, - 30792 - 19968: jis0212<<14 | 0x2E<<7 | 0x3F, - 30796 - 19968: jis0212<<14 | 0x2E<<7 | 0x40, - 30798 - 19968: jis0208<<14 | 0x5A<<7 | 0x1D, - 30802 - 19968: jis0212<<14 | 0x2E<<7 | 0x42, - 30812 - 19968: jis0212<<14 | 0x2E<<7 | 0x43, - 30813 - 19968: jis0208<<14 | 0x1D<<7 | 0x2A, - 30814 - 19968: jis0212<<14 | 0x2E<<7 | 0x44, - 30816 - 19968: jis0212<<14 | 0x2E<<7 | 0x45, - 30817 - 19968: jis0212<<14 | 0x2E<<7 | 0x46, - 30819 - 19968: jis0212<<14 | 0x2E<<7 | 0x47, - 30820 - 19968: jis0208<<14 | 0x5A<<7 | 0x1E, - 30824 - 19968: jis0212<<14 | 0x2E<<7 | 0x49, - 30826 - 19968: jis0212<<14 | 0x2E<<7 | 0x4A, - 30827 - 19968: jis0208<<14 | 0x2D<<7 | 0x11, - 30828 - 19968: jis0208<<14 | 0x18<<7 | 0x24, - 30830 - 19968: jis0212<<14 | 0x2E<<7 | 0x4B, - 30831 - 19968: jis0208<<14 | 0x17<<7 | 0x06, - 30834 - 19968: jis0208<<14 | 0x27<<7 | 0x02, - 30836 - 19968: jis0208<<14 | 0x41<<7 | 0x4C, - 30842 - 19968: jis0208<<14 | 0x5A<<7 | 0x1F, - 30844 - 19968: jis0208<<14 | 0x41<<7 | 0x4E, - 30846 - 19968: jis0212<<14 | 0x2E<<7 | 0x4D, - 30849 - 19968: jis0208<<14 | 0x17<<7 | 0x4A, - 30854 - 19968: jis0208<<14 | 0x41<<7 | 0x4D, - 30855 - 19968: jis0208<<14 | 0x23<<7 | 0x55, - 30858 - 19968: jis0212<<14 | 0x2E<<7 | 0x4E, - 30860 - 19968: jis0208<<14 | 0x41<<7 | 0x50, - 30861 - 19968: jis0208<<14 | 0x12<<7 | 0x16, - 30862 - 19968: jis0208<<14 | 0x41<<7 | 0x4B, - 30863 - 19968: jis0212<<14 | 0x2E<<7 | 0x4F, - 30865 - 19968: jis0208<<14 | 0x27<<7 | 0x49, - 30867 - 19968: jis0208<<14 | 0x10<<7 | 0x0F, - 30868 - 19968: jis0212<<14 | 0x2E<<7 | 0x50, - 30869 - 19968: jis0208<<14 | 0x19<<7 | 0x4B, - 30871 - 19968: jis0208<<14 | 0x2E<<7 | 0x31, - 30872 - 19968: jis0212<<14 | 0x2E<<7 | 0x51, - 30874 - 19968: jis0208<<14 | 0x41<<7 | 0x4F, - 30877 - 19968: jis0212<<14 | 0x2E<<7 | 0x53, - 30878 - 19968: jis0212<<14 | 0x2E<<7 | 0x54, - 30879 - 19968: jis0212<<14 | 0x2E<<7 | 0x55, - 30881 - 19968: jis0212<<14 | 0x2E<<7 | 0x52, - 30883 - 19968: jis0208<<14 | 0x41<<7 | 0x51, - 30884 - 19968: jis0212<<14 | 0x2E<<7 | 0x56, - 30887 - 19968: jis0208<<14 | 0x29<<7 | 0x2A, - 30888 - 19968: jis0212<<14 | 0x2E<<7 | 0x57, - 30889 - 19968: jis0208<<14 | 0x1F<<7 | 0x38, - 30890 - 19968: jis0208<<14 | 0x41<<7 | 0x53, - 30892 - 19968: jis0212<<14 | 0x2E<<7 | 0x58, - 30893 - 19968: jis0212<<14 | 0x2E<<7 | 0x59, - 30895 - 19968: jis0208<<14 | 0x41<<7 | 0x54, - 30896 - 19968: jis0212<<14 | 0x2E<<7 | 0x5A, - 30897 - 19968: jis0212<<14 | 0x2E<<7 | 0x5B, - 30898 - 19968: jis0212<<14 | 0x2E<<7 | 0x5C, - 30899 - 19968: jis0212<<14 | 0x2E<<7 | 0x5D, - 30901 - 19968: jis0208<<14 | 0x41<<7 | 0x52, - 30906 - 19968: jis0208<<14 | 0x12<<7 | 0x2D, - 30907 - 19968: jis0212<<14 | 0x2F<<7 | 0x00, - 30908 - 19968: jis0208<<14 | 0x41<<7 | 0x5A, - 30909 - 19968: jis0212<<14 | 0x2F<<7 | 0x01, - 30910 - 19968: jis0208<<14 | 0x41<<7 | 0x59, - 30911 - 19968: jis0212<<14 | 0x2F<<7 | 0x02, - 30913 - 19968: jis0208<<14 | 0x1B<<7 | 0x06, - 30917 - 19968: jis0208<<14 | 0x41<<7 | 0x5B, - 30918 - 19968: jis0208<<14 | 0x41<<7 | 0x56, - 30919 - 19968: jis0212<<14 | 0x2F<<7 | 0x03, - 30920 - 19968: jis0212<<14 | 0x2F<<7 | 0x04, - 30921 - 19968: jis0212<<14 | 0x2F<<7 | 0x05, - 30922 - 19968: jis0208<<14 | 0x41<<7 | 0x5C, - 30923 - 19968: jis0208<<14 | 0x41<<7 | 0x57, - 30924 - 19968: jis0212<<14 | 0x2F<<7 | 0x06, - 30926 - 19968: jis0212<<14 | 0x2F<<7 | 0x07, - 30928 - 19968: jis0208<<14 | 0x27<<7 | 0x37, - 30929 - 19968: jis0208<<14 | 0x41<<7 | 0x55, - 30930 - 19968: jis0212<<14 | 0x2F<<7 | 0x08, - 30931 - 19968: jis0212<<14 | 0x2F<<7 | 0x09, - 30932 - 19968: jis0208<<14 | 0x41<<7 | 0x58, - 30933 - 19968: jis0212<<14 | 0x2F<<7 | 0x0A, - 30934 - 19968: jis0212<<14 | 0x2F<<7 | 0x0B, - 30938 - 19968: jis0208<<14 | 0x42<<7 | 0x01, - 30939 - 19968: jis0212<<14 | 0x2F<<7 | 0x0D, - 30943 - 19968: jis0212<<14 | 0x2F<<7 | 0x0E, - 30944 - 19968: jis0212<<14 | 0x2F<<7 | 0x0F, - 30945 - 19968: jis0212<<14 | 0x2F<<7 | 0x10, - 30948 - 19968: jis0212<<14 | 0x2F<<7 | 0x0C, - 30950 - 19968: jis0212<<14 | 0x2F<<7 | 0x11, - 30951 - 19968: jis0208<<14 | 0x42<<7 | 0x00, - 30952 - 19968: jis0208<<14 | 0x2A<<7 | 0x40, - 30954 - 19968: jis0212<<14 | 0x2F<<7 | 0x12, - 30956 - 19968: jis0208<<14 | 0x41<<7 | 0x5D, - 30959 - 19968: jis0208<<14 | 0x0F<<7 | 0x4A, - 30962 - 19968: jis0212<<14 | 0x2F<<7 | 0x13, - 30963 - 19968: jis0212<<14 | 0x2F<<7 | 0x14, - 30964 - 19968: jis0208<<14 | 0x42<<7 | 0x03, - 30966 - 19968: jis0212<<14 | 0x2F<<7 | 0x16, - 30967 - 19968: jis0212<<14 | 0x2F<<7 | 0x17, - 30970 - 19968: jis0212<<14 | 0x2F<<7 | 0x18, - 30971 - 19968: jis0212<<14 | 0x2F<<7 | 0x19, - 30973 - 19968: jis0208<<14 | 0x42<<7 | 0x02, - 30975 - 19968: jis0212<<14 | 0x2F<<7 | 0x1A, - 30976 - 19968: jis0212<<14 | 0x2F<<7 | 0x15, - 30977 - 19968: jis0208<<14 | 0x1D<<7 | 0x2B, - 30982 - 19968: jis0212<<14 | 0x2F<<7 | 0x1B, - 30983 - 19968: jis0208<<14 | 0x42<<7 | 0x04, - 30988 - 19968: jis0212<<14 | 0x2F<<7 | 0x1C, - 30990 - 19968: jis0208<<14 | 0x20<<7 | 0x22, - 30992 - 19968: jis0212<<14 | 0x2F<<7 | 0x1D, - 30993 - 19968: jis0208<<14 | 0x42<<7 | 0x06, - 30994 - 19968: jis0208<<14 | 0x42<<7 | 0x05, - 31001 - 19968: jis0208<<14 | 0x42<<7 | 0x07, - 31002 - 19968: jis0212<<14 | 0x2F<<7 | 0x1E, - 31004 - 19968: jis0212<<14 | 0x2F<<7 | 0x1F, - 31006 - 19968: jis0212<<14 | 0x2F<<7 | 0x20, - 31007 - 19968: jis0212<<14 | 0x2F<<7 | 0x21, - 31008 - 19968: jis0212<<14 | 0x2F<<7 | 0x22, - 31013 - 19968: jis0212<<14 | 0x2F<<7 | 0x23, - 31014 - 19968: jis0208<<14 | 0x41<<7 | 0x47, - 31015 - 19968: jis0212<<14 | 0x2F<<7 | 0x24, - 31017 - 19968: jis0212<<14 | 0x2F<<7 | 0x25, - 31018 - 19968: jis0208<<14 | 0x41<<7 | 0x49, - 31019 - 19968: jis0208<<14 | 0x42<<7 | 0x09, - 31020 - 19968: jis0208<<14 | 0x42<<7 | 0x08, - 31021 - 19968: jis0212<<14 | 0x2F<<7 | 0x26, - 31024 - 19968: jis0208<<14 | 0x5A<<7 | 0x20, - 31025 - 19968: jis0212<<14 | 0x2F<<7 | 0x27, - 31028 - 19968: jis0212<<14 | 0x2F<<7 | 0x28, - 31029 - 19968: jis0212<<14 | 0x2F<<7 | 0x29, - 31034 - 19968: jis0208<<14 | 0x1B<<7 | 0x07, - 31035 - 19968: jis0212<<14 | 0x2F<<7 | 0x2A, - 31036 - 19968: jis0208<<14 | 0x2D<<7 | 0x48, - 31037 - 19968: jis0212<<14 | 0x2F<<7 | 0x2B, - 31038 - 19968: jis0208<<14 | 0x1B<<7 | 0x31, - 31039 - 19968: jis0212<<14 | 0x2F<<7 | 0x2C, - 31040 - 19968: jis0208<<14 | 0x42<<7 | 0x0A, - 31041 - 19968: jis0208<<14 | 0x16<<7 | 0x16, - 31044 - 19968: jis0212<<14 | 0x2F<<7 | 0x2D, - 31045 - 19968: jis0212<<14 | 0x2F<<7 | 0x2E, - 31046 - 19968: jis0212<<14 | 0x2F<<7 | 0x2F, - 31047 - 19968: jis0208<<14 | 0x14<<7 | 0x1F, - 31048 - 19968: jis0208<<14 | 0x14<<7 | 0x06, - 31049 - 19968: jis0208<<14 | 0x1A<<7 | 0x42, - 31050 - 19968: jis0212<<14 | 0x2F<<7 | 0x30, - 31051 - 19968: jis0212<<14 | 0x2F<<7 | 0x31, - 31055 - 19968: jis0212<<14 | 0x2F<<7 | 0x32, - 31056 - 19968: jis0208<<14 | 0x2C<<7 | 0x13, - 31057 - 19968: jis0212<<14 | 0x2F<<7 | 0x33, - 31059 - 19968: jis0208<<14 | 0x42<<7 | 0x10, - 31060 - 19968: jis0212<<14 | 0x2F<<7 | 0x34, - 31061 - 19968: jis0208<<14 | 0x42<<7 | 0x0F, - 31062 - 19968: jis0208<<14 | 0x20<<7 | 0x23, - 31063 - 19968: jis0208<<14 | 0x42<<7 | 0x0C, - 31064 - 19968: jis0212<<14 | 0x2F<<7 | 0x35, - 31066 - 19968: jis0208<<14 | 0x42<<7 | 0x0E, - 31067 - 19968: jis0212<<14 | 0x2F<<7 | 0x36, - 31068 - 19968: jis0212<<14 | 0x2F<<7 | 0x37, - 31069 - 19968: jis0208<<14 | 0x1C<<7 | 0x2A, - 31070 - 19968: jis0208<<14 | 0x1E<<7 | 0x1F, - 31071 - 19968: jis0208<<14 | 0x42<<7 | 0x0D, - 31072 - 19968: jis0208<<14 | 0x42<<7 | 0x0B, - 31074 - 19968: jis0208<<14 | 0x26<<7 | 0x09, - 31077 - 19968: jis0208<<14 | 0x1D<<7 | 0x2C, - 31079 - 19968: jis0212<<14 | 0x2F<<7 | 0x38, - 31080 - 19968: jis0208<<14 | 0x28<<7 | 0x1B, - 31081 - 19968: jis0212<<14 | 0x2F<<7 | 0x39, - 31083 - 19968: jis0212<<14 | 0x2F<<7 | 0x3A, - 31085 - 19968: jis0208<<14 | 0x19<<7 | 0x36, - 31090 - 19968: jis0212<<14 | 0x2F<<7 | 0x3B, - 31095 - 19968: jis0208<<14 | 0x24<<7 | 0x57, - 31097 - 19968: jis0212<<14 | 0x2F<<7 | 0x3C, - 31098 - 19968: jis0208<<14 | 0x42<<7 | 0x11, - 31099 - 19968: jis0212<<14 | 0x2F<<7 | 0x3D, - 31100 - 19968: jis0212<<14 | 0x2F<<7 | 0x3E, - 31102 - 19968: jis0212<<14 | 0x2F<<7 | 0x3F, - 31103 - 19968: jis0208<<14 | 0x42<<7 | 0x12, - 31104 - 19968: jis0208<<14 | 0x42<<7 | 0x28, - 31105 - 19968: jis0208<<14 | 0x15<<7 | 0x37, - 31108 - 19968: jis0208<<14 | 0x2E<<7 | 0x1C, - 31109 - 19968: jis0208<<14 | 0x20<<7 | 0x14, - 31114 - 19968: jis0208<<14 | 0x42<<7 | 0x13, - 31115 - 19968: jis0212<<14 | 0x2F<<7 | 0x40, - 31116 - 19968: jis0212<<14 | 0x2F<<7 | 0x41, - 31117 - 19968: jis0208<<14 | 0x11<<7 | 0x31, - 31118 - 19968: jis0208<<14 | 0x23<<7 | 0x56, - 31119 - 19968: jis0208<<14 | 0x29<<7 | 0x00, - 31121 - 19968: jis0212<<14 | 0x2F<<7 | 0x42, - 31123 - 19968: jis0212<<14 | 0x2F<<7 | 0x43, - 31124 - 19968: jis0208<<14 | 0x5A<<7 | 0x24, - 31125 - 19968: jis0212<<14 | 0x2F<<7 | 0x45, - 31126 - 19968: jis0212<<14 | 0x2F<<7 | 0x46, - 31128 - 19968: jis0212<<14 | 0x2F<<7 | 0x47, - 31131 - 19968: jis0208<<14 | 0x5A<<7 | 0x26, - 31132 - 19968: jis0212<<14 | 0x2F<<7 | 0x49, - 31133 - 19968: jis0208<<14 | 0x42<<7 | 0x14, - 31137 - 19968: jis0212<<14 | 0x2F<<7 | 0x4A, - 31142 - 19968: jis0208<<14 | 0x14<<7 | 0x59, - 31143 - 19968: jis0208<<14 | 0x42<<7 | 0x15, - 31144 - 19968: jis0212<<14 | 0x2F<<7 | 0x4B, - 31145 - 19968: jis0212<<14 | 0x2F<<7 | 0x4C, - 31146 - 19968: jis0208<<14 | 0x42<<7 | 0x17, - 31147 - 19968: jis0212<<14 | 0x2F<<7 | 0x4D, - 31150 - 19968: jis0208<<14 | 0x42<<7 | 0x18, - 31151 - 19968: jis0212<<14 | 0x2F<<7 | 0x4E, - 31152 - 19968: jis0208<<14 | 0x26<<7 | 0x08, - 31153 - 19968: jis0212<<14 | 0x2F<<7 | 0x4F, - 31155 - 19968: jis0208<<14 | 0x42<<7 | 0x19, - 31156 - 19968: jis0212<<14 | 0x2F<<7 | 0x50, - 31160 - 19968: jis0212<<14 | 0x2F<<7 | 0x51, - 31161 - 19968: jis0208<<14 | 0x42<<7 | 0x1A, - 31162 - 19968: jis0208<<14 | 0x42<<7 | 0x1B, - 31163 - 19968: jis0212<<14 | 0x2F<<7 | 0x52, - 31165 - 19968: jis0208<<14 | 0x15<<7 | 0x38, - 31166 - 19968: jis0208<<14 | 0x11<<7 | 0x32, - 31167 - 19968: jis0208<<14 | 0x25<<7 | 0x24, - 31168 - 19968: jis0208<<14 | 0x1C<<7 | 0x07, - 31169 - 19968: jis0208<<14 | 0x1A<<7 | 0x43, - 31170 - 19968: jis0212<<14 | 0x2F<<7 | 0x53, - 31172 - 19968: jis0212<<14 | 0x2F<<7 | 0x54, - 31175 - 19968: jis0212<<14 | 0x2F<<7 | 0x55, - 31176 - 19968: jis0212<<14 | 0x2F<<7 | 0x56, - 31177 - 19968: jis0208<<14 | 0x42<<7 | 0x1C, - 31178 - 19968: jis0212<<14 | 0x2F<<7 | 0x57, - 31179 - 19968: jis0208<<14 | 0x1C<<7 | 0x08, - 31183 - 19968: jis0212<<14 | 0x2F<<7 | 0x58, - 31185 - 19968: jis0208<<14 | 0x11<<7 | 0x29, - 31186 - 19968: jis0208<<14 | 0x28<<7 | 0x22, - 31188 - 19968: jis0212<<14 | 0x2F<<7 | 0x59, - 31189 - 19968: jis0208<<14 | 0x42<<7 | 0x1D, - 31190 - 19968: jis0212<<14 | 0x2F<<7 | 0x5A, - 31192 - 19968: jis0208<<14 | 0x27<<7 | 0x4A, - 31194 - 19968: jis0212<<14 | 0x2F<<7 | 0x5B, - 31197 - 19968: jis0212<<14 | 0x2F<<7 | 0x5C, - 31198 - 19968: jis0212<<14 | 0x2F<<7 | 0x5D, - 31199 - 19968: jis0208<<14 | 0x20<<7 | 0x24, - 31200 - 19968: jis0212<<14 | 0x30<<7 | 0x00, - 31201 - 19968: jis0208<<14 | 0x42<<7 | 0x20, - 31202 - 19968: jis0212<<14 | 0x30<<7 | 0x01, - 31203 - 19968: jis0208<<14 | 0x42<<7 | 0x21, - 31204 - 19968: jis0208<<14 | 0x26<<7 | 0x48, - 31205 - 19968: jis0212<<14 | 0x30<<7 | 0x02, - 31206 - 19968: jis0208<<14 | 0x1E<<7 | 0x20, - 31207 - 19968: jis0208<<14 | 0x42<<7 | 0x1E, - 31209 - 19968: jis0208<<14 | 0x22<<7 | 0x40, - 31210 - 19968: jis0212<<14 | 0x30<<7 | 0x03, - 31211 - 19968: jis0212<<14 | 0x30<<7 | 0x04, - 31212 - 19968: jis0208<<14 | 0x42<<7 | 0x1F, - 31213 - 19968: jis0212<<14 | 0x30<<7 | 0x05, - 31216 - 19968: jis0208<<14 | 0x1D<<7 | 0x2D, - 31217 - 19968: jis0212<<14 | 0x30<<7 | 0x06, - 31224 - 19968: jis0212<<14 | 0x30<<7 | 0x07, - 31227 - 19968: jis0208<<14 | 0x0F<<7 | 0x3B, - 31228 - 19968: jis0212<<14 | 0x30<<7 | 0x08, - 31232 - 19968: jis0208<<14 | 0x14<<7 | 0x08, - 31234 - 19968: jis0212<<14 | 0x30<<7 | 0x09, - 31235 - 19968: jis0212<<14 | 0x30<<7 | 0x0A, - 31239 - 19968: jis0212<<14 | 0x30<<7 | 0x0B, - 31240 - 19968: jis0208<<14 | 0x42<<7 | 0x22, - 31241 - 19968: jis0212<<14 | 0x30<<7 | 0x0C, - 31242 - 19968: jis0212<<14 | 0x30<<7 | 0x0D, - 31243 - 19968: jis0208<<14 | 0x23<<7 | 0x57, - 31244 - 19968: jis0212<<14 | 0x30<<7 | 0x0E, - 31245 - 19968: jis0208<<14 | 0x42<<7 | 0x23, - 31246 - 19968: jis0208<<14 | 0x1F<<7 | 0x26, - 31249 - 19968: jis0212<<14 | 0x30<<7 | 0x0F, - 31252 - 19968: jis0208<<14 | 0x2B<<7 | 0x0C, - 31253 - 19968: jis0212<<14 | 0x30<<7 | 0x10, - 31255 - 19968: jis0208<<14 | 0x28<<7 | 0x02, - 31256 - 19968: jis0208<<14 | 0x42<<7 | 0x24, - 31257 - 19968: jis0208<<14 | 0x42<<7 | 0x25, - 31258 - 19968: jis0208<<14 | 0x22<<7 | 0x34, - 31259 - 19968: jis0212<<14 | 0x30<<7 | 0x11, - 31260 - 19968: jis0208<<14 | 0x2D<<7 | 0x26, - 31262 - 19968: jis0212<<14 | 0x30<<7 | 0x12, - 31263 - 19968: jis0208<<14 | 0x42<<7 | 0x27, - 31264 - 19968: jis0208<<14 | 0x42<<7 | 0x26, - 31265 - 19968: jis0212<<14 | 0x30<<7 | 0x13, - 31271 - 19968: jis0212<<14 | 0x30<<7 | 0x14, - 31275 - 19968: jis0212<<14 | 0x30<<7 | 0x15, - 31277 - 19968: jis0212<<14 | 0x30<<7 | 0x16, - 31278 - 19968: jis0208<<14 | 0x1B<<7 | 0x4E, - 31279 - 19968: jis0212<<14 | 0x30<<7 | 0x17, - 31280 - 19968: jis0212<<14 | 0x30<<7 | 0x18, - 31281 - 19968: jis0208<<14 | 0x42<<7 | 0x29, - 31282 - 19968: jis0208<<14 | 0x0F<<7 | 0x4F, - 31284 - 19968: jis0212<<14 | 0x30<<7 | 0x19, - 31285 - 19968: jis0212<<14 | 0x30<<7 | 0x1A, - 31287 - 19968: jis0208<<14 | 0x42<<7 | 0x2C, - 31288 - 19968: jis0212<<14 | 0x30<<7 | 0x1B, - 31289 - 19968: jis0212<<14 | 0x30<<7 | 0x1C, - 31290 - 19968: jis0212<<14 | 0x30<<7 | 0x1D, - 31291 - 19968: jis0208<<14 | 0x42<<7 | 0x2A, - 31292 - 19968: jis0208<<14 | 0x11<<7 | 0x33, - 31293 - 19968: jis0208<<14 | 0x16<<7 | 0x2D, - 31294 - 19968: jis0208<<14 | 0x42<<7 | 0x2B, - 31295 - 19968: jis0208<<14 | 0x18<<7 | 0x25, - 31296 - 19968: jis0208<<14 | 0x18<<7 | 0x51, - 31298 - 19968: jis0208<<14 | 0x29<<7 | 0x45, - 31299 - 19968: jis0208<<14 | 0x42<<7 | 0x2D, - 31300 - 19968: jis0212<<14 | 0x30<<7 | 0x1E, - 31301 - 19968: jis0212<<14 | 0x30<<7 | 0x1F, - 31302 - 19968: jis0208<<14 | 0x2A<<7 | 0x33, - 31303 - 19968: jis0212<<14 | 0x30<<7 | 0x20, - 31304 - 19968: jis0212<<14 | 0x30<<7 | 0x21, - 31305 - 19968: jis0208<<14 | 0x42<<7 | 0x2F, - 31308 - 19968: jis0212<<14 | 0x30<<7 | 0x22, - 31309 - 19968: jis0208<<14 | 0x1F<<7 | 0x30, - 31310 - 19968: jis0208<<14 | 0x10<<7 | 0x2E, - 31311 - 19968: jis0208<<14 | 0x11<<7 | 0x19, - 31312 - 19968: jis0208<<14 | 0x0F<<7 | 0x0B, - 31317 - 19968: jis0212<<14 | 0x30<<7 | 0x23, - 31318 - 19968: jis0212<<14 | 0x30<<7 | 0x24, - 31319 - 19968: jis0208<<14 | 0x42<<7 | 0x2E, - 31321 - 19968: jis0212<<14 | 0x30<<7 | 0x25, - 31324 - 19968: jis0212<<14 | 0x30<<7 | 0x26, - 31325 - 19968: jis0212<<14 | 0x30<<7 | 0x27, - 31327 - 19968: jis0212<<14 | 0x30<<7 | 0x28, - 31328 - 19968: jis0212<<14 | 0x30<<7 | 0x29, - 31329 - 19968: jis0208<<14 | 0x42<<7 | 0x30, - 31330 - 19968: jis0208<<14 | 0x42<<7 | 0x31, - 31331 - 19968: jis0208<<14 | 0x1D<<7 | 0x56, - 31333 - 19968: jis0212<<14 | 0x30<<7 | 0x2A, - 31335 - 19968: jis0212<<14 | 0x30<<7 | 0x2B, - 31337 - 19968: jis0208<<14 | 0x42<<7 | 0x32, - 31338 - 19968: jis0212<<14 | 0x30<<7 | 0x2C, - 31339 - 19968: jis0208<<14 | 0x12<<7 | 0x2E, - 31341 - 19968: jis0212<<14 | 0x30<<7 | 0x2D, - 31344 - 19968: jis0208<<14 | 0x42<<7 | 0x34, - 31348 - 19968: jis0208<<14 | 0x16<<7 | 0x49, - 31349 - 19968: jis0212<<14 | 0x30<<7 | 0x2E, - 31350 - 19968: jis0208<<14 | 0x14<<7 | 0x45, - 31352 - 19968: jis0212<<14 | 0x30<<7 | 0x2F, - 31353 - 19968: jis0208<<14 | 0x42<<7 | 0x35, - 31354 - 19968: jis0208<<14 | 0x15<<7 | 0x54, - 31357 - 19968: jis0208<<14 | 0x42<<7 | 0x36, - 31358 - 19968: jis0212<<14 | 0x30<<7 | 0x30, - 31359 - 19968: jis0208<<14 | 0x1F<<7 | 0x5B, - 31360 - 19968: jis0212<<14 | 0x30<<7 | 0x31, - 31361 - 19968: jis0208<<14 | 0x25<<7 | 0x2C, - 31362 - 19968: jis0212<<14 | 0x30<<7 | 0x32, - 31363 - 19968: jis0208<<14 | 0x1F<<7 | 0x3F, - 31364 - 19968: jis0208<<14 | 0x19<<7 | 0x54, - 31365 - 19968: jis0212<<14 | 0x30<<7 | 0x33, - 31366 - 19968: jis0212<<14 | 0x30<<7 | 0x34, - 31368 - 19968: jis0208<<14 | 0x42<<7 | 0x37, - 31370 - 19968: jis0212<<14 | 0x30<<7 | 0x35, - 31371 - 19968: jis0212<<14 | 0x30<<7 | 0x36, - 31376 - 19968: jis0212<<14 | 0x30<<7 | 0x37, - 31377 - 19968: jis0212<<14 | 0x30<<7 | 0x38, - 31378 - 19968: jis0208<<14 | 0x22<<7 | 0x41, - 31379 - 19968: jis0208<<14 | 0x20<<7 | 0x4A, - 31380 - 19968: jis0212<<14 | 0x30<<7 | 0x39, - 31381 - 19968: jis0208<<14 | 0x42<<7 | 0x39, - 31382 - 19968: jis0208<<14 | 0x42<<7 | 0x3B, - 31383 - 19968: jis0208<<14 | 0x42<<7 | 0x38, - 31384 - 19968: jis0208<<14 | 0x42<<7 | 0x3A, - 31390 - 19968: jis0212<<14 | 0x30<<7 | 0x3A, - 31391 - 19968: jis0208<<14 | 0x16<<7 | 0x01, - 31392 - 19968: jis0212<<14 | 0x30<<7 | 0x3B, - 31395 - 19968: jis0212<<14 | 0x30<<7 | 0x3C, - 31401 - 19968: jis0208<<14 | 0x42<<7 | 0x3C, - 31402 - 19968: jis0208<<14 | 0x16<<7 | 0x05, - 31404 - 19968: jis0212<<14 | 0x30<<7 | 0x3D, - 31406 - 19968: jis0208<<14 | 0x14<<7 | 0x46, - 31407 - 19968: jis0208<<14 | 0x2C<<7 | 0x31, - 31408 - 19968: jis0208<<14 | 0x42<<7 | 0x3E, - 31411 - 19968: jis0212<<14 | 0x30<<7 | 0x3E, - 31413 - 19968: jis0212<<14 | 0x30<<7 | 0x3F, - 31414 - 19968: jis0208<<14 | 0x42<<7 | 0x3F, - 31417 - 19968: jis0212<<14 | 0x30<<7 | 0x40, - 31418 - 19968: jis0208<<14 | 0x10<<7 | 0x0D, - 31419 - 19968: jis0212<<14 | 0x30<<7 | 0x41, - 31420 - 19968: jis0212<<14 | 0x30<<7 | 0x42, - 31423 - 19968: jis0208<<14 | 0x42<<7 | 0x42, - 31427 - 19968: jis0208<<14 | 0x12<<7 | 0x55, - 31428 - 19968: jis0208<<14 | 0x42<<7 | 0x41, - 31429 - 19968: jis0208<<14 | 0x42<<7 | 0x40, - 31430 - 19968: jis0212<<14 | 0x30<<7 | 0x43, - 31431 - 19968: jis0208<<14 | 0x42<<7 | 0x44, - 31432 - 19968: jis0208<<14 | 0x42<<7 | 0x3D, - 31433 - 19968: jis0212<<14 | 0x30<<7 | 0x44, - 31434 - 19968: jis0208<<14 | 0x42<<7 | 0x45, - 31435 - 19968: jis0208<<14 | 0x2D<<7 | 0x08, - 31436 - 19968: jis0212<<14 | 0x30<<7 | 0x45, - 31437 - 19968: jis0208<<14 | 0x42<<7 | 0x46, - 31438 - 19968: jis0212<<14 | 0x30<<7 | 0x46, - 31439 - 19968: jis0208<<14 | 0x42<<7 | 0x47, - 31441 - 19968: jis0208<<14 | 0x5A<<7 | 0x27, - 31442 - 19968: jis0208<<14 | 0x33<<7 | 0x53, - 31443 - 19968: jis0208<<14 | 0x42<<7 | 0x49, - 31445 - 19968: jis0208<<14 | 0x42<<7 | 0x48, - 31449 - 19968: jis0208<<14 | 0x42<<7 | 0x4A, - 31450 - 19968: jis0208<<14 | 0x42<<7 | 0x4B, - 31451 - 19968: jis0212<<14 | 0x30<<7 | 0x48, - 31452 - 19968: jis0208<<14 | 0x2D<<7 | 0x14, - 31453 - 19968: jis0208<<14 | 0x42<<7 | 0x4C, - 31455 - 19968: jis0208<<14 | 0x4F<<7 | 0x4E, - 31456 - 19968: jis0208<<14 | 0x1D<<7 | 0x2E, - 31457 - 19968: jis0208<<14 | 0x42<<7 | 0x4D, - 31458 - 19968: jis0208<<14 | 0x42<<7 | 0x4E, - 31459 - 19968: jis0208<<14 | 0x1C<<7 | 0x36, - 31461 - 19968: jis0208<<14 | 0x25<<7 | 0x17, - 31462 - 19968: jis0208<<14 | 0x42<<7 | 0x4F, - 31463 - 19968: jis0208<<14 | 0x5A<<7 | 0x28, - 31464 - 19968: jis0212<<14 | 0x30<<7 | 0x49, - 31465 - 19968: jis0212<<14 | 0x30<<7 | 0x4A, - 31466 - 19968: jis0208<<14 | 0x22<<7 | 0x07, - 31467 - 19968: jis0208<<14 | 0x5A<<7 | 0x2A, - 31468 - 19968: jis0212<<14 | 0x30<<7 | 0x4C, - 31469 - 19968: jis0208<<14 | 0x42<<7 | 0x50, - 31471 - 19968: jis0208<<14 | 0x22<<7 | 0x1B, - 31472 - 19968: jis0208<<14 | 0x42<<7 | 0x51, - 31473 - 19968: jis0212<<14 | 0x30<<7 | 0x4D, - 31476 - 19968: jis0212<<14 | 0x30<<7 | 0x4E, - 31478 - 19968: jis0208<<14 | 0x15<<7 | 0x04, - 31480 - 19968: jis0208<<14 | 0x30<<7 | 0x1E, - 31481 - 19968: jis0208<<14 | 0x22<<7 | 0x3C, - 31482 - 19968: jis0208<<14 | 0x1B<<7 | 0x12, - 31483 - 19968: jis0212<<14 | 0x30<<7 | 0x4F, - 31485 - 19968: jis0212<<14 | 0x30<<7 | 0x50, - 31486 - 19968: jis0212<<14 | 0x30<<7 | 0x51, - 31487 - 19968: jis0208<<14 | 0x13<<7 | 0x27, - 31490 - 19968: jis0208<<14 | 0x42<<7 | 0x52, - 31492 - 19968: jis0208<<14 | 0x43<<7 | 0x01, - 31494 - 19968: jis0208<<14 | 0x42<<7 | 0x55, - 31495 - 19968: jis0212<<14 | 0x30<<7 | 0x52, - 31496 - 19968: jis0208<<14 | 0x14<<7 | 0x47, - 31498 - 19968: jis0208<<14 | 0x42<<7 | 0x54, - 31499 - 19968: jis0208<<14 | 0x43<<7 | 0x03, - 31503 - 19968: jis0208<<14 | 0x42<<7 | 0x53, - 31505 - 19968: jis0208<<14 | 0x1D<<7 | 0x2F, - 31508 - 19968: jis0212<<14 | 0x30<<7 | 0x53, - 31512 - 19968: jis0208<<14 | 0x42<<7 | 0x57, - 31513 - 19968: jis0208<<14 | 0x42<<7 | 0x58, - 31515 - 19968: jis0208<<14 | 0x24<<7 | 0x0A, - 31518 - 19968: jis0208<<14 | 0x42<<7 | 0x59, - 31519 - 19968: jis0212<<14 | 0x30<<7 | 0x54, - 31520 - 19968: jis0208<<14 | 0x12<<7 | 0x3D, - 31523 - 19968: jis0212<<14 | 0x30<<7 | 0x55, - 31525 - 19968: jis0208<<14 | 0x1E<<7 | 0x39, - 31526 - 19968: jis0208<<14 | 0x28<<7 | 0x43, - 31527 - 19968: jis0212<<14 | 0x30<<7 | 0x56, - 31528 - 19968: jis0208<<14 | 0x42<<7 | 0x5B, - 31529 - 19968: jis0212<<14 | 0x30<<7 | 0x57, - 31530 - 19968: jis0212<<14 | 0x30<<7 | 0x58, - 31531 - 19968: jis0212<<14 | 0x30<<7 | 0x59, - 31532 - 19968: jis0208<<14 | 0x21<<7 | 0x47, - 31533 - 19968: jis0212<<14 | 0x30<<7 | 0x5A, - 31534 - 19968: jis0212<<14 | 0x30<<7 | 0x5B, - 31535 - 19968: jis0212<<14 | 0x30<<7 | 0x5C, - 31536 - 19968: jis0212<<14 | 0x30<<7 | 0x5D, - 31537 - 19968: jis0212<<14 | 0x31<<7 | 0x00, - 31539 - 19968: jis0208<<14 | 0x42<<7 | 0x56, - 31540 - 19968: jis0212<<14 | 0x31<<7 | 0x01, - 31541 - 19968: jis0208<<14 | 0x42<<7 | 0x5A, - 31542 - 19968: jis0208<<14 | 0x42<<7 | 0x5C, - 31545 - 19968: jis0208<<14 | 0x19<<7 | 0x5A, - 31549 - 19968: jis0212<<14 | 0x31<<7 | 0x02, - 31551 - 19968: jis0212<<14 | 0x31<<7 | 0x03, - 31552 - 19968: jis0212<<14 | 0x31<<7 | 0x04, - 31553 - 19968: jis0212<<14 | 0x31<<7 | 0x05, - 31557 - 19968: jis0208<<14 | 0x43<<7 | 0x05, - 31558 - 19968: jis0208<<14 | 0x28<<7 | 0x0D, - 31559 - 19968: jis0212<<14 | 0x31<<7 | 0x06, - 31560 - 19968: jis0208<<14 | 0x27<<7 | 0x05, - 31561 - 19968: jis0208<<14 | 0x24<<7 | 0x58, - 31563 - 19968: jis0208<<14 | 0x15<<7 | 0x39, - 31564 - 19968: jis0208<<14 | 0x43<<7 | 0x04, - 31565 - 19968: jis0208<<14 | 0x43<<7 | 0x02, - 31566 - 19968: jis0212<<14 | 0x31<<7 | 0x07, - 31567 - 19968: jis0208<<14 | 0x27<<7 | 0x14, - 31568 - 19968: jis0208<<14 | 0x42<<7 | 0x5D, - 31569 - 19968: jis0208<<14 | 0x22<<7 | 0x3D, - 31570 - 19968: jis0208<<14 | 0x24<<7 | 0x5A, - 31572 - 19968: jis0208<<14 | 0x24<<7 | 0x59, - 31573 - 19968: jis0212<<14 | 0x31<<7 | 0x08, - 31574 - 19968: jis0208<<14 | 0x19<<7 | 0x55, - 31581 - 19968: jis0208<<14 | 0x43<<7 | 0x17, - 31584 - 19968: jis0212<<14 | 0x31<<7 | 0x09, - 31588 - 19968: jis0212<<14 | 0x31<<7 | 0x0A, - 31589 - 19968: jis0208<<14 | 0x43<<7 | 0x07, - 31590 - 19968: jis0212<<14 | 0x31<<7 | 0x0B, - 31591 - 19968: jis0208<<14 | 0x43<<7 | 0x09, - 31593 - 19968: jis0212<<14 | 0x31<<7 | 0x0C, - 31594 - 19968: jis0212<<14 | 0x31<<7 | 0x0D, - 31596 - 19968: jis0208<<14 | 0x43<<7 | 0x0C, - 31597 - 19968: jis0212<<14 | 0x31<<7 | 0x0E, - 31598 - 19968: jis0208<<14 | 0x43<<7 | 0x0D, - 31599 - 19968: jis0212<<14 | 0x31<<7 | 0x0F, - 31600 - 19968: jis0208<<14 | 0x43<<7 | 0x0A, - 31601 - 19968: jis0208<<14 | 0x43<<7 | 0x0B, - 31602 - 19968: jis0212<<14 | 0x31<<7 | 0x10, - 31603 - 19968: jis0212<<14 | 0x31<<7 | 0x11, - 31604 - 19968: jis0208<<14 | 0x43<<7 | 0x08, - 31605 - 19968: jis0208<<14 | 0x43<<7 | 0x06, - 31607 - 19968: jis0212<<14 | 0x31<<7 | 0x12, - 31610 - 19968: jis0208<<14 | 0x43<<7 | 0x00, - 31620 - 19968: jis0212<<14 | 0x31<<7 | 0x13, - 31622 - 19968: jis0208<<14 | 0x29<<7 | 0x2E, - 31623 - 19968: jis0208<<14 | 0x11<<7 | 0x34, - 31625 - 19968: jis0212<<14 | 0x31<<7 | 0x14, - 31627 - 19968: jis0208<<14 | 0x43<<7 | 0x14, - 31629 - 19968: jis0208<<14 | 0x43<<7 | 0x11, - 31630 - 19968: jis0212<<14 | 0x31<<7 | 0x15, - 31631 - 19968: jis0208<<14 | 0x43<<7 | 0x16, - 31632 - 19968: jis0212<<14 | 0x31<<7 | 0x16, - 31633 - 19968: jis0212<<14 | 0x31<<7 | 0x17, - 31634 - 19968: jis0208<<14 | 0x43<<7 | 0x15, - 31636 - 19968: jis0208<<14 | 0x26<<7 | 0x52, - 31637 - 19968: jis0208<<14 | 0x2B<<7 | 0x06, - 31638 - 19968: jis0212<<14 | 0x31<<7 | 0x18, - 31639 - 19968: jis0208<<14 | 0x1A<<7 | 0x1A, - 31640 - 19968: jis0208<<14 | 0x43<<7 | 0x0F, - 31641 - 19968: jis0208<<14 | 0x43<<7 | 0x18, - 31642 - 19968: jis0208<<14 | 0x43<<7 | 0x13, - 31643 - 19968: jis0212<<14 | 0x31<<7 | 0x19, - 31644 - 19968: jis0208<<14 | 0x43<<7 | 0x12, - 31645 - 19968: jis0208<<14 | 0x43<<7 | 0x0E, - 31646 - 19968: jis0208<<14 | 0x5A<<7 | 0x2B, - 31647 - 19968: jis0208<<14 | 0x43<<7 | 0x10, - 31648 - 19968: jis0212<<14 | 0x31<<7 | 0x1B, - 31649 - 19968: jis0208<<14 | 0x13<<7 | 0x28, - 31653 - 19968: jis0212<<14 | 0x31<<7 | 0x1C, - 31658 - 19968: jis0208<<14 | 0x22<<7 | 0x1C, - 31660 - 19968: jis0212<<14 | 0x31<<7 | 0x1D, - 31661 - 19968: jis0208<<14 | 0x1F<<7 | 0x5C, - 31663 - 19968: jis0212<<14 | 0x31<<7 | 0x1E, - 31664 - 19968: jis0212<<14 | 0x31<<7 | 0x1F, - 31665 - 19968: jis0208<<14 | 0x27<<7 | 0x01, - 31666 - 19968: jis0212<<14 | 0x31<<7 | 0x20, - 31668 - 19968: jis0208<<14 | 0x43<<7 | 0x1D, - 31669 - 19968: jis0212<<14 | 0x31<<7 | 0x21, - 31670 - 19968: jis0212<<14 | 0x31<<7 | 0x22, - 31672 - 19968: jis0208<<14 | 0x27<<7 | 0x03, - 31674 - 19968: jis0212<<14 | 0x31<<7 | 0x23, - 31675 - 19968: jis0212<<14 | 0x31<<7 | 0x24, - 31676 - 19968: jis0212<<14 | 0x31<<7 | 0x25, - 31677 - 19968: jis0212<<14 | 0x31<<7 | 0x26, - 31680 - 19968: jis0208<<14 | 0x1F<<7 | 0x40, - 31681 - 19968: jis0208<<14 | 0x43<<7 | 0x1A, - 31682 - 19968: jis0212<<14 | 0x31<<7 | 0x27, - 31684 - 19968: jis0208<<14 | 0x27<<7 | 0x2E, - 31685 - 19968: jis0212<<14 | 0x31<<7 | 0x28, - 31686 - 19968: jis0208<<14 | 0x43<<7 | 0x1E, - 31687 - 19968: jis0208<<14 | 0x29<<7 | 0x32, - 31688 - 19968: jis0212<<14 | 0x31<<7 | 0x29, - 31689 - 19968: jis0208<<14 | 0x22<<7 | 0x3A, - 31690 - 19968: jis0212<<14 | 0x31<<7 | 0x2A, - 31691 - 19968: jis0208<<14 | 0x43<<7 | 0x19, - 31692 - 19968: jis0208<<14 | 0x43<<7 | 0x1B, - 31695 - 19968: jis0208<<14 | 0x43<<7 | 0x1C, - 31700 - 19968: jis0212<<14 | 0x31<<7 | 0x2B, - 31702 - 19968: jis0212<<14 | 0x31<<7 | 0x2C, - 31703 - 19968: jis0212<<14 | 0x31<<7 | 0x2D, - 31705 - 19968: jis0212<<14 | 0x31<<7 | 0x2E, - 31706 - 19968: jis0212<<14 | 0x31<<7 | 0x2F, - 31707 - 19968: jis0212<<14 | 0x31<<7 | 0x30, - 31709 - 19968: jis0208<<14 | 0x43<<7 | 0x1F, - 31712 - 19968: jis0208<<14 | 0x1B<<7 | 0x23, - 31716 - 19968: jis0208<<14 | 0x25<<7 | 0x25, - 31717 - 19968: jis0208<<14 | 0x43<<7 | 0x24, - 31718 - 19968: jis0208<<14 | 0x43<<7 | 0x23, - 31720 - 19968: jis0212<<14 | 0x31<<7 | 0x31, - 31721 - 19968: jis0208<<14 | 0x43<<7 | 0x20, - 31722 - 19968: jis0212<<14 | 0x31<<7 | 0x32, - 31725 - 19968: jis0208<<14 | 0x2E<<7 | 0x15, - 31730 - 19968: jis0212<<14 | 0x31<<7 | 0x33, - 31731 - 19968: jis0208<<14 | 0x43<<7 | 0x29, - 31732 - 19968: jis0212<<14 | 0x31<<7 | 0x34, - 31733 - 19968: jis0212<<14 | 0x31<<7 | 0x35, - 31734 - 19968: jis0208<<14 | 0x43<<7 | 0x2D, - 31735 - 19968: jis0208<<14 | 0x43<<7 | 0x2A, - 31736 - 19968: jis0212<<14 | 0x31<<7 | 0x36, - 31737 - 19968: jis0212<<14 | 0x31<<7 | 0x37, - 31738 - 19968: jis0212<<14 | 0x31<<7 | 0x38, - 31740 - 19968: jis0212<<14 | 0x31<<7 | 0x39, - 31742 - 19968: jis0212<<14 | 0x31<<7 | 0x3A, - 31744 - 19968: jis0208<<14 | 0x43<<7 | 0x26, - 31745 - 19968: jis0212<<14 | 0x31<<7 | 0x3B, - 31746 - 19968: jis0212<<14 | 0x31<<7 | 0x3C, - 31747 - 19968: jis0212<<14 | 0x31<<7 | 0x3D, - 31748 - 19968: jis0212<<14 | 0x31<<7 | 0x3E, - 31750 - 19968: jis0212<<14 | 0x31<<7 | 0x3F, - 31751 - 19968: jis0208<<14 | 0x43<<7 | 0x27, - 31753 - 19968: jis0212<<14 | 0x31<<7 | 0x40, - 31755 - 19968: jis0212<<14 | 0x31<<7 | 0x41, - 31756 - 19968: jis0212<<14 | 0x31<<7 | 0x42, - 31757 - 19968: jis0208<<14 | 0x43<<7 | 0x2C, - 31758 - 19968: jis0212<<14 | 0x31<<7 | 0x43, - 31759 - 19968: jis0212<<14 | 0x31<<7 | 0x44, - 31761 - 19968: jis0208<<14 | 0x43<<7 | 0x21, - 31762 - 19968: jis0208<<14 | 0x31<<7 | 0x34, - 31763 - 19968: jis0208<<14 | 0x43<<7 | 0x28, - 31764 - 19968: jis0208<<14 | 0x43<<7 | 0x22, - 31767 - 19968: jis0208<<14 | 0x43<<7 | 0x2B, - 31769 - 19968: jis0212<<14 | 0x31<<7 | 0x45, - 31771 - 19968: jis0212<<14 | 0x31<<7 | 0x46, - 31775 - 19968: jis0208<<14 | 0x43<<7 | 0x31, - 31776 - 19968: jis0212<<14 | 0x31<<7 | 0x47, - 31777 - 19968: jis0208<<14 | 0x13<<7 | 0x29, - 31779 - 19968: jis0208<<14 | 0x43<<7 | 0x2E, - 31781 - 19968: jis0212<<14 | 0x31<<7 | 0x48, - 31782 - 19968: jis0212<<14 | 0x31<<7 | 0x49, - 31783 - 19968: jis0208<<14 | 0x43<<7 | 0x2F, - 31784 - 19968: jis0212<<14 | 0x31<<7 | 0x4A, - 31786 - 19968: jis0208<<14 | 0x43<<7 | 0x30, - 31787 - 19968: jis0208<<14 | 0x43<<7 | 0x33, - 31788 - 19968: jis0212<<14 | 0x31<<7 | 0x4B, - 31793 - 19968: jis0212<<14 | 0x31<<7 | 0x4C, - 31795 - 19968: jis0212<<14 | 0x31<<7 | 0x4D, - 31796 - 19968: jis0212<<14 | 0x31<<7 | 0x4E, - 31798 - 19968: jis0212<<14 | 0x31<<7 | 0x4F, - 31799 - 19968: jis0208<<14 | 0x43<<7 | 0x32, - 31800 - 19968: jis0208<<14 | 0x27<<7 | 0x55, - 31801 - 19968: jis0212<<14 | 0x31<<7 | 0x50, - 31802 - 19968: jis0212<<14 | 0x31<<7 | 0x51, - 31805 - 19968: jis0208<<14 | 0x43<<7 | 0x34, - 31806 - 19968: jis0208<<14 | 0x2D<<7 | 0x5B, - 31807 - 19968: jis0208<<14 | 0x29<<7 | 0x4C, - 31808 - 19968: jis0208<<14 | 0x43<<7 | 0x39, - 31811 - 19968: jis0208<<14 | 0x43<<7 | 0x36, - 31814 - 19968: jis0212<<14 | 0x31<<7 | 0x52, - 31818 - 19968: jis0212<<14 | 0x31<<7 | 0x53, - 31820 - 19968: jis0208<<14 | 0x43<<7 | 0x35, - 31821 - 19968: jis0208<<14 | 0x1F<<7 | 0x31, - 31823 - 19968: jis0208<<14 | 0x43<<7 | 0x38, - 31824 - 19968: jis0208<<14 | 0x43<<7 | 0x3A, - 31825 - 19968: jis0212<<14 | 0x31<<7 | 0x55, - 31826 - 19968: jis0212<<14 | 0x31<<7 | 0x56, - 31827 - 19968: jis0212<<14 | 0x31<<7 | 0x57, - 31828 - 19968: jis0208<<14 | 0x43<<7 | 0x37, - 31829 - 19968: jis0212<<14 | 0x31<<7 | 0x54, - 31830 - 19968: jis0208<<14 | 0x43<<7 | 0x3E, - 31832 - 19968: jis0208<<14 | 0x43<<7 | 0x3B, - 31833 - 19968: jis0212<<14 | 0x31<<7 | 0x58, - 31834 - 19968: jis0212<<14 | 0x31<<7 | 0x59, - 31835 - 19968: jis0212<<14 | 0x31<<7 | 0x5A, - 31836 - 19968: jis0212<<14 | 0x31<<7 | 0x5B, - 31837 - 19968: jis0212<<14 | 0x31<<7 | 0x5C, - 31838 - 19968: jis0212<<14 | 0x31<<7 | 0x5D, - 31839 - 19968: jis0208<<14 | 0x43<<7 | 0x3C, - 31840 - 19968: jis0208<<14 | 0x43<<7 | 0x25, - 31841 - 19968: jis0212<<14 | 0x32<<7 | 0x00, - 31843 - 19968: jis0212<<14 | 0x32<<7 | 0x01, - 31844 - 19968: jis0208<<14 | 0x43<<7 | 0x3D, - 31845 - 19968: jis0208<<14 | 0x43<<7 | 0x3F, - 31847 - 19968: jis0212<<14 | 0x32<<7 | 0x02, - 31849 - 19968: jis0212<<14 | 0x32<<7 | 0x03, - 31852 - 19968: jis0208<<14 | 0x43<<7 | 0x40, - 31853 - 19968: jis0212<<14 | 0x32<<7 | 0x04, - 31854 - 19968: jis0212<<14 | 0x32<<7 | 0x05, - 31856 - 19968: jis0212<<14 | 0x32<<7 | 0x06, - 31858 - 19968: jis0212<<14 | 0x32<<7 | 0x07, - 31859 - 19968: jis0208<<14 | 0x29<<7 | 0x25, - 31861 - 19968: jis0208<<14 | 0x43<<7 | 0x41, - 31865 - 19968: jis0212<<14 | 0x32<<7 | 0x08, - 31868 - 19968: jis0212<<14 | 0x32<<7 | 0x09, - 31869 - 19968: jis0212<<14 | 0x32<<7 | 0x0A, - 31870 - 19968: jis0208<<14 | 0x2B<<7 | 0x41, - 31873 - 19968: jis0208<<14 | 0x15<<7 | 0x2D, - 31874 - 19968: jis0208<<14 | 0x16<<7 | 0x08, - 31875 - 19968: jis0208<<14 | 0x43<<7 | 0x42, - 31878 - 19968: jis0212<<14 | 0x32<<7 | 0x0B, - 31879 - 19968: jis0212<<14 | 0x32<<7 | 0x0C, - 31881 - 19968: jis0208<<14 | 0x29<<7 | 0x13, - 31883 - 19968: jis0208<<14 | 0x1E<<7 | 0x47, - 31885 - 19968: jis0208<<14 | 0x2B<<7 | 0x0F, - 31887 - 19968: jis0212<<14 | 0x32<<7 | 0x0D, - 31888 - 19968: jis0208<<14 | 0x43<<7 | 0x43, - 31890 - 19968: jis0208<<14 | 0x2D<<7 | 0x12, - 31892 - 19968: jis0212<<14 | 0x32<<7 | 0x0E, - 31893 - 19968: jis0208<<14 | 0x26<<7 | 0x53, - 31895 - 19968: jis0208<<14 | 0x20<<7 | 0x25, - 31896 - 19968: jis0208<<14 | 0x26<<7 | 0x13, - 31899 - 19968: jis0208<<14 | 0x1C<<7 | 0x2C, - 31902 - 19968: jis0212<<14 | 0x32<<7 | 0x0F, - 31903 - 19968: jis0208<<14 | 0x0F<<7 | 0x1F, - 31904 - 19968: jis0212<<14 | 0x32<<7 | 0x10, - 31905 - 19968: jis0208<<14 | 0x43<<7 | 0x48, - 31906 - 19968: jis0208<<14 | 0x43<<7 | 0x46, - 31908 - 19968: jis0208<<14 | 0x43<<7 | 0x44, - 31909 - 19968: jis0208<<14 | 0x13<<7 | 0x00, - 31910 - 19968: jis0212<<14 | 0x32<<7 | 0x11, - 31911 - 19968: jis0208<<14 | 0x1D<<7 | 0x30, - 31912 - 19968: jis0208<<14 | 0x43<<7 | 0x49, - 31915 - 19968: jis0208<<14 | 0x43<<7 | 0x47, - 31917 - 19968: jis0208<<14 | 0x43<<7 | 0x45, - 31918 - 19968: jis0208<<14 | 0x43<<7 | 0x4D, - 31920 - 19968: jis0212<<14 | 0x32<<7 | 0x12, - 31921 - 19968: jis0208<<14 | 0x43<<7 | 0x4C, - 31922 - 19968: jis0208<<14 | 0x43<<7 | 0x4B, - 31923 - 19968: jis0208<<14 | 0x43<<7 | 0x4A, - 31926 - 19968: jis0212<<14 | 0x32<<7 | 0x13, - 31927 - 19968: jis0212<<14 | 0x32<<7 | 0x14, - 31929 - 19968: jis0208<<14 | 0x43<<7 | 0x4E, - 31930 - 19968: jis0212<<14 | 0x32<<7 | 0x15, - 31931 - 19968: jis0212<<14 | 0x32<<7 | 0x16, - 31932 - 19968: jis0212<<14 | 0x32<<7 | 0x17, - 31933 - 19968: jis0208<<14 | 0x43<<7 | 0x4F, - 31934 - 19968: jis0208<<14 | 0x1F<<7 | 0x19, - 31935 - 19968: jis0212<<14 | 0x32<<7 | 0x18, - 31936 - 19968: jis0208<<14 | 0x43<<7 | 0x50, - 31938 - 19968: jis0208<<14 | 0x43<<7 | 0x52, - 31940 - 19968: jis0212<<14 | 0x32<<7 | 0x19, - 31941 - 19968: jis0208<<14 | 0x43<<7 | 0x51, - 31943 - 19968: jis0212<<14 | 0x32<<7 | 0x1A, - 31944 - 19968: jis0212<<14 | 0x32<<7 | 0x1B, - 31945 - 19968: jis0212<<14 | 0x32<<7 | 0x1C, - 31946 - 19968: jis0208<<14 | 0x17<<7 | 0x31, - 31949 - 19968: jis0212<<14 | 0x32<<7 | 0x1D, - 31950 - 19968: jis0208<<14 | 0x20<<7 | 0x17, - 31951 - 19968: jis0212<<14 | 0x32<<7 | 0x1E, - 31954 - 19968: jis0208<<14 | 0x43<<7 | 0x54, - 31955 - 19968: jis0212<<14 | 0x32<<7 | 0x1F, - 31956 - 19968: jis0212<<14 | 0x32<<7 | 0x20, - 31957 - 19968: jis0212<<14 | 0x32<<7 | 0x21, - 31958 - 19968: jis0208<<14 | 0x24<<7 | 0x5B, - 31959 - 19968: jis0212<<14 | 0x32<<7 | 0x22, - 31960 - 19968: jis0208<<14 | 0x43<<7 | 0x53, - 31961 - 19968: jis0212<<14 | 0x32<<7 | 0x23, - 31962 - 19968: jis0212<<14 | 0x32<<7 | 0x24, - 31964 - 19968: jis0208<<14 | 0x43<<7 | 0x55, - 31965 - 19968: jis0212<<14 | 0x32<<7 | 0x25, - 31966 - 19968: jis0208<<14 | 0x29<<7 | 0x14, - 31967 - 19968: jis0208<<14 | 0x20<<7 | 0x4B, - 31968 - 19968: jis0208<<14 | 0x18<<7 | 0x26, - 31970 - 19968: jis0208<<14 | 0x43<<7 | 0x56, - 31974 - 19968: jis0212<<14 | 0x32<<7 | 0x26, - 31975 - 19968: jis0208<<14 | 0x2D<<7 | 0x27, - 31977 - 19968: jis0212<<14 | 0x32<<7 | 0x27, - 31979 - 19968: jis0212<<14 | 0x32<<7 | 0x28, - 31983 - 19968: jis0208<<14 | 0x43<<7 | 0x58, - 31986 - 19968: jis0208<<14 | 0x43<<7 | 0x59, - 31988 - 19968: jis0208<<14 | 0x43<<7 | 0x5A, - 31989 - 19968: jis0212<<14 | 0x32<<7 | 0x29, - 31990 - 19968: jis0208<<14 | 0x43<<7 | 0x5B, - 31992 - 19968: jis0208<<14 | 0x1A<<7 | 0x44, - 31994 - 19968: jis0208<<14 | 0x43<<7 | 0x5C, - 31995 - 19968: jis0208<<14 | 0x16<<7 | 0x2E, - 31998 - 19968: jis0208<<14 | 0x14<<7 | 0x49, - 32000 - 19968: jis0208<<14 | 0x14<<7 | 0x09, - 32002 - 19968: jis0208<<14 | 0x44<<7 | 0x00, - 32003 - 19968: jis0212<<14 | 0x32<<7 | 0x2A, - 32004 - 19968: jis0208<<14 | 0x2B<<7 | 0x52, - 32005 - 19968: jis0208<<14 | 0x18<<7 | 0x27, - 32006 - 19968: jis0208<<14 | 0x43<<7 | 0x5D, - 32007 - 19968: jis0212<<14 | 0x32<<7 | 0x2B, - 32008 - 19968: jis0212<<14 | 0x32<<7 | 0x2C, - 32009 - 19968: jis0212<<14 | 0x32<<7 | 0x2D, - 32010 - 19968: jis0208<<14 | 0x44<<7 | 0x03, - 32011 - 19968: jis0208<<14 | 0x2B<<7 | 0x45, - 32013 - 19968: jis0208<<14 | 0x26<<7 | 0x1B, - 32015 - 19968: jis0212<<14 | 0x32<<7 | 0x2E, - 32016 - 19968: jis0208<<14 | 0x28<<7 | 0x12, - 32017 - 19968: jis0212<<14 | 0x32<<7 | 0x2F, - 32018 - 19968: jis0212<<14 | 0x32<<7 | 0x30, - 32019 - 19968: jis0212<<14 | 0x32<<7 | 0x31, - 32020 - 19968: jis0208<<14 | 0x1C<<7 | 0x42, - 32021 - 19968: jis0208<<14 | 0x44<<7 | 0x02, - 32022 - 19968: jis0212<<14 | 0x32<<7 | 0x32, - 32023 - 19968: jis0208<<14 | 0x1B<<7 | 0x32, - 32024 - 19968: jis0208<<14 | 0x18<<7 | 0x28, - 32025 - 19968: jis0208<<14 | 0x1A<<7 | 0x45, - 32026 - 19968: jis0208<<14 | 0x14<<7 | 0x48, - 32027 - 19968: jis0208<<14 | 0x29<<7 | 0x15, - 32028 - 19968: jis0208<<14 | 0x44<<7 | 0x01, - 32029 - 19968: jis0212<<14 | 0x32<<7 | 0x33, - 32030 - 19968: jis0212<<14 | 0x32<<7 | 0x34, - 32032 - 19968: jis0208<<14 | 0x20<<7 | 0x26, - 32033 - 19968: jis0208<<14 | 0x2A<<7 | 0x21, - 32034 - 19968: jis0208<<14 | 0x19<<7 | 0x56, - 32035 - 19968: jis0212<<14 | 0x32<<7 | 0x35, - 32038 - 19968: jis0212<<14 | 0x32<<7 | 0x36, - 32042 - 19968: jis0212<<14 | 0x32<<7 | 0x37, - 32043 - 19968: jis0208<<14 | 0x1A<<7 | 0x46, - 32044 - 19968: jis0208<<14 | 0x23<<7 | 0x3C, - 32045 - 19968: jis0212<<14 | 0x32<<7 | 0x38, - 32046 - 19968: jis0208<<14 | 0x44<<7 | 0x06, - 32047 - 19968: jis0208<<14 | 0x2D<<7 | 0x3E, - 32048 - 19968: jis0208<<14 | 0x19<<7 | 0x38, - 32049 - 19968: jis0212<<14 | 0x32<<7 | 0x39, - 32050 - 19968: jis0208<<14 | 0x44<<7 | 0x07, - 32051 - 19968: jis0208<<14 | 0x1E<<7 | 0x21, - 32053 - 19968: jis0208<<14 | 0x44<<7 | 0x09, - 32057 - 19968: jis0208<<14 | 0x1D<<7 | 0x31, - 32058 - 19968: jis0208<<14 | 0x19<<7 | 0x0F, - 32060 - 19968: jis0212<<14 | 0x32<<7 | 0x3A, - 32061 - 19968: jis0212<<14 | 0x32<<7 | 0x3B, - 32062 - 19968: jis0212<<14 | 0x32<<7 | 0x3C, - 32063 - 19968: jis0208<<14 | 0x44<<7 | 0x08, - 32064 - 19968: jis0212<<14 | 0x32<<7 | 0x3D, - 32065 - 19968: jis0212<<14 | 0x32<<7 | 0x3E, - 32066 - 19968: jis0208<<14 | 0x1C<<7 | 0x09, - 32067 - 19968: jis0208<<14 | 0x17<<7 | 0x1D, - 32068 - 19968: jis0208<<14 | 0x20<<7 | 0x27, - 32069 - 19968: jis0208<<14 | 0x44<<7 | 0x04, - 32070 - 19968: jis0208<<14 | 0x44<<7 | 0x0A, - 32071 - 19968: jis0212<<14 | 0x32<<7 | 0x3F, - 32072 - 19968: jis0208<<14 | 0x5A<<7 | 0x2D, - 32075 - 19968: jis0208<<14 | 0x44<<7 | 0x05, - 32076 - 19968: jis0208<<14 | 0x16<<7 | 0x2F, - 32077 - 19968: jis0212<<14 | 0x32<<7 | 0x41, - 32078 - 19968: jis0208<<14 | 0x44<<7 | 0x0D, - 32079 - 19968: jis0208<<14 | 0x44<<7 | 0x11, - 32080 - 19968: jis0208<<14 | 0x16<<7 | 0x4A, - 32081 - 19968: jis0212<<14 | 0x32<<7 | 0x42, - 32083 - 19968: jis0212<<14 | 0x32<<7 | 0x43, - 32086 - 19968: jis0208<<14 | 0x44<<7 | 0x0C, - 32087 - 19968: jis0212<<14 | 0x32<<7 | 0x44, - 32089 - 19968: jis0212<<14 | 0x32<<7 | 0x45, - 32090 - 19968: jis0212<<14 | 0x32<<7 | 0x46, - 32091 - 19968: jis0208<<14 | 0x44<<7 | 0x15, - 32092 - 19968: jis0208<<14 | 0x5A<<7 | 0x2E, - 32093 - 19968: jis0212<<14 | 0x32<<7 | 0x48, - 32094 - 19968: jis0208<<14 | 0x18<<7 | 0x29, - 32097 - 19968: jis0208<<14 | 0x2C<<7 | 0x4C, - 32098 - 19968: jis0208<<14 | 0x0F<<7 | 0x1B, - 32099 - 19968: jis0208<<14 | 0x44<<7 | 0x12, - 32101 - 19968: jis0212<<14 | 0x32<<7 | 0x49, - 32102 - 19968: jis0208<<14 | 0x14<<7 | 0x4A, - 32103 - 19968: jis0212<<14 | 0x32<<7 | 0x4A, - 32104 - 19968: jis0208<<14 | 0x44<<7 | 0x0F, - 32106 - 19968: jis0212<<14 | 0x32<<7 | 0x4B, - 32110 - 19968: jis0208<<14 | 0x44<<7 | 0x10, - 32112 - 19968: jis0212<<14 | 0x32<<7 | 0x4C, - 32113 - 19968: jis0208<<14 | 0x24<<7 | 0x5C, - 32114 - 19968: jis0208<<14 | 0x44<<7 | 0x0E, - 32115 - 19968: jis0208<<14 | 0x44<<7 | 0x0B, - 32117 - 19968: jis0208<<14 | 0x12<<7 | 0x07, - 32118 - 19968: jis0208<<14 | 0x1F<<7 | 0x43, - 32120 - 19968: jis0212<<14 | 0x32<<7 | 0x4D, - 32121 - 19968: jis0208<<14 | 0x17<<7 | 0x07, - 32122 - 19968: jis0212<<14 | 0x32<<7 | 0x4E, - 32123 - 19968: jis0212<<14 | 0x32<<7 | 0x4F, - 32125 - 19968: jis0208<<14 | 0x44<<7 | 0x17, - 32127 - 19968: jis0212<<14 | 0x32<<7 | 0x50, - 32129 - 19968: jis0212<<14 | 0x32<<7 | 0x51, - 32130 - 19968: jis0212<<14 | 0x32<<7 | 0x52, - 32131 - 19968: jis0212<<14 | 0x32<<7 | 0x53, - 32133 - 19968: jis0212<<14 | 0x32<<7 | 0x54, - 32134 - 19968: jis0212<<14 | 0x32<<7 | 0x55, - 32136 - 19968: jis0212<<14 | 0x32<<7 | 0x56, - 32137 - 19968: jis0208<<14 | 0x44<<7 | 0x14, - 32139 - 19968: jis0212<<14 | 0x32<<7 | 0x57, - 32140 - 19968: jis0212<<14 | 0x32<<7 | 0x58, - 32141 - 19968: jis0212<<14 | 0x32<<7 | 0x59, - 32143 - 19968: jis0208<<14 | 0x44<<7 | 0x16, - 32145 - 19968: jis0212<<14 | 0x32<<7 | 0x5A, - 32147 - 19968: jis0208<<14 | 0x44<<7 | 0x13, - 32150 - 19968: jis0212<<14 | 0x32<<7 | 0x5B, - 32151 - 19968: jis0212<<14 | 0x32<<7 | 0x5C, - 32153 - 19968: jis0208<<14 | 0x16<<7 | 0x30, - 32154 - 19968: jis0208<<14 | 0x21<<7 | 0x12, - 32155 - 19968: jis0208<<14 | 0x44<<7 | 0x18, - 32156 - 19968: jis0208<<14 | 0x20<<7 | 0x4D, - 32157 - 19968: jis0212<<14 | 0x32<<7 | 0x5D, - 32158 - 19968: jis0212<<14 | 0x33<<7 | 0x00, - 32159 - 19968: jis0208<<14 | 0x44<<7 | 0x25, - 32160 - 19968: jis0208<<14 | 0x5A<<7 | 0x30, - 32162 - 19968: jis0208<<14 | 0x44<<7 | 0x21, - 32163 - 19968: jis0208<<14 | 0x44<<7 | 0x1B, - 32166 - 19968: jis0212<<14 | 0x33<<7 | 0x01, - 32167 - 19968: jis0212<<14 | 0x33<<7 | 0x02, - 32170 - 19968: jis0212<<14 | 0x33<<7 | 0x03, - 32171 - 19968: jis0208<<14 | 0x44<<7 | 0x1F, - 32172 - 19968: jis0208<<14 | 0x1B<<7 | 0x59, - 32173 - 19968: jis0208<<14 | 0x0F<<7 | 0x3C, - 32174 - 19968: jis0208<<14 | 0x44<<7 | 0x1A, - 32175 - 19968: jis0208<<14 | 0x44<<7 | 0x22, - 32176 - 19968: jis0208<<14 | 0x44<<7 | 0x26, - 32177 - 19968: jis0208<<14 | 0x18<<7 | 0x2A, - 32178 - 19968: jis0208<<14 | 0x2B<<7 | 0x35, - 32179 - 19968: jis0212<<14 | 0x33<<7 | 0x04, - 32180 - 19968: jis0208<<14 | 0x23<<7 | 0x35, - 32181 - 19968: jis0208<<14 | 0x44<<7 | 0x1C, - 32182 - 19968: jis0212<<14 | 0x33<<7 | 0x05, - 32183 - 19968: jis0208<<14 | 0x5A<<7 | 0x2F, - 32184 - 19968: jis0208<<14 | 0x44<<7 | 0x24, - 32185 - 19968: jis0212<<14 | 0x33<<7 | 0x07, - 32186 - 19968: jis0208<<14 | 0x44<<7 | 0x19, - 32187 - 19968: jis0208<<14 | 0x22<<7 | 0x1D, - 32189 - 19968: jis0208<<14 | 0x44<<7 | 0x1E, - 32190 - 19968: jis0208<<14 | 0x0F<<7 | 0x1C, - 32191 - 19968: jis0208<<14 | 0x2B<<7 | 0x29, - 32194 - 19968: jis0212<<14 | 0x33<<7 | 0x08, - 32195 - 19968: jis0212<<14 | 0x33<<7 | 0x09, - 32196 - 19968: jis0212<<14 | 0x33<<7 | 0x0A, - 32197 - 19968: jis0212<<14 | 0x33<<7 | 0x0B, - 32198 - 19968: jis0212<<14 | 0x33<<7 | 0x0C, - 32199 - 19968: jis0208<<14 | 0x44<<7 | 0x1D, - 32202 - 19968: jis0208<<14 | 0x15<<7 | 0x3A, - 32203 - 19968: jis0208<<14 | 0x27<<7 | 0x4B, - 32204 - 19968: jis0212<<14 | 0x33<<7 | 0x0D, - 32205 - 19968: jis0212<<14 | 0x33<<7 | 0x0E, - 32206 - 19968: jis0212<<14 | 0x33<<7 | 0x0F, - 32207 - 19968: jis0208<<14 | 0x20<<7 | 0x4C, - 32209 - 19968: jis0208<<14 | 0x2D<<7 | 0x2F, - 32210 - 19968: jis0208<<14 | 0x1C<<7 | 0x4E, - 32213 - 19968: jis0208<<14 | 0x44<<7 | 0x4D, - 32214 - 19968: jis0208<<14 | 0x5A<<7 | 0x31, - 32215 - 19968: jis0212<<14 | 0x33<<7 | 0x10, - 32216 - 19968: jis0208<<14 | 0x44<<7 | 0x27, - 32217 - 19968: jis0212<<14 | 0x33<<7 | 0x11, - 32218 - 19968: jis0208<<14 | 0x1F<<7 | 0x5D, - 32220 - 19968: jis0208<<14 | 0x44<<7 | 0x23, - 32221 - 19968: jis0208<<14 | 0x44<<7 | 0x28, - 32222 - 19968: jis0208<<14 | 0x44<<7 | 0x2A, - 32224 - 19968: jis0208<<14 | 0x23<<7 | 0x58, - 32225 - 19968: jis0208<<14 | 0x44<<7 | 0x2D, - 32226 - 19968: jis0212<<14 | 0x33<<7 | 0x13, - 32228 - 19968: jis0208<<14 | 0x44<<7 | 0x29, - 32229 - 19968: jis0212<<14 | 0x33<<7 | 0x14, - 32230 - 19968: jis0212<<14 | 0x33<<7 | 0x15, - 32232 - 19968: jis0208<<14 | 0x29<<7 | 0x33, - 32233 - 19968: jis0208<<14 | 0x13<<7 | 0x2A, - 32234 - 19968: jis0212<<14 | 0x33<<7 | 0x16, - 32235 - 19968: jis0212<<14 | 0x33<<7 | 0x17, - 32236 - 19968: jis0208<<14 | 0x2B<<7 | 0x2A, - 32237 - 19968: jis0212<<14 | 0x33<<7 | 0x18, - 32239 - 19968: jis0208<<14 | 0x0F<<7 | 0x3D, - 32241 - 19968: jis0212<<14 | 0x33<<7 | 0x19, - 32242 - 19968: jis0208<<14 | 0x44<<7 | 0x2C, - 32244 - 19968: jis0208<<14 | 0x2D<<7 | 0x5C, - 32245 - 19968: jis0212<<14 | 0x33<<7 | 0x1A, - 32246 - 19968: jis0212<<14 | 0x33<<7 | 0x1B, - 32249 - 19968: jis0212<<14 | 0x33<<7 | 0x1C, - 32250 - 19968: jis0212<<14 | 0x33<<7 | 0x1D, - 32251 - 19968: jis0208<<14 | 0x44<<7 | 0x2B, - 32256 - 19968: jis0212<<14 | 0x33<<7 | 0x12, - 32257 - 19968: jis0208<<14 | 0x10<<7 | 0x4E, - 32260 - 19968: jis0208<<14 | 0x25<<7 | 0x4B, - 32261 - 19968: jis0208<<14 | 0x44<<7 | 0x2E, - 32264 - 19968: jis0212<<14 | 0x33<<7 | 0x1E, - 32265 - 19968: jis0208<<14 | 0x44<<7 | 0x35, - 32266 - 19968: jis0208<<14 | 0x44<<7 | 0x2F, - 32267 - 19968: jis0208<<14 | 0x44<<7 | 0x36, - 32272 - 19968: jis0212<<14 | 0x33<<7 | 0x1F, - 32273 - 19968: jis0212<<14 | 0x33<<7 | 0x20, - 32274 - 19968: jis0208<<14 | 0x44<<7 | 0x32, - 32277 - 19968: jis0212<<14 | 0x33<<7 | 0x21, - 32279 - 19968: jis0212<<14 | 0x33<<7 | 0x22, - 32283 - 19968: jis0208<<14 | 0x26<<7 | 0x5A, - 32284 - 19968: jis0212<<14 | 0x33<<7 | 0x23, - 32285 - 19968: jis0212<<14 | 0x33<<7 | 0x24, - 32286 - 19968: jis0208<<14 | 0x1B<<7 | 0x29, - 32287 - 19968: jis0208<<14 | 0x44<<7 | 0x34, - 32288 - 19968: jis0212<<14 | 0x33<<7 | 0x25, - 32289 - 19968: jis0208<<14 | 0x44<<7 | 0x31, - 32290 - 19968: jis0208<<14 | 0x44<<7 | 0x37, - 32291 - 19968: jis0208<<14 | 0x44<<7 | 0x30, - 32294 - 19968: jis0208<<14 | 0x1C<<7 | 0x23, - 32295 - 19968: jis0212<<14 | 0x33<<7 | 0x26, - 32296 - 19968: jis0212<<14 | 0x33<<7 | 0x27, - 32299 - 19968: jis0208<<14 | 0x2A<<7 | 0x04, - 32300 - 19968: jis0212<<14 | 0x33<<7 | 0x28, - 32301 - 19968: jis0212<<14 | 0x33<<7 | 0x29, - 32302 - 19968: jis0208<<14 | 0x1C<<7 | 0x2B, - 32303 - 19968: jis0212<<14 | 0x33<<7 | 0x2A, - 32305 - 19968: jis0208<<14 | 0x44<<7 | 0x33, - 32306 - 19968: jis0208<<14 | 0x44<<7 | 0x3F, - 32307 - 19968: jis0212<<14 | 0x33<<7 | 0x2B, - 32309 - 19968: jis0208<<14 | 0x44<<7 | 0x3B, - 32310 - 19968: jis0212<<14 | 0x33<<7 | 0x2C, - 32311 - 19968: jis0208<<14 | 0x44<<7 | 0x3E, - 32313 - 19968: jis0208<<14 | 0x44<<7 | 0x3C, - 32314 - 19968: jis0208<<14 | 0x44<<7 | 0x40, - 32315 - 19968: jis0208<<14 | 0x44<<7 | 0x3A, - 32317 - 19968: jis0208<<14 | 0x44<<7 | 0x20, - 32318 - 19968: jis0208<<14 | 0x1F<<7 | 0x32, - 32319 - 19968: jis0212<<14 | 0x33<<7 | 0x2D, - 32321 - 19968: jis0208<<14 | 0x27<<7 | 0x2A, - 32323 - 19968: jis0208<<14 | 0x44<<7 | 0x3D, - 32324 - 19968: jis0212<<14 | 0x33<<7 | 0x2E, - 32325 - 19968: jis0212<<14 | 0x33<<7 | 0x2F, - 32326 - 19968: jis0208<<14 | 0x44<<7 | 0x38, - 32327 - 19968: jis0212<<14 | 0x33<<7 | 0x30, - 32330 - 19968: jis0208<<14 | 0x20<<7 | 0x00, - 32331 - 19968: jis0208<<14 | 0x16<<7 | 0x31, - 32333 - 19968: jis0208<<14 | 0x1C<<7 | 0x0A, - 32334 - 19968: jis0212<<14 | 0x33<<7 | 0x31, - 32336 - 19968: jis0212<<14 | 0x33<<7 | 0x32, - 32338 - 19968: jis0208<<14 | 0x5A<<7 | 0x32, - 32340 - 19968: jis0208<<14 | 0x1E<<7 | 0x04, - 32341 - 19968: jis0208<<14 | 0x20<<7 | 0x15, - 32342 - 19968: jis0208<<14 | 0x44<<7 | 0x43, - 32344 - 19968: jis0212<<14 | 0x33<<7 | 0x34, - 32345 - 19968: jis0208<<14 | 0x44<<7 | 0x45, - 32346 - 19968: jis0208<<14 | 0x44<<7 | 0x46, - 32349 - 19968: jis0208<<14 | 0x44<<7 | 0x42, - 32350 - 19968: jis0208<<14 | 0x44<<7 | 0x44, - 32351 - 19968: jis0212<<14 | 0x33<<7 | 0x35, - 32353 - 19968: jis0212<<14 | 0x33<<7 | 0x36, - 32354 - 19968: jis0212<<14 | 0x33<<7 | 0x37, - 32357 - 19968: jis0212<<14 | 0x33<<7 | 0x38, - 32358 - 19968: jis0208<<14 | 0x44<<7 | 0x39, - 32359 - 19968: jis0208<<14 | 0x44<<7 | 0x41, - 32361 - 19968: jis0208<<14 | 0x44<<7 | 0x49, - 32362 - 19968: jis0208<<14 | 0x44<<7 | 0x48, - 32363 - 19968: jis0212<<14 | 0x33<<7 | 0x39, - 32365 - 19968: jis0208<<14 | 0x2A<<7 | 0x59, - 32366 - 19968: jis0212<<14 | 0x33<<7 | 0x3A, - 32367 - 19968: jis0212<<14 | 0x33<<7 | 0x3B, - 32368 - 19968: jis0208<<14 | 0x16<<7 | 0x0A, - 32371 - 19968: jis0212<<14 | 0x33<<7 | 0x3C, - 32376 - 19968: jis0212<<14 | 0x33<<7 | 0x3D, - 32377 - 19968: jis0208<<14 | 0x44<<7 | 0x47, - 32379 - 19968: jis0208<<14 | 0x44<<7 | 0x4B, - 32380 - 19968: jis0208<<14 | 0x44<<7 | 0x4A, - 32381 - 19968: jis0208<<14 | 0x44<<7 | 0x4E, - 32382 - 19968: jis0212<<14 | 0x33<<7 | 0x3E, - 32383 - 19968: jis0208<<14 | 0x44<<7 | 0x50, - 32385 - 19968: jis0212<<14 | 0x33<<7 | 0x3F, - 32386 - 19968: jis0208<<14 | 0x1A<<7 | 0x1B, - 32387 - 19968: jis0208<<14 | 0x44<<7 | 0x4C, - 32390 - 19968: jis0212<<14 | 0x33<<7 | 0x40, - 32391 - 19968: jis0212<<14 | 0x33<<7 | 0x41, - 32392 - 19968: jis0208<<14 | 0x44<<7 | 0x51, - 32393 - 19968: jis0208<<14 | 0x44<<7 | 0x52, - 32394 - 19968: jis0208<<14 | 0x58<<7 | 0x00, - 32396 - 19968: jis0208<<14 | 0x44<<7 | 0x53, - 32397 - 19968: jis0212<<14 | 0x33<<7 | 0x43, - 32398 - 19968: jis0208<<14 | 0x44<<7 | 0x59, - 32399 - 19968: jis0208<<14 | 0x24<<7 | 0x1A, - 32400 - 19968: jis0208<<14 | 0x44<<7 | 0x55, - 32401 - 19968: jis0212<<14 | 0x33<<7 | 0x44, - 32402 - 19968: jis0208<<14 | 0x44<<7 | 0x54, - 32403 - 19968: jis0208<<14 | 0x44<<7 | 0x56, - 32404 - 19968: jis0208<<14 | 0x44<<7 | 0x57, - 32405 - 19968: jis0212<<14 | 0x33<<7 | 0x45, - 32406 - 19968: jis0208<<14 | 0x44<<7 | 0x58, - 32408 - 19968: jis0212<<14 | 0x33<<7 | 0x46, - 32410 - 19968: jis0212<<14 | 0x33<<7 | 0x47, - 32411 - 19968: jis0208<<14 | 0x44<<7 | 0x5A, - 32412 - 19968: jis0208<<14 | 0x44<<7 | 0x5B, - 32413 - 19968: jis0212<<14 | 0x33<<7 | 0x48, - 32414 - 19968: jis0212<<14 | 0x33<<7 | 0x49, - 32566 - 19968: jis0208<<14 | 0x13<<7 | 0x2B, - 32568 - 19968: jis0208<<14 | 0x44<<7 | 0x5C, - 32570 - 19968: jis0208<<14 | 0x44<<7 | 0x5D, - 32571 - 19968: jis0212<<14 | 0x33<<7 | 0x4B, - 32572 - 19968: jis0212<<14 | 0x33<<7 | 0x4A, - 32573 - 19968: jis0212<<14 | 0x33<<7 | 0x4C, - 32574 - 19968: jis0212<<14 | 0x33<<7 | 0x4D, - 32575 - 19968: jis0212<<14 | 0x33<<7 | 0x4E, - 32579 - 19968: jis0212<<14 | 0x33<<7 | 0x4F, - 32580 - 19968: jis0212<<14 | 0x33<<7 | 0x50, - 32581 - 19968: jis0208<<14 | 0x45<<7 | 0x00, - 32583 - 19968: jis0208<<14 | 0x5A<<7 | 0x33, - 32588 - 19968: jis0208<<14 | 0x45<<7 | 0x01, - 32589 - 19968: jis0208<<14 | 0x45<<7 | 0x02, - 32590 - 19968: jis0208<<14 | 0x45<<7 | 0x03, - 32591 - 19968: jis0212<<14 | 0x33<<7 | 0x52, - 32592 - 19968: jis0208<<14 | 0x45<<7 | 0x04, - 32593 - 19968: jis0208<<14 | 0x45<<7 | 0x05, - 32594 - 19968: jis0212<<14 | 0x33<<7 | 0x53, - 32595 - 19968: jis0212<<14 | 0x33<<7 | 0x54, - 32596 - 19968: jis0208<<14 | 0x45<<7 | 0x07, - 32597 - 19968: jis0208<<14 | 0x45<<7 | 0x06, - 32600 - 19968: jis0208<<14 | 0x45<<7 | 0x08, - 32603 - 19968: jis0212<<14 | 0x33<<7 | 0x55, - 32604 - 19968: jis0212<<14 | 0x33<<7 | 0x56, - 32605 - 19968: jis0212<<14 | 0x33<<7 | 0x57, - 32607 - 19968: jis0208<<14 | 0x45<<7 | 0x09, - 32608 - 19968: jis0208<<14 | 0x45<<7 | 0x0A, - 32609 - 19968: jis0212<<14 | 0x33<<7 | 0x58, - 32611 - 19968: jis0212<<14 | 0x33<<7 | 0x59, - 32612 - 19968: jis0212<<14 | 0x33<<7 | 0x5A, - 32613 - 19968: jis0212<<14 | 0x33<<7 | 0x5B, - 32614 - 19968: jis0212<<14 | 0x33<<7 | 0x5C, - 32615 - 19968: jis0208<<14 | 0x45<<7 | 0x0D, - 32616 - 19968: jis0208<<14 | 0x45<<7 | 0x0B, - 32617 - 19968: jis0208<<14 | 0x45<<7 | 0x0C, - 32618 - 19968: jis0208<<14 | 0x19<<7 | 0x40, - 32619 - 19968: jis0208<<14 | 0x16<<7 | 0x32, - 32621 - 19968: jis0212<<14 | 0x33<<7 | 0x5D, - 32622 - 19968: jis0208<<14 | 0x22<<7 | 0x35, - 32624 - 19968: jis0208<<14 | 0x27<<7 | 0x12, - 32625 - 19968: jis0212<<14 | 0x34<<7 | 0x00, - 32626 - 19968: jis0208<<14 | 0x1C<<7 | 0x4F, - 32629 - 19968: jis0208<<14 | 0x26<<7 | 0x2C, - 32631 - 19968: jis0208<<14 | 0x27<<7 | 0x4C, - 32632 - 19968: jis0208<<14 | 0x45<<7 | 0x0E, - 32633 - 19968: jis0208<<14 | 0x37<<7 | 0x4C, - 32637 - 19968: jis0212<<14 | 0x34<<7 | 0x01, - 32638 - 19968: jis0212<<14 | 0x34<<7 | 0x02, - 32639 - 19968: jis0212<<14 | 0x34<<7 | 0x03, - 32640 - 19968: jis0212<<14 | 0x34<<7 | 0x04, - 32642 - 19968: jis0208<<14 | 0x45<<7 | 0x0F, - 32643 - 19968: jis0208<<14 | 0x45<<7 | 0x11, - 32645 - 19968: jis0208<<14 | 0x2C<<7 | 0x44, - 32646 - 19968: jis0208<<14 | 0x45<<7 | 0x10, - 32647 - 19968: jis0208<<14 | 0x45<<7 | 0x13, - 32648 - 19968: jis0208<<14 | 0x45<<7 | 0x12, - 32650 - 19968: jis0208<<14 | 0x2C<<7 | 0x32, - 32651 - 19968: jis0212<<14 | 0x34<<7 | 0x05, - 32652 - 19968: jis0208<<14 | 0x45<<7 | 0x14, - 32653 - 19968: jis0212<<14 | 0x34<<7 | 0x06, - 32654 - 19968: jis0208<<14 | 0x27<<7 | 0x5D, - 32655 - 19968: jis0212<<14 | 0x34<<7 | 0x07, - 32656 - 19968: jis0212<<14 | 0x34<<7 | 0x08, - 32657 - 19968: jis0212<<14 | 0x34<<7 | 0x09, - 32660 - 19968: jis0208<<14 | 0x45<<7 | 0x15, - 32662 - 19968: jis0212<<14 | 0x34<<7 | 0x0A, - 32663 - 19968: jis0212<<14 | 0x34<<7 | 0x0B, - 32666 - 19968: jis0208<<14 | 0x45<<7 | 0x18, - 32668 - 19968: jis0212<<14 | 0x34<<7 | 0x0C, - 32669 - 19968: jis0208<<14 | 0x45<<7 | 0x17, - 32670 - 19968: jis0208<<14 | 0x45<<7 | 0x16, - 32673 - 19968: jis0208<<14 | 0x5A<<7 | 0x34, - 32674 - 19968: jis0212<<14 | 0x34<<7 | 0x0E, - 32675 - 19968: jis0208<<14 | 0x45<<7 | 0x19, - 32676 - 19968: jis0208<<14 | 0x16<<7 | 0x11, - 32678 - 19968: jis0212<<14 | 0x34<<7 | 0x0F, - 32680 - 19968: jis0208<<14 | 0x20<<7 | 0x01, - 32681 - 19968: jis0208<<14 | 0x14<<7 | 0x20, - 32682 - 19968: jis0212<<14 | 0x34<<7 | 0x10, - 32685 - 19968: jis0212<<14 | 0x34<<7 | 0x11, - 32686 - 19968: jis0208<<14 | 0x45<<7 | 0x1D, - 32687 - 19968: jis0208<<14 | 0x45<<7 | 0x1A, - 32690 - 19968: jis0208<<14 | 0x45<<7 | 0x1B, - 32692 - 19968: jis0212<<14 | 0x34<<7 | 0x12, - 32694 - 19968: jis0208<<14 | 0x45<<7 | 0x1E, - 32696 - 19968: jis0208<<14 | 0x45<<7 | 0x1F, - 32697 - 19968: jis0208<<14 | 0x45<<7 | 0x1C, - 32700 - 19968: jis0212<<14 | 0x34<<7 | 0x13, - 32701 - 19968: jis0208<<14 | 0x10<<7 | 0x08, - 32703 - 19968: jis0212<<14 | 0x34<<7 | 0x14, - 32704 - 19968: jis0212<<14 | 0x34<<7 | 0x15, - 32705 - 19968: jis0208<<14 | 0x11<<7 | 0x06, - 32707 - 19968: jis0212<<14 | 0x34<<7 | 0x16, - 32709 - 19968: jis0208<<14 | 0x45<<7 | 0x21, - 32710 - 19968: jis0208<<14 | 0x45<<7 | 0x22, - 32712 - 19968: jis0212<<14 | 0x34<<7 | 0x17, - 32714 - 19968: jis0208<<14 | 0x45<<7 | 0x23, - 32716 - 19968: jis0208<<14 | 0x2C<<7 | 0x41, - 32718 - 19968: jis0212<<14 | 0x34<<7 | 0x18, - 32719 - 19968: jis0212<<14 | 0x34<<7 | 0x19, - 32722 - 19968: jis0208<<14 | 0x1C<<7 | 0x0B, - 32724 - 19968: jis0208<<14 | 0x45<<7 | 0x25, - 32725 - 19968: jis0208<<14 | 0x45<<7 | 0x24, - 32731 - 19968: jis0212<<14 | 0x34<<7 | 0x1A, - 32735 - 19968: jis0212<<14 | 0x34<<7 | 0x1B, - 32736 - 19968: jis0208<<14 | 0x1E<<7 | 0x48, - 32737 - 19968: jis0208<<14 | 0x45<<7 | 0x26, - 32739 - 19968: jis0212<<14 | 0x34<<7 | 0x1C, - 32741 - 19968: jis0212<<14 | 0x34<<7 | 0x1D, - 32742 - 19968: jis0208<<14 | 0x45<<7 | 0x27, - 32744 - 19968: jis0212<<14 | 0x34<<7 | 0x1E, - 32745 - 19968: jis0208<<14 | 0x45<<7 | 0x28, - 32747 - 19968: jis0208<<14 | 0x13<<7 | 0x44, - 32748 - 19968: jis0212<<14 | 0x34<<7 | 0x1F, - 32750 - 19968: jis0212<<14 | 0x34<<7 | 0x20, - 32751 - 19968: jis0212<<14 | 0x34<<7 | 0x21, - 32752 - 19968: jis0208<<14 | 0x13<<7 | 0x2C, - 32754 - 19968: jis0212<<14 | 0x34<<7 | 0x22, - 32755 - 19968: jis0208<<14 | 0x45<<7 | 0x29, - 32761 - 19968: jis0208<<14 | 0x45<<7 | 0x2A, - 32762 - 19968: jis0212<<14 | 0x34<<7 | 0x23, - 32763 - 19968: jis0208<<14 | 0x2A<<7 | 0x3C, - 32764 - 19968: jis0208<<14 | 0x2C<<7 | 0x42, - 32765 - 19968: jis0212<<14 | 0x34<<7 | 0x24, - 32766 - 19968: jis0212<<14 | 0x34<<7 | 0x25, - 32767 - 19968: jis0212<<14 | 0x34<<7 | 0x26, - 32768 - 19968: jis0208<<14 | 0x2C<<7 | 0x33, - 32769 - 19968: jis0208<<14 | 0x2E<<7 | 0x16, - 32771 - 19968: jis0208<<14 | 0x18<<7 | 0x2C, - 32772 - 19968: jis0208<<14 | 0x45<<7 | 0x2D, - 32773 - 19968: jis0208<<14 | 0x1B<<7 | 0x33, - 32774 - 19968: jis0208<<14 | 0x45<<7 | 0x2C, - 32775 - 19968: jis0212<<14 | 0x34<<7 | 0x27, - 32776 - 19968: jis0212<<14 | 0x34<<7 | 0x28, - 32778 - 19968: jis0212<<14 | 0x34<<7 | 0x29, - 32779 - 19968: jis0208<<14 | 0x45<<7 | 0x2E, - 32780 - 19968: jis0208<<14 | 0x1B<<7 | 0x08, - 32781 - 19968: jis0212<<14 | 0x34<<7 | 0x2A, - 32782 - 19968: jis0212<<14 | 0x34<<7 | 0x2B, - 32783 - 19968: jis0212<<14 | 0x34<<7 | 0x2C, - 32784 - 19968: jis0208<<14 | 0x21<<7 | 0x30, - 32785 - 19968: jis0212<<14 | 0x34<<7 | 0x2D, - 32786 - 19968: jis0208<<14 | 0x45<<7 | 0x2F, - 32787 - 19968: jis0212<<14 | 0x34<<7 | 0x2E, - 32788 - 19968: jis0212<<14 | 0x34<<7 | 0x2F, - 32789 - 19968: jis0208<<14 | 0x18<<7 | 0x2B, - 32790 - 19968: jis0212<<14 | 0x34<<7 | 0x30, - 32791 - 19968: jis0208<<14 | 0x2B<<7 | 0x36, - 32792 - 19968: jis0208<<14 | 0x45<<7 | 0x30, - 32793 - 19968: jis0208<<14 | 0x45<<7 | 0x31, - 32796 - 19968: jis0208<<14 | 0x45<<7 | 0x32, - 32797 - 19968: jis0212<<14 | 0x34<<7 | 0x31, - 32798 - 19968: jis0212<<14 | 0x34<<7 | 0x32, - 32799 - 19968: jis0212<<14 | 0x34<<7 | 0x33, - 32800 - 19968: jis0212<<14 | 0x34<<7 | 0x34, - 32801 - 19968: jis0208<<14 | 0x45<<7 | 0x33, - 32804 - 19968: jis0212<<14 | 0x34<<7 | 0x35, - 32806 - 19968: jis0212<<14 | 0x34<<7 | 0x36, - 32808 - 19968: jis0208<<14 | 0x45<<7 | 0x34, - 32812 - 19968: jis0212<<14 | 0x34<<7 | 0x37, - 32814 - 19968: jis0212<<14 | 0x34<<7 | 0x38, - 32816 - 19968: jis0212<<14 | 0x34<<7 | 0x39, - 32819 - 19968: jis0208<<14 | 0x1B<<7 | 0x09, - 32820 - 19968: jis0212<<14 | 0x34<<7 | 0x3A, - 32821 - 19968: jis0212<<14 | 0x34<<7 | 0x3B, - 32822 - 19968: jis0208<<14 | 0x2B<<7 | 0x4C, - 32823 - 19968: jis0212<<14 | 0x34<<7 | 0x3C, - 32825 - 19968: jis0212<<14 | 0x34<<7 | 0x3D, - 32826 - 19968: jis0212<<14 | 0x34<<7 | 0x3E, - 32827 - 19968: jis0208<<14 | 0x45<<7 | 0x36, - 32828 - 19968: jis0212<<14 | 0x34<<7 | 0x3F, - 32829 - 19968: jis0208<<14 | 0x22<<7 | 0x1E, - 32830 - 19968: jis0212<<14 | 0x34<<7 | 0x40, - 32831 - 19968: jis0208<<14 | 0x45<<7 | 0x35, - 32832 - 19968: jis0212<<14 | 0x34<<7 | 0x41, - 32836 - 19968: jis0212<<14 | 0x34<<7 | 0x42, - 32838 - 19968: jis0208<<14 | 0x45<<7 | 0x38, - 32842 - 19968: jis0208<<14 | 0x45<<7 | 0x37, - 32850 - 19968: jis0208<<14 | 0x45<<7 | 0x39, - 32854 - 19968: jis0208<<14 | 0x1F<<7 | 0x1A, - 32856 - 19968: jis0208<<14 | 0x45<<7 | 0x3A, - 32858 - 19968: jis0208<<14 | 0x45<<7 | 0x3B, - 32862 - 19968: jis0208<<14 | 0x29<<7 | 0x18, - 32863 - 19968: jis0208<<14 | 0x45<<7 | 0x3C, - 32864 - 19968: jis0212<<14 | 0x34<<7 | 0x43, - 32865 - 19968: jis0208<<14 | 0x20<<7 | 0x4E, - 32866 - 19968: jis0208<<14 | 0x45<<7 | 0x3D, - 32868 - 19968: jis0212<<14 | 0x34<<7 | 0x44, - 32870 - 19968: jis0212<<14 | 0x34<<7 | 0x45, - 32872 - 19968: jis0208<<14 | 0x45<<7 | 0x3E, - 32877 - 19968: jis0212<<14 | 0x34<<7 | 0x46, - 32879 - 19968: jis0208<<14 | 0x2D<<7 | 0x5D, - 32880 - 19968: jis0208<<14 | 0x45<<7 | 0x41, - 32881 - 19968: jis0212<<14 | 0x34<<7 | 0x47, - 32882 - 19968: jis0208<<14 | 0x45<<7 | 0x40, - 32883 - 19968: jis0208<<14 | 0x45<<7 | 0x3F, - 32884 - 19968: jis0208<<14 | 0x23<<7 | 0x0F, - 32885 - 19968: jis0212<<14 | 0x34<<7 | 0x48, - 32886 - 19968: jis0208<<14 | 0x45<<7 | 0x42, - 32887 - 19968: jis0208<<14 | 0x1E<<7 | 0x05, - 32889 - 19968: jis0208<<14 | 0x45<<7 | 0x43, - 32893 - 19968: jis0208<<14 | 0x45<<7 | 0x44, - 32894 - 19968: jis0208<<14 | 0x2E<<7 | 0x17, - 32895 - 19968: jis0208<<14 | 0x45<<7 | 0x45, - 32897 - 19968: jis0212<<14 | 0x34<<7 | 0x49, - 32900 - 19968: jis0208<<14 | 0x45<<7 | 0x46, - 32901 - 19968: jis0208<<14 | 0x45<<7 | 0x48, - 32902 - 19968: jis0208<<14 | 0x45<<7 | 0x47, - 32903 - 19968: jis0208<<14 | 0x27<<7 | 0x04, - 32904 - 19968: jis0212<<14 | 0x34<<7 | 0x4A, - 32905 - 19968: jis0208<<14 | 0x25<<7 | 0x58, - 32907 - 19968: jis0208<<14 | 0x2E<<7 | 0x1D, - 32908 - 19968: jis0208<<14 | 0x27<<7 | 0x08, - 32910 - 19968: jis0212<<14 | 0x34<<7 | 0x4B, - 32915 - 19968: jis0208<<14 | 0x45<<7 | 0x4A, - 32918 - 19968: jis0208<<14 | 0x1D<<7 | 0x32, - 32920 - 19968: jis0208<<14 | 0x28<<7 | 0x09, - 32922 - 19968: jis0208<<14 | 0x45<<7 | 0x4B, - 32923 - 19968: jis0208<<14 | 0x45<<7 | 0x49, - 32924 - 19968: jis0212<<14 | 0x34<<7 | 0x4C, - 32925 - 19968: jis0208<<14 | 0x13<<7 | 0x2D, - 32926 - 19968: jis0212<<14 | 0x34<<7 | 0x4D, - 32929 - 19968: jis0208<<14 | 0x17<<7 | 0x33, - 32930 - 19968: jis0208<<14 | 0x1A<<7 | 0x47, - 32933 - 19968: jis0208<<14 | 0x27<<7 | 0x4D, - 32934 - 19968: jis0212<<14 | 0x34<<7 | 0x4E, - 32935 - 19968: jis0212<<14 | 0x34<<7 | 0x4F, - 32937 - 19968: jis0208<<14 | 0x17<<7 | 0x09, - 32938 - 19968: jis0208<<14 | 0x2A<<7 | 0x22, - 32939 - 19968: jis0212<<14 | 0x34<<7 | 0x50, - 32940 - 19968: jis0208<<14 | 0x45<<7 | 0x4E, - 32941 - 19968: jis0208<<14 | 0x45<<7 | 0x4C, - 32943 - 19968: jis0208<<14 | 0x18<<7 | 0x2D, - 32945 - 19968: jis0208<<14 | 0x18<<7 | 0x2E, - 32946 - 19968: jis0208<<14 | 0x0F<<7 | 0x48, - 32948 - 19968: jis0208<<14 | 0x19<<7 | 0x47, - 32952 - 19968: jis0212<<14 | 0x34<<7 | 0x51, - 32953 - 19968: jis0212<<14 | 0x34<<7 | 0x52, - 32954 - 19968: jis0208<<14 | 0x26<<7 | 0x38, - 32963 - 19968: jis0208<<14 | 0x0F<<7 | 0x3E, - 32964 - 19968: jis0208<<14 | 0x45<<7 | 0x53, - 32966 - 19968: jis0208<<14 | 0x22<<7 | 0x1F, - 32968 - 19968: jis0212<<14 | 0x34<<7 | 0x53, - 32972 - 19968: jis0208<<14 | 0x26<<7 | 0x37, - 32973 - 19968: jis0212<<14 | 0x34<<7 | 0x54, - 32974 - 19968: jis0208<<14 | 0x21<<7 | 0x3A, - 32975 - 19968: jis0212<<14 | 0x34<<7 | 0x55, - 32978 - 19968: jis0212<<14 | 0x34<<7 | 0x56, - 32980 - 19968: jis0212<<14 | 0x34<<7 | 0x57, - 32981 - 19968: jis0212<<14 | 0x34<<7 | 0x58, - 32982 - 19968: jis0208<<14 | 0x45<<7 | 0x55, - 32983 - 19968: jis0212<<14 | 0x34<<7 | 0x59, - 32984 - 19968: jis0212<<14 | 0x34<<7 | 0x5A, - 32985 - 19968: jis0208<<14 | 0x45<<7 | 0x51, - 32986 - 19968: jis0208<<14 | 0x45<<7 | 0x54, - 32987 - 19968: jis0208<<14 | 0x45<<7 | 0x4F, - 32989 - 19968: jis0208<<14 | 0x45<<7 | 0x52, - 32990 - 19968: jis0208<<14 | 0x2A<<7 | 0x05, - 32992 - 19968: jis0212<<14 | 0x34<<7 | 0x5B, - 32993 - 19968: jis0208<<14 | 0x17<<7 | 0x34, - 32996 - 19968: jis0208<<14 | 0x0F<<7 | 0x5C, - 32997 - 19968: jis0208<<14 | 0x45<<7 | 0x50, - 33005 - 19968: jis0212<<14 | 0x34<<7 | 0x5C, - 33006 - 19968: jis0212<<14 | 0x34<<7 | 0x5D, - 33007 - 19968: jis0208<<14 | 0x45<<7 | 0x57, - 33008 - 19968: jis0212<<14 | 0x35<<7 | 0x00, - 33009 - 19968: jis0208<<14 | 0x45<<7 | 0x58, - 33010 - 19968: jis0212<<14 | 0x35<<7 | 0x01, - 33011 - 19968: jis0212<<14 | 0x35<<7 | 0x02, - 33012 - 19968: jis0208<<14 | 0x25<<7 | 0x18, - 33014 - 19968: jis0212<<14 | 0x35<<7 | 0x03, - 33016 - 19968: jis0208<<14 | 0x15<<7 | 0x1A, - 33017 - 19968: jis0212<<14 | 0x35<<7 | 0x04, - 33018 - 19968: jis0212<<14 | 0x35<<7 | 0x05, - 33020 - 19968: jis0208<<14 | 0x46<<7 | 0x05, - 33021 - 19968: jis0208<<14 | 0x26<<7 | 0x1C, - 33022 - 19968: jis0212<<14 | 0x35<<7 | 0x06, - 33026 - 19968: jis0208<<14 | 0x1A<<7 | 0x48, - 33027 - 19968: jis0212<<14 | 0x35<<7 | 0x07, - 33029 - 19968: jis0208<<14 | 0x15<<7 | 0x1B, - 33030 - 19968: jis0208<<14 | 0x1F<<7 | 0x27, - 33031 - 19968: jis0208<<14 | 0x2E<<7 | 0x25, - 33032 - 19968: jis0208<<14 | 0x2B<<7 | 0x0D, - 33033 - 19968: jis0208<<14 | 0x45<<7 | 0x56, - 33034 - 19968: jis0208<<14 | 0x1F<<7 | 0x33, - 33035 - 19968: jis0212<<14 | 0x35<<7 | 0x08, - 33046 - 19968: jis0212<<14 | 0x35<<7 | 0x09, - 33047 - 19968: jis0212<<14 | 0x35<<7 | 0x0A, - 33048 - 19968: jis0212<<14 | 0x35<<7 | 0x0B, - 33050 - 19968: jis0208<<14 | 0x14<<7 | 0x32, - 33051 - 19968: jis0208<<14 | 0x45<<7 | 0x59, - 33052 - 19968: jis0212<<14 | 0x35<<7 | 0x0C, - 33054 - 19968: jis0212<<14 | 0x35<<7 | 0x0D, - 33056 - 19968: jis0212<<14 | 0x35<<7 | 0x0E, - 33059 - 19968: jis0208<<14 | 0x45<<7 | 0x5B, - 33060 - 19968: jis0212<<14 | 0x35<<7 | 0x0F, - 33063 - 19968: jis0212<<14 | 0x35<<7 | 0x10, - 33065 - 19968: jis0208<<14 | 0x45<<7 | 0x5A, - 33068 - 19968: jis0212<<14 | 0x35<<7 | 0x11, - 33071 - 19968: jis0208<<14 | 0x45<<7 | 0x5C, - 33072 - 19968: jis0212<<14 | 0x35<<7 | 0x12, - 33073 - 19968: jis0208<<14 | 0x22<<7 | 0x05, - 33075 - 19968: jis0208<<14 | 0x26<<7 | 0x1D, - 33077 - 19968: jis0212<<14 | 0x35<<7 | 0x13, - 33081 - 19968: jis0208<<14 | 0x23<<7 | 0x10, - 33082 - 19968: jis0212<<14 | 0x35<<7 | 0x14, - 33084 - 19968: jis0212<<14 | 0x35<<7 | 0x15, - 33086 - 19968: jis0208<<14 | 0x46<<7 | 0x02, - 33093 - 19968: jis0212<<14 | 0x35<<7 | 0x16, - 33094 - 19968: jis0208<<14 | 0x46<<7 | 0x01, - 33095 - 19968: jis0212<<14 | 0x35<<7 | 0x17, - 33098 - 19968: jis0212<<14 | 0x35<<7 | 0x18, - 33099 - 19968: jis0208<<14 | 0x45<<7 | 0x5D, - 33100 - 19968: jis0212<<14 | 0x35<<7 | 0x19, - 33102 - 19968: jis0208<<14 | 0x1E<<7 | 0x34, - 33104 - 19968: jis0208<<14 | 0x28<<7 | 0x44, - 33105 - 19968: jis0208<<14 | 0x46<<7 | 0x04, - 33106 - 19968: jis0212<<14 | 0x35<<7 | 0x1A, - 33107 - 19968: jis0208<<14 | 0x46<<7 | 0x03, - 33108 - 19968: jis0208<<14 | 0x18<<7 | 0x2F, - 33109 - 19968: jis0208<<14 | 0x2E<<7 | 0x32, - 33111 - 19968: jis0212<<14 | 0x35<<7 | 0x1B, - 33119 - 19968: jis0208<<14 | 0x46<<7 | 0x14, - 33120 - 19968: jis0212<<14 | 0x35<<7 | 0x1C, - 33121 - 19968: jis0212<<14 | 0x35<<7 | 0x1D, - 33125 - 19968: jis0208<<14 | 0x46<<7 | 0x08, - 33126 - 19968: jis0208<<14 | 0x46<<7 | 0x09, - 33127 - 19968: jis0212<<14 | 0x35<<7 | 0x1E, - 33128 - 19968: jis0212<<14 | 0x35<<7 | 0x1F, - 33129 - 19968: jis0212<<14 | 0x35<<7 | 0x20, - 33131 - 19968: jis0208<<14 | 0x1B<<7 | 0x4F, - 33133 - 19968: jis0212<<14 | 0x35<<7 | 0x21, - 33134 - 19968: jis0208<<14 | 0x46<<7 | 0x07, - 33135 - 19968: jis0212<<14 | 0x35<<7 | 0x22, - 33136 - 19968: jis0208<<14 | 0x18<<7 | 0x57, - 33137 - 19968: jis0208<<14 | 0x46<<7 | 0x06, - 33140 - 19968: jis0208<<14 | 0x46<<7 | 0x0A, - 33143 - 19968: jis0212<<14 | 0x35<<7 | 0x23, - 33144 - 19968: jis0208<<14 | 0x23<<7 | 0x11, - 33145 - 19968: jis0208<<14 | 0x29<<7 | 0x01, - 33146 - 19968: jis0208<<14 | 0x20<<7 | 0x02, - 33151 - 19968: jis0208<<14 | 0x21<<7 | 0x3B, - 33152 - 19968: jis0208<<14 | 0x46<<7 | 0x0E, - 33153 - 19968: jis0212<<14 | 0x35<<7 | 0x24, - 33154 - 19968: jis0208<<14 | 0x46<<7 | 0x0F, - 33155 - 19968: jis0208<<14 | 0x46<<7 | 0x0B, - 33156 - 19968: jis0212<<14 | 0x35<<7 | 0x26, - 33157 - 19968: jis0212<<14 | 0x35<<7 | 0x27, - 33158 - 19968: jis0212<<14 | 0x35<<7 | 0x28, - 33160 - 19968: jis0208<<14 | 0x46<<7 | 0x0C, - 33162 - 19968: jis0208<<14 | 0x46<<7 | 0x0D, - 33163 - 19968: jis0212<<14 | 0x35<<7 | 0x29, - 33166 - 19968: jis0212<<14 | 0x35<<7 | 0x2A, - 33167 - 19968: jis0208<<14 | 0x18<<7 | 0x30, - 33168 - 19968: jis0212<<14 | 0x35<<7 | 0x25, - 33171 - 19968: jis0208<<14 | 0x46<<7 | 0x15, - 33173 - 19968: jis0208<<14 | 0x46<<7 | 0x11, - 33174 - 19968: jis0212<<14 | 0x35<<7 | 0x2B, - 33176 - 19968: jis0212<<14 | 0x35<<7 | 0x2C, - 33178 - 19968: jis0208<<14 | 0x28<<7 | 0x45, - 33179 - 19968: jis0212<<14 | 0x35<<7 | 0x2D, - 33180 - 19968: jis0208<<14 | 0x2A<<7 | 0x4B, - 33181 - 19968: jis0208<<14 | 0x28<<7 | 0x07, - 33182 - 19968: jis0212<<14 | 0x35<<7 | 0x2E, - 33184 - 19968: jis0208<<14 | 0x46<<7 | 0x10, - 33186 - 19968: jis0212<<14 | 0x35<<7 | 0x2F, - 33187 - 19968: jis0208<<14 | 0x46<<7 | 0x13, - 33188 - 19968: jis0208<<14 | 0x46<<7 | 0x12, - 33192 - 19968: jis0208<<14 | 0x2A<<7 | 0x23, - 33193 - 19968: jis0208<<14 | 0x46<<7 | 0x16, - 33198 - 19968: jis0212<<14 | 0x35<<7 | 0x30, - 33200 - 19968: jis0208<<14 | 0x46<<7 | 0x17, - 33202 - 19968: jis0212<<14 | 0x35<<7 | 0x31, - 33203 - 19968: jis0208<<14 | 0x20<<7 | 0x16, - 33204 - 19968: jis0212<<14 | 0x35<<7 | 0x32, - 33205 - 19968: jis0208<<14 | 0x46<<7 | 0x18, - 33208 - 19968: jis0208<<14 | 0x46<<7 | 0x1A, - 33210 - 19968: jis0208<<14 | 0x46<<7 | 0x1E, - 33211 - 19968: jis0212<<14 | 0x35<<7 | 0x33, - 33213 - 19968: jis0208<<14 | 0x46<<7 | 0x1B, - 33214 - 19968: jis0208<<14 | 0x46<<7 | 0x19, - 33215 - 19968: jis0208<<14 | 0x26<<7 | 0x1E, - 33216 - 19968: jis0208<<14 | 0x46<<7 | 0x1C, - 33218 - 19968: jis0208<<14 | 0x46<<7 | 0x1D, - 33219 - 19968: jis0212<<14 | 0x35<<7 | 0x35, - 33221 - 19968: jis0212<<14 | 0x35<<7 | 0x36, - 33222 - 19968: jis0208<<14 | 0x11<<7 | 0x11, - 33224 - 19968: jis0208<<14 | 0x46<<7 | 0x24, - 33225 - 19968: jis0208<<14 | 0x46<<7 | 0x1F, - 33226 - 19968: jis0212<<14 | 0x35<<7 | 0x37, - 33227 - 19968: jis0212<<14 | 0x35<<7 | 0x34, - 33229 - 19968: jis0208<<14 | 0x46<<7 | 0x20, - 33230 - 19968: jis0212<<14 | 0x35<<7 | 0x38, - 33231 - 19968: jis0212<<14 | 0x35<<7 | 0x39, - 33233 - 19968: jis0208<<14 | 0x46<<7 | 0x21, - 33235 - 19968: jis0208<<14 | 0x21<<7 | 0x00, - 33237 - 19968: jis0212<<14 | 0x35<<7 | 0x3A, - 33239 - 19968: jis0212<<14 | 0x35<<7 | 0x3B, - 33240 - 19968: jis0208<<14 | 0x46<<7 | 0x23, - 33241 - 19968: jis0208<<14 | 0x46<<7 | 0x22, - 33242 - 19968: jis0208<<14 | 0x46<<7 | 0x25, - 33243 - 19968: jis0212<<14 | 0x35<<7 | 0x3C, - 33245 - 19968: jis0212<<14 | 0x35<<7 | 0x3D, - 33246 - 19968: jis0212<<14 | 0x35<<7 | 0x3E, - 33247 - 19968: jis0208<<14 | 0x46<<7 | 0x26, - 33248 - 19968: jis0208<<14 | 0x46<<7 | 0x27, - 33249 - 19968: jis0212<<14 | 0x35<<7 | 0x3F, - 33251 - 19968: jis0208<<14 | 0x1E<<7 | 0x22, - 33252 - 19968: jis0212<<14 | 0x35<<7 | 0x40, - 33253 - 19968: jis0208<<14 | 0x11<<7 | 0x48, - 33255 - 19968: jis0208<<14 | 0x46<<7 | 0x28, - 33256 - 19968: jis0208<<14 | 0x2D<<7 | 0x36, - 33258 - 19968: jis0208<<14 | 0x1B<<7 | 0x0A, - 33259 - 19968: jis0212<<14 | 0x35<<7 | 0x41, - 33260 - 19968: jis0212<<14 | 0x35<<7 | 0x42, - 33261 - 19968: jis0208<<14 | 0x1C<<7 | 0x0C, - 33264 - 19968: jis0212<<14 | 0x35<<7 | 0x43, - 33265 - 19968: jis0212<<14 | 0x35<<7 | 0x44, - 33266 - 19968: jis0212<<14 | 0x35<<7 | 0x45, - 33267 - 19968: jis0208<<14 | 0x1A<<7 | 0x49, - 33268 - 19968: jis0208<<14 | 0x22<<7 | 0x36, - 33269 - 19968: jis0212<<14 | 0x35<<7 | 0x46, - 33270 - 19968: jis0212<<14 | 0x35<<7 | 0x47, - 33272 - 19968: jis0212<<14 | 0x35<<7 | 0x48, - 33273 - 19968: jis0212<<14 | 0x35<<7 | 0x49, - 33274 - 19968: jis0208<<14 | 0x46<<7 | 0x29, - 33275 - 19968: jis0208<<14 | 0x46<<7 | 0x2A, - 33276 - 19968: jis0208<<14 | 0x10<<7 | 0x10, - 33277 - 19968: jis0212<<14 | 0x35<<7 | 0x4A, - 33278 - 19968: jis0208<<14 | 0x46<<7 | 0x2B, - 33279 - 19968: jis0212<<14 | 0x35<<7 | 0x4B, - 33280 - 19968: jis0212<<14 | 0x35<<7 | 0x4C, - 33281 - 19968: jis0208<<14 | 0x46<<7 | 0x2C, - 33282 - 19968: jis0208<<14 | 0x46<<7 | 0x2D, - 33283 - 19968: jis0212<<14 | 0x35<<7 | 0x4D, - 33285 - 19968: jis0208<<14 | 0x46<<7 | 0x2E, - 33287 - 19968: jis0208<<14 | 0x46<<7 | 0x2F, - 33288 - 19968: jis0208<<14 | 0x15<<7 | 0x1C, - 33289 - 19968: jis0208<<14 | 0x39<<7 | 0x09, - 33290 - 19968: jis0208<<14 | 0x46<<7 | 0x30, - 33292 - 19968: jis0208<<14 | 0x1F<<7 | 0x44, - 33293 - 19968: jis0208<<14 | 0x46<<7 | 0x31, - 33294 - 19968: jis0208<<14 | 0x1B<<7 | 0x2A, - 33295 - 19968: jis0212<<14 | 0x35<<7 | 0x4E, - 33296 - 19968: jis0208<<14 | 0x46<<7 | 0x32, - 33298 - 19968: jis0208<<14 | 0x2F<<7 | 0x0F, - 33299 - 19968: jis0212<<14 | 0x35<<7 | 0x4F, - 33300 - 19968: jis0212<<14 | 0x35<<7 | 0x50, - 33302 - 19968: jis0208<<14 | 0x46<<7 | 0x33, - 33303 - 19968: jis0208<<14 | 0x29<<7 | 0x3D, - 33304 - 19968: jis0208<<14 | 0x13<<7 | 0x3B, - 33305 - 19968: jis0212<<14 | 0x35<<7 | 0x51, - 33306 - 19968: jis0212<<14 | 0x35<<7 | 0x52, - 33307 - 19968: jis0208<<14 | 0x20<<7 | 0x03, - 33308 - 19968: jis0208<<14 | 0x1C<<7 | 0x37, - 33309 - 19968: jis0212<<14 | 0x35<<7 | 0x53, - 33310 - 19968: jis0208<<14 | 0x28<<7 | 0x50, - 33311 - 19968: jis0208<<14 | 0x1C<<7 | 0x0D, - 33313 - 19968: jis0212<<14 | 0x35<<7 | 0x54, - 33314 - 19968: jis0212<<14 | 0x35<<7 | 0x55, - 33320 - 19968: jis0212<<14 | 0x35<<7 | 0x56, - 33321 - 19968: jis0208<<14 | 0x46<<7 | 0x34, - 33322 - 19968: jis0208<<14 | 0x18<<7 | 0x31, - 33323 - 19968: jis0208<<14 | 0x46<<7 | 0x35, - 33324 - 19968: jis0208<<14 | 0x27<<7 | 0x2B, - 33326 - 19968: jis0208<<14 | 0x46<<7 | 0x43, - 33330 - 19968: jis0212<<14 | 0x35<<7 | 0x57, - 33331 - 19968: jis0208<<14 | 0x46<<7 | 0x37, - 33332 - 19968: jis0212<<14 | 0x35<<7 | 0x58, - 33333 - 19968: jis0208<<14 | 0x21<<7 | 0x28, - 33334 - 19968: jis0208<<14 | 0x26<<7 | 0x54, - 33335 - 19968: jis0208<<14 | 0x17<<7 | 0x1E, - 33336 - 19968: jis0208<<14 | 0x46<<7 | 0x36, - 33337 - 19968: jis0208<<14 | 0x20<<7 | 0x04, - 33338 - 19968: jis0212<<14 | 0x35<<7 | 0x59, - 33344 - 19968: jis0208<<14 | 0x46<<7 | 0x38, - 33347 - 19968: jis0212<<14 | 0x35<<7 | 0x5A, - 33348 - 19968: jis0212<<14 | 0x35<<7 | 0x5B, - 33349 - 19968: jis0212<<14 | 0x35<<7 | 0x5C, - 33350 - 19968: jis0212<<14 | 0x35<<7 | 0x5D, - 33351 - 19968: jis0208<<14 | 0x23<<7 | 0x59, - 33355 - 19968: jis0212<<14 | 0x36<<7 | 0x00, - 33358 - 19968: jis0212<<14 | 0x36<<7 | 0x01, - 33359 - 19968: jis0212<<14 | 0x36<<7 | 0x02, - 33361 - 19968: jis0212<<14 | 0x36<<7 | 0x03, - 33366 - 19968: jis0212<<14 | 0x36<<7 | 0x04, - 33368 - 19968: jis0208<<14 | 0x46<<7 | 0x3A, - 33369 - 19968: jis0208<<14 | 0x46<<7 | 0x39, - 33370 - 19968: jis0208<<14 | 0x46<<7 | 0x3C, - 33372 - 19968: jis0212<<14 | 0x36<<7 | 0x05, - 33373 - 19968: jis0208<<14 | 0x46<<7 | 0x3B, - 33375 - 19968: jis0208<<14 | 0x46<<7 | 0x3D, - 33376 - 19968: jis0212<<14 | 0x36<<7 | 0x06, - 33378 - 19968: jis0208<<14 | 0x46<<7 | 0x3F, - 33379 - 19968: jis0212<<14 | 0x36<<7 | 0x07, - 33380 - 19968: jis0208<<14 | 0x46<<7 | 0x3E, - 33382 - 19968: jis0208<<14 | 0x13<<7 | 0x2E, - 33383 - 19968: jis0212<<14 | 0x36<<7 | 0x08, - 33384 - 19968: jis0208<<14 | 0x46<<7 | 0x40, - 33386 - 19968: jis0208<<14 | 0x46<<7 | 0x41, - 33387 - 19968: jis0208<<14 | 0x46<<7 | 0x42, - 33389 - 19968: jis0212<<14 | 0x36<<7 | 0x09, - 33390 - 19968: jis0208<<14 | 0x19<<7 | 0x10, - 33391 - 19968: jis0208<<14 | 0x2D<<7 | 0x28, - 33393 - 19968: jis0208<<14 | 0x46<<7 | 0x44, - 33394 - 19968: jis0208<<14 | 0x1E<<7 | 0x06, - 33396 - 19968: jis0212<<14 | 0x36<<7 | 0x0A, - 33398 - 19968: jis0208<<14 | 0x10<<7 | 0x4F, - 33399 - 19968: jis0208<<14 | 0x46<<7 | 0x45, - 33400 - 19968: jis0208<<14 | 0x46<<7 | 0x46, - 33403 - 19968: jis0212<<14 | 0x36<<7 | 0x0B, - 33405 - 19968: jis0212<<14 | 0x36<<7 | 0x0C, - 33406 - 19968: jis0208<<14 | 0x46<<7 | 0x47, - 33407 - 19968: jis0212<<14 | 0x36<<7 | 0x0D, - 33408 - 19968: jis0212<<14 | 0x36<<7 | 0x0E, - 33409 - 19968: jis0212<<14 | 0x36<<7 | 0x0F, - 33411 - 19968: jis0212<<14 | 0x36<<7 | 0x10, - 33412 - 19968: jis0212<<14 | 0x36<<7 | 0x11, - 33415 - 19968: jis0212<<14 | 0x36<<7 | 0x12, - 33417 - 19968: jis0212<<14 | 0x36<<7 | 0x13, - 33418 - 19968: jis0212<<14 | 0x36<<7 | 0x14, - 33419 - 19968: jis0208<<14 | 0x0F<<7 | 0x51, - 33421 - 19968: jis0208<<14 | 0x46<<7 | 0x48, - 33422 - 19968: jis0212<<14 | 0x36<<7 | 0x15, - 33425 - 19968: jis0212<<14 | 0x36<<7 | 0x16, - 33426 - 19968: jis0208<<14 | 0x46<<7 | 0x49, - 33428 - 19968: jis0212<<14 | 0x36<<7 | 0x17, - 33430 - 19968: jis0212<<14 | 0x36<<7 | 0x18, - 33432 - 19968: jis0212<<14 | 0x36<<7 | 0x19, - 33433 - 19968: jis0208<<14 | 0x28<<7 | 0x46, - 33434 - 19968: jis0212<<14 | 0x36<<7 | 0x1A, - 33435 - 19968: jis0212<<14 | 0x36<<7 | 0x1B, - 33437 - 19968: jis0208<<14 | 0x1B<<7 | 0x26, - 33439 - 19968: jis0208<<14 | 0x46<<7 | 0x4B, - 33440 - 19968: jis0212<<14 | 0x36<<7 | 0x1C, - 33441 - 19968: jis0212<<14 | 0x36<<7 | 0x1D, - 33443 - 19968: jis0212<<14 | 0x36<<7 | 0x1E, - 33444 - 19968: jis0212<<14 | 0x36<<7 | 0x1F, - 33445 - 19968: jis0208<<14 | 0x12<<7 | 0x08, - 33446 - 19968: jis0208<<14 | 0x0F<<7 | 0x11, - 33447 - 19968: jis0212<<14 | 0x36<<7 | 0x20, - 33448 - 19968: jis0212<<14 | 0x36<<7 | 0x21, - 33449 - 19968: jis0212<<14 | 0x36<<7 | 0x22, - 33450 - 19968: jis0212<<14 | 0x36<<7 | 0x23, - 33451 - 19968: jis0208<<14 | 0x46<<7 | 0x4A, - 33452 - 19968: jis0208<<14 | 0x46<<7 | 0x4D, - 33453 - 19968: jis0208<<14 | 0x26<<7 | 0x2D, - 33454 - 19968: jis0212<<14 | 0x36<<7 | 0x24, - 33455 - 19968: jis0208<<14 | 0x1E<<7 | 0x23, - 33456 - 19968: jis0212<<14 | 0x36<<7 | 0x25, - 33457 - 19968: jis0208<<14 | 0x11<<7 | 0x35, - 33458 - 19968: jis0212<<14 | 0x36<<7 | 0x26, - 33459 - 19968: jis0208<<14 | 0x2A<<7 | 0x06, - 33460 - 19968: jis0212<<14 | 0x36<<7 | 0x27, - 33463 - 19968: jis0212<<14 | 0x36<<7 | 0x28, - 33464 - 19968: jis0208<<14 | 0x16<<7 | 0x3C, - 33465 - 19968: jis0208<<14 | 0x15<<7 | 0x3B, - 33466 - 19968: jis0212<<14 | 0x36<<7 | 0x29, - 33467 - 19968: jis0208<<14 | 0x46<<7 | 0x4C, - 33468 - 19968: jis0212<<14 | 0x36<<7 | 0x2A, - 33469 - 19968: jis0208<<14 | 0x11<<7 | 0x49, - 33470 - 19968: jis0212<<14 | 0x36<<7 | 0x2B, - 33471 - 19968: jis0212<<14 | 0x36<<7 | 0x2C, - 33477 - 19968: jis0208<<14 | 0x13<<7 | 0x02, - 33478 - 19968: jis0212<<14 | 0x36<<7 | 0x2D, - 33488 - 19968: jis0212<<14 | 0x36<<7 | 0x2E, - 33489 - 19968: jis0208<<14 | 0x10<<7 | 0x50, - 33490 - 19968: jis0208<<14 | 0x46<<7 | 0x51, - 33491 - 19968: jis0208<<14 | 0x2D<<7 | 0x49, - 33492 - 19968: jis0208<<14 | 0x21<<7 | 0x3C, - 33493 - 19968: jis0212<<14 | 0x36<<7 | 0x2F, - 33495 - 19968: jis0208<<14 | 0x28<<7 | 0x23, - 33497 - 19968: jis0208<<14 | 0x46<<7 | 0x5D, - 33498 - 19968: jis0212<<14 | 0x36<<7 | 0x30, - 33499 - 19968: jis0208<<14 | 0x11<<7 | 0x36, - 33500 - 19968: jis0208<<14 | 0x46<<7 | 0x5B, - 33502 - 19968: jis0208<<14 | 0x46<<7 | 0x59, - 33503 - 19968: jis0208<<14 | 0x46<<7 | 0x50, - 33504 - 19968: jis0212<<14 | 0x36<<7 | 0x31, - 33505 - 19968: jis0208<<14 | 0x46<<7 | 0x4E, - 33506 - 19968: jis0212<<14 | 0x36<<7 | 0x32, - 33507 - 19968: jis0208<<14 | 0x46<<7 | 0x4F, - 33508 - 19968: jis0212<<14 | 0x36<<7 | 0x33, - 33509 - 19968: jis0208<<14 | 0x1B<<7 | 0x42, - 33510 - 19968: jis0208<<14 | 0x15<<7 | 0x4B, - 33511 - 19968: jis0208<<14 | 0x22<<7 | 0x56, - 33512 - 19968: jis0212<<14 | 0x36<<7 | 0x34, - 33514 - 19968: jis0212<<14 | 0x36<<7 | 0x35, - 33515 - 19968: jis0208<<14 | 0x25<<7 | 0x30, - 33517 - 19968: jis0212<<14 | 0x36<<7 | 0x36, - 33519 - 19968: jis0212<<14 | 0x36<<7 | 0x37, - 33521 - 19968: jis0208<<14 | 0x10<<7 | 0x30, - 33523 - 19968: jis0208<<14 | 0x46<<7 | 0x53, - 33524 - 19968: jis0208<<14 | 0x46<<7 | 0x52, - 33526 - 19968: jis0212<<14 | 0x36<<7 | 0x38, - 33527 - 19968: jis0212<<14 | 0x36<<7 | 0x39, - 33529 - 19968: jis0208<<14 | 0x46<<7 | 0x58, - 33530 - 19968: jis0208<<14 | 0x46<<7 | 0x54, - 33531 - 19968: jis0208<<14 | 0x46<<7 | 0x57, - 33533 - 19968: jis0212<<14 | 0x36<<7 | 0x3A, - 33534 - 19968: jis0212<<14 | 0x36<<7 | 0x3B, - 33536 - 19968: jis0212<<14 | 0x36<<7 | 0x3C, - 33537 - 19968: jis0208<<14 | 0x5A<<7 | 0x36, - 33538 - 19968: jis0208<<14 | 0x2B<<7 | 0x2F, - 33539 - 19968: jis0208<<14 | 0x46<<7 | 0x56, - 33540 - 19968: jis0208<<14 | 0x11<<7 | 0x37, - 33541 - 19968: jis0208<<14 | 0x12<<7 | 0x5C, - 33542 - 19968: jis0208<<14 | 0x46<<7 | 0x5A, - 33543 - 19968: jis0212<<14 | 0x36<<7 | 0x3E, - 33544 - 19968: jis0212<<14 | 0x36<<7 | 0x3F, - 33545 - 19968: jis0208<<14 | 0x46<<7 | 0x5C, - 33546 - 19968: jis0212<<14 | 0x36<<7 | 0x40, - 33547 - 19968: jis0212<<14 | 0x36<<7 | 0x41, - 33550 - 19968: jis0208<<14 | 0x16<<7 | 0x33, - 33558 - 19968: jis0208<<14 | 0x47<<7 | 0x02, - 33559 - 19968: jis0208<<14 | 0x47<<7 | 0x0B, - 33560 - 19968: jis0208<<14 | 0x47<<7 | 0x0C, - 33563 - 19968: jis0212<<14 | 0x36<<7 | 0x43, - 33564 - 19968: jis0208<<14 | 0x0F<<7 | 0x0A, - 33565 - 19968: jis0212<<14 | 0x36<<7 | 0x44, - 33566 - 19968: jis0212<<14 | 0x36<<7 | 0x45, - 33567 - 19968: jis0212<<14 | 0x36<<7 | 0x46, - 33569 - 19968: jis0212<<14 | 0x36<<7 | 0x47, - 33570 - 19968: jis0212<<14 | 0x36<<7 | 0x48, - 33571 - 19968: jis0208<<14 | 0x47<<7 | 0x13, - 33576 - 19968: jis0208<<14 | 0x0F<<7 | 0x50, - 33579 - 19968: jis0208<<14 | 0x47<<7 | 0x0A, - 33580 - 19968: jis0212<<14 | 0x36<<7 | 0x49, - 33581 - 19968: jis0212<<14 | 0x36<<7 | 0x4A, - 33582 - 19968: jis0212<<14 | 0x36<<7 | 0x4B, - 33583 - 19968: jis0208<<14 | 0x47<<7 | 0x09, - 33584 - 19968: jis0212<<14 | 0x36<<7 | 0x4C, - 33585 - 19968: jis0208<<14 | 0x47<<7 | 0x04, - 33586 - 19968: jis0208<<14 | 0x47<<7 | 0x03, - 33587 - 19968: jis0212<<14 | 0x36<<7 | 0x4D, - 33588 - 19968: jis0208<<14 | 0x47<<7 | 0x01, - 33589 - 19968: jis0208<<14 | 0x47<<7 | 0x00, - 33590 - 19968: jis0208<<14 | 0x22<<7 | 0x42, - 33591 - 19968: jis0212<<14 | 0x36<<7 | 0x4E, - 33592 - 19968: jis0208<<14 | 0x21<<7 | 0x5A, - 33593 - 19968: jis0208<<14 | 0x47<<7 | 0x06, - 33594 - 19968: jis0212<<14 | 0x36<<7 | 0x4F, - 33596 - 19968: jis0212<<14 | 0x36<<7 | 0x50, - 33597 - 19968: jis0212<<14 | 0x36<<7 | 0x51, - 33600 - 19968: jis0208<<14 | 0x47<<7 | 0x05, - 33602 - 19968: jis0212<<14 | 0x36<<7 | 0x52, - 33603 - 19968: jis0212<<14 | 0x36<<7 | 0x53, - 33604 - 19968: jis0212<<14 | 0x36<<7 | 0x54, - 33605 - 19968: jis0208<<14 | 0x47<<7 | 0x08, - 33607 - 19968: jis0212<<14 | 0x36<<7 | 0x55, - 33609 - 19968: jis0208<<14 | 0x20<<7 | 0x4F, - 33610 - 19968: jis0208<<14 | 0x16<<7 | 0x34, - 33613 - 19968: jis0212<<14 | 0x36<<7 | 0x56, - 33614 - 19968: jis0212<<14 | 0x36<<7 | 0x57, - 33615 - 19968: jis0208<<14 | 0x10<<7 | 0x20, - 33616 - 19968: jis0208<<14 | 0x47<<7 | 0x07, - 33617 - 19968: jis0212<<14 | 0x36<<7 | 0x58, - 33618 - 19968: jis0208<<14 | 0x18<<7 | 0x32, - 33619 - 19968: jis0212<<14 | 0x37<<7 | 0x1D, - 33620 - 19968: jis0212<<14 | 0x36<<7 | 0x42, - 33621 - 19968: jis0212<<14 | 0x36<<7 | 0x59, - 33622 - 19968: jis0212<<14 | 0x36<<7 | 0x5A, - 33623 - 19968: jis0212<<14 | 0x36<<7 | 0x5B, - 33624 - 19968: jis0208<<14 | 0x20<<7 | 0x50, - 33634 - 19968: jis0208<<14 | 0x5A<<7 | 0x37, - 33648 - 19968: jis0212<<14 | 0x36<<7 | 0x5C, - 33651 - 19968: jis0208<<14 | 0x47<<7 | 0x19, - 33653 - 19968: jis0208<<14 | 0x47<<7 | 0x1A, - 33655 - 19968: jis0208<<14 | 0x11<<7 | 0x38, - 33656 - 19968: jis0212<<14 | 0x36<<7 | 0x5D, - 33659 - 19968: jis0208<<14 | 0x11<<7 | 0x0D, - 33660 - 19968: jis0208<<14 | 0x47<<7 | 0x17, - 33661 - 19968: jis0212<<14 | 0x37<<7 | 0x00, - 33663 - 19968: jis0208<<14 | 0x5A<<7 | 0x38, - 33664 - 19968: jis0212<<14 | 0x37<<7 | 0x02, - 33666 - 19968: jis0212<<14 | 0x37<<7 | 0x03, - 33668 - 19968: jis0212<<14 | 0x37<<7 | 0x04, - 33669 - 19968: jis0208<<14 | 0x47<<7 | 0x0D, - 33670 - 19968: jis0212<<14 | 0x37<<7 | 0x05, - 33671 - 19968: jis0208<<14 | 0x47<<7 | 0x15, - 33673 - 19968: jis0208<<14 | 0x47<<7 | 0x1C, - 33674 - 19968: jis0208<<14 | 0x47<<7 | 0x16, - 33677 - 19968: jis0212<<14 | 0x37<<7 | 0x06, - 33678 - 19968: jis0208<<14 | 0x47<<7 | 0x14, - 33682 - 19968: jis0212<<14 | 0x37<<7 | 0x07, - 33683 - 19968: jis0208<<14 | 0x46<<7 | 0x55, - 33684 - 19968: jis0212<<14 | 0x37<<7 | 0x08, - 33685 - 19968: jis0212<<14 | 0x37<<7 | 0x09, - 33686 - 19968: jis0208<<14 | 0x47<<7 | 0x12, - 33688 - 19968: jis0212<<14 | 0x37<<7 | 0x0A, - 33689 - 19968: jis0212<<14 | 0x37<<7 | 0x0B, - 33690 - 19968: jis0208<<14 | 0x47<<7 | 0x0E, - 33691 - 19968: jis0212<<14 | 0x37<<7 | 0x0C, - 33692 - 19968: jis0212<<14 | 0x37<<7 | 0x0D, - 33693 - 19968: jis0212<<14 | 0x37<<7 | 0x0E, - 33694 - 19968: jis0208<<14 | 0x13<<7 | 0x2F, - 33695 - 19968: jis0208<<14 | 0x47<<7 | 0x10, - 33696 - 19968: jis0208<<14 | 0x47<<7 | 0x1B, - 33698 - 19968: jis0208<<14 | 0x47<<7 | 0x11, - 33702 - 19968: jis0212<<14 | 0x37<<7 | 0x0F, - 33703 - 19968: jis0212<<14 | 0x37<<7 | 0x10, - 33704 - 19968: jis0208<<14 | 0x47<<7 | 0x1D, - 33705 - 19968: jis0212<<14 | 0x37<<7 | 0x11, - 33706 - 19968: jis0208<<14 | 0x47<<7 | 0x0F, - 33707 - 19968: jis0208<<14 | 0x26<<7 | 0x5B, - 33708 - 19968: jis0212<<14 | 0x37<<7 | 0x12, - 33709 - 19968: jis0212<<14 | 0x37<<7 | 0x2B, - 33713 - 19968: jis0208<<14 | 0x2C<<7 | 0x48, - 33717 - 19968: jis0208<<14 | 0x47<<7 | 0x18, - 33725 - 19968: jis0208<<14 | 0x47<<7 | 0x2E, - 33726 - 19968: jis0212<<14 | 0x37<<7 | 0x13, - 33727 - 19968: jis0212<<14 | 0x37<<7 | 0x14, - 33728 - 19968: jis0212<<14 | 0x37<<7 | 0x15, - 33729 - 19968: jis0208<<14 | 0x47<<7 | 0x26, - 33733 - 19968: jis0208<<14 | 0x1E<<7 | 0x5A, - 33735 - 19968: jis0208<<14 | 0x5A<<7 | 0x39, - 33737 - 19968: jis0212<<14 | 0x37<<7 | 0x17, - 33738 - 19968: jis0208<<14 | 0x14<<7 | 0x25, - 33740 - 19968: jis0208<<14 | 0x15<<7 | 0x3C, - 33742 - 19968: jis0208<<14 | 0x47<<7 | 0x21, - 33743 - 19968: jis0212<<14 | 0x37<<7 | 0x18, - 33744 - 19968: jis0212<<14 | 0x37<<7 | 0x19, - 33745 - 19968: jis0212<<14 | 0x37<<7 | 0x1A, - 33747 - 19968: jis0208<<14 | 0x11<<7 | 0x3A, - 33748 - 19968: jis0212<<14 | 0x37<<7 | 0x1B, - 33750 - 19968: jis0208<<14 | 0x1D<<7 | 0x33, - 33752 - 19968: jis0208<<14 | 0x47<<7 | 0x24, - 33756 - 19968: jis0208<<14 | 0x19<<7 | 0x39, - 33757 - 19968: jis0212<<14 | 0x37<<7 | 0x1C, - 33759 - 19968: jis0208<<14 | 0x24<<7 | 0x30, - 33760 - 19968: jis0208<<14 | 0x47<<7 | 0x29, - 33768 - 19968: jis0212<<14 | 0x37<<7 | 0x1E, - 33769 - 19968: jis0208<<14 | 0x29<<7 | 0x4D, - 33770 - 19968: jis0212<<14 | 0x37<<7 | 0x1F, - 33771 - 19968: jis0208<<14 | 0x47<<7 | 0x20, - 33775 - 19968: jis0208<<14 | 0x11<<7 | 0x39, - 33776 - 19968: jis0208<<14 | 0x17<<7 | 0x35, - 33777 - 19968: jis0208<<14 | 0x28<<7 | 0x08, - 33778 - 19968: jis0208<<14 | 0x47<<7 | 0x2A, - 33780 - 19968: jis0208<<14 | 0x47<<7 | 0x1E, - 33782 - 19968: jis0208<<14 | 0x5A<<7 | 0x3A, - 33783 - 19968: jis0208<<14 | 0x47<<7 | 0x27, - 33784 - 19968: jis0212<<14 | 0x37<<7 | 0x21, - 33785 - 19968: jis0212<<14 | 0x37<<7 | 0x22, - 33787 - 19968: jis0208<<14 | 0x47<<7 | 0x31, - 33788 - 19968: jis0212<<14 | 0x37<<7 | 0x23, - 33789 - 19968: jis0208<<14 | 0x47<<7 | 0x22, - 33793 - 19968: jis0212<<14 | 0x37<<7 | 0x24, - 33795 - 19968: jis0208<<14 | 0x47<<7 | 0x23, - 33796 - 19968: jis0208<<14 | 0x25<<7 | 0x19, - 33798 - 19968: jis0212<<14 | 0x37<<7 | 0x25, - 33799 - 19968: jis0208<<14 | 0x47<<7 | 0x28, - 33802 - 19968: jis0212<<14 | 0x37<<7 | 0x26, - 33803 - 19968: jis0208<<14 | 0x47<<7 | 0x25, - 33804 - 19968: jis0208<<14 | 0x2A<<7 | 0x07, - 33805 - 19968: jis0208<<14 | 0x47<<7 | 0x2B, - 33806 - 19968: jis0208<<14 | 0x0F<<7 | 0x3F, - 33807 - 19968: jis0212<<14 | 0x37<<7 | 0x27, - 33809 - 19968: jis0212<<14 | 0x37<<7 | 0x28, - 33811 - 19968: jis0208<<14 | 0x47<<7 | 0x1F, - 33813 - 19968: jis0212<<14 | 0x37<<7 | 0x29, - 33817 - 19968: jis0212<<14 | 0x37<<7 | 0x2A, - 33824 - 19968: jis0208<<14 | 0x47<<7 | 0x2D, - 33826 - 19968: jis0208<<14 | 0x47<<7 | 0x2C, - 33833 - 19968: jis0208<<14 | 0x26<<7 | 0x4A, - 33834 - 19968: jis0208<<14 | 0x47<<7 | 0x33, - 33836 - 19968: jis0208<<14 | 0x47<<7 | 0x3E, - 33839 - 19968: jis0212<<14 | 0x37<<7 | 0x2C, - 33841 - 19968: jis0208<<14 | 0x12<<7 | 0x5D, - 33845 - 19968: jis0208<<14 | 0x47<<7 | 0x41, - 33848 - 19968: jis0208<<14 | 0x47<<7 | 0x2F, - 33849 - 19968: jis0212<<14 | 0x37<<7 | 0x2D, - 33852 - 19968: jis0208<<14 | 0x47<<7 | 0x34, - 33853 - 19968: jis0208<<14 | 0x2C<<7 | 0x4D, - 33861 - 19968: jis0212<<14 | 0x37<<7 | 0x2E, - 33862 - 19968: jis0208<<14 | 0x47<<7 | 0x3D, - 33863 - 19968: jis0212<<14 | 0x37<<7 | 0x2F, - 33864 - 19968: jis0208<<14 | 0x5A<<7 | 0x3B, - 33865 - 19968: jis0208<<14 | 0x2C<<7 | 0x34, - 33866 - 19968: jis0212<<14 | 0x37<<7 | 0x31, - 33869 - 19968: jis0212<<14 | 0x37<<7 | 0x32, - 33870 - 19968: jis0208<<14 | 0x2D<<7 | 0x09, - 33871 - 19968: jis0212<<14 | 0x37<<7 | 0x33, - 33873 - 19968: jis0212<<14 | 0x37<<7 | 0x34, - 33874 - 19968: jis0212<<14 | 0x37<<7 | 0x35, - 33878 - 19968: jis0212<<14 | 0x37<<7 | 0x36, - 33879 - 19968: jis0208<<14 | 0x22<<7 | 0x57, - 33880 - 19968: jis0212<<14 | 0x37<<7 | 0x37, - 33881 - 19968: jis0212<<14 | 0x37<<7 | 0x38, - 33882 - 19968: jis0212<<14 | 0x37<<7 | 0x39, - 33883 - 19968: jis0208<<14 | 0x12<<7 | 0x4A, - 33884 - 19968: jis0212<<14 | 0x37<<7 | 0x3A, - 33888 - 19968: jis0212<<14 | 0x37<<7 | 0x3B, - 33889 - 19968: jis0208<<14 | 0x28<<7 | 0x51, - 33890 - 19968: jis0208<<14 | 0x47<<7 | 0x43, - 33891 - 19968: jis0208<<14 | 0x25<<7 | 0x00, - 33892 - 19968: jis0212<<14 | 0x37<<7 | 0x3C, - 33893 - 19968: jis0212<<14 | 0x37<<7 | 0x3D, - 33894 - 19968: jis0208<<14 | 0x0F<<7 | 0x10, - 33895 - 19968: jis0212<<14 | 0x37<<7 | 0x3E, - 33897 - 19968: jis0208<<14 | 0x47<<7 | 0x3C, - 33898 - 19968: jis0212<<14 | 0x37<<7 | 0x3F, - 33899 - 19968: jis0208<<14 | 0x47<<7 | 0x38, - 33900 - 19968: jis0208<<14 | 0x20<<7 | 0x51, - 33901 - 19968: jis0208<<14 | 0x47<<7 | 0x32, - 33902 - 19968: jis0208<<14 | 0x47<<7 | 0x3A, - 33903 - 19968: jis0208<<14 | 0x47<<7 | 0x3F, - 33904 - 19968: jis0212<<14 | 0x37<<7 | 0x40, - 33905 - 19968: jis0208<<14 | 0x26<<7 | 0x0B, - 33907 - 19968: jis0212<<14 | 0x37<<7 | 0x41, - 33908 - 19968: jis0212<<14 | 0x37<<7 | 0x42, - 33909 - 19968: jis0208<<14 | 0x0F<<7 | 0x09, - 33910 - 19968: jis0212<<14 | 0x37<<7 | 0x43, - 33911 - 19968: jis0208<<14 | 0x47<<7 | 0x37, - 33912 - 19968: jis0212<<14 | 0x37<<7 | 0x44, - 33913 - 19968: jis0208<<14 | 0x47<<7 | 0x40, - 33914 - 19968: jis0208<<14 | 0x28<<7 | 0x57, - 33916 - 19968: jis0212<<14 | 0x37<<7 | 0x45, - 33917 - 19968: jis0212<<14 | 0x37<<7 | 0x46, - 33921 - 19968: jis0212<<14 | 0x37<<7 | 0x47, - 33922 - 19968: jis0208<<14 | 0x47<<7 | 0x3B, - 33924 - 19968: jis0208<<14 | 0x47<<7 | 0x36, - 33925 - 19968: jis0212<<14 | 0x37<<7 | 0x48, - 33931 - 19968: jis0208<<14 | 0x1D<<7 | 0x34, - 33936 - 19968: jis0208<<14 | 0x1C<<7 | 0x0E, - 33938 - 19968: jis0212<<14 | 0x37<<7 | 0x49, - 33939 - 19968: jis0212<<14 | 0x37<<7 | 0x4A, - 33940 - 19968: jis0208<<14 | 0x1B<<7 | 0x0B, - 33941 - 19968: jis0212<<14 | 0x37<<7 | 0x4B, - 33945 - 19968: jis0208<<14 | 0x2B<<7 | 0x37, - 33948 - 19968: jis0208<<14 | 0x28<<7 | 0x26, - 33950 - 19968: jis0212<<14 | 0x37<<7 | 0x4C, - 33951 - 19968: jis0208<<14 | 0x47<<7 | 0x46, - 33953 - 19968: jis0208<<14 | 0x47<<7 | 0x4F, - 33958 - 19968: jis0212<<14 | 0x37<<7 | 0x4D, - 33960 - 19968: jis0212<<14 | 0x37<<7 | 0x4E, - 33961 - 19968: jis0212<<14 | 0x37<<7 | 0x4F, - 33962 - 19968: jis0212<<14 | 0x37<<7 | 0x50, - 33965 - 19968: jis0208<<14 | 0x47<<7 | 0x39, - 33967 - 19968: jis0212<<14 | 0x37<<7 | 0x51, - 33969 - 19968: jis0212<<14 | 0x37<<7 | 0x52, - 33970 - 19968: jis0208<<14 | 0x12<<7 | 0x56, - 33972 - 19968: jis0208<<14 | 0x5A<<7 | 0x3C, - 33976 - 19968: jis0208<<14 | 0x1D<<7 | 0x57, - 33977 - 19968: jis0208<<14 | 0x47<<7 | 0x44, - 33978 - 19968: jis0212<<14 | 0x37<<7 | 0x54, - 33979 - 19968: jis0208<<14 | 0x47<<7 | 0x49, - 33980 - 19968: jis0208<<14 | 0x20<<7 | 0x52, - 33981 - 19968: jis0212<<14 | 0x37<<7 | 0x55, - 33982 - 19968: jis0212<<14 | 0x37<<7 | 0x56, - 33983 - 19968: jis0208<<14 | 0x47<<7 | 0x45, - 33984 - 19968: jis0212<<14 | 0x37<<7 | 0x57, - 33985 - 19968: jis0208<<14 | 0x47<<7 | 0x4C, - 33986 - 19968: jis0212<<14 | 0x37<<7 | 0x58, - 33988 - 19968: jis0208<<14 | 0x22<<7 | 0x3E, - 33990 - 19968: jis0208<<14 | 0x47<<7 | 0x4D, - 33991 - 19968: jis0212<<14 | 0x37<<7 | 0x59, - 33992 - 19968: jis0212<<14 | 0x37<<7 | 0x5A, - 33993 - 19968: jis0208<<14 | 0x2C<<7 | 0x35, - 33994 - 19968: jis0208<<14 | 0x47<<7 | 0x42, - 33995 - 19968: jis0208<<14 | 0x12<<7 | 0x17, - 33996 - 19968: jis0212<<14 | 0x37<<7 | 0x5B, - 33997 - 19968: jis0208<<14 | 0x47<<7 | 0x48, - 33999 - 19968: jis0212<<14 | 0x37<<7 | 0x5C, - 34000 - 19968: jis0208<<14 | 0x47<<7 | 0x4B, - 34001 - 19968: jis0208<<14 | 0x2B<<7 | 0x0B, - 34003 - 19968: jis0212<<14 | 0x37<<7 | 0x5D, - 34006 - 19968: jis0208<<14 | 0x47<<7 | 0x4E, - 34009 - 19968: jis0208<<14 | 0x47<<7 | 0x47, - 34010 - 19968: jis0208<<14 | 0x47<<7 | 0x4A, - 34012 - 19968: jis0208<<14 | 0x58<<7 | 0x04, - 34023 - 19968: jis0212<<14 | 0x38<<7 | 0x01, - 34026 - 19968: jis0212<<14 | 0x38<<7 | 0x02, - 34028 - 19968: jis0208<<14 | 0x2A<<7 | 0x08, - 34030 - 19968: jis0208<<14 | 0x2E<<7 | 0x00, - 34031 - 19968: jis0212<<14 | 0x38<<7 | 0x03, - 34032 - 19968: jis0212<<14 | 0x38<<7 | 0x04, - 34033 - 19968: jis0212<<14 | 0x38<<7 | 0x05, - 34034 - 19968: jis0212<<14 | 0x38<<7 | 0x06, - 34036 - 19968: jis0208<<14 | 0x47<<7 | 0x52, - 34039 - 19968: jis0212<<14 | 0x38<<7 | 0x07, - 34042 - 19968: jis0212<<14 | 0x38<<7 | 0x09, - 34043 - 19968: jis0212<<14 | 0x38<<7 | 0x0A, - 34044 - 19968: jis0208<<14 | 0x47<<7 | 0x59, - 34045 - 19968: jis0212<<14 | 0x38<<7 | 0x0B, - 34047 - 19968: jis0208<<14 | 0x47<<7 | 0x51, - 34048 - 19968: jis0208<<14 | 0x1B<<7 | 0x22, - 34050 - 19968: jis0212<<14 | 0x38<<7 | 0x0C, - 34051 - 19968: jis0212<<14 | 0x38<<7 | 0x0D, - 34054 - 19968: jis0208<<14 | 0x47<<7 | 0x30, - 34055 - 19968: jis0212<<14 | 0x38<<7 | 0x0E, - 34060 - 19968: jis0212<<14 | 0x38<<7 | 0x0F, - 34062 - 19968: jis0212<<14 | 0x38<<7 | 0x10, - 34064 - 19968: jis0212<<14 | 0x38<<7 | 0x11, - 34065 - 19968: jis0208<<14 | 0x29<<7 | 0x2D, - 34067 - 19968: jis0208<<14 | 0x2B<<7 | 0x01, - 34068 - 19968: jis0208<<14 | 0x47<<7 | 0x58, - 34069 - 19968: jis0208<<14 | 0x47<<7 | 0x57, - 34071 - 19968: jis0208<<14 | 0x47<<7 | 0x53, - 34072 - 19968: jis0208<<14 | 0x47<<7 | 0x54, - 34074 - 19968: jis0208<<14 | 0x10<<7 | 0x15, - 34076 - 19968: jis0212<<14 | 0x38<<7 | 0x12, - 34078 - 19968: jis0212<<14 | 0x38<<7 | 0x13, - 34079 - 19968: jis0208<<14 | 0x47<<7 | 0x56, - 34081 - 19968: jis0208<<14 | 0x47<<7 | 0x50, - 34082 - 19968: jis0212<<14 | 0x38<<7 | 0x14, - 34083 - 19968: jis0212<<14 | 0x38<<7 | 0x15, - 34084 - 19968: jis0212<<14 | 0x38<<7 | 0x16, - 34085 - 19968: jis0212<<14 | 0x38<<7 | 0x17, - 34086 - 19968: jis0208<<14 | 0x23<<7 | 0x34, - 34087 - 19968: jis0212<<14 | 0x38<<7 | 0x18, - 34090 - 19968: jis0212<<14 | 0x38<<7 | 0x19, - 34091 - 19968: jis0212<<14 | 0x38<<7 | 0x1A, - 34092 - 19968: jis0208<<14 | 0x47<<7 | 0x55, - 34093 - 19968: jis0208<<14 | 0x0F<<7 | 0x5D, - 34095 - 19968: jis0212<<14 | 0x38<<7 | 0x1B, - 34098 - 19968: jis0212<<14 | 0x38<<7 | 0x08, - 34099 - 19968: jis0212<<14 | 0x38<<7 | 0x1C, - 34100 - 19968: jis0212<<14 | 0x38<<7 | 0x1D, - 34101 - 19968: jis0208<<14 | 0x21<<7 | 0x01, - 34102 - 19968: jis0212<<14 | 0x38<<7 | 0x1E, - 34109 - 19968: jis0208<<14 | 0x29<<7 | 0x22, - 34111 - 19968: jis0212<<14 | 0x38<<7 | 0x1F, - 34112 - 19968: jis0208<<14 | 0x47<<7 | 0x5A, - 34113 - 19968: jis0208<<14 | 0x48<<7 | 0x00, - 34115 - 19968: jis0208<<14 | 0x27<<7 | 0x38, - 34118 - 19968: jis0212<<14 | 0x38<<7 | 0x20, - 34120 - 19968: jis0208<<14 | 0x47<<7 | 0x5D, - 34121 - 19968: jis0208<<14 | 0x1D<<7 | 0x35, - 34122 - 19968: jis0208<<14 | 0x1B<<7 | 0x28, - 34123 - 19968: jis0208<<14 | 0x48<<7 | 0x02, - 34126 - 19968: jis0208<<14 | 0x15<<7 | 0x1D, - 34127 - 19968: jis0212<<14 | 0x38<<7 | 0x21, - 34128 - 19968: jis0212<<14 | 0x38<<7 | 0x22, - 34129 - 19968: jis0212<<14 | 0x38<<7 | 0x23, - 34130 - 19968: jis0212<<14 | 0x38<<7 | 0x24, - 34131 - 19968: jis0208<<14 | 0x5A<<7 | 0x3D, - 34133 - 19968: jis0208<<14 | 0x48<<7 | 0x03, - 34134 - 19968: jis0212<<14 | 0x38<<7 | 0x26, - 34135 - 19968: jis0208<<14 | 0x28<<7 | 0x58, - 34136 - 19968: jis0208<<14 | 0x47<<7 | 0x5C, - 34137 - 19968: jis0208<<14 | 0x5A<<7 | 0x3E, - 34138 - 19968: jis0208<<14 | 0x47<<7 | 0x35, - 34140 - 19968: jis0212<<14 | 0x38<<7 | 0x28, - 34141 - 19968: jis0212<<14 | 0x38<<7 | 0x29, - 34142 - 19968: jis0212<<14 | 0x38<<7 | 0x2A, - 34143 - 19968: jis0212<<14 | 0x38<<7 | 0x2B, - 34144 - 19968: jis0212<<14 | 0x38<<7 | 0x2C, - 34145 - 19968: jis0212<<14 | 0x38<<7 | 0x2D, - 34146 - 19968: jis0212<<14 | 0x38<<7 | 0x2E, - 34147 - 19968: jis0208<<14 | 0x47<<7 | 0x5B, - 34148 - 19968: jis0212<<14 | 0x38<<7 | 0x2F, - 34152 - 19968: jis0208<<14 | 0x2E<<7 | 0x2E, - 34153 - 19968: jis0208<<14 | 0x25<<7 | 0x01, - 34154 - 19968: jis0208<<14 | 0x28<<7 | 0x52, - 34155 - 19968: jis0208<<14 | 0x5A<<7 | 0x3F, - 34157 - 19968: jis0208<<14 | 0x48<<7 | 0x0A, - 34159 - 19968: jis0212<<14 | 0x38<<7 | 0x31, - 34167 - 19968: jis0208<<14 | 0x48<<7 | 0x10, - 34169 - 19968: jis0212<<14 | 0x38<<7 | 0x32, - 34170 - 19968: jis0212<<14 | 0x38<<7 | 0x33, - 34171 - 19968: jis0212<<14 | 0x38<<7 | 0x34, - 34173 - 19968: jis0212<<14 | 0x38<<7 | 0x35, - 34174 - 19968: jis0208<<14 | 0x48<<7 | 0x11, - 34175 - 19968: jis0212<<14 | 0x38<<7 | 0x36, - 34176 - 19968: jis0208<<14 | 0x48<<7 | 0x04, - 34177 - 19968: jis0212<<14 | 0x38<<7 | 0x37, - 34180 - 19968: jis0208<<14 | 0x26<<7 | 0x55, - 34181 - 19968: jis0212<<14 | 0x38<<7 | 0x38, - 34182 - 19968: jis0212<<14 | 0x38<<7 | 0x39, - 34183 - 19968: jis0208<<14 | 0x48<<7 | 0x0E, - 34184 - 19968: jis0208<<14 | 0x48<<7 | 0x06, - 34185 - 19968: jis0212<<14 | 0x38<<7 | 0x3A, - 34186 - 19968: jis0208<<14 | 0x48<<7 | 0x08, - 34187 - 19968: jis0212<<14 | 0x38<<7 | 0x3B, - 34188 - 19968: jis0212<<14 | 0x38<<7 | 0x3C, - 34191 - 19968: jis0212<<14 | 0x38<<7 | 0x3D, - 34192 - 19968: jis0208<<14 | 0x48<<7 | 0x12, - 34193 - 19968: jis0208<<14 | 0x48<<7 | 0x07, - 34195 - 19968: jis0212<<14 | 0x38<<7 | 0x3E, - 34196 - 19968: jis0208<<14 | 0x48<<7 | 0x0B, - 34199 - 19968: jis0208<<14 | 0x10<<7 | 0x51, - 34200 - 19968: jis0212<<14 | 0x38<<7 | 0x3F, - 34201 - 19968: jis0208<<14 | 0x25<<7 | 0x44, - 34203 - 19968: jis0208<<14 | 0x48<<7 | 0x0C, - 34204 - 19968: jis0208<<14 | 0x48<<7 | 0x0F, - 34205 - 19968: jis0212<<14 | 0x38<<7 | 0x40, - 34207 - 19968: jis0212<<14 | 0x38<<7 | 0x41, - 34208 - 19968: jis0212<<14 | 0x38<<7 | 0x42, - 34210 - 19968: jis0212<<14 | 0x38<<7 | 0x43, - 34212 - 19968: jis0208<<14 | 0x48<<7 | 0x05, - 34213 - 19968: jis0212<<14 | 0x38<<7 | 0x44, - 34214 - 19968: jis0208<<14 | 0x20<<7 | 0x05, - 34215 - 19968: jis0212<<14 | 0x38<<7 | 0x45, - 34216 - 19968: jis0208<<14 | 0x48<<7 | 0x09, - 34217 - 19968: jis0208<<14 | 0x1A<<7 | 0x06, - 34218 - 19968: jis0208<<14 | 0x1E<<7 | 0x24, - 34219 - 19968: jis0208<<14 | 0x16<<7 | 0x0F, - 34220 - 19968: jis0208<<14 | 0x2B<<7 | 0x53, - 34221 - 19968: jis0212<<14 | 0x38<<7 | 0x53, - 34222 - 19968: jis0208<<14 | 0x2B<<7 | 0x58, - 34223 - 19968: jis0208<<14 | 0x1C<<7 | 0x51, - 34224 - 19968: jis0208<<14 | 0x5A<<7 | 0x41, - 34228 - 19968: jis0212<<14 | 0x38<<7 | 0x46, - 34230 - 19968: jis0212<<14 | 0x38<<7 | 0x47, - 34231 - 19968: jis0212<<14 | 0x38<<7 | 0x48, - 34232 - 19968: jis0212<<14 | 0x38<<7 | 0x49, - 34233 - 19968: jis0208<<14 | 0x48<<7 | 0x16, - 34234 - 19968: jis0208<<14 | 0x48<<7 | 0x14, - 34236 - 19968: jis0212<<14 | 0x38<<7 | 0x4A, - 34237 - 19968: jis0212<<14 | 0x38<<7 | 0x4B, - 34238 - 19968: jis0212<<14 | 0x38<<7 | 0x4C, - 34239 - 19968: jis0212<<14 | 0x38<<7 | 0x4D, - 34241 - 19968: jis0208<<14 | 0x2E<<7 | 0x2D, - 34242 - 19968: jis0212<<14 | 0x38<<7 | 0x4E, - 34247 - 19968: jis0212<<14 | 0x38<<7 | 0x4F, - 34249 - 19968: jis0208<<14 | 0x48<<7 | 0x13, - 34250 - 19968: jis0212<<14 | 0x38<<7 | 0x50, - 34251 - 19968: jis0212<<14 | 0x38<<7 | 0x51, - 34253 - 19968: jis0208<<14 | 0x2C<<7 | 0x54, - 34254 - 19968: jis0212<<14 | 0x38<<7 | 0x52, - 34255 - 19968: jis0208<<14 | 0x48<<7 | 0x15, - 34256 - 19968: jis0208<<14 | 0x48<<7 | 0x17, - 34261 - 19968: jis0208<<14 | 0x48<<7 | 0x18, - 34264 - 19968: jis0212<<14 | 0x38<<7 | 0x54, - 34266 - 19968: jis0212<<14 | 0x38<<7 | 0x55, - 34268 - 19968: jis0208<<14 | 0x48<<7 | 0x1B, - 34269 - 19968: jis0208<<14 | 0x48<<7 | 0x19, - 34271 - 19968: jis0212<<14 | 0x38<<7 | 0x56, - 34272 - 19968: jis0212<<14 | 0x38<<7 | 0x57, - 34276 - 19968: jis0208<<14 | 0x25<<7 | 0x02, - 34277 - 19968: jis0208<<14 | 0x48<<7 | 0x1A, - 34278 - 19968: jis0212<<14 | 0x38<<7 | 0x58, - 34280 - 19968: jis0212<<14 | 0x38<<7 | 0x59, - 34281 - 19968: jis0208<<14 | 0x27<<7 | 0x2C, - 34282 - 19968: jis0208<<14 | 0x48<<7 | 0x0D, - 34285 - 19968: jis0212<<14 | 0x38<<7 | 0x5A, - 34291 - 19968: jis0212<<14 | 0x38<<7 | 0x5B, - 34294 - 19968: jis0212<<14 | 0x38<<7 | 0x5C, - 34295 - 19968: jis0208<<14 | 0x1C<<7 | 0x52, - 34297 - 19968: jis0208<<14 | 0x48<<7 | 0x1C, - 34298 - 19968: jis0208<<14 | 0x48<<7 | 0x21, - 34299 - 19968: jis0208<<14 | 0x20<<7 | 0x53, - 34300 - 19968: jis0212<<14 | 0x38<<7 | 0x5D, - 34302 - 19968: jis0208<<14 | 0x48<<7 | 0x20, - 34303 - 19968: jis0212<<14 | 0x39<<7 | 0x00, - 34304 - 19968: jis0212<<14 | 0x39<<7 | 0x01, - 34306 - 19968: jis0208<<14 | 0x48<<7 | 0x01, - 34308 - 19968: jis0212<<14 | 0x39<<7 | 0x02, - 34309 - 19968: jis0212<<14 | 0x39<<7 | 0x03, - 34310 - 19968: jis0208<<14 | 0x48<<7 | 0x22, - 34311 - 19968: jis0208<<14 | 0x20<<7 | 0x28, - 34314 - 19968: jis0208<<14 | 0x48<<7 | 0x1D, - 34315 - 19968: jis0208<<14 | 0x48<<7 | 0x1F, - 34317 - 19968: jis0212<<14 | 0x39<<7 | 0x04, - 34318 - 19968: jis0212<<14 | 0x39<<7 | 0x05, - 34320 - 19968: jis0212<<14 | 0x39<<7 | 0x06, - 34321 - 19968: jis0212<<14 | 0x39<<7 | 0x07, - 34322 - 19968: jis0212<<14 | 0x39<<7 | 0x08, - 34323 - 19968: jis0208<<14 | 0x48<<7 | 0x1E, - 34326 - 19968: jis0208<<14 | 0x3C<<7 | 0x10, - 34327 - 19968: jis0208<<14 | 0x3C<<7 | 0x01, - 34328 - 19968: jis0212<<14 | 0x39<<7 | 0x09, - 34329 - 19968: jis0212<<14 | 0x39<<7 | 0x0A, - 34330 - 19968: jis0208<<14 | 0x48<<7 | 0x24, - 34331 - 19968: jis0212<<14 | 0x39<<7 | 0x0B, - 34334 - 19968: jis0212<<14 | 0x39<<7 | 0x0C, - 34337 - 19968: jis0212<<14 | 0x39<<7 | 0x0D, - 34338 - 19968: jis0208<<14 | 0x48<<7 | 0x23, - 34343 - 19968: jis0212<<14 | 0x39<<7 | 0x0E, - 34345 - 19968: jis0212<<14 | 0x39<<7 | 0x0F, - 34349 - 19968: jis0208<<14 | 0x2C<<7 | 0x55, - 34351 - 19968: jis0208<<14 | 0x41<<7 | 0x1B, - 34352 - 19968: jis0208<<14 | 0x48<<7 | 0x25, - 34358 - 19968: jis0212<<14 | 0x39<<7 | 0x10, - 34360 - 19968: jis0212<<14 | 0x39<<7 | 0x11, - 34362 - 19968: jis0212<<14 | 0x39<<7 | 0x12, - 34364 - 19968: jis0212<<14 | 0x39<<7 | 0x13, - 34365 - 19968: jis0212<<14 | 0x39<<7 | 0x14, - 34367 - 19968: jis0208<<14 | 0x48<<7 | 0x26, - 34368 - 19968: jis0212<<14 | 0x39<<7 | 0x15, - 34369 - 19968: jis0212<<14 | 0x17<<7 | 0x45, - 34370 - 19968: jis0212<<14 | 0x39<<7 | 0x16, - 34374 - 19968: jis0212<<14 | 0x39<<7 | 0x17, - 34381 - 19968: jis0208<<14 | 0x48<<7 | 0x27, - 34382 - 19968: jis0208<<14 | 0x17<<7 | 0x36, - 34384 - 19968: jis0208<<14 | 0x14<<7 | 0x33, - 34386 - 19968: jis0212<<14 | 0x39<<7 | 0x18, - 34387 - 19968: jis0212<<14 | 0x39<<7 | 0x19, - 34388 - 19968: jis0208<<14 | 0x48<<7 | 0x29, - 34389 - 19968: jis0208<<14 | 0x30<<7 | 0x3C, - 34390 - 19968: jis0212<<14 | 0x39<<7 | 0x1A, - 34391 - 19968: jis0212<<14 | 0x39<<7 | 0x1B, - 34392 - 19968: jis0212<<14 | 0x39<<7 | 0x1C, - 34393 - 19968: jis0212<<14 | 0x39<<7 | 0x1D, - 34394 - 19968: jis0208<<14 | 0x14<<7 | 0x54, - 34396 - 19968: jis0208<<14 | 0x2D<<7 | 0x19, - 34397 - 19968: jis0212<<14 | 0x39<<7 | 0x1E, - 34398 - 19968: jis0208<<14 | 0x15<<7 | 0x52, - 34399 - 19968: jis0208<<14 | 0x48<<7 | 0x2A, - 34400 - 19968: jis0212<<14 | 0x39<<7 | 0x1F, - 34401 - 19968: jis0212<<14 | 0x39<<7 | 0x20, - 34402 - 19968: jis0212<<14 | 0x39<<7 | 0x21, - 34403 - 19968: jis0212<<14 | 0x39<<7 | 0x22, - 34404 - 19968: jis0212<<14 | 0x39<<7 | 0x23, - 34407 - 19968: jis0208<<14 | 0x48<<7 | 0x2B, - 34409 - 19968: jis0212<<14 | 0x39<<7 | 0x24, - 34411 - 19968: jis0208<<14 | 0x22<<7 | 0x4D, - 34412 - 19968: jis0212<<14 | 0x39<<7 | 0x25, - 34415 - 19968: jis0212<<14 | 0x39<<7 | 0x26, - 34417 - 19968: jis0208<<14 | 0x48<<7 | 0x2C, - 34421 - 19968: jis0212<<14 | 0x39<<7 | 0x27, - 34422 - 19968: jis0212<<14 | 0x39<<7 | 0x28, - 34423 - 19968: jis0212<<14 | 0x39<<7 | 0x29, - 34425 - 19968: jis0208<<14 | 0x25<<7 | 0x59, - 34426 - 19968: jis0212<<14 | 0x39<<7 | 0x2A, - 34427 - 19968: jis0208<<14 | 0x0F<<7 | 0x19, - 34440 - 19968: jis0212<<14 | 0x39<<7 | 0x4C, - 34442 - 19968: jis0208<<14 | 0x11<<7 | 0x42, - 34443 - 19968: jis0208<<14 | 0x48<<7 | 0x31, - 34444 - 19968: jis0208<<14 | 0x48<<7 | 0x32, - 34445 - 19968: jis0212<<14 | 0x39<<7 | 0x2B, - 34449 - 19968: jis0212<<14 | 0x39<<7 | 0x2C, - 34451 - 19968: jis0208<<14 | 0x48<<7 | 0x2D, - 34453 - 19968: jis0208<<14 | 0x1A<<7 | 0x1C, - 34454 - 19968: jis0212<<14 | 0x39<<7 | 0x2D, - 34456 - 19968: jis0212<<14 | 0x39<<7 | 0x2E, - 34458 - 19968: jis0212<<14 | 0x39<<7 | 0x2F, - 34460 - 19968: jis0212<<14 | 0x39<<7 | 0x30, - 34465 - 19968: jis0212<<14 | 0x39<<7 | 0x31, - 34467 - 19968: jis0208<<14 | 0x48<<7 | 0x2E, - 34468 - 19968: jis0208<<14 | 0x26<<7 | 0x21, - 34470 - 19968: jis0212<<14 | 0x39<<7 | 0x32, - 34471 - 19968: jis0212<<14 | 0x39<<7 | 0x33, - 34472 - 19968: jis0212<<14 | 0x39<<7 | 0x34, - 34473 - 19968: jis0208<<14 | 0x48<<7 | 0x2F, - 34474 - 19968: jis0208<<14 | 0x48<<7 | 0x30, - 34475 - 19968: jis0208<<14 | 0x48<<7 | 0x3A, - 34477 - 19968: jis0212<<14 | 0x39<<7 | 0x35, - 34479 - 19968: jis0208<<14 | 0x48<<7 | 0x34, - 34480 - 19968: jis0208<<14 | 0x48<<7 | 0x37, - 34481 - 19968: jis0212<<14 | 0x39<<7 | 0x36, - 34483 - 19968: jis0212<<14 | 0x39<<7 | 0x37, - 34484 - 19968: jis0212<<14 | 0x39<<7 | 0x38, - 34485 - 19968: jis0212<<14 | 0x39<<7 | 0x39, - 34486 - 19968: jis0208<<14 | 0x48<<7 | 0x33, - 34487 - 19968: jis0212<<14 | 0x39<<7 | 0x3A, - 34488 - 19968: jis0212<<14 | 0x39<<7 | 0x3B, - 34489 - 19968: jis0212<<14 | 0x39<<7 | 0x3C, - 34495 - 19968: jis0212<<14 | 0x39<<7 | 0x3D, - 34496 - 19968: jis0212<<14 | 0x39<<7 | 0x3E, - 34497 - 19968: jis0212<<14 | 0x39<<7 | 0x3F, - 34499 - 19968: jis0212<<14 | 0x39<<7 | 0x40, - 34500 - 19968: jis0208<<14 | 0x48<<7 | 0x35, - 34501 - 19968: jis0212<<14 | 0x39<<7 | 0x41, - 34502 - 19968: jis0208<<14 | 0x48<<7 | 0x36, - 34503 - 19968: jis0208<<14 | 0x1B<<7 | 0x37, - 34505 - 19968: jis0208<<14 | 0x48<<7 | 0x38, - 34507 - 19968: jis0208<<14 | 0x22<<7 | 0x20, - 34509 - 19968: jis0208<<14 | 0x16<<7 | 0x35, - 34510 - 19968: jis0208<<14 | 0x12<<7 | 0x21, - 34513 - 19968: jis0212<<14 | 0x39<<7 | 0x42, - 34514 - 19968: jis0212<<14 | 0x39<<7 | 0x43, - 34516 - 19968: jis0208<<14 | 0x48<<7 | 0x3B, - 34517 - 19968: jis0212<<14 | 0x39<<7 | 0x44, - 34519 - 19968: jis0212<<14 | 0x39<<7 | 0x45, - 34521 - 19968: jis0208<<14 | 0x12<<7 | 0x1E, - 34522 - 19968: jis0212<<14 | 0x39<<7 | 0x46, - 34523 - 19968: jis0208<<14 | 0x48<<7 | 0x40, - 34524 - 19968: jis0212<<14 | 0x39<<7 | 0x47, - 34526 - 19968: jis0208<<14 | 0x48<<7 | 0x3C, - 34527 - 19968: jis0208<<14 | 0x48<<7 | 0x3F, - 34528 - 19968: jis0212<<14 | 0x39<<7 | 0x48, - 34531 - 19968: jis0212<<14 | 0x39<<7 | 0x49, - 34532 - 19968: jis0208<<14 | 0x27<<7 | 0x19, - 34533 - 19968: jis0212<<14 | 0x39<<7 | 0x4A, - 34535 - 19968: jis0212<<14 | 0x39<<7 | 0x4B, - 34537 - 19968: jis0208<<14 | 0x48<<7 | 0x3D, - 34540 - 19968: jis0208<<14 | 0x48<<7 | 0x3E, - 34541 - 19968: jis0208<<14 | 0x28<<7 | 0x27, - 34542 - 19968: jis0208<<14 | 0x27<<7 | 0x39, - 34543 - 19968: jis0208<<14 | 0x48<<7 | 0x41, - 34552 - 19968: jis0208<<14 | 0x21<<7 | 0x5C, - 34553 - 19968: jis0208<<14 | 0x48<<7 | 0x4B, - 34554 - 19968: jis0212<<14 | 0x39<<7 | 0x4D, - 34555 - 19968: jis0208<<14 | 0x48<<7 | 0x47, - 34556 - 19968: jis0212<<14 | 0x39<<7 | 0x4E, - 34557 - 19968: jis0212<<14 | 0x39<<7 | 0x4F, - 34558 - 19968: jis0208<<14 | 0x11<<7 | 0x4A, - 34560 - 19968: jis0208<<14 | 0x48<<7 | 0x45, - 34562 - 19968: jis0208<<14 | 0x2A<<7 | 0x09, - 34563 - 19968: jis0208<<14 | 0x48<<7 | 0x46, - 34564 - 19968: jis0212<<14 | 0x39<<7 | 0x50, - 34565 - 19968: jis0212<<14 | 0x39<<7 | 0x51, - 34566 - 19968: jis0208<<14 | 0x48<<7 | 0x43, - 34567 - 19968: jis0212<<14 | 0x39<<7 | 0x52, - 34568 - 19968: jis0208<<14 | 0x48<<7 | 0x44, - 34569 - 19968: jis0208<<14 | 0x48<<7 | 0x49, - 34570 - 19968: jis0208<<14 | 0x48<<7 | 0x4C, - 34571 - 19968: jis0212<<14 | 0x39<<7 | 0x53, - 34573 - 19968: jis0208<<14 | 0x48<<7 | 0x4A, - 34574 - 19968: jis0212<<14 | 0x39<<7 | 0x54, - 34575 - 19968: jis0212<<14 | 0x39<<7 | 0x55, - 34576 - 19968: jis0212<<14 | 0x39<<7 | 0x56, - 34577 - 19968: jis0208<<14 | 0x48<<7 | 0x48, - 34578 - 19968: jis0208<<14 | 0x48<<7 | 0x42, - 34579 - 19968: jis0212<<14 | 0x39<<7 | 0x57, - 34580 - 19968: jis0212<<14 | 0x39<<7 | 0x58, - 34584 - 19968: jis0208<<14 | 0x22<<7 | 0x37, - 34585 - 19968: jis0212<<14 | 0x39<<7 | 0x59, - 34586 - 19968: jis0208<<14 | 0x48<<7 | 0x53, - 34588 - 19968: jis0208<<14 | 0x2B<<7 | 0x09, - 34590 - 19968: jis0212<<14 | 0x39<<7 | 0x5A, - 34591 - 19968: jis0212<<14 | 0x39<<7 | 0x5B, - 34593 - 19968: jis0212<<14 | 0x39<<7 | 0x5C, - 34595 - 19968: jis0212<<14 | 0x39<<7 | 0x5D, - 34597 - 19968: jis0208<<14 | 0x48<<7 | 0x51, - 34600 - 19968: jis0212<<14 | 0x3A<<7 | 0x00, - 34601 - 19968: jis0208<<14 | 0x48<<7 | 0x52, - 34606 - 19968: jis0212<<14 | 0x3A<<7 | 0x01, - 34607 - 19968: jis0212<<14 | 0x3A<<7 | 0x02, - 34609 - 19968: jis0212<<14 | 0x3A<<7 | 0x03, - 34610 - 19968: jis0212<<14 | 0x3A<<7 | 0x04, - 34612 - 19968: jis0208<<14 | 0x48<<7 | 0x4D, - 34615 - 19968: jis0208<<14 | 0x48<<7 | 0x4F, - 34617 - 19968: jis0212<<14 | 0x3A<<7 | 0x05, - 34618 - 19968: jis0212<<14 | 0x3A<<7 | 0x06, - 34619 - 19968: jis0208<<14 | 0x48<<7 | 0x50, - 34620 - 19968: jis0212<<14 | 0x3A<<7 | 0x07, - 34621 - 19968: jis0212<<14 | 0x3A<<7 | 0x08, - 34622 - 19968: jis0212<<14 | 0x3A<<7 | 0x09, - 34623 - 19968: jis0208<<14 | 0x48<<7 | 0x4E, - 34624 - 19968: jis0212<<14 | 0x3A<<7 | 0x0A, - 34627 - 19968: jis0212<<14 | 0x3A<<7 | 0x0B, - 34629 - 19968: jis0212<<14 | 0x3A<<7 | 0x0C, - 34633 - 19968: jis0208<<14 | 0x1F<<7 | 0x45, - 34635 - 19968: jis0208<<14 | 0x2E<<7 | 0x18, - 34636 - 19968: jis0208<<14 | 0x48<<7 | 0x57, - 34637 - 19968: jis0212<<14 | 0x3A<<7 | 0x0D, - 34638 - 19968: jis0208<<14 | 0x48<<7 | 0x58, - 34643 - 19968: jis0208<<14 | 0x49<<7 | 0x00, - 34645 - 19968: jis0208<<14 | 0x1E<<7 | 0x09, - 34647 - 19968: jis0208<<14 | 0x48<<7 | 0x5A, - 34648 - 19968: jis0212<<14 | 0x3A<<7 | 0x0E, - 34649 - 19968: jis0208<<14 | 0x48<<7 | 0x5D, - 34653 - 19968: jis0212<<14 | 0x3A<<7 | 0x0F, - 34655 - 19968: jis0208<<14 | 0x48<<7 | 0x55, - 34656 - 19968: jis0208<<14 | 0x48<<7 | 0x54, - 34657 - 19968: jis0212<<14 | 0x3A<<7 | 0x10, - 34659 - 19968: jis0208<<14 | 0x49<<7 | 0x01, - 34660 - 19968: jis0212<<14 | 0x3A<<7 | 0x11, - 34661 - 19968: jis0212<<14 | 0x3A<<7 | 0x12, - 34662 - 19968: jis0208<<14 | 0x11<<7 | 0x3B, - 34664 - 19968: jis0208<<14 | 0x48<<7 | 0x5B, - 34666 - 19968: jis0208<<14 | 0x49<<7 | 0x02, - 34670 - 19968: jis0208<<14 | 0x48<<7 | 0x5C, - 34671 - 19968: jis0212<<14 | 0x3A<<7 | 0x13, - 34673 - 19968: jis0212<<14 | 0x3A<<7 | 0x14, - 34674 - 19968: jis0212<<14 | 0x3A<<7 | 0x15, - 34676 - 19968: jis0208<<14 | 0x48<<7 | 0x59, - 34678 - 19968: jis0208<<14 | 0x23<<7 | 0x12, - 34680 - 19968: jis0208<<14 | 0x48<<7 | 0x56, - 34683 - 19968: jis0212<<14 | 0x3A<<7 | 0x16, - 34687 - 19968: jis0208<<14 | 0x26<<7 | 0x47, - 34690 - 19968: jis0208<<14 | 0x49<<7 | 0x06, - 34691 - 19968: jis0212<<14 | 0x3A<<7 | 0x17, - 34692 - 19968: jis0212<<14 | 0x3A<<7 | 0x18, - 34693 - 19968: jis0212<<14 | 0x3A<<7 | 0x19, - 34694 - 19968: jis0212<<14 | 0x3A<<7 | 0x1A, - 34695 - 19968: jis0212<<14 | 0x3A<<7 | 0x1B, - 34696 - 19968: jis0212<<14 | 0x3A<<7 | 0x1C, - 34697 - 19968: jis0212<<14 | 0x3A<<7 | 0x1D, - 34699 - 19968: jis0212<<14 | 0x3A<<7 | 0x1E, - 34700 - 19968: jis0212<<14 | 0x3A<<7 | 0x1F, - 34701 - 19968: jis0208<<14 | 0x2C<<7 | 0x1A, - 34704 - 19968: jis0212<<14 | 0x3A<<7 | 0x20, - 34707 - 19968: jis0212<<14 | 0x3A<<7 | 0x21, - 34709 - 19968: jis0212<<14 | 0x3A<<7 | 0x22, - 34711 - 19968: jis0212<<14 | 0x3A<<7 | 0x23, - 34712 - 19968: jis0212<<14 | 0x3A<<7 | 0x24, - 34713 - 19968: jis0212<<14 | 0x3A<<7 | 0x25, - 34718 - 19968: jis0212<<14 | 0x3A<<7 | 0x26, - 34719 - 19968: jis0208<<14 | 0x49<<7 | 0x05, - 34720 - 19968: jis0212<<14 | 0x3A<<7 | 0x27, - 34722 - 19968: jis0208<<14 | 0x49<<7 | 0x04, - 34723 - 19968: jis0212<<14 | 0x3A<<7 | 0x28, - 34727 - 19968: jis0212<<14 | 0x3A<<7 | 0x29, - 34731 - 19968: jis0208<<14 | 0x49<<7 | 0x0D, - 34732 - 19968: jis0212<<14 | 0x3A<<7 | 0x2A, - 34733 - 19968: jis0212<<14 | 0x3A<<7 | 0x2B, - 34734 - 19968: jis0212<<14 | 0x3A<<7 | 0x2C, - 34735 - 19968: jis0208<<14 | 0x49<<7 | 0x07, - 34737 - 19968: jis0212<<14 | 0x3A<<7 | 0x2D, - 34739 - 19968: jis0208<<14 | 0x49<<7 | 0x0F, - 34741 - 19968: jis0212<<14 | 0x3A<<7 | 0x2E, - 34746 - 19968: jis0208<<14 | 0x2C<<7 | 0x45, - 34747 - 19968: jis0208<<14 | 0x49<<7 | 0x12, - 34749 - 19968: jis0208<<14 | 0x49<<7 | 0x09, - 34750 - 19968: jis0212<<14 | 0x3A<<7 | 0x2F, - 34751 - 19968: jis0212<<14 | 0x3A<<7 | 0x30, - 34752 - 19968: jis0208<<14 | 0x49<<7 | 0x0A, - 34753 - 19968: jis0212<<14 | 0x3A<<7 | 0x31, - 34756 - 19968: jis0208<<14 | 0x49<<7 | 0x0E, - 34758 - 19968: jis0208<<14 | 0x49<<7 | 0x11, - 34759 - 19968: jis0208<<14 | 0x49<<7 | 0x10, - 34760 - 19968: jis0212<<14 | 0x3A<<7 | 0x32, - 34761 - 19968: jis0212<<14 | 0x3A<<7 | 0x33, - 34762 - 19968: jis0212<<14 | 0x3A<<7 | 0x34, - 34763 - 19968: jis0208<<14 | 0x49<<7 | 0x08, - 34766 - 19968: jis0212<<14 | 0x3A<<7 | 0x35, - 34768 - 19968: jis0208<<14 | 0x49<<7 | 0x0B, - 34770 - 19968: jis0208<<14 | 0x49<<7 | 0x1C, - 34773 - 19968: jis0212<<14 | 0x3A<<7 | 0x36, - 34774 - 19968: jis0212<<14 | 0x3A<<7 | 0x37, - 34777 - 19968: jis0212<<14 | 0x3A<<7 | 0x38, - 34778 - 19968: jis0212<<14 | 0x3A<<7 | 0x39, - 34780 - 19968: jis0212<<14 | 0x3A<<7 | 0x3A, - 34783 - 19968: jis0212<<14 | 0x3A<<7 | 0x3B, - 34784 - 19968: jis0208<<14 | 0x49<<7 | 0x15, - 34786 - 19968: jis0212<<14 | 0x3A<<7 | 0x3C, - 34787 - 19968: jis0212<<14 | 0x3A<<7 | 0x3D, - 34788 - 19968: jis0212<<14 | 0x3A<<7 | 0x3E, - 34794 - 19968: jis0212<<14 | 0x3A<<7 | 0x3F, - 34795 - 19968: jis0212<<14 | 0x3A<<7 | 0x40, - 34797 - 19968: jis0212<<14 | 0x3A<<7 | 0x41, - 34799 - 19968: jis0208<<14 | 0x49<<7 | 0x13, - 34801 - 19968: jis0212<<14 | 0x3A<<7 | 0x42, - 34802 - 19968: jis0208<<14 | 0x49<<7 | 0x14, - 34803 - 19968: jis0212<<14 | 0x3A<<7 | 0x43, - 34806 - 19968: jis0208<<14 | 0x49<<7 | 0x19, - 34807 - 19968: jis0208<<14 | 0x49<<7 | 0x1A, - 34808 - 19968: jis0212<<14 | 0x3A<<7 | 0x44, - 34809 - 19968: jis0208<<14 | 0x12<<7 | 0x09, - 34810 - 19968: jis0212<<14 | 0x3A<<7 | 0x45, - 34811 - 19968: jis0208<<14 | 0x14<<7 | 0x21, - 34814 - 19968: jis0208<<14 | 0x49<<7 | 0x18, - 34815 - 19968: jis0212<<14 | 0x3A<<7 | 0x46, - 34817 - 19968: jis0212<<14 | 0x3A<<7 | 0x47, - 34819 - 19968: jis0212<<14 | 0x3A<<7 | 0x48, - 34821 - 19968: jis0208<<14 | 0x49<<7 | 0x03, - 34822 - 19968: jis0212<<14 | 0x3A<<7 | 0x49, - 34823 - 19968: jis0208<<14 | 0x5A<<7 | 0x44, - 34825 - 19968: jis0212<<14 | 0x3A<<7 | 0x4A, - 34826 - 19968: jis0212<<14 | 0x3A<<7 | 0x4B, - 34827 - 19968: jis0212<<14 | 0x3A<<7 | 0x4C, - 34829 - 19968: jis0208<<14 | 0x49<<7 | 0x17, - 34830 - 19968: jis0208<<14 | 0x49<<7 | 0x1B, - 34831 - 19968: jis0208<<14 | 0x49<<7 | 0x16, - 34832 - 19968: jis0212<<14 | 0x3A<<7 | 0x4D, - 34833 - 19968: jis0208<<14 | 0x49<<7 | 0x1D, - 34834 - 19968: jis0212<<14 | 0x3A<<7 | 0x4F, - 34835 - 19968: jis0212<<14 | 0x3A<<7 | 0x50, - 34836 - 19968: jis0212<<14 | 0x3A<<7 | 0x51, - 34837 - 19968: jis0208<<14 | 0x49<<7 | 0x1F, - 34838 - 19968: jis0208<<14 | 0x49<<7 | 0x1E, - 34840 - 19968: jis0212<<14 | 0x3A<<7 | 0x52, - 34841 - 19968: jis0212<<14 | 0x3A<<7 | 0x4E, - 34842 - 19968: jis0212<<14 | 0x3A<<7 | 0x53, - 34843 - 19968: jis0212<<14 | 0x3A<<7 | 0x54, - 34844 - 19968: jis0212<<14 | 0x3A<<7 | 0x55, - 34846 - 19968: jis0212<<14 | 0x3A<<7 | 0x56, - 34847 - 19968: jis0212<<14 | 0x3A<<7 | 0x57, - 34849 - 19968: jis0208<<14 | 0x49<<7 | 0x21, - 34850 - 19968: jis0208<<14 | 0x49<<7 | 0x20, - 34851 - 19968: jis0208<<14 | 0x48<<7 | 0x39, - 34855 - 19968: jis0208<<14 | 0x49<<7 | 0x25, - 34856 - 19968: jis0212<<14 | 0x3A<<7 | 0x58, - 34861 - 19968: jis0212<<14 | 0x3A<<7 | 0x59, - 34862 - 19968: jis0212<<14 | 0x3A<<7 | 0x5A, - 34864 - 19968: jis0212<<14 | 0x3A<<7 | 0x5B, - 34865 - 19968: jis0208<<14 | 0x49<<7 | 0x22, - 34866 - 19968: jis0212<<14 | 0x3A<<7 | 0x5C, - 34869 - 19968: jis0212<<14 | 0x3A<<7 | 0x5D, - 34870 - 19968: jis0208<<14 | 0x49<<7 | 0x23, - 34873 - 19968: jis0208<<14 | 0x49<<7 | 0x24, - 34874 - 19968: jis0212<<14 | 0x3B<<7 | 0x00, - 34875 - 19968: jis0208<<14 | 0x49<<7 | 0x26, - 34876 - 19968: jis0212<<14 | 0x3B<<7 | 0x01, - 34880 - 19968: jis0208<<14 | 0x16<<7 | 0x4B, - 34881 - 19968: jis0212<<14 | 0x3B<<7 | 0x02, - 34882 - 19968: jis0208<<14 | 0x49<<7 | 0x28, - 34883 - 19968: jis0212<<14 | 0x3B<<7 | 0x03, - 34884 - 19968: jis0208<<14 | 0x49<<7 | 0x27, - 34885 - 19968: jis0212<<14 | 0x3B<<7 | 0x04, - 34886 - 19968: jis0208<<14 | 0x1C<<7 | 0x0F, - 34888 - 19968: jis0212<<14 | 0x3B<<7 | 0x05, - 34889 - 19968: jis0212<<14 | 0x3B<<7 | 0x06, - 34890 - 19968: jis0212<<14 | 0x3B<<7 | 0x07, - 34891 - 19968: jis0212<<14 | 0x3B<<7 | 0x08, - 34892 - 19968: jis0208<<14 | 0x18<<7 | 0x33, - 34893 - 19968: jis0208<<14 | 0x3D<<7 | 0x06, - 34894 - 19968: jis0212<<14 | 0x3B<<7 | 0x09, - 34897 - 19968: jis0212<<14 | 0x3B<<7 | 0x0A, - 34898 - 19968: jis0208<<14 | 0x49<<7 | 0x29, - 34899 - 19968: jis0208<<14 | 0x1C<<7 | 0x30, - 34901 - 19968: jis0212<<14 | 0x3B<<7 | 0x0B, - 34902 - 19968: jis0212<<14 | 0x3B<<7 | 0x0C, - 34903 - 19968: jis0208<<14 | 0x12<<7 | 0x18, - 34904 - 19968: jis0212<<14 | 0x3B<<7 | 0x0D, - 34905 - 19968: jis0208<<14 | 0x49<<7 | 0x2A, - 34906 - 19968: jis0212<<14 | 0x3B<<7 | 0x0E, - 34907 - 19968: jis0208<<14 | 0x10<<7 | 0x31, - 34908 - 19968: jis0212<<14 | 0x3B<<7 | 0x0F, - 34909 - 19968: jis0208<<14 | 0x1D<<7 | 0x36, - 34910 - 19968: jis0208<<14 | 0x49<<7 | 0x2B, - 34911 - 19968: jis0212<<14 | 0x3B<<7 | 0x10, - 34912 - 19968: jis0212<<14 | 0x3B<<7 | 0x11, - 34913 - 19968: jis0208<<14 | 0x18<<7 | 0x34, - 34914 - 19968: jis0208<<14 | 0x49<<7 | 0x2C, - 34915 - 19968: jis0208<<14 | 0x0F<<7 | 0x40, - 34916 - 19968: jis0212<<14 | 0x3B<<7 | 0x12, - 34920 - 19968: jis0208<<14 | 0x28<<7 | 0x1C, - 34921 - 19968: jis0212<<14 | 0x3B<<7 | 0x13, - 34923 - 19968: jis0208<<14 | 0x49<<7 | 0x2D, - 34928 - 19968: jis0208<<14 | 0x1E<<7 | 0x49, - 34929 - 19968: jis0212<<14 | 0x3B<<7 | 0x14, - 34930 - 19968: jis0208<<14 | 0x49<<7 | 0x34, - 34933 - 19968: jis0208<<14 | 0x49<<7 | 0x31, - 34935 - 19968: jis0208<<14 | 0x22<<7 | 0x4E, - 34937 - 19968: jis0212<<14 | 0x3B<<7 | 0x15, - 34939 - 19968: jis0212<<14 | 0x3B<<7 | 0x16, - 34941 - 19968: jis0208<<14 | 0x49<<7 | 0x32, - 34942 - 19968: jis0208<<14 | 0x49<<7 | 0x2F, - 34943 - 19968: jis0208<<14 | 0x15<<7 | 0x3D, - 34944 - 19968: jis0212<<14 | 0x3B<<7 | 0x17, - 34945 - 19968: jis0208<<14 | 0x49<<7 | 0x2E, - 34946 - 19968: jis0208<<14 | 0x49<<7 | 0x35, - 34952 - 19968: jis0208<<14 | 0x16<<7 | 0x15, - 34955 - 19968: jis0208<<14 | 0x21<<7 | 0x3D, - 34957 - 19968: jis0208<<14 | 0x49<<7 | 0x3B, - 34962 - 19968: jis0208<<14 | 0x49<<7 | 0x37, - 34966 - 19968: jis0208<<14 | 0x21<<7 | 0x14, - 34967 - 19968: jis0208<<14 | 0x49<<7 | 0x36, - 34968 - 19968: jis0212<<14 | 0x3B<<7 | 0x18, - 34969 - 19968: jis0208<<14 | 0x49<<7 | 0x39, - 34970 - 19968: jis0212<<14 | 0x3B<<7 | 0x19, - 34971 - 19968: jis0212<<14 | 0x3B<<7 | 0x1A, - 34972 - 19968: jis0212<<14 | 0x3B<<7 | 0x1B, - 34974 - 19968: jis0208<<14 | 0x49<<7 | 0x30, - 34975 - 19968: jis0212<<14 | 0x3B<<7 | 0x1C, - 34976 - 19968: jis0212<<14 | 0x3B<<7 | 0x1D, - 34978 - 19968: jis0208<<14 | 0x49<<7 | 0x3A, - 34980 - 19968: jis0208<<14 | 0x49<<7 | 0x3C, - 34984 - 19968: jis0212<<14 | 0x3B<<7 | 0x1E, - 34986 - 19968: jis0212<<14 | 0x3B<<7 | 0x1F, - 34987 - 19968: jis0208<<14 | 0x27<<7 | 0x4E, - 34990 - 19968: jis0208<<14 | 0x49<<7 | 0x38, - 34992 - 19968: jis0208<<14 | 0x49<<7 | 0x3D, - 34993 - 19968: jis0208<<14 | 0x49<<7 | 0x3F, - 34996 - 19968: jis0208<<14 | 0x17<<7 | 0x32, - 34997 - 19968: jis0208<<14 | 0x49<<7 | 0x33, - 34999 - 19968: jis0208<<14 | 0x0F<<7 | 0x20, - 35002 - 19968: jis0212<<14 | 0x3B<<7 | 0x20, - 35005 - 19968: jis0212<<14 | 0x3B<<7 | 0x21, - 35006 - 19968: jis0212<<14 | 0x3B<<7 | 0x22, - 35007 - 19968: jis0208<<14 | 0x49<<7 | 0x3E, - 35008 - 19968: jis0212<<14 | 0x3B<<7 | 0x23, - 35009 - 19968: jis0208<<14 | 0x19<<7 | 0x3A, - 35010 - 19968: jis0208<<14 | 0x2D<<7 | 0x55, - 35011 - 19968: jis0208<<14 | 0x49<<7 | 0x40, - 35012 - 19968: jis0208<<14 | 0x49<<7 | 0x41, - 35013 - 19968: jis0208<<14 | 0x20<<7 | 0x54, - 35018 - 19968: jis0212<<14 | 0x3B<<7 | 0x24, - 35019 - 19968: jis0212<<14 | 0x3B<<7 | 0x25, - 35020 - 19968: jis0212<<14 | 0x3B<<7 | 0x26, - 35021 - 19968: jis0212<<14 | 0x3B<<7 | 0x27, - 35022 - 19968: jis0212<<14 | 0x3B<<7 | 0x28, - 35023 - 19968: jis0208<<14 | 0x2D<<7 | 0x01, - 35025 - 19968: jis0212<<14 | 0x3B<<7 | 0x29, - 35026 - 19968: jis0212<<14 | 0x3B<<7 | 0x2A, - 35027 - 19968: jis0212<<14 | 0x3B<<7 | 0x2B, - 35028 - 19968: jis0208<<14 | 0x49<<7 | 0x42, - 35029 - 19968: jis0208<<14 | 0x2C<<7 | 0x14, - 35032 - 19968: jis0208<<14 | 0x49<<7 | 0x43, - 35033 - 19968: jis0208<<14 | 0x49<<7 | 0x44, - 35035 - 19968: jis0212<<14 | 0x3B<<7 | 0x2C, - 35036 - 19968: jis0208<<14 | 0x29<<7 | 0x43, - 35037 - 19968: jis0208<<14 | 0x49<<7 | 0x45, - 35038 - 19968: jis0212<<14 | 0x3B<<7 | 0x2D, - 35039 - 19968: jis0208<<14 | 0x19<<7 | 0x1F, - 35041 - 19968: jis0208<<14 | 0x2D<<7 | 0x02, - 35047 - 19968: jis0212<<14 | 0x3B<<7 | 0x2E, - 35048 - 19968: jis0208<<14 | 0x49<<7 | 0x4A, - 35055 - 19968: jis0212<<14 | 0x3B<<7 | 0x2F, - 35056 - 19968: jis0212<<14 | 0x3B<<7 | 0x30, - 35057 - 19968: jis0212<<14 | 0x3B<<7 | 0x31, - 35058 - 19968: jis0208<<14 | 0x49<<7 | 0x4B, - 35059 - 19968: jis0208<<14 | 0x1D<<7 | 0x37, - 35060 - 19968: jis0208<<14 | 0x49<<7 | 0x49, - 35061 - 19968: jis0208<<14 | 0x5A<<7 | 0x45, - 35063 - 19968: jis0212<<14 | 0x3B<<7 | 0x33, - 35064 - 19968: jis0208<<14 | 0x2C<<7 | 0x46, - 35065 - 19968: jis0208<<14 | 0x49<<7 | 0x46, - 35068 - 19968: jis0208<<14 | 0x49<<7 | 0x48, - 35069 - 19968: jis0208<<14 | 0x1F<<7 | 0x1C, - 35070 - 19968: jis0208<<14 | 0x1E<<7 | 0x5D, - 35073 - 19968: jis0212<<14 | 0x3B<<7 | 0x34, - 35074 - 19968: jis0208<<14 | 0x49<<7 | 0x47, - 35076 - 19968: jis0208<<14 | 0x49<<7 | 0x4C, - 35078 - 19968: jis0212<<14 | 0x3B<<7 | 0x35, - 35079 - 19968: jis0208<<14 | 0x29<<7 | 0x02, - 35082 - 19968: jis0208<<14 | 0x49<<7 | 0x4E, - 35084 - 19968: jis0208<<14 | 0x49<<7 | 0x4D, - 35085 - 19968: jis0212<<14 | 0x3B<<7 | 0x36, - 35086 - 19968: jis0212<<14 | 0x3B<<7 | 0x37, - 35087 - 19968: jis0212<<14 | 0x3B<<7 | 0x38, - 35088 - 19968: jis0208<<14 | 0x12<<7 | 0x4B, - 35090 - 19968: jis0208<<14 | 0x2A<<7 | 0x0A, - 35091 - 19968: jis0208<<14 | 0x49<<7 | 0x4F, - 35093 - 19968: jis0212<<14 | 0x3B<<7 | 0x39, - 35094 - 19968: jis0212<<14 | 0x3B<<7 | 0x3A, - 35096 - 19968: jis0212<<14 | 0x3B<<7 | 0x3B, - 35097 - 19968: jis0212<<14 | 0x3B<<7 | 0x3C, - 35098 - 19968: jis0212<<14 | 0x3B<<7 | 0x3D, - 35100 - 19968: jis0208<<14 | 0x58<<7 | 0x01, - 35101 - 19968: jis0208<<14 | 0x49<<7 | 0x5B, - 35102 - 19968: jis0208<<14 | 0x49<<7 | 0x51, - 35104 - 19968: jis0212<<14 | 0x3B<<7 | 0x3F, - 35109 - 19968: jis0208<<14 | 0x49<<7 | 0x52, - 35110 - 19968: jis0212<<14 | 0x3B<<7 | 0x40, - 35111 - 19968: jis0212<<14 | 0x3B<<7 | 0x41, - 35112 - 19968: jis0212<<14 | 0x3B<<7 | 0x42, - 35114 - 19968: jis0208<<14 | 0x49<<7 | 0x53, - 35115 - 19968: jis0208<<14 | 0x49<<7 | 0x54, - 35120 - 19968: jis0212<<14 | 0x3B<<7 | 0x43, - 35121 - 19968: jis0212<<14 | 0x3B<<7 | 0x44, - 35122 - 19968: jis0212<<14 | 0x3B<<7 | 0x45, - 35125 - 19968: jis0212<<14 | 0x3B<<7 | 0x46, - 35126 - 19968: jis0208<<14 | 0x49<<7 | 0x58, - 35128 - 19968: jis0208<<14 | 0x49<<7 | 0x59, - 35129 - 19968: jis0212<<14 | 0x3B<<7 | 0x47, - 35130 - 19968: jis0212<<14 | 0x3B<<7 | 0x48, - 35131 - 19968: jis0208<<14 | 0x49<<7 | 0x57, - 35134 - 19968: jis0212<<14 | 0x3B<<7 | 0x49, - 35136 - 19968: jis0212<<14 | 0x3B<<7 | 0x4A, - 35137 - 19968: jis0208<<14 | 0x49<<7 | 0x55, - 35138 - 19968: jis0212<<14 | 0x3B<<7 | 0x4B, - 35139 - 19968: jis0208<<14 | 0x49<<7 | 0x50, - 35140 - 19968: jis0208<<14 | 0x49<<7 | 0x56, - 35141 - 19968: jis0212<<14 | 0x3B<<7 | 0x4C, - 35142 - 19968: jis0212<<14 | 0x3B<<7 | 0x4D, - 35145 - 19968: jis0212<<14 | 0x3B<<7 | 0x4E, - 35148 - 19968: jis0208<<14 | 0x49<<7 | 0x5A, - 35149 - 19968: jis0208<<14 | 0x4F<<7 | 0x16, - 35151 - 19968: jis0212<<14 | 0x3B<<7 | 0x4F, - 35154 - 19968: jis0212<<14 | 0x3B<<7 | 0x50, - 35158 - 19968: jis0208<<14 | 0x11<<7 | 0x07, - 35159 - 19968: jis0212<<14 | 0x3B<<7 | 0x51, - 35162 - 19968: jis0212<<14 | 0x3B<<7 | 0x52, - 35163 - 19968: jis0212<<14 | 0x3B<<7 | 0x53, - 35164 - 19968: jis0212<<14 | 0x3B<<7 | 0x54, - 35166 - 19968: jis0208<<14 | 0x49<<7 | 0x5D, - 35167 - 19968: jis0208<<14 | 0x15<<7 | 0x3E, - 35168 - 19968: jis0208<<14 | 0x49<<7 | 0x5C, - 35169 - 19968: jis0212<<14 | 0x3B<<7 | 0x55, - 35170 - 19968: jis0212<<14 | 0x3B<<7 | 0x56, - 35171 - 19968: jis0212<<14 | 0x3B<<7 | 0x57, - 35172 - 19968: jis0208<<14 | 0x4A<<7 | 0x01, - 35174 - 19968: jis0208<<14 | 0x4A<<7 | 0x00, - 35178 - 19968: jis0208<<14 | 0x4A<<7 | 0x03, - 35179 - 19968: jis0212<<14 | 0x3B<<7 | 0x58, - 35181 - 19968: jis0208<<14 | 0x4A<<7 | 0x02, - 35182 - 19968: jis0212<<14 | 0x3B<<7 | 0x59, - 35183 - 19968: jis0208<<14 | 0x4A<<7 | 0x04, - 35184 - 19968: jis0212<<14 | 0x3B<<7 | 0x5A, - 35186 - 19968: jis0208<<14 | 0x1C<<7 | 0x10, - 35187 - 19968: jis0212<<14 | 0x3B<<7 | 0x5B, - 35188 - 19968: jis0208<<14 | 0x4A<<7 | 0x05, - 35189 - 19968: jis0212<<14 | 0x3B<<7 | 0x5C, - 35191 - 19968: jis0208<<14 | 0x4A<<7 | 0x06, - 35194 - 19968: jis0212<<14 | 0x3B<<7 | 0x5D, - 35195 - 19968: jis0212<<14 | 0x3C<<7 | 0x00, - 35196 - 19968: jis0212<<14 | 0x3C<<7 | 0x01, - 35197 - 19968: jis0212<<14 | 0x3C<<7 | 0x02, - 35198 - 19968: jis0208<<14 | 0x4A<<7 | 0x07, - 35199 - 19968: jis0208<<14 | 0x1F<<7 | 0x1D, - 35201 - 19968: jis0208<<14 | 0x2C<<7 | 0x36, - 35203 - 19968: jis0208<<14 | 0x4A<<7 | 0x08, - 35206 - 19968: jis0208<<14 | 0x29<<7 | 0x03, - 35207 - 19968: jis0208<<14 | 0x26<<7 | 0x25, - 35208 - 19968: jis0208<<14 | 0x4A<<7 | 0x09, - 35209 - 19968: jis0212<<14 | 0x3C<<7 | 0x03, - 35210 - 19968: jis0208<<14 | 0x4A<<7 | 0x0A, - 35211 - 19968: jis0208<<14 | 0x17<<7 | 0x0A, - 35213 - 19968: jis0212<<14 | 0x3C<<7 | 0x04, - 35215 - 19968: jis0208<<14 | 0x14<<7 | 0x0B, - 35216 - 19968: jis0212<<14 | 0x3C<<7 | 0x05, - 35219 - 19968: jis0208<<14 | 0x4A<<7 | 0x0B, - 35220 - 19968: jis0212<<14 | 0x3C<<7 | 0x06, - 35221 - 19968: jis0212<<14 | 0x3C<<7 | 0x07, - 35222 - 19968: jis0208<<14 | 0x1A<<7 | 0x4A, - 35223 - 19968: jis0208<<14 | 0x26<<7 | 0x20, - 35224 - 19968: jis0208<<14 | 0x4A<<7 | 0x0C, - 35226 - 19968: jis0208<<14 | 0x12<<7 | 0x2F, - 35227 - 19968: jis0212<<14 | 0x3C<<7 | 0x08, - 35228 - 19968: jis0212<<14 | 0x3C<<7 | 0x09, - 35231 - 19968: jis0212<<14 | 0x3C<<7 | 0x0A, - 35232 - 19968: jis0212<<14 | 0x3C<<7 | 0x0B, - 35233 - 19968: jis0208<<14 | 0x4A<<7 | 0x0D, - 35237 - 19968: jis0212<<14 | 0x3C<<7 | 0x0C, - 35238 - 19968: jis0208<<14 | 0x4A<<7 | 0x0F, - 35239 - 19968: jis0208<<14 | 0x2C<<7 | 0x56, - 35241 - 19968: jis0208<<14 | 0x4A<<7 | 0x0E, - 35242 - 19968: jis0208<<14 | 0x1E<<7 | 0x25, - 35244 - 19968: jis0208<<14 | 0x4A<<7 | 0x10, - 35247 - 19968: jis0208<<14 | 0x4A<<7 | 0x11, - 35248 - 19968: jis0212<<14 | 0x3C<<7 | 0x0D, - 35250 - 19968: jis0208<<14 | 0x4A<<7 | 0x12, - 35251 - 19968: jis0208<<14 | 0x13<<7 | 0x30, - 35252 - 19968: jis0212<<14 | 0x3C<<7 | 0x0E, - 35253 - 19968: jis0212<<14 | 0x3C<<7 | 0x0F, - 35254 - 19968: jis0212<<14 | 0x3C<<7 | 0x10, - 35255 - 19968: jis0212<<14 | 0x3C<<7 | 0x11, - 35258 - 19968: jis0208<<14 | 0x4A<<7 | 0x13, - 35260 - 19968: jis0212<<14 | 0x3C<<7 | 0x12, - 35261 - 19968: jis0208<<14 | 0x4A<<7 | 0x14, - 35263 - 19968: jis0208<<14 | 0x4A<<7 | 0x15, - 35264 - 19968: jis0208<<14 | 0x4A<<7 | 0x16, - 35282 - 19968: jis0208<<14 | 0x12<<7 | 0x30, - 35284 - 19968: jis0212<<14 | 0x3C<<7 | 0x13, - 35285 - 19968: jis0212<<14 | 0x3C<<7 | 0x14, - 35286 - 19968: jis0212<<14 | 0x3C<<7 | 0x15, - 35287 - 19968: jis0212<<14 | 0x3C<<7 | 0x16, - 35288 - 19968: jis0212<<14 | 0x3C<<7 | 0x17, - 35290 - 19968: jis0208<<14 | 0x4A<<7 | 0x17, - 35292 - 19968: jis0208<<14 | 0x4A<<7 | 0x18, - 35293 - 19968: jis0208<<14 | 0x4A<<7 | 0x19, - 35299 - 19968: jis0208<<14 | 0x11<<7 | 0x51, - 35301 - 19968: jis0212<<14 | 0x3C<<7 | 0x18, - 35302 - 19968: jis0208<<14 | 0x1E<<7 | 0x07, - 35303 - 19968: jis0208<<14 | 0x4A<<7 | 0x1A, - 35305 - 19968: jis0212<<14 | 0x3C<<7 | 0x19, - 35307 - 19968: jis0212<<14 | 0x3C<<7 | 0x1A, - 35309 - 19968: jis0212<<14 | 0x3C<<7 | 0x1B, - 35313 - 19968: jis0212<<14 | 0x3C<<7 | 0x1C, - 35315 - 19968: jis0212<<14 | 0x3C<<7 | 0x1D, - 35316 - 19968: jis0208<<14 | 0x4A<<7 | 0x1B, - 35318 - 19968: jis0212<<14 | 0x3C<<7 | 0x1E, - 35320 - 19968: jis0208<<14 | 0x4A<<7 | 0x1C, - 35321 - 19968: jis0212<<14 | 0x3C<<7 | 0x1F, - 35325 - 19968: jis0212<<14 | 0x3C<<7 | 0x20, - 35327 - 19968: jis0212<<14 | 0x3C<<7 | 0x21, - 35328 - 19968: jis0208<<14 | 0x17<<7 | 0x1F, - 35330 - 19968: jis0208<<14 | 0x23<<7 | 0x5A, - 35331 - 19968: jis0208<<14 | 0x4A<<7 | 0x1D, - 35332 - 19968: jis0212<<14 | 0x3C<<7 | 0x22, - 35333 - 19968: jis0212<<14 | 0x3C<<7 | 0x23, - 35335 - 19968: jis0212<<14 | 0x3C<<7 | 0x24, - 35336 - 19968: jis0208<<14 | 0x16<<7 | 0x36, - 35338 - 19968: jis0208<<14 | 0x1E<<7 | 0x35, - 35340 - 19968: jis0208<<14 | 0x4A<<7 | 0x20, - 35342 - 19968: jis0208<<14 | 0x25<<7 | 0x03, - 35343 - 19968: jis0212<<14 | 0x3C<<7 | 0x25, - 35344 - 19968: jis0208<<14 | 0x4A<<7 | 0x1F, - 35345 - 19968: jis0212<<14 | 0x3C<<7 | 0x26, - 35346 - 19968: jis0208<<14 | 0x5A<<7 | 0x46, - 35347 - 19968: jis0208<<14 | 0x16<<7 | 0x10, - 35348 - 19968: jis0212<<14 | 0x3C<<7 | 0x28, - 35349 - 19968: jis0212<<14 | 0x3C<<7 | 0x29, - 35350 - 19968: jis0208<<14 | 0x4A<<7 | 0x1E, - 35351 - 19968: jis0208<<14 | 0x21<<7 | 0x56, - 35352 - 19968: jis0208<<14 | 0x14<<7 | 0x0C, - 35355 - 19968: jis0208<<14 | 0x4A<<7 | 0x21, - 35357 - 19968: jis0208<<14 | 0x4A<<7 | 0x22, - 35358 - 19968: jis0212<<14 | 0x3C<<7 | 0x2A, - 35359 - 19968: jis0208<<14 | 0x1D<<7 | 0x38, - 35360 - 19968: jis0212<<14 | 0x3C<<7 | 0x2B, - 35362 - 19968: jis0212<<14 | 0x3C<<7 | 0x2C, - 35363 - 19968: jis0208<<14 | 0x16<<7 | 0x4C, - 35364 - 19968: jis0212<<14 | 0x3C<<7 | 0x2D, - 35365 - 19968: jis0208<<14 | 0x4A<<7 | 0x23, - 35366 - 19968: jis0212<<14 | 0x3C<<7 | 0x2E, - 35370 - 19968: jis0208<<14 | 0x2A<<7 | 0x0B, - 35371 - 19968: jis0212<<14 | 0x3C<<7 | 0x2F, - 35372 - 19968: jis0212<<14 | 0x3C<<7 | 0x30, - 35373 - 19968: jis0208<<14 | 0x1F<<7 | 0x3E, - 35375 - 19968: jis0212<<14 | 0x3C<<7 | 0x31, - 35377 - 19968: jis0208<<14 | 0x14<<7 | 0x55, - 35379 - 19968: jis0208<<14 | 0x2B<<7 | 0x54, - 35380 - 19968: jis0208<<14 | 0x20<<7 | 0x29, - 35381 - 19968: jis0212<<14 | 0x3C<<7 | 0x32, - 35382 - 19968: jis0208<<14 | 0x4A<<7 | 0x24, - 35383 - 19968: jis0208<<14 | 0x5A<<7 | 0x47, - 35386 - 19968: jis0208<<14 | 0x1E<<7 | 0x26, - 35387 - 19968: jis0208<<14 | 0x22<<7 | 0x4F, - 35388 - 19968: jis0208<<14 | 0x1D<<7 | 0x39, - 35389 - 19968: jis0212<<14 | 0x3C<<7 | 0x34, - 35390 - 19968: jis0212<<14 | 0x3C<<7 | 0x35, - 35392 - 19968: jis0212<<14 | 0x3C<<7 | 0x36, - 35393 - 19968: jis0208<<14 | 0x4A<<7 | 0x25, - 35395 - 19968: jis0212<<14 | 0x3C<<7 | 0x37, - 35397 - 19968: jis0212<<14 | 0x3C<<7 | 0x38, - 35398 - 19968: jis0208<<14 | 0x4A<<7 | 0x28, - 35399 - 19968: jis0212<<14 | 0x3C<<7 | 0x39, - 35400 - 19968: jis0208<<14 | 0x4A<<7 | 0x29, - 35401 - 19968: jis0212<<14 | 0x3C<<7 | 0x3A, - 35405 - 19968: jis0212<<14 | 0x3C<<7 | 0x3B, - 35406 - 19968: jis0212<<14 | 0x3C<<7 | 0x3C, - 35408 - 19968: jis0208<<14 | 0x19<<7 | 0x1D, - 35409 - 19968: jis0208<<14 | 0x21<<7 | 0x21, - 35410 - 19968: jis0208<<14 | 0x4A<<7 | 0x27, - 35411 - 19968: jis0212<<14 | 0x3C<<7 | 0x3D, - 35412 - 19968: jis0208<<14 | 0x1D<<7 | 0x3A, - 35413 - 19968: jis0208<<14 | 0x28<<7 | 0x1D, - 35414 - 19968: jis0212<<14 | 0x3C<<7 | 0x3E, - 35415 - 19968: jis0212<<14 | 0x3C<<7 | 0x3F, - 35416 - 19968: jis0212<<14 | 0x3C<<7 | 0x40, - 35419 - 19968: jis0208<<14 | 0x4A<<7 | 0x26, - 35420 - 19968: jis0212<<14 | 0x3C<<7 | 0x41, - 35421 - 19968: jis0212<<14 | 0x3C<<7 | 0x42, - 35422 - 19968: jis0208<<14 | 0x1A<<7 | 0x4B, - 35424 - 19968: jis0208<<14 | 0x10<<7 | 0x32, - 35425 - 19968: jis0212<<14 | 0x3C<<7 | 0x43, - 35426 - 19968: jis0208<<14 | 0x4A<<7 | 0x2D, - 35427 - 19968: jis0208<<14 | 0x16<<7 | 0x37, - 35429 - 19968: jis0212<<14 | 0x3C<<7 | 0x44, - 35430 - 19968: jis0208<<14 | 0x1A<<7 | 0x4D, - 35431 - 19968: jis0212<<14 | 0x3C<<7 | 0x45, - 35433 - 19968: jis0208<<14 | 0x1A<<7 | 0x4C, - 35435 - 19968: jis0208<<14 | 0x2E<<7 | 0x2C, - 35436 - 19968: jis0208<<14 | 0x4A<<7 | 0x2C, - 35437 - 19968: jis0208<<14 | 0x4A<<7 | 0x2B, - 35438 - 19968: jis0208<<14 | 0x20<<7 | 0x06, - 35440 - 19968: jis0208<<14 | 0x14<<7 | 0x2C, - 35441 - 19968: jis0208<<14 | 0x2E<<7 | 0x22, - 35442 - 19968: jis0208<<14 | 0x12<<7 | 0x19, - 35443 - 19968: jis0208<<14 | 0x1D<<7 | 0x3B, - 35445 - 19968: jis0212<<14 | 0x3C<<7 | 0x46, - 35446 - 19968: jis0212<<14 | 0x3C<<7 | 0x47, - 35447 - 19968: jis0212<<14 | 0x3C<<7 | 0x48, - 35449 - 19968: jis0208<<14 | 0x5A<<7 | 0x48, - 35450 - 19968: jis0212<<14 | 0x3C<<7 | 0x4A, - 35451 - 19968: jis0212<<14 | 0x3C<<7 | 0x4B, - 35452 - 19968: jis0208<<14 | 0x4A<<7 | 0x2A, - 35454 - 19968: jis0212<<14 | 0x3C<<7 | 0x4C, - 35455 - 19968: jis0212<<14 | 0x3C<<7 | 0x4D, - 35456 - 19968: jis0212<<14 | 0x3C<<7 | 0x4E, - 35458 - 19968: jis0208<<14 | 0x4A<<7 | 0x2F, - 35459 - 19968: jis0212<<14 | 0x3C<<7 | 0x4F, - 35460 - 19968: jis0208<<14 | 0x4A<<7 | 0x30, - 35461 - 19968: jis0208<<14 | 0x4A<<7 | 0x2E, - 35462 - 19968: jis0212<<14 | 0x3C<<7 | 0x50, - 35463 - 19968: jis0208<<14 | 0x17<<7 | 0x37, - 35465 - 19968: jis0208<<14 | 0x2C<<7 | 0x1F, - 35467 - 19968: jis0212<<14 | 0x3C<<7 | 0x51, - 35468 - 19968: jis0208<<14 | 0x1A<<7 | 0x4E, - 35469 - 19968: jis0208<<14 | 0x26<<7 | 0x06, - 35471 - 19968: jis0212<<14 | 0x3C<<7 | 0x52, - 35472 - 19968: jis0212<<14 | 0x3C<<7 | 0x53, - 35473 - 19968: jis0208<<14 | 0x4A<<7 | 0x33, - 35474 - 19968: jis0212<<14 | 0x3C<<7 | 0x54, - 35475 - 19968: jis0208<<14 | 0x1F<<7 | 0x1F, - 35477 - 19968: jis0208<<14 | 0x22<<7 | 0x21, - 35478 - 19968: jis0212<<14 | 0x3C<<7 | 0x55, - 35479 - 19968: jis0212<<14 | 0x3C<<7 | 0x56, - 35480 - 19968: jis0208<<14 | 0x2C<<7 | 0x15, - 35481 - 19968: jis0212<<14 | 0x3C<<7 | 0x57, - 35482 - 19968: jis0208<<14 | 0x4A<<7 | 0x36, - 35486 - 19968: jis0208<<14 | 0x17<<7 | 0x4B, - 35487 - 19968: jis0212<<14 | 0x3C<<7 | 0x58, - 35488 - 19968: jis0208<<14 | 0x1F<<7 | 0x1E, - 35489 - 19968: jis0208<<14 | 0x4A<<7 | 0x32, - 35491 - 19968: jis0208<<14 | 0x4A<<7 | 0x37, - 35492 - 19968: jis0208<<14 | 0x17<<7 | 0x4C, - 35493 - 19968: jis0208<<14 | 0x4A<<7 | 0x34, - 35494 - 19968: jis0208<<14 | 0x4A<<7 | 0x35, - 35495 - 19968: jis0208<<14 | 0x5A<<7 | 0x49, - 35496 - 19968: jis0208<<14 | 0x4A<<7 | 0x31, - 35497 - 19968: jis0212<<14 | 0x3C<<7 | 0x5A, - 35500 - 19968: jis0208<<14 | 0x1F<<7 | 0x41, - 35501 - 19968: jis0208<<14 | 0x25<<7 | 0x28, - 35502 - 19968: jis0212<<14 | 0x3C<<7 | 0x5B, - 35503 - 19968: jis0212<<14 | 0x3C<<7 | 0x5C, - 35504 - 19968: jis0208<<14 | 0x22<<7 | 0x0E, - 35506 - 19968: jis0208<<14 | 0x11<<7 | 0x3C, - 35507 - 19968: jis0212<<14 | 0x3C<<7 | 0x5D, - 35510 - 19968: jis0212<<14 | 0x3D<<7 | 0x00, - 35511 - 19968: jis0212<<14 | 0x3D<<7 | 0x01, - 35513 - 19968: jis0208<<14 | 0x27<<7 | 0x4F, - 35515 - 19968: jis0212<<14 | 0x3D<<7 | 0x02, - 35516 - 19968: jis0208<<14 | 0x14<<7 | 0x22, - 35518 - 19968: jis0208<<14 | 0x5A<<7 | 0x4A, - 35519 - 19968: jis0208<<14 | 0x23<<7 | 0x13, - 35522 - 19968: jis0208<<14 | 0x4A<<7 | 0x3A, - 35523 - 19968: jis0212<<14 | 0x3D<<7 | 0x04, - 35524 - 19968: jis0208<<14 | 0x4A<<7 | 0x38, - 35526 - 19968: jis0212<<14 | 0x3D<<7 | 0x05, - 35527 - 19968: jis0208<<14 | 0x22<<7 | 0x2B, - 35528 - 19968: jis0212<<14 | 0x3D<<7 | 0x06, - 35529 - 19968: jis0212<<14 | 0x3D<<7 | 0x07, - 35530 - 19968: jis0212<<14 | 0x3D<<7 | 0x08, - 35531 - 19968: jis0208<<14 | 0x1F<<7 | 0x20, - 35532 - 19968: jis0208<<14 | 0x13<<7 | 0x31, - 35533 - 19968: jis0208<<14 | 0x4A<<7 | 0x39, - 35535 - 19968: jis0208<<14 | 0x1E<<7 | 0x3A, - 35537 - 19968: jis0212<<14 | 0x3D<<7 | 0x09, - 35538 - 19968: jis0208<<14 | 0x2D<<7 | 0x29, - 35539 - 19968: jis0212<<14 | 0x3D<<7 | 0x0A, - 35540 - 19968: jis0212<<14 | 0x3D<<7 | 0x0B, - 35541 - 19968: jis0212<<14 | 0x3D<<7 | 0x0C, - 35542 - 19968: jis0208<<14 | 0x2E<<7 | 0x1F, - 35543 - 19968: jis0212<<14 | 0x3D<<7 | 0x0D, - 35546 - 19968: jis0208<<14 | 0x4A<<7 | 0x3B, - 35547 - 19968: jis0208<<14 | 0x4A<<7 | 0x46, - 35548 - 19968: jis0208<<14 | 0x23<<7 | 0x14, - 35549 - 19968: jis0212<<14 | 0x3D<<7 | 0x0E, - 35550 - 19968: jis0208<<14 | 0x4A<<7 | 0x45, - 35551 - 19968: jis0208<<14 | 0x5A<<7 | 0x4B, - 35552 - 19968: jis0208<<14 | 0x4A<<7 | 0x42, - 35553 - 19968: jis0208<<14 | 0x4A<<7 | 0x4A, - 35554 - 19968: jis0208<<14 | 0x4A<<7 | 0x43, - 35556 - 19968: jis0208<<14 | 0x4A<<7 | 0x3F, - 35558 - 19968: jis0208<<14 | 0x23<<7 | 0x5B, - 35559 - 19968: jis0208<<14 | 0x4A<<7 | 0x3E, - 35563 - 19968: jis0208<<14 | 0x4A<<7 | 0x3C, - 35564 - 19968: jis0212<<14 | 0x3D<<7 | 0x10, - 35565 - 19968: jis0208<<14 | 0x2C<<7 | 0x00, - 35566 - 19968: jis0208<<14 | 0x1A<<7 | 0x4F, - 35568 - 19968: jis0212<<14 | 0x3D<<7 | 0x11, - 35569 - 19968: jis0208<<14 | 0x4A<<7 | 0x40, - 35571 - 19968: jis0208<<14 | 0x4A<<7 | 0x3D, - 35572 - 19968: jis0212<<14 | 0x3D<<7 | 0x12, - 35573 - 19968: jis0212<<14 | 0x3D<<7 | 0x13, - 35574 - 19968: jis0208<<14 | 0x5A<<7 | 0x4D, - 35575 - 19968: jis0208<<14 | 0x4A<<7 | 0x44, - 35576 - 19968: jis0208<<14 | 0x1C<<7 | 0x53, - 35578 - 19968: jis0208<<14 | 0x17<<7 | 0x20, - 35580 - 19968: jis0212<<14 | 0x3D<<7 | 0x15, - 35582 - 19968: jis0208<<14 | 0x21<<7 | 0x59, - 35583 - 19968: jis0212<<14 | 0x3D<<7 | 0x16, - 35584 - 19968: jis0208<<14 | 0x2A<<7 | 0x24, - 35585 - 19968: jis0208<<14 | 0x10<<7 | 0x39, - 35586 - 19968: jis0208<<14 | 0x0F<<7 | 0x41, - 35588 - 19968: jis0208<<14 | 0x25<<7 | 0x04, - 35589 - 19968: jis0212<<14 | 0x3D<<7 | 0x17, - 35590 - 19968: jis0212<<14 | 0x3D<<7 | 0x18, - 35591 - 19968: jis0208<<14 | 0x4A<<7 | 0x48, - 35594 - 19968: jis0212<<14 | 0x3D<<7 | 0x1E, - 35595 - 19968: jis0212<<14 | 0x3D<<7 | 0x19, - 35596 - 19968: jis0208<<14 | 0x4A<<7 | 0x47, - 35598 - 19968: jis0208<<14 | 0x25<<7 | 0x45, - 35600 - 19968: jis0208<<14 | 0x4A<<7 | 0x4C, - 35601 - 19968: jis0212<<14 | 0x3D<<7 | 0x1A, - 35604 - 19968: jis0208<<14 | 0x4A<<7 | 0x41, - 35606 - 19968: jis0208<<14 | 0x4A<<7 | 0x4B, - 35607 - 19968: jis0208<<14 | 0x4A<<7 | 0x4D, - 35609 - 19968: jis0208<<14 | 0x17<<7 | 0x0B, - 35610 - 19968: jis0208<<14 | 0x4A<<7 | 0x49, - 35611 - 19968: jis0208<<14 | 0x18<<7 | 0x35, - 35612 - 19968: jis0212<<14 | 0x3D<<7 | 0x1B, - 35613 - 19968: jis0208<<14 | 0x1B<<7 | 0x34, - 35614 - 19968: jis0212<<14 | 0x3D<<7 | 0x1C, - 35615 - 19968: jis0212<<14 | 0x3D<<7 | 0x1D, - 35616 - 19968: jis0208<<14 | 0x4A<<7 | 0x4E, - 35617 - 19968: jis0208<<14 | 0x2C<<7 | 0x37, - 35622 - 19968: jis0208<<14 | 0x4A<<7 | 0x51, - 35624 - 19968: jis0208<<14 | 0x4A<<7 | 0x54, - 35627 - 19968: jis0208<<14 | 0x4A<<7 | 0x52, - 35628 - 19968: jis0208<<14 | 0x28<<7 | 0x14, - 35629 - 19968: jis0212<<14 | 0x3D<<7 | 0x1F, - 35632 - 19968: jis0212<<14 | 0x3D<<7 | 0x20, - 35635 - 19968: jis0208<<14 | 0x4A<<7 | 0x4F, - 35639 - 19968: jis0212<<14 | 0x3D<<7 | 0x21, - 35641 - 19968: jis0208<<14 | 0x15<<7 | 0x3F, - 35644 - 19968: jis0212<<14 | 0x3D<<7 | 0x22, - 35646 - 19968: jis0208<<14 | 0x4A<<7 | 0x53, - 35649 - 19968: jis0208<<14 | 0x4A<<7 | 0x55, - 35650 - 19968: jis0212<<14 | 0x3D<<7 | 0x23, - 35651 - 19968: jis0212<<14 | 0x3D<<7 | 0x24, - 35652 - 19968: jis0212<<14 | 0x3D<<7 | 0x25, - 35653 - 19968: jis0212<<14 | 0x3D<<7 | 0x26, - 35654 - 19968: jis0212<<14 | 0x3D<<7 | 0x27, - 35656 - 19968: jis0212<<14 | 0x3D<<7 | 0x28, - 35657 - 19968: jis0208<<14 | 0x4A<<7 | 0x59, - 35660 - 19968: jis0208<<14 | 0x4A<<7 | 0x56, - 35661 - 19968: jis0212<<14 | 0x3D<<7 | 0x2D, - 35662 - 19968: jis0208<<14 | 0x4A<<7 | 0x58, - 35663 - 19968: jis0208<<14 | 0x4A<<7 | 0x57, - 35666 - 19968: jis0212<<14 | 0x3D<<7 | 0x29, - 35667 - 19968: jis0208<<14 | 0x5A<<7 | 0x4E, - 35668 - 19968: jis0212<<14 | 0x3D<<7 | 0x2B, - 35670 - 19968: jis0208<<14 | 0x4A<<7 | 0x5A, - 35672 - 19968: jis0208<<14 | 0x1B<<7 | 0x10, - 35673 - 19968: jis0212<<14 | 0x3D<<7 | 0x2C, - 35674 - 19968: jis0208<<14 | 0x4A<<7 | 0x5C, - 35675 - 19968: jis0208<<14 | 0x4A<<7 | 0x5B, - 35676 - 19968: jis0208<<14 | 0x28<<7 | 0x47, - 35678 - 19968: jis0212<<14 | 0x3D<<7 | 0x2E, - 35679 - 19968: jis0208<<14 | 0x4B<<7 | 0x00, - 35683 - 19968: jis0212<<14 | 0x3D<<7 | 0x2F, - 35686 - 19968: jis0208<<14 | 0x16<<7 | 0x38, - 35691 - 19968: jis0208<<14 | 0x4A<<7 | 0x5D, - 35692 - 19968: jis0208<<14 | 0x4B<<7 | 0x01, - 35693 - 19968: jis0212<<14 | 0x3D<<7 | 0x30, - 35695 - 19968: jis0208<<14 | 0x4B<<7 | 0x02, - 35696 - 19968: jis0208<<14 | 0x14<<7 | 0x23, - 35697 - 19968: jis0208<<14 | 0x45<<7 | 0x20, - 35698 - 19968: jis0208<<14 | 0x1D<<7 | 0x58, - 35700 - 19968: jis0208<<14 | 0x4B<<7 | 0x03, - 35702 - 19968: jis0212<<14 | 0x3D<<7 | 0x31, - 35703 - 19968: jis0208<<14 | 0x17<<7 | 0x4D, - 35704 - 19968: jis0212<<14 | 0x3D<<7 | 0x32, - 35705 - 19968: jis0212<<14 | 0x3D<<7 | 0x33, - 35708 - 19968: jis0212<<14 | 0x3D<<7 | 0x34, - 35709 - 19968: jis0208<<14 | 0x4B<<7 | 0x04, - 35710 - 19968: jis0212<<14 | 0x3D<<7 | 0x35, - 35711 - 19968: jis0208<<14 | 0x5A<<7 | 0x4F, - 35712 - 19968: jis0208<<14 | 0x4B<<7 | 0x05, - 35713 - 19968: jis0212<<14 | 0x3D<<7 | 0x36, - 35715 - 19968: jis0208<<14 | 0x1A<<7 | 0x1D, - 35716 - 19968: jis0212<<14 | 0x3D<<7 | 0x37, - 35717 - 19968: jis0212<<14 | 0x3D<<7 | 0x38, - 35722 - 19968: jis0208<<14 | 0x39<<7 | 0x2D, - 35723 - 19968: jis0212<<14 | 0x3D<<7 | 0x39, - 35724 - 19968: jis0208<<14 | 0x4B<<7 | 0x06, - 35725 - 19968: jis0212<<14 | 0x3D<<7 | 0x3A, - 35726 - 19968: jis0208<<14 | 0x4B<<7 | 0x07, - 35727 - 19968: jis0212<<14 | 0x3D<<7 | 0x3B, - 35728 - 19968: jis0208<<14 | 0x1C<<7 | 0x11, - 35730 - 19968: jis0208<<14 | 0x4B<<7 | 0x08, - 35731 - 19968: jis0208<<14 | 0x4B<<7 | 0x09, - 35732 - 19968: jis0212<<14 | 0x3D<<7 | 0x3C, - 35733 - 19968: jis0212<<14 | 0x3D<<7 | 0x3D, - 35734 - 19968: jis0208<<14 | 0x4B<<7 | 0x0A, - 35737 - 19968: jis0208<<14 | 0x4B<<7 | 0x0B, - 35738 - 19968: jis0208<<14 | 0x4B<<7 | 0x0C, - 35740 - 19968: jis0212<<14 | 0x3D<<7 | 0x3E, - 35742 - 19968: jis0212<<14 | 0x3D<<7 | 0x3F, - 35743 - 19968: jis0212<<14 | 0x3D<<7 | 0x40, - 35895 - 19968: jis0208<<14 | 0x22<<7 | 0x0A, - 35896 - 19968: jis0212<<14 | 0x3D<<7 | 0x41, - 35897 - 19968: jis0212<<14 | 0x3D<<7 | 0x42, - 35898 - 19968: jis0208<<14 | 0x4B<<7 | 0x0D, - 35901 - 19968: jis0212<<14 | 0x3D<<7 | 0x43, - 35902 - 19968: jis0212<<14 | 0x3D<<7 | 0x44, - 35903 - 19968: jis0208<<14 | 0x4B<<7 | 0x0F, - 35905 - 19968: jis0208<<14 | 0x4B<<7 | 0x0E, - 35909 - 19968: jis0212<<14 | 0x3D<<7 | 0x45, - 35910 - 19968: jis0208<<14 | 0x25<<7 | 0x05, - 35911 - 19968: jis0212<<14 | 0x3D<<7 | 0x46, - 35912 - 19968: jis0208<<14 | 0x4B<<7 | 0x10, - 35913 - 19968: jis0212<<14 | 0x3D<<7 | 0x47, - 35914 - 19968: jis0208<<14 | 0x2A<<7 | 0x0C, - 35915 - 19968: jis0212<<14 | 0x3D<<7 | 0x48, - 35916 - 19968: jis0208<<14 | 0x4B<<7 | 0x11, - 35918 - 19968: jis0208<<14 | 0x4B<<7 | 0x12, - 35919 - 19968: jis0212<<14 | 0x3D<<7 | 0x49, - 35920 - 19968: jis0208<<14 | 0x4B<<7 | 0x13, - 35921 - 19968: jis0212<<14 | 0x3D<<7 | 0x4A, - 35923 - 19968: jis0212<<14 | 0x3D<<7 | 0x4B, - 35924 - 19968: jis0212<<14 | 0x3D<<7 | 0x4C, - 35925 - 19968: jis0208<<14 | 0x4B<<7 | 0x14, - 35927 - 19968: jis0212<<14 | 0x3D<<7 | 0x4D, - 35928 - 19968: jis0212<<14 | 0x3D<<7 | 0x4E, - 35929 - 19968: jis0212<<14 | 0x3D<<7 | 0x51, - 35930 - 19968: jis0208<<14 | 0x25<<7 | 0x39, - 35931 - 19968: jis0212<<14 | 0x3D<<7 | 0x4F, - 35933 - 19968: jis0212<<14 | 0x3D<<7 | 0x50, - 35937 - 19968: jis0208<<14 | 0x1D<<7 | 0x3C, - 35938 - 19968: jis0208<<14 | 0x4B<<7 | 0x15, - 35939 - 19968: jis0212<<14 | 0x3D<<7 | 0x52, - 35940 - 19968: jis0212<<14 | 0x3D<<7 | 0x53, - 35942 - 19968: jis0212<<14 | 0x3D<<7 | 0x54, - 35944 - 19968: jis0212<<14 | 0x3D<<7 | 0x55, - 35945 - 19968: jis0212<<14 | 0x3D<<7 | 0x56, - 35946 - 19968: jis0208<<14 | 0x18<<7 | 0x4A, - 35947 - 19968: jis0208<<14 | 0x2F<<7 | 0x0D, - 35948 - 19968: jis0208<<14 | 0x4B<<7 | 0x16, - 35949 - 19968: jis0212<<14 | 0x3D<<7 | 0x57, - 35955 - 19968: jis0212<<14 | 0x3D<<7 | 0x58, - 35957 - 19968: jis0212<<14 | 0x3D<<7 | 0x59, - 35958 - 19968: jis0212<<14 | 0x3D<<7 | 0x5A, - 35960 - 19968: jis0208<<14 | 0x4B<<7 | 0x17, - 35961 - 19968: jis0208<<14 | 0x28<<7 | 0x1E, - 35962 - 19968: jis0208<<14 | 0x4B<<7 | 0x18, - 35963 - 19968: jis0212<<14 | 0x3D<<7 | 0x5B, - 35964 - 19968: jis0208<<14 | 0x4B<<7 | 0x20, - 35966 - 19968: jis0212<<14 | 0x3D<<7 | 0x5C, - 35970 - 19968: jis0208<<14 | 0x4B<<7 | 0x19, - 35973 - 19968: jis0208<<14 | 0x4B<<7 | 0x1B, - 35974 - 19968: jis0212<<14 | 0x3D<<7 | 0x5D, - 35975 - 19968: jis0212<<14 | 0x3E<<7 | 0x00, - 35977 - 19968: jis0208<<14 | 0x4B<<7 | 0x1A, - 35978 - 19968: jis0208<<14 | 0x4B<<7 | 0x1C, - 35979 - 19968: jis0212<<14 | 0x3E<<7 | 0x01, - 35980 - 19968: jis0208<<14 | 0x2A<<7 | 0x25, - 35981 - 19968: jis0208<<14 | 0x4B<<7 | 0x1D, - 35982 - 19968: jis0208<<14 | 0x4B<<7 | 0x1E, - 35984 - 19968: jis0212<<14 | 0x3E<<7 | 0x02, - 35986 - 19968: jis0212<<14 | 0x3E<<7 | 0x03, - 35987 - 19968: jis0212<<14 | 0x3E<<7 | 0x04, - 35988 - 19968: jis0208<<14 | 0x4B<<7 | 0x1F, - 35992 - 19968: jis0208<<14 | 0x4B<<7 | 0x21, - 35993 - 19968: jis0212<<14 | 0x3E<<7 | 0x05, - 35995 - 19968: jis0212<<14 | 0x3E<<7 | 0x06, - 35996 - 19968: jis0212<<14 | 0x3E<<7 | 0x07, - 35997 - 19968: jis0208<<14 | 0x12<<7 | 0x0C, - 35998 - 19968: jis0208<<14 | 0x23<<7 | 0x46, - 36000 - 19968: jis0208<<14 | 0x28<<7 | 0x48, - 36001 - 19968: jis0208<<14 | 0x19<<7 | 0x41, - 36002 - 19968: jis0208<<14 | 0x18<<7 | 0x36, - 36004 - 19968: jis0212<<14 | 0x3E<<7 | 0x08, - 36007 - 19968: jis0208<<14 | 0x28<<7 | 0x2E, - 36008 - 19968: jis0208<<14 | 0x11<<7 | 0x3E, - 36009 - 19968: jis0208<<14 | 0x27<<7 | 0x2D, - 36010 - 19968: jis0208<<14 | 0x4B<<7 | 0x24, - 36011 - 19968: jis0208<<14 | 0x13<<7 | 0x32, - 36012 - 19968: jis0208<<14 | 0x1F<<7 | 0x34, - 36013 - 19968: jis0208<<14 | 0x4B<<7 | 0x23, - 36014 - 19968: jis0208<<14 | 0x4B<<7 | 0x28, - 36015 - 19968: jis0208<<14 | 0x22<<7 | 0x58, - 36016 - 19968: jis0208<<14 | 0x2B<<7 | 0x42, - 36018 - 19968: jis0208<<14 | 0x4B<<7 | 0x26, - 36019 - 19968: jis0208<<14 | 0x4B<<7 | 0x27, - 36020 - 19968: jis0208<<14 | 0x14<<7 | 0x0D, - 36022 - 19968: jis0208<<14 | 0x4B<<7 | 0x29, - 36023 - 19968: jis0208<<14 | 0x26<<7 | 0x42, - 36024 - 19968: jis0208<<14 | 0x21<<7 | 0x3E, - 36025 - 19968: jis0212<<14 | 0x3E<<7 | 0x09, - 36026 - 19968: jis0212<<14 | 0x3E<<7 | 0x0A, - 36027 - 19968: jis0208<<14 | 0x27<<7 | 0x50, - 36028 - 19968: jis0208<<14 | 0x24<<7 | 0x1C, - 36029 - 19968: jis0208<<14 | 0x4B<<7 | 0x25, - 36031 - 19968: jis0208<<14 | 0x2A<<7 | 0x26, - 36032 - 19968: jis0208<<14 | 0x11<<7 | 0x4B, - 36033 - 19968: jis0208<<14 | 0x4B<<7 | 0x2B, - 36034 - 19968: jis0208<<14 | 0x2E<<7 | 0x07, - 36035 - 19968: jis0208<<14 | 0x23<<7 | 0x21, - 36036 - 19968: jis0208<<14 | 0x2E<<7 | 0x24, - 36037 - 19968: jis0212<<14 | 0x3E<<7 | 0x0B, - 36038 - 19968: jis0212<<14 | 0x3E<<7 | 0x0C, - 36039 - 19968: jis0208<<14 | 0x1A<<7 | 0x50, - 36040 - 19968: jis0208<<14 | 0x4B<<7 | 0x2A, - 36041 - 19968: jis0212<<14 | 0x3E<<7 | 0x0D, - 36042 - 19968: jis0208<<14 | 0x21<<7 | 0x10, - 36043 - 19968: jis0212<<14 | 0x3E<<7 | 0x0E, - 36045 - 19968: jis0208<<14 | 0x4B<<7 | 0x3B, - 36046 - 19968: jis0208<<14 | 0x20<<7 | 0x07, - 36047 - 19968: jis0212<<14 | 0x3E<<7 | 0x0F, - 36049 - 19968: jis0208<<14 | 0x25<<7 | 0x57, - 36051 - 19968: jis0208<<14 | 0x28<<7 | 0x2F, - 36053 - 19968: jis0212<<14 | 0x3E<<7 | 0x11, - 36054 - 19968: jis0212<<14 | 0x3E<<7 | 0x10, - 36057 - 19968: jis0212<<14 | 0x3E<<7 | 0x12, - 36058 - 19968: jis0208<<14 | 0x4B<<7 | 0x2E, - 36059 - 19968: jis0208<<14 | 0x1A<<7 | 0x1E, - 36060 - 19968: jis0208<<14 | 0x1A<<7 | 0x51, - 36061 - 19968: jis0212<<14 | 0x3E<<7 | 0x13, - 36062 - 19968: jis0208<<14 | 0x1D<<7 | 0x3D, - 36064 - 19968: jis0208<<14 | 0x26<<7 | 0x44, - 36065 - 19968: jis0212<<14 | 0x3E<<7 | 0x14, - 36066 - 19968: jis0208<<14 | 0x17<<7 | 0x0C, - 36067 - 19968: jis0208<<14 | 0x4B<<7 | 0x2D, - 36068 - 19968: jis0208<<14 | 0x4B<<7 | 0x2C, - 36070 - 19968: jis0208<<14 | 0x28<<7 | 0x49, - 36072 - 19968: jis0212<<14 | 0x3E<<7 | 0x15, - 36074 - 19968: jis0208<<14 | 0x1B<<7 | 0x20, - 36076 - 19968: jis0212<<14 | 0x3E<<7 | 0x16, - 36077 - 19968: jis0208<<14 | 0x24<<7 | 0x31, - 36079 - 19968: jis0212<<14 | 0x3E<<7 | 0x17, - 36080 - 19968: jis0208<<14 | 0x5A<<7 | 0x50, - 36082 - 19968: jis0212<<14 | 0x3E<<7 | 0x19, - 36084 - 19968: jis0208<<14 | 0x5A<<7 | 0x51, - 36085 - 19968: jis0212<<14 | 0x3E<<7 | 0x1A, - 36087 - 19968: jis0212<<14 | 0x3E<<7 | 0x1B, - 36088 - 19968: jis0212<<14 | 0x3E<<7 | 0x1C, - 36090 - 19968: jis0208<<14 | 0x4B<<7 | 0x30, - 36091 - 19968: jis0208<<14 | 0x4B<<7 | 0x31, - 36092 - 19968: jis0208<<14 | 0x18<<7 | 0x37, - 36093 - 19968: jis0208<<14 | 0x4B<<7 | 0x2F, - 36094 - 19968: jis0212<<14 | 0x3E<<7 | 0x1D, - 36095 - 19968: jis0212<<14 | 0x3E<<7 | 0x1E, - 36097 - 19968: jis0212<<14 | 0x3E<<7 | 0x1F, - 36099 - 19968: jis0212<<14 | 0x3E<<7 | 0x20, - 36100 - 19968: jis0208<<14 | 0x4B<<7 | 0x32, - 36101 - 19968: jis0208<<14 | 0x4B<<7 | 0x33, - 36103 - 19968: jis0208<<14 | 0x4B<<7 | 0x35, - 36104 - 19968: jis0208<<14 | 0x21<<7 | 0x02, - 36105 - 19968: jis0212<<14 | 0x3E<<7 | 0x21, - 36106 - 19968: jis0208<<14 | 0x4B<<7 | 0x34, - 36107 - 19968: jis0208<<14 | 0x13<<7 | 0x45, - 36109 - 19968: jis0208<<14 | 0x4B<<7 | 0x37, - 36111 - 19968: jis0208<<14 | 0x4B<<7 | 0x36, - 36112 - 19968: jis0208<<14 | 0x4B<<7 | 0x38, - 36114 - 19968: jis0208<<14 | 0x5A<<7 | 0x52, - 36115 - 19968: jis0208<<14 | 0x4B<<7 | 0x3A, - 36116 - 19968: jis0208<<14 | 0x4B<<7 | 0x3C, - 36118 - 19968: jis0208<<14 | 0x4B<<7 | 0x3D, - 36119 - 19968: jis0212<<14 | 0x3E<<7 | 0x23, - 36123 - 19968: jis0212<<14 | 0x3E<<7 | 0x24, - 36196 - 19968: jis0208<<14 | 0x1F<<7 | 0x35, - 36197 - 19968: jis0212<<14 | 0x3E<<7 | 0x25, - 36198 - 19968: jis0208<<14 | 0x1B<<7 | 0x2E, - 36199 - 19968: jis0208<<14 | 0x4B<<7 | 0x3E, - 36201 - 19968: jis0212<<14 | 0x3E<<7 | 0x26, - 36203 - 19968: jis0208<<14 | 0x12<<7 | 0x31, - 36204 - 19968: jis0212<<14 | 0x3E<<7 | 0x27, - 36205 - 19968: jis0208<<14 | 0x4B<<7 | 0x3F, - 36206 - 19968: jis0212<<14 | 0x3E<<7 | 0x28, - 36208 - 19968: jis0208<<14 | 0x20<<7 | 0x55, - 36209 - 19968: jis0208<<14 | 0x4B<<7 | 0x40, - 36211 - 19968: jis0208<<14 | 0x4B<<7 | 0x41, - 36212 - 19968: jis0208<<14 | 0x28<<7 | 0x4A, - 36214 - 19968: jis0208<<14 | 0x5A<<7 | 0x53, - 36215 - 19968: jis0208<<14 | 0x14<<7 | 0x0E, - 36223 - 19968: jis0212<<14 | 0x3E<<7 | 0x29, - 36225 - 19968: jis0208<<14 | 0x4B<<7 | 0x42, - 36226 - 19968: jis0212<<14 | 0x3E<<7 | 0x2A, - 36228 - 19968: jis0212<<14 | 0x3E<<7 | 0x2B, - 36229 - 19968: jis0208<<14 | 0x23<<7 | 0x15, - 36232 - 19968: jis0212<<14 | 0x3E<<7 | 0x2C, - 36234 - 19968: jis0208<<14 | 0x10<<7 | 0x3A, - 36237 - 19968: jis0212<<14 | 0x3E<<7 | 0x2D, - 36240 - 19968: jis0212<<14 | 0x3E<<7 | 0x2E, - 36241 - 19968: jis0212<<14 | 0x3E<<7 | 0x2F, - 36245 - 19968: jis0212<<14 | 0x3E<<7 | 0x30, - 36249 - 19968: jis0208<<14 | 0x4B<<7 | 0x43, - 36254 - 19968: jis0212<<14 | 0x3E<<7 | 0x31, - 36255 - 19968: jis0212<<14 | 0x3E<<7 | 0x32, - 36256 - 19968: jis0212<<14 | 0x3E<<7 | 0x33, - 36259 - 19968: jis0208<<14 | 0x1B<<7 | 0x50, - 36262 - 19968: jis0212<<14 | 0x3E<<7 | 0x34, - 36264 - 19968: jis0208<<14 | 0x1E<<7 | 0x55, - 36267 - 19968: jis0212<<14 | 0x3E<<7 | 0x35, - 36268 - 19968: jis0212<<14 | 0x3E<<7 | 0x36, - 36271 - 19968: jis0212<<14 | 0x3E<<7 | 0x37, - 36274 - 19968: jis0212<<14 | 0x3E<<7 | 0x38, - 36275 - 19968: jis0208<<14 | 0x21<<7 | 0x0C, - 36277 - 19968: jis0212<<14 | 0x3E<<7 | 0x39, - 36279 - 19968: jis0212<<14 | 0x3E<<7 | 0x3A, - 36281 - 19968: jis0212<<14 | 0x3E<<7 | 0x3B, - 36282 - 19968: jis0208<<14 | 0x4B<<7 | 0x46, - 36283 - 19968: jis0212<<14 | 0x3E<<7 | 0x3C, - 36284 - 19968: jis0212<<14 | 0x3E<<7 | 0x4E, - 36286 - 19968: jis0208<<14 | 0x4B<<7 | 0x45, - 36288 - 19968: jis0212<<14 | 0x3E<<7 | 0x3D, - 36290 - 19968: jis0208<<14 | 0x4B<<7 | 0x44, - 36293 - 19968: jis0212<<14 | 0x3E<<7 | 0x3E, - 36294 - 19968: jis0212<<14 | 0x3E<<7 | 0x3F, - 36295 - 19968: jis0212<<14 | 0x3E<<7 | 0x40, - 36296 - 19968: jis0212<<14 | 0x3E<<7 | 0x41, - 36298 - 19968: jis0212<<14 | 0x3E<<7 | 0x42, - 36299 - 19968: jis0208<<14 | 0x4B<<7 | 0x4C, - 36300 - 19968: jis0208<<14 | 0x4B<<7 | 0x4A, - 36302 - 19968: jis0212<<14 | 0x3E<<7 | 0x43, - 36303 - 19968: jis0208<<14 | 0x4B<<7 | 0x47, - 36305 - 19968: jis0212<<14 | 0x3E<<7 | 0x44, - 36308 - 19968: jis0212<<14 | 0x3E<<7 | 0x45, - 36309 - 19968: jis0212<<14 | 0x3E<<7 | 0x46, - 36310 - 19968: jis0208<<14 | 0x4B<<7 | 0x49, - 36311 - 19968: jis0212<<14 | 0x3E<<7 | 0x47, - 36313 - 19968: jis0212<<14 | 0x3E<<7 | 0x48, - 36314 - 19968: jis0208<<14 | 0x4B<<7 | 0x48, - 36315 - 19968: jis0208<<14 | 0x4B<<7 | 0x4B, - 36317 - 19968: jis0208<<14 | 0x14<<7 | 0x56, - 36319 - 19968: jis0208<<14 | 0x4B<<7 | 0x4F, - 36321 - 19968: jis0208<<14 | 0x1F<<7 | 0x36, - 36323 - 19968: jis0208<<14 | 0x4B<<7 | 0x50, - 36324 - 19968: jis0212<<14 | 0x3E<<7 | 0x49, - 36325 - 19968: jis0212<<14 | 0x3E<<7 | 0x4A, - 36327 - 19968: jis0212<<14 | 0x3E<<7 | 0x4B, - 36328 - 19968: jis0208<<14 | 0x17<<7 | 0x38, - 36330 - 19968: jis0208<<14 | 0x4B<<7 | 0x4D, - 36331 - 19968: jis0208<<14 | 0x4B<<7 | 0x4E, - 36332 - 19968: jis0212<<14 | 0x3E<<7 | 0x4C, - 36335 - 19968: jis0208<<14 | 0x2E<<7 | 0x08, - 36336 - 19968: jis0212<<14 | 0x3E<<7 | 0x4D, - 36337 - 19968: jis0212<<14 | 0x3E<<7 | 0x4F, - 36338 - 19968: jis0212<<14 | 0x3E<<7 | 0x50, - 36339 - 19968: jis0208<<14 | 0x23<<7 | 0x16, - 36340 - 19968: jis0212<<14 | 0x3E<<7 | 0x51, - 36341 - 19968: jis0208<<14 | 0x20<<7 | 0x08, - 36348 - 19968: jis0208<<14 | 0x4B<<7 | 0x51, - 36349 - 19968: jis0212<<14 | 0x3E<<7 | 0x52, - 36351 - 19968: jis0208<<14 | 0x4B<<7 | 0x54, - 36353 - 19968: jis0212<<14 | 0x3E<<7 | 0x53, - 36356 - 19968: jis0212<<14 | 0x3E<<7 | 0x54, - 36357 - 19968: jis0212<<14 | 0x3E<<7 | 0x55, - 36358 - 19968: jis0212<<14 | 0x3E<<7 | 0x56, - 36360 - 19968: jis0208<<14 | 0x4B<<7 | 0x52, - 36361 - 19968: jis0208<<14 | 0x4B<<7 | 0x53, - 36362 - 19968: jis0208<<14 | 0x2C<<7 | 0x38, - 36363 - 19968: jis0212<<14 | 0x3E<<7 | 0x57, - 36367 - 19968: jis0208<<14 | 0x25<<7 | 0x06, - 36368 - 19968: jis0208<<14 | 0x4B<<7 | 0x57, - 36369 - 19968: jis0212<<14 | 0x3E<<7 | 0x58, - 36372 - 19968: jis0212<<14 | 0x3E<<7 | 0x59, - 36374 - 19968: jis0212<<14 | 0x3E<<7 | 0x5A, - 36381 - 19968: jis0208<<14 | 0x4B<<7 | 0x55, - 36382 - 19968: jis0208<<14 | 0x4B<<7 | 0x56, - 36383 - 19968: jis0208<<14 | 0x4B<<7 | 0x58, - 36384 - 19968: jis0212<<14 | 0x3E<<7 | 0x5B, - 36385 - 19968: jis0212<<14 | 0x3E<<7 | 0x5C, - 36386 - 19968: jis0212<<14 | 0x3E<<7 | 0x5D, - 36387 - 19968: jis0212<<14 | 0x3F<<7 | 0x00, - 36390 - 19968: jis0212<<14 | 0x3F<<7 | 0x01, - 36391 - 19968: jis0212<<14 | 0x3F<<7 | 0x02, - 36394 - 19968: jis0208<<14 | 0x4C<<7 | 0x08, - 36400 - 19968: jis0208<<14 | 0x4B<<7 | 0x5B, - 36401 - 19968: jis0212<<14 | 0x3F<<7 | 0x03, - 36403 - 19968: jis0212<<14 | 0x3F<<7 | 0x04, - 36404 - 19968: jis0208<<14 | 0x4B<<7 | 0x5C, - 36405 - 19968: jis0208<<14 | 0x4B<<7 | 0x5A, - 36406 - 19968: jis0212<<14 | 0x3F<<7 | 0x05, - 36407 - 19968: jis0212<<14 | 0x3F<<7 | 0x06, - 36408 - 19968: jis0212<<14 | 0x3F<<7 | 0x07, - 36409 - 19968: jis0212<<14 | 0x3F<<7 | 0x08, - 36413 - 19968: jis0212<<14 | 0x3F<<7 | 0x09, - 36416 - 19968: jis0212<<14 | 0x3F<<7 | 0x0A, - 36417 - 19968: jis0212<<14 | 0x3F<<7 | 0x0B, - 36418 - 19968: jis0208<<14 | 0x4B<<7 | 0x59, - 36420 - 19968: jis0208<<14 | 0x23<<7 | 0x5C, - 36423 - 19968: jis0208<<14 | 0x4C<<7 | 0x00, - 36424 - 19968: jis0208<<14 | 0x4C<<7 | 0x04, - 36425 - 19968: jis0208<<14 | 0x4C<<7 | 0x01, - 36426 - 19968: jis0208<<14 | 0x4B<<7 | 0x5D, - 36427 - 19968: jis0212<<14 | 0x3F<<7 | 0x0C, - 36428 - 19968: jis0208<<14 | 0x4C<<7 | 0x02, - 36429 - 19968: jis0212<<14 | 0x3F<<7 | 0x0D, - 36430 - 19968: jis0212<<14 | 0x3F<<7 | 0x0E, - 36431 - 19968: jis0212<<14 | 0x3F<<7 | 0x0F, - 36432 - 19968: jis0208<<14 | 0x4C<<7 | 0x03, - 36436 - 19968: jis0212<<14 | 0x3F<<7 | 0x10, - 36437 - 19968: jis0208<<14 | 0x4C<<7 | 0x0A, - 36441 - 19968: jis0208<<14 | 0x4C<<7 | 0x05, - 36443 - 19968: jis0212<<14 | 0x3F<<7 | 0x11, - 36444 - 19968: jis0212<<14 | 0x3F<<7 | 0x12, - 36445 - 19968: jis0212<<14 | 0x3F<<7 | 0x13, - 36446 - 19968: jis0212<<14 | 0x3F<<7 | 0x14, - 36447 - 19968: jis0208<<14 | 0x1F<<7 | 0x37, - 36448 - 19968: jis0208<<14 | 0x4C<<7 | 0x07, - 36449 - 19968: jis0212<<14 | 0x3F<<7 | 0x15, - 36450 - 19968: jis0212<<14 | 0x3F<<7 | 0x16, - 36451 - 19968: jis0208<<14 | 0x4C<<7 | 0x09, - 36452 - 19968: jis0208<<14 | 0x4C<<7 | 0x06, - 36457 - 19968: jis0212<<14 | 0x3F<<7 | 0x17, - 36460 - 19968: jis0212<<14 | 0x3F<<7 | 0x18, - 36461 - 19968: jis0212<<14 | 0x3F<<7 | 0x19, - 36463 - 19968: jis0212<<14 | 0x3F<<7 | 0x1A, - 36464 - 19968: jis0212<<14 | 0x3F<<7 | 0x1B, - 36465 - 19968: jis0212<<14 | 0x3F<<7 | 0x1C, - 36466 - 19968: jis0208<<14 | 0x4C<<7 | 0x0C, - 36468 - 19968: jis0208<<14 | 0x1C<<7 | 0x12, - 36470 - 19968: jis0208<<14 | 0x4C<<7 | 0x0B, - 36473 - 19968: jis0212<<14 | 0x3F<<7 | 0x1D, - 36474 - 19968: jis0212<<14 | 0x3F<<7 | 0x1E, - 36475 - 19968: jis0212<<14 | 0x3F<<7 | 0x1F, - 36476 - 19968: jis0208<<14 | 0x4C<<7 | 0x0D, - 36481 - 19968: jis0208<<14 | 0x4C<<7 | 0x0E, - 36482 - 19968: jis0212<<14 | 0x3F<<7 | 0x20, - 36483 - 19968: jis0212<<14 | 0x3F<<7 | 0x21, - 36484 - 19968: jis0208<<14 | 0x4C<<7 | 0x11, - 36485 - 19968: jis0208<<14 | 0x4C<<7 | 0x10, - 36487 - 19968: jis0208<<14 | 0x4C<<7 | 0x0F, - 36489 - 19968: jis0212<<14 | 0x3F<<7 | 0x22, - 36490 - 19968: jis0208<<14 | 0x4C<<7 | 0x13, - 36491 - 19968: jis0208<<14 | 0x4C<<7 | 0x12, - 36493 - 19968: jis0208<<14 | 0x2B<<7 | 0x55, - 36496 - 19968: jis0212<<14 | 0x3F<<7 | 0x23, - 36497 - 19968: jis0208<<14 | 0x4C<<7 | 0x15, - 36498 - 19968: jis0212<<14 | 0x3F<<7 | 0x24, - 36499 - 19968: jis0208<<14 | 0x4C<<7 | 0x14, - 36500 - 19968: jis0208<<14 | 0x4C<<7 | 0x16, - 36501 - 19968: jis0212<<14 | 0x3F<<7 | 0x25, - 36505 - 19968: jis0208<<14 | 0x4C<<7 | 0x17, - 36506 - 19968: jis0212<<14 | 0x3F<<7 | 0x26, - 36507 - 19968: jis0212<<14 | 0x3F<<7 | 0x27, - 36509 - 19968: jis0212<<14 | 0x3F<<7 | 0x28, - 36510 - 19968: jis0212<<14 | 0x3F<<7 | 0x29, - 36513 - 19968: jis0208<<14 | 0x4C<<7 | 0x19, - 36514 - 19968: jis0212<<14 | 0x3F<<7 | 0x2A, - 36519 - 19968: jis0212<<14 | 0x3F<<7 | 0x2B, - 36521 - 19968: jis0212<<14 | 0x3F<<7 | 0x2C, - 36522 - 19968: jis0208<<14 | 0x4C<<7 | 0x18, - 36523 - 19968: jis0208<<14 | 0x1E<<7 | 0x27, - 36524 - 19968: jis0208<<14 | 0x4C<<7 | 0x1A, - 36525 - 19968: jis0212<<14 | 0x3F<<7 | 0x2D, - 36526 - 19968: jis0212<<14 | 0x3F<<7 | 0x2E, - 36527 - 19968: jis0208<<14 | 0x15<<7 | 0x4C, - 36528 - 19968: jis0208<<14 | 0x4C<<7 | 0x1B, - 36529 - 19968: jis0208<<14 | 0x4C<<7 | 0x1D, - 36531 - 19968: jis0212<<14 | 0x3F<<7 | 0x2F, - 36533 - 19968: jis0212<<14 | 0x3F<<7 | 0x30, - 36538 - 19968: jis0212<<14 | 0x3F<<7 | 0x31, - 36539 - 19968: jis0212<<14 | 0x3F<<7 | 0x32, - 36542 - 19968: jis0208<<14 | 0x4C<<7 | 0x1E, - 36544 - 19968: jis0212<<14 | 0x3F<<7 | 0x33, - 36545 - 19968: jis0212<<14 | 0x3F<<7 | 0x34, - 36547 - 19968: jis0212<<14 | 0x3F<<7 | 0x35, - 36548 - 19968: jis0212<<14 | 0x3F<<7 | 0x36, - 36549 - 19968: jis0208<<14 | 0x4C<<7 | 0x1F, - 36550 - 19968: jis0208<<14 | 0x4C<<7 | 0x1C, - 36551 - 19968: jis0212<<14 | 0x3F<<7 | 0x37, - 36552 - 19968: jis0208<<14 | 0x4C<<7 | 0x20, - 36554 - 19968: jis0208<<14 | 0x1B<<7 | 0x35, - 36555 - 19968: jis0208<<14 | 0x4C<<7 | 0x21, - 36556 - 19968: jis0208<<14 | 0x14<<7 | 0x0F, - 36557 - 19968: jis0208<<14 | 0x16<<7 | 0x12, - 36559 - 19968: jis0208<<14 | 0x5A<<7 | 0x55, - 36561 - 19968: jis0212<<14 | 0x3F<<7 | 0x39, - 36562 - 19968: jis0208<<14 | 0x17<<7 | 0x0D, - 36564 - 19968: jis0212<<14 | 0x3F<<7 | 0x3A, - 36571 - 19968: jis0208<<14 | 0x4C<<7 | 0x22, - 36572 - 19968: jis0212<<14 | 0x3F<<7 | 0x3B, - 36575 - 19968: jis0208<<14 | 0x25<<7 | 0x4F, - 36578 - 19968: jis0208<<14 | 0x24<<7 | 0x1D, - 36579 - 19968: jis0208<<14 | 0x4C<<7 | 0x23, - 36584 - 19968: jis0212<<14 | 0x3F<<7 | 0x3C, - 36587 - 19968: jis0208<<14 | 0x4C<<7 | 0x26, - 36589 - 19968: jis0212<<14 | 0x3F<<7 | 0x43, - 36590 - 19968: jis0212<<14 | 0x3F<<7 | 0x3D, - 36592 - 19968: jis0212<<14 | 0x3F<<7 | 0x3E, - 36593 - 19968: jis0212<<14 | 0x3F<<7 | 0x3F, - 36599 - 19968: jis0212<<14 | 0x3F<<7 | 0x40, - 36600 - 19968: jis0208<<14 | 0x1B<<7 | 0x13, - 36601 - 19968: jis0212<<14 | 0x3F<<7 | 0x41, - 36602 - 19968: jis0212<<14 | 0x3F<<7 | 0x42, - 36603 - 19968: jis0208<<14 | 0x4C<<7 | 0x25, - 36604 - 19968: jis0208<<14 | 0x4C<<7 | 0x24, - 36605 - 19968: jis0208<<14 | 0x16<<7 | 0x39, - 36606 - 19968: jis0208<<14 | 0x4C<<7 | 0x27, - 36608 - 19968: jis0212<<14 | 0x3F<<7 | 0x44, - 36610 - 19968: jis0212<<14 | 0x3F<<7 | 0x45, - 36611 - 19968: jis0208<<14 | 0x12<<7 | 0x32, - 36613 - 19968: jis0208<<14 | 0x4C<<7 | 0x29, - 36615 - 19968: jis0212<<14 | 0x3F<<7 | 0x46, - 36616 - 19968: jis0212<<14 | 0x3F<<7 | 0x47, - 36617 - 19968: jis0208<<14 | 0x19<<7 | 0x3B, - 36618 - 19968: jis0208<<14 | 0x4C<<7 | 0x28, - 36620 - 19968: jis0208<<14 | 0x4C<<7 | 0x31, - 36623 - 19968: jis0212<<14 | 0x3F<<7 | 0x48, - 36624 - 19968: jis0212<<14 | 0x3F<<7 | 0x49, - 36626 - 19968: jis0208<<14 | 0x4C<<7 | 0x2B, - 36627 - 19968: jis0208<<14 | 0x4C<<7 | 0x2D, - 36628 - 19968: jis0208<<14 | 0x29<<7 | 0x44, - 36629 - 19968: jis0208<<14 | 0x4C<<7 | 0x2A, - 36630 - 19968: jis0212<<14 | 0x3F<<7 | 0x4A, - 36631 - 19968: jis0212<<14 | 0x3F<<7 | 0x4B, - 36632 - 19968: jis0212<<14 | 0x3F<<7 | 0x4C, - 36633 - 19968: jis0208<<14 | 0x4C<<7 | 0x2C, - 36635 - 19968: jis0208<<14 | 0x4C<<7 | 0x30, - 36636 - 19968: jis0208<<14 | 0x4C<<7 | 0x2E, - 36637 - 19968: jis0208<<14 | 0x14<<7 | 0x10, - 36638 - 19968: jis0212<<14 | 0x3F<<7 | 0x4D, - 36639 - 19968: jis0208<<14 | 0x4C<<7 | 0x2F, - 36640 - 19968: jis0212<<14 | 0x3F<<7 | 0x4E, - 36641 - 19968: jis0212<<14 | 0x3F<<7 | 0x4F, - 36643 - 19968: jis0212<<14 | 0x3F<<7 | 0x50, - 36645 - 19968: jis0212<<14 | 0x3F<<7 | 0x51, - 36646 - 19968: jis0208<<14 | 0x4C<<7 | 0x32, - 36647 - 19968: jis0212<<14 | 0x3F<<7 | 0x52, - 36648 - 19968: jis0212<<14 | 0x3F<<7 | 0x53, - 36649 - 19968: jis0208<<14 | 0x26<<7 | 0x39, - 36650 - 19968: jis0208<<14 | 0x2D<<7 | 0x37, - 36652 - 19968: jis0212<<14 | 0x3F<<7 | 0x54, - 36653 - 19968: jis0212<<14 | 0x3F<<7 | 0x55, - 36654 - 19968: jis0212<<14 | 0x3F<<7 | 0x56, - 36655 - 19968: jis0208<<14 | 0x1C<<7 | 0x13, - 36659 - 19968: jis0208<<14 | 0x4C<<7 | 0x33, - 36660 - 19968: jis0212<<14 | 0x3F<<7 | 0x57, - 36661 - 19968: jis0212<<14 | 0x3F<<7 | 0x58, - 36662 - 19968: jis0212<<14 | 0x3F<<7 | 0x59, - 36663 - 19968: jis0212<<14 | 0x3F<<7 | 0x5A, - 36664 - 19968: jis0208<<14 | 0x2C<<7 | 0x01, - 36665 - 19968: jis0208<<14 | 0x4C<<7 | 0x35, - 36666 - 19968: jis0212<<14 | 0x3F<<7 | 0x5B, - 36667 - 19968: jis0208<<14 | 0x4C<<7 | 0x34, - 36670 - 19968: jis0208<<14 | 0x4C<<7 | 0x38, - 36671 - 19968: jis0208<<14 | 0x2C<<7 | 0x20, - 36672 - 19968: jis0212<<14 | 0x3F<<7 | 0x5C, - 36673 - 19968: jis0212<<14 | 0x3F<<7 | 0x5D, - 36674 - 19968: jis0208<<14 | 0x4C<<7 | 0x37, - 36675 - 19968: jis0212<<14 | 0x40<<7 | 0x00, - 36676 - 19968: jis0208<<14 | 0x12<<7 | 0x4C, - 36677 - 19968: jis0208<<14 | 0x4C<<7 | 0x36, - 36678 - 19968: jis0208<<14 | 0x4C<<7 | 0x3B, - 36679 - 19968: jis0212<<14 | 0x40<<7 | 0x01, - 36681 - 19968: jis0208<<14 | 0x4C<<7 | 0x3A, - 36684 - 19968: jis0208<<14 | 0x4C<<7 | 0x39, - 36685 - 19968: jis0208<<14 | 0x24<<7 | 0x11, - 36686 - 19968: jis0208<<14 | 0x4C<<7 | 0x3C, - 36687 - 19968: jis0212<<14 | 0x40<<7 | 0x02, - 36689 - 19968: jis0212<<14 | 0x40<<7 | 0x03, - 36690 - 19968: jis0212<<14 | 0x40<<7 | 0x04, - 36691 - 19968: jis0212<<14 | 0x40<<7 | 0x05, - 36692 - 19968: jis0212<<14 | 0x40<<7 | 0x06, - 36693 - 19968: jis0212<<14 | 0x40<<7 | 0x07, - 36695 - 19968: jis0208<<14 | 0x4C<<7 | 0x3D, - 36696 - 19968: jis0212<<14 | 0x40<<7 | 0x08, - 36700 - 19968: jis0208<<14 | 0x4C<<7 | 0x3E, - 36701 - 19968: jis0212<<14 | 0x40<<7 | 0x09, - 36702 - 19968: jis0212<<14 | 0x40<<7 | 0x0A, - 36703 - 19968: jis0208<<14 | 0x18<<7 | 0x4B, - 36705 - 19968: jis0208<<14 | 0x16<<7 | 0x04, - 36706 - 19968: jis0208<<14 | 0x4C<<7 | 0x3F, - 36707 - 19968: jis0208<<14 | 0x4C<<7 | 0x40, - 36708 - 19968: jis0208<<14 | 0x4C<<7 | 0x41, - 36709 - 19968: jis0212<<14 | 0x40<<7 | 0x0B, - 36763 - 19968: jis0208<<14 | 0x1E<<7 | 0x28, - 36764 - 19968: jis0208<<14 | 0x4C<<7 | 0x42, - 36765 - 19968: jis0212<<14 | 0x40<<7 | 0x0C, - 36766 - 19968: jis0208<<14 | 0x1B<<7 | 0x0C, - 36767 - 19968: jis0208<<14 | 0x4C<<7 | 0x43, - 36768 - 19968: jis0212<<14 | 0x40<<7 | 0x0D, - 36769 - 19968: jis0212<<14 | 0x40<<7 | 0x0E, - 36771 - 19968: jis0208<<14 | 0x4C<<7 | 0x44, - 36772 - 19968: jis0212<<14 | 0x40<<7 | 0x0F, - 36773 - 19968: jis0212<<14 | 0x40<<7 | 0x10, - 36774 - 19968: jis0212<<14 | 0x40<<7 | 0x11, - 36775 - 19968: jis0208<<14 | 0x31<<7 | 0x00, - 36776 - 19968: jis0208<<14 | 0x30<<7 | 0x5D, - 36781 - 19968: jis0208<<14 | 0x4C<<7 | 0x45, - 36782 - 19968: jis0208<<14 | 0x44<<7 | 0x4F, - 36783 - 19968: jis0208<<14 | 0x4C<<7 | 0x46, - 36784 - 19968: jis0208<<14 | 0x22<<7 | 0x03, - 36785 - 19968: jis0208<<14 | 0x1E<<7 | 0x0A, - 36786 - 19968: jis0208<<14 | 0x26<<7 | 0x1F, - 36789 - 19968: jis0212<<14 | 0x40<<7 | 0x12, - 36790 - 19968: jis0212<<14 | 0x40<<7 | 0x13, - 36791 - 19968: jis0208<<14 | 0x4C<<7 | 0x47, - 36792 - 19968: jis0212<<14 | 0x40<<7 | 0x14, - 36794 - 19968: jis0208<<14 | 0x29<<7 | 0x34, - 36795 - 19968: jis0208<<14 | 0x23<<7 | 0x33, - 36796 - 19968: jis0208<<14 | 0x18<<7 | 0x5D, - 36798 - 19968: jis0212<<14 | 0x40<<7 | 0x15, - 36799 - 19968: jis0208<<14 | 0x22<<7 | 0x08, - 36800 - 19968: jis0212<<14 | 0x40<<7 | 0x16, - 36801 - 19968: jis0212<<14 | 0x40<<7 | 0x17, - 36802 - 19968: jis0208<<14 | 0x10<<7 | 0x09, - 36804 - 19968: jis0208<<14 | 0x2A<<7 | 0x57, - 36805 - 19968: jis0208<<14 | 0x1E<<7 | 0x36, - 36806 - 19968: jis0212<<14 | 0x40<<7 | 0x18, - 36810 - 19968: jis0212<<14 | 0x40<<7 | 0x19, - 36811 - 19968: jis0212<<14 | 0x40<<7 | 0x1A, - 36813 - 19968: jis0212<<14 | 0x40<<7 | 0x1B, - 36814 - 19968: jis0208<<14 | 0x16<<7 | 0x3D, - 36816 - 19968: jis0212<<14 | 0x40<<7 | 0x1C, - 36817 - 19968: jis0208<<14 | 0x15<<7 | 0x40, - 36818 - 19968: jis0212<<14 | 0x40<<7 | 0x1D, - 36819 - 19968: jis0212<<14 | 0x40<<7 | 0x1E, - 36820 - 19968: jis0208<<14 | 0x29<<7 | 0x35, - 36821 - 19968: jis0212<<14 | 0x40<<7 | 0x1F, - 36826 - 19968: jis0208<<14 | 0x4C<<7 | 0x48, - 36832 - 19968: jis0212<<14 | 0x40<<7 | 0x20, - 36834 - 19968: jis0208<<14 | 0x4C<<7 | 0x4A, - 36835 - 19968: jis0212<<14 | 0x40<<7 | 0x21, - 36836 - 19968: jis0212<<14 | 0x40<<7 | 0x22, - 36837 - 19968: jis0208<<14 | 0x4C<<7 | 0x49, - 36838 - 19968: jis0208<<14 | 0x11<<7 | 0x3F, - 36840 - 19968: jis0212<<14 | 0x40<<7 | 0x23, - 36841 - 19968: jis0208<<14 | 0x25<<7 | 0x55, - 36842 - 19968: jis0208<<14 | 0x4C<<7 | 0x4B, - 36843 - 19968: jis0208<<14 | 0x26<<7 | 0x56, - 36845 - 19968: jis0208<<14 | 0x24<<7 | 0x12, - 36846 - 19968: jis0212<<14 | 0x40<<7 | 0x24, - 36847 - 19968: jis0208<<14 | 0x4C<<7 | 0x4C, - 36848 - 19968: jis0208<<14 | 0x1C<<7 | 0x31, - 36849 - 19968: jis0212<<14 | 0x40<<7 | 0x25, - 36852 - 19968: jis0208<<14 | 0x4C<<7 | 0x4E, - 36853 - 19968: jis0212<<14 | 0x40<<7 | 0x26, - 36854 - 19968: jis0212<<14 | 0x40<<7 | 0x27, - 36855 - 19968: jis0208<<14 | 0x2B<<7 | 0x21, - 36856 - 19968: jis0208<<14 | 0x4C<<7 | 0x5D, - 36857 - 19968: jis0208<<14 | 0x4C<<7 | 0x50, - 36858 - 19968: jis0208<<14 | 0x4C<<7 | 0x51, - 36859 - 19968: jis0212<<14 | 0x40<<7 | 0x28, - 36861 - 19968: jis0208<<14 | 0x23<<7 | 0x28, - 36862 - 19968: jis0212<<14 | 0x40<<7 | 0x29, - 36864 - 19968: jis0208<<14 | 0x21<<7 | 0x3F, - 36865 - 19968: jis0208<<14 | 0x20<<7 | 0x56, - 36866 - 19968: jis0212<<14 | 0x40<<7 | 0x2A, - 36867 - 19968: jis0208<<14 | 0x25<<7 | 0x07, - 36868 - 19968: jis0212<<14 | 0x40<<7 | 0x2B, - 36869 - 19968: jis0208<<14 | 0x4C<<7 | 0x4F, - 36870 - 19968: jis0208<<14 | 0x14<<7 | 0x34, - 36872 - 19968: jis0212<<14 | 0x40<<7 | 0x2C, - 36875 - 19968: jis0208<<14 | 0x4C<<7 | 0x58, - 36876 - 19968: jis0212<<14 | 0x40<<7 | 0x2D, - 36877 - 19968: jis0208<<14 | 0x4C<<7 | 0x55, - 36878 - 19968: jis0208<<14 | 0x4D<<7 | 0x04, - 36879 - 19968: jis0208<<14 | 0x25<<7 | 0x08, - 36880 - 19968: jis0208<<14 | 0x22<<7 | 0x3F, - 36881 - 19968: jis0208<<14 | 0x4C<<7 | 0x52, - 36883 - 19968: jis0208<<14 | 0x23<<7 | 0x5D, - 36884 - 19968: jis0208<<14 | 0x24<<7 | 0x32, - 36885 - 19968: jis0208<<14 | 0x4C<<7 | 0x53, - 36886 - 19968: jis0208<<14 | 0x4C<<7 | 0x57, - 36887 - 19968: jis0208<<14 | 0x1E<<7 | 0x3F, - 36888 - 19968: jis0212<<14 | 0x40<<7 | 0x2E, - 36889 - 19968: jis0208<<14 | 0x26<<7 | 0x46, - 36890 - 19968: jis0208<<14 | 0x23<<7 | 0x2B, - 36891 - 19968: jis0212<<14 | 0x40<<7 | 0x2F, - 36893 - 19968: jis0208<<14 | 0x1F<<7 | 0x21, - 36894 - 19968: jis0208<<14 | 0x4C<<7 | 0x56, - 36895 - 19968: jis0208<<14 | 0x21<<7 | 0x0D, - 36896 - 19968: jis0208<<14 | 0x21<<7 | 0x03, - 36897 - 19968: jis0208<<14 | 0x4C<<7 | 0x54, - 36898 - 19968: jis0208<<14 | 0x0F<<7 | 0x08, - 36899 - 19968: jis0208<<14 | 0x2E<<7 | 0x01, - 36903 - 19968: jis0208<<14 | 0x4C<<7 | 0x59, - 36904 - 19968: jis0212<<14 | 0x40<<7 | 0x30, - 36905 - 19968: jis0212<<14 | 0x40<<7 | 0x31, - 36906 - 19968: jis0212<<14 | 0x40<<7 | 0x33, - 36908 - 19968: jis0212<<14 | 0x40<<7 | 0x34, - 36909 - 19968: jis0212<<14 | 0x40<<7 | 0x35, - 36910 - 19968: jis0208<<14 | 0x21<<7 | 0x40, - 36911 - 19968: jis0212<<14 | 0x40<<7 | 0x32, - 36913 - 19968: jis0208<<14 | 0x1C<<7 | 0x14, - 36914 - 19968: jis0208<<14 | 0x1E<<7 | 0x29, - 36915 - 19968: jis0212<<14 | 0x40<<7 | 0x36, - 36916 - 19968: jis0212<<14 | 0x40<<7 | 0x37, - 36917 - 19968: jis0208<<14 | 0x4C<<7 | 0x5B, - 36918 - 19968: jis0208<<14 | 0x4C<<7 | 0x5A, - 36919 - 19968: jis0212<<14 | 0x40<<7 | 0x38, - 36920 - 19968: jis0208<<14 | 0x0F<<7 | 0x4E, - 36921 - 19968: jis0208<<14 | 0x4C<<7 | 0x5C, - 36924 - 19968: jis0208<<14 | 0x28<<7 | 0x0E, - 36926 - 19968: jis0208<<14 | 0x4D<<7 | 0x06, - 36927 - 19968: jis0212<<14 | 0x40<<7 | 0x39, - 36929 - 19968: jis0208<<14 | 0x25<<7 | 0x3A, - 36930 - 19968: jis0208<<14 | 0x1E<<7 | 0x4A, - 36931 - 19968: jis0212<<14 | 0x40<<7 | 0x3A, - 36932 - 19968: jis0212<<14 | 0x40<<7 | 0x3B, - 36933 - 19968: jis0208<<14 | 0x22<<7 | 0x38, - 36935 - 19968: jis0208<<14 | 0x15<<7 | 0x57, - 36937 - 19968: jis0208<<14 | 0x4D<<7 | 0x05, - 36938 - 19968: jis0208<<14 | 0x2C<<7 | 0x16, - 36939 - 19968: jis0208<<14 | 0x10<<7 | 0x1E, - 36940 - 19968: jis0212<<14 | 0x40<<7 | 0x3C, - 36941 - 19968: jis0208<<14 | 0x29<<7 | 0x36, - 36942 - 19968: jis0208<<14 | 0x11<<7 | 0x40, - 36943 - 19968: jis0208<<14 | 0x4D<<7 | 0x00, - 36944 - 19968: jis0208<<14 | 0x4D<<7 | 0x01, - 36945 - 19968: jis0208<<14 | 0x4D<<7 | 0x02, - 36946 - 19968: jis0208<<14 | 0x4D<<7 | 0x03, - 36947 - 19968: jis0208<<14 | 0x25<<7 | 0x1A, - 36948 - 19968: jis0208<<14 | 0x22<<7 | 0x02, - 36949 - 19968: jis0208<<14 | 0x0F<<7 | 0x42, - 36950 - 19968: jis0208<<14 | 0x4D<<7 | 0x07, - 36952 - 19968: jis0208<<14 | 0x4D<<7 | 0x08, - 36953 - 19968: jis0208<<14 | 0x53<<7 | 0x02, - 36955 - 19968: jis0212<<14 | 0x40<<7 | 0x3D, - 36956 - 19968: jis0208<<14 | 0x21<<7 | 0x1C, - 36957 - 19968: jis0212<<14 | 0x40<<7 | 0x3E, - 36958 - 19968: jis0208<<14 | 0x4D<<7 | 0x09, - 36960 - 19968: jis0208<<14 | 0x10<<7 | 0x52, - 36961 - 19968: jis0208<<14 | 0x20<<7 | 0x2B, - 36962 - 19968: jis0212<<14 | 0x40<<7 | 0x3F, - 36963 - 19968: jis0208<<14 | 0x17<<7 | 0x0E, - 36965 - 19968: jis0208<<14 | 0x2C<<7 | 0x39, - 36966 - 19968: jis0212<<14 | 0x40<<7 | 0x40, - 36967 - 19968: jis0208<<14 | 0x5A<<7 | 0x58, - 36968 - 19968: jis0208<<14 | 0x4D<<7 | 0x0A, - 36969 - 19968: jis0208<<14 | 0x24<<7 | 0x0B, - 36972 - 19968: jis0212<<14 | 0x40<<7 | 0x42, - 36973 - 19968: jis0208<<14 | 0x20<<7 | 0x57, - 36974 - 19968: jis0208<<14 | 0x1B<<7 | 0x36, - 36975 - 19968: jis0208<<14 | 0x4D<<7 | 0x0B, - 36976 - 19968: jis0212<<14 | 0x40<<7 | 0x43, - 36978 - 19968: jis0208<<14 | 0x4D<<7 | 0x0E, - 36980 - 19968: jis0212<<14 | 0x40<<7 | 0x44, - 36981 - 19968: jis0208<<14 | 0x1C<<7 | 0x44, - 36982 - 19968: jis0208<<14 | 0x4D<<7 | 0x0C, - 36983 - 19968: jis0208<<14 | 0x20<<7 | 0x0A, - 36984 - 19968: jis0208<<14 | 0x20<<7 | 0x09, - 36985 - 19968: jis0212<<14 | 0x40<<7 | 0x45, - 36986 - 19968: jis0208<<14 | 0x0F<<7 | 0x43, - 36988 - 19968: jis0208<<14 | 0x2D<<7 | 0x2A, - 36989 - 19968: jis0208<<14 | 0x4D<<7 | 0x10, - 36991 - 19968: jis0208<<14 | 0x27<<7 | 0x51, - 36992 - 19968: jis0208<<14 | 0x4D<<7 | 0x12, - 36993 - 19968: jis0208<<14 | 0x4D<<7 | 0x11, - 36994 - 19968: jis0208<<14 | 0x4D<<7 | 0x0F, - 36995 - 19968: jis0208<<14 | 0x42<<7 | 0x43, - 36996 - 19968: jis0208<<14 | 0x13<<7 | 0x33, - 36997 - 19968: jis0212<<14 | 0x40<<7 | 0x46, - 36999 - 19968: jis0208<<14 | 0x4C<<7 | 0x4D, - 37000 - 19968: jis0212<<14 | 0x40<<7 | 0x47, - 37001 - 19968: jis0208<<14 | 0x4D<<7 | 0x14, - 37002 - 19968: jis0208<<14 | 0x4D<<7 | 0x13, - 37003 - 19968: jis0212<<14 | 0x40<<7 | 0x48, - 37004 - 19968: jis0212<<14 | 0x40<<7 | 0x49, - 37006 - 19968: jis0212<<14 | 0x40<<7 | 0x4A, - 37007 - 19968: jis0208<<14 | 0x4D<<7 | 0x15, - 37008 - 19968: jis0212<<14 | 0x40<<7 | 0x4B, - 37009 - 19968: jis0208<<14 | 0x2C<<7 | 0x17, - 37013 - 19968: jis0212<<14 | 0x40<<7 | 0x4C, - 37015 - 19968: jis0212<<14 | 0x40<<7 | 0x4D, - 37016 - 19968: jis0212<<14 | 0x40<<7 | 0x4E, - 37017 - 19968: jis0212<<14 | 0x40<<7 | 0x4F, - 37019 - 19968: jis0212<<14 | 0x40<<7 | 0x50, - 37024 - 19968: jis0212<<14 | 0x40<<7 | 0x51, - 37025 - 19968: jis0212<<14 | 0x40<<7 | 0x52, - 37026 - 19968: jis0212<<14 | 0x40<<7 | 0x53, - 37027 - 19968: jis0208<<14 | 0x25<<7 | 0x40, - 37029 - 19968: jis0212<<14 | 0x40<<7 | 0x54, - 37030 - 19968: jis0208<<14 | 0x2A<<7 | 0x0D, - 37032 - 19968: jis0208<<14 | 0x4D<<7 | 0x16, - 37034 - 19968: jis0208<<14 | 0x1B<<7 | 0x38, - 37039 - 19968: jis0208<<14 | 0x4D<<7 | 0x17, - 37040 - 19968: jis0212<<14 | 0x40<<7 | 0x55, - 37041 - 19968: jis0208<<14 | 0x4D<<7 | 0x18, - 37042 - 19968: jis0212<<14 | 0x40<<7 | 0x56, - 37043 - 19968: jis0212<<14 | 0x40<<7 | 0x57, - 37044 - 19968: jis0212<<14 | 0x40<<7 | 0x58, - 37045 - 19968: jis0208<<14 | 0x4D<<7 | 0x19, - 37046 - 19968: jis0212<<14 | 0x40<<7 | 0x59, - 37048 - 19968: jis0208<<14 | 0x24<<7 | 0x00, - 37053 - 19968: jis0212<<14 | 0x40<<7 | 0x5A, - 37054 - 19968: jis0212<<14 | 0x40<<7 | 0x5C, - 37057 - 19968: jis0208<<14 | 0x0F<<7 | 0x49, - 37059 - 19968: jis0212<<14 | 0x40<<7 | 0x5D, - 37060 - 19968: jis0212<<14 | 0x41<<7 | 0x00, - 37061 - 19968: jis0212<<14 | 0x41<<7 | 0x01, - 37063 - 19968: jis0212<<14 | 0x41<<7 | 0x02, - 37064 - 19968: jis0212<<14 | 0x41<<7 | 0x03, - 37066 - 19968: jis0208<<14 | 0x18<<7 | 0x38, - 37068 - 19968: jis0212<<14 | 0x40<<7 | 0x5B, - 37070 - 19968: jis0208<<14 | 0x2E<<7 | 0x19, - 37074 - 19968: jis0212<<14 | 0x41<<7 | 0x0C, - 37077 - 19968: jis0212<<14 | 0x41<<7 | 0x04, - 37079 - 19968: jis0212<<14 | 0x41<<7 | 0x05, - 37080 - 19968: jis0212<<14 | 0x41<<7 | 0x06, - 37081 - 19968: jis0212<<14 | 0x41<<7 | 0x07, - 37083 - 19968: jis0208<<14 | 0x4D<<7 | 0x1D, - 37084 - 19968: jis0212<<14 | 0x41<<7 | 0x08, - 37085 - 19968: jis0212<<14 | 0x41<<7 | 0x09, - 37086 - 19968: jis0208<<14 | 0x5A<<7 | 0x59, - 37087 - 19968: jis0212<<14 | 0x41<<7 | 0x0A, - 37089 - 19968: jis0208<<14 | 0x16<<7 | 0x13, - 37090 - 19968: jis0208<<14 | 0x4D<<7 | 0x1A, - 37092 - 19968: jis0208<<14 | 0x4D<<7 | 0x1B, - 37093 - 19968: jis0212<<14 | 0x41<<7 | 0x0B, - 37096 - 19968: jis0208<<14 | 0x28<<7 | 0x53, - 37099 - 19968: jis0212<<14 | 0x41<<7 | 0x0E, - 37101 - 19968: jis0208<<14 | 0x12<<7 | 0x33, - 37103 - 19968: jis0212<<14 | 0x41<<7 | 0x0F, - 37104 - 19968: jis0212<<14 | 0x41<<7 | 0x10, - 37108 - 19968: jis0212<<14 | 0x41<<7 | 0x11, - 37109 - 19968: jis0208<<14 | 0x2C<<7 | 0x18, - 37110 - 19968: jis0212<<14 | 0x41<<7 | 0x0D, - 37111 - 19968: jis0208<<14 | 0x15<<7 | 0x1E, - 37117 - 19968: jis0208<<14 | 0x24<<7 | 0x33, - 37118 - 19968: jis0212<<14 | 0x41<<7 | 0x12, - 37119 - 19968: jis0212<<14 | 0x41<<7 | 0x13, - 37120 - 19968: jis0212<<14 | 0x41<<7 | 0x14, - 37122 - 19968: jis0208<<14 | 0x4D<<7 | 0x1E, - 37124 - 19968: jis0212<<14 | 0x41<<7 | 0x15, - 37125 - 19968: jis0212<<14 | 0x41<<7 | 0x16, - 37126 - 19968: jis0212<<14 | 0x41<<7 | 0x17, - 37128 - 19968: jis0212<<14 | 0x41<<7 | 0x18, - 37133 - 19968: jis0212<<14 | 0x41<<7 | 0x19, - 37136 - 19968: jis0212<<14 | 0x41<<7 | 0x1A, - 37138 - 19968: jis0208<<14 | 0x4D<<7 | 0x1F, - 37140 - 19968: jis0212<<14 | 0x41<<7 | 0x1B, - 37141 - 19968: jis0208<<14 | 0x5A<<7 | 0x5B, - 37142 - 19968: jis0212<<14 | 0x41<<7 | 0x1C, - 37143 - 19968: jis0212<<14 | 0x41<<7 | 0x1D, - 37144 - 19968: jis0212<<14 | 0x41<<7 | 0x1E, - 37145 - 19968: jis0208<<14 | 0x4D<<7 | 0x20, - 37146 - 19968: jis0212<<14 | 0x41<<7 | 0x1F, - 37148 - 19968: jis0212<<14 | 0x41<<7 | 0x20, - 37150 - 19968: jis0212<<14 | 0x41<<7 | 0x21, - 37152 - 19968: jis0212<<14 | 0x41<<7 | 0x22, - 37154 - 19968: jis0212<<14 | 0x41<<7 | 0x24, - 37155 - 19968: jis0212<<14 | 0x41<<7 | 0x25, - 37157 - 19968: jis0212<<14 | 0x41<<7 | 0x23, - 37159 - 19968: jis0208<<14 | 0x5A<<7 | 0x5C, - 37161 - 19968: jis0212<<14 | 0x41<<7 | 0x27, - 37165 - 19968: jis0208<<14 | 0x24<<7 | 0x01, - 37166 - 19968: jis0212<<14 | 0x41<<7 | 0x28, - 37167 - 19968: jis0212<<14 | 0x41<<7 | 0x29, - 37168 - 19968: jis0208<<14 | 0x4D<<7 | 0x22, - 37169 - 19968: jis0212<<14 | 0x41<<7 | 0x2A, - 37170 - 19968: jis0208<<14 | 0x4D<<7 | 0x21, - 37172 - 19968: jis0212<<14 | 0x41<<7 | 0x2B, - 37174 - 19968: jis0212<<14 | 0x41<<7 | 0x2C, - 37175 - 19968: jis0212<<14 | 0x41<<7 | 0x2D, - 37177 - 19968: jis0212<<14 | 0x41<<7 | 0x2E, - 37178 - 19968: jis0212<<14 | 0x41<<7 | 0x2F, - 37180 - 19968: jis0212<<14 | 0x41<<7 | 0x30, - 37181 - 19968: jis0212<<14 | 0x41<<7 | 0x31, - 37187 - 19968: jis0212<<14 | 0x41<<7 | 0x32, - 37191 - 19968: jis0212<<14 | 0x41<<7 | 0x33, - 37192 - 19968: jis0212<<14 | 0x41<<7 | 0x34, - 37193 - 19968: jis0208<<14 | 0x25<<7 | 0x32, - 37194 - 19968: jis0208<<14 | 0x4D<<7 | 0x23, - 37195 - 19968: jis0208<<14 | 0x1C<<7 | 0x15, - 37196 - 19968: jis0208<<14 | 0x1B<<7 | 0x3F, - 37197 - 19968: jis0208<<14 | 0x26<<7 | 0x3A, - 37198 - 19968: jis0208<<14 | 0x22<<7 | 0x50, - 37199 - 19968: jis0212<<14 | 0x41<<7 | 0x35, - 37202 - 19968: jis0208<<14 | 0x1B<<7 | 0x51, - 37203 - 19968: jis0212<<14 | 0x41<<7 | 0x36, - 37204 - 19968: jis0208<<14 | 0x1E<<7 | 0x4B, - 37206 - 19968: jis0208<<14 | 0x4D<<7 | 0x24, - 37207 - 19968: jis0212<<14 | 0x41<<7 | 0x37, - 37208 - 19968: jis0208<<14 | 0x4D<<7 | 0x25, - 37209 - 19968: jis0212<<14 | 0x41<<7 | 0x38, - 37210 - 19968: jis0212<<14 | 0x41<<7 | 0x39, - 37211 - 19968: jis0212<<14 | 0x41<<7 | 0x3A, - 37217 - 19968: jis0212<<14 | 0x41<<7 | 0x3B, - 37218 - 19968: jis0208<<14 | 0x1E<<7 | 0x3C, - 37219 - 19968: jis0208<<14 | 0x4D<<7 | 0x26, - 37220 - 19968: jis0212<<14 | 0x41<<7 | 0x3C, - 37221 - 19968: jis0208<<14 | 0x4D<<7 | 0x27, - 37223 - 19968: jis0212<<14 | 0x41<<7 | 0x3D, - 37225 - 19968: jis0208<<14 | 0x4D<<7 | 0x28, - 37226 - 19968: jis0208<<14 | 0x2C<<7 | 0x4E, - 37228 - 19968: jis0208<<14 | 0x1C<<7 | 0x16, - 37229 - 19968: jis0212<<14 | 0x41<<7 | 0x3E, - 37234 - 19968: jis0208<<14 | 0x4D<<7 | 0x2A, - 37235 - 19968: jis0208<<14 | 0x4D<<7 | 0x29, - 37236 - 19968: jis0212<<14 | 0x41<<7 | 0x3F, - 37237 - 19968: jis0208<<14 | 0x18<<7 | 0x39, - 37239 - 19968: jis0208<<14 | 0x18<<7 | 0x52, - 37240 - 19968: jis0208<<14 | 0x1A<<7 | 0x1F, - 37241 - 19968: jis0212<<14 | 0x41<<7 | 0x40, - 37242 - 19968: jis0212<<14 | 0x41<<7 | 0x41, - 37243 - 19968: jis0212<<14 | 0x41<<7 | 0x42, - 37249 - 19968: jis0212<<14 | 0x41<<7 | 0x43, - 37250 - 19968: jis0208<<14 | 0x4D<<7 | 0x2D, - 37251 - 19968: jis0212<<14 | 0x41<<7 | 0x44, - 37253 - 19968: jis0212<<14 | 0x41<<7 | 0x45, - 37254 - 19968: jis0212<<14 | 0x41<<7 | 0x46, - 37255 - 19968: jis0208<<14 | 0x1C<<7 | 0x45, - 37257 - 19968: jis0208<<14 | 0x4D<<7 | 0x2C, - 37258 - 19968: jis0212<<14 | 0x41<<7 | 0x47, - 37259 - 19968: jis0208<<14 | 0x4D<<7 | 0x2B, - 37261 - 19968: jis0208<<14 | 0x21<<7 | 0x48, - 37262 - 19968: jis0212<<14 | 0x41<<7 | 0x48, - 37264 - 19968: jis0208<<14 | 0x17<<7 | 0x4E, - 37265 - 19968: jis0212<<14 | 0x41<<7 | 0x49, - 37266 - 19968: jis0208<<14 | 0x1F<<7 | 0x22, - 37267 - 19968: jis0212<<14 | 0x41<<7 | 0x4A, - 37268 - 19968: jis0212<<14 | 0x41<<7 | 0x4B, - 37269 - 19968: jis0212<<14 | 0x41<<7 | 0x4C, - 37271 - 19968: jis0208<<14 | 0x27<<7 | 0x0F, - 37272 - 19968: jis0212<<14 | 0x41<<7 | 0x4D, - 37276 - 19968: jis0208<<14 | 0x1C<<7 | 0x18, - 37278 - 19968: jis0212<<14 | 0x41<<7 | 0x4E, - 37281 - 19968: jis0212<<14 | 0x41<<7 | 0x4F, - 37282 - 19968: jis0208<<14 | 0x4D<<7 | 0x2E, - 37284 - 19968: jis0208<<14 | 0x1D<<7 | 0x3E, - 37286 - 19968: jis0212<<14 | 0x41<<7 | 0x50, - 37288 - 19968: jis0212<<14 | 0x41<<7 | 0x51, - 37290 - 19968: jis0208<<14 | 0x4D<<7 | 0x31, - 37291 - 19968: jis0208<<14 | 0x4D<<7 | 0x2F, - 37292 - 19968: jis0212<<14 | 0x41<<7 | 0x52, - 37293 - 19968: jis0212<<14 | 0x41<<7 | 0x53, - 37294 - 19968: jis0212<<14 | 0x41<<7 | 0x54, - 37295 - 19968: jis0208<<14 | 0x4D<<7 | 0x30, - 37296 - 19968: jis0212<<14 | 0x41<<7 | 0x55, - 37297 - 19968: jis0212<<14 | 0x41<<7 | 0x56, - 37298 - 19968: jis0212<<14 | 0x41<<7 | 0x57, - 37299 - 19968: jis0212<<14 | 0x41<<7 | 0x58, - 37300 - 19968: jis0208<<14 | 0x4D<<7 | 0x33, - 37301 - 19968: jis0208<<14 | 0x4D<<7 | 0x32, - 37302 - 19968: jis0212<<14 | 0x41<<7 | 0x59, - 37304 - 19968: jis0208<<14 | 0x1D<<7 | 0x59, - 37306 - 19968: jis0208<<14 | 0x4D<<7 | 0x34, - 37307 - 19968: jis0212<<14 | 0x41<<7 | 0x5A, - 37308 - 19968: jis0212<<14 | 0x41<<7 | 0x5B, - 37309 - 19968: jis0212<<14 | 0x41<<7 | 0x5C, - 37311 - 19968: jis0212<<14 | 0x41<<7 | 0x5D, - 37312 - 19968: jis0208<<14 | 0x4D<<7 | 0x35, - 37313 - 19968: jis0208<<14 | 0x4D<<7 | 0x36, - 37314 - 19968: jis0212<<14 | 0x42<<7 | 0x00, - 37315 - 19968: jis0212<<14 | 0x42<<7 | 0x01, - 37317 - 19968: jis0212<<14 | 0x42<<7 | 0x02, - 37318 - 19968: jis0208<<14 | 0x27<<7 | 0x2F, - 37319 - 19968: jis0208<<14 | 0x19<<7 | 0x32, - 37320 - 19968: jis0208<<14 | 0x1B<<7 | 0x40, - 37321 - 19968: jis0208<<14 | 0x4D<<7 | 0x37, - 37323 - 19968: jis0208<<14 | 0x4D<<7 | 0x38, - 37324 - 19968: jis0208<<14 | 0x2D<<7 | 0x03, - 37325 - 19968: jis0208<<14 | 0x1C<<7 | 0x24, - 37326 - 19968: jis0208<<14 | 0x2B<<7 | 0x4D, - 37327 - 19968: jis0208<<14 | 0x2D<<7 | 0x2B, - 37328 - 19968: jis0208<<14 | 0x4D<<7 | 0x39, - 37329 - 19968: jis0208<<14 | 0x15<<7 | 0x41, - 37331 - 19968: jis0212<<14 | 0x42<<7 | 0x03, - 37332 - 19968: jis0212<<14 | 0x42<<7 | 0x04, - 37334 - 19968: jis0208<<14 | 0x4D<<7 | 0x3A, - 37335 - 19968: jis0208<<14 | 0x5B<<7 | 0x00, - 37336 - 19968: jis0208<<14 | 0x24<<7 | 0x02, - 37337 - 19968: jis0212<<14 | 0x42<<7 | 0x06, - 37338 - 19968: jis0208<<14 | 0x5A<<7 | 0x5D, - 37339 - 19968: jis0208<<14 | 0x4D<<7 | 0x3D, - 37340 - 19968: jis0208<<14 | 0x12<<7 | 0x57, - 37341 - 19968: jis0208<<14 | 0x1E<<7 | 0x2A, - 37342 - 19968: jis0208<<14 | 0x5B<<7 | 0x01, - 37343 - 19968: jis0208<<14 | 0x4D<<7 | 0x3B, - 37345 - 19968: jis0208<<14 | 0x4D<<7 | 0x3C, - 37347 - 19968: jis0208<<14 | 0x23<<7 | 0x3F, - 37348 - 19968: jis0208<<14 | 0x5B<<7 | 0x04, - 37349 - 19968: jis0208<<14 | 0x5B<<7 | 0x05, - 37350 - 19968: jis0208<<14 | 0x2A<<7 | 0x34, - 37351 - 19968: jis0208<<14 | 0x15<<7 | 0x5B, - 37353 - 19968: jis0212<<14 | 0x42<<7 | 0x0B, - 37354 - 19968: jis0212<<14 | 0x42<<7 | 0x0C, - 37356 - 19968: jis0212<<14 | 0x42<<7 | 0x0D, - 37357 - 19968: jis0208<<14 | 0x5B<<7 | 0x02, - 37358 - 19968: jis0208<<14 | 0x5B<<7 | 0x03, - 37359 - 19968: jis0212<<14 | 0x42<<7 | 0x10, - 37360 - 19968: jis0212<<14 | 0x42<<7 | 0x11, - 37361 - 19968: jis0212<<14 | 0x42<<7 | 0x12, - 37365 - 19968: jis0208<<14 | 0x4D<<7 | 0x3F, - 37366 - 19968: jis0208<<14 | 0x4D<<7 | 0x40, - 37367 - 19968: jis0212<<14 | 0x42<<7 | 0x13, - 37369 - 19968: jis0212<<14 | 0x42<<7 | 0x14, - 37371 - 19968: jis0212<<14 | 0x42<<7 | 0x15, - 37372 - 19968: jis0208<<14 | 0x4D<<7 | 0x3E, - 37373 - 19968: jis0212<<14 | 0x42<<7 | 0x16, - 37375 - 19968: jis0208<<14 | 0x4D<<7 | 0x42, - 37376 - 19968: jis0212<<14 | 0x42<<7 | 0x17, - 37377 - 19968: jis0212<<14 | 0x42<<7 | 0x18, - 37380 - 19968: jis0212<<14 | 0x42<<7 | 0x19, - 37381 - 19968: jis0212<<14 | 0x42<<7 | 0x1A, - 37382 - 19968: jis0208<<14 | 0x5B<<7 | 0x06, - 37383 - 19968: jis0212<<14 | 0x42<<7 | 0x1C, - 37385 - 19968: jis0212<<14 | 0x42<<7 | 0x1D, - 37386 - 19968: jis0208<<14 | 0x5B<<7 | 0x08, - 37388 - 19968: jis0212<<14 | 0x42<<7 | 0x1F, - 37389 - 19968: jis0208<<14 | 0x25<<7 | 0x3E, - 37390 - 19968: jis0208<<14 | 0x12<<7 | 0x22, - 37392 - 19968: jis0208<<14 | 0x5B<<7 | 0x07, - 37393 - 19968: jis0208<<14 | 0x4D<<7 | 0x46, - 37394 - 19968: jis0212<<14 | 0x42<<7 | 0x21, - 37395 - 19968: jis0212<<14 | 0x42<<7 | 0x22, - 37396 - 19968: jis0208<<14 | 0x4D<<7 | 0x43, - 37397 - 19968: jis0208<<14 | 0x4D<<7 | 0x45, - 37398 - 19968: jis0212<<14 | 0x42<<7 | 0x23, - 37400 - 19968: jis0212<<14 | 0x42<<7 | 0x24, - 37404 - 19968: jis0212<<14 | 0x42<<7 | 0x25, - 37405 - 19968: jis0212<<14 | 0x42<<7 | 0x26, - 37406 - 19968: jis0208<<14 | 0x4D<<7 | 0x41, - 37411 - 19968: jis0212<<14 | 0x42<<7 | 0x27, - 37412 - 19968: jis0212<<14 | 0x42<<7 | 0x28, - 37413 - 19968: jis0212<<14 | 0x42<<7 | 0x29, - 37414 - 19968: jis0212<<14 | 0x42<<7 | 0x2A, - 37416 - 19968: jis0212<<14 | 0x42<<7 | 0x2B, - 37417 - 19968: jis0208<<14 | 0x4E<<7 | 0x2E, - 37420 - 19968: jis0208<<14 | 0x4D<<7 | 0x44, - 37422 - 19968: jis0212<<14 | 0x42<<7 | 0x2C, - 37423 - 19968: jis0212<<14 | 0x42<<7 | 0x2D, - 37424 - 19968: jis0212<<14 | 0x42<<7 | 0x2E, - 37427 - 19968: jis0212<<14 | 0x42<<7 | 0x2F, - 37428 - 19968: jis0208<<14 | 0x2D<<7 | 0x4A, - 37429 - 19968: jis0212<<14 | 0x42<<7 | 0x30, - 37430 - 19968: jis0212<<14 | 0x42<<7 | 0x31, - 37431 - 19968: jis0208<<14 | 0x17<<7 | 0x39, - 37432 - 19968: jis0212<<14 | 0x42<<7 | 0x32, - 37433 - 19968: jis0208<<14 | 0x5B<<7 | 0x0F, - 37434 - 19968: jis0208<<14 | 0x5B<<7 | 0x09, - 37436 - 19968: jis0208<<14 | 0x5B<<7 | 0x0B, - 37438 - 19968: jis0212<<14 | 0x42<<7 | 0x36, - 37439 - 19968: jis0208<<14 | 0x4D<<7 | 0x4E, - 37440 - 19968: jis0208<<14 | 0x5B<<7 | 0x0A, - 37442 - 19968: jis0212<<14 | 0x42<<7 | 0x38, - 37443 - 19968: jis0212<<14 | 0x42<<7 | 0x39, - 37444 - 19968: jis0208<<14 | 0x24<<7 | 0x13, - 37445 - 19968: jis0208<<14 | 0x4D<<7 | 0x49, - 37446 - 19968: jis0212<<14 | 0x42<<7 | 0x3A, - 37447 - 19968: jis0212<<14 | 0x42<<7 | 0x3B, - 37448 - 19968: jis0208<<14 | 0x4D<<7 | 0x4C, - 37449 - 19968: jis0208<<14 | 0x4D<<7 | 0x4A, - 37450 - 19968: jis0212<<14 | 0x42<<7 | 0x3C, - 37451 - 19968: jis0208<<14 | 0x4D<<7 | 0x4F, - 37453 - 19968: jis0212<<14 | 0x42<<7 | 0x3D, - 37454 - 19968: jis0208<<14 | 0x5B<<7 | 0x0C, - 37455 - 19968: jis0212<<14 | 0x42<<7 | 0x3F, - 37456 - 19968: jis0208<<14 | 0x4D<<7 | 0x50, - 37457 - 19968: jis0208<<14 | 0x5B<<7 | 0x0E, - 37463 - 19968: jis0208<<14 | 0x4D<<7 | 0x48, - 37464 - 19968: jis0212<<14 | 0x42<<7 | 0x41, - 37465 - 19968: jis0208<<14 | 0x5B<<7 | 0x0D, - 37466 - 19968: jis0208<<14 | 0x4D<<7 | 0x55, - 37467 - 19968: jis0208<<14 | 0x10<<7 | 0x53, - 37468 - 19968: jis0212<<14 | 0x42<<7 | 0x43, - 37469 - 19968: jis0212<<14 | 0x42<<7 | 0x44, - 37470 - 19968: jis0208<<14 | 0x4D<<7 | 0x47, - 37472 - 19968: jis0212<<14 | 0x42<<7 | 0x45, - 37473 - 19968: jis0212<<14 | 0x42<<7 | 0x46, - 37474 - 19968: jis0208<<14 | 0x27<<7 | 0x0C, - 37476 - 19968: jis0208<<14 | 0x4D<<7 | 0x4B, - 37477 - 19968: jis0212<<14 | 0x42<<7 | 0x47, - 37478 - 19968: jis0208<<14 | 0x1D<<7 | 0x3F, - 37479 - 19968: jis0208<<14 | 0x5B<<7 | 0x10, - 37480 - 19968: jis0212<<14 | 0x42<<7 | 0x49, - 37481 - 19968: jis0212<<14 | 0x42<<7 | 0x4A, - 37486 - 19968: jis0212<<14 | 0x42<<7 | 0x4B, - 37487 - 19968: jis0212<<14 | 0x42<<7 | 0x4C, - 37488 - 19968: jis0212<<14 | 0x42<<7 | 0x4D, - 37489 - 19968: jis0208<<14 | 0x18<<7 | 0x3A, - 37493 - 19968: jis0212<<14 | 0x42<<7 | 0x4E, - 37494 - 19968: jis0212<<14 | 0x42<<7 | 0x4F, - 37495 - 19968: jis0208<<14 | 0x5B<<7 | 0x12, - 37496 - 19968: jis0208<<14 | 0x5B<<7 | 0x13, - 37497 - 19968: jis0212<<14 | 0x42<<7 | 0x52, - 37499 - 19968: jis0212<<14 | 0x42<<7 | 0x53, - 37500 - 19968: jis0212<<14 | 0x42<<7 | 0x54, - 37501 - 19968: jis0212<<14 | 0x42<<7 | 0x55, - 37502 - 19968: jis0208<<14 | 0x2A<<7 | 0x27, - 37503 - 19968: jis0212<<14 | 0x42<<7 | 0x56, - 37504 - 19968: jis0208<<14 | 0x15<<7 | 0x43, - 37507 - 19968: jis0208<<14 | 0x1C<<7 | 0x25, - 37509 - 19968: jis0208<<14 | 0x25<<7 | 0x1B, - 37512 - 19968: jis0208<<14 | 0x58<<7 | 0x03, - 37513 - 19968: jis0212<<14 | 0x42<<7 | 0x58, - 37514 - 19968: jis0212<<14 | 0x42<<7 | 0x59, - 37517 - 19968: jis0212<<14 | 0x42<<7 | 0x5A, - 37518 - 19968: jis0212<<14 | 0x42<<7 | 0x5B, - 37521 - 19968: jis0208<<14 | 0x20<<7 | 0x0C, - 37522 - 19968: jis0212<<14 | 0x42<<7 | 0x5C, - 37523 - 19968: jis0208<<14 | 0x4D<<7 | 0x53, - 37525 - 19968: jis0208<<14 | 0x4D<<7 | 0x4D, - 37526 - 19968: jis0208<<14 | 0x4D<<7 | 0x52, - 37527 - 19968: jis0212<<14 | 0x42<<7 | 0x5D, - 37528 - 19968: jis0208<<14 | 0x2B<<7 | 0x22, - 37529 - 19968: jis0212<<14 | 0x43<<7 | 0x00, - 37530 - 19968: jis0208<<14 | 0x23<<7 | 0x17, - 37531 - 19968: jis0208<<14 | 0x4D<<7 | 0x54, - 37532 - 19968: jis0208<<14 | 0x4D<<7 | 0x51, - 37535 - 19968: jis0212<<14 | 0x43<<7 | 0x01, - 37536 - 19968: jis0212<<14 | 0x43<<7 | 0x02, - 37540 - 19968: jis0212<<14 | 0x43<<7 | 0x03, - 37541 - 19968: jis0212<<14 | 0x43<<7 | 0x04, - 37543 - 19968: jis0208<<14 | 0x5B<<7 | 0x11, - 37544 - 19968: jis0212<<14 | 0x43<<7 | 0x06, - 37547 - 19968: jis0212<<14 | 0x43<<7 | 0x07, - 37549 - 19968: jis0208<<14 | 0x20<<7 | 0x0B, - 37551 - 19968: jis0212<<14 | 0x43<<7 | 0x08, - 37554 - 19968: jis0212<<14 | 0x43<<7 | 0x09, - 37558 - 19968: jis0212<<14 | 0x43<<7 | 0x0A, - 37559 - 19968: jis0208<<14 | 0x4D<<7 | 0x58, - 37560 - 19968: jis0212<<14 | 0x43<<7 | 0x0B, - 37561 - 19968: jis0208<<14 | 0x4D<<7 | 0x57, - 37562 - 19968: jis0212<<14 | 0x43<<7 | 0x0C, - 37563 - 19968: jis0212<<14 | 0x43<<7 | 0x0D, - 37564 - 19968: jis0212<<14 | 0x43<<7 | 0x0E, - 37565 - 19968: jis0212<<14 | 0x43<<7 | 0x0F, - 37567 - 19968: jis0212<<14 | 0x43<<7 | 0x10, - 37568 - 19968: jis0212<<14 | 0x43<<7 | 0x11, - 37569 - 19968: jis0212<<14 | 0x43<<7 | 0x12, - 37570 - 19968: jis0212<<14 | 0x43<<7 | 0x13, - 37571 - 19968: jis0212<<14 | 0x43<<7 | 0x14, - 37573 - 19968: jis0212<<14 | 0x43<<7 | 0x15, - 37574 - 19968: jis0212<<14 | 0x43<<7 | 0x16, - 37575 - 19968: jis0212<<14 | 0x43<<7 | 0x17, - 37576 - 19968: jis0212<<14 | 0x43<<7 | 0x18, - 37579 - 19968: jis0212<<14 | 0x43<<7 | 0x19, - 37580 - 19968: jis0212<<14 | 0x43<<7 | 0x1A, - 37581 - 19968: jis0212<<14 | 0x43<<7 | 0x1B, - 37582 - 19968: jis0212<<14 | 0x43<<7 | 0x1C, - 37583 - 19968: jis0208<<14 | 0x4D<<7 | 0x56, - 37584 - 19968: jis0208<<14 | 0x5B<<7 | 0x17, - 37586 - 19968: jis0208<<14 | 0x2A<<7 | 0x0E, - 37587 - 19968: jis0208<<14 | 0x5B<<7 | 0x1B, - 37589 - 19968: jis0208<<14 | 0x5B<<7 | 0x19, - 37591 - 19968: jis0208<<14 | 0x5B<<7 | 0x15, - 37592 - 19968: jis0212<<14 | 0x43<<7 | 0x21, - 37593 - 19968: jis0208<<14 | 0x5B<<7 | 0x16, - 37596 - 19968: jis0212<<14 | 0x43<<7 | 0x23, - 37597 - 19968: jis0212<<14 | 0x43<<7 | 0x24, - 37599 - 19968: jis0212<<14 | 0x43<<7 | 0x25, - 37600 - 19968: jis0208<<14 | 0x5B<<7 | 0x1A, - 37601 - 19968: jis0212<<14 | 0x43<<7 | 0x27, - 37603 - 19968: jis0212<<14 | 0x43<<7 | 0x28, - 37604 - 19968: jis0208<<14 | 0x1C<<7 | 0x5A, - 37605 - 19968: jis0212<<14 | 0x43<<7 | 0x29, - 37607 - 19968: jis0208<<14 | 0x5B<<7 | 0x14, - 37608 - 19968: jis0212<<14 | 0x43<<7 | 0x2B, - 37609 - 19968: jis0208<<14 | 0x4D<<7 | 0x59, - 37610 - 19968: jis0208<<14 | 0x29<<7 | 0x3E, - 37612 - 19968: jis0212<<14 | 0x43<<7 | 0x2C, - 37613 - 19968: jis0208<<14 | 0x10<<7 | 0x33, - 37614 - 19968: jis0212<<14 | 0x43<<7 | 0x2D, - 37616 - 19968: jis0212<<14 | 0x43<<7 | 0x2E, - 37618 - 19968: jis0208<<14 | 0x28<<7 | 0x25, - 37619 - 19968: jis0208<<14 | 0x22<<7 | 0x51, - 37624 - 19968: jis0208<<14 | 0x14<<7 | 0x57, - 37625 - 19968: jis0208<<14 | 0x58<<7 | 0x09, - 37626 - 19968: jis0208<<14 | 0x4D<<7 | 0x5B, - 37627 - 19968: jis0208<<14 | 0x5B<<7 | 0x1E, - 37628 - 19968: jis0208<<14 | 0x18<<7 | 0x3C, - 37631 - 19968: jis0208<<14 | 0x5B<<7 | 0x21, - 37632 - 19968: jis0212<<14 | 0x43<<7 | 0x32, - 37634 - 19968: jis0208<<14 | 0x5B<<7 | 0x23, - 37638 - 19968: jis0208<<14 | 0x1A<<7 | 0x0B, - 37640 - 19968: jis0212<<14 | 0x43<<7 | 0x34, - 37645 - 19968: jis0212<<14 | 0x43<<7 | 0x35, - 37647 - 19968: jis0208<<14 | 0x4D<<7 | 0x5A, - 37648 - 19968: jis0208<<14 | 0x1E<<7 | 0x4C, - 37649 - 19968: jis0212<<14 | 0x43<<7 | 0x36, - 37652 - 19968: jis0212<<14 | 0x43<<7 | 0x37, - 37653 - 19968: jis0212<<14 | 0x43<<7 | 0x38, - 37656 - 19968: jis0208<<14 | 0x1E<<7 | 0x4D, - 37657 - 19968: jis0208<<14 | 0x4E<<7 | 0x00, - 37658 - 19968: jis0208<<14 | 0x4E<<7 | 0x02, - 37660 - 19968: jis0212<<14 | 0x43<<7 | 0x39, - 37661 - 19968: jis0208<<14 | 0x5B<<7 | 0x22, - 37662 - 19968: jis0208<<14 | 0x5B<<7 | 0x20, - 37663 - 19968: jis0212<<14 | 0x43<<7 | 0x3C, - 37664 - 19968: jis0208<<14 | 0x1D<<7 | 0x5A, - 37665 - 19968: jis0208<<14 | 0x5B<<7 | 0x1D, - 37666 - 19968: jis0208<<14 | 0x4E<<7 | 0x01, - 37667 - 19968: jis0208<<14 | 0x4E<<7 | 0x03, - 37668 - 19968: jis0212<<14 | 0x43<<7 | 0x3E, - 37669 - 19968: jis0208<<14 | 0x5B<<7 | 0x1C, - 37670 - 19968: jis0208<<14 | 0x15<<7 | 0x32, - 37671 - 19968: jis0212<<14 | 0x43<<7 | 0x40, - 37672 - 19968: jis0208<<14 | 0x28<<7 | 0x24, - 37673 - 19968: jis0212<<14 | 0x43<<7 | 0x41, - 37674 - 19968: jis0212<<14 | 0x43<<7 | 0x42, - 37675 - 19968: jis0208<<14 | 0x1B<<7 | 0x41, - 37676 - 19968: jis0208<<14 | 0x2E<<7 | 0x02, - 37678 - 19968: jis0208<<14 | 0x4D<<7 | 0x5D, - 37679 - 19968: jis0208<<14 | 0x19<<7 | 0x57, - 37682 - 19968: jis0208<<14 | 0x2E<<7 | 0x1E, - 37683 - 19968: jis0212<<14 | 0x43<<7 | 0x43, - 37684 - 19968: jis0212<<14 | 0x43<<7 | 0x44, - 37685 - 19968: jis0208<<14 | 0x4E<<7 | 0x05, - 37686 - 19968: jis0212<<14 | 0x43<<7 | 0x45, - 37687 - 19968: jis0212<<14 | 0x43<<7 | 0x46, - 37690 - 19968: jis0208<<14 | 0x4E<<7 | 0x04, - 37691 - 19968: jis0208<<14 | 0x4E<<7 | 0x06, - 37700 - 19968: jis0208<<14 | 0x4D<<7 | 0x5C, - 37703 - 19968: jis0212<<14 | 0x43<<7 | 0x47, - 37704 - 19968: jis0208<<14 | 0x58<<7 | 0x02, - 37705 - 19968: jis0212<<14 | 0x43<<7 | 0x49, - 37707 - 19968: jis0208<<14 | 0x25<<7 | 0x48, - 37709 - 19968: jis0208<<14 | 0x24<<7 | 0x34, - 37712 - 19968: jis0212<<14 | 0x43<<7 | 0x4A, - 37713 - 19968: jis0212<<14 | 0x43<<7 | 0x4B, - 37714 - 19968: jis0212<<14 | 0x43<<7 | 0x4C, - 37716 - 19968: jis0208<<14 | 0x23<<7 | 0x36, - 37717 - 19968: jis0212<<14 | 0x43<<7 | 0x4D, - 37718 - 19968: jis0208<<14 | 0x4E<<7 | 0x0B, - 37719 - 19968: jis0208<<14 | 0x5B<<7 | 0x25, - 37720 - 19968: jis0212<<14 | 0x43<<7 | 0x4F, - 37722 - 19968: jis0212<<14 | 0x43<<7 | 0x50, - 37723 - 19968: jis0208<<14 | 0x22<<7 | 0x22, - 37724 - 19968: jis0208<<14 | 0x4E<<7 | 0x07, - 37726 - 19968: jis0212<<14 | 0x43<<7 | 0x51, - 37728 - 19968: jis0208<<14 | 0x4E<<7 | 0x08, - 37732 - 19968: jis0212<<14 | 0x43<<7 | 0x52, - 37733 - 19968: jis0212<<14 | 0x43<<7 | 0x53, - 37735 - 19968: jis0212<<14 | 0x43<<7 | 0x54, - 37737 - 19968: jis0212<<14 | 0x43<<7 | 0x55, - 37738 - 19968: jis0212<<14 | 0x43<<7 | 0x56, - 37740 - 19968: jis0208<<14 | 0x16<<7 | 0x0C, - 37741 - 19968: jis0212<<14 | 0x43<<7 | 0x57, - 37742 - 19968: jis0208<<14 | 0x4E<<7 | 0x0A, - 37743 - 19968: jis0212<<14 | 0x43<<7 | 0x58, - 37744 - 19968: jis0208<<14 | 0x5B<<7 | 0x24, - 37745 - 19968: jis0212<<14 | 0x43<<7 | 0x5A, - 37747 - 19968: jis0212<<14 | 0x43<<7 | 0x5B, - 37748 - 19968: jis0212<<14 | 0x43<<7 | 0x5C, - 37749 - 19968: jis0208<<14 | 0x17<<7 | 0x0F, - 37750 - 19968: jis0212<<14 | 0x43<<7 | 0x5D, - 37754 - 19968: jis0212<<14 | 0x44<<7 | 0x00, - 37756 - 19968: jis0208<<14 | 0x4E<<7 | 0x09, - 37757 - 19968: jis0212<<14 | 0x44<<7 | 0x01, - 37758 - 19968: jis0208<<14 | 0x1D<<7 | 0x40, - 37759 - 19968: jis0212<<14 | 0x44<<7 | 0x02, - 37760 - 19968: jis0212<<14 | 0x44<<7 | 0x03, - 37761 - 19968: jis0212<<14 | 0x44<<7 | 0x04, - 37762 - 19968: jis0212<<14 | 0x44<<7 | 0x05, - 37768 - 19968: jis0212<<14 | 0x44<<7 | 0x06, - 37770 - 19968: jis0212<<14 | 0x44<<7 | 0x07, - 37771 - 19968: jis0212<<14 | 0x44<<7 | 0x08, - 37772 - 19968: jis0208<<14 | 0x12<<7 | 0x58, - 37773 - 19968: jis0212<<14 | 0x44<<7 | 0x09, - 37775 - 19968: jis0212<<14 | 0x44<<7 | 0x0A, - 37778 - 19968: jis0212<<14 | 0x44<<7 | 0x0B, - 37780 - 19968: jis0208<<14 | 0x4E<<7 | 0x0F, - 37781 - 19968: jis0212<<14 | 0x44<<7 | 0x0C, - 37782 - 19968: jis0208<<14 | 0x19<<7 | 0x1E, - 37783 - 19968: jis0208<<14 | 0x20<<7 | 0x58, - 37784 - 19968: jis0212<<14 | 0x44<<7 | 0x0D, - 37786 - 19968: jis0208<<14 | 0x23<<7 | 0x29, - 37787 - 19968: jis0212<<14 | 0x44<<7 | 0x0E, - 37790 - 19968: jis0212<<14 | 0x44<<7 | 0x0F, - 37793 - 19968: jis0212<<14 | 0x44<<7 | 0x10, - 37795 - 19968: jis0212<<14 | 0x44<<7 | 0x11, - 37796 - 19968: jis0208<<14 | 0x5B<<7 | 0x26, - 37798 - 19968: jis0212<<14 | 0x44<<7 | 0x13, - 37799 - 19968: jis0208<<14 | 0x12<<7 | 0x1A, - 37800 - 19968: jis0212<<14 | 0x44<<7 | 0x14, - 37801 - 19968: jis0212<<14 | 0x44<<7 | 0x1A, - 37803 - 19968: jis0212<<14 | 0x44<<7 | 0x15, - 37804 - 19968: jis0208<<14 | 0x4E<<7 | 0x0D, - 37805 - 19968: jis0208<<14 | 0x4E<<7 | 0x0E, - 37806 - 19968: jis0208<<14 | 0x23<<7 | 0x22, - 37808 - 19968: jis0208<<14 | 0x4E<<7 | 0x0C, - 37812 - 19968: jis0212<<14 | 0x44<<7 | 0x16, - 37813 - 19968: jis0212<<14 | 0x44<<7 | 0x17, - 37814 - 19968: jis0212<<14 | 0x44<<7 | 0x18, - 37817 - 19968: jis0208<<14 | 0x4E<<7 | 0x10, - 37818 - 19968: jis0212<<14 | 0x44<<7 | 0x19, - 37825 - 19968: jis0212<<14 | 0x44<<7 | 0x1B, - 37827 - 19968: jis0208<<14 | 0x4E<<7 | 0x16, - 37828 - 19968: jis0212<<14 | 0x44<<7 | 0x1C, - 37829 - 19968: jis0212<<14 | 0x44<<7 | 0x1D, - 37830 - 19968: jis0208<<14 | 0x5B<<7 | 0x27, - 37831 - 19968: jis0212<<14 | 0x44<<7 | 0x1F, - 37832 - 19968: jis0208<<14 | 0x4E<<7 | 0x19, - 37833 - 19968: jis0212<<14 | 0x44<<7 | 0x20, - 37834 - 19968: jis0212<<14 | 0x44<<7 | 0x21, - 37835 - 19968: jis0212<<14 | 0x44<<7 | 0x22, - 37836 - 19968: jis0212<<14 | 0x44<<7 | 0x23, - 37837 - 19968: jis0212<<14 | 0x44<<7 | 0x24, - 37840 - 19968: jis0208<<14 | 0x4E<<7 | 0x18, - 37841 - 19968: jis0208<<14 | 0x24<<7 | 0x0C, - 37843 - 19968: jis0212<<14 | 0x44<<7 | 0x25, - 37846 - 19968: jis0208<<14 | 0x4E<<7 | 0x11, - 37847 - 19968: jis0208<<14 | 0x4E<<7 | 0x12, - 37848 - 19968: jis0208<<14 | 0x4E<<7 | 0x15, - 37849 - 19968: jis0212<<14 | 0x44<<7 | 0x26, - 37852 - 19968: jis0212<<14 | 0x44<<7 | 0x27, - 37853 - 19968: jis0208<<14 | 0x4E<<7 | 0x17, - 37854 - 19968: jis0208<<14 | 0x5B<<7 | 0x28, - 37855 - 19968: jis0212<<14 | 0x44<<7 | 0x29, - 37857 - 19968: jis0208<<14 | 0x15<<7 | 0x1F, - 37858 - 19968: jis0212<<14 | 0x44<<7 | 0x2A, - 37860 - 19968: jis0208<<14 | 0x4E<<7 | 0x1A, - 37861 - 19968: jis0208<<14 | 0x4E<<7 | 0x14, - 37862 - 19968: jis0212<<14 | 0x44<<7 | 0x2B, - 37863 - 19968: jis0212<<14 | 0x44<<7 | 0x2C, - 37864 - 19968: jis0208<<14 | 0x4E<<7 | 0x13, - 37879 - 19968: jis0212<<14 | 0x44<<7 | 0x2E, - 37880 - 19968: jis0208<<14 | 0x5B<<7 | 0x29, - 37881 - 19968: jis0212<<14 | 0x44<<7 | 0x2D, - 37882 - 19968: jis0212<<14 | 0x44<<7 | 0x30, - 37883 - 19968: jis0212<<14 | 0x44<<7 | 0x31, - 37885 - 19968: jis0212<<14 | 0x44<<7 | 0x32, - 37889 - 19968: jis0212<<14 | 0x44<<7 | 0x33, - 37890 - 19968: jis0212<<14 | 0x44<<7 | 0x34, - 37891 - 19968: jis0208<<14 | 0x4E<<7 | 0x1E, - 37892 - 19968: jis0212<<14 | 0x44<<7 | 0x35, - 37895 - 19968: jis0208<<14 | 0x4E<<7 | 0x1F, - 37896 - 19968: jis0212<<14 | 0x44<<7 | 0x36, - 37897 - 19968: jis0212<<14 | 0x44<<7 | 0x37, - 37901 - 19968: jis0212<<14 | 0x44<<7 | 0x38, - 37902 - 19968: jis0212<<14 | 0x44<<7 | 0x39, - 37903 - 19968: jis0212<<14 | 0x44<<7 | 0x3A, - 37904 - 19968: jis0208<<14 | 0x4E<<7 | 0x20, - 37907 - 19968: jis0208<<14 | 0x4E<<7 | 0x1D, - 37908 - 19968: jis0208<<14 | 0x4E<<7 | 0x1C, - 37909 - 19968: jis0212<<14 | 0x44<<7 | 0x3B, - 37910 - 19968: jis0212<<14 | 0x44<<7 | 0x3C, - 37911 - 19968: jis0212<<14 | 0x44<<7 | 0x3D, - 37912 - 19968: jis0208<<14 | 0x1D<<7 | 0x41, - 37913 - 19968: jis0208<<14 | 0x25<<7 | 0x09, - 37914 - 19968: jis0208<<14 | 0x4E<<7 | 0x1B, - 37919 - 19968: jis0212<<14 | 0x44<<7 | 0x3E, - 37921 - 19968: jis0208<<14 | 0x4E<<7 | 0x24, - 37931 - 19968: jis0208<<14 | 0x4E<<7 | 0x22, - 37934 - 19968: jis0212<<14 | 0x44<<7 | 0x3F, - 37935 - 19968: jis0212<<14 | 0x44<<7 | 0x40, - 37937 - 19968: jis0208<<14 | 0x5B<<7 | 0x2A, - 37938 - 19968: jis0212<<14 | 0x44<<7 | 0x42, - 37939 - 19968: jis0212<<14 | 0x44<<7 | 0x43, - 37940 - 19968: jis0212<<14 | 0x44<<7 | 0x44, - 37941 - 19968: jis0208<<14 | 0x4E<<7 | 0x23, - 37942 - 19968: jis0208<<14 | 0x4E<<7 | 0x21, - 37944 - 19968: jis0208<<14 | 0x21<<7 | 0x57, - 37946 - 19968: jis0208<<14 | 0x4E<<7 | 0x25, - 37947 - 19968: jis0212<<14 | 0x44<<7 | 0x45, - 37949 - 19968: jis0212<<14 | 0x44<<7 | 0x47, - 37951 - 19968: jis0212<<14 | 0x44<<7 | 0x46, - 37953 - 19968: jis0208<<14 | 0x4E<<7 | 0x26, - 37955 - 19968: jis0212<<14 | 0x44<<7 | 0x48, - 37956 - 19968: jis0208<<14 | 0x4E<<7 | 0x28, - 37957 - 19968: jis0208<<14 | 0x5B<<7 | 0x2B, - 37960 - 19968: jis0208<<14 | 0x5B<<7 | 0x2C, - 37962 - 19968: jis0212<<14 | 0x44<<7 | 0x4B, - 37964 - 19968: jis0212<<14 | 0x44<<7 | 0x4C, - 37969 - 19968: jis0208<<14 | 0x13<<7 | 0x34, - 37970 - 19968: jis0208<<14 | 0x4E<<7 | 0x27, - 37971 - 19968: jis0208<<14 | 0x2B<<7 | 0x59, - 37973 - 19968: jis0212<<14 | 0x44<<7 | 0x4D, - 37977 - 19968: jis0212<<14 | 0x44<<7 | 0x4E, - 37978 - 19968: jis0208<<14 | 0x4E<<7 | 0x33, - 37979 - 19968: jis0208<<14 | 0x4E<<7 | 0x29, - 37980 - 19968: jis0212<<14 | 0x44<<7 | 0x4F, - 37982 - 19968: jis0208<<14 | 0x4E<<7 | 0x2C, - 37983 - 19968: jis0212<<14 | 0x44<<7 | 0x50, - 37984 - 19968: jis0208<<14 | 0x4E<<7 | 0x2A, - 37985 - 19968: jis0212<<14 | 0x44<<7 | 0x51, - 37986 - 19968: jis0208<<14 | 0x4E<<7 | 0x2B, - 37987 - 19968: jis0212<<14 | 0x44<<7 | 0x52, - 37992 - 19968: jis0212<<14 | 0x44<<7 | 0x53, - 37994 - 19968: jis0208<<14 | 0x4E<<7 | 0x2D, - 37995 - 19968: jis0212<<14 | 0x44<<7 | 0x54, - 37997 - 19968: jis0212<<14 | 0x44<<7 | 0x55, - 37998 - 19968: jis0212<<14 | 0x44<<7 | 0x56, - 37999 - 19968: jis0212<<14 | 0x44<<7 | 0x57, - 38000 - 19968: jis0208<<14 | 0x4E<<7 | 0x2F, - 38001 - 19968: jis0212<<14 | 0x44<<7 | 0x58, - 38002 - 19968: jis0212<<14 | 0x44<<7 | 0x59, - 38005 - 19968: jis0208<<14 | 0x4E<<7 | 0x30, - 38007 - 19968: jis0208<<14 | 0x4E<<7 | 0x31, - 38012 - 19968: jis0208<<14 | 0x4E<<7 | 0x34, - 38013 - 19968: jis0208<<14 | 0x4E<<7 | 0x32, - 38014 - 19968: jis0208<<14 | 0x4E<<7 | 0x35, - 38015 - 19968: jis0208<<14 | 0x4E<<7 | 0x37, - 38017 - 19968: jis0208<<14 | 0x4E<<7 | 0x36, - 38019 - 19968: jis0212<<14 | 0x44<<7 | 0x5B, - 38020 - 19968: jis0212<<14 | 0x44<<7 | 0x5A, - 38263 - 19968: jis0208<<14 | 0x23<<7 | 0x18, - 38264 - 19968: jis0212<<14 | 0x44<<7 | 0x5C, - 38265 - 19968: jis0212<<14 | 0x44<<7 | 0x5D, - 38270 - 19968: jis0212<<14 | 0x45<<7 | 0x00, - 38272 - 19968: jis0208<<14 | 0x2B<<7 | 0x46, - 38274 - 19968: jis0208<<14 | 0x4E<<7 | 0x38, - 38275 - 19968: jis0208<<14 | 0x20<<7 | 0x0D, - 38276 - 19968: jis0212<<14 | 0x45<<7 | 0x01, - 38279 - 19968: jis0208<<14 | 0x4E<<7 | 0x39, - 38280 - 19968: jis0212<<14 | 0x45<<7 | 0x02, - 38281 - 19968: jis0208<<14 | 0x29<<7 | 0x23, - 38282 - 19968: jis0208<<14 | 0x4E<<7 | 0x3A, - 38283 - 19968: jis0208<<14 | 0x12<<7 | 0x0A, - 38284 - 19968: jis0212<<14 | 0x45<<7 | 0x03, - 38285 - 19968: jis0212<<14 | 0x45<<7 | 0x04, - 38286 - 19968: jis0212<<14 | 0x45<<7 | 0x05, - 38287 - 19968: jis0208<<14 | 0x10<<7 | 0x1B, - 38289 - 19968: jis0208<<14 | 0x13<<7 | 0x36, - 38290 - 19968: jis0208<<14 | 0x5B<<7 | 0x2D, - 38291 - 19968: jis0208<<14 | 0x13<<7 | 0x35, - 38292 - 19968: jis0208<<14 | 0x4E<<7 | 0x3B, - 38294 - 19968: jis0208<<14 | 0x4E<<7 | 0x3C, - 38296 - 19968: jis0208<<14 | 0x4E<<7 | 0x3D, - 38297 - 19968: jis0208<<14 | 0x4E<<7 | 0x3E, - 38301 - 19968: jis0212<<14 | 0x45<<7 | 0x06, - 38302 - 19968: jis0212<<14 | 0x45<<7 | 0x07, - 38303 - 19968: jis0212<<14 | 0x45<<7 | 0x08, - 38304 - 19968: jis0208<<14 | 0x4E<<7 | 0x3F, - 38305 - 19968: jis0212<<14 | 0x45<<7 | 0x09, - 38306 - 19968: jis0208<<14 | 0x13<<7 | 0x37, - 38307 - 19968: jis0208<<14 | 0x12<<7 | 0x34, - 38308 - 19968: jis0208<<14 | 0x18<<7 | 0x3D, - 38309 - 19968: jis0208<<14 | 0x27<<7 | 0x15, - 38310 - 19968: jis0212<<14 | 0x45<<7 | 0x0A, - 38311 - 19968: jis0208<<14 | 0x4E<<7 | 0x41, - 38312 - 19968: jis0208<<14 | 0x4E<<7 | 0x40, - 38313 - 19968: jis0212<<14 | 0x45<<7 | 0x0B, - 38315 - 19968: jis0212<<14 | 0x45<<7 | 0x0C, - 38316 - 19968: jis0212<<14 | 0x45<<7 | 0x0D, - 38317 - 19968: jis0208<<14 | 0x4E<<7 | 0x42, - 38322 - 19968: jis0208<<14 | 0x10<<7 | 0x3B, - 38324 - 19968: jis0212<<14 | 0x45<<7 | 0x0E, - 38326 - 19968: jis0212<<14 | 0x45<<7 | 0x0F, - 38329 - 19968: jis0208<<14 | 0x4E<<7 | 0x45, - 38330 - 19968: jis0212<<14 | 0x45<<7 | 0x10, - 38331 - 19968: jis0208<<14 | 0x4E<<7 | 0x44, - 38332 - 19968: jis0208<<14 | 0x4E<<7 | 0x43, - 38333 - 19968: jis0212<<14 | 0x45<<7 | 0x11, - 38334 - 19968: jis0208<<14 | 0x4E<<7 | 0x46, - 38335 - 19968: jis0212<<14 | 0x45<<7 | 0x12, - 38339 - 19968: jis0208<<14 | 0x4E<<7 | 0x49, - 38342 - 19968: jis0212<<14 | 0x45<<7 | 0x13, - 38343 - 19968: jis0208<<14 | 0x0F<<7 | 0x26, - 38344 - 19968: jis0212<<14 | 0x45<<7 | 0x14, - 38345 - 19968: jis0212<<14 | 0x45<<7 | 0x15, - 38346 - 19968: jis0208<<14 | 0x4E<<7 | 0x47, - 38347 - 19968: jis0212<<14 | 0x45<<7 | 0x16, - 38348 - 19968: jis0208<<14 | 0x4E<<7 | 0x4B, - 38349 - 19968: jis0208<<14 | 0x4E<<7 | 0x4A, - 38352 - 19968: jis0212<<14 | 0x45<<7 | 0x17, - 38353 - 19968: jis0212<<14 | 0x45<<7 | 0x18, - 38354 - 19968: jis0212<<14 | 0x45<<7 | 0x19, - 38355 - 19968: jis0212<<14 | 0x45<<7 | 0x1A, - 38356 - 19968: jis0208<<14 | 0x4E<<7 | 0x4D, - 38357 - 19968: jis0208<<14 | 0x4E<<7 | 0x4C, - 38358 - 19968: jis0208<<14 | 0x4E<<7 | 0x4E, - 38360 - 19968: jis0208<<14 | 0x25<<7 | 0x0D, - 38361 - 19968: jis0212<<14 | 0x45<<7 | 0x1B, - 38362 - 19968: jis0212<<14 | 0x45<<7 | 0x1C, - 38364 - 19968: jis0208<<14 | 0x4E<<7 | 0x4F, - 38365 - 19968: jis0212<<14 | 0x45<<7 | 0x1D, - 38366 - 19968: jis0212<<14 | 0x45<<7 | 0x1E, - 38367 - 19968: jis0212<<14 | 0x45<<7 | 0x1F, - 38368 - 19968: jis0212<<14 | 0x45<<7 | 0x20, - 38369 - 19968: jis0208<<14 | 0x4E<<7 | 0x50, - 38370 - 19968: jis0208<<14 | 0x4E<<7 | 0x52, - 38372 - 19968: jis0212<<14 | 0x45<<7 | 0x21, - 38373 - 19968: jis0208<<14 | 0x4E<<7 | 0x51, - 38374 - 19968: jis0212<<14 | 0x45<<7 | 0x22, - 38428 - 19968: jis0208<<14 | 0x28<<7 | 0x4B, - 38429 - 19968: jis0212<<14 | 0x45<<7 | 0x23, - 38430 - 19968: jis0212<<14 | 0x45<<7 | 0x24, - 38433 - 19968: jis0208<<14 | 0x4E<<7 | 0x53, - 38434 - 19968: jis0212<<14 | 0x45<<7 | 0x25, - 38436 - 19968: jis0212<<14 | 0x45<<7 | 0x26, - 38437 - 19968: jis0212<<14 | 0x45<<7 | 0x27, - 38438 - 19968: jis0212<<14 | 0x45<<7 | 0x28, - 38440 - 19968: jis0208<<14 | 0x4E<<7 | 0x54, - 38442 - 19968: jis0208<<14 | 0x19<<7 | 0x44, - 38444 - 19968: jis0212<<14 | 0x45<<7 | 0x29, - 38446 - 19968: jis0208<<14 | 0x4E<<7 | 0x55, - 38447 - 19968: jis0208<<14 | 0x4E<<7 | 0x56, - 38449 - 19968: jis0212<<14 | 0x45<<7 | 0x2A, - 38450 - 19968: jis0208<<14 | 0x2A<<7 | 0x28, - 38451 - 19968: jis0212<<14 | 0x45<<7 | 0x2B, - 38455 - 19968: jis0212<<14 | 0x45<<7 | 0x2C, - 38456 - 19968: jis0212<<14 | 0x45<<7 | 0x2D, - 38457 - 19968: jis0212<<14 | 0x45<<7 | 0x2E, - 38458 - 19968: jis0212<<14 | 0x45<<7 | 0x2F, - 38459 - 19968: jis0208<<14 | 0x20<<7 | 0x2A, - 38460 - 19968: jis0212<<14 | 0x45<<7 | 0x30, - 38461 - 19968: jis0212<<14 | 0x45<<7 | 0x31, - 38463 - 19968: jis0208<<14 | 0x0F<<7 | 0x03, - 38464 - 19968: jis0208<<14 | 0x21<<7 | 0x2A, - 38465 - 19968: jis0212<<14 | 0x45<<7 | 0x32, - 38466 - 19968: jis0208<<14 | 0x4E<<7 | 0x57, - 38468 - 19968: jis0208<<14 | 0x28<<7 | 0x4C, - 38475 - 19968: jis0208<<14 | 0x4E<<7 | 0x5A, - 38476 - 19968: jis0208<<14 | 0x4E<<7 | 0x58, - 38477 - 19968: jis0208<<14 | 0x18<<7 | 0x3E, - 38479 - 19968: jis0208<<14 | 0x4E<<7 | 0x59, - 38480 - 19968: jis0208<<14 | 0x17<<7 | 0x21, - 38482 - 19968: jis0212<<14 | 0x45<<7 | 0x33, - 38484 - 19968: jis0212<<14 | 0x45<<7 | 0x34, - 38486 - 19968: jis0212<<14 | 0x45<<7 | 0x35, - 38487 - 19968: jis0212<<14 | 0x45<<7 | 0x36, - 38488 - 19968: jis0212<<14 | 0x45<<7 | 0x37, - 38491 - 19968: jis0208<<14 | 0x29<<7 | 0x24, - 38492 - 19968: jis0208<<14 | 0x4E<<7 | 0x5C, - 38493 - 19968: jis0208<<14 | 0x4F<<7 | 0x00, - 38494 - 19968: jis0208<<14 | 0x4E<<7 | 0x5D, - 38495 - 19968: jis0208<<14 | 0x4F<<7 | 0x01, - 38497 - 19968: jis0212<<14 | 0x45<<7 | 0x38, - 38498 - 19968: jis0208<<14 | 0x10<<7 | 0x00, - 38499 - 19968: jis0208<<14 | 0x1E<<7 | 0x37, - 38500 - 19968: jis0208<<14 | 0x1C<<7 | 0x5B, - 38501 - 19968: jis0208<<14 | 0x13<<7 | 0x38, - 38502 - 19968: jis0208<<14 | 0x4F<<7 | 0x02, - 38506 - 19968: jis0208<<14 | 0x26<<7 | 0x45, - 38508 - 19968: jis0208<<14 | 0x4F<<7 | 0x04, - 38510 - 19968: jis0212<<14 | 0x45<<7 | 0x39, - 38512 - 19968: jis0208<<14 | 0x10<<7 | 0x01, - 38514 - 19968: jis0208<<14 | 0x4F<<7 | 0x03, - 38515 - 19968: jis0208<<14 | 0x23<<7 | 0x23, - 38516 - 19968: jis0212<<14 | 0x45<<7 | 0x3A, - 38517 - 19968: jis0208<<14 | 0x2D<<7 | 0x2C, - 38518 - 19968: jis0208<<14 | 0x25<<7 | 0x0A, - 38519 - 19968: jis0208<<14 | 0x4E<<7 | 0x5B, - 38520 - 19968: jis0208<<14 | 0x2D<<7 | 0x05, - 38522 - 19968: jis0208<<14 | 0x17<<7 | 0x10, - 38523 - 19968: jis0212<<14 | 0x45<<7 | 0x3B, - 38524 - 19968: jis0212<<14 | 0x45<<7 | 0x3C, - 38525 - 19968: jis0208<<14 | 0x2C<<7 | 0x3A, - 38526 - 19968: jis0212<<14 | 0x45<<7 | 0x3D, - 38527 - 19968: jis0212<<14 | 0x45<<7 | 0x3E, - 38529 - 19968: jis0212<<14 | 0x45<<7 | 0x3F, - 38530 - 19968: jis0212<<14 | 0x45<<7 | 0x40, - 38531 - 19968: jis0212<<14 | 0x45<<7 | 0x41, - 38532 - 19968: jis0212<<14 | 0x45<<7 | 0x42, - 38533 - 19968: jis0208<<14 | 0x15<<7 | 0x58, - 38534 - 19968: jis0208<<14 | 0x2D<<7 | 0x13, - 38536 - 19968: jis0208<<14 | 0x16<<7 | 0x07, - 38537 - 19968: jis0212<<14 | 0x45<<7 | 0x43, - 38538 - 19968: jis0208<<14 | 0x21<<7 | 0x41, - 38539 - 19968: jis0208<<14 | 0x46<<7 | 0x00, - 38541 - 19968: jis0208<<14 | 0x4F<<7 | 0x05, - 38542 - 19968: jis0208<<14 | 0x12<<7 | 0x0B, - 38543 - 19968: jis0208<<14 | 0x1E<<7 | 0x4E, - 38545 - 19968: jis0212<<14 | 0x45<<7 | 0x44, - 38548 - 19968: jis0208<<14 | 0x12<<7 | 0x35, - 38549 - 19968: jis0208<<14 | 0x4F<<7 | 0x07, - 38550 - 19968: jis0212<<14 | 0x45<<7 | 0x45, - 38551 - 19968: jis0208<<14 | 0x4F<<7 | 0x08, - 38552 - 19968: jis0208<<14 | 0x4F<<7 | 0x06, - 38553 - 19968: jis0208<<14 | 0x16<<7 | 0x43, - 38554 - 19968: jis0212<<14 | 0x45<<7 | 0x46, - 38555 - 19968: jis0208<<14 | 0x19<<7 | 0x3C, - 38556 - 19968: jis0208<<14 | 0x1D<<7 | 0x42, - 38557 - 19968: jis0208<<14 | 0x5B<<7 | 0x30, - 38559 - 19968: jis0212<<14 | 0x45<<7 | 0x48, - 38560 - 19968: jis0208<<14 | 0x10<<7 | 0x02, - 38563 - 19968: jis0208<<14 | 0x2D<<7 | 0x38, - 38564 - 19968: jis0212<<14 | 0x45<<7 | 0x49, - 38565 - 19968: jis0212<<14 | 0x45<<7 | 0x4A, - 38566 - 19968: jis0212<<14 | 0x45<<7 | 0x4B, - 38567 - 19968: jis0208<<14 | 0x4F<<7 | 0x0A, - 38568 - 19968: jis0208<<14 | 0x4D<<7 | 0x0D, - 38569 - 19968: jis0212<<14 | 0x45<<7 | 0x4C, - 38570 - 19968: jis0208<<14 | 0x4F<<7 | 0x09, - 38574 - 19968: jis0212<<14 | 0x45<<7 | 0x4D, - 38575 - 19968: jis0208<<14 | 0x5B<<7 | 0x31, - 38576 - 19968: jis0208<<14 | 0x4F<<7 | 0x0D, - 38577 - 19968: jis0208<<14 | 0x4F<<7 | 0x0B, - 38578 - 19968: jis0208<<14 | 0x4F<<7 | 0x0C, - 38579 - 19968: jis0212<<14 | 0x45<<7 | 0x4F, - 38580 - 19968: jis0208<<14 | 0x4F<<7 | 0x0E, - 38582 - 19968: jis0208<<14 | 0x4F<<7 | 0x0F, - 38583 - 19968: jis0208<<14 | 0x2D<<7 | 0x4B, - 38584 - 19968: jis0208<<14 | 0x4F<<7 | 0x10, - 38585 - 19968: jis0208<<14 | 0x4F<<7 | 0x11, - 38586 - 19968: jis0212<<14 | 0x45<<7 | 0x50, - 38587 - 19968: jis0208<<14 | 0x1F<<7 | 0x28, - 38588 - 19968: jis0208<<14 | 0x27<<7 | 0x1A, - 38592 - 19968: jis0208<<14 | 0x1E<<7 | 0x5C, - 38593 - 19968: jis0208<<14 | 0x13<<7 | 0x46, - 38596 - 19968: jis0208<<14 | 0x2C<<7 | 0x19, - 38597 - 19968: jis0208<<14 | 0x11<<7 | 0x4C, - 38598 - 19968: jis0208<<14 | 0x1C<<7 | 0x17, - 38599 - 19968: jis0208<<14 | 0x17<<7 | 0x3A, - 38601 - 19968: jis0208<<14 | 0x4F<<7 | 0x14, - 38602 - 19968: jis0212<<14 | 0x45<<7 | 0x51, - 38603 - 19968: jis0208<<14 | 0x4F<<7 | 0x13, - 38604 - 19968: jis0208<<14 | 0x1A<<7 | 0x52, - 38605 - 19968: jis0208<<14 | 0x4F<<7 | 0x15, - 38606 - 19968: jis0208<<14 | 0x4F<<7 | 0x12, - 38609 - 19968: jis0208<<14 | 0x1A<<7 | 0x07, - 38610 - 19968: jis0212<<14 | 0x45<<7 | 0x52, - 38613 - 19968: jis0208<<14 | 0x4F<<7 | 0x19, - 38614 - 19968: jis0208<<14 | 0x49<<7 | 0x0C, - 38616 - 19968: jis0212<<14 | 0x45<<7 | 0x54, - 38617 - 19968: jis0208<<14 | 0x31<<7 | 0x35, - 38618 - 19968: jis0212<<14 | 0x45<<7 | 0x55, - 38619 - 19968: jis0208<<14 | 0x1E<<7 | 0x56, - 38620 - 19968: jis0208<<14 | 0x4F<<7 | 0x17, - 38621 - 19968: jis0212<<14 | 0x45<<7 | 0x56, - 38622 - 19968: jis0212<<14 | 0x45<<7 | 0x57, - 38623 - 19968: jis0212<<14 | 0x45<<7 | 0x58, - 38626 - 19968: jis0208<<14 | 0x2D<<7 | 0x04, - 38627 - 19968: jis0208<<14 | 0x25<<7 | 0x50, - 38632 - 19968: jis0208<<14 | 0x10<<7 | 0x0A, - 38633 - 19968: jis0212<<14 | 0x45<<7 | 0x59, - 38634 - 19968: jis0208<<14 | 0x1F<<7 | 0x42, - 38635 - 19968: jis0208<<14 | 0x1B<<7 | 0x15, - 38639 - 19968: jis0212<<14 | 0x45<<7 | 0x5A, - 38640 - 19968: jis0208<<14 | 0x29<<7 | 0x16, - 38641 - 19968: jis0212<<14 | 0x45<<7 | 0x5B, - 38642 - 19968: jis0208<<14 | 0x10<<7 | 0x1F, - 38646 - 19968: jis0208<<14 | 0x2D<<7 | 0x4C, - 38647 - 19968: jis0208<<14 | 0x2C<<7 | 0x4A, - 38649 - 19968: jis0208<<14 | 0x4F<<7 | 0x1A, - 38650 - 19968: jis0212<<14 | 0x45<<7 | 0x5C, - 38651 - 19968: jis0208<<14 | 0x24<<7 | 0x24, - 38656 - 19968: jis0208<<14 | 0x1B<<7 | 0x5A, - 38658 - 19968: jis0212<<14 | 0x45<<7 | 0x5D, - 38659 - 19968: jis0212<<14 | 0x46<<7 | 0x00, - 38660 - 19968: jis0208<<14 | 0x4F<<7 | 0x1B, - 38661 - 19968: jis0212<<14 | 0x46<<7 | 0x01, - 38662 - 19968: jis0208<<14 | 0x4F<<7 | 0x1C, - 38663 - 19968: jis0208<<14 | 0x1E<<7 | 0x2B, - 38664 - 19968: jis0208<<14 | 0x4F<<7 | 0x1D, - 38665 - 19968: jis0212<<14 | 0x46<<7 | 0x02, - 38666 - 19968: jis0208<<14 | 0x2D<<7 | 0x4D, - 38669 - 19968: jis0208<<14 | 0x4F<<7 | 0x18, - 38670 - 19968: jis0208<<14 | 0x4F<<7 | 0x1F, - 38671 - 19968: jis0208<<14 | 0x4F<<7 | 0x21, - 38673 - 19968: jis0208<<14 | 0x4F<<7 | 0x20, - 38675 - 19968: jis0208<<14 | 0x4F<<7 | 0x1E, - 38678 - 19968: jis0208<<14 | 0x4F<<7 | 0x22, - 38681 - 19968: jis0208<<14 | 0x4F<<7 | 0x23, - 38682 - 19968: jis0212<<14 | 0x46<<7 | 0x03, - 38683 - 19968: jis0212<<14 | 0x46<<7 | 0x04, - 38684 - 19968: jis0208<<14 | 0x20<<7 | 0x59, - 38685 - 19968: jis0212<<14 | 0x46<<7 | 0x05, - 38686 - 19968: jis0208<<14 | 0x11<<7 | 0x41, - 38689 - 19968: jis0212<<14 | 0x46<<7 | 0x06, - 38690 - 19968: jis0212<<14 | 0x46<<7 | 0x07, - 38691 - 19968: jis0212<<14 | 0x46<<7 | 0x08, - 38692 - 19968: jis0208<<14 | 0x4F<<7 | 0x24, - 38695 - 19968: jis0208<<14 | 0x2B<<7 | 0x17, - 38696 - 19968: jis0212<<14 | 0x46<<7 | 0x09, - 38698 - 19968: jis0208<<14 | 0x4F<<7 | 0x25, - 38704 - 19968: jis0208<<14 | 0x4F<<7 | 0x26, - 38705 - 19968: jis0212<<14 | 0x46<<7 | 0x0A, - 38706 - 19968: jis0208<<14 | 0x2E<<7 | 0x09, - 38707 - 19968: jis0208<<14 | 0x5B<<7 | 0x32, - 38712 - 19968: jis0208<<14 | 0x3A<<7 | 0x10, - 38713 - 19968: jis0208<<14 | 0x4F<<7 | 0x27, - 38715 - 19968: jis0208<<14 | 0x5B<<7 | 0x33, - 38717 - 19968: jis0208<<14 | 0x4F<<7 | 0x28, - 38718 - 19968: jis0208<<14 | 0x4F<<7 | 0x29, - 38721 - 19968: jis0212<<14 | 0x46<<7 | 0x0C, - 38722 - 19968: jis0208<<14 | 0x4F<<7 | 0x2D, - 38723 - 19968: jis0208<<14 | 0x5B<<7 | 0x34, - 38724 - 19968: jis0208<<14 | 0x4F<<7 | 0x2A, - 38726 - 19968: jis0208<<14 | 0x4F<<7 | 0x2B, - 38728 - 19968: jis0208<<14 | 0x4F<<7 | 0x2C, - 38729 - 19968: jis0208<<14 | 0x4F<<7 | 0x2E, - 38730 - 19968: jis0212<<14 | 0x46<<7 | 0x0E, - 38733 - 19968: jis0208<<14 | 0x5B<<7 | 0x35, - 38734 - 19968: jis0212<<14 | 0x46<<7 | 0x0F, - 38735 - 19968: jis0208<<14 | 0x5B<<7 | 0x36, - 38737 - 19968: jis0208<<14 | 0x5B<<7 | 0x37, - 38738 - 19968: jis0208<<14 | 0x1F<<7 | 0x23, - 38741 - 19968: jis0208<<14 | 0x5B<<7 | 0x38, - 38742 - 19968: jis0208<<14 | 0x2B<<7 | 0x56, - 38743 - 19968: jis0212<<14 | 0x46<<7 | 0x12, - 38744 - 19968: jis0212<<14 | 0x46<<7 | 0x13, - 38745 - 19968: jis0208<<14 | 0x1F<<7 | 0x24, - 38746 - 19968: jis0212<<14 | 0x46<<7 | 0x14, - 38747 - 19968: jis0212<<14 | 0x46<<7 | 0x15, - 38748 - 19968: jis0208<<14 | 0x4F<<7 | 0x2F, - 38750 - 19968: jis0208<<14 | 0x27<<7 | 0x52, - 38752 - 19968: jis0208<<14 | 0x4F<<7 | 0x30, - 38753 - 19968: jis0208<<14 | 0x52<<7 | 0x32, - 38754 - 19968: jis0208<<14 | 0x2B<<7 | 0x2B, - 38755 - 19968: jis0212<<14 | 0x46<<7 | 0x16, - 38756 - 19968: jis0208<<14 | 0x4F<<7 | 0x31, - 38758 - 19968: jis0208<<14 | 0x4F<<7 | 0x32, - 38759 - 19968: jis0212<<14 | 0x46<<7 | 0x17, - 38760 - 19968: jis0208<<14 | 0x4F<<7 | 0x33, - 38761 - 19968: jis0208<<14 | 0x12<<7 | 0x36, - 38762 - 19968: jis0212<<14 | 0x46<<7 | 0x18, - 38763 - 19968: jis0208<<14 | 0x4F<<7 | 0x35, - 38765 - 19968: jis0208<<14 | 0x1E<<7 | 0x38, - 38766 - 19968: jis0212<<14 | 0x46<<7 | 0x19, - 38769 - 19968: jis0208<<14 | 0x4F<<7 | 0x36, - 38771 - 19968: jis0212<<14 | 0x46<<7 | 0x1A, - 38772 - 19968: jis0208<<14 | 0x16<<7 | 0x03, - 38774 - 19968: jis0212<<14 | 0x46<<7 | 0x1B, - 38775 - 19968: jis0212<<14 | 0x46<<7 | 0x1C, - 38776 - 19968: jis0212<<14 | 0x46<<7 | 0x1D, - 38777 - 19968: jis0208<<14 | 0x4F<<7 | 0x37, - 38778 - 19968: jis0208<<14 | 0x4F<<7 | 0x3B, - 38779 - 19968: jis0212<<14 | 0x46<<7 | 0x1E, - 38780 - 19968: jis0208<<14 | 0x4F<<7 | 0x39, - 38781 - 19968: jis0212<<14 | 0x46<<7 | 0x1F, - 38783 - 19968: jis0212<<14 | 0x46<<7 | 0x20, - 38784 - 19968: jis0212<<14 | 0x46<<7 | 0x21, - 38785 - 19968: jis0208<<14 | 0x4F<<7 | 0x3A, - 38788 - 19968: jis0208<<14 | 0x12<<7 | 0x52, - 38789 - 19968: jis0208<<14 | 0x4F<<7 | 0x38, - 38790 - 19968: jis0208<<14 | 0x4F<<7 | 0x3C, - 38793 - 19968: jis0212<<14 | 0x46<<7 | 0x22, - 38795 - 19968: jis0208<<14 | 0x4F<<7 | 0x3D, - 38797 - 19968: jis0208<<14 | 0x0F<<7 | 0x27, - 38799 - 19968: jis0208<<14 | 0x4F<<7 | 0x3E, - 38800 - 19968: jis0208<<14 | 0x4F<<7 | 0x3F, - 38805 - 19968: jis0212<<14 | 0x46<<7 | 0x23, - 38806 - 19968: jis0212<<14 | 0x46<<7 | 0x24, - 38807 - 19968: jis0212<<14 | 0x46<<7 | 0x25, - 38808 - 19968: jis0208<<14 | 0x1D<<7 | 0x43, - 38809 - 19968: jis0212<<14 | 0x46<<7 | 0x26, - 38810 - 19968: jis0212<<14 | 0x46<<7 | 0x27, - 38812 - 19968: jis0208<<14 | 0x4F<<7 | 0x40, - 38814 - 19968: jis0212<<14 | 0x46<<7 | 0x28, - 38815 - 19968: jis0212<<14 | 0x46<<7 | 0x29, - 38816 - 19968: jis0208<<14 | 0x14<<7 | 0x26, - 38818 - 19968: jis0212<<14 | 0x46<<7 | 0x2A, - 38819 - 19968: jis0208<<14 | 0x4F<<7 | 0x43, - 38822 - 19968: jis0208<<14 | 0x4F<<7 | 0x42, - 38824 - 19968: jis0208<<14 | 0x4F<<7 | 0x41, - 38827 - 19968: jis0208<<14 | 0x4A<<7 | 0x50, - 38828 - 19968: jis0212<<14 | 0x46<<7 | 0x2B, - 38829 - 19968: jis0208<<14 | 0x29<<7 | 0x3B, - 38830 - 19968: jis0212<<14 | 0x46<<7 | 0x2C, - 38833 - 19968: jis0212<<14 | 0x46<<7 | 0x2D, - 38834 - 19968: jis0212<<14 | 0x46<<7 | 0x2E, - 38835 - 19968: jis0208<<14 | 0x4F<<7 | 0x44, - 38836 - 19968: jis0208<<14 | 0x4F<<7 | 0x45, - 38837 - 19968: jis0212<<14 | 0x46<<7 | 0x2F, - 38838 - 19968: jis0212<<14 | 0x46<<7 | 0x30, - 38840 - 19968: jis0212<<14 | 0x46<<7 | 0x31, - 38841 - 19968: jis0212<<14 | 0x46<<7 | 0x32, - 38842 - 19968: jis0212<<14 | 0x46<<7 | 0x33, - 38844 - 19968: jis0212<<14 | 0x46<<7 | 0x34, - 38846 - 19968: jis0212<<14 | 0x46<<7 | 0x35, - 38847 - 19968: jis0212<<14 | 0x46<<7 | 0x36, - 38849 - 19968: jis0212<<14 | 0x46<<7 | 0x37, - 38851 - 19968: jis0208<<14 | 0x4F<<7 | 0x46, - 38852 - 19968: jis0212<<14 | 0x46<<7 | 0x38, - 38853 - 19968: jis0212<<14 | 0x46<<7 | 0x39, - 38854 - 19968: jis0208<<14 | 0x4F<<7 | 0x47, - 38855 - 19968: jis0212<<14 | 0x46<<7 | 0x3A, - 38856 - 19968: jis0208<<14 | 0x4F<<7 | 0x48, - 38857 - 19968: jis0212<<14 | 0x46<<7 | 0x3B, - 38858 - 19968: jis0212<<14 | 0x46<<7 | 0x3C, - 38859 - 19968: jis0208<<14 | 0x4F<<7 | 0x49, - 38860 - 19968: jis0212<<14 | 0x46<<7 | 0x3D, - 38861 - 19968: jis0212<<14 | 0x46<<7 | 0x3E, - 38862 - 19968: jis0212<<14 | 0x46<<7 | 0x3F, - 38864 - 19968: jis0212<<14 | 0x46<<7 | 0x40, - 38865 - 19968: jis0212<<14 | 0x46<<7 | 0x41, - 38867 - 19968: jis0208<<14 | 0x13<<7 | 0x39, - 38868 - 19968: jis0212<<14 | 0x46<<7 | 0x42, - 38871 - 19968: jis0212<<14 | 0x46<<7 | 0x43, - 38872 - 19968: jis0212<<14 | 0x46<<7 | 0x44, - 38873 - 19968: jis0212<<14 | 0x46<<7 | 0x45, - 38875 - 19968: jis0212<<14 | 0x46<<7 | 0x49, - 38876 - 19968: jis0208<<14 | 0x4F<<7 | 0x4A, - 38877 - 19968: jis0212<<14 | 0x46<<7 | 0x46, - 38878 - 19968: jis0212<<14 | 0x46<<7 | 0x47, - 38880 - 19968: jis0212<<14 | 0x46<<7 | 0x48, - 38881 - 19968: jis0212<<14 | 0x46<<7 | 0x4A, - 38884 - 19968: jis0212<<14 | 0x46<<7 | 0x4B, - 38893 - 19968: jis0208<<14 | 0x4F<<7 | 0x4B, - 38894 - 19968: jis0208<<14 | 0x26<<7 | 0x02, - 38895 - 19968: jis0212<<14 | 0x46<<7 | 0x4C, - 38897 - 19968: jis0212<<14 | 0x46<<7 | 0x4D, - 38898 - 19968: jis0208<<14 | 0x4F<<7 | 0x4D, - 38899 - 19968: jis0208<<14 | 0x11<<7 | 0x1A, - 38900 - 19968: jis0212<<14 | 0x46<<7 | 0x4E, - 38901 - 19968: jis0208<<14 | 0x4F<<7 | 0x50, - 38902 - 19968: jis0208<<14 | 0x4F<<7 | 0x4F, - 38903 - 19968: jis0212<<14 | 0x46<<7 | 0x4F, - 38904 - 19968: jis0212<<14 | 0x46<<7 | 0x50, - 38906 - 19968: jis0212<<14 | 0x46<<7 | 0x51, - 38907 - 19968: jis0208<<14 | 0x10<<7 | 0x03, - 38911 - 19968: jis0208<<14 | 0x15<<7 | 0x20, - 38913 - 19968: jis0208<<14 | 0x29<<7 | 0x26, - 38914 - 19968: jis0208<<14 | 0x23<<7 | 0x19, - 38915 - 19968: jis0208<<14 | 0x19<<7 | 0x01, - 38917 - 19968: jis0208<<14 | 0x18<<7 | 0x3F, - 38918 - 19968: jis0208<<14 | 0x1C<<7 | 0x46, - 38919 - 19968: jis0212<<14 | 0x46<<7 | 0x52, - 38920 - 19968: jis0208<<14 | 0x1E<<7 | 0x3B, - 38922 - 19968: jis0212<<14 | 0x46<<7 | 0x53, - 38924 - 19968: jis0208<<14 | 0x4F<<7 | 0x52, - 38925 - 19968: jis0212<<14 | 0x46<<7 | 0x55, - 38926 - 19968: jis0212<<14 | 0x46<<7 | 0x56, - 38927 - 19968: jis0208<<14 | 0x4F<<7 | 0x51, - 38928 - 19968: jis0208<<14 | 0x2C<<7 | 0x21, - 38929 - 19968: jis0208<<14 | 0x13<<7 | 0x47, - 38930 - 19968: jis0208<<14 | 0x27<<7 | 0x31, - 38931 - 19968: jis0208<<14 | 0x25<<7 | 0x3B, - 38932 - 19968: jis0212<<14 | 0x46<<7 | 0x57, - 38934 - 19968: jis0212<<14 | 0x46<<7 | 0x58, - 38935 - 19968: jis0208<<14 | 0x1E<<7 | 0x5B, - 38936 - 19968: jis0208<<14 | 0x2D<<7 | 0x2D, - 38937 - 19968: jis0212<<14 | 0x46<<7 | 0x54, - 38938 - 19968: jis0208<<14 | 0x16<<7 | 0x3A, - 38940 - 19968: jis0212<<14 | 0x46<<7 | 0x59, - 38942 - 19968: jis0212<<14 | 0x46<<7 | 0x5A, - 38944 - 19968: jis0212<<14 | 0x46<<7 | 0x5B, - 38945 - 19968: jis0208<<14 | 0x4F<<7 | 0x55, - 38947 - 19968: jis0212<<14 | 0x46<<7 | 0x5C, - 38948 - 19968: jis0208<<14 | 0x4F<<7 | 0x54, - 38949 - 19968: jis0212<<14 | 0x47<<7 | 0x07, - 38950 - 19968: jis0212<<14 | 0x46<<7 | 0x5D, - 38955 - 19968: jis0212<<14 | 0x47<<7 | 0x00, - 38956 - 19968: jis0208<<14 | 0x2A<<7 | 0x2A, - 38957 - 19968: jis0208<<14 | 0x25<<7 | 0x0B, - 38958 - 19968: jis0212<<14 | 0x47<<7 | 0x01, - 38959 - 19968: jis0212<<14 | 0x47<<7 | 0x02, - 38960 - 19968: jis0212<<14 | 0x47<<7 | 0x03, - 38962 - 19968: jis0212<<14 | 0x47<<7 | 0x04, - 38963 - 19968: jis0212<<14 | 0x47<<7 | 0x05, - 38964 - 19968: jis0208<<14 | 0x10<<7 | 0x2F, - 38965 - 19968: jis0212<<14 | 0x47<<7 | 0x06, - 38967 - 19968: jis0208<<14 | 0x4F<<7 | 0x56, - 38968 - 19968: jis0208<<14 | 0x4F<<7 | 0x53, - 38971 - 19968: jis0208<<14 | 0x28<<7 | 0x30, - 38972 - 19968: jis0208<<14 | 0x2C<<7 | 0x49, - 38973 - 19968: jis0208<<14 | 0x4F<<7 | 0x57, - 38974 - 19968: jis0212<<14 | 0x47<<7 | 0x08, - 38980 - 19968: jis0212<<14 | 0x47<<7 | 0x09, - 38982 - 19968: jis0208<<14 | 0x4F<<7 | 0x58, - 38983 - 19968: jis0212<<14 | 0x47<<7 | 0x0A, - 38986 - 19968: jis0212<<14 | 0x47<<7 | 0x0B, - 38987 - 19968: jis0208<<14 | 0x4F<<7 | 0x5A, - 38988 - 19968: jis0208<<14 | 0x21<<7 | 0x49, - 38989 - 19968: jis0208<<14 | 0x12<<7 | 0x3A, - 38990 - 19968: jis0208<<14 | 0x12<<7 | 0x3B, - 38991 - 19968: jis0208<<14 | 0x4F<<7 | 0x59, - 38993 - 19968: jis0212<<14 | 0x47<<7 | 0x0C, - 38994 - 19968: jis0212<<14 | 0x47<<7 | 0x0D, - 38995 - 19968: jis0212<<14 | 0x47<<7 | 0x0E, - 38996 - 19968: jis0208<<14 | 0x13<<7 | 0x48, - 38997 - 19968: jis0208<<14 | 0x17<<7 | 0x11, - 38998 - 19968: jis0212<<14 | 0x47<<7 | 0x0F, - 38999 - 19968: jis0208<<14 | 0x5B<<7 | 0x39, - 39000 - 19968: jis0208<<14 | 0x13<<7 | 0x49, - 39001 - 19968: jis0212<<14 | 0x47<<7 | 0x11, - 39002 - 19968: jis0212<<14 | 0x47<<7 | 0x12, - 39003 - 19968: jis0208<<14 | 0x24<<7 | 0x1E, - 39006 - 19968: jis0208<<14 | 0x2D<<7 | 0x3F, - 39010 - 19968: jis0212<<14 | 0x47<<7 | 0x13, - 39011 - 19968: jis0212<<14 | 0x47<<7 | 0x14, - 39013 - 19968: jis0208<<14 | 0x5B<<7 | 0x3A, - 39014 - 19968: jis0212<<14 | 0x47<<7 | 0x16, - 39015 - 19968: jis0208<<14 | 0x17<<7 | 0x3B, - 39018 - 19968: jis0212<<14 | 0x47<<7 | 0x17, - 39019 - 19968: jis0208<<14 | 0x4F<<7 | 0x5B, - 39020 - 19968: jis0212<<14 | 0x47<<7 | 0x18, - 39023 - 19968: jis0208<<14 | 0x4F<<7 | 0x5C, - 39024 - 19968: jis0208<<14 | 0x4F<<7 | 0x5D, - 39025 - 19968: jis0208<<14 | 0x50<<7 | 0x00, - 39027 - 19968: jis0208<<14 | 0x50<<7 | 0x02, - 39028 - 19968: jis0208<<14 | 0x50<<7 | 0x01, - 39080 - 19968: jis0208<<14 | 0x28<<7 | 0x56, - 39082 - 19968: jis0208<<14 | 0x50<<7 | 0x03, - 39083 - 19968: jis0212<<14 | 0x47<<7 | 0x19, - 39085 - 19968: jis0212<<14 | 0x47<<7 | 0x1A, - 39086 - 19968: jis0212<<14 | 0x47<<7 | 0x1B, - 39087 - 19968: jis0208<<14 | 0x50<<7 | 0x04, - 39088 - 19968: jis0212<<14 | 0x47<<7 | 0x1C, - 39089 - 19968: jis0208<<14 | 0x50<<7 | 0x05, - 39092 - 19968: jis0212<<14 | 0x47<<7 | 0x1D, - 39094 - 19968: jis0208<<14 | 0x50<<7 | 0x06, - 39095 - 19968: jis0212<<14 | 0x47<<7 | 0x1E, - 39096 - 19968: jis0212<<14 | 0x47<<7 | 0x1F, - 39098 - 19968: jis0212<<14 | 0x47<<7 | 0x20, - 39099 - 19968: jis0212<<14 | 0x47<<7 | 0x21, - 39103 - 19968: jis0212<<14 | 0x47<<7 | 0x22, - 39106 - 19968: jis0212<<14 | 0x47<<7 | 0x23, - 39107 - 19968: jis0208<<14 | 0x50<<7 | 0x08, - 39108 - 19968: jis0208<<14 | 0x50<<7 | 0x07, - 39109 - 19968: jis0212<<14 | 0x47<<7 | 0x24, - 39110 - 19968: jis0208<<14 | 0x50<<7 | 0x09, - 39112 - 19968: jis0212<<14 | 0x47<<7 | 0x25, - 39116 - 19968: jis0212<<14 | 0x47<<7 | 0x26, - 39131 - 19968: jis0208<<14 | 0x27<<7 | 0x53, - 39132 - 19968: jis0208<<14 | 0x45<<7 | 0x2B, - 39135 - 19968: jis0208<<14 | 0x1E<<7 | 0x08, - 39137 - 19968: jis0212<<14 | 0x47<<7 | 0x27, - 39138 - 19968: jis0208<<14 | 0x14<<7 | 0x11, - 39139 - 19968: jis0212<<14 | 0x47<<7 | 0x28, - 39141 - 19968: jis0212<<14 | 0x47<<7 | 0x29, - 39142 - 19968: jis0212<<14 | 0x47<<7 | 0x2A, - 39143 - 19968: jis0212<<14 | 0x47<<7 | 0x2B, - 39145 - 19968: jis0208<<14 | 0x50<<7 | 0x0A, - 39146 - 19968: jis0212<<14 | 0x47<<7 | 0x2C, - 39147 - 19968: jis0208<<14 | 0x50<<7 | 0x0B, - 39149 - 19968: jis0208<<14 | 0x31<<7 | 0x0B, - 39150 - 19968: jis0208<<14 | 0x3C<<7 | 0x1A, - 39151 - 19968: jis0208<<14 | 0x27<<7 | 0x32, - 39154 - 19968: jis0208<<14 | 0x0F<<7 | 0x5A, - 39155 - 19968: jis0212<<14 | 0x47<<7 | 0x2D, - 39156 - 19968: jis0208<<14 | 0x0F<<7 | 0x1A, - 39158 - 19968: jis0212<<14 | 0x47<<7 | 0x2E, - 39164 - 19968: jis0208<<14 | 0x1A<<7 | 0x53, - 39165 - 19968: jis0208<<14 | 0x2A<<7 | 0x0F, - 39166 - 19968: jis0208<<14 | 0x1D<<7 | 0x5D, - 39170 - 19968: jis0212<<14 | 0x47<<7 | 0x2F, - 39171 - 19968: jis0208<<14 | 0x50<<7 | 0x0C, - 39173 - 19968: jis0208<<14 | 0x2B<<7 | 0x3E, - 39175 - 19968: jis0212<<14 | 0x47<<7 | 0x30, - 39176 - 19968: jis0212<<14 | 0x47<<7 | 0x31, - 39177 - 19968: jis0208<<14 | 0x50<<7 | 0x0D, - 39178 - 19968: jis0208<<14 | 0x2C<<7 | 0x3B, - 39180 - 19968: jis0208<<14 | 0x10<<7 | 0x21, - 39184 - 19968: jis0208<<14 | 0x1A<<7 | 0x20, - 39185 - 19968: jis0212<<14 | 0x47<<7 | 0x32, - 39186 - 19968: jis0208<<14 | 0x50<<7 | 0x0E, - 39187 - 19968: jis0208<<14 | 0x11<<7 | 0x4D, - 39188 - 19968: jis0208<<14 | 0x50<<7 | 0x0F, - 39189 - 19968: jis0212<<14 | 0x47<<7 | 0x33, - 39190 - 19968: jis0212<<14 | 0x47<<7 | 0x34, - 39191 - 19968: jis0212<<14 | 0x47<<7 | 0x35, - 39192 - 19968: jis0208<<14 | 0x50<<7 | 0x10, - 39194 - 19968: jis0212<<14 | 0x47<<7 | 0x36, - 39195 - 19968: jis0212<<14 | 0x47<<7 | 0x37, - 39196 - 19968: jis0212<<14 | 0x47<<7 | 0x38, - 39197 - 19968: jis0208<<14 | 0x50<<7 | 0x12, - 39198 - 19968: jis0208<<14 | 0x50<<7 | 0x13, - 39199 - 19968: jis0212<<14 | 0x47<<7 | 0x39, - 39200 - 19968: jis0208<<14 | 0x50<<7 | 0x15, - 39201 - 19968: jis0208<<14 | 0x50<<7 | 0x11, - 39202 - 19968: jis0212<<14 | 0x47<<7 | 0x3A, - 39204 - 19968: jis0208<<14 | 0x50<<7 | 0x14, - 39206 - 19968: jis0212<<14 | 0x47<<7 | 0x3B, - 39207 - 19968: jis0208<<14 | 0x5B<<7 | 0x3D, - 39208 - 19968: jis0208<<14 | 0x13<<7 | 0x3A, - 39211 - 19968: jis0212<<14 | 0x47<<7 | 0x3D, - 39212 - 19968: jis0208<<14 | 0x50<<7 | 0x16, - 39214 - 19968: jis0208<<14 | 0x50<<7 | 0x17, - 39217 - 19968: jis0212<<14 | 0x47<<7 | 0x3E, - 39218 - 19968: jis0212<<14 | 0x47<<7 | 0x3F, - 39219 - 19968: jis0212<<14 | 0x47<<7 | 0x40, - 39220 - 19968: jis0212<<14 | 0x47<<7 | 0x41, - 39221 - 19968: jis0212<<14 | 0x47<<7 | 0x42, - 39225 - 19968: jis0212<<14 | 0x47<<7 | 0x43, - 39226 - 19968: jis0212<<14 | 0x47<<7 | 0x44, - 39227 - 19968: jis0212<<14 | 0x47<<7 | 0x45, - 39228 - 19968: jis0212<<14 | 0x47<<7 | 0x46, - 39229 - 19968: jis0208<<14 | 0x50<<7 | 0x18, - 39230 - 19968: jis0208<<14 | 0x50<<7 | 0x19, - 39232 - 19968: jis0212<<14 | 0x47<<7 | 0x47, - 39233 - 19968: jis0212<<14 | 0x47<<7 | 0x48, - 39234 - 19968: jis0208<<14 | 0x50<<7 | 0x1A, - 39237 - 19968: jis0208<<14 | 0x50<<7 | 0x1C, - 39238 - 19968: jis0212<<14 | 0x47<<7 | 0x49, - 39239 - 19968: jis0212<<14 | 0x47<<7 | 0x4A, - 39240 - 19968: jis0212<<14 | 0x47<<7 | 0x4B, - 39241 - 19968: jis0208<<14 | 0x50<<7 | 0x1B, - 39243 - 19968: jis0208<<14 | 0x50<<7 | 0x1E, - 39244 - 19968: jis0208<<14 | 0x50<<7 | 0x21, - 39245 - 19968: jis0212<<14 | 0x47<<7 | 0x4C, - 39246 - 19968: jis0212<<14 | 0x47<<7 | 0x4D, - 39248 - 19968: jis0208<<14 | 0x50<<7 | 0x1D, - 39249 - 19968: jis0208<<14 | 0x50<<7 | 0x1F, - 39250 - 19968: jis0208<<14 | 0x50<<7 | 0x20, - 39252 - 19968: jis0212<<14 | 0x47<<7 | 0x4E, - 39253 - 19968: jis0208<<14 | 0x50<<7 | 0x22, - 39255 - 19968: jis0208<<14 | 0x15<<7 | 0x21, - 39256 - 19968: jis0212<<14 | 0x47<<7 | 0x4F, - 39257 - 19968: jis0212<<14 | 0x47<<7 | 0x50, - 39259 - 19968: jis0212<<14 | 0x47<<7 | 0x51, - 39260 - 19968: jis0212<<14 | 0x47<<7 | 0x52, - 39262 - 19968: jis0212<<14 | 0x47<<7 | 0x53, - 39263 - 19968: jis0212<<14 | 0x47<<7 | 0x54, - 39264 - 19968: jis0212<<14 | 0x47<<7 | 0x55, - 39318 - 19968: jis0208<<14 | 0x1B<<7 | 0x52, - 39319 - 19968: jis0208<<14 | 0x50<<7 | 0x23, - 39320 - 19968: jis0208<<14 | 0x50<<7 | 0x24, - 39321 - 19968: jis0208<<14 | 0x18<<7 | 0x40, - 39323 - 19968: jis0212<<14 | 0x47<<7 | 0x56, - 39325 - 19968: jis0212<<14 | 0x47<<7 | 0x57, - 39326 - 19968: jis0208<<14 | 0x5B<<7 | 0x3F, - 39327 - 19968: jis0212<<14 | 0x47<<7 | 0x58, - 39333 - 19968: jis0208<<14 | 0x50<<7 | 0x25, - 39334 - 19968: jis0212<<14 | 0x47<<7 | 0x59, - 39336 - 19968: jis0208<<14 | 0x12<<7 | 0x1D, - 39340 - 19968: jis0208<<14 | 0x26<<7 | 0x2E, - 39341 - 19968: jis0208<<14 | 0x50<<7 | 0x26, - 39342 - 19968: jis0208<<14 | 0x50<<7 | 0x27, - 39344 - 19968: jis0212<<14 | 0x47<<7 | 0x5A, - 39345 - 19968: jis0212<<14 | 0x47<<7 | 0x5B, - 39346 - 19968: jis0212<<14 | 0x47<<7 | 0x5C, - 39347 - 19968: jis0208<<14 | 0x22<<7 | 0x39, - 39348 - 19968: jis0208<<14 | 0x25<<7 | 0x4A, - 39349 - 19968: jis0212<<14 | 0x47<<7 | 0x5D, - 39353 - 19968: jis0212<<14 | 0x48<<7 | 0x00, - 39354 - 19968: jis0212<<14 | 0x48<<7 | 0x01, - 39356 - 19968: jis0208<<14 | 0x50<<7 | 0x28, - 39357 - 19968: jis0212<<14 | 0x48<<7 | 0x02, - 39359 - 19968: jis0212<<14 | 0x48<<7 | 0x03, - 39361 - 19968: jis0208<<14 | 0x26<<7 | 0x5C, - 39363 - 19968: jis0212<<14 | 0x48<<7 | 0x04, - 39364 - 19968: jis0208<<14 | 0x21<<7 | 0x2B, - 39365 - 19968: jis0208<<14 | 0x10<<7 | 0x37, - 39366 - 19968: jis0208<<14 | 0x15<<7 | 0x4D, - 39368 - 19968: jis0208<<14 | 0x15<<7 | 0x4E, - 39369 - 19968: jis0212<<14 | 0x48<<7 | 0x05, - 39376 - 19968: jis0208<<14 | 0x22<<7 | 0x52, - 39377 - 19968: jis0208<<14 | 0x50<<7 | 0x2D, - 39378 - 19968: jis0208<<14 | 0x15<<7 | 0x4F, - 39379 - 19968: jis0212<<14 | 0x48<<7 | 0x06, - 39380 - 19968: jis0212<<14 | 0x48<<7 | 0x07, - 39381 - 19968: jis0208<<14 | 0x11<<7 | 0x4E, - 39384 - 19968: jis0208<<14 | 0x50<<7 | 0x2C, - 39385 - 19968: jis0212<<14 | 0x48<<7 | 0x08, - 39386 - 19968: jis0212<<14 | 0x48<<7 | 0x09, - 39387 - 19968: jis0208<<14 | 0x50<<7 | 0x2A, - 39388 - 19968: jis0212<<14 | 0x48<<7 | 0x0A, - 39389 - 19968: jis0208<<14 | 0x50<<7 | 0x2B, - 39390 - 19968: jis0212<<14 | 0x48<<7 | 0x0B, - 39391 - 19968: jis0208<<14 | 0x50<<7 | 0x29, - 39394 - 19968: jis0208<<14 | 0x50<<7 | 0x37, - 39399 - 19968: jis0212<<14 | 0x48<<7 | 0x0C, - 39402 - 19968: jis0212<<14 | 0x48<<7 | 0x0D, - 39403 - 19968: jis0212<<14 | 0x48<<7 | 0x0E, - 39404 - 19968: jis0212<<14 | 0x48<<7 | 0x0F, - 39405 - 19968: jis0208<<14 | 0x50<<7 | 0x2E, - 39406 - 19968: jis0208<<14 | 0x50<<7 | 0x2F, - 39408 - 19968: jis0212<<14 | 0x48<<7 | 0x10, - 39409 - 19968: jis0208<<14 | 0x50<<7 | 0x30, - 39410 - 19968: jis0208<<14 | 0x50<<7 | 0x31, - 39412 - 19968: jis0212<<14 | 0x48<<7 | 0x11, - 39413 - 19968: jis0212<<14 | 0x48<<7 | 0x12, - 39416 - 19968: jis0208<<14 | 0x50<<7 | 0x33, - 39417 - 19968: jis0212<<14 | 0x48<<7 | 0x13, - 39419 - 19968: jis0208<<14 | 0x50<<7 | 0x32, - 39421 - 19968: jis0212<<14 | 0x48<<7 | 0x14, - 39422 - 19968: jis0212<<14 | 0x48<<7 | 0x15, - 39423 - 19968: jis0208<<14 | 0x1C<<7 | 0x38, - 39425 - 19968: jis0208<<14 | 0x50<<7 | 0x34, - 39426 - 19968: jis0212<<14 | 0x48<<7 | 0x16, - 39427 - 19968: jis0212<<14 | 0x48<<7 | 0x17, - 39428 - 19968: jis0212<<14 | 0x48<<7 | 0x18, - 39429 - 19968: jis0208<<14 | 0x50<<7 | 0x36, - 39435 - 19968: jis0212<<14 | 0x48<<7 | 0x19, - 39436 - 19968: jis0212<<14 | 0x48<<7 | 0x1A, - 39438 - 19968: jis0208<<14 | 0x14<<7 | 0x12, - 39439 - 19968: jis0208<<14 | 0x50<<7 | 0x35, - 39440 - 19968: jis0212<<14 | 0x48<<7 | 0x1B, - 39441 - 19968: jis0212<<14 | 0x48<<7 | 0x1C, - 39442 - 19968: jis0208<<14 | 0x20<<7 | 0x5A, - 39443 - 19968: jis0208<<14 | 0x17<<7 | 0x12, - 39446 - 19968: jis0212<<14 | 0x48<<7 | 0x1D, - 39449 - 19968: jis0208<<14 | 0x50<<7 | 0x38, - 39454 - 19968: jis0212<<14 | 0x48<<7 | 0x1E, - 39456 - 19968: jis0212<<14 | 0x48<<7 | 0x1F, - 39458 - 19968: jis0212<<14 | 0x48<<7 | 0x20, - 39459 - 19968: jis0212<<14 | 0x48<<7 | 0x21, - 39460 - 19968: jis0212<<14 | 0x48<<7 | 0x22, - 39463 - 19968: jis0212<<14 | 0x48<<7 | 0x23, - 39464 - 19968: jis0208<<14 | 0x21<<7 | 0x2C, - 39467 - 19968: jis0208<<14 | 0x50<<7 | 0x39, - 39469 - 19968: jis0212<<14 | 0x48<<7 | 0x24, - 39470 - 19968: jis0212<<14 | 0x48<<7 | 0x25, - 39472 - 19968: jis0208<<14 | 0x25<<7 | 0x0C, - 39475 - 19968: jis0212<<14 | 0x48<<7 | 0x26, - 39477 - 19968: jis0212<<14 | 0x48<<7 | 0x27, - 39478 - 19968: jis0212<<14 | 0x48<<7 | 0x28, - 39479 - 19968: jis0208<<14 | 0x50<<7 | 0x3A, - 39480 - 19968: jis0212<<14 | 0x48<<7 | 0x29, - 39486 - 19968: jis0208<<14 | 0x50<<7 | 0x3F, - 39488 - 19968: jis0208<<14 | 0x50<<7 | 0x3D, - 39489 - 19968: jis0212<<14 | 0x48<<7 | 0x2B, - 39490 - 19968: jis0208<<14 | 0x50<<7 | 0x3C, - 39491 - 19968: jis0208<<14 | 0x50<<7 | 0x3E, - 39492 - 19968: jis0212<<14 | 0x48<<7 | 0x2C, - 39493 - 19968: jis0208<<14 | 0x50<<7 | 0x3B, - 39495 - 19968: jis0212<<14 | 0x48<<7 | 0x2A, - 39498 - 19968: jis0212<<14 | 0x48<<7 | 0x2D, - 39499 - 19968: jis0212<<14 | 0x48<<7 | 0x2E, - 39500 - 19968: jis0212<<14 | 0x48<<7 | 0x2F, - 39501 - 19968: jis0208<<14 | 0x50<<7 | 0x41, - 39502 - 19968: jis0208<<14 | 0x5B<<7 | 0x40, - 39505 - 19968: jis0212<<14 | 0x48<<7 | 0x31, - 39508 - 19968: jis0212<<14 | 0x48<<7 | 0x32, - 39509 - 19968: jis0208<<14 | 0x50<<7 | 0x40, - 39510 - 19968: jis0212<<14 | 0x48<<7 | 0x33, - 39511 - 19968: jis0208<<14 | 0x50<<7 | 0x43, - 39514 - 19968: jis0208<<14 | 0x15<<7 | 0x22, - 39515 - 19968: jis0208<<14 | 0x50<<7 | 0x42, - 39517 - 19968: jis0212<<14 | 0x48<<7 | 0x34, - 39519 - 19968: jis0208<<14 | 0x50<<7 | 0x44, - 39522 - 19968: jis0208<<14 | 0x50<<7 | 0x45, - 39524 - 19968: jis0208<<14 | 0x50<<7 | 0x47, - 39525 - 19968: jis0208<<14 | 0x50<<7 | 0x46, - 39529 - 19968: jis0208<<14 | 0x50<<7 | 0x48, - 39530 - 19968: jis0208<<14 | 0x50<<7 | 0x4A, - 39531 - 19968: jis0208<<14 | 0x50<<7 | 0x49, - 39592 - 19968: jis0208<<14 | 0x18<<7 | 0x5B, - 39594 - 19968: jis0212<<14 | 0x48<<7 | 0x35, - 39596 - 19968: jis0212<<14 | 0x48<<7 | 0x36, - 39597 - 19968: jis0208<<14 | 0x50<<7 | 0x4B, - 39598 - 19968: jis0212<<14 | 0x48<<7 | 0x37, - 39599 - 19968: jis0212<<14 | 0x48<<7 | 0x38, - 39600 - 19968: jis0208<<14 | 0x50<<7 | 0x4C, - 39602 - 19968: jis0212<<14 | 0x48<<7 | 0x39, - 39604 - 19968: jis0212<<14 | 0x48<<7 | 0x3A, - 39605 - 19968: jis0212<<14 | 0x48<<7 | 0x3B, - 39606 - 19968: jis0212<<14 | 0x48<<7 | 0x3C, - 39608 - 19968: jis0208<<14 | 0x12<<7 | 0x1B, - 39609 - 19968: jis0212<<14 | 0x48<<7 | 0x3D, - 39611 - 19968: jis0212<<14 | 0x48<<7 | 0x3E, - 39612 - 19968: jis0208<<14 | 0x50<<7 | 0x4D, - 39614 - 19968: jis0212<<14 | 0x48<<7 | 0x3F, - 39615 - 19968: jis0212<<14 | 0x48<<7 | 0x40, - 39616 - 19968: jis0208<<14 | 0x50<<7 | 0x4E, - 39617 - 19968: jis0212<<14 | 0x48<<7 | 0x41, - 39619 - 19968: jis0212<<14 | 0x48<<7 | 0x42, - 39620 - 19968: jis0208<<14 | 0x1E<<7 | 0x50, - 39622 - 19968: jis0212<<14 | 0x48<<7 | 0x43, - 39624 - 19968: jis0212<<14 | 0x48<<7 | 0x44, - 39630 - 19968: jis0212<<14 | 0x48<<7 | 0x45, - 39631 - 19968: jis0208<<14 | 0x50<<7 | 0x4F, - 39632 - 19968: jis0212<<14 | 0x48<<7 | 0x46, - 39633 - 19968: jis0208<<14 | 0x50<<7 | 0x50, - 39634 - 19968: jis0212<<14 | 0x48<<7 | 0x47, - 39635 - 19968: jis0208<<14 | 0x50<<7 | 0x51, - 39636 - 19968: jis0208<<14 | 0x50<<7 | 0x52, - 39637 - 19968: jis0212<<14 | 0x48<<7 | 0x48, - 39638 - 19968: jis0212<<14 | 0x48<<7 | 0x49, - 39639 - 19968: jis0212<<14 | 0x48<<7 | 0x4A, - 39640 - 19968: jis0208<<14 | 0x18<<7 | 0x41, - 39641 - 19968: jis0208<<14 | 0x5B<<7 | 0x41, - 39643 - 19968: jis0212<<14 | 0x48<<7 | 0x4B, - 39644 - 19968: jis0208<<14 | 0x5B<<7 | 0x42, - 39646 - 19968: jis0208<<14 | 0x50<<7 | 0x53, - 39647 - 19968: jis0208<<14 | 0x50<<7 | 0x54, - 39648 - 19968: jis0212<<14 | 0x48<<7 | 0x4D, - 39650 - 19968: jis0208<<14 | 0x50<<7 | 0x55, - 39651 - 19968: jis0208<<14 | 0x50<<7 | 0x56, - 39652 - 19968: jis0212<<14 | 0x48<<7 | 0x4E, - 39653 - 19968: jis0212<<14 | 0x48<<7 | 0x4F, - 39654 - 19968: jis0208<<14 | 0x50<<7 | 0x57, - 39655 - 19968: jis0212<<14 | 0x48<<7 | 0x50, - 39657 - 19968: jis0212<<14 | 0x48<<7 | 0x51, - 39658 - 19968: jis0208<<14 | 0x27<<7 | 0x10, - 39659 - 19968: jis0208<<14 | 0x50<<7 | 0x59, - 39660 - 19968: jis0212<<14 | 0x48<<7 | 0x52, - 39661 - 19968: jis0208<<14 | 0x28<<7 | 0x05, - 39662 - 19968: jis0208<<14 | 0x50<<7 | 0x5A, - 39663 - 19968: jis0208<<14 | 0x50<<7 | 0x58, - 39665 - 19968: jis0208<<14 | 0x50<<7 | 0x5C, - 39666 - 19968: jis0212<<14 | 0x48<<7 | 0x53, - 39667 - 19968: jis0212<<14 | 0x48<<7 | 0x54, - 39668 - 19968: jis0208<<14 | 0x50<<7 | 0x5B, - 39669 - 19968: jis0212<<14 | 0x48<<7 | 0x55, - 39671 - 19968: jis0208<<14 | 0x50<<7 | 0x5D, - 39673 - 19968: jis0212<<14 | 0x48<<7 | 0x56, - 39674 - 19968: jis0212<<14 | 0x48<<7 | 0x57, - 39675 - 19968: jis0208<<14 | 0x51<<7 | 0x00, - 39677 - 19968: jis0212<<14 | 0x48<<7 | 0x58, - 39679 - 19968: jis0212<<14 | 0x48<<7 | 0x59, - 39680 - 19968: jis0212<<14 | 0x48<<7 | 0x5A, - 39681 - 19968: jis0212<<14 | 0x48<<7 | 0x5B, - 39682 - 19968: jis0212<<14 | 0x48<<7 | 0x5C, - 39683 - 19968: jis0212<<14 | 0x48<<7 | 0x5D, - 39684 - 19968: jis0212<<14 | 0x49<<7 | 0x00, - 39685 - 19968: jis0212<<14 | 0x49<<7 | 0x01, - 39686 - 19968: jis0208<<14 | 0x51<<7 | 0x01, - 39688 - 19968: jis0212<<14 | 0x49<<7 | 0x02, - 39689 - 19968: jis0212<<14 | 0x49<<7 | 0x03, - 39691 - 19968: jis0212<<14 | 0x49<<7 | 0x04, - 39692 - 19968: jis0212<<14 | 0x49<<7 | 0x05, - 39693 - 19968: jis0212<<14 | 0x49<<7 | 0x06, - 39694 - 19968: jis0212<<14 | 0x49<<7 | 0x07, - 39696 - 19968: jis0212<<14 | 0x49<<7 | 0x08, - 39698 - 19968: jis0212<<14 | 0x49<<7 | 0x09, - 39702 - 19968: jis0212<<14 | 0x49<<7 | 0x0A, - 39704 - 19968: jis0208<<14 | 0x51<<7 | 0x02, - 39705 - 19968: jis0212<<14 | 0x49<<7 | 0x0B, - 39706 - 19968: jis0208<<14 | 0x51<<7 | 0x03, - 39707 - 19968: jis0212<<14 | 0x49<<7 | 0x0C, - 39708 - 19968: jis0212<<14 | 0x49<<7 | 0x0D, - 39711 - 19968: jis0208<<14 | 0x51<<7 | 0x04, - 39712 - 19968: jis0212<<14 | 0x49<<7 | 0x0E, - 39714 - 19968: jis0208<<14 | 0x51<<7 | 0x05, - 39715 - 19968: jis0208<<14 | 0x51<<7 | 0x06, - 39717 - 19968: jis0208<<14 | 0x51<<7 | 0x07, - 39718 - 19968: jis0212<<14 | 0x49<<7 | 0x0F, - 39719 - 19968: jis0208<<14 | 0x51<<7 | 0x08, - 39720 - 19968: jis0208<<14 | 0x51<<7 | 0x09, - 39721 - 19968: jis0208<<14 | 0x51<<7 | 0x0A, - 39722 - 19968: jis0208<<14 | 0x51<<7 | 0x0B, - 39723 - 19968: jis0212<<14 | 0x49<<7 | 0x10, - 39725 - 19968: jis0212<<14 | 0x49<<7 | 0x11, - 39726 - 19968: jis0208<<14 | 0x51<<7 | 0x0C, - 39727 - 19968: jis0208<<14 | 0x51<<7 | 0x0D, - 39729 - 19968: jis0208<<14 | 0x3C<<7 | 0x14, - 39730 - 19968: jis0208<<14 | 0x51<<7 | 0x0E, - 39731 - 19968: jis0212<<14 | 0x49<<7 | 0x12, - 39732 - 19968: jis0212<<14 | 0x49<<7 | 0x13, - 39733 - 19968: jis0212<<14 | 0x49<<7 | 0x14, - 39735 - 19968: jis0212<<14 | 0x49<<7 | 0x15, - 39737 - 19968: jis0212<<14 | 0x49<<7 | 0x16, - 39738 - 19968: jis0212<<14 | 0x49<<7 | 0x17, - 39739 - 19968: jis0208<<14 | 0x43<<7 | 0x57, - 39740 - 19968: jis0208<<14 | 0x14<<7 | 0x13, - 39741 - 19968: jis0212<<14 | 0x49<<7 | 0x18, - 39745 - 19968: jis0208<<14 | 0x12<<7 | 0x00, - 39746 - 19968: jis0208<<14 | 0x19<<7 | 0x11, - 39747 - 19968: jis0208<<14 | 0x51<<7 | 0x10, - 39748 - 19968: jis0208<<14 | 0x51<<7 | 0x0F, - 39749 - 19968: jis0208<<14 | 0x2B<<7 | 0x04, - 39752 - 19968: jis0212<<14 | 0x49<<7 | 0x19, - 39755 - 19968: jis0212<<14 | 0x49<<7 | 0x1A, - 39756 - 19968: jis0212<<14 | 0x49<<7 | 0x1B, - 39757 - 19968: jis0208<<14 | 0x51<<7 | 0x12, - 39758 - 19968: jis0208<<14 | 0x51<<7 | 0x13, - 39759 - 19968: jis0208<<14 | 0x51<<7 | 0x11, - 39761 - 19968: jis0208<<14 | 0x51<<7 | 0x14, - 39764 - 19968: jis0208<<14 | 0x2A<<7 | 0x41, - 39765 - 19968: jis0212<<14 | 0x49<<7 | 0x1C, - 39766 - 19968: jis0212<<14 | 0x49<<7 | 0x1D, - 39767 - 19968: jis0212<<14 | 0x49<<7 | 0x1E, - 39768 - 19968: jis0208<<14 | 0x51<<7 | 0x15, - 39770 - 19968: jis0208<<14 | 0x14<<7 | 0x5A, - 39771 - 19968: jis0212<<14 | 0x49<<7 | 0x1F, - 39774 - 19968: jis0212<<14 | 0x49<<7 | 0x20, - 39777 - 19968: jis0212<<14 | 0x49<<7 | 0x21, - 39779 - 19968: jis0212<<14 | 0x49<<7 | 0x22, - 39781 - 19968: jis0212<<14 | 0x49<<7 | 0x23, - 39782 - 19968: jis0212<<14 | 0x49<<7 | 0x24, - 39784 - 19968: jis0212<<14 | 0x49<<7 | 0x25, - 39786 - 19968: jis0212<<14 | 0x49<<7 | 0x26, - 39787 - 19968: jis0212<<14 | 0x49<<7 | 0x27, - 39788 - 19968: jis0212<<14 | 0x49<<7 | 0x28, - 39789 - 19968: jis0212<<14 | 0x49<<7 | 0x29, - 39790 - 19968: jis0212<<14 | 0x49<<7 | 0x2A, - 39791 - 19968: jis0208<<14 | 0x2E<<7 | 0x04, - 39794 - 19968: jis0208<<14 | 0x5B<<7 | 0x44, - 39795 - 19968: jis0212<<14 | 0x49<<7 | 0x2B, - 39796 - 19968: jis0208<<14 | 0x51<<7 | 0x16, - 39797 - 19968: jis0208<<14 | 0x5B<<7 | 0x43, - 39799 - 19968: jis0212<<14 | 0x49<<7 | 0x2D, - 39800 - 19968: jis0212<<14 | 0x49<<7 | 0x2E, - 39801 - 19968: jis0212<<14 | 0x49<<7 | 0x2F, - 39807 - 19968: jis0212<<14 | 0x49<<7 | 0x30, - 39808 - 19968: jis0212<<14 | 0x49<<7 | 0x31, - 39811 - 19968: jis0208<<14 | 0x51<<7 | 0x18, - 39812 - 19968: jis0212<<14 | 0x49<<7 | 0x32, - 39813 - 19968: jis0212<<14 | 0x49<<7 | 0x33, - 39814 - 19968: jis0212<<14 | 0x49<<7 | 0x34, - 39815 - 19968: jis0212<<14 | 0x49<<7 | 0x35, - 39817 - 19968: jis0212<<14 | 0x49<<7 | 0x36, - 39818 - 19968: jis0212<<14 | 0x49<<7 | 0x37, - 39819 - 19968: jis0212<<14 | 0x49<<7 | 0x38, - 39821 - 19968: jis0212<<14 | 0x49<<7 | 0x39, - 39822 - 19968: jis0208<<14 | 0x0F<<7 | 0x1D, - 39823 - 19968: jis0208<<14 | 0x5B<<7 | 0x45, - 39824 - 19968: jis0212<<14 | 0x49<<7 | 0x3B, - 39825 - 19968: jis0208<<14 | 0x51<<7 | 0x19, - 39826 - 19968: jis0208<<14 | 0x29<<7 | 0x0A, - 39827 - 19968: jis0208<<14 | 0x51<<7 | 0x17, - 39828 - 19968: jis0212<<14 | 0x49<<7 | 0x3C, - 39830 - 19968: jis0208<<14 | 0x51<<7 | 0x1A, - 39831 - 19968: jis0208<<14 | 0x51<<7 | 0x1B, - 39834 - 19968: jis0212<<14 | 0x49<<7 | 0x3D, - 39837 - 19968: jis0212<<14 | 0x49<<7 | 0x3E, - 39838 - 19968: jis0212<<14 | 0x49<<7 | 0x3F, - 39839 - 19968: jis0208<<14 | 0x51<<7 | 0x1C, - 39840 - 19968: jis0208<<14 | 0x51<<7 | 0x1D, - 39846 - 19968: jis0212<<14 | 0x49<<7 | 0x40, - 39847 - 19968: jis0212<<14 | 0x49<<7 | 0x41, - 39848 - 19968: jis0208<<14 | 0x51<<7 | 0x1E, - 39849 - 19968: jis0212<<14 | 0x49<<7 | 0x42, - 39850 - 19968: jis0208<<14 | 0x2A<<7 | 0x4D, - 39851 - 19968: jis0208<<14 | 0x1A<<7 | 0x0C, - 39852 - 19968: jis0212<<14 | 0x49<<7 | 0x43, - 39853 - 19968: jis0208<<14 | 0x19<<7 | 0x59, - 39854 - 19968: jis0208<<14 | 0x20<<7 | 0x0E, - 39856 - 19968: jis0212<<14 | 0x49<<7 | 0x44, - 39857 - 19968: jis0208<<14 | 0x5B<<7 | 0x46, - 39858 - 19968: jis0212<<14 | 0x49<<7 | 0x46, - 39860 - 19968: jis0208<<14 | 0x51<<7 | 0x1F, - 39863 - 19968: jis0212<<14 | 0x49<<7 | 0x47, - 39864 - 19968: jis0212<<14 | 0x49<<7 | 0x48, - 39865 - 19968: jis0208<<14 | 0x51<<7 | 0x22, - 39867 - 19968: jis0208<<14 | 0x5B<<7 | 0x47, - 39868 - 19968: jis0212<<14 | 0x49<<7 | 0x4A, - 39870 - 19968: jis0212<<14 | 0x49<<7 | 0x4B, - 39871 - 19968: jis0212<<14 | 0x49<<7 | 0x4C, - 39872 - 19968: jis0208<<14 | 0x51<<7 | 0x20, - 39873 - 19968: jis0212<<14 | 0x49<<7 | 0x4D, - 39878 - 19968: jis0208<<14 | 0x51<<7 | 0x23, - 39879 - 19968: jis0212<<14 | 0x49<<7 | 0x4E, - 39880 - 19968: jis0212<<14 | 0x49<<7 | 0x4F, - 39881 - 19968: jis0208<<14 | 0x17<<7 | 0x50, - 39882 - 19968: jis0208<<14 | 0x51<<7 | 0x21, - 39886 - 19968: jis0212<<14 | 0x49<<7 | 0x50, - 39887 - 19968: jis0208<<14 | 0x51<<7 | 0x24, - 39888 - 19968: jis0212<<14 | 0x49<<7 | 0x51, - 39889 - 19968: jis0208<<14 | 0x51<<7 | 0x25, - 39890 - 19968: jis0208<<14 | 0x51<<7 | 0x26, - 39892 - 19968: jis0208<<14 | 0x51<<7 | 0x2A, - 39894 - 19968: jis0208<<14 | 0x1A<<7 | 0x09, - 39895 - 19968: jis0212<<14 | 0x49<<7 | 0x52, - 39896 - 19968: jis0212<<14 | 0x49<<7 | 0x53, - 39899 - 19968: jis0208<<14 | 0x21<<7 | 0x43, - 39901 - 19968: jis0212<<14 | 0x49<<7 | 0x54, - 39903 - 19968: jis0212<<14 | 0x49<<7 | 0x55, - 39905 - 19968: jis0208<<14 | 0x51<<7 | 0x2B, - 39906 - 19968: jis0208<<14 | 0x51<<7 | 0x28, - 39907 - 19968: jis0208<<14 | 0x51<<7 | 0x27, - 39908 - 19968: jis0208<<14 | 0x51<<7 | 0x29, - 39909 - 19968: jis0212<<14 | 0x49<<7 | 0x56, - 39911 - 19968: jis0212<<14 | 0x49<<7 | 0x57, - 39912 - 19968: jis0208<<14 | 0x16<<7 | 0x3E, - 39914 - 19968: jis0212<<14 | 0x49<<7 | 0x58, - 39915 - 19968: jis0212<<14 | 0x49<<7 | 0x59, - 39919 - 19968: jis0212<<14 | 0x49<<7 | 0x5A, - 39920 - 19968: jis0208<<14 | 0x51<<7 | 0x2F, - 39921 - 19968: jis0208<<14 | 0x51<<7 | 0x2E, - 39922 - 19968: jis0208<<14 | 0x51<<7 | 0x2D, - 39923 - 19968: jis0212<<14 | 0x49<<7 | 0x5B, - 39925 - 19968: jis0208<<14 | 0x0F<<7 | 0x12, - 39927 - 19968: jis0212<<14 | 0x49<<7 | 0x5C, - 39928 - 19968: jis0212<<14 | 0x49<<7 | 0x5D, - 39929 - 19968: jis0212<<14 | 0x4A<<7 | 0x00, - 39930 - 19968: jis0212<<14 | 0x4A<<7 | 0x01, - 39933 - 19968: jis0212<<14 | 0x4A<<7 | 0x02, - 39935 - 19968: jis0212<<14 | 0x4A<<7 | 0x03, - 39936 - 19968: jis0208<<14 | 0x5B<<7 | 0x48, - 39938 - 19968: jis0212<<14 | 0x4A<<7 | 0x05, - 39940 - 19968: jis0208<<14 | 0x51<<7 | 0x39, - 39942 - 19968: jis0208<<14 | 0x51<<7 | 0x35, - 39944 - 19968: jis0208<<14 | 0x51<<7 | 0x36, - 39945 - 19968: jis0208<<14 | 0x51<<7 | 0x32, - 39946 - 19968: jis0208<<14 | 0x51<<7 | 0x38, - 39947 - 19968: jis0212<<14 | 0x4A<<7 | 0x06, - 39948 - 19968: jis0208<<14 | 0x51<<7 | 0x34, - 39949 - 19968: jis0208<<14 | 0x12<<7 | 0x41, - 39951 - 19968: jis0212<<14 | 0x4A<<7 | 0x07, - 39952 - 19968: jis0208<<14 | 0x2E<<7 | 0x2B, - 39953 - 19968: jis0212<<14 | 0x4A<<7 | 0x08, - 39954 - 19968: jis0208<<14 | 0x51<<7 | 0x37, - 39955 - 19968: jis0208<<14 | 0x51<<7 | 0x33, - 39956 - 19968: jis0208<<14 | 0x51<<7 | 0x31, - 39957 - 19968: jis0208<<14 | 0x51<<7 | 0x30, - 39958 - 19968: jis0212<<14 | 0x4A<<7 | 0x09, - 39960 - 19968: jis0212<<14 | 0x4A<<7 | 0x0A, - 39961 - 19968: jis0212<<14 | 0x4A<<7 | 0x0B, - 39962 - 19968: jis0212<<14 | 0x4A<<7 | 0x0C, - 39963 - 19968: jis0208<<14 | 0x51<<7 | 0x3B, - 39964 - 19968: jis0212<<14 | 0x4A<<7 | 0x0D, - 39966 - 19968: jis0212<<14 | 0x4A<<7 | 0x0E, - 39969 - 19968: jis0208<<14 | 0x51<<7 | 0x3E, - 39970 - 19968: jis0212<<14 | 0x4A<<7 | 0x0F, - 39971 - 19968: jis0212<<14 | 0x4A<<7 | 0x10, - 39972 - 19968: jis0208<<14 | 0x51<<7 | 0x3D, - 39973 - 19968: jis0208<<14 | 0x51<<7 | 0x3C, - 39974 - 19968: jis0212<<14 | 0x4A<<7 | 0x11, - 39975 - 19968: jis0212<<14 | 0x4A<<7 | 0x12, - 39976 - 19968: jis0212<<14 | 0x4A<<7 | 0x13, - 39977 - 19968: jis0212<<14 | 0x4A<<7 | 0x14, - 39978 - 19968: jis0212<<14 | 0x4A<<7 | 0x15, - 39981 - 19968: jis0208<<14 | 0x28<<7 | 0x28, - 39982 - 19968: jis0208<<14 | 0x51<<7 | 0x3A, - 39983 - 19968: jis0208<<14 | 0x0F<<7 | 0x52, - 39984 - 19968: jis0208<<14 | 0x51<<7 | 0x3F, - 39985 - 19968: jis0212<<14 | 0x4A<<7 | 0x16, - 39986 - 19968: jis0208<<14 | 0x51<<7 | 0x41, - 39989 - 19968: jis0212<<14 | 0x4A<<7 | 0x17, - 39990 - 19968: jis0212<<14 | 0x4A<<7 | 0x18, - 39991 - 19968: jis0212<<14 | 0x4A<<7 | 0x19, - 39993 - 19968: jis0208<<14 | 0x12<<7 | 0x4E, - 39994 - 19968: jis0208<<14 | 0x51<<7 | 0x2C, - 39995 - 19968: jis0208<<14 | 0x10<<7 | 0x16, - 39997 - 19968: jis0212<<14 | 0x4A<<7 | 0x1A, - 39998 - 19968: jis0208<<14 | 0x51<<7 | 0x43, - 40001 - 19968: jis0212<<14 | 0x4A<<7 | 0x1B, - 40003 - 19968: jis0212<<14 | 0x4A<<7 | 0x1C, - 40004 - 19968: jis0212<<14 | 0x4A<<7 | 0x1D, - 40005 - 19968: jis0212<<14 | 0x4A<<7 | 0x1E, - 40006 - 19968: jis0208<<14 | 0x51<<7 | 0x42, - 40007 - 19968: jis0208<<14 | 0x51<<7 | 0x40, - 40008 - 19968: jis0208<<14 | 0x22<<7 | 0x0C, - 40009 - 19968: jis0212<<14 | 0x4A<<7 | 0x1F, - 40010 - 19968: jis0212<<14 | 0x4A<<7 | 0x20, - 40014 - 19968: jis0212<<14 | 0x4A<<7 | 0x21, - 40015 - 19968: jis0212<<14 | 0x4A<<7 | 0x22, - 40016 - 19968: jis0212<<14 | 0x4A<<7 | 0x23, - 40018 - 19968: jis0208<<14 | 0x2A<<7 | 0x4F, - 40019 - 19968: jis0212<<14 | 0x4A<<7 | 0x24, - 40020 - 19968: jis0212<<14 | 0x4A<<7 | 0x25, - 40022 - 19968: jis0212<<14 | 0x4A<<7 | 0x26, - 40023 - 19968: jis0208<<14 | 0x2D<<7 | 0x39, - 40024 - 19968: jis0212<<14 | 0x4A<<7 | 0x27, - 40026 - 19968: jis0208<<14 | 0x51<<7 | 0x44, - 40027 - 19968: jis0212<<14 | 0x4A<<7 | 0x28, - 40028 - 19968: jis0212<<14 | 0x4A<<7 | 0x2F, - 40029 - 19968: jis0212<<14 | 0x4A<<7 | 0x29, - 40030 - 19968: jis0212<<14 | 0x4A<<7 | 0x2A, - 40031 - 19968: jis0212<<14 | 0x4A<<7 | 0x2B, - 40032 - 19968: jis0208<<14 | 0x51<<7 | 0x45, - 40035 - 19968: jis0212<<14 | 0x4A<<7 | 0x2C, - 40039 - 19968: jis0208<<14 | 0x51<<7 | 0x46, - 40040 - 19968: jis0212<<14 | 0x4A<<7 | 0x31, - 40041 - 19968: jis0212<<14 | 0x4A<<7 | 0x2D, - 40042 - 19968: jis0212<<14 | 0x4A<<7 | 0x2E, - 40043 - 19968: jis0212<<14 | 0x4A<<7 | 0x30, - 40046 - 19968: jis0212<<14 | 0x4A<<7 | 0x32, - 40048 - 19968: jis0212<<14 | 0x4A<<7 | 0x33, - 40050 - 19968: jis0212<<14 | 0x4A<<7 | 0x34, - 40053 - 19968: jis0212<<14 | 0x4A<<7 | 0x35, - 40054 - 19968: jis0208<<14 | 0x51<<7 | 0x47, - 40055 - 19968: jis0212<<14 | 0x4A<<7 | 0x36, - 40056 - 19968: jis0208<<14 | 0x51<<7 | 0x48, - 40059 - 19968: jis0212<<14 | 0x4A<<7 | 0x37, - 40165 - 19968: jis0208<<14 | 0x23<<7 | 0x1A, - 40166 - 19968: jis0212<<14 | 0x4A<<7 | 0x38, - 40167 - 19968: jis0208<<14 | 0x51<<7 | 0x49, - 40169 - 19968: jis0208<<14 | 0x27<<7 | 0x16, - 40171 - 19968: jis0208<<14 | 0x51<<7 | 0x4E, - 40172 - 19968: jis0208<<14 | 0x51<<7 | 0x4A, - 40176 - 19968: jis0208<<14 | 0x51<<7 | 0x4B, - 40178 - 19968: jis0212<<14 | 0x4A<<7 | 0x39, - 40179 - 19968: jis0208<<14 | 0x2A<<7 | 0x10, - 40180 - 19968: jis0208<<14 | 0x2B<<7 | 0x23, - 40182 - 19968: jis0208<<14 | 0x25<<7 | 0x2F, - 40183 - 19968: jis0212<<14 | 0x4A<<7 | 0x3A, - 40185 - 19968: jis0212<<14 | 0x4A<<7 | 0x3B, - 40194 - 19968: jis0212<<14 | 0x4A<<7 | 0x3D, - 40195 - 19968: jis0208<<14 | 0x51<<7 | 0x4F, - 40198 - 19968: jis0208<<14 | 0x51<<7 | 0x50, - 40199 - 19968: jis0208<<14 | 0x25<<7 | 0x1D, - 40200 - 19968: jis0208<<14 | 0x51<<7 | 0x4D, - 40201 - 19968: jis0208<<14 | 0x51<<7 | 0x4C, - 40203 - 19968: jis0212<<14 | 0x4A<<7 | 0x3C, - 40206 - 19968: jis0208<<14 | 0x11<<7 | 0x09, - 40209 - 19968: jis0212<<14 | 0x4A<<7 | 0x3E, - 40210 - 19968: jis0208<<14 | 0x51<<7 | 0x58, - 40213 - 19968: jis0208<<14 | 0x51<<7 | 0x57, - 40215 - 19968: jis0212<<14 | 0x4A<<7 | 0x3F, - 40216 - 19968: jis0212<<14 | 0x4A<<7 | 0x40, - 40219 - 19968: jis0208<<14 | 0x10<<7 | 0x54, - 40220 - 19968: jis0212<<14 | 0x4A<<7 | 0x41, - 40221 - 19968: jis0212<<14 | 0x4A<<7 | 0x42, - 40222 - 19968: jis0212<<14 | 0x4A<<7 | 0x43, - 40223 - 19968: jis0208<<14 | 0x51<<7 | 0x55, - 40227 - 19968: jis0208<<14 | 0x51<<7 | 0x54, - 40230 - 19968: jis0208<<14 | 0x51<<7 | 0x52, - 40232 - 19968: jis0208<<14 | 0x12<<7 | 0x5A, - 40234 - 19968: jis0208<<14 | 0x51<<7 | 0x51, - 40235 - 19968: jis0208<<14 | 0x1B<<7 | 0x11, - 40236 - 19968: jis0208<<14 | 0x11<<7 | 0x08, - 40239 - 19968: jis0212<<14 | 0x4A<<7 | 0x44, - 40240 - 19968: jis0212<<14 | 0x4A<<7 | 0x45, - 40242 - 19968: jis0212<<14 | 0x4A<<7 | 0x46, - 40243 - 19968: jis0212<<14 | 0x4A<<7 | 0x47, - 40244 - 19968: jis0212<<14 | 0x4A<<7 | 0x48, - 40250 - 19968: jis0212<<14 | 0x4A<<7 | 0x49, - 40251 - 19968: jis0208<<14 | 0x18<<7 | 0x42, - 40252 - 19968: jis0212<<14 | 0x4A<<7 | 0x4A, - 40253 - 19968: jis0212<<14 | 0x4A<<7 | 0x4C, - 40254 - 19968: jis0208<<14 | 0x51<<7 | 0x5B, - 40255 - 19968: jis0208<<14 | 0x51<<7 | 0x5A, - 40257 - 19968: jis0208<<14 | 0x51<<7 | 0x59, - 40258 - 19968: jis0212<<14 | 0x4A<<7 | 0x4D, - 40259 - 19968: jis0212<<14 | 0x4A<<7 | 0x4E, - 40260 - 19968: jis0208<<14 | 0x51<<7 | 0x56, - 40261 - 19968: jis0212<<14 | 0x4A<<7 | 0x4B, - 40262 - 19968: jis0208<<14 | 0x51<<7 | 0x5C, - 40263 - 19968: jis0212<<14 | 0x4A<<7 | 0x4F, - 40264 - 19968: jis0208<<14 | 0x51<<7 | 0x5D, - 40266 - 19968: jis0212<<14 | 0x4A<<7 | 0x50, - 40272 - 19968: jis0208<<14 | 0x52<<7 | 0x04, - 40273 - 19968: jis0208<<14 | 0x52<<7 | 0x03, - 40275 - 19968: jis0212<<14 | 0x4A<<7 | 0x51, - 40276 - 19968: jis0212<<14 | 0x4A<<7 | 0x52, - 40281 - 19968: jis0208<<14 | 0x52<<7 | 0x05, - 40284 - 19968: jis0208<<14 | 0x10<<7 | 0x0C, - 40285 - 19968: jis0208<<14 | 0x52<<7 | 0x00, - 40286 - 19968: jis0208<<14 | 0x52<<7 | 0x01, - 40287 - 19968: jis0212<<14 | 0x4A<<7 | 0x53, - 40288 - 19968: jis0208<<14 | 0x18<<7 | 0x53, - 40289 - 19968: jis0208<<14 | 0x2B<<7 | 0x18, - 40290 - 19968: jis0212<<14 | 0x4A<<7 | 0x55, - 40291 - 19968: jis0212<<14 | 0x4A<<7 | 0x54, - 40292 - 19968: jis0208<<14 | 0x52<<7 | 0x02, - 40293 - 19968: jis0212<<14 | 0x4A<<7 | 0x56, - 40297 - 19968: jis0212<<14 | 0x4A<<7 | 0x57, - 40298 - 19968: jis0212<<14 | 0x4A<<7 | 0x58, - 40299 - 19968: jis0208<<14 | 0x5B<<7 | 0x4A, - 40300 - 19968: jis0208<<14 | 0x2A<<7 | 0x11, - 40303 - 19968: jis0208<<14 | 0x52<<7 | 0x0A, - 40304 - 19968: jis0208<<14 | 0x5B<<7 | 0x49, - 40306 - 19968: jis0208<<14 | 0x52<<7 | 0x06, - 40310 - 19968: jis0212<<14 | 0x4A<<7 | 0x5B, - 40311 - 19968: jis0212<<14 | 0x4A<<7 | 0x5C, - 40314 - 19968: jis0208<<14 | 0x52<<7 | 0x0B, - 40315 - 19968: jis0212<<14 | 0x4A<<7 | 0x5D, - 40316 - 19968: jis0212<<14 | 0x4B<<7 | 0x00, - 40318 - 19968: jis0212<<14 | 0x4B<<7 | 0x01, - 40323 - 19968: jis0212<<14 | 0x4B<<7 | 0x02, - 40324 - 19968: jis0212<<14 | 0x4B<<7 | 0x03, - 40326 - 19968: jis0212<<14 | 0x4B<<7 | 0x04, - 40327 - 19968: jis0208<<14 | 0x52<<7 | 0x08, - 40329 - 19968: jis0208<<14 | 0x52<<7 | 0x07, - 40330 - 19968: jis0212<<14 | 0x4B<<7 | 0x05, - 40333 - 19968: jis0212<<14 | 0x4B<<7 | 0x06, - 40334 - 19968: jis0212<<14 | 0x4B<<7 | 0x07, - 40335 - 19968: jis0208<<14 | 0x16<<7 | 0x3B, - 40338 - 19968: jis0212<<14 | 0x4B<<7 | 0x08, - 40339 - 19968: jis0212<<14 | 0x4B<<7 | 0x09, - 40341 - 19968: jis0212<<14 | 0x4B<<7 | 0x0A, - 40342 - 19968: jis0212<<14 | 0x4B<<7 | 0x0B, - 40343 - 19968: jis0212<<14 | 0x4B<<7 | 0x0C, - 40344 - 19968: jis0212<<14 | 0x4B<<7 | 0x0D, - 40346 - 19968: jis0208<<14 | 0x52<<7 | 0x0C, - 40353 - 19968: jis0212<<14 | 0x4B<<7 | 0x0E, - 40356 - 19968: jis0208<<14 | 0x52<<7 | 0x0D, - 40361 - 19968: jis0208<<14 | 0x52<<7 | 0x0E, - 40362 - 19968: jis0212<<14 | 0x4B<<7 | 0x0F, - 40363 - 19968: jis0208<<14 | 0x52<<7 | 0x09, - 40364 - 19968: jis0212<<14 | 0x4B<<7 | 0x10, - 40366 - 19968: jis0212<<14 | 0x4B<<7 | 0x11, - 40367 - 19968: jis0208<<14 | 0x51<<7 | 0x53, - 40369 - 19968: jis0212<<14 | 0x4B<<7 | 0x12, - 40370 - 19968: jis0208<<14 | 0x52<<7 | 0x0F, - 40372 - 19968: jis0208<<14 | 0x23<<7 | 0x40, - 40373 - 19968: jis0212<<14 | 0x4B<<7 | 0x13, - 40376 - 19968: jis0208<<14 | 0x52<<7 | 0x13, - 40377 - 19968: jis0212<<14 | 0x4B<<7 | 0x14, - 40378 - 19968: jis0208<<14 | 0x52<<7 | 0x14, - 40379 - 19968: jis0208<<14 | 0x52<<7 | 0x12, - 40380 - 19968: jis0212<<14 | 0x4B<<7 | 0x15, - 40383 - 19968: jis0212<<14 | 0x4B<<7 | 0x16, - 40385 - 19968: jis0208<<14 | 0x52<<7 | 0x11, - 40386 - 19968: jis0208<<14 | 0x52<<7 | 0x17, - 40387 - 19968: jis0212<<14 | 0x4B<<7 | 0x17, - 40388 - 19968: jis0208<<14 | 0x52<<7 | 0x10, - 40390 - 19968: jis0208<<14 | 0x52<<7 | 0x15, - 40391 - 19968: jis0212<<14 | 0x4B<<7 | 0x18, - 40393 - 19968: jis0212<<14 | 0x4B<<7 | 0x19, - 40394 - 19968: jis0212<<14 | 0x4B<<7 | 0x1A, - 40399 - 19968: jis0208<<14 | 0x52<<7 | 0x16, - 40403 - 19968: jis0208<<14 | 0x52<<7 | 0x19, - 40404 - 19968: jis0212<<14 | 0x4B<<7 | 0x1B, - 40405 - 19968: jis0212<<14 | 0x4B<<7 | 0x1C, - 40406 - 19968: jis0212<<14 | 0x4B<<7 | 0x1D, - 40407 - 19968: jis0212<<14 | 0x4B<<7 | 0x1E, - 40409 - 19968: jis0208<<14 | 0x52<<7 | 0x18, - 40410 - 19968: jis0212<<14 | 0x4B<<7 | 0x1F, - 40414 - 19968: jis0212<<14 | 0x4B<<7 | 0x20, - 40415 - 19968: jis0212<<14 | 0x4B<<7 | 0x21, - 40416 - 19968: jis0212<<14 | 0x4B<<7 | 0x22, - 40421 - 19968: jis0212<<14 | 0x4B<<7 | 0x23, - 40422 - 19968: jis0208<<14 | 0x52<<7 | 0x1B, - 40423 - 19968: jis0212<<14 | 0x4B<<7 | 0x24, - 40425 - 19968: jis0212<<14 | 0x4B<<7 | 0x25, - 40427 - 19968: jis0212<<14 | 0x4B<<7 | 0x26, - 40429 - 19968: jis0208<<14 | 0x52<<7 | 0x1C, - 40430 - 19968: jis0212<<14 | 0x4B<<7 | 0x27, - 40431 - 19968: jis0208<<14 | 0x52<<7 | 0x1D, - 40432 - 19968: jis0212<<14 | 0x4B<<7 | 0x28, - 40434 - 19968: jis0208<<14 | 0x2E<<7 | 0x28, - 40435 - 19968: jis0212<<14 | 0x4B<<7 | 0x29, - 40436 - 19968: jis0212<<14 | 0x4B<<7 | 0x2A, - 40440 - 19968: jis0208<<14 | 0x52<<7 | 0x1A, - 40441 - 19968: jis0208<<14 | 0x21<<7 | 0x4A, - 40442 - 19968: jis0208<<14 | 0x19<<7 | 0x4C, - 40445 - 19968: jis0208<<14 | 0x52<<7 | 0x1E, - 40446 - 19968: jis0212<<14 | 0x4B<<7 | 0x2B, - 40450 - 19968: jis0212<<14 | 0x4B<<7 | 0x2D, - 40455 - 19968: jis0212<<14 | 0x4B<<7 | 0x2E, - 40458 - 19968: jis0212<<14 | 0x4B<<7 | 0x2C, - 40462 - 19968: jis0212<<14 | 0x4B<<7 | 0x2F, - 40464 - 19968: jis0212<<14 | 0x4B<<7 | 0x30, - 40465 - 19968: jis0212<<14 | 0x4B<<7 | 0x31, - 40466 - 19968: jis0212<<14 | 0x4B<<7 | 0x32, - 40469 - 19968: jis0212<<14 | 0x4B<<7 | 0x33, - 40470 - 19968: jis0212<<14 | 0x4B<<7 | 0x34, - 40473 - 19968: jis0208<<14 | 0x5B<<7 | 0x4C, - 40474 - 19968: jis0208<<14 | 0x52<<7 | 0x1F, - 40475 - 19968: jis0208<<14 | 0x52<<7 | 0x20, - 40476 - 19968: jis0212<<14 | 0x4B<<7 | 0x36, - 40477 - 19968: jis0212<<14 | 0x4B<<7 | 0x37, - 40478 - 19968: jis0208<<14 | 0x52<<7 | 0x21, - 40565 - 19968: jis0208<<14 | 0x52<<7 | 0x22, - 40568 - 19968: jis0208<<14 | 0x17<<7 | 0x13, - 40569 - 19968: jis0208<<14 | 0x52<<7 | 0x23, - 40570 - 19968: jis0212<<14 | 0x4B<<7 | 0x38, - 40571 - 19968: jis0212<<14 | 0x4B<<7 | 0x39, - 40572 - 19968: jis0212<<14 | 0x4B<<7 | 0x3A, - 40573 - 19968: jis0208<<14 | 0x52<<7 | 0x24, - 40575 - 19968: jis0208<<14 | 0x1B<<7 | 0x0E, - 40576 - 19968: jis0212<<14 | 0x4B<<7 | 0x3B, - 40577 - 19968: jis0208<<14 | 0x52<<7 | 0x25, - 40578 - 19968: jis0212<<14 | 0x4B<<7 | 0x3C, - 40579 - 19968: jis0212<<14 | 0x4B<<7 | 0x3D, - 40580 - 19968: jis0212<<14 | 0x4B<<7 | 0x3E, - 40581 - 19968: jis0212<<14 | 0x4B<<7 | 0x3F, - 40583 - 19968: jis0212<<14 | 0x4B<<7 | 0x40, - 40584 - 19968: jis0208<<14 | 0x52<<7 | 0x26, - 40587 - 19968: jis0208<<14 | 0x52<<7 | 0x27, - 40588 - 19968: jis0208<<14 | 0x52<<7 | 0x28, - 40590 - 19968: jis0212<<14 | 0x4B<<7 | 0x41, - 40591 - 19968: jis0212<<14 | 0x4B<<7 | 0x42, - 40593 - 19968: jis0208<<14 | 0x52<<7 | 0x2B, - 40594 - 19968: jis0208<<14 | 0x52<<7 | 0x29, - 40595 - 19968: jis0208<<14 | 0x2E<<7 | 0x1B, - 40597 - 19968: jis0208<<14 | 0x52<<7 | 0x2A, - 40598 - 19968: jis0212<<14 | 0x4B<<7 | 0x43, - 40599 - 19968: jis0208<<14 | 0x2D<<7 | 0x4E, - 40600 - 19968: jis0212<<14 | 0x4B<<7 | 0x44, - 40603 - 19968: jis0212<<14 | 0x4B<<7 | 0x45, - 40605 - 19968: jis0208<<14 | 0x52<<7 | 0x2C, - 40606 - 19968: jis0212<<14 | 0x4B<<7 | 0x46, - 40607 - 19968: jis0208<<14 | 0x2D<<7 | 0x3A, - 40612 - 19968: jis0212<<14 | 0x4B<<7 | 0x47, - 40613 - 19968: jis0208<<14 | 0x52<<7 | 0x2D, - 40614 - 19968: jis0208<<14 | 0x26<<7 | 0x5D, - 40616 - 19968: jis0212<<14 | 0x4B<<7 | 0x48, - 40617 - 19968: jis0208<<14 | 0x52<<7 | 0x2E, - 40618 - 19968: jis0208<<14 | 0x52<<7 | 0x30, - 40620 - 19968: jis0212<<14 | 0x4B<<7 | 0x49, - 40621 - 19968: jis0208<<14 | 0x52<<7 | 0x31, - 40622 - 19968: jis0212<<14 | 0x4B<<7 | 0x4A, - 40623 - 19968: jis0212<<14 | 0x4B<<7 | 0x4B, - 40624 - 19968: jis0212<<14 | 0x4B<<7 | 0x4C, - 40627 - 19968: jis0212<<14 | 0x4B<<7 | 0x4D, - 40628 - 19968: jis0212<<14 | 0x4B<<7 | 0x4E, - 40629 - 19968: jis0212<<14 | 0x4B<<7 | 0x4F, - 40632 - 19968: jis0208<<14 | 0x52<<7 | 0x2F, - 40633 - 19968: jis0208<<14 | 0x18<<7 | 0x4C, - 40634 - 19968: jis0208<<14 | 0x2B<<7 | 0x2C, - 40635 - 19968: jis0208<<14 | 0x2A<<7 | 0x42, - 40636 - 19968: jis0208<<14 | 0x35<<7 | 0x56, - 40638 - 19968: jis0208<<14 | 0x3C<<7 | 0x3F, - 40639 - 19968: jis0208<<14 | 0x2A<<7 | 0x5A, - 40644 - 19968: jis0208<<14 | 0x11<<7 | 0x0A, - 40646 - 19968: jis0212<<14 | 0x4B<<7 | 0x50, - 40648 - 19968: jis0212<<14 | 0x4B<<7 | 0x51, - 40651 - 19968: jis0212<<14 | 0x4B<<7 | 0x52, - 40652 - 19968: jis0208<<14 | 0x52<<7 | 0x33, - 40653 - 19968: jis0208<<14 | 0x14<<7 | 0x2F, - 40654 - 19968: jis0208<<14 | 0x52<<7 | 0x34, - 40655 - 19968: jis0208<<14 | 0x52<<7 | 0x35, - 40656 - 19968: jis0208<<14 | 0x52<<7 | 0x36, - 40657 - 19968: jis0208<<14 | 0x5B<<7 | 0x4D, - 40658 - 19968: jis0208<<14 | 0x18<<7 | 0x54, - 40660 - 19968: jis0208<<14 | 0x52<<7 | 0x37, - 40661 - 19968: jis0212<<14 | 0x4B<<7 | 0x53, - 40664 - 19968: jis0208<<14 | 0x3F<<7 | 0x33, - 40665 - 19968: jis0208<<14 | 0x2B<<7 | 0x3A, - 40667 - 19968: jis0208<<14 | 0x21<<7 | 0x42, - 40668 - 19968: jis0208<<14 | 0x52<<7 | 0x38, - 40669 - 19968: jis0208<<14 | 0x52<<7 | 0x3A, - 40670 - 19968: jis0208<<14 | 0x52<<7 | 0x39, - 40671 - 19968: jis0212<<14 | 0x4B<<7 | 0x54, - 40672 - 19968: jis0208<<14 | 0x52<<7 | 0x3B, - 40676 - 19968: jis0212<<14 | 0x4B<<7 | 0x55, - 40677 - 19968: jis0208<<14 | 0x52<<7 | 0x3C, - 40679 - 19968: jis0212<<14 | 0x4B<<7 | 0x56, - 40680 - 19968: jis0208<<14 | 0x52<<7 | 0x3D, - 40684 - 19968: jis0212<<14 | 0x4B<<7 | 0x57, - 40685 - 19968: jis0212<<14 | 0x4B<<7 | 0x58, - 40686 - 19968: jis0212<<14 | 0x4B<<7 | 0x59, - 40687 - 19968: jis0208<<14 | 0x52<<7 | 0x3E, - 40688 - 19968: jis0212<<14 | 0x4B<<7 | 0x5A, - 40689 - 19968: jis0212<<14 | 0x4B<<7 | 0x5B, - 40690 - 19968: jis0212<<14 | 0x4B<<7 | 0x5C, - 40692 - 19968: jis0208<<14 | 0x52<<7 | 0x3F, - 40693 - 19968: jis0212<<14 | 0x4B<<7 | 0x5D, - 40694 - 19968: jis0208<<14 | 0x52<<7 | 0x40, - 40695 - 19968: jis0208<<14 | 0x52<<7 | 0x41, - 40696 - 19968: jis0212<<14 | 0x4C<<7 | 0x00, - 40697 - 19968: jis0208<<14 | 0x52<<7 | 0x42, - 40699 - 19968: jis0208<<14 | 0x52<<7 | 0x43, - 40700 - 19968: jis0208<<14 | 0x52<<7 | 0x44, - 40701 - 19968: jis0208<<14 | 0x52<<7 | 0x45, - 40703 - 19968: jis0212<<14 | 0x4C<<7 | 0x01, - 40706 - 19968: jis0212<<14 | 0x4C<<7 | 0x02, - 40707 - 19968: jis0212<<14 | 0x4C<<7 | 0x03, - 40711 - 19968: jis0208<<14 | 0x52<<7 | 0x46, - 40712 - 19968: jis0208<<14 | 0x52<<7 | 0x47, - 40713 - 19968: jis0212<<14 | 0x4C<<7 | 0x04, - 40718 - 19968: jis0208<<14 | 0x24<<7 | 0x03, - 40719 - 19968: jis0212<<14 | 0x4C<<7 | 0x05, - 40720 - 19968: jis0212<<14 | 0x4C<<7 | 0x06, - 40721 - 19968: jis0212<<14 | 0x4C<<7 | 0x07, - 40722 - 19968: jis0212<<14 | 0x4C<<7 | 0x08, - 40723 - 19968: jis0208<<14 | 0x17<<7 | 0x3C, - 40724 - 19968: jis0212<<14 | 0x4C<<7 | 0x09, - 40725 - 19968: jis0208<<14 | 0x52<<7 | 0x49, - 40726 - 19968: jis0212<<14 | 0x4C<<7 | 0x0A, - 40727 - 19968: jis0212<<14 | 0x4C<<7 | 0x0B, - 40729 - 19968: jis0212<<14 | 0x4C<<7 | 0x0C, - 40730 - 19968: jis0212<<14 | 0x4C<<7 | 0x0D, - 40731 - 19968: jis0212<<14 | 0x4C<<7 | 0x0E, - 40735 - 19968: jis0212<<14 | 0x4C<<7 | 0x0F, - 40736 - 19968: jis0208<<14 | 0x20<<7 | 0x2C, - 40737 - 19968: jis0208<<14 | 0x52<<7 | 0x4A, - 40738 - 19968: jis0212<<14 | 0x4C<<7 | 0x10, - 40742 - 19968: jis0212<<14 | 0x4C<<7 | 0x11, - 40746 - 19968: jis0212<<14 | 0x4C<<7 | 0x12, - 40747 - 19968: jis0212<<14 | 0x4C<<7 | 0x13, - 40748 - 19968: jis0208<<14 | 0x52<<7 | 0x4B, - 40751 - 19968: jis0212<<14 | 0x4C<<7 | 0x14, - 40753 - 19968: jis0212<<14 | 0x4C<<7 | 0x15, - 40754 - 19968: jis0212<<14 | 0x4C<<7 | 0x16, - 40756 - 19968: jis0212<<14 | 0x4C<<7 | 0x17, - 40759 - 19968: jis0212<<14 | 0x4C<<7 | 0x18, - 40761 - 19968: jis0212<<14 | 0x4C<<7 | 0x19, - 40762 - 19968: jis0212<<14 | 0x4C<<7 | 0x1A, - 40763 - 19968: jis0208<<14 | 0x28<<7 | 0x00, - 40764 - 19968: jis0212<<14 | 0x4C<<7 | 0x1B, - 40765 - 19968: jis0212<<14 | 0x4C<<7 | 0x1C, - 40766 - 19968: jis0208<<14 | 0x52<<7 | 0x4C, - 40767 - 19968: jis0212<<14 | 0x4C<<7 | 0x1D, - 40769 - 19968: jis0212<<14 | 0x4C<<7 | 0x1E, - 40771 - 19968: jis0212<<14 | 0x4C<<7 | 0x1F, - 40772 - 19968: jis0212<<14 | 0x4C<<7 | 0x20, - 40773 - 19968: jis0212<<14 | 0x4C<<7 | 0x21, - 40774 - 19968: jis0212<<14 | 0x4C<<7 | 0x22, - 40775 - 19968: jis0212<<14 | 0x4C<<7 | 0x23, - 40778 - 19968: jis0208<<14 | 0x52<<7 | 0x4D, - 40779 - 19968: jis0208<<14 | 0x42<<7 | 0x16, - 40782 - 19968: jis0208<<14 | 0x4B<<7 | 0x39, - 40783 - 19968: jis0208<<14 | 0x4F<<7 | 0x4C, - 40786 - 19968: jis0208<<14 | 0x52<<7 | 0x4E, - 40787 - 19968: jis0212<<14 | 0x4C<<7 | 0x24, - 40788 - 19968: jis0208<<14 | 0x52<<7 | 0x4F, - 40789 - 19968: jis0212<<14 | 0x4C<<7 | 0x25, - 40790 - 19968: jis0212<<14 | 0x4C<<7 | 0x26, - 40791 - 19968: jis0212<<14 | 0x4C<<7 | 0x27, - 40792 - 19968: jis0212<<14 | 0x4C<<7 | 0x28, - 40794 - 19968: jis0212<<14 | 0x4C<<7 | 0x29, - 40797 - 19968: jis0212<<14 | 0x4C<<7 | 0x2A, - 40798 - 19968: jis0212<<14 | 0x4C<<7 | 0x2B, - 40799 - 19968: jis0208<<14 | 0x52<<7 | 0x51, - 40800 - 19968: jis0208<<14 | 0x52<<7 | 0x52, - 40801 - 19968: jis0208<<14 | 0x52<<7 | 0x53, - 40802 - 19968: jis0208<<14 | 0x2D<<7 | 0x4F, - 40803 - 19968: jis0208<<14 | 0x52<<7 | 0x50, - 40806 - 19968: jis0208<<14 | 0x52<<7 | 0x54, - 40807 - 19968: jis0208<<14 | 0x52<<7 | 0x55, - 40808 - 19968: jis0212<<14 | 0x4C<<7 | 0x2C, - 40809 - 19968: jis0212<<14 | 0x4C<<7 | 0x2D, - 40810 - 19968: jis0208<<14 | 0x52<<7 | 0x57, - 40812 - 19968: jis0208<<14 | 0x52<<7 | 0x56, - 40813 - 19968: jis0212<<14 | 0x4C<<7 | 0x2E, - 40814 - 19968: jis0212<<14 | 0x4C<<7 | 0x2F, - 40815 - 19968: jis0212<<14 | 0x4C<<7 | 0x30, - 40816 - 19968: jis0212<<14 | 0x4C<<7 | 0x31, - 40817 - 19968: jis0212<<14 | 0x4C<<7 | 0x32, - 40818 - 19968: jis0208<<14 | 0x52<<7 | 0x59, - 40819 - 19968: jis0212<<14 | 0x4C<<7 | 0x33, - 40821 - 19968: jis0212<<14 | 0x4C<<7 | 0x34, - 40822 - 19968: jis0208<<14 | 0x52<<7 | 0x5A, - 40823 - 19968: jis0208<<14 | 0x52<<7 | 0x58, - 40826 - 19968: jis0212<<14 | 0x4C<<7 | 0x35, - 40829 - 19968: jis0212<<14 | 0x4C<<7 | 0x36, - 40845 - 19968: jis0208<<14 | 0x2D<<7 | 0x15, - 40847 - 19968: jis0212<<14 | 0x4C<<7 | 0x37, - 40848 - 19968: jis0212<<14 | 0x4C<<7 | 0x38, - 40849 - 19968: jis0212<<14 | 0x4C<<7 | 0x39, - 40850 - 19968: jis0212<<14 | 0x4C<<7 | 0x3A, - 40852 - 19968: jis0212<<14 | 0x4C<<7 | 0x3B, - 40853 - 19968: jis0208<<14 | 0x52<<7 | 0x5B, - 40854 - 19968: jis0212<<14 | 0x4C<<7 | 0x3C, - 40855 - 19968: jis0212<<14 | 0x4C<<7 | 0x3D, - 40860 - 19968: jis0208<<14 | 0x52<<7 | 0x5C, - 40861 - 19968: jis0208<<14 | 0x42<<7 | 0x33, - 40862 - 19968: jis0212<<14 | 0x4C<<7 | 0x3E, - 40864 - 19968: jis0208<<14 | 0x52<<7 | 0x5D, - 40865 - 19968: jis0212<<14 | 0x4C<<7 | 0x3F, - 40866 - 19968: jis0212<<14 | 0x4C<<7 | 0x40, - 40867 - 19968: jis0212<<14 | 0x4C<<7 | 0x41, - 40869 - 19968: jis0212<<14 | 0x4C<<7 | 0x42, -} - -const encode1Low, encode1High = 8208, 9840 - -var encode1 = [...]uint16{ - 8208 - 8208: jis0208<<14 | 0x00<<7 | 0x1D, - 8213 - 8208: jis0208<<14 | 0x00<<7 | 0x1C, - 8216 - 8208: jis0208<<14 | 0x00<<7 | 0x25, - 8217 - 8208: jis0208<<14 | 0x00<<7 | 0x26, - 8220 - 8208: jis0208<<14 | 0x00<<7 | 0x27, - 8221 - 8208: jis0208<<14 | 0x00<<7 | 0x28, - 8224 - 8208: jis0208<<14 | 0x01<<7 | 0x56, - 8225 - 8208: jis0208<<14 | 0x01<<7 | 0x57, - 8229 - 8208: jis0208<<14 | 0x00<<7 | 0x24, - 8230 - 8208: jis0208<<14 | 0x00<<7 | 0x23, - 8240 - 8208: jis0208<<14 | 0x01<<7 | 0x52, - 8242 - 8208: jis0208<<14 | 0x00<<7 | 0x4B, - 8243 - 8208: jis0208<<14 | 0x00<<7 | 0x4C, - 8251 - 8208: jis0208<<14 | 0x01<<7 | 0x07, - 8451 - 8208: jis0208<<14 | 0x00<<7 | 0x4D, - 8470 - 8208: jis0208<<14 | 0x0C<<7 | 0x41, - 8481 - 8208: jis0208<<14 | 0x0C<<7 | 0x43, - 8482 - 8208: jis0212<<14 | 0x01<<7 | 0x4E, - 8491 - 8208: jis0208<<14 | 0x01<<7 | 0x51, - 8544 - 8208: jis0208<<14 | 0x0C<<7 | 0x14, - 8545 - 8208: jis0208<<14 | 0x0C<<7 | 0x15, - 8546 - 8208: jis0208<<14 | 0x0C<<7 | 0x16, - 8547 - 8208: jis0208<<14 | 0x0C<<7 | 0x17, - 8548 - 8208: jis0208<<14 | 0x0C<<7 | 0x18, - 8549 - 8208: jis0208<<14 | 0x0C<<7 | 0x19, - 8550 - 8208: jis0208<<14 | 0x0C<<7 | 0x1A, - 8551 - 8208: jis0208<<14 | 0x0C<<7 | 0x1B, - 8552 - 8208: jis0208<<14 | 0x0C<<7 | 0x1C, - 8553 - 8208: jis0208<<14 | 0x0C<<7 | 0x1D, - 8560 - 8208: jis0208<<14 | 0x5B<<7 | 0x50, - 8561 - 8208: jis0208<<14 | 0x5B<<7 | 0x51, - 8562 - 8208: jis0208<<14 | 0x5B<<7 | 0x52, - 8563 - 8208: jis0208<<14 | 0x5B<<7 | 0x53, - 8564 - 8208: jis0208<<14 | 0x5B<<7 | 0x54, - 8565 - 8208: jis0208<<14 | 0x5B<<7 | 0x55, - 8566 - 8208: jis0208<<14 | 0x5B<<7 | 0x56, - 8567 - 8208: jis0208<<14 | 0x5B<<7 | 0x57, - 8568 - 8208: jis0208<<14 | 0x5B<<7 | 0x58, - 8569 - 8208: jis0208<<14 | 0x5B<<7 | 0x59, - 8592 - 8208: jis0208<<14 | 0x01<<7 | 0x0A, - 8593 - 8208: jis0208<<14 | 0x01<<7 | 0x0B, - 8594 - 8208: jis0208<<14 | 0x01<<7 | 0x09, - 8595 - 8208: jis0208<<14 | 0x01<<7 | 0x0C, - 8658 - 8208: jis0208<<14 | 0x01<<7 | 0x2C, - 8660 - 8208: jis0208<<14 | 0x01<<7 | 0x2D, - 8704 - 8208: jis0208<<14 | 0x01<<7 | 0x2E, - 8706 - 8208: jis0208<<14 | 0x01<<7 | 0x3E, - 8707 - 8208: jis0208<<14 | 0x01<<7 | 0x2F, - 8711 - 8208: jis0208<<14 | 0x01<<7 | 0x3F, - 8712 - 8208: jis0208<<14 | 0x01<<7 | 0x19, - 8715 - 8208: jis0208<<14 | 0x01<<7 | 0x1A, - 8721 - 8208: jis0208<<14 | 0x0C<<7 | 0x53, - 8730 - 8208: jis0208<<14 | 0x01<<7 | 0x44, - 8733 - 8208: jis0208<<14 | 0x01<<7 | 0x46, - 8734 - 8208: jis0208<<14 | 0x00<<7 | 0x46, - 8735 - 8208: jis0208<<14 | 0x0C<<7 | 0x57, - 8736 - 8208: jis0208<<14 | 0x01<<7 | 0x3B, - 8741 - 8208: jis0208<<14 | 0x00<<7 | 0x21, - 8743 - 8208: jis0208<<14 | 0x01<<7 | 0x29, - 8744 - 8208: jis0208<<14 | 0x01<<7 | 0x2A, - 8745 - 8208: jis0208<<14 | 0x01<<7 | 0x20, - 8746 - 8208: jis0208<<14 | 0x01<<7 | 0x1F, - 8747 - 8208: jis0208<<14 | 0x01<<7 | 0x48, - 8748 - 8208: jis0208<<14 | 0x01<<7 | 0x49, - 8750 - 8208: jis0208<<14 | 0x0C<<7 | 0x52, - 8756 - 8208: jis0208<<14 | 0x00<<7 | 0x47, - 8757 - 8208: jis0208<<14 | 0x01<<7 | 0x47, - 8765 - 8208: jis0208<<14 | 0x01<<7 | 0x45, - 8786 - 8208: jis0208<<14 | 0x01<<7 | 0x41, - 8800 - 8208: jis0208<<14 | 0x00<<7 | 0x41, - 8801 - 8208: jis0208<<14 | 0x01<<7 | 0x40, - 8806 - 8208: jis0208<<14 | 0x00<<7 | 0x44, - 8807 - 8208: jis0208<<14 | 0x00<<7 | 0x45, - 8810 - 8208: jis0208<<14 | 0x01<<7 | 0x42, - 8811 - 8208: jis0208<<14 | 0x01<<7 | 0x43, - 8834 - 8208: jis0208<<14 | 0x01<<7 | 0x1D, - 8835 - 8208: jis0208<<14 | 0x01<<7 | 0x1E, - 8838 - 8208: jis0208<<14 | 0x01<<7 | 0x1B, - 8839 - 8208: jis0208<<14 | 0x01<<7 | 0x1C, - 8869 - 8208: jis0208<<14 | 0x01<<7 | 0x3C, - 8895 - 8208: jis0208<<14 | 0x0C<<7 | 0x58, - 8978 - 8208: jis0208<<14 | 0x01<<7 | 0x3D, - 9312 - 8208: jis0208<<14 | 0x0C<<7 | 0x00, - 9313 - 8208: jis0208<<14 | 0x0C<<7 | 0x01, - 9314 - 8208: jis0208<<14 | 0x0C<<7 | 0x02, - 9315 - 8208: jis0208<<14 | 0x0C<<7 | 0x03, - 9316 - 8208: jis0208<<14 | 0x0C<<7 | 0x04, - 9317 - 8208: jis0208<<14 | 0x0C<<7 | 0x05, - 9318 - 8208: jis0208<<14 | 0x0C<<7 | 0x06, - 9319 - 8208: jis0208<<14 | 0x0C<<7 | 0x07, - 9320 - 8208: jis0208<<14 | 0x0C<<7 | 0x08, - 9321 - 8208: jis0208<<14 | 0x0C<<7 | 0x09, - 9322 - 8208: jis0208<<14 | 0x0C<<7 | 0x0A, - 9323 - 8208: jis0208<<14 | 0x0C<<7 | 0x0B, - 9324 - 8208: jis0208<<14 | 0x0C<<7 | 0x0C, - 9325 - 8208: jis0208<<14 | 0x0C<<7 | 0x0D, - 9326 - 8208: jis0208<<14 | 0x0C<<7 | 0x0E, - 9327 - 8208: jis0208<<14 | 0x0C<<7 | 0x0F, - 9328 - 8208: jis0208<<14 | 0x0C<<7 | 0x10, - 9329 - 8208: jis0208<<14 | 0x0C<<7 | 0x11, - 9330 - 8208: jis0208<<14 | 0x0C<<7 | 0x12, - 9331 - 8208: jis0208<<14 | 0x0C<<7 | 0x13, - 9472 - 8208: jis0208<<14 | 0x07<<7 | 0x00, - 9473 - 8208: jis0208<<14 | 0x07<<7 | 0x0B, - 9474 - 8208: jis0208<<14 | 0x07<<7 | 0x01, - 9475 - 8208: jis0208<<14 | 0x07<<7 | 0x0C, - 9484 - 8208: jis0208<<14 | 0x07<<7 | 0x02, - 9487 - 8208: jis0208<<14 | 0x07<<7 | 0x0D, - 9488 - 8208: jis0208<<14 | 0x07<<7 | 0x03, - 9491 - 8208: jis0208<<14 | 0x07<<7 | 0x0E, - 9492 - 8208: jis0208<<14 | 0x07<<7 | 0x05, - 9495 - 8208: jis0208<<14 | 0x07<<7 | 0x10, - 9496 - 8208: jis0208<<14 | 0x07<<7 | 0x04, - 9499 - 8208: jis0208<<14 | 0x07<<7 | 0x0F, - 9500 - 8208: jis0208<<14 | 0x07<<7 | 0x06, - 9501 - 8208: jis0208<<14 | 0x07<<7 | 0x1B, - 9504 - 8208: jis0208<<14 | 0x07<<7 | 0x16, - 9507 - 8208: jis0208<<14 | 0x07<<7 | 0x11, - 9508 - 8208: jis0208<<14 | 0x07<<7 | 0x08, - 9509 - 8208: jis0208<<14 | 0x07<<7 | 0x1D, - 9512 - 8208: jis0208<<14 | 0x07<<7 | 0x18, - 9515 - 8208: jis0208<<14 | 0x07<<7 | 0x13, - 9516 - 8208: jis0208<<14 | 0x07<<7 | 0x07, - 9519 - 8208: jis0208<<14 | 0x07<<7 | 0x17, - 9520 - 8208: jis0208<<14 | 0x07<<7 | 0x1C, - 9523 - 8208: jis0208<<14 | 0x07<<7 | 0x12, - 9524 - 8208: jis0208<<14 | 0x07<<7 | 0x09, - 9527 - 8208: jis0208<<14 | 0x07<<7 | 0x19, - 9528 - 8208: jis0208<<14 | 0x07<<7 | 0x1E, - 9531 - 8208: jis0208<<14 | 0x07<<7 | 0x14, - 9532 - 8208: jis0208<<14 | 0x07<<7 | 0x0A, - 9535 - 8208: jis0208<<14 | 0x07<<7 | 0x1A, - 9538 - 8208: jis0208<<14 | 0x07<<7 | 0x1F, - 9547 - 8208: jis0208<<14 | 0x07<<7 | 0x15, - 9632 - 8208: jis0208<<14 | 0x01<<7 | 0x02, - 9633 - 8208: jis0208<<14 | 0x01<<7 | 0x01, - 9650 - 8208: jis0208<<14 | 0x01<<7 | 0x04, - 9651 - 8208: jis0208<<14 | 0x01<<7 | 0x03, - 9660 - 8208: jis0208<<14 | 0x01<<7 | 0x06, - 9661 - 8208: jis0208<<14 | 0x01<<7 | 0x05, - 9670 - 8208: jis0208<<14 | 0x01<<7 | 0x00, - 9671 - 8208: jis0208<<14 | 0x00<<7 | 0x5D, - 9675 - 8208: jis0208<<14 | 0x00<<7 | 0x5A, - 9678 - 8208: jis0208<<14 | 0x00<<7 | 0x5C, - 9679 - 8208: jis0208<<14 | 0x00<<7 | 0x5B, - 9711 - 8208: jis0208<<14 | 0x01<<7 | 0x5D, - 9733 - 8208: jis0208<<14 | 0x00<<7 | 0x59, - 9734 - 8208: jis0208<<14 | 0x00<<7 | 0x58, - 9792 - 8208: jis0208<<14 | 0x00<<7 | 0x49, - 9794 - 8208: jis0208<<14 | 0x00<<7 | 0x48, - 9834 - 8208: jis0208<<14 | 0x01<<7 | 0x55, - 9837 - 8208: jis0208<<14 | 0x01<<7 | 0x54, - 9839 - 8208: jis0208<<14 | 0x01<<7 | 0x53, -} - -const encode2Low, encode2High = 12288, 13262 - -var encode2 = [...]uint16{ - 12288 - 12288: jis0208<<14 | 0x00<<7 | 0x00, - 12289 - 12288: jis0208<<14 | 0x00<<7 | 0x01, - 12290 - 12288: jis0208<<14 | 0x00<<7 | 0x02, - 12291 - 12288: jis0208<<14 | 0x00<<7 | 0x16, - 12293 - 12288: jis0208<<14 | 0x00<<7 | 0x18, - 12294 - 12288: jis0208<<14 | 0x00<<7 | 0x19, - 12295 - 12288: jis0208<<14 | 0x00<<7 | 0x1A, - 12296 - 12288: jis0208<<14 | 0x00<<7 | 0x31, - 12297 - 12288: jis0208<<14 | 0x00<<7 | 0x32, - 12298 - 12288: jis0208<<14 | 0x00<<7 | 0x33, - 12299 - 12288: jis0208<<14 | 0x00<<7 | 0x34, - 12300 - 12288: jis0208<<14 | 0x00<<7 | 0x35, - 12301 - 12288: jis0208<<14 | 0x00<<7 | 0x36, - 12302 - 12288: jis0208<<14 | 0x00<<7 | 0x37, - 12303 - 12288: jis0208<<14 | 0x00<<7 | 0x38, - 12304 - 12288: jis0208<<14 | 0x00<<7 | 0x39, - 12305 - 12288: jis0208<<14 | 0x00<<7 | 0x3A, - 12306 - 12288: jis0208<<14 | 0x01<<7 | 0x08, - 12307 - 12288: jis0208<<14 | 0x01<<7 | 0x0D, - 12308 - 12288: jis0208<<14 | 0x00<<7 | 0x2B, - 12309 - 12288: jis0208<<14 | 0x00<<7 | 0x2C, - 12317 - 12288: jis0208<<14 | 0x0C<<7 | 0x3F, - 12319 - 12288: jis0208<<14 | 0x0C<<7 | 0x40, - 12353 - 12288: jis0208<<14 | 0x03<<7 | 0x00, - 12354 - 12288: jis0208<<14 | 0x03<<7 | 0x01, - 12355 - 12288: jis0208<<14 | 0x03<<7 | 0x02, - 12356 - 12288: jis0208<<14 | 0x03<<7 | 0x03, - 12357 - 12288: jis0208<<14 | 0x03<<7 | 0x04, - 12358 - 12288: jis0208<<14 | 0x03<<7 | 0x05, - 12359 - 12288: jis0208<<14 | 0x03<<7 | 0x06, - 12360 - 12288: jis0208<<14 | 0x03<<7 | 0x07, - 12361 - 12288: jis0208<<14 | 0x03<<7 | 0x08, - 12362 - 12288: jis0208<<14 | 0x03<<7 | 0x09, - 12363 - 12288: jis0208<<14 | 0x03<<7 | 0x0A, - 12364 - 12288: jis0208<<14 | 0x03<<7 | 0x0B, - 12365 - 12288: jis0208<<14 | 0x03<<7 | 0x0C, - 12366 - 12288: jis0208<<14 | 0x03<<7 | 0x0D, - 12367 - 12288: jis0208<<14 | 0x03<<7 | 0x0E, - 12368 - 12288: jis0208<<14 | 0x03<<7 | 0x0F, - 12369 - 12288: jis0208<<14 | 0x03<<7 | 0x10, - 12370 - 12288: jis0208<<14 | 0x03<<7 | 0x11, - 12371 - 12288: jis0208<<14 | 0x03<<7 | 0x12, - 12372 - 12288: jis0208<<14 | 0x03<<7 | 0x13, - 12373 - 12288: jis0208<<14 | 0x03<<7 | 0x14, - 12374 - 12288: jis0208<<14 | 0x03<<7 | 0x15, - 12375 - 12288: jis0208<<14 | 0x03<<7 | 0x16, - 12376 - 12288: jis0208<<14 | 0x03<<7 | 0x17, - 12377 - 12288: jis0208<<14 | 0x03<<7 | 0x18, - 12378 - 12288: jis0208<<14 | 0x03<<7 | 0x19, - 12379 - 12288: jis0208<<14 | 0x03<<7 | 0x1A, - 12380 - 12288: jis0208<<14 | 0x03<<7 | 0x1B, - 12381 - 12288: jis0208<<14 | 0x03<<7 | 0x1C, - 12382 - 12288: jis0208<<14 | 0x03<<7 | 0x1D, - 12383 - 12288: jis0208<<14 | 0x03<<7 | 0x1E, - 12384 - 12288: jis0208<<14 | 0x03<<7 | 0x1F, - 12385 - 12288: jis0208<<14 | 0x03<<7 | 0x20, - 12386 - 12288: jis0208<<14 | 0x03<<7 | 0x21, - 12387 - 12288: jis0208<<14 | 0x03<<7 | 0x22, - 12388 - 12288: jis0208<<14 | 0x03<<7 | 0x23, - 12389 - 12288: jis0208<<14 | 0x03<<7 | 0x24, - 12390 - 12288: jis0208<<14 | 0x03<<7 | 0x25, - 12391 - 12288: jis0208<<14 | 0x03<<7 | 0x26, - 12392 - 12288: jis0208<<14 | 0x03<<7 | 0x27, - 12393 - 12288: jis0208<<14 | 0x03<<7 | 0x28, - 12394 - 12288: jis0208<<14 | 0x03<<7 | 0x29, - 12395 - 12288: jis0208<<14 | 0x03<<7 | 0x2A, - 12396 - 12288: jis0208<<14 | 0x03<<7 | 0x2B, - 12397 - 12288: jis0208<<14 | 0x03<<7 | 0x2C, - 12398 - 12288: jis0208<<14 | 0x03<<7 | 0x2D, - 12399 - 12288: jis0208<<14 | 0x03<<7 | 0x2E, - 12400 - 12288: jis0208<<14 | 0x03<<7 | 0x2F, - 12401 - 12288: jis0208<<14 | 0x03<<7 | 0x30, - 12402 - 12288: jis0208<<14 | 0x03<<7 | 0x31, - 12403 - 12288: jis0208<<14 | 0x03<<7 | 0x32, - 12404 - 12288: jis0208<<14 | 0x03<<7 | 0x33, - 12405 - 12288: jis0208<<14 | 0x03<<7 | 0x34, - 12406 - 12288: jis0208<<14 | 0x03<<7 | 0x35, - 12407 - 12288: jis0208<<14 | 0x03<<7 | 0x36, - 12408 - 12288: jis0208<<14 | 0x03<<7 | 0x37, - 12409 - 12288: jis0208<<14 | 0x03<<7 | 0x38, - 12410 - 12288: jis0208<<14 | 0x03<<7 | 0x39, - 12411 - 12288: jis0208<<14 | 0x03<<7 | 0x3A, - 12412 - 12288: jis0208<<14 | 0x03<<7 | 0x3B, - 12413 - 12288: jis0208<<14 | 0x03<<7 | 0x3C, - 12414 - 12288: jis0208<<14 | 0x03<<7 | 0x3D, - 12415 - 12288: jis0208<<14 | 0x03<<7 | 0x3E, - 12416 - 12288: jis0208<<14 | 0x03<<7 | 0x3F, - 12417 - 12288: jis0208<<14 | 0x03<<7 | 0x40, - 12418 - 12288: jis0208<<14 | 0x03<<7 | 0x41, - 12419 - 12288: jis0208<<14 | 0x03<<7 | 0x42, - 12420 - 12288: jis0208<<14 | 0x03<<7 | 0x43, - 12421 - 12288: jis0208<<14 | 0x03<<7 | 0x44, - 12422 - 12288: jis0208<<14 | 0x03<<7 | 0x45, - 12423 - 12288: jis0208<<14 | 0x03<<7 | 0x46, - 12424 - 12288: jis0208<<14 | 0x03<<7 | 0x47, - 12425 - 12288: jis0208<<14 | 0x03<<7 | 0x48, - 12426 - 12288: jis0208<<14 | 0x03<<7 | 0x49, - 12427 - 12288: jis0208<<14 | 0x03<<7 | 0x4A, - 12428 - 12288: jis0208<<14 | 0x03<<7 | 0x4B, - 12429 - 12288: jis0208<<14 | 0x03<<7 | 0x4C, - 12430 - 12288: jis0208<<14 | 0x03<<7 | 0x4D, - 12431 - 12288: jis0208<<14 | 0x03<<7 | 0x4E, - 12432 - 12288: jis0208<<14 | 0x03<<7 | 0x4F, - 12433 - 12288: jis0208<<14 | 0x03<<7 | 0x50, - 12434 - 12288: jis0208<<14 | 0x03<<7 | 0x51, - 12435 - 12288: jis0208<<14 | 0x03<<7 | 0x52, - 12443 - 12288: jis0208<<14 | 0x00<<7 | 0x0A, - 12444 - 12288: jis0208<<14 | 0x00<<7 | 0x0B, - 12445 - 12288: jis0208<<14 | 0x00<<7 | 0x14, - 12446 - 12288: jis0208<<14 | 0x00<<7 | 0x15, - 12449 - 12288: jis0208<<14 | 0x04<<7 | 0x00, - 12450 - 12288: jis0208<<14 | 0x04<<7 | 0x01, - 12451 - 12288: jis0208<<14 | 0x04<<7 | 0x02, - 12452 - 12288: jis0208<<14 | 0x04<<7 | 0x03, - 12453 - 12288: jis0208<<14 | 0x04<<7 | 0x04, - 12454 - 12288: jis0208<<14 | 0x04<<7 | 0x05, - 12455 - 12288: jis0208<<14 | 0x04<<7 | 0x06, - 12456 - 12288: jis0208<<14 | 0x04<<7 | 0x07, - 12457 - 12288: jis0208<<14 | 0x04<<7 | 0x08, - 12458 - 12288: jis0208<<14 | 0x04<<7 | 0x09, - 12459 - 12288: jis0208<<14 | 0x04<<7 | 0x0A, - 12460 - 12288: jis0208<<14 | 0x04<<7 | 0x0B, - 12461 - 12288: jis0208<<14 | 0x04<<7 | 0x0C, - 12462 - 12288: jis0208<<14 | 0x04<<7 | 0x0D, - 12463 - 12288: jis0208<<14 | 0x04<<7 | 0x0E, - 12464 - 12288: jis0208<<14 | 0x04<<7 | 0x0F, - 12465 - 12288: jis0208<<14 | 0x04<<7 | 0x10, - 12466 - 12288: jis0208<<14 | 0x04<<7 | 0x11, - 12467 - 12288: jis0208<<14 | 0x04<<7 | 0x12, - 12468 - 12288: jis0208<<14 | 0x04<<7 | 0x13, - 12469 - 12288: jis0208<<14 | 0x04<<7 | 0x14, - 12470 - 12288: jis0208<<14 | 0x04<<7 | 0x15, - 12471 - 12288: jis0208<<14 | 0x04<<7 | 0x16, - 12472 - 12288: jis0208<<14 | 0x04<<7 | 0x17, - 12473 - 12288: jis0208<<14 | 0x04<<7 | 0x18, - 12474 - 12288: jis0208<<14 | 0x04<<7 | 0x19, - 12475 - 12288: jis0208<<14 | 0x04<<7 | 0x1A, - 12476 - 12288: jis0208<<14 | 0x04<<7 | 0x1B, - 12477 - 12288: jis0208<<14 | 0x04<<7 | 0x1C, - 12478 - 12288: jis0208<<14 | 0x04<<7 | 0x1D, - 12479 - 12288: jis0208<<14 | 0x04<<7 | 0x1E, - 12480 - 12288: jis0208<<14 | 0x04<<7 | 0x1F, - 12481 - 12288: jis0208<<14 | 0x04<<7 | 0x20, - 12482 - 12288: jis0208<<14 | 0x04<<7 | 0x21, - 12483 - 12288: jis0208<<14 | 0x04<<7 | 0x22, - 12484 - 12288: jis0208<<14 | 0x04<<7 | 0x23, - 12485 - 12288: jis0208<<14 | 0x04<<7 | 0x24, - 12486 - 12288: jis0208<<14 | 0x04<<7 | 0x25, - 12487 - 12288: jis0208<<14 | 0x04<<7 | 0x26, - 12488 - 12288: jis0208<<14 | 0x04<<7 | 0x27, - 12489 - 12288: jis0208<<14 | 0x04<<7 | 0x28, - 12490 - 12288: jis0208<<14 | 0x04<<7 | 0x29, - 12491 - 12288: jis0208<<14 | 0x04<<7 | 0x2A, - 12492 - 12288: jis0208<<14 | 0x04<<7 | 0x2B, - 12493 - 12288: jis0208<<14 | 0x04<<7 | 0x2C, - 12494 - 12288: jis0208<<14 | 0x04<<7 | 0x2D, - 12495 - 12288: jis0208<<14 | 0x04<<7 | 0x2E, - 12496 - 12288: jis0208<<14 | 0x04<<7 | 0x2F, - 12497 - 12288: jis0208<<14 | 0x04<<7 | 0x30, - 12498 - 12288: jis0208<<14 | 0x04<<7 | 0x31, - 12499 - 12288: jis0208<<14 | 0x04<<7 | 0x32, - 12500 - 12288: jis0208<<14 | 0x04<<7 | 0x33, - 12501 - 12288: jis0208<<14 | 0x04<<7 | 0x34, - 12502 - 12288: jis0208<<14 | 0x04<<7 | 0x35, - 12503 - 12288: jis0208<<14 | 0x04<<7 | 0x36, - 12504 - 12288: jis0208<<14 | 0x04<<7 | 0x37, - 12505 - 12288: jis0208<<14 | 0x04<<7 | 0x38, - 12506 - 12288: jis0208<<14 | 0x04<<7 | 0x39, - 12507 - 12288: jis0208<<14 | 0x04<<7 | 0x3A, - 12508 - 12288: jis0208<<14 | 0x04<<7 | 0x3B, - 12509 - 12288: jis0208<<14 | 0x04<<7 | 0x3C, - 12510 - 12288: jis0208<<14 | 0x04<<7 | 0x3D, - 12511 - 12288: jis0208<<14 | 0x04<<7 | 0x3E, - 12512 - 12288: jis0208<<14 | 0x04<<7 | 0x3F, - 12513 - 12288: jis0208<<14 | 0x04<<7 | 0x40, - 12514 - 12288: jis0208<<14 | 0x04<<7 | 0x41, - 12515 - 12288: jis0208<<14 | 0x04<<7 | 0x42, - 12516 - 12288: jis0208<<14 | 0x04<<7 | 0x43, - 12517 - 12288: jis0208<<14 | 0x04<<7 | 0x44, - 12518 - 12288: jis0208<<14 | 0x04<<7 | 0x45, - 12519 - 12288: jis0208<<14 | 0x04<<7 | 0x46, - 12520 - 12288: jis0208<<14 | 0x04<<7 | 0x47, - 12521 - 12288: jis0208<<14 | 0x04<<7 | 0x48, - 12522 - 12288: jis0208<<14 | 0x04<<7 | 0x49, - 12523 - 12288: jis0208<<14 | 0x04<<7 | 0x4A, - 12524 - 12288: jis0208<<14 | 0x04<<7 | 0x4B, - 12525 - 12288: jis0208<<14 | 0x04<<7 | 0x4C, - 12526 - 12288: jis0208<<14 | 0x04<<7 | 0x4D, - 12527 - 12288: jis0208<<14 | 0x04<<7 | 0x4E, - 12528 - 12288: jis0208<<14 | 0x04<<7 | 0x4F, - 12529 - 12288: jis0208<<14 | 0x04<<7 | 0x50, - 12530 - 12288: jis0208<<14 | 0x04<<7 | 0x51, - 12531 - 12288: jis0208<<14 | 0x04<<7 | 0x52, - 12532 - 12288: jis0208<<14 | 0x04<<7 | 0x53, - 12533 - 12288: jis0208<<14 | 0x04<<7 | 0x54, - 12534 - 12288: jis0208<<14 | 0x04<<7 | 0x55, - 12539 - 12288: jis0208<<14 | 0x00<<7 | 0x05, - 12540 - 12288: jis0208<<14 | 0x00<<7 | 0x1B, - 12541 - 12288: jis0208<<14 | 0x00<<7 | 0x12, - 12542 - 12288: jis0208<<14 | 0x00<<7 | 0x13, - 12849 - 12288: jis0208<<14 | 0x0C<<7 | 0x49, - 12850 - 12288: jis0208<<14 | 0x0C<<7 | 0x4A, - 12857 - 12288: jis0208<<14 | 0x0C<<7 | 0x4B, - 12964 - 12288: jis0208<<14 | 0x0C<<7 | 0x44, - 12965 - 12288: jis0208<<14 | 0x0C<<7 | 0x45, - 12966 - 12288: jis0208<<14 | 0x0C<<7 | 0x46, - 12967 - 12288: jis0208<<14 | 0x0C<<7 | 0x47, - 12968 - 12288: jis0208<<14 | 0x0C<<7 | 0x48, - 13059 - 12288: jis0208<<14 | 0x0C<<7 | 0x25, - 13069 - 12288: jis0208<<14 | 0x0C<<7 | 0x29, - 13076 - 12288: jis0208<<14 | 0x0C<<7 | 0x20, - 13080 - 12288: jis0208<<14 | 0x0C<<7 | 0x23, - 13090 - 12288: jis0208<<14 | 0x0C<<7 | 0x21, - 13091 - 12288: jis0208<<14 | 0x0C<<7 | 0x2B, - 13094 - 12288: jis0208<<14 | 0x0C<<7 | 0x2A, - 13095 - 12288: jis0208<<14 | 0x0C<<7 | 0x24, - 13099 - 12288: jis0208<<14 | 0x0C<<7 | 0x2C, - 13110 - 12288: jis0208<<14 | 0x0C<<7 | 0x26, - 13115 - 12288: jis0208<<14 | 0x0C<<7 | 0x2E, - 13129 - 12288: jis0208<<14 | 0x0C<<7 | 0x1F, - 13130 - 12288: jis0208<<14 | 0x0C<<7 | 0x2D, - 13133 - 12288: jis0208<<14 | 0x0C<<7 | 0x22, - 13137 - 12288: jis0208<<14 | 0x0C<<7 | 0x27, - 13143 - 12288: jis0208<<14 | 0x0C<<7 | 0x28, - 13179 - 12288: jis0208<<14 | 0x0C<<7 | 0x3E, - 13180 - 12288: jis0208<<14 | 0x0C<<7 | 0x4E, - 13181 - 12288: jis0208<<14 | 0x0C<<7 | 0x4D, - 13182 - 12288: jis0208<<14 | 0x0C<<7 | 0x4C, - 13198 - 12288: jis0208<<14 | 0x0C<<7 | 0x32, - 13199 - 12288: jis0208<<14 | 0x0C<<7 | 0x33, - 13212 - 12288: jis0208<<14 | 0x0C<<7 | 0x2F, - 13213 - 12288: jis0208<<14 | 0x0C<<7 | 0x30, - 13214 - 12288: jis0208<<14 | 0x0C<<7 | 0x31, - 13217 - 12288: jis0208<<14 | 0x0C<<7 | 0x35, - 13252 - 12288: jis0208<<14 | 0x0C<<7 | 0x34, - 13261 - 12288: jis0208<<14 | 0x0C<<7 | 0x42, -} - -const encode3Low, encode3High = 161, 1120 - -var encode3 = [...]uint16{ - 161 - 161: jis0212<<14 | 0x01<<7 | 0x21, - 164 - 161: jis0212<<14 | 0x01<<7 | 0x4F, - 166 - 161: jis0212<<14 | 0x01<<7 | 0x22, - 167 - 161: jis0208<<14 | 0x00<<7 | 0x57, - 168 - 161: jis0208<<14 | 0x00<<7 | 0x0E, - 169 - 161: jis0212<<14 | 0x01<<7 | 0x4C, - 170 - 161: jis0212<<14 | 0x01<<7 | 0x4B, - 174 - 161: jis0212<<14 | 0x01<<7 | 0x4D, - 175 - 161: jis0212<<14 | 0x01<<7 | 0x13, - 176 - 161: jis0208<<14 | 0x00<<7 | 0x4A, - 177 - 161: jis0208<<14 | 0x00<<7 | 0x3D, - 180 - 161: jis0208<<14 | 0x00<<7 | 0x0C, - 182 - 161: jis0208<<14 | 0x01<<7 | 0x58, - 184 - 161: jis0212<<14 | 0x01<<7 | 0x10, - 186 - 161: jis0212<<14 | 0x01<<7 | 0x4A, - 191 - 161: jis0212<<14 | 0x01<<7 | 0x23, - 192 - 161: jis0212<<14 | 0x09<<7 | 0x01, - 193 - 161: jis0212<<14 | 0x09<<7 | 0x00, - 194 - 161: jis0212<<14 | 0x09<<7 | 0x03, - 195 - 161: jis0212<<14 | 0x09<<7 | 0x09, - 196 - 161: jis0212<<14 | 0x09<<7 | 0x02, - 197 - 161: jis0212<<14 | 0x09<<7 | 0x08, - 198 - 161: jis0212<<14 | 0x08<<7 | 0x00, - 199 - 161: jis0212<<14 | 0x09<<7 | 0x0D, - 200 - 161: jis0212<<14 | 0x09<<7 | 0x11, - 201 - 161: jis0212<<14 | 0x09<<7 | 0x10, - 202 - 161: jis0212<<14 | 0x09<<7 | 0x13, - 203 - 161: jis0212<<14 | 0x09<<7 | 0x12, - 204 - 161: jis0212<<14 | 0x09<<7 | 0x1F, - 205 - 161: jis0212<<14 | 0x09<<7 | 0x1E, - 206 - 161: jis0212<<14 | 0x09<<7 | 0x21, - 207 - 161: jis0212<<14 | 0x09<<7 | 0x20, - 209 - 161: jis0212<<14 | 0x09<<7 | 0x2F, - 210 - 161: jis0212<<14 | 0x09<<7 | 0x31, - 211 - 161: jis0212<<14 | 0x09<<7 | 0x30, - 212 - 161: jis0212<<14 | 0x09<<7 | 0x33, - 213 - 161: jis0212<<14 | 0x09<<7 | 0x37, - 214 - 161: jis0212<<14 | 0x09<<7 | 0x32, - 215 - 161: jis0208<<14 | 0x00<<7 | 0x3E, - 216 - 161: jis0212<<14 | 0x08<<7 | 0x0B, - 217 - 161: jis0212<<14 | 0x09<<7 | 0x42, - 218 - 161: jis0212<<14 | 0x09<<7 | 0x41, - 219 - 161: jis0212<<14 | 0x09<<7 | 0x44, - 220 - 161: jis0212<<14 | 0x09<<7 | 0x43, - 221 - 161: jis0212<<14 | 0x09<<7 | 0x51, - 222 - 161: jis0212<<14 | 0x08<<7 | 0x0F, - 223 - 161: jis0212<<14 | 0x08<<7 | 0x2D, - 224 - 161: jis0212<<14 | 0x0A<<7 | 0x01, - 225 - 161: jis0212<<14 | 0x0A<<7 | 0x00, - 226 - 161: jis0212<<14 | 0x0A<<7 | 0x03, - 227 - 161: jis0212<<14 | 0x0A<<7 | 0x09, - 228 - 161: jis0212<<14 | 0x0A<<7 | 0x02, - 229 - 161: jis0212<<14 | 0x0A<<7 | 0x08, - 230 - 161: jis0212<<14 | 0x08<<7 | 0x20, - 231 - 161: jis0212<<14 | 0x0A<<7 | 0x0D, - 232 - 161: jis0212<<14 | 0x0A<<7 | 0x11, - 233 - 161: jis0212<<14 | 0x0A<<7 | 0x10, - 234 - 161: jis0212<<14 | 0x0A<<7 | 0x13, - 235 - 161: jis0212<<14 | 0x0A<<7 | 0x12, - 236 - 161: jis0212<<14 | 0x0A<<7 | 0x1F, - 237 - 161: jis0212<<14 | 0x0A<<7 | 0x1E, - 238 - 161: jis0212<<14 | 0x0A<<7 | 0x21, - 239 - 161: jis0212<<14 | 0x0A<<7 | 0x20, - 240 - 161: jis0212<<14 | 0x08<<7 | 0x22, - 241 - 161: jis0212<<14 | 0x0A<<7 | 0x2F, - 242 - 161: jis0212<<14 | 0x0A<<7 | 0x31, - 243 - 161: jis0212<<14 | 0x0A<<7 | 0x30, - 244 - 161: jis0212<<14 | 0x0A<<7 | 0x33, - 245 - 161: jis0212<<14 | 0x0A<<7 | 0x37, - 246 - 161: jis0212<<14 | 0x0A<<7 | 0x32, - 247 - 161: jis0208<<14 | 0x00<<7 | 0x3F, - 248 - 161: jis0212<<14 | 0x08<<7 | 0x2B, - 249 - 161: jis0212<<14 | 0x0A<<7 | 0x42, - 250 - 161: jis0212<<14 | 0x0A<<7 | 0x41, - 251 - 161: jis0212<<14 | 0x0A<<7 | 0x44, - 252 - 161: jis0212<<14 | 0x0A<<7 | 0x43, - 253 - 161: jis0212<<14 | 0x0A<<7 | 0x51, - 254 - 161: jis0212<<14 | 0x08<<7 | 0x2F, - 255 - 161: jis0212<<14 | 0x0A<<7 | 0x52, - 256 - 161: jis0212<<14 | 0x09<<7 | 0x06, - 257 - 161: jis0212<<14 | 0x0A<<7 | 0x06, - 258 - 161: jis0212<<14 | 0x09<<7 | 0x04, - 259 - 161: jis0212<<14 | 0x0A<<7 | 0x04, - 260 - 161: jis0212<<14 | 0x09<<7 | 0x07, - 261 - 161: jis0212<<14 | 0x0A<<7 | 0x07, - 262 - 161: jis0212<<14 | 0x09<<7 | 0x0A, - 263 - 161: jis0212<<14 | 0x0A<<7 | 0x0A, - 264 - 161: jis0212<<14 | 0x09<<7 | 0x0B, - 265 - 161: jis0212<<14 | 0x0A<<7 | 0x0B, - 266 - 161: jis0212<<14 | 0x09<<7 | 0x0E, - 267 - 161: jis0212<<14 | 0x0A<<7 | 0x0E, - 268 - 161: jis0212<<14 | 0x09<<7 | 0x0C, - 269 - 161: jis0212<<14 | 0x0A<<7 | 0x0C, - 270 - 161: jis0212<<14 | 0x09<<7 | 0x0F, - 271 - 161: jis0212<<14 | 0x0A<<7 | 0x0F, - 272 - 161: jis0212<<14 | 0x08<<7 | 0x01, - 273 - 161: jis0212<<14 | 0x08<<7 | 0x21, - 274 - 161: jis0212<<14 | 0x09<<7 | 0x16, - 275 - 161: jis0212<<14 | 0x0A<<7 | 0x16, - 278 - 161: jis0212<<14 | 0x09<<7 | 0x15, - 279 - 161: jis0212<<14 | 0x0A<<7 | 0x15, - 280 - 161: jis0212<<14 | 0x09<<7 | 0x17, - 281 - 161: jis0212<<14 | 0x0A<<7 | 0x17, - 282 - 161: jis0212<<14 | 0x09<<7 | 0x14, - 283 - 161: jis0212<<14 | 0x0A<<7 | 0x14, - 284 - 161: jis0212<<14 | 0x09<<7 | 0x19, - 285 - 161: jis0212<<14 | 0x0A<<7 | 0x19, - 286 - 161: jis0212<<14 | 0x09<<7 | 0x1A, - 287 - 161: jis0212<<14 | 0x0A<<7 | 0x1A, - 288 - 161: jis0212<<14 | 0x09<<7 | 0x1C, - 289 - 161: jis0212<<14 | 0x0A<<7 | 0x1C, - 290 - 161: jis0212<<14 | 0x09<<7 | 0x1B, - 292 - 161: jis0212<<14 | 0x09<<7 | 0x1D, - 293 - 161: jis0212<<14 | 0x0A<<7 | 0x1D, - 294 - 161: jis0212<<14 | 0x08<<7 | 0x03, - 295 - 161: jis0212<<14 | 0x08<<7 | 0x23, - 296 - 161: jis0212<<14 | 0x09<<7 | 0x26, - 297 - 161: jis0212<<14 | 0x0A<<7 | 0x26, - 298 - 161: jis0212<<14 | 0x09<<7 | 0x24, - 299 - 161: jis0212<<14 | 0x0A<<7 | 0x24, - 302 - 161: jis0212<<14 | 0x09<<7 | 0x25, - 303 - 161: jis0212<<14 | 0x0A<<7 | 0x25, - 304 - 161: jis0212<<14 | 0x09<<7 | 0x23, - 305 - 161: jis0212<<14 | 0x08<<7 | 0x24, - 306 - 161: jis0212<<14 | 0x08<<7 | 0x05, - 307 - 161: jis0212<<14 | 0x08<<7 | 0x25, - 308 - 161: jis0212<<14 | 0x09<<7 | 0x27, - 309 - 161: jis0212<<14 | 0x0A<<7 | 0x27, - 310 - 161: jis0212<<14 | 0x09<<7 | 0x28, - 311 - 161: jis0212<<14 | 0x0A<<7 | 0x28, - 312 - 161: jis0212<<14 | 0x08<<7 | 0x26, - 313 - 161: jis0212<<14 | 0x09<<7 | 0x29, - 314 - 161: jis0212<<14 | 0x0A<<7 | 0x29, - 315 - 161: jis0212<<14 | 0x09<<7 | 0x2B, - 316 - 161: jis0212<<14 | 0x0A<<7 | 0x2B, - 317 - 161: jis0212<<14 | 0x09<<7 | 0x2A, - 318 - 161: jis0212<<14 | 0x0A<<7 | 0x2A, - 319 - 161: jis0212<<14 | 0x08<<7 | 0x08, - 320 - 161: jis0212<<14 | 0x08<<7 | 0x28, - 321 - 161: jis0212<<14 | 0x08<<7 | 0x07, - 322 - 161: jis0212<<14 | 0x08<<7 | 0x27, - 323 - 161: jis0212<<14 | 0x09<<7 | 0x2C, - 324 - 161: jis0212<<14 | 0x0A<<7 | 0x2C, - 325 - 161: jis0212<<14 | 0x09<<7 | 0x2E, - 326 - 161: jis0212<<14 | 0x0A<<7 | 0x2E, - 327 - 161: jis0212<<14 | 0x09<<7 | 0x2D, - 328 - 161: jis0212<<14 | 0x0A<<7 | 0x2D, - 329 - 161: jis0212<<14 | 0x08<<7 | 0x29, - 330 - 161: jis0212<<14 | 0x08<<7 | 0x0A, - 331 - 161: jis0212<<14 | 0x08<<7 | 0x2A, - 332 - 161: jis0212<<14 | 0x09<<7 | 0x36, - 333 - 161: jis0212<<14 | 0x0A<<7 | 0x36, - 336 - 161: jis0212<<14 | 0x09<<7 | 0x35, - 337 - 161: jis0212<<14 | 0x0A<<7 | 0x35, - 338 - 161: jis0212<<14 | 0x08<<7 | 0x0C, - 339 - 161: jis0212<<14 | 0x08<<7 | 0x2C, - 340 - 161: jis0212<<14 | 0x09<<7 | 0x38, - 341 - 161: jis0212<<14 | 0x0A<<7 | 0x38, - 342 - 161: jis0212<<14 | 0x09<<7 | 0x3A, - 343 - 161: jis0212<<14 | 0x0A<<7 | 0x3A, - 344 - 161: jis0212<<14 | 0x09<<7 | 0x39, - 345 - 161: jis0212<<14 | 0x0A<<7 | 0x39, - 346 - 161: jis0212<<14 | 0x09<<7 | 0x3B, - 347 - 161: jis0212<<14 | 0x0A<<7 | 0x3B, - 348 - 161: jis0212<<14 | 0x09<<7 | 0x3C, - 349 - 161: jis0212<<14 | 0x0A<<7 | 0x3C, - 350 - 161: jis0212<<14 | 0x09<<7 | 0x3E, - 351 - 161: jis0212<<14 | 0x0A<<7 | 0x3E, - 352 - 161: jis0212<<14 | 0x09<<7 | 0x3D, - 353 - 161: jis0212<<14 | 0x0A<<7 | 0x3D, - 354 - 161: jis0212<<14 | 0x09<<7 | 0x40, - 355 - 161: jis0212<<14 | 0x0A<<7 | 0x40, - 356 - 161: jis0212<<14 | 0x09<<7 | 0x3F, - 357 - 161: jis0212<<14 | 0x0A<<7 | 0x3F, - 358 - 161: jis0212<<14 | 0x08<<7 | 0x0E, - 359 - 161: jis0212<<14 | 0x08<<7 | 0x2E, - 360 - 161: jis0212<<14 | 0x09<<7 | 0x4B, - 361 - 161: jis0212<<14 | 0x0A<<7 | 0x4B, - 362 - 161: jis0212<<14 | 0x09<<7 | 0x48, - 363 - 161: jis0212<<14 | 0x0A<<7 | 0x48, - 364 - 161: jis0212<<14 | 0x09<<7 | 0x45, - 365 - 161: jis0212<<14 | 0x0A<<7 | 0x45, - 366 - 161: jis0212<<14 | 0x09<<7 | 0x4A, - 367 - 161: jis0212<<14 | 0x0A<<7 | 0x4A, - 368 - 161: jis0212<<14 | 0x09<<7 | 0x47, - 369 - 161: jis0212<<14 | 0x0A<<7 | 0x47, - 370 - 161: jis0212<<14 | 0x09<<7 | 0x49, - 371 - 161: jis0212<<14 | 0x0A<<7 | 0x49, - 372 - 161: jis0212<<14 | 0x09<<7 | 0x50, - 373 - 161: jis0212<<14 | 0x0A<<7 | 0x50, - 374 - 161: jis0212<<14 | 0x09<<7 | 0x53, - 375 - 161: jis0212<<14 | 0x0A<<7 | 0x53, - 376 - 161: jis0212<<14 | 0x09<<7 | 0x52, - 377 - 161: jis0212<<14 | 0x09<<7 | 0x54, - 378 - 161: jis0212<<14 | 0x0A<<7 | 0x54, - 379 - 161: jis0212<<14 | 0x09<<7 | 0x56, - 380 - 161: jis0212<<14 | 0x0A<<7 | 0x56, - 381 - 161: jis0212<<14 | 0x09<<7 | 0x55, - 382 - 161: jis0212<<14 | 0x0A<<7 | 0x55, - 461 - 161: jis0212<<14 | 0x09<<7 | 0x05, - 462 - 161: jis0212<<14 | 0x0A<<7 | 0x05, - 463 - 161: jis0212<<14 | 0x09<<7 | 0x22, - 464 - 161: jis0212<<14 | 0x0A<<7 | 0x22, - 465 - 161: jis0212<<14 | 0x09<<7 | 0x34, - 466 - 161: jis0212<<14 | 0x0A<<7 | 0x34, - 467 - 161: jis0212<<14 | 0x09<<7 | 0x46, - 468 - 161: jis0212<<14 | 0x0A<<7 | 0x46, - 469 - 161: jis0212<<14 | 0x09<<7 | 0x4F, - 470 - 161: jis0212<<14 | 0x0A<<7 | 0x4F, - 471 - 161: jis0212<<14 | 0x09<<7 | 0x4C, - 472 - 161: jis0212<<14 | 0x0A<<7 | 0x4C, - 473 - 161: jis0212<<14 | 0x09<<7 | 0x4E, - 474 - 161: jis0212<<14 | 0x0A<<7 | 0x4E, - 475 - 161: jis0212<<14 | 0x09<<7 | 0x4D, - 476 - 161: jis0212<<14 | 0x0A<<7 | 0x4D, - 501 - 161: jis0212<<14 | 0x0A<<7 | 0x18, - 711 - 161: jis0212<<14 | 0x01<<7 | 0x0F, - 728 - 161: jis0212<<14 | 0x01<<7 | 0x0E, - 729 - 161: jis0212<<14 | 0x01<<7 | 0x11, - 730 - 161: jis0212<<14 | 0x01<<7 | 0x15, - 731 - 161: jis0212<<14 | 0x01<<7 | 0x14, - 733 - 161: jis0212<<14 | 0x01<<7 | 0x12, - 900 - 161: jis0212<<14 | 0x01<<7 | 0x17, - 901 - 161: jis0212<<14 | 0x01<<7 | 0x18, - 902 - 161: jis0212<<14 | 0x05<<7 | 0x40, - 904 - 161: jis0212<<14 | 0x05<<7 | 0x41, - 905 - 161: jis0212<<14 | 0x05<<7 | 0x42, - 906 - 161: jis0212<<14 | 0x05<<7 | 0x43, - 908 - 161: jis0212<<14 | 0x05<<7 | 0x46, - 910 - 161: jis0212<<14 | 0x05<<7 | 0x48, - 911 - 161: jis0212<<14 | 0x05<<7 | 0x4B, - 912 - 161: jis0212<<14 | 0x05<<7 | 0x55, - 913 - 161: jis0208<<14 | 0x05<<7 | 0x00, - 914 - 161: jis0208<<14 | 0x05<<7 | 0x01, - 915 - 161: jis0208<<14 | 0x05<<7 | 0x02, - 916 - 161: jis0208<<14 | 0x05<<7 | 0x03, - 917 - 161: jis0208<<14 | 0x05<<7 | 0x04, - 918 - 161: jis0208<<14 | 0x05<<7 | 0x05, - 919 - 161: jis0208<<14 | 0x05<<7 | 0x06, - 920 - 161: jis0208<<14 | 0x05<<7 | 0x07, - 921 - 161: jis0208<<14 | 0x05<<7 | 0x08, - 922 - 161: jis0208<<14 | 0x05<<7 | 0x09, - 923 - 161: jis0208<<14 | 0x05<<7 | 0x0A, - 924 - 161: jis0208<<14 | 0x05<<7 | 0x0B, - 925 - 161: jis0208<<14 | 0x05<<7 | 0x0C, - 926 - 161: jis0208<<14 | 0x05<<7 | 0x0D, - 927 - 161: jis0208<<14 | 0x05<<7 | 0x0E, - 928 - 161: jis0208<<14 | 0x05<<7 | 0x0F, - 929 - 161: jis0208<<14 | 0x05<<7 | 0x10, - 931 - 161: jis0208<<14 | 0x05<<7 | 0x11, - 932 - 161: jis0208<<14 | 0x05<<7 | 0x12, - 933 - 161: jis0208<<14 | 0x05<<7 | 0x13, - 934 - 161: jis0208<<14 | 0x05<<7 | 0x14, - 935 - 161: jis0208<<14 | 0x05<<7 | 0x15, - 936 - 161: jis0208<<14 | 0x05<<7 | 0x16, - 937 - 161: jis0208<<14 | 0x05<<7 | 0x17, - 938 - 161: jis0212<<14 | 0x05<<7 | 0x44, - 939 - 161: jis0212<<14 | 0x05<<7 | 0x49, - 940 - 161: jis0212<<14 | 0x05<<7 | 0x50, - 941 - 161: jis0212<<14 | 0x05<<7 | 0x51, - 942 - 161: jis0212<<14 | 0x05<<7 | 0x52, - 943 - 161: jis0212<<14 | 0x05<<7 | 0x53, - 944 - 161: jis0212<<14 | 0x05<<7 | 0x5A, - 945 - 161: jis0208<<14 | 0x05<<7 | 0x20, - 946 - 161: jis0208<<14 | 0x05<<7 | 0x21, - 947 - 161: jis0208<<14 | 0x05<<7 | 0x22, - 948 - 161: jis0208<<14 | 0x05<<7 | 0x23, - 949 - 161: jis0208<<14 | 0x05<<7 | 0x24, - 950 - 161: jis0208<<14 | 0x05<<7 | 0x25, - 951 - 161: jis0208<<14 | 0x05<<7 | 0x26, - 952 - 161: jis0208<<14 | 0x05<<7 | 0x27, - 953 - 161: jis0208<<14 | 0x05<<7 | 0x28, - 954 - 161: jis0208<<14 | 0x05<<7 | 0x29, - 955 - 161: jis0208<<14 | 0x05<<7 | 0x2A, - 956 - 161: jis0208<<14 | 0x05<<7 | 0x2B, - 957 - 161: jis0208<<14 | 0x05<<7 | 0x2C, - 958 - 161: jis0208<<14 | 0x05<<7 | 0x2D, - 959 - 161: jis0208<<14 | 0x05<<7 | 0x2E, - 960 - 161: jis0208<<14 | 0x05<<7 | 0x2F, - 961 - 161: jis0208<<14 | 0x05<<7 | 0x30, - 962 - 161: jis0212<<14 | 0x05<<7 | 0x57, - 963 - 161: jis0208<<14 | 0x05<<7 | 0x31, - 964 - 161: jis0208<<14 | 0x05<<7 | 0x32, - 965 - 161: jis0208<<14 | 0x05<<7 | 0x33, - 966 - 161: jis0208<<14 | 0x05<<7 | 0x34, - 967 - 161: jis0208<<14 | 0x05<<7 | 0x35, - 968 - 161: jis0208<<14 | 0x05<<7 | 0x36, - 969 - 161: jis0208<<14 | 0x05<<7 | 0x37, - 970 - 161: jis0212<<14 | 0x05<<7 | 0x54, - 971 - 161: jis0212<<14 | 0x05<<7 | 0x59, - 972 - 161: jis0212<<14 | 0x05<<7 | 0x56, - 973 - 161: jis0212<<14 | 0x05<<7 | 0x58, - 974 - 161: jis0212<<14 | 0x05<<7 | 0x5B, - 1025 - 161: jis0208<<14 | 0x06<<7 | 0x06, - 1026 - 161: jis0212<<14 | 0x06<<7 | 0x21, - 1027 - 161: jis0212<<14 | 0x06<<7 | 0x22, - 1028 - 161: jis0212<<14 | 0x06<<7 | 0x23, - 1029 - 161: jis0212<<14 | 0x06<<7 | 0x24, - 1030 - 161: jis0212<<14 | 0x06<<7 | 0x25, - 1031 - 161: jis0212<<14 | 0x06<<7 | 0x26, - 1032 - 161: jis0212<<14 | 0x06<<7 | 0x27, - 1033 - 161: jis0212<<14 | 0x06<<7 | 0x28, - 1034 - 161: jis0212<<14 | 0x06<<7 | 0x29, - 1035 - 161: jis0212<<14 | 0x06<<7 | 0x2A, - 1036 - 161: jis0212<<14 | 0x06<<7 | 0x2B, - 1038 - 161: jis0212<<14 | 0x06<<7 | 0x2C, - 1039 - 161: jis0212<<14 | 0x06<<7 | 0x2D, - 1040 - 161: jis0208<<14 | 0x06<<7 | 0x00, - 1041 - 161: jis0208<<14 | 0x06<<7 | 0x01, - 1042 - 161: jis0208<<14 | 0x06<<7 | 0x02, - 1043 - 161: jis0208<<14 | 0x06<<7 | 0x03, - 1044 - 161: jis0208<<14 | 0x06<<7 | 0x04, - 1045 - 161: jis0208<<14 | 0x06<<7 | 0x05, - 1046 - 161: jis0208<<14 | 0x06<<7 | 0x07, - 1047 - 161: jis0208<<14 | 0x06<<7 | 0x08, - 1048 - 161: jis0208<<14 | 0x06<<7 | 0x09, - 1049 - 161: jis0208<<14 | 0x06<<7 | 0x0A, - 1050 - 161: jis0208<<14 | 0x06<<7 | 0x0B, - 1051 - 161: jis0208<<14 | 0x06<<7 | 0x0C, - 1052 - 161: jis0208<<14 | 0x06<<7 | 0x0D, - 1053 - 161: jis0208<<14 | 0x06<<7 | 0x0E, - 1054 - 161: jis0208<<14 | 0x06<<7 | 0x0F, - 1055 - 161: jis0208<<14 | 0x06<<7 | 0x10, - 1056 - 161: jis0208<<14 | 0x06<<7 | 0x11, - 1057 - 161: jis0208<<14 | 0x06<<7 | 0x12, - 1058 - 161: jis0208<<14 | 0x06<<7 | 0x13, - 1059 - 161: jis0208<<14 | 0x06<<7 | 0x14, - 1060 - 161: jis0208<<14 | 0x06<<7 | 0x15, - 1061 - 161: jis0208<<14 | 0x06<<7 | 0x16, - 1062 - 161: jis0208<<14 | 0x06<<7 | 0x17, - 1063 - 161: jis0208<<14 | 0x06<<7 | 0x18, - 1064 - 161: jis0208<<14 | 0x06<<7 | 0x19, - 1065 - 161: jis0208<<14 | 0x06<<7 | 0x1A, - 1066 - 161: jis0208<<14 | 0x06<<7 | 0x1B, - 1067 - 161: jis0208<<14 | 0x06<<7 | 0x1C, - 1068 - 161: jis0208<<14 | 0x06<<7 | 0x1D, - 1069 - 161: jis0208<<14 | 0x06<<7 | 0x1E, - 1070 - 161: jis0208<<14 | 0x06<<7 | 0x1F, - 1071 - 161: jis0208<<14 | 0x06<<7 | 0x20, - 1072 - 161: jis0208<<14 | 0x06<<7 | 0x30, - 1073 - 161: jis0208<<14 | 0x06<<7 | 0x31, - 1074 - 161: jis0208<<14 | 0x06<<7 | 0x32, - 1075 - 161: jis0208<<14 | 0x06<<7 | 0x33, - 1076 - 161: jis0208<<14 | 0x06<<7 | 0x34, - 1077 - 161: jis0208<<14 | 0x06<<7 | 0x35, - 1078 - 161: jis0208<<14 | 0x06<<7 | 0x37, - 1079 - 161: jis0208<<14 | 0x06<<7 | 0x38, - 1080 - 161: jis0208<<14 | 0x06<<7 | 0x39, - 1081 - 161: jis0208<<14 | 0x06<<7 | 0x3A, - 1082 - 161: jis0208<<14 | 0x06<<7 | 0x3B, - 1083 - 161: jis0208<<14 | 0x06<<7 | 0x3C, - 1084 - 161: jis0208<<14 | 0x06<<7 | 0x3D, - 1085 - 161: jis0208<<14 | 0x06<<7 | 0x3E, - 1086 - 161: jis0208<<14 | 0x06<<7 | 0x3F, - 1087 - 161: jis0208<<14 | 0x06<<7 | 0x40, - 1088 - 161: jis0208<<14 | 0x06<<7 | 0x41, - 1089 - 161: jis0208<<14 | 0x06<<7 | 0x42, - 1090 - 161: jis0208<<14 | 0x06<<7 | 0x43, - 1091 - 161: jis0208<<14 | 0x06<<7 | 0x44, - 1092 - 161: jis0208<<14 | 0x06<<7 | 0x45, - 1093 - 161: jis0208<<14 | 0x06<<7 | 0x46, - 1094 - 161: jis0208<<14 | 0x06<<7 | 0x47, - 1095 - 161: jis0208<<14 | 0x06<<7 | 0x48, - 1096 - 161: jis0208<<14 | 0x06<<7 | 0x49, - 1097 - 161: jis0208<<14 | 0x06<<7 | 0x4A, - 1098 - 161: jis0208<<14 | 0x06<<7 | 0x4B, - 1099 - 161: jis0208<<14 | 0x06<<7 | 0x4C, - 1100 - 161: jis0208<<14 | 0x06<<7 | 0x4D, - 1101 - 161: jis0208<<14 | 0x06<<7 | 0x4E, - 1102 - 161: jis0208<<14 | 0x06<<7 | 0x4F, - 1103 - 161: jis0208<<14 | 0x06<<7 | 0x50, - 1105 - 161: jis0208<<14 | 0x06<<7 | 0x36, - 1106 - 161: jis0212<<14 | 0x06<<7 | 0x51, - 1107 - 161: jis0212<<14 | 0x06<<7 | 0x52, - 1108 - 161: jis0212<<14 | 0x06<<7 | 0x53, - 1109 - 161: jis0212<<14 | 0x06<<7 | 0x54, - 1110 - 161: jis0212<<14 | 0x06<<7 | 0x55, - 1111 - 161: jis0212<<14 | 0x06<<7 | 0x56, - 1112 - 161: jis0212<<14 | 0x06<<7 | 0x57, - 1113 - 161: jis0212<<14 | 0x06<<7 | 0x58, - 1114 - 161: jis0212<<14 | 0x06<<7 | 0x59, - 1115 - 161: jis0212<<14 | 0x06<<7 | 0x5A, - 1116 - 161: jis0212<<14 | 0x06<<7 | 0x5B, - 1118 - 161: jis0212<<14 | 0x06<<7 | 0x5C, - 1119 - 161: jis0212<<14 | 0x06<<7 | 0x5D, -} - -const encode4Low, encode4High = 63785, 64046 - -var encode4 = [...]uint16{ - 63785 - 63785: jis0208<<14 | 0x59<<7 | 0x25, - 63964 - 63785: jis0208<<14 | 0x5B<<7 | 0x2E, - 64014 - 63785: jis0208<<14 | 0x58<<7 | 0x33, - 64015 - 63785: jis0208<<14 | 0x58<<7 | 0x3E, - 64016 - 63785: jis0208<<14 | 0x58<<7 | 0x3F, - 64017 - 63785: jis0208<<14 | 0x58<<7 | 0x54, - 64018 - 63785: jis0208<<14 | 0x59<<7 | 0x1D, - 64019 - 63785: jis0208<<14 | 0x59<<7 | 0x2D, - 64020 - 63785: jis0208<<14 | 0x59<<7 | 0x2F, - 64021 - 63785: jis0208<<14 | 0x59<<7 | 0x5A, - 64022 - 63785: jis0208<<14 | 0x5A<<7 | 0x02, - 64023 - 63785: jis0208<<14 | 0x5A<<7 | 0x19, - 64024 - 63785: jis0208<<14 | 0x5A<<7 | 0x21, - 64025 - 63785: jis0208<<14 | 0x5A<<7 | 0x22, - 64026 - 63785: jis0208<<14 | 0x5A<<7 | 0x23, - 64027 - 63785: jis0208<<14 | 0x5A<<7 | 0x25, - 64028 - 63785: jis0208<<14 | 0x5A<<7 | 0x29, - 64029 - 63785: jis0208<<14 | 0x5A<<7 | 0x2C, - 64030 - 63785: jis0208<<14 | 0x5A<<7 | 0x35, - 64031 - 63785: jis0208<<14 | 0x5A<<7 | 0x40, - 64032 - 63785: jis0208<<14 | 0x5A<<7 | 0x42, - 64033 - 63785: jis0208<<14 | 0x5A<<7 | 0x43, - 64034 - 63785: jis0208<<14 | 0x5A<<7 | 0x4C, - 64035 - 63785: jis0208<<14 | 0x5A<<7 | 0x54, - 64036 - 63785: jis0208<<14 | 0x5A<<7 | 0x56, - 64037 - 63785: jis0208<<14 | 0x5A<<7 | 0x57, - 64038 - 63785: jis0208<<14 | 0x5A<<7 | 0x5A, - 64039 - 63785: jis0208<<14 | 0x5B<<7 | 0x18, - 64040 - 63785: jis0208<<14 | 0x5B<<7 | 0x1F, - 64041 - 63785: jis0208<<14 | 0x5B<<7 | 0x2F, - 64042 - 63785: jis0208<<14 | 0x5B<<7 | 0x3B, - 64043 - 63785: jis0208<<14 | 0x5B<<7 | 0x3C, - 64044 - 63785: jis0208<<14 | 0x5B<<7 | 0x3E, - 64045 - 63785: jis0208<<14 | 0x5B<<7 | 0x4B, -} - -const encode5Low, encode5High = 65281, 65510 - -var encode5 = [...]uint16{ - 65281 - 65281: jis0208<<14 | 0x00<<7 | 0x09, - 65282 - 65281: jis0208<<14 | 0x5B<<7 | 0x5D, - 65283 - 65281: jis0208<<14 | 0x00<<7 | 0x53, - 65284 - 65281: jis0208<<14 | 0x00<<7 | 0x4F, - 65285 - 65281: jis0208<<14 | 0x00<<7 | 0x52, - 65286 - 65281: jis0208<<14 | 0x00<<7 | 0x54, - 65287 - 65281: jis0208<<14 | 0x5B<<7 | 0x5C, - 65288 - 65281: jis0208<<14 | 0x00<<7 | 0x29, - 65289 - 65281: jis0208<<14 | 0x00<<7 | 0x2A, - 65290 - 65281: jis0208<<14 | 0x00<<7 | 0x55, - 65291 - 65281: jis0208<<14 | 0x00<<7 | 0x3B, - 65292 - 65281: jis0208<<14 | 0x00<<7 | 0x03, - 65293 - 65281: jis0208<<14 | 0x00<<7 | 0x3C, - 65294 - 65281: jis0208<<14 | 0x00<<7 | 0x04, - 65295 - 65281: jis0208<<14 | 0x00<<7 | 0x1E, - 65296 - 65281: jis0208<<14 | 0x02<<7 | 0x0F, - 65297 - 65281: jis0208<<14 | 0x02<<7 | 0x10, - 65298 - 65281: jis0208<<14 | 0x02<<7 | 0x11, - 65299 - 65281: jis0208<<14 | 0x02<<7 | 0x12, - 65300 - 65281: jis0208<<14 | 0x02<<7 | 0x13, - 65301 - 65281: jis0208<<14 | 0x02<<7 | 0x14, - 65302 - 65281: jis0208<<14 | 0x02<<7 | 0x15, - 65303 - 65281: jis0208<<14 | 0x02<<7 | 0x16, - 65304 - 65281: jis0208<<14 | 0x02<<7 | 0x17, - 65305 - 65281: jis0208<<14 | 0x02<<7 | 0x18, - 65306 - 65281: jis0208<<14 | 0x00<<7 | 0x06, - 65307 - 65281: jis0208<<14 | 0x00<<7 | 0x07, - 65308 - 65281: jis0208<<14 | 0x00<<7 | 0x42, - 65309 - 65281: jis0208<<14 | 0x00<<7 | 0x40, - 65310 - 65281: jis0208<<14 | 0x00<<7 | 0x43, - 65311 - 65281: jis0208<<14 | 0x00<<7 | 0x08, - 65312 - 65281: jis0208<<14 | 0x00<<7 | 0x56, - 65313 - 65281: jis0208<<14 | 0x02<<7 | 0x20, - 65314 - 65281: jis0208<<14 | 0x02<<7 | 0x21, - 65315 - 65281: jis0208<<14 | 0x02<<7 | 0x22, - 65316 - 65281: jis0208<<14 | 0x02<<7 | 0x23, - 65317 - 65281: jis0208<<14 | 0x02<<7 | 0x24, - 65318 - 65281: jis0208<<14 | 0x02<<7 | 0x25, - 65319 - 65281: jis0208<<14 | 0x02<<7 | 0x26, - 65320 - 65281: jis0208<<14 | 0x02<<7 | 0x27, - 65321 - 65281: jis0208<<14 | 0x02<<7 | 0x28, - 65322 - 65281: jis0208<<14 | 0x02<<7 | 0x29, - 65323 - 65281: jis0208<<14 | 0x02<<7 | 0x2A, - 65324 - 65281: jis0208<<14 | 0x02<<7 | 0x2B, - 65325 - 65281: jis0208<<14 | 0x02<<7 | 0x2C, - 65326 - 65281: jis0208<<14 | 0x02<<7 | 0x2D, - 65327 - 65281: jis0208<<14 | 0x02<<7 | 0x2E, - 65328 - 65281: jis0208<<14 | 0x02<<7 | 0x2F, - 65329 - 65281: jis0208<<14 | 0x02<<7 | 0x30, - 65330 - 65281: jis0208<<14 | 0x02<<7 | 0x31, - 65331 - 65281: jis0208<<14 | 0x02<<7 | 0x32, - 65332 - 65281: jis0208<<14 | 0x02<<7 | 0x33, - 65333 - 65281: jis0208<<14 | 0x02<<7 | 0x34, - 65334 - 65281: jis0208<<14 | 0x02<<7 | 0x35, - 65335 - 65281: jis0208<<14 | 0x02<<7 | 0x36, - 65336 - 65281: jis0208<<14 | 0x02<<7 | 0x37, - 65337 - 65281: jis0208<<14 | 0x02<<7 | 0x38, - 65338 - 65281: jis0208<<14 | 0x02<<7 | 0x39, - 65339 - 65281: jis0208<<14 | 0x00<<7 | 0x2D, - 65340 - 65281: jis0208<<14 | 0x00<<7 | 0x1F, - 65341 - 65281: jis0208<<14 | 0x00<<7 | 0x2E, - 65342 - 65281: jis0208<<14 | 0x00<<7 | 0x0F, - 65343 - 65281: jis0208<<14 | 0x00<<7 | 0x11, - 65344 - 65281: jis0208<<14 | 0x00<<7 | 0x0D, - 65345 - 65281: jis0208<<14 | 0x02<<7 | 0x40, - 65346 - 65281: jis0208<<14 | 0x02<<7 | 0x41, - 65347 - 65281: jis0208<<14 | 0x02<<7 | 0x42, - 65348 - 65281: jis0208<<14 | 0x02<<7 | 0x43, - 65349 - 65281: jis0208<<14 | 0x02<<7 | 0x44, - 65350 - 65281: jis0208<<14 | 0x02<<7 | 0x45, - 65351 - 65281: jis0208<<14 | 0x02<<7 | 0x46, - 65352 - 65281: jis0208<<14 | 0x02<<7 | 0x47, - 65353 - 65281: jis0208<<14 | 0x02<<7 | 0x48, - 65354 - 65281: jis0208<<14 | 0x02<<7 | 0x49, - 65355 - 65281: jis0208<<14 | 0x02<<7 | 0x4A, - 65356 - 65281: jis0208<<14 | 0x02<<7 | 0x4B, - 65357 - 65281: jis0208<<14 | 0x02<<7 | 0x4C, - 65358 - 65281: jis0208<<14 | 0x02<<7 | 0x4D, - 65359 - 65281: jis0208<<14 | 0x02<<7 | 0x4E, - 65360 - 65281: jis0208<<14 | 0x02<<7 | 0x4F, - 65361 - 65281: jis0208<<14 | 0x02<<7 | 0x50, - 65362 - 65281: jis0208<<14 | 0x02<<7 | 0x51, - 65363 - 65281: jis0208<<14 | 0x02<<7 | 0x52, - 65364 - 65281: jis0208<<14 | 0x02<<7 | 0x53, - 65365 - 65281: jis0208<<14 | 0x02<<7 | 0x54, - 65366 - 65281: jis0208<<14 | 0x02<<7 | 0x55, - 65367 - 65281: jis0208<<14 | 0x02<<7 | 0x56, - 65368 - 65281: jis0208<<14 | 0x02<<7 | 0x57, - 65369 - 65281: jis0208<<14 | 0x02<<7 | 0x58, - 65370 - 65281: jis0208<<14 | 0x02<<7 | 0x59, - 65371 - 65281: jis0208<<14 | 0x00<<7 | 0x2F, - 65372 - 65281: jis0208<<14 | 0x00<<7 | 0x22, - 65373 - 65281: jis0208<<14 | 0x00<<7 | 0x30, - 65374 - 65281: jis0208<<14 | 0x00<<7 | 0x20, - 65504 - 65281: jis0208<<14 | 0x00<<7 | 0x50, - 65505 - 65281: jis0208<<14 | 0x00<<7 | 0x51, - 65506 - 65281: jis0208<<14 | 0x01<<7 | 0x2B, - 65507 - 65281: jis0208<<14 | 0x00<<7 | 0x10, - 65508 - 65281: jis0208<<14 | 0x5B<<7 | 0x5B, - 65509 - 65281: jis0208<<14 | 0x00<<7 | 0x4E, -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/korean/euckr.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/korean/euckr.go deleted file mode 100644 index 034337f5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/korean/euckr.go +++ /dev/null @@ -1,177 +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 korean - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCKR} - -// EUCKR is the EUC-KR encoding, also known as Code Page 949. -var EUCKR encoding.Encoding = &eucKR - -var eucKR = internal.Encoding{ - &internal.SimpleEncoding{eucKRDecoder{}, eucKREncoder{}}, - "EUC-KR", - identifier.EUCKR, -} - -type eucKRDecoder struct{ transform.NopResetter } - -func (eucKRDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - break - } - c1 := src[nSrc+1] - size = 2 - if c0 < 0xc7 { - r = 178 * rune(c0-0x81) - switch { - case 0x41 <= c1 && c1 < 0x5b: - r += rune(c1) - (0x41 - 0*26) - case 0x61 <= c1 && c1 < 0x7b: - r += rune(c1) - (0x61 - 1*26) - case 0x81 <= c1 && c1 < 0xff: - r += rune(c1) - (0x81 - 2*26) - default: - goto decError - } - } else if 0xa1 <= c1 && c1 < 0xff { - r = 178*(0xc7-0x81) + rune(c0-0xc7)*94 + rune(c1-0xa1) - } else { - goto decError - } - if int(r) < len(decode) { - r = rune(decode[r]) - if r != 0 { - break - } - } - decError: - r = utf8.RuneError - if c1 < utf8.RuneSelf { - size = 1 - } - - default: - r, size = utf8.RuneError, 1 - break - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type eucKREncoder struct{ transform.NopResetter } - -func (eucKREncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 7 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/korean/tables.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/korean/tables.go deleted file mode 100644 index 0480e85c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/korean/tables.go +++ /dev/null @@ -1,34152 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package korean provides Korean encodings such as EUC-KR. -package korean // import "golang.org/x/text/encoding/korean" - -// decode is the decoding table from EUC-KR code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt -var decode = [...]uint16{ - 0: 0xAC02, - 1: 0xAC03, - 2: 0xAC05, - 3: 0xAC06, - 4: 0xAC0B, - 5: 0xAC0C, - 6: 0xAC0D, - 7: 0xAC0E, - 8: 0xAC0F, - 9: 0xAC18, - 10: 0xAC1E, - 11: 0xAC1F, - 12: 0xAC21, - 13: 0xAC22, - 14: 0xAC23, - 15: 0xAC25, - 16: 0xAC26, - 17: 0xAC27, - 18: 0xAC28, - 19: 0xAC29, - 20: 0xAC2A, - 21: 0xAC2B, - 22: 0xAC2E, - 23: 0xAC32, - 24: 0xAC33, - 25: 0xAC34, - 26: 0xAC35, - 27: 0xAC36, - 28: 0xAC37, - 29: 0xAC3A, - 30: 0xAC3B, - 31: 0xAC3D, - 32: 0xAC3E, - 33: 0xAC3F, - 34: 0xAC41, - 35: 0xAC42, - 36: 0xAC43, - 37: 0xAC44, - 38: 0xAC45, - 39: 0xAC46, - 40: 0xAC47, - 41: 0xAC48, - 42: 0xAC49, - 43: 0xAC4A, - 44: 0xAC4C, - 45: 0xAC4E, - 46: 0xAC4F, - 47: 0xAC50, - 48: 0xAC51, - 49: 0xAC52, - 50: 0xAC53, - 51: 0xAC55, - 52: 0xAC56, - 53: 0xAC57, - 54: 0xAC59, - 55: 0xAC5A, - 56: 0xAC5B, - 57: 0xAC5D, - 58: 0xAC5E, - 59: 0xAC5F, - 60: 0xAC60, - 61: 0xAC61, - 62: 0xAC62, - 63: 0xAC63, - 64: 0xAC64, - 65: 0xAC65, - 66: 0xAC66, - 67: 0xAC67, - 68: 0xAC68, - 69: 0xAC69, - 70: 0xAC6A, - 71: 0xAC6B, - 72: 0xAC6C, - 73: 0xAC6D, - 74: 0xAC6E, - 75: 0xAC6F, - 76: 0xAC72, - 77: 0xAC73, - 78: 0xAC75, - 79: 0xAC76, - 80: 0xAC79, - 81: 0xAC7B, - 82: 0xAC7C, - 83: 0xAC7D, - 84: 0xAC7E, - 85: 0xAC7F, - 86: 0xAC82, - 87: 0xAC87, - 88: 0xAC88, - 89: 0xAC8D, - 90: 0xAC8E, - 91: 0xAC8F, - 92: 0xAC91, - 93: 0xAC92, - 94: 0xAC93, - 95: 0xAC95, - 96: 0xAC96, - 97: 0xAC97, - 98: 0xAC98, - 99: 0xAC99, - 100: 0xAC9A, - 101: 0xAC9B, - 102: 0xAC9E, - 103: 0xACA2, - 104: 0xACA3, - 105: 0xACA4, - 106: 0xACA5, - 107: 0xACA6, - 108: 0xACA7, - 109: 0xACAB, - 110: 0xACAD, - 111: 0xACAE, - 112: 0xACB1, - 113: 0xACB2, - 114: 0xACB3, - 115: 0xACB4, - 116: 0xACB5, - 117: 0xACB6, - 118: 0xACB7, - 119: 0xACBA, - 120: 0xACBE, - 121: 0xACBF, - 122: 0xACC0, - 123: 0xACC2, - 124: 0xACC3, - 125: 0xACC5, - 126: 0xACC6, - 127: 0xACC7, - 128: 0xACC9, - 129: 0xACCA, - 130: 0xACCB, - 131: 0xACCD, - 132: 0xACCE, - 133: 0xACCF, - 134: 0xACD0, - 135: 0xACD1, - 136: 0xACD2, - 137: 0xACD3, - 138: 0xACD4, - 139: 0xACD6, - 140: 0xACD8, - 141: 0xACD9, - 142: 0xACDA, - 143: 0xACDB, - 144: 0xACDC, - 145: 0xACDD, - 146: 0xACDE, - 147: 0xACDF, - 148: 0xACE2, - 149: 0xACE3, - 150: 0xACE5, - 151: 0xACE6, - 152: 0xACE9, - 153: 0xACEB, - 154: 0xACED, - 155: 0xACEE, - 156: 0xACF2, - 157: 0xACF4, - 158: 0xACF7, - 159: 0xACF8, - 160: 0xACF9, - 161: 0xACFA, - 162: 0xACFB, - 163: 0xACFE, - 164: 0xACFF, - 165: 0xAD01, - 166: 0xAD02, - 167: 0xAD03, - 168: 0xAD05, - 169: 0xAD07, - 170: 0xAD08, - 171: 0xAD09, - 172: 0xAD0A, - 173: 0xAD0B, - 174: 0xAD0E, - 175: 0xAD10, - 176: 0xAD12, - 177: 0xAD13, - 178: 0xAD14, - 179: 0xAD15, - 180: 0xAD16, - 181: 0xAD17, - 182: 0xAD19, - 183: 0xAD1A, - 184: 0xAD1B, - 185: 0xAD1D, - 186: 0xAD1E, - 187: 0xAD1F, - 188: 0xAD21, - 189: 0xAD22, - 190: 0xAD23, - 191: 0xAD24, - 192: 0xAD25, - 193: 0xAD26, - 194: 0xAD27, - 195: 0xAD28, - 196: 0xAD2A, - 197: 0xAD2B, - 198: 0xAD2E, - 199: 0xAD2F, - 200: 0xAD30, - 201: 0xAD31, - 202: 0xAD32, - 203: 0xAD33, - 204: 0xAD36, - 205: 0xAD37, - 206: 0xAD39, - 207: 0xAD3A, - 208: 0xAD3B, - 209: 0xAD3D, - 210: 0xAD3E, - 211: 0xAD3F, - 212: 0xAD40, - 213: 0xAD41, - 214: 0xAD42, - 215: 0xAD43, - 216: 0xAD46, - 217: 0xAD48, - 218: 0xAD4A, - 219: 0xAD4B, - 220: 0xAD4C, - 221: 0xAD4D, - 222: 0xAD4E, - 223: 0xAD4F, - 224: 0xAD51, - 225: 0xAD52, - 226: 0xAD53, - 227: 0xAD55, - 228: 0xAD56, - 229: 0xAD57, - 230: 0xAD59, - 231: 0xAD5A, - 232: 0xAD5B, - 233: 0xAD5C, - 234: 0xAD5D, - 235: 0xAD5E, - 236: 0xAD5F, - 237: 0xAD60, - 238: 0xAD62, - 239: 0xAD64, - 240: 0xAD65, - 241: 0xAD66, - 242: 0xAD67, - 243: 0xAD68, - 244: 0xAD69, - 245: 0xAD6A, - 246: 0xAD6B, - 247: 0xAD6E, - 248: 0xAD6F, - 249: 0xAD71, - 250: 0xAD72, - 251: 0xAD77, - 252: 0xAD78, - 253: 0xAD79, - 254: 0xAD7A, - 255: 0xAD7E, - 256: 0xAD80, - 257: 0xAD83, - 258: 0xAD84, - 259: 0xAD85, - 260: 0xAD86, - 261: 0xAD87, - 262: 0xAD8A, - 263: 0xAD8B, - 264: 0xAD8D, - 265: 0xAD8E, - 266: 0xAD8F, - 267: 0xAD91, - 268: 0xAD92, - 269: 0xAD93, - 270: 0xAD94, - 271: 0xAD95, - 272: 0xAD96, - 273: 0xAD97, - 274: 0xAD98, - 275: 0xAD99, - 276: 0xAD9A, - 277: 0xAD9B, - 278: 0xAD9E, - 279: 0xAD9F, - 280: 0xADA0, - 281: 0xADA1, - 282: 0xADA2, - 283: 0xADA3, - 284: 0xADA5, - 285: 0xADA6, - 286: 0xADA7, - 287: 0xADA8, - 288: 0xADA9, - 289: 0xADAA, - 290: 0xADAB, - 291: 0xADAC, - 292: 0xADAD, - 293: 0xADAE, - 294: 0xADAF, - 295: 0xADB0, - 296: 0xADB1, - 297: 0xADB2, - 298: 0xADB3, - 299: 0xADB4, - 300: 0xADB5, - 301: 0xADB6, - 302: 0xADB8, - 303: 0xADB9, - 304: 0xADBA, - 305: 0xADBB, - 306: 0xADBC, - 307: 0xADBD, - 308: 0xADBE, - 309: 0xADBF, - 310: 0xADC2, - 311: 0xADC3, - 312: 0xADC5, - 313: 0xADC6, - 314: 0xADC7, - 315: 0xADC9, - 316: 0xADCA, - 317: 0xADCB, - 318: 0xADCC, - 319: 0xADCD, - 320: 0xADCE, - 321: 0xADCF, - 322: 0xADD2, - 323: 0xADD4, - 324: 0xADD5, - 325: 0xADD6, - 326: 0xADD7, - 327: 0xADD8, - 328: 0xADD9, - 329: 0xADDA, - 330: 0xADDB, - 331: 0xADDD, - 332: 0xADDE, - 333: 0xADDF, - 334: 0xADE1, - 335: 0xADE2, - 336: 0xADE3, - 337: 0xADE5, - 338: 0xADE6, - 339: 0xADE7, - 340: 0xADE8, - 341: 0xADE9, - 342: 0xADEA, - 343: 0xADEB, - 344: 0xADEC, - 345: 0xADED, - 346: 0xADEE, - 347: 0xADEF, - 348: 0xADF0, - 349: 0xADF1, - 350: 0xADF2, - 351: 0xADF3, - 352: 0xADF4, - 353: 0xADF5, - 354: 0xADF6, - 355: 0xADF7, - 356: 0xADFA, - 357: 0xADFB, - 358: 0xADFD, - 359: 0xADFE, - 360: 0xAE02, - 361: 0xAE03, - 362: 0xAE04, - 363: 0xAE05, - 364: 0xAE06, - 365: 0xAE07, - 366: 0xAE0A, - 367: 0xAE0C, - 368: 0xAE0E, - 369: 0xAE0F, - 370: 0xAE10, - 371: 0xAE11, - 372: 0xAE12, - 373: 0xAE13, - 374: 0xAE15, - 375: 0xAE16, - 376: 0xAE17, - 377: 0xAE18, - 378: 0xAE19, - 379: 0xAE1A, - 380: 0xAE1B, - 381: 0xAE1C, - 382: 0xAE1D, - 383: 0xAE1E, - 384: 0xAE1F, - 385: 0xAE20, - 386: 0xAE21, - 387: 0xAE22, - 388: 0xAE23, - 389: 0xAE24, - 390: 0xAE25, - 391: 0xAE26, - 392: 0xAE27, - 393: 0xAE28, - 394: 0xAE29, - 395: 0xAE2A, - 396: 0xAE2B, - 397: 0xAE2C, - 398: 0xAE2D, - 399: 0xAE2E, - 400: 0xAE2F, - 401: 0xAE32, - 402: 0xAE33, - 403: 0xAE35, - 404: 0xAE36, - 405: 0xAE39, - 406: 0xAE3B, - 407: 0xAE3C, - 408: 0xAE3D, - 409: 0xAE3E, - 410: 0xAE3F, - 411: 0xAE42, - 412: 0xAE44, - 413: 0xAE47, - 414: 0xAE48, - 415: 0xAE49, - 416: 0xAE4B, - 417: 0xAE4F, - 418: 0xAE51, - 419: 0xAE52, - 420: 0xAE53, - 421: 0xAE55, - 422: 0xAE57, - 423: 0xAE58, - 424: 0xAE59, - 425: 0xAE5A, - 426: 0xAE5B, - 427: 0xAE5E, - 428: 0xAE62, - 429: 0xAE63, - 430: 0xAE64, - 431: 0xAE66, - 432: 0xAE67, - 433: 0xAE6A, - 434: 0xAE6B, - 435: 0xAE6D, - 436: 0xAE6E, - 437: 0xAE6F, - 438: 0xAE71, - 439: 0xAE72, - 440: 0xAE73, - 441: 0xAE74, - 442: 0xAE75, - 443: 0xAE76, - 444: 0xAE77, - 445: 0xAE7A, - 446: 0xAE7E, - 447: 0xAE7F, - 448: 0xAE80, - 449: 0xAE81, - 450: 0xAE82, - 451: 0xAE83, - 452: 0xAE86, - 453: 0xAE87, - 454: 0xAE88, - 455: 0xAE89, - 456: 0xAE8A, - 457: 0xAE8B, - 458: 0xAE8D, - 459: 0xAE8E, - 460: 0xAE8F, - 461: 0xAE90, - 462: 0xAE91, - 463: 0xAE92, - 464: 0xAE93, - 465: 0xAE94, - 466: 0xAE95, - 467: 0xAE96, - 468: 0xAE97, - 469: 0xAE98, - 470: 0xAE99, - 471: 0xAE9A, - 472: 0xAE9B, - 473: 0xAE9C, - 474: 0xAE9D, - 475: 0xAE9E, - 476: 0xAE9F, - 477: 0xAEA0, - 478: 0xAEA1, - 479: 0xAEA2, - 480: 0xAEA3, - 481: 0xAEA4, - 482: 0xAEA5, - 483: 0xAEA6, - 484: 0xAEA7, - 485: 0xAEA8, - 486: 0xAEA9, - 487: 0xAEAA, - 488: 0xAEAB, - 489: 0xAEAC, - 490: 0xAEAD, - 491: 0xAEAE, - 492: 0xAEAF, - 493: 0xAEB0, - 494: 0xAEB1, - 495: 0xAEB2, - 496: 0xAEB3, - 497: 0xAEB4, - 498: 0xAEB5, - 499: 0xAEB6, - 500: 0xAEB7, - 501: 0xAEB8, - 502: 0xAEB9, - 503: 0xAEBA, - 504: 0xAEBB, - 505: 0xAEBF, - 506: 0xAEC1, - 507: 0xAEC2, - 508: 0xAEC3, - 509: 0xAEC5, - 510: 0xAEC6, - 511: 0xAEC7, - 512: 0xAEC8, - 513: 0xAEC9, - 514: 0xAECA, - 515: 0xAECB, - 516: 0xAECE, - 517: 0xAED2, - 518: 0xAED3, - 519: 0xAED4, - 520: 0xAED5, - 521: 0xAED6, - 522: 0xAED7, - 523: 0xAEDA, - 524: 0xAEDB, - 525: 0xAEDD, - 526: 0xAEDE, - 527: 0xAEDF, - 528: 0xAEE0, - 529: 0xAEE1, - 530: 0xAEE2, - 531: 0xAEE3, - 532: 0xAEE4, - 533: 0xAEE5, - 534: 0xAEE6, - 535: 0xAEE7, - 536: 0xAEE9, - 537: 0xAEEA, - 538: 0xAEEC, - 539: 0xAEEE, - 540: 0xAEEF, - 541: 0xAEF0, - 542: 0xAEF1, - 543: 0xAEF2, - 544: 0xAEF3, - 545: 0xAEF5, - 546: 0xAEF6, - 547: 0xAEF7, - 548: 0xAEF9, - 549: 0xAEFA, - 550: 0xAEFB, - 551: 0xAEFD, - 552: 0xAEFE, - 553: 0xAEFF, - 554: 0xAF00, - 555: 0xAF01, - 556: 0xAF02, - 557: 0xAF03, - 558: 0xAF04, - 559: 0xAF05, - 560: 0xAF06, - 561: 0xAF09, - 562: 0xAF0A, - 563: 0xAF0B, - 564: 0xAF0C, - 565: 0xAF0E, - 566: 0xAF0F, - 567: 0xAF11, - 568: 0xAF12, - 569: 0xAF13, - 570: 0xAF14, - 571: 0xAF15, - 572: 0xAF16, - 573: 0xAF17, - 574: 0xAF18, - 575: 0xAF19, - 576: 0xAF1A, - 577: 0xAF1B, - 578: 0xAF1C, - 579: 0xAF1D, - 580: 0xAF1E, - 581: 0xAF1F, - 582: 0xAF20, - 583: 0xAF21, - 584: 0xAF22, - 585: 0xAF23, - 586: 0xAF24, - 587: 0xAF25, - 588: 0xAF26, - 589: 0xAF27, - 590: 0xAF28, - 591: 0xAF29, - 592: 0xAF2A, - 593: 0xAF2B, - 594: 0xAF2E, - 595: 0xAF2F, - 596: 0xAF31, - 597: 0xAF33, - 598: 0xAF35, - 599: 0xAF36, - 600: 0xAF37, - 601: 0xAF38, - 602: 0xAF39, - 603: 0xAF3A, - 604: 0xAF3B, - 605: 0xAF3E, - 606: 0xAF40, - 607: 0xAF44, - 608: 0xAF45, - 609: 0xAF46, - 610: 0xAF47, - 611: 0xAF4A, - 612: 0xAF4B, - 613: 0xAF4C, - 614: 0xAF4D, - 615: 0xAF4E, - 616: 0xAF4F, - 617: 0xAF51, - 618: 0xAF52, - 619: 0xAF53, - 620: 0xAF54, - 621: 0xAF55, - 622: 0xAF56, - 623: 0xAF57, - 624: 0xAF58, - 625: 0xAF59, - 626: 0xAF5A, - 627: 0xAF5B, - 628: 0xAF5E, - 629: 0xAF5F, - 630: 0xAF60, - 631: 0xAF61, - 632: 0xAF62, - 633: 0xAF63, - 634: 0xAF66, - 635: 0xAF67, - 636: 0xAF68, - 637: 0xAF69, - 638: 0xAF6A, - 639: 0xAF6B, - 640: 0xAF6C, - 641: 0xAF6D, - 642: 0xAF6E, - 643: 0xAF6F, - 644: 0xAF70, - 645: 0xAF71, - 646: 0xAF72, - 647: 0xAF73, - 648: 0xAF74, - 649: 0xAF75, - 650: 0xAF76, - 651: 0xAF77, - 652: 0xAF78, - 653: 0xAF7A, - 654: 0xAF7B, - 655: 0xAF7C, - 656: 0xAF7D, - 657: 0xAF7E, - 658: 0xAF7F, - 659: 0xAF81, - 660: 0xAF82, - 661: 0xAF83, - 662: 0xAF85, - 663: 0xAF86, - 664: 0xAF87, - 665: 0xAF89, - 666: 0xAF8A, - 667: 0xAF8B, - 668: 0xAF8C, - 669: 0xAF8D, - 670: 0xAF8E, - 671: 0xAF8F, - 672: 0xAF92, - 673: 0xAF93, - 674: 0xAF94, - 675: 0xAF96, - 676: 0xAF97, - 677: 0xAF98, - 678: 0xAF99, - 679: 0xAF9A, - 680: 0xAF9B, - 681: 0xAF9D, - 682: 0xAF9E, - 683: 0xAF9F, - 684: 0xAFA0, - 685: 0xAFA1, - 686: 0xAFA2, - 687: 0xAFA3, - 688: 0xAFA4, - 689: 0xAFA5, - 690: 0xAFA6, - 691: 0xAFA7, - 692: 0xAFA8, - 693: 0xAFA9, - 694: 0xAFAA, - 695: 0xAFAB, - 696: 0xAFAC, - 697: 0xAFAD, - 698: 0xAFAE, - 699: 0xAFAF, - 700: 0xAFB0, - 701: 0xAFB1, - 702: 0xAFB2, - 703: 0xAFB3, - 704: 0xAFB4, - 705: 0xAFB5, - 706: 0xAFB6, - 707: 0xAFB7, - 708: 0xAFBA, - 709: 0xAFBB, - 710: 0xAFBD, - 711: 0xAFBE, - 712: 0xAFBF, - 713: 0xAFC1, - 714: 0xAFC2, - 715: 0xAFC3, - 716: 0xAFC4, - 717: 0xAFC5, - 718: 0xAFC6, - 719: 0xAFCA, - 720: 0xAFCC, - 721: 0xAFCF, - 722: 0xAFD0, - 723: 0xAFD1, - 724: 0xAFD2, - 725: 0xAFD3, - 726: 0xAFD5, - 727: 0xAFD6, - 728: 0xAFD7, - 729: 0xAFD8, - 730: 0xAFD9, - 731: 0xAFDA, - 732: 0xAFDB, - 733: 0xAFDD, - 734: 0xAFDE, - 735: 0xAFDF, - 736: 0xAFE0, - 737: 0xAFE1, - 738: 0xAFE2, - 739: 0xAFE3, - 740: 0xAFE4, - 741: 0xAFE5, - 742: 0xAFE6, - 743: 0xAFE7, - 744: 0xAFEA, - 745: 0xAFEB, - 746: 0xAFEC, - 747: 0xAFED, - 748: 0xAFEE, - 749: 0xAFEF, - 750: 0xAFF2, - 751: 0xAFF3, - 752: 0xAFF5, - 753: 0xAFF6, - 754: 0xAFF7, - 755: 0xAFF9, - 756: 0xAFFA, - 757: 0xAFFB, - 758: 0xAFFC, - 759: 0xAFFD, - 760: 0xAFFE, - 761: 0xAFFF, - 762: 0xB002, - 763: 0xB003, - 764: 0xB005, - 765: 0xB006, - 766: 0xB007, - 767: 0xB008, - 768: 0xB009, - 769: 0xB00A, - 770: 0xB00B, - 771: 0xB00D, - 772: 0xB00E, - 773: 0xB00F, - 774: 0xB011, - 775: 0xB012, - 776: 0xB013, - 777: 0xB015, - 778: 0xB016, - 779: 0xB017, - 780: 0xB018, - 781: 0xB019, - 782: 0xB01A, - 783: 0xB01B, - 784: 0xB01E, - 785: 0xB01F, - 786: 0xB020, - 787: 0xB021, - 788: 0xB022, - 789: 0xB023, - 790: 0xB024, - 791: 0xB025, - 792: 0xB026, - 793: 0xB027, - 794: 0xB029, - 795: 0xB02A, - 796: 0xB02B, - 797: 0xB02C, - 798: 0xB02D, - 799: 0xB02E, - 800: 0xB02F, - 801: 0xB030, - 802: 0xB031, - 803: 0xB032, - 804: 0xB033, - 805: 0xB034, - 806: 0xB035, - 807: 0xB036, - 808: 0xB037, - 809: 0xB038, - 810: 0xB039, - 811: 0xB03A, - 812: 0xB03B, - 813: 0xB03C, - 814: 0xB03D, - 815: 0xB03E, - 816: 0xB03F, - 817: 0xB040, - 818: 0xB041, - 819: 0xB042, - 820: 0xB043, - 821: 0xB046, - 822: 0xB047, - 823: 0xB049, - 824: 0xB04B, - 825: 0xB04D, - 826: 0xB04F, - 827: 0xB050, - 828: 0xB051, - 829: 0xB052, - 830: 0xB056, - 831: 0xB058, - 832: 0xB05A, - 833: 0xB05B, - 834: 0xB05C, - 835: 0xB05E, - 836: 0xB05F, - 837: 0xB060, - 838: 0xB061, - 839: 0xB062, - 840: 0xB063, - 841: 0xB064, - 842: 0xB065, - 843: 0xB066, - 844: 0xB067, - 845: 0xB068, - 846: 0xB069, - 847: 0xB06A, - 848: 0xB06B, - 849: 0xB06C, - 850: 0xB06D, - 851: 0xB06E, - 852: 0xB06F, - 853: 0xB070, - 854: 0xB071, - 855: 0xB072, - 856: 0xB073, - 857: 0xB074, - 858: 0xB075, - 859: 0xB076, - 860: 0xB077, - 861: 0xB078, - 862: 0xB079, - 863: 0xB07A, - 864: 0xB07B, - 865: 0xB07E, - 866: 0xB07F, - 867: 0xB081, - 868: 0xB082, - 869: 0xB083, - 870: 0xB085, - 871: 0xB086, - 872: 0xB087, - 873: 0xB088, - 874: 0xB089, - 875: 0xB08A, - 876: 0xB08B, - 877: 0xB08E, - 878: 0xB090, - 879: 0xB092, - 880: 0xB093, - 881: 0xB094, - 882: 0xB095, - 883: 0xB096, - 884: 0xB097, - 885: 0xB09B, - 886: 0xB09D, - 887: 0xB09E, - 888: 0xB0A3, - 889: 0xB0A4, - 890: 0xB0A5, - 891: 0xB0A6, - 892: 0xB0A7, - 893: 0xB0AA, - 894: 0xB0B0, - 895: 0xB0B2, - 896: 0xB0B6, - 897: 0xB0B7, - 898: 0xB0B9, - 899: 0xB0BA, - 900: 0xB0BB, - 901: 0xB0BD, - 902: 0xB0BE, - 903: 0xB0BF, - 904: 0xB0C0, - 905: 0xB0C1, - 906: 0xB0C2, - 907: 0xB0C3, - 908: 0xB0C6, - 909: 0xB0CA, - 910: 0xB0CB, - 911: 0xB0CC, - 912: 0xB0CD, - 913: 0xB0CE, - 914: 0xB0CF, - 915: 0xB0D2, - 916: 0xB0D3, - 917: 0xB0D5, - 918: 0xB0D6, - 919: 0xB0D7, - 920: 0xB0D9, - 921: 0xB0DA, - 922: 0xB0DB, - 923: 0xB0DC, - 924: 0xB0DD, - 925: 0xB0DE, - 926: 0xB0DF, - 927: 0xB0E1, - 928: 0xB0E2, - 929: 0xB0E3, - 930: 0xB0E4, - 931: 0xB0E6, - 932: 0xB0E7, - 933: 0xB0E8, - 934: 0xB0E9, - 935: 0xB0EA, - 936: 0xB0EB, - 937: 0xB0EC, - 938: 0xB0ED, - 939: 0xB0EE, - 940: 0xB0EF, - 941: 0xB0F0, - 942: 0xB0F1, - 943: 0xB0F2, - 944: 0xB0F3, - 945: 0xB0F4, - 946: 0xB0F5, - 947: 0xB0F6, - 948: 0xB0F7, - 949: 0xB0F8, - 950: 0xB0F9, - 951: 0xB0FA, - 952: 0xB0FB, - 953: 0xB0FC, - 954: 0xB0FD, - 955: 0xB0FE, - 956: 0xB0FF, - 957: 0xB100, - 958: 0xB101, - 959: 0xB102, - 960: 0xB103, - 961: 0xB104, - 962: 0xB105, - 963: 0xB106, - 964: 0xB107, - 965: 0xB10A, - 966: 0xB10D, - 967: 0xB10E, - 968: 0xB10F, - 969: 0xB111, - 970: 0xB114, - 971: 0xB115, - 972: 0xB116, - 973: 0xB117, - 974: 0xB11A, - 975: 0xB11E, - 976: 0xB11F, - 977: 0xB120, - 978: 0xB121, - 979: 0xB122, - 980: 0xB126, - 981: 0xB127, - 982: 0xB129, - 983: 0xB12A, - 984: 0xB12B, - 985: 0xB12D, - 986: 0xB12E, - 987: 0xB12F, - 988: 0xB130, - 989: 0xB131, - 990: 0xB132, - 991: 0xB133, - 992: 0xB136, - 993: 0xB13A, - 994: 0xB13B, - 995: 0xB13C, - 996: 0xB13D, - 997: 0xB13E, - 998: 0xB13F, - 999: 0xB142, - 1000: 0xB143, - 1001: 0xB145, - 1002: 0xB146, - 1003: 0xB147, - 1004: 0xB149, - 1005: 0xB14A, - 1006: 0xB14B, - 1007: 0xB14C, - 1008: 0xB14D, - 1009: 0xB14E, - 1010: 0xB14F, - 1011: 0xB152, - 1012: 0xB153, - 1013: 0xB156, - 1014: 0xB157, - 1015: 0xB159, - 1016: 0xB15A, - 1017: 0xB15B, - 1018: 0xB15D, - 1019: 0xB15E, - 1020: 0xB15F, - 1021: 0xB161, - 1022: 0xB162, - 1023: 0xB163, - 1024: 0xB164, - 1025: 0xB165, - 1026: 0xB166, - 1027: 0xB167, - 1028: 0xB168, - 1029: 0xB169, - 1030: 0xB16A, - 1031: 0xB16B, - 1032: 0xB16C, - 1033: 0xB16D, - 1034: 0xB16E, - 1035: 0xB16F, - 1036: 0xB170, - 1037: 0xB171, - 1038: 0xB172, - 1039: 0xB173, - 1040: 0xB174, - 1041: 0xB175, - 1042: 0xB176, - 1043: 0xB177, - 1044: 0xB17A, - 1045: 0xB17B, - 1046: 0xB17D, - 1047: 0xB17E, - 1048: 0xB17F, - 1049: 0xB181, - 1050: 0xB183, - 1051: 0xB184, - 1052: 0xB185, - 1053: 0xB186, - 1054: 0xB187, - 1055: 0xB18A, - 1056: 0xB18C, - 1057: 0xB18E, - 1058: 0xB18F, - 1059: 0xB190, - 1060: 0xB191, - 1061: 0xB195, - 1062: 0xB196, - 1063: 0xB197, - 1064: 0xB199, - 1065: 0xB19A, - 1066: 0xB19B, - 1067: 0xB19D, - 1068: 0xB19E, - 1069: 0xB19F, - 1070: 0xB1A0, - 1071: 0xB1A1, - 1072: 0xB1A2, - 1073: 0xB1A3, - 1074: 0xB1A4, - 1075: 0xB1A5, - 1076: 0xB1A6, - 1077: 0xB1A7, - 1078: 0xB1A9, - 1079: 0xB1AA, - 1080: 0xB1AB, - 1081: 0xB1AC, - 1082: 0xB1AD, - 1083: 0xB1AE, - 1084: 0xB1AF, - 1085: 0xB1B0, - 1086: 0xB1B1, - 1087: 0xB1B2, - 1088: 0xB1B3, - 1089: 0xB1B4, - 1090: 0xB1B5, - 1091: 0xB1B6, - 1092: 0xB1B7, - 1093: 0xB1B8, - 1094: 0xB1B9, - 1095: 0xB1BA, - 1096: 0xB1BB, - 1097: 0xB1BC, - 1098: 0xB1BD, - 1099: 0xB1BE, - 1100: 0xB1BF, - 1101: 0xB1C0, - 1102: 0xB1C1, - 1103: 0xB1C2, - 1104: 0xB1C3, - 1105: 0xB1C4, - 1106: 0xB1C5, - 1107: 0xB1C6, - 1108: 0xB1C7, - 1109: 0xB1C8, - 1110: 0xB1C9, - 1111: 0xB1CA, - 1112: 0xB1CB, - 1113: 0xB1CD, - 1114: 0xB1CE, - 1115: 0xB1CF, - 1116: 0xB1D1, - 1117: 0xB1D2, - 1118: 0xB1D3, - 1119: 0xB1D5, - 1120: 0xB1D6, - 1121: 0xB1D7, - 1122: 0xB1D8, - 1123: 0xB1D9, - 1124: 0xB1DA, - 1125: 0xB1DB, - 1126: 0xB1DE, - 1127: 0xB1E0, - 1128: 0xB1E1, - 1129: 0xB1E2, - 1130: 0xB1E3, - 1131: 0xB1E4, - 1132: 0xB1E5, - 1133: 0xB1E6, - 1134: 0xB1E7, - 1135: 0xB1EA, - 1136: 0xB1EB, - 1137: 0xB1ED, - 1138: 0xB1EE, - 1139: 0xB1EF, - 1140: 0xB1F1, - 1141: 0xB1F2, - 1142: 0xB1F3, - 1143: 0xB1F4, - 1144: 0xB1F5, - 1145: 0xB1F6, - 1146: 0xB1F7, - 1147: 0xB1F8, - 1148: 0xB1FA, - 1149: 0xB1FC, - 1150: 0xB1FE, - 1151: 0xB1FF, - 1152: 0xB200, - 1153: 0xB201, - 1154: 0xB202, - 1155: 0xB203, - 1156: 0xB206, - 1157: 0xB207, - 1158: 0xB209, - 1159: 0xB20A, - 1160: 0xB20D, - 1161: 0xB20E, - 1162: 0xB20F, - 1163: 0xB210, - 1164: 0xB211, - 1165: 0xB212, - 1166: 0xB213, - 1167: 0xB216, - 1168: 0xB218, - 1169: 0xB21A, - 1170: 0xB21B, - 1171: 0xB21C, - 1172: 0xB21D, - 1173: 0xB21E, - 1174: 0xB21F, - 1175: 0xB221, - 1176: 0xB222, - 1177: 0xB223, - 1178: 0xB224, - 1179: 0xB225, - 1180: 0xB226, - 1181: 0xB227, - 1182: 0xB228, - 1183: 0xB229, - 1184: 0xB22A, - 1185: 0xB22B, - 1186: 0xB22C, - 1187: 0xB22D, - 1188: 0xB22E, - 1189: 0xB22F, - 1190: 0xB230, - 1191: 0xB231, - 1192: 0xB232, - 1193: 0xB233, - 1194: 0xB235, - 1195: 0xB236, - 1196: 0xB237, - 1197: 0xB238, - 1198: 0xB239, - 1199: 0xB23A, - 1200: 0xB23B, - 1201: 0xB23D, - 1202: 0xB23E, - 1203: 0xB23F, - 1204: 0xB240, - 1205: 0xB241, - 1206: 0xB242, - 1207: 0xB243, - 1208: 0xB244, - 1209: 0xB245, - 1210: 0xB246, - 1211: 0xB247, - 1212: 0xB248, - 1213: 0xB249, - 1214: 0xB24A, - 1215: 0xB24B, - 1216: 0xB24C, - 1217: 0xB24D, - 1218: 0xB24E, - 1219: 0xB24F, - 1220: 0xB250, - 1221: 0xB251, - 1222: 0xB252, - 1223: 0xB253, - 1224: 0xB254, - 1225: 0xB255, - 1226: 0xB256, - 1227: 0xB257, - 1228: 0xB259, - 1229: 0xB25A, - 1230: 0xB25B, - 1231: 0xB25D, - 1232: 0xB25E, - 1233: 0xB25F, - 1234: 0xB261, - 1235: 0xB262, - 1236: 0xB263, - 1237: 0xB264, - 1238: 0xB265, - 1239: 0xB266, - 1240: 0xB267, - 1241: 0xB26A, - 1242: 0xB26B, - 1243: 0xB26C, - 1244: 0xB26D, - 1245: 0xB26E, - 1246: 0xB26F, - 1247: 0xB270, - 1248: 0xB271, - 1249: 0xB272, - 1250: 0xB273, - 1251: 0xB276, - 1252: 0xB277, - 1253: 0xB278, - 1254: 0xB279, - 1255: 0xB27A, - 1256: 0xB27B, - 1257: 0xB27D, - 1258: 0xB27E, - 1259: 0xB27F, - 1260: 0xB280, - 1261: 0xB281, - 1262: 0xB282, - 1263: 0xB283, - 1264: 0xB286, - 1265: 0xB287, - 1266: 0xB288, - 1267: 0xB28A, - 1268: 0xB28B, - 1269: 0xB28C, - 1270: 0xB28D, - 1271: 0xB28E, - 1272: 0xB28F, - 1273: 0xB292, - 1274: 0xB293, - 1275: 0xB295, - 1276: 0xB296, - 1277: 0xB297, - 1278: 0xB29B, - 1279: 0xB29C, - 1280: 0xB29D, - 1281: 0xB29E, - 1282: 0xB29F, - 1283: 0xB2A2, - 1284: 0xB2A4, - 1285: 0xB2A7, - 1286: 0xB2A8, - 1287: 0xB2A9, - 1288: 0xB2AB, - 1289: 0xB2AD, - 1290: 0xB2AE, - 1291: 0xB2AF, - 1292: 0xB2B1, - 1293: 0xB2B2, - 1294: 0xB2B3, - 1295: 0xB2B5, - 1296: 0xB2B6, - 1297: 0xB2B7, - 1298: 0xB2B8, - 1299: 0xB2B9, - 1300: 0xB2BA, - 1301: 0xB2BB, - 1302: 0xB2BC, - 1303: 0xB2BD, - 1304: 0xB2BE, - 1305: 0xB2BF, - 1306: 0xB2C0, - 1307: 0xB2C1, - 1308: 0xB2C2, - 1309: 0xB2C3, - 1310: 0xB2C4, - 1311: 0xB2C5, - 1312: 0xB2C6, - 1313: 0xB2C7, - 1314: 0xB2CA, - 1315: 0xB2CB, - 1316: 0xB2CD, - 1317: 0xB2CE, - 1318: 0xB2CF, - 1319: 0xB2D1, - 1320: 0xB2D3, - 1321: 0xB2D4, - 1322: 0xB2D5, - 1323: 0xB2D6, - 1324: 0xB2D7, - 1325: 0xB2DA, - 1326: 0xB2DC, - 1327: 0xB2DE, - 1328: 0xB2DF, - 1329: 0xB2E0, - 1330: 0xB2E1, - 1331: 0xB2E3, - 1332: 0xB2E7, - 1333: 0xB2E9, - 1334: 0xB2EA, - 1335: 0xB2F0, - 1336: 0xB2F1, - 1337: 0xB2F2, - 1338: 0xB2F6, - 1339: 0xB2FC, - 1340: 0xB2FD, - 1341: 0xB2FE, - 1342: 0xB302, - 1343: 0xB303, - 1344: 0xB305, - 1345: 0xB306, - 1346: 0xB307, - 1347: 0xB309, - 1348: 0xB30A, - 1349: 0xB30B, - 1350: 0xB30C, - 1351: 0xB30D, - 1352: 0xB30E, - 1353: 0xB30F, - 1354: 0xB312, - 1355: 0xB316, - 1356: 0xB317, - 1357: 0xB318, - 1358: 0xB319, - 1359: 0xB31A, - 1360: 0xB31B, - 1361: 0xB31D, - 1362: 0xB31E, - 1363: 0xB31F, - 1364: 0xB320, - 1365: 0xB321, - 1366: 0xB322, - 1367: 0xB323, - 1368: 0xB324, - 1369: 0xB325, - 1370: 0xB326, - 1371: 0xB327, - 1372: 0xB328, - 1373: 0xB329, - 1374: 0xB32A, - 1375: 0xB32B, - 1376: 0xB32C, - 1377: 0xB32D, - 1378: 0xB32E, - 1379: 0xB32F, - 1380: 0xB330, - 1381: 0xB331, - 1382: 0xB332, - 1383: 0xB333, - 1384: 0xB334, - 1385: 0xB335, - 1386: 0xB336, - 1387: 0xB337, - 1388: 0xB338, - 1389: 0xB339, - 1390: 0xB33A, - 1391: 0xB33B, - 1392: 0xB33C, - 1393: 0xB33D, - 1394: 0xB33E, - 1395: 0xB33F, - 1396: 0xB340, - 1397: 0xB341, - 1398: 0xB342, - 1399: 0xB343, - 1400: 0xB344, - 1401: 0xB345, - 1402: 0xB346, - 1403: 0xB347, - 1404: 0xB348, - 1405: 0xB349, - 1406: 0xB34A, - 1407: 0xB34B, - 1408: 0xB34C, - 1409: 0xB34D, - 1410: 0xB34E, - 1411: 0xB34F, - 1412: 0xB350, - 1413: 0xB351, - 1414: 0xB352, - 1415: 0xB353, - 1416: 0xB357, - 1417: 0xB359, - 1418: 0xB35A, - 1419: 0xB35D, - 1420: 0xB360, - 1421: 0xB361, - 1422: 0xB362, - 1423: 0xB363, - 1424: 0xB366, - 1425: 0xB368, - 1426: 0xB36A, - 1427: 0xB36C, - 1428: 0xB36D, - 1429: 0xB36F, - 1430: 0xB372, - 1431: 0xB373, - 1432: 0xB375, - 1433: 0xB376, - 1434: 0xB377, - 1435: 0xB379, - 1436: 0xB37A, - 1437: 0xB37B, - 1438: 0xB37C, - 1439: 0xB37D, - 1440: 0xB37E, - 1441: 0xB37F, - 1442: 0xB382, - 1443: 0xB386, - 1444: 0xB387, - 1445: 0xB388, - 1446: 0xB389, - 1447: 0xB38A, - 1448: 0xB38B, - 1449: 0xB38D, - 1450: 0xB38E, - 1451: 0xB38F, - 1452: 0xB391, - 1453: 0xB392, - 1454: 0xB393, - 1455: 0xB395, - 1456: 0xB396, - 1457: 0xB397, - 1458: 0xB398, - 1459: 0xB399, - 1460: 0xB39A, - 1461: 0xB39B, - 1462: 0xB39C, - 1463: 0xB39D, - 1464: 0xB39E, - 1465: 0xB39F, - 1466: 0xB3A2, - 1467: 0xB3A3, - 1468: 0xB3A4, - 1469: 0xB3A5, - 1470: 0xB3A6, - 1471: 0xB3A7, - 1472: 0xB3A9, - 1473: 0xB3AA, - 1474: 0xB3AB, - 1475: 0xB3AD, - 1476: 0xB3AE, - 1477: 0xB3AF, - 1478: 0xB3B0, - 1479: 0xB3B1, - 1480: 0xB3B2, - 1481: 0xB3B3, - 1482: 0xB3B4, - 1483: 0xB3B5, - 1484: 0xB3B6, - 1485: 0xB3B7, - 1486: 0xB3B8, - 1487: 0xB3B9, - 1488: 0xB3BA, - 1489: 0xB3BB, - 1490: 0xB3BC, - 1491: 0xB3BD, - 1492: 0xB3BE, - 1493: 0xB3BF, - 1494: 0xB3C0, - 1495: 0xB3C1, - 1496: 0xB3C2, - 1497: 0xB3C3, - 1498: 0xB3C6, - 1499: 0xB3C7, - 1500: 0xB3C9, - 1501: 0xB3CA, - 1502: 0xB3CD, - 1503: 0xB3CF, - 1504: 0xB3D1, - 1505: 0xB3D2, - 1506: 0xB3D3, - 1507: 0xB3D6, - 1508: 0xB3D8, - 1509: 0xB3DA, - 1510: 0xB3DC, - 1511: 0xB3DE, - 1512: 0xB3DF, - 1513: 0xB3E1, - 1514: 0xB3E2, - 1515: 0xB3E3, - 1516: 0xB3E5, - 1517: 0xB3E6, - 1518: 0xB3E7, - 1519: 0xB3E9, - 1520: 0xB3EA, - 1521: 0xB3EB, - 1522: 0xB3EC, - 1523: 0xB3ED, - 1524: 0xB3EE, - 1525: 0xB3EF, - 1526: 0xB3F0, - 1527: 0xB3F1, - 1528: 0xB3F2, - 1529: 0xB3F3, - 1530: 0xB3F4, - 1531: 0xB3F5, - 1532: 0xB3F6, - 1533: 0xB3F7, - 1534: 0xB3F8, - 1535: 0xB3F9, - 1536: 0xB3FA, - 1537: 0xB3FB, - 1538: 0xB3FD, - 1539: 0xB3FE, - 1540: 0xB3FF, - 1541: 0xB400, - 1542: 0xB401, - 1543: 0xB402, - 1544: 0xB403, - 1545: 0xB404, - 1546: 0xB405, - 1547: 0xB406, - 1548: 0xB407, - 1549: 0xB408, - 1550: 0xB409, - 1551: 0xB40A, - 1552: 0xB40B, - 1553: 0xB40C, - 1554: 0xB40D, - 1555: 0xB40E, - 1556: 0xB40F, - 1557: 0xB411, - 1558: 0xB412, - 1559: 0xB413, - 1560: 0xB414, - 1561: 0xB415, - 1562: 0xB416, - 1563: 0xB417, - 1564: 0xB419, - 1565: 0xB41A, - 1566: 0xB41B, - 1567: 0xB41D, - 1568: 0xB41E, - 1569: 0xB41F, - 1570: 0xB421, - 1571: 0xB422, - 1572: 0xB423, - 1573: 0xB424, - 1574: 0xB425, - 1575: 0xB426, - 1576: 0xB427, - 1577: 0xB42A, - 1578: 0xB42C, - 1579: 0xB42D, - 1580: 0xB42E, - 1581: 0xB42F, - 1582: 0xB430, - 1583: 0xB431, - 1584: 0xB432, - 1585: 0xB433, - 1586: 0xB435, - 1587: 0xB436, - 1588: 0xB437, - 1589: 0xB438, - 1590: 0xB439, - 1591: 0xB43A, - 1592: 0xB43B, - 1593: 0xB43C, - 1594: 0xB43D, - 1595: 0xB43E, - 1596: 0xB43F, - 1597: 0xB440, - 1598: 0xB441, - 1599: 0xB442, - 1600: 0xB443, - 1601: 0xB444, - 1602: 0xB445, - 1603: 0xB446, - 1604: 0xB447, - 1605: 0xB448, - 1606: 0xB449, - 1607: 0xB44A, - 1608: 0xB44B, - 1609: 0xB44C, - 1610: 0xB44D, - 1611: 0xB44E, - 1612: 0xB44F, - 1613: 0xB452, - 1614: 0xB453, - 1615: 0xB455, - 1616: 0xB456, - 1617: 0xB457, - 1618: 0xB459, - 1619: 0xB45A, - 1620: 0xB45B, - 1621: 0xB45C, - 1622: 0xB45D, - 1623: 0xB45E, - 1624: 0xB45F, - 1625: 0xB462, - 1626: 0xB464, - 1627: 0xB466, - 1628: 0xB467, - 1629: 0xB468, - 1630: 0xB469, - 1631: 0xB46A, - 1632: 0xB46B, - 1633: 0xB46D, - 1634: 0xB46E, - 1635: 0xB46F, - 1636: 0xB470, - 1637: 0xB471, - 1638: 0xB472, - 1639: 0xB473, - 1640: 0xB474, - 1641: 0xB475, - 1642: 0xB476, - 1643: 0xB477, - 1644: 0xB478, - 1645: 0xB479, - 1646: 0xB47A, - 1647: 0xB47B, - 1648: 0xB47C, - 1649: 0xB47D, - 1650: 0xB47E, - 1651: 0xB47F, - 1652: 0xB481, - 1653: 0xB482, - 1654: 0xB483, - 1655: 0xB484, - 1656: 0xB485, - 1657: 0xB486, - 1658: 0xB487, - 1659: 0xB489, - 1660: 0xB48A, - 1661: 0xB48B, - 1662: 0xB48C, - 1663: 0xB48D, - 1664: 0xB48E, - 1665: 0xB48F, - 1666: 0xB490, - 1667: 0xB491, - 1668: 0xB492, - 1669: 0xB493, - 1670: 0xB494, - 1671: 0xB495, - 1672: 0xB496, - 1673: 0xB497, - 1674: 0xB498, - 1675: 0xB499, - 1676: 0xB49A, - 1677: 0xB49B, - 1678: 0xB49C, - 1679: 0xB49E, - 1680: 0xB49F, - 1681: 0xB4A0, - 1682: 0xB4A1, - 1683: 0xB4A2, - 1684: 0xB4A3, - 1685: 0xB4A5, - 1686: 0xB4A6, - 1687: 0xB4A7, - 1688: 0xB4A9, - 1689: 0xB4AA, - 1690: 0xB4AB, - 1691: 0xB4AD, - 1692: 0xB4AE, - 1693: 0xB4AF, - 1694: 0xB4B0, - 1695: 0xB4B1, - 1696: 0xB4B2, - 1697: 0xB4B3, - 1698: 0xB4B4, - 1699: 0xB4B6, - 1700: 0xB4B8, - 1701: 0xB4BA, - 1702: 0xB4BB, - 1703: 0xB4BC, - 1704: 0xB4BD, - 1705: 0xB4BE, - 1706: 0xB4BF, - 1707: 0xB4C1, - 1708: 0xB4C2, - 1709: 0xB4C3, - 1710: 0xB4C5, - 1711: 0xB4C6, - 1712: 0xB4C7, - 1713: 0xB4C9, - 1714: 0xB4CA, - 1715: 0xB4CB, - 1716: 0xB4CC, - 1717: 0xB4CD, - 1718: 0xB4CE, - 1719: 0xB4CF, - 1720: 0xB4D1, - 1721: 0xB4D2, - 1722: 0xB4D3, - 1723: 0xB4D4, - 1724: 0xB4D6, - 1725: 0xB4D7, - 1726: 0xB4D8, - 1727: 0xB4D9, - 1728: 0xB4DA, - 1729: 0xB4DB, - 1730: 0xB4DE, - 1731: 0xB4DF, - 1732: 0xB4E1, - 1733: 0xB4E2, - 1734: 0xB4E5, - 1735: 0xB4E7, - 1736: 0xB4E8, - 1737: 0xB4E9, - 1738: 0xB4EA, - 1739: 0xB4EB, - 1740: 0xB4EE, - 1741: 0xB4F0, - 1742: 0xB4F2, - 1743: 0xB4F3, - 1744: 0xB4F4, - 1745: 0xB4F5, - 1746: 0xB4F6, - 1747: 0xB4F7, - 1748: 0xB4F9, - 1749: 0xB4FA, - 1750: 0xB4FB, - 1751: 0xB4FC, - 1752: 0xB4FD, - 1753: 0xB4FE, - 1754: 0xB4FF, - 1755: 0xB500, - 1756: 0xB501, - 1757: 0xB502, - 1758: 0xB503, - 1759: 0xB504, - 1760: 0xB505, - 1761: 0xB506, - 1762: 0xB507, - 1763: 0xB508, - 1764: 0xB509, - 1765: 0xB50A, - 1766: 0xB50B, - 1767: 0xB50C, - 1768: 0xB50D, - 1769: 0xB50E, - 1770: 0xB50F, - 1771: 0xB510, - 1772: 0xB511, - 1773: 0xB512, - 1774: 0xB513, - 1775: 0xB516, - 1776: 0xB517, - 1777: 0xB519, - 1778: 0xB51A, - 1779: 0xB51D, - 1780: 0xB51E, - 1781: 0xB51F, - 1782: 0xB520, - 1783: 0xB521, - 1784: 0xB522, - 1785: 0xB523, - 1786: 0xB526, - 1787: 0xB52B, - 1788: 0xB52C, - 1789: 0xB52D, - 1790: 0xB52E, - 1791: 0xB52F, - 1792: 0xB532, - 1793: 0xB533, - 1794: 0xB535, - 1795: 0xB536, - 1796: 0xB537, - 1797: 0xB539, - 1798: 0xB53A, - 1799: 0xB53B, - 1800: 0xB53C, - 1801: 0xB53D, - 1802: 0xB53E, - 1803: 0xB53F, - 1804: 0xB542, - 1805: 0xB546, - 1806: 0xB547, - 1807: 0xB548, - 1808: 0xB549, - 1809: 0xB54A, - 1810: 0xB54E, - 1811: 0xB54F, - 1812: 0xB551, - 1813: 0xB552, - 1814: 0xB553, - 1815: 0xB555, - 1816: 0xB556, - 1817: 0xB557, - 1818: 0xB558, - 1819: 0xB559, - 1820: 0xB55A, - 1821: 0xB55B, - 1822: 0xB55E, - 1823: 0xB562, - 1824: 0xB563, - 1825: 0xB564, - 1826: 0xB565, - 1827: 0xB566, - 1828: 0xB567, - 1829: 0xB568, - 1830: 0xB569, - 1831: 0xB56A, - 1832: 0xB56B, - 1833: 0xB56C, - 1834: 0xB56D, - 1835: 0xB56E, - 1836: 0xB56F, - 1837: 0xB570, - 1838: 0xB571, - 1839: 0xB572, - 1840: 0xB573, - 1841: 0xB574, - 1842: 0xB575, - 1843: 0xB576, - 1844: 0xB577, - 1845: 0xB578, - 1846: 0xB579, - 1847: 0xB57A, - 1848: 0xB57B, - 1849: 0xB57C, - 1850: 0xB57D, - 1851: 0xB57E, - 1852: 0xB57F, - 1853: 0xB580, - 1854: 0xB581, - 1855: 0xB582, - 1856: 0xB583, - 1857: 0xB584, - 1858: 0xB585, - 1859: 0xB586, - 1860: 0xB587, - 1861: 0xB588, - 1862: 0xB589, - 1863: 0xB58A, - 1864: 0xB58B, - 1865: 0xB58C, - 1866: 0xB58D, - 1867: 0xB58E, - 1868: 0xB58F, - 1869: 0xB590, - 1870: 0xB591, - 1871: 0xB592, - 1872: 0xB593, - 1873: 0xB594, - 1874: 0xB595, - 1875: 0xB596, - 1876: 0xB597, - 1877: 0xB598, - 1878: 0xB599, - 1879: 0xB59A, - 1880: 0xB59B, - 1881: 0xB59C, - 1882: 0xB59D, - 1883: 0xB59E, - 1884: 0xB59F, - 1885: 0xB5A2, - 1886: 0xB5A3, - 1887: 0xB5A5, - 1888: 0xB5A6, - 1889: 0xB5A7, - 1890: 0xB5A9, - 1891: 0xB5AC, - 1892: 0xB5AD, - 1893: 0xB5AE, - 1894: 0xB5AF, - 1895: 0xB5B2, - 1896: 0xB5B6, - 1897: 0xB5B7, - 1898: 0xB5B8, - 1899: 0xB5B9, - 1900: 0xB5BA, - 1901: 0xB5BE, - 1902: 0xB5BF, - 1903: 0xB5C1, - 1904: 0xB5C2, - 1905: 0xB5C3, - 1906: 0xB5C5, - 1907: 0xB5C6, - 1908: 0xB5C7, - 1909: 0xB5C8, - 1910: 0xB5C9, - 1911: 0xB5CA, - 1912: 0xB5CB, - 1913: 0xB5CE, - 1914: 0xB5D2, - 1915: 0xB5D3, - 1916: 0xB5D4, - 1917: 0xB5D5, - 1918: 0xB5D6, - 1919: 0xB5D7, - 1920: 0xB5D9, - 1921: 0xB5DA, - 1922: 0xB5DB, - 1923: 0xB5DC, - 1924: 0xB5DD, - 1925: 0xB5DE, - 1926: 0xB5DF, - 1927: 0xB5E0, - 1928: 0xB5E1, - 1929: 0xB5E2, - 1930: 0xB5E3, - 1931: 0xB5E4, - 1932: 0xB5E5, - 1933: 0xB5E6, - 1934: 0xB5E7, - 1935: 0xB5E8, - 1936: 0xB5E9, - 1937: 0xB5EA, - 1938: 0xB5EB, - 1939: 0xB5ED, - 1940: 0xB5EE, - 1941: 0xB5EF, - 1942: 0xB5F0, - 1943: 0xB5F1, - 1944: 0xB5F2, - 1945: 0xB5F3, - 1946: 0xB5F4, - 1947: 0xB5F5, - 1948: 0xB5F6, - 1949: 0xB5F7, - 1950: 0xB5F8, - 1951: 0xB5F9, - 1952: 0xB5FA, - 1953: 0xB5FB, - 1954: 0xB5FC, - 1955: 0xB5FD, - 1956: 0xB5FE, - 1957: 0xB5FF, - 1958: 0xB600, - 1959: 0xB601, - 1960: 0xB602, - 1961: 0xB603, - 1962: 0xB604, - 1963: 0xB605, - 1964: 0xB606, - 1965: 0xB607, - 1966: 0xB608, - 1967: 0xB609, - 1968: 0xB60A, - 1969: 0xB60B, - 1970: 0xB60C, - 1971: 0xB60D, - 1972: 0xB60E, - 1973: 0xB60F, - 1974: 0xB612, - 1975: 0xB613, - 1976: 0xB615, - 1977: 0xB616, - 1978: 0xB617, - 1979: 0xB619, - 1980: 0xB61A, - 1981: 0xB61B, - 1982: 0xB61C, - 1983: 0xB61D, - 1984: 0xB61E, - 1985: 0xB61F, - 1986: 0xB620, - 1987: 0xB621, - 1988: 0xB622, - 1989: 0xB623, - 1990: 0xB624, - 1991: 0xB626, - 1992: 0xB627, - 1993: 0xB628, - 1994: 0xB629, - 1995: 0xB62A, - 1996: 0xB62B, - 1997: 0xB62D, - 1998: 0xB62E, - 1999: 0xB62F, - 2000: 0xB630, - 2001: 0xB631, - 2002: 0xB632, - 2003: 0xB633, - 2004: 0xB635, - 2005: 0xB636, - 2006: 0xB637, - 2007: 0xB638, - 2008: 0xB639, - 2009: 0xB63A, - 2010: 0xB63B, - 2011: 0xB63C, - 2012: 0xB63D, - 2013: 0xB63E, - 2014: 0xB63F, - 2015: 0xB640, - 2016: 0xB641, - 2017: 0xB642, - 2018: 0xB643, - 2019: 0xB644, - 2020: 0xB645, - 2021: 0xB646, - 2022: 0xB647, - 2023: 0xB649, - 2024: 0xB64A, - 2025: 0xB64B, - 2026: 0xB64C, - 2027: 0xB64D, - 2028: 0xB64E, - 2029: 0xB64F, - 2030: 0xB650, - 2031: 0xB651, - 2032: 0xB652, - 2033: 0xB653, - 2034: 0xB654, - 2035: 0xB655, - 2036: 0xB656, - 2037: 0xB657, - 2038: 0xB658, - 2039: 0xB659, - 2040: 0xB65A, - 2041: 0xB65B, - 2042: 0xB65C, - 2043: 0xB65D, - 2044: 0xB65E, - 2045: 0xB65F, - 2046: 0xB660, - 2047: 0xB661, - 2048: 0xB662, - 2049: 0xB663, - 2050: 0xB665, - 2051: 0xB666, - 2052: 0xB667, - 2053: 0xB669, - 2054: 0xB66A, - 2055: 0xB66B, - 2056: 0xB66C, - 2057: 0xB66D, - 2058: 0xB66E, - 2059: 0xB66F, - 2060: 0xB670, - 2061: 0xB671, - 2062: 0xB672, - 2063: 0xB673, - 2064: 0xB674, - 2065: 0xB675, - 2066: 0xB676, - 2067: 0xB677, - 2068: 0xB678, - 2069: 0xB679, - 2070: 0xB67A, - 2071: 0xB67B, - 2072: 0xB67C, - 2073: 0xB67D, - 2074: 0xB67E, - 2075: 0xB67F, - 2076: 0xB680, - 2077: 0xB681, - 2078: 0xB682, - 2079: 0xB683, - 2080: 0xB684, - 2081: 0xB685, - 2082: 0xB686, - 2083: 0xB687, - 2084: 0xB688, - 2085: 0xB689, - 2086: 0xB68A, - 2087: 0xB68B, - 2088: 0xB68C, - 2089: 0xB68D, - 2090: 0xB68E, - 2091: 0xB68F, - 2092: 0xB690, - 2093: 0xB691, - 2094: 0xB692, - 2095: 0xB693, - 2096: 0xB694, - 2097: 0xB695, - 2098: 0xB696, - 2099: 0xB697, - 2100: 0xB698, - 2101: 0xB699, - 2102: 0xB69A, - 2103: 0xB69B, - 2104: 0xB69E, - 2105: 0xB69F, - 2106: 0xB6A1, - 2107: 0xB6A2, - 2108: 0xB6A3, - 2109: 0xB6A5, - 2110: 0xB6A6, - 2111: 0xB6A7, - 2112: 0xB6A8, - 2113: 0xB6A9, - 2114: 0xB6AA, - 2115: 0xB6AD, - 2116: 0xB6AE, - 2117: 0xB6AF, - 2118: 0xB6B0, - 2119: 0xB6B2, - 2120: 0xB6B3, - 2121: 0xB6B4, - 2122: 0xB6B5, - 2123: 0xB6B6, - 2124: 0xB6B7, - 2125: 0xB6B8, - 2126: 0xB6B9, - 2127: 0xB6BA, - 2128: 0xB6BB, - 2129: 0xB6BC, - 2130: 0xB6BD, - 2131: 0xB6BE, - 2132: 0xB6BF, - 2133: 0xB6C0, - 2134: 0xB6C1, - 2135: 0xB6C2, - 2136: 0xB6C3, - 2137: 0xB6C4, - 2138: 0xB6C5, - 2139: 0xB6C6, - 2140: 0xB6C7, - 2141: 0xB6C8, - 2142: 0xB6C9, - 2143: 0xB6CA, - 2144: 0xB6CB, - 2145: 0xB6CC, - 2146: 0xB6CD, - 2147: 0xB6CE, - 2148: 0xB6CF, - 2149: 0xB6D0, - 2150: 0xB6D1, - 2151: 0xB6D2, - 2152: 0xB6D3, - 2153: 0xB6D5, - 2154: 0xB6D6, - 2155: 0xB6D7, - 2156: 0xB6D8, - 2157: 0xB6D9, - 2158: 0xB6DA, - 2159: 0xB6DB, - 2160: 0xB6DC, - 2161: 0xB6DD, - 2162: 0xB6DE, - 2163: 0xB6DF, - 2164: 0xB6E0, - 2165: 0xB6E1, - 2166: 0xB6E2, - 2167: 0xB6E3, - 2168: 0xB6E4, - 2169: 0xB6E5, - 2170: 0xB6E6, - 2171: 0xB6E7, - 2172: 0xB6E8, - 2173: 0xB6E9, - 2174: 0xB6EA, - 2175: 0xB6EB, - 2176: 0xB6EC, - 2177: 0xB6ED, - 2178: 0xB6EE, - 2179: 0xB6EF, - 2180: 0xB6F1, - 2181: 0xB6F2, - 2182: 0xB6F3, - 2183: 0xB6F5, - 2184: 0xB6F6, - 2185: 0xB6F7, - 2186: 0xB6F9, - 2187: 0xB6FA, - 2188: 0xB6FB, - 2189: 0xB6FC, - 2190: 0xB6FD, - 2191: 0xB6FE, - 2192: 0xB6FF, - 2193: 0xB702, - 2194: 0xB703, - 2195: 0xB704, - 2196: 0xB706, - 2197: 0xB707, - 2198: 0xB708, - 2199: 0xB709, - 2200: 0xB70A, - 2201: 0xB70B, - 2202: 0xB70C, - 2203: 0xB70D, - 2204: 0xB70E, - 2205: 0xB70F, - 2206: 0xB710, - 2207: 0xB711, - 2208: 0xB712, - 2209: 0xB713, - 2210: 0xB714, - 2211: 0xB715, - 2212: 0xB716, - 2213: 0xB717, - 2214: 0xB718, - 2215: 0xB719, - 2216: 0xB71A, - 2217: 0xB71B, - 2218: 0xB71C, - 2219: 0xB71D, - 2220: 0xB71E, - 2221: 0xB71F, - 2222: 0xB720, - 2223: 0xB721, - 2224: 0xB722, - 2225: 0xB723, - 2226: 0xB724, - 2227: 0xB725, - 2228: 0xB726, - 2229: 0xB727, - 2230: 0xB72A, - 2231: 0xB72B, - 2232: 0xB72D, - 2233: 0xB72E, - 2234: 0xB731, - 2235: 0xB732, - 2236: 0xB733, - 2237: 0xB734, - 2238: 0xB735, - 2239: 0xB736, - 2240: 0xB737, - 2241: 0xB73A, - 2242: 0xB73C, - 2243: 0xB73D, - 2244: 0xB73E, - 2245: 0xB73F, - 2246: 0xB740, - 2247: 0xB741, - 2248: 0xB742, - 2249: 0xB743, - 2250: 0xB745, - 2251: 0xB746, - 2252: 0xB747, - 2253: 0xB749, - 2254: 0xB74A, - 2255: 0xB74B, - 2256: 0xB74D, - 2257: 0xB74E, - 2258: 0xB74F, - 2259: 0xB750, - 2260: 0xB751, - 2261: 0xB752, - 2262: 0xB753, - 2263: 0xB756, - 2264: 0xB757, - 2265: 0xB758, - 2266: 0xB759, - 2267: 0xB75A, - 2268: 0xB75B, - 2269: 0xB75C, - 2270: 0xB75D, - 2271: 0xB75E, - 2272: 0xB75F, - 2273: 0xB761, - 2274: 0xB762, - 2275: 0xB763, - 2276: 0xB765, - 2277: 0xB766, - 2278: 0xB767, - 2279: 0xB769, - 2280: 0xB76A, - 2281: 0xB76B, - 2282: 0xB76C, - 2283: 0xB76D, - 2284: 0xB76E, - 2285: 0xB76F, - 2286: 0xB772, - 2287: 0xB774, - 2288: 0xB776, - 2289: 0xB777, - 2290: 0xB778, - 2291: 0xB779, - 2292: 0xB77A, - 2293: 0xB77B, - 2294: 0xB77E, - 2295: 0xB77F, - 2296: 0xB781, - 2297: 0xB782, - 2298: 0xB783, - 2299: 0xB785, - 2300: 0xB786, - 2301: 0xB787, - 2302: 0xB788, - 2303: 0xB789, - 2304: 0xB78A, - 2305: 0xB78B, - 2306: 0xB78E, - 2307: 0xB793, - 2308: 0xB794, - 2309: 0xB795, - 2310: 0xB79A, - 2311: 0xB79B, - 2312: 0xB79D, - 2313: 0xB79E, - 2314: 0xB79F, - 2315: 0xB7A1, - 2316: 0xB7A2, - 2317: 0xB7A3, - 2318: 0xB7A4, - 2319: 0xB7A5, - 2320: 0xB7A6, - 2321: 0xB7A7, - 2322: 0xB7AA, - 2323: 0xB7AE, - 2324: 0xB7AF, - 2325: 0xB7B0, - 2326: 0xB7B1, - 2327: 0xB7B2, - 2328: 0xB7B3, - 2329: 0xB7B6, - 2330: 0xB7B7, - 2331: 0xB7B9, - 2332: 0xB7BA, - 2333: 0xB7BB, - 2334: 0xB7BC, - 2335: 0xB7BD, - 2336: 0xB7BE, - 2337: 0xB7BF, - 2338: 0xB7C0, - 2339: 0xB7C1, - 2340: 0xB7C2, - 2341: 0xB7C3, - 2342: 0xB7C4, - 2343: 0xB7C5, - 2344: 0xB7C6, - 2345: 0xB7C8, - 2346: 0xB7CA, - 2347: 0xB7CB, - 2348: 0xB7CC, - 2349: 0xB7CD, - 2350: 0xB7CE, - 2351: 0xB7CF, - 2352: 0xB7D0, - 2353: 0xB7D1, - 2354: 0xB7D2, - 2355: 0xB7D3, - 2356: 0xB7D4, - 2357: 0xB7D5, - 2358: 0xB7D6, - 2359: 0xB7D7, - 2360: 0xB7D8, - 2361: 0xB7D9, - 2362: 0xB7DA, - 2363: 0xB7DB, - 2364: 0xB7DC, - 2365: 0xB7DD, - 2366: 0xB7DE, - 2367: 0xB7DF, - 2368: 0xB7E0, - 2369: 0xB7E1, - 2370: 0xB7E2, - 2371: 0xB7E3, - 2372: 0xB7E4, - 2373: 0xB7E5, - 2374: 0xB7E6, - 2375: 0xB7E7, - 2376: 0xB7E8, - 2377: 0xB7E9, - 2378: 0xB7EA, - 2379: 0xB7EB, - 2380: 0xB7EE, - 2381: 0xB7EF, - 2382: 0xB7F1, - 2383: 0xB7F2, - 2384: 0xB7F3, - 2385: 0xB7F5, - 2386: 0xB7F6, - 2387: 0xB7F7, - 2388: 0xB7F8, - 2389: 0xB7F9, - 2390: 0xB7FA, - 2391: 0xB7FB, - 2392: 0xB7FE, - 2393: 0xB802, - 2394: 0xB803, - 2395: 0xB804, - 2396: 0xB805, - 2397: 0xB806, - 2398: 0xB80A, - 2399: 0xB80B, - 2400: 0xB80D, - 2401: 0xB80E, - 2402: 0xB80F, - 2403: 0xB811, - 2404: 0xB812, - 2405: 0xB813, - 2406: 0xB814, - 2407: 0xB815, - 2408: 0xB816, - 2409: 0xB817, - 2410: 0xB81A, - 2411: 0xB81C, - 2412: 0xB81E, - 2413: 0xB81F, - 2414: 0xB820, - 2415: 0xB821, - 2416: 0xB822, - 2417: 0xB823, - 2418: 0xB826, - 2419: 0xB827, - 2420: 0xB829, - 2421: 0xB82A, - 2422: 0xB82B, - 2423: 0xB82D, - 2424: 0xB82E, - 2425: 0xB82F, - 2426: 0xB830, - 2427: 0xB831, - 2428: 0xB832, - 2429: 0xB833, - 2430: 0xB836, - 2431: 0xB83A, - 2432: 0xB83B, - 2433: 0xB83C, - 2434: 0xB83D, - 2435: 0xB83E, - 2436: 0xB83F, - 2437: 0xB841, - 2438: 0xB842, - 2439: 0xB843, - 2440: 0xB845, - 2441: 0xB846, - 2442: 0xB847, - 2443: 0xB848, - 2444: 0xB849, - 2445: 0xB84A, - 2446: 0xB84B, - 2447: 0xB84C, - 2448: 0xB84D, - 2449: 0xB84E, - 2450: 0xB84F, - 2451: 0xB850, - 2452: 0xB852, - 2453: 0xB854, - 2454: 0xB855, - 2455: 0xB856, - 2456: 0xB857, - 2457: 0xB858, - 2458: 0xB859, - 2459: 0xB85A, - 2460: 0xB85B, - 2461: 0xB85E, - 2462: 0xB85F, - 2463: 0xB861, - 2464: 0xB862, - 2465: 0xB863, - 2466: 0xB865, - 2467: 0xB866, - 2468: 0xB867, - 2469: 0xB868, - 2470: 0xB869, - 2471: 0xB86A, - 2472: 0xB86B, - 2473: 0xB86E, - 2474: 0xB870, - 2475: 0xB872, - 2476: 0xB873, - 2477: 0xB874, - 2478: 0xB875, - 2479: 0xB876, - 2480: 0xB877, - 2481: 0xB879, - 2482: 0xB87A, - 2483: 0xB87B, - 2484: 0xB87D, - 2485: 0xB87E, - 2486: 0xB87F, - 2487: 0xB880, - 2488: 0xB881, - 2489: 0xB882, - 2490: 0xB883, - 2491: 0xB884, - 2492: 0xB885, - 2493: 0xB886, - 2494: 0xB887, - 2495: 0xB888, - 2496: 0xB889, - 2497: 0xB88A, - 2498: 0xB88B, - 2499: 0xB88C, - 2500: 0xB88E, - 2501: 0xB88F, - 2502: 0xB890, - 2503: 0xB891, - 2504: 0xB892, - 2505: 0xB893, - 2506: 0xB894, - 2507: 0xB895, - 2508: 0xB896, - 2509: 0xB897, - 2510: 0xB898, - 2511: 0xB899, - 2512: 0xB89A, - 2513: 0xB89B, - 2514: 0xB89C, - 2515: 0xB89D, - 2516: 0xB89E, - 2517: 0xB89F, - 2518: 0xB8A0, - 2519: 0xB8A1, - 2520: 0xB8A2, - 2521: 0xB8A3, - 2522: 0xB8A4, - 2523: 0xB8A5, - 2524: 0xB8A6, - 2525: 0xB8A7, - 2526: 0xB8A9, - 2527: 0xB8AA, - 2528: 0xB8AB, - 2529: 0xB8AC, - 2530: 0xB8AD, - 2531: 0xB8AE, - 2532: 0xB8AF, - 2533: 0xB8B1, - 2534: 0xB8B2, - 2535: 0xB8B3, - 2536: 0xB8B5, - 2537: 0xB8B6, - 2538: 0xB8B7, - 2539: 0xB8B9, - 2540: 0xB8BA, - 2541: 0xB8BB, - 2542: 0xB8BC, - 2543: 0xB8BD, - 2544: 0xB8BE, - 2545: 0xB8BF, - 2546: 0xB8C2, - 2547: 0xB8C4, - 2548: 0xB8C6, - 2549: 0xB8C7, - 2550: 0xB8C8, - 2551: 0xB8C9, - 2552: 0xB8CA, - 2553: 0xB8CB, - 2554: 0xB8CD, - 2555: 0xB8CE, - 2556: 0xB8CF, - 2557: 0xB8D1, - 2558: 0xB8D2, - 2559: 0xB8D3, - 2560: 0xB8D5, - 2561: 0xB8D6, - 2562: 0xB8D7, - 2563: 0xB8D8, - 2564: 0xB8D9, - 2565: 0xB8DA, - 2566: 0xB8DB, - 2567: 0xB8DC, - 2568: 0xB8DE, - 2569: 0xB8E0, - 2570: 0xB8E2, - 2571: 0xB8E3, - 2572: 0xB8E4, - 2573: 0xB8E5, - 2574: 0xB8E6, - 2575: 0xB8E7, - 2576: 0xB8EA, - 2577: 0xB8EB, - 2578: 0xB8ED, - 2579: 0xB8EE, - 2580: 0xB8EF, - 2581: 0xB8F1, - 2582: 0xB8F2, - 2583: 0xB8F3, - 2584: 0xB8F4, - 2585: 0xB8F5, - 2586: 0xB8F6, - 2587: 0xB8F7, - 2588: 0xB8FA, - 2589: 0xB8FC, - 2590: 0xB8FE, - 2591: 0xB8FF, - 2592: 0xB900, - 2593: 0xB901, - 2594: 0xB902, - 2595: 0xB903, - 2596: 0xB905, - 2597: 0xB906, - 2598: 0xB907, - 2599: 0xB908, - 2600: 0xB909, - 2601: 0xB90A, - 2602: 0xB90B, - 2603: 0xB90C, - 2604: 0xB90D, - 2605: 0xB90E, - 2606: 0xB90F, - 2607: 0xB910, - 2608: 0xB911, - 2609: 0xB912, - 2610: 0xB913, - 2611: 0xB914, - 2612: 0xB915, - 2613: 0xB916, - 2614: 0xB917, - 2615: 0xB919, - 2616: 0xB91A, - 2617: 0xB91B, - 2618: 0xB91C, - 2619: 0xB91D, - 2620: 0xB91E, - 2621: 0xB91F, - 2622: 0xB921, - 2623: 0xB922, - 2624: 0xB923, - 2625: 0xB924, - 2626: 0xB925, - 2627: 0xB926, - 2628: 0xB927, - 2629: 0xB928, - 2630: 0xB929, - 2631: 0xB92A, - 2632: 0xB92B, - 2633: 0xB92C, - 2634: 0xB92D, - 2635: 0xB92E, - 2636: 0xB92F, - 2637: 0xB930, - 2638: 0xB931, - 2639: 0xB932, - 2640: 0xB933, - 2641: 0xB934, - 2642: 0xB935, - 2643: 0xB936, - 2644: 0xB937, - 2645: 0xB938, - 2646: 0xB939, - 2647: 0xB93A, - 2648: 0xB93B, - 2649: 0xB93E, - 2650: 0xB93F, - 2651: 0xB941, - 2652: 0xB942, - 2653: 0xB943, - 2654: 0xB945, - 2655: 0xB946, - 2656: 0xB947, - 2657: 0xB948, - 2658: 0xB949, - 2659: 0xB94A, - 2660: 0xB94B, - 2661: 0xB94D, - 2662: 0xB94E, - 2663: 0xB950, - 2664: 0xB952, - 2665: 0xB953, - 2666: 0xB954, - 2667: 0xB955, - 2668: 0xB956, - 2669: 0xB957, - 2670: 0xB95A, - 2671: 0xB95B, - 2672: 0xB95D, - 2673: 0xB95E, - 2674: 0xB95F, - 2675: 0xB961, - 2676: 0xB962, - 2677: 0xB963, - 2678: 0xB964, - 2679: 0xB965, - 2680: 0xB966, - 2681: 0xB967, - 2682: 0xB96A, - 2683: 0xB96C, - 2684: 0xB96E, - 2685: 0xB96F, - 2686: 0xB970, - 2687: 0xB971, - 2688: 0xB972, - 2689: 0xB973, - 2690: 0xB976, - 2691: 0xB977, - 2692: 0xB979, - 2693: 0xB97A, - 2694: 0xB97B, - 2695: 0xB97D, - 2696: 0xB97E, - 2697: 0xB97F, - 2698: 0xB980, - 2699: 0xB981, - 2700: 0xB982, - 2701: 0xB983, - 2702: 0xB986, - 2703: 0xB988, - 2704: 0xB98B, - 2705: 0xB98C, - 2706: 0xB98F, - 2707: 0xB990, - 2708: 0xB991, - 2709: 0xB992, - 2710: 0xB993, - 2711: 0xB994, - 2712: 0xB995, - 2713: 0xB996, - 2714: 0xB997, - 2715: 0xB998, - 2716: 0xB999, - 2717: 0xB99A, - 2718: 0xB99B, - 2719: 0xB99C, - 2720: 0xB99D, - 2721: 0xB99E, - 2722: 0xB99F, - 2723: 0xB9A0, - 2724: 0xB9A1, - 2725: 0xB9A2, - 2726: 0xB9A3, - 2727: 0xB9A4, - 2728: 0xB9A5, - 2729: 0xB9A6, - 2730: 0xB9A7, - 2731: 0xB9A8, - 2732: 0xB9A9, - 2733: 0xB9AA, - 2734: 0xB9AB, - 2735: 0xB9AE, - 2736: 0xB9AF, - 2737: 0xB9B1, - 2738: 0xB9B2, - 2739: 0xB9B3, - 2740: 0xB9B5, - 2741: 0xB9B6, - 2742: 0xB9B7, - 2743: 0xB9B8, - 2744: 0xB9B9, - 2745: 0xB9BA, - 2746: 0xB9BB, - 2747: 0xB9BE, - 2748: 0xB9C0, - 2749: 0xB9C2, - 2750: 0xB9C3, - 2751: 0xB9C4, - 2752: 0xB9C5, - 2753: 0xB9C6, - 2754: 0xB9C7, - 2755: 0xB9CA, - 2756: 0xB9CB, - 2757: 0xB9CD, - 2758: 0xB9D3, - 2759: 0xB9D4, - 2760: 0xB9D5, - 2761: 0xB9D6, - 2762: 0xB9D7, - 2763: 0xB9DA, - 2764: 0xB9DC, - 2765: 0xB9DF, - 2766: 0xB9E0, - 2767: 0xB9E2, - 2768: 0xB9E6, - 2769: 0xB9E7, - 2770: 0xB9E9, - 2771: 0xB9EA, - 2772: 0xB9EB, - 2773: 0xB9ED, - 2774: 0xB9EE, - 2775: 0xB9EF, - 2776: 0xB9F0, - 2777: 0xB9F1, - 2778: 0xB9F2, - 2779: 0xB9F3, - 2780: 0xB9F6, - 2781: 0xB9FB, - 2782: 0xB9FC, - 2783: 0xB9FD, - 2784: 0xB9FE, - 2785: 0xB9FF, - 2786: 0xBA02, - 2787: 0xBA03, - 2788: 0xBA04, - 2789: 0xBA05, - 2790: 0xBA06, - 2791: 0xBA07, - 2792: 0xBA09, - 2793: 0xBA0A, - 2794: 0xBA0B, - 2795: 0xBA0C, - 2796: 0xBA0D, - 2797: 0xBA0E, - 2798: 0xBA0F, - 2799: 0xBA10, - 2800: 0xBA11, - 2801: 0xBA12, - 2802: 0xBA13, - 2803: 0xBA14, - 2804: 0xBA16, - 2805: 0xBA17, - 2806: 0xBA18, - 2807: 0xBA19, - 2808: 0xBA1A, - 2809: 0xBA1B, - 2810: 0xBA1C, - 2811: 0xBA1D, - 2812: 0xBA1E, - 2813: 0xBA1F, - 2814: 0xBA20, - 2815: 0xBA21, - 2816: 0xBA22, - 2817: 0xBA23, - 2818: 0xBA24, - 2819: 0xBA25, - 2820: 0xBA26, - 2821: 0xBA27, - 2822: 0xBA28, - 2823: 0xBA29, - 2824: 0xBA2A, - 2825: 0xBA2B, - 2826: 0xBA2C, - 2827: 0xBA2D, - 2828: 0xBA2E, - 2829: 0xBA2F, - 2830: 0xBA30, - 2831: 0xBA31, - 2832: 0xBA32, - 2833: 0xBA33, - 2834: 0xBA34, - 2835: 0xBA35, - 2836: 0xBA36, - 2837: 0xBA37, - 2838: 0xBA3A, - 2839: 0xBA3B, - 2840: 0xBA3D, - 2841: 0xBA3E, - 2842: 0xBA3F, - 2843: 0xBA41, - 2844: 0xBA43, - 2845: 0xBA44, - 2846: 0xBA45, - 2847: 0xBA46, - 2848: 0xBA47, - 2849: 0xBA4A, - 2850: 0xBA4C, - 2851: 0xBA4F, - 2852: 0xBA50, - 2853: 0xBA51, - 2854: 0xBA52, - 2855: 0xBA56, - 2856: 0xBA57, - 2857: 0xBA59, - 2858: 0xBA5A, - 2859: 0xBA5B, - 2860: 0xBA5D, - 2861: 0xBA5E, - 2862: 0xBA5F, - 2863: 0xBA60, - 2864: 0xBA61, - 2865: 0xBA62, - 2866: 0xBA63, - 2867: 0xBA66, - 2868: 0xBA6A, - 2869: 0xBA6B, - 2870: 0xBA6C, - 2871: 0xBA6D, - 2872: 0xBA6E, - 2873: 0xBA6F, - 2874: 0xBA72, - 2875: 0xBA73, - 2876: 0xBA75, - 2877: 0xBA76, - 2878: 0xBA77, - 2879: 0xBA79, - 2880: 0xBA7A, - 2881: 0xBA7B, - 2882: 0xBA7C, - 2883: 0xBA7D, - 2884: 0xBA7E, - 2885: 0xBA7F, - 2886: 0xBA80, - 2887: 0xBA81, - 2888: 0xBA82, - 2889: 0xBA86, - 2890: 0xBA88, - 2891: 0xBA89, - 2892: 0xBA8A, - 2893: 0xBA8B, - 2894: 0xBA8D, - 2895: 0xBA8E, - 2896: 0xBA8F, - 2897: 0xBA90, - 2898: 0xBA91, - 2899: 0xBA92, - 2900: 0xBA93, - 2901: 0xBA94, - 2902: 0xBA95, - 2903: 0xBA96, - 2904: 0xBA97, - 2905: 0xBA98, - 2906: 0xBA99, - 2907: 0xBA9A, - 2908: 0xBA9B, - 2909: 0xBA9C, - 2910: 0xBA9D, - 2911: 0xBA9E, - 2912: 0xBA9F, - 2913: 0xBAA0, - 2914: 0xBAA1, - 2915: 0xBAA2, - 2916: 0xBAA3, - 2917: 0xBAA4, - 2918: 0xBAA5, - 2919: 0xBAA6, - 2920: 0xBAA7, - 2921: 0xBAAA, - 2922: 0xBAAD, - 2923: 0xBAAE, - 2924: 0xBAAF, - 2925: 0xBAB1, - 2926: 0xBAB3, - 2927: 0xBAB4, - 2928: 0xBAB5, - 2929: 0xBAB6, - 2930: 0xBAB7, - 2931: 0xBABA, - 2932: 0xBABC, - 2933: 0xBABE, - 2934: 0xBABF, - 2935: 0xBAC0, - 2936: 0xBAC1, - 2937: 0xBAC2, - 2938: 0xBAC3, - 2939: 0xBAC5, - 2940: 0xBAC6, - 2941: 0xBAC7, - 2942: 0xBAC9, - 2943: 0xBACA, - 2944: 0xBACB, - 2945: 0xBACC, - 2946: 0xBACD, - 2947: 0xBACE, - 2948: 0xBACF, - 2949: 0xBAD0, - 2950: 0xBAD1, - 2951: 0xBAD2, - 2952: 0xBAD3, - 2953: 0xBAD4, - 2954: 0xBAD5, - 2955: 0xBAD6, - 2956: 0xBAD7, - 2957: 0xBADA, - 2958: 0xBADB, - 2959: 0xBADC, - 2960: 0xBADD, - 2961: 0xBADE, - 2962: 0xBADF, - 2963: 0xBAE0, - 2964: 0xBAE1, - 2965: 0xBAE2, - 2966: 0xBAE3, - 2967: 0xBAE4, - 2968: 0xBAE5, - 2969: 0xBAE6, - 2970: 0xBAE7, - 2971: 0xBAE8, - 2972: 0xBAE9, - 2973: 0xBAEA, - 2974: 0xBAEB, - 2975: 0xBAEC, - 2976: 0xBAED, - 2977: 0xBAEE, - 2978: 0xBAEF, - 2979: 0xBAF0, - 2980: 0xBAF1, - 2981: 0xBAF2, - 2982: 0xBAF3, - 2983: 0xBAF4, - 2984: 0xBAF5, - 2985: 0xBAF6, - 2986: 0xBAF7, - 2987: 0xBAF8, - 2988: 0xBAF9, - 2989: 0xBAFA, - 2990: 0xBAFB, - 2991: 0xBAFD, - 2992: 0xBAFE, - 2993: 0xBAFF, - 2994: 0xBB01, - 2995: 0xBB02, - 2996: 0xBB03, - 2997: 0xBB05, - 2998: 0xBB06, - 2999: 0xBB07, - 3000: 0xBB08, - 3001: 0xBB09, - 3002: 0xBB0A, - 3003: 0xBB0B, - 3004: 0xBB0C, - 3005: 0xBB0E, - 3006: 0xBB10, - 3007: 0xBB12, - 3008: 0xBB13, - 3009: 0xBB14, - 3010: 0xBB15, - 3011: 0xBB16, - 3012: 0xBB17, - 3013: 0xBB19, - 3014: 0xBB1A, - 3015: 0xBB1B, - 3016: 0xBB1D, - 3017: 0xBB1E, - 3018: 0xBB1F, - 3019: 0xBB21, - 3020: 0xBB22, - 3021: 0xBB23, - 3022: 0xBB24, - 3023: 0xBB25, - 3024: 0xBB26, - 3025: 0xBB27, - 3026: 0xBB28, - 3027: 0xBB2A, - 3028: 0xBB2C, - 3029: 0xBB2D, - 3030: 0xBB2E, - 3031: 0xBB2F, - 3032: 0xBB30, - 3033: 0xBB31, - 3034: 0xBB32, - 3035: 0xBB33, - 3036: 0xBB37, - 3037: 0xBB39, - 3038: 0xBB3A, - 3039: 0xBB3F, - 3040: 0xBB40, - 3041: 0xBB41, - 3042: 0xBB42, - 3043: 0xBB43, - 3044: 0xBB46, - 3045: 0xBB48, - 3046: 0xBB4A, - 3047: 0xBB4B, - 3048: 0xBB4C, - 3049: 0xBB4E, - 3050: 0xBB51, - 3051: 0xBB52, - 3052: 0xBB53, - 3053: 0xBB55, - 3054: 0xBB56, - 3055: 0xBB57, - 3056: 0xBB59, - 3057: 0xBB5A, - 3058: 0xBB5B, - 3059: 0xBB5C, - 3060: 0xBB5D, - 3061: 0xBB5E, - 3062: 0xBB5F, - 3063: 0xBB60, - 3064: 0xBB62, - 3065: 0xBB64, - 3066: 0xBB65, - 3067: 0xBB66, - 3068: 0xBB67, - 3069: 0xBB68, - 3070: 0xBB69, - 3071: 0xBB6A, - 3072: 0xBB6B, - 3073: 0xBB6D, - 3074: 0xBB6E, - 3075: 0xBB6F, - 3076: 0xBB70, - 3077: 0xBB71, - 3078: 0xBB72, - 3079: 0xBB73, - 3080: 0xBB74, - 3081: 0xBB75, - 3082: 0xBB76, - 3083: 0xBB77, - 3084: 0xBB78, - 3085: 0xBB79, - 3086: 0xBB7A, - 3087: 0xBB7B, - 3088: 0xBB7C, - 3089: 0xBB7D, - 3090: 0xBB7E, - 3091: 0xBB7F, - 3092: 0xBB80, - 3093: 0xBB81, - 3094: 0xBB82, - 3095: 0xBB83, - 3096: 0xBB84, - 3097: 0xBB85, - 3098: 0xBB86, - 3099: 0xBB87, - 3100: 0xBB89, - 3101: 0xBB8A, - 3102: 0xBB8B, - 3103: 0xBB8D, - 3104: 0xBB8E, - 3105: 0xBB8F, - 3106: 0xBB91, - 3107: 0xBB92, - 3108: 0xBB93, - 3109: 0xBB94, - 3110: 0xBB95, - 3111: 0xBB96, - 3112: 0xBB97, - 3113: 0xBB98, - 3114: 0xBB99, - 3115: 0xBB9A, - 3116: 0xBB9B, - 3117: 0xBB9C, - 3118: 0xBB9D, - 3119: 0xBB9E, - 3120: 0xBB9F, - 3121: 0xBBA0, - 3122: 0xBBA1, - 3123: 0xBBA2, - 3124: 0xBBA3, - 3125: 0xBBA5, - 3126: 0xBBA6, - 3127: 0xBBA7, - 3128: 0xBBA9, - 3129: 0xBBAA, - 3130: 0xBBAB, - 3131: 0xBBAD, - 3132: 0xBBAE, - 3133: 0xBBAF, - 3134: 0xBBB0, - 3135: 0xBBB1, - 3136: 0xBBB2, - 3137: 0xBBB3, - 3138: 0xBBB5, - 3139: 0xBBB6, - 3140: 0xBBB8, - 3141: 0xBBB9, - 3142: 0xBBBA, - 3143: 0xBBBB, - 3144: 0xBBBC, - 3145: 0xBBBD, - 3146: 0xBBBE, - 3147: 0xBBBF, - 3148: 0xBBC1, - 3149: 0xBBC2, - 3150: 0xBBC3, - 3151: 0xBBC5, - 3152: 0xBBC6, - 3153: 0xBBC7, - 3154: 0xBBC9, - 3155: 0xBBCA, - 3156: 0xBBCB, - 3157: 0xBBCC, - 3158: 0xBBCD, - 3159: 0xBBCE, - 3160: 0xBBCF, - 3161: 0xBBD1, - 3162: 0xBBD2, - 3163: 0xBBD4, - 3164: 0xBBD5, - 3165: 0xBBD6, - 3166: 0xBBD7, - 3167: 0xBBD8, - 3168: 0xBBD9, - 3169: 0xBBDA, - 3170: 0xBBDB, - 3171: 0xBBDC, - 3172: 0xBBDD, - 3173: 0xBBDE, - 3174: 0xBBDF, - 3175: 0xBBE0, - 3176: 0xBBE1, - 3177: 0xBBE2, - 3178: 0xBBE3, - 3179: 0xBBE4, - 3180: 0xBBE5, - 3181: 0xBBE6, - 3182: 0xBBE7, - 3183: 0xBBE8, - 3184: 0xBBE9, - 3185: 0xBBEA, - 3186: 0xBBEB, - 3187: 0xBBEC, - 3188: 0xBBED, - 3189: 0xBBEE, - 3190: 0xBBEF, - 3191: 0xBBF0, - 3192: 0xBBF1, - 3193: 0xBBF2, - 3194: 0xBBF3, - 3195: 0xBBF4, - 3196: 0xBBF5, - 3197: 0xBBF6, - 3198: 0xBBF7, - 3199: 0xBBFA, - 3200: 0xBBFB, - 3201: 0xBBFD, - 3202: 0xBBFE, - 3203: 0xBC01, - 3204: 0xBC03, - 3205: 0xBC04, - 3206: 0xBC05, - 3207: 0xBC06, - 3208: 0xBC07, - 3209: 0xBC0A, - 3210: 0xBC0E, - 3211: 0xBC10, - 3212: 0xBC12, - 3213: 0xBC13, - 3214: 0xBC19, - 3215: 0xBC1A, - 3216: 0xBC20, - 3217: 0xBC21, - 3218: 0xBC22, - 3219: 0xBC23, - 3220: 0xBC26, - 3221: 0xBC28, - 3222: 0xBC2A, - 3223: 0xBC2B, - 3224: 0xBC2C, - 3225: 0xBC2E, - 3226: 0xBC2F, - 3227: 0xBC32, - 3228: 0xBC33, - 3229: 0xBC35, - 3230: 0xBC36, - 3231: 0xBC37, - 3232: 0xBC39, - 3233: 0xBC3A, - 3234: 0xBC3B, - 3235: 0xBC3C, - 3236: 0xBC3D, - 3237: 0xBC3E, - 3238: 0xBC3F, - 3239: 0xBC42, - 3240: 0xBC46, - 3241: 0xBC47, - 3242: 0xBC48, - 3243: 0xBC4A, - 3244: 0xBC4B, - 3245: 0xBC4E, - 3246: 0xBC4F, - 3247: 0xBC51, - 3248: 0xBC52, - 3249: 0xBC53, - 3250: 0xBC54, - 3251: 0xBC55, - 3252: 0xBC56, - 3253: 0xBC57, - 3254: 0xBC58, - 3255: 0xBC59, - 3256: 0xBC5A, - 3257: 0xBC5B, - 3258: 0xBC5C, - 3259: 0xBC5E, - 3260: 0xBC5F, - 3261: 0xBC60, - 3262: 0xBC61, - 3263: 0xBC62, - 3264: 0xBC63, - 3265: 0xBC64, - 3266: 0xBC65, - 3267: 0xBC66, - 3268: 0xBC67, - 3269: 0xBC68, - 3270: 0xBC69, - 3271: 0xBC6A, - 3272: 0xBC6B, - 3273: 0xBC6C, - 3274: 0xBC6D, - 3275: 0xBC6E, - 3276: 0xBC6F, - 3277: 0xBC70, - 3278: 0xBC71, - 3279: 0xBC72, - 3280: 0xBC73, - 3281: 0xBC74, - 3282: 0xBC75, - 3283: 0xBC76, - 3284: 0xBC77, - 3285: 0xBC78, - 3286: 0xBC79, - 3287: 0xBC7A, - 3288: 0xBC7B, - 3289: 0xBC7C, - 3290: 0xBC7D, - 3291: 0xBC7E, - 3292: 0xBC7F, - 3293: 0xBC80, - 3294: 0xBC81, - 3295: 0xBC82, - 3296: 0xBC83, - 3297: 0xBC86, - 3298: 0xBC87, - 3299: 0xBC89, - 3300: 0xBC8A, - 3301: 0xBC8D, - 3302: 0xBC8F, - 3303: 0xBC90, - 3304: 0xBC91, - 3305: 0xBC92, - 3306: 0xBC93, - 3307: 0xBC96, - 3308: 0xBC98, - 3309: 0xBC9B, - 3310: 0xBC9C, - 3311: 0xBC9D, - 3312: 0xBC9E, - 3313: 0xBC9F, - 3314: 0xBCA2, - 3315: 0xBCA3, - 3316: 0xBCA5, - 3317: 0xBCA6, - 3318: 0xBCA9, - 3319: 0xBCAA, - 3320: 0xBCAB, - 3321: 0xBCAC, - 3322: 0xBCAD, - 3323: 0xBCAE, - 3324: 0xBCAF, - 3325: 0xBCB2, - 3326: 0xBCB6, - 3327: 0xBCB7, - 3328: 0xBCB8, - 3329: 0xBCB9, - 3330: 0xBCBA, - 3331: 0xBCBB, - 3332: 0xBCBE, - 3333: 0xBCBF, - 3334: 0xBCC1, - 3335: 0xBCC2, - 3336: 0xBCC3, - 3337: 0xBCC5, - 3338: 0xBCC6, - 3339: 0xBCC7, - 3340: 0xBCC8, - 3341: 0xBCC9, - 3342: 0xBCCA, - 3343: 0xBCCB, - 3344: 0xBCCC, - 3345: 0xBCCE, - 3346: 0xBCD2, - 3347: 0xBCD3, - 3348: 0xBCD4, - 3349: 0xBCD6, - 3350: 0xBCD7, - 3351: 0xBCD9, - 3352: 0xBCDA, - 3353: 0xBCDB, - 3354: 0xBCDD, - 3355: 0xBCDE, - 3356: 0xBCDF, - 3357: 0xBCE0, - 3358: 0xBCE1, - 3359: 0xBCE2, - 3360: 0xBCE3, - 3361: 0xBCE4, - 3362: 0xBCE5, - 3363: 0xBCE6, - 3364: 0xBCE7, - 3365: 0xBCE8, - 3366: 0xBCE9, - 3367: 0xBCEA, - 3368: 0xBCEB, - 3369: 0xBCEC, - 3370: 0xBCED, - 3371: 0xBCEE, - 3372: 0xBCEF, - 3373: 0xBCF0, - 3374: 0xBCF1, - 3375: 0xBCF2, - 3376: 0xBCF3, - 3377: 0xBCF7, - 3378: 0xBCF9, - 3379: 0xBCFA, - 3380: 0xBCFB, - 3381: 0xBCFD, - 3382: 0xBCFE, - 3383: 0xBCFF, - 3384: 0xBD00, - 3385: 0xBD01, - 3386: 0xBD02, - 3387: 0xBD03, - 3388: 0xBD06, - 3389: 0xBD08, - 3390: 0xBD0A, - 3391: 0xBD0B, - 3392: 0xBD0C, - 3393: 0xBD0D, - 3394: 0xBD0E, - 3395: 0xBD0F, - 3396: 0xBD11, - 3397: 0xBD12, - 3398: 0xBD13, - 3399: 0xBD15, - 3400: 0xBD16, - 3401: 0xBD17, - 3402: 0xBD18, - 3403: 0xBD19, - 3404: 0xBD1A, - 3405: 0xBD1B, - 3406: 0xBD1C, - 3407: 0xBD1D, - 3408: 0xBD1E, - 3409: 0xBD1F, - 3410: 0xBD20, - 3411: 0xBD21, - 3412: 0xBD22, - 3413: 0xBD23, - 3414: 0xBD25, - 3415: 0xBD26, - 3416: 0xBD27, - 3417: 0xBD28, - 3418: 0xBD29, - 3419: 0xBD2A, - 3420: 0xBD2B, - 3421: 0xBD2D, - 3422: 0xBD2E, - 3423: 0xBD2F, - 3424: 0xBD30, - 3425: 0xBD31, - 3426: 0xBD32, - 3427: 0xBD33, - 3428: 0xBD34, - 3429: 0xBD35, - 3430: 0xBD36, - 3431: 0xBD37, - 3432: 0xBD38, - 3433: 0xBD39, - 3434: 0xBD3A, - 3435: 0xBD3B, - 3436: 0xBD3C, - 3437: 0xBD3D, - 3438: 0xBD3E, - 3439: 0xBD3F, - 3440: 0xBD41, - 3441: 0xBD42, - 3442: 0xBD43, - 3443: 0xBD44, - 3444: 0xBD45, - 3445: 0xBD46, - 3446: 0xBD47, - 3447: 0xBD4A, - 3448: 0xBD4B, - 3449: 0xBD4D, - 3450: 0xBD4E, - 3451: 0xBD4F, - 3452: 0xBD51, - 3453: 0xBD52, - 3454: 0xBD53, - 3455: 0xBD54, - 3456: 0xBD55, - 3457: 0xBD56, - 3458: 0xBD57, - 3459: 0xBD5A, - 3460: 0xBD5B, - 3461: 0xBD5C, - 3462: 0xBD5D, - 3463: 0xBD5E, - 3464: 0xBD5F, - 3465: 0xBD60, - 3466: 0xBD61, - 3467: 0xBD62, - 3468: 0xBD63, - 3469: 0xBD65, - 3470: 0xBD66, - 3471: 0xBD67, - 3472: 0xBD69, - 3473: 0xBD6A, - 3474: 0xBD6B, - 3475: 0xBD6C, - 3476: 0xBD6D, - 3477: 0xBD6E, - 3478: 0xBD6F, - 3479: 0xBD70, - 3480: 0xBD71, - 3481: 0xBD72, - 3482: 0xBD73, - 3483: 0xBD74, - 3484: 0xBD75, - 3485: 0xBD76, - 3486: 0xBD77, - 3487: 0xBD78, - 3488: 0xBD79, - 3489: 0xBD7A, - 3490: 0xBD7B, - 3491: 0xBD7C, - 3492: 0xBD7D, - 3493: 0xBD7E, - 3494: 0xBD7F, - 3495: 0xBD82, - 3496: 0xBD83, - 3497: 0xBD85, - 3498: 0xBD86, - 3499: 0xBD8B, - 3500: 0xBD8C, - 3501: 0xBD8D, - 3502: 0xBD8E, - 3503: 0xBD8F, - 3504: 0xBD92, - 3505: 0xBD94, - 3506: 0xBD96, - 3507: 0xBD97, - 3508: 0xBD98, - 3509: 0xBD9B, - 3510: 0xBD9D, - 3511: 0xBD9E, - 3512: 0xBD9F, - 3513: 0xBDA0, - 3514: 0xBDA1, - 3515: 0xBDA2, - 3516: 0xBDA3, - 3517: 0xBDA5, - 3518: 0xBDA6, - 3519: 0xBDA7, - 3520: 0xBDA8, - 3521: 0xBDA9, - 3522: 0xBDAA, - 3523: 0xBDAB, - 3524: 0xBDAC, - 3525: 0xBDAD, - 3526: 0xBDAE, - 3527: 0xBDAF, - 3528: 0xBDB1, - 3529: 0xBDB2, - 3530: 0xBDB3, - 3531: 0xBDB4, - 3532: 0xBDB5, - 3533: 0xBDB6, - 3534: 0xBDB7, - 3535: 0xBDB9, - 3536: 0xBDBA, - 3537: 0xBDBB, - 3538: 0xBDBC, - 3539: 0xBDBD, - 3540: 0xBDBE, - 3541: 0xBDBF, - 3542: 0xBDC0, - 3543: 0xBDC1, - 3544: 0xBDC2, - 3545: 0xBDC3, - 3546: 0xBDC4, - 3547: 0xBDC5, - 3548: 0xBDC6, - 3549: 0xBDC7, - 3550: 0xBDC8, - 3551: 0xBDC9, - 3552: 0xBDCA, - 3553: 0xBDCB, - 3554: 0xBDCC, - 3555: 0xBDCD, - 3556: 0xBDCE, - 3557: 0xBDCF, - 3558: 0xBDD0, - 3559: 0xBDD1, - 3560: 0xBDD2, - 3561: 0xBDD3, - 3562: 0xBDD6, - 3563: 0xBDD7, - 3564: 0xBDD9, - 3565: 0xBDDA, - 3566: 0xBDDB, - 3567: 0xBDDD, - 3568: 0xBDDE, - 3569: 0xBDDF, - 3570: 0xBDE0, - 3571: 0xBDE1, - 3572: 0xBDE2, - 3573: 0xBDE3, - 3574: 0xBDE4, - 3575: 0xBDE5, - 3576: 0xBDE6, - 3577: 0xBDE7, - 3578: 0xBDE8, - 3579: 0xBDEA, - 3580: 0xBDEB, - 3581: 0xBDEC, - 3582: 0xBDED, - 3583: 0xBDEE, - 3584: 0xBDEF, - 3585: 0xBDF1, - 3586: 0xBDF2, - 3587: 0xBDF3, - 3588: 0xBDF5, - 3589: 0xBDF6, - 3590: 0xBDF7, - 3591: 0xBDF9, - 3592: 0xBDFA, - 3593: 0xBDFB, - 3594: 0xBDFC, - 3595: 0xBDFD, - 3596: 0xBDFE, - 3597: 0xBDFF, - 3598: 0xBE01, - 3599: 0xBE02, - 3600: 0xBE04, - 3601: 0xBE06, - 3602: 0xBE07, - 3603: 0xBE08, - 3604: 0xBE09, - 3605: 0xBE0A, - 3606: 0xBE0B, - 3607: 0xBE0E, - 3608: 0xBE0F, - 3609: 0xBE11, - 3610: 0xBE12, - 3611: 0xBE13, - 3612: 0xBE15, - 3613: 0xBE16, - 3614: 0xBE17, - 3615: 0xBE18, - 3616: 0xBE19, - 3617: 0xBE1A, - 3618: 0xBE1B, - 3619: 0xBE1E, - 3620: 0xBE20, - 3621: 0xBE21, - 3622: 0xBE22, - 3623: 0xBE23, - 3624: 0xBE24, - 3625: 0xBE25, - 3626: 0xBE26, - 3627: 0xBE27, - 3628: 0xBE28, - 3629: 0xBE29, - 3630: 0xBE2A, - 3631: 0xBE2B, - 3632: 0xBE2C, - 3633: 0xBE2D, - 3634: 0xBE2E, - 3635: 0xBE2F, - 3636: 0xBE30, - 3637: 0xBE31, - 3638: 0xBE32, - 3639: 0xBE33, - 3640: 0xBE34, - 3641: 0xBE35, - 3642: 0xBE36, - 3643: 0xBE37, - 3644: 0xBE38, - 3645: 0xBE39, - 3646: 0xBE3A, - 3647: 0xBE3B, - 3648: 0xBE3C, - 3649: 0xBE3D, - 3650: 0xBE3E, - 3651: 0xBE3F, - 3652: 0xBE40, - 3653: 0xBE41, - 3654: 0xBE42, - 3655: 0xBE43, - 3656: 0xBE46, - 3657: 0xBE47, - 3658: 0xBE49, - 3659: 0xBE4A, - 3660: 0xBE4B, - 3661: 0xBE4D, - 3662: 0xBE4F, - 3663: 0xBE50, - 3664: 0xBE51, - 3665: 0xBE52, - 3666: 0xBE53, - 3667: 0xBE56, - 3668: 0xBE58, - 3669: 0xBE5C, - 3670: 0xBE5D, - 3671: 0xBE5E, - 3672: 0xBE5F, - 3673: 0xBE62, - 3674: 0xBE63, - 3675: 0xBE65, - 3676: 0xBE66, - 3677: 0xBE67, - 3678: 0xBE69, - 3679: 0xBE6B, - 3680: 0xBE6C, - 3681: 0xBE6D, - 3682: 0xBE6E, - 3683: 0xBE6F, - 3684: 0xBE72, - 3685: 0xBE76, - 3686: 0xBE77, - 3687: 0xBE78, - 3688: 0xBE79, - 3689: 0xBE7A, - 3690: 0xBE7E, - 3691: 0xBE7F, - 3692: 0xBE81, - 3693: 0xBE82, - 3694: 0xBE83, - 3695: 0xBE85, - 3696: 0xBE86, - 3697: 0xBE87, - 3698: 0xBE88, - 3699: 0xBE89, - 3700: 0xBE8A, - 3701: 0xBE8B, - 3702: 0xBE8E, - 3703: 0xBE92, - 3704: 0xBE93, - 3705: 0xBE94, - 3706: 0xBE95, - 3707: 0xBE96, - 3708: 0xBE97, - 3709: 0xBE9A, - 3710: 0xBE9B, - 3711: 0xBE9C, - 3712: 0xBE9D, - 3713: 0xBE9E, - 3714: 0xBE9F, - 3715: 0xBEA0, - 3716: 0xBEA1, - 3717: 0xBEA2, - 3718: 0xBEA3, - 3719: 0xBEA4, - 3720: 0xBEA5, - 3721: 0xBEA6, - 3722: 0xBEA7, - 3723: 0xBEA9, - 3724: 0xBEAA, - 3725: 0xBEAB, - 3726: 0xBEAC, - 3727: 0xBEAD, - 3728: 0xBEAE, - 3729: 0xBEAF, - 3730: 0xBEB0, - 3731: 0xBEB1, - 3732: 0xBEB2, - 3733: 0xBEB3, - 3734: 0xBEB4, - 3735: 0xBEB5, - 3736: 0xBEB6, - 3737: 0xBEB7, - 3738: 0xBEB8, - 3739: 0xBEB9, - 3740: 0xBEBA, - 3741: 0xBEBB, - 3742: 0xBEBC, - 3743: 0xBEBD, - 3744: 0xBEBE, - 3745: 0xBEBF, - 3746: 0xBEC0, - 3747: 0xBEC1, - 3748: 0xBEC2, - 3749: 0xBEC3, - 3750: 0xBEC4, - 3751: 0xBEC5, - 3752: 0xBEC6, - 3753: 0xBEC7, - 3754: 0xBEC8, - 3755: 0xBEC9, - 3756: 0xBECA, - 3757: 0xBECB, - 3758: 0xBECC, - 3759: 0xBECD, - 3760: 0xBECE, - 3761: 0xBECF, - 3762: 0xBED2, - 3763: 0xBED3, - 3764: 0xBED5, - 3765: 0xBED6, - 3766: 0xBED9, - 3767: 0xBEDA, - 3768: 0xBEDB, - 3769: 0xBEDC, - 3770: 0xBEDD, - 3771: 0xBEDE, - 3772: 0xBEDF, - 3773: 0xBEE1, - 3774: 0xBEE2, - 3775: 0xBEE6, - 3776: 0xBEE7, - 3777: 0xBEE8, - 3778: 0xBEE9, - 3779: 0xBEEA, - 3780: 0xBEEB, - 3781: 0xBEED, - 3782: 0xBEEE, - 3783: 0xBEEF, - 3784: 0xBEF0, - 3785: 0xBEF1, - 3786: 0xBEF2, - 3787: 0xBEF3, - 3788: 0xBEF4, - 3789: 0xBEF5, - 3790: 0xBEF6, - 3791: 0xBEF7, - 3792: 0xBEF8, - 3793: 0xBEF9, - 3794: 0xBEFA, - 3795: 0xBEFB, - 3796: 0xBEFC, - 3797: 0xBEFD, - 3798: 0xBEFE, - 3799: 0xBEFF, - 3800: 0xBF00, - 3801: 0xBF02, - 3802: 0xBF03, - 3803: 0xBF04, - 3804: 0xBF05, - 3805: 0xBF06, - 3806: 0xBF07, - 3807: 0xBF0A, - 3808: 0xBF0B, - 3809: 0xBF0C, - 3810: 0xBF0D, - 3811: 0xBF0E, - 3812: 0xBF0F, - 3813: 0xBF10, - 3814: 0xBF11, - 3815: 0xBF12, - 3816: 0xBF13, - 3817: 0xBF14, - 3818: 0xBF15, - 3819: 0xBF16, - 3820: 0xBF17, - 3821: 0xBF1A, - 3822: 0xBF1E, - 3823: 0xBF1F, - 3824: 0xBF20, - 3825: 0xBF21, - 3826: 0xBF22, - 3827: 0xBF23, - 3828: 0xBF24, - 3829: 0xBF25, - 3830: 0xBF26, - 3831: 0xBF27, - 3832: 0xBF28, - 3833: 0xBF29, - 3834: 0xBF2A, - 3835: 0xBF2B, - 3836: 0xBF2C, - 3837: 0xBF2D, - 3838: 0xBF2E, - 3839: 0xBF2F, - 3840: 0xBF30, - 3841: 0xBF31, - 3842: 0xBF32, - 3843: 0xBF33, - 3844: 0xBF34, - 3845: 0xBF35, - 3846: 0xBF36, - 3847: 0xBF37, - 3848: 0xBF38, - 3849: 0xBF39, - 3850: 0xBF3A, - 3851: 0xBF3B, - 3852: 0xBF3C, - 3853: 0xBF3D, - 3854: 0xBF3E, - 3855: 0xBF3F, - 3856: 0xBF42, - 3857: 0xBF43, - 3858: 0xBF45, - 3859: 0xBF46, - 3860: 0xBF47, - 3861: 0xBF49, - 3862: 0xBF4A, - 3863: 0xBF4B, - 3864: 0xBF4C, - 3865: 0xBF4D, - 3866: 0xBF4E, - 3867: 0xBF4F, - 3868: 0xBF52, - 3869: 0xBF53, - 3870: 0xBF54, - 3871: 0xBF56, - 3872: 0xBF57, - 3873: 0xBF58, - 3874: 0xBF59, - 3875: 0xBF5A, - 3876: 0xBF5B, - 3877: 0xBF5C, - 3878: 0xBF5D, - 3879: 0xBF5E, - 3880: 0xBF5F, - 3881: 0xBF60, - 3882: 0xBF61, - 3883: 0xBF62, - 3884: 0xBF63, - 3885: 0xBF64, - 3886: 0xBF65, - 3887: 0xBF66, - 3888: 0xBF67, - 3889: 0xBF68, - 3890: 0xBF69, - 3891: 0xBF6A, - 3892: 0xBF6B, - 3893: 0xBF6C, - 3894: 0xBF6D, - 3895: 0xBF6E, - 3896: 0xBF6F, - 3897: 0xBF70, - 3898: 0xBF71, - 3899: 0xBF72, - 3900: 0xBF73, - 3901: 0xBF74, - 3902: 0xBF75, - 3903: 0xBF76, - 3904: 0xBF77, - 3905: 0xBF78, - 3906: 0xBF79, - 3907: 0xBF7A, - 3908: 0xBF7B, - 3909: 0xBF7C, - 3910: 0xBF7D, - 3911: 0xBF7E, - 3912: 0xBF7F, - 3913: 0xBF80, - 3914: 0xBF81, - 3915: 0xBF82, - 3916: 0xBF83, - 3917: 0xBF84, - 3918: 0xBF85, - 3919: 0xBF86, - 3920: 0xBF87, - 3921: 0xBF88, - 3922: 0xBF89, - 3923: 0xBF8A, - 3924: 0xBF8B, - 3925: 0xBF8C, - 3926: 0xBF8D, - 3927: 0xBF8E, - 3928: 0xBF8F, - 3929: 0xBF90, - 3930: 0xBF91, - 3931: 0xBF92, - 3932: 0xBF93, - 3933: 0xBF95, - 3934: 0xBF96, - 3935: 0xBF97, - 3936: 0xBF98, - 3937: 0xBF99, - 3938: 0xBF9A, - 3939: 0xBF9B, - 3940: 0xBF9C, - 3941: 0xBF9D, - 3942: 0xBF9E, - 3943: 0xBF9F, - 3944: 0xBFA0, - 3945: 0xBFA1, - 3946: 0xBFA2, - 3947: 0xBFA3, - 3948: 0xBFA4, - 3949: 0xBFA5, - 3950: 0xBFA6, - 3951: 0xBFA7, - 3952: 0xBFA8, - 3953: 0xBFA9, - 3954: 0xBFAA, - 3955: 0xBFAB, - 3956: 0xBFAC, - 3957: 0xBFAD, - 3958: 0xBFAE, - 3959: 0xBFAF, - 3960: 0xBFB1, - 3961: 0xBFB2, - 3962: 0xBFB3, - 3963: 0xBFB4, - 3964: 0xBFB5, - 3965: 0xBFB6, - 3966: 0xBFB7, - 3967: 0xBFB8, - 3968: 0xBFB9, - 3969: 0xBFBA, - 3970: 0xBFBB, - 3971: 0xBFBC, - 3972: 0xBFBD, - 3973: 0xBFBE, - 3974: 0xBFBF, - 3975: 0xBFC0, - 3976: 0xBFC1, - 3977: 0xBFC2, - 3978: 0xBFC3, - 3979: 0xBFC4, - 3980: 0xBFC6, - 3981: 0xBFC7, - 3982: 0xBFC8, - 3983: 0xBFC9, - 3984: 0xBFCA, - 3985: 0xBFCB, - 3986: 0xBFCE, - 3987: 0xBFCF, - 3988: 0xBFD1, - 3989: 0xBFD2, - 3990: 0xBFD3, - 3991: 0xBFD5, - 3992: 0xBFD6, - 3993: 0xBFD7, - 3994: 0xBFD8, - 3995: 0xBFD9, - 3996: 0xBFDA, - 3997: 0xBFDB, - 3998: 0xBFDD, - 3999: 0xBFDE, - 4000: 0xBFE0, - 4001: 0xBFE2, - 4002: 0xBFE3, - 4003: 0xBFE4, - 4004: 0xBFE5, - 4005: 0xBFE6, - 4006: 0xBFE7, - 4007: 0xBFE8, - 4008: 0xBFE9, - 4009: 0xBFEA, - 4010: 0xBFEB, - 4011: 0xBFEC, - 4012: 0xBFED, - 4013: 0xBFEE, - 4014: 0xBFEF, - 4015: 0xBFF0, - 4016: 0xBFF1, - 4017: 0xBFF2, - 4018: 0xBFF3, - 4019: 0xBFF4, - 4020: 0xBFF5, - 4021: 0xBFF6, - 4022: 0xBFF7, - 4023: 0xBFF8, - 4024: 0xBFF9, - 4025: 0xBFFA, - 4026: 0xBFFB, - 4027: 0xBFFC, - 4028: 0xBFFD, - 4029: 0xBFFE, - 4030: 0xBFFF, - 4031: 0xC000, - 4032: 0xC001, - 4033: 0xC002, - 4034: 0xC003, - 4035: 0xC004, - 4036: 0xC005, - 4037: 0xC006, - 4038: 0xC007, - 4039: 0xC008, - 4040: 0xC009, - 4041: 0xC00A, - 4042: 0xC00B, - 4043: 0xC00C, - 4044: 0xC00D, - 4045: 0xC00E, - 4046: 0xC00F, - 4047: 0xC010, - 4048: 0xC011, - 4049: 0xC012, - 4050: 0xC013, - 4051: 0xC014, - 4052: 0xC015, - 4053: 0xC016, - 4054: 0xC017, - 4055: 0xC018, - 4056: 0xC019, - 4057: 0xC01A, - 4058: 0xC01B, - 4059: 0xC01C, - 4060: 0xC01D, - 4061: 0xC01E, - 4062: 0xC01F, - 4063: 0xC020, - 4064: 0xC021, - 4065: 0xC022, - 4066: 0xC023, - 4067: 0xC024, - 4068: 0xC025, - 4069: 0xC026, - 4070: 0xC027, - 4071: 0xC028, - 4072: 0xC029, - 4073: 0xC02A, - 4074: 0xC02B, - 4075: 0xC02C, - 4076: 0xC02D, - 4077: 0xC02E, - 4078: 0xC02F, - 4079: 0xC030, - 4080: 0xC031, - 4081: 0xC032, - 4082: 0xC033, - 4083: 0xC034, - 4084: 0xC035, - 4085: 0xC036, - 4086: 0xC037, - 4087: 0xC038, - 4088: 0xC039, - 4089: 0xC03A, - 4090: 0xC03B, - 4091: 0xC03D, - 4092: 0xC03E, - 4093: 0xC03F, - 4094: 0xC040, - 4095: 0xC041, - 4096: 0xC042, - 4097: 0xC043, - 4098: 0xC044, - 4099: 0xC045, - 4100: 0xC046, - 4101: 0xC047, - 4102: 0xC048, - 4103: 0xC049, - 4104: 0xC04A, - 4105: 0xC04B, - 4106: 0xC04C, - 4107: 0xC04D, - 4108: 0xC04E, - 4109: 0xC04F, - 4110: 0xC050, - 4111: 0xC052, - 4112: 0xC053, - 4113: 0xC054, - 4114: 0xC055, - 4115: 0xC056, - 4116: 0xC057, - 4117: 0xC059, - 4118: 0xC05A, - 4119: 0xC05B, - 4120: 0xC05D, - 4121: 0xC05E, - 4122: 0xC05F, - 4123: 0xC061, - 4124: 0xC062, - 4125: 0xC063, - 4126: 0xC064, - 4127: 0xC065, - 4128: 0xC066, - 4129: 0xC067, - 4130: 0xC06A, - 4131: 0xC06B, - 4132: 0xC06C, - 4133: 0xC06D, - 4134: 0xC06E, - 4135: 0xC06F, - 4136: 0xC070, - 4137: 0xC071, - 4138: 0xC072, - 4139: 0xC073, - 4140: 0xC074, - 4141: 0xC075, - 4142: 0xC076, - 4143: 0xC077, - 4144: 0xC078, - 4145: 0xC079, - 4146: 0xC07A, - 4147: 0xC07B, - 4148: 0xC07C, - 4149: 0xC07D, - 4150: 0xC07E, - 4151: 0xC07F, - 4152: 0xC080, - 4153: 0xC081, - 4154: 0xC082, - 4155: 0xC083, - 4156: 0xC084, - 4157: 0xC085, - 4158: 0xC086, - 4159: 0xC087, - 4160: 0xC088, - 4161: 0xC089, - 4162: 0xC08A, - 4163: 0xC08B, - 4164: 0xC08C, - 4165: 0xC08D, - 4166: 0xC08E, - 4167: 0xC08F, - 4168: 0xC092, - 4169: 0xC093, - 4170: 0xC095, - 4171: 0xC096, - 4172: 0xC097, - 4173: 0xC099, - 4174: 0xC09A, - 4175: 0xC09B, - 4176: 0xC09C, - 4177: 0xC09D, - 4178: 0xC09E, - 4179: 0xC09F, - 4180: 0xC0A2, - 4181: 0xC0A4, - 4182: 0xC0A6, - 4183: 0xC0A7, - 4184: 0xC0A8, - 4185: 0xC0A9, - 4186: 0xC0AA, - 4187: 0xC0AB, - 4188: 0xC0AE, - 4189: 0xC0B1, - 4190: 0xC0B2, - 4191: 0xC0B7, - 4192: 0xC0B8, - 4193: 0xC0B9, - 4194: 0xC0BA, - 4195: 0xC0BB, - 4196: 0xC0BE, - 4197: 0xC0C2, - 4198: 0xC0C3, - 4199: 0xC0C4, - 4200: 0xC0C6, - 4201: 0xC0C7, - 4202: 0xC0CA, - 4203: 0xC0CB, - 4204: 0xC0CD, - 4205: 0xC0CE, - 4206: 0xC0CF, - 4207: 0xC0D1, - 4208: 0xC0D2, - 4209: 0xC0D3, - 4210: 0xC0D4, - 4211: 0xC0D5, - 4212: 0xC0D6, - 4213: 0xC0D7, - 4214: 0xC0DA, - 4215: 0xC0DE, - 4216: 0xC0DF, - 4217: 0xC0E0, - 4218: 0xC0E1, - 4219: 0xC0E2, - 4220: 0xC0E3, - 4221: 0xC0E6, - 4222: 0xC0E7, - 4223: 0xC0E9, - 4224: 0xC0EA, - 4225: 0xC0EB, - 4226: 0xC0ED, - 4227: 0xC0EE, - 4228: 0xC0EF, - 4229: 0xC0F0, - 4230: 0xC0F1, - 4231: 0xC0F2, - 4232: 0xC0F3, - 4233: 0xC0F6, - 4234: 0xC0F8, - 4235: 0xC0FA, - 4236: 0xC0FB, - 4237: 0xC0FC, - 4238: 0xC0FD, - 4239: 0xC0FE, - 4240: 0xC0FF, - 4241: 0xC101, - 4242: 0xC102, - 4243: 0xC103, - 4244: 0xC105, - 4245: 0xC106, - 4246: 0xC107, - 4247: 0xC109, - 4248: 0xC10A, - 4249: 0xC10B, - 4250: 0xC10C, - 4251: 0xC10D, - 4252: 0xC10E, - 4253: 0xC10F, - 4254: 0xC111, - 4255: 0xC112, - 4256: 0xC113, - 4257: 0xC114, - 4258: 0xC116, - 4259: 0xC117, - 4260: 0xC118, - 4261: 0xC119, - 4262: 0xC11A, - 4263: 0xC11B, - 4264: 0xC121, - 4265: 0xC122, - 4266: 0xC125, - 4267: 0xC128, - 4268: 0xC129, - 4269: 0xC12A, - 4270: 0xC12B, - 4271: 0xC12E, - 4272: 0xC132, - 4273: 0xC133, - 4274: 0xC134, - 4275: 0xC135, - 4276: 0xC137, - 4277: 0xC13A, - 4278: 0xC13B, - 4279: 0xC13D, - 4280: 0xC13E, - 4281: 0xC13F, - 4282: 0xC141, - 4283: 0xC142, - 4284: 0xC143, - 4285: 0xC144, - 4286: 0xC145, - 4287: 0xC146, - 4288: 0xC147, - 4289: 0xC14A, - 4290: 0xC14E, - 4291: 0xC14F, - 4292: 0xC150, - 4293: 0xC151, - 4294: 0xC152, - 4295: 0xC153, - 4296: 0xC156, - 4297: 0xC157, - 4298: 0xC159, - 4299: 0xC15A, - 4300: 0xC15B, - 4301: 0xC15D, - 4302: 0xC15E, - 4303: 0xC15F, - 4304: 0xC160, - 4305: 0xC161, - 4306: 0xC162, - 4307: 0xC163, - 4308: 0xC166, - 4309: 0xC16A, - 4310: 0xC16B, - 4311: 0xC16C, - 4312: 0xC16D, - 4313: 0xC16E, - 4314: 0xC16F, - 4315: 0xC171, - 4316: 0xC172, - 4317: 0xC173, - 4318: 0xC175, - 4319: 0xC176, - 4320: 0xC177, - 4321: 0xC179, - 4322: 0xC17A, - 4323: 0xC17B, - 4324: 0xC17C, - 4325: 0xC17D, - 4326: 0xC17E, - 4327: 0xC17F, - 4328: 0xC180, - 4329: 0xC181, - 4330: 0xC182, - 4331: 0xC183, - 4332: 0xC184, - 4333: 0xC186, - 4334: 0xC187, - 4335: 0xC188, - 4336: 0xC189, - 4337: 0xC18A, - 4338: 0xC18B, - 4339: 0xC18F, - 4340: 0xC191, - 4341: 0xC192, - 4342: 0xC193, - 4343: 0xC195, - 4344: 0xC197, - 4345: 0xC198, - 4346: 0xC199, - 4347: 0xC19A, - 4348: 0xC19B, - 4349: 0xC19E, - 4350: 0xC1A0, - 4351: 0xC1A2, - 4352: 0xC1A3, - 4353: 0xC1A4, - 4354: 0xC1A6, - 4355: 0xC1A7, - 4356: 0xC1AA, - 4357: 0xC1AB, - 4358: 0xC1AD, - 4359: 0xC1AE, - 4360: 0xC1AF, - 4361: 0xC1B1, - 4362: 0xC1B2, - 4363: 0xC1B3, - 4364: 0xC1B4, - 4365: 0xC1B5, - 4366: 0xC1B6, - 4367: 0xC1B7, - 4368: 0xC1B8, - 4369: 0xC1B9, - 4370: 0xC1BA, - 4371: 0xC1BB, - 4372: 0xC1BC, - 4373: 0xC1BE, - 4374: 0xC1BF, - 4375: 0xC1C0, - 4376: 0xC1C1, - 4377: 0xC1C2, - 4378: 0xC1C3, - 4379: 0xC1C5, - 4380: 0xC1C6, - 4381: 0xC1C7, - 4382: 0xC1C9, - 4383: 0xC1CA, - 4384: 0xC1CB, - 4385: 0xC1CD, - 4386: 0xC1CE, - 4387: 0xC1CF, - 4388: 0xC1D0, - 4389: 0xC1D1, - 4390: 0xC1D2, - 4391: 0xC1D3, - 4392: 0xC1D5, - 4393: 0xC1D6, - 4394: 0xC1D9, - 4395: 0xC1DA, - 4396: 0xC1DB, - 4397: 0xC1DC, - 4398: 0xC1DD, - 4399: 0xC1DE, - 4400: 0xC1DF, - 4401: 0xC1E1, - 4402: 0xC1E2, - 4403: 0xC1E3, - 4404: 0xC1E5, - 4405: 0xC1E6, - 4406: 0xC1E7, - 4407: 0xC1E9, - 4408: 0xC1EA, - 4409: 0xC1EB, - 4410: 0xC1EC, - 4411: 0xC1ED, - 4412: 0xC1EE, - 4413: 0xC1EF, - 4414: 0xC1F2, - 4415: 0xC1F4, - 4416: 0xC1F5, - 4417: 0xC1F6, - 4418: 0xC1F7, - 4419: 0xC1F8, - 4420: 0xC1F9, - 4421: 0xC1FA, - 4422: 0xC1FB, - 4423: 0xC1FE, - 4424: 0xC1FF, - 4425: 0xC201, - 4426: 0xC202, - 4427: 0xC203, - 4428: 0xC205, - 4429: 0xC206, - 4430: 0xC207, - 4431: 0xC208, - 4432: 0xC209, - 4433: 0xC20A, - 4434: 0xC20B, - 4435: 0xC20E, - 4436: 0xC210, - 4437: 0xC212, - 4438: 0xC213, - 4439: 0xC214, - 4440: 0xC215, - 4441: 0xC216, - 4442: 0xC217, - 4443: 0xC21A, - 4444: 0xC21B, - 4445: 0xC21D, - 4446: 0xC21E, - 4447: 0xC221, - 4448: 0xC222, - 4449: 0xC223, - 4450: 0xC224, - 4451: 0xC225, - 4452: 0xC226, - 4453: 0xC227, - 4454: 0xC22A, - 4455: 0xC22C, - 4456: 0xC22E, - 4457: 0xC230, - 4458: 0xC233, - 4459: 0xC235, - 4460: 0xC236, - 4461: 0xC237, - 4462: 0xC238, - 4463: 0xC239, - 4464: 0xC23A, - 4465: 0xC23B, - 4466: 0xC23C, - 4467: 0xC23D, - 4468: 0xC23E, - 4469: 0xC23F, - 4470: 0xC240, - 4471: 0xC241, - 4472: 0xC242, - 4473: 0xC243, - 4474: 0xC244, - 4475: 0xC245, - 4476: 0xC246, - 4477: 0xC247, - 4478: 0xC249, - 4479: 0xC24A, - 4480: 0xC24B, - 4481: 0xC24C, - 4482: 0xC24D, - 4483: 0xC24E, - 4484: 0xC24F, - 4485: 0xC252, - 4486: 0xC253, - 4487: 0xC255, - 4488: 0xC256, - 4489: 0xC257, - 4490: 0xC259, - 4491: 0xC25A, - 4492: 0xC25B, - 4493: 0xC25C, - 4494: 0xC25D, - 4495: 0xC25E, - 4496: 0xC25F, - 4497: 0xC261, - 4498: 0xC262, - 4499: 0xC263, - 4500: 0xC264, - 4501: 0xC266, - 4502: 0xC267, - 4503: 0xC268, - 4504: 0xC269, - 4505: 0xC26A, - 4506: 0xC26B, - 4507: 0xC26E, - 4508: 0xC26F, - 4509: 0xC271, - 4510: 0xC272, - 4511: 0xC273, - 4512: 0xC275, - 4513: 0xC276, - 4514: 0xC277, - 4515: 0xC278, - 4516: 0xC279, - 4517: 0xC27A, - 4518: 0xC27B, - 4519: 0xC27E, - 4520: 0xC280, - 4521: 0xC282, - 4522: 0xC283, - 4523: 0xC284, - 4524: 0xC285, - 4525: 0xC286, - 4526: 0xC287, - 4527: 0xC28A, - 4528: 0xC28B, - 4529: 0xC28C, - 4530: 0xC28D, - 4531: 0xC28E, - 4532: 0xC28F, - 4533: 0xC291, - 4534: 0xC292, - 4535: 0xC293, - 4536: 0xC294, - 4537: 0xC295, - 4538: 0xC296, - 4539: 0xC297, - 4540: 0xC299, - 4541: 0xC29A, - 4542: 0xC29C, - 4543: 0xC29E, - 4544: 0xC29F, - 4545: 0xC2A0, - 4546: 0xC2A1, - 4547: 0xC2A2, - 4548: 0xC2A3, - 4549: 0xC2A6, - 4550: 0xC2A7, - 4551: 0xC2A9, - 4552: 0xC2AA, - 4553: 0xC2AB, - 4554: 0xC2AE, - 4555: 0xC2AF, - 4556: 0xC2B0, - 4557: 0xC2B1, - 4558: 0xC2B2, - 4559: 0xC2B3, - 4560: 0xC2B6, - 4561: 0xC2B8, - 4562: 0xC2BA, - 4563: 0xC2BB, - 4564: 0xC2BC, - 4565: 0xC2BD, - 4566: 0xC2BE, - 4567: 0xC2BF, - 4568: 0xC2C0, - 4569: 0xC2C1, - 4570: 0xC2C2, - 4571: 0xC2C3, - 4572: 0xC2C4, - 4573: 0xC2C5, - 4574: 0xC2C6, - 4575: 0xC2C7, - 4576: 0xC2C8, - 4577: 0xC2C9, - 4578: 0xC2CA, - 4579: 0xC2CB, - 4580: 0xC2CC, - 4581: 0xC2CD, - 4582: 0xC2CE, - 4583: 0xC2CF, - 4584: 0xC2D0, - 4585: 0xC2D1, - 4586: 0xC2D2, - 4587: 0xC2D3, - 4588: 0xC2D4, - 4589: 0xC2D5, - 4590: 0xC2D6, - 4591: 0xC2D7, - 4592: 0xC2D8, - 4593: 0xC2D9, - 4594: 0xC2DA, - 4595: 0xC2DB, - 4596: 0xC2DE, - 4597: 0xC2DF, - 4598: 0xC2E1, - 4599: 0xC2E2, - 4600: 0xC2E5, - 4601: 0xC2E6, - 4602: 0xC2E7, - 4603: 0xC2E8, - 4604: 0xC2E9, - 4605: 0xC2EA, - 4606: 0xC2EE, - 4607: 0xC2F0, - 4608: 0xC2F2, - 4609: 0xC2F3, - 4610: 0xC2F4, - 4611: 0xC2F5, - 4612: 0xC2F7, - 4613: 0xC2FA, - 4614: 0xC2FD, - 4615: 0xC2FE, - 4616: 0xC2FF, - 4617: 0xC301, - 4618: 0xC302, - 4619: 0xC303, - 4620: 0xC304, - 4621: 0xC305, - 4622: 0xC306, - 4623: 0xC307, - 4624: 0xC30A, - 4625: 0xC30B, - 4626: 0xC30E, - 4627: 0xC30F, - 4628: 0xC310, - 4629: 0xC311, - 4630: 0xC312, - 4631: 0xC316, - 4632: 0xC317, - 4633: 0xC319, - 4634: 0xC31A, - 4635: 0xC31B, - 4636: 0xC31D, - 4637: 0xC31E, - 4638: 0xC31F, - 4639: 0xC320, - 4640: 0xC321, - 4641: 0xC322, - 4642: 0xC323, - 4643: 0xC326, - 4644: 0xC327, - 4645: 0xC32A, - 4646: 0xC32B, - 4647: 0xC32C, - 4648: 0xC32D, - 4649: 0xC32E, - 4650: 0xC32F, - 4651: 0xC330, - 4652: 0xC331, - 4653: 0xC332, - 4654: 0xC333, - 4655: 0xC334, - 4656: 0xC335, - 4657: 0xC336, - 4658: 0xC337, - 4659: 0xC338, - 4660: 0xC339, - 4661: 0xC33A, - 4662: 0xC33B, - 4663: 0xC33C, - 4664: 0xC33D, - 4665: 0xC33E, - 4666: 0xC33F, - 4667: 0xC340, - 4668: 0xC341, - 4669: 0xC342, - 4670: 0xC343, - 4671: 0xC344, - 4672: 0xC346, - 4673: 0xC347, - 4674: 0xC348, - 4675: 0xC349, - 4676: 0xC34A, - 4677: 0xC34B, - 4678: 0xC34C, - 4679: 0xC34D, - 4680: 0xC34E, - 4681: 0xC34F, - 4682: 0xC350, - 4683: 0xC351, - 4684: 0xC352, - 4685: 0xC353, - 4686: 0xC354, - 4687: 0xC355, - 4688: 0xC356, - 4689: 0xC357, - 4690: 0xC358, - 4691: 0xC359, - 4692: 0xC35A, - 4693: 0xC35B, - 4694: 0xC35C, - 4695: 0xC35D, - 4696: 0xC35E, - 4697: 0xC35F, - 4698: 0xC360, - 4699: 0xC361, - 4700: 0xC362, - 4701: 0xC363, - 4702: 0xC364, - 4703: 0xC365, - 4704: 0xC366, - 4705: 0xC367, - 4706: 0xC36A, - 4707: 0xC36B, - 4708: 0xC36D, - 4709: 0xC36E, - 4710: 0xC36F, - 4711: 0xC371, - 4712: 0xC373, - 4713: 0xC374, - 4714: 0xC375, - 4715: 0xC376, - 4716: 0xC377, - 4717: 0xC37A, - 4718: 0xC37B, - 4719: 0xC37E, - 4720: 0xC37F, - 4721: 0xC380, - 4722: 0xC381, - 4723: 0xC382, - 4724: 0xC383, - 4725: 0xC385, - 4726: 0xC386, - 4727: 0xC387, - 4728: 0xC389, - 4729: 0xC38A, - 4730: 0xC38B, - 4731: 0xC38D, - 4732: 0xC38E, - 4733: 0xC38F, - 4734: 0xC390, - 4735: 0xC391, - 4736: 0xC392, - 4737: 0xC393, - 4738: 0xC394, - 4739: 0xC395, - 4740: 0xC396, - 4741: 0xC397, - 4742: 0xC398, - 4743: 0xC399, - 4744: 0xC39A, - 4745: 0xC39B, - 4746: 0xC39C, - 4747: 0xC39D, - 4748: 0xC39E, - 4749: 0xC39F, - 4750: 0xC3A0, - 4751: 0xC3A1, - 4752: 0xC3A2, - 4753: 0xC3A3, - 4754: 0xC3A4, - 4755: 0xC3A5, - 4756: 0xC3A6, - 4757: 0xC3A7, - 4758: 0xC3A8, - 4759: 0xC3A9, - 4760: 0xC3AA, - 4761: 0xC3AB, - 4762: 0xC3AC, - 4763: 0xC3AD, - 4764: 0xC3AE, - 4765: 0xC3AF, - 4766: 0xC3B0, - 4767: 0xC3B1, - 4768: 0xC3B2, - 4769: 0xC3B3, - 4770: 0xC3B4, - 4771: 0xC3B5, - 4772: 0xC3B6, - 4773: 0xC3B7, - 4774: 0xC3B8, - 4775: 0xC3B9, - 4776: 0xC3BA, - 4777: 0xC3BB, - 4778: 0xC3BC, - 4779: 0xC3BD, - 4780: 0xC3BE, - 4781: 0xC3BF, - 4782: 0xC3C1, - 4783: 0xC3C2, - 4784: 0xC3C3, - 4785: 0xC3C4, - 4786: 0xC3C5, - 4787: 0xC3C6, - 4788: 0xC3C7, - 4789: 0xC3C8, - 4790: 0xC3C9, - 4791: 0xC3CA, - 4792: 0xC3CB, - 4793: 0xC3CC, - 4794: 0xC3CD, - 4795: 0xC3CE, - 4796: 0xC3CF, - 4797: 0xC3D0, - 4798: 0xC3D1, - 4799: 0xC3D2, - 4800: 0xC3D3, - 4801: 0xC3D4, - 4802: 0xC3D5, - 4803: 0xC3D6, - 4804: 0xC3D7, - 4805: 0xC3DA, - 4806: 0xC3DB, - 4807: 0xC3DD, - 4808: 0xC3DE, - 4809: 0xC3E1, - 4810: 0xC3E3, - 4811: 0xC3E4, - 4812: 0xC3E5, - 4813: 0xC3E6, - 4814: 0xC3E7, - 4815: 0xC3EA, - 4816: 0xC3EB, - 4817: 0xC3EC, - 4818: 0xC3EE, - 4819: 0xC3EF, - 4820: 0xC3F0, - 4821: 0xC3F1, - 4822: 0xC3F2, - 4823: 0xC3F3, - 4824: 0xC3F6, - 4825: 0xC3F7, - 4826: 0xC3F9, - 4827: 0xC3FA, - 4828: 0xC3FB, - 4829: 0xC3FC, - 4830: 0xC3FD, - 4831: 0xC3FE, - 4832: 0xC3FF, - 4833: 0xC400, - 4834: 0xC401, - 4835: 0xC402, - 4836: 0xC403, - 4837: 0xC404, - 4838: 0xC405, - 4839: 0xC406, - 4840: 0xC407, - 4841: 0xC409, - 4842: 0xC40A, - 4843: 0xC40B, - 4844: 0xC40C, - 4845: 0xC40D, - 4846: 0xC40E, - 4847: 0xC40F, - 4848: 0xC411, - 4849: 0xC412, - 4850: 0xC413, - 4851: 0xC414, - 4852: 0xC415, - 4853: 0xC416, - 4854: 0xC417, - 4855: 0xC418, - 4856: 0xC419, - 4857: 0xC41A, - 4858: 0xC41B, - 4859: 0xC41C, - 4860: 0xC41D, - 4861: 0xC41E, - 4862: 0xC41F, - 4863: 0xC420, - 4864: 0xC421, - 4865: 0xC422, - 4866: 0xC423, - 4867: 0xC425, - 4868: 0xC426, - 4869: 0xC427, - 4870: 0xC428, - 4871: 0xC429, - 4872: 0xC42A, - 4873: 0xC42B, - 4874: 0xC42D, - 4875: 0xC42E, - 4876: 0xC42F, - 4877: 0xC431, - 4878: 0xC432, - 4879: 0xC433, - 4880: 0xC435, - 4881: 0xC436, - 4882: 0xC437, - 4883: 0xC438, - 4884: 0xC439, - 4885: 0xC43A, - 4886: 0xC43B, - 4887: 0xC43E, - 4888: 0xC43F, - 4889: 0xC440, - 4890: 0xC441, - 4891: 0xC442, - 4892: 0xC443, - 4893: 0xC444, - 4894: 0xC445, - 4895: 0xC446, - 4896: 0xC447, - 4897: 0xC449, - 4898: 0xC44A, - 4899: 0xC44B, - 4900: 0xC44C, - 4901: 0xC44D, - 4902: 0xC44E, - 4903: 0xC44F, - 4904: 0xC450, - 4905: 0xC451, - 4906: 0xC452, - 4907: 0xC453, - 4908: 0xC454, - 4909: 0xC455, - 4910: 0xC456, - 4911: 0xC457, - 4912: 0xC458, - 4913: 0xC459, - 4914: 0xC45A, - 4915: 0xC45B, - 4916: 0xC45C, - 4917: 0xC45D, - 4918: 0xC45E, - 4919: 0xC45F, - 4920: 0xC460, - 4921: 0xC461, - 4922: 0xC462, - 4923: 0xC463, - 4924: 0xC466, - 4925: 0xC467, - 4926: 0xC469, - 4927: 0xC46A, - 4928: 0xC46B, - 4929: 0xC46D, - 4930: 0xC46E, - 4931: 0xC46F, - 4932: 0xC470, - 4933: 0xC471, - 4934: 0xC472, - 4935: 0xC473, - 4936: 0xC476, - 4937: 0xC477, - 4938: 0xC478, - 4939: 0xC47A, - 4940: 0xC47B, - 4941: 0xC47C, - 4942: 0xC47D, - 4943: 0xC47E, - 4944: 0xC47F, - 4945: 0xC481, - 4946: 0xC482, - 4947: 0xC483, - 4948: 0xC484, - 4949: 0xC485, - 4950: 0xC486, - 4951: 0xC487, - 4952: 0xC488, - 4953: 0xC489, - 4954: 0xC48A, - 4955: 0xC48B, - 4956: 0xC48C, - 4957: 0xC48D, - 4958: 0xC48E, - 4959: 0xC48F, - 4960: 0xC490, - 4961: 0xC491, - 4962: 0xC492, - 4963: 0xC493, - 4964: 0xC495, - 4965: 0xC496, - 4966: 0xC497, - 4967: 0xC498, - 4968: 0xC499, - 4969: 0xC49A, - 4970: 0xC49B, - 4971: 0xC49D, - 4972: 0xC49E, - 4973: 0xC49F, - 4974: 0xC4A0, - 4975: 0xC4A1, - 4976: 0xC4A2, - 4977: 0xC4A3, - 4978: 0xC4A4, - 4979: 0xC4A5, - 4980: 0xC4A6, - 4981: 0xC4A7, - 4982: 0xC4A8, - 4983: 0xC4A9, - 4984: 0xC4AA, - 4985: 0xC4AB, - 4986: 0xC4AC, - 4987: 0xC4AD, - 4988: 0xC4AE, - 4989: 0xC4AF, - 4990: 0xC4B0, - 4991: 0xC4B1, - 4992: 0xC4B2, - 4993: 0xC4B3, - 4994: 0xC4B4, - 4995: 0xC4B5, - 4996: 0xC4B6, - 4997: 0xC4B7, - 4998: 0xC4B9, - 4999: 0xC4BA, - 5000: 0xC4BB, - 5001: 0xC4BD, - 5002: 0xC4BE, - 5003: 0xC4BF, - 5004: 0xC4C0, - 5005: 0xC4C1, - 5006: 0xC4C2, - 5007: 0xC4C3, - 5008: 0xC4C4, - 5009: 0xC4C5, - 5010: 0xC4C6, - 5011: 0xC4C7, - 5012: 0xC4C8, - 5013: 0xC4C9, - 5014: 0xC4CA, - 5015: 0xC4CB, - 5016: 0xC4CC, - 5017: 0xC4CD, - 5018: 0xC4CE, - 5019: 0xC4CF, - 5020: 0xC4D0, - 5021: 0xC4D1, - 5022: 0xC4D2, - 5023: 0xC4D3, - 5024: 0xC4D4, - 5025: 0xC4D5, - 5026: 0xC4D6, - 5027: 0xC4D7, - 5028: 0xC4D8, - 5029: 0xC4D9, - 5030: 0xC4DA, - 5031: 0xC4DB, - 5032: 0xC4DC, - 5033: 0xC4DD, - 5034: 0xC4DE, - 5035: 0xC4DF, - 5036: 0xC4E0, - 5037: 0xC4E1, - 5038: 0xC4E2, - 5039: 0xC4E3, - 5040: 0xC4E4, - 5041: 0xC4E5, - 5042: 0xC4E6, - 5043: 0xC4E7, - 5044: 0xC4E8, - 5045: 0xC4EA, - 5046: 0xC4EB, - 5047: 0xC4EC, - 5048: 0xC4ED, - 5049: 0xC4EE, - 5050: 0xC4EF, - 5051: 0xC4F2, - 5052: 0xC4F3, - 5053: 0xC4F5, - 5054: 0xC4F6, - 5055: 0xC4F7, - 5056: 0xC4F9, - 5057: 0xC4FB, - 5058: 0xC4FC, - 5059: 0xC4FD, - 5060: 0xC4FE, - 5061: 0xC502, - 5062: 0xC503, - 5063: 0xC504, - 5064: 0xC505, - 5065: 0xC506, - 5066: 0xC507, - 5067: 0xC508, - 5068: 0xC509, - 5069: 0xC50A, - 5070: 0xC50B, - 5071: 0xC50D, - 5072: 0xC50E, - 5073: 0xC50F, - 5074: 0xC511, - 5075: 0xC512, - 5076: 0xC513, - 5077: 0xC515, - 5078: 0xC516, - 5079: 0xC517, - 5080: 0xC518, - 5081: 0xC519, - 5082: 0xC51A, - 5083: 0xC51B, - 5084: 0xC51D, - 5085: 0xC51E, - 5086: 0xC51F, - 5087: 0xC520, - 5088: 0xC521, - 5089: 0xC522, - 5090: 0xC523, - 5091: 0xC524, - 5092: 0xC525, - 5093: 0xC526, - 5094: 0xC527, - 5095: 0xC52A, - 5096: 0xC52B, - 5097: 0xC52D, - 5098: 0xC52E, - 5099: 0xC52F, - 5100: 0xC531, - 5101: 0xC532, - 5102: 0xC533, - 5103: 0xC534, - 5104: 0xC535, - 5105: 0xC536, - 5106: 0xC537, - 5107: 0xC53A, - 5108: 0xC53C, - 5109: 0xC53E, - 5110: 0xC53F, - 5111: 0xC540, - 5112: 0xC541, - 5113: 0xC542, - 5114: 0xC543, - 5115: 0xC546, - 5116: 0xC547, - 5117: 0xC54B, - 5118: 0xC54F, - 5119: 0xC550, - 5120: 0xC551, - 5121: 0xC552, - 5122: 0xC556, - 5123: 0xC55A, - 5124: 0xC55B, - 5125: 0xC55C, - 5126: 0xC55F, - 5127: 0xC562, - 5128: 0xC563, - 5129: 0xC565, - 5130: 0xC566, - 5131: 0xC567, - 5132: 0xC569, - 5133: 0xC56A, - 5134: 0xC56B, - 5135: 0xC56C, - 5136: 0xC56D, - 5137: 0xC56E, - 5138: 0xC56F, - 5139: 0xC572, - 5140: 0xC576, - 5141: 0xC577, - 5142: 0xC578, - 5143: 0xC579, - 5144: 0xC57A, - 5145: 0xC57B, - 5146: 0xC57E, - 5147: 0xC57F, - 5148: 0xC581, - 5149: 0xC582, - 5150: 0xC583, - 5151: 0xC585, - 5152: 0xC586, - 5153: 0xC588, - 5154: 0xC589, - 5155: 0xC58A, - 5156: 0xC58B, - 5157: 0xC58E, - 5158: 0xC590, - 5159: 0xC592, - 5160: 0xC593, - 5161: 0xC594, - 5162: 0xC596, - 5163: 0xC599, - 5164: 0xC59A, - 5165: 0xC59B, - 5166: 0xC59D, - 5167: 0xC59E, - 5168: 0xC59F, - 5169: 0xC5A1, - 5170: 0xC5A2, - 5171: 0xC5A3, - 5172: 0xC5A4, - 5173: 0xC5A5, - 5174: 0xC5A6, - 5175: 0xC5A7, - 5176: 0xC5A8, - 5177: 0xC5AA, - 5178: 0xC5AB, - 5179: 0xC5AC, - 5180: 0xC5AD, - 5181: 0xC5AE, - 5182: 0xC5AF, - 5183: 0xC5B0, - 5184: 0xC5B1, - 5185: 0xC5B2, - 5186: 0xC5B3, - 5187: 0xC5B6, - 5188: 0xC5B7, - 5189: 0xC5BA, - 5190: 0xC5BF, - 5191: 0xC5C0, - 5192: 0xC5C1, - 5193: 0xC5C2, - 5194: 0xC5C3, - 5195: 0xC5CB, - 5196: 0xC5CD, - 5197: 0xC5CF, - 5198: 0xC5D2, - 5199: 0xC5D3, - 5200: 0xC5D5, - 5201: 0xC5D6, - 5202: 0xC5D7, - 5203: 0xC5D9, - 5204: 0xC5DA, - 5205: 0xC5DB, - 5206: 0xC5DC, - 5207: 0xC5DD, - 5208: 0xC5DE, - 5209: 0xC5DF, - 5210: 0xC5E2, - 5211: 0xC5E4, - 5212: 0xC5E6, - 5213: 0xC5E7, - 5214: 0xC5E8, - 5215: 0xC5E9, - 5216: 0xC5EA, - 5217: 0xC5EB, - 5218: 0xC5EF, - 5219: 0xC5F1, - 5220: 0xC5F2, - 5221: 0xC5F3, - 5222: 0xC5F5, - 5223: 0xC5F8, - 5224: 0xC5F9, - 5225: 0xC5FA, - 5226: 0xC5FB, - 5227: 0xC602, - 5228: 0xC603, - 5229: 0xC604, - 5230: 0xC609, - 5231: 0xC60A, - 5232: 0xC60B, - 5233: 0xC60D, - 5234: 0xC60E, - 5235: 0xC60F, - 5236: 0xC611, - 5237: 0xC612, - 5238: 0xC613, - 5239: 0xC614, - 5240: 0xC615, - 5241: 0xC616, - 5242: 0xC617, - 5243: 0xC61A, - 5244: 0xC61D, - 5245: 0xC61E, - 5246: 0xC61F, - 5247: 0xC620, - 5248: 0xC621, - 5249: 0xC622, - 5250: 0xC623, - 5251: 0xC626, - 5252: 0xC627, - 5253: 0xC629, - 5254: 0xC62A, - 5255: 0xC62B, - 5256: 0xC62F, - 5257: 0xC631, - 5258: 0xC632, - 5259: 0xC636, - 5260: 0xC638, - 5261: 0xC63A, - 5262: 0xC63C, - 5263: 0xC63D, - 5264: 0xC63E, - 5265: 0xC63F, - 5266: 0xC642, - 5267: 0xC643, - 5268: 0xC645, - 5269: 0xC646, - 5270: 0xC647, - 5271: 0xC649, - 5272: 0xC64A, - 5273: 0xC64B, - 5274: 0xC64C, - 5275: 0xC64D, - 5276: 0xC64E, - 5277: 0xC64F, - 5278: 0xC652, - 5279: 0xC656, - 5280: 0xC657, - 5281: 0xC658, - 5282: 0xC659, - 5283: 0xC65A, - 5284: 0xC65B, - 5285: 0xC65E, - 5286: 0xC65F, - 5287: 0xC661, - 5288: 0xC662, - 5289: 0xC663, - 5290: 0xC664, - 5291: 0xC665, - 5292: 0xC666, - 5293: 0xC667, - 5294: 0xC668, - 5295: 0xC669, - 5296: 0xC66A, - 5297: 0xC66B, - 5298: 0xC66D, - 5299: 0xC66E, - 5300: 0xC670, - 5301: 0xC672, - 5302: 0xC673, - 5303: 0xC674, - 5304: 0xC675, - 5305: 0xC676, - 5306: 0xC677, - 5307: 0xC67A, - 5308: 0xC67B, - 5309: 0xC67D, - 5310: 0xC67E, - 5311: 0xC67F, - 5312: 0xC681, - 5313: 0xC682, - 5314: 0xC683, - 5315: 0xC684, - 5316: 0xC685, - 5317: 0xC686, - 5318: 0xC687, - 5319: 0xC68A, - 5320: 0xC68C, - 5321: 0xC68E, - 5322: 0xC68F, - 5323: 0xC690, - 5324: 0xC691, - 5325: 0xC692, - 5326: 0xC693, - 5327: 0xC696, - 5328: 0xC697, - 5329: 0xC699, - 5330: 0xC69A, - 5331: 0xC69B, - 5332: 0xC69D, - 5333: 0xC69E, - 5334: 0xC69F, - 5335: 0xC6A0, - 5336: 0xC6A1, - 5337: 0xC6A2, - 5338: 0xC6A3, - 5339: 0xC6A6, - 5340: 0xC6A8, - 5341: 0xC6AA, - 5342: 0xC6AB, - 5343: 0xC6AC, - 5344: 0xC6AD, - 5345: 0xC6AE, - 5346: 0xC6AF, - 5347: 0xC6B2, - 5348: 0xC6B3, - 5349: 0xC6B5, - 5350: 0xC6B6, - 5351: 0xC6B7, - 5352: 0xC6BB, - 5353: 0xC6BC, - 5354: 0xC6BD, - 5355: 0xC6BE, - 5356: 0xC6BF, - 5357: 0xC6C2, - 5358: 0xC6C4, - 5359: 0xC6C6, - 5360: 0xC6C7, - 5361: 0xC6C8, - 5362: 0xC6C9, - 5363: 0xC6CA, - 5364: 0xC6CB, - 5365: 0xC6CE, - 5366: 0xC6CF, - 5367: 0xC6D1, - 5368: 0xC6D2, - 5369: 0xC6D3, - 5370: 0xC6D5, - 5371: 0xC6D6, - 5372: 0xC6D7, - 5373: 0xC6D8, - 5374: 0xC6D9, - 5375: 0xC6DA, - 5376: 0xC6DB, - 5377: 0xC6DE, - 5378: 0xC6DF, - 5379: 0xC6E2, - 5380: 0xC6E3, - 5381: 0xC6E4, - 5382: 0xC6E5, - 5383: 0xC6E6, - 5384: 0xC6E7, - 5385: 0xC6EA, - 5386: 0xC6EB, - 5387: 0xC6ED, - 5388: 0xC6EE, - 5389: 0xC6EF, - 5390: 0xC6F1, - 5391: 0xC6F2, - 5392: 0xC6F3, - 5393: 0xC6F4, - 5394: 0xC6F5, - 5395: 0xC6F6, - 5396: 0xC6F7, - 5397: 0xC6FA, - 5398: 0xC6FB, - 5399: 0xC6FC, - 5400: 0xC6FE, - 5401: 0xC6FF, - 5402: 0xC700, - 5403: 0xC701, - 5404: 0xC702, - 5405: 0xC703, - 5406: 0xC706, - 5407: 0xC707, - 5408: 0xC709, - 5409: 0xC70A, - 5410: 0xC70B, - 5411: 0xC70D, - 5412: 0xC70E, - 5413: 0xC70F, - 5414: 0xC710, - 5415: 0xC711, - 5416: 0xC712, - 5417: 0xC713, - 5418: 0xC716, - 5419: 0xC718, - 5420: 0xC71A, - 5421: 0xC71B, - 5422: 0xC71C, - 5423: 0xC71D, - 5424: 0xC71E, - 5425: 0xC71F, - 5426: 0xC722, - 5427: 0xC723, - 5428: 0xC725, - 5429: 0xC726, - 5430: 0xC727, - 5431: 0xC729, - 5432: 0xC72A, - 5433: 0xC72B, - 5434: 0xC72C, - 5435: 0xC72D, - 5436: 0xC72E, - 5437: 0xC72F, - 5438: 0xC732, - 5439: 0xC734, - 5440: 0xC736, - 5441: 0xC738, - 5442: 0xC739, - 5443: 0xC73A, - 5444: 0xC73B, - 5445: 0xC73E, - 5446: 0xC73F, - 5447: 0xC741, - 5448: 0xC742, - 5449: 0xC743, - 5450: 0xC745, - 5451: 0xC746, - 5452: 0xC747, - 5453: 0xC748, - 5454: 0xC749, - 5455: 0xC74B, - 5456: 0xC74E, - 5457: 0xC750, - 5458: 0xC759, - 5459: 0xC75A, - 5460: 0xC75B, - 5461: 0xC75D, - 5462: 0xC75E, - 5463: 0xC75F, - 5464: 0xC761, - 5465: 0xC762, - 5466: 0xC763, - 5467: 0xC764, - 5468: 0xC765, - 5469: 0xC766, - 5470: 0xC767, - 5471: 0xC769, - 5472: 0xC76A, - 5473: 0xC76C, - 5474: 0xC76D, - 5475: 0xC76E, - 5476: 0xC76F, - 5477: 0xC770, - 5478: 0xC771, - 5479: 0xC772, - 5480: 0xC773, - 5481: 0xC776, - 5482: 0xC777, - 5483: 0xC779, - 5484: 0xC77A, - 5485: 0xC77B, - 5486: 0xC77F, - 5487: 0xC780, - 5488: 0xC781, - 5489: 0xC782, - 5490: 0xC786, - 5491: 0xC78B, - 5492: 0xC78C, - 5493: 0xC78D, - 5494: 0xC78F, - 5495: 0xC792, - 5496: 0xC793, - 5497: 0xC795, - 5498: 0xC799, - 5499: 0xC79B, - 5500: 0xC79C, - 5501: 0xC79D, - 5502: 0xC79E, - 5503: 0xC79F, - 5504: 0xC7A2, - 5505: 0xC7A7, - 5506: 0xC7A8, - 5507: 0xC7A9, - 5508: 0xC7AA, - 5509: 0xC7AB, - 5510: 0xC7AE, - 5511: 0xC7AF, - 5512: 0xC7B1, - 5513: 0xC7B2, - 5514: 0xC7B3, - 5515: 0xC7B5, - 5516: 0xC7B6, - 5517: 0xC7B7, - 5518: 0xC7B8, - 5519: 0xC7B9, - 5520: 0xC7BA, - 5521: 0xC7BB, - 5522: 0xC7BE, - 5523: 0xC7C2, - 5524: 0xC7C3, - 5525: 0xC7C4, - 5526: 0xC7C5, - 5527: 0xC7C6, - 5528: 0xC7C7, - 5529: 0xC7CA, - 5530: 0xC7CB, - 5531: 0xC7CD, - 5532: 0xC7CF, - 5533: 0xC7D1, - 5534: 0xC7D2, - 5535: 0xC7D3, - 5536: 0xC7D4, - 5537: 0xC7D5, - 5538: 0xC7D6, - 5539: 0xC7D7, - 5540: 0xC7D9, - 5541: 0xC7DA, - 5542: 0xC7DB, - 5543: 0xC7DC, - 5544: 0xC7DE, - 5545: 0xC7DF, - 5546: 0xC7E0, - 5547: 0xC7E1, - 5548: 0xC7E2, - 5549: 0xC7E3, - 5550: 0xC7E5, - 5551: 0xC7E6, - 5552: 0xC7E7, - 5553: 0xC7E9, - 5554: 0xC7EA, - 5555: 0xC7EB, - 5556: 0xC7ED, - 5557: 0xC7EE, - 5558: 0xC7EF, - 5559: 0xC7F0, - 5560: 0xC7F1, - 5561: 0xC7F2, - 5562: 0xC7F3, - 5563: 0xC7F4, - 5564: 0xC7F5, - 5565: 0xC7F6, - 5566: 0xC7F7, - 5567: 0xC7F8, - 5568: 0xC7F9, - 5569: 0xC7FA, - 5570: 0xC7FB, - 5571: 0xC7FC, - 5572: 0xC7FD, - 5573: 0xC7FE, - 5574: 0xC7FF, - 5575: 0xC802, - 5576: 0xC803, - 5577: 0xC805, - 5578: 0xC806, - 5579: 0xC807, - 5580: 0xC809, - 5581: 0xC80B, - 5582: 0xC80C, - 5583: 0xC80D, - 5584: 0xC80E, - 5585: 0xC80F, - 5586: 0xC812, - 5587: 0xC814, - 5588: 0xC817, - 5589: 0xC818, - 5590: 0xC819, - 5591: 0xC81A, - 5592: 0xC81B, - 5593: 0xC81E, - 5594: 0xC81F, - 5595: 0xC821, - 5596: 0xC822, - 5597: 0xC823, - 5598: 0xC825, - 5599: 0xC826, - 5600: 0xC827, - 5601: 0xC828, - 5602: 0xC829, - 5603: 0xC82A, - 5604: 0xC82B, - 5605: 0xC82E, - 5606: 0xC830, - 5607: 0xC832, - 5608: 0xC833, - 5609: 0xC834, - 5610: 0xC835, - 5611: 0xC836, - 5612: 0xC837, - 5613: 0xC839, - 5614: 0xC83A, - 5615: 0xC83B, - 5616: 0xC83D, - 5617: 0xC83E, - 5618: 0xC83F, - 5619: 0xC841, - 5620: 0xC842, - 5621: 0xC843, - 5622: 0xC844, - 5623: 0xC845, - 5624: 0xC846, - 5625: 0xC847, - 5626: 0xC84A, - 5627: 0xC84B, - 5628: 0xC84E, - 5629: 0xC84F, - 5630: 0xC850, - 5631: 0xC851, - 5632: 0xC852, - 5633: 0xC853, - 5634: 0xC855, - 5635: 0xC856, - 5636: 0xC857, - 5637: 0xC858, - 5638: 0xC859, - 5639: 0xC85A, - 5640: 0xC85B, - 5641: 0xC85C, - 5642: 0xC85D, - 5643: 0xC85E, - 5644: 0xC85F, - 5645: 0xC860, - 5646: 0xC861, - 5647: 0xC862, - 5648: 0xC863, - 5649: 0xC864, - 5650: 0xC865, - 5651: 0xC866, - 5652: 0xC867, - 5653: 0xC868, - 5654: 0xC869, - 5655: 0xC86A, - 5656: 0xC86B, - 5657: 0xC86C, - 5658: 0xC86D, - 5659: 0xC86E, - 5660: 0xC86F, - 5661: 0xC872, - 5662: 0xC873, - 5663: 0xC875, - 5664: 0xC876, - 5665: 0xC877, - 5666: 0xC879, - 5667: 0xC87B, - 5668: 0xC87C, - 5669: 0xC87D, - 5670: 0xC87E, - 5671: 0xC87F, - 5672: 0xC882, - 5673: 0xC884, - 5674: 0xC888, - 5675: 0xC889, - 5676: 0xC88A, - 5677: 0xC88E, - 5678: 0xC88F, - 5679: 0xC890, - 5680: 0xC891, - 5681: 0xC892, - 5682: 0xC893, - 5683: 0xC895, - 5684: 0xC896, - 5685: 0xC897, - 5686: 0xC898, - 5687: 0xC899, - 5688: 0xC89A, - 5689: 0xC89B, - 5690: 0xC89C, - 5691: 0xC89E, - 5692: 0xC8A0, - 5693: 0xC8A2, - 5694: 0xC8A3, - 5695: 0xC8A4, - 5696: 0xC8A5, - 5697: 0xC8A6, - 5698: 0xC8A7, - 5699: 0xC8A9, - 5700: 0xC8AA, - 5701: 0xC8AB, - 5702: 0xC8AC, - 5703: 0xC8AD, - 5704: 0xC8AE, - 5705: 0xC8AF, - 5706: 0xC8B0, - 5707: 0xC8B1, - 5708: 0xC8B2, - 5709: 0xC8B3, - 5710: 0xC8B4, - 5711: 0xC8B5, - 5712: 0xC8B6, - 5713: 0xC8B7, - 5714: 0xC8B8, - 5715: 0xC8B9, - 5716: 0xC8BA, - 5717: 0xC8BB, - 5718: 0xC8BE, - 5719: 0xC8BF, - 5720: 0xC8C0, - 5721: 0xC8C1, - 5722: 0xC8C2, - 5723: 0xC8C3, - 5724: 0xC8C5, - 5725: 0xC8C6, - 5726: 0xC8C7, - 5727: 0xC8C9, - 5728: 0xC8CA, - 5729: 0xC8CB, - 5730: 0xC8CD, - 5731: 0xC8CE, - 5732: 0xC8CF, - 5733: 0xC8D0, - 5734: 0xC8D1, - 5735: 0xC8D2, - 5736: 0xC8D3, - 5737: 0xC8D6, - 5738: 0xC8D8, - 5739: 0xC8DA, - 5740: 0xC8DB, - 5741: 0xC8DC, - 5742: 0xC8DD, - 5743: 0xC8DE, - 5744: 0xC8DF, - 5745: 0xC8E2, - 5746: 0xC8E3, - 5747: 0xC8E5, - 5748: 0xC8E6, - 5749: 0xC8E7, - 5750: 0xC8E8, - 5751: 0xC8E9, - 5752: 0xC8EA, - 5753: 0xC8EB, - 5754: 0xC8EC, - 5755: 0xC8ED, - 5756: 0xC8EE, - 5757: 0xC8EF, - 5758: 0xC8F0, - 5759: 0xC8F1, - 5760: 0xC8F2, - 5761: 0xC8F3, - 5762: 0xC8F4, - 5763: 0xC8F6, - 5764: 0xC8F7, - 5765: 0xC8F8, - 5766: 0xC8F9, - 5767: 0xC8FA, - 5768: 0xC8FB, - 5769: 0xC8FE, - 5770: 0xC8FF, - 5771: 0xC901, - 5772: 0xC902, - 5773: 0xC903, - 5774: 0xC907, - 5775: 0xC908, - 5776: 0xC909, - 5777: 0xC90A, - 5778: 0xC90B, - 5779: 0xC90E, - 5780: 0x3000, - 5781: 0x3001, - 5782: 0x3002, - 5783: 0x00B7, - 5784: 0x2025, - 5785: 0x2026, - 5786: 0x00A8, - 5787: 0x3003, - 5788: 0x00AD, - 5789: 0x2015, - 5790: 0x2225, - 5791: 0xFF3C, - 5792: 0x223C, - 5793: 0x2018, - 5794: 0x2019, - 5795: 0x201C, - 5796: 0x201D, - 5797: 0x3014, - 5798: 0x3015, - 5799: 0x3008, - 5800: 0x3009, - 5801: 0x300A, - 5802: 0x300B, - 5803: 0x300C, - 5804: 0x300D, - 5805: 0x300E, - 5806: 0x300F, - 5807: 0x3010, - 5808: 0x3011, - 5809: 0x00B1, - 5810: 0x00D7, - 5811: 0x00F7, - 5812: 0x2260, - 5813: 0x2264, - 5814: 0x2265, - 5815: 0x221E, - 5816: 0x2234, - 5817: 0x00B0, - 5818: 0x2032, - 5819: 0x2033, - 5820: 0x2103, - 5821: 0x212B, - 5822: 0xFFE0, - 5823: 0xFFE1, - 5824: 0xFFE5, - 5825: 0x2642, - 5826: 0x2640, - 5827: 0x2220, - 5828: 0x22A5, - 5829: 0x2312, - 5830: 0x2202, - 5831: 0x2207, - 5832: 0x2261, - 5833: 0x2252, - 5834: 0x00A7, - 5835: 0x203B, - 5836: 0x2606, - 5837: 0x2605, - 5838: 0x25CB, - 5839: 0x25CF, - 5840: 0x25CE, - 5841: 0x25C7, - 5842: 0x25C6, - 5843: 0x25A1, - 5844: 0x25A0, - 5845: 0x25B3, - 5846: 0x25B2, - 5847: 0x25BD, - 5848: 0x25BC, - 5849: 0x2192, - 5850: 0x2190, - 5851: 0x2191, - 5852: 0x2193, - 5853: 0x2194, - 5854: 0x3013, - 5855: 0x226A, - 5856: 0x226B, - 5857: 0x221A, - 5858: 0x223D, - 5859: 0x221D, - 5860: 0x2235, - 5861: 0x222B, - 5862: 0x222C, - 5863: 0x2208, - 5864: 0x220B, - 5865: 0x2286, - 5866: 0x2287, - 5867: 0x2282, - 5868: 0x2283, - 5869: 0x222A, - 5870: 0x2229, - 5871: 0x2227, - 5872: 0x2228, - 5873: 0xFFE2, - 5874: 0xC910, - 5875: 0xC912, - 5876: 0xC913, - 5877: 0xC914, - 5878: 0xC915, - 5879: 0xC916, - 5880: 0xC917, - 5881: 0xC919, - 5882: 0xC91A, - 5883: 0xC91B, - 5884: 0xC91C, - 5885: 0xC91D, - 5886: 0xC91E, - 5887: 0xC91F, - 5888: 0xC920, - 5889: 0xC921, - 5890: 0xC922, - 5891: 0xC923, - 5892: 0xC924, - 5893: 0xC925, - 5894: 0xC926, - 5895: 0xC927, - 5896: 0xC928, - 5897: 0xC929, - 5898: 0xC92A, - 5899: 0xC92B, - 5900: 0xC92D, - 5901: 0xC92E, - 5902: 0xC92F, - 5903: 0xC930, - 5904: 0xC931, - 5905: 0xC932, - 5906: 0xC933, - 5907: 0xC935, - 5908: 0xC936, - 5909: 0xC937, - 5910: 0xC938, - 5911: 0xC939, - 5912: 0xC93A, - 5913: 0xC93B, - 5914: 0xC93C, - 5915: 0xC93D, - 5916: 0xC93E, - 5917: 0xC93F, - 5918: 0xC940, - 5919: 0xC941, - 5920: 0xC942, - 5921: 0xC943, - 5922: 0xC944, - 5923: 0xC945, - 5924: 0xC946, - 5925: 0xC947, - 5926: 0xC948, - 5927: 0xC949, - 5928: 0xC94A, - 5929: 0xC94B, - 5930: 0xC94C, - 5931: 0xC94D, - 5932: 0xC94E, - 5933: 0xC94F, - 5934: 0xC952, - 5935: 0xC953, - 5936: 0xC955, - 5937: 0xC956, - 5938: 0xC957, - 5939: 0xC959, - 5940: 0xC95A, - 5941: 0xC95B, - 5942: 0xC95C, - 5943: 0xC95D, - 5944: 0xC95E, - 5945: 0xC95F, - 5946: 0xC962, - 5947: 0xC964, - 5948: 0xC965, - 5949: 0xC966, - 5950: 0xC967, - 5951: 0xC968, - 5952: 0xC969, - 5953: 0xC96A, - 5954: 0xC96B, - 5955: 0xC96D, - 5956: 0xC96E, - 5957: 0xC96F, - 5958: 0x21D2, - 5959: 0x21D4, - 5960: 0x2200, - 5961: 0x2203, - 5962: 0x00B4, - 5963: 0xFF5E, - 5964: 0x02C7, - 5965: 0x02D8, - 5966: 0x02DD, - 5967: 0x02DA, - 5968: 0x02D9, - 5969: 0x00B8, - 5970: 0x02DB, - 5971: 0x00A1, - 5972: 0x00BF, - 5973: 0x02D0, - 5974: 0x222E, - 5975: 0x2211, - 5976: 0x220F, - 5977: 0x00A4, - 5978: 0x2109, - 5979: 0x2030, - 5980: 0x25C1, - 5981: 0x25C0, - 5982: 0x25B7, - 5983: 0x25B6, - 5984: 0x2664, - 5985: 0x2660, - 5986: 0x2661, - 5987: 0x2665, - 5988: 0x2667, - 5989: 0x2663, - 5990: 0x2299, - 5991: 0x25C8, - 5992: 0x25A3, - 5993: 0x25D0, - 5994: 0x25D1, - 5995: 0x2592, - 5996: 0x25A4, - 5997: 0x25A5, - 5998: 0x25A8, - 5999: 0x25A7, - 6000: 0x25A6, - 6001: 0x25A9, - 6002: 0x2668, - 6003: 0x260F, - 6004: 0x260E, - 6005: 0x261C, - 6006: 0x261E, - 6007: 0x00B6, - 6008: 0x2020, - 6009: 0x2021, - 6010: 0x2195, - 6011: 0x2197, - 6012: 0x2199, - 6013: 0x2196, - 6014: 0x2198, - 6015: 0x266D, - 6016: 0x2669, - 6017: 0x266A, - 6018: 0x266C, - 6019: 0x327F, - 6020: 0x321C, - 6021: 0x2116, - 6022: 0x33C7, - 6023: 0x2122, - 6024: 0x33C2, - 6025: 0x33D8, - 6026: 0x2121, - 6027: 0x20AC, - 6028: 0x00AE, - 6052: 0xC971, - 6053: 0xC972, - 6054: 0xC973, - 6055: 0xC975, - 6056: 0xC976, - 6057: 0xC977, - 6058: 0xC978, - 6059: 0xC979, - 6060: 0xC97A, - 6061: 0xC97B, - 6062: 0xC97D, - 6063: 0xC97E, - 6064: 0xC97F, - 6065: 0xC980, - 6066: 0xC981, - 6067: 0xC982, - 6068: 0xC983, - 6069: 0xC984, - 6070: 0xC985, - 6071: 0xC986, - 6072: 0xC987, - 6073: 0xC98A, - 6074: 0xC98B, - 6075: 0xC98D, - 6076: 0xC98E, - 6077: 0xC98F, - 6078: 0xC991, - 6079: 0xC992, - 6080: 0xC993, - 6081: 0xC994, - 6082: 0xC995, - 6083: 0xC996, - 6084: 0xC997, - 6085: 0xC99A, - 6086: 0xC99C, - 6087: 0xC99E, - 6088: 0xC99F, - 6089: 0xC9A0, - 6090: 0xC9A1, - 6091: 0xC9A2, - 6092: 0xC9A3, - 6093: 0xC9A4, - 6094: 0xC9A5, - 6095: 0xC9A6, - 6096: 0xC9A7, - 6097: 0xC9A8, - 6098: 0xC9A9, - 6099: 0xC9AA, - 6100: 0xC9AB, - 6101: 0xC9AC, - 6102: 0xC9AD, - 6103: 0xC9AE, - 6104: 0xC9AF, - 6105: 0xC9B0, - 6106: 0xC9B1, - 6107: 0xC9B2, - 6108: 0xC9B3, - 6109: 0xC9B4, - 6110: 0xC9B5, - 6111: 0xC9B6, - 6112: 0xC9B7, - 6113: 0xC9B8, - 6114: 0xC9B9, - 6115: 0xC9BA, - 6116: 0xC9BB, - 6117: 0xC9BC, - 6118: 0xC9BD, - 6119: 0xC9BE, - 6120: 0xC9BF, - 6121: 0xC9C2, - 6122: 0xC9C3, - 6123: 0xC9C5, - 6124: 0xC9C6, - 6125: 0xC9C9, - 6126: 0xC9CB, - 6127: 0xC9CC, - 6128: 0xC9CD, - 6129: 0xC9CE, - 6130: 0xC9CF, - 6131: 0xC9D2, - 6132: 0xC9D4, - 6133: 0xC9D7, - 6134: 0xC9D8, - 6135: 0xC9DB, - 6136: 0xFF01, - 6137: 0xFF02, - 6138: 0xFF03, - 6139: 0xFF04, - 6140: 0xFF05, - 6141: 0xFF06, - 6142: 0xFF07, - 6143: 0xFF08, - 6144: 0xFF09, - 6145: 0xFF0A, - 6146: 0xFF0B, - 6147: 0xFF0C, - 6148: 0xFF0D, - 6149: 0xFF0E, - 6150: 0xFF0F, - 6151: 0xFF10, - 6152: 0xFF11, - 6153: 0xFF12, - 6154: 0xFF13, - 6155: 0xFF14, - 6156: 0xFF15, - 6157: 0xFF16, - 6158: 0xFF17, - 6159: 0xFF18, - 6160: 0xFF19, - 6161: 0xFF1A, - 6162: 0xFF1B, - 6163: 0xFF1C, - 6164: 0xFF1D, - 6165: 0xFF1E, - 6166: 0xFF1F, - 6167: 0xFF20, - 6168: 0xFF21, - 6169: 0xFF22, - 6170: 0xFF23, - 6171: 0xFF24, - 6172: 0xFF25, - 6173: 0xFF26, - 6174: 0xFF27, - 6175: 0xFF28, - 6176: 0xFF29, - 6177: 0xFF2A, - 6178: 0xFF2B, - 6179: 0xFF2C, - 6180: 0xFF2D, - 6181: 0xFF2E, - 6182: 0xFF2F, - 6183: 0xFF30, - 6184: 0xFF31, - 6185: 0xFF32, - 6186: 0xFF33, - 6187: 0xFF34, - 6188: 0xFF35, - 6189: 0xFF36, - 6190: 0xFF37, - 6191: 0xFF38, - 6192: 0xFF39, - 6193: 0xFF3A, - 6194: 0xFF3B, - 6195: 0xFFE6, - 6196: 0xFF3D, - 6197: 0xFF3E, - 6198: 0xFF3F, - 6199: 0xFF40, - 6200: 0xFF41, - 6201: 0xFF42, - 6202: 0xFF43, - 6203: 0xFF44, - 6204: 0xFF45, - 6205: 0xFF46, - 6206: 0xFF47, - 6207: 0xFF48, - 6208: 0xFF49, - 6209: 0xFF4A, - 6210: 0xFF4B, - 6211: 0xFF4C, - 6212: 0xFF4D, - 6213: 0xFF4E, - 6214: 0xFF4F, - 6215: 0xFF50, - 6216: 0xFF51, - 6217: 0xFF52, - 6218: 0xFF53, - 6219: 0xFF54, - 6220: 0xFF55, - 6221: 0xFF56, - 6222: 0xFF57, - 6223: 0xFF58, - 6224: 0xFF59, - 6225: 0xFF5A, - 6226: 0xFF5B, - 6227: 0xFF5C, - 6228: 0xFF5D, - 6229: 0xFFE3, - 6230: 0xC9DE, - 6231: 0xC9DF, - 6232: 0xC9E1, - 6233: 0xC9E3, - 6234: 0xC9E5, - 6235: 0xC9E6, - 6236: 0xC9E8, - 6237: 0xC9E9, - 6238: 0xC9EA, - 6239: 0xC9EB, - 6240: 0xC9EE, - 6241: 0xC9F2, - 6242: 0xC9F3, - 6243: 0xC9F4, - 6244: 0xC9F5, - 6245: 0xC9F6, - 6246: 0xC9F7, - 6247: 0xC9FA, - 6248: 0xC9FB, - 6249: 0xC9FD, - 6250: 0xC9FE, - 6251: 0xC9FF, - 6252: 0xCA01, - 6253: 0xCA02, - 6254: 0xCA03, - 6255: 0xCA04, - 6256: 0xCA05, - 6257: 0xCA06, - 6258: 0xCA07, - 6259: 0xCA0A, - 6260: 0xCA0E, - 6261: 0xCA0F, - 6262: 0xCA10, - 6263: 0xCA11, - 6264: 0xCA12, - 6265: 0xCA13, - 6266: 0xCA15, - 6267: 0xCA16, - 6268: 0xCA17, - 6269: 0xCA19, - 6270: 0xCA1A, - 6271: 0xCA1B, - 6272: 0xCA1C, - 6273: 0xCA1D, - 6274: 0xCA1E, - 6275: 0xCA1F, - 6276: 0xCA20, - 6277: 0xCA21, - 6278: 0xCA22, - 6279: 0xCA23, - 6280: 0xCA24, - 6281: 0xCA25, - 6282: 0xCA26, - 6283: 0xCA27, - 6284: 0xCA28, - 6285: 0xCA2A, - 6286: 0xCA2B, - 6287: 0xCA2C, - 6288: 0xCA2D, - 6289: 0xCA2E, - 6290: 0xCA2F, - 6291: 0xCA30, - 6292: 0xCA31, - 6293: 0xCA32, - 6294: 0xCA33, - 6295: 0xCA34, - 6296: 0xCA35, - 6297: 0xCA36, - 6298: 0xCA37, - 6299: 0xCA38, - 6300: 0xCA39, - 6301: 0xCA3A, - 6302: 0xCA3B, - 6303: 0xCA3C, - 6304: 0xCA3D, - 6305: 0xCA3E, - 6306: 0xCA3F, - 6307: 0xCA40, - 6308: 0xCA41, - 6309: 0xCA42, - 6310: 0xCA43, - 6311: 0xCA44, - 6312: 0xCA45, - 6313: 0xCA46, - 6314: 0x3131, - 6315: 0x3132, - 6316: 0x3133, - 6317: 0x3134, - 6318: 0x3135, - 6319: 0x3136, - 6320: 0x3137, - 6321: 0x3138, - 6322: 0x3139, - 6323: 0x313A, - 6324: 0x313B, - 6325: 0x313C, - 6326: 0x313D, - 6327: 0x313E, - 6328: 0x313F, - 6329: 0x3140, - 6330: 0x3141, - 6331: 0x3142, - 6332: 0x3143, - 6333: 0x3144, - 6334: 0x3145, - 6335: 0x3146, - 6336: 0x3147, - 6337: 0x3148, - 6338: 0x3149, - 6339: 0x314A, - 6340: 0x314B, - 6341: 0x314C, - 6342: 0x314D, - 6343: 0x314E, - 6344: 0x314F, - 6345: 0x3150, - 6346: 0x3151, - 6347: 0x3152, - 6348: 0x3153, - 6349: 0x3154, - 6350: 0x3155, - 6351: 0x3156, - 6352: 0x3157, - 6353: 0x3158, - 6354: 0x3159, - 6355: 0x315A, - 6356: 0x315B, - 6357: 0x315C, - 6358: 0x315D, - 6359: 0x315E, - 6360: 0x315F, - 6361: 0x3160, - 6362: 0x3161, - 6363: 0x3162, - 6364: 0x3163, - 6365: 0x3164, - 6366: 0x3165, - 6367: 0x3166, - 6368: 0x3167, - 6369: 0x3168, - 6370: 0x3169, - 6371: 0x316A, - 6372: 0x316B, - 6373: 0x316C, - 6374: 0x316D, - 6375: 0x316E, - 6376: 0x316F, - 6377: 0x3170, - 6378: 0x3171, - 6379: 0x3172, - 6380: 0x3173, - 6381: 0x3174, - 6382: 0x3175, - 6383: 0x3176, - 6384: 0x3177, - 6385: 0x3178, - 6386: 0x3179, - 6387: 0x317A, - 6388: 0x317B, - 6389: 0x317C, - 6390: 0x317D, - 6391: 0x317E, - 6392: 0x317F, - 6393: 0x3180, - 6394: 0x3181, - 6395: 0x3182, - 6396: 0x3183, - 6397: 0x3184, - 6398: 0x3185, - 6399: 0x3186, - 6400: 0x3187, - 6401: 0x3188, - 6402: 0x3189, - 6403: 0x318A, - 6404: 0x318B, - 6405: 0x318C, - 6406: 0x318D, - 6407: 0x318E, - 6408: 0xCA47, - 6409: 0xCA48, - 6410: 0xCA49, - 6411: 0xCA4A, - 6412: 0xCA4B, - 6413: 0xCA4E, - 6414: 0xCA4F, - 6415: 0xCA51, - 6416: 0xCA52, - 6417: 0xCA53, - 6418: 0xCA55, - 6419: 0xCA56, - 6420: 0xCA57, - 6421: 0xCA58, - 6422: 0xCA59, - 6423: 0xCA5A, - 6424: 0xCA5B, - 6425: 0xCA5E, - 6426: 0xCA62, - 6427: 0xCA63, - 6428: 0xCA64, - 6429: 0xCA65, - 6430: 0xCA66, - 6431: 0xCA67, - 6432: 0xCA69, - 6433: 0xCA6A, - 6434: 0xCA6B, - 6435: 0xCA6C, - 6436: 0xCA6D, - 6437: 0xCA6E, - 6438: 0xCA6F, - 6439: 0xCA70, - 6440: 0xCA71, - 6441: 0xCA72, - 6442: 0xCA73, - 6443: 0xCA74, - 6444: 0xCA75, - 6445: 0xCA76, - 6446: 0xCA77, - 6447: 0xCA78, - 6448: 0xCA79, - 6449: 0xCA7A, - 6450: 0xCA7B, - 6451: 0xCA7C, - 6452: 0xCA7E, - 6453: 0xCA7F, - 6454: 0xCA80, - 6455: 0xCA81, - 6456: 0xCA82, - 6457: 0xCA83, - 6458: 0xCA85, - 6459: 0xCA86, - 6460: 0xCA87, - 6461: 0xCA88, - 6462: 0xCA89, - 6463: 0xCA8A, - 6464: 0xCA8B, - 6465: 0xCA8C, - 6466: 0xCA8D, - 6467: 0xCA8E, - 6468: 0xCA8F, - 6469: 0xCA90, - 6470: 0xCA91, - 6471: 0xCA92, - 6472: 0xCA93, - 6473: 0xCA94, - 6474: 0xCA95, - 6475: 0xCA96, - 6476: 0xCA97, - 6477: 0xCA99, - 6478: 0xCA9A, - 6479: 0xCA9B, - 6480: 0xCA9C, - 6481: 0xCA9D, - 6482: 0xCA9E, - 6483: 0xCA9F, - 6484: 0xCAA0, - 6485: 0xCAA1, - 6486: 0xCAA2, - 6487: 0xCAA3, - 6488: 0xCAA4, - 6489: 0xCAA5, - 6490: 0xCAA6, - 6491: 0xCAA7, - 6492: 0x2170, - 6493: 0x2171, - 6494: 0x2172, - 6495: 0x2173, - 6496: 0x2174, - 6497: 0x2175, - 6498: 0x2176, - 6499: 0x2177, - 6500: 0x2178, - 6501: 0x2179, - 6507: 0x2160, - 6508: 0x2161, - 6509: 0x2162, - 6510: 0x2163, - 6511: 0x2164, - 6512: 0x2165, - 6513: 0x2166, - 6514: 0x2167, - 6515: 0x2168, - 6516: 0x2169, - 6524: 0x0391, - 6525: 0x0392, - 6526: 0x0393, - 6527: 0x0394, - 6528: 0x0395, - 6529: 0x0396, - 6530: 0x0397, - 6531: 0x0398, - 6532: 0x0399, - 6533: 0x039A, - 6534: 0x039B, - 6535: 0x039C, - 6536: 0x039D, - 6537: 0x039E, - 6538: 0x039F, - 6539: 0x03A0, - 6540: 0x03A1, - 6541: 0x03A3, - 6542: 0x03A4, - 6543: 0x03A5, - 6544: 0x03A6, - 6545: 0x03A7, - 6546: 0x03A8, - 6547: 0x03A9, - 6556: 0x03B1, - 6557: 0x03B2, - 6558: 0x03B3, - 6559: 0x03B4, - 6560: 0x03B5, - 6561: 0x03B6, - 6562: 0x03B7, - 6563: 0x03B8, - 6564: 0x03B9, - 6565: 0x03BA, - 6566: 0x03BB, - 6567: 0x03BC, - 6568: 0x03BD, - 6569: 0x03BE, - 6570: 0x03BF, - 6571: 0x03C0, - 6572: 0x03C1, - 6573: 0x03C3, - 6574: 0x03C4, - 6575: 0x03C5, - 6576: 0x03C6, - 6577: 0x03C7, - 6578: 0x03C8, - 6579: 0x03C9, - 6586: 0xCAA8, - 6587: 0xCAA9, - 6588: 0xCAAA, - 6589: 0xCAAB, - 6590: 0xCAAC, - 6591: 0xCAAD, - 6592: 0xCAAE, - 6593: 0xCAAF, - 6594: 0xCAB0, - 6595: 0xCAB1, - 6596: 0xCAB2, - 6597: 0xCAB3, - 6598: 0xCAB4, - 6599: 0xCAB5, - 6600: 0xCAB6, - 6601: 0xCAB7, - 6602: 0xCAB8, - 6603: 0xCAB9, - 6604: 0xCABA, - 6605: 0xCABB, - 6606: 0xCABE, - 6607: 0xCABF, - 6608: 0xCAC1, - 6609: 0xCAC2, - 6610: 0xCAC3, - 6611: 0xCAC5, - 6612: 0xCAC6, - 6613: 0xCAC7, - 6614: 0xCAC8, - 6615: 0xCAC9, - 6616: 0xCACA, - 6617: 0xCACB, - 6618: 0xCACE, - 6619: 0xCAD0, - 6620: 0xCAD2, - 6621: 0xCAD4, - 6622: 0xCAD5, - 6623: 0xCAD6, - 6624: 0xCAD7, - 6625: 0xCADA, - 6626: 0xCADB, - 6627: 0xCADC, - 6628: 0xCADD, - 6629: 0xCADE, - 6630: 0xCADF, - 6631: 0xCAE1, - 6632: 0xCAE2, - 6633: 0xCAE3, - 6634: 0xCAE4, - 6635: 0xCAE5, - 6636: 0xCAE6, - 6637: 0xCAE7, - 6638: 0xCAE8, - 6639: 0xCAE9, - 6640: 0xCAEA, - 6641: 0xCAEB, - 6642: 0xCAED, - 6643: 0xCAEE, - 6644: 0xCAEF, - 6645: 0xCAF0, - 6646: 0xCAF1, - 6647: 0xCAF2, - 6648: 0xCAF3, - 6649: 0xCAF5, - 6650: 0xCAF6, - 6651: 0xCAF7, - 6652: 0xCAF8, - 6653: 0xCAF9, - 6654: 0xCAFA, - 6655: 0xCAFB, - 6656: 0xCAFC, - 6657: 0xCAFD, - 6658: 0xCAFE, - 6659: 0xCAFF, - 6660: 0xCB00, - 6661: 0xCB01, - 6662: 0xCB02, - 6663: 0xCB03, - 6664: 0xCB04, - 6665: 0xCB05, - 6666: 0xCB06, - 6667: 0xCB07, - 6668: 0xCB09, - 6669: 0xCB0A, - 6670: 0x2500, - 6671: 0x2502, - 6672: 0x250C, - 6673: 0x2510, - 6674: 0x2518, - 6675: 0x2514, - 6676: 0x251C, - 6677: 0x252C, - 6678: 0x2524, - 6679: 0x2534, - 6680: 0x253C, - 6681: 0x2501, - 6682: 0x2503, - 6683: 0x250F, - 6684: 0x2513, - 6685: 0x251B, - 6686: 0x2517, - 6687: 0x2523, - 6688: 0x2533, - 6689: 0x252B, - 6690: 0x253B, - 6691: 0x254B, - 6692: 0x2520, - 6693: 0x252F, - 6694: 0x2528, - 6695: 0x2537, - 6696: 0x253F, - 6697: 0x251D, - 6698: 0x2530, - 6699: 0x2525, - 6700: 0x2538, - 6701: 0x2542, - 6702: 0x2512, - 6703: 0x2511, - 6704: 0x251A, - 6705: 0x2519, - 6706: 0x2516, - 6707: 0x2515, - 6708: 0x250E, - 6709: 0x250D, - 6710: 0x251E, - 6711: 0x251F, - 6712: 0x2521, - 6713: 0x2522, - 6714: 0x2526, - 6715: 0x2527, - 6716: 0x2529, - 6717: 0x252A, - 6718: 0x252D, - 6719: 0x252E, - 6720: 0x2531, - 6721: 0x2532, - 6722: 0x2535, - 6723: 0x2536, - 6724: 0x2539, - 6725: 0x253A, - 6726: 0x253D, - 6727: 0x253E, - 6728: 0x2540, - 6729: 0x2541, - 6730: 0x2543, - 6731: 0x2544, - 6732: 0x2545, - 6733: 0x2546, - 6734: 0x2547, - 6735: 0x2548, - 6736: 0x2549, - 6737: 0x254A, - 6764: 0xCB0B, - 6765: 0xCB0C, - 6766: 0xCB0D, - 6767: 0xCB0E, - 6768: 0xCB0F, - 6769: 0xCB11, - 6770: 0xCB12, - 6771: 0xCB13, - 6772: 0xCB15, - 6773: 0xCB16, - 6774: 0xCB17, - 6775: 0xCB19, - 6776: 0xCB1A, - 6777: 0xCB1B, - 6778: 0xCB1C, - 6779: 0xCB1D, - 6780: 0xCB1E, - 6781: 0xCB1F, - 6782: 0xCB22, - 6783: 0xCB23, - 6784: 0xCB24, - 6785: 0xCB25, - 6786: 0xCB26, - 6787: 0xCB27, - 6788: 0xCB28, - 6789: 0xCB29, - 6790: 0xCB2A, - 6791: 0xCB2B, - 6792: 0xCB2C, - 6793: 0xCB2D, - 6794: 0xCB2E, - 6795: 0xCB2F, - 6796: 0xCB30, - 6797: 0xCB31, - 6798: 0xCB32, - 6799: 0xCB33, - 6800: 0xCB34, - 6801: 0xCB35, - 6802: 0xCB36, - 6803: 0xCB37, - 6804: 0xCB38, - 6805: 0xCB39, - 6806: 0xCB3A, - 6807: 0xCB3B, - 6808: 0xCB3C, - 6809: 0xCB3D, - 6810: 0xCB3E, - 6811: 0xCB3F, - 6812: 0xCB40, - 6813: 0xCB42, - 6814: 0xCB43, - 6815: 0xCB44, - 6816: 0xCB45, - 6817: 0xCB46, - 6818: 0xCB47, - 6819: 0xCB4A, - 6820: 0xCB4B, - 6821: 0xCB4D, - 6822: 0xCB4E, - 6823: 0xCB4F, - 6824: 0xCB51, - 6825: 0xCB52, - 6826: 0xCB53, - 6827: 0xCB54, - 6828: 0xCB55, - 6829: 0xCB56, - 6830: 0xCB57, - 6831: 0xCB5A, - 6832: 0xCB5B, - 6833: 0xCB5C, - 6834: 0xCB5E, - 6835: 0xCB5F, - 6836: 0xCB60, - 6837: 0xCB61, - 6838: 0xCB62, - 6839: 0xCB63, - 6840: 0xCB65, - 6841: 0xCB66, - 6842: 0xCB67, - 6843: 0xCB68, - 6844: 0xCB69, - 6845: 0xCB6A, - 6846: 0xCB6B, - 6847: 0xCB6C, - 6848: 0x3395, - 6849: 0x3396, - 6850: 0x3397, - 6851: 0x2113, - 6852: 0x3398, - 6853: 0x33C4, - 6854: 0x33A3, - 6855: 0x33A4, - 6856: 0x33A5, - 6857: 0x33A6, - 6858: 0x3399, - 6859: 0x339A, - 6860: 0x339B, - 6861: 0x339C, - 6862: 0x339D, - 6863: 0x339E, - 6864: 0x339F, - 6865: 0x33A0, - 6866: 0x33A1, - 6867: 0x33A2, - 6868: 0x33CA, - 6869: 0x338D, - 6870: 0x338E, - 6871: 0x338F, - 6872: 0x33CF, - 6873: 0x3388, - 6874: 0x3389, - 6875: 0x33C8, - 6876: 0x33A7, - 6877: 0x33A8, - 6878: 0x33B0, - 6879: 0x33B1, - 6880: 0x33B2, - 6881: 0x33B3, - 6882: 0x33B4, - 6883: 0x33B5, - 6884: 0x33B6, - 6885: 0x33B7, - 6886: 0x33B8, - 6887: 0x33B9, - 6888: 0x3380, - 6889: 0x3381, - 6890: 0x3382, - 6891: 0x3383, - 6892: 0x3384, - 6893: 0x33BA, - 6894: 0x33BB, - 6895: 0x33BC, - 6896: 0x33BD, - 6897: 0x33BE, - 6898: 0x33BF, - 6899: 0x3390, - 6900: 0x3391, - 6901: 0x3392, - 6902: 0x3393, - 6903: 0x3394, - 6904: 0x2126, - 6905: 0x33C0, - 6906: 0x33C1, - 6907: 0x338A, - 6908: 0x338B, - 6909: 0x338C, - 6910: 0x33D6, - 6911: 0x33C5, - 6912: 0x33AD, - 6913: 0x33AE, - 6914: 0x33AF, - 6915: 0x33DB, - 6916: 0x33A9, - 6917: 0x33AA, - 6918: 0x33AB, - 6919: 0x33AC, - 6920: 0x33DD, - 6921: 0x33D0, - 6922: 0x33D3, - 6923: 0x33C3, - 6924: 0x33C9, - 6925: 0x33DC, - 6926: 0x33C6, - 6942: 0xCB6D, - 6943: 0xCB6E, - 6944: 0xCB6F, - 6945: 0xCB70, - 6946: 0xCB71, - 6947: 0xCB72, - 6948: 0xCB73, - 6949: 0xCB74, - 6950: 0xCB75, - 6951: 0xCB76, - 6952: 0xCB77, - 6953: 0xCB7A, - 6954: 0xCB7B, - 6955: 0xCB7C, - 6956: 0xCB7D, - 6957: 0xCB7E, - 6958: 0xCB7F, - 6959: 0xCB80, - 6960: 0xCB81, - 6961: 0xCB82, - 6962: 0xCB83, - 6963: 0xCB84, - 6964: 0xCB85, - 6965: 0xCB86, - 6966: 0xCB87, - 6967: 0xCB88, - 6968: 0xCB89, - 6969: 0xCB8A, - 6970: 0xCB8B, - 6971: 0xCB8C, - 6972: 0xCB8D, - 6973: 0xCB8E, - 6974: 0xCB8F, - 6975: 0xCB90, - 6976: 0xCB91, - 6977: 0xCB92, - 6978: 0xCB93, - 6979: 0xCB94, - 6980: 0xCB95, - 6981: 0xCB96, - 6982: 0xCB97, - 6983: 0xCB98, - 6984: 0xCB99, - 6985: 0xCB9A, - 6986: 0xCB9B, - 6987: 0xCB9D, - 6988: 0xCB9E, - 6989: 0xCB9F, - 6990: 0xCBA0, - 6991: 0xCBA1, - 6992: 0xCBA2, - 6993: 0xCBA3, - 6994: 0xCBA4, - 6995: 0xCBA5, - 6996: 0xCBA6, - 6997: 0xCBA7, - 6998: 0xCBA8, - 6999: 0xCBA9, - 7000: 0xCBAA, - 7001: 0xCBAB, - 7002: 0xCBAC, - 7003: 0xCBAD, - 7004: 0xCBAE, - 7005: 0xCBAF, - 7006: 0xCBB0, - 7007: 0xCBB1, - 7008: 0xCBB2, - 7009: 0xCBB3, - 7010: 0xCBB4, - 7011: 0xCBB5, - 7012: 0xCBB6, - 7013: 0xCBB7, - 7014: 0xCBB9, - 7015: 0xCBBA, - 7016: 0xCBBB, - 7017: 0xCBBC, - 7018: 0xCBBD, - 7019: 0xCBBE, - 7020: 0xCBBF, - 7021: 0xCBC0, - 7022: 0xCBC1, - 7023: 0xCBC2, - 7024: 0xCBC3, - 7025: 0xCBC4, - 7026: 0x00C6, - 7027: 0x00D0, - 7028: 0x00AA, - 7029: 0x0126, - 7031: 0x0132, - 7033: 0x013F, - 7034: 0x0141, - 7035: 0x00D8, - 7036: 0x0152, - 7037: 0x00BA, - 7038: 0x00DE, - 7039: 0x0166, - 7040: 0x014A, - 7042: 0x3260, - 7043: 0x3261, - 7044: 0x3262, - 7045: 0x3263, - 7046: 0x3264, - 7047: 0x3265, - 7048: 0x3266, - 7049: 0x3267, - 7050: 0x3268, - 7051: 0x3269, - 7052: 0x326A, - 7053: 0x326B, - 7054: 0x326C, - 7055: 0x326D, - 7056: 0x326E, - 7057: 0x326F, - 7058: 0x3270, - 7059: 0x3271, - 7060: 0x3272, - 7061: 0x3273, - 7062: 0x3274, - 7063: 0x3275, - 7064: 0x3276, - 7065: 0x3277, - 7066: 0x3278, - 7067: 0x3279, - 7068: 0x327A, - 7069: 0x327B, - 7070: 0x24D0, - 7071: 0x24D1, - 7072: 0x24D2, - 7073: 0x24D3, - 7074: 0x24D4, - 7075: 0x24D5, - 7076: 0x24D6, - 7077: 0x24D7, - 7078: 0x24D8, - 7079: 0x24D9, - 7080: 0x24DA, - 7081: 0x24DB, - 7082: 0x24DC, - 7083: 0x24DD, - 7084: 0x24DE, - 7085: 0x24DF, - 7086: 0x24E0, - 7087: 0x24E1, - 7088: 0x24E2, - 7089: 0x24E3, - 7090: 0x24E4, - 7091: 0x24E5, - 7092: 0x24E6, - 7093: 0x24E7, - 7094: 0x24E8, - 7095: 0x24E9, - 7096: 0x2460, - 7097: 0x2461, - 7098: 0x2462, - 7099: 0x2463, - 7100: 0x2464, - 7101: 0x2465, - 7102: 0x2466, - 7103: 0x2467, - 7104: 0x2468, - 7105: 0x2469, - 7106: 0x246A, - 7107: 0x246B, - 7108: 0x246C, - 7109: 0x246D, - 7110: 0x246E, - 7111: 0x00BD, - 7112: 0x2153, - 7113: 0x2154, - 7114: 0x00BC, - 7115: 0x00BE, - 7116: 0x215B, - 7117: 0x215C, - 7118: 0x215D, - 7119: 0x215E, - 7120: 0xCBC5, - 7121: 0xCBC6, - 7122: 0xCBC7, - 7123: 0xCBC8, - 7124: 0xCBC9, - 7125: 0xCBCA, - 7126: 0xCBCB, - 7127: 0xCBCC, - 7128: 0xCBCD, - 7129: 0xCBCE, - 7130: 0xCBCF, - 7131: 0xCBD0, - 7132: 0xCBD1, - 7133: 0xCBD2, - 7134: 0xCBD3, - 7135: 0xCBD5, - 7136: 0xCBD6, - 7137: 0xCBD7, - 7138: 0xCBD8, - 7139: 0xCBD9, - 7140: 0xCBDA, - 7141: 0xCBDB, - 7142: 0xCBDC, - 7143: 0xCBDD, - 7144: 0xCBDE, - 7145: 0xCBDF, - 7146: 0xCBE0, - 7147: 0xCBE1, - 7148: 0xCBE2, - 7149: 0xCBE3, - 7150: 0xCBE5, - 7151: 0xCBE6, - 7152: 0xCBE8, - 7153: 0xCBEA, - 7154: 0xCBEB, - 7155: 0xCBEC, - 7156: 0xCBED, - 7157: 0xCBEE, - 7158: 0xCBEF, - 7159: 0xCBF0, - 7160: 0xCBF1, - 7161: 0xCBF2, - 7162: 0xCBF3, - 7163: 0xCBF4, - 7164: 0xCBF5, - 7165: 0xCBF6, - 7166: 0xCBF7, - 7167: 0xCBF8, - 7168: 0xCBF9, - 7169: 0xCBFA, - 7170: 0xCBFB, - 7171: 0xCBFC, - 7172: 0xCBFD, - 7173: 0xCBFE, - 7174: 0xCBFF, - 7175: 0xCC00, - 7176: 0xCC01, - 7177: 0xCC02, - 7178: 0xCC03, - 7179: 0xCC04, - 7180: 0xCC05, - 7181: 0xCC06, - 7182: 0xCC07, - 7183: 0xCC08, - 7184: 0xCC09, - 7185: 0xCC0A, - 7186: 0xCC0B, - 7187: 0xCC0E, - 7188: 0xCC0F, - 7189: 0xCC11, - 7190: 0xCC12, - 7191: 0xCC13, - 7192: 0xCC15, - 7193: 0xCC16, - 7194: 0xCC17, - 7195: 0xCC18, - 7196: 0xCC19, - 7197: 0xCC1A, - 7198: 0xCC1B, - 7199: 0xCC1E, - 7200: 0xCC1F, - 7201: 0xCC20, - 7202: 0xCC23, - 7203: 0xCC24, - 7204: 0x00E6, - 7205: 0x0111, - 7206: 0x00F0, - 7207: 0x0127, - 7208: 0x0131, - 7209: 0x0133, - 7210: 0x0138, - 7211: 0x0140, - 7212: 0x0142, - 7213: 0x00F8, - 7214: 0x0153, - 7215: 0x00DF, - 7216: 0x00FE, - 7217: 0x0167, - 7218: 0x014B, - 7219: 0x0149, - 7220: 0x3200, - 7221: 0x3201, - 7222: 0x3202, - 7223: 0x3203, - 7224: 0x3204, - 7225: 0x3205, - 7226: 0x3206, - 7227: 0x3207, - 7228: 0x3208, - 7229: 0x3209, - 7230: 0x320A, - 7231: 0x320B, - 7232: 0x320C, - 7233: 0x320D, - 7234: 0x320E, - 7235: 0x320F, - 7236: 0x3210, - 7237: 0x3211, - 7238: 0x3212, - 7239: 0x3213, - 7240: 0x3214, - 7241: 0x3215, - 7242: 0x3216, - 7243: 0x3217, - 7244: 0x3218, - 7245: 0x3219, - 7246: 0x321A, - 7247: 0x321B, - 7248: 0x249C, - 7249: 0x249D, - 7250: 0x249E, - 7251: 0x249F, - 7252: 0x24A0, - 7253: 0x24A1, - 7254: 0x24A2, - 7255: 0x24A3, - 7256: 0x24A4, - 7257: 0x24A5, - 7258: 0x24A6, - 7259: 0x24A7, - 7260: 0x24A8, - 7261: 0x24A9, - 7262: 0x24AA, - 7263: 0x24AB, - 7264: 0x24AC, - 7265: 0x24AD, - 7266: 0x24AE, - 7267: 0x24AF, - 7268: 0x24B0, - 7269: 0x24B1, - 7270: 0x24B2, - 7271: 0x24B3, - 7272: 0x24B4, - 7273: 0x24B5, - 7274: 0x2474, - 7275: 0x2475, - 7276: 0x2476, - 7277: 0x2477, - 7278: 0x2478, - 7279: 0x2479, - 7280: 0x247A, - 7281: 0x247B, - 7282: 0x247C, - 7283: 0x247D, - 7284: 0x247E, - 7285: 0x247F, - 7286: 0x2480, - 7287: 0x2481, - 7288: 0x2482, - 7289: 0x00B9, - 7290: 0x00B2, - 7291: 0x00B3, - 7292: 0x2074, - 7293: 0x207F, - 7294: 0x2081, - 7295: 0x2082, - 7296: 0x2083, - 7297: 0x2084, - 7298: 0xCC25, - 7299: 0xCC26, - 7300: 0xCC2A, - 7301: 0xCC2B, - 7302: 0xCC2D, - 7303: 0xCC2F, - 7304: 0xCC31, - 7305: 0xCC32, - 7306: 0xCC33, - 7307: 0xCC34, - 7308: 0xCC35, - 7309: 0xCC36, - 7310: 0xCC37, - 7311: 0xCC3A, - 7312: 0xCC3F, - 7313: 0xCC40, - 7314: 0xCC41, - 7315: 0xCC42, - 7316: 0xCC43, - 7317: 0xCC46, - 7318: 0xCC47, - 7319: 0xCC49, - 7320: 0xCC4A, - 7321: 0xCC4B, - 7322: 0xCC4D, - 7323: 0xCC4E, - 7324: 0xCC4F, - 7325: 0xCC50, - 7326: 0xCC51, - 7327: 0xCC52, - 7328: 0xCC53, - 7329: 0xCC56, - 7330: 0xCC5A, - 7331: 0xCC5B, - 7332: 0xCC5C, - 7333: 0xCC5D, - 7334: 0xCC5E, - 7335: 0xCC5F, - 7336: 0xCC61, - 7337: 0xCC62, - 7338: 0xCC63, - 7339: 0xCC65, - 7340: 0xCC67, - 7341: 0xCC69, - 7342: 0xCC6A, - 7343: 0xCC6B, - 7344: 0xCC6C, - 7345: 0xCC6D, - 7346: 0xCC6E, - 7347: 0xCC6F, - 7348: 0xCC71, - 7349: 0xCC72, - 7350: 0xCC73, - 7351: 0xCC74, - 7352: 0xCC76, - 7353: 0xCC77, - 7354: 0xCC78, - 7355: 0xCC79, - 7356: 0xCC7A, - 7357: 0xCC7B, - 7358: 0xCC7C, - 7359: 0xCC7D, - 7360: 0xCC7E, - 7361: 0xCC7F, - 7362: 0xCC80, - 7363: 0xCC81, - 7364: 0xCC82, - 7365: 0xCC83, - 7366: 0xCC84, - 7367: 0xCC85, - 7368: 0xCC86, - 7369: 0xCC87, - 7370: 0xCC88, - 7371: 0xCC89, - 7372: 0xCC8A, - 7373: 0xCC8B, - 7374: 0xCC8C, - 7375: 0xCC8D, - 7376: 0xCC8E, - 7377: 0xCC8F, - 7378: 0xCC90, - 7379: 0xCC91, - 7380: 0xCC92, - 7381: 0xCC93, - 7382: 0x3041, - 7383: 0x3042, - 7384: 0x3043, - 7385: 0x3044, - 7386: 0x3045, - 7387: 0x3046, - 7388: 0x3047, - 7389: 0x3048, - 7390: 0x3049, - 7391: 0x304A, - 7392: 0x304B, - 7393: 0x304C, - 7394: 0x304D, - 7395: 0x304E, - 7396: 0x304F, - 7397: 0x3050, - 7398: 0x3051, - 7399: 0x3052, - 7400: 0x3053, - 7401: 0x3054, - 7402: 0x3055, - 7403: 0x3056, - 7404: 0x3057, - 7405: 0x3058, - 7406: 0x3059, - 7407: 0x305A, - 7408: 0x305B, - 7409: 0x305C, - 7410: 0x305D, - 7411: 0x305E, - 7412: 0x305F, - 7413: 0x3060, - 7414: 0x3061, - 7415: 0x3062, - 7416: 0x3063, - 7417: 0x3064, - 7418: 0x3065, - 7419: 0x3066, - 7420: 0x3067, - 7421: 0x3068, - 7422: 0x3069, - 7423: 0x306A, - 7424: 0x306B, - 7425: 0x306C, - 7426: 0x306D, - 7427: 0x306E, - 7428: 0x306F, - 7429: 0x3070, - 7430: 0x3071, - 7431: 0x3072, - 7432: 0x3073, - 7433: 0x3074, - 7434: 0x3075, - 7435: 0x3076, - 7436: 0x3077, - 7437: 0x3078, - 7438: 0x3079, - 7439: 0x307A, - 7440: 0x307B, - 7441: 0x307C, - 7442: 0x307D, - 7443: 0x307E, - 7444: 0x307F, - 7445: 0x3080, - 7446: 0x3081, - 7447: 0x3082, - 7448: 0x3083, - 7449: 0x3084, - 7450: 0x3085, - 7451: 0x3086, - 7452: 0x3087, - 7453: 0x3088, - 7454: 0x3089, - 7455: 0x308A, - 7456: 0x308B, - 7457: 0x308C, - 7458: 0x308D, - 7459: 0x308E, - 7460: 0x308F, - 7461: 0x3090, - 7462: 0x3091, - 7463: 0x3092, - 7464: 0x3093, - 7476: 0xCC94, - 7477: 0xCC95, - 7478: 0xCC96, - 7479: 0xCC97, - 7480: 0xCC9A, - 7481: 0xCC9B, - 7482: 0xCC9D, - 7483: 0xCC9E, - 7484: 0xCC9F, - 7485: 0xCCA1, - 7486: 0xCCA2, - 7487: 0xCCA3, - 7488: 0xCCA4, - 7489: 0xCCA5, - 7490: 0xCCA6, - 7491: 0xCCA7, - 7492: 0xCCAA, - 7493: 0xCCAE, - 7494: 0xCCAF, - 7495: 0xCCB0, - 7496: 0xCCB1, - 7497: 0xCCB2, - 7498: 0xCCB3, - 7499: 0xCCB6, - 7500: 0xCCB7, - 7501: 0xCCB9, - 7502: 0xCCBA, - 7503: 0xCCBB, - 7504: 0xCCBD, - 7505: 0xCCBE, - 7506: 0xCCBF, - 7507: 0xCCC0, - 7508: 0xCCC1, - 7509: 0xCCC2, - 7510: 0xCCC3, - 7511: 0xCCC6, - 7512: 0xCCC8, - 7513: 0xCCCA, - 7514: 0xCCCB, - 7515: 0xCCCC, - 7516: 0xCCCD, - 7517: 0xCCCE, - 7518: 0xCCCF, - 7519: 0xCCD1, - 7520: 0xCCD2, - 7521: 0xCCD3, - 7522: 0xCCD5, - 7523: 0xCCD6, - 7524: 0xCCD7, - 7525: 0xCCD8, - 7526: 0xCCD9, - 7527: 0xCCDA, - 7528: 0xCCDB, - 7529: 0xCCDC, - 7530: 0xCCDD, - 7531: 0xCCDE, - 7532: 0xCCDF, - 7533: 0xCCE0, - 7534: 0xCCE1, - 7535: 0xCCE2, - 7536: 0xCCE3, - 7537: 0xCCE5, - 7538: 0xCCE6, - 7539: 0xCCE7, - 7540: 0xCCE8, - 7541: 0xCCE9, - 7542: 0xCCEA, - 7543: 0xCCEB, - 7544: 0xCCED, - 7545: 0xCCEE, - 7546: 0xCCEF, - 7547: 0xCCF1, - 7548: 0xCCF2, - 7549: 0xCCF3, - 7550: 0xCCF4, - 7551: 0xCCF5, - 7552: 0xCCF6, - 7553: 0xCCF7, - 7554: 0xCCF8, - 7555: 0xCCF9, - 7556: 0xCCFA, - 7557: 0xCCFB, - 7558: 0xCCFC, - 7559: 0xCCFD, - 7560: 0x30A1, - 7561: 0x30A2, - 7562: 0x30A3, - 7563: 0x30A4, - 7564: 0x30A5, - 7565: 0x30A6, - 7566: 0x30A7, - 7567: 0x30A8, - 7568: 0x30A9, - 7569: 0x30AA, - 7570: 0x30AB, - 7571: 0x30AC, - 7572: 0x30AD, - 7573: 0x30AE, - 7574: 0x30AF, - 7575: 0x30B0, - 7576: 0x30B1, - 7577: 0x30B2, - 7578: 0x30B3, - 7579: 0x30B4, - 7580: 0x30B5, - 7581: 0x30B6, - 7582: 0x30B7, - 7583: 0x30B8, - 7584: 0x30B9, - 7585: 0x30BA, - 7586: 0x30BB, - 7587: 0x30BC, - 7588: 0x30BD, - 7589: 0x30BE, - 7590: 0x30BF, - 7591: 0x30C0, - 7592: 0x30C1, - 7593: 0x30C2, - 7594: 0x30C3, - 7595: 0x30C4, - 7596: 0x30C5, - 7597: 0x30C6, - 7598: 0x30C7, - 7599: 0x30C8, - 7600: 0x30C9, - 7601: 0x30CA, - 7602: 0x30CB, - 7603: 0x30CC, - 7604: 0x30CD, - 7605: 0x30CE, - 7606: 0x30CF, - 7607: 0x30D0, - 7608: 0x30D1, - 7609: 0x30D2, - 7610: 0x30D3, - 7611: 0x30D4, - 7612: 0x30D5, - 7613: 0x30D6, - 7614: 0x30D7, - 7615: 0x30D8, - 7616: 0x30D9, - 7617: 0x30DA, - 7618: 0x30DB, - 7619: 0x30DC, - 7620: 0x30DD, - 7621: 0x30DE, - 7622: 0x30DF, - 7623: 0x30E0, - 7624: 0x30E1, - 7625: 0x30E2, - 7626: 0x30E3, - 7627: 0x30E4, - 7628: 0x30E5, - 7629: 0x30E6, - 7630: 0x30E7, - 7631: 0x30E8, - 7632: 0x30E9, - 7633: 0x30EA, - 7634: 0x30EB, - 7635: 0x30EC, - 7636: 0x30ED, - 7637: 0x30EE, - 7638: 0x30EF, - 7639: 0x30F0, - 7640: 0x30F1, - 7641: 0x30F2, - 7642: 0x30F3, - 7643: 0x30F4, - 7644: 0x30F5, - 7645: 0x30F6, - 7654: 0xCCFE, - 7655: 0xCCFF, - 7656: 0xCD00, - 7657: 0xCD02, - 7658: 0xCD03, - 7659: 0xCD04, - 7660: 0xCD05, - 7661: 0xCD06, - 7662: 0xCD07, - 7663: 0xCD0A, - 7664: 0xCD0B, - 7665: 0xCD0D, - 7666: 0xCD0E, - 7667: 0xCD0F, - 7668: 0xCD11, - 7669: 0xCD12, - 7670: 0xCD13, - 7671: 0xCD14, - 7672: 0xCD15, - 7673: 0xCD16, - 7674: 0xCD17, - 7675: 0xCD1A, - 7676: 0xCD1C, - 7677: 0xCD1E, - 7678: 0xCD1F, - 7679: 0xCD20, - 7680: 0xCD21, - 7681: 0xCD22, - 7682: 0xCD23, - 7683: 0xCD25, - 7684: 0xCD26, - 7685: 0xCD27, - 7686: 0xCD29, - 7687: 0xCD2A, - 7688: 0xCD2B, - 7689: 0xCD2D, - 7690: 0xCD2E, - 7691: 0xCD2F, - 7692: 0xCD30, - 7693: 0xCD31, - 7694: 0xCD32, - 7695: 0xCD33, - 7696: 0xCD34, - 7697: 0xCD35, - 7698: 0xCD36, - 7699: 0xCD37, - 7700: 0xCD38, - 7701: 0xCD3A, - 7702: 0xCD3B, - 7703: 0xCD3C, - 7704: 0xCD3D, - 7705: 0xCD3E, - 7706: 0xCD3F, - 7707: 0xCD40, - 7708: 0xCD41, - 7709: 0xCD42, - 7710: 0xCD43, - 7711: 0xCD44, - 7712: 0xCD45, - 7713: 0xCD46, - 7714: 0xCD47, - 7715: 0xCD48, - 7716: 0xCD49, - 7717: 0xCD4A, - 7718: 0xCD4B, - 7719: 0xCD4C, - 7720: 0xCD4D, - 7721: 0xCD4E, - 7722: 0xCD4F, - 7723: 0xCD50, - 7724: 0xCD51, - 7725: 0xCD52, - 7726: 0xCD53, - 7727: 0xCD54, - 7728: 0xCD55, - 7729: 0xCD56, - 7730: 0xCD57, - 7731: 0xCD58, - 7732: 0xCD59, - 7733: 0xCD5A, - 7734: 0xCD5B, - 7735: 0xCD5D, - 7736: 0xCD5E, - 7737: 0xCD5F, - 7738: 0x0410, - 7739: 0x0411, - 7740: 0x0412, - 7741: 0x0413, - 7742: 0x0414, - 7743: 0x0415, - 7744: 0x0401, - 7745: 0x0416, - 7746: 0x0417, - 7747: 0x0418, - 7748: 0x0419, - 7749: 0x041A, - 7750: 0x041B, - 7751: 0x041C, - 7752: 0x041D, - 7753: 0x041E, - 7754: 0x041F, - 7755: 0x0420, - 7756: 0x0421, - 7757: 0x0422, - 7758: 0x0423, - 7759: 0x0424, - 7760: 0x0425, - 7761: 0x0426, - 7762: 0x0427, - 7763: 0x0428, - 7764: 0x0429, - 7765: 0x042A, - 7766: 0x042B, - 7767: 0x042C, - 7768: 0x042D, - 7769: 0x042E, - 7770: 0x042F, - 7786: 0x0430, - 7787: 0x0431, - 7788: 0x0432, - 7789: 0x0433, - 7790: 0x0434, - 7791: 0x0435, - 7792: 0x0451, - 7793: 0x0436, - 7794: 0x0437, - 7795: 0x0438, - 7796: 0x0439, - 7797: 0x043A, - 7798: 0x043B, - 7799: 0x043C, - 7800: 0x043D, - 7801: 0x043E, - 7802: 0x043F, - 7803: 0x0440, - 7804: 0x0441, - 7805: 0x0442, - 7806: 0x0443, - 7807: 0x0444, - 7808: 0x0445, - 7809: 0x0446, - 7810: 0x0447, - 7811: 0x0448, - 7812: 0x0449, - 7813: 0x044A, - 7814: 0x044B, - 7815: 0x044C, - 7816: 0x044D, - 7817: 0x044E, - 7818: 0x044F, - 7832: 0xCD61, - 7833: 0xCD62, - 7834: 0xCD63, - 7835: 0xCD65, - 7836: 0xCD66, - 7837: 0xCD67, - 7838: 0xCD68, - 7839: 0xCD69, - 7840: 0xCD6A, - 7841: 0xCD6B, - 7842: 0xCD6E, - 7843: 0xCD70, - 7844: 0xCD72, - 7845: 0xCD73, - 7846: 0xCD74, - 7847: 0xCD75, - 7848: 0xCD76, - 7849: 0xCD77, - 7850: 0xCD79, - 7851: 0xCD7A, - 7852: 0xCD7B, - 7853: 0xCD7C, - 7854: 0xCD7D, - 7855: 0xCD7E, - 7856: 0xCD7F, - 7857: 0xCD80, - 7858: 0xCD81, - 7859: 0xCD82, - 7860: 0xCD83, - 7861: 0xCD84, - 7862: 0xCD85, - 7863: 0xCD86, - 7864: 0xCD87, - 7865: 0xCD89, - 7866: 0xCD8A, - 7867: 0xCD8B, - 7868: 0xCD8C, - 7869: 0xCD8D, - 7870: 0xCD8E, - 7871: 0xCD8F, - 7872: 0xCD90, - 7873: 0xCD91, - 7874: 0xCD92, - 7875: 0xCD93, - 7876: 0xCD96, - 7877: 0xCD97, - 7878: 0xCD99, - 7879: 0xCD9A, - 7880: 0xCD9B, - 7881: 0xCD9D, - 7882: 0xCD9E, - 7883: 0xCD9F, - 7884: 0xCDA0, - 7885: 0xCDA1, - 7886: 0xCDA2, - 7887: 0xCDA3, - 7888: 0xCDA6, - 7889: 0xCDA8, - 7890: 0xCDAA, - 7891: 0xCDAB, - 7892: 0xCDAC, - 7893: 0xCDAD, - 7894: 0xCDAE, - 7895: 0xCDAF, - 7896: 0xCDB1, - 7897: 0xCDB2, - 7898: 0xCDB3, - 7899: 0xCDB4, - 7900: 0xCDB5, - 7901: 0xCDB6, - 7902: 0xCDB7, - 7903: 0xCDB8, - 7904: 0xCDB9, - 7905: 0xCDBA, - 7906: 0xCDBB, - 7907: 0xCDBC, - 7908: 0xCDBD, - 7909: 0xCDBE, - 7910: 0xCDBF, - 7911: 0xCDC0, - 7912: 0xCDC1, - 7913: 0xCDC2, - 7914: 0xCDC3, - 7915: 0xCDC5, - 8010: 0xCDC6, - 8011: 0xCDC7, - 8012: 0xCDC8, - 8013: 0xCDC9, - 8014: 0xCDCA, - 8015: 0xCDCB, - 8016: 0xCDCD, - 8017: 0xCDCE, - 8018: 0xCDCF, - 8019: 0xCDD1, - 8020: 0xCDD2, - 8021: 0xCDD3, - 8022: 0xCDD4, - 8023: 0xCDD5, - 8024: 0xCDD6, - 8025: 0xCDD7, - 8026: 0xCDD8, - 8027: 0xCDD9, - 8028: 0xCDDA, - 8029: 0xCDDB, - 8030: 0xCDDC, - 8031: 0xCDDD, - 8032: 0xCDDE, - 8033: 0xCDDF, - 8034: 0xCDE0, - 8035: 0xCDE1, - 8036: 0xCDE2, - 8037: 0xCDE3, - 8038: 0xCDE4, - 8039: 0xCDE5, - 8040: 0xCDE6, - 8041: 0xCDE7, - 8042: 0xCDE9, - 8043: 0xCDEA, - 8044: 0xCDEB, - 8045: 0xCDED, - 8046: 0xCDEE, - 8047: 0xCDEF, - 8048: 0xCDF1, - 8049: 0xCDF2, - 8050: 0xCDF3, - 8051: 0xCDF4, - 8052: 0xCDF5, - 8053: 0xCDF6, - 8054: 0xCDF7, - 8055: 0xCDFA, - 8056: 0xCDFC, - 8057: 0xCDFE, - 8058: 0xCDFF, - 8059: 0xCE00, - 8060: 0xCE01, - 8061: 0xCE02, - 8062: 0xCE03, - 8063: 0xCE05, - 8064: 0xCE06, - 8065: 0xCE07, - 8066: 0xCE09, - 8067: 0xCE0A, - 8068: 0xCE0B, - 8069: 0xCE0D, - 8070: 0xCE0E, - 8071: 0xCE0F, - 8072: 0xCE10, - 8073: 0xCE11, - 8074: 0xCE12, - 8075: 0xCE13, - 8076: 0xCE15, - 8077: 0xCE16, - 8078: 0xCE17, - 8079: 0xCE18, - 8080: 0xCE1A, - 8081: 0xCE1B, - 8082: 0xCE1C, - 8083: 0xCE1D, - 8084: 0xCE1E, - 8085: 0xCE1F, - 8086: 0xCE22, - 8087: 0xCE23, - 8088: 0xCE25, - 8089: 0xCE26, - 8090: 0xCE27, - 8091: 0xCE29, - 8092: 0xCE2A, - 8093: 0xCE2B, - 8188: 0xCE2C, - 8189: 0xCE2D, - 8190: 0xCE2E, - 8191: 0xCE2F, - 8192: 0xCE32, - 8193: 0xCE34, - 8194: 0xCE36, - 8195: 0xCE37, - 8196: 0xCE38, - 8197: 0xCE39, - 8198: 0xCE3A, - 8199: 0xCE3B, - 8200: 0xCE3C, - 8201: 0xCE3D, - 8202: 0xCE3E, - 8203: 0xCE3F, - 8204: 0xCE40, - 8205: 0xCE41, - 8206: 0xCE42, - 8207: 0xCE43, - 8208: 0xCE44, - 8209: 0xCE45, - 8210: 0xCE46, - 8211: 0xCE47, - 8212: 0xCE48, - 8213: 0xCE49, - 8214: 0xCE4A, - 8215: 0xCE4B, - 8216: 0xCE4C, - 8217: 0xCE4D, - 8218: 0xCE4E, - 8219: 0xCE4F, - 8220: 0xCE50, - 8221: 0xCE51, - 8222: 0xCE52, - 8223: 0xCE53, - 8224: 0xCE54, - 8225: 0xCE55, - 8226: 0xCE56, - 8227: 0xCE57, - 8228: 0xCE5A, - 8229: 0xCE5B, - 8230: 0xCE5D, - 8231: 0xCE5E, - 8232: 0xCE62, - 8233: 0xCE63, - 8234: 0xCE64, - 8235: 0xCE65, - 8236: 0xCE66, - 8237: 0xCE67, - 8238: 0xCE6A, - 8239: 0xCE6C, - 8240: 0xCE6E, - 8241: 0xCE6F, - 8242: 0xCE70, - 8243: 0xCE71, - 8244: 0xCE72, - 8245: 0xCE73, - 8246: 0xCE76, - 8247: 0xCE77, - 8248: 0xCE79, - 8249: 0xCE7A, - 8250: 0xCE7B, - 8251: 0xCE7D, - 8252: 0xCE7E, - 8253: 0xCE7F, - 8254: 0xCE80, - 8255: 0xCE81, - 8256: 0xCE82, - 8257: 0xCE83, - 8258: 0xCE86, - 8259: 0xCE88, - 8260: 0xCE8A, - 8261: 0xCE8B, - 8262: 0xCE8C, - 8263: 0xCE8D, - 8264: 0xCE8E, - 8265: 0xCE8F, - 8266: 0xCE92, - 8267: 0xCE93, - 8268: 0xCE95, - 8269: 0xCE96, - 8270: 0xCE97, - 8271: 0xCE99, - 8366: 0xCE9A, - 8367: 0xCE9B, - 8368: 0xCE9C, - 8369: 0xCE9D, - 8370: 0xCE9E, - 8371: 0xCE9F, - 8372: 0xCEA2, - 8373: 0xCEA6, - 8374: 0xCEA7, - 8375: 0xCEA8, - 8376: 0xCEA9, - 8377: 0xCEAA, - 8378: 0xCEAB, - 8379: 0xCEAE, - 8380: 0xCEAF, - 8381: 0xCEB0, - 8382: 0xCEB1, - 8383: 0xCEB2, - 8384: 0xCEB3, - 8385: 0xCEB4, - 8386: 0xCEB5, - 8387: 0xCEB6, - 8388: 0xCEB7, - 8389: 0xCEB8, - 8390: 0xCEB9, - 8391: 0xCEBA, - 8392: 0xCEBB, - 8393: 0xCEBC, - 8394: 0xCEBD, - 8395: 0xCEBE, - 8396: 0xCEBF, - 8397: 0xCEC0, - 8398: 0xCEC2, - 8399: 0xCEC3, - 8400: 0xCEC4, - 8401: 0xCEC5, - 8402: 0xCEC6, - 8403: 0xCEC7, - 8404: 0xCEC8, - 8405: 0xCEC9, - 8406: 0xCECA, - 8407: 0xCECB, - 8408: 0xCECC, - 8409: 0xCECD, - 8410: 0xCECE, - 8411: 0xCECF, - 8412: 0xCED0, - 8413: 0xCED1, - 8414: 0xCED2, - 8415: 0xCED3, - 8416: 0xCED4, - 8417: 0xCED5, - 8418: 0xCED6, - 8419: 0xCED7, - 8420: 0xCED8, - 8421: 0xCED9, - 8422: 0xCEDA, - 8423: 0xCEDB, - 8424: 0xCEDC, - 8425: 0xCEDD, - 8426: 0xCEDE, - 8427: 0xCEDF, - 8428: 0xCEE0, - 8429: 0xCEE1, - 8430: 0xCEE2, - 8431: 0xCEE3, - 8432: 0xCEE6, - 8433: 0xCEE7, - 8434: 0xCEE9, - 8435: 0xCEEA, - 8436: 0xCEED, - 8437: 0xCEEE, - 8438: 0xCEEF, - 8439: 0xCEF0, - 8440: 0xCEF1, - 8441: 0xCEF2, - 8442: 0xCEF3, - 8443: 0xCEF6, - 8444: 0xCEFA, - 8445: 0xCEFB, - 8446: 0xCEFC, - 8447: 0xCEFD, - 8448: 0xCEFE, - 8449: 0xCEFF, - 8450: 0xAC00, - 8451: 0xAC01, - 8452: 0xAC04, - 8453: 0xAC07, - 8454: 0xAC08, - 8455: 0xAC09, - 8456: 0xAC0A, - 8457: 0xAC10, - 8458: 0xAC11, - 8459: 0xAC12, - 8460: 0xAC13, - 8461: 0xAC14, - 8462: 0xAC15, - 8463: 0xAC16, - 8464: 0xAC17, - 8465: 0xAC19, - 8466: 0xAC1A, - 8467: 0xAC1B, - 8468: 0xAC1C, - 8469: 0xAC1D, - 8470: 0xAC20, - 8471: 0xAC24, - 8472: 0xAC2C, - 8473: 0xAC2D, - 8474: 0xAC2F, - 8475: 0xAC30, - 8476: 0xAC31, - 8477: 0xAC38, - 8478: 0xAC39, - 8479: 0xAC3C, - 8480: 0xAC40, - 8481: 0xAC4B, - 8482: 0xAC4D, - 8483: 0xAC54, - 8484: 0xAC58, - 8485: 0xAC5C, - 8486: 0xAC70, - 8487: 0xAC71, - 8488: 0xAC74, - 8489: 0xAC77, - 8490: 0xAC78, - 8491: 0xAC7A, - 8492: 0xAC80, - 8493: 0xAC81, - 8494: 0xAC83, - 8495: 0xAC84, - 8496: 0xAC85, - 8497: 0xAC86, - 8498: 0xAC89, - 8499: 0xAC8A, - 8500: 0xAC8B, - 8501: 0xAC8C, - 8502: 0xAC90, - 8503: 0xAC94, - 8504: 0xAC9C, - 8505: 0xAC9D, - 8506: 0xAC9F, - 8507: 0xACA0, - 8508: 0xACA1, - 8509: 0xACA8, - 8510: 0xACA9, - 8511: 0xACAA, - 8512: 0xACAC, - 8513: 0xACAF, - 8514: 0xACB0, - 8515: 0xACB8, - 8516: 0xACB9, - 8517: 0xACBB, - 8518: 0xACBC, - 8519: 0xACBD, - 8520: 0xACC1, - 8521: 0xACC4, - 8522: 0xACC8, - 8523: 0xACCC, - 8524: 0xACD5, - 8525: 0xACD7, - 8526: 0xACE0, - 8527: 0xACE1, - 8528: 0xACE4, - 8529: 0xACE7, - 8530: 0xACE8, - 8531: 0xACEA, - 8532: 0xACEC, - 8533: 0xACEF, - 8534: 0xACF0, - 8535: 0xACF1, - 8536: 0xACF3, - 8537: 0xACF5, - 8538: 0xACF6, - 8539: 0xACFC, - 8540: 0xACFD, - 8541: 0xAD00, - 8542: 0xAD04, - 8543: 0xAD06, - 8544: 0xCF02, - 8545: 0xCF03, - 8546: 0xCF05, - 8547: 0xCF06, - 8548: 0xCF07, - 8549: 0xCF09, - 8550: 0xCF0A, - 8551: 0xCF0B, - 8552: 0xCF0C, - 8553: 0xCF0D, - 8554: 0xCF0E, - 8555: 0xCF0F, - 8556: 0xCF12, - 8557: 0xCF14, - 8558: 0xCF16, - 8559: 0xCF17, - 8560: 0xCF18, - 8561: 0xCF19, - 8562: 0xCF1A, - 8563: 0xCF1B, - 8564: 0xCF1D, - 8565: 0xCF1E, - 8566: 0xCF1F, - 8567: 0xCF21, - 8568: 0xCF22, - 8569: 0xCF23, - 8570: 0xCF25, - 8571: 0xCF26, - 8572: 0xCF27, - 8573: 0xCF28, - 8574: 0xCF29, - 8575: 0xCF2A, - 8576: 0xCF2B, - 8577: 0xCF2E, - 8578: 0xCF32, - 8579: 0xCF33, - 8580: 0xCF34, - 8581: 0xCF35, - 8582: 0xCF36, - 8583: 0xCF37, - 8584: 0xCF39, - 8585: 0xCF3A, - 8586: 0xCF3B, - 8587: 0xCF3C, - 8588: 0xCF3D, - 8589: 0xCF3E, - 8590: 0xCF3F, - 8591: 0xCF40, - 8592: 0xCF41, - 8593: 0xCF42, - 8594: 0xCF43, - 8595: 0xCF44, - 8596: 0xCF45, - 8597: 0xCF46, - 8598: 0xCF47, - 8599: 0xCF48, - 8600: 0xCF49, - 8601: 0xCF4A, - 8602: 0xCF4B, - 8603: 0xCF4C, - 8604: 0xCF4D, - 8605: 0xCF4E, - 8606: 0xCF4F, - 8607: 0xCF50, - 8608: 0xCF51, - 8609: 0xCF52, - 8610: 0xCF53, - 8611: 0xCF56, - 8612: 0xCF57, - 8613: 0xCF59, - 8614: 0xCF5A, - 8615: 0xCF5B, - 8616: 0xCF5D, - 8617: 0xCF5E, - 8618: 0xCF5F, - 8619: 0xCF60, - 8620: 0xCF61, - 8621: 0xCF62, - 8622: 0xCF63, - 8623: 0xCF66, - 8624: 0xCF68, - 8625: 0xCF6A, - 8626: 0xCF6B, - 8627: 0xCF6C, - 8628: 0xAD0C, - 8629: 0xAD0D, - 8630: 0xAD0F, - 8631: 0xAD11, - 8632: 0xAD18, - 8633: 0xAD1C, - 8634: 0xAD20, - 8635: 0xAD29, - 8636: 0xAD2C, - 8637: 0xAD2D, - 8638: 0xAD34, - 8639: 0xAD35, - 8640: 0xAD38, - 8641: 0xAD3C, - 8642: 0xAD44, - 8643: 0xAD45, - 8644: 0xAD47, - 8645: 0xAD49, - 8646: 0xAD50, - 8647: 0xAD54, - 8648: 0xAD58, - 8649: 0xAD61, - 8650: 0xAD63, - 8651: 0xAD6C, - 8652: 0xAD6D, - 8653: 0xAD70, - 8654: 0xAD73, - 8655: 0xAD74, - 8656: 0xAD75, - 8657: 0xAD76, - 8658: 0xAD7B, - 8659: 0xAD7C, - 8660: 0xAD7D, - 8661: 0xAD7F, - 8662: 0xAD81, - 8663: 0xAD82, - 8664: 0xAD88, - 8665: 0xAD89, - 8666: 0xAD8C, - 8667: 0xAD90, - 8668: 0xAD9C, - 8669: 0xAD9D, - 8670: 0xADA4, - 8671: 0xADB7, - 8672: 0xADC0, - 8673: 0xADC1, - 8674: 0xADC4, - 8675: 0xADC8, - 8676: 0xADD0, - 8677: 0xADD1, - 8678: 0xADD3, - 8679: 0xADDC, - 8680: 0xADE0, - 8681: 0xADE4, - 8682: 0xADF8, - 8683: 0xADF9, - 8684: 0xADFC, - 8685: 0xADFF, - 8686: 0xAE00, - 8687: 0xAE01, - 8688: 0xAE08, - 8689: 0xAE09, - 8690: 0xAE0B, - 8691: 0xAE0D, - 8692: 0xAE14, - 8693: 0xAE30, - 8694: 0xAE31, - 8695: 0xAE34, - 8696: 0xAE37, - 8697: 0xAE38, - 8698: 0xAE3A, - 8699: 0xAE40, - 8700: 0xAE41, - 8701: 0xAE43, - 8702: 0xAE45, - 8703: 0xAE46, - 8704: 0xAE4A, - 8705: 0xAE4C, - 8706: 0xAE4D, - 8707: 0xAE4E, - 8708: 0xAE50, - 8709: 0xAE54, - 8710: 0xAE56, - 8711: 0xAE5C, - 8712: 0xAE5D, - 8713: 0xAE5F, - 8714: 0xAE60, - 8715: 0xAE61, - 8716: 0xAE65, - 8717: 0xAE68, - 8718: 0xAE69, - 8719: 0xAE6C, - 8720: 0xAE70, - 8721: 0xAE78, - 8722: 0xCF6D, - 8723: 0xCF6E, - 8724: 0xCF6F, - 8725: 0xCF72, - 8726: 0xCF73, - 8727: 0xCF75, - 8728: 0xCF76, - 8729: 0xCF77, - 8730: 0xCF79, - 8731: 0xCF7A, - 8732: 0xCF7B, - 8733: 0xCF7C, - 8734: 0xCF7D, - 8735: 0xCF7E, - 8736: 0xCF7F, - 8737: 0xCF81, - 8738: 0xCF82, - 8739: 0xCF83, - 8740: 0xCF84, - 8741: 0xCF86, - 8742: 0xCF87, - 8743: 0xCF88, - 8744: 0xCF89, - 8745: 0xCF8A, - 8746: 0xCF8B, - 8747: 0xCF8D, - 8748: 0xCF8E, - 8749: 0xCF8F, - 8750: 0xCF90, - 8751: 0xCF91, - 8752: 0xCF92, - 8753: 0xCF93, - 8754: 0xCF94, - 8755: 0xCF95, - 8756: 0xCF96, - 8757: 0xCF97, - 8758: 0xCF98, - 8759: 0xCF99, - 8760: 0xCF9A, - 8761: 0xCF9B, - 8762: 0xCF9C, - 8763: 0xCF9D, - 8764: 0xCF9E, - 8765: 0xCF9F, - 8766: 0xCFA0, - 8767: 0xCFA2, - 8768: 0xCFA3, - 8769: 0xCFA4, - 8770: 0xCFA5, - 8771: 0xCFA6, - 8772: 0xCFA7, - 8773: 0xCFA9, - 8774: 0xCFAA, - 8775: 0xCFAB, - 8776: 0xCFAC, - 8777: 0xCFAD, - 8778: 0xCFAE, - 8779: 0xCFAF, - 8780: 0xCFB1, - 8781: 0xCFB2, - 8782: 0xCFB3, - 8783: 0xCFB4, - 8784: 0xCFB5, - 8785: 0xCFB6, - 8786: 0xCFB7, - 8787: 0xCFB8, - 8788: 0xCFB9, - 8789: 0xCFBA, - 8790: 0xCFBB, - 8791: 0xCFBC, - 8792: 0xCFBD, - 8793: 0xCFBE, - 8794: 0xCFBF, - 8795: 0xCFC0, - 8796: 0xCFC1, - 8797: 0xCFC2, - 8798: 0xCFC3, - 8799: 0xCFC5, - 8800: 0xCFC6, - 8801: 0xCFC7, - 8802: 0xCFC8, - 8803: 0xCFC9, - 8804: 0xCFCA, - 8805: 0xCFCB, - 8806: 0xAE79, - 8807: 0xAE7B, - 8808: 0xAE7C, - 8809: 0xAE7D, - 8810: 0xAE84, - 8811: 0xAE85, - 8812: 0xAE8C, - 8813: 0xAEBC, - 8814: 0xAEBD, - 8815: 0xAEBE, - 8816: 0xAEC0, - 8817: 0xAEC4, - 8818: 0xAECC, - 8819: 0xAECD, - 8820: 0xAECF, - 8821: 0xAED0, - 8822: 0xAED1, - 8823: 0xAED8, - 8824: 0xAED9, - 8825: 0xAEDC, - 8826: 0xAEE8, - 8827: 0xAEEB, - 8828: 0xAEED, - 8829: 0xAEF4, - 8830: 0xAEF8, - 8831: 0xAEFC, - 8832: 0xAF07, - 8833: 0xAF08, - 8834: 0xAF0D, - 8835: 0xAF10, - 8836: 0xAF2C, - 8837: 0xAF2D, - 8838: 0xAF30, - 8839: 0xAF32, - 8840: 0xAF34, - 8841: 0xAF3C, - 8842: 0xAF3D, - 8843: 0xAF3F, - 8844: 0xAF41, - 8845: 0xAF42, - 8846: 0xAF43, - 8847: 0xAF48, - 8848: 0xAF49, - 8849: 0xAF50, - 8850: 0xAF5C, - 8851: 0xAF5D, - 8852: 0xAF64, - 8853: 0xAF65, - 8854: 0xAF79, - 8855: 0xAF80, - 8856: 0xAF84, - 8857: 0xAF88, - 8858: 0xAF90, - 8859: 0xAF91, - 8860: 0xAF95, - 8861: 0xAF9C, - 8862: 0xAFB8, - 8863: 0xAFB9, - 8864: 0xAFBC, - 8865: 0xAFC0, - 8866: 0xAFC7, - 8867: 0xAFC8, - 8868: 0xAFC9, - 8869: 0xAFCB, - 8870: 0xAFCD, - 8871: 0xAFCE, - 8872: 0xAFD4, - 8873: 0xAFDC, - 8874: 0xAFE8, - 8875: 0xAFE9, - 8876: 0xAFF0, - 8877: 0xAFF1, - 8878: 0xAFF4, - 8879: 0xAFF8, - 8880: 0xB000, - 8881: 0xB001, - 8882: 0xB004, - 8883: 0xB00C, - 8884: 0xB010, - 8885: 0xB014, - 8886: 0xB01C, - 8887: 0xB01D, - 8888: 0xB028, - 8889: 0xB044, - 8890: 0xB045, - 8891: 0xB048, - 8892: 0xB04A, - 8893: 0xB04C, - 8894: 0xB04E, - 8895: 0xB053, - 8896: 0xB054, - 8897: 0xB055, - 8898: 0xB057, - 8899: 0xB059, - 8900: 0xCFCC, - 8901: 0xCFCD, - 8902: 0xCFCE, - 8903: 0xCFCF, - 8904: 0xCFD0, - 8905: 0xCFD1, - 8906: 0xCFD2, - 8907: 0xCFD3, - 8908: 0xCFD4, - 8909: 0xCFD5, - 8910: 0xCFD6, - 8911: 0xCFD7, - 8912: 0xCFD8, - 8913: 0xCFD9, - 8914: 0xCFDA, - 8915: 0xCFDB, - 8916: 0xCFDC, - 8917: 0xCFDD, - 8918: 0xCFDE, - 8919: 0xCFDF, - 8920: 0xCFE2, - 8921: 0xCFE3, - 8922: 0xCFE5, - 8923: 0xCFE6, - 8924: 0xCFE7, - 8925: 0xCFE9, - 8926: 0xCFEA, - 8927: 0xCFEB, - 8928: 0xCFEC, - 8929: 0xCFED, - 8930: 0xCFEE, - 8931: 0xCFEF, - 8932: 0xCFF2, - 8933: 0xCFF4, - 8934: 0xCFF6, - 8935: 0xCFF7, - 8936: 0xCFF8, - 8937: 0xCFF9, - 8938: 0xCFFA, - 8939: 0xCFFB, - 8940: 0xCFFD, - 8941: 0xCFFE, - 8942: 0xCFFF, - 8943: 0xD001, - 8944: 0xD002, - 8945: 0xD003, - 8946: 0xD005, - 8947: 0xD006, - 8948: 0xD007, - 8949: 0xD008, - 8950: 0xD009, - 8951: 0xD00A, - 8952: 0xD00B, - 8953: 0xD00C, - 8954: 0xD00D, - 8955: 0xD00E, - 8956: 0xD00F, - 8957: 0xD010, - 8958: 0xD012, - 8959: 0xD013, - 8960: 0xD014, - 8961: 0xD015, - 8962: 0xD016, - 8963: 0xD017, - 8964: 0xD019, - 8965: 0xD01A, - 8966: 0xD01B, - 8967: 0xD01C, - 8968: 0xD01D, - 8969: 0xD01E, - 8970: 0xD01F, - 8971: 0xD020, - 8972: 0xD021, - 8973: 0xD022, - 8974: 0xD023, - 8975: 0xD024, - 8976: 0xD025, - 8977: 0xD026, - 8978: 0xD027, - 8979: 0xD028, - 8980: 0xD029, - 8981: 0xD02A, - 8982: 0xD02B, - 8983: 0xD02C, - 8984: 0xB05D, - 8985: 0xB07C, - 8986: 0xB07D, - 8987: 0xB080, - 8988: 0xB084, - 8989: 0xB08C, - 8990: 0xB08D, - 8991: 0xB08F, - 8992: 0xB091, - 8993: 0xB098, - 8994: 0xB099, - 8995: 0xB09A, - 8996: 0xB09C, - 8997: 0xB09F, - 8998: 0xB0A0, - 8999: 0xB0A1, - 9000: 0xB0A2, - 9001: 0xB0A8, - 9002: 0xB0A9, - 9003: 0xB0AB, - 9004: 0xB0AC, - 9005: 0xB0AD, - 9006: 0xB0AE, - 9007: 0xB0AF, - 9008: 0xB0B1, - 9009: 0xB0B3, - 9010: 0xB0B4, - 9011: 0xB0B5, - 9012: 0xB0B8, - 9013: 0xB0BC, - 9014: 0xB0C4, - 9015: 0xB0C5, - 9016: 0xB0C7, - 9017: 0xB0C8, - 9018: 0xB0C9, - 9019: 0xB0D0, - 9020: 0xB0D1, - 9021: 0xB0D4, - 9022: 0xB0D8, - 9023: 0xB0E0, - 9024: 0xB0E5, - 9025: 0xB108, - 9026: 0xB109, - 9027: 0xB10B, - 9028: 0xB10C, - 9029: 0xB110, - 9030: 0xB112, - 9031: 0xB113, - 9032: 0xB118, - 9033: 0xB119, - 9034: 0xB11B, - 9035: 0xB11C, - 9036: 0xB11D, - 9037: 0xB123, - 9038: 0xB124, - 9039: 0xB125, - 9040: 0xB128, - 9041: 0xB12C, - 9042: 0xB134, - 9043: 0xB135, - 9044: 0xB137, - 9045: 0xB138, - 9046: 0xB139, - 9047: 0xB140, - 9048: 0xB141, - 9049: 0xB144, - 9050: 0xB148, - 9051: 0xB150, - 9052: 0xB151, - 9053: 0xB154, - 9054: 0xB155, - 9055: 0xB158, - 9056: 0xB15C, - 9057: 0xB160, - 9058: 0xB178, - 9059: 0xB179, - 9060: 0xB17C, - 9061: 0xB180, - 9062: 0xB182, - 9063: 0xB188, - 9064: 0xB189, - 9065: 0xB18B, - 9066: 0xB18D, - 9067: 0xB192, - 9068: 0xB193, - 9069: 0xB194, - 9070: 0xB198, - 9071: 0xB19C, - 9072: 0xB1A8, - 9073: 0xB1CC, - 9074: 0xB1D0, - 9075: 0xB1D4, - 9076: 0xB1DC, - 9077: 0xB1DD, - 9078: 0xD02E, - 9079: 0xD02F, - 9080: 0xD030, - 9081: 0xD031, - 9082: 0xD032, - 9083: 0xD033, - 9084: 0xD036, - 9085: 0xD037, - 9086: 0xD039, - 9087: 0xD03A, - 9088: 0xD03B, - 9089: 0xD03D, - 9090: 0xD03E, - 9091: 0xD03F, - 9092: 0xD040, - 9093: 0xD041, - 9094: 0xD042, - 9095: 0xD043, - 9096: 0xD046, - 9097: 0xD048, - 9098: 0xD04A, - 9099: 0xD04B, - 9100: 0xD04C, - 9101: 0xD04D, - 9102: 0xD04E, - 9103: 0xD04F, - 9104: 0xD051, - 9105: 0xD052, - 9106: 0xD053, - 9107: 0xD055, - 9108: 0xD056, - 9109: 0xD057, - 9110: 0xD059, - 9111: 0xD05A, - 9112: 0xD05B, - 9113: 0xD05C, - 9114: 0xD05D, - 9115: 0xD05E, - 9116: 0xD05F, - 9117: 0xD061, - 9118: 0xD062, - 9119: 0xD063, - 9120: 0xD064, - 9121: 0xD065, - 9122: 0xD066, - 9123: 0xD067, - 9124: 0xD068, - 9125: 0xD069, - 9126: 0xD06A, - 9127: 0xD06B, - 9128: 0xD06E, - 9129: 0xD06F, - 9130: 0xD071, - 9131: 0xD072, - 9132: 0xD073, - 9133: 0xD075, - 9134: 0xD076, - 9135: 0xD077, - 9136: 0xD078, - 9137: 0xD079, - 9138: 0xD07A, - 9139: 0xD07B, - 9140: 0xD07E, - 9141: 0xD07F, - 9142: 0xD080, - 9143: 0xD082, - 9144: 0xD083, - 9145: 0xD084, - 9146: 0xD085, - 9147: 0xD086, - 9148: 0xD087, - 9149: 0xD088, - 9150: 0xD089, - 9151: 0xD08A, - 9152: 0xD08B, - 9153: 0xD08C, - 9154: 0xD08D, - 9155: 0xD08E, - 9156: 0xD08F, - 9157: 0xD090, - 9158: 0xD091, - 9159: 0xD092, - 9160: 0xD093, - 9161: 0xD094, - 9162: 0xB1DF, - 9163: 0xB1E8, - 9164: 0xB1E9, - 9165: 0xB1EC, - 9166: 0xB1F0, - 9167: 0xB1F9, - 9168: 0xB1FB, - 9169: 0xB1FD, - 9170: 0xB204, - 9171: 0xB205, - 9172: 0xB208, - 9173: 0xB20B, - 9174: 0xB20C, - 9175: 0xB214, - 9176: 0xB215, - 9177: 0xB217, - 9178: 0xB219, - 9179: 0xB220, - 9180: 0xB234, - 9181: 0xB23C, - 9182: 0xB258, - 9183: 0xB25C, - 9184: 0xB260, - 9185: 0xB268, - 9186: 0xB269, - 9187: 0xB274, - 9188: 0xB275, - 9189: 0xB27C, - 9190: 0xB284, - 9191: 0xB285, - 9192: 0xB289, - 9193: 0xB290, - 9194: 0xB291, - 9195: 0xB294, - 9196: 0xB298, - 9197: 0xB299, - 9198: 0xB29A, - 9199: 0xB2A0, - 9200: 0xB2A1, - 9201: 0xB2A3, - 9202: 0xB2A5, - 9203: 0xB2A6, - 9204: 0xB2AA, - 9205: 0xB2AC, - 9206: 0xB2B0, - 9207: 0xB2B4, - 9208: 0xB2C8, - 9209: 0xB2C9, - 9210: 0xB2CC, - 9211: 0xB2D0, - 9212: 0xB2D2, - 9213: 0xB2D8, - 9214: 0xB2D9, - 9215: 0xB2DB, - 9216: 0xB2DD, - 9217: 0xB2E2, - 9218: 0xB2E4, - 9219: 0xB2E5, - 9220: 0xB2E6, - 9221: 0xB2E8, - 9222: 0xB2EB, - 9223: 0xB2EC, - 9224: 0xB2ED, - 9225: 0xB2EE, - 9226: 0xB2EF, - 9227: 0xB2F3, - 9228: 0xB2F4, - 9229: 0xB2F5, - 9230: 0xB2F7, - 9231: 0xB2F8, - 9232: 0xB2F9, - 9233: 0xB2FA, - 9234: 0xB2FB, - 9235: 0xB2FF, - 9236: 0xB300, - 9237: 0xB301, - 9238: 0xB304, - 9239: 0xB308, - 9240: 0xB310, - 9241: 0xB311, - 9242: 0xB313, - 9243: 0xB314, - 9244: 0xB315, - 9245: 0xB31C, - 9246: 0xB354, - 9247: 0xB355, - 9248: 0xB356, - 9249: 0xB358, - 9250: 0xB35B, - 9251: 0xB35C, - 9252: 0xB35E, - 9253: 0xB35F, - 9254: 0xB364, - 9255: 0xB365, - 9256: 0xD095, - 9257: 0xD096, - 9258: 0xD097, - 9259: 0xD098, - 9260: 0xD099, - 9261: 0xD09A, - 9262: 0xD09B, - 9263: 0xD09C, - 9264: 0xD09D, - 9265: 0xD09E, - 9266: 0xD09F, - 9267: 0xD0A0, - 9268: 0xD0A1, - 9269: 0xD0A2, - 9270: 0xD0A3, - 9271: 0xD0A6, - 9272: 0xD0A7, - 9273: 0xD0A9, - 9274: 0xD0AA, - 9275: 0xD0AB, - 9276: 0xD0AD, - 9277: 0xD0AE, - 9278: 0xD0AF, - 9279: 0xD0B0, - 9280: 0xD0B1, - 9281: 0xD0B2, - 9282: 0xD0B3, - 9283: 0xD0B6, - 9284: 0xD0B8, - 9285: 0xD0BA, - 9286: 0xD0BB, - 9287: 0xD0BC, - 9288: 0xD0BD, - 9289: 0xD0BE, - 9290: 0xD0BF, - 9291: 0xD0C2, - 9292: 0xD0C3, - 9293: 0xD0C5, - 9294: 0xD0C6, - 9295: 0xD0C7, - 9296: 0xD0CA, - 9297: 0xD0CB, - 9298: 0xD0CC, - 9299: 0xD0CD, - 9300: 0xD0CE, - 9301: 0xD0CF, - 9302: 0xD0D2, - 9303: 0xD0D6, - 9304: 0xD0D7, - 9305: 0xD0D8, - 9306: 0xD0D9, - 9307: 0xD0DA, - 9308: 0xD0DB, - 9309: 0xD0DE, - 9310: 0xD0DF, - 9311: 0xD0E1, - 9312: 0xD0E2, - 9313: 0xD0E3, - 9314: 0xD0E5, - 9315: 0xD0E6, - 9316: 0xD0E7, - 9317: 0xD0E8, - 9318: 0xD0E9, - 9319: 0xD0EA, - 9320: 0xD0EB, - 9321: 0xD0EE, - 9322: 0xD0F2, - 9323: 0xD0F3, - 9324: 0xD0F4, - 9325: 0xD0F5, - 9326: 0xD0F6, - 9327: 0xD0F7, - 9328: 0xD0F9, - 9329: 0xD0FA, - 9330: 0xD0FB, - 9331: 0xD0FC, - 9332: 0xD0FD, - 9333: 0xD0FE, - 9334: 0xD0FF, - 9335: 0xD100, - 9336: 0xD101, - 9337: 0xD102, - 9338: 0xD103, - 9339: 0xD104, - 9340: 0xB367, - 9341: 0xB369, - 9342: 0xB36B, - 9343: 0xB36E, - 9344: 0xB370, - 9345: 0xB371, - 9346: 0xB374, - 9347: 0xB378, - 9348: 0xB380, - 9349: 0xB381, - 9350: 0xB383, - 9351: 0xB384, - 9352: 0xB385, - 9353: 0xB38C, - 9354: 0xB390, - 9355: 0xB394, - 9356: 0xB3A0, - 9357: 0xB3A1, - 9358: 0xB3A8, - 9359: 0xB3AC, - 9360: 0xB3C4, - 9361: 0xB3C5, - 9362: 0xB3C8, - 9363: 0xB3CB, - 9364: 0xB3CC, - 9365: 0xB3CE, - 9366: 0xB3D0, - 9367: 0xB3D4, - 9368: 0xB3D5, - 9369: 0xB3D7, - 9370: 0xB3D9, - 9371: 0xB3DB, - 9372: 0xB3DD, - 9373: 0xB3E0, - 9374: 0xB3E4, - 9375: 0xB3E8, - 9376: 0xB3FC, - 9377: 0xB410, - 9378: 0xB418, - 9379: 0xB41C, - 9380: 0xB420, - 9381: 0xB428, - 9382: 0xB429, - 9383: 0xB42B, - 9384: 0xB434, - 9385: 0xB450, - 9386: 0xB451, - 9387: 0xB454, - 9388: 0xB458, - 9389: 0xB460, - 9390: 0xB461, - 9391: 0xB463, - 9392: 0xB465, - 9393: 0xB46C, - 9394: 0xB480, - 9395: 0xB488, - 9396: 0xB49D, - 9397: 0xB4A4, - 9398: 0xB4A8, - 9399: 0xB4AC, - 9400: 0xB4B5, - 9401: 0xB4B7, - 9402: 0xB4B9, - 9403: 0xB4C0, - 9404: 0xB4C4, - 9405: 0xB4C8, - 9406: 0xB4D0, - 9407: 0xB4D5, - 9408: 0xB4DC, - 9409: 0xB4DD, - 9410: 0xB4E0, - 9411: 0xB4E3, - 9412: 0xB4E4, - 9413: 0xB4E6, - 9414: 0xB4EC, - 9415: 0xB4ED, - 9416: 0xB4EF, - 9417: 0xB4F1, - 9418: 0xB4F8, - 9419: 0xB514, - 9420: 0xB515, - 9421: 0xB518, - 9422: 0xB51B, - 9423: 0xB51C, - 9424: 0xB524, - 9425: 0xB525, - 9426: 0xB527, - 9427: 0xB528, - 9428: 0xB529, - 9429: 0xB52A, - 9430: 0xB530, - 9431: 0xB531, - 9432: 0xB534, - 9433: 0xB538, - 9434: 0xD105, - 9435: 0xD106, - 9436: 0xD107, - 9437: 0xD108, - 9438: 0xD109, - 9439: 0xD10A, - 9440: 0xD10B, - 9441: 0xD10C, - 9442: 0xD10E, - 9443: 0xD10F, - 9444: 0xD110, - 9445: 0xD111, - 9446: 0xD112, - 9447: 0xD113, - 9448: 0xD114, - 9449: 0xD115, - 9450: 0xD116, - 9451: 0xD117, - 9452: 0xD118, - 9453: 0xD119, - 9454: 0xD11A, - 9455: 0xD11B, - 9456: 0xD11C, - 9457: 0xD11D, - 9458: 0xD11E, - 9459: 0xD11F, - 9460: 0xD120, - 9461: 0xD121, - 9462: 0xD122, - 9463: 0xD123, - 9464: 0xD124, - 9465: 0xD125, - 9466: 0xD126, - 9467: 0xD127, - 9468: 0xD128, - 9469: 0xD129, - 9470: 0xD12A, - 9471: 0xD12B, - 9472: 0xD12C, - 9473: 0xD12D, - 9474: 0xD12E, - 9475: 0xD12F, - 9476: 0xD132, - 9477: 0xD133, - 9478: 0xD135, - 9479: 0xD136, - 9480: 0xD137, - 9481: 0xD139, - 9482: 0xD13B, - 9483: 0xD13C, - 9484: 0xD13D, - 9485: 0xD13E, - 9486: 0xD13F, - 9487: 0xD142, - 9488: 0xD146, - 9489: 0xD147, - 9490: 0xD148, - 9491: 0xD149, - 9492: 0xD14A, - 9493: 0xD14B, - 9494: 0xD14E, - 9495: 0xD14F, - 9496: 0xD151, - 9497: 0xD152, - 9498: 0xD153, - 9499: 0xD155, - 9500: 0xD156, - 9501: 0xD157, - 9502: 0xD158, - 9503: 0xD159, - 9504: 0xD15A, - 9505: 0xD15B, - 9506: 0xD15E, - 9507: 0xD160, - 9508: 0xD162, - 9509: 0xD163, - 9510: 0xD164, - 9511: 0xD165, - 9512: 0xD166, - 9513: 0xD167, - 9514: 0xD169, - 9515: 0xD16A, - 9516: 0xD16B, - 9517: 0xD16D, - 9518: 0xB540, - 9519: 0xB541, - 9520: 0xB543, - 9521: 0xB544, - 9522: 0xB545, - 9523: 0xB54B, - 9524: 0xB54C, - 9525: 0xB54D, - 9526: 0xB550, - 9527: 0xB554, - 9528: 0xB55C, - 9529: 0xB55D, - 9530: 0xB55F, - 9531: 0xB560, - 9532: 0xB561, - 9533: 0xB5A0, - 9534: 0xB5A1, - 9535: 0xB5A4, - 9536: 0xB5A8, - 9537: 0xB5AA, - 9538: 0xB5AB, - 9539: 0xB5B0, - 9540: 0xB5B1, - 9541: 0xB5B3, - 9542: 0xB5B4, - 9543: 0xB5B5, - 9544: 0xB5BB, - 9545: 0xB5BC, - 9546: 0xB5BD, - 9547: 0xB5C0, - 9548: 0xB5C4, - 9549: 0xB5CC, - 9550: 0xB5CD, - 9551: 0xB5CF, - 9552: 0xB5D0, - 9553: 0xB5D1, - 9554: 0xB5D8, - 9555: 0xB5EC, - 9556: 0xB610, - 9557: 0xB611, - 9558: 0xB614, - 9559: 0xB618, - 9560: 0xB625, - 9561: 0xB62C, - 9562: 0xB634, - 9563: 0xB648, - 9564: 0xB664, - 9565: 0xB668, - 9566: 0xB69C, - 9567: 0xB69D, - 9568: 0xB6A0, - 9569: 0xB6A4, - 9570: 0xB6AB, - 9571: 0xB6AC, - 9572: 0xB6B1, - 9573: 0xB6D4, - 9574: 0xB6F0, - 9575: 0xB6F4, - 9576: 0xB6F8, - 9577: 0xB700, - 9578: 0xB701, - 9579: 0xB705, - 9580: 0xB728, - 9581: 0xB729, - 9582: 0xB72C, - 9583: 0xB72F, - 9584: 0xB730, - 9585: 0xB738, - 9586: 0xB739, - 9587: 0xB73B, - 9588: 0xB744, - 9589: 0xB748, - 9590: 0xB74C, - 9591: 0xB754, - 9592: 0xB755, - 9593: 0xB760, - 9594: 0xB764, - 9595: 0xB768, - 9596: 0xB770, - 9597: 0xB771, - 9598: 0xB773, - 9599: 0xB775, - 9600: 0xB77C, - 9601: 0xB77D, - 9602: 0xB780, - 9603: 0xB784, - 9604: 0xB78C, - 9605: 0xB78D, - 9606: 0xB78F, - 9607: 0xB790, - 9608: 0xB791, - 9609: 0xB792, - 9610: 0xB796, - 9611: 0xB797, - 9612: 0xD16E, - 9613: 0xD16F, - 9614: 0xD170, - 9615: 0xD171, - 9616: 0xD172, - 9617: 0xD173, - 9618: 0xD174, - 9619: 0xD175, - 9620: 0xD176, - 9621: 0xD177, - 9622: 0xD178, - 9623: 0xD179, - 9624: 0xD17A, - 9625: 0xD17B, - 9626: 0xD17D, - 9627: 0xD17E, - 9628: 0xD17F, - 9629: 0xD180, - 9630: 0xD181, - 9631: 0xD182, - 9632: 0xD183, - 9633: 0xD185, - 9634: 0xD186, - 9635: 0xD187, - 9636: 0xD189, - 9637: 0xD18A, - 9638: 0xD18B, - 9639: 0xD18C, - 9640: 0xD18D, - 9641: 0xD18E, - 9642: 0xD18F, - 9643: 0xD190, - 9644: 0xD191, - 9645: 0xD192, - 9646: 0xD193, - 9647: 0xD194, - 9648: 0xD195, - 9649: 0xD196, - 9650: 0xD197, - 9651: 0xD198, - 9652: 0xD199, - 9653: 0xD19A, - 9654: 0xD19B, - 9655: 0xD19C, - 9656: 0xD19D, - 9657: 0xD19E, - 9658: 0xD19F, - 9659: 0xD1A2, - 9660: 0xD1A3, - 9661: 0xD1A5, - 9662: 0xD1A6, - 9663: 0xD1A7, - 9664: 0xD1A9, - 9665: 0xD1AA, - 9666: 0xD1AB, - 9667: 0xD1AC, - 9668: 0xD1AD, - 9669: 0xD1AE, - 9670: 0xD1AF, - 9671: 0xD1B2, - 9672: 0xD1B4, - 9673: 0xD1B6, - 9674: 0xD1B7, - 9675: 0xD1B8, - 9676: 0xD1B9, - 9677: 0xD1BB, - 9678: 0xD1BD, - 9679: 0xD1BE, - 9680: 0xD1BF, - 9681: 0xD1C1, - 9682: 0xD1C2, - 9683: 0xD1C3, - 9684: 0xD1C4, - 9685: 0xD1C5, - 9686: 0xD1C6, - 9687: 0xD1C7, - 9688: 0xD1C8, - 9689: 0xD1C9, - 9690: 0xD1CA, - 9691: 0xD1CB, - 9692: 0xD1CC, - 9693: 0xD1CD, - 9694: 0xD1CE, - 9695: 0xD1CF, - 9696: 0xB798, - 9697: 0xB799, - 9698: 0xB79C, - 9699: 0xB7A0, - 9700: 0xB7A8, - 9701: 0xB7A9, - 9702: 0xB7AB, - 9703: 0xB7AC, - 9704: 0xB7AD, - 9705: 0xB7B4, - 9706: 0xB7B5, - 9707: 0xB7B8, - 9708: 0xB7C7, - 9709: 0xB7C9, - 9710: 0xB7EC, - 9711: 0xB7ED, - 9712: 0xB7F0, - 9713: 0xB7F4, - 9714: 0xB7FC, - 9715: 0xB7FD, - 9716: 0xB7FF, - 9717: 0xB800, - 9718: 0xB801, - 9719: 0xB807, - 9720: 0xB808, - 9721: 0xB809, - 9722: 0xB80C, - 9723: 0xB810, - 9724: 0xB818, - 9725: 0xB819, - 9726: 0xB81B, - 9727: 0xB81D, - 9728: 0xB824, - 9729: 0xB825, - 9730: 0xB828, - 9731: 0xB82C, - 9732: 0xB834, - 9733: 0xB835, - 9734: 0xB837, - 9735: 0xB838, - 9736: 0xB839, - 9737: 0xB840, - 9738: 0xB844, - 9739: 0xB851, - 9740: 0xB853, - 9741: 0xB85C, - 9742: 0xB85D, - 9743: 0xB860, - 9744: 0xB864, - 9745: 0xB86C, - 9746: 0xB86D, - 9747: 0xB86F, - 9748: 0xB871, - 9749: 0xB878, - 9750: 0xB87C, - 9751: 0xB88D, - 9752: 0xB8A8, - 9753: 0xB8B0, - 9754: 0xB8B4, - 9755: 0xB8B8, - 9756: 0xB8C0, - 9757: 0xB8C1, - 9758: 0xB8C3, - 9759: 0xB8C5, - 9760: 0xB8CC, - 9761: 0xB8D0, - 9762: 0xB8D4, - 9763: 0xB8DD, - 9764: 0xB8DF, - 9765: 0xB8E1, - 9766: 0xB8E8, - 9767: 0xB8E9, - 9768: 0xB8EC, - 9769: 0xB8F0, - 9770: 0xB8F8, - 9771: 0xB8F9, - 9772: 0xB8FB, - 9773: 0xB8FD, - 9774: 0xB904, - 9775: 0xB918, - 9776: 0xB920, - 9777: 0xB93C, - 9778: 0xB93D, - 9779: 0xB940, - 9780: 0xB944, - 9781: 0xB94C, - 9782: 0xB94F, - 9783: 0xB951, - 9784: 0xB958, - 9785: 0xB959, - 9786: 0xB95C, - 9787: 0xB960, - 9788: 0xB968, - 9789: 0xB969, - 9790: 0xD1D0, - 9791: 0xD1D1, - 9792: 0xD1D2, - 9793: 0xD1D3, - 9794: 0xD1D4, - 9795: 0xD1D5, - 9796: 0xD1D6, - 9797: 0xD1D7, - 9798: 0xD1D9, - 9799: 0xD1DA, - 9800: 0xD1DB, - 9801: 0xD1DC, - 9802: 0xD1DD, - 9803: 0xD1DE, - 9804: 0xD1DF, - 9805: 0xD1E0, - 9806: 0xD1E1, - 9807: 0xD1E2, - 9808: 0xD1E3, - 9809: 0xD1E4, - 9810: 0xD1E5, - 9811: 0xD1E6, - 9812: 0xD1E7, - 9813: 0xD1E8, - 9814: 0xD1E9, - 9815: 0xD1EA, - 9816: 0xD1EB, - 9817: 0xD1EC, - 9818: 0xD1ED, - 9819: 0xD1EE, - 9820: 0xD1EF, - 9821: 0xD1F0, - 9822: 0xD1F1, - 9823: 0xD1F2, - 9824: 0xD1F3, - 9825: 0xD1F5, - 9826: 0xD1F6, - 9827: 0xD1F7, - 9828: 0xD1F9, - 9829: 0xD1FA, - 9830: 0xD1FB, - 9831: 0xD1FC, - 9832: 0xD1FD, - 9833: 0xD1FE, - 9834: 0xD1FF, - 9835: 0xD200, - 9836: 0xD201, - 9837: 0xD202, - 9838: 0xD203, - 9839: 0xD204, - 9840: 0xD205, - 9841: 0xD206, - 9842: 0xD208, - 9843: 0xD20A, - 9844: 0xD20B, - 9845: 0xD20C, - 9846: 0xD20D, - 9847: 0xD20E, - 9848: 0xD20F, - 9849: 0xD211, - 9850: 0xD212, - 9851: 0xD213, - 9852: 0xD214, - 9853: 0xD215, - 9854: 0xD216, - 9855: 0xD217, - 9856: 0xD218, - 9857: 0xD219, - 9858: 0xD21A, - 9859: 0xD21B, - 9860: 0xD21C, - 9861: 0xD21D, - 9862: 0xD21E, - 9863: 0xD21F, - 9864: 0xD220, - 9865: 0xD221, - 9866: 0xD222, - 9867: 0xD223, - 9868: 0xD224, - 9869: 0xD225, - 9870: 0xD226, - 9871: 0xD227, - 9872: 0xD228, - 9873: 0xD229, - 9874: 0xB96B, - 9875: 0xB96D, - 9876: 0xB974, - 9877: 0xB975, - 9878: 0xB978, - 9879: 0xB97C, - 9880: 0xB984, - 9881: 0xB985, - 9882: 0xB987, - 9883: 0xB989, - 9884: 0xB98A, - 9885: 0xB98D, - 9886: 0xB98E, - 9887: 0xB9AC, - 9888: 0xB9AD, - 9889: 0xB9B0, - 9890: 0xB9B4, - 9891: 0xB9BC, - 9892: 0xB9BD, - 9893: 0xB9BF, - 9894: 0xB9C1, - 9895: 0xB9C8, - 9896: 0xB9C9, - 9897: 0xB9CC, - 9898: 0xB9CE, - 9899: 0xB9CF, - 9900: 0xB9D0, - 9901: 0xB9D1, - 9902: 0xB9D2, - 9903: 0xB9D8, - 9904: 0xB9D9, - 9905: 0xB9DB, - 9906: 0xB9DD, - 9907: 0xB9DE, - 9908: 0xB9E1, - 9909: 0xB9E3, - 9910: 0xB9E4, - 9911: 0xB9E5, - 9912: 0xB9E8, - 9913: 0xB9EC, - 9914: 0xB9F4, - 9915: 0xB9F5, - 9916: 0xB9F7, - 9917: 0xB9F8, - 9918: 0xB9F9, - 9919: 0xB9FA, - 9920: 0xBA00, - 9921: 0xBA01, - 9922: 0xBA08, - 9923: 0xBA15, - 9924: 0xBA38, - 9925: 0xBA39, - 9926: 0xBA3C, - 9927: 0xBA40, - 9928: 0xBA42, - 9929: 0xBA48, - 9930: 0xBA49, - 9931: 0xBA4B, - 9932: 0xBA4D, - 9933: 0xBA4E, - 9934: 0xBA53, - 9935: 0xBA54, - 9936: 0xBA55, - 9937: 0xBA58, - 9938: 0xBA5C, - 9939: 0xBA64, - 9940: 0xBA65, - 9941: 0xBA67, - 9942: 0xBA68, - 9943: 0xBA69, - 9944: 0xBA70, - 9945: 0xBA71, - 9946: 0xBA74, - 9947: 0xBA78, - 9948: 0xBA83, - 9949: 0xBA84, - 9950: 0xBA85, - 9951: 0xBA87, - 9952: 0xBA8C, - 9953: 0xBAA8, - 9954: 0xBAA9, - 9955: 0xBAAB, - 9956: 0xBAAC, - 9957: 0xBAB0, - 9958: 0xBAB2, - 9959: 0xBAB8, - 9960: 0xBAB9, - 9961: 0xBABB, - 9962: 0xBABD, - 9963: 0xBAC4, - 9964: 0xBAC8, - 9965: 0xBAD8, - 9966: 0xBAD9, - 9967: 0xBAFC, - 9968: 0xD22A, - 9969: 0xD22B, - 9970: 0xD22E, - 9971: 0xD22F, - 9972: 0xD231, - 9973: 0xD232, - 9974: 0xD233, - 9975: 0xD235, - 9976: 0xD236, - 9977: 0xD237, - 9978: 0xD238, - 9979: 0xD239, - 9980: 0xD23A, - 9981: 0xD23B, - 9982: 0xD23E, - 9983: 0xD240, - 9984: 0xD242, - 9985: 0xD243, - 9986: 0xD244, - 9987: 0xD245, - 9988: 0xD246, - 9989: 0xD247, - 9990: 0xD249, - 9991: 0xD24A, - 9992: 0xD24B, - 9993: 0xD24C, - 9994: 0xD24D, - 9995: 0xD24E, - 9996: 0xD24F, - 9997: 0xD250, - 9998: 0xD251, - 9999: 0xD252, - 10000: 0xD253, - 10001: 0xD254, - 10002: 0xD255, - 10003: 0xD256, - 10004: 0xD257, - 10005: 0xD258, - 10006: 0xD259, - 10007: 0xD25A, - 10008: 0xD25B, - 10009: 0xD25D, - 10010: 0xD25E, - 10011: 0xD25F, - 10012: 0xD260, - 10013: 0xD261, - 10014: 0xD262, - 10015: 0xD263, - 10016: 0xD265, - 10017: 0xD266, - 10018: 0xD267, - 10019: 0xD268, - 10020: 0xD269, - 10021: 0xD26A, - 10022: 0xD26B, - 10023: 0xD26C, - 10024: 0xD26D, - 10025: 0xD26E, - 10026: 0xD26F, - 10027: 0xD270, - 10028: 0xD271, - 10029: 0xD272, - 10030: 0xD273, - 10031: 0xD274, - 10032: 0xD275, - 10033: 0xD276, - 10034: 0xD277, - 10035: 0xD278, - 10036: 0xD279, - 10037: 0xD27A, - 10038: 0xD27B, - 10039: 0xD27C, - 10040: 0xD27D, - 10041: 0xD27E, - 10042: 0xD27F, - 10043: 0xD282, - 10044: 0xD283, - 10045: 0xD285, - 10046: 0xD286, - 10047: 0xD287, - 10048: 0xD289, - 10049: 0xD28A, - 10050: 0xD28B, - 10051: 0xD28C, - 10052: 0xBB00, - 10053: 0xBB04, - 10054: 0xBB0D, - 10055: 0xBB0F, - 10056: 0xBB11, - 10057: 0xBB18, - 10058: 0xBB1C, - 10059: 0xBB20, - 10060: 0xBB29, - 10061: 0xBB2B, - 10062: 0xBB34, - 10063: 0xBB35, - 10064: 0xBB36, - 10065: 0xBB38, - 10066: 0xBB3B, - 10067: 0xBB3C, - 10068: 0xBB3D, - 10069: 0xBB3E, - 10070: 0xBB44, - 10071: 0xBB45, - 10072: 0xBB47, - 10073: 0xBB49, - 10074: 0xBB4D, - 10075: 0xBB4F, - 10076: 0xBB50, - 10077: 0xBB54, - 10078: 0xBB58, - 10079: 0xBB61, - 10080: 0xBB63, - 10081: 0xBB6C, - 10082: 0xBB88, - 10083: 0xBB8C, - 10084: 0xBB90, - 10085: 0xBBA4, - 10086: 0xBBA8, - 10087: 0xBBAC, - 10088: 0xBBB4, - 10089: 0xBBB7, - 10090: 0xBBC0, - 10091: 0xBBC4, - 10092: 0xBBC8, - 10093: 0xBBD0, - 10094: 0xBBD3, - 10095: 0xBBF8, - 10096: 0xBBF9, - 10097: 0xBBFC, - 10098: 0xBBFF, - 10099: 0xBC00, - 10100: 0xBC02, - 10101: 0xBC08, - 10102: 0xBC09, - 10103: 0xBC0B, - 10104: 0xBC0C, - 10105: 0xBC0D, - 10106: 0xBC0F, - 10107: 0xBC11, - 10108: 0xBC14, - 10109: 0xBC15, - 10110: 0xBC16, - 10111: 0xBC17, - 10112: 0xBC18, - 10113: 0xBC1B, - 10114: 0xBC1C, - 10115: 0xBC1D, - 10116: 0xBC1E, - 10117: 0xBC1F, - 10118: 0xBC24, - 10119: 0xBC25, - 10120: 0xBC27, - 10121: 0xBC29, - 10122: 0xBC2D, - 10123: 0xBC30, - 10124: 0xBC31, - 10125: 0xBC34, - 10126: 0xBC38, - 10127: 0xBC40, - 10128: 0xBC41, - 10129: 0xBC43, - 10130: 0xBC44, - 10131: 0xBC45, - 10132: 0xBC49, - 10133: 0xBC4C, - 10134: 0xBC4D, - 10135: 0xBC50, - 10136: 0xBC5D, - 10137: 0xBC84, - 10138: 0xBC85, - 10139: 0xBC88, - 10140: 0xBC8B, - 10141: 0xBC8C, - 10142: 0xBC8E, - 10143: 0xBC94, - 10144: 0xBC95, - 10145: 0xBC97, - 10146: 0xD28D, - 10147: 0xD28E, - 10148: 0xD28F, - 10149: 0xD292, - 10150: 0xD293, - 10151: 0xD294, - 10152: 0xD296, - 10153: 0xD297, - 10154: 0xD298, - 10155: 0xD299, - 10156: 0xD29A, - 10157: 0xD29B, - 10158: 0xD29D, - 10159: 0xD29E, - 10160: 0xD29F, - 10161: 0xD2A1, - 10162: 0xD2A2, - 10163: 0xD2A3, - 10164: 0xD2A5, - 10165: 0xD2A6, - 10166: 0xD2A7, - 10167: 0xD2A8, - 10168: 0xD2A9, - 10169: 0xD2AA, - 10170: 0xD2AB, - 10171: 0xD2AD, - 10172: 0xD2AE, - 10173: 0xD2AF, - 10174: 0xD2B0, - 10175: 0xD2B2, - 10176: 0xD2B3, - 10177: 0xD2B4, - 10178: 0xD2B5, - 10179: 0xD2B6, - 10180: 0xD2B7, - 10181: 0xD2BA, - 10182: 0xD2BB, - 10183: 0xD2BD, - 10184: 0xD2BE, - 10185: 0xD2C1, - 10186: 0xD2C3, - 10187: 0xD2C4, - 10188: 0xD2C5, - 10189: 0xD2C6, - 10190: 0xD2C7, - 10191: 0xD2CA, - 10192: 0xD2CC, - 10193: 0xD2CD, - 10194: 0xD2CE, - 10195: 0xD2CF, - 10196: 0xD2D0, - 10197: 0xD2D1, - 10198: 0xD2D2, - 10199: 0xD2D3, - 10200: 0xD2D5, - 10201: 0xD2D6, - 10202: 0xD2D7, - 10203: 0xD2D9, - 10204: 0xD2DA, - 10205: 0xD2DB, - 10206: 0xD2DD, - 10207: 0xD2DE, - 10208: 0xD2DF, - 10209: 0xD2E0, - 10210: 0xD2E1, - 10211: 0xD2E2, - 10212: 0xD2E3, - 10213: 0xD2E6, - 10214: 0xD2E7, - 10215: 0xD2E8, - 10216: 0xD2E9, - 10217: 0xD2EA, - 10218: 0xD2EB, - 10219: 0xD2EC, - 10220: 0xD2ED, - 10221: 0xD2EE, - 10222: 0xD2EF, - 10223: 0xD2F2, - 10224: 0xD2F3, - 10225: 0xD2F5, - 10226: 0xD2F6, - 10227: 0xD2F7, - 10228: 0xD2F9, - 10229: 0xD2FA, - 10230: 0xBC99, - 10231: 0xBC9A, - 10232: 0xBCA0, - 10233: 0xBCA1, - 10234: 0xBCA4, - 10235: 0xBCA7, - 10236: 0xBCA8, - 10237: 0xBCB0, - 10238: 0xBCB1, - 10239: 0xBCB3, - 10240: 0xBCB4, - 10241: 0xBCB5, - 10242: 0xBCBC, - 10243: 0xBCBD, - 10244: 0xBCC0, - 10245: 0xBCC4, - 10246: 0xBCCD, - 10247: 0xBCCF, - 10248: 0xBCD0, - 10249: 0xBCD1, - 10250: 0xBCD5, - 10251: 0xBCD8, - 10252: 0xBCDC, - 10253: 0xBCF4, - 10254: 0xBCF5, - 10255: 0xBCF6, - 10256: 0xBCF8, - 10257: 0xBCFC, - 10258: 0xBD04, - 10259: 0xBD05, - 10260: 0xBD07, - 10261: 0xBD09, - 10262: 0xBD10, - 10263: 0xBD14, - 10264: 0xBD24, - 10265: 0xBD2C, - 10266: 0xBD40, - 10267: 0xBD48, - 10268: 0xBD49, - 10269: 0xBD4C, - 10270: 0xBD50, - 10271: 0xBD58, - 10272: 0xBD59, - 10273: 0xBD64, - 10274: 0xBD68, - 10275: 0xBD80, - 10276: 0xBD81, - 10277: 0xBD84, - 10278: 0xBD87, - 10279: 0xBD88, - 10280: 0xBD89, - 10281: 0xBD8A, - 10282: 0xBD90, - 10283: 0xBD91, - 10284: 0xBD93, - 10285: 0xBD95, - 10286: 0xBD99, - 10287: 0xBD9A, - 10288: 0xBD9C, - 10289: 0xBDA4, - 10290: 0xBDB0, - 10291: 0xBDB8, - 10292: 0xBDD4, - 10293: 0xBDD5, - 10294: 0xBDD8, - 10295: 0xBDDC, - 10296: 0xBDE9, - 10297: 0xBDF0, - 10298: 0xBDF4, - 10299: 0xBDF8, - 10300: 0xBE00, - 10301: 0xBE03, - 10302: 0xBE05, - 10303: 0xBE0C, - 10304: 0xBE0D, - 10305: 0xBE10, - 10306: 0xBE14, - 10307: 0xBE1C, - 10308: 0xBE1D, - 10309: 0xBE1F, - 10310: 0xBE44, - 10311: 0xBE45, - 10312: 0xBE48, - 10313: 0xBE4C, - 10314: 0xBE4E, - 10315: 0xBE54, - 10316: 0xBE55, - 10317: 0xBE57, - 10318: 0xBE59, - 10319: 0xBE5A, - 10320: 0xBE5B, - 10321: 0xBE60, - 10322: 0xBE61, - 10323: 0xBE64, - 10324: 0xD2FB, - 10325: 0xD2FC, - 10326: 0xD2FD, - 10327: 0xD2FE, - 10328: 0xD2FF, - 10329: 0xD302, - 10330: 0xD304, - 10331: 0xD306, - 10332: 0xD307, - 10333: 0xD308, - 10334: 0xD309, - 10335: 0xD30A, - 10336: 0xD30B, - 10337: 0xD30F, - 10338: 0xD311, - 10339: 0xD312, - 10340: 0xD313, - 10341: 0xD315, - 10342: 0xD317, - 10343: 0xD318, - 10344: 0xD319, - 10345: 0xD31A, - 10346: 0xD31B, - 10347: 0xD31E, - 10348: 0xD322, - 10349: 0xD323, - 10350: 0xD324, - 10351: 0xD326, - 10352: 0xD327, - 10353: 0xD32A, - 10354: 0xD32B, - 10355: 0xD32D, - 10356: 0xD32E, - 10357: 0xD32F, - 10358: 0xD331, - 10359: 0xD332, - 10360: 0xD333, - 10361: 0xD334, - 10362: 0xD335, - 10363: 0xD336, - 10364: 0xD337, - 10365: 0xD33A, - 10366: 0xD33E, - 10367: 0xD33F, - 10368: 0xD340, - 10369: 0xD341, - 10370: 0xD342, - 10371: 0xD343, - 10372: 0xD346, - 10373: 0xD347, - 10374: 0xD348, - 10375: 0xD349, - 10376: 0xD34A, - 10377: 0xD34B, - 10378: 0xD34C, - 10379: 0xD34D, - 10380: 0xD34E, - 10381: 0xD34F, - 10382: 0xD350, - 10383: 0xD351, - 10384: 0xD352, - 10385: 0xD353, - 10386: 0xD354, - 10387: 0xD355, - 10388: 0xD356, - 10389: 0xD357, - 10390: 0xD358, - 10391: 0xD359, - 10392: 0xD35A, - 10393: 0xD35B, - 10394: 0xD35C, - 10395: 0xD35D, - 10396: 0xD35E, - 10397: 0xD35F, - 10398: 0xD360, - 10399: 0xD361, - 10400: 0xD362, - 10401: 0xD363, - 10402: 0xD364, - 10403: 0xD365, - 10404: 0xD366, - 10405: 0xD367, - 10406: 0xD368, - 10407: 0xD369, - 10408: 0xBE68, - 10409: 0xBE6A, - 10410: 0xBE70, - 10411: 0xBE71, - 10412: 0xBE73, - 10413: 0xBE74, - 10414: 0xBE75, - 10415: 0xBE7B, - 10416: 0xBE7C, - 10417: 0xBE7D, - 10418: 0xBE80, - 10419: 0xBE84, - 10420: 0xBE8C, - 10421: 0xBE8D, - 10422: 0xBE8F, - 10423: 0xBE90, - 10424: 0xBE91, - 10425: 0xBE98, - 10426: 0xBE99, - 10427: 0xBEA8, - 10428: 0xBED0, - 10429: 0xBED1, - 10430: 0xBED4, - 10431: 0xBED7, - 10432: 0xBED8, - 10433: 0xBEE0, - 10434: 0xBEE3, - 10435: 0xBEE4, - 10436: 0xBEE5, - 10437: 0xBEEC, - 10438: 0xBF01, - 10439: 0xBF08, - 10440: 0xBF09, - 10441: 0xBF18, - 10442: 0xBF19, - 10443: 0xBF1B, - 10444: 0xBF1C, - 10445: 0xBF1D, - 10446: 0xBF40, - 10447: 0xBF41, - 10448: 0xBF44, - 10449: 0xBF48, - 10450: 0xBF50, - 10451: 0xBF51, - 10452: 0xBF55, - 10453: 0xBF94, - 10454: 0xBFB0, - 10455: 0xBFC5, - 10456: 0xBFCC, - 10457: 0xBFCD, - 10458: 0xBFD0, - 10459: 0xBFD4, - 10460: 0xBFDC, - 10461: 0xBFDF, - 10462: 0xBFE1, - 10463: 0xC03C, - 10464: 0xC051, - 10465: 0xC058, - 10466: 0xC05C, - 10467: 0xC060, - 10468: 0xC068, - 10469: 0xC069, - 10470: 0xC090, - 10471: 0xC091, - 10472: 0xC094, - 10473: 0xC098, - 10474: 0xC0A0, - 10475: 0xC0A1, - 10476: 0xC0A3, - 10477: 0xC0A5, - 10478: 0xC0AC, - 10479: 0xC0AD, - 10480: 0xC0AF, - 10481: 0xC0B0, - 10482: 0xC0B3, - 10483: 0xC0B4, - 10484: 0xC0B5, - 10485: 0xC0B6, - 10486: 0xC0BC, - 10487: 0xC0BD, - 10488: 0xC0BF, - 10489: 0xC0C0, - 10490: 0xC0C1, - 10491: 0xC0C5, - 10492: 0xC0C8, - 10493: 0xC0C9, - 10494: 0xC0CC, - 10495: 0xC0D0, - 10496: 0xC0D8, - 10497: 0xC0D9, - 10498: 0xC0DB, - 10499: 0xC0DC, - 10500: 0xC0DD, - 10501: 0xC0E4, - 10502: 0xD36A, - 10503: 0xD36B, - 10504: 0xD36C, - 10505: 0xD36D, - 10506: 0xD36E, - 10507: 0xD36F, - 10508: 0xD370, - 10509: 0xD371, - 10510: 0xD372, - 10511: 0xD373, - 10512: 0xD374, - 10513: 0xD375, - 10514: 0xD376, - 10515: 0xD377, - 10516: 0xD378, - 10517: 0xD379, - 10518: 0xD37A, - 10519: 0xD37B, - 10520: 0xD37E, - 10521: 0xD37F, - 10522: 0xD381, - 10523: 0xD382, - 10524: 0xD383, - 10525: 0xD385, - 10526: 0xD386, - 10527: 0xD387, - 10528: 0xD388, - 10529: 0xD389, - 10530: 0xD38A, - 10531: 0xD38B, - 10532: 0xD38E, - 10533: 0xD392, - 10534: 0xD393, - 10535: 0xD394, - 10536: 0xD395, - 10537: 0xD396, - 10538: 0xD397, - 10539: 0xD39A, - 10540: 0xD39B, - 10541: 0xD39D, - 10542: 0xD39E, - 10543: 0xD39F, - 10544: 0xD3A1, - 10545: 0xD3A2, - 10546: 0xD3A3, - 10547: 0xD3A4, - 10548: 0xD3A5, - 10549: 0xD3A6, - 10550: 0xD3A7, - 10551: 0xD3AA, - 10552: 0xD3AC, - 10553: 0xD3AE, - 10554: 0xD3AF, - 10555: 0xD3B0, - 10556: 0xD3B1, - 10557: 0xD3B2, - 10558: 0xD3B3, - 10559: 0xD3B5, - 10560: 0xD3B6, - 10561: 0xD3B7, - 10562: 0xD3B9, - 10563: 0xD3BA, - 10564: 0xD3BB, - 10565: 0xD3BD, - 10566: 0xD3BE, - 10567: 0xD3BF, - 10568: 0xD3C0, - 10569: 0xD3C1, - 10570: 0xD3C2, - 10571: 0xD3C3, - 10572: 0xD3C6, - 10573: 0xD3C7, - 10574: 0xD3CA, - 10575: 0xD3CB, - 10576: 0xD3CC, - 10577: 0xD3CD, - 10578: 0xD3CE, - 10579: 0xD3CF, - 10580: 0xD3D1, - 10581: 0xD3D2, - 10582: 0xD3D3, - 10583: 0xD3D4, - 10584: 0xD3D5, - 10585: 0xD3D6, - 10586: 0xC0E5, - 10587: 0xC0E8, - 10588: 0xC0EC, - 10589: 0xC0F4, - 10590: 0xC0F5, - 10591: 0xC0F7, - 10592: 0xC0F9, - 10593: 0xC100, - 10594: 0xC104, - 10595: 0xC108, - 10596: 0xC110, - 10597: 0xC115, - 10598: 0xC11C, - 10599: 0xC11D, - 10600: 0xC11E, - 10601: 0xC11F, - 10602: 0xC120, - 10603: 0xC123, - 10604: 0xC124, - 10605: 0xC126, - 10606: 0xC127, - 10607: 0xC12C, - 10608: 0xC12D, - 10609: 0xC12F, - 10610: 0xC130, - 10611: 0xC131, - 10612: 0xC136, - 10613: 0xC138, - 10614: 0xC139, - 10615: 0xC13C, - 10616: 0xC140, - 10617: 0xC148, - 10618: 0xC149, - 10619: 0xC14B, - 10620: 0xC14C, - 10621: 0xC14D, - 10622: 0xC154, - 10623: 0xC155, - 10624: 0xC158, - 10625: 0xC15C, - 10626: 0xC164, - 10627: 0xC165, - 10628: 0xC167, - 10629: 0xC168, - 10630: 0xC169, - 10631: 0xC170, - 10632: 0xC174, - 10633: 0xC178, - 10634: 0xC185, - 10635: 0xC18C, - 10636: 0xC18D, - 10637: 0xC18E, - 10638: 0xC190, - 10639: 0xC194, - 10640: 0xC196, - 10641: 0xC19C, - 10642: 0xC19D, - 10643: 0xC19F, - 10644: 0xC1A1, - 10645: 0xC1A5, - 10646: 0xC1A8, - 10647: 0xC1A9, - 10648: 0xC1AC, - 10649: 0xC1B0, - 10650: 0xC1BD, - 10651: 0xC1C4, - 10652: 0xC1C8, - 10653: 0xC1CC, - 10654: 0xC1D4, - 10655: 0xC1D7, - 10656: 0xC1D8, - 10657: 0xC1E0, - 10658: 0xC1E4, - 10659: 0xC1E8, - 10660: 0xC1F0, - 10661: 0xC1F1, - 10662: 0xC1F3, - 10663: 0xC1FC, - 10664: 0xC1FD, - 10665: 0xC200, - 10666: 0xC204, - 10667: 0xC20C, - 10668: 0xC20D, - 10669: 0xC20F, - 10670: 0xC211, - 10671: 0xC218, - 10672: 0xC219, - 10673: 0xC21C, - 10674: 0xC21F, - 10675: 0xC220, - 10676: 0xC228, - 10677: 0xC229, - 10678: 0xC22B, - 10679: 0xC22D, - 10680: 0xD3D7, - 10681: 0xD3D9, - 10682: 0xD3DA, - 10683: 0xD3DB, - 10684: 0xD3DC, - 10685: 0xD3DD, - 10686: 0xD3DE, - 10687: 0xD3DF, - 10688: 0xD3E0, - 10689: 0xD3E2, - 10690: 0xD3E4, - 10691: 0xD3E5, - 10692: 0xD3E6, - 10693: 0xD3E7, - 10694: 0xD3E8, - 10695: 0xD3E9, - 10696: 0xD3EA, - 10697: 0xD3EB, - 10698: 0xD3EE, - 10699: 0xD3EF, - 10700: 0xD3F1, - 10701: 0xD3F2, - 10702: 0xD3F3, - 10703: 0xD3F5, - 10704: 0xD3F6, - 10705: 0xD3F7, - 10706: 0xD3F8, - 10707: 0xD3F9, - 10708: 0xD3FA, - 10709: 0xD3FB, - 10710: 0xD3FE, - 10711: 0xD400, - 10712: 0xD402, - 10713: 0xD403, - 10714: 0xD404, - 10715: 0xD405, - 10716: 0xD406, - 10717: 0xD407, - 10718: 0xD409, - 10719: 0xD40A, - 10720: 0xD40B, - 10721: 0xD40C, - 10722: 0xD40D, - 10723: 0xD40E, - 10724: 0xD40F, - 10725: 0xD410, - 10726: 0xD411, - 10727: 0xD412, - 10728: 0xD413, - 10729: 0xD414, - 10730: 0xD415, - 10731: 0xD416, - 10732: 0xD417, - 10733: 0xD418, - 10734: 0xD419, - 10735: 0xD41A, - 10736: 0xD41B, - 10737: 0xD41C, - 10738: 0xD41E, - 10739: 0xD41F, - 10740: 0xD420, - 10741: 0xD421, - 10742: 0xD422, - 10743: 0xD423, - 10744: 0xD424, - 10745: 0xD425, - 10746: 0xD426, - 10747: 0xD427, - 10748: 0xD428, - 10749: 0xD429, - 10750: 0xD42A, - 10751: 0xD42B, - 10752: 0xD42C, - 10753: 0xD42D, - 10754: 0xD42E, - 10755: 0xD42F, - 10756: 0xD430, - 10757: 0xD431, - 10758: 0xD432, - 10759: 0xD433, - 10760: 0xD434, - 10761: 0xD435, - 10762: 0xD436, - 10763: 0xD437, - 10764: 0xC22F, - 10765: 0xC231, - 10766: 0xC232, - 10767: 0xC234, - 10768: 0xC248, - 10769: 0xC250, - 10770: 0xC251, - 10771: 0xC254, - 10772: 0xC258, - 10773: 0xC260, - 10774: 0xC265, - 10775: 0xC26C, - 10776: 0xC26D, - 10777: 0xC270, - 10778: 0xC274, - 10779: 0xC27C, - 10780: 0xC27D, - 10781: 0xC27F, - 10782: 0xC281, - 10783: 0xC288, - 10784: 0xC289, - 10785: 0xC290, - 10786: 0xC298, - 10787: 0xC29B, - 10788: 0xC29D, - 10789: 0xC2A4, - 10790: 0xC2A5, - 10791: 0xC2A8, - 10792: 0xC2AC, - 10793: 0xC2AD, - 10794: 0xC2B4, - 10795: 0xC2B5, - 10796: 0xC2B7, - 10797: 0xC2B9, - 10798: 0xC2DC, - 10799: 0xC2DD, - 10800: 0xC2E0, - 10801: 0xC2E3, - 10802: 0xC2E4, - 10803: 0xC2EB, - 10804: 0xC2EC, - 10805: 0xC2ED, - 10806: 0xC2EF, - 10807: 0xC2F1, - 10808: 0xC2F6, - 10809: 0xC2F8, - 10810: 0xC2F9, - 10811: 0xC2FB, - 10812: 0xC2FC, - 10813: 0xC300, - 10814: 0xC308, - 10815: 0xC309, - 10816: 0xC30C, - 10817: 0xC30D, - 10818: 0xC313, - 10819: 0xC314, - 10820: 0xC315, - 10821: 0xC318, - 10822: 0xC31C, - 10823: 0xC324, - 10824: 0xC325, - 10825: 0xC328, - 10826: 0xC329, - 10827: 0xC345, - 10828: 0xC368, - 10829: 0xC369, - 10830: 0xC36C, - 10831: 0xC370, - 10832: 0xC372, - 10833: 0xC378, - 10834: 0xC379, - 10835: 0xC37C, - 10836: 0xC37D, - 10837: 0xC384, - 10838: 0xC388, - 10839: 0xC38C, - 10840: 0xC3C0, - 10841: 0xC3D8, - 10842: 0xC3D9, - 10843: 0xC3DC, - 10844: 0xC3DF, - 10845: 0xC3E0, - 10846: 0xC3E2, - 10847: 0xC3E8, - 10848: 0xC3E9, - 10849: 0xC3ED, - 10850: 0xC3F4, - 10851: 0xC3F5, - 10852: 0xC3F8, - 10853: 0xC408, - 10854: 0xC410, - 10855: 0xC424, - 10856: 0xC42C, - 10857: 0xC430, - 10858: 0xD438, - 10859: 0xD439, - 10860: 0xD43A, - 10861: 0xD43B, - 10862: 0xD43C, - 10863: 0xD43D, - 10864: 0xD43E, - 10865: 0xD43F, - 10866: 0xD441, - 10867: 0xD442, - 10868: 0xD443, - 10869: 0xD445, - 10870: 0xD446, - 10871: 0xD447, - 10872: 0xD448, - 10873: 0xD449, - 10874: 0xD44A, - 10875: 0xD44B, - 10876: 0xD44C, - 10877: 0xD44D, - 10878: 0xD44E, - 10879: 0xD44F, - 10880: 0xD450, - 10881: 0xD451, - 10882: 0xD452, - 10883: 0xD453, - 10884: 0xD454, - 10885: 0xD455, - 10886: 0xD456, - 10887: 0xD457, - 10888: 0xD458, - 10889: 0xD459, - 10890: 0xD45A, - 10891: 0xD45B, - 10892: 0xD45D, - 10893: 0xD45E, - 10894: 0xD45F, - 10895: 0xD461, - 10896: 0xD462, - 10897: 0xD463, - 10898: 0xD465, - 10899: 0xD466, - 10900: 0xD467, - 10901: 0xD468, - 10902: 0xD469, - 10903: 0xD46A, - 10904: 0xD46B, - 10905: 0xD46C, - 10906: 0xD46E, - 10907: 0xD470, - 10908: 0xD471, - 10909: 0xD472, - 10910: 0xD473, - 10911: 0xD474, - 10912: 0xD475, - 10913: 0xD476, - 10914: 0xD477, - 10915: 0xD47A, - 10916: 0xD47B, - 10917: 0xD47D, - 10918: 0xD47E, - 10919: 0xD481, - 10920: 0xD483, - 10921: 0xD484, - 10922: 0xD485, - 10923: 0xD486, - 10924: 0xD487, - 10925: 0xD48A, - 10926: 0xD48C, - 10927: 0xD48E, - 10928: 0xD48F, - 10929: 0xD490, - 10930: 0xD491, - 10931: 0xD492, - 10932: 0xD493, - 10933: 0xD495, - 10934: 0xD496, - 10935: 0xD497, - 10936: 0xD498, - 10937: 0xD499, - 10938: 0xD49A, - 10939: 0xD49B, - 10940: 0xD49C, - 10941: 0xD49D, - 10942: 0xC434, - 10943: 0xC43C, - 10944: 0xC43D, - 10945: 0xC448, - 10946: 0xC464, - 10947: 0xC465, - 10948: 0xC468, - 10949: 0xC46C, - 10950: 0xC474, - 10951: 0xC475, - 10952: 0xC479, - 10953: 0xC480, - 10954: 0xC494, - 10955: 0xC49C, - 10956: 0xC4B8, - 10957: 0xC4BC, - 10958: 0xC4E9, - 10959: 0xC4F0, - 10960: 0xC4F1, - 10961: 0xC4F4, - 10962: 0xC4F8, - 10963: 0xC4FA, - 10964: 0xC4FF, - 10965: 0xC500, - 10966: 0xC501, - 10967: 0xC50C, - 10968: 0xC510, - 10969: 0xC514, - 10970: 0xC51C, - 10971: 0xC528, - 10972: 0xC529, - 10973: 0xC52C, - 10974: 0xC530, - 10975: 0xC538, - 10976: 0xC539, - 10977: 0xC53B, - 10978: 0xC53D, - 10979: 0xC544, - 10980: 0xC545, - 10981: 0xC548, - 10982: 0xC549, - 10983: 0xC54A, - 10984: 0xC54C, - 10985: 0xC54D, - 10986: 0xC54E, - 10987: 0xC553, - 10988: 0xC554, - 10989: 0xC555, - 10990: 0xC557, - 10991: 0xC558, - 10992: 0xC559, - 10993: 0xC55D, - 10994: 0xC55E, - 10995: 0xC560, - 10996: 0xC561, - 10997: 0xC564, - 10998: 0xC568, - 10999: 0xC570, - 11000: 0xC571, - 11001: 0xC573, - 11002: 0xC574, - 11003: 0xC575, - 11004: 0xC57C, - 11005: 0xC57D, - 11006: 0xC580, - 11007: 0xC584, - 11008: 0xC587, - 11009: 0xC58C, - 11010: 0xC58D, - 11011: 0xC58F, - 11012: 0xC591, - 11013: 0xC595, - 11014: 0xC597, - 11015: 0xC598, - 11016: 0xC59C, - 11017: 0xC5A0, - 11018: 0xC5A9, - 11019: 0xC5B4, - 11020: 0xC5B5, - 11021: 0xC5B8, - 11022: 0xC5B9, - 11023: 0xC5BB, - 11024: 0xC5BC, - 11025: 0xC5BD, - 11026: 0xC5BE, - 11027: 0xC5C4, - 11028: 0xC5C5, - 11029: 0xC5C6, - 11030: 0xC5C7, - 11031: 0xC5C8, - 11032: 0xC5C9, - 11033: 0xC5CA, - 11034: 0xC5CC, - 11035: 0xC5CE, - 11036: 0xD49E, - 11037: 0xD49F, - 11038: 0xD4A0, - 11039: 0xD4A1, - 11040: 0xD4A2, - 11041: 0xD4A3, - 11042: 0xD4A4, - 11043: 0xD4A5, - 11044: 0xD4A6, - 11045: 0xD4A7, - 11046: 0xD4A8, - 11047: 0xD4AA, - 11048: 0xD4AB, - 11049: 0xD4AC, - 11050: 0xD4AD, - 11051: 0xD4AE, - 11052: 0xD4AF, - 11053: 0xD4B0, - 11054: 0xD4B1, - 11055: 0xD4B2, - 11056: 0xD4B3, - 11057: 0xD4B4, - 11058: 0xD4B5, - 11059: 0xD4B6, - 11060: 0xD4B7, - 11061: 0xD4B8, - 11062: 0xD4B9, - 11063: 0xD4BA, - 11064: 0xD4BB, - 11065: 0xD4BC, - 11066: 0xD4BD, - 11067: 0xD4BE, - 11068: 0xD4BF, - 11069: 0xD4C0, - 11070: 0xD4C1, - 11071: 0xD4C2, - 11072: 0xD4C3, - 11073: 0xD4C4, - 11074: 0xD4C5, - 11075: 0xD4C6, - 11076: 0xD4C7, - 11077: 0xD4C8, - 11078: 0xD4C9, - 11079: 0xD4CA, - 11080: 0xD4CB, - 11081: 0xD4CD, - 11082: 0xD4CE, - 11083: 0xD4CF, - 11084: 0xD4D1, - 11085: 0xD4D2, - 11086: 0xD4D3, - 11087: 0xD4D5, - 11088: 0xD4D6, - 11089: 0xD4D7, - 11090: 0xD4D8, - 11091: 0xD4D9, - 11092: 0xD4DA, - 11093: 0xD4DB, - 11094: 0xD4DD, - 11095: 0xD4DE, - 11096: 0xD4E0, - 11097: 0xD4E1, - 11098: 0xD4E2, - 11099: 0xD4E3, - 11100: 0xD4E4, - 11101: 0xD4E5, - 11102: 0xD4E6, - 11103: 0xD4E7, - 11104: 0xD4E9, - 11105: 0xD4EA, - 11106: 0xD4EB, - 11107: 0xD4ED, - 11108: 0xD4EE, - 11109: 0xD4EF, - 11110: 0xD4F1, - 11111: 0xD4F2, - 11112: 0xD4F3, - 11113: 0xD4F4, - 11114: 0xD4F5, - 11115: 0xD4F6, - 11116: 0xD4F7, - 11117: 0xD4F9, - 11118: 0xD4FA, - 11119: 0xD4FC, - 11120: 0xC5D0, - 11121: 0xC5D1, - 11122: 0xC5D4, - 11123: 0xC5D8, - 11124: 0xC5E0, - 11125: 0xC5E1, - 11126: 0xC5E3, - 11127: 0xC5E5, - 11128: 0xC5EC, - 11129: 0xC5ED, - 11130: 0xC5EE, - 11131: 0xC5F0, - 11132: 0xC5F4, - 11133: 0xC5F6, - 11134: 0xC5F7, - 11135: 0xC5FC, - 11136: 0xC5FD, - 11137: 0xC5FE, - 11138: 0xC5FF, - 11139: 0xC600, - 11140: 0xC601, - 11141: 0xC605, - 11142: 0xC606, - 11143: 0xC607, - 11144: 0xC608, - 11145: 0xC60C, - 11146: 0xC610, - 11147: 0xC618, - 11148: 0xC619, - 11149: 0xC61B, - 11150: 0xC61C, - 11151: 0xC624, - 11152: 0xC625, - 11153: 0xC628, - 11154: 0xC62C, - 11155: 0xC62D, - 11156: 0xC62E, - 11157: 0xC630, - 11158: 0xC633, - 11159: 0xC634, - 11160: 0xC635, - 11161: 0xC637, - 11162: 0xC639, - 11163: 0xC63B, - 11164: 0xC640, - 11165: 0xC641, - 11166: 0xC644, - 11167: 0xC648, - 11168: 0xC650, - 11169: 0xC651, - 11170: 0xC653, - 11171: 0xC654, - 11172: 0xC655, - 11173: 0xC65C, - 11174: 0xC65D, - 11175: 0xC660, - 11176: 0xC66C, - 11177: 0xC66F, - 11178: 0xC671, - 11179: 0xC678, - 11180: 0xC679, - 11181: 0xC67C, - 11182: 0xC680, - 11183: 0xC688, - 11184: 0xC689, - 11185: 0xC68B, - 11186: 0xC68D, - 11187: 0xC694, - 11188: 0xC695, - 11189: 0xC698, - 11190: 0xC69C, - 11191: 0xC6A4, - 11192: 0xC6A5, - 11193: 0xC6A7, - 11194: 0xC6A9, - 11195: 0xC6B0, - 11196: 0xC6B1, - 11197: 0xC6B4, - 11198: 0xC6B8, - 11199: 0xC6B9, - 11200: 0xC6BA, - 11201: 0xC6C0, - 11202: 0xC6C1, - 11203: 0xC6C3, - 11204: 0xC6C5, - 11205: 0xC6CC, - 11206: 0xC6CD, - 11207: 0xC6D0, - 11208: 0xC6D4, - 11209: 0xC6DC, - 11210: 0xC6DD, - 11211: 0xC6E0, - 11212: 0xC6E1, - 11213: 0xC6E8, - 11214: 0xD4FE, - 11215: 0xD4FF, - 11216: 0xD500, - 11217: 0xD501, - 11218: 0xD502, - 11219: 0xD503, - 11220: 0xD505, - 11221: 0xD506, - 11222: 0xD507, - 11223: 0xD509, - 11224: 0xD50A, - 11225: 0xD50B, - 11226: 0xD50D, - 11227: 0xD50E, - 11228: 0xD50F, - 11229: 0xD510, - 11230: 0xD511, - 11231: 0xD512, - 11232: 0xD513, - 11233: 0xD516, - 11234: 0xD518, - 11235: 0xD519, - 11236: 0xD51A, - 11237: 0xD51B, - 11238: 0xD51C, - 11239: 0xD51D, - 11240: 0xD51E, - 11241: 0xD51F, - 11242: 0xD520, - 11243: 0xD521, - 11244: 0xD522, - 11245: 0xD523, - 11246: 0xD524, - 11247: 0xD525, - 11248: 0xD526, - 11249: 0xD527, - 11250: 0xD528, - 11251: 0xD529, - 11252: 0xD52A, - 11253: 0xD52B, - 11254: 0xD52C, - 11255: 0xD52D, - 11256: 0xD52E, - 11257: 0xD52F, - 11258: 0xD530, - 11259: 0xD531, - 11260: 0xD532, - 11261: 0xD533, - 11262: 0xD534, - 11263: 0xD535, - 11264: 0xD536, - 11265: 0xD537, - 11266: 0xD538, - 11267: 0xD539, - 11268: 0xD53A, - 11269: 0xD53B, - 11270: 0xD53E, - 11271: 0xD53F, - 11272: 0xD541, - 11273: 0xD542, - 11274: 0xD543, - 11275: 0xD545, - 11276: 0xD546, - 11277: 0xD547, - 11278: 0xD548, - 11279: 0xD549, - 11280: 0xD54A, - 11281: 0xD54B, - 11282: 0xD54E, - 11283: 0xD550, - 11284: 0xD552, - 11285: 0xD553, - 11286: 0xD554, - 11287: 0xD555, - 11288: 0xD556, - 11289: 0xD557, - 11290: 0xD55A, - 11291: 0xD55B, - 11292: 0xD55D, - 11293: 0xD55E, - 11294: 0xD55F, - 11295: 0xD561, - 11296: 0xD562, - 11297: 0xD563, - 11298: 0xC6E9, - 11299: 0xC6EC, - 11300: 0xC6F0, - 11301: 0xC6F8, - 11302: 0xC6F9, - 11303: 0xC6FD, - 11304: 0xC704, - 11305: 0xC705, - 11306: 0xC708, - 11307: 0xC70C, - 11308: 0xC714, - 11309: 0xC715, - 11310: 0xC717, - 11311: 0xC719, - 11312: 0xC720, - 11313: 0xC721, - 11314: 0xC724, - 11315: 0xC728, - 11316: 0xC730, - 11317: 0xC731, - 11318: 0xC733, - 11319: 0xC735, - 11320: 0xC737, - 11321: 0xC73C, - 11322: 0xC73D, - 11323: 0xC740, - 11324: 0xC744, - 11325: 0xC74A, - 11326: 0xC74C, - 11327: 0xC74D, - 11328: 0xC74F, - 11329: 0xC751, - 11330: 0xC752, - 11331: 0xC753, - 11332: 0xC754, - 11333: 0xC755, - 11334: 0xC756, - 11335: 0xC757, - 11336: 0xC758, - 11337: 0xC75C, - 11338: 0xC760, - 11339: 0xC768, - 11340: 0xC76B, - 11341: 0xC774, - 11342: 0xC775, - 11343: 0xC778, - 11344: 0xC77C, - 11345: 0xC77D, - 11346: 0xC77E, - 11347: 0xC783, - 11348: 0xC784, - 11349: 0xC785, - 11350: 0xC787, - 11351: 0xC788, - 11352: 0xC789, - 11353: 0xC78A, - 11354: 0xC78E, - 11355: 0xC790, - 11356: 0xC791, - 11357: 0xC794, - 11358: 0xC796, - 11359: 0xC797, - 11360: 0xC798, - 11361: 0xC79A, - 11362: 0xC7A0, - 11363: 0xC7A1, - 11364: 0xC7A3, - 11365: 0xC7A4, - 11366: 0xC7A5, - 11367: 0xC7A6, - 11368: 0xC7AC, - 11369: 0xC7AD, - 11370: 0xC7B0, - 11371: 0xC7B4, - 11372: 0xC7BC, - 11373: 0xC7BD, - 11374: 0xC7BF, - 11375: 0xC7C0, - 11376: 0xC7C1, - 11377: 0xC7C8, - 11378: 0xC7C9, - 11379: 0xC7CC, - 11380: 0xC7CE, - 11381: 0xC7D0, - 11382: 0xC7D8, - 11383: 0xC7DD, - 11384: 0xC7E4, - 11385: 0xC7E8, - 11386: 0xC7EC, - 11387: 0xC800, - 11388: 0xC801, - 11389: 0xC804, - 11390: 0xC808, - 11391: 0xC80A, - 11392: 0xD564, - 11393: 0xD566, - 11394: 0xD567, - 11395: 0xD56A, - 11396: 0xD56C, - 11397: 0xD56E, - 11398: 0xD56F, - 11399: 0xD570, - 11400: 0xD571, - 11401: 0xD572, - 11402: 0xD573, - 11403: 0xD576, - 11404: 0xD577, - 11405: 0xD579, - 11406: 0xD57A, - 11407: 0xD57B, - 11408: 0xD57D, - 11409: 0xD57E, - 11410: 0xD57F, - 11411: 0xD580, - 11412: 0xD581, - 11413: 0xD582, - 11414: 0xD583, - 11415: 0xD586, - 11416: 0xD58A, - 11417: 0xD58B, - 11418: 0xD58C, - 11419: 0xD58D, - 11420: 0xD58E, - 11421: 0xD58F, - 11422: 0xD591, - 11423: 0xD592, - 11424: 0xD593, - 11425: 0xD594, - 11426: 0xD595, - 11427: 0xD596, - 11428: 0xD597, - 11429: 0xD598, - 11430: 0xD599, - 11431: 0xD59A, - 11432: 0xD59B, - 11433: 0xD59C, - 11434: 0xD59D, - 11435: 0xD59E, - 11436: 0xD59F, - 11437: 0xD5A0, - 11438: 0xD5A1, - 11439: 0xD5A2, - 11440: 0xD5A3, - 11441: 0xD5A4, - 11442: 0xD5A6, - 11443: 0xD5A7, - 11444: 0xD5A8, - 11445: 0xD5A9, - 11446: 0xD5AA, - 11447: 0xD5AB, - 11448: 0xD5AC, - 11449: 0xD5AD, - 11450: 0xD5AE, - 11451: 0xD5AF, - 11452: 0xD5B0, - 11453: 0xD5B1, - 11454: 0xD5B2, - 11455: 0xD5B3, - 11456: 0xD5B4, - 11457: 0xD5B5, - 11458: 0xD5B6, - 11459: 0xD5B7, - 11460: 0xD5B8, - 11461: 0xD5B9, - 11462: 0xD5BA, - 11463: 0xD5BB, - 11464: 0xD5BC, - 11465: 0xD5BD, - 11466: 0xD5BE, - 11467: 0xD5BF, - 11468: 0xD5C0, - 11469: 0xD5C1, - 11470: 0xD5C2, - 11471: 0xD5C3, - 11472: 0xD5C4, - 11473: 0xD5C5, - 11474: 0xD5C6, - 11475: 0xD5C7, - 11476: 0xC810, - 11477: 0xC811, - 11478: 0xC813, - 11479: 0xC815, - 11480: 0xC816, - 11481: 0xC81C, - 11482: 0xC81D, - 11483: 0xC820, - 11484: 0xC824, - 11485: 0xC82C, - 11486: 0xC82D, - 11487: 0xC82F, - 11488: 0xC831, - 11489: 0xC838, - 11490: 0xC83C, - 11491: 0xC840, - 11492: 0xC848, - 11493: 0xC849, - 11494: 0xC84C, - 11495: 0xC84D, - 11496: 0xC854, - 11497: 0xC870, - 11498: 0xC871, - 11499: 0xC874, - 11500: 0xC878, - 11501: 0xC87A, - 11502: 0xC880, - 11503: 0xC881, - 11504: 0xC883, - 11505: 0xC885, - 11506: 0xC886, - 11507: 0xC887, - 11508: 0xC88B, - 11509: 0xC88C, - 11510: 0xC88D, - 11511: 0xC894, - 11512: 0xC89D, - 11513: 0xC89F, - 11514: 0xC8A1, - 11515: 0xC8A8, - 11516: 0xC8BC, - 11517: 0xC8BD, - 11518: 0xC8C4, - 11519: 0xC8C8, - 11520: 0xC8CC, - 11521: 0xC8D4, - 11522: 0xC8D5, - 11523: 0xC8D7, - 11524: 0xC8D9, - 11525: 0xC8E0, - 11526: 0xC8E1, - 11527: 0xC8E4, - 11528: 0xC8F5, - 11529: 0xC8FC, - 11530: 0xC8FD, - 11531: 0xC900, - 11532: 0xC904, - 11533: 0xC905, - 11534: 0xC906, - 11535: 0xC90C, - 11536: 0xC90D, - 11537: 0xC90F, - 11538: 0xC911, - 11539: 0xC918, - 11540: 0xC92C, - 11541: 0xC934, - 11542: 0xC950, - 11543: 0xC951, - 11544: 0xC954, - 11545: 0xC958, - 11546: 0xC960, - 11547: 0xC961, - 11548: 0xC963, - 11549: 0xC96C, - 11550: 0xC970, - 11551: 0xC974, - 11552: 0xC97C, - 11553: 0xC988, - 11554: 0xC989, - 11555: 0xC98C, - 11556: 0xC990, - 11557: 0xC998, - 11558: 0xC999, - 11559: 0xC99B, - 11560: 0xC99D, - 11561: 0xC9C0, - 11562: 0xC9C1, - 11563: 0xC9C4, - 11564: 0xC9C7, - 11565: 0xC9C8, - 11566: 0xC9CA, - 11567: 0xC9D0, - 11568: 0xC9D1, - 11569: 0xC9D3, - 11570: 0xD5CA, - 11571: 0xD5CB, - 11572: 0xD5CD, - 11573: 0xD5CE, - 11574: 0xD5CF, - 11575: 0xD5D1, - 11576: 0xD5D3, - 11577: 0xD5D4, - 11578: 0xD5D5, - 11579: 0xD5D6, - 11580: 0xD5D7, - 11581: 0xD5DA, - 11582: 0xD5DC, - 11583: 0xD5DE, - 11584: 0xD5DF, - 11585: 0xD5E0, - 11586: 0xD5E1, - 11587: 0xD5E2, - 11588: 0xD5E3, - 11589: 0xD5E6, - 11590: 0xD5E7, - 11591: 0xD5E9, - 11592: 0xD5EA, - 11593: 0xD5EB, - 11594: 0xD5ED, - 11595: 0xD5EE, - 11596: 0xD5EF, - 11597: 0xD5F0, - 11598: 0xD5F1, - 11599: 0xD5F2, - 11600: 0xD5F3, - 11601: 0xD5F6, - 11602: 0xD5F8, - 11603: 0xD5FA, - 11604: 0xD5FB, - 11605: 0xD5FC, - 11606: 0xD5FD, - 11607: 0xD5FE, - 11608: 0xD5FF, - 11609: 0xD602, - 11610: 0xD603, - 11611: 0xD605, - 11612: 0xD606, - 11613: 0xD607, - 11614: 0xD609, - 11615: 0xD60A, - 11616: 0xD60B, - 11617: 0xD60C, - 11618: 0xD60D, - 11619: 0xD60E, - 11620: 0xD60F, - 11621: 0xD612, - 11622: 0xD616, - 11623: 0xD617, - 11624: 0xD618, - 11625: 0xD619, - 11626: 0xD61A, - 11627: 0xD61B, - 11628: 0xD61D, - 11629: 0xD61E, - 11630: 0xD61F, - 11631: 0xD621, - 11632: 0xD622, - 11633: 0xD623, - 11634: 0xD625, - 11635: 0xD626, - 11636: 0xD627, - 11637: 0xD628, - 11638: 0xD629, - 11639: 0xD62A, - 11640: 0xD62B, - 11641: 0xD62C, - 11642: 0xD62E, - 11643: 0xD62F, - 11644: 0xD630, - 11645: 0xD631, - 11646: 0xD632, - 11647: 0xD633, - 11648: 0xD634, - 11649: 0xD635, - 11650: 0xD636, - 11651: 0xD637, - 11652: 0xD63A, - 11653: 0xD63B, - 11654: 0xC9D5, - 11655: 0xC9D6, - 11656: 0xC9D9, - 11657: 0xC9DA, - 11658: 0xC9DC, - 11659: 0xC9DD, - 11660: 0xC9E0, - 11661: 0xC9E2, - 11662: 0xC9E4, - 11663: 0xC9E7, - 11664: 0xC9EC, - 11665: 0xC9ED, - 11666: 0xC9EF, - 11667: 0xC9F0, - 11668: 0xC9F1, - 11669: 0xC9F8, - 11670: 0xC9F9, - 11671: 0xC9FC, - 11672: 0xCA00, - 11673: 0xCA08, - 11674: 0xCA09, - 11675: 0xCA0B, - 11676: 0xCA0C, - 11677: 0xCA0D, - 11678: 0xCA14, - 11679: 0xCA18, - 11680: 0xCA29, - 11681: 0xCA4C, - 11682: 0xCA4D, - 11683: 0xCA50, - 11684: 0xCA54, - 11685: 0xCA5C, - 11686: 0xCA5D, - 11687: 0xCA5F, - 11688: 0xCA60, - 11689: 0xCA61, - 11690: 0xCA68, - 11691: 0xCA7D, - 11692: 0xCA84, - 11693: 0xCA98, - 11694: 0xCABC, - 11695: 0xCABD, - 11696: 0xCAC0, - 11697: 0xCAC4, - 11698: 0xCACC, - 11699: 0xCACD, - 11700: 0xCACF, - 11701: 0xCAD1, - 11702: 0xCAD3, - 11703: 0xCAD8, - 11704: 0xCAD9, - 11705: 0xCAE0, - 11706: 0xCAEC, - 11707: 0xCAF4, - 11708: 0xCB08, - 11709: 0xCB10, - 11710: 0xCB14, - 11711: 0xCB18, - 11712: 0xCB20, - 11713: 0xCB21, - 11714: 0xCB41, - 11715: 0xCB48, - 11716: 0xCB49, - 11717: 0xCB4C, - 11718: 0xCB50, - 11719: 0xCB58, - 11720: 0xCB59, - 11721: 0xCB5D, - 11722: 0xCB64, - 11723: 0xCB78, - 11724: 0xCB79, - 11725: 0xCB9C, - 11726: 0xCBB8, - 11727: 0xCBD4, - 11728: 0xCBE4, - 11729: 0xCBE7, - 11730: 0xCBE9, - 11731: 0xCC0C, - 11732: 0xCC0D, - 11733: 0xCC10, - 11734: 0xCC14, - 11735: 0xCC1C, - 11736: 0xCC1D, - 11737: 0xCC21, - 11738: 0xCC22, - 11739: 0xCC27, - 11740: 0xCC28, - 11741: 0xCC29, - 11742: 0xCC2C, - 11743: 0xCC2E, - 11744: 0xCC30, - 11745: 0xCC38, - 11746: 0xCC39, - 11747: 0xCC3B, - 11748: 0xD63D, - 11749: 0xD63E, - 11750: 0xD63F, - 11751: 0xD641, - 11752: 0xD642, - 11753: 0xD643, - 11754: 0xD644, - 11755: 0xD646, - 11756: 0xD647, - 11757: 0xD64A, - 11758: 0xD64C, - 11759: 0xD64E, - 11760: 0xD64F, - 11761: 0xD650, - 11762: 0xD652, - 11763: 0xD653, - 11764: 0xD656, - 11765: 0xD657, - 11766: 0xD659, - 11767: 0xD65A, - 11768: 0xD65B, - 11769: 0xD65D, - 11770: 0xD65E, - 11771: 0xD65F, - 11772: 0xD660, - 11773: 0xD661, - 11774: 0xD662, - 11775: 0xD663, - 11776: 0xD664, - 11777: 0xD665, - 11778: 0xD666, - 11779: 0xD668, - 11780: 0xD66A, - 11781: 0xD66B, - 11782: 0xD66C, - 11783: 0xD66D, - 11784: 0xD66E, - 11785: 0xD66F, - 11786: 0xD672, - 11787: 0xD673, - 11788: 0xD675, - 11789: 0xD676, - 11790: 0xD677, - 11791: 0xD678, - 11792: 0xD679, - 11793: 0xD67A, - 11794: 0xD67B, - 11795: 0xD67C, - 11796: 0xD67D, - 11797: 0xD67E, - 11798: 0xD67F, - 11799: 0xD680, - 11800: 0xD681, - 11801: 0xD682, - 11802: 0xD684, - 11803: 0xD686, - 11804: 0xD687, - 11805: 0xD688, - 11806: 0xD689, - 11807: 0xD68A, - 11808: 0xD68B, - 11809: 0xD68E, - 11810: 0xD68F, - 11811: 0xD691, - 11812: 0xD692, - 11813: 0xD693, - 11814: 0xD695, - 11815: 0xD696, - 11816: 0xD697, - 11817: 0xD698, - 11818: 0xD699, - 11819: 0xD69A, - 11820: 0xD69B, - 11821: 0xD69C, - 11822: 0xD69E, - 11823: 0xD6A0, - 11824: 0xD6A2, - 11825: 0xD6A3, - 11826: 0xD6A4, - 11827: 0xD6A5, - 11828: 0xD6A6, - 11829: 0xD6A7, - 11830: 0xD6A9, - 11831: 0xD6AA, - 11832: 0xCC3C, - 11833: 0xCC3D, - 11834: 0xCC3E, - 11835: 0xCC44, - 11836: 0xCC45, - 11837: 0xCC48, - 11838: 0xCC4C, - 11839: 0xCC54, - 11840: 0xCC55, - 11841: 0xCC57, - 11842: 0xCC58, - 11843: 0xCC59, - 11844: 0xCC60, - 11845: 0xCC64, - 11846: 0xCC66, - 11847: 0xCC68, - 11848: 0xCC70, - 11849: 0xCC75, - 11850: 0xCC98, - 11851: 0xCC99, - 11852: 0xCC9C, - 11853: 0xCCA0, - 11854: 0xCCA8, - 11855: 0xCCA9, - 11856: 0xCCAB, - 11857: 0xCCAC, - 11858: 0xCCAD, - 11859: 0xCCB4, - 11860: 0xCCB5, - 11861: 0xCCB8, - 11862: 0xCCBC, - 11863: 0xCCC4, - 11864: 0xCCC5, - 11865: 0xCCC7, - 11866: 0xCCC9, - 11867: 0xCCD0, - 11868: 0xCCD4, - 11869: 0xCCE4, - 11870: 0xCCEC, - 11871: 0xCCF0, - 11872: 0xCD01, - 11873: 0xCD08, - 11874: 0xCD09, - 11875: 0xCD0C, - 11876: 0xCD10, - 11877: 0xCD18, - 11878: 0xCD19, - 11879: 0xCD1B, - 11880: 0xCD1D, - 11881: 0xCD24, - 11882: 0xCD28, - 11883: 0xCD2C, - 11884: 0xCD39, - 11885: 0xCD5C, - 11886: 0xCD60, - 11887: 0xCD64, - 11888: 0xCD6C, - 11889: 0xCD6D, - 11890: 0xCD6F, - 11891: 0xCD71, - 11892: 0xCD78, - 11893: 0xCD88, - 11894: 0xCD94, - 11895: 0xCD95, - 11896: 0xCD98, - 11897: 0xCD9C, - 11898: 0xCDA4, - 11899: 0xCDA5, - 11900: 0xCDA7, - 11901: 0xCDA9, - 11902: 0xCDB0, - 11903: 0xCDC4, - 11904: 0xCDCC, - 11905: 0xCDD0, - 11906: 0xCDE8, - 11907: 0xCDEC, - 11908: 0xCDF0, - 11909: 0xCDF8, - 11910: 0xCDF9, - 11911: 0xCDFB, - 11912: 0xCDFD, - 11913: 0xCE04, - 11914: 0xCE08, - 11915: 0xCE0C, - 11916: 0xCE14, - 11917: 0xCE19, - 11918: 0xCE20, - 11919: 0xCE21, - 11920: 0xCE24, - 11921: 0xCE28, - 11922: 0xCE30, - 11923: 0xCE31, - 11924: 0xCE33, - 11925: 0xCE35, - 11926: 0xD6AB, - 11927: 0xD6AD, - 11928: 0xD6AE, - 11929: 0xD6AF, - 11930: 0xD6B1, - 11931: 0xD6B2, - 11932: 0xD6B3, - 11933: 0xD6B4, - 11934: 0xD6B5, - 11935: 0xD6B6, - 11936: 0xD6B7, - 11937: 0xD6B8, - 11938: 0xD6BA, - 11939: 0xD6BC, - 11940: 0xD6BD, - 11941: 0xD6BE, - 11942: 0xD6BF, - 11943: 0xD6C0, - 11944: 0xD6C1, - 11945: 0xD6C2, - 11946: 0xD6C3, - 11947: 0xD6C6, - 11948: 0xD6C7, - 11949: 0xD6C9, - 11950: 0xD6CA, - 11951: 0xD6CB, - 11952: 0xD6CD, - 11953: 0xD6CE, - 11954: 0xD6CF, - 11955: 0xD6D0, - 11956: 0xD6D2, - 11957: 0xD6D3, - 11958: 0xD6D5, - 11959: 0xD6D6, - 11960: 0xD6D8, - 11961: 0xD6DA, - 11962: 0xD6DB, - 11963: 0xD6DC, - 11964: 0xD6DD, - 11965: 0xD6DE, - 11966: 0xD6DF, - 11967: 0xD6E1, - 11968: 0xD6E2, - 11969: 0xD6E3, - 11970: 0xD6E5, - 11971: 0xD6E6, - 11972: 0xD6E7, - 11973: 0xD6E9, - 11974: 0xD6EA, - 11975: 0xD6EB, - 11976: 0xD6EC, - 11977: 0xD6ED, - 11978: 0xD6EE, - 11979: 0xD6EF, - 11980: 0xD6F1, - 11981: 0xD6F2, - 11982: 0xD6F3, - 11983: 0xD6F4, - 11984: 0xD6F6, - 11985: 0xD6F7, - 11986: 0xD6F8, - 11987: 0xD6F9, - 11988: 0xD6FA, - 11989: 0xD6FB, - 11990: 0xD6FE, - 11991: 0xD6FF, - 11992: 0xD701, - 11993: 0xD702, - 11994: 0xD703, - 11995: 0xD705, - 11996: 0xD706, - 11997: 0xD707, - 11998: 0xD708, - 11999: 0xD709, - 12000: 0xD70A, - 12001: 0xD70B, - 12002: 0xD70C, - 12003: 0xD70D, - 12004: 0xD70E, - 12005: 0xD70F, - 12006: 0xD710, - 12007: 0xD712, - 12008: 0xD713, - 12009: 0xD714, - 12010: 0xCE58, - 12011: 0xCE59, - 12012: 0xCE5C, - 12013: 0xCE5F, - 12014: 0xCE60, - 12015: 0xCE61, - 12016: 0xCE68, - 12017: 0xCE69, - 12018: 0xCE6B, - 12019: 0xCE6D, - 12020: 0xCE74, - 12021: 0xCE75, - 12022: 0xCE78, - 12023: 0xCE7C, - 12024: 0xCE84, - 12025: 0xCE85, - 12026: 0xCE87, - 12027: 0xCE89, - 12028: 0xCE90, - 12029: 0xCE91, - 12030: 0xCE94, - 12031: 0xCE98, - 12032: 0xCEA0, - 12033: 0xCEA1, - 12034: 0xCEA3, - 12035: 0xCEA4, - 12036: 0xCEA5, - 12037: 0xCEAC, - 12038: 0xCEAD, - 12039: 0xCEC1, - 12040: 0xCEE4, - 12041: 0xCEE5, - 12042: 0xCEE8, - 12043: 0xCEEB, - 12044: 0xCEEC, - 12045: 0xCEF4, - 12046: 0xCEF5, - 12047: 0xCEF7, - 12048: 0xCEF8, - 12049: 0xCEF9, - 12050: 0xCF00, - 12051: 0xCF01, - 12052: 0xCF04, - 12053: 0xCF08, - 12054: 0xCF10, - 12055: 0xCF11, - 12056: 0xCF13, - 12057: 0xCF15, - 12058: 0xCF1C, - 12059: 0xCF20, - 12060: 0xCF24, - 12061: 0xCF2C, - 12062: 0xCF2D, - 12063: 0xCF2F, - 12064: 0xCF30, - 12065: 0xCF31, - 12066: 0xCF38, - 12067: 0xCF54, - 12068: 0xCF55, - 12069: 0xCF58, - 12070: 0xCF5C, - 12071: 0xCF64, - 12072: 0xCF65, - 12073: 0xCF67, - 12074: 0xCF69, - 12075: 0xCF70, - 12076: 0xCF71, - 12077: 0xCF74, - 12078: 0xCF78, - 12079: 0xCF80, - 12080: 0xCF85, - 12081: 0xCF8C, - 12082: 0xCFA1, - 12083: 0xCFA8, - 12084: 0xCFB0, - 12085: 0xCFC4, - 12086: 0xCFE0, - 12087: 0xCFE1, - 12088: 0xCFE4, - 12089: 0xCFE8, - 12090: 0xCFF0, - 12091: 0xCFF1, - 12092: 0xCFF3, - 12093: 0xCFF5, - 12094: 0xCFFC, - 12095: 0xD000, - 12096: 0xD004, - 12097: 0xD011, - 12098: 0xD018, - 12099: 0xD02D, - 12100: 0xD034, - 12101: 0xD035, - 12102: 0xD038, - 12103: 0xD03C, - 12104: 0xD715, - 12105: 0xD716, - 12106: 0xD717, - 12107: 0xD71A, - 12108: 0xD71B, - 12109: 0xD71D, - 12110: 0xD71E, - 12111: 0xD71F, - 12112: 0xD721, - 12113: 0xD722, - 12114: 0xD723, - 12115: 0xD724, - 12116: 0xD725, - 12117: 0xD726, - 12118: 0xD727, - 12119: 0xD72A, - 12120: 0xD72C, - 12121: 0xD72E, - 12122: 0xD72F, - 12123: 0xD730, - 12124: 0xD731, - 12125: 0xD732, - 12126: 0xD733, - 12127: 0xD736, - 12128: 0xD737, - 12129: 0xD739, - 12130: 0xD73A, - 12131: 0xD73B, - 12132: 0xD73D, - 12133: 0xD73E, - 12134: 0xD73F, - 12135: 0xD740, - 12136: 0xD741, - 12137: 0xD742, - 12138: 0xD743, - 12139: 0xD745, - 12140: 0xD746, - 12141: 0xD748, - 12142: 0xD74A, - 12143: 0xD74B, - 12144: 0xD74C, - 12145: 0xD74D, - 12146: 0xD74E, - 12147: 0xD74F, - 12148: 0xD752, - 12149: 0xD753, - 12150: 0xD755, - 12151: 0xD75A, - 12152: 0xD75B, - 12153: 0xD75C, - 12154: 0xD75D, - 12155: 0xD75E, - 12156: 0xD75F, - 12157: 0xD762, - 12158: 0xD764, - 12159: 0xD766, - 12160: 0xD767, - 12161: 0xD768, - 12162: 0xD76A, - 12163: 0xD76B, - 12164: 0xD76D, - 12165: 0xD76E, - 12166: 0xD76F, - 12167: 0xD771, - 12168: 0xD772, - 12169: 0xD773, - 12170: 0xD775, - 12171: 0xD776, - 12172: 0xD777, - 12173: 0xD778, - 12174: 0xD779, - 12175: 0xD77A, - 12176: 0xD77B, - 12177: 0xD77E, - 12178: 0xD77F, - 12179: 0xD780, - 12180: 0xD782, - 12181: 0xD783, - 12182: 0xD784, - 12183: 0xD785, - 12184: 0xD786, - 12185: 0xD787, - 12186: 0xD78A, - 12187: 0xD78B, - 12188: 0xD044, - 12189: 0xD045, - 12190: 0xD047, - 12191: 0xD049, - 12192: 0xD050, - 12193: 0xD054, - 12194: 0xD058, - 12195: 0xD060, - 12196: 0xD06C, - 12197: 0xD06D, - 12198: 0xD070, - 12199: 0xD074, - 12200: 0xD07C, - 12201: 0xD07D, - 12202: 0xD081, - 12203: 0xD0A4, - 12204: 0xD0A5, - 12205: 0xD0A8, - 12206: 0xD0AC, - 12207: 0xD0B4, - 12208: 0xD0B5, - 12209: 0xD0B7, - 12210: 0xD0B9, - 12211: 0xD0C0, - 12212: 0xD0C1, - 12213: 0xD0C4, - 12214: 0xD0C8, - 12215: 0xD0C9, - 12216: 0xD0D0, - 12217: 0xD0D1, - 12218: 0xD0D3, - 12219: 0xD0D4, - 12220: 0xD0D5, - 12221: 0xD0DC, - 12222: 0xD0DD, - 12223: 0xD0E0, - 12224: 0xD0E4, - 12225: 0xD0EC, - 12226: 0xD0ED, - 12227: 0xD0EF, - 12228: 0xD0F0, - 12229: 0xD0F1, - 12230: 0xD0F8, - 12231: 0xD10D, - 12232: 0xD130, - 12233: 0xD131, - 12234: 0xD134, - 12235: 0xD138, - 12236: 0xD13A, - 12237: 0xD140, - 12238: 0xD141, - 12239: 0xD143, - 12240: 0xD144, - 12241: 0xD145, - 12242: 0xD14C, - 12243: 0xD14D, - 12244: 0xD150, - 12245: 0xD154, - 12246: 0xD15C, - 12247: 0xD15D, - 12248: 0xD15F, - 12249: 0xD161, - 12250: 0xD168, - 12251: 0xD16C, - 12252: 0xD17C, - 12253: 0xD184, - 12254: 0xD188, - 12255: 0xD1A0, - 12256: 0xD1A1, - 12257: 0xD1A4, - 12258: 0xD1A8, - 12259: 0xD1B0, - 12260: 0xD1B1, - 12261: 0xD1B3, - 12262: 0xD1B5, - 12263: 0xD1BA, - 12264: 0xD1BC, - 12265: 0xD1C0, - 12266: 0xD1D8, - 12267: 0xD1F4, - 12268: 0xD1F8, - 12269: 0xD207, - 12270: 0xD209, - 12271: 0xD210, - 12272: 0xD22C, - 12273: 0xD22D, - 12274: 0xD230, - 12275: 0xD234, - 12276: 0xD23C, - 12277: 0xD23D, - 12278: 0xD23F, - 12279: 0xD241, - 12280: 0xD248, - 12281: 0xD25C, - 12282: 0xD78D, - 12283: 0xD78E, - 12284: 0xD78F, - 12285: 0xD791, - 12286: 0xD792, - 12287: 0xD793, - 12288: 0xD794, - 12289: 0xD795, - 12290: 0xD796, - 12291: 0xD797, - 12292: 0xD79A, - 12293: 0xD79C, - 12294: 0xD79E, - 12295: 0xD79F, - 12296: 0xD7A0, - 12297: 0xD7A1, - 12298: 0xD7A2, - 12299: 0xD7A3, - 12366: 0xD264, - 12367: 0xD280, - 12368: 0xD281, - 12369: 0xD284, - 12370: 0xD288, - 12371: 0xD290, - 12372: 0xD291, - 12373: 0xD295, - 12374: 0xD29C, - 12375: 0xD2A0, - 12376: 0xD2A4, - 12377: 0xD2AC, - 12378: 0xD2B1, - 12379: 0xD2B8, - 12380: 0xD2B9, - 12381: 0xD2BC, - 12382: 0xD2BF, - 12383: 0xD2C0, - 12384: 0xD2C2, - 12385: 0xD2C8, - 12386: 0xD2C9, - 12387: 0xD2CB, - 12388: 0xD2D4, - 12389: 0xD2D8, - 12390: 0xD2DC, - 12391: 0xD2E4, - 12392: 0xD2E5, - 12393: 0xD2F0, - 12394: 0xD2F1, - 12395: 0xD2F4, - 12396: 0xD2F8, - 12397: 0xD300, - 12398: 0xD301, - 12399: 0xD303, - 12400: 0xD305, - 12401: 0xD30C, - 12402: 0xD30D, - 12403: 0xD30E, - 12404: 0xD310, - 12405: 0xD314, - 12406: 0xD316, - 12407: 0xD31C, - 12408: 0xD31D, - 12409: 0xD31F, - 12410: 0xD320, - 12411: 0xD321, - 12412: 0xD325, - 12413: 0xD328, - 12414: 0xD329, - 12415: 0xD32C, - 12416: 0xD330, - 12417: 0xD338, - 12418: 0xD339, - 12419: 0xD33B, - 12420: 0xD33C, - 12421: 0xD33D, - 12422: 0xD344, - 12423: 0xD345, - 12424: 0xD37C, - 12425: 0xD37D, - 12426: 0xD380, - 12427: 0xD384, - 12428: 0xD38C, - 12429: 0xD38D, - 12430: 0xD38F, - 12431: 0xD390, - 12432: 0xD391, - 12433: 0xD398, - 12434: 0xD399, - 12435: 0xD39C, - 12436: 0xD3A0, - 12437: 0xD3A8, - 12438: 0xD3A9, - 12439: 0xD3AB, - 12440: 0xD3AD, - 12441: 0xD3B4, - 12442: 0xD3B8, - 12443: 0xD3BC, - 12444: 0xD3C4, - 12445: 0xD3C5, - 12446: 0xD3C8, - 12447: 0xD3C9, - 12448: 0xD3D0, - 12449: 0xD3D8, - 12450: 0xD3E1, - 12451: 0xD3E3, - 12452: 0xD3EC, - 12453: 0xD3ED, - 12454: 0xD3F0, - 12455: 0xD3F4, - 12456: 0xD3FC, - 12457: 0xD3FD, - 12458: 0xD3FF, - 12459: 0xD401, - 12460: 0xD408, - 12461: 0xD41D, - 12462: 0xD440, - 12463: 0xD444, - 12464: 0xD45C, - 12465: 0xD460, - 12466: 0xD464, - 12467: 0xD46D, - 12468: 0xD46F, - 12469: 0xD478, - 12470: 0xD479, - 12471: 0xD47C, - 12472: 0xD47F, - 12473: 0xD480, - 12474: 0xD482, - 12475: 0xD488, - 12476: 0xD489, - 12477: 0xD48B, - 12478: 0xD48D, - 12479: 0xD494, - 12480: 0xD4A9, - 12481: 0xD4CC, - 12482: 0xD4D0, - 12483: 0xD4D4, - 12484: 0xD4DC, - 12485: 0xD4DF, - 12486: 0xD4E8, - 12487: 0xD4EC, - 12488: 0xD4F0, - 12489: 0xD4F8, - 12490: 0xD4FB, - 12491: 0xD4FD, - 12492: 0xD504, - 12493: 0xD508, - 12494: 0xD50C, - 12495: 0xD514, - 12496: 0xD515, - 12497: 0xD517, - 12498: 0xD53C, - 12499: 0xD53D, - 12500: 0xD540, - 12501: 0xD544, - 12502: 0xD54C, - 12503: 0xD54D, - 12504: 0xD54F, - 12505: 0xD551, - 12506: 0xD558, - 12507: 0xD559, - 12508: 0xD55C, - 12509: 0xD560, - 12510: 0xD565, - 12511: 0xD568, - 12512: 0xD569, - 12513: 0xD56B, - 12514: 0xD56D, - 12515: 0xD574, - 12516: 0xD575, - 12517: 0xD578, - 12518: 0xD57C, - 12519: 0xD584, - 12520: 0xD585, - 12521: 0xD587, - 12522: 0xD588, - 12523: 0xD589, - 12524: 0xD590, - 12525: 0xD5A5, - 12526: 0xD5C8, - 12527: 0xD5C9, - 12528: 0xD5CC, - 12529: 0xD5D0, - 12530: 0xD5D2, - 12531: 0xD5D8, - 12532: 0xD5D9, - 12533: 0xD5DB, - 12534: 0xD5DD, - 12535: 0xD5E4, - 12536: 0xD5E5, - 12537: 0xD5E8, - 12538: 0xD5EC, - 12539: 0xD5F4, - 12540: 0xD5F5, - 12541: 0xD5F7, - 12542: 0xD5F9, - 12543: 0xD600, - 12544: 0xD601, - 12545: 0xD604, - 12546: 0xD608, - 12547: 0xD610, - 12548: 0xD611, - 12549: 0xD613, - 12550: 0xD614, - 12551: 0xD615, - 12552: 0xD61C, - 12553: 0xD620, - 12554: 0xD624, - 12555: 0xD62D, - 12556: 0xD638, - 12557: 0xD639, - 12558: 0xD63C, - 12559: 0xD640, - 12560: 0xD645, - 12561: 0xD648, - 12562: 0xD649, - 12563: 0xD64B, - 12564: 0xD64D, - 12565: 0xD651, - 12566: 0xD654, - 12567: 0xD655, - 12568: 0xD658, - 12569: 0xD65C, - 12570: 0xD667, - 12571: 0xD669, - 12572: 0xD670, - 12573: 0xD671, - 12574: 0xD674, - 12575: 0xD683, - 12576: 0xD685, - 12577: 0xD68C, - 12578: 0xD68D, - 12579: 0xD690, - 12580: 0xD694, - 12581: 0xD69D, - 12582: 0xD69F, - 12583: 0xD6A1, - 12584: 0xD6A8, - 12585: 0xD6AC, - 12586: 0xD6B0, - 12587: 0xD6B9, - 12588: 0xD6BB, - 12589: 0xD6C4, - 12590: 0xD6C5, - 12591: 0xD6C8, - 12592: 0xD6CC, - 12593: 0xD6D1, - 12594: 0xD6D4, - 12595: 0xD6D7, - 12596: 0xD6D9, - 12597: 0xD6E0, - 12598: 0xD6E4, - 12599: 0xD6E8, - 12600: 0xD6F0, - 12601: 0xD6F5, - 12602: 0xD6FC, - 12603: 0xD6FD, - 12604: 0xD700, - 12605: 0xD704, - 12606: 0xD711, - 12607: 0xD718, - 12608: 0xD719, - 12609: 0xD71C, - 12610: 0xD720, - 12611: 0xD728, - 12612: 0xD729, - 12613: 0xD72B, - 12614: 0xD72D, - 12615: 0xD734, - 12616: 0xD735, - 12617: 0xD738, - 12618: 0xD73C, - 12619: 0xD744, - 12620: 0xD747, - 12621: 0xD749, - 12622: 0xD750, - 12623: 0xD751, - 12624: 0xD754, - 12625: 0xD756, - 12626: 0xD757, - 12627: 0xD758, - 12628: 0xD759, - 12629: 0xD760, - 12630: 0xD761, - 12631: 0xD763, - 12632: 0xD765, - 12633: 0xD769, - 12634: 0xD76C, - 12635: 0xD770, - 12636: 0xD774, - 12637: 0xD77C, - 12638: 0xD77D, - 12639: 0xD781, - 12640: 0xD788, - 12641: 0xD789, - 12642: 0xD78C, - 12643: 0xD790, - 12644: 0xD798, - 12645: 0xD799, - 12646: 0xD79B, - 12647: 0xD79D, - 12742: 0x4F3D, - 12743: 0x4F73, - 12744: 0x5047, - 12745: 0x50F9, - 12746: 0x52A0, - 12747: 0x53EF, - 12748: 0x5475, - 12749: 0x54E5, - 12750: 0x5609, - 12751: 0x5AC1, - 12752: 0x5BB6, - 12753: 0x6687, - 12754: 0x67B6, - 12755: 0x67B7, - 12756: 0x67EF, - 12757: 0x6B4C, - 12758: 0x73C2, - 12759: 0x75C2, - 12760: 0x7A3C, - 12761: 0x82DB, - 12762: 0x8304, - 12763: 0x8857, - 12764: 0x8888, - 12765: 0x8A36, - 12766: 0x8CC8, - 12767: 0x8DCF, - 12768: 0x8EFB, - 12769: 0x8FE6, - 12770: 0x99D5, - 12771: 0x523B, - 12772: 0x5374, - 12773: 0x5404, - 12774: 0x606A, - 12775: 0x6164, - 12776: 0x6BBC, - 12777: 0x73CF, - 12778: 0x811A, - 12779: 0x89BA, - 12780: 0x89D2, - 12781: 0x95A3, - 12782: 0x4F83, - 12783: 0x520A, - 12784: 0x58BE, - 12785: 0x5978, - 12786: 0x59E6, - 12787: 0x5E72, - 12788: 0x5E79, - 12789: 0x61C7, - 12790: 0x63C0, - 12791: 0x6746, - 12792: 0x67EC, - 12793: 0x687F, - 12794: 0x6F97, - 12795: 0x764E, - 12796: 0x770B, - 12797: 0x78F5, - 12798: 0x7A08, - 12799: 0x7AFF, - 12800: 0x7C21, - 12801: 0x809D, - 12802: 0x826E, - 12803: 0x8271, - 12804: 0x8AEB, - 12805: 0x9593, - 12806: 0x4E6B, - 12807: 0x559D, - 12808: 0x66F7, - 12809: 0x6E34, - 12810: 0x78A3, - 12811: 0x7AED, - 12812: 0x845B, - 12813: 0x8910, - 12814: 0x874E, - 12815: 0x97A8, - 12816: 0x52D8, - 12817: 0x574E, - 12818: 0x582A, - 12819: 0x5D4C, - 12820: 0x611F, - 12821: 0x61BE, - 12822: 0x6221, - 12823: 0x6562, - 12824: 0x67D1, - 12825: 0x6A44, - 12826: 0x6E1B, - 12827: 0x7518, - 12828: 0x75B3, - 12829: 0x76E3, - 12830: 0x77B0, - 12831: 0x7D3A, - 12832: 0x90AF, - 12833: 0x9451, - 12834: 0x9452, - 12835: 0x9F95, - 12836: 0x5323, - 12837: 0x5CAC, - 12838: 0x7532, - 12839: 0x80DB, - 12840: 0x9240, - 12841: 0x9598, - 12842: 0x525B, - 12843: 0x5808, - 12844: 0x59DC, - 12845: 0x5CA1, - 12846: 0x5D17, - 12847: 0x5EB7, - 12848: 0x5F3A, - 12849: 0x5F4A, - 12850: 0x6177, - 12851: 0x6C5F, - 12852: 0x757A, - 12853: 0x7586, - 12854: 0x7CE0, - 12855: 0x7D73, - 12856: 0x7DB1, - 12857: 0x7F8C, - 12858: 0x8154, - 12859: 0x8221, - 12860: 0x8591, - 12861: 0x8941, - 12862: 0x8B1B, - 12863: 0x92FC, - 12864: 0x964D, - 12865: 0x9C47, - 12866: 0x4ECB, - 12867: 0x4EF7, - 12868: 0x500B, - 12869: 0x51F1, - 12870: 0x584F, - 12871: 0x6137, - 12872: 0x613E, - 12873: 0x6168, - 12874: 0x6539, - 12875: 0x69EA, - 12876: 0x6F11, - 12877: 0x75A5, - 12878: 0x7686, - 12879: 0x76D6, - 12880: 0x7B87, - 12881: 0x82A5, - 12882: 0x84CB, - 12883: 0xF900, - 12884: 0x93A7, - 12885: 0x958B, - 12886: 0x5580, - 12887: 0x5BA2, - 12888: 0x5751, - 12889: 0xF901, - 12890: 0x7CB3, - 12891: 0x7FB9, - 12892: 0x91B5, - 12893: 0x5028, - 12894: 0x53BB, - 12895: 0x5C45, - 12896: 0x5DE8, - 12897: 0x62D2, - 12898: 0x636E, - 12899: 0x64DA, - 12900: 0x64E7, - 12901: 0x6E20, - 12902: 0x70AC, - 12903: 0x795B, - 12904: 0x8DDD, - 12905: 0x8E1E, - 12906: 0xF902, - 12907: 0x907D, - 12908: 0x9245, - 12909: 0x92F8, - 12910: 0x4E7E, - 12911: 0x4EF6, - 12912: 0x5065, - 12913: 0x5DFE, - 12914: 0x5EFA, - 12915: 0x6106, - 12916: 0x6957, - 12917: 0x8171, - 12918: 0x8654, - 12919: 0x8E47, - 12920: 0x9375, - 12921: 0x9A2B, - 12922: 0x4E5E, - 12923: 0x5091, - 12924: 0x6770, - 12925: 0x6840, - 12926: 0x5109, - 12927: 0x528D, - 12928: 0x5292, - 12929: 0x6AA2, - 12930: 0x77BC, - 12931: 0x9210, - 12932: 0x9ED4, - 12933: 0x52AB, - 12934: 0x602F, - 12935: 0x8FF2, - 12936: 0x5048, - 12937: 0x61A9, - 12938: 0x63ED, - 12939: 0x64CA, - 12940: 0x683C, - 12941: 0x6A84, - 12942: 0x6FC0, - 12943: 0x8188, - 12944: 0x89A1, - 12945: 0x9694, - 12946: 0x5805, - 12947: 0x727D, - 12948: 0x72AC, - 12949: 0x7504, - 12950: 0x7D79, - 12951: 0x7E6D, - 12952: 0x80A9, - 12953: 0x898B, - 12954: 0x8B74, - 12955: 0x9063, - 12956: 0x9D51, - 12957: 0x6289, - 12958: 0x6C7A, - 12959: 0x6F54, - 12960: 0x7D50, - 12961: 0x7F3A, - 12962: 0x8A23, - 12963: 0x517C, - 12964: 0x614A, - 12965: 0x7B9D, - 12966: 0x8B19, - 12967: 0x9257, - 12968: 0x938C, - 12969: 0x4EAC, - 12970: 0x4FD3, - 12971: 0x501E, - 12972: 0x50BE, - 12973: 0x5106, - 12974: 0x52C1, - 12975: 0x52CD, - 12976: 0x537F, - 12977: 0x5770, - 12978: 0x5883, - 12979: 0x5E9A, - 12980: 0x5F91, - 12981: 0x6176, - 12982: 0x61AC, - 12983: 0x64CE, - 12984: 0x656C, - 12985: 0x666F, - 12986: 0x66BB, - 12987: 0x66F4, - 12988: 0x6897, - 12989: 0x6D87, - 12990: 0x7085, - 12991: 0x70F1, - 12992: 0x749F, - 12993: 0x74A5, - 12994: 0x74CA, - 12995: 0x75D9, - 12996: 0x786C, - 12997: 0x78EC, - 12998: 0x7ADF, - 12999: 0x7AF6, - 13000: 0x7D45, - 13001: 0x7D93, - 13002: 0x8015, - 13003: 0x803F, - 13004: 0x811B, - 13005: 0x8396, - 13006: 0x8B66, - 13007: 0x8F15, - 13008: 0x9015, - 13009: 0x93E1, - 13010: 0x9803, - 13011: 0x9838, - 13012: 0x9A5A, - 13013: 0x9BE8, - 13014: 0x4FC2, - 13015: 0x5553, - 13016: 0x583A, - 13017: 0x5951, - 13018: 0x5B63, - 13019: 0x5C46, - 13020: 0x60B8, - 13021: 0x6212, - 13022: 0x6842, - 13023: 0x68B0, - 13024: 0x68E8, - 13025: 0x6EAA, - 13026: 0x754C, - 13027: 0x7678, - 13028: 0x78CE, - 13029: 0x7A3D, - 13030: 0x7CFB, - 13031: 0x7E6B, - 13032: 0x7E7C, - 13033: 0x8A08, - 13034: 0x8AA1, - 13035: 0x8C3F, - 13036: 0x968E, - 13037: 0x9DC4, - 13038: 0x53E4, - 13039: 0x53E9, - 13040: 0x544A, - 13041: 0x5471, - 13042: 0x56FA, - 13043: 0x59D1, - 13044: 0x5B64, - 13045: 0x5C3B, - 13046: 0x5EAB, - 13047: 0x62F7, - 13048: 0x6537, - 13049: 0x6545, - 13050: 0x6572, - 13051: 0x66A0, - 13052: 0x67AF, - 13053: 0x69C1, - 13054: 0x6CBD, - 13055: 0x75FC, - 13056: 0x7690, - 13057: 0x777E, - 13058: 0x7A3F, - 13059: 0x7F94, - 13060: 0x8003, - 13061: 0x80A1, - 13062: 0x818F, - 13063: 0x82E6, - 13064: 0x82FD, - 13065: 0x83F0, - 13066: 0x85C1, - 13067: 0x8831, - 13068: 0x88B4, - 13069: 0x8AA5, - 13070: 0xF903, - 13071: 0x8F9C, - 13072: 0x932E, - 13073: 0x96C7, - 13074: 0x9867, - 13075: 0x9AD8, - 13076: 0x9F13, - 13077: 0x54ED, - 13078: 0x659B, - 13079: 0x66F2, - 13080: 0x688F, - 13081: 0x7A40, - 13082: 0x8C37, - 13083: 0x9D60, - 13084: 0x56F0, - 13085: 0x5764, - 13086: 0x5D11, - 13087: 0x6606, - 13088: 0x68B1, - 13089: 0x68CD, - 13090: 0x6EFE, - 13091: 0x7428, - 13092: 0x889E, - 13093: 0x9BE4, - 13094: 0x6C68, - 13095: 0xF904, - 13096: 0x9AA8, - 13097: 0x4F9B, - 13098: 0x516C, - 13099: 0x5171, - 13100: 0x529F, - 13101: 0x5B54, - 13102: 0x5DE5, - 13103: 0x6050, - 13104: 0x606D, - 13105: 0x62F1, - 13106: 0x63A7, - 13107: 0x653B, - 13108: 0x73D9, - 13109: 0x7A7A, - 13110: 0x86A3, - 13111: 0x8CA2, - 13112: 0x978F, - 13113: 0x4E32, - 13114: 0x5BE1, - 13115: 0x6208, - 13116: 0x679C, - 13117: 0x74DC, - 13118: 0x79D1, - 13119: 0x83D3, - 13120: 0x8A87, - 13121: 0x8AB2, - 13122: 0x8DE8, - 13123: 0x904E, - 13124: 0x934B, - 13125: 0x9846, - 13126: 0x5ED3, - 13127: 0x69E8, - 13128: 0x85FF, - 13129: 0x90ED, - 13130: 0xF905, - 13131: 0x51A0, - 13132: 0x5B98, - 13133: 0x5BEC, - 13134: 0x6163, - 13135: 0x68FA, - 13136: 0x6B3E, - 13137: 0x704C, - 13138: 0x742F, - 13139: 0x74D8, - 13140: 0x7BA1, - 13141: 0x7F50, - 13142: 0x83C5, - 13143: 0x89C0, - 13144: 0x8CAB, - 13145: 0x95DC, - 13146: 0x9928, - 13147: 0x522E, - 13148: 0x605D, - 13149: 0x62EC, - 13150: 0x9002, - 13151: 0x4F8A, - 13152: 0x5149, - 13153: 0x5321, - 13154: 0x58D9, - 13155: 0x5EE3, - 13156: 0x66E0, - 13157: 0x6D38, - 13158: 0x709A, - 13159: 0x72C2, - 13160: 0x73D6, - 13161: 0x7B50, - 13162: 0x80F1, - 13163: 0x945B, - 13164: 0x5366, - 13165: 0x639B, - 13166: 0x7F6B, - 13167: 0x4E56, - 13168: 0x5080, - 13169: 0x584A, - 13170: 0x58DE, - 13171: 0x602A, - 13172: 0x6127, - 13173: 0x62D0, - 13174: 0x69D0, - 13175: 0x9B41, - 13176: 0x5B8F, - 13177: 0x7D18, - 13178: 0x80B1, - 13179: 0x8F5F, - 13180: 0x4EA4, - 13181: 0x50D1, - 13182: 0x54AC, - 13183: 0x55AC, - 13184: 0x5B0C, - 13185: 0x5DA0, - 13186: 0x5DE7, - 13187: 0x652A, - 13188: 0x654E, - 13189: 0x6821, - 13190: 0x6A4B, - 13191: 0x72E1, - 13192: 0x768E, - 13193: 0x77EF, - 13194: 0x7D5E, - 13195: 0x7FF9, - 13196: 0x81A0, - 13197: 0x854E, - 13198: 0x86DF, - 13199: 0x8F03, - 13200: 0x8F4E, - 13201: 0x90CA, - 13202: 0x9903, - 13203: 0x9A55, - 13204: 0x9BAB, - 13205: 0x4E18, - 13206: 0x4E45, - 13207: 0x4E5D, - 13208: 0x4EC7, - 13209: 0x4FF1, - 13210: 0x5177, - 13211: 0x52FE, - 13212: 0x5340, - 13213: 0x53E3, - 13214: 0x53E5, - 13215: 0x548E, - 13216: 0x5614, - 13217: 0x5775, - 13218: 0x57A2, - 13219: 0x5BC7, - 13220: 0x5D87, - 13221: 0x5ED0, - 13222: 0x61FC, - 13223: 0x62D8, - 13224: 0x6551, - 13225: 0x67B8, - 13226: 0x67E9, - 13227: 0x69CB, - 13228: 0x6B50, - 13229: 0x6BC6, - 13230: 0x6BEC, - 13231: 0x6C42, - 13232: 0x6E9D, - 13233: 0x7078, - 13234: 0x72D7, - 13235: 0x7396, - 13236: 0x7403, - 13237: 0x77BF, - 13238: 0x77E9, - 13239: 0x7A76, - 13240: 0x7D7F, - 13241: 0x8009, - 13242: 0x81FC, - 13243: 0x8205, - 13244: 0x820A, - 13245: 0x82DF, - 13246: 0x8862, - 13247: 0x8B33, - 13248: 0x8CFC, - 13249: 0x8EC0, - 13250: 0x9011, - 13251: 0x90B1, - 13252: 0x9264, - 13253: 0x92B6, - 13254: 0x99D2, - 13255: 0x9A45, - 13256: 0x9CE9, - 13257: 0x9DD7, - 13258: 0x9F9C, - 13259: 0x570B, - 13260: 0x5C40, - 13261: 0x83CA, - 13262: 0x97A0, - 13263: 0x97AB, - 13264: 0x9EB4, - 13265: 0x541B, - 13266: 0x7A98, - 13267: 0x7FA4, - 13268: 0x88D9, - 13269: 0x8ECD, - 13270: 0x90E1, - 13271: 0x5800, - 13272: 0x5C48, - 13273: 0x6398, - 13274: 0x7A9F, - 13275: 0x5BAE, - 13276: 0x5F13, - 13277: 0x7A79, - 13278: 0x7AAE, - 13279: 0x828E, - 13280: 0x8EAC, - 13281: 0x5026, - 13282: 0x5238, - 13283: 0x52F8, - 13284: 0x5377, - 13285: 0x5708, - 13286: 0x62F3, - 13287: 0x6372, - 13288: 0x6B0A, - 13289: 0x6DC3, - 13290: 0x7737, - 13291: 0x53A5, - 13292: 0x7357, - 13293: 0x8568, - 13294: 0x8E76, - 13295: 0x95D5, - 13296: 0x673A, - 13297: 0x6AC3, - 13298: 0x6F70, - 13299: 0x8A6D, - 13300: 0x8ECC, - 13301: 0x994B, - 13302: 0xF906, - 13303: 0x6677, - 13304: 0x6B78, - 13305: 0x8CB4, - 13306: 0x9B3C, - 13307: 0xF907, - 13308: 0x53EB, - 13309: 0x572D, - 13310: 0x594E, - 13311: 0x63C6, - 13312: 0x69FB, - 13313: 0x73EA, - 13314: 0x7845, - 13315: 0x7ABA, - 13316: 0x7AC5, - 13317: 0x7CFE, - 13318: 0x8475, - 13319: 0x898F, - 13320: 0x8D73, - 13321: 0x9035, - 13322: 0x95A8, - 13323: 0x52FB, - 13324: 0x5747, - 13325: 0x7547, - 13326: 0x7B60, - 13327: 0x83CC, - 13328: 0x921E, - 13329: 0xF908, - 13330: 0x6A58, - 13331: 0x514B, - 13332: 0x524B, - 13333: 0x5287, - 13334: 0x621F, - 13335: 0x68D8, - 13336: 0x6975, - 13337: 0x9699, - 13338: 0x50C5, - 13339: 0x52A4, - 13340: 0x52E4, - 13341: 0x61C3, - 13342: 0x65A4, - 13343: 0x6839, - 13344: 0x69FF, - 13345: 0x747E, - 13346: 0x7B4B, - 13347: 0x82B9, - 13348: 0x83EB, - 13349: 0x89B2, - 13350: 0x8B39, - 13351: 0x8FD1, - 13352: 0x9949, - 13353: 0xF909, - 13354: 0x4ECA, - 13355: 0x5997, - 13356: 0x64D2, - 13357: 0x6611, - 13358: 0x6A8E, - 13359: 0x7434, - 13360: 0x7981, - 13361: 0x79BD, - 13362: 0x82A9, - 13363: 0x887E, - 13364: 0x887F, - 13365: 0x895F, - 13366: 0xF90A, - 13367: 0x9326, - 13368: 0x4F0B, - 13369: 0x53CA, - 13370: 0x6025, - 13371: 0x6271, - 13372: 0x6C72, - 13373: 0x7D1A, - 13374: 0x7D66, - 13375: 0x4E98, - 13376: 0x5162, - 13377: 0x77DC, - 13378: 0x80AF, - 13379: 0x4F01, - 13380: 0x4F0E, - 13381: 0x5176, - 13382: 0x5180, - 13383: 0x55DC, - 13384: 0x5668, - 13385: 0x573B, - 13386: 0x57FA, - 13387: 0x57FC, - 13388: 0x5914, - 13389: 0x5947, - 13390: 0x5993, - 13391: 0x5BC4, - 13392: 0x5C90, - 13393: 0x5D0E, - 13394: 0x5DF1, - 13395: 0x5E7E, - 13396: 0x5FCC, - 13397: 0x6280, - 13398: 0x65D7, - 13399: 0x65E3, - 13400: 0x671E, - 13401: 0x671F, - 13402: 0x675E, - 13403: 0x68CB, - 13404: 0x68C4, - 13405: 0x6A5F, - 13406: 0x6B3A, - 13407: 0x6C23, - 13408: 0x6C7D, - 13409: 0x6C82, - 13410: 0x6DC7, - 13411: 0x7398, - 13412: 0x7426, - 13413: 0x742A, - 13414: 0x7482, - 13415: 0x74A3, - 13416: 0x7578, - 13417: 0x757F, - 13418: 0x7881, - 13419: 0x78EF, - 13420: 0x7941, - 13421: 0x7947, - 13422: 0x7948, - 13423: 0x797A, - 13424: 0x7B95, - 13425: 0x7D00, - 13426: 0x7DBA, - 13427: 0x7F88, - 13428: 0x8006, - 13429: 0x802D, - 13430: 0x808C, - 13431: 0x8A18, - 13432: 0x8B4F, - 13433: 0x8C48, - 13434: 0x8D77, - 13435: 0x9321, - 13436: 0x9324, - 13437: 0x98E2, - 13438: 0x9951, - 13439: 0x9A0E, - 13440: 0x9A0F, - 13441: 0x9A65, - 13442: 0x9E92, - 13443: 0x7DCA, - 13444: 0x4F76, - 13445: 0x5409, - 13446: 0x62EE, - 13447: 0x6854, - 13448: 0x91D1, - 13449: 0x55AB, - 13450: 0x513A, - 13451: 0xF90B, - 13452: 0xF90C, - 13453: 0x5A1C, - 13454: 0x61E6, - 13455: 0xF90D, - 13456: 0x62CF, - 13457: 0x62FF, - 13458: 0xF90E, - 13459: 0xF90F, - 13460: 0xF910, - 13461: 0xF911, - 13462: 0xF912, - 13463: 0xF913, - 13464: 0x90A3, - 13465: 0xF914, - 13466: 0xF915, - 13467: 0xF916, - 13468: 0xF917, - 13469: 0xF918, - 13470: 0x8AFE, - 13471: 0xF919, - 13472: 0xF91A, - 13473: 0xF91B, - 13474: 0xF91C, - 13475: 0x6696, - 13476: 0xF91D, - 13477: 0x7156, - 13478: 0xF91E, - 13479: 0xF91F, - 13480: 0x96E3, - 13481: 0xF920, - 13482: 0x634F, - 13483: 0x637A, - 13484: 0x5357, - 13485: 0xF921, - 13486: 0x678F, - 13487: 0x6960, - 13488: 0x6E73, - 13489: 0xF922, - 13490: 0x7537, - 13491: 0xF923, - 13492: 0xF924, - 13493: 0xF925, - 13494: 0x7D0D, - 13495: 0xF926, - 13496: 0xF927, - 13497: 0x8872, - 13498: 0x56CA, - 13499: 0x5A18, - 13500: 0xF928, - 13501: 0xF929, - 13502: 0xF92A, - 13503: 0xF92B, - 13504: 0xF92C, - 13505: 0x4E43, - 13506: 0xF92D, - 13507: 0x5167, - 13508: 0x5948, - 13509: 0x67F0, - 13510: 0x8010, - 13511: 0xF92E, - 13512: 0x5973, - 13513: 0x5E74, - 13514: 0x649A, - 13515: 0x79CA, - 13516: 0x5FF5, - 13517: 0x606C, - 13518: 0x62C8, - 13519: 0x637B, - 13520: 0x5BE7, - 13521: 0x5BD7, - 13522: 0x52AA, - 13523: 0xF92F, - 13524: 0x5974, - 13525: 0x5F29, - 13526: 0x6012, - 13527: 0xF930, - 13528: 0xF931, - 13529: 0xF932, - 13530: 0x7459, - 13531: 0xF933, - 13532: 0xF934, - 13533: 0xF935, - 13534: 0xF936, - 13535: 0xF937, - 13536: 0xF938, - 13537: 0x99D1, - 13538: 0xF939, - 13539: 0xF93A, - 13540: 0xF93B, - 13541: 0xF93C, - 13542: 0xF93D, - 13543: 0xF93E, - 13544: 0xF93F, - 13545: 0xF940, - 13546: 0xF941, - 13547: 0xF942, - 13548: 0xF943, - 13549: 0x6FC3, - 13550: 0xF944, - 13551: 0xF945, - 13552: 0x81BF, - 13553: 0x8FB2, - 13554: 0x60F1, - 13555: 0xF946, - 13556: 0xF947, - 13557: 0x8166, - 13558: 0xF948, - 13559: 0xF949, - 13560: 0x5C3F, - 13561: 0xF94A, - 13562: 0xF94B, - 13563: 0xF94C, - 13564: 0xF94D, - 13565: 0xF94E, - 13566: 0xF94F, - 13567: 0xF950, - 13568: 0xF951, - 13569: 0x5AE9, - 13570: 0x8A25, - 13571: 0x677B, - 13572: 0x7D10, - 13573: 0xF952, - 13574: 0xF953, - 13575: 0xF954, - 13576: 0xF955, - 13577: 0xF956, - 13578: 0xF957, - 13579: 0x80FD, - 13580: 0xF958, - 13581: 0xF959, - 13582: 0x5C3C, - 13583: 0x6CE5, - 13584: 0x533F, - 13585: 0x6EBA, - 13586: 0x591A, - 13587: 0x8336, - 13588: 0x4E39, - 13589: 0x4EB6, - 13590: 0x4F46, - 13591: 0x55AE, - 13592: 0x5718, - 13593: 0x58C7, - 13594: 0x5F56, - 13595: 0x65B7, - 13596: 0x65E6, - 13597: 0x6A80, - 13598: 0x6BB5, - 13599: 0x6E4D, - 13600: 0x77ED, - 13601: 0x7AEF, - 13602: 0x7C1E, - 13603: 0x7DDE, - 13604: 0x86CB, - 13605: 0x8892, - 13606: 0x9132, - 13607: 0x935B, - 13608: 0x64BB, - 13609: 0x6FBE, - 13610: 0x737A, - 13611: 0x75B8, - 13612: 0x9054, - 13613: 0x5556, - 13614: 0x574D, - 13615: 0x61BA, - 13616: 0x64D4, - 13617: 0x66C7, - 13618: 0x6DE1, - 13619: 0x6E5B, - 13620: 0x6F6D, - 13621: 0x6FB9, - 13622: 0x75F0, - 13623: 0x8043, - 13624: 0x81BD, - 13625: 0x8541, - 13626: 0x8983, - 13627: 0x8AC7, - 13628: 0x8B5A, - 13629: 0x931F, - 13630: 0x6C93, - 13631: 0x7553, - 13632: 0x7B54, - 13633: 0x8E0F, - 13634: 0x905D, - 13635: 0x5510, - 13636: 0x5802, - 13637: 0x5858, - 13638: 0x5E62, - 13639: 0x6207, - 13640: 0x649E, - 13641: 0x68E0, - 13642: 0x7576, - 13643: 0x7CD6, - 13644: 0x87B3, - 13645: 0x9EE8, - 13646: 0x4EE3, - 13647: 0x5788, - 13648: 0x576E, - 13649: 0x5927, - 13650: 0x5C0D, - 13651: 0x5CB1, - 13652: 0x5E36, - 13653: 0x5F85, - 13654: 0x6234, - 13655: 0x64E1, - 13656: 0x73B3, - 13657: 0x81FA, - 13658: 0x888B, - 13659: 0x8CB8, - 13660: 0x968A, - 13661: 0x9EDB, - 13662: 0x5B85, - 13663: 0x5FB7, - 13664: 0x60B3, - 13665: 0x5012, - 13666: 0x5200, - 13667: 0x5230, - 13668: 0x5716, - 13669: 0x5835, - 13670: 0x5857, - 13671: 0x5C0E, - 13672: 0x5C60, - 13673: 0x5CF6, - 13674: 0x5D8B, - 13675: 0x5EA6, - 13676: 0x5F92, - 13677: 0x60BC, - 13678: 0x6311, - 13679: 0x6389, - 13680: 0x6417, - 13681: 0x6843, - 13682: 0x68F9, - 13683: 0x6AC2, - 13684: 0x6DD8, - 13685: 0x6E21, - 13686: 0x6ED4, - 13687: 0x6FE4, - 13688: 0x71FE, - 13689: 0x76DC, - 13690: 0x7779, - 13691: 0x79B1, - 13692: 0x7A3B, - 13693: 0x8404, - 13694: 0x89A9, - 13695: 0x8CED, - 13696: 0x8DF3, - 13697: 0x8E48, - 13698: 0x9003, - 13699: 0x9014, - 13700: 0x9053, - 13701: 0x90FD, - 13702: 0x934D, - 13703: 0x9676, - 13704: 0x97DC, - 13705: 0x6BD2, - 13706: 0x7006, - 13707: 0x7258, - 13708: 0x72A2, - 13709: 0x7368, - 13710: 0x7763, - 13711: 0x79BF, - 13712: 0x7BE4, - 13713: 0x7E9B, - 13714: 0x8B80, - 13715: 0x58A9, - 13716: 0x60C7, - 13717: 0x6566, - 13718: 0x65FD, - 13719: 0x66BE, - 13720: 0x6C8C, - 13721: 0x711E, - 13722: 0x71C9, - 13723: 0x8C5A, - 13724: 0x9813, - 13725: 0x4E6D, - 13726: 0x7A81, - 13727: 0x4EDD, - 13728: 0x51AC, - 13729: 0x51CD, - 13730: 0x52D5, - 13731: 0x540C, - 13732: 0x61A7, - 13733: 0x6771, - 13734: 0x6850, - 13735: 0x68DF, - 13736: 0x6D1E, - 13737: 0x6F7C, - 13738: 0x75BC, - 13739: 0x77B3, - 13740: 0x7AE5, - 13741: 0x80F4, - 13742: 0x8463, - 13743: 0x9285, - 13744: 0x515C, - 13745: 0x6597, - 13746: 0x675C, - 13747: 0x6793, - 13748: 0x75D8, - 13749: 0x7AC7, - 13750: 0x8373, - 13751: 0xF95A, - 13752: 0x8C46, - 13753: 0x9017, - 13754: 0x982D, - 13755: 0x5C6F, - 13756: 0x81C0, - 13757: 0x829A, - 13758: 0x9041, - 13759: 0x906F, - 13760: 0x920D, - 13761: 0x5F97, - 13762: 0x5D9D, - 13763: 0x6A59, - 13764: 0x71C8, - 13765: 0x767B, - 13766: 0x7B49, - 13767: 0x85E4, - 13768: 0x8B04, - 13769: 0x9127, - 13770: 0x9A30, - 13771: 0x5587, - 13772: 0x61F6, - 13773: 0xF95B, - 13774: 0x7669, - 13775: 0x7F85, - 13776: 0x863F, - 13777: 0x87BA, - 13778: 0x88F8, - 13779: 0x908F, - 13780: 0xF95C, - 13781: 0x6D1B, - 13782: 0x70D9, - 13783: 0x73DE, - 13784: 0x7D61, - 13785: 0x843D, - 13786: 0xF95D, - 13787: 0x916A, - 13788: 0x99F1, - 13789: 0xF95E, - 13790: 0x4E82, - 13791: 0x5375, - 13792: 0x6B04, - 13793: 0x6B12, - 13794: 0x703E, - 13795: 0x721B, - 13796: 0x862D, - 13797: 0x9E1E, - 13798: 0x524C, - 13799: 0x8FA3, - 13800: 0x5D50, - 13801: 0x64E5, - 13802: 0x652C, - 13803: 0x6B16, - 13804: 0x6FEB, - 13805: 0x7C43, - 13806: 0x7E9C, - 13807: 0x85CD, - 13808: 0x8964, - 13809: 0x89BD, - 13810: 0x62C9, - 13811: 0x81D8, - 13812: 0x881F, - 13813: 0x5ECA, - 13814: 0x6717, - 13815: 0x6D6A, - 13816: 0x72FC, - 13817: 0x7405, - 13818: 0x746F, - 13819: 0x8782, - 13820: 0x90DE, - 13821: 0x4F86, - 13822: 0x5D0D, - 13823: 0x5FA0, - 13824: 0x840A, - 13825: 0x51B7, - 13826: 0x63A0, - 13827: 0x7565, - 13828: 0x4EAE, - 13829: 0x5006, - 13830: 0x5169, - 13831: 0x51C9, - 13832: 0x6881, - 13833: 0x6A11, - 13834: 0x7CAE, - 13835: 0x7CB1, - 13836: 0x7CE7, - 13837: 0x826F, - 13838: 0x8AD2, - 13839: 0x8F1B, - 13840: 0x91CF, - 13841: 0x4FB6, - 13842: 0x5137, - 13843: 0x52F5, - 13844: 0x5442, - 13845: 0x5EEC, - 13846: 0x616E, - 13847: 0x623E, - 13848: 0x65C5, - 13849: 0x6ADA, - 13850: 0x6FFE, - 13851: 0x792A, - 13852: 0x85DC, - 13853: 0x8823, - 13854: 0x95AD, - 13855: 0x9A62, - 13856: 0x9A6A, - 13857: 0x9E97, - 13858: 0x9ECE, - 13859: 0x529B, - 13860: 0x66C6, - 13861: 0x6B77, - 13862: 0x701D, - 13863: 0x792B, - 13864: 0x8F62, - 13865: 0x9742, - 13866: 0x6190, - 13867: 0x6200, - 13868: 0x6523, - 13869: 0x6F23, - 13870: 0x7149, - 13871: 0x7489, - 13872: 0x7DF4, - 13873: 0x806F, - 13874: 0x84EE, - 13875: 0x8F26, - 13876: 0x9023, - 13877: 0x934A, - 13878: 0x51BD, - 13879: 0x5217, - 13880: 0x52A3, - 13881: 0x6D0C, - 13882: 0x70C8, - 13883: 0x88C2, - 13884: 0x5EC9, - 13885: 0x6582, - 13886: 0x6BAE, - 13887: 0x6FC2, - 13888: 0x7C3E, - 13889: 0x7375, - 13890: 0x4EE4, - 13891: 0x4F36, - 13892: 0x56F9, - 13893: 0xF95F, - 13894: 0x5CBA, - 13895: 0x5DBA, - 13896: 0x601C, - 13897: 0x73B2, - 13898: 0x7B2D, - 13899: 0x7F9A, - 13900: 0x7FCE, - 13901: 0x8046, - 13902: 0x901E, - 13903: 0x9234, - 13904: 0x96F6, - 13905: 0x9748, - 13906: 0x9818, - 13907: 0x9F61, - 13908: 0x4F8B, - 13909: 0x6FA7, - 13910: 0x79AE, - 13911: 0x91B4, - 13912: 0x96B7, - 13913: 0x52DE, - 13914: 0xF960, - 13915: 0x6488, - 13916: 0x64C4, - 13917: 0x6AD3, - 13918: 0x6F5E, - 13919: 0x7018, - 13920: 0x7210, - 13921: 0x76E7, - 13922: 0x8001, - 13923: 0x8606, - 13924: 0x865C, - 13925: 0x8DEF, - 13926: 0x8F05, - 13927: 0x9732, - 13928: 0x9B6F, - 13929: 0x9DFA, - 13930: 0x9E75, - 13931: 0x788C, - 13932: 0x797F, - 13933: 0x7DA0, - 13934: 0x83C9, - 13935: 0x9304, - 13936: 0x9E7F, - 13937: 0x9E93, - 13938: 0x8AD6, - 13939: 0x58DF, - 13940: 0x5F04, - 13941: 0x6727, - 13942: 0x7027, - 13943: 0x74CF, - 13944: 0x7C60, - 13945: 0x807E, - 13946: 0x5121, - 13947: 0x7028, - 13948: 0x7262, - 13949: 0x78CA, - 13950: 0x8CC2, - 13951: 0x8CDA, - 13952: 0x8CF4, - 13953: 0x96F7, - 13954: 0x4E86, - 13955: 0x50DA, - 13956: 0x5BEE, - 13957: 0x5ED6, - 13958: 0x6599, - 13959: 0x71CE, - 13960: 0x7642, - 13961: 0x77AD, - 13962: 0x804A, - 13963: 0x84FC, - 13964: 0x907C, - 13965: 0x9B27, - 13966: 0x9F8D, - 13967: 0x58D8, - 13968: 0x5A41, - 13969: 0x5C62, - 13970: 0x6A13, - 13971: 0x6DDA, - 13972: 0x6F0F, - 13973: 0x763B, - 13974: 0x7D2F, - 13975: 0x7E37, - 13976: 0x851E, - 13977: 0x8938, - 13978: 0x93E4, - 13979: 0x964B, - 13980: 0x5289, - 13981: 0x65D2, - 13982: 0x67F3, - 13983: 0x69B4, - 13984: 0x6D41, - 13985: 0x6E9C, - 13986: 0x700F, - 13987: 0x7409, - 13988: 0x7460, - 13989: 0x7559, - 13990: 0x7624, - 13991: 0x786B, - 13992: 0x8B2C, - 13993: 0x985E, - 13994: 0x516D, - 13995: 0x622E, - 13996: 0x9678, - 13997: 0x4F96, - 13998: 0x502B, - 13999: 0x5D19, - 14000: 0x6DEA, - 14001: 0x7DB8, - 14002: 0x8F2A, - 14003: 0x5F8B, - 14004: 0x6144, - 14005: 0x6817, - 14006: 0xF961, - 14007: 0x9686, - 14008: 0x52D2, - 14009: 0x808B, - 14010: 0x51DC, - 14011: 0x51CC, - 14012: 0x695E, - 14013: 0x7A1C, - 14014: 0x7DBE, - 14015: 0x83F1, - 14016: 0x9675, - 14017: 0x4FDA, - 14018: 0x5229, - 14019: 0x5398, - 14020: 0x540F, - 14021: 0x550E, - 14022: 0x5C65, - 14023: 0x60A7, - 14024: 0x674E, - 14025: 0x68A8, - 14026: 0x6D6C, - 14027: 0x7281, - 14028: 0x72F8, - 14029: 0x7406, - 14030: 0x7483, - 14031: 0xF962, - 14032: 0x75E2, - 14033: 0x7C6C, - 14034: 0x7F79, - 14035: 0x7FB8, - 14036: 0x8389, - 14037: 0x88CF, - 14038: 0x88E1, - 14039: 0x91CC, - 14040: 0x91D0, - 14041: 0x96E2, - 14042: 0x9BC9, - 14043: 0x541D, - 14044: 0x6F7E, - 14045: 0x71D0, - 14046: 0x7498, - 14047: 0x85FA, - 14048: 0x8EAA, - 14049: 0x96A3, - 14050: 0x9C57, - 14051: 0x9E9F, - 14052: 0x6797, - 14053: 0x6DCB, - 14054: 0x7433, - 14055: 0x81E8, - 14056: 0x9716, - 14057: 0x782C, - 14058: 0x7ACB, - 14059: 0x7B20, - 14060: 0x7C92, - 14061: 0x6469, - 14062: 0x746A, - 14063: 0x75F2, - 14064: 0x78BC, - 14065: 0x78E8, - 14066: 0x99AC, - 14067: 0x9B54, - 14068: 0x9EBB, - 14069: 0x5BDE, - 14070: 0x5E55, - 14071: 0x6F20, - 14072: 0x819C, - 14073: 0x83AB, - 14074: 0x9088, - 14075: 0x4E07, - 14076: 0x534D, - 14077: 0x5A29, - 14078: 0x5DD2, - 14079: 0x5F4E, - 14080: 0x6162, - 14081: 0x633D, - 14082: 0x6669, - 14083: 0x66FC, - 14084: 0x6EFF, - 14085: 0x6F2B, - 14086: 0x7063, - 14087: 0x779E, - 14088: 0x842C, - 14089: 0x8513, - 14090: 0x883B, - 14091: 0x8F13, - 14092: 0x9945, - 14093: 0x9C3B, - 14094: 0x551C, - 14095: 0x62B9, - 14096: 0x672B, - 14097: 0x6CAB, - 14098: 0x8309, - 14099: 0x896A, - 14100: 0x977A, - 14101: 0x4EA1, - 14102: 0x5984, - 14103: 0x5FD8, - 14104: 0x5FD9, - 14105: 0x671B, - 14106: 0x7DB2, - 14107: 0x7F54, - 14108: 0x8292, - 14109: 0x832B, - 14110: 0x83BD, - 14111: 0x8F1E, - 14112: 0x9099, - 14113: 0x57CB, - 14114: 0x59B9, - 14115: 0x5A92, - 14116: 0x5BD0, - 14117: 0x6627, - 14118: 0x679A, - 14119: 0x6885, - 14120: 0x6BCF, - 14121: 0x7164, - 14122: 0x7F75, - 14123: 0x8CB7, - 14124: 0x8CE3, - 14125: 0x9081, - 14126: 0x9B45, - 14127: 0x8108, - 14128: 0x8C8A, - 14129: 0x964C, - 14130: 0x9A40, - 14131: 0x9EA5, - 14132: 0x5B5F, - 14133: 0x6C13, - 14134: 0x731B, - 14135: 0x76F2, - 14136: 0x76DF, - 14137: 0x840C, - 14138: 0x51AA, - 14139: 0x8993, - 14140: 0x514D, - 14141: 0x5195, - 14142: 0x52C9, - 14143: 0x68C9, - 14144: 0x6C94, - 14145: 0x7704, - 14146: 0x7720, - 14147: 0x7DBF, - 14148: 0x7DEC, - 14149: 0x9762, - 14150: 0x9EB5, - 14151: 0x6EC5, - 14152: 0x8511, - 14153: 0x51A5, - 14154: 0x540D, - 14155: 0x547D, - 14156: 0x660E, - 14157: 0x669D, - 14158: 0x6927, - 14159: 0x6E9F, - 14160: 0x76BF, - 14161: 0x7791, - 14162: 0x8317, - 14163: 0x84C2, - 14164: 0x879F, - 14165: 0x9169, - 14166: 0x9298, - 14167: 0x9CF4, - 14168: 0x8882, - 14169: 0x4FAE, - 14170: 0x5192, - 14171: 0x52DF, - 14172: 0x59C6, - 14173: 0x5E3D, - 14174: 0x6155, - 14175: 0x6478, - 14176: 0x6479, - 14177: 0x66AE, - 14178: 0x67D0, - 14179: 0x6A21, - 14180: 0x6BCD, - 14181: 0x6BDB, - 14182: 0x725F, - 14183: 0x7261, - 14184: 0x7441, - 14185: 0x7738, - 14186: 0x77DB, - 14187: 0x8017, - 14188: 0x82BC, - 14189: 0x8305, - 14190: 0x8B00, - 14191: 0x8B28, - 14192: 0x8C8C, - 14193: 0x6728, - 14194: 0x6C90, - 14195: 0x7267, - 14196: 0x76EE, - 14197: 0x7766, - 14198: 0x7A46, - 14199: 0x9DA9, - 14200: 0x6B7F, - 14201: 0x6C92, - 14202: 0x5922, - 14203: 0x6726, - 14204: 0x8499, - 14205: 0x536F, - 14206: 0x5893, - 14207: 0x5999, - 14208: 0x5EDF, - 14209: 0x63CF, - 14210: 0x6634, - 14211: 0x6773, - 14212: 0x6E3A, - 14213: 0x732B, - 14214: 0x7AD7, - 14215: 0x82D7, - 14216: 0x9328, - 14217: 0x52D9, - 14218: 0x5DEB, - 14219: 0x61AE, - 14220: 0x61CB, - 14221: 0x620A, - 14222: 0x62C7, - 14223: 0x64AB, - 14224: 0x65E0, - 14225: 0x6959, - 14226: 0x6B66, - 14227: 0x6BCB, - 14228: 0x7121, - 14229: 0x73F7, - 14230: 0x755D, - 14231: 0x7E46, - 14232: 0x821E, - 14233: 0x8302, - 14234: 0x856A, - 14235: 0x8AA3, - 14236: 0x8CBF, - 14237: 0x9727, - 14238: 0x9D61, - 14239: 0x58A8, - 14240: 0x9ED8, - 14241: 0x5011, - 14242: 0x520E, - 14243: 0x543B, - 14244: 0x554F, - 14245: 0x6587, - 14246: 0x6C76, - 14247: 0x7D0A, - 14248: 0x7D0B, - 14249: 0x805E, - 14250: 0x868A, - 14251: 0x9580, - 14252: 0x96EF, - 14253: 0x52FF, - 14254: 0x6C95, - 14255: 0x7269, - 14256: 0x5473, - 14257: 0x5A9A, - 14258: 0x5C3E, - 14259: 0x5D4B, - 14260: 0x5F4C, - 14261: 0x5FAE, - 14262: 0x672A, - 14263: 0x68B6, - 14264: 0x6963, - 14265: 0x6E3C, - 14266: 0x6E44, - 14267: 0x7709, - 14268: 0x7C73, - 14269: 0x7F8E, - 14270: 0x8587, - 14271: 0x8B0E, - 14272: 0x8FF7, - 14273: 0x9761, - 14274: 0x9EF4, - 14275: 0x5CB7, - 14276: 0x60B6, - 14277: 0x610D, - 14278: 0x61AB, - 14279: 0x654F, - 14280: 0x65FB, - 14281: 0x65FC, - 14282: 0x6C11, - 14283: 0x6CEF, - 14284: 0x739F, - 14285: 0x73C9, - 14286: 0x7DE1, - 14287: 0x9594, - 14288: 0x5BC6, - 14289: 0x871C, - 14290: 0x8B10, - 14291: 0x525D, - 14292: 0x535A, - 14293: 0x62CD, - 14294: 0x640F, - 14295: 0x64B2, - 14296: 0x6734, - 14297: 0x6A38, - 14298: 0x6CCA, - 14299: 0x73C0, - 14300: 0x749E, - 14301: 0x7B94, - 14302: 0x7C95, - 14303: 0x7E1B, - 14304: 0x818A, - 14305: 0x8236, - 14306: 0x8584, - 14307: 0x8FEB, - 14308: 0x96F9, - 14309: 0x99C1, - 14310: 0x4F34, - 14311: 0x534A, - 14312: 0x53CD, - 14313: 0x53DB, - 14314: 0x62CC, - 14315: 0x642C, - 14316: 0x6500, - 14317: 0x6591, - 14318: 0x69C3, - 14319: 0x6CEE, - 14320: 0x6F58, - 14321: 0x73ED, - 14322: 0x7554, - 14323: 0x7622, - 14324: 0x76E4, - 14325: 0x76FC, - 14326: 0x78D0, - 14327: 0x78FB, - 14328: 0x792C, - 14329: 0x7D46, - 14330: 0x822C, - 14331: 0x87E0, - 14332: 0x8FD4, - 14333: 0x9812, - 14334: 0x98EF, - 14335: 0x52C3, - 14336: 0x62D4, - 14337: 0x64A5, - 14338: 0x6E24, - 14339: 0x6F51, - 14340: 0x767C, - 14341: 0x8DCB, - 14342: 0x91B1, - 14343: 0x9262, - 14344: 0x9AEE, - 14345: 0x9B43, - 14346: 0x5023, - 14347: 0x508D, - 14348: 0x574A, - 14349: 0x59A8, - 14350: 0x5C28, - 14351: 0x5E47, - 14352: 0x5F77, - 14353: 0x623F, - 14354: 0x653E, - 14355: 0x65B9, - 14356: 0x65C1, - 14357: 0x6609, - 14358: 0x678B, - 14359: 0x699C, - 14360: 0x6EC2, - 14361: 0x78C5, - 14362: 0x7D21, - 14363: 0x80AA, - 14364: 0x8180, - 14365: 0x822B, - 14366: 0x82B3, - 14367: 0x84A1, - 14368: 0x868C, - 14369: 0x8A2A, - 14370: 0x8B17, - 14371: 0x90A6, - 14372: 0x9632, - 14373: 0x9F90, - 14374: 0x500D, - 14375: 0x4FF3, - 14376: 0xF963, - 14377: 0x57F9, - 14378: 0x5F98, - 14379: 0x62DC, - 14380: 0x6392, - 14381: 0x676F, - 14382: 0x6E43, - 14383: 0x7119, - 14384: 0x76C3, - 14385: 0x80CC, - 14386: 0x80DA, - 14387: 0x88F4, - 14388: 0x88F5, - 14389: 0x8919, - 14390: 0x8CE0, - 14391: 0x8F29, - 14392: 0x914D, - 14393: 0x966A, - 14394: 0x4F2F, - 14395: 0x4F70, - 14396: 0x5E1B, - 14397: 0x67CF, - 14398: 0x6822, - 14399: 0x767D, - 14400: 0x767E, - 14401: 0x9B44, - 14402: 0x5E61, - 14403: 0x6A0A, - 14404: 0x7169, - 14405: 0x71D4, - 14406: 0x756A, - 14407: 0xF964, - 14408: 0x7E41, - 14409: 0x8543, - 14410: 0x85E9, - 14411: 0x98DC, - 14412: 0x4F10, - 14413: 0x7B4F, - 14414: 0x7F70, - 14415: 0x95A5, - 14416: 0x51E1, - 14417: 0x5E06, - 14418: 0x68B5, - 14419: 0x6C3E, - 14420: 0x6C4E, - 14421: 0x6CDB, - 14422: 0x72AF, - 14423: 0x7BC4, - 14424: 0x8303, - 14425: 0x6CD5, - 14426: 0x743A, - 14427: 0x50FB, - 14428: 0x5288, - 14429: 0x58C1, - 14430: 0x64D8, - 14431: 0x6A97, - 14432: 0x74A7, - 14433: 0x7656, - 14434: 0x78A7, - 14435: 0x8617, - 14436: 0x95E2, - 14437: 0x9739, - 14438: 0xF965, - 14439: 0x535E, - 14440: 0x5F01, - 14441: 0x8B8A, - 14442: 0x8FA8, - 14443: 0x8FAF, - 14444: 0x908A, - 14445: 0x5225, - 14446: 0x77A5, - 14447: 0x9C49, - 14448: 0x9F08, - 14449: 0x4E19, - 14450: 0x5002, - 14451: 0x5175, - 14452: 0x5C5B, - 14453: 0x5E77, - 14454: 0x661E, - 14455: 0x663A, - 14456: 0x67C4, - 14457: 0x68C5, - 14458: 0x70B3, - 14459: 0x7501, - 14460: 0x75C5, - 14461: 0x79C9, - 14462: 0x7ADD, - 14463: 0x8F27, - 14464: 0x9920, - 14465: 0x9A08, - 14466: 0x4FDD, - 14467: 0x5821, - 14468: 0x5831, - 14469: 0x5BF6, - 14470: 0x666E, - 14471: 0x6B65, - 14472: 0x6D11, - 14473: 0x6E7A, - 14474: 0x6F7D, - 14475: 0x73E4, - 14476: 0x752B, - 14477: 0x83E9, - 14478: 0x88DC, - 14479: 0x8913, - 14480: 0x8B5C, - 14481: 0x8F14, - 14482: 0x4F0F, - 14483: 0x50D5, - 14484: 0x5310, - 14485: 0x535C, - 14486: 0x5B93, - 14487: 0x5FA9, - 14488: 0x670D, - 14489: 0x798F, - 14490: 0x8179, - 14491: 0x832F, - 14492: 0x8514, - 14493: 0x8907, - 14494: 0x8986, - 14495: 0x8F39, - 14496: 0x8F3B, - 14497: 0x99A5, - 14498: 0x9C12, - 14499: 0x672C, - 14500: 0x4E76, - 14501: 0x4FF8, - 14502: 0x5949, - 14503: 0x5C01, - 14504: 0x5CEF, - 14505: 0x5CF0, - 14506: 0x6367, - 14507: 0x68D2, - 14508: 0x70FD, - 14509: 0x71A2, - 14510: 0x742B, - 14511: 0x7E2B, - 14512: 0x84EC, - 14513: 0x8702, - 14514: 0x9022, - 14515: 0x92D2, - 14516: 0x9CF3, - 14517: 0x4E0D, - 14518: 0x4ED8, - 14519: 0x4FEF, - 14520: 0x5085, - 14521: 0x5256, - 14522: 0x526F, - 14523: 0x5426, - 14524: 0x5490, - 14525: 0x57E0, - 14526: 0x592B, - 14527: 0x5A66, - 14528: 0x5B5A, - 14529: 0x5B75, - 14530: 0x5BCC, - 14531: 0x5E9C, - 14532: 0xF966, - 14533: 0x6276, - 14534: 0x6577, - 14535: 0x65A7, - 14536: 0x6D6E, - 14537: 0x6EA5, - 14538: 0x7236, - 14539: 0x7B26, - 14540: 0x7C3F, - 14541: 0x7F36, - 14542: 0x8150, - 14543: 0x8151, - 14544: 0x819A, - 14545: 0x8240, - 14546: 0x8299, - 14547: 0x83A9, - 14548: 0x8A03, - 14549: 0x8CA0, - 14550: 0x8CE6, - 14551: 0x8CFB, - 14552: 0x8D74, - 14553: 0x8DBA, - 14554: 0x90E8, - 14555: 0x91DC, - 14556: 0x961C, - 14557: 0x9644, - 14558: 0x99D9, - 14559: 0x9CE7, - 14560: 0x5317, - 14561: 0x5206, - 14562: 0x5429, - 14563: 0x5674, - 14564: 0x58B3, - 14565: 0x5954, - 14566: 0x596E, - 14567: 0x5FFF, - 14568: 0x61A4, - 14569: 0x626E, - 14570: 0x6610, - 14571: 0x6C7E, - 14572: 0x711A, - 14573: 0x76C6, - 14574: 0x7C89, - 14575: 0x7CDE, - 14576: 0x7D1B, - 14577: 0x82AC, - 14578: 0x8CC1, - 14579: 0x96F0, - 14580: 0xF967, - 14581: 0x4F5B, - 14582: 0x5F17, - 14583: 0x5F7F, - 14584: 0x62C2, - 14585: 0x5D29, - 14586: 0x670B, - 14587: 0x68DA, - 14588: 0x787C, - 14589: 0x7E43, - 14590: 0x9D6C, - 14591: 0x4E15, - 14592: 0x5099, - 14593: 0x5315, - 14594: 0x532A, - 14595: 0x5351, - 14596: 0x5983, - 14597: 0x5A62, - 14598: 0x5E87, - 14599: 0x60B2, - 14600: 0x618A, - 14601: 0x6249, - 14602: 0x6279, - 14603: 0x6590, - 14604: 0x6787, - 14605: 0x69A7, - 14606: 0x6BD4, - 14607: 0x6BD6, - 14608: 0x6BD7, - 14609: 0x6BD8, - 14610: 0x6CB8, - 14611: 0xF968, - 14612: 0x7435, - 14613: 0x75FA, - 14614: 0x7812, - 14615: 0x7891, - 14616: 0x79D5, - 14617: 0x79D8, - 14618: 0x7C83, - 14619: 0x7DCB, - 14620: 0x7FE1, - 14621: 0x80A5, - 14622: 0x813E, - 14623: 0x81C2, - 14624: 0x83F2, - 14625: 0x871A, - 14626: 0x88E8, - 14627: 0x8AB9, - 14628: 0x8B6C, - 14629: 0x8CBB, - 14630: 0x9119, - 14631: 0x975E, - 14632: 0x98DB, - 14633: 0x9F3B, - 14634: 0x56AC, - 14635: 0x5B2A, - 14636: 0x5F6C, - 14637: 0x658C, - 14638: 0x6AB3, - 14639: 0x6BAF, - 14640: 0x6D5C, - 14641: 0x6FF1, - 14642: 0x7015, - 14643: 0x725D, - 14644: 0x73AD, - 14645: 0x8CA7, - 14646: 0x8CD3, - 14647: 0x983B, - 14648: 0x6191, - 14649: 0x6C37, - 14650: 0x8058, - 14651: 0x9A01, - 14652: 0x4E4D, - 14653: 0x4E8B, - 14654: 0x4E9B, - 14655: 0x4ED5, - 14656: 0x4F3A, - 14657: 0x4F3C, - 14658: 0x4F7F, - 14659: 0x4FDF, - 14660: 0x50FF, - 14661: 0x53F2, - 14662: 0x53F8, - 14663: 0x5506, - 14664: 0x55E3, - 14665: 0x56DB, - 14666: 0x58EB, - 14667: 0x5962, - 14668: 0x5A11, - 14669: 0x5BEB, - 14670: 0x5BFA, - 14671: 0x5C04, - 14672: 0x5DF3, - 14673: 0x5E2B, - 14674: 0x5F99, - 14675: 0x601D, - 14676: 0x6368, - 14677: 0x659C, - 14678: 0x65AF, - 14679: 0x67F6, - 14680: 0x67FB, - 14681: 0x68AD, - 14682: 0x6B7B, - 14683: 0x6C99, - 14684: 0x6CD7, - 14685: 0x6E23, - 14686: 0x7009, - 14687: 0x7345, - 14688: 0x7802, - 14689: 0x793E, - 14690: 0x7940, - 14691: 0x7960, - 14692: 0x79C1, - 14693: 0x7BE9, - 14694: 0x7D17, - 14695: 0x7D72, - 14696: 0x8086, - 14697: 0x820D, - 14698: 0x838E, - 14699: 0x84D1, - 14700: 0x86C7, - 14701: 0x88DF, - 14702: 0x8A50, - 14703: 0x8A5E, - 14704: 0x8B1D, - 14705: 0x8CDC, - 14706: 0x8D66, - 14707: 0x8FAD, - 14708: 0x90AA, - 14709: 0x98FC, - 14710: 0x99DF, - 14711: 0x9E9D, - 14712: 0x524A, - 14713: 0xF969, - 14714: 0x6714, - 14715: 0xF96A, - 14716: 0x5098, - 14717: 0x522A, - 14718: 0x5C71, - 14719: 0x6563, - 14720: 0x6C55, - 14721: 0x73CA, - 14722: 0x7523, - 14723: 0x759D, - 14724: 0x7B97, - 14725: 0x849C, - 14726: 0x9178, - 14727: 0x9730, - 14728: 0x4E77, - 14729: 0x6492, - 14730: 0x6BBA, - 14731: 0x715E, - 14732: 0x85A9, - 14733: 0x4E09, - 14734: 0xF96B, - 14735: 0x6749, - 14736: 0x68EE, - 14737: 0x6E17, - 14738: 0x829F, - 14739: 0x8518, - 14740: 0x886B, - 14741: 0x63F7, - 14742: 0x6F81, - 14743: 0x9212, - 14744: 0x98AF, - 14745: 0x4E0A, - 14746: 0x50B7, - 14747: 0x50CF, - 14748: 0x511F, - 14749: 0x5546, - 14750: 0x55AA, - 14751: 0x5617, - 14752: 0x5B40, - 14753: 0x5C19, - 14754: 0x5CE0, - 14755: 0x5E38, - 14756: 0x5E8A, - 14757: 0x5EA0, - 14758: 0x5EC2, - 14759: 0x60F3, - 14760: 0x6851, - 14761: 0x6A61, - 14762: 0x6E58, - 14763: 0x723D, - 14764: 0x7240, - 14765: 0x72C0, - 14766: 0x76F8, - 14767: 0x7965, - 14768: 0x7BB1, - 14769: 0x7FD4, - 14770: 0x88F3, - 14771: 0x89F4, - 14772: 0x8A73, - 14773: 0x8C61, - 14774: 0x8CDE, - 14775: 0x971C, - 14776: 0x585E, - 14777: 0x74BD, - 14778: 0x8CFD, - 14779: 0x55C7, - 14780: 0xF96C, - 14781: 0x7A61, - 14782: 0x7D22, - 14783: 0x8272, - 14784: 0x7272, - 14785: 0x751F, - 14786: 0x7525, - 14787: 0xF96D, - 14788: 0x7B19, - 14789: 0x5885, - 14790: 0x58FB, - 14791: 0x5DBC, - 14792: 0x5E8F, - 14793: 0x5EB6, - 14794: 0x5F90, - 14795: 0x6055, - 14796: 0x6292, - 14797: 0x637F, - 14798: 0x654D, - 14799: 0x6691, - 14800: 0x66D9, - 14801: 0x66F8, - 14802: 0x6816, - 14803: 0x68F2, - 14804: 0x7280, - 14805: 0x745E, - 14806: 0x7B6E, - 14807: 0x7D6E, - 14808: 0x7DD6, - 14809: 0x7F72, - 14810: 0x80E5, - 14811: 0x8212, - 14812: 0x85AF, - 14813: 0x897F, - 14814: 0x8A93, - 14815: 0x901D, - 14816: 0x92E4, - 14817: 0x9ECD, - 14818: 0x9F20, - 14819: 0x5915, - 14820: 0x596D, - 14821: 0x5E2D, - 14822: 0x60DC, - 14823: 0x6614, - 14824: 0x6673, - 14825: 0x6790, - 14826: 0x6C50, - 14827: 0x6DC5, - 14828: 0x6F5F, - 14829: 0x77F3, - 14830: 0x78A9, - 14831: 0x84C6, - 14832: 0x91CB, - 14833: 0x932B, - 14834: 0x4ED9, - 14835: 0x50CA, - 14836: 0x5148, - 14837: 0x5584, - 14838: 0x5B0B, - 14839: 0x5BA3, - 14840: 0x6247, - 14841: 0x657E, - 14842: 0x65CB, - 14843: 0x6E32, - 14844: 0x717D, - 14845: 0x7401, - 14846: 0x7444, - 14847: 0x7487, - 14848: 0x74BF, - 14849: 0x766C, - 14850: 0x79AA, - 14851: 0x7DDA, - 14852: 0x7E55, - 14853: 0x7FA8, - 14854: 0x817A, - 14855: 0x81B3, - 14856: 0x8239, - 14857: 0x861A, - 14858: 0x87EC, - 14859: 0x8A75, - 14860: 0x8DE3, - 14861: 0x9078, - 14862: 0x9291, - 14863: 0x9425, - 14864: 0x994D, - 14865: 0x9BAE, - 14866: 0x5368, - 14867: 0x5C51, - 14868: 0x6954, - 14869: 0x6CC4, - 14870: 0x6D29, - 14871: 0x6E2B, - 14872: 0x820C, - 14873: 0x859B, - 14874: 0x893B, - 14875: 0x8A2D, - 14876: 0x8AAA, - 14877: 0x96EA, - 14878: 0x9F67, - 14879: 0x5261, - 14880: 0x66B9, - 14881: 0x6BB2, - 14882: 0x7E96, - 14883: 0x87FE, - 14884: 0x8D0D, - 14885: 0x9583, - 14886: 0x965D, - 14887: 0x651D, - 14888: 0x6D89, - 14889: 0x71EE, - 14890: 0xF96E, - 14891: 0x57CE, - 14892: 0x59D3, - 14893: 0x5BAC, - 14894: 0x6027, - 14895: 0x60FA, - 14896: 0x6210, - 14897: 0x661F, - 14898: 0x665F, - 14899: 0x7329, - 14900: 0x73F9, - 14901: 0x76DB, - 14902: 0x7701, - 14903: 0x7B6C, - 14904: 0x8056, - 14905: 0x8072, - 14906: 0x8165, - 14907: 0x8AA0, - 14908: 0x9192, - 14909: 0x4E16, - 14910: 0x52E2, - 14911: 0x6B72, - 14912: 0x6D17, - 14913: 0x7A05, - 14914: 0x7B39, - 14915: 0x7D30, - 14916: 0xF96F, - 14917: 0x8CB0, - 14918: 0x53EC, - 14919: 0x562F, - 14920: 0x5851, - 14921: 0x5BB5, - 14922: 0x5C0F, - 14923: 0x5C11, - 14924: 0x5DE2, - 14925: 0x6240, - 14926: 0x6383, - 14927: 0x6414, - 14928: 0x662D, - 14929: 0x68B3, - 14930: 0x6CBC, - 14931: 0x6D88, - 14932: 0x6EAF, - 14933: 0x701F, - 14934: 0x70A4, - 14935: 0x71D2, - 14936: 0x7526, - 14937: 0x758F, - 14938: 0x758E, - 14939: 0x7619, - 14940: 0x7B11, - 14941: 0x7BE0, - 14942: 0x7C2B, - 14943: 0x7D20, - 14944: 0x7D39, - 14945: 0x852C, - 14946: 0x856D, - 14947: 0x8607, - 14948: 0x8A34, - 14949: 0x900D, - 14950: 0x9061, - 14951: 0x90B5, - 14952: 0x92B7, - 14953: 0x97F6, - 14954: 0x9A37, - 14955: 0x4FD7, - 14956: 0x5C6C, - 14957: 0x675F, - 14958: 0x6D91, - 14959: 0x7C9F, - 14960: 0x7E8C, - 14961: 0x8B16, - 14962: 0x8D16, - 14963: 0x901F, - 14964: 0x5B6B, - 14965: 0x5DFD, - 14966: 0x640D, - 14967: 0x84C0, - 14968: 0x905C, - 14969: 0x98E1, - 14970: 0x7387, - 14971: 0x5B8B, - 14972: 0x609A, - 14973: 0x677E, - 14974: 0x6DDE, - 14975: 0x8A1F, - 14976: 0x8AA6, - 14977: 0x9001, - 14978: 0x980C, - 14979: 0x5237, - 14980: 0xF970, - 14981: 0x7051, - 14982: 0x788E, - 14983: 0x9396, - 14984: 0x8870, - 14985: 0x91D7, - 14986: 0x4FEE, - 14987: 0x53D7, - 14988: 0x55FD, - 14989: 0x56DA, - 14990: 0x5782, - 14991: 0x58FD, - 14992: 0x5AC2, - 14993: 0x5B88, - 14994: 0x5CAB, - 14995: 0x5CC0, - 14996: 0x5E25, - 14997: 0x6101, - 14998: 0x620D, - 14999: 0x624B, - 15000: 0x6388, - 15001: 0x641C, - 15002: 0x6536, - 15003: 0x6578, - 15004: 0x6A39, - 15005: 0x6B8A, - 15006: 0x6C34, - 15007: 0x6D19, - 15008: 0x6F31, - 15009: 0x71E7, - 15010: 0x72E9, - 15011: 0x7378, - 15012: 0x7407, - 15013: 0x74B2, - 15014: 0x7626, - 15015: 0x7761, - 15016: 0x79C0, - 15017: 0x7A57, - 15018: 0x7AEA, - 15019: 0x7CB9, - 15020: 0x7D8F, - 15021: 0x7DAC, - 15022: 0x7E61, - 15023: 0x7F9E, - 15024: 0x8129, - 15025: 0x8331, - 15026: 0x8490, - 15027: 0x84DA, - 15028: 0x85EA, - 15029: 0x8896, - 15030: 0x8AB0, - 15031: 0x8B90, - 15032: 0x8F38, - 15033: 0x9042, - 15034: 0x9083, - 15035: 0x916C, - 15036: 0x9296, - 15037: 0x92B9, - 15038: 0x968B, - 15039: 0x96A7, - 15040: 0x96A8, - 15041: 0x96D6, - 15042: 0x9700, - 15043: 0x9808, - 15044: 0x9996, - 15045: 0x9AD3, - 15046: 0x9B1A, - 15047: 0x53D4, - 15048: 0x587E, - 15049: 0x5919, - 15050: 0x5B70, - 15051: 0x5BBF, - 15052: 0x6DD1, - 15053: 0x6F5A, - 15054: 0x719F, - 15055: 0x7421, - 15056: 0x74B9, - 15057: 0x8085, - 15058: 0x83FD, - 15059: 0x5DE1, - 15060: 0x5F87, - 15061: 0x5FAA, - 15062: 0x6042, - 15063: 0x65EC, - 15064: 0x6812, - 15065: 0x696F, - 15066: 0x6A53, - 15067: 0x6B89, - 15068: 0x6D35, - 15069: 0x6DF3, - 15070: 0x73E3, - 15071: 0x76FE, - 15072: 0x77AC, - 15073: 0x7B4D, - 15074: 0x7D14, - 15075: 0x8123, - 15076: 0x821C, - 15077: 0x8340, - 15078: 0x84F4, - 15079: 0x8563, - 15080: 0x8A62, - 15081: 0x8AC4, - 15082: 0x9187, - 15083: 0x931E, - 15084: 0x9806, - 15085: 0x99B4, - 15086: 0x620C, - 15087: 0x8853, - 15088: 0x8FF0, - 15089: 0x9265, - 15090: 0x5D07, - 15091: 0x5D27, - 15092: 0x5D69, - 15093: 0x745F, - 15094: 0x819D, - 15095: 0x8768, - 15096: 0x6FD5, - 15097: 0x62FE, - 15098: 0x7FD2, - 15099: 0x8936, - 15100: 0x8972, - 15101: 0x4E1E, - 15102: 0x4E58, - 15103: 0x50E7, - 15104: 0x52DD, - 15105: 0x5347, - 15106: 0x627F, - 15107: 0x6607, - 15108: 0x7E69, - 15109: 0x8805, - 15110: 0x965E, - 15111: 0x4F8D, - 15112: 0x5319, - 15113: 0x5636, - 15114: 0x59CB, - 15115: 0x5AA4, - 15116: 0x5C38, - 15117: 0x5C4E, - 15118: 0x5C4D, - 15119: 0x5E02, - 15120: 0x5F11, - 15121: 0x6043, - 15122: 0x65BD, - 15123: 0x662F, - 15124: 0x6642, - 15125: 0x67BE, - 15126: 0x67F4, - 15127: 0x731C, - 15128: 0x77E2, - 15129: 0x793A, - 15130: 0x7FC5, - 15131: 0x8494, - 15132: 0x84CD, - 15133: 0x8996, - 15134: 0x8A66, - 15135: 0x8A69, - 15136: 0x8AE1, - 15137: 0x8C55, - 15138: 0x8C7A, - 15139: 0x57F4, - 15140: 0x5BD4, - 15141: 0x5F0F, - 15142: 0x606F, - 15143: 0x62ED, - 15144: 0x690D, - 15145: 0x6B96, - 15146: 0x6E5C, - 15147: 0x7184, - 15148: 0x7BD2, - 15149: 0x8755, - 15150: 0x8B58, - 15151: 0x8EFE, - 15152: 0x98DF, - 15153: 0x98FE, - 15154: 0x4F38, - 15155: 0x4F81, - 15156: 0x4FE1, - 15157: 0x547B, - 15158: 0x5A20, - 15159: 0x5BB8, - 15160: 0x613C, - 15161: 0x65B0, - 15162: 0x6668, - 15163: 0x71FC, - 15164: 0x7533, - 15165: 0x795E, - 15166: 0x7D33, - 15167: 0x814E, - 15168: 0x81E3, - 15169: 0x8398, - 15170: 0x85AA, - 15171: 0x85CE, - 15172: 0x8703, - 15173: 0x8A0A, - 15174: 0x8EAB, - 15175: 0x8F9B, - 15176: 0xF971, - 15177: 0x8FC5, - 15178: 0x5931, - 15179: 0x5BA4, - 15180: 0x5BE6, - 15181: 0x6089, - 15182: 0x5BE9, - 15183: 0x5C0B, - 15184: 0x5FC3, - 15185: 0x6C81, - 15186: 0xF972, - 15187: 0x6DF1, - 15188: 0x700B, - 15189: 0x751A, - 15190: 0x82AF, - 15191: 0x8AF6, - 15192: 0x4EC0, - 15193: 0x5341, - 15194: 0xF973, - 15195: 0x96D9, - 15196: 0x6C0F, - 15197: 0x4E9E, - 15198: 0x4FC4, - 15199: 0x5152, - 15200: 0x555E, - 15201: 0x5A25, - 15202: 0x5CE8, - 15203: 0x6211, - 15204: 0x7259, - 15205: 0x82BD, - 15206: 0x83AA, - 15207: 0x86FE, - 15208: 0x8859, - 15209: 0x8A1D, - 15210: 0x963F, - 15211: 0x96C5, - 15212: 0x9913, - 15213: 0x9D09, - 15214: 0x9D5D, - 15215: 0x580A, - 15216: 0x5CB3, - 15217: 0x5DBD, - 15218: 0x5E44, - 15219: 0x60E1, - 15220: 0x6115, - 15221: 0x63E1, - 15222: 0x6A02, - 15223: 0x6E25, - 15224: 0x9102, - 15225: 0x9354, - 15226: 0x984E, - 15227: 0x9C10, - 15228: 0x9F77, - 15229: 0x5B89, - 15230: 0x5CB8, - 15231: 0x6309, - 15232: 0x664F, - 15233: 0x6848, - 15234: 0x773C, - 15235: 0x96C1, - 15236: 0x978D, - 15237: 0x9854, - 15238: 0x9B9F, - 15239: 0x65A1, - 15240: 0x8B01, - 15241: 0x8ECB, - 15242: 0x95BC, - 15243: 0x5535, - 15244: 0x5CA9, - 15245: 0x5DD6, - 15246: 0x5EB5, - 15247: 0x6697, - 15248: 0x764C, - 15249: 0x83F4, - 15250: 0x95C7, - 15251: 0x58D3, - 15252: 0x62BC, - 15253: 0x72CE, - 15254: 0x9D28, - 15255: 0x4EF0, - 15256: 0x592E, - 15257: 0x600F, - 15258: 0x663B, - 15259: 0x6B83, - 15260: 0x79E7, - 15261: 0x9D26, - 15262: 0x5393, - 15263: 0x54C0, - 15264: 0x57C3, - 15265: 0x5D16, - 15266: 0x611B, - 15267: 0x66D6, - 15268: 0x6DAF, - 15269: 0x788D, - 15270: 0x827E, - 15271: 0x9698, - 15272: 0x9744, - 15273: 0x5384, - 15274: 0x627C, - 15275: 0x6396, - 15276: 0x6DB2, - 15277: 0x7E0A, - 15278: 0x814B, - 15279: 0x984D, - 15280: 0x6AFB, - 15281: 0x7F4C, - 15282: 0x9DAF, - 15283: 0x9E1A, - 15284: 0x4E5F, - 15285: 0x503B, - 15286: 0x51B6, - 15287: 0x591C, - 15288: 0x60F9, - 15289: 0x63F6, - 15290: 0x6930, - 15291: 0x723A, - 15292: 0x8036, - 15293: 0xF974, - 15294: 0x91CE, - 15295: 0x5F31, - 15296: 0xF975, - 15297: 0xF976, - 15298: 0x7D04, - 15299: 0x82E5, - 15300: 0x846F, - 15301: 0x84BB, - 15302: 0x85E5, - 15303: 0x8E8D, - 15304: 0xF977, - 15305: 0x4F6F, - 15306: 0xF978, - 15307: 0xF979, - 15308: 0x58E4, - 15309: 0x5B43, - 15310: 0x6059, - 15311: 0x63DA, - 15312: 0x6518, - 15313: 0x656D, - 15314: 0x6698, - 15315: 0xF97A, - 15316: 0x694A, - 15317: 0x6A23, - 15318: 0x6D0B, - 15319: 0x7001, - 15320: 0x716C, - 15321: 0x75D2, - 15322: 0x760D, - 15323: 0x79B3, - 15324: 0x7A70, - 15325: 0xF97B, - 15326: 0x7F8A, - 15327: 0xF97C, - 15328: 0x8944, - 15329: 0xF97D, - 15330: 0x8B93, - 15331: 0x91C0, - 15332: 0x967D, - 15333: 0xF97E, - 15334: 0x990A, - 15335: 0x5704, - 15336: 0x5FA1, - 15337: 0x65BC, - 15338: 0x6F01, - 15339: 0x7600, - 15340: 0x79A6, - 15341: 0x8A9E, - 15342: 0x99AD, - 15343: 0x9B5A, - 15344: 0x9F6C, - 15345: 0x5104, - 15346: 0x61B6, - 15347: 0x6291, - 15348: 0x6A8D, - 15349: 0x81C6, - 15350: 0x5043, - 15351: 0x5830, - 15352: 0x5F66, - 15353: 0x7109, - 15354: 0x8A00, - 15355: 0x8AFA, - 15356: 0x5B7C, - 15357: 0x8616, - 15358: 0x4FFA, - 15359: 0x513C, - 15360: 0x56B4, - 15361: 0x5944, - 15362: 0x63A9, - 15363: 0x6DF9, - 15364: 0x5DAA, - 15365: 0x696D, - 15366: 0x5186, - 15367: 0x4E88, - 15368: 0x4F59, - 15369: 0xF97F, - 15370: 0xF980, - 15371: 0xF981, - 15372: 0x5982, - 15373: 0xF982, - 15374: 0xF983, - 15375: 0x6B5F, - 15376: 0x6C5D, - 15377: 0xF984, - 15378: 0x74B5, - 15379: 0x7916, - 15380: 0xF985, - 15381: 0x8207, - 15382: 0x8245, - 15383: 0x8339, - 15384: 0x8F3F, - 15385: 0x8F5D, - 15386: 0xF986, - 15387: 0x9918, - 15388: 0xF987, - 15389: 0xF988, - 15390: 0xF989, - 15391: 0x4EA6, - 15392: 0xF98A, - 15393: 0x57DF, - 15394: 0x5F79, - 15395: 0x6613, - 15396: 0xF98B, - 15397: 0xF98C, - 15398: 0x75AB, - 15399: 0x7E79, - 15400: 0x8B6F, - 15401: 0xF98D, - 15402: 0x9006, - 15403: 0x9A5B, - 15404: 0x56A5, - 15405: 0x5827, - 15406: 0x59F8, - 15407: 0x5A1F, - 15408: 0x5BB4, - 15409: 0xF98E, - 15410: 0x5EF6, - 15411: 0xF98F, - 15412: 0xF990, - 15413: 0x6350, - 15414: 0x633B, - 15415: 0xF991, - 15416: 0x693D, - 15417: 0x6C87, - 15418: 0x6CBF, - 15419: 0x6D8E, - 15420: 0x6D93, - 15421: 0x6DF5, - 15422: 0x6F14, - 15423: 0xF992, - 15424: 0x70DF, - 15425: 0x7136, - 15426: 0x7159, - 15427: 0xF993, - 15428: 0x71C3, - 15429: 0x71D5, - 15430: 0xF994, - 15431: 0x784F, - 15432: 0x786F, - 15433: 0xF995, - 15434: 0x7B75, - 15435: 0x7DE3, - 15436: 0xF996, - 15437: 0x7E2F, - 15438: 0xF997, - 15439: 0x884D, - 15440: 0x8EDF, - 15441: 0xF998, - 15442: 0xF999, - 15443: 0xF99A, - 15444: 0x925B, - 15445: 0xF99B, - 15446: 0x9CF6, - 15447: 0xF99C, - 15448: 0xF99D, - 15449: 0xF99E, - 15450: 0x6085, - 15451: 0x6D85, - 15452: 0xF99F, - 15453: 0x71B1, - 15454: 0xF9A0, - 15455: 0xF9A1, - 15456: 0x95B1, - 15457: 0x53AD, - 15458: 0xF9A2, - 15459: 0xF9A3, - 15460: 0xF9A4, - 15461: 0x67D3, - 15462: 0xF9A5, - 15463: 0x708E, - 15464: 0x7130, - 15465: 0x7430, - 15466: 0x8276, - 15467: 0x82D2, - 15468: 0xF9A6, - 15469: 0x95BB, - 15470: 0x9AE5, - 15471: 0x9E7D, - 15472: 0x66C4, - 15473: 0xF9A7, - 15474: 0x71C1, - 15475: 0x8449, - 15476: 0xF9A8, - 15477: 0xF9A9, - 15478: 0x584B, - 15479: 0xF9AA, - 15480: 0xF9AB, - 15481: 0x5DB8, - 15482: 0x5F71, - 15483: 0xF9AC, - 15484: 0x6620, - 15485: 0x668E, - 15486: 0x6979, - 15487: 0x69AE, - 15488: 0x6C38, - 15489: 0x6CF3, - 15490: 0x6E36, - 15491: 0x6F41, - 15492: 0x6FDA, - 15493: 0x701B, - 15494: 0x702F, - 15495: 0x7150, - 15496: 0x71DF, - 15497: 0x7370, - 15498: 0xF9AD, - 15499: 0x745B, - 15500: 0xF9AE, - 15501: 0x74D4, - 15502: 0x76C8, - 15503: 0x7A4E, - 15504: 0x7E93, - 15505: 0xF9AF, - 15506: 0xF9B0, - 15507: 0x82F1, - 15508: 0x8A60, - 15509: 0x8FCE, - 15510: 0xF9B1, - 15511: 0x9348, - 15512: 0xF9B2, - 15513: 0x9719, - 15514: 0xF9B3, - 15515: 0xF9B4, - 15516: 0x4E42, - 15517: 0x502A, - 15518: 0xF9B5, - 15519: 0x5208, - 15520: 0x53E1, - 15521: 0x66F3, - 15522: 0x6C6D, - 15523: 0x6FCA, - 15524: 0x730A, - 15525: 0x777F, - 15526: 0x7A62, - 15527: 0x82AE, - 15528: 0x85DD, - 15529: 0x8602, - 15530: 0xF9B6, - 15531: 0x88D4, - 15532: 0x8A63, - 15533: 0x8B7D, - 15534: 0x8C6B, - 15535: 0xF9B7, - 15536: 0x92B3, - 15537: 0xF9B8, - 15538: 0x9713, - 15539: 0x9810, - 15540: 0x4E94, - 15541: 0x4F0D, - 15542: 0x4FC9, - 15543: 0x50B2, - 15544: 0x5348, - 15545: 0x543E, - 15546: 0x5433, - 15547: 0x55DA, - 15548: 0x5862, - 15549: 0x58BA, - 15550: 0x5967, - 15551: 0x5A1B, - 15552: 0x5BE4, - 15553: 0x609F, - 15554: 0xF9B9, - 15555: 0x61CA, - 15556: 0x6556, - 15557: 0x65FF, - 15558: 0x6664, - 15559: 0x68A7, - 15560: 0x6C5A, - 15561: 0x6FB3, - 15562: 0x70CF, - 15563: 0x71AC, - 15564: 0x7352, - 15565: 0x7B7D, - 15566: 0x8708, - 15567: 0x8AA4, - 15568: 0x9C32, - 15569: 0x9F07, - 15570: 0x5C4B, - 15571: 0x6C83, - 15572: 0x7344, - 15573: 0x7389, - 15574: 0x923A, - 15575: 0x6EAB, - 15576: 0x7465, - 15577: 0x761F, - 15578: 0x7A69, - 15579: 0x7E15, - 15580: 0x860A, - 15581: 0x5140, - 15582: 0x58C5, - 15583: 0x64C1, - 15584: 0x74EE, - 15585: 0x7515, - 15586: 0x7670, - 15587: 0x7FC1, - 15588: 0x9095, - 15589: 0x96CD, - 15590: 0x9954, - 15591: 0x6E26, - 15592: 0x74E6, - 15593: 0x7AA9, - 15594: 0x7AAA, - 15595: 0x81E5, - 15596: 0x86D9, - 15597: 0x8778, - 15598: 0x8A1B, - 15599: 0x5A49, - 15600: 0x5B8C, - 15601: 0x5B9B, - 15602: 0x68A1, - 15603: 0x6900, - 15604: 0x6D63, - 15605: 0x73A9, - 15606: 0x7413, - 15607: 0x742C, - 15608: 0x7897, - 15609: 0x7DE9, - 15610: 0x7FEB, - 15611: 0x8118, - 15612: 0x8155, - 15613: 0x839E, - 15614: 0x8C4C, - 15615: 0x962E, - 15616: 0x9811, - 15617: 0x66F0, - 15618: 0x5F80, - 15619: 0x65FA, - 15620: 0x6789, - 15621: 0x6C6A, - 15622: 0x738B, - 15623: 0x502D, - 15624: 0x5A03, - 15625: 0x6B6A, - 15626: 0x77EE, - 15627: 0x5916, - 15628: 0x5D6C, - 15629: 0x5DCD, - 15630: 0x7325, - 15631: 0x754F, - 15632: 0xF9BA, - 15633: 0xF9BB, - 15634: 0x50E5, - 15635: 0x51F9, - 15636: 0x582F, - 15637: 0x592D, - 15638: 0x5996, - 15639: 0x59DA, - 15640: 0x5BE5, - 15641: 0xF9BC, - 15642: 0xF9BD, - 15643: 0x5DA2, - 15644: 0x62D7, - 15645: 0x6416, - 15646: 0x6493, - 15647: 0x64FE, - 15648: 0xF9BE, - 15649: 0x66DC, - 15650: 0xF9BF, - 15651: 0x6A48, - 15652: 0xF9C0, - 15653: 0x71FF, - 15654: 0x7464, - 15655: 0xF9C1, - 15656: 0x7A88, - 15657: 0x7AAF, - 15658: 0x7E47, - 15659: 0x7E5E, - 15660: 0x8000, - 15661: 0x8170, - 15662: 0xF9C2, - 15663: 0x87EF, - 15664: 0x8981, - 15665: 0x8B20, - 15666: 0x9059, - 15667: 0xF9C3, - 15668: 0x9080, - 15669: 0x9952, - 15670: 0x617E, - 15671: 0x6B32, - 15672: 0x6D74, - 15673: 0x7E1F, - 15674: 0x8925, - 15675: 0x8FB1, - 15676: 0x4FD1, - 15677: 0x50AD, - 15678: 0x5197, - 15679: 0x52C7, - 15680: 0x57C7, - 15681: 0x5889, - 15682: 0x5BB9, - 15683: 0x5EB8, - 15684: 0x6142, - 15685: 0x6995, - 15686: 0x6D8C, - 15687: 0x6E67, - 15688: 0x6EB6, - 15689: 0x7194, - 15690: 0x7462, - 15691: 0x7528, - 15692: 0x752C, - 15693: 0x8073, - 15694: 0x8338, - 15695: 0x84C9, - 15696: 0x8E0A, - 15697: 0x9394, - 15698: 0x93DE, - 15699: 0xF9C4, - 15700: 0x4E8E, - 15701: 0x4F51, - 15702: 0x5076, - 15703: 0x512A, - 15704: 0x53C8, - 15705: 0x53CB, - 15706: 0x53F3, - 15707: 0x5B87, - 15708: 0x5BD3, - 15709: 0x5C24, - 15710: 0x611A, - 15711: 0x6182, - 15712: 0x65F4, - 15713: 0x725B, - 15714: 0x7397, - 15715: 0x7440, - 15716: 0x76C2, - 15717: 0x7950, - 15718: 0x7991, - 15719: 0x79B9, - 15720: 0x7D06, - 15721: 0x7FBD, - 15722: 0x828B, - 15723: 0x85D5, - 15724: 0x865E, - 15725: 0x8FC2, - 15726: 0x9047, - 15727: 0x90F5, - 15728: 0x91EA, - 15729: 0x9685, - 15730: 0x96E8, - 15731: 0x96E9, - 15732: 0x52D6, - 15733: 0x5F67, - 15734: 0x65ED, - 15735: 0x6631, - 15736: 0x682F, - 15737: 0x715C, - 15738: 0x7A36, - 15739: 0x90C1, - 15740: 0x980A, - 15741: 0x4E91, - 15742: 0xF9C5, - 15743: 0x6A52, - 15744: 0x6B9E, - 15745: 0x6F90, - 15746: 0x7189, - 15747: 0x8018, - 15748: 0x82B8, - 15749: 0x8553, - 15750: 0x904B, - 15751: 0x9695, - 15752: 0x96F2, - 15753: 0x97FB, - 15754: 0x851A, - 15755: 0x9B31, - 15756: 0x4E90, - 15757: 0x718A, - 15758: 0x96C4, - 15759: 0x5143, - 15760: 0x539F, - 15761: 0x54E1, - 15762: 0x5713, - 15763: 0x5712, - 15764: 0x57A3, - 15765: 0x5A9B, - 15766: 0x5AC4, - 15767: 0x5BC3, - 15768: 0x6028, - 15769: 0x613F, - 15770: 0x63F4, - 15771: 0x6C85, - 15772: 0x6D39, - 15773: 0x6E72, - 15774: 0x6E90, - 15775: 0x7230, - 15776: 0x733F, - 15777: 0x7457, - 15778: 0x82D1, - 15779: 0x8881, - 15780: 0x8F45, - 15781: 0x9060, - 15782: 0xF9C6, - 15783: 0x9662, - 15784: 0x9858, - 15785: 0x9D1B, - 15786: 0x6708, - 15787: 0x8D8A, - 15788: 0x925E, - 15789: 0x4F4D, - 15790: 0x5049, - 15791: 0x50DE, - 15792: 0x5371, - 15793: 0x570D, - 15794: 0x59D4, - 15795: 0x5A01, - 15796: 0x5C09, - 15797: 0x6170, - 15798: 0x6690, - 15799: 0x6E2D, - 15800: 0x7232, - 15801: 0x744B, - 15802: 0x7DEF, - 15803: 0x80C3, - 15804: 0x840E, - 15805: 0x8466, - 15806: 0x853F, - 15807: 0x875F, - 15808: 0x885B, - 15809: 0x8918, - 15810: 0x8B02, - 15811: 0x9055, - 15812: 0x97CB, - 15813: 0x9B4F, - 15814: 0x4E73, - 15815: 0x4F91, - 15816: 0x5112, - 15817: 0x516A, - 15818: 0xF9C7, - 15819: 0x552F, - 15820: 0x55A9, - 15821: 0x5B7A, - 15822: 0x5BA5, - 15823: 0x5E7C, - 15824: 0x5E7D, - 15825: 0x5EBE, - 15826: 0x60A0, - 15827: 0x60DF, - 15828: 0x6108, - 15829: 0x6109, - 15830: 0x63C4, - 15831: 0x6538, - 15832: 0x6709, - 15833: 0xF9C8, - 15834: 0x67D4, - 15835: 0x67DA, - 15836: 0xF9C9, - 15837: 0x6961, - 15838: 0x6962, - 15839: 0x6CB9, - 15840: 0x6D27, - 15841: 0xF9CA, - 15842: 0x6E38, - 15843: 0xF9CB, - 15844: 0x6FE1, - 15845: 0x7336, - 15846: 0x7337, - 15847: 0xF9CC, - 15848: 0x745C, - 15849: 0x7531, - 15850: 0xF9CD, - 15851: 0x7652, - 15852: 0xF9CE, - 15853: 0xF9CF, - 15854: 0x7DAD, - 15855: 0x81FE, - 15856: 0x8438, - 15857: 0x88D5, - 15858: 0x8A98, - 15859: 0x8ADB, - 15860: 0x8AED, - 15861: 0x8E30, - 15862: 0x8E42, - 15863: 0x904A, - 15864: 0x903E, - 15865: 0x907A, - 15866: 0x9149, - 15867: 0x91C9, - 15868: 0x936E, - 15869: 0xF9D0, - 15870: 0xF9D1, - 15871: 0x5809, - 15872: 0xF9D2, - 15873: 0x6BD3, - 15874: 0x8089, - 15875: 0x80B2, - 15876: 0xF9D3, - 15877: 0xF9D4, - 15878: 0x5141, - 15879: 0x596B, - 15880: 0x5C39, - 15881: 0xF9D5, - 15882: 0xF9D6, - 15883: 0x6F64, - 15884: 0x73A7, - 15885: 0x80E4, - 15886: 0x8D07, - 15887: 0xF9D7, - 15888: 0x9217, - 15889: 0x958F, - 15890: 0xF9D8, - 15891: 0xF9D9, - 15892: 0xF9DA, - 15893: 0xF9DB, - 15894: 0x807F, - 15895: 0x620E, - 15896: 0x701C, - 15897: 0x7D68, - 15898: 0x878D, - 15899: 0xF9DC, - 15900: 0x57A0, - 15901: 0x6069, - 15902: 0x6147, - 15903: 0x6BB7, - 15904: 0x8ABE, - 15905: 0x9280, - 15906: 0x96B1, - 15907: 0x4E59, - 15908: 0x541F, - 15909: 0x6DEB, - 15910: 0x852D, - 15911: 0x9670, - 15912: 0x97F3, - 15913: 0x98EE, - 15914: 0x63D6, - 15915: 0x6CE3, - 15916: 0x9091, - 15917: 0x51DD, - 15918: 0x61C9, - 15919: 0x81BA, - 15920: 0x9DF9, - 15921: 0x4F9D, - 15922: 0x501A, - 15923: 0x5100, - 15924: 0x5B9C, - 15925: 0x610F, - 15926: 0x61FF, - 15927: 0x64EC, - 15928: 0x6905, - 15929: 0x6BC5, - 15930: 0x7591, - 15931: 0x77E3, - 15932: 0x7FA9, - 15933: 0x8264, - 15934: 0x858F, - 15935: 0x87FB, - 15936: 0x8863, - 15937: 0x8ABC, - 15938: 0x8B70, - 15939: 0x91AB, - 15940: 0x4E8C, - 15941: 0x4EE5, - 15942: 0x4F0A, - 15943: 0xF9DD, - 15944: 0xF9DE, - 15945: 0x5937, - 15946: 0x59E8, - 15947: 0xF9DF, - 15948: 0x5DF2, - 15949: 0x5F1B, - 15950: 0x5F5B, - 15951: 0x6021, - 15952: 0xF9E0, - 15953: 0xF9E1, - 15954: 0xF9E2, - 15955: 0xF9E3, - 15956: 0x723E, - 15957: 0x73E5, - 15958: 0xF9E4, - 15959: 0x7570, - 15960: 0x75CD, - 15961: 0xF9E5, - 15962: 0x79FB, - 15963: 0xF9E6, - 15964: 0x800C, - 15965: 0x8033, - 15966: 0x8084, - 15967: 0x82E1, - 15968: 0x8351, - 15969: 0xF9E7, - 15970: 0xF9E8, - 15971: 0x8CBD, - 15972: 0x8CB3, - 15973: 0x9087, - 15974: 0xF9E9, - 15975: 0xF9EA, - 15976: 0x98F4, - 15977: 0x990C, - 15978: 0xF9EB, - 15979: 0xF9EC, - 15980: 0x7037, - 15981: 0x76CA, - 15982: 0x7FCA, - 15983: 0x7FCC, - 15984: 0x7FFC, - 15985: 0x8B1A, - 15986: 0x4EBA, - 15987: 0x4EC1, - 15988: 0x5203, - 15989: 0x5370, - 15990: 0xF9ED, - 15991: 0x54BD, - 15992: 0x56E0, - 15993: 0x59FB, - 15994: 0x5BC5, - 15995: 0x5F15, - 15996: 0x5FCD, - 15997: 0x6E6E, - 15998: 0xF9EE, - 15999: 0xF9EF, - 16000: 0x7D6A, - 16001: 0x8335, - 16002: 0xF9F0, - 16003: 0x8693, - 16004: 0x8A8D, - 16005: 0xF9F1, - 16006: 0x976D, - 16007: 0x9777, - 16008: 0xF9F2, - 16009: 0xF9F3, - 16010: 0x4E00, - 16011: 0x4F5A, - 16012: 0x4F7E, - 16013: 0x58F9, - 16014: 0x65E5, - 16015: 0x6EA2, - 16016: 0x9038, - 16017: 0x93B0, - 16018: 0x99B9, - 16019: 0x4EFB, - 16020: 0x58EC, - 16021: 0x598A, - 16022: 0x59D9, - 16023: 0x6041, - 16024: 0xF9F4, - 16025: 0xF9F5, - 16026: 0x7A14, - 16027: 0xF9F6, - 16028: 0x834F, - 16029: 0x8CC3, - 16030: 0x5165, - 16031: 0x5344, - 16032: 0xF9F7, - 16033: 0xF9F8, - 16034: 0xF9F9, - 16035: 0x4ECD, - 16036: 0x5269, - 16037: 0x5B55, - 16038: 0x82BF, - 16039: 0x4ED4, - 16040: 0x523A, - 16041: 0x54A8, - 16042: 0x59C9, - 16043: 0x59FF, - 16044: 0x5B50, - 16045: 0x5B57, - 16046: 0x5B5C, - 16047: 0x6063, - 16048: 0x6148, - 16049: 0x6ECB, - 16050: 0x7099, - 16051: 0x716E, - 16052: 0x7386, - 16053: 0x74F7, - 16054: 0x75B5, - 16055: 0x78C1, - 16056: 0x7D2B, - 16057: 0x8005, - 16058: 0x81EA, - 16059: 0x8328, - 16060: 0x8517, - 16061: 0x85C9, - 16062: 0x8AEE, - 16063: 0x8CC7, - 16064: 0x96CC, - 16065: 0x4F5C, - 16066: 0x52FA, - 16067: 0x56BC, - 16068: 0x65AB, - 16069: 0x6628, - 16070: 0x707C, - 16071: 0x70B8, - 16072: 0x7235, - 16073: 0x7DBD, - 16074: 0x828D, - 16075: 0x914C, - 16076: 0x96C0, - 16077: 0x9D72, - 16078: 0x5B71, - 16079: 0x68E7, - 16080: 0x6B98, - 16081: 0x6F7A, - 16082: 0x76DE, - 16083: 0x5C91, - 16084: 0x66AB, - 16085: 0x6F5B, - 16086: 0x7BB4, - 16087: 0x7C2A, - 16088: 0x8836, - 16089: 0x96DC, - 16090: 0x4E08, - 16091: 0x4ED7, - 16092: 0x5320, - 16093: 0x5834, - 16094: 0x58BB, - 16095: 0x58EF, - 16096: 0x596C, - 16097: 0x5C07, - 16098: 0x5E33, - 16099: 0x5E84, - 16100: 0x5F35, - 16101: 0x638C, - 16102: 0x66B2, - 16103: 0x6756, - 16104: 0x6A1F, - 16105: 0x6AA3, - 16106: 0x6B0C, - 16107: 0x6F3F, - 16108: 0x7246, - 16109: 0xF9FA, - 16110: 0x7350, - 16111: 0x748B, - 16112: 0x7AE0, - 16113: 0x7CA7, - 16114: 0x8178, - 16115: 0x81DF, - 16116: 0x81E7, - 16117: 0x838A, - 16118: 0x846C, - 16119: 0x8523, - 16120: 0x8594, - 16121: 0x85CF, - 16122: 0x88DD, - 16123: 0x8D13, - 16124: 0x91AC, - 16125: 0x9577, - 16126: 0x969C, - 16127: 0x518D, - 16128: 0x54C9, - 16129: 0x5728, - 16130: 0x5BB0, - 16131: 0x624D, - 16132: 0x6750, - 16133: 0x683D, - 16134: 0x6893, - 16135: 0x6E3D, - 16136: 0x6ED3, - 16137: 0x707D, - 16138: 0x7E21, - 16139: 0x88C1, - 16140: 0x8CA1, - 16141: 0x8F09, - 16142: 0x9F4B, - 16143: 0x9F4E, - 16144: 0x722D, - 16145: 0x7B8F, - 16146: 0x8ACD, - 16147: 0x931A, - 16148: 0x4F47, - 16149: 0x4F4E, - 16150: 0x5132, - 16151: 0x5480, - 16152: 0x59D0, - 16153: 0x5E95, - 16154: 0x62B5, - 16155: 0x6775, - 16156: 0x696E, - 16157: 0x6A17, - 16158: 0x6CAE, - 16159: 0x6E1A, - 16160: 0x72D9, - 16161: 0x732A, - 16162: 0x75BD, - 16163: 0x7BB8, - 16164: 0x7D35, - 16165: 0x82E7, - 16166: 0x83F9, - 16167: 0x8457, - 16168: 0x85F7, - 16169: 0x8A5B, - 16170: 0x8CAF, - 16171: 0x8E87, - 16172: 0x9019, - 16173: 0x90B8, - 16174: 0x96CE, - 16175: 0x9F5F, - 16176: 0x52E3, - 16177: 0x540A, - 16178: 0x5AE1, - 16179: 0x5BC2, - 16180: 0x6458, - 16181: 0x6575, - 16182: 0x6EF4, - 16183: 0x72C4, - 16184: 0xF9FB, - 16185: 0x7684, - 16186: 0x7A4D, - 16187: 0x7B1B, - 16188: 0x7C4D, - 16189: 0x7E3E, - 16190: 0x7FDF, - 16191: 0x837B, - 16192: 0x8B2B, - 16193: 0x8CCA, - 16194: 0x8D64, - 16195: 0x8DE1, - 16196: 0x8E5F, - 16197: 0x8FEA, - 16198: 0x8FF9, - 16199: 0x9069, - 16200: 0x93D1, - 16201: 0x4F43, - 16202: 0x4F7A, - 16203: 0x50B3, - 16204: 0x5168, - 16205: 0x5178, - 16206: 0x524D, - 16207: 0x526A, - 16208: 0x5861, - 16209: 0x587C, - 16210: 0x5960, - 16211: 0x5C08, - 16212: 0x5C55, - 16213: 0x5EDB, - 16214: 0x609B, - 16215: 0x6230, - 16216: 0x6813, - 16217: 0x6BBF, - 16218: 0x6C08, - 16219: 0x6FB1, - 16220: 0x714E, - 16221: 0x7420, - 16222: 0x7530, - 16223: 0x7538, - 16224: 0x7551, - 16225: 0x7672, - 16226: 0x7B4C, - 16227: 0x7B8B, - 16228: 0x7BAD, - 16229: 0x7BC6, - 16230: 0x7E8F, - 16231: 0x8A6E, - 16232: 0x8F3E, - 16233: 0x8F49, - 16234: 0x923F, - 16235: 0x9293, - 16236: 0x9322, - 16237: 0x942B, - 16238: 0x96FB, - 16239: 0x985A, - 16240: 0x986B, - 16241: 0x991E, - 16242: 0x5207, - 16243: 0x622A, - 16244: 0x6298, - 16245: 0x6D59, - 16246: 0x7664, - 16247: 0x7ACA, - 16248: 0x7BC0, - 16249: 0x7D76, - 16250: 0x5360, - 16251: 0x5CBE, - 16252: 0x5E97, - 16253: 0x6F38, - 16254: 0x70B9, - 16255: 0x7C98, - 16256: 0x9711, - 16257: 0x9B8E, - 16258: 0x9EDE, - 16259: 0x63A5, - 16260: 0x647A, - 16261: 0x8776, - 16262: 0x4E01, - 16263: 0x4E95, - 16264: 0x4EAD, - 16265: 0x505C, - 16266: 0x5075, - 16267: 0x5448, - 16268: 0x59C3, - 16269: 0x5B9A, - 16270: 0x5E40, - 16271: 0x5EAD, - 16272: 0x5EF7, - 16273: 0x5F81, - 16274: 0x60C5, - 16275: 0x633A, - 16276: 0x653F, - 16277: 0x6574, - 16278: 0x65CC, - 16279: 0x6676, - 16280: 0x6678, - 16281: 0x67FE, - 16282: 0x6968, - 16283: 0x6A89, - 16284: 0x6B63, - 16285: 0x6C40, - 16286: 0x6DC0, - 16287: 0x6DE8, - 16288: 0x6E1F, - 16289: 0x6E5E, - 16290: 0x701E, - 16291: 0x70A1, - 16292: 0x738E, - 16293: 0x73FD, - 16294: 0x753A, - 16295: 0x775B, - 16296: 0x7887, - 16297: 0x798E, - 16298: 0x7A0B, - 16299: 0x7A7D, - 16300: 0x7CBE, - 16301: 0x7D8E, - 16302: 0x8247, - 16303: 0x8A02, - 16304: 0x8AEA, - 16305: 0x8C9E, - 16306: 0x912D, - 16307: 0x914A, - 16308: 0x91D8, - 16309: 0x9266, - 16310: 0x92CC, - 16311: 0x9320, - 16312: 0x9706, - 16313: 0x9756, - 16314: 0x975C, - 16315: 0x9802, - 16316: 0x9F0E, - 16317: 0x5236, - 16318: 0x5291, - 16319: 0x557C, - 16320: 0x5824, - 16321: 0x5E1D, - 16322: 0x5F1F, - 16323: 0x608C, - 16324: 0x63D0, - 16325: 0x68AF, - 16326: 0x6FDF, - 16327: 0x796D, - 16328: 0x7B2C, - 16329: 0x81CD, - 16330: 0x85BA, - 16331: 0x88FD, - 16332: 0x8AF8, - 16333: 0x8E44, - 16334: 0x918D, - 16335: 0x9664, - 16336: 0x969B, - 16337: 0x973D, - 16338: 0x984C, - 16339: 0x9F4A, - 16340: 0x4FCE, - 16341: 0x5146, - 16342: 0x51CB, - 16343: 0x52A9, - 16344: 0x5632, - 16345: 0x5F14, - 16346: 0x5F6B, - 16347: 0x63AA, - 16348: 0x64CD, - 16349: 0x65E9, - 16350: 0x6641, - 16351: 0x66FA, - 16352: 0x66F9, - 16353: 0x671D, - 16354: 0x689D, - 16355: 0x68D7, - 16356: 0x69FD, - 16357: 0x6F15, - 16358: 0x6F6E, - 16359: 0x7167, - 16360: 0x71E5, - 16361: 0x722A, - 16362: 0x74AA, - 16363: 0x773A, - 16364: 0x7956, - 16365: 0x795A, - 16366: 0x79DF, - 16367: 0x7A20, - 16368: 0x7A95, - 16369: 0x7C97, - 16370: 0x7CDF, - 16371: 0x7D44, - 16372: 0x7E70, - 16373: 0x8087, - 16374: 0x85FB, - 16375: 0x86A4, - 16376: 0x8A54, - 16377: 0x8ABF, - 16378: 0x8D99, - 16379: 0x8E81, - 16380: 0x9020, - 16381: 0x906D, - 16382: 0x91E3, - 16383: 0x963B, - 16384: 0x96D5, - 16385: 0x9CE5, - 16386: 0x65CF, - 16387: 0x7C07, - 16388: 0x8DB3, - 16389: 0x93C3, - 16390: 0x5B58, - 16391: 0x5C0A, - 16392: 0x5352, - 16393: 0x62D9, - 16394: 0x731D, - 16395: 0x5027, - 16396: 0x5B97, - 16397: 0x5F9E, - 16398: 0x60B0, - 16399: 0x616B, - 16400: 0x68D5, - 16401: 0x6DD9, - 16402: 0x742E, - 16403: 0x7A2E, - 16404: 0x7D42, - 16405: 0x7D9C, - 16406: 0x7E31, - 16407: 0x816B, - 16408: 0x8E2A, - 16409: 0x8E35, - 16410: 0x937E, - 16411: 0x9418, - 16412: 0x4F50, - 16413: 0x5750, - 16414: 0x5DE6, - 16415: 0x5EA7, - 16416: 0x632B, - 16417: 0x7F6A, - 16418: 0x4E3B, - 16419: 0x4F4F, - 16420: 0x4F8F, - 16421: 0x505A, - 16422: 0x59DD, - 16423: 0x80C4, - 16424: 0x546A, - 16425: 0x5468, - 16426: 0x55FE, - 16427: 0x594F, - 16428: 0x5B99, - 16429: 0x5DDE, - 16430: 0x5EDA, - 16431: 0x665D, - 16432: 0x6731, - 16433: 0x67F1, - 16434: 0x682A, - 16435: 0x6CE8, - 16436: 0x6D32, - 16437: 0x6E4A, - 16438: 0x6F8D, - 16439: 0x70B7, - 16440: 0x73E0, - 16441: 0x7587, - 16442: 0x7C4C, - 16443: 0x7D02, - 16444: 0x7D2C, - 16445: 0x7DA2, - 16446: 0x821F, - 16447: 0x86DB, - 16448: 0x8A3B, - 16449: 0x8A85, - 16450: 0x8D70, - 16451: 0x8E8A, - 16452: 0x8F33, - 16453: 0x9031, - 16454: 0x914E, - 16455: 0x9152, - 16456: 0x9444, - 16457: 0x99D0, - 16458: 0x7AF9, - 16459: 0x7CA5, - 16460: 0x4FCA, - 16461: 0x5101, - 16462: 0x51C6, - 16463: 0x57C8, - 16464: 0x5BEF, - 16465: 0x5CFB, - 16466: 0x6659, - 16467: 0x6A3D, - 16468: 0x6D5A, - 16469: 0x6E96, - 16470: 0x6FEC, - 16471: 0x710C, - 16472: 0x756F, - 16473: 0x7AE3, - 16474: 0x8822, - 16475: 0x9021, - 16476: 0x9075, - 16477: 0x96CB, - 16478: 0x99FF, - 16479: 0x8301, - 16480: 0x4E2D, - 16481: 0x4EF2, - 16482: 0x8846, - 16483: 0x91CD, - 16484: 0x537D, - 16485: 0x6ADB, - 16486: 0x696B, - 16487: 0x6C41, - 16488: 0x847A, - 16489: 0x589E, - 16490: 0x618E, - 16491: 0x66FE, - 16492: 0x62EF, - 16493: 0x70DD, - 16494: 0x7511, - 16495: 0x75C7, - 16496: 0x7E52, - 16497: 0x84B8, - 16498: 0x8B49, - 16499: 0x8D08, - 16500: 0x4E4B, - 16501: 0x53EA, - 16502: 0x54AB, - 16503: 0x5730, - 16504: 0x5740, - 16505: 0x5FD7, - 16506: 0x6301, - 16507: 0x6307, - 16508: 0x646F, - 16509: 0x652F, - 16510: 0x65E8, - 16511: 0x667A, - 16512: 0x679D, - 16513: 0x67B3, - 16514: 0x6B62, - 16515: 0x6C60, - 16516: 0x6C9A, - 16517: 0x6F2C, - 16518: 0x77E5, - 16519: 0x7825, - 16520: 0x7949, - 16521: 0x7957, - 16522: 0x7D19, - 16523: 0x80A2, - 16524: 0x8102, - 16525: 0x81F3, - 16526: 0x829D, - 16527: 0x82B7, - 16528: 0x8718, - 16529: 0x8A8C, - 16530: 0xF9FC, - 16531: 0x8D04, - 16532: 0x8DBE, - 16533: 0x9072, - 16534: 0x76F4, - 16535: 0x7A19, - 16536: 0x7A37, - 16537: 0x7E54, - 16538: 0x8077, - 16539: 0x5507, - 16540: 0x55D4, - 16541: 0x5875, - 16542: 0x632F, - 16543: 0x6422, - 16544: 0x6649, - 16545: 0x664B, - 16546: 0x686D, - 16547: 0x699B, - 16548: 0x6B84, - 16549: 0x6D25, - 16550: 0x6EB1, - 16551: 0x73CD, - 16552: 0x7468, - 16553: 0x74A1, - 16554: 0x755B, - 16555: 0x75B9, - 16556: 0x76E1, - 16557: 0x771E, - 16558: 0x778B, - 16559: 0x79E6, - 16560: 0x7E09, - 16561: 0x7E1D, - 16562: 0x81FB, - 16563: 0x852F, - 16564: 0x8897, - 16565: 0x8A3A, - 16566: 0x8CD1, - 16567: 0x8EEB, - 16568: 0x8FB0, - 16569: 0x9032, - 16570: 0x93AD, - 16571: 0x9663, - 16572: 0x9673, - 16573: 0x9707, - 16574: 0x4F84, - 16575: 0x53F1, - 16576: 0x59EA, - 16577: 0x5AC9, - 16578: 0x5E19, - 16579: 0x684E, - 16580: 0x74C6, - 16581: 0x75BE, - 16582: 0x79E9, - 16583: 0x7A92, - 16584: 0x81A3, - 16585: 0x86ED, - 16586: 0x8CEA, - 16587: 0x8DCC, - 16588: 0x8FED, - 16589: 0x659F, - 16590: 0x6715, - 16591: 0xF9FD, - 16592: 0x57F7, - 16593: 0x6F57, - 16594: 0x7DDD, - 16595: 0x8F2F, - 16596: 0x93F6, - 16597: 0x96C6, - 16598: 0x5FB5, - 16599: 0x61F2, - 16600: 0x6F84, - 16601: 0x4E14, - 16602: 0x4F98, - 16603: 0x501F, - 16604: 0x53C9, - 16605: 0x55DF, - 16606: 0x5D6F, - 16607: 0x5DEE, - 16608: 0x6B21, - 16609: 0x6B64, - 16610: 0x78CB, - 16611: 0x7B9A, - 16612: 0xF9FE, - 16613: 0x8E49, - 16614: 0x8ECA, - 16615: 0x906E, - 16616: 0x6349, - 16617: 0x643E, - 16618: 0x7740, - 16619: 0x7A84, - 16620: 0x932F, - 16621: 0x947F, - 16622: 0x9F6A, - 16623: 0x64B0, - 16624: 0x6FAF, - 16625: 0x71E6, - 16626: 0x74A8, - 16627: 0x74DA, - 16628: 0x7AC4, - 16629: 0x7C12, - 16630: 0x7E82, - 16631: 0x7CB2, - 16632: 0x7E98, - 16633: 0x8B9A, - 16634: 0x8D0A, - 16635: 0x947D, - 16636: 0x9910, - 16637: 0x994C, - 16638: 0x5239, - 16639: 0x5BDF, - 16640: 0x64E6, - 16641: 0x672D, - 16642: 0x7D2E, - 16643: 0x50ED, - 16644: 0x53C3, - 16645: 0x5879, - 16646: 0x6158, - 16647: 0x6159, - 16648: 0x61FA, - 16649: 0x65AC, - 16650: 0x7AD9, - 16651: 0x8B92, - 16652: 0x8B96, - 16653: 0x5009, - 16654: 0x5021, - 16655: 0x5275, - 16656: 0x5531, - 16657: 0x5A3C, - 16658: 0x5EE0, - 16659: 0x5F70, - 16660: 0x6134, - 16661: 0x655E, - 16662: 0x660C, - 16663: 0x6636, - 16664: 0x66A2, - 16665: 0x69CD, - 16666: 0x6EC4, - 16667: 0x6F32, - 16668: 0x7316, - 16669: 0x7621, - 16670: 0x7A93, - 16671: 0x8139, - 16672: 0x8259, - 16673: 0x83D6, - 16674: 0x84BC, - 16675: 0x50B5, - 16676: 0x57F0, - 16677: 0x5BC0, - 16678: 0x5BE8, - 16679: 0x5F69, - 16680: 0x63A1, - 16681: 0x7826, - 16682: 0x7DB5, - 16683: 0x83DC, - 16684: 0x8521, - 16685: 0x91C7, - 16686: 0x91F5, - 16687: 0x518A, - 16688: 0x67F5, - 16689: 0x7B56, - 16690: 0x8CAC, - 16691: 0x51C4, - 16692: 0x59BB, - 16693: 0x60BD, - 16694: 0x8655, - 16695: 0x501C, - 16696: 0xF9FF, - 16697: 0x5254, - 16698: 0x5C3A, - 16699: 0x617D, - 16700: 0x621A, - 16701: 0x62D3, - 16702: 0x64F2, - 16703: 0x65A5, - 16704: 0x6ECC, - 16705: 0x7620, - 16706: 0x810A, - 16707: 0x8E60, - 16708: 0x965F, - 16709: 0x96BB, - 16710: 0x4EDF, - 16711: 0x5343, - 16712: 0x5598, - 16713: 0x5929, - 16714: 0x5DDD, - 16715: 0x64C5, - 16716: 0x6CC9, - 16717: 0x6DFA, - 16718: 0x7394, - 16719: 0x7A7F, - 16720: 0x821B, - 16721: 0x85A6, - 16722: 0x8CE4, - 16723: 0x8E10, - 16724: 0x9077, - 16725: 0x91E7, - 16726: 0x95E1, - 16727: 0x9621, - 16728: 0x97C6, - 16729: 0x51F8, - 16730: 0x54F2, - 16731: 0x5586, - 16732: 0x5FB9, - 16733: 0x64A4, - 16734: 0x6F88, - 16735: 0x7DB4, - 16736: 0x8F1F, - 16737: 0x8F4D, - 16738: 0x9435, - 16739: 0x50C9, - 16740: 0x5C16, - 16741: 0x6CBE, - 16742: 0x6DFB, - 16743: 0x751B, - 16744: 0x77BB, - 16745: 0x7C3D, - 16746: 0x7C64, - 16747: 0x8A79, - 16748: 0x8AC2, - 16749: 0x581E, - 16750: 0x59BE, - 16751: 0x5E16, - 16752: 0x6377, - 16753: 0x7252, - 16754: 0x758A, - 16755: 0x776B, - 16756: 0x8ADC, - 16757: 0x8CBC, - 16758: 0x8F12, - 16759: 0x5EF3, - 16760: 0x6674, - 16761: 0x6DF8, - 16762: 0x807D, - 16763: 0x83C1, - 16764: 0x8ACB, - 16765: 0x9751, - 16766: 0x9BD6, - 16767: 0xFA00, - 16768: 0x5243, - 16769: 0x66FF, - 16770: 0x6D95, - 16771: 0x6EEF, - 16772: 0x7DE0, - 16773: 0x8AE6, - 16774: 0x902E, - 16775: 0x905E, - 16776: 0x9AD4, - 16777: 0x521D, - 16778: 0x527F, - 16779: 0x54E8, - 16780: 0x6194, - 16781: 0x6284, - 16782: 0x62DB, - 16783: 0x68A2, - 16784: 0x6912, - 16785: 0x695A, - 16786: 0x6A35, - 16787: 0x7092, - 16788: 0x7126, - 16789: 0x785D, - 16790: 0x7901, - 16791: 0x790E, - 16792: 0x79D2, - 16793: 0x7A0D, - 16794: 0x8096, - 16795: 0x8278, - 16796: 0x82D5, - 16797: 0x8349, - 16798: 0x8549, - 16799: 0x8C82, - 16800: 0x8D85, - 16801: 0x9162, - 16802: 0x918B, - 16803: 0x91AE, - 16804: 0x4FC3, - 16805: 0x56D1, - 16806: 0x71ED, - 16807: 0x77D7, - 16808: 0x8700, - 16809: 0x89F8, - 16810: 0x5BF8, - 16811: 0x5FD6, - 16812: 0x6751, - 16813: 0x90A8, - 16814: 0x53E2, - 16815: 0x585A, - 16816: 0x5BF5, - 16817: 0x60A4, - 16818: 0x6181, - 16819: 0x6460, - 16820: 0x7E3D, - 16821: 0x8070, - 16822: 0x8525, - 16823: 0x9283, - 16824: 0x64AE, - 16825: 0x50AC, - 16826: 0x5D14, - 16827: 0x6700, - 16828: 0x589C, - 16829: 0x62BD, - 16830: 0x63A8, - 16831: 0x690E, - 16832: 0x6978, - 16833: 0x6A1E, - 16834: 0x6E6B, - 16835: 0x76BA, - 16836: 0x79CB, - 16837: 0x82BB, - 16838: 0x8429, - 16839: 0x8ACF, - 16840: 0x8DA8, - 16841: 0x8FFD, - 16842: 0x9112, - 16843: 0x914B, - 16844: 0x919C, - 16845: 0x9310, - 16846: 0x9318, - 16847: 0x939A, - 16848: 0x96DB, - 16849: 0x9A36, - 16850: 0x9C0D, - 16851: 0x4E11, - 16852: 0x755C, - 16853: 0x795D, - 16854: 0x7AFA, - 16855: 0x7B51, - 16856: 0x7BC9, - 16857: 0x7E2E, - 16858: 0x84C4, - 16859: 0x8E59, - 16860: 0x8E74, - 16861: 0x8EF8, - 16862: 0x9010, - 16863: 0x6625, - 16864: 0x693F, - 16865: 0x7443, - 16866: 0x51FA, - 16867: 0x672E, - 16868: 0x9EDC, - 16869: 0x5145, - 16870: 0x5FE0, - 16871: 0x6C96, - 16872: 0x87F2, - 16873: 0x885D, - 16874: 0x8877, - 16875: 0x60B4, - 16876: 0x81B5, - 16877: 0x8403, - 16878: 0x8D05, - 16879: 0x53D6, - 16880: 0x5439, - 16881: 0x5634, - 16882: 0x5A36, - 16883: 0x5C31, - 16884: 0x708A, - 16885: 0x7FE0, - 16886: 0x805A, - 16887: 0x8106, - 16888: 0x81ED, - 16889: 0x8DA3, - 16890: 0x9189, - 16891: 0x9A5F, - 16892: 0x9DF2, - 16893: 0x5074, - 16894: 0x4EC4, - 16895: 0x53A0, - 16896: 0x60FB, - 16897: 0x6E2C, - 16898: 0x5C64, - 16899: 0x4F88, - 16900: 0x5024, - 16901: 0x55E4, - 16902: 0x5CD9, - 16903: 0x5E5F, - 16904: 0x6065, - 16905: 0x6894, - 16906: 0x6CBB, - 16907: 0x6DC4, - 16908: 0x71BE, - 16909: 0x75D4, - 16910: 0x75F4, - 16911: 0x7661, - 16912: 0x7A1A, - 16913: 0x7A49, - 16914: 0x7DC7, - 16915: 0x7DFB, - 16916: 0x7F6E, - 16917: 0x81F4, - 16918: 0x86A9, - 16919: 0x8F1C, - 16920: 0x96C9, - 16921: 0x99B3, - 16922: 0x9F52, - 16923: 0x5247, - 16924: 0x52C5, - 16925: 0x98ED, - 16926: 0x89AA, - 16927: 0x4E03, - 16928: 0x67D2, - 16929: 0x6F06, - 16930: 0x4FB5, - 16931: 0x5BE2, - 16932: 0x6795, - 16933: 0x6C88, - 16934: 0x6D78, - 16935: 0x741B, - 16936: 0x7827, - 16937: 0x91DD, - 16938: 0x937C, - 16939: 0x87C4, - 16940: 0x79E4, - 16941: 0x7A31, - 16942: 0x5FEB, - 16943: 0x4ED6, - 16944: 0x54A4, - 16945: 0x553E, - 16946: 0x58AE, - 16947: 0x59A5, - 16948: 0x60F0, - 16949: 0x6253, - 16950: 0x62D6, - 16951: 0x6736, - 16952: 0x6955, - 16953: 0x8235, - 16954: 0x9640, - 16955: 0x99B1, - 16956: 0x99DD, - 16957: 0x502C, - 16958: 0x5353, - 16959: 0x5544, - 16960: 0x577C, - 16961: 0xFA01, - 16962: 0x6258, - 16963: 0xFA02, - 16964: 0x64E2, - 16965: 0x666B, - 16966: 0x67DD, - 16967: 0x6FC1, - 16968: 0x6FEF, - 16969: 0x7422, - 16970: 0x7438, - 16971: 0x8A17, - 16972: 0x9438, - 16973: 0x5451, - 16974: 0x5606, - 16975: 0x5766, - 16976: 0x5F48, - 16977: 0x619A, - 16978: 0x6B4E, - 16979: 0x7058, - 16980: 0x70AD, - 16981: 0x7DBB, - 16982: 0x8A95, - 16983: 0x596A, - 16984: 0x812B, - 16985: 0x63A2, - 16986: 0x7708, - 16987: 0x803D, - 16988: 0x8CAA, - 16989: 0x5854, - 16990: 0x642D, - 16991: 0x69BB, - 16992: 0x5B95, - 16993: 0x5E11, - 16994: 0x6E6F, - 16995: 0xFA03, - 16996: 0x8569, - 16997: 0x514C, - 16998: 0x53F0, - 16999: 0x592A, - 17000: 0x6020, - 17001: 0x614B, - 17002: 0x6B86, - 17003: 0x6C70, - 17004: 0x6CF0, - 17005: 0x7B1E, - 17006: 0x80CE, - 17007: 0x82D4, - 17008: 0x8DC6, - 17009: 0x90B0, - 17010: 0x98B1, - 17011: 0xFA04, - 17012: 0x64C7, - 17013: 0x6FA4, - 17014: 0x6491, - 17015: 0x6504, - 17016: 0x514E, - 17017: 0x5410, - 17018: 0x571F, - 17019: 0x8A0E, - 17020: 0x615F, - 17021: 0x6876, - 17022: 0xFA05, - 17023: 0x75DB, - 17024: 0x7B52, - 17025: 0x7D71, - 17026: 0x901A, - 17027: 0x5806, - 17028: 0x69CC, - 17029: 0x817F, - 17030: 0x892A, - 17031: 0x9000, - 17032: 0x9839, - 17033: 0x5078, - 17034: 0x5957, - 17035: 0x59AC, - 17036: 0x6295, - 17037: 0x900F, - 17038: 0x9B2A, - 17039: 0x615D, - 17040: 0x7279, - 17041: 0x95D6, - 17042: 0x5761, - 17043: 0x5A46, - 17044: 0x5DF4, - 17045: 0x628A, - 17046: 0x64AD, - 17047: 0x64FA, - 17048: 0x6777, - 17049: 0x6CE2, - 17050: 0x6D3E, - 17051: 0x722C, - 17052: 0x7436, - 17053: 0x7834, - 17054: 0x7F77, - 17055: 0x82AD, - 17056: 0x8DDB, - 17057: 0x9817, - 17058: 0x5224, - 17059: 0x5742, - 17060: 0x677F, - 17061: 0x7248, - 17062: 0x74E3, - 17063: 0x8CA9, - 17064: 0x8FA6, - 17065: 0x9211, - 17066: 0x962A, - 17067: 0x516B, - 17068: 0x53ED, - 17069: 0x634C, - 17070: 0x4F69, - 17071: 0x5504, - 17072: 0x6096, - 17073: 0x6557, - 17074: 0x6C9B, - 17075: 0x6D7F, - 17076: 0x724C, - 17077: 0x72FD, - 17078: 0x7A17, - 17079: 0x8987, - 17080: 0x8C9D, - 17081: 0x5F6D, - 17082: 0x6F8E, - 17083: 0x70F9, - 17084: 0x81A8, - 17085: 0x610E, - 17086: 0x4FBF, - 17087: 0x504F, - 17088: 0x6241, - 17089: 0x7247, - 17090: 0x7BC7, - 17091: 0x7DE8, - 17092: 0x7FE9, - 17093: 0x904D, - 17094: 0x97AD, - 17095: 0x9A19, - 17096: 0x8CB6, - 17097: 0x576A, - 17098: 0x5E73, - 17099: 0x67B0, - 17100: 0x840D, - 17101: 0x8A55, - 17102: 0x5420, - 17103: 0x5B16, - 17104: 0x5E63, - 17105: 0x5EE2, - 17106: 0x5F0A, - 17107: 0x6583, - 17108: 0x80BA, - 17109: 0x853D, - 17110: 0x9589, - 17111: 0x965B, - 17112: 0x4F48, - 17113: 0x5305, - 17114: 0x530D, - 17115: 0x530F, - 17116: 0x5486, - 17117: 0x54FA, - 17118: 0x5703, - 17119: 0x5E03, - 17120: 0x6016, - 17121: 0x629B, - 17122: 0x62B1, - 17123: 0x6355, - 17124: 0xFA06, - 17125: 0x6CE1, - 17126: 0x6D66, - 17127: 0x75B1, - 17128: 0x7832, - 17129: 0x80DE, - 17130: 0x812F, - 17131: 0x82DE, - 17132: 0x8461, - 17133: 0x84B2, - 17134: 0x888D, - 17135: 0x8912, - 17136: 0x900B, - 17137: 0x92EA, - 17138: 0x98FD, - 17139: 0x9B91, - 17140: 0x5E45, - 17141: 0x66B4, - 17142: 0x66DD, - 17143: 0x7011, - 17144: 0x7206, - 17145: 0xFA07, - 17146: 0x4FF5, - 17147: 0x527D, - 17148: 0x5F6A, - 17149: 0x6153, - 17150: 0x6753, - 17151: 0x6A19, - 17152: 0x6F02, - 17153: 0x74E2, - 17154: 0x7968, - 17155: 0x8868, - 17156: 0x8C79, - 17157: 0x98C7, - 17158: 0x98C4, - 17159: 0x9A43, - 17160: 0x54C1, - 17161: 0x7A1F, - 17162: 0x6953, - 17163: 0x8AF7, - 17164: 0x8C4A, - 17165: 0x98A8, - 17166: 0x99AE, - 17167: 0x5F7C, - 17168: 0x62AB, - 17169: 0x75B2, - 17170: 0x76AE, - 17171: 0x88AB, - 17172: 0x907F, - 17173: 0x9642, - 17174: 0x5339, - 17175: 0x5F3C, - 17176: 0x5FC5, - 17177: 0x6CCC, - 17178: 0x73CC, - 17179: 0x7562, - 17180: 0x758B, - 17181: 0x7B46, - 17182: 0x82FE, - 17183: 0x999D, - 17184: 0x4E4F, - 17185: 0x903C, - 17186: 0x4E0B, - 17187: 0x4F55, - 17188: 0x53A6, - 17189: 0x590F, - 17190: 0x5EC8, - 17191: 0x6630, - 17192: 0x6CB3, - 17193: 0x7455, - 17194: 0x8377, - 17195: 0x8766, - 17196: 0x8CC0, - 17197: 0x9050, - 17198: 0x971E, - 17199: 0x9C15, - 17200: 0x58D1, - 17201: 0x5B78, - 17202: 0x8650, - 17203: 0x8B14, - 17204: 0x9DB4, - 17205: 0x5BD2, - 17206: 0x6068, - 17207: 0x608D, - 17208: 0x65F1, - 17209: 0x6C57, - 17210: 0x6F22, - 17211: 0x6FA3, - 17212: 0x701A, - 17213: 0x7F55, - 17214: 0x7FF0, - 17215: 0x9591, - 17216: 0x9592, - 17217: 0x9650, - 17218: 0x97D3, - 17219: 0x5272, - 17220: 0x8F44, - 17221: 0x51FD, - 17222: 0x542B, - 17223: 0x54B8, - 17224: 0x5563, - 17225: 0x558A, - 17226: 0x6ABB, - 17227: 0x6DB5, - 17228: 0x7DD8, - 17229: 0x8266, - 17230: 0x929C, - 17231: 0x9677, - 17232: 0x9E79, - 17233: 0x5408, - 17234: 0x54C8, - 17235: 0x76D2, - 17236: 0x86E4, - 17237: 0x95A4, - 17238: 0x95D4, - 17239: 0x965C, - 17240: 0x4EA2, - 17241: 0x4F09, - 17242: 0x59EE, - 17243: 0x5AE6, - 17244: 0x5DF7, - 17245: 0x6052, - 17246: 0x6297, - 17247: 0x676D, - 17248: 0x6841, - 17249: 0x6C86, - 17250: 0x6E2F, - 17251: 0x7F38, - 17252: 0x809B, - 17253: 0x822A, - 17254: 0xFA08, - 17255: 0xFA09, - 17256: 0x9805, - 17257: 0x4EA5, - 17258: 0x5055, - 17259: 0x54B3, - 17260: 0x5793, - 17261: 0x595A, - 17262: 0x5B69, - 17263: 0x5BB3, - 17264: 0x61C8, - 17265: 0x6977, - 17266: 0x6D77, - 17267: 0x7023, - 17268: 0x87F9, - 17269: 0x89E3, - 17270: 0x8A72, - 17271: 0x8AE7, - 17272: 0x9082, - 17273: 0x99ED, - 17274: 0x9AB8, - 17275: 0x52BE, - 17276: 0x6838, - 17277: 0x5016, - 17278: 0x5E78, - 17279: 0x674F, - 17280: 0x8347, - 17281: 0x884C, - 17282: 0x4EAB, - 17283: 0x5411, - 17284: 0x56AE, - 17285: 0x73E6, - 17286: 0x9115, - 17287: 0x97FF, - 17288: 0x9909, - 17289: 0x9957, - 17290: 0x9999, - 17291: 0x5653, - 17292: 0x589F, - 17293: 0x865B, - 17294: 0x8A31, - 17295: 0x61B2, - 17296: 0x6AF6, - 17297: 0x737B, - 17298: 0x8ED2, - 17299: 0x6B47, - 17300: 0x96AA, - 17301: 0x9A57, - 17302: 0x5955, - 17303: 0x7200, - 17304: 0x8D6B, - 17305: 0x9769, - 17306: 0x4FD4, - 17307: 0x5CF4, - 17308: 0x5F26, - 17309: 0x61F8, - 17310: 0x665B, - 17311: 0x6CEB, - 17312: 0x70AB, - 17313: 0x7384, - 17314: 0x73B9, - 17315: 0x73FE, - 17316: 0x7729, - 17317: 0x774D, - 17318: 0x7D43, - 17319: 0x7D62, - 17320: 0x7E23, - 17321: 0x8237, - 17322: 0x8852, - 17323: 0xFA0A, - 17324: 0x8CE2, - 17325: 0x9249, - 17326: 0x986F, - 17327: 0x5B51, - 17328: 0x7A74, - 17329: 0x8840, - 17330: 0x9801, - 17331: 0x5ACC, - 17332: 0x4FE0, - 17333: 0x5354, - 17334: 0x593E, - 17335: 0x5CFD, - 17336: 0x633E, - 17337: 0x6D79, - 17338: 0x72F9, - 17339: 0x8105, - 17340: 0x8107, - 17341: 0x83A2, - 17342: 0x92CF, - 17343: 0x9830, - 17344: 0x4EA8, - 17345: 0x5144, - 17346: 0x5211, - 17347: 0x578B, - 17348: 0x5F62, - 17349: 0x6CC2, - 17350: 0x6ECE, - 17351: 0x7005, - 17352: 0x7050, - 17353: 0x70AF, - 17354: 0x7192, - 17355: 0x73E9, - 17356: 0x7469, - 17357: 0x834A, - 17358: 0x87A2, - 17359: 0x8861, - 17360: 0x9008, - 17361: 0x90A2, - 17362: 0x93A3, - 17363: 0x99A8, - 17364: 0x516E, - 17365: 0x5F57, - 17366: 0x60E0, - 17367: 0x6167, - 17368: 0x66B3, - 17369: 0x8559, - 17370: 0x8E4A, - 17371: 0x91AF, - 17372: 0x978B, - 17373: 0x4E4E, - 17374: 0x4E92, - 17375: 0x547C, - 17376: 0x58D5, - 17377: 0x58FA, - 17378: 0x597D, - 17379: 0x5CB5, - 17380: 0x5F27, - 17381: 0x6236, - 17382: 0x6248, - 17383: 0x660A, - 17384: 0x6667, - 17385: 0x6BEB, - 17386: 0x6D69, - 17387: 0x6DCF, - 17388: 0x6E56, - 17389: 0x6EF8, - 17390: 0x6F94, - 17391: 0x6FE0, - 17392: 0x6FE9, - 17393: 0x705D, - 17394: 0x72D0, - 17395: 0x7425, - 17396: 0x745A, - 17397: 0x74E0, - 17398: 0x7693, - 17399: 0x795C, - 17400: 0x7CCA, - 17401: 0x7E1E, - 17402: 0x80E1, - 17403: 0x82A6, - 17404: 0x846B, - 17405: 0x84BF, - 17406: 0x864E, - 17407: 0x865F, - 17408: 0x8774, - 17409: 0x8B77, - 17410: 0x8C6A, - 17411: 0x93AC, - 17412: 0x9800, - 17413: 0x9865, - 17414: 0x60D1, - 17415: 0x6216, - 17416: 0x9177, - 17417: 0x5A5A, - 17418: 0x660F, - 17419: 0x6DF7, - 17420: 0x6E3E, - 17421: 0x743F, - 17422: 0x9B42, - 17423: 0x5FFD, - 17424: 0x60DA, - 17425: 0x7B0F, - 17426: 0x54C4, - 17427: 0x5F18, - 17428: 0x6C5E, - 17429: 0x6CD3, - 17430: 0x6D2A, - 17431: 0x70D8, - 17432: 0x7D05, - 17433: 0x8679, - 17434: 0x8A0C, - 17435: 0x9D3B, - 17436: 0x5316, - 17437: 0x548C, - 17438: 0x5B05, - 17439: 0x6A3A, - 17440: 0x706B, - 17441: 0x7575, - 17442: 0x798D, - 17443: 0x79BE, - 17444: 0x82B1, - 17445: 0x83EF, - 17446: 0x8A71, - 17447: 0x8B41, - 17448: 0x8CA8, - 17449: 0x9774, - 17450: 0xFA0B, - 17451: 0x64F4, - 17452: 0x652B, - 17453: 0x78BA, - 17454: 0x78BB, - 17455: 0x7A6B, - 17456: 0x4E38, - 17457: 0x559A, - 17458: 0x5950, - 17459: 0x5BA6, - 17460: 0x5E7B, - 17461: 0x60A3, - 17462: 0x63DB, - 17463: 0x6B61, - 17464: 0x6665, - 17465: 0x6853, - 17466: 0x6E19, - 17467: 0x7165, - 17468: 0x74B0, - 17469: 0x7D08, - 17470: 0x9084, - 17471: 0x9A69, - 17472: 0x9C25, - 17473: 0x6D3B, - 17474: 0x6ED1, - 17475: 0x733E, - 17476: 0x8C41, - 17477: 0x95CA, - 17478: 0x51F0, - 17479: 0x5E4C, - 17480: 0x5FA8, - 17481: 0x604D, - 17482: 0x60F6, - 17483: 0x6130, - 17484: 0x614C, - 17485: 0x6643, - 17486: 0x6644, - 17487: 0x69A5, - 17488: 0x6CC1, - 17489: 0x6E5F, - 17490: 0x6EC9, - 17491: 0x6F62, - 17492: 0x714C, - 17493: 0x749C, - 17494: 0x7687, - 17495: 0x7BC1, - 17496: 0x7C27, - 17497: 0x8352, - 17498: 0x8757, - 17499: 0x9051, - 17500: 0x968D, - 17501: 0x9EC3, - 17502: 0x532F, - 17503: 0x56DE, - 17504: 0x5EFB, - 17505: 0x5F8A, - 17506: 0x6062, - 17507: 0x6094, - 17508: 0x61F7, - 17509: 0x6666, - 17510: 0x6703, - 17511: 0x6A9C, - 17512: 0x6DEE, - 17513: 0x6FAE, - 17514: 0x7070, - 17515: 0x736A, - 17516: 0x7E6A, - 17517: 0x81BE, - 17518: 0x8334, - 17519: 0x86D4, - 17520: 0x8AA8, - 17521: 0x8CC4, - 17522: 0x5283, - 17523: 0x7372, - 17524: 0x5B96, - 17525: 0x6A6B, - 17526: 0x9404, - 17527: 0x54EE, - 17528: 0x5686, - 17529: 0x5B5D, - 17530: 0x6548, - 17531: 0x6585, - 17532: 0x66C9, - 17533: 0x689F, - 17534: 0x6D8D, - 17535: 0x6DC6, - 17536: 0x723B, - 17537: 0x80B4, - 17538: 0x9175, - 17539: 0x9A4D, - 17540: 0x4FAF, - 17541: 0x5019, - 17542: 0x539A, - 17543: 0x540E, - 17544: 0x543C, - 17545: 0x5589, - 17546: 0x55C5, - 17547: 0x5E3F, - 17548: 0x5F8C, - 17549: 0x673D, - 17550: 0x7166, - 17551: 0x73DD, - 17552: 0x9005, - 17553: 0x52DB, - 17554: 0x52F3, - 17555: 0x5864, - 17556: 0x58CE, - 17557: 0x7104, - 17558: 0x718F, - 17559: 0x71FB, - 17560: 0x85B0, - 17561: 0x8A13, - 17562: 0x6688, - 17563: 0x85A8, - 17564: 0x55A7, - 17565: 0x6684, - 17566: 0x714A, - 17567: 0x8431, - 17568: 0x5349, - 17569: 0x5599, - 17570: 0x6BC1, - 17571: 0x5F59, - 17572: 0x5FBD, - 17573: 0x63EE, - 17574: 0x6689, - 17575: 0x7147, - 17576: 0x8AF1, - 17577: 0x8F1D, - 17578: 0x9EBE, - 17579: 0x4F11, - 17580: 0x643A, - 17581: 0x70CB, - 17582: 0x7566, - 17583: 0x8667, - 17584: 0x6064, - 17585: 0x8B4E, - 17586: 0x9DF8, - 17587: 0x5147, - 17588: 0x51F6, - 17589: 0x5308, - 17590: 0x6D36, - 17591: 0x80F8, - 17592: 0x9ED1, - 17593: 0x6615, - 17594: 0x6B23, - 17595: 0x7098, - 17596: 0x75D5, - 17597: 0x5403, - 17598: 0x5C79, - 17599: 0x7D07, - 17600: 0x8A16, - 17601: 0x6B20, - 17602: 0x6B3D, - 17603: 0x6B46, - 17604: 0x5438, - 17605: 0x6070, - 17606: 0x6D3D, - 17607: 0x7FD5, - 17608: 0x8208, - 17609: 0x50D6, - 17610: 0x51DE, - 17611: 0x559C, - 17612: 0x566B, - 17613: 0x56CD, - 17614: 0x59EC, - 17615: 0x5B09, - 17616: 0x5E0C, - 17617: 0x6199, - 17618: 0x6198, - 17619: 0x6231, - 17620: 0x665E, - 17621: 0x66E6, - 17622: 0x7199, - 17623: 0x71B9, - 17624: 0x71BA, - 17625: 0x72A7, - 17626: 0x79A7, - 17627: 0x7A00, - 17628: 0x7FB2, - 17629: 0x8A70, -} - -const numEncodeTables = 7 - -// encodeX are the encoding tables from Unicode to EUC-KR code, -// sorted by decreasing length. -// encode0: 20893 entries for runes in [19968, 40861). -// encode1: 11172 entries for runes in [44032, 55204). -// encode2: 1625 entries for runes in [ 8213, 9838). -// encode3: 990 entries for runes in [12288, 13278). -// encode4: 945 entries for runes in [ 161, 1106). -// encode5: 268 entries for runes in [63744, 64012). -// encode6: 230 entries for runes in [65281, 65511). - -const encode0Low, encode0High = 19968, 40861 - -var encode0 = [...]uint16{ - 19968 - 19968: 0xECE9, - 19969 - 19968: 0xEFCB, - 19971 - 19968: 0xF6D2, - 19975 - 19968: 0xD8B2, - 19976 - 19968: 0xEDDB, - 19977 - 19968: 0xDFB2, - 19978 - 19968: 0xDFBE, - 19979 - 19968: 0xF9BB, - 19981 - 19968: 0xDCF4, - 19985 - 19968: 0xF5E4, - 19988 - 19968: 0xF3A6, - 19989 - 19968: 0xDDE0, - 19990 - 19968: 0xE1A6, - 19992 - 19968: 0xCEF8, - 19993 - 19968: 0xDCB0, - 19998 - 19968: 0xE3AA, - 20013 - 19968: 0xF1E9, - 20018 - 19968: 0xCDFA, - 20024 - 19968: 0xFCAF, - 20025 - 19968: 0xD3A1, - 20027 - 19968: 0xF1AB, - 20034 - 19968: 0xE7D1, - 20035 - 19968: 0xD2AC, - 20037 - 19968: 0xCEF9, - 20043 - 19968: 0xF1FD, - 20045 - 19968: 0xDEBF, - 20046 - 19968: 0xFBBA, - 20047 - 19968: 0xF9B9, - 20054 - 19968: 0xCED2, - 20056 - 19968: 0xE3AB, - 20057 - 19968: 0xEBE0, - 20061 - 19968: 0xCEFA, - 20062 - 19968: 0xCBF7, - 20063 - 19968: 0xE5A5, - 20075 - 19968: 0xCAE1, - 20077 - 19968: 0xD4CC, - 20083 - 19968: 0xEAE1, - 20086 - 19968: 0xDCE3, - 20087 - 19968: 0xDFAD, - 20094 - 19968: 0xCBEB, - 20098 - 19968: 0xD5AF, - 20102 - 19968: 0xD6F5, - 20104 - 19968: 0xE5F8, - 20107 - 19968: 0xDEC0, - 20108 - 19968: 0xECA3, - 20110 - 19968: 0xE9CD, - 20112 - 19968: 0xEAA7, - 20113 - 19968: 0xE9F6, - 20114 - 19968: 0xFBBB, - 20116 - 19968: 0xE7E9, - 20117 - 19968: 0xEFCC, - 20120 - 19968: 0xD0E6, - 20123 - 19968: 0xDEC1, - 20126 - 19968: 0xE4AC, - 20129 - 19968: 0xD8CC, - 20130 - 19968: 0xF9F1, - 20132 - 19968: 0xCEDF, - 20133 - 19968: 0xFAA4, - 20134 - 19968: 0xE6B2, - 20136 - 19968: 0xFAFB, - 20139 - 19968: 0xFABD, - 20140 - 19968: 0xCCC8, - 20141 - 19968: 0xEFCD, - 20142 - 19968: 0xD5D5, - 20150 - 19968: 0xD3A2, - 20154 - 19968: 0xECD1, - 20160 - 19968: 0xE4A7, - 20161 - 19968: 0xECD2, - 20164 - 19968: 0xF6B1, - 20167 - 19968: 0xCEFB, - 20170 - 19968: 0xD0D1, - 20171 - 19968: 0xCBBF, - 20173 - 19968: 0xEDA4, - 20180 - 19968: 0xEDA8, - 20181 - 19968: 0xDEC2, - 20182 - 19968: 0xF6E2, - 20183 - 19968: 0xEDDC, - 20184 - 19968: 0xDCF5, - 20185 - 19968: 0xE0B9, - 20189 - 19968: 0xD4CE, - 20191 - 19968: 0xF4B5, - 20195 - 19968: 0xD3DB, - 20196 - 19968: 0xD6B5, - 20197 - 19968: 0xECA4, - 20208 - 19968: 0xE4E6, - 20210 - 19968: 0xF1EA, - 20214 - 19968: 0xCBEC, - 20215 - 19968: 0xCBC0, - 20219 - 19968: 0xECF2, - 20225 - 19968: 0xD0EA, - 20233 - 19968: 0xF9F2, - 20234 - 19968: 0xECA5, - 20235 - 19968: 0xD0DF, - 20237 - 19968: 0xE7EA, - 20238 - 19968: 0xD0EB, - 20239 - 19968: 0xDCD1, - 20240 - 19968: 0xDBE9, - 20241 - 19968: 0xFDCC, - 20271 - 19968: 0xDBD7, - 20276 - 19968: 0xDAE1, - 20278 - 19968: 0xD6B6, - 20280 - 19968: 0xE3DF, - 20282 - 19968: 0xDEC3, - 20284 - 19968: 0xDEC4, - 20285 - 19968: 0xCAA1, - 20291 - 19968: 0xEEEC, - 20294 - 19968: 0xD3A3, - 20295 - 19968: 0xEEB7, - 20296 - 19968: 0xF8CF, - 20301 - 19968: 0xEAC8, - 20302 - 19968: 0xEEB8, - 20303 - 19968: 0xF1AC, - 20304 - 19968: 0xF1A5, - 20305 - 19968: 0xE9CE, - 20309 - 19968: 0xF9BC, - 20313 - 19968: 0xE5F9, - 20314 - 19968: 0xECEA, - 20315 - 19968: 0xDDD6, - 20316 - 19968: 0xEDC2, - 20329 - 19968: 0xF8A5, - 20335 - 19968: 0xE5BA, - 20336 - 19968: 0xDBD8, - 20339 - 19968: 0xCAA2, - 20342 - 19968: 0xD1CD, - 20346 - 19968: 0xEEED, - 20350 - 19968: 0xECEB, - 20351 - 19968: 0xDEC5, - 20353 - 19968: 0xE3E0, - 20355 - 19968: 0xCAC9, - 20356 - 19968: 0xF2E9, - 20358 - 19968: 0xD5CE, - 20360 - 19968: 0xF6B6, - 20362 - 19968: 0xCEC2, - 20363 - 19968: 0xD6C7, - 20365 - 19968: 0xE3B4, - 20367 - 19968: 0xF1AD, - 20369 - 19968: 0xEAE2, - 20374 - 19968: 0xD7C2, - 20376 - 19968: 0xF3A7, - 20379 - 19968: 0xCDEA, - 20381 - 19968: 0xEBEE, - 20398 - 19968: 0xD9B2, - 20399 - 19968: 0xFDA5, - 20405 - 19968: 0xF6D5, - 20406 - 19968: 0xD5E2, - 20415 - 19968: 0xF8B5, - 20418 - 19968: 0xCCF5, - 20419 - 19968: 0xF5B5, - 20420 - 19968: 0xE4AD, - 20425 - 19968: 0xE7EB, - 20426 - 19968: 0xF1D5, - 20430 - 19968: 0xF0BB, - 20433 - 19968: 0xE9B5, - 20435 - 19968: 0xCCC9, - 20436 - 19968: 0xFAD5, - 20439 - 19968: 0xE1D4, - 20442 - 19968: 0xD7D6, - 20445 - 19968: 0xDCC1, - 20447 - 19968: 0xDEC6, - 20448 - 19968: 0xFAEF, - 20449 - 19968: 0xE3E1, - 20462 - 19968: 0xE1F3, - 20463 - 19968: 0xDCF6, - 20465 - 19968: 0xCEFC, - 20467 - 19968: 0xDBC4, - 20469 - 19968: 0xF8F1, - 20472 - 19968: 0xDCE4, - 20474 - 19968: 0xE5EF, - 20482 - 19968: 0xDCB1, - 20486 - 19968: 0xD5D6, - 20489 - 19968: 0xF3DA, - 20491 - 19968: 0xCBC1, - 20493 - 19968: 0xDBC3, - 20497 - 19968: 0xD9FA, - 20498 - 19968: 0xD3EE, - 20502 - 19968: 0xFAB8, - 20505 - 19968: 0xFDA6, - 20506 - 19968: 0xEBEF, - 20508 - 19968: 0xF4A6, - 20510 - 19968: 0xCCCA, - 20511 - 19968: 0xF3A8, - 20513 - 19968: 0xF3DB, - 20515 - 19968: 0xDBA7, - 20516 - 19968: 0xF6B7, - 20518 - 19968: 0xCFE6, - 20519 - 19968: 0xF0F2, - 20520 - 19968: 0xCBDA, - 20522 - 19968: 0xE7D2, - 20523 - 19968: 0xD7C3, - 20524 - 19968: 0xF6F0, - 20525 - 19968: 0xE8DE, - 20539 - 19968: 0xE5A6, - 20547 - 19968: 0xE5E7, - 20551 - 19968: 0xCAA3, - 20552 - 19968: 0xCCA7, - 20553 - 19968: 0xEAC9, - 20559 - 19968: 0xF8B6, - 20565 - 19968: 0xFAA5, - 20570 - 19968: 0xF1AE, - 20572 - 19968: 0xEFCE, - 20581 - 19968: 0xCBED, - 20596 - 19968: 0xF6B0, - 20597 - 19968: 0xEFCF, - 20598 - 19968: 0xE9CF, - 20600 - 19968: 0xF7DE, - 20608 - 19968: 0xCED3, - 20613 - 19968: 0xDCF7, - 20621 - 19968: 0xDBA8, - 20625 - 19968: 0xCBF8, - 20632 - 19968: 0xDFA1, - 20633 - 19968: 0xDDE1, - 20652 - 19968: 0xF5CA, - 20653 - 19968: 0xE9B6, - 20658 - 19968: 0xE7EC, - 20659 - 19968: 0xEEEE, - 20661 - 19968: 0xF3F0, - 20663 - 19968: 0xDFBF, - 20670 - 19968: 0xCCCB, - 20677 - 19968: 0xD0C1, - 20681 - 19968: 0xF4D2, - 20682 - 19968: 0xE0BA, - 20687 - 19968: 0xDFC0, - 20689 - 19968: 0xCEE0, - 20693 - 19968: 0xDCD2, - 20694 - 19968: 0xFDEA, - 20698 - 19968: 0xD6F6, - 20702 - 19968: 0xEACA, - 20709 - 19968: 0xE8E9, - 20711 - 19968: 0xE3AC, - 20717 - 19968: 0xF3D0, - 20729 - 19968: 0xCAA4, - 20731 - 19968: 0xDBF8, - 20735 - 19968: 0xDEC7, - 20736 - 19968: 0xEBF0, - 20737 - 19968: 0xF1D6, - 20740 - 19968: 0xE5E2, - 20742 - 19968: 0xCCCC, - 20745 - 19968: 0xCBFB, - 20754 - 19968: 0xEAE3, - 20767 - 19968: 0xDFC1, - 20769 - 19968: 0xD6ED, - 20778 - 19968: 0xE9D0, - 20786 - 19968: 0xEEB9, - 20791 - 19968: 0xD5E3, - 20794 - 19968: 0xD1D3, - 20796 - 19968: 0xE5F0, - 20800 - 19968: 0xE8B4, - 20801 - 19968: 0xEBC3, - 20803 - 19968: 0xEAAA, - 20804 - 19968: 0xFAFC, - 20805 - 19968: 0xF5F6, - 20806 - 19968: 0xF0BC, - 20807 - 19968: 0xFDD4, - 20808 - 19968: 0xE0BB, - 20809 - 19968: 0xCEC3, - 20811 - 19968: 0xD0BA, - 20812 - 19968: 0xF7BA, - 20813 - 19968: 0xD8F3, - 20814 - 19968: 0xF7CD, - 20818 - 19968: 0xE4AE, - 20828 - 19968: 0xD4DF, - 20834 - 19968: 0xD0E7, - 20837 - 19968: 0xECFD, - 20839 - 19968: 0xD2AE, - 20840 - 19968: 0xEEEF, - 20841 - 19968: 0xD5D7, - 20842 - 19968: 0xEAE4, - 20843 - 19968: 0xF8A2, - 20844 - 19968: 0xCDEB, - 20845 - 19968: 0xD7BF, - 20846 - 19968: 0xFBB1, - 20849 - 19968: 0xCDEC, - 20853 - 19968: 0xDCB2, - 20854 - 19968: 0xD0EC, - 20855 - 19968: 0xCEFD, - 20856 - 19968: 0xEEF0, - 20860 - 19968: 0xCCC2, - 20864 - 19968: 0xD0ED, - 20870 - 19968: 0xE5F7, - 20874 - 19968: 0xF3FC, - 20877 - 19968: 0xEEA2, - 20882 - 19968: 0xD9B3, - 20885 - 19968: 0xD8F4, - 20887 - 19968: 0xE9B7, - 20896 - 19968: 0xCEAE, - 20901 - 19968: 0xD9A2, - 20906 - 19968: 0xD8F1, - 20908 - 19968: 0xD4CF, - 20918 - 19968: 0xE5A7, - 20919 - 19968: 0xD5D2, - 20925 - 19968: 0xD6A9, - 20932 - 19968: 0xF4A2, - 20934 - 19968: 0xF1D7, - 20937 - 19968: 0xD5D8, - 20939 - 19968: 0xF0BD, - 20940 - 19968: 0xD7D0, - 20941 - 19968: 0xD4D0, - 20956 - 19968: 0xD7CF, - 20957 - 19968: 0xEBEA, - 20958 - 19968: 0xFDEB, - 20961 - 19968: 0xDBED, - 20976 - 19968: 0xFCC5, - 20977 - 19968: 0xCBC2, - 20982 - 19968: 0xFDD5, - 20984 - 19968: 0xF4C8, - 20985 - 19968: 0xE8EA, - 20986 - 19968: 0xF5F3, - 20989 - 19968: 0xF9DE, - 20992 - 19968: 0xD3EF, - 20995 - 19968: 0xECD3, - 20998 - 19968: 0xDDC2, - 20999 - 19968: 0xEFB7, - 21000 - 19968: 0xE7D4, - 21002 - 19968: 0xCACA, - 21006 - 19968: 0xD9FB, - 21009 - 19968: 0xFAFD, - 21015 - 19968: 0xD6AA, - 21021 - 19968: 0xF4F8, - 21028 - 19968: 0xF7F7, - 21029 - 19968: 0xDCAC, - 21033 - 19968: 0xD7D7, - 21034 - 19968: 0xDFA2, - 21038 - 19968: 0xCEBE, - 21040 - 19968: 0xD3F0, - 21046 - 19968: 0xF0A4, - 21047 - 19968: 0xE1EC, - 21048 - 19968: 0xCFE7, - 21049 - 19968: 0xF3CB, - 21050 - 19968: 0xEDA9, - 21051 - 19968: 0xCABE, - 21059 - 19968: 0xF4EF, - 21063 - 19968: 0xF6CE, - 21066 - 19968: 0xDEFB, - 21067 - 19968: 0xD0BB, - 21068 - 19968: 0xD5B7, - 21069 - 19968: 0xEEF1, - 21076 - 19968: 0xF4A8, - 21078 - 19968: 0xDCF8, - 21083 - 19968: 0xCBA7, - 21085 - 19968: 0xDACE, - 21089 - 19968: 0xE0E6, - 21097 - 19968: 0xEDA5, - 21098 - 19968: 0xEEF2, - 21103 - 19968: 0xDCF9, - 21106 - 19968: 0xF9DC, - 21109 - 19968: 0xF3DC, - 21117 - 19968: 0xF8F2, - 21119 - 19968: 0xF4F9, - 21123 - 19968: 0xFCF1, - 21127 - 19968: 0xD0BC, - 21128 - 19968: 0xDBF9, - 21129 - 19968: 0xD7B1, - 21133 - 19968: 0xCBFC, - 21137 - 19968: 0xF0A5, - 21138 - 19968: 0xCBFD, - 21147 - 19968: 0xD5F4, - 21151 - 19968: 0xCDED, - 21152 - 19968: 0xCAA5, - 21155 - 19968: 0xD6AB, - 21156 - 19968: 0xD0C2, - 21161 - 19968: 0xF0BE, - 21162 - 19968: 0xD2BD, - 21163 - 19968: 0xCCA4, - 21182 - 19968: 0xFAB6, - 21185 - 19968: 0xCCCD, - 21187 - 19968: 0xDAFA, - 21189 - 19968: 0xF6CF, - 21191 - 19968: 0xE9B8, - 21193 - 19968: 0xD8F5, - 21197 - 19968: 0xCCCE, - 21202 - 19968: 0xD7CD, - 21205 - 19968: 0xD4D1, - 21206 - 19968: 0xE9ED, - 21208 - 19968: 0xCAEB, - 21209 - 19968: 0xD9E2, - 21211 - 19968: 0xFDB2, - 21213 - 19968: 0xE3AD, - 21214 - 19968: 0xD6CC, - 21215 - 19968: 0xD9B4, - 21218 - 19968: 0xE1A7, - 21219 - 19968: 0xEED3, - 21220 - 19968: 0xD0C3, - 21235 - 19968: 0xFDB3, - 21237 - 19968: 0xD5E4, - 21240 - 19968: 0xCFE8, - 21242 - 19968: 0xEDC3, - 21243 - 19968: 0xD0B2, - 21246 - 19968: 0xCEFE, - 21247 - 19968: 0xDAA8, - 21253 - 19968: 0xF8D0, - 21256 - 19968: 0xFDD6, - 21261 - 19968: 0xF8D1, - 21263 - 19968: 0xF8D2, - 21264 - 19968: 0xDCD3, - 21269 - 19968: 0xDDE2, - 21270 - 19968: 0xFBF9, - 21271 - 19968: 0xDDC1, - 21273 - 19968: 0xE3B5, - 21280 - 19968: 0xEDDD, - 21281 - 19968: 0xCEC4, - 21283 - 19968: 0xCBA1, - 21290 - 19968: 0xDDE3, - 21295 - 19968: 0xFCDD, - 21305 - 19968: 0xF9AF, - 21311 - 19968: 0xD2FB, - 21312 - 19968: 0xCFA1, - 21313 - 19968: 0xE4A8, - 21315 - 19968: 0xF4B6, - 21316 - 19968: 0xECFE, - 21319 - 19968: 0xE3AE, - 21320 - 19968: 0xE7ED, - 21321 - 19968: 0xFDC1, - 21322 - 19968: 0xDAE2, - 21325 - 19968: 0xD8B3, - 21329 - 19968: 0xDDE4, - 21330 - 19968: 0xF0EF, - 21331 - 19968: 0xF6F1, - 21332 - 19968: 0xFAF0, - 21335 - 19968: 0xD1F5, - 21338 - 19968: 0xDACF, - 21340 - 19968: 0xDCD4, - 21342 - 19968: 0xDCA6, - 21344 - 19968: 0xEFBF, - 21350 - 19968: 0xCECF, - 21352 - 19968: 0xE0D9, - 21359 - 19968: 0xD9D6, - 21360 - 19968: 0xECD4, - 21361 - 19968: 0xEACB, - 21364 - 19968: 0xCABF, - 21365 - 19968: 0xD5B0, - 21367 - 19968: 0xCFE9, - 21373 - 19968: 0xF1ED, - 21375 - 19968: 0xCCCF, - 21380 - 19968: 0xE4F8, - 21395 - 19968: 0xE4ED, - 21400 - 19968: 0xD7D8, - 21402 - 19968: 0xFDA7, - 21407 - 19968: 0xEAAB, - 21408 - 19968: 0xF6B2, - 21413 - 19968: 0xCFF0, - 21414 - 19968: 0xF9BD, - 21421 - 19968: 0xE6F4, - 21435 - 19968: 0xCBDB, - 21443 - 19968: 0xF3D1, - 21448 - 19968: 0xE9D1, - 21449 - 19968: 0xF3A9, - 21450 - 19968: 0xD0E0, - 21451 - 19968: 0xE9D2, - 21453 - 19968: 0xDAE3, - 21460 - 19968: 0xE2D2, - 21462 - 19968: 0xF6A2, - 21463 - 19968: 0xE1F4, - 21467 - 19968: 0xDAE4, - 21473 - 19968: 0xE7D5, - 21474 - 19968: 0xF5BF, - 21475 - 19968: 0xCFA2, - 21476 - 19968: 0xCDAF, - 21477 - 19968: 0xCFA3, - 21481 - 19968: 0xCDB0, - 21482 - 19968: 0xF1FE, - 21483 - 19968: 0xD0A3, - 21484 - 19968: 0xE1AF, - 21485 - 19968: 0xF8A3, - 21487 - 19968: 0xCAA6, - 21488 - 19968: 0xF7BB, - 21489 - 19968: 0xF2EA, - 21490 - 19968: 0xDEC8, - 21491 - 19968: 0xE9D3, - 21496 - 19968: 0xDEC9, - 21507 - 19968: 0xFDDE, - 21508 - 19968: 0xCAC0, - 21512 - 19968: 0xF9EA, - 21513 - 19968: 0xD1CE, - 21514 - 19968: 0xEED4, - 21516 - 19968: 0xD4D2, - 21517 - 19968: 0xD9A3, - 21518 - 19968: 0xFDA8, - 21519 - 19968: 0xD7D9, - 21520 - 19968: 0xF7CE, - 21521 - 19968: 0xFABE, - 21531 - 19968: 0xCFD6, - 21533 - 19968: 0xD7F0, - 21535 - 19968: 0xEBE1, - 21536 - 19968: 0xF8C5, - 21542 - 19968: 0xDCFA, - 21545 - 19968: 0xDDC3, - 21547 - 19968: 0xF9DF, - 21555 - 19968: 0xE7EF, - 21560 - 19968: 0xFDE5, - 21561 - 19968: 0xF6A3, - 21563 - 19968: 0xD9FC, - 21564 - 19968: 0xFDA9, - 21566 - 19968: 0xE7EE, - 21570 - 19968: 0xD5E5, - 21576 - 19968: 0xEFD0, - 21578 - 19968: 0xCDB1, - 21585 - 19968: 0xF7A2, - 21608 - 19968: 0xF1B2, - 21610 - 19968: 0xF1B1, - 21617 - 19968: 0xCDB2, - 21619 - 19968: 0xDAAB, - 21621 - 19968: 0xCAA7, - 21627 - 19968: 0xE3E2, - 21628 - 19968: 0xFBBC, - 21629 - 19968: 0xD9A4, - 21632 - 19968: 0xEEBA, - 21638 - 19968: 0xF8D3, - 21644 - 19968: 0xFBFA, - 21646 - 19968: 0xCFA4, - 21648 - 19968: 0xDCFB, - 21668 - 19968: 0xF6E3, - 21672 - 19968: 0xEDAA, - 21675 - 19968: 0xF2A1, - 21676 - 19968: 0xCEE1, - 21683 - 19968: 0xFAA6, - 21688 - 19968: 0xF9E0, - 21693 - 19968: 0xECD6, - 21696 - 19968: 0xE4EE, - 21697 - 19968: 0xF9A1, - 21700 - 19968: 0xFBEF, - 21704 - 19968: 0xF9EB, - 21705 - 19968: 0xEEA3, - 21729 - 19968: 0xEAAC, - 21733 - 19968: 0xCAA8, - 21736 - 19968: 0xF4FA, - 21741 - 19968: 0xCDD6, - 21742 - 19968: 0xFCF6, - 21746 - 19968: 0xF4C9, - 21754 - 19968: 0xF8D4, - 21764 - 19968: 0xF8A6, - 21766 - 19968: 0xDECA, - 21767 - 19968: 0xF2C6, - 21774 - 19968: 0xD7DA, - 21776 - 19968: 0xD3D0, - 21788 - 19968: 0xD8C5, - 21807 - 19968: 0xEAE6, - 21809 - 19968: 0xF3DD, - 21813 - 19968: 0xE4DA, - 21822 - 19968: 0xF6E4, - 21828 - 19968: 0xF6F2, - 21830 - 19968: 0xDFC2, - 21839 - 19968: 0xD9FD, - 21843 - 19968: 0xCCF6, - 21846 - 19968: 0xD3BA, - 21854 - 19968: 0xE4AF, - 21859 - 19968: 0xF9E1, - 21884 - 19968: 0xF0A6, - 21888 - 19968: 0xCBD3, - 21892 - 19968: 0xE0BC, - 21894 - 19968: 0xF4CA, - 21895 - 19968: 0xD4FA, - 21897 - 19968: 0xFDAA, - 21898 - 19968: 0xF9E2, - 21912 - 19968: 0xF4B7, - 21913 - 19968: 0xFDC2, - 21914 - 19968: 0xFCB0, - 21916 - 19968: 0xFDEC, - 21917 - 19968: 0xCAE2, - 21927 - 19968: 0xFDBD, - 21929 - 19968: 0xEAE7, - 21930 - 19968: 0xDFC3, - 21931 - 19968: 0xD1D2, - 21932 - 19968: 0xCEE2, - 21934 - 19968: 0xD3A4, - 21957 - 19968: 0xFDAB, - 21959 - 19968: 0xDFE0, - 21972 - 19968: 0xF2C7, - 21978 - 19968: 0xE7F0, - 21980 - 19968: 0xD0EE, - 21983 - 19968: 0xF3AA, - 21987 - 19968: 0xDECB, - 21988 - 19968: 0xF6B8, - 22013 - 19968: 0xE1F5, - 22014 - 19968: 0xF1B3, - 22022 - 19968: 0xF7A3, - 22025 - 19968: 0xCAA9, - 22036 - 19968: 0xCFA5, - 22039 - 19968: 0xDFC4, - 22063 - 19968: 0xE1B0, - 22066 - 19968: 0xF0BF, - 22068 - 19968: 0xF6A4, - 22070 - 19968: 0xE3B6, - 22099 - 19968: 0xFAC6, - 22120 - 19968: 0xD0EF, - 22123 - 19968: 0xFDED, - 22132 - 19968: 0xDDC4, - 22150 - 19968: 0xFCF7, - 22181 - 19968: 0xE6BF, - 22188 - 19968: 0xDEAD, - 22190 - 19968: 0xFABF, - 22196 - 19968: 0xE5F1, - 22204 - 19968: 0xEDC4, - 22218 - 19968: 0xD2A5, - 22221 - 19968: 0xFDEE, - 22225 - 19968: 0xF5B6, - 22234 - 19968: 0xE1F6, - 22235 - 19968: 0xDECC, - 22238 - 19968: 0xFCDE, - 22240 - 19968: 0xECD7, - 22256 - 19968: 0xCDDD, - 22265 - 19968: 0xD6B7, - 22266 - 19968: 0xCDB3, - 22275 - 19968: 0xF8D5, - 22276 - 19968: 0xE5D8, - 22280 - 19968: 0xCFEA, - 22283 - 19968: 0xCFD0, - 22285 - 19968: 0xEACC, - 22290 - 19968: 0xEAAE, - 22291 - 19968: 0xEAAD, - 22294 - 19968: 0xD3F1, - 22296 - 19968: 0xD3A5, - 22303 - 19968: 0xF7CF, - 22312 - 19968: 0xEEA4, - 22317 - 19968: 0xD0A4, - 22320 - 19968: 0xF2A2, - 22331 - 19968: 0xD0F0, - 22336 - 19968: 0xF2A3, - 22338 - 19968: 0xF7F8, - 22343 - 19968: 0xD0B3, - 22346 - 19968: 0xDBA9, - 22349 - 19968: 0xD3BB, - 22350 - 19968: 0xCAEC, - 22352 - 19968: 0xF1A6, - 22353 - 19968: 0xCBD5, - 22369 - 19968: 0xF7E7, - 22372 - 19968: 0xCDDE, - 22374 - 19968: 0xF7A4, - 22378 - 19968: 0xF8C0, - 22382 - 19968: 0xD3DD, - 22384 - 19968: 0xCCD0, - 22389 - 19968: 0xCFA6, - 22396 - 19968: 0xF6F3, - 22402 - 19968: 0xE1F7, - 22408 - 19968: 0xD3DC, - 22411 - 19968: 0xFAFE, - 22419 - 19968: 0xFAA7, - 22432 - 19968: 0xEBD9, - 22434 - 19968: 0xCFA7, - 22435 - 19968: 0xEAAF, - 22467 - 19968: 0xE4EF, - 22471 - 19968: 0xE9B9, - 22472 - 19968: 0xF1D8, - 22475 - 19968: 0xD8D8, - 22478 - 19968: 0xE0F2, - 22495 - 19968: 0xE6B4, - 22496 - 19968: 0xDCFC, - 22512 - 19968: 0xF3F1, - 22516 - 19968: 0xE3D0, - 22519 - 19968: 0xF2FB, - 22521 - 19968: 0xDBC6, - 22522 - 19968: 0xD0F1, - 22524 - 19968: 0xD0F2, - 22528 - 19968: 0xCFDC, - 22530 - 19968: 0xD3D1, - 22533 - 19968: 0xCCB1, - 22534 - 19968: 0xF7D8, - 22536 - 19968: 0xCBA8, - 22537 - 19968: 0xEBBC, - 22538 - 19968: 0xE4BE, - 22558 - 19968: 0xF4DC, - 22561 - 19968: 0xDCC2, - 22564 - 19968: 0xF0A7, - 22567 - 19968: 0xE6C0, - 22570 - 19968: 0xCAED, - 22575 - 19968: 0xE8EB, - 22576 - 19968: 0xE5E8, - 22577 - 19968: 0xDCC3, - 22580 - 19968: 0xEDDE, - 22581 - 19968: 0xD3F2, - 22586 - 19968: 0xCCF7, - 22602 - 19968: 0xCED4, - 22603 - 19968: 0xE7AB, - 22607 - 19968: 0xCBC3, - 22609 - 19968: 0xE1B1, - 22612 - 19968: 0xF7B2, - 22615 - 19968: 0xD3F3, - 22616 - 19968: 0xD3D2, - 22618 - 19968: 0xF5C0, - 22622 - 19968: 0xDFDD, - 22625 - 19968: 0xEEF3, - 22626 - 19968: 0xE7F1, - 22628 - 19968: 0xFDB4, - 22645 - 19968: 0xF2C8, - 22649 - 19968: 0xF3D2, - 22652 - 19968: 0xEEF4, - 22654 - 19968: 0xE2D3, - 22659 - 19968: 0xCCD1, - 22661 - 19968: 0xDFEA, - 22665 - 19968: 0xE9BA, - 22675 - 19968: 0xD9D7, - 22684 - 19968: 0xF5CD, - 22686 - 19968: 0xF1F2, - 22687 - 19968: 0xFAC7, - 22696 - 19968: 0xD9F8, - 22697 - 19968: 0xD4C2, - 22702 - 19968: 0xF6E5, - 22707 - 19968: 0xDDC5, - 22714 - 19968: 0xE7F2, - 22715 - 19968: 0xEDDF, - 22718 - 19968: 0xCACB, - 22721 - 19968: 0xDBFA, - 22725 - 19968: 0xE8B5, - 22727 - 19968: 0xD3A6, - 22734 - 19968: 0xFDB5, - 22737 - 19968: 0xF9C9, - 22739 - 19968: 0xE4E2, - 22741 - 19968: 0xFBBD, - 22744 - 19968: 0xD7A4, - 22745 - 19968: 0xCEC5, - 22750 - 19968: 0xCED5, - 22751 - 19968: 0xD6E6, - 22756 - 19968: 0xE5BD, - 22763 - 19968: 0xDECD, - 22764 - 19968: 0xECF3, - 22767 - 19968: 0xEDE0, - 22777 - 19968: 0xECEC, - 22778 - 19968: 0xFBBE, - 22779 - 19968: 0xDFEB, - 22781 - 19968: 0xE1F8, - 22799 - 19968: 0xF9BE, - 22804 - 19968: 0xD0F3, - 22805 - 19968: 0xE0AA, - 22806 - 19968: 0xE8E2, - 22809 - 19968: 0xE2D4, - 22810 - 19968: 0xD2FD, - 22812 - 19968: 0xE5A8, - 22818 - 19968: 0xD9D3, - 22823 - 19968: 0xD3DE, - 22825 - 19968: 0xF4B8, - 22826 - 19968: 0xF7BC, - 22827 - 19968: 0xDCFD, - 22829 - 19968: 0xE8EC, - 22830 - 19968: 0xE4E7, - 22833 - 19968: 0xE3F7, - 22839 - 19968: 0xECA8, - 22846 - 19968: 0xFAF1, - 22852 - 19968: 0xE5F2, - 22855 - 19968: 0xD0F4, - 22856 - 19968: 0xD2AF, - 22857 - 19968: 0xDCE5, - 22862 - 19968: 0xD0A5, - 22863 - 19968: 0xF1B4, - 22864 - 19968: 0xFCB1, - 22865 - 19968: 0xCCF8, - 22868 - 19968: 0xDDC6, - 22869 - 19968: 0xFAD1, - 22871 - 19968: 0xF7DF, - 22874 - 19968: 0xFAA8, - 22880 - 19968: 0xEEF5, - 22882 - 19968: 0xDECE, - 22887 - 19968: 0xE7F3, - 22890 - 19968: 0xF7AC, - 22891 - 19968: 0xEBC4, - 22892 - 19968: 0xEDE1, - 22893 - 19968: 0xE0AB, - 22894 - 19968: 0xDDC7, - 22899 - 19968: 0xD2B3, - 22900 - 19968: 0xD2BF, - 22904 - 19968: 0xCACC, - 22909 - 19968: 0xFBBF, - 22914 - 19968: 0xE5FD, - 22915 - 19968: 0xDDE5, - 22916 - 19968: 0xD8CD, - 22922 - 19968: 0xECF4, - 22931 - 19968: 0xD0F5, - 22934 - 19968: 0xE8ED, - 22935 - 19968: 0xD0D2, - 22937 - 19968: 0xD9D8, - 22949 - 19968: 0xF6E6, - 22952 - 19968: 0xDBAA, - 22956 - 19968: 0xF7E0, - 22969 - 19968: 0xD8D9, - 22971 - 19968: 0xF4A3, - 22974 - 19968: 0xF4DD, - 22979 - 19968: 0xEFD1, - 22982 - 19968: 0xD9B5, - 22985 - 19968: 0xEDAB, - 22987 - 19968: 0xE3B7, - 22992 - 19968: 0xEEBB, - 22993 - 19968: 0xCDB4, - 22995 - 19968: 0xE0F3, - 22996 - 19968: 0xEACD, - 23001 - 19968: 0xECF5, - 23002 - 19968: 0xE8EE, - 23004 - 19968: 0xCBA9, - 23005 - 19968: 0xF1AF, - 23014 - 19968: 0xCACD, - 23016 - 19968: 0xECA9, - 23018 - 19968: 0xF2EB, - 23020 - 19968: 0xFDEF, - 23022 - 19968: 0xF9F3, - 23032 - 19968: 0xE6C1, - 23035 - 19968: 0xECD8, - 23039 - 19968: 0xEDAC, - 23041 - 19968: 0xEACE, - 23043 - 19968: 0xE8DF, - 23057 - 19968: 0xDECF, - 23064 - 19968: 0xD2A6, - 23067 - 19968: 0xE7F4, - 23068 - 19968: 0xD1D6, - 23071 - 19968: 0xE6C2, - 23072 - 19968: 0xE3E3, - 23077 - 19968: 0xE4B0, - 23081 - 19968: 0xD8B4, - 23094 - 19968: 0xF6A5, - 23100 - 19968: 0xF3DE, - 23105 - 19968: 0xD7A5, - 23110 - 19968: 0xF7E8, - 23113 - 19968: 0xE8C6, - 23130 - 19968: 0xFBE6, - 23138 - 19968: 0xDDE6, - 23142 - 19968: 0xDCFE, - 23186 - 19968: 0xD8DA, - 23194 - 19968: 0xDAAC, - 23195 - 19968: 0xEAB0, - 23204 - 19968: 0xE3B8, - 23233 - 19968: 0xCAAA, - 23234 - 19968: 0xE1F9, - 23236 - 19968: 0xEAB1, - 23241 - 19968: 0xF2EC, - 23244 - 19968: 0xFAEE, - 23265 - 19968: 0xEED5, - 23270 - 19968: 0xF9F4, - 23273 - 19968: 0xD2EC, - 23301 - 19968: 0xFBFB, - 23305 - 19968: 0xFDF0, - 23307 - 19968: 0xE0BD, - 23308 - 19968: 0xCEE3, - 23318 - 19968: 0xF8C6, - 23338 - 19968: 0xDEAE, - 23360 - 19968: 0xDFC5, - 23363 - 19968: 0xE5BE, - 23376 - 19968: 0xEDAD, - 23377 - 19968: 0xFAEA, - 23380 - 19968: 0xCDEE, - 23381 - 19968: 0xEDA6, - 23383 - 19968: 0xEDAE, - 23384 - 19968: 0xF0ED, - 23386 - 19968: 0xDDA1, - 23388 - 19968: 0xEDAF, - 23389 - 19968: 0xFCF8, - 23391 - 19968: 0xD8EB, - 23395 - 19968: 0xCCF9, - 23396 - 19968: 0xCDB5, - 23401 - 19968: 0xFAA9, - 23403 - 19968: 0xE1DD, - 23408 - 19968: 0xE2D5, - 23409 - 19968: 0xEDCF, - 23413 - 19968: 0xDDA2, - 23416 - 19968: 0xF9CA, - 23418 - 19968: 0xEAE8, - 23420 - 19968: 0xE5ED, - 23429 - 19968: 0xD3EB, - 23431 - 19968: 0xE9D4, - 23432 - 19968: 0xE1FA, - 23433 - 19968: 0xE4CC, - 23435 - 19968: 0xE1E4, - 23436 - 19968: 0xE8C7, - 23439 - 19968: 0xCEDB, - 23443 - 19968: 0xDCD5, - 23445 - 19968: 0xF7B5, - 23446 - 19968: 0xFCF3, - 23447 - 19968: 0xF0F3, - 23448 - 19968: 0xCEAF, - 23449 - 19968: 0xF1B5, - 23450 - 19968: 0xEFD2, - 23451 - 19968: 0xE8C8, - 23452 - 19968: 0xEBF1, - 23458 - 19968: 0xCBD4, - 23459 - 19968: 0xE0BE, - 23460 - 19968: 0xE3F8, - 23461 - 19968: 0xEAE9, - 23462 - 19968: 0xFCB2, - 23468 - 19968: 0xE0F4, - 23470 - 19968: 0xCFE0, - 23472 - 19968: 0xEEA5, - 23475 - 19968: 0xFAAA, - 23476 - 19968: 0xE6C3, - 23477 - 19968: 0xE1B2, - 23478 - 19968: 0xCAAB, - 23480 - 19968: 0xE3E4, - 23481 - 19968: 0xE9BB, - 23487 - 19968: 0xE2D6, - 23488 - 19968: 0xF3F2, - 23490 - 19968: 0xEED6, - 23491 - 19968: 0xEAB2, - 23492 - 19968: 0xD0F6, - 23493 - 19968: 0xECD9, - 23494 - 19968: 0xDACB, - 23495 - 19968: 0xCFA8, - 23500 - 19968: 0xDDA3, - 23504 - 19968: 0xD8DB, - 23506 - 19968: 0xF9CE, - 23507 - 19968: 0xE9D5, - 23508 - 19968: 0xE3D1, - 23511 - 19968: 0xD2BC, - 23518 - 19968: 0xD8AC, - 23519 - 19968: 0xF3CC, - 23521 - 19968: 0xCDFB, - 23522 - 19968: 0xF6D6, - 23524 - 19968: 0xE7F5, - 23525 - 19968: 0xE8EF, - 23526 - 19968: 0xE3F9, - 23527 - 19968: 0xD2BB, - 23528 - 19968: 0xF3F3, - 23529 - 19968: 0xE3FB, - 23531 - 19968: 0xDED0, - 23532 - 19968: 0xCEB0, - 23534 - 19968: 0xD6F7, - 23535 - 19968: 0xF1D9, - 23541 - 19968: 0xF5C1, - 23542 - 19968: 0xDCC4, - 23544 - 19968: 0xF5BB, - 23546 - 19968: 0xDED1, - 23553 - 19968: 0xDCE6, - 23556 - 19968: 0xDED2, - 23559 - 19968: 0xEDE2, - 23560 - 19968: 0xEEF6, - 23561 - 19968: 0xEACF, - 23562 - 19968: 0xF0EE, - 23563 - 19968: 0xE3FC, - 23565 - 19968: 0xD3DF, - 23566 - 19968: 0xD3F4, - 23567 - 19968: 0xE1B3, - 23569 - 19968: 0xE1B4, - 23574 - 19968: 0xF4D3, - 23577 - 19968: 0xDFC6, - 23588 - 19968: 0xE9D6, - 23592 - 19968: 0xDBAB, - 23601 - 19968: 0xF6A6, - 23608 - 19968: 0xE3B9, - 23609 - 19968: 0xEBC5, - 23610 - 19968: 0xF4A9, - 23611 - 19968: 0xCDB6, - 23612 - 19968: 0xD2F9, - 23614 - 19968: 0xDAAD, - 23615 - 19968: 0xD2E3, - 23616 - 19968: 0xCFD1, - 23621 - 19968: 0xCBDC, - 23622 - 19968: 0xCCFA, - 23624 - 19968: 0xCFDD, - 23627 - 19968: 0xE8A9, - 23629 - 19968: 0xE3BB, - 23630 - 19968: 0xE3BA, - 23633 - 19968: 0xE0DA, - 23637 - 19968: 0xEEF7, - 23643 - 19968: 0xDCB3, - 23648 - 19968: 0xD3F5, - 23650 - 19968: 0xD7A6, - 23652 - 19968: 0xF6B5, - 23653 - 19968: 0xD7DB, - 23660 - 19968: 0xE1D5, - 23663 - 19968: 0xD4EA, - 23665 - 19968: 0xDFA3, - 23673 - 19968: 0xFDDF, - 23696 - 19968: 0xD0F7, - 23697 - 19968: 0xEDD4, - 23713 - 19968: 0xCBAA, - 23721 - 19968: 0xE4DB, - 23723 - 19968: 0xE1FB, - 23724 - 19968: 0xCBA2, - 23729 - 19968: 0xD3E0, - 23731 - 19968: 0xE4BF, - 23733 - 19968: 0xFBC0, - 23735 - 19968: 0xDABE, - 23736 - 19968: 0xE4CD, - 23738 - 19968: 0xD6B9, - 23742 - 19968: 0xEFC0, - 23744 - 19968: 0xE1FC, - 23769 - 19968: 0xF6B9, - 23776 - 19968: 0xDFC7, - 23784 - 19968: 0xE4B1, - 23791 - 19968: 0xDCE7, - 23792 - 19968: 0xDCE8, - 23796 - 19968: 0xFAD6, - 23798 - 19968: 0xD3F6, - 23803 - 19968: 0xF1DA, - 23805 - 19968: 0xFAF2, - 23815 - 19968: 0xE2FD, - 23821 - 19968: 0xD5CF, - 23822 - 19968: 0xD0F8, - 23825 - 19968: 0xCDDF, - 23828 - 19968: 0xF5CB, - 23830 - 19968: 0xE4F0, - 23831 - 19968: 0xCBAB, - 23833 - 19968: 0xD7C4, - 23847 - 19968: 0xE2FE, - 23849 - 19968: 0xDDDA, - 23883 - 19968: 0xDAAE, - 23884 - 19968: 0xCAEE, - 23888 - 19968: 0xD5B9, - 23913 - 19968: 0xE3A1, - 23916 - 19968: 0xE8E3, - 23919 - 19968: 0xF3AB, - 23943 - 19968: 0xCFA9, - 23947 - 19968: 0xD3F7, - 23965 - 19968: 0xD4F1, - 23968 - 19968: 0xCEE4, - 23970 - 19968: 0xE8F2, - 23978 - 19968: 0xE5F5, - 23992 - 19968: 0xE7AE, - 23994 - 19968: 0xD6BA, - 23996 - 19968: 0xDFEC, - 23997 - 19968: 0xE4C0, - 24013 - 19968: 0xE8E4, - 24018 - 19968: 0xD8B5, - 24022 - 19968: 0xE4DC, - 24029 - 19968: 0xF4B9, - 24030 - 19968: 0xF1B6, - 24033 - 19968: 0xE2DE, - 24034 - 19968: 0xE1B5, - 24037 - 19968: 0xCDEF, - 24038 - 19968: 0xF1A7, - 24039 - 19968: 0xCEE5, - 24040 - 19968: 0xCBDD, - 24043 - 19968: 0xD9E3, - 24046 - 19968: 0xF3AC, - 24049 - 19968: 0xD0F9, - 24050 - 19968: 0xECAB, - 24051 - 19968: 0xDED3, - 24052 - 19968: 0xF7E9, - 24055 - 19968: 0xF9F5, - 24061 - 19968: 0xE1DE, - 24062 - 19968: 0xCBEE, - 24066 - 19968: 0xE3BC, - 24067 - 19968: 0xF8D6, - 24070 - 19968: 0xDBEE, - 24076 - 19968: 0xFDF1, - 24081 - 19968: 0xF7B6, - 24086 - 19968: 0xF4DE, - 24089 - 19968: 0xF2ED, - 24091 - 19968: 0xDBD9, - 24093 - 19968: 0xF0A8, - 24101 - 19968: 0xE1FD, - 24107 - 19968: 0xDED4, - 24109 - 19968: 0xE0AC, - 24115 - 19968: 0xEDE3, - 24118 - 19968: 0xD3E1, - 24120 - 19968: 0xDFC8, - 24125 - 19968: 0xD9B6, - 24127 - 19968: 0xFDAC, - 24128 - 19968: 0xEFD3, - 24132 - 19968: 0xE4C1, - 24133 - 19968: 0xF8EB, - 24135 - 19968: 0xDBAC, - 24140 - 19968: 0xFCC6, - 24149 - 19968: 0xD8AD, - 24159 - 19968: 0xF6BA, - 24161 - 19968: 0xDBDF, - 24162 - 19968: 0xD3D3, - 24163 - 19968: 0xF8C7, - 24178 - 19968: 0xCACE, - 24179 - 19968: 0xF8C1, - 24180 - 19968: 0xD2B4, - 24183 - 19968: 0xDCB4, - 24184 - 19968: 0xFAB9, - 24185 - 19968: 0xCACF, - 24187 - 19968: 0xFCB3, - 24188 - 19968: 0xEAEA, - 24189 - 19968: 0xEAEB, - 24190 - 19968: 0xD0FA, - 24196 - 19968: 0xEDE4, - 24199 - 19968: 0xDDE7, - 24202 - 19968: 0xDFC9, - 24207 - 19968: 0xDFED, - 24213 - 19968: 0xEEBC, - 24215 - 19968: 0xEFC1, - 24218 - 19968: 0xCCD2, - 24220 - 19968: 0xDDA4, - 24224 - 19968: 0xDFCA, - 24230 - 19968: 0xD3F8, - 24231 - 19968: 0xF1A8, - 24235 - 19968: 0xCDB7, - 24237 - 19968: 0xEFD4, - 24245 - 19968: 0xE4DD, - 24246 - 19968: 0xDFEE, - 24247 - 19968: 0xCBAC, - 24248 - 19968: 0xE9BC, - 24254 - 19968: 0xEAEC, - 24258 - 19968: 0xDFCB, - 24264 - 19968: 0xF9BF, - 24265 - 19968: 0xD6AF, - 24266 - 19968: 0xD5C6, - 24272 - 19968: 0xCFAA, - 24275 - 19968: 0xCEA9, - 24278 - 19968: 0xD6F8, - 24282 - 19968: 0xF1B7, - 24283 - 19968: 0xEEF8, - 24287 - 19968: 0xD9D9, - 24288 - 19968: 0xF3DF, - 24290 - 19968: 0xF8C8, - 24291 - 19968: 0xCEC6, - 24300 - 19968: 0xD5E6, - 24307 - 19968: 0xF4E6, - 24310 - 19968: 0xE6C5, - 24311 - 19968: 0xEFD5, - 24314 - 19968: 0xCBEF, - 24315 - 19968: 0xFCDF, - 24321 - 19968: 0xDCA7, - 24324 - 19968: 0xD6E7, - 24330 - 19968: 0xF8C9, - 24335 - 19968: 0xE3D2, - 24337 - 19968: 0xE3BD, - 24339 - 19968: 0xCFE1, - 24340 - 19968: 0xF0C0, - 24341 - 19968: 0xECDA, - 24343 - 19968: 0xDDD7, - 24344 - 19968: 0xFBF0, - 24347 - 19968: 0xECAC, - 24351 - 19968: 0xF0A9, - 24358 - 19968: 0xFAD7, - 24359 - 19968: 0xFBC1, - 24361 - 19968: 0xD2C0, - 24369 - 19968: 0xE5B0, - 24373 - 19968: 0xEDE5, - 24378 - 19968: 0xCBAD, - 24380 - 19968: 0xF9B0, - 24392 - 19968: 0xF7A5, - 24394 - 19968: 0xCBAE, - 24396 - 19968: 0xDAAF, - 24398 - 19968: 0xD8B6, - 24406 - 19968: 0xD3A7, - 24407 - 19968: 0xFBB2, - 24409 - 19968: 0xFDC4, - 24411 - 19968: 0xECAD, - 24418 - 19968: 0xFBA1, - 24422 - 19968: 0xE5E9, - 24423 - 19968: 0xE9EE, - 24425 - 19968: 0xF3F4, - 24426 - 19968: 0xF8F3, - 24427 - 19968: 0xF0C1, - 24428 - 19968: 0xDEAF, - 24429 - 19968: 0xF8B0, - 24432 - 19968: 0xF3E0, - 24433 - 19968: 0xE7AF, - 24439 - 19968: 0xDBAD, - 24441 - 19968: 0xE6B5, - 24444 - 19968: 0xF9A8, - 24447 - 19968: 0xDDD8, - 24448 - 19968: 0xE8D9, - 24449 - 19968: 0xEFD6, - 24453 - 19968: 0xD3E2, - 24455 - 19968: 0xE2DF, - 24458 - 19968: 0xFCE0, - 24459 - 19968: 0xD7C8, - 24460 - 19968: 0xFDAD, - 24464 - 19968: 0xDFEF, - 24465 - 19968: 0xCCD3, - 24466 - 19968: 0xD3F9, - 24471 - 19968: 0xD4F0, - 24472 - 19968: 0xDBC7, - 24473 - 19968: 0xDED5, - 24478 - 19968: 0xF0F4, - 24480 - 19968: 0xD5D0, - 24481 - 19968: 0xE5D9, - 24488 - 19968: 0xFCC7, - 24489 - 19968: 0xDCD6, - 24490 - 19968: 0xE2E0, - 24494 - 19968: 0xDAB0, - 24501 - 19968: 0xF3A3, - 24503 - 19968: 0xD3EC, - 24505 - 19968: 0xF4CB, - 24509 - 19968: 0xFDC5, - 24515 - 19968: 0xE3FD, - 24517 - 19968: 0xF9B1, - 24524 - 19968: 0xD0FB, - 24525 - 19968: 0xECDB, - 24534 - 19968: 0xF5BC, - 24535 - 19968: 0xF2A4, - 24536 - 19968: 0xD8CE, - 24537 - 19968: 0xD8CF, - 24544 - 19968: 0xF5F7, - 24555 - 19968: 0xF6E1, - 24565 - 19968: 0xD2B7, - 24573 - 19968: 0xFBEC, - 24575 - 19968: 0xDDC8, - 24591 - 19968: 0xE4E8, - 24594 - 19968: 0xD2C1, - 24598 - 19968: 0xF8D7, - 24604 - 19968: 0xD6BB, - 24605 - 19968: 0xDED6, - 24608 - 19968: 0xF7BD, - 24609 - 19968: 0xECAE, - 24613 - 19968: 0xD0E1, - 24615 - 19968: 0xE0F5, - 24616 - 19968: 0xEAB3, - 24618 - 19968: 0xCED6, - 24623 - 19968: 0xCCA5, - 24641 - 19968: 0xECF6, - 24642 - 19968: 0xE2E1, - 24643 - 19968: 0xE3BE, - 24653 - 19968: 0xFCC8, - 24656 - 19968: 0xCDF0, - 24658 - 19968: 0xF9F6, - 24661 - 19968: 0xDFF0, - 24665 - 19968: 0xE5BF, - 24669 - 19968: 0xCEBF, - 24674 - 19968: 0xFCE1, - 24675 - 19968: 0xEDB0, - 24676 - 19968: 0xFDD1, - 24677 - 19968: 0xF6BB, - 24680 - 19968: 0xF9CF, - 24681 - 19968: 0xEBDA, - 24682 - 19968: 0xCAC1, - 24684 - 19968: 0xD2B8, - 24685 - 19968: 0xCDF1, - 24687 - 19968: 0xE3D3, - 24688 - 19968: 0xFDE6, - 24709 - 19968: 0xE6ED, - 24713 - 19968: 0xE3FA, - 24716 - 19968: 0xF0AA, - 24717 - 19968: 0xF9D0, - 24724 - 19968: 0xFCE2, - 24726 - 19968: 0xF8A7, - 24730 - 19968: 0xE1E5, - 24731 - 19968: 0xEEF9, - 24735 - 19968: 0xE7F6, - 24736 - 19968: 0xEAED, - 24739 - 19968: 0xFCB4, - 24740 - 19968: 0xF5C2, - 24743 - 19968: 0xD7DC, - 24752 - 19968: 0xF0F5, - 24754 - 19968: 0xDDE8, - 24755 - 19968: 0xD3ED, - 24756 - 19968: 0xF5FC, - 24758 - 19968: 0xDABF, - 24760 - 19968: 0xCCFB, - 24764 - 19968: 0xD3FA, - 24765 - 19968: 0xF4A4, - 24773 - 19968: 0xEFD7, - 24775 - 19968: 0xD4C3, - 24785 - 19968: 0xFBE3, - 24794 - 19968: 0xFBED, - 24796 - 19968: 0xE0AD, - 24799 - 19968: 0xEAEE, - 24800 - 19968: 0xFBB3, - 24801 - 19968: 0xE4C2, - 24816 - 19968: 0xF6E7, - 24817 - 19968: 0xD2DD, - 24819 - 19968: 0xDFCC, - 24822 - 19968: 0xFCC9, - 24825 - 19968: 0xE5A9, - 24826 - 19968: 0xE0F6, - 24827 - 19968: 0xF6B3, - 24833 - 19968: 0xE1FE, - 24838 - 19968: 0xCBF0, - 24840 - 19968: 0xEAEF, - 24841 - 19968: 0xEAF0, - 24845 - 19968: 0xDAC0, - 24846 - 19968: 0xF8B4, - 24847 - 19968: 0xEBF2, - 24853 - 19968: 0xE4C3, - 24858 - 19968: 0xE9D7, - 24859 - 19968: 0xE4F1, - 24863 - 19968: 0xCAEF, - 24871 - 19968: 0xCED7, - 24880 - 19968: 0xFCCA, - 24884 - 19968: 0xF3E1, - 24887 - 19968: 0xCBC4, - 24892 - 19968: 0xE3E5, - 24894 - 19968: 0xCBC5, - 24895 - 19968: 0xEAB4, - 24898 - 19968: 0xE9BD, - 24900 - 19968: 0xD7C9, - 24903 - 19968: 0xEBDB, - 24904 - 19968: 0xEDB1, - 24906 - 19968: 0xCCC3, - 24907 - 19968: 0xF7BE, - 24908 - 19968: 0xFCCB, - 24915 - 19968: 0xF8F4, - 24917 - 19968: 0xD9B7, - 24920 - 19968: 0xF3D3, - 24921 - 19968: 0xF3D4, - 24925 - 19968: 0xF7E4, - 24927 - 19968: 0xF7D1, - 24930 - 19968: 0xD8B7, - 24931 - 19968: 0xCEB1, - 24932 - 19968: 0xCAC2, - 24935 - 19968: 0xFBB4, - 24936 - 19968: 0xCBC6, - 24939 - 19968: 0xF0F6, - 24942 - 19968: 0xD5E7, - 24944 - 19968: 0xEAD0, - 24950 - 19968: 0xCCD4, - 24951 - 19968: 0xCBAF, - 24957 - 19968: 0xF4AA, - 24958 - 19968: 0xE9AF, - 24961 - 19968: 0xF5C3, - 24962 - 19968: 0xE9D8, - 24970 - 19968: 0xDDE9, - 24974 - 19968: 0xF1F3, - 24976 - 19968: 0xD5FB, - 24977 - 19968: 0xDEBB, - 24980 - 19968: 0xF4FB, - 24984 - 19968: 0xFDF3, - 24985 - 19968: 0xFDF2, - 24986 - 19968: 0xF7A6, - 24996 - 19968: 0xDDC9, - 24999 - 19968: 0xD4D3, - 25001 - 19968: 0xCCA8, - 25003 - 19968: 0xDAC1, - 25004 - 19968: 0xCCD5, - 25006 - 19968: 0xD9E4, - 25010 - 19968: 0xFACA, - 25014 - 19968: 0xE5E3, - 25018 - 19968: 0xD3BC, - 25022 - 19968: 0xCAF0, - 25027 - 19968: 0xD0C4, - 25031 - 19968: 0xCAD0, - 25032 - 19968: 0xFAAB, - 25033 - 19968: 0xEBEB, - 25034 - 19968: 0xE7F8, - 25035 - 19968: 0xD9E5, - 25062 - 19968: 0xD1D7, - 25074 - 19968: 0xF3A4, - 25078 - 19968: 0xD4FB, - 25079 - 19968: 0xFCE3, - 25080 - 19968: 0xFAD8, - 25082 - 19968: 0xF3D5, - 25084 - 19968: 0xCFAB, - 25087 - 19968: 0xEBF3, - 25088 - 19968: 0xD5FC, - 25095 - 19968: 0xD3D4, - 25096 - 19968: 0xCDFC, - 25098 - 19968: 0xD9E6, - 25100 - 19968: 0xE2F9, - 25101 - 19968: 0xE2A1, - 25102 - 19968: 0xEBD4, - 25104 - 19968: 0xE0F7, - 25105 - 19968: 0xE4B2, - 25106 - 19968: 0xCCFC, - 25110 - 19968: 0xFBE4, - 25114 - 19968: 0xF4AB, - 25119 - 19968: 0xD0BD, - 25121 - 19968: 0xCAF1, - 25130 - 19968: 0xEFB8, - 25134 - 19968: 0xD7C0, - 25136 - 19968: 0xEEFA, - 25137 - 19968: 0xFDF4, - 25140 - 19968: 0xD3E3, - 25142 - 19968: 0xFBC2, - 25150 - 19968: 0xD5E8, - 25151 - 19968: 0xDBAE, - 25152 - 19968: 0xE1B6, - 25153 - 19968: 0xF8B7, - 25159 - 19968: 0xE0BF, - 25160 - 19968: 0xFBC3, - 25161 - 19968: 0xDDEA, - 25163 - 19968: 0xE2A2, - 25165 - 19968: 0xEEA6, - 25171 - 19968: 0xF6E8, - 25176 - 19968: 0xF6F5, - 25198 - 19968: 0xDDCA, - 25201 - 19968: 0xD0E2, - 25206 - 19968: 0xDDA6, - 25209 - 19968: 0xDDEB, - 25212 - 19968: 0xE4F9, - 25215 - 19968: 0xE3AF, - 25216 - 19968: 0xD0FC, - 25220 - 19968: 0xF4FC, - 25225 - 19968: 0xCCBC, - 25226 - 19968: 0xF7EA, - 25233 - 19968: 0xE5E4, - 25234 - 19968: 0xDFF1, - 25237 - 19968: 0xF7E1, - 25239 - 19968: 0xF9F7, - 25240 - 19968: 0xEFB9, - 25243 - 19968: 0xF8D8, - 25259 - 19968: 0xF9A9, - 25265 - 19968: 0xF8D9, - 25269 - 19968: 0xEEBD, - 25273 - 19968: 0xD8C6, - 25276 - 19968: 0xE4E3, - 25277 - 19968: 0xF5CE, - 25282 - 19968: 0xDDD9, - 25287 - 19968: 0xD9E7, - 25288 - 19968: 0xD2B9, - 25289 - 19968: 0xD5C3, - 25292 - 19968: 0xDAE5, - 25293 - 19968: 0xDAD0, - 25295 - 19968: 0xD1D9, - 25296 - 19968: 0xCED8, - 25298 - 19968: 0xCBDE, - 25299 - 19968: 0xF4AC, - 25300 - 19968: 0xDAFB, - 25302 - 19968: 0xF6E9, - 25303 - 19968: 0xE8F3, - 25304 - 19968: 0xCFAC, - 25305 - 19968: 0xF0F0, - 25307 - 19968: 0xF4FD, - 25308 - 19968: 0xDBC8, - 25324 - 19968: 0xCEC0, - 25325 - 19968: 0xE3D4, - 25326 - 19968: 0xD1CF, - 25327 - 19968: 0xF1F5, - 25329 - 19968: 0xCDF2, - 25331 - 19968: 0xCFEB, - 25335 - 19968: 0xCDB8, - 25342 - 19968: 0xE3A6, - 25343 - 19968: 0xD1DA, - 25345 - 19968: 0xF2A5, - 25351 - 19968: 0xF2A6, - 25353 - 19968: 0xE4CE, - 25361 - 19968: 0xD3FB, - 25387 - 19968: 0xF1A9, - 25391 - 19968: 0xF2C9, - 25402 - 19968: 0xEFD8, - 25403 - 19968: 0xE6C9, - 25405 - 19968: 0xD8B8, - 25406 - 19968: 0xFAF3, - 25417 - 19968: 0xF3B5, - 25420 - 19968: 0xF8A4, - 25423 - 19968: 0xD1F3, - 25424 - 19968: 0xE6C8, - 25429 - 19968: 0xF8DA, - 25447 - 19968: 0xDCE9, - 25448 - 19968: 0xDED7, - 25454 - 19968: 0xCBDF, - 25458 - 19968: 0xCFEC, - 25463 - 19968: 0xF4DF, - 25466 - 19968: 0xD1F4, - 25467 - 19968: 0xD2BA, - 25471 - 19968: 0xDFF2, - 25475 - 19968: 0xE1B7, - 25480 - 19968: 0xE2A3, - 25481 - 19968: 0xD3FC, - 25484 - 19968: 0xEDE6, - 25490 - 19968: 0xDBC9, - 25494 - 19968: 0xE4FA, - 25496 - 19968: 0xCFDE, - 25499 - 19968: 0xCED0, - 25504 - 19968: 0xD5D3, - 25505 - 19968: 0xF3F5, - 25506 - 19968: 0xF7AE, - 25509 - 19968: 0xEFC8, - 25511 - 19968: 0xCDF3, - 25512 - 19968: 0xF5CF, - 25513 - 19968: 0xE5F3, - 25514 - 19968: 0xF0C2, - 25536 - 19968: 0xCAD1, - 25540 - 19968: 0xEAF1, - 25542 - 19968: 0xD0A6, - 25551 - 19968: 0xD9DA, - 25552 - 19968: 0xF0AB, - 25558 - 19968: 0xEBE7, - 25562 - 19968: 0xE5C0, - 25563 - 19968: 0xFCB5, - 25569 - 19968: 0xE4C4, - 25581 - 19968: 0xCCA9, - 25582 - 19968: 0xFDC6, - 25588 - 19968: 0xEAB5, - 25590 - 19968: 0xE5AA, - 25591 - 19968: 0xDFBA, - 25613 - 19968: 0xE1DF, - 25615 - 19968: 0xDAD1, - 25620 - 19968: 0xE1B8, - 25622 - 19968: 0xE8F4, - 25623 - 19968: 0xD3FD, - 25628 - 19968: 0xE2A4, - 25634 - 19968: 0xF2CA, - 25644 - 19968: 0xDAE6, - 25645 - 19968: 0xF7B3, - 25658 - 19968: 0xFDCD, - 25662 - 19968: 0xF3B6, - 25688 - 19968: 0xEED7, - 25696 - 19968: 0xF5C4, - 25705 - 19968: 0xD8A4, - 25711 - 19968: 0xF2A7, - 25720 - 19968: 0xD9B8, - 25721 - 19968: 0xD9B9, - 25722 - 19968: 0xEFC9, - 25736 - 19968: 0xD6CE, - 25745 - 19968: 0xF7CB, - 25746 - 19968: 0xDFAE, - 25747 - 19968: 0xE8F5, - 25754 - 19968: 0xD2B5, - 25758 - 19968: 0xD3D5, - 25764 - 19968: 0xF4CC, - 25765 - 19968: 0xDAFC, - 25771 - 19968: 0xD9E8, - 25773 - 19968: 0xF7EB, - 25774 - 19968: 0xF5C9, - 25776 - 19968: 0xF3BC, - 25778 - 19968: 0xDAD2, - 25787 - 19968: 0xD3B5, - 25793 - 19968: 0xE8B6, - 25796 - 19968: 0xD6CF, - 25797 - 19968: 0xF4BA, - 25799 - 19968: 0xF7C9, - 25802 - 19968: 0xCCAA, - 25805 - 19968: 0xF0C3, - 25806 - 19968: 0xCCD6, - 25810 - 19968: 0xD0D3, - 25812 - 19968: 0xD3BD, - 25816 - 19968: 0xDBFB, - 25818 - 19968: 0xCBE0, - 25825 - 19968: 0xD3E4, - 25826 - 19968: 0xF6F7, - 25829 - 19968: 0xD5BA, - 25830 - 19968: 0xF3CD, - 25831 - 19968: 0xCBE1, - 25836 - 19968: 0xEBF4, - 25842 - 19968: 0xF4AD, - 25844 - 19968: 0xFCAA, - 25850 - 19968: 0xF7EC, - 25854 - 19968: 0xE8F6, - 25856 - 19968: 0xDAE7, - 25860 - 19968: 0xF7CC, - 25880 - 19968: 0xE5C1, - 25885 - 19968: 0xE0EE, - 25891 - 19968: 0xD5FD, - 25898 - 19968: 0xCEE6, - 25899 - 19968: 0xFCAB, - 25900 - 19968: 0xD5BB, - 25903 - 19968: 0xF2A8, - 25910 - 19968: 0xE2A5, - 25911 - 19968: 0xCDB9, - 25912 - 19968: 0xEAF2, - 25913 - 19968: 0xCBC7, - 25915 - 19968: 0xCDF4, - 25918 - 19968: 0xDBAF, - 25919 - 19968: 0xEFD9, - 25925 - 19968: 0xCDBA, - 25928 - 19968: 0xFCF9, - 25933 - 19968: 0xDFF3, - 25934 - 19968: 0xCEE7, - 25935 - 19968: 0xDAC2, - 25937 - 19968: 0xCFAD, - 25942 - 19968: 0xE7F9, - 25943 - 19968: 0xF8A8, - 25950 - 19968: 0xF3E2, - 25954 - 19968: 0xCAF2, - 25955 - 19968: 0xDFA4, - 25958 - 19968: 0xD4C4, - 25964 - 19968: 0xCCD7, - 25965 - 19968: 0xE5C2, - 25970 - 19968: 0xCDBB, - 25972 - 19968: 0xEFDA, - 25973 - 19968: 0xEED8, - 25975 - 19968: 0xDDA7, - 25976 - 19968: 0xE2A6, - 25982 - 19968: 0xE0C0, - 25986 - 19968: 0xD6B0, - 25987 - 19968: 0xF8CA, - 25989 - 19968: 0xFCFA, - 25991 - 19968: 0xD9FE, - 25996 - 19968: 0xDEB0, - 26000 - 19968: 0xDDEC, - 26001 - 19968: 0xDAE8, - 26007 - 19968: 0xD4E0, - 26009 - 19968: 0xD6F9, - 26011 - 19968: 0xCDD7, - 26012 - 19968: 0xDED8, - 26015 - 19968: 0xF2F8, - 26017 - 19968: 0xE4D6, - 26020 - 19968: 0xD0C5, - 26021 - 19968: 0xF4AE, - 26023 - 19968: 0xDDA8, - 26027 - 19968: 0xEDC5, - 26028 - 19968: 0xF3D6, - 26031 - 19968: 0xDED9, - 26032 - 19968: 0xE3E6, - 26039 - 19968: 0xD3A8, - 26041 - 19968: 0xDBB0, - 26044 - 19968: 0xE5DA, - 26045 - 19968: 0xE3BF, - 26049 - 19968: 0xDBB1, - 26053 - 19968: 0xD5E9, - 26059 - 19968: 0xE0C1, - 26060 - 19968: 0xEFDB, - 26063 - 19968: 0xF0E9, - 26066 - 19968: 0xD7B2, - 26071 - 19968: 0xD0FD, - 26080 - 19968: 0xD9E9, - 26083 - 19968: 0xD0FE, - 26085 - 19968: 0xECED, - 26086 - 19968: 0xD3A9, - 26088 - 19968: 0xF2A9, - 26089 - 19968: 0xF0C4, - 26092 - 19968: 0xE2E2, - 26093 - 19968: 0xE9EF, - 26097 - 19968: 0xF9D1, - 26100 - 19968: 0xE9D9, - 26106 - 19968: 0xE8DA, - 26107 - 19968: 0xDAC3, - 26108 - 19968: 0xDAC4, - 26109 - 19968: 0xD4C5, - 26111 - 19968: 0xE7FA, - 26118 - 19968: 0xCDE0, - 26119 - 19968: 0xE3B0, - 26121 - 19968: 0xDBB2, - 26122 - 19968: 0xFBC4, - 26124 - 19968: 0xF3E3, - 26126 - 19968: 0xD9A5, - 26127 - 19968: 0xFBE7, - 26128 - 19968: 0xDDCB, - 26129 - 19968: 0xD0D4, - 26131 - 19968: 0xE6B6, - 26132 - 19968: 0xE0AE, - 26133 - 19968: 0xFDDA, - 26142 - 19968: 0xDCB5, - 26143 - 19968: 0xE0F8, - 26144 - 19968: 0xE7B1, - 26149 - 19968: 0xF5F0, - 26151 - 19968: 0xD8DC, - 26152 - 19968: 0xEDC6, - 26157 - 19968: 0xE1B9, - 26159 - 19968: 0xE3C0, - 26160 - 19968: 0xF9C0, - 26161 - 19968: 0xE9F0, - 26164 - 19968: 0xD9DB, - 26166 - 19968: 0xF3E4, - 26170 - 19968: 0xDCB6, - 26171 - 19968: 0xE4E9, - 26177 - 19968: 0xF0C5, - 26178 - 19968: 0xE3C1, - 26179 - 19968: 0xFCCC, - 26180 - 19968: 0xFCCD, - 26185 - 19968: 0xF2CB, - 26187 - 19968: 0xF2CC, - 26191 - 19968: 0xE4CF, - 26201 - 19968: 0xF1DB, - 26203 - 19968: 0xFAD9, - 26205 - 19968: 0xF1B8, - 26206 - 19968: 0xFDF5, - 26207 - 19968: 0xE0F9, - 26212 - 19968: 0xE7FB, - 26213 - 19968: 0xFCB7, - 26214 - 19968: 0xFCE4, - 26215 - 19968: 0xFBC5, - 26216 - 19968: 0xE3E7, - 26217 - 19968: 0xD8B9, - 26219 - 19968: 0xF6F8, - 26222 - 19968: 0xDCC5, - 26223 - 19968: 0xCCD8, - 26227 - 19968: 0xE0AF, - 26228 - 19968: 0xF4E7, - 26230 - 19968: 0xEFDC, - 26231 - 19968: 0xCFFC, - 26232 - 19968: 0xEFDD, - 26234 - 19968: 0xF2AA, - 26244 - 19968: 0xFDBE, - 26247 - 19968: 0xCAAC, - 26248 - 19968: 0xFDBB, - 26249 - 19968: 0xFDC7, - 26254 - 19968: 0xE7B2, - 26256 - 19968: 0xEAD1, - 26257 - 19968: 0xDFF4, - 26262 - 19968: 0xD1EC, - 26263 - 19968: 0xE4DE, - 26264 - 19968: 0xE5C3, - 26269 - 19968: 0xD9A6, - 26272 - 19968: 0xCDBC, - 26274 - 19968: 0xF3E5, - 26283 - 19968: 0xEDD5, - 26286 - 19968: 0xD9BA, - 26290 - 19968: 0xEDE7, - 26291 - 19968: 0xFBB5, - 26292 - 19968: 0xF8EC, - 26297 - 19968: 0xE0E7, - 26299 - 19968: 0xCCD9, - 26302 - 19968: 0xD4C6, - 26308 - 19968: 0xE7A5, - 26310 - 19968: 0xD5F5, - 26311 - 19968: 0xD3BE, - 26313 - 19968: 0xFCFB, - 26326 - 19968: 0xE4F2, - 26329 - 19968: 0xDFF5, - 26332 - 19968: 0xE8F8, - 26333 - 19968: 0xF8ED, - 26336 - 19968: 0xCEC7, - 26342 - 19968: 0xFDF6, - 26352 - 19968: 0xE8D8, - 26354 - 19968: 0xCDD8, - 26355 - 19968: 0xE7D6, - 26356 - 19968: 0xCCDA, - 26359 - 19968: 0xCAE3, - 26360 - 19968: 0xDFF6, - 26361 - 19968: 0xF0C7, - 26362 - 19968: 0xF0C6, - 26364 - 19968: 0xD8BA, - 26366 - 19968: 0xF1F4, - 26367 - 19968: 0xF4F0, - 26368 - 19968: 0xF5CC, - 26371 - 19968: 0xFCE5, - 26376 - 19968: 0xEAC5, - 26377 - 19968: 0xEAF3, - 26379 - 19968: 0xDDDB, - 26381 - 19968: 0xDCD7, - 26388 - 19968: 0xDEFD, - 26389 - 19968: 0xF2F9, - 26391 - 19968: 0xD5C7, - 26395 - 19968: 0xD8D0, - 26397 - 19968: 0xF0C8, - 26398 - 19968: 0xD1A1, - 26399 - 19968: 0xD1A2, - 26406 - 19968: 0xD9D4, - 26407 - 19968: 0xD6E8, - 26408 - 19968: 0xD9CA, - 26410 - 19968: 0xDAB1, - 26411 - 19968: 0xD8C7, - 26412 - 19968: 0xDCE2, - 26413 - 19968: 0xF3CE, - 26414 - 19968: 0xF5F4, - 26417 - 19968: 0xF1B9, - 26420 - 19968: 0xDAD3, - 26422 - 19968: 0xF6EA, - 26426 - 19968: 0xCFF5, - 26429 - 19968: 0xFDAE, - 26438 - 19968: 0xCAD2, - 26441 - 19968: 0xDFB4, - 26446 - 19968: 0xD7DD, - 26447 - 19968: 0xFABA, - 26448 - 19968: 0xEEA7, - 26449 - 19968: 0xF5BD, - 26451 - 19968: 0xF8F5, - 26454 - 19968: 0xEDE8, - 26460 - 19968: 0xD4E1, - 26462 - 19968: 0xD1A3, - 26463 - 19968: 0xE1D6, - 26477 - 19968: 0xF9F8, - 26479 - 19968: 0xDBCA, - 26480 - 19968: 0xCBF9, - 26481 - 19968: 0xD4D4, - 26483 - 19968: 0xD9DC, - 26485 - 19968: 0xEEBE, - 26487 - 19968: 0xF7ED, - 26491 - 19968: 0xD2EE, - 26494 - 19968: 0xE1E6, - 26495 - 19968: 0xF7F9, - 26503 - 19968: 0xDDED, - 26505 - 19968: 0xE8DB, - 26507 - 19968: 0xDBB3, - 26511 - 19968: 0xD1F7, - 26512 - 19968: 0xE0B0, - 26515 - 19968: 0xD4E2, - 26517 - 19968: 0xF6D7, - 26519 - 19968: 0xD7F9, - 26522 - 19968: 0xD8DD, - 26524 - 19968: 0xCDFD, - 26525 - 19968: 0xF2AB, - 26543 - 19968: 0xCDBD, - 26544 - 19968: 0xF8C2, - 26547 - 19968: 0xF2AC, - 26550 - 19968: 0xCAAD, - 26551 - 19968: 0xCAAE, - 26552 - 19968: 0xCFAE, - 26558 - 19968: 0xE3C2, - 26564 - 19968: 0xDCB7, - 26575 - 19968: 0xDBDA, - 26576 - 19968: 0xD9BB, - 26577 - 19968: 0xCAF3, - 26578 - 19968: 0xF6D3, - 26579 - 19968: 0xE6F8, - 26580 - 19968: 0xEAF5, - 26586 - 19968: 0xEAF6, - 26589 - 19968: 0xF6F9, - 26601 - 19968: 0xCFAF, - 26604 - 19968: 0xCAD3, - 26607 - 19968: 0xCAAF, - 26608 - 19968: 0xD2B0, - 26609 - 19968: 0xF1BA, - 26611 - 19968: 0xD7B3, - 26612 - 19968: 0xE3C3, - 26613 - 19968: 0xF3FD, - 26614 - 19968: 0xDEDA, - 26619 - 19968: 0xDEDB, - 26622 - 19968: 0xEFDE, - 26642 - 19968: 0xE2E3, - 26643 - 19968: 0xEEFB, - 26646 - 19968: 0xDFF7, - 26647 - 19968: 0xD7CA, - 26657 - 19968: 0xCEE8, - 26658 - 19968: 0xDBDB, - 26666 - 19968: 0xF1BB, - 26671 - 19968: 0xE9F1, - 26680 - 19968: 0xFAB7, - 26681 - 19968: 0xD0C6, - 26684 - 19968: 0xCCAB, - 26685 - 19968: 0xEEA8, - 26688 - 19968: 0xCBFA, - 26689 - 19968: 0xF9F9, - 26690 - 19968: 0xCCFD, - 26691 - 19968: 0xD3FE, - 26696 - 19968: 0xE4D0, - 26702 - 19968: 0xF2EE, - 26704 - 19968: 0xD4D5, - 26705 - 19968: 0xDFCD, - 26707 - 19968: 0xFCB8, - 26708 - 19968: 0xD1D0, - 26733 - 19968: 0xF2CD, - 26742 - 19968: 0xF7D2, - 26751 - 19968: 0xCAD4, - 26753 - 19968: 0xD5D9, - 26757 - 19968: 0xD8DE, - 26767 - 19968: 0xCDD9, - 26771 - 19968: 0xEEA9, - 26772 - 19968: 0xF6BC, - 26775 - 19968: 0xCCDB, - 26781 - 19968: 0xF0C9, - 26783 - 19968: 0xFCFC, - 26785 - 19968: 0xE8C9, - 26786 - 19968: 0xF4FE, - 26791 - 19968: 0xE7FC, - 26792 - 19968: 0xD7DE, - 26797 - 19968: 0xDEDC, - 26799 - 19968: 0xF0AC, - 26800 - 19968: 0xCCFE, - 26801 - 19968: 0xCDE1, - 26803 - 19968: 0xE1BA, - 26805 - 19968: 0xDBEF, - 26806 - 19968: 0xDAB2, - 26820 - 19968: 0xD1A5, - 26821 - 19968: 0xDCB8, - 26825 - 19968: 0xD8F6, - 26827 - 19968: 0xD1A4, - 26829 - 19968: 0xCDE2, - 26834 - 19968: 0xDCEA, - 26837 - 19968: 0xF0F7, - 26839 - 19968: 0xF0CA, - 26840 - 19968: 0xD0BE, - 26842 - 19968: 0xDDDC, - 26847 - 19968: 0xD4D6, - 26848 - 19968: 0xD3D6, - 26855 - 19968: 0xEDD0, - 26856 - 19968: 0xCDA1, - 26862 - 19968: 0xDFB5, - 26866 - 19968: 0xDFF8, - 26873 - 19968: 0xD4A1, - 26874 - 19968: 0xCEB2, - 26880 - 19968: 0xE8CA, - 26885 - 19968: 0xEBF5, - 26893 - 19968: 0xE3D5, - 26894 - 19968: 0xF5D0, - 26898 - 19968: 0xF5A1, - 26919 - 19968: 0xD9A7, - 26928 - 19968: 0xE5AB, - 26941 - 19968: 0xE6CB, - 26943 - 19968: 0xF5F1, - 26954 - 19968: 0xE5C5, - 26963 - 19968: 0xF9A3, - 26964 - 19968: 0xE0DB, - 26965 - 19968: 0xF6EB, - 26967 - 19968: 0xCBF1, - 26969 - 19968: 0xD9EA, - 26970 - 19968: 0xF5A2, - 26974 - 19968: 0xD7D1, - 26976 - 19968: 0xD1F8, - 26977 - 19968: 0xEAF8, - 26978 - 19968: 0xEAF9, - 26979 - 19968: 0xDAB3, - 26984 - 19968: 0xEFDF, - 26987 - 19968: 0xF1EF, - 26989 - 19968: 0xE5F6, - 26990 - 19968: 0xEEBF, - 26991 - 19968: 0xE2E4, - 26997 - 19968: 0xD0BF, - 26999 - 19968: 0xFAAC, - 27000 - 19968: 0xF5D1, - 27001 - 19968: 0xE7B3, - 27029 - 19968: 0xE9BE, - 27035 - 19968: 0xF2CE, - 27036 - 19968: 0xDBB4, - 27045 - 19968: 0xFCCE, - 27047 - 19968: 0xDDEE, - 27054 - 19968: 0xE7B4, - 27060 - 19968: 0xD7B4, - 27067 - 19968: 0xF7B4, - 27073 - 19968: 0xCDBE, - 27075 - 19968: 0xDAE9, - 27083 - 19968: 0xCFB0, - 27084 - 19968: 0xF7D9, - 27085 - 19968: 0xF3E6, - 27088 - 19968: 0xCED9, - 27112 - 19968: 0xCEAA, - 27114 - 19968: 0xCBC8, - 27131 - 19968: 0xD0A7, - 27133 - 19968: 0xF0CB, - 27135 - 19968: 0xD0C7, - 27138 - 19968: 0xE4C5, - 27146 - 19968: 0xDBE0, - 27153 - 19968: 0xD5DA, - 27155 - 19968: 0xD7A7, - 27159 - 19968: 0xEEC0, - 27161 - 19968: 0xF8F6, - 27166 - 19968: 0xF5D2, - 27167 - 19968: 0xEDE9, - 27169 - 19968: 0xD9BC, - 27171 - 19968: 0xE5C6, - 27189 - 19968: 0xF5A3, - 27192 - 19968: 0xDAD4, - 27193 - 19968: 0xE2A7, - 27194 - 19968: 0xFBFC, - 27197 - 19968: 0xF1DC, - 27204 - 19968: 0xCAF4, - 27208 - 19968: 0xE8FA, - 27211 - 19968: 0xCEE9, - 27218 - 19968: 0xE9F8, - 27219 - 19968: 0xE2E5, - 27224 - 19968: 0xD0B9, - 27225 - 19968: 0xD4F2, - 27231 - 19968: 0xD1A6, - 27233 - 19968: 0xDFCE, - 27243 - 19968: 0xFCF4, - 27264 - 19968: 0xD3AA, - 27268 - 19968: 0xCCAC, - 27273 - 19968: 0xEFE0, - 27277 - 19968: 0xE5E5, - 27278 - 19968: 0xD0D5, - 27287 - 19968: 0xDBFC, - 27292 - 19968: 0xFCE6, - 27298 - 19968: 0xCBFE, - 27299 - 19968: 0xEDEA, - 27315 - 19968: 0xDEB1, - 27323 - 19968: 0xF9E3, - 27330 - 19968: 0xD4A2, - 27331 - 19968: 0xCFF6, - 27347 - 19968: 0xD6D0, - 27354 - 19968: 0xD5EA, - 27355 - 19968: 0xF1EE, - 27382 - 19968: 0xFACB, - 27387 - 19968: 0xE5A1, - 27396 - 19968: 0xD5B1, - 27402 - 19968: 0xCFED, - 27404 - 19968: 0xEDEB, - 27410 - 19968: 0xD5B2, - 27414 - 19968: 0xD5BC, - 27424 - 19968: 0xFDE2, - 27425 - 19968: 0xF3AD, - 27427 - 19968: 0xFDDB, - 27442 - 19968: 0xE9B0, - 27450 - 19968: 0xD1A7, - 27453 - 19968: 0xFDE3, - 27454 - 19968: 0xCEB3, - 27462 - 19968: 0xFDE4, - 27463 - 19968: 0xFACE, - 27468 - 19968: 0xCAB0, - 27470 - 19968: 0xF7A7, - 27472 - 19968: 0xCFB1, - 27487 - 19968: 0xE6A2, - 27489 - 19968: 0xFCB6, - 27490 - 19968: 0xF2AD, - 27491 - 19968: 0xEFE1, - 27492 - 19968: 0xF3AE, - 27493 - 19968: 0xDCC6, - 27494 - 19968: 0xD9EB, - 27498 - 19968: 0xE8E0, - 27506 - 19968: 0xE1A8, - 27511 - 19968: 0xD5F6, - 27512 - 19968: 0xCFFD, - 27515 - 19968: 0xDEDD, - 27519 - 19968: 0xD9D1, - 27523 - 19968: 0xE4EA, - 27524 - 19968: 0xF2CF, - 27526 - 19968: 0xF7BF, - 27529 - 19968: 0xE2E6, - 27530 - 19968: 0xE2A8, - 27542 - 19968: 0xE3D6, - 27544 - 19968: 0xEDD1, - 27550 - 19968: 0xE9F9, - 27566 - 19968: 0xD6B1, - 27567 - 19968: 0xDEB2, - 27570 - 19968: 0xE0E8, - 27573 - 19968: 0xD3AB, - 27575 - 19968: 0xEBDC, - 27578 - 19968: 0xDFAF, - 27580 - 19968: 0xCAC3, - 27583 - 19968: 0xEEFC, - 27585 - 19968: 0xFDC3, - 27589 - 19968: 0xEBF6, - 27590 - 19968: 0xCFB2, - 27595 - 19968: 0xD9EC, - 27597 - 19968: 0xD9BD, - 27599 - 19968: 0xD8DF, - 27602 - 19968: 0xD4B8, - 27603 - 19968: 0xEBBE, - 27604 - 19968: 0xDDEF, - 27606 - 19968: 0xDDF0, - 27607 - 19968: 0xDDF1, - 27608 - 19968: 0xDDF2, - 27611 - 19968: 0xD9BE, - 27627 - 19968: 0xFBC6, - 27628 - 19968: 0xCFB3, - 27656 - 19968: 0xEEFD, - 27663 - 19968: 0xE4AB, - 27665 - 19968: 0xDAC5, - 27667 - 19968: 0xD8EC, - 27683 - 19968: 0xD1A8, - 27700 - 19968: 0xE2A9, - 27703 - 19968: 0xDEBC, - 27704 - 19968: 0xE7B5, - 27710 - 19968: 0xDBF0, - 27712 - 19968: 0xEFE2, - 27713 - 19968: 0xF1F0, - 27714 - 19968: 0xCFB4, - 27726 - 19968: 0xDBF1, - 27728 - 19968: 0xE0B1, - 27733 - 19968: 0xDFA5, - 27735 - 19968: 0xF9D2, - 27738 - 19968: 0xE7FD, - 27741 - 19968: 0xE6A3, - 27742 - 19968: 0xFBF1, - 27743 - 19968: 0xCBB0, - 27744 - 19968: 0xF2AE, - 27752 - 19968: 0xCDE7, - 27754 - 19968: 0xE8DC, - 27757 - 19968: 0xE7D7, - 27760 - 19968: 0xF7C0, - 27762 - 19968: 0xD0E3, - 27766 - 19968: 0xDAA1, - 27770 - 19968: 0xCCBD, - 27773 - 19968: 0xD1A9, - 27774 - 19968: 0xDDCC, - 27777 - 19968: 0xE3FE, - 27778 - 19968: 0xD1AA, - 27779 - 19968: 0xE8AA, - 27781 - 19968: 0xEAB6, - 27782 - 19968: 0xF9FA, - 27783 - 19968: 0xE6CC, - 27784 - 19968: 0xF6D8, - 27788 - 19968: 0xD4C7, - 27792 - 19968: 0xD9CB, - 27794 - 19968: 0xD9D2, - 27795 - 19968: 0xD3CB, - 27796 - 19968: 0xD8F7, - 27797 - 19968: 0xDAA9, - 27798 - 19968: 0xF5F8, - 27801 - 19968: 0xDEDE, - 27802 - 19968: 0xF2AF, - 27803 - 19968: 0xF8A9, - 27819 - 19968: 0xD8C8, - 27822 - 19968: 0xEEC1, - 27827 - 19968: 0xF9C1, - 27832 - 19968: 0xDDF3, - 27833 - 19968: 0xEAFA, - 27835 - 19968: 0xF6BD, - 27836 - 19968: 0xE1BB, - 27837 - 19968: 0xCDBF, - 27838 - 19968: 0xF4D4, - 27839 - 19968: 0xE6CD, - 27841 - 19968: 0xFCCF, - 27842 - 19968: 0xFBA2, - 27844 - 19968: 0xE0DC, - 27849 - 19968: 0xF4BB, - 27850 - 19968: 0xDAD5, - 27852 - 19968: 0xF9B2, - 27859 - 19968: 0xFBF2, - 27861 - 19968: 0xDBF6, - 27863 - 19968: 0xDEDF, - 27867 - 19968: 0xDBF2, - 27873 - 19968: 0xF8DC, - 27874 - 19968: 0xF7EE, - 27875 - 19968: 0xEBE8, - 27877 - 19968: 0xD2FA, - 27880 - 19968: 0xF1BC, - 27883 - 19968: 0xFADA, - 27886 - 19968: 0xDAEA, - 27887 - 19968: 0xDAC6, - 27888 - 19968: 0xF7C1, - 27891 - 19968: 0xE7B6, - 27915 - 19968: 0xE5C7, - 27916 - 19968: 0xD6AC, - 27921 - 19968: 0xDCC7, - 27927 - 19968: 0xE1A9, - 27929 - 19968: 0xE2AA, - 27931 - 19968: 0xD5A6, - 27934 - 19968: 0xD4D7, - 27941 - 19968: 0xF2D0, - 27943 - 19968: 0xEAFB, - 27945 - 19968: 0xE0DD, - 27946 - 19968: 0xFBF3, - 27954 - 19968: 0xF1BD, - 27957 - 19968: 0xE2E7, - 27958 - 19968: 0xFDD7, - 27960 - 19968: 0xCEC8, - 27961 - 19968: 0xEAB7, - 27963 - 19968: 0xFCC0, - 27965 - 19968: 0xFDE7, - 27966 - 19968: 0xF7EF, - 27969 - 19968: 0xD7B5, - 27993 - 19968: 0xEFBA, - 27994 - 19968: 0xF1DD, - 27996 - 19968: 0xDEB3, - 28003 - 19968: 0xE8CB, - 28006 - 19968: 0xF8DD, - 28009 - 19968: 0xFBC7, - 28010 - 19968: 0xD5C8, - 28012 - 19968: 0xD7DF, - 28014 - 19968: 0xDDA9, - 28020 - 19968: 0xE9B1, - 28023 - 19968: 0xFAAD, - 28024 - 19968: 0xF6D9, - 28025 - 19968: 0xFAF4, - 28031 - 19968: 0xF8AA, - 28037 - 19968: 0xE6EE, - 28039 - 19968: 0xCCDC, - 28040 - 19968: 0xE1BC, - 28041 - 19968: 0xE0EF, - 28044 - 19968: 0xE9BF, - 28045 - 19968: 0xFCFD, - 28046 - 19968: 0xE6CE, - 28049 - 19968: 0xE1D7, - 28051 - 19968: 0xE6CF, - 28053 - 19968: 0xF4F1, - 28079 - 19968: 0xE4F3, - 28082 - 19968: 0xE4FB, - 28085 - 19968: 0xF9E4, - 28096 - 19968: 0xEFE3, - 28099 - 19968: 0xCFEE, - 28100 - 19968: 0xF6BE, - 28101 - 19968: 0xE0B2, - 28102 - 19968: 0xFCFE, - 28103 - 19968: 0xD1AB, - 28107 - 19968: 0xD7FA, - 28111 - 19968: 0xFBC8, - 28113 - 19968: 0xE2D7, - 28120 - 19968: 0xD4A3, - 28121 - 19968: 0xF0F8, - 28122 - 19968: 0xD7A8, - 28126 - 19968: 0xE1E7, - 28129 - 19968: 0xD3BF, - 28136 - 19968: 0xEFE4, - 28138 - 19968: 0xD7C5, - 28139 - 19968: 0xEBE2, - 28142 - 19968: 0xFCE7, - 28145 - 19968: 0xE4A2, - 28147 - 19968: 0xE2E8, - 28149 - 19968: 0xE6D0, - 28151 - 19968: 0xFBE8, - 28152 - 19968: 0xF4E8, - 28153 - 19968: 0xE5F4, - 28154 - 19968: 0xF4BC, - 28155 - 19968: 0xF4D5, - 28183 - 19968: 0xDFB6, - 28185 - 19968: 0xFCB9, - 28186 - 19968: 0xEEC2, - 28187 - 19968: 0xCAF5, - 28191 - 19968: 0xEFE5, - 28192 - 19968: 0xCBE2, - 28193 - 19968: 0xD4A4, - 28195 - 19968: 0xDEE0, - 28196 - 19968: 0xDAFD, - 28197 - 19968: 0xE4C6, - 28198 - 19968: 0xE8BE, - 28203 - 19968: 0xE0DE, - 28204 - 19968: 0xF6B4, - 28205 - 19968: 0xEAD2, - 28207 - 19968: 0xF9FB, - 28210 - 19968: 0xE0C2, - 28212 - 19968: 0xCAE4, - 28214 - 19968: 0xE7B7, - 28216 - 19968: 0xEAFD, - 28218 - 19968: 0xD9DD, - 28220 - 19968: 0xDAB4, - 28221 - 19968: 0xEEAA, - 28222 - 19968: 0xFBE9, - 28227 - 19968: 0xDBCB, - 28228 - 19968: 0xDAB5, - 28234 - 19968: 0xF1BE, - 28237 - 19968: 0xD3AC, - 28246 - 19968: 0xFBC9, - 28248 - 19968: 0xDFCF, - 28251 - 19968: 0xD3C0, - 28252 - 19968: 0xE3D7, - 28254 - 19968: 0xEFE6, - 28255 - 19968: 0xFCD0, - 28263 - 19968: 0xE9C0, - 28267 - 19968: 0xF5D3, - 28270 - 19968: 0xECDC, - 28271 - 19968: 0xF7B7, - 28274 - 19968: 0xEAB8, - 28275 - 19968: 0xD1F9, - 28282 - 19968: 0xDCC8, - 28304 - 19968: 0xEAB9, - 28310 - 19968: 0xF1DE, - 28316 - 19968: 0xD7B6, - 28317 - 19968: 0xCFB5, - 28319 - 19968: 0xD9A8, - 28322 - 19968: 0xECEE, - 28325 - 19968: 0xDDAA, - 28330 - 19968: 0xCDA2, - 28331 - 19968: 0xE8AE, - 28335 - 19968: 0xE1BD, - 28337 - 19968: 0xF2D1, - 28342 - 19968: 0xE9C1, - 28346 - 19968: 0xD2FC, - 28354 - 19968: 0xDBB5, - 28356 - 19968: 0xF3E7, - 28357 - 19968: 0xD8FE, - 28361 - 19968: 0xFCD1, - 28363 - 19968: 0xEDB2, - 28364 - 19968: 0xF4AF, - 28366 - 19968: 0xFBA3, - 28369 - 19968: 0xFCC1, - 28371 - 19968: 0xEEAB, - 28372 - 19968: 0xD4A5, - 28399 - 19968: 0xF4F2, - 28404 - 19968: 0xEED9, - 28408 - 19968: 0xFBCA, - 28414 - 19968: 0xCDE3, - 28415 - 19968: 0xD8BB, - 28417 - 19968: 0xE5DB, - 28418 - 19968: 0xF8F7, - 28422 - 19968: 0xF6D4, - 28431 - 19968: 0xD7A9, - 28433 - 19968: 0xCBC9, - 28436 - 19968: 0xE6D1, - 28437 - 19968: 0xF0CC, - 28448 - 19968: 0xD8AE, - 28450 - 19968: 0xF9D3, - 28451 - 19968: 0xD5FE, - 28459 - 19968: 0xD8BC, - 28460 - 19968: 0xF2B0, - 28465 - 19968: 0xE2AB, - 28466 - 19968: 0xF3E8, - 28472 - 19968: 0xEFC2, - 28479 - 19968: 0xEDEC, - 28481 - 19968: 0xE7B8, - 28497 - 19968: 0xDAFE, - 28500 - 19968: 0xCCBE, - 28503 - 19968: 0xF2FC, - 28504 - 19968: 0xDAEB, - 28506 - 19968: 0xE2D8, - 28507 - 19968: 0xEDD6, - 28510 - 19968: 0xD6D1, - 28511 - 19968: 0xE0B3, - 28514 - 19968: 0xFCD2, - 28516 - 19968: 0xEBC8, - 28525 - 19968: 0xD3C1, - 28526 - 19968: 0xF0CD, - 28528 - 19968: 0xCFF7, - 28538 - 19968: 0xEDD2, - 28540 - 19968: 0xD4D8, - 28541 - 19968: 0xDCC9, - 28542 - 19968: 0xD7F1, - 28545 - 19968: 0xDFBB, - 28548 - 19968: 0xF3A5, - 28552 - 19968: 0xF4CD, - 28557 - 19968: 0xF1BF, - 28558 - 19968: 0xF8B1, - 28560 - 19968: 0xE9FA, - 28564 - 19968: 0xFBCB, - 28567 - 19968: 0xCAD5, - 28579 - 19968: 0xF9D4, - 28580 - 19968: 0xF7CA, - 28583 - 19968: 0xD6C8, - 28590 - 19968: 0xFCE8, - 28591 - 19968: 0xF3BD, - 28593 - 19968: 0xEEFE, - 28595 - 19968: 0xE7FE, - 28601 - 19968: 0xD3C2, - 28606 - 19968: 0xD3B6, - 28608 - 19968: 0xCCAD, - 28609 - 19968: 0xF6FA, - 28610 - 19968: 0xD6B2, - 28611 - 19968: 0xD2D8, - 28618 - 19968: 0xE7D8, - 28629 - 19968: 0xE3A5, - 28634 - 19968: 0xE7B9, - 28639 - 19968: 0xF0AD, - 28640 - 19968: 0xFBCC, - 28641 - 19968: 0xEBA1, - 28644 - 19968: 0xD4A6, - 28649 - 19968: 0xFBCD, - 28651 - 19968: 0xD5BD, - 28652 - 19968: 0xF1DF, - 28655 - 19968: 0xF6FB, - 28657 - 19968: 0xDEB4, - 28670 - 19968: 0xD5EB, - 28673 - 19968: 0xE5C8, - 28677 - 19968: 0xFBA4, - 28678 - 19968: 0xD4B9, - 28681 - 19968: 0xDEE1, - 28683 - 19968: 0xE4A3, - 28687 - 19968: 0xD7B7, - 28689 - 19968: 0xF8EE, - 28693 - 19968: 0xDEB5, - 28696 - 19968: 0xD6D2, - 28698 - 19968: 0xF9D5, - 28699 - 19968: 0xE7BA, - 28700 - 19968: 0xEBD5, - 28701 - 19968: 0xD5F7, - 28702 - 19968: 0xEFE7, - 28703 - 19968: 0xE1BE, - 28707 - 19968: 0xFAAE, - 28711 - 19968: 0xD6E9, - 28712 - 19968: 0xD6EE, - 28719 - 19968: 0xE7BB, - 28727 - 19968: 0xECCB, - 28734 - 19968: 0xD5B3, - 28748 - 19968: 0xCEB4, - 28752 - 19968: 0xFBA5, - 28753 - 19968: 0xE1EE, - 28760 - 19968: 0xF7A8, - 28765 - 19968: 0xFBCE, - 28771 - 19968: 0xD8BD, - 28779 - 19968: 0xFBFD, - 28784 - 19968: 0xFCE9, - 28792 - 19968: 0xCFB6, - 28796 - 19968: 0xEDC7, - 28797 - 19968: 0xEEAC, - 28805 - 19968: 0xCCDD, - 28810 - 19968: 0xF6A7, - 28814 - 19968: 0xE6FA, - 28818 - 19968: 0xF5A4, - 28824 - 19968: 0xFDDC, - 28825 - 19968: 0xEDB3, - 28826 - 19968: 0xCEC9, - 28833 - 19968: 0xEFE8, - 28836 - 19968: 0xE1BF, - 28843 - 19968: 0xFADB, - 28844 - 19968: 0xCBE3, - 28845 - 19968: 0xF7A9, - 28847 - 19968: 0xFBA6, - 28851 - 19968: 0xDCB9, - 28855 - 19968: 0xF1C0, - 28856 - 19968: 0xEDC8, - 28857 - 19968: 0xEFC3, - 28872 - 19968: 0xD6AD, - 28875 - 19968: 0xFDCE, - 28879 - 19968: 0xE8A1, - 28888 - 19968: 0xFBF4, - 28889 - 19968: 0xD5A7, - 28893 - 19968: 0xF1F6, - 28895 - 19968: 0xE6D3, - 28913 - 19968: 0xCCDE, - 28921 - 19968: 0xF8B2, - 28925 - 19968: 0xDCEB, - 28932 - 19968: 0xFDB6, - 28937 - 19968: 0xE5EA, - 28940 - 19968: 0xF1E0, - 28953 - 19968: 0xDBCC, - 28954 - 19968: 0xDDCD, - 28958 - 19968: 0xD4C8, - 28961 - 19968: 0xD9ED, - 28966 - 19968: 0xF5A5, - 28976 - 19968: 0xE6FB, - 28982 - 19968: 0xE6D4, - 28999 - 19968: 0xFDC8, - 29001 - 19968: 0xD6A1, - 29002 - 19968: 0xFDBF, - 29004 - 19968: 0xFCD3, - 29006 - 19968: 0xEFA1, - 29008 - 19968: 0xE7BC, - 29014 - 19968: 0xD1EE, - 29017 - 19968: 0xE6D5, - 29020 - 19968: 0xE9F2, - 29022 - 19968: 0xDFB0, - 29028 - 19968: 0xD8E0, - 29029 - 19968: 0xFCBA, - 29030 - 19968: 0xFDAF, - 29031 - 19968: 0xF0CE, - 29033 - 19968: 0xDBE1, - 29036 - 19968: 0xE5C9, - 29038 - 19968: 0xEDB4, - 29053 - 19968: 0xE0C3, - 29060 - 19968: 0xE3D8, - 29065 - 19968: 0xE9FB, - 29066 - 19968: 0xEAA8, - 29071 - 19968: 0xFDB7, - 29074 - 19968: 0xFBA7, - 29076 - 19968: 0xE9C2, - 29081 - 19968: 0xFDF7, - 29087 - 19968: 0xE2D9, - 29090 - 19968: 0xDCEC, - 29100 - 19968: 0xE8A2, - 29105 - 19968: 0xE6F0, - 29113 - 19968: 0xFDF8, - 29114 - 19968: 0xFDF9, - 29118 - 19968: 0xF6BF, - 29121 - 19968: 0xE7A7, - 29123 - 19968: 0xE6D7, - 29128 - 19968: 0xD4F3, - 29129 - 19968: 0xD4C9, - 29134 - 19968: 0xD6FA, - 29136 - 19968: 0xD7F2, - 29138 - 19968: 0xE1C0, - 29140 - 19968: 0xDBE2, - 29141 - 19968: 0xE6D8, - 29151 - 19968: 0xE7BD, - 29157 - 19968: 0xF0CF, - 29158 - 19968: 0xF3BE, - 29159 - 19968: 0xE2AC, - 29165 - 19968: 0xF5B7, - 29166 - 19968: 0xE0F0, - 29179 - 19968: 0xFDB8, - 29180 - 19968: 0xE3E8, - 29182 - 19968: 0xD4A7, - 29183 - 19968: 0xE8FC, - 29184 - 19968: 0xFAD2, - 29190 - 19968: 0xF8EF, - 29200 - 19968: 0xD6D3, - 29211 - 19968: 0xD5B4, - 29226 - 19968: 0xF0D0, - 29228 - 19968: 0xF7F0, - 29229 - 19968: 0xEEB3, - 29232 - 19968: 0xEABA, - 29234 - 19968: 0xEAD3, - 29237 - 19968: 0xEDC9, - 29238 - 19968: 0xDDAB, - 29242 - 19968: 0xE5AC, - 29243 - 19968: 0xFDA1, - 29245 - 19968: 0xDFD0, - 29246 - 19968: 0xECB3, - 29248 - 19968: 0xDFD1, - 29254 - 19968: 0xEDED, - 29255 - 19968: 0xF8B8, - 29256 - 19968: 0xF7FA, - 29260 - 19968: 0xF8AB, - 29266 - 19968: 0xF4E0, - 29272 - 19968: 0xD4BA, - 29273 - 19968: 0xE4B3, - 29275 - 19968: 0xE9DA, - 29277 - 19968: 0xDEB6, - 29279 - 19968: 0xD9BF, - 29281 - 19968: 0xD9C0, - 29282 - 19968: 0xD6EF, - 29287 - 19968: 0xD9CC, - 29289 - 19968: 0xDAAA, - 29298 - 19968: 0xDFE5, - 29305 - 19968: 0xF7E5, - 29309 - 19968: 0xCCB2, - 29312 - 19968: 0xDFF9, - 29313 - 19968: 0xD7E0, - 29346 - 19968: 0xD4BB, - 29351 - 19968: 0xFDFA, - 29356 - 19968: 0xCCB3, - 29359 - 19968: 0xDBF3, - 29376 - 19968: 0xDFD2, - 29378 - 19968: 0xCECA, - 29380 - 19968: 0xEEDA, - 29390 - 19968: 0xE4E4, - 29392 - 19968: 0xFBCF, - 29399 - 19968: 0xCFB7, - 29401 - 19968: 0xEEC3, - 29409 - 19968: 0xCEEA, - 29417 - 19968: 0xE2AD, - 29432 - 19968: 0xD7E1, - 29433 - 19968: 0xFAF5, - 29436 - 19968: 0xD5C9, - 29437 - 19968: 0xF8AC, - 29450 - 19968: 0xE7D9, - 29462 - 19968: 0xF3E9, - 29467 - 19968: 0xD8ED, - 29468 - 19968: 0xE3C4, - 29469 - 19968: 0xF0F1, - 29477 - 19968: 0xE8E5, - 29481 - 19968: 0xE0FA, - 29482 - 19968: 0xEEC4, - 29483 - 19968: 0xD9DE, - 29494 - 19968: 0xEBA2, - 29495 - 19968: 0xEBA3, - 29502 - 19968: 0xFCC2, - 29503 - 19968: 0xEABB, - 29508 - 19968: 0xE8AB, - 29509 - 19968: 0xDEE2, - 29520 - 19968: 0xEDEF, - 29522 - 19968: 0xE8A3, - 29527 - 19968: 0xCFF1, - 29544 - 19968: 0xD4BC, - 29546 - 19968: 0xFCEA, - 29552 - 19968: 0xE7BE, - 29554 - 19968: 0xFCF2, - 29557 - 19968: 0xD6B4, - 29560 - 19968: 0xE2AE, - 29562 - 19968: 0xD3B7, - 29563 - 19968: 0xFACC, - 29572 - 19968: 0xFADC, - 29574 - 19968: 0xEDB5, - 29575 - 19968: 0xE1E3, - 29577 - 19968: 0xE8AC, - 29579 - 19968: 0xE8DD, - 29582 - 19968: 0xEFE9, - 29588 - 19968: 0xF4BD, - 29590 - 19968: 0xCFB8, - 29591 - 19968: 0xE9DB, - 29592 - 19968: 0xD1AC, - 29599 - 19968: 0xDAC7, - 29607 - 19968: 0xEBC9, - 29609 - 19968: 0xE8CC, - 29613 - 19968: 0xDEB7, - 29618 - 19968: 0xD6BC, - 29619 - 19968: 0xD3E5, - 29625 - 19968: 0xFADD, - 29632 - 19968: 0xDAD6, - 29634 - 19968: 0xCAB1, - 29641 - 19968: 0xDAC8, - 29642 - 19968: 0xDFA6, - 29644 - 19968: 0xF9B3, - 29645 - 19968: 0xF2D2, - 29647 - 19968: 0xCAC4, - 29654 - 19968: 0xCECB, - 29657 - 19968: 0xCDF5, - 29661 - 19968: 0xFDB0, - 29662 - 19968: 0xD5A8, - 29664 - 19968: 0xF1C1, - 29667 - 19968: 0xE2E9, - 29668 - 19968: 0xDCCA, - 29669 - 19968: 0xECB4, - 29670 - 19968: 0xFAC0, - 29673 - 19968: 0xFBA8, - 29674 - 19968: 0xD0A8, - 29677 - 19968: 0xDAEC, - 29687 - 19968: 0xD9EE, - 29689 - 19968: 0xE0FB, - 29693 - 19968: 0xEFEA, - 29694 - 19968: 0xFADE, - 29697 - 19968: 0xE0C4, - 29699 - 19968: 0xCFB9, - 29701 - 19968: 0xD5CA, - 29702 - 19968: 0xD7E2, - 29703 - 19968: 0xE2AF, - 29705 - 19968: 0xD7B8, - 29715 - 19968: 0xE8CD, - 29723 - 19968: 0xF6DA, - 29728 - 19968: 0xEFA2, - 29729 - 19968: 0xE2DA, - 29730 - 19968: 0xF6FC, - 29733 - 19968: 0xFBD0, - 29734 - 19968: 0xD1AD, - 29736 - 19968: 0xCDE4, - 29738 - 19968: 0xD1AE, - 29739 - 19968: 0xDCED, - 29740 - 19968: 0xE8CE, - 29742 - 19968: 0xF0F9, - 29743 - 19968: 0xCEB5, - 29744 - 19968: 0xE6FC, - 29747 - 19968: 0xD7FB, - 29748 - 19968: 0xD0D6, - 29749 - 19968: 0xDDF5, - 29750 - 19968: 0xF7F1, - 29752 - 19968: 0xF6FD, - 29754 - 19968: 0xDBF7, - 29759 - 19968: 0xFBEA, - 29760 - 19968: 0xE9DC, - 29761 - 19968: 0xD9C1, - 29763 - 19968: 0xF5F2, - 29764 - 19968: 0xE0C5, - 29771 - 19968: 0xEAD4, - 29781 - 19968: 0xF9C2, - 29783 - 19968: 0xEABC, - 29785 - 19968: 0xD2C5, - 29786 - 19968: 0xFBD1, - 29787 - 19968: 0xE7C0, - 29788 - 19968: 0xEBA5, - 29790 - 19968: 0xDFFA, - 29791 - 19968: 0xE3A2, - 29792 - 19968: 0xD7B9, - 29794 - 19968: 0xE9C3, - 29796 - 19968: 0xE8FD, - 29797 - 19968: 0xE8AF, - 29800 - 19968: 0xF2D3, - 29801 - 19968: 0xFBA9, - 29802 - 19968: 0xD8A5, - 29807 - 19968: 0xD5CB, - 29822 - 19968: 0xD0C8, - 29826 - 19968: 0xD1AF, - 29827 - 19968: 0xD7E3, - 29831 - 19968: 0xE0C6, - 29833 - 19968: 0xD6A2, - 29835 - 19968: 0xEDF0, - 29848 - 19968: 0xD7F3, - 29852 - 19968: 0xFCD4, - 29854 - 19968: 0xDAD7, - 29855 - 19968: 0xCCDF, - 29857 - 19968: 0xF2D4, - 29859 - 19968: 0xD1B0, - 29861 - 19968: 0xCCE0, - 29863 - 19968: 0xDBFD, - 29864 - 19968: 0xF3BF, - 29866 - 19968: 0xF0D1, - 29872 - 19968: 0xFCBB, - 29874 - 19968: 0xE2B0, - 29877 - 19968: 0xE6A5, - 29881 - 19968: 0xE2DB, - 29885 - 19968: 0xDFDE, - 29887 - 19968: 0xE0C7, - 29894 - 19968: 0xF2EF, - 29898 - 19968: 0xCCE1, - 29903 - 19968: 0xD6EA, - 29908 - 19968: 0xE7C2, - 29912 - 19968: 0xCEB6, - 29914 - 19968: 0xF3C0, - 29916 - 19968: 0xCDFE, - 29920 - 19968: 0xFBD2, - 29922 - 19968: 0xF8F8, - 29923 - 19968: 0xF7FB, - 29926 - 19968: 0xE8BF, - 29934 - 19968: 0xE8B7, - 29943 - 19968: 0xEDB6, - 29953 - 19968: 0xDCBA, - 29956 - 19968: 0xCCB4, - 29969 - 19968: 0xF1F7, - 29973 - 19968: 0xE8B8, - 29976 - 19968: 0xCAF6, - 29978 - 19968: 0xE4A4, - 29979 - 19968: 0xF4D6, - 29983 - 19968: 0xDFE6, - 29987 - 19968: 0xDFA7, - 29989 - 19968: 0xDFE7, - 29990 - 19968: 0xE1C1, - 29992 - 19968: 0xE9C4, - 29995 - 19968: 0xDCCB, - 29996 - 19968: 0xE9C5, - 30000 - 19968: 0xEFA3, - 30001 - 19968: 0xEBA6, - 30002 - 19968: 0xCBA3, - 30003 - 19968: 0xE3E9, - 30007 - 19968: 0xD1FB, - 30008 - 19968: 0xEFA4, - 30010 - 19968: 0xEFEB, - 30023 - 19968: 0xD0B4, - 30028 - 19968: 0xCDA3, - 30031 - 19968: 0xE8E6, - 30033 - 19968: 0xEFA5, - 30035 - 19968: 0xD3CC, - 30036 - 19968: 0xDAED, - 30041 - 19968: 0xD7BA, - 30043 - 19968: 0xF2D5, - 30044 - 19968: 0xF5E5, - 30045 - 19968: 0xD9EF, - 30050 - 19968: 0xF9B4, - 30053 - 19968: 0xD5D4, - 30054 - 19968: 0xFDCF, - 30058 - 19968: 0xDBE3, - 30063 - 19968: 0xF1E1, - 30064 - 19968: 0xECB6, - 30069 - 19968: 0xFBFE, - 30070 - 19968: 0xD3D7, - 30072 - 19968: 0xD1B1, - 30074 - 19968: 0xCBB1, - 30079 - 19968: 0xD1B2, - 30086 - 19968: 0xCBB2, - 30087 - 19968: 0xF1C2, - 30090 - 19968: 0xF4E1, - 30091 - 19968: 0xF9B5, - 30094 - 19968: 0xE1C3, - 30095 - 19968: 0xE1C2, - 30097 - 19968: 0xEBF7, - 30109 - 19968: 0xDFA8, - 30117 - 19968: 0xCBCA, - 30123 - 19968: 0xE6B9, - 30129 - 19968: 0xF8DE, - 30130 - 19968: 0xF9AA, - 30131 - 19968: 0xCAF7, - 30133 - 19968: 0xEDB7, - 30136 - 19968: 0xD3B8, - 30137 - 19968: 0xF2D6, - 30140 - 19968: 0xD4D9, - 30141 - 19968: 0xEEC5, - 30142 - 19968: 0xF2F0, - 30146 - 19968: 0xCAB2, - 30149 - 19968: 0xDCBB, - 30151 - 19968: 0xF1F8, - 30157 - 19968: 0xECB7, - 30162 - 19968: 0xE5CA, - 30164 - 19968: 0xF6C0, - 30165 - 19968: 0xFDDD, - 30168 - 19968: 0xD4E3, - 30169 - 19968: 0xCCE2, - 30171 - 19968: 0xF7D4, - 30178 - 19968: 0xD7E5, - 30192 - 19968: 0xD3C3, - 30194 - 19968: 0xD8A6, - 30196 - 19968: 0xF6C1, - 30202 - 19968: 0xDDF6, - 30204 - 19968: 0xCDC0, - 30208 - 19968: 0xE5DC, - 30221 - 19968: 0xE5CB, - 30233 - 19968: 0xE1C4, - 30239 - 19968: 0xE8B0, - 30240 - 19968: 0xF4B0, - 30241 - 19968: 0xF3EA, - 30242 - 19968: 0xDAEE, - 30244 - 19968: 0xD7BB, - 30246 - 19968: 0xE2B1, - 30267 - 19968: 0xD7AA, - 30274 - 19968: 0xD6FB, - 30284 - 19968: 0xE4DF, - 30286 - 19968: 0xCAD6, - 30290 - 19968: 0xEBA8, - 30294 - 19968: 0xDBFE, - 30305 - 19968: 0xF6C2, - 30308 - 19968: 0xEFBB, - 30313 - 19968: 0xD4FD, - 30316 - 19968: 0xE0C8, - 30320 - 19968: 0xE8B9, - 30322 - 19968: 0xEFA6, - 30328 - 19968: 0xCDA4, - 30331 - 19968: 0xD4F4, - 30332 - 19968: 0xDBA1, - 30333 - 19968: 0xDBDC, - 30334 - 19968: 0xDBDD, - 30340 - 19968: 0xEEDC, - 30342 - 19968: 0xCBCB, - 30343 - 19968: 0xFCD5, - 30350 - 19968: 0xCEEB, - 30352 - 19968: 0xCDC1, - 30355 - 19968: 0xFBD3, - 30382 - 19968: 0xF9AB, - 30394 - 19968: 0xF5D4, - 30399 - 19968: 0xD9A9, - 30402 - 19968: 0xE9DD, - 30403 - 19968: 0xDBCD, - 30406 - 19968: 0xDDCE, - 30408 - 19968: 0xE7C3, - 30410 - 19968: 0xECCC, - 30418 - 19968: 0xF9EC, - 30422 - 19968: 0xCBCC, - 30427 - 19968: 0xE0FC, - 30428 - 19968: 0xD4A8, - 30430 - 19968: 0xEDD3, - 30431 - 19968: 0xD8EF, - 30433 - 19968: 0xF2D7, - 30435 - 19968: 0xCAF8, - 30436 - 19968: 0xDAEF, - 30439 - 19968: 0xD6D4, - 30446 - 19968: 0xD9CD, - 30450 - 19968: 0xD8EE, - 30452 - 19968: 0xF2C1, - 30456 - 19968: 0xDFD3, - 30460 - 19968: 0xDAF0, - 30462 - 19968: 0xE2EA, - 30465 - 19968: 0xE0FD, - 30468 - 19968: 0xD8F8, - 30472 - 19968: 0xF7AF, - 30473 - 19968: 0xDAB6, - 30475 - 19968: 0xCAD7, - 30494 - 19968: 0xF2D8, - 30496 - 19968: 0xD8F9, - 30505 - 19968: 0xFADF, - 30519 - 19968: 0xCFEF, - 30520 - 19968: 0xD9C2, - 30522 - 19968: 0xF0D2, - 30524 - 19968: 0xE4D1, - 30528 - 19968: 0xF3B7, - 30541 - 19968: 0xFAE0, - 30555 - 19968: 0xEFEC, - 30561 - 19968: 0xE2B2, - 30563 - 19968: 0xD4BD, - 30566 - 19968: 0xD9CE, - 30571 - 19968: 0xF4E2, - 30585 - 19968: 0xD4A9, - 30590 - 19968: 0xCDC2, - 30591 - 19968: 0xE7DA, - 30603 - 19968: 0xF2D9, - 30609 - 19968: 0xD9AA, - 30622 - 19968: 0xD8BE, - 30629 - 19968: 0xDCAD, - 30636 - 19968: 0xE2EB, - 30637 - 19968: 0xD6FC, - 30640 - 19968: 0xCAF9, - 30643 - 19968: 0xD4DA, - 30651 - 19968: 0xF4D7, - 30652 - 19968: 0xCCA1, - 30655 - 19968: 0xCFBA, - 30679 - 19968: 0xF5B8, - 30683 - 19968: 0xD9C3, - 30684 - 19968: 0xD0E8, - 30690 - 19968: 0xE3C5, - 30691 - 19968: 0xEBF8, - 30693 - 19968: 0xF2B1, - 30697 - 19968: 0xCFBB, - 30701 - 19968: 0xD3AD, - 30702 - 19968: 0xE8E1, - 30703 - 19968: 0xCEEC, - 30707 - 19968: 0xE0B4, - 30722 - 19968: 0xDEE3, - 30738 - 19968: 0xDDF7, - 30757 - 19968: 0xF2B2, - 30758 - 19968: 0xF3F6, - 30759 - 19968: 0xF6DB, - 30764 - 19968: 0xD7FE, - 30770 - 19968: 0xF8DF, - 30772 - 19968: 0xF7F2, - 30789 - 19968: 0xD0A9, - 30799 - 19968: 0xE6DA, - 30813 - 19968: 0xF5A6, - 30827 - 19968: 0xD7BC, - 30828 - 19968: 0xCCE3, - 30831 - 19968: 0xE6DB, - 30844 - 19968: 0xDDDD, - 30849 - 19968: 0xD1B3, - 30855 - 19968: 0xEFED, - 30860 - 19968: 0xD6DE, - 30861 - 19968: 0xE4F4, - 30862 - 19968: 0xE1EF, - 30865 - 19968: 0xDDF8, - 30871 - 19968: 0xE8CF, - 30883 - 19968: 0xCAE5, - 30887 - 19968: 0xDCA1, - 30889 - 19968: 0xE0B5, - 30906 - 19968: 0xFCAC, - 30907 - 19968: 0xFCAD, - 30908 - 19968: 0xD8A7, - 30913 - 19968: 0xEDB8, - 30917 - 19968: 0xDBB6, - 30922 - 19968: 0xD6F0, - 30923 - 19968: 0xF3AF, - 30926 - 19968: 0xCDA5, - 30928 - 19968: 0xDAF1, - 30952 - 19968: 0xD8A8, - 30956 - 19968: 0xCCE4, - 30959 - 19968: 0xD1B4, - 30965 - 19968: 0xCAD8, - 30971 - 19968: 0xDAF2, - 30977 - 19968: 0xF5A7, - 30990 - 19968: 0xF5A8, - 30998 - 19968: 0xE6A6, - 31018 - 19968: 0xD5EC, - 31019 - 19968: 0xD5F8, - 31020 - 19968: 0xDAF3, - 31034 - 19968: 0xE3C6, - 31038 - 19968: 0xDEE4, - 31040 - 19968: 0xDEE5, - 31041 - 19968: 0xD1B5, - 31047 - 19968: 0xD1B6, - 31048 - 19968: 0xD1B7, - 31049 - 19968: 0xF2B3, - 31056 - 19968: 0xE9DE, - 31062 - 19968: 0xF0D3, - 31063 - 19968: 0xF2B4, - 31066 - 19968: 0xF0D4, - 31067 - 19968: 0xCBE4, - 31068 - 19968: 0xFBD4, - 31069 - 19968: 0xF5E6, - 31070 - 19968: 0xE3EA, - 31072 - 19968: 0xDEE6, - 31077 - 19968: 0xDFD4, - 31080 - 19968: 0xF8F9, - 31085 - 19968: 0xF0AE, - 31098 - 19968: 0xD1B8, - 31103 - 19968: 0xD6DF, - 31105 - 19968: 0xD0D7, - 31117 - 19968: 0xFCA1, - 31118 - 19968: 0xEFEE, - 31119 - 19968: 0xDCD8, - 31121 - 19968: 0xE9DF, - 31142 - 19968: 0xE5DD, - 31143 - 19968: 0xFDFB, - 31146 - 19968: 0xE0C9, - 31150 - 19968: 0xD6C9, - 31153 - 19968: 0xD4AA, - 31155 - 19968: 0xE5CC, - 31161 - 19968: 0xE9E0, - 31165 - 19968: 0xD0D8, - 31166 - 19968: 0xFCA2, - 31167 - 19968: 0xD4BE, - 31168 - 19968: 0xE2B3, - 31169 - 19968: 0xDEE7, - 31177 - 19968: 0xDCBC, - 31178 - 19968: 0xD2B6, - 31179 - 19968: 0xF5D5, - 31185 - 19968: 0xCEA1, - 31186 - 19968: 0xF5A9, - 31189 - 19968: 0xDDF9, - 31192 - 19968: 0xDDFA, - 31199 - 19968: 0xF0D5, - 31204 - 19968: 0xF6DF, - 31206 - 19968: 0xF2DA, - 31207 - 19968: 0xE4EB, - 31209 - 19968: 0xF2F1, - 31227 - 19968: 0xECB9, - 31232 - 19968: 0xFDFC, - 31237 - 19968: 0xE1AA, - 31240 - 19968: 0xCAD9, - 31243 - 19968: 0xEFEF, - 31245 - 19968: 0xF5AA, - 31252 - 19968: 0xECF9, - 31255 - 19968: 0xF8AD, - 31257 - 19968: 0xF2C2, - 31258 - 19968: 0xF6C3, - 31260 - 19968: 0xD7D2, - 31263 - 19968: 0xF9A2, - 31264 - 19968: 0xF0D6, - 31278 - 19968: 0xF0FA, - 31281 - 19968: 0xF6E0, - 31286 - 19968: 0xE9F3, - 31287 - 19968: 0xF2C3, - 31291 - 19968: 0xD4AB, - 31292 - 19968: 0xCAB3, - 31293 - 19968: 0xCDA6, - 31295 - 19968: 0xCDC3, - 31296 - 19968: 0xCDDA, - 31302 - 19968: 0xD9CF, - 31305 - 19968: 0xF6C4, - 31309 - 19968: 0xEEDD, - 31310 - 19968: 0xE7C4, - 31319 - 19968: 0xE2B4, - 31329 - 19968: 0xDFE2, - 31330 - 19968: 0xE7DB, - 31337 - 19968: 0xE8B1, - 31339 - 19968: 0xFCAE, - 31344 - 19968: 0xE5CD, - 31348 - 19968: 0xFAEB, - 31350 - 19968: 0xCFBC, - 31353 - 19968: 0xCFE2, - 31354 - 19968: 0xCDF6, - 31357 - 19968: 0xEFF0, - 31359 - 19968: 0xF4BE, - 31361 - 19968: 0xD4CD, - 31364 - 19968: 0xF3B8, - 31368 - 19968: 0xE9A1, - 31378 - 19968: 0xF2F2, - 31379 - 19968: 0xF3EB, - 31381 - 19968: 0xF0D7, - 31384 - 19968: 0xCFD7, - 31391 - 19968: 0xCFDF, - 31401 - 19968: 0xE8C0, - 31402 - 19968: 0xE8C1, - 31406 - 19968: 0xCFE3, - 31407 - 19968: 0xE9A2, - 31418 - 19968: 0xD0AA, - 31428 - 19968: 0xF3C1, - 31429 - 19968: 0xD0AB, - 31431 - 19968: 0xD4E4, - 31434 - 19968: 0xEFBC, - 31435 - 19968: 0xD8A1, - 31447 - 19968: 0xD9DF, - 31449 - 19968: 0xF3D7, - 31453 - 19968: 0xDCBD, - 31455 - 19968: 0xCCE5, - 31456 - 19968: 0xEDF1, - 31459 - 19968: 0xF1E2, - 31461 - 19968: 0xD4DB, - 31466 - 19968: 0xE2B5, - 31469 - 19968: 0xCAE6, - 31471 - 19968: 0xD3AE, - 31478 - 19968: 0xCCE6, - 31481 - 19968: 0xF1D3, - 31482 - 19968: 0xF5E7, - 31487 - 19968: 0xCADA, - 31503 - 19968: 0xFBEE, - 31505 - 19968: 0xE1C5, - 31513 - 19968: 0xDFE9, - 31515 - 19968: 0xEEDE, - 31518 - 19968: 0xF7C2, - 31520 - 19968: 0xD8A2, - 31526 - 19968: 0xDDAC, - 31532 - 19968: 0xF0AF, - 31533 - 19968: 0xD6BD, - 31545 - 19968: 0xE1AB, - 31558 - 19968: 0xF9B6, - 31561 - 19968: 0xD4F5, - 31563 - 19968: 0xD0C9, - 31564 - 19968: 0xEFA7, - 31565 - 19968: 0xE2EC, - 31567 - 19968: 0xDBEA, - 31568 - 19968: 0xCECC, - 31569 - 19968: 0xF5E8, - 31570 - 19968: 0xF7D5, - 31572 - 19968: 0xD3CD, - 31574 - 19968: 0xF3FE, - 31584 - 19968: 0xD0B5, - 31596 - 19968: 0xE0FE, - 31598 - 19968: 0xDFFB, - 31605 - 19968: 0xE6DD, - 31613 - 19968: 0xE8A4, - 31623 - 19968: 0xCBCD, - 31627 - 19968: 0xEFA8, - 31631 - 19968: 0xEEB4, - 31636 - 19968: 0xDAD8, - 31637 - 19968: 0xD1B9, - 31639 - 19968: 0xDFA9, - 31642 - 19968: 0xF3B0, - 31645 - 19968: 0xCCC4, - 31649 - 19968: 0xCEB7, - 31661 - 19968: 0xEFA9, - 31665 - 19968: 0xDFD5, - 31668 - 19968: 0xEDD7, - 31672 - 19968: 0xEEC6, - 31680 - 19968: 0xEFBD, - 31681 - 19968: 0xFCD6, - 31684 - 19968: 0xDBF4, - 31686 - 19968: 0xEFAA, - 31687 - 19968: 0xF8B9, - 31689 - 19968: 0xF5E9, - 31698 - 19968: 0xE3D9, - 31712 - 19968: 0xE1C6, - 31716 - 19968: 0xD4BF, - 31721 - 19968: 0xDEE8, - 31751 - 19968: 0xF0EA, - 31762 - 19968: 0xF3C2, - 31774 - 19968: 0xD3AF, - 31777 - 19968: 0xCADB, - 31783 - 19968: 0xFCD7, - 31786 - 19968: 0xEDD8, - 31787 - 19968: 0xE1C7, - 31805 - 19968: 0xF4D8, - 31806 - 19968: 0xD6B3, - 31807 - 19968: 0xDDAD, - 31811 - 19968: 0xD5BE, - 31820 - 19968: 0xF1C3, - 31821 - 19968: 0xEEDF, - 31840 - 19968: 0xD6EB, - 31844 - 19968: 0xF4D9, - 31852 - 19968: 0xD7E6, - 31859 - 19968: 0xDAB7, - 31875 - 19968: 0xDDFB, - 31881 - 19968: 0xDDCF, - 31890 - 19968: 0xD8A3, - 31893 - 19968: 0xDAD9, - 31895 - 19968: 0xF0D8, - 31896 - 19968: 0xEFC4, - 31903 - 19968: 0xE1D8, - 31909 - 19968: 0xF1D4, - 31911 - 19968: 0xEDF2, - 31918 - 19968: 0xD5DB, - 31921 - 19968: 0xD5DC, - 31922 - 19968: 0xF3C4, - 31923 - 19968: 0xCBD7, - 31929 - 19968: 0xE2B6, - 31934 - 19968: 0xEFF1, - 31946 - 19968: 0xFBD5, - 31958 - 19968: 0xD3D8, - 31966 - 19968: 0xDDD0, - 31967 - 19968: 0xF0D9, - 31968 - 19968: 0xCBB3, - 31975 - 19968: 0xD5DD, - 31995 - 19968: 0xCDA7, - 31998 - 19968: 0xD0AC, - 32000 - 19968: 0xD1BA, - 32002 - 19968: 0xF1C4, - 32004 - 19968: 0xE5B3, - 32005 - 19968: 0xFBF5, - 32006 - 19968: 0xE9E1, - 32007 - 19968: 0xFDE0, - 32008 - 19968: 0xFCBC, - 32010 - 19968: 0xDAA2, - 32011 - 19968: 0xDAA3, - 32013 - 19968: 0xD2A1, - 32016 - 19968: 0xD2EF, - 32020 - 19968: 0xE2ED, - 32023 - 19968: 0xDEE9, - 32024 - 19968: 0xCEDC, - 32025 - 19968: 0xF2B5, - 32026 - 19968: 0xD0E4, - 32027 - 19968: 0xDDD1, - 32032 - 19968: 0xE1C8, - 32033 - 19968: 0xDBB7, - 32034 - 19968: 0xDFE3, - 32043 - 19968: 0xEDB9, - 32044 - 19968: 0xF1C5, - 32046 - 19968: 0xF3CF, - 32047 - 19968: 0xD7AB, - 32048 - 19968: 0xE1AC, - 32051 - 19968: 0xE3EB, - 32053 - 19968: 0xEEC7, - 32057 - 19968: 0xE1C9, - 32058 - 19968: 0xCAFA, - 32066 - 19968: 0xF0FB, - 32067 - 19968: 0xFAE1, - 32068 - 19968: 0xF0DA, - 32069 - 19968: 0xCCE7, - 32070 - 19968: 0xDAF4, - 32080 - 19968: 0xCCBF, - 32094 - 19968: 0xCEED, - 32097 - 19968: 0xD5A9, - 32098 - 19968: 0xFAE2, - 32102 - 19968: 0xD0E5, - 32104 - 19968: 0xEBD6, - 32106 - 19968: 0xECDF, - 32110 - 19968: 0xDFFC, - 32113 - 19968: 0xF7D6, - 32114 - 19968: 0xDEEA, - 32115 - 19968: 0xCBB4, - 32118 - 19968: 0xEFBE, - 32121 - 19968: 0xCCB5, - 32127 - 19968: 0xCFBD, - 32142 - 19968: 0xEFF2, - 32143 - 19968: 0xE2B7, - 32147 - 19968: 0xCCE8, - 32156 - 19968: 0xF0FC, - 32160 - 19968: 0xD6E0, - 32162 - 19968: 0xF1C6, - 32172 - 19968: 0xE2B8, - 32173 - 19968: 0xEBAB, - 32177 - 19968: 0xCBB5, - 32178 - 19968: 0xD8D1, - 32180 - 19968: 0xF4CE, - 32181 - 19968: 0xF3F7, - 32184 - 19968: 0xD7C6, - 32186 - 19968: 0xD1BB, - 32187 - 19968: 0xF7AA, - 32189 - 19968: 0xEDCA, - 32190 - 19968: 0xD7D3, - 32191 - 19968: 0xD8FA, - 32199 - 19968: 0xF6C5, - 32202 - 19968: 0xD1CC, - 32203 - 19968: 0xDDFC, - 32214 - 19968: 0xDFFD, - 32216 - 19968: 0xF9E5, - 32218 - 19968: 0xE0CA, - 32221 - 19968: 0xF2FD, - 32222 - 19968: 0xD3B0, - 32224 - 19968: 0xF4F3, - 32225 - 19968: 0xDAC9, - 32227 - 19968: 0xE6DE, - 32232 - 19968: 0xF8BA, - 32233 - 19968: 0xE8D0, - 32236 - 19968: 0xD8FB, - 32239 - 19968: 0xEAD5, - 32244 - 19968: 0xD6A3, - 32251 - 19968: 0xF6C6, - 32265 - 19968: 0xF2DB, - 32266 - 19968: 0xE4FC, - 32277 - 19968: 0xE8B2, - 32283 - 19968: 0xDADA, - 32285 - 19968: 0xF2DC, - 32286 - 19968: 0xFBD6, - 32287 - 19968: 0xE9B2, - 32289 - 19968: 0xEEAD, - 32291 - 19968: 0xFAE3, - 32299 - 19968: 0xDCEE, - 32302 - 19968: 0xF5EA, - 32303 - 19968: 0xE6E0, - 32305 - 19968: 0xF0FD, - 32311 - 19968: 0xD7AC, - 32317 - 19968: 0xF5C5, - 32318 - 19968: 0xEEE0, - 32321 - 19968: 0xDBE5, - 32323 - 19968: 0xDDDE, - 32326 - 19968: 0xD9F0, - 32327 - 19968: 0xE9A3, - 32338 - 19968: 0xF1F9, - 32340 - 19968: 0xF2C4, - 32341 - 19968: 0xE0CB, - 32350 - 19968: 0xE9A4, - 32353 - 19968: 0xE2B9, - 32361 - 19968: 0xE3B1, - 32362 - 19968: 0xFCEB, - 32363 - 19968: 0xCDA8, - 32365 - 19968: 0xCCB6, - 32368 - 19968: 0xF0DB, - 32377 - 19968: 0xE6BA, - 32380 - 19968: 0xCDA9, - 32386 - 19968: 0xF3C3, - 32396 - 19968: 0xE1D9, - 32399 - 19968: 0xEFAB, - 32403 - 19968: 0xE7C5, - 32406 - 19968: 0xE0E9, - 32408 - 19968: 0xF3C5, - 32411 - 19968: 0xD4C0, - 32412 - 19968: 0xD5BF, - 32566 - 19968: 0xDDAE, - 32568 - 19968: 0xF9FC, - 32570 - 19968: 0xCCC0, - 32588 - 19968: 0xE5A2, - 32592 - 19968: 0xCEB8, - 32596 - 19968: 0xD8D2, - 32597 - 19968: 0xF9D6, - 32618 - 19968: 0xF1AA, - 32619 - 19968: 0xCED1, - 32622 - 19968: 0xF6C7, - 32624 - 19968: 0xDBEB, - 32626 - 19968: 0xDFFE, - 32629 - 19968: 0xD8E1, - 32631 - 19968: 0xF7F3, - 32633 - 19968: 0xD7E7, - 32645 - 19968: 0xD4FE, - 32648 - 19968: 0xD1BC, - 32650 - 19968: 0xE5CF, - 32652 - 19968: 0xCBB6, - 32654 - 19968: 0xDAB8, - 32660 - 19968: 0xCDC4, - 32666 - 19968: 0xD6BE, - 32670 - 19968: 0xE2BA, - 32676 - 19968: 0xCFD8, - 32680 - 19968: 0xE0CC, - 32681 - 19968: 0xEBF9, - 32690 - 19968: 0xFDFD, - 32696 - 19968: 0xD7E8, - 32697 - 19968: 0xCBD8, - 32701 - 19968: 0xE9E2, - 32705 - 19968: 0xE8BA, - 32709 - 19968: 0xE3C7, - 32714 - 19968: 0xECCD, - 32716 - 19968: 0xECCE, - 32718 - 19968: 0xD6BF, - 32722 - 19968: 0xE3A7, - 32724 - 19968: 0xDFD6, - 32725 - 19968: 0xFDE8, - 32735 - 19968: 0xEEE1, - 32736 - 19968: 0xF6A8, - 32737 - 19968: 0xDDFD, - 32745 - 19968: 0xF8BB, - 32747 - 19968: 0xE8D1, - 32752 - 19968: 0xF9D7, - 32761 - 19968: 0xCEEE, - 32764 - 19968: 0xECCF, - 32768 - 19968: 0xE9A5, - 32769 - 19968: 0xD6D5, - 32771 - 19968: 0xCDC5, - 32773 - 19968: 0xEDBA, - 32774 - 19968: 0xD1BD, - 32777 - 19968: 0xCFBE, - 32780 - 19968: 0xECBB, - 32784 - 19968: 0xD2B1, - 32789 - 19968: 0xCCE9, - 32791 - 19968: 0xD9C4, - 32792 - 19968: 0xE9FC, - 32813 - 19968: 0xD1BE, - 32819 - 19968: 0xECBC, - 32822 - 19968: 0xE5AD, - 32829 - 19968: 0xF7B0, - 32831 - 19968: 0xCCEA, - 32835 - 19968: 0xD3C4, - 32838 - 19968: 0xD6C0, - 32842 - 19968: 0xD6FD, - 32854 - 19968: 0xE1A1, - 32856 - 19968: 0xDEBD, - 32858 - 19968: 0xF6A9, - 32862 - 19968: 0xDAA4, - 32879 - 19968: 0xD6A4, - 32880 - 19968: 0xF5C6, - 32882 - 19968: 0xE1A2, - 32883 - 19968: 0xE9C6, - 32887 - 19968: 0xF2C5, - 32893 - 19968: 0xF4E9, - 32894 - 19968: 0xD6EC, - 32895 - 19968: 0xEBD3, - 32900 - 19968: 0xECBD, - 32901 - 19968: 0xE2DC, - 32902 - 19968: 0xDEEB, - 32903 - 19968: 0xF0DC, - 32905 - 19968: 0xEBBF, - 32907 - 19968: 0xD7CE, - 32908 - 19968: 0xD1BF, - 32918 - 19968: 0xF5AB, - 32923 - 19968: 0xF9FD, - 32925 - 19968: 0xCADC, - 32929 - 19968: 0xCDC6, - 32930 - 19968: 0xF2B6, - 32933 - 19968: 0xDDFE, - 32937 - 19968: 0xCCB7, - 32938 - 19968: 0xDBB8, - 32943 - 19968: 0xD0E9, - 32945 - 19968: 0xCEDD, - 32946 - 19968: 0xEBC0, - 32948 - 19968: 0xFDA2, - 32954 - 19968: 0xF8CB, - 32963 - 19968: 0xEAD6, - 32964 - 19968: 0xF1B0, - 32972 - 19968: 0xDBCE, - 32974 - 19968: 0xF7C3, - 32986 - 19968: 0xDBCF, - 32987 - 19968: 0xCBA4, - 32990 - 19968: 0xF8E0, - 32993 - 19968: 0xFBD7, - 32996 - 19968: 0xEBCA, - 32997 - 19968: 0xE0A1, - 33009 - 19968: 0xCECD, - 33012 - 19968: 0xD4DC, - 33016 - 19968: 0xFDD8, - 33021 - 19968: 0xD2F6, - 33026 - 19968: 0xF2B7, - 33029 - 19968: 0xFAF6, - 33030 - 19968: 0xF6AA, - 33031 - 19968: 0xFAF7, - 33032 - 19968: 0xD8E6, - 33034 - 19968: 0xF4B1, - 33048 - 19968: 0xE8D2, - 33050 - 19968: 0xCAC5, - 33051 - 19968: 0xCCEB, - 33059 - 19968: 0xE2EE, - 33065 - 19968: 0xE2BB, - 33067 - 19968: 0xF7AD, - 33071 - 19968: 0xF8E1, - 33081 - 19968: 0xF3EC, - 33086 - 19968: 0xDEA1, - 33099 - 19968: 0xE4FD, - 33102 - 19968: 0xE3EC, - 33104 - 19968: 0xDDAF, - 33105 - 19968: 0xDDB0, - 33108 - 19968: 0xCBB7, - 33109 - 19968: 0xE8D3, - 33125 - 19968: 0xE1A3, - 33126 - 19968: 0xD2E0, - 33131 - 19968: 0xF0FE, - 33136 - 19968: 0xE9A6, - 33137 - 19968: 0xCBF2, - 33144 - 19968: 0xEDF3, - 33145 - 19968: 0xDCD9, - 33146 - 19968: 0xE0CD, - 33151 - 19968: 0xF7DA, - 33152 - 19968: 0xDBB9, - 33160 - 19968: 0xCCAE, - 33162 - 19968: 0xDADB, - 33167 - 19968: 0xCDC7, - 33178 - 19968: 0xDDB1, - 33180 - 19968: 0xD8AF, - 33181 - 19968: 0xE3A3, - 33184 - 19968: 0xCEEF, - 33187 - 19968: 0xF2F3, - 33192 - 19968: 0xF8B3, - 33203 - 19968: 0xE0CE, - 33205 - 19968: 0xF5FD, - 33210 - 19968: 0xEBEC, - 33213 - 19968: 0xD3C5, - 33214 - 19968: 0xFCEC, - 33215 - 19968: 0xD2DB, - 33216 - 19968: 0xD4EB, - 33218 - 19968: 0xDEA2, - 33222 - 19968: 0xE5E6, - 33229 - 19968: 0xF0B0, - 33240 - 19968: 0xD5C4, - 33247 - 19968: 0xEDF4, - 33251 - 19968: 0xE3ED, - 33253 - 19968: 0xE8C2, - 33255 - 19968: 0xEDF5, - 33256 - 19968: 0xD7FC, - 33258 - 19968: 0xEDBB, - 33261 - 19968: 0xF6AB, - 33267 - 19968: 0xF2B8, - 33268 - 19968: 0xF6C8, - 33274 - 19968: 0xD3E6, - 33275 - 19968: 0xF2DD, - 33276 - 19968: 0xCFBF, - 33278 - 19968: 0xEBAC, - 33285 - 19968: 0xCFC0, - 33287 - 19968: 0xE6A8, - 33288 - 19968: 0xFDE9, - 33290 - 19968: 0xCFC1, - 33292 - 19968: 0xE0DF, - 33293 - 19968: 0xDEEC, - 33298 - 19968: 0xE0A2, - 33307 - 19968: 0xF4BF, - 33308 - 19968: 0xE2EF, - 33310 - 19968: 0xD9F1, - 33311 - 19968: 0xF1C7, - 33313 - 19968: 0xCBB8, - 33322 - 19968: 0xF9FE, - 33323 - 19968: 0xDBBA, - 33324 - 19968: 0xDAF5, - 33333 - 19968: 0xF6EC, - 33334 - 19968: 0xDADC, - 33335 - 19968: 0xFAE4, - 33337 - 19968: 0xE0CF, - 33344 - 19968: 0xDDB2, - 33349 - 19968: 0xE6A9, - 33351 - 19968: 0xEFF3, - 33369 - 19968: 0xF3ED, - 33380 - 19968: 0xEBFA, - 33382 - 19968: 0xF9E6, - 33390 - 19968: 0xCADD, - 33391 - 19968: 0xD5DE, - 33393 - 19968: 0xCADE, - 33394 - 19968: 0xDFE4, - 33398 - 19968: 0xE6FD, - 33400 - 19968: 0xF5AC, - 33406 - 19968: 0xE4F5, - 33419 - 19968: 0xE9E3, - 33421 - 19968: 0xEDCB, - 33422 - 19968: 0xCFE4, - 33426 - 19968: 0xD8D3, - 33433 - 19968: 0xDDB3, - 33434 - 19968: 0xD4EC, - 33437 - 19968: 0xF2B9, - 33439 - 19968: 0xDFB7, - 33445 - 19968: 0xCBCE, - 33446 - 19968: 0xFBD8, - 33449 - 19968: 0xD0D9, - 33452 - 19968: 0xDDD2, - 33453 - 19968: 0xF7F4, - 33454 - 19968: 0xE7DC, - 33455 - 19968: 0xE4A5, - 33457 - 19968: 0xFCA3, - 33459 - 19968: 0xDBBB, - 33463 - 19968: 0xF2BA, - 33464 - 19968: 0xE9FD, - 33465 - 19968: 0xD0CA, - 33467 - 19968: 0xF5D6, - 33468 - 19968: 0xD9C5, - 33469 - 19968: 0xE4B4, - 33471 - 19968: 0xEDA7, - 33489 - 19968: 0xEABD, - 33490 - 19968: 0xE6FE, - 33492 - 19968: 0xF7C4, - 33493 - 19968: 0xF5AD, - 33495 - 19968: 0xD9E0, - 33499 - 19968: 0xCAB4, - 33502 - 19968: 0xF8E2, - 33503 - 19968: 0xCFC2, - 33505 - 19968: 0xECBE, - 33509 - 19968: 0xE5B4, - 33510 - 19968: 0xCDC8, - 33511 - 19968: 0xEEC8, - 33521 - 19968: 0xE7C8, - 33533 - 19968: 0xCDC9, - 33534 - 19968: 0xF9B7, - 33537 - 19968: 0xF1E8, - 33538 - 19968: 0xD9F2, - 33539 - 19968: 0xDBF5, - 33540 - 19968: 0xCAB5, - 33541 - 19968: 0xD9C6, - 33545 - 19968: 0xD8C9, - 33559 - 19968: 0xD9AB, - 33576 - 19968: 0xEDBC, - 33579 - 19968: 0xD8D4, - 33583 - 19968: 0xDCDA, - 33585 - 19968: 0xE2BC, - 33588 - 19968: 0xFCED, - 33589 - 19968: 0xECE0, - 33590 - 19968: 0xD2FE, - 33592 - 19968: 0xE9C7, - 33593 - 19968: 0xE6AA, - 33600 - 19968: 0xE2F0, - 33607 - 19968: 0xFABB, - 33609 - 19968: 0xF5AE, - 33610 - 19968: 0xFBAA, - 33615 - 19968: 0xECFB, - 33617 - 19968: 0xECBF, - 33618 - 19968: 0xFCD8, - 33651 - 19968: 0xD4E5, - 33655 - 19968: 0xF9C3, - 33659 - 19968: 0xEEE2, - 33673 - 19968: 0xD7E9, - 33674 - 19968: 0xEDF6, - 33678 - 19968: 0xDEED, - 33686 - 19968: 0xCCEC, - 33688 - 19968: 0xE3EE, - 33694 - 19968: 0xE8D4, - 33698 - 19968: 0xFAF8, - 33705 - 19968: 0xDDB4, - 33706 - 19968: 0xE4B5, - 33707 - 19968: 0xD8B0, - 33725 - 19968: 0xD8D5, - 33729 - 19968: 0xF4EA, - 33733 - 19968: 0xCEB9, - 33737 - 19968: 0xD6E1, - 33738 - 19968: 0xCFD2, - 33740 - 19968: 0xD0B6, - 33747 - 19968: 0xCEA2, - 33750 - 19968: 0xF3EE, - 33756 - 19968: 0xF3F8, - 33769 - 19968: 0xDCCC, - 33771 - 19968: 0xD0CB, - 33775 - 19968: 0xFCA4, - 33776 - 19968: 0xCDCA, - 33777 - 19968: 0xD7D4, - 33778 - 19968: 0xDEA3, - 33780 - 19968: 0xE4E0, - 33785 - 19968: 0xEEC9, - 33789 - 19968: 0xE2DD, - 33795 - 19968: 0xF5FE, - 33796 - 19968: 0xD4AC, - 33802 - 19968: 0xD5D1, - 33804 - 19968: 0xD8F0, - 33805 - 19968: 0xF8C3, - 33806 - 19968: 0xEAD7, - 33833 - 19968: 0xF5D7, - 33836 - 19968: 0xD8BF, - 33841 - 19968: 0xFDC0, - 33848 - 19968: 0xEBAD, - 33853 - 19968: 0xD5AA, - 33865 - 19968: 0xE7A8, - 33879 - 19968: 0xEECA, - 33883 - 19968: 0xCAE7, - 33889 - 19968: 0xF8E3, - 33891 - 19968: 0xD4DD, - 33894 - 19968: 0xEAD8, - 33899 - 19968: 0xFBD9, - 33900 - 19968: 0xEDF7, - 33903 - 19968: 0xE5B5, - 33909 - 19968: 0xD0AD, - 33914 - 19968: 0xF1F1, - 33936 - 19968: 0xE2BD, - 33940 - 19968: 0xE3C8, - 33945 - 19968: 0xD9D5, - 33948 - 19968: 0xDFAA, - 33953 - 19968: 0xDBBC, - 33970 - 19968: 0xF8E4, - 33976 - 19968: 0xF1FA, - 33979 - 19968: 0xE5B6, - 33980 - 19968: 0xF3EF, - 33983 - 19968: 0xFBDA, - 33984 - 19968: 0xE1E0, - 33986 - 19968: 0xD9AC, - 33988 - 19968: 0xF5EB, - 33990 - 19968: 0xE0B6, - 33993 - 19968: 0xE9C8, - 33995 - 19968: 0xCBCF, - 33997 - 19968: 0xE3C9, - 34001 - 19968: 0xDEEE, - 34010 - 19968: 0xE2BE, - 34028 - 19968: 0xDCEF, - 34030 - 19968: 0xD6A5, - 34036 - 19968: 0xE2F1, - 34044 - 19968: 0xD6FE, - 34065 - 19968: 0xD9A1, - 34067 - 19968: 0xD8C0, - 34068 - 19968: 0xDCDB, - 34071 - 19968: 0xEDBD, - 34072 - 19968: 0xDFB8, - 34074 - 19968: 0xEAA5, - 34078 - 19968: 0xD7AD, - 34081 - 19968: 0xF3F9, - 34083 - 19968: 0xEDF8, - 34085 - 19968: 0xF5C7, - 34092 - 19968: 0xE1CA, - 34093 - 19968: 0xEBE3, - 34095 - 19968: 0xF2DE, - 34109 - 19968: 0xF8CC, - 34111 - 19968: 0xEAD9, - 34113 - 19968: 0xD3C6, - 34115 - 19968: 0xDBE6, - 34121 - 19968: 0xF5AF, - 34126 - 19968: 0xCEF0, - 34131 - 19968: 0xE9FE, - 34137 - 19968: 0xFBB6, - 34147 - 19968: 0xE2F2, - 34152 - 19968: 0xCFF2, - 34153 - 19968: 0xF7B9, - 34154 - 19968: 0xD9F3, - 34157 - 19968: 0xE1CB, - 34180 - 19968: 0xDADD, - 34183 - 19968: 0xDAB9, - 34191 - 19968: 0xEBFB, - 34193 - 19968: 0xCBB9, - 34196 - 19968: 0xEDF9, - 34203 - 19968: 0xE0E0, - 34214 - 19968: 0xF4C0, - 34216 - 19968: 0xFDBC, - 34217 - 19968: 0xDFB1, - 34218 - 19968: 0xE3EF, - 34223 - 19968: 0xE0A3, - 34224 - 19968: 0xFDB9, - 34234 - 19968: 0xF0B1, - 34241 - 19968: 0xCDCB, - 34249 - 19968: 0xEDBE, - 34253 - 19968: 0xD5C0, - 34254 - 19968: 0xE3F0, - 34255 - 19968: 0xEDFA, - 34261 - 19968: 0xE9E4, - 34268 - 19968: 0xD5ED, - 34269 - 19968: 0xE7DD, - 34276 - 19968: 0xD4F6, - 34277 - 19968: 0xE5B7, - 34281 - 19968: 0xDBE7, - 34282 - 19968: 0xE2BF, - 34295 - 19968: 0xEECB, - 34298 - 19968: 0xD7F4, - 34299 - 19968: 0xF0DD, - 34303 - 19968: 0xCEAB, - 34306 - 19968: 0xE7DE, - 34310 - 19968: 0xD6D6, - 34311 - 19968: 0xE1CC, - 34314 - 19968: 0xE8B3, - 34326 - 19968: 0xE5EE, - 34327 - 19968: 0xDCA2, - 34330 - 19968: 0xE0D0, - 34349 - 19968: 0xD5B5, - 34367 - 19968: 0xD5A1, - 34382 - 19968: 0xFBDB, - 34384 - 19968: 0xF9CB, - 34388 - 19968: 0xCBF3, - 34389 - 19968: 0xF4A5, - 34395 - 19968: 0xFAC8, - 34396 - 19968: 0xD6D7, - 34398 - 19968: 0xE9E5, - 34399 - 19968: 0xFBDC, - 34407 - 19968: 0xFDD0, - 34425 - 19968: 0xFBF6, - 34442 - 19968: 0xDAA5, - 34444 - 19968: 0xDBBD, - 34451 - 19968: 0xECE2, - 34467 - 19968: 0xCDF7, - 34468 - 19968: 0xF0DE, - 34473 - 19968: 0xF6C9, - 34503 - 19968: 0xDEEF, - 34507 - 19968: 0xD3B1, - 34516 - 19968: 0xFCEE, - 34521 - 19968: 0xE8C3, - 34523 - 19968: 0xF1C8, - 34527 - 19968: 0xCEF1, - 34532 - 19968: 0xF9ED, - 34541 - 19968: 0xF2F4, - 34558 - 19968: 0xE4B6, - 34560 - 19968: 0xF5B9, - 34562 - 19968: 0xDCF0, - 34563 - 19968: 0xE3F1, - 34568 - 19968: 0xE8A5, - 34584 - 19968: 0xF2BB, - 34586 - 19968: 0xDEA4, - 34588 - 19968: 0xDACC, - 34638 - 19968: 0xCAE9, - 34645 - 19968: 0xE3DA, - 34647 - 19968: 0xFCD9, - 34655 - 19968: 0xEADA, - 34662 - 19968: 0xF9C4, - 34664 - 19968: 0xE3A4, - 34676 - 19968: 0xFBDD, - 34678 - 19968: 0xEFCA, - 34680 - 19968: 0xE8C4, - 34690 - 19968: 0xD5CC, - 34701 - 19968: 0xEBD7, - 34719 - 19968: 0xD9AD, - 34722 - 19968: 0xFBAB, - 34739 - 19968: 0xD3D9, - 34746 - 19968: 0xD5A2, - 34756 - 19968: 0xF6DE, - 34784 - 19968: 0xDAF6, - 34796 - 19968: 0xE0D1, - 34799 - 19968: 0xE9A8, - 34802 - 19968: 0xF5F9, - 34809 - 19968: 0xFAAF, - 34811 - 19968: 0xEBFC, - 34814 - 19968: 0xE0EA, - 34821 - 19968: 0xE3B2, - 34847 - 19968: 0xD5C5, - 34850 - 19968: 0xF1E3, - 34851 - 19968: 0xD5EE, - 34865 - 19968: 0xCDCC, - 34870 - 19968: 0xEDD9, - 34875 - 19968: 0xD8C1, - 34880 - 19968: 0xFAEC, - 34886 - 19968: 0xF1EB, - 34892 - 19968: 0xFABC, - 34893 - 19968: 0xE6E2, - 34898 - 19968: 0xFAE5, - 34899 - 19968: 0xE2FA, - 34903 - 19968: 0xCAB6, - 34905 - 19968: 0xE4B7, - 34907 - 19968: 0xEADB, - 34909 - 19968: 0xF5FA, - 34913 - 19968: 0xFBAC, - 34914 - 19968: 0xCFC3, - 34915 - 19968: 0xEBFD, - 34920 - 19968: 0xF8FA, - 34923 - 19968: 0xDFB9, - 34928 - 19968: 0xE1F1, - 34930 - 19968: 0xD2A4, - 34935 - 19968: 0xF5FB, - 34942 - 19968: 0xD0DA, - 34943 - 19968: 0xD0DB, - 34945 - 19968: 0xEABE, - 34946 - 19968: 0xD9B1, - 34952 - 19968: 0xCAB7, - 34955 - 19968: 0xD3E7, - 34957 - 19968: 0xF8E5, - 34962 - 19968: 0xD3B2, - 34966 - 19968: 0xE2C0, - 34967 - 19968: 0xF2DF, - 34974 - 19968: 0xCDE5, - 34987 - 19968: 0xF9AC, - 34996 - 19968: 0xCDCD, - 35009 - 19968: 0xEEAE, - 35010 - 19968: 0xD6AE, - 35023 - 19968: 0xD7EA, - 35028 - 19968: 0xE7E0, - 35029 - 19968: 0xEBAE, - 35033 - 19968: 0xCFD9, - 35036 - 19968: 0xDCCD, - 35037 - 19968: 0xEDFB, - 35039 - 19968: 0xDEF0, - 35041 - 19968: 0xD7EB, - 35048 - 19968: 0xDEA5, - 35059 - 19968: 0xDFD7, - 35060 - 19968: 0xDBD0, - 35061 - 19968: 0xDBD1, - 35064 - 19968: 0xD5A3, - 35069 - 19968: 0xF0B2, - 35079 - 19968: 0xDCDC, - 35088 - 19968: 0xCAE8, - 35090 - 19968: 0xF8E6, - 35091 - 19968: 0xDCCE, - 35096 - 19968: 0xEADC, - 35097 - 19968: 0xDBD2, - 35109 - 19968: 0xE9B3, - 35114 - 19968: 0xF7DB, - 35126 - 19968: 0xE3A8, - 35128 - 19968: 0xD7AE, - 35131 - 19968: 0xE0E1, - 35137 - 19968: 0xCBBA, - 35140 - 19968: 0xE5D1, - 35167 - 19968: 0xD0DC, - 35172 - 19968: 0xD5C1, - 35178 - 19968: 0xD8CA, - 35186 - 19968: 0xE3A9, - 35199 - 19968: 0xE0A4, - 35201 - 19968: 0xE9A9, - 35203 - 19968: 0xD3C7, - 35206 - 19968: 0xDCDD, - 35207 - 19968: 0xF8AE, - 35211 - 19968: 0xCCB8, - 35215 - 19968: 0xD0AE, - 35219 - 19968: 0xD8F2, - 35222 - 19968: 0xE3CA, - 35233 - 19968: 0xCCAF, - 35241 - 19968: 0xD4AD, - 35242 - 19968: 0xF6D1, - 35250 - 19968: 0xD0CC, - 35258 - 19968: 0xCAC6, - 35261 - 19968: 0xD5C2, - 35264 - 19968: 0xCEBA, - 35282 - 19968: 0xCAC7, - 35299 - 19968: 0xFAB0, - 35316 - 19968: 0xDFD8, - 35320 - 19968: 0xF5BA, - 35328 - 19968: 0xE5EB, - 35330 - 19968: 0xEFF4, - 35331 - 19968: 0xDDB5, - 35336 - 19968: 0xCDAA, - 35338 - 19968: 0xE3F2, - 35340 - 19968: 0xFBF7, - 35342 - 19968: 0xF7D0, - 35347 - 19968: 0xFDBA, - 35350 - 19968: 0xFDE1, - 35351 - 19968: 0xF6FE, - 35352 - 19968: 0xD1C0, - 35355 - 19968: 0xE8C5, - 35357 - 19968: 0xE4B8, - 35359 - 19968: 0xE1E8, - 35363 - 19968: 0xCCC1, - 35365 - 19968: 0xD2ED, - 35370 - 19968: 0xDBBE, - 35373 - 19968: 0xE0E2, - 35377 - 19968: 0xFAC9, - 35380 - 19968: 0xE1CD, - 35382 - 19968: 0xCAB8, - 35386 - 19968: 0xF2E0, - 35387 - 19968: 0xF1C9, - 35408 - 19968: 0xDEF1, - 35412 - 19968: 0xF0DF, - 35413 - 19968: 0xF8C4, - 35419 - 19968: 0xEECC, - 35422 - 19968: 0xDEF2, - 35424 - 19968: 0xE7C9, - 35426 - 19968: 0xE2F3, - 35427 - 19968: 0xE7E1, - 35430 - 19968: 0xE3CB, - 35433 - 19968: 0xE3CC, - 35437 - 19968: 0xCFF8, - 35438 - 19968: 0xEFAC, - 35440 - 19968: 0xFDFE, - 35441 - 19968: 0xFCA5, - 35442 - 19968: 0xFAB1, - 35443 - 19968: 0xDFD9, - 35445 - 19968: 0xE0D2, - 35449 - 19968: 0xF4DA, - 35461 - 19968: 0xF1CA, - 35463 - 19968: 0xCEA3, - 35468 - 19968: 0xF2BC, - 35469 - 19968: 0xECE3, - 35475 - 19968: 0xE0A5, - 35477 - 19968: 0xF7AB, - 35480 - 19968: 0xEBAF, - 35486 - 19968: 0xE5DE, - 35488 - 19968: 0xE1A4, - 35489 - 19968: 0xCDAB, - 35491 - 19968: 0xD9F4, - 35492 - 19968: 0xE8A6, - 35493 - 19968: 0xCDCE, - 35494 - 19968: 0xE1E9, - 35496 - 19968: 0xFCEF, - 35498 - 19968: 0xE0E3, - 35504 - 19968: 0xE2C1, - 35506 - 19968: 0xCEA4, - 35513 - 19968: 0xDEA6, - 35516 - 19968: 0xEBFE, - 35518 - 19968: 0xEBDD, - 35519 - 19968: 0xF0E0, - 35522 - 19968: 0xF4DB, - 35524 - 19968: 0xE2F4, - 35527 - 19968: 0xD3C8, - 35531 - 19968: 0xF4EB, - 35533 - 19968: 0xEEB5, - 35535 - 19968: 0xF5D8, - 35538 - 19968: 0xD5DF, - 35542 - 19968: 0xD6E5, - 35547 - 19968: 0xEBB0, - 35548 - 19968: 0xF4E3, - 35553 - 19968: 0xE3CD, - 35558 - 19968: 0xF4F4, - 35559 - 19968: 0xFAB2, - 35562 - 19968: 0xEFF5, - 35563 - 19968: 0xCADF, - 35565 - 19968: 0xEBB1, - 35566 - 19968: 0xEDBF, - 35569 - 19968: 0xFDC9, - 35574 - 19968: 0xE4A6, - 35575 - 19968: 0xF9A4, - 35576 - 19968: 0xF0B3, - 35578 - 19968: 0xE5EC, - 35582 - 19968: 0xD1E7, - 35584 - 19968: 0xD9C7, - 35585 - 19968: 0xE4D7, - 35586 - 19968: 0xEADD, - 35588 - 19968: 0xD4F7, - 35598 - 19968: 0xDABA, - 35600 - 19968: 0xDACD, - 35604 - 19968: 0xF9CC, - 35606 - 19968: 0xE1DA, - 35607 - 19968: 0xDBBF, - 35609 - 19968: 0xCCC5, - 35610 - 19968: 0xECD0, - 35611 - 19968: 0xCBBB, - 35613 - 19968: 0xDEF3, - 35616 - 19968: 0xE9AA, - 35624 - 19968: 0xD9C8, - 35627 - 19968: 0xEEE3, - 35628 - 19968: 0xD7BD, - 35635 - 19968: 0xCFC4, - 35641 - 19968: 0xD0CD, - 35649 - 19968: 0xFCA6, - 35657 - 19968: 0xF1FB, - 35662 - 19968: 0xFDD2, - 35663 - 19968: 0xD1C1, - 35672 - 19968: 0xE3DB, - 35674 - 19968: 0xD3C9, - 35676 - 19968: 0xDCCF, - 35686 - 19968: 0xCCED, - 35692 - 19968: 0xDEA7, - 35695 - 19968: 0xE6BB, - 35696 - 19968: 0xECA1, - 35700 - 19968: 0xCCB9, - 35703 - 19968: 0xFBDE, - 35709 - 19968: 0xE7E2, - 35712 - 19968: 0xD4C1, - 35722 - 19968: 0xDCA8, - 35728 - 19968: 0xE2C2, - 35730 - 19968: 0xF3D8, - 35731 - 19968: 0xE5D3, - 35734 - 19968: 0xF3D9, - 35738 - 19968: 0xF3C6, - 35895 - 19968: 0xCDDB, - 35903 - 19968: 0xCDAC, - 35905 - 19968: 0xFCC3, - 35910 - 19968: 0xD4E7, - 35912 - 19968: 0xD1C2, - 35914 - 19968: 0xF9A5, - 35916 - 19968: 0xE8D5, - 35925 - 19968: 0xE3CE, - 35930 - 19968: 0xD4CA, - 35937 - 19968: 0xDFDA, - 35946 - 19968: 0xFBDF, - 35947 - 19968: 0xE7E3, - 35961 - 19968: 0xF8FB, - 35962 - 19968: 0xE3CF, - 35970 - 19968: 0xF5B0, - 35978 - 19968: 0xD8E7, - 35980 - 19968: 0xD9C9, - 35997 - 19968: 0xF8AF, - 35998 - 19968: 0xEFF6, - 36000 - 19968: 0xDDB6, - 36001 - 19968: 0xEEAF, - 36002 - 19968: 0xCDF8, - 36007 - 19968: 0xDEB8, - 36008 - 19968: 0xFCA7, - 36009 - 19968: 0xF7FC, - 36010 - 19968: 0xF7B1, - 36011 - 19968: 0xCEBB, - 36012 - 19968: 0xF4A1, - 36015 - 19968: 0xEECD, - 36016 - 19968: 0xE1AE, - 36019 - 19968: 0xECC3, - 36020 - 19968: 0xCFFE, - 36022 - 19968: 0xF8BF, - 36023 - 19968: 0xD8E2, - 36024 - 19968: 0xD3E8, - 36027 - 19968: 0xDEA8, - 36028 - 19968: 0xF4E4, - 36029 - 19968: 0xECC2, - 36031 - 19968: 0xD9F5, - 36032 - 19968: 0xF9C5, - 36033 - 19968: 0xDDD3, - 36034 - 19968: 0xD6F1, - 36035 - 19968: 0xECFC, - 36036 - 19968: 0xFCF0, - 36039 - 19968: 0xEDC0, - 36040 - 19968: 0xCAB9, - 36042 - 19968: 0xEEE4, - 36049 - 19968: 0xF2E1, - 36051 - 19968: 0xDEB9, - 36058 - 19968: 0xD6F2, - 36060 - 19968: 0xDEF4, - 36062 - 19968: 0xDFDB, - 36064 - 19968: 0xDBD3, - 36066 - 19968: 0xFAE7, - 36067 - 19968: 0xD8E3, - 36068 - 19968: 0xF4C1, - 36070 - 19968: 0xDDB7, - 36074 - 19968: 0xF2F5, - 36077 - 19968: 0xD4AE, - 36084 - 19968: 0xD6F3, - 36091 - 19968: 0xDDB8, - 36092 - 19968: 0xCFC5, - 36093 - 19968: 0xDFDF, - 36100 - 19968: 0xF2BE, - 36101 - 19968: 0xF6A1, - 36103 - 19968: 0xEBCB, - 36104 - 19968: 0xF1FC, - 36106 - 19968: 0xF3C7, - 36109 - 19968: 0xE0EB, - 36115 - 19968: 0xEDFC, - 36118 - 19968: 0xE1DB, - 36196 - 19968: 0xEEE5, - 36198 - 19968: 0xDEF5, - 36203 - 19968: 0xFAD3, - 36208 - 19968: 0xF1CB, - 36211 - 19968: 0xD0AF, - 36212 - 19968: 0xDDB9, - 36215 - 19968: 0xD1C3, - 36229 - 19968: 0xF5B1, - 36234 - 19968: 0xEAC6, - 36249 - 19968: 0xF0E1, - 36259 - 19968: 0xF6AC, - 36264 - 19968: 0xF5D9, - 36275 - 19968: 0xF0EB, - 36282 - 19968: 0xDDBA, - 36286 - 19968: 0xF2BF, - 36294 - 19968: 0xF7C5, - 36299 - 19968: 0xDBA2, - 36300 - 19968: 0xF2F6, - 36303 - 19968: 0xCABA, - 36315 - 19968: 0xF7F5, - 36317 - 19968: 0xCBE5, - 36321 - 19968: 0xEEE6, - 36323 - 19968: 0xE0D3, - 36328 - 19968: 0xCEA5, - 36335 - 19968: 0xD6D8, - 36339 - 19968: 0xD4AF, - 36362 - 19968: 0xE9C9, - 36367 - 19968: 0xD3CE, - 36368 - 19968: 0xF4C2, - 36382 - 19968: 0xCBE6, - 36394 - 19968: 0xF1A1, - 36400 - 19968: 0xEBB2, - 36405 - 19968: 0xF1A2, - 36418 - 19968: 0xEBB3, - 36420 - 19968: 0xF0B4, - 36423 - 19968: 0xCBF4, - 36424 - 19968: 0xD4B0, - 36425 - 19968: 0xF3B2, - 36426 - 19968: 0xFBB7, - 36441 - 19968: 0xF5EC, - 36447 - 19968: 0xEEE7, - 36448 - 19968: 0xF4B2, - 36468 - 19968: 0xF5ED, - 36470 - 19968: 0xCFF3, - 36481 - 19968: 0xF0E2, - 36487 - 19968: 0xEECE, - 36490 - 19968: 0xF1CC, - 36493 - 19968: 0xE5B8, - 36522 - 19968: 0xD7F5, - 36523 - 19968: 0xE3F3, - 36524 - 19968: 0xCFE5, - 36544 - 19968: 0xCFC6, - 36554 - 19968: 0xF3B3, - 36555 - 19968: 0xE4D8, - 36556 - 19968: 0xCFF9, - 36557 - 19968: 0xCFDA, - 36562 - 19968: 0xFACD, - 36575 - 19968: 0xE6E3, - 36587 - 19968: 0xF2E2, - 36600 - 19968: 0xF5EE, - 36603 - 19968: 0xCABB, - 36606 - 19968: 0xE3DC, - 36611 - 19968: 0xCEF2, - 36613 - 19968: 0xD6D9, - 36617 - 19968: 0xEEB0, - 36626 - 19968: 0xF4E5, - 36627 - 19968: 0xD8C2, - 36628 - 19968: 0xDCD0, - 36629 - 19968: 0xCCEE, - 36635 - 19968: 0xD5E0, - 36636 - 19968: 0xF6CA, - 36637 - 19968: 0xFDCA, - 36638 - 19968: 0xD8D6, - 36639 - 19968: 0xF4CF, - 36646 - 19968: 0xD6A6, - 36647 - 19968: 0xDCBE, - 36649 - 19968: 0xDBD4, - 36650 - 19968: 0xD7C7, - 36655 - 19968: 0xF2FE, - 36659 - 19968: 0xF1CD, - 36664 - 19968: 0xE2C3, - 36665 - 19968: 0xDCDE, - 36667 - 19968: 0xDCDF, - 36670 - 19968: 0xEFAD, - 36671 - 19968: 0xE6AB, - 36676 - 19968: 0xF9DD, - 36677 - 19968: 0xEABF, - 36681 - 19968: 0xEFAE, - 36685 - 19968: 0xF4D0, - 36686 - 19968: 0xCEF3, - 36701 - 19968: 0xE6AC, - 36703 - 19968: 0xCEDE, - 36706 - 19968: 0xD5F9, - 36763 - 19968: 0xE3F4, - 36764 - 19968: 0xCDD0, - 36771 - 19968: 0xD5B8, - 36774 - 19968: 0xF7FD, - 36776 - 19968: 0xDCA9, - 36781 - 19968: 0xDEF6, - 36783 - 19968: 0xDCAA, - 36784 - 19968: 0xF2E3, - 36785 - 19968: 0xE9B4, - 36786 - 19968: 0xD2DC, - 36802 - 19968: 0xE9E6, - 36805 - 19968: 0xE3F6, - 36814 - 19968: 0xE7CA, - 36817 - 19968: 0xD0CE, - 36820 - 19968: 0xDAF7, - 36838 - 19968: 0xCABC, - 36842 - 19968: 0xEEE8, - 36843 - 19968: 0xDADE, - 36845 - 19968: 0xF2F7, - 36848 - 19968: 0xE2FB, - 36850 - 19968: 0xCCA6, - 36855 - 19968: 0xDABB, - 36857 - 19968: 0xEEE9, - 36861 - 19968: 0xF5DA, - 36864 - 19968: 0xF7DC, - 36865 - 19968: 0xE1EA, - 36866 - 19968: 0xCEC1, - 36867 - 19968: 0xD4B1, - 36869 - 19968: 0xFDB1, - 36870 - 19968: 0xE6BD, - 36872 - 19968: 0xFBAD, - 36875 - 19968: 0xF8E7, - 36877 - 19968: 0xE1CE, - 36879 - 19968: 0xF7E2, - 36880 - 19968: 0xF5EF, - 36881 - 19968: 0xCFC7, - 36884 - 19968: 0xD4B2, - 36885 - 19968: 0xCCEF, - 36887 - 19968: 0xD4E8, - 36889 - 19968: 0xEECF, - 36890 - 19968: 0xF7D7, - 36893 - 19968: 0xE0A6, - 36894 - 19968: 0xD6C1, - 36895 - 19968: 0xE1DC, - 36896 - 19968: 0xF0E3, - 36897 - 19968: 0xF1E4, - 36898 - 19968: 0xDCF1, - 36899 - 19968: 0xD6A7, - 36910 - 19968: 0xF4F5, - 36913 - 19968: 0xF1CE, - 36914 - 19968: 0xF2E4, - 36917 - 19968: 0xD0B0, - 36920 - 19968: 0xECEF, - 36924 - 19968: 0xF9BA, - 36926 - 19968: 0xEBB5, - 36929 - 19968: 0xD4ED, - 36930 - 19968: 0xE2C4, - 36935 - 19968: 0xE9E7, - 36938 - 19968: 0xEBB4, - 36939 - 19968: 0xEAA1, - 36941 - 19968: 0xF8BC, - 36942 - 19968: 0xCEA6, - 36944 - 19968: 0xF9C6, - 36945 - 19968: 0xFCDA, - 36947 - 19968: 0xD4B3, - 36948 - 19968: 0xD3B9, - 36949 - 19968: 0xEADE, - 36953 - 19968: 0xE9AB, - 36956 - 19968: 0xE1E1, - 36957 - 19968: 0xD3CF, - 36958 - 19968: 0xF4F6, - 36960 - 19968: 0xEAC0, - 36961 - 19968: 0xE1CF, - 36963 - 19968: 0xCCBA, - 36969 - 19968: 0xEEEA, - 36973 - 19968: 0xF0E4, - 36974 - 19968: 0xF3B4, - 36975 - 19968: 0xD4EE, - 36978 - 19968: 0xF2C0, - 36981 - 19968: 0xF1E5, - 36983 - 19968: 0xF4C3, - 36984 - 19968: 0xE0D4, - 36986 - 19968: 0xEBB6, - 36988 - 19968: 0xD7A1, - 36989 - 19968: 0xCBE8, - 36991 - 19968: 0xF9AD, - 36992 - 19968: 0xE9AD, - 36993 - 19968: 0xD8E4, - 36994 - 19968: 0xFAB3, - 36995 - 19968: 0xE2C5, - 36996 - 19968: 0xFCBD, - 36999 - 19968: 0xECC4, - 37000 - 19968: 0xD8B1, - 37002 - 19968: 0xDCAB, - 37007 - 19968: 0xD5A4, - 37009 - 19968: 0xEBE9, - 37013 - 19968: 0xE8BB, - 37017 - 19968: 0xD8D7, - 37026 - 19968: 0xFBAE, - 37027 - 19968: 0xD1E1, - 37030 - 19968: 0xDBC0, - 37032 - 19968: 0xF5BE, - 37034 - 19968: 0xDEF7, - 37039 - 19968: 0xCAFB, - 37040 - 19968: 0xF7C6, - 37041 - 19968: 0xCFC8, - 37045 - 19968: 0xE1D0, - 37048 - 19968: 0xEED0, - 37057 - 19968: 0xE9F4, - 37066 - 19968: 0xCEF4, - 37086 - 19968: 0xD5CD, - 37089 - 19968: 0xCFDB, - 37096 - 19968: 0xDDBB, - 37101 - 19968: 0xCEAC, - 37109 - 19968: 0xE9E8, - 37117 - 19968: 0xD4B4, - 37122 - 19968: 0xE4C7, - 37138 - 19968: 0xF5DB, - 37141 - 19968: 0xFAC1, - 37145 - 19968: 0xDEA9, - 37159 - 19968: 0xD4F8, - 37165 - 19968: 0xEFF7, - 37170 - 19968: 0xD3B3, - 37193 - 19968: 0xEBB7, - 37194 - 19968: 0xEFF8, - 37195 - 19968: 0xF5DC, - 37196 - 19968: 0xEDCC, - 37197 - 19968: 0xDBD5, - 37198 - 19968: 0xF1CF, - 37202 - 19968: 0xF1D0, - 37218 - 19968: 0xF5B2, - 37225 - 19968: 0xD9AE, - 37226 - 19968: 0xD5AC, - 37228 - 19968: 0xE2C6, - 37237 - 19968: 0xFDA3, - 37239 - 19968: 0xFBE5, - 37240 - 19968: 0xDFAB, - 37255 - 19968: 0xE2F5, - 37257 - 19968: 0xF6AD, - 37259 - 19968: 0xF5B3, - 37261 - 19968: 0xF0B5, - 37266 - 19968: 0xE1A5, - 37276 - 19968: 0xF5DD, - 37291 - 19968: 0xECA2, - 37292 - 19968: 0xEDFD, - 37294 - 19968: 0xF5B4, - 37295 - 19968: 0xFBB8, - 37297 - 19968: 0xDBA3, - 37300 - 19968: 0xD6CA, - 37301 - 19968: 0xCBD9, - 37312 - 19968: 0xE5D4, - 37319 - 19968: 0xF3FA, - 37321 - 19968: 0xEBB8, - 37323 - 19968: 0xE0B7, - 37324 - 19968: 0xD7EC, - 37325 - 19968: 0xF1EC, - 37326 - 19968: 0xE5AF, - 37327 - 19968: 0xD5E1, - 37328 - 19968: 0xD7ED, - 37329 - 19968: 0xD1D1, - 37335 - 19968: 0xE1F2, - 37336 - 19968: 0xEFF9, - 37340 - 19968: 0xDDBC, - 37341 - 19968: 0xF6DC, - 37347 - 19968: 0xF0E5, - 37351 - 19968: 0xF4C4, - 37354 - 19968: 0xE9E9, - 37365 - 19968: 0xF3FB, - 37389 - 19968: 0xD4EF, - 37392 - 19968: 0xCCA2, - 37393 - 19968: 0xF7FE, - 37394 - 19968: 0xDFBC, - 37399 - 19968: 0xEBCD, - 37406 - 19968: 0xD0B7, - 37428 - 19968: 0xD6C2, - 37434 - 19968: 0xE8AD, - 37439 - 19968: 0xEFAF, - 37440 - 19968: 0xCBA5, - 37445 - 19968: 0xCBE9, - 37449 - 19968: 0xFAE8, - 37463 - 19968: 0xCCC6, - 37467 - 19968: 0xE6E7, - 37470 - 19968: 0xEAC7, - 37474 - 19968: 0xDBA4, - 37476 - 19968: 0xCFC9, - 37477 - 19968: 0xE2FC, - 37478 - 19968: 0xEFFA, - 37504 - 19968: 0xEBDE, - 37507 - 19968: 0xF5C8, - 37509 - 19968: 0xD4DE, - 37521 - 19968: 0xE0D5, - 37523 - 19968: 0xEFB0, - 37526 - 19968: 0xE2C7, - 37528 - 19968: 0xD9AF, - 37532 - 19968: 0xF9E7, - 37555 - 19968: 0xE7E5, - 37558 - 19968: 0xCFCA, - 37559 - 19968: 0xE1D1, - 37561 - 19968: 0xE2C8, - 37580 - 19968: 0xEFFB, - 37583 - 19968: 0xFAF9, - 37586 - 19968: 0xDCF2, - 37604 - 19968: 0xE0A7, - 37610 - 19968: 0xF8E8, - 37624 - 19968: 0xCBEA, - 37628 - 19968: 0xCBBC, - 37636 - 19968: 0xD6E2, - 37648 - 19968: 0xF5DE, - 37656 - 19968: 0xF5DF, - 37658 - 19968: 0xEEB6, - 37662 - 19968: 0xE2F6, - 37663 - 19968: 0xD3CA, - 37664 - 19968: 0xEFFC, - 37665 - 19968: 0xD1C4, - 37666 - 19968: 0xEFB1, - 37668 - 19968: 0xD1C5, - 37670 - 19968: 0xD0DE, - 37672 - 19968: 0xD9E1, - 37675 - 19968: 0xE0B8, - 37678 - 19968: 0xCDD1, - 37679 - 19968: 0xF3B9, - 37704 - 19968: 0xE7CC, - 37706 - 19968: 0xD6A8, - 37707 - 19968: 0xCEA7, - 37709 - 19968: 0xD4B5, - 37716 - 19968: 0xE4C8, - 37723 - 19968: 0xD3B4, - 37742 - 19968: 0xEBB9, - 37749 - 19968: 0xCBF5, - 37756 - 19968: 0xF6DD, - 37758 - 19968: 0xF1A3, - 37772 - 19968: 0xCCC7, - 37780 - 19968: 0xE9CA, - 37782 - 19968: 0xE1F0, - 37786 - 19968: 0xF5E0, - 37795 - 19968: 0xFBAF, - 37799 - 19968: 0xCBD1, - 37804 - 19968: 0xFBE0, - 37805 - 19968: 0xF2E5, - 37808 - 19968: 0xECF0, - 37827 - 19968: 0xF0EC, - 37841 - 19968: 0xEEEB, - 37854 - 19968: 0xE9CB, - 37857 - 19968: 0xCCF0, - 37860 - 19968: 0xD7AF, - 37878 - 19968: 0xF3A1, - 37892 - 19968: 0xFCF5, - 37912 - 19968: 0xF1A4, - 37925 - 19968: 0xE0D6, - 37931 - 19968: 0xEFB2, - 37941 - 19968: 0xF4D1, - 37944 - 19968: 0xF7A1, - 37956 - 19968: 0xF1D1, - 37969 - 19968: 0xCAFC, - 37970 - 19968: 0xCAFD, - 37979 - 19968: 0xCECE, - 38013 - 19968: 0xF3C8, - 38015 - 19968: 0xF3BA, - 38263 - 19968: 0xEDFE, - 38272 - 19968: 0xDAA6, - 38275 - 19968: 0xE0EC, - 38281 - 19968: 0xF8CD, - 38283 - 19968: 0xCBD2, - 38287 - 19968: 0xEBCE, - 38289 - 19968: 0xF9D8, - 38290 - 19968: 0xF9D9, - 38291 - 19968: 0xCAE0, - 38292 - 19968: 0xDACA, - 38296 - 19968: 0xCBA6, - 38307 - 19968: 0xCAC8, - 38308 - 19968: 0xF9EE, - 38309 - 19968: 0xDBEC, - 38312 - 19968: 0xD0B1, - 38317 - 19968: 0xD5EF, - 38321 - 19968: 0xE6F3, - 38331 - 19968: 0xE7A2, - 38332 - 19968: 0xE4D9, - 38343 - 19968: 0xE4E1, - 38346 - 19968: 0xFCC4, - 38356 - 19968: 0xF9EF, - 38357 - 19968: 0xCFF4, - 38358 - 19968: 0xF7E6, - 38364 - 19968: 0xCEBC, - 38369 - 19968: 0xF4C5, - 38370 - 19968: 0xDCA3, - 38428 - 19968: 0xDDBD, - 38433 - 19968: 0xF4C6, - 38442 - 19968: 0xF8A1, - 38446 - 19968: 0xE8D6, - 38450 - 19968: 0xDBC1, - 38459 - 19968: 0xF0E6, - 38463 - 19968: 0xE4B9, - 38464 - 19968: 0xF6ED, - 38466 - 19968: 0xF9AE, - 38468 - 19968: 0xDDBE, - 38475 - 19968: 0xD7B0, - 38476 - 19968: 0xD8E8, - 38477 - 19968: 0xCBBD, - 38480 - 19968: 0xF9DA, - 38491 - 19968: 0xF8CE, - 38492 - 19968: 0xF9F0, - 38493 - 19968: 0xE0ED, - 38494 - 19968: 0xE3B3, - 38495 - 19968: 0xF4B3, - 38498 - 19968: 0xEAC2, - 38499 - 19968: 0xF2E6, - 38500 - 19968: 0xF0B6, - 38506 - 19968: 0xDBD6, - 38512 - 19968: 0xEBE4, - 38515 - 19968: 0xF2E7, - 38517 - 19968: 0xD7D5, - 38518 - 19968: 0xD4B6, - 38519 - 19968: 0xF9E8, - 38520 - 19968: 0xD7C1, - 38525 - 19968: 0xE5D5, - 38533 - 19968: 0xE9EA, - 38534 - 19968: 0xD7CC, - 38538 - 19968: 0xD3E9, - 38539 - 19968: 0xE2C9, - 38541 - 19968: 0xFCDB, - 38542 - 19968: 0xCDAD, - 38548 - 19968: 0xCCB0, - 38549 - 19968: 0xEAA2, - 38552 - 19968: 0xE4F6, - 38553 - 19968: 0xD0C0, - 38555 - 19968: 0xF0B7, - 38556 - 19968: 0xEEA1, - 38563 - 19968: 0xD7F6, - 38567 - 19968: 0xE2CA, - 38568 - 19968: 0xE2CB, - 38570 - 19968: 0xFACF, - 38577 - 19968: 0xEBDF, - 38583 - 19968: 0xD6CB, - 38587 - 19968: 0xF4B4, - 38592 - 19968: 0xEDCD, - 38593 - 19968: 0xE4D2, - 38596 - 19968: 0xEAA9, - 38597 - 19968: 0xE4BA, - 38598 - 19968: 0xF3A2, - 38599 - 19968: 0xCDD2, - 38601 - 19968: 0xF6CB, - 38603 - 19968: 0xF1E6, - 38604 - 19968: 0xEDC1, - 38605 - 19968: 0xE8BC, - 38606 - 19968: 0xEED1, - 38613 - 19968: 0xF0E7, - 38614 - 19968: 0xE2CC, - 38617 - 19968: 0xE4AA, - 38619 - 19968: 0xF5E1, - 38620 - 19968: 0xEDDA, - 38626 - 19968: 0xD7EE, - 38627 - 19968: 0xD1F1, - 38632 - 19968: 0xE9EB, - 38633 - 19968: 0xE9EC, - 38634 - 19968: 0xE0E4, - 38639 - 19968: 0xDAA7, - 38640 - 19968: 0xDDD4, - 38642 - 19968: 0xEAA3, - 38646 - 19968: 0xD6C3, - 38647 - 19968: 0xD6F4, - 38649 - 19968: 0xDADF, - 38651 - 19968: 0xEFB3, - 38656 - 19968: 0xE2CD, - 38662 - 19968: 0xEFFD, - 38663 - 19968: 0xF2E8, - 38673 - 19968: 0xEFC5, - 38675 - 19968: 0xE7E7, - 38678 - 19968: 0xD7FD, - 38681 - 19968: 0xE7CE, - 38684 - 19968: 0xDFDC, - 38686 - 19968: 0xF9C7, - 38695 - 19968: 0xD9F6, - 38704 - 19968: 0xDFAC, - 38706 - 19968: 0xD6DA, - 38713 - 19968: 0xDCA4, - 38717 - 19968: 0xF0B8, - 38722 - 19968: 0xD5FA, - 38724 - 19968: 0xE4F7, - 38728 - 19968: 0xD6C4, - 38737 - 19968: 0xF4EC, - 38742 - 19968: 0xEFFE, - 38748 - 19968: 0xF0A1, - 38750 - 19968: 0xDEAA, - 38753 - 19968: 0xDABC, - 38754 - 19968: 0xD8FC, - 38761 - 19968: 0xFAD4, - 38765 - 19968: 0xECE5, - 38772 - 19968: 0xFCA8, - 38775 - 19968: 0xECE6, - 38778 - 19968: 0xD8CB, - 38795 - 19968: 0xFBB9, - 38797 - 19968: 0xE4D3, - 38799 - 19968: 0xCDF9, - 38816 - 19968: 0xCFD3, - 38824 - 19968: 0xCAEA, - 38827 - 19968: 0xCFD4, - 38829 - 19968: 0xF8BD, - 38854 - 19968: 0xF4C7, - 38859 - 19968: 0xEADF, - 38867 - 19968: 0xF9DB, - 38876 - 19968: 0xD4B7, - 38899 - 19968: 0xEBE5, - 38902 - 19968: 0xE1D2, - 38907 - 19968: 0xEAA4, - 38911 - 19968: 0xFAC2, - 38912 - 19968: 0xFBE1, - 38913 - 19968: 0xFAED, - 38914 - 19968: 0xF0A2, - 38915 - 19968: 0xCCF1, - 38917 - 19968: 0xFAA3, - 38918 - 19968: 0xE2F7, - 38920 - 19968: 0xE2CE, - 38922 - 19968: 0xE9F5, - 38924 - 19968: 0xE1EB, - 38928 - 19968: 0xE7E8, - 38929 - 19968: 0xE8D7, - 38930 - 19968: 0xDAF8, - 38931 - 19968: 0xD4CB, - 38935 - 19968: 0xF7F6, - 38936 - 19968: 0xD6C5, - 38957 - 19968: 0xD4E9, - 38960 - 19968: 0xFAFA, - 38968 - 19968: 0xCCF2, - 38969 - 19968: 0xF7DD, - 38971 - 19968: 0xDEBA, - 38982 - 19968: 0xCEA8, - 38988 - 19968: 0xF0B9, - 38989 - 19968: 0xE4FE, - 38990 - 19968: 0xE4C9, - 38996 - 19968: 0xE4D4, - 39000 - 19968: 0xEAC3, - 39002 - 19968: 0xEFB4, - 39006 - 19968: 0xD7BE, - 39013 - 19968: 0xFBE2, - 39015 - 19968: 0xCDD3, - 39019 - 19968: 0xEFB5, - 39023 - 19968: 0xFAE9, - 39080 - 19968: 0xF9A6, - 39087 - 19968: 0xDFBD, - 39089 - 19968: 0xF7C7, - 39108 - 19968: 0xF8FD, - 39111 - 19968: 0xF8FC, - 39131 - 19968: 0xDEAB, - 39132 - 19968: 0xDBE8, - 39135 - 19968: 0xE3DD, - 39137 - 19968: 0xE1E2, - 39138 - 19968: 0xD1C6, - 39149 - 19968: 0xF6D0, - 39150 - 19968: 0xEBE6, - 39151 - 19968: 0xDAF9, - 39156 - 19968: 0xECC7, - 39164 - 19968: 0xDEF8, - 39165 - 19968: 0xF8E9, - 39166 - 19968: 0xE3DE, - 39171 - 19968: 0xCEF5, - 39177 - 19968: 0xFAC3, - 39178 - 19968: 0xE5D7, - 39180 - 19968: 0xECC8, - 39184 - 19968: 0xF3C9, - 39187 - 19968: 0xE4BB, - 39192 - 19968: 0xE6AE, - 39198 - 19968: 0xEFB6, - 39200 - 19968: 0xDCBF, - 39208 - 19968: 0xCEBD, - 39237 - 19968: 0xD8C3, - 39241 - 19968: 0xD0CF, - 39243 - 19968: 0xCFFA, - 39244 - 19968: 0xF3CA, - 39245 - 19968: 0xE0D7, - 39249 - 19968: 0xD1C7, - 39250 - 19968: 0xE9AE, - 39252 - 19968: 0xE8BD, - 39255 - 19968: 0xFAC4, - 39318 - 19968: 0xE2CF, - 39321 - 19968: 0xFAC5, - 39325 - 19968: 0xF9B8, - 39333 - 19968: 0xDCE0, - 39336 - 19968: 0xFBB0, - 39340 - 19968: 0xD8A9, - 39341 - 19968: 0xE5DF, - 39342 - 19968: 0xF9A7, - 39345 - 19968: 0xF6EE, - 39347 - 19968: 0xF6CC, - 39348 - 19968: 0xE2F8, - 39353 - 19968: 0xECF1, - 39361 - 19968: 0xDAE0, - 39376 - 19968: 0xF1D2, - 39377 - 19968: 0xD2CC, - 39378 - 19968: 0xCFCB, - 39381 - 19968: 0xCABD, - 39385 - 19968: 0xDDBF, - 39389 - 19968: 0xF6EF, - 39391 - 19968: 0xDEF9, - 39405 - 19968: 0xFAB4, - 39409 - 19968: 0xD5AD, - 39423 - 19968: 0xF1E7, - 39425 - 19968: 0xDEBE, - 39432 - 19968: 0xDCC0, - 39438 - 19968: 0xD1C8, - 39439 - 19968: 0xD1C9, - 39449 - 19968: 0xF8BE, - 39467 - 19968: 0xCBF6, - 39472 - 19968: 0xD4F9, - 39478 - 19968: 0xF5E2, - 39479 - 19968: 0xE1D3, - 39488 - 19968: 0xD8E9, - 39491 - 19968: 0xF8FE, - 39493 - 19968: 0xCFCC, - 39501 - 19968: 0xFDA4, - 39509 - 19968: 0xCEF6, - 39511 - 19968: 0xFAD0, - 39514 - 19968: 0xCCF3, - 39515 - 19968: 0xE6BE, - 39519 - 19968: 0xF6AE, - 39522 - 19968: 0xD5F0, - 39525 - 19968: 0xD1CA, - 39529 - 19968: 0xFCBE, - 39530 - 19968: 0xD5F1, - 39592 - 19968: 0xCDE9, - 39608 - 19968: 0xFAB5, - 39635 - 19968: 0xE2D0, - 39636 - 19968: 0xF4F7, - 39640 - 19968: 0xCDD4, - 39653 - 19968: 0xE7A3, - 39662 - 19968: 0xDBA5, - 39706 - 19968: 0xE2D1, - 39719 - 19968: 0xD7A2, - 39722 - 19968: 0xF7E3, - 39729 - 19968: 0xEAA6, - 39740 - 19968: 0xD0A1, - 39745 - 19968: 0xCEDA, - 39746 - 19968: 0xFBEB, - 39747 - 19968: 0xDBA6, - 39748 - 19968: 0xDBDE, - 39749 - 19968: 0xD8E5, - 39759 - 19968: 0xEAE0, - 39764 - 19968: 0xD8AA, - 39770 - 19968: 0xE5E0, - 39791 - 19968: 0xD6DB, - 39822 - 19968: 0xEFC6, - 39825 - 19968: 0xF8EA, - 39839 - 19968: 0xE4D5, - 39851 - 19968: 0xCEF7, - 39854 - 19968: 0xE0D8, - 39881 - 19968: 0xD7EF, - 39894 - 19968: 0xF4ED, - 39908 - 19968: 0xCDE6, - 39912 - 19968: 0xCCF4, - 39949 - 19968: 0xF5E3, - 39952 - 19968: 0xE4CA, - 39954 - 19968: 0xDCE1, - 39957 - 19968: 0xF9C8, - 39973 - 19968: 0xFCBF, - 39986 - 19968: 0xE8A7, - 39995 - 19968: 0xD8C4, - 40007 - 19968: 0xCBBE, - 40009 - 19968: 0xDCAE, - 40023 - 19968: 0xD7F7, - 40165 - 19968: 0xF0E8, - 40167 - 19968: 0xDDC0, - 40169 - 19968: 0xCFCD, - 40179 - 19968: 0xDCF3, - 40180 - 19968: 0xD9B0, - 40182 - 19968: 0xE6E9, - 40201 - 19968: 0xE4BC, - 40219 - 19968: 0xEAC4, - 40230 - 19968: 0xE4EC, - 40232 - 19968: 0xE4E5, - 40251 - 19968: 0xFBF8, - 40273 - 19968: 0xCCBB, - 40285 - 19968: 0xE4BD, - 40288 - 19968: 0xCDDC, - 40289 - 19968: 0xD9F7, - 40300 - 19968: 0xDDDF, - 40306 - 19968: 0xEDCE, - 40361 - 19968: 0xD9D0, - 40367 - 19968: 0xE5A3, - 40372 - 19968: 0xF9CD, - 40388 - 19968: 0xCDAE, - 40407 - 19968: 0xCFCE, - 40434 - 19968: 0xF6AF, - 40440 - 19968: 0xFDD3, - 40441 - 19968: 0xEBED, - 40442 - 19968: 0xD6DC, - 40474 - 19968: 0xE5A4, - 40478 - 19968: 0xD5B6, - 40565 - 19968: 0xD6DD, - 40569 - 19968: 0xF9E9, - 40573 - 19968: 0xE7A4, - 40575 - 19968: 0xD6E3, - 40594 - 19968: 0xD1CB, - 40595 - 19968: 0xD6E4, - 40599 - 19968: 0xD5F2, - 40605 - 19968: 0xDEFA, - 40607 - 19968: 0xD7F8, - 40613 - 19968: 0xD8EA, - 40628 - 19968: 0xCFD5, - 40629 - 19968: 0xD8FD, - 40635 - 19968: 0xD8AB, - 40638 - 19968: 0xFDCB, - 40643 - 19968: 0xFCDC, - 40653 - 19968: 0xE0A8, - 40654 - 19968: 0xD5F3, - 40657 - 19968: 0xFDD9, - 40660 - 19968: 0xCCA3, - 40664 - 19968: 0xD9F9, - 40667 - 19968: 0xD3EA, - 40668 - 19968: 0xF5F5, - 40670 - 19968: 0xEFC7, - 40680 - 19968: 0xD3DA, - 40692 - 19968: 0xDABD, - 40711 - 19968: 0xE8A8, - 40712 - 19968: 0xDCAF, - 40718 - 19968: 0xF0A3, - 40723 - 19968: 0xCDD5, - 40736 - 19968: 0xE0A9, - 40763 - 19968: 0xDEAC, - 40778 - 19968: 0xF0BA, - 40779 - 19968: 0xEEB1, - 40782 - 19968: 0xEEB2, - 40786 - 19968: 0xF6CD, - 40799 - 19968: 0xEED2, - 40801 - 19968: 0xD6C6, - 40807 - 19968: 0xE0E5, - 40810 - 19968: 0xF3BB, - 40812 - 19968: 0xE5E1, - 40823 - 19968: 0xE4CB, - 40845 - 19968: 0xD7A3, - 40848 - 19968: 0xDBC2, - 40853 - 19968: 0xCAFE, - 40860 - 19968: 0xCFCF, -} - -const encode1Low, encode1High = 44032, 55204 - -var encode1 = [...]uint16{ - 44032 - 44032: 0xB0A1, - 44033 - 44032: 0xB0A2, - 44034 - 44032: 0x8141, - 44035 - 44032: 0x8142, - 44036 - 44032: 0xB0A3, - 44037 - 44032: 0x8143, - 44038 - 44032: 0x8144, - 44039 - 44032: 0xB0A4, - 44040 - 44032: 0xB0A5, - 44041 - 44032: 0xB0A6, - 44042 - 44032: 0xB0A7, - 44043 - 44032: 0x8145, - 44044 - 44032: 0x8146, - 44045 - 44032: 0x8147, - 44046 - 44032: 0x8148, - 44047 - 44032: 0x8149, - 44048 - 44032: 0xB0A8, - 44049 - 44032: 0xB0A9, - 44050 - 44032: 0xB0AA, - 44051 - 44032: 0xB0AB, - 44052 - 44032: 0xB0AC, - 44053 - 44032: 0xB0AD, - 44054 - 44032: 0xB0AE, - 44055 - 44032: 0xB0AF, - 44056 - 44032: 0x814A, - 44057 - 44032: 0xB0B0, - 44058 - 44032: 0xB0B1, - 44059 - 44032: 0xB0B2, - 44060 - 44032: 0xB0B3, - 44061 - 44032: 0xB0B4, - 44062 - 44032: 0x814B, - 44063 - 44032: 0x814C, - 44064 - 44032: 0xB0B5, - 44065 - 44032: 0x814D, - 44066 - 44032: 0x814E, - 44067 - 44032: 0x814F, - 44068 - 44032: 0xB0B6, - 44069 - 44032: 0x8150, - 44070 - 44032: 0x8151, - 44071 - 44032: 0x8152, - 44072 - 44032: 0x8153, - 44073 - 44032: 0x8154, - 44074 - 44032: 0x8155, - 44075 - 44032: 0x8156, - 44076 - 44032: 0xB0B7, - 44077 - 44032: 0xB0B8, - 44078 - 44032: 0x8157, - 44079 - 44032: 0xB0B9, - 44080 - 44032: 0xB0BA, - 44081 - 44032: 0xB0BB, - 44082 - 44032: 0x8158, - 44083 - 44032: 0x8159, - 44084 - 44032: 0x815A, - 44085 - 44032: 0x8161, - 44086 - 44032: 0x8162, - 44087 - 44032: 0x8163, - 44088 - 44032: 0xB0BC, - 44089 - 44032: 0xB0BD, - 44090 - 44032: 0x8164, - 44091 - 44032: 0x8165, - 44092 - 44032: 0xB0BE, - 44093 - 44032: 0x8166, - 44094 - 44032: 0x8167, - 44095 - 44032: 0x8168, - 44096 - 44032: 0xB0BF, - 44097 - 44032: 0x8169, - 44098 - 44032: 0x816A, - 44099 - 44032: 0x816B, - 44100 - 44032: 0x816C, - 44101 - 44032: 0x816D, - 44102 - 44032: 0x816E, - 44103 - 44032: 0x816F, - 44104 - 44032: 0x8170, - 44105 - 44032: 0x8171, - 44106 - 44032: 0x8172, - 44107 - 44032: 0xB0C0, - 44108 - 44032: 0x8173, - 44109 - 44032: 0xB0C1, - 44110 - 44032: 0x8174, - 44111 - 44032: 0x8175, - 44112 - 44032: 0x8176, - 44113 - 44032: 0x8177, - 44114 - 44032: 0x8178, - 44115 - 44032: 0x8179, - 44116 - 44032: 0xB0C2, - 44117 - 44032: 0x817A, - 44118 - 44032: 0x8181, - 44119 - 44032: 0x8182, - 44120 - 44032: 0xB0C3, - 44121 - 44032: 0x8183, - 44122 - 44032: 0x8184, - 44123 - 44032: 0x8185, - 44124 - 44032: 0xB0C4, - 44125 - 44032: 0x8186, - 44126 - 44032: 0x8187, - 44127 - 44032: 0x8188, - 44128 - 44032: 0x8189, - 44129 - 44032: 0x818A, - 44130 - 44032: 0x818B, - 44131 - 44032: 0x818C, - 44132 - 44032: 0x818D, - 44133 - 44032: 0x818E, - 44134 - 44032: 0x818F, - 44135 - 44032: 0x8190, - 44136 - 44032: 0x8191, - 44137 - 44032: 0x8192, - 44138 - 44032: 0x8193, - 44139 - 44032: 0x8194, - 44140 - 44032: 0x8195, - 44141 - 44032: 0x8196, - 44142 - 44032: 0x8197, - 44143 - 44032: 0x8198, - 44144 - 44032: 0xB0C5, - 44145 - 44032: 0xB0C6, - 44146 - 44032: 0x8199, - 44147 - 44032: 0x819A, - 44148 - 44032: 0xB0C7, - 44149 - 44032: 0x819B, - 44150 - 44032: 0x819C, - 44151 - 44032: 0xB0C8, - 44152 - 44032: 0xB0C9, - 44153 - 44032: 0x819D, - 44154 - 44032: 0xB0CA, - 44155 - 44032: 0x819E, - 44156 - 44032: 0x819F, - 44157 - 44032: 0x81A0, - 44158 - 44032: 0x81A1, - 44159 - 44032: 0x81A2, - 44160 - 44032: 0xB0CB, - 44161 - 44032: 0xB0CC, - 44162 - 44032: 0x81A3, - 44163 - 44032: 0xB0CD, - 44164 - 44032: 0xB0CE, - 44165 - 44032: 0xB0CF, - 44166 - 44032: 0xB0D0, - 44167 - 44032: 0x81A4, - 44168 - 44032: 0x81A5, - 44169 - 44032: 0xB0D1, - 44170 - 44032: 0xB0D2, - 44171 - 44032: 0xB0D3, - 44172 - 44032: 0xB0D4, - 44173 - 44032: 0x81A6, - 44174 - 44032: 0x81A7, - 44175 - 44032: 0x81A8, - 44176 - 44032: 0xB0D5, - 44177 - 44032: 0x81A9, - 44178 - 44032: 0x81AA, - 44179 - 44032: 0x81AB, - 44180 - 44032: 0xB0D6, - 44181 - 44032: 0x81AC, - 44182 - 44032: 0x81AD, - 44183 - 44032: 0x81AE, - 44184 - 44032: 0x81AF, - 44185 - 44032: 0x81B0, - 44186 - 44032: 0x81B1, - 44187 - 44032: 0x81B2, - 44188 - 44032: 0xB0D7, - 44189 - 44032: 0xB0D8, - 44190 - 44032: 0x81B3, - 44191 - 44032: 0xB0D9, - 44192 - 44032: 0xB0DA, - 44193 - 44032: 0xB0DB, - 44194 - 44032: 0x81B4, - 44195 - 44032: 0x81B5, - 44196 - 44032: 0x81B6, - 44197 - 44032: 0x81B7, - 44198 - 44032: 0x81B8, - 44199 - 44032: 0x81B9, - 44200 - 44032: 0xB0DC, - 44201 - 44032: 0xB0DD, - 44202 - 44032: 0xB0DE, - 44203 - 44032: 0x81BA, - 44204 - 44032: 0xB0DF, - 44205 - 44032: 0x81BB, - 44206 - 44032: 0x81BC, - 44207 - 44032: 0xB0E0, - 44208 - 44032: 0xB0E1, - 44209 - 44032: 0x81BD, - 44210 - 44032: 0x81BE, - 44211 - 44032: 0x81BF, - 44212 - 44032: 0x81C0, - 44213 - 44032: 0x81C1, - 44214 - 44032: 0x81C2, - 44215 - 44032: 0x81C3, - 44216 - 44032: 0xB0E2, - 44217 - 44032: 0xB0E3, - 44218 - 44032: 0x81C4, - 44219 - 44032: 0xB0E4, - 44220 - 44032: 0xB0E5, - 44221 - 44032: 0xB0E6, - 44222 - 44032: 0x81C5, - 44223 - 44032: 0x81C6, - 44224 - 44032: 0x81C7, - 44225 - 44032: 0xB0E7, - 44226 - 44032: 0x81C8, - 44227 - 44032: 0x81C9, - 44228 - 44032: 0xB0E8, - 44229 - 44032: 0x81CA, - 44230 - 44032: 0x81CB, - 44231 - 44032: 0x81CC, - 44232 - 44032: 0xB0E9, - 44233 - 44032: 0x81CD, - 44234 - 44032: 0x81CE, - 44235 - 44032: 0x81CF, - 44236 - 44032: 0xB0EA, - 44237 - 44032: 0x81D0, - 44238 - 44032: 0x81D1, - 44239 - 44032: 0x81D2, - 44240 - 44032: 0x81D3, - 44241 - 44032: 0x81D4, - 44242 - 44032: 0x81D5, - 44243 - 44032: 0x81D6, - 44244 - 44032: 0x81D7, - 44245 - 44032: 0xB0EB, - 44246 - 44032: 0x81D8, - 44247 - 44032: 0xB0EC, - 44248 - 44032: 0x81D9, - 44249 - 44032: 0x81DA, - 44250 - 44032: 0x81DB, - 44251 - 44032: 0x81DC, - 44252 - 44032: 0x81DD, - 44253 - 44032: 0x81DE, - 44254 - 44032: 0x81DF, - 44255 - 44032: 0x81E0, - 44256 - 44032: 0xB0ED, - 44257 - 44032: 0xB0EE, - 44258 - 44032: 0x81E1, - 44259 - 44032: 0x81E2, - 44260 - 44032: 0xB0EF, - 44261 - 44032: 0x81E3, - 44262 - 44032: 0x81E4, - 44263 - 44032: 0xB0F0, - 44264 - 44032: 0xB0F1, - 44265 - 44032: 0x81E5, - 44266 - 44032: 0xB0F2, - 44267 - 44032: 0x81E6, - 44268 - 44032: 0xB0F3, - 44269 - 44032: 0x81E7, - 44270 - 44032: 0x81E8, - 44271 - 44032: 0xB0F4, - 44272 - 44032: 0xB0F5, - 44273 - 44032: 0xB0F6, - 44274 - 44032: 0x81E9, - 44275 - 44032: 0xB0F7, - 44276 - 44032: 0x81EA, - 44277 - 44032: 0xB0F8, - 44278 - 44032: 0xB0F9, - 44279 - 44032: 0x81EB, - 44280 - 44032: 0x81EC, - 44281 - 44032: 0x81ED, - 44282 - 44032: 0x81EE, - 44283 - 44032: 0x81EF, - 44284 - 44032: 0xB0FA, - 44285 - 44032: 0xB0FB, - 44286 - 44032: 0x81F0, - 44287 - 44032: 0x81F1, - 44288 - 44032: 0xB0FC, - 44289 - 44032: 0x81F2, - 44290 - 44032: 0x81F3, - 44291 - 44032: 0x81F4, - 44292 - 44032: 0xB0FD, - 44293 - 44032: 0x81F5, - 44294 - 44032: 0xB0FE, - 44295 - 44032: 0x81F6, - 44296 - 44032: 0x81F7, - 44297 - 44032: 0x81F8, - 44298 - 44032: 0x81F9, - 44299 - 44032: 0x81FA, - 44300 - 44032: 0xB1A1, - 44301 - 44032: 0xB1A2, - 44302 - 44032: 0x81FB, - 44303 - 44032: 0xB1A3, - 44304 - 44032: 0x81FC, - 44305 - 44032: 0xB1A4, - 44306 - 44032: 0x81FD, - 44307 - 44032: 0x81FE, - 44308 - 44032: 0x8241, - 44309 - 44032: 0x8242, - 44310 - 44032: 0x8243, - 44311 - 44032: 0x8244, - 44312 - 44032: 0xB1A5, - 44313 - 44032: 0x8245, - 44314 - 44032: 0x8246, - 44315 - 44032: 0x8247, - 44316 - 44032: 0xB1A6, - 44317 - 44032: 0x8248, - 44318 - 44032: 0x8249, - 44319 - 44032: 0x824A, - 44320 - 44032: 0xB1A7, - 44321 - 44032: 0x824B, - 44322 - 44032: 0x824C, - 44323 - 44032: 0x824D, - 44324 - 44032: 0x824E, - 44325 - 44032: 0x824F, - 44326 - 44032: 0x8250, - 44327 - 44032: 0x8251, - 44328 - 44032: 0x8252, - 44329 - 44032: 0xB1A8, - 44330 - 44032: 0x8253, - 44331 - 44032: 0x8254, - 44332 - 44032: 0xB1A9, - 44333 - 44032: 0xB1AA, - 44334 - 44032: 0x8255, - 44335 - 44032: 0x8256, - 44336 - 44032: 0x8257, - 44337 - 44032: 0x8258, - 44338 - 44032: 0x8259, - 44339 - 44032: 0x825A, - 44340 - 44032: 0xB1AB, - 44341 - 44032: 0xB1AC, - 44342 - 44032: 0x8261, - 44343 - 44032: 0x8262, - 44344 - 44032: 0xB1AD, - 44345 - 44032: 0x8263, - 44346 - 44032: 0x8264, - 44347 - 44032: 0x8265, - 44348 - 44032: 0xB1AE, - 44349 - 44032: 0x8266, - 44350 - 44032: 0x8267, - 44351 - 44032: 0x8268, - 44352 - 44032: 0x8269, - 44353 - 44032: 0x826A, - 44354 - 44032: 0x826B, - 44355 - 44032: 0x826C, - 44356 - 44032: 0xB1AF, - 44357 - 44032: 0xB1B0, - 44358 - 44032: 0x826D, - 44359 - 44032: 0xB1B1, - 44360 - 44032: 0x826E, - 44361 - 44032: 0xB1B2, - 44362 - 44032: 0x826F, - 44363 - 44032: 0x8270, - 44364 - 44032: 0x8271, - 44365 - 44032: 0x8272, - 44366 - 44032: 0x8273, - 44367 - 44032: 0x8274, - 44368 - 44032: 0xB1B3, - 44369 - 44032: 0x8275, - 44370 - 44032: 0x8276, - 44371 - 44032: 0x8277, - 44372 - 44032: 0xB1B4, - 44373 - 44032: 0x8278, - 44374 - 44032: 0x8279, - 44375 - 44032: 0x827A, - 44376 - 44032: 0xB1B5, - 44377 - 44032: 0x8281, - 44378 - 44032: 0x8282, - 44379 - 44032: 0x8283, - 44380 - 44032: 0x8284, - 44381 - 44032: 0x8285, - 44382 - 44032: 0x8286, - 44383 - 44032: 0x8287, - 44384 - 44032: 0x8288, - 44385 - 44032: 0xB1B6, - 44386 - 44032: 0x8289, - 44387 - 44032: 0xB1B7, - 44388 - 44032: 0x828A, - 44389 - 44032: 0x828B, - 44390 - 44032: 0x828C, - 44391 - 44032: 0x828D, - 44392 - 44032: 0x828E, - 44393 - 44032: 0x828F, - 44394 - 44032: 0x8290, - 44395 - 44032: 0x8291, - 44396 - 44032: 0xB1B8, - 44397 - 44032: 0xB1B9, - 44398 - 44032: 0x8292, - 44399 - 44032: 0x8293, - 44400 - 44032: 0xB1BA, - 44401 - 44032: 0x8294, - 44402 - 44032: 0x8295, - 44403 - 44032: 0xB1BB, - 44404 - 44032: 0xB1BC, - 44405 - 44032: 0xB1BD, - 44406 - 44032: 0xB1BE, - 44407 - 44032: 0x8296, - 44408 - 44032: 0x8297, - 44409 - 44032: 0x8298, - 44410 - 44032: 0x8299, - 44411 - 44032: 0xB1BF, - 44412 - 44032: 0xB1C0, - 44413 - 44032: 0xB1C1, - 44414 - 44032: 0x829A, - 44415 - 44032: 0xB1C2, - 44416 - 44032: 0x829B, - 44417 - 44032: 0xB1C3, - 44418 - 44032: 0xB1C4, - 44419 - 44032: 0x829C, - 44420 - 44032: 0x829D, - 44421 - 44032: 0x829E, - 44422 - 44032: 0x829F, - 44423 - 44032: 0x82A0, - 44424 - 44032: 0xB1C5, - 44425 - 44032: 0xB1C6, - 44426 - 44032: 0x82A1, - 44427 - 44032: 0x82A2, - 44428 - 44032: 0xB1C7, - 44429 - 44032: 0x82A3, - 44430 - 44032: 0x82A4, - 44431 - 44032: 0x82A5, - 44432 - 44032: 0xB1C8, - 44433 - 44032: 0x82A6, - 44434 - 44032: 0x82A7, - 44435 - 44032: 0x82A8, - 44436 - 44032: 0x82A9, - 44437 - 44032: 0x82AA, - 44438 - 44032: 0x82AB, - 44439 - 44032: 0x82AC, - 44440 - 44032: 0x82AD, - 44441 - 44032: 0x82AE, - 44442 - 44032: 0x82AF, - 44443 - 44032: 0x82B0, - 44444 - 44032: 0xB1C9, - 44445 - 44032: 0xB1CA, - 44446 - 44032: 0x82B1, - 44447 - 44032: 0x82B2, - 44448 - 44032: 0x82B3, - 44449 - 44032: 0x82B4, - 44450 - 44032: 0x82B5, - 44451 - 44032: 0x82B6, - 44452 - 44032: 0xB1CB, - 44453 - 44032: 0x82B7, - 44454 - 44032: 0x82B8, - 44455 - 44032: 0x82B9, - 44456 - 44032: 0x82BA, - 44457 - 44032: 0x82BB, - 44458 - 44032: 0x82BC, - 44459 - 44032: 0x82BD, - 44460 - 44032: 0x82BE, - 44461 - 44032: 0x82BF, - 44462 - 44032: 0x82C0, - 44463 - 44032: 0x82C1, - 44464 - 44032: 0x82C2, - 44465 - 44032: 0x82C3, - 44466 - 44032: 0x82C4, - 44467 - 44032: 0x82C5, - 44468 - 44032: 0x82C6, - 44469 - 44032: 0x82C7, - 44470 - 44032: 0x82C8, - 44471 - 44032: 0xB1CC, - 44472 - 44032: 0x82C9, - 44473 - 44032: 0x82CA, - 44474 - 44032: 0x82CB, - 44475 - 44032: 0x82CC, - 44476 - 44032: 0x82CD, - 44477 - 44032: 0x82CE, - 44478 - 44032: 0x82CF, - 44479 - 44032: 0x82D0, - 44480 - 44032: 0xB1CD, - 44481 - 44032: 0xB1CE, - 44482 - 44032: 0x82D1, - 44483 - 44032: 0x82D2, - 44484 - 44032: 0xB1CF, - 44485 - 44032: 0x82D3, - 44486 - 44032: 0x82D4, - 44487 - 44032: 0x82D5, - 44488 - 44032: 0xB1D0, - 44489 - 44032: 0x82D6, - 44490 - 44032: 0x82D7, - 44491 - 44032: 0x82D8, - 44492 - 44032: 0x82D9, - 44493 - 44032: 0x82DA, - 44494 - 44032: 0x82DB, - 44495 - 44032: 0x82DC, - 44496 - 44032: 0xB1D1, - 44497 - 44032: 0xB1D2, - 44498 - 44032: 0x82DD, - 44499 - 44032: 0xB1D3, - 44500 - 44032: 0x82DE, - 44501 - 44032: 0x82DF, - 44502 - 44032: 0x82E0, - 44503 - 44032: 0x82E1, - 44504 - 44032: 0x82E2, - 44505 - 44032: 0x82E3, - 44506 - 44032: 0x82E4, - 44507 - 44032: 0x82E5, - 44508 - 44032: 0xB1D4, - 44509 - 44032: 0x82E6, - 44510 - 44032: 0x82E7, - 44511 - 44032: 0x82E8, - 44512 - 44032: 0xB1D5, - 44513 - 44032: 0x82E9, - 44514 - 44032: 0x82EA, - 44515 - 44032: 0x82EB, - 44516 - 44032: 0xB1D6, - 44517 - 44032: 0x82EC, - 44518 - 44032: 0x82ED, - 44519 - 44032: 0x82EE, - 44520 - 44032: 0x82EF, - 44521 - 44032: 0x82F0, - 44522 - 44032: 0x82F1, - 44523 - 44032: 0x82F2, - 44524 - 44032: 0x82F3, - 44525 - 44032: 0x82F4, - 44526 - 44032: 0x82F5, - 44527 - 44032: 0x82F6, - 44528 - 44032: 0x82F7, - 44529 - 44032: 0x82F8, - 44530 - 44032: 0x82F9, - 44531 - 44032: 0x82FA, - 44532 - 44032: 0x82FB, - 44533 - 44032: 0x82FC, - 44534 - 44032: 0x82FD, - 44535 - 44032: 0x82FE, - 44536 - 44032: 0xB1D7, - 44537 - 44032: 0xB1D8, - 44538 - 44032: 0x8341, - 44539 - 44032: 0x8342, - 44540 - 44032: 0xB1D9, - 44541 - 44032: 0x8343, - 44542 - 44032: 0x8344, - 44543 - 44032: 0xB1DA, - 44544 - 44032: 0xB1DB, - 44545 - 44032: 0xB1DC, - 44546 - 44032: 0x8345, - 44547 - 44032: 0x8346, - 44548 - 44032: 0x8347, - 44549 - 44032: 0x8348, - 44550 - 44032: 0x8349, - 44551 - 44032: 0x834A, - 44552 - 44032: 0xB1DD, - 44553 - 44032: 0xB1DE, - 44554 - 44032: 0x834B, - 44555 - 44032: 0xB1DF, - 44556 - 44032: 0x834C, - 44557 - 44032: 0xB1E0, - 44558 - 44032: 0x834D, - 44559 - 44032: 0x834E, - 44560 - 44032: 0x834F, - 44561 - 44032: 0x8350, - 44562 - 44032: 0x8351, - 44563 - 44032: 0x8352, - 44564 - 44032: 0xB1E1, - 44565 - 44032: 0x8353, - 44566 - 44032: 0x8354, - 44567 - 44032: 0x8355, - 44568 - 44032: 0x8356, - 44569 - 44032: 0x8357, - 44570 - 44032: 0x8358, - 44571 - 44032: 0x8359, - 44572 - 44032: 0x835A, - 44573 - 44032: 0x8361, - 44574 - 44032: 0x8362, - 44575 - 44032: 0x8363, - 44576 - 44032: 0x8364, - 44577 - 44032: 0x8365, - 44578 - 44032: 0x8366, - 44579 - 44032: 0x8367, - 44580 - 44032: 0x8368, - 44581 - 44032: 0x8369, - 44582 - 44032: 0x836A, - 44583 - 44032: 0x836B, - 44584 - 44032: 0x836C, - 44585 - 44032: 0x836D, - 44586 - 44032: 0x836E, - 44587 - 44032: 0x836F, - 44588 - 44032: 0x8370, - 44589 - 44032: 0x8371, - 44590 - 44032: 0x8372, - 44591 - 44032: 0x8373, - 44592 - 44032: 0xB1E2, - 44593 - 44032: 0xB1E3, - 44594 - 44032: 0x8374, - 44595 - 44032: 0x8375, - 44596 - 44032: 0xB1E4, - 44597 - 44032: 0x8376, - 44598 - 44032: 0x8377, - 44599 - 44032: 0xB1E5, - 44600 - 44032: 0xB1E6, - 44601 - 44032: 0x8378, - 44602 - 44032: 0xB1E7, - 44603 - 44032: 0x8379, - 44604 - 44032: 0x837A, - 44605 - 44032: 0x8381, - 44606 - 44032: 0x8382, - 44607 - 44032: 0x8383, - 44608 - 44032: 0xB1E8, - 44609 - 44032: 0xB1E9, - 44610 - 44032: 0x8384, - 44611 - 44032: 0xB1EA, - 44612 - 44032: 0x8385, - 44613 - 44032: 0xB1EB, - 44614 - 44032: 0xB1EC, - 44615 - 44032: 0x8386, - 44616 - 44032: 0x8387, - 44617 - 44032: 0x8388, - 44618 - 44032: 0xB1ED, - 44619 - 44032: 0x8389, - 44620 - 44032: 0xB1EE, - 44621 - 44032: 0xB1EF, - 44622 - 44032: 0xB1F0, - 44623 - 44032: 0x838A, - 44624 - 44032: 0xB1F1, - 44625 - 44032: 0x838B, - 44626 - 44032: 0x838C, - 44627 - 44032: 0x838D, - 44628 - 44032: 0xB1F2, - 44629 - 44032: 0x838E, - 44630 - 44032: 0xB1F3, - 44631 - 44032: 0x838F, - 44632 - 44032: 0x8390, - 44633 - 44032: 0x8391, - 44634 - 44032: 0x8392, - 44635 - 44032: 0x8393, - 44636 - 44032: 0xB1F4, - 44637 - 44032: 0xB1F5, - 44638 - 44032: 0x8394, - 44639 - 44032: 0xB1F6, - 44640 - 44032: 0xB1F7, - 44641 - 44032: 0xB1F8, - 44642 - 44032: 0x8395, - 44643 - 44032: 0x8396, - 44644 - 44032: 0x8397, - 44645 - 44032: 0xB1F9, - 44646 - 44032: 0x8398, - 44647 - 44032: 0x8399, - 44648 - 44032: 0xB1FA, - 44649 - 44032: 0xB1FB, - 44650 - 44032: 0x839A, - 44651 - 44032: 0x839B, - 44652 - 44032: 0xB1FC, - 44653 - 44032: 0x839C, - 44654 - 44032: 0x839D, - 44655 - 44032: 0x839E, - 44656 - 44032: 0xB1FD, - 44657 - 44032: 0x839F, - 44658 - 44032: 0x83A0, - 44659 - 44032: 0x83A1, - 44660 - 44032: 0x83A2, - 44661 - 44032: 0x83A3, - 44662 - 44032: 0x83A4, - 44663 - 44032: 0x83A5, - 44664 - 44032: 0xB1FE, - 44665 - 44032: 0xB2A1, - 44666 - 44032: 0x83A6, - 44667 - 44032: 0xB2A2, - 44668 - 44032: 0xB2A3, - 44669 - 44032: 0xB2A4, - 44670 - 44032: 0x83A7, - 44671 - 44032: 0x83A8, - 44672 - 44032: 0x83A9, - 44673 - 44032: 0x83AA, - 44674 - 44032: 0x83AB, - 44675 - 44032: 0x83AC, - 44676 - 44032: 0xB2A5, - 44677 - 44032: 0xB2A6, - 44678 - 44032: 0x83AD, - 44679 - 44032: 0x83AE, - 44680 - 44032: 0x83AF, - 44681 - 44032: 0x83B0, - 44682 - 44032: 0x83B1, - 44683 - 44032: 0x83B2, - 44684 - 44032: 0xB2A7, - 44685 - 44032: 0x83B3, - 44686 - 44032: 0x83B4, - 44687 - 44032: 0x83B5, - 44688 - 44032: 0x83B6, - 44689 - 44032: 0x83B7, - 44690 - 44032: 0x83B8, - 44691 - 44032: 0x83B9, - 44692 - 44032: 0x83BA, - 44693 - 44032: 0x83BB, - 44694 - 44032: 0x83BC, - 44695 - 44032: 0x83BD, - 44696 - 44032: 0x83BE, - 44697 - 44032: 0x83BF, - 44698 - 44032: 0x83C0, - 44699 - 44032: 0x83C1, - 44700 - 44032: 0x83C2, - 44701 - 44032: 0x83C3, - 44702 - 44032: 0x83C4, - 44703 - 44032: 0x83C5, - 44704 - 44032: 0x83C6, - 44705 - 44032: 0x83C7, - 44706 - 44032: 0x83C8, - 44707 - 44032: 0x83C9, - 44708 - 44032: 0x83CA, - 44709 - 44032: 0x83CB, - 44710 - 44032: 0x83CC, - 44711 - 44032: 0x83CD, - 44712 - 44032: 0x83CE, - 44713 - 44032: 0x83CF, - 44714 - 44032: 0x83D0, - 44715 - 44032: 0x83D1, - 44716 - 44032: 0x83D2, - 44717 - 44032: 0x83D3, - 44718 - 44032: 0x83D4, - 44719 - 44032: 0x83D5, - 44720 - 44032: 0x83D6, - 44721 - 44032: 0x83D7, - 44722 - 44032: 0x83D8, - 44723 - 44032: 0x83D9, - 44724 - 44032: 0x83DA, - 44725 - 44032: 0x83DB, - 44726 - 44032: 0x83DC, - 44727 - 44032: 0x83DD, - 44728 - 44032: 0x83DE, - 44729 - 44032: 0x83DF, - 44730 - 44032: 0x83E0, - 44731 - 44032: 0x83E1, - 44732 - 44032: 0xB2A8, - 44733 - 44032: 0xB2A9, - 44734 - 44032: 0xB2AA, - 44735 - 44032: 0x83E2, - 44736 - 44032: 0xB2AB, - 44737 - 44032: 0x83E3, - 44738 - 44032: 0x83E4, - 44739 - 44032: 0x83E5, - 44740 - 44032: 0xB2AC, - 44741 - 44032: 0x83E6, - 44742 - 44032: 0x83E7, - 44743 - 44032: 0x83E8, - 44744 - 44032: 0x83E9, - 44745 - 44032: 0x83EA, - 44746 - 44032: 0x83EB, - 44747 - 44032: 0x83EC, - 44748 - 44032: 0xB2AD, - 44749 - 44032: 0xB2AE, - 44750 - 44032: 0x83ED, - 44751 - 44032: 0xB2AF, - 44752 - 44032: 0xB2B0, - 44753 - 44032: 0xB2B1, - 44754 - 44032: 0x83EE, - 44755 - 44032: 0x83EF, - 44756 - 44032: 0x83F0, - 44757 - 44032: 0x83F1, - 44758 - 44032: 0x83F2, - 44759 - 44032: 0x83F3, - 44760 - 44032: 0xB2B2, - 44761 - 44032: 0xB2B3, - 44762 - 44032: 0x83F4, - 44763 - 44032: 0x83F5, - 44764 - 44032: 0xB2B4, - 44765 - 44032: 0x83F6, - 44766 - 44032: 0x83F7, - 44767 - 44032: 0x83F8, - 44768 - 44032: 0x83F9, - 44769 - 44032: 0x83FA, - 44770 - 44032: 0x83FB, - 44771 - 44032: 0x83FC, - 44772 - 44032: 0x83FD, - 44773 - 44032: 0x83FE, - 44774 - 44032: 0x8441, - 44775 - 44032: 0x8442, - 44776 - 44032: 0xB2B5, - 44777 - 44032: 0x8443, - 44778 - 44032: 0x8444, - 44779 - 44032: 0xB2B6, - 44780 - 44032: 0x8445, - 44781 - 44032: 0xB2B7, - 44782 - 44032: 0x8446, - 44783 - 44032: 0x8447, - 44784 - 44032: 0x8448, - 44785 - 44032: 0x8449, - 44786 - 44032: 0x844A, - 44787 - 44032: 0x844B, - 44788 - 44032: 0xB2B8, - 44789 - 44032: 0x844C, - 44790 - 44032: 0x844D, - 44791 - 44032: 0x844E, - 44792 - 44032: 0xB2B9, - 44793 - 44032: 0x844F, - 44794 - 44032: 0x8450, - 44795 - 44032: 0x8451, - 44796 - 44032: 0xB2BA, - 44797 - 44032: 0x8452, - 44798 - 44032: 0x8453, - 44799 - 44032: 0x8454, - 44800 - 44032: 0x8455, - 44801 - 44032: 0x8456, - 44802 - 44032: 0x8457, - 44803 - 44032: 0x8458, - 44804 - 44032: 0x8459, - 44805 - 44032: 0x845A, - 44806 - 44032: 0x8461, - 44807 - 44032: 0xB2BB, - 44808 - 44032: 0xB2BC, - 44809 - 44032: 0x8462, - 44810 - 44032: 0x8463, - 44811 - 44032: 0x8464, - 44812 - 44032: 0x8465, - 44813 - 44032: 0xB2BD, - 44814 - 44032: 0x8466, - 44815 - 44032: 0x8467, - 44816 - 44032: 0xB2BE, - 44817 - 44032: 0x8468, - 44818 - 44032: 0x8469, - 44819 - 44032: 0x846A, - 44820 - 44032: 0x846B, - 44821 - 44032: 0x846C, - 44822 - 44032: 0x846D, - 44823 - 44032: 0x846E, - 44824 - 44032: 0x846F, - 44825 - 44032: 0x8470, - 44826 - 44032: 0x8471, - 44827 - 44032: 0x8472, - 44828 - 44032: 0x8473, - 44829 - 44032: 0x8474, - 44830 - 44032: 0x8475, - 44831 - 44032: 0x8476, - 44832 - 44032: 0x8477, - 44833 - 44032: 0x8478, - 44834 - 44032: 0x8479, - 44835 - 44032: 0x847A, - 44836 - 44032: 0x8481, - 44837 - 44032: 0x8482, - 44838 - 44032: 0x8483, - 44839 - 44032: 0x8484, - 44840 - 44032: 0x8485, - 44841 - 44032: 0x8486, - 44842 - 44032: 0x8487, - 44843 - 44032: 0x8488, - 44844 - 44032: 0xB2BF, - 44845 - 44032: 0xB2C0, - 44846 - 44032: 0x8489, - 44847 - 44032: 0x848A, - 44848 - 44032: 0xB2C1, - 44849 - 44032: 0x848B, - 44850 - 44032: 0xB2C2, - 44851 - 44032: 0x848C, - 44852 - 44032: 0xB2C3, - 44853 - 44032: 0x848D, - 44854 - 44032: 0x848E, - 44855 - 44032: 0x848F, - 44856 - 44032: 0x8490, - 44857 - 44032: 0x8491, - 44858 - 44032: 0x8492, - 44859 - 44032: 0x8493, - 44860 - 44032: 0xB2C4, - 44861 - 44032: 0xB2C5, - 44862 - 44032: 0x8494, - 44863 - 44032: 0xB2C6, - 44864 - 44032: 0x8495, - 44865 - 44032: 0xB2C7, - 44866 - 44032: 0xB2C8, - 44867 - 44032: 0xB2C9, - 44868 - 44032: 0x8496, - 44869 - 44032: 0x8497, - 44870 - 44032: 0x8498, - 44871 - 44032: 0x8499, - 44872 - 44032: 0xB2CA, - 44873 - 44032: 0xB2CB, - 44874 - 44032: 0x849A, - 44875 - 44032: 0x849B, - 44876 - 44032: 0x849C, - 44877 - 44032: 0x849D, - 44878 - 44032: 0x849E, - 44879 - 44032: 0x849F, - 44880 - 44032: 0xB2CC, - 44881 - 44032: 0x84A0, - 44882 - 44032: 0x84A1, - 44883 - 44032: 0x84A2, - 44884 - 44032: 0x84A3, - 44885 - 44032: 0x84A4, - 44886 - 44032: 0x84A5, - 44887 - 44032: 0x84A6, - 44888 - 44032: 0x84A7, - 44889 - 44032: 0x84A8, - 44890 - 44032: 0x84A9, - 44891 - 44032: 0x84AA, - 44892 - 44032: 0xB2CD, - 44893 - 44032: 0xB2CE, - 44894 - 44032: 0x84AB, - 44895 - 44032: 0x84AC, - 44896 - 44032: 0x84AD, - 44897 - 44032: 0x84AE, - 44898 - 44032: 0x84AF, - 44899 - 44032: 0x84B0, - 44900 - 44032: 0xB2CF, - 44901 - 44032: 0xB2D0, - 44902 - 44032: 0x84B1, - 44903 - 44032: 0x84B2, - 44904 - 44032: 0x84B3, - 44905 - 44032: 0x84B4, - 44906 - 44032: 0x84B5, - 44907 - 44032: 0x84B6, - 44908 - 44032: 0x84B7, - 44909 - 44032: 0x84B8, - 44910 - 44032: 0x84B9, - 44911 - 44032: 0x84BA, - 44912 - 44032: 0x84BB, - 44913 - 44032: 0x84BC, - 44914 - 44032: 0x84BD, - 44915 - 44032: 0x84BE, - 44916 - 44032: 0x84BF, - 44917 - 44032: 0x84C0, - 44918 - 44032: 0x84C1, - 44919 - 44032: 0x84C2, - 44920 - 44032: 0x84C3, - 44921 - 44032: 0xB2D1, - 44922 - 44032: 0x84C4, - 44923 - 44032: 0x84C5, - 44924 - 44032: 0x84C6, - 44925 - 44032: 0x84C7, - 44926 - 44032: 0x84C8, - 44927 - 44032: 0x84C9, - 44928 - 44032: 0xB2D2, - 44929 - 44032: 0x84CA, - 44930 - 44032: 0x84CB, - 44931 - 44032: 0x84CC, - 44932 - 44032: 0xB2D3, - 44933 - 44032: 0x84CD, - 44934 - 44032: 0x84CE, - 44935 - 44032: 0x84CF, - 44936 - 44032: 0xB2D4, - 44937 - 44032: 0x84D0, - 44938 - 44032: 0x84D1, - 44939 - 44032: 0x84D2, - 44940 - 44032: 0x84D3, - 44941 - 44032: 0x84D4, - 44942 - 44032: 0x84D5, - 44943 - 44032: 0x84D6, - 44944 - 44032: 0xB2D5, - 44945 - 44032: 0xB2D6, - 44946 - 44032: 0x84D7, - 44947 - 44032: 0x84D8, - 44948 - 44032: 0x84D9, - 44949 - 44032: 0xB2D7, - 44950 - 44032: 0x84DA, - 44951 - 44032: 0x84DB, - 44952 - 44032: 0x84DC, - 44953 - 44032: 0x84DD, - 44954 - 44032: 0x84DE, - 44955 - 44032: 0x84DF, - 44956 - 44032: 0xB2D8, - 44957 - 44032: 0x84E0, - 44958 - 44032: 0x84E1, - 44959 - 44032: 0x84E2, - 44960 - 44032: 0x84E3, - 44961 - 44032: 0x84E4, - 44962 - 44032: 0x84E5, - 44963 - 44032: 0x84E6, - 44964 - 44032: 0x84E7, - 44965 - 44032: 0x84E8, - 44966 - 44032: 0x84E9, - 44967 - 44032: 0x84EA, - 44968 - 44032: 0x84EB, - 44969 - 44032: 0x84EC, - 44970 - 44032: 0x84ED, - 44971 - 44032: 0x84EE, - 44972 - 44032: 0x84EF, - 44973 - 44032: 0x84F0, - 44974 - 44032: 0x84F1, - 44975 - 44032: 0x84F2, - 44976 - 44032: 0x84F3, - 44977 - 44032: 0x84F4, - 44978 - 44032: 0x84F5, - 44979 - 44032: 0x84F6, - 44980 - 44032: 0x84F7, - 44981 - 44032: 0x84F8, - 44982 - 44032: 0x84F9, - 44983 - 44032: 0x84FA, - 44984 - 44032: 0xB2D9, - 44985 - 44032: 0xB2DA, - 44986 - 44032: 0x84FB, - 44987 - 44032: 0x84FC, - 44988 - 44032: 0xB2DB, - 44989 - 44032: 0x84FD, - 44990 - 44032: 0x84FE, - 44991 - 44032: 0x8541, - 44992 - 44032: 0xB2DC, - 44993 - 44032: 0x8542, - 44994 - 44032: 0x8543, - 44995 - 44032: 0x8544, - 44996 - 44032: 0x8545, - 44997 - 44032: 0x8546, - 44998 - 44032: 0x8547, - 44999 - 44032: 0xB2DD, - 45000 - 44032: 0xB2DE, - 45001 - 44032: 0xB2DF, - 45002 - 44032: 0x8548, - 45003 - 44032: 0xB2E0, - 45004 - 44032: 0x8549, - 45005 - 44032: 0xB2E1, - 45006 - 44032: 0xB2E2, - 45007 - 44032: 0x854A, - 45008 - 44032: 0x854B, - 45009 - 44032: 0x854C, - 45010 - 44032: 0x854D, - 45011 - 44032: 0x854E, - 45012 - 44032: 0xB2E3, - 45013 - 44032: 0x854F, - 45014 - 44032: 0x8550, - 45015 - 44032: 0x8551, - 45016 - 44032: 0x8552, - 45017 - 44032: 0x8553, - 45018 - 44032: 0x8554, - 45019 - 44032: 0x8555, - 45020 - 44032: 0xB2E4, - 45021 - 44032: 0x8556, - 45022 - 44032: 0x8557, - 45023 - 44032: 0x8558, - 45024 - 44032: 0x8559, - 45025 - 44032: 0x855A, - 45026 - 44032: 0x8561, - 45027 - 44032: 0x8562, - 45028 - 44032: 0x8563, - 45029 - 44032: 0x8564, - 45030 - 44032: 0x8565, - 45031 - 44032: 0x8566, - 45032 - 44032: 0xB2E5, - 45033 - 44032: 0xB2E6, - 45034 - 44032: 0x8567, - 45035 - 44032: 0x8568, - 45036 - 44032: 0x8569, - 45037 - 44032: 0x856A, - 45038 - 44032: 0x856B, - 45039 - 44032: 0x856C, - 45040 - 44032: 0xB2E7, - 45041 - 44032: 0xB2E8, - 45042 - 44032: 0x856D, - 45043 - 44032: 0x856E, - 45044 - 44032: 0xB2E9, - 45045 - 44032: 0x856F, - 45046 - 44032: 0x8570, - 45047 - 44032: 0x8571, - 45048 - 44032: 0xB2EA, - 45049 - 44032: 0x8572, - 45050 - 44032: 0x8573, - 45051 - 44032: 0x8574, - 45052 - 44032: 0x8575, - 45053 - 44032: 0x8576, - 45054 - 44032: 0x8577, - 45055 - 44032: 0x8578, - 45056 - 44032: 0xB2EB, - 45057 - 44032: 0xB2EC, - 45058 - 44032: 0x8579, - 45059 - 44032: 0x857A, - 45060 - 44032: 0xB2ED, - 45061 - 44032: 0x8581, - 45062 - 44032: 0x8582, - 45063 - 44032: 0x8583, - 45064 - 44032: 0x8584, - 45065 - 44032: 0x8585, - 45066 - 44032: 0x8586, - 45067 - 44032: 0x8587, - 45068 - 44032: 0xB2EE, - 45069 - 44032: 0x8588, - 45070 - 44032: 0x8589, - 45071 - 44032: 0x858A, - 45072 - 44032: 0xB2EF, - 45073 - 44032: 0x858B, - 45074 - 44032: 0x858C, - 45075 - 44032: 0x858D, - 45076 - 44032: 0xB2F0, - 45077 - 44032: 0x858E, - 45078 - 44032: 0x858F, - 45079 - 44032: 0x8590, - 45080 - 44032: 0x8591, - 45081 - 44032: 0x8592, - 45082 - 44032: 0x8593, - 45083 - 44032: 0x8594, - 45084 - 44032: 0xB2F1, - 45085 - 44032: 0xB2F2, - 45086 - 44032: 0x8595, - 45087 - 44032: 0x8596, - 45088 - 44032: 0x8597, - 45089 - 44032: 0x8598, - 45090 - 44032: 0x8599, - 45091 - 44032: 0x859A, - 45092 - 44032: 0x859B, - 45093 - 44032: 0x859C, - 45094 - 44032: 0x859D, - 45095 - 44032: 0x859E, - 45096 - 44032: 0xB2F3, - 45097 - 44032: 0x859F, - 45098 - 44032: 0x85A0, - 45099 - 44032: 0x85A1, - 45100 - 44032: 0x85A2, - 45101 - 44032: 0x85A3, - 45102 - 44032: 0x85A4, - 45103 - 44032: 0x85A5, - 45104 - 44032: 0x85A6, - 45105 - 44032: 0x85A7, - 45106 - 44032: 0x85A8, - 45107 - 44032: 0x85A9, - 45108 - 44032: 0x85AA, - 45109 - 44032: 0x85AB, - 45110 - 44032: 0x85AC, - 45111 - 44032: 0x85AD, - 45112 - 44032: 0x85AE, - 45113 - 44032: 0x85AF, - 45114 - 44032: 0x85B0, - 45115 - 44032: 0x85B1, - 45116 - 44032: 0x85B2, - 45117 - 44032: 0x85B3, - 45118 - 44032: 0x85B4, - 45119 - 44032: 0x85B5, - 45120 - 44032: 0x85B6, - 45121 - 44032: 0x85B7, - 45122 - 44032: 0x85B8, - 45123 - 44032: 0x85B9, - 45124 - 44032: 0xB2F4, - 45125 - 44032: 0xB2F5, - 45126 - 44032: 0x85BA, - 45127 - 44032: 0x85BB, - 45128 - 44032: 0xB2F6, - 45129 - 44032: 0x85BC, - 45130 - 44032: 0xB2F7, - 45131 - 44032: 0x85BD, - 45132 - 44032: 0xB2F8, - 45133 - 44032: 0x85BE, - 45134 - 44032: 0xB2F9, - 45135 - 44032: 0x85BF, - 45136 - 44032: 0x85C0, - 45137 - 44032: 0x85C1, - 45138 - 44032: 0x85C2, - 45139 - 44032: 0xB2FA, - 45140 - 44032: 0xB2FB, - 45141 - 44032: 0xB2FC, - 45142 - 44032: 0x85C3, - 45143 - 44032: 0xB2FD, - 45144 - 44032: 0x85C4, - 45145 - 44032: 0xB2FE, - 45146 - 44032: 0x85C5, - 45147 - 44032: 0x85C6, - 45148 - 44032: 0x85C7, - 45149 - 44032: 0xB3A1, - 45150 - 44032: 0x85C8, - 45151 - 44032: 0x85C9, - 45152 - 44032: 0x85CA, - 45153 - 44032: 0x85CB, - 45154 - 44032: 0x85CC, - 45155 - 44032: 0x85CD, - 45156 - 44032: 0x85CE, - 45157 - 44032: 0x85CF, - 45158 - 44032: 0x85D0, - 45159 - 44032: 0x85D1, - 45160 - 44032: 0x85D2, - 45161 - 44032: 0x85D3, - 45162 - 44032: 0x85D4, - 45163 - 44032: 0x85D5, - 45164 - 44032: 0x85D6, - 45165 - 44032: 0x85D7, - 45166 - 44032: 0x85D8, - 45167 - 44032: 0x85D9, - 45168 - 44032: 0x85DA, - 45169 - 44032: 0x85DB, - 45170 - 44032: 0x85DC, - 45171 - 44032: 0x85DD, - 45172 - 44032: 0x85DE, - 45173 - 44032: 0x85DF, - 45174 - 44032: 0x85E0, - 45175 - 44032: 0x85E1, - 45176 - 44032: 0x85E2, - 45177 - 44032: 0x85E3, - 45178 - 44032: 0x85E4, - 45179 - 44032: 0x85E5, - 45180 - 44032: 0xB3A2, - 45181 - 44032: 0xB3A3, - 45182 - 44032: 0x85E6, - 45183 - 44032: 0x85E7, - 45184 - 44032: 0xB3A4, - 45185 - 44032: 0x85E8, - 45186 - 44032: 0x85E9, - 45187 - 44032: 0x85EA, - 45188 - 44032: 0xB3A5, - 45189 - 44032: 0x85EB, - 45190 - 44032: 0x85EC, - 45191 - 44032: 0x85ED, - 45192 - 44032: 0x85EE, - 45193 - 44032: 0x85EF, - 45194 - 44032: 0x85F0, - 45195 - 44032: 0x85F1, - 45196 - 44032: 0xB3A6, - 45197 - 44032: 0xB3A7, - 45198 - 44032: 0x85F2, - 45199 - 44032: 0xB3A8, - 45200 - 44032: 0x85F3, - 45201 - 44032: 0xB3A9, - 45202 - 44032: 0x85F4, - 45203 - 44032: 0x85F5, - 45204 - 44032: 0x85F6, - 45205 - 44032: 0x85F7, - 45206 - 44032: 0x85F8, - 45207 - 44032: 0x85F9, - 45208 - 44032: 0xB3AA, - 45209 - 44032: 0xB3AB, - 45210 - 44032: 0xB3AC, - 45211 - 44032: 0x85FA, - 45212 - 44032: 0xB3AD, - 45213 - 44032: 0x85FB, - 45214 - 44032: 0x85FC, - 45215 - 44032: 0xB3AE, - 45216 - 44032: 0xB3AF, - 45217 - 44032: 0xB3B0, - 45218 - 44032: 0xB3B1, - 45219 - 44032: 0x85FD, - 45220 - 44032: 0x85FE, - 45221 - 44032: 0x8641, - 45222 - 44032: 0x8642, - 45223 - 44032: 0x8643, - 45224 - 44032: 0xB3B2, - 45225 - 44032: 0xB3B3, - 45226 - 44032: 0x8644, - 45227 - 44032: 0xB3B4, - 45228 - 44032: 0xB3B5, - 45229 - 44032: 0xB3B6, - 45230 - 44032: 0xB3B7, - 45231 - 44032: 0xB3B8, - 45232 - 44032: 0x8645, - 45233 - 44032: 0xB3B9, - 45234 - 44032: 0x8646, - 45235 - 44032: 0xB3BA, - 45236 - 44032: 0xB3BB, - 45237 - 44032: 0xB3BC, - 45238 - 44032: 0x8647, - 45239 - 44032: 0x8648, - 45240 - 44032: 0xB3BD, - 45241 - 44032: 0x8649, - 45242 - 44032: 0x864A, - 45243 - 44032: 0x864B, - 45244 - 44032: 0xB3BE, - 45245 - 44032: 0x864C, - 45246 - 44032: 0x864D, - 45247 - 44032: 0x864E, - 45248 - 44032: 0x864F, - 45249 - 44032: 0x8650, - 45250 - 44032: 0x8651, - 45251 - 44032: 0x8652, - 45252 - 44032: 0xB3BF, - 45253 - 44032: 0xB3C0, - 45254 - 44032: 0x8653, - 45255 - 44032: 0xB3C1, - 45256 - 44032: 0xB3C2, - 45257 - 44032: 0xB3C3, - 45258 - 44032: 0x8654, - 45259 - 44032: 0x8655, - 45260 - 44032: 0x8656, - 45261 - 44032: 0x8657, - 45262 - 44032: 0x8658, - 45263 - 44032: 0x8659, - 45264 - 44032: 0xB3C4, - 45265 - 44032: 0xB3C5, - 45266 - 44032: 0x865A, - 45267 - 44032: 0x8661, - 45268 - 44032: 0xB3C6, - 45269 - 44032: 0x8662, - 45270 - 44032: 0x8663, - 45271 - 44032: 0x8664, - 45272 - 44032: 0xB3C7, - 45273 - 44032: 0x8665, - 45274 - 44032: 0x8666, - 45275 - 44032: 0x8667, - 45276 - 44032: 0x8668, - 45277 - 44032: 0x8669, - 45278 - 44032: 0x866A, - 45279 - 44032: 0x866B, - 45280 - 44032: 0xB3C8, - 45281 - 44032: 0x866C, - 45282 - 44032: 0x866D, - 45283 - 44032: 0x866E, - 45284 - 44032: 0x866F, - 45285 - 44032: 0xB3C9, - 45286 - 44032: 0x8670, - 45287 - 44032: 0x8671, - 45288 - 44032: 0x8672, - 45289 - 44032: 0x8673, - 45290 - 44032: 0x8674, - 45291 - 44032: 0x8675, - 45292 - 44032: 0x8676, - 45293 - 44032: 0x8677, - 45294 - 44032: 0x8678, - 45295 - 44032: 0x8679, - 45296 - 44032: 0x867A, - 45297 - 44032: 0x8681, - 45298 - 44032: 0x8682, - 45299 - 44032: 0x8683, - 45300 - 44032: 0x8684, - 45301 - 44032: 0x8685, - 45302 - 44032: 0x8686, - 45303 - 44032: 0x8687, - 45304 - 44032: 0x8688, - 45305 - 44032: 0x8689, - 45306 - 44032: 0x868A, - 45307 - 44032: 0x868B, - 45308 - 44032: 0x868C, - 45309 - 44032: 0x868D, - 45310 - 44032: 0x868E, - 45311 - 44032: 0x868F, - 45312 - 44032: 0x8690, - 45313 - 44032: 0x8691, - 45314 - 44032: 0x8692, - 45315 - 44032: 0x8693, - 45316 - 44032: 0x8694, - 45317 - 44032: 0x8695, - 45318 - 44032: 0x8696, - 45319 - 44032: 0x8697, - 45320 - 44032: 0xB3CA, - 45321 - 44032: 0xB3CB, - 45322 - 44032: 0x8698, - 45323 - 44032: 0xB3CC, - 45324 - 44032: 0xB3CD, - 45325 - 44032: 0x8699, - 45326 - 44032: 0x869A, - 45327 - 44032: 0x869B, - 45328 - 44032: 0xB3CE, - 45329 - 44032: 0x869C, - 45330 - 44032: 0xB3CF, - 45331 - 44032: 0xB3D0, - 45332 - 44032: 0x869D, - 45333 - 44032: 0x869E, - 45334 - 44032: 0x869F, - 45335 - 44032: 0x86A0, - 45336 - 44032: 0xB3D1, - 45337 - 44032: 0xB3D2, - 45338 - 44032: 0x86A1, - 45339 - 44032: 0xB3D3, - 45340 - 44032: 0xB3D4, - 45341 - 44032: 0xB3D5, - 45342 - 44032: 0x86A2, - 45343 - 44032: 0x86A3, - 45344 - 44032: 0x86A4, - 45345 - 44032: 0x86A5, - 45346 - 44032: 0x86A6, - 45347 - 44032: 0xB3D6, - 45348 - 44032: 0xB3D7, - 45349 - 44032: 0xB3D8, - 45350 - 44032: 0x86A7, - 45351 - 44032: 0x86A8, - 45352 - 44032: 0xB3D9, - 45353 - 44032: 0x86A9, - 45354 - 44032: 0x86AA, - 45355 - 44032: 0x86AB, - 45356 - 44032: 0xB3DA, - 45357 - 44032: 0x86AC, - 45358 - 44032: 0x86AD, - 45359 - 44032: 0x86AE, - 45360 - 44032: 0x86AF, - 45361 - 44032: 0x86B0, - 45362 - 44032: 0x86B1, - 45363 - 44032: 0x86B2, - 45364 - 44032: 0xB3DB, - 45365 - 44032: 0xB3DC, - 45366 - 44032: 0x86B3, - 45367 - 44032: 0xB3DD, - 45368 - 44032: 0xB3DE, - 45369 - 44032: 0xB3DF, - 45370 - 44032: 0x86B4, - 45371 - 44032: 0x86B5, - 45372 - 44032: 0x86B6, - 45373 - 44032: 0x86B7, - 45374 - 44032: 0x86B8, - 45375 - 44032: 0x86B9, - 45376 - 44032: 0xB3E0, - 45377 - 44032: 0xB3E1, - 45378 - 44032: 0x86BA, - 45379 - 44032: 0x86BB, - 45380 - 44032: 0xB3E2, - 45381 - 44032: 0x86BC, - 45382 - 44032: 0x86BD, - 45383 - 44032: 0x86BE, - 45384 - 44032: 0xB3E3, - 45385 - 44032: 0x86BF, - 45386 - 44032: 0x86C0, - 45387 - 44032: 0x86C1, - 45388 - 44032: 0x86C2, - 45389 - 44032: 0x86C3, - 45390 - 44032: 0x86C4, - 45391 - 44032: 0x86C5, - 45392 - 44032: 0xB3E4, - 45393 - 44032: 0xB3E5, - 45394 - 44032: 0x86C6, - 45395 - 44032: 0x86C7, - 45396 - 44032: 0xB3E6, - 45397 - 44032: 0xB3E7, - 45398 - 44032: 0x86C8, - 45399 - 44032: 0x86C9, - 45400 - 44032: 0xB3E8, - 45401 - 44032: 0x86CA, - 45402 - 44032: 0x86CB, - 45403 - 44032: 0x86CC, - 45404 - 44032: 0xB3E9, - 45405 - 44032: 0x86CD, - 45406 - 44032: 0x86CE, - 45407 - 44032: 0x86CF, - 45408 - 44032: 0xB3EA, - 45409 - 44032: 0x86D0, - 45410 - 44032: 0x86D1, - 45411 - 44032: 0x86D2, - 45412 - 44032: 0x86D3, - 45413 - 44032: 0x86D4, - 45414 - 44032: 0x86D5, - 45415 - 44032: 0x86D6, - 45416 - 44032: 0x86D7, - 45417 - 44032: 0x86D8, - 45418 - 44032: 0x86D9, - 45419 - 44032: 0x86DA, - 45420 - 44032: 0x86DB, - 45421 - 44032: 0x86DC, - 45422 - 44032: 0x86DD, - 45423 - 44032: 0x86DE, - 45424 - 44032: 0x86DF, - 45425 - 44032: 0x86E0, - 45426 - 44032: 0x86E1, - 45427 - 44032: 0x86E2, - 45428 - 44032: 0x86E3, - 45429 - 44032: 0x86E4, - 45430 - 44032: 0x86E5, - 45431 - 44032: 0x86E6, - 45432 - 44032: 0xB3EB, - 45433 - 44032: 0xB3EC, - 45434 - 44032: 0x86E7, - 45435 - 44032: 0x86E8, - 45436 - 44032: 0xB3ED, - 45437 - 44032: 0x86E9, - 45438 - 44032: 0x86EA, - 45439 - 44032: 0x86EB, - 45440 - 44032: 0xB3EE, - 45441 - 44032: 0x86EC, - 45442 - 44032: 0xB3EF, - 45443 - 44032: 0x86ED, - 45444 - 44032: 0x86EE, - 45445 - 44032: 0x86EF, - 45446 - 44032: 0x86F0, - 45447 - 44032: 0x86F1, - 45448 - 44032: 0xB3F0, - 45449 - 44032: 0xB3F1, - 45450 - 44032: 0x86F2, - 45451 - 44032: 0xB3F2, - 45452 - 44032: 0x86F3, - 45453 - 44032: 0xB3F3, - 45454 - 44032: 0x86F4, - 45455 - 44032: 0x86F5, - 45456 - 44032: 0x86F6, - 45457 - 44032: 0x86F7, - 45458 - 44032: 0xB3F4, - 45459 - 44032: 0xB3F5, - 45460 - 44032: 0xB3F6, - 45461 - 44032: 0x86F8, - 45462 - 44032: 0x86F9, - 45463 - 44032: 0x86FA, - 45464 - 44032: 0xB3F7, - 45465 - 44032: 0x86FB, - 45466 - 44032: 0x86FC, - 45467 - 44032: 0x86FD, - 45468 - 44032: 0xB3F8, - 45469 - 44032: 0x86FE, - 45470 - 44032: 0x8741, - 45471 - 44032: 0x8742, - 45472 - 44032: 0x8743, - 45473 - 44032: 0x8744, - 45474 - 44032: 0x8745, - 45475 - 44032: 0x8746, - 45476 - 44032: 0x8747, - 45477 - 44032: 0x8748, - 45478 - 44032: 0x8749, - 45479 - 44032: 0x874A, - 45480 - 44032: 0xB3F9, - 45481 - 44032: 0x874B, - 45482 - 44032: 0x874C, - 45483 - 44032: 0x874D, - 45484 - 44032: 0x874E, - 45485 - 44032: 0x874F, - 45486 - 44032: 0x8750, - 45487 - 44032: 0x8751, - 45488 - 44032: 0x8752, - 45489 - 44032: 0x8753, - 45490 - 44032: 0x8754, - 45491 - 44032: 0x8755, - 45492 - 44032: 0x8756, - 45493 - 44032: 0x8757, - 45494 - 44032: 0x8758, - 45495 - 44032: 0x8759, - 45496 - 44032: 0x875A, - 45497 - 44032: 0x8761, - 45498 - 44032: 0x8762, - 45499 - 44032: 0x8763, - 45500 - 44032: 0x8764, - 45501 - 44032: 0x8765, - 45502 - 44032: 0x8766, - 45503 - 44032: 0x8767, - 45504 - 44032: 0x8768, - 45505 - 44032: 0x8769, - 45506 - 44032: 0x876A, - 45507 - 44032: 0x876B, - 45508 - 44032: 0x876C, - 45509 - 44032: 0x876D, - 45510 - 44032: 0x876E, - 45511 - 44032: 0x876F, - 45512 - 44032: 0x8770, - 45513 - 44032: 0x8771, - 45514 - 44032: 0x8772, - 45515 - 44032: 0x8773, - 45516 - 44032: 0xB3FA, - 45517 - 44032: 0x8774, - 45518 - 44032: 0x8775, - 45519 - 44032: 0x8776, - 45520 - 44032: 0xB3FB, - 45521 - 44032: 0x8777, - 45522 - 44032: 0x8778, - 45523 - 44032: 0x8779, - 45524 - 44032: 0xB3FC, - 45525 - 44032: 0x877A, - 45526 - 44032: 0x8781, - 45527 - 44032: 0x8782, - 45528 - 44032: 0x8783, - 45529 - 44032: 0x8784, - 45530 - 44032: 0x8785, - 45531 - 44032: 0x8786, - 45532 - 44032: 0xB3FD, - 45533 - 44032: 0xB3FE, - 45534 - 44032: 0x8787, - 45535 - 44032: 0xB4A1, - 45536 - 44032: 0x8788, - 45537 - 44032: 0x8789, - 45538 - 44032: 0x878A, - 45539 - 44032: 0x878B, - 45540 - 44032: 0x878C, - 45541 - 44032: 0x878D, - 45542 - 44032: 0x878E, - 45543 - 44032: 0x878F, - 45544 - 44032: 0xB4A2, - 45545 - 44032: 0xB4A3, - 45546 - 44032: 0x8790, - 45547 - 44032: 0x8791, - 45548 - 44032: 0xB4A4, - 45549 - 44032: 0x8792, - 45550 - 44032: 0x8793, - 45551 - 44032: 0x8794, - 45552 - 44032: 0xB4A5, - 45553 - 44032: 0x8795, - 45554 - 44032: 0x8796, - 45555 - 44032: 0x8797, - 45556 - 44032: 0x8798, - 45557 - 44032: 0x8799, - 45558 - 44032: 0x879A, - 45559 - 44032: 0x879B, - 45560 - 44032: 0x879C, - 45561 - 44032: 0xB4A6, - 45562 - 44032: 0x879D, - 45563 - 44032: 0xB4A7, - 45564 - 44032: 0x879E, - 45565 - 44032: 0xB4A8, - 45566 - 44032: 0x879F, - 45567 - 44032: 0x87A0, - 45568 - 44032: 0x87A1, - 45569 - 44032: 0x87A2, - 45570 - 44032: 0x87A3, - 45571 - 44032: 0x87A4, - 45572 - 44032: 0xB4A9, - 45573 - 44032: 0xB4AA, - 45574 - 44032: 0x87A5, - 45575 - 44032: 0x87A6, - 45576 - 44032: 0xB4AB, - 45577 - 44032: 0x87A7, - 45578 - 44032: 0x87A8, - 45579 - 44032: 0xB4AC, - 45580 - 44032: 0xB4AD, - 45581 - 44032: 0x87A9, - 45582 - 44032: 0x87AA, - 45583 - 44032: 0x87AB, - 45584 - 44032: 0x87AC, - 45585 - 44032: 0x87AD, - 45586 - 44032: 0x87AE, - 45587 - 44032: 0x87AF, - 45588 - 44032: 0xB4AE, - 45589 - 44032: 0xB4AF, - 45590 - 44032: 0x87B0, - 45591 - 44032: 0xB4B0, - 45592 - 44032: 0x87B1, - 45593 - 44032: 0xB4B1, - 45594 - 44032: 0x87B2, - 45595 - 44032: 0x87B3, - 45596 - 44032: 0x87B4, - 45597 - 44032: 0x87B5, - 45598 - 44032: 0x87B6, - 45599 - 44032: 0x87B7, - 45600 - 44032: 0xB4B2, - 45601 - 44032: 0x87B8, - 45602 - 44032: 0x87B9, - 45603 - 44032: 0x87BA, - 45604 - 44032: 0x87BB, - 45605 - 44032: 0x87BC, - 45606 - 44032: 0x87BD, - 45607 - 44032: 0x87BE, - 45608 - 44032: 0x87BF, - 45609 - 44032: 0x87C0, - 45610 - 44032: 0x87C1, - 45611 - 44032: 0x87C2, - 45612 - 44032: 0x87C3, - 45613 - 44032: 0x87C4, - 45614 - 44032: 0x87C5, - 45615 - 44032: 0x87C6, - 45616 - 44032: 0x87C7, - 45617 - 44032: 0x87C8, - 45618 - 44032: 0x87C9, - 45619 - 44032: 0x87CA, - 45620 - 44032: 0xB4B3, - 45621 - 44032: 0x87CB, - 45622 - 44032: 0x87CC, - 45623 - 44032: 0x87CD, - 45624 - 44032: 0x87CE, - 45625 - 44032: 0x87CF, - 45626 - 44032: 0x87D0, - 45627 - 44032: 0x87D1, - 45628 - 44032: 0xB4B4, - 45629 - 44032: 0x87D2, - 45630 - 44032: 0x87D3, - 45631 - 44032: 0x87D4, - 45632 - 44032: 0x87D5, - 45633 - 44032: 0x87D6, - 45634 - 44032: 0x87D7, - 45635 - 44032: 0x87D8, - 45636 - 44032: 0x87D9, - 45637 - 44032: 0x87DA, - 45638 - 44032: 0x87DB, - 45639 - 44032: 0x87DC, - 45640 - 44032: 0x87DD, - 45641 - 44032: 0x87DE, - 45642 - 44032: 0x87DF, - 45643 - 44032: 0x87E0, - 45644 - 44032: 0x87E1, - 45645 - 44032: 0x87E2, - 45646 - 44032: 0x87E3, - 45647 - 44032: 0x87E4, - 45648 - 44032: 0x87E5, - 45649 - 44032: 0x87E6, - 45650 - 44032: 0x87E7, - 45651 - 44032: 0x87E8, - 45652 - 44032: 0x87E9, - 45653 - 44032: 0x87EA, - 45654 - 44032: 0x87EB, - 45655 - 44032: 0x87EC, - 45656 - 44032: 0xB4B5, - 45657 - 44032: 0x87ED, - 45658 - 44032: 0x87EE, - 45659 - 44032: 0x87EF, - 45660 - 44032: 0xB4B6, - 45661 - 44032: 0x87F0, - 45662 - 44032: 0x87F1, - 45663 - 44032: 0x87F2, - 45664 - 44032: 0xB4B7, - 45665 - 44032: 0x87F3, - 45666 - 44032: 0x87F4, - 45667 - 44032: 0x87F5, - 45668 - 44032: 0x87F6, - 45669 - 44032: 0x87F7, - 45670 - 44032: 0x87F8, - 45671 - 44032: 0x87F9, - 45672 - 44032: 0xB4B8, - 45673 - 44032: 0xB4B9, - 45674 - 44032: 0x87FA, - 45675 - 44032: 0x87FB, - 45676 - 44032: 0x87FC, - 45677 - 44032: 0x87FD, - 45678 - 44032: 0x87FE, - 45679 - 44032: 0x8841, - 45680 - 44032: 0x8842, - 45681 - 44032: 0x8843, - 45682 - 44032: 0x8844, - 45683 - 44032: 0x8845, - 45684 - 44032: 0xB4BA, - 45685 - 44032: 0xB4BB, - 45686 - 44032: 0x8846, - 45687 - 44032: 0x8847, - 45688 - 44032: 0x8848, - 45689 - 44032: 0x8849, - 45690 - 44032: 0x884A, - 45691 - 44032: 0x884B, - 45692 - 44032: 0xB4BC, - 45693 - 44032: 0x884C, - 45694 - 44032: 0x884D, - 45695 - 44032: 0x884E, - 45696 - 44032: 0x884F, - 45697 - 44032: 0x8850, - 45698 - 44032: 0x8851, - 45699 - 44032: 0x8852, - 45700 - 44032: 0xB4BD, - 45701 - 44032: 0xB4BE, - 45702 - 44032: 0x8853, - 45703 - 44032: 0x8854, - 45704 - 44032: 0x8855, - 45705 - 44032: 0xB4BF, - 45706 - 44032: 0x8856, - 45707 - 44032: 0x8857, - 45708 - 44032: 0x8858, - 45709 - 44032: 0x8859, - 45710 - 44032: 0x885A, - 45711 - 44032: 0x8861, - 45712 - 44032: 0xB4C0, - 45713 - 44032: 0xB4C1, - 45714 - 44032: 0x8862, - 45715 - 44032: 0x8863, - 45716 - 44032: 0xB4C2, - 45717 - 44032: 0x8864, - 45718 - 44032: 0x8865, - 45719 - 44032: 0x8866, - 45720 - 44032: 0xB4C3, - 45721 - 44032: 0xB4C4, - 45722 - 44032: 0xB4C5, - 45723 - 44032: 0x8867, - 45724 - 44032: 0x8868, - 45725 - 44032: 0x8869, - 45726 - 44032: 0x886A, - 45727 - 44032: 0x886B, - 45728 - 44032: 0xB4C6, - 45729 - 44032: 0xB4C7, - 45730 - 44032: 0x886C, - 45731 - 44032: 0xB4C8, - 45732 - 44032: 0x886D, - 45733 - 44032: 0xB4C9, - 45734 - 44032: 0xB4CA, - 45735 - 44032: 0x886E, - 45736 - 44032: 0x886F, - 45737 - 44032: 0x8870, - 45738 - 44032: 0xB4CB, - 45739 - 44032: 0x8871, - 45740 - 44032: 0xB4CC, - 45741 - 44032: 0x8872, - 45742 - 44032: 0x8873, - 45743 - 44032: 0x8874, - 45744 - 44032: 0xB4CD, - 45745 - 44032: 0x8875, - 45746 - 44032: 0x8876, - 45747 - 44032: 0x8877, - 45748 - 44032: 0xB4CE, - 45749 - 44032: 0x8878, - 45750 - 44032: 0x8879, - 45751 - 44032: 0x887A, - 45752 - 44032: 0x8881, - 45753 - 44032: 0x8882, - 45754 - 44032: 0x8883, - 45755 - 44032: 0x8884, - 45756 - 44032: 0x8885, - 45757 - 44032: 0x8886, - 45758 - 44032: 0x8887, - 45759 - 44032: 0x8888, - 45760 - 44032: 0x8889, - 45761 - 44032: 0x888A, - 45762 - 44032: 0x888B, - 45763 - 44032: 0x888C, - 45764 - 44032: 0x888D, - 45765 - 44032: 0x888E, - 45766 - 44032: 0x888F, - 45767 - 44032: 0x8890, - 45768 - 44032: 0xB4CF, - 45769 - 44032: 0xB4D0, - 45770 - 44032: 0x8891, - 45771 - 44032: 0x8892, - 45772 - 44032: 0xB4D1, - 45773 - 44032: 0x8893, - 45774 - 44032: 0x8894, - 45775 - 44032: 0x8895, - 45776 - 44032: 0xB4D2, - 45777 - 44032: 0x8896, - 45778 - 44032: 0xB4D3, - 45779 - 44032: 0x8897, - 45780 - 44032: 0x8898, - 45781 - 44032: 0x8899, - 45782 - 44032: 0x889A, - 45783 - 44032: 0x889B, - 45784 - 44032: 0xB4D4, - 45785 - 44032: 0xB4D5, - 45786 - 44032: 0x889C, - 45787 - 44032: 0xB4D6, - 45788 - 44032: 0x889D, - 45789 - 44032: 0xB4D7, - 45790 - 44032: 0x889E, - 45791 - 44032: 0x889F, - 45792 - 44032: 0x88A0, - 45793 - 44032: 0x88A1, - 45794 - 44032: 0xB4D8, - 45795 - 44032: 0x88A2, - 45796 - 44032: 0xB4D9, - 45797 - 44032: 0xB4DA, - 45798 - 44032: 0xB4DB, - 45799 - 44032: 0x88A3, - 45800 - 44032: 0xB4DC, - 45801 - 44032: 0x88A4, - 45802 - 44032: 0x88A5, - 45803 - 44032: 0xB4DD, - 45804 - 44032: 0xB4DE, - 45805 - 44032: 0xB4DF, - 45806 - 44032: 0xB4E0, - 45807 - 44032: 0xB4E1, - 45808 - 44032: 0x88A6, - 45809 - 44032: 0x88A7, - 45810 - 44032: 0x88A8, - 45811 - 44032: 0xB4E2, - 45812 - 44032: 0xB4E3, - 45813 - 44032: 0xB4E4, - 45814 - 44032: 0x88A9, - 45815 - 44032: 0xB4E5, - 45816 - 44032: 0xB4E6, - 45817 - 44032: 0xB4E7, - 45818 - 44032: 0xB4E8, - 45819 - 44032: 0xB4E9, - 45820 - 44032: 0x88AA, - 45821 - 44032: 0x88AB, - 45822 - 44032: 0x88AC, - 45823 - 44032: 0xB4EA, - 45824 - 44032: 0xB4EB, - 45825 - 44032: 0xB4EC, - 45826 - 44032: 0x88AD, - 45827 - 44032: 0x88AE, - 45828 - 44032: 0xB4ED, - 45829 - 44032: 0x88AF, - 45830 - 44032: 0x88B0, - 45831 - 44032: 0x88B1, - 45832 - 44032: 0xB4EE, - 45833 - 44032: 0x88B2, - 45834 - 44032: 0x88B3, - 45835 - 44032: 0x88B4, - 45836 - 44032: 0x88B5, - 45837 - 44032: 0x88B6, - 45838 - 44032: 0x88B7, - 45839 - 44032: 0x88B8, - 45840 - 44032: 0xB4EF, - 45841 - 44032: 0xB4F0, - 45842 - 44032: 0x88B9, - 45843 - 44032: 0xB4F1, - 45844 - 44032: 0xB4F2, - 45845 - 44032: 0xB4F3, - 45846 - 44032: 0x88BA, - 45847 - 44032: 0x88BB, - 45848 - 44032: 0x88BC, - 45849 - 44032: 0x88BD, - 45850 - 44032: 0x88BE, - 45851 - 44032: 0x88BF, - 45852 - 44032: 0xB4F4, - 45853 - 44032: 0x88C0, - 45854 - 44032: 0x88C1, - 45855 - 44032: 0x88C2, - 45856 - 44032: 0x88C3, - 45857 - 44032: 0x88C4, - 45858 - 44032: 0x88C5, - 45859 - 44032: 0x88C6, - 45860 - 44032: 0x88C7, - 45861 - 44032: 0x88C8, - 45862 - 44032: 0x88C9, - 45863 - 44032: 0x88CA, - 45864 - 44032: 0x88CB, - 45865 - 44032: 0x88CC, - 45866 - 44032: 0x88CD, - 45867 - 44032: 0x88CE, - 45868 - 44032: 0x88CF, - 45869 - 44032: 0x88D0, - 45870 - 44032: 0x88D1, - 45871 - 44032: 0x88D2, - 45872 - 44032: 0x88D3, - 45873 - 44032: 0x88D4, - 45874 - 44032: 0x88D5, - 45875 - 44032: 0x88D6, - 45876 - 44032: 0x88D7, - 45877 - 44032: 0x88D8, - 45878 - 44032: 0x88D9, - 45879 - 44032: 0x88DA, - 45880 - 44032: 0x88DB, - 45881 - 44032: 0x88DC, - 45882 - 44032: 0x88DD, - 45883 - 44032: 0x88DE, - 45884 - 44032: 0x88DF, - 45885 - 44032: 0x88E0, - 45886 - 44032: 0x88E1, - 45887 - 44032: 0x88E2, - 45888 - 44032: 0x88E3, - 45889 - 44032: 0x88E4, - 45890 - 44032: 0x88E5, - 45891 - 44032: 0x88E6, - 45892 - 44032: 0x88E7, - 45893 - 44032: 0x88E8, - 45894 - 44032: 0x88E9, - 45895 - 44032: 0x88EA, - 45896 - 44032: 0x88EB, - 45897 - 44032: 0x88EC, - 45898 - 44032: 0x88ED, - 45899 - 44032: 0x88EE, - 45900 - 44032: 0x88EF, - 45901 - 44032: 0x88F0, - 45902 - 44032: 0x88F1, - 45903 - 44032: 0x88F2, - 45904 - 44032: 0x88F3, - 45905 - 44032: 0x88F4, - 45906 - 44032: 0x88F5, - 45907 - 44032: 0x88F6, - 45908 - 44032: 0xB4F5, - 45909 - 44032: 0xB4F6, - 45910 - 44032: 0xB4F7, - 45911 - 44032: 0x88F7, - 45912 - 44032: 0xB4F8, - 45913 - 44032: 0x88F8, - 45914 - 44032: 0x88F9, - 45915 - 44032: 0xB4F9, - 45916 - 44032: 0xB4FA, - 45917 - 44032: 0x88FA, - 45918 - 44032: 0xB4FB, - 45919 - 44032: 0xB4FC, - 45920 - 44032: 0x88FB, - 45921 - 44032: 0x88FC, - 45922 - 44032: 0x88FD, - 45923 - 44032: 0x88FE, - 45924 - 44032: 0xB4FD, - 45925 - 44032: 0xB4FE, - 45926 - 44032: 0x8941, - 45927 - 44032: 0xB5A1, - 45928 - 44032: 0x8942, - 45929 - 44032: 0xB5A2, - 45930 - 44032: 0x8943, - 45931 - 44032: 0xB5A3, - 45932 - 44032: 0x8944, - 45933 - 44032: 0x8945, - 45934 - 44032: 0xB5A4, - 45935 - 44032: 0x8946, - 45936 - 44032: 0xB5A5, - 45937 - 44032: 0xB5A6, - 45938 - 44032: 0x8947, - 45939 - 44032: 0x8948, - 45940 - 44032: 0xB5A7, - 45941 - 44032: 0x8949, - 45942 - 44032: 0x894A, - 45943 - 44032: 0x894B, - 45944 - 44032: 0xB5A8, - 45945 - 44032: 0x894C, - 45946 - 44032: 0x894D, - 45947 - 44032: 0x894E, - 45948 - 44032: 0x894F, - 45949 - 44032: 0x8950, - 45950 - 44032: 0x8951, - 45951 - 44032: 0x8952, - 45952 - 44032: 0xB5A9, - 45953 - 44032: 0xB5AA, - 45954 - 44032: 0x8953, - 45955 - 44032: 0xB5AB, - 45956 - 44032: 0xB5AC, - 45957 - 44032: 0xB5AD, - 45958 - 44032: 0x8954, - 45959 - 44032: 0x8955, - 45960 - 44032: 0x8956, - 45961 - 44032: 0x8957, - 45962 - 44032: 0x8958, - 45963 - 44032: 0x8959, - 45964 - 44032: 0xB5AE, - 45965 - 44032: 0x895A, - 45966 - 44032: 0x8961, - 45967 - 44032: 0x8962, - 45968 - 44032: 0xB5AF, - 45969 - 44032: 0x8963, - 45970 - 44032: 0x8964, - 45971 - 44032: 0x8965, - 45972 - 44032: 0xB5B0, - 45973 - 44032: 0x8966, - 45974 - 44032: 0x8967, - 45975 - 44032: 0x8968, - 45976 - 44032: 0x8969, - 45977 - 44032: 0x896A, - 45978 - 44032: 0x896B, - 45979 - 44032: 0x896C, - 45980 - 44032: 0x896D, - 45981 - 44032: 0x896E, - 45982 - 44032: 0x896F, - 45983 - 44032: 0x8970, - 45984 - 44032: 0xB5B1, - 45985 - 44032: 0xB5B2, - 45986 - 44032: 0x8971, - 45987 - 44032: 0x8972, - 45988 - 44032: 0x8973, - 45989 - 44032: 0x8974, - 45990 - 44032: 0x8975, - 45991 - 44032: 0x8976, - 45992 - 44032: 0xB5B3, - 45993 - 44032: 0x8977, - 45994 - 44032: 0x8978, - 45995 - 44032: 0x8979, - 45996 - 44032: 0xB5B4, - 45997 - 44032: 0x897A, - 45998 - 44032: 0x8981, - 45999 - 44032: 0x8982, - 46000 - 44032: 0x8983, - 46001 - 44032: 0x8984, - 46002 - 44032: 0x8985, - 46003 - 44032: 0x8986, - 46004 - 44032: 0x8987, - 46005 - 44032: 0x8988, - 46006 - 44032: 0x8989, - 46007 - 44032: 0x898A, - 46008 - 44032: 0x898B, - 46009 - 44032: 0x898C, - 46010 - 44032: 0x898D, - 46011 - 44032: 0x898E, - 46012 - 44032: 0x898F, - 46013 - 44032: 0x8990, - 46014 - 44032: 0x8991, - 46015 - 44032: 0x8992, - 46016 - 44032: 0x8993, - 46017 - 44032: 0x8994, - 46018 - 44032: 0x8995, - 46019 - 44032: 0x8996, - 46020 - 44032: 0xB5B5, - 46021 - 44032: 0xB5B6, - 46022 - 44032: 0x8997, - 46023 - 44032: 0x8998, - 46024 - 44032: 0xB5B7, - 46025 - 44032: 0x8999, - 46026 - 44032: 0x899A, - 46027 - 44032: 0xB5B8, - 46028 - 44032: 0xB5B9, - 46029 - 44032: 0x899B, - 46030 - 44032: 0xB5BA, - 46031 - 44032: 0x899C, - 46032 - 44032: 0xB5BB, - 46033 - 44032: 0x899D, - 46034 - 44032: 0x899E, - 46035 - 44032: 0x899F, - 46036 - 44032: 0xB5BC, - 46037 - 44032: 0xB5BD, - 46038 - 44032: 0x89A0, - 46039 - 44032: 0xB5BE, - 46040 - 44032: 0x89A1, - 46041 - 44032: 0xB5BF, - 46042 - 44032: 0x89A2, - 46043 - 44032: 0xB5C0, - 46044 - 44032: 0x89A3, - 46045 - 44032: 0xB5C1, - 46046 - 44032: 0x89A4, - 46047 - 44032: 0x89A5, - 46048 - 44032: 0xB5C2, - 46049 - 44032: 0x89A6, - 46050 - 44032: 0x89A7, - 46051 - 44032: 0x89A8, - 46052 - 44032: 0xB5C3, - 46053 - 44032: 0x89A9, - 46054 - 44032: 0x89AA, - 46055 - 44032: 0x89AB, - 46056 - 44032: 0xB5C4, - 46057 - 44032: 0x89AC, - 46058 - 44032: 0x89AD, - 46059 - 44032: 0x89AE, - 46060 - 44032: 0x89AF, - 46061 - 44032: 0x89B0, - 46062 - 44032: 0x89B1, - 46063 - 44032: 0x89B2, - 46064 - 44032: 0x89B3, - 46065 - 44032: 0x89B4, - 46066 - 44032: 0x89B5, - 46067 - 44032: 0x89B6, - 46068 - 44032: 0x89B7, - 46069 - 44032: 0x89B8, - 46070 - 44032: 0x89B9, - 46071 - 44032: 0x89BA, - 46072 - 44032: 0x89BB, - 46073 - 44032: 0x89BC, - 46074 - 44032: 0x89BD, - 46075 - 44032: 0x89BE, - 46076 - 44032: 0xB5C5, - 46077 - 44032: 0x89BF, - 46078 - 44032: 0x89C0, - 46079 - 44032: 0x89C1, - 46080 - 44032: 0x89C2, - 46081 - 44032: 0x89C3, - 46082 - 44032: 0x89C4, - 46083 - 44032: 0x89C5, - 46084 - 44032: 0x89C6, - 46085 - 44032: 0x89C7, - 46086 - 44032: 0x89C8, - 46087 - 44032: 0x89C9, - 46088 - 44032: 0x89CA, - 46089 - 44032: 0x89CB, - 46090 - 44032: 0x89CC, - 46091 - 44032: 0x89CD, - 46092 - 44032: 0x89CE, - 46093 - 44032: 0x89CF, - 46094 - 44032: 0x89D0, - 46095 - 44032: 0x89D1, - 46096 - 44032: 0xB5C6, - 46097 - 44032: 0x89D2, - 46098 - 44032: 0x89D3, - 46099 - 44032: 0x89D4, - 46100 - 44032: 0x89D5, - 46101 - 44032: 0x89D6, - 46102 - 44032: 0x89D7, - 46103 - 44032: 0x89D8, - 46104 - 44032: 0xB5C7, - 46105 - 44032: 0x89D9, - 46106 - 44032: 0x89DA, - 46107 - 44032: 0x89DB, - 46108 - 44032: 0xB5C8, - 46109 - 44032: 0x89DC, - 46110 - 44032: 0x89DD, - 46111 - 44032: 0x89DE, - 46112 - 44032: 0xB5C9, - 46113 - 44032: 0x89DF, - 46114 - 44032: 0x89E0, - 46115 - 44032: 0x89E1, - 46116 - 44032: 0x89E2, - 46117 - 44032: 0x89E3, - 46118 - 44032: 0x89E4, - 46119 - 44032: 0x89E5, - 46120 - 44032: 0xB5CA, - 46121 - 44032: 0xB5CB, - 46122 - 44032: 0x89E6, - 46123 - 44032: 0xB5CC, - 46124 - 44032: 0x89E7, - 46125 - 44032: 0x89E8, - 46126 - 44032: 0x89E9, - 46127 - 44032: 0x89EA, - 46128 - 44032: 0x89EB, - 46129 - 44032: 0x89EC, - 46130 - 44032: 0x89ED, - 46131 - 44032: 0x89EE, - 46132 - 44032: 0xB5CD, - 46133 - 44032: 0x89EF, - 46134 - 44032: 0x89F0, - 46135 - 44032: 0x89F1, - 46136 - 44032: 0x89F2, - 46137 - 44032: 0x89F3, - 46138 - 44032: 0x89F4, - 46139 - 44032: 0x89F5, - 46140 - 44032: 0x89F6, - 46141 - 44032: 0x89F7, - 46142 - 44032: 0x89F8, - 46143 - 44032: 0x89F9, - 46144 - 44032: 0x89FA, - 46145 - 44032: 0x89FB, - 46146 - 44032: 0x89FC, - 46147 - 44032: 0x89FD, - 46148 - 44032: 0x89FE, - 46149 - 44032: 0x8A41, - 46150 - 44032: 0x8A42, - 46151 - 44032: 0x8A43, - 46152 - 44032: 0x8A44, - 46153 - 44032: 0x8A45, - 46154 - 44032: 0x8A46, - 46155 - 44032: 0x8A47, - 46156 - 44032: 0x8A48, - 46157 - 44032: 0x8A49, - 46158 - 44032: 0x8A4A, - 46159 - 44032: 0x8A4B, - 46160 - 44032: 0xB5CE, - 46161 - 44032: 0xB5CF, - 46162 - 44032: 0x8A4C, - 46163 - 44032: 0x8A4D, - 46164 - 44032: 0xB5D0, - 46165 - 44032: 0x8A4E, - 46166 - 44032: 0x8A4F, - 46167 - 44032: 0x8A50, - 46168 - 44032: 0xB5D1, - 46169 - 44032: 0x8A51, - 46170 - 44032: 0x8A52, - 46171 - 44032: 0x8A53, - 46172 - 44032: 0x8A54, - 46173 - 44032: 0x8A55, - 46174 - 44032: 0x8A56, - 46175 - 44032: 0x8A57, - 46176 - 44032: 0xB5D2, - 46177 - 44032: 0xB5D3, - 46178 - 44032: 0x8A58, - 46179 - 44032: 0xB5D4, - 46180 - 44032: 0x8A59, - 46181 - 44032: 0xB5D5, - 46182 - 44032: 0x8A5A, - 46183 - 44032: 0x8A61, - 46184 - 44032: 0x8A62, - 46185 - 44032: 0x8A63, - 46186 - 44032: 0x8A64, - 46187 - 44032: 0x8A65, - 46188 - 44032: 0xB5D6, - 46189 - 44032: 0x8A66, - 46190 - 44032: 0x8A67, - 46191 - 44032: 0x8A68, - 46192 - 44032: 0x8A69, - 46193 - 44032: 0x8A6A, - 46194 - 44032: 0x8A6B, - 46195 - 44032: 0x8A6C, - 46196 - 44032: 0x8A6D, - 46197 - 44032: 0x8A6E, - 46198 - 44032: 0x8A6F, - 46199 - 44032: 0x8A70, - 46200 - 44032: 0x8A71, - 46201 - 44032: 0x8A72, - 46202 - 44032: 0x8A73, - 46203 - 44032: 0x8A74, - 46204 - 44032: 0x8A75, - 46205 - 44032: 0x8A76, - 46206 - 44032: 0x8A77, - 46207 - 44032: 0x8A78, - 46208 - 44032: 0xB5D7, - 46209 - 44032: 0x8A79, - 46210 - 44032: 0x8A7A, - 46211 - 44032: 0x8A81, - 46212 - 44032: 0x8A82, - 46213 - 44032: 0x8A83, - 46214 - 44032: 0x8A84, - 46215 - 44032: 0x8A85, - 46216 - 44032: 0xB5D8, - 46217 - 44032: 0x8A86, - 46218 - 44032: 0x8A87, - 46219 - 44032: 0x8A88, - 46220 - 44032: 0x8A89, - 46221 - 44032: 0x8A8A, - 46222 - 44032: 0x8A8B, - 46223 - 44032: 0x8A8C, - 46224 - 44032: 0x8A8D, - 46225 - 44032: 0x8A8E, - 46226 - 44032: 0x8A8F, - 46227 - 44032: 0x8A90, - 46228 - 44032: 0x8A91, - 46229 - 44032: 0x8A92, - 46230 - 44032: 0x8A93, - 46231 - 44032: 0x8A94, - 46232 - 44032: 0x8A95, - 46233 - 44032: 0x8A96, - 46234 - 44032: 0x8A97, - 46235 - 44032: 0x8A98, - 46236 - 44032: 0x8A99, - 46237 - 44032: 0xB5D9, - 46238 - 44032: 0x8A9A, - 46239 - 44032: 0x8A9B, - 46240 - 44032: 0x8A9C, - 46241 - 44032: 0x8A9D, - 46242 - 44032: 0x8A9E, - 46243 - 44032: 0x8A9F, - 46244 - 44032: 0xB5DA, - 46245 - 44032: 0x8AA0, - 46246 - 44032: 0x8AA1, - 46247 - 44032: 0x8AA2, - 46248 - 44032: 0xB5DB, - 46249 - 44032: 0x8AA3, - 46250 - 44032: 0x8AA4, - 46251 - 44032: 0x8AA5, - 46252 - 44032: 0xB5DC, - 46253 - 44032: 0x8AA6, - 46254 - 44032: 0x8AA7, - 46255 - 44032: 0x8AA8, - 46256 - 44032: 0x8AA9, - 46257 - 44032: 0x8AAA, - 46258 - 44032: 0x8AAB, - 46259 - 44032: 0x8AAC, - 46260 - 44032: 0x8AAD, - 46261 - 44032: 0xB5DD, - 46262 - 44032: 0x8AAE, - 46263 - 44032: 0xB5DE, - 46264 - 44032: 0x8AAF, - 46265 - 44032: 0xB5DF, - 46266 - 44032: 0x8AB0, - 46267 - 44032: 0x8AB1, - 46268 - 44032: 0x8AB2, - 46269 - 44032: 0x8AB3, - 46270 - 44032: 0x8AB4, - 46271 - 44032: 0x8AB5, - 46272 - 44032: 0xB5E0, - 46273 - 44032: 0x8AB6, - 46274 - 44032: 0x8AB7, - 46275 - 44032: 0x8AB8, - 46276 - 44032: 0xB5E1, - 46277 - 44032: 0x8AB9, - 46278 - 44032: 0x8ABA, - 46279 - 44032: 0x8ABB, - 46280 - 44032: 0xB5E2, - 46281 - 44032: 0x8ABC, - 46282 - 44032: 0x8ABD, - 46283 - 44032: 0x8ABE, - 46284 - 44032: 0x8ABF, - 46285 - 44032: 0x8AC0, - 46286 - 44032: 0x8AC1, - 46287 - 44032: 0x8AC2, - 46288 - 44032: 0xB5E3, - 46289 - 44032: 0x8AC3, - 46290 - 44032: 0x8AC4, - 46291 - 44032: 0x8AC5, - 46292 - 44032: 0x8AC6, - 46293 - 44032: 0xB5E4, - 46294 - 44032: 0x8AC7, - 46295 - 44032: 0x8AC8, - 46296 - 44032: 0x8AC9, - 46297 - 44032: 0x8ACA, - 46298 - 44032: 0x8ACB, - 46299 - 44032: 0x8ACC, - 46300 - 44032: 0xB5E5, - 46301 - 44032: 0xB5E6, - 46302 - 44032: 0x8ACD, - 46303 - 44032: 0x8ACE, - 46304 - 44032: 0xB5E7, - 46305 - 44032: 0x8ACF, - 46306 - 44032: 0x8AD0, - 46307 - 44032: 0xB5E8, - 46308 - 44032: 0xB5E9, - 46309 - 44032: 0x8AD1, - 46310 - 44032: 0xB5EA, - 46311 - 44032: 0x8AD2, - 46312 - 44032: 0x8AD3, - 46313 - 44032: 0x8AD4, - 46314 - 44032: 0x8AD5, - 46315 - 44032: 0x8AD6, - 46316 - 44032: 0xB5EB, - 46317 - 44032: 0xB5EC, - 46318 - 44032: 0x8AD7, - 46319 - 44032: 0xB5ED, - 46320 - 44032: 0x8AD8, - 46321 - 44032: 0xB5EE, - 46322 - 44032: 0x8AD9, - 46323 - 44032: 0x8ADA, - 46324 - 44032: 0x8ADB, - 46325 - 44032: 0x8ADC, - 46326 - 44032: 0x8ADD, - 46327 - 44032: 0x8ADE, - 46328 - 44032: 0xB5EF, - 46329 - 44032: 0x8ADF, - 46330 - 44032: 0x8AE0, - 46331 - 44032: 0x8AE1, - 46332 - 44032: 0x8AE2, - 46333 - 44032: 0x8AE3, - 46334 - 44032: 0x8AE4, - 46335 - 44032: 0x8AE5, - 46336 - 44032: 0x8AE6, - 46337 - 44032: 0x8AE7, - 46338 - 44032: 0x8AE8, - 46339 - 44032: 0x8AE9, - 46340 - 44032: 0x8AEA, - 46341 - 44032: 0x8AEB, - 46342 - 44032: 0x8AEC, - 46343 - 44032: 0x8AED, - 46344 - 44032: 0x8AEE, - 46345 - 44032: 0x8AEF, - 46346 - 44032: 0x8AF0, - 46347 - 44032: 0x8AF1, - 46348 - 44032: 0x8AF2, - 46349 - 44032: 0x8AF3, - 46350 - 44032: 0x8AF4, - 46351 - 44032: 0x8AF5, - 46352 - 44032: 0x8AF6, - 46353 - 44032: 0x8AF7, - 46354 - 44032: 0x8AF8, - 46355 - 44032: 0x8AF9, - 46356 - 44032: 0xB5F0, - 46357 - 44032: 0xB5F1, - 46358 - 44032: 0x8AFA, - 46359 - 44032: 0x8AFB, - 46360 - 44032: 0xB5F2, - 46361 - 44032: 0x8AFC, - 46362 - 44032: 0x8AFD, - 46363 - 44032: 0xB5F3, - 46364 - 44032: 0xB5F4, - 46365 - 44032: 0x8AFE, - 46366 - 44032: 0x8B41, - 46367 - 44032: 0x8B42, - 46368 - 44032: 0x8B43, - 46369 - 44032: 0x8B44, - 46370 - 44032: 0x8B45, - 46371 - 44032: 0x8B46, - 46372 - 44032: 0xB5F5, - 46373 - 44032: 0xB5F6, - 46374 - 44032: 0x8B47, - 46375 - 44032: 0xB5F7, - 46376 - 44032: 0xB5F8, - 46377 - 44032: 0xB5F9, - 46378 - 44032: 0xB5FA, - 46379 - 44032: 0x8B48, - 46380 - 44032: 0x8B49, - 46381 - 44032: 0x8B4A, - 46382 - 44032: 0x8B4B, - 46383 - 44032: 0x8B4C, - 46384 - 44032: 0xB5FB, - 46385 - 44032: 0xB5FC, - 46386 - 44032: 0x8B4D, - 46387 - 44032: 0x8B4E, - 46388 - 44032: 0xB5FD, - 46389 - 44032: 0x8B4F, - 46390 - 44032: 0x8B50, - 46391 - 44032: 0x8B51, - 46392 - 44032: 0xB5FE, - 46393 - 44032: 0x8B52, - 46394 - 44032: 0x8B53, - 46395 - 44032: 0x8B54, - 46396 - 44032: 0x8B55, - 46397 - 44032: 0x8B56, - 46398 - 44032: 0x8B57, - 46399 - 44032: 0x8B58, - 46400 - 44032: 0xB6A1, - 46401 - 44032: 0xB6A2, - 46402 - 44032: 0x8B59, - 46403 - 44032: 0xB6A3, - 46404 - 44032: 0xB6A4, - 46405 - 44032: 0xB6A5, - 46406 - 44032: 0x8B5A, - 46407 - 44032: 0x8B61, - 46408 - 44032: 0x8B62, - 46409 - 44032: 0x8B63, - 46410 - 44032: 0x8B64, - 46411 - 44032: 0xB6A6, - 46412 - 44032: 0xB6A7, - 46413 - 44032: 0xB6A8, - 46414 - 44032: 0x8B65, - 46415 - 44032: 0x8B66, - 46416 - 44032: 0xB6A9, - 46417 - 44032: 0x8B67, - 46418 - 44032: 0x8B68, - 46419 - 44032: 0x8B69, - 46420 - 44032: 0xB6AA, - 46421 - 44032: 0x8B6A, - 46422 - 44032: 0x8B6B, - 46423 - 44032: 0x8B6C, - 46424 - 44032: 0x8B6D, - 46425 - 44032: 0x8B6E, - 46426 - 44032: 0x8B6F, - 46427 - 44032: 0x8B70, - 46428 - 44032: 0xB6AB, - 46429 - 44032: 0xB6AC, - 46430 - 44032: 0x8B71, - 46431 - 44032: 0xB6AD, - 46432 - 44032: 0xB6AE, - 46433 - 44032: 0xB6AF, - 46434 - 44032: 0x8B72, - 46435 - 44032: 0x8B73, - 46436 - 44032: 0x8B74, - 46437 - 44032: 0x8B75, - 46438 - 44032: 0x8B76, - 46439 - 44032: 0x8B77, - 46440 - 44032: 0x8B78, - 46441 - 44032: 0x8B79, - 46442 - 44032: 0x8B7A, - 46443 - 44032: 0x8B81, - 46444 - 44032: 0x8B82, - 46445 - 44032: 0x8B83, - 46446 - 44032: 0x8B84, - 46447 - 44032: 0x8B85, - 46448 - 44032: 0x8B86, - 46449 - 44032: 0x8B87, - 46450 - 44032: 0x8B88, - 46451 - 44032: 0x8B89, - 46452 - 44032: 0x8B8A, - 46453 - 44032: 0x8B8B, - 46454 - 44032: 0x8B8C, - 46455 - 44032: 0x8B8D, - 46456 - 44032: 0x8B8E, - 46457 - 44032: 0x8B8F, - 46458 - 44032: 0x8B90, - 46459 - 44032: 0x8B91, - 46460 - 44032: 0x8B92, - 46461 - 44032: 0x8B93, - 46462 - 44032: 0x8B94, - 46463 - 44032: 0x8B95, - 46464 - 44032: 0x8B96, - 46465 - 44032: 0x8B97, - 46466 - 44032: 0x8B98, - 46467 - 44032: 0x8B99, - 46468 - 44032: 0x8B9A, - 46469 - 44032: 0x8B9B, - 46470 - 44032: 0x8B9C, - 46471 - 44032: 0x8B9D, - 46472 - 44032: 0x8B9E, - 46473 - 44032: 0x8B9F, - 46474 - 44032: 0x8BA0, - 46475 - 44032: 0x8BA1, - 46476 - 44032: 0x8BA2, - 46477 - 44032: 0x8BA3, - 46478 - 44032: 0x8BA4, - 46479 - 44032: 0x8BA5, - 46480 - 44032: 0x8BA6, - 46481 - 44032: 0x8BA7, - 46482 - 44032: 0x8BA8, - 46483 - 44032: 0x8BA9, - 46484 - 44032: 0x8BAA, - 46485 - 44032: 0x8BAB, - 46486 - 44032: 0x8BAC, - 46487 - 44032: 0x8BAD, - 46488 - 44032: 0x8BAE, - 46489 - 44032: 0x8BAF, - 46490 - 44032: 0x8BB0, - 46491 - 44032: 0x8BB1, - 46492 - 44032: 0x8BB2, - 46493 - 44032: 0x8BB3, - 46494 - 44032: 0x8BB4, - 46495 - 44032: 0x8BB5, - 46496 - 44032: 0xB6B0, - 46497 - 44032: 0xB6B1, - 46498 - 44032: 0x8BB6, - 46499 - 44032: 0x8BB7, - 46500 - 44032: 0xB6B2, - 46501 - 44032: 0x8BB8, - 46502 - 44032: 0x8BB9, - 46503 - 44032: 0x8BBA, - 46504 - 44032: 0xB6B3, - 46505 - 44032: 0x8BBB, - 46506 - 44032: 0xB6B4, - 46507 - 44032: 0xB6B5, - 46508 - 44032: 0x8BBC, - 46509 - 44032: 0x8BBD, - 46510 - 44032: 0x8BBE, - 46511 - 44032: 0x8BBF, - 46512 - 44032: 0xB6B6, - 46513 - 44032: 0xB6B7, - 46514 - 44032: 0x8BC0, - 46515 - 44032: 0xB6B8, - 46516 - 44032: 0xB6B9, - 46517 - 44032: 0xB6BA, - 46518 - 44032: 0x8BC1, - 46519 - 44032: 0x8BC2, - 46520 - 44032: 0x8BC3, - 46521 - 44032: 0x8BC4, - 46522 - 44032: 0x8BC5, - 46523 - 44032: 0xB6BB, - 46524 - 44032: 0xB6BC, - 46525 - 44032: 0xB6BD, - 46526 - 44032: 0x8BC6, - 46527 - 44032: 0x8BC7, - 46528 - 44032: 0xB6BE, - 46529 - 44032: 0x8BC8, - 46530 - 44032: 0x8BC9, - 46531 - 44032: 0x8BCA, - 46532 - 44032: 0xB6BF, - 46533 - 44032: 0x8BCB, - 46534 - 44032: 0x8BCC, - 46535 - 44032: 0x8BCD, - 46536 - 44032: 0x8BCE, - 46537 - 44032: 0x8BCF, - 46538 - 44032: 0x8BD0, - 46539 - 44032: 0x8BD1, - 46540 - 44032: 0xB6C0, - 46541 - 44032: 0xB6C1, - 46542 - 44032: 0x8BD2, - 46543 - 44032: 0xB6C2, - 46544 - 44032: 0xB6C3, - 46545 - 44032: 0xB6C4, - 46546 - 44032: 0x8BD3, - 46547 - 44032: 0x8BD4, - 46548 - 44032: 0x8BD5, - 46549 - 44032: 0x8BD6, - 46550 - 44032: 0x8BD7, - 46551 - 44032: 0x8BD8, - 46552 - 44032: 0xB6C5, - 46553 - 44032: 0x8BD9, - 46554 - 44032: 0x8BDA, - 46555 - 44032: 0x8BDB, - 46556 - 44032: 0x8BDC, - 46557 - 44032: 0x8BDD, - 46558 - 44032: 0x8BDE, - 46559 - 44032: 0x8BDF, - 46560 - 44032: 0x8BE0, - 46561 - 44032: 0x8BE1, - 46562 - 44032: 0x8BE2, - 46563 - 44032: 0x8BE3, - 46564 - 44032: 0x8BE4, - 46565 - 44032: 0x8BE5, - 46566 - 44032: 0x8BE6, - 46567 - 44032: 0x8BE7, - 46568 - 44032: 0x8BE8, - 46569 - 44032: 0x8BE9, - 46570 - 44032: 0x8BEA, - 46571 - 44032: 0x8BEB, - 46572 - 44032: 0xB6C6, - 46573 - 44032: 0x8BEC, - 46574 - 44032: 0x8BED, - 46575 - 44032: 0x8BEE, - 46576 - 44032: 0x8BEF, - 46577 - 44032: 0x8BF0, - 46578 - 44032: 0x8BF1, - 46579 - 44032: 0x8BF2, - 46580 - 44032: 0x8BF3, - 46581 - 44032: 0x8BF4, - 46582 - 44032: 0x8BF5, - 46583 - 44032: 0x8BF6, - 46584 - 44032: 0x8BF7, - 46585 - 44032: 0x8BF8, - 46586 - 44032: 0x8BF9, - 46587 - 44032: 0x8BFA, - 46588 - 44032: 0x8BFB, - 46589 - 44032: 0x8BFC, - 46590 - 44032: 0x8BFD, - 46591 - 44032: 0x8BFE, - 46592 - 44032: 0x8C41, - 46593 - 44032: 0x8C42, - 46594 - 44032: 0x8C43, - 46595 - 44032: 0x8C44, - 46596 - 44032: 0x8C45, - 46597 - 44032: 0x8C46, - 46598 - 44032: 0x8C47, - 46599 - 44032: 0x8C48, - 46600 - 44032: 0x8C49, - 46601 - 44032: 0x8C4A, - 46602 - 44032: 0x8C4B, - 46603 - 44032: 0x8C4C, - 46604 - 44032: 0x8C4D, - 46605 - 44032: 0x8C4E, - 46606 - 44032: 0x8C4F, - 46607 - 44032: 0x8C50, - 46608 - 44032: 0xB6C7, - 46609 - 44032: 0xB6C8, - 46610 - 44032: 0x8C51, - 46611 - 44032: 0x8C52, - 46612 - 44032: 0xB6C9, - 46613 - 44032: 0x8C53, - 46614 - 44032: 0x8C54, - 46615 - 44032: 0x8C55, - 46616 - 44032: 0xB6CA, - 46617 - 44032: 0x8C56, - 46618 - 44032: 0x8C57, - 46619 - 44032: 0x8C58, - 46620 - 44032: 0x8C59, - 46621 - 44032: 0x8C5A, - 46622 - 44032: 0x8C61, - 46623 - 44032: 0x8C62, - 46624 - 44032: 0x8C63, - 46625 - 44032: 0x8C64, - 46626 - 44032: 0x8C65, - 46627 - 44032: 0x8C66, - 46628 - 44032: 0x8C67, - 46629 - 44032: 0xB6CB, - 46630 - 44032: 0x8C68, - 46631 - 44032: 0x8C69, - 46632 - 44032: 0x8C6A, - 46633 - 44032: 0x8C6B, - 46634 - 44032: 0x8C6C, - 46635 - 44032: 0x8C6D, - 46636 - 44032: 0xB6CC, - 46637 - 44032: 0x8C6E, - 46638 - 44032: 0x8C6F, - 46639 - 44032: 0x8C70, - 46640 - 44032: 0x8C71, - 46641 - 44032: 0x8C72, - 46642 - 44032: 0x8C73, - 46643 - 44032: 0x8C74, - 46644 - 44032: 0xB6CD, - 46645 - 44032: 0x8C75, - 46646 - 44032: 0x8C76, - 46647 - 44032: 0x8C77, - 46648 - 44032: 0x8C78, - 46649 - 44032: 0x8C79, - 46650 - 44032: 0x8C7A, - 46651 - 44032: 0x8C81, - 46652 - 44032: 0x8C82, - 46653 - 44032: 0x8C83, - 46654 - 44032: 0x8C84, - 46655 - 44032: 0x8C85, - 46656 - 44032: 0x8C86, - 46657 - 44032: 0x8C87, - 46658 - 44032: 0x8C88, - 46659 - 44032: 0x8C89, - 46660 - 44032: 0x8C8A, - 46661 - 44032: 0x8C8B, - 46662 - 44032: 0x8C8C, - 46663 - 44032: 0x8C8D, - 46664 - 44032: 0xB6CE, - 46665 - 44032: 0x8C8E, - 46666 - 44032: 0x8C8F, - 46667 - 44032: 0x8C90, - 46668 - 44032: 0x8C91, - 46669 - 44032: 0x8C92, - 46670 - 44032: 0x8C93, - 46671 - 44032: 0x8C94, - 46672 - 44032: 0x8C95, - 46673 - 44032: 0x8C96, - 46674 - 44032: 0x8C97, - 46675 - 44032: 0x8C98, - 46676 - 44032: 0x8C99, - 46677 - 44032: 0x8C9A, - 46678 - 44032: 0x8C9B, - 46679 - 44032: 0x8C9C, - 46680 - 44032: 0x8C9D, - 46681 - 44032: 0x8C9E, - 46682 - 44032: 0x8C9F, - 46683 - 44032: 0x8CA0, - 46684 - 44032: 0x8CA1, - 46685 - 44032: 0x8CA2, - 46686 - 44032: 0x8CA3, - 46687 - 44032: 0x8CA4, - 46688 - 44032: 0x8CA5, - 46689 - 44032: 0x8CA6, - 46690 - 44032: 0x8CA7, - 46691 - 44032: 0x8CA8, - 46692 - 44032: 0xB6CF, - 46693 - 44032: 0x8CA9, - 46694 - 44032: 0x8CAA, - 46695 - 44032: 0x8CAB, - 46696 - 44032: 0xB6D0, - 46697 - 44032: 0x8CAC, - 46698 - 44032: 0x8CAD, - 46699 - 44032: 0x8CAE, - 46700 - 44032: 0x8CAF, - 46701 - 44032: 0x8CB0, - 46702 - 44032: 0x8CB1, - 46703 - 44032: 0x8CB2, - 46704 - 44032: 0x8CB3, - 46705 - 44032: 0x8CB4, - 46706 - 44032: 0x8CB5, - 46707 - 44032: 0x8CB6, - 46708 - 44032: 0x8CB7, - 46709 - 44032: 0x8CB8, - 46710 - 44032: 0x8CB9, - 46711 - 44032: 0x8CBA, - 46712 - 44032: 0x8CBB, - 46713 - 44032: 0x8CBC, - 46714 - 44032: 0x8CBD, - 46715 - 44032: 0x8CBE, - 46716 - 44032: 0x8CBF, - 46717 - 44032: 0x8CC0, - 46718 - 44032: 0x8CC1, - 46719 - 44032: 0x8CC2, - 46720 - 44032: 0x8CC3, - 46721 - 44032: 0x8CC4, - 46722 - 44032: 0x8CC5, - 46723 - 44032: 0x8CC6, - 46724 - 44032: 0x8CC7, - 46725 - 44032: 0x8CC8, - 46726 - 44032: 0x8CC9, - 46727 - 44032: 0x8CCA, - 46728 - 44032: 0x8CCB, - 46729 - 44032: 0x8CCC, - 46730 - 44032: 0x8CCD, - 46731 - 44032: 0x8CCE, - 46732 - 44032: 0x8CCF, - 46733 - 44032: 0x8CD0, - 46734 - 44032: 0x8CD1, - 46735 - 44032: 0x8CD2, - 46736 - 44032: 0x8CD3, - 46737 - 44032: 0x8CD4, - 46738 - 44032: 0x8CD5, - 46739 - 44032: 0x8CD6, - 46740 - 44032: 0x8CD7, - 46741 - 44032: 0x8CD8, - 46742 - 44032: 0x8CD9, - 46743 - 44032: 0x8CDA, - 46744 - 44032: 0x8CDB, - 46745 - 44032: 0x8CDC, - 46746 - 44032: 0x8CDD, - 46747 - 44032: 0x8CDE, - 46748 - 44032: 0xB6D1, - 46749 - 44032: 0xB6D2, - 46750 - 44032: 0x8CDF, - 46751 - 44032: 0x8CE0, - 46752 - 44032: 0xB6D3, - 46753 - 44032: 0x8CE1, - 46754 - 44032: 0x8CE2, - 46755 - 44032: 0x8CE3, - 46756 - 44032: 0xB6D4, - 46757 - 44032: 0x8CE4, - 46758 - 44032: 0x8CE5, - 46759 - 44032: 0x8CE6, - 46760 - 44032: 0x8CE7, - 46761 - 44032: 0x8CE8, - 46762 - 44032: 0x8CE9, - 46763 - 44032: 0xB6D5, - 46764 - 44032: 0xB6D6, - 46765 - 44032: 0x8CEA, - 46766 - 44032: 0x8CEB, - 46767 - 44032: 0x8CEC, - 46768 - 44032: 0x8CED, - 46769 - 44032: 0xB6D7, - 46770 - 44032: 0x8CEE, - 46771 - 44032: 0x8CEF, - 46772 - 44032: 0x8CF0, - 46773 - 44032: 0x8CF1, - 46774 - 44032: 0x8CF2, - 46775 - 44032: 0x8CF3, - 46776 - 44032: 0x8CF4, - 46777 - 44032: 0x8CF5, - 46778 - 44032: 0x8CF6, - 46779 - 44032: 0x8CF7, - 46780 - 44032: 0x8CF8, - 46781 - 44032: 0x8CF9, - 46782 - 44032: 0x8CFA, - 46783 - 44032: 0x8CFB, - 46784 - 44032: 0x8CFC, - 46785 - 44032: 0x8CFD, - 46786 - 44032: 0x8CFE, - 46787 - 44032: 0x8D41, - 46788 - 44032: 0x8D42, - 46789 - 44032: 0x8D43, - 46790 - 44032: 0x8D44, - 46791 - 44032: 0x8D45, - 46792 - 44032: 0x8D46, - 46793 - 44032: 0x8D47, - 46794 - 44032: 0x8D48, - 46795 - 44032: 0x8D49, - 46796 - 44032: 0x8D4A, - 46797 - 44032: 0x8D4B, - 46798 - 44032: 0x8D4C, - 46799 - 44032: 0x8D4D, - 46800 - 44032: 0x8D4E, - 46801 - 44032: 0x8D4F, - 46802 - 44032: 0x8D50, - 46803 - 44032: 0x8D51, - 46804 - 44032: 0xB6D8, - 46805 - 44032: 0x8D52, - 46806 - 44032: 0x8D53, - 46807 - 44032: 0x8D54, - 46808 - 44032: 0x8D55, - 46809 - 44032: 0x8D56, - 46810 - 44032: 0x8D57, - 46811 - 44032: 0x8D58, - 46812 - 44032: 0x8D59, - 46813 - 44032: 0x8D5A, - 46814 - 44032: 0x8D61, - 46815 - 44032: 0x8D62, - 46816 - 44032: 0x8D63, - 46817 - 44032: 0x8D64, - 46818 - 44032: 0x8D65, - 46819 - 44032: 0x8D66, - 46820 - 44032: 0x8D67, - 46821 - 44032: 0x8D68, - 46822 - 44032: 0x8D69, - 46823 - 44032: 0x8D6A, - 46824 - 44032: 0x8D6B, - 46825 - 44032: 0x8D6C, - 46826 - 44032: 0x8D6D, - 46827 - 44032: 0x8D6E, - 46828 - 44032: 0x8D6F, - 46829 - 44032: 0x8D70, - 46830 - 44032: 0x8D71, - 46831 - 44032: 0x8D72, - 46832 - 44032: 0xB6D9, - 46833 - 44032: 0x8D73, - 46834 - 44032: 0x8D74, - 46835 - 44032: 0x8D75, - 46836 - 44032: 0xB6DA, - 46837 - 44032: 0x8D76, - 46838 - 44032: 0x8D77, - 46839 - 44032: 0x8D78, - 46840 - 44032: 0xB6DB, - 46841 - 44032: 0x8D79, - 46842 - 44032: 0x8D7A, - 46843 - 44032: 0x8D81, - 46844 - 44032: 0x8D82, - 46845 - 44032: 0x8D83, - 46846 - 44032: 0x8D84, - 46847 - 44032: 0x8D85, - 46848 - 44032: 0xB6DC, - 46849 - 44032: 0xB6DD, - 46850 - 44032: 0x8D86, - 46851 - 44032: 0x8D87, - 46852 - 44032: 0x8D88, - 46853 - 44032: 0xB6DE, - 46854 - 44032: 0x8D89, - 46855 - 44032: 0x8D8A, - 46856 - 44032: 0x8D8B, - 46857 - 44032: 0x8D8C, - 46858 - 44032: 0x8D8D, - 46859 - 44032: 0x8D8E, - 46860 - 44032: 0x8D8F, - 46861 - 44032: 0x8D90, - 46862 - 44032: 0x8D91, - 46863 - 44032: 0x8D92, - 46864 - 44032: 0x8D93, - 46865 - 44032: 0x8D94, - 46866 - 44032: 0x8D95, - 46867 - 44032: 0x8D96, - 46868 - 44032: 0x8D97, - 46869 - 44032: 0x8D98, - 46870 - 44032: 0x8D99, - 46871 - 44032: 0x8D9A, - 46872 - 44032: 0x8D9B, - 46873 - 44032: 0x8D9C, - 46874 - 44032: 0x8D9D, - 46875 - 44032: 0x8D9E, - 46876 - 44032: 0x8D9F, - 46877 - 44032: 0x8DA0, - 46878 - 44032: 0x8DA1, - 46879 - 44032: 0x8DA2, - 46880 - 44032: 0x8DA3, - 46881 - 44032: 0x8DA4, - 46882 - 44032: 0x8DA5, - 46883 - 44032: 0x8DA6, - 46884 - 44032: 0x8DA7, - 46885 - 44032: 0x8DA8, - 46886 - 44032: 0x8DA9, - 46887 - 44032: 0x8DAA, - 46888 - 44032: 0xB6DF, - 46889 - 44032: 0xB6E0, - 46890 - 44032: 0x8DAB, - 46891 - 44032: 0x8DAC, - 46892 - 44032: 0xB6E1, - 46893 - 44032: 0x8DAD, - 46894 - 44032: 0x8DAE, - 46895 - 44032: 0xB6E2, - 46896 - 44032: 0xB6E3, - 46897 - 44032: 0x8DAF, - 46898 - 44032: 0x8DB0, - 46899 - 44032: 0x8DB1, - 46900 - 44032: 0x8DB2, - 46901 - 44032: 0x8DB3, - 46902 - 44032: 0x8DB4, - 46903 - 44032: 0x8DB5, - 46904 - 44032: 0xB6E4, - 46905 - 44032: 0xB6E5, - 46906 - 44032: 0x8DB6, - 46907 - 44032: 0xB6E6, - 46908 - 44032: 0x8DB7, - 46909 - 44032: 0x8DB8, - 46910 - 44032: 0x8DB9, - 46911 - 44032: 0x8DBA, - 46912 - 44032: 0x8DBB, - 46913 - 44032: 0x8DBC, - 46914 - 44032: 0x8DBD, - 46915 - 44032: 0x8DBE, - 46916 - 44032: 0xB6E7, - 46917 - 44032: 0x8DBF, - 46918 - 44032: 0x8DC0, - 46919 - 44032: 0x8DC1, - 46920 - 44032: 0xB6E8, - 46921 - 44032: 0x8DC2, - 46922 - 44032: 0x8DC3, - 46923 - 44032: 0x8DC4, - 46924 - 44032: 0xB6E9, - 46925 - 44032: 0x8DC5, - 46926 - 44032: 0x8DC6, - 46927 - 44032: 0x8DC7, - 46928 - 44032: 0x8DC8, - 46929 - 44032: 0x8DC9, - 46930 - 44032: 0x8DCA, - 46931 - 44032: 0x8DCB, - 46932 - 44032: 0xB6EA, - 46933 - 44032: 0xB6EB, - 46934 - 44032: 0x8DCC, - 46935 - 44032: 0x8DCD, - 46936 - 44032: 0x8DCE, - 46937 - 44032: 0x8DCF, - 46938 - 44032: 0x8DD0, - 46939 - 44032: 0x8DD1, - 46940 - 44032: 0x8DD2, - 46941 - 44032: 0x8DD3, - 46942 - 44032: 0x8DD4, - 46943 - 44032: 0x8DD5, - 46944 - 44032: 0xB6EC, - 46945 - 44032: 0x8DD6, - 46946 - 44032: 0x8DD7, - 46947 - 44032: 0x8DD8, - 46948 - 44032: 0xB6ED, - 46949 - 44032: 0x8DD9, - 46950 - 44032: 0x8DDA, - 46951 - 44032: 0x8DDB, - 46952 - 44032: 0xB6EE, - 46953 - 44032: 0x8DDC, - 46954 - 44032: 0x8DDD, - 46955 - 44032: 0x8DDE, - 46956 - 44032: 0x8DDF, - 46957 - 44032: 0x8DE0, - 46958 - 44032: 0x8DE1, - 46959 - 44032: 0x8DE2, - 46960 - 44032: 0xB6EF, - 46961 - 44032: 0xB6F0, - 46962 - 44032: 0x8DE3, - 46963 - 44032: 0xB6F1, - 46964 - 44032: 0x8DE4, - 46965 - 44032: 0xB6F2, - 46966 - 44032: 0x8DE5, - 46967 - 44032: 0x8DE6, - 46968 - 44032: 0x8DE7, - 46969 - 44032: 0x8DE8, - 46970 - 44032: 0x8DE9, - 46971 - 44032: 0x8DEA, - 46972 - 44032: 0xB6F3, - 46973 - 44032: 0xB6F4, - 46974 - 44032: 0x8DEB, - 46975 - 44032: 0x8DEC, - 46976 - 44032: 0xB6F5, - 46977 - 44032: 0x8DED, - 46978 - 44032: 0x8DEE, - 46979 - 44032: 0x8DEF, - 46980 - 44032: 0xB6F6, - 46981 - 44032: 0x8DF0, - 46982 - 44032: 0x8DF1, - 46983 - 44032: 0x8DF2, - 46984 - 44032: 0x8DF3, - 46985 - 44032: 0x8DF4, - 46986 - 44032: 0x8DF5, - 46987 - 44032: 0x8DF6, - 46988 - 44032: 0xB6F7, - 46989 - 44032: 0xB6F8, - 46990 - 44032: 0x8DF7, - 46991 - 44032: 0xB6F9, - 46992 - 44032: 0xB6FA, - 46993 - 44032: 0xB6FB, - 46994 - 44032: 0xB6FC, - 46995 - 44032: 0x8DF8, - 46996 - 44032: 0x8DF9, - 46997 - 44032: 0x8DFA, - 46998 - 44032: 0xB6FD, - 46999 - 44032: 0xB6FE, - 47000 - 44032: 0xB7A1, - 47001 - 44032: 0xB7A2, - 47002 - 44032: 0x8DFB, - 47003 - 44032: 0x8DFC, - 47004 - 44032: 0xB7A3, - 47005 - 44032: 0x8DFD, - 47006 - 44032: 0x8DFE, - 47007 - 44032: 0x8E41, - 47008 - 44032: 0xB7A4, - 47009 - 44032: 0x8E42, - 47010 - 44032: 0x8E43, - 47011 - 44032: 0x8E44, - 47012 - 44032: 0x8E45, - 47013 - 44032: 0x8E46, - 47014 - 44032: 0x8E47, - 47015 - 44032: 0x8E48, - 47016 - 44032: 0xB7A5, - 47017 - 44032: 0xB7A6, - 47018 - 44032: 0x8E49, - 47019 - 44032: 0xB7A7, - 47020 - 44032: 0xB7A8, - 47021 - 44032: 0xB7A9, - 47022 - 44032: 0x8E4A, - 47023 - 44032: 0x8E4B, - 47024 - 44032: 0x8E4C, - 47025 - 44032: 0x8E4D, - 47026 - 44032: 0x8E4E, - 47027 - 44032: 0x8E4F, - 47028 - 44032: 0xB7AA, - 47029 - 44032: 0xB7AB, - 47030 - 44032: 0x8E50, - 47031 - 44032: 0x8E51, - 47032 - 44032: 0xB7AC, - 47033 - 44032: 0x8E52, - 47034 - 44032: 0x8E53, - 47035 - 44032: 0x8E54, - 47036 - 44032: 0x8E55, - 47037 - 44032: 0x8E56, - 47038 - 44032: 0x8E57, - 47039 - 44032: 0x8E58, - 47040 - 44032: 0x8E59, - 47041 - 44032: 0x8E5A, - 47042 - 44032: 0x8E61, - 47043 - 44032: 0x8E62, - 47044 - 44032: 0x8E63, - 47045 - 44032: 0x8E64, - 47046 - 44032: 0x8E65, - 47047 - 44032: 0xB7AD, - 47048 - 44032: 0x8E66, - 47049 - 44032: 0xB7AE, - 47050 - 44032: 0x8E67, - 47051 - 44032: 0x8E68, - 47052 - 44032: 0x8E69, - 47053 - 44032: 0x8E6A, - 47054 - 44032: 0x8E6B, - 47055 - 44032: 0x8E6C, - 47056 - 44032: 0x8E6D, - 47057 - 44032: 0x8E6E, - 47058 - 44032: 0x8E6F, - 47059 - 44032: 0x8E70, - 47060 - 44032: 0x8E71, - 47061 - 44032: 0x8E72, - 47062 - 44032: 0x8E73, - 47063 - 44032: 0x8E74, - 47064 - 44032: 0x8E75, - 47065 - 44032: 0x8E76, - 47066 - 44032: 0x8E77, - 47067 - 44032: 0x8E78, - 47068 - 44032: 0x8E79, - 47069 - 44032: 0x8E7A, - 47070 - 44032: 0x8E81, - 47071 - 44032: 0x8E82, - 47072 - 44032: 0x8E83, - 47073 - 44032: 0x8E84, - 47074 - 44032: 0x8E85, - 47075 - 44032: 0x8E86, - 47076 - 44032: 0x8E87, - 47077 - 44032: 0x8E88, - 47078 - 44032: 0x8E89, - 47079 - 44032: 0x8E8A, - 47080 - 44032: 0x8E8B, - 47081 - 44032: 0x8E8C, - 47082 - 44032: 0x8E8D, - 47083 - 44032: 0x8E8E, - 47084 - 44032: 0xB7AF, - 47085 - 44032: 0xB7B0, - 47086 - 44032: 0x8E8F, - 47087 - 44032: 0x8E90, - 47088 - 44032: 0xB7B1, - 47089 - 44032: 0x8E91, - 47090 - 44032: 0x8E92, - 47091 - 44032: 0x8E93, - 47092 - 44032: 0xB7B2, - 47093 - 44032: 0x8E94, - 47094 - 44032: 0x8E95, - 47095 - 44032: 0x8E96, - 47096 - 44032: 0x8E97, - 47097 - 44032: 0x8E98, - 47098 - 44032: 0x8E99, - 47099 - 44032: 0x8E9A, - 47100 - 44032: 0xB7B3, - 47101 - 44032: 0xB7B4, - 47102 - 44032: 0x8E9B, - 47103 - 44032: 0xB7B5, - 47104 - 44032: 0xB7B6, - 47105 - 44032: 0xB7B7, - 47106 - 44032: 0x8E9C, - 47107 - 44032: 0x8E9D, - 47108 - 44032: 0x8E9E, - 47109 - 44032: 0x8E9F, - 47110 - 44032: 0x8EA0, - 47111 - 44032: 0xB7B8, - 47112 - 44032: 0xB7B9, - 47113 - 44032: 0xB7BA, - 47114 - 44032: 0x8EA1, - 47115 - 44032: 0x8EA2, - 47116 - 44032: 0xB7BB, - 47117 - 44032: 0x8EA3, - 47118 - 44032: 0x8EA4, - 47119 - 44032: 0x8EA5, - 47120 - 44032: 0xB7BC, - 47121 - 44032: 0x8EA6, - 47122 - 44032: 0x8EA7, - 47123 - 44032: 0x8EA8, - 47124 - 44032: 0x8EA9, - 47125 - 44032: 0x8EAA, - 47126 - 44032: 0x8EAB, - 47127 - 44032: 0x8EAC, - 47128 - 44032: 0xB7BD, - 47129 - 44032: 0xB7BE, - 47130 - 44032: 0x8EAD, - 47131 - 44032: 0xB7BF, - 47132 - 44032: 0x8EAE, - 47133 - 44032: 0xB7C0, - 47134 - 44032: 0x8EAF, - 47135 - 44032: 0x8EB0, - 47136 - 44032: 0x8EB1, - 47137 - 44032: 0x8EB2, - 47138 - 44032: 0x8EB3, - 47139 - 44032: 0x8EB4, - 47140 - 44032: 0xB7C1, - 47141 - 44032: 0xB7C2, - 47142 - 44032: 0x8EB5, - 47143 - 44032: 0x8EB6, - 47144 - 44032: 0xB7C3, - 47145 - 44032: 0x8EB7, - 47146 - 44032: 0x8EB8, - 47147 - 44032: 0x8EB9, - 47148 - 44032: 0xB7C4, - 47149 - 44032: 0x8EBA, - 47150 - 44032: 0x8EBB, - 47151 - 44032: 0x8EBC, - 47152 - 44032: 0x8EBD, - 47153 - 44032: 0x8EBE, - 47154 - 44032: 0x8EBF, - 47155 - 44032: 0x8EC0, - 47156 - 44032: 0xB7C5, - 47157 - 44032: 0xB7C6, - 47158 - 44032: 0x8EC1, - 47159 - 44032: 0xB7C7, - 47160 - 44032: 0xB7C8, - 47161 - 44032: 0xB7C9, - 47162 - 44032: 0x8EC2, - 47163 - 44032: 0x8EC3, - 47164 - 44032: 0x8EC4, - 47165 - 44032: 0x8EC5, - 47166 - 44032: 0x8EC6, - 47167 - 44032: 0x8EC7, - 47168 - 44032: 0xB7CA, - 47169 - 44032: 0x8EC8, - 47170 - 44032: 0x8EC9, - 47171 - 44032: 0x8ECA, - 47172 - 44032: 0xB7CB, - 47173 - 44032: 0x8ECB, - 47174 - 44032: 0x8ECC, - 47175 - 44032: 0x8ECD, - 47176 - 44032: 0x8ECE, - 47177 - 44032: 0x8ECF, - 47178 - 44032: 0x8ED0, - 47179 - 44032: 0x8ED1, - 47180 - 44032: 0x8ED2, - 47181 - 44032: 0x8ED3, - 47182 - 44032: 0x8ED4, - 47183 - 44032: 0x8ED5, - 47184 - 44032: 0x8ED6, - 47185 - 44032: 0xB7CC, - 47186 - 44032: 0x8ED7, - 47187 - 44032: 0xB7CD, - 47188 - 44032: 0x8ED8, - 47189 - 44032: 0x8ED9, - 47190 - 44032: 0x8EDA, - 47191 - 44032: 0x8EDB, - 47192 - 44032: 0x8EDC, - 47193 - 44032: 0x8EDD, - 47194 - 44032: 0x8EDE, - 47195 - 44032: 0x8EDF, - 47196 - 44032: 0xB7CE, - 47197 - 44032: 0xB7CF, - 47198 - 44032: 0x8EE0, - 47199 - 44032: 0x8EE1, - 47200 - 44032: 0xB7D0, - 47201 - 44032: 0x8EE2, - 47202 - 44032: 0x8EE3, - 47203 - 44032: 0x8EE4, - 47204 - 44032: 0xB7D1, - 47205 - 44032: 0x8EE5, - 47206 - 44032: 0x8EE6, - 47207 - 44032: 0x8EE7, - 47208 - 44032: 0x8EE8, - 47209 - 44032: 0x8EE9, - 47210 - 44032: 0x8EEA, - 47211 - 44032: 0x8EEB, - 47212 - 44032: 0xB7D2, - 47213 - 44032: 0xB7D3, - 47214 - 44032: 0x8EEC, - 47215 - 44032: 0xB7D4, - 47216 - 44032: 0x8EED, - 47217 - 44032: 0xB7D5, - 47218 - 44032: 0x8EEE, - 47219 - 44032: 0x8EEF, - 47220 - 44032: 0x8EF0, - 47221 - 44032: 0x8EF1, - 47222 - 44032: 0x8EF2, - 47223 - 44032: 0x8EF3, - 47224 - 44032: 0xB7D6, - 47225 - 44032: 0x8EF4, - 47226 - 44032: 0x8EF5, - 47227 - 44032: 0x8EF6, - 47228 - 44032: 0xB7D7, - 47229 - 44032: 0x8EF7, - 47230 - 44032: 0x8EF8, - 47231 - 44032: 0x8EF9, - 47232 - 44032: 0x8EFA, - 47233 - 44032: 0x8EFB, - 47234 - 44032: 0x8EFC, - 47235 - 44032: 0x8EFD, - 47236 - 44032: 0x8EFE, - 47237 - 44032: 0x8F41, - 47238 - 44032: 0x8F42, - 47239 - 44032: 0x8F43, - 47240 - 44032: 0x8F44, - 47241 - 44032: 0x8F45, - 47242 - 44032: 0x8F46, - 47243 - 44032: 0x8F47, - 47244 - 44032: 0x8F48, - 47245 - 44032: 0xB7D8, - 47246 - 44032: 0x8F49, - 47247 - 44032: 0x8F4A, - 47248 - 44032: 0x8F4B, - 47249 - 44032: 0x8F4C, - 47250 - 44032: 0x8F4D, - 47251 - 44032: 0x8F4E, - 47252 - 44032: 0x8F4F, - 47253 - 44032: 0x8F50, - 47254 - 44032: 0x8F51, - 47255 - 44032: 0x8F52, - 47256 - 44032: 0x8F53, - 47257 - 44032: 0x8F54, - 47258 - 44032: 0x8F55, - 47259 - 44032: 0x8F56, - 47260 - 44032: 0x8F57, - 47261 - 44032: 0x8F58, - 47262 - 44032: 0x8F59, - 47263 - 44032: 0x8F5A, - 47264 - 44032: 0x8F61, - 47265 - 44032: 0x8F62, - 47266 - 44032: 0x8F63, - 47267 - 44032: 0x8F64, - 47268 - 44032: 0x8F65, - 47269 - 44032: 0x8F66, - 47270 - 44032: 0x8F67, - 47271 - 44032: 0x8F68, - 47272 - 44032: 0xB7D9, - 47273 - 44032: 0x8F69, - 47274 - 44032: 0x8F6A, - 47275 - 44032: 0x8F6B, - 47276 - 44032: 0x8F6C, - 47277 - 44032: 0x8F6D, - 47278 - 44032: 0x8F6E, - 47279 - 44032: 0x8F6F, - 47280 - 44032: 0xB7DA, - 47281 - 44032: 0x8F70, - 47282 - 44032: 0x8F71, - 47283 - 44032: 0x8F72, - 47284 - 44032: 0xB7DB, - 47285 - 44032: 0x8F73, - 47286 - 44032: 0x8F74, - 47287 - 44032: 0x8F75, - 47288 - 44032: 0xB7DC, - 47289 - 44032: 0x8F76, - 47290 - 44032: 0x8F77, - 47291 - 44032: 0x8F78, - 47292 - 44032: 0x8F79, - 47293 - 44032: 0x8F7A, - 47294 - 44032: 0x8F81, - 47295 - 44032: 0x8F82, - 47296 - 44032: 0xB7DD, - 47297 - 44032: 0xB7DE, - 47298 - 44032: 0x8F83, - 47299 - 44032: 0xB7DF, - 47300 - 44032: 0x8F84, - 47301 - 44032: 0xB7E0, - 47302 - 44032: 0x8F85, - 47303 - 44032: 0x8F86, - 47304 - 44032: 0x8F87, - 47305 - 44032: 0x8F88, - 47306 - 44032: 0x8F89, - 47307 - 44032: 0x8F8A, - 47308 - 44032: 0xB7E1, - 47309 - 44032: 0x8F8B, - 47310 - 44032: 0x8F8C, - 47311 - 44032: 0x8F8D, - 47312 - 44032: 0xB7E2, - 47313 - 44032: 0x8F8E, - 47314 - 44032: 0x8F8F, - 47315 - 44032: 0x8F90, - 47316 - 44032: 0xB7E3, - 47317 - 44032: 0x8F91, - 47318 - 44032: 0x8F92, - 47319 - 44032: 0x8F93, - 47320 - 44032: 0x8F94, - 47321 - 44032: 0x8F95, - 47322 - 44032: 0x8F96, - 47323 - 44032: 0x8F97, - 47324 - 44032: 0x8F98, - 47325 - 44032: 0xB7E4, - 47326 - 44032: 0x8F99, - 47327 - 44032: 0xB7E5, - 47328 - 44032: 0x8F9A, - 47329 - 44032: 0xB7E6, - 47330 - 44032: 0x8F9B, - 47331 - 44032: 0x8F9C, - 47332 - 44032: 0x8F9D, - 47333 - 44032: 0x8F9E, - 47334 - 44032: 0x8F9F, - 47335 - 44032: 0x8FA0, - 47336 - 44032: 0xB7E7, - 47337 - 44032: 0xB7E8, - 47338 - 44032: 0x8FA1, - 47339 - 44032: 0x8FA2, - 47340 - 44032: 0xB7E9, - 47341 - 44032: 0x8FA3, - 47342 - 44032: 0x8FA4, - 47343 - 44032: 0x8FA5, - 47344 - 44032: 0xB7EA, - 47345 - 44032: 0x8FA6, - 47346 - 44032: 0x8FA7, - 47347 - 44032: 0x8FA8, - 47348 - 44032: 0x8FA9, - 47349 - 44032: 0x8FAA, - 47350 - 44032: 0x8FAB, - 47351 - 44032: 0x8FAC, - 47352 - 44032: 0xB7EB, - 47353 - 44032: 0xB7EC, - 47354 - 44032: 0x8FAD, - 47355 - 44032: 0xB7ED, - 47356 - 44032: 0x8FAE, - 47357 - 44032: 0xB7EE, - 47358 - 44032: 0x8FAF, - 47359 - 44032: 0x8FB0, - 47360 - 44032: 0x8FB1, - 47361 - 44032: 0x8FB2, - 47362 - 44032: 0x8FB3, - 47363 - 44032: 0x8FB4, - 47364 - 44032: 0xB7EF, - 47365 - 44032: 0x8FB5, - 47366 - 44032: 0x8FB6, - 47367 - 44032: 0x8FB7, - 47368 - 44032: 0x8FB8, - 47369 - 44032: 0x8FB9, - 47370 - 44032: 0x8FBA, - 47371 - 44032: 0x8FBB, - 47372 - 44032: 0x8FBC, - 47373 - 44032: 0x8FBD, - 47374 - 44032: 0x8FBE, - 47375 - 44032: 0x8FBF, - 47376 - 44032: 0x8FC0, - 47377 - 44032: 0x8FC1, - 47378 - 44032: 0x8FC2, - 47379 - 44032: 0x8FC3, - 47380 - 44032: 0x8FC4, - 47381 - 44032: 0x8FC5, - 47382 - 44032: 0x8FC6, - 47383 - 44032: 0x8FC7, - 47384 - 44032: 0xB7F0, - 47385 - 44032: 0x8FC8, - 47386 - 44032: 0x8FC9, - 47387 - 44032: 0x8FCA, - 47388 - 44032: 0x8FCB, - 47389 - 44032: 0x8FCC, - 47390 - 44032: 0x8FCD, - 47391 - 44032: 0x8FCE, - 47392 - 44032: 0xB7F1, - 47393 - 44032: 0x8FCF, - 47394 - 44032: 0x8FD0, - 47395 - 44032: 0x8FD1, - 47396 - 44032: 0x8FD2, - 47397 - 44032: 0x8FD3, - 47398 - 44032: 0x8FD4, - 47399 - 44032: 0x8FD5, - 47400 - 44032: 0x8FD6, - 47401 - 44032: 0x8FD7, - 47402 - 44032: 0x8FD8, - 47403 - 44032: 0x8FD9, - 47404 - 44032: 0x8FDA, - 47405 - 44032: 0x8FDB, - 47406 - 44032: 0x8FDC, - 47407 - 44032: 0x8FDD, - 47408 - 44032: 0x8FDE, - 47409 - 44032: 0x8FDF, - 47410 - 44032: 0x8FE0, - 47411 - 44032: 0x8FE1, - 47412 - 44032: 0x8FE2, - 47413 - 44032: 0x8FE3, - 47414 - 44032: 0x8FE4, - 47415 - 44032: 0x8FE5, - 47416 - 44032: 0x8FE6, - 47417 - 44032: 0x8FE7, - 47418 - 44032: 0x8FE8, - 47419 - 44032: 0x8FE9, - 47420 - 44032: 0xB7F2, - 47421 - 44032: 0xB7F3, - 47422 - 44032: 0x8FEA, - 47423 - 44032: 0x8FEB, - 47424 - 44032: 0xB7F4, - 47425 - 44032: 0x8FEC, - 47426 - 44032: 0x8FED, - 47427 - 44032: 0x8FEE, - 47428 - 44032: 0xB7F5, - 47429 - 44032: 0x8FEF, - 47430 - 44032: 0x8FF0, - 47431 - 44032: 0x8FF1, - 47432 - 44032: 0x8FF2, - 47433 - 44032: 0x8FF3, - 47434 - 44032: 0x8FF4, - 47435 - 44032: 0x8FF5, - 47436 - 44032: 0xB7F6, - 47437 - 44032: 0x8FF6, - 47438 - 44032: 0x8FF7, - 47439 - 44032: 0xB7F7, - 47440 - 44032: 0x8FF8, - 47441 - 44032: 0xB7F8, - 47442 - 44032: 0x8FF9, - 47443 - 44032: 0x8FFA, - 47444 - 44032: 0x8FFB, - 47445 - 44032: 0x8FFC, - 47446 - 44032: 0x8FFD, - 47447 - 44032: 0x8FFE, - 47448 - 44032: 0xB7F9, - 47449 - 44032: 0xB7FA, - 47450 - 44032: 0x9041, - 47451 - 44032: 0x9042, - 47452 - 44032: 0xB7FB, - 47453 - 44032: 0x9043, - 47454 - 44032: 0x9044, - 47455 - 44032: 0x9045, - 47456 - 44032: 0xB7FC, - 47457 - 44032: 0x9046, - 47458 - 44032: 0x9047, - 47459 - 44032: 0x9048, - 47460 - 44032: 0x9049, - 47461 - 44032: 0x904A, - 47462 - 44032: 0x904B, - 47463 - 44032: 0x904C, - 47464 - 44032: 0xB7FD, - 47465 - 44032: 0xB7FE, - 47466 - 44032: 0x904D, - 47467 - 44032: 0xB8A1, - 47468 - 44032: 0x904E, - 47469 - 44032: 0xB8A2, - 47470 - 44032: 0x904F, - 47471 - 44032: 0x9050, - 47472 - 44032: 0x9051, - 47473 - 44032: 0x9052, - 47474 - 44032: 0x9053, - 47475 - 44032: 0x9054, - 47476 - 44032: 0xB8A3, - 47477 - 44032: 0xB8A4, - 47478 - 44032: 0x9055, - 47479 - 44032: 0x9056, - 47480 - 44032: 0xB8A5, - 47481 - 44032: 0x9057, - 47482 - 44032: 0x9058, - 47483 - 44032: 0x9059, - 47484 - 44032: 0xB8A6, - 47485 - 44032: 0x905A, - 47486 - 44032: 0x9061, - 47487 - 44032: 0x9062, - 47488 - 44032: 0x9063, - 47489 - 44032: 0x9064, - 47490 - 44032: 0x9065, - 47491 - 44032: 0x9066, - 47492 - 44032: 0xB8A7, - 47493 - 44032: 0xB8A8, - 47494 - 44032: 0x9067, - 47495 - 44032: 0xB8A9, - 47496 - 44032: 0x9068, - 47497 - 44032: 0xB8AA, - 47498 - 44032: 0xB8AB, - 47499 - 44032: 0x9069, - 47500 - 44032: 0x906A, - 47501 - 44032: 0xB8AC, - 47502 - 44032: 0xB8AD, - 47503 - 44032: 0x906B, - 47504 - 44032: 0x906C, - 47505 - 44032: 0x906D, - 47506 - 44032: 0x906E, - 47507 - 44032: 0x906F, - 47508 - 44032: 0x9070, - 47509 - 44032: 0x9071, - 47510 - 44032: 0x9072, - 47511 - 44032: 0x9073, - 47512 - 44032: 0x9074, - 47513 - 44032: 0x9075, - 47514 - 44032: 0x9076, - 47515 - 44032: 0x9077, - 47516 - 44032: 0x9078, - 47517 - 44032: 0x9079, - 47518 - 44032: 0x907A, - 47519 - 44032: 0x9081, - 47520 - 44032: 0x9082, - 47521 - 44032: 0x9083, - 47522 - 44032: 0x9084, - 47523 - 44032: 0x9085, - 47524 - 44032: 0x9086, - 47525 - 44032: 0x9087, - 47526 - 44032: 0x9088, - 47527 - 44032: 0x9089, - 47528 - 44032: 0x908A, - 47529 - 44032: 0x908B, - 47530 - 44032: 0x908C, - 47531 - 44032: 0x908D, - 47532 - 44032: 0xB8AE, - 47533 - 44032: 0xB8AF, - 47534 - 44032: 0x908E, - 47535 - 44032: 0x908F, - 47536 - 44032: 0xB8B0, - 47537 - 44032: 0x9090, - 47538 - 44032: 0x9091, - 47539 - 44032: 0x9092, - 47540 - 44032: 0xB8B1, - 47541 - 44032: 0x9093, - 47542 - 44032: 0x9094, - 47543 - 44032: 0x9095, - 47544 - 44032: 0x9096, - 47545 - 44032: 0x9097, - 47546 - 44032: 0x9098, - 47547 - 44032: 0x9099, - 47548 - 44032: 0xB8B2, - 47549 - 44032: 0xB8B3, - 47550 - 44032: 0x909A, - 47551 - 44032: 0xB8B4, - 47552 - 44032: 0x909B, - 47553 - 44032: 0xB8B5, - 47554 - 44032: 0x909C, - 47555 - 44032: 0x909D, - 47556 - 44032: 0x909E, - 47557 - 44032: 0x909F, - 47558 - 44032: 0x90A0, - 47559 - 44032: 0x90A1, - 47560 - 44032: 0xB8B6, - 47561 - 44032: 0xB8B7, - 47562 - 44032: 0x90A2, - 47563 - 44032: 0x90A3, - 47564 - 44032: 0xB8B8, - 47565 - 44032: 0x90A4, - 47566 - 44032: 0xB8B9, - 47567 - 44032: 0xB8BA, - 47568 - 44032: 0xB8BB, - 47569 - 44032: 0xB8BC, - 47570 - 44032: 0xB8BD, - 47571 - 44032: 0x90A5, - 47572 - 44032: 0x90A6, - 47573 - 44032: 0x90A7, - 47574 - 44032: 0x90A8, - 47575 - 44032: 0x90A9, - 47576 - 44032: 0xB8BE, - 47577 - 44032: 0xB8BF, - 47578 - 44032: 0x90AA, - 47579 - 44032: 0xB8C0, - 47580 - 44032: 0x90AB, - 47581 - 44032: 0xB8C1, - 47582 - 44032: 0xB8C2, - 47583 - 44032: 0x90AC, - 47584 - 44032: 0x90AD, - 47585 - 44032: 0xB8C3, - 47586 - 44032: 0x90AE, - 47587 - 44032: 0xB8C4, - 47588 - 44032: 0xB8C5, - 47589 - 44032: 0xB8C6, - 47590 - 44032: 0x90AF, - 47591 - 44032: 0x90B0, - 47592 - 44032: 0xB8C7, - 47593 - 44032: 0x90B1, - 47594 - 44032: 0x90B2, - 47595 - 44032: 0x90B3, - 47596 - 44032: 0xB8C8, - 47597 - 44032: 0x90B4, - 47598 - 44032: 0x90B5, - 47599 - 44032: 0x90B6, - 47600 - 44032: 0x90B7, - 47601 - 44032: 0x90B8, - 47602 - 44032: 0x90B9, - 47603 - 44032: 0x90BA, - 47604 - 44032: 0xB8C9, - 47605 - 44032: 0xB8CA, - 47606 - 44032: 0x90BB, - 47607 - 44032: 0xB8CB, - 47608 - 44032: 0xB8CC, - 47609 - 44032: 0xB8CD, - 47610 - 44032: 0xB8CE, - 47611 - 44032: 0x90BC, - 47612 - 44032: 0x90BD, - 47613 - 44032: 0x90BE, - 47614 - 44032: 0x90BF, - 47615 - 44032: 0x90C0, - 47616 - 44032: 0xB8CF, - 47617 - 44032: 0xB8D0, - 47618 - 44032: 0x90C1, - 47619 - 44032: 0x90C2, - 47620 - 44032: 0x90C3, - 47621 - 44032: 0x90C4, - 47622 - 44032: 0x90C5, - 47623 - 44032: 0x90C6, - 47624 - 44032: 0xB8D1, - 47625 - 44032: 0x90C7, - 47626 - 44032: 0x90C8, - 47627 - 44032: 0x90C9, - 47628 - 44032: 0x90CA, - 47629 - 44032: 0x90CB, - 47630 - 44032: 0x90CC, - 47631 - 44032: 0x90CD, - 47632 - 44032: 0x90CE, - 47633 - 44032: 0x90CF, - 47634 - 44032: 0x90D0, - 47635 - 44032: 0x90D1, - 47636 - 44032: 0x90D2, - 47637 - 44032: 0xB8D2, - 47638 - 44032: 0x90D3, - 47639 - 44032: 0x90D4, - 47640 - 44032: 0x90D5, - 47641 - 44032: 0x90D6, - 47642 - 44032: 0x90D7, - 47643 - 44032: 0x90D8, - 47644 - 44032: 0x90D9, - 47645 - 44032: 0x90DA, - 47646 - 44032: 0x90DB, - 47647 - 44032: 0x90DC, - 47648 - 44032: 0x90DD, - 47649 - 44032: 0x90DE, - 47650 - 44032: 0x90DF, - 47651 - 44032: 0x90E0, - 47652 - 44032: 0x90E1, - 47653 - 44032: 0x90E2, - 47654 - 44032: 0x90E3, - 47655 - 44032: 0x90E4, - 47656 - 44032: 0x90E5, - 47657 - 44032: 0x90E6, - 47658 - 44032: 0x90E7, - 47659 - 44032: 0x90E8, - 47660 - 44032: 0x90E9, - 47661 - 44032: 0x90EA, - 47662 - 44032: 0x90EB, - 47663 - 44032: 0x90EC, - 47664 - 44032: 0x90ED, - 47665 - 44032: 0x90EE, - 47666 - 44032: 0x90EF, - 47667 - 44032: 0x90F0, - 47668 - 44032: 0x90F1, - 47669 - 44032: 0x90F2, - 47670 - 44032: 0x90F3, - 47671 - 44032: 0x90F4, - 47672 - 44032: 0xB8D3, - 47673 - 44032: 0xB8D4, - 47674 - 44032: 0x90F5, - 47675 - 44032: 0x90F6, - 47676 - 44032: 0xB8D5, - 47677 - 44032: 0x90F7, - 47678 - 44032: 0x90F8, - 47679 - 44032: 0x90F9, - 47680 - 44032: 0xB8D6, - 47681 - 44032: 0x90FA, - 47682 - 44032: 0xB8D7, - 47683 - 44032: 0x90FB, - 47684 - 44032: 0x90FC, - 47685 - 44032: 0x90FD, - 47686 - 44032: 0x90FE, - 47687 - 44032: 0x9141, - 47688 - 44032: 0xB8D8, - 47689 - 44032: 0xB8D9, - 47690 - 44032: 0x9142, - 47691 - 44032: 0xB8DA, - 47692 - 44032: 0x9143, - 47693 - 44032: 0xB8DB, - 47694 - 44032: 0xB8DC, - 47695 - 44032: 0x9144, - 47696 - 44032: 0x9145, - 47697 - 44032: 0x9146, - 47698 - 44032: 0x9147, - 47699 - 44032: 0xB8DD, - 47700 - 44032: 0xB8DE, - 47701 - 44032: 0xB8DF, - 47702 - 44032: 0x9148, - 47703 - 44032: 0x9149, - 47704 - 44032: 0xB8E0, - 47705 - 44032: 0x914A, - 47706 - 44032: 0x914B, - 47707 - 44032: 0x914C, - 47708 - 44032: 0xB8E1, - 47709 - 44032: 0x914D, - 47710 - 44032: 0x914E, - 47711 - 44032: 0x914F, - 47712 - 44032: 0x9150, - 47713 - 44032: 0x9151, - 47714 - 44032: 0x9152, - 47715 - 44032: 0x9153, - 47716 - 44032: 0xB8E2, - 47717 - 44032: 0xB8E3, - 47718 - 44032: 0x9154, - 47719 - 44032: 0xB8E4, - 47720 - 44032: 0xB8E5, - 47721 - 44032: 0xB8E6, - 47722 - 44032: 0x9155, - 47723 - 44032: 0x9156, - 47724 - 44032: 0x9157, - 47725 - 44032: 0x9158, - 47726 - 44032: 0x9159, - 47727 - 44032: 0x915A, - 47728 - 44032: 0xB8E7, - 47729 - 44032: 0xB8E8, - 47730 - 44032: 0x9161, - 47731 - 44032: 0x9162, - 47732 - 44032: 0xB8E9, - 47733 - 44032: 0x9163, - 47734 - 44032: 0x9164, - 47735 - 44032: 0x9165, - 47736 - 44032: 0xB8EA, - 47737 - 44032: 0x9166, - 47738 - 44032: 0x9167, - 47739 - 44032: 0x9168, - 47740 - 44032: 0x9169, - 47741 - 44032: 0x916A, - 47742 - 44032: 0x916B, - 47743 - 44032: 0x916C, - 47744 - 44032: 0x916D, - 47745 - 44032: 0x916E, - 47746 - 44032: 0x916F, - 47747 - 44032: 0xB8EB, - 47748 - 44032: 0xB8EC, - 47749 - 44032: 0xB8ED, - 47750 - 44032: 0x9170, - 47751 - 44032: 0xB8EE, - 47752 - 44032: 0x9171, - 47753 - 44032: 0x9172, - 47754 - 44032: 0x9173, - 47755 - 44032: 0x9174, - 47756 - 44032: 0xB8EF, - 47757 - 44032: 0x9175, - 47758 - 44032: 0x9176, - 47759 - 44032: 0x9177, - 47760 - 44032: 0x9178, - 47761 - 44032: 0x9179, - 47762 - 44032: 0x917A, - 47763 - 44032: 0x9181, - 47764 - 44032: 0x9182, - 47765 - 44032: 0x9183, - 47766 - 44032: 0x9184, - 47767 - 44032: 0x9185, - 47768 - 44032: 0x9186, - 47769 - 44032: 0x9187, - 47770 - 44032: 0x9188, - 47771 - 44032: 0x9189, - 47772 - 44032: 0x918A, - 47773 - 44032: 0x918B, - 47774 - 44032: 0x918C, - 47775 - 44032: 0x918D, - 47776 - 44032: 0x918E, - 47777 - 44032: 0x918F, - 47778 - 44032: 0x9190, - 47779 - 44032: 0x9191, - 47780 - 44032: 0x9192, - 47781 - 44032: 0x9193, - 47782 - 44032: 0x9194, - 47783 - 44032: 0x9195, - 47784 - 44032: 0xB8F0, - 47785 - 44032: 0xB8F1, - 47786 - 44032: 0x9196, - 47787 - 44032: 0xB8F2, - 47788 - 44032: 0xB8F3, - 47789 - 44032: 0x9197, - 47790 - 44032: 0x9198, - 47791 - 44032: 0x9199, - 47792 - 44032: 0xB8F4, - 47793 - 44032: 0x919A, - 47794 - 44032: 0xB8F5, - 47795 - 44032: 0x919B, - 47796 - 44032: 0x919C, - 47797 - 44032: 0x919D, - 47798 - 44032: 0x919E, - 47799 - 44032: 0x919F, - 47800 - 44032: 0xB8F6, - 47801 - 44032: 0xB8F7, - 47802 - 44032: 0x91A0, - 47803 - 44032: 0xB8F8, - 47804 - 44032: 0x91A1, - 47805 - 44032: 0xB8F9, - 47806 - 44032: 0x91A2, - 47807 - 44032: 0x91A3, - 47808 - 44032: 0x91A4, - 47809 - 44032: 0x91A5, - 47810 - 44032: 0x91A6, - 47811 - 44032: 0x91A7, - 47812 - 44032: 0xB8FA, - 47813 - 44032: 0x91A8, - 47814 - 44032: 0x91A9, - 47815 - 44032: 0x91AA, - 47816 - 44032: 0xB8FB, - 47817 - 44032: 0x91AB, - 47818 - 44032: 0x91AC, - 47819 - 44032: 0x91AD, - 47820 - 44032: 0x91AE, - 47821 - 44032: 0x91AF, - 47822 - 44032: 0x91B0, - 47823 - 44032: 0x91B1, - 47824 - 44032: 0x91B2, - 47825 - 44032: 0x91B3, - 47826 - 44032: 0x91B4, - 47827 - 44032: 0x91B5, - 47828 - 44032: 0x91B6, - 47829 - 44032: 0x91B7, - 47830 - 44032: 0x91B8, - 47831 - 44032: 0x91B9, - 47832 - 44032: 0xB8FC, - 47833 - 44032: 0xB8FD, - 47834 - 44032: 0x91BA, - 47835 - 44032: 0x91BB, - 47836 - 44032: 0x91BC, - 47837 - 44032: 0x91BD, - 47838 - 44032: 0x91BE, - 47839 - 44032: 0x91BF, - 47840 - 44032: 0x91C0, - 47841 - 44032: 0x91C1, - 47842 - 44032: 0x91C2, - 47843 - 44032: 0x91C3, - 47844 - 44032: 0x91C4, - 47845 - 44032: 0x91C5, - 47846 - 44032: 0x91C6, - 47847 - 44032: 0x91C7, - 47848 - 44032: 0x91C8, - 47849 - 44032: 0x91C9, - 47850 - 44032: 0x91CA, - 47851 - 44032: 0x91CB, - 47852 - 44032: 0x91CC, - 47853 - 44032: 0x91CD, - 47854 - 44032: 0x91CE, - 47855 - 44032: 0x91CF, - 47856 - 44032: 0x91D0, - 47857 - 44032: 0x91D1, - 47858 - 44032: 0x91D2, - 47859 - 44032: 0x91D3, - 47860 - 44032: 0x91D4, - 47861 - 44032: 0x91D5, - 47862 - 44032: 0x91D6, - 47863 - 44032: 0x91D7, - 47864 - 44032: 0x91D8, - 47865 - 44032: 0x91D9, - 47866 - 44032: 0x91DA, - 47867 - 44032: 0x91DB, - 47868 - 44032: 0xB8FE, - 47869 - 44032: 0x91DC, - 47870 - 44032: 0x91DD, - 47871 - 44032: 0x91DE, - 47872 - 44032: 0xB9A1, - 47873 - 44032: 0x91DF, - 47874 - 44032: 0x91E0, - 47875 - 44032: 0x91E1, - 47876 - 44032: 0xB9A2, - 47877 - 44032: 0x91E2, - 47878 - 44032: 0x91E3, - 47879 - 44032: 0x91E4, - 47880 - 44032: 0x91E5, - 47881 - 44032: 0x91E6, - 47882 - 44032: 0x91E7, - 47883 - 44032: 0x91E8, - 47884 - 44032: 0x91E9, - 47885 - 44032: 0xB9A3, - 47886 - 44032: 0x91EA, - 47887 - 44032: 0xB9A4, - 47888 - 44032: 0x91EB, - 47889 - 44032: 0xB9A5, - 47890 - 44032: 0x91EC, - 47891 - 44032: 0x91ED, - 47892 - 44032: 0x91EE, - 47893 - 44032: 0x91EF, - 47894 - 44032: 0x91F0, - 47895 - 44032: 0x91F1, - 47896 - 44032: 0xB9A6, - 47897 - 44032: 0x91F2, - 47898 - 44032: 0x91F3, - 47899 - 44032: 0x91F4, - 47900 - 44032: 0xB9A7, - 47901 - 44032: 0x91F5, - 47902 - 44032: 0x91F6, - 47903 - 44032: 0x91F7, - 47904 - 44032: 0xB9A8, - 47905 - 44032: 0x91F8, - 47906 - 44032: 0x91F9, - 47907 - 44032: 0x91FA, - 47908 - 44032: 0x91FB, - 47909 - 44032: 0x91FC, - 47910 - 44032: 0x91FD, - 47911 - 44032: 0x91FE, - 47912 - 44032: 0x9241, - 47913 - 44032: 0xB9A9, - 47914 - 44032: 0x9242, - 47915 - 44032: 0xB9AA, - 47916 - 44032: 0x9243, - 47917 - 44032: 0x9244, - 47918 - 44032: 0x9245, - 47919 - 44032: 0x9246, - 47920 - 44032: 0x9247, - 47921 - 44032: 0x9248, - 47922 - 44032: 0x9249, - 47923 - 44032: 0x924A, - 47924 - 44032: 0xB9AB, - 47925 - 44032: 0xB9AC, - 47926 - 44032: 0xB9AD, - 47927 - 44032: 0x924B, - 47928 - 44032: 0xB9AE, - 47929 - 44032: 0x924C, - 47930 - 44032: 0x924D, - 47931 - 44032: 0xB9AF, - 47932 - 44032: 0xB9B0, - 47933 - 44032: 0xB9B1, - 47934 - 44032: 0xB9B2, - 47935 - 44032: 0x924E, - 47936 - 44032: 0x924F, - 47937 - 44032: 0x9250, - 47938 - 44032: 0x9251, - 47939 - 44032: 0x9252, - 47940 - 44032: 0xB9B3, - 47941 - 44032: 0xB9B4, - 47942 - 44032: 0x9253, - 47943 - 44032: 0xB9B5, - 47944 - 44032: 0x9254, - 47945 - 44032: 0xB9B6, - 47946 - 44032: 0x9255, - 47947 - 44032: 0x9256, - 47948 - 44032: 0x9257, - 47949 - 44032: 0xB9B7, - 47950 - 44032: 0x9258, - 47951 - 44032: 0xB9B8, - 47952 - 44032: 0xB9B9, - 47953 - 44032: 0x9259, - 47954 - 44032: 0x925A, - 47955 - 44032: 0x9261, - 47956 - 44032: 0xB9BA, - 47957 - 44032: 0x9262, - 47958 - 44032: 0x9263, - 47959 - 44032: 0x9264, - 47960 - 44032: 0xB9BB, - 47961 - 44032: 0x9265, - 47962 - 44032: 0x9266, - 47963 - 44032: 0x9267, - 47964 - 44032: 0x9268, - 47965 - 44032: 0x9269, - 47966 - 44032: 0x926A, - 47967 - 44032: 0x926B, - 47968 - 44032: 0x926C, - 47969 - 44032: 0xB9BC, - 47970 - 44032: 0x926D, - 47971 - 44032: 0xB9BD, - 47972 - 44032: 0x926E, - 47973 - 44032: 0x926F, - 47974 - 44032: 0x9270, - 47975 - 44032: 0x9271, - 47976 - 44032: 0x9272, - 47977 - 44032: 0x9273, - 47978 - 44032: 0x9274, - 47979 - 44032: 0x9275, - 47980 - 44032: 0xB9BE, - 47981 - 44032: 0x9276, - 47982 - 44032: 0x9277, - 47983 - 44032: 0x9278, - 47984 - 44032: 0x9279, - 47985 - 44032: 0x927A, - 47986 - 44032: 0x9281, - 47987 - 44032: 0x9282, - 47988 - 44032: 0x9283, - 47989 - 44032: 0x9284, - 47990 - 44032: 0x9285, - 47991 - 44032: 0x9286, - 47992 - 44032: 0x9287, - 47993 - 44032: 0x9288, - 47994 - 44032: 0x9289, - 47995 - 44032: 0x928A, - 47996 - 44032: 0x928B, - 47997 - 44032: 0x928C, - 47998 - 44032: 0x928D, - 47999 - 44032: 0x928E, - 48000 - 44032: 0x928F, - 48001 - 44032: 0x9290, - 48002 - 44032: 0x9291, - 48003 - 44032: 0x9292, - 48004 - 44032: 0x9293, - 48005 - 44032: 0x9294, - 48006 - 44032: 0x9295, - 48007 - 44032: 0x9296, - 48008 - 44032: 0xB9BF, - 48009 - 44032: 0x9297, - 48010 - 44032: 0x9298, - 48011 - 44032: 0x9299, - 48012 - 44032: 0xB9C0, - 48013 - 44032: 0x929A, - 48014 - 44032: 0x929B, - 48015 - 44032: 0x929C, - 48016 - 44032: 0xB9C1, - 48017 - 44032: 0x929D, - 48018 - 44032: 0x929E, - 48019 - 44032: 0x929F, - 48020 - 44032: 0x92A0, - 48021 - 44032: 0x92A1, - 48022 - 44032: 0x92A2, - 48023 - 44032: 0x92A3, - 48024 - 44032: 0x92A4, - 48025 - 44032: 0x92A5, - 48026 - 44032: 0x92A6, - 48027 - 44032: 0x92A7, - 48028 - 44032: 0x92A8, - 48029 - 44032: 0x92A9, - 48030 - 44032: 0x92AA, - 48031 - 44032: 0x92AB, - 48032 - 44032: 0x92AC, - 48033 - 44032: 0x92AD, - 48034 - 44032: 0x92AE, - 48035 - 44032: 0x92AF, - 48036 - 44032: 0xB9C2, - 48037 - 44032: 0x92B0, - 48038 - 44032: 0x92B1, - 48039 - 44032: 0x92B2, - 48040 - 44032: 0xB9C3, - 48041 - 44032: 0x92B3, - 48042 - 44032: 0x92B4, - 48043 - 44032: 0x92B5, - 48044 - 44032: 0xB9C4, - 48045 - 44032: 0x92B6, - 48046 - 44032: 0x92B7, - 48047 - 44032: 0x92B8, - 48048 - 44032: 0x92B9, - 48049 - 44032: 0x92BA, - 48050 - 44032: 0x92BB, - 48051 - 44032: 0x92BC, - 48052 - 44032: 0xB9C5, - 48053 - 44032: 0x92BD, - 48054 - 44032: 0x92BE, - 48055 - 44032: 0xB9C6, - 48056 - 44032: 0x92BF, - 48057 - 44032: 0x92C0, - 48058 - 44032: 0x92C1, - 48059 - 44032: 0x92C2, - 48060 - 44032: 0x92C3, - 48061 - 44032: 0x92C4, - 48062 - 44032: 0x92C5, - 48063 - 44032: 0x92C6, - 48064 - 44032: 0xB9C7, - 48065 - 44032: 0x92C7, - 48066 - 44032: 0x92C8, - 48067 - 44032: 0x92C9, - 48068 - 44032: 0xB9C8, - 48069 - 44032: 0x92CA, - 48070 - 44032: 0x92CB, - 48071 - 44032: 0x92CC, - 48072 - 44032: 0xB9C9, - 48073 - 44032: 0x92CD, - 48074 - 44032: 0x92CE, - 48075 - 44032: 0x92CF, - 48076 - 44032: 0x92D0, - 48077 - 44032: 0x92D1, - 48078 - 44032: 0x92D2, - 48079 - 44032: 0x92D3, - 48080 - 44032: 0xB9CA, - 48081 - 44032: 0x92D4, - 48082 - 44032: 0x92D5, - 48083 - 44032: 0xB9CB, - 48084 - 44032: 0x92D6, - 48085 - 44032: 0x92D7, - 48086 - 44032: 0x92D8, - 48087 - 44032: 0x92D9, - 48088 - 44032: 0x92DA, - 48089 - 44032: 0x92DB, - 48090 - 44032: 0x92DC, - 48091 - 44032: 0x92DD, - 48092 - 44032: 0x92DE, - 48093 - 44032: 0x92DF, - 48094 - 44032: 0x92E0, - 48095 - 44032: 0x92E1, - 48096 - 44032: 0x92E2, - 48097 - 44032: 0x92E3, - 48098 - 44032: 0x92E4, - 48099 - 44032: 0x92E5, - 48100 - 44032: 0x92E6, - 48101 - 44032: 0x92E7, - 48102 - 44032: 0x92E8, - 48103 - 44032: 0x92E9, - 48104 - 44032: 0x92EA, - 48105 - 44032: 0x92EB, - 48106 - 44032: 0x92EC, - 48107 - 44032: 0x92ED, - 48108 - 44032: 0x92EE, - 48109 - 44032: 0x92EF, - 48110 - 44032: 0x92F0, - 48111 - 44032: 0x92F1, - 48112 - 44032: 0x92F2, - 48113 - 44032: 0x92F3, - 48114 - 44032: 0x92F4, - 48115 - 44032: 0x92F5, - 48116 - 44032: 0x92F6, - 48117 - 44032: 0x92F7, - 48118 - 44032: 0x92F8, - 48119 - 44032: 0x92F9, - 48120 - 44032: 0xB9CC, - 48121 - 44032: 0xB9CD, - 48122 - 44032: 0x92FA, - 48123 - 44032: 0x92FB, - 48124 - 44032: 0xB9CE, - 48125 - 44032: 0x92FC, - 48126 - 44032: 0x92FD, - 48127 - 44032: 0xB9CF, - 48128 - 44032: 0xB9D0, - 48129 - 44032: 0x92FE, - 48130 - 44032: 0xB9D1, - 48131 - 44032: 0x9341, - 48132 - 44032: 0x9342, - 48133 - 44032: 0x9343, - 48134 - 44032: 0x9344, - 48135 - 44032: 0x9345, - 48136 - 44032: 0xB9D2, - 48137 - 44032: 0xB9D3, - 48138 - 44032: 0x9346, - 48139 - 44032: 0xB9D4, - 48140 - 44032: 0xB9D5, - 48141 - 44032: 0xB9D6, - 48142 - 44032: 0x9347, - 48143 - 44032: 0xB9D7, - 48144 - 44032: 0x9348, - 48145 - 44032: 0xB9D8, - 48146 - 44032: 0x9349, - 48147 - 44032: 0x934A, - 48148 - 44032: 0xB9D9, - 48149 - 44032: 0xB9DA, - 48150 - 44032: 0xB9DB, - 48151 - 44032: 0xB9DC, - 48152 - 44032: 0xB9DD, - 48153 - 44032: 0x934B, - 48154 - 44032: 0x934C, - 48155 - 44032: 0xB9DE, - 48156 - 44032: 0xB9DF, - 48157 - 44032: 0xB9E0, - 48158 - 44032: 0xB9E1, - 48159 - 44032: 0xB9E2, - 48160 - 44032: 0x934D, - 48161 - 44032: 0x934E, - 48162 - 44032: 0x934F, - 48163 - 44032: 0x9350, - 48164 - 44032: 0xB9E3, - 48165 - 44032: 0xB9E4, - 48166 - 44032: 0x9351, - 48167 - 44032: 0xB9E5, - 48168 - 44032: 0x9352, - 48169 - 44032: 0xB9E6, - 48170 - 44032: 0x9353, - 48171 - 44032: 0x9354, - 48172 - 44032: 0x9355, - 48173 - 44032: 0xB9E7, - 48174 - 44032: 0x9356, - 48175 - 44032: 0x9357, - 48176 - 44032: 0xB9E8, - 48177 - 44032: 0xB9E9, - 48178 - 44032: 0x9358, - 48179 - 44032: 0x9359, - 48180 - 44032: 0xB9EA, - 48181 - 44032: 0x935A, - 48182 - 44032: 0x9361, - 48183 - 44032: 0x9362, - 48184 - 44032: 0xB9EB, - 48185 - 44032: 0x9363, - 48186 - 44032: 0x9364, - 48187 - 44032: 0x9365, - 48188 - 44032: 0x9366, - 48189 - 44032: 0x9367, - 48190 - 44032: 0x9368, - 48191 - 44032: 0x9369, - 48192 - 44032: 0xB9EC, - 48193 - 44032: 0xB9ED, - 48194 - 44032: 0x936A, - 48195 - 44032: 0xB9EE, - 48196 - 44032: 0xB9EF, - 48197 - 44032: 0xB9F0, - 48198 - 44032: 0x936B, - 48199 - 44032: 0x936C, - 48200 - 44032: 0x936D, - 48201 - 44032: 0xB9F1, - 48202 - 44032: 0x936E, - 48203 - 44032: 0x936F, - 48204 - 44032: 0xB9F2, - 48205 - 44032: 0xB9F3, - 48206 - 44032: 0x9370, - 48207 - 44032: 0x9371, - 48208 - 44032: 0xB9F4, - 48209 - 44032: 0x9372, - 48210 - 44032: 0x9373, - 48211 - 44032: 0x9374, - 48212 - 44032: 0x9375, - 48213 - 44032: 0x9376, - 48214 - 44032: 0x9377, - 48215 - 44032: 0x9378, - 48216 - 44032: 0x9379, - 48217 - 44032: 0x937A, - 48218 - 44032: 0x9381, - 48219 - 44032: 0x9382, - 48220 - 44032: 0x9383, - 48221 - 44032: 0xB9F5, - 48222 - 44032: 0x9384, - 48223 - 44032: 0x9385, - 48224 - 44032: 0x9386, - 48225 - 44032: 0x9387, - 48226 - 44032: 0x9388, - 48227 - 44032: 0x9389, - 48228 - 44032: 0x938A, - 48229 - 44032: 0x938B, - 48230 - 44032: 0x938C, - 48231 - 44032: 0x938D, - 48232 - 44032: 0x938E, - 48233 - 44032: 0x938F, - 48234 - 44032: 0x9390, - 48235 - 44032: 0x9391, - 48236 - 44032: 0x9392, - 48237 - 44032: 0x9393, - 48238 - 44032: 0x9394, - 48239 - 44032: 0x9395, - 48240 - 44032: 0x9396, - 48241 - 44032: 0x9397, - 48242 - 44032: 0x9398, - 48243 - 44032: 0x9399, - 48244 - 44032: 0x939A, - 48245 - 44032: 0x939B, - 48246 - 44032: 0x939C, - 48247 - 44032: 0x939D, - 48248 - 44032: 0x939E, - 48249 - 44032: 0x939F, - 48250 - 44032: 0x93A0, - 48251 - 44032: 0x93A1, - 48252 - 44032: 0x93A2, - 48253 - 44032: 0x93A3, - 48254 - 44032: 0x93A4, - 48255 - 44032: 0x93A5, - 48256 - 44032: 0x93A6, - 48257 - 44032: 0x93A7, - 48258 - 44032: 0x93A8, - 48259 - 44032: 0x93A9, - 48260 - 44032: 0xB9F6, - 48261 - 44032: 0xB9F7, - 48262 - 44032: 0x93AA, - 48263 - 44032: 0x93AB, - 48264 - 44032: 0xB9F8, - 48265 - 44032: 0x93AC, - 48266 - 44032: 0x93AD, - 48267 - 44032: 0xB9F9, - 48268 - 44032: 0xB9FA, - 48269 - 44032: 0x93AE, - 48270 - 44032: 0xB9FB, - 48271 - 44032: 0x93AF, - 48272 - 44032: 0x93B0, - 48273 - 44032: 0x93B1, - 48274 - 44032: 0x93B2, - 48275 - 44032: 0x93B3, - 48276 - 44032: 0xB9FC, - 48277 - 44032: 0xB9FD, - 48278 - 44032: 0x93B4, - 48279 - 44032: 0xB9FE, - 48280 - 44032: 0x93B5, - 48281 - 44032: 0xBAA1, - 48282 - 44032: 0xBAA2, - 48283 - 44032: 0x93B6, - 48284 - 44032: 0x93B7, - 48285 - 44032: 0x93B8, - 48286 - 44032: 0x93B9, - 48287 - 44032: 0x93BA, - 48288 - 44032: 0xBAA3, - 48289 - 44032: 0xBAA4, - 48290 - 44032: 0x93BB, - 48291 - 44032: 0x93BC, - 48292 - 44032: 0xBAA5, - 48293 - 44032: 0x93BD, - 48294 - 44032: 0x93BE, - 48295 - 44032: 0xBAA6, - 48296 - 44032: 0xBAA7, - 48297 - 44032: 0x93BF, - 48298 - 44032: 0x93C0, - 48299 - 44032: 0x93C1, - 48300 - 44032: 0x93C2, - 48301 - 44032: 0x93C3, - 48302 - 44032: 0x93C4, - 48303 - 44032: 0x93C5, - 48304 - 44032: 0xBAA8, - 48305 - 44032: 0xBAA9, - 48306 - 44032: 0x93C6, - 48307 - 44032: 0xBAAA, - 48308 - 44032: 0xBAAB, - 48309 - 44032: 0xBAAC, - 48310 - 44032: 0x93C7, - 48311 - 44032: 0x93C8, - 48312 - 44032: 0x93C9, - 48313 - 44032: 0x93CA, - 48314 - 44032: 0x93CB, - 48315 - 44032: 0x93CC, - 48316 - 44032: 0xBAAD, - 48317 - 44032: 0xBAAE, - 48318 - 44032: 0x93CD, - 48319 - 44032: 0x93CE, - 48320 - 44032: 0xBAAF, - 48321 - 44032: 0x93CF, - 48322 - 44032: 0x93D0, - 48323 - 44032: 0x93D1, - 48324 - 44032: 0xBAB0, - 48325 - 44032: 0x93D2, - 48326 - 44032: 0x93D3, - 48327 - 44032: 0x93D4, - 48328 - 44032: 0x93D5, - 48329 - 44032: 0x93D6, - 48330 - 44032: 0x93D7, - 48331 - 44032: 0x93D8, - 48332 - 44032: 0x93D9, - 48333 - 44032: 0xBAB1, - 48334 - 44032: 0x93DA, - 48335 - 44032: 0xBAB2, - 48336 - 44032: 0xBAB3, - 48337 - 44032: 0xBAB4, - 48338 - 44032: 0x93DB, - 48339 - 44032: 0x93DC, - 48340 - 44032: 0x93DD, - 48341 - 44032: 0xBAB5, - 48342 - 44032: 0x93DE, - 48343 - 44032: 0x93DF, - 48344 - 44032: 0xBAB6, - 48345 - 44032: 0x93E0, - 48346 - 44032: 0x93E1, - 48347 - 44032: 0x93E2, - 48348 - 44032: 0xBAB7, - 48349 - 44032: 0x93E3, - 48350 - 44032: 0x93E4, - 48351 - 44032: 0x93E5, - 48352 - 44032: 0x93E6, - 48353 - 44032: 0x93E7, - 48354 - 44032: 0x93E8, - 48355 - 44032: 0x93E9, - 48356 - 44032: 0x93EA, - 48357 - 44032: 0x93EB, - 48358 - 44032: 0x93EC, - 48359 - 44032: 0x93ED, - 48360 - 44032: 0x93EE, - 48361 - 44032: 0x93EF, - 48362 - 44032: 0x93F0, - 48363 - 44032: 0x93F1, - 48364 - 44032: 0x93F2, - 48365 - 44032: 0x93F3, - 48366 - 44032: 0x93F4, - 48367 - 44032: 0x93F5, - 48368 - 44032: 0x93F6, - 48369 - 44032: 0x93F7, - 48370 - 44032: 0x93F8, - 48371 - 44032: 0x93F9, - 48372 - 44032: 0xBAB8, - 48373 - 44032: 0xBAB9, - 48374 - 44032: 0xBABA, - 48375 - 44032: 0x93FA, - 48376 - 44032: 0xBABB, - 48377 - 44032: 0x93FB, - 48378 - 44032: 0x93FC, - 48379 - 44032: 0x93FD, - 48380 - 44032: 0xBABC, - 48381 - 44032: 0x93FE, - 48382 - 44032: 0x9441, - 48383 - 44032: 0x9442, - 48384 - 44032: 0x9443, - 48385 - 44032: 0x9444, - 48386 - 44032: 0x9445, - 48387 - 44032: 0x9446, - 48388 - 44032: 0xBABD, - 48389 - 44032: 0xBABE, - 48390 - 44032: 0x9447, - 48391 - 44032: 0xBABF, - 48392 - 44032: 0x9448, - 48393 - 44032: 0xBAC0, - 48394 - 44032: 0x9449, - 48395 - 44032: 0x944A, - 48396 - 44032: 0x944B, - 48397 - 44032: 0x944C, - 48398 - 44032: 0x944D, - 48399 - 44032: 0x944E, - 48400 - 44032: 0xBAC1, - 48401 - 44032: 0x944F, - 48402 - 44032: 0x9450, - 48403 - 44032: 0x9451, - 48404 - 44032: 0xBAC2, - 48405 - 44032: 0x9452, - 48406 - 44032: 0x9453, - 48407 - 44032: 0x9454, - 48408 - 44032: 0x9455, - 48409 - 44032: 0x9456, - 48410 - 44032: 0x9457, - 48411 - 44032: 0x9458, - 48412 - 44032: 0x9459, - 48413 - 44032: 0x945A, - 48414 - 44032: 0x9461, - 48415 - 44032: 0x9462, - 48416 - 44032: 0x9463, - 48417 - 44032: 0x9464, - 48418 - 44032: 0x9465, - 48419 - 44032: 0x9466, - 48420 - 44032: 0xBAC3, - 48421 - 44032: 0x9467, - 48422 - 44032: 0x9468, - 48423 - 44032: 0x9469, - 48424 - 44032: 0x946A, - 48425 - 44032: 0x946B, - 48426 - 44032: 0x946C, - 48427 - 44032: 0x946D, - 48428 - 44032: 0xBAC4, - 48429 - 44032: 0x946E, - 48430 - 44032: 0x946F, - 48431 - 44032: 0x9470, - 48432 - 44032: 0x9471, - 48433 - 44032: 0x9472, - 48434 - 44032: 0x9473, - 48435 - 44032: 0x9474, - 48436 - 44032: 0x9475, - 48437 - 44032: 0x9476, - 48438 - 44032: 0x9477, - 48439 - 44032: 0x9478, - 48440 - 44032: 0x9479, - 48441 - 44032: 0x947A, - 48442 - 44032: 0x9481, - 48443 - 44032: 0x9482, - 48444 - 44032: 0x9483, - 48445 - 44032: 0x9484, - 48446 - 44032: 0x9485, - 48447 - 44032: 0x9486, - 48448 - 44032: 0xBAC5, - 48449 - 44032: 0x9487, - 48450 - 44032: 0x9488, - 48451 - 44032: 0x9489, - 48452 - 44032: 0x948A, - 48453 - 44032: 0x948B, - 48454 - 44032: 0x948C, - 48455 - 44032: 0x948D, - 48456 - 44032: 0xBAC6, - 48457 - 44032: 0xBAC7, - 48458 - 44032: 0x948E, - 48459 - 44032: 0x948F, - 48460 - 44032: 0xBAC8, - 48461 - 44032: 0x9490, - 48462 - 44032: 0x9491, - 48463 - 44032: 0x9492, - 48464 - 44032: 0xBAC9, - 48465 - 44032: 0x9493, - 48466 - 44032: 0x9494, - 48467 - 44032: 0x9495, - 48468 - 44032: 0x9496, - 48469 - 44032: 0x9497, - 48470 - 44032: 0x9498, - 48471 - 44032: 0x9499, - 48472 - 44032: 0xBACA, - 48473 - 44032: 0xBACB, - 48474 - 44032: 0x949A, - 48475 - 44032: 0x949B, - 48476 - 44032: 0x949C, - 48477 - 44032: 0x949D, - 48478 - 44032: 0x949E, - 48479 - 44032: 0x949F, - 48480 - 44032: 0x94A0, - 48481 - 44032: 0x94A1, - 48482 - 44032: 0x94A2, - 48483 - 44032: 0x94A3, - 48484 - 44032: 0xBACC, - 48485 - 44032: 0x94A4, - 48486 - 44032: 0x94A5, - 48487 - 44032: 0x94A6, - 48488 - 44032: 0xBACD, - 48489 - 44032: 0x94A7, - 48490 - 44032: 0x94A8, - 48491 - 44032: 0x94A9, - 48492 - 44032: 0x94AA, - 48493 - 44032: 0x94AB, - 48494 - 44032: 0x94AC, - 48495 - 44032: 0x94AD, - 48496 - 44032: 0x94AE, - 48497 - 44032: 0x94AF, - 48498 - 44032: 0x94B0, - 48499 - 44032: 0x94B1, - 48500 - 44032: 0x94B2, - 48501 - 44032: 0x94B3, - 48502 - 44032: 0x94B4, - 48503 - 44032: 0x94B5, - 48504 - 44032: 0x94B6, - 48505 - 44032: 0x94B7, - 48506 - 44032: 0x94B8, - 48507 - 44032: 0x94B9, - 48508 - 44032: 0x94BA, - 48509 - 44032: 0x94BB, - 48510 - 44032: 0x94BC, - 48511 - 44032: 0x94BD, - 48512 - 44032: 0xBACE, - 48513 - 44032: 0xBACF, - 48514 - 44032: 0x94BE, - 48515 - 44032: 0x94BF, - 48516 - 44032: 0xBAD0, - 48517 - 44032: 0x94C0, - 48518 - 44032: 0x94C1, - 48519 - 44032: 0xBAD1, - 48520 - 44032: 0xBAD2, - 48521 - 44032: 0xBAD3, - 48522 - 44032: 0xBAD4, - 48523 - 44032: 0x94C2, - 48524 - 44032: 0x94C3, - 48525 - 44032: 0x94C4, - 48526 - 44032: 0x94C5, - 48527 - 44032: 0x94C6, - 48528 - 44032: 0xBAD5, - 48529 - 44032: 0xBAD6, - 48530 - 44032: 0x94C7, - 48531 - 44032: 0xBAD7, - 48532 - 44032: 0x94C8, - 48533 - 44032: 0xBAD8, - 48534 - 44032: 0x94C9, - 48535 - 44032: 0x94CA, - 48536 - 44032: 0x94CB, - 48537 - 44032: 0xBAD9, - 48538 - 44032: 0xBADA, - 48539 - 44032: 0x94CC, - 48540 - 44032: 0xBADB, - 48541 - 44032: 0x94CD, - 48542 - 44032: 0x94CE, - 48543 - 44032: 0x94CF, - 48544 - 44032: 0x94D0, - 48545 - 44032: 0x94D1, - 48546 - 44032: 0x94D2, - 48547 - 44032: 0x94D3, - 48548 - 44032: 0xBADC, - 48549 - 44032: 0x94D4, - 48550 - 44032: 0x94D5, - 48551 - 44032: 0x94D6, - 48552 - 44032: 0x94D7, - 48553 - 44032: 0x94D8, - 48554 - 44032: 0x94D9, - 48555 - 44032: 0x94DA, - 48556 - 44032: 0x94DB, - 48557 - 44032: 0x94DC, - 48558 - 44032: 0x94DD, - 48559 - 44032: 0x94DE, - 48560 - 44032: 0xBADD, - 48561 - 44032: 0x94DF, - 48562 - 44032: 0x94E0, - 48563 - 44032: 0x94E1, - 48564 - 44032: 0x94E2, - 48565 - 44032: 0x94E3, - 48566 - 44032: 0x94E4, - 48567 - 44032: 0x94E5, - 48568 - 44032: 0xBADE, - 48569 - 44032: 0x94E6, - 48570 - 44032: 0x94E7, - 48571 - 44032: 0x94E8, - 48572 - 44032: 0x94E9, - 48573 - 44032: 0x94EA, - 48574 - 44032: 0x94EB, - 48575 - 44032: 0x94EC, - 48576 - 44032: 0x94ED, - 48577 - 44032: 0x94EE, - 48578 - 44032: 0x94EF, - 48579 - 44032: 0x94F0, - 48580 - 44032: 0x94F1, - 48581 - 44032: 0x94F2, - 48582 - 44032: 0x94F3, - 48583 - 44032: 0x94F4, - 48584 - 44032: 0x94F5, - 48585 - 44032: 0x94F6, - 48586 - 44032: 0x94F7, - 48587 - 44032: 0x94F8, - 48588 - 44032: 0x94F9, - 48589 - 44032: 0x94FA, - 48590 - 44032: 0x94FB, - 48591 - 44032: 0x94FC, - 48592 - 44032: 0x94FD, - 48593 - 44032: 0x94FE, - 48594 - 44032: 0x9541, - 48595 - 44032: 0x9542, - 48596 - 44032: 0xBADF, - 48597 - 44032: 0xBAE0, - 48598 - 44032: 0x9543, - 48599 - 44032: 0x9544, - 48600 - 44032: 0xBAE1, - 48601 - 44032: 0x9545, - 48602 - 44032: 0x9546, - 48603 - 44032: 0x9547, - 48604 - 44032: 0xBAE2, - 48605 - 44032: 0x9548, - 48606 - 44032: 0x9549, - 48607 - 44032: 0x954A, - 48608 - 44032: 0x954B, - 48609 - 44032: 0x954C, - 48610 - 44032: 0x954D, - 48611 - 44032: 0x954E, - 48612 - 44032: 0x954F, - 48613 - 44032: 0x9550, - 48614 - 44032: 0x9551, - 48615 - 44032: 0x9552, - 48616 - 44032: 0x9553, - 48617 - 44032: 0xBAE3, - 48618 - 44032: 0x9554, - 48619 - 44032: 0x9555, - 48620 - 44032: 0x9556, - 48621 - 44032: 0x9557, - 48622 - 44032: 0x9558, - 48623 - 44032: 0x9559, - 48624 - 44032: 0xBAE4, - 48625 - 44032: 0x955A, - 48626 - 44032: 0x9561, - 48627 - 44032: 0x9562, - 48628 - 44032: 0xBAE5, - 48629 - 44032: 0x9563, - 48630 - 44032: 0x9564, - 48631 - 44032: 0x9565, - 48632 - 44032: 0xBAE6, - 48633 - 44032: 0x9566, - 48634 - 44032: 0x9567, - 48635 - 44032: 0x9568, - 48636 - 44032: 0x9569, - 48637 - 44032: 0x956A, - 48638 - 44032: 0x956B, - 48639 - 44032: 0x956C, - 48640 - 44032: 0xBAE7, - 48641 - 44032: 0x956D, - 48642 - 44032: 0x956E, - 48643 - 44032: 0xBAE8, - 48644 - 44032: 0x956F, - 48645 - 44032: 0xBAE9, - 48646 - 44032: 0x9570, - 48647 - 44032: 0x9571, - 48648 - 44032: 0x9572, - 48649 - 44032: 0x9573, - 48650 - 44032: 0x9574, - 48651 - 44032: 0x9575, - 48652 - 44032: 0xBAEA, - 48653 - 44032: 0xBAEB, - 48654 - 44032: 0x9576, - 48655 - 44032: 0x9577, - 48656 - 44032: 0xBAEC, - 48657 - 44032: 0x9578, - 48658 - 44032: 0x9579, - 48659 - 44032: 0x957A, - 48660 - 44032: 0xBAED, - 48661 - 44032: 0x9581, - 48662 - 44032: 0x9582, - 48663 - 44032: 0x9583, - 48664 - 44032: 0x9584, - 48665 - 44032: 0x9585, - 48666 - 44032: 0x9586, - 48667 - 44032: 0x9587, - 48668 - 44032: 0xBAEE, - 48669 - 44032: 0xBAEF, - 48670 - 44032: 0x9588, - 48671 - 44032: 0xBAF0, - 48672 - 44032: 0x9589, - 48673 - 44032: 0x958A, - 48674 - 44032: 0x958B, - 48675 - 44032: 0x958C, - 48676 - 44032: 0x958D, - 48677 - 44032: 0x958E, - 48678 - 44032: 0x958F, - 48679 - 44032: 0x9590, - 48680 - 44032: 0x9591, - 48681 - 44032: 0x9592, - 48682 - 44032: 0x9593, - 48683 - 44032: 0x9594, - 48684 - 44032: 0x9595, - 48685 - 44032: 0x9596, - 48686 - 44032: 0x9597, - 48687 - 44032: 0x9598, - 48688 - 44032: 0x9599, - 48689 - 44032: 0x959A, - 48690 - 44032: 0x959B, - 48691 - 44032: 0x959C, - 48692 - 44032: 0x959D, - 48693 - 44032: 0x959E, - 48694 - 44032: 0x959F, - 48695 - 44032: 0x95A0, - 48696 - 44032: 0x95A1, - 48697 - 44032: 0x95A2, - 48698 - 44032: 0x95A3, - 48699 - 44032: 0x95A4, - 48700 - 44032: 0x95A5, - 48701 - 44032: 0x95A6, - 48702 - 44032: 0x95A7, - 48703 - 44032: 0x95A8, - 48704 - 44032: 0x95A9, - 48705 - 44032: 0x95AA, - 48706 - 44032: 0x95AB, - 48707 - 44032: 0x95AC, - 48708 - 44032: 0xBAF1, - 48709 - 44032: 0xBAF2, - 48710 - 44032: 0x95AD, - 48711 - 44032: 0x95AE, - 48712 - 44032: 0xBAF3, - 48713 - 44032: 0x95AF, - 48714 - 44032: 0x95B0, - 48715 - 44032: 0x95B1, - 48716 - 44032: 0xBAF4, - 48717 - 44032: 0x95B2, - 48718 - 44032: 0xBAF5, - 48719 - 44032: 0x95B3, - 48720 - 44032: 0x95B4, - 48721 - 44032: 0x95B5, - 48722 - 44032: 0x95B6, - 48723 - 44032: 0x95B7, - 48724 - 44032: 0xBAF6, - 48725 - 44032: 0xBAF7, - 48726 - 44032: 0x95B8, - 48727 - 44032: 0xBAF8, - 48728 - 44032: 0x95B9, - 48729 - 44032: 0xBAF9, - 48730 - 44032: 0xBAFA, - 48731 - 44032: 0xBAFB, - 48732 - 44032: 0x95BA, - 48733 - 44032: 0x95BB, - 48734 - 44032: 0x95BC, - 48735 - 44032: 0x95BD, - 48736 - 44032: 0xBAFC, - 48737 - 44032: 0xBAFD, - 48738 - 44032: 0x95BE, - 48739 - 44032: 0x95BF, - 48740 - 44032: 0xBAFE, - 48741 - 44032: 0x95C0, - 48742 - 44032: 0x95C1, - 48743 - 44032: 0x95C2, - 48744 - 44032: 0xBBA1, - 48745 - 44032: 0x95C3, - 48746 - 44032: 0xBBA2, - 48747 - 44032: 0x95C4, - 48748 - 44032: 0x95C5, - 48749 - 44032: 0x95C6, - 48750 - 44032: 0x95C7, - 48751 - 44032: 0x95C8, - 48752 - 44032: 0xBBA3, - 48753 - 44032: 0xBBA4, - 48754 - 44032: 0x95C9, - 48755 - 44032: 0xBBA5, - 48756 - 44032: 0xBBA6, - 48757 - 44032: 0xBBA7, - 48758 - 44032: 0x95CA, - 48759 - 44032: 0x95CB, - 48760 - 44032: 0x95CC, - 48761 - 44032: 0x95CD, - 48762 - 44032: 0x95CE, - 48763 - 44032: 0xBBA8, - 48764 - 44032: 0xBBA9, - 48765 - 44032: 0xBBAA, - 48766 - 44032: 0x95CF, - 48767 - 44032: 0x95D0, - 48768 - 44032: 0xBBAB, - 48769 - 44032: 0x95D1, - 48770 - 44032: 0x95D2, - 48771 - 44032: 0x95D3, - 48772 - 44032: 0xBBAC, - 48773 - 44032: 0x95D4, - 48774 - 44032: 0x95D5, - 48775 - 44032: 0x95D6, - 48776 - 44032: 0x95D7, - 48777 - 44032: 0x95D8, - 48778 - 44032: 0x95D9, - 48779 - 44032: 0x95DA, - 48780 - 44032: 0xBBAD, - 48781 - 44032: 0xBBAE, - 48782 - 44032: 0x95DB, - 48783 - 44032: 0xBBAF, - 48784 - 44032: 0xBBB0, - 48785 - 44032: 0xBBB1, - 48786 - 44032: 0x95DC, - 48787 - 44032: 0x95DD, - 48788 - 44032: 0x95DE, - 48789 - 44032: 0x95DF, - 48790 - 44032: 0x95E0, - 48791 - 44032: 0x95E1, - 48792 - 44032: 0xBBB2, - 48793 - 44032: 0xBBB3, - 48794 - 44032: 0x95E2, - 48795 - 44032: 0x95E3, - 48796 - 44032: 0x95E4, - 48797 - 44032: 0x95E5, - 48798 - 44032: 0x95E6, - 48799 - 44032: 0x95E7, - 48800 - 44032: 0x95E8, - 48801 - 44032: 0x95E9, - 48802 - 44032: 0x95EA, - 48803 - 44032: 0x95EB, - 48804 - 44032: 0x95EC, - 48805 - 44032: 0x95ED, - 48806 - 44032: 0x95EE, - 48807 - 44032: 0x95EF, - 48808 - 44032: 0xBBB4, - 48809 - 44032: 0x95F0, - 48810 - 44032: 0x95F1, - 48811 - 44032: 0x95F2, - 48812 - 44032: 0x95F3, - 48813 - 44032: 0x95F4, - 48814 - 44032: 0x95F5, - 48815 - 44032: 0x95F6, - 48816 - 44032: 0x95F7, - 48817 - 44032: 0x95F8, - 48818 - 44032: 0x95F9, - 48819 - 44032: 0x95FA, - 48820 - 44032: 0x95FB, - 48821 - 44032: 0x95FC, - 48822 - 44032: 0x95FD, - 48823 - 44032: 0x95FE, - 48824 - 44032: 0x9641, - 48825 - 44032: 0x9642, - 48826 - 44032: 0x9643, - 48827 - 44032: 0x9644, - 48828 - 44032: 0x9645, - 48829 - 44032: 0x9646, - 48830 - 44032: 0x9647, - 48831 - 44032: 0x9648, - 48832 - 44032: 0x9649, - 48833 - 44032: 0x964A, - 48834 - 44032: 0x964B, - 48835 - 44032: 0x964C, - 48836 - 44032: 0x964D, - 48837 - 44032: 0x964E, - 48838 - 44032: 0x964F, - 48839 - 44032: 0x9650, - 48840 - 44032: 0x9651, - 48841 - 44032: 0x9652, - 48842 - 44032: 0x9653, - 48843 - 44032: 0x9654, - 48844 - 44032: 0x9655, - 48845 - 44032: 0x9656, - 48846 - 44032: 0x9657, - 48847 - 44032: 0x9658, - 48848 - 44032: 0xBBB5, - 48849 - 44032: 0xBBB6, - 48850 - 44032: 0x9659, - 48851 - 44032: 0x965A, - 48852 - 44032: 0xBBB7, - 48853 - 44032: 0x9661, - 48854 - 44032: 0x9662, - 48855 - 44032: 0xBBB8, - 48856 - 44032: 0xBBB9, - 48857 - 44032: 0x9663, - 48858 - 44032: 0x9664, - 48859 - 44032: 0x9665, - 48860 - 44032: 0x9666, - 48861 - 44032: 0x9667, - 48862 - 44032: 0x9668, - 48863 - 44032: 0x9669, - 48864 - 44032: 0xBBBA, - 48865 - 44032: 0x966A, - 48866 - 44032: 0x966B, - 48867 - 44032: 0xBBBB, - 48868 - 44032: 0xBBBC, - 48869 - 44032: 0xBBBD, - 48870 - 44032: 0x966C, - 48871 - 44032: 0x966D, - 48872 - 44032: 0x966E, - 48873 - 44032: 0x966F, - 48874 - 44032: 0x9670, - 48875 - 44032: 0x9671, - 48876 - 44032: 0xBBBE, - 48877 - 44032: 0x9672, - 48878 - 44032: 0x9673, - 48879 - 44032: 0x9674, - 48880 - 44032: 0x9675, - 48881 - 44032: 0x9676, - 48882 - 44032: 0x9677, - 48883 - 44032: 0x9678, - 48884 - 44032: 0x9679, - 48885 - 44032: 0x967A, - 48886 - 44032: 0x9681, - 48887 - 44032: 0x9682, - 48888 - 44032: 0x9683, - 48889 - 44032: 0x9684, - 48890 - 44032: 0x9685, - 48891 - 44032: 0x9686, - 48892 - 44032: 0x9687, - 48893 - 44032: 0x9688, - 48894 - 44032: 0x9689, - 48895 - 44032: 0x968A, - 48896 - 44032: 0x968B, - 48897 - 44032: 0xBBBF, - 48898 - 44032: 0x968C, - 48899 - 44032: 0x968D, - 48900 - 44032: 0x968E, - 48901 - 44032: 0x968F, - 48902 - 44032: 0x9690, - 48903 - 44032: 0x9691, - 48904 - 44032: 0xBBC0, - 48905 - 44032: 0xBBC1, - 48906 - 44032: 0x9692, - 48907 - 44032: 0x9693, - 48908 - 44032: 0x9694, - 48909 - 44032: 0x9695, - 48910 - 44032: 0x9696, - 48911 - 44032: 0x9697, - 48912 - 44032: 0x9698, - 48913 - 44032: 0x9699, - 48914 - 44032: 0x969A, - 48915 - 44032: 0x969B, - 48916 - 44032: 0x969C, - 48917 - 44032: 0x969D, - 48918 - 44032: 0x969E, - 48919 - 44032: 0x969F, - 48920 - 44032: 0xBBC2, - 48921 - 44032: 0xBBC3, - 48922 - 44032: 0x96A0, - 48923 - 44032: 0xBBC4, - 48924 - 44032: 0xBBC5, - 48925 - 44032: 0xBBC6, - 48926 - 44032: 0x96A1, - 48927 - 44032: 0x96A2, - 48928 - 44032: 0x96A3, - 48929 - 44032: 0x96A4, - 48930 - 44032: 0x96A5, - 48931 - 44032: 0x96A6, - 48932 - 44032: 0x96A7, - 48933 - 44032: 0x96A8, - 48934 - 44032: 0x96A9, - 48935 - 44032: 0x96AA, - 48936 - 44032: 0x96AB, - 48937 - 44032: 0x96AC, - 48938 - 44032: 0x96AD, - 48939 - 44032: 0x96AE, - 48940 - 44032: 0x96AF, - 48941 - 44032: 0x96B0, - 48942 - 44032: 0x96B1, - 48943 - 44032: 0x96B2, - 48944 - 44032: 0x96B3, - 48945 - 44032: 0x96B4, - 48946 - 44032: 0x96B5, - 48947 - 44032: 0x96B6, - 48948 - 44032: 0x96B7, - 48949 - 44032: 0x96B8, - 48950 - 44032: 0x96B9, - 48951 - 44032: 0x96BA, - 48952 - 44032: 0x96BB, - 48953 - 44032: 0x96BC, - 48954 - 44032: 0x96BD, - 48955 - 44032: 0x96BE, - 48956 - 44032: 0x96BF, - 48957 - 44032: 0x96C0, - 48958 - 44032: 0x96C1, - 48959 - 44032: 0x96C2, - 48960 - 44032: 0xBBC7, - 48961 - 44032: 0xBBC8, - 48962 - 44032: 0x96C3, - 48963 - 44032: 0x96C4, - 48964 - 44032: 0xBBC9, - 48965 - 44032: 0x96C5, - 48966 - 44032: 0x96C6, - 48967 - 44032: 0x96C7, - 48968 - 44032: 0xBBCA, - 48969 - 44032: 0x96C8, - 48970 - 44032: 0x96C9, - 48971 - 44032: 0x96CA, - 48972 - 44032: 0x96CB, - 48973 - 44032: 0x96CC, - 48974 - 44032: 0x96CD, - 48975 - 44032: 0x96CE, - 48976 - 44032: 0xBBCB, - 48977 - 44032: 0xBBCC, - 48978 - 44032: 0x96CF, - 48979 - 44032: 0x96D0, - 48980 - 44032: 0x96D1, - 48981 - 44032: 0xBBCD, - 48982 - 44032: 0x96D2, - 48983 - 44032: 0x96D3, - 48984 - 44032: 0x96D4, - 48985 - 44032: 0x96D5, - 48986 - 44032: 0x96D6, - 48987 - 44032: 0x96D7, - 48988 - 44032: 0x96D8, - 48989 - 44032: 0x96D9, - 48990 - 44032: 0x96DA, - 48991 - 44032: 0x96DB, - 48992 - 44032: 0x96DC, - 48993 - 44032: 0x96DD, - 48994 - 44032: 0x96DE, - 48995 - 44032: 0x96DF, - 48996 - 44032: 0x96E0, - 48997 - 44032: 0x96E1, - 48998 - 44032: 0x96E2, - 48999 - 44032: 0x96E3, - 49000 - 44032: 0x96E4, - 49001 - 44032: 0x96E5, - 49002 - 44032: 0x96E6, - 49003 - 44032: 0x96E7, - 49004 - 44032: 0x96E8, - 49005 - 44032: 0x96E9, - 49006 - 44032: 0x96EA, - 49007 - 44032: 0x96EB, - 49008 - 44032: 0x96EC, - 49009 - 44032: 0x96ED, - 49010 - 44032: 0x96EE, - 49011 - 44032: 0x96EF, - 49012 - 44032: 0x96F0, - 49013 - 44032: 0x96F1, - 49014 - 44032: 0x96F2, - 49015 - 44032: 0x96F3, - 49016 - 44032: 0x96F4, - 49017 - 44032: 0x96F5, - 49018 - 44032: 0x96F6, - 49019 - 44032: 0x96F7, - 49020 - 44032: 0x96F8, - 49021 - 44032: 0x96F9, - 49022 - 44032: 0x96FA, - 49023 - 44032: 0x96FB, - 49024 - 44032: 0x96FC, - 49025 - 44032: 0x96FD, - 49026 - 44032: 0x96FE, - 49027 - 44032: 0x9741, - 49028 - 44032: 0x9742, - 49029 - 44032: 0x9743, - 49030 - 44032: 0x9744, - 49031 - 44032: 0x9745, - 49032 - 44032: 0x9746, - 49033 - 44032: 0x9747, - 49034 - 44032: 0x9748, - 49035 - 44032: 0x9749, - 49036 - 44032: 0x974A, - 49037 - 44032: 0x974B, - 49038 - 44032: 0x974C, - 49039 - 44032: 0x974D, - 49040 - 44032: 0x974E, - 49041 - 44032: 0x974F, - 49042 - 44032: 0x9750, - 49043 - 44032: 0x9751, - 49044 - 44032: 0xBBCE, - 49045 - 44032: 0x9752, - 49046 - 44032: 0x9753, - 49047 - 44032: 0x9754, - 49048 - 44032: 0x9755, - 49049 - 44032: 0x9756, - 49050 - 44032: 0x9757, - 49051 - 44032: 0x9758, - 49052 - 44032: 0x9759, - 49053 - 44032: 0x975A, - 49054 - 44032: 0x9761, - 49055 - 44032: 0x9762, - 49056 - 44032: 0x9763, - 49057 - 44032: 0x9764, - 49058 - 44032: 0x9765, - 49059 - 44032: 0x9766, - 49060 - 44032: 0x9767, - 49061 - 44032: 0x9768, - 49062 - 44032: 0x9769, - 49063 - 44032: 0x976A, - 49064 - 44032: 0x976B, - 49065 - 44032: 0x976C, - 49066 - 44032: 0x976D, - 49067 - 44032: 0x976E, - 49068 - 44032: 0x976F, - 49069 - 44032: 0x9770, - 49070 - 44032: 0x9771, - 49071 - 44032: 0x9772, - 49072 - 44032: 0xBBCF, - 49073 - 44032: 0x9773, - 49074 - 44032: 0x9774, - 49075 - 44032: 0x9775, - 49076 - 44032: 0x9776, - 49077 - 44032: 0x9777, - 49078 - 44032: 0x9778, - 49079 - 44032: 0x9779, - 49080 - 44032: 0x977A, - 49081 - 44032: 0x9781, - 49082 - 44032: 0x9782, - 49083 - 44032: 0x9783, - 49084 - 44032: 0x9784, - 49085 - 44032: 0x9785, - 49086 - 44032: 0x9786, - 49087 - 44032: 0x9787, - 49088 - 44032: 0x9788, - 49089 - 44032: 0x9789, - 49090 - 44032: 0x978A, - 49091 - 44032: 0x978B, - 49092 - 44032: 0x978C, - 49093 - 44032: 0xBBD0, - 49094 - 44032: 0x978D, - 49095 - 44032: 0x978E, - 49096 - 44032: 0x978F, - 49097 - 44032: 0x9790, - 49098 - 44032: 0x9791, - 49099 - 44032: 0x9792, - 49100 - 44032: 0xBBD1, - 49101 - 44032: 0xBBD2, - 49102 - 44032: 0x9793, - 49103 - 44032: 0x9794, - 49104 - 44032: 0xBBD3, - 49105 - 44032: 0x9795, - 49106 - 44032: 0x9796, - 49107 - 44032: 0x9797, - 49108 - 44032: 0xBBD4, - 49109 - 44032: 0x9798, - 49110 - 44032: 0x9799, - 49111 - 44032: 0x979A, - 49112 - 44032: 0x979B, - 49113 - 44032: 0x979C, - 49114 - 44032: 0x979D, - 49115 - 44032: 0x979E, - 49116 - 44032: 0xBBD5, - 49117 - 44032: 0x979F, - 49118 - 44032: 0x97A0, - 49119 - 44032: 0xBBD6, - 49120 - 44032: 0x97A1, - 49121 - 44032: 0xBBD7, - 49122 - 44032: 0x97A2, - 49123 - 44032: 0x97A3, - 49124 - 44032: 0x97A4, - 49125 - 44032: 0x97A5, - 49126 - 44032: 0x97A6, - 49127 - 44032: 0x97A7, - 49128 - 44032: 0x97A8, - 49129 - 44032: 0x97A9, - 49130 - 44032: 0x97AA, - 49131 - 44032: 0x97AB, - 49132 - 44032: 0x97AC, - 49133 - 44032: 0x97AD, - 49134 - 44032: 0x97AE, - 49135 - 44032: 0x97AF, - 49136 - 44032: 0x97B0, - 49137 - 44032: 0x97B1, - 49138 - 44032: 0x97B2, - 49139 - 44032: 0x97B3, - 49140 - 44032: 0x97B4, - 49141 - 44032: 0x97B5, - 49142 - 44032: 0x97B6, - 49143 - 44032: 0x97B7, - 49144 - 44032: 0x97B8, - 49145 - 44032: 0x97B9, - 49146 - 44032: 0x97BA, - 49147 - 44032: 0x97BB, - 49148 - 44032: 0x97BC, - 49149 - 44032: 0x97BD, - 49150 - 44032: 0x97BE, - 49151 - 44032: 0x97BF, - 49152 - 44032: 0x97C0, - 49153 - 44032: 0x97C1, - 49154 - 44032: 0x97C2, - 49155 - 44032: 0x97C3, - 49156 - 44032: 0x97C4, - 49157 - 44032: 0x97C5, - 49158 - 44032: 0x97C6, - 49159 - 44032: 0x97C7, - 49160 - 44032: 0x97C8, - 49161 - 44032: 0x97C9, - 49162 - 44032: 0x97CA, - 49163 - 44032: 0x97CB, - 49164 - 44032: 0x97CC, - 49165 - 44032: 0x97CD, - 49166 - 44032: 0x97CE, - 49167 - 44032: 0x97CF, - 49168 - 44032: 0x97D0, - 49169 - 44032: 0x97D1, - 49170 - 44032: 0x97D2, - 49171 - 44032: 0x97D3, - 49172 - 44032: 0x97D4, - 49173 - 44032: 0x97D5, - 49174 - 44032: 0x97D6, - 49175 - 44032: 0x97D7, - 49176 - 44032: 0x97D8, - 49177 - 44032: 0x97D9, - 49178 - 44032: 0x97DA, - 49179 - 44032: 0x97DB, - 49180 - 44032: 0x97DC, - 49181 - 44032: 0x97DD, - 49182 - 44032: 0x97DE, - 49183 - 44032: 0x97DF, - 49184 - 44032: 0x97E0, - 49185 - 44032: 0x97E1, - 49186 - 44032: 0x97E2, - 49187 - 44032: 0x97E3, - 49188 - 44032: 0x97E4, - 49189 - 44032: 0x97E5, - 49190 - 44032: 0x97E6, - 49191 - 44032: 0x97E7, - 49192 - 44032: 0x97E8, - 49193 - 44032: 0x97E9, - 49194 - 44032: 0x97EA, - 49195 - 44032: 0x97EB, - 49196 - 44032: 0x97EC, - 49197 - 44032: 0x97ED, - 49198 - 44032: 0x97EE, - 49199 - 44032: 0x97EF, - 49200 - 44032: 0x97F0, - 49201 - 44032: 0x97F1, - 49202 - 44032: 0x97F2, - 49203 - 44032: 0x97F3, - 49204 - 44032: 0x97F4, - 49205 - 44032: 0x97F5, - 49206 - 44032: 0x97F6, - 49207 - 44032: 0x97F7, - 49208 - 44032: 0x97F8, - 49209 - 44032: 0x97F9, - 49210 - 44032: 0x97FA, - 49211 - 44032: 0x97FB, - 49212 - 44032: 0xBBD8, - 49213 - 44032: 0x97FC, - 49214 - 44032: 0x97FD, - 49215 - 44032: 0x97FE, - 49216 - 44032: 0x9841, - 49217 - 44032: 0x9842, - 49218 - 44032: 0x9843, - 49219 - 44032: 0x9844, - 49220 - 44032: 0x9845, - 49221 - 44032: 0x9846, - 49222 - 44032: 0x9847, - 49223 - 44032: 0x9848, - 49224 - 44032: 0x9849, - 49225 - 44032: 0x984A, - 49226 - 44032: 0x984B, - 49227 - 44032: 0x984C, - 49228 - 44032: 0x984D, - 49229 - 44032: 0x984E, - 49230 - 44032: 0x984F, - 49231 - 44032: 0x9850, - 49232 - 44032: 0x9851, - 49233 - 44032: 0xBBD9, - 49234 - 44032: 0x9852, - 49235 - 44032: 0x9853, - 49236 - 44032: 0x9854, - 49237 - 44032: 0x9855, - 49238 - 44032: 0x9856, - 49239 - 44032: 0x9857, - 49240 - 44032: 0xBBDA, - 49241 - 44032: 0x9858, - 49242 - 44032: 0x9859, - 49243 - 44032: 0x985A, - 49244 - 44032: 0xBBDB, - 49245 - 44032: 0x9861, - 49246 - 44032: 0x9862, - 49247 - 44032: 0x9863, - 49248 - 44032: 0xBBDC, - 49249 - 44032: 0x9864, - 49250 - 44032: 0x9865, - 49251 - 44032: 0x9866, - 49252 - 44032: 0x9867, - 49253 - 44032: 0x9868, - 49254 - 44032: 0x9869, - 49255 - 44032: 0x986A, - 49256 - 44032: 0xBBDD, - 49257 - 44032: 0xBBDE, - 49258 - 44032: 0x986B, - 49259 - 44032: 0x986C, - 49260 - 44032: 0x986D, - 49261 - 44032: 0x986E, - 49262 - 44032: 0x986F, - 49263 - 44032: 0x9870, - 49264 - 44032: 0x9871, - 49265 - 44032: 0x9872, - 49266 - 44032: 0x9873, - 49267 - 44032: 0x9874, - 49268 - 44032: 0x9875, - 49269 - 44032: 0x9876, - 49270 - 44032: 0x9877, - 49271 - 44032: 0x9878, - 49272 - 44032: 0x9879, - 49273 - 44032: 0x987A, - 49274 - 44032: 0x9881, - 49275 - 44032: 0x9882, - 49276 - 44032: 0x9883, - 49277 - 44032: 0x9884, - 49278 - 44032: 0x9885, - 49279 - 44032: 0x9886, - 49280 - 44032: 0x9887, - 49281 - 44032: 0x9888, - 49282 - 44032: 0x9889, - 49283 - 44032: 0x988A, - 49284 - 44032: 0x988B, - 49285 - 44032: 0x988C, - 49286 - 44032: 0x988D, - 49287 - 44032: 0x988E, - 49288 - 44032: 0x988F, - 49289 - 44032: 0x9890, - 49290 - 44032: 0x9891, - 49291 - 44032: 0x9892, - 49292 - 44032: 0x9893, - 49293 - 44032: 0x9894, - 49294 - 44032: 0x9895, - 49295 - 44032: 0x9896, - 49296 - 44032: 0xBBDF, - 49297 - 44032: 0xBBE0, - 49298 - 44032: 0x9897, - 49299 - 44032: 0x9898, - 49300 - 44032: 0xBBE1, - 49301 - 44032: 0x9899, - 49302 - 44032: 0x989A, - 49303 - 44032: 0x989B, - 49304 - 44032: 0xBBE2, - 49305 - 44032: 0x989C, - 49306 - 44032: 0x989D, - 49307 - 44032: 0x989E, - 49308 - 44032: 0x989F, - 49309 - 44032: 0x98A0, - 49310 - 44032: 0x98A1, - 49311 - 44032: 0x98A2, - 49312 - 44032: 0xBBE3, - 49313 - 44032: 0xBBE4, - 49314 - 44032: 0x98A3, - 49315 - 44032: 0xBBE5, - 49316 - 44032: 0x98A4, - 49317 - 44032: 0xBBE6, - 49318 - 44032: 0x98A5, - 49319 - 44032: 0x98A6, - 49320 - 44032: 0x98A7, - 49321 - 44032: 0x98A8, - 49322 - 44032: 0x98A9, - 49323 - 44032: 0x98AA, - 49324 - 44032: 0xBBE7, - 49325 - 44032: 0xBBE8, - 49326 - 44032: 0x98AB, - 49327 - 44032: 0xBBE9, - 49328 - 44032: 0xBBEA, - 49329 - 44032: 0x98AC, - 49330 - 44032: 0x98AD, - 49331 - 44032: 0xBBEB, - 49332 - 44032: 0xBBEC, - 49333 - 44032: 0xBBED, - 49334 - 44032: 0xBBEE, - 49335 - 44032: 0x98AE, - 49336 - 44032: 0x98AF, - 49337 - 44032: 0x98B0, - 49338 - 44032: 0x98B1, - 49339 - 44032: 0x98B2, - 49340 - 44032: 0xBBEF, - 49341 - 44032: 0xBBF0, - 49342 - 44032: 0x98B3, - 49343 - 44032: 0xBBF1, - 49344 - 44032: 0xBBF2, - 49345 - 44032: 0xBBF3, - 49346 - 44032: 0x98B4, - 49347 - 44032: 0x98B5, - 49348 - 44032: 0x98B6, - 49349 - 44032: 0xBBF4, - 49350 - 44032: 0x98B7, - 49351 - 44032: 0x98B8, - 49352 - 44032: 0xBBF5, - 49353 - 44032: 0xBBF6, - 49354 - 44032: 0x98B9, - 49355 - 44032: 0x98BA, - 49356 - 44032: 0xBBF7, - 49357 - 44032: 0x98BB, - 49358 - 44032: 0x98BC, - 49359 - 44032: 0x98BD, - 49360 - 44032: 0xBBF8, - 49361 - 44032: 0x98BE, - 49362 - 44032: 0x98BF, - 49363 - 44032: 0x98C0, - 49364 - 44032: 0x98C1, - 49365 - 44032: 0x98C2, - 49366 - 44032: 0x98C3, - 49367 - 44032: 0x98C4, - 49368 - 44032: 0xBBF9, - 49369 - 44032: 0xBBFA, - 49370 - 44032: 0x98C5, - 49371 - 44032: 0xBBFB, - 49372 - 44032: 0xBBFC, - 49373 - 44032: 0xBBFD, - 49374 - 44032: 0x98C6, - 49375 - 44032: 0x98C7, - 49376 - 44032: 0x98C8, - 49377 - 44032: 0x98C9, - 49378 - 44032: 0x98CA, - 49379 - 44032: 0x98CB, - 49380 - 44032: 0xBBFE, - 49381 - 44032: 0xBCA1, - 49382 - 44032: 0x98CC, - 49383 - 44032: 0x98CD, - 49384 - 44032: 0xBCA2, - 49385 - 44032: 0x98CE, - 49386 - 44032: 0x98CF, - 49387 - 44032: 0x98D0, - 49388 - 44032: 0xBCA3, - 49389 - 44032: 0x98D1, - 49390 - 44032: 0x98D2, - 49391 - 44032: 0x98D3, - 49392 - 44032: 0x98D4, - 49393 - 44032: 0x98D5, - 49394 - 44032: 0x98D6, - 49395 - 44032: 0x98D7, - 49396 - 44032: 0xBCA4, - 49397 - 44032: 0xBCA5, - 49398 - 44032: 0x98D8, - 49399 - 44032: 0xBCA6, - 49400 - 44032: 0x98D9, - 49401 - 44032: 0xBCA7, - 49402 - 44032: 0x98DA, - 49403 - 44032: 0x98DB, - 49404 - 44032: 0x98DC, - 49405 - 44032: 0x98DD, - 49406 - 44032: 0x98DE, - 49407 - 44032: 0x98DF, - 49408 - 44032: 0xBCA8, - 49409 - 44032: 0x98E0, - 49410 - 44032: 0x98E1, - 49411 - 44032: 0x98E2, - 49412 - 44032: 0xBCA9, - 49413 - 44032: 0x98E3, - 49414 - 44032: 0x98E4, - 49415 - 44032: 0x98E5, - 49416 - 44032: 0xBCAA, - 49417 - 44032: 0x98E6, - 49418 - 44032: 0x98E7, - 49419 - 44032: 0x98E8, - 49420 - 44032: 0x98E9, - 49421 - 44032: 0x98EA, - 49422 - 44032: 0x98EB, - 49423 - 44032: 0x98EC, - 49424 - 44032: 0xBCAB, - 49425 - 44032: 0x98ED, - 49426 - 44032: 0x98EE, - 49427 - 44032: 0x98EF, - 49428 - 44032: 0x98F0, - 49429 - 44032: 0xBCAC, - 49430 - 44032: 0x98F1, - 49431 - 44032: 0x98F2, - 49432 - 44032: 0x98F3, - 49433 - 44032: 0x98F4, - 49434 - 44032: 0x98F5, - 49435 - 44032: 0x98F6, - 49436 - 44032: 0xBCAD, - 49437 - 44032: 0xBCAE, - 49438 - 44032: 0xBCAF, - 49439 - 44032: 0xBCB0, - 49440 - 44032: 0xBCB1, - 49441 - 44032: 0x98F7, - 49442 - 44032: 0x98F8, - 49443 - 44032: 0xBCB2, - 49444 - 44032: 0xBCB3, - 49445 - 44032: 0x98F9, - 49446 - 44032: 0xBCB4, - 49447 - 44032: 0xBCB5, - 49448 - 44032: 0x98FA, - 49449 - 44032: 0x98FB, - 49450 - 44032: 0x98FC, - 49451 - 44032: 0x98FD, - 49452 - 44032: 0xBCB6, - 49453 - 44032: 0xBCB7, - 49454 - 44032: 0x98FE, - 49455 - 44032: 0xBCB8, - 49456 - 44032: 0xBCB9, - 49457 - 44032: 0xBCBA, - 49458 - 44032: 0x9941, - 49459 - 44032: 0x9942, - 49460 - 44032: 0x9943, - 49461 - 44032: 0x9944, - 49462 - 44032: 0xBCBB, - 49463 - 44032: 0x9945, - 49464 - 44032: 0xBCBC, - 49465 - 44032: 0xBCBD, - 49466 - 44032: 0x9946, - 49467 - 44032: 0x9947, - 49468 - 44032: 0xBCBE, - 49469 - 44032: 0x9948, - 49470 - 44032: 0x9949, - 49471 - 44032: 0x994A, - 49472 - 44032: 0xBCBF, - 49473 - 44032: 0x994B, - 49474 - 44032: 0x994C, - 49475 - 44032: 0x994D, - 49476 - 44032: 0x994E, - 49477 - 44032: 0x994F, - 49478 - 44032: 0x9950, - 49479 - 44032: 0x9951, - 49480 - 44032: 0xBCC0, - 49481 - 44032: 0xBCC1, - 49482 - 44032: 0x9952, - 49483 - 44032: 0xBCC2, - 49484 - 44032: 0xBCC3, - 49485 - 44032: 0xBCC4, - 49486 - 44032: 0x9953, - 49487 - 44032: 0x9954, - 49488 - 44032: 0x9955, - 49489 - 44032: 0x9956, - 49490 - 44032: 0x9957, - 49491 - 44032: 0x9958, - 49492 - 44032: 0xBCC5, - 49493 - 44032: 0xBCC6, - 49494 - 44032: 0x9959, - 49495 - 44032: 0x995A, - 49496 - 44032: 0xBCC7, - 49497 - 44032: 0x9961, - 49498 - 44032: 0x9962, - 49499 - 44032: 0x9963, - 49500 - 44032: 0xBCC8, - 49501 - 44032: 0x9964, - 49502 - 44032: 0x9965, - 49503 - 44032: 0x9966, - 49504 - 44032: 0x9967, - 49505 - 44032: 0x9968, - 49506 - 44032: 0x9969, - 49507 - 44032: 0x996A, - 49508 - 44032: 0xBCC9, - 49509 - 44032: 0xBCCA, - 49510 - 44032: 0x996B, - 49511 - 44032: 0xBCCB, - 49512 - 44032: 0xBCCC, - 49513 - 44032: 0xBCCD, - 49514 - 44032: 0x996C, - 49515 - 44032: 0x996D, - 49516 - 44032: 0x996E, - 49517 - 44032: 0x996F, - 49518 - 44032: 0x9970, - 49519 - 44032: 0x9971, - 49520 - 44032: 0xBCCE, - 49521 - 44032: 0x9972, - 49522 - 44032: 0x9973, - 49523 - 44032: 0x9974, - 49524 - 44032: 0xBCCF, - 49525 - 44032: 0x9975, - 49526 - 44032: 0x9976, - 49527 - 44032: 0x9977, - 49528 - 44032: 0xBCD0, - 49529 - 44032: 0x9978, - 49530 - 44032: 0x9979, - 49531 - 44032: 0x997A, - 49532 - 44032: 0x9981, - 49533 - 44032: 0x9982, - 49534 - 44032: 0x9983, - 49535 - 44032: 0x9984, - 49536 - 44032: 0x9985, - 49537 - 44032: 0x9986, - 49538 - 44032: 0x9987, - 49539 - 44032: 0x9988, - 49540 - 44032: 0x9989, - 49541 - 44032: 0xBCD1, - 49542 - 44032: 0x998A, - 49543 - 44032: 0x998B, - 49544 - 44032: 0x998C, - 49545 - 44032: 0x998D, - 49546 - 44032: 0x998E, - 49547 - 44032: 0x998F, - 49548 - 44032: 0xBCD2, - 49549 - 44032: 0xBCD3, - 49550 - 44032: 0xBCD4, - 49551 - 44032: 0x9990, - 49552 - 44032: 0xBCD5, - 49553 - 44032: 0x9991, - 49554 - 44032: 0x9992, - 49555 - 44032: 0x9993, - 49556 - 44032: 0xBCD6, - 49557 - 44032: 0x9994, - 49558 - 44032: 0xBCD7, - 49559 - 44032: 0x9995, - 49560 - 44032: 0x9996, - 49561 - 44032: 0x9997, - 49562 - 44032: 0x9998, - 49563 - 44032: 0x9999, - 49564 - 44032: 0xBCD8, - 49565 - 44032: 0xBCD9, - 49566 - 44032: 0x999A, - 49567 - 44032: 0xBCDA, - 49568 - 44032: 0x999B, - 49569 - 44032: 0xBCDB, - 49570 - 44032: 0x999C, - 49571 - 44032: 0x999D, - 49572 - 44032: 0x999E, - 49573 - 44032: 0xBCDC, - 49574 - 44032: 0x999F, - 49575 - 44032: 0x99A0, - 49576 - 44032: 0xBCDD, - 49577 - 44032: 0xBCDE, - 49578 - 44032: 0x99A1, - 49579 - 44032: 0x99A2, - 49580 - 44032: 0xBCDF, - 49581 - 44032: 0x99A3, - 49582 - 44032: 0x99A4, - 49583 - 44032: 0x99A5, - 49584 - 44032: 0xBCE0, - 49585 - 44032: 0x99A6, - 49586 - 44032: 0x99A7, - 49587 - 44032: 0x99A8, - 49588 - 44032: 0x99A9, - 49589 - 44032: 0x99AA, - 49590 - 44032: 0x99AB, - 49591 - 44032: 0x99AC, - 49592 - 44032: 0x99AD, - 49593 - 44032: 0x99AE, - 49594 - 44032: 0x99AF, - 49595 - 44032: 0x99B0, - 49596 - 44032: 0x99B1, - 49597 - 44032: 0xBCE1, - 49598 - 44032: 0x99B2, - 49599 - 44032: 0x99B3, - 49600 - 44032: 0x99B4, - 49601 - 44032: 0x99B5, - 49602 - 44032: 0x99B6, - 49603 - 44032: 0x99B7, - 49604 - 44032: 0xBCE2, - 49605 - 44032: 0x99B8, - 49606 - 44032: 0x99B9, - 49607 - 44032: 0x99BA, - 49608 - 44032: 0xBCE3, - 49609 - 44032: 0x99BB, - 49610 - 44032: 0x99BC, - 49611 - 44032: 0x99BD, - 49612 - 44032: 0xBCE4, - 49613 - 44032: 0x99BE, - 49614 - 44032: 0x99BF, - 49615 - 44032: 0x99C0, - 49616 - 44032: 0x99C1, - 49617 - 44032: 0x99C2, - 49618 - 44032: 0x99C3, - 49619 - 44032: 0x99C4, - 49620 - 44032: 0xBCE5, - 49621 - 44032: 0x99C5, - 49622 - 44032: 0x99C6, - 49623 - 44032: 0xBCE6, - 49624 - 44032: 0xBCE7, - 49625 - 44032: 0x99C7, - 49626 - 44032: 0x99C8, - 49627 - 44032: 0x99C9, - 49628 - 44032: 0x99CA, - 49629 - 44032: 0x99CB, - 49630 - 44032: 0x99CC, - 49631 - 44032: 0x99CD, - 49632 - 44032: 0xBCE8, - 49633 - 44032: 0x99CE, - 49634 - 44032: 0x99CF, - 49635 - 44032: 0x99D0, - 49636 - 44032: 0xBCE9, - 49637 - 44032: 0x99D1, - 49638 - 44032: 0x99D2, - 49639 - 44032: 0x99D3, - 49640 - 44032: 0xBCEA, - 49641 - 44032: 0x99D4, - 49642 - 44032: 0x99D5, - 49643 - 44032: 0x99D6, - 49644 - 44032: 0x99D7, - 49645 - 44032: 0x99D8, - 49646 - 44032: 0x99D9, - 49647 - 44032: 0x99DA, - 49648 - 44032: 0xBCEB, - 49649 - 44032: 0xBCEC, - 49650 - 44032: 0x99DB, - 49651 - 44032: 0xBCED, - 49652 - 44032: 0x99DC, - 49653 - 44032: 0x99DD, - 49654 - 44032: 0x99DE, - 49655 - 44032: 0x99DF, - 49656 - 44032: 0x99E0, - 49657 - 44032: 0x99E1, - 49658 - 44032: 0x99E2, - 49659 - 44032: 0x99E3, - 49660 - 44032: 0xBCEE, - 49661 - 44032: 0xBCEF, - 49662 - 44032: 0x99E4, - 49663 - 44032: 0x99E5, - 49664 - 44032: 0xBCF0, - 49665 - 44032: 0x99E6, - 49666 - 44032: 0x99E7, - 49667 - 44032: 0x99E8, - 49668 - 44032: 0xBCF1, - 49669 - 44032: 0x99E9, - 49670 - 44032: 0x99EA, - 49671 - 44032: 0x99EB, - 49672 - 44032: 0x99EC, - 49673 - 44032: 0x99ED, - 49674 - 44032: 0x99EE, - 49675 - 44032: 0x99EF, - 49676 - 44032: 0xBCF2, - 49677 - 44032: 0xBCF3, - 49678 - 44032: 0x99F0, - 49679 - 44032: 0xBCF4, - 49680 - 44032: 0x99F1, - 49681 - 44032: 0xBCF5, - 49682 - 44032: 0x99F2, - 49683 - 44032: 0x99F3, - 49684 - 44032: 0x99F4, - 49685 - 44032: 0x99F5, - 49686 - 44032: 0x99F6, - 49687 - 44032: 0x99F7, - 49688 - 44032: 0xBCF6, - 49689 - 44032: 0xBCF7, - 49690 - 44032: 0x99F8, - 49691 - 44032: 0x99F9, - 49692 - 44032: 0xBCF8, - 49693 - 44032: 0x99FA, - 49694 - 44032: 0x99FB, - 49695 - 44032: 0xBCF9, - 49696 - 44032: 0xBCFA, - 49697 - 44032: 0x99FC, - 49698 - 44032: 0x99FD, - 49699 - 44032: 0x99FE, - 49700 - 44032: 0x9A41, - 49701 - 44032: 0x9A42, - 49702 - 44032: 0x9A43, - 49703 - 44032: 0x9A44, - 49704 - 44032: 0xBCFB, - 49705 - 44032: 0xBCFC, - 49706 - 44032: 0x9A45, - 49707 - 44032: 0xBCFD, - 49708 - 44032: 0x9A46, - 49709 - 44032: 0xBCFE, - 49710 - 44032: 0x9A47, - 49711 - 44032: 0xBDA1, - 49712 - 44032: 0x9A48, - 49713 - 44032: 0xBDA2, - 49714 - 44032: 0xBDA3, - 49715 - 44032: 0x9A49, - 49716 - 44032: 0xBDA4, - 49717 - 44032: 0x9A4A, - 49718 - 44032: 0x9A4B, - 49719 - 44032: 0x9A4C, - 49720 - 44032: 0x9A4D, - 49721 - 44032: 0x9A4E, - 49722 - 44032: 0x9A4F, - 49723 - 44032: 0x9A50, - 49724 - 44032: 0x9A51, - 49725 - 44032: 0x9A52, - 49726 - 44032: 0x9A53, - 49727 - 44032: 0x9A54, - 49728 - 44032: 0x9A55, - 49729 - 44032: 0x9A56, - 49730 - 44032: 0x9A57, - 49731 - 44032: 0x9A58, - 49732 - 44032: 0x9A59, - 49733 - 44032: 0x9A5A, - 49734 - 44032: 0x9A61, - 49735 - 44032: 0x9A62, - 49736 - 44032: 0xBDA5, - 49737 - 44032: 0x9A63, - 49738 - 44032: 0x9A64, - 49739 - 44032: 0x9A65, - 49740 - 44032: 0x9A66, - 49741 - 44032: 0x9A67, - 49742 - 44032: 0x9A68, - 49743 - 44032: 0x9A69, - 49744 - 44032: 0xBDA6, - 49745 - 44032: 0xBDA7, - 49746 - 44032: 0x9A6A, - 49747 - 44032: 0x9A6B, - 49748 - 44032: 0xBDA8, - 49749 - 44032: 0x9A6C, - 49750 - 44032: 0x9A6D, - 49751 - 44032: 0x9A6E, - 49752 - 44032: 0xBDA9, - 49753 - 44032: 0x9A6F, - 49754 - 44032: 0x9A70, - 49755 - 44032: 0x9A71, - 49756 - 44032: 0x9A72, - 49757 - 44032: 0x9A73, - 49758 - 44032: 0x9A74, - 49759 - 44032: 0x9A75, - 49760 - 44032: 0xBDAA, - 49761 - 44032: 0x9A76, - 49762 - 44032: 0x9A77, - 49763 - 44032: 0x9A78, - 49764 - 44032: 0x9A79, - 49765 - 44032: 0xBDAB, - 49766 - 44032: 0x9A7A, - 49767 - 44032: 0x9A81, - 49768 - 44032: 0x9A82, - 49769 - 44032: 0x9A83, - 49770 - 44032: 0x9A84, - 49771 - 44032: 0x9A85, - 49772 - 44032: 0xBDAC, - 49773 - 44032: 0xBDAD, - 49774 - 44032: 0x9A86, - 49775 - 44032: 0x9A87, - 49776 - 44032: 0xBDAE, - 49777 - 44032: 0x9A88, - 49778 - 44032: 0x9A89, - 49779 - 44032: 0x9A8A, - 49780 - 44032: 0xBDAF, - 49781 - 44032: 0x9A8B, - 49782 - 44032: 0x9A8C, - 49783 - 44032: 0x9A8D, - 49784 - 44032: 0x9A8E, - 49785 - 44032: 0x9A8F, - 49786 - 44032: 0x9A90, - 49787 - 44032: 0x9A91, - 49788 - 44032: 0xBDB0, - 49789 - 44032: 0xBDB1, - 49790 - 44032: 0x9A92, - 49791 - 44032: 0xBDB2, - 49792 - 44032: 0x9A93, - 49793 - 44032: 0xBDB3, - 49794 - 44032: 0x9A94, - 49795 - 44032: 0x9A95, - 49796 - 44032: 0x9A96, - 49797 - 44032: 0x9A97, - 49798 - 44032: 0x9A98, - 49799 - 44032: 0x9A99, - 49800 - 44032: 0xBDB4, - 49801 - 44032: 0xBDB5, - 49802 - 44032: 0x9A9A, - 49803 - 44032: 0x9A9B, - 49804 - 44032: 0x9A9C, - 49805 - 44032: 0x9A9D, - 49806 - 44032: 0x9A9E, - 49807 - 44032: 0x9A9F, - 49808 - 44032: 0xBDB6, - 49809 - 44032: 0x9AA0, - 49810 - 44032: 0x9AA1, - 49811 - 44032: 0x9AA2, - 49812 - 44032: 0x9AA3, - 49813 - 44032: 0x9AA4, - 49814 - 44032: 0x9AA5, - 49815 - 44032: 0x9AA6, - 49816 - 44032: 0xBDB7, - 49817 - 44032: 0x9AA7, - 49818 - 44032: 0x9AA8, - 49819 - 44032: 0xBDB8, - 49820 - 44032: 0x9AA9, - 49821 - 44032: 0xBDB9, - 49822 - 44032: 0x9AAA, - 49823 - 44032: 0x9AAB, - 49824 - 44032: 0x9AAC, - 49825 - 44032: 0x9AAD, - 49826 - 44032: 0x9AAE, - 49827 - 44032: 0x9AAF, - 49828 - 44032: 0xBDBA, - 49829 - 44032: 0xBDBB, - 49830 - 44032: 0x9AB0, - 49831 - 44032: 0x9AB1, - 49832 - 44032: 0xBDBC, - 49833 - 44032: 0x9AB2, - 49834 - 44032: 0x9AB3, - 49835 - 44032: 0x9AB4, - 49836 - 44032: 0xBDBD, - 49837 - 44032: 0xBDBE, - 49838 - 44032: 0x9AB5, - 49839 - 44032: 0x9AB6, - 49840 - 44032: 0x9AB7, - 49841 - 44032: 0x9AB8, - 49842 - 44032: 0x9AB9, - 49843 - 44032: 0x9ABA, - 49844 - 44032: 0xBDBF, - 49845 - 44032: 0xBDC0, - 49846 - 44032: 0x9ABB, - 49847 - 44032: 0xBDC1, - 49848 - 44032: 0x9ABC, - 49849 - 44032: 0xBDC2, - 49850 - 44032: 0x9ABD, - 49851 - 44032: 0x9ABE, - 49852 - 44032: 0x9ABF, - 49853 - 44032: 0x9AC0, - 49854 - 44032: 0x9AC1, - 49855 - 44032: 0x9AC2, - 49856 - 44032: 0x9AC3, - 49857 - 44032: 0x9AC4, - 49858 - 44032: 0x9AC5, - 49859 - 44032: 0x9AC6, - 49860 - 44032: 0x9AC7, - 49861 - 44032: 0x9AC8, - 49862 - 44032: 0x9AC9, - 49863 - 44032: 0x9ACA, - 49864 - 44032: 0x9ACB, - 49865 - 44032: 0x9ACC, - 49866 - 44032: 0x9ACD, - 49867 - 44032: 0x9ACE, - 49868 - 44032: 0x9ACF, - 49869 - 44032: 0x9AD0, - 49870 - 44032: 0x9AD1, - 49871 - 44032: 0x9AD2, - 49872 - 44032: 0x9AD3, - 49873 - 44032: 0x9AD4, - 49874 - 44032: 0x9AD5, - 49875 - 44032: 0x9AD6, - 49876 - 44032: 0x9AD7, - 49877 - 44032: 0x9AD8, - 49878 - 44032: 0x9AD9, - 49879 - 44032: 0x9ADA, - 49880 - 44032: 0x9ADB, - 49881 - 44032: 0x9ADC, - 49882 - 44032: 0x9ADD, - 49883 - 44032: 0x9ADE, - 49884 - 44032: 0xBDC3, - 49885 - 44032: 0xBDC4, - 49886 - 44032: 0x9ADF, - 49887 - 44032: 0x9AE0, - 49888 - 44032: 0xBDC5, - 49889 - 44032: 0x9AE1, - 49890 - 44032: 0x9AE2, - 49891 - 44032: 0xBDC6, - 49892 - 44032: 0xBDC7, - 49893 - 44032: 0x9AE3, - 49894 - 44032: 0x9AE4, - 49895 - 44032: 0x9AE5, - 49896 - 44032: 0x9AE6, - 49897 - 44032: 0x9AE7, - 49898 - 44032: 0x9AE8, - 49899 - 44032: 0xBDC8, - 49900 - 44032: 0xBDC9, - 49901 - 44032: 0xBDCA, - 49902 - 44032: 0x9AE9, - 49903 - 44032: 0xBDCB, - 49904 - 44032: 0x9AEA, - 49905 - 44032: 0xBDCC, - 49906 - 44032: 0x9AEB, - 49907 - 44032: 0x9AEC, - 49908 - 44032: 0x9AED, - 49909 - 44032: 0x9AEE, - 49910 - 44032: 0xBDCD, - 49911 - 44032: 0x9AEF, - 49912 - 44032: 0xBDCE, - 49913 - 44032: 0xBDCF, - 49914 - 44032: 0x9AF0, - 49915 - 44032: 0xBDD0, - 49916 - 44032: 0xBDD1, - 49917 - 44032: 0x9AF1, - 49918 - 44032: 0x9AF2, - 49919 - 44032: 0x9AF3, - 49920 - 44032: 0xBDD2, - 49921 - 44032: 0x9AF4, - 49922 - 44032: 0x9AF5, - 49923 - 44032: 0x9AF6, - 49924 - 44032: 0x9AF7, - 49925 - 44032: 0x9AF8, - 49926 - 44032: 0x9AF9, - 49927 - 44032: 0x9AFA, - 49928 - 44032: 0xBDD3, - 49929 - 44032: 0xBDD4, - 49930 - 44032: 0x9AFB, - 49931 - 44032: 0x9AFC, - 49932 - 44032: 0xBDD5, - 49933 - 44032: 0xBDD6, - 49934 - 44032: 0x9AFD, - 49935 - 44032: 0x9AFE, - 49936 - 44032: 0x9B41, - 49937 - 44032: 0x9B42, - 49938 - 44032: 0x9B43, - 49939 - 44032: 0xBDD7, - 49940 - 44032: 0xBDD8, - 49941 - 44032: 0xBDD9, - 49942 - 44032: 0x9B44, - 49943 - 44032: 0x9B45, - 49944 - 44032: 0xBDDA, - 49945 - 44032: 0x9B46, - 49946 - 44032: 0x9B47, - 49947 - 44032: 0x9B48, - 49948 - 44032: 0xBDDB, - 49949 - 44032: 0x9B49, - 49950 - 44032: 0x9B4A, - 49951 - 44032: 0x9B4B, - 49952 - 44032: 0x9B4C, - 49953 - 44032: 0x9B4D, - 49954 - 44032: 0x9B4E, - 49955 - 44032: 0x9B4F, - 49956 - 44032: 0xBDDC, - 49957 - 44032: 0xBDDD, - 49958 - 44032: 0x9B50, - 49959 - 44032: 0x9B51, - 49960 - 44032: 0xBDDE, - 49961 - 44032: 0xBDDF, - 49962 - 44032: 0x9B52, - 49963 - 44032: 0x9B53, - 49964 - 44032: 0x9B54, - 49965 - 44032: 0x9B55, - 49966 - 44032: 0x9B56, - 49967 - 44032: 0x9B57, - 49968 - 44032: 0x9B58, - 49969 - 44032: 0x9B59, - 49970 - 44032: 0x9B5A, - 49971 - 44032: 0x9B61, - 49972 - 44032: 0x9B62, - 49973 - 44032: 0x9B63, - 49974 - 44032: 0x9B64, - 49975 - 44032: 0x9B65, - 49976 - 44032: 0x9B66, - 49977 - 44032: 0x9B67, - 49978 - 44032: 0x9B68, - 49979 - 44032: 0x9B69, - 49980 - 44032: 0x9B6A, - 49981 - 44032: 0x9B6B, - 49982 - 44032: 0x9B6C, - 49983 - 44032: 0x9B6D, - 49984 - 44032: 0x9B6E, - 49985 - 44032: 0x9B6F, - 49986 - 44032: 0x9B70, - 49987 - 44032: 0x9B71, - 49988 - 44032: 0x9B72, - 49989 - 44032: 0xBDE0, - 49990 - 44032: 0x9B73, - 49991 - 44032: 0x9B74, - 49992 - 44032: 0x9B75, - 49993 - 44032: 0x9B76, - 49994 - 44032: 0x9B77, - 49995 - 44032: 0x9B78, - 49996 - 44032: 0x9B79, - 49997 - 44032: 0x9B7A, - 49998 - 44032: 0x9B81, - 49999 - 44032: 0x9B82, - 50000 - 44032: 0x9B83, - 50001 - 44032: 0x9B84, - 50002 - 44032: 0x9B85, - 50003 - 44032: 0x9B86, - 50004 - 44032: 0x9B87, - 50005 - 44032: 0x9B88, - 50006 - 44032: 0x9B89, - 50007 - 44032: 0x9B8A, - 50008 - 44032: 0x9B8B, - 50009 - 44032: 0x9B8C, - 50010 - 44032: 0x9B8D, - 50011 - 44032: 0x9B8E, - 50012 - 44032: 0x9B8F, - 50013 - 44032: 0x9B90, - 50014 - 44032: 0x9B91, - 50015 - 44032: 0x9B92, - 50016 - 44032: 0x9B93, - 50017 - 44032: 0x9B94, - 50018 - 44032: 0x9B95, - 50019 - 44032: 0x9B96, - 50020 - 44032: 0x9B97, - 50021 - 44032: 0x9B98, - 50022 - 44032: 0x9B99, - 50023 - 44032: 0x9B9A, - 50024 - 44032: 0xBDE1, - 50025 - 44032: 0xBDE2, - 50026 - 44032: 0x9B9B, - 50027 - 44032: 0x9B9C, - 50028 - 44032: 0xBDE3, - 50029 - 44032: 0x9B9D, - 50030 - 44032: 0x9B9E, - 50031 - 44032: 0x9B9F, - 50032 - 44032: 0xBDE4, - 50033 - 44032: 0x9BA0, - 50034 - 44032: 0xBDE5, - 50035 - 44032: 0x9BA1, - 50036 - 44032: 0x9BA2, - 50037 - 44032: 0x9BA3, - 50038 - 44032: 0x9BA4, - 50039 - 44032: 0x9BA5, - 50040 - 44032: 0xBDE6, - 50041 - 44032: 0xBDE7, - 50042 - 44032: 0x9BA6, - 50043 - 44032: 0x9BA7, - 50044 - 44032: 0xBDE8, - 50045 - 44032: 0xBDE9, - 50046 - 44032: 0x9BA8, - 50047 - 44032: 0x9BA9, - 50048 - 44032: 0x9BAA, - 50049 - 44032: 0x9BAB, - 50050 - 44032: 0x9BAC, - 50051 - 44032: 0x9BAD, - 50052 - 44032: 0xBDEA, - 50053 - 44032: 0x9BAE, - 50054 - 44032: 0x9BAF, - 50055 - 44032: 0x9BB0, - 50056 - 44032: 0xBDEB, - 50057 - 44032: 0x9BB1, - 50058 - 44032: 0x9BB2, - 50059 - 44032: 0x9BB3, - 50060 - 44032: 0xBDEC, - 50061 - 44032: 0x9BB4, - 50062 - 44032: 0x9BB5, - 50063 - 44032: 0x9BB6, - 50064 - 44032: 0x9BB7, - 50065 - 44032: 0x9BB8, - 50066 - 44032: 0x9BB9, - 50067 - 44032: 0x9BBA, - 50068 - 44032: 0x9BBB, - 50069 - 44032: 0x9BBC, - 50070 - 44032: 0x9BBD, - 50071 - 44032: 0x9BBE, - 50072 - 44032: 0x9BBF, - 50073 - 44032: 0x9BC0, - 50074 - 44032: 0x9BC1, - 50075 - 44032: 0x9BC2, - 50076 - 44032: 0x9BC3, - 50077 - 44032: 0x9BC4, - 50078 - 44032: 0x9BC5, - 50079 - 44032: 0x9BC6, - 50080 - 44032: 0x9BC7, - 50081 - 44032: 0x9BC8, - 50082 - 44032: 0x9BC9, - 50083 - 44032: 0x9BCA, - 50084 - 44032: 0x9BCB, - 50085 - 44032: 0x9BCC, - 50086 - 44032: 0x9BCD, - 50087 - 44032: 0x9BCE, - 50088 - 44032: 0x9BCF, - 50089 - 44032: 0x9BD0, - 50090 - 44032: 0x9BD1, - 50091 - 44032: 0x9BD2, - 50092 - 44032: 0x9BD3, - 50093 - 44032: 0x9BD4, - 50094 - 44032: 0x9BD5, - 50095 - 44032: 0x9BD6, - 50096 - 44032: 0x9BD7, - 50097 - 44032: 0x9BD8, - 50098 - 44032: 0x9BD9, - 50099 - 44032: 0x9BDA, - 50100 - 44032: 0x9BDB, - 50101 - 44032: 0x9BDC, - 50102 - 44032: 0x9BDD, - 50103 - 44032: 0x9BDE, - 50104 - 44032: 0x9BDF, - 50105 - 44032: 0x9BE0, - 50106 - 44032: 0x9BE1, - 50107 - 44032: 0x9BE2, - 50108 - 44032: 0x9BE3, - 50109 - 44032: 0x9BE4, - 50110 - 44032: 0x9BE5, - 50111 - 44032: 0x9BE6, - 50112 - 44032: 0xBDED, - 50113 - 44032: 0x9BE7, - 50114 - 44032: 0x9BE8, - 50115 - 44032: 0x9BE9, - 50116 - 44032: 0x9BEA, - 50117 - 44032: 0x9BEB, - 50118 - 44032: 0x9BEC, - 50119 - 44032: 0x9BED, - 50120 - 44032: 0x9BEE, - 50121 - 44032: 0x9BEF, - 50122 - 44032: 0x9BF0, - 50123 - 44032: 0x9BF1, - 50124 - 44032: 0x9BF2, - 50125 - 44032: 0x9BF3, - 50126 - 44032: 0x9BF4, - 50127 - 44032: 0x9BF5, - 50128 - 44032: 0x9BF6, - 50129 - 44032: 0x9BF7, - 50130 - 44032: 0x9BF8, - 50131 - 44032: 0x9BF9, - 50132 - 44032: 0x9BFA, - 50133 - 44032: 0x9BFB, - 50134 - 44032: 0x9BFC, - 50135 - 44032: 0x9BFD, - 50136 - 44032: 0xBDEE, - 50137 - 44032: 0xBDEF, - 50138 - 44032: 0x9BFE, - 50139 - 44032: 0x9C41, - 50140 - 44032: 0xBDF0, - 50141 - 44032: 0x9C42, - 50142 - 44032: 0x9C43, - 50143 - 44032: 0xBDF1, - 50144 - 44032: 0xBDF2, - 50145 - 44032: 0x9C44, - 50146 - 44032: 0xBDF3, - 50147 - 44032: 0x9C45, - 50148 - 44032: 0x9C46, - 50149 - 44032: 0x9C47, - 50150 - 44032: 0x9C48, - 50151 - 44032: 0x9C49, - 50152 - 44032: 0xBDF4, - 50153 - 44032: 0xBDF5, - 50154 - 44032: 0x9C4A, - 50155 - 44032: 0x9C4B, - 50156 - 44032: 0x9C4C, - 50157 - 44032: 0xBDF6, - 50158 - 44032: 0x9C4D, - 50159 - 44032: 0x9C4E, - 50160 - 44032: 0x9C4F, - 50161 - 44032: 0x9C50, - 50162 - 44032: 0x9C51, - 50163 - 44032: 0x9C52, - 50164 - 44032: 0xBDF7, - 50165 - 44032: 0xBDF8, - 50166 - 44032: 0x9C53, - 50167 - 44032: 0x9C54, - 50168 - 44032: 0xBDF9, - 50169 - 44032: 0x9C55, - 50170 - 44032: 0x9C56, - 50171 - 44032: 0x9C57, - 50172 - 44032: 0x9C58, - 50173 - 44032: 0x9C59, - 50174 - 44032: 0x9C5A, - 50175 - 44032: 0x9C61, - 50176 - 44032: 0x9C62, - 50177 - 44032: 0x9C63, - 50178 - 44032: 0x9C64, - 50179 - 44032: 0x9C65, - 50180 - 44032: 0x9C66, - 50181 - 44032: 0x9C67, - 50182 - 44032: 0x9C68, - 50183 - 44032: 0x9C69, - 50184 - 44032: 0xBDFA, - 50185 - 44032: 0x9C6A, - 50186 - 44032: 0x9C6B, - 50187 - 44032: 0x9C6C, - 50188 - 44032: 0x9C6D, - 50189 - 44032: 0x9C6E, - 50190 - 44032: 0x9C6F, - 50191 - 44032: 0x9C70, - 50192 - 44032: 0xBDFB, - 50193 - 44032: 0x9C71, - 50194 - 44032: 0x9C72, - 50195 - 44032: 0x9C73, - 50196 - 44032: 0x9C74, - 50197 - 44032: 0x9C75, - 50198 - 44032: 0x9C76, - 50199 - 44032: 0x9C77, - 50200 - 44032: 0x9C78, - 50201 - 44032: 0x9C79, - 50202 - 44032: 0x9C7A, - 50203 - 44032: 0x9C81, - 50204 - 44032: 0x9C82, - 50205 - 44032: 0x9C83, - 50206 - 44032: 0x9C84, - 50207 - 44032: 0x9C85, - 50208 - 44032: 0x9C86, - 50209 - 44032: 0x9C87, - 50210 - 44032: 0x9C88, - 50211 - 44032: 0x9C89, - 50212 - 44032: 0xBDFC, - 50213 - 44032: 0x9C8A, - 50214 - 44032: 0x9C8B, - 50215 - 44032: 0x9C8C, - 50216 - 44032: 0x9C8D, - 50217 - 44032: 0x9C8E, - 50218 - 44032: 0x9C8F, - 50219 - 44032: 0x9C90, - 50220 - 44032: 0xBDFD, - 50221 - 44032: 0x9C91, - 50222 - 44032: 0x9C92, - 50223 - 44032: 0x9C93, - 50224 - 44032: 0xBDFE, - 50225 - 44032: 0x9C94, - 50226 - 44032: 0x9C95, - 50227 - 44032: 0x9C96, - 50228 - 44032: 0xBEA1, - 50229 - 44032: 0x9C97, - 50230 - 44032: 0x9C98, - 50231 - 44032: 0x9C99, - 50232 - 44032: 0x9C9A, - 50233 - 44032: 0x9C9B, - 50234 - 44032: 0x9C9C, - 50235 - 44032: 0x9C9D, - 50236 - 44032: 0xBEA2, - 50237 - 44032: 0xBEA3, - 50238 - 44032: 0x9C9E, - 50239 - 44032: 0x9C9F, - 50240 - 44032: 0x9CA0, - 50241 - 44032: 0x9CA1, - 50242 - 44032: 0x9CA2, - 50243 - 44032: 0x9CA3, - 50244 - 44032: 0x9CA4, - 50245 - 44032: 0x9CA5, - 50246 - 44032: 0x9CA6, - 50247 - 44032: 0x9CA7, - 50248 - 44032: 0xBEA4, - 50249 - 44032: 0x9CA8, - 50250 - 44032: 0x9CA9, - 50251 - 44032: 0x9CAA, - 50252 - 44032: 0x9CAB, - 50253 - 44032: 0x9CAC, - 50254 - 44032: 0x9CAD, - 50255 - 44032: 0x9CAE, - 50256 - 44032: 0x9CAF, - 50257 - 44032: 0x9CB0, - 50258 - 44032: 0x9CB1, - 50259 - 44032: 0x9CB2, - 50260 - 44032: 0x9CB3, - 50261 - 44032: 0x9CB4, - 50262 - 44032: 0x9CB5, - 50263 - 44032: 0x9CB6, - 50264 - 44032: 0x9CB7, - 50265 - 44032: 0x9CB8, - 50266 - 44032: 0x9CB9, - 50267 - 44032: 0x9CBA, - 50268 - 44032: 0x9CBB, - 50269 - 44032: 0x9CBC, - 50270 - 44032: 0x9CBD, - 50271 - 44032: 0x9CBE, - 50272 - 44032: 0x9CBF, - 50273 - 44032: 0x9CC0, - 50274 - 44032: 0x9CC1, - 50275 - 44032: 0x9CC2, - 50276 - 44032: 0xBEA5, - 50277 - 44032: 0xBEA6, - 50278 - 44032: 0x9CC3, - 50279 - 44032: 0x9CC4, - 50280 - 44032: 0xBEA7, - 50281 - 44032: 0x9CC5, - 50282 - 44032: 0x9CC6, - 50283 - 44032: 0x9CC7, - 50284 - 44032: 0xBEA8, - 50285 - 44032: 0x9CC8, - 50286 - 44032: 0x9CC9, - 50287 - 44032: 0x9CCA, - 50288 - 44032: 0x9CCB, - 50289 - 44032: 0x9CCC, - 50290 - 44032: 0x9CCD, - 50291 - 44032: 0x9CCE, - 50292 - 44032: 0xBEA9, - 50293 - 44032: 0xBEAA, - 50294 - 44032: 0x9CCF, - 50295 - 44032: 0x9CD0, - 50296 - 44032: 0x9CD1, - 50297 - 44032: 0xBEAB, - 50298 - 44032: 0x9CD2, - 50299 - 44032: 0x9CD3, - 50300 - 44032: 0x9CD4, - 50301 - 44032: 0x9CD5, - 50302 - 44032: 0x9CD6, - 50303 - 44032: 0x9CD7, - 50304 - 44032: 0xBEAC, - 50305 - 44032: 0x9CD8, - 50306 - 44032: 0x9CD9, - 50307 - 44032: 0x9CDA, - 50308 - 44032: 0x9CDB, - 50309 - 44032: 0x9CDC, - 50310 - 44032: 0x9CDD, - 50311 - 44032: 0x9CDE, - 50312 - 44032: 0x9CDF, - 50313 - 44032: 0x9CE0, - 50314 - 44032: 0x9CE1, - 50315 - 44032: 0x9CE2, - 50316 - 44032: 0x9CE3, - 50317 - 44032: 0x9CE4, - 50318 - 44032: 0x9CE5, - 50319 - 44032: 0x9CE6, - 50320 - 44032: 0x9CE7, - 50321 - 44032: 0x9CE8, - 50322 - 44032: 0x9CE9, - 50323 - 44032: 0x9CEA, - 50324 - 44032: 0xBEAD, - 50325 - 44032: 0x9CEB, - 50326 - 44032: 0x9CEC, - 50327 - 44032: 0x9CED, - 50328 - 44032: 0x9CEE, - 50329 - 44032: 0x9CEF, - 50330 - 44032: 0x9CF0, - 50331 - 44032: 0x9CF1, - 50332 - 44032: 0xBEAE, - 50333 - 44032: 0x9CF2, - 50334 - 44032: 0x9CF3, - 50335 - 44032: 0x9CF4, - 50336 - 44032: 0x9CF5, - 50337 - 44032: 0x9CF6, - 50338 - 44032: 0x9CF7, - 50339 - 44032: 0x9CF8, - 50340 - 44032: 0x9CF9, - 50341 - 44032: 0x9CFA, - 50342 - 44032: 0x9CFB, - 50343 - 44032: 0x9CFC, - 50344 - 44032: 0x9CFD, - 50345 - 44032: 0x9CFE, - 50346 - 44032: 0x9D41, - 50347 - 44032: 0x9D42, - 50348 - 44032: 0x9D43, - 50349 - 44032: 0x9D44, - 50350 - 44032: 0x9D45, - 50351 - 44032: 0x9D46, - 50352 - 44032: 0x9D47, - 50353 - 44032: 0x9D48, - 50354 - 44032: 0x9D49, - 50355 - 44032: 0x9D4A, - 50356 - 44032: 0x9D4B, - 50357 - 44032: 0x9D4C, - 50358 - 44032: 0x9D4D, - 50359 - 44032: 0x9D4E, - 50360 - 44032: 0xBEAF, - 50361 - 44032: 0x9D4F, - 50362 - 44032: 0x9D50, - 50363 - 44032: 0x9D51, - 50364 - 44032: 0xBEB0, - 50365 - 44032: 0x9D52, - 50366 - 44032: 0x9D53, - 50367 - 44032: 0x9D54, - 50368 - 44032: 0x9D55, - 50369 - 44032: 0x9D56, - 50370 - 44032: 0x9D57, - 50371 - 44032: 0x9D58, - 50372 - 44032: 0x9D59, - 50373 - 44032: 0x9D5A, - 50374 - 44032: 0x9D61, - 50375 - 44032: 0x9D62, - 50376 - 44032: 0x9D63, - 50377 - 44032: 0x9D64, - 50378 - 44032: 0x9D65, - 50379 - 44032: 0x9D66, - 50380 - 44032: 0x9D67, - 50381 - 44032: 0x9D68, - 50382 - 44032: 0x9D69, - 50383 - 44032: 0x9D6A, - 50384 - 44032: 0x9D6B, - 50385 - 44032: 0x9D6C, - 50386 - 44032: 0x9D6D, - 50387 - 44032: 0x9D6E, - 50388 - 44032: 0x9D6F, - 50389 - 44032: 0x9D70, - 50390 - 44032: 0x9D71, - 50391 - 44032: 0x9D72, - 50392 - 44032: 0x9D73, - 50393 - 44032: 0x9D74, - 50394 - 44032: 0x9D75, - 50395 - 44032: 0x9D76, - 50396 - 44032: 0x9D77, - 50397 - 44032: 0x9D78, - 50398 - 44032: 0x9D79, - 50399 - 44032: 0x9D7A, - 50400 - 44032: 0x9D81, - 50401 - 44032: 0x9D82, - 50402 - 44032: 0x9D83, - 50403 - 44032: 0x9D84, - 50404 - 44032: 0x9D85, - 50405 - 44032: 0x9D86, - 50406 - 44032: 0x9D87, - 50407 - 44032: 0x9D88, - 50408 - 44032: 0x9D89, - 50409 - 44032: 0xBEB1, - 50410 - 44032: 0x9D8A, - 50411 - 44032: 0x9D8B, - 50412 - 44032: 0x9D8C, - 50413 - 44032: 0x9D8D, - 50414 - 44032: 0x9D8E, - 50415 - 44032: 0x9D8F, - 50416 - 44032: 0xBEB2, - 50417 - 44032: 0xBEB3, - 50418 - 44032: 0x9D90, - 50419 - 44032: 0x9D91, - 50420 - 44032: 0xBEB4, - 50421 - 44032: 0x9D92, - 50422 - 44032: 0x9D93, - 50423 - 44032: 0x9D94, - 50424 - 44032: 0xBEB5, - 50425 - 44032: 0x9D95, - 50426 - 44032: 0xBEB6, - 50427 - 44032: 0x9D96, - 50428 - 44032: 0x9D97, - 50429 - 44032: 0x9D98, - 50430 - 44032: 0x9D99, - 50431 - 44032: 0xBEB7, - 50432 - 44032: 0xBEB8, - 50433 - 44032: 0xBEB9, - 50434 - 44032: 0x9D9A, - 50435 - 44032: 0x9D9B, - 50436 - 44032: 0x9D9C, - 50437 - 44032: 0x9D9D, - 50438 - 44032: 0x9D9E, - 50439 - 44032: 0x9D9F, - 50440 - 44032: 0x9DA0, - 50441 - 44032: 0x9DA1, - 50442 - 44032: 0x9DA2, - 50443 - 44032: 0x9DA3, - 50444 - 44032: 0xBEBA, - 50445 - 44032: 0x9DA4, - 50446 - 44032: 0x9DA5, - 50447 - 44032: 0x9DA6, - 50448 - 44032: 0xBEBB, - 50449 - 44032: 0x9DA7, - 50450 - 44032: 0x9DA8, - 50451 - 44032: 0x9DA9, - 50452 - 44032: 0xBEBC, - 50453 - 44032: 0x9DAA, - 50454 - 44032: 0x9DAB, - 50455 - 44032: 0x9DAC, - 50456 - 44032: 0x9DAD, - 50457 - 44032: 0x9DAE, - 50458 - 44032: 0x9DAF, - 50459 - 44032: 0x9DB0, - 50460 - 44032: 0xBEBD, - 50461 - 44032: 0x9DB1, - 50462 - 44032: 0x9DB2, - 50463 - 44032: 0x9DB3, - 50464 - 44032: 0x9DB4, - 50465 - 44032: 0x9DB5, - 50466 - 44032: 0x9DB6, - 50467 - 44032: 0x9DB7, - 50468 - 44032: 0x9DB8, - 50469 - 44032: 0x9DB9, - 50470 - 44032: 0x9DBA, - 50471 - 44032: 0x9DBB, - 50472 - 44032: 0xBEBE, - 50473 - 44032: 0xBEBF, - 50474 - 44032: 0x9DBC, - 50475 - 44032: 0x9DBD, - 50476 - 44032: 0xBEC0, - 50477 - 44032: 0x9DBE, - 50478 - 44032: 0x9DBF, - 50479 - 44032: 0x9DC0, - 50480 - 44032: 0xBEC1, - 50481 - 44032: 0x9DC1, - 50482 - 44032: 0x9DC2, - 50483 - 44032: 0x9DC3, - 50484 - 44032: 0x9DC4, - 50485 - 44032: 0x9DC5, - 50486 - 44032: 0x9DC6, - 50487 - 44032: 0x9DC7, - 50488 - 44032: 0xBEC2, - 50489 - 44032: 0xBEC3, - 50490 - 44032: 0x9DC8, - 50491 - 44032: 0xBEC4, - 50492 - 44032: 0x9DC9, - 50493 - 44032: 0xBEC5, - 50494 - 44032: 0x9DCA, - 50495 - 44032: 0x9DCB, - 50496 - 44032: 0x9DCC, - 50497 - 44032: 0x9DCD, - 50498 - 44032: 0x9DCE, - 50499 - 44032: 0x9DCF, - 50500 - 44032: 0xBEC6, - 50501 - 44032: 0xBEC7, - 50502 - 44032: 0x9DD0, - 50503 - 44032: 0x9DD1, - 50504 - 44032: 0xBEC8, - 50505 - 44032: 0xBEC9, - 50506 - 44032: 0xBECA, - 50507 - 44032: 0x9DD2, - 50508 - 44032: 0xBECB, - 50509 - 44032: 0xBECC, - 50510 - 44032: 0xBECD, - 50511 - 44032: 0x9DD3, - 50512 - 44032: 0x9DD4, - 50513 - 44032: 0x9DD5, - 50514 - 44032: 0x9DD6, - 50515 - 44032: 0xBECE, - 50516 - 44032: 0xBECF, - 50517 - 44032: 0xBED0, - 50518 - 44032: 0x9DD7, - 50519 - 44032: 0xBED1, - 50520 - 44032: 0xBED2, - 50521 - 44032: 0xBED3, - 50522 - 44032: 0x9DD8, - 50523 - 44032: 0x9DD9, - 50524 - 44032: 0x9DDA, - 50525 - 44032: 0xBED4, - 50526 - 44032: 0xBED5, - 50527 - 44032: 0x9DDB, - 50528 - 44032: 0xBED6, - 50529 - 44032: 0xBED7, - 50530 - 44032: 0x9DDC, - 50531 - 44032: 0x9DDD, - 50532 - 44032: 0xBED8, - 50533 - 44032: 0x9DDE, - 50534 - 44032: 0x9DDF, - 50535 - 44032: 0x9DE0, - 50536 - 44032: 0xBED9, - 50537 - 44032: 0x9DE1, - 50538 - 44032: 0x9DE2, - 50539 - 44032: 0x9DE3, - 50540 - 44032: 0x9DE4, - 50541 - 44032: 0x9DE5, - 50542 - 44032: 0x9DE6, - 50543 - 44032: 0x9DE7, - 50544 - 44032: 0xBEDA, - 50545 - 44032: 0xBEDB, - 50546 - 44032: 0x9DE8, - 50547 - 44032: 0xBEDC, - 50548 - 44032: 0xBEDD, - 50549 - 44032: 0xBEDE, - 50550 - 44032: 0x9DE9, - 50551 - 44032: 0x9DEA, - 50552 - 44032: 0x9DEB, - 50553 - 44032: 0x9DEC, - 50554 - 44032: 0x9DED, - 50555 - 44032: 0x9DEE, - 50556 - 44032: 0xBEDF, - 50557 - 44032: 0xBEE0, - 50558 - 44032: 0x9DEF, - 50559 - 44032: 0x9DF0, - 50560 - 44032: 0xBEE1, - 50561 - 44032: 0x9DF1, - 50562 - 44032: 0x9DF2, - 50563 - 44032: 0x9DF3, - 50564 - 44032: 0xBEE2, - 50565 - 44032: 0x9DF4, - 50566 - 44032: 0x9DF5, - 50567 - 44032: 0xBEE3, - 50568 - 44032: 0x9DF6, - 50569 - 44032: 0x9DF7, - 50570 - 44032: 0x9DF8, - 50571 - 44032: 0x9DF9, - 50572 - 44032: 0xBEE4, - 50573 - 44032: 0xBEE5, - 50574 - 44032: 0x9DFA, - 50575 - 44032: 0xBEE6, - 50576 - 44032: 0x9DFB, - 50577 - 44032: 0xBEE7, - 50578 - 44032: 0x9DFC, - 50579 - 44032: 0x9DFD, - 50580 - 44032: 0x9DFE, - 50581 - 44032: 0xBEE8, - 50582 - 44032: 0x9E41, - 50583 - 44032: 0xBEE9, - 50584 - 44032: 0xBEEA, - 50585 - 44032: 0x9E42, - 50586 - 44032: 0x9E43, - 50587 - 44032: 0x9E44, - 50588 - 44032: 0xBEEB, - 50589 - 44032: 0x9E45, - 50590 - 44032: 0x9E46, - 50591 - 44032: 0x9E47, - 50592 - 44032: 0xBEEC, - 50593 - 44032: 0x9E48, - 50594 - 44032: 0x9E49, - 50595 - 44032: 0x9E4A, - 50596 - 44032: 0x9E4B, - 50597 - 44032: 0x9E4C, - 50598 - 44032: 0x9E4D, - 50599 - 44032: 0x9E4E, - 50600 - 44032: 0x9E4F, - 50601 - 44032: 0xBEED, - 50602 - 44032: 0x9E50, - 50603 - 44032: 0x9E51, - 50604 - 44032: 0x9E52, - 50605 - 44032: 0x9E53, - 50606 - 44032: 0x9E54, - 50607 - 44032: 0x9E55, - 50608 - 44032: 0x9E56, - 50609 - 44032: 0x9E57, - 50610 - 44032: 0x9E58, - 50611 - 44032: 0x9E59, - 50612 - 44032: 0xBEEE, - 50613 - 44032: 0xBEEF, - 50614 - 44032: 0x9E5A, - 50615 - 44032: 0x9E61, - 50616 - 44032: 0xBEF0, - 50617 - 44032: 0xBEF1, - 50618 - 44032: 0x9E62, - 50619 - 44032: 0xBEF2, - 50620 - 44032: 0xBEF3, - 50621 - 44032: 0xBEF4, - 50622 - 44032: 0xBEF5, - 50623 - 44032: 0x9E63, - 50624 - 44032: 0x9E64, - 50625 - 44032: 0x9E65, - 50626 - 44032: 0x9E66, - 50627 - 44032: 0x9E67, - 50628 - 44032: 0xBEF6, - 50629 - 44032: 0xBEF7, - 50630 - 44032: 0xBEF8, - 50631 - 44032: 0xBEF9, - 50632 - 44032: 0xBEFA, - 50633 - 44032: 0xBEFB, - 50634 - 44032: 0xBEFC, - 50635 - 44032: 0x9E68, - 50636 - 44032: 0xBEFD, - 50637 - 44032: 0x9E69, - 50638 - 44032: 0xBEFE, - 50639 - 44032: 0x9E6A, - 50640 - 44032: 0xBFA1, - 50641 - 44032: 0xBFA2, - 50642 - 44032: 0x9E6B, - 50643 - 44032: 0x9E6C, - 50644 - 44032: 0xBFA3, - 50645 - 44032: 0x9E6D, - 50646 - 44032: 0x9E6E, - 50647 - 44032: 0x9E6F, - 50648 - 44032: 0xBFA4, - 50649 - 44032: 0x9E70, - 50650 - 44032: 0x9E71, - 50651 - 44032: 0x9E72, - 50652 - 44032: 0x9E73, - 50653 - 44032: 0x9E74, - 50654 - 44032: 0x9E75, - 50655 - 44032: 0x9E76, - 50656 - 44032: 0xBFA5, - 50657 - 44032: 0xBFA6, - 50658 - 44032: 0x9E77, - 50659 - 44032: 0xBFA7, - 50660 - 44032: 0x9E78, - 50661 - 44032: 0xBFA8, - 50662 - 44032: 0x9E79, - 50663 - 44032: 0x9E7A, - 50664 - 44032: 0x9E81, - 50665 - 44032: 0x9E82, - 50666 - 44032: 0x9E83, - 50667 - 44032: 0x9E84, - 50668 - 44032: 0xBFA9, - 50669 - 44032: 0xBFAA, - 50670 - 44032: 0xBFAB, - 50671 - 44032: 0x9E85, - 50672 - 44032: 0xBFAC, - 50673 - 44032: 0x9E86, - 50674 - 44032: 0x9E87, - 50675 - 44032: 0x9E88, - 50676 - 44032: 0xBFAD, - 50677 - 44032: 0x9E89, - 50678 - 44032: 0xBFAE, - 50679 - 44032: 0xBFAF, - 50680 - 44032: 0x9E8A, - 50681 - 44032: 0x9E8B, - 50682 - 44032: 0x9E8C, - 50683 - 44032: 0x9E8D, - 50684 - 44032: 0xBFB0, - 50685 - 44032: 0xBFB1, - 50686 - 44032: 0xBFB2, - 50687 - 44032: 0xBFB3, - 50688 - 44032: 0xBFB4, - 50689 - 44032: 0xBFB5, - 50690 - 44032: 0x9E8E, - 50691 - 44032: 0x9E8F, - 50692 - 44032: 0x9E90, - 50693 - 44032: 0xBFB6, - 50694 - 44032: 0xBFB7, - 50695 - 44032: 0xBFB8, - 50696 - 44032: 0xBFB9, - 50697 - 44032: 0x9E91, - 50698 - 44032: 0x9E92, - 50699 - 44032: 0x9E93, - 50700 - 44032: 0xBFBA, - 50701 - 44032: 0x9E94, - 50702 - 44032: 0x9E95, - 50703 - 44032: 0x9E96, - 50704 - 44032: 0xBFBB, - 50705 - 44032: 0x9E97, - 50706 - 44032: 0x9E98, - 50707 - 44032: 0x9E99, - 50708 - 44032: 0x9E9A, - 50709 - 44032: 0x9E9B, - 50710 - 44032: 0x9E9C, - 50711 - 44032: 0x9E9D, - 50712 - 44032: 0xBFBC, - 50713 - 44032: 0xBFBD, - 50714 - 44032: 0x9E9E, - 50715 - 44032: 0xBFBE, - 50716 - 44032: 0xBFBF, - 50717 - 44032: 0x9E9F, - 50718 - 44032: 0x9EA0, - 50719 - 44032: 0x9EA1, - 50720 - 44032: 0x9EA2, - 50721 - 44032: 0x9EA3, - 50722 - 44032: 0x9EA4, - 50723 - 44032: 0x9EA5, - 50724 - 44032: 0xBFC0, - 50725 - 44032: 0xBFC1, - 50726 - 44032: 0x9EA6, - 50727 - 44032: 0x9EA7, - 50728 - 44032: 0xBFC2, - 50729 - 44032: 0x9EA8, - 50730 - 44032: 0x9EA9, - 50731 - 44032: 0x9EAA, - 50732 - 44032: 0xBFC3, - 50733 - 44032: 0xBFC4, - 50734 - 44032: 0xBFC5, - 50735 - 44032: 0x9EAB, - 50736 - 44032: 0xBFC6, - 50737 - 44032: 0x9EAC, - 50738 - 44032: 0x9EAD, - 50739 - 44032: 0xBFC7, - 50740 - 44032: 0xBFC8, - 50741 - 44032: 0xBFC9, - 50742 - 44032: 0x9EAE, - 50743 - 44032: 0xBFCA, - 50744 - 44032: 0x9EAF, - 50745 - 44032: 0xBFCB, - 50746 - 44032: 0x9EB0, - 50747 - 44032: 0xBFCC, - 50748 - 44032: 0x9EB1, - 50749 - 44032: 0x9EB2, - 50750 - 44032: 0x9EB3, - 50751 - 44032: 0x9EB4, - 50752 - 44032: 0xBFCD, - 50753 - 44032: 0xBFCE, - 50754 - 44032: 0x9EB5, - 50755 - 44032: 0x9EB6, - 50756 - 44032: 0xBFCF, - 50757 - 44032: 0x9EB7, - 50758 - 44032: 0x9EB8, - 50759 - 44032: 0x9EB9, - 50760 - 44032: 0xBFD0, - 50761 - 44032: 0x9EBA, - 50762 - 44032: 0x9EBB, - 50763 - 44032: 0x9EBC, - 50764 - 44032: 0x9EBD, - 50765 - 44032: 0x9EBE, - 50766 - 44032: 0x9EBF, - 50767 - 44032: 0x9EC0, - 50768 - 44032: 0xBFD1, - 50769 - 44032: 0xBFD2, - 50770 - 44032: 0x9EC1, - 50771 - 44032: 0xBFD3, - 50772 - 44032: 0xBFD4, - 50773 - 44032: 0xBFD5, - 50774 - 44032: 0x9EC2, - 50775 - 44032: 0x9EC3, - 50776 - 44032: 0x9EC4, - 50777 - 44032: 0x9EC5, - 50778 - 44032: 0x9EC6, - 50779 - 44032: 0x9EC7, - 50780 - 44032: 0xBFD6, - 50781 - 44032: 0xBFD7, - 50782 - 44032: 0x9EC8, - 50783 - 44032: 0x9EC9, - 50784 - 44032: 0xBFD8, - 50785 - 44032: 0x9ECA, - 50786 - 44032: 0x9ECB, - 50787 - 44032: 0x9ECC, - 50788 - 44032: 0x9ECD, - 50789 - 44032: 0x9ECE, - 50790 - 44032: 0x9ECF, - 50791 - 44032: 0x9ED0, - 50792 - 44032: 0x9ED1, - 50793 - 44032: 0x9ED2, - 50794 - 44032: 0x9ED3, - 50795 - 44032: 0x9ED4, - 50796 - 44032: 0xBFD9, - 50797 - 44032: 0x9ED5, - 50798 - 44032: 0x9ED6, - 50799 - 44032: 0xBFDA, - 50800 - 44032: 0x9ED7, - 50801 - 44032: 0xBFDB, - 50802 - 44032: 0x9ED8, - 50803 - 44032: 0x9ED9, - 50804 - 44032: 0x9EDA, - 50805 - 44032: 0x9EDB, - 50806 - 44032: 0x9EDC, - 50807 - 44032: 0x9EDD, - 50808 - 44032: 0xBFDC, - 50809 - 44032: 0xBFDD, - 50810 - 44032: 0x9EDE, - 50811 - 44032: 0x9EDF, - 50812 - 44032: 0xBFDE, - 50813 - 44032: 0x9EE0, - 50814 - 44032: 0x9EE1, - 50815 - 44032: 0x9EE2, - 50816 - 44032: 0xBFDF, - 50817 - 44032: 0x9EE3, - 50818 - 44032: 0x9EE4, - 50819 - 44032: 0x9EE5, - 50820 - 44032: 0x9EE6, - 50821 - 44032: 0x9EE7, - 50822 - 44032: 0x9EE8, - 50823 - 44032: 0x9EE9, - 50824 - 44032: 0xBFE0, - 50825 - 44032: 0xBFE1, - 50826 - 44032: 0x9EEA, - 50827 - 44032: 0xBFE2, - 50828 - 44032: 0x9EEB, - 50829 - 44032: 0xBFE3, - 50830 - 44032: 0x9EEC, - 50831 - 44032: 0x9EED, - 50832 - 44032: 0x9EEE, - 50833 - 44032: 0x9EEF, - 50834 - 44032: 0x9EF0, - 50835 - 44032: 0x9EF1, - 50836 - 44032: 0xBFE4, - 50837 - 44032: 0xBFE5, - 50838 - 44032: 0x9EF2, - 50839 - 44032: 0x9EF3, - 50840 - 44032: 0xBFE6, - 50841 - 44032: 0x9EF4, - 50842 - 44032: 0x9EF5, - 50843 - 44032: 0x9EF6, - 50844 - 44032: 0xBFE7, - 50845 - 44032: 0x9EF7, - 50846 - 44032: 0x9EF8, - 50847 - 44032: 0x9EF9, - 50848 - 44032: 0x9EFA, - 50849 - 44032: 0x9EFB, - 50850 - 44032: 0x9EFC, - 50851 - 44032: 0x9EFD, - 50852 - 44032: 0xBFE8, - 50853 - 44032: 0xBFE9, - 50854 - 44032: 0x9EFE, - 50855 - 44032: 0xBFEA, - 50856 - 44032: 0x9F41, - 50857 - 44032: 0xBFEB, - 50858 - 44032: 0x9F42, - 50859 - 44032: 0x9F43, - 50860 - 44032: 0x9F44, - 50861 - 44032: 0x9F45, - 50862 - 44032: 0x9F46, - 50863 - 44032: 0x9F47, - 50864 - 44032: 0xBFEC, - 50865 - 44032: 0xBFED, - 50866 - 44032: 0x9F48, - 50867 - 44032: 0x9F49, - 50868 - 44032: 0xBFEE, - 50869 - 44032: 0x9F4A, - 50870 - 44032: 0x9F4B, - 50871 - 44032: 0x9F4C, - 50872 - 44032: 0xBFEF, - 50873 - 44032: 0xBFF0, - 50874 - 44032: 0xBFF1, - 50875 - 44032: 0x9F4D, - 50876 - 44032: 0x9F4E, - 50877 - 44032: 0x9F4F, - 50878 - 44032: 0x9F50, - 50879 - 44032: 0x9F51, - 50880 - 44032: 0xBFF2, - 50881 - 44032: 0xBFF3, - 50882 - 44032: 0x9F52, - 50883 - 44032: 0xBFF4, - 50884 - 44032: 0x9F53, - 50885 - 44032: 0xBFF5, - 50886 - 44032: 0x9F54, - 50887 - 44032: 0x9F55, - 50888 - 44032: 0x9F56, - 50889 - 44032: 0x9F57, - 50890 - 44032: 0x9F58, - 50891 - 44032: 0x9F59, - 50892 - 44032: 0xBFF6, - 50893 - 44032: 0xBFF7, - 50894 - 44032: 0x9F5A, - 50895 - 44032: 0x9F61, - 50896 - 44032: 0xBFF8, - 50897 - 44032: 0x9F62, - 50898 - 44032: 0x9F63, - 50899 - 44032: 0x9F64, - 50900 - 44032: 0xBFF9, - 50901 - 44032: 0x9F65, - 50902 - 44032: 0x9F66, - 50903 - 44032: 0x9F67, - 50904 - 44032: 0x9F68, - 50905 - 44032: 0x9F69, - 50906 - 44032: 0x9F6A, - 50907 - 44032: 0x9F6B, - 50908 - 44032: 0xBFFA, - 50909 - 44032: 0xBFFB, - 50910 - 44032: 0x9F6C, - 50911 - 44032: 0x9F6D, - 50912 - 44032: 0xBFFC, - 50913 - 44032: 0xBFFD, - 50914 - 44032: 0x9F6E, - 50915 - 44032: 0x9F6F, - 50916 - 44032: 0x9F70, - 50917 - 44032: 0x9F71, - 50918 - 44032: 0x9F72, - 50919 - 44032: 0x9F73, - 50920 - 44032: 0xBFFE, - 50921 - 44032: 0xC0A1, - 50922 - 44032: 0x9F74, - 50923 - 44032: 0x9F75, - 50924 - 44032: 0xC0A2, - 50925 - 44032: 0x9F76, - 50926 - 44032: 0x9F77, - 50927 - 44032: 0x9F78, - 50928 - 44032: 0xC0A3, - 50929 - 44032: 0x9F79, - 50930 - 44032: 0x9F7A, - 50931 - 44032: 0x9F81, - 50932 - 44032: 0x9F82, - 50933 - 44032: 0x9F83, - 50934 - 44032: 0x9F84, - 50935 - 44032: 0x9F85, - 50936 - 44032: 0xC0A4, - 50937 - 44032: 0xC0A5, - 50938 - 44032: 0x9F86, - 50939 - 44032: 0x9F87, - 50940 - 44032: 0x9F88, - 50941 - 44032: 0xC0A6, - 50942 - 44032: 0x9F89, - 50943 - 44032: 0x9F8A, - 50944 - 44032: 0x9F8B, - 50945 - 44032: 0x9F8C, - 50946 - 44032: 0x9F8D, - 50947 - 44032: 0x9F8E, - 50948 - 44032: 0xC0A7, - 50949 - 44032: 0xC0A8, - 50950 - 44032: 0x9F8F, - 50951 - 44032: 0x9F90, - 50952 - 44032: 0xC0A9, - 50953 - 44032: 0x9F91, - 50954 - 44032: 0x9F92, - 50955 - 44032: 0x9F93, - 50956 - 44032: 0xC0AA, - 50957 - 44032: 0x9F94, - 50958 - 44032: 0x9F95, - 50959 - 44032: 0x9F96, - 50960 - 44032: 0x9F97, - 50961 - 44032: 0x9F98, - 50962 - 44032: 0x9F99, - 50963 - 44032: 0x9F9A, - 50964 - 44032: 0xC0AB, - 50965 - 44032: 0xC0AC, - 50966 - 44032: 0x9F9B, - 50967 - 44032: 0xC0AD, - 50968 - 44032: 0x9F9C, - 50969 - 44032: 0xC0AE, - 50970 - 44032: 0x9F9D, - 50971 - 44032: 0x9F9E, - 50972 - 44032: 0x9F9F, - 50973 - 44032: 0x9FA0, - 50974 - 44032: 0x9FA1, - 50975 - 44032: 0x9FA2, - 50976 - 44032: 0xC0AF, - 50977 - 44032: 0xC0B0, - 50978 - 44032: 0x9FA3, - 50979 - 44032: 0x9FA4, - 50980 - 44032: 0xC0B1, - 50981 - 44032: 0x9FA5, - 50982 - 44032: 0x9FA6, - 50983 - 44032: 0x9FA7, - 50984 - 44032: 0xC0B2, - 50985 - 44032: 0x9FA8, - 50986 - 44032: 0x9FA9, - 50987 - 44032: 0x9FAA, - 50988 - 44032: 0x9FAB, - 50989 - 44032: 0x9FAC, - 50990 - 44032: 0x9FAD, - 50991 - 44032: 0x9FAE, - 50992 - 44032: 0xC0B3, - 50993 - 44032: 0xC0B4, - 50994 - 44032: 0x9FAF, - 50995 - 44032: 0xC0B5, - 50996 - 44032: 0x9FB0, - 50997 - 44032: 0xC0B6, - 50998 - 44032: 0x9FB1, - 50999 - 44032: 0xC0B7, - 51000 - 44032: 0x9FB2, - 51001 - 44032: 0x9FB3, - 51002 - 44032: 0x9FB4, - 51003 - 44032: 0x9FB5, - 51004 - 44032: 0xC0B8, - 51005 - 44032: 0xC0B9, - 51006 - 44032: 0x9FB6, - 51007 - 44032: 0x9FB7, - 51008 - 44032: 0xC0BA, - 51009 - 44032: 0x9FB8, - 51010 - 44032: 0x9FB9, - 51011 - 44032: 0x9FBA, - 51012 - 44032: 0xC0BB, - 51013 - 44032: 0x9FBB, - 51014 - 44032: 0x9FBC, - 51015 - 44032: 0x9FBD, - 51016 - 44032: 0x9FBE, - 51017 - 44032: 0x9FBF, - 51018 - 44032: 0xC0BC, - 51019 - 44032: 0x9FC0, - 51020 - 44032: 0xC0BD, - 51021 - 44032: 0xC0BE, - 51022 - 44032: 0x9FC1, - 51023 - 44032: 0xC0BF, - 51024 - 44032: 0x9FC2, - 51025 - 44032: 0xC0C0, - 51026 - 44032: 0xC0C1, - 51027 - 44032: 0xC0C2, - 51028 - 44032: 0xC0C3, - 51029 - 44032: 0xC0C4, - 51030 - 44032: 0xC0C5, - 51031 - 44032: 0xC0C6, - 51032 - 44032: 0xC0C7, - 51033 - 44032: 0x9FC3, - 51034 - 44032: 0x9FC4, - 51035 - 44032: 0x9FC5, - 51036 - 44032: 0xC0C8, - 51037 - 44032: 0x9FC6, - 51038 - 44032: 0x9FC7, - 51039 - 44032: 0x9FC8, - 51040 - 44032: 0xC0C9, - 51041 - 44032: 0x9FC9, - 51042 - 44032: 0x9FCA, - 51043 - 44032: 0x9FCB, - 51044 - 44032: 0x9FCC, - 51045 - 44032: 0x9FCD, - 51046 - 44032: 0x9FCE, - 51047 - 44032: 0x9FCF, - 51048 - 44032: 0xC0CA, - 51049 - 44032: 0x9FD0, - 51050 - 44032: 0x9FD1, - 51051 - 44032: 0xC0CB, - 51052 - 44032: 0x9FD2, - 51053 - 44032: 0x9FD3, - 51054 - 44032: 0x9FD4, - 51055 - 44032: 0x9FD5, - 51056 - 44032: 0x9FD6, - 51057 - 44032: 0x9FD7, - 51058 - 44032: 0x9FD8, - 51059 - 44032: 0x9FD9, - 51060 - 44032: 0xC0CC, - 51061 - 44032: 0xC0CD, - 51062 - 44032: 0x9FDA, - 51063 - 44032: 0x9FDB, - 51064 - 44032: 0xC0CE, - 51065 - 44032: 0x9FDC, - 51066 - 44032: 0x9FDD, - 51067 - 44032: 0x9FDE, - 51068 - 44032: 0xC0CF, - 51069 - 44032: 0xC0D0, - 51070 - 44032: 0xC0D1, - 51071 - 44032: 0x9FDF, - 51072 - 44032: 0x9FE0, - 51073 - 44032: 0x9FE1, - 51074 - 44032: 0x9FE2, - 51075 - 44032: 0xC0D2, - 51076 - 44032: 0xC0D3, - 51077 - 44032: 0xC0D4, - 51078 - 44032: 0x9FE3, - 51079 - 44032: 0xC0D5, - 51080 - 44032: 0xC0D6, - 51081 - 44032: 0xC0D7, - 51082 - 44032: 0xC0D8, - 51083 - 44032: 0x9FE4, - 51084 - 44032: 0x9FE5, - 51085 - 44032: 0x9FE6, - 51086 - 44032: 0xC0D9, - 51087 - 44032: 0x9FE7, - 51088 - 44032: 0xC0DA, - 51089 - 44032: 0xC0DB, - 51090 - 44032: 0x9FE8, - 51091 - 44032: 0x9FE9, - 51092 - 44032: 0xC0DC, - 51093 - 44032: 0x9FEA, - 51094 - 44032: 0xC0DD, - 51095 - 44032: 0xC0DE, - 51096 - 44032: 0xC0DF, - 51097 - 44032: 0x9FEB, - 51098 - 44032: 0xC0E0, - 51099 - 44032: 0x9FEC, - 51100 - 44032: 0x9FED, - 51101 - 44032: 0x9FEE, - 51102 - 44032: 0x9FEF, - 51103 - 44032: 0x9FF0, - 51104 - 44032: 0xC0E1, - 51105 - 44032: 0xC0E2, - 51106 - 44032: 0x9FF1, - 51107 - 44032: 0xC0E3, - 51108 - 44032: 0xC0E4, - 51109 - 44032: 0xC0E5, - 51110 - 44032: 0xC0E6, - 51111 - 44032: 0x9FF2, - 51112 - 44032: 0x9FF3, - 51113 - 44032: 0x9FF4, - 51114 - 44032: 0x9FF5, - 51115 - 44032: 0x9FF6, - 51116 - 44032: 0xC0E7, - 51117 - 44032: 0xC0E8, - 51118 - 44032: 0x9FF7, - 51119 - 44032: 0x9FF8, - 51120 - 44032: 0xC0E9, - 51121 - 44032: 0x9FF9, - 51122 - 44032: 0x9FFA, - 51123 - 44032: 0x9FFB, - 51124 - 44032: 0xC0EA, - 51125 - 44032: 0x9FFC, - 51126 - 44032: 0x9FFD, - 51127 - 44032: 0x9FFE, - 51128 - 44032: 0xA041, - 51129 - 44032: 0xA042, - 51130 - 44032: 0xA043, - 51131 - 44032: 0xA044, - 51132 - 44032: 0xC0EB, - 51133 - 44032: 0xC0EC, - 51134 - 44032: 0xA045, - 51135 - 44032: 0xC0ED, - 51136 - 44032: 0xC0EE, - 51137 - 44032: 0xC0EF, - 51138 - 44032: 0xA046, - 51139 - 44032: 0xA047, - 51140 - 44032: 0xA048, - 51141 - 44032: 0xA049, - 51142 - 44032: 0xA04A, - 51143 - 44032: 0xA04B, - 51144 - 44032: 0xC0F0, - 51145 - 44032: 0xC0F1, - 51146 - 44032: 0xA04C, - 51147 - 44032: 0xA04D, - 51148 - 44032: 0xC0F2, - 51149 - 44032: 0xA04E, - 51150 - 44032: 0xC0F3, - 51151 - 44032: 0xA04F, - 51152 - 44032: 0xC0F4, - 51153 - 44032: 0xA050, - 51154 - 44032: 0xA051, - 51155 - 44032: 0xA052, - 51156 - 44032: 0xA053, - 51157 - 44032: 0xA054, - 51158 - 44032: 0xA055, - 51159 - 44032: 0xA056, - 51160 - 44032: 0xC0F5, - 51161 - 44032: 0xA057, - 51162 - 44032: 0xA058, - 51163 - 44032: 0xA059, - 51164 - 44032: 0xA05A, - 51165 - 44032: 0xC0F6, - 51166 - 44032: 0xA061, - 51167 - 44032: 0xA062, - 51168 - 44032: 0xA063, - 51169 - 44032: 0xA064, - 51170 - 44032: 0xA065, - 51171 - 44032: 0xA066, - 51172 - 44032: 0xC0F7, - 51173 - 44032: 0xA067, - 51174 - 44032: 0xA068, - 51175 - 44032: 0xA069, - 51176 - 44032: 0xC0F8, - 51177 - 44032: 0xA06A, - 51178 - 44032: 0xA06B, - 51179 - 44032: 0xA06C, - 51180 - 44032: 0xC0F9, - 51181 - 44032: 0xA06D, - 51182 - 44032: 0xA06E, - 51183 - 44032: 0xA06F, - 51184 - 44032: 0xA070, - 51185 - 44032: 0xA071, - 51186 - 44032: 0xA072, - 51187 - 44032: 0xA073, - 51188 - 44032: 0xA074, - 51189 - 44032: 0xA075, - 51190 - 44032: 0xA076, - 51191 - 44032: 0xA077, - 51192 - 44032: 0xA078, - 51193 - 44032: 0xA079, - 51194 - 44032: 0xA07A, - 51195 - 44032: 0xA081, - 51196 - 44032: 0xA082, - 51197 - 44032: 0xA083, - 51198 - 44032: 0xA084, - 51199 - 44032: 0xA085, - 51200 - 44032: 0xC0FA, - 51201 - 44032: 0xC0FB, - 51202 - 44032: 0xA086, - 51203 - 44032: 0xA087, - 51204 - 44032: 0xC0FC, - 51205 - 44032: 0xA088, - 51206 - 44032: 0xA089, - 51207 - 44032: 0xA08A, - 51208 - 44032: 0xC0FD, - 51209 - 44032: 0xA08B, - 51210 - 44032: 0xC0FE, - 51211 - 44032: 0xA08C, - 51212 - 44032: 0xA08D, - 51213 - 44032: 0xA08E, - 51214 - 44032: 0xA08F, - 51215 - 44032: 0xA090, - 51216 - 44032: 0xC1A1, - 51217 - 44032: 0xC1A2, - 51218 - 44032: 0xA091, - 51219 - 44032: 0xC1A3, - 51220 - 44032: 0xA092, - 51221 - 44032: 0xC1A4, - 51222 - 44032: 0xC1A5, - 51223 - 44032: 0xA093, - 51224 - 44032: 0xA094, - 51225 - 44032: 0xA095, - 51226 - 44032: 0xA096, - 51227 - 44032: 0xA097, - 51228 - 44032: 0xC1A6, - 51229 - 44032: 0xC1A7, - 51230 - 44032: 0xA098, - 51231 - 44032: 0xA099, - 51232 - 44032: 0xC1A8, - 51233 - 44032: 0xA09A, - 51234 - 44032: 0xA09B, - 51235 - 44032: 0xA09C, - 51236 - 44032: 0xC1A9, - 51237 - 44032: 0xA09D, - 51238 - 44032: 0xA09E, - 51239 - 44032: 0xA09F, - 51240 - 44032: 0xA0A0, - 51241 - 44032: 0xA0A1, - 51242 - 44032: 0xA0A2, - 51243 - 44032: 0xA0A3, - 51244 - 44032: 0xC1AA, - 51245 - 44032: 0xC1AB, - 51246 - 44032: 0xA0A4, - 51247 - 44032: 0xC1AC, - 51248 - 44032: 0xA0A5, - 51249 - 44032: 0xC1AD, - 51250 - 44032: 0xA0A6, - 51251 - 44032: 0xA0A7, - 51252 - 44032: 0xA0A8, - 51253 - 44032: 0xA0A9, - 51254 - 44032: 0xA0AA, - 51255 - 44032: 0xA0AB, - 51256 - 44032: 0xC1AE, - 51257 - 44032: 0xA0AC, - 51258 - 44032: 0xA0AD, - 51259 - 44032: 0xA0AE, - 51260 - 44032: 0xC1AF, - 51261 - 44032: 0xA0AF, - 51262 - 44032: 0xA0B0, - 51263 - 44032: 0xA0B1, - 51264 - 44032: 0xC1B0, - 51265 - 44032: 0xA0B2, - 51266 - 44032: 0xA0B3, - 51267 - 44032: 0xA0B4, - 51268 - 44032: 0xA0B5, - 51269 - 44032: 0xA0B6, - 51270 - 44032: 0xA0B7, - 51271 - 44032: 0xA0B8, - 51272 - 44032: 0xC1B1, - 51273 - 44032: 0xC1B2, - 51274 - 44032: 0xA0B9, - 51275 - 44032: 0xA0BA, - 51276 - 44032: 0xC1B3, - 51277 - 44032: 0xC1B4, - 51278 - 44032: 0xA0BB, - 51279 - 44032: 0xA0BC, - 51280 - 44032: 0xA0BD, - 51281 - 44032: 0xA0BE, - 51282 - 44032: 0xA0BF, - 51283 - 44032: 0xA0C0, - 51284 - 44032: 0xC1B5, - 51285 - 44032: 0xA0C1, - 51286 - 44032: 0xA0C2, - 51287 - 44032: 0xA0C3, - 51288 - 44032: 0xA0C4, - 51289 - 44032: 0xA0C5, - 51290 - 44032: 0xA0C6, - 51291 - 44032: 0xA0C7, - 51292 - 44032: 0xA0C8, - 51293 - 44032: 0xA0C9, - 51294 - 44032: 0xA0CA, - 51295 - 44032: 0xA0CB, - 51296 - 44032: 0xA0CC, - 51297 - 44032: 0xA0CD, - 51298 - 44032: 0xA0CE, - 51299 - 44032: 0xA0CF, - 51300 - 44032: 0xA0D0, - 51301 - 44032: 0xA0D1, - 51302 - 44032: 0xA0D2, - 51303 - 44032: 0xA0D3, - 51304 - 44032: 0xA0D4, - 51305 - 44032: 0xA0D5, - 51306 - 44032: 0xA0D6, - 51307 - 44032: 0xA0D7, - 51308 - 44032: 0xA0D8, - 51309 - 44032: 0xA0D9, - 51310 - 44032: 0xA0DA, - 51311 - 44032: 0xA0DB, - 51312 - 44032: 0xC1B6, - 51313 - 44032: 0xC1B7, - 51314 - 44032: 0xA0DC, - 51315 - 44032: 0xA0DD, - 51316 - 44032: 0xC1B8, - 51317 - 44032: 0xA0DE, - 51318 - 44032: 0xA0DF, - 51319 - 44032: 0xA0E0, - 51320 - 44032: 0xC1B9, - 51321 - 44032: 0xA0E1, - 51322 - 44032: 0xC1BA, - 51323 - 44032: 0xA0E2, - 51324 - 44032: 0xA0E3, - 51325 - 44032: 0xA0E4, - 51326 - 44032: 0xA0E5, - 51327 - 44032: 0xA0E6, - 51328 - 44032: 0xC1BB, - 51329 - 44032: 0xC1BC, - 51330 - 44032: 0xA0E7, - 51331 - 44032: 0xC1BD, - 51332 - 44032: 0xA0E8, - 51333 - 44032: 0xC1BE, - 51334 - 44032: 0xC1BF, - 51335 - 44032: 0xC1C0, - 51336 - 44032: 0xA0E9, - 51337 - 44032: 0xA0EA, - 51338 - 44032: 0xA0EB, - 51339 - 44032: 0xC1C1, - 51340 - 44032: 0xC1C2, - 51341 - 44032: 0xC1C3, - 51342 - 44032: 0xA0EC, - 51343 - 44032: 0xA0ED, - 51344 - 44032: 0xA0EE, - 51345 - 44032: 0xA0EF, - 51346 - 44032: 0xA0F0, - 51347 - 44032: 0xA0F1, - 51348 - 44032: 0xC1C4, - 51349 - 44032: 0xA0F2, - 51350 - 44032: 0xA0F3, - 51351 - 44032: 0xA0F4, - 51352 - 44032: 0xA0F5, - 51353 - 44032: 0xA0F6, - 51354 - 44032: 0xA0F7, - 51355 - 44032: 0xA0F8, - 51356 - 44032: 0xA0F9, - 51357 - 44032: 0xC1C5, - 51358 - 44032: 0xA0FA, - 51359 - 44032: 0xC1C6, - 51360 - 44032: 0xA0FB, - 51361 - 44032: 0xC1C7, - 51362 - 44032: 0xA0FC, - 51363 - 44032: 0xA0FD, - 51364 - 44032: 0xA0FE, - 51365 - 44032: 0xA141, - 51366 - 44032: 0xA142, - 51367 - 44032: 0xA143, - 51368 - 44032: 0xC1C8, - 51369 - 44032: 0xA144, - 51370 - 44032: 0xA145, - 51371 - 44032: 0xA146, - 51372 - 44032: 0xA147, - 51373 - 44032: 0xA148, - 51374 - 44032: 0xA149, - 51375 - 44032: 0xA14A, - 51376 - 44032: 0xA14B, - 51377 - 44032: 0xA14C, - 51378 - 44032: 0xA14D, - 51379 - 44032: 0xA14E, - 51380 - 44032: 0xA14F, - 51381 - 44032: 0xA150, - 51382 - 44032: 0xA151, - 51383 - 44032: 0xA152, - 51384 - 44032: 0xA153, - 51385 - 44032: 0xA154, - 51386 - 44032: 0xA155, - 51387 - 44032: 0xA156, - 51388 - 44032: 0xC1C9, - 51389 - 44032: 0xC1CA, - 51390 - 44032: 0xA157, - 51391 - 44032: 0xA158, - 51392 - 44032: 0xA159, - 51393 - 44032: 0xA15A, - 51394 - 44032: 0xA161, - 51395 - 44032: 0xA162, - 51396 - 44032: 0xC1CB, - 51397 - 44032: 0xA163, - 51398 - 44032: 0xA164, - 51399 - 44032: 0xA165, - 51400 - 44032: 0xC1CC, - 51401 - 44032: 0xA166, - 51402 - 44032: 0xA167, - 51403 - 44032: 0xA168, - 51404 - 44032: 0xC1CD, - 51405 - 44032: 0xA169, - 51406 - 44032: 0xA16A, - 51407 - 44032: 0xA16B, - 51408 - 44032: 0xA16C, - 51409 - 44032: 0xA16D, - 51410 - 44032: 0xA16E, - 51411 - 44032: 0xA16F, - 51412 - 44032: 0xC1CE, - 51413 - 44032: 0xC1CF, - 51414 - 44032: 0xA170, - 51415 - 44032: 0xC1D0, - 51416 - 44032: 0xA171, - 51417 - 44032: 0xC1D1, - 51418 - 44032: 0xA172, - 51419 - 44032: 0xA173, - 51420 - 44032: 0xA174, - 51421 - 44032: 0xA175, - 51422 - 44032: 0xA176, - 51423 - 44032: 0xA177, - 51424 - 44032: 0xC1D2, - 51425 - 44032: 0xC1D3, - 51426 - 44032: 0xA178, - 51427 - 44032: 0xA179, - 51428 - 44032: 0xC1D4, - 51429 - 44032: 0xA17A, - 51430 - 44032: 0xA181, - 51431 - 44032: 0xA182, - 51432 - 44032: 0xA183, - 51433 - 44032: 0xA184, - 51434 - 44032: 0xA185, - 51435 - 44032: 0xA186, - 51436 - 44032: 0xA187, - 51437 - 44032: 0xA188, - 51438 - 44032: 0xA189, - 51439 - 44032: 0xA18A, - 51440 - 44032: 0xA18B, - 51441 - 44032: 0xA18C, - 51442 - 44032: 0xA18D, - 51443 - 44032: 0xA18E, - 51444 - 44032: 0xA18F, - 51445 - 44032: 0xC1D5, - 51446 - 44032: 0xA190, - 51447 - 44032: 0xA191, - 51448 - 44032: 0xA192, - 51449 - 44032: 0xA193, - 51450 - 44032: 0xA194, - 51451 - 44032: 0xA195, - 51452 - 44032: 0xC1D6, - 51453 - 44032: 0xC1D7, - 51454 - 44032: 0xA196, - 51455 - 44032: 0xA197, - 51456 - 44032: 0xC1D8, - 51457 - 44032: 0xA198, - 51458 - 44032: 0xA199, - 51459 - 44032: 0xA19A, - 51460 - 44032: 0xC1D9, - 51461 - 44032: 0xC1DA, - 51462 - 44032: 0xC1DB, - 51463 - 44032: 0xA19B, - 51464 - 44032: 0xA19C, - 51465 - 44032: 0xA19D, - 51466 - 44032: 0xA19E, - 51467 - 44032: 0xA19F, - 51468 - 44032: 0xC1DC, - 51469 - 44032: 0xC1DD, - 51470 - 44032: 0xA1A0, - 51471 - 44032: 0xC1DE, - 51472 - 44032: 0xA241, - 51473 - 44032: 0xC1DF, - 51474 - 44032: 0xA242, - 51475 - 44032: 0xA243, - 51476 - 44032: 0xA244, - 51477 - 44032: 0xA245, - 51478 - 44032: 0xA246, - 51479 - 44032: 0xA247, - 51480 - 44032: 0xC1E0, - 51481 - 44032: 0xA248, - 51482 - 44032: 0xA249, - 51483 - 44032: 0xA24A, - 51484 - 44032: 0xA24B, - 51485 - 44032: 0xA24C, - 51486 - 44032: 0xA24D, - 51487 - 44032: 0xA24E, - 51488 - 44032: 0xA24F, - 51489 - 44032: 0xA250, - 51490 - 44032: 0xA251, - 51491 - 44032: 0xA252, - 51492 - 44032: 0xA253, - 51493 - 44032: 0xA254, - 51494 - 44032: 0xA255, - 51495 - 44032: 0xA256, - 51496 - 44032: 0xA257, - 51497 - 44032: 0xA258, - 51498 - 44032: 0xA259, - 51499 - 44032: 0xA25A, - 51500 - 44032: 0xC1E1, - 51501 - 44032: 0xA261, - 51502 - 44032: 0xA262, - 51503 - 44032: 0xA263, - 51504 - 44032: 0xA264, - 51505 - 44032: 0xA265, - 51506 - 44032: 0xA266, - 51507 - 44032: 0xA267, - 51508 - 44032: 0xC1E2, - 51509 - 44032: 0xA268, - 51510 - 44032: 0xA269, - 51511 - 44032: 0xA26A, - 51512 - 44032: 0xA26B, - 51513 - 44032: 0xA26C, - 51514 - 44032: 0xA26D, - 51515 - 44032: 0xA26E, - 51516 - 44032: 0xA26F, - 51517 - 44032: 0xA270, - 51518 - 44032: 0xA271, - 51519 - 44032: 0xA272, - 51520 - 44032: 0xA273, - 51521 - 44032: 0xA274, - 51522 - 44032: 0xA275, - 51523 - 44032: 0xA276, - 51524 - 44032: 0xA277, - 51525 - 44032: 0xA278, - 51526 - 44032: 0xA279, - 51527 - 44032: 0xA27A, - 51528 - 44032: 0xA281, - 51529 - 44032: 0xA282, - 51530 - 44032: 0xA283, - 51531 - 44032: 0xA284, - 51532 - 44032: 0xA285, - 51533 - 44032: 0xA286, - 51534 - 44032: 0xA287, - 51535 - 44032: 0xA288, - 51536 - 44032: 0xC1E3, - 51537 - 44032: 0xC1E4, - 51538 - 44032: 0xA289, - 51539 - 44032: 0xA28A, - 51540 - 44032: 0xC1E5, - 51541 - 44032: 0xA28B, - 51542 - 44032: 0xA28C, - 51543 - 44032: 0xA28D, - 51544 - 44032: 0xC1E6, - 51545 - 44032: 0xA28E, - 51546 - 44032: 0xA28F, - 51547 - 44032: 0xA290, - 51548 - 44032: 0xA291, - 51549 - 44032: 0xA292, - 51550 - 44032: 0xA293, - 51551 - 44032: 0xA294, - 51552 - 44032: 0xC1E7, - 51553 - 44032: 0xC1E8, - 51554 - 44032: 0xA295, - 51555 - 44032: 0xC1E9, - 51556 - 44032: 0xA296, - 51557 - 44032: 0xA297, - 51558 - 44032: 0xA298, - 51559 - 44032: 0xA299, - 51560 - 44032: 0xA29A, - 51561 - 44032: 0xA29B, - 51562 - 44032: 0xA29C, - 51563 - 44032: 0xA29D, - 51564 - 44032: 0xC1EA, - 51565 - 44032: 0xA29E, - 51566 - 44032: 0xA29F, - 51567 - 44032: 0xA2A0, - 51568 - 44032: 0xC1EB, - 51569 - 44032: 0xA341, - 51570 - 44032: 0xA342, - 51571 - 44032: 0xA343, - 51572 - 44032: 0xC1EC, - 51573 - 44032: 0xA344, - 51574 - 44032: 0xA345, - 51575 - 44032: 0xA346, - 51576 - 44032: 0xA347, - 51577 - 44032: 0xA348, - 51578 - 44032: 0xA349, - 51579 - 44032: 0xA34A, - 51580 - 44032: 0xC1ED, - 51581 - 44032: 0xA34B, - 51582 - 44032: 0xA34C, - 51583 - 44032: 0xA34D, - 51584 - 44032: 0xA34E, - 51585 - 44032: 0xA34F, - 51586 - 44032: 0xA350, - 51587 - 44032: 0xA351, - 51588 - 44032: 0xA352, - 51589 - 44032: 0xA353, - 51590 - 44032: 0xA354, - 51591 - 44032: 0xA355, - 51592 - 44032: 0xC1EE, - 51593 - 44032: 0xC1EF, - 51594 - 44032: 0xA356, - 51595 - 44032: 0xA357, - 51596 - 44032: 0xC1F0, - 51597 - 44032: 0xA358, - 51598 - 44032: 0xA359, - 51599 - 44032: 0xA35A, - 51600 - 44032: 0xC1F1, - 51601 - 44032: 0xA361, - 51602 - 44032: 0xA362, - 51603 - 44032: 0xA363, - 51604 - 44032: 0xA364, - 51605 - 44032: 0xA365, - 51606 - 44032: 0xA366, - 51607 - 44032: 0xA367, - 51608 - 44032: 0xC1F2, - 51609 - 44032: 0xC1F3, - 51610 - 44032: 0xA368, - 51611 - 44032: 0xC1F4, - 51612 - 44032: 0xA369, - 51613 - 44032: 0xC1F5, - 51614 - 44032: 0xA36A, - 51615 - 44032: 0xA36B, - 51616 - 44032: 0xA36C, - 51617 - 44032: 0xA36D, - 51618 - 44032: 0xA36E, - 51619 - 44032: 0xA36F, - 51620 - 44032: 0xA370, - 51621 - 44032: 0xA371, - 51622 - 44032: 0xA372, - 51623 - 44032: 0xA373, - 51624 - 44032: 0xA374, - 51625 - 44032: 0xA375, - 51626 - 44032: 0xA376, - 51627 - 44032: 0xA377, - 51628 - 44032: 0xA378, - 51629 - 44032: 0xA379, - 51630 - 44032: 0xA37A, - 51631 - 44032: 0xA381, - 51632 - 44032: 0xA382, - 51633 - 44032: 0xA383, - 51634 - 44032: 0xA384, - 51635 - 44032: 0xA385, - 51636 - 44032: 0xA386, - 51637 - 44032: 0xA387, - 51638 - 44032: 0xA388, - 51639 - 44032: 0xA389, - 51640 - 44032: 0xA38A, - 51641 - 44032: 0xA38B, - 51642 - 44032: 0xA38C, - 51643 - 44032: 0xA38D, - 51644 - 44032: 0xA38E, - 51645 - 44032: 0xA38F, - 51646 - 44032: 0xA390, - 51647 - 44032: 0xA391, - 51648 - 44032: 0xC1F6, - 51649 - 44032: 0xC1F7, - 51650 - 44032: 0xA392, - 51651 - 44032: 0xA393, - 51652 - 44032: 0xC1F8, - 51653 - 44032: 0xA394, - 51654 - 44032: 0xA395, - 51655 - 44032: 0xC1F9, - 51656 - 44032: 0xC1FA, - 51657 - 44032: 0xA396, - 51658 - 44032: 0xC1FB, - 51659 - 44032: 0xA397, - 51660 - 44032: 0xA398, - 51661 - 44032: 0xA399, - 51662 - 44032: 0xA39A, - 51663 - 44032: 0xA39B, - 51664 - 44032: 0xC1FC, - 51665 - 44032: 0xC1FD, - 51666 - 44032: 0xA39C, - 51667 - 44032: 0xC1FE, - 51668 - 44032: 0xA39D, - 51669 - 44032: 0xC2A1, - 51670 - 44032: 0xC2A2, - 51671 - 44032: 0xA39E, - 51672 - 44032: 0xA39F, - 51673 - 44032: 0xC2A3, - 51674 - 44032: 0xC2A4, - 51675 - 44032: 0xA3A0, - 51676 - 44032: 0xC2A5, - 51677 - 44032: 0xC2A6, - 51678 - 44032: 0xA441, - 51679 - 44032: 0xA442, - 51680 - 44032: 0xC2A7, - 51681 - 44032: 0xA443, - 51682 - 44032: 0xC2A8, - 51683 - 44032: 0xA444, - 51684 - 44032: 0xC2A9, - 51685 - 44032: 0xA445, - 51686 - 44032: 0xA446, - 51687 - 44032: 0xC2AA, - 51688 - 44032: 0xA447, - 51689 - 44032: 0xA448, - 51690 - 44032: 0xA449, - 51691 - 44032: 0xA44A, - 51692 - 44032: 0xC2AB, - 51693 - 44032: 0xC2AC, - 51694 - 44032: 0xA44B, - 51695 - 44032: 0xC2AD, - 51696 - 44032: 0xC2AE, - 51697 - 44032: 0xC2AF, - 51698 - 44032: 0xA44C, - 51699 - 44032: 0xA44D, - 51700 - 44032: 0xA44E, - 51701 - 44032: 0xA44F, - 51702 - 44032: 0xA450, - 51703 - 44032: 0xA451, - 51704 - 44032: 0xC2B0, - 51705 - 44032: 0xC2B1, - 51706 - 44032: 0xA452, - 51707 - 44032: 0xA453, - 51708 - 44032: 0xC2B2, - 51709 - 44032: 0xA454, - 51710 - 44032: 0xA455, - 51711 - 44032: 0xA456, - 51712 - 44032: 0xC2B3, - 51713 - 44032: 0xA457, - 51714 - 44032: 0xA458, - 51715 - 44032: 0xA459, - 51716 - 44032: 0xA45A, - 51717 - 44032: 0xA461, - 51718 - 44032: 0xA462, - 51719 - 44032: 0xA463, - 51720 - 44032: 0xC2B4, - 51721 - 44032: 0xC2B5, - 51722 - 44032: 0xA464, - 51723 - 44032: 0xC2B6, - 51724 - 44032: 0xC2B7, - 51725 - 44032: 0xC2B8, - 51726 - 44032: 0xA465, - 51727 - 44032: 0xA466, - 51728 - 44032: 0xA467, - 51729 - 44032: 0xA468, - 51730 - 44032: 0xA469, - 51731 - 44032: 0xA46A, - 51732 - 44032: 0xC2B9, - 51733 - 44032: 0xA46B, - 51734 - 44032: 0xA46C, - 51735 - 44032: 0xA46D, - 51736 - 44032: 0xC2BA, - 51737 - 44032: 0xA46E, - 51738 - 44032: 0xA46F, - 51739 - 44032: 0xA470, - 51740 - 44032: 0xA471, - 51741 - 44032: 0xA472, - 51742 - 44032: 0xA473, - 51743 - 44032: 0xA474, - 51744 - 44032: 0xA475, - 51745 - 44032: 0xA476, - 51746 - 44032: 0xA477, - 51747 - 44032: 0xA478, - 51748 - 44032: 0xA479, - 51749 - 44032: 0xA47A, - 51750 - 44032: 0xA481, - 51751 - 44032: 0xA482, - 51752 - 44032: 0xA483, - 51753 - 44032: 0xC2BB, - 51754 - 44032: 0xA484, - 51755 - 44032: 0xA485, - 51756 - 44032: 0xA486, - 51757 - 44032: 0xA487, - 51758 - 44032: 0xA488, - 51759 - 44032: 0xA489, - 51760 - 44032: 0xA48A, - 51761 - 44032: 0xA48B, - 51762 - 44032: 0xA48C, - 51763 - 44032: 0xA48D, - 51764 - 44032: 0xA48E, - 51765 - 44032: 0xA48F, - 51766 - 44032: 0xA490, - 51767 - 44032: 0xA491, - 51768 - 44032: 0xA492, - 51769 - 44032: 0xA493, - 51770 - 44032: 0xA494, - 51771 - 44032: 0xA495, - 51772 - 44032: 0xA496, - 51773 - 44032: 0xA497, - 51774 - 44032: 0xA498, - 51775 - 44032: 0xA499, - 51776 - 44032: 0xA49A, - 51777 - 44032: 0xA49B, - 51778 - 44032: 0xA49C, - 51779 - 44032: 0xA49D, - 51780 - 44032: 0xA49E, - 51781 - 44032: 0xA49F, - 51782 - 44032: 0xA4A0, - 51783 - 44032: 0xA541, - 51784 - 44032: 0xA542, - 51785 - 44032: 0xA543, - 51786 - 44032: 0xA544, - 51787 - 44032: 0xA545, - 51788 - 44032: 0xC2BC, - 51789 - 44032: 0xC2BD, - 51790 - 44032: 0xA546, - 51791 - 44032: 0xA547, - 51792 - 44032: 0xC2BE, - 51793 - 44032: 0xA548, - 51794 - 44032: 0xA549, - 51795 - 44032: 0xA54A, - 51796 - 44032: 0xC2BF, - 51797 - 44032: 0xA54B, - 51798 - 44032: 0xA54C, - 51799 - 44032: 0xA54D, - 51800 - 44032: 0xA54E, - 51801 - 44032: 0xA54F, - 51802 - 44032: 0xA550, - 51803 - 44032: 0xA551, - 51804 - 44032: 0xC2C0, - 51805 - 44032: 0xC2C1, - 51806 - 44032: 0xA552, - 51807 - 44032: 0xC2C2, - 51808 - 44032: 0xC2C3, - 51809 - 44032: 0xC2C4, - 51810 - 44032: 0xA553, - 51811 - 44032: 0xA554, - 51812 - 44032: 0xA555, - 51813 - 44032: 0xA556, - 51814 - 44032: 0xA557, - 51815 - 44032: 0xA558, - 51816 - 44032: 0xC2C5, - 51817 - 44032: 0xA559, - 51818 - 44032: 0xA55A, - 51819 - 44032: 0xA561, - 51820 - 44032: 0xA562, - 51821 - 44032: 0xA563, - 51822 - 44032: 0xA564, - 51823 - 44032: 0xA565, - 51824 - 44032: 0xA566, - 51825 - 44032: 0xA567, - 51826 - 44032: 0xA568, - 51827 - 44032: 0xA569, - 51828 - 44032: 0xA56A, - 51829 - 44032: 0xA56B, - 51830 - 44032: 0xA56C, - 51831 - 44032: 0xA56D, - 51832 - 44032: 0xA56E, - 51833 - 44032: 0xA56F, - 51834 - 44032: 0xA570, - 51835 - 44032: 0xA571, - 51836 - 44032: 0xA572, - 51837 - 44032: 0xC2C6, - 51838 - 44032: 0xA573, - 51839 - 44032: 0xA574, - 51840 - 44032: 0xA575, - 51841 - 44032: 0xA576, - 51842 - 44032: 0xA577, - 51843 - 44032: 0xA578, - 51844 - 44032: 0xC2C7, - 51845 - 44032: 0xA579, - 51846 - 44032: 0xA57A, - 51847 - 44032: 0xA581, - 51848 - 44032: 0xA582, - 51849 - 44032: 0xA583, - 51850 - 44032: 0xA584, - 51851 - 44032: 0xA585, - 51852 - 44032: 0xA586, - 51853 - 44032: 0xA587, - 51854 - 44032: 0xA588, - 51855 - 44032: 0xA589, - 51856 - 44032: 0xA58A, - 51857 - 44032: 0xA58B, - 51858 - 44032: 0xA58C, - 51859 - 44032: 0xA58D, - 51860 - 44032: 0xA58E, - 51861 - 44032: 0xA58F, - 51862 - 44032: 0xA590, - 51863 - 44032: 0xA591, - 51864 - 44032: 0xC2C8, - 51865 - 44032: 0xA592, - 51866 - 44032: 0xA593, - 51867 - 44032: 0xA594, - 51868 - 44032: 0xA595, - 51869 - 44032: 0xA596, - 51870 - 44032: 0xA597, - 51871 - 44032: 0xA598, - 51872 - 44032: 0xA599, - 51873 - 44032: 0xA59A, - 51874 - 44032: 0xA59B, - 51875 - 44032: 0xA59C, - 51876 - 44032: 0xA59D, - 51877 - 44032: 0xA59E, - 51878 - 44032: 0xA59F, - 51879 - 44032: 0xA5A0, - 51880 - 44032: 0xA641, - 51881 - 44032: 0xA642, - 51882 - 44032: 0xA643, - 51883 - 44032: 0xA644, - 51884 - 44032: 0xA645, - 51885 - 44032: 0xA646, - 51886 - 44032: 0xA647, - 51887 - 44032: 0xA648, - 51888 - 44032: 0xA649, - 51889 - 44032: 0xA64A, - 51890 - 44032: 0xA64B, - 51891 - 44032: 0xA64C, - 51892 - 44032: 0xA64D, - 51893 - 44032: 0xA64E, - 51894 - 44032: 0xA64F, - 51895 - 44032: 0xA650, - 51896 - 44032: 0xA651, - 51897 - 44032: 0xA652, - 51898 - 44032: 0xA653, - 51899 - 44032: 0xA654, - 51900 - 44032: 0xC2C9, - 51901 - 44032: 0xC2CA, - 51902 - 44032: 0xA655, - 51903 - 44032: 0xA656, - 51904 - 44032: 0xC2CB, - 51905 - 44032: 0xA657, - 51906 - 44032: 0xA658, - 51907 - 44032: 0xA659, - 51908 - 44032: 0xC2CC, - 51909 - 44032: 0xA65A, - 51910 - 44032: 0xA661, - 51911 - 44032: 0xA662, - 51912 - 44032: 0xA663, - 51913 - 44032: 0xA664, - 51914 - 44032: 0xA665, - 51915 - 44032: 0xA666, - 51916 - 44032: 0xC2CD, - 51917 - 44032: 0xC2CE, - 51918 - 44032: 0xA667, - 51919 - 44032: 0xC2CF, - 51920 - 44032: 0xA668, - 51921 - 44032: 0xC2D0, - 51922 - 44032: 0xA669, - 51923 - 44032: 0xC2D1, - 51924 - 44032: 0xA66A, - 51925 - 44032: 0xA66B, - 51926 - 44032: 0xA66C, - 51927 - 44032: 0xA66D, - 51928 - 44032: 0xC2D2, - 51929 - 44032: 0xC2D3, - 51930 - 44032: 0xA66E, - 51931 - 44032: 0xA66F, - 51932 - 44032: 0xA670, - 51933 - 44032: 0xA671, - 51934 - 44032: 0xA672, - 51935 - 44032: 0xA673, - 51936 - 44032: 0xC2D4, - 51937 - 44032: 0xA674, - 51938 - 44032: 0xA675, - 51939 - 44032: 0xA676, - 51940 - 44032: 0xA677, - 51941 - 44032: 0xA678, - 51942 - 44032: 0xA679, - 51943 - 44032: 0xA67A, - 51944 - 44032: 0xA681, - 51945 - 44032: 0xA682, - 51946 - 44032: 0xA683, - 51947 - 44032: 0xA684, - 51948 - 44032: 0xC2D5, - 51949 - 44032: 0xA685, - 51950 - 44032: 0xA686, - 51951 - 44032: 0xA687, - 51952 - 44032: 0xA688, - 51953 - 44032: 0xA689, - 51954 - 44032: 0xA68A, - 51955 - 44032: 0xA68B, - 51956 - 44032: 0xC2D6, - 51957 - 44032: 0xA68C, - 51958 - 44032: 0xA68D, - 51959 - 44032: 0xA68E, - 51960 - 44032: 0xA68F, - 51961 - 44032: 0xA690, - 51962 - 44032: 0xA691, - 51963 - 44032: 0xA692, - 51964 - 44032: 0xA693, - 51965 - 44032: 0xA694, - 51966 - 44032: 0xA695, - 51967 - 44032: 0xA696, - 51968 - 44032: 0xA697, - 51969 - 44032: 0xA698, - 51970 - 44032: 0xA699, - 51971 - 44032: 0xA69A, - 51972 - 44032: 0xA69B, - 51973 - 44032: 0xA69C, - 51974 - 44032: 0xA69D, - 51975 - 44032: 0xA69E, - 51976 - 44032: 0xC2D7, - 51977 - 44032: 0xA69F, - 51978 - 44032: 0xA6A0, - 51979 - 44032: 0xA741, - 51980 - 44032: 0xA742, - 51981 - 44032: 0xA743, - 51982 - 44032: 0xA744, - 51983 - 44032: 0xA745, - 51984 - 44032: 0xC2D8, - 51985 - 44032: 0xA746, - 51986 - 44032: 0xA747, - 51987 - 44032: 0xA748, - 51988 - 44032: 0xC2D9, - 51989 - 44032: 0xA749, - 51990 - 44032: 0xA74A, - 51991 - 44032: 0xA74B, - 51992 - 44032: 0xC2DA, - 51993 - 44032: 0xA74C, - 51994 - 44032: 0xA74D, - 51995 - 44032: 0xA74E, - 51996 - 44032: 0xA74F, - 51997 - 44032: 0xA750, - 51998 - 44032: 0xA751, - 51999 - 44032: 0xA752, - 52000 - 44032: 0xC2DB, - 52001 - 44032: 0xC2DC, - 52002 - 44032: 0xA753, - 52003 - 44032: 0xA754, - 52004 - 44032: 0xA755, - 52005 - 44032: 0xA756, - 52006 - 44032: 0xA757, - 52007 - 44032: 0xA758, - 52008 - 44032: 0xA759, - 52009 - 44032: 0xA75A, - 52010 - 44032: 0xA761, - 52011 - 44032: 0xA762, - 52012 - 44032: 0xA763, - 52013 - 44032: 0xA764, - 52014 - 44032: 0xA765, - 52015 - 44032: 0xA766, - 52016 - 44032: 0xA767, - 52017 - 44032: 0xA768, - 52018 - 44032: 0xA769, - 52019 - 44032: 0xA76A, - 52020 - 44032: 0xA76B, - 52021 - 44032: 0xA76C, - 52022 - 44032: 0xA76D, - 52023 - 44032: 0xA76E, - 52024 - 44032: 0xA76F, - 52025 - 44032: 0xA770, - 52026 - 44032: 0xA771, - 52027 - 44032: 0xA772, - 52028 - 44032: 0xA773, - 52029 - 44032: 0xA774, - 52030 - 44032: 0xA775, - 52031 - 44032: 0xA776, - 52032 - 44032: 0xA777, - 52033 - 44032: 0xC2DD, - 52034 - 44032: 0xA778, - 52035 - 44032: 0xA779, - 52036 - 44032: 0xA77A, - 52037 - 44032: 0xA781, - 52038 - 44032: 0xA782, - 52039 - 44032: 0xA783, - 52040 - 44032: 0xC2DE, - 52041 - 44032: 0xC2DF, - 52042 - 44032: 0xA784, - 52043 - 44032: 0xA785, - 52044 - 44032: 0xC2E0, - 52045 - 44032: 0xA786, - 52046 - 44032: 0xA787, - 52047 - 44032: 0xA788, - 52048 - 44032: 0xC2E1, - 52049 - 44032: 0xA789, - 52050 - 44032: 0xA78A, - 52051 - 44032: 0xA78B, - 52052 - 44032: 0xA78C, - 52053 - 44032: 0xA78D, - 52054 - 44032: 0xA78E, - 52055 - 44032: 0xA78F, - 52056 - 44032: 0xC2E2, - 52057 - 44032: 0xC2E3, - 52058 - 44032: 0xA790, - 52059 - 44032: 0xA791, - 52060 - 44032: 0xA792, - 52061 - 44032: 0xC2E4, - 52062 - 44032: 0xA793, - 52063 - 44032: 0xA794, - 52064 - 44032: 0xA795, - 52065 - 44032: 0xA796, - 52066 - 44032: 0xA797, - 52067 - 44032: 0xA798, - 52068 - 44032: 0xC2E5, - 52069 - 44032: 0xA799, - 52070 - 44032: 0xA79A, - 52071 - 44032: 0xA79B, - 52072 - 44032: 0xA79C, - 52073 - 44032: 0xA79D, - 52074 - 44032: 0xA79E, - 52075 - 44032: 0xA79F, - 52076 - 44032: 0xA7A0, - 52077 - 44032: 0xA841, - 52078 - 44032: 0xA842, - 52079 - 44032: 0xA843, - 52080 - 44032: 0xA844, - 52081 - 44032: 0xA845, - 52082 - 44032: 0xA846, - 52083 - 44032: 0xA847, - 52084 - 44032: 0xA848, - 52085 - 44032: 0xA849, - 52086 - 44032: 0xA84A, - 52087 - 44032: 0xA84B, - 52088 - 44032: 0xC2E6, - 52089 - 44032: 0xC2E7, - 52090 - 44032: 0xA84C, - 52091 - 44032: 0xA84D, - 52092 - 44032: 0xA84E, - 52093 - 44032: 0xA84F, - 52094 - 44032: 0xA850, - 52095 - 44032: 0xA851, - 52096 - 44032: 0xA852, - 52097 - 44032: 0xA853, - 52098 - 44032: 0xA854, - 52099 - 44032: 0xA855, - 52100 - 44032: 0xA856, - 52101 - 44032: 0xA857, - 52102 - 44032: 0xA858, - 52103 - 44032: 0xA859, - 52104 - 44032: 0xA85A, - 52105 - 44032: 0xA861, - 52106 - 44032: 0xA862, - 52107 - 44032: 0xA863, - 52108 - 44032: 0xA864, - 52109 - 44032: 0xA865, - 52110 - 44032: 0xA866, - 52111 - 44032: 0xA867, - 52112 - 44032: 0xA868, - 52113 - 44032: 0xA869, - 52114 - 44032: 0xA86A, - 52115 - 44032: 0xA86B, - 52116 - 44032: 0xA86C, - 52117 - 44032: 0xA86D, - 52118 - 44032: 0xA86E, - 52119 - 44032: 0xA86F, - 52120 - 44032: 0xA870, - 52121 - 44032: 0xA871, - 52122 - 44032: 0xA872, - 52123 - 44032: 0xA873, - 52124 - 44032: 0xC2E8, - 52125 - 44032: 0xA874, - 52126 - 44032: 0xA875, - 52127 - 44032: 0xA876, - 52128 - 44032: 0xA877, - 52129 - 44032: 0xA878, - 52130 - 44032: 0xA879, - 52131 - 44032: 0xA87A, - 52132 - 44032: 0xA881, - 52133 - 44032: 0xA882, - 52134 - 44032: 0xA883, - 52135 - 44032: 0xA884, - 52136 - 44032: 0xA885, - 52137 - 44032: 0xA886, - 52138 - 44032: 0xA887, - 52139 - 44032: 0xA888, - 52140 - 44032: 0xA889, - 52141 - 44032: 0xA88A, - 52142 - 44032: 0xA88B, - 52143 - 44032: 0xA88C, - 52144 - 44032: 0xA88D, - 52145 - 44032: 0xA88E, - 52146 - 44032: 0xA88F, - 52147 - 44032: 0xA890, - 52148 - 44032: 0xA891, - 52149 - 44032: 0xA892, - 52150 - 44032: 0xA893, - 52151 - 44032: 0xA894, - 52152 - 44032: 0xC2E9, - 52153 - 44032: 0xA895, - 52154 - 44032: 0xA896, - 52155 - 44032: 0xA897, - 52156 - 44032: 0xA898, - 52157 - 44032: 0xA899, - 52158 - 44032: 0xA89A, - 52159 - 44032: 0xA89B, - 52160 - 44032: 0xA89C, - 52161 - 44032: 0xA89D, - 52162 - 44032: 0xA89E, - 52163 - 44032: 0xA89F, - 52164 - 44032: 0xA8A0, - 52165 - 44032: 0xA941, - 52166 - 44032: 0xA942, - 52167 - 44032: 0xA943, - 52168 - 44032: 0xA944, - 52169 - 44032: 0xA945, - 52170 - 44032: 0xA946, - 52171 - 44032: 0xA947, - 52172 - 44032: 0xA948, - 52173 - 44032: 0xA949, - 52174 - 44032: 0xA94A, - 52175 - 44032: 0xA94B, - 52176 - 44032: 0xA94C, - 52177 - 44032: 0xA94D, - 52178 - 44032: 0xA94E, - 52179 - 44032: 0xA94F, - 52180 - 44032: 0xC2EA, - 52181 - 44032: 0xA950, - 52182 - 44032: 0xA951, - 52183 - 44032: 0xA952, - 52184 - 44032: 0xA953, - 52185 - 44032: 0xA954, - 52186 - 44032: 0xA955, - 52187 - 44032: 0xA956, - 52188 - 44032: 0xA957, - 52189 - 44032: 0xA958, - 52190 - 44032: 0xA959, - 52191 - 44032: 0xA95A, - 52192 - 44032: 0xA961, - 52193 - 44032: 0xA962, - 52194 - 44032: 0xA963, - 52195 - 44032: 0xA964, - 52196 - 44032: 0xC2EB, - 52197 - 44032: 0xA965, - 52198 - 44032: 0xA966, - 52199 - 44032: 0xC2EC, - 52200 - 44032: 0xA967, - 52201 - 44032: 0xC2ED, - 52202 - 44032: 0xA968, - 52203 - 44032: 0xA969, - 52204 - 44032: 0xA96A, - 52205 - 44032: 0xA96B, - 52206 - 44032: 0xA96C, - 52207 - 44032: 0xA96D, - 52208 - 44032: 0xA96E, - 52209 - 44032: 0xA96F, - 52210 - 44032: 0xA970, - 52211 - 44032: 0xA971, - 52212 - 44032: 0xA972, - 52213 - 44032: 0xA973, - 52214 - 44032: 0xA974, - 52215 - 44032: 0xA975, - 52216 - 44032: 0xA976, - 52217 - 44032: 0xA977, - 52218 - 44032: 0xA978, - 52219 - 44032: 0xA979, - 52220 - 44032: 0xA97A, - 52221 - 44032: 0xA981, - 52222 - 44032: 0xA982, - 52223 - 44032: 0xA983, - 52224 - 44032: 0xA984, - 52225 - 44032: 0xA985, - 52226 - 44032: 0xA986, - 52227 - 44032: 0xA987, - 52228 - 44032: 0xA988, - 52229 - 44032: 0xA989, - 52230 - 44032: 0xA98A, - 52231 - 44032: 0xA98B, - 52232 - 44032: 0xA98C, - 52233 - 44032: 0xA98D, - 52234 - 44032: 0xA98E, - 52235 - 44032: 0xA98F, - 52236 - 44032: 0xC2EE, - 52237 - 44032: 0xC2EF, - 52238 - 44032: 0xA990, - 52239 - 44032: 0xA991, - 52240 - 44032: 0xC2F0, - 52241 - 44032: 0xA992, - 52242 - 44032: 0xA993, - 52243 - 44032: 0xA994, - 52244 - 44032: 0xC2F1, - 52245 - 44032: 0xA995, - 52246 - 44032: 0xA996, - 52247 - 44032: 0xA997, - 52248 - 44032: 0xA998, - 52249 - 44032: 0xA999, - 52250 - 44032: 0xA99A, - 52251 - 44032: 0xA99B, - 52252 - 44032: 0xC2F2, - 52253 - 44032: 0xC2F3, - 52254 - 44032: 0xA99C, - 52255 - 44032: 0xA99D, - 52256 - 44032: 0xA99E, - 52257 - 44032: 0xC2F4, - 52258 - 44032: 0xC2F5, - 52259 - 44032: 0xA99F, - 52260 - 44032: 0xA9A0, - 52261 - 44032: 0xAA41, - 52262 - 44032: 0xAA42, - 52263 - 44032: 0xC2F6, - 52264 - 44032: 0xC2F7, - 52265 - 44032: 0xC2F8, - 52266 - 44032: 0xAA43, - 52267 - 44032: 0xAA44, - 52268 - 44032: 0xC2F9, - 52269 - 44032: 0xAA45, - 52270 - 44032: 0xC2FA, - 52271 - 44032: 0xAA46, - 52272 - 44032: 0xC2FB, - 52273 - 44032: 0xAA47, - 52274 - 44032: 0xAA48, - 52275 - 44032: 0xAA49, - 52276 - 44032: 0xAA4A, - 52277 - 44032: 0xAA4B, - 52278 - 44032: 0xAA4C, - 52279 - 44032: 0xAA4D, - 52280 - 44032: 0xC2FC, - 52281 - 44032: 0xC2FD, - 52282 - 44032: 0xAA4E, - 52283 - 44032: 0xC2FE, - 52284 - 44032: 0xC3A1, - 52285 - 44032: 0xC3A2, - 52286 - 44032: 0xC3A3, - 52287 - 44032: 0xAA4F, - 52288 - 44032: 0xAA50, - 52289 - 44032: 0xAA51, - 52290 - 44032: 0xAA52, - 52291 - 44032: 0xAA53, - 52292 - 44032: 0xC3A4, - 52293 - 44032: 0xC3A5, - 52294 - 44032: 0xAA54, - 52295 - 44032: 0xAA55, - 52296 - 44032: 0xC3A6, - 52297 - 44032: 0xAA56, - 52298 - 44032: 0xAA57, - 52299 - 44032: 0xAA58, - 52300 - 44032: 0xC3A7, - 52301 - 44032: 0xAA59, - 52302 - 44032: 0xAA5A, - 52303 - 44032: 0xAA61, - 52304 - 44032: 0xAA62, - 52305 - 44032: 0xAA63, - 52306 - 44032: 0xAA64, - 52307 - 44032: 0xAA65, - 52308 - 44032: 0xC3A8, - 52309 - 44032: 0xC3A9, - 52310 - 44032: 0xAA66, - 52311 - 44032: 0xC3AA, - 52312 - 44032: 0xC3AB, - 52313 - 44032: 0xC3AC, - 52314 - 44032: 0xAA67, - 52315 - 44032: 0xAA68, - 52316 - 44032: 0xAA69, - 52317 - 44032: 0xAA6A, - 52318 - 44032: 0xAA6B, - 52319 - 44032: 0xAA6C, - 52320 - 44032: 0xC3AD, - 52321 - 44032: 0xAA6D, - 52322 - 44032: 0xAA6E, - 52323 - 44032: 0xAA6F, - 52324 - 44032: 0xC3AE, - 52325 - 44032: 0xAA70, - 52326 - 44032: 0xC3AF, - 52327 - 44032: 0xAA71, - 52328 - 44032: 0xC3B0, - 52329 - 44032: 0xAA72, - 52330 - 44032: 0xAA73, - 52331 - 44032: 0xAA74, - 52332 - 44032: 0xAA75, - 52333 - 44032: 0xAA76, - 52334 - 44032: 0xAA77, - 52335 - 44032: 0xAA78, - 52336 - 44032: 0xC3B1, - 52337 - 44032: 0xAA79, - 52338 - 44032: 0xAA7A, - 52339 - 44032: 0xAA81, - 52340 - 44032: 0xAA82, - 52341 - 44032: 0xC3B2, - 52342 - 44032: 0xAA83, - 52343 - 44032: 0xAA84, - 52344 - 44032: 0xAA85, - 52345 - 44032: 0xAA86, - 52346 - 44032: 0xAA87, - 52347 - 44032: 0xAA88, - 52348 - 44032: 0xAA89, - 52349 - 44032: 0xAA8A, - 52350 - 44032: 0xAA8B, - 52351 - 44032: 0xAA8C, - 52352 - 44032: 0xAA8D, - 52353 - 44032: 0xAA8E, - 52354 - 44032: 0xAA8F, - 52355 - 44032: 0xAA90, - 52356 - 44032: 0xAA91, - 52357 - 44032: 0xAA92, - 52358 - 44032: 0xAA93, - 52359 - 44032: 0xAA94, - 52360 - 44032: 0xAA95, - 52361 - 44032: 0xAA96, - 52362 - 44032: 0xAA97, - 52363 - 44032: 0xAA98, - 52364 - 44032: 0xAA99, - 52365 - 44032: 0xAA9A, - 52366 - 44032: 0xAA9B, - 52367 - 44032: 0xAA9C, - 52368 - 44032: 0xAA9D, - 52369 - 44032: 0xAA9E, - 52370 - 44032: 0xAA9F, - 52371 - 44032: 0xAAA0, - 52372 - 44032: 0xAB41, - 52373 - 44032: 0xAB42, - 52374 - 44032: 0xAB43, - 52375 - 44032: 0xAB44, - 52376 - 44032: 0xC3B3, - 52377 - 44032: 0xC3B4, - 52378 - 44032: 0xAB45, - 52379 - 44032: 0xAB46, - 52380 - 44032: 0xC3B5, - 52381 - 44032: 0xAB47, - 52382 - 44032: 0xAB48, - 52383 - 44032: 0xAB49, - 52384 - 44032: 0xC3B6, - 52385 - 44032: 0xAB4A, - 52386 - 44032: 0xAB4B, - 52387 - 44032: 0xAB4C, - 52388 - 44032: 0xAB4D, - 52389 - 44032: 0xAB4E, - 52390 - 44032: 0xAB4F, - 52391 - 44032: 0xAB50, - 52392 - 44032: 0xC3B7, - 52393 - 44032: 0xC3B8, - 52394 - 44032: 0xAB51, - 52395 - 44032: 0xC3B9, - 52396 - 44032: 0xC3BA, - 52397 - 44032: 0xC3BB, - 52398 - 44032: 0xAB52, - 52399 - 44032: 0xAB53, - 52400 - 44032: 0xAB54, - 52401 - 44032: 0xAB55, - 52402 - 44032: 0xAB56, - 52403 - 44032: 0xAB57, - 52404 - 44032: 0xC3BC, - 52405 - 44032: 0xC3BD, - 52406 - 44032: 0xAB58, - 52407 - 44032: 0xAB59, - 52408 - 44032: 0xC3BE, - 52409 - 44032: 0xAB5A, - 52410 - 44032: 0xAB61, - 52411 - 44032: 0xAB62, - 52412 - 44032: 0xC3BF, - 52413 - 44032: 0xAB63, - 52414 - 44032: 0xAB64, - 52415 - 44032: 0xAB65, - 52416 - 44032: 0xAB66, - 52417 - 44032: 0xAB67, - 52418 - 44032: 0xAB68, - 52419 - 44032: 0xAB69, - 52420 - 44032: 0xC3C0, - 52421 - 44032: 0xC3C1, - 52422 - 44032: 0xAB6A, - 52423 - 44032: 0xC3C2, - 52424 - 44032: 0xAB6B, - 52425 - 44032: 0xC3C3, - 52426 - 44032: 0xAB6C, - 52427 - 44032: 0xAB6D, - 52428 - 44032: 0xAB6E, - 52429 - 44032: 0xAB6F, - 52430 - 44032: 0xAB70, - 52431 - 44032: 0xAB71, - 52432 - 44032: 0xC3C4, - 52433 - 44032: 0xAB72, - 52434 - 44032: 0xAB73, - 52435 - 44032: 0xAB74, - 52436 - 44032: 0xC3C5, - 52437 - 44032: 0xAB75, - 52438 - 44032: 0xAB76, - 52439 - 44032: 0xAB77, - 52440 - 44032: 0xAB78, - 52441 - 44032: 0xAB79, - 52442 - 44032: 0xAB7A, - 52443 - 44032: 0xAB81, - 52444 - 44032: 0xAB82, - 52445 - 44032: 0xAB83, - 52446 - 44032: 0xAB84, - 52447 - 44032: 0xAB85, - 52448 - 44032: 0xAB86, - 52449 - 44032: 0xAB87, - 52450 - 44032: 0xAB88, - 52451 - 44032: 0xAB89, - 52452 - 44032: 0xC3C6, - 52453 - 44032: 0xAB8A, - 52454 - 44032: 0xAB8B, - 52455 - 44032: 0xAB8C, - 52456 - 44032: 0xAB8D, - 52457 - 44032: 0xAB8E, - 52458 - 44032: 0xAB8F, - 52459 - 44032: 0xAB90, - 52460 - 44032: 0xC3C7, - 52461 - 44032: 0xAB91, - 52462 - 44032: 0xAB92, - 52463 - 44032: 0xAB93, - 52464 - 44032: 0xC3C8, - 52465 - 44032: 0xAB94, - 52466 - 44032: 0xAB95, - 52467 - 44032: 0xAB96, - 52468 - 44032: 0xAB97, - 52469 - 44032: 0xAB98, - 52470 - 44032: 0xAB99, - 52471 - 44032: 0xAB9A, - 52472 - 44032: 0xAB9B, - 52473 - 44032: 0xAB9C, - 52474 - 44032: 0xAB9D, - 52475 - 44032: 0xAB9E, - 52476 - 44032: 0xAB9F, - 52477 - 44032: 0xABA0, - 52478 - 44032: 0xAC41, - 52479 - 44032: 0xAC42, - 52480 - 44032: 0xAC43, - 52481 - 44032: 0xC3C9, - 52482 - 44032: 0xAC44, - 52483 - 44032: 0xAC45, - 52484 - 44032: 0xAC46, - 52485 - 44032: 0xAC47, - 52486 - 44032: 0xAC48, - 52487 - 44032: 0xAC49, - 52488 - 44032: 0xC3CA, - 52489 - 44032: 0xC3CB, - 52490 - 44032: 0xAC4A, - 52491 - 44032: 0xAC4B, - 52492 - 44032: 0xC3CC, - 52493 - 44032: 0xAC4C, - 52494 - 44032: 0xAC4D, - 52495 - 44032: 0xAC4E, - 52496 - 44032: 0xC3CD, - 52497 - 44032: 0xAC4F, - 52498 - 44032: 0xAC50, - 52499 - 44032: 0xAC51, - 52500 - 44032: 0xAC52, - 52501 - 44032: 0xAC53, - 52502 - 44032: 0xAC54, - 52503 - 44032: 0xAC55, - 52504 - 44032: 0xC3CE, - 52505 - 44032: 0xC3CF, - 52506 - 44032: 0xAC56, - 52507 - 44032: 0xC3D0, - 52508 - 44032: 0xAC57, - 52509 - 44032: 0xC3D1, - 52510 - 44032: 0xAC58, - 52511 - 44032: 0xAC59, - 52512 - 44032: 0xAC5A, - 52513 - 44032: 0xAC61, - 52514 - 44032: 0xAC62, - 52515 - 44032: 0xAC63, - 52516 - 44032: 0xC3D2, - 52517 - 44032: 0xAC64, - 52518 - 44032: 0xAC65, - 52519 - 44032: 0xAC66, - 52520 - 44032: 0xC3D3, - 52521 - 44032: 0xAC67, - 52522 - 44032: 0xAC68, - 52523 - 44032: 0xAC69, - 52524 - 44032: 0xC3D4, - 52525 - 44032: 0xAC6A, - 52526 - 44032: 0xAC6B, - 52527 - 44032: 0xAC6C, - 52528 - 44032: 0xAC6D, - 52529 - 44032: 0xAC6E, - 52530 - 44032: 0xAC6F, - 52531 - 44032: 0xAC70, - 52532 - 44032: 0xAC71, - 52533 - 44032: 0xAC72, - 52534 - 44032: 0xAC73, - 52535 - 44032: 0xAC74, - 52536 - 44032: 0xAC75, - 52537 - 44032: 0xC3D5, - 52538 - 44032: 0xAC76, - 52539 - 44032: 0xAC77, - 52540 - 44032: 0xAC78, - 52541 - 44032: 0xAC79, - 52542 - 44032: 0xAC7A, - 52543 - 44032: 0xAC81, - 52544 - 44032: 0xAC82, - 52545 - 44032: 0xAC83, - 52546 - 44032: 0xAC84, - 52547 - 44032: 0xAC85, - 52548 - 44032: 0xAC86, - 52549 - 44032: 0xAC87, - 52550 - 44032: 0xAC88, - 52551 - 44032: 0xAC89, - 52552 - 44032: 0xAC8A, - 52553 - 44032: 0xAC8B, - 52554 - 44032: 0xAC8C, - 52555 - 44032: 0xAC8D, - 52556 - 44032: 0xAC8E, - 52557 - 44032: 0xAC8F, - 52558 - 44032: 0xAC90, - 52559 - 44032: 0xAC91, - 52560 - 44032: 0xAC92, - 52561 - 44032: 0xAC93, - 52562 - 44032: 0xAC94, - 52563 - 44032: 0xAC95, - 52564 - 44032: 0xAC96, - 52565 - 44032: 0xAC97, - 52566 - 44032: 0xAC98, - 52567 - 44032: 0xAC99, - 52568 - 44032: 0xAC9A, - 52569 - 44032: 0xAC9B, - 52570 - 44032: 0xAC9C, - 52571 - 44032: 0xAC9D, - 52572 - 44032: 0xC3D6, - 52573 - 44032: 0xAC9E, - 52574 - 44032: 0xAC9F, - 52575 - 44032: 0xACA0, - 52576 - 44032: 0xC3D7, - 52577 - 44032: 0xAD41, - 52578 - 44032: 0xAD42, - 52579 - 44032: 0xAD43, - 52580 - 44032: 0xC3D8, - 52581 - 44032: 0xAD44, - 52582 - 44032: 0xAD45, - 52583 - 44032: 0xAD46, - 52584 - 44032: 0xAD47, - 52585 - 44032: 0xAD48, - 52586 - 44032: 0xAD49, - 52587 - 44032: 0xAD4A, - 52588 - 44032: 0xC3D9, - 52589 - 44032: 0xC3DA, - 52590 - 44032: 0xAD4B, - 52591 - 44032: 0xC3DB, - 52592 - 44032: 0xAD4C, - 52593 - 44032: 0xC3DC, - 52594 - 44032: 0xAD4D, - 52595 - 44032: 0xAD4E, - 52596 - 44032: 0xAD4F, - 52597 - 44032: 0xAD50, - 52598 - 44032: 0xAD51, - 52599 - 44032: 0xAD52, - 52600 - 44032: 0xC3DD, - 52601 - 44032: 0xAD53, - 52602 - 44032: 0xAD54, - 52603 - 44032: 0xAD55, - 52604 - 44032: 0xAD56, - 52605 - 44032: 0xAD57, - 52606 - 44032: 0xAD58, - 52607 - 44032: 0xAD59, - 52608 - 44032: 0xAD5A, - 52609 - 44032: 0xAD61, - 52610 - 44032: 0xAD62, - 52611 - 44032: 0xAD63, - 52612 - 44032: 0xAD64, - 52613 - 44032: 0xAD65, - 52614 - 44032: 0xAD66, - 52615 - 44032: 0xAD67, - 52616 - 44032: 0xC3DE, - 52617 - 44032: 0xAD68, - 52618 - 44032: 0xAD69, - 52619 - 44032: 0xAD6A, - 52620 - 44032: 0xAD6B, - 52621 - 44032: 0xAD6C, - 52622 - 44032: 0xAD6D, - 52623 - 44032: 0xAD6E, - 52624 - 44032: 0xAD6F, - 52625 - 44032: 0xAD70, - 52626 - 44032: 0xAD71, - 52627 - 44032: 0xAD72, - 52628 - 44032: 0xC3DF, - 52629 - 44032: 0xC3E0, - 52630 - 44032: 0xAD73, - 52631 - 44032: 0xAD74, - 52632 - 44032: 0xC3E1, - 52633 - 44032: 0xAD75, - 52634 - 44032: 0xAD76, - 52635 - 44032: 0xAD77, - 52636 - 44032: 0xC3E2, - 52637 - 44032: 0xAD78, - 52638 - 44032: 0xAD79, - 52639 - 44032: 0xAD7A, - 52640 - 44032: 0xAD81, - 52641 - 44032: 0xAD82, - 52642 - 44032: 0xAD83, - 52643 - 44032: 0xAD84, - 52644 - 44032: 0xC3E3, - 52645 - 44032: 0xC3E4, - 52646 - 44032: 0xAD85, - 52647 - 44032: 0xC3E5, - 52648 - 44032: 0xAD86, - 52649 - 44032: 0xC3E6, - 52650 - 44032: 0xAD87, - 52651 - 44032: 0xAD88, - 52652 - 44032: 0xAD89, - 52653 - 44032: 0xAD8A, - 52654 - 44032: 0xAD8B, - 52655 - 44032: 0xAD8C, - 52656 - 44032: 0xC3E7, - 52657 - 44032: 0xAD8D, - 52658 - 44032: 0xAD8E, - 52659 - 44032: 0xAD8F, - 52660 - 44032: 0xAD90, - 52661 - 44032: 0xAD91, - 52662 - 44032: 0xAD92, - 52663 - 44032: 0xAD93, - 52664 - 44032: 0xAD94, - 52665 - 44032: 0xAD95, - 52666 - 44032: 0xAD96, - 52667 - 44032: 0xAD97, - 52668 - 44032: 0xAD98, - 52669 - 44032: 0xAD99, - 52670 - 44032: 0xAD9A, - 52671 - 44032: 0xAD9B, - 52672 - 44032: 0xAD9C, - 52673 - 44032: 0xAD9D, - 52674 - 44032: 0xAD9E, - 52675 - 44032: 0xAD9F, - 52676 - 44032: 0xC3E8, - 52677 - 44032: 0xADA0, - 52678 - 44032: 0xAE41, - 52679 - 44032: 0xAE42, - 52680 - 44032: 0xAE43, - 52681 - 44032: 0xAE44, - 52682 - 44032: 0xAE45, - 52683 - 44032: 0xAE46, - 52684 - 44032: 0xC3E9, - 52685 - 44032: 0xAE47, - 52686 - 44032: 0xAE48, - 52687 - 44032: 0xAE49, - 52688 - 44032: 0xC3EA, - 52689 - 44032: 0xAE4A, - 52690 - 44032: 0xAE4B, - 52691 - 44032: 0xAE4C, - 52692 - 44032: 0xAE4D, - 52693 - 44032: 0xAE4E, - 52694 - 44032: 0xAE4F, - 52695 - 44032: 0xAE50, - 52696 - 44032: 0xAE51, - 52697 - 44032: 0xAE52, - 52698 - 44032: 0xAE53, - 52699 - 44032: 0xAE54, - 52700 - 44032: 0xAE55, - 52701 - 44032: 0xAE56, - 52702 - 44032: 0xAE57, - 52703 - 44032: 0xAE58, - 52704 - 44032: 0xAE59, - 52705 - 44032: 0xAE5A, - 52706 - 44032: 0xAE61, - 52707 - 44032: 0xAE62, - 52708 - 44032: 0xAE63, - 52709 - 44032: 0xAE64, - 52710 - 44032: 0xAE65, - 52711 - 44032: 0xAE66, - 52712 - 44032: 0xC3EB, - 52713 - 44032: 0xAE67, - 52714 - 44032: 0xAE68, - 52715 - 44032: 0xAE69, - 52716 - 44032: 0xC3EC, - 52717 - 44032: 0xAE6A, - 52718 - 44032: 0xAE6B, - 52719 - 44032: 0xAE6C, - 52720 - 44032: 0xC3ED, - 52721 - 44032: 0xAE6D, - 52722 - 44032: 0xAE6E, - 52723 - 44032: 0xAE6F, - 52724 - 44032: 0xAE70, - 52725 - 44032: 0xAE71, - 52726 - 44032: 0xAE72, - 52727 - 44032: 0xAE73, - 52728 - 44032: 0xC3EE, - 52729 - 44032: 0xC3EF, - 52730 - 44032: 0xAE74, - 52731 - 44032: 0xC3F0, - 52732 - 44032: 0xAE75, - 52733 - 44032: 0xC3F1, - 52734 - 44032: 0xAE76, - 52735 - 44032: 0xAE77, - 52736 - 44032: 0xAE78, - 52737 - 44032: 0xAE79, - 52738 - 44032: 0xAE7A, - 52739 - 44032: 0xAE81, - 52740 - 44032: 0xC3F2, - 52741 - 44032: 0xAE82, - 52742 - 44032: 0xAE83, - 52743 - 44032: 0xAE84, - 52744 - 44032: 0xC3F3, - 52745 - 44032: 0xAE85, - 52746 - 44032: 0xAE86, - 52747 - 44032: 0xAE87, - 52748 - 44032: 0xC3F4, - 52749 - 44032: 0xAE88, - 52750 - 44032: 0xAE89, - 52751 - 44032: 0xAE8A, - 52752 - 44032: 0xAE8B, - 52753 - 44032: 0xAE8C, - 52754 - 44032: 0xAE8D, - 52755 - 44032: 0xAE8E, - 52756 - 44032: 0xC3F5, - 52757 - 44032: 0xAE8F, - 52758 - 44032: 0xAE90, - 52759 - 44032: 0xAE91, - 52760 - 44032: 0xAE92, - 52761 - 44032: 0xC3F6, - 52762 - 44032: 0xAE93, - 52763 - 44032: 0xAE94, - 52764 - 44032: 0xAE95, - 52765 - 44032: 0xAE96, - 52766 - 44032: 0xAE97, - 52767 - 44032: 0xAE98, - 52768 - 44032: 0xC3F7, - 52769 - 44032: 0xC3F8, - 52770 - 44032: 0xAE99, - 52771 - 44032: 0xAE9A, - 52772 - 44032: 0xC3F9, - 52773 - 44032: 0xAE9B, - 52774 - 44032: 0xAE9C, - 52775 - 44032: 0xAE9D, - 52776 - 44032: 0xC3FA, - 52777 - 44032: 0xAE9E, - 52778 - 44032: 0xAE9F, - 52779 - 44032: 0xAEA0, - 52780 - 44032: 0xAF41, - 52781 - 44032: 0xAF42, - 52782 - 44032: 0xAF43, - 52783 - 44032: 0xAF44, - 52784 - 44032: 0xC3FB, - 52785 - 44032: 0xC3FC, - 52786 - 44032: 0xAF45, - 52787 - 44032: 0xC3FD, - 52788 - 44032: 0xAF46, - 52789 - 44032: 0xC3FE, - 52790 - 44032: 0xAF47, - 52791 - 44032: 0xAF48, - 52792 - 44032: 0xAF49, - 52793 - 44032: 0xAF4A, - 52794 - 44032: 0xAF4B, - 52795 - 44032: 0xAF4C, - 52796 - 44032: 0xAF4D, - 52797 - 44032: 0xAF4E, - 52798 - 44032: 0xAF4F, - 52799 - 44032: 0xAF50, - 52800 - 44032: 0xAF51, - 52801 - 44032: 0xAF52, - 52802 - 44032: 0xAF53, - 52803 - 44032: 0xAF54, - 52804 - 44032: 0xAF55, - 52805 - 44032: 0xAF56, - 52806 - 44032: 0xAF57, - 52807 - 44032: 0xAF58, - 52808 - 44032: 0xAF59, - 52809 - 44032: 0xAF5A, - 52810 - 44032: 0xAF61, - 52811 - 44032: 0xAF62, - 52812 - 44032: 0xAF63, - 52813 - 44032: 0xAF64, - 52814 - 44032: 0xAF65, - 52815 - 44032: 0xAF66, - 52816 - 44032: 0xAF67, - 52817 - 44032: 0xAF68, - 52818 - 44032: 0xAF69, - 52819 - 44032: 0xAF6A, - 52820 - 44032: 0xAF6B, - 52821 - 44032: 0xAF6C, - 52822 - 44032: 0xAF6D, - 52823 - 44032: 0xAF6E, - 52824 - 44032: 0xC4A1, - 52825 - 44032: 0xC4A2, - 52826 - 44032: 0xAF6F, - 52827 - 44032: 0xAF70, - 52828 - 44032: 0xC4A3, - 52829 - 44032: 0xAF71, - 52830 - 44032: 0xAF72, - 52831 - 44032: 0xC4A4, - 52832 - 44032: 0xC4A5, - 52833 - 44032: 0xC4A6, - 52834 - 44032: 0xAF73, - 52835 - 44032: 0xAF74, - 52836 - 44032: 0xAF75, - 52837 - 44032: 0xAF76, - 52838 - 44032: 0xAF77, - 52839 - 44032: 0xAF78, - 52840 - 44032: 0xC4A7, - 52841 - 44032: 0xC4A8, - 52842 - 44032: 0xAF79, - 52843 - 44032: 0xC4A9, - 52844 - 44032: 0xAF7A, - 52845 - 44032: 0xC4AA, - 52846 - 44032: 0xAF81, - 52847 - 44032: 0xAF82, - 52848 - 44032: 0xAF83, - 52849 - 44032: 0xAF84, - 52850 - 44032: 0xAF85, - 52851 - 44032: 0xAF86, - 52852 - 44032: 0xC4AB, - 52853 - 44032: 0xC4AC, - 52854 - 44032: 0xAF87, - 52855 - 44032: 0xAF88, - 52856 - 44032: 0xC4AD, - 52857 - 44032: 0xAF89, - 52858 - 44032: 0xAF8A, - 52859 - 44032: 0xAF8B, - 52860 - 44032: 0xC4AE, - 52861 - 44032: 0xAF8C, - 52862 - 44032: 0xAF8D, - 52863 - 44032: 0xAF8E, - 52864 - 44032: 0xAF8F, - 52865 - 44032: 0xAF90, - 52866 - 44032: 0xAF91, - 52867 - 44032: 0xAF92, - 52868 - 44032: 0xC4AF, - 52869 - 44032: 0xC4B0, - 52870 - 44032: 0xAF93, - 52871 - 44032: 0xC4B1, - 52872 - 44032: 0xAF94, - 52873 - 44032: 0xC4B2, - 52874 - 44032: 0xAF95, - 52875 - 44032: 0xAF96, - 52876 - 44032: 0xAF97, - 52877 - 44032: 0xAF98, - 52878 - 44032: 0xAF99, - 52879 - 44032: 0xAF9A, - 52880 - 44032: 0xC4B3, - 52881 - 44032: 0xC4B4, - 52882 - 44032: 0xAF9B, - 52883 - 44032: 0xAF9C, - 52884 - 44032: 0xC4B5, - 52885 - 44032: 0xAF9D, - 52886 - 44032: 0xAF9E, - 52887 - 44032: 0xAF9F, - 52888 - 44032: 0xC4B6, - 52889 - 44032: 0xAFA0, - 52890 - 44032: 0xB041, - 52891 - 44032: 0xB042, - 52892 - 44032: 0xB043, - 52893 - 44032: 0xB044, - 52894 - 44032: 0xB045, - 52895 - 44032: 0xB046, - 52896 - 44032: 0xC4B7, - 52897 - 44032: 0xC4B8, - 52898 - 44032: 0xB047, - 52899 - 44032: 0xC4B9, - 52900 - 44032: 0xC4BA, - 52901 - 44032: 0xC4BB, - 52902 - 44032: 0xB048, - 52903 - 44032: 0xB049, - 52904 - 44032: 0xB04A, - 52905 - 44032: 0xB04B, - 52906 - 44032: 0xB04C, - 52907 - 44032: 0xB04D, - 52908 - 44032: 0xC4BC, - 52909 - 44032: 0xC4BD, - 52910 - 44032: 0xB04E, - 52911 - 44032: 0xB04F, - 52912 - 44032: 0xB050, - 52913 - 44032: 0xB051, - 52914 - 44032: 0xB052, - 52915 - 44032: 0xB053, - 52916 - 44032: 0xB054, - 52917 - 44032: 0xB055, - 52918 - 44032: 0xB056, - 52919 - 44032: 0xB057, - 52920 - 44032: 0xB058, - 52921 - 44032: 0xB059, - 52922 - 44032: 0xB05A, - 52923 - 44032: 0xB061, - 52924 - 44032: 0xB062, - 52925 - 44032: 0xB063, - 52926 - 44032: 0xB064, - 52927 - 44032: 0xB065, - 52928 - 44032: 0xB066, - 52929 - 44032: 0xC4BE, - 52930 - 44032: 0xB067, - 52931 - 44032: 0xB068, - 52932 - 44032: 0xB069, - 52933 - 44032: 0xB06A, - 52934 - 44032: 0xB06B, - 52935 - 44032: 0xB06C, - 52936 - 44032: 0xB06D, - 52937 - 44032: 0xB06E, - 52938 - 44032: 0xB06F, - 52939 - 44032: 0xB070, - 52940 - 44032: 0xB071, - 52941 - 44032: 0xB072, - 52942 - 44032: 0xB073, - 52943 - 44032: 0xB074, - 52944 - 44032: 0xB075, - 52945 - 44032: 0xB076, - 52946 - 44032: 0xB077, - 52947 - 44032: 0xB078, - 52948 - 44032: 0xB079, - 52949 - 44032: 0xB07A, - 52950 - 44032: 0xB081, - 52951 - 44032: 0xB082, - 52952 - 44032: 0xB083, - 52953 - 44032: 0xB084, - 52954 - 44032: 0xB085, - 52955 - 44032: 0xB086, - 52956 - 44032: 0xB087, - 52957 - 44032: 0xB088, - 52958 - 44032: 0xB089, - 52959 - 44032: 0xB08A, - 52960 - 44032: 0xB08B, - 52961 - 44032: 0xB08C, - 52962 - 44032: 0xB08D, - 52963 - 44032: 0xB08E, - 52964 - 44032: 0xC4BF, - 52965 - 44032: 0xC4C0, - 52966 - 44032: 0xB08F, - 52967 - 44032: 0xB090, - 52968 - 44032: 0xC4C1, - 52969 - 44032: 0xB091, - 52970 - 44032: 0xB092, - 52971 - 44032: 0xC4C2, - 52972 - 44032: 0xC4C3, - 52973 - 44032: 0xB093, - 52974 - 44032: 0xB094, - 52975 - 44032: 0xB095, - 52976 - 44032: 0xB096, - 52977 - 44032: 0xB097, - 52978 - 44032: 0xB098, - 52979 - 44032: 0xB099, - 52980 - 44032: 0xC4C4, - 52981 - 44032: 0xC4C5, - 52982 - 44032: 0xB09A, - 52983 - 44032: 0xC4C6, - 52984 - 44032: 0xC4C7, - 52985 - 44032: 0xC4C8, - 52986 - 44032: 0xB09B, - 52987 - 44032: 0xB09C, - 52988 - 44032: 0xB09D, - 52989 - 44032: 0xB09E, - 52990 - 44032: 0xB09F, - 52991 - 44032: 0xB0A0, - 52992 - 44032: 0xC4C9, - 52993 - 44032: 0xC4CA, - 52994 - 44032: 0xB141, - 52995 - 44032: 0xB142, - 52996 - 44032: 0xC4CB, - 52997 - 44032: 0xB143, - 52998 - 44032: 0xB144, - 52999 - 44032: 0xB145, - 53000 - 44032: 0xC4CC, - 53001 - 44032: 0xB146, - 53002 - 44032: 0xB147, - 53003 - 44032: 0xB148, - 53004 - 44032: 0xB149, - 53005 - 44032: 0xB14A, - 53006 - 44032: 0xB14B, - 53007 - 44032: 0xB14C, - 53008 - 44032: 0xC4CD, - 53009 - 44032: 0xC4CE, - 53010 - 44032: 0xB14D, - 53011 - 44032: 0xC4CF, - 53012 - 44032: 0xB14E, - 53013 - 44032: 0xC4D0, - 53014 - 44032: 0xB14F, - 53015 - 44032: 0xB150, - 53016 - 44032: 0xB151, - 53017 - 44032: 0xB152, - 53018 - 44032: 0xB153, - 53019 - 44032: 0xB154, - 53020 - 44032: 0xC4D1, - 53021 - 44032: 0xB155, - 53022 - 44032: 0xB156, - 53023 - 44032: 0xB157, - 53024 - 44032: 0xC4D2, - 53025 - 44032: 0xB158, - 53026 - 44032: 0xB159, - 53027 - 44032: 0xB15A, - 53028 - 44032: 0xC4D3, - 53029 - 44032: 0xB161, - 53030 - 44032: 0xB162, - 53031 - 44032: 0xB163, - 53032 - 44032: 0xB164, - 53033 - 44032: 0xB165, - 53034 - 44032: 0xB166, - 53035 - 44032: 0xB167, - 53036 - 44032: 0xC4D4, - 53037 - 44032: 0xC4D5, - 53038 - 44032: 0xB168, - 53039 - 44032: 0xC4D6, - 53040 - 44032: 0xC4D7, - 53041 - 44032: 0xC4D8, - 53042 - 44032: 0xB169, - 53043 - 44032: 0xB16A, - 53044 - 44032: 0xB16B, - 53045 - 44032: 0xB16C, - 53046 - 44032: 0xB16D, - 53047 - 44032: 0xB16E, - 53048 - 44032: 0xC4D9, - 53049 - 44032: 0xB16F, - 53050 - 44032: 0xB170, - 53051 - 44032: 0xB171, - 53052 - 44032: 0xB172, - 53053 - 44032: 0xB173, - 53054 - 44032: 0xB174, - 53055 - 44032: 0xB175, - 53056 - 44032: 0xB176, - 53057 - 44032: 0xB177, - 53058 - 44032: 0xB178, - 53059 - 44032: 0xB179, - 53060 - 44032: 0xB17A, - 53061 - 44032: 0xB181, - 53062 - 44032: 0xB182, - 53063 - 44032: 0xB183, - 53064 - 44032: 0xB184, - 53065 - 44032: 0xB185, - 53066 - 44032: 0xB186, - 53067 - 44032: 0xB187, - 53068 - 44032: 0xB188, - 53069 - 44032: 0xB189, - 53070 - 44032: 0xB18A, - 53071 - 44032: 0xB18B, - 53072 - 44032: 0xB18C, - 53073 - 44032: 0xB18D, - 53074 - 44032: 0xB18E, - 53075 - 44032: 0xB18F, - 53076 - 44032: 0xC4DA, - 53077 - 44032: 0xC4DB, - 53078 - 44032: 0xB190, - 53079 - 44032: 0xB191, - 53080 - 44032: 0xC4DC, - 53081 - 44032: 0xB192, - 53082 - 44032: 0xB193, - 53083 - 44032: 0xB194, - 53084 - 44032: 0xC4DD, - 53085 - 44032: 0xB195, - 53086 - 44032: 0xB196, - 53087 - 44032: 0xB197, - 53088 - 44032: 0xB198, - 53089 - 44032: 0xB199, - 53090 - 44032: 0xB19A, - 53091 - 44032: 0xB19B, - 53092 - 44032: 0xC4DE, - 53093 - 44032: 0xC4DF, - 53094 - 44032: 0xB19C, - 53095 - 44032: 0xC4E0, - 53096 - 44032: 0xB19D, - 53097 - 44032: 0xC4E1, - 53098 - 44032: 0xB19E, - 53099 - 44032: 0xB19F, - 53100 - 44032: 0xB1A0, - 53101 - 44032: 0xB241, - 53102 - 44032: 0xB242, - 53103 - 44032: 0xB243, - 53104 - 44032: 0xC4E2, - 53105 - 44032: 0xC4E3, - 53106 - 44032: 0xB244, - 53107 - 44032: 0xB245, - 53108 - 44032: 0xC4E4, - 53109 - 44032: 0xB246, - 53110 - 44032: 0xB247, - 53111 - 44032: 0xB248, - 53112 - 44032: 0xC4E5, - 53113 - 44032: 0xB249, - 53114 - 44032: 0xB24A, - 53115 - 44032: 0xB24B, - 53116 - 44032: 0xB24C, - 53117 - 44032: 0xB24D, - 53118 - 44032: 0xB24E, - 53119 - 44032: 0xB24F, - 53120 - 44032: 0xC4E6, - 53121 - 44032: 0xB250, - 53122 - 44032: 0xB251, - 53123 - 44032: 0xB252, - 53124 - 44032: 0xB253, - 53125 - 44032: 0xC4E7, - 53126 - 44032: 0xB254, - 53127 - 44032: 0xB255, - 53128 - 44032: 0xB256, - 53129 - 44032: 0xB257, - 53130 - 44032: 0xB258, - 53131 - 44032: 0xB259, - 53132 - 44032: 0xC4E8, - 53133 - 44032: 0xB25A, - 53134 - 44032: 0xB261, - 53135 - 44032: 0xB262, - 53136 - 44032: 0xB263, - 53137 - 44032: 0xB264, - 53138 - 44032: 0xB265, - 53139 - 44032: 0xB266, - 53140 - 44032: 0xB267, - 53141 - 44032: 0xB268, - 53142 - 44032: 0xB269, - 53143 - 44032: 0xB26A, - 53144 - 44032: 0xB26B, - 53145 - 44032: 0xB26C, - 53146 - 44032: 0xB26D, - 53147 - 44032: 0xB26E, - 53148 - 44032: 0xB26F, - 53149 - 44032: 0xB270, - 53150 - 44032: 0xB271, - 53151 - 44032: 0xB272, - 53152 - 44032: 0xB273, - 53153 - 44032: 0xC4E9, - 53154 - 44032: 0xB274, - 53155 - 44032: 0xB275, - 53156 - 44032: 0xB276, - 53157 - 44032: 0xB277, - 53158 - 44032: 0xB278, - 53159 - 44032: 0xB279, - 53160 - 44032: 0xC4EA, - 53161 - 44032: 0xB27A, - 53162 - 44032: 0xB281, - 53163 - 44032: 0xB282, - 53164 - 44032: 0xB283, - 53165 - 44032: 0xB284, - 53166 - 44032: 0xB285, - 53167 - 44032: 0xB286, - 53168 - 44032: 0xC4EB, - 53169 - 44032: 0xB287, - 53170 - 44032: 0xB288, - 53171 - 44032: 0xB289, - 53172 - 44032: 0xB28A, - 53173 - 44032: 0xB28B, - 53174 - 44032: 0xB28C, - 53175 - 44032: 0xB28D, - 53176 - 44032: 0xB28E, - 53177 - 44032: 0xB28F, - 53178 - 44032: 0xB290, - 53179 - 44032: 0xB291, - 53180 - 44032: 0xB292, - 53181 - 44032: 0xB293, - 53182 - 44032: 0xB294, - 53183 - 44032: 0xB295, - 53184 - 44032: 0xB296, - 53185 - 44032: 0xB297, - 53186 - 44032: 0xB298, - 53187 - 44032: 0xB299, - 53188 - 44032: 0xC4EC, - 53189 - 44032: 0xB29A, - 53190 - 44032: 0xB29B, - 53191 - 44032: 0xB29C, - 53192 - 44032: 0xB29D, - 53193 - 44032: 0xB29E, - 53194 - 44032: 0xB29F, - 53195 - 44032: 0xB2A0, - 53196 - 44032: 0xB341, - 53197 - 44032: 0xB342, - 53198 - 44032: 0xB343, - 53199 - 44032: 0xB344, - 53200 - 44032: 0xB345, - 53201 - 44032: 0xB346, - 53202 - 44032: 0xB347, - 53203 - 44032: 0xB348, - 53204 - 44032: 0xB349, - 53205 - 44032: 0xB34A, - 53206 - 44032: 0xB34B, - 53207 - 44032: 0xB34C, - 53208 - 44032: 0xB34D, - 53209 - 44032: 0xB34E, - 53210 - 44032: 0xB34F, - 53211 - 44032: 0xB350, - 53212 - 44032: 0xB351, - 53213 - 44032: 0xB352, - 53214 - 44032: 0xB353, - 53215 - 44032: 0xB354, - 53216 - 44032: 0xC4ED, - 53217 - 44032: 0xC4EE, - 53218 - 44032: 0xB355, - 53219 - 44032: 0xB356, - 53220 - 44032: 0xC4EF, - 53221 - 44032: 0xB357, - 53222 - 44032: 0xB358, - 53223 - 44032: 0xB359, - 53224 - 44032: 0xC4F0, - 53225 - 44032: 0xB35A, - 53226 - 44032: 0xB361, - 53227 - 44032: 0xB362, - 53228 - 44032: 0xB363, - 53229 - 44032: 0xB364, - 53230 - 44032: 0xB365, - 53231 - 44032: 0xB366, - 53232 - 44032: 0xC4F1, - 53233 - 44032: 0xC4F2, - 53234 - 44032: 0xB367, - 53235 - 44032: 0xC4F3, - 53236 - 44032: 0xB368, - 53237 - 44032: 0xC4F4, - 53238 - 44032: 0xB369, - 53239 - 44032: 0xB36A, - 53240 - 44032: 0xB36B, - 53241 - 44032: 0xB36C, - 53242 - 44032: 0xB36D, - 53243 - 44032: 0xB36E, - 53244 - 44032: 0xC4F5, - 53245 - 44032: 0xB36F, - 53246 - 44032: 0xB370, - 53247 - 44032: 0xB371, - 53248 - 44032: 0xC4F6, - 53249 - 44032: 0xB372, - 53250 - 44032: 0xB373, - 53251 - 44032: 0xB374, - 53252 - 44032: 0xC4F7, - 53253 - 44032: 0xB375, - 53254 - 44032: 0xB376, - 53255 - 44032: 0xB377, - 53256 - 44032: 0xB378, - 53257 - 44032: 0xB379, - 53258 - 44032: 0xB37A, - 53259 - 44032: 0xB381, - 53260 - 44032: 0xB382, - 53261 - 44032: 0xB383, - 53262 - 44032: 0xB384, - 53263 - 44032: 0xB385, - 53264 - 44032: 0xB386, - 53265 - 44032: 0xC4F8, - 53266 - 44032: 0xB387, - 53267 - 44032: 0xB388, - 53268 - 44032: 0xB389, - 53269 - 44032: 0xB38A, - 53270 - 44032: 0xB38B, - 53271 - 44032: 0xB38C, - 53272 - 44032: 0xC4F9, - 53273 - 44032: 0xB38D, - 53274 - 44032: 0xB38E, - 53275 - 44032: 0xB38F, - 53276 - 44032: 0xB390, - 53277 - 44032: 0xB391, - 53278 - 44032: 0xB392, - 53279 - 44032: 0xB393, - 53280 - 44032: 0xB394, - 53281 - 44032: 0xB395, - 53282 - 44032: 0xB396, - 53283 - 44032: 0xB397, - 53284 - 44032: 0xB398, - 53285 - 44032: 0xB399, - 53286 - 44032: 0xB39A, - 53287 - 44032: 0xB39B, - 53288 - 44032: 0xB39C, - 53289 - 44032: 0xB39D, - 53290 - 44032: 0xB39E, - 53291 - 44032: 0xB39F, - 53292 - 44032: 0xB3A0, - 53293 - 44032: 0xC4FA, - 53294 - 44032: 0xB441, - 53295 - 44032: 0xB442, - 53296 - 44032: 0xB443, - 53297 - 44032: 0xB444, - 53298 - 44032: 0xB445, - 53299 - 44032: 0xB446, - 53300 - 44032: 0xC4FB, - 53301 - 44032: 0xC4FC, - 53302 - 44032: 0xB447, - 53303 - 44032: 0xB448, - 53304 - 44032: 0xC4FD, - 53305 - 44032: 0xB449, - 53306 - 44032: 0xB44A, - 53307 - 44032: 0xB44B, - 53308 - 44032: 0xC4FE, - 53309 - 44032: 0xB44C, - 53310 - 44032: 0xB44D, - 53311 - 44032: 0xB44E, - 53312 - 44032: 0xB44F, - 53313 - 44032: 0xB450, - 53314 - 44032: 0xB451, - 53315 - 44032: 0xB452, - 53316 - 44032: 0xC5A1, - 53317 - 44032: 0xC5A2, - 53318 - 44032: 0xB453, - 53319 - 44032: 0xC5A3, - 53320 - 44032: 0xB454, - 53321 - 44032: 0xC5A4, - 53322 - 44032: 0xB455, - 53323 - 44032: 0xB456, - 53324 - 44032: 0xB457, - 53325 - 44032: 0xB458, - 53326 - 44032: 0xB459, - 53327 - 44032: 0xB45A, - 53328 - 44032: 0xC5A5, - 53329 - 44032: 0xB461, - 53330 - 44032: 0xB462, - 53331 - 44032: 0xB463, - 53332 - 44032: 0xC5A6, - 53333 - 44032: 0xB464, - 53334 - 44032: 0xB465, - 53335 - 44032: 0xB466, - 53336 - 44032: 0xC5A7, - 53337 - 44032: 0xB467, - 53338 - 44032: 0xB468, - 53339 - 44032: 0xB469, - 53340 - 44032: 0xB46A, - 53341 - 44032: 0xB46B, - 53342 - 44032: 0xB46C, - 53343 - 44032: 0xB46D, - 53344 - 44032: 0xC5A8, - 53345 - 44032: 0xB46E, - 53346 - 44032: 0xB46F, - 53347 - 44032: 0xB470, - 53348 - 44032: 0xB471, - 53349 - 44032: 0xB472, - 53350 - 44032: 0xB473, - 53351 - 44032: 0xB474, - 53352 - 44032: 0xB475, - 53353 - 44032: 0xB476, - 53354 - 44032: 0xB477, - 53355 - 44032: 0xB478, - 53356 - 44032: 0xC5A9, - 53357 - 44032: 0xC5AA, - 53358 - 44032: 0xB479, - 53359 - 44032: 0xB47A, - 53360 - 44032: 0xC5AB, - 53361 - 44032: 0xB481, - 53362 - 44032: 0xB482, - 53363 - 44032: 0xB483, - 53364 - 44032: 0xC5AC, - 53365 - 44032: 0xB484, - 53366 - 44032: 0xB485, - 53367 - 44032: 0xB486, - 53368 - 44032: 0xB487, - 53369 - 44032: 0xB488, - 53370 - 44032: 0xB489, - 53371 - 44032: 0xB48A, - 53372 - 44032: 0xC5AD, - 53373 - 44032: 0xC5AE, - 53374 - 44032: 0xB48B, - 53375 - 44032: 0xB48C, - 53376 - 44032: 0xB48D, - 53377 - 44032: 0xC5AF, - 53378 - 44032: 0xB48E, - 53379 - 44032: 0xB48F, - 53380 - 44032: 0xB490, - 53381 - 44032: 0xB491, - 53382 - 44032: 0xB492, - 53383 - 44032: 0xB493, - 53384 - 44032: 0xB494, - 53385 - 44032: 0xB495, - 53386 - 44032: 0xB496, - 53387 - 44032: 0xB497, - 53388 - 44032: 0xB498, - 53389 - 44032: 0xB499, - 53390 - 44032: 0xB49A, - 53391 - 44032: 0xB49B, - 53392 - 44032: 0xB49C, - 53393 - 44032: 0xB49D, - 53394 - 44032: 0xB49E, - 53395 - 44032: 0xB49F, - 53396 - 44032: 0xB4A0, - 53397 - 44032: 0xB541, - 53398 - 44032: 0xB542, - 53399 - 44032: 0xB543, - 53400 - 44032: 0xB544, - 53401 - 44032: 0xB545, - 53402 - 44032: 0xB546, - 53403 - 44032: 0xB547, - 53404 - 44032: 0xB548, - 53405 - 44032: 0xB549, - 53406 - 44032: 0xB54A, - 53407 - 44032: 0xB54B, - 53408 - 44032: 0xB54C, - 53409 - 44032: 0xB54D, - 53410 - 44032: 0xB54E, - 53411 - 44032: 0xB54F, - 53412 - 44032: 0xC5B0, - 53413 - 44032: 0xC5B1, - 53414 - 44032: 0xB550, - 53415 - 44032: 0xB551, - 53416 - 44032: 0xC5B2, - 53417 - 44032: 0xB552, - 53418 - 44032: 0xB553, - 53419 - 44032: 0xB554, - 53420 - 44032: 0xC5B3, - 53421 - 44032: 0xB555, - 53422 - 44032: 0xB556, - 53423 - 44032: 0xB557, - 53424 - 44032: 0xB558, - 53425 - 44032: 0xB559, - 53426 - 44032: 0xB55A, - 53427 - 44032: 0xB561, - 53428 - 44032: 0xC5B4, - 53429 - 44032: 0xC5B5, - 53430 - 44032: 0xB562, - 53431 - 44032: 0xC5B6, - 53432 - 44032: 0xB563, - 53433 - 44032: 0xC5B7, - 53434 - 44032: 0xB564, - 53435 - 44032: 0xB565, - 53436 - 44032: 0xB566, - 53437 - 44032: 0xB567, - 53438 - 44032: 0xB568, - 53439 - 44032: 0xB569, - 53440 - 44032: 0xC5B8, - 53441 - 44032: 0xC5B9, - 53442 - 44032: 0xB56A, - 53443 - 44032: 0xB56B, - 53444 - 44032: 0xC5BA, - 53445 - 44032: 0xB56C, - 53446 - 44032: 0xB56D, - 53447 - 44032: 0xB56E, - 53448 - 44032: 0xC5BB, - 53449 - 44032: 0xC5BC, - 53450 - 44032: 0xB56F, - 53451 - 44032: 0xB570, - 53452 - 44032: 0xB571, - 53453 - 44032: 0xB572, - 53454 - 44032: 0xB573, - 53455 - 44032: 0xB574, - 53456 - 44032: 0xC5BD, - 53457 - 44032: 0xC5BE, - 53458 - 44032: 0xB575, - 53459 - 44032: 0xC5BF, - 53460 - 44032: 0xC5C0, - 53461 - 44032: 0xC5C1, - 53462 - 44032: 0xB576, - 53463 - 44032: 0xB577, - 53464 - 44032: 0xB578, - 53465 - 44032: 0xB579, - 53466 - 44032: 0xB57A, - 53467 - 44032: 0xB581, - 53468 - 44032: 0xC5C2, - 53469 - 44032: 0xC5C3, - 53470 - 44032: 0xB582, - 53471 - 44032: 0xB583, - 53472 - 44032: 0xC5C4, - 53473 - 44032: 0xB584, - 53474 - 44032: 0xB585, - 53475 - 44032: 0xB586, - 53476 - 44032: 0xC5C5, - 53477 - 44032: 0xB587, - 53478 - 44032: 0xB588, - 53479 - 44032: 0xB589, - 53480 - 44032: 0xB58A, - 53481 - 44032: 0xB58B, - 53482 - 44032: 0xB58C, - 53483 - 44032: 0xB58D, - 53484 - 44032: 0xC5C6, - 53485 - 44032: 0xC5C7, - 53486 - 44032: 0xB58E, - 53487 - 44032: 0xC5C8, - 53488 - 44032: 0xC5C9, - 53489 - 44032: 0xC5CA, - 53490 - 44032: 0xB58F, - 53491 - 44032: 0xB590, - 53492 - 44032: 0xB591, - 53493 - 44032: 0xB592, - 53494 - 44032: 0xB593, - 53495 - 44032: 0xB594, - 53496 - 44032: 0xC5CB, - 53497 - 44032: 0xB595, - 53498 - 44032: 0xB596, - 53499 - 44032: 0xB597, - 53500 - 44032: 0xB598, - 53501 - 44032: 0xB599, - 53502 - 44032: 0xB59A, - 53503 - 44032: 0xB59B, - 53504 - 44032: 0xB59C, - 53505 - 44032: 0xB59D, - 53506 - 44032: 0xB59E, - 53507 - 44032: 0xB59F, - 53508 - 44032: 0xB5A0, - 53509 - 44032: 0xB641, - 53510 - 44032: 0xB642, - 53511 - 44032: 0xB643, - 53512 - 44032: 0xB644, - 53513 - 44032: 0xB645, - 53514 - 44032: 0xB646, - 53515 - 44032: 0xB647, - 53516 - 44032: 0xB648, - 53517 - 44032: 0xC5CC, - 53518 - 44032: 0xB649, - 53519 - 44032: 0xB64A, - 53520 - 44032: 0xB64B, - 53521 - 44032: 0xB64C, - 53522 - 44032: 0xB64D, - 53523 - 44032: 0xB64E, - 53524 - 44032: 0xB64F, - 53525 - 44032: 0xB650, - 53526 - 44032: 0xB651, - 53527 - 44032: 0xB652, - 53528 - 44032: 0xB653, - 53529 - 44032: 0xB654, - 53530 - 44032: 0xB655, - 53531 - 44032: 0xB656, - 53532 - 44032: 0xB657, - 53533 - 44032: 0xB658, - 53534 - 44032: 0xB659, - 53535 - 44032: 0xB65A, - 53536 - 44032: 0xB661, - 53537 - 44032: 0xB662, - 53538 - 44032: 0xB663, - 53539 - 44032: 0xB664, - 53540 - 44032: 0xB665, - 53541 - 44032: 0xB666, - 53542 - 44032: 0xB667, - 53543 - 44032: 0xB668, - 53544 - 44032: 0xB669, - 53545 - 44032: 0xB66A, - 53546 - 44032: 0xB66B, - 53547 - 44032: 0xB66C, - 53548 - 44032: 0xB66D, - 53549 - 44032: 0xB66E, - 53550 - 44032: 0xB66F, - 53551 - 44032: 0xB670, - 53552 - 44032: 0xC5CD, - 53553 - 44032: 0xC5CE, - 53554 - 44032: 0xB671, - 53555 - 44032: 0xB672, - 53556 - 44032: 0xC5CF, - 53557 - 44032: 0xB673, - 53558 - 44032: 0xB674, - 53559 - 44032: 0xB675, - 53560 - 44032: 0xC5D0, - 53561 - 44032: 0xB676, - 53562 - 44032: 0xC5D1, - 53563 - 44032: 0xB677, - 53564 - 44032: 0xB678, - 53565 - 44032: 0xB679, - 53566 - 44032: 0xB67A, - 53567 - 44032: 0xB681, - 53568 - 44032: 0xC5D2, - 53569 - 44032: 0xC5D3, - 53570 - 44032: 0xB682, - 53571 - 44032: 0xC5D4, - 53572 - 44032: 0xC5D5, - 53573 - 44032: 0xC5D6, - 53574 - 44032: 0xB683, - 53575 - 44032: 0xB684, - 53576 - 44032: 0xB685, - 53577 - 44032: 0xB686, - 53578 - 44032: 0xB687, - 53579 - 44032: 0xB688, - 53580 - 44032: 0xC5D7, - 53581 - 44032: 0xC5D8, - 53582 - 44032: 0xB689, - 53583 - 44032: 0xB68A, - 53584 - 44032: 0xC5D9, - 53585 - 44032: 0xB68B, - 53586 - 44032: 0xB68C, - 53587 - 44032: 0xB68D, - 53588 - 44032: 0xC5DA, - 53589 - 44032: 0xB68E, - 53590 - 44032: 0xB68F, - 53591 - 44032: 0xB690, - 53592 - 44032: 0xB691, - 53593 - 44032: 0xB692, - 53594 - 44032: 0xB693, - 53595 - 44032: 0xB694, - 53596 - 44032: 0xC5DB, - 53597 - 44032: 0xC5DC, - 53598 - 44032: 0xB695, - 53599 - 44032: 0xC5DD, - 53600 - 44032: 0xB696, - 53601 - 44032: 0xC5DE, - 53602 - 44032: 0xB697, - 53603 - 44032: 0xB698, - 53604 - 44032: 0xB699, - 53605 - 44032: 0xB69A, - 53606 - 44032: 0xB69B, - 53607 - 44032: 0xB69C, - 53608 - 44032: 0xC5DF, - 53609 - 44032: 0xB69D, - 53610 - 44032: 0xB69E, - 53611 - 44032: 0xB69F, - 53612 - 44032: 0xC5E0, - 53613 - 44032: 0xB6A0, - 53614 - 44032: 0xB741, - 53615 - 44032: 0xB742, - 53616 - 44032: 0xB743, - 53617 - 44032: 0xB744, - 53618 - 44032: 0xB745, - 53619 - 44032: 0xB746, - 53620 - 44032: 0xB747, - 53621 - 44032: 0xB748, - 53622 - 44032: 0xB749, - 53623 - 44032: 0xB74A, - 53624 - 44032: 0xB74B, - 53625 - 44032: 0xB74C, - 53626 - 44032: 0xB74D, - 53627 - 44032: 0xB74E, - 53628 - 44032: 0xC5E1, - 53629 - 44032: 0xB74F, - 53630 - 44032: 0xB750, - 53631 - 44032: 0xB751, - 53632 - 44032: 0xB752, - 53633 - 44032: 0xB753, - 53634 - 44032: 0xB754, - 53635 - 44032: 0xB755, - 53636 - 44032: 0xC5E2, - 53637 - 44032: 0xB756, - 53638 - 44032: 0xB757, - 53639 - 44032: 0xB758, - 53640 - 44032: 0xC5E3, - 53641 - 44032: 0xB759, - 53642 - 44032: 0xB75A, - 53643 - 44032: 0xB761, - 53644 - 44032: 0xB762, - 53645 - 44032: 0xB763, - 53646 - 44032: 0xB764, - 53647 - 44032: 0xB765, - 53648 - 44032: 0xB766, - 53649 - 44032: 0xB767, - 53650 - 44032: 0xB768, - 53651 - 44032: 0xB769, - 53652 - 44032: 0xB76A, - 53653 - 44032: 0xB76B, - 53654 - 44032: 0xB76C, - 53655 - 44032: 0xB76D, - 53656 - 44032: 0xB76E, - 53657 - 44032: 0xB76F, - 53658 - 44032: 0xB770, - 53659 - 44032: 0xB771, - 53660 - 44032: 0xB772, - 53661 - 44032: 0xB773, - 53662 - 44032: 0xB774, - 53663 - 44032: 0xB775, - 53664 - 44032: 0xC5E4, - 53665 - 44032: 0xC5E5, - 53666 - 44032: 0xB776, - 53667 - 44032: 0xB777, - 53668 - 44032: 0xC5E6, - 53669 - 44032: 0xB778, - 53670 - 44032: 0xB779, - 53671 - 44032: 0xB77A, - 53672 - 44032: 0xC5E7, - 53673 - 44032: 0xB781, - 53674 - 44032: 0xB782, - 53675 - 44032: 0xB783, - 53676 - 44032: 0xB784, - 53677 - 44032: 0xB785, - 53678 - 44032: 0xB786, - 53679 - 44032: 0xB787, - 53680 - 44032: 0xC5E8, - 53681 - 44032: 0xC5E9, - 53682 - 44032: 0xB788, - 53683 - 44032: 0xC5EA, - 53684 - 44032: 0xB789, - 53685 - 44032: 0xC5EB, - 53686 - 44032: 0xB78A, - 53687 - 44032: 0xB78B, - 53688 - 44032: 0xB78C, - 53689 - 44032: 0xB78D, - 53690 - 44032: 0xC5EC, - 53691 - 44032: 0xB78E, - 53692 - 44032: 0xC5ED, - 53693 - 44032: 0xB78F, - 53694 - 44032: 0xB790, - 53695 - 44032: 0xB791, - 53696 - 44032: 0xC5EE, - 53697 - 44032: 0xB792, - 53698 - 44032: 0xB793, - 53699 - 44032: 0xB794, - 53700 - 44032: 0xB795, - 53701 - 44032: 0xB796, - 53702 - 44032: 0xB797, - 53703 - 44032: 0xB798, - 53704 - 44032: 0xB799, - 53705 - 44032: 0xB79A, - 53706 - 44032: 0xB79B, - 53707 - 44032: 0xB79C, - 53708 - 44032: 0xB79D, - 53709 - 44032: 0xB79E, - 53710 - 44032: 0xB79F, - 53711 - 44032: 0xB7A0, - 53712 - 44032: 0xB841, - 53713 - 44032: 0xB842, - 53714 - 44032: 0xB843, - 53715 - 44032: 0xB844, - 53716 - 44032: 0xB845, - 53717 - 44032: 0xB846, - 53718 - 44032: 0xB847, - 53719 - 44032: 0xB848, - 53720 - 44032: 0xC5EF, - 53721 - 44032: 0xB849, - 53722 - 44032: 0xB84A, - 53723 - 44032: 0xB84B, - 53724 - 44032: 0xB84C, - 53725 - 44032: 0xB84D, - 53726 - 44032: 0xB84E, - 53727 - 44032: 0xB84F, - 53728 - 44032: 0xB850, - 53729 - 44032: 0xB851, - 53730 - 44032: 0xB852, - 53731 - 44032: 0xB853, - 53732 - 44032: 0xB854, - 53733 - 44032: 0xB855, - 53734 - 44032: 0xB856, - 53735 - 44032: 0xB857, - 53736 - 44032: 0xB858, - 53737 - 44032: 0xB859, - 53738 - 44032: 0xB85A, - 53739 - 44032: 0xB861, - 53740 - 44032: 0xB862, - 53741 - 44032: 0xB863, - 53742 - 44032: 0xB864, - 53743 - 44032: 0xB865, - 53744 - 44032: 0xB866, - 53745 - 44032: 0xB867, - 53746 - 44032: 0xB868, - 53747 - 44032: 0xB869, - 53748 - 44032: 0xC5F0, - 53749 - 44032: 0xB86A, - 53750 - 44032: 0xB86B, - 53751 - 44032: 0xB86C, - 53752 - 44032: 0xC5F1, - 53753 - 44032: 0xB86D, - 53754 - 44032: 0xB86E, - 53755 - 44032: 0xB86F, - 53756 - 44032: 0xB870, - 53757 - 44032: 0xB871, - 53758 - 44032: 0xB872, - 53759 - 44032: 0xB873, - 53760 - 44032: 0xB874, - 53761 - 44032: 0xB875, - 53762 - 44032: 0xB876, - 53763 - 44032: 0xB877, - 53764 - 44032: 0xB878, - 53765 - 44032: 0xB879, - 53766 - 44032: 0xB87A, - 53767 - 44032: 0xC5F2, - 53768 - 44032: 0xB881, - 53769 - 44032: 0xC5F3, - 53770 - 44032: 0xB882, - 53771 - 44032: 0xB883, - 53772 - 44032: 0xB884, - 53773 - 44032: 0xB885, - 53774 - 44032: 0xB886, - 53775 - 44032: 0xB887, - 53776 - 44032: 0xC5F4, - 53777 - 44032: 0xB888, - 53778 - 44032: 0xB889, - 53779 - 44032: 0xB88A, - 53780 - 44032: 0xB88B, - 53781 - 44032: 0xB88C, - 53782 - 44032: 0xB88D, - 53783 - 44032: 0xB88E, - 53784 - 44032: 0xB88F, - 53785 - 44032: 0xB890, - 53786 - 44032: 0xB891, - 53787 - 44032: 0xB892, - 53788 - 44032: 0xB893, - 53789 - 44032: 0xB894, - 53790 - 44032: 0xB895, - 53791 - 44032: 0xB896, - 53792 - 44032: 0xB897, - 53793 - 44032: 0xB898, - 53794 - 44032: 0xB899, - 53795 - 44032: 0xB89A, - 53796 - 44032: 0xB89B, - 53797 - 44032: 0xB89C, - 53798 - 44032: 0xB89D, - 53799 - 44032: 0xB89E, - 53800 - 44032: 0xB89F, - 53801 - 44032: 0xB8A0, - 53802 - 44032: 0xB941, - 53803 - 44032: 0xB942, - 53804 - 44032: 0xC5F5, - 53805 - 44032: 0xC5F6, - 53806 - 44032: 0xB943, - 53807 - 44032: 0xB944, - 53808 - 44032: 0xC5F7, - 53809 - 44032: 0xB945, - 53810 - 44032: 0xB946, - 53811 - 44032: 0xB947, - 53812 - 44032: 0xC5F8, - 53813 - 44032: 0xB948, - 53814 - 44032: 0xB949, - 53815 - 44032: 0xB94A, - 53816 - 44032: 0xB94B, - 53817 - 44032: 0xB94C, - 53818 - 44032: 0xB94D, - 53819 - 44032: 0xB94E, - 53820 - 44032: 0xC5F9, - 53821 - 44032: 0xC5FA, - 53822 - 44032: 0xB94F, - 53823 - 44032: 0xC5FB, - 53824 - 44032: 0xB950, - 53825 - 44032: 0xC5FC, - 53826 - 44032: 0xB951, - 53827 - 44032: 0xB952, - 53828 - 44032: 0xB953, - 53829 - 44032: 0xB954, - 53830 - 44032: 0xB955, - 53831 - 44032: 0xB956, - 53832 - 44032: 0xC5FD, - 53833 - 44032: 0xB957, - 53834 - 44032: 0xB958, - 53835 - 44032: 0xB959, - 53836 - 44032: 0xB95A, - 53837 - 44032: 0xB961, - 53838 - 44032: 0xB962, - 53839 - 44032: 0xB963, - 53840 - 44032: 0xB964, - 53841 - 44032: 0xB965, - 53842 - 44032: 0xB966, - 53843 - 44032: 0xB967, - 53844 - 44032: 0xB968, - 53845 - 44032: 0xB969, - 53846 - 44032: 0xB96A, - 53847 - 44032: 0xB96B, - 53848 - 44032: 0xB96C, - 53849 - 44032: 0xB96D, - 53850 - 44032: 0xB96E, - 53851 - 44032: 0xB96F, - 53852 - 44032: 0xC5FE, - 53853 - 44032: 0xB970, - 53854 - 44032: 0xB971, - 53855 - 44032: 0xB972, - 53856 - 44032: 0xB973, - 53857 - 44032: 0xB974, - 53858 - 44032: 0xB975, - 53859 - 44032: 0xB976, - 53860 - 44032: 0xC6A1, - 53861 - 44032: 0xB977, - 53862 - 44032: 0xB978, - 53863 - 44032: 0xB979, - 53864 - 44032: 0xB97A, - 53865 - 44032: 0xB981, - 53866 - 44032: 0xB982, - 53867 - 44032: 0xB983, - 53868 - 44032: 0xB984, - 53869 - 44032: 0xB985, - 53870 - 44032: 0xB986, - 53871 - 44032: 0xB987, - 53872 - 44032: 0xB988, - 53873 - 44032: 0xB989, - 53874 - 44032: 0xB98A, - 53875 - 44032: 0xB98B, - 53876 - 44032: 0xB98C, - 53877 - 44032: 0xB98D, - 53878 - 44032: 0xB98E, - 53879 - 44032: 0xB98F, - 53880 - 44032: 0xB990, - 53881 - 44032: 0xB991, - 53882 - 44032: 0xB992, - 53883 - 44032: 0xB993, - 53884 - 44032: 0xB994, - 53885 - 44032: 0xB995, - 53886 - 44032: 0xB996, - 53887 - 44032: 0xB997, - 53888 - 44032: 0xC6A2, - 53889 - 44032: 0xC6A3, - 53890 - 44032: 0xB998, - 53891 - 44032: 0xB999, - 53892 - 44032: 0xC6A4, - 53893 - 44032: 0xB99A, - 53894 - 44032: 0xB99B, - 53895 - 44032: 0xB99C, - 53896 - 44032: 0xC6A5, - 53897 - 44032: 0xB99D, - 53898 - 44032: 0xB99E, - 53899 - 44032: 0xB99F, - 53900 - 44032: 0xB9A0, - 53901 - 44032: 0xBA41, - 53902 - 44032: 0xBA42, - 53903 - 44032: 0xBA43, - 53904 - 44032: 0xC6A6, - 53905 - 44032: 0xC6A7, - 53906 - 44032: 0xBA44, - 53907 - 44032: 0xBA45, - 53908 - 44032: 0xBA46, - 53909 - 44032: 0xC6A8, - 53910 - 44032: 0xBA47, - 53911 - 44032: 0xBA48, - 53912 - 44032: 0xBA49, - 53913 - 44032: 0xBA4A, - 53914 - 44032: 0xBA4B, - 53915 - 44032: 0xBA4C, - 53916 - 44032: 0xC6A9, - 53917 - 44032: 0xBA4D, - 53918 - 44032: 0xBA4E, - 53919 - 44032: 0xBA4F, - 53920 - 44032: 0xC6AA, - 53921 - 44032: 0xBA50, - 53922 - 44032: 0xBA51, - 53923 - 44032: 0xBA52, - 53924 - 44032: 0xC6AB, - 53925 - 44032: 0xBA53, - 53926 - 44032: 0xBA54, - 53927 - 44032: 0xBA55, - 53928 - 44032: 0xBA56, - 53929 - 44032: 0xBA57, - 53930 - 44032: 0xBA58, - 53931 - 44032: 0xBA59, - 53932 - 44032: 0xC6AC, - 53933 - 44032: 0xBA5A, - 53934 - 44032: 0xBA61, - 53935 - 44032: 0xBA62, - 53936 - 44032: 0xBA63, - 53937 - 44032: 0xC6AD, - 53938 - 44032: 0xBA64, - 53939 - 44032: 0xBA65, - 53940 - 44032: 0xBA66, - 53941 - 44032: 0xBA67, - 53942 - 44032: 0xBA68, - 53943 - 44032: 0xBA69, - 53944 - 44032: 0xC6AE, - 53945 - 44032: 0xC6AF, - 53946 - 44032: 0xBA6A, - 53947 - 44032: 0xBA6B, - 53948 - 44032: 0xC6B0, - 53949 - 44032: 0xBA6C, - 53950 - 44032: 0xBA6D, - 53951 - 44032: 0xC6B1, - 53952 - 44032: 0xC6B2, - 53953 - 44032: 0xBA6E, - 53954 - 44032: 0xC6B3, - 53955 - 44032: 0xBA6F, - 53956 - 44032: 0xBA70, - 53957 - 44032: 0xBA71, - 53958 - 44032: 0xBA72, - 53959 - 44032: 0xBA73, - 53960 - 44032: 0xC6B4, - 53961 - 44032: 0xC6B5, - 53962 - 44032: 0xBA74, - 53963 - 44032: 0xC6B6, - 53964 - 44032: 0xBA75, - 53965 - 44032: 0xBA76, - 53966 - 44032: 0xBA77, - 53967 - 44032: 0xBA78, - 53968 - 44032: 0xBA79, - 53969 - 44032: 0xBA7A, - 53970 - 44032: 0xBA81, - 53971 - 44032: 0xBA82, - 53972 - 44032: 0xC6B7, - 53973 - 44032: 0xBA83, - 53974 - 44032: 0xBA84, - 53975 - 44032: 0xBA85, - 53976 - 44032: 0xC6B8, - 53977 - 44032: 0xBA86, - 53978 - 44032: 0xBA87, - 53979 - 44032: 0xBA88, - 53980 - 44032: 0xC6B9, - 53981 - 44032: 0xBA89, - 53982 - 44032: 0xBA8A, - 53983 - 44032: 0xBA8B, - 53984 - 44032: 0xBA8C, - 53985 - 44032: 0xBA8D, - 53986 - 44032: 0xBA8E, - 53987 - 44032: 0xBA8F, - 53988 - 44032: 0xC6BA, - 53989 - 44032: 0xC6BB, - 53990 - 44032: 0xBA90, - 53991 - 44032: 0xBA91, - 53992 - 44032: 0xBA92, - 53993 - 44032: 0xBA93, - 53994 - 44032: 0xBA94, - 53995 - 44032: 0xBA95, - 53996 - 44032: 0xBA96, - 53997 - 44032: 0xBA97, - 53998 - 44032: 0xBA98, - 53999 - 44032: 0xBA99, - 54000 - 44032: 0xC6BC, - 54001 - 44032: 0xC6BD, - 54002 - 44032: 0xBA9A, - 54003 - 44032: 0xBA9B, - 54004 - 44032: 0xC6BE, - 54005 - 44032: 0xBA9C, - 54006 - 44032: 0xBA9D, - 54007 - 44032: 0xBA9E, - 54008 - 44032: 0xC6BF, - 54009 - 44032: 0xBA9F, - 54010 - 44032: 0xBAA0, - 54011 - 44032: 0xBB41, - 54012 - 44032: 0xBB42, - 54013 - 44032: 0xBB43, - 54014 - 44032: 0xBB44, - 54015 - 44032: 0xBB45, - 54016 - 44032: 0xC6C0, - 54017 - 44032: 0xC6C1, - 54018 - 44032: 0xBB46, - 54019 - 44032: 0xC6C2, - 54020 - 44032: 0xBB47, - 54021 - 44032: 0xC6C3, - 54022 - 44032: 0xBB48, - 54023 - 44032: 0xBB49, - 54024 - 44032: 0xBB4A, - 54025 - 44032: 0xBB4B, - 54026 - 44032: 0xBB4C, - 54027 - 44032: 0xBB4D, - 54028 - 44032: 0xC6C4, - 54029 - 44032: 0xC6C5, - 54030 - 44032: 0xC6C6, - 54031 - 44032: 0xBB4E, - 54032 - 44032: 0xC6C7, - 54033 - 44032: 0xBB4F, - 54034 - 44032: 0xBB50, - 54035 - 44032: 0xBB51, - 54036 - 44032: 0xC6C8, - 54037 - 44032: 0xBB52, - 54038 - 44032: 0xC6C9, - 54039 - 44032: 0xBB53, - 54040 - 44032: 0xBB54, - 54041 - 44032: 0xBB55, - 54042 - 44032: 0xBB56, - 54043 - 44032: 0xBB57, - 54044 - 44032: 0xC6CA, - 54045 - 44032: 0xC6CB, - 54046 - 44032: 0xBB58, - 54047 - 44032: 0xC6CC, - 54048 - 44032: 0xC6CD, - 54049 - 44032: 0xC6CE, - 54050 - 44032: 0xBB59, - 54051 - 44032: 0xBB5A, - 54052 - 44032: 0xBB61, - 54053 - 44032: 0xC6CF, - 54054 - 44032: 0xBB62, - 54055 - 44032: 0xBB63, - 54056 - 44032: 0xC6D0, - 54057 - 44032: 0xC6D1, - 54058 - 44032: 0xBB64, - 54059 - 44032: 0xBB65, - 54060 - 44032: 0xC6D2, - 54061 - 44032: 0xBB66, - 54062 - 44032: 0xBB67, - 54063 - 44032: 0xBB68, - 54064 - 44032: 0xC6D3, - 54065 - 44032: 0xBB69, - 54066 - 44032: 0xBB6A, - 54067 - 44032: 0xBB6B, - 54068 - 44032: 0xBB6C, - 54069 - 44032: 0xBB6D, - 54070 - 44032: 0xBB6E, - 54071 - 44032: 0xBB6F, - 54072 - 44032: 0xC6D4, - 54073 - 44032: 0xC6D5, - 54074 - 44032: 0xBB70, - 54075 - 44032: 0xC6D6, - 54076 - 44032: 0xC6D7, - 54077 - 44032: 0xC6D8, - 54078 - 44032: 0xBB71, - 54079 - 44032: 0xBB72, - 54080 - 44032: 0xBB73, - 54081 - 44032: 0xBB74, - 54082 - 44032: 0xBB75, - 54083 - 44032: 0xBB76, - 54084 - 44032: 0xC6D9, - 54085 - 44032: 0xC6DA, - 54086 - 44032: 0xBB77, - 54087 - 44032: 0xBB78, - 54088 - 44032: 0xBB79, - 54089 - 44032: 0xBB7A, - 54090 - 44032: 0xBB81, - 54091 - 44032: 0xBB82, - 54092 - 44032: 0xBB83, - 54093 - 44032: 0xBB84, - 54094 - 44032: 0xBB85, - 54095 - 44032: 0xBB86, - 54096 - 44032: 0xBB87, - 54097 - 44032: 0xBB88, - 54098 - 44032: 0xBB89, - 54099 - 44032: 0xBB8A, - 54100 - 44032: 0xBB8B, - 54101 - 44032: 0xBB8C, - 54102 - 44032: 0xBB8D, - 54103 - 44032: 0xBB8E, - 54104 - 44032: 0xBB8F, - 54105 - 44032: 0xBB90, - 54106 - 44032: 0xBB91, - 54107 - 44032: 0xBB92, - 54108 - 44032: 0xBB93, - 54109 - 44032: 0xBB94, - 54110 - 44032: 0xBB95, - 54111 - 44032: 0xBB96, - 54112 - 44032: 0xBB97, - 54113 - 44032: 0xBB98, - 54114 - 44032: 0xBB99, - 54115 - 44032: 0xBB9A, - 54116 - 44032: 0xBB9B, - 54117 - 44032: 0xBB9C, - 54118 - 44032: 0xBB9D, - 54119 - 44032: 0xBB9E, - 54120 - 44032: 0xBB9F, - 54121 - 44032: 0xBBA0, - 54122 - 44032: 0xBC41, - 54123 - 44032: 0xBC42, - 54124 - 44032: 0xBC43, - 54125 - 44032: 0xBC44, - 54126 - 44032: 0xBC45, - 54127 - 44032: 0xBC46, - 54128 - 44032: 0xBC47, - 54129 - 44032: 0xBC48, - 54130 - 44032: 0xBC49, - 54131 - 44032: 0xBC4A, - 54132 - 44032: 0xBC4B, - 54133 - 44032: 0xBC4C, - 54134 - 44032: 0xBC4D, - 54135 - 44032: 0xBC4E, - 54136 - 44032: 0xBC4F, - 54137 - 44032: 0xBC50, - 54138 - 44032: 0xBC51, - 54139 - 44032: 0xBC52, - 54140 - 44032: 0xC6DB, - 54141 - 44032: 0xC6DC, - 54142 - 44032: 0xBC53, - 54143 - 44032: 0xBC54, - 54144 - 44032: 0xC6DD, - 54145 - 44032: 0xBC55, - 54146 - 44032: 0xBC56, - 54147 - 44032: 0xBC57, - 54148 - 44032: 0xC6DE, - 54149 - 44032: 0xBC58, - 54150 - 44032: 0xBC59, - 54151 - 44032: 0xBC5A, - 54152 - 44032: 0xBC61, - 54153 - 44032: 0xBC62, - 54154 - 44032: 0xBC63, - 54155 - 44032: 0xBC64, - 54156 - 44032: 0xC6DF, - 54157 - 44032: 0xC6E0, - 54158 - 44032: 0xBC65, - 54159 - 44032: 0xC6E1, - 54160 - 44032: 0xC6E2, - 54161 - 44032: 0xC6E3, - 54162 - 44032: 0xBC66, - 54163 - 44032: 0xBC67, - 54164 - 44032: 0xBC68, - 54165 - 44032: 0xBC69, - 54166 - 44032: 0xBC6A, - 54167 - 44032: 0xBC6B, - 54168 - 44032: 0xC6E4, - 54169 - 44032: 0xC6E5, - 54170 - 44032: 0xBC6C, - 54171 - 44032: 0xBC6D, - 54172 - 44032: 0xC6E6, - 54173 - 44032: 0xBC6E, - 54174 - 44032: 0xBC6F, - 54175 - 44032: 0xBC70, - 54176 - 44032: 0xC6E7, - 54177 - 44032: 0xBC71, - 54178 - 44032: 0xBC72, - 54179 - 44032: 0xBC73, - 54180 - 44032: 0xBC74, - 54181 - 44032: 0xBC75, - 54182 - 44032: 0xBC76, - 54183 - 44032: 0xBC77, - 54184 - 44032: 0xC6E8, - 54185 - 44032: 0xC6E9, - 54186 - 44032: 0xBC78, - 54187 - 44032: 0xC6EA, - 54188 - 44032: 0xBC79, - 54189 - 44032: 0xC6EB, - 54190 - 44032: 0xBC7A, - 54191 - 44032: 0xBC81, - 54192 - 44032: 0xBC82, - 54193 - 44032: 0xBC83, - 54194 - 44032: 0xBC84, - 54195 - 44032: 0xBC85, - 54196 - 44032: 0xC6EC, - 54197 - 44032: 0xBC86, - 54198 - 44032: 0xBC87, - 54199 - 44032: 0xBC88, - 54200 - 44032: 0xC6ED, - 54201 - 44032: 0xBC89, - 54202 - 44032: 0xBC8A, - 54203 - 44032: 0xBC8B, - 54204 - 44032: 0xC6EE, - 54205 - 44032: 0xBC8C, - 54206 - 44032: 0xBC8D, - 54207 - 44032: 0xBC8E, - 54208 - 44032: 0xBC8F, - 54209 - 44032: 0xBC90, - 54210 - 44032: 0xBC91, - 54211 - 44032: 0xBC92, - 54212 - 44032: 0xC6EF, - 54213 - 44032: 0xC6F0, - 54214 - 44032: 0xBC93, - 54215 - 44032: 0xBC94, - 54216 - 44032: 0xC6F1, - 54217 - 44032: 0xC6F2, - 54218 - 44032: 0xBC95, - 54219 - 44032: 0xBC96, - 54220 - 44032: 0xBC97, - 54221 - 44032: 0xBC98, - 54222 - 44032: 0xBC99, - 54223 - 44032: 0xBC9A, - 54224 - 44032: 0xC6F3, - 54225 - 44032: 0xBC9B, - 54226 - 44032: 0xBC9C, - 54227 - 44032: 0xBC9D, - 54228 - 44032: 0xBC9E, - 54229 - 44032: 0xBC9F, - 54230 - 44032: 0xBCA0, - 54231 - 44032: 0xBD41, - 54232 - 44032: 0xC6F4, - 54233 - 44032: 0xBD42, - 54234 - 44032: 0xBD43, - 54235 - 44032: 0xBD44, - 54236 - 44032: 0xBD45, - 54237 - 44032: 0xBD46, - 54238 - 44032: 0xBD47, - 54239 - 44032: 0xBD48, - 54240 - 44032: 0xBD49, - 54241 - 44032: 0xC6F5, - 54242 - 44032: 0xBD4A, - 54243 - 44032: 0xC6F6, - 54244 - 44032: 0xBD4B, - 54245 - 44032: 0xBD4C, - 54246 - 44032: 0xBD4D, - 54247 - 44032: 0xBD4E, - 54248 - 44032: 0xBD4F, - 54249 - 44032: 0xBD50, - 54250 - 44032: 0xBD51, - 54251 - 44032: 0xBD52, - 54252 - 44032: 0xC6F7, - 54253 - 44032: 0xC6F8, - 54254 - 44032: 0xBD53, - 54255 - 44032: 0xBD54, - 54256 - 44032: 0xC6F9, - 54257 - 44032: 0xBD55, - 54258 - 44032: 0xBD56, - 54259 - 44032: 0xBD57, - 54260 - 44032: 0xC6FA, - 54261 - 44032: 0xBD58, - 54262 - 44032: 0xBD59, - 54263 - 44032: 0xBD5A, - 54264 - 44032: 0xBD61, - 54265 - 44032: 0xBD62, - 54266 - 44032: 0xBD63, - 54267 - 44032: 0xBD64, - 54268 - 44032: 0xC6FB, - 54269 - 44032: 0xC6FC, - 54270 - 44032: 0xBD65, - 54271 - 44032: 0xC6FD, - 54272 - 44032: 0xBD66, - 54273 - 44032: 0xC6FE, - 54274 - 44032: 0xBD67, - 54275 - 44032: 0xBD68, - 54276 - 44032: 0xBD69, - 54277 - 44032: 0xBD6A, - 54278 - 44032: 0xBD6B, - 54279 - 44032: 0xBD6C, - 54280 - 44032: 0xC7A1, - 54281 - 44032: 0xBD6D, - 54282 - 44032: 0xBD6E, - 54283 - 44032: 0xBD6F, - 54284 - 44032: 0xBD70, - 54285 - 44032: 0xBD71, - 54286 - 44032: 0xBD72, - 54287 - 44032: 0xBD73, - 54288 - 44032: 0xBD74, - 54289 - 44032: 0xBD75, - 54290 - 44032: 0xBD76, - 54291 - 44032: 0xBD77, - 54292 - 44032: 0xBD78, - 54293 - 44032: 0xBD79, - 54294 - 44032: 0xBD7A, - 54295 - 44032: 0xBD81, - 54296 - 44032: 0xBD82, - 54297 - 44032: 0xBD83, - 54298 - 44032: 0xBD84, - 54299 - 44032: 0xBD85, - 54300 - 44032: 0xBD86, - 54301 - 44032: 0xC7A2, - 54302 - 44032: 0xBD87, - 54303 - 44032: 0xBD88, - 54304 - 44032: 0xBD89, - 54305 - 44032: 0xBD8A, - 54306 - 44032: 0xBD8B, - 54307 - 44032: 0xBD8C, - 54308 - 44032: 0xBD8D, - 54309 - 44032: 0xBD8E, - 54310 - 44032: 0xBD8F, - 54311 - 44032: 0xBD90, - 54312 - 44032: 0xBD91, - 54313 - 44032: 0xBD92, - 54314 - 44032: 0xBD93, - 54315 - 44032: 0xBD94, - 54316 - 44032: 0xBD95, - 54317 - 44032: 0xBD96, - 54318 - 44032: 0xBD97, - 54319 - 44032: 0xBD98, - 54320 - 44032: 0xBD99, - 54321 - 44032: 0xBD9A, - 54322 - 44032: 0xBD9B, - 54323 - 44032: 0xBD9C, - 54324 - 44032: 0xBD9D, - 54325 - 44032: 0xBD9E, - 54326 - 44032: 0xBD9F, - 54327 - 44032: 0xBDA0, - 54328 - 44032: 0xBE41, - 54329 - 44032: 0xBE42, - 54330 - 44032: 0xBE43, - 54331 - 44032: 0xBE44, - 54332 - 44032: 0xBE45, - 54333 - 44032: 0xBE46, - 54334 - 44032: 0xBE47, - 54335 - 44032: 0xBE48, - 54336 - 44032: 0xC7A3, - 54337 - 44032: 0xBE49, - 54338 - 44032: 0xBE4A, - 54339 - 44032: 0xBE4B, - 54340 - 44032: 0xC7A4, - 54341 - 44032: 0xBE4C, - 54342 - 44032: 0xBE4D, - 54343 - 44032: 0xBE4E, - 54344 - 44032: 0xBE4F, - 54345 - 44032: 0xBE50, - 54346 - 44032: 0xBE51, - 54347 - 44032: 0xBE52, - 54348 - 44032: 0xBE53, - 54349 - 44032: 0xBE54, - 54350 - 44032: 0xBE55, - 54351 - 44032: 0xBE56, - 54352 - 44032: 0xBE57, - 54353 - 44032: 0xBE58, - 54354 - 44032: 0xBE59, - 54355 - 44032: 0xBE5A, - 54356 - 44032: 0xBE61, - 54357 - 44032: 0xBE62, - 54358 - 44032: 0xBE63, - 54359 - 44032: 0xBE64, - 54360 - 44032: 0xBE65, - 54361 - 44032: 0xBE66, - 54362 - 44032: 0xBE67, - 54363 - 44032: 0xBE68, - 54364 - 44032: 0xC7A5, - 54365 - 44032: 0xBE69, - 54366 - 44032: 0xBE6A, - 54367 - 44032: 0xBE6B, - 54368 - 44032: 0xC7A6, - 54369 - 44032: 0xBE6C, - 54370 - 44032: 0xBE6D, - 54371 - 44032: 0xBE6E, - 54372 - 44032: 0xC7A7, - 54373 - 44032: 0xBE6F, - 54374 - 44032: 0xBE70, - 54375 - 44032: 0xBE71, - 54376 - 44032: 0xBE72, - 54377 - 44032: 0xBE73, - 54378 - 44032: 0xBE74, - 54379 - 44032: 0xBE75, - 54380 - 44032: 0xBE76, - 54381 - 44032: 0xC7A8, - 54382 - 44032: 0xBE77, - 54383 - 44032: 0xC7A9, - 54384 - 44032: 0xBE78, - 54385 - 44032: 0xBE79, - 54386 - 44032: 0xBE7A, - 54387 - 44032: 0xBE81, - 54388 - 44032: 0xBE82, - 54389 - 44032: 0xBE83, - 54390 - 44032: 0xBE84, - 54391 - 44032: 0xBE85, - 54392 - 44032: 0xC7AA, - 54393 - 44032: 0xC7AB, - 54394 - 44032: 0xBE86, - 54395 - 44032: 0xBE87, - 54396 - 44032: 0xC7AC, - 54397 - 44032: 0xBE88, - 54398 - 44032: 0xBE89, - 54399 - 44032: 0xC7AD, - 54400 - 44032: 0xC7AE, - 54401 - 44032: 0xBE8A, - 54402 - 44032: 0xC7AF, - 54403 - 44032: 0xBE8B, - 54404 - 44032: 0xBE8C, - 54405 - 44032: 0xBE8D, - 54406 - 44032: 0xBE8E, - 54407 - 44032: 0xBE8F, - 54408 - 44032: 0xC7B0, - 54409 - 44032: 0xC7B1, - 54410 - 44032: 0xBE90, - 54411 - 44032: 0xC7B2, - 54412 - 44032: 0xBE91, - 54413 - 44032: 0xC7B3, - 54414 - 44032: 0xBE92, - 54415 - 44032: 0xBE93, - 54416 - 44032: 0xBE94, - 54417 - 44032: 0xBE95, - 54418 - 44032: 0xBE96, - 54419 - 44032: 0xBE97, - 54420 - 44032: 0xC7B4, - 54421 - 44032: 0xBE98, - 54422 - 44032: 0xBE99, - 54423 - 44032: 0xBE9A, - 54424 - 44032: 0xBE9B, - 54425 - 44032: 0xBE9C, - 54426 - 44032: 0xBE9D, - 54427 - 44032: 0xBE9E, - 54428 - 44032: 0xBE9F, - 54429 - 44032: 0xBEA0, - 54430 - 44032: 0xBF41, - 54431 - 44032: 0xBF42, - 54432 - 44032: 0xBF43, - 54433 - 44032: 0xBF44, - 54434 - 44032: 0xBF45, - 54435 - 44032: 0xBF46, - 54436 - 44032: 0xBF47, - 54437 - 44032: 0xBF48, - 54438 - 44032: 0xBF49, - 54439 - 44032: 0xBF4A, - 54440 - 44032: 0xBF4B, - 54441 - 44032: 0xC7B5, - 54442 - 44032: 0xBF4C, - 54443 - 44032: 0xBF4D, - 54444 - 44032: 0xBF4E, - 54445 - 44032: 0xBF4F, - 54446 - 44032: 0xBF50, - 54447 - 44032: 0xBF51, - 54448 - 44032: 0xBF52, - 54449 - 44032: 0xBF53, - 54450 - 44032: 0xBF54, - 54451 - 44032: 0xBF55, - 54452 - 44032: 0xBF56, - 54453 - 44032: 0xBF57, - 54454 - 44032: 0xBF58, - 54455 - 44032: 0xBF59, - 54456 - 44032: 0xBF5A, - 54457 - 44032: 0xBF61, - 54458 - 44032: 0xBF62, - 54459 - 44032: 0xBF63, - 54460 - 44032: 0xBF64, - 54461 - 44032: 0xBF65, - 54462 - 44032: 0xBF66, - 54463 - 44032: 0xBF67, - 54464 - 44032: 0xBF68, - 54465 - 44032: 0xBF69, - 54466 - 44032: 0xBF6A, - 54467 - 44032: 0xBF6B, - 54468 - 44032: 0xBF6C, - 54469 - 44032: 0xBF6D, - 54470 - 44032: 0xBF6E, - 54471 - 44032: 0xBF6F, - 54472 - 44032: 0xBF70, - 54473 - 44032: 0xBF71, - 54474 - 44032: 0xBF72, - 54475 - 44032: 0xBF73, - 54476 - 44032: 0xC7B6, - 54477 - 44032: 0xBF74, - 54478 - 44032: 0xBF75, - 54479 - 44032: 0xBF76, - 54480 - 44032: 0xC7B7, - 54481 - 44032: 0xBF77, - 54482 - 44032: 0xBF78, - 54483 - 44032: 0xBF79, - 54484 - 44032: 0xC7B8, - 54485 - 44032: 0xBF7A, - 54486 - 44032: 0xBF81, - 54487 - 44032: 0xBF82, - 54488 - 44032: 0xBF83, - 54489 - 44032: 0xBF84, - 54490 - 44032: 0xBF85, - 54491 - 44032: 0xBF86, - 54492 - 44032: 0xC7B9, - 54493 - 44032: 0xBF87, - 54494 - 44032: 0xBF88, - 54495 - 44032: 0xC7BA, - 54496 - 44032: 0xBF89, - 54497 - 44032: 0xBF8A, - 54498 - 44032: 0xBF8B, - 54499 - 44032: 0xBF8C, - 54500 - 44032: 0xBF8D, - 54501 - 44032: 0xBF8E, - 54502 - 44032: 0xBF8F, - 54503 - 44032: 0xBF90, - 54504 - 44032: 0xC7BB, - 54505 - 44032: 0xBF91, - 54506 - 44032: 0xBF92, - 54507 - 44032: 0xBF93, - 54508 - 44032: 0xC7BC, - 54509 - 44032: 0xBF94, - 54510 - 44032: 0xBF95, - 54511 - 44032: 0xBF96, - 54512 - 44032: 0xC7BD, - 54513 - 44032: 0xBF97, - 54514 - 44032: 0xBF98, - 54515 - 44032: 0xBF99, - 54516 - 44032: 0xBF9A, - 54517 - 44032: 0xBF9B, - 54518 - 44032: 0xBF9C, - 54519 - 44032: 0xBF9D, - 54520 - 44032: 0xC7BE, - 54521 - 44032: 0xBF9E, - 54522 - 44032: 0xBF9F, - 54523 - 44032: 0xC7BF, - 54524 - 44032: 0xBFA0, - 54525 - 44032: 0xC7C0, - 54526 - 44032: 0xC041, - 54527 - 44032: 0xC042, - 54528 - 44032: 0xC043, - 54529 - 44032: 0xC044, - 54530 - 44032: 0xC045, - 54531 - 44032: 0xC046, - 54532 - 44032: 0xC7C1, - 54533 - 44032: 0xC047, - 54534 - 44032: 0xC048, - 54535 - 44032: 0xC049, - 54536 - 44032: 0xC7C2, - 54537 - 44032: 0xC04A, - 54538 - 44032: 0xC04B, - 54539 - 44032: 0xC04C, - 54540 - 44032: 0xC7C3, - 54541 - 44032: 0xC04D, - 54542 - 44032: 0xC04E, - 54543 - 44032: 0xC04F, - 54544 - 44032: 0xC050, - 54545 - 44032: 0xC051, - 54546 - 44032: 0xC052, - 54547 - 44032: 0xC053, - 54548 - 44032: 0xC7C4, - 54549 - 44032: 0xC7C5, - 54550 - 44032: 0xC054, - 54551 - 44032: 0xC7C6, - 54552 - 44032: 0xC055, - 54553 - 44032: 0xC056, - 54554 - 44032: 0xC057, - 54555 - 44032: 0xC058, - 54556 - 44032: 0xC059, - 54557 - 44032: 0xC05A, - 54558 - 44032: 0xC061, - 54559 - 44032: 0xC062, - 54560 - 44032: 0xC063, - 54561 - 44032: 0xC064, - 54562 - 44032: 0xC065, - 54563 - 44032: 0xC066, - 54564 - 44032: 0xC067, - 54565 - 44032: 0xC068, - 54566 - 44032: 0xC069, - 54567 - 44032: 0xC06A, - 54568 - 44032: 0xC06B, - 54569 - 44032: 0xC06C, - 54570 - 44032: 0xC06D, - 54571 - 44032: 0xC06E, - 54572 - 44032: 0xC06F, - 54573 - 44032: 0xC070, - 54574 - 44032: 0xC071, - 54575 - 44032: 0xC072, - 54576 - 44032: 0xC073, - 54577 - 44032: 0xC074, - 54578 - 44032: 0xC075, - 54579 - 44032: 0xC076, - 54580 - 44032: 0xC077, - 54581 - 44032: 0xC078, - 54582 - 44032: 0xC079, - 54583 - 44032: 0xC07A, - 54584 - 44032: 0xC081, - 54585 - 44032: 0xC082, - 54586 - 44032: 0xC083, - 54587 - 44032: 0xC084, - 54588 - 44032: 0xC7C7, - 54589 - 44032: 0xC7C8, - 54590 - 44032: 0xC085, - 54591 - 44032: 0xC086, - 54592 - 44032: 0xC7C9, - 54593 - 44032: 0xC087, - 54594 - 44032: 0xC088, - 54595 - 44032: 0xC089, - 54596 - 44032: 0xC7CA, - 54597 - 44032: 0xC08A, - 54598 - 44032: 0xC08B, - 54599 - 44032: 0xC08C, - 54600 - 44032: 0xC08D, - 54601 - 44032: 0xC08E, - 54602 - 44032: 0xC08F, - 54603 - 44032: 0xC090, - 54604 - 44032: 0xC7CB, - 54605 - 44032: 0xC7CC, - 54606 - 44032: 0xC091, - 54607 - 44032: 0xC7CD, - 54608 - 44032: 0xC092, - 54609 - 44032: 0xC7CE, - 54610 - 44032: 0xC093, - 54611 - 44032: 0xC094, - 54612 - 44032: 0xC095, - 54613 - 44032: 0xC096, - 54614 - 44032: 0xC097, - 54615 - 44032: 0xC098, - 54616 - 44032: 0xC7CF, - 54617 - 44032: 0xC7D0, - 54618 - 44032: 0xC099, - 54619 - 44032: 0xC09A, - 54620 - 44032: 0xC7D1, - 54621 - 44032: 0xC09B, - 54622 - 44032: 0xC09C, - 54623 - 44032: 0xC09D, - 54624 - 44032: 0xC7D2, - 54625 - 44032: 0xC09E, - 54626 - 44032: 0xC09F, - 54627 - 44032: 0xC0A0, - 54628 - 44032: 0xC141, - 54629 - 44032: 0xC7D3, - 54630 - 44032: 0xC142, - 54631 - 44032: 0xC143, - 54632 - 44032: 0xC7D4, - 54633 - 44032: 0xC7D5, - 54634 - 44032: 0xC144, - 54635 - 44032: 0xC7D6, - 54636 - 44032: 0xC145, - 54637 - 44032: 0xC7D7, - 54638 - 44032: 0xC146, - 54639 - 44032: 0xC147, - 54640 - 44032: 0xC148, - 54641 - 44032: 0xC149, - 54642 - 44032: 0xC14A, - 54643 - 44032: 0xC14B, - 54644 - 44032: 0xC7D8, - 54645 - 44032: 0xC7D9, - 54646 - 44032: 0xC14C, - 54647 - 44032: 0xC14D, - 54648 - 44032: 0xC7DA, - 54649 - 44032: 0xC14E, - 54650 - 44032: 0xC14F, - 54651 - 44032: 0xC150, - 54652 - 44032: 0xC7DB, - 54653 - 44032: 0xC151, - 54654 - 44032: 0xC152, - 54655 - 44032: 0xC153, - 54656 - 44032: 0xC154, - 54657 - 44032: 0xC155, - 54658 - 44032: 0xC156, - 54659 - 44032: 0xC157, - 54660 - 44032: 0xC7DC, - 54661 - 44032: 0xC7DD, - 54662 - 44032: 0xC158, - 54663 - 44032: 0xC7DE, - 54664 - 44032: 0xC7DF, - 54665 - 44032: 0xC7E0, - 54666 - 44032: 0xC159, - 54667 - 44032: 0xC15A, - 54668 - 44032: 0xC161, - 54669 - 44032: 0xC162, - 54670 - 44032: 0xC163, - 54671 - 44032: 0xC164, - 54672 - 44032: 0xC7E1, - 54673 - 44032: 0xC165, - 54674 - 44032: 0xC166, - 54675 - 44032: 0xC167, - 54676 - 44032: 0xC168, - 54677 - 44032: 0xC169, - 54678 - 44032: 0xC16A, - 54679 - 44032: 0xC16B, - 54680 - 44032: 0xC16C, - 54681 - 44032: 0xC16D, - 54682 - 44032: 0xC16E, - 54683 - 44032: 0xC16F, - 54684 - 44032: 0xC170, - 54685 - 44032: 0xC171, - 54686 - 44032: 0xC172, - 54687 - 44032: 0xC173, - 54688 - 44032: 0xC174, - 54689 - 44032: 0xC175, - 54690 - 44032: 0xC176, - 54691 - 44032: 0xC177, - 54692 - 44032: 0xC178, - 54693 - 44032: 0xC7E2, - 54694 - 44032: 0xC179, - 54695 - 44032: 0xC17A, - 54696 - 44032: 0xC181, - 54697 - 44032: 0xC182, - 54698 - 44032: 0xC183, - 54699 - 44032: 0xC184, - 54700 - 44032: 0xC185, - 54701 - 44032: 0xC186, - 54702 - 44032: 0xC187, - 54703 - 44032: 0xC188, - 54704 - 44032: 0xC189, - 54705 - 44032: 0xC18A, - 54706 - 44032: 0xC18B, - 54707 - 44032: 0xC18C, - 54708 - 44032: 0xC18D, - 54709 - 44032: 0xC18E, - 54710 - 44032: 0xC18F, - 54711 - 44032: 0xC190, - 54712 - 44032: 0xC191, - 54713 - 44032: 0xC192, - 54714 - 44032: 0xC193, - 54715 - 44032: 0xC194, - 54716 - 44032: 0xC195, - 54717 - 44032: 0xC196, - 54718 - 44032: 0xC197, - 54719 - 44032: 0xC198, - 54720 - 44032: 0xC199, - 54721 - 44032: 0xC19A, - 54722 - 44032: 0xC19B, - 54723 - 44032: 0xC19C, - 54724 - 44032: 0xC19D, - 54725 - 44032: 0xC19E, - 54726 - 44032: 0xC19F, - 54727 - 44032: 0xC1A0, - 54728 - 44032: 0xC7E3, - 54729 - 44032: 0xC7E4, - 54730 - 44032: 0xC241, - 54731 - 44032: 0xC242, - 54732 - 44032: 0xC7E5, - 54733 - 44032: 0xC243, - 54734 - 44032: 0xC244, - 54735 - 44032: 0xC245, - 54736 - 44032: 0xC7E6, - 54737 - 44032: 0xC246, - 54738 - 44032: 0xC7E7, - 54739 - 44032: 0xC247, - 54740 - 44032: 0xC248, - 54741 - 44032: 0xC249, - 54742 - 44032: 0xC24A, - 54743 - 44032: 0xC24B, - 54744 - 44032: 0xC7E8, - 54745 - 44032: 0xC7E9, - 54746 - 44032: 0xC24C, - 54747 - 44032: 0xC7EA, - 54748 - 44032: 0xC24D, - 54749 - 44032: 0xC7EB, - 54750 - 44032: 0xC24E, - 54751 - 44032: 0xC24F, - 54752 - 44032: 0xC250, - 54753 - 44032: 0xC251, - 54754 - 44032: 0xC252, - 54755 - 44032: 0xC253, - 54756 - 44032: 0xC7EC, - 54757 - 44032: 0xC7ED, - 54758 - 44032: 0xC254, - 54759 - 44032: 0xC255, - 54760 - 44032: 0xC7EE, - 54761 - 44032: 0xC256, - 54762 - 44032: 0xC257, - 54763 - 44032: 0xC258, - 54764 - 44032: 0xC7EF, - 54765 - 44032: 0xC259, - 54766 - 44032: 0xC25A, - 54767 - 44032: 0xC261, - 54768 - 44032: 0xC262, - 54769 - 44032: 0xC263, - 54770 - 44032: 0xC264, - 54771 - 44032: 0xC265, - 54772 - 44032: 0xC7F0, - 54773 - 44032: 0xC7F1, - 54774 - 44032: 0xC266, - 54775 - 44032: 0xC7F2, - 54776 - 44032: 0xC267, - 54777 - 44032: 0xC7F3, - 54778 - 44032: 0xC268, - 54779 - 44032: 0xC269, - 54780 - 44032: 0xC26A, - 54781 - 44032: 0xC26B, - 54782 - 44032: 0xC26C, - 54783 - 44032: 0xC26D, - 54784 - 44032: 0xC7F4, - 54785 - 44032: 0xC7F5, - 54786 - 44032: 0xC26E, - 54787 - 44032: 0xC26F, - 54788 - 44032: 0xC7F6, - 54789 - 44032: 0xC270, - 54790 - 44032: 0xC271, - 54791 - 44032: 0xC272, - 54792 - 44032: 0xC7F7, - 54793 - 44032: 0xC273, - 54794 - 44032: 0xC274, - 54795 - 44032: 0xC275, - 54796 - 44032: 0xC276, - 54797 - 44032: 0xC277, - 54798 - 44032: 0xC278, - 54799 - 44032: 0xC279, - 54800 - 44032: 0xC7F8, - 54801 - 44032: 0xC7F9, - 54802 - 44032: 0xC27A, - 54803 - 44032: 0xC7FA, - 54804 - 44032: 0xC7FB, - 54805 - 44032: 0xC7FC, - 54806 - 44032: 0xC281, - 54807 - 44032: 0xC282, - 54808 - 44032: 0xC283, - 54809 - 44032: 0xC284, - 54810 - 44032: 0xC285, - 54811 - 44032: 0xC286, - 54812 - 44032: 0xC7FD, - 54813 - 44032: 0xC287, - 54814 - 44032: 0xC288, - 54815 - 44032: 0xC289, - 54816 - 44032: 0xC7FE, - 54817 - 44032: 0xC28A, - 54818 - 44032: 0xC28B, - 54819 - 44032: 0xC28C, - 54820 - 44032: 0xC8A1, - 54821 - 44032: 0xC28D, - 54822 - 44032: 0xC28E, - 54823 - 44032: 0xC28F, - 54824 - 44032: 0xC290, - 54825 - 44032: 0xC291, - 54826 - 44032: 0xC292, - 54827 - 44032: 0xC293, - 54828 - 44032: 0xC294, - 54829 - 44032: 0xC8A2, - 54830 - 44032: 0xC295, - 54831 - 44032: 0xC296, - 54832 - 44032: 0xC297, - 54833 - 44032: 0xC298, - 54834 - 44032: 0xC299, - 54835 - 44032: 0xC29A, - 54836 - 44032: 0xC29B, - 54837 - 44032: 0xC29C, - 54838 - 44032: 0xC29D, - 54839 - 44032: 0xC29E, - 54840 - 44032: 0xC8A3, - 54841 - 44032: 0xC8A4, - 54842 - 44032: 0xC29F, - 54843 - 44032: 0xC2A0, - 54844 - 44032: 0xC8A5, - 54845 - 44032: 0xC341, - 54846 - 44032: 0xC342, - 54847 - 44032: 0xC343, - 54848 - 44032: 0xC8A6, - 54849 - 44032: 0xC344, - 54850 - 44032: 0xC345, - 54851 - 44032: 0xC346, - 54852 - 44032: 0xC347, - 54853 - 44032: 0xC8A7, - 54854 - 44032: 0xC348, - 54855 - 44032: 0xC349, - 54856 - 44032: 0xC8A8, - 54857 - 44032: 0xC8A9, - 54858 - 44032: 0xC34A, - 54859 - 44032: 0xC8AA, - 54860 - 44032: 0xC34B, - 54861 - 44032: 0xC8AB, - 54862 - 44032: 0xC34C, - 54863 - 44032: 0xC34D, - 54864 - 44032: 0xC34E, - 54865 - 44032: 0xC8AC, - 54866 - 44032: 0xC34F, - 54867 - 44032: 0xC350, - 54868 - 44032: 0xC8AD, - 54869 - 44032: 0xC8AE, - 54870 - 44032: 0xC351, - 54871 - 44032: 0xC352, - 54872 - 44032: 0xC8AF, - 54873 - 44032: 0xC353, - 54874 - 44032: 0xC354, - 54875 - 44032: 0xC355, - 54876 - 44032: 0xC8B0, - 54877 - 44032: 0xC356, - 54878 - 44032: 0xC357, - 54879 - 44032: 0xC358, - 54880 - 44032: 0xC359, - 54881 - 44032: 0xC35A, - 54882 - 44032: 0xC361, - 54883 - 44032: 0xC362, - 54884 - 44032: 0xC363, - 54885 - 44032: 0xC364, - 54886 - 44032: 0xC365, - 54887 - 44032: 0xC8B1, - 54888 - 44032: 0xC366, - 54889 - 44032: 0xC8B2, - 54890 - 44032: 0xC367, - 54891 - 44032: 0xC368, - 54892 - 44032: 0xC369, - 54893 - 44032: 0xC36A, - 54894 - 44032: 0xC36B, - 54895 - 44032: 0xC36C, - 54896 - 44032: 0xC8B3, - 54897 - 44032: 0xC8B4, - 54898 - 44032: 0xC36D, - 54899 - 44032: 0xC36E, - 54900 - 44032: 0xC8B5, - 54901 - 44032: 0xC36F, - 54902 - 44032: 0xC370, - 54903 - 44032: 0xC371, - 54904 - 44032: 0xC372, - 54905 - 44032: 0xC373, - 54906 - 44032: 0xC374, - 54907 - 44032: 0xC375, - 54908 - 44032: 0xC376, - 54909 - 44032: 0xC377, - 54910 - 44032: 0xC378, - 54911 - 44032: 0xC379, - 54912 - 44032: 0xC37A, - 54913 - 44032: 0xC381, - 54914 - 44032: 0xC382, - 54915 - 44032: 0xC8B6, - 54916 - 44032: 0xC383, - 54917 - 44032: 0xC8B7, - 54918 - 44032: 0xC384, - 54919 - 44032: 0xC385, - 54920 - 44032: 0xC386, - 54921 - 44032: 0xC387, - 54922 - 44032: 0xC388, - 54923 - 44032: 0xC389, - 54924 - 44032: 0xC8B8, - 54925 - 44032: 0xC8B9, - 54926 - 44032: 0xC38A, - 54927 - 44032: 0xC38B, - 54928 - 44032: 0xC8BA, - 54929 - 44032: 0xC38C, - 54930 - 44032: 0xC38D, - 54931 - 44032: 0xC38E, - 54932 - 44032: 0xC8BB, - 54933 - 44032: 0xC38F, - 54934 - 44032: 0xC390, - 54935 - 44032: 0xC391, - 54936 - 44032: 0xC392, - 54937 - 44032: 0xC393, - 54938 - 44032: 0xC394, - 54939 - 44032: 0xC395, - 54940 - 44032: 0xC396, - 54941 - 44032: 0xC8BC, - 54942 - 44032: 0xC397, - 54943 - 44032: 0xC8BD, - 54944 - 44032: 0xC398, - 54945 - 44032: 0xC8BE, - 54946 - 44032: 0xC399, - 54947 - 44032: 0xC39A, - 54948 - 44032: 0xC39B, - 54949 - 44032: 0xC39C, - 54950 - 44032: 0xC39D, - 54951 - 44032: 0xC39E, - 54952 - 44032: 0xC8BF, - 54953 - 44032: 0xC39F, - 54954 - 44032: 0xC3A0, - 54955 - 44032: 0xC441, - 54956 - 44032: 0xC8C0, - 54957 - 44032: 0xC442, - 54958 - 44032: 0xC443, - 54959 - 44032: 0xC444, - 54960 - 44032: 0xC8C1, - 54961 - 44032: 0xC445, - 54962 - 44032: 0xC446, - 54963 - 44032: 0xC447, - 54964 - 44032: 0xC448, - 54965 - 44032: 0xC449, - 54966 - 44032: 0xC44A, - 54967 - 44032: 0xC44B, - 54968 - 44032: 0xC44C, - 54969 - 44032: 0xC8C2, - 54970 - 44032: 0xC44D, - 54971 - 44032: 0xC8C3, - 54972 - 44032: 0xC44E, - 54973 - 44032: 0xC44F, - 54974 - 44032: 0xC450, - 54975 - 44032: 0xC451, - 54976 - 44032: 0xC452, - 54977 - 44032: 0xC453, - 54978 - 44032: 0xC454, - 54979 - 44032: 0xC455, - 54980 - 44032: 0xC8C4, - 54981 - 44032: 0xC8C5, - 54982 - 44032: 0xC456, - 54983 - 44032: 0xC457, - 54984 - 44032: 0xC8C6, - 54985 - 44032: 0xC458, - 54986 - 44032: 0xC459, - 54987 - 44032: 0xC45A, - 54988 - 44032: 0xC8C7, - 54989 - 44032: 0xC461, - 54990 - 44032: 0xC462, - 54991 - 44032: 0xC463, - 54992 - 44032: 0xC464, - 54993 - 44032: 0xC8C8, - 54994 - 44032: 0xC465, - 54995 - 44032: 0xC466, - 54996 - 44032: 0xC8C9, - 54997 - 44032: 0xC467, - 54998 - 44032: 0xC468, - 54999 - 44032: 0xC8CA, - 55000 - 44032: 0xC469, - 55001 - 44032: 0xC8CB, - 55002 - 44032: 0xC46A, - 55003 - 44032: 0xC46B, - 55004 - 44032: 0xC46C, - 55005 - 44032: 0xC46D, - 55006 - 44032: 0xC46E, - 55007 - 44032: 0xC46F, - 55008 - 44032: 0xC8CC, - 55009 - 44032: 0xC470, - 55010 - 44032: 0xC471, - 55011 - 44032: 0xC472, - 55012 - 44032: 0xC8CD, - 55013 - 44032: 0xC473, - 55014 - 44032: 0xC474, - 55015 - 44032: 0xC475, - 55016 - 44032: 0xC8CE, - 55017 - 44032: 0xC476, - 55018 - 44032: 0xC477, - 55019 - 44032: 0xC478, - 55020 - 44032: 0xC479, - 55021 - 44032: 0xC47A, - 55022 - 44032: 0xC481, - 55023 - 44032: 0xC482, - 55024 - 44032: 0xC8CF, - 55025 - 44032: 0xC483, - 55026 - 44032: 0xC484, - 55027 - 44032: 0xC485, - 55028 - 44032: 0xC486, - 55029 - 44032: 0xC8D0, - 55030 - 44032: 0xC487, - 55031 - 44032: 0xC488, - 55032 - 44032: 0xC489, - 55033 - 44032: 0xC48A, - 55034 - 44032: 0xC48B, - 55035 - 44032: 0xC48C, - 55036 - 44032: 0xC8D1, - 55037 - 44032: 0xC8D2, - 55038 - 44032: 0xC48D, - 55039 - 44032: 0xC48E, - 55040 - 44032: 0xC8D3, - 55041 - 44032: 0xC48F, - 55042 - 44032: 0xC490, - 55043 - 44032: 0xC491, - 55044 - 44032: 0xC8D4, - 55045 - 44032: 0xC492, - 55046 - 44032: 0xC493, - 55047 - 44032: 0xC494, - 55048 - 44032: 0xC495, - 55049 - 44032: 0xC496, - 55050 - 44032: 0xC497, - 55051 - 44032: 0xC498, - 55052 - 44032: 0xC499, - 55053 - 44032: 0xC49A, - 55054 - 44032: 0xC49B, - 55055 - 44032: 0xC49C, - 55056 - 44032: 0xC49D, - 55057 - 44032: 0xC8D5, - 55058 - 44032: 0xC49E, - 55059 - 44032: 0xC49F, - 55060 - 44032: 0xC4A0, - 55061 - 44032: 0xC541, - 55062 - 44032: 0xC542, - 55063 - 44032: 0xC543, - 55064 - 44032: 0xC8D6, - 55065 - 44032: 0xC8D7, - 55066 - 44032: 0xC544, - 55067 - 44032: 0xC545, - 55068 - 44032: 0xC8D8, - 55069 - 44032: 0xC546, - 55070 - 44032: 0xC547, - 55071 - 44032: 0xC548, - 55072 - 44032: 0xC8D9, - 55073 - 44032: 0xC549, - 55074 - 44032: 0xC54A, - 55075 - 44032: 0xC54B, - 55076 - 44032: 0xC54C, - 55077 - 44032: 0xC54D, - 55078 - 44032: 0xC54E, - 55079 - 44032: 0xC54F, - 55080 - 44032: 0xC8DA, - 55081 - 44032: 0xC8DB, - 55082 - 44032: 0xC550, - 55083 - 44032: 0xC8DC, - 55084 - 44032: 0xC551, - 55085 - 44032: 0xC8DD, - 55086 - 44032: 0xC552, - 55087 - 44032: 0xC553, - 55088 - 44032: 0xC554, - 55089 - 44032: 0xC555, - 55090 - 44032: 0xC556, - 55091 - 44032: 0xC557, - 55092 - 44032: 0xC8DE, - 55093 - 44032: 0xC8DF, - 55094 - 44032: 0xC558, - 55095 - 44032: 0xC559, - 55096 - 44032: 0xC8E0, - 55097 - 44032: 0xC55A, - 55098 - 44032: 0xC561, - 55099 - 44032: 0xC562, - 55100 - 44032: 0xC8E1, - 55101 - 44032: 0xC563, - 55102 - 44032: 0xC564, - 55103 - 44032: 0xC565, - 55104 - 44032: 0xC566, - 55105 - 44032: 0xC567, - 55106 - 44032: 0xC568, - 55107 - 44032: 0xC569, - 55108 - 44032: 0xC8E2, - 55109 - 44032: 0xC56A, - 55110 - 44032: 0xC56B, - 55111 - 44032: 0xC8E3, - 55112 - 44032: 0xC56C, - 55113 - 44032: 0xC8E4, - 55114 - 44032: 0xC56D, - 55115 - 44032: 0xC56E, - 55116 - 44032: 0xC56F, - 55117 - 44032: 0xC570, - 55118 - 44032: 0xC571, - 55119 - 44032: 0xC572, - 55120 - 44032: 0xC8E5, - 55121 - 44032: 0xC8E6, - 55122 - 44032: 0xC573, - 55123 - 44032: 0xC574, - 55124 - 44032: 0xC8E7, - 55125 - 44032: 0xC575, - 55126 - 44032: 0xC8E8, - 55127 - 44032: 0xC8E9, - 55128 - 44032: 0xC8EA, - 55129 - 44032: 0xC8EB, - 55130 - 44032: 0xC576, - 55131 - 44032: 0xC577, - 55132 - 44032: 0xC578, - 55133 - 44032: 0xC579, - 55134 - 44032: 0xC57A, - 55135 - 44032: 0xC581, - 55136 - 44032: 0xC8EC, - 55137 - 44032: 0xC8ED, - 55138 - 44032: 0xC582, - 55139 - 44032: 0xC8EE, - 55140 - 44032: 0xC583, - 55141 - 44032: 0xC8EF, - 55142 - 44032: 0xC584, - 55143 - 44032: 0xC585, - 55144 - 44032: 0xC586, - 55145 - 44032: 0xC8F0, - 55146 - 44032: 0xC587, - 55147 - 44032: 0xC588, - 55148 - 44032: 0xC8F1, - 55149 - 44032: 0xC589, - 55150 - 44032: 0xC58A, - 55151 - 44032: 0xC58B, - 55152 - 44032: 0xC8F2, - 55153 - 44032: 0xC58C, - 55154 - 44032: 0xC58D, - 55155 - 44032: 0xC58E, - 55156 - 44032: 0xC8F3, - 55157 - 44032: 0xC58F, - 55158 - 44032: 0xC590, - 55159 - 44032: 0xC591, - 55160 - 44032: 0xC592, - 55161 - 44032: 0xC593, - 55162 - 44032: 0xC594, - 55163 - 44032: 0xC595, - 55164 - 44032: 0xC8F4, - 55165 - 44032: 0xC8F5, - 55166 - 44032: 0xC596, - 55167 - 44032: 0xC597, - 55168 - 44032: 0xC598, - 55169 - 44032: 0xC8F6, - 55170 - 44032: 0xC599, - 55171 - 44032: 0xC59A, - 55172 - 44032: 0xC59B, - 55173 - 44032: 0xC59C, - 55174 - 44032: 0xC59D, - 55175 - 44032: 0xC59E, - 55176 - 44032: 0xC8F7, - 55177 - 44032: 0xC8F8, - 55178 - 44032: 0xC59F, - 55179 - 44032: 0xC5A0, - 55180 - 44032: 0xC8F9, - 55181 - 44032: 0xC641, - 55182 - 44032: 0xC642, - 55183 - 44032: 0xC643, - 55184 - 44032: 0xC8FA, - 55185 - 44032: 0xC644, - 55186 - 44032: 0xC645, - 55187 - 44032: 0xC646, - 55188 - 44032: 0xC647, - 55189 - 44032: 0xC648, - 55190 - 44032: 0xC649, - 55191 - 44032: 0xC64A, - 55192 - 44032: 0xC8FB, - 55193 - 44032: 0xC8FC, - 55194 - 44032: 0xC64B, - 55195 - 44032: 0xC8FD, - 55196 - 44032: 0xC64C, - 55197 - 44032: 0xC8FE, - 55198 - 44032: 0xC64D, - 55199 - 44032: 0xC64E, - 55200 - 44032: 0xC64F, - 55201 - 44032: 0xC650, - 55202 - 44032: 0xC651, - 55203 - 44032: 0xC652, -} - -const encode2Low, encode2High = 8213, 9838 - -var encode2 = [...]uint16{ - 8213 - 8213: 0xA1AA, - 8216 - 8213: 0xA1AE, - 8217 - 8213: 0xA1AF, - 8220 - 8213: 0xA1B0, - 8221 - 8213: 0xA1B1, - 8224 - 8213: 0xA2D3, - 8225 - 8213: 0xA2D4, - 8229 - 8213: 0xA1A5, - 8230 - 8213: 0xA1A6, - 8240 - 8213: 0xA2B6, - 8242 - 8213: 0xA1C7, - 8243 - 8213: 0xA1C8, - 8251 - 8213: 0xA1D8, - 8308 - 8213: 0xA9F9, - 8319 - 8213: 0xA9FA, - 8321 - 8213: 0xA9FB, - 8322 - 8213: 0xA9FC, - 8323 - 8213: 0xA9FD, - 8324 - 8213: 0xA9FE, - 8364 - 8213: 0xA2E6, - 8451 - 8213: 0xA1C9, - 8457 - 8213: 0xA2B5, - 8467 - 8213: 0xA7A4, - 8470 - 8213: 0xA2E0, - 8481 - 8213: 0xA2E5, - 8482 - 8213: 0xA2E2, - 8486 - 8213: 0xA7D9, - 8491 - 8213: 0xA1CA, - 8531 - 8213: 0xA8F7, - 8532 - 8213: 0xA8F8, - 8539 - 8213: 0xA8FB, - 8540 - 8213: 0xA8FC, - 8541 - 8213: 0xA8FD, - 8542 - 8213: 0xA8FE, - 8544 - 8213: 0xA5B0, - 8545 - 8213: 0xA5B1, - 8546 - 8213: 0xA5B2, - 8547 - 8213: 0xA5B3, - 8548 - 8213: 0xA5B4, - 8549 - 8213: 0xA5B5, - 8550 - 8213: 0xA5B6, - 8551 - 8213: 0xA5B7, - 8552 - 8213: 0xA5B8, - 8553 - 8213: 0xA5B9, - 8560 - 8213: 0xA5A1, - 8561 - 8213: 0xA5A2, - 8562 - 8213: 0xA5A3, - 8563 - 8213: 0xA5A4, - 8564 - 8213: 0xA5A5, - 8565 - 8213: 0xA5A6, - 8566 - 8213: 0xA5A7, - 8567 - 8213: 0xA5A8, - 8568 - 8213: 0xA5A9, - 8569 - 8213: 0xA5AA, - 8592 - 8213: 0xA1E7, - 8593 - 8213: 0xA1E8, - 8594 - 8213: 0xA1E6, - 8595 - 8213: 0xA1E9, - 8596 - 8213: 0xA1EA, - 8597 - 8213: 0xA2D5, - 8598 - 8213: 0xA2D8, - 8599 - 8213: 0xA2D6, - 8600 - 8213: 0xA2D9, - 8601 - 8213: 0xA2D7, - 8658 - 8213: 0xA2A1, - 8660 - 8213: 0xA2A2, - 8704 - 8213: 0xA2A3, - 8706 - 8213: 0xA1D3, - 8707 - 8213: 0xA2A4, - 8711 - 8213: 0xA1D4, - 8712 - 8213: 0xA1F4, - 8715 - 8213: 0xA1F5, - 8719 - 8213: 0xA2B3, - 8721 - 8213: 0xA2B2, - 8730 - 8213: 0xA1EE, - 8733 - 8213: 0xA1F0, - 8734 - 8213: 0xA1C4, - 8736 - 8213: 0xA1D0, - 8741 - 8213: 0xA1AB, - 8743 - 8213: 0xA1FC, - 8744 - 8213: 0xA1FD, - 8745 - 8213: 0xA1FB, - 8746 - 8213: 0xA1FA, - 8747 - 8213: 0xA1F2, - 8748 - 8213: 0xA1F3, - 8750 - 8213: 0xA2B1, - 8756 - 8213: 0xA1C5, - 8757 - 8213: 0xA1F1, - 8764 - 8213: 0xA1AD, - 8765 - 8213: 0xA1EF, - 8786 - 8213: 0xA1D6, - 8800 - 8213: 0xA1C1, - 8801 - 8213: 0xA1D5, - 8804 - 8213: 0xA1C2, - 8805 - 8213: 0xA1C3, - 8810 - 8213: 0xA1EC, - 8811 - 8213: 0xA1ED, - 8834 - 8213: 0xA1F8, - 8835 - 8213: 0xA1F9, - 8838 - 8213: 0xA1F6, - 8839 - 8213: 0xA1F7, - 8857 - 8213: 0xA2C1, - 8869 - 8213: 0xA1D1, - 8978 - 8213: 0xA1D2, - 9312 - 8213: 0xA8E7, - 9313 - 8213: 0xA8E8, - 9314 - 8213: 0xA8E9, - 9315 - 8213: 0xA8EA, - 9316 - 8213: 0xA8EB, - 9317 - 8213: 0xA8EC, - 9318 - 8213: 0xA8ED, - 9319 - 8213: 0xA8EE, - 9320 - 8213: 0xA8EF, - 9321 - 8213: 0xA8F0, - 9322 - 8213: 0xA8F1, - 9323 - 8213: 0xA8F2, - 9324 - 8213: 0xA8F3, - 9325 - 8213: 0xA8F4, - 9326 - 8213: 0xA8F5, - 9332 - 8213: 0xA9E7, - 9333 - 8213: 0xA9E8, - 9334 - 8213: 0xA9E9, - 9335 - 8213: 0xA9EA, - 9336 - 8213: 0xA9EB, - 9337 - 8213: 0xA9EC, - 9338 - 8213: 0xA9ED, - 9339 - 8213: 0xA9EE, - 9340 - 8213: 0xA9EF, - 9341 - 8213: 0xA9F0, - 9342 - 8213: 0xA9F1, - 9343 - 8213: 0xA9F2, - 9344 - 8213: 0xA9F3, - 9345 - 8213: 0xA9F4, - 9346 - 8213: 0xA9F5, - 9372 - 8213: 0xA9CD, - 9373 - 8213: 0xA9CE, - 9374 - 8213: 0xA9CF, - 9375 - 8213: 0xA9D0, - 9376 - 8213: 0xA9D1, - 9377 - 8213: 0xA9D2, - 9378 - 8213: 0xA9D3, - 9379 - 8213: 0xA9D4, - 9380 - 8213: 0xA9D5, - 9381 - 8213: 0xA9D6, - 9382 - 8213: 0xA9D7, - 9383 - 8213: 0xA9D8, - 9384 - 8213: 0xA9D9, - 9385 - 8213: 0xA9DA, - 9386 - 8213: 0xA9DB, - 9387 - 8213: 0xA9DC, - 9388 - 8213: 0xA9DD, - 9389 - 8213: 0xA9DE, - 9390 - 8213: 0xA9DF, - 9391 - 8213: 0xA9E0, - 9392 - 8213: 0xA9E1, - 9393 - 8213: 0xA9E2, - 9394 - 8213: 0xA9E3, - 9395 - 8213: 0xA9E4, - 9396 - 8213: 0xA9E5, - 9397 - 8213: 0xA9E6, - 9424 - 8213: 0xA8CD, - 9425 - 8213: 0xA8CE, - 9426 - 8213: 0xA8CF, - 9427 - 8213: 0xA8D0, - 9428 - 8213: 0xA8D1, - 9429 - 8213: 0xA8D2, - 9430 - 8213: 0xA8D3, - 9431 - 8213: 0xA8D4, - 9432 - 8213: 0xA8D5, - 9433 - 8213: 0xA8D6, - 9434 - 8213: 0xA8D7, - 9435 - 8213: 0xA8D8, - 9436 - 8213: 0xA8D9, - 9437 - 8213: 0xA8DA, - 9438 - 8213: 0xA8DB, - 9439 - 8213: 0xA8DC, - 9440 - 8213: 0xA8DD, - 9441 - 8213: 0xA8DE, - 9442 - 8213: 0xA8DF, - 9443 - 8213: 0xA8E0, - 9444 - 8213: 0xA8E1, - 9445 - 8213: 0xA8E2, - 9446 - 8213: 0xA8E3, - 9447 - 8213: 0xA8E4, - 9448 - 8213: 0xA8E5, - 9449 - 8213: 0xA8E6, - 9472 - 8213: 0xA6A1, - 9473 - 8213: 0xA6AC, - 9474 - 8213: 0xA6A2, - 9475 - 8213: 0xA6AD, - 9484 - 8213: 0xA6A3, - 9485 - 8213: 0xA6C8, - 9486 - 8213: 0xA6C7, - 9487 - 8213: 0xA6AE, - 9488 - 8213: 0xA6A4, - 9489 - 8213: 0xA6C2, - 9490 - 8213: 0xA6C1, - 9491 - 8213: 0xA6AF, - 9492 - 8213: 0xA6A6, - 9493 - 8213: 0xA6C6, - 9494 - 8213: 0xA6C5, - 9495 - 8213: 0xA6B1, - 9496 - 8213: 0xA6A5, - 9497 - 8213: 0xA6C4, - 9498 - 8213: 0xA6C3, - 9499 - 8213: 0xA6B0, - 9500 - 8213: 0xA6A7, - 9501 - 8213: 0xA6BC, - 9502 - 8213: 0xA6C9, - 9503 - 8213: 0xA6CA, - 9504 - 8213: 0xA6B7, - 9505 - 8213: 0xA6CB, - 9506 - 8213: 0xA6CC, - 9507 - 8213: 0xA6B2, - 9508 - 8213: 0xA6A9, - 9509 - 8213: 0xA6BE, - 9510 - 8213: 0xA6CD, - 9511 - 8213: 0xA6CE, - 9512 - 8213: 0xA6B9, - 9513 - 8213: 0xA6CF, - 9514 - 8213: 0xA6D0, - 9515 - 8213: 0xA6B4, - 9516 - 8213: 0xA6A8, - 9517 - 8213: 0xA6D1, - 9518 - 8213: 0xA6D2, - 9519 - 8213: 0xA6B8, - 9520 - 8213: 0xA6BD, - 9521 - 8213: 0xA6D3, - 9522 - 8213: 0xA6D4, - 9523 - 8213: 0xA6B3, - 9524 - 8213: 0xA6AA, - 9525 - 8213: 0xA6D5, - 9526 - 8213: 0xA6D6, - 9527 - 8213: 0xA6BA, - 9528 - 8213: 0xA6BF, - 9529 - 8213: 0xA6D7, - 9530 - 8213: 0xA6D8, - 9531 - 8213: 0xA6B5, - 9532 - 8213: 0xA6AB, - 9533 - 8213: 0xA6D9, - 9534 - 8213: 0xA6DA, - 9535 - 8213: 0xA6BB, - 9536 - 8213: 0xA6DB, - 9537 - 8213: 0xA6DC, - 9538 - 8213: 0xA6C0, - 9539 - 8213: 0xA6DD, - 9540 - 8213: 0xA6DE, - 9541 - 8213: 0xA6DF, - 9542 - 8213: 0xA6E0, - 9543 - 8213: 0xA6E1, - 9544 - 8213: 0xA6E2, - 9545 - 8213: 0xA6E3, - 9546 - 8213: 0xA6E4, - 9547 - 8213: 0xA6B6, - 9618 - 8213: 0xA2C6, - 9632 - 8213: 0xA1E1, - 9633 - 8213: 0xA1E0, - 9635 - 8213: 0xA2C3, - 9636 - 8213: 0xA2C7, - 9637 - 8213: 0xA2C8, - 9638 - 8213: 0xA2CB, - 9639 - 8213: 0xA2CA, - 9640 - 8213: 0xA2C9, - 9641 - 8213: 0xA2CC, - 9650 - 8213: 0xA1E3, - 9651 - 8213: 0xA1E2, - 9654 - 8213: 0xA2BA, - 9655 - 8213: 0xA2B9, - 9660 - 8213: 0xA1E5, - 9661 - 8213: 0xA1E4, - 9664 - 8213: 0xA2B8, - 9665 - 8213: 0xA2B7, - 9670 - 8213: 0xA1DF, - 9671 - 8213: 0xA1DE, - 9672 - 8213: 0xA2C2, - 9675 - 8213: 0xA1DB, - 9678 - 8213: 0xA1DD, - 9679 - 8213: 0xA1DC, - 9680 - 8213: 0xA2C4, - 9681 - 8213: 0xA2C5, - 9733 - 8213: 0xA1DA, - 9734 - 8213: 0xA1D9, - 9742 - 8213: 0xA2CF, - 9743 - 8213: 0xA2CE, - 9756 - 8213: 0xA2D0, - 9758 - 8213: 0xA2D1, - 9792 - 8213: 0xA1CF, - 9794 - 8213: 0xA1CE, - 9824 - 8213: 0xA2BC, - 9825 - 8213: 0xA2BD, - 9827 - 8213: 0xA2C0, - 9828 - 8213: 0xA2BB, - 9829 - 8213: 0xA2BE, - 9831 - 8213: 0xA2BF, - 9832 - 8213: 0xA2CD, - 9833 - 8213: 0xA2DB, - 9834 - 8213: 0xA2DC, - 9836 - 8213: 0xA2DD, - 9837 - 8213: 0xA2DA, -} - -const encode3Low, encode3High = 12288, 13278 - -var encode3 = [...]uint16{ - 12288 - 12288: 0xA1A1, - 12289 - 12288: 0xA1A2, - 12290 - 12288: 0xA1A3, - 12291 - 12288: 0xA1A8, - 12296 - 12288: 0xA1B4, - 12297 - 12288: 0xA1B5, - 12298 - 12288: 0xA1B6, - 12299 - 12288: 0xA1B7, - 12300 - 12288: 0xA1B8, - 12301 - 12288: 0xA1B9, - 12302 - 12288: 0xA1BA, - 12303 - 12288: 0xA1BB, - 12304 - 12288: 0xA1BC, - 12305 - 12288: 0xA1BD, - 12307 - 12288: 0xA1EB, - 12308 - 12288: 0xA1B2, - 12309 - 12288: 0xA1B3, - 12353 - 12288: 0xAAA1, - 12354 - 12288: 0xAAA2, - 12355 - 12288: 0xAAA3, - 12356 - 12288: 0xAAA4, - 12357 - 12288: 0xAAA5, - 12358 - 12288: 0xAAA6, - 12359 - 12288: 0xAAA7, - 12360 - 12288: 0xAAA8, - 12361 - 12288: 0xAAA9, - 12362 - 12288: 0xAAAA, - 12363 - 12288: 0xAAAB, - 12364 - 12288: 0xAAAC, - 12365 - 12288: 0xAAAD, - 12366 - 12288: 0xAAAE, - 12367 - 12288: 0xAAAF, - 12368 - 12288: 0xAAB0, - 12369 - 12288: 0xAAB1, - 12370 - 12288: 0xAAB2, - 12371 - 12288: 0xAAB3, - 12372 - 12288: 0xAAB4, - 12373 - 12288: 0xAAB5, - 12374 - 12288: 0xAAB6, - 12375 - 12288: 0xAAB7, - 12376 - 12288: 0xAAB8, - 12377 - 12288: 0xAAB9, - 12378 - 12288: 0xAABA, - 12379 - 12288: 0xAABB, - 12380 - 12288: 0xAABC, - 12381 - 12288: 0xAABD, - 12382 - 12288: 0xAABE, - 12383 - 12288: 0xAABF, - 12384 - 12288: 0xAAC0, - 12385 - 12288: 0xAAC1, - 12386 - 12288: 0xAAC2, - 12387 - 12288: 0xAAC3, - 12388 - 12288: 0xAAC4, - 12389 - 12288: 0xAAC5, - 12390 - 12288: 0xAAC6, - 12391 - 12288: 0xAAC7, - 12392 - 12288: 0xAAC8, - 12393 - 12288: 0xAAC9, - 12394 - 12288: 0xAACA, - 12395 - 12288: 0xAACB, - 12396 - 12288: 0xAACC, - 12397 - 12288: 0xAACD, - 12398 - 12288: 0xAACE, - 12399 - 12288: 0xAACF, - 12400 - 12288: 0xAAD0, - 12401 - 12288: 0xAAD1, - 12402 - 12288: 0xAAD2, - 12403 - 12288: 0xAAD3, - 12404 - 12288: 0xAAD4, - 12405 - 12288: 0xAAD5, - 12406 - 12288: 0xAAD6, - 12407 - 12288: 0xAAD7, - 12408 - 12288: 0xAAD8, - 12409 - 12288: 0xAAD9, - 12410 - 12288: 0xAADA, - 12411 - 12288: 0xAADB, - 12412 - 12288: 0xAADC, - 12413 - 12288: 0xAADD, - 12414 - 12288: 0xAADE, - 12415 - 12288: 0xAADF, - 12416 - 12288: 0xAAE0, - 12417 - 12288: 0xAAE1, - 12418 - 12288: 0xAAE2, - 12419 - 12288: 0xAAE3, - 12420 - 12288: 0xAAE4, - 12421 - 12288: 0xAAE5, - 12422 - 12288: 0xAAE6, - 12423 - 12288: 0xAAE7, - 12424 - 12288: 0xAAE8, - 12425 - 12288: 0xAAE9, - 12426 - 12288: 0xAAEA, - 12427 - 12288: 0xAAEB, - 12428 - 12288: 0xAAEC, - 12429 - 12288: 0xAAED, - 12430 - 12288: 0xAAEE, - 12431 - 12288: 0xAAEF, - 12432 - 12288: 0xAAF0, - 12433 - 12288: 0xAAF1, - 12434 - 12288: 0xAAF2, - 12435 - 12288: 0xAAF3, - 12449 - 12288: 0xABA1, - 12450 - 12288: 0xABA2, - 12451 - 12288: 0xABA3, - 12452 - 12288: 0xABA4, - 12453 - 12288: 0xABA5, - 12454 - 12288: 0xABA6, - 12455 - 12288: 0xABA7, - 12456 - 12288: 0xABA8, - 12457 - 12288: 0xABA9, - 12458 - 12288: 0xABAA, - 12459 - 12288: 0xABAB, - 12460 - 12288: 0xABAC, - 12461 - 12288: 0xABAD, - 12462 - 12288: 0xABAE, - 12463 - 12288: 0xABAF, - 12464 - 12288: 0xABB0, - 12465 - 12288: 0xABB1, - 12466 - 12288: 0xABB2, - 12467 - 12288: 0xABB3, - 12468 - 12288: 0xABB4, - 12469 - 12288: 0xABB5, - 12470 - 12288: 0xABB6, - 12471 - 12288: 0xABB7, - 12472 - 12288: 0xABB8, - 12473 - 12288: 0xABB9, - 12474 - 12288: 0xABBA, - 12475 - 12288: 0xABBB, - 12476 - 12288: 0xABBC, - 12477 - 12288: 0xABBD, - 12478 - 12288: 0xABBE, - 12479 - 12288: 0xABBF, - 12480 - 12288: 0xABC0, - 12481 - 12288: 0xABC1, - 12482 - 12288: 0xABC2, - 12483 - 12288: 0xABC3, - 12484 - 12288: 0xABC4, - 12485 - 12288: 0xABC5, - 12486 - 12288: 0xABC6, - 12487 - 12288: 0xABC7, - 12488 - 12288: 0xABC8, - 12489 - 12288: 0xABC9, - 12490 - 12288: 0xABCA, - 12491 - 12288: 0xABCB, - 12492 - 12288: 0xABCC, - 12493 - 12288: 0xABCD, - 12494 - 12288: 0xABCE, - 12495 - 12288: 0xABCF, - 12496 - 12288: 0xABD0, - 12497 - 12288: 0xABD1, - 12498 - 12288: 0xABD2, - 12499 - 12288: 0xABD3, - 12500 - 12288: 0xABD4, - 12501 - 12288: 0xABD5, - 12502 - 12288: 0xABD6, - 12503 - 12288: 0xABD7, - 12504 - 12288: 0xABD8, - 12505 - 12288: 0xABD9, - 12506 - 12288: 0xABDA, - 12507 - 12288: 0xABDB, - 12508 - 12288: 0xABDC, - 12509 - 12288: 0xABDD, - 12510 - 12288: 0xABDE, - 12511 - 12288: 0xABDF, - 12512 - 12288: 0xABE0, - 12513 - 12288: 0xABE1, - 12514 - 12288: 0xABE2, - 12515 - 12288: 0xABE3, - 12516 - 12288: 0xABE4, - 12517 - 12288: 0xABE5, - 12518 - 12288: 0xABE6, - 12519 - 12288: 0xABE7, - 12520 - 12288: 0xABE8, - 12521 - 12288: 0xABE9, - 12522 - 12288: 0xABEA, - 12523 - 12288: 0xABEB, - 12524 - 12288: 0xABEC, - 12525 - 12288: 0xABED, - 12526 - 12288: 0xABEE, - 12527 - 12288: 0xABEF, - 12528 - 12288: 0xABF0, - 12529 - 12288: 0xABF1, - 12530 - 12288: 0xABF2, - 12531 - 12288: 0xABF3, - 12532 - 12288: 0xABF4, - 12533 - 12288: 0xABF5, - 12534 - 12288: 0xABF6, - 12593 - 12288: 0xA4A1, - 12594 - 12288: 0xA4A2, - 12595 - 12288: 0xA4A3, - 12596 - 12288: 0xA4A4, - 12597 - 12288: 0xA4A5, - 12598 - 12288: 0xA4A6, - 12599 - 12288: 0xA4A7, - 12600 - 12288: 0xA4A8, - 12601 - 12288: 0xA4A9, - 12602 - 12288: 0xA4AA, - 12603 - 12288: 0xA4AB, - 12604 - 12288: 0xA4AC, - 12605 - 12288: 0xA4AD, - 12606 - 12288: 0xA4AE, - 12607 - 12288: 0xA4AF, - 12608 - 12288: 0xA4B0, - 12609 - 12288: 0xA4B1, - 12610 - 12288: 0xA4B2, - 12611 - 12288: 0xA4B3, - 12612 - 12288: 0xA4B4, - 12613 - 12288: 0xA4B5, - 12614 - 12288: 0xA4B6, - 12615 - 12288: 0xA4B7, - 12616 - 12288: 0xA4B8, - 12617 - 12288: 0xA4B9, - 12618 - 12288: 0xA4BA, - 12619 - 12288: 0xA4BB, - 12620 - 12288: 0xA4BC, - 12621 - 12288: 0xA4BD, - 12622 - 12288: 0xA4BE, - 12623 - 12288: 0xA4BF, - 12624 - 12288: 0xA4C0, - 12625 - 12288: 0xA4C1, - 12626 - 12288: 0xA4C2, - 12627 - 12288: 0xA4C3, - 12628 - 12288: 0xA4C4, - 12629 - 12288: 0xA4C5, - 12630 - 12288: 0xA4C6, - 12631 - 12288: 0xA4C7, - 12632 - 12288: 0xA4C8, - 12633 - 12288: 0xA4C9, - 12634 - 12288: 0xA4CA, - 12635 - 12288: 0xA4CB, - 12636 - 12288: 0xA4CC, - 12637 - 12288: 0xA4CD, - 12638 - 12288: 0xA4CE, - 12639 - 12288: 0xA4CF, - 12640 - 12288: 0xA4D0, - 12641 - 12288: 0xA4D1, - 12642 - 12288: 0xA4D2, - 12643 - 12288: 0xA4D3, - 12644 - 12288: 0xA4D4, - 12645 - 12288: 0xA4D5, - 12646 - 12288: 0xA4D6, - 12647 - 12288: 0xA4D7, - 12648 - 12288: 0xA4D8, - 12649 - 12288: 0xA4D9, - 12650 - 12288: 0xA4DA, - 12651 - 12288: 0xA4DB, - 12652 - 12288: 0xA4DC, - 12653 - 12288: 0xA4DD, - 12654 - 12288: 0xA4DE, - 12655 - 12288: 0xA4DF, - 12656 - 12288: 0xA4E0, - 12657 - 12288: 0xA4E1, - 12658 - 12288: 0xA4E2, - 12659 - 12288: 0xA4E3, - 12660 - 12288: 0xA4E4, - 12661 - 12288: 0xA4E5, - 12662 - 12288: 0xA4E6, - 12663 - 12288: 0xA4E7, - 12664 - 12288: 0xA4E8, - 12665 - 12288: 0xA4E9, - 12666 - 12288: 0xA4EA, - 12667 - 12288: 0xA4EB, - 12668 - 12288: 0xA4EC, - 12669 - 12288: 0xA4ED, - 12670 - 12288: 0xA4EE, - 12671 - 12288: 0xA4EF, - 12672 - 12288: 0xA4F0, - 12673 - 12288: 0xA4F1, - 12674 - 12288: 0xA4F2, - 12675 - 12288: 0xA4F3, - 12676 - 12288: 0xA4F4, - 12677 - 12288: 0xA4F5, - 12678 - 12288: 0xA4F6, - 12679 - 12288: 0xA4F7, - 12680 - 12288: 0xA4F8, - 12681 - 12288: 0xA4F9, - 12682 - 12288: 0xA4FA, - 12683 - 12288: 0xA4FB, - 12684 - 12288: 0xA4FC, - 12685 - 12288: 0xA4FD, - 12686 - 12288: 0xA4FE, - 12800 - 12288: 0xA9B1, - 12801 - 12288: 0xA9B2, - 12802 - 12288: 0xA9B3, - 12803 - 12288: 0xA9B4, - 12804 - 12288: 0xA9B5, - 12805 - 12288: 0xA9B6, - 12806 - 12288: 0xA9B7, - 12807 - 12288: 0xA9B8, - 12808 - 12288: 0xA9B9, - 12809 - 12288: 0xA9BA, - 12810 - 12288: 0xA9BB, - 12811 - 12288: 0xA9BC, - 12812 - 12288: 0xA9BD, - 12813 - 12288: 0xA9BE, - 12814 - 12288: 0xA9BF, - 12815 - 12288: 0xA9C0, - 12816 - 12288: 0xA9C1, - 12817 - 12288: 0xA9C2, - 12818 - 12288: 0xA9C3, - 12819 - 12288: 0xA9C4, - 12820 - 12288: 0xA9C5, - 12821 - 12288: 0xA9C6, - 12822 - 12288: 0xA9C7, - 12823 - 12288: 0xA9C8, - 12824 - 12288: 0xA9C9, - 12825 - 12288: 0xA9CA, - 12826 - 12288: 0xA9CB, - 12827 - 12288: 0xA9CC, - 12828 - 12288: 0xA2DF, - 12896 - 12288: 0xA8B1, - 12897 - 12288: 0xA8B2, - 12898 - 12288: 0xA8B3, - 12899 - 12288: 0xA8B4, - 12900 - 12288: 0xA8B5, - 12901 - 12288: 0xA8B6, - 12902 - 12288: 0xA8B7, - 12903 - 12288: 0xA8B8, - 12904 - 12288: 0xA8B9, - 12905 - 12288: 0xA8BA, - 12906 - 12288: 0xA8BB, - 12907 - 12288: 0xA8BC, - 12908 - 12288: 0xA8BD, - 12909 - 12288: 0xA8BE, - 12910 - 12288: 0xA8BF, - 12911 - 12288: 0xA8C0, - 12912 - 12288: 0xA8C1, - 12913 - 12288: 0xA8C2, - 12914 - 12288: 0xA8C3, - 12915 - 12288: 0xA8C4, - 12916 - 12288: 0xA8C5, - 12917 - 12288: 0xA8C6, - 12918 - 12288: 0xA8C7, - 12919 - 12288: 0xA8C8, - 12920 - 12288: 0xA8C9, - 12921 - 12288: 0xA8CA, - 12922 - 12288: 0xA8CB, - 12923 - 12288: 0xA8CC, - 12927 - 12288: 0xA2DE, - 13184 - 12288: 0xA7C9, - 13185 - 12288: 0xA7CA, - 13186 - 12288: 0xA7CB, - 13187 - 12288: 0xA7CC, - 13188 - 12288: 0xA7CD, - 13192 - 12288: 0xA7BA, - 13193 - 12288: 0xA7BB, - 13194 - 12288: 0xA7DC, - 13195 - 12288: 0xA7DD, - 13196 - 12288: 0xA7DE, - 13197 - 12288: 0xA7B6, - 13198 - 12288: 0xA7B7, - 13199 - 12288: 0xA7B8, - 13200 - 12288: 0xA7D4, - 13201 - 12288: 0xA7D5, - 13202 - 12288: 0xA7D6, - 13203 - 12288: 0xA7D7, - 13204 - 12288: 0xA7D8, - 13205 - 12288: 0xA7A1, - 13206 - 12288: 0xA7A2, - 13207 - 12288: 0xA7A3, - 13208 - 12288: 0xA7A5, - 13209 - 12288: 0xA7AB, - 13210 - 12288: 0xA7AC, - 13211 - 12288: 0xA7AD, - 13212 - 12288: 0xA7AE, - 13213 - 12288: 0xA7AF, - 13214 - 12288: 0xA7B0, - 13215 - 12288: 0xA7B1, - 13216 - 12288: 0xA7B2, - 13217 - 12288: 0xA7B3, - 13218 - 12288: 0xA7B4, - 13219 - 12288: 0xA7A7, - 13220 - 12288: 0xA7A8, - 13221 - 12288: 0xA7A9, - 13222 - 12288: 0xA7AA, - 13223 - 12288: 0xA7BD, - 13224 - 12288: 0xA7BE, - 13225 - 12288: 0xA7E5, - 13226 - 12288: 0xA7E6, - 13227 - 12288: 0xA7E7, - 13228 - 12288: 0xA7E8, - 13229 - 12288: 0xA7E1, - 13230 - 12288: 0xA7E2, - 13231 - 12288: 0xA7E3, - 13232 - 12288: 0xA7BF, - 13233 - 12288: 0xA7C0, - 13234 - 12288: 0xA7C1, - 13235 - 12288: 0xA7C2, - 13236 - 12288: 0xA7C3, - 13237 - 12288: 0xA7C4, - 13238 - 12288: 0xA7C5, - 13239 - 12288: 0xA7C6, - 13240 - 12288: 0xA7C7, - 13241 - 12288: 0xA7C8, - 13242 - 12288: 0xA7CE, - 13243 - 12288: 0xA7CF, - 13244 - 12288: 0xA7D0, - 13245 - 12288: 0xA7D1, - 13246 - 12288: 0xA7D2, - 13247 - 12288: 0xA7D3, - 13248 - 12288: 0xA7DA, - 13249 - 12288: 0xA7DB, - 13250 - 12288: 0xA2E3, - 13251 - 12288: 0xA7EC, - 13252 - 12288: 0xA7A6, - 13253 - 12288: 0xA7E0, - 13254 - 12288: 0xA7EF, - 13255 - 12288: 0xA2E1, - 13256 - 12288: 0xA7BC, - 13257 - 12288: 0xA7ED, - 13258 - 12288: 0xA7B5, - 13263 - 12288: 0xA7B9, - 13264 - 12288: 0xA7EA, - 13267 - 12288: 0xA7EB, - 13270 - 12288: 0xA7DF, - 13272 - 12288: 0xA2E4, - 13275 - 12288: 0xA7E4, - 13276 - 12288: 0xA7EE, - 13277 - 12288: 0xA7E9, -} - -const encode4Low, encode4High = 161, 1106 - -var encode4 = [...]uint16{ - 161 - 161: 0xA2AE, - 164 - 161: 0xA2B4, - 167 - 161: 0xA1D7, - 168 - 161: 0xA1A7, - 170 - 161: 0xA8A3, - 173 - 161: 0xA1A9, - 174 - 161: 0xA2E7, - 176 - 161: 0xA1C6, - 177 - 161: 0xA1BE, - 178 - 161: 0xA9F7, - 179 - 161: 0xA9F8, - 180 - 161: 0xA2A5, - 182 - 161: 0xA2D2, - 183 - 161: 0xA1A4, - 184 - 161: 0xA2AC, - 185 - 161: 0xA9F6, - 186 - 161: 0xA8AC, - 188 - 161: 0xA8F9, - 189 - 161: 0xA8F6, - 190 - 161: 0xA8FA, - 191 - 161: 0xA2AF, - 198 - 161: 0xA8A1, - 208 - 161: 0xA8A2, - 215 - 161: 0xA1BF, - 216 - 161: 0xA8AA, - 222 - 161: 0xA8AD, - 223 - 161: 0xA9AC, - 230 - 161: 0xA9A1, - 240 - 161: 0xA9A3, - 247 - 161: 0xA1C0, - 248 - 161: 0xA9AA, - 254 - 161: 0xA9AD, - 273 - 161: 0xA9A2, - 294 - 161: 0xA8A4, - 295 - 161: 0xA9A4, - 305 - 161: 0xA9A5, - 306 - 161: 0xA8A6, - 307 - 161: 0xA9A6, - 312 - 161: 0xA9A7, - 319 - 161: 0xA8A8, - 320 - 161: 0xA9A8, - 321 - 161: 0xA8A9, - 322 - 161: 0xA9A9, - 329 - 161: 0xA9B0, - 330 - 161: 0xA8AF, - 331 - 161: 0xA9AF, - 338 - 161: 0xA8AB, - 339 - 161: 0xA9AB, - 358 - 161: 0xA8AE, - 359 - 161: 0xA9AE, - 711 - 161: 0xA2A7, - 720 - 161: 0xA2B0, - 728 - 161: 0xA2A8, - 729 - 161: 0xA2AB, - 730 - 161: 0xA2AA, - 731 - 161: 0xA2AD, - 733 - 161: 0xA2A9, - 913 - 161: 0xA5C1, - 914 - 161: 0xA5C2, - 915 - 161: 0xA5C3, - 916 - 161: 0xA5C4, - 917 - 161: 0xA5C5, - 918 - 161: 0xA5C6, - 919 - 161: 0xA5C7, - 920 - 161: 0xA5C8, - 921 - 161: 0xA5C9, - 922 - 161: 0xA5CA, - 923 - 161: 0xA5CB, - 924 - 161: 0xA5CC, - 925 - 161: 0xA5CD, - 926 - 161: 0xA5CE, - 927 - 161: 0xA5CF, - 928 - 161: 0xA5D0, - 929 - 161: 0xA5D1, - 931 - 161: 0xA5D2, - 932 - 161: 0xA5D3, - 933 - 161: 0xA5D4, - 934 - 161: 0xA5D5, - 935 - 161: 0xA5D6, - 936 - 161: 0xA5D7, - 937 - 161: 0xA5D8, - 945 - 161: 0xA5E1, - 946 - 161: 0xA5E2, - 947 - 161: 0xA5E3, - 948 - 161: 0xA5E4, - 949 - 161: 0xA5E5, - 950 - 161: 0xA5E6, - 951 - 161: 0xA5E7, - 952 - 161: 0xA5E8, - 953 - 161: 0xA5E9, - 954 - 161: 0xA5EA, - 955 - 161: 0xA5EB, - 956 - 161: 0xA5EC, - 957 - 161: 0xA5ED, - 958 - 161: 0xA5EE, - 959 - 161: 0xA5EF, - 960 - 161: 0xA5F0, - 961 - 161: 0xA5F1, - 963 - 161: 0xA5F2, - 964 - 161: 0xA5F3, - 965 - 161: 0xA5F4, - 966 - 161: 0xA5F5, - 967 - 161: 0xA5F6, - 968 - 161: 0xA5F7, - 969 - 161: 0xA5F8, - 1025 - 161: 0xACA7, - 1040 - 161: 0xACA1, - 1041 - 161: 0xACA2, - 1042 - 161: 0xACA3, - 1043 - 161: 0xACA4, - 1044 - 161: 0xACA5, - 1045 - 161: 0xACA6, - 1046 - 161: 0xACA8, - 1047 - 161: 0xACA9, - 1048 - 161: 0xACAA, - 1049 - 161: 0xACAB, - 1050 - 161: 0xACAC, - 1051 - 161: 0xACAD, - 1052 - 161: 0xACAE, - 1053 - 161: 0xACAF, - 1054 - 161: 0xACB0, - 1055 - 161: 0xACB1, - 1056 - 161: 0xACB2, - 1057 - 161: 0xACB3, - 1058 - 161: 0xACB4, - 1059 - 161: 0xACB5, - 1060 - 161: 0xACB6, - 1061 - 161: 0xACB7, - 1062 - 161: 0xACB8, - 1063 - 161: 0xACB9, - 1064 - 161: 0xACBA, - 1065 - 161: 0xACBB, - 1066 - 161: 0xACBC, - 1067 - 161: 0xACBD, - 1068 - 161: 0xACBE, - 1069 - 161: 0xACBF, - 1070 - 161: 0xACC0, - 1071 - 161: 0xACC1, - 1072 - 161: 0xACD1, - 1073 - 161: 0xACD2, - 1074 - 161: 0xACD3, - 1075 - 161: 0xACD4, - 1076 - 161: 0xACD5, - 1077 - 161: 0xACD6, - 1078 - 161: 0xACD8, - 1079 - 161: 0xACD9, - 1080 - 161: 0xACDA, - 1081 - 161: 0xACDB, - 1082 - 161: 0xACDC, - 1083 - 161: 0xACDD, - 1084 - 161: 0xACDE, - 1085 - 161: 0xACDF, - 1086 - 161: 0xACE0, - 1087 - 161: 0xACE1, - 1088 - 161: 0xACE2, - 1089 - 161: 0xACE3, - 1090 - 161: 0xACE4, - 1091 - 161: 0xACE5, - 1092 - 161: 0xACE6, - 1093 - 161: 0xACE7, - 1094 - 161: 0xACE8, - 1095 - 161: 0xACE9, - 1096 - 161: 0xACEA, - 1097 - 161: 0xACEB, - 1098 - 161: 0xACEC, - 1099 - 161: 0xACED, - 1100 - 161: 0xACEE, - 1101 - 161: 0xACEF, - 1102 - 161: 0xACF0, - 1103 - 161: 0xACF1, - 1105 - 161: 0xACD7, -} - -const encode5Low, encode5High = 63744, 64012 - -var encode5 = [...]uint16{ - 63744 - 63744: 0xCBD0, - 63745 - 63744: 0xCBD6, - 63746 - 63744: 0xCBE7, - 63747 - 63744: 0xCDCF, - 63748 - 63744: 0xCDE8, - 63749 - 63744: 0xCEAD, - 63750 - 63744: 0xCFFB, - 63751 - 63744: 0xD0A2, - 63752 - 63744: 0xD0B8, - 63753 - 63744: 0xD0D0, - 63754 - 63744: 0xD0DD, - 63755 - 63744: 0xD1D4, - 63756 - 63744: 0xD1D5, - 63757 - 63744: 0xD1D8, - 63758 - 63744: 0xD1DB, - 63759 - 63744: 0xD1DC, - 63760 - 63744: 0xD1DD, - 63761 - 63744: 0xD1DE, - 63762 - 63744: 0xD1DF, - 63763 - 63744: 0xD1E0, - 63764 - 63744: 0xD1E2, - 63765 - 63744: 0xD1E3, - 63766 - 63744: 0xD1E4, - 63767 - 63744: 0xD1E5, - 63768 - 63744: 0xD1E6, - 63769 - 63744: 0xD1E8, - 63770 - 63744: 0xD1E9, - 63771 - 63744: 0xD1EA, - 63772 - 63744: 0xD1EB, - 63773 - 63744: 0xD1ED, - 63774 - 63744: 0xD1EF, - 63775 - 63744: 0xD1F0, - 63776 - 63744: 0xD1F2, - 63777 - 63744: 0xD1F6, - 63778 - 63744: 0xD1FA, - 63779 - 63744: 0xD1FC, - 63780 - 63744: 0xD1FD, - 63781 - 63744: 0xD1FE, - 63782 - 63744: 0xD2A2, - 63783 - 63744: 0xD2A3, - 63784 - 63744: 0xD2A7, - 63785 - 63744: 0xD2A8, - 63786 - 63744: 0xD2A9, - 63787 - 63744: 0xD2AA, - 63788 - 63744: 0xD2AB, - 63789 - 63744: 0xD2AD, - 63790 - 63744: 0xD2B2, - 63791 - 63744: 0xD2BE, - 63792 - 63744: 0xD2C2, - 63793 - 63744: 0xD2C3, - 63794 - 63744: 0xD2C4, - 63795 - 63744: 0xD2C6, - 63796 - 63744: 0xD2C7, - 63797 - 63744: 0xD2C8, - 63798 - 63744: 0xD2C9, - 63799 - 63744: 0xD2CA, - 63800 - 63744: 0xD2CB, - 63801 - 63744: 0xD2CD, - 63802 - 63744: 0xD2CE, - 63803 - 63744: 0xD2CF, - 63804 - 63744: 0xD2D0, - 63805 - 63744: 0xD2D1, - 63806 - 63744: 0xD2D2, - 63807 - 63744: 0xD2D3, - 63808 - 63744: 0xD2D4, - 63809 - 63744: 0xD2D5, - 63810 - 63744: 0xD2D6, - 63811 - 63744: 0xD2D7, - 63812 - 63744: 0xD2D9, - 63813 - 63744: 0xD2DA, - 63814 - 63744: 0xD2DE, - 63815 - 63744: 0xD2DF, - 63816 - 63744: 0xD2E1, - 63817 - 63744: 0xD2E2, - 63818 - 63744: 0xD2E4, - 63819 - 63744: 0xD2E5, - 63820 - 63744: 0xD2E6, - 63821 - 63744: 0xD2E7, - 63822 - 63744: 0xD2E8, - 63823 - 63744: 0xD2E9, - 63824 - 63744: 0xD2EA, - 63825 - 63744: 0xD2EB, - 63826 - 63744: 0xD2F0, - 63827 - 63744: 0xD2F1, - 63828 - 63744: 0xD2F2, - 63829 - 63744: 0xD2F3, - 63830 - 63744: 0xD2F4, - 63831 - 63744: 0xD2F5, - 63832 - 63744: 0xD2F7, - 63833 - 63744: 0xD2F8, - 63834 - 63744: 0xD4E6, - 63835 - 63744: 0xD4FC, - 63836 - 63744: 0xD5A5, - 63837 - 63744: 0xD5AB, - 63838 - 63744: 0xD5AE, - 63839 - 63744: 0xD6B8, - 63840 - 63744: 0xD6CD, - 63841 - 63744: 0xD7CB, - 63842 - 63744: 0xD7E4, - 63843 - 63744: 0xDBC5, - 63844 - 63744: 0xDBE4, - 63845 - 63744: 0xDCA5, - 63846 - 63744: 0xDDA5, - 63847 - 63744: 0xDDD5, - 63848 - 63744: 0xDDF4, - 63849 - 63744: 0xDEFC, - 63850 - 63744: 0xDEFE, - 63851 - 63744: 0xDFB3, - 63852 - 63744: 0xDFE1, - 63853 - 63744: 0xDFE8, - 63854 - 63744: 0xE0F1, - 63855 - 63744: 0xE1AD, - 63856 - 63744: 0xE1ED, - 63857 - 63744: 0xE3F5, - 63858 - 63744: 0xE4A1, - 63859 - 63744: 0xE4A9, - 63860 - 63744: 0xE5AE, - 63861 - 63744: 0xE5B1, - 63862 - 63744: 0xE5B2, - 63863 - 63744: 0xE5B9, - 63864 - 63744: 0xE5BB, - 63865 - 63744: 0xE5BC, - 63866 - 63744: 0xE5C4, - 63867 - 63744: 0xE5CE, - 63868 - 63744: 0xE5D0, - 63869 - 63744: 0xE5D2, - 63870 - 63744: 0xE5D6, - 63871 - 63744: 0xE5FA, - 63872 - 63744: 0xE5FB, - 63873 - 63744: 0xE5FC, - 63874 - 63744: 0xE5FE, - 63875 - 63744: 0xE6A1, - 63876 - 63744: 0xE6A4, - 63877 - 63744: 0xE6A7, - 63878 - 63744: 0xE6AD, - 63879 - 63744: 0xE6AF, - 63880 - 63744: 0xE6B0, - 63881 - 63744: 0xE6B1, - 63882 - 63744: 0xE6B3, - 63883 - 63744: 0xE6B7, - 63884 - 63744: 0xE6B8, - 63885 - 63744: 0xE6BC, - 63886 - 63744: 0xE6C4, - 63887 - 63744: 0xE6C6, - 63888 - 63744: 0xE6C7, - 63889 - 63744: 0xE6CA, - 63890 - 63744: 0xE6D2, - 63891 - 63744: 0xE6D6, - 63892 - 63744: 0xE6D9, - 63893 - 63744: 0xE6DC, - 63894 - 63744: 0xE6DF, - 63895 - 63744: 0xE6E1, - 63896 - 63744: 0xE6E4, - 63897 - 63744: 0xE6E5, - 63898 - 63744: 0xE6E6, - 63899 - 63744: 0xE6E8, - 63900 - 63744: 0xE6EA, - 63901 - 63744: 0xE6EB, - 63902 - 63744: 0xE6EC, - 63903 - 63744: 0xE6EF, - 63904 - 63744: 0xE6F1, - 63905 - 63744: 0xE6F2, - 63906 - 63744: 0xE6F5, - 63907 - 63744: 0xE6F6, - 63908 - 63744: 0xE6F7, - 63909 - 63744: 0xE6F9, - 63910 - 63744: 0xE7A1, - 63911 - 63744: 0xE7A6, - 63912 - 63744: 0xE7A9, - 63913 - 63744: 0xE7AA, - 63914 - 63744: 0xE7AC, - 63915 - 63744: 0xE7AD, - 63916 - 63744: 0xE7B0, - 63917 - 63744: 0xE7BF, - 63918 - 63744: 0xE7C1, - 63919 - 63744: 0xE7C6, - 63920 - 63744: 0xE7C7, - 63921 - 63744: 0xE7CB, - 63922 - 63744: 0xE7CD, - 63923 - 63744: 0xE7CF, - 63924 - 63744: 0xE7D0, - 63925 - 63744: 0xE7D3, - 63926 - 63744: 0xE7DF, - 63927 - 63744: 0xE7E4, - 63928 - 63744: 0xE7E6, - 63929 - 63744: 0xE7F7, - 63930 - 63744: 0xE8E7, - 63931 - 63744: 0xE8E8, - 63932 - 63744: 0xE8F0, - 63933 - 63744: 0xE8F1, - 63934 - 63744: 0xE8F7, - 63935 - 63744: 0xE8F9, - 63936 - 63744: 0xE8FB, - 63937 - 63744: 0xE8FE, - 63938 - 63744: 0xE9A7, - 63939 - 63744: 0xE9AC, - 63940 - 63744: 0xE9CC, - 63941 - 63744: 0xE9F7, - 63942 - 63744: 0xEAC1, - 63943 - 63744: 0xEAE5, - 63944 - 63744: 0xEAF4, - 63945 - 63744: 0xEAF7, - 63946 - 63744: 0xEAFC, - 63947 - 63744: 0xEAFE, - 63948 - 63744: 0xEBA4, - 63949 - 63744: 0xEBA7, - 63950 - 63744: 0xEBA9, - 63951 - 63744: 0xEBAA, - 63952 - 63744: 0xEBBA, - 63953 - 63744: 0xEBBB, - 63954 - 63744: 0xEBBD, - 63955 - 63744: 0xEBC1, - 63956 - 63744: 0xEBC2, - 63957 - 63744: 0xEBC6, - 63958 - 63744: 0xEBC7, - 63959 - 63744: 0xEBCC, - 63960 - 63744: 0xEBCF, - 63961 - 63744: 0xEBD0, - 63962 - 63744: 0xEBD1, - 63963 - 63744: 0xEBD2, - 63964 - 63744: 0xEBD8, - 63965 - 63744: 0xECA6, - 63966 - 63744: 0xECA7, - 63967 - 63744: 0xECAA, - 63968 - 63744: 0xECAF, - 63969 - 63744: 0xECB0, - 63970 - 63744: 0xECB1, - 63971 - 63744: 0xECB2, - 63972 - 63744: 0xECB5, - 63973 - 63744: 0xECB8, - 63974 - 63744: 0xECBA, - 63975 - 63744: 0xECC0, - 63976 - 63744: 0xECC1, - 63977 - 63744: 0xECC5, - 63978 - 63744: 0xECC6, - 63979 - 63744: 0xECC9, - 63980 - 63744: 0xECCA, - 63981 - 63744: 0xECD5, - 63982 - 63744: 0xECDD, - 63983 - 63744: 0xECDE, - 63984 - 63744: 0xECE1, - 63985 - 63744: 0xECE4, - 63986 - 63744: 0xECE7, - 63987 - 63744: 0xECE8, - 63988 - 63744: 0xECF7, - 63989 - 63744: 0xECF8, - 63990 - 63744: 0xECFA, - 63991 - 63744: 0xEDA1, - 63992 - 63744: 0xEDA2, - 63993 - 63744: 0xEDA3, - 63994 - 63744: 0xEDEE, - 63995 - 63744: 0xEEDB, - 63996 - 63744: 0xF2BD, - 63997 - 63744: 0xF2FA, - 63998 - 63744: 0xF3B1, - 63999 - 63744: 0xF4A7, - 64000 - 63744: 0xF4EE, - 64001 - 63744: 0xF6F4, - 64002 - 63744: 0xF6F6, - 64003 - 63744: 0xF7B8, - 64004 - 63744: 0xF7C8, - 64005 - 63744: 0xF7D3, - 64006 - 63744: 0xF8DB, - 64007 - 63744: 0xF8F0, - 64008 - 63744: 0xFAA1, - 64009 - 63744: 0xFAA2, - 64010 - 63744: 0xFAE6, - 64011 - 63744: 0xFCA9, -} - -const encode6Low, encode6High = 65281, 65511 - -var encode6 = [...]uint16{ - 65281 - 65281: 0xA3A1, - 65282 - 65281: 0xA3A2, - 65283 - 65281: 0xA3A3, - 65284 - 65281: 0xA3A4, - 65285 - 65281: 0xA3A5, - 65286 - 65281: 0xA3A6, - 65287 - 65281: 0xA3A7, - 65288 - 65281: 0xA3A8, - 65289 - 65281: 0xA3A9, - 65290 - 65281: 0xA3AA, - 65291 - 65281: 0xA3AB, - 65292 - 65281: 0xA3AC, - 65293 - 65281: 0xA3AD, - 65294 - 65281: 0xA3AE, - 65295 - 65281: 0xA3AF, - 65296 - 65281: 0xA3B0, - 65297 - 65281: 0xA3B1, - 65298 - 65281: 0xA3B2, - 65299 - 65281: 0xA3B3, - 65300 - 65281: 0xA3B4, - 65301 - 65281: 0xA3B5, - 65302 - 65281: 0xA3B6, - 65303 - 65281: 0xA3B7, - 65304 - 65281: 0xA3B8, - 65305 - 65281: 0xA3B9, - 65306 - 65281: 0xA3BA, - 65307 - 65281: 0xA3BB, - 65308 - 65281: 0xA3BC, - 65309 - 65281: 0xA3BD, - 65310 - 65281: 0xA3BE, - 65311 - 65281: 0xA3BF, - 65312 - 65281: 0xA3C0, - 65313 - 65281: 0xA3C1, - 65314 - 65281: 0xA3C2, - 65315 - 65281: 0xA3C3, - 65316 - 65281: 0xA3C4, - 65317 - 65281: 0xA3C5, - 65318 - 65281: 0xA3C6, - 65319 - 65281: 0xA3C7, - 65320 - 65281: 0xA3C8, - 65321 - 65281: 0xA3C9, - 65322 - 65281: 0xA3CA, - 65323 - 65281: 0xA3CB, - 65324 - 65281: 0xA3CC, - 65325 - 65281: 0xA3CD, - 65326 - 65281: 0xA3CE, - 65327 - 65281: 0xA3CF, - 65328 - 65281: 0xA3D0, - 65329 - 65281: 0xA3D1, - 65330 - 65281: 0xA3D2, - 65331 - 65281: 0xA3D3, - 65332 - 65281: 0xA3D4, - 65333 - 65281: 0xA3D5, - 65334 - 65281: 0xA3D6, - 65335 - 65281: 0xA3D7, - 65336 - 65281: 0xA3D8, - 65337 - 65281: 0xA3D9, - 65338 - 65281: 0xA3DA, - 65339 - 65281: 0xA3DB, - 65340 - 65281: 0xA1AC, - 65341 - 65281: 0xA3DD, - 65342 - 65281: 0xA3DE, - 65343 - 65281: 0xA3DF, - 65344 - 65281: 0xA3E0, - 65345 - 65281: 0xA3E1, - 65346 - 65281: 0xA3E2, - 65347 - 65281: 0xA3E3, - 65348 - 65281: 0xA3E4, - 65349 - 65281: 0xA3E5, - 65350 - 65281: 0xA3E6, - 65351 - 65281: 0xA3E7, - 65352 - 65281: 0xA3E8, - 65353 - 65281: 0xA3E9, - 65354 - 65281: 0xA3EA, - 65355 - 65281: 0xA3EB, - 65356 - 65281: 0xA3EC, - 65357 - 65281: 0xA3ED, - 65358 - 65281: 0xA3EE, - 65359 - 65281: 0xA3EF, - 65360 - 65281: 0xA3F0, - 65361 - 65281: 0xA3F1, - 65362 - 65281: 0xA3F2, - 65363 - 65281: 0xA3F3, - 65364 - 65281: 0xA3F4, - 65365 - 65281: 0xA3F5, - 65366 - 65281: 0xA3F6, - 65367 - 65281: 0xA3F7, - 65368 - 65281: 0xA3F8, - 65369 - 65281: 0xA3F9, - 65370 - 65281: 0xA3FA, - 65371 - 65281: 0xA3FB, - 65372 - 65281: 0xA3FC, - 65373 - 65281: 0xA3FD, - 65374 - 65281: 0xA2A6, - 65504 - 65281: 0xA1CB, - 65505 - 65281: 0xA1CC, - 65506 - 65281: 0xA1FE, - 65507 - 65281: 0xA3FE, - 65509 - 65281: 0xA1CD, - 65510 - 65281: 0xA3DC, -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go deleted file mode 100644 index 5ecc526c..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go +++ /dev/null @@ -1,12 +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 simplifiedchinese - -import ( - "golang.org/x/text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{GB18030, GBK, HZGB2312} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go deleted file mode 100644 index b89c45b0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go +++ /dev/null @@ -1,269 +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 simplifiedchinese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -var ( - // GB18030 is the GB18030 encoding. - GB18030 encoding.Encoding = &gbk18030 - // GBK is the GBK encoding. It encodes an extension of the GB2312 character set - // and is also known as Code Page 936. - GBK encoding.Encoding = &gbk -) - -var gbk = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: false}, - gbkEncoder{gb18030: false}, - }, - "GBK", - identifier.GBK, -} - -var gbk18030 = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: true}, - gbkEncoder{gb18030: true}, - }, - "GB18030", - identifier.GB18030, -} - -type gbkDecoder struct { - transform.NopResetter - gb18030 bool -} - -func (d gbkDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - case c0 == 0x80: - r, size = '€', 1 - - case c0 < 0xff: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - goto write - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0x80 <= c1 && c1 < 0xff: - c1 -= 0x41 - case d.gb18030 && 0x30 <= c1 && c1 < 0x40: - if nSrc+3 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - // The second byte here is always ASCII, so we can set size - // to 1 in all cases. - r, size = utf8.RuneError, 1 - goto write - } - c2 := src[nSrc+2] - if c2 < 0x81 || 0xff <= c2 { - r, size = utf8.RuneError, 1 - goto write - } - c3 := src[nSrc+3] - if c3 < 0x30 || 0x3a <= c3 { - r, size = utf8.RuneError, 1 - goto write - } - size = 4 - r = ((rune(c0-0x81)*10+rune(c1-0x30))*126+rune(c2-0x81))*10 + rune(c3-0x30) - if r < 39420 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][0]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[1]) - rune(dec[0]) - goto write - } - r -= 189000 - if 0 <= r && r < 0x100000 { - r += 0x10000 - } else { - r, size = utf8.RuneError, 1 - } - goto write - default: - r, size = utf8.RuneError, 1 - goto write - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*190 + int(c1); i < len(decode) { - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - r, size = utf8.RuneError, 1 - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type gbkEncoder struct { - transform.NopResetter - gb18030 bool -} - -func (e gbkEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, r2, size := rune(0), rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r2 = rune(encode0[r-encode0Low]); r2 != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - if r == '€' { - r = 0x80 - goto write1 - } - if r2 = rune(encode1[r-encode1Low]); r2 != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r2 = rune(encode2[r-encode2Low]); r2 != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r2 = rune(encode3[r-encode3Low]); r2 != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r2 = rune(encode4[r-encode4Low]); r2 != 0 { - goto write2 - } - } - - if e.gb18030 { - if r < 0x10000 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][1]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[0]) - rune(dec[1]) - goto write4 - } else if r < 0x110000 { - r += 189000 - 0x10000 - goto write4 - } - } - err = internal.ErrASCIIReplacement - break - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r2 >> 8) - dst[nDst+1] = uint8(r2) - nDst += 2 - continue - - write4: - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+3] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+2] = uint8(r%126 + 0x81) - r /= 126 - dst[nDst+1] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+0] = uint8(r + 0x81) - nDst += 4 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 5 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go deleted file mode 100644 index eb3157f0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go +++ /dev/null @@ -1,245 +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 simplifiedchinese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// HZGB2312 is the HZ-GB2312 encoding. -var HZGB2312 encoding.Encoding = &hzGB2312 - -var hzGB2312 = internal.Encoding{ - internal.FuncEncoding{hzGB2312NewDecoder, hzGB2312NewEncoder}, - "HZ-GB2312", - identifier.HZGB2312, -} - -func hzGB2312NewDecoder() transform.Transformer { - return new(hzGB2312Decoder) -} - -func hzGB2312NewEncoder() transform.Transformer { - return new(hzGB2312Encoder) -} - -const ( - asciiState = iota - gbState -) - -type hzGB2312Decoder int - -func (d *hzGB2312Decoder) Reset() { - *d = asciiState -} - -func (d *hzGB2312Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - r, size = utf8.RuneError, 1 - goto write - } - - if c0 == '~' { - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r = utf8.RuneError - goto write - } - size = 2 - switch src[nSrc+1] { - case '{': - *d = gbState - continue - case '}': - *d = asciiState - continue - case '~': - if nDst >= len(dst) { - err = transform.ErrShortDst - break loop - } - dst[nDst] = '~' - nDst++ - continue - case '\n': - continue - default: - r = utf8.RuneError - goto write - } - } - - if *d == asciiState { - r, size = rune(c0), 1 - } else { - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - goto write - } - size = 2 - c1 := src[nSrc+1] - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - // error - } else if i := int(c0-0x01)*190 + int(c1+0x3f); i < len(decode) { - r = rune(decode[i]) - if r != 0 { - goto write - } - } - if c1 > utf8.RuneSelf { - // Be consistent and always treat non-ASCII as a single error. - size = 1 - } - r = utf8.RuneError - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type hzGB2312Encoder int - -func (d *hzGB2312Encoder) Reset() { - *d = asciiState -} - -func (e *hzGB2312Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if r == '~' { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = '~' - dst[nDst+1] = '~' - nDst += 2 - continue - } else if *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = '~' - dst[nDst+1] = '}' - nDst += 2 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst += 1 - continue - - } - - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto writeGB - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto writeGB - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto writeGB - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto writeGB - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto writeGB - } - } - - terminateInASCIIState: - // Switch back to ASCII state in case of error so that an ASCII - // replacement character can be written in the correct state. - if *e != asciiState { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = '~' - dst[nDst+1] = '}' - nDst += 2 - } - err = internal.ErrASCIIReplacement - break - - writeGB: - c0 := uint8(r>>8) - 0x80 - c1 := uint8(r) - 0x80 - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - goto terminateInASCIIState - } - if *e == asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = gbState - dst[nDst+0] = '~' - dst[nDst+1] = '{' - nDst += 2 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = c0 - dst[nDst+1] = c1 - nDst += 2 - continue - } - // TODO: should one always terminate in ASCII state to make it safe to - // concatenate two HZ-GB2312-encoded strings? - return nDst, nSrc, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go deleted file mode 100644 index 415f52a1..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go +++ /dev/null @@ -1,43999 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package simplifiedchinese provides Simplified Chinese encodings such as GBK. -package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese" - -// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt -var gb18030 = [...][2]uint16{ - {0x0000, 0x0080}, - {0x0024, 0x00a5}, - {0x0026, 0x00a9}, - {0x002d, 0x00b2}, - {0x0032, 0x00b8}, - {0x0051, 0x00d8}, - {0x0059, 0x00e2}, - {0x005f, 0x00eb}, - {0x0060, 0x00ee}, - {0x0064, 0x00f4}, - {0x0067, 0x00f8}, - {0x0068, 0x00fb}, - {0x0069, 0x00fd}, - {0x006d, 0x0102}, - {0x007e, 0x0114}, - {0x0085, 0x011c}, - {0x0094, 0x012c}, - {0x00ac, 0x0145}, - {0x00af, 0x0149}, - {0x00b3, 0x014e}, - {0x00d0, 0x016c}, - {0x0132, 0x01cf}, - {0x0133, 0x01d1}, - {0x0134, 0x01d3}, - {0x0135, 0x01d5}, - {0x0136, 0x01d7}, - {0x0137, 0x01d9}, - {0x0138, 0x01db}, - {0x0139, 0x01dd}, - {0x0155, 0x01fa}, - {0x01ac, 0x0252}, - {0x01bb, 0x0262}, - {0x0220, 0x02c8}, - {0x0221, 0x02cc}, - {0x022e, 0x02da}, - {0x02e5, 0x03a2}, - {0x02e6, 0x03aa}, - {0x02ed, 0x03c2}, - {0x02ee, 0x03ca}, - {0x0325, 0x0402}, - {0x0333, 0x0450}, - {0x0334, 0x0452}, - {0x1ef2, 0x2011}, - {0x1ef4, 0x2017}, - {0x1ef5, 0x201a}, - {0x1ef7, 0x201e}, - {0x1efe, 0x2027}, - {0x1f07, 0x2031}, - {0x1f08, 0x2034}, - {0x1f09, 0x2036}, - {0x1f0e, 0x203c}, - {0x1f7e, 0x20ad}, - {0x1fd4, 0x2104}, - {0x1fd5, 0x2106}, - {0x1fd8, 0x210a}, - {0x1fe4, 0x2117}, - {0x1fee, 0x2122}, - {0x202c, 0x216c}, - {0x2030, 0x217a}, - {0x2046, 0x2194}, - {0x2048, 0x219a}, - {0x20b6, 0x2209}, - {0x20bc, 0x2210}, - {0x20bd, 0x2212}, - {0x20c0, 0x2216}, - {0x20c4, 0x221b}, - {0x20c6, 0x2221}, - {0x20c8, 0x2224}, - {0x20c9, 0x2226}, - {0x20ca, 0x222c}, - {0x20cc, 0x222f}, - {0x20d1, 0x2238}, - {0x20d6, 0x223e}, - {0x20e0, 0x2249}, - {0x20e3, 0x224d}, - {0x20e8, 0x2253}, - {0x20f5, 0x2262}, - {0x20f7, 0x2268}, - {0x20fd, 0x2270}, - {0x2122, 0x2296}, - {0x2125, 0x229a}, - {0x2130, 0x22a6}, - {0x2149, 0x22c0}, - {0x219b, 0x2313}, - {0x22e8, 0x246a}, - {0x22f2, 0x249c}, - {0x2356, 0x254c}, - {0x235a, 0x2574}, - {0x2367, 0x2590}, - {0x236a, 0x2596}, - {0x2374, 0x25a2}, - {0x2384, 0x25b4}, - {0x238c, 0x25be}, - {0x2394, 0x25c8}, - {0x2397, 0x25cc}, - {0x2399, 0x25d0}, - {0x23ab, 0x25e6}, - {0x23ca, 0x2607}, - {0x23cc, 0x260a}, - {0x2402, 0x2641}, - {0x2403, 0x2643}, - {0x2c41, 0x2e82}, - {0x2c43, 0x2e85}, - {0x2c46, 0x2e89}, - {0x2c48, 0x2e8d}, - {0x2c52, 0x2e98}, - {0x2c61, 0x2ea8}, - {0x2c63, 0x2eab}, - {0x2c66, 0x2eaf}, - {0x2c6a, 0x2eb4}, - {0x2c6c, 0x2eb8}, - {0x2c6f, 0x2ebc}, - {0x2c7d, 0x2ecb}, - {0x2da2, 0x2ffc}, - {0x2da6, 0x3004}, - {0x2da7, 0x3018}, - {0x2dac, 0x301f}, - {0x2dae, 0x302a}, - {0x2dc2, 0x303f}, - {0x2dc4, 0x3094}, - {0x2dcb, 0x309f}, - {0x2dcd, 0x30f7}, - {0x2dd2, 0x30ff}, - {0x2dd8, 0x312a}, - {0x2ece, 0x322a}, - {0x2ed5, 0x3232}, - {0x2f46, 0x32a4}, - {0x3030, 0x3390}, - {0x303c, 0x339f}, - {0x303e, 0x33a2}, - {0x3060, 0x33c5}, - {0x3069, 0x33cf}, - {0x306b, 0x33d3}, - {0x306d, 0x33d6}, - {0x30de, 0x3448}, - {0x3109, 0x3474}, - {0x3233, 0x359f}, - {0x32a2, 0x360f}, - {0x32ad, 0x361b}, - {0x35aa, 0x3919}, - {0x35ff, 0x396f}, - {0x365f, 0x39d1}, - {0x366d, 0x39e0}, - {0x3700, 0x3a74}, - {0x37da, 0x3b4f}, - {0x38f9, 0x3c6f}, - {0x396a, 0x3ce1}, - {0x3cdf, 0x4057}, - {0x3de7, 0x4160}, - {0x3fbe, 0x4338}, - {0x4032, 0x43ad}, - {0x4036, 0x43b2}, - {0x4061, 0x43de}, - {0x4159, 0x44d7}, - {0x42ce, 0x464d}, - {0x42e2, 0x4662}, - {0x43a3, 0x4724}, - {0x43a8, 0x472a}, - {0x43fa, 0x477d}, - {0x440a, 0x478e}, - {0x45c3, 0x4948}, - {0x45f5, 0x497b}, - {0x45f7, 0x497e}, - {0x45fb, 0x4984}, - {0x45fc, 0x4987}, - {0x4610, 0x499c}, - {0x4613, 0x49a0}, - {0x4629, 0x49b8}, - {0x48e8, 0x4c78}, - {0x490f, 0x4ca4}, - {0x497e, 0x4d1a}, - {0x4a12, 0x4daf}, - {0x4a63, 0x9fa6}, - {0x82bd, 0xe76c}, - {0x82be, 0xe7c8}, - {0x82bf, 0xe7e7}, - {0x82cc, 0xe815}, - {0x82cd, 0xe819}, - {0x82d2, 0xe81f}, - {0x82d9, 0xe827}, - {0x82dd, 0xe82d}, - {0x82e1, 0xe833}, - {0x82e9, 0xe83c}, - {0x82f0, 0xe844}, - {0x8300, 0xe856}, - {0x830e, 0xe865}, - {0x93d5, 0xf92d}, - {0x9421, 0xf97a}, - {0x943c, 0xf996}, - {0x948d, 0xf9e8}, - {0x9496, 0xf9f2}, - {0x94b0, 0xfa10}, - {0x94b1, 0xfa12}, - {0x94b2, 0xfa15}, - {0x94b5, 0xfa19}, - {0x94bb, 0xfa22}, - {0x94bc, 0xfa25}, - {0x94be, 0xfa2a}, - {0x98c4, 0xfe32}, - {0x98c5, 0xfe45}, - {0x98c9, 0xfe53}, - {0x98ca, 0xfe58}, - {0x98cb, 0xfe67}, - {0x98cc, 0xfe6c}, - {0x9961, 0xff5f}, - {0x99e2, 0xffe6}, -} - -// decode is the decoding table from GBK code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt -var decode = [...]uint16{ - 0: 0x4E02, - 1: 0x4E04, - 2: 0x4E05, - 3: 0x4E06, - 4: 0x4E0F, - 5: 0x4E12, - 6: 0x4E17, - 7: 0x4E1F, - 8: 0x4E20, - 9: 0x4E21, - 10: 0x4E23, - 11: 0x4E26, - 12: 0x4E29, - 13: 0x4E2E, - 14: 0x4E2F, - 15: 0x4E31, - 16: 0x4E33, - 17: 0x4E35, - 18: 0x4E37, - 19: 0x4E3C, - 20: 0x4E40, - 21: 0x4E41, - 22: 0x4E42, - 23: 0x4E44, - 24: 0x4E46, - 25: 0x4E4A, - 26: 0x4E51, - 27: 0x4E55, - 28: 0x4E57, - 29: 0x4E5A, - 30: 0x4E5B, - 31: 0x4E62, - 32: 0x4E63, - 33: 0x4E64, - 34: 0x4E65, - 35: 0x4E67, - 36: 0x4E68, - 37: 0x4E6A, - 38: 0x4E6B, - 39: 0x4E6C, - 40: 0x4E6D, - 41: 0x4E6E, - 42: 0x4E6F, - 43: 0x4E72, - 44: 0x4E74, - 45: 0x4E75, - 46: 0x4E76, - 47: 0x4E77, - 48: 0x4E78, - 49: 0x4E79, - 50: 0x4E7A, - 51: 0x4E7B, - 52: 0x4E7C, - 53: 0x4E7D, - 54: 0x4E7F, - 55: 0x4E80, - 56: 0x4E81, - 57: 0x4E82, - 58: 0x4E83, - 59: 0x4E84, - 60: 0x4E85, - 61: 0x4E87, - 62: 0x4E8A, - 63: 0x4E90, - 64: 0x4E96, - 65: 0x4E97, - 66: 0x4E99, - 67: 0x4E9C, - 68: 0x4E9D, - 69: 0x4E9E, - 70: 0x4EA3, - 71: 0x4EAA, - 72: 0x4EAF, - 73: 0x4EB0, - 74: 0x4EB1, - 75: 0x4EB4, - 76: 0x4EB6, - 77: 0x4EB7, - 78: 0x4EB8, - 79: 0x4EB9, - 80: 0x4EBC, - 81: 0x4EBD, - 82: 0x4EBE, - 83: 0x4EC8, - 84: 0x4ECC, - 85: 0x4ECF, - 86: 0x4ED0, - 87: 0x4ED2, - 88: 0x4EDA, - 89: 0x4EDB, - 90: 0x4EDC, - 91: 0x4EE0, - 92: 0x4EE2, - 93: 0x4EE6, - 94: 0x4EE7, - 95: 0x4EE9, - 96: 0x4EED, - 97: 0x4EEE, - 98: 0x4EEF, - 99: 0x4EF1, - 100: 0x4EF4, - 101: 0x4EF8, - 102: 0x4EF9, - 103: 0x4EFA, - 104: 0x4EFC, - 105: 0x4EFE, - 106: 0x4F00, - 107: 0x4F02, - 108: 0x4F03, - 109: 0x4F04, - 110: 0x4F05, - 111: 0x4F06, - 112: 0x4F07, - 113: 0x4F08, - 114: 0x4F0B, - 115: 0x4F0C, - 116: 0x4F12, - 117: 0x4F13, - 118: 0x4F14, - 119: 0x4F15, - 120: 0x4F16, - 121: 0x4F1C, - 122: 0x4F1D, - 123: 0x4F21, - 124: 0x4F23, - 125: 0x4F28, - 126: 0x4F29, - 127: 0x4F2C, - 128: 0x4F2D, - 129: 0x4F2E, - 130: 0x4F31, - 131: 0x4F33, - 132: 0x4F35, - 133: 0x4F37, - 134: 0x4F39, - 135: 0x4F3B, - 136: 0x4F3E, - 137: 0x4F3F, - 138: 0x4F40, - 139: 0x4F41, - 140: 0x4F42, - 141: 0x4F44, - 142: 0x4F45, - 143: 0x4F47, - 144: 0x4F48, - 145: 0x4F49, - 146: 0x4F4A, - 147: 0x4F4B, - 148: 0x4F4C, - 149: 0x4F52, - 150: 0x4F54, - 151: 0x4F56, - 152: 0x4F61, - 153: 0x4F62, - 154: 0x4F66, - 155: 0x4F68, - 156: 0x4F6A, - 157: 0x4F6B, - 158: 0x4F6D, - 159: 0x4F6E, - 160: 0x4F71, - 161: 0x4F72, - 162: 0x4F75, - 163: 0x4F77, - 164: 0x4F78, - 165: 0x4F79, - 166: 0x4F7A, - 167: 0x4F7D, - 168: 0x4F80, - 169: 0x4F81, - 170: 0x4F82, - 171: 0x4F85, - 172: 0x4F86, - 173: 0x4F87, - 174: 0x4F8A, - 175: 0x4F8C, - 176: 0x4F8E, - 177: 0x4F90, - 178: 0x4F92, - 179: 0x4F93, - 180: 0x4F95, - 181: 0x4F96, - 182: 0x4F98, - 183: 0x4F99, - 184: 0x4F9A, - 185: 0x4F9C, - 186: 0x4F9E, - 187: 0x4F9F, - 188: 0x4FA1, - 189: 0x4FA2, - 190: 0x4FA4, - 191: 0x4FAB, - 192: 0x4FAD, - 193: 0x4FB0, - 194: 0x4FB1, - 195: 0x4FB2, - 196: 0x4FB3, - 197: 0x4FB4, - 198: 0x4FB6, - 199: 0x4FB7, - 200: 0x4FB8, - 201: 0x4FB9, - 202: 0x4FBA, - 203: 0x4FBB, - 204: 0x4FBC, - 205: 0x4FBD, - 206: 0x4FBE, - 207: 0x4FC0, - 208: 0x4FC1, - 209: 0x4FC2, - 210: 0x4FC6, - 211: 0x4FC7, - 212: 0x4FC8, - 213: 0x4FC9, - 214: 0x4FCB, - 215: 0x4FCC, - 216: 0x4FCD, - 217: 0x4FD2, - 218: 0x4FD3, - 219: 0x4FD4, - 220: 0x4FD5, - 221: 0x4FD6, - 222: 0x4FD9, - 223: 0x4FDB, - 224: 0x4FE0, - 225: 0x4FE2, - 226: 0x4FE4, - 227: 0x4FE5, - 228: 0x4FE7, - 229: 0x4FEB, - 230: 0x4FEC, - 231: 0x4FF0, - 232: 0x4FF2, - 233: 0x4FF4, - 234: 0x4FF5, - 235: 0x4FF6, - 236: 0x4FF7, - 237: 0x4FF9, - 238: 0x4FFB, - 239: 0x4FFC, - 240: 0x4FFD, - 241: 0x4FFF, - 242: 0x5000, - 243: 0x5001, - 244: 0x5002, - 245: 0x5003, - 246: 0x5004, - 247: 0x5005, - 248: 0x5006, - 249: 0x5007, - 250: 0x5008, - 251: 0x5009, - 252: 0x500A, - 253: 0x500B, - 254: 0x500E, - 255: 0x5010, - 256: 0x5011, - 257: 0x5013, - 258: 0x5015, - 259: 0x5016, - 260: 0x5017, - 261: 0x501B, - 262: 0x501D, - 263: 0x501E, - 264: 0x5020, - 265: 0x5022, - 266: 0x5023, - 267: 0x5024, - 268: 0x5027, - 269: 0x502B, - 270: 0x502F, - 271: 0x5030, - 272: 0x5031, - 273: 0x5032, - 274: 0x5033, - 275: 0x5034, - 276: 0x5035, - 277: 0x5036, - 278: 0x5037, - 279: 0x5038, - 280: 0x5039, - 281: 0x503B, - 282: 0x503D, - 283: 0x503F, - 284: 0x5040, - 285: 0x5041, - 286: 0x5042, - 287: 0x5044, - 288: 0x5045, - 289: 0x5046, - 290: 0x5049, - 291: 0x504A, - 292: 0x504B, - 293: 0x504D, - 294: 0x5050, - 295: 0x5051, - 296: 0x5052, - 297: 0x5053, - 298: 0x5054, - 299: 0x5056, - 300: 0x5057, - 301: 0x5058, - 302: 0x5059, - 303: 0x505B, - 304: 0x505D, - 305: 0x505E, - 306: 0x505F, - 307: 0x5060, - 308: 0x5061, - 309: 0x5062, - 310: 0x5063, - 311: 0x5064, - 312: 0x5066, - 313: 0x5067, - 314: 0x5068, - 315: 0x5069, - 316: 0x506A, - 317: 0x506B, - 318: 0x506D, - 319: 0x506E, - 320: 0x506F, - 321: 0x5070, - 322: 0x5071, - 323: 0x5072, - 324: 0x5073, - 325: 0x5074, - 326: 0x5075, - 327: 0x5078, - 328: 0x5079, - 329: 0x507A, - 330: 0x507C, - 331: 0x507D, - 332: 0x5081, - 333: 0x5082, - 334: 0x5083, - 335: 0x5084, - 336: 0x5086, - 337: 0x5087, - 338: 0x5089, - 339: 0x508A, - 340: 0x508B, - 341: 0x508C, - 342: 0x508E, - 343: 0x508F, - 344: 0x5090, - 345: 0x5091, - 346: 0x5092, - 347: 0x5093, - 348: 0x5094, - 349: 0x5095, - 350: 0x5096, - 351: 0x5097, - 352: 0x5098, - 353: 0x5099, - 354: 0x509A, - 355: 0x509B, - 356: 0x509C, - 357: 0x509D, - 358: 0x509E, - 359: 0x509F, - 360: 0x50A0, - 361: 0x50A1, - 362: 0x50A2, - 363: 0x50A4, - 364: 0x50A6, - 365: 0x50AA, - 366: 0x50AB, - 367: 0x50AD, - 368: 0x50AE, - 369: 0x50AF, - 370: 0x50B0, - 371: 0x50B1, - 372: 0x50B3, - 373: 0x50B4, - 374: 0x50B5, - 375: 0x50B6, - 376: 0x50B7, - 377: 0x50B8, - 378: 0x50B9, - 379: 0x50BC, - 380: 0x50BD, - 381: 0x50BE, - 382: 0x50BF, - 383: 0x50C0, - 384: 0x50C1, - 385: 0x50C2, - 386: 0x50C3, - 387: 0x50C4, - 388: 0x50C5, - 389: 0x50C6, - 390: 0x50C7, - 391: 0x50C8, - 392: 0x50C9, - 393: 0x50CA, - 394: 0x50CB, - 395: 0x50CC, - 396: 0x50CD, - 397: 0x50CE, - 398: 0x50D0, - 399: 0x50D1, - 400: 0x50D2, - 401: 0x50D3, - 402: 0x50D4, - 403: 0x50D5, - 404: 0x50D7, - 405: 0x50D8, - 406: 0x50D9, - 407: 0x50DB, - 408: 0x50DC, - 409: 0x50DD, - 410: 0x50DE, - 411: 0x50DF, - 412: 0x50E0, - 413: 0x50E1, - 414: 0x50E2, - 415: 0x50E3, - 416: 0x50E4, - 417: 0x50E5, - 418: 0x50E8, - 419: 0x50E9, - 420: 0x50EA, - 421: 0x50EB, - 422: 0x50EF, - 423: 0x50F0, - 424: 0x50F1, - 425: 0x50F2, - 426: 0x50F4, - 427: 0x50F6, - 428: 0x50F7, - 429: 0x50F8, - 430: 0x50F9, - 431: 0x50FA, - 432: 0x50FC, - 433: 0x50FD, - 434: 0x50FE, - 435: 0x50FF, - 436: 0x5100, - 437: 0x5101, - 438: 0x5102, - 439: 0x5103, - 440: 0x5104, - 441: 0x5105, - 442: 0x5108, - 443: 0x5109, - 444: 0x510A, - 445: 0x510C, - 446: 0x510D, - 447: 0x510E, - 448: 0x510F, - 449: 0x5110, - 450: 0x5111, - 451: 0x5113, - 452: 0x5114, - 453: 0x5115, - 454: 0x5116, - 455: 0x5117, - 456: 0x5118, - 457: 0x5119, - 458: 0x511A, - 459: 0x511B, - 460: 0x511C, - 461: 0x511D, - 462: 0x511E, - 463: 0x511F, - 464: 0x5120, - 465: 0x5122, - 466: 0x5123, - 467: 0x5124, - 468: 0x5125, - 469: 0x5126, - 470: 0x5127, - 471: 0x5128, - 472: 0x5129, - 473: 0x512A, - 474: 0x512B, - 475: 0x512C, - 476: 0x512D, - 477: 0x512E, - 478: 0x512F, - 479: 0x5130, - 480: 0x5131, - 481: 0x5132, - 482: 0x5133, - 483: 0x5134, - 484: 0x5135, - 485: 0x5136, - 486: 0x5137, - 487: 0x5138, - 488: 0x5139, - 489: 0x513A, - 490: 0x513B, - 491: 0x513C, - 492: 0x513D, - 493: 0x513E, - 494: 0x5142, - 495: 0x5147, - 496: 0x514A, - 497: 0x514C, - 498: 0x514E, - 499: 0x514F, - 500: 0x5150, - 501: 0x5152, - 502: 0x5153, - 503: 0x5157, - 504: 0x5158, - 505: 0x5159, - 506: 0x515B, - 507: 0x515D, - 508: 0x515E, - 509: 0x515F, - 510: 0x5160, - 511: 0x5161, - 512: 0x5163, - 513: 0x5164, - 514: 0x5166, - 515: 0x5167, - 516: 0x5169, - 517: 0x516A, - 518: 0x516F, - 519: 0x5172, - 520: 0x517A, - 521: 0x517E, - 522: 0x517F, - 523: 0x5183, - 524: 0x5184, - 525: 0x5186, - 526: 0x5187, - 527: 0x518A, - 528: 0x518B, - 529: 0x518E, - 530: 0x518F, - 531: 0x5190, - 532: 0x5191, - 533: 0x5193, - 534: 0x5194, - 535: 0x5198, - 536: 0x519A, - 537: 0x519D, - 538: 0x519E, - 539: 0x519F, - 540: 0x51A1, - 541: 0x51A3, - 542: 0x51A6, - 543: 0x51A7, - 544: 0x51A8, - 545: 0x51A9, - 546: 0x51AA, - 547: 0x51AD, - 548: 0x51AE, - 549: 0x51B4, - 550: 0x51B8, - 551: 0x51B9, - 552: 0x51BA, - 553: 0x51BE, - 554: 0x51BF, - 555: 0x51C1, - 556: 0x51C2, - 557: 0x51C3, - 558: 0x51C5, - 559: 0x51C8, - 560: 0x51CA, - 561: 0x51CD, - 562: 0x51CE, - 563: 0x51D0, - 564: 0x51D2, - 565: 0x51D3, - 566: 0x51D4, - 567: 0x51D5, - 568: 0x51D6, - 569: 0x51D7, - 570: 0x51D8, - 571: 0x51D9, - 572: 0x51DA, - 573: 0x51DC, - 574: 0x51DE, - 575: 0x51DF, - 576: 0x51E2, - 577: 0x51E3, - 578: 0x51E5, - 579: 0x51E6, - 580: 0x51E7, - 581: 0x51E8, - 582: 0x51E9, - 583: 0x51EA, - 584: 0x51EC, - 585: 0x51EE, - 586: 0x51F1, - 587: 0x51F2, - 588: 0x51F4, - 589: 0x51F7, - 590: 0x51FE, - 591: 0x5204, - 592: 0x5205, - 593: 0x5209, - 594: 0x520B, - 595: 0x520C, - 596: 0x520F, - 597: 0x5210, - 598: 0x5213, - 599: 0x5214, - 600: 0x5215, - 601: 0x521C, - 602: 0x521E, - 603: 0x521F, - 604: 0x5221, - 605: 0x5222, - 606: 0x5223, - 607: 0x5225, - 608: 0x5226, - 609: 0x5227, - 610: 0x522A, - 611: 0x522C, - 612: 0x522F, - 613: 0x5231, - 614: 0x5232, - 615: 0x5234, - 616: 0x5235, - 617: 0x523C, - 618: 0x523E, - 619: 0x5244, - 620: 0x5245, - 621: 0x5246, - 622: 0x5247, - 623: 0x5248, - 624: 0x5249, - 625: 0x524B, - 626: 0x524E, - 627: 0x524F, - 628: 0x5252, - 629: 0x5253, - 630: 0x5255, - 631: 0x5257, - 632: 0x5258, - 633: 0x5259, - 634: 0x525A, - 635: 0x525B, - 636: 0x525D, - 637: 0x525F, - 638: 0x5260, - 639: 0x5262, - 640: 0x5263, - 641: 0x5264, - 642: 0x5266, - 643: 0x5268, - 644: 0x526B, - 645: 0x526C, - 646: 0x526D, - 647: 0x526E, - 648: 0x5270, - 649: 0x5271, - 650: 0x5273, - 651: 0x5274, - 652: 0x5275, - 653: 0x5276, - 654: 0x5277, - 655: 0x5278, - 656: 0x5279, - 657: 0x527A, - 658: 0x527B, - 659: 0x527C, - 660: 0x527E, - 661: 0x5280, - 662: 0x5283, - 663: 0x5284, - 664: 0x5285, - 665: 0x5286, - 666: 0x5287, - 667: 0x5289, - 668: 0x528A, - 669: 0x528B, - 670: 0x528C, - 671: 0x528D, - 672: 0x528E, - 673: 0x528F, - 674: 0x5291, - 675: 0x5292, - 676: 0x5294, - 677: 0x5295, - 678: 0x5296, - 679: 0x5297, - 680: 0x5298, - 681: 0x5299, - 682: 0x529A, - 683: 0x529C, - 684: 0x52A4, - 685: 0x52A5, - 686: 0x52A6, - 687: 0x52A7, - 688: 0x52AE, - 689: 0x52AF, - 690: 0x52B0, - 691: 0x52B4, - 692: 0x52B5, - 693: 0x52B6, - 694: 0x52B7, - 695: 0x52B8, - 696: 0x52B9, - 697: 0x52BA, - 698: 0x52BB, - 699: 0x52BC, - 700: 0x52BD, - 701: 0x52C0, - 702: 0x52C1, - 703: 0x52C2, - 704: 0x52C4, - 705: 0x52C5, - 706: 0x52C6, - 707: 0x52C8, - 708: 0x52CA, - 709: 0x52CC, - 710: 0x52CD, - 711: 0x52CE, - 712: 0x52CF, - 713: 0x52D1, - 714: 0x52D3, - 715: 0x52D4, - 716: 0x52D5, - 717: 0x52D7, - 718: 0x52D9, - 719: 0x52DA, - 720: 0x52DB, - 721: 0x52DC, - 722: 0x52DD, - 723: 0x52DE, - 724: 0x52E0, - 725: 0x52E1, - 726: 0x52E2, - 727: 0x52E3, - 728: 0x52E5, - 729: 0x52E6, - 730: 0x52E7, - 731: 0x52E8, - 732: 0x52E9, - 733: 0x52EA, - 734: 0x52EB, - 735: 0x52EC, - 736: 0x52ED, - 737: 0x52EE, - 738: 0x52EF, - 739: 0x52F1, - 740: 0x52F2, - 741: 0x52F3, - 742: 0x52F4, - 743: 0x52F5, - 744: 0x52F6, - 745: 0x52F7, - 746: 0x52F8, - 747: 0x52FB, - 748: 0x52FC, - 749: 0x52FD, - 750: 0x5301, - 751: 0x5302, - 752: 0x5303, - 753: 0x5304, - 754: 0x5307, - 755: 0x5309, - 756: 0x530A, - 757: 0x530B, - 758: 0x530C, - 759: 0x530E, - 760: 0x5311, - 761: 0x5312, - 762: 0x5313, - 763: 0x5314, - 764: 0x5318, - 765: 0x531B, - 766: 0x531C, - 767: 0x531E, - 768: 0x531F, - 769: 0x5322, - 770: 0x5324, - 771: 0x5325, - 772: 0x5327, - 773: 0x5328, - 774: 0x5329, - 775: 0x532B, - 776: 0x532C, - 777: 0x532D, - 778: 0x532F, - 779: 0x5330, - 780: 0x5331, - 781: 0x5332, - 782: 0x5333, - 783: 0x5334, - 784: 0x5335, - 785: 0x5336, - 786: 0x5337, - 787: 0x5338, - 788: 0x533C, - 789: 0x533D, - 790: 0x5340, - 791: 0x5342, - 792: 0x5344, - 793: 0x5346, - 794: 0x534B, - 795: 0x534C, - 796: 0x534D, - 797: 0x5350, - 798: 0x5354, - 799: 0x5358, - 800: 0x5359, - 801: 0x535B, - 802: 0x535D, - 803: 0x5365, - 804: 0x5368, - 805: 0x536A, - 806: 0x536C, - 807: 0x536D, - 808: 0x5372, - 809: 0x5376, - 810: 0x5379, - 811: 0x537B, - 812: 0x537C, - 813: 0x537D, - 814: 0x537E, - 815: 0x5380, - 816: 0x5381, - 817: 0x5383, - 818: 0x5387, - 819: 0x5388, - 820: 0x538A, - 821: 0x538E, - 822: 0x538F, - 823: 0x5390, - 824: 0x5391, - 825: 0x5392, - 826: 0x5393, - 827: 0x5394, - 828: 0x5396, - 829: 0x5397, - 830: 0x5399, - 831: 0x539B, - 832: 0x539C, - 833: 0x539E, - 834: 0x53A0, - 835: 0x53A1, - 836: 0x53A4, - 837: 0x53A7, - 838: 0x53AA, - 839: 0x53AB, - 840: 0x53AC, - 841: 0x53AD, - 842: 0x53AF, - 843: 0x53B0, - 844: 0x53B1, - 845: 0x53B2, - 846: 0x53B3, - 847: 0x53B4, - 848: 0x53B5, - 849: 0x53B7, - 850: 0x53B8, - 851: 0x53B9, - 852: 0x53BA, - 853: 0x53BC, - 854: 0x53BD, - 855: 0x53BE, - 856: 0x53C0, - 857: 0x53C3, - 858: 0x53C4, - 859: 0x53C5, - 860: 0x53C6, - 861: 0x53C7, - 862: 0x53CE, - 863: 0x53CF, - 864: 0x53D0, - 865: 0x53D2, - 866: 0x53D3, - 867: 0x53D5, - 868: 0x53DA, - 869: 0x53DC, - 870: 0x53DD, - 871: 0x53DE, - 872: 0x53E1, - 873: 0x53E2, - 874: 0x53E7, - 875: 0x53F4, - 876: 0x53FA, - 877: 0x53FE, - 878: 0x53FF, - 879: 0x5400, - 880: 0x5402, - 881: 0x5405, - 882: 0x5407, - 883: 0x540B, - 884: 0x5414, - 885: 0x5418, - 886: 0x5419, - 887: 0x541A, - 888: 0x541C, - 889: 0x5422, - 890: 0x5424, - 891: 0x5425, - 892: 0x542A, - 893: 0x5430, - 894: 0x5433, - 895: 0x5436, - 896: 0x5437, - 897: 0x543A, - 898: 0x543D, - 899: 0x543F, - 900: 0x5441, - 901: 0x5442, - 902: 0x5444, - 903: 0x5445, - 904: 0x5447, - 905: 0x5449, - 906: 0x544C, - 907: 0x544D, - 908: 0x544E, - 909: 0x544F, - 910: 0x5451, - 911: 0x545A, - 912: 0x545D, - 913: 0x545E, - 914: 0x545F, - 915: 0x5460, - 916: 0x5461, - 917: 0x5463, - 918: 0x5465, - 919: 0x5467, - 920: 0x5469, - 921: 0x546A, - 922: 0x546B, - 923: 0x546C, - 924: 0x546D, - 925: 0x546E, - 926: 0x546F, - 927: 0x5470, - 928: 0x5474, - 929: 0x5479, - 930: 0x547A, - 931: 0x547E, - 932: 0x547F, - 933: 0x5481, - 934: 0x5483, - 935: 0x5485, - 936: 0x5487, - 937: 0x5488, - 938: 0x5489, - 939: 0x548A, - 940: 0x548D, - 941: 0x5491, - 942: 0x5493, - 943: 0x5497, - 944: 0x5498, - 945: 0x549C, - 946: 0x549E, - 947: 0x549F, - 948: 0x54A0, - 949: 0x54A1, - 950: 0x54A2, - 951: 0x54A5, - 952: 0x54AE, - 953: 0x54B0, - 954: 0x54B2, - 955: 0x54B5, - 956: 0x54B6, - 957: 0x54B7, - 958: 0x54B9, - 959: 0x54BA, - 960: 0x54BC, - 961: 0x54BE, - 962: 0x54C3, - 963: 0x54C5, - 964: 0x54CA, - 965: 0x54CB, - 966: 0x54D6, - 967: 0x54D8, - 968: 0x54DB, - 969: 0x54E0, - 970: 0x54E1, - 971: 0x54E2, - 972: 0x54E3, - 973: 0x54E4, - 974: 0x54EB, - 975: 0x54EC, - 976: 0x54EF, - 977: 0x54F0, - 978: 0x54F1, - 979: 0x54F4, - 980: 0x54F5, - 981: 0x54F6, - 982: 0x54F7, - 983: 0x54F8, - 984: 0x54F9, - 985: 0x54FB, - 986: 0x54FE, - 987: 0x5500, - 988: 0x5502, - 989: 0x5503, - 990: 0x5504, - 991: 0x5505, - 992: 0x5508, - 993: 0x550A, - 994: 0x550B, - 995: 0x550C, - 996: 0x550D, - 997: 0x550E, - 998: 0x5512, - 999: 0x5513, - 1000: 0x5515, - 1001: 0x5516, - 1002: 0x5517, - 1003: 0x5518, - 1004: 0x5519, - 1005: 0x551A, - 1006: 0x551C, - 1007: 0x551D, - 1008: 0x551E, - 1009: 0x551F, - 1010: 0x5521, - 1011: 0x5525, - 1012: 0x5526, - 1013: 0x5528, - 1014: 0x5529, - 1015: 0x552B, - 1016: 0x552D, - 1017: 0x5532, - 1018: 0x5534, - 1019: 0x5535, - 1020: 0x5536, - 1021: 0x5538, - 1022: 0x5539, - 1023: 0x553A, - 1024: 0x553B, - 1025: 0x553D, - 1026: 0x5540, - 1027: 0x5542, - 1028: 0x5545, - 1029: 0x5547, - 1030: 0x5548, - 1031: 0x554B, - 1032: 0x554C, - 1033: 0x554D, - 1034: 0x554E, - 1035: 0x554F, - 1036: 0x5551, - 1037: 0x5552, - 1038: 0x5553, - 1039: 0x5554, - 1040: 0x5557, - 1041: 0x5558, - 1042: 0x5559, - 1043: 0x555A, - 1044: 0x555B, - 1045: 0x555D, - 1046: 0x555E, - 1047: 0x555F, - 1048: 0x5560, - 1049: 0x5562, - 1050: 0x5563, - 1051: 0x5568, - 1052: 0x5569, - 1053: 0x556B, - 1054: 0x556F, - 1055: 0x5570, - 1056: 0x5571, - 1057: 0x5572, - 1058: 0x5573, - 1059: 0x5574, - 1060: 0x5579, - 1061: 0x557A, - 1062: 0x557D, - 1063: 0x557F, - 1064: 0x5585, - 1065: 0x5586, - 1066: 0x558C, - 1067: 0x558D, - 1068: 0x558E, - 1069: 0x5590, - 1070: 0x5592, - 1071: 0x5593, - 1072: 0x5595, - 1073: 0x5596, - 1074: 0x5597, - 1075: 0x559A, - 1076: 0x559B, - 1077: 0x559E, - 1078: 0x55A0, - 1079: 0x55A1, - 1080: 0x55A2, - 1081: 0x55A3, - 1082: 0x55A4, - 1083: 0x55A5, - 1084: 0x55A6, - 1085: 0x55A8, - 1086: 0x55A9, - 1087: 0x55AA, - 1088: 0x55AB, - 1089: 0x55AC, - 1090: 0x55AD, - 1091: 0x55AE, - 1092: 0x55AF, - 1093: 0x55B0, - 1094: 0x55B2, - 1095: 0x55B4, - 1096: 0x55B6, - 1097: 0x55B8, - 1098: 0x55BA, - 1099: 0x55BC, - 1100: 0x55BF, - 1101: 0x55C0, - 1102: 0x55C1, - 1103: 0x55C2, - 1104: 0x55C3, - 1105: 0x55C6, - 1106: 0x55C7, - 1107: 0x55C8, - 1108: 0x55CA, - 1109: 0x55CB, - 1110: 0x55CE, - 1111: 0x55CF, - 1112: 0x55D0, - 1113: 0x55D5, - 1114: 0x55D7, - 1115: 0x55D8, - 1116: 0x55D9, - 1117: 0x55DA, - 1118: 0x55DB, - 1119: 0x55DE, - 1120: 0x55E0, - 1121: 0x55E2, - 1122: 0x55E7, - 1123: 0x55E9, - 1124: 0x55ED, - 1125: 0x55EE, - 1126: 0x55F0, - 1127: 0x55F1, - 1128: 0x55F4, - 1129: 0x55F6, - 1130: 0x55F8, - 1131: 0x55F9, - 1132: 0x55FA, - 1133: 0x55FB, - 1134: 0x55FC, - 1135: 0x55FF, - 1136: 0x5602, - 1137: 0x5603, - 1138: 0x5604, - 1139: 0x5605, - 1140: 0x5606, - 1141: 0x5607, - 1142: 0x560A, - 1143: 0x560B, - 1144: 0x560D, - 1145: 0x5610, - 1146: 0x5611, - 1147: 0x5612, - 1148: 0x5613, - 1149: 0x5614, - 1150: 0x5615, - 1151: 0x5616, - 1152: 0x5617, - 1153: 0x5619, - 1154: 0x561A, - 1155: 0x561C, - 1156: 0x561D, - 1157: 0x5620, - 1158: 0x5621, - 1159: 0x5622, - 1160: 0x5625, - 1161: 0x5626, - 1162: 0x5628, - 1163: 0x5629, - 1164: 0x562A, - 1165: 0x562B, - 1166: 0x562E, - 1167: 0x562F, - 1168: 0x5630, - 1169: 0x5633, - 1170: 0x5635, - 1171: 0x5637, - 1172: 0x5638, - 1173: 0x563A, - 1174: 0x563C, - 1175: 0x563D, - 1176: 0x563E, - 1177: 0x5640, - 1178: 0x5641, - 1179: 0x5642, - 1180: 0x5643, - 1181: 0x5644, - 1182: 0x5645, - 1183: 0x5646, - 1184: 0x5647, - 1185: 0x5648, - 1186: 0x5649, - 1187: 0x564A, - 1188: 0x564B, - 1189: 0x564F, - 1190: 0x5650, - 1191: 0x5651, - 1192: 0x5652, - 1193: 0x5653, - 1194: 0x5655, - 1195: 0x5656, - 1196: 0x565A, - 1197: 0x565B, - 1198: 0x565D, - 1199: 0x565E, - 1200: 0x565F, - 1201: 0x5660, - 1202: 0x5661, - 1203: 0x5663, - 1204: 0x5665, - 1205: 0x5666, - 1206: 0x5667, - 1207: 0x566D, - 1208: 0x566E, - 1209: 0x566F, - 1210: 0x5670, - 1211: 0x5672, - 1212: 0x5673, - 1213: 0x5674, - 1214: 0x5675, - 1215: 0x5677, - 1216: 0x5678, - 1217: 0x5679, - 1218: 0x567A, - 1219: 0x567D, - 1220: 0x567E, - 1221: 0x567F, - 1222: 0x5680, - 1223: 0x5681, - 1224: 0x5682, - 1225: 0x5683, - 1226: 0x5684, - 1227: 0x5687, - 1228: 0x5688, - 1229: 0x5689, - 1230: 0x568A, - 1231: 0x568B, - 1232: 0x568C, - 1233: 0x568D, - 1234: 0x5690, - 1235: 0x5691, - 1236: 0x5692, - 1237: 0x5694, - 1238: 0x5695, - 1239: 0x5696, - 1240: 0x5697, - 1241: 0x5698, - 1242: 0x5699, - 1243: 0x569A, - 1244: 0x569B, - 1245: 0x569C, - 1246: 0x569D, - 1247: 0x569E, - 1248: 0x569F, - 1249: 0x56A0, - 1250: 0x56A1, - 1251: 0x56A2, - 1252: 0x56A4, - 1253: 0x56A5, - 1254: 0x56A6, - 1255: 0x56A7, - 1256: 0x56A8, - 1257: 0x56A9, - 1258: 0x56AA, - 1259: 0x56AB, - 1260: 0x56AC, - 1261: 0x56AD, - 1262: 0x56AE, - 1263: 0x56B0, - 1264: 0x56B1, - 1265: 0x56B2, - 1266: 0x56B3, - 1267: 0x56B4, - 1268: 0x56B5, - 1269: 0x56B6, - 1270: 0x56B8, - 1271: 0x56B9, - 1272: 0x56BA, - 1273: 0x56BB, - 1274: 0x56BD, - 1275: 0x56BE, - 1276: 0x56BF, - 1277: 0x56C0, - 1278: 0x56C1, - 1279: 0x56C2, - 1280: 0x56C3, - 1281: 0x56C4, - 1282: 0x56C5, - 1283: 0x56C6, - 1284: 0x56C7, - 1285: 0x56C8, - 1286: 0x56C9, - 1287: 0x56CB, - 1288: 0x56CC, - 1289: 0x56CD, - 1290: 0x56CE, - 1291: 0x56CF, - 1292: 0x56D0, - 1293: 0x56D1, - 1294: 0x56D2, - 1295: 0x56D3, - 1296: 0x56D5, - 1297: 0x56D6, - 1298: 0x56D8, - 1299: 0x56D9, - 1300: 0x56DC, - 1301: 0x56E3, - 1302: 0x56E5, - 1303: 0x56E6, - 1304: 0x56E7, - 1305: 0x56E8, - 1306: 0x56E9, - 1307: 0x56EA, - 1308: 0x56EC, - 1309: 0x56EE, - 1310: 0x56EF, - 1311: 0x56F2, - 1312: 0x56F3, - 1313: 0x56F6, - 1314: 0x56F7, - 1315: 0x56F8, - 1316: 0x56FB, - 1317: 0x56FC, - 1318: 0x5700, - 1319: 0x5701, - 1320: 0x5702, - 1321: 0x5705, - 1322: 0x5707, - 1323: 0x570B, - 1324: 0x570C, - 1325: 0x570D, - 1326: 0x570E, - 1327: 0x570F, - 1328: 0x5710, - 1329: 0x5711, - 1330: 0x5712, - 1331: 0x5713, - 1332: 0x5714, - 1333: 0x5715, - 1334: 0x5716, - 1335: 0x5717, - 1336: 0x5718, - 1337: 0x5719, - 1338: 0x571A, - 1339: 0x571B, - 1340: 0x571D, - 1341: 0x571E, - 1342: 0x5720, - 1343: 0x5721, - 1344: 0x5722, - 1345: 0x5724, - 1346: 0x5725, - 1347: 0x5726, - 1348: 0x5727, - 1349: 0x572B, - 1350: 0x5731, - 1351: 0x5732, - 1352: 0x5734, - 1353: 0x5735, - 1354: 0x5736, - 1355: 0x5737, - 1356: 0x5738, - 1357: 0x573C, - 1358: 0x573D, - 1359: 0x573F, - 1360: 0x5741, - 1361: 0x5743, - 1362: 0x5744, - 1363: 0x5745, - 1364: 0x5746, - 1365: 0x5748, - 1366: 0x5749, - 1367: 0x574B, - 1368: 0x5752, - 1369: 0x5753, - 1370: 0x5754, - 1371: 0x5755, - 1372: 0x5756, - 1373: 0x5758, - 1374: 0x5759, - 1375: 0x5762, - 1376: 0x5763, - 1377: 0x5765, - 1378: 0x5767, - 1379: 0x576C, - 1380: 0x576E, - 1381: 0x5770, - 1382: 0x5771, - 1383: 0x5772, - 1384: 0x5774, - 1385: 0x5775, - 1386: 0x5778, - 1387: 0x5779, - 1388: 0x577A, - 1389: 0x577D, - 1390: 0x577E, - 1391: 0x577F, - 1392: 0x5780, - 1393: 0x5781, - 1394: 0x5787, - 1395: 0x5788, - 1396: 0x5789, - 1397: 0x578A, - 1398: 0x578D, - 1399: 0x578E, - 1400: 0x578F, - 1401: 0x5790, - 1402: 0x5791, - 1403: 0x5794, - 1404: 0x5795, - 1405: 0x5796, - 1406: 0x5797, - 1407: 0x5798, - 1408: 0x5799, - 1409: 0x579A, - 1410: 0x579C, - 1411: 0x579D, - 1412: 0x579E, - 1413: 0x579F, - 1414: 0x57A5, - 1415: 0x57A8, - 1416: 0x57AA, - 1417: 0x57AC, - 1418: 0x57AF, - 1419: 0x57B0, - 1420: 0x57B1, - 1421: 0x57B3, - 1422: 0x57B5, - 1423: 0x57B6, - 1424: 0x57B7, - 1425: 0x57B9, - 1426: 0x57BA, - 1427: 0x57BB, - 1428: 0x57BC, - 1429: 0x57BD, - 1430: 0x57BE, - 1431: 0x57BF, - 1432: 0x57C0, - 1433: 0x57C1, - 1434: 0x57C4, - 1435: 0x57C5, - 1436: 0x57C6, - 1437: 0x57C7, - 1438: 0x57C8, - 1439: 0x57C9, - 1440: 0x57CA, - 1441: 0x57CC, - 1442: 0x57CD, - 1443: 0x57D0, - 1444: 0x57D1, - 1445: 0x57D3, - 1446: 0x57D6, - 1447: 0x57D7, - 1448: 0x57DB, - 1449: 0x57DC, - 1450: 0x57DE, - 1451: 0x57E1, - 1452: 0x57E2, - 1453: 0x57E3, - 1454: 0x57E5, - 1455: 0x57E6, - 1456: 0x57E7, - 1457: 0x57E8, - 1458: 0x57E9, - 1459: 0x57EA, - 1460: 0x57EB, - 1461: 0x57EC, - 1462: 0x57EE, - 1463: 0x57F0, - 1464: 0x57F1, - 1465: 0x57F2, - 1466: 0x57F3, - 1467: 0x57F5, - 1468: 0x57F6, - 1469: 0x57F7, - 1470: 0x57FB, - 1471: 0x57FC, - 1472: 0x57FE, - 1473: 0x57FF, - 1474: 0x5801, - 1475: 0x5803, - 1476: 0x5804, - 1477: 0x5805, - 1478: 0x5808, - 1479: 0x5809, - 1480: 0x580A, - 1481: 0x580C, - 1482: 0x580E, - 1483: 0x580F, - 1484: 0x5810, - 1485: 0x5812, - 1486: 0x5813, - 1487: 0x5814, - 1488: 0x5816, - 1489: 0x5817, - 1490: 0x5818, - 1491: 0x581A, - 1492: 0x581B, - 1493: 0x581C, - 1494: 0x581D, - 1495: 0x581F, - 1496: 0x5822, - 1497: 0x5823, - 1498: 0x5825, - 1499: 0x5826, - 1500: 0x5827, - 1501: 0x5828, - 1502: 0x5829, - 1503: 0x582B, - 1504: 0x582C, - 1505: 0x582D, - 1506: 0x582E, - 1507: 0x582F, - 1508: 0x5831, - 1509: 0x5832, - 1510: 0x5833, - 1511: 0x5834, - 1512: 0x5836, - 1513: 0x5837, - 1514: 0x5838, - 1515: 0x5839, - 1516: 0x583A, - 1517: 0x583B, - 1518: 0x583C, - 1519: 0x583D, - 1520: 0x583E, - 1521: 0x583F, - 1522: 0x5840, - 1523: 0x5841, - 1524: 0x5842, - 1525: 0x5843, - 1526: 0x5845, - 1527: 0x5846, - 1528: 0x5847, - 1529: 0x5848, - 1530: 0x5849, - 1531: 0x584A, - 1532: 0x584B, - 1533: 0x584E, - 1534: 0x584F, - 1535: 0x5850, - 1536: 0x5852, - 1537: 0x5853, - 1538: 0x5855, - 1539: 0x5856, - 1540: 0x5857, - 1541: 0x5859, - 1542: 0x585A, - 1543: 0x585B, - 1544: 0x585C, - 1545: 0x585D, - 1546: 0x585F, - 1547: 0x5860, - 1548: 0x5861, - 1549: 0x5862, - 1550: 0x5863, - 1551: 0x5864, - 1552: 0x5866, - 1553: 0x5867, - 1554: 0x5868, - 1555: 0x5869, - 1556: 0x586A, - 1557: 0x586D, - 1558: 0x586E, - 1559: 0x586F, - 1560: 0x5870, - 1561: 0x5871, - 1562: 0x5872, - 1563: 0x5873, - 1564: 0x5874, - 1565: 0x5875, - 1566: 0x5876, - 1567: 0x5877, - 1568: 0x5878, - 1569: 0x5879, - 1570: 0x587A, - 1571: 0x587B, - 1572: 0x587C, - 1573: 0x587D, - 1574: 0x587F, - 1575: 0x5882, - 1576: 0x5884, - 1577: 0x5886, - 1578: 0x5887, - 1579: 0x5888, - 1580: 0x588A, - 1581: 0x588B, - 1582: 0x588C, - 1583: 0x588D, - 1584: 0x588E, - 1585: 0x588F, - 1586: 0x5890, - 1587: 0x5891, - 1588: 0x5894, - 1589: 0x5895, - 1590: 0x5896, - 1591: 0x5897, - 1592: 0x5898, - 1593: 0x589B, - 1594: 0x589C, - 1595: 0x589D, - 1596: 0x58A0, - 1597: 0x58A1, - 1598: 0x58A2, - 1599: 0x58A3, - 1600: 0x58A4, - 1601: 0x58A5, - 1602: 0x58A6, - 1603: 0x58A7, - 1604: 0x58AA, - 1605: 0x58AB, - 1606: 0x58AC, - 1607: 0x58AD, - 1608: 0x58AE, - 1609: 0x58AF, - 1610: 0x58B0, - 1611: 0x58B1, - 1612: 0x58B2, - 1613: 0x58B3, - 1614: 0x58B4, - 1615: 0x58B5, - 1616: 0x58B6, - 1617: 0x58B7, - 1618: 0x58B8, - 1619: 0x58B9, - 1620: 0x58BA, - 1621: 0x58BB, - 1622: 0x58BD, - 1623: 0x58BE, - 1624: 0x58BF, - 1625: 0x58C0, - 1626: 0x58C2, - 1627: 0x58C3, - 1628: 0x58C4, - 1629: 0x58C6, - 1630: 0x58C7, - 1631: 0x58C8, - 1632: 0x58C9, - 1633: 0x58CA, - 1634: 0x58CB, - 1635: 0x58CC, - 1636: 0x58CD, - 1637: 0x58CE, - 1638: 0x58CF, - 1639: 0x58D0, - 1640: 0x58D2, - 1641: 0x58D3, - 1642: 0x58D4, - 1643: 0x58D6, - 1644: 0x58D7, - 1645: 0x58D8, - 1646: 0x58D9, - 1647: 0x58DA, - 1648: 0x58DB, - 1649: 0x58DC, - 1650: 0x58DD, - 1651: 0x58DE, - 1652: 0x58DF, - 1653: 0x58E0, - 1654: 0x58E1, - 1655: 0x58E2, - 1656: 0x58E3, - 1657: 0x58E5, - 1658: 0x58E6, - 1659: 0x58E7, - 1660: 0x58E8, - 1661: 0x58E9, - 1662: 0x58EA, - 1663: 0x58ED, - 1664: 0x58EF, - 1665: 0x58F1, - 1666: 0x58F2, - 1667: 0x58F4, - 1668: 0x58F5, - 1669: 0x58F7, - 1670: 0x58F8, - 1671: 0x58FA, - 1672: 0x58FB, - 1673: 0x58FC, - 1674: 0x58FD, - 1675: 0x58FE, - 1676: 0x58FF, - 1677: 0x5900, - 1678: 0x5901, - 1679: 0x5903, - 1680: 0x5905, - 1681: 0x5906, - 1682: 0x5908, - 1683: 0x5909, - 1684: 0x590A, - 1685: 0x590B, - 1686: 0x590C, - 1687: 0x590E, - 1688: 0x5910, - 1689: 0x5911, - 1690: 0x5912, - 1691: 0x5913, - 1692: 0x5917, - 1693: 0x5918, - 1694: 0x591B, - 1695: 0x591D, - 1696: 0x591E, - 1697: 0x5920, - 1698: 0x5921, - 1699: 0x5922, - 1700: 0x5923, - 1701: 0x5926, - 1702: 0x5928, - 1703: 0x592C, - 1704: 0x5930, - 1705: 0x5932, - 1706: 0x5933, - 1707: 0x5935, - 1708: 0x5936, - 1709: 0x593B, - 1710: 0x593D, - 1711: 0x593E, - 1712: 0x593F, - 1713: 0x5940, - 1714: 0x5943, - 1715: 0x5945, - 1716: 0x5946, - 1717: 0x594A, - 1718: 0x594C, - 1719: 0x594D, - 1720: 0x5950, - 1721: 0x5952, - 1722: 0x5953, - 1723: 0x5959, - 1724: 0x595B, - 1725: 0x595C, - 1726: 0x595D, - 1727: 0x595E, - 1728: 0x595F, - 1729: 0x5961, - 1730: 0x5963, - 1731: 0x5964, - 1732: 0x5966, - 1733: 0x5967, - 1734: 0x5968, - 1735: 0x5969, - 1736: 0x596A, - 1737: 0x596B, - 1738: 0x596C, - 1739: 0x596D, - 1740: 0x596E, - 1741: 0x596F, - 1742: 0x5970, - 1743: 0x5971, - 1744: 0x5972, - 1745: 0x5975, - 1746: 0x5977, - 1747: 0x597A, - 1748: 0x597B, - 1749: 0x597C, - 1750: 0x597E, - 1751: 0x597F, - 1752: 0x5980, - 1753: 0x5985, - 1754: 0x5989, - 1755: 0x598B, - 1756: 0x598C, - 1757: 0x598E, - 1758: 0x598F, - 1759: 0x5990, - 1760: 0x5991, - 1761: 0x5994, - 1762: 0x5995, - 1763: 0x5998, - 1764: 0x599A, - 1765: 0x599B, - 1766: 0x599C, - 1767: 0x599D, - 1768: 0x599F, - 1769: 0x59A0, - 1770: 0x59A1, - 1771: 0x59A2, - 1772: 0x59A6, - 1773: 0x59A7, - 1774: 0x59AC, - 1775: 0x59AD, - 1776: 0x59B0, - 1777: 0x59B1, - 1778: 0x59B3, - 1779: 0x59B4, - 1780: 0x59B5, - 1781: 0x59B6, - 1782: 0x59B7, - 1783: 0x59B8, - 1784: 0x59BA, - 1785: 0x59BC, - 1786: 0x59BD, - 1787: 0x59BF, - 1788: 0x59C0, - 1789: 0x59C1, - 1790: 0x59C2, - 1791: 0x59C3, - 1792: 0x59C4, - 1793: 0x59C5, - 1794: 0x59C7, - 1795: 0x59C8, - 1796: 0x59C9, - 1797: 0x59CC, - 1798: 0x59CD, - 1799: 0x59CE, - 1800: 0x59CF, - 1801: 0x59D5, - 1802: 0x59D6, - 1803: 0x59D9, - 1804: 0x59DB, - 1805: 0x59DE, - 1806: 0x59DF, - 1807: 0x59E0, - 1808: 0x59E1, - 1809: 0x59E2, - 1810: 0x59E4, - 1811: 0x59E6, - 1812: 0x59E7, - 1813: 0x59E9, - 1814: 0x59EA, - 1815: 0x59EB, - 1816: 0x59ED, - 1817: 0x59EE, - 1818: 0x59EF, - 1819: 0x59F0, - 1820: 0x59F1, - 1821: 0x59F2, - 1822: 0x59F3, - 1823: 0x59F4, - 1824: 0x59F5, - 1825: 0x59F6, - 1826: 0x59F7, - 1827: 0x59F8, - 1828: 0x59FA, - 1829: 0x59FC, - 1830: 0x59FD, - 1831: 0x59FE, - 1832: 0x5A00, - 1833: 0x5A02, - 1834: 0x5A0A, - 1835: 0x5A0B, - 1836: 0x5A0D, - 1837: 0x5A0E, - 1838: 0x5A0F, - 1839: 0x5A10, - 1840: 0x5A12, - 1841: 0x5A14, - 1842: 0x5A15, - 1843: 0x5A16, - 1844: 0x5A17, - 1845: 0x5A19, - 1846: 0x5A1A, - 1847: 0x5A1B, - 1848: 0x5A1D, - 1849: 0x5A1E, - 1850: 0x5A21, - 1851: 0x5A22, - 1852: 0x5A24, - 1853: 0x5A26, - 1854: 0x5A27, - 1855: 0x5A28, - 1856: 0x5A2A, - 1857: 0x5A2B, - 1858: 0x5A2C, - 1859: 0x5A2D, - 1860: 0x5A2E, - 1861: 0x5A2F, - 1862: 0x5A30, - 1863: 0x5A33, - 1864: 0x5A35, - 1865: 0x5A37, - 1866: 0x5A38, - 1867: 0x5A39, - 1868: 0x5A3A, - 1869: 0x5A3B, - 1870: 0x5A3D, - 1871: 0x5A3E, - 1872: 0x5A3F, - 1873: 0x5A41, - 1874: 0x5A42, - 1875: 0x5A43, - 1876: 0x5A44, - 1877: 0x5A45, - 1878: 0x5A47, - 1879: 0x5A48, - 1880: 0x5A4B, - 1881: 0x5A4C, - 1882: 0x5A4D, - 1883: 0x5A4E, - 1884: 0x5A4F, - 1885: 0x5A50, - 1886: 0x5A51, - 1887: 0x5A52, - 1888: 0x5A53, - 1889: 0x5A54, - 1890: 0x5A56, - 1891: 0x5A57, - 1892: 0x5A58, - 1893: 0x5A59, - 1894: 0x5A5B, - 1895: 0x5A5C, - 1896: 0x5A5D, - 1897: 0x5A5E, - 1898: 0x5A5F, - 1899: 0x5A60, - 1900: 0x5A61, - 1901: 0x5A63, - 1902: 0x5A64, - 1903: 0x5A65, - 1904: 0x5A66, - 1905: 0x5A68, - 1906: 0x5A69, - 1907: 0x5A6B, - 1908: 0x5A6C, - 1909: 0x5A6D, - 1910: 0x5A6E, - 1911: 0x5A6F, - 1912: 0x5A70, - 1913: 0x5A71, - 1914: 0x5A72, - 1915: 0x5A73, - 1916: 0x5A78, - 1917: 0x5A79, - 1918: 0x5A7B, - 1919: 0x5A7C, - 1920: 0x5A7D, - 1921: 0x5A7E, - 1922: 0x5A80, - 1923: 0x5A81, - 1924: 0x5A82, - 1925: 0x5A83, - 1926: 0x5A84, - 1927: 0x5A85, - 1928: 0x5A86, - 1929: 0x5A87, - 1930: 0x5A88, - 1931: 0x5A89, - 1932: 0x5A8A, - 1933: 0x5A8B, - 1934: 0x5A8C, - 1935: 0x5A8D, - 1936: 0x5A8E, - 1937: 0x5A8F, - 1938: 0x5A90, - 1939: 0x5A91, - 1940: 0x5A93, - 1941: 0x5A94, - 1942: 0x5A95, - 1943: 0x5A96, - 1944: 0x5A97, - 1945: 0x5A98, - 1946: 0x5A99, - 1947: 0x5A9C, - 1948: 0x5A9D, - 1949: 0x5A9E, - 1950: 0x5A9F, - 1951: 0x5AA0, - 1952: 0x5AA1, - 1953: 0x5AA2, - 1954: 0x5AA3, - 1955: 0x5AA4, - 1956: 0x5AA5, - 1957: 0x5AA6, - 1958: 0x5AA7, - 1959: 0x5AA8, - 1960: 0x5AA9, - 1961: 0x5AAB, - 1962: 0x5AAC, - 1963: 0x5AAD, - 1964: 0x5AAE, - 1965: 0x5AAF, - 1966: 0x5AB0, - 1967: 0x5AB1, - 1968: 0x5AB4, - 1969: 0x5AB6, - 1970: 0x5AB7, - 1971: 0x5AB9, - 1972: 0x5ABA, - 1973: 0x5ABB, - 1974: 0x5ABC, - 1975: 0x5ABD, - 1976: 0x5ABF, - 1977: 0x5AC0, - 1978: 0x5AC3, - 1979: 0x5AC4, - 1980: 0x5AC5, - 1981: 0x5AC6, - 1982: 0x5AC7, - 1983: 0x5AC8, - 1984: 0x5ACA, - 1985: 0x5ACB, - 1986: 0x5ACD, - 1987: 0x5ACE, - 1988: 0x5ACF, - 1989: 0x5AD0, - 1990: 0x5AD1, - 1991: 0x5AD3, - 1992: 0x5AD5, - 1993: 0x5AD7, - 1994: 0x5AD9, - 1995: 0x5ADA, - 1996: 0x5ADB, - 1997: 0x5ADD, - 1998: 0x5ADE, - 1999: 0x5ADF, - 2000: 0x5AE2, - 2001: 0x5AE4, - 2002: 0x5AE5, - 2003: 0x5AE7, - 2004: 0x5AE8, - 2005: 0x5AEA, - 2006: 0x5AEC, - 2007: 0x5AED, - 2008: 0x5AEE, - 2009: 0x5AEF, - 2010: 0x5AF0, - 2011: 0x5AF2, - 2012: 0x5AF3, - 2013: 0x5AF4, - 2014: 0x5AF5, - 2015: 0x5AF6, - 2016: 0x5AF7, - 2017: 0x5AF8, - 2018: 0x5AF9, - 2019: 0x5AFA, - 2020: 0x5AFB, - 2021: 0x5AFC, - 2022: 0x5AFD, - 2023: 0x5AFE, - 2024: 0x5AFF, - 2025: 0x5B00, - 2026: 0x5B01, - 2027: 0x5B02, - 2028: 0x5B03, - 2029: 0x5B04, - 2030: 0x5B05, - 2031: 0x5B06, - 2032: 0x5B07, - 2033: 0x5B08, - 2034: 0x5B0A, - 2035: 0x5B0B, - 2036: 0x5B0C, - 2037: 0x5B0D, - 2038: 0x5B0E, - 2039: 0x5B0F, - 2040: 0x5B10, - 2041: 0x5B11, - 2042: 0x5B12, - 2043: 0x5B13, - 2044: 0x5B14, - 2045: 0x5B15, - 2046: 0x5B18, - 2047: 0x5B19, - 2048: 0x5B1A, - 2049: 0x5B1B, - 2050: 0x5B1C, - 2051: 0x5B1D, - 2052: 0x5B1E, - 2053: 0x5B1F, - 2054: 0x5B20, - 2055: 0x5B21, - 2056: 0x5B22, - 2057: 0x5B23, - 2058: 0x5B24, - 2059: 0x5B25, - 2060: 0x5B26, - 2061: 0x5B27, - 2062: 0x5B28, - 2063: 0x5B29, - 2064: 0x5B2A, - 2065: 0x5B2B, - 2066: 0x5B2C, - 2067: 0x5B2D, - 2068: 0x5B2E, - 2069: 0x5B2F, - 2070: 0x5B30, - 2071: 0x5B31, - 2072: 0x5B33, - 2073: 0x5B35, - 2074: 0x5B36, - 2075: 0x5B38, - 2076: 0x5B39, - 2077: 0x5B3A, - 2078: 0x5B3B, - 2079: 0x5B3C, - 2080: 0x5B3D, - 2081: 0x5B3E, - 2082: 0x5B3F, - 2083: 0x5B41, - 2084: 0x5B42, - 2085: 0x5B43, - 2086: 0x5B44, - 2087: 0x5B45, - 2088: 0x5B46, - 2089: 0x5B47, - 2090: 0x5B48, - 2091: 0x5B49, - 2092: 0x5B4A, - 2093: 0x5B4B, - 2094: 0x5B4C, - 2095: 0x5B4D, - 2096: 0x5B4E, - 2097: 0x5B4F, - 2098: 0x5B52, - 2099: 0x5B56, - 2100: 0x5B5E, - 2101: 0x5B60, - 2102: 0x5B61, - 2103: 0x5B67, - 2104: 0x5B68, - 2105: 0x5B6B, - 2106: 0x5B6D, - 2107: 0x5B6E, - 2108: 0x5B6F, - 2109: 0x5B72, - 2110: 0x5B74, - 2111: 0x5B76, - 2112: 0x5B77, - 2113: 0x5B78, - 2114: 0x5B79, - 2115: 0x5B7B, - 2116: 0x5B7C, - 2117: 0x5B7E, - 2118: 0x5B7F, - 2119: 0x5B82, - 2120: 0x5B86, - 2121: 0x5B8A, - 2122: 0x5B8D, - 2123: 0x5B8E, - 2124: 0x5B90, - 2125: 0x5B91, - 2126: 0x5B92, - 2127: 0x5B94, - 2128: 0x5B96, - 2129: 0x5B9F, - 2130: 0x5BA7, - 2131: 0x5BA8, - 2132: 0x5BA9, - 2133: 0x5BAC, - 2134: 0x5BAD, - 2135: 0x5BAE, - 2136: 0x5BAF, - 2137: 0x5BB1, - 2138: 0x5BB2, - 2139: 0x5BB7, - 2140: 0x5BBA, - 2141: 0x5BBB, - 2142: 0x5BBC, - 2143: 0x5BC0, - 2144: 0x5BC1, - 2145: 0x5BC3, - 2146: 0x5BC8, - 2147: 0x5BC9, - 2148: 0x5BCA, - 2149: 0x5BCB, - 2150: 0x5BCD, - 2151: 0x5BCE, - 2152: 0x5BCF, - 2153: 0x5BD1, - 2154: 0x5BD4, - 2155: 0x5BD5, - 2156: 0x5BD6, - 2157: 0x5BD7, - 2158: 0x5BD8, - 2159: 0x5BD9, - 2160: 0x5BDA, - 2161: 0x5BDB, - 2162: 0x5BDC, - 2163: 0x5BE0, - 2164: 0x5BE2, - 2165: 0x5BE3, - 2166: 0x5BE6, - 2167: 0x5BE7, - 2168: 0x5BE9, - 2169: 0x5BEA, - 2170: 0x5BEB, - 2171: 0x5BEC, - 2172: 0x5BED, - 2173: 0x5BEF, - 2174: 0x5BF1, - 2175: 0x5BF2, - 2176: 0x5BF3, - 2177: 0x5BF4, - 2178: 0x5BF5, - 2179: 0x5BF6, - 2180: 0x5BF7, - 2181: 0x5BFD, - 2182: 0x5BFE, - 2183: 0x5C00, - 2184: 0x5C02, - 2185: 0x5C03, - 2186: 0x5C05, - 2187: 0x5C07, - 2188: 0x5C08, - 2189: 0x5C0B, - 2190: 0x5C0C, - 2191: 0x5C0D, - 2192: 0x5C0E, - 2193: 0x5C10, - 2194: 0x5C12, - 2195: 0x5C13, - 2196: 0x5C17, - 2197: 0x5C19, - 2198: 0x5C1B, - 2199: 0x5C1E, - 2200: 0x5C1F, - 2201: 0x5C20, - 2202: 0x5C21, - 2203: 0x5C23, - 2204: 0x5C26, - 2205: 0x5C28, - 2206: 0x5C29, - 2207: 0x5C2A, - 2208: 0x5C2B, - 2209: 0x5C2D, - 2210: 0x5C2E, - 2211: 0x5C2F, - 2212: 0x5C30, - 2213: 0x5C32, - 2214: 0x5C33, - 2215: 0x5C35, - 2216: 0x5C36, - 2217: 0x5C37, - 2218: 0x5C43, - 2219: 0x5C44, - 2220: 0x5C46, - 2221: 0x5C47, - 2222: 0x5C4C, - 2223: 0x5C4D, - 2224: 0x5C52, - 2225: 0x5C53, - 2226: 0x5C54, - 2227: 0x5C56, - 2228: 0x5C57, - 2229: 0x5C58, - 2230: 0x5C5A, - 2231: 0x5C5B, - 2232: 0x5C5C, - 2233: 0x5C5D, - 2234: 0x5C5F, - 2235: 0x5C62, - 2236: 0x5C64, - 2237: 0x5C67, - 2238: 0x5C68, - 2239: 0x5C69, - 2240: 0x5C6A, - 2241: 0x5C6B, - 2242: 0x5C6C, - 2243: 0x5C6D, - 2244: 0x5C70, - 2245: 0x5C72, - 2246: 0x5C73, - 2247: 0x5C74, - 2248: 0x5C75, - 2249: 0x5C76, - 2250: 0x5C77, - 2251: 0x5C78, - 2252: 0x5C7B, - 2253: 0x5C7C, - 2254: 0x5C7D, - 2255: 0x5C7E, - 2256: 0x5C80, - 2257: 0x5C83, - 2258: 0x5C84, - 2259: 0x5C85, - 2260: 0x5C86, - 2261: 0x5C87, - 2262: 0x5C89, - 2263: 0x5C8A, - 2264: 0x5C8B, - 2265: 0x5C8E, - 2266: 0x5C8F, - 2267: 0x5C92, - 2268: 0x5C93, - 2269: 0x5C95, - 2270: 0x5C9D, - 2271: 0x5C9E, - 2272: 0x5C9F, - 2273: 0x5CA0, - 2274: 0x5CA1, - 2275: 0x5CA4, - 2276: 0x5CA5, - 2277: 0x5CA6, - 2278: 0x5CA7, - 2279: 0x5CA8, - 2280: 0x5CAA, - 2281: 0x5CAE, - 2282: 0x5CAF, - 2283: 0x5CB0, - 2284: 0x5CB2, - 2285: 0x5CB4, - 2286: 0x5CB6, - 2287: 0x5CB9, - 2288: 0x5CBA, - 2289: 0x5CBB, - 2290: 0x5CBC, - 2291: 0x5CBE, - 2292: 0x5CC0, - 2293: 0x5CC2, - 2294: 0x5CC3, - 2295: 0x5CC5, - 2296: 0x5CC6, - 2297: 0x5CC7, - 2298: 0x5CC8, - 2299: 0x5CC9, - 2300: 0x5CCA, - 2301: 0x5CCC, - 2302: 0x5CCD, - 2303: 0x5CCE, - 2304: 0x5CCF, - 2305: 0x5CD0, - 2306: 0x5CD1, - 2307: 0x5CD3, - 2308: 0x5CD4, - 2309: 0x5CD5, - 2310: 0x5CD6, - 2311: 0x5CD7, - 2312: 0x5CD8, - 2313: 0x5CDA, - 2314: 0x5CDB, - 2315: 0x5CDC, - 2316: 0x5CDD, - 2317: 0x5CDE, - 2318: 0x5CDF, - 2319: 0x5CE0, - 2320: 0x5CE2, - 2321: 0x5CE3, - 2322: 0x5CE7, - 2323: 0x5CE9, - 2324: 0x5CEB, - 2325: 0x5CEC, - 2326: 0x5CEE, - 2327: 0x5CEF, - 2328: 0x5CF1, - 2329: 0x5CF2, - 2330: 0x5CF3, - 2331: 0x5CF4, - 2332: 0x5CF5, - 2333: 0x5CF6, - 2334: 0x5CF7, - 2335: 0x5CF8, - 2336: 0x5CF9, - 2337: 0x5CFA, - 2338: 0x5CFC, - 2339: 0x5CFD, - 2340: 0x5CFE, - 2341: 0x5CFF, - 2342: 0x5D00, - 2343: 0x5D01, - 2344: 0x5D04, - 2345: 0x5D05, - 2346: 0x5D08, - 2347: 0x5D09, - 2348: 0x5D0A, - 2349: 0x5D0B, - 2350: 0x5D0C, - 2351: 0x5D0D, - 2352: 0x5D0F, - 2353: 0x5D10, - 2354: 0x5D11, - 2355: 0x5D12, - 2356: 0x5D13, - 2357: 0x5D15, - 2358: 0x5D17, - 2359: 0x5D18, - 2360: 0x5D19, - 2361: 0x5D1A, - 2362: 0x5D1C, - 2363: 0x5D1D, - 2364: 0x5D1F, - 2365: 0x5D20, - 2366: 0x5D21, - 2367: 0x5D22, - 2368: 0x5D23, - 2369: 0x5D25, - 2370: 0x5D28, - 2371: 0x5D2A, - 2372: 0x5D2B, - 2373: 0x5D2C, - 2374: 0x5D2F, - 2375: 0x5D30, - 2376: 0x5D31, - 2377: 0x5D32, - 2378: 0x5D33, - 2379: 0x5D35, - 2380: 0x5D36, - 2381: 0x5D37, - 2382: 0x5D38, - 2383: 0x5D39, - 2384: 0x5D3A, - 2385: 0x5D3B, - 2386: 0x5D3C, - 2387: 0x5D3F, - 2388: 0x5D40, - 2389: 0x5D41, - 2390: 0x5D42, - 2391: 0x5D43, - 2392: 0x5D44, - 2393: 0x5D45, - 2394: 0x5D46, - 2395: 0x5D48, - 2396: 0x5D49, - 2397: 0x5D4D, - 2398: 0x5D4E, - 2399: 0x5D4F, - 2400: 0x5D50, - 2401: 0x5D51, - 2402: 0x5D52, - 2403: 0x5D53, - 2404: 0x5D54, - 2405: 0x5D55, - 2406: 0x5D56, - 2407: 0x5D57, - 2408: 0x5D59, - 2409: 0x5D5A, - 2410: 0x5D5C, - 2411: 0x5D5E, - 2412: 0x5D5F, - 2413: 0x5D60, - 2414: 0x5D61, - 2415: 0x5D62, - 2416: 0x5D63, - 2417: 0x5D64, - 2418: 0x5D65, - 2419: 0x5D66, - 2420: 0x5D67, - 2421: 0x5D68, - 2422: 0x5D6A, - 2423: 0x5D6D, - 2424: 0x5D6E, - 2425: 0x5D70, - 2426: 0x5D71, - 2427: 0x5D72, - 2428: 0x5D73, - 2429: 0x5D75, - 2430: 0x5D76, - 2431: 0x5D77, - 2432: 0x5D78, - 2433: 0x5D79, - 2434: 0x5D7A, - 2435: 0x5D7B, - 2436: 0x5D7C, - 2437: 0x5D7D, - 2438: 0x5D7E, - 2439: 0x5D7F, - 2440: 0x5D80, - 2441: 0x5D81, - 2442: 0x5D83, - 2443: 0x5D84, - 2444: 0x5D85, - 2445: 0x5D86, - 2446: 0x5D87, - 2447: 0x5D88, - 2448: 0x5D89, - 2449: 0x5D8A, - 2450: 0x5D8B, - 2451: 0x5D8C, - 2452: 0x5D8D, - 2453: 0x5D8E, - 2454: 0x5D8F, - 2455: 0x5D90, - 2456: 0x5D91, - 2457: 0x5D92, - 2458: 0x5D93, - 2459: 0x5D94, - 2460: 0x5D95, - 2461: 0x5D96, - 2462: 0x5D97, - 2463: 0x5D98, - 2464: 0x5D9A, - 2465: 0x5D9B, - 2466: 0x5D9C, - 2467: 0x5D9E, - 2468: 0x5D9F, - 2469: 0x5DA0, - 2470: 0x5DA1, - 2471: 0x5DA2, - 2472: 0x5DA3, - 2473: 0x5DA4, - 2474: 0x5DA5, - 2475: 0x5DA6, - 2476: 0x5DA7, - 2477: 0x5DA8, - 2478: 0x5DA9, - 2479: 0x5DAA, - 2480: 0x5DAB, - 2481: 0x5DAC, - 2482: 0x5DAD, - 2483: 0x5DAE, - 2484: 0x5DAF, - 2485: 0x5DB0, - 2486: 0x5DB1, - 2487: 0x5DB2, - 2488: 0x5DB3, - 2489: 0x5DB4, - 2490: 0x5DB5, - 2491: 0x5DB6, - 2492: 0x5DB8, - 2493: 0x5DB9, - 2494: 0x5DBA, - 2495: 0x5DBB, - 2496: 0x5DBC, - 2497: 0x5DBD, - 2498: 0x5DBE, - 2499: 0x5DBF, - 2500: 0x5DC0, - 2501: 0x5DC1, - 2502: 0x5DC2, - 2503: 0x5DC3, - 2504: 0x5DC4, - 2505: 0x5DC6, - 2506: 0x5DC7, - 2507: 0x5DC8, - 2508: 0x5DC9, - 2509: 0x5DCA, - 2510: 0x5DCB, - 2511: 0x5DCC, - 2512: 0x5DCE, - 2513: 0x5DCF, - 2514: 0x5DD0, - 2515: 0x5DD1, - 2516: 0x5DD2, - 2517: 0x5DD3, - 2518: 0x5DD4, - 2519: 0x5DD5, - 2520: 0x5DD6, - 2521: 0x5DD7, - 2522: 0x5DD8, - 2523: 0x5DD9, - 2524: 0x5DDA, - 2525: 0x5DDC, - 2526: 0x5DDF, - 2527: 0x5DE0, - 2528: 0x5DE3, - 2529: 0x5DE4, - 2530: 0x5DEA, - 2531: 0x5DEC, - 2532: 0x5DED, - 2533: 0x5DF0, - 2534: 0x5DF5, - 2535: 0x5DF6, - 2536: 0x5DF8, - 2537: 0x5DF9, - 2538: 0x5DFA, - 2539: 0x5DFB, - 2540: 0x5DFC, - 2541: 0x5DFF, - 2542: 0x5E00, - 2543: 0x5E04, - 2544: 0x5E07, - 2545: 0x5E09, - 2546: 0x5E0A, - 2547: 0x5E0B, - 2548: 0x5E0D, - 2549: 0x5E0E, - 2550: 0x5E12, - 2551: 0x5E13, - 2552: 0x5E17, - 2553: 0x5E1E, - 2554: 0x5E1F, - 2555: 0x5E20, - 2556: 0x5E21, - 2557: 0x5E22, - 2558: 0x5E23, - 2559: 0x5E24, - 2560: 0x5E25, - 2561: 0x5E28, - 2562: 0x5E29, - 2563: 0x5E2A, - 2564: 0x5E2B, - 2565: 0x5E2C, - 2566: 0x5E2F, - 2567: 0x5E30, - 2568: 0x5E32, - 2569: 0x5E33, - 2570: 0x5E34, - 2571: 0x5E35, - 2572: 0x5E36, - 2573: 0x5E39, - 2574: 0x5E3A, - 2575: 0x5E3E, - 2576: 0x5E3F, - 2577: 0x5E40, - 2578: 0x5E41, - 2579: 0x5E43, - 2580: 0x5E46, - 2581: 0x5E47, - 2582: 0x5E48, - 2583: 0x5E49, - 2584: 0x5E4A, - 2585: 0x5E4B, - 2586: 0x5E4D, - 2587: 0x5E4E, - 2588: 0x5E4F, - 2589: 0x5E50, - 2590: 0x5E51, - 2591: 0x5E52, - 2592: 0x5E53, - 2593: 0x5E56, - 2594: 0x5E57, - 2595: 0x5E58, - 2596: 0x5E59, - 2597: 0x5E5A, - 2598: 0x5E5C, - 2599: 0x5E5D, - 2600: 0x5E5F, - 2601: 0x5E60, - 2602: 0x5E63, - 2603: 0x5E64, - 2604: 0x5E65, - 2605: 0x5E66, - 2606: 0x5E67, - 2607: 0x5E68, - 2608: 0x5E69, - 2609: 0x5E6A, - 2610: 0x5E6B, - 2611: 0x5E6C, - 2612: 0x5E6D, - 2613: 0x5E6E, - 2614: 0x5E6F, - 2615: 0x5E70, - 2616: 0x5E71, - 2617: 0x5E75, - 2618: 0x5E77, - 2619: 0x5E79, - 2620: 0x5E7E, - 2621: 0x5E81, - 2622: 0x5E82, - 2623: 0x5E83, - 2624: 0x5E85, - 2625: 0x5E88, - 2626: 0x5E89, - 2627: 0x5E8C, - 2628: 0x5E8D, - 2629: 0x5E8E, - 2630: 0x5E92, - 2631: 0x5E98, - 2632: 0x5E9B, - 2633: 0x5E9D, - 2634: 0x5EA1, - 2635: 0x5EA2, - 2636: 0x5EA3, - 2637: 0x5EA4, - 2638: 0x5EA8, - 2639: 0x5EA9, - 2640: 0x5EAA, - 2641: 0x5EAB, - 2642: 0x5EAC, - 2643: 0x5EAE, - 2644: 0x5EAF, - 2645: 0x5EB0, - 2646: 0x5EB1, - 2647: 0x5EB2, - 2648: 0x5EB4, - 2649: 0x5EBA, - 2650: 0x5EBB, - 2651: 0x5EBC, - 2652: 0x5EBD, - 2653: 0x5EBF, - 2654: 0x5EC0, - 2655: 0x5EC1, - 2656: 0x5EC2, - 2657: 0x5EC3, - 2658: 0x5EC4, - 2659: 0x5EC5, - 2660: 0x5EC6, - 2661: 0x5EC7, - 2662: 0x5EC8, - 2663: 0x5ECB, - 2664: 0x5ECC, - 2665: 0x5ECD, - 2666: 0x5ECE, - 2667: 0x5ECF, - 2668: 0x5ED0, - 2669: 0x5ED4, - 2670: 0x5ED5, - 2671: 0x5ED7, - 2672: 0x5ED8, - 2673: 0x5ED9, - 2674: 0x5EDA, - 2675: 0x5EDC, - 2676: 0x5EDD, - 2677: 0x5EDE, - 2678: 0x5EDF, - 2679: 0x5EE0, - 2680: 0x5EE1, - 2681: 0x5EE2, - 2682: 0x5EE3, - 2683: 0x5EE4, - 2684: 0x5EE5, - 2685: 0x5EE6, - 2686: 0x5EE7, - 2687: 0x5EE9, - 2688: 0x5EEB, - 2689: 0x5EEC, - 2690: 0x5EED, - 2691: 0x5EEE, - 2692: 0x5EEF, - 2693: 0x5EF0, - 2694: 0x5EF1, - 2695: 0x5EF2, - 2696: 0x5EF3, - 2697: 0x5EF5, - 2698: 0x5EF8, - 2699: 0x5EF9, - 2700: 0x5EFB, - 2701: 0x5EFC, - 2702: 0x5EFD, - 2703: 0x5F05, - 2704: 0x5F06, - 2705: 0x5F07, - 2706: 0x5F09, - 2707: 0x5F0C, - 2708: 0x5F0D, - 2709: 0x5F0E, - 2710: 0x5F10, - 2711: 0x5F12, - 2712: 0x5F14, - 2713: 0x5F16, - 2714: 0x5F19, - 2715: 0x5F1A, - 2716: 0x5F1C, - 2717: 0x5F1D, - 2718: 0x5F1E, - 2719: 0x5F21, - 2720: 0x5F22, - 2721: 0x5F23, - 2722: 0x5F24, - 2723: 0x5F28, - 2724: 0x5F2B, - 2725: 0x5F2C, - 2726: 0x5F2E, - 2727: 0x5F30, - 2728: 0x5F32, - 2729: 0x5F33, - 2730: 0x5F34, - 2731: 0x5F35, - 2732: 0x5F36, - 2733: 0x5F37, - 2734: 0x5F38, - 2735: 0x5F3B, - 2736: 0x5F3D, - 2737: 0x5F3E, - 2738: 0x5F3F, - 2739: 0x5F41, - 2740: 0x5F42, - 2741: 0x5F43, - 2742: 0x5F44, - 2743: 0x5F45, - 2744: 0x5F46, - 2745: 0x5F47, - 2746: 0x5F48, - 2747: 0x5F49, - 2748: 0x5F4A, - 2749: 0x5F4B, - 2750: 0x5F4C, - 2751: 0x5F4D, - 2752: 0x5F4E, - 2753: 0x5F4F, - 2754: 0x5F51, - 2755: 0x5F54, - 2756: 0x5F59, - 2757: 0x5F5A, - 2758: 0x5F5B, - 2759: 0x5F5C, - 2760: 0x5F5E, - 2761: 0x5F5F, - 2762: 0x5F60, - 2763: 0x5F63, - 2764: 0x5F65, - 2765: 0x5F67, - 2766: 0x5F68, - 2767: 0x5F6B, - 2768: 0x5F6E, - 2769: 0x5F6F, - 2770: 0x5F72, - 2771: 0x5F74, - 2772: 0x5F75, - 2773: 0x5F76, - 2774: 0x5F78, - 2775: 0x5F7A, - 2776: 0x5F7D, - 2777: 0x5F7E, - 2778: 0x5F7F, - 2779: 0x5F83, - 2780: 0x5F86, - 2781: 0x5F8D, - 2782: 0x5F8E, - 2783: 0x5F8F, - 2784: 0x5F91, - 2785: 0x5F93, - 2786: 0x5F94, - 2787: 0x5F96, - 2788: 0x5F9A, - 2789: 0x5F9B, - 2790: 0x5F9D, - 2791: 0x5F9E, - 2792: 0x5F9F, - 2793: 0x5FA0, - 2794: 0x5FA2, - 2795: 0x5FA3, - 2796: 0x5FA4, - 2797: 0x5FA5, - 2798: 0x5FA6, - 2799: 0x5FA7, - 2800: 0x5FA9, - 2801: 0x5FAB, - 2802: 0x5FAC, - 2803: 0x5FAF, - 2804: 0x5FB0, - 2805: 0x5FB1, - 2806: 0x5FB2, - 2807: 0x5FB3, - 2808: 0x5FB4, - 2809: 0x5FB6, - 2810: 0x5FB8, - 2811: 0x5FB9, - 2812: 0x5FBA, - 2813: 0x5FBB, - 2814: 0x5FBE, - 2815: 0x5FBF, - 2816: 0x5FC0, - 2817: 0x5FC1, - 2818: 0x5FC2, - 2819: 0x5FC7, - 2820: 0x5FC8, - 2821: 0x5FCA, - 2822: 0x5FCB, - 2823: 0x5FCE, - 2824: 0x5FD3, - 2825: 0x5FD4, - 2826: 0x5FD5, - 2827: 0x5FDA, - 2828: 0x5FDB, - 2829: 0x5FDC, - 2830: 0x5FDE, - 2831: 0x5FDF, - 2832: 0x5FE2, - 2833: 0x5FE3, - 2834: 0x5FE5, - 2835: 0x5FE6, - 2836: 0x5FE8, - 2837: 0x5FE9, - 2838: 0x5FEC, - 2839: 0x5FEF, - 2840: 0x5FF0, - 2841: 0x5FF2, - 2842: 0x5FF3, - 2843: 0x5FF4, - 2844: 0x5FF6, - 2845: 0x5FF7, - 2846: 0x5FF9, - 2847: 0x5FFA, - 2848: 0x5FFC, - 2849: 0x6007, - 2850: 0x6008, - 2851: 0x6009, - 2852: 0x600B, - 2853: 0x600C, - 2854: 0x6010, - 2855: 0x6011, - 2856: 0x6013, - 2857: 0x6017, - 2858: 0x6018, - 2859: 0x601A, - 2860: 0x601E, - 2861: 0x601F, - 2862: 0x6022, - 2863: 0x6023, - 2864: 0x6024, - 2865: 0x602C, - 2866: 0x602D, - 2867: 0x602E, - 2868: 0x6030, - 2869: 0x6031, - 2870: 0x6032, - 2871: 0x6033, - 2872: 0x6034, - 2873: 0x6036, - 2874: 0x6037, - 2875: 0x6038, - 2876: 0x6039, - 2877: 0x603A, - 2878: 0x603D, - 2879: 0x603E, - 2880: 0x6040, - 2881: 0x6044, - 2882: 0x6045, - 2883: 0x6046, - 2884: 0x6047, - 2885: 0x6048, - 2886: 0x6049, - 2887: 0x604A, - 2888: 0x604C, - 2889: 0x604E, - 2890: 0x604F, - 2891: 0x6051, - 2892: 0x6053, - 2893: 0x6054, - 2894: 0x6056, - 2895: 0x6057, - 2896: 0x6058, - 2897: 0x605B, - 2898: 0x605C, - 2899: 0x605E, - 2900: 0x605F, - 2901: 0x6060, - 2902: 0x6061, - 2903: 0x6065, - 2904: 0x6066, - 2905: 0x606E, - 2906: 0x6071, - 2907: 0x6072, - 2908: 0x6074, - 2909: 0x6075, - 2910: 0x6077, - 2911: 0x607E, - 2912: 0x6080, - 2913: 0x6081, - 2914: 0x6082, - 2915: 0x6085, - 2916: 0x6086, - 2917: 0x6087, - 2918: 0x6088, - 2919: 0x608A, - 2920: 0x608B, - 2921: 0x608E, - 2922: 0x608F, - 2923: 0x6090, - 2924: 0x6091, - 2925: 0x6093, - 2926: 0x6095, - 2927: 0x6097, - 2928: 0x6098, - 2929: 0x6099, - 2930: 0x609C, - 2931: 0x609E, - 2932: 0x60A1, - 2933: 0x60A2, - 2934: 0x60A4, - 2935: 0x60A5, - 2936: 0x60A7, - 2937: 0x60A9, - 2938: 0x60AA, - 2939: 0x60AE, - 2940: 0x60B0, - 2941: 0x60B3, - 2942: 0x60B5, - 2943: 0x60B6, - 2944: 0x60B7, - 2945: 0x60B9, - 2946: 0x60BA, - 2947: 0x60BD, - 2948: 0x60BE, - 2949: 0x60BF, - 2950: 0x60C0, - 2951: 0x60C1, - 2952: 0x60C2, - 2953: 0x60C3, - 2954: 0x60C4, - 2955: 0x60C7, - 2956: 0x60C8, - 2957: 0x60C9, - 2958: 0x60CC, - 2959: 0x60CD, - 2960: 0x60CE, - 2961: 0x60CF, - 2962: 0x60D0, - 2963: 0x60D2, - 2964: 0x60D3, - 2965: 0x60D4, - 2966: 0x60D6, - 2967: 0x60D7, - 2968: 0x60D9, - 2969: 0x60DB, - 2970: 0x60DE, - 2971: 0x60E1, - 2972: 0x60E2, - 2973: 0x60E3, - 2974: 0x60E4, - 2975: 0x60E5, - 2976: 0x60EA, - 2977: 0x60F1, - 2978: 0x60F2, - 2979: 0x60F5, - 2980: 0x60F7, - 2981: 0x60F8, - 2982: 0x60FB, - 2983: 0x60FC, - 2984: 0x60FD, - 2985: 0x60FE, - 2986: 0x60FF, - 2987: 0x6102, - 2988: 0x6103, - 2989: 0x6104, - 2990: 0x6105, - 2991: 0x6107, - 2992: 0x610A, - 2993: 0x610B, - 2994: 0x610C, - 2995: 0x6110, - 2996: 0x6111, - 2997: 0x6112, - 2998: 0x6113, - 2999: 0x6114, - 3000: 0x6116, - 3001: 0x6117, - 3002: 0x6118, - 3003: 0x6119, - 3004: 0x611B, - 3005: 0x611C, - 3006: 0x611D, - 3007: 0x611E, - 3008: 0x6121, - 3009: 0x6122, - 3010: 0x6125, - 3011: 0x6128, - 3012: 0x6129, - 3013: 0x612A, - 3014: 0x612C, - 3015: 0x612D, - 3016: 0x612E, - 3017: 0x612F, - 3018: 0x6130, - 3019: 0x6131, - 3020: 0x6132, - 3021: 0x6133, - 3022: 0x6134, - 3023: 0x6135, - 3024: 0x6136, - 3025: 0x6137, - 3026: 0x6138, - 3027: 0x6139, - 3028: 0x613A, - 3029: 0x613B, - 3030: 0x613C, - 3031: 0x613D, - 3032: 0x613E, - 3033: 0x6140, - 3034: 0x6141, - 3035: 0x6142, - 3036: 0x6143, - 3037: 0x6144, - 3038: 0x6145, - 3039: 0x6146, - 3040: 0x6147, - 3041: 0x6149, - 3042: 0x614B, - 3043: 0x614D, - 3044: 0x614F, - 3045: 0x6150, - 3046: 0x6152, - 3047: 0x6153, - 3048: 0x6154, - 3049: 0x6156, - 3050: 0x6157, - 3051: 0x6158, - 3052: 0x6159, - 3053: 0x615A, - 3054: 0x615B, - 3055: 0x615C, - 3056: 0x615E, - 3057: 0x615F, - 3058: 0x6160, - 3059: 0x6161, - 3060: 0x6163, - 3061: 0x6164, - 3062: 0x6165, - 3063: 0x6166, - 3064: 0x6169, - 3065: 0x616A, - 3066: 0x616B, - 3067: 0x616C, - 3068: 0x616D, - 3069: 0x616E, - 3070: 0x616F, - 3071: 0x6171, - 3072: 0x6172, - 3073: 0x6173, - 3074: 0x6174, - 3075: 0x6176, - 3076: 0x6178, - 3077: 0x6179, - 3078: 0x617A, - 3079: 0x617B, - 3080: 0x617C, - 3081: 0x617D, - 3082: 0x617E, - 3083: 0x617F, - 3084: 0x6180, - 3085: 0x6181, - 3086: 0x6182, - 3087: 0x6183, - 3088: 0x6184, - 3089: 0x6185, - 3090: 0x6186, - 3091: 0x6187, - 3092: 0x6188, - 3093: 0x6189, - 3094: 0x618A, - 3095: 0x618C, - 3096: 0x618D, - 3097: 0x618F, - 3098: 0x6190, - 3099: 0x6191, - 3100: 0x6192, - 3101: 0x6193, - 3102: 0x6195, - 3103: 0x6196, - 3104: 0x6197, - 3105: 0x6198, - 3106: 0x6199, - 3107: 0x619A, - 3108: 0x619B, - 3109: 0x619C, - 3110: 0x619E, - 3111: 0x619F, - 3112: 0x61A0, - 3113: 0x61A1, - 3114: 0x61A2, - 3115: 0x61A3, - 3116: 0x61A4, - 3117: 0x61A5, - 3118: 0x61A6, - 3119: 0x61AA, - 3120: 0x61AB, - 3121: 0x61AD, - 3122: 0x61AE, - 3123: 0x61AF, - 3124: 0x61B0, - 3125: 0x61B1, - 3126: 0x61B2, - 3127: 0x61B3, - 3128: 0x61B4, - 3129: 0x61B5, - 3130: 0x61B6, - 3131: 0x61B8, - 3132: 0x61B9, - 3133: 0x61BA, - 3134: 0x61BB, - 3135: 0x61BC, - 3136: 0x61BD, - 3137: 0x61BF, - 3138: 0x61C0, - 3139: 0x61C1, - 3140: 0x61C3, - 3141: 0x61C4, - 3142: 0x61C5, - 3143: 0x61C6, - 3144: 0x61C7, - 3145: 0x61C9, - 3146: 0x61CC, - 3147: 0x61CD, - 3148: 0x61CE, - 3149: 0x61CF, - 3150: 0x61D0, - 3151: 0x61D3, - 3152: 0x61D5, - 3153: 0x61D6, - 3154: 0x61D7, - 3155: 0x61D8, - 3156: 0x61D9, - 3157: 0x61DA, - 3158: 0x61DB, - 3159: 0x61DC, - 3160: 0x61DD, - 3161: 0x61DE, - 3162: 0x61DF, - 3163: 0x61E0, - 3164: 0x61E1, - 3165: 0x61E2, - 3166: 0x61E3, - 3167: 0x61E4, - 3168: 0x61E5, - 3169: 0x61E7, - 3170: 0x61E8, - 3171: 0x61E9, - 3172: 0x61EA, - 3173: 0x61EB, - 3174: 0x61EC, - 3175: 0x61ED, - 3176: 0x61EE, - 3177: 0x61EF, - 3178: 0x61F0, - 3179: 0x61F1, - 3180: 0x61F2, - 3181: 0x61F3, - 3182: 0x61F4, - 3183: 0x61F6, - 3184: 0x61F7, - 3185: 0x61F8, - 3186: 0x61F9, - 3187: 0x61FA, - 3188: 0x61FB, - 3189: 0x61FC, - 3190: 0x61FD, - 3191: 0x61FE, - 3192: 0x6200, - 3193: 0x6201, - 3194: 0x6202, - 3195: 0x6203, - 3196: 0x6204, - 3197: 0x6205, - 3198: 0x6207, - 3199: 0x6209, - 3200: 0x6213, - 3201: 0x6214, - 3202: 0x6219, - 3203: 0x621C, - 3204: 0x621D, - 3205: 0x621E, - 3206: 0x6220, - 3207: 0x6223, - 3208: 0x6226, - 3209: 0x6227, - 3210: 0x6228, - 3211: 0x6229, - 3212: 0x622B, - 3213: 0x622D, - 3214: 0x622F, - 3215: 0x6230, - 3216: 0x6231, - 3217: 0x6232, - 3218: 0x6235, - 3219: 0x6236, - 3220: 0x6238, - 3221: 0x6239, - 3222: 0x623A, - 3223: 0x623B, - 3224: 0x623C, - 3225: 0x6242, - 3226: 0x6244, - 3227: 0x6245, - 3228: 0x6246, - 3229: 0x624A, - 3230: 0x624F, - 3231: 0x6250, - 3232: 0x6255, - 3233: 0x6256, - 3234: 0x6257, - 3235: 0x6259, - 3236: 0x625A, - 3237: 0x625C, - 3238: 0x625D, - 3239: 0x625E, - 3240: 0x625F, - 3241: 0x6260, - 3242: 0x6261, - 3243: 0x6262, - 3244: 0x6264, - 3245: 0x6265, - 3246: 0x6268, - 3247: 0x6271, - 3248: 0x6272, - 3249: 0x6274, - 3250: 0x6275, - 3251: 0x6277, - 3252: 0x6278, - 3253: 0x627A, - 3254: 0x627B, - 3255: 0x627D, - 3256: 0x6281, - 3257: 0x6282, - 3258: 0x6283, - 3259: 0x6285, - 3260: 0x6286, - 3261: 0x6287, - 3262: 0x6288, - 3263: 0x628B, - 3264: 0x628C, - 3265: 0x628D, - 3266: 0x628E, - 3267: 0x628F, - 3268: 0x6290, - 3269: 0x6294, - 3270: 0x6299, - 3271: 0x629C, - 3272: 0x629D, - 3273: 0x629E, - 3274: 0x62A3, - 3275: 0x62A6, - 3276: 0x62A7, - 3277: 0x62A9, - 3278: 0x62AA, - 3279: 0x62AD, - 3280: 0x62AE, - 3281: 0x62AF, - 3282: 0x62B0, - 3283: 0x62B2, - 3284: 0x62B3, - 3285: 0x62B4, - 3286: 0x62B6, - 3287: 0x62B7, - 3288: 0x62B8, - 3289: 0x62BA, - 3290: 0x62BE, - 3291: 0x62C0, - 3292: 0x62C1, - 3293: 0x62C3, - 3294: 0x62CB, - 3295: 0x62CF, - 3296: 0x62D1, - 3297: 0x62D5, - 3298: 0x62DD, - 3299: 0x62DE, - 3300: 0x62E0, - 3301: 0x62E1, - 3302: 0x62E4, - 3303: 0x62EA, - 3304: 0x62EB, - 3305: 0x62F0, - 3306: 0x62F2, - 3307: 0x62F5, - 3308: 0x62F8, - 3309: 0x62F9, - 3310: 0x62FA, - 3311: 0x62FB, - 3312: 0x6300, - 3313: 0x6303, - 3314: 0x6304, - 3315: 0x6305, - 3316: 0x6306, - 3317: 0x630A, - 3318: 0x630B, - 3319: 0x630C, - 3320: 0x630D, - 3321: 0x630F, - 3322: 0x6310, - 3323: 0x6312, - 3324: 0x6313, - 3325: 0x6314, - 3326: 0x6315, - 3327: 0x6317, - 3328: 0x6318, - 3329: 0x6319, - 3330: 0x631C, - 3331: 0x6326, - 3332: 0x6327, - 3333: 0x6329, - 3334: 0x632C, - 3335: 0x632D, - 3336: 0x632E, - 3337: 0x6330, - 3338: 0x6331, - 3339: 0x6333, - 3340: 0x6334, - 3341: 0x6335, - 3342: 0x6336, - 3343: 0x6337, - 3344: 0x6338, - 3345: 0x633B, - 3346: 0x633C, - 3347: 0x633E, - 3348: 0x633F, - 3349: 0x6340, - 3350: 0x6341, - 3351: 0x6344, - 3352: 0x6347, - 3353: 0x6348, - 3354: 0x634A, - 3355: 0x6351, - 3356: 0x6352, - 3357: 0x6353, - 3358: 0x6354, - 3359: 0x6356, - 3360: 0x6357, - 3361: 0x6358, - 3362: 0x6359, - 3363: 0x635A, - 3364: 0x635B, - 3365: 0x635C, - 3366: 0x635D, - 3367: 0x6360, - 3368: 0x6364, - 3369: 0x6365, - 3370: 0x6366, - 3371: 0x6368, - 3372: 0x636A, - 3373: 0x636B, - 3374: 0x636C, - 3375: 0x636F, - 3376: 0x6370, - 3377: 0x6372, - 3378: 0x6373, - 3379: 0x6374, - 3380: 0x6375, - 3381: 0x6378, - 3382: 0x6379, - 3383: 0x637C, - 3384: 0x637D, - 3385: 0x637E, - 3386: 0x637F, - 3387: 0x6381, - 3388: 0x6383, - 3389: 0x6384, - 3390: 0x6385, - 3391: 0x6386, - 3392: 0x638B, - 3393: 0x638D, - 3394: 0x6391, - 3395: 0x6393, - 3396: 0x6394, - 3397: 0x6395, - 3398: 0x6397, - 3399: 0x6399, - 3400: 0x639A, - 3401: 0x639B, - 3402: 0x639C, - 3403: 0x639D, - 3404: 0x639E, - 3405: 0x639F, - 3406: 0x63A1, - 3407: 0x63A4, - 3408: 0x63A6, - 3409: 0x63AB, - 3410: 0x63AF, - 3411: 0x63B1, - 3412: 0x63B2, - 3413: 0x63B5, - 3414: 0x63B6, - 3415: 0x63B9, - 3416: 0x63BB, - 3417: 0x63BD, - 3418: 0x63BF, - 3419: 0x63C0, - 3420: 0x63C1, - 3421: 0x63C2, - 3422: 0x63C3, - 3423: 0x63C5, - 3424: 0x63C7, - 3425: 0x63C8, - 3426: 0x63CA, - 3427: 0x63CB, - 3428: 0x63CC, - 3429: 0x63D1, - 3430: 0x63D3, - 3431: 0x63D4, - 3432: 0x63D5, - 3433: 0x63D7, - 3434: 0x63D8, - 3435: 0x63D9, - 3436: 0x63DA, - 3437: 0x63DB, - 3438: 0x63DC, - 3439: 0x63DD, - 3440: 0x63DF, - 3441: 0x63E2, - 3442: 0x63E4, - 3443: 0x63E5, - 3444: 0x63E6, - 3445: 0x63E7, - 3446: 0x63E8, - 3447: 0x63EB, - 3448: 0x63EC, - 3449: 0x63EE, - 3450: 0x63EF, - 3451: 0x63F0, - 3452: 0x63F1, - 3453: 0x63F3, - 3454: 0x63F5, - 3455: 0x63F7, - 3456: 0x63F9, - 3457: 0x63FA, - 3458: 0x63FB, - 3459: 0x63FC, - 3460: 0x63FE, - 3461: 0x6403, - 3462: 0x6404, - 3463: 0x6406, - 3464: 0x6407, - 3465: 0x6408, - 3466: 0x6409, - 3467: 0x640A, - 3468: 0x640D, - 3469: 0x640E, - 3470: 0x6411, - 3471: 0x6412, - 3472: 0x6415, - 3473: 0x6416, - 3474: 0x6417, - 3475: 0x6418, - 3476: 0x6419, - 3477: 0x641A, - 3478: 0x641D, - 3479: 0x641F, - 3480: 0x6422, - 3481: 0x6423, - 3482: 0x6424, - 3483: 0x6425, - 3484: 0x6427, - 3485: 0x6428, - 3486: 0x6429, - 3487: 0x642B, - 3488: 0x642E, - 3489: 0x642F, - 3490: 0x6430, - 3491: 0x6431, - 3492: 0x6432, - 3493: 0x6433, - 3494: 0x6435, - 3495: 0x6436, - 3496: 0x6437, - 3497: 0x6438, - 3498: 0x6439, - 3499: 0x643B, - 3500: 0x643C, - 3501: 0x643E, - 3502: 0x6440, - 3503: 0x6442, - 3504: 0x6443, - 3505: 0x6449, - 3506: 0x644B, - 3507: 0x644C, - 3508: 0x644D, - 3509: 0x644E, - 3510: 0x644F, - 3511: 0x6450, - 3512: 0x6451, - 3513: 0x6453, - 3514: 0x6455, - 3515: 0x6456, - 3516: 0x6457, - 3517: 0x6459, - 3518: 0x645A, - 3519: 0x645B, - 3520: 0x645C, - 3521: 0x645D, - 3522: 0x645F, - 3523: 0x6460, - 3524: 0x6461, - 3525: 0x6462, - 3526: 0x6463, - 3527: 0x6464, - 3528: 0x6465, - 3529: 0x6466, - 3530: 0x6468, - 3531: 0x646A, - 3532: 0x646B, - 3533: 0x646C, - 3534: 0x646E, - 3535: 0x646F, - 3536: 0x6470, - 3537: 0x6471, - 3538: 0x6472, - 3539: 0x6473, - 3540: 0x6474, - 3541: 0x6475, - 3542: 0x6476, - 3543: 0x6477, - 3544: 0x647B, - 3545: 0x647C, - 3546: 0x647D, - 3547: 0x647E, - 3548: 0x647F, - 3549: 0x6480, - 3550: 0x6481, - 3551: 0x6483, - 3552: 0x6486, - 3553: 0x6488, - 3554: 0x6489, - 3555: 0x648A, - 3556: 0x648B, - 3557: 0x648C, - 3558: 0x648D, - 3559: 0x648E, - 3560: 0x648F, - 3561: 0x6490, - 3562: 0x6493, - 3563: 0x6494, - 3564: 0x6497, - 3565: 0x6498, - 3566: 0x649A, - 3567: 0x649B, - 3568: 0x649C, - 3569: 0x649D, - 3570: 0x649F, - 3571: 0x64A0, - 3572: 0x64A1, - 3573: 0x64A2, - 3574: 0x64A3, - 3575: 0x64A5, - 3576: 0x64A6, - 3577: 0x64A7, - 3578: 0x64A8, - 3579: 0x64AA, - 3580: 0x64AB, - 3581: 0x64AF, - 3582: 0x64B1, - 3583: 0x64B2, - 3584: 0x64B3, - 3585: 0x64B4, - 3586: 0x64B6, - 3587: 0x64B9, - 3588: 0x64BB, - 3589: 0x64BD, - 3590: 0x64BE, - 3591: 0x64BF, - 3592: 0x64C1, - 3593: 0x64C3, - 3594: 0x64C4, - 3595: 0x64C6, - 3596: 0x64C7, - 3597: 0x64C8, - 3598: 0x64C9, - 3599: 0x64CA, - 3600: 0x64CB, - 3601: 0x64CC, - 3602: 0x64CF, - 3603: 0x64D1, - 3604: 0x64D3, - 3605: 0x64D4, - 3606: 0x64D5, - 3607: 0x64D6, - 3608: 0x64D9, - 3609: 0x64DA, - 3610: 0x64DB, - 3611: 0x64DC, - 3612: 0x64DD, - 3613: 0x64DF, - 3614: 0x64E0, - 3615: 0x64E1, - 3616: 0x64E3, - 3617: 0x64E5, - 3618: 0x64E7, - 3619: 0x64E8, - 3620: 0x64E9, - 3621: 0x64EA, - 3622: 0x64EB, - 3623: 0x64EC, - 3624: 0x64ED, - 3625: 0x64EE, - 3626: 0x64EF, - 3627: 0x64F0, - 3628: 0x64F1, - 3629: 0x64F2, - 3630: 0x64F3, - 3631: 0x64F4, - 3632: 0x64F5, - 3633: 0x64F6, - 3634: 0x64F7, - 3635: 0x64F8, - 3636: 0x64F9, - 3637: 0x64FA, - 3638: 0x64FB, - 3639: 0x64FC, - 3640: 0x64FD, - 3641: 0x64FE, - 3642: 0x64FF, - 3643: 0x6501, - 3644: 0x6502, - 3645: 0x6503, - 3646: 0x6504, - 3647: 0x6505, - 3648: 0x6506, - 3649: 0x6507, - 3650: 0x6508, - 3651: 0x650A, - 3652: 0x650B, - 3653: 0x650C, - 3654: 0x650D, - 3655: 0x650E, - 3656: 0x650F, - 3657: 0x6510, - 3658: 0x6511, - 3659: 0x6513, - 3660: 0x6514, - 3661: 0x6515, - 3662: 0x6516, - 3663: 0x6517, - 3664: 0x6519, - 3665: 0x651A, - 3666: 0x651B, - 3667: 0x651C, - 3668: 0x651D, - 3669: 0x651E, - 3670: 0x651F, - 3671: 0x6520, - 3672: 0x6521, - 3673: 0x6522, - 3674: 0x6523, - 3675: 0x6524, - 3676: 0x6526, - 3677: 0x6527, - 3678: 0x6528, - 3679: 0x6529, - 3680: 0x652A, - 3681: 0x652C, - 3682: 0x652D, - 3683: 0x6530, - 3684: 0x6531, - 3685: 0x6532, - 3686: 0x6533, - 3687: 0x6537, - 3688: 0x653A, - 3689: 0x653C, - 3690: 0x653D, - 3691: 0x6540, - 3692: 0x6541, - 3693: 0x6542, - 3694: 0x6543, - 3695: 0x6544, - 3696: 0x6546, - 3697: 0x6547, - 3698: 0x654A, - 3699: 0x654B, - 3700: 0x654D, - 3701: 0x654E, - 3702: 0x6550, - 3703: 0x6552, - 3704: 0x6553, - 3705: 0x6554, - 3706: 0x6557, - 3707: 0x6558, - 3708: 0x655A, - 3709: 0x655C, - 3710: 0x655F, - 3711: 0x6560, - 3712: 0x6561, - 3713: 0x6564, - 3714: 0x6565, - 3715: 0x6567, - 3716: 0x6568, - 3717: 0x6569, - 3718: 0x656A, - 3719: 0x656D, - 3720: 0x656E, - 3721: 0x656F, - 3722: 0x6571, - 3723: 0x6573, - 3724: 0x6575, - 3725: 0x6576, - 3726: 0x6578, - 3727: 0x6579, - 3728: 0x657A, - 3729: 0x657B, - 3730: 0x657C, - 3731: 0x657D, - 3732: 0x657E, - 3733: 0x657F, - 3734: 0x6580, - 3735: 0x6581, - 3736: 0x6582, - 3737: 0x6583, - 3738: 0x6584, - 3739: 0x6585, - 3740: 0x6586, - 3741: 0x6588, - 3742: 0x6589, - 3743: 0x658A, - 3744: 0x658D, - 3745: 0x658E, - 3746: 0x658F, - 3747: 0x6592, - 3748: 0x6594, - 3749: 0x6595, - 3750: 0x6596, - 3751: 0x6598, - 3752: 0x659A, - 3753: 0x659D, - 3754: 0x659E, - 3755: 0x65A0, - 3756: 0x65A2, - 3757: 0x65A3, - 3758: 0x65A6, - 3759: 0x65A8, - 3760: 0x65AA, - 3761: 0x65AC, - 3762: 0x65AE, - 3763: 0x65B1, - 3764: 0x65B2, - 3765: 0x65B3, - 3766: 0x65B4, - 3767: 0x65B5, - 3768: 0x65B6, - 3769: 0x65B7, - 3770: 0x65B8, - 3771: 0x65BA, - 3772: 0x65BB, - 3773: 0x65BE, - 3774: 0x65BF, - 3775: 0x65C0, - 3776: 0x65C2, - 3777: 0x65C7, - 3778: 0x65C8, - 3779: 0x65C9, - 3780: 0x65CA, - 3781: 0x65CD, - 3782: 0x65D0, - 3783: 0x65D1, - 3784: 0x65D3, - 3785: 0x65D4, - 3786: 0x65D5, - 3787: 0x65D8, - 3788: 0x65D9, - 3789: 0x65DA, - 3790: 0x65DB, - 3791: 0x65DC, - 3792: 0x65DD, - 3793: 0x65DE, - 3794: 0x65DF, - 3795: 0x65E1, - 3796: 0x65E3, - 3797: 0x65E4, - 3798: 0x65EA, - 3799: 0x65EB, - 3800: 0x65F2, - 3801: 0x65F3, - 3802: 0x65F4, - 3803: 0x65F5, - 3804: 0x65F8, - 3805: 0x65F9, - 3806: 0x65FB, - 3807: 0x65FC, - 3808: 0x65FD, - 3809: 0x65FE, - 3810: 0x65FF, - 3811: 0x6601, - 3812: 0x6604, - 3813: 0x6605, - 3814: 0x6607, - 3815: 0x6608, - 3816: 0x6609, - 3817: 0x660B, - 3818: 0x660D, - 3819: 0x6610, - 3820: 0x6611, - 3821: 0x6612, - 3822: 0x6616, - 3823: 0x6617, - 3824: 0x6618, - 3825: 0x661A, - 3826: 0x661B, - 3827: 0x661C, - 3828: 0x661E, - 3829: 0x6621, - 3830: 0x6622, - 3831: 0x6623, - 3832: 0x6624, - 3833: 0x6626, - 3834: 0x6629, - 3835: 0x662A, - 3836: 0x662B, - 3837: 0x662C, - 3838: 0x662E, - 3839: 0x6630, - 3840: 0x6632, - 3841: 0x6633, - 3842: 0x6637, - 3843: 0x6638, - 3844: 0x6639, - 3845: 0x663A, - 3846: 0x663B, - 3847: 0x663D, - 3848: 0x663F, - 3849: 0x6640, - 3850: 0x6642, - 3851: 0x6644, - 3852: 0x6645, - 3853: 0x6646, - 3854: 0x6647, - 3855: 0x6648, - 3856: 0x6649, - 3857: 0x664A, - 3858: 0x664D, - 3859: 0x664E, - 3860: 0x6650, - 3861: 0x6651, - 3862: 0x6658, - 3863: 0x6659, - 3864: 0x665B, - 3865: 0x665C, - 3866: 0x665D, - 3867: 0x665E, - 3868: 0x6660, - 3869: 0x6662, - 3870: 0x6663, - 3871: 0x6665, - 3872: 0x6667, - 3873: 0x6669, - 3874: 0x666A, - 3875: 0x666B, - 3876: 0x666C, - 3877: 0x666D, - 3878: 0x6671, - 3879: 0x6672, - 3880: 0x6673, - 3881: 0x6675, - 3882: 0x6678, - 3883: 0x6679, - 3884: 0x667B, - 3885: 0x667C, - 3886: 0x667D, - 3887: 0x667F, - 3888: 0x6680, - 3889: 0x6681, - 3890: 0x6683, - 3891: 0x6685, - 3892: 0x6686, - 3893: 0x6688, - 3894: 0x6689, - 3895: 0x668A, - 3896: 0x668B, - 3897: 0x668D, - 3898: 0x668E, - 3899: 0x668F, - 3900: 0x6690, - 3901: 0x6692, - 3902: 0x6693, - 3903: 0x6694, - 3904: 0x6695, - 3905: 0x6698, - 3906: 0x6699, - 3907: 0x669A, - 3908: 0x669B, - 3909: 0x669C, - 3910: 0x669E, - 3911: 0x669F, - 3912: 0x66A0, - 3913: 0x66A1, - 3914: 0x66A2, - 3915: 0x66A3, - 3916: 0x66A4, - 3917: 0x66A5, - 3918: 0x66A6, - 3919: 0x66A9, - 3920: 0x66AA, - 3921: 0x66AB, - 3922: 0x66AC, - 3923: 0x66AD, - 3924: 0x66AF, - 3925: 0x66B0, - 3926: 0x66B1, - 3927: 0x66B2, - 3928: 0x66B3, - 3929: 0x66B5, - 3930: 0x66B6, - 3931: 0x66B7, - 3932: 0x66B8, - 3933: 0x66BA, - 3934: 0x66BB, - 3935: 0x66BC, - 3936: 0x66BD, - 3937: 0x66BF, - 3938: 0x66C0, - 3939: 0x66C1, - 3940: 0x66C2, - 3941: 0x66C3, - 3942: 0x66C4, - 3943: 0x66C5, - 3944: 0x66C6, - 3945: 0x66C7, - 3946: 0x66C8, - 3947: 0x66C9, - 3948: 0x66CA, - 3949: 0x66CB, - 3950: 0x66CC, - 3951: 0x66CD, - 3952: 0x66CE, - 3953: 0x66CF, - 3954: 0x66D0, - 3955: 0x66D1, - 3956: 0x66D2, - 3957: 0x66D3, - 3958: 0x66D4, - 3959: 0x66D5, - 3960: 0x66D6, - 3961: 0x66D7, - 3962: 0x66D8, - 3963: 0x66DA, - 3964: 0x66DE, - 3965: 0x66DF, - 3966: 0x66E0, - 3967: 0x66E1, - 3968: 0x66E2, - 3969: 0x66E3, - 3970: 0x66E4, - 3971: 0x66E5, - 3972: 0x66E7, - 3973: 0x66E8, - 3974: 0x66EA, - 3975: 0x66EB, - 3976: 0x66EC, - 3977: 0x66ED, - 3978: 0x66EE, - 3979: 0x66EF, - 3980: 0x66F1, - 3981: 0x66F5, - 3982: 0x66F6, - 3983: 0x66F8, - 3984: 0x66FA, - 3985: 0x66FB, - 3986: 0x66FD, - 3987: 0x6701, - 3988: 0x6702, - 3989: 0x6703, - 3990: 0x6704, - 3991: 0x6705, - 3992: 0x6706, - 3993: 0x6707, - 3994: 0x670C, - 3995: 0x670E, - 3996: 0x670F, - 3997: 0x6711, - 3998: 0x6712, - 3999: 0x6713, - 4000: 0x6716, - 4001: 0x6718, - 4002: 0x6719, - 4003: 0x671A, - 4004: 0x671C, - 4005: 0x671E, - 4006: 0x6720, - 4007: 0x6721, - 4008: 0x6722, - 4009: 0x6723, - 4010: 0x6724, - 4011: 0x6725, - 4012: 0x6727, - 4013: 0x6729, - 4014: 0x672E, - 4015: 0x6730, - 4016: 0x6732, - 4017: 0x6733, - 4018: 0x6736, - 4019: 0x6737, - 4020: 0x6738, - 4021: 0x6739, - 4022: 0x673B, - 4023: 0x673C, - 4024: 0x673E, - 4025: 0x673F, - 4026: 0x6741, - 4027: 0x6744, - 4028: 0x6745, - 4029: 0x6747, - 4030: 0x674A, - 4031: 0x674B, - 4032: 0x674D, - 4033: 0x6752, - 4034: 0x6754, - 4035: 0x6755, - 4036: 0x6757, - 4037: 0x6758, - 4038: 0x6759, - 4039: 0x675A, - 4040: 0x675B, - 4041: 0x675D, - 4042: 0x6762, - 4043: 0x6763, - 4044: 0x6764, - 4045: 0x6766, - 4046: 0x6767, - 4047: 0x676B, - 4048: 0x676C, - 4049: 0x676E, - 4050: 0x6771, - 4051: 0x6774, - 4052: 0x6776, - 4053: 0x6778, - 4054: 0x6779, - 4055: 0x677A, - 4056: 0x677B, - 4057: 0x677D, - 4058: 0x6780, - 4059: 0x6782, - 4060: 0x6783, - 4061: 0x6785, - 4062: 0x6786, - 4063: 0x6788, - 4064: 0x678A, - 4065: 0x678C, - 4066: 0x678D, - 4067: 0x678E, - 4068: 0x678F, - 4069: 0x6791, - 4070: 0x6792, - 4071: 0x6793, - 4072: 0x6794, - 4073: 0x6796, - 4074: 0x6799, - 4075: 0x679B, - 4076: 0x679F, - 4077: 0x67A0, - 4078: 0x67A1, - 4079: 0x67A4, - 4080: 0x67A6, - 4081: 0x67A9, - 4082: 0x67AC, - 4083: 0x67AE, - 4084: 0x67B1, - 4085: 0x67B2, - 4086: 0x67B4, - 4087: 0x67B9, - 4088: 0x67BA, - 4089: 0x67BB, - 4090: 0x67BC, - 4091: 0x67BD, - 4092: 0x67BE, - 4093: 0x67BF, - 4094: 0x67C0, - 4095: 0x67C2, - 4096: 0x67C5, - 4097: 0x67C6, - 4098: 0x67C7, - 4099: 0x67C8, - 4100: 0x67C9, - 4101: 0x67CA, - 4102: 0x67CB, - 4103: 0x67CC, - 4104: 0x67CD, - 4105: 0x67CE, - 4106: 0x67D5, - 4107: 0x67D6, - 4108: 0x67D7, - 4109: 0x67DB, - 4110: 0x67DF, - 4111: 0x67E1, - 4112: 0x67E3, - 4113: 0x67E4, - 4114: 0x67E6, - 4115: 0x67E7, - 4116: 0x67E8, - 4117: 0x67EA, - 4118: 0x67EB, - 4119: 0x67ED, - 4120: 0x67EE, - 4121: 0x67F2, - 4122: 0x67F5, - 4123: 0x67F6, - 4124: 0x67F7, - 4125: 0x67F8, - 4126: 0x67F9, - 4127: 0x67FA, - 4128: 0x67FB, - 4129: 0x67FC, - 4130: 0x67FE, - 4131: 0x6801, - 4132: 0x6802, - 4133: 0x6803, - 4134: 0x6804, - 4135: 0x6806, - 4136: 0x680D, - 4137: 0x6810, - 4138: 0x6812, - 4139: 0x6814, - 4140: 0x6815, - 4141: 0x6818, - 4142: 0x6819, - 4143: 0x681A, - 4144: 0x681B, - 4145: 0x681C, - 4146: 0x681E, - 4147: 0x681F, - 4148: 0x6820, - 4149: 0x6822, - 4150: 0x6823, - 4151: 0x6824, - 4152: 0x6825, - 4153: 0x6826, - 4154: 0x6827, - 4155: 0x6828, - 4156: 0x682B, - 4157: 0x682C, - 4158: 0x682D, - 4159: 0x682E, - 4160: 0x682F, - 4161: 0x6830, - 4162: 0x6831, - 4163: 0x6834, - 4164: 0x6835, - 4165: 0x6836, - 4166: 0x683A, - 4167: 0x683B, - 4168: 0x683F, - 4169: 0x6847, - 4170: 0x684B, - 4171: 0x684D, - 4172: 0x684F, - 4173: 0x6852, - 4174: 0x6856, - 4175: 0x6857, - 4176: 0x6858, - 4177: 0x6859, - 4178: 0x685A, - 4179: 0x685B, - 4180: 0x685C, - 4181: 0x685D, - 4182: 0x685E, - 4183: 0x685F, - 4184: 0x686A, - 4185: 0x686C, - 4186: 0x686D, - 4187: 0x686E, - 4188: 0x686F, - 4189: 0x6870, - 4190: 0x6871, - 4191: 0x6872, - 4192: 0x6873, - 4193: 0x6875, - 4194: 0x6878, - 4195: 0x6879, - 4196: 0x687A, - 4197: 0x687B, - 4198: 0x687C, - 4199: 0x687D, - 4200: 0x687E, - 4201: 0x687F, - 4202: 0x6880, - 4203: 0x6882, - 4204: 0x6884, - 4205: 0x6887, - 4206: 0x6888, - 4207: 0x6889, - 4208: 0x688A, - 4209: 0x688B, - 4210: 0x688C, - 4211: 0x688D, - 4212: 0x688E, - 4213: 0x6890, - 4214: 0x6891, - 4215: 0x6892, - 4216: 0x6894, - 4217: 0x6895, - 4218: 0x6896, - 4219: 0x6898, - 4220: 0x6899, - 4221: 0x689A, - 4222: 0x689B, - 4223: 0x689C, - 4224: 0x689D, - 4225: 0x689E, - 4226: 0x689F, - 4227: 0x68A0, - 4228: 0x68A1, - 4229: 0x68A3, - 4230: 0x68A4, - 4231: 0x68A5, - 4232: 0x68A9, - 4233: 0x68AA, - 4234: 0x68AB, - 4235: 0x68AC, - 4236: 0x68AE, - 4237: 0x68B1, - 4238: 0x68B2, - 4239: 0x68B4, - 4240: 0x68B6, - 4241: 0x68B7, - 4242: 0x68B8, - 4243: 0x68B9, - 4244: 0x68BA, - 4245: 0x68BB, - 4246: 0x68BC, - 4247: 0x68BD, - 4248: 0x68BE, - 4249: 0x68BF, - 4250: 0x68C1, - 4251: 0x68C3, - 4252: 0x68C4, - 4253: 0x68C5, - 4254: 0x68C6, - 4255: 0x68C7, - 4256: 0x68C8, - 4257: 0x68CA, - 4258: 0x68CC, - 4259: 0x68CE, - 4260: 0x68CF, - 4261: 0x68D0, - 4262: 0x68D1, - 4263: 0x68D3, - 4264: 0x68D4, - 4265: 0x68D6, - 4266: 0x68D7, - 4267: 0x68D9, - 4268: 0x68DB, - 4269: 0x68DC, - 4270: 0x68DD, - 4271: 0x68DE, - 4272: 0x68DF, - 4273: 0x68E1, - 4274: 0x68E2, - 4275: 0x68E4, - 4276: 0x68E5, - 4277: 0x68E6, - 4278: 0x68E7, - 4279: 0x68E8, - 4280: 0x68E9, - 4281: 0x68EA, - 4282: 0x68EB, - 4283: 0x68EC, - 4284: 0x68ED, - 4285: 0x68EF, - 4286: 0x68F2, - 4287: 0x68F3, - 4288: 0x68F4, - 4289: 0x68F6, - 4290: 0x68F7, - 4291: 0x68F8, - 4292: 0x68FB, - 4293: 0x68FD, - 4294: 0x68FE, - 4295: 0x68FF, - 4296: 0x6900, - 4297: 0x6902, - 4298: 0x6903, - 4299: 0x6904, - 4300: 0x6906, - 4301: 0x6907, - 4302: 0x6908, - 4303: 0x6909, - 4304: 0x690A, - 4305: 0x690C, - 4306: 0x690F, - 4307: 0x6911, - 4308: 0x6913, - 4309: 0x6914, - 4310: 0x6915, - 4311: 0x6916, - 4312: 0x6917, - 4313: 0x6918, - 4314: 0x6919, - 4315: 0x691A, - 4316: 0x691B, - 4317: 0x691C, - 4318: 0x691D, - 4319: 0x691E, - 4320: 0x6921, - 4321: 0x6922, - 4322: 0x6923, - 4323: 0x6925, - 4324: 0x6926, - 4325: 0x6927, - 4326: 0x6928, - 4327: 0x6929, - 4328: 0x692A, - 4329: 0x692B, - 4330: 0x692C, - 4331: 0x692E, - 4332: 0x692F, - 4333: 0x6931, - 4334: 0x6932, - 4335: 0x6933, - 4336: 0x6935, - 4337: 0x6936, - 4338: 0x6937, - 4339: 0x6938, - 4340: 0x693A, - 4341: 0x693B, - 4342: 0x693C, - 4343: 0x693E, - 4344: 0x6940, - 4345: 0x6941, - 4346: 0x6943, - 4347: 0x6944, - 4348: 0x6945, - 4349: 0x6946, - 4350: 0x6947, - 4351: 0x6948, - 4352: 0x6949, - 4353: 0x694A, - 4354: 0x694B, - 4355: 0x694C, - 4356: 0x694D, - 4357: 0x694E, - 4358: 0x694F, - 4359: 0x6950, - 4360: 0x6951, - 4361: 0x6952, - 4362: 0x6953, - 4363: 0x6955, - 4364: 0x6956, - 4365: 0x6958, - 4366: 0x6959, - 4367: 0x695B, - 4368: 0x695C, - 4369: 0x695F, - 4370: 0x6961, - 4371: 0x6962, - 4372: 0x6964, - 4373: 0x6965, - 4374: 0x6967, - 4375: 0x6968, - 4376: 0x6969, - 4377: 0x696A, - 4378: 0x696C, - 4379: 0x696D, - 4380: 0x696F, - 4381: 0x6970, - 4382: 0x6972, - 4383: 0x6973, - 4384: 0x6974, - 4385: 0x6975, - 4386: 0x6976, - 4387: 0x697A, - 4388: 0x697B, - 4389: 0x697D, - 4390: 0x697E, - 4391: 0x697F, - 4392: 0x6981, - 4393: 0x6983, - 4394: 0x6985, - 4395: 0x698A, - 4396: 0x698B, - 4397: 0x698C, - 4398: 0x698E, - 4399: 0x698F, - 4400: 0x6990, - 4401: 0x6991, - 4402: 0x6992, - 4403: 0x6993, - 4404: 0x6996, - 4405: 0x6997, - 4406: 0x6999, - 4407: 0x699A, - 4408: 0x699D, - 4409: 0x699E, - 4410: 0x699F, - 4411: 0x69A0, - 4412: 0x69A1, - 4413: 0x69A2, - 4414: 0x69A3, - 4415: 0x69A4, - 4416: 0x69A5, - 4417: 0x69A6, - 4418: 0x69A9, - 4419: 0x69AA, - 4420: 0x69AC, - 4421: 0x69AE, - 4422: 0x69AF, - 4423: 0x69B0, - 4424: 0x69B2, - 4425: 0x69B3, - 4426: 0x69B5, - 4427: 0x69B6, - 4428: 0x69B8, - 4429: 0x69B9, - 4430: 0x69BA, - 4431: 0x69BC, - 4432: 0x69BD, - 4433: 0x69BE, - 4434: 0x69BF, - 4435: 0x69C0, - 4436: 0x69C2, - 4437: 0x69C3, - 4438: 0x69C4, - 4439: 0x69C5, - 4440: 0x69C6, - 4441: 0x69C7, - 4442: 0x69C8, - 4443: 0x69C9, - 4444: 0x69CB, - 4445: 0x69CD, - 4446: 0x69CF, - 4447: 0x69D1, - 4448: 0x69D2, - 4449: 0x69D3, - 4450: 0x69D5, - 4451: 0x69D6, - 4452: 0x69D7, - 4453: 0x69D8, - 4454: 0x69D9, - 4455: 0x69DA, - 4456: 0x69DC, - 4457: 0x69DD, - 4458: 0x69DE, - 4459: 0x69E1, - 4460: 0x69E2, - 4461: 0x69E3, - 4462: 0x69E4, - 4463: 0x69E5, - 4464: 0x69E6, - 4465: 0x69E7, - 4466: 0x69E8, - 4467: 0x69E9, - 4468: 0x69EA, - 4469: 0x69EB, - 4470: 0x69EC, - 4471: 0x69EE, - 4472: 0x69EF, - 4473: 0x69F0, - 4474: 0x69F1, - 4475: 0x69F3, - 4476: 0x69F4, - 4477: 0x69F5, - 4478: 0x69F6, - 4479: 0x69F7, - 4480: 0x69F8, - 4481: 0x69F9, - 4482: 0x69FA, - 4483: 0x69FB, - 4484: 0x69FC, - 4485: 0x69FE, - 4486: 0x6A00, - 4487: 0x6A01, - 4488: 0x6A02, - 4489: 0x6A03, - 4490: 0x6A04, - 4491: 0x6A05, - 4492: 0x6A06, - 4493: 0x6A07, - 4494: 0x6A08, - 4495: 0x6A09, - 4496: 0x6A0B, - 4497: 0x6A0C, - 4498: 0x6A0D, - 4499: 0x6A0E, - 4500: 0x6A0F, - 4501: 0x6A10, - 4502: 0x6A11, - 4503: 0x6A12, - 4504: 0x6A13, - 4505: 0x6A14, - 4506: 0x6A15, - 4507: 0x6A16, - 4508: 0x6A19, - 4509: 0x6A1A, - 4510: 0x6A1B, - 4511: 0x6A1C, - 4512: 0x6A1D, - 4513: 0x6A1E, - 4514: 0x6A20, - 4515: 0x6A22, - 4516: 0x6A23, - 4517: 0x6A24, - 4518: 0x6A25, - 4519: 0x6A26, - 4520: 0x6A27, - 4521: 0x6A29, - 4522: 0x6A2B, - 4523: 0x6A2C, - 4524: 0x6A2D, - 4525: 0x6A2E, - 4526: 0x6A30, - 4527: 0x6A32, - 4528: 0x6A33, - 4529: 0x6A34, - 4530: 0x6A36, - 4531: 0x6A37, - 4532: 0x6A38, - 4533: 0x6A39, - 4534: 0x6A3A, - 4535: 0x6A3B, - 4536: 0x6A3C, - 4537: 0x6A3F, - 4538: 0x6A40, - 4539: 0x6A41, - 4540: 0x6A42, - 4541: 0x6A43, - 4542: 0x6A45, - 4543: 0x6A46, - 4544: 0x6A48, - 4545: 0x6A49, - 4546: 0x6A4A, - 4547: 0x6A4B, - 4548: 0x6A4C, - 4549: 0x6A4D, - 4550: 0x6A4E, - 4551: 0x6A4F, - 4552: 0x6A51, - 4553: 0x6A52, - 4554: 0x6A53, - 4555: 0x6A54, - 4556: 0x6A55, - 4557: 0x6A56, - 4558: 0x6A57, - 4559: 0x6A5A, - 4560: 0x6A5C, - 4561: 0x6A5D, - 4562: 0x6A5E, - 4563: 0x6A5F, - 4564: 0x6A60, - 4565: 0x6A62, - 4566: 0x6A63, - 4567: 0x6A64, - 4568: 0x6A66, - 4569: 0x6A67, - 4570: 0x6A68, - 4571: 0x6A69, - 4572: 0x6A6A, - 4573: 0x6A6B, - 4574: 0x6A6C, - 4575: 0x6A6D, - 4576: 0x6A6E, - 4577: 0x6A6F, - 4578: 0x6A70, - 4579: 0x6A72, - 4580: 0x6A73, - 4581: 0x6A74, - 4582: 0x6A75, - 4583: 0x6A76, - 4584: 0x6A77, - 4585: 0x6A78, - 4586: 0x6A7A, - 4587: 0x6A7B, - 4588: 0x6A7D, - 4589: 0x6A7E, - 4590: 0x6A7F, - 4591: 0x6A81, - 4592: 0x6A82, - 4593: 0x6A83, - 4594: 0x6A85, - 4595: 0x6A86, - 4596: 0x6A87, - 4597: 0x6A88, - 4598: 0x6A89, - 4599: 0x6A8A, - 4600: 0x6A8B, - 4601: 0x6A8C, - 4602: 0x6A8D, - 4603: 0x6A8F, - 4604: 0x6A92, - 4605: 0x6A93, - 4606: 0x6A94, - 4607: 0x6A95, - 4608: 0x6A96, - 4609: 0x6A98, - 4610: 0x6A99, - 4611: 0x6A9A, - 4612: 0x6A9B, - 4613: 0x6A9C, - 4614: 0x6A9D, - 4615: 0x6A9E, - 4616: 0x6A9F, - 4617: 0x6AA1, - 4618: 0x6AA2, - 4619: 0x6AA3, - 4620: 0x6AA4, - 4621: 0x6AA5, - 4622: 0x6AA6, - 4623: 0x6AA7, - 4624: 0x6AA8, - 4625: 0x6AAA, - 4626: 0x6AAD, - 4627: 0x6AAE, - 4628: 0x6AAF, - 4629: 0x6AB0, - 4630: 0x6AB1, - 4631: 0x6AB2, - 4632: 0x6AB3, - 4633: 0x6AB4, - 4634: 0x6AB5, - 4635: 0x6AB6, - 4636: 0x6AB7, - 4637: 0x6AB8, - 4638: 0x6AB9, - 4639: 0x6ABA, - 4640: 0x6ABB, - 4641: 0x6ABC, - 4642: 0x6ABD, - 4643: 0x6ABE, - 4644: 0x6ABF, - 4645: 0x6AC0, - 4646: 0x6AC1, - 4647: 0x6AC2, - 4648: 0x6AC3, - 4649: 0x6AC4, - 4650: 0x6AC5, - 4651: 0x6AC6, - 4652: 0x6AC7, - 4653: 0x6AC8, - 4654: 0x6AC9, - 4655: 0x6ACA, - 4656: 0x6ACB, - 4657: 0x6ACC, - 4658: 0x6ACD, - 4659: 0x6ACE, - 4660: 0x6ACF, - 4661: 0x6AD0, - 4662: 0x6AD1, - 4663: 0x6AD2, - 4664: 0x6AD3, - 4665: 0x6AD4, - 4666: 0x6AD5, - 4667: 0x6AD6, - 4668: 0x6AD7, - 4669: 0x6AD8, - 4670: 0x6AD9, - 4671: 0x6ADA, - 4672: 0x6ADB, - 4673: 0x6ADC, - 4674: 0x6ADD, - 4675: 0x6ADE, - 4676: 0x6ADF, - 4677: 0x6AE0, - 4678: 0x6AE1, - 4679: 0x6AE2, - 4680: 0x6AE3, - 4681: 0x6AE4, - 4682: 0x6AE5, - 4683: 0x6AE6, - 4684: 0x6AE7, - 4685: 0x6AE8, - 4686: 0x6AE9, - 4687: 0x6AEA, - 4688: 0x6AEB, - 4689: 0x6AEC, - 4690: 0x6AED, - 4691: 0x6AEE, - 4692: 0x6AEF, - 4693: 0x6AF0, - 4694: 0x6AF1, - 4695: 0x6AF2, - 4696: 0x6AF3, - 4697: 0x6AF4, - 4698: 0x6AF5, - 4699: 0x6AF6, - 4700: 0x6AF7, - 4701: 0x6AF8, - 4702: 0x6AF9, - 4703: 0x6AFA, - 4704: 0x6AFB, - 4705: 0x6AFC, - 4706: 0x6AFD, - 4707: 0x6AFE, - 4708: 0x6AFF, - 4709: 0x6B00, - 4710: 0x6B01, - 4711: 0x6B02, - 4712: 0x6B03, - 4713: 0x6B04, - 4714: 0x6B05, - 4715: 0x6B06, - 4716: 0x6B07, - 4717: 0x6B08, - 4718: 0x6B09, - 4719: 0x6B0A, - 4720: 0x6B0B, - 4721: 0x6B0C, - 4722: 0x6B0D, - 4723: 0x6B0E, - 4724: 0x6B0F, - 4725: 0x6B10, - 4726: 0x6B11, - 4727: 0x6B12, - 4728: 0x6B13, - 4729: 0x6B14, - 4730: 0x6B15, - 4731: 0x6B16, - 4732: 0x6B17, - 4733: 0x6B18, - 4734: 0x6B19, - 4735: 0x6B1A, - 4736: 0x6B1B, - 4737: 0x6B1C, - 4738: 0x6B1D, - 4739: 0x6B1E, - 4740: 0x6B1F, - 4741: 0x6B25, - 4742: 0x6B26, - 4743: 0x6B28, - 4744: 0x6B29, - 4745: 0x6B2A, - 4746: 0x6B2B, - 4747: 0x6B2C, - 4748: 0x6B2D, - 4749: 0x6B2E, - 4750: 0x6B2F, - 4751: 0x6B30, - 4752: 0x6B31, - 4753: 0x6B33, - 4754: 0x6B34, - 4755: 0x6B35, - 4756: 0x6B36, - 4757: 0x6B38, - 4758: 0x6B3B, - 4759: 0x6B3C, - 4760: 0x6B3D, - 4761: 0x6B3F, - 4762: 0x6B40, - 4763: 0x6B41, - 4764: 0x6B42, - 4765: 0x6B44, - 4766: 0x6B45, - 4767: 0x6B48, - 4768: 0x6B4A, - 4769: 0x6B4B, - 4770: 0x6B4D, - 4771: 0x6B4E, - 4772: 0x6B4F, - 4773: 0x6B50, - 4774: 0x6B51, - 4775: 0x6B52, - 4776: 0x6B53, - 4777: 0x6B54, - 4778: 0x6B55, - 4779: 0x6B56, - 4780: 0x6B57, - 4781: 0x6B58, - 4782: 0x6B5A, - 4783: 0x6B5B, - 4784: 0x6B5C, - 4785: 0x6B5D, - 4786: 0x6B5E, - 4787: 0x6B5F, - 4788: 0x6B60, - 4789: 0x6B61, - 4790: 0x6B68, - 4791: 0x6B69, - 4792: 0x6B6B, - 4793: 0x6B6C, - 4794: 0x6B6D, - 4795: 0x6B6E, - 4796: 0x6B6F, - 4797: 0x6B70, - 4798: 0x6B71, - 4799: 0x6B72, - 4800: 0x6B73, - 4801: 0x6B74, - 4802: 0x6B75, - 4803: 0x6B76, - 4804: 0x6B77, - 4805: 0x6B78, - 4806: 0x6B7A, - 4807: 0x6B7D, - 4808: 0x6B7E, - 4809: 0x6B7F, - 4810: 0x6B80, - 4811: 0x6B85, - 4812: 0x6B88, - 4813: 0x6B8C, - 4814: 0x6B8E, - 4815: 0x6B8F, - 4816: 0x6B90, - 4817: 0x6B91, - 4818: 0x6B94, - 4819: 0x6B95, - 4820: 0x6B97, - 4821: 0x6B98, - 4822: 0x6B99, - 4823: 0x6B9C, - 4824: 0x6B9D, - 4825: 0x6B9E, - 4826: 0x6B9F, - 4827: 0x6BA0, - 4828: 0x6BA2, - 4829: 0x6BA3, - 4830: 0x6BA4, - 4831: 0x6BA5, - 4832: 0x6BA6, - 4833: 0x6BA7, - 4834: 0x6BA8, - 4835: 0x6BA9, - 4836: 0x6BAB, - 4837: 0x6BAC, - 4838: 0x6BAD, - 4839: 0x6BAE, - 4840: 0x6BAF, - 4841: 0x6BB0, - 4842: 0x6BB1, - 4843: 0x6BB2, - 4844: 0x6BB6, - 4845: 0x6BB8, - 4846: 0x6BB9, - 4847: 0x6BBA, - 4848: 0x6BBB, - 4849: 0x6BBC, - 4850: 0x6BBD, - 4851: 0x6BBE, - 4852: 0x6BC0, - 4853: 0x6BC3, - 4854: 0x6BC4, - 4855: 0x6BC6, - 4856: 0x6BC7, - 4857: 0x6BC8, - 4858: 0x6BC9, - 4859: 0x6BCA, - 4860: 0x6BCC, - 4861: 0x6BCE, - 4862: 0x6BD0, - 4863: 0x6BD1, - 4864: 0x6BD8, - 4865: 0x6BDA, - 4866: 0x6BDC, - 4867: 0x6BDD, - 4868: 0x6BDE, - 4869: 0x6BDF, - 4870: 0x6BE0, - 4871: 0x6BE2, - 4872: 0x6BE3, - 4873: 0x6BE4, - 4874: 0x6BE5, - 4875: 0x6BE6, - 4876: 0x6BE7, - 4877: 0x6BE8, - 4878: 0x6BE9, - 4879: 0x6BEC, - 4880: 0x6BED, - 4881: 0x6BEE, - 4882: 0x6BF0, - 4883: 0x6BF1, - 4884: 0x6BF2, - 4885: 0x6BF4, - 4886: 0x6BF6, - 4887: 0x6BF7, - 4888: 0x6BF8, - 4889: 0x6BFA, - 4890: 0x6BFB, - 4891: 0x6BFC, - 4892: 0x6BFE, - 4893: 0x6BFF, - 4894: 0x6C00, - 4895: 0x6C01, - 4896: 0x6C02, - 4897: 0x6C03, - 4898: 0x6C04, - 4899: 0x6C08, - 4900: 0x6C09, - 4901: 0x6C0A, - 4902: 0x6C0B, - 4903: 0x6C0C, - 4904: 0x6C0E, - 4905: 0x6C12, - 4906: 0x6C17, - 4907: 0x6C1C, - 4908: 0x6C1D, - 4909: 0x6C1E, - 4910: 0x6C20, - 4911: 0x6C23, - 4912: 0x6C25, - 4913: 0x6C2B, - 4914: 0x6C2C, - 4915: 0x6C2D, - 4916: 0x6C31, - 4917: 0x6C33, - 4918: 0x6C36, - 4919: 0x6C37, - 4920: 0x6C39, - 4921: 0x6C3A, - 4922: 0x6C3B, - 4923: 0x6C3C, - 4924: 0x6C3E, - 4925: 0x6C3F, - 4926: 0x6C43, - 4927: 0x6C44, - 4928: 0x6C45, - 4929: 0x6C48, - 4930: 0x6C4B, - 4931: 0x6C4C, - 4932: 0x6C4D, - 4933: 0x6C4E, - 4934: 0x6C4F, - 4935: 0x6C51, - 4936: 0x6C52, - 4937: 0x6C53, - 4938: 0x6C56, - 4939: 0x6C58, - 4940: 0x6C59, - 4941: 0x6C5A, - 4942: 0x6C62, - 4943: 0x6C63, - 4944: 0x6C65, - 4945: 0x6C66, - 4946: 0x6C67, - 4947: 0x6C6B, - 4948: 0x6C6C, - 4949: 0x6C6D, - 4950: 0x6C6E, - 4951: 0x6C6F, - 4952: 0x6C71, - 4953: 0x6C73, - 4954: 0x6C75, - 4955: 0x6C77, - 4956: 0x6C78, - 4957: 0x6C7A, - 4958: 0x6C7B, - 4959: 0x6C7C, - 4960: 0x6C7F, - 4961: 0x6C80, - 4962: 0x6C84, - 4963: 0x6C87, - 4964: 0x6C8A, - 4965: 0x6C8B, - 4966: 0x6C8D, - 4967: 0x6C8E, - 4968: 0x6C91, - 4969: 0x6C92, - 4970: 0x6C95, - 4971: 0x6C96, - 4972: 0x6C97, - 4973: 0x6C98, - 4974: 0x6C9A, - 4975: 0x6C9C, - 4976: 0x6C9D, - 4977: 0x6C9E, - 4978: 0x6CA0, - 4979: 0x6CA2, - 4980: 0x6CA8, - 4981: 0x6CAC, - 4982: 0x6CAF, - 4983: 0x6CB0, - 4984: 0x6CB4, - 4985: 0x6CB5, - 4986: 0x6CB6, - 4987: 0x6CB7, - 4988: 0x6CBA, - 4989: 0x6CC0, - 4990: 0x6CC1, - 4991: 0x6CC2, - 4992: 0x6CC3, - 4993: 0x6CC6, - 4994: 0x6CC7, - 4995: 0x6CC8, - 4996: 0x6CCB, - 4997: 0x6CCD, - 4998: 0x6CCE, - 4999: 0x6CCF, - 5000: 0x6CD1, - 5001: 0x6CD2, - 5002: 0x6CD8, - 5003: 0x6CD9, - 5004: 0x6CDA, - 5005: 0x6CDC, - 5006: 0x6CDD, - 5007: 0x6CDF, - 5008: 0x6CE4, - 5009: 0x6CE6, - 5010: 0x6CE7, - 5011: 0x6CE9, - 5012: 0x6CEC, - 5013: 0x6CED, - 5014: 0x6CF2, - 5015: 0x6CF4, - 5016: 0x6CF9, - 5017: 0x6CFF, - 5018: 0x6D00, - 5019: 0x6D02, - 5020: 0x6D03, - 5021: 0x6D05, - 5022: 0x6D06, - 5023: 0x6D08, - 5024: 0x6D09, - 5025: 0x6D0A, - 5026: 0x6D0D, - 5027: 0x6D0F, - 5028: 0x6D10, - 5029: 0x6D11, - 5030: 0x6D13, - 5031: 0x6D14, - 5032: 0x6D15, - 5033: 0x6D16, - 5034: 0x6D18, - 5035: 0x6D1C, - 5036: 0x6D1D, - 5037: 0x6D1F, - 5038: 0x6D20, - 5039: 0x6D21, - 5040: 0x6D22, - 5041: 0x6D23, - 5042: 0x6D24, - 5043: 0x6D26, - 5044: 0x6D28, - 5045: 0x6D29, - 5046: 0x6D2C, - 5047: 0x6D2D, - 5048: 0x6D2F, - 5049: 0x6D30, - 5050: 0x6D34, - 5051: 0x6D36, - 5052: 0x6D37, - 5053: 0x6D38, - 5054: 0x6D3A, - 5055: 0x6D3F, - 5056: 0x6D40, - 5057: 0x6D42, - 5058: 0x6D44, - 5059: 0x6D49, - 5060: 0x6D4C, - 5061: 0x6D50, - 5062: 0x6D55, - 5063: 0x6D56, - 5064: 0x6D57, - 5065: 0x6D58, - 5066: 0x6D5B, - 5067: 0x6D5D, - 5068: 0x6D5F, - 5069: 0x6D61, - 5070: 0x6D62, - 5071: 0x6D64, - 5072: 0x6D65, - 5073: 0x6D67, - 5074: 0x6D68, - 5075: 0x6D6B, - 5076: 0x6D6C, - 5077: 0x6D6D, - 5078: 0x6D70, - 5079: 0x6D71, - 5080: 0x6D72, - 5081: 0x6D73, - 5082: 0x6D75, - 5083: 0x6D76, - 5084: 0x6D79, - 5085: 0x6D7A, - 5086: 0x6D7B, - 5087: 0x6D7D, - 5088: 0x6D7E, - 5089: 0x6D7F, - 5090: 0x6D80, - 5091: 0x6D81, - 5092: 0x6D83, - 5093: 0x6D84, - 5094: 0x6D86, - 5095: 0x6D87, - 5096: 0x6D8A, - 5097: 0x6D8B, - 5098: 0x6D8D, - 5099: 0x6D8F, - 5100: 0x6D90, - 5101: 0x6D92, - 5102: 0x6D96, - 5103: 0x6D97, - 5104: 0x6D98, - 5105: 0x6D99, - 5106: 0x6D9A, - 5107: 0x6D9C, - 5108: 0x6DA2, - 5109: 0x6DA5, - 5110: 0x6DAC, - 5111: 0x6DAD, - 5112: 0x6DB0, - 5113: 0x6DB1, - 5114: 0x6DB3, - 5115: 0x6DB4, - 5116: 0x6DB6, - 5117: 0x6DB7, - 5118: 0x6DB9, - 5119: 0x6DBA, - 5120: 0x6DBB, - 5121: 0x6DBC, - 5122: 0x6DBD, - 5123: 0x6DBE, - 5124: 0x6DC1, - 5125: 0x6DC2, - 5126: 0x6DC3, - 5127: 0x6DC8, - 5128: 0x6DC9, - 5129: 0x6DCA, - 5130: 0x6DCD, - 5131: 0x6DCE, - 5132: 0x6DCF, - 5133: 0x6DD0, - 5134: 0x6DD2, - 5135: 0x6DD3, - 5136: 0x6DD4, - 5137: 0x6DD5, - 5138: 0x6DD7, - 5139: 0x6DDA, - 5140: 0x6DDB, - 5141: 0x6DDC, - 5142: 0x6DDF, - 5143: 0x6DE2, - 5144: 0x6DE3, - 5145: 0x6DE5, - 5146: 0x6DE7, - 5147: 0x6DE8, - 5148: 0x6DE9, - 5149: 0x6DEA, - 5150: 0x6DED, - 5151: 0x6DEF, - 5152: 0x6DF0, - 5153: 0x6DF2, - 5154: 0x6DF4, - 5155: 0x6DF5, - 5156: 0x6DF6, - 5157: 0x6DF8, - 5158: 0x6DFA, - 5159: 0x6DFD, - 5160: 0x6DFE, - 5161: 0x6DFF, - 5162: 0x6E00, - 5163: 0x6E01, - 5164: 0x6E02, - 5165: 0x6E03, - 5166: 0x6E04, - 5167: 0x6E06, - 5168: 0x6E07, - 5169: 0x6E08, - 5170: 0x6E09, - 5171: 0x6E0B, - 5172: 0x6E0F, - 5173: 0x6E12, - 5174: 0x6E13, - 5175: 0x6E15, - 5176: 0x6E18, - 5177: 0x6E19, - 5178: 0x6E1B, - 5179: 0x6E1C, - 5180: 0x6E1E, - 5181: 0x6E1F, - 5182: 0x6E22, - 5183: 0x6E26, - 5184: 0x6E27, - 5185: 0x6E28, - 5186: 0x6E2A, - 5187: 0x6E2C, - 5188: 0x6E2E, - 5189: 0x6E30, - 5190: 0x6E31, - 5191: 0x6E33, - 5192: 0x6E35, - 5193: 0x6E36, - 5194: 0x6E37, - 5195: 0x6E39, - 5196: 0x6E3B, - 5197: 0x6E3C, - 5198: 0x6E3D, - 5199: 0x6E3E, - 5200: 0x6E3F, - 5201: 0x6E40, - 5202: 0x6E41, - 5203: 0x6E42, - 5204: 0x6E45, - 5205: 0x6E46, - 5206: 0x6E47, - 5207: 0x6E48, - 5208: 0x6E49, - 5209: 0x6E4A, - 5210: 0x6E4B, - 5211: 0x6E4C, - 5212: 0x6E4F, - 5213: 0x6E50, - 5214: 0x6E51, - 5215: 0x6E52, - 5216: 0x6E55, - 5217: 0x6E57, - 5218: 0x6E59, - 5219: 0x6E5A, - 5220: 0x6E5C, - 5221: 0x6E5D, - 5222: 0x6E5E, - 5223: 0x6E60, - 5224: 0x6E61, - 5225: 0x6E62, - 5226: 0x6E63, - 5227: 0x6E64, - 5228: 0x6E65, - 5229: 0x6E66, - 5230: 0x6E67, - 5231: 0x6E68, - 5232: 0x6E69, - 5233: 0x6E6A, - 5234: 0x6E6C, - 5235: 0x6E6D, - 5236: 0x6E6F, - 5237: 0x6E70, - 5238: 0x6E71, - 5239: 0x6E72, - 5240: 0x6E73, - 5241: 0x6E74, - 5242: 0x6E75, - 5243: 0x6E76, - 5244: 0x6E77, - 5245: 0x6E78, - 5246: 0x6E79, - 5247: 0x6E7A, - 5248: 0x6E7B, - 5249: 0x6E7C, - 5250: 0x6E7D, - 5251: 0x6E80, - 5252: 0x6E81, - 5253: 0x6E82, - 5254: 0x6E84, - 5255: 0x6E87, - 5256: 0x6E88, - 5257: 0x6E8A, - 5258: 0x6E8B, - 5259: 0x6E8C, - 5260: 0x6E8D, - 5261: 0x6E8E, - 5262: 0x6E91, - 5263: 0x6E92, - 5264: 0x6E93, - 5265: 0x6E94, - 5266: 0x6E95, - 5267: 0x6E96, - 5268: 0x6E97, - 5269: 0x6E99, - 5270: 0x6E9A, - 5271: 0x6E9B, - 5272: 0x6E9D, - 5273: 0x6E9E, - 5274: 0x6EA0, - 5275: 0x6EA1, - 5276: 0x6EA3, - 5277: 0x6EA4, - 5278: 0x6EA6, - 5279: 0x6EA8, - 5280: 0x6EA9, - 5281: 0x6EAB, - 5282: 0x6EAC, - 5283: 0x6EAD, - 5284: 0x6EAE, - 5285: 0x6EB0, - 5286: 0x6EB3, - 5287: 0x6EB5, - 5288: 0x6EB8, - 5289: 0x6EB9, - 5290: 0x6EBC, - 5291: 0x6EBE, - 5292: 0x6EBF, - 5293: 0x6EC0, - 5294: 0x6EC3, - 5295: 0x6EC4, - 5296: 0x6EC5, - 5297: 0x6EC6, - 5298: 0x6EC8, - 5299: 0x6EC9, - 5300: 0x6ECA, - 5301: 0x6ECC, - 5302: 0x6ECD, - 5303: 0x6ECE, - 5304: 0x6ED0, - 5305: 0x6ED2, - 5306: 0x6ED6, - 5307: 0x6ED8, - 5308: 0x6ED9, - 5309: 0x6EDB, - 5310: 0x6EDC, - 5311: 0x6EDD, - 5312: 0x6EE3, - 5313: 0x6EE7, - 5314: 0x6EEA, - 5315: 0x6EEB, - 5316: 0x6EEC, - 5317: 0x6EED, - 5318: 0x6EEE, - 5319: 0x6EEF, - 5320: 0x6EF0, - 5321: 0x6EF1, - 5322: 0x6EF2, - 5323: 0x6EF3, - 5324: 0x6EF5, - 5325: 0x6EF6, - 5326: 0x6EF7, - 5327: 0x6EF8, - 5328: 0x6EFA, - 5329: 0x6EFB, - 5330: 0x6EFC, - 5331: 0x6EFD, - 5332: 0x6EFE, - 5333: 0x6EFF, - 5334: 0x6F00, - 5335: 0x6F01, - 5336: 0x6F03, - 5337: 0x6F04, - 5338: 0x6F05, - 5339: 0x6F07, - 5340: 0x6F08, - 5341: 0x6F0A, - 5342: 0x6F0B, - 5343: 0x6F0C, - 5344: 0x6F0D, - 5345: 0x6F0E, - 5346: 0x6F10, - 5347: 0x6F11, - 5348: 0x6F12, - 5349: 0x6F16, - 5350: 0x6F17, - 5351: 0x6F18, - 5352: 0x6F19, - 5353: 0x6F1A, - 5354: 0x6F1B, - 5355: 0x6F1C, - 5356: 0x6F1D, - 5357: 0x6F1E, - 5358: 0x6F1F, - 5359: 0x6F21, - 5360: 0x6F22, - 5361: 0x6F23, - 5362: 0x6F25, - 5363: 0x6F26, - 5364: 0x6F27, - 5365: 0x6F28, - 5366: 0x6F2C, - 5367: 0x6F2E, - 5368: 0x6F30, - 5369: 0x6F32, - 5370: 0x6F34, - 5371: 0x6F35, - 5372: 0x6F37, - 5373: 0x6F38, - 5374: 0x6F39, - 5375: 0x6F3A, - 5376: 0x6F3B, - 5377: 0x6F3C, - 5378: 0x6F3D, - 5379: 0x6F3F, - 5380: 0x6F40, - 5381: 0x6F41, - 5382: 0x6F42, - 5383: 0x6F43, - 5384: 0x6F44, - 5385: 0x6F45, - 5386: 0x6F48, - 5387: 0x6F49, - 5388: 0x6F4A, - 5389: 0x6F4C, - 5390: 0x6F4E, - 5391: 0x6F4F, - 5392: 0x6F50, - 5393: 0x6F51, - 5394: 0x6F52, - 5395: 0x6F53, - 5396: 0x6F54, - 5397: 0x6F55, - 5398: 0x6F56, - 5399: 0x6F57, - 5400: 0x6F59, - 5401: 0x6F5A, - 5402: 0x6F5B, - 5403: 0x6F5D, - 5404: 0x6F5F, - 5405: 0x6F60, - 5406: 0x6F61, - 5407: 0x6F63, - 5408: 0x6F64, - 5409: 0x6F65, - 5410: 0x6F67, - 5411: 0x6F68, - 5412: 0x6F69, - 5413: 0x6F6A, - 5414: 0x6F6B, - 5415: 0x6F6C, - 5416: 0x6F6F, - 5417: 0x6F70, - 5418: 0x6F71, - 5419: 0x6F73, - 5420: 0x6F75, - 5421: 0x6F76, - 5422: 0x6F77, - 5423: 0x6F79, - 5424: 0x6F7B, - 5425: 0x6F7D, - 5426: 0x6F7E, - 5427: 0x6F7F, - 5428: 0x6F80, - 5429: 0x6F81, - 5430: 0x6F82, - 5431: 0x6F83, - 5432: 0x6F85, - 5433: 0x6F86, - 5434: 0x6F87, - 5435: 0x6F8A, - 5436: 0x6F8B, - 5437: 0x6F8F, - 5438: 0x6F90, - 5439: 0x6F91, - 5440: 0x6F92, - 5441: 0x6F93, - 5442: 0x6F94, - 5443: 0x6F95, - 5444: 0x6F96, - 5445: 0x6F97, - 5446: 0x6F98, - 5447: 0x6F99, - 5448: 0x6F9A, - 5449: 0x6F9B, - 5450: 0x6F9D, - 5451: 0x6F9E, - 5452: 0x6F9F, - 5453: 0x6FA0, - 5454: 0x6FA2, - 5455: 0x6FA3, - 5456: 0x6FA4, - 5457: 0x6FA5, - 5458: 0x6FA6, - 5459: 0x6FA8, - 5460: 0x6FA9, - 5461: 0x6FAA, - 5462: 0x6FAB, - 5463: 0x6FAC, - 5464: 0x6FAD, - 5465: 0x6FAE, - 5466: 0x6FAF, - 5467: 0x6FB0, - 5468: 0x6FB1, - 5469: 0x6FB2, - 5470: 0x6FB4, - 5471: 0x6FB5, - 5472: 0x6FB7, - 5473: 0x6FB8, - 5474: 0x6FBA, - 5475: 0x6FBB, - 5476: 0x6FBC, - 5477: 0x6FBD, - 5478: 0x6FBE, - 5479: 0x6FBF, - 5480: 0x6FC1, - 5481: 0x6FC3, - 5482: 0x6FC4, - 5483: 0x6FC5, - 5484: 0x6FC6, - 5485: 0x6FC7, - 5486: 0x6FC8, - 5487: 0x6FCA, - 5488: 0x6FCB, - 5489: 0x6FCC, - 5490: 0x6FCD, - 5491: 0x6FCE, - 5492: 0x6FCF, - 5493: 0x6FD0, - 5494: 0x6FD3, - 5495: 0x6FD4, - 5496: 0x6FD5, - 5497: 0x6FD6, - 5498: 0x6FD7, - 5499: 0x6FD8, - 5500: 0x6FD9, - 5501: 0x6FDA, - 5502: 0x6FDB, - 5503: 0x6FDC, - 5504: 0x6FDD, - 5505: 0x6FDF, - 5506: 0x6FE2, - 5507: 0x6FE3, - 5508: 0x6FE4, - 5509: 0x6FE5, - 5510: 0x6FE6, - 5511: 0x6FE7, - 5512: 0x6FE8, - 5513: 0x6FE9, - 5514: 0x6FEA, - 5515: 0x6FEB, - 5516: 0x6FEC, - 5517: 0x6FED, - 5518: 0x6FF0, - 5519: 0x6FF1, - 5520: 0x6FF2, - 5521: 0x6FF3, - 5522: 0x6FF4, - 5523: 0x6FF5, - 5524: 0x6FF6, - 5525: 0x6FF7, - 5526: 0x6FF8, - 5527: 0x6FF9, - 5528: 0x6FFA, - 5529: 0x6FFB, - 5530: 0x6FFC, - 5531: 0x6FFD, - 5532: 0x6FFE, - 5533: 0x6FFF, - 5534: 0x7000, - 5535: 0x7001, - 5536: 0x7002, - 5537: 0x7003, - 5538: 0x7004, - 5539: 0x7005, - 5540: 0x7006, - 5541: 0x7007, - 5542: 0x7008, - 5543: 0x7009, - 5544: 0x700A, - 5545: 0x700B, - 5546: 0x700C, - 5547: 0x700D, - 5548: 0x700E, - 5549: 0x700F, - 5550: 0x7010, - 5551: 0x7012, - 5552: 0x7013, - 5553: 0x7014, - 5554: 0x7015, - 5555: 0x7016, - 5556: 0x7017, - 5557: 0x7018, - 5558: 0x7019, - 5559: 0x701C, - 5560: 0x701D, - 5561: 0x701E, - 5562: 0x701F, - 5563: 0x7020, - 5564: 0x7021, - 5565: 0x7022, - 5566: 0x7024, - 5567: 0x7025, - 5568: 0x7026, - 5569: 0x7027, - 5570: 0x7028, - 5571: 0x7029, - 5572: 0x702A, - 5573: 0x702B, - 5574: 0x702C, - 5575: 0x702D, - 5576: 0x702E, - 5577: 0x702F, - 5578: 0x7030, - 5579: 0x7031, - 5580: 0x7032, - 5581: 0x7033, - 5582: 0x7034, - 5583: 0x7036, - 5584: 0x7037, - 5585: 0x7038, - 5586: 0x703A, - 5587: 0x703B, - 5588: 0x703C, - 5589: 0x703D, - 5590: 0x703E, - 5591: 0x703F, - 5592: 0x7040, - 5593: 0x7041, - 5594: 0x7042, - 5595: 0x7043, - 5596: 0x7044, - 5597: 0x7045, - 5598: 0x7046, - 5599: 0x7047, - 5600: 0x7048, - 5601: 0x7049, - 5602: 0x704A, - 5603: 0x704B, - 5604: 0x704D, - 5605: 0x704E, - 5606: 0x7050, - 5607: 0x7051, - 5608: 0x7052, - 5609: 0x7053, - 5610: 0x7054, - 5611: 0x7055, - 5612: 0x7056, - 5613: 0x7057, - 5614: 0x7058, - 5615: 0x7059, - 5616: 0x705A, - 5617: 0x705B, - 5618: 0x705C, - 5619: 0x705D, - 5620: 0x705F, - 5621: 0x7060, - 5622: 0x7061, - 5623: 0x7062, - 5624: 0x7063, - 5625: 0x7064, - 5626: 0x7065, - 5627: 0x7066, - 5628: 0x7067, - 5629: 0x7068, - 5630: 0x7069, - 5631: 0x706A, - 5632: 0x706E, - 5633: 0x7071, - 5634: 0x7072, - 5635: 0x7073, - 5636: 0x7074, - 5637: 0x7077, - 5638: 0x7079, - 5639: 0x707A, - 5640: 0x707B, - 5641: 0x707D, - 5642: 0x7081, - 5643: 0x7082, - 5644: 0x7083, - 5645: 0x7084, - 5646: 0x7086, - 5647: 0x7087, - 5648: 0x7088, - 5649: 0x708B, - 5650: 0x708C, - 5651: 0x708D, - 5652: 0x708F, - 5653: 0x7090, - 5654: 0x7091, - 5655: 0x7093, - 5656: 0x7097, - 5657: 0x7098, - 5658: 0x709A, - 5659: 0x709B, - 5660: 0x709E, - 5661: 0x709F, - 5662: 0x70A0, - 5663: 0x70A1, - 5664: 0x70A2, - 5665: 0x70A3, - 5666: 0x70A4, - 5667: 0x70A5, - 5668: 0x70A6, - 5669: 0x70A7, - 5670: 0x70A8, - 5671: 0x70A9, - 5672: 0x70AA, - 5673: 0x70B0, - 5674: 0x70B2, - 5675: 0x70B4, - 5676: 0x70B5, - 5677: 0x70B6, - 5678: 0x70BA, - 5679: 0x70BE, - 5680: 0x70BF, - 5681: 0x70C4, - 5682: 0x70C5, - 5683: 0x70C6, - 5684: 0x70C7, - 5685: 0x70C9, - 5686: 0x70CB, - 5687: 0x70CC, - 5688: 0x70CD, - 5689: 0x70CE, - 5690: 0x70CF, - 5691: 0x70D0, - 5692: 0x70D1, - 5693: 0x70D2, - 5694: 0x70D3, - 5695: 0x70D4, - 5696: 0x70D5, - 5697: 0x70D6, - 5698: 0x70D7, - 5699: 0x70DA, - 5700: 0x70DC, - 5701: 0x70DD, - 5702: 0x70DE, - 5703: 0x70E0, - 5704: 0x70E1, - 5705: 0x70E2, - 5706: 0x70E3, - 5707: 0x70E5, - 5708: 0x70EA, - 5709: 0x70EE, - 5710: 0x70F0, - 5711: 0x70F1, - 5712: 0x70F2, - 5713: 0x70F3, - 5714: 0x70F4, - 5715: 0x70F5, - 5716: 0x70F6, - 5717: 0x70F8, - 5718: 0x70FA, - 5719: 0x70FB, - 5720: 0x70FC, - 5721: 0x70FE, - 5722: 0x70FF, - 5723: 0x7100, - 5724: 0x7101, - 5725: 0x7102, - 5726: 0x7103, - 5727: 0x7104, - 5728: 0x7105, - 5729: 0x7106, - 5730: 0x7107, - 5731: 0x7108, - 5732: 0x710B, - 5733: 0x710C, - 5734: 0x710D, - 5735: 0x710E, - 5736: 0x710F, - 5737: 0x7111, - 5738: 0x7112, - 5739: 0x7114, - 5740: 0x7117, - 5741: 0x711B, - 5742: 0x711C, - 5743: 0x711D, - 5744: 0x711E, - 5745: 0x711F, - 5746: 0x7120, - 5747: 0x7121, - 5748: 0x7122, - 5749: 0x7123, - 5750: 0x7124, - 5751: 0x7125, - 5752: 0x7127, - 5753: 0x7128, - 5754: 0x7129, - 5755: 0x712A, - 5756: 0x712B, - 5757: 0x712C, - 5758: 0x712D, - 5759: 0x712E, - 5760: 0x7132, - 5761: 0x7133, - 5762: 0x7134, - 5763: 0x7135, - 5764: 0x7137, - 5765: 0x7138, - 5766: 0x7139, - 5767: 0x713A, - 5768: 0x713B, - 5769: 0x713C, - 5770: 0x713D, - 5771: 0x713E, - 5772: 0x713F, - 5773: 0x7140, - 5774: 0x7141, - 5775: 0x7142, - 5776: 0x7143, - 5777: 0x7144, - 5778: 0x7146, - 5779: 0x7147, - 5780: 0x7148, - 5781: 0x7149, - 5782: 0x714B, - 5783: 0x714D, - 5784: 0x714F, - 5785: 0x7150, - 5786: 0x7151, - 5787: 0x7152, - 5788: 0x7153, - 5789: 0x7154, - 5790: 0x7155, - 5791: 0x7156, - 5792: 0x7157, - 5793: 0x7158, - 5794: 0x7159, - 5795: 0x715A, - 5796: 0x715B, - 5797: 0x715D, - 5798: 0x715F, - 5799: 0x7160, - 5800: 0x7161, - 5801: 0x7162, - 5802: 0x7163, - 5803: 0x7165, - 5804: 0x7169, - 5805: 0x716A, - 5806: 0x716B, - 5807: 0x716C, - 5808: 0x716D, - 5809: 0x716F, - 5810: 0x7170, - 5811: 0x7171, - 5812: 0x7174, - 5813: 0x7175, - 5814: 0x7176, - 5815: 0x7177, - 5816: 0x7179, - 5817: 0x717B, - 5818: 0x717C, - 5819: 0x717E, - 5820: 0x717F, - 5821: 0x7180, - 5822: 0x7181, - 5823: 0x7182, - 5824: 0x7183, - 5825: 0x7185, - 5826: 0x7186, - 5827: 0x7187, - 5828: 0x7188, - 5829: 0x7189, - 5830: 0x718B, - 5831: 0x718C, - 5832: 0x718D, - 5833: 0x718E, - 5834: 0x7190, - 5835: 0x7191, - 5836: 0x7192, - 5837: 0x7193, - 5838: 0x7195, - 5839: 0x7196, - 5840: 0x7197, - 5841: 0x719A, - 5842: 0x719B, - 5843: 0x719C, - 5844: 0x719D, - 5845: 0x719E, - 5846: 0x71A1, - 5847: 0x71A2, - 5848: 0x71A3, - 5849: 0x71A4, - 5850: 0x71A5, - 5851: 0x71A6, - 5852: 0x71A7, - 5853: 0x71A9, - 5854: 0x71AA, - 5855: 0x71AB, - 5856: 0x71AD, - 5857: 0x71AE, - 5858: 0x71AF, - 5859: 0x71B0, - 5860: 0x71B1, - 5861: 0x71B2, - 5862: 0x71B4, - 5863: 0x71B6, - 5864: 0x71B7, - 5865: 0x71B8, - 5866: 0x71BA, - 5867: 0x71BB, - 5868: 0x71BC, - 5869: 0x71BD, - 5870: 0x71BE, - 5871: 0x71BF, - 5872: 0x71C0, - 5873: 0x71C1, - 5874: 0x71C2, - 5875: 0x71C4, - 5876: 0x71C5, - 5877: 0x71C6, - 5878: 0x71C7, - 5879: 0x71C8, - 5880: 0x71C9, - 5881: 0x71CA, - 5882: 0x71CB, - 5883: 0x71CC, - 5884: 0x71CD, - 5885: 0x71CF, - 5886: 0x71D0, - 5887: 0x71D1, - 5888: 0x71D2, - 5889: 0x71D3, - 5890: 0x71D6, - 5891: 0x71D7, - 5892: 0x71D8, - 5893: 0x71D9, - 5894: 0x71DA, - 5895: 0x71DB, - 5896: 0x71DC, - 5897: 0x71DD, - 5898: 0x71DE, - 5899: 0x71DF, - 5900: 0x71E1, - 5901: 0x71E2, - 5902: 0x71E3, - 5903: 0x71E4, - 5904: 0x71E6, - 5905: 0x71E8, - 5906: 0x71E9, - 5907: 0x71EA, - 5908: 0x71EB, - 5909: 0x71EC, - 5910: 0x71ED, - 5911: 0x71EF, - 5912: 0x71F0, - 5913: 0x71F1, - 5914: 0x71F2, - 5915: 0x71F3, - 5916: 0x71F4, - 5917: 0x71F5, - 5918: 0x71F6, - 5919: 0x71F7, - 5920: 0x71F8, - 5921: 0x71FA, - 5922: 0x71FB, - 5923: 0x71FC, - 5924: 0x71FD, - 5925: 0x71FE, - 5926: 0x71FF, - 5927: 0x7200, - 5928: 0x7201, - 5929: 0x7202, - 5930: 0x7203, - 5931: 0x7204, - 5932: 0x7205, - 5933: 0x7207, - 5934: 0x7208, - 5935: 0x7209, - 5936: 0x720A, - 5937: 0x720B, - 5938: 0x720C, - 5939: 0x720D, - 5940: 0x720E, - 5941: 0x720F, - 5942: 0x7210, - 5943: 0x7211, - 5944: 0x7212, - 5945: 0x7213, - 5946: 0x7214, - 5947: 0x7215, - 5948: 0x7216, - 5949: 0x7217, - 5950: 0x7218, - 5951: 0x7219, - 5952: 0x721A, - 5953: 0x721B, - 5954: 0x721C, - 5955: 0x721E, - 5956: 0x721F, - 5957: 0x7220, - 5958: 0x7221, - 5959: 0x7222, - 5960: 0x7223, - 5961: 0x7224, - 5962: 0x7225, - 5963: 0x7226, - 5964: 0x7227, - 5965: 0x7229, - 5966: 0x722B, - 5967: 0x722D, - 5968: 0x722E, - 5969: 0x722F, - 5970: 0x7232, - 5971: 0x7233, - 5972: 0x7234, - 5973: 0x723A, - 5974: 0x723C, - 5975: 0x723E, - 5976: 0x7240, - 5977: 0x7241, - 5978: 0x7242, - 5979: 0x7243, - 5980: 0x7244, - 5981: 0x7245, - 5982: 0x7246, - 5983: 0x7249, - 5984: 0x724A, - 5985: 0x724B, - 5986: 0x724E, - 5987: 0x724F, - 5988: 0x7250, - 5989: 0x7251, - 5990: 0x7253, - 5991: 0x7254, - 5992: 0x7255, - 5993: 0x7257, - 5994: 0x7258, - 5995: 0x725A, - 5996: 0x725C, - 5997: 0x725E, - 5998: 0x7260, - 5999: 0x7263, - 6000: 0x7264, - 6001: 0x7265, - 6002: 0x7268, - 6003: 0x726A, - 6004: 0x726B, - 6005: 0x726C, - 6006: 0x726D, - 6007: 0x7270, - 6008: 0x7271, - 6009: 0x7273, - 6010: 0x7274, - 6011: 0x7276, - 6012: 0x7277, - 6013: 0x7278, - 6014: 0x727B, - 6015: 0x727C, - 6016: 0x727D, - 6017: 0x7282, - 6018: 0x7283, - 6019: 0x7285, - 6020: 0x7286, - 6021: 0x7287, - 6022: 0x7288, - 6023: 0x7289, - 6024: 0x728C, - 6025: 0x728E, - 6026: 0x7290, - 6027: 0x7291, - 6028: 0x7293, - 6029: 0x7294, - 6030: 0x7295, - 6031: 0x7296, - 6032: 0x7297, - 6033: 0x7298, - 6034: 0x7299, - 6035: 0x729A, - 6036: 0x729B, - 6037: 0x729C, - 6038: 0x729D, - 6039: 0x729E, - 6040: 0x72A0, - 6041: 0x72A1, - 6042: 0x72A2, - 6043: 0x72A3, - 6044: 0x72A4, - 6045: 0x72A5, - 6046: 0x72A6, - 6047: 0x72A7, - 6048: 0x72A8, - 6049: 0x72A9, - 6050: 0x72AA, - 6051: 0x72AB, - 6052: 0x72AE, - 6053: 0x72B1, - 6054: 0x72B2, - 6055: 0x72B3, - 6056: 0x72B5, - 6057: 0x72BA, - 6058: 0x72BB, - 6059: 0x72BC, - 6060: 0x72BD, - 6061: 0x72BE, - 6062: 0x72BF, - 6063: 0x72C0, - 6064: 0x72C5, - 6065: 0x72C6, - 6066: 0x72C7, - 6067: 0x72C9, - 6068: 0x72CA, - 6069: 0x72CB, - 6070: 0x72CC, - 6071: 0x72CF, - 6072: 0x72D1, - 6073: 0x72D3, - 6074: 0x72D4, - 6075: 0x72D5, - 6076: 0x72D6, - 6077: 0x72D8, - 6078: 0x72DA, - 6079: 0x72DB, - 6176: 0x3000, - 6177: 0x3001, - 6178: 0x3002, - 6179: 0x00B7, - 6180: 0x02C9, - 6181: 0x02C7, - 6182: 0x00A8, - 6183: 0x3003, - 6184: 0x3005, - 6185: 0x2014, - 6186: 0xFF5E, - 6187: 0x2016, - 6188: 0x2026, - 6189: 0x2018, - 6190: 0x2019, - 6191: 0x201C, - 6192: 0x201D, - 6193: 0x3014, - 6194: 0x3015, - 6195: 0x3008, - 6196: 0x3009, - 6197: 0x300A, - 6198: 0x300B, - 6199: 0x300C, - 6200: 0x300D, - 6201: 0x300E, - 6202: 0x300F, - 6203: 0x3016, - 6204: 0x3017, - 6205: 0x3010, - 6206: 0x3011, - 6207: 0x00B1, - 6208: 0x00D7, - 6209: 0x00F7, - 6210: 0x2236, - 6211: 0x2227, - 6212: 0x2228, - 6213: 0x2211, - 6214: 0x220F, - 6215: 0x222A, - 6216: 0x2229, - 6217: 0x2208, - 6218: 0x2237, - 6219: 0x221A, - 6220: 0x22A5, - 6221: 0x2225, - 6222: 0x2220, - 6223: 0x2312, - 6224: 0x2299, - 6225: 0x222B, - 6226: 0x222E, - 6227: 0x2261, - 6228: 0x224C, - 6229: 0x2248, - 6230: 0x223D, - 6231: 0x221D, - 6232: 0x2260, - 6233: 0x226E, - 6234: 0x226F, - 6235: 0x2264, - 6236: 0x2265, - 6237: 0x221E, - 6238: 0x2235, - 6239: 0x2234, - 6240: 0x2642, - 6241: 0x2640, - 6242: 0x00B0, - 6243: 0x2032, - 6244: 0x2033, - 6245: 0x2103, - 6246: 0xFF04, - 6247: 0x00A4, - 6248: 0xFFE0, - 6249: 0xFFE1, - 6250: 0x2030, - 6251: 0x00A7, - 6252: 0x2116, - 6253: 0x2606, - 6254: 0x2605, - 6255: 0x25CB, - 6256: 0x25CF, - 6257: 0x25CE, - 6258: 0x25C7, - 6259: 0x25C6, - 6260: 0x25A1, - 6261: 0x25A0, - 6262: 0x25B3, - 6263: 0x25B2, - 6264: 0x203B, - 6265: 0x2192, - 6266: 0x2190, - 6267: 0x2191, - 6268: 0x2193, - 6269: 0x3013, - 6366: 0x2170, - 6367: 0x2171, - 6368: 0x2172, - 6369: 0x2173, - 6370: 0x2174, - 6371: 0x2175, - 6372: 0x2176, - 6373: 0x2177, - 6374: 0x2178, - 6375: 0x2179, - 6382: 0x2488, - 6383: 0x2489, - 6384: 0x248A, - 6385: 0x248B, - 6386: 0x248C, - 6387: 0x248D, - 6388: 0x248E, - 6389: 0x248F, - 6390: 0x2490, - 6391: 0x2491, - 6392: 0x2492, - 6393: 0x2493, - 6394: 0x2494, - 6395: 0x2495, - 6396: 0x2496, - 6397: 0x2497, - 6398: 0x2498, - 6399: 0x2499, - 6400: 0x249A, - 6401: 0x249B, - 6402: 0x2474, - 6403: 0x2475, - 6404: 0x2476, - 6405: 0x2477, - 6406: 0x2478, - 6407: 0x2479, - 6408: 0x247A, - 6409: 0x247B, - 6410: 0x247C, - 6411: 0x247D, - 6412: 0x247E, - 6413: 0x247F, - 6414: 0x2480, - 6415: 0x2481, - 6416: 0x2482, - 6417: 0x2483, - 6418: 0x2484, - 6419: 0x2485, - 6420: 0x2486, - 6421: 0x2487, - 6422: 0x2460, - 6423: 0x2461, - 6424: 0x2462, - 6425: 0x2463, - 6426: 0x2464, - 6427: 0x2465, - 6428: 0x2466, - 6429: 0x2467, - 6430: 0x2468, - 6431: 0x2469, - 6432: 0x20AC, - 6434: 0x3220, - 6435: 0x3221, - 6436: 0x3222, - 6437: 0x3223, - 6438: 0x3224, - 6439: 0x3225, - 6440: 0x3226, - 6441: 0x3227, - 6442: 0x3228, - 6443: 0x3229, - 6446: 0x2160, - 6447: 0x2161, - 6448: 0x2162, - 6449: 0x2163, - 6450: 0x2164, - 6451: 0x2165, - 6452: 0x2166, - 6453: 0x2167, - 6454: 0x2168, - 6455: 0x2169, - 6456: 0x216A, - 6457: 0x216B, - 6555: 0x3000, - 6556: 0xFF01, - 6557: 0xFF02, - 6558: 0xFF03, - 6559: 0xFFE5, - 6560: 0xFF05, - 6561: 0xFF06, - 6562: 0xFF07, - 6563: 0xFF08, - 6564: 0xFF09, - 6565: 0xFF0A, - 6566: 0xFF0B, - 6567: 0xFF0C, - 6568: 0xFF0D, - 6569: 0xFF0E, - 6570: 0xFF0F, - 6571: 0xFF10, - 6572: 0xFF11, - 6573: 0xFF12, - 6574: 0xFF13, - 6575: 0xFF14, - 6576: 0xFF15, - 6577: 0xFF16, - 6578: 0xFF17, - 6579: 0xFF18, - 6580: 0xFF19, - 6581: 0xFF1A, - 6582: 0xFF1B, - 6583: 0xFF1C, - 6584: 0xFF1D, - 6585: 0xFF1E, - 6586: 0xFF1F, - 6587: 0xFF20, - 6588: 0xFF21, - 6589: 0xFF22, - 6590: 0xFF23, - 6591: 0xFF24, - 6592: 0xFF25, - 6593: 0xFF26, - 6594: 0xFF27, - 6595: 0xFF28, - 6596: 0xFF29, - 6597: 0xFF2A, - 6598: 0xFF2B, - 6599: 0xFF2C, - 6600: 0xFF2D, - 6601: 0xFF2E, - 6602: 0xFF2F, - 6603: 0xFF30, - 6604: 0xFF31, - 6605: 0xFF32, - 6606: 0xFF33, - 6607: 0xFF34, - 6608: 0xFF35, - 6609: 0xFF36, - 6610: 0xFF37, - 6611: 0xFF38, - 6612: 0xFF39, - 6613: 0xFF3A, - 6614: 0xFF3B, - 6615: 0xFF3C, - 6616: 0xFF3D, - 6617: 0xFF3E, - 6618: 0xFF3F, - 6619: 0xFF40, - 6620: 0xFF41, - 6621: 0xFF42, - 6622: 0xFF43, - 6623: 0xFF44, - 6624: 0xFF45, - 6625: 0xFF46, - 6626: 0xFF47, - 6627: 0xFF48, - 6628: 0xFF49, - 6629: 0xFF4A, - 6630: 0xFF4B, - 6631: 0xFF4C, - 6632: 0xFF4D, - 6633: 0xFF4E, - 6634: 0xFF4F, - 6635: 0xFF50, - 6636: 0xFF51, - 6637: 0xFF52, - 6638: 0xFF53, - 6639: 0xFF54, - 6640: 0xFF55, - 6641: 0xFF56, - 6642: 0xFF57, - 6643: 0xFF58, - 6644: 0xFF59, - 6645: 0xFF5A, - 6646: 0xFF5B, - 6647: 0xFF5C, - 6648: 0xFF5D, - 6649: 0xFFE3, - 6746: 0x3041, - 6747: 0x3042, - 6748: 0x3043, - 6749: 0x3044, - 6750: 0x3045, - 6751: 0x3046, - 6752: 0x3047, - 6753: 0x3048, - 6754: 0x3049, - 6755: 0x304A, - 6756: 0x304B, - 6757: 0x304C, - 6758: 0x304D, - 6759: 0x304E, - 6760: 0x304F, - 6761: 0x3050, - 6762: 0x3051, - 6763: 0x3052, - 6764: 0x3053, - 6765: 0x3054, - 6766: 0x3055, - 6767: 0x3056, - 6768: 0x3057, - 6769: 0x3058, - 6770: 0x3059, - 6771: 0x305A, - 6772: 0x305B, - 6773: 0x305C, - 6774: 0x305D, - 6775: 0x305E, - 6776: 0x305F, - 6777: 0x3060, - 6778: 0x3061, - 6779: 0x3062, - 6780: 0x3063, - 6781: 0x3064, - 6782: 0x3065, - 6783: 0x3066, - 6784: 0x3067, - 6785: 0x3068, - 6786: 0x3069, - 6787: 0x306A, - 6788: 0x306B, - 6789: 0x306C, - 6790: 0x306D, - 6791: 0x306E, - 6792: 0x306F, - 6793: 0x3070, - 6794: 0x3071, - 6795: 0x3072, - 6796: 0x3073, - 6797: 0x3074, - 6798: 0x3075, - 6799: 0x3076, - 6800: 0x3077, - 6801: 0x3078, - 6802: 0x3079, - 6803: 0x307A, - 6804: 0x307B, - 6805: 0x307C, - 6806: 0x307D, - 6807: 0x307E, - 6808: 0x307F, - 6809: 0x3080, - 6810: 0x3081, - 6811: 0x3082, - 6812: 0x3083, - 6813: 0x3084, - 6814: 0x3085, - 6815: 0x3086, - 6816: 0x3087, - 6817: 0x3088, - 6818: 0x3089, - 6819: 0x308A, - 6820: 0x308B, - 6821: 0x308C, - 6822: 0x308D, - 6823: 0x308E, - 6824: 0x308F, - 6825: 0x3090, - 6826: 0x3091, - 6827: 0x3092, - 6828: 0x3093, - 6936: 0x30A1, - 6937: 0x30A2, - 6938: 0x30A3, - 6939: 0x30A4, - 6940: 0x30A5, - 6941: 0x30A6, - 6942: 0x30A7, - 6943: 0x30A8, - 6944: 0x30A9, - 6945: 0x30AA, - 6946: 0x30AB, - 6947: 0x30AC, - 6948: 0x30AD, - 6949: 0x30AE, - 6950: 0x30AF, - 6951: 0x30B0, - 6952: 0x30B1, - 6953: 0x30B2, - 6954: 0x30B3, - 6955: 0x30B4, - 6956: 0x30B5, - 6957: 0x30B6, - 6958: 0x30B7, - 6959: 0x30B8, - 6960: 0x30B9, - 6961: 0x30BA, - 6962: 0x30BB, - 6963: 0x30BC, - 6964: 0x30BD, - 6965: 0x30BE, - 6966: 0x30BF, - 6967: 0x30C0, - 6968: 0x30C1, - 6969: 0x30C2, - 6970: 0x30C3, - 6971: 0x30C4, - 6972: 0x30C5, - 6973: 0x30C6, - 6974: 0x30C7, - 6975: 0x30C8, - 6976: 0x30C9, - 6977: 0x30CA, - 6978: 0x30CB, - 6979: 0x30CC, - 6980: 0x30CD, - 6981: 0x30CE, - 6982: 0x30CF, - 6983: 0x30D0, - 6984: 0x30D1, - 6985: 0x30D2, - 6986: 0x30D3, - 6987: 0x30D4, - 6988: 0x30D5, - 6989: 0x30D6, - 6990: 0x30D7, - 6991: 0x30D8, - 6992: 0x30D9, - 6993: 0x30DA, - 6994: 0x30DB, - 6995: 0x30DC, - 6996: 0x30DD, - 6997: 0x30DE, - 6998: 0x30DF, - 6999: 0x30E0, - 7000: 0x30E1, - 7001: 0x30E2, - 7002: 0x30E3, - 7003: 0x30E4, - 7004: 0x30E5, - 7005: 0x30E6, - 7006: 0x30E7, - 7007: 0x30E8, - 7008: 0x30E9, - 7009: 0x30EA, - 7010: 0x30EB, - 7011: 0x30EC, - 7012: 0x30ED, - 7013: 0x30EE, - 7014: 0x30EF, - 7015: 0x30F0, - 7016: 0x30F1, - 7017: 0x30F2, - 7018: 0x30F3, - 7019: 0x30F4, - 7020: 0x30F5, - 7021: 0x30F6, - 7126: 0x0391, - 7127: 0x0392, - 7128: 0x0393, - 7129: 0x0394, - 7130: 0x0395, - 7131: 0x0396, - 7132: 0x0397, - 7133: 0x0398, - 7134: 0x0399, - 7135: 0x039A, - 7136: 0x039B, - 7137: 0x039C, - 7138: 0x039D, - 7139: 0x039E, - 7140: 0x039F, - 7141: 0x03A0, - 7142: 0x03A1, - 7143: 0x03A3, - 7144: 0x03A4, - 7145: 0x03A5, - 7146: 0x03A6, - 7147: 0x03A7, - 7148: 0x03A8, - 7149: 0x03A9, - 7158: 0x03B1, - 7159: 0x03B2, - 7160: 0x03B3, - 7161: 0x03B4, - 7162: 0x03B5, - 7163: 0x03B6, - 7164: 0x03B7, - 7165: 0x03B8, - 7166: 0x03B9, - 7167: 0x03BA, - 7168: 0x03BB, - 7169: 0x03BC, - 7170: 0x03BD, - 7171: 0x03BE, - 7172: 0x03BF, - 7173: 0x03C0, - 7174: 0x03C1, - 7175: 0x03C3, - 7176: 0x03C4, - 7177: 0x03C5, - 7178: 0x03C6, - 7179: 0x03C7, - 7180: 0x03C8, - 7181: 0x03C9, - 7189: 0xFE35, - 7190: 0xFE36, - 7191: 0xFE39, - 7192: 0xFE3A, - 7193: 0xFE3F, - 7194: 0xFE40, - 7195: 0xFE3D, - 7196: 0xFE3E, - 7197: 0xFE41, - 7198: 0xFE42, - 7199: 0xFE43, - 7200: 0xFE44, - 7203: 0xFE3B, - 7204: 0xFE3C, - 7205: 0xFE37, - 7206: 0xFE38, - 7207: 0xFE31, - 7209: 0xFE33, - 7210: 0xFE34, - 7316: 0x0410, - 7317: 0x0411, - 7318: 0x0412, - 7319: 0x0413, - 7320: 0x0414, - 7321: 0x0415, - 7322: 0x0401, - 7323: 0x0416, - 7324: 0x0417, - 7325: 0x0418, - 7326: 0x0419, - 7327: 0x041A, - 7328: 0x041B, - 7329: 0x041C, - 7330: 0x041D, - 7331: 0x041E, - 7332: 0x041F, - 7333: 0x0420, - 7334: 0x0421, - 7335: 0x0422, - 7336: 0x0423, - 7337: 0x0424, - 7338: 0x0425, - 7339: 0x0426, - 7340: 0x0427, - 7341: 0x0428, - 7342: 0x0429, - 7343: 0x042A, - 7344: 0x042B, - 7345: 0x042C, - 7346: 0x042D, - 7347: 0x042E, - 7348: 0x042F, - 7364: 0x0430, - 7365: 0x0431, - 7366: 0x0432, - 7367: 0x0433, - 7368: 0x0434, - 7369: 0x0435, - 7370: 0x0451, - 7371: 0x0436, - 7372: 0x0437, - 7373: 0x0438, - 7374: 0x0439, - 7375: 0x043A, - 7376: 0x043B, - 7377: 0x043C, - 7378: 0x043D, - 7379: 0x043E, - 7380: 0x043F, - 7381: 0x0440, - 7382: 0x0441, - 7383: 0x0442, - 7384: 0x0443, - 7385: 0x0444, - 7386: 0x0445, - 7387: 0x0446, - 7388: 0x0447, - 7389: 0x0448, - 7390: 0x0449, - 7391: 0x044A, - 7392: 0x044B, - 7393: 0x044C, - 7394: 0x044D, - 7395: 0x044E, - 7396: 0x044F, - 7410: 0x02CA, - 7411: 0x02CB, - 7412: 0x02D9, - 7413: 0x2013, - 7414: 0x2015, - 7415: 0x2025, - 7416: 0x2035, - 7417: 0x2105, - 7418: 0x2109, - 7419: 0x2196, - 7420: 0x2197, - 7421: 0x2198, - 7422: 0x2199, - 7423: 0x2215, - 7424: 0x221F, - 7425: 0x2223, - 7426: 0x2252, - 7427: 0x2266, - 7428: 0x2267, - 7429: 0x22BF, - 7430: 0x2550, - 7431: 0x2551, - 7432: 0x2552, - 7433: 0x2553, - 7434: 0x2554, - 7435: 0x2555, - 7436: 0x2556, - 7437: 0x2557, - 7438: 0x2558, - 7439: 0x2559, - 7440: 0x255A, - 7441: 0x255B, - 7442: 0x255C, - 7443: 0x255D, - 7444: 0x255E, - 7445: 0x255F, - 7446: 0x2560, - 7447: 0x2561, - 7448: 0x2562, - 7449: 0x2563, - 7450: 0x2564, - 7451: 0x2565, - 7452: 0x2566, - 7453: 0x2567, - 7454: 0x2568, - 7455: 0x2569, - 7456: 0x256A, - 7457: 0x256B, - 7458: 0x256C, - 7459: 0x256D, - 7460: 0x256E, - 7461: 0x256F, - 7462: 0x2570, - 7463: 0x2571, - 7464: 0x2572, - 7465: 0x2573, - 7466: 0x2581, - 7467: 0x2582, - 7468: 0x2583, - 7469: 0x2584, - 7470: 0x2585, - 7471: 0x2586, - 7472: 0x2587, - 7473: 0x2588, - 7474: 0x2589, - 7475: 0x258A, - 7476: 0x258B, - 7477: 0x258C, - 7478: 0x258D, - 7479: 0x258E, - 7480: 0x258F, - 7481: 0x2593, - 7482: 0x2594, - 7483: 0x2595, - 7484: 0x25BC, - 7485: 0x25BD, - 7486: 0x25E2, - 7487: 0x25E3, - 7488: 0x25E4, - 7489: 0x25E5, - 7490: 0x2609, - 7491: 0x2295, - 7492: 0x3012, - 7493: 0x301D, - 7494: 0x301E, - 7506: 0x0101, - 7507: 0x00E1, - 7508: 0x01CE, - 7509: 0x00E0, - 7510: 0x0113, - 7511: 0x00E9, - 7512: 0x011B, - 7513: 0x00E8, - 7514: 0x012B, - 7515: 0x00ED, - 7516: 0x01D0, - 7517: 0x00EC, - 7518: 0x014D, - 7519: 0x00F3, - 7520: 0x01D2, - 7521: 0x00F2, - 7522: 0x016B, - 7523: 0x00FA, - 7524: 0x01D4, - 7525: 0x00F9, - 7526: 0x01D6, - 7527: 0x01D8, - 7528: 0x01DA, - 7529: 0x01DC, - 7530: 0x00FC, - 7531: 0x00EA, - 7532: 0x0251, - 7534: 0x0144, - 7535: 0x0148, - 7536: 0x01F9, - 7537: 0x0261, - 7542: 0x3105, - 7543: 0x3106, - 7544: 0x3107, - 7545: 0x3108, - 7546: 0x3109, - 7547: 0x310A, - 7548: 0x310B, - 7549: 0x310C, - 7550: 0x310D, - 7551: 0x310E, - 7552: 0x310F, - 7553: 0x3110, - 7554: 0x3111, - 7555: 0x3112, - 7556: 0x3113, - 7557: 0x3114, - 7558: 0x3115, - 7559: 0x3116, - 7560: 0x3117, - 7561: 0x3118, - 7562: 0x3119, - 7563: 0x311A, - 7564: 0x311B, - 7565: 0x311C, - 7566: 0x311D, - 7567: 0x311E, - 7568: 0x311F, - 7569: 0x3120, - 7570: 0x3121, - 7571: 0x3122, - 7572: 0x3123, - 7573: 0x3124, - 7574: 0x3125, - 7575: 0x3126, - 7576: 0x3127, - 7577: 0x3128, - 7578: 0x3129, - 7600: 0x3021, - 7601: 0x3022, - 7602: 0x3023, - 7603: 0x3024, - 7604: 0x3025, - 7605: 0x3026, - 7606: 0x3027, - 7607: 0x3028, - 7608: 0x3029, - 7609: 0x32A3, - 7610: 0x338E, - 7611: 0x338F, - 7612: 0x339C, - 7613: 0x339D, - 7614: 0x339E, - 7615: 0x33A1, - 7616: 0x33C4, - 7617: 0x33CE, - 7618: 0x33D1, - 7619: 0x33D2, - 7620: 0x33D5, - 7621: 0xFE30, - 7622: 0xFFE2, - 7623: 0xFFE4, - 7625: 0x2121, - 7626: 0x3231, - 7628: 0x2010, - 7632: 0x30FC, - 7633: 0x309B, - 7634: 0x309C, - 7635: 0x30FD, - 7636: 0x30FE, - 7637: 0x3006, - 7638: 0x309D, - 7639: 0x309E, - 7640: 0xFE49, - 7641: 0xFE4A, - 7642: 0xFE4B, - 7643: 0xFE4C, - 7644: 0xFE4D, - 7645: 0xFE4E, - 7646: 0xFE4F, - 7647: 0xFE50, - 7648: 0xFE51, - 7649: 0xFE52, - 7650: 0xFE54, - 7651: 0xFE55, - 7652: 0xFE56, - 7653: 0xFE57, - 7654: 0xFE59, - 7655: 0xFE5A, - 7656: 0xFE5B, - 7657: 0xFE5C, - 7658: 0xFE5D, - 7659: 0xFE5E, - 7660: 0xFE5F, - 7661: 0xFE60, - 7662: 0xFE61, - 7663: 0xFE62, - 7664: 0xFE63, - 7665: 0xFE64, - 7666: 0xFE65, - 7667: 0xFE66, - 7668: 0xFE68, - 7669: 0xFE69, - 7670: 0xFE6A, - 7671: 0xFE6B, - 7672: 0x303E, - 7673: 0x2FF0, - 7674: 0x2FF1, - 7675: 0x2FF2, - 7676: 0x2FF3, - 7677: 0x2FF4, - 7678: 0x2FF5, - 7679: 0x2FF6, - 7680: 0x2FF7, - 7681: 0x2FF8, - 7682: 0x2FF9, - 7683: 0x2FFA, - 7684: 0x2FFB, - 7685: 0x3007, - 7699: 0x2500, - 7700: 0x2501, - 7701: 0x2502, - 7702: 0x2503, - 7703: 0x2504, - 7704: 0x2505, - 7705: 0x2506, - 7706: 0x2507, - 7707: 0x2508, - 7708: 0x2509, - 7709: 0x250A, - 7710: 0x250B, - 7711: 0x250C, - 7712: 0x250D, - 7713: 0x250E, - 7714: 0x250F, - 7715: 0x2510, - 7716: 0x2511, - 7717: 0x2512, - 7718: 0x2513, - 7719: 0x2514, - 7720: 0x2515, - 7721: 0x2516, - 7722: 0x2517, - 7723: 0x2518, - 7724: 0x2519, - 7725: 0x251A, - 7726: 0x251B, - 7727: 0x251C, - 7728: 0x251D, - 7729: 0x251E, - 7730: 0x251F, - 7731: 0x2520, - 7732: 0x2521, - 7733: 0x2522, - 7734: 0x2523, - 7735: 0x2524, - 7736: 0x2525, - 7737: 0x2526, - 7738: 0x2527, - 7739: 0x2528, - 7740: 0x2529, - 7741: 0x252A, - 7742: 0x252B, - 7743: 0x252C, - 7744: 0x252D, - 7745: 0x252E, - 7746: 0x252F, - 7747: 0x2530, - 7748: 0x2531, - 7749: 0x2532, - 7750: 0x2533, - 7751: 0x2534, - 7752: 0x2535, - 7753: 0x2536, - 7754: 0x2537, - 7755: 0x2538, - 7756: 0x2539, - 7757: 0x253A, - 7758: 0x253B, - 7759: 0x253C, - 7760: 0x253D, - 7761: 0x253E, - 7762: 0x253F, - 7763: 0x2540, - 7764: 0x2541, - 7765: 0x2542, - 7766: 0x2543, - 7767: 0x2544, - 7768: 0x2545, - 7769: 0x2546, - 7770: 0x2547, - 7771: 0x2548, - 7772: 0x2549, - 7773: 0x254A, - 7774: 0x254B, - 7790: 0x72DC, - 7791: 0x72DD, - 7792: 0x72DF, - 7793: 0x72E2, - 7794: 0x72E3, - 7795: 0x72E4, - 7796: 0x72E5, - 7797: 0x72E6, - 7798: 0x72E7, - 7799: 0x72EA, - 7800: 0x72EB, - 7801: 0x72F5, - 7802: 0x72F6, - 7803: 0x72F9, - 7804: 0x72FD, - 7805: 0x72FE, - 7806: 0x72FF, - 7807: 0x7300, - 7808: 0x7302, - 7809: 0x7304, - 7810: 0x7305, - 7811: 0x7306, - 7812: 0x7307, - 7813: 0x7308, - 7814: 0x7309, - 7815: 0x730B, - 7816: 0x730C, - 7817: 0x730D, - 7818: 0x730F, - 7819: 0x7310, - 7820: 0x7311, - 7821: 0x7312, - 7822: 0x7314, - 7823: 0x7318, - 7824: 0x7319, - 7825: 0x731A, - 7826: 0x731F, - 7827: 0x7320, - 7828: 0x7323, - 7829: 0x7324, - 7830: 0x7326, - 7831: 0x7327, - 7832: 0x7328, - 7833: 0x732D, - 7834: 0x732F, - 7835: 0x7330, - 7836: 0x7332, - 7837: 0x7333, - 7838: 0x7335, - 7839: 0x7336, - 7840: 0x733A, - 7841: 0x733B, - 7842: 0x733C, - 7843: 0x733D, - 7844: 0x7340, - 7845: 0x7341, - 7846: 0x7342, - 7847: 0x7343, - 7848: 0x7344, - 7849: 0x7345, - 7850: 0x7346, - 7851: 0x7347, - 7852: 0x7348, - 7853: 0x7349, - 7854: 0x734A, - 7855: 0x734B, - 7856: 0x734C, - 7857: 0x734E, - 7858: 0x734F, - 7859: 0x7351, - 7860: 0x7353, - 7861: 0x7354, - 7862: 0x7355, - 7863: 0x7356, - 7864: 0x7358, - 7865: 0x7359, - 7866: 0x735A, - 7867: 0x735B, - 7868: 0x735C, - 7869: 0x735D, - 7870: 0x735E, - 7871: 0x735F, - 7872: 0x7361, - 7873: 0x7362, - 7874: 0x7363, - 7875: 0x7364, - 7876: 0x7365, - 7877: 0x7366, - 7878: 0x7367, - 7879: 0x7368, - 7880: 0x7369, - 7881: 0x736A, - 7882: 0x736B, - 7883: 0x736E, - 7884: 0x7370, - 7885: 0x7371, - 7980: 0x7372, - 7981: 0x7373, - 7982: 0x7374, - 7983: 0x7375, - 7984: 0x7376, - 7985: 0x7377, - 7986: 0x7378, - 7987: 0x7379, - 7988: 0x737A, - 7989: 0x737B, - 7990: 0x737C, - 7991: 0x737D, - 7992: 0x737F, - 7993: 0x7380, - 7994: 0x7381, - 7995: 0x7382, - 7996: 0x7383, - 7997: 0x7385, - 7998: 0x7386, - 7999: 0x7388, - 8000: 0x738A, - 8001: 0x738C, - 8002: 0x738D, - 8003: 0x738F, - 8004: 0x7390, - 8005: 0x7392, - 8006: 0x7393, - 8007: 0x7394, - 8008: 0x7395, - 8009: 0x7397, - 8010: 0x7398, - 8011: 0x7399, - 8012: 0x739A, - 8013: 0x739C, - 8014: 0x739D, - 8015: 0x739E, - 8016: 0x73A0, - 8017: 0x73A1, - 8018: 0x73A3, - 8019: 0x73A4, - 8020: 0x73A5, - 8021: 0x73A6, - 8022: 0x73A7, - 8023: 0x73A8, - 8024: 0x73AA, - 8025: 0x73AC, - 8026: 0x73AD, - 8027: 0x73B1, - 8028: 0x73B4, - 8029: 0x73B5, - 8030: 0x73B6, - 8031: 0x73B8, - 8032: 0x73B9, - 8033: 0x73BC, - 8034: 0x73BD, - 8035: 0x73BE, - 8036: 0x73BF, - 8037: 0x73C1, - 8038: 0x73C3, - 8039: 0x73C4, - 8040: 0x73C5, - 8041: 0x73C6, - 8042: 0x73C7, - 8043: 0x73CB, - 8044: 0x73CC, - 8045: 0x73CE, - 8046: 0x73D2, - 8047: 0x73D3, - 8048: 0x73D4, - 8049: 0x73D5, - 8050: 0x73D6, - 8051: 0x73D7, - 8052: 0x73D8, - 8053: 0x73DA, - 8054: 0x73DB, - 8055: 0x73DC, - 8056: 0x73DD, - 8057: 0x73DF, - 8058: 0x73E1, - 8059: 0x73E2, - 8060: 0x73E3, - 8061: 0x73E4, - 8062: 0x73E6, - 8063: 0x73E8, - 8064: 0x73EA, - 8065: 0x73EB, - 8066: 0x73EC, - 8067: 0x73EE, - 8068: 0x73EF, - 8069: 0x73F0, - 8070: 0x73F1, - 8071: 0x73F3, - 8072: 0x73F4, - 8073: 0x73F5, - 8074: 0x73F6, - 8075: 0x73F7, - 8170: 0x73F8, - 8171: 0x73F9, - 8172: 0x73FA, - 8173: 0x73FB, - 8174: 0x73FC, - 8175: 0x73FD, - 8176: 0x73FE, - 8177: 0x73FF, - 8178: 0x7400, - 8179: 0x7401, - 8180: 0x7402, - 8181: 0x7404, - 8182: 0x7407, - 8183: 0x7408, - 8184: 0x740B, - 8185: 0x740C, - 8186: 0x740D, - 8187: 0x740E, - 8188: 0x7411, - 8189: 0x7412, - 8190: 0x7413, - 8191: 0x7414, - 8192: 0x7415, - 8193: 0x7416, - 8194: 0x7417, - 8195: 0x7418, - 8196: 0x7419, - 8197: 0x741C, - 8198: 0x741D, - 8199: 0x741E, - 8200: 0x741F, - 8201: 0x7420, - 8202: 0x7421, - 8203: 0x7423, - 8204: 0x7424, - 8205: 0x7427, - 8206: 0x7429, - 8207: 0x742B, - 8208: 0x742D, - 8209: 0x742F, - 8210: 0x7431, - 8211: 0x7432, - 8212: 0x7437, - 8213: 0x7438, - 8214: 0x7439, - 8215: 0x743A, - 8216: 0x743B, - 8217: 0x743D, - 8218: 0x743E, - 8219: 0x743F, - 8220: 0x7440, - 8221: 0x7442, - 8222: 0x7443, - 8223: 0x7444, - 8224: 0x7445, - 8225: 0x7446, - 8226: 0x7447, - 8227: 0x7448, - 8228: 0x7449, - 8229: 0x744A, - 8230: 0x744B, - 8231: 0x744C, - 8232: 0x744D, - 8233: 0x744E, - 8234: 0x744F, - 8235: 0x7450, - 8236: 0x7451, - 8237: 0x7452, - 8238: 0x7453, - 8239: 0x7454, - 8240: 0x7456, - 8241: 0x7458, - 8242: 0x745D, - 8243: 0x7460, - 8244: 0x7461, - 8245: 0x7462, - 8246: 0x7463, - 8247: 0x7464, - 8248: 0x7465, - 8249: 0x7466, - 8250: 0x7467, - 8251: 0x7468, - 8252: 0x7469, - 8253: 0x746A, - 8254: 0x746B, - 8255: 0x746C, - 8256: 0x746E, - 8257: 0x746F, - 8258: 0x7471, - 8259: 0x7472, - 8260: 0x7473, - 8261: 0x7474, - 8262: 0x7475, - 8263: 0x7478, - 8264: 0x7479, - 8265: 0x747A, - 8360: 0x747B, - 8361: 0x747C, - 8362: 0x747D, - 8363: 0x747F, - 8364: 0x7482, - 8365: 0x7484, - 8366: 0x7485, - 8367: 0x7486, - 8368: 0x7488, - 8369: 0x7489, - 8370: 0x748A, - 8371: 0x748C, - 8372: 0x748D, - 8373: 0x748F, - 8374: 0x7491, - 8375: 0x7492, - 8376: 0x7493, - 8377: 0x7494, - 8378: 0x7495, - 8379: 0x7496, - 8380: 0x7497, - 8381: 0x7498, - 8382: 0x7499, - 8383: 0x749A, - 8384: 0x749B, - 8385: 0x749D, - 8386: 0x749F, - 8387: 0x74A0, - 8388: 0x74A1, - 8389: 0x74A2, - 8390: 0x74A3, - 8391: 0x74A4, - 8392: 0x74A5, - 8393: 0x74A6, - 8394: 0x74AA, - 8395: 0x74AB, - 8396: 0x74AC, - 8397: 0x74AD, - 8398: 0x74AE, - 8399: 0x74AF, - 8400: 0x74B0, - 8401: 0x74B1, - 8402: 0x74B2, - 8403: 0x74B3, - 8404: 0x74B4, - 8405: 0x74B5, - 8406: 0x74B6, - 8407: 0x74B7, - 8408: 0x74B8, - 8409: 0x74B9, - 8410: 0x74BB, - 8411: 0x74BC, - 8412: 0x74BD, - 8413: 0x74BE, - 8414: 0x74BF, - 8415: 0x74C0, - 8416: 0x74C1, - 8417: 0x74C2, - 8418: 0x74C3, - 8419: 0x74C4, - 8420: 0x74C5, - 8421: 0x74C6, - 8422: 0x74C7, - 8423: 0x74C8, - 8424: 0x74C9, - 8425: 0x74CA, - 8426: 0x74CB, - 8427: 0x74CC, - 8428: 0x74CD, - 8429: 0x74CE, - 8430: 0x74CF, - 8431: 0x74D0, - 8432: 0x74D1, - 8433: 0x74D3, - 8434: 0x74D4, - 8435: 0x74D5, - 8436: 0x74D6, - 8437: 0x74D7, - 8438: 0x74D8, - 8439: 0x74D9, - 8440: 0x74DA, - 8441: 0x74DB, - 8442: 0x74DD, - 8443: 0x74DF, - 8444: 0x74E1, - 8445: 0x74E5, - 8446: 0x74E7, - 8447: 0x74E8, - 8448: 0x74E9, - 8449: 0x74EA, - 8450: 0x74EB, - 8451: 0x74EC, - 8452: 0x74ED, - 8453: 0x74F0, - 8454: 0x74F1, - 8455: 0x74F2, - 8550: 0x74F3, - 8551: 0x74F5, - 8552: 0x74F8, - 8553: 0x74F9, - 8554: 0x74FA, - 8555: 0x74FB, - 8556: 0x74FC, - 8557: 0x74FD, - 8558: 0x74FE, - 8559: 0x7500, - 8560: 0x7501, - 8561: 0x7502, - 8562: 0x7503, - 8563: 0x7505, - 8564: 0x7506, - 8565: 0x7507, - 8566: 0x7508, - 8567: 0x7509, - 8568: 0x750A, - 8569: 0x750B, - 8570: 0x750C, - 8571: 0x750E, - 8572: 0x7510, - 8573: 0x7512, - 8574: 0x7514, - 8575: 0x7515, - 8576: 0x7516, - 8577: 0x7517, - 8578: 0x751B, - 8579: 0x751D, - 8580: 0x751E, - 8581: 0x7520, - 8582: 0x7521, - 8583: 0x7522, - 8584: 0x7523, - 8585: 0x7524, - 8586: 0x7526, - 8587: 0x7527, - 8588: 0x752A, - 8589: 0x752E, - 8590: 0x7534, - 8591: 0x7536, - 8592: 0x7539, - 8593: 0x753C, - 8594: 0x753D, - 8595: 0x753F, - 8596: 0x7541, - 8597: 0x7542, - 8598: 0x7543, - 8599: 0x7544, - 8600: 0x7546, - 8601: 0x7547, - 8602: 0x7549, - 8603: 0x754A, - 8604: 0x754D, - 8605: 0x7550, - 8606: 0x7551, - 8607: 0x7552, - 8608: 0x7553, - 8609: 0x7555, - 8610: 0x7556, - 8611: 0x7557, - 8612: 0x7558, - 8613: 0x755D, - 8614: 0x755E, - 8615: 0x755F, - 8616: 0x7560, - 8617: 0x7561, - 8618: 0x7562, - 8619: 0x7563, - 8620: 0x7564, - 8621: 0x7567, - 8622: 0x7568, - 8623: 0x7569, - 8624: 0x756B, - 8625: 0x756C, - 8626: 0x756D, - 8627: 0x756E, - 8628: 0x756F, - 8629: 0x7570, - 8630: 0x7571, - 8631: 0x7573, - 8632: 0x7575, - 8633: 0x7576, - 8634: 0x7577, - 8635: 0x757A, - 8636: 0x757B, - 8637: 0x757C, - 8638: 0x757D, - 8639: 0x757E, - 8640: 0x7580, - 8641: 0x7581, - 8642: 0x7582, - 8643: 0x7584, - 8644: 0x7585, - 8645: 0x7587, - 8740: 0x7588, - 8741: 0x7589, - 8742: 0x758A, - 8743: 0x758C, - 8744: 0x758D, - 8745: 0x758E, - 8746: 0x7590, - 8747: 0x7593, - 8748: 0x7595, - 8749: 0x7598, - 8750: 0x759B, - 8751: 0x759C, - 8752: 0x759E, - 8753: 0x75A2, - 8754: 0x75A6, - 8755: 0x75A7, - 8756: 0x75A8, - 8757: 0x75A9, - 8758: 0x75AA, - 8759: 0x75AD, - 8760: 0x75B6, - 8761: 0x75B7, - 8762: 0x75BA, - 8763: 0x75BB, - 8764: 0x75BF, - 8765: 0x75C0, - 8766: 0x75C1, - 8767: 0x75C6, - 8768: 0x75CB, - 8769: 0x75CC, - 8770: 0x75CE, - 8771: 0x75CF, - 8772: 0x75D0, - 8773: 0x75D1, - 8774: 0x75D3, - 8775: 0x75D7, - 8776: 0x75D9, - 8777: 0x75DA, - 8778: 0x75DC, - 8779: 0x75DD, - 8780: 0x75DF, - 8781: 0x75E0, - 8782: 0x75E1, - 8783: 0x75E5, - 8784: 0x75E9, - 8785: 0x75EC, - 8786: 0x75ED, - 8787: 0x75EE, - 8788: 0x75EF, - 8789: 0x75F2, - 8790: 0x75F3, - 8791: 0x75F5, - 8792: 0x75F6, - 8793: 0x75F7, - 8794: 0x75F8, - 8795: 0x75FA, - 8796: 0x75FB, - 8797: 0x75FD, - 8798: 0x75FE, - 8799: 0x7602, - 8800: 0x7604, - 8801: 0x7606, - 8802: 0x7607, - 8803: 0x7608, - 8804: 0x7609, - 8805: 0x760B, - 8806: 0x760D, - 8807: 0x760E, - 8808: 0x760F, - 8809: 0x7611, - 8810: 0x7612, - 8811: 0x7613, - 8812: 0x7614, - 8813: 0x7616, - 8814: 0x761A, - 8815: 0x761C, - 8816: 0x761D, - 8817: 0x761E, - 8818: 0x7621, - 8819: 0x7623, - 8820: 0x7627, - 8821: 0x7628, - 8822: 0x762C, - 8823: 0x762E, - 8824: 0x762F, - 8825: 0x7631, - 8826: 0x7632, - 8827: 0x7636, - 8828: 0x7637, - 8829: 0x7639, - 8830: 0x763A, - 8831: 0x763B, - 8832: 0x763D, - 8833: 0x7641, - 8834: 0x7642, - 8835: 0x7644, - 8930: 0x7645, - 8931: 0x7646, - 8932: 0x7647, - 8933: 0x7648, - 8934: 0x7649, - 8935: 0x764A, - 8936: 0x764B, - 8937: 0x764E, - 8938: 0x764F, - 8939: 0x7650, - 8940: 0x7651, - 8941: 0x7652, - 8942: 0x7653, - 8943: 0x7655, - 8944: 0x7657, - 8945: 0x7658, - 8946: 0x7659, - 8947: 0x765A, - 8948: 0x765B, - 8949: 0x765D, - 8950: 0x765F, - 8951: 0x7660, - 8952: 0x7661, - 8953: 0x7662, - 8954: 0x7664, - 8955: 0x7665, - 8956: 0x7666, - 8957: 0x7667, - 8958: 0x7668, - 8959: 0x7669, - 8960: 0x766A, - 8961: 0x766C, - 8962: 0x766D, - 8963: 0x766E, - 8964: 0x7670, - 8965: 0x7671, - 8966: 0x7672, - 8967: 0x7673, - 8968: 0x7674, - 8969: 0x7675, - 8970: 0x7676, - 8971: 0x7677, - 8972: 0x7679, - 8973: 0x767A, - 8974: 0x767C, - 8975: 0x767F, - 8976: 0x7680, - 8977: 0x7681, - 8978: 0x7683, - 8979: 0x7685, - 8980: 0x7689, - 8981: 0x768A, - 8982: 0x768C, - 8983: 0x768D, - 8984: 0x768F, - 8985: 0x7690, - 8986: 0x7692, - 8987: 0x7694, - 8988: 0x7695, - 8989: 0x7697, - 8990: 0x7698, - 8991: 0x769A, - 8992: 0x769B, - 8993: 0x769C, - 8994: 0x769D, - 8995: 0x769E, - 8996: 0x769F, - 8997: 0x76A0, - 8998: 0x76A1, - 8999: 0x76A2, - 9000: 0x76A3, - 9001: 0x76A5, - 9002: 0x76A6, - 9003: 0x76A7, - 9004: 0x76A8, - 9005: 0x76A9, - 9006: 0x76AA, - 9007: 0x76AB, - 9008: 0x76AC, - 9009: 0x76AD, - 9010: 0x76AF, - 9011: 0x76B0, - 9012: 0x76B3, - 9013: 0x76B5, - 9014: 0x76B6, - 9015: 0x76B7, - 9016: 0x76B8, - 9017: 0x76B9, - 9018: 0x76BA, - 9019: 0x76BB, - 9020: 0x76BC, - 9021: 0x76BD, - 9022: 0x76BE, - 9023: 0x76C0, - 9024: 0x76C1, - 9025: 0x76C3, - 9026: 0x554A, - 9027: 0x963F, - 9028: 0x57C3, - 9029: 0x6328, - 9030: 0x54CE, - 9031: 0x5509, - 9032: 0x54C0, - 9033: 0x7691, - 9034: 0x764C, - 9035: 0x853C, - 9036: 0x77EE, - 9037: 0x827E, - 9038: 0x788D, - 9039: 0x7231, - 9040: 0x9698, - 9041: 0x978D, - 9042: 0x6C28, - 9043: 0x5B89, - 9044: 0x4FFA, - 9045: 0x6309, - 9046: 0x6697, - 9047: 0x5CB8, - 9048: 0x80FA, - 9049: 0x6848, - 9050: 0x80AE, - 9051: 0x6602, - 9052: 0x76CE, - 9053: 0x51F9, - 9054: 0x6556, - 9055: 0x71AC, - 9056: 0x7FF1, - 9057: 0x8884, - 9058: 0x50B2, - 9059: 0x5965, - 9060: 0x61CA, - 9061: 0x6FB3, - 9062: 0x82AD, - 9063: 0x634C, - 9064: 0x6252, - 9065: 0x53ED, - 9066: 0x5427, - 9067: 0x7B06, - 9068: 0x516B, - 9069: 0x75A4, - 9070: 0x5DF4, - 9071: 0x62D4, - 9072: 0x8DCB, - 9073: 0x9776, - 9074: 0x628A, - 9075: 0x8019, - 9076: 0x575D, - 9077: 0x9738, - 9078: 0x7F62, - 9079: 0x7238, - 9080: 0x767D, - 9081: 0x67CF, - 9082: 0x767E, - 9083: 0x6446, - 9084: 0x4F70, - 9085: 0x8D25, - 9086: 0x62DC, - 9087: 0x7A17, - 9088: 0x6591, - 9089: 0x73ED, - 9090: 0x642C, - 9091: 0x6273, - 9092: 0x822C, - 9093: 0x9881, - 9094: 0x677F, - 9095: 0x7248, - 9096: 0x626E, - 9097: 0x62CC, - 9098: 0x4F34, - 9099: 0x74E3, - 9100: 0x534A, - 9101: 0x529E, - 9102: 0x7ECA, - 9103: 0x90A6, - 9104: 0x5E2E, - 9105: 0x6886, - 9106: 0x699C, - 9107: 0x8180, - 9108: 0x7ED1, - 9109: 0x68D2, - 9110: 0x78C5, - 9111: 0x868C, - 9112: 0x9551, - 9113: 0x508D, - 9114: 0x8C24, - 9115: 0x82DE, - 9116: 0x80DE, - 9117: 0x5305, - 9118: 0x8912, - 9119: 0x5265, - 9120: 0x76C4, - 9121: 0x76C7, - 9122: 0x76C9, - 9123: 0x76CB, - 9124: 0x76CC, - 9125: 0x76D3, - 9126: 0x76D5, - 9127: 0x76D9, - 9128: 0x76DA, - 9129: 0x76DC, - 9130: 0x76DD, - 9131: 0x76DE, - 9132: 0x76E0, - 9133: 0x76E1, - 9134: 0x76E2, - 9135: 0x76E3, - 9136: 0x76E4, - 9137: 0x76E6, - 9138: 0x76E7, - 9139: 0x76E8, - 9140: 0x76E9, - 9141: 0x76EA, - 9142: 0x76EB, - 9143: 0x76EC, - 9144: 0x76ED, - 9145: 0x76F0, - 9146: 0x76F3, - 9147: 0x76F5, - 9148: 0x76F6, - 9149: 0x76F7, - 9150: 0x76FA, - 9151: 0x76FB, - 9152: 0x76FD, - 9153: 0x76FF, - 9154: 0x7700, - 9155: 0x7702, - 9156: 0x7703, - 9157: 0x7705, - 9158: 0x7706, - 9159: 0x770A, - 9160: 0x770C, - 9161: 0x770E, - 9162: 0x770F, - 9163: 0x7710, - 9164: 0x7711, - 9165: 0x7712, - 9166: 0x7713, - 9167: 0x7714, - 9168: 0x7715, - 9169: 0x7716, - 9170: 0x7717, - 9171: 0x7718, - 9172: 0x771B, - 9173: 0x771C, - 9174: 0x771D, - 9175: 0x771E, - 9176: 0x7721, - 9177: 0x7723, - 9178: 0x7724, - 9179: 0x7725, - 9180: 0x7727, - 9181: 0x772A, - 9182: 0x772B, - 9183: 0x772C, - 9184: 0x772E, - 9185: 0x7730, - 9186: 0x7731, - 9187: 0x7732, - 9188: 0x7733, - 9189: 0x7734, - 9190: 0x7739, - 9191: 0x773B, - 9192: 0x773D, - 9193: 0x773E, - 9194: 0x773F, - 9195: 0x7742, - 9196: 0x7744, - 9197: 0x7745, - 9198: 0x7746, - 9199: 0x7748, - 9200: 0x7749, - 9201: 0x774A, - 9202: 0x774B, - 9203: 0x774C, - 9204: 0x774D, - 9205: 0x774E, - 9206: 0x774F, - 9207: 0x7752, - 9208: 0x7753, - 9209: 0x7754, - 9210: 0x7755, - 9211: 0x7756, - 9212: 0x7757, - 9213: 0x7758, - 9214: 0x7759, - 9215: 0x775C, - 9216: 0x8584, - 9217: 0x96F9, - 9218: 0x4FDD, - 9219: 0x5821, - 9220: 0x9971, - 9221: 0x5B9D, - 9222: 0x62B1, - 9223: 0x62A5, - 9224: 0x66B4, - 9225: 0x8C79, - 9226: 0x9C8D, - 9227: 0x7206, - 9228: 0x676F, - 9229: 0x7891, - 9230: 0x60B2, - 9231: 0x5351, - 9232: 0x5317, - 9233: 0x8F88, - 9234: 0x80CC, - 9235: 0x8D1D, - 9236: 0x94A1, - 9237: 0x500D, - 9238: 0x72C8, - 9239: 0x5907, - 9240: 0x60EB, - 9241: 0x7119, - 9242: 0x88AB, - 9243: 0x5954, - 9244: 0x82EF, - 9245: 0x672C, - 9246: 0x7B28, - 9247: 0x5D29, - 9248: 0x7EF7, - 9249: 0x752D, - 9250: 0x6CF5, - 9251: 0x8E66, - 9252: 0x8FF8, - 9253: 0x903C, - 9254: 0x9F3B, - 9255: 0x6BD4, - 9256: 0x9119, - 9257: 0x7B14, - 9258: 0x5F7C, - 9259: 0x78A7, - 9260: 0x84D6, - 9261: 0x853D, - 9262: 0x6BD5, - 9263: 0x6BD9, - 9264: 0x6BD6, - 9265: 0x5E01, - 9266: 0x5E87, - 9267: 0x75F9, - 9268: 0x95ED, - 9269: 0x655D, - 9270: 0x5F0A, - 9271: 0x5FC5, - 9272: 0x8F9F, - 9273: 0x58C1, - 9274: 0x81C2, - 9275: 0x907F, - 9276: 0x965B, - 9277: 0x97AD, - 9278: 0x8FB9, - 9279: 0x7F16, - 9280: 0x8D2C, - 9281: 0x6241, - 9282: 0x4FBF, - 9283: 0x53D8, - 9284: 0x535E, - 9285: 0x8FA8, - 9286: 0x8FA9, - 9287: 0x8FAB, - 9288: 0x904D, - 9289: 0x6807, - 9290: 0x5F6A, - 9291: 0x8198, - 9292: 0x8868, - 9293: 0x9CD6, - 9294: 0x618B, - 9295: 0x522B, - 9296: 0x762A, - 9297: 0x5F6C, - 9298: 0x658C, - 9299: 0x6FD2, - 9300: 0x6EE8, - 9301: 0x5BBE, - 9302: 0x6448, - 9303: 0x5175, - 9304: 0x51B0, - 9305: 0x67C4, - 9306: 0x4E19, - 9307: 0x79C9, - 9308: 0x997C, - 9309: 0x70B3, - 9310: 0x775D, - 9311: 0x775E, - 9312: 0x775F, - 9313: 0x7760, - 9314: 0x7764, - 9315: 0x7767, - 9316: 0x7769, - 9317: 0x776A, - 9318: 0x776D, - 9319: 0x776E, - 9320: 0x776F, - 9321: 0x7770, - 9322: 0x7771, - 9323: 0x7772, - 9324: 0x7773, - 9325: 0x7774, - 9326: 0x7775, - 9327: 0x7776, - 9328: 0x7777, - 9329: 0x7778, - 9330: 0x777A, - 9331: 0x777B, - 9332: 0x777C, - 9333: 0x7781, - 9334: 0x7782, - 9335: 0x7783, - 9336: 0x7786, - 9337: 0x7787, - 9338: 0x7788, - 9339: 0x7789, - 9340: 0x778A, - 9341: 0x778B, - 9342: 0x778F, - 9343: 0x7790, - 9344: 0x7793, - 9345: 0x7794, - 9346: 0x7795, - 9347: 0x7796, - 9348: 0x7797, - 9349: 0x7798, - 9350: 0x7799, - 9351: 0x779A, - 9352: 0x779B, - 9353: 0x779C, - 9354: 0x779D, - 9355: 0x779E, - 9356: 0x77A1, - 9357: 0x77A3, - 9358: 0x77A4, - 9359: 0x77A6, - 9360: 0x77A8, - 9361: 0x77AB, - 9362: 0x77AD, - 9363: 0x77AE, - 9364: 0x77AF, - 9365: 0x77B1, - 9366: 0x77B2, - 9367: 0x77B4, - 9368: 0x77B6, - 9369: 0x77B7, - 9370: 0x77B8, - 9371: 0x77B9, - 9372: 0x77BA, - 9373: 0x77BC, - 9374: 0x77BE, - 9375: 0x77C0, - 9376: 0x77C1, - 9377: 0x77C2, - 9378: 0x77C3, - 9379: 0x77C4, - 9380: 0x77C5, - 9381: 0x77C6, - 9382: 0x77C7, - 9383: 0x77C8, - 9384: 0x77C9, - 9385: 0x77CA, - 9386: 0x77CB, - 9387: 0x77CC, - 9388: 0x77CE, - 9389: 0x77CF, - 9390: 0x77D0, - 9391: 0x77D1, - 9392: 0x77D2, - 9393: 0x77D3, - 9394: 0x77D4, - 9395: 0x77D5, - 9396: 0x77D6, - 9397: 0x77D8, - 9398: 0x77D9, - 9399: 0x77DA, - 9400: 0x77DD, - 9401: 0x77DE, - 9402: 0x77DF, - 9403: 0x77E0, - 9404: 0x77E1, - 9405: 0x77E4, - 9406: 0x75C5, - 9407: 0x5E76, - 9408: 0x73BB, - 9409: 0x83E0, - 9410: 0x64AD, - 9411: 0x62E8, - 9412: 0x94B5, - 9413: 0x6CE2, - 9414: 0x535A, - 9415: 0x52C3, - 9416: 0x640F, - 9417: 0x94C2, - 9418: 0x7B94, - 9419: 0x4F2F, - 9420: 0x5E1B, - 9421: 0x8236, - 9422: 0x8116, - 9423: 0x818A, - 9424: 0x6E24, - 9425: 0x6CCA, - 9426: 0x9A73, - 9427: 0x6355, - 9428: 0x535C, - 9429: 0x54FA, - 9430: 0x8865, - 9431: 0x57E0, - 9432: 0x4E0D, - 9433: 0x5E03, - 9434: 0x6B65, - 9435: 0x7C3F, - 9436: 0x90E8, - 9437: 0x6016, - 9438: 0x64E6, - 9439: 0x731C, - 9440: 0x88C1, - 9441: 0x6750, - 9442: 0x624D, - 9443: 0x8D22, - 9444: 0x776C, - 9445: 0x8E29, - 9446: 0x91C7, - 9447: 0x5F69, - 9448: 0x83DC, - 9449: 0x8521, - 9450: 0x9910, - 9451: 0x53C2, - 9452: 0x8695, - 9453: 0x6B8B, - 9454: 0x60ED, - 9455: 0x60E8, - 9456: 0x707F, - 9457: 0x82CD, - 9458: 0x8231, - 9459: 0x4ED3, - 9460: 0x6CA7, - 9461: 0x85CF, - 9462: 0x64CD, - 9463: 0x7CD9, - 9464: 0x69FD, - 9465: 0x66F9, - 9466: 0x8349, - 9467: 0x5395, - 9468: 0x7B56, - 9469: 0x4FA7, - 9470: 0x518C, - 9471: 0x6D4B, - 9472: 0x5C42, - 9473: 0x8E6D, - 9474: 0x63D2, - 9475: 0x53C9, - 9476: 0x832C, - 9477: 0x8336, - 9478: 0x67E5, - 9479: 0x78B4, - 9480: 0x643D, - 9481: 0x5BDF, - 9482: 0x5C94, - 9483: 0x5DEE, - 9484: 0x8BE7, - 9485: 0x62C6, - 9486: 0x67F4, - 9487: 0x8C7A, - 9488: 0x6400, - 9489: 0x63BA, - 9490: 0x8749, - 9491: 0x998B, - 9492: 0x8C17, - 9493: 0x7F20, - 9494: 0x94F2, - 9495: 0x4EA7, - 9496: 0x9610, - 9497: 0x98A4, - 9498: 0x660C, - 9499: 0x7316, - 9500: 0x77E6, - 9501: 0x77E8, - 9502: 0x77EA, - 9503: 0x77EF, - 9504: 0x77F0, - 9505: 0x77F1, - 9506: 0x77F2, - 9507: 0x77F4, - 9508: 0x77F5, - 9509: 0x77F7, - 9510: 0x77F9, - 9511: 0x77FA, - 9512: 0x77FB, - 9513: 0x77FC, - 9514: 0x7803, - 9515: 0x7804, - 9516: 0x7805, - 9517: 0x7806, - 9518: 0x7807, - 9519: 0x7808, - 9520: 0x780A, - 9521: 0x780B, - 9522: 0x780E, - 9523: 0x780F, - 9524: 0x7810, - 9525: 0x7813, - 9526: 0x7815, - 9527: 0x7819, - 9528: 0x781B, - 9529: 0x781E, - 9530: 0x7820, - 9531: 0x7821, - 9532: 0x7822, - 9533: 0x7824, - 9534: 0x7828, - 9535: 0x782A, - 9536: 0x782B, - 9537: 0x782E, - 9538: 0x782F, - 9539: 0x7831, - 9540: 0x7832, - 9541: 0x7833, - 9542: 0x7835, - 9543: 0x7836, - 9544: 0x783D, - 9545: 0x783F, - 9546: 0x7841, - 9547: 0x7842, - 9548: 0x7843, - 9549: 0x7844, - 9550: 0x7846, - 9551: 0x7848, - 9552: 0x7849, - 9553: 0x784A, - 9554: 0x784B, - 9555: 0x784D, - 9556: 0x784F, - 9557: 0x7851, - 9558: 0x7853, - 9559: 0x7854, - 9560: 0x7858, - 9561: 0x7859, - 9562: 0x785A, - 9563: 0x785B, - 9564: 0x785C, - 9565: 0x785E, - 9566: 0x785F, - 9567: 0x7860, - 9568: 0x7861, - 9569: 0x7862, - 9570: 0x7863, - 9571: 0x7864, - 9572: 0x7865, - 9573: 0x7866, - 9574: 0x7867, - 9575: 0x7868, - 9576: 0x7869, - 9577: 0x786F, - 9578: 0x7870, - 9579: 0x7871, - 9580: 0x7872, - 9581: 0x7873, - 9582: 0x7874, - 9583: 0x7875, - 9584: 0x7876, - 9585: 0x7878, - 9586: 0x7879, - 9587: 0x787A, - 9588: 0x787B, - 9589: 0x787D, - 9590: 0x787E, - 9591: 0x787F, - 9592: 0x7880, - 9593: 0x7881, - 9594: 0x7882, - 9595: 0x7883, - 9596: 0x573A, - 9597: 0x5C1D, - 9598: 0x5E38, - 9599: 0x957F, - 9600: 0x507F, - 9601: 0x80A0, - 9602: 0x5382, - 9603: 0x655E, - 9604: 0x7545, - 9605: 0x5531, - 9606: 0x5021, - 9607: 0x8D85, - 9608: 0x6284, - 9609: 0x949E, - 9610: 0x671D, - 9611: 0x5632, - 9612: 0x6F6E, - 9613: 0x5DE2, - 9614: 0x5435, - 9615: 0x7092, - 9616: 0x8F66, - 9617: 0x626F, - 9618: 0x64A4, - 9619: 0x63A3, - 9620: 0x5F7B, - 9621: 0x6F88, - 9622: 0x90F4, - 9623: 0x81E3, - 9624: 0x8FB0, - 9625: 0x5C18, - 9626: 0x6668, - 9627: 0x5FF1, - 9628: 0x6C89, - 9629: 0x9648, - 9630: 0x8D81, - 9631: 0x886C, - 9632: 0x6491, - 9633: 0x79F0, - 9634: 0x57CE, - 9635: 0x6A59, - 9636: 0x6210, - 9637: 0x5448, - 9638: 0x4E58, - 9639: 0x7A0B, - 9640: 0x60E9, - 9641: 0x6F84, - 9642: 0x8BDA, - 9643: 0x627F, - 9644: 0x901E, - 9645: 0x9A8B, - 9646: 0x79E4, - 9647: 0x5403, - 9648: 0x75F4, - 9649: 0x6301, - 9650: 0x5319, - 9651: 0x6C60, - 9652: 0x8FDF, - 9653: 0x5F1B, - 9654: 0x9A70, - 9655: 0x803B, - 9656: 0x9F7F, - 9657: 0x4F88, - 9658: 0x5C3A, - 9659: 0x8D64, - 9660: 0x7FC5, - 9661: 0x65A5, - 9662: 0x70BD, - 9663: 0x5145, - 9664: 0x51B2, - 9665: 0x866B, - 9666: 0x5D07, - 9667: 0x5BA0, - 9668: 0x62BD, - 9669: 0x916C, - 9670: 0x7574, - 9671: 0x8E0C, - 9672: 0x7A20, - 9673: 0x6101, - 9674: 0x7B79, - 9675: 0x4EC7, - 9676: 0x7EF8, - 9677: 0x7785, - 9678: 0x4E11, - 9679: 0x81ED, - 9680: 0x521D, - 9681: 0x51FA, - 9682: 0x6A71, - 9683: 0x53A8, - 9684: 0x8E87, - 9685: 0x9504, - 9686: 0x96CF, - 9687: 0x6EC1, - 9688: 0x9664, - 9689: 0x695A, - 9690: 0x7884, - 9691: 0x7885, - 9692: 0x7886, - 9693: 0x7888, - 9694: 0x788A, - 9695: 0x788B, - 9696: 0x788F, - 9697: 0x7890, - 9698: 0x7892, - 9699: 0x7894, - 9700: 0x7895, - 9701: 0x7896, - 9702: 0x7899, - 9703: 0x789D, - 9704: 0x789E, - 9705: 0x78A0, - 9706: 0x78A2, - 9707: 0x78A4, - 9708: 0x78A6, - 9709: 0x78A8, - 9710: 0x78A9, - 9711: 0x78AA, - 9712: 0x78AB, - 9713: 0x78AC, - 9714: 0x78AD, - 9715: 0x78AE, - 9716: 0x78AF, - 9717: 0x78B5, - 9718: 0x78B6, - 9719: 0x78B7, - 9720: 0x78B8, - 9721: 0x78BA, - 9722: 0x78BB, - 9723: 0x78BC, - 9724: 0x78BD, - 9725: 0x78BF, - 9726: 0x78C0, - 9727: 0x78C2, - 9728: 0x78C3, - 9729: 0x78C4, - 9730: 0x78C6, - 9731: 0x78C7, - 9732: 0x78C8, - 9733: 0x78CC, - 9734: 0x78CD, - 9735: 0x78CE, - 9736: 0x78CF, - 9737: 0x78D1, - 9738: 0x78D2, - 9739: 0x78D3, - 9740: 0x78D6, - 9741: 0x78D7, - 9742: 0x78D8, - 9743: 0x78DA, - 9744: 0x78DB, - 9745: 0x78DC, - 9746: 0x78DD, - 9747: 0x78DE, - 9748: 0x78DF, - 9749: 0x78E0, - 9750: 0x78E1, - 9751: 0x78E2, - 9752: 0x78E3, - 9753: 0x78E4, - 9754: 0x78E5, - 9755: 0x78E6, - 9756: 0x78E7, - 9757: 0x78E9, - 9758: 0x78EA, - 9759: 0x78EB, - 9760: 0x78ED, - 9761: 0x78EE, - 9762: 0x78EF, - 9763: 0x78F0, - 9764: 0x78F1, - 9765: 0x78F3, - 9766: 0x78F5, - 9767: 0x78F6, - 9768: 0x78F8, - 9769: 0x78F9, - 9770: 0x78FB, - 9771: 0x78FC, - 9772: 0x78FD, - 9773: 0x78FE, - 9774: 0x78FF, - 9775: 0x7900, - 9776: 0x7902, - 9777: 0x7903, - 9778: 0x7904, - 9779: 0x7906, - 9780: 0x7907, - 9781: 0x7908, - 9782: 0x7909, - 9783: 0x790A, - 9784: 0x790B, - 9785: 0x790C, - 9786: 0x7840, - 9787: 0x50A8, - 9788: 0x77D7, - 9789: 0x6410, - 9790: 0x89E6, - 9791: 0x5904, - 9792: 0x63E3, - 9793: 0x5DDD, - 9794: 0x7A7F, - 9795: 0x693D, - 9796: 0x4F20, - 9797: 0x8239, - 9798: 0x5598, - 9799: 0x4E32, - 9800: 0x75AE, - 9801: 0x7A97, - 9802: 0x5E62, - 9803: 0x5E8A, - 9804: 0x95EF, - 9805: 0x521B, - 9806: 0x5439, - 9807: 0x708A, - 9808: 0x6376, - 9809: 0x9524, - 9810: 0x5782, - 9811: 0x6625, - 9812: 0x693F, - 9813: 0x9187, - 9814: 0x5507, - 9815: 0x6DF3, - 9816: 0x7EAF, - 9817: 0x8822, - 9818: 0x6233, - 9819: 0x7EF0, - 9820: 0x75B5, - 9821: 0x8328, - 9822: 0x78C1, - 9823: 0x96CC, - 9824: 0x8F9E, - 9825: 0x6148, - 9826: 0x74F7, - 9827: 0x8BCD, - 9828: 0x6B64, - 9829: 0x523A, - 9830: 0x8D50, - 9831: 0x6B21, - 9832: 0x806A, - 9833: 0x8471, - 9834: 0x56F1, - 9835: 0x5306, - 9836: 0x4ECE, - 9837: 0x4E1B, - 9838: 0x51D1, - 9839: 0x7C97, - 9840: 0x918B, - 9841: 0x7C07, - 9842: 0x4FC3, - 9843: 0x8E7F, - 9844: 0x7BE1, - 9845: 0x7A9C, - 9846: 0x6467, - 9847: 0x5D14, - 9848: 0x50AC, - 9849: 0x8106, - 9850: 0x7601, - 9851: 0x7CB9, - 9852: 0x6DEC, - 9853: 0x7FE0, - 9854: 0x6751, - 9855: 0x5B58, - 9856: 0x5BF8, - 9857: 0x78CB, - 9858: 0x64AE, - 9859: 0x6413, - 9860: 0x63AA, - 9861: 0x632B, - 9862: 0x9519, - 9863: 0x642D, - 9864: 0x8FBE, - 9865: 0x7B54, - 9866: 0x7629, - 9867: 0x6253, - 9868: 0x5927, - 9869: 0x5446, - 9870: 0x6B79, - 9871: 0x50A3, - 9872: 0x6234, - 9873: 0x5E26, - 9874: 0x6B86, - 9875: 0x4EE3, - 9876: 0x8D37, - 9877: 0x888B, - 9878: 0x5F85, - 9879: 0x902E, - 9880: 0x790D, - 9881: 0x790E, - 9882: 0x790F, - 9883: 0x7910, - 9884: 0x7911, - 9885: 0x7912, - 9886: 0x7914, - 9887: 0x7915, - 9888: 0x7916, - 9889: 0x7917, - 9890: 0x7918, - 9891: 0x7919, - 9892: 0x791A, - 9893: 0x791B, - 9894: 0x791C, - 9895: 0x791D, - 9896: 0x791F, - 9897: 0x7920, - 9898: 0x7921, - 9899: 0x7922, - 9900: 0x7923, - 9901: 0x7925, - 9902: 0x7926, - 9903: 0x7927, - 9904: 0x7928, - 9905: 0x7929, - 9906: 0x792A, - 9907: 0x792B, - 9908: 0x792C, - 9909: 0x792D, - 9910: 0x792E, - 9911: 0x792F, - 9912: 0x7930, - 9913: 0x7931, - 9914: 0x7932, - 9915: 0x7933, - 9916: 0x7935, - 9917: 0x7936, - 9918: 0x7937, - 9919: 0x7938, - 9920: 0x7939, - 9921: 0x793D, - 9922: 0x793F, - 9923: 0x7942, - 9924: 0x7943, - 9925: 0x7944, - 9926: 0x7945, - 9927: 0x7947, - 9928: 0x794A, - 9929: 0x794B, - 9930: 0x794C, - 9931: 0x794D, - 9932: 0x794E, - 9933: 0x794F, - 9934: 0x7950, - 9935: 0x7951, - 9936: 0x7952, - 9937: 0x7954, - 9938: 0x7955, - 9939: 0x7958, - 9940: 0x7959, - 9941: 0x7961, - 9942: 0x7963, - 9943: 0x7964, - 9944: 0x7966, - 9945: 0x7969, - 9946: 0x796A, - 9947: 0x796B, - 9948: 0x796C, - 9949: 0x796E, - 9950: 0x7970, - 9951: 0x7971, - 9952: 0x7972, - 9953: 0x7973, - 9954: 0x7974, - 9955: 0x7975, - 9956: 0x7976, - 9957: 0x7979, - 9958: 0x797B, - 9959: 0x797C, - 9960: 0x797D, - 9961: 0x797E, - 9962: 0x797F, - 9963: 0x7982, - 9964: 0x7983, - 9965: 0x7986, - 9966: 0x7987, - 9967: 0x7988, - 9968: 0x7989, - 9969: 0x798B, - 9970: 0x798C, - 9971: 0x798D, - 9972: 0x798E, - 9973: 0x7990, - 9974: 0x7991, - 9975: 0x7992, - 9976: 0x6020, - 9977: 0x803D, - 9978: 0x62C5, - 9979: 0x4E39, - 9980: 0x5355, - 9981: 0x90F8, - 9982: 0x63B8, - 9983: 0x80C6, - 9984: 0x65E6, - 9985: 0x6C2E, - 9986: 0x4F46, - 9987: 0x60EE, - 9988: 0x6DE1, - 9989: 0x8BDE, - 9990: 0x5F39, - 9991: 0x86CB, - 9992: 0x5F53, - 9993: 0x6321, - 9994: 0x515A, - 9995: 0x8361, - 9996: 0x6863, - 9997: 0x5200, - 9998: 0x6363, - 9999: 0x8E48, - 10000: 0x5012, - 10001: 0x5C9B, - 10002: 0x7977, - 10003: 0x5BFC, - 10004: 0x5230, - 10005: 0x7A3B, - 10006: 0x60BC, - 10007: 0x9053, - 10008: 0x76D7, - 10009: 0x5FB7, - 10010: 0x5F97, - 10011: 0x7684, - 10012: 0x8E6C, - 10013: 0x706F, - 10014: 0x767B, - 10015: 0x7B49, - 10016: 0x77AA, - 10017: 0x51F3, - 10018: 0x9093, - 10019: 0x5824, - 10020: 0x4F4E, - 10021: 0x6EF4, - 10022: 0x8FEA, - 10023: 0x654C, - 10024: 0x7B1B, - 10025: 0x72C4, - 10026: 0x6DA4, - 10027: 0x7FDF, - 10028: 0x5AE1, - 10029: 0x62B5, - 10030: 0x5E95, - 10031: 0x5730, - 10032: 0x8482, - 10033: 0x7B2C, - 10034: 0x5E1D, - 10035: 0x5F1F, - 10036: 0x9012, - 10037: 0x7F14, - 10038: 0x98A0, - 10039: 0x6382, - 10040: 0x6EC7, - 10041: 0x7898, - 10042: 0x70B9, - 10043: 0x5178, - 10044: 0x975B, - 10045: 0x57AB, - 10046: 0x7535, - 10047: 0x4F43, - 10048: 0x7538, - 10049: 0x5E97, - 10050: 0x60E6, - 10051: 0x5960, - 10052: 0x6DC0, - 10053: 0x6BBF, - 10054: 0x7889, - 10055: 0x53FC, - 10056: 0x96D5, - 10057: 0x51CB, - 10058: 0x5201, - 10059: 0x6389, - 10060: 0x540A, - 10061: 0x9493, - 10062: 0x8C03, - 10063: 0x8DCC, - 10064: 0x7239, - 10065: 0x789F, - 10066: 0x8776, - 10067: 0x8FED, - 10068: 0x8C0D, - 10069: 0x53E0, - 10070: 0x7993, - 10071: 0x7994, - 10072: 0x7995, - 10073: 0x7996, - 10074: 0x7997, - 10075: 0x7998, - 10076: 0x7999, - 10077: 0x799B, - 10078: 0x799C, - 10079: 0x799D, - 10080: 0x799E, - 10081: 0x799F, - 10082: 0x79A0, - 10083: 0x79A1, - 10084: 0x79A2, - 10085: 0x79A3, - 10086: 0x79A4, - 10087: 0x79A5, - 10088: 0x79A6, - 10089: 0x79A8, - 10090: 0x79A9, - 10091: 0x79AA, - 10092: 0x79AB, - 10093: 0x79AC, - 10094: 0x79AD, - 10095: 0x79AE, - 10096: 0x79AF, - 10097: 0x79B0, - 10098: 0x79B1, - 10099: 0x79B2, - 10100: 0x79B4, - 10101: 0x79B5, - 10102: 0x79B6, - 10103: 0x79B7, - 10104: 0x79B8, - 10105: 0x79BC, - 10106: 0x79BF, - 10107: 0x79C2, - 10108: 0x79C4, - 10109: 0x79C5, - 10110: 0x79C7, - 10111: 0x79C8, - 10112: 0x79CA, - 10113: 0x79CC, - 10114: 0x79CE, - 10115: 0x79CF, - 10116: 0x79D0, - 10117: 0x79D3, - 10118: 0x79D4, - 10119: 0x79D6, - 10120: 0x79D7, - 10121: 0x79D9, - 10122: 0x79DA, - 10123: 0x79DB, - 10124: 0x79DC, - 10125: 0x79DD, - 10126: 0x79DE, - 10127: 0x79E0, - 10128: 0x79E1, - 10129: 0x79E2, - 10130: 0x79E5, - 10131: 0x79E8, - 10132: 0x79EA, - 10133: 0x79EC, - 10134: 0x79EE, - 10135: 0x79F1, - 10136: 0x79F2, - 10137: 0x79F3, - 10138: 0x79F4, - 10139: 0x79F5, - 10140: 0x79F6, - 10141: 0x79F7, - 10142: 0x79F9, - 10143: 0x79FA, - 10144: 0x79FC, - 10145: 0x79FE, - 10146: 0x79FF, - 10147: 0x7A01, - 10148: 0x7A04, - 10149: 0x7A05, - 10150: 0x7A07, - 10151: 0x7A08, - 10152: 0x7A09, - 10153: 0x7A0A, - 10154: 0x7A0C, - 10155: 0x7A0F, - 10156: 0x7A10, - 10157: 0x7A11, - 10158: 0x7A12, - 10159: 0x7A13, - 10160: 0x7A15, - 10161: 0x7A16, - 10162: 0x7A18, - 10163: 0x7A19, - 10164: 0x7A1B, - 10165: 0x7A1C, - 10166: 0x4E01, - 10167: 0x76EF, - 10168: 0x53EE, - 10169: 0x9489, - 10170: 0x9876, - 10171: 0x9F0E, - 10172: 0x952D, - 10173: 0x5B9A, - 10174: 0x8BA2, - 10175: 0x4E22, - 10176: 0x4E1C, - 10177: 0x51AC, - 10178: 0x8463, - 10179: 0x61C2, - 10180: 0x52A8, - 10181: 0x680B, - 10182: 0x4F97, - 10183: 0x606B, - 10184: 0x51BB, - 10185: 0x6D1E, - 10186: 0x515C, - 10187: 0x6296, - 10188: 0x6597, - 10189: 0x9661, - 10190: 0x8C46, - 10191: 0x9017, - 10192: 0x75D8, - 10193: 0x90FD, - 10194: 0x7763, - 10195: 0x6BD2, - 10196: 0x728A, - 10197: 0x72EC, - 10198: 0x8BFB, - 10199: 0x5835, - 10200: 0x7779, - 10201: 0x8D4C, - 10202: 0x675C, - 10203: 0x9540, - 10204: 0x809A, - 10205: 0x5EA6, - 10206: 0x6E21, - 10207: 0x5992, - 10208: 0x7AEF, - 10209: 0x77ED, - 10210: 0x953B, - 10211: 0x6BB5, - 10212: 0x65AD, - 10213: 0x7F0E, - 10214: 0x5806, - 10215: 0x5151, - 10216: 0x961F, - 10217: 0x5BF9, - 10218: 0x58A9, - 10219: 0x5428, - 10220: 0x8E72, - 10221: 0x6566, - 10222: 0x987F, - 10223: 0x56E4, - 10224: 0x949D, - 10225: 0x76FE, - 10226: 0x9041, - 10227: 0x6387, - 10228: 0x54C6, - 10229: 0x591A, - 10230: 0x593A, - 10231: 0x579B, - 10232: 0x8EB2, - 10233: 0x6735, - 10234: 0x8DFA, - 10235: 0x8235, - 10236: 0x5241, - 10237: 0x60F0, - 10238: 0x5815, - 10239: 0x86FE, - 10240: 0x5CE8, - 10241: 0x9E45, - 10242: 0x4FC4, - 10243: 0x989D, - 10244: 0x8BB9, - 10245: 0x5A25, - 10246: 0x6076, - 10247: 0x5384, - 10248: 0x627C, - 10249: 0x904F, - 10250: 0x9102, - 10251: 0x997F, - 10252: 0x6069, - 10253: 0x800C, - 10254: 0x513F, - 10255: 0x8033, - 10256: 0x5C14, - 10257: 0x9975, - 10258: 0x6D31, - 10259: 0x4E8C, - 10260: 0x7A1D, - 10261: 0x7A1F, - 10262: 0x7A21, - 10263: 0x7A22, - 10264: 0x7A24, - 10265: 0x7A25, - 10266: 0x7A26, - 10267: 0x7A27, - 10268: 0x7A28, - 10269: 0x7A29, - 10270: 0x7A2A, - 10271: 0x7A2B, - 10272: 0x7A2C, - 10273: 0x7A2D, - 10274: 0x7A2E, - 10275: 0x7A2F, - 10276: 0x7A30, - 10277: 0x7A31, - 10278: 0x7A32, - 10279: 0x7A34, - 10280: 0x7A35, - 10281: 0x7A36, - 10282: 0x7A38, - 10283: 0x7A3A, - 10284: 0x7A3E, - 10285: 0x7A40, - 10286: 0x7A41, - 10287: 0x7A42, - 10288: 0x7A43, - 10289: 0x7A44, - 10290: 0x7A45, - 10291: 0x7A47, - 10292: 0x7A48, - 10293: 0x7A49, - 10294: 0x7A4A, - 10295: 0x7A4B, - 10296: 0x7A4C, - 10297: 0x7A4D, - 10298: 0x7A4E, - 10299: 0x7A4F, - 10300: 0x7A50, - 10301: 0x7A52, - 10302: 0x7A53, - 10303: 0x7A54, - 10304: 0x7A55, - 10305: 0x7A56, - 10306: 0x7A58, - 10307: 0x7A59, - 10308: 0x7A5A, - 10309: 0x7A5B, - 10310: 0x7A5C, - 10311: 0x7A5D, - 10312: 0x7A5E, - 10313: 0x7A5F, - 10314: 0x7A60, - 10315: 0x7A61, - 10316: 0x7A62, - 10317: 0x7A63, - 10318: 0x7A64, - 10319: 0x7A65, - 10320: 0x7A66, - 10321: 0x7A67, - 10322: 0x7A68, - 10323: 0x7A69, - 10324: 0x7A6A, - 10325: 0x7A6B, - 10326: 0x7A6C, - 10327: 0x7A6D, - 10328: 0x7A6E, - 10329: 0x7A6F, - 10330: 0x7A71, - 10331: 0x7A72, - 10332: 0x7A73, - 10333: 0x7A75, - 10334: 0x7A7B, - 10335: 0x7A7C, - 10336: 0x7A7D, - 10337: 0x7A7E, - 10338: 0x7A82, - 10339: 0x7A85, - 10340: 0x7A87, - 10341: 0x7A89, - 10342: 0x7A8A, - 10343: 0x7A8B, - 10344: 0x7A8C, - 10345: 0x7A8E, - 10346: 0x7A8F, - 10347: 0x7A90, - 10348: 0x7A93, - 10349: 0x7A94, - 10350: 0x7A99, - 10351: 0x7A9A, - 10352: 0x7A9B, - 10353: 0x7A9E, - 10354: 0x7AA1, - 10355: 0x7AA2, - 10356: 0x8D30, - 10357: 0x53D1, - 10358: 0x7F5A, - 10359: 0x7B4F, - 10360: 0x4F10, - 10361: 0x4E4F, - 10362: 0x9600, - 10363: 0x6CD5, - 10364: 0x73D0, - 10365: 0x85E9, - 10366: 0x5E06, - 10367: 0x756A, - 10368: 0x7FFB, - 10369: 0x6A0A, - 10370: 0x77FE, - 10371: 0x9492, - 10372: 0x7E41, - 10373: 0x51E1, - 10374: 0x70E6, - 10375: 0x53CD, - 10376: 0x8FD4, - 10377: 0x8303, - 10378: 0x8D29, - 10379: 0x72AF, - 10380: 0x996D, - 10381: 0x6CDB, - 10382: 0x574A, - 10383: 0x82B3, - 10384: 0x65B9, - 10385: 0x80AA, - 10386: 0x623F, - 10387: 0x9632, - 10388: 0x59A8, - 10389: 0x4EFF, - 10390: 0x8BBF, - 10391: 0x7EBA, - 10392: 0x653E, - 10393: 0x83F2, - 10394: 0x975E, - 10395: 0x5561, - 10396: 0x98DE, - 10397: 0x80A5, - 10398: 0x532A, - 10399: 0x8BFD, - 10400: 0x5420, - 10401: 0x80BA, - 10402: 0x5E9F, - 10403: 0x6CB8, - 10404: 0x8D39, - 10405: 0x82AC, - 10406: 0x915A, - 10407: 0x5429, - 10408: 0x6C1B, - 10409: 0x5206, - 10410: 0x7EB7, - 10411: 0x575F, - 10412: 0x711A, - 10413: 0x6C7E, - 10414: 0x7C89, - 10415: 0x594B, - 10416: 0x4EFD, - 10417: 0x5FFF, - 10418: 0x6124, - 10419: 0x7CAA, - 10420: 0x4E30, - 10421: 0x5C01, - 10422: 0x67AB, - 10423: 0x8702, - 10424: 0x5CF0, - 10425: 0x950B, - 10426: 0x98CE, - 10427: 0x75AF, - 10428: 0x70FD, - 10429: 0x9022, - 10430: 0x51AF, - 10431: 0x7F1D, - 10432: 0x8BBD, - 10433: 0x5949, - 10434: 0x51E4, - 10435: 0x4F5B, - 10436: 0x5426, - 10437: 0x592B, - 10438: 0x6577, - 10439: 0x80A4, - 10440: 0x5B75, - 10441: 0x6276, - 10442: 0x62C2, - 10443: 0x8F90, - 10444: 0x5E45, - 10445: 0x6C1F, - 10446: 0x7B26, - 10447: 0x4F0F, - 10448: 0x4FD8, - 10449: 0x670D, - 10450: 0x7AA3, - 10451: 0x7AA4, - 10452: 0x7AA7, - 10453: 0x7AA9, - 10454: 0x7AAA, - 10455: 0x7AAB, - 10456: 0x7AAE, - 10457: 0x7AAF, - 10458: 0x7AB0, - 10459: 0x7AB1, - 10460: 0x7AB2, - 10461: 0x7AB4, - 10462: 0x7AB5, - 10463: 0x7AB6, - 10464: 0x7AB7, - 10465: 0x7AB8, - 10466: 0x7AB9, - 10467: 0x7ABA, - 10468: 0x7ABB, - 10469: 0x7ABC, - 10470: 0x7ABD, - 10471: 0x7ABE, - 10472: 0x7AC0, - 10473: 0x7AC1, - 10474: 0x7AC2, - 10475: 0x7AC3, - 10476: 0x7AC4, - 10477: 0x7AC5, - 10478: 0x7AC6, - 10479: 0x7AC7, - 10480: 0x7AC8, - 10481: 0x7AC9, - 10482: 0x7ACA, - 10483: 0x7ACC, - 10484: 0x7ACD, - 10485: 0x7ACE, - 10486: 0x7ACF, - 10487: 0x7AD0, - 10488: 0x7AD1, - 10489: 0x7AD2, - 10490: 0x7AD3, - 10491: 0x7AD4, - 10492: 0x7AD5, - 10493: 0x7AD7, - 10494: 0x7AD8, - 10495: 0x7ADA, - 10496: 0x7ADB, - 10497: 0x7ADC, - 10498: 0x7ADD, - 10499: 0x7AE1, - 10500: 0x7AE2, - 10501: 0x7AE4, - 10502: 0x7AE7, - 10503: 0x7AE8, - 10504: 0x7AE9, - 10505: 0x7AEA, - 10506: 0x7AEB, - 10507: 0x7AEC, - 10508: 0x7AEE, - 10509: 0x7AF0, - 10510: 0x7AF1, - 10511: 0x7AF2, - 10512: 0x7AF3, - 10513: 0x7AF4, - 10514: 0x7AF5, - 10515: 0x7AF6, - 10516: 0x7AF7, - 10517: 0x7AF8, - 10518: 0x7AFB, - 10519: 0x7AFC, - 10520: 0x7AFE, - 10521: 0x7B00, - 10522: 0x7B01, - 10523: 0x7B02, - 10524: 0x7B05, - 10525: 0x7B07, - 10526: 0x7B09, - 10527: 0x7B0C, - 10528: 0x7B0D, - 10529: 0x7B0E, - 10530: 0x7B10, - 10531: 0x7B12, - 10532: 0x7B13, - 10533: 0x7B16, - 10534: 0x7B17, - 10535: 0x7B18, - 10536: 0x7B1A, - 10537: 0x7B1C, - 10538: 0x7B1D, - 10539: 0x7B1F, - 10540: 0x7B21, - 10541: 0x7B22, - 10542: 0x7B23, - 10543: 0x7B27, - 10544: 0x7B29, - 10545: 0x7B2D, - 10546: 0x6D6E, - 10547: 0x6DAA, - 10548: 0x798F, - 10549: 0x88B1, - 10550: 0x5F17, - 10551: 0x752B, - 10552: 0x629A, - 10553: 0x8F85, - 10554: 0x4FEF, - 10555: 0x91DC, - 10556: 0x65A7, - 10557: 0x812F, - 10558: 0x8151, - 10559: 0x5E9C, - 10560: 0x8150, - 10561: 0x8D74, - 10562: 0x526F, - 10563: 0x8986, - 10564: 0x8D4B, - 10565: 0x590D, - 10566: 0x5085, - 10567: 0x4ED8, - 10568: 0x961C, - 10569: 0x7236, - 10570: 0x8179, - 10571: 0x8D1F, - 10572: 0x5BCC, - 10573: 0x8BA3, - 10574: 0x9644, - 10575: 0x5987, - 10576: 0x7F1A, - 10577: 0x5490, - 10578: 0x5676, - 10579: 0x560E, - 10580: 0x8BE5, - 10581: 0x6539, - 10582: 0x6982, - 10583: 0x9499, - 10584: 0x76D6, - 10585: 0x6E89, - 10586: 0x5E72, - 10587: 0x7518, - 10588: 0x6746, - 10589: 0x67D1, - 10590: 0x7AFF, - 10591: 0x809D, - 10592: 0x8D76, - 10593: 0x611F, - 10594: 0x79C6, - 10595: 0x6562, - 10596: 0x8D63, - 10597: 0x5188, - 10598: 0x521A, - 10599: 0x94A2, - 10600: 0x7F38, - 10601: 0x809B, - 10602: 0x7EB2, - 10603: 0x5C97, - 10604: 0x6E2F, - 10605: 0x6760, - 10606: 0x7BD9, - 10607: 0x768B, - 10608: 0x9AD8, - 10609: 0x818F, - 10610: 0x7F94, - 10611: 0x7CD5, - 10612: 0x641E, - 10613: 0x9550, - 10614: 0x7A3F, - 10615: 0x544A, - 10616: 0x54E5, - 10617: 0x6B4C, - 10618: 0x6401, - 10619: 0x6208, - 10620: 0x9E3D, - 10621: 0x80F3, - 10622: 0x7599, - 10623: 0x5272, - 10624: 0x9769, - 10625: 0x845B, - 10626: 0x683C, - 10627: 0x86E4, - 10628: 0x9601, - 10629: 0x9694, - 10630: 0x94EC, - 10631: 0x4E2A, - 10632: 0x5404, - 10633: 0x7ED9, - 10634: 0x6839, - 10635: 0x8DDF, - 10636: 0x8015, - 10637: 0x66F4, - 10638: 0x5E9A, - 10639: 0x7FB9, - 10640: 0x7B2F, - 10641: 0x7B30, - 10642: 0x7B32, - 10643: 0x7B34, - 10644: 0x7B35, - 10645: 0x7B36, - 10646: 0x7B37, - 10647: 0x7B39, - 10648: 0x7B3B, - 10649: 0x7B3D, - 10650: 0x7B3F, - 10651: 0x7B40, - 10652: 0x7B41, - 10653: 0x7B42, - 10654: 0x7B43, - 10655: 0x7B44, - 10656: 0x7B46, - 10657: 0x7B48, - 10658: 0x7B4A, - 10659: 0x7B4D, - 10660: 0x7B4E, - 10661: 0x7B53, - 10662: 0x7B55, - 10663: 0x7B57, - 10664: 0x7B59, - 10665: 0x7B5C, - 10666: 0x7B5E, - 10667: 0x7B5F, - 10668: 0x7B61, - 10669: 0x7B63, - 10670: 0x7B64, - 10671: 0x7B65, - 10672: 0x7B66, - 10673: 0x7B67, - 10674: 0x7B68, - 10675: 0x7B69, - 10676: 0x7B6A, - 10677: 0x7B6B, - 10678: 0x7B6C, - 10679: 0x7B6D, - 10680: 0x7B6F, - 10681: 0x7B70, - 10682: 0x7B73, - 10683: 0x7B74, - 10684: 0x7B76, - 10685: 0x7B78, - 10686: 0x7B7A, - 10687: 0x7B7C, - 10688: 0x7B7D, - 10689: 0x7B7F, - 10690: 0x7B81, - 10691: 0x7B82, - 10692: 0x7B83, - 10693: 0x7B84, - 10694: 0x7B86, - 10695: 0x7B87, - 10696: 0x7B88, - 10697: 0x7B89, - 10698: 0x7B8A, - 10699: 0x7B8B, - 10700: 0x7B8C, - 10701: 0x7B8E, - 10702: 0x7B8F, - 10703: 0x7B91, - 10704: 0x7B92, - 10705: 0x7B93, - 10706: 0x7B96, - 10707: 0x7B98, - 10708: 0x7B99, - 10709: 0x7B9A, - 10710: 0x7B9B, - 10711: 0x7B9E, - 10712: 0x7B9F, - 10713: 0x7BA0, - 10714: 0x7BA3, - 10715: 0x7BA4, - 10716: 0x7BA5, - 10717: 0x7BAE, - 10718: 0x7BAF, - 10719: 0x7BB0, - 10720: 0x7BB2, - 10721: 0x7BB3, - 10722: 0x7BB5, - 10723: 0x7BB6, - 10724: 0x7BB7, - 10725: 0x7BB9, - 10726: 0x7BBA, - 10727: 0x7BBB, - 10728: 0x7BBC, - 10729: 0x7BBD, - 10730: 0x7BBE, - 10731: 0x7BBF, - 10732: 0x7BC0, - 10733: 0x7BC2, - 10734: 0x7BC3, - 10735: 0x7BC4, - 10736: 0x57C2, - 10737: 0x803F, - 10738: 0x6897, - 10739: 0x5DE5, - 10740: 0x653B, - 10741: 0x529F, - 10742: 0x606D, - 10743: 0x9F9A, - 10744: 0x4F9B, - 10745: 0x8EAC, - 10746: 0x516C, - 10747: 0x5BAB, - 10748: 0x5F13, - 10749: 0x5DE9, - 10750: 0x6C5E, - 10751: 0x62F1, - 10752: 0x8D21, - 10753: 0x5171, - 10754: 0x94A9, - 10755: 0x52FE, - 10756: 0x6C9F, - 10757: 0x82DF, - 10758: 0x72D7, - 10759: 0x57A2, - 10760: 0x6784, - 10761: 0x8D2D, - 10762: 0x591F, - 10763: 0x8F9C, - 10764: 0x83C7, - 10765: 0x5495, - 10766: 0x7B8D, - 10767: 0x4F30, - 10768: 0x6CBD, - 10769: 0x5B64, - 10770: 0x59D1, - 10771: 0x9F13, - 10772: 0x53E4, - 10773: 0x86CA, - 10774: 0x9AA8, - 10775: 0x8C37, - 10776: 0x80A1, - 10777: 0x6545, - 10778: 0x987E, - 10779: 0x56FA, - 10780: 0x96C7, - 10781: 0x522E, - 10782: 0x74DC, - 10783: 0x5250, - 10784: 0x5BE1, - 10785: 0x6302, - 10786: 0x8902, - 10787: 0x4E56, - 10788: 0x62D0, - 10789: 0x602A, - 10790: 0x68FA, - 10791: 0x5173, - 10792: 0x5B98, - 10793: 0x51A0, - 10794: 0x89C2, - 10795: 0x7BA1, - 10796: 0x9986, - 10797: 0x7F50, - 10798: 0x60EF, - 10799: 0x704C, - 10800: 0x8D2F, - 10801: 0x5149, - 10802: 0x5E7F, - 10803: 0x901B, - 10804: 0x7470, - 10805: 0x89C4, - 10806: 0x572D, - 10807: 0x7845, - 10808: 0x5F52, - 10809: 0x9F9F, - 10810: 0x95FA, - 10811: 0x8F68, - 10812: 0x9B3C, - 10813: 0x8BE1, - 10814: 0x7678, - 10815: 0x6842, - 10816: 0x67DC, - 10817: 0x8DEA, - 10818: 0x8D35, - 10819: 0x523D, - 10820: 0x8F8A, - 10821: 0x6EDA, - 10822: 0x68CD, - 10823: 0x9505, - 10824: 0x90ED, - 10825: 0x56FD, - 10826: 0x679C, - 10827: 0x88F9, - 10828: 0x8FC7, - 10829: 0x54C8, - 10830: 0x7BC5, - 10831: 0x7BC8, - 10832: 0x7BC9, - 10833: 0x7BCA, - 10834: 0x7BCB, - 10835: 0x7BCD, - 10836: 0x7BCE, - 10837: 0x7BCF, - 10838: 0x7BD0, - 10839: 0x7BD2, - 10840: 0x7BD4, - 10841: 0x7BD5, - 10842: 0x7BD6, - 10843: 0x7BD7, - 10844: 0x7BD8, - 10845: 0x7BDB, - 10846: 0x7BDC, - 10847: 0x7BDE, - 10848: 0x7BDF, - 10849: 0x7BE0, - 10850: 0x7BE2, - 10851: 0x7BE3, - 10852: 0x7BE4, - 10853: 0x7BE7, - 10854: 0x7BE8, - 10855: 0x7BE9, - 10856: 0x7BEB, - 10857: 0x7BEC, - 10858: 0x7BED, - 10859: 0x7BEF, - 10860: 0x7BF0, - 10861: 0x7BF2, - 10862: 0x7BF3, - 10863: 0x7BF4, - 10864: 0x7BF5, - 10865: 0x7BF6, - 10866: 0x7BF8, - 10867: 0x7BF9, - 10868: 0x7BFA, - 10869: 0x7BFB, - 10870: 0x7BFD, - 10871: 0x7BFF, - 10872: 0x7C00, - 10873: 0x7C01, - 10874: 0x7C02, - 10875: 0x7C03, - 10876: 0x7C04, - 10877: 0x7C05, - 10878: 0x7C06, - 10879: 0x7C08, - 10880: 0x7C09, - 10881: 0x7C0A, - 10882: 0x7C0D, - 10883: 0x7C0E, - 10884: 0x7C10, - 10885: 0x7C11, - 10886: 0x7C12, - 10887: 0x7C13, - 10888: 0x7C14, - 10889: 0x7C15, - 10890: 0x7C17, - 10891: 0x7C18, - 10892: 0x7C19, - 10893: 0x7C1A, - 10894: 0x7C1B, - 10895: 0x7C1C, - 10896: 0x7C1D, - 10897: 0x7C1E, - 10898: 0x7C20, - 10899: 0x7C21, - 10900: 0x7C22, - 10901: 0x7C23, - 10902: 0x7C24, - 10903: 0x7C25, - 10904: 0x7C28, - 10905: 0x7C29, - 10906: 0x7C2B, - 10907: 0x7C2C, - 10908: 0x7C2D, - 10909: 0x7C2E, - 10910: 0x7C2F, - 10911: 0x7C30, - 10912: 0x7C31, - 10913: 0x7C32, - 10914: 0x7C33, - 10915: 0x7C34, - 10916: 0x7C35, - 10917: 0x7C36, - 10918: 0x7C37, - 10919: 0x7C39, - 10920: 0x7C3A, - 10921: 0x7C3B, - 10922: 0x7C3C, - 10923: 0x7C3D, - 10924: 0x7C3E, - 10925: 0x7C42, - 10926: 0x9AB8, - 10927: 0x5B69, - 10928: 0x6D77, - 10929: 0x6C26, - 10930: 0x4EA5, - 10931: 0x5BB3, - 10932: 0x9A87, - 10933: 0x9163, - 10934: 0x61A8, - 10935: 0x90AF, - 10936: 0x97E9, - 10937: 0x542B, - 10938: 0x6DB5, - 10939: 0x5BD2, - 10940: 0x51FD, - 10941: 0x558A, - 10942: 0x7F55, - 10943: 0x7FF0, - 10944: 0x64BC, - 10945: 0x634D, - 10946: 0x65F1, - 10947: 0x61BE, - 10948: 0x608D, - 10949: 0x710A, - 10950: 0x6C57, - 10951: 0x6C49, - 10952: 0x592F, - 10953: 0x676D, - 10954: 0x822A, - 10955: 0x58D5, - 10956: 0x568E, - 10957: 0x8C6A, - 10958: 0x6BEB, - 10959: 0x90DD, - 10960: 0x597D, - 10961: 0x8017, - 10962: 0x53F7, - 10963: 0x6D69, - 10964: 0x5475, - 10965: 0x559D, - 10966: 0x8377, - 10967: 0x83CF, - 10968: 0x6838, - 10969: 0x79BE, - 10970: 0x548C, - 10971: 0x4F55, - 10972: 0x5408, - 10973: 0x76D2, - 10974: 0x8C89, - 10975: 0x9602, - 10976: 0x6CB3, - 10977: 0x6DB8, - 10978: 0x8D6B, - 10979: 0x8910, - 10980: 0x9E64, - 10981: 0x8D3A, - 10982: 0x563F, - 10983: 0x9ED1, - 10984: 0x75D5, - 10985: 0x5F88, - 10986: 0x72E0, - 10987: 0x6068, - 10988: 0x54FC, - 10989: 0x4EA8, - 10990: 0x6A2A, - 10991: 0x8861, - 10992: 0x6052, - 10993: 0x8F70, - 10994: 0x54C4, - 10995: 0x70D8, - 10996: 0x8679, - 10997: 0x9E3F, - 10998: 0x6D2A, - 10999: 0x5B8F, - 11000: 0x5F18, - 11001: 0x7EA2, - 11002: 0x5589, - 11003: 0x4FAF, - 11004: 0x7334, - 11005: 0x543C, - 11006: 0x539A, - 11007: 0x5019, - 11008: 0x540E, - 11009: 0x547C, - 11010: 0x4E4E, - 11011: 0x5FFD, - 11012: 0x745A, - 11013: 0x58F6, - 11014: 0x846B, - 11015: 0x80E1, - 11016: 0x8774, - 11017: 0x72D0, - 11018: 0x7CCA, - 11019: 0x6E56, - 11020: 0x7C43, - 11021: 0x7C44, - 11022: 0x7C45, - 11023: 0x7C46, - 11024: 0x7C47, - 11025: 0x7C48, - 11026: 0x7C49, - 11027: 0x7C4A, - 11028: 0x7C4B, - 11029: 0x7C4C, - 11030: 0x7C4E, - 11031: 0x7C4F, - 11032: 0x7C50, - 11033: 0x7C51, - 11034: 0x7C52, - 11035: 0x7C53, - 11036: 0x7C54, - 11037: 0x7C55, - 11038: 0x7C56, - 11039: 0x7C57, - 11040: 0x7C58, - 11041: 0x7C59, - 11042: 0x7C5A, - 11043: 0x7C5B, - 11044: 0x7C5C, - 11045: 0x7C5D, - 11046: 0x7C5E, - 11047: 0x7C5F, - 11048: 0x7C60, - 11049: 0x7C61, - 11050: 0x7C62, - 11051: 0x7C63, - 11052: 0x7C64, - 11053: 0x7C65, - 11054: 0x7C66, - 11055: 0x7C67, - 11056: 0x7C68, - 11057: 0x7C69, - 11058: 0x7C6A, - 11059: 0x7C6B, - 11060: 0x7C6C, - 11061: 0x7C6D, - 11062: 0x7C6E, - 11063: 0x7C6F, - 11064: 0x7C70, - 11065: 0x7C71, - 11066: 0x7C72, - 11067: 0x7C75, - 11068: 0x7C76, - 11069: 0x7C77, - 11070: 0x7C78, - 11071: 0x7C79, - 11072: 0x7C7A, - 11073: 0x7C7E, - 11074: 0x7C7F, - 11075: 0x7C80, - 11076: 0x7C81, - 11077: 0x7C82, - 11078: 0x7C83, - 11079: 0x7C84, - 11080: 0x7C85, - 11081: 0x7C86, - 11082: 0x7C87, - 11083: 0x7C88, - 11084: 0x7C8A, - 11085: 0x7C8B, - 11086: 0x7C8C, - 11087: 0x7C8D, - 11088: 0x7C8E, - 11089: 0x7C8F, - 11090: 0x7C90, - 11091: 0x7C93, - 11092: 0x7C94, - 11093: 0x7C96, - 11094: 0x7C99, - 11095: 0x7C9A, - 11096: 0x7C9B, - 11097: 0x7CA0, - 11098: 0x7CA1, - 11099: 0x7CA3, - 11100: 0x7CA6, - 11101: 0x7CA7, - 11102: 0x7CA8, - 11103: 0x7CA9, - 11104: 0x7CAB, - 11105: 0x7CAC, - 11106: 0x7CAD, - 11107: 0x7CAF, - 11108: 0x7CB0, - 11109: 0x7CB4, - 11110: 0x7CB5, - 11111: 0x7CB6, - 11112: 0x7CB7, - 11113: 0x7CB8, - 11114: 0x7CBA, - 11115: 0x7CBB, - 11116: 0x5F27, - 11117: 0x864E, - 11118: 0x552C, - 11119: 0x62A4, - 11120: 0x4E92, - 11121: 0x6CAA, - 11122: 0x6237, - 11123: 0x82B1, - 11124: 0x54D7, - 11125: 0x534E, - 11126: 0x733E, - 11127: 0x6ED1, - 11128: 0x753B, - 11129: 0x5212, - 11130: 0x5316, - 11131: 0x8BDD, - 11132: 0x69D0, - 11133: 0x5F8A, - 11134: 0x6000, - 11135: 0x6DEE, - 11136: 0x574F, - 11137: 0x6B22, - 11138: 0x73AF, - 11139: 0x6853, - 11140: 0x8FD8, - 11141: 0x7F13, - 11142: 0x6362, - 11143: 0x60A3, - 11144: 0x5524, - 11145: 0x75EA, - 11146: 0x8C62, - 11147: 0x7115, - 11148: 0x6DA3, - 11149: 0x5BA6, - 11150: 0x5E7B, - 11151: 0x8352, - 11152: 0x614C, - 11153: 0x9EC4, - 11154: 0x78FA, - 11155: 0x8757, - 11156: 0x7C27, - 11157: 0x7687, - 11158: 0x51F0, - 11159: 0x60F6, - 11160: 0x714C, - 11161: 0x6643, - 11162: 0x5E4C, - 11163: 0x604D, - 11164: 0x8C0E, - 11165: 0x7070, - 11166: 0x6325, - 11167: 0x8F89, - 11168: 0x5FBD, - 11169: 0x6062, - 11170: 0x86D4, - 11171: 0x56DE, - 11172: 0x6BC1, - 11173: 0x6094, - 11174: 0x6167, - 11175: 0x5349, - 11176: 0x60E0, - 11177: 0x6666, - 11178: 0x8D3F, - 11179: 0x79FD, - 11180: 0x4F1A, - 11181: 0x70E9, - 11182: 0x6C47, - 11183: 0x8BB3, - 11184: 0x8BF2, - 11185: 0x7ED8, - 11186: 0x8364, - 11187: 0x660F, - 11188: 0x5A5A, - 11189: 0x9B42, - 11190: 0x6D51, - 11191: 0x6DF7, - 11192: 0x8C41, - 11193: 0x6D3B, - 11194: 0x4F19, - 11195: 0x706B, - 11196: 0x83B7, - 11197: 0x6216, - 11198: 0x60D1, - 11199: 0x970D, - 11200: 0x8D27, - 11201: 0x7978, - 11202: 0x51FB, - 11203: 0x573E, - 11204: 0x57FA, - 11205: 0x673A, - 11206: 0x7578, - 11207: 0x7A3D, - 11208: 0x79EF, - 11209: 0x7B95, - 11210: 0x7CBF, - 11211: 0x7CC0, - 11212: 0x7CC2, - 11213: 0x7CC3, - 11214: 0x7CC4, - 11215: 0x7CC6, - 11216: 0x7CC9, - 11217: 0x7CCB, - 11218: 0x7CCE, - 11219: 0x7CCF, - 11220: 0x7CD0, - 11221: 0x7CD1, - 11222: 0x7CD2, - 11223: 0x7CD3, - 11224: 0x7CD4, - 11225: 0x7CD8, - 11226: 0x7CDA, - 11227: 0x7CDB, - 11228: 0x7CDD, - 11229: 0x7CDE, - 11230: 0x7CE1, - 11231: 0x7CE2, - 11232: 0x7CE3, - 11233: 0x7CE4, - 11234: 0x7CE5, - 11235: 0x7CE6, - 11236: 0x7CE7, - 11237: 0x7CE9, - 11238: 0x7CEA, - 11239: 0x7CEB, - 11240: 0x7CEC, - 11241: 0x7CED, - 11242: 0x7CEE, - 11243: 0x7CF0, - 11244: 0x7CF1, - 11245: 0x7CF2, - 11246: 0x7CF3, - 11247: 0x7CF4, - 11248: 0x7CF5, - 11249: 0x7CF6, - 11250: 0x7CF7, - 11251: 0x7CF9, - 11252: 0x7CFA, - 11253: 0x7CFC, - 11254: 0x7CFD, - 11255: 0x7CFE, - 11256: 0x7CFF, - 11257: 0x7D00, - 11258: 0x7D01, - 11259: 0x7D02, - 11260: 0x7D03, - 11261: 0x7D04, - 11262: 0x7D05, - 11263: 0x7D06, - 11264: 0x7D07, - 11265: 0x7D08, - 11266: 0x7D09, - 11267: 0x7D0B, - 11268: 0x7D0C, - 11269: 0x7D0D, - 11270: 0x7D0E, - 11271: 0x7D0F, - 11272: 0x7D10, - 11273: 0x7D11, - 11274: 0x7D12, - 11275: 0x7D13, - 11276: 0x7D14, - 11277: 0x7D15, - 11278: 0x7D16, - 11279: 0x7D17, - 11280: 0x7D18, - 11281: 0x7D19, - 11282: 0x7D1A, - 11283: 0x7D1B, - 11284: 0x7D1C, - 11285: 0x7D1D, - 11286: 0x7D1E, - 11287: 0x7D1F, - 11288: 0x7D21, - 11289: 0x7D23, - 11290: 0x7D24, - 11291: 0x7D25, - 11292: 0x7D26, - 11293: 0x7D28, - 11294: 0x7D29, - 11295: 0x7D2A, - 11296: 0x7D2C, - 11297: 0x7D2D, - 11298: 0x7D2E, - 11299: 0x7D30, - 11300: 0x7D31, - 11301: 0x7D32, - 11302: 0x7D33, - 11303: 0x7D34, - 11304: 0x7D35, - 11305: 0x7D36, - 11306: 0x808C, - 11307: 0x9965, - 11308: 0x8FF9, - 11309: 0x6FC0, - 11310: 0x8BA5, - 11311: 0x9E21, - 11312: 0x59EC, - 11313: 0x7EE9, - 11314: 0x7F09, - 11315: 0x5409, - 11316: 0x6781, - 11317: 0x68D8, - 11318: 0x8F91, - 11319: 0x7C4D, - 11320: 0x96C6, - 11321: 0x53CA, - 11322: 0x6025, - 11323: 0x75BE, - 11324: 0x6C72, - 11325: 0x5373, - 11326: 0x5AC9, - 11327: 0x7EA7, - 11328: 0x6324, - 11329: 0x51E0, - 11330: 0x810A, - 11331: 0x5DF1, - 11332: 0x84DF, - 11333: 0x6280, - 11334: 0x5180, - 11335: 0x5B63, - 11336: 0x4F0E, - 11337: 0x796D, - 11338: 0x5242, - 11339: 0x60B8, - 11340: 0x6D4E, - 11341: 0x5BC4, - 11342: 0x5BC2, - 11343: 0x8BA1, - 11344: 0x8BB0, - 11345: 0x65E2, - 11346: 0x5FCC, - 11347: 0x9645, - 11348: 0x5993, - 11349: 0x7EE7, - 11350: 0x7EAA, - 11351: 0x5609, - 11352: 0x67B7, - 11353: 0x5939, - 11354: 0x4F73, - 11355: 0x5BB6, - 11356: 0x52A0, - 11357: 0x835A, - 11358: 0x988A, - 11359: 0x8D3E, - 11360: 0x7532, - 11361: 0x94BE, - 11362: 0x5047, - 11363: 0x7A3C, - 11364: 0x4EF7, - 11365: 0x67B6, - 11366: 0x9A7E, - 11367: 0x5AC1, - 11368: 0x6B7C, - 11369: 0x76D1, - 11370: 0x575A, - 11371: 0x5C16, - 11372: 0x7B3A, - 11373: 0x95F4, - 11374: 0x714E, - 11375: 0x517C, - 11376: 0x80A9, - 11377: 0x8270, - 11378: 0x5978, - 11379: 0x7F04, - 11380: 0x8327, - 11381: 0x68C0, - 11382: 0x67EC, - 11383: 0x78B1, - 11384: 0x7877, - 11385: 0x62E3, - 11386: 0x6361, - 11387: 0x7B80, - 11388: 0x4FED, - 11389: 0x526A, - 11390: 0x51CF, - 11391: 0x8350, - 11392: 0x69DB, - 11393: 0x9274, - 11394: 0x8DF5, - 11395: 0x8D31, - 11396: 0x89C1, - 11397: 0x952E, - 11398: 0x7BAD, - 11399: 0x4EF6, - 11400: 0x7D37, - 11401: 0x7D38, - 11402: 0x7D39, - 11403: 0x7D3A, - 11404: 0x7D3B, - 11405: 0x7D3C, - 11406: 0x7D3D, - 11407: 0x7D3E, - 11408: 0x7D3F, - 11409: 0x7D40, - 11410: 0x7D41, - 11411: 0x7D42, - 11412: 0x7D43, - 11413: 0x7D44, - 11414: 0x7D45, - 11415: 0x7D46, - 11416: 0x7D47, - 11417: 0x7D48, - 11418: 0x7D49, - 11419: 0x7D4A, - 11420: 0x7D4B, - 11421: 0x7D4C, - 11422: 0x7D4D, - 11423: 0x7D4E, - 11424: 0x7D4F, - 11425: 0x7D50, - 11426: 0x7D51, - 11427: 0x7D52, - 11428: 0x7D53, - 11429: 0x7D54, - 11430: 0x7D55, - 11431: 0x7D56, - 11432: 0x7D57, - 11433: 0x7D58, - 11434: 0x7D59, - 11435: 0x7D5A, - 11436: 0x7D5B, - 11437: 0x7D5C, - 11438: 0x7D5D, - 11439: 0x7D5E, - 11440: 0x7D5F, - 11441: 0x7D60, - 11442: 0x7D61, - 11443: 0x7D62, - 11444: 0x7D63, - 11445: 0x7D64, - 11446: 0x7D65, - 11447: 0x7D66, - 11448: 0x7D67, - 11449: 0x7D68, - 11450: 0x7D69, - 11451: 0x7D6A, - 11452: 0x7D6B, - 11453: 0x7D6C, - 11454: 0x7D6D, - 11455: 0x7D6F, - 11456: 0x7D70, - 11457: 0x7D71, - 11458: 0x7D72, - 11459: 0x7D73, - 11460: 0x7D74, - 11461: 0x7D75, - 11462: 0x7D76, - 11463: 0x7D78, - 11464: 0x7D79, - 11465: 0x7D7A, - 11466: 0x7D7B, - 11467: 0x7D7C, - 11468: 0x7D7D, - 11469: 0x7D7E, - 11470: 0x7D7F, - 11471: 0x7D80, - 11472: 0x7D81, - 11473: 0x7D82, - 11474: 0x7D83, - 11475: 0x7D84, - 11476: 0x7D85, - 11477: 0x7D86, - 11478: 0x7D87, - 11479: 0x7D88, - 11480: 0x7D89, - 11481: 0x7D8A, - 11482: 0x7D8B, - 11483: 0x7D8C, - 11484: 0x7D8D, - 11485: 0x7D8E, - 11486: 0x7D8F, - 11487: 0x7D90, - 11488: 0x7D91, - 11489: 0x7D92, - 11490: 0x7D93, - 11491: 0x7D94, - 11492: 0x7D95, - 11493: 0x7D96, - 11494: 0x7D97, - 11495: 0x7D98, - 11496: 0x5065, - 11497: 0x8230, - 11498: 0x5251, - 11499: 0x996F, - 11500: 0x6E10, - 11501: 0x6E85, - 11502: 0x6DA7, - 11503: 0x5EFA, - 11504: 0x50F5, - 11505: 0x59DC, - 11506: 0x5C06, - 11507: 0x6D46, - 11508: 0x6C5F, - 11509: 0x7586, - 11510: 0x848B, - 11511: 0x6868, - 11512: 0x5956, - 11513: 0x8BB2, - 11514: 0x5320, - 11515: 0x9171, - 11516: 0x964D, - 11517: 0x8549, - 11518: 0x6912, - 11519: 0x7901, - 11520: 0x7126, - 11521: 0x80F6, - 11522: 0x4EA4, - 11523: 0x90CA, - 11524: 0x6D47, - 11525: 0x9A84, - 11526: 0x5A07, - 11527: 0x56BC, - 11528: 0x6405, - 11529: 0x94F0, - 11530: 0x77EB, - 11531: 0x4FA5, - 11532: 0x811A, - 11533: 0x72E1, - 11534: 0x89D2, - 11535: 0x997A, - 11536: 0x7F34, - 11537: 0x7EDE, - 11538: 0x527F, - 11539: 0x6559, - 11540: 0x9175, - 11541: 0x8F7F, - 11542: 0x8F83, - 11543: 0x53EB, - 11544: 0x7A96, - 11545: 0x63ED, - 11546: 0x63A5, - 11547: 0x7686, - 11548: 0x79F8, - 11549: 0x8857, - 11550: 0x9636, - 11551: 0x622A, - 11552: 0x52AB, - 11553: 0x8282, - 11554: 0x6854, - 11555: 0x6770, - 11556: 0x6377, - 11557: 0x776B, - 11558: 0x7AED, - 11559: 0x6D01, - 11560: 0x7ED3, - 11561: 0x89E3, - 11562: 0x59D0, - 11563: 0x6212, - 11564: 0x85C9, - 11565: 0x82A5, - 11566: 0x754C, - 11567: 0x501F, - 11568: 0x4ECB, - 11569: 0x75A5, - 11570: 0x8BEB, - 11571: 0x5C4A, - 11572: 0x5DFE, - 11573: 0x7B4B, - 11574: 0x65A4, - 11575: 0x91D1, - 11576: 0x4ECA, - 11577: 0x6D25, - 11578: 0x895F, - 11579: 0x7D27, - 11580: 0x9526, - 11581: 0x4EC5, - 11582: 0x8C28, - 11583: 0x8FDB, - 11584: 0x9773, - 11585: 0x664B, - 11586: 0x7981, - 11587: 0x8FD1, - 11588: 0x70EC, - 11589: 0x6D78, - 11590: 0x7D99, - 11591: 0x7D9A, - 11592: 0x7D9B, - 11593: 0x7D9C, - 11594: 0x7D9D, - 11595: 0x7D9E, - 11596: 0x7D9F, - 11597: 0x7DA0, - 11598: 0x7DA1, - 11599: 0x7DA2, - 11600: 0x7DA3, - 11601: 0x7DA4, - 11602: 0x7DA5, - 11603: 0x7DA7, - 11604: 0x7DA8, - 11605: 0x7DA9, - 11606: 0x7DAA, - 11607: 0x7DAB, - 11608: 0x7DAC, - 11609: 0x7DAD, - 11610: 0x7DAF, - 11611: 0x7DB0, - 11612: 0x7DB1, - 11613: 0x7DB2, - 11614: 0x7DB3, - 11615: 0x7DB4, - 11616: 0x7DB5, - 11617: 0x7DB6, - 11618: 0x7DB7, - 11619: 0x7DB8, - 11620: 0x7DB9, - 11621: 0x7DBA, - 11622: 0x7DBB, - 11623: 0x7DBC, - 11624: 0x7DBD, - 11625: 0x7DBE, - 11626: 0x7DBF, - 11627: 0x7DC0, - 11628: 0x7DC1, - 11629: 0x7DC2, - 11630: 0x7DC3, - 11631: 0x7DC4, - 11632: 0x7DC5, - 11633: 0x7DC6, - 11634: 0x7DC7, - 11635: 0x7DC8, - 11636: 0x7DC9, - 11637: 0x7DCA, - 11638: 0x7DCB, - 11639: 0x7DCC, - 11640: 0x7DCD, - 11641: 0x7DCE, - 11642: 0x7DCF, - 11643: 0x7DD0, - 11644: 0x7DD1, - 11645: 0x7DD2, - 11646: 0x7DD3, - 11647: 0x7DD4, - 11648: 0x7DD5, - 11649: 0x7DD6, - 11650: 0x7DD7, - 11651: 0x7DD8, - 11652: 0x7DD9, - 11653: 0x7DDA, - 11654: 0x7DDB, - 11655: 0x7DDC, - 11656: 0x7DDD, - 11657: 0x7DDE, - 11658: 0x7DDF, - 11659: 0x7DE0, - 11660: 0x7DE1, - 11661: 0x7DE2, - 11662: 0x7DE3, - 11663: 0x7DE4, - 11664: 0x7DE5, - 11665: 0x7DE6, - 11666: 0x7DE7, - 11667: 0x7DE8, - 11668: 0x7DE9, - 11669: 0x7DEA, - 11670: 0x7DEB, - 11671: 0x7DEC, - 11672: 0x7DED, - 11673: 0x7DEE, - 11674: 0x7DEF, - 11675: 0x7DF0, - 11676: 0x7DF1, - 11677: 0x7DF2, - 11678: 0x7DF3, - 11679: 0x7DF4, - 11680: 0x7DF5, - 11681: 0x7DF6, - 11682: 0x7DF7, - 11683: 0x7DF8, - 11684: 0x7DF9, - 11685: 0x7DFA, - 11686: 0x5C3D, - 11687: 0x52B2, - 11688: 0x8346, - 11689: 0x5162, - 11690: 0x830E, - 11691: 0x775B, - 11692: 0x6676, - 11693: 0x9CB8, - 11694: 0x4EAC, - 11695: 0x60CA, - 11696: 0x7CBE, - 11697: 0x7CB3, - 11698: 0x7ECF, - 11699: 0x4E95, - 11700: 0x8B66, - 11701: 0x666F, - 11702: 0x9888, - 11703: 0x9759, - 11704: 0x5883, - 11705: 0x656C, - 11706: 0x955C, - 11707: 0x5F84, - 11708: 0x75C9, - 11709: 0x9756, - 11710: 0x7ADF, - 11711: 0x7ADE, - 11712: 0x51C0, - 11713: 0x70AF, - 11714: 0x7A98, - 11715: 0x63EA, - 11716: 0x7A76, - 11717: 0x7EA0, - 11718: 0x7396, - 11719: 0x97ED, - 11720: 0x4E45, - 11721: 0x7078, - 11722: 0x4E5D, - 11723: 0x9152, - 11724: 0x53A9, - 11725: 0x6551, - 11726: 0x65E7, - 11727: 0x81FC, - 11728: 0x8205, - 11729: 0x548E, - 11730: 0x5C31, - 11731: 0x759A, - 11732: 0x97A0, - 11733: 0x62D8, - 11734: 0x72D9, - 11735: 0x75BD, - 11736: 0x5C45, - 11737: 0x9A79, - 11738: 0x83CA, - 11739: 0x5C40, - 11740: 0x5480, - 11741: 0x77E9, - 11742: 0x4E3E, - 11743: 0x6CAE, - 11744: 0x805A, - 11745: 0x62D2, - 11746: 0x636E, - 11747: 0x5DE8, - 11748: 0x5177, - 11749: 0x8DDD, - 11750: 0x8E1E, - 11751: 0x952F, - 11752: 0x4FF1, - 11753: 0x53E5, - 11754: 0x60E7, - 11755: 0x70AC, - 11756: 0x5267, - 11757: 0x6350, - 11758: 0x9E43, - 11759: 0x5A1F, - 11760: 0x5026, - 11761: 0x7737, - 11762: 0x5377, - 11763: 0x7EE2, - 11764: 0x6485, - 11765: 0x652B, - 11766: 0x6289, - 11767: 0x6398, - 11768: 0x5014, - 11769: 0x7235, - 11770: 0x89C9, - 11771: 0x51B3, - 11772: 0x8BC0, - 11773: 0x7EDD, - 11774: 0x5747, - 11775: 0x83CC, - 11776: 0x94A7, - 11777: 0x519B, - 11778: 0x541B, - 11779: 0x5CFB, - 11780: 0x7DFB, - 11781: 0x7DFC, - 11782: 0x7DFD, - 11783: 0x7DFE, - 11784: 0x7DFF, - 11785: 0x7E00, - 11786: 0x7E01, - 11787: 0x7E02, - 11788: 0x7E03, - 11789: 0x7E04, - 11790: 0x7E05, - 11791: 0x7E06, - 11792: 0x7E07, - 11793: 0x7E08, - 11794: 0x7E09, - 11795: 0x7E0A, - 11796: 0x7E0B, - 11797: 0x7E0C, - 11798: 0x7E0D, - 11799: 0x7E0E, - 11800: 0x7E0F, - 11801: 0x7E10, - 11802: 0x7E11, - 11803: 0x7E12, - 11804: 0x7E13, - 11805: 0x7E14, - 11806: 0x7E15, - 11807: 0x7E16, - 11808: 0x7E17, - 11809: 0x7E18, - 11810: 0x7E19, - 11811: 0x7E1A, - 11812: 0x7E1B, - 11813: 0x7E1C, - 11814: 0x7E1D, - 11815: 0x7E1E, - 11816: 0x7E1F, - 11817: 0x7E20, - 11818: 0x7E21, - 11819: 0x7E22, - 11820: 0x7E23, - 11821: 0x7E24, - 11822: 0x7E25, - 11823: 0x7E26, - 11824: 0x7E27, - 11825: 0x7E28, - 11826: 0x7E29, - 11827: 0x7E2A, - 11828: 0x7E2B, - 11829: 0x7E2C, - 11830: 0x7E2D, - 11831: 0x7E2E, - 11832: 0x7E2F, - 11833: 0x7E30, - 11834: 0x7E31, - 11835: 0x7E32, - 11836: 0x7E33, - 11837: 0x7E34, - 11838: 0x7E35, - 11839: 0x7E36, - 11840: 0x7E37, - 11841: 0x7E38, - 11842: 0x7E39, - 11843: 0x7E3A, - 11844: 0x7E3C, - 11845: 0x7E3D, - 11846: 0x7E3E, - 11847: 0x7E3F, - 11848: 0x7E40, - 11849: 0x7E42, - 11850: 0x7E43, - 11851: 0x7E44, - 11852: 0x7E45, - 11853: 0x7E46, - 11854: 0x7E48, - 11855: 0x7E49, - 11856: 0x7E4A, - 11857: 0x7E4B, - 11858: 0x7E4C, - 11859: 0x7E4D, - 11860: 0x7E4E, - 11861: 0x7E4F, - 11862: 0x7E50, - 11863: 0x7E51, - 11864: 0x7E52, - 11865: 0x7E53, - 11866: 0x7E54, - 11867: 0x7E55, - 11868: 0x7E56, - 11869: 0x7E57, - 11870: 0x7E58, - 11871: 0x7E59, - 11872: 0x7E5A, - 11873: 0x7E5B, - 11874: 0x7E5C, - 11875: 0x7E5D, - 11876: 0x4FCA, - 11877: 0x7AE3, - 11878: 0x6D5A, - 11879: 0x90E1, - 11880: 0x9A8F, - 11881: 0x5580, - 11882: 0x5496, - 11883: 0x5361, - 11884: 0x54AF, - 11885: 0x5F00, - 11886: 0x63E9, - 11887: 0x6977, - 11888: 0x51EF, - 11889: 0x6168, - 11890: 0x520A, - 11891: 0x582A, - 11892: 0x52D8, - 11893: 0x574E, - 11894: 0x780D, - 11895: 0x770B, - 11896: 0x5EB7, - 11897: 0x6177, - 11898: 0x7CE0, - 11899: 0x625B, - 11900: 0x6297, - 11901: 0x4EA2, - 11902: 0x7095, - 11903: 0x8003, - 11904: 0x62F7, - 11905: 0x70E4, - 11906: 0x9760, - 11907: 0x5777, - 11908: 0x82DB, - 11909: 0x67EF, - 11910: 0x68F5, - 11911: 0x78D5, - 11912: 0x9897, - 11913: 0x79D1, - 11914: 0x58F3, - 11915: 0x54B3, - 11916: 0x53EF, - 11917: 0x6E34, - 11918: 0x514B, - 11919: 0x523B, - 11920: 0x5BA2, - 11921: 0x8BFE, - 11922: 0x80AF, - 11923: 0x5543, - 11924: 0x57A6, - 11925: 0x6073, - 11926: 0x5751, - 11927: 0x542D, - 11928: 0x7A7A, - 11929: 0x6050, - 11930: 0x5B54, - 11931: 0x63A7, - 11932: 0x62A0, - 11933: 0x53E3, - 11934: 0x6263, - 11935: 0x5BC7, - 11936: 0x67AF, - 11937: 0x54ED, - 11938: 0x7A9F, - 11939: 0x82E6, - 11940: 0x9177, - 11941: 0x5E93, - 11942: 0x88E4, - 11943: 0x5938, - 11944: 0x57AE, - 11945: 0x630E, - 11946: 0x8DE8, - 11947: 0x80EF, - 11948: 0x5757, - 11949: 0x7B77, - 11950: 0x4FA9, - 11951: 0x5FEB, - 11952: 0x5BBD, - 11953: 0x6B3E, - 11954: 0x5321, - 11955: 0x7B50, - 11956: 0x72C2, - 11957: 0x6846, - 11958: 0x77FF, - 11959: 0x7736, - 11960: 0x65F7, - 11961: 0x51B5, - 11962: 0x4E8F, - 11963: 0x76D4, - 11964: 0x5CBF, - 11965: 0x7AA5, - 11966: 0x8475, - 11967: 0x594E, - 11968: 0x9B41, - 11969: 0x5080, - 11970: 0x7E5E, - 11971: 0x7E5F, - 11972: 0x7E60, - 11973: 0x7E61, - 11974: 0x7E62, - 11975: 0x7E63, - 11976: 0x7E64, - 11977: 0x7E65, - 11978: 0x7E66, - 11979: 0x7E67, - 11980: 0x7E68, - 11981: 0x7E69, - 11982: 0x7E6A, - 11983: 0x7E6B, - 11984: 0x7E6C, - 11985: 0x7E6D, - 11986: 0x7E6E, - 11987: 0x7E6F, - 11988: 0x7E70, - 11989: 0x7E71, - 11990: 0x7E72, - 11991: 0x7E73, - 11992: 0x7E74, - 11993: 0x7E75, - 11994: 0x7E76, - 11995: 0x7E77, - 11996: 0x7E78, - 11997: 0x7E79, - 11998: 0x7E7A, - 11999: 0x7E7B, - 12000: 0x7E7C, - 12001: 0x7E7D, - 12002: 0x7E7E, - 12003: 0x7E7F, - 12004: 0x7E80, - 12005: 0x7E81, - 12006: 0x7E83, - 12007: 0x7E84, - 12008: 0x7E85, - 12009: 0x7E86, - 12010: 0x7E87, - 12011: 0x7E88, - 12012: 0x7E89, - 12013: 0x7E8A, - 12014: 0x7E8B, - 12015: 0x7E8C, - 12016: 0x7E8D, - 12017: 0x7E8E, - 12018: 0x7E8F, - 12019: 0x7E90, - 12020: 0x7E91, - 12021: 0x7E92, - 12022: 0x7E93, - 12023: 0x7E94, - 12024: 0x7E95, - 12025: 0x7E96, - 12026: 0x7E97, - 12027: 0x7E98, - 12028: 0x7E99, - 12029: 0x7E9A, - 12030: 0x7E9C, - 12031: 0x7E9D, - 12032: 0x7E9E, - 12033: 0x7EAE, - 12034: 0x7EB4, - 12035: 0x7EBB, - 12036: 0x7EBC, - 12037: 0x7ED6, - 12038: 0x7EE4, - 12039: 0x7EEC, - 12040: 0x7EF9, - 12041: 0x7F0A, - 12042: 0x7F10, - 12043: 0x7F1E, - 12044: 0x7F37, - 12045: 0x7F39, - 12046: 0x7F3B, - 12047: 0x7F3C, - 12048: 0x7F3D, - 12049: 0x7F3E, - 12050: 0x7F3F, - 12051: 0x7F40, - 12052: 0x7F41, - 12053: 0x7F43, - 12054: 0x7F46, - 12055: 0x7F47, - 12056: 0x7F48, - 12057: 0x7F49, - 12058: 0x7F4A, - 12059: 0x7F4B, - 12060: 0x7F4C, - 12061: 0x7F4D, - 12062: 0x7F4E, - 12063: 0x7F4F, - 12064: 0x7F52, - 12065: 0x7F53, - 12066: 0x9988, - 12067: 0x6127, - 12068: 0x6E83, - 12069: 0x5764, - 12070: 0x6606, - 12071: 0x6346, - 12072: 0x56F0, - 12073: 0x62EC, - 12074: 0x6269, - 12075: 0x5ED3, - 12076: 0x9614, - 12077: 0x5783, - 12078: 0x62C9, - 12079: 0x5587, - 12080: 0x8721, - 12081: 0x814A, - 12082: 0x8FA3, - 12083: 0x5566, - 12084: 0x83B1, - 12085: 0x6765, - 12086: 0x8D56, - 12087: 0x84DD, - 12088: 0x5A6A, - 12089: 0x680F, - 12090: 0x62E6, - 12091: 0x7BEE, - 12092: 0x9611, - 12093: 0x5170, - 12094: 0x6F9C, - 12095: 0x8C30, - 12096: 0x63FD, - 12097: 0x89C8, - 12098: 0x61D2, - 12099: 0x7F06, - 12100: 0x70C2, - 12101: 0x6EE5, - 12102: 0x7405, - 12103: 0x6994, - 12104: 0x72FC, - 12105: 0x5ECA, - 12106: 0x90CE, - 12107: 0x6717, - 12108: 0x6D6A, - 12109: 0x635E, - 12110: 0x52B3, - 12111: 0x7262, - 12112: 0x8001, - 12113: 0x4F6C, - 12114: 0x59E5, - 12115: 0x916A, - 12116: 0x70D9, - 12117: 0x6D9D, - 12118: 0x52D2, - 12119: 0x4E50, - 12120: 0x96F7, - 12121: 0x956D, - 12122: 0x857E, - 12123: 0x78CA, - 12124: 0x7D2F, - 12125: 0x5121, - 12126: 0x5792, - 12127: 0x64C2, - 12128: 0x808B, - 12129: 0x7C7B, - 12130: 0x6CEA, - 12131: 0x68F1, - 12132: 0x695E, - 12133: 0x51B7, - 12134: 0x5398, - 12135: 0x68A8, - 12136: 0x7281, - 12137: 0x9ECE, - 12138: 0x7BF1, - 12139: 0x72F8, - 12140: 0x79BB, - 12141: 0x6F13, - 12142: 0x7406, - 12143: 0x674E, - 12144: 0x91CC, - 12145: 0x9CA4, - 12146: 0x793C, - 12147: 0x8389, - 12148: 0x8354, - 12149: 0x540F, - 12150: 0x6817, - 12151: 0x4E3D, - 12152: 0x5389, - 12153: 0x52B1, - 12154: 0x783E, - 12155: 0x5386, - 12156: 0x5229, - 12157: 0x5088, - 12158: 0x4F8B, - 12159: 0x4FD0, - 12160: 0x7F56, - 12161: 0x7F59, - 12162: 0x7F5B, - 12163: 0x7F5C, - 12164: 0x7F5D, - 12165: 0x7F5E, - 12166: 0x7F60, - 12167: 0x7F63, - 12168: 0x7F64, - 12169: 0x7F65, - 12170: 0x7F66, - 12171: 0x7F67, - 12172: 0x7F6B, - 12173: 0x7F6C, - 12174: 0x7F6D, - 12175: 0x7F6F, - 12176: 0x7F70, - 12177: 0x7F73, - 12178: 0x7F75, - 12179: 0x7F76, - 12180: 0x7F77, - 12181: 0x7F78, - 12182: 0x7F7A, - 12183: 0x7F7B, - 12184: 0x7F7C, - 12185: 0x7F7D, - 12186: 0x7F7F, - 12187: 0x7F80, - 12188: 0x7F82, - 12189: 0x7F83, - 12190: 0x7F84, - 12191: 0x7F85, - 12192: 0x7F86, - 12193: 0x7F87, - 12194: 0x7F88, - 12195: 0x7F89, - 12196: 0x7F8B, - 12197: 0x7F8D, - 12198: 0x7F8F, - 12199: 0x7F90, - 12200: 0x7F91, - 12201: 0x7F92, - 12202: 0x7F93, - 12203: 0x7F95, - 12204: 0x7F96, - 12205: 0x7F97, - 12206: 0x7F98, - 12207: 0x7F99, - 12208: 0x7F9B, - 12209: 0x7F9C, - 12210: 0x7FA0, - 12211: 0x7FA2, - 12212: 0x7FA3, - 12213: 0x7FA5, - 12214: 0x7FA6, - 12215: 0x7FA8, - 12216: 0x7FA9, - 12217: 0x7FAA, - 12218: 0x7FAB, - 12219: 0x7FAC, - 12220: 0x7FAD, - 12221: 0x7FAE, - 12222: 0x7FB1, - 12223: 0x7FB3, - 12224: 0x7FB4, - 12225: 0x7FB5, - 12226: 0x7FB6, - 12227: 0x7FB7, - 12228: 0x7FBA, - 12229: 0x7FBB, - 12230: 0x7FBE, - 12231: 0x7FC0, - 12232: 0x7FC2, - 12233: 0x7FC3, - 12234: 0x7FC4, - 12235: 0x7FC6, - 12236: 0x7FC7, - 12237: 0x7FC8, - 12238: 0x7FC9, - 12239: 0x7FCB, - 12240: 0x7FCD, - 12241: 0x7FCF, - 12242: 0x7FD0, - 12243: 0x7FD1, - 12244: 0x7FD2, - 12245: 0x7FD3, - 12246: 0x7FD6, - 12247: 0x7FD7, - 12248: 0x7FD9, - 12249: 0x7FDA, - 12250: 0x7FDB, - 12251: 0x7FDC, - 12252: 0x7FDD, - 12253: 0x7FDE, - 12254: 0x7FE2, - 12255: 0x7FE3, - 12256: 0x75E2, - 12257: 0x7ACB, - 12258: 0x7C92, - 12259: 0x6CA5, - 12260: 0x96B6, - 12261: 0x529B, - 12262: 0x7483, - 12263: 0x54E9, - 12264: 0x4FE9, - 12265: 0x8054, - 12266: 0x83B2, - 12267: 0x8FDE, - 12268: 0x9570, - 12269: 0x5EC9, - 12270: 0x601C, - 12271: 0x6D9F, - 12272: 0x5E18, - 12273: 0x655B, - 12274: 0x8138, - 12275: 0x94FE, - 12276: 0x604B, - 12277: 0x70BC, - 12278: 0x7EC3, - 12279: 0x7CAE, - 12280: 0x51C9, - 12281: 0x6881, - 12282: 0x7CB1, - 12283: 0x826F, - 12284: 0x4E24, - 12285: 0x8F86, - 12286: 0x91CF, - 12287: 0x667E, - 12288: 0x4EAE, - 12289: 0x8C05, - 12290: 0x64A9, - 12291: 0x804A, - 12292: 0x50DA, - 12293: 0x7597, - 12294: 0x71CE, - 12295: 0x5BE5, - 12296: 0x8FBD, - 12297: 0x6F66, - 12298: 0x4E86, - 12299: 0x6482, - 12300: 0x9563, - 12301: 0x5ED6, - 12302: 0x6599, - 12303: 0x5217, - 12304: 0x88C2, - 12305: 0x70C8, - 12306: 0x52A3, - 12307: 0x730E, - 12308: 0x7433, - 12309: 0x6797, - 12310: 0x78F7, - 12311: 0x9716, - 12312: 0x4E34, - 12313: 0x90BB, - 12314: 0x9CDE, - 12315: 0x6DCB, - 12316: 0x51DB, - 12317: 0x8D41, - 12318: 0x541D, - 12319: 0x62CE, - 12320: 0x73B2, - 12321: 0x83F1, - 12322: 0x96F6, - 12323: 0x9F84, - 12324: 0x94C3, - 12325: 0x4F36, - 12326: 0x7F9A, - 12327: 0x51CC, - 12328: 0x7075, - 12329: 0x9675, - 12330: 0x5CAD, - 12331: 0x9886, - 12332: 0x53E6, - 12333: 0x4EE4, - 12334: 0x6E9C, - 12335: 0x7409, - 12336: 0x69B4, - 12337: 0x786B, - 12338: 0x998F, - 12339: 0x7559, - 12340: 0x5218, - 12341: 0x7624, - 12342: 0x6D41, - 12343: 0x67F3, - 12344: 0x516D, - 12345: 0x9F99, - 12346: 0x804B, - 12347: 0x5499, - 12348: 0x7B3C, - 12349: 0x7ABF, - 12350: 0x7FE4, - 12351: 0x7FE7, - 12352: 0x7FE8, - 12353: 0x7FEA, - 12354: 0x7FEB, - 12355: 0x7FEC, - 12356: 0x7FED, - 12357: 0x7FEF, - 12358: 0x7FF2, - 12359: 0x7FF4, - 12360: 0x7FF5, - 12361: 0x7FF6, - 12362: 0x7FF7, - 12363: 0x7FF8, - 12364: 0x7FF9, - 12365: 0x7FFA, - 12366: 0x7FFD, - 12367: 0x7FFE, - 12368: 0x7FFF, - 12369: 0x8002, - 12370: 0x8007, - 12371: 0x8008, - 12372: 0x8009, - 12373: 0x800A, - 12374: 0x800E, - 12375: 0x800F, - 12376: 0x8011, - 12377: 0x8013, - 12378: 0x801A, - 12379: 0x801B, - 12380: 0x801D, - 12381: 0x801E, - 12382: 0x801F, - 12383: 0x8021, - 12384: 0x8023, - 12385: 0x8024, - 12386: 0x802B, - 12387: 0x802C, - 12388: 0x802D, - 12389: 0x802E, - 12390: 0x802F, - 12391: 0x8030, - 12392: 0x8032, - 12393: 0x8034, - 12394: 0x8039, - 12395: 0x803A, - 12396: 0x803C, - 12397: 0x803E, - 12398: 0x8040, - 12399: 0x8041, - 12400: 0x8044, - 12401: 0x8045, - 12402: 0x8047, - 12403: 0x8048, - 12404: 0x8049, - 12405: 0x804E, - 12406: 0x804F, - 12407: 0x8050, - 12408: 0x8051, - 12409: 0x8053, - 12410: 0x8055, - 12411: 0x8056, - 12412: 0x8057, - 12413: 0x8059, - 12414: 0x805B, - 12415: 0x805C, - 12416: 0x805D, - 12417: 0x805E, - 12418: 0x805F, - 12419: 0x8060, - 12420: 0x8061, - 12421: 0x8062, - 12422: 0x8063, - 12423: 0x8064, - 12424: 0x8065, - 12425: 0x8066, - 12426: 0x8067, - 12427: 0x8068, - 12428: 0x806B, - 12429: 0x806C, - 12430: 0x806D, - 12431: 0x806E, - 12432: 0x806F, - 12433: 0x8070, - 12434: 0x8072, - 12435: 0x8073, - 12436: 0x8074, - 12437: 0x8075, - 12438: 0x8076, - 12439: 0x8077, - 12440: 0x8078, - 12441: 0x8079, - 12442: 0x807A, - 12443: 0x807B, - 12444: 0x807C, - 12445: 0x807D, - 12446: 0x9686, - 12447: 0x5784, - 12448: 0x62E2, - 12449: 0x9647, - 12450: 0x697C, - 12451: 0x5A04, - 12452: 0x6402, - 12453: 0x7BD3, - 12454: 0x6F0F, - 12455: 0x964B, - 12456: 0x82A6, - 12457: 0x5362, - 12458: 0x9885, - 12459: 0x5E90, - 12460: 0x7089, - 12461: 0x63B3, - 12462: 0x5364, - 12463: 0x864F, - 12464: 0x9C81, - 12465: 0x9E93, - 12466: 0x788C, - 12467: 0x9732, - 12468: 0x8DEF, - 12469: 0x8D42, - 12470: 0x9E7F, - 12471: 0x6F5E, - 12472: 0x7984, - 12473: 0x5F55, - 12474: 0x9646, - 12475: 0x622E, - 12476: 0x9A74, - 12477: 0x5415, - 12478: 0x94DD, - 12479: 0x4FA3, - 12480: 0x65C5, - 12481: 0x5C65, - 12482: 0x5C61, - 12483: 0x7F15, - 12484: 0x8651, - 12485: 0x6C2F, - 12486: 0x5F8B, - 12487: 0x7387, - 12488: 0x6EE4, - 12489: 0x7EFF, - 12490: 0x5CE6, - 12491: 0x631B, - 12492: 0x5B6A, - 12493: 0x6EE6, - 12494: 0x5375, - 12495: 0x4E71, - 12496: 0x63A0, - 12497: 0x7565, - 12498: 0x62A1, - 12499: 0x8F6E, - 12500: 0x4F26, - 12501: 0x4ED1, - 12502: 0x6CA6, - 12503: 0x7EB6, - 12504: 0x8BBA, - 12505: 0x841D, - 12506: 0x87BA, - 12507: 0x7F57, - 12508: 0x903B, - 12509: 0x9523, - 12510: 0x7BA9, - 12511: 0x9AA1, - 12512: 0x88F8, - 12513: 0x843D, - 12514: 0x6D1B, - 12515: 0x9A86, - 12516: 0x7EDC, - 12517: 0x5988, - 12518: 0x9EBB, - 12519: 0x739B, - 12520: 0x7801, - 12521: 0x8682, - 12522: 0x9A6C, - 12523: 0x9A82, - 12524: 0x561B, - 12525: 0x5417, - 12526: 0x57CB, - 12527: 0x4E70, - 12528: 0x9EA6, - 12529: 0x5356, - 12530: 0x8FC8, - 12531: 0x8109, - 12532: 0x7792, - 12533: 0x9992, - 12534: 0x86EE, - 12535: 0x6EE1, - 12536: 0x8513, - 12537: 0x66FC, - 12538: 0x6162, - 12539: 0x6F2B, - 12540: 0x807E, - 12541: 0x8081, - 12542: 0x8082, - 12543: 0x8085, - 12544: 0x8088, - 12545: 0x808A, - 12546: 0x808D, - 12547: 0x808E, - 12548: 0x808F, - 12549: 0x8090, - 12550: 0x8091, - 12551: 0x8092, - 12552: 0x8094, - 12553: 0x8095, - 12554: 0x8097, - 12555: 0x8099, - 12556: 0x809E, - 12557: 0x80A3, - 12558: 0x80A6, - 12559: 0x80A7, - 12560: 0x80A8, - 12561: 0x80AC, - 12562: 0x80B0, - 12563: 0x80B3, - 12564: 0x80B5, - 12565: 0x80B6, - 12566: 0x80B8, - 12567: 0x80B9, - 12568: 0x80BB, - 12569: 0x80C5, - 12570: 0x80C7, - 12571: 0x80C8, - 12572: 0x80C9, - 12573: 0x80CA, - 12574: 0x80CB, - 12575: 0x80CF, - 12576: 0x80D0, - 12577: 0x80D1, - 12578: 0x80D2, - 12579: 0x80D3, - 12580: 0x80D4, - 12581: 0x80D5, - 12582: 0x80D8, - 12583: 0x80DF, - 12584: 0x80E0, - 12585: 0x80E2, - 12586: 0x80E3, - 12587: 0x80E6, - 12588: 0x80EE, - 12589: 0x80F5, - 12590: 0x80F7, - 12591: 0x80F9, - 12592: 0x80FB, - 12593: 0x80FE, - 12594: 0x80FF, - 12595: 0x8100, - 12596: 0x8101, - 12597: 0x8103, - 12598: 0x8104, - 12599: 0x8105, - 12600: 0x8107, - 12601: 0x8108, - 12602: 0x810B, - 12603: 0x810C, - 12604: 0x8115, - 12605: 0x8117, - 12606: 0x8119, - 12607: 0x811B, - 12608: 0x811C, - 12609: 0x811D, - 12610: 0x811F, - 12611: 0x8120, - 12612: 0x8121, - 12613: 0x8122, - 12614: 0x8123, - 12615: 0x8124, - 12616: 0x8125, - 12617: 0x8126, - 12618: 0x8127, - 12619: 0x8128, - 12620: 0x8129, - 12621: 0x812A, - 12622: 0x812B, - 12623: 0x812D, - 12624: 0x812E, - 12625: 0x8130, - 12626: 0x8133, - 12627: 0x8134, - 12628: 0x8135, - 12629: 0x8137, - 12630: 0x8139, - 12631: 0x813A, - 12632: 0x813B, - 12633: 0x813C, - 12634: 0x813D, - 12635: 0x813F, - 12636: 0x8C29, - 12637: 0x8292, - 12638: 0x832B, - 12639: 0x76F2, - 12640: 0x6C13, - 12641: 0x5FD9, - 12642: 0x83BD, - 12643: 0x732B, - 12644: 0x8305, - 12645: 0x951A, - 12646: 0x6BDB, - 12647: 0x77DB, - 12648: 0x94C6, - 12649: 0x536F, - 12650: 0x8302, - 12651: 0x5192, - 12652: 0x5E3D, - 12653: 0x8C8C, - 12654: 0x8D38, - 12655: 0x4E48, - 12656: 0x73AB, - 12657: 0x679A, - 12658: 0x6885, - 12659: 0x9176, - 12660: 0x9709, - 12661: 0x7164, - 12662: 0x6CA1, - 12663: 0x7709, - 12664: 0x5A92, - 12665: 0x9541, - 12666: 0x6BCF, - 12667: 0x7F8E, - 12668: 0x6627, - 12669: 0x5BD0, - 12670: 0x59B9, - 12671: 0x5A9A, - 12672: 0x95E8, - 12673: 0x95F7, - 12674: 0x4EEC, - 12675: 0x840C, - 12676: 0x8499, - 12677: 0x6AAC, - 12678: 0x76DF, - 12679: 0x9530, - 12680: 0x731B, - 12681: 0x68A6, - 12682: 0x5B5F, - 12683: 0x772F, - 12684: 0x919A, - 12685: 0x9761, - 12686: 0x7CDC, - 12687: 0x8FF7, - 12688: 0x8C1C, - 12689: 0x5F25, - 12690: 0x7C73, - 12691: 0x79D8, - 12692: 0x89C5, - 12693: 0x6CCC, - 12694: 0x871C, - 12695: 0x5BC6, - 12696: 0x5E42, - 12697: 0x68C9, - 12698: 0x7720, - 12699: 0x7EF5, - 12700: 0x5195, - 12701: 0x514D, - 12702: 0x52C9, - 12703: 0x5A29, - 12704: 0x7F05, - 12705: 0x9762, - 12706: 0x82D7, - 12707: 0x63CF, - 12708: 0x7784, - 12709: 0x85D0, - 12710: 0x79D2, - 12711: 0x6E3A, - 12712: 0x5E99, - 12713: 0x5999, - 12714: 0x8511, - 12715: 0x706D, - 12716: 0x6C11, - 12717: 0x62BF, - 12718: 0x76BF, - 12719: 0x654F, - 12720: 0x60AF, - 12721: 0x95FD, - 12722: 0x660E, - 12723: 0x879F, - 12724: 0x9E23, - 12725: 0x94ED, - 12726: 0x540D, - 12727: 0x547D, - 12728: 0x8C2C, - 12729: 0x6478, - 12730: 0x8140, - 12731: 0x8141, - 12732: 0x8142, - 12733: 0x8143, - 12734: 0x8144, - 12735: 0x8145, - 12736: 0x8147, - 12737: 0x8149, - 12738: 0x814D, - 12739: 0x814E, - 12740: 0x814F, - 12741: 0x8152, - 12742: 0x8156, - 12743: 0x8157, - 12744: 0x8158, - 12745: 0x815B, - 12746: 0x815C, - 12747: 0x815D, - 12748: 0x815E, - 12749: 0x815F, - 12750: 0x8161, - 12751: 0x8162, - 12752: 0x8163, - 12753: 0x8164, - 12754: 0x8166, - 12755: 0x8168, - 12756: 0x816A, - 12757: 0x816B, - 12758: 0x816C, - 12759: 0x816F, - 12760: 0x8172, - 12761: 0x8173, - 12762: 0x8175, - 12763: 0x8176, - 12764: 0x8177, - 12765: 0x8178, - 12766: 0x8181, - 12767: 0x8183, - 12768: 0x8184, - 12769: 0x8185, - 12770: 0x8186, - 12771: 0x8187, - 12772: 0x8189, - 12773: 0x818B, - 12774: 0x818C, - 12775: 0x818D, - 12776: 0x818E, - 12777: 0x8190, - 12778: 0x8192, - 12779: 0x8193, - 12780: 0x8194, - 12781: 0x8195, - 12782: 0x8196, - 12783: 0x8197, - 12784: 0x8199, - 12785: 0x819A, - 12786: 0x819E, - 12787: 0x819F, - 12788: 0x81A0, - 12789: 0x81A1, - 12790: 0x81A2, - 12791: 0x81A4, - 12792: 0x81A5, - 12793: 0x81A7, - 12794: 0x81A9, - 12795: 0x81AB, - 12796: 0x81AC, - 12797: 0x81AD, - 12798: 0x81AE, - 12799: 0x81AF, - 12800: 0x81B0, - 12801: 0x81B1, - 12802: 0x81B2, - 12803: 0x81B4, - 12804: 0x81B5, - 12805: 0x81B6, - 12806: 0x81B7, - 12807: 0x81B8, - 12808: 0x81B9, - 12809: 0x81BC, - 12810: 0x81BD, - 12811: 0x81BE, - 12812: 0x81BF, - 12813: 0x81C4, - 12814: 0x81C5, - 12815: 0x81C7, - 12816: 0x81C8, - 12817: 0x81C9, - 12818: 0x81CB, - 12819: 0x81CD, - 12820: 0x81CE, - 12821: 0x81CF, - 12822: 0x81D0, - 12823: 0x81D1, - 12824: 0x81D2, - 12825: 0x81D3, - 12826: 0x6479, - 12827: 0x8611, - 12828: 0x6A21, - 12829: 0x819C, - 12830: 0x78E8, - 12831: 0x6469, - 12832: 0x9B54, - 12833: 0x62B9, - 12834: 0x672B, - 12835: 0x83AB, - 12836: 0x58A8, - 12837: 0x9ED8, - 12838: 0x6CAB, - 12839: 0x6F20, - 12840: 0x5BDE, - 12841: 0x964C, - 12842: 0x8C0B, - 12843: 0x725F, - 12844: 0x67D0, - 12845: 0x62C7, - 12846: 0x7261, - 12847: 0x4EA9, - 12848: 0x59C6, - 12849: 0x6BCD, - 12850: 0x5893, - 12851: 0x66AE, - 12852: 0x5E55, - 12853: 0x52DF, - 12854: 0x6155, - 12855: 0x6728, - 12856: 0x76EE, - 12857: 0x7766, - 12858: 0x7267, - 12859: 0x7A46, - 12860: 0x62FF, - 12861: 0x54EA, - 12862: 0x5450, - 12863: 0x94A0, - 12864: 0x90A3, - 12865: 0x5A1C, - 12866: 0x7EB3, - 12867: 0x6C16, - 12868: 0x4E43, - 12869: 0x5976, - 12870: 0x8010, - 12871: 0x5948, - 12872: 0x5357, - 12873: 0x7537, - 12874: 0x96BE, - 12875: 0x56CA, - 12876: 0x6320, - 12877: 0x8111, - 12878: 0x607C, - 12879: 0x95F9, - 12880: 0x6DD6, - 12881: 0x5462, - 12882: 0x9981, - 12883: 0x5185, - 12884: 0x5AE9, - 12885: 0x80FD, - 12886: 0x59AE, - 12887: 0x9713, - 12888: 0x502A, - 12889: 0x6CE5, - 12890: 0x5C3C, - 12891: 0x62DF, - 12892: 0x4F60, - 12893: 0x533F, - 12894: 0x817B, - 12895: 0x9006, - 12896: 0x6EBA, - 12897: 0x852B, - 12898: 0x62C8, - 12899: 0x5E74, - 12900: 0x78BE, - 12901: 0x64B5, - 12902: 0x637B, - 12903: 0x5FF5, - 12904: 0x5A18, - 12905: 0x917F, - 12906: 0x9E1F, - 12907: 0x5C3F, - 12908: 0x634F, - 12909: 0x8042, - 12910: 0x5B7D, - 12911: 0x556E, - 12912: 0x954A, - 12913: 0x954D, - 12914: 0x6D85, - 12915: 0x60A8, - 12916: 0x67E0, - 12917: 0x72DE, - 12918: 0x51DD, - 12919: 0x5B81, - 12920: 0x81D4, - 12921: 0x81D5, - 12922: 0x81D6, - 12923: 0x81D7, - 12924: 0x81D8, - 12925: 0x81D9, - 12926: 0x81DA, - 12927: 0x81DB, - 12928: 0x81DC, - 12929: 0x81DD, - 12930: 0x81DE, - 12931: 0x81DF, - 12932: 0x81E0, - 12933: 0x81E1, - 12934: 0x81E2, - 12935: 0x81E4, - 12936: 0x81E5, - 12937: 0x81E6, - 12938: 0x81E8, - 12939: 0x81E9, - 12940: 0x81EB, - 12941: 0x81EE, - 12942: 0x81EF, - 12943: 0x81F0, - 12944: 0x81F1, - 12945: 0x81F2, - 12946: 0x81F5, - 12947: 0x81F6, - 12948: 0x81F7, - 12949: 0x81F8, - 12950: 0x81F9, - 12951: 0x81FA, - 12952: 0x81FD, - 12953: 0x81FF, - 12954: 0x8203, - 12955: 0x8207, - 12956: 0x8208, - 12957: 0x8209, - 12958: 0x820A, - 12959: 0x820B, - 12960: 0x820E, - 12961: 0x820F, - 12962: 0x8211, - 12963: 0x8213, - 12964: 0x8215, - 12965: 0x8216, - 12966: 0x8217, - 12967: 0x8218, - 12968: 0x8219, - 12969: 0x821A, - 12970: 0x821D, - 12971: 0x8220, - 12972: 0x8224, - 12973: 0x8225, - 12974: 0x8226, - 12975: 0x8227, - 12976: 0x8229, - 12977: 0x822E, - 12978: 0x8232, - 12979: 0x823A, - 12980: 0x823C, - 12981: 0x823D, - 12982: 0x823F, - 12983: 0x8240, - 12984: 0x8241, - 12985: 0x8242, - 12986: 0x8243, - 12987: 0x8245, - 12988: 0x8246, - 12989: 0x8248, - 12990: 0x824A, - 12991: 0x824C, - 12992: 0x824D, - 12993: 0x824E, - 12994: 0x8250, - 12995: 0x8251, - 12996: 0x8252, - 12997: 0x8253, - 12998: 0x8254, - 12999: 0x8255, - 13000: 0x8256, - 13001: 0x8257, - 13002: 0x8259, - 13003: 0x825B, - 13004: 0x825C, - 13005: 0x825D, - 13006: 0x825E, - 13007: 0x8260, - 13008: 0x8261, - 13009: 0x8262, - 13010: 0x8263, - 13011: 0x8264, - 13012: 0x8265, - 13013: 0x8266, - 13014: 0x8267, - 13015: 0x8269, - 13016: 0x62E7, - 13017: 0x6CDE, - 13018: 0x725B, - 13019: 0x626D, - 13020: 0x94AE, - 13021: 0x7EBD, - 13022: 0x8113, - 13023: 0x6D53, - 13024: 0x519C, - 13025: 0x5F04, - 13026: 0x5974, - 13027: 0x52AA, - 13028: 0x6012, - 13029: 0x5973, - 13030: 0x6696, - 13031: 0x8650, - 13032: 0x759F, - 13033: 0x632A, - 13034: 0x61E6, - 13035: 0x7CEF, - 13036: 0x8BFA, - 13037: 0x54E6, - 13038: 0x6B27, - 13039: 0x9E25, - 13040: 0x6BB4, - 13041: 0x85D5, - 13042: 0x5455, - 13043: 0x5076, - 13044: 0x6CA4, - 13045: 0x556A, - 13046: 0x8DB4, - 13047: 0x722C, - 13048: 0x5E15, - 13049: 0x6015, - 13050: 0x7436, - 13051: 0x62CD, - 13052: 0x6392, - 13053: 0x724C, - 13054: 0x5F98, - 13055: 0x6E43, - 13056: 0x6D3E, - 13057: 0x6500, - 13058: 0x6F58, - 13059: 0x76D8, - 13060: 0x78D0, - 13061: 0x76FC, - 13062: 0x7554, - 13063: 0x5224, - 13064: 0x53DB, - 13065: 0x4E53, - 13066: 0x5E9E, - 13067: 0x65C1, - 13068: 0x802A, - 13069: 0x80D6, - 13070: 0x629B, - 13071: 0x5486, - 13072: 0x5228, - 13073: 0x70AE, - 13074: 0x888D, - 13075: 0x8DD1, - 13076: 0x6CE1, - 13077: 0x5478, - 13078: 0x80DA, - 13079: 0x57F9, - 13080: 0x88F4, - 13081: 0x8D54, - 13082: 0x966A, - 13083: 0x914D, - 13084: 0x4F69, - 13085: 0x6C9B, - 13086: 0x55B7, - 13087: 0x76C6, - 13088: 0x7830, - 13089: 0x62A8, - 13090: 0x70F9, - 13091: 0x6F8E, - 13092: 0x5F6D, - 13093: 0x84EC, - 13094: 0x68DA, - 13095: 0x787C, - 13096: 0x7BF7, - 13097: 0x81A8, - 13098: 0x670B, - 13099: 0x9E4F, - 13100: 0x6367, - 13101: 0x78B0, - 13102: 0x576F, - 13103: 0x7812, - 13104: 0x9739, - 13105: 0x6279, - 13106: 0x62AB, - 13107: 0x5288, - 13108: 0x7435, - 13109: 0x6BD7, - 13110: 0x826A, - 13111: 0x826B, - 13112: 0x826C, - 13113: 0x826D, - 13114: 0x8271, - 13115: 0x8275, - 13116: 0x8276, - 13117: 0x8277, - 13118: 0x8278, - 13119: 0x827B, - 13120: 0x827C, - 13121: 0x8280, - 13122: 0x8281, - 13123: 0x8283, - 13124: 0x8285, - 13125: 0x8286, - 13126: 0x8287, - 13127: 0x8289, - 13128: 0x828C, - 13129: 0x8290, - 13130: 0x8293, - 13131: 0x8294, - 13132: 0x8295, - 13133: 0x8296, - 13134: 0x829A, - 13135: 0x829B, - 13136: 0x829E, - 13137: 0x82A0, - 13138: 0x82A2, - 13139: 0x82A3, - 13140: 0x82A7, - 13141: 0x82B2, - 13142: 0x82B5, - 13143: 0x82B6, - 13144: 0x82BA, - 13145: 0x82BB, - 13146: 0x82BC, - 13147: 0x82BF, - 13148: 0x82C0, - 13149: 0x82C2, - 13150: 0x82C3, - 13151: 0x82C5, - 13152: 0x82C6, - 13153: 0x82C9, - 13154: 0x82D0, - 13155: 0x82D6, - 13156: 0x82D9, - 13157: 0x82DA, - 13158: 0x82DD, - 13159: 0x82E2, - 13160: 0x82E7, - 13161: 0x82E8, - 13162: 0x82E9, - 13163: 0x82EA, - 13164: 0x82EC, - 13165: 0x82ED, - 13166: 0x82EE, - 13167: 0x82F0, - 13168: 0x82F2, - 13169: 0x82F3, - 13170: 0x82F5, - 13171: 0x82F6, - 13172: 0x82F8, - 13173: 0x82FA, - 13174: 0x82FC, - 13175: 0x82FD, - 13176: 0x82FE, - 13177: 0x82FF, - 13178: 0x8300, - 13179: 0x830A, - 13180: 0x830B, - 13181: 0x830D, - 13182: 0x8310, - 13183: 0x8312, - 13184: 0x8313, - 13185: 0x8316, - 13186: 0x8318, - 13187: 0x8319, - 13188: 0x831D, - 13189: 0x831E, - 13190: 0x831F, - 13191: 0x8320, - 13192: 0x8321, - 13193: 0x8322, - 13194: 0x8323, - 13195: 0x8324, - 13196: 0x8325, - 13197: 0x8326, - 13198: 0x8329, - 13199: 0x832A, - 13200: 0x832E, - 13201: 0x8330, - 13202: 0x8332, - 13203: 0x8337, - 13204: 0x833B, - 13205: 0x833D, - 13206: 0x5564, - 13207: 0x813E, - 13208: 0x75B2, - 13209: 0x76AE, - 13210: 0x5339, - 13211: 0x75DE, - 13212: 0x50FB, - 13213: 0x5C41, - 13214: 0x8B6C, - 13215: 0x7BC7, - 13216: 0x504F, - 13217: 0x7247, - 13218: 0x9A97, - 13219: 0x98D8, - 13220: 0x6F02, - 13221: 0x74E2, - 13222: 0x7968, - 13223: 0x6487, - 13224: 0x77A5, - 13225: 0x62FC, - 13226: 0x9891, - 13227: 0x8D2B, - 13228: 0x54C1, - 13229: 0x8058, - 13230: 0x4E52, - 13231: 0x576A, - 13232: 0x82F9, - 13233: 0x840D, - 13234: 0x5E73, - 13235: 0x51ED, - 13236: 0x74F6, - 13237: 0x8BC4, - 13238: 0x5C4F, - 13239: 0x5761, - 13240: 0x6CFC, - 13241: 0x9887, - 13242: 0x5A46, - 13243: 0x7834, - 13244: 0x9B44, - 13245: 0x8FEB, - 13246: 0x7C95, - 13247: 0x5256, - 13248: 0x6251, - 13249: 0x94FA, - 13250: 0x4EC6, - 13251: 0x8386, - 13252: 0x8461, - 13253: 0x83E9, - 13254: 0x84B2, - 13255: 0x57D4, - 13256: 0x6734, - 13257: 0x5703, - 13258: 0x666E, - 13259: 0x6D66, - 13260: 0x8C31, - 13261: 0x66DD, - 13262: 0x7011, - 13263: 0x671F, - 13264: 0x6B3A, - 13265: 0x6816, - 13266: 0x621A, - 13267: 0x59BB, - 13268: 0x4E03, - 13269: 0x51C4, - 13270: 0x6F06, - 13271: 0x67D2, - 13272: 0x6C8F, - 13273: 0x5176, - 13274: 0x68CB, - 13275: 0x5947, - 13276: 0x6B67, - 13277: 0x7566, - 13278: 0x5D0E, - 13279: 0x8110, - 13280: 0x9F50, - 13281: 0x65D7, - 13282: 0x7948, - 13283: 0x7941, - 13284: 0x9A91, - 13285: 0x8D77, - 13286: 0x5C82, - 13287: 0x4E5E, - 13288: 0x4F01, - 13289: 0x542F, - 13290: 0x5951, - 13291: 0x780C, - 13292: 0x5668, - 13293: 0x6C14, - 13294: 0x8FC4, - 13295: 0x5F03, - 13296: 0x6C7D, - 13297: 0x6CE3, - 13298: 0x8BAB, - 13299: 0x6390, - 13300: 0x833E, - 13301: 0x833F, - 13302: 0x8341, - 13303: 0x8342, - 13304: 0x8344, - 13305: 0x8345, - 13306: 0x8348, - 13307: 0x834A, - 13308: 0x834B, - 13309: 0x834C, - 13310: 0x834D, - 13311: 0x834E, - 13312: 0x8353, - 13313: 0x8355, - 13314: 0x8356, - 13315: 0x8357, - 13316: 0x8358, - 13317: 0x8359, - 13318: 0x835D, - 13319: 0x8362, - 13320: 0x8370, - 13321: 0x8371, - 13322: 0x8372, - 13323: 0x8373, - 13324: 0x8374, - 13325: 0x8375, - 13326: 0x8376, - 13327: 0x8379, - 13328: 0x837A, - 13329: 0x837E, - 13330: 0x837F, - 13331: 0x8380, - 13332: 0x8381, - 13333: 0x8382, - 13334: 0x8383, - 13335: 0x8384, - 13336: 0x8387, - 13337: 0x8388, - 13338: 0x838A, - 13339: 0x838B, - 13340: 0x838C, - 13341: 0x838D, - 13342: 0x838F, - 13343: 0x8390, - 13344: 0x8391, - 13345: 0x8394, - 13346: 0x8395, - 13347: 0x8396, - 13348: 0x8397, - 13349: 0x8399, - 13350: 0x839A, - 13351: 0x839D, - 13352: 0x839F, - 13353: 0x83A1, - 13354: 0x83A2, - 13355: 0x83A3, - 13356: 0x83A4, - 13357: 0x83A5, - 13358: 0x83A6, - 13359: 0x83A7, - 13360: 0x83AC, - 13361: 0x83AD, - 13362: 0x83AE, - 13363: 0x83AF, - 13364: 0x83B5, - 13365: 0x83BB, - 13366: 0x83BE, - 13367: 0x83BF, - 13368: 0x83C2, - 13369: 0x83C3, - 13370: 0x83C4, - 13371: 0x83C6, - 13372: 0x83C8, - 13373: 0x83C9, - 13374: 0x83CB, - 13375: 0x83CD, - 13376: 0x83CE, - 13377: 0x83D0, - 13378: 0x83D1, - 13379: 0x83D2, - 13380: 0x83D3, - 13381: 0x83D5, - 13382: 0x83D7, - 13383: 0x83D9, - 13384: 0x83DA, - 13385: 0x83DB, - 13386: 0x83DE, - 13387: 0x83E2, - 13388: 0x83E3, - 13389: 0x83E4, - 13390: 0x83E6, - 13391: 0x83E7, - 13392: 0x83E8, - 13393: 0x83EB, - 13394: 0x83EC, - 13395: 0x83ED, - 13396: 0x6070, - 13397: 0x6D3D, - 13398: 0x7275, - 13399: 0x6266, - 13400: 0x948E, - 13401: 0x94C5, - 13402: 0x5343, - 13403: 0x8FC1, - 13404: 0x7B7E, - 13405: 0x4EDF, - 13406: 0x8C26, - 13407: 0x4E7E, - 13408: 0x9ED4, - 13409: 0x94B1, - 13410: 0x94B3, - 13411: 0x524D, - 13412: 0x6F5C, - 13413: 0x9063, - 13414: 0x6D45, - 13415: 0x8C34, - 13416: 0x5811, - 13417: 0x5D4C, - 13418: 0x6B20, - 13419: 0x6B49, - 13420: 0x67AA, - 13421: 0x545B, - 13422: 0x8154, - 13423: 0x7F8C, - 13424: 0x5899, - 13425: 0x8537, - 13426: 0x5F3A, - 13427: 0x62A2, - 13428: 0x6A47, - 13429: 0x9539, - 13430: 0x6572, - 13431: 0x6084, - 13432: 0x6865, - 13433: 0x77A7, - 13434: 0x4E54, - 13435: 0x4FA8, - 13436: 0x5DE7, - 13437: 0x9798, - 13438: 0x64AC, - 13439: 0x7FD8, - 13440: 0x5CED, - 13441: 0x4FCF, - 13442: 0x7A8D, - 13443: 0x5207, - 13444: 0x8304, - 13445: 0x4E14, - 13446: 0x602F, - 13447: 0x7A83, - 13448: 0x94A6, - 13449: 0x4FB5, - 13450: 0x4EB2, - 13451: 0x79E6, - 13452: 0x7434, - 13453: 0x52E4, - 13454: 0x82B9, - 13455: 0x64D2, - 13456: 0x79BD, - 13457: 0x5BDD, - 13458: 0x6C81, - 13459: 0x9752, - 13460: 0x8F7B, - 13461: 0x6C22, - 13462: 0x503E, - 13463: 0x537F, - 13464: 0x6E05, - 13465: 0x64CE, - 13466: 0x6674, - 13467: 0x6C30, - 13468: 0x60C5, - 13469: 0x9877, - 13470: 0x8BF7, - 13471: 0x5E86, - 13472: 0x743C, - 13473: 0x7A77, - 13474: 0x79CB, - 13475: 0x4E18, - 13476: 0x90B1, - 13477: 0x7403, - 13478: 0x6C42, - 13479: 0x56DA, - 13480: 0x914B, - 13481: 0x6CC5, - 13482: 0x8D8B, - 13483: 0x533A, - 13484: 0x86C6, - 13485: 0x66F2, - 13486: 0x8EAF, - 13487: 0x5C48, - 13488: 0x9A71, - 13489: 0x6E20, - 13490: 0x83EE, - 13491: 0x83EF, - 13492: 0x83F3, - 13493: 0x83F4, - 13494: 0x83F5, - 13495: 0x83F6, - 13496: 0x83F7, - 13497: 0x83FA, - 13498: 0x83FB, - 13499: 0x83FC, - 13500: 0x83FE, - 13501: 0x83FF, - 13502: 0x8400, - 13503: 0x8402, - 13504: 0x8405, - 13505: 0x8407, - 13506: 0x8408, - 13507: 0x8409, - 13508: 0x840A, - 13509: 0x8410, - 13510: 0x8412, - 13511: 0x8413, - 13512: 0x8414, - 13513: 0x8415, - 13514: 0x8416, - 13515: 0x8417, - 13516: 0x8419, - 13517: 0x841A, - 13518: 0x841B, - 13519: 0x841E, - 13520: 0x841F, - 13521: 0x8420, - 13522: 0x8421, - 13523: 0x8422, - 13524: 0x8423, - 13525: 0x8429, - 13526: 0x842A, - 13527: 0x842B, - 13528: 0x842C, - 13529: 0x842D, - 13530: 0x842E, - 13531: 0x842F, - 13532: 0x8430, - 13533: 0x8432, - 13534: 0x8433, - 13535: 0x8434, - 13536: 0x8435, - 13537: 0x8436, - 13538: 0x8437, - 13539: 0x8439, - 13540: 0x843A, - 13541: 0x843B, - 13542: 0x843E, - 13543: 0x843F, - 13544: 0x8440, - 13545: 0x8441, - 13546: 0x8442, - 13547: 0x8443, - 13548: 0x8444, - 13549: 0x8445, - 13550: 0x8447, - 13551: 0x8448, - 13552: 0x8449, - 13553: 0x844A, - 13554: 0x844B, - 13555: 0x844C, - 13556: 0x844D, - 13557: 0x844E, - 13558: 0x844F, - 13559: 0x8450, - 13560: 0x8452, - 13561: 0x8453, - 13562: 0x8454, - 13563: 0x8455, - 13564: 0x8456, - 13565: 0x8458, - 13566: 0x845D, - 13567: 0x845E, - 13568: 0x845F, - 13569: 0x8460, - 13570: 0x8462, - 13571: 0x8464, - 13572: 0x8465, - 13573: 0x8466, - 13574: 0x8467, - 13575: 0x8468, - 13576: 0x846A, - 13577: 0x846E, - 13578: 0x846F, - 13579: 0x8470, - 13580: 0x8472, - 13581: 0x8474, - 13582: 0x8477, - 13583: 0x8479, - 13584: 0x847B, - 13585: 0x847C, - 13586: 0x53D6, - 13587: 0x5A36, - 13588: 0x9F8B, - 13589: 0x8DA3, - 13590: 0x53BB, - 13591: 0x5708, - 13592: 0x98A7, - 13593: 0x6743, - 13594: 0x919B, - 13595: 0x6CC9, - 13596: 0x5168, - 13597: 0x75CA, - 13598: 0x62F3, - 13599: 0x72AC, - 13600: 0x5238, - 13601: 0x529D, - 13602: 0x7F3A, - 13603: 0x7094, - 13604: 0x7638, - 13605: 0x5374, - 13606: 0x9E4A, - 13607: 0x69B7, - 13608: 0x786E, - 13609: 0x96C0, - 13610: 0x88D9, - 13611: 0x7FA4, - 13612: 0x7136, - 13613: 0x71C3, - 13614: 0x5189, - 13615: 0x67D3, - 13616: 0x74E4, - 13617: 0x58E4, - 13618: 0x6518, - 13619: 0x56B7, - 13620: 0x8BA9, - 13621: 0x9976, - 13622: 0x6270, - 13623: 0x7ED5, - 13624: 0x60F9, - 13625: 0x70ED, - 13626: 0x58EC, - 13627: 0x4EC1, - 13628: 0x4EBA, - 13629: 0x5FCD, - 13630: 0x97E7, - 13631: 0x4EFB, - 13632: 0x8BA4, - 13633: 0x5203, - 13634: 0x598A, - 13635: 0x7EAB, - 13636: 0x6254, - 13637: 0x4ECD, - 13638: 0x65E5, - 13639: 0x620E, - 13640: 0x8338, - 13641: 0x84C9, - 13642: 0x8363, - 13643: 0x878D, - 13644: 0x7194, - 13645: 0x6EB6, - 13646: 0x5BB9, - 13647: 0x7ED2, - 13648: 0x5197, - 13649: 0x63C9, - 13650: 0x67D4, - 13651: 0x8089, - 13652: 0x8339, - 13653: 0x8815, - 13654: 0x5112, - 13655: 0x5B7A, - 13656: 0x5982, - 13657: 0x8FB1, - 13658: 0x4E73, - 13659: 0x6C5D, - 13660: 0x5165, - 13661: 0x8925, - 13662: 0x8F6F, - 13663: 0x962E, - 13664: 0x854A, - 13665: 0x745E, - 13666: 0x9510, - 13667: 0x95F0, - 13668: 0x6DA6, - 13669: 0x82E5, - 13670: 0x5F31, - 13671: 0x6492, - 13672: 0x6D12, - 13673: 0x8428, - 13674: 0x816E, - 13675: 0x9CC3, - 13676: 0x585E, - 13677: 0x8D5B, - 13678: 0x4E09, - 13679: 0x53C1, - 13680: 0x847D, - 13681: 0x847E, - 13682: 0x847F, - 13683: 0x8480, - 13684: 0x8481, - 13685: 0x8483, - 13686: 0x8484, - 13687: 0x8485, - 13688: 0x8486, - 13689: 0x848A, - 13690: 0x848D, - 13691: 0x848F, - 13692: 0x8490, - 13693: 0x8491, - 13694: 0x8492, - 13695: 0x8493, - 13696: 0x8494, - 13697: 0x8495, - 13698: 0x8496, - 13699: 0x8498, - 13700: 0x849A, - 13701: 0x849B, - 13702: 0x849D, - 13703: 0x849E, - 13704: 0x849F, - 13705: 0x84A0, - 13706: 0x84A2, - 13707: 0x84A3, - 13708: 0x84A4, - 13709: 0x84A5, - 13710: 0x84A6, - 13711: 0x84A7, - 13712: 0x84A8, - 13713: 0x84A9, - 13714: 0x84AA, - 13715: 0x84AB, - 13716: 0x84AC, - 13717: 0x84AD, - 13718: 0x84AE, - 13719: 0x84B0, - 13720: 0x84B1, - 13721: 0x84B3, - 13722: 0x84B5, - 13723: 0x84B6, - 13724: 0x84B7, - 13725: 0x84BB, - 13726: 0x84BC, - 13727: 0x84BE, - 13728: 0x84C0, - 13729: 0x84C2, - 13730: 0x84C3, - 13731: 0x84C5, - 13732: 0x84C6, - 13733: 0x84C7, - 13734: 0x84C8, - 13735: 0x84CB, - 13736: 0x84CC, - 13737: 0x84CE, - 13738: 0x84CF, - 13739: 0x84D2, - 13740: 0x84D4, - 13741: 0x84D5, - 13742: 0x84D7, - 13743: 0x84D8, - 13744: 0x84D9, - 13745: 0x84DA, - 13746: 0x84DB, - 13747: 0x84DC, - 13748: 0x84DE, - 13749: 0x84E1, - 13750: 0x84E2, - 13751: 0x84E4, - 13752: 0x84E7, - 13753: 0x84E8, - 13754: 0x84E9, - 13755: 0x84EA, - 13756: 0x84EB, - 13757: 0x84ED, - 13758: 0x84EE, - 13759: 0x84EF, - 13760: 0x84F1, - 13761: 0x84F2, - 13762: 0x84F3, - 13763: 0x84F4, - 13764: 0x84F5, - 13765: 0x84F6, - 13766: 0x84F7, - 13767: 0x84F8, - 13768: 0x84F9, - 13769: 0x84FA, - 13770: 0x84FB, - 13771: 0x84FD, - 13772: 0x84FE, - 13773: 0x8500, - 13774: 0x8501, - 13775: 0x8502, - 13776: 0x4F1E, - 13777: 0x6563, - 13778: 0x6851, - 13779: 0x55D3, - 13780: 0x4E27, - 13781: 0x6414, - 13782: 0x9A9A, - 13783: 0x626B, - 13784: 0x5AC2, - 13785: 0x745F, - 13786: 0x8272, - 13787: 0x6DA9, - 13788: 0x68EE, - 13789: 0x50E7, - 13790: 0x838E, - 13791: 0x7802, - 13792: 0x6740, - 13793: 0x5239, - 13794: 0x6C99, - 13795: 0x7EB1, - 13796: 0x50BB, - 13797: 0x5565, - 13798: 0x715E, - 13799: 0x7B5B, - 13800: 0x6652, - 13801: 0x73CA, - 13802: 0x82EB, - 13803: 0x6749, - 13804: 0x5C71, - 13805: 0x5220, - 13806: 0x717D, - 13807: 0x886B, - 13808: 0x95EA, - 13809: 0x9655, - 13810: 0x64C5, - 13811: 0x8D61, - 13812: 0x81B3, - 13813: 0x5584, - 13814: 0x6C55, - 13815: 0x6247, - 13816: 0x7F2E, - 13817: 0x5892, - 13818: 0x4F24, - 13819: 0x5546, - 13820: 0x8D4F, - 13821: 0x664C, - 13822: 0x4E0A, - 13823: 0x5C1A, - 13824: 0x88F3, - 13825: 0x68A2, - 13826: 0x634E, - 13827: 0x7A0D, - 13828: 0x70E7, - 13829: 0x828D, - 13830: 0x52FA, - 13831: 0x97F6, - 13832: 0x5C11, - 13833: 0x54E8, - 13834: 0x90B5, - 13835: 0x7ECD, - 13836: 0x5962, - 13837: 0x8D4A, - 13838: 0x86C7, - 13839: 0x820C, - 13840: 0x820D, - 13841: 0x8D66, - 13842: 0x6444, - 13843: 0x5C04, - 13844: 0x6151, - 13845: 0x6D89, - 13846: 0x793E, - 13847: 0x8BBE, - 13848: 0x7837, - 13849: 0x7533, - 13850: 0x547B, - 13851: 0x4F38, - 13852: 0x8EAB, - 13853: 0x6DF1, - 13854: 0x5A20, - 13855: 0x7EC5, - 13856: 0x795E, - 13857: 0x6C88, - 13858: 0x5BA1, - 13859: 0x5A76, - 13860: 0x751A, - 13861: 0x80BE, - 13862: 0x614E, - 13863: 0x6E17, - 13864: 0x58F0, - 13865: 0x751F, - 13866: 0x7525, - 13867: 0x7272, - 13868: 0x5347, - 13869: 0x7EF3, - 13870: 0x8503, - 13871: 0x8504, - 13872: 0x8505, - 13873: 0x8506, - 13874: 0x8507, - 13875: 0x8508, - 13876: 0x8509, - 13877: 0x850A, - 13878: 0x850B, - 13879: 0x850D, - 13880: 0x850E, - 13881: 0x850F, - 13882: 0x8510, - 13883: 0x8512, - 13884: 0x8514, - 13885: 0x8515, - 13886: 0x8516, - 13887: 0x8518, - 13888: 0x8519, - 13889: 0x851B, - 13890: 0x851C, - 13891: 0x851D, - 13892: 0x851E, - 13893: 0x8520, - 13894: 0x8522, - 13895: 0x8523, - 13896: 0x8524, - 13897: 0x8525, - 13898: 0x8526, - 13899: 0x8527, - 13900: 0x8528, - 13901: 0x8529, - 13902: 0x852A, - 13903: 0x852D, - 13904: 0x852E, - 13905: 0x852F, - 13906: 0x8530, - 13907: 0x8531, - 13908: 0x8532, - 13909: 0x8533, - 13910: 0x8534, - 13911: 0x8535, - 13912: 0x8536, - 13913: 0x853E, - 13914: 0x853F, - 13915: 0x8540, - 13916: 0x8541, - 13917: 0x8542, - 13918: 0x8544, - 13919: 0x8545, - 13920: 0x8546, - 13921: 0x8547, - 13922: 0x854B, - 13923: 0x854C, - 13924: 0x854D, - 13925: 0x854E, - 13926: 0x854F, - 13927: 0x8550, - 13928: 0x8551, - 13929: 0x8552, - 13930: 0x8553, - 13931: 0x8554, - 13932: 0x8555, - 13933: 0x8557, - 13934: 0x8558, - 13935: 0x855A, - 13936: 0x855B, - 13937: 0x855C, - 13938: 0x855D, - 13939: 0x855F, - 13940: 0x8560, - 13941: 0x8561, - 13942: 0x8562, - 13943: 0x8563, - 13944: 0x8565, - 13945: 0x8566, - 13946: 0x8567, - 13947: 0x8569, - 13948: 0x856A, - 13949: 0x856B, - 13950: 0x856C, - 13951: 0x856D, - 13952: 0x856E, - 13953: 0x856F, - 13954: 0x8570, - 13955: 0x8571, - 13956: 0x8573, - 13957: 0x8575, - 13958: 0x8576, - 13959: 0x8577, - 13960: 0x8578, - 13961: 0x857C, - 13962: 0x857D, - 13963: 0x857F, - 13964: 0x8580, - 13965: 0x8581, - 13966: 0x7701, - 13967: 0x76DB, - 13968: 0x5269, - 13969: 0x80DC, - 13970: 0x5723, - 13971: 0x5E08, - 13972: 0x5931, - 13973: 0x72EE, - 13974: 0x65BD, - 13975: 0x6E7F, - 13976: 0x8BD7, - 13977: 0x5C38, - 13978: 0x8671, - 13979: 0x5341, - 13980: 0x77F3, - 13981: 0x62FE, - 13982: 0x65F6, - 13983: 0x4EC0, - 13984: 0x98DF, - 13985: 0x8680, - 13986: 0x5B9E, - 13987: 0x8BC6, - 13988: 0x53F2, - 13989: 0x77E2, - 13990: 0x4F7F, - 13991: 0x5C4E, - 13992: 0x9A76, - 13993: 0x59CB, - 13994: 0x5F0F, - 13995: 0x793A, - 13996: 0x58EB, - 13997: 0x4E16, - 13998: 0x67FF, - 13999: 0x4E8B, - 14000: 0x62ED, - 14001: 0x8A93, - 14002: 0x901D, - 14003: 0x52BF, - 14004: 0x662F, - 14005: 0x55DC, - 14006: 0x566C, - 14007: 0x9002, - 14008: 0x4ED5, - 14009: 0x4F8D, - 14010: 0x91CA, - 14011: 0x9970, - 14012: 0x6C0F, - 14013: 0x5E02, - 14014: 0x6043, - 14015: 0x5BA4, - 14016: 0x89C6, - 14017: 0x8BD5, - 14018: 0x6536, - 14019: 0x624B, - 14020: 0x9996, - 14021: 0x5B88, - 14022: 0x5BFF, - 14023: 0x6388, - 14024: 0x552E, - 14025: 0x53D7, - 14026: 0x7626, - 14027: 0x517D, - 14028: 0x852C, - 14029: 0x67A2, - 14030: 0x68B3, - 14031: 0x6B8A, - 14032: 0x6292, - 14033: 0x8F93, - 14034: 0x53D4, - 14035: 0x8212, - 14036: 0x6DD1, - 14037: 0x758F, - 14038: 0x4E66, - 14039: 0x8D4E, - 14040: 0x5B70, - 14041: 0x719F, - 14042: 0x85AF, - 14043: 0x6691, - 14044: 0x66D9, - 14045: 0x7F72, - 14046: 0x8700, - 14047: 0x9ECD, - 14048: 0x9F20, - 14049: 0x5C5E, - 14050: 0x672F, - 14051: 0x8FF0, - 14052: 0x6811, - 14053: 0x675F, - 14054: 0x620D, - 14055: 0x7AD6, - 14056: 0x5885, - 14057: 0x5EB6, - 14058: 0x6570, - 14059: 0x6F31, - 14060: 0x8582, - 14061: 0x8583, - 14062: 0x8586, - 14063: 0x8588, - 14064: 0x8589, - 14065: 0x858A, - 14066: 0x858B, - 14067: 0x858C, - 14068: 0x858D, - 14069: 0x858E, - 14070: 0x8590, - 14071: 0x8591, - 14072: 0x8592, - 14073: 0x8593, - 14074: 0x8594, - 14075: 0x8595, - 14076: 0x8596, - 14077: 0x8597, - 14078: 0x8598, - 14079: 0x8599, - 14080: 0x859A, - 14081: 0x859D, - 14082: 0x859E, - 14083: 0x859F, - 14084: 0x85A0, - 14085: 0x85A1, - 14086: 0x85A2, - 14087: 0x85A3, - 14088: 0x85A5, - 14089: 0x85A6, - 14090: 0x85A7, - 14091: 0x85A9, - 14092: 0x85AB, - 14093: 0x85AC, - 14094: 0x85AD, - 14095: 0x85B1, - 14096: 0x85B2, - 14097: 0x85B3, - 14098: 0x85B4, - 14099: 0x85B5, - 14100: 0x85B6, - 14101: 0x85B8, - 14102: 0x85BA, - 14103: 0x85BB, - 14104: 0x85BC, - 14105: 0x85BD, - 14106: 0x85BE, - 14107: 0x85BF, - 14108: 0x85C0, - 14109: 0x85C2, - 14110: 0x85C3, - 14111: 0x85C4, - 14112: 0x85C5, - 14113: 0x85C6, - 14114: 0x85C7, - 14115: 0x85C8, - 14116: 0x85CA, - 14117: 0x85CB, - 14118: 0x85CC, - 14119: 0x85CD, - 14120: 0x85CE, - 14121: 0x85D1, - 14122: 0x85D2, - 14123: 0x85D4, - 14124: 0x85D6, - 14125: 0x85D7, - 14126: 0x85D8, - 14127: 0x85D9, - 14128: 0x85DA, - 14129: 0x85DB, - 14130: 0x85DD, - 14131: 0x85DE, - 14132: 0x85DF, - 14133: 0x85E0, - 14134: 0x85E1, - 14135: 0x85E2, - 14136: 0x85E3, - 14137: 0x85E5, - 14138: 0x85E6, - 14139: 0x85E7, - 14140: 0x85E8, - 14141: 0x85EA, - 14142: 0x85EB, - 14143: 0x85EC, - 14144: 0x85ED, - 14145: 0x85EE, - 14146: 0x85EF, - 14147: 0x85F0, - 14148: 0x85F1, - 14149: 0x85F2, - 14150: 0x85F3, - 14151: 0x85F4, - 14152: 0x85F5, - 14153: 0x85F6, - 14154: 0x85F7, - 14155: 0x85F8, - 14156: 0x6055, - 14157: 0x5237, - 14158: 0x800D, - 14159: 0x6454, - 14160: 0x8870, - 14161: 0x7529, - 14162: 0x5E05, - 14163: 0x6813, - 14164: 0x62F4, - 14165: 0x971C, - 14166: 0x53CC, - 14167: 0x723D, - 14168: 0x8C01, - 14169: 0x6C34, - 14170: 0x7761, - 14171: 0x7A0E, - 14172: 0x542E, - 14173: 0x77AC, - 14174: 0x987A, - 14175: 0x821C, - 14176: 0x8BF4, - 14177: 0x7855, - 14178: 0x6714, - 14179: 0x70C1, - 14180: 0x65AF, - 14181: 0x6495, - 14182: 0x5636, - 14183: 0x601D, - 14184: 0x79C1, - 14185: 0x53F8, - 14186: 0x4E1D, - 14187: 0x6B7B, - 14188: 0x8086, - 14189: 0x5BFA, - 14190: 0x55E3, - 14191: 0x56DB, - 14192: 0x4F3A, - 14193: 0x4F3C, - 14194: 0x9972, - 14195: 0x5DF3, - 14196: 0x677E, - 14197: 0x8038, - 14198: 0x6002, - 14199: 0x9882, - 14200: 0x9001, - 14201: 0x5B8B, - 14202: 0x8BBC, - 14203: 0x8BF5, - 14204: 0x641C, - 14205: 0x8258, - 14206: 0x64DE, - 14207: 0x55FD, - 14208: 0x82CF, - 14209: 0x9165, - 14210: 0x4FD7, - 14211: 0x7D20, - 14212: 0x901F, - 14213: 0x7C9F, - 14214: 0x50F3, - 14215: 0x5851, - 14216: 0x6EAF, - 14217: 0x5BBF, - 14218: 0x8BC9, - 14219: 0x8083, - 14220: 0x9178, - 14221: 0x849C, - 14222: 0x7B97, - 14223: 0x867D, - 14224: 0x968B, - 14225: 0x968F, - 14226: 0x7EE5, - 14227: 0x9AD3, - 14228: 0x788E, - 14229: 0x5C81, - 14230: 0x7A57, - 14231: 0x9042, - 14232: 0x96A7, - 14233: 0x795F, - 14234: 0x5B59, - 14235: 0x635F, - 14236: 0x7B0B, - 14237: 0x84D1, - 14238: 0x68AD, - 14239: 0x5506, - 14240: 0x7F29, - 14241: 0x7410, - 14242: 0x7D22, - 14243: 0x9501, - 14244: 0x6240, - 14245: 0x584C, - 14246: 0x4ED6, - 14247: 0x5B83, - 14248: 0x5979, - 14249: 0x5854, - 14250: 0x85F9, - 14251: 0x85FA, - 14252: 0x85FC, - 14253: 0x85FD, - 14254: 0x85FE, - 14255: 0x8600, - 14256: 0x8601, - 14257: 0x8602, - 14258: 0x8603, - 14259: 0x8604, - 14260: 0x8606, - 14261: 0x8607, - 14262: 0x8608, - 14263: 0x8609, - 14264: 0x860A, - 14265: 0x860B, - 14266: 0x860C, - 14267: 0x860D, - 14268: 0x860E, - 14269: 0x860F, - 14270: 0x8610, - 14271: 0x8612, - 14272: 0x8613, - 14273: 0x8614, - 14274: 0x8615, - 14275: 0x8617, - 14276: 0x8618, - 14277: 0x8619, - 14278: 0x861A, - 14279: 0x861B, - 14280: 0x861C, - 14281: 0x861D, - 14282: 0x861E, - 14283: 0x861F, - 14284: 0x8620, - 14285: 0x8621, - 14286: 0x8622, - 14287: 0x8623, - 14288: 0x8624, - 14289: 0x8625, - 14290: 0x8626, - 14291: 0x8628, - 14292: 0x862A, - 14293: 0x862B, - 14294: 0x862C, - 14295: 0x862D, - 14296: 0x862E, - 14297: 0x862F, - 14298: 0x8630, - 14299: 0x8631, - 14300: 0x8632, - 14301: 0x8633, - 14302: 0x8634, - 14303: 0x8635, - 14304: 0x8636, - 14305: 0x8637, - 14306: 0x8639, - 14307: 0x863A, - 14308: 0x863B, - 14309: 0x863D, - 14310: 0x863E, - 14311: 0x863F, - 14312: 0x8640, - 14313: 0x8641, - 14314: 0x8642, - 14315: 0x8643, - 14316: 0x8644, - 14317: 0x8645, - 14318: 0x8646, - 14319: 0x8647, - 14320: 0x8648, - 14321: 0x8649, - 14322: 0x864A, - 14323: 0x864B, - 14324: 0x864C, - 14325: 0x8652, - 14326: 0x8653, - 14327: 0x8655, - 14328: 0x8656, - 14329: 0x8657, - 14330: 0x8658, - 14331: 0x8659, - 14332: 0x865B, - 14333: 0x865C, - 14334: 0x865D, - 14335: 0x865F, - 14336: 0x8660, - 14337: 0x8661, - 14338: 0x8663, - 14339: 0x8664, - 14340: 0x8665, - 14341: 0x8666, - 14342: 0x8667, - 14343: 0x8668, - 14344: 0x8669, - 14345: 0x866A, - 14346: 0x736D, - 14347: 0x631E, - 14348: 0x8E4B, - 14349: 0x8E0F, - 14350: 0x80CE, - 14351: 0x82D4, - 14352: 0x62AC, - 14353: 0x53F0, - 14354: 0x6CF0, - 14355: 0x915E, - 14356: 0x592A, - 14357: 0x6001, - 14358: 0x6C70, - 14359: 0x574D, - 14360: 0x644A, - 14361: 0x8D2A, - 14362: 0x762B, - 14363: 0x6EE9, - 14364: 0x575B, - 14365: 0x6A80, - 14366: 0x75F0, - 14367: 0x6F6D, - 14368: 0x8C2D, - 14369: 0x8C08, - 14370: 0x5766, - 14371: 0x6BEF, - 14372: 0x8892, - 14373: 0x78B3, - 14374: 0x63A2, - 14375: 0x53F9, - 14376: 0x70AD, - 14377: 0x6C64, - 14378: 0x5858, - 14379: 0x642A, - 14380: 0x5802, - 14381: 0x68E0, - 14382: 0x819B, - 14383: 0x5510, - 14384: 0x7CD6, - 14385: 0x5018, - 14386: 0x8EBA, - 14387: 0x6DCC, - 14388: 0x8D9F, - 14389: 0x70EB, - 14390: 0x638F, - 14391: 0x6D9B, - 14392: 0x6ED4, - 14393: 0x7EE6, - 14394: 0x8404, - 14395: 0x6843, - 14396: 0x9003, - 14397: 0x6DD8, - 14398: 0x9676, - 14399: 0x8BA8, - 14400: 0x5957, - 14401: 0x7279, - 14402: 0x85E4, - 14403: 0x817E, - 14404: 0x75BC, - 14405: 0x8A8A, - 14406: 0x68AF, - 14407: 0x5254, - 14408: 0x8E22, - 14409: 0x9511, - 14410: 0x63D0, - 14411: 0x9898, - 14412: 0x8E44, - 14413: 0x557C, - 14414: 0x4F53, - 14415: 0x66FF, - 14416: 0x568F, - 14417: 0x60D5, - 14418: 0x6D95, - 14419: 0x5243, - 14420: 0x5C49, - 14421: 0x5929, - 14422: 0x6DFB, - 14423: 0x586B, - 14424: 0x7530, - 14425: 0x751C, - 14426: 0x606C, - 14427: 0x8214, - 14428: 0x8146, - 14429: 0x6311, - 14430: 0x6761, - 14431: 0x8FE2, - 14432: 0x773A, - 14433: 0x8DF3, - 14434: 0x8D34, - 14435: 0x94C1, - 14436: 0x5E16, - 14437: 0x5385, - 14438: 0x542C, - 14439: 0x70C3, - 14440: 0x866D, - 14441: 0x866F, - 14442: 0x8670, - 14443: 0x8672, - 14444: 0x8673, - 14445: 0x8674, - 14446: 0x8675, - 14447: 0x8676, - 14448: 0x8677, - 14449: 0x8678, - 14450: 0x8683, - 14451: 0x8684, - 14452: 0x8685, - 14453: 0x8686, - 14454: 0x8687, - 14455: 0x8688, - 14456: 0x8689, - 14457: 0x868E, - 14458: 0x868F, - 14459: 0x8690, - 14460: 0x8691, - 14461: 0x8692, - 14462: 0x8694, - 14463: 0x8696, - 14464: 0x8697, - 14465: 0x8698, - 14466: 0x8699, - 14467: 0x869A, - 14468: 0x869B, - 14469: 0x869E, - 14470: 0x869F, - 14471: 0x86A0, - 14472: 0x86A1, - 14473: 0x86A2, - 14474: 0x86A5, - 14475: 0x86A6, - 14476: 0x86AB, - 14477: 0x86AD, - 14478: 0x86AE, - 14479: 0x86B2, - 14480: 0x86B3, - 14481: 0x86B7, - 14482: 0x86B8, - 14483: 0x86B9, - 14484: 0x86BB, - 14485: 0x86BC, - 14486: 0x86BD, - 14487: 0x86BE, - 14488: 0x86BF, - 14489: 0x86C1, - 14490: 0x86C2, - 14491: 0x86C3, - 14492: 0x86C5, - 14493: 0x86C8, - 14494: 0x86CC, - 14495: 0x86CD, - 14496: 0x86D2, - 14497: 0x86D3, - 14498: 0x86D5, - 14499: 0x86D6, - 14500: 0x86D7, - 14501: 0x86DA, - 14502: 0x86DC, - 14503: 0x86DD, - 14504: 0x86E0, - 14505: 0x86E1, - 14506: 0x86E2, - 14507: 0x86E3, - 14508: 0x86E5, - 14509: 0x86E6, - 14510: 0x86E7, - 14511: 0x86E8, - 14512: 0x86EA, - 14513: 0x86EB, - 14514: 0x86EC, - 14515: 0x86EF, - 14516: 0x86F5, - 14517: 0x86F6, - 14518: 0x86F7, - 14519: 0x86FA, - 14520: 0x86FB, - 14521: 0x86FC, - 14522: 0x86FD, - 14523: 0x86FF, - 14524: 0x8701, - 14525: 0x8704, - 14526: 0x8705, - 14527: 0x8706, - 14528: 0x870B, - 14529: 0x870C, - 14530: 0x870E, - 14531: 0x870F, - 14532: 0x8710, - 14533: 0x8711, - 14534: 0x8714, - 14535: 0x8716, - 14536: 0x6C40, - 14537: 0x5EF7, - 14538: 0x505C, - 14539: 0x4EAD, - 14540: 0x5EAD, - 14541: 0x633A, - 14542: 0x8247, - 14543: 0x901A, - 14544: 0x6850, - 14545: 0x916E, - 14546: 0x77B3, - 14547: 0x540C, - 14548: 0x94DC, - 14549: 0x5F64, - 14550: 0x7AE5, - 14551: 0x6876, - 14552: 0x6345, - 14553: 0x7B52, - 14554: 0x7EDF, - 14555: 0x75DB, - 14556: 0x5077, - 14557: 0x6295, - 14558: 0x5934, - 14559: 0x900F, - 14560: 0x51F8, - 14561: 0x79C3, - 14562: 0x7A81, - 14563: 0x56FE, - 14564: 0x5F92, - 14565: 0x9014, - 14566: 0x6D82, - 14567: 0x5C60, - 14568: 0x571F, - 14569: 0x5410, - 14570: 0x5154, - 14571: 0x6E4D, - 14572: 0x56E2, - 14573: 0x63A8, - 14574: 0x9893, - 14575: 0x817F, - 14576: 0x8715, - 14577: 0x892A, - 14578: 0x9000, - 14579: 0x541E, - 14580: 0x5C6F, - 14581: 0x81C0, - 14582: 0x62D6, - 14583: 0x6258, - 14584: 0x8131, - 14585: 0x9E35, - 14586: 0x9640, - 14587: 0x9A6E, - 14588: 0x9A7C, - 14589: 0x692D, - 14590: 0x59A5, - 14591: 0x62D3, - 14592: 0x553E, - 14593: 0x6316, - 14594: 0x54C7, - 14595: 0x86D9, - 14596: 0x6D3C, - 14597: 0x5A03, - 14598: 0x74E6, - 14599: 0x889C, - 14600: 0x6B6A, - 14601: 0x5916, - 14602: 0x8C4C, - 14603: 0x5F2F, - 14604: 0x6E7E, - 14605: 0x73A9, - 14606: 0x987D, - 14607: 0x4E38, - 14608: 0x70F7, - 14609: 0x5B8C, - 14610: 0x7897, - 14611: 0x633D, - 14612: 0x665A, - 14613: 0x7696, - 14614: 0x60CB, - 14615: 0x5B9B, - 14616: 0x5A49, - 14617: 0x4E07, - 14618: 0x8155, - 14619: 0x6C6A, - 14620: 0x738B, - 14621: 0x4EA1, - 14622: 0x6789, - 14623: 0x7F51, - 14624: 0x5F80, - 14625: 0x65FA, - 14626: 0x671B, - 14627: 0x5FD8, - 14628: 0x5984, - 14629: 0x5A01, - 14630: 0x8719, - 14631: 0x871B, - 14632: 0x871D, - 14633: 0x871F, - 14634: 0x8720, - 14635: 0x8724, - 14636: 0x8726, - 14637: 0x8727, - 14638: 0x8728, - 14639: 0x872A, - 14640: 0x872B, - 14641: 0x872C, - 14642: 0x872D, - 14643: 0x872F, - 14644: 0x8730, - 14645: 0x8732, - 14646: 0x8733, - 14647: 0x8735, - 14648: 0x8736, - 14649: 0x8738, - 14650: 0x8739, - 14651: 0x873A, - 14652: 0x873C, - 14653: 0x873D, - 14654: 0x8740, - 14655: 0x8741, - 14656: 0x8742, - 14657: 0x8743, - 14658: 0x8744, - 14659: 0x8745, - 14660: 0x8746, - 14661: 0x874A, - 14662: 0x874B, - 14663: 0x874D, - 14664: 0x874F, - 14665: 0x8750, - 14666: 0x8751, - 14667: 0x8752, - 14668: 0x8754, - 14669: 0x8755, - 14670: 0x8756, - 14671: 0x8758, - 14672: 0x875A, - 14673: 0x875B, - 14674: 0x875C, - 14675: 0x875D, - 14676: 0x875E, - 14677: 0x875F, - 14678: 0x8761, - 14679: 0x8762, - 14680: 0x8766, - 14681: 0x8767, - 14682: 0x8768, - 14683: 0x8769, - 14684: 0x876A, - 14685: 0x876B, - 14686: 0x876C, - 14687: 0x876D, - 14688: 0x876F, - 14689: 0x8771, - 14690: 0x8772, - 14691: 0x8773, - 14692: 0x8775, - 14693: 0x8777, - 14694: 0x8778, - 14695: 0x8779, - 14696: 0x877A, - 14697: 0x877F, - 14698: 0x8780, - 14699: 0x8781, - 14700: 0x8784, - 14701: 0x8786, - 14702: 0x8787, - 14703: 0x8789, - 14704: 0x878A, - 14705: 0x878C, - 14706: 0x878E, - 14707: 0x878F, - 14708: 0x8790, - 14709: 0x8791, - 14710: 0x8792, - 14711: 0x8794, - 14712: 0x8795, - 14713: 0x8796, - 14714: 0x8798, - 14715: 0x8799, - 14716: 0x879A, - 14717: 0x879B, - 14718: 0x879C, - 14719: 0x879D, - 14720: 0x879E, - 14721: 0x87A0, - 14722: 0x87A1, - 14723: 0x87A2, - 14724: 0x87A3, - 14725: 0x87A4, - 14726: 0x5DCD, - 14727: 0x5FAE, - 14728: 0x5371, - 14729: 0x97E6, - 14730: 0x8FDD, - 14731: 0x6845, - 14732: 0x56F4, - 14733: 0x552F, - 14734: 0x60DF, - 14735: 0x4E3A, - 14736: 0x6F4D, - 14737: 0x7EF4, - 14738: 0x82C7, - 14739: 0x840E, - 14740: 0x59D4, - 14741: 0x4F1F, - 14742: 0x4F2A, - 14743: 0x5C3E, - 14744: 0x7EAC, - 14745: 0x672A, - 14746: 0x851A, - 14747: 0x5473, - 14748: 0x754F, - 14749: 0x80C3, - 14750: 0x5582, - 14751: 0x9B4F, - 14752: 0x4F4D, - 14753: 0x6E2D, - 14754: 0x8C13, - 14755: 0x5C09, - 14756: 0x6170, - 14757: 0x536B, - 14758: 0x761F, - 14759: 0x6E29, - 14760: 0x868A, - 14761: 0x6587, - 14762: 0x95FB, - 14763: 0x7EB9, - 14764: 0x543B, - 14765: 0x7A33, - 14766: 0x7D0A, - 14767: 0x95EE, - 14768: 0x55E1, - 14769: 0x7FC1, - 14770: 0x74EE, - 14771: 0x631D, - 14772: 0x8717, - 14773: 0x6DA1, - 14774: 0x7A9D, - 14775: 0x6211, - 14776: 0x65A1, - 14777: 0x5367, - 14778: 0x63E1, - 14779: 0x6C83, - 14780: 0x5DEB, - 14781: 0x545C, - 14782: 0x94A8, - 14783: 0x4E4C, - 14784: 0x6C61, - 14785: 0x8BEC, - 14786: 0x5C4B, - 14787: 0x65E0, - 14788: 0x829C, - 14789: 0x68A7, - 14790: 0x543E, - 14791: 0x5434, - 14792: 0x6BCB, - 14793: 0x6B66, - 14794: 0x4E94, - 14795: 0x6342, - 14796: 0x5348, - 14797: 0x821E, - 14798: 0x4F0D, - 14799: 0x4FAE, - 14800: 0x575E, - 14801: 0x620A, - 14802: 0x96FE, - 14803: 0x6664, - 14804: 0x7269, - 14805: 0x52FF, - 14806: 0x52A1, - 14807: 0x609F, - 14808: 0x8BEF, - 14809: 0x6614, - 14810: 0x7199, - 14811: 0x6790, - 14812: 0x897F, - 14813: 0x7852, - 14814: 0x77FD, - 14815: 0x6670, - 14816: 0x563B, - 14817: 0x5438, - 14818: 0x9521, - 14819: 0x727A, - 14820: 0x87A5, - 14821: 0x87A6, - 14822: 0x87A7, - 14823: 0x87A9, - 14824: 0x87AA, - 14825: 0x87AE, - 14826: 0x87B0, - 14827: 0x87B1, - 14828: 0x87B2, - 14829: 0x87B4, - 14830: 0x87B6, - 14831: 0x87B7, - 14832: 0x87B8, - 14833: 0x87B9, - 14834: 0x87BB, - 14835: 0x87BC, - 14836: 0x87BE, - 14837: 0x87BF, - 14838: 0x87C1, - 14839: 0x87C2, - 14840: 0x87C3, - 14841: 0x87C4, - 14842: 0x87C5, - 14843: 0x87C7, - 14844: 0x87C8, - 14845: 0x87C9, - 14846: 0x87CC, - 14847: 0x87CD, - 14848: 0x87CE, - 14849: 0x87CF, - 14850: 0x87D0, - 14851: 0x87D4, - 14852: 0x87D5, - 14853: 0x87D6, - 14854: 0x87D7, - 14855: 0x87D8, - 14856: 0x87D9, - 14857: 0x87DA, - 14858: 0x87DC, - 14859: 0x87DD, - 14860: 0x87DE, - 14861: 0x87DF, - 14862: 0x87E1, - 14863: 0x87E2, - 14864: 0x87E3, - 14865: 0x87E4, - 14866: 0x87E6, - 14867: 0x87E7, - 14868: 0x87E8, - 14869: 0x87E9, - 14870: 0x87EB, - 14871: 0x87EC, - 14872: 0x87ED, - 14873: 0x87EF, - 14874: 0x87F0, - 14875: 0x87F1, - 14876: 0x87F2, - 14877: 0x87F3, - 14878: 0x87F4, - 14879: 0x87F5, - 14880: 0x87F6, - 14881: 0x87F7, - 14882: 0x87F8, - 14883: 0x87FA, - 14884: 0x87FB, - 14885: 0x87FC, - 14886: 0x87FD, - 14887: 0x87FF, - 14888: 0x8800, - 14889: 0x8801, - 14890: 0x8802, - 14891: 0x8804, - 14892: 0x8805, - 14893: 0x8806, - 14894: 0x8807, - 14895: 0x8808, - 14896: 0x8809, - 14897: 0x880B, - 14898: 0x880C, - 14899: 0x880D, - 14900: 0x880E, - 14901: 0x880F, - 14902: 0x8810, - 14903: 0x8811, - 14904: 0x8812, - 14905: 0x8814, - 14906: 0x8817, - 14907: 0x8818, - 14908: 0x8819, - 14909: 0x881A, - 14910: 0x881C, - 14911: 0x881D, - 14912: 0x881E, - 14913: 0x881F, - 14914: 0x8820, - 14915: 0x8823, - 14916: 0x7A00, - 14917: 0x606F, - 14918: 0x5E0C, - 14919: 0x6089, - 14920: 0x819D, - 14921: 0x5915, - 14922: 0x60DC, - 14923: 0x7184, - 14924: 0x70EF, - 14925: 0x6EAA, - 14926: 0x6C50, - 14927: 0x7280, - 14928: 0x6A84, - 14929: 0x88AD, - 14930: 0x5E2D, - 14931: 0x4E60, - 14932: 0x5AB3, - 14933: 0x559C, - 14934: 0x94E3, - 14935: 0x6D17, - 14936: 0x7CFB, - 14937: 0x9699, - 14938: 0x620F, - 14939: 0x7EC6, - 14940: 0x778E, - 14941: 0x867E, - 14942: 0x5323, - 14943: 0x971E, - 14944: 0x8F96, - 14945: 0x6687, - 14946: 0x5CE1, - 14947: 0x4FA0, - 14948: 0x72ED, - 14949: 0x4E0B, - 14950: 0x53A6, - 14951: 0x590F, - 14952: 0x5413, - 14953: 0x6380, - 14954: 0x9528, - 14955: 0x5148, - 14956: 0x4ED9, - 14957: 0x9C9C, - 14958: 0x7EA4, - 14959: 0x54B8, - 14960: 0x8D24, - 14961: 0x8854, - 14962: 0x8237, - 14963: 0x95F2, - 14964: 0x6D8E, - 14965: 0x5F26, - 14966: 0x5ACC, - 14967: 0x663E, - 14968: 0x9669, - 14969: 0x73B0, - 14970: 0x732E, - 14971: 0x53BF, - 14972: 0x817A, - 14973: 0x9985, - 14974: 0x7FA1, - 14975: 0x5BAA, - 14976: 0x9677, - 14977: 0x9650, - 14978: 0x7EBF, - 14979: 0x76F8, - 14980: 0x53A2, - 14981: 0x9576, - 14982: 0x9999, - 14983: 0x7BB1, - 14984: 0x8944, - 14985: 0x6E58, - 14986: 0x4E61, - 14987: 0x7FD4, - 14988: 0x7965, - 14989: 0x8BE6, - 14990: 0x60F3, - 14991: 0x54CD, - 14992: 0x4EAB, - 14993: 0x9879, - 14994: 0x5DF7, - 14995: 0x6A61, - 14996: 0x50CF, - 14997: 0x5411, - 14998: 0x8C61, - 14999: 0x8427, - 15000: 0x785D, - 15001: 0x9704, - 15002: 0x524A, - 15003: 0x54EE, - 15004: 0x56A3, - 15005: 0x9500, - 15006: 0x6D88, - 15007: 0x5BB5, - 15008: 0x6DC6, - 15009: 0x6653, - 15010: 0x8824, - 15011: 0x8825, - 15012: 0x8826, - 15013: 0x8827, - 15014: 0x8828, - 15015: 0x8829, - 15016: 0x882A, - 15017: 0x882B, - 15018: 0x882C, - 15019: 0x882D, - 15020: 0x882E, - 15021: 0x882F, - 15022: 0x8830, - 15023: 0x8831, - 15024: 0x8833, - 15025: 0x8834, - 15026: 0x8835, - 15027: 0x8836, - 15028: 0x8837, - 15029: 0x8838, - 15030: 0x883A, - 15031: 0x883B, - 15032: 0x883D, - 15033: 0x883E, - 15034: 0x883F, - 15035: 0x8841, - 15036: 0x8842, - 15037: 0x8843, - 15038: 0x8846, - 15039: 0x8847, - 15040: 0x8848, - 15041: 0x8849, - 15042: 0x884A, - 15043: 0x884B, - 15044: 0x884E, - 15045: 0x884F, - 15046: 0x8850, - 15047: 0x8851, - 15048: 0x8852, - 15049: 0x8853, - 15050: 0x8855, - 15051: 0x8856, - 15052: 0x8858, - 15053: 0x885A, - 15054: 0x885B, - 15055: 0x885C, - 15056: 0x885D, - 15057: 0x885E, - 15058: 0x885F, - 15059: 0x8860, - 15060: 0x8866, - 15061: 0x8867, - 15062: 0x886A, - 15063: 0x886D, - 15064: 0x886F, - 15065: 0x8871, - 15066: 0x8873, - 15067: 0x8874, - 15068: 0x8875, - 15069: 0x8876, - 15070: 0x8878, - 15071: 0x8879, - 15072: 0x887A, - 15073: 0x887B, - 15074: 0x887C, - 15075: 0x8880, - 15076: 0x8883, - 15077: 0x8886, - 15078: 0x8887, - 15079: 0x8889, - 15080: 0x888A, - 15081: 0x888C, - 15082: 0x888E, - 15083: 0x888F, - 15084: 0x8890, - 15085: 0x8891, - 15086: 0x8893, - 15087: 0x8894, - 15088: 0x8895, - 15089: 0x8897, - 15090: 0x8898, - 15091: 0x8899, - 15092: 0x889A, - 15093: 0x889B, - 15094: 0x889D, - 15095: 0x889E, - 15096: 0x889F, - 15097: 0x88A0, - 15098: 0x88A1, - 15099: 0x88A3, - 15100: 0x88A5, - 15101: 0x88A6, - 15102: 0x88A7, - 15103: 0x88A8, - 15104: 0x88A9, - 15105: 0x88AA, - 15106: 0x5C0F, - 15107: 0x5B5D, - 15108: 0x6821, - 15109: 0x8096, - 15110: 0x5578, - 15111: 0x7B11, - 15112: 0x6548, - 15113: 0x6954, - 15114: 0x4E9B, - 15115: 0x6B47, - 15116: 0x874E, - 15117: 0x978B, - 15118: 0x534F, - 15119: 0x631F, - 15120: 0x643A, - 15121: 0x90AA, - 15122: 0x659C, - 15123: 0x80C1, - 15124: 0x8C10, - 15125: 0x5199, - 15126: 0x68B0, - 15127: 0x5378, - 15128: 0x87F9, - 15129: 0x61C8, - 15130: 0x6CC4, - 15131: 0x6CFB, - 15132: 0x8C22, - 15133: 0x5C51, - 15134: 0x85AA, - 15135: 0x82AF, - 15136: 0x950C, - 15137: 0x6B23, - 15138: 0x8F9B, - 15139: 0x65B0, - 15140: 0x5FFB, - 15141: 0x5FC3, - 15142: 0x4FE1, - 15143: 0x8845, - 15144: 0x661F, - 15145: 0x8165, - 15146: 0x7329, - 15147: 0x60FA, - 15148: 0x5174, - 15149: 0x5211, - 15150: 0x578B, - 15151: 0x5F62, - 15152: 0x90A2, - 15153: 0x884C, - 15154: 0x9192, - 15155: 0x5E78, - 15156: 0x674F, - 15157: 0x6027, - 15158: 0x59D3, - 15159: 0x5144, - 15160: 0x51F6, - 15161: 0x80F8, - 15162: 0x5308, - 15163: 0x6C79, - 15164: 0x96C4, - 15165: 0x718A, - 15166: 0x4F11, - 15167: 0x4FEE, - 15168: 0x7F9E, - 15169: 0x673D, - 15170: 0x55C5, - 15171: 0x9508, - 15172: 0x79C0, - 15173: 0x8896, - 15174: 0x7EE3, - 15175: 0x589F, - 15176: 0x620C, - 15177: 0x9700, - 15178: 0x865A, - 15179: 0x5618, - 15180: 0x987B, - 15181: 0x5F90, - 15182: 0x8BB8, - 15183: 0x84C4, - 15184: 0x9157, - 15185: 0x53D9, - 15186: 0x65ED, - 15187: 0x5E8F, - 15188: 0x755C, - 15189: 0x6064, - 15190: 0x7D6E, - 15191: 0x5A7F, - 15192: 0x7EEA, - 15193: 0x7EED, - 15194: 0x8F69, - 15195: 0x55A7, - 15196: 0x5BA3, - 15197: 0x60AC, - 15198: 0x65CB, - 15199: 0x7384, - 15200: 0x88AC, - 15201: 0x88AE, - 15202: 0x88AF, - 15203: 0x88B0, - 15204: 0x88B2, - 15205: 0x88B3, - 15206: 0x88B4, - 15207: 0x88B5, - 15208: 0x88B6, - 15209: 0x88B8, - 15210: 0x88B9, - 15211: 0x88BA, - 15212: 0x88BB, - 15213: 0x88BD, - 15214: 0x88BE, - 15215: 0x88BF, - 15216: 0x88C0, - 15217: 0x88C3, - 15218: 0x88C4, - 15219: 0x88C7, - 15220: 0x88C8, - 15221: 0x88CA, - 15222: 0x88CB, - 15223: 0x88CC, - 15224: 0x88CD, - 15225: 0x88CF, - 15226: 0x88D0, - 15227: 0x88D1, - 15228: 0x88D3, - 15229: 0x88D6, - 15230: 0x88D7, - 15231: 0x88DA, - 15232: 0x88DB, - 15233: 0x88DC, - 15234: 0x88DD, - 15235: 0x88DE, - 15236: 0x88E0, - 15237: 0x88E1, - 15238: 0x88E6, - 15239: 0x88E7, - 15240: 0x88E9, - 15241: 0x88EA, - 15242: 0x88EB, - 15243: 0x88EC, - 15244: 0x88ED, - 15245: 0x88EE, - 15246: 0x88EF, - 15247: 0x88F2, - 15248: 0x88F5, - 15249: 0x88F6, - 15250: 0x88F7, - 15251: 0x88FA, - 15252: 0x88FB, - 15253: 0x88FD, - 15254: 0x88FF, - 15255: 0x8900, - 15256: 0x8901, - 15257: 0x8903, - 15258: 0x8904, - 15259: 0x8905, - 15260: 0x8906, - 15261: 0x8907, - 15262: 0x8908, - 15263: 0x8909, - 15264: 0x890B, - 15265: 0x890C, - 15266: 0x890D, - 15267: 0x890E, - 15268: 0x890F, - 15269: 0x8911, - 15270: 0x8914, - 15271: 0x8915, - 15272: 0x8916, - 15273: 0x8917, - 15274: 0x8918, - 15275: 0x891C, - 15276: 0x891D, - 15277: 0x891E, - 15278: 0x891F, - 15279: 0x8920, - 15280: 0x8922, - 15281: 0x8923, - 15282: 0x8924, - 15283: 0x8926, - 15284: 0x8927, - 15285: 0x8928, - 15286: 0x8929, - 15287: 0x892C, - 15288: 0x892D, - 15289: 0x892E, - 15290: 0x892F, - 15291: 0x8931, - 15292: 0x8932, - 15293: 0x8933, - 15294: 0x8935, - 15295: 0x8937, - 15296: 0x9009, - 15297: 0x7663, - 15298: 0x7729, - 15299: 0x7EDA, - 15300: 0x9774, - 15301: 0x859B, - 15302: 0x5B66, - 15303: 0x7A74, - 15304: 0x96EA, - 15305: 0x8840, - 15306: 0x52CB, - 15307: 0x718F, - 15308: 0x5FAA, - 15309: 0x65EC, - 15310: 0x8BE2, - 15311: 0x5BFB, - 15312: 0x9A6F, - 15313: 0x5DE1, - 15314: 0x6B89, - 15315: 0x6C5B, - 15316: 0x8BAD, - 15317: 0x8BAF, - 15318: 0x900A, - 15319: 0x8FC5, - 15320: 0x538B, - 15321: 0x62BC, - 15322: 0x9E26, - 15323: 0x9E2D, - 15324: 0x5440, - 15325: 0x4E2B, - 15326: 0x82BD, - 15327: 0x7259, - 15328: 0x869C, - 15329: 0x5D16, - 15330: 0x8859, - 15331: 0x6DAF, - 15332: 0x96C5, - 15333: 0x54D1, - 15334: 0x4E9A, - 15335: 0x8BB6, - 15336: 0x7109, - 15337: 0x54BD, - 15338: 0x9609, - 15339: 0x70DF, - 15340: 0x6DF9, - 15341: 0x76D0, - 15342: 0x4E25, - 15343: 0x7814, - 15344: 0x8712, - 15345: 0x5CA9, - 15346: 0x5EF6, - 15347: 0x8A00, - 15348: 0x989C, - 15349: 0x960E, - 15350: 0x708E, - 15351: 0x6CBF, - 15352: 0x5944, - 15353: 0x63A9, - 15354: 0x773C, - 15355: 0x884D, - 15356: 0x6F14, - 15357: 0x8273, - 15358: 0x5830, - 15359: 0x71D5, - 15360: 0x538C, - 15361: 0x781A, - 15362: 0x96C1, - 15363: 0x5501, - 15364: 0x5F66, - 15365: 0x7130, - 15366: 0x5BB4, - 15367: 0x8C1A, - 15368: 0x9A8C, - 15369: 0x6B83, - 15370: 0x592E, - 15371: 0x9E2F, - 15372: 0x79E7, - 15373: 0x6768, - 15374: 0x626C, - 15375: 0x4F6F, - 15376: 0x75A1, - 15377: 0x7F8A, - 15378: 0x6D0B, - 15379: 0x9633, - 15380: 0x6C27, - 15381: 0x4EF0, - 15382: 0x75D2, - 15383: 0x517B, - 15384: 0x6837, - 15385: 0x6F3E, - 15386: 0x9080, - 15387: 0x8170, - 15388: 0x5996, - 15389: 0x7476, - 15390: 0x8938, - 15391: 0x8939, - 15392: 0x893A, - 15393: 0x893B, - 15394: 0x893C, - 15395: 0x893D, - 15396: 0x893E, - 15397: 0x893F, - 15398: 0x8940, - 15399: 0x8942, - 15400: 0x8943, - 15401: 0x8945, - 15402: 0x8946, - 15403: 0x8947, - 15404: 0x8948, - 15405: 0x8949, - 15406: 0x894A, - 15407: 0x894B, - 15408: 0x894C, - 15409: 0x894D, - 15410: 0x894E, - 15411: 0x894F, - 15412: 0x8950, - 15413: 0x8951, - 15414: 0x8952, - 15415: 0x8953, - 15416: 0x8954, - 15417: 0x8955, - 15418: 0x8956, - 15419: 0x8957, - 15420: 0x8958, - 15421: 0x8959, - 15422: 0x895A, - 15423: 0x895B, - 15424: 0x895C, - 15425: 0x895D, - 15426: 0x8960, - 15427: 0x8961, - 15428: 0x8962, - 15429: 0x8963, - 15430: 0x8964, - 15431: 0x8965, - 15432: 0x8967, - 15433: 0x8968, - 15434: 0x8969, - 15435: 0x896A, - 15436: 0x896B, - 15437: 0x896C, - 15438: 0x896D, - 15439: 0x896E, - 15440: 0x896F, - 15441: 0x8970, - 15442: 0x8971, - 15443: 0x8972, - 15444: 0x8973, - 15445: 0x8974, - 15446: 0x8975, - 15447: 0x8976, - 15448: 0x8977, - 15449: 0x8978, - 15450: 0x8979, - 15451: 0x897A, - 15452: 0x897C, - 15453: 0x897D, - 15454: 0x897E, - 15455: 0x8980, - 15456: 0x8982, - 15457: 0x8984, - 15458: 0x8985, - 15459: 0x8987, - 15460: 0x8988, - 15461: 0x8989, - 15462: 0x898A, - 15463: 0x898B, - 15464: 0x898C, - 15465: 0x898D, - 15466: 0x898E, - 15467: 0x898F, - 15468: 0x8990, - 15469: 0x8991, - 15470: 0x8992, - 15471: 0x8993, - 15472: 0x8994, - 15473: 0x8995, - 15474: 0x8996, - 15475: 0x8997, - 15476: 0x8998, - 15477: 0x8999, - 15478: 0x899A, - 15479: 0x899B, - 15480: 0x899C, - 15481: 0x899D, - 15482: 0x899E, - 15483: 0x899F, - 15484: 0x89A0, - 15485: 0x89A1, - 15486: 0x6447, - 15487: 0x5C27, - 15488: 0x9065, - 15489: 0x7A91, - 15490: 0x8C23, - 15491: 0x59DA, - 15492: 0x54AC, - 15493: 0x8200, - 15494: 0x836F, - 15495: 0x8981, - 15496: 0x8000, - 15497: 0x6930, - 15498: 0x564E, - 15499: 0x8036, - 15500: 0x7237, - 15501: 0x91CE, - 15502: 0x51B6, - 15503: 0x4E5F, - 15504: 0x9875, - 15505: 0x6396, - 15506: 0x4E1A, - 15507: 0x53F6, - 15508: 0x66F3, - 15509: 0x814B, - 15510: 0x591C, - 15511: 0x6DB2, - 15512: 0x4E00, - 15513: 0x58F9, - 15514: 0x533B, - 15515: 0x63D6, - 15516: 0x94F1, - 15517: 0x4F9D, - 15518: 0x4F0A, - 15519: 0x8863, - 15520: 0x9890, - 15521: 0x5937, - 15522: 0x9057, - 15523: 0x79FB, - 15524: 0x4EEA, - 15525: 0x80F0, - 15526: 0x7591, - 15527: 0x6C82, - 15528: 0x5B9C, - 15529: 0x59E8, - 15530: 0x5F5D, - 15531: 0x6905, - 15532: 0x8681, - 15533: 0x501A, - 15534: 0x5DF2, - 15535: 0x4E59, - 15536: 0x77E3, - 15537: 0x4EE5, - 15538: 0x827A, - 15539: 0x6291, - 15540: 0x6613, - 15541: 0x9091, - 15542: 0x5C79, - 15543: 0x4EBF, - 15544: 0x5F79, - 15545: 0x81C6, - 15546: 0x9038, - 15547: 0x8084, - 15548: 0x75AB, - 15549: 0x4EA6, - 15550: 0x88D4, - 15551: 0x610F, - 15552: 0x6BC5, - 15553: 0x5FC6, - 15554: 0x4E49, - 15555: 0x76CA, - 15556: 0x6EA2, - 15557: 0x8BE3, - 15558: 0x8BAE, - 15559: 0x8C0A, - 15560: 0x8BD1, - 15561: 0x5F02, - 15562: 0x7FFC, - 15563: 0x7FCC, - 15564: 0x7ECE, - 15565: 0x8335, - 15566: 0x836B, - 15567: 0x56E0, - 15568: 0x6BB7, - 15569: 0x97F3, - 15570: 0x9634, - 15571: 0x59FB, - 15572: 0x541F, - 15573: 0x94F6, - 15574: 0x6DEB, - 15575: 0x5BC5, - 15576: 0x996E, - 15577: 0x5C39, - 15578: 0x5F15, - 15579: 0x9690, - 15580: 0x89A2, - 15581: 0x89A3, - 15582: 0x89A4, - 15583: 0x89A5, - 15584: 0x89A6, - 15585: 0x89A7, - 15586: 0x89A8, - 15587: 0x89A9, - 15588: 0x89AA, - 15589: 0x89AB, - 15590: 0x89AC, - 15591: 0x89AD, - 15592: 0x89AE, - 15593: 0x89AF, - 15594: 0x89B0, - 15595: 0x89B1, - 15596: 0x89B2, - 15597: 0x89B3, - 15598: 0x89B4, - 15599: 0x89B5, - 15600: 0x89B6, - 15601: 0x89B7, - 15602: 0x89B8, - 15603: 0x89B9, - 15604: 0x89BA, - 15605: 0x89BB, - 15606: 0x89BC, - 15607: 0x89BD, - 15608: 0x89BE, - 15609: 0x89BF, - 15610: 0x89C0, - 15611: 0x89C3, - 15612: 0x89CD, - 15613: 0x89D3, - 15614: 0x89D4, - 15615: 0x89D5, - 15616: 0x89D7, - 15617: 0x89D8, - 15618: 0x89D9, - 15619: 0x89DB, - 15620: 0x89DD, - 15621: 0x89DF, - 15622: 0x89E0, - 15623: 0x89E1, - 15624: 0x89E2, - 15625: 0x89E4, - 15626: 0x89E7, - 15627: 0x89E8, - 15628: 0x89E9, - 15629: 0x89EA, - 15630: 0x89EC, - 15631: 0x89ED, - 15632: 0x89EE, - 15633: 0x89F0, - 15634: 0x89F1, - 15635: 0x89F2, - 15636: 0x89F4, - 15637: 0x89F5, - 15638: 0x89F6, - 15639: 0x89F7, - 15640: 0x89F8, - 15641: 0x89F9, - 15642: 0x89FA, - 15643: 0x89FB, - 15644: 0x89FC, - 15645: 0x89FD, - 15646: 0x89FE, - 15647: 0x89FF, - 15648: 0x8A01, - 15649: 0x8A02, - 15650: 0x8A03, - 15651: 0x8A04, - 15652: 0x8A05, - 15653: 0x8A06, - 15654: 0x8A08, - 15655: 0x8A09, - 15656: 0x8A0A, - 15657: 0x8A0B, - 15658: 0x8A0C, - 15659: 0x8A0D, - 15660: 0x8A0E, - 15661: 0x8A0F, - 15662: 0x8A10, - 15663: 0x8A11, - 15664: 0x8A12, - 15665: 0x8A13, - 15666: 0x8A14, - 15667: 0x8A15, - 15668: 0x8A16, - 15669: 0x8A17, - 15670: 0x8A18, - 15671: 0x8A19, - 15672: 0x8A1A, - 15673: 0x8A1B, - 15674: 0x8A1C, - 15675: 0x8A1D, - 15676: 0x5370, - 15677: 0x82F1, - 15678: 0x6A31, - 15679: 0x5A74, - 15680: 0x9E70, - 15681: 0x5E94, - 15682: 0x7F28, - 15683: 0x83B9, - 15684: 0x8424, - 15685: 0x8425, - 15686: 0x8367, - 15687: 0x8747, - 15688: 0x8FCE, - 15689: 0x8D62, - 15690: 0x76C8, - 15691: 0x5F71, - 15692: 0x9896, - 15693: 0x786C, - 15694: 0x6620, - 15695: 0x54DF, - 15696: 0x62E5, - 15697: 0x4F63, - 15698: 0x81C3, - 15699: 0x75C8, - 15700: 0x5EB8, - 15701: 0x96CD, - 15702: 0x8E0A, - 15703: 0x86F9, - 15704: 0x548F, - 15705: 0x6CF3, - 15706: 0x6D8C, - 15707: 0x6C38, - 15708: 0x607F, - 15709: 0x52C7, - 15710: 0x7528, - 15711: 0x5E7D, - 15712: 0x4F18, - 15713: 0x60A0, - 15714: 0x5FE7, - 15715: 0x5C24, - 15716: 0x7531, - 15717: 0x90AE, - 15718: 0x94C0, - 15719: 0x72B9, - 15720: 0x6CB9, - 15721: 0x6E38, - 15722: 0x9149, - 15723: 0x6709, - 15724: 0x53CB, - 15725: 0x53F3, - 15726: 0x4F51, - 15727: 0x91C9, - 15728: 0x8BF1, - 15729: 0x53C8, - 15730: 0x5E7C, - 15731: 0x8FC2, - 15732: 0x6DE4, - 15733: 0x4E8E, - 15734: 0x76C2, - 15735: 0x6986, - 15736: 0x865E, - 15737: 0x611A, - 15738: 0x8206, - 15739: 0x4F59, - 15740: 0x4FDE, - 15741: 0x903E, - 15742: 0x9C7C, - 15743: 0x6109, - 15744: 0x6E1D, - 15745: 0x6E14, - 15746: 0x9685, - 15747: 0x4E88, - 15748: 0x5A31, - 15749: 0x96E8, - 15750: 0x4E0E, - 15751: 0x5C7F, - 15752: 0x79B9, - 15753: 0x5B87, - 15754: 0x8BED, - 15755: 0x7FBD, - 15756: 0x7389, - 15757: 0x57DF, - 15758: 0x828B, - 15759: 0x90C1, - 15760: 0x5401, - 15761: 0x9047, - 15762: 0x55BB, - 15763: 0x5CEA, - 15764: 0x5FA1, - 15765: 0x6108, - 15766: 0x6B32, - 15767: 0x72F1, - 15768: 0x80B2, - 15769: 0x8A89, - 15770: 0x8A1E, - 15771: 0x8A1F, - 15772: 0x8A20, - 15773: 0x8A21, - 15774: 0x8A22, - 15775: 0x8A23, - 15776: 0x8A24, - 15777: 0x8A25, - 15778: 0x8A26, - 15779: 0x8A27, - 15780: 0x8A28, - 15781: 0x8A29, - 15782: 0x8A2A, - 15783: 0x8A2B, - 15784: 0x8A2C, - 15785: 0x8A2D, - 15786: 0x8A2E, - 15787: 0x8A2F, - 15788: 0x8A30, - 15789: 0x8A31, - 15790: 0x8A32, - 15791: 0x8A33, - 15792: 0x8A34, - 15793: 0x8A35, - 15794: 0x8A36, - 15795: 0x8A37, - 15796: 0x8A38, - 15797: 0x8A39, - 15798: 0x8A3A, - 15799: 0x8A3B, - 15800: 0x8A3C, - 15801: 0x8A3D, - 15802: 0x8A3F, - 15803: 0x8A40, - 15804: 0x8A41, - 15805: 0x8A42, - 15806: 0x8A43, - 15807: 0x8A44, - 15808: 0x8A45, - 15809: 0x8A46, - 15810: 0x8A47, - 15811: 0x8A49, - 15812: 0x8A4A, - 15813: 0x8A4B, - 15814: 0x8A4C, - 15815: 0x8A4D, - 15816: 0x8A4E, - 15817: 0x8A4F, - 15818: 0x8A50, - 15819: 0x8A51, - 15820: 0x8A52, - 15821: 0x8A53, - 15822: 0x8A54, - 15823: 0x8A55, - 15824: 0x8A56, - 15825: 0x8A57, - 15826: 0x8A58, - 15827: 0x8A59, - 15828: 0x8A5A, - 15829: 0x8A5B, - 15830: 0x8A5C, - 15831: 0x8A5D, - 15832: 0x8A5E, - 15833: 0x8A5F, - 15834: 0x8A60, - 15835: 0x8A61, - 15836: 0x8A62, - 15837: 0x8A63, - 15838: 0x8A64, - 15839: 0x8A65, - 15840: 0x8A66, - 15841: 0x8A67, - 15842: 0x8A68, - 15843: 0x8A69, - 15844: 0x8A6A, - 15845: 0x8A6B, - 15846: 0x8A6C, - 15847: 0x8A6D, - 15848: 0x8A6E, - 15849: 0x8A6F, - 15850: 0x8A70, - 15851: 0x8A71, - 15852: 0x8A72, - 15853: 0x8A73, - 15854: 0x8A74, - 15855: 0x8A75, - 15856: 0x8A76, - 15857: 0x8A77, - 15858: 0x8A78, - 15859: 0x8A7A, - 15860: 0x8A7B, - 15861: 0x8A7C, - 15862: 0x8A7D, - 15863: 0x8A7E, - 15864: 0x8A7F, - 15865: 0x8A80, - 15866: 0x6D74, - 15867: 0x5BD3, - 15868: 0x88D5, - 15869: 0x9884, - 15870: 0x8C6B, - 15871: 0x9A6D, - 15872: 0x9E33, - 15873: 0x6E0A, - 15874: 0x51A4, - 15875: 0x5143, - 15876: 0x57A3, - 15877: 0x8881, - 15878: 0x539F, - 15879: 0x63F4, - 15880: 0x8F95, - 15881: 0x56ED, - 15882: 0x5458, - 15883: 0x5706, - 15884: 0x733F, - 15885: 0x6E90, - 15886: 0x7F18, - 15887: 0x8FDC, - 15888: 0x82D1, - 15889: 0x613F, - 15890: 0x6028, - 15891: 0x9662, - 15892: 0x66F0, - 15893: 0x7EA6, - 15894: 0x8D8A, - 15895: 0x8DC3, - 15896: 0x94A5, - 15897: 0x5CB3, - 15898: 0x7CA4, - 15899: 0x6708, - 15900: 0x60A6, - 15901: 0x9605, - 15902: 0x8018, - 15903: 0x4E91, - 15904: 0x90E7, - 15905: 0x5300, - 15906: 0x9668, - 15907: 0x5141, - 15908: 0x8FD0, - 15909: 0x8574, - 15910: 0x915D, - 15911: 0x6655, - 15912: 0x97F5, - 15913: 0x5B55, - 15914: 0x531D, - 15915: 0x7838, - 15916: 0x6742, - 15917: 0x683D, - 15918: 0x54C9, - 15919: 0x707E, - 15920: 0x5BB0, - 15921: 0x8F7D, - 15922: 0x518D, - 15923: 0x5728, - 15924: 0x54B1, - 15925: 0x6512, - 15926: 0x6682, - 15927: 0x8D5E, - 15928: 0x8D43, - 15929: 0x810F, - 15930: 0x846C, - 15931: 0x906D, - 15932: 0x7CDF, - 15933: 0x51FF, - 15934: 0x85FB, - 15935: 0x67A3, - 15936: 0x65E9, - 15937: 0x6FA1, - 15938: 0x86A4, - 15939: 0x8E81, - 15940: 0x566A, - 15941: 0x9020, - 15942: 0x7682, - 15943: 0x7076, - 15944: 0x71E5, - 15945: 0x8D23, - 15946: 0x62E9, - 15947: 0x5219, - 15948: 0x6CFD, - 15949: 0x8D3C, - 15950: 0x600E, - 15951: 0x589E, - 15952: 0x618E, - 15953: 0x66FE, - 15954: 0x8D60, - 15955: 0x624E, - 15956: 0x55B3, - 15957: 0x6E23, - 15958: 0x672D, - 15959: 0x8F67, - 15960: 0x8A81, - 15961: 0x8A82, - 15962: 0x8A83, - 15963: 0x8A84, - 15964: 0x8A85, - 15965: 0x8A86, - 15966: 0x8A87, - 15967: 0x8A88, - 15968: 0x8A8B, - 15969: 0x8A8C, - 15970: 0x8A8D, - 15971: 0x8A8E, - 15972: 0x8A8F, - 15973: 0x8A90, - 15974: 0x8A91, - 15975: 0x8A92, - 15976: 0x8A94, - 15977: 0x8A95, - 15978: 0x8A96, - 15979: 0x8A97, - 15980: 0x8A98, - 15981: 0x8A99, - 15982: 0x8A9A, - 15983: 0x8A9B, - 15984: 0x8A9C, - 15985: 0x8A9D, - 15986: 0x8A9E, - 15987: 0x8A9F, - 15988: 0x8AA0, - 15989: 0x8AA1, - 15990: 0x8AA2, - 15991: 0x8AA3, - 15992: 0x8AA4, - 15993: 0x8AA5, - 15994: 0x8AA6, - 15995: 0x8AA7, - 15996: 0x8AA8, - 15997: 0x8AA9, - 15998: 0x8AAA, - 15999: 0x8AAB, - 16000: 0x8AAC, - 16001: 0x8AAD, - 16002: 0x8AAE, - 16003: 0x8AAF, - 16004: 0x8AB0, - 16005: 0x8AB1, - 16006: 0x8AB2, - 16007: 0x8AB3, - 16008: 0x8AB4, - 16009: 0x8AB5, - 16010: 0x8AB6, - 16011: 0x8AB7, - 16012: 0x8AB8, - 16013: 0x8AB9, - 16014: 0x8ABA, - 16015: 0x8ABB, - 16016: 0x8ABC, - 16017: 0x8ABD, - 16018: 0x8ABE, - 16019: 0x8ABF, - 16020: 0x8AC0, - 16021: 0x8AC1, - 16022: 0x8AC2, - 16023: 0x8AC3, - 16024: 0x8AC4, - 16025: 0x8AC5, - 16026: 0x8AC6, - 16027: 0x8AC7, - 16028: 0x8AC8, - 16029: 0x8AC9, - 16030: 0x8ACA, - 16031: 0x8ACB, - 16032: 0x8ACC, - 16033: 0x8ACD, - 16034: 0x8ACE, - 16035: 0x8ACF, - 16036: 0x8AD0, - 16037: 0x8AD1, - 16038: 0x8AD2, - 16039: 0x8AD3, - 16040: 0x8AD4, - 16041: 0x8AD5, - 16042: 0x8AD6, - 16043: 0x8AD7, - 16044: 0x8AD8, - 16045: 0x8AD9, - 16046: 0x8ADA, - 16047: 0x8ADB, - 16048: 0x8ADC, - 16049: 0x8ADD, - 16050: 0x8ADE, - 16051: 0x8ADF, - 16052: 0x8AE0, - 16053: 0x8AE1, - 16054: 0x8AE2, - 16055: 0x8AE3, - 16056: 0x94E1, - 16057: 0x95F8, - 16058: 0x7728, - 16059: 0x6805, - 16060: 0x69A8, - 16061: 0x548B, - 16062: 0x4E4D, - 16063: 0x70B8, - 16064: 0x8BC8, - 16065: 0x6458, - 16066: 0x658B, - 16067: 0x5B85, - 16068: 0x7A84, - 16069: 0x503A, - 16070: 0x5BE8, - 16071: 0x77BB, - 16072: 0x6BE1, - 16073: 0x8A79, - 16074: 0x7C98, - 16075: 0x6CBE, - 16076: 0x76CF, - 16077: 0x65A9, - 16078: 0x8F97, - 16079: 0x5D2D, - 16080: 0x5C55, - 16081: 0x8638, - 16082: 0x6808, - 16083: 0x5360, - 16084: 0x6218, - 16085: 0x7AD9, - 16086: 0x6E5B, - 16087: 0x7EFD, - 16088: 0x6A1F, - 16089: 0x7AE0, - 16090: 0x5F70, - 16091: 0x6F33, - 16092: 0x5F20, - 16093: 0x638C, - 16094: 0x6DA8, - 16095: 0x6756, - 16096: 0x4E08, - 16097: 0x5E10, - 16098: 0x8D26, - 16099: 0x4ED7, - 16100: 0x80C0, - 16101: 0x7634, - 16102: 0x969C, - 16103: 0x62DB, - 16104: 0x662D, - 16105: 0x627E, - 16106: 0x6CBC, - 16107: 0x8D75, - 16108: 0x7167, - 16109: 0x7F69, - 16110: 0x5146, - 16111: 0x8087, - 16112: 0x53EC, - 16113: 0x906E, - 16114: 0x6298, - 16115: 0x54F2, - 16116: 0x86F0, - 16117: 0x8F99, - 16118: 0x8005, - 16119: 0x9517, - 16120: 0x8517, - 16121: 0x8FD9, - 16122: 0x6D59, - 16123: 0x73CD, - 16124: 0x659F, - 16125: 0x771F, - 16126: 0x7504, - 16127: 0x7827, - 16128: 0x81FB, - 16129: 0x8D1E, - 16130: 0x9488, - 16131: 0x4FA6, - 16132: 0x6795, - 16133: 0x75B9, - 16134: 0x8BCA, - 16135: 0x9707, - 16136: 0x632F, - 16137: 0x9547, - 16138: 0x9635, - 16139: 0x84B8, - 16140: 0x6323, - 16141: 0x7741, - 16142: 0x5F81, - 16143: 0x72F0, - 16144: 0x4E89, - 16145: 0x6014, - 16146: 0x6574, - 16147: 0x62EF, - 16148: 0x6B63, - 16149: 0x653F, - 16150: 0x8AE4, - 16151: 0x8AE5, - 16152: 0x8AE6, - 16153: 0x8AE7, - 16154: 0x8AE8, - 16155: 0x8AE9, - 16156: 0x8AEA, - 16157: 0x8AEB, - 16158: 0x8AEC, - 16159: 0x8AED, - 16160: 0x8AEE, - 16161: 0x8AEF, - 16162: 0x8AF0, - 16163: 0x8AF1, - 16164: 0x8AF2, - 16165: 0x8AF3, - 16166: 0x8AF4, - 16167: 0x8AF5, - 16168: 0x8AF6, - 16169: 0x8AF7, - 16170: 0x8AF8, - 16171: 0x8AF9, - 16172: 0x8AFA, - 16173: 0x8AFB, - 16174: 0x8AFC, - 16175: 0x8AFD, - 16176: 0x8AFE, - 16177: 0x8AFF, - 16178: 0x8B00, - 16179: 0x8B01, - 16180: 0x8B02, - 16181: 0x8B03, - 16182: 0x8B04, - 16183: 0x8B05, - 16184: 0x8B06, - 16185: 0x8B08, - 16186: 0x8B09, - 16187: 0x8B0A, - 16188: 0x8B0B, - 16189: 0x8B0C, - 16190: 0x8B0D, - 16191: 0x8B0E, - 16192: 0x8B0F, - 16193: 0x8B10, - 16194: 0x8B11, - 16195: 0x8B12, - 16196: 0x8B13, - 16197: 0x8B14, - 16198: 0x8B15, - 16199: 0x8B16, - 16200: 0x8B17, - 16201: 0x8B18, - 16202: 0x8B19, - 16203: 0x8B1A, - 16204: 0x8B1B, - 16205: 0x8B1C, - 16206: 0x8B1D, - 16207: 0x8B1E, - 16208: 0x8B1F, - 16209: 0x8B20, - 16210: 0x8B21, - 16211: 0x8B22, - 16212: 0x8B23, - 16213: 0x8B24, - 16214: 0x8B25, - 16215: 0x8B27, - 16216: 0x8B28, - 16217: 0x8B29, - 16218: 0x8B2A, - 16219: 0x8B2B, - 16220: 0x8B2C, - 16221: 0x8B2D, - 16222: 0x8B2E, - 16223: 0x8B2F, - 16224: 0x8B30, - 16225: 0x8B31, - 16226: 0x8B32, - 16227: 0x8B33, - 16228: 0x8B34, - 16229: 0x8B35, - 16230: 0x8B36, - 16231: 0x8B37, - 16232: 0x8B38, - 16233: 0x8B39, - 16234: 0x8B3A, - 16235: 0x8B3B, - 16236: 0x8B3C, - 16237: 0x8B3D, - 16238: 0x8B3E, - 16239: 0x8B3F, - 16240: 0x8B40, - 16241: 0x8B41, - 16242: 0x8B42, - 16243: 0x8B43, - 16244: 0x8B44, - 16245: 0x8B45, - 16246: 0x5E27, - 16247: 0x75C7, - 16248: 0x90D1, - 16249: 0x8BC1, - 16250: 0x829D, - 16251: 0x679D, - 16252: 0x652F, - 16253: 0x5431, - 16254: 0x8718, - 16255: 0x77E5, - 16256: 0x80A2, - 16257: 0x8102, - 16258: 0x6C41, - 16259: 0x4E4B, - 16260: 0x7EC7, - 16261: 0x804C, - 16262: 0x76F4, - 16263: 0x690D, - 16264: 0x6B96, - 16265: 0x6267, - 16266: 0x503C, - 16267: 0x4F84, - 16268: 0x5740, - 16269: 0x6307, - 16270: 0x6B62, - 16271: 0x8DBE, - 16272: 0x53EA, - 16273: 0x65E8, - 16274: 0x7EB8, - 16275: 0x5FD7, - 16276: 0x631A, - 16277: 0x63B7, - 16278: 0x81F3, - 16279: 0x81F4, - 16280: 0x7F6E, - 16281: 0x5E1C, - 16282: 0x5CD9, - 16283: 0x5236, - 16284: 0x667A, - 16285: 0x79E9, - 16286: 0x7A1A, - 16287: 0x8D28, - 16288: 0x7099, - 16289: 0x75D4, - 16290: 0x6EDE, - 16291: 0x6CBB, - 16292: 0x7A92, - 16293: 0x4E2D, - 16294: 0x76C5, - 16295: 0x5FE0, - 16296: 0x949F, - 16297: 0x8877, - 16298: 0x7EC8, - 16299: 0x79CD, - 16300: 0x80BF, - 16301: 0x91CD, - 16302: 0x4EF2, - 16303: 0x4F17, - 16304: 0x821F, - 16305: 0x5468, - 16306: 0x5DDE, - 16307: 0x6D32, - 16308: 0x8BCC, - 16309: 0x7CA5, - 16310: 0x8F74, - 16311: 0x8098, - 16312: 0x5E1A, - 16313: 0x5492, - 16314: 0x76B1, - 16315: 0x5B99, - 16316: 0x663C, - 16317: 0x9AA4, - 16318: 0x73E0, - 16319: 0x682A, - 16320: 0x86DB, - 16321: 0x6731, - 16322: 0x732A, - 16323: 0x8BF8, - 16324: 0x8BDB, - 16325: 0x9010, - 16326: 0x7AF9, - 16327: 0x70DB, - 16328: 0x716E, - 16329: 0x62C4, - 16330: 0x77A9, - 16331: 0x5631, - 16332: 0x4E3B, - 16333: 0x8457, - 16334: 0x67F1, - 16335: 0x52A9, - 16336: 0x86C0, - 16337: 0x8D2E, - 16338: 0x94F8, - 16339: 0x7B51, - 16340: 0x8B46, - 16341: 0x8B47, - 16342: 0x8B48, - 16343: 0x8B49, - 16344: 0x8B4A, - 16345: 0x8B4B, - 16346: 0x8B4C, - 16347: 0x8B4D, - 16348: 0x8B4E, - 16349: 0x8B4F, - 16350: 0x8B50, - 16351: 0x8B51, - 16352: 0x8B52, - 16353: 0x8B53, - 16354: 0x8B54, - 16355: 0x8B55, - 16356: 0x8B56, - 16357: 0x8B57, - 16358: 0x8B58, - 16359: 0x8B59, - 16360: 0x8B5A, - 16361: 0x8B5B, - 16362: 0x8B5C, - 16363: 0x8B5D, - 16364: 0x8B5E, - 16365: 0x8B5F, - 16366: 0x8B60, - 16367: 0x8B61, - 16368: 0x8B62, - 16369: 0x8B63, - 16370: 0x8B64, - 16371: 0x8B65, - 16372: 0x8B67, - 16373: 0x8B68, - 16374: 0x8B69, - 16375: 0x8B6A, - 16376: 0x8B6B, - 16377: 0x8B6D, - 16378: 0x8B6E, - 16379: 0x8B6F, - 16380: 0x8B70, - 16381: 0x8B71, - 16382: 0x8B72, - 16383: 0x8B73, - 16384: 0x8B74, - 16385: 0x8B75, - 16386: 0x8B76, - 16387: 0x8B77, - 16388: 0x8B78, - 16389: 0x8B79, - 16390: 0x8B7A, - 16391: 0x8B7B, - 16392: 0x8B7C, - 16393: 0x8B7D, - 16394: 0x8B7E, - 16395: 0x8B7F, - 16396: 0x8B80, - 16397: 0x8B81, - 16398: 0x8B82, - 16399: 0x8B83, - 16400: 0x8B84, - 16401: 0x8B85, - 16402: 0x8B86, - 16403: 0x8B87, - 16404: 0x8B88, - 16405: 0x8B89, - 16406: 0x8B8A, - 16407: 0x8B8B, - 16408: 0x8B8C, - 16409: 0x8B8D, - 16410: 0x8B8E, - 16411: 0x8B8F, - 16412: 0x8B90, - 16413: 0x8B91, - 16414: 0x8B92, - 16415: 0x8B93, - 16416: 0x8B94, - 16417: 0x8B95, - 16418: 0x8B96, - 16419: 0x8B97, - 16420: 0x8B98, - 16421: 0x8B99, - 16422: 0x8B9A, - 16423: 0x8B9B, - 16424: 0x8B9C, - 16425: 0x8B9D, - 16426: 0x8B9E, - 16427: 0x8B9F, - 16428: 0x8BAC, - 16429: 0x8BB1, - 16430: 0x8BBB, - 16431: 0x8BC7, - 16432: 0x8BD0, - 16433: 0x8BEA, - 16434: 0x8C09, - 16435: 0x8C1E, - 16436: 0x4F4F, - 16437: 0x6CE8, - 16438: 0x795D, - 16439: 0x9A7B, - 16440: 0x6293, - 16441: 0x722A, - 16442: 0x62FD, - 16443: 0x4E13, - 16444: 0x7816, - 16445: 0x8F6C, - 16446: 0x64B0, - 16447: 0x8D5A, - 16448: 0x7BC6, - 16449: 0x6869, - 16450: 0x5E84, - 16451: 0x88C5, - 16452: 0x5986, - 16453: 0x649E, - 16454: 0x58EE, - 16455: 0x72B6, - 16456: 0x690E, - 16457: 0x9525, - 16458: 0x8FFD, - 16459: 0x8D58, - 16460: 0x5760, - 16461: 0x7F00, - 16462: 0x8C06, - 16463: 0x51C6, - 16464: 0x6349, - 16465: 0x62D9, - 16466: 0x5353, - 16467: 0x684C, - 16468: 0x7422, - 16469: 0x8301, - 16470: 0x914C, - 16471: 0x5544, - 16472: 0x7740, - 16473: 0x707C, - 16474: 0x6D4A, - 16475: 0x5179, - 16476: 0x54A8, - 16477: 0x8D44, - 16478: 0x59FF, - 16479: 0x6ECB, - 16480: 0x6DC4, - 16481: 0x5B5C, - 16482: 0x7D2B, - 16483: 0x4ED4, - 16484: 0x7C7D, - 16485: 0x6ED3, - 16486: 0x5B50, - 16487: 0x81EA, - 16488: 0x6E0D, - 16489: 0x5B57, - 16490: 0x9B03, - 16491: 0x68D5, - 16492: 0x8E2A, - 16493: 0x5B97, - 16494: 0x7EFC, - 16495: 0x603B, - 16496: 0x7EB5, - 16497: 0x90B9, - 16498: 0x8D70, - 16499: 0x594F, - 16500: 0x63CD, - 16501: 0x79DF, - 16502: 0x8DB3, - 16503: 0x5352, - 16504: 0x65CF, - 16505: 0x7956, - 16506: 0x8BC5, - 16507: 0x963B, - 16508: 0x7EC4, - 16509: 0x94BB, - 16510: 0x7E82, - 16511: 0x5634, - 16512: 0x9189, - 16513: 0x6700, - 16514: 0x7F6A, - 16515: 0x5C0A, - 16516: 0x9075, - 16517: 0x6628, - 16518: 0x5DE6, - 16519: 0x4F50, - 16520: 0x67DE, - 16521: 0x505A, - 16522: 0x4F5C, - 16523: 0x5750, - 16524: 0x5EA7, - 16530: 0x8C38, - 16531: 0x8C39, - 16532: 0x8C3A, - 16533: 0x8C3B, - 16534: 0x8C3C, - 16535: 0x8C3D, - 16536: 0x8C3E, - 16537: 0x8C3F, - 16538: 0x8C40, - 16539: 0x8C42, - 16540: 0x8C43, - 16541: 0x8C44, - 16542: 0x8C45, - 16543: 0x8C48, - 16544: 0x8C4A, - 16545: 0x8C4B, - 16546: 0x8C4D, - 16547: 0x8C4E, - 16548: 0x8C4F, - 16549: 0x8C50, - 16550: 0x8C51, - 16551: 0x8C52, - 16552: 0x8C53, - 16553: 0x8C54, - 16554: 0x8C56, - 16555: 0x8C57, - 16556: 0x8C58, - 16557: 0x8C59, - 16558: 0x8C5B, - 16559: 0x8C5C, - 16560: 0x8C5D, - 16561: 0x8C5E, - 16562: 0x8C5F, - 16563: 0x8C60, - 16564: 0x8C63, - 16565: 0x8C64, - 16566: 0x8C65, - 16567: 0x8C66, - 16568: 0x8C67, - 16569: 0x8C68, - 16570: 0x8C69, - 16571: 0x8C6C, - 16572: 0x8C6D, - 16573: 0x8C6E, - 16574: 0x8C6F, - 16575: 0x8C70, - 16576: 0x8C71, - 16577: 0x8C72, - 16578: 0x8C74, - 16579: 0x8C75, - 16580: 0x8C76, - 16581: 0x8C77, - 16582: 0x8C7B, - 16583: 0x8C7C, - 16584: 0x8C7D, - 16585: 0x8C7E, - 16586: 0x8C7F, - 16587: 0x8C80, - 16588: 0x8C81, - 16589: 0x8C83, - 16590: 0x8C84, - 16591: 0x8C86, - 16592: 0x8C87, - 16593: 0x8C88, - 16594: 0x8C8B, - 16595: 0x8C8D, - 16596: 0x8C8E, - 16597: 0x8C8F, - 16598: 0x8C90, - 16599: 0x8C91, - 16600: 0x8C92, - 16601: 0x8C93, - 16602: 0x8C95, - 16603: 0x8C96, - 16604: 0x8C97, - 16605: 0x8C99, - 16606: 0x8C9A, - 16607: 0x8C9B, - 16608: 0x8C9C, - 16609: 0x8C9D, - 16610: 0x8C9E, - 16611: 0x8C9F, - 16612: 0x8CA0, - 16613: 0x8CA1, - 16614: 0x8CA2, - 16615: 0x8CA3, - 16616: 0x8CA4, - 16617: 0x8CA5, - 16618: 0x8CA6, - 16619: 0x8CA7, - 16620: 0x8CA8, - 16621: 0x8CA9, - 16622: 0x8CAA, - 16623: 0x8CAB, - 16624: 0x8CAC, - 16625: 0x8CAD, - 16626: 0x4E8D, - 16627: 0x4E0C, - 16628: 0x5140, - 16629: 0x4E10, - 16630: 0x5EFF, - 16631: 0x5345, - 16632: 0x4E15, - 16633: 0x4E98, - 16634: 0x4E1E, - 16635: 0x9B32, - 16636: 0x5B6C, - 16637: 0x5669, - 16638: 0x4E28, - 16639: 0x79BA, - 16640: 0x4E3F, - 16641: 0x5315, - 16642: 0x4E47, - 16643: 0x592D, - 16644: 0x723B, - 16645: 0x536E, - 16646: 0x6C10, - 16647: 0x56DF, - 16648: 0x80E4, - 16649: 0x9997, - 16650: 0x6BD3, - 16651: 0x777E, - 16652: 0x9F17, - 16653: 0x4E36, - 16654: 0x4E9F, - 16655: 0x9F10, - 16656: 0x4E5C, - 16657: 0x4E69, - 16658: 0x4E93, - 16659: 0x8288, - 16660: 0x5B5B, - 16661: 0x556C, - 16662: 0x560F, - 16663: 0x4EC4, - 16664: 0x538D, - 16665: 0x539D, - 16666: 0x53A3, - 16667: 0x53A5, - 16668: 0x53AE, - 16669: 0x9765, - 16670: 0x8D5D, - 16671: 0x531A, - 16672: 0x53F5, - 16673: 0x5326, - 16674: 0x532E, - 16675: 0x533E, - 16676: 0x8D5C, - 16677: 0x5366, - 16678: 0x5363, - 16679: 0x5202, - 16680: 0x5208, - 16681: 0x520E, - 16682: 0x522D, - 16683: 0x5233, - 16684: 0x523F, - 16685: 0x5240, - 16686: 0x524C, - 16687: 0x525E, - 16688: 0x5261, - 16689: 0x525C, - 16690: 0x84AF, - 16691: 0x527D, - 16692: 0x5282, - 16693: 0x5281, - 16694: 0x5290, - 16695: 0x5293, - 16696: 0x5182, - 16697: 0x7F54, - 16698: 0x4EBB, - 16699: 0x4EC3, - 16700: 0x4EC9, - 16701: 0x4EC2, - 16702: 0x4EE8, - 16703: 0x4EE1, - 16704: 0x4EEB, - 16705: 0x4EDE, - 16706: 0x4F1B, - 16707: 0x4EF3, - 16708: 0x4F22, - 16709: 0x4F64, - 16710: 0x4EF5, - 16711: 0x4F25, - 16712: 0x4F27, - 16713: 0x4F09, - 16714: 0x4F2B, - 16715: 0x4F5E, - 16716: 0x4F67, - 16717: 0x6538, - 16718: 0x4F5A, - 16719: 0x4F5D, - 16720: 0x8CAE, - 16721: 0x8CAF, - 16722: 0x8CB0, - 16723: 0x8CB1, - 16724: 0x8CB2, - 16725: 0x8CB3, - 16726: 0x8CB4, - 16727: 0x8CB5, - 16728: 0x8CB6, - 16729: 0x8CB7, - 16730: 0x8CB8, - 16731: 0x8CB9, - 16732: 0x8CBA, - 16733: 0x8CBB, - 16734: 0x8CBC, - 16735: 0x8CBD, - 16736: 0x8CBE, - 16737: 0x8CBF, - 16738: 0x8CC0, - 16739: 0x8CC1, - 16740: 0x8CC2, - 16741: 0x8CC3, - 16742: 0x8CC4, - 16743: 0x8CC5, - 16744: 0x8CC6, - 16745: 0x8CC7, - 16746: 0x8CC8, - 16747: 0x8CC9, - 16748: 0x8CCA, - 16749: 0x8CCB, - 16750: 0x8CCC, - 16751: 0x8CCD, - 16752: 0x8CCE, - 16753: 0x8CCF, - 16754: 0x8CD0, - 16755: 0x8CD1, - 16756: 0x8CD2, - 16757: 0x8CD3, - 16758: 0x8CD4, - 16759: 0x8CD5, - 16760: 0x8CD6, - 16761: 0x8CD7, - 16762: 0x8CD8, - 16763: 0x8CD9, - 16764: 0x8CDA, - 16765: 0x8CDB, - 16766: 0x8CDC, - 16767: 0x8CDD, - 16768: 0x8CDE, - 16769: 0x8CDF, - 16770: 0x8CE0, - 16771: 0x8CE1, - 16772: 0x8CE2, - 16773: 0x8CE3, - 16774: 0x8CE4, - 16775: 0x8CE5, - 16776: 0x8CE6, - 16777: 0x8CE7, - 16778: 0x8CE8, - 16779: 0x8CE9, - 16780: 0x8CEA, - 16781: 0x8CEB, - 16782: 0x8CEC, - 16783: 0x8CED, - 16784: 0x8CEE, - 16785: 0x8CEF, - 16786: 0x8CF0, - 16787: 0x8CF1, - 16788: 0x8CF2, - 16789: 0x8CF3, - 16790: 0x8CF4, - 16791: 0x8CF5, - 16792: 0x8CF6, - 16793: 0x8CF7, - 16794: 0x8CF8, - 16795: 0x8CF9, - 16796: 0x8CFA, - 16797: 0x8CFB, - 16798: 0x8CFC, - 16799: 0x8CFD, - 16800: 0x8CFE, - 16801: 0x8CFF, - 16802: 0x8D00, - 16803: 0x8D01, - 16804: 0x8D02, - 16805: 0x8D03, - 16806: 0x8D04, - 16807: 0x8D05, - 16808: 0x8D06, - 16809: 0x8D07, - 16810: 0x8D08, - 16811: 0x8D09, - 16812: 0x8D0A, - 16813: 0x8D0B, - 16814: 0x8D0C, - 16815: 0x8D0D, - 16816: 0x4F5F, - 16817: 0x4F57, - 16818: 0x4F32, - 16819: 0x4F3D, - 16820: 0x4F76, - 16821: 0x4F74, - 16822: 0x4F91, - 16823: 0x4F89, - 16824: 0x4F83, - 16825: 0x4F8F, - 16826: 0x4F7E, - 16827: 0x4F7B, - 16828: 0x4FAA, - 16829: 0x4F7C, - 16830: 0x4FAC, - 16831: 0x4F94, - 16832: 0x4FE6, - 16833: 0x4FE8, - 16834: 0x4FEA, - 16835: 0x4FC5, - 16836: 0x4FDA, - 16837: 0x4FE3, - 16838: 0x4FDC, - 16839: 0x4FD1, - 16840: 0x4FDF, - 16841: 0x4FF8, - 16842: 0x5029, - 16843: 0x504C, - 16844: 0x4FF3, - 16845: 0x502C, - 16846: 0x500F, - 16847: 0x502E, - 16848: 0x502D, - 16849: 0x4FFE, - 16850: 0x501C, - 16851: 0x500C, - 16852: 0x5025, - 16853: 0x5028, - 16854: 0x507E, - 16855: 0x5043, - 16856: 0x5055, - 16857: 0x5048, - 16858: 0x504E, - 16859: 0x506C, - 16860: 0x507B, - 16861: 0x50A5, - 16862: 0x50A7, - 16863: 0x50A9, - 16864: 0x50BA, - 16865: 0x50D6, - 16866: 0x5106, - 16867: 0x50ED, - 16868: 0x50EC, - 16869: 0x50E6, - 16870: 0x50EE, - 16871: 0x5107, - 16872: 0x510B, - 16873: 0x4EDD, - 16874: 0x6C3D, - 16875: 0x4F58, - 16876: 0x4F65, - 16877: 0x4FCE, - 16878: 0x9FA0, - 16879: 0x6C46, - 16880: 0x7C74, - 16881: 0x516E, - 16882: 0x5DFD, - 16883: 0x9EC9, - 16884: 0x9998, - 16885: 0x5181, - 16886: 0x5914, - 16887: 0x52F9, - 16888: 0x530D, - 16889: 0x8A07, - 16890: 0x5310, - 16891: 0x51EB, - 16892: 0x5919, - 16893: 0x5155, - 16894: 0x4EA0, - 16895: 0x5156, - 16896: 0x4EB3, - 16897: 0x886E, - 16898: 0x88A4, - 16899: 0x4EB5, - 16900: 0x8114, - 16901: 0x88D2, - 16902: 0x7980, - 16903: 0x5B34, - 16904: 0x8803, - 16905: 0x7FB8, - 16906: 0x51AB, - 16907: 0x51B1, - 16908: 0x51BD, - 16909: 0x51BC, - 16910: 0x8D0E, - 16911: 0x8D0F, - 16912: 0x8D10, - 16913: 0x8D11, - 16914: 0x8D12, - 16915: 0x8D13, - 16916: 0x8D14, - 16917: 0x8D15, - 16918: 0x8D16, - 16919: 0x8D17, - 16920: 0x8D18, - 16921: 0x8D19, - 16922: 0x8D1A, - 16923: 0x8D1B, - 16924: 0x8D1C, - 16925: 0x8D20, - 16926: 0x8D51, - 16927: 0x8D52, - 16928: 0x8D57, - 16929: 0x8D5F, - 16930: 0x8D65, - 16931: 0x8D68, - 16932: 0x8D69, - 16933: 0x8D6A, - 16934: 0x8D6C, - 16935: 0x8D6E, - 16936: 0x8D6F, - 16937: 0x8D71, - 16938: 0x8D72, - 16939: 0x8D78, - 16940: 0x8D79, - 16941: 0x8D7A, - 16942: 0x8D7B, - 16943: 0x8D7C, - 16944: 0x8D7D, - 16945: 0x8D7E, - 16946: 0x8D7F, - 16947: 0x8D80, - 16948: 0x8D82, - 16949: 0x8D83, - 16950: 0x8D86, - 16951: 0x8D87, - 16952: 0x8D88, - 16953: 0x8D89, - 16954: 0x8D8C, - 16955: 0x8D8D, - 16956: 0x8D8E, - 16957: 0x8D8F, - 16958: 0x8D90, - 16959: 0x8D92, - 16960: 0x8D93, - 16961: 0x8D95, - 16962: 0x8D96, - 16963: 0x8D97, - 16964: 0x8D98, - 16965: 0x8D99, - 16966: 0x8D9A, - 16967: 0x8D9B, - 16968: 0x8D9C, - 16969: 0x8D9D, - 16970: 0x8D9E, - 16971: 0x8DA0, - 16972: 0x8DA1, - 16973: 0x8DA2, - 16974: 0x8DA4, - 16975: 0x8DA5, - 16976: 0x8DA6, - 16977: 0x8DA7, - 16978: 0x8DA8, - 16979: 0x8DA9, - 16980: 0x8DAA, - 16981: 0x8DAB, - 16982: 0x8DAC, - 16983: 0x8DAD, - 16984: 0x8DAE, - 16985: 0x8DAF, - 16986: 0x8DB0, - 16987: 0x8DB2, - 16988: 0x8DB6, - 16989: 0x8DB7, - 16990: 0x8DB9, - 16991: 0x8DBB, - 16992: 0x8DBD, - 16993: 0x8DC0, - 16994: 0x8DC1, - 16995: 0x8DC2, - 16996: 0x8DC5, - 16997: 0x8DC7, - 16998: 0x8DC8, - 16999: 0x8DC9, - 17000: 0x8DCA, - 17001: 0x8DCD, - 17002: 0x8DD0, - 17003: 0x8DD2, - 17004: 0x8DD3, - 17005: 0x8DD4, - 17006: 0x51C7, - 17007: 0x5196, - 17008: 0x51A2, - 17009: 0x51A5, - 17010: 0x8BA0, - 17011: 0x8BA6, - 17012: 0x8BA7, - 17013: 0x8BAA, - 17014: 0x8BB4, - 17015: 0x8BB5, - 17016: 0x8BB7, - 17017: 0x8BC2, - 17018: 0x8BC3, - 17019: 0x8BCB, - 17020: 0x8BCF, - 17021: 0x8BCE, - 17022: 0x8BD2, - 17023: 0x8BD3, - 17024: 0x8BD4, - 17025: 0x8BD6, - 17026: 0x8BD8, - 17027: 0x8BD9, - 17028: 0x8BDC, - 17029: 0x8BDF, - 17030: 0x8BE0, - 17031: 0x8BE4, - 17032: 0x8BE8, - 17033: 0x8BE9, - 17034: 0x8BEE, - 17035: 0x8BF0, - 17036: 0x8BF3, - 17037: 0x8BF6, - 17038: 0x8BF9, - 17039: 0x8BFC, - 17040: 0x8BFF, - 17041: 0x8C00, - 17042: 0x8C02, - 17043: 0x8C04, - 17044: 0x8C07, - 17045: 0x8C0C, - 17046: 0x8C0F, - 17047: 0x8C11, - 17048: 0x8C12, - 17049: 0x8C14, - 17050: 0x8C15, - 17051: 0x8C16, - 17052: 0x8C19, - 17053: 0x8C1B, - 17054: 0x8C18, - 17055: 0x8C1D, - 17056: 0x8C1F, - 17057: 0x8C20, - 17058: 0x8C21, - 17059: 0x8C25, - 17060: 0x8C27, - 17061: 0x8C2A, - 17062: 0x8C2B, - 17063: 0x8C2E, - 17064: 0x8C2F, - 17065: 0x8C32, - 17066: 0x8C33, - 17067: 0x8C35, - 17068: 0x8C36, - 17069: 0x5369, - 17070: 0x537A, - 17071: 0x961D, - 17072: 0x9622, - 17073: 0x9621, - 17074: 0x9631, - 17075: 0x962A, - 17076: 0x963D, - 17077: 0x963C, - 17078: 0x9642, - 17079: 0x9649, - 17080: 0x9654, - 17081: 0x965F, - 17082: 0x9667, - 17083: 0x966C, - 17084: 0x9672, - 17085: 0x9674, - 17086: 0x9688, - 17087: 0x968D, - 17088: 0x9697, - 17089: 0x96B0, - 17090: 0x9097, - 17091: 0x909B, - 17092: 0x909D, - 17093: 0x9099, - 17094: 0x90AC, - 17095: 0x90A1, - 17096: 0x90B4, - 17097: 0x90B3, - 17098: 0x90B6, - 17099: 0x90BA, - 17100: 0x8DD5, - 17101: 0x8DD8, - 17102: 0x8DD9, - 17103: 0x8DDC, - 17104: 0x8DE0, - 17105: 0x8DE1, - 17106: 0x8DE2, - 17107: 0x8DE5, - 17108: 0x8DE6, - 17109: 0x8DE7, - 17110: 0x8DE9, - 17111: 0x8DED, - 17112: 0x8DEE, - 17113: 0x8DF0, - 17114: 0x8DF1, - 17115: 0x8DF2, - 17116: 0x8DF4, - 17117: 0x8DF6, - 17118: 0x8DFC, - 17119: 0x8DFE, - 17120: 0x8DFF, - 17121: 0x8E00, - 17122: 0x8E01, - 17123: 0x8E02, - 17124: 0x8E03, - 17125: 0x8E04, - 17126: 0x8E06, - 17127: 0x8E07, - 17128: 0x8E08, - 17129: 0x8E0B, - 17130: 0x8E0D, - 17131: 0x8E0E, - 17132: 0x8E10, - 17133: 0x8E11, - 17134: 0x8E12, - 17135: 0x8E13, - 17136: 0x8E15, - 17137: 0x8E16, - 17138: 0x8E17, - 17139: 0x8E18, - 17140: 0x8E19, - 17141: 0x8E1A, - 17142: 0x8E1B, - 17143: 0x8E1C, - 17144: 0x8E20, - 17145: 0x8E21, - 17146: 0x8E24, - 17147: 0x8E25, - 17148: 0x8E26, - 17149: 0x8E27, - 17150: 0x8E28, - 17151: 0x8E2B, - 17152: 0x8E2D, - 17153: 0x8E30, - 17154: 0x8E32, - 17155: 0x8E33, - 17156: 0x8E34, - 17157: 0x8E36, - 17158: 0x8E37, - 17159: 0x8E38, - 17160: 0x8E3B, - 17161: 0x8E3C, - 17162: 0x8E3E, - 17163: 0x8E3F, - 17164: 0x8E43, - 17165: 0x8E45, - 17166: 0x8E46, - 17167: 0x8E4C, - 17168: 0x8E4D, - 17169: 0x8E4E, - 17170: 0x8E4F, - 17171: 0x8E50, - 17172: 0x8E53, - 17173: 0x8E54, - 17174: 0x8E55, - 17175: 0x8E56, - 17176: 0x8E57, - 17177: 0x8E58, - 17178: 0x8E5A, - 17179: 0x8E5B, - 17180: 0x8E5C, - 17181: 0x8E5D, - 17182: 0x8E5E, - 17183: 0x8E5F, - 17184: 0x8E60, - 17185: 0x8E61, - 17186: 0x8E62, - 17187: 0x8E63, - 17188: 0x8E64, - 17189: 0x8E65, - 17190: 0x8E67, - 17191: 0x8E68, - 17192: 0x8E6A, - 17193: 0x8E6B, - 17194: 0x8E6E, - 17195: 0x8E71, - 17196: 0x90B8, - 17197: 0x90B0, - 17198: 0x90CF, - 17199: 0x90C5, - 17200: 0x90BE, - 17201: 0x90D0, - 17202: 0x90C4, - 17203: 0x90C7, - 17204: 0x90D3, - 17205: 0x90E6, - 17206: 0x90E2, - 17207: 0x90DC, - 17208: 0x90D7, - 17209: 0x90DB, - 17210: 0x90EB, - 17211: 0x90EF, - 17212: 0x90FE, - 17213: 0x9104, - 17214: 0x9122, - 17215: 0x911E, - 17216: 0x9123, - 17217: 0x9131, - 17218: 0x912F, - 17219: 0x9139, - 17220: 0x9143, - 17221: 0x9146, - 17222: 0x520D, - 17223: 0x5942, - 17224: 0x52A2, - 17225: 0x52AC, - 17226: 0x52AD, - 17227: 0x52BE, - 17228: 0x54FF, - 17229: 0x52D0, - 17230: 0x52D6, - 17231: 0x52F0, - 17232: 0x53DF, - 17233: 0x71EE, - 17234: 0x77CD, - 17235: 0x5EF4, - 17236: 0x51F5, - 17237: 0x51FC, - 17238: 0x9B2F, - 17239: 0x53B6, - 17240: 0x5F01, - 17241: 0x755A, - 17242: 0x5DEF, - 17243: 0x574C, - 17244: 0x57A9, - 17245: 0x57A1, - 17246: 0x587E, - 17247: 0x58BC, - 17248: 0x58C5, - 17249: 0x58D1, - 17250: 0x5729, - 17251: 0x572C, - 17252: 0x572A, - 17253: 0x5733, - 17254: 0x5739, - 17255: 0x572E, - 17256: 0x572F, - 17257: 0x575C, - 17258: 0x573B, - 17259: 0x5742, - 17260: 0x5769, - 17261: 0x5785, - 17262: 0x576B, - 17263: 0x5786, - 17264: 0x577C, - 17265: 0x577B, - 17266: 0x5768, - 17267: 0x576D, - 17268: 0x5776, - 17269: 0x5773, - 17270: 0x57AD, - 17271: 0x57A4, - 17272: 0x578C, - 17273: 0x57B2, - 17274: 0x57CF, - 17275: 0x57A7, - 17276: 0x57B4, - 17277: 0x5793, - 17278: 0x57A0, - 17279: 0x57D5, - 17280: 0x57D8, - 17281: 0x57DA, - 17282: 0x57D9, - 17283: 0x57D2, - 17284: 0x57B8, - 17285: 0x57F4, - 17286: 0x57EF, - 17287: 0x57F8, - 17288: 0x57E4, - 17289: 0x57DD, - 17290: 0x8E73, - 17291: 0x8E75, - 17292: 0x8E77, - 17293: 0x8E78, - 17294: 0x8E79, - 17295: 0x8E7A, - 17296: 0x8E7B, - 17297: 0x8E7D, - 17298: 0x8E7E, - 17299: 0x8E80, - 17300: 0x8E82, - 17301: 0x8E83, - 17302: 0x8E84, - 17303: 0x8E86, - 17304: 0x8E88, - 17305: 0x8E89, - 17306: 0x8E8A, - 17307: 0x8E8B, - 17308: 0x8E8C, - 17309: 0x8E8D, - 17310: 0x8E8E, - 17311: 0x8E91, - 17312: 0x8E92, - 17313: 0x8E93, - 17314: 0x8E95, - 17315: 0x8E96, - 17316: 0x8E97, - 17317: 0x8E98, - 17318: 0x8E99, - 17319: 0x8E9A, - 17320: 0x8E9B, - 17321: 0x8E9D, - 17322: 0x8E9F, - 17323: 0x8EA0, - 17324: 0x8EA1, - 17325: 0x8EA2, - 17326: 0x8EA3, - 17327: 0x8EA4, - 17328: 0x8EA5, - 17329: 0x8EA6, - 17330: 0x8EA7, - 17331: 0x8EA8, - 17332: 0x8EA9, - 17333: 0x8EAA, - 17334: 0x8EAD, - 17335: 0x8EAE, - 17336: 0x8EB0, - 17337: 0x8EB1, - 17338: 0x8EB3, - 17339: 0x8EB4, - 17340: 0x8EB5, - 17341: 0x8EB6, - 17342: 0x8EB7, - 17343: 0x8EB8, - 17344: 0x8EB9, - 17345: 0x8EBB, - 17346: 0x8EBC, - 17347: 0x8EBD, - 17348: 0x8EBE, - 17349: 0x8EBF, - 17350: 0x8EC0, - 17351: 0x8EC1, - 17352: 0x8EC2, - 17353: 0x8EC3, - 17354: 0x8EC4, - 17355: 0x8EC5, - 17356: 0x8EC6, - 17357: 0x8EC7, - 17358: 0x8EC8, - 17359: 0x8EC9, - 17360: 0x8ECA, - 17361: 0x8ECB, - 17362: 0x8ECC, - 17363: 0x8ECD, - 17364: 0x8ECF, - 17365: 0x8ED0, - 17366: 0x8ED1, - 17367: 0x8ED2, - 17368: 0x8ED3, - 17369: 0x8ED4, - 17370: 0x8ED5, - 17371: 0x8ED6, - 17372: 0x8ED7, - 17373: 0x8ED8, - 17374: 0x8ED9, - 17375: 0x8EDA, - 17376: 0x8EDB, - 17377: 0x8EDC, - 17378: 0x8EDD, - 17379: 0x8EDE, - 17380: 0x8EDF, - 17381: 0x8EE0, - 17382: 0x8EE1, - 17383: 0x8EE2, - 17384: 0x8EE3, - 17385: 0x8EE4, - 17386: 0x580B, - 17387: 0x580D, - 17388: 0x57FD, - 17389: 0x57ED, - 17390: 0x5800, - 17391: 0x581E, - 17392: 0x5819, - 17393: 0x5844, - 17394: 0x5820, - 17395: 0x5865, - 17396: 0x586C, - 17397: 0x5881, - 17398: 0x5889, - 17399: 0x589A, - 17400: 0x5880, - 17401: 0x99A8, - 17402: 0x9F19, - 17403: 0x61FF, - 17404: 0x8279, - 17405: 0x827D, - 17406: 0x827F, - 17407: 0x828F, - 17408: 0x828A, - 17409: 0x82A8, - 17410: 0x8284, - 17411: 0x828E, - 17412: 0x8291, - 17413: 0x8297, - 17414: 0x8299, - 17415: 0x82AB, - 17416: 0x82B8, - 17417: 0x82BE, - 17418: 0x82B0, - 17419: 0x82C8, - 17420: 0x82CA, - 17421: 0x82E3, - 17422: 0x8298, - 17423: 0x82B7, - 17424: 0x82AE, - 17425: 0x82CB, - 17426: 0x82CC, - 17427: 0x82C1, - 17428: 0x82A9, - 17429: 0x82B4, - 17430: 0x82A1, - 17431: 0x82AA, - 17432: 0x829F, - 17433: 0x82C4, - 17434: 0x82CE, - 17435: 0x82A4, - 17436: 0x82E1, - 17437: 0x8309, - 17438: 0x82F7, - 17439: 0x82E4, - 17440: 0x830F, - 17441: 0x8307, - 17442: 0x82DC, - 17443: 0x82F4, - 17444: 0x82D2, - 17445: 0x82D8, - 17446: 0x830C, - 17447: 0x82FB, - 17448: 0x82D3, - 17449: 0x8311, - 17450: 0x831A, - 17451: 0x8306, - 17452: 0x8314, - 17453: 0x8315, - 17454: 0x82E0, - 17455: 0x82D5, - 17456: 0x831C, - 17457: 0x8351, - 17458: 0x835B, - 17459: 0x835C, - 17460: 0x8308, - 17461: 0x8392, - 17462: 0x833C, - 17463: 0x8334, - 17464: 0x8331, - 17465: 0x839B, - 17466: 0x835E, - 17467: 0x832F, - 17468: 0x834F, - 17469: 0x8347, - 17470: 0x8343, - 17471: 0x835F, - 17472: 0x8340, - 17473: 0x8317, - 17474: 0x8360, - 17475: 0x832D, - 17476: 0x833A, - 17477: 0x8333, - 17478: 0x8366, - 17479: 0x8365, - 17480: 0x8EE5, - 17481: 0x8EE6, - 17482: 0x8EE7, - 17483: 0x8EE8, - 17484: 0x8EE9, - 17485: 0x8EEA, - 17486: 0x8EEB, - 17487: 0x8EEC, - 17488: 0x8EED, - 17489: 0x8EEE, - 17490: 0x8EEF, - 17491: 0x8EF0, - 17492: 0x8EF1, - 17493: 0x8EF2, - 17494: 0x8EF3, - 17495: 0x8EF4, - 17496: 0x8EF5, - 17497: 0x8EF6, - 17498: 0x8EF7, - 17499: 0x8EF8, - 17500: 0x8EF9, - 17501: 0x8EFA, - 17502: 0x8EFB, - 17503: 0x8EFC, - 17504: 0x8EFD, - 17505: 0x8EFE, - 17506: 0x8EFF, - 17507: 0x8F00, - 17508: 0x8F01, - 17509: 0x8F02, - 17510: 0x8F03, - 17511: 0x8F04, - 17512: 0x8F05, - 17513: 0x8F06, - 17514: 0x8F07, - 17515: 0x8F08, - 17516: 0x8F09, - 17517: 0x8F0A, - 17518: 0x8F0B, - 17519: 0x8F0C, - 17520: 0x8F0D, - 17521: 0x8F0E, - 17522: 0x8F0F, - 17523: 0x8F10, - 17524: 0x8F11, - 17525: 0x8F12, - 17526: 0x8F13, - 17527: 0x8F14, - 17528: 0x8F15, - 17529: 0x8F16, - 17530: 0x8F17, - 17531: 0x8F18, - 17532: 0x8F19, - 17533: 0x8F1A, - 17534: 0x8F1B, - 17535: 0x8F1C, - 17536: 0x8F1D, - 17537: 0x8F1E, - 17538: 0x8F1F, - 17539: 0x8F20, - 17540: 0x8F21, - 17541: 0x8F22, - 17542: 0x8F23, - 17543: 0x8F24, - 17544: 0x8F25, - 17545: 0x8F26, - 17546: 0x8F27, - 17547: 0x8F28, - 17548: 0x8F29, - 17549: 0x8F2A, - 17550: 0x8F2B, - 17551: 0x8F2C, - 17552: 0x8F2D, - 17553: 0x8F2E, - 17554: 0x8F2F, - 17555: 0x8F30, - 17556: 0x8F31, - 17557: 0x8F32, - 17558: 0x8F33, - 17559: 0x8F34, - 17560: 0x8F35, - 17561: 0x8F36, - 17562: 0x8F37, - 17563: 0x8F38, - 17564: 0x8F39, - 17565: 0x8F3A, - 17566: 0x8F3B, - 17567: 0x8F3C, - 17568: 0x8F3D, - 17569: 0x8F3E, - 17570: 0x8F3F, - 17571: 0x8F40, - 17572: 0x8F41, - 17573: 0x8F42, - 17574: 0x8F43, - 17575: 0x8F44, - 17576: 0x8368, - 17577: 0x831B, - 17578: 0x8369, - 17579: 0x836C, - 17580: 0x836A, - 17581: 0x836D, - 17582: 0x836E, - 17583: 0x83B0, - 17584: 0x8378, - 17585: 0x83B3, - 17586: 0x83B4, - 17587: 0x83A0, - 17588: 0x83AA, - 17589: 0x8393, - 17590: 0x839C, - 17591: 0x8385, - 17592: 0x837C, - 17593: 0x83B6, - 17594: 0x83A9, - 17595: 0x837D, - 17596: 0x83B8, - 17597: 0x837B, - 17598: 0x8398, - 17599: 0x839E, - 17600: 0x83A8, - 17601: 0x83BA, - 17602: 0x83BC, - 17603: 0x83C1, - 17604: 0x8401, - 17605: 0x83E5, - 17606: 0x83D8, - 17607: 0x5807, - 17608: 0x8418, - 17609: 0x840B, - 17610: 0x83DD, - 17611: 0x83FD, - 17612: 0x83D6, - 17613: 0x841C, - 17614: 0x8438, - 17615: 0x8411, - 17616: 0x8406, - 17617: 0x83D4, - 17618: 0x83DF, - 17619: 0x840F, - 17620: 0x8403, - 17621: 0x83F8, - 17622: 0x83F9, - 17623: 0x83EA, - 17624: 0x83C5, - 17625: 0x83C0, - 17626: 0x8426, - 17627: 0x83F0, - 17628: 0x83E1, - 17629: 0x845C, - 17630: 0x8451, - 17631: 0x845A, - 17632: 0x8459, - 17633: 0x8473, - 17634: 0x8487, - 17635: 0x8488, - 17636: 0x847A, - 17637: 0x8489, - 17638: 0x8478, - 17639: 0x843C, - 17640: 0x8446, - 17641: 0x8469, - 17642: 0x8476, - 17643: 0x848C, - 17644: 0x848E, - 17645: 0x8431, - 17646: 0x846D, - 17647: 0x84C1, - 17648: 0x84CD, - 17649: 0x84D0, - 17650: 0x84E6, - 17651: 0x84BD, - 17652: 0x84D3, - 17653: 0x84CA, - 17654: 0x84BF, - 17655: 0x84BA, - 17656: 0x84E0, - 17657: 0x84A1, - 17658: 0x84B9, - 17659: 0x84B4, - 17660: 0x8497, - 17661: 0x84E5, - 17662: 0x84E3, - 17663: 0x850C, - 17664: 0x750D, - 17665: 0x8538, - 17666: 0x84F0, - 17667: 0x8539, - 17668: 0x851F, - 17669: 0x853A, - 17670: 0x8F45, - 17671: 0x8F46, - 17672: 0x8F47, - 17673: 0x8F48, - 17674: 0x8F49, - 17675: 0x8F4A, - 17676: 0x8F4B, - 17677: 0x8F4C, - 17678: 0x8F4D, - 17679: 0x8F4E, - 17680: 0x8F4F, - 17681: 0x8F50, - 17682: 0x8F51, - 17683: 0x8F52, - 17684: 0x8F53, - 17685: 0x8F54, - 17686: 0x8F55, - 17687: 0x8F56, - 17688: 0x8F57, - 17689: 0x8F58, - 17690: 0x8F59, - 17691: 0x8F5A, - 17692: 0x8F5B, - 17693: 0x8F5C, - 17694: 0x8F5D, - 17695: 0x8F5E, - 17696: 0x8F5F, - 17697: 0x8F60, - 17698: 0x8F61, - 17699: 0x8F62, - 17700: 0x8F63, - 17701: 0x8F64, - 17702: 0x8F65, - 17703: 0x8F6A, - 17704: 0x8F80, - 17705: 0x8F8C, - 17706: 0x8F92, - 17707: 0x8F9D, - 17708: 0x8FA0, - 17709: 0x8FA1, - 17710: 0x8FA2, - 17711: 0x8FA4, - 17712: 0x8FA5, - 17713: 0x8FA6, - 17714: 0x8FA7, - 17715: 0x8FAA, - 17716: 0x8FAC, - 17717: 0x8FAD, - 17718: 0x8FAE, - 17719: 0x8FAF, - 17720: 0x8FB2, - 17721: 0x8FB3, - 17722: 0x8FB4, - 17723: 0x8FB5, - 17724: 0x8FB7, - 17725: 0x8FB8, - 17726: 0x8FBA, - 17727: 0x8FBB, - 17728: 0x8FBC, - 17729: 0x8FBF, - 17730: 0x8FC0, - 17731: 0x8FC3, - 17732: 0x8FC6, - 17733: 0x8FC9, - 17734: 0x8FCA, - 17735: 0x8FCB, - 17736: 0x8FCC, - 17737: 0x8FCD, - 17738: 0x8FCF, - 17739: 0x8FD2, - 17740: 0x8FD6, - 17741: 0x8FD7, - 17742: 0x8FDA, - 17743: 0x8FE0, - 17744: 0x8FE1, - 17745: 0x8FE3, - 17746: 0x8FE7, - 17747: 0x8FEC, - 17748: 0x8FEF, - 17749: 0x8FF1, - 17750: 0x8FF2, - 17751: 0x8FF4, - 17752: 0x8FF5, - 17753: 0x8FF6, - 17754: 0x8FFA, - 17755: 0x8FFB, - 17756: 0x8FFC, - 17757: 0x8FFE, - 17758: 0x8FFF, - 17759: 0x9007, - 17760: 0x9008, - 17761: 0x900C, - 17762: 0x900E, - 17763: 0x9013, - 17764: 0x9015, - 17765: 0x9018, - 17766: 0x8556, - 17767: 0x853B, - 17768: 0x84FF, - 17769: 0x84FC, - 17770: 0x8559, - 17771: 0x8548, - 17772: 0x8568, - 17773: 0x8564, - 17774: 0x855E, - 17775: 0x857A, - 17776: 0x77A2, - 17777: 0x8543, - 17778: 0x8572, - 17779: 0x857B, - 17780: 0x85A4, - 17781: 0x85A8, - 17782: 0x8587, - 17783: 0x858F, - 17784: 0x8579, - 17785: 0x85AE, - 17786: 0x859C, - 17787: 0x8585, - 17788: 0x85B9, - 17789: 0x85B7, - 17790: 0x85B0, - 17791: 0x85D3, - 17792: 0x85C1, - 17793: 0x85DC, - 17794: 0x85FF, - 17795: 0x8627, - 17796: 0x8605, - 17797: 0x8629, - 17798: 0x8616, - 17799: 0x863C, - 17800: 0x5EFE, - 17801: 0x5F08, - 17802: 0x593C, - 17803: 0x5941, - 17804: 0x8037, - 17805: 0x5955, - 17806: 0x595A, - 17807: 0x5958, - 17808: 0x530F, - 17809: 0x5C22, - 17810: 0x5C25, - 17811: 0x5C2C, - 17812: 0x5C34, - 17813: 0x624C, - 17814: 0x626A, - 17815: 0x629F, - 17816: 0x62BB, - 17817: 0x62CA, - 17818: 0x62DA, - 17819: 0x62D7, - 17820: 0x62EE, - 17821: 0x6322, - 17822: 0x62F6, - 17823: 0x6339, - 17824: 0x634B, - 17825: 0x6343, - 17826: 0x63AD, - 17827: 0x63F6, - 17828: 0x6371, - 17829: 0x637A, - 17830: 0x638E, - 17831: 0x63B4, - 17832: 0x636D, - 17833: 0x63AC, - 17834: 0x638A, - 17835: 0x6369, - 17836: 0x63AE, - 17837: 0x63BC, - 17838: 0x63F2, - 17839: 0x63F8, - 17840: 0x63E0, - 17841: 0x63FF, - 17842: 0x63C4, - 17843: 0x63DE, - 17844: 0x63CE, - 17845: 0x6452, - 17846: 0x63C6, - 17847: 0x63BE, - 17848: 0x6445, - 17849: 0x6441, - 17850: 0x640B, - 17851: 0x641B, - 17852: 0x6420, - 17853: 0x640C, - 17854: 0x6426, - 17855: 0x6421, - 17856: 0x645E, - 17857: 0x6484, - 17858: 0x646D, - 17859: 0x6496, - 17860: 0x9019, - 17861: 0x901C, - 17862: 0x9023, - 17863: 0x9024, - 17864: 0x9025, - 17865: 0x9027, - 17866: 0x9028, - 17867: 0x9029, - 17868: 0x902A, - 17869: 0x902B, - 17870: 0x902C, - 17871: 0x9030, - 17872: 0x9031, - 17873: 0x9032, - 17874: 0x9033, - 17875: 0x9034, - 17876: 0x9037, - 17877: 0x9039, - 17878: 0x903A, - 17879: 0x903D, - 17880: 0x903F, - 17881: 0x9040, - 17882: 0x9043, - 17883: 0x9045, - 17884: 0x9046, - 17885: 0x9048, - 17886: 0x9049, - 17887: 0x904A, - 17888: 0x904B, - 17889: 0x904C, - 17890: 0x904E, - 17891: 0x9054, - 17892: 0x9055, - 17893: 0x9056, - 17894: 0x9059, - 17895: 0x905A, - 17896: 0x905C, - 17897: 0x905D, - 17898: 0x905E, - 17899: 0x905F, - 17900: 0x9060, - 17901: 0x9061, - 17902: 0x9064, - 17903: 0x9066, - 17904: 0x9067, - 17905: 0x9069, - 17906: 0x906A, - 17907: 0x906B, - 17908: 0x906C, - 17909: 0x906F, - 17910: 0x9070, - 17911: 0x9071, - 17912: 0x9072, - 17913: 0x9073, - 17914: 0x9076, - 17915: 0x9077, - 17916: 0x9078, - 17917: 0x9079, - 17918: 0x907A, - 17919: 0x907B, - 17920: 0x907C, - 17921: 0x907E, - 17922: 0x9081, - 17923: 0x9084, - 17924: 0x9085, - 17925: 0x9086, - 17926: 0x9087, - 17927: 0x9089, - 17928: 0x908A, - 17929: 0x908C, - 17930: 0x908D, - 17931: 0x908E, - 17932: 0x908F, - 17933: 0x9090, - 17934: 0x9092, - 17935: 0x9094, - 17936: 0x9096, - 17937: 0x9098, - 17938: 0x909A, - 17939: 0x909C, - 17940: 0x909E, - 17941: 0x909F, - 17942: 0x90A0, - 17943: 0x90A4, - 17944: 0x90A5, - 17945: 0x90A7, - 17946: 0x90A8, - 17947: 0x90A9, - 17948: 0x90AB, - 17949: 0x90AD, - 17950: 0x90B2, - 17951: 0x90B7, - 17952: 0x90BC, - 17953: 0x90BD, - 17954: 0x90BF, - 17955: 0x90C0, - 17956: 0x647A, - 17957: 0x64B7, - 17958: 0x64B8, - 17959: 0x6499, - 17960: 0x64BA, - 17961: 0x64C0, - 17962: 0x64D0, - 17963: 0x64D7, - 17964: 0x64E4, - 17965: 0x64E2, - 17966: 0x6509, - 17967: 0x6525, - 17968: 0x652E, - 17969: 0x5F0B, - 17970: 0x5FD2, - 17971: 0x7519, - 17972: 0x5F11, - 17973: 0x535F, - 17974: 0x53F1, - 17975: 0x53FD, - 17976: 0x53E9, - 17977: 0x53E8, - 17978: 0x53FB, - 17979: 0x5412, - 17980: 0x5416, - 17981: 0x5406, - 17982: 0x544B, - 17983: 0x5452, - 17984: 0x5453, - 17985: 0x5454, - 17986: 0x5456, - 17987: 0x5443, - 17988: 0x5421, - 17989: 0x5457, - 17990: 0x5459, - 17991: 0x5423, - 17992: 0x5432, - 17993: 0x5482, - 17994: 0x5494, - 17995: 0x5477, - 17996: 0x5471, - 17997: 0x5464, - 17998: 0x549A, - 17999: 0x549B, - 18000: 0x5484, - 18001: 0x5476, - 18002: 0x5466, - 18003: 0x549D, - 18004: 0x54D0, - 18005: 0x54AD, - 18006: 0x54C2, - 18007: 0x54B4, - 18008: 0x54D2, - 18009: 0x54A7, - 18010: 0x54A6, - 18011: 0x54D3, - 18012: 0x54D4, - 18013: 0x5472, - 18014: 0x54A3, - 18015: 0x54D5, - 18016: 0x54BB, - 18017: 0x54BF, - 18018: 0x54CC, - 18019: 0x54D9, - 18020: 0x54DA, - 18021: 0x54DC, - 18022: 0x54A9, - 18023: 0x54AA, - 18024: 0x54A4, - 18025: 0x54DD, - 18026: 0x54CF, - 18027: 0x54DE, - 18028: 0x551B, - 18029: 0x54E7, - 18030: 0x5520, - 18031: 0x54FD, - 18032: 0x5514, - 18033: 0x54F3, - 18034: 0x5522, - 18035: 0x5523, - 18036: 0x550F, - 18037: 0x5511, - 18038: 0x5527, - 18039: 0x552A, - 18040: 0x5567, - 18041: 0x558F, - 18042: 0x55B5, - 18043: 0x5549, - 18044: 0x556D, - 18045: 0x5541, - 18046: 0x5555, - 18047: 0x553F, - 18048: 0x5550, - 18049: 0x553C, - 18050: 0x90C2, - 18051: 0x90C3, - 18052: 0x90C6, - 18053: 0x90C8, - 18054: 0x90C9, - 18055: 0x90CB, - 18056: 0x90CC, - 18057: 0x90CD, - 18058: 0x90D2, - 18059: 0x90D4, - 18060: 0x90D5, - 18061: 0x90D6, - 18062: 0x90D8, - 18063: 0x90D9, - 18064: 0x90DA, - 18065: 0x90DE, - 18066: 0x90DF, - 18067: 0x90E0, - 18068: 0x90E3, - 18069: 0x90E4, - 18070: 0x90E5, - 18071: 0x90E9, - 18072: 0x90EA, - 18073: 0x90EC, - 18074: 0x90EE, - 18075: 0x90F0, - 18076: 0x90F1, - 18077: 0x90F2, - 18078: 0x90F3, - 18079: 0x90F5, - 18080: 0x90F6, - 18081: 0x90F7, - 18082: 0x90F9, - 18083: 0x90FA, - 18084: 0x90FB, - 18085: 0x90FC, - 18086: 0x90FF, - 18087: 0x9100, - 18088: 0x9101, - 18089: 0x9103, - 18090: 0x9105, - 18091: 0x9106, - 18092: 0x9107, - 18093: 0x9108, - 18094: 0x9109, - 18095: 0x910A, - 18096: 0x910B, - 18097: 0x910C, - 18098: 0x910D, - 18099: 0x910E, - 18100: 0x910F, - 18101: 0x9110, - 18102: 0x9111, - 18103: 0x9112, - 18104: 0x9113, - 18105: 0x9114, - 18106: 0x9115, - 18107: 0x9116, - 18108: 0x9117, - 18109: 0x9118, - 18110: 0x911A, - 18111: 0x911B, - 18112: 0x911C, - 18113: 0x911D, - 18114: 0x911F, - 18115: 0x9120, - 18116: 0x9121, - 18117: 0x9124, - 18118: 0x9125, - 18119: 0x9126, - 18120: 0x9127, - 18121: 0x9128, - 18122: 0x9129, - 18123: 0x912A, - 18124: 0x912B, - 18125: 0x912C, - 18126: 0x912D, - 18127: 0x912E, - 18128: 0x9130, - 18129: 0x9132, - 18130: 0x9133, - 18131: 0x9134, - 18132: 0x9135, - 18133: 0x9136, - 18134: 0x9137, - 18135: 0x9138, - 18136: 0x913A, - 18137: 0x913B, - 18138: 0x913C, - 18139: 0x913D, - 18140: 0x913E, - 18141: 0x913F, - 18142: 0x9140, - 18143: 0x9141, - 18144: 0x9142, - 18145: 0x9144, - 18146: 0x5537, - 18147: 0x5556, - 18148: 0x5575, - 18149: 0x5576, - 18150: 0x5577, - 18151: 0x5533, - 18152: 0x5530, - 18153: 0x555C, - 18154: 0x558B, - 18155: 0x55D2, - 18156: 0x5583, - 18157: 0x55B1, - 18158: 0x55B9, - 18159: 0x5588, - 18160: 0x5581, - 18161: 0x559F, - 18162: 0x557E, - 18163: 0x55D6, - 18164: 0x5591, - 18165: 0x557B, - 18166: 0x55DF, - 18167: 0x55BD, - 18168: 0x55BE, - 18169: 0x5594, - 18170: 0x5599, - 18171: 0x55EA, - 18172: 0x55F7, - 18173: 0x55C9, - 18174: 0x561F, - 18175: 0x55D1, - 18176: 0x55EB, - 18177: 0x55EC, - 18178: 0x55D4, - 18179: 0x55E6, - 18180: 0x55DD, - 18181: 0x55C4, - 18182: 0x55EF, - 18183: 0x55E5, - 18184: 0x55F2, - 18185: 0x55F3, - 18186: 0x55CC, - 18187: 0x55CD, - 18188: 0x55E8, - 18189: 0x55F5, - 18190: 0x55E4, - 18191: 0x8F94, - 18192: 0x561E, - 18193: 0x5608, - 18194: 0x560C, - 18195: 0x5601, - 18196: 0x5624, - 18197: 0x5623, - 18198: 0x55FE, - 18199: 0x5600, - 18200: 0x5627, - 18201: 0x562D, - 18202: 0x5658, - 18203: 0x5639, - 18204: 0x5657, - 18205: 0x562C, - 18206: 0x564D, - 18207: 0x5662, - 18208: 0x5659, - 18209: 0x565C, - 18210: 0x564C, - 18211: 0x5654, - 18212: 0x5686, - 18213: 0x5664, - 18214: 0x5671, - 18215: 0x566B, - 18216: 0x567B, - 18217: 0x567C, - 18218: 0x5685, - 18219: 0x5693, - 18220: 0x56AF, - 18221: 0x56D4, - 18222: 0x56D7, - 18223: 0x56DD, - 18224: 0x56E1, - 18225: 0x56F5, - 18226: 0x56EB, - 18227: 0x56F9, - 18228: 0x56FF, - 18229: 0x5704, - 18230: 0x570A, - 18231: 0x5709, - 18232: 0x571C, - 18233: 0x5E0F, - 18234: 0x5E19, - 18235: 0x5E14, - 18236: 0x5E11, - 18237: 0x5E31, - 18238: 0x5E3B, - 18239: 0x5E3C, - 18240: 0x9145, - 18241: 0x9147, - 18242: 0x9148, - 18243: 0x9151, - 18244: 0x9153, - 18245: 0x9154, - 18246: 0x9155, - 18247: 0x9156, - 18248: 0x9158, - 18249: 0x9159, - 18250: 0x915B, - 18251: 0x915C, - 18252: 0x915F, - 18253: 0x9160, - 18254: 0x9166, - 18255: 0x9167, - 18256: 0x9168, - 18257: 0x916B, - 18258: 0x916D, - 18259: 0x9173, - 18260: 0x917A, - 18261: 0x917B, - 18262: 0x917C, - 18263: 0x9180, - 18264: 0x9181, - 18265: 0x9182, - 18266: 0x9183, - 18267: 0x9184, - 18268: 0x9186, - 18269: 0x9188, - 18270: 0x918A, - 18271: 0x918E, - 18272: 0x918F, - 18273: 0x9193, - 18274: 0x9194, - 18275: 0x9195, - 18276: 0x9196, - 18277: 0x9197, - 18278: 0x9198, - 18279: 0x9199, - 18280: 0x919C, - 18281: 0x919D, - 18282: 0x919E, - 18283: 0x919F, - 18284: 0x91A0, - 18285: 0x91A1, - 18286: 0x91A4, - 18287: 0x91A5, - 18288: 0x91A6, - 18289: 0x91A7, - 18290: 0x91A8, - 18291: 0x91A9, - 18292: 0x91AB, - 18293: 0x91AC, - 18294: 0x91B0, - 18295: 0x91B1, - 18296: 0x91B2, - 18297: 0x91B3, - 18298: 0x91B6, - 18299: 0x91B7, - 18300: 0x91B8, - 18301: 0x91B9, - 18302: 0x91BB, - 18303: 0x91BC, - 18304: 0x91BD, - 18305: 0x91BE, - 18306: 0x91BF, - 18307: 0x91C0, - 18308: 0x91C1, - 18309: 0x91C2, - 18310: 0x91C3, - 18311: 0x91C4, - 18312: 0x91C5, - 18313: 0x91C6, - 18314: 0x91C8, - 18315: 0x91CB, - 18316: 0x91D0, - 18317: 0x91D2, - 18318: 0x91D3, - 18319: 0x91D4, - 18320: 0x91D5, - 18321: 0x91D6, - 18322: 0x91D7, - 18323: 0x91D8, - 18324: 0x91D9, - 18325: 0x91DA, - 18326: 0x91DB, - 18327: 0x91DD, - 18328: 0x91DE, - 18329: 0x91DF, - 18330: 0x91E0, - 18331: 0x91E1, - 18332: 0x91E2, - 18333: 0x91E3, - 18334: 0x91E4, - 18335: 0x91E5, - 18336: 0x5E37, - 18337: 0x5E44, - 18338: 0x5E54, - 18339: 0x5E5B, - 18340: 0x5E5E, - 18341: 0x5E61, - 18342: 0x5C8C, - 18343: 0x5C7A, - 18344: 0x5C8D, - 18345: 0x5C90, - 18346: 0x5C96, - 18347: 0x5C88, - 18348: 0x5C98, - 18349: 0x5C99, - 18350: 0x5C91, - 18351: 0x5C9A, - 18352: 0x5C9C, - 18353: 0x5CB5, - 18354: 0x5CA2, - 18355: 0x5CBD, - 18356: 0x5CAC, - 18357: 0x5CAB, - 18358: 0x5CB1, - 18359: 0x5CA3, - 18360: 0x5CC1, - 18361: 0x5CB7, - 18362: 0x5CC4, - 18363: 0x5CD2, - 18364: 0x5CE4, - 18365: 0x5CCB, - 18366: 0x5CE5, - 18367: 0x5D02, - 18368: 0x5D03, - 18369: 0x5D27, - 18370: 0x5D26, - 18371: 0x5D2E, - 18372: 0x5D24, - 18373: 0x5D1E, - 18374: 0x5D06, - 18375: 0x5D1B, - 18376: 0x5D58, - 18377: 0x5D3E, - 18378: 0x5D34, - 18379: 0x5D3D, - 18380: 0x5D6C, - 18381: 0x5D5B, - 18382: 0x5D6F, - 18383: 0x5D5D, - 18384: 0x5D6B, - 18385: 0x5D4B, - 18386: 0x5D4A, - 18387: 0x5D69, - 18388: 0x5D74, - 18389: 0x5D82, - 18390: 0x5D99, - 18391: 0x5D9D, - 18392: 0x8C73, - 18393: 0x5DB7, - 18394: 0x5DC5, - 18395: 0x5F73, - 18396: 0x5F77, - 18397: 0x5F82, - 18398: 0x5F87, - 18399: 0x5F89, - 18400: 0x5F8C, - 18401: 0x5F95, - 18402: 0x5F99, - 18403: 0x5F9C, - 18404: 0x5FA8, - 18405: 0x5FAD, - 18406: 0x5FB5, - 18407: 0x5FBC, - 18408: 0x8862, - 18409: 0x5F61, - 18410: 0x72AD, - 18411: 0x72B0, - 18412: 0x72B4, - 18413: 0x72B7, - 18414: 0x72B8, - 18415: 0x72C3, - 18416: 0x72C1, - 18417: 0x72CE, - 18418: 0x72CD, - 18419: 0x72D2, - 18420: 0x72E8, - 18421: 0x72EF, - 18422: 0x72E9, - 18423: 0x72F2, - 18424: 0x72F4, - 18425: 0x72F7, - 18426: 0x7301, - 18427: 0x72F3, - 18428: 0x7303, - 18429: 0x72FA, - 18430: 0x91E6, - 18431: 0x91E7, - 18432: 0x91E8, - 18433: 0x91E9, - 18434: 0x91EA, - 18435: 0x91EB, - 18436: 0x91EC, - 18437: 0x91ED, - 18438: 0x91EE, - 18439: 0x91EF, - 18440: 0x91F0, - 18441: 0x91F1, - 18442: 0x91F2, - 18443: 0x91F3, - 18444: 0x91F4, - 18445: 0x91F5, - 18446: 0x91F6, - 18447: 0x91F7, - 18448: 0x91F8, - 18449: 0x91F9, - 18450: 0x91FA, - 18451: 0x91FB, - 18452: 0x91FC, - 18453: 0x91FD, - 18454: 0x91FE, - 18455: 0x91FF, - 18456: 0x9200, - 18457: 0x9201, - 18458: 0x9202, - 18459: 0x9203, - 18460: 0x9204, - 18461: 0x9205, - 18462: 0x9206, - 18463: 0x9207, - 18464: 0x9208, - 18465: 0x9209, - 18466: 0x920A, - 18467: 0x920B, - 18468: 0x920C, - 18469: 0x920D, - 18470: 0x920E, - 18471: 0x920F, - 18472: 0x9210, - 18473: 0x9211, - 18474: 0x9212, - 18475: 0x9213, - 18476: 0x9214, - 18477: 0x9215, - 18478: 0x9216, - 18479: 0x9217, - 18480: 0x9218, - 18481: 0x9219, - 18482: 0x921A, - 18483: 0x921B, - 18484: 0x921C, - 18485: 0x921D, - 18486: 0x921E, - 18487: 0x921F, - 18488: 0x9220, - 18489: 0x9221, - 18490: 0x9222, - 18491: 0x9223, - 18492: 0x9224, - 18493: 0x9225, - 18494: 0x9226, - 18495: 0x9227, - 18496: 0x9228, - 18497: 0x9229, - 18498: 0x922A, - 18499: 0x922B, - 18500: 0x922C, - 18501: 0x922D, - 18502: 0x922E, - 18503: 0x922F, - 18504: 0x9230, - 18505: 0x9231, - 18506: 0x9232, - 18507: 0x9233, - 18508: 0x9234, - 18509: 0x9235, - 18510: 0x9236, - 18511: 0x9237, - 18512: 0x9238, - 18513: 0x9239, - 18514: 0x923A, - 18515: 0x923B, - 18516: 0x923C, - 18517: 0x923D, - 18518: 0x923E, - 18519: 0x923F, - 18520: 0x9240, - 18521: 0x9241, - 18522: 0x9242, - 18523: 0x9243, - 18524: 0x9244, - 18525: 0x9245, - 18526: 0x72FB, - 18527: 0x7317, - 18528: 0x7313, - 18529: 0x7321, - 18530: 0x730A, - 18531: 0x731E, - 18532: 0x731D, - 18533: 0x7315, - 18534: 0x7322, - 18535: 0x7339, - 18536: 0x7325, - 18537: 0x732C, - 18538: 0x7338, - 18539: 0x7331, - 18540: 0x7350, - 18541: 0x734D, - 18542: 0x7357, - 18543: 0x7360, - 18544: 0x736C, - 18545: 0x736F, - 18546: 0x737E, - 18547: 0x821B, - 18548: 0x5925, - 18549: 0x98E7, - 18550: 0x5924, - 18551: 0x5902, - 18552: 0x9963, - 18553: 0x9967, - 18554: 0x9968, - 18555: 0x9969, - 18556: 0x996A, - 18557: 0x996B, - 18558: 0x996C, - 18559: 0x9974, - 18560: 0x9977, - 18561: 0x997D, - 18562: 0x9980, - 18563: 0x9984, - 18564: 0x9987, - 18565: 0x998A, - 18566: 0x998D, - 18567: 0x9990, - 18568: 0x9991, - 18569: 0x9993, - 18570: 0x9994, - 18571: 0x9995, - 18572: 0x5E80, - 18573: 0x5E91, - 18574: 0x5E8B, - 18575: 0x5E96, - 18576: 0x5EA5, - 18577: 0x5EA0, - 18578: 0x5EB9, - 18579: 0x5EB5, - 18580: 0x5EBE, - 18581: 0x5EB3, - 18582: 0x8D53, - 18583: 0x5ED2, - 18584: 0x5ED1, - 18585: 0x5EDB, - 18586: 0x5EE8, - 18587: 0x5EEA, - 18588: 0x81BA, - 18589: 0x5FC4, - 18590: 0x5FC9, - 18591: 0x5FD6, - 18592: 0x5FCF, - 18593: 0x6003, - 18594: 0x5FEE, - 18595: 0x6004, - 18596: 0x5FE1, - 18597: 0x5FE4, - 18598: 0x5FFE, - 18599: 0x6005, - 18600: 0x6006, - 18601: 0x5FEA, - 18602: 0x5FED, - 18603: 0x5FF8, - 18604: 0x6019, - 18605: 0x6035, - 18606: 0x6026, - 18607: 0x601B, - 18608: 0x600F, - 18609: 0x600D, - 18610: 0x6029, - 18611: 0x602B, - 18612: 0x600A, - 18613: 0x603F, - 18614: 0x6021, - 18615: 0x6078, - 18616: 0x6079, - 18617: 0x607B, - 18618: 0x607A, - 18619: 0x6042, - 18620: 0x9246, - 18621: 0x9247, - 18622: 0x9248, - 18623: 0x9249, - 18624: 0x924A, - 18625: 0x924B, - 18626: 0x924C, - 18627: 0x924D, - 18628: 0x924E, - 18629: 0x924F, - 18630: 0x9250, - 18631: 0x9251, - 18632: 0x9252, - 18633: 0x9253, - 18634: 0x9254, - 18635: 0x9255, - 18636: 0x9256, - 18637: 0x9257, - 18638: 0x9258, - 18639: 0x9259, - 18640: 0x925A, - 18641: 0x925B, - 18642: 0x925C, - 18643: 0x925D, - 18644: 0x925E, - 18645: 0x925F, - 18646: 0x9260, - 18647: 0x9261, - 18648: 0x9262, - 18649: 0x9263, - 18650: 0x9264, - 18651: 0x9265, - 18652: 0x9266, - 18653: 0x9267, - 18654: 0x9268, - 18655: 0x9269, - 18656: 0x926A, - 18657: 0x926B, - 18658: 0x926C, - 18659: 0x926D, - 18660: 0x926E, - 18661: 0x926F, - 18662: 0x9270, - 18663: 0x9271, - 18664: 0x9272, - 18665: 0x9273, - 18666: 0x9275, - 18667: 0x9276, - 18668: 0x9277, - 18669: 0x9278, - 18670: 0x9279, - 18671: 0x927A, - 18672: 0x927B, - 18673: 0x927C, - 18674: 0x927D, - 18675: 0x927E, - 18676: 0x927F, - 18677: 0x9280, - 18678: 0x9281, - 18679: 0x9282, - 18680: 0x9283, - 18681: 0x9284, - 18682: 0x9285, - 18683: 0x9286, - 18684: 0x9287, - 18685: 0x9288, - 18686: 0x9289, - 18687: 0x928A, - 18688: 0x928B, - 18689: 0x928C, - 18690: 0x928D, - 18691: 0x928F, - 18692: 0x9290, - 18693: 0x9291, - 18694: 0x9292, - 18695: 0x9293, - 18696: 0x9294, - 18697: 0x9295, - 18698: 0x9296, - 18699: 0x9297, - 18700: 0x9298, - 18701: 0x9299, - 18702: 0x929A, - 18703: 0x929B, - 18704: 0x929C, - 18705: 0x929D, - 18706: 0x929E, - 18707: 0x929F, - 18708: 0x92A0, - 18709: 0x92A1, - 18710: 0x92A2, - 18711: 0x92A3, - 18712: 0x92A4, - 18713: 0x92A5, - 18714: 0x92A6, - 18715: 0x92A7, - 18716: 0x606A, - 18717: 0x607D, - 18718: 0x6096, - 18719: 0x609A, - 18720: 0x60AD, - 18721: 0x609D, - 18722: 0x6083, - 18723: 0x6092, - 18724: 0x608C, - 18725: 0x609B, - 18726: 0x60EC, - 18727: 0x60BB, - 18728: 0x60B1, - 18729: 0x60DD, - 18730: 0x60D8, - 18731: 0x60C6, - 18732: 0x60DA, - 18733: 0x60B4, - 18734: 0x6120, - 18735: 0x6126, - 18736: 0x6115, - 18737: 0x6123, - 18738: 0x60F4, - 18739: 0x6100, - 18740: 0x610E, - 18741: 0x612B, - 18742: 0x614A, - 18743: 0x6175, - 18744: 0x61AC, - 18745: 0x6194, - 18746: 0x61A7, - 18747: 0x61B7, - 18748: 0x61D4, - 18749: 0x61F5, - 18750: 0x5FDD, - 18751: 0x96B3, - 18752: 0x95E9, - 18753: 0x95EB, - 18754: 0x95F1, - 18755: 0x95F3, - 18756: 0x95F5, - 18757: 0x95F6, - 18758: 0x95FC, - 18759: 0x95FE, - 18760: 0x9603, - 18761: 0x9604, - 18762: 0x9606, - 18763: 0x9608, - 18764: 0x960A, - 18765: 0x960B, - 18766: 0x960C, - 18767: 0x960D, - 18768: 0x960F, - 18769: 0x9612, - 18770: 0x9615, - 18771: 0x9616, - 18772: 0x9617, - 18773: 0x9619, - 18774: 0x961A, - 18775: 0x4E2C, - 18776: 0x723F, - 18777: 0x6215, - 18778: 0x6C35, - 18779: 0x6C54, - 18780: 0x6C5C, - 18781: 0x6C4A, - 18782: 0x6CA3, - 18783: 0x6C85, - 18784: 0x6C90, - 18785: 0x6C94, - 18786: 0x6C8C, - 18787: 0x6C68, - 18788: 0x6C69, - 18789: 0x6C74, - 18790: 0x6C76, - 18791: 0x6C86, - 18792: 0x6CA9, - 18793: 0x6CD0, - 18794: 0x6CD4, - 18795: 0x6CAD, - 18796: 0x6CF7, - 18797: 0x6CF8, - 18798: 0x6CF1, - 18799: 0x6CD7, - 18800: 0x6CB2, - 18801: 0x6CE0, - 18802: 0x6CD6, - 18803: 0x6CFA, - 18804: 0x6CEB, - 18805: 0x6CEE, - 18806: 0x6CB1, - 18807: 0x6CD3, - 18808: 0x6CEF, - 18809: 0x6CFE, - 18810: 0x92A8, - 18811: 0x92A9, - 18812: 0x92AA, - 18813: 0x92AB, - 18814: 0x92AC, - 18815: 0x92AD, - 18816: 0x92AF, - 18817: 0x92B0, - 18818: 0x92B1, - 18819: 0x92B2, - 18820: 0x92B3, - 18821: 0x92B4, - 18822: 0x92B5, - 18823: 0x92B6, - 18824: 0x92B7, - 18825: 0x92B8, - 18826: 0x92B9, - 18827: 0x92BA, - 18828: 0x92BB, - 18829: 0x92BC, - 18830: 0x92BD, - 18831: 0x92BE, - 18832: 0x92BF, - 18833: 0x92C0, - 18834: 0x92C1, - 18835: 0x92C2, - 18836: 0x92C3, - 18837: 0x92C4, - 18838: 0x92C5, - 18839: 0x92C6, - 18840: 0x92C7, - 18841: 0x92C9, - 18842: 0x92CA, - 18843: 0x92CB, - 18844: 0x92CC, - 18845: 0x92CD, - 18846: 0x92CE, - 18847: 0x92CF, - 18848: 0x92D0, - 18849: 0x92D1, - 18850: 0x92D2, - 18851: 0x92D3, - 18852: 0x92D4, - 18853: 0x92D5, - 18854: 0x92D6, - 18855: 0x92D7, - 18856: 0x92D8, - 18857: 0x92D9, - 18858: 0x92DA, - 18859: 0x92DB, - 18860: 0x92DC, - 18861: 0x92DD, - 18862: 0x92DE, - 18863: 0x92DF, - 18864: 0x92E0, - 18865: 0x92E1, - 18866: 0x92E2, - 18867: 0x92E3, - 18868: 0x92E4, - 18869: 0x92E5, - 18870: 0x92E6, - 18871: 0x92E7, - 18872: 0x92E8, - 18873: 0x92E9, - 18874: 0x92EA, - 18875: 0x92EB, - 18876: 0x92EC, - 18877: 0x92ED, - 18878: 0x92EE, - 18879: 0x92EF, - 18880: 0x92F0, - 18881: 0x92F1, - 18882: 0x92F2, - 18883: 0x92F3, - 18884: 0x92F4, - 18885: 0x92F5, - 18886: 0x92F6, - 18887: 0x92F7, - 18888: 0x92F8, - 18889: 0x92F9, - 18890: 0x92FA, - 18891: 0x92FB, - 18892: 0x92FC, - 18893: 0x92FD, - 18894: 0x92FE, - 18895: 0x92FF, - 18896: 0x9300, - 18897: 0x9301, - 18898: 0x9302, - 18899: 0x9303, - 18900: 0x9304, - 18901: 0x9305, - 18902: 0x9306, - 18903: 0x9307, - 18904: 0x9308, - 18905: 0x9309, - 18906: 0x6D39, - 18907: 0x6D27, - 18908: 0x6D0C, - 18909: 0x6D43, - 18910: 0x6D48, - 18911: 0x6D07, - 18912: 0x6D04, - 18913: 0x6D19, - 18914: 0x6D0E, - 18915: 0x6D2B, - 18916: 0x6D4D, - 18917: 0x6D2E, - 18918: 0x6D35, - 18919: 0x6D1A, - 18920: 0x6D4F, - 18921: 0x6D52, - 18922: 0x6D54, - 18923: 0x6D33, - 18924: 0x6D91, - 18925: 0x6D6F, - 18926: 0x6D9E, - 18927: 0x6DA0, - 18928: 0x6D5E, - 18929: 0x6D93, - 18930: 0x6D94, - 18931: 0x6D5C, - 18932: 0x6D60, - 18933: 0x6D7C, - 18934: 0x6D63, - 18935: 0x6E1A, - 18936: 0x6DC7, - 18937: 0x6DC5, - 18938: 0x6DDE, - 18939: 0x6E0E, - 18940: 0x6DBF, - 18941: 0x6DE0, - 18942: 0x6E11, - 18943: 0x6DE6, - 18944: 0x6DDD, - 18945: 0x6DD9, - 18946: 0x6E16, - 18947: 0x6DAB, - 18948: 0x6E0C, - 18949: 0x6DAE, - 18950: 0x6E2B, - 18951: 0x6E6E, - 18952: 0x6E4E, - 18953: 0x6E6B, - 18954: 0x6EB2, - 18955: 0x6E5F, - 18956: 0x6E86, - 18957: 0x6E53, - 18958: 0x6E54, - 18959: 0x6E32, - 18960: 0x6E25, - 18961: 0x6E44, - 18962: 0x6EDF, - 18963: 0x6EB1, - 18964: 0x6E98, - 18965: 0x6EE0, - 18966: 0x6F2D, - 18967: 0x6EE2, - 18968: 0x6EA5, - 18969: 0x6EA7, - 18970: 0x6EBD, - 18971: 0x6EBB, - 18972: 0x6EB7, - 18973: 0x6ED7, - 18974: 0x6EB4, - 18975: 0x6ECF, - 18976: 0x6E8F, - 18977: 0x6EC2, - 18978: 0x6E9F, - 18979: 0x6F62, - 18980: 0x6F46, - 18981: 0x6F47, - 18982: 0x6F24, - 18983: 0x6F15, - 18984: 0x6EF9, - 18985: 0x6F2F, - 18986: 0x6F36, - 18987: 0x6F4B, - 18988: 0x6F74, - 18989: 0x6F2A, - 18990: 0x6F09, - 18991: 0x6F29, - 18992: 0x6F89, - 18993: 0x6F8D, - 18994: 0x6F8C, - 18995: 0x6F78, - 18996: 0x6F72, - 18997: 0x6F7C, - 18998: 0x6F7A, - 18999: 0x6FD1, - 19000: 0x930A, - 19001: 0x930B, - 19002: 0x930C, - 19003: 0x930D, - 19004: 0x930E, - 19005: 0x930F, - 19006: 0x9310, - 19007: 0x9311, - 19008: 0x9312, - 19009: 0x9313, - 19010: 0x9314, - 19011: 0x9315, - 19012: 0x9316, - 19013: 0x9317, - 19014: 0x9318, - 19015: 0x9319, - 19016: 0x931A, - 19017: 0x931B, - 19018: 0x931C, - 19019: 0x931D, - 19020: 0x931E, - 19021: 0x931F, - 19022: 0x9320, - 19023: 0x9321, - 19024: 0x9322, - 19025: 0x9323, - 19026: 0x9324, - 19027: 0x9325, - 19028: 0x9326, - 19029: 0x9327, - 19030: 0x9328, - 19031: 0x9329, - 19032: 0x932A, - 19033: 0x932B, - 19034: 0x932C, - 19035: 0x932D, - 19036: 0x932E, - 19037: 0x932F, - 19038: 0x9330, - 19039: 0x9331, - 19040: 0x9332, - 19041: 0x9333, - 19042: 0x9334, - 19043: 0x9335, - 19044: 0x9336, - 19045: 0x9337, - 19046: 0x9338, - 19047: 0x9339, - 19048: 0x933A, - 19049: 0x933B, - 19050: 0x933C, - 19051: 0x933D, - 19052: 0x933F, - 19053: 0x9340, - 19054: 0x9341, - 19055: 0x9342, - 19056: 0x9343, - 19057: 0x9344, - 19058: 0x9345, - 19059: 0x9346, - 19060: 0x9347, - 19061: 0x9348, - 19062: 0x9349, - 19063: 0x934A, - 19064: 0x934B, - 19065: 0x934C, - 19066: 0x934D, - 19067: 0x934E, - 19068: 0x934F, - 19069: 0x9350, - 19070: 0x9351, - 19071: 0x9352, - 19072: 0x9353, - 19073: 0x9354, - 19074: 0x9355, - 19075: 0x9356, - 19076: 0x9357, - 19077: 0x9358, - 19078: 0x9359, - 19079: 0x935A, - 19080: 0x935B, - 19081: 0x935C, - 19082: 0x935D, - 19083: 0x935E, - 19084: 0x935F, - 19085: 0x9360, - 19086: 0x9361, - 19087: 0x9362, - 19088: 0x9363, - 19089: 0x9364, - 19090: 0x9365, - 19091: 0x9366, - 19092: 0x9367, - 19093: 0x9368, - 19094: 0x9369, - 19095: 0x936B, - 19096: 0x6FC9, - 19097: 0x6FA7, - 19098: 0x6FB9, - 19099: 0x6FB6, - 19100: 0x6FC2, - 19101: 0x6FE1, - 19102: 0x6FEE, - 19103: 0x6FDE, - 19104: 0x6FE0, - 19105: 0x6FEF, - 19106: 0x701A, - 19107: 0x7023, - 19108: 0x701B, - 19109: 0x7039, - 19110: 0x7035, - 19111: 0x704F, - 19112: 0x705E, - 19113: 0x5B80, - 19114: 0x5B84, - 19115: 0x5B95, - 19116: 0x5B93, - 19117: 0x5BA5, - 19118: 0x5BB8, - 19119: 0x752F, - 19120: 0x9A9E, - 19121: 0x6434, - 19122: 0x5BE4, - 19123: 0x5BEE, - 19124: 0x8930, - 19125: 0x5BF0, - 19126: 0x8E47, - 19127: 0x8B07, - 19128: 0x8FB6, - 19129: 0x8FD3, - 19130: 0x8FD5, - 19131: 0x8FE5, - 19132: 0x8FEE, - 19133: 0x8FE4, - 19134: 0x8FE9, - 19135: 0x8FE6, - 19136: 0x8FF3, - 19137: 0x8FE8, - 19138: 0x9005, - 19139: 0x9004, - 19140: 0x900B, - 19141: 0x9026, - 19142: 0x9011, - 19143: 0x900D, - 19144: 0x9016, - 19145: 0x9021, - 19146: 0x9035, - 19147: 0x9036, - 19148: 0x902D, - 19149: 0x902F, - 19150: 0x9044, - 19151: 0x9051, - 19152: 0x9052, - 19153: 0x9050, - 19154: 0x9068, - 19155: 0x9058, - 19156: 0x9062, - 19157: 0x905B, - 19158: 0x66B9, - 19159: 0x9074, - 19160: 0x907D, - 19161: 0x9082, - 19162: 0x9088, - 19163: 0x9083, - 19164: 0x908B, - 19165: 0x5F50, - 19166: 0x5F57, - 19167: 0x5F56, - 19168: 0x5F58, - 19169: 0x5C3B, - 19170: 0x54AB, - 19171: 0x5C50, - 19172: 0x5C59, - 19173: 0x5B71, - 19174: 0x5C63, - 19175: 0x5C66, - 19176: 0x7FBC, - 19177: 0x5F2A, - 19178: 0x5F29, - 19179: 0x5F2D, - 19180: 0x8274, - 19181: 0x5F3C, - 19182: 0x9B3B, - 19183: 0x5C6E, - 19184: 0x5981, - 19185: 0x5983, - 19186: 0x598D, - 19187: 0x59A9, - 19188: 0x59AA, - 19189: 0x59A3, - 19190: 0x936C, - 19191: 0x936D, - 19192: 0x936E, - 19193: 0x936F, - 19194: 0x9370, - 19195: 0x9371, - 19196: 0x9372, - 19197: 0x9373, - 19198: 0x9374, - 19199: 0x9375, - 19200: 0x9376, - 19201: 0x9377, - 19202: 0x9378, - 19203: 0x9379, - 19204: 0x937A, - 19205: 0x937B, - 19206: 0x937C, - 19207: 0x937D, - 19208: 0x937E, - 19209: 0x937F, - 19210: 0x9380, - 19211: 0x9381, - 19212: 0x9382, - 19213: 0x9383, - 19214: 0x9384, - 19215: 0x9385, - 19216: 0x9386, - 19217: 0x9387, - 19218: 0x9388, - 19219: 0x9389, - 19220: 0x938A, - 19221: 0x938B, - 19222: 0x938C, - 19223: 0x938D, - 19224: 0x938E, - 19225: 0x9390, - 19226: 0x9391, - 19227: 0x9392, - 19228: 0x9393, - 19229: 0x9394, - 19230: 0x9395, - 19231: 0x9396, - 19232: 0x9397, - 19233: 0x9398, - 19234: 0x9399, - 19235: 0x939A, - 19236: 0x939B, - 19237: 0x939C, - 19238: 0x939D, - 19239: 0x939E, - 19240: 0x939F, - 19241: 0x93A0, - 19242: 0x93A1, - 19243: 0x93A2, - 19244: 0x93A3, - 19245: 0x93A4, - 19246: 0x93A5, - 19247: 0x93A6, - 19248: 0x93A7, - 19249: 0x93A8, - 19250: 0x93A9, - 19251: 0x93AA, - 19252: 0x93AB, - 19253: 0x93AC, - 19254: 0x93AD, - 19255: 0x93AE, - 19256: 0x93AF, - 19257: 0x93B0, - 19258: 0x93B1, - 19259: 0x93B2, - 19260: 0x93B3, - 19261: 0x93B4, - 19262: 0x93B5, - 19263: 0x93B6, - 19264: 0x93B7, - 19265: 0x93B8, - 19266: 0x93B9, - 19267: 0x93BA, - 19268: 0x93BB, - 19269: 0x93BC, - 19270: 0x93BD, - 19271: 0x93BE, - 19272: 0x93BF, - 19273: 0x93C0, - 19274: 0x93C1, - 19275: 0x93C2, - 19276: 0x93C3, - 19277: 0x93C4, - 19278: 0x93C5, - 19279: 0x93C6, - 19280: 0x93C7, - 19281: 0x93C8, - 19282: 0x93C9, - 19283: 0x93CB, - 19284: 0x93CC, - 19285: 0x93CD, - 19286: 0x5997, - 19287: 0x59CA, - 19288: 0x59AB, - 19289: 0x599E, - 19290: 0x59A4, - 19291: 0x59D2, - 19292: 0x59B2, - 19293: 0x59AF, - 19294: 0x59D7, - 19295: 0x59BE, - 19296: 0x5A05, - 19297: 0x5A06, - 19298: 0x59DD, - 19299: 0x5A08, - 19300: 0x59E3, - 19301: 0x59D8, - 19302: 0x59F9, - 19303: 0x5A0C, - 19304: 0x5A09, - 19305: 0x5A32, - 19306: 0x5A34, - 19307: 0x5A11, - 19308: 0x5A23, - 19309: 0x5A13, - 19310: 0x5A40, - 19311: 0x5A67, - 19312: 0x5A4A, - 19313: 0x5A55, - 19314: 0x5A3C, - 19315: 0x5A62, - 19316: 0x5A75, - 19317: 0x80EC, - 19318: 0x5AAA, - 19319: 0x5A9B, - 19320: 0x5A77, - 19321: 0x5A7A, - 19322: 0x5ABE, - 19323: 0x5AEB, - 19324: 0x5AB2, - 19325: 0x5AD2, - 19326: 0x5AD4, - 19327: 0x5AB8, - 19328: 0x5AE0, - 19329: 0x5AE3, - 19330: 0x5AF1, - 19331: 0x5AD6, - 19332: 0x5AE6, - 19333: 0x5AD8, - 19334: 0x5ADC, - 19335: 0x5B09, - 19336: 0x5B17, - 19337: 0x5B16, - 19338: 0x5B32, - 19339: 0x5B37, - 19340: 0x5B40, - 19341: 0x5C15, - 19342: 0x5C1C, - 19343: 0x5B5A, - 19344: 0x5B65, - 19345: 0x5B73, - 19346: 0x5B51, - 19347: 0x5B53, - 19348: 0x5B62, - 19349: 0x9A75, - 19350: 0x9A77, - 19351: 0x9A78, - 19352: 0x9A7A, - 19353: 0x9A7F, - 19354: 0x9A7D, - 19355: 0x9A80, - 19356: 0x9A81, - 19357: 0x9A85, - 19358: 0x9A88, - 19359: 0x9A8A, - 19360: 0x9A90, - 19361: 0x9A92, - 19362: 0x9A93, - 19363: 0x9A96, - 19364: 0x9A98, - 19365: 0x9A9B, - 19366: 0x9A9C, - 19367: 0x9A9D, - 19368: 0x9A9F, - 19369: 0x9AA0, - 19370: 0x9AA2, - 19371: 0x9AA3, - 19372: 0x9AA5, - 19373: 0x9AA7, - 19374: 0x7E9F, - 19375: 0x7EA1, - 19376: 0x7EA3, - 19377: 0x7EA5, - 19378: 0x7EA8, - 19379: 0x7EA9, - 19380: 0x93CE, - 19381: 0x93CF, - 19382: 0x93D0, - 19383: 0x93D1, - 19384: 0x93D2, - 19385: 0x93D3, - 19386: 0x93D4, - 19387: 0x93D5, - 19388: 0x93D7, - 19389: 0x93D8, - 19390: 0x93D9, - 19391: 0x93DA, - 19392: 0x93DB, - 19393: 0x93DC, - 19394: 0x93DD, - 19395: 0x93DE, - 19396: 0x93DF, - 19397: 0x93E0, - 19398: 0x93E1, - 19399: 0x93E2, - 19400: 0x93E3, - 19401: 0x93E4, - 19402: 0x93E5, - 19403: 0x93E6, - 19404: 0x93E7, - 19405: 0x93E8, - 19406: 0x93E9, - 19407: 0x93EA, - 19408: 0x93EB, - 19409: 0x93EC, - 19410: 0x93ED, - 19411: 0x93EE, - 19412: 0x93EF, - 19413: 0x93F0, - 19414: 0x93F1, - 19415: 0x93F2, - 19416: 0x93F3, - 19417: 0x93F4, - 19418: 0x93F5, - 19419: 0x93F6, - 19420: 0x93F7, - 19421: 0x93F8, - 19422: 0x93F9, - 19423: 0x93FA, - 19424: 0x93FB, - 19425: 0x93FC, - 19426: 0x93FD, - 19427: 0x93FE, - 19428: 0x93FF, - 19429: 0x9400, - 19430: 0x9401, - 19431: 0x9402, - 19432: 0x9403, - 19433: 0x9404, - 19434: 0x9405, - 19435: 0x9406, - 19436: 0x9407, - 19437: 0x9408, - 19438: 0x9409, - 19439: 0x940A, - 19440: 0x940B, - 19441: 0x940C, - 19442: 0x940D, - 19443: 0x940E, - 19444: 0x940F, - 19445: 0x9410, - 19446: 0x9411, - 19447: 0x9412, - 19448: 0x9413, - 19449: 0x9414, - 19450: 0x9415, - 19451: 0x9416, - 19452: 0x9417, - 19453: 0x9418, - 19454: 0x9419, - 19455: 0x941A, - 19456: 0x941B, - 19457: 0x941C, - 19458: 0x941D, - 19459: 0x941E, - 19460: 0x941F, - 19461: 0x9420, - 19462: 0x9421, - 19463: 0x9422, - 19464: 0x9423, - 19465: 0x9424, - 19466: 0x9425, - 19467: 0x9426, - 19468: 0x9427, - 19469: 0x9428, - 19470: 0x9429, - 19471: 0x942A, - 19472: 0x942B, - 19473: 0x942C, - 19474: 0x942D, - 19475: 0x942E, - 19476: 0x7EAD, - 19477: 0x7EB0, - 19478: 0x7EBE, - 19479: 0x7EC0, - 19480: 0x7EC1, - 19481: 0x7EC2, - 19482: 0x7EC9, - 19483: 0x7ECB, - 19484: 0x7ECC, - 19485: 0x7ED0, - 19486: 0x7ED4, - 19487: 0x7ED7, - 19488: 0x7EDB, - 19489: 0x7EE0, - 19490: 0x7EE1, - 19491: 0x7EE8, - 19492: 0x7EEB, - 19493: 0x7EEE, - 19494: 0x7EEF, - 19495: 0x7EF1, - 19496: 0x7EF2, - 19497: 0x7F0D, - 19498: 0x7EF6, - 19499: 0x7EFA, - 19500: 0x7EFB, - 19501: 0x7EFE, - 19502: 0x7F01, - 19503: 0x7F02, - 19504: 0x7F03, - 19505: 0x7F07, - 19506: 0x7F08, - 19507: 0x7F0B, - 19508: 0x7F0C, - 19509: 0x7F0F, - 19510: 0x7F11, - 19511: 0x7F12, - 19512: 0x7F17, - 19513: 0x7F19, - 19514: 0x7F1C, - 19515: 0x7F1B, - 19516: 0x7F1F, - 19517: 0x7F21, - 19518: 0x7F22, - 19519: 0x7F23, - 19520: 0x7F24, - 19521: 0x7F25, - 19522: 0x7F26, - 19523: 0x7F27, - 19524: 0x7F2A, - 19525: 0x7F2B, - 19526: 0x7F2C, - 19527: 0x7F2D, - 19528: 0x7F2F, - 19529: 0x7F30, - 19530: 0x7F31, - 19531: 0x7F32, - 19532: 0x7F33, - 19533: 0x7F35, - 19534: 0x5E7A, - 19535: 0x757F, - 19536: 0x5DDB, - 19537: 0x753E, - 19538: 0x9095, - 19539: 0x738E, - 19540: 0x7391, - 19541: 0x73AE, - 19542: 0x73A2, - 19543: 0x739F, - 19544: 0x73CF, - 19545: 0x73C2, - 19546: 0x73D1, - 19547: 0x73B7, - 19548: 0x73B3, - 19549: 0x73C0, - 19550: 0x73C9, - 19551: 0x73C8, - 19552: 0x73E5, - 19553: 0x73D9, - 19554: 0x987C, - 19555: 0x740A, - 19556: 0x73E9, - 19557: 0x73E7, - 19558: 0x73DE, - 19559: 0x73BA, - 19560: 0x73F2, - 19561: 0x740F, - 19562: 0x742A, - 19563: 0x745B, - 19564: 0x7426, - 19565: 0x7425, - 19566: 0x7428, - 19567: 0x7430, - 19568: 0x742E, - 19569: 0x742C, - 19570: 0x942F, - 19571: 0x9430, - 19572: 0x9431, - 19573: 0x9432, - 19574: 0x9433, - 19575: 0x9434, - 19576: 0x9435, - 19577: 0x9436, - 19578: 0x9437, - 19579: 0x9438, - 19580: 0x9439, - 19581: 0x943A, - 19582: 0x943B, - 19583: 0x943C, - 19584: 0x943D, - 19585: 0x943F, - 19586: 0x9440, - 19587: 0x9441, - 19588: 0x9442, - 19589: 0x9443, - 19590: 0x9444, - 19591: 0x9445, - 19592: 0x9446, - 19593: 0x9447, - 19594: 0x9448, - 19595: 0x9449, - 19596: 0x944A, - 19597: 0x944B, - 19598: 0x944C, - 19599: 0x944D, - 19600: 0x944E, - 19601: 0x944F, - 19602: 0x9450, - 19603: 0x9451, - 19604: 0x9452, - 19605: 0x9453, - 19606: 0x9454, - 19607: 0x9455, - 19608: 0x9456, - 19609: 0x9457, - 19610: 0x9458, - 19611: 0x9459, - 19612: 0x945A, - 19613: 0x945B, - 19614: 0x945C, - 19615: 0x945D, - 19616: 0x945E, - 19617: 0x945F, - 19618: 0x9460, - 19619: 0x9461, - 19620: 0x9462, - 19621: 0x9463, - 19622: 0x9464, - 19623: 0x9465, - 19624: 0x9466, - 19625: 0x9467, - 19626: 0x9468, - 19627: 0x9469, - 19628: 0x946A, - 19629: 0x946C, - 19630: 0x946D, - 19631: 0x946E, - 19632: 0x946F, - 19633: 0x9470, - 19634: 0x9471, - 19635: 0x9472, - 19636: 0x9473, - 19637: 0x9474, - 19638: 0x9475, - 19639: 0x9476, - 19640: 0x9477, - 19641: 0x9478, - 19642: 0x9479, - 19643: 0x947A, - 19644: 0x947B, - 19645: 0x947C, - 19646: 0x947D, - 19647: 0x947E, - 19648: 0x947F, - 19649: 0x9480, - 19650: 0x9481, - 19651: 0x9482, - 19652: 0x9483, - 19653: 0x9484, - 19654: 0x9491, - 19655: 0x9496, - 19656: 0x9498, - 19657: 0x94C7, - 19658: 0x94CF, - 19659: 0x94D3, - 19660: 0x94D4, - 19661: 0x94DA, - 19662: 0x94E6, - 19663: 0x94FB, - 19664: 0x951C, - 19665: 0x9520, - 19666: 0x741B, - 19667: 0x741A, - 19668: 0x7441, - 19669: 0x745C, - 19670: 0x7457, - 19671: 0x7455, - 19672: 0x7459, - 19673: 0x7477, - 19674: 0x746D, - 19675: 0x747E, - 19676: 0x749C, - 19677: 0x748E, - 19678: 0x7480, - 19679: 0x7481, - 19680: 0x7487, - 19681: 0x748B, - 19682: 0x749E, - 19683: 0x74A8, - 19684: 0x74A9, - 19685: 0x7490, - 19686: 0x74A7, - 19687: 0x74D2, - 19688: 0x74BA, - 19689: 0x97EA, - 19690: 0x97EB, - 19691: 0x97EC, - 19692: 0x674C, - 19693: 0x6753, - 19694: 0x675E, - 19695: 0x6748, - 19696: 0x6769, - 19697: 0x67A5, - 19698: 0x6787, - 19699: 0x676A, - 19700: 0x6773, - 19701: 0x6798, - 19702: 0x67A7, - 19703: 0x6775, - 19704: 0x67A8, - 19705: 0x679E, - 19706: 0x67AD, - 19707: 0x678B, - 19708: 0x6777, - 19709: 0x677C, - 19710: 0x67F0, - 19711: 0x6809, - 19712: 0x67D8, - 19713: 0x680A, - 19714: 0x67E9, - 19715: 0x67B0, - 19716: 0x680C, - 19717: 0x67D9, - 19718: 0x67B5, - 19719: 0x67DA, - 19720: 0x67B3, - 19721: 0x67DD, - 19722: 0x6800, - 19723: 0x67C3, - 19724: 0x67B8, - 19725: 0x67E2, - 19726: 0x680E, - 19727: 0x67C1, - 19728: 0x67FD, - 19729: 0x6832, - 19730: 0x6833, - 19731: 0x6860, - 19732: 0x6861, - 19733: 0x684E, - 19734: 0x6862, - 19735: 0x6844, - 19736: 0x6864, - 19737: 0x6883, - 19738: 0x681D, - 19739: 0x6855, - 19740: 0x6866, - 19741: 0x6841, - 19742: 0x6867, - 19743: 0x6840, - 19744: 0x683E, - 19745: 0x684A, - 19746: 0x6849, - 19747: 0x6829, - 19748: 0x68B5, - 19749: 0x688F, - 19750: 0x6874, - 19751: 0x6877, - 19752: 0x6893, - 19753: 0x686B, - 19754: 0x68C2, - 19755: 0x696E, - 19756: 0x68FC, - 19757: 0x691F, - 19758: 0x6920, - 19759: 0x68F9, - 19760: 0x9527, - 19761: 0x9533, - 19762: 0x953D, - 19763: 0x9543, - 19764: 0x9548, - 19765: 0x954B, - 19766: 0x9555, - 19767: 0x955A, - 19768: 0x9560, - 19769: 0x956E, - 19770: 0x9574, - 19771: 0x9575, - 19772: 0x9577, - 19773: 0x9578, - 19774: 0x9579, - 19775: 0x957A, - 19776: 0x957B, - 19777: 0x957C, - 19778: 0x957D, - 19779: 0x957E, - 19780: 0x9580, - 19781: 0x9581, - 19782: 0x9582, - 19783: 0x9583, - 19784: 0x9584, - 19785: 0x9585, - 19786: 0x9586, - 19787: 0x9587, - 19788: 0x9588, - 19789: 0x9589, - 19790: 0x958A, - 19791: 0x958B, - 19792: 0x958C, - 19793: 0x958D, - 19794: 0x958E, - 19795: 0x958F, - 19796: 0x9590, - 19797: 0x9591, - 19798: 0x9592, - 19799: 0x9593, - 19800: 0x9594, - 19801: 0x9595, - 19802: 0x9596, - 19803: 0x9597, - 19804: 0x9598, - 19805: 0x9599, - 19806: 0x959A, - 19807: 0x959B, - 19808: 0x959C, - 19809: 0x959D, - 19810: 0x959E, - 19811: 0x959F, - 19812: 0x95A0, - 19813: 0x95A1, - 19814: 0x95A2, - 19815: 0x95A3, - 19816: 0x95A4, - 19817: 0x95A5, - 19818: 0x95A6, - 19819: 0x95A7, - 19820: 0x95A8, - 19821: 0x95A9, - 19822: 0x95AA, - 19823: 0x95AB, - 19824: 0x95AC, - 19825: 0x95AD, - 19826: 0x95AE, - 19827: 0x95AF, - 19828: 0x95B0, - 19829: 0x95B1, - 19830: 0x95B2, - 19831: 0x95B3, - 19832: 0x95B4, - 19833: 0x95B5, - 19834: 0x95B6, - 19835: 0x95B7, - 19836: 0x95B8, - 19837: 0x95B9, - 19838: 0x95BA, - 19839: 0x95BB, - 19840: 0x95BC, - 19841: 0x95BD, - 19842: 0x95BE, - 19843: 0x95BF, - 19844: 0x95C0, - 19845: 0x95C1, - 19846: 0x95C2, - 19847: 0x95C3, - 19848: 0x95C4, - 19849: 0x95C5, - 19850: 0x95C6, - 19851: 0x95C7, - 19852: 0x95C8, - 19853: 0x95C9, - 19854: 0x95CA, - 19855: 0x95CB, - 19856: 0x6924, - 19857: 0x68F0, - 19858: 0x690B, - 19859: 0x6901, - 19860: 0x6957, - 19861: 0x68E3, - 19862: 0x6910, - 19863: 0x6971, - 19864: 0x6939, - 19865: 0x6960, - 19866: 0x6942, - 19867: 0x695D, - 19868: 0x6984, - 19869: 0x696B, - 19870: 0x6980, - 19871: 0x6998, - 19872: 0x6978, - 19873: 0x6934, - 19874: 0x69CC, - 19875: 0x6987, - 19876: 0x6988, - 19877: 0x69CE, - 19878: 0x6989, - 19879: 0x6966, - 19880: 0x6963, - 19881: 0x6979, - 19882: 0x699B, - 19883: 0x69A7, - 19884: 0x69BB, - 19885: 0x69AB, - 19886: 0x69AD, - 19887: 0x69D4, - 19888: 0x69B1, - 19889: 0x69C1, - 19890: 0x69CA, - 19891: 0x69DF, - 19892: 0x6995, - 19893: 0x69E0, - 19894: 0x698D, - 19895: 0x69FF, - 19896: 0x6A2F, - 19897: 0x69ED, - 19898: 0x6A17, - 19899: 0x6A18, - 19900: 0x6A65, - 19901: 0x69F2, - 19902: 0x6A44, - 19903: 0x6A3E, - 19904: 0x6AA0, - 19905: 0x6A50, - 19906: 0x6A5B, - 19907: 0x6A35, - 19908: 0x6A8E, - 19909: 0x6A79, - 19910: 0x6A3D, - 19911: 0x6A28, - 19912: 0x6A58, - 19913: 0x6A7C, - 19914: 0x6A91, - 19915: 0x6A90, - 19916: 0x6AA9, - 19917: 0x6A97, - 19918: 0x6AAB, - 19919: 0x7337, - 19920: 0x7352, - 19921: 0x6B81, - 19922: 0x6B82, - 19923: 0x6B87, - 19924: 0x6B84, - 19925: 0x6B92, - 19926: 0x6B93, - 19927: 0x6B8D, - 19928: 0x6B9A, - 19929: 0x6B9B, - 19930: 0x6BA1, - 19931: 0x6BAA, - 19932: 0x8F6B, - 19933: 0x8F6D, - 19934: 0x8F71, - 19935: 0x8F72, - 19936: 0x8F73, - 19937: 0x8F75, - 19938: 0x8F76, - 19939: 0x8F78, - 19940: 0x8F77, - 19941: 0x8F79, - 19942: 0x8F7A, - 19943: 0x8F7C, - 19944: 0x8F7E, - 19945: 0x8F81, - 19946: 0x8F82, - 19947: 0x8F84, - 19948: 0x8F87, - 19949: 0x8F8B, - 19950: 0x95CC, - 19951: 0x95CD, - 19952: 0x95CE, - 19953: 0x95CF, - 19954: 0x95D0, - 19955: 0x95D1, - 19956: 0x95D2, - 19957: 0x95D3, - 19958: 0x95D4, - 19959: 0x95D5, - 19960: 0x95D6, - 19961: 0x95D7, - 19962: 0x95D8, - 19963: 0x95D9, - 19964: 0x95DA, - 19965: 0x95DB, - 19966: 0x95DC, - 19967: 0x95DD, - 19968: 0x95DE, - 19969: 0x95DF, - 19970: 0x95E0, - 19971: 0x95E1, - 19972: 0x95E2, - 19973: 0x95E3, - 19974: 0x95E4, - 19975: 0x95E5, - 19976: 0x95E6, - 19977: 0x95E7, - 19978: 0x95EC, - 19979: 0x95FF, - 19980: 0x9607, - 19981: 0x9613, - 19982: 0x9618, - 19983: 0x961B, - 19984: 0x961E, - 19985: 0x9620, - 19986: 0x9623, - 19987: 0x9624, - 19988: 0x9625, - 19989: 0x9626, - 19990: 0x9627, - 19991: 0x9628, - 19992: 0x9629, - 19993: 0x962B, - 19994: 0x962C, - 19995: 0x962D, - 19996: 0x962F, - 19997: 0x9630, - 19998: 0x9637, - 19999: 0x9638, - 20000: 0x9639, - 20001: 0x963A, - 20002: 0x963E, - 20003: 0x9641, - 20004: 0x9643, - 20005: 0x964A, - 20006: 0x964E, - 20007: 0x964F, - 20008: 0x9651, - 20009: 0x9652, - 20010: 0x9653, - 20011: 0x9656, - 20012: 0x9657, - 20013: 0x9658, - 20014: 0x9659, - 20015: 0x965A, - 20016: 0x965C, - 20017: 0x965D, - 20018: 0x965E, - 20019: 0x9660, - 20020: 0x9663, - 20021: 0x9665, - 20022: 0x9666, - 20023: 0x966B, - 20024: 0x966D, - 20025: 0x966E, - 20026: 0x966F, - 20027: 0x9670, - 20028: 0x9671, - 20029: 0x9673, - 20030: 0x9678, - 20031: 0x9679, - 20032: 0x967A, - 20033: 0x967B, - 20034: 0x967C, - 20035: 0x967D, - 20036: 0x967E, - 20037: 0x967F, - 20038: 0x9680, - 20039: 0x9681, - 20040: 0x9682, - 20041: 0x9683, - 20042: 0x9684, - 20043: 0x9687, - 20044: 0x9689, - 20045: 0x968A, - 20046: 0x8F8D, - 20047: 0x8F8E, - 20048: 0x8F8F, - 20049: 0x8F98, - 20050: 0x8F9A, - 20051: 0x8ECE, - 20052: 0x620B, - 20053: 0x6217, - 20054: 0x621B, - 20055: 0x621F, - 20056: 0x6222, - 20057: 0x6221, - 20058: 0x6225, - 20059: 0x6224, - 20060: 0x622C, - 20061: 0x81E7, - 20062: 0x74EF, - 20063: 0x74F4, - 20064: 0x74FF, - 20065: 0x750F, - 20066: 0x7511, - 20067: 0x7513, - 20068: 0x6534, - 20069: 0x65EE, - 20070: 0x65EF, - 20071: 0x65F0, - 20072: 0x660A, - 20073: 0x6619, - 20074: 0x6772, - 20075: 0x6603, - 20076: 0x6615, - 20077: 0x6600, - 20078: 0x7085, - 20079: 0x66F7, - 20080: 0x661D, - 20081: 0x6634, - 20082: 0x6631, - 20083: 0x6636, - 20084: 0x6635, - 20085: 0x8006, - 20086: 0x665F, - 20087: 0x6654, - 20088: 0x6641, - 20089: 0x664F, - 20090: 0x6656, - 20091: 0x6661, - 20092: 0x6657, - 20093: 0x6677, - 20094: 0x6684, - 20095: 0x668C, - 20096: 0x66A7, - 20097: 0x669D, - 20098: 0x66BE, - 20099: 0x66DB, - 20100: 0x66DC, - 20101: 0x66E6, - 20102: 0x66E9, - 20103: 0x8D32, - 20104: 0x8D33, - 20105: 0x8D36, - 20106: 0x8D3B, - 20107: 0x8D3D, - 20108: 0x8D40, - 20109: 0x8D45, - 20110: 0x8D46, - 20111: 0x8D48, - 20112: 0x8D49, - 20113: 0x8D47, - 20114: 0x8D4D, - 20115: 0x8D55, - 20116: 0x8D59, - 20117: 0x89C7, - 20118: 0x89CA, - 20119: 0x89CB, - 20120: 0x89CC, - 20121: 0x89CE, - 20122: 0x89CF, - 20123: 0x89D0, - 20124: 0x89D1, - 20125: 0x726E, - 20126: 0x729F, - 20127: 0x725D, - 20128: 0x7266, - 20129: 0x726F, - 20130: 0x727E, - 20131: 0x727F, - 20132: 0x7284, - 20133: 0x728B, - 20134: 0x728D, - 20135: 0x728F, - 20136: 0x7292, - 20137: 0x6308, - 20138: 0x6332, - 20139: 0x63B0, - 20140: 0x968C, - 20141: 0x968E, - 20142: 0x9691, - 20143: 0x9692, - 20144: 0x9693, - 20145: 0x9695, - 20146: 0x9696, - 20147: 0x969A, - 20148: 0x969B, - 20149: 0x969D, - 20150: 0x969E, - 20151: 0x969F, - 20152: 0x96A0, - 20153: 0x96A1, - 20154: 0x96A2, - 20155: 0x96A3, - 20156: 0x96A4, - 20157: 0x96A5, - 20158: 0x96A6, - 20159: 0x96A8, - 20160: 0x96A9, - 20161: 0x96AA, - 20162: 0x96AB, - 20163: 0x96AC, - 20164: 0x96AD, - 20165: 0x96AE, - 20166: 0x96AF, - 20167: 0x96B1, - 20168: 0x96B2, - 20169: 0x96B4, - 20170: 0x96B5, - 20171: 0x96B7, - 20172: 0x96B8, - 20173: 0x96BA, - 20174: 0x96BB, - 20175: 0x96BF, - 20176: 0x96C2, - 20177: 0x96C3, - 20178: 0x96C8, - 20179: 0x96CA, - 20180: 0x96CB, - 20181: 0x96D0, - 20182: 0x96D1, - 20183: 0x96D3, - 20184: 0x96D4, - 20185: 0x96D6, - 20186: 0x96D7, - 20187: 0x96D8, - 20188: 0x96D9, - 20189: 0x96DA, - 20190: 0x96DB, - 20191: 0x96DC, - 20192: 0x96DD, - 20193: 0x96DE, - 20194: 0x96DF, - 20195: 0x96E1, - 20196: 0x96E2, - 20197: 0x96E3, - 20198: 0x96E4, - 20199: 0x96E5, - 20200: 0x96E6, - 20201: 0x96E7, - 20202: 0x96EB, - 20203: 0x96EC, - 20204: 0x96ED, - 20205: 0x96EE, - 20206: 0x96F0, - 20207: 0x96F1, - 20208: 0x96F2, - 20209: 0x96F4, - 20210: 0x96F5, - 20211: 0x96F8, - 20212: 0x96FA, - 20213: 0x96FB, - 20214: 0x96FC, - 20215: 0x96FD, - 20216: 0x96FF, - 20217: 0x9702, - 20218: 0x9703, - 20219: 0x9705, - 20220: 0x970A, - 20221: 0x970B, - 20222: 0x970C, - 20223: 0x9710, - 20224: 0x9711, - 20225: 0x9712, - 20226: 0x9714, - 20227: 0x9715, - 20228: 0x9717, - 20229: 0x9718, - 20230: 0x9719, - 20231: 0x971A, - 20232: 0x971B, - 20233: 0x971D, - 20234: 0x971F, - 20235: 0x9720, - 20236: 0x643F, - 20237: 0x64D8, - 20238: 0x8004, - 20239: 0x6BEA, - 20240: 0x6BF3, - 20241: 0x6BFD, - 20242: 0x6BF5, - 20243: 0x6BF9, - 20244: 0x6C05, - 20245: 0x6C07, - 20246: 0x6C06, - 20247: 0x6C0D, - 20248: 0x6C15, - 20249: 0x6C18, - 20250: 0x6C19, - 20251: 0x6C1A, - 20252: 0x6C21, - 20253: 0x6C29, - 20254: 0x6C24, - 20255: 0x6C2A, - 20256: 0x6C32, - 20257: 0x6535, - 20258: 0x6555, - 20259: 0x656B, - 20260: 0x724D, - 20261: 0x7252, - 20262: 0x7256, - 20263: 0x7230, - 20264: 0x8662, - 20265: 0x5216, - 20266: 0x809F, - 20267: 0x809C, - 20268: 0x8093, - 20269: 0x80BC, - 20270: 0x670A, - 20271: 0x80BD, - 20272: 0x80B1, - 20273: 0x80AB, - 20274: 0x80AD, - 20275: 0x80B4, - 20276: 0x80B7, - 20277: 0x80E7, - 20278: 0x80E8, - 20279: 0x80E9, - 20280: 0x80EA, - 20281: 0x80DB, - 20282: 0x80C2, - 20283: 0x80C4, - 20284: 0x80D9, - 20285: 0x80CD, - 20286: 0x80D7, - 20287: 0x6710, - 20288: 0x80DD, - 20289: 0x80EB, - 20290: 0x80F1, - 20291: 0x80F4, - 20292: 0x80ED, - 20293: 0x810D, - 20294: 0x810E, - 20295: 0x80F2, - 20296: 0x80FC, - 20297: 0x6715, - 20298: 0x8112, - 20299: 0x8C5A, - 20300: 0x8136, - 20301: 0x811E, - 20302: 0x812C, - 20303: 0x8118, - 20304: 0x8132, - 20305: 0x8148, - 20306: 0x814C, - 20307: 0x8153, - 20308: 0x8174, - 20309: 0x8159, - 20310: 0x815A, - 20311: 0x8171, - 20312: 0x8160, - 20313: 0x8169, - 20314: 0x817C, - 20315: 0x817D, - 20316: 0x816D, - 20317: 0x8167, - 20318: 0x584D, - 20319: 0x5AB5, - 20320: 0x8188, - 20321: 0x8182, - 20322: 0x8191, - 20323: 0x6ED5, - 20324: 0x81A3, - 20325: 0x81AA, - 20326: 0x81CC, - 20327: 0x6726, - 20328: 0x81CA, - 20329: 0x81BB, - 20330: 0x9721, - 20331: 0x9722, - 20332: 0x9723, - 20333: 0x9724, - 20334: 0x9725, - 20335: 0x9726, - 20336: 0x9727, - 20337: 0x9728, - 20338: 0x9729, - 20339: 0x972B, - 20340: 0x972C, - 20341: 0x972E, - 20342: 0x972F, - 20343: 0x9731, - 20344: 0x9733, - 20345: 0x9734, - 20346: 0x9735, - 20347: 0x9736, - 20348: 0x9737, - 20349: 0x973A, - 20350: 0x973B, - 20351: 0x973C, - 20352: 0x973D, - 20353: 0x973F, - 20354: 0x9740, - 20355: 0x9741, - 20356: 0x9742, - 20357: 0x9743, - 20358: 0x9744, - 20359: 0x9745, - 20360: 0x9746, - 20361: 0x9747, - 20362: 0x9748, - 20363: 0x9749, - 20364: 0x974A, - 20365: 0x974B, - 20366: 0x974C, - 20367: 0x974D, - 20368: 0x974E, - 20369: 0x974F, - 20370: 0x9750, - 20371: 0x9751, - 20372: 0x9754, - 20373: 0x9755, - 20374: 0x9757, - 20375: 0x9758, - 20376: 0x975A, - 20377: 0x975C, - 20378: 0x975D, - 20379: 0x975F, - 20380: 0x9763, - 20381: 0x9764, - 20382: 0x9766, - 20383: 0x9767, - 20384: 0x9768, - 20385: 0x976A, - 20386: 0x976B, - 20387: 0x976C, - 20388: 0x976D, - 20389: 0x976E, - 20390: 0x976F, - 20391: 0x9770, - 20392: 0x9771, - 20393: 0x9772, - 20394: 0x9775, - 20395: 0x9777, - 20396: 0x9778, - 20397: 0x9779, - 20398: 0x977A, - 20399: 0x977B, - 20400: 0x977D, - 20401: 0x977E, - 20402: 0x977F, - 20403: 0x9780, - 20404: 0x9781, - 20405: 0x9782, - 20406: 0x9783, - 20407: 0x9784, - 20408: 0x9786, - 20409: 0x9787, - 20410: 0x9788, - 20411: 0x9789, - 20412: 0x978A, - 20413: 0x978C, - 20414: 0x978E, - 20415: 0x978F, - 20416: 0x9790, - 20417: 0x9793, - 20418: 0x9795, - 20419: 0x9796, - 20420: 0x9797, - 20421: 0x9799, - 20422: 0x979A, - 20423: 0x979B, - 20424: 0x979C, - 20425: 0x979D, - 20426: 0x81C1, - 20427: 0x81A6, - 20428: 0x6B24, - 20429: 0x6B37, - 20430: 0x6B39, - 20431: 0x6B43, - 20432: 0x6B46, - 20433: 0x6B59, - 20434: 0x98D1, - 20435: 0x98D2, - 20436: 0x98D3, - 20437: 0x98D5, - 20438: 0x98D9, - 20439: 0x98DA, - 20440: 0x6BB3, - 20441: 0x5F40, - 20442: 0x6BC2, - 20443: 0x89F3, - 20444: 0x6590, - 20445: 0x9F51, - 20446: 0x6593, - 20447: 0x65BC, - 20448: 0x65C6, - 20449: 0x65C4, - 20450: 0x65C3, - 20451: 0x65CC, - 20452: 0x65CE, - 20453: 0x65D2, - 20454: 0x65D6, - 20455: 0x7080, - 20456: 0x709C, - 20457: 0x7096, - 20458: 0x709D, - 20459: 0x70BB, - 20460: 0x70C0, - 20461: 0x70B7, - 20462: 0x70AB, - 20463: 0x70B1, - 20464: 0x70E8, - 20465: 0x70CA, - 20466: 0x7110, - 20467: 0x7113, - 20468: 0x7116, - 20469: 0x712F, - 20470: 0x7131, - 20471: 0x7173, - 20472: 0x715C, - 20473: 0x7168, - 20474: 0x7145, - 20475: 0x7172, - 20476: 0x714A, - 20477: 0x7178, - 20478: 0x717A, - 20479: 0x7198, - 20480: 0x71B3, - 20481: 0x71B5, - 20482: 0x71A8, - 20483: 0x71A0, - 20484: 0x71E0, - 20485: 0x71D4, - 20486: 0x71E7, - 20487: 0x71F9, - 20488: 0x721D, - 20489: 0x7228, - 20490: 0x706C, - 20491: 0x7118, - 20492: 0x7166, - 20493: 0x71B9, - 20494: 0x623E, - 20495: 0x623D, - 20496: 0x6243, - 20497: 0x6248, - 20498: 0x6249, - 20499: 0x793B, - 20500: 0x7940, - 20501: 0x7946, - 20502: 0x7949, - 20503: 0x795B, - 20504: 0x795C, - 20505: 0x7953, - 20506: 0x795A, - 20507: 0x7962, - 20508: 0x7957, - 20509: 0x7960, - 20510: 0x796F, - 20511: 0x7967, - 20512: 0x797A, - 20513: 0x7985, - 20514: 0x798A, - 20515: 0x799A, - 20516: 0x79A7, - 20517: 0x79B3, - 20518: 0x5FD1, - 20519: 0x5FD0, - 20520: 0x979E, - 20521: 0x979F, - 20522: 0x97A1, - 20523: 0x97A2, - 20524: 0x97A4, - 20525: 0x97A5, - 20526: 0x97A6, - 20527: 0x97A7, - 20528: 0x97A8, - 20529: 0x97A9, - 20530: 0x97AA, - 20531: 0x97AC, - 20532: 0x97AE, - 20533: 0x97B0, - 20534: 0x97B1, - 20535: 0x97B3, - 20536: 0x97B5, - 20537: 0x97B6, - 20538: 0x97B7, - 20539: 0x97B8, - 20540: 0x97B9, - 20541: 0x97BA, - 20542: 0x97BB, - 20543: 0x97BC, - 20544: 0x97BD, - 20545: 0x97BE, - 20546: 0x97BF, - 20547: 0x97C0, - 20548: 0x97C1, - 20549: 0x97C2, - 20550: 0x97C3, - 20551: 0x97C4, - 20552: 0x97C5, - 20553: 0x97C6, - 20554: 0x97C7, - 20555: 0x97C8, - 20556: 0x97C9, - 20557: 0x97CA, - 20558: 0x97CB, - 20559: 0x97CC, - 20560: 0x97CD, - 20561: 0x97CE, - 20562: 0x97CF, - 20563: 0x97D0, - 20564: 0x97D1, - 20565: 0x97D2, - 20566: 0x97D3, - 20567: 0x97D4, - 20568: 0x97D5, - 20569: 0x97D6, - 20570: 0x97D7, - 20571: 0x97D8, - 20572: 0x97D9, - 20573: 0x97DA, - 20574: 0x97DB, - 20575: 0x97DC, - 20576: 0x97DD, - 20577: 0x97DE, - 20578: 0x97DF, - 20579: 0x97E0, - 20580: 0x97E1, - 20581: 0x97E2, - 20582: 0x97E3, - 20583: 0x97E4, - 20584: 0x97E5, - 20585: 0x97E8, - 20586: 0x97EE, - 20587: 0x97EF, - 20588: 0x97F0, - 20589: 0x97F1, - 20590: 0x97F2, - 20591: 0x97F4, - 20592: 0x97F7, - 20593: 0x97F8, - 20594: 0x97F9, - 20595: 0x97FA, - 20596: 0x97FB, - 20597: 0x97FC, - 20598: 0x97FD, - 20599: 0x97FE, - 20600: 0x97FF, - 20601: 0x9800, - 20602: 0x9801, - 20603: 0x9802, - 20604: 0x9803, - 20605: 0x9804, - 20606: 0x9805, - 20607: 0x9806, - 20608: 0x9807, - 20609: 0x9808, - 20610: 0x9809, - 20611: 0x980A, - 20612: 0x980B, - 20613: 0x980C, - 20614: 0x980D, - 20615: 0x980E, - 20616: 0x603C, - 20617: 0x605D, - 20618: 0x605A, - 20619: 0x6067, - 20620: 0x6041, - 20621: 0x6059, - 20622: 0x6063, - 20623: 0x60AB, - 20624: 0x6106, - 20625: 0x610D, - 20626: 0x615D, - 20627: 0x61A9, - 20628: 0x619D, - 20629: 0x61CB, - 20630: 0x61D1, - 20631: 0x6206, - 20632: 0x8080, - 20633: 0x807F, - 20634: 0x6C93, - 20635: 0x6CF6, - 20636: 0x6DFC, - 20637: 0x77F6, - 20638: 0x77F8, - 20639: 0x7800, - 20640: 0x7809, - 20641: 0x7817, - 20642: 0x7818, - 20643: 0x7811, - 20644: 0x65AB, - 20645: 0x782D, - 20646: 0x781C, - 20647: 0x781D, - 20648: 0x7839, - 20649: 0x783A, - 20650: 0x783B, - 20651: 0x781F, - 20652: 0x783C, - 20653: 0x7825, - 20654: 0x782C, - 20655: 0x7823, - 20656: 0x7829, - 20657: 0x784E, - 20658: 0x786D, - 20659: 0x7856, - 20660: 0x7857, - 20661: 0x7826, - 20662: 0x7850, - 20663: 0x7847, - 20664: 0x784C, - 20665: 0x786A, - 20666: 0x789B, - 20667: 0x7893, - 20668: 0x789A, - 20669: 0x7887, - 20670: 0x789C, - 20671: 0x78A1, - 20672: 0x78A3, - 20673: 0x78B2, - 20674: 0x78B9, - 20675: 0x78A5, - 20676: 0x78D4, - 20677: 0x78D9, - 20678: 0x78C9, - 20679: 0x78EC, - 20680: 0x78F2, - 20681: 0x7905, - 20682: 0x78F4, - 20683: 0x7913, - 20684: 0x7924, - 20685: 0x791E, - 20686: 0x7934, - 20687: 0x9F9B, - 20688: 0x9EF9, - 20689: 0x9EFB, - 20690: 0x9EFC, - 20691: 0x76F1, - 20692: 0x7704, - 20693: 0x770D, - 20694: 0x76F9, - 20695: 0x7707, - 20696: 0x7708, - 20697: 0x771A, - 20698: 0x7722, - 20699: 0x7719, - 20700: 0x772D, - 20701: 0x7726, - 20702: 0x7735, - 20703: 0x7738, - 20704: 0x7750, - 20705: 0x7751, - 20706: 0x7747, - 20707: 0x7743, - 20708: 0x775A, - 20709: 0x7768, - 20710: 0x980F, - 20711: 0x9810, - 20712: 0x9811, - 20713: 0x9812, - 20714: 0x9813, - 20715: 0x9814, - 20716: 0x9815, - 20717: 0x9816, - 20718: 0x9817, - 20719: 0x9818, - 20720: 0x9819, - 20721: 0x981A, - 20722: 0x981B, - 20723: 0x981C, - 20724: 0x981D, - 20725: 0x981E, - 20726: 0x981F, - 20727: 0x9820, - 20728: 0x9821, - 20729: 0x9822, - 20730: 0x9823, - 20731: 0x9824, - 20732: 0x9825, - 20733: 0x9826, - 20734: 0x9827, - 20735: 0x9828, - 20736: 0x9829, - 20737: 0x982A, - 20738: 0x982B, - 20739: 0x982C, - 20740: 0x982D, - 20741: 0x982E, - 20742: 0x982F, - 20743: 0x9830, - 20744: 0x9831, - 20745: 0x9832, - 20746: 0x9833, - 20747: 0x9834, - 20748: 0x9835, - 20749: 0x9836, - 20750: 0x9837, - 20751: 0x9838, - 20752: 0x9839, - 20753: 0x983A, - 20754: 0x983B, - 20755: 0x983C, - 20756: 0x983D, - 20757: 0x983E, - 20758: 0x983F, - 20759: 0x9840, - 20760: 0x9841, - 20761: 0x9842, - 20762: 0x9843, - 20763: 0x9844, - 20764: 0x9845, - 20765: 0x9846, - 20766: 0x9847, - 20767: 0x9848, - 20768: 0x9849, - 20769: 0x984A, - 20770: 0x984B, - 20771: 0x984C, - 20772: 0x984D, - 20773: 0x984E, - 20774: 0x984F, - 20775: 0x9850, - 20776: 0x9851, - 20777: 0x9852, - 20778: 0x9853, - 20779: 0x9854, - 20780: 0x9855, - 20781: 0x9856, - 20782: 0x9857, - 20783: 0x9858, - 20784: 0x9859, - 20785: 0x985A, - 20786: 0x985B, - 20787: 0x985C, - 20788: 0x985D, - 20789: 0x985E, - 20790: 0x985F, - 20791: 0x9860, - 20792: 0x9861, - 20793: 0x9862, - 20794: 0x9863, - 20795: 0x9864, - 20796: 0x9865, - 20797: 0x9866, - 20798: 0x9867, - 20799: 0x9868, - 20800: 0x9869, - 20801: 0x986A, - 20802: 0x986B, - 20803: 0x986C, - 20804: 0x986D, - 20805: 0x986E, - 20806: 0x7762, - 20807: 0x7765, - 20808: 0x777F, - 20809: 0x778D, - 20810: 0x777D, - 20811: 0x7780, - 20812: 0x778C, - 20813: 0x7791, - 20814: 0x779F, - 20815: 0x77A0, - 20816: 0x77B0, - 20817: 0x77B5, - 20818: 0x77BD, - 20819: 0x753A, - 20820: 0x7540, - 20821: 0x754E, - 20822: 0x754B, - 20823: 0x7548, - 20824: 0x755B, - 20825: 0x7572, - 20826: 0x7579, - 20827: 0x7583, - 20828: 0x7F58, - 20829: 0x7F61, - 20830: 0x7F5F, - 20831: 0x8A48, - 20832: 0x7F68, - 20833: 0x7F74, - 20834: 0x7F71, - 20835: 0x7F79, - 20836: 0x7F81, - 20837: 0x7F7E, - 20838: 0x76CD, - 20839: 0x76E5, - 20840: 0x8832, - 20841: 0x9485, - 20842: 0x9486, - 20843: 0x9487, - 20844: 0x948B, - 20845: 0x948A, - 20846: 0x948C, - 20847: 0x948D, - 20848: 0x948F, - 20849: 0x9490, - 20850: 0x9494, - 20851: 0x9497, - 20852: 0x9495, - 20853: 0x949A, - 20854: 0x949B, - 20855: 0x949C, - 20856: 0x94A3, - 20857: 0x94A4, - 20858: 0x94AB, - 20859: 0x94AA, - 20860: 0x94AD, - 20861: 0x94AC, - 20862: 0x94AF, - 20863: 0x94B0, - 20864: 0x94B2, - 20865: 0x94B4, - 20866: 0x94B6, - 20867: 0x94B7, - 20868: 0x94B8, - 20869: 0x94B9, - 20870: 0x94BA, - 20871: 0x94BC, - 20872: 0x94BD, - 20873: 0x94BF, - 20874: 0x94C4, - 20875: 0x94C8, - 20876: 0x94C9, - 20877: 0x94CA, - 20878: 0x94CB, - 20879: 0x94CC, - 20880: 0x94CD, - 20881: 0x94CE, - 20882: 0x94D0, - 20883: 0x94D1, - 20884: 0x94D2, - 20885: 0x94D5, - 20886: 0x94D6, - 20887: 0x94D7, - 20888: 0x94D9, - 20889: 0x94D8, - 20890: 0x94DB, - 20891: 0x94DE, - 20892: 0x94DF, - 20893: 0x94E0, - 20894: 0x94E2, - 20895: 0x94E4, - 20896: 0x94E5, - 20897: 0x94E7, - 20898: 0x94E8, - 20899: 0x94EA, - 20900: 0x986F, - 20901: 0x9870, - 20902: 0x9871, - 20903: 0x9872, - 20904: 0x9873, - 20905: 0x9874, - 20906: 0x988B, - 20907: 0x988E, - 20908: 0x9892, - 20909: 0x9895, - 20910: 0x9899, - 20911: 0x98A3, - 20912: 0x98A8, - 20913: 0x98A9, - 20914: 0x98AA, - 20915: 0x98AB, - 20916: 0x98AC, - 20917: 0x98AD, - 20918: 0x98AE, - 20919: 0x98AF, - 20920: 0x98B0, - 20921: 0x98B1, - 20922: 0x98B2, - 20923: 0x98B3, - 20924: 0x98B4, - 20925: 0x98B5, - 20926: 0x98B6, - 20927: 0x98B7, - 20928: 0x98B8, - 20929: 0x98B9, - 20930: 0x98BA, - 20931: 0x98BB, - 20932: 0x98BC, - 20933: 0x98BD, - 20934: 0x98BE, - 20935: 0x98BF, - 20936: 0x98C0, - 20937: 0x98C1, - 20938: 0x98C2, - 20939: 0x98C3, - 20940: 0x98C4, - 20941: 0x98C5, - 20942: 0x98C6, - 20943: 0x98C7, - 20944: 0x98C8, - 20945: 0x98C9, - 20946: 0x98CA, - 20947: 0x98CB, - 20948: 0x98CC, - 20949: 0x98CD, - 20950: 0x98CF, - 20951: 0x98D0, - 20952: 0x98D4, - 20953: 0x98D6, - 20954: 0x98D7, - 20955: 0x98DB, - 20956: 0x98DC, - 20957: 0x98DD, - 20958: 0x98E0, - 20959: 0x98E1, - 20960: 0x98E2, - 20961: 0x98E3, - 20962: 0x98E4, - 20963: 0x98E5, - 20964: 0x98E6, - 20965: 0x98E9, - 20966: 0x98EA, - 20967: 0x98EB, - 20968: 0x98EC, - 20969: 0x98ED, - 20970: 0x98EE, - 20971: 0x98EF, - 20972: 0x98F0, - 20973: 0x98F1, - 20974: 0x98F2, - 20975: 0x98F3, - 20976: 0x98F4, - 20977: 0x98F5, - 20978: 0x98F6, - 20979: 0x98F7, - 20980: 0x98F8, - 20981: 0x98F9, - 20982: 0x98FA, - 20983: 0x98FB, - 20984: 0x98FC, - 20985: 0x98FD, - 20986: 0x98FE, - 20987: 0x98FF, - 20988: 0x9900, - 20989: 0x9901, - 20990: 0x9902, - 20991: 0x9903, - 20992: 0x9904, - 20993: 0x9905, - 20994: 0x9906, - 20995: 0x9907, - 20996: 0x94E9, - 20997: 0x94EB, - 20998: 0x94EE, - 20999: 0x94EF, - 21000: 0x94F3, - 21001: 0x94F4, - 21002: 0x94F5, - 21003: 0x94F7, - 21004: 0x94F9, - 21005: 0x94FC, - 21006: 0x94FD, - 21007: 0x94FF, - 21008: 0x9503, - 21009: 0x9502, - 21010: 0x9506, - 21011: 0x9507, - 21012: 0x9509, - 21013: 0x950A, - 21014: 0x950D, - 21015: 0x950E, - 21016: 0x950F, - 21017: 0x9512, - 21018: 0x9513, - 21019: 0x9514, - 21020: 0x9515, - 21021: 0x9516, - 21022: 0x9518, - 21023: 0x951B, - 21024: 0x951D, - 21025: 0x951E, - 21026: 0x951F, - 21027: 0x9522, - 21028: 0x952A, - 21029: 0x952B, - 21030: 0x9529, - 21031: 0x952C, - 21032: 0x9531, - 21033: 0x9532, - 21034: 0x9534, - 21035: 0x9536, - 21036: 0x9537, - 21037: 0x9538, - 21038: 0x953C, - 21039: 0x953E, - 21040: 0x953F, - 21041: 0x9542, - 21042: 0x9535, - 21043: 0x9544, - 21044: 0x9545, - 21045: 0x9546, - 21046: 0x9549, - 21047: 0x954C, - 21048: 0x954E, - 21049: 0x954F, - 21050: 0x9552, - 21051: 0x9553, - 21052: 0x9554, - 21053: 0x9556, - 21054: 0x9557, - 21055: 0x9558, - 21056: 0x9559, - 21057: 0x955B, - 21058: 0x955E, - 21059: 0x955F, - 21060: 0x955D, - 21061: 0x9561, - 21062: 0x9562, - 21063: 0x9564, - 21064: 0x9565, - 21065: 0x9566, - 21066: 0x9567, - 21067: 0x9568, - 21068: 0x9569, - 21069: 0x956A, - 21070: 0x956B, - 21071: 0x956C, - 21072: 0x956F, - 21073: 0x9571, - 21074: 0x9572, - 21075: 0x9573, - 21076: 0x953A, - 21077: 0x77E7, - 21078: 0x77EC, - 21079: 0x96C9, - 21080: 0x79D5, - 21081: 0x79ED, - 21082: 0x79E3, - 21083: 0x79EB, - 21084: 0x7A06, - 21085: 0x5D47, - 21086: 0x7A03, - 21087: 0x7A02, - 21088: 0x7A1E, - 21089: 0x7A14, - 21090: 0x9908, - 21091: 0x9909, - 21092: 0x990A, - 21093: 0x990B, - 21094: 0x990C, - 21095: 0x990E, - 21096: 0x990F, - 21097: 0x9911, - 21098: 0x9912, - 21099: 0x9913, - 21100: 0x9914, - 21101: 0x9915, - 21102: 0x9916, - 21103: 0x9917, - 21104: 0x9918, - 21105: 0x9919, - 21106: 0x991A, - 21107: 0x991B, - 21108: 0x991C, - 21109: 0x991D, - 21110: 0x991E, - 21111: 0x991F, - 21112: 0x9920, - 21113: 0x9921, - 21114: 0x9922, - 21115: 0x9923, - 21116: 0x9924, - 21117: 0x9925, - 21118: 0x9926, - 21119: 0x9927, - 21120: 0x9928, - 21121: 0x9929, - 21122: 0x992A, - 21123: 0x992B, - 21124: 0x992C, - 21125: 0x992D, - 21126: 0x992F, - 21127: 0x9930, - 21128: 0x9931, - 21129: 0x9932, - 21130: 0x9933, - 21131: 0x9934, - 21132: 0x9935, - 21133: 0x9936, - 21134: 0x9937, - 21135: 0x9938, - 21136: 0x9939, - 21137: 0x993A, - 21138: 0x993B, - 21139: 0x993C, - 21140: 0x993D, - 21141: 0x993E, - 21142: 0x993F, - 21143: 0x9940, - 21144: 0x9941, - 21145: 0x9942, - 21146: 0x9943, - 21147: 0x9944, - 21148: 0x9945, - 21149: 0x9946, - 21150: 0x9947, - 21151: 0x9948, - 21152: 0x9949, - 21153: 0x994A, - 21154: 0x994B, - 21155: 0x994C, - 21156: 0x994D, - 21157: 0x994E, - 21158: 0x994F, - 21159: 0x9950, - 21160: 0x9951, - 21161: 0x9952, - 21162: 0x9953, - 21163: 0x9956, - 21164: 0x9957, - 21165: 0x9958, - 21166: 0x9959, - 21167: 0x995A, - 21168: 0x995B, - 21169: 0x995C, - 21170: 0x995D, - 21171: 0x995E, - 21172: 0x995F, - 21173: 0x9960, - 21174: 0x9961, - 21175: 0x9962, - 21176: 0x9964, - 21177: 0x9966, - 21178: 0x9973, - 21179: 0x9978, - 21180: 0x9979, - 21181: 0x997B, - 21182: 0x997E, - 21183: 0x9982, - 21184: 0x9983, - 21185: 0x9989, - 21186: 0x7A39, - 21187: 0x7A37, - 21188: 0x7A51, - 21189: 0x9ECF, - 21190: 0x99A5, - 21191: 0x7A70, - 21192: 0x7688, - 21193: 0x768E, - 21194: 0x7693, - 21195: 0x7699, - 21196: 0x76A4, - 21197: 0x74DE, - 21198: 0x74E0, - 21199: 0x752C, - 21200: 0x9E20, - 21201: 0x9E22, - 21202: 0x9E28, - 21203: 0x9E29, - 21204: 0x9E2A, - 21205: 0x9E2B, - 21206: 0x9E2C, - 21207: 0x9E32, - 21208: 0x9E31, - 21209: 0x9E36, - 21210: 0x9E38, - 21211: 0x9E37, - 21212: 0x9E39, - 21213: 0x9E3A, - 21214: 0x9E3E, - 21215: 0x9E41, - 21216: 0x9E42, - 21217: 0x9E44, - 21218: 0x9E46, - 21219: 0x9E47, - 21220: 0x9E48, - 21221: 0x9E49, - 21222: 0x9E4B, - 21223: 0x9E4C, - 21224: 0x9E4E, - 21225: 0x9E51, - 21226: 0x9E55, - 21227: 0x9E57, - 21228: 0x9E5A, - 21229: 0x9E5B, - 21230: 0x9E5C, - 21231: 0x9E5E, - 21232: 0x9E63, - 21233: 0x9E66, - 21234: 0x9E67, - 21235: 0x9E68, - 21236: 0x9E69, - 21237: 0x9E6A, - 21238: 0x9E6B, - 21239: 0x9E6C, - 21240: 0x9E71, - 21241: 0x9E6D, - 21242: 0x9E73, - 21243: 0x7592, - 21244: 0x7594, - 21245: 0x7596, - 21246: 0x75A0, - 21247: 0x759D, - 21248: 0x75AC, - 21249: 0x75A3, - 21250: 0x75B3, - 21251: 0x75B4, - 21252: 0x75B8, - 21253: 0x75C4, - 21254: 0x75B1, - 21255: 0x75B0, - 21256: 0x75C3, - 21257: 0x75C2, - 21258: 0x75D6, - 21259: 0x75CD, - 21260: 0x75E3, - 21261: 0x75E8, - 21262: 0x75E6, - 21263: 0x75E4, - 21264: 0x75EB, - 21265: 0x75E7, - 21266: 0x7603, - 21267: 0x75F1, - 21268: 0x75FC, - 21269: 0x75FF, - 21270: 0x7610, - 21271: 0x7600, - 21272: 0x7605, - 21273: 0x760C, - 21274: 0x7617, - 21275: 0x760A, - 21276: 0x7625, - 21277: 0x7618, - 21278: 0x7615, - 21279: 0x7619, - 21280: 0x998C, - 21281: 0x998E, - 21282: 0x999A, - 21283: 0x999B, - 21284: 0x999C, - 21285: 0x999D, - 21286: 0x999E, - 21287: 0x999F, - 21288: 0x99A0, - 21289: 0x99A1, - 21290: 0x99A2, - 21291: 0x99A3, - 21292: 0x99A4, - 21293: 0x99A6, - 21294: 0x99A7, - 21295: 0x99A9, - 21296: 0x99AA, - 21297: 0x99AB, - 21298: 0x99AC, - 21299: 0x99AD, - 21300: 0x99AE, - 21301: 0x99AF, - 21302: 0x99B0, - 21303: 0x99B1, - 21304: 0x99B2, - 21305: 0x99B3, - 21306: 0x99B4, - 21307: 0x99B5, - 21308: 0x99B6, - 21309: 0x99B7, - 21310: 0x99B8, - 21311: 0x99B9, - 21312: 0x99BA, - 21313: 0x99BB, - 21314: 0x99BC, - 21315: 0x99BD, - 21316: 0x99BE, - 21317: 0x99BF, - 21318: 0x99C0, - 21319: 0x99C1, - 21320: 0x99C2, - 21321: 0x99C3, - 21322: 0x99C4, - 21323: 0x99C5, - 21324: 0x99C6, - 21325: 0x99C7, - 21326: 0x99C8, - 21327: 0x99C9, - 21328: 0x99CA, - 21329: 0x99CB, - 21330: 0x99CC, - 21331: 0x99CD, - 21332: 0x99CE, - 21333: 0x99CF, - 21334: 0x99D0, - 21335: 0x99D1, - 21336: 0x99D2, - 21337: 0x99D3, - 21338: 0x99D4, - 21339: 0x99D5, - 21340: 0x99D6, - 21341: 0x99D7, - 21342: 0x99D8, - 21343: 0x99D9, - 21344: 0x99DA, - 21345: 0x99DB, - 21346: 0x99DC, - 21347: 0x99DD, - 21348: 0x99DE, - 21349: 0x99DF, - 21350: 0x99E0, - 21351: 0x99E1, - 21352: 0x99E2, - 21353: 0x99E3, - 21354: 0x99E4, - 21355: 0x99E5, - 21356: 0x99E6, - 21357: 0x99E7, - 21358: 0x99E8, - 21359: 0x99E9, - 21360: 0x99EA, - 21361: 0x99EB, - 21362: 0x99EC, - 21363: 0x99ED, - 21364: 0x99EE, - 21365: 0x99EF, - 21366: 0x99F0, - 21367: 0x99F1, - 21368: 0x99F2, - 21369: 0x99F3, - 21370: 0x99F4, - 21371: 0x99F5, - 21372: 0x99F6, - 21373: 0x99F7, - 21374: 0x99F8, - 21375: 0x99F9, - 21376: 0x761B, - 21377: 0x763C, - 21378: 0x7622, - 21379: 0x7620, - 21380: 0x7640, - 21381: 0x762D, - 21382: 0x7630, - 21383: 0x763F, - 21384: 0x7635, - 21385: 0x7643, - 21386: 0x763E, - 21387: 0x7633, - 21388: 0x764D, - 21389: 0x765E, - 21390: 0x7654, - 21391: 0x765C, - 21392: 0x7656, - 21393: 0x766B, - 21394: 0x766F, - 21395: 0x7FCA, - 21396: 0x7AE6, - 21397: 0x7A78, - 21398: 0x7A79, - 21399: 0x7A80, - 21400: 0x7A86, - 21401: 0x7A88, - 21402: 0x7A95, - 21403: 0x7AA6, - 21404: 0x7AA0, - 21405: 0x7AAC, - 21406: 0x7AA8, - 21407: 0x7AAD, - 21408: 0x7AB3, - 21409: 0x8864, - 21410: 0x8869, - 21411: 0x8872, - 21412: 0x887D, - 21413: 0x887F, - 21414: 0x8882, - 21415: 0x88A2, - 21416: 0x88C6, - 21417: 0x88B7, - 21418: 0x88BC, - 21419: 0x88C9, - 21420: 0x88E2, - 21421: 0x88CE, - 21422: 0x88E3, - 21423: 0x88E5, - 21424: 0x88F1, - 21425: 0x891A, - 21426: 0x88FC, - 21427: 0x88E8, - 21428: 0x88FE, - 21429: 0x88F0, - 21430: 0x8921, - 21431: 0x8919, - 21432: 0x8913, - 21433: 0x891B, - 21434: 0x890A, - 21435: 0x8934, - 21436: 0x892B, - 21437: 0x8936, - 21438: 0x8941, - 21439: 0x8966, - 21440: 0x897B, - 21441: 0x758B, - 21442: 0x80E5, - 21443: 0x76B2, - 21444: 0x76B4, - 21445: 0x77DC, - 21446: 0x8012, - 21447: 0x8014, - 21448: 0x8016, - 21449: 0x801C, - 21450: 0x8020, - 21451: 0x8022, - 21452: 0x8025, - 21453: 0x8026, - 21454: 0x8027, - 21455: 0x8029, - 21456: 0x8028, - 21457: 0x8031, - 21458: 0x800B, - 21459: 0x8035, - 21460: 0x8043, - 21461: 0x8046, - 21462: 0x804D, - 21463: 0x8052, - 21464: 0x8069, - 21465: 0x8071, - 21466: 0x8983, - 21467: 0x9878, - 21468: 0x9880, - 21469: 0x9883, - 21470: 0x99FA, - 21471: 0x99FB, - 21472: 0x99FC, - 21473: 0x99FD, - 21474: 0x99FE, - 21475: 0x99FF, - 21476: 0x9A00, - 21477: 0x9A01, - 21478: 0x9A02, - 21479: 0x9A03, - 21480: 0x9A04, - 21481: 0x9A05, - 21482: 0x9A06, - 21483: 0x9A07, - 21484: 0x9A08, - 21485: 0x9A09, - 21486: 0x9A0A, - 21487: 0x9A0B, - 21488: 0x9A0C, - 21489: 0x9A0D, - 21490: 0x9A0E, - 21491: 0x9A0F, - 21492: 0x9A10, - 21493: 0x9A11, - 21494: 0x9A12, - 21495: 0x9A13, - 21496: 0x9A14, - 21497: 0x9A15, - 21498: 0x9A16, - 21499: 0x9A17, - 21500: 0x9A18, - 21501: 0x9A19, - 21502: 0x9A1A, - 21503: 0x9A1B, - 21504: 0x9A1C, - 21505: 0x9A1D, - 21506: 0x9A1E, - 21507: 0x9A1F, - 21508: 0x9A20, - 21509: 0x9A21, - 21510: 0x9A22, - 21511: 0x9A23, - 21512: 0x9A24, - 21513: 0x9A25, - 21514: 0x9A26, - 21515: 0x9A27, - 21516: 0x9A28, - 21517: 0x9A29, - 21518: 0x9A2A, - 21519: 0x9A2B, - 21520: 0x9A2C, - 21521: 0x9A2D, - 21522: 0x9A2E, - 21523: 0x9A2F, - 21524: 0x9A30, - 21525: 0x9A31, - 21526: 0x9A32, - 21527: 0x9A33, - 21528: 0x9A34, - 21529: 0x9A35, - 21530: 0x9A36, - 21531: 0x9A37, - 21532: 0x9A38, - 21533: 0x9A39, - 21534: 0x9A3A, - 21535: 0x9A3B, - 21536: 0x9A3C, - 21537: 0x9A3D, - 21538: 0x9A3E, - 21539: 0x9A3F, - 21540: 0x9A40, - 21541: 0x9A41, - 21542: 0x9A42, - 21543: 0x9A43, - 21544: 0x9A44, - 21545: 0x9A45, - 21546: 0x9A46, - 21547: 0x9A47, - 21548: 0x9A48, - 21549: 0x9A49, - 21550: 0x9A4A, - 21551: 0x9A4B, - 21552: 0x9A4C, - 21553: 0x9A4D, - 21554: 0x9A4E, - 21555: 0x9A4F, - 21556: 0x9A50, - 21557: 0x9A51, - 21558: 0x9A52, - 21559: 0x9A53, - 21560: 0x9A54, - 21561: 0x9A55, - 21562: 0x9A56, - 21563: 0x9A57, - 21564: 0x9A58, - 21565: 0x9A59, - 21566: 0x9889, - 21567: 0x988C, - 21568: 0x988D, - 21569: 0x988F, - 21570: 0x9894, - 21571: 0x989A, - 21572: 0x989B, - 21573: 0x989E, - 21574: 0x989F, - 21575: 0x98A1, - 21576: 0x98A2, - 21577: 0x98A5, - 21578: 0x98A6, - 21579: 0x864D, - 21580: 0x8654, - 21581: 0x866C, - 21582: 0x866E, - 21583: 0x867F, - 21584: 0x867A, - 21585: 0x867C, - 21586: 0x867B, - 21587: 0x86A8, - 21588: 0x868D, - 21589: 0x868B, - 21590: 0x86AC, - 21591: 0x869D, - 21592: 0x86A7, - 21593: 0x86A3, - 21594: 0x86AA, - 21595: 0x8693, - 21596: 0x86A9, - 21597: 0x86B6, - 21598: 0x86C4, - 21599: 0x86B5, - 21600: 0x86CE, - 21601: 0x86B0, - 21602: 0x86BA, - 21603: 0x86B1, - 21604: 0x86AF, - 21605: 0x86C9, - 21606: 0x86CF, - 21607: 0x86B4, - 21608: 0x86E9, - 21609: 0x86F1, - 21610: 0x86F2, - 21611: 0x86ED, - 21612: 0x86F3, - 21613: 0x86D0, - 21614: 0x8713, - 21615: 0x86DE, - 21616: 0x86F4, - 21617: 0x86DF, - 21618: 0x86D8, - 21619: 0x86D1, - 21620: 0x8703, - 21621: 0x8707, - 21622: 0x86F8, - 21623: 0x8708, - 21624: 0x870A, - 21625: 0x870D, - 21626: 0x8709, - 21627: 0x8723, - 21628: 0x873B, - 21629: 0x871E, - 21630: 0x8725, - 21631: 0x872E, - 21632: 0x871A, - 21633: 0x873E, - 21634: 0x8748, - 21635: 0x8734, - 21636: 0x8731, - 21637: 0x8729, - 21638: 0x8737, - 21639: 0x873F, - 21640: 0x8782, - 21641: 0x8722, - 21642: 0x877D, - 21643: 0x877E, - 21644: 0x877B, - 21645: 0x8760, - 21646: 0x8770, - 21647: 0x874C, - 21648: 0x876E, - 21649: 0x878B, - 21650: 0x8753, - 21651: 0x8763, - 21652: 0x877C, - 21653: 0x8764, - 21654: 0x8759, - 21655: 0x8765, - 21656: 0x8793, - 21657: 0x87AF, - 21658: 0x87A8, - 21659: 0x87D2, - 21660: 0x9A5A, - 21661: 0x9A5B, - 21662: 0x9A5C, - 21663: 0x9A5D, - 21664: 0x9A5E, - 21665: 0x9A5F, - 21666: 0x9A60, - 21667: 0x9A61, - 21668: 0x9A62, - 21669: 0x9A63, - 21670: 0x9A64, - 21671: 0x9A65, - 21672: 0x9A66, - 21673: 0x9A67, - 21674: 0x9A68, - 21675: 0x9A69, - 21676: 0x9A6A, - 21677: 0x9A6B, - 21678: 0x9A72, - 21679: 0x9A83, - 21680: 0x9A89, - 21681: 0x9A8D, - 21682: 0x9A8E, - 21683: 0x9A94, - 21684: 0x9A95, - 21685: 0x9A99, - 21686: 0x9AA6, - 21687: 0x9AA9, - 21688: 0x9AAA, - 21689: 0x9AAB, - 21690: 0x9AAC, - 21691: 0x9AAD, - 21692: 0x9AAE, - 21693: 0x9AAF, - 21694: 0x9AB2, - 21695: 0x9AB3, - 21696: 0x9AB4, - 21697: 0x9AB5, - 21698: 0x9AB9, - 21699: 0x9ABB, - 21700: 0x9ABD, - 21701: 0x9ABE, - 21702: 0x9ABF, - 21703: 0x9AC3, - 21704: 0x9AC4, - 21705: 0x9AC6, - 21706: 0x9AC7, - 21707: 0x9AC8, - 21708: 0x9AC9, - 21709: 0x9ACA, - 21710: 0x9ACD, - 21711: 0x9ACE, - 21712: 0x9ACF, - 21713: 0x9AD0, - 21714: 0x9AD2, - 21715: 0x9AD4, - 21716: 0x9AD5, - 21717: 0x9AD6, - 21718: 0x9AD7, - 21719: 0x9AD9, - 21720: 0x9ADA, - 21721: 0x9ADB, - 21722: 0x9ADC, - 21723: 0x9ADD, - 21724: 0x9ADE, - 21725: 0x9AE0, - 21726: 0x9AE2, - 21727: 0x9AE3, - 21728: 0x9AE4, - 21729: 0x9AE5, - 21730: 0x9AE7, - 21731: 0x9AE8, - 21732: 0x9AE9, - 21733: 0x9AEA, - 21734: 0x9AEC, - 21735: 0x9AEE, - 21736: 0x9AF0, - 21737: 0x9AF1, - 21738: 0x9AF2, - 21739: 0x9AF3, - 21740: 0x9AF4, - 21741: 0x9AF5, - 21742: 0x9AF6, - 21743: 0x9AF7, - 21744: 0x9AF8, - 21745: 0x9AFA, - 21746: 0x9AFC, - 21747: 0x9AFD, - 21748: 0x9AFE, - 21749: 0x9AFF, - 21750: 0x9B00, - 21751: 0x9B01, - 21752: 0x9B02, - 21753: 0x9B04, - 21754: 0x9B05, - 21755: 0x9B06, - 21756: 0x87C6, - 21757: 0x8788, - 21758: 0x8785, - 21759: 0x87AD, - 21760: 0x8797, - 21761: 0x8783, - 21762: 0x87AB, - 21763: 0x87E5, - 21764: 0x87AC, - 21765: 0x87B5, - 21766: 0x87B3, - 21767: 0x87CB, - 21768: 0x87D3, - 21769: 0x87BD, - 21770: 0x87D1, - 21771: 0x87C0, - 21772: 0x87CA, - 21773: 0x87DB, - 21774: 0x87EA, - 21775: 0x87E0, - 21776: 0x87EE, - 21777: 0x8816, - 21778: 0x8813, - 21779: 0x87FE, - 21780: 0x880A, - 21781: 0x881B, - 21782: 0x8821, - 21783: 0x8839, - 21784: 0x883C, - 21785: 0x7F36, - 21786: 0x7F42, - 21787: 0x7F44, - 21788: 0x7F45, - 21789: 0x8210, - 21790: 0x7AFA, - 21791: 0x7AFD, - 21792: 0x7B08, - 21793: 0x7B03, - 21794: 0x7B04, - 21795: 0x7B15, - 21796: 0x7B0A, - 21797: 0x7B2B, - 21798: 0x7B0F, - 21799: 0x7B47, - 21800: 0x7B38, - 21801: 0x7B2A, - 21802: 0x7B19, - 21803: 0x7B2E, - 21804: 0x7B31, - 21805: 0x7B20, - 21806: 0x7B25, - 21807: 0x7B24, - 21808: 0x7B33, - 21809: 0x7B3E, - 21810: 0x7B1E, - 21811: 0x7B58, - 21812: 0x7B5A, - 21813: 0x7B45, - 21814: 0x7B75, - 21815: 0x7B4C, - 21816: 0x7B5D, - 21817: 0x7B60, - 21818: 0x7B6E, - 21819: 0x7B7B, - 21820: 0x7B62, - 21821: 0x7B72, - 21822: 0x7B71, - 21823: 0x7B90, - 21824: 0x7BA6, - 21825: 0x7BA7, - 21826: 0x7BB8, - 21827: 0x7BAC, - 21828: 0x7B9D, - 21829: 0x7BA8, - 21830: 0x7B85, - 21831: 0x7BAA, - 21832: 0x7B9C, - 21833: 0x7BA2, - 21834: 0x7BAB, - 21835: 0x7BB4, - 21836: 0x7BD1, - 21837: 0x7BC1, - 21838: 0x7BCC, - 21839: 0x7BDD, - 21840: 0x7BDA, - 21841: 0x7BE5, - 21842: 0x7BE6, - 21843: 0x7BEA, - 21844: 0x7C0C, - 21845: 0x7BFE, - 21846: 0x7BFC, - 21847: 0x7C0F, - 21848: 0x7C16, - 21849: 0x7C0B, - 21850: 0x9B07, - 21851: 0x9B09, - 21852: 0x9B0A, - 21853: 0x9B0B, - 21854: 0x9B0C, - 21855: 0x9B0D, - 21856: 0x9B0E, - 21857: 0x9B10, - 21858: 0x9B11, - 21859: 0x9B12, - 21860: 0x9B14, - 21861: 0x9B15, - 21862: 0x9B16, - 21863: 0x9B17, - 21864: 0x9B18, - 21865: 0x9B19, - 21866: 0x9B1A, - 21867: 0x9B1B, - 21868: 0x9B1C, - 21869: 0x9B1D, - 21870: 0x9B1E, - 21871: 0x9B20, - 21872: 0x9B21, - 21873: 0x9B22, - 21874: 0x9B24, - 21875: 0x9B25, - 21876: 0x9B26, - 21877: 0x9B27, - 21878: 0x9B28, - 21879: 0x9B29, - 21880: 0x9B2A, - 21881: 0x9B2B, - 21882: 0x9B2C, - 21883: 0x9B2D, - 21884: 0x9B2E, - 21885: 0x9B30, - 21886: 0x9B31, - 21887: 0x9B33, - 21888: 0x9B34, - 21889: 0x9B35, - 21890: 0x9B36, - 21891: 0x9B37, - 21892: 0x9B38, - 21893: 0x9B39, - 21894: 0x9B3A, - 21895: 0x9B3D, - 21896: 0x9B3E, - 21897: 0x9B3F, - 21898: 0x9B40, - 21899: 0x9B46, - 21900: 0x9B4A, - 21901: 0x9B4B, - 21902: 0x9B4C, - 21903: 0x9B4E, - 21904: 0x9B50, - 21905: 0x9B52, - 21906: 0x9B53, - 21907: 0x9B55, - 21908: 0x9B56, - 21909: 0x9B57, - 21910: 0x9B58, - 21911: 0x9B59, - 21912: 0x9B5A, - 21913: 0x9B5B, - 21914: 0x9B5C, - 21915: 0x9B5D, - 21916: 0x9B5E, - 21917: 0x9B5F, - 21918: 0x9B60, - 21919: 0x9B61, - 21920: 0x9B62, - 21921: 0x9B63, - 21922: 0x9B64, - 21923: 0x9B65, - 21924: 0x9B66, - 21925: 0x9B67, - 21926: 0x9B68, - 21927: 0x9B69, - 21928: 0x9B6A, - 21929: 0x9B6B, - 21930: 0x9B6C, - 21931: 0x9B6D, - 21932: 0x9B6E, - 21933: 0x9B6F, - 21934: 0x9B70, - 21935: 0x9B71, - 21936: 0x9B72, - 21937: 0x9B73, - 21938: 0x9B74, - 21939: 0x9B75, - 21940: 0x9B76, - 21941: 0x9B77, - 21942: 0x9B78, - 21943: 0x9B79, - 21944: 0x9B7A, - 21945: 0x9B7B, - 21946: 0x7C1F, - 21947: 0x7C2A, - 21948: 0x7C26, - 21949: 0x7C38, - 21950: 0x7C41, - 21951: 0x7C40, - 21952: 0x81FE, - 21953: 0x8201, - 21954: 0x8202, - 21955: 0x8204, - 21956: 0x81EC, - 21957: 0x8844, - 21958: 0x8221, - 21959: 0x8222, - 21960: 0x8223, - 21961: 0x822D, - 21962: 0x822F, - 21963: 0x8228, - 21964: 0x822B, - 21965: 0x8238, - 21966: 0x823B, - 21967: 0x8233, - 21968: 0x8234, - 21969: 0x823E, - 21970: 0x8244, - 21971: 0x8249, - 21972: 0x824B, - 21973: 0x824F, - 21974: 0x825A, - 21975: 0x825F, - 21976: 0x8268, - 21977: 0x887E, - 21978: 0x8885, - 21979: 0x8888, - 21980: 0x88D8, - 21981: 0x88DF, - 21982: 0x895E, - 21983: 0x7F9D, - 21984: 0x7F9F, - 21985: 0x7FA7, - 21986: 0x7FAF, - 21987: 0x7FB0, - 21988: 0x7FB2, - 21989: 0x7C7C, - 21990: 0x6549, - 21991: 0x7C91, - 21992: 0x7C9D, - 21993: 0x7C9C, - 21994: 0x7C9E, - 21995: 0x7CA2, - 21996: 0x7CB2, - 21997: 0x7CBC, - 21998: 0x7CBD, - 21999: 0x7CC1, - 22000: 0x7CC7, - 22001: 0x7CCC, - 22002: 0x7CCD, - 22003: 0x7CC8, - 22004: 0x7CC5, - 22005: 0x7CD7, - 22006: 0x7CE8, - 22007: 0x826E, - 22008: 0x66A8, - 22009: 0x7FBF, - 22010: 0x7FCE, - 22011: 0x7FD5, - 22012: 0x7FE5, - 22013: 0x7FE1, - 22014: 0x7FE6, - 22015: 0x7FE9, - 22016: 0x7FEE, - 22017: 0x7FF3, - 22018: 0x7CF8, - 22019: 0x7D77, - 22020: 0x7DA6, - 22021: 0x7DAE, - 22022: 0x7E47, - 22023: 0x7E9B, - 22024: 0x9EB8, - 22025: 0x9EB4, - 22026: 0x8D73, - 22027: 0x8D84, - 22028: 0x8D94, - 22029: 0x8D91, - 22030: 0x8DB1, - 22031: 0x8D67, - 22032: 0x8D6D, - 22033: 0x8C47, - 22034: 0x8C49, - 22035: 0x914A, - 22036: 0x9150, - 22037: 0x914E, - 22038: 0x914F, - 22039: 0x9164, - 22040: 0x9B7C, - 22041: 0x9B7D, - 22042: 0x9B7E, - 22043: 0x9B7F, - 22044: 0x9B80, - 22045: 0x9B81, - 22046: 0x9B82, - 22047: 0x9B83, - 22048: 0x9B84, - 22049: 0x9B85, - 22050: 0x9B86, - 22051: 0x9B87, - 22052: 0x9B88, - 22053: 0x9B89, - 22054: 0x9B8A, - 22055: 0x9B8B, - 22056: 0x9B8C, - 22057: 0x9B8D, - 22058: 0x9B8E, - 22059: 0x9B8F, - 22060: 0x9B90, - 22061: 0x9B91, - 22062: 0x9B92, - 22063: 0x9B93, - 22064: 0x9B94, - 22065: 0x9B95, - 22066: 0x9B96, - 22067: 0x9B97, - 22068: 0x9B98, - 22069: 0x9B99, - 22070: 0x9B9A, - 22071: 0x9B9B, - 22072: 0x9B9C, - 22073: 0x9B9D, - 22074: 0x9B9E, - 22075: 0x9B9F, - 22076: 0x9BA0, - 22077: 0x9BA1, - 22078: 0x9BA2, - 22079: 0x9BA3, - 22080: 0x9BA4, - 22081: 0x9BA5, - 22082: 0x9BA6, - 22083: 0x9BA7, - 22084: 0x9BA8, - 22085: 0x9BA9, - 22086: 0x9BAA, - 22087: 0x9BAB, - 22088: 0x9BAC, - 22089: 0x9BAD, - 22090: 0x9BAE, - 22091: 0x9BAF, - 22092: 0x9BB0, - 22093: 0x9BB1, - 22094: 0x9BB2, - 22095: 0x9BB3, - 22096: 0x9BB4, - 22097: 0x9BB5, - 22098: 0x9BB6, - 22099: 0x9BB7, - 22100: 0x9BB8, - 22101: 0x9BB9, - 22102: 0x9BBA, - 22103: 0x9BBB, - 22104: 0x9BBC, - 22105: 0x9BBD, - 22106: 0x9BBE, - 22107: 0x9BBF, - 22108: 0x9BC0, - 22109: 0x9BC1, - 22110: 0x9BC2, - 22111: 0x9BC3, - 22112: 0x9BC4, - 22113: 0x9BC5, - 22114: 0x9BC6, - 22115: 0x9BC7, - 22116: 0x9BC8, - 22117: 0x9BC9, - 22118: 0x9BCA, - 22119: 0x9BCB, - 22120: 0x9BCC, - 22121: 0x9BCD, - 22122: 0x9BCE, - 22123: 0x9BCF, - 22124: 0x9BD0, - 22125: 0x9BD1, - 22126: 0x9BD2, - 22127: 0x9BD3, - 22128: 0x9BD4, - 22129: 0x9BD5, - 22130: 0x9BD6, - 22131: 0x9BD7, - 22132: 0x9BD8, - 22133: 0x9BD9, - 22134: 0x9BDA, - 22135: 0x9BDB, - 22136: 0x9162, - 22137: 0x9161, - 22138: 0x9170, - 22139: 0x9169, - 22140: 0x916F, - 22141: 0x917D, - 22142: 0x917E, - 22143: 0x9172, - 22144: 0x9174, - 22145: 0x9179, - 22146: 0x918C, - 22147: 0x9185, - 22148: 0x9190, - 22149: 0x918D, - 22150: 0x9191, - 22151: 0x91A2, - 22152: 0x91A3, - 22153: 0x91AA, - 22154: 0x91AD, - 22155: 0x91AE, - 22156: 0x91AF, - 22157: 0x91B5, - 22158: 0x91B4, - 22159: 0x91BA, - 22160: 0x8C55, - 22161: 0x9E7E, - 22162: 0x8DB8, - 22163: 0x8DEB, - 22164: 0x8E05, - 22165: 0x8E59, - 22166: 0x8E69, - 22167: 0x8DB5, - 22168: 0x8DBF, - 22169: 0x8DBC, - 22170: 0x8DBA, - 22171: 0x8DC4, - 22172: 0x8DD6, - 22173: 0x8DD7, - 22174: 0x8DDA, - 22175: 0x8DDE, - 22176: 0x8DCE, - 22177: 0x8DCF, - 22178: 0x8DDB, - 22179: 0x8DC6, - 22180: 0x8DEC, - 22181: 0x8DF7, - 22182: 0x8DF8, - 22183: 0x8DE3, - 22184: 0x8DF9, - 22185: 0x8DFB, - 22186: 0x8DE4, - 22187: 0x8E09, - 22188: 0x8DFD, - 22189: 0x8E14, - 22190: 0x8E1D, - 22191: 0x8E1F, - 22192: 0x8E2C, - 22193: 0x8E2E, - 22194: 0x8E23, - 22195: 0x8E2F, - 22196: 0x8E3A, - 22197: 0x8E40, - 22198: 0x8E39, - 22199: 0x8E35, - 22200: 0x8E3D, - 22201: 0x8E31, - 22202: 0x8E49, - 22203: 0x8E41, - 22204: 0x8E42, - 22205: 0x8E51, - 22206: 0x8E52, - 22207: 0x8E4A, - 22208: 0x8E70, - 22209: 0x8E76, - 22210: 0x8E7C, - 22211: 0x8E6F, - 22212: 0x8E74, - 22213: 0x8E85, - 22214: 0x8E8F, - 22215: 0x8E94, - 22216: 0x8E90, - 22217: 0x8E9C, - 22218: 0x8E9E, - 22219: 0x8C78, - 22220: 0x8C82, - 22221: 0x8C8A, - 22222: 0x8C85, - 22223: 0x8C98, - 22224: 0x8C94, - 22225: 0x659B, - 22226: 0x89D6, - 22227: 0x89DE, - 22228: 0x89DA, - 22229: 0x89DC, - 22230: 0x9BDC, - 22231: 0x9BDD, - 22232: 0x9BDE, - 22233: 0x9BDF, - 22234: 0x9BE0, - 22235: 0x9BE1, - 22236: 0x9BE2, - 22237: 0x9BE3, - 22238: 0x9BE4, - 22239: 0x9BE5, - 22240: 0x9BE6, - 22241: 0x9BE7, - 22242: 0x9BE8, - 22243: 0x9BE9, - 22244: 0x9BEA, - 22245: 0x9BEB, - 22246: 0x9BEC, - 22247: 0x9BED, - 22248: 0x9BEE, - 22249: 0x9BEF, - 22250: 0x9BF0, - 22251: 0x9BF1, - 22252: 0x9BF2, - 22253: 0x9BF3, - 22254: 0x9BF4, - 22255: 0x9BF5, - 22256: 0x9BF6, - 22257: 0x9BF7, - 22258: 0x9BF8, - 22259: 0x9BF9, - 22260: 0x9BFA, - 22261: 0x9BFB, - 22262: 0x9BFC, - 22263: 0x9BFD, - 22264: 0x9BFE, - 22265: 0x9BFF, - 22266: 0x9C00, - 22267: 0x9C01, - 22268: 0x9C02, - 22269: 0x9C03, - 22270: 0x9C04, - 22271: 0x9C05, - 22272: 0x9C06, - 22273: 0x9C07, - 22274: 0x9C08, - 22275: 0x9C09, - 22276: 0x9C0A, - 22277: 0x9C0B, - 22278: 0x9C0C, - 22279: 0x9C0D, - 22280: 0x9C0E, - 22281: 0x9C0F, - 22282: 0x9C10, - 22283: 0x9C11, - 22284: 0x9C12, - 22285: 0x9C13, - 22286: 0x9C14, - 22287: 0x9C15, - 22288: 0x9C16, - 22289: 0x9C17, - 22290: 0x9C18, - 22291: 0x9C19, - 22292: 0x9C1A, - 22293: 0x9C1B, - 22294: 0x9C1C, - 22295: 0x9C1D, - 22296: 0x9C1E, - 22297: 0x9C1F, - 22298: 0x9C20, - 22299: 0x9C21, - 22300: 0x9C22, - 22301: 0x9C23, - 22302: 0x9C24, - 22303: 0x9C25, - 22304: 0x9C26, - 22305: 0x9C27, - 22306: 0x9C28, - 22307: 0x9C29, - 22308: 0x9C2A, - 22309: 0x9C2B, - 22310: 0x9C2C, - 22311: 0x9C2D, - 22312: 0x9C2E, - 22313: 0x9C2F, - 22314: 0x9C30, - 22315: 0x9C31, - 22316: 0x9C32, - 22317: 0x9C33, - 22318: 0x9C34, - 22319: 0x9C35, - 22320: 0x9C36, - 22321: 0x9C37, - 22322: 0x9C38, - 22323: 0x9C39, - 22324: 0x9C3A, - 22325: 0x9C3B, - 22326: 0x89E5, - 22327: 0x89EB, - 22328: 0x89EF, - 22329: 0x8A3E, - 22330: 0x8B26, - 22331: 0x9753, - 22332: 0x96E9, - 22333: 0x96F3, - 22334: 0x96EF, - 22335: 0x9706, - 22336: 0x9701, - 22337: 0x9708, - 22338: 0x970F, - 22339: 0x970E, - 22340: 0x972A, - 22341: 0x972D, - 22342: 0x9730, - 22343: 0x973E, - 22344: 0x9F80, - 22345: 0x9F83, - 22346: 0x9F85, - 22347: 0x9F86, - 22348: 0x9F87, - 22349: 0x9F88, - 22350: 0x9F89, - 22351: 0x9F8A, - 22352: 0x9F8C, - 22353: 0x9EFE, - 22354: 0x9F0B, - 22355: 0x9F0D, - 22356: 0x96B9, - 22357: 0x96BC, - 22358: 0x96BD, - 22359: 0x96CE, - 22360: 0x96D2, - 22361: 0x77BF, - 22362: 0x96E0, - 22363: 0x928E, - 22364: 0x92AE, - 22365: 0x92C8, - 22366: 0x933E, - 22367: 0x936A, - 22368: 0x93CA, - 22369: 0x938F, - 22370: 0x943E, - 22371: 0x946B, - 22372: 0x9C7F, - 22373: 0x9C82, - 22374: 0x9C85, - 22375: 0x9C86, - 22376: 0x9C87, - 22377: 0x9C88, - 22378: 0x7A23, - 22379: 0x9C8B, - 22380: 0x9C8E, - 22381: 0x9C90, - 22382: 0x9C91, - 22383: 0x9C92, - 22384: 0x9C94, - 22385: 0x9C95, - 22386: 0x9C9A, - 22387: 0x9C9B, - 22388: 0x9C9E, - 22389: 0x9C9F, - 22390: 0x9CA0, - 22391: 0x9CA1, - 22392: 0x9CA2, - 22393: 0x9CA3, - 22394: 0x9CA5, - 22395: 0x9CA6, - 22396: 0x9CA7, - 22397: 0x9CA8, - 22398: 0x9CA9, - 22399: 0x9CAB, - 22400: 0x9CAD, - 22401: 0x9CAE, - 22402: 0x9CB0, - 22403: 0x9CB1, - 22404: 0x9CB2, - 22405: 0x9CB3, - 22406: 0x9CB4, - 22407: 0x9CB5, - 22408: 0x9CB6, - 22409: 0x9CB7, - 22410: 0x9CBA, - 22411: 0x9CBB, - 22412: 0x9CBC, - 22413: 0x9CBD, - 22414: 0x9CC4, - 22415: 0x9CC5, - 22416: 0x9CC6, - 22417: 0x9CC7, - 22418: 0x9CCA, - 22419: 0x9CCB, - 22420: 0x9C3C, - 22421: 0x9C3D, - 22422: 0x9C3E, - 22423: 0x9C3F, - 22424: 0x9C40, - 22425: 0x9C41, - 22426: 0x9C42, - 22427: 0x9C43, - 22428: 0x9C44, - 22429: 0x9C45, - 22430: 0x9C46, - 22431: 0x9C47, - 22432: 0x9C48, - 22433: 0x9C49, - 22434: 0x9C4A, - 22435: 0x9C4B, - 22436: 0x9C4C, - 22437: 0x9C4D, - 22438: 0x9C4E, - 22439: 0x9C4F, - 22440: 0x9C50, - 22441: 0x9C51, - 22442: 0x9C52, - 22443: 0x9C53, - 22444: 0x9C54, - 22445: 0x9C55, - 22446: 0x9C56, - 22447: 0x9C57, - 22448: 0x9C58, - 22449: 0x9C59, - 22450: 0x9C5A, - 22451: 0x9C5B, - 22452: 0x9C5C, - 22453: 0x9C5D, - 22454: 0x9C5E, - 22455: 0x9C5F, - 22456: 0x9C60, - 22457: 0x9C61, - 22458: 0x9C62, - 22459: 0x9C63, - 22460: 0x9C64, - 22461: 0x9C65, - 22462: 0x9C66, - 22463: 0x9C67, - 22464: 0x9C68, - 22465: 0x9C69, - 22466: 0x9C6A, - 22467: 0x9C6B, - 22468: 0x9C6C, - 22469: 0x9C6D, - 22470: 0x9C6E, - 22471: 0x9C6F, - 22472: 0x9C70, - 22473: 0x9C71, - 22474: 0x9C72, - 22475: 0x9C73, - 22476: 0x9C74, - 22477: 0x9C75, - 22478: 0x9C76, - 22479: 0x9C77, - 22480: 0x9C78, - 22481: 0x9C79, - 22482: 0x9C7A, - 22483: 0x9C7B, - 22484: 0x9C7D, - 22485: 0x9C7E, - 22486: 0x9C80, - 22487: 0x9C83, - 22488: 0x9C84, - 22489: 0x9C89, - 22490: 0x9C8A, - 22491: 0x9C8C, - 22492: 0x9C8F, - 22493: 0x9C93, - 22494: 0x9C96, - 22495: 0x9C97, - 22496: 0x9C98, - 22497: 0x9C99, - 22498: 0x9C9D, - 22499: 0x9CAA, - 22500: 0x9CAC, - 22501: 0x9CAF, - 22502: 0x9CB9, - 22503: 0x9CBE, - 22504: 0x9CBF, - 22505: 0x9CC0, - 22506: 0x9CC1, - 22507: 0x9CC2, - 22508: 0x9CC8, - 22509: 0x9CC9, - 22510: 0x9CD1, - 22511: 0x9CD2, - 22512: 0x9CDA, - 22513: 0x9CDB, - 22514: 0x9CE0, - 22515: 0x9CE1, - 22516: 0x9CCC, - 22517: 0x9CCD, - 22518: 0x9CCE, - 22519: 0x9CCF, - 22520: 0x9CD0, - 22521: 0x9CD3, - 22522: 0x9CD4, - 22523: 0x9CD5, - 22524: 0x9CD7, - 22525: 0x9CD8, - 22526: 0x9CD9, - 22527: 0x9CDC, - 22528: 0x9CDD, - 22529: 0x9CDF, - 22530: 0x9CE2, - 22531: 0x977C, - 22532: 0x9785, - 22533: 0x9791, - 22534: 0x9792, - 22535: 0x9794, - 22536: 0x97AF, - 22537: 0x97AB, - 22538: 0x97A3, - 22539: 0x97B2, - 22540: 0x97B4, - 22541: 0x9AB1, - 22542: 0x9AB0, - 22543: 0x9AB7, - 22544: 0x9E58, - 22545: 0x9AB6, - 22546: 0x9ABA, - 22547: 0x9ABC, - 22548: 0x9AC1, - 22549: 0x9AC0, - 22550: 0x9AC5, - 22551: 0x9AC2, - 22552: 0x9ACB, - 22553: 0x9ACC, - 22554: 0x9AD1, - 22555: 0x9B45, - 22556: 0x9B43, - 22557: 0x9B47, - 22558: 0x9B49, - 22559: 0x9B48, - 22560: 0x9B4D, - 22561: 0x9B51, - 22562: 0x98E8, - 22563: 0x990D, - 22564: 0x992E, - 22565: 0x9955, - 22566: 0x9954, - 22567: 0x9ADF, - 22568: 0x9AE1, - 22569: 0x9AE6, - 22570: 0x9AEF, - 22571: 0x9AEB, - 22572: 0x9AFB, - 22573: 0x9AED, - 22574: 0x9AF9, - 22575: 0x9B08, - 22576: 0x9B0F, - 22577: 0x9B13, - 22578: 0x9B1F, - 22579: 0x9B23, - 22580: 0x9EBD, - 22581: 0x9EBE, - 22582: 0x7E3B, - 22583: 0x9E82, - 22584: 0x9E87, - 22585: 0x9E88, - 22586: 0x9E8B, - 22587: 0x9E92, - 22588: 0x93D6, - 22589: 0x9E9D, - 22590: 0x9E9F, - 22591: 0x9EDB, - 22592: 0x9EDC, - 22593: 0x9EDD, - 22594: 0x9EE0, - 22595: 0x9EDF, - 22596: 0x9EE2, - 22597: 0x9EE9, - 22598: 0x9EE7, - 22599: 0x9EE5, - 22600: 0x9EEA, - 22601: 0x9EEF, - 22602: 0x9F22, - 22603: 0x9F2C, - 22604: 0x9F2F, - 22605: 0x9F39, - 22606: 0x9F37, - 22607: 0x9F3D, - 22608: 0x9F3E, - 22609: 0x9F44, - 22610: 0x9CE3, - 22611: 0x9CE4, - 22612: 0x9CE5, - 22613: 0x9CE6, - 22614: 0x9CE7, - 22615: 0x9CE8, - 22616: 0x9CE9, - 22617: 0x9CEA, - 22618: 0x9CEB, - 22619: 0x9CEC, - 22620: 0x9CED, - 22621: 0x9CEE, - 22622: 0x9CEF, - 22623: 0x9CF0, - 22624: 0x9CF1, - 22625: 0x9CF2, - 22626: 0x9CF3, - 22627: 0x9CF4, - 22628: 0x9CF5, - 22629: 0x9CF6, - 22630: 0x9CF7, - 22631: 0x9CF8, - 22632: 0x9CF9, - 22633: 0x9CFA, - 22634: 0x9CFB, - 22635: 0x9CFC, - 22636: 0x9CFD, - 22637: 0x9CFE, - 22638: 0x9CFF, - 22639: 0x9D00, - 22640: 0x9D01, - 22641: 0x9D02, - 22642: 0x9D03, - 22643: 0x9D04, - 22644: 0x9D05, - 22645: 0x9D06, - 22646: 0x9D07, - 22647: 0x9D08, - 22648: 0x9D09, - 22649: 0x9D0A, - 22650: 0x9D0B, - 22651: 0x9D0C, - 22652: 0x9D0D, - 22653: 0x9D0E, - 22654: 0x9D0F, - 22655: 0x9D10, - 22656: 0x9D11, - 22657: 0x9D12, - 22658: 0x9D13, - 22659: 0x9D14, - 22660: 0x9D15, - 22661: 0x9D16, - 22662: 0x9D17, - 22663: 0x9D18, - 22664: 0x9D19, - 22665: 0x9D1A, - 22666: 0x9D1B, - 22667: 0x9D1C, - 22668: 0x9D1D, - 22669: 0x9D1E, - 22670: 0x9D1F, - 22671: 0x9D20, - 22672: 0x9D21, - 22673: 0x9D22, - 22674: 0x9D23, - 22675: 0x9D24, - 22676: 0x9D25, - 22677: 0x9D26, - 22678: 0x9D27, - 22679: 0x9D28, - 22680: 0x9D29, - 22681: 0x9D2A, - 22682: 0x9D2B, - 22683: 0x9D2C, - 22684: 0x9D2D, - 22685: 0x9D2E, - 22686: 0x9D2F, - 22687: 0x9D30, - 22688: 0x9D31, - 22689: 0x9D32, - 22690: 0x9D33, - 22691: 0x9D34, - 22692: 0x9D35, - 22693: 0x9D36, - 22694: 0x9D37, - 22695: 0x9D38, - 22696: 0x9D39, - 22697: 0x9D3A, - 22698: 0x9D3B, - 22699: 0x9D3C, - 22700: 0x9D3D, - 22701: 0x9D3E, - 22702: 0x9D3F, - 22703: 0x9D40, - 22704: 0x9D41, - 22705: 0x9D42, - 22800: 0x9D43, - 22801: 0x9D44, - 22802: 0x9D45, - 22803: 0x9D46, - 22804: 0x9D47, - 22805: 0x9D48, - 22806: 0x9D49, - 22807: 0x9D4A, - 22808: 0x9D4B, - 22809: 0x9D4C, - 22810: 0x9D4D, - 22811: 0x9D4E, - 22812: 0x9D4F, - 22813: 0x9D50, - 22814: 0x9D51, - 22815: 0x9D52, - 22816: 0x9D53, - 22817: 0x9D54, - 22818: 0x9D55, - 22819: 0x9D56, - 22820: 0x9D57, - 22821: 0x9D58, - 22822: 0x9D59, - 22823: 0x9D5A, - 22824: 0x9D5B, - 22825: 0x9D5C, - 22826: 0x9D5D, - 22827: 0x9D5E, - 22828: 0x9D5F, - 22829: 0x9D60, - 22830: 0x9D61, - 22831: 0x9D62, - 22832: 0x9D63, - 22833: 0x9D64, - 22834: 0x9D65, - 22835: 0x9D66, - 22836: 0x9D67, - 22837: 0x9D68, - 22838: 0x9D69, - 22839: 0x9D6A, - 22840: 0x9D6B, - 22841: 0x9D6C, - 22842: 0x9D6D, - 22843: 0x9D6E, - 22844: 0x9D6F, - 22845: 0x9D70, - 22846: 0x9D71, - 22847: 0x9D72, - 22848: 0x9D73, - 22849: 0x9D74, - 22850: 0x9D75, - 22851: 0x9D76, - 22852: 0x9D77, - 22853: 0x9D78, - 22854: 0x9D79, - 22855: 0x9D7A, - 22856: 0x9D7B, - 22857: 0x9D7C, - 22858: 0x9D7D, - 22859: 0x9D7E, - 22860: 0x9D7F, - 22861: 0x9D80, - 22862: 0x9D81, - 22863: 0x9D82, - 22864: 0x9D83, - 22865: 0x9D84, - 22866: 0x9D85, - 22867: 0x9D86, - 22868: 0x9D87, - 22869: 0x9D88, - 22870: 0x9D89, - 22871: 0x9D8A, - 22872: 0x9D8B, - 22873: 0x9D8C, - 22874: 0x9D8D, - 22875: 0x9D8E, - 22876: 0x9D8F, - 22877: 0x9D90, - 22878: 0x9D91, - 22879: 0x9D92, - 22880: 0x9D93, - 22881: 0x9D94, - 22882: 0x9D95, - 22883: 0x9D96, - 22884: 0x9D97, - 22885: 0x9D98, - 22886: 0x9D99, - 22887: 0x9D9A, - 22888: 0x9D9B, - 22889: 0x9D9C, - 22890: 0x9D9D, - 22891: 0x9D9E, - 22892: 0x9D9F, - 22893: 0x9DA0, - 22894: 0x9DA1, - 22895: 0x9DA2, - 22990: 0x9DA3, - 22991: 0x9DA4, - 22992: 0x9DA5, - 22993: 0x9DA6, - 22994: 0x9DA7, - 22995: 0x9DA8, - 22996: 0x9DA9, - 22997: 0x9DAA, - 22998: 0x9DAB, - 22999: 0x9DAC, - 23000: 0x9DAD, - 23001: 0x9DAE, - 23002: 0x9DAF, - 23003: 0x9DB0, - 23004: 0x9DB1, - 23005: 0x9DB2, - 23006: 0x9DB3, - 23007: 0x9DB4, - 23008: 0x9DB5, - 23009: 0x9DB6, - 23010: 0x9DB7, - 23011: 0x9DB8, - 23012: 0x9DB9, - 23013: 0x9DBA, - 23014: 0x9DBB, - 23015: 0x9DBC, - 23016: 0x9DBD, - 23017: 0x9DBE, - 23018: 0x9DBF, - 23019: 0x9DC0, - 23020: 0x9DC1, - 23021: 0x9DC2, - 23022: 0x9DC3, - 23023: 0x9DC4, - 23024: 0x9DC5, - 23025: 0x9DC6, - 23026: 0x9DC7, - 23027: 0x9DC8, - 23028: 0x9DC9, - 23029: 0x9DCA, - 23030: 0x9DCB, - 23031: 0x9DCC, - 23032: 0x9DCD, - 23033: 0x9DCE, - 23034: 0x9DCF, - 23035: 0x9DD0, - 23036: 0x9DD1, - 23037: 0x9DD2, - 23038: 0x9DD3, - 23039: 0x9DD4, - 23040: 0x9DD5, - 23041: 0x9DD6, - 23042: 0x9DD7, - 23043: 0x9DD8, - 23044: 0x9DD9, - 23045: 0x9DDA, - 23046: 0x9DDB, - 23047: 0x9DDC, - 23048: 0x9DDD, - 23049: 0x9DDE, - 23050: 0x9DDF, - 23051: 0x9DE0, - 23052: 0x9DE1, - 23053: 0x9DE2, - 23054: 0x9DE3, - 23055: 0x9DE4, - 23056: 0x9DE5, - 23057: 0x9DE6, - 23058: 0x9DE7, - 23059: 0x9DE8, - 23060: 0x9DE9, - 23061: 0x9DEA, - 23062: 0x9DEB, - 23063: 0x9DEC, - 23064: 0x9DED, - 23065: 0x9DEE, - 23066: 0x9DEF, - 23067: 0x9DF0, - 23068: 0x9DF1, - 23069: 0x9DF2, - 23070: 0x9DF3, - 23071: 0x9DF4, - 23072: 0x9DF5, - 23073: 0x9DF6, - 23074: 0x9DF7, - 23075: 0x9DF8, - 23076: 0x9DF9, - 23077: 0x9DFA, - 23078: 0x9DFB, - 23079: 0x9DFC, - 23080: 0x9DFD, - 23081: 0x9DFE, - 23082: 0x9DFF, - 23083: 0x9E00, - 23084: 0x9E01, - 23085: 0x9E02, - 23180: 0x9E03, - 23181: 0x9E04, - 23182: 0x9E05, - 23183: 0x9E06, - 23184: 0x9E07, - 23185: 0x9E08, - 23186: 0x9E09, - 23187: 0x9E0A, - 23188: 0x9E0B, - 23189: 0x9E0C, - 23190: 0x9E0D, - 23191: 0x9E0E, - 23192: 0x9E0F, - 23193: 0x9E10, - 23194: 0x9E11, - 23195: 0x9E12, - 23196: 0x9E13, - 23197: 0x9E14, - 23198: 0x9E15, - 23199: 0x9E16, - 23200: 0x9E17, - 23201: 0x9E18, - 23202: 0x9E19, - 23203: 0x9E1A, - 23204: 0x9E1B, - 23205: 0x9E1C, - 23206: 0x9E1D, - 23207: 0x9E1E, - 23208: 0x9E24, - 23209: 0x9E27, - 23210: 0x9E2E, - 23211: 0x9E30, - 23212: 0x9E34, - 23213: 0x9E3B, - 23214: 0x9E3C, - 23215: 0x9E40, - 23216: 0x9E4D, - 23217: 0x9E50, - 23218: 0x9E52, - 23219: 0x9E53, - 23220: 0x9E54, - 23221: 0x9E56, - 23222: 0x9E59, - 23223: 0x9E5D, - 23224: 0x9E5F, - 23225: 0x9E60, - 23226: 0x9E61, - 23227: 0x9E62, - 23228: 0x9E65, - 23229: 0x9E6E, - 23230: 0x9E6F, - 23231: 0x9E72, - 23232: 0x9E74, - 23233: 0x9E75, - 23234: 0x9E76, - 23235: 0x9E77, - 23236: 0x9E78, - 23237: 0x9E79, - 23238: 0x9E7A, - 23239: 0x9E7B, - 23240: 0x9E7C, - 23241: 0x9E7D, - 23242: 0x9E80, - 23243: 0x9E81, - 23244: 0x9E83, - 23245: 0x9E84, - 23246: 0x9E85, - 23247: 0x9E86, - 23248: 0x9E89, - 23249: 0x9E8A, - 23250: 0x9E8C, - 23251: 0x9E8D, - 23252: 0x9E8E, - 23253: 0x9E8F, - 23254: 0x9E90, - 23255: 0x9E91, - 23256: 0x9E94, - 23257: 0x9E95, - 23258: 0x9E96, - 23259: 0x9E97, - 23260: 0x9E98, - 23261: 0x9E99, - 23262: 0x9E9A, - 23263: 0x9E9B, - 23264: 0x9E9C, - 23265: 0x9E9E, - 23266: 0x9EA0, - 23267: 0x9EA1, - 23268: 0x9EA2, - 23269: 0x9EA3, - 23270: 0x9EA4, - 23271: 0x9EA5, - 23272: 0x9EA7, - 23273: 0x9EA8, - 23274: 0x9EA9, - 23275: 0x9EAA, - 23370: 0x9EAB, - 23371: 0x9EAC, - 23372: 0x9EAD, - 23373: 0x9EAE, - 23374: 0x9EAF, - 23375: 0x9EB0, - 23376: 0x9EB1, - 23377: 0x9EB2, - 23378: 0x9EB3, - 23379: 0x9EB5, - 23380: 0x9EB6, - 23381: 0x9EB7, - 23382: 0x9EB9, - 23383: 0x9EBA, - 23384: 0x9EBC, - 23385: 0x9EBF, - 23386: 0x9EC0, - 23387: 0x9EC1, - 23388: 0x9EC2, - 23389: 0x9EC3, - 23390: 0x9EC5, - 23391: 0x9EC6, - 23392: 0x9EC7, - 23393: 0x9EC8, - 23394: 0x9ECA, - 23395: 0x9ECB, - 23396: 0x9ECC, - 23397: 0x9ED0, - 23398: 0x9ED2, - 23399: 0x9ED3, - 23400: 0x9ED5, - 23401: 0x9ED6, - 23402: 0x9ED7, - 23403: 0x9ED9, - 23404: 0x9EDA, - 23405: 0x9EDE, - 23406: 0x9EE1, - 23407: 0x9EE3, - 23408: 0x9EE4, - 23409: 0x9EE6, - 23410: 0x9EE8, - 23411: 0x9EEB, - 23412: 0x9EEC, - 23413: 0x9EED, - 23414: 0x9EEE, - 23415: 0x9EF0, - 23416: 0x9EF1, - 23417: 0x9EF2, - 23418: 0x9EF3, - 23419: 0x9EF4, - 23420: 0x9EF5, - 23421: 0x9EF6, - 23422: 0x9EF7, - 23423: 0x9EF8, - 23424: 0x9EFA, - 23425: 0x9EFD, - 23426: 0x9EFF, - 23427: 0x9F00, - 23428: 0x9F01, - 23429: 0x9F02, - 23430: 0x9F03, - 23431: 0x9F04, - 23432: 0x9F05, - 23433: 0x9F06, - 23434: 0x9F07, - 23435: 0x9F08, - 23436: 0x9F09, - 23437: 0x9F0A, - 23438: 0x9F0C, - 23439: 0x9F0F, - 23440: 0x9F11, - 23441: 0x9F12, - 23442: 0x9F14, - 23443: 0x9F15, - 23444: 0x9F16, - 23445: 0x9F18, - 23446: 0x9F1A, - 23447: 0x9F1B, - 23448: 0x9F1C, - 23449: 0x9F1D, - 23450: 0x9F1E, - 23451: 0x9F1F, - 23452: 0x9F21, - 23453: 0x9F23, - 23454: 0x9F24, - 23455: 0x9F25, - 23456: 0x9F26, - 23457: 0x9F27, - 23458: 0x9F28, - 23459: 0x9F29, - 23460: 0x9F2A, - 23461: 0x9F2B, - 23462: 0x9F2D, - 23463: 0x9F2E, - 23464: 0x9F30, - 23465: 0x9F31, - 23560: 0x9F32, - 23561: 0x9F33, - 23562: 0x9F34, - 23563: 0x9F35, - 23564: 0x9F36, - 23565: 0x9F38, - 23566: 0x9F3A, - 23567: 0x9F3C, - 23568: 0x9F3F, - 23569: 0x9F40, - 23570: 0x9F41, - 23571: 0x9F42, - 23572: 0x9F43, - 23573: 0x9F45, - 23574: 0x9F46, - 23575: 0x9F47, - 23576: 0x9F48, - 23577: 0x9F49, - 23578: 0x9F4A, - 23579: 0x9F4B, - 23580: 0x9F4C, - 23581: 0x9F4D, - 23582: 0x9F4E, - 23583: 0x9F4F, - 23584: 0x9F52, - 23585: 0x9F53, - 23586: 0x9F54, - 23587: 0x9F55, - 23588: 0x9F56, - 23589: 0x9F57, - 23590: 0x9F58, - 23591: 0x9F59, - 23592: 0x9F5A, - 23593: 0x9F5B, - 23594: 0x9F5C, - 23595: 0x9F5D, - 23596: 0x9F5E, - 23597: 0x9F5F, - 23598: 0x9F60, - 23599: 0x9F61, - 23600: 0x9F62, - 23601: 0x9F63, - 23602: 0x9F64, - 23603: 0x9F65, - 23604: 0x9F66, - 23605: 0x9F67, - 23606: 0x9F68, - 23607: 0x9F69, - 23608: 0x9F6A, - 23609: 0x9F6B, - 23610: 0x9F6C, - 23611: 0x9F6D, - 23612: 0x9F6E, - 23613: 0x9F6F, - 23614: 0x9F70, - 23615: 0x9F71, - 23616: 0x9F72, - 23617: 0x9F73, - 23618: 0x9F74, - 23619: 0x9F75, - 23620: 0x9F76, - 23621: 0x9F77, - 23622: 0x9F78, - 23623: 0x9F79, - 23624: 0x9F7A, - 23625: 0x9F7B, - 23626: 0x9F7C, - 23627: 0x9F7D, - 23628: 0x9F7E, - 23629: 0x9F81, - 23630: 0x9F82, - 23631: 0x9F8D, - 23632: 0x9F8E, - 23633: 0x9F8F, - 23634: 0x9F90, - 23635: 0x9F91, - 23636: 0x9F92, - 23637: 0x9F93, - 23638: 0x9F94, - 23639: 0x9F95, - 23640: 0x9F96, - 23641: 0x9F97, - 23642: 0x9F98, - 23643: 0x9F9C, - 23644: 0x9F9D, - 23645: 0x9F9E, - 23646: 0x9FA1, - 23647: 0x9FA2, - 23648: 0x9FA3, - 23649: 0x9FA4, - 23650: 0x9FA5, - 23651: 0xF92C, - 23652: 0xF979, - 23653: 0xF995, - 23654: 0xF9E7, - 23655: 0xF9F1, - 23750: 0xFA0C, - 23751: 0xFA0D, - 23752: 0xFA0E, - 23753: 0xFA0F, - 23754: 0xFA11, - 23755: 0xFA13, - 23756: 0xFA14, - 23757: 0xFA18, - 23758: 0xFA1F, - 23759: 0xFA20, - 23760: 0xFA21, - 23761: 0xFA23, - 23762: 0xFA24, - 23763: 0xFA27, - 23764: 0xFA28, - 23765: 0xFA29, - 23766: 0x2E81, - 23770: 0x2E84, - 23771: 0x3473, - 23772: 0x3447, - 23773: 0x2E88, - 23774: 0x2E8B, - 23776: 0x359E, - 23777: 0x361A, - 23778: 0x360E, - 23779: 0x2E8C, - 23780: 0x2E97, - 23781: 0x396E, - 23782: 0x3918, - 23784: 0x39CF, - 23785: 0x39DF, - 23786: 0x3A73, - 23787: 0x39D0, - 23790: 0x3B4E, - 23791: 0x3C6E, - 23792: 0x3CE0, - 23793: 0x2EA7, - 23796: 0x2EAA, - 23797: 0x4056, - 23798: 0x415F, - 23799: 0x2EAE, - 23800: 0x4337, - 23801: 0x2EB3, - 23802: 0x2EB6, - 23803: 0x2EB7, - 23805: 0x43B1, - 23806: 0x43AC, - 23807: 0x2EBB, - 23808: 0x43DD, - 23809: 0x44D6, - 23810: 0x4661, - 23811: 0x464C, - 23813: 0x4723, - 23814: 0x4729, - 23815: 0x477C, - 23816: 0x478D, - 23817: 0x2ECA, - 23818: 0x4947, - 23819: 0x497A, - 23820: 0x497D, - 23821: 0x4982, - 23822: 0x4983, - 23823: 0x4985, - 23824: 0x4986, - 23825: 0x499F, - 23826: 0x499B, - 23827: 0x49B7, - 23828: 0x49B6, - 23831: 0x4CA3, - 23832: 0x4C9F, - 23833: 0x4CA0, - 23834: 0x4CA1, - 23835: 0x4C77, - 23836: 0x4CA2, - 23837: 0x4D13, - 23838: 0x4D14, - 23839: 0x4D15, - 23840: 0x4D16, - 23841: 0x4D17, - 23842: 0x4D18, - 23843: 0x4D19, - 23844: 0x4DAE, -} - -const numEncodeTables = 5 - -// encodeX are the encoding tables from Unicode to GBK code, -// sorted by decreasing length. -// encode0: 28965 entries for runes in [11905, 40870). -// encode1: 1587 entries for runes in [ 8208, 9795). -// encode2: 942 entries for runes in [ 164, 1106). -// encode3: 438 entries for runes in [65072, 65510). -// encode4: 254 entries for runes in [63788, 64042). - -const encode0Low, encode0High = 11905, 40870 - -var encode0 = [...]uint16{ - 11905 - 11905: 0xFE50, - 11908 - 11905: 0xFE54, - 11912 - 11905: 0xFE57, - 11915 - 11905: 0xFE58, - 11916 - 11905: 0xFE5D, - 11927 - 11905: 0xFE5E, - 11943 - 11905: 0xFE6B, - 11946 - 11905: 0xFE6E, - 11950 - 11905: 0xFE71, - 11955 - 11905: 0xFE73, - 11958 - 11905: 0xFE74, - 11959 - 11905: 0xFE75, - 11963 - 11905: 0xFE79, - 11978 - 11905: 0xFE84, - 12272 - 11905: 0xA98A, - 12273 - 11905: 0xA98B, - 12274 - 11905: 0xA98C, - 12275 - 11905: 0xA98D, - 12276 - 11905: 0xA98E, - 12277 - 11905: 0xA98F, - 12278 - 11905: 0xA990, - 12279 - 11905: 0xA991, - 12280 - 11905: 0xA992, - 12281 - 11905: 0xA993, - 12282 - 11905: 0xA994, - 12283 - 11905: 0xA995, - 12288 - 11905: 0xA1A1, - 12289 - 11905: 0xA1A2, - 12290 - 11905: 0xA1A3, - 12291 - 11905: 0xA1A8, - 12293 - 11905: 0xA1A9, - 12294 - 11905: 0xA965, - 12295 - 11905: 0xA996, - 12296 - 11905: 0xA1B4, - 12297 - 11905: 0xA1B5, - 12298 - 11905: 0xA1B6, - 12299 - 11905: 0xA1B7, - 12300 - 11905: 0xA1B8, - 12301 - 11905: 0xA1B9, - 12302 - 11905: 0xA1BA, - 12303 - 11905: 0xA1BB, - 12304 - 11905: 0xA1BE, - 12305 - 11905: 0xA1BF, - 12306 - 11905: 0xA893, - 12307 - 11905: 0xA1FE, - 12308 - 11905: 0xA1B2, - 12309 - 11905: 0xA1B3, - 12310 - 11905: 0xA1BC, - 12311 - 11905: 0xA1BD, - 12317 - 11905: 0xA894, - 12318 - 11905: 0xA895, - 12321 - 11905: 0xA940, - 12322 - 11905: 0xA941, - 12323 - 11905: 0xA942, - 12324 - 11905: 0xA943, - 12325 - 11905: 0xA944, - 12326 - 11905: 0xA945, - 12327 - 11905: 0xA946, - 12328 - 11905: 0xA947, - 12329 - 11905: 0xA948, - 12350 - 11905: 0xA989, - 12353 - 11905: 0xA4A1, - 12354 - 11905: 0xA4A2, - 12355 - 11905: 0xA4A3, - 12356 - 11905: 0xA4A4, - 12357 - 11905: 0xA4A5, - 12358 - 11905: 0xA4A6, - 12359 - 11905: 0xA4A7, - 12360 - 11905: 0xA4A8, - 12361 - 11905: 0xA4A9, - 12362 - 11905: 0xA4AA, - 12363 - 11905: 0xA4AB, - 12364 - 11905: 0xA4AC, - 12365 - 11905: 0xA4AD, - 12366 - 11905: 0xA4AE, - 12367 - 11905: 0xA4AF, - 12368 - 11905: 0xA4B0, - 12369 - 11905: 0xA4B1, - 12370 - 11905: 0xA4B2, - 12371 - 11905: 0xA4B3, - 12372 - 11905: 0xA4B4, - 12373 - 11905: 0xA4B5, - 12374 - 11905: 0xA4B6, - 12375 - 11905: 0xA4B7, - 12376 - 11905: 0xA4B8, - 12377 - 11905: 0xA4B9, - 12378 - 11905: 0xA4BA, - 12379 - 11905: 0xA4BB, - 12380 - 11905: 0xA4BC, - 12381 - 11905: 0xA4BD, - 12382 - 11905: 0xA4BE, - 12383 - 11905: 0xA4BF, - 12384 - 11905: 0xA4C0, - 12385 - 11905: 0xA4C1, - 12386 - 11905: 0xA4C2, - 12387 - 11905: 0xA4C3, - 12388 - 11905: 0xA4C4, - 12389 - 11905: 0xA4C5, - 12390 - 11905: 0xA4C6, - 12391 - 11905: 0xA4C7, - 12392 - 11905: 0xA4C8, - 12393 - 11905: 0xA4C9, - 12394 - 11905: 0xA4CA, - 12395 - 11905: 0xA4CB, - 12396 - 11905: 0xA4CC, - 12397 - 11905: 0xA4CD, - 12398 - 11905: 0xA4CE, - 12399 - 11905: 0xA4CF, - 12400 - 11905: 0xA4D0, - 12401 - 11905: 0xA4D1, - 12402 - 11905: 0xA4D2, - 12403 - 11905: 0xA4D3, - 12404 - 11905: 0xA4D4, - 12405 - 11905: 0xA4D5, - 12406 - 11905: 0xA4D6, - 12407 - 11905: 0xA4D7, - 12408 - 11905: 0xA4D8, - 12409 - 11905: 0xA4D9, - 12410 - 11905: 0xA4DA, - 12411 - 11905: 0xA4DB, - 12412 - 11905: 0xA4DC, - 12413 - 11905: 0xA4DD, - 12414 - 11905: 0xA4DE, - 12415 - 11905: 0xA4DF, - 12416 - 11905: 0xA4E0, - 12417 - 11905: 0xA4E1, - 12418 - 11905: 0xA4E2, - 12419 - 11905: 0xA4E3, - 12420 - 11905: 0xA4E4, - 12421 - 11905: 0xA4E5, - 12422 - 11905: 0xA4E6, - 12423 - 11905: 0xA4E7, - 12424 - 11905: 0xA4E8, - 12425 - 11905: 0xA4E9, - 12426 - 11905: 0xA4EA, - 12427 - 11905: 0xA4EB, - 12428 - 11905: 0xA4EC, - 12429 - 11905: 0xA4ED, - 12430 - 11905: 0xA4EE, - 12431 - 11905: 0xA4EF, - 12432 - 11905: 0xA4F0, - 12433 - 11905: 0xA4F1, - 12434 - 11905: 0xA4F2, - 12435 - 11905: 0xA4F3, - 12443 - 11905: 0xA961, - 12444 - 11905: 0xA962, - 12445 - 11905: 0xA966, - 12446 - 11905: 0xA967, - 12449 - 11905: 0xA5A1, - 12450 - 11905: 0xA5A2, - 12451 - 11905: 0xA5A3, - 12452 - 11905: 0xA5A4, - 12453 - 11905: 0xA5A5, - 12454 - 11905: 0xA5A6, - 12455 - 11905: 0xA5A7, - 12456 - 11905: 0xA5A8, - 12457 - 11905: 0xA5A9, - 12458 - 11905: 0xA5AA, - 12459 - 11905: 0xA5AB, - 12460 - 11905: 0xA5AC, - 12461 - 11905: 0xA5AD, - 12462 - 11905: 0xA5AE, - 12463 - 11905: 0xA5AF, - 12464 - 11905: 0xA5B0, - 12465 - 11905: 0xA5B1, - 12466 - 11905: 0xA5B2, - 12467 - 11905: 0xA5B3, - 12468 - 11905: 0xA5B4, - 12469 - 11905: 0xA5B5, - 12470 - 11905: 0xA5B6, - 12471 - 11905: 0xA5B7, - 12472 - 11905: 0xA5B8, - 12473 - 11905: 0xA5B9, - 12474 - 11905: 0xA5BA, - 12475 - 11905: 0xA5BB, - 12476 - 11905: 0xA5BC, - 12477 - 11905: 0xA5BD, - 12478 - 11905: 0xA5BE, - 12479 - 11905: 0xA5BF, - 12480 - 11905: 0xA5C0, - 12481 - 11905: 0xA5C1, - 12482 - 11905: 0xA5C2, - 12483 - 11905: 0xA5C3, - 12484 - 11905: 0xA5C4, - 12485 - 11905: 0xA5C5, - 12486 - 11905: 0xA5C6, - 12487 - 11905: 0xA5C7, - 12488 - 11905: 0xA5C8, - 12489 - 11905: 0xA5C9, - 12490 - 11905: 0xA5CA, - 12491 - 11905: 0xA5CB, - 12492 - 11905: 0xA5CC, - 12493 - 11905: 0xA5CD, - 12494 - 11905: 0xA5CE, - 12495 - 11905: 0xA5CF, - 12496 - 11905: 0xA5D0, - 12497 - 11905: 0xA5D1, - 12498 - 11905: 0xA5D2, - 12499 - 11905: 0xA5D3, - 12500 - 11905: 0xA5D4, - 12501 - 11905: 0xA5D5, - 12502 - 11905: 0xA5D6, - 12503 - 11905: 0xA5D7, - 12504 - 11905: 0xA5D8, - 12505 - 11905: 0xA5D9, - 12506 - 11905: 0xA5DA, - 12507 - 11905: 0xA5DB, - 12508 - 11905: 0xA5DC, - 12509 - 11905: 0xA5DD, - 12510 - 11905: 0xA5DE, - 12511 - 11905: 0xA5DF, - 12512 - 11905: 0xA5E0, - 12513 - 11905: 0xA5E1, - 12514 - 11905: 0xA5E2, - 12515 - 11905: 0xA5E3, - 12516 - 11905: 0xA5E4, - 12517 - 11905: 0xA5E5, - 12518 - 11905: 0xA5E6, - 12519 - 11905: 0xA5E7, - 12520 - 11905: 0xA5E8, - 12521 - 11905: 0xA5E9, - 12522 - 11905: 0xA5EA, - 12523 - 11905: 0xA5EB, - 12524 - 11905: 0xA5EC, - 12525 - 11905: 0xA5ED, - 12526 - 11905: 0xA5EE, - 12527 - 11905: 0xA5EF, - 12528 - 11905: 0xA5F0, - 12529 - 11905: 0xA5F1, - 12530 - 11905: 0xA5F2, - 12531 - 11905: 0xA5F3, - 12532 - 11905: 0xA5F4, - 12533 - 11905: 0xA5F5, - 12534 - 11905: 0xA5F6, - 12540 - 11905: 0xA960, - 12541 - 11905: 0xA963, - 12542 - 11905: 0xA964, - 12549 - 11905: 0xA8C5, - 12550 - 11905: 0xA8C6, - 12551 - 11905: 0xA8C7, - 12552 - 11905: 0xA8C8, - 12553 - 11905: 0xA8C9, - 12554 - 11905: 0xA8CA, - 12555 - 11905: 0xA8CB, - 12556 - 11905: 0xA8CC, - 12557 - 11905: 0xA8CD, - 12558 - 11905: 0xA8CE, - 12559 - 11905: 0xA8CF, - 12560 - 11905: 0xA8D0, - 12561 - 11905: 0xA8D1, - 12562 - 11905: 0xA8D2, - 12563 - 11905: 0xA8D3, - 12564 - 11905: 0xA8D4, - 12565 - 11905: 0xA8D5, - 12566 - 11905: 0xA8D6, - 12567 - 11905: 0xA8D7, - 12568 - 11905: 0xA8D8, - 12569 - 11905: 0xA8D9, - 12570 - 11905: 0xA8DA, - 12571 - 11905: 0xA8DB, - 12572 - 11905: 0xA8DC, - 12573 - 11905: 0xA8DD, - 12574 - 11905: 0xA8DE, - 12575 - 11905: 0xA8DF, - 12576 - 11905: 0xA8E0, - 12577 - 11905: 0xA8E1, - 12578 - 11905: 0xA8E2, - 12579 - 11905: 0xA8E3, - 12580 - 11905: 0xA8E4, - 12581 - 11905: 0xA8E5, - 12582 - 11905: 0xA8E6, - 12583 - 11905: 0xA8E7, - 12584 - 11905: 0xA8E8, - 12585 - 11905: 0xA8E9, - 12832 - 11905: 0xA2E5, - 12833 - 11905: 0xA2E6, - 12834 - 11905: 0xA2E7, - 12835 - 11905: 0xA2E8, - 12836 - 11905: 0xA2E9, - 12837 - 11905: 0xA2EA, - 12838 - 11905: 0xA2EB, - 12839 - 11905: 0xA2EC, - 12840 - 11905: 0xA2ED, - 12841 - 11905: 0xA2EE, - 12849 - 11905: 0xA95A, - 12963 - 11905: 0xA949, - 13198 - 11905: 0xA94A, - 13199 - 11905: 0xA94B, - 13212 - 11905: 0xA94C, - 13213 - 11905: 0xA94D, - 13214 - 11905: 0xA94E, - 13217 - 11905: 0xA94F, - 13252 - 11905: 0xA950, - 13262 - 11905: 0xA951, - 13265 - 11905: 0xA952, - 13266 - 11905: 0xA953, - 13269 - 11905: 0xA954, - 13383 - 11905: 0xFE56, - 13427 - 11905: 0xFE55, - 13726 - 11905: 0xFE5A, - 13838 - 11905: 0xFE5C, - 13850 - 11905: 0xFE5B, - 14616 - 11905: 0xFE60, - 14702 - 11905: 0xFE5F, - 14799 - 11905: 0xFE62, - 14800 - 11905: 0xFE65, - 14815 - 11905: 0xFE63, - 14963 - 11905: 0xFE64, - 15182 - 11905: 0xFE68, - 15470 - 11905: 0xFE69, - 15584 - 11905: 0xFE6A, - 16470 - 11905: 0xFE6F, - 16735 - 11905: 0xFE70, - 17207 - 11905: 0xFE72, - 17324 - 11905: 0xFE78, - 17329 - 11905: 0xFE77, - 17373 - 11905: 0xFE7A, - 17622 - 11905: 0xFE7B, - 17996 - 11905: 0xFE7D, - 18017 - 11905: 0xFE7C, - 18211 - 11905: 0xFE80, - 18217 - 11905: 0xFE81, - 18300 - 11905: 0xFE82, - 18317 - 11905: 0xFE83, - 18759 - 11905: 0xFE85, - 18810 - 11905: 0xFE86, - 18813 - 11905: 0xFE87, - 18818 - 11905: 0xFE88, - 18819 - 11905: 0xFE89, - 18821 - 11905: 0xFE8A, - 18822 - 11905: 0xFE8B, - 18843 - 11905: 0xFE8D, - 18847 - 11905: 0xFE8C, - 18870 - 11905: 0xFE8F, - 18871 - 11905: 0xFE8E, - 19575 - 11905: 0xFE96, - 19615 - 11905: 0xFE93, - 19616 - 11905: 0xFE94, - 19617 - 11905: 0xFE95, - 19618 - 11905: 0xFE97, - 19619 - 11905: 0xFE92, - 19731 - 11905: 0xFE98, - 19732 - 11905: 0xFE99, - 19733 - 11905: 0xFE9A, - 19734 - 11905: 0xFE9B, - 19735 - 11905: 0xFE9C, - 19736 - 11905: 0xFE9D, - 19737 - 11905: 0xFE9E, - 19886 - 11905: 0xFE9F, - 19968 - 11905: 0xD2BB, - 19969 - 11905: 0xB6A1, - 19970 - 11905: 0x8140, - 19971 - 11905: 0xC6DF, - 19972 - 11905: 0x8141, - 19973 - 11905: 0x8142, - 19974 - 11905: 0x8143, - 19975 - 11905: 0xCDF2, - 19976 - 11905: 0xD5C9, - 19977 - 11905: 0xC8FD, - 19978 - 11905: 0xC9CF, - 19979 - 11905: 0xCFC2, - 19980 - 11905: 0xD8A2, - 19981 - 11905: 0xB2BB, - 19982 - 11905: 0xD3EB, - 19983 - 11905: 0x8144, - 19984 - 11905: 0xD8A4, - 19985 - 11905: 0xB3F3, - 19986 - 11905: 0x8145, - 19987 - 11905: 0xD7A8, - 19988 - 11905: 0xC7D2, - 19989 - 11905: 0xD8A7, - 19990 - 11905: 0xCAC0, - 19991 - 11905: 0x8146, - 19992 - 11905: 0xC7F0, - 19993 - 11905: 0xB1FB, - 19994 - 11905: 0xD2B5, - 19995 - 11905: 0xB4D4, - 19996 - 11905: 0xB6AB, - 19997 - 11905: 0xCBBF, - 19998 - 11905: 0xD8A9, - 19999 - 11905: 0x8147, - 20000 - 11905: 0x8148, - 20001 - 11905: 0x8149, - 20002 - 11905: 0xB6AA, - 20003 - 11905: 0x814A, - 20004 - 11905: 0xC1BD, - 20005 - 11905: 0xD1CF, - 20006 - 11905: 0x814B, - 20007 - 11905: 0xC9A5, - 20008 - 11905: 0xD8AD, - 20009 - 11905: 0x814C, - 20010 - 11905: 0xB8F6, - 20011 - 11905: 0xD1BE, - 20012 - 11905: 0xE3DC, - 20013 - 11905: 0xD6D0, - 20014 - 11905: 0x814D, - 20015 - 11905: 0x814E, - 20016 - 11905: 0xB7E1, - 20017 - 11905: 0x814F, - 20018 - 11905: 0xB4AE, - 20019 - 11905: 0x8150, - 20020 - 11905: 0xC1D9, - 20021 - 11905: 0x8151, - 20022 - 11905: 0xD8BC, - 20023 - 11905: 0x8152, - 20024 - 11905: 0xCDE8, - 20025 - 11905: 0xB5A4, - 20026 - 11905: 0xCEAA, - 20027 - 11905: 0xD6F7, - 20028 - 11905: 0x8153, - 20029 - 11905: 0xC0F6, - 20030 - 11905: 0xBED9, - 20031 - 11905: 0xD8AF, - 20032 - 11905: 0x8154, - 20033 - 11905: 0x8155, - 20034 - 11905: 0x8156, - 20035 - 11905: 0xC4CB, - 20036 - 11905: 0x8157, - 20037 - 11905: 0xBEC3, - 20038 - 11905: 0x8158, - 20039 - 11905: 0xD8B1, - 20040 - 11905: 0xC3B4, - 20041 - 11905: 0xD2E5, - 20042 - 11905: 0x8159, - 20043 - 11905: 0xD6AE, - 20044 - 11905: 0xCEDA, - 20045 - 11905: 0xD5A7, - 20046 - 11905: 0xBAF5, - 20047 - 11905: 0xB7A6, - 20048 - 11905: 0xC0D6, - 20049 - 11905: 0x815A, - 20050 - 11905: 0xC6B9, - 20051 - 11905: 0xC5D2, - 20052 - 11905: 0xC7C7, - 20053 - 11905: 0x815B, - 20054 - 11905: 0xB9D4, - 20055 - 11905: 0x815C, - 20056 - 11905: 0xB3CB, - 20057 - 11905: 0xD2D2, - 20058 - 11905: 0x815D, - 20059 - 11905: 0x815E, - 20060 - 11905: 0xD8BF, - 20061 - 11905: 0xBEC5, - 20062 - 11905: 0xC6F2, - 20063 - 11905: 0xD2B2, - 20064 - 11905: 0xCFB0, - 20065 - 11905: 0xCFE7, - 20066 - 11905: 0x815F, - 20067 - 11905: 0x8160, - 20068 - 11905: 0x8161, - 20069 - 11905: 0x8162, - 20070 - 11905: 0xCAE9, - 20071 - 11905: 0x8163, - 20072 - 11905: 0x8164, - 20073 - 11905: 0xD8C0, - 20074 - 11905: 0x8165, - 20075 - 11905: 0x8166, - 20076 - 11905: 0x8167, - 20077 - 11905: 0x8168, - 20078 - 11905: 0x8169, - 20079 - 11905: 0x816A, - 20080 - 11905: 0xC2F2, - 20081 - 11905: 0xC2D2, - 20082 - 11905: 0x816B, - 20083 - 11905: 0xC8E9, - 20084 - 11905: 0x816C, - 20085 - 11905: 0x816D, - 20086 - 11905: 0x816E, - 20087 - 11905: 0x816F, - 20088 - 11905: 0x8170, - 20089 - 11905: 0x8171, - 20090 - 11905: 0x8172, - 20091 - 11905: 0x8173, - 20092 - 11905: 0x8174, - 20093 - 11905: 0x8175, - 20094 - 11905: 0xC7AC, - 20095 - 11905: 0x8176, - 20096 - 11905: 0x8177, - 20097 - 11905: 0x8178, - 20098 - 11905: 0x8179, - 20099 - 11905: 0x817A, - 20100 - 11905: 0x817B, - 20101 - 11905: 0x817C, - 20102 - 11905: 0xC1CB, - 20103 - 11905: 0x817D, - 20104 - 11905: 0xD3E8, - 20105 - 11905: 0xD5F9, - 20106 - 11905: 0x817E, - 20107 - 11905: 0xCAC2, - 20108 - 11905: 0xB6FE, - 20109 - 11905: 0xD8A1, - 20110 - 11905: 0xD3DA, - 20111 - 11905: 0xBFF7, - 20112 - 11905: 0x8180, - 20113 - 11905: 0xD4C6, - 20114 - 11905: 0xBBA5, - 20115 - 11905: 0xD8C1, - 20116 - 11905: 0xCEE5, - 20117 - 11905: 0xBEAE, - 20118 - 11905: 0x8181, - 20119 - 11905: 0x8182, - 20120 - 11905: 0xD8A8, - 20121 - 11905: 0x8183, - 20122 - 11905: 0xD1C7, - 20123 - 11905: 0xD0A9, - 20124 - 11905: 0x8184, - 20125 - 11905: 0x8185, - 20126 - 11905: 0x8186, - 20127 - 11905: 0xD8BD, - 20128 - 11905: 0xD9EF, - 20129 - 11905: 0xCDF6, - 20130 - 11905: 0xBFBA, - 20131 - 11905: 0x8187, - 20132 - 11905: 0xBDBB, - 20133 - 11905: 0xBAA5, - 20134 - 11905: 0xD2E0, - 20135 - 11905: 0xB2FA, - 20136 - 11905: 0xBAE0, - 20137 - 11905: 0xC4B6, - 20138 - 11905: 0x8188, - 20139 - 11905: 0xCFED, - 20140 - 11905: 0xBEA9, - 20141 - 11905: 0xCDA4, - 20142 - 11905: 0xC1C1, - 20143 - 11905: 0x8189, - 20144 - 11905: 0x818A, - 20145 - 11905: 0x818B, - 20146 - 11905: 0xC7D7, - 20147 - 11905: 0xD9F1, - 20148 - 11905: 0x818C, - 20149 - 11905: 0xD9F4, - 20150 - 11905: 0x818D, - 20151 - 11905: 0x818E, - 20152 - 11905: 0x818F, - 20153 - 11905: 0x8190, - 20154 - 11905: 0xC8CB, - 20155 - 11905: 0xD8E9, - 20156 - 11905: 0x8191, - 20157 - 11905: 0x8192, - 20158 - 11905: 0x8193, - 20159 - 11905: 0xD2DA, - 20160 - 11905: 0xCAB2, - 20161 - 11905: 0xC8CA, - 20162 - 11905: 0xD8EC, - 20163 - 11905: 0xD8EA, - 20164 - 11905: 0xD8C6, - 20165 - 11905: 0xBDF6, - 20166 - 11905: 0xC6CD, - 20167 - 11905: 0xB3F0, - 20168 - 11905: 0x8194, - 20169 - 11905: 0xD8EB, - 20170 - 11905: 0xBDF1, - 20171 - 11905: 0xBDE9, - 20172 - 11905: 0x8195, - 20173 - 11905: 0xC8D4, - 20174 - 11905: 0xB4D3, - 20175 - 11905: 0x8196, - 20176 - 11905: 0x8197, - 20177 - 11905: 0xC2D8, - 20178 - 11905: 0x8198, - 20179 - 11905: 0xB2D6, - 20180 - 11905: 0xD7D0, - 20181 - 11905: 0xCACB, - 20182 - 11905: 0xCBFB, - 20183 - 11905: 0xD5CC, - 20184 - 11905: 0xB8B6, - 20185 - 11905: 0xCFC9, - 20186 - 11905: 0x8199, - 20187 - 11905: 0x819A, - 20188 - 11905: 0x819B, - 20189 - 11905: 0xD9DA, - 20190 - 11905: 0xD8F0, - 20191 - 11905: 0xC7AA, - 20192 - 11905: 0x819C, - 20193 - 11905: 0xD8EE, - 20194 - 11905: 0x819D, - 20195 - 11905: 0xB4FA, - 20196 - 11905: 0xC1EE, - 20197 - 11905: 0xD2D4, - 20198 - 11905: 0x819E, - 20199 - 11905: 0x819F, - 20200 - 11905: 0xD8ED, - 20201 - 11905: 0x81A0, - 20202 - 11905: 0xD2C7, - 20203 - 11905: 0xD8EF, - 20204 - 11905: 0xC3C7, - 20205 - 11905: 0x81A1, - 20206 - 11905: 0x81A2, - 20207 - 11905: 0x81A3, - 20208 - 11905: 0xD1F6, - 20209 - 11905: 0x81A4, - 20210 - 11905: 0xD6D9, - 20211 - 11905: 0xD8F2, - 20212 - 11905: 0x81A5, - 20213 - 11905: 0xD8F5, - 20214 - 11905: 0xBCFE, - 20215 - 11905: 0xBCDB, - 20216 - 11905: 0x81A6, - 20217 - 11905: 0x81A7, - 20218 - 11905: 0x81A8, - 20219 - 11905: 0xC8CE, - 20220 - 11905: 0x81A9, - 20221 - 11905: 0xB7DD, - 20222 - 11905: 0x81AA, - 20223 - 11905: 0xB7C2, - 20224 - 11905: 0x81AB, - 20225 - 11905: 0xC6F3, - 20226 - 11905: 0x81AC, - 20227 - 11905: 0x81AD, - 20228 - 11905: 0x81AE, - 20229 - 11905: 0x81AF, - 20230 - 11905: 0x81B0, - 20231 - 11905: 0x81B1, - 20232 - 11905: 0x81B2, - 20233 - 11905: 0xD8F8, - 20234 - 11905: 0xD2C1, - 20235 - 11905: 0x81B3, - 20236 - 11905: 0x81B4, - 20237 - 11905: 0xCEE9, - 20238 - 11905: 0xBCBF, - 20239 - 11905: 0xB7FC, - 20240 - 11905: 0xB7A5, - 20241 - 11905: 0xD0DD, - 20242 - 11905: 0x81B5, - 20243 - 11905: 0x81B6, - 20244 - 11905: 0x81B7, - 20245 - 11905: 0x81B8, - 20246 - 11905: 0x81B9, - 20247 - 11905: 0xD6DA, - 20248 - 11905: 0xD3C5, - 20249 - 11905: 0xBBEF, - 20250 - 11905: 0xBBE1, - 20251 - 11905: 0xD8F1, - 20252 - 11905: 0x81BA, - 20253 - 11905: 0x81BB, - 20254 - 11905: 0xC9A1, - 20255 - 11905: 0xCEB0, - 20256 - 11905: 0xB4AB, - 20257 - 11905: 0x81BC, - 20258 - 11905: 0xD8F3, - 20259 - 11905: 0x81BD, - 20260 - 11905: 0xC9CB, - 20261 - 11905: 0xD8F6, - 20262 - 11905: 0xC2D7, - 20263 - 11905: 0xD8F7, - 20264 - 11905: 0x81BE, - 20265 - 11905: 0x81BF, - 20266 - 11905: 0xCEB1, - 20267 - 11905: 0xD8F9, - 20268 - 11905: 0x81C0, - 20269 - 11905: 0x81C1, - 20270 - 11905: 0x81C2, - 20271 - 11905: 0xB2AE, - 20272 - 11905: 0xB9C0, - 20273 - 11905: 0x81C3, - 20274 - 11905: 0xD9A3, - 20275 - 11905: 0x81C4, - 20276 - 11905: 0xB0E9, - 20277 - 11905: 0x81C5, - 20278 - 11905: 0xC1E6, - 20279 - 11905: 0x81C6, - 20280 - 11905: 0xC9EC, - 20281 - 11905: 0x81C7, - 20282 - 11905: 0xCBC5, - 20283 - 11905: 0x81C8, - 20284 - 11905: 0xCBC6, - 20285 - 11905: 0xD9A4, - 20286 - 11905: 0x81C9, - 20287 - 11905: 0x81CA, - 20288 - 11905: 0x81CB, - 20289 - 11905: 0x81CC, - 20290 - 11905: 0x81CD, - 20291 - 11905: 0xB5E8, - 20292 - 11905: 0x81CE, - 20293 - 11905: 0x81CF, - 20294 - 11905: 0xB5AB, - 20295 - 11905: 0x81D0, - 20296 - 11905: 0x81D1, - 20297 - 11905: 0x81D2, - 20298 - 11905: 0x81D3, - 20299 - 11905: 0x81D4, - 20300 - 11905: 0x81D5, - 20301 - 11905: 0xCEBB, - 20302 - 11905: 0xB5CD, - 20303 - 11905: 0xD7A1, - 20304 - 11905: 0xD7F4, - 20305 - 11905: 0xD3D3, - 20306 - 11905: 0x81D6, - 20307 - 11905: 0xCCE5, - 20308 - 11905: 0x81D7, - 20309 - 11905: 0xBACE, - 20310 - 11905: 0x81D8, - 20311 - 11905: 0xD9A2, - 20312 - 11905: 0xD9DC, - 20313 - 11905: 0xD3E0, - 20314 - 11905: 0xD8FD, - 20315 - 11905: 0xB7F0, - 20316 - 11905: 0xD7F7, - 20317 - 11905: 0xD8FE, - 20318 - 11905: 0xD8FA, - 20319 - 11905: 0xD9A1, - 20320 - 11905: 0xC4E3, - 20321 - 11905: 0x81D9, - 20322 - 11905: 0x81DA, - 20323 - 11905: 0xD3B6, - 20324 - 11905: 0xD8F4, - 20325 - 11905: 0xD9DD, - 20326 - 11905: 0x81DB, - 20327 - 11905: 0xD8FB, - 20328 - 11905: 0x81DC, - 20329 - 11905: 0xC5E5, - 20330 - 11905: 0x81DD, - 20331 - 11905: 0x81DE, - 20332 - 11905: 0xC0D0, - 20333 - 11905: 0x81DF, - 20334 - 11905: 0x81E0, - 20335 - 11905: 0xD1F0, - 20336 - 11905: 0xB0DB, - 20337 - 11905: 0x81E1, - 20338 - 11905: 0x81E2, - 20339 - 11905: 0xBCD1, - 20340 - 11905: 0xD9A6, - 20341 - 11905: 0x81E3, - 20342 - 11905: 0xD9A5, - 20343 - 11905: 0x81E4, - 20344 - 11905: 0x81E5, - 20345 - 11905: 0x81E6, - 20346 - 11905: 0x81E7, - 20347 - 11905: 0xD9AC, - 20348 - 11905: 0xD9AE, - 20349 - 11905: 0x81E8, - 20350 - 11905: 0xD9AB, - 20351 - 11905: 0xCAB9, - 20352 - 11905: 0x81E9, - 20353 - 11905: 0x81EA, - 20354 - 11905: 0x81EB, - 20355 - 11905: 0xD9A9, - 20356 - 11905: 0xD6B6, - 20357 - 11905: 0x81EC, - 20358 - 11905: 0x81ED, - 20359 - 11905: 0x81EE, - 20360 - 11905: 0xB3DE, - 20361 - 11905: 0xD9A8, - 20362 - 11905: 0x81EF, - 20363 - 11905: 0xC0FD, - 20364 - 11905: 0x81F0, - 20365 - 11905: 0xCACC, - 20366 - 11905: 0x81F1, - 20367 - 11905: 0xD9AA, - 20368 - 11905: 0x81F2, - 20369 - 11905: 0xD9A7, - 20370 - 11905: 0x81F3, - 20371 - 11905: 0x81F4, - 20372 - 11905: 0xD9B0, - 20373 - 11905: 0x81F5, - 20374 - 11905: 0x81F6, - 20375 - 11905: 0xB6B1, - 20376 - 11905: 0x81F7, - 20377 - 11905: 0x81F8, - 20378 - 11905: 0x81F9, - 20379 - 11905: 0xB9A9, - 20380 - 11905: 0x81FA, - 20381 - 11905: 0xD2C0, - 20382 - 11905: 0x81FB, - 20383 - 11905: 0x81FC, - 20384 - 11905: 0xCFC0, - 20385 - 11905: 0x81FD, - 20386 - 11905: 0x81FE, - 20387 - 11905: 0xC2C2, - 20388 - 11905: 0x8240, - 20389 - 11905: 0xBDC4, - 20390 - 11905: 0xD5EC, - 20391 - 11905: 0xB2E0, - 20392 - 11905: 0xC7C8, - 20393 - 11905: 0xBFEB, - 20394 - 11905: 0xD9AD, - 20395 - 11905: 0x8241, - 20396 - 11905: 0xD9AF, - 20397 - 11905: 0x8242, - 20398 - 11905: 0xCEEA, - 20399 - 11905: 0xBAEE, - 20400 - 11905: 0x8243, - 20401 - 11905: 0x8244, - 20402 - 11905: 0x8245, - 20403 - 11905: 0x8246, - 20404 - 11905: 0x8247, - 20405 - 11905: 0xC7D6, - 20406 - 11905: 0x8248, - 20407 - 11905: 0x8249, - 20408 - 11905: 0x824A, - 20409 - 11905: 0x824B, - 20410 - 11905: 0x824C, - 20411 - 11905: 0x824D, - 20412 - 11905: 0x824E, - 20413 - 11905: 0x824F, - 20414 - 11905: 0x8250, - 20415 - 11905: 0xB1E3, - 20416 - 11905: 0x8251, - 20417 - 11905: 0x8252, - 20418 - 11905: 0x8253, - 20419 - 11905: 0xB4D9, - 20420 - 11905: 0xB6ED, - 20421 - 11905: 0xD9B4, - 20422 - 11905: 0x8254, - 20423 - 11905: 0x8255, - 20424 - 11905: 0x8256, - 20425 - 11905: 0x8257, - 20426 - 11905: 0xBFA1, - 20427 - 11905: 0x8258, - 20428 - 11905: 0x8259, - 20429 - 11905: 0x825A, - 20430 - 11905: 0xD9DE, - 20431 - 11905: 0xC7CE, - 20432 - 11905: 0xC0FE, - 20433 - 11905: 0xD9B8, - 20434 - 11905: 0x825B, - 20435 - 11905: 0x825C, - 20436 - 11905: 0x825D, - 20437 - 11905: 0x825E, - 20438 - 11905: 0x825F, - 20439 - 11905: 0xCBD7, - 20440 - 11905: 0xB7FD, - 20441 - 11905: 0x8260, - 20442 - 11905: 0xD9B5, - 20443 - 11905: 0x8261, - 20444 - 11905: 0xD9B7, - 20445 - 11905: 0xB1A3, - 20446 - 11905: 0xD3E1, - 20447 - 11905: 0xD9B9, - 20448 - 11905: 0x8262, - 20449 - 11905: 0xD0C5, - 20450 - 11905: 0x8263, - 20451 - 11905: 0xD9B6, - 20452 - 11905: 0x8264, - 20453 - 11905: 0x8265, - 20454 - 11905: 0xD9B1, - 20455 - 11905: 0x8266, - 20456 - 11905: 0xD9B2, - 20457 - 11905: 0xC1A9, - 20458 - 11905: 0xD9B3, - 20459 - 11905: 0x8267, - 20460 - 11905: 0x8268, - 20461 - 11905: 0xBCF3, - 20462 - 11905: 0xD0DE, - 20463 - 11905: 0xB8A9, - 20464 - 11905: 0x8269, - 20465 - 11905: 0xBEE3, - 20466 - 11905: 0x826A, - 20467 - 11905: 0xD9BD, - 20468 - 11905: 0x826B, - 20469 - 11905: 0x826C, - 20470 - 11905: 0x826D, - 20471 - 11905: 0x826E, - 20472 - 11905: 0xD9BA, - 20473 - 11905: 0x826F, - 20474 - 11905: 0xB0B3, - 20475 - 11905: 0x8270, - 20476 - 11905: 0x8271, - 20477 - 11905: 0x8272, - 20478 - 11905: 0xD9C2, - 20479 - 11905: 0x8273, - 20480 - 11905: 0x8274, - 20481 - 11905: 0x8275, - 20482 - 11905: 0x8276, - 20483 - 11905: 0x8277, - 20484 - 11905: 0x8278, - 20485 - 11905: 0x8279, - 20486 - 11905: 0x827A, - 20487 - 11905: 0x827B, - 20488 - 11905: 0x827C, - 20489 - 11905: 0x827D, - 20490 - 11905: 0x827E, - 20491 - 11905: 0x8280, - 20492 - 11905: 0xD9C4, - 20493 - 11905: 0xB1B6, - 20494 - 11905: 0x8281, - 20495 - 11905: 0xD9BF, - 20496 - 11905: 0x8282, - 20497 - 11905: 0x8283, - 20498 - 11905: 0xB5B9, - 20499 - 11905: 0x8284, - 20500 - 11905: 0xBEF3, - 20501 - 11905: 0x8285, - 20502 - 11905: 0x8286, - 20503 - 11905: 0x8287, - 20504 - 11905: 0xCCC8, - 20505 - 11905: 0xBAF2, - 20506 - 11905: 0xD2D0, - 20507 - 11905: 0x8288, - 20508 - 11905: 0xD9C3, - 20509 - 11905: 0x8289, - 20510 - 11905: 0x828A, - 20511 - 11905: 0xBDE8, - 20512 - 11905: 0x828B, - 20513 - 11905: 0xB3AB, - 20514 - 11905: 0x828C, - 20515 - 11905: 0x828D, - 20516 - 11905: 0x828E, - 20517 - 11905: 0xD9C5, - 20518 - 11905: 0xBEEB, - 20519 - 11905: 0x828F, - 20520 - 11905: 0xD9C6, - 20521 - 11905: 0xD9BB, - 20522 - 11905: 0xC4DF, - 20523 - 11905: 0x8290, - 20524 - 11905: 0xD9BE, - 20525 - 11905: 0xD9C1, - 20526 - 11905: 0xD9C0, - 20527 - 11905: 0x8291, - 20528 - 11905: 0x8292, - 20529 - 11905: 0x8293, - 20530 - 11905: 0x8294, - 20531 - 11905: 0x8295, - 20532 - 11905: 0x8296, - 20533 - 11905: 0x8297, - 20534 - 11905: 0x8298, - 20535 - 11905: 0x8299, - 20536 - 11905: 0x829A, - 20537 - 11905: 0x829B, - 20538 - 11905: 0xD5AE, - 20539 - 11905: 0x829C, - 20540 - 11905: 0xD6B5, - 20541 - 11905: 0x829D, - 20542 - 11905: 0xC7E3, - 20543 - 11905: 0x829E, - 20544 - 11905: 0x829F, - 20545 - 11905: 0x82A0, - 20546 - 11905: 0x82A1, - 20547 - 11905: 0xD9C8, - 20548 - 11905: 0x82A2, - 20549 - 11905: 0x82A3, - 20550 - 11905: 0x82A4, - 20551 - 11905: 0xBCD9, - 20552 - 11905: 0xD9CA, - 20553 - 11905: 0x82A5, - 20554 - 11905: 0x82A6, - 20555 - 11905: 0x82A7, - 20556 - 11905: 0xD9BC, - 20557 - 11905: 0x82A8, - 20558 - 11905: 0xD9CB, - 20559 - 11905: 0xC6AB, - 20560 - 11905: 0x82A9, - 20561 - 11905: 0x82AA, - 20562 - 11905: 0x82AB, - 20563 - 11905: 0x82AC, - 20564 - 11905: 0x82AD, - 20565 - 11905: 0xD9C9, - 20566 - 11905: 0x82AE, - 20567 - 11905: 0x82AF, - 20568 - 11905: 0x82B0, - 20569 - 11905: 0x82B1, - 20570 - 11905: 0xD7F6, - 20571 - 11905: 0x82B2, - 20572 - 11905: 0xCDA3, - 20573 - 11905: 0x82B3, - 20574 - 11905: 0x82B4, - 20575 - 11905: 0x82B5, - 20576 - 11905: 0x82B6, - 20577 - 11905: 0x82B7, - 20578 - 11905: 0x82B8, - 20579 - 11905: 0x82B9, - 20580 - 11905: 0x82BA, - 20581 - 11905: 0xBDA1, - 20582 - 11905: 0x82BB, - 20583 - 11905: 0x82BC, - 20584 - 11905: 0x82BD, - 20585 - 11905: 0x82BE, - 20586 - 11905: 0x82BF, - 20587 - 11905: 0x82C0, - 20588 - 11905: 0xD9CC, - 20589 - 11905: 0x82C1, - 20590 - 11905: 0x82C2, - 20591 - 11905: 0x82C3, - 20592 - 11905: 0x82C4, - 20593 - 11905: 0x82C5, - 20594 - 11905: 0x82C6, - 20595 - 11905: 0x82C7, - 20596 - 11905: 0x82C8, - 20597 - 11905: 0x82C9, - 20598 - 11905: 0xC5BC, - 20599 - 11905: 0xCDB5, - 20600 - 11905: 0x82CA, - 20601 - 11905: 0x82CB, - 20602 - 11905: 0x82CC, - 20603 - 11905: 0xD9CD, - 20604 - 11905: 0x82CD, - 20605 - 11905: 0x82CE, - 20606 - 11905: 0xD9C7, - 20607 - 11905: 0xB3A5, - 20608 - 11905: 0xBFFE, - 20609 - 11905: 0x82CF, - 20610 - 11905: 0x82D0, - 20611 - 11905: 0x82D1, - 20612 - 11905: 0x82D2, - 20613 - 11905: 0xB8B5, - 20614 - 11905: 0x82D3, - 20615 - 11905: 0x82D4, - 20616 - 11905: 0xC0FC, - 20617 - 11905: 0x82D5, - 20618 - 11905: 0x82D6, - 20619 - 11905: 0x82D7, - 20620 - 11905: 0x82D8, - 20621 - 11905: 0xB0F8, - 20622 - 11905: 0x82D9, - 20623 - 11905: 0x82DA, - 20624 - 11905: 0x82DB, - 20625 - 11905: 0x82DC, - 20626 - 11905: 0x82DD, - 20627 - 11905: 0x82DE, - 20628 - 11905: 0x82DF, - 20629 - 11905: 0x82E0, - 20630 - 11905: 0x82E1, - 20631 - 11905: 0x82E2, - 20632 - 11905: 0x82E3, - 20633 - 11905: 0x82E4, - 20634 - 11905: 0x82E5, - 20635 - 11905: 0x82E6, - 20636 - 11905: 0x82E7, - 20637 - 11905: 0x82E8, - 20638 - 11905: 0x82E9, - 20639 - 11905: 0x82EA, - 20640 - 11905: 0x82EB, - 20641 - 11905: 0x82EC, - 20642 - 11905: 0x82ED, - 20643 - 11905: 0xB4F6, - 20644 - 11905: 0x82EE, - 20645 - 11905: 0xD9CE, - 20646 - 11905: 0x82EF, - 20647 - 11905: 0xD9CF, - 20648 - 11905: 0xB4A2, - 20649 - 11905: 0xD9D0, - 20650 - 11905: 0x82F0, - 20651 - 11905: 0x82F1, - 20652 - 11905: 0xB4DF, - 20653 - 11905: 0x82F2, - 20654 - 11905: 0x82F3, - 20655 - 11905: 0x82F4, - 20656 - 11905: 0x82F5, - 20657 - 11905: 0x82F6, - 20658 - 11905: 0xB0C1, - 20659 - 11905: 0x82F7, - 20660 - 11905: 0x82F8, - 20661 - 11905: 0x82F9, - 20662 - 11905: 0x82FA, - 20663 - 11905: 0x82FB, - 20664 - 11905: 0x82FC, - 20665 - 11905: 0x82FD, - 20666 - 11905: 0xD9D1, - 20667 - 11905: 0xC9B5, - 20668 - 11905: 0x82FE, - 20669 - 11905: 0x8340, - 20670 - 11905: 0x8341, - 20671 - 11905: 0x8342, - 20672 - 11905: 0x8343, - 20673 - 11905: 0x8344, - 20674 - 11905: 0x8345, - 20675 - 11905: 0x8346, - 20676 - 11905: 0x8347, - 20677 - 11905: 0x8348, - 20678 - 11905: 0x8349, - 20679 - 11905: 0x834A, - 20680 - 11905: 0x834B, - 20681 - 11905: 0x834C, - 20682 - 11905: 0x834D, - 20683 - 11905: 0x834E, - 20684 - 11905: 0x834F, - 20685 - 11905: 0x8350, - 20686 - 11905: 0x8351, - 20687 - 11905: 0xCFF1, - 20688 - 11905: 0x8352, - 20689 - 11905: 0x8353, - 20690 - 11905: 0x8354, - 20691 - 11905: 0x8355, - 20692 - 11905: 0x8356, - 20693 - 11905: 0x8357, - 20694 - 11905: 0xD9D2, - 20695 - 11905: 0x8358, - 20696 - 11905: 0x8359, - 20697 - 11905: 0x835A, - 20698 - 11905: 0xC1C5, - 20699 - 11905: 0x835B, - 20700 - 11905: 0x835C, - 20701 - 11905: 0x835D, - 20702 - 11905: 0x835E, - 20703 - 11905: 0x835F, - 20704 - 11905: 0x8360, - 20705 - 11905: 0x8361, - 20706 - 11905: 0x8362, - 20707 - 11905: 0x8363, - 20708 - 11905: 0x8364, - 20709 - 11905: 0x8365, - 20710 - 11905: 0xD9D6, - 20711 - 11905: 0xC9AE, - 20712 - 11905: 0x8366, - 20713 - 11905: 0x8367, - 20714 - 11905: 0x8368, - 20715 - 11905: 0x8369, - 20716 - 11905: 0xD9D5, - 20717 - 11905: 0xD9D4, - 20718 - 11905: 0xD9D7, - 20719 - 11905: 0x836A, - 20720 - 11905: 0x836B, - 20721 - 11905: 0x836C, - 20722 - 11905: 0x836D, - 20723 - 11905: 0xCBDB, - 20724 - 11905: 0x836E, - 20725 - 11905: 0xBDA9, - 20726 - 11905: 0x836F, - 20727 - 11905: 0x8370, - 20728 - 11905: 0x8371, - 20729 - 11905: 0x8372, - 20730 - 11905: 0x8373, - 20731 - 11905: 0xC6A7, - 20732 - 11905: 0x8374, - 20733 - 11905: 0x8375, - 20734 - 11905: 0x8376, - 20735 - 11905: 0x8377, - 20736 - 11905: 0x8378, - 20737 - 11905: 0x8379, - 20738 - 11905: 0x837A, - 20739 - 11905: 0x837B, - 20740 - 11905: 0x837C, - 20741 - 11905: 0x837D, - 20742 - 11905: 0xD9D3, - 20743 - 11905: 0xD9D8, - 20744 - 11905: 0x837E, - 20745 - 11905: 0x8380, - 20746 - 11905: 0x8381, - 20747 - 11905: 0xD9D9, - 20748 - 11905: 0x8382, - 20749 - 11905: 0x8383, - 20750 - 11905: 0x8384, - 20751 - 11905: 0x8385, - 20752 - 11905: 0x8386, - 20753 - 11905: 0x8387, - 20754 - 11905: 0xC8E5, - 20755 - 11905: 0x8388, - 20756 - 11905: 0x8389, - 20757 - 11905: 0x838A, - 20758 - 11905: 0x838B, - 20759 - 11905: 0x838C, - 20760 - 11905: 0x838D, - 20761 - 11905: 0x838E, - 20762 - 11905: 0x838F, - 20763 - 11905: 0x8390, - 20764 - 11905: 0x8391, - 20765 - 11905: 0x8392, - 20766 - 11905: 0x8393, - 20767 - 11905: 0x8394, - 20768 - 11905: 0x8395, - 20769 - 11905: 0xC0DC, - 20770 - 11905: 0x8396, - 20771 - 11905: 0x8397, - 20772 - 11905: 0x8398, - 20773 - 11905: 0x8399, - 20774 - 11905: 0x839A, - 20775 - 11905: 0x839B, - 20776 - 11905: 0x839C, - 20777 - 11905: 0x839D, - 20778 - 11905: 0x839E, - 20779 - 11905: 0x839F, - 20780 - 11905: 0x83A0, - 20781 - 11905: 0x83A1, - 20782 - 11905: 0x83A2, - 20783 - 11905: 0x83A3, - 20784 - 11905: 0x83A4, - 20785 - 11905: 0x83A5, - 20786 - 11905: 0x83A6, - 20787 - 11905: 0x83A7, - 20788 - 11905: 0x83A8, - 20789 - 11905: 0x83A9, - 20790 - 11905: 0x83AA, - 20791 - 11905: 0x83AB, - 20792 - 11905: 0x83AC, - 20793 - 11905: 0x83AD, - 20794 - 11905: 0x83AE, - 20795 - 11905: 0x83AF, - 20796 - 11905: 0x83B0, - 20797 - 11905: 0x83B1, - 20798 - 11905: 0x83B2, - 20799 - 11905: 0xB6F9, - 20800 - 11905: 0xD8A3, - 20801 - 11905: 0xD4CA, - 20802 - 11905: 0x83B3, - 20803 - 11905: 0xD4AA, - 20804 - 11905: 0xD0D6, - 20805 - 11905: 0xB3E4, - 20806 - 11905: 0xD5D7, - 20807 - 11905: 0x83B4, - 20808 - 11905: 0xCFC8, - 20809 - 11905: 0xB9E2, - 20810 - 11905: 0x83B5, - 20811 - 11905: 0xBFCB, - 20812 - 11905: 0x83B6, - 20813 - 11905: 0xC3E2, - 20814 - 11905: 0x83B7, - 20815 - 11905: 0x83B8, - 20816 - 11905: 0x83B9, - 20817 - 11905: 0xB6D2, - 20818 - 11905: 0x83BA, - 20819 - 11905: 0x83BB, - 20820 - 11905: 0xCDC3, - 20821 - 11905: 0xD9EE, - 20822 - 11905: 0xD9F0, - 20823 - 11905: 0x83BC, - 20824 - 11905: 0x83BD, - 20825 - 11905: 0x83BE, - 20826 - 11905: 0xB5B3, - 20827 - 11905: 0x83BF, - 20828 - 11905: 0xB6B5, - 20829 - 11905: 0x83C0, - 20830 - 11905: 0x83C1, - 20831 - 11905: 0x83C2, - 20832 - 11905: 0x83C3, - 20833 - 11905: 0x83C4, - 20834 - 11905: 0xBEA4, - 20835 - 11905: 0x83C5, - 20836 - 11905: 0x83C6, - 20837 - 11905: 0xC8EB, - 20838 - 11905: 0x83C7, - 20839 - 11905: 0x83C8, - 20840 - 11905: 0xC8AB, - 20841 - 11905: 0x83C9, - 20842 - 11905: 0x83CA, - 20843 - 11905: 0xB0CB, - 20844 - 11905: 0xB9AB, - 20845 - 11905: 0xC1F9, - 20846 - 11905: 0xD9E2, - 20847 - 11905: 0x83CB, - 20848 - 11905: 0xC0BC, - 20849 - 11905: 0xB9B2, - 20850 - 11905: 0x83CC, - 20851 - 11905: 0xB9D8, - 20852 - 11905: 0xD0CB, - 20853 - 11905: 0xB1F8, - 20854 - 11905: 0xC6E4, - 20855 - 11905: 0xBEDF, - 20856 - 11905: 0xB5E4, - 20857 - 11905: 0xD7C8, - 20858 - 11905: 0x83CD, - 20859 - 11905: 0xD1F8, - 20860 - 11905: 0xBCE6, - 20861 - 11905: 0xCADE, - 20862 - 11905: 0x83CE, - 20863 - 11905: 0x83CF, - 20864 - 11905: 0xBCBD, - 20865 - 11905: 0xD9E6, - 20866 - 11905: 0xD8E7, - 20867 - 11905: 0x83D0, - 20868 - 11905: 0x83D1, - 20869 - 11905: 0xC4DA, - 20870 - 11905: 0x83D2, - 20871 - 11905: 0x83D3, - 20872 - 11905: 0xB8D4, - 20873 - 11905: 0xC8BD, - 20874 - 11905: 0x83D4, - 20875 - 11905: 0x83D5, - 20876 - 11905: 0xB2E1, - 20877 - 11905: 0xD4D9, - 20878 - 11905: 0x83D6, - 20879 - 11905: 0x83D7, - 20880 - 11905: 0x83D8, - 20881 - 11905: 0x83D9, - 20882 - 11905: 0xC3B0, - 20883 - 11905: 0x83DA, - 20884 - 11905: 0x83DB, - 20885 - 11905: 0xC3E1, - 20886 - 11905: 0xDAA2, - 20887 - 11905: 0xC8DF, - 20888 - 11905: 0x83DC, - 20889 - 11905: 0xD0B4, - 20890 - 11905: 0x83DD, - 20891 - 11905: 0xBEFC, - 20892 - 11905: 0xC5A9, - 20893 - 11905: 0x83DE, - 20894 - 11905: 0x83DF, - 20895 - 11905: 0x83E0, - 20896 - 11905: 0xB9DA, - 20897 - 11905: 0x83E1, - 20898 - 11905: 0xDAA3, - 20899 - 11905: 0x83E2, - 20900 - 11905: 0xD4A9, - 20901 - 11905: 0xDAA4, - 20902 - 11905: 0x83E3, - 20903 - 11905: 0x83E4, - 20904 - 11905: 0x83E5, - 20905 - 11905: 0x83E6, - 20906 - 11905: 0x83E7, - 20907 - 11905: 0xD9FB, - 20908 - 11905: 0xB6AC, - 20909 - 11905: 0x83E8, - 20910 - 11905: 0x83E9, - 20911 - 11905: 0xB7EB, - 20912 - 11905: 0xB1F9, - 20913 - 11905: 0xD9FC, - 20914 - 11905: 0xB3E5, - 20915 - 11905: 0xBEF6, - 20916 - 11905: 0x83EA, - 20917 - 11905: 0xBFF6, - 20918 - 11905: 0xD2B1, - 20919 - 11905: 0xC0E4, - 20920 - 11905: 0x83EB, - 20921 - 11905: 0x83EC, - 20922 - 11905: 0x83ED, - 20923 - 11905: 0xB6B3, - 20924 - 11905: 0xD9FE, - 20925 - 11905: 0xD9FD, - 20926 - 11905: 0x83EE, - 20927 - 11905: 0x83EF, - 20928 - 11905: 0xBEBB, - 20929 - 11905: 0x83F0, - 20930 - 11905: 0x83F1, - 20931 - 11905: 0x83F2, - 20932 - 11905: 0xC6E0, - 20933 - 11905: 0x83F3, - 20934 - 11905: 0xD7BC, - 20935 - 11905: 0xDAA1, - 20936 - 11905: 0x83F4, - 20937 - 11905: 0xC1B9, - 20938 - 11905: 0x83F5, - 20939 - 11905: 0xB5F2, - 20940 - 11905: 0xC1E8, - 20941 - 11905: 0x83F6, - 20942 - 11905: 0x83F7, - 20943 - 11905: 0xBCF5, - 20944 - 11905: 0x83F8, - 20945 - 11905: 0xB4D5, - 20946 - 11905: 0x83F9, - 20947 - 11905: 0x83FA, - 20948 - 11905: 0x83FB, - 20949 - 11905: 0x83FC, - 20950 - 11905: 0x83FD, - 20951 - 11905: 0x83FE, - 20952 - 11905: 0x8440, - 20953 - 11905: 0x8441, - 20954 - 11905: 0x8442, - 20955 - 11905: 0xC1DD, - 20956 - 11905: 0x8443, - 20957 - 11905: 0xC4FD, - 20958 - 11905: 0x8444, - 20959 - 11905: 0x8445, - 20960 - 11905: 0xBCB8, - 20961 - 11905: 0xB7B2, - 20962 - 11905: 0x8446, - 20963 - 11905: 0x8447, - 20964 - 11905: 0xB7EF, - 20965 - 11905: 0x8448, - 20966 - 11905: 0x8449, - 20967 - 11905: 0x844A, - 20968 - 11905: 0x844B, - 20969 - 11905: 0x844C, - 20970 - 11905: 0x844D, - 20971 - 11905: 0xD9EC, - 20972 - 11905: 0x844E, - 20973 - 11905: 0xC6BE, - 20974 - 11905: 0x844F, - 20975 - 11905: 0xBFAD, - 20976 - 11905: 0xBBCB, - 20977 - 11905: 0x8450, - 20978 - 11905: 0x8451, - 20979 - 11905: 0xB5CA, - 20980 - 11905: 0x8452, - 20981 - 11905: 0xDBC9, - 20982 - 11905: 0xD0D7, - 20983 - 11905: 0x8453, - 20984 - 11905: 0xCDB9, - 20985 - 11905: 0xB0BC, - 20986 - 11905: 0xB3F6, - 20987 - 11905: 0xBBF7, - 20988 - 11905: 0xDBCA, - 20989 - 11905: 0xBAAF, - 20990 - 11905: 0x8454, - 20991 - 11905: 0xD4E4, - 20992 - 11905: 0xB5B6, - 20993 - 11905: 0xB5F3, - 20994 - 11905: 0xD8D6, - 20995 - 11905: 0xC8D0, - 20996 - 11905: 0x8455, - 20997 - 11905: 0x8456, - 20998 - 11905: 0xB7D6, - 20999 - 11905: 0xC7D0, - 21000 - 11905: 0xD8D7, - 21001 - 11905: 0x8457, - 21002 - 11905: 0xBFAF, - 21003 - 11905: 0x8458, - 21004 - 11905: 0x8459, - 21005 - 11905: 0xDBBB, - 21006 - 11905: 0xD8D8, - 21007 - 11905: 0x845A, - 21008 - 11905: 0x845B, - 21009 - 11905: 0xD0CC, - 21010 - 11905: 0xBBAE, - 21011 - 11905: 0x845C, - 21012 - 11905: 0x845D, - 21013 - 11905: 0x845E, - 21014 - 11905: 0xEBBE, - 21015 - 11905: 0xC1D0, - 21016 - 11905: 0xC1F5, - 21017 - 11905: 0xD4F2, - 21018 - 11905: 0xB8D5, - 21019 - 11905: 0xB4B4, - 21020 - 11905: 0x845F, - 21021 - 11905: 0xB3F5, - 21022 - 11905: 0x8460, - 21023 - 11905: 0x8461, - 21024 - 11905: 0xC9BE, - 21025 - 11905: 0x8462, - 21026 - 11905: 0x8463, - 21027 - 11905: 0x8464, - 21028 - 11905: 0xC5D0, - 21029 - 11905: 0x8465, - 21030 - 11905: 0x8466, - 21031 - 11905: 0x8467, - 21032 - 11905: 0xC5D9, - 21033 - 11905: 0xC0FB, - 21034 - 11905: 0x8468, - 21035 - 11905: 0xB1F0, - 21036 - 11905: 0x8469, - 21037 - 11905: 0xD8D9, - 21038 - 11905: 0xB9CE, - 21039 - 11905: 0x846A, - 21040 - 11905: 0xB5BD, - 21041 - 11905: 0x846B, - 21042 - 11905: 0x846C, - 21043 - 11905: 0xD8DA, - 21044 - 11905: 0x846D, - 21045 - 11905: 0x846E, - 21046 - 11905: 0xD6C6, - 21047 - 11905: 0xCBA2, - 21048 - 11905: 0xC8AF, - 21049 - 11905: 0xC9B2, - 21050 - 11905: 0xB4CC, - 21051 - 11905: 0xBFCC, - 21052 - 11905: 0x846F, - 21053 - 11905: 0xB9F4, - 21054 - 11905: 0x8470, - 21055 - 11905: 0xD8DB, - 21056 - 11905: 0xD8DC, - 21057 - 11905: 0xB6E7, - 21058 - 11905: 0xBCC1, - 21059 - 11905: 0xCCEA, - 21060 - 11905: 0x8471, - 21061 - 11905: 0x8472, - 21062 - 11905: 0x8473, - 21063 - 11905: 0x8474, - 21064 - 11905: 0x8475, - 21065 - 11905: 0x8476, - 21066 - 11905: 0xCFF7, - 21067 - 11905: 0x8477, - 21068 - 11905: 0xD8DD, - 21069 - 11905: 0xC7B0, - 21070 - 11905: 0x8478, - 21071 - 11905: 0x8479, - 21072 - 11905: 0xB9D0, - 21073 - 11905: 0xBDA3, - 21074 - 11905: 0x847A, - 21075 - 11905: 0x847B, - 21076 - 11905: 0xCCDE, - 21077 - 11905: 0x847C, - 21078 - 11905: 0xC6CA, - 21079 - 11905: 0x847D, - 21080 - 11905: 0x847E, - 21081 - 11905: 0x8480, - 21082 - 11905: 0x8481, - 21083 - 11905: 0x8482, - 21084 - 11905: 0xD8E0, - 21085 - 11905: 0x8483, - 21086 - 11905: 0xD8DE, - 21087 - 11905: 0x8484, - 21088 - 11905: 0x8485, - 21089 - 11905: 0xD8DF, - 21090 - 11905: 0x8486, - 21091 - 11905: 0x8487, - 21092 - 11905: 0x8488, - 21093 - 11905: 0xB0FE, - 21094 - 11905: 0x8489, - 21095 - 11905: 0xBEE7, - 21096 - 11905: 0x848A, - 21097 - 11905: 0xCAA3, - 21098 - 11905: 0xBCF4, - 21099 - 11905: 0x848B, - 21100 - 11905: 0x848C, - 21101 - 11905: 0x848D, - 21102 - 11905: 0x848E, - 21103 - 11905: 0xB8B1, - 21104 - 11905: 0x848F, - 21105 - 11905: 0x8490, - 21106 - 11905: 0xB8EE, - 21107 - 11905: 0x8491, - 21108 - 11905: 0x8492, - 21109 - 11905: 0x8493, - 21110 - 11905: 0x8494, - 21111 - 11905: 0x8495, - 21112 - 11905: 0x8496, - 21113 - 11905: 0x8497, - 21114 - 11905: 0x8498, - 21115 - 11905: 0x8499, - 21116 - 11905: 0x849A, - 21117 - 11905: 0xD8E2, - 21118 - 11905: 0x849B, - 21119 - 11905: 0xBDCB, - 21120 - 11905: 0x849C, - 21121 - 11905: 0xD8E4, - 21122 - 11905: 0xD8E3, - 21123 - 11905: 0x849D, - 21124 - 11905: 0x849E, - 21125 - 11905: 0x849F, - 21126 - 11905: 0x84A0, - 21127 - 11905: 0x84A1, - 21128 - 11905: 0xC5FC, - 21129 - 11905: 0x84A2, - 21130 - 11905: 0x84A3, - 21131 - 11905: 0x84A4, - 21132 - 11905: 0x84A5, - 21133 - 11905: 0x84A6, - 21134 - 11905: 0x84A7, - 21135 - 11905: 0x84A8, - 21136 - 11905: 0xD8E5, - 21137 - 11905: 0x84A9, - 21138 - 11905: 0x84AA, - 21139 - 11905: 0xD8E6, - 21140 - 11905: 0x84AB, - 21141 - 11905: 0x84AC, - 21142 - 11905: 0x84AD, - 21143 - 11905: 0x84AE, - 21144 - 11905: 0x84AF, - 21145 - 11905: 0x84B0, - 21146 - 11905: 0x84B1, - 21147 - 11905: 0xC1A6, - 21148 - 11905: 0x84B2, - 21149 - 11905: 0xC8B0, - 21150 - 11905: 0xB0EC, - 21151 - 11905: 0xB9A6, - 21152 - 11905: 0xBCD3, - 21153 - 11905: 0xCEF1, - 21154 - 11905: 0xDBBD, - 21155 - 11905: 0xC1D3, - 21156 - 11905: 0x84B3, - 21157 - 11905: 0x84B4, - 21158 - 11905: 0x84B5, - 21159 - 11905: 0x84B6, - 21160 - 11905: 0xB6AF, - 21161 - 11905: 0xD6FA, - 21162 - 11905: 0xC5AC, - 21163 - 11905: 0xBDD9, - 21164 - 11905: 0xDBBE, - 21165 - 11905: 0xDBBF, - 21166 - 11905: 0x84B7, - 21167 - 11905: 0x84B8, - 21168 - 11905: 0x84B9, - 21169 - 11905: 0xC0F8, - 21170 - 11905: 0xBEA2, - 21171 - 11905: 0xC0CD, - 21172 - 11905: 0x84BA, - 21173 - 11905: 0x84BB, - 21174 - 11905: 0x84BC, - 21175 - 11905: 0x84BD, - 21176 - 11905: 0x84BE, - 21177 - 11905: 0x84BF, - 21178 - 11905: 0x84C0, - 21179 - 11905: 0x84C1, - 21180 - 11905: 0x84C2, - 21181 - 11905: 0x84C3, - 21182 - 11905: 0xDBC0, - 21183 - 11905: 0xCAC6, - 21184 - 11905: 0x84C4, - 21185 - 11905: 0x84C5, - 21186 - 11905: 0x84C6, - 21187 - 11905: 0xB2AA, - 21188 - 11905: 0x84C7, - 21189 - 11905: 0x84C8, - 21190 - 11905: 0x84C9, - 21191 - 11905: 0xD3C2, - 21192 - 11905: 0x84CA, - 21193 - 11905: 0xC3E3, - 21194 - 11905: 0x84CB, - 21195 - 11905: 0xD1AB, - 21196 - 11905: 0x84CC, - 21197 - 11905: 0x84CD, - 21198 - 11905: 0x84CE, - 21199 - 11905: 0x84CF, - 21200 - 11905: 0xDBC2, - 21201 - 11905: 0x84D0, - 21202 - 11905: 0xC0D5, - 21203 - 11905: 0x84D1, - 21204 - 11905: 0x84D2, - 21205 - 11905: 0x84D3, - 21206 - 11905: 0xDBC3, - 21207 - 11905: 0x84D4, - 21208 - 11905: 0xBFB1, - 21209 - 11905: 0x84D5, - 21210 - 11905: 0x84D6, - 21211 - 11905: 0x84D7, - 21212 - 11905: 0x84D8, - 21213 - 11905: 0x84D9, - 21214 - 11905: 0x84DA, - 21215 - 11905: 0xC4BC, - 21216 - 11905: 0x84DB, - 21217 - 11905: 0x84DC, - 21218 - 11905: 0x84DD, - 21219 - 11905: 0x84DE, - 21220 - 11905: 0xC7DA, - 21221 - 11905: 0x84DF, - 21222 - 11905: 0x84E0, - 21223 - 11905: 0x84E1, - 21224 - 11905: 0x84E2, - 21225 - 11905: 0x84E3, - 21226 - 11905: 0x84E4, - 21227 - 11905: 0x84E5, - 21228 - 11905: 0x84E6, - 21229 - 11905: 0x84E7, - 21230 - 11905: 0x84E8, - 21231 - 11905: 0x84E9, - 21232 - 11905: 0xDBC4, - 21233 - 11905: 0x84EA, - 21234 - 11905: 0x84EB, - 21235 - 11905: 0x84EC, - 21236 - 11905: 0x84ED, - 21237 - 11905: 0x84EE, - 21238 - 11905: 0x84EF, - 21239 - 11905: 0x84F0, - 21240 - 11905: 0x84F1, - 21241 - 11905: 0xD9E8, - 21242 - 11905: 0xC9D7, - 21243 - 11905: 0x84F2, - 21244 - 11905: 0x84F3, - 21245 - 11905: 0x84F4, - 21246 - 11905: 0xB9B4, - 21247 - 11905: 0xCEF0, - 21248 - 11905: 0xD4C8, - 21249 - 11905: 0x84F5, - 21250 - 11905: 0x84F6, - 21251 - 11905: 0x84F7, - 21252 - 11905: 0x84F8, - 21253 - 11905: 0xB0FC, - 21254 - 11905: 0xB4D2, - 21255 - 11905: 0x84F9, - 21256 - 11905: 0xD0D9, - 21257 - 11905: 0x84FA, - 21258 - 11905: 0x84FB, - 21259 - 11905: 0x84FC, - 21260 - 11905: 0x84FD, - 21261 - 11905: 0xD9E9, - 21262 - 11905: 0x84FE, - 21263 - 11905: 0xDECB, - 21264 - 11905: 0xD9EB, - 21265 - 11905: 0x8540, - 21266 - 11905: 0x8541, - 21267 - 11905: 0x8542, - 21268 - 11905: 0x8543, - 21269 - 11905: 0xD8B0, - 21270 - 11905: 0xBBAF, - 21271 - 11905: 0xB1B1, - 21272 - 11905: 0x8544, - 21273 - 11905: 0xB3D7, - 21274 - 11905: 0xD8CE, - 21275 - 11905: 0x8545, - 21276 - 11905: 0x8546, - 21277 - 11905: 0xD4D1, - 21278 - 11905: 0x8547, - 21279 - 11905: 0x8548, - 21280 - 11905: 0xBDB3, - 21281 - 11905: 0xBFEF, - 21282 - 11905: 0x8549, - 21283 - 11905: 0xCFBB, - 21284 - 11905: 0x854A, - 21285 - 11905: 0x854B, - 21286 - 11905: 0xD8D0, - 21287 - 11905: 0x854C, - 21288 - 11905: 0x854D, - 21289 - 11905: 0x854E, - 21290 - 11905: 0xB7CB, - 21291 - 11905: 0x854F, - 21292 - 11905: 0x8550, - 21293 - 11905: 0x8551, - 21294 - 11905: 0xD8D1, - 21295 - 11905: 0x8552, - 21296 - 11905: 0x8553, - 21297 - 11905: 0x8554, - 21298 - 11905: 0x8555, - 21299 - 11905: 0x8556, - 21300 - 11905: 0x8557, - 21301 - 11905: 0x8558, - 21302 - 11905: 0x8559, - 21303 - 11905: 0x855A, - 21304 - 11905: 0x855B, - 21305 - 11905: 0xC6A5, - 21306 - 11905: 0xC7F8, - 21307 - 11905: 0xD2BD, - 21308 - 11905: 0x855C, - 21309 - 11905: 0x855D, - 21310 - 11905: 0xD8D2, - 21311 - 11905: 0xC4E4, - 21312 - 11905: 0x855E, - 21313 - 11905: 0xCAAE, - 21314 - 11905: 0x855F, - 21315 - 11905: 0xC7A7, - 21316 - 11905: 0x8560, - 21317 - 11905: 0xD8A6, - 21318 - 11905: 0x8561, - 21319 - 11905: 0xC9FD, - 21320 - 11905: 0xCEE7, - 21321 - 11905: 0xBBDC, - 21322 - 11905: 0xB0EB, - 21323 - 11905: 0x8562, - 21324 - 11905: 0x8563, - 21325 - 11905: 0x8564, - 21326 - 11905: 0xBBAA, - 21327 - 11905: 0xD0AD, - 21328 - 11905: 0x8565, - 21329 - 11905: 0xB1B0, - 21330 - 11905: 0xD7E4, - 21331 - 11905: 0xD7BF, - 21332 - 11905: 0x8566, - 21333 - 11905: 0xB5A5, - 21334 - 11905: 0xC2F4, - 21335 - 11905: 0xC4CF, - 21336 - 11905: 0x8567, - 21337 - 11905: 0x8568, - 21338 - 11905: 0xB2A9, - 21339 - 11905: 0x8569, - 21340 - 11905: 0xB2B7, - 21341 - 11905: 0x856A, - 21342 - 11905: 0xB1E5, - 21343 - 11905: 0xDFB2, - 21344 - 11905: 0xD5BC, - 21345 - 11905: 0xBFA8, - 21346 - 11905: 0xC2AC, - 21347 - 11905: 0xD8D5, - 21348 - 11905: 0xC2B1, - 21349 - 11905: 0x856B, - 21350 - 11905: 0xD8D4, - 21351 - 11905: 0xCED4, - 21352 - 11905: 0x856C, - 21353 - 11905: 0xDAE0, - 21354 - 11905: 0x856D, - 21355 - 11905: 0xCEC0, - 21356 - 11905: 0x856E, - 21357 - 11905: 0x856F, - 21358 - 11905: 0xD8B4, - 21359 - 11905: 0xC3AE, - 21360 - 11905: 0xD3A1, - 21361 - 11905: 0xCEA3, - 21362 - 11905: 0x8570, - 21363 - 11905: 0xBCB4, - 21364 - 11905: 0xC8B4, - 21365 - 11905: 0xC2D1, - 21366 - 11905: 0x8571, - 21367 - 11905: 0xBEED, - 21368 - 11905: 0xD0B6, - 21369 - 11905: 0x8572, - 21370 - 11905: 0xDAE1, - 21371 - 11905: 0x8573, - 21372 - 11905: 0x8574, - 21373 - 11905: 0x8575, - 21374 - 11905: 0x8576, - 21375 - 11905: 0xC7E4, - 21376 - 11905: 0x8577, - 21377 - 11905: 0x8578, - 21378 - 11905: 0xB3A7, - 21379 - 11905: 0x8579, - 21380 - 11905: 0xB6F2, - 21381 - 11905: 0xCCFC, - 21382 - 11905: 0xC0FA, - 21383 - 11905: 0x857A, - 21384 - 11905: 0x857B, - 21385 - 11905: 0xC0F7, - 21386 - 11905: 0x857C, - 21387 - 11905: 0xD1B9, - 21388 - 11905: 0xD1E1, - 21389 - 11905: 0xD8C7, - 21390 - 11905: 0x857D, - 21391 - 11905: 0x857E, - 21392 - 11905: 0x8580, - 21393 - 11905: 0x8581, - 21394 - 11905: 0x8582, - 21395 - 11905: 0x8583, - 21396 - 11905: 0x8584, - 21397 - 11905: 0xB2DE, - 21398 - 11905: 0x8585, - 21399 - 11905: 0x8586, - 21400 - 11905: 0xC0E5, - 21401 - 11905: 0x8587, - 21402 - 11905: 0xBAF1, - 21403 - 11905: 0x8588, - 21404 - 11905: 0x8589, - 21405 - 11905: 0xD8C8, - 21406 - 11905: 0x858A, - 21407 - 11905: 0xD4AD, - 21408 - 11905: 0x858B, - 21409 - 11905: 0x858C, - 21410 - 11905: 0xCFE1, - 21411 - 11905: 0xD8C9, - 21412 - 11905: 0x858D, - 21413 - 11905: 0xD8CA, - 21414 - 11905: 0xCFC3, - 21415 - 11905: 0x858E, - 21416 - 11905: 0xB3F8, - 21417 - 11905: 0xBEC7, - 21418 - 11905: 0x858F, - 21419 - 11905: 0x8590, - 21420 - 11905: 0x8591, - 21421 - 11905: 0x8592, - 21422 - 11905: 0xD8CB, - 21423 - 11905: 0x8593, - 21424 - 11905: 0x8594, - 21425 - 11905: 0x8595, - 21426 - 11905: 0x8596, - 21427 - 11905: 0x8597, - 21428 - 11905: 0x8598, - 21429 - 11905: 0x8599, - 21430 - 11905: 0xDBCC, - 21431 - 11905: 0x859A, - 21432 - 11905: 0x859B, - 21433 - 11905: 0x859C, - 21434 - 11905: 0x859D, - 21435 - 11905: 0xC8A5, - 21436 - 11905: 0x859E, - 21437 - 11905: 0x859F, - 21438 - 11905: 0x85A0, - 21439 - 11905: 0xCFD8, - 21440 - 11905: 0x85A1, - 21441 - 11905: 0xC8FE, - 21442 - 11905: 0xB2CE, - 21443 - 11905: 0x85A2, - 21444 - 11905: 0x85A3, - 21445 - 11905: 0x85A4, - 21446 - 11905: 0x85A5, - 21447 - 11905: 0x85A6, - 21448 - 11905: 0xD3D6, - 21449 - 11905: 0xB2E6, - 21450 - 11905: 0xBCB0, - 21451 - 11905: 0xD3D1, - 21452 - 11905: 0xCBAB, - 21453 - 11905: 0xB7B4, - 21454 - 11905: 0x85A7, - 21455 - 11905: 0x85A8, - 21456 - 11905: 0x85A9, - 21457 - 11905: 0xB7A2, - 21458 - 11905: 0x85AA, - 21459 - 11905: 0x85AB, - 21460 - 11905: 0xCAE5, - 21461 - 11905: 0x85AC, - 21462 - 11905: 0xC8A1, - 21463 - 11905: 0xCADC, - 21464 - 11905: 0xB1E4, - 21465 - 11905: 0xD0F0, - 21466 - 11905: 0x85AD, - 21467 - 11905: 0xC5D1, - 21468 - 11905: 0x85AE, - 21469 - 11905: 0x85AF, - 21470 - 11905: 0x85B0, - 21471 - 11905: 0xDBC5, - 21472 - 11905: 0xB5FE, - 21473 - 11905: 0x85B1, - 21474 - 11905: 0x85B2, - 21475 - 11905: 0xBFDA, - 21476 - 11905: 0xB9C5, - 21477 - 11905: 0xBEE4, - 21478 - 11905: 0xC1ED, - 21479 - 11905: 0x85B3, - 21480 - 11905: 0xDFB6, - 21481 - 11905: 0xDFB5, - 21482 - 11905: 0xD6BB, - 21483 - 11905: 0xBDD0, - 21484 - 11905: 0xD5D9, - 21485 - 11905: 0xB0C8, - 21486 - 11905: 0xB6A3, - 21487 - 11905: 0xBFC9, - 21488 - 11905: 0xCCA8, - 21489 - 11905: 0xDFB3, - 21490 - 11905: 0xCAB7, - 21491 - 11905: 0xD3D2, - 21492 - 11905: 0x85B4, - 21493 - 11905: 0xD8CF, - 21494 - 11905: 0xD2B6, - 21495 - 11905: 0xBAC5, - 21496 - 11905: 0xCBBE, - 21497 - 11905: 0xCCBE, - 21498 - 11905: 0x85B5, - 21499 - 11905: 0xDFB7, - 21500 - 11905: 0xB5F0, - 21501 - 11905: 0xDFB4, - 21502 - 11905: 0x85B6, - 21503 - 11905: 0x85B7, - 21504 - 11905: 0x85B8, - 21505 - 11905: 0xD3F5, - 21506 - 11905: 0x85B9, - 21507 - 11905: 0xB3D4, - 21508 - 11905: 0xB8F7, - 21509 - 11905: 0x85BA, - 21510 - 11905: 0xDFBA, - 21511 - 11905: 0x85BB, - 21512 - 11905: 0xBACF, - 21513 - 11905: 0xBCAA, - 21514 - 11905: 0xB5F5, - 21515 - 11905: 0x85BC, - 21516 - 11905: 0xCDAC, - 21517 - 11905: 0xC3FB, - 21518 - 11905: 0xBAF3, - 21519 - 11905: 0xC0F4, - 21520 - 11905: 0xCDC2, - 21521 - 11905: 0xCFF2, - 21522 - 11905: 0xDFB8, - 21523 - 11905: 0xCFC5, - 21524 - 11905: 0x85BD, - 21525 - 11905: 0xC2C0, - 21526 - 11905: 0xDFB9, - 21527 - 11905: 0xC2F0, - 21528 - 11905: 0x85BE, - 21529 - 11905: 0x85BF, - 21530 - 11905: 0x85C0, - 21531 - 11905: 0xBEFD, - 21532 - 11905: 0x85C1, - 21533 - 11905: 0xC1DF, - 21534 - 11905: 0xCDCC, - 21535 - 11905: 0xD2F7, - 21536 - 11905: 0xB7CD, - 21537 - 11905: 0xDFC1, - 21538 - 11905: 0x85C2, - 21539 - 11905: 0xDFC4, - 21540 - 11905: 0x85C3, - 21541 - 11905: 0x85C4, - 21542 - 11905: 0xB7F1, - 21543 - 11905: 0xB0C9, - 21544 - 11905: 0xB6D6, - 21545 - 11905: 0xB7D4, - 21546 - 11905: 0x85C5, - 21547 - 11905: 0xBAAC, - 21548 - 11905: 0xCCFD, - 21549 - 11905: 0xBFD4, - 21550 - 11905: 0xCBB1, - 21551 - 11905: 0xC6F4, - 21552 - 11905: 0x85C6, - 21553 - 11905: 0xD6A8, - 21554 - 11905: 0xDFC5, - 21555 - 11905: 0x85C7, - 21556 - 11905: 0xCEE2, - 21557 - 11905: 0xB3B3, - 21558 - 11905: 0x85C8, - 21559 - 11905: 0x85C9, - 21560 - 11905: 0xCEFC, - 21561 - 11905: 0xB4B5, - 21562 - 11905: 0x85CA, - 21563 - 11905: 0xCEC7, - 21564 - 11905: 0xBAF0, - 21565 - 11905: 0x85CB, - 21566 - 11905: 0xCEE1, - 21567 - 11905: 0x85CC, - 21568 - 11905: 0xD1BD, - 21569 - 11905: 0x85CD, - 21570 - 11905: 0x85CE, - 21571 - 11905: 0xDFC0, - 21572 - 11905: 0x85CF, - 21573 - 11905: 0x85D0, - 21574 - 11905: 0xB4F4, - 21575 - 11905: 0x85D1, - 21576 - 11905: 0xB3CA, - 21577 - 11905: 0x85D2, - 21578 - 11905: 0xB8E6, - 21579 - 11905: 0xDFBB, - 21580 - 11905: 0x85D3, - 21581 - 11905: 0x85D4, - 21582 - 11905: 0x85D5, - 21583 - 11905: 0x85D6, - 21584 - 11905: 0xC4C5, - 21585 - 11905: 0x85D7, - 21586 - 11905: 0xDFBC, - 21587 - 11905: 0xDFBD, - 21588 - 11905: 0xDFBE, - 21589 - 11905: 0xC5BB, - 21590 - 11905: 0xDFBF, - 21591 - 11905: 0xDFC2, - 21592 - 11905: 0xD4B1, - 21593 - 11905: 0xDFC3, - 21594 - 11905: 0x85D8, - 21595 - 11905: 0xC7BA, - 21596 - 11905: 0xCED8, - 21597 - 11905: 0x85D9, - 21598 - 11905: 0x85DA, - 21599 - 11905: 0x85DB, - 21600 - 11905: 0x85DC, - 21601 - 11905: 0x85DD, - 21602 - 11905: 0xC4D8, - 21603 - 11905: 0x85DE, - 21604 - 11905: 0xDFCA, - 21605 - 11905: 0x85DF, - 21606 - 11905: 0xDFCF, - 21607 - 11905: 0x85E0, - 21608 - 11905: 0xD6DC, - 21609 - 11905: 0x85E1, - 21610 - 11905: 0x85E2, - 21611 - 11905: 0x85E3, - 21612 - 11905: 0x85E4, - 21613 - 11905: 0x85E5, - 21614 - 11905: 0x85E6, - 21615 - 11905: 0x85E7, - 21616 - 11905: 0x85E8, - 21617 - 11905: 0xDFC9, - 21618 - 11905: 0xDFDA, - 21619 - 11905: 0xCEB6, - 21620 - 11905: 0x85E9, - 21621 - 11905: 0xBAC7, - 21622 - 11905: 0xDFCE, - 21623 - 11905: 0xDFC8, - 21624 - 11905: 0xC5DE, - 21625 - 11905: 0x85EA, - 21626 - 11905: 0x85EB, - 21627 - 11905: 0xC9EB, - 21628 - 11905: 0xBAF4, - 21629 - 11905: 0xC3FC, - 21630 - 11905: 0x85EC, - 21631 - 11905: 0x85ED, - 21632 - 11905: 0xBED7, - 21633 - 11905: 0x85EE, - 21634 - 11905: 0xDFC6, - 21635 - 11905: 0x85EF, - 21636 - 11905: 0xDFCD, - 21637 - 11905: 0x85F0, - 21638 - 11905: 0xC5D8, - 21639 - 11905: 0x85F1, - 21640 - 11905: 0x85F2, - 21641 - 11905: 0x85F3, - 21642 - 11905: 0x85F4, - 21643 - 11905: 0xD5A6, - 21644 - 11905: 0xBACD, - 21645 - 11905: 0x85F5, - 21646 - 11905: 0xBECC, - 21647 - 11905: 0xD3BD, - 21648 - 11905: 0xB8C0, - 21649 - 11905: 0x85F6, - 21650 - 11905: 0xD6E4, - 21651 - 11905: 0x85F7, - 21652 - 11905: 0xDFC7, - 21653 - 11905: 0xB9BE, - 21654 - 11905: 0xBFA7, - 21655 - 11905: 0x85F8, - 21656 - 11905: 0x85F9, - 21657 - 11905: 0xC1FC, - 21658 - 11905: 0xDFCB, - 21659 - 11905: 0xDFCC, - 21660 - 11905: 0x85FA, - 21661 - 11905: 0xDFD0, - 21662 - 11905: 0x85FB, - 21663 - 11905: 0x85FC, - 21664 - 11905: 0x85FD, - 21665 - 11905: 0x85FE, - 21666 - 11905: 0x8640, - 21667 - 11905: 0xDFDB, - 21668 - 11905: 0xDFE5, - 21669 - 11905: 0x8641, - 21670 - 11905: 0xDFD7, - 21671 - 11905: 0xDFD6, - 21672 - 11905: 0xD7C9, - 21673 - 11905: 0xDFE3, - 21674 - 11905: 0xDFE4, - 21675 - 11905: 0xE5EB, - 21676 - 11905: 0xD2A7, - 21677 - 11905: 0xDFD2, - 21678 - 11905: 0x8642, - 21679 - 11905: 0xBFA9, - 21680 - 11905: 0x8643, - 21681 - 11905: 0xD4DB, - 21682 - 11905: 0x8644, - 21683 - 11905: 0xBFC8, - 21684 - 11905: 0xDFD4, - 21685 - 11905: 0x8645, - 21686 - 11905: 0x8646, - 21687 - 11905: 0x8647, - 21688 - 11905: 0xCFCC, - 21689 - 11905: 0x8648, - 21690 - 11905: 0x8649, - 21691 - 11905: 0xDFDD, - 21692 - 11905: 0x864A, - 21693 - 11905: 0xD1CA, - 21694 - 11905: 0x864B, - 21695 - 11905: 0xDFDE, - 21696 - 11905: 0xB0A7, - 21697 - 11905: 0xC6B7, - 21698 - 11905: 0xDFD3, - 21699 - 11905: 0x864C, - 21700 - 11905: 0xBAE5, - 21701 - 11905: 0x864D, - 21702 - 11905: 0xB6DF, - 21703 - 11905: 0xCDDB, - 21704 - 11905: 0xB9FE, - 21705 - 11905: 0xD4D5, - 21706 - 11905: 0x864E, - 21707 - 11905: 0x864F, - 21708 - 11905: 0xDFDF, - 21709 - 11905: 0xCFEC, - 21710 - 11905: 0xB0A5, - 21711 - 11905: 0xDFE7, - 21712 - 11905: 0xDFD1, - 21713 - 11905: 0xD1C6, - 21714 - 11905: 0xDFD5, - 21715 - 11905: 0xDFD8, - 21716 - 11905: 0xDFD9, - 21717 - 11905: 0xDFDC, - 21718 - 11905: 0x8650, - 21719 - 11905: 0xBBA9, - 21720 - 11905: 0x8651, - 21721 - 11905: 0xDFE0, - 21722 - 11905: 0xDFE1, - 21723 - 11905: 0x8652, - 21724 - 11905: 0xDFE2, - 21725 - 11905: 0xDFE6, - 21726 - 11905: 0xDFE8, - 21727 - 11905: 0xD3B4, - 21728 - 11905: 0x8653, - 21729 - 11905: 0x8654, - 21730 - 11905: 0x8655, - 21731 - 11905: 0x8656, - 21732 - 11905: 0x8657, - 21733 - 11905: 0xB8E7, - 21734 - 11905: 0xC5B6, - 21735 - 11905: 0xDFEA, - 21736 - 11905: 0xC9DA, - 21737 - 11905: 0xC1A8, - 21738 - 11905: 0xC4C4, - 21739 - 11905: 0x8658, - 21740 - 11905: 0x8659, - 21741 - 11905: 0xBFDE, - 21742 - 11905: 0xCFF8, - 21743 - 11905: 0x865A, - 21744 - 11905: 0x865B, - 21745 - 11905: 0x865C, - 21746 - 11905: 0xD5DC, - 21747 - 11905: 0xDFEE, - 21748 - 11905: 0x865D, - 21749 - 11905: 0x865E, - 21750 - 11905: 0x865F, - 21751 - 11905: 0x8660, - 21752 - 11905: 0x8661, - 21753 - 11905: 0x8662, - 21754 - 11905: 0xB2B8, - 21755 - 11905: 0x8663, - 21756 - 11905: 0xBADF, - 21757 - 11905: 0xDFEC, - 21758 - 11905: 0x8664, - 21759 - 11905: 0xDBC1, - 21760 - 11905: 0x8665, - 21761 - 11905: 0xD1E4, - 21762 - 11905: 0x8666, - 21763 - 11905: 0x8667, - 21764 - 11905: 0x8668, - 21765 - 11905: 0x8669, - 21766 - 11905: 0xCBF4, - 21767 - 11905: 0xB4BD, - 21768 - 11905: 0x866A, - 21769 - 11905: 0xB0A6, - 21770 - 11905: 0x866B, - 21771 - 11905: 0x866C, - 21772 - 11905: 0x866D, - 21773 - 11905: 0x866E, - 21774 - 11905: 0x866F, - 21775 - 11905: 0xDFF1, - 21776 - 11905: 0xCCC6, - 21777 - 11905: 0xDFF2, - 21778 - 11905: 0x8670, - 21779 - 11905: 0x8671, - 21780 - 11905: 0xDFED, - 21781 - 11905: 0x8672, - 21782 - 11905: 0x8673, - 21783 - 11905: 0x8674, - 21784 - 11905: 0x8675, - 21785 - 11905: 0x8676, - 21786 - 11905: 0x8677, - 21787 - 11905: 0xDFE9, - 21788 - 11905: 0x8678, - 21789 - 11905: 0x8679, - 21790 - 11905: 0x867A, - 21791 - 11905: 0x867B, - 21792 - 11905: 0xDFEB, - 21793 - 11905: 0x867C, - 21794 - 11905: 0xDFEF, - 21795 - 11905: 0xDFF0, - 21796 - 11905: 0xBBBD, - 21797 - 11905: 0x867D, - 21798 - 11905: 0x867E, - 21799 - 11905: 0xDFF3, - 21800 - 11905: 0x8680, - 21801 - 11905: 0x8681, - 21802 - 11905: 0xDFF4, - 21803 - 11905: 0x8682, - 21804 - 11905: 0xBBA3, - 21805 - 11905: 0x8683, - 21806 - 11905: 0xCADB, - 21807 - 11905: 0xCEA8, - 21808 - 11905: 0xE0A7, - 21809 - 11905: 0xB3AA, - 21810 - 11905: 0x8684, - 21811 - 11905: 0xE0A6, - 21812 - 11905: 0x8685, - 21813 - 11905: 0x8686, - 21814 - 11905: 0x8687, - 21815 - 11905: 0xE0A1, - 21816 - 11905: 0x8688, - 21817 - 11905: 0x8689, - 21818 - 11905: 0x868A, - 21819 - 11905: 0x868B, - 21820 - 11905: 0xDFFE, - 21821 - 11905: 0x868C, - 21822 - 11905: 0xCDD9, - 21823 - 11905: 0xDFFC, - 21824 - 11905: 0x868D, - 21825 - 11905: 0xDFFA, - 21826 - 11905: 0x868E, - 21827 - 11905: 0xBFD0, - 21828 - 11905: 0xD7C4, - 21829 - 11905: 0x868F, - 21830 - 11905: 0xC9CC, - 21831 - 11905: 0x8690, - 21832 - 11905: 0x8691, - 21833 - 11905: 0xDFF8, - 21834 - 11905: 0xB0A1, - 21835 - 11905: 0x8692, - 21836 - 11905: 0x8693, - 21837 - 11905: 0x8694, - 21838 - 11905: 0x8695, - 21839 - 11905: 0x8696, - 21840 - 11905: 0xDFFD, - 21841 - 11905: 0x8697, - 21842 - 11905: 0x8698, - 21843 - 11905: 0x8699, - 21844 - 11905: 0x869A, - 21845 - 11905: 0xDFFB, - 21846 - 11905: 0xE0A2, - 21847 - 11905: 0x869B, - 21848 - 11905: 0x869C, - 21849 - 11905: 0x869D, - 21850 - 11905: 0x869E, - 21851 - 11905: 0x869F, - 21852 - 11905: 0xE0A8, - 21853 - 11905: 0x86A0, - 21854 - 11905: 0x86A1, - 21855 - 11905: 0x86A2, - 21856 - 11905: 0x86A3, - 21857 - 11905: 0xB7C8, - 21858 - 11905: 0x86A4, - 21859 - 11905: 0x86A5, - 21860 - 11905: 0xC6A1, - 21861 - 11905: 0xC9B6, - 21862 - 11905: 0xC0B2, - 21863 - 11905: 0xDFF5, - 21864 - 11905: 0x86A6, - 21865 - 11905: 0x86A7, - 21866 - 11905: 0xC5BE, - 21867 - 11905: 0x86A8, - 21868 - 11905: 0xD8C4, - 21869 - 11905: 0xDFF9, - 21870 - 11905: 0xC4F6, - 21871 - 11905: 0x86A9, - 21872 - 11905: 0x86AA, - 21873 - 11905: 0x86AB, - 21874 - 11905: 0x86AC, - 21875 - 11905: 0x86AD, - 21876 - 11905: 0x86AE, - 21877 - 11905: 0xE0A3, - 21878 - 11905: 0xE0A4, - 21879 - 11905: 0xE0A5, - 21880 - 11905: 0xD0A5, - 21881 - 11905: 0x86AF, - 21882 - 11905: 0x86B0, - 21883 - 11905: 0xE0B4, - 21884 - 11905: 0xCCE4, - 21885 - 11905: 0x86B1, - 21886 - 11905: 0xE0B1, - 21887 - 11905: 0x86B2, - 21888 - 11905: 0xBFA6, - 21889 - 11905: 0xE0AF, - 21890 - 11905: 0xCEB9, - 21891 - 11905: 0xE0AB, - 21892 - 11905: 0xC9C6, - 21893 - 11905: 0x86B3, - 21894 - 11905: 0x86B4, - 21895 - 11905: 0xC0AE, - 21896 - 11905: 0xE0AE, - 21897 - 11905: 0xBAED, - 21898 - 11905: 0xBAB0, - 21899 - 11905: 0xE0A9, - 21900 - 11905: 0x86B5, - 21901 - 11905: 0x86B6, - 21902 - 11905: 0x86B7, - 21903 - 11905: 0xDFF6, - 21904 - 11905: 0x86B8, - 21905 - 11905: 0xE0B3, - 21906 - 11905: 0x86B9, - 21907 - 11905: 0x86BA, - 21908 - 11905: 0xE0B8, - 21909 - 11905: 0x86BB, - 21910 - 11905: 0x86BC, - 21911 - 11905: 0x86BD, - 21912 - 11905: 0xB4AD, - 21913 - 11905: 0xE0B9, - 21914 - 11905: 0x86BE, - 21915 - 11905: 0x86BF, - 21916 - 11905: 0xCFB2, - 21917 - 11905: 0xBAC8, - 21918 - 11905: 0x86C0, - 21919 - 11905: 0xE0B0, - 21920 - 11905: 0x86C1, - 21921 - 11905: 0x86C2, - 21922 - 11905: 0x86C3, - 21923 - 11905: 0x86C4, - 21924 - 11905: 0x86C5, - 21925 - 11905: 0x86C6, - 21926 - 11905: 0x86C7, - 21927 - 11905: 0xD0FA, - 21928 - 11905: 0x86C8, - 21929 - 11905: 0x86C9, - 21930 - 11905: 0x86CA, - 21931 - 11905: 0x86CB, - 21932 - 11905: 0x86CC, - 21933 - 11905: 0x86CD, - 21934 - 11905: 0x86CE, - 21935 - 11905: 0x86CF, - 21936 - 11905: 0x86D0, - 21937 - 11905: 0xE0AC, - 21938 - 11905: 0x86D1, - 21939 - 11905: 0xD4FB, - 21940 - 11905: 0x86D2, - 21941 - 11905: 0xDFF7, - 21942 - 11905: 0x86D3, - 21943 - 11905: 0xC5E7, - 21944 - 11905: 0x86D4, - 21945 - 11905: 0xE0AD, - 21946 - 11905: 0x86D5, - 21947 - 11905: 0xD3F7, - 21948 - 11905: 0x86D6, - 21949 - 11905: 0xE0B6, - 21950 - 11905: 0xE0B7, - 21951 - 11905: 0x86D7, - 21952 - 11905: 0x86D8, - 21953 - 11905: 0x86D9, - 21954 - 11905: 0x86DA, - 21955 - 11905: 0x86DB, - 21956 - 11905: 0xE0C4, - 21957 - 11905: 0xD0E1, - 21958 - 11905: 0x86DC, - 21959 - 11905: 0x86DD, - 21960 - 11905: 0x86DE, - 21961 - 11905: 0xE0BC, - 21962 - 11905: 0x86DF, - 21963 - 11905: 0x86E0, - 21964 - 11905: 0xE0C9, - 21965 - 11905: 0xE0CA, - 21966 - 11905: 0x86E1, - 21967 - 11905: 0x86E2, - 21968 - 11905: 0x86E3, - 21969 - 11905: 0xE0BE, - 21970 - 11905: 0xE0AA, - 21971 - 11905: 0xC9A4, - 21972 - 11905: 0xE0C1, - 21973 - 11905: 0x86E4, - 21974 - 11905: 0xE0B2, - 21975 - 11905: 0x86E5, - 21976 - 11905: 0x86E6, - 21977 - 11905: 0x86E7, - 21978 - 11905: 0x86E8, - 21979 - 11905: 0x86E9, - 21980 - 11905: 0xCAC8, - 21981 - 11905: 0xE0C3, - 21982 - 11905: 0x86EA, - 21983 - 11905: 0xE0B5, - 21984 - 11905: 0x86EB, - 21985 - 11905: 0xCECB, - 21986 - 11905: 0x86EC, - 21987 - 11905: 0xCBC3, - 21988 - 11905: 0xE0CD, - 21989 - 11905: 0xE0C6, - 21990 - 11905: 0xE0C2, - 21991 - 11905: 0x86ED, - 21992 - 11905: 0xE0CB, - 21993 - 11905: 0x86EE, - 21994 - 11905: 0xE0BA, - 21995 - 11905: 0xE0BF, - 21996 - 11905: 0xE0C0, - 21997 - 11905: 0x86EF, - 21998 - 11905: 0x86F0, - 21999 - 11905: 0xE0C5, - 22000 - 11905: 0x86F1, - 22001 - 11905: 0x86F2, - 22002 - 11905: 0xE0C7, - 22003 - 11905: 0xE0C8, - 22004 - 11905: 0x86F3, - 22005 - 11905: 0xE0CC, - 22006 - 11905: 0x86F4, - 22007 - 11905: 0xE0BB, - 22008 - 11905: 0x86F5, - 22009 - 11905: 0x86F6, - 22010 - 11905: 0x86F7, - 22011 - 11905: 0x86F8, - 22012 - 11905: 0x86F9, - 22013 - 11905: 0xCBD4, - 22014 - 11905: 0xE0D5, - 22015 - 11905: 0x86FA, - 22016 - 11905: 0xE0D6, - 22017 - 11905: 0xE0D2, - 22018 - 11905: 0x86FB, - 22019 - 11905: 0x86FC, - 22020 - 11905: 0x86FD, - 22021 - 11905: 0x86FE, - 22022 - 11905: 0x8740, - 22023 - 11905: 0x8741, - 22024 - 11905: 0xE0D0, - 22025 - 11905: 0xBCCE, - 22026 - 11905: 0x8742, - 22027 - 11905: 0x8743, - 22028 - 11905: 0xE0D1, - 22029 - 11905: 0x8744, - 22030 - 11905: 0xB8C2, - 22031 - 11905: 0xD8C5, - 22032 - 11905: 0x8745, - 22033 - 11905: 0x8746, - 22034 - 11905: 0x8747, - 22035 - 11905: 0x8748, - 22036 - 11905: 0x8749, - 22037 - 11905: 0x874A, - 22038 - 11905: 0x874B, - 22039 - 11905: 0x874C, - 22040 - 11905: 0xD0EA, - 22041 - 11905: 0x874D, - 22042 - 11905: 0x874E, - 22043 - 11905: 0xC2EF, - 22044 - 11905: 0x874F, - 22045 - 11905: 0x8750, - 22046 - 11905: 0xE0CF, - 22047 - 11905: 0xE0BD, - 22048 - 11905: 0x8751, - 22049 - 11905: 0x8752, - 22050 - 11905: 0x8753, - 22051 - 11905: 0xE0D4, - 22052 - 11905: 0xE0D3, - 22053 - 11905: 0x8754, - 22054 - 11905: 0x8755, - 22055 - 11905: 0xE0D7, - 22056 - 11905: 0x8756, - 22057 - 11905: 0x8757, - 22058 - 11905: 0x8758, - 22059 - 11905: 0x8759, - 22060 - 11905: 0xE0DC, - 22061 - 11905: 0xE0D8, - 22062 - 11905: 0x875A, - 22063 - 11905: 0x875B, - 22064 - 11905: 0x875C, - 22065 - 11905: 0xD6F6, - 22066 - 11905: 0xB3B0, - 22067 - 11905: 0x875D, - 22068 - 11905: 0xD7EC, - 22069 - 11905: 0x875E, - 22070 - 11905: 0xCBBB, - 22071 - 11905: 0x875F, - 22072 - 11905: 0x8760, - 22073 - 11905: 0xE0DA, - 22074 - 11905: 0x8761, - 22075 - 11905: 0xCEFB, - 22076 - 11905: 0x8762, - 22077 - 11905: 0x8763, - 22078 - 11905: 0x8764, - 22079 - 11905: 0xBAD9, - 22080 - 11905: 0x8765, - 22081 - 11905: 0x8766, - 22082 - 11905: 0x8767, - 22083 - 11905: 0x8768, - 22084 - 11905: 0x8769, - 22085 - 11905: 0x876A, - 22086 - 11905: 0x876B, - 22087 - 11905: 0x876C, - 22088 - 11905: 0x876D, - 22089 - 11905: 0x876E, - 22090 - 11905: 0x876F, - 22091 - 11905: 0x8770, - 22092 - 11905: 0xE0E1, - 22093 - 11905: 0xE0DD, - 22094 - 11905: 0xD2AD, - 22095 - 11905: 0x8771, - 22096 - 11905: 0x8772, - 22097 - 11905: 0x8773, - 22098 - 11905: 0x8774, - 22099 - 11905: 0x8775, - 22100 - 11905: 0xE0E2, - 22101 - 11905: 0x8776, - 22102 - 11905: 0x8777, - 22103 - 11905: 0xE0DB, - 22104 - 11905: 0xE0D9, - 22105 - 11905: 0xE0DF, - 22106 - 11905: 0x8778, - 22107 - 11905: 0x8779, - 22108 - 11905: 0xE0E0, - 22109 - 11905: 0x877A, - 22110 - 11905: 0x877B, - 22111 - 11905: 0x877C, - 22112 - 11905: 0x877D, - 22113 - 11905: 0x877E, - 22114 - 11905: 0xE0DE, - 22115 - 11905: 0x8780, - 22116 - 11905: 0xE0E4, - 22117 - 11905: 0x8781, - 22118 - 11905: 0x8782, - 22119 - 11905: 0x8783, - 22120 - 11905: 0xC6F7, - 22121 - 11905: 0xD8AC, - 22122 - 11905: 0xD4EB, - 22123 - 11905: 0xE0E6, - 22124 - 11905: 0xCAC9, - 22125 - 11905: 0x8784, - 22126 - 11905: 0x8785, - 22127 - 11905: 0x8786, - 22128 - 11905: 0x8787, - 22129 - 11905: 0xE0E5, - 22130 - 11905: 0x8788, - 22131 - 11905: 0x8789, - 22132 - 11905: 0x878A, - 22133 - 11905: 0x878B, - 22134 - 11905: 0xB8C1, - 22135 - 11905: 0x878C, - 22136 - 11905: 0x878D, - 22137 - 11905: 0x878E, - 22138 - 11905: 0x878F, - 22139 - 11905: 0xE0E7, - 22140 - 11905: 0xE0E8, - 22141 - 11905: 0x8790, - 22142 - 11905: 0x8791, - 22143 - 11905: 0x8792, - 22144 - 11905: 0x8793, - 22145 - 11905: 0x8794, - 22146 - 11905: 0x8795, - 22147 - 11905: 0x8796, - 22148 - 11905: 0x8797, - 22149 - 11905: 0xE0E9, - 22150 - 11905: 0xE0E3, - 22151 - 11905: 0x8798, - 22152 - 11905: 0x8799, - 22153 - 11905: 0x879A, - 22154 - 11905: 0x879B, - 22155 - 11905: 0x879C, - 22156 - 11905: 0x879D, - 22157 - 11905: 0x879E, - 22158 - 11905: 0xBABF, - 22159 - 11905: 0xCCE7, - 22160 - 11905: 0x879F, - 22161 - 11905: 0x87A0, - 22162 - 11905: 0x87A1, - 22163 - 11905: 0xE0EA, - 22164 - 11905: 0x87A2, - 22165 - 11905: 0x87A3, - 22166 - 11905: 0x87A4, - 22167 - 11905: 0x87A5, - 22168 - 11905: 0x87A6, - 22169 - 11905: 0x87A7, - 22170 - 11905: 0x87A8, - 22171 - 11905: 0x87A9, - 22172 - 11905: 0x87AA, - 22173 - 11905: 0x87AB, - 22174 - 11905: 0x87AC, - 22175 - 11905: 0x87AD, - 22176 - 11905: 0x87AE, - 22177 - 11905: 0x87AF, - 22178 - 11905: 0x87B0, - 22179 - 11905: 0xCFF9, - 22180 - 11905: 0x87B1, - 22181 - 11905: 0x87B2, - 22182 - 11905: 0x87B3, - 22183 - 11905: 0x87B4, - 22184 - 11905: 0x87B5, - 22185 - 11905: 0x87B6, - 22186 - 11905: 0x87B7, - 22187 - 11905: 0x87B8, - 22188 - 11905: 0x87B9, - 22189 - 11905: 0x87BA, - 22190 - 11905: 0x87BB, - 22191 - 11905: 0xE0EB, - 22192 - 11905: 0x87BC, - 22193 - 11905: 0x87BD, - 22194 - 11905: 0x87BE, - 22195 - 11905: 0x87BF, - 22196 - 11905: 0x87C0, - 22197 - 11905: 0x87C1, - 22198 - 11905: 0x87C2, - 22199 - 11905: 0xC8C2, - 22200 - 11905: 0x87C3, - 22201 - 11905: 0x87C4, - 22202 - 11905: 0x87C5, - 22203 - 11905: 0x87C6, - 22204 - 11905: 0xBDC0, - 22205 - 11905: 0x87C7, - 22206 - 11905: 0x87C8, - 22207 - 11905: 0x87C9, - 22208 - 11905: 0x87CA, - 22209 - 11905: 0x87CB, - 22210 - 11905: 0x87CC, - 22211 - 11905: 0x87CD, - 22212 - 11905: 0x87CE, - 22213 - 11905: 0x87CF, - 22214 - 11905: 0x87D0, - 22215 - 11905: 0x87D1, - 22216 - 11905: 0x87D2, - 22217 - 11905: 0x87D3, - 22218 - 11905: 0xC4D2, - 22219 - 11905: 0x87D4, - 22220 - 11905: 0x87D5, - 22221 - 11905: 0x87D6, - 22222 - 11905: 0x87D7, - 22223 - 11905: 0x87D8, - 22224 - 11905: 0x87D9, - 22225 - 11905: 0x87DA, - 22226 - 11905: 0x87DB, - 22227 - 11905: 0x87DC, - 22228 - 11905: 0xE0EC, - 22229 - 11905: 0x87DD, - 22230 - 11905: 0x87DE, - 22231 - 11905: 0xE0ED, - 22232 - 11905: 0x87DF, - 22233 - 11905: 0x87E0, - 22234 - 11905: 0xC7F4, - 22235 - 11905: 0xCBC4, - 22236 - 11905: 0x87E1, - 22237 - 11905: 0xE0EE, - 22238 - 11905: 0xBBD8, - 22239 - 11905: 0xD8B6, - 22240 - 11905: 0xD2F2, - 22241 - 11905: 0xE0EF, - 22242 - 11905: 0xCDC5, - 22243 - 11905: 0x87E2, - 22244 - 11905: 0xB6DA, - 22245 - 11905: 0x87E3, - 22246 - 11905: 0x87E4, - 22247 - 11905: 0x87E5, - 22248 - 11905: 0x87E6, - 22249 - 11905: 0x87E7, - 22250 - 11905: 0x87E8, - 22251 - 11905: 0xE0F1, - 22252 - 11905: 0x87E9, - 22253 - 11905: 0xD4B0, - 22254 - 11905: 0x87EA, - 22255 - 11905: 0x87EB, - 22256 - 11905: 0xC0A7, - 22257 - 11905: 0xB4D1, - 22258 - 11905: 0x87EC, - 22259 - 11905: 0x87ED, - 22260 - 11905: 0xCEA7, - 22261 - 11905: 0xE0F0, - 22262 - 11905: 0x87EE, - 22263 - 11905: 0x87EF, - 22264 - 11905: 0x87F0, - 22265 - 11905: 0xE0F2, - 22266 - 11905: 0xB9CC, - 22267 - 11905: 0x87F1, - 22268 - 11905: 0x87F2, - 22269 - 11905: 0xB9FA, - 22270 - 11905: 0xCDBC, - 22271 - 11905: 0xE0F3, - 22272 - 11905: 0x87F3, - 22273 - 11905: 0x87F4, - 22274 - 11905: 0x87F5, - 22275 - 11905: 0xC6D4, - 22276 - 11905: 0xE0F4, - 22277 - 11905: 0x87F6, - 22278 - 11905: 0xD4B2, - 22279 - 11905: 0x87F7, - 22280 - 11905: 0xC8A6, - 22281 - 11905: 0xE0F6, - 22282 - 11905: 0xE0F5, - 22283 - 11905: 0x87F8, - 22284 - 11905: 0x87F9, - 22285 - 11905: 0x87FA, - 22286 - 11905: 0x87FB, - 22287 - 11905: 0x87FC, - 22288 - 11905: 0x87FD, - 22289 - 11905: 0x87FE, - 22290 - 11905: 0x8840, - 22291 - 11905: 0x8841, - 22292 - 11905: 0x8842, - 22293 - 11905: 0x8843, - 22294 - 11905: 0x8844, - 22295 - 11905: 0x8845, - 22296 - 11905: 0x8846, - 22297 - 11905: 0x8847, - 22298 - 11905: 0x8848, - 22299 - 11905: 0x8849, - 22300 - 11905: 0xE0F7, - 22301 - 11905: 0x884A, - 22302 - 11905: 0x884B, - 22303 - 11905: 0xCDC1, - 22304 - 11905: 0x884C, - 22305 - 11905: 0x884D, - 22306 - 11905: 0x884E, - 22307 - 11905: 0xCAA5, - 22308 - 11905: 0x884F, - 22309 - 11905: 0x8850, - 22310 - 11905: 0x8851, - 22311 - 11905: 0x8852, - 22312 - 11905: 0xD4DA, - 22313 - 11905: 0xDBD7, - 22314 - 11905: 0xDBD9, - 22315 - 11905: 0x8853, - 22316 - 11905: 0xDBD8, - 22317 - 11905: 0xB9E7, - 22318 - 11905: 0xDBDC, - 22319 - 11905: 0xDBDD, - 22320 - 11905: 0xB5D8, - 22321 - 11905: 0x8854, - 22322 - 11905: 0x8855, - 22323 - 11905: 0xDBDA, - 22324 - 11905: 0x8856, - 22325 - 11905: 0x8857, - 22326 - 11905: 0x8858, - 22327 - 11905: 0x8859, - 22328 - 11905: 0x885A, - 22329 - 11905: 0xDBDB, - 22330 - 11905: 0xB3A1, - 22331 - 11905: 0xDBDF, - 22332 - 11905: 0x885B, - 22333 - 11905: 0x885C, - 22334 - 11905: 0xBBF8, - 22335 - 11905: 0x885D, - 22336 - 11905: 0xD6B7, - 22337 - 11905: 0x885E, - 22338 - 11905: 0xDBE0, - 22339 - 11905: 0x885F, - 22340 - 11905: 0x8860, - 22341 - 11905: 0x8861, - 22342 - 11905: 0x8862, - 22343 - 11905: 0xBEF9, - 22344 - 11905: 0x8863, - 22345 - 11905: 0x8864, - 22346 - 11905: 0xB7BB, - 22347 - 11905: 0x8865, - 22348 - 11905: 0xDBD0, - 22349 - 11905: 0xCCAE, - 22350 - 11905: 0xBFB2, - 22351 - 11905: 0xBBB5, - 22352 - 11905: 0xD7F8, - 22353 - 11905: 0xBFD3, - 22354 - 11905: 0x8866, - 22355 - 11905: 0x8867, - 22356 - 11905: 0x8868, - 22357 - 11905: 0x8869, - 22358 - 11905: 0x886A, - 22359 - 11905: 0xBFE9, - 22360 - 11905: 0x886B, - 22361 - 11905: 0x886C, - 22362 - 11905: 0xBCE1, - 22363 - 11905: 0xCCB3, - 22364 - 11905: 0xDBDE, - 22365 - 11905: 0xB0D3, - 22366 - 11905: 0xCEEB, - 22367 - 11905: 0xB7D8, - 22368 - 11905: 0xD7B9, - 22369 - 11905: 0xC6C2, - 22370 - 11905: 0x886D, - 22371 - 11905: 0x886E, - 22372 - 11905: 0xC0A4, - 22373 - 11905: 0x886F, - 22374 - 11905: 0xCCB9, - 22375 - 11905: 0x8870, - 22376 - 11905: 0xDBE7, - 22377 - 11905: 0xDBE1, - 22378 - 11905: 0xC6BA, - 22379 - 11905: 0xDBE3, - 22380 - 11905: 0x8871, - 22381 - 11905: 0xDBE8, - 22382 - 11905: 0x8872, - 22383 - 11905: 0xC5F7, - 22384 - 11905: 0x8873, - 22385 - 11905: 0x8874, - 22386 - 11905: 0x8875, - 22387 - 11905: 0xDBEA, - 22388 - 11905: 0x8876, - 22389 - 11905: 0x8877, - 22390 - 11905: 0xDBE9, - 22391 - 11905: 0xBFC0, - 22392 - 11905: 0x8878, - 22393 - 11905: 0x8879, - 22394 - 11905: 0x887A, - 22395 - 11905: 0xDBE6, - 22396 - 11905: 0xDBE5, - 22397 - 11905: 0x887B, - 22398 - 11905: 0x887C, - 22399 - 11905: 0x887D, - 22400 - 11905: 0x887E, - 22401 - 11905: 0x8880, - 22402 - 11905: 0xB4B9, - 22403 - 11905: 0xC0AC, - 22404 - 11905: 0xC2A2, - 22405 - 11905: 0xDBE2, - 22406 - 11905: 0xDBE4, - 22407 - 11905: 0x8881, - 22408 - 11905: 0x8882, - 22409 - 11905: 0x8883, - 22410 - 11905: 0x8884, - 22411 - 11905: 0xD0CD, - 22412 - 11905: 0xDBED, - 22413 - 11905: 0x8885, - 22414 - 11905: 0x8886, - 22415 - 11905: 0x8887, - 22416 - 11905: 0x8888, - 22417 - 11905: 0x8889, - 22418 - 11905: 0xC0DD, - 22419 - 11905: 0xDBF2, - 22420 - 11905: 0x888A, - 22421 - 11905: 0x888B, - 22422 - 11905: 0x888C, - 22423 - 11905: 0x888D, - 22424 - 11905: 0x888E, - 22425 - 11905: 0x888F, - 22426 - 11905: 0x8890, - 22427 - 11905: 0xB6E2, - 22428 - 11905: 0x8891, - 22429 - 11905: 0x8892, - 22430 - 11905: 0x8893, - 22431 - 11905: 0x8894, - 22432 - 11905: 0xDBF3, - 22433 - 11905: 0xDBD2, - 22434 - 11905: 0xB9B8, - 22435 - 11905: 0xD4AB, - 22436 - 11905: 0xDBEC, - 22437 - 11905: 0x8895, - 22438 - 11905: 0xBFD1, - 22439 - 11905: 0xDBF0, - 22440 - 11905: 0x8896, - 22441 - 11905: 0xDBD1, - 22442 - 11905: 0x8897, - 22443 - 11905: 0xB5E6, - 22444 - 11905: 0x8898, - 22445 - 11905: 0xDBEB, - 22446 - 11905: 0xBFE5, - 22447 - 11905: 0x8899, - 22448 - 11905: 0x889A, - 22449 - 11905: 0x889B, - 22450 - 11905: 0xDBEE, - 22451 - 11905: 0x889C, - 22452 - 11905: 0xDBF1, - 22453 - 11905: 0x889D, - 22454 - 11905: 0x889E, - 22455 - 11905: 0x889F, - 22456 - 11905: 0xDBF9, - 22457 - 11905: 0x88A0, - 22458 - 11905: 0x88A1, - 22459 - 11905: 0x88A2, - 22460 - 11905: 0x88A3, - 22461 - 11905: 0x88A4, - 22462 - 11905: 0x88A5, - 22463 - 11905: 0x88A6, - 22464 - 11905: 0x88A7, - 22465 - 11905: 0x88A8, - 22466 - 11905: 0xB9A1, - 22467 - 11905: 0xB0A3, - 22468 - 11905: 0x88A9, - 22469 - 11905: 0x88AA, - 22470 - 11905: 0x88AB, - 22471 - 11905: 0x88AC, - 22472 - 11905: 0x88AD, - 22473 - 11905: 0x88AE, - 22474 - 11905: 0x88AF, - 22475 - 11905: 0xC2F1, - 22476 - 11905: 0x88B0, - 22477 - 11905: 0x88B1, - 22478 - 11905: 0xB3C7, - 22479 - 11905: 0xDBEF, - 22480 - 11905: 0x88B2, - 22481 - 11905: 0x88B3, - 22482 - 11905: 0xDBF8, - 22483 - 11905: 0x88B4, - 22484 - 11905: 0xC6D2, - 22485 - 11905: 0xDBF4, - 22486 - 11905: 0x88B5, - 22487 - 11905: 0x88B6, - 22488 - 11905: 0xDBF5, - 22489 - 11905: 0xDBF7, - 22490 - 11905: 0xDBF6, - 22491 - 11905: 0x88B7, - 22492 - 11905: 0x88B8, - 22493 - 11905: 0xDBFE, - 22494 - 11905: 0x88B9, - 22495 - 11905: 0xD3F2, - 22496 - 11905: 0xB2BA, - 22497 - 11905: 0x88BA, - 22498 - 11905: 0x88BB, - 22499 - 11905: 0x88BC, - 22500 - 11905: 0xDBFD, - 22501 - 11905: 0x88BD, - 22502 - 11905: 0x88BE, - 22503 - 11905: 0x88BF, - 22504 - 11905: 0x88C0, - 22505 - 11905: 0x88C1, - 22506 - 11905: 0x88C2, - 22507 - 11905: 0x88C3, - 22508 - 11905: 0x88C4, - 22509 - 11905: 0xDCA4, - 22510 - 11905: 0x88C5, - 22511 - 11905: 0xDBFB, - 22512 - 11905: 0x88C6, - 22513 - 11905: 0x88C7, - 22514 - 11905: 0x88C8, - 22515 - 11905: 0x88C9, - 22516 - 11905: 0xDBFA, - 22517 - 11905: 0x88CA, - 22518 - 11905: 0x88CB, - 22519 - 11905: 0x88CC, - 22520 - 11905: 0xDBFC, - 22521 - 11905: 0xC5E0, - 22522 - 11905: 0xBBF9, - 22523 - 11905: 0x88CD, - 22524 - 11905: 0x88CE, - 22525 - 11905: 0xDCA3, - 22526 - 11905: 0x88CF, - 22527 - 11905: 0x88D0, - 22528 - 11905: 0xDCA5, - 22529 - 11905: 0x88D1, - 22530 - 11905: 0xCCC3, - 22531 - 11905: 0x88D2, - 22532 - 11905: 0x88D3, - 22533 - 11905: 0x88D4, - 22534 - 11905: 0xB6D1, - 22535 - 11905: 0xDDC0, - 22536 - 11905: 0x88D5, - 22537 - 11905: 0x88D6, - 22538 - 11905: 0x88D7, - 22539 - 11905: 0xDCA1, - 22540 - 11905: 0x88D8, - 22541 - 11905: 0xDCA2, - 22542 - 11905: 0x88D9, - 22543 - 11905: 0x88DA, - 22544 - 11905: 0x88DB, - 22545 - 11905: 0xC7B5, - 22546 - 11905: 0x88DC, - 22547 - 11905: 0x88DD, - 22548 - 11905: 0x88DE, - 22549 - 11905: 0xB6E9, - 22550 - 11905: 0x88DF, - 22551 - 11905: 0x88E0, - 22552 - 11905: 0x88E1, - 22553 - 11905: 0xDCA7, - 22554 - 11905: 0x88E2, - 22555 - 11905: 0x88E3, - 22556 - 11905: 0x88E4, - 22557 - 11905: 0x88E5, - 22558 - 11905: 0xDCA6, - 22559 - 11905: 0x88E6, - 22560 - 11905: 0xDCA9, - 22561 - 11905: 0xB1A4, - 22562 - 11905: 0x88E7, - 22563 - 11905: 0x88E8, - 22564 - 11905: 0xB5CC, - 22565 - 11905: 0x88E9, - 22566 - 11905: 0x88EA, - 22567 - 11905: 0x88EB, - 22568 - 11905: 0x88EC, - 22569 - 11905: 0x88ED, - 22570 - 11905: 0xBFB0, - 22571 - 11905: 0x88EE, - 22572 - 11905: 0x88EF, - 22573 - 11905: 0x88F0, - 22574 - 11905: 0x88F1, - 22575 - 11905: 0x88F2, - 22576 - 11905: 0xD1DF, - 22577 - 11905: 0x88F3, - 22578 - 11905: 0x88F4, - 22579 - 11905: 0x88F5, - 22580 - 11905: 0x88F6, - 22581 - 11905: 0xB6C2, - 22582 - 11905: 0x88F7, - 22583 - 11905: 0x88F8, - 22584 - 11905: 0x88F9, - 22585 - 11905: 0x88FA, - 22586 - 11905: 0x88FB, - 22587 - 11905: 0x88FC, - 22588 - 11905: 0x88FD, - 22589 - 11905: 0x88FE, - 22590 - 11905: 0x8940, - 22591 - 11905: 0x8941, - 22592 - 11905: 0x8942, - 22593 - 11905: 0x8943, - 22594 - 11905: 0x8944, - 22595 - 11905: 0x8945, - 22596 - 11905: 0xDCA8, - 22597 - 11905: 0x8946, - 22598 - 11905: 0x8947, - 22599 - 11905: 0x8948, - 22600 - 11905: 0x8949, - 22601 - 11905: 0x894A, - 22602 - 11905: 0x894B, - 22603 - 11905: 0x894C, - 22604 - 11905: 0xCBFA, - 22605 - 11905: 0xEBF3, - 22606 - 11905: 0x894D, - 22607 - 11905: 0x894E, - 22608 - 11905: 0x894F, - 22609 - 11905: 0xCBDC, - 22610 - 11905: 0x8950, - 22611 - 11905: 0x8951, - 22612 - 11905: 0xCBFE, - 22613 - 11905: 0x8952, - 22614 - 11905: 0x8953, - 22615 - 11905: 0x8954, - 22616 - 11905: 0xCCC1, - 22617 - 11905: 0x8955, - 22618 - 11905: 0x8956, - 22619 - 11905: 0x8957, - 22620 - 11905: 0x8958, - 22621 - 11905: 0x8959, - 22622 - 11905: 0xC8FB, - 22623 - 11905: 0x895A, - 22624 - 11905: 0x895B, - 22625 - 11905: 0x895C, - 22626 - 11905: 0x895D, - 22627 - 11905: 0x895E, - 22628 - 11905: 0x895F, - 22629 - 11905: 0xDCAA, - 22630 - 11905: 0x8960, - 22631 - 11905: 0x8961, - 22632 - 11905: 0x8962, - 22633 - 11905: 0x8963, - 22634 - 11905: 0x8964, - 22635 - 11905: 0xCCEE, - 22636 - 11905: 0xDCAB, - 22637 - 11905: 0x8965, - 22638 - 11905: 0x8966, - 22639 - 11905: 0x8967, - 22640 - 11905: 0x8968, - 22641 - 11905: 0x8969, - 22642 - 11905: 0x896A, - 22643 - 11905: 0x896B, - 22644 - 11905: 0x896C, - 22645 - 11905: 0x896D, - 22646 - 11905: 0x896E, - 22647 - 11905: 0x896F, - 22648 - 11905: 0x8970, - 22649 - 11905: 0x8971, - 22650 - 11905: 0x8972, - 22651 - 11905: 0x8973, - 22652 - 11905: 0x8974, - 22653 - 11905: 0x8975, - 22654 - 11905: 0xDBD3, - 22655 - 11905: 0x8976, - 22656 - 11905: 0xDCAF, - 22657 - 11905: 0xDCAC, - 22658 - 11905: 0x8977, - 22659 - 11905: 0xBEB3, - 22660 - 11905: 0x8978, - 22661 - 11905: 0xCAFB, - 22662 - 11905: 0x8979, - 22663 - 11905: 0x897A, - 22664 - 11905: 0x897B, - 22665 - 11905: 0xDCAD, - 22666 - 11905: 0x897C, - 22667 - 11905: 0x897D, - 22668 - 11905: 0x897E, - 22669 - 11905: 0x8980, - 22670 - 11905: 0x8981, - 22671 - 11905: 0x8982, - 22672 - 11905: 0x8983, - 22673 - 11905: 0x8984, - 22674 - 11905: 0xC9CA, - 22675 - 11905: 0xC4B9, - 22676 - 11905: 0x8985, - 22677 - 11905: 0x8986, - 22678 - 11905: 0x8987, - 22679 - 11905: 0x8988, - 22680 - 11905: 0x8989, - 22681 - 11905: 0xC7BD, - 22682 - 11905: 0xDCAE, - 22683 - 11905: 0x898A, - 22684 - 11905: 0x898B, - 22685 - 11905: 0x898C, - 22686 - 11905: 0xD4F6, - 22687 - 11905: 0xD0E6, - 22688 - 11905: 0x898D, - 22689 - 11905: 0x898E, - 22690 - 11905: 0x898F, - 22691 - 11905: 0x8990, - 22692 - 11905: 0x8991, - 22693 - 11905: 0x8992, - 22694 - 11905: 0x8993, - 22695 - 11905: 0x8994, - 22696 - 11905: 0xC4AB, - 22697 - 11905: 0xB6D5, - 22698 - 11905: 0x8995, - 22699 - 11905: 0x8996, - 22700 - 11905: 0x8997, - 22701 - 11905: 0x8998, - 22702 - 11905: 0x8999, - 22703 - 11905: 0x899A, - 22704 - 11905: 0x899B, - 22705 - 11905: 0x899C, - 22706 - 11905: 0x899D, - 22707 - 11905: 0x899E, - 22708 - 11905: 0x899F, - 22709 - 11905: 0x89A0, - 22710 - 11905: 0x89A1, - 22711 - 11905: 0x89A2, - 22712 - 11905: 0x89A3, - 22713 - 11905: 0x89A4, - 22714 - 11905: 0x89A5, - 22715 - 11905: 0x89A6, - 22716 - 11905: 0xDBD4, - 22717 - 11905: 0x89A7, - 22718 - 11905: 0x89A8, - 22719 - 11905: 0x89A9, - 22720 - 11905: 0x89AA, - 22721 - 11905: 0xB1DA, - 22722 - 11905: 0x89AB, - 22723 - 11905: 0x89AC, - 22724 - 11905: 0x89AD, - 22725 - 11905: 0xDBD5, - 22726 - 11905: 0x89AE, - 22727 - 11905: 0x89AF, - 22728 - 11905: 0x89B0, - 22729 - 11905: 0x89B1, - 22730 - 11905: 0x89B2, - 22731 - 11905: 0x89B3, - 22732 - 11905: 0x89B4, - 22733 - 11905: 0x89B5, - 22734 - 11905: 0x89B6, - 22735 - 11905: 0x89B7, - 22736 - 11905: 0x89B8, - 22737 - 11905: 0xDBD6, - 22738 - 11905: 0x89B9, - 22739 - 11905: 0x89BA, - 22740 - 11905: 0x89BB, - 22741 - 11905: 0xBABE, - 22742 - 11905: 0x89BC, - 22743 - 11905: 0x89BD, - 22744 - 11905: 0x89BE, - 22745 - 11905: 0x89BF, - 22746 - 11905: 0x89C0, - 22747 - 11905: 0x89C1, - 22748 - 11905: 0x89C2, - 22749 - 11905: 0x89C3, - 22750 - 11905: 0x89C4, - 22751 - 11905: 0x89C5, - 22752 - 11905: 0x89C6, - 22753 - 11905: 0x89C7, - 22754 - 11905: 0x89C8, - 22755 - 11905: 0x89C9, - 22756 - 11905: 0xC8C0, - 22757 - 11905: 0x89CA, - 22758 - 11905: 0x89CB, - 22759 - 11905: 0x89CC, - 22760 - 11905: 0x89CD, - 22761 - 11905: 0x89CE, - 22762 - 11905: 0x89CF, - 22763 - 11905: 0xCABF, - 22764 - 11905: 0xC8C9, - 22765 - 11905: 0x89D0, - 22766 - 11905: 0xD7B3, - 22767 - 11905: 0x89D1, - 22768 - 11905: 0xC9F9, - 22769 - 11905: 0x89D2, - 22770 - 11905: 0x89D3, - 22771 - 11905: 0xBFC7, - 22772 - 11905: 0x89D4, - 22773 - 11905: 0x89D5, - 22774 - 11905: 0xBAF8, - 22775 - 11905: 0x89D6, - 22776 - 11905: 0x89D7, - 22777 - 11905: 0xD2BC, - 22778 - 11905: 0x89D8, - 22779 - 11905: 0x89D9, - 22780 - 11905: 0x89DA, - 22781 - 11905: 0x89DB, - 22782 - 11905: 0x89DC, - 22783 - 11905: 0x89DD, - 22784 - 11905: 0x89DE, - 22785 - 11905: 0x89DF, - 22786 - 11905: 0xE2BA, - 22787 - 11905: 0x89E0, - 22788 - 11905: 0xB4A6, - 22789 - 11905: 0x89E1, - 22790 - 11905: 0x89E2, - 22791 - 11905: 0xB1B8, - 22792 - 11905: 0x89E3, - 22793 - 11905: 0x89E4, - 22794 - 11905: 0x89E5, - 22795 - 11905: 0x89E6, - 22796 - 11905: 0x89E7, - 22797 - 11905: 0xB8B4, - 22798 - 11905: 0x89E8, - 22799 - 11905: 0xCFC4, - 22800 - 11905: 0x89E9, - 22801 - 11905: 0x89EA, - 22802 - 11905: 0x89EB, - 22803 - 11905: 0x89EC, - 22804 - 11905: 0xD9E7, - 22805 - 11905: 0xCFA6, - 22806 - 11905: 0xCDE2, - 22807 - 11905: 0x89ED, - 22808 - 11905: 0x89EE, - 22809 - 11905: 0xD9ED, - 22810 - 11905: 0xB6E0, - 22811 - 11905: 0x89EF, - 22812 - 11905: 0xD2B9, - 22813 - 11905: 0x89F0, - 22814 - 11905: 0x89F1, - 22815 - 11905: 0xB9BB, - 22816 - 11905: 0x89F2, - 22817 - 11905: 0x89F3, - 22818 - 11905: 0x89F4, - 22819 - 11905: 0x89F5, - 22820 - 11905: 0xE2B9, - 22821 - 11905: 0xE2B7, - 22822 - 11905: 0x89F6, - 22823 - 11905: 0xB4F3, - 22824 - 11905: 0x89F7, - 22825 - 11905: 0xCCEC, - 22826 - 11905: 0xCCAB, - 22827 - 11905: 0xB7F2, - 22828 - 11905: 0x89F8, - 22829 - 11905: 0xD8B2, - 22830 - 11905: 0xD1EB, - 22831 - 11905: 0xBABB, - 22832 - 11905: 0x89F9, - 22833 - 11905: 0xCAA7, - 22834 - 11905: 0x89FA, - 22835 - 11905: 0x89FB, - 22836 - 11905: 0xCDB7, - 22837 - 11905: 0x89FC, - 22838 - 11905: 0x89FD, - 22839 - 11905: 0xD2C4, - 22840 - 11905: 0xBFE4, - 22841 - 11905: 0xBCD0, - 22842 - 11905: 0xB6E1, - 22843 - 11905: 0x89FE, - 22844 - 11905: 0xDEC5, - 22845 - 11905: 0x8A40, - 22846 - 11905: 0x8A41, - 22847 - 11905: 0x8A42, - 22848 - 11905: 0x8A43, - 22849 - 11905: 0xDEC6, - 22850 - 11905: 0xDBBC, - 22851 - 11905: 0x8A44, - 22852 - 11905: 0xD1D9, - 22853 - 11905: 0x8A45, - 22854 - 11905: 0x8A46, - 22855 - 11905: 0xC6E6, - 22856 - 11905: 0xC4CE, - 22857 - 11905: 0xB7EE, - 22858 - 11905: 0x8A47, - 22859 - 11905: 0xB7DC, - 22860 - 11905: 0x8A48, - 22861 - 11905: 0x8A49, - 22862 - 11905: 0xBFFC, - 22863 - 11905: 0xD7E0, - 22864 - 11905: 0x8A4A, - 22865 - 11905: 0xC6F5, - 22866 - 11905: 0x8A4B, - 22867 - 11905: 0x8A4C, - 22868 - 11905: 0xB1BC, - 22869 - 11905: 0xDEC8, - 22870 - 11905: 0xBDB1, - 22871 - 11905: 0xCCD7, - 22872 - 11905: 0xDECA, - 22873 - 11905: 0x8A4D, - 22874 - 11905: 0xDEC9, - 22875 - 11905: 0x8A4E, - 22876 - 11905: 0x8A4F, - 22877 - 11905: 0x8A50, - 22878 - 11905: 0x8A51, - 22879 - 11905: 0x8A52, - 22880 - 11905: 0xB5EC, - 22881 - 11905: 0x8A53, - 22882 - 11905: 0xC9DD, - 22883 - 11905: 0x8A54, - 22884 - 11905: 0x8A55, - 22885 - 11905: 0xB0C2, - 22886 - 11905: 0x8A56, - 22887 - 11905: 0x8A57, - 22888 - 11905: 0x8A58, - 22889 - 11905: 0x8A59, - 22890 - 11905: 0x8A5A, - 22891 - 11905: 0x8A5B, - 22892 - 11905: 0x8A5C, - 22893 - 11905: 0x8A5D, - 22894 - 11905: 0x8A5E, - 22895 - 11905: 0x8A5F, - 22896 - 11905: 0x8A60, - 22897 - 11905: 0x8A61, - 22898 - 11905: 0x8A62, - 22899 - 11905: 0xC5AE, - 22900 - 11905: 0xC5AB, - 22901 - 11905: 0x8A63, - 22902 - 11905: 0xC4CC, - 22903 - 11905: 0x8A64, - 22904 - 11905: 0xBCE9, - 22905 - 11905: 0xCBFD, - 22906 - 11905: 0x8A65, - 22907 - 11905: 0x8A66, - 22908 - 11905: 0x8A67, - 22909 - 11905: 0xBAC3, - 22910 - 11905: 0x8A68, - 22911 - 11905: 0x8A69, - 22912 - 11905: 0x8A6A, - 22913 - 11905: 0xE5F9, - 22914 - 11905: 0xC8E7, - 22915 - 11905: 0xE5FA, - 22916 - 11905: 0xCDFD, - 22917 - 11905: 0x8A6B, - 22918 - 11905: 0xD7B1, - 22919 - 11905: 0xB8BE, - 22920 - 11905: 0xC2E8, - 22921 - 11905: 0x8A6C, - 22922 - 11905: 0xC8D1, - 22923 - 11905: 0x8A6D, - 22924 - 11905: 0x8A6E, - 22925 - 11905: 0xE5FB, - 22926 - 11905: 0x8A6F, - 22927 - 11905: 0x8A70, - 22928 - 11905: 0x8A71, - 22929 - 11905: 0x8A72, - 22930 - 11905: 0xB6CA, - 22931 - 11905: 0xBCCB, - 22932 - 11905: 0x8A73, - 22933 - 11905: 0x8A74, - 22934 - 11905: 0xD1FD, - 22935 - 11905: 0xE6A1, - 22936 - 11905: 0x8A75, - 22937 - 11905: 0xC3EE, - 22938 - 11905: 0x8A76, - 22939 - 11905: 0x8A77, - 22940 - 11905: 0x8A78, - 22941 - 11905: 0x8A79, - 22942 - 11905: 0xE6A4, - 22943 - 11905: 0x8A7A, - 22944 - 11905: 0x8A7B, - 22945 - 11905: 0x8A7C, - 22946 - 11905: 0x8A7D, - 22947 - 11905: 0xE5FE, - 22948 - 11905: 0xE6A5, - 22949 - 11905: 0xCDD7, - 22950 - 11905: 0x8A7E, - 22951 - 11905: 0x8A80, - 22952 - 11905: 0xB7C1, - 22953 - 11905: 0xE5FC, - 22954 - 11905: 0xE5FD, - 22955 - 11905: 0xE6A3, - 22956 - 11905: 0x8A81, - 22957 - 11905: 0x8A82, - 22958 - 11905: 0xC4DD, - 22959 - 11905: 0xE6A8, - 22960 - 11905: 0x8A83, - 22961 - 11905: 0x8A84, - 22962 - 11905: 0xE6A7, - 22963 - 11905: 0x8A85, - 22964 - 11905: 0x8A86, - 22965 - 11905: 0x8A87, - 22966 - 11905: 0x8A88, - 22967 - 11905: 0x8A89, - 22968 - 11905: 0x8A8A, - 22969 - 11905: 0xC3C3, - 22970 - 11905: 0x8A8B, - 22971 - 11905: 0xC6DE, - 22972 - 11905: 0x8A8C, - 22973 - 11905: 0x8A8D, - 22974 - 11905: 0xE6AA, - 22975 - 11905: 0x8A8E, - 22976 - 11905: 0x8A8F, - 22977 - 11905: 0x8A90, - 22978 - 11905: 0x8A91, - 22979 - 11905: 0x8A92, - 22980 - 11905: 0x8A93, - 22981 - 11905: 0x8A94, - 22982 - 11905: 0xC4B7, - 22983 - 11905: 0x8A95, - 22984 - 11905: 0x8A96, - 22985 - 11905: 0x8A97, - 22986 - 11905: 0xE6A2, - 22987 - 11905: 0xCABC, - 22988 - 11905: 0x8A98, - 22989 - 11905: 0x8A99, - 22990 - 11905: 0x8A9A, - 22991 - 11905: 0x8A9B, - 22992 - 11905: 0xBDE3, - 22993 - 11905: 0xB9C3, - 22994 - 11905: 0xE6A6, - 22995 - 11905: 0xD0D5, - 22996 - 11905: 0xCEAF, - 22997 - 11905: 0x8A9C, - 22998 - 11905: 0x8A9D, - 22999 - 11905: 0xE6A9, - 23000 - 11905: 0xE6B0, - 23001 - 11905: 0x8A9E, - 23002 - 11905: 0xD2A6, - 23003 - 11905: 0x8A9F, - 23004 - 11905: 0xBDAA, - 23005 - 11905: 0xE6AD, - 23006 - 11905: 0x8AA0, - 23007 - 11905: 0x8AA1, - 23008 - 11905: 0x8AA2, - 23009 - 11905: 0x8AA3, - 23010 - 11905: 0x8AA4, - 23011 - 11905: 0xE6AF, - 23012 - 11905: 0x8AA5, - 23013 - 11905: 0xC0D1, - 23014 - 11905: 0x8AA6, - 23015 - 11905: 0x8AA7, - 23016 - 11905: 0xD2CC, - 23017 - 11905: 0x8AA8, - 23018 - 11905: 0x8AA9, - 23019 - 11905: 0x8AAA, - 23020 - 11905: 0xBCA7, - 23021 - 11905: 0x8AAB, - 23022 - 11905: 0x8AAC, - 23023 - 11905: 0x8AAD, - 23024 - 11905: 0x8AAE, - 23025 - 11905: 0x8AAF, - 23026 - 11905: 0x8AB0, - 23027 - 11905: 0x8AB1, - 23028 - 11905: 0x8AB2, - 23029 - 11905: 0x8AB3, - 23030 - 11905: 0x8AB4, - 23031 - 11905: 0x8AB5, - 23032 - 11905: 0x8AB6, - 23033 - 11905: 0xE6B1, - 23034 - 11905: 0x8AB7, - 23035 - 11905: 0xD2F6, - 23036 - 11905: 0x8AB8, - 23037 - 11905: 0x8AB9, - 23038 - 11905: 0x8ABA, - 23039 - 11905: 0xD7CB, - 23040 - 11905: 0x8ABB, - 23041 - 11905: 0xCDFE, - 23042 - 11905: 0x8ABC, - 23043 - 11905: 0xCDDE, - 23044 - 11905: 0xC2A6, - 23045 - 11905: 0xE6AB, - 23046 - 11905: 0xE6AC, - 23047 - 11905: 0xBDBF, - 23048 - 11905: 0xE6AE, - 23049 - 11905: 0xE6B3, - 23050 - 11905: 0x8ABD, - 23051 - 11905: 0x8ABE, - 23052 - 11905: 0xE6B2, - 23053 - 11905: 0x8ABF, - 23054 - 11905: 0x8AC0, - 23055 - 11905: 0x8AC1, - 23056 - 11905: 0x8AC2, - 23057 - 11905: 0xE6B6, - 23058 - 11905: 0x8AC3, - 23059 - 11905: 0xE6B8, - 23060 - 11905: 0x8AC4, - 23061 - 11905: 0x8AC5, - 23062 - 11905: 0x8AC6, - 23063 - 11905: 0x8AC7, - 23064 - 11905: 0xC4EF, - 23065 - 11905: 0x8AC8, - 23066 - 11905: 0x8AC9, - 23067 - 11905: 0x8ACA, - 23068 - 11905: 0xC4C8, - 23069 - 11905: 0x8ACB, - 23070 - 11905: 0x8ACC, - 23071 - 11905: 0xBEEA, - 23072 - 11905: 0xC9EF, - 23073 - 11905: 0x8ACD, - 23074 - 11905: 0x8ACE, - 23075 - 11905: 0xE6B7, - 23076 - 11905: 0x8ACF, - 23077 - 11905: 0xB6F0, - 23078 - 11905: 0x8AD0, - 23079 - 11905: 0x8AD1, - 23080 - 11905: 0x8AD2, - 23081 - 11905: 0xC3E4, - 23082 - 11905: 0x8AD3, - 23083 - 11905: 0x8AD4, - 23084 - 11905: 0x8AD5, - 23085 - 11905: 0x8AD6, - 23086 - 11905: 0x8AD7, - 23087 - 11905: 0x8AD8, - 23088 - 11905: 0x8AD9, - 23089 - 11905: 0xD3E9, - 23090 - 11905: 0xE6B4, - 23091 - 11905: 0x8ADA, - 23092 - 11905: 0xE6B5, - 23093 - 11905: 0x8ADB, - 23094 - 11905: 0xC8A2, - 23095 - 11905: 0x8ADC, - 23096 - 11905: 0x8ADD, - 23097 - 11905: 0x8ADE, - 23098 - 11905: 0x8ADF, - 23099 - 11905: 0x8AE0, - 23100 - 11905: 0xE6BD, - 23101 - 11905: 0x8AE1, - 23102 - 11905: 0x8AE2, - 23103 - 11905: 0x8AE3, - 23104 - 11905: 0xE6B9, - 23105 - 11905: 0x8AE4, - 23106 - 11905: 0x8AE5, - 23107 - 11905: 0x8AE6, - 23108 - 11905: 0x8AE7, - 23109 - 11905: 0x8AE8, - 23110 - 11905: 0xC6C5, - 23111 - 11905: 0x8AE9, - 23112 - 11905: 0x8AEA, - 23113 - 11905: 0xCDF1, - 23114 - 11905: 0xE6BB, - 23115 - 11905: 0x8AEB, - 23116 - 11905: 0x8AEC, - 23117 - 11905: 0x8AED, - 23118 - 11905: 0x8AEE, - 23119 - 11905: 0x8AEF, - 23120 - 11905: 0x8AF0, - 23121 - 11905: 0x8AF1, - 23122 - 11905: 0x8AF2, - 23123 - 11905: 0x8AF3, - 23124 - 11905: 0x8AF4, - 23125 - 11905: 0xE6BC, - 23126 - 11905: 0x8AF5, - 23127 - 11905: 0x8AF6, - 23128 - 11905: 0x8AF7, - 23129 - 11905: 0x8AF8, - 23130 - 11905: 0xBBE9, - 23131 - 11905: 0x8AF9, - 23132 - 11905: 0x8AFA, - 23133 - 11905: 0x8AFB, - 23134 - 11905: 0x8AFC, - 23135 - 11905: 0x8AFD, - 23136 - 11905: 0x8AFE, - 23137 - 11905: 0x8B40, - 23138 - 11905: 0xE6BE, - 23139 - 11905: 0x8B41, - 23140 - 11905: 0x8B42, - 23141 - 11905: 0x8B43, - 23142 - 11905: 0x8B44, - 23143 - 11905: 0xE6BA, - 23144 - 11905: 0x8B45, - 23145 - 11905: 0x8B46, - 23146 - 11905: 0xC0B7, - 23147 - 11905: 0x8B47, - 23148 - 11905: 0x8B48, - 23149 - 11905: 0x8B49, - 23150 - 11905: 0x8B4A, - 23151 - 11905: 0x8B4B, - 23152 - 11905: 0x8B4C, - 23153 - 11905: 0x8B4D, - 23154 - 11905: 0x8B4E, - 23155 - 11905: 0x8B4F, - 23156 - 11905: 0xD3A4, - 23157 - 11905: 0xE6BF, - 23158 - 11905: 0xC9F4, - 23159 - 11905: 0xE6C3, - 23160 - 11905: 0x8B50, - 23161 - 11905: 0x8B51, - 23162 - 11905: 0xE6C4, - 23163 - 11905: 0x8B52, - 23164 - 11905: 0x8B53, - 23165 - 11905: 0x8B54, - 23166 - 11905: 0x8B55, - 23167 - 11905: 0xD0F6, - 23168 - 11905: 0x8B56, - 23169 - 11905: 0x8B57, - 23170 - 11905: 0x8B58, - 23171 - 11905: 0x8B59, - 23172 - 11905: 0x8B5A, - 23173 - 11905: 0x8B5B, - 23174 - 11905: 0x8B5C, - 23175 - 11905: 0x8B5D, - 23176 - 11905: 0x8B5E, - 23177 - 11905: 0x8B5F, - 23178 - 11905: 0x8B60, - 23179 - 11905: 0x8B61, - 23180 - 11905: 0x8B62, - 23181 - 11905: 0x8B63, - 23182 - 11905: 0x8B64, - 23183 - 11905: 0x8B65, - 23184 - 11905: 0x8B66, - 23185 - 11905: 0x8B67, - 23186 - 11905: 0xC3BD, - 23187 - 11905: 0x8B68, - 23188 - 11905: 0x8B69, - 23189 - 11905: 0x8B6A, - 23190 - 11905: 0x8B6B, - 23191 - 11905: 0x8B6C, - 23192 - 11905: 0x8B6D, - 23193 - 11905: 0x8B6E, - 23194 - 11905: 0xC3C4, - 23195 - 11905: 0xE6C2, - 23196 - 11905: 0x8B6F, - 23197 - 11905: 0x8B70, - 23198 - 11905: 0x8B71, - 23199 - 11905: 0x8B72, - 23200 - 11905: 0x8B73, - 23201 - 11905: 0x8B74, - 23202 - 11905: 0x8B75, - 23203 - 11905: 0x8B76, - 23204 - 11905: 0x8B77, - 23205 - 11905: 0x8B78, - 23206 - 11905: 0x8B79, - 23207 - 11905: 0x8B7A, - 23208 - 11905: 0x8B7B, - 23209 - 11905: 0x8B7C, - 23210 - 11905: 0xE6C1, - 23211 - 11905: 0x8B7D, - 23212 - 11905: 0x8B7E, - 23213 - 11905: 0x8B80, - 23214 - 11905: 0x8B81, - 23215 - 11905: 0x8B82, - 23216 - 11905: 0x8B83, - 23217 - 11905: 0x8B84, - 23218 - 11905: 0xE6C7, - 23219 - 11905: 0xCFB1, - 23220 - 11905: 0x8B85, - 23221 - 11905: 0xEBF4, - 23222 - 11905: 0x8B86, - 23223 - 11905: 0x8B87, - 23224 - 11905: 0xE6CA, - 23225 - 11905: 0x8B88, - 23226 - 11905: 0x8B89, - 23227 - 11905: 0x8B8A, - 23228 - 11905: 0x8B8B, - 23229 - 11905: 0x8B8C, - 23230 - 11905: 0xE6C5, - 23231 - 11905: 0x8B8D, - 23232 - 11905: 0x8B8E, - 23233 - 11905: 0xBCDE, - 23234 - 11905: 0xC9A9, - 23235 - 11905: 0x8B8F, - 23236 - 11905: 0x8B90, - 23237 - 11905: 0x8B91, - 23238 - 11905: 0x8B92, - 23239 - 11905: 0x8B93, - 23240 - 11905: 0x8B94, - 23241 - 11905: 0xBCB5, - 23242 - 11905: 0x8B95, - 23243 - 11905: 0x8B96, - 23244 - 11905: 0xCFD3, - 23245 - 11905: 0x8B97, - 23246 - 11905: 0x8B98, - 23247 - 11905: 0x8B99, - 23248 - 11905: 0x8B9A, - 23249 - 11905: 0x8B9B, - 23250 - 11905: 0xE6C8, - 23251 - 11905: 0x8B9C, - 23252 - 11905: 0xE6C9, - 23253 - 11905: 0x8B9D, - 23254 - 11905: 0xE6CE, - 23255 - 11905: 0x8B9E, - 23256 - 11905: 0xE6D0, - 23257 - 11905: 0x8B9F, - 23258 - 11905: 0x8BA0, - 23259 - 11905: 0x8BA1, - 23260 - 11905: 0xE6D1, - 23261 - 11905: 0x8BA2, - 23262 - 11905: 0x8BA3, - 23263 - 11905: 0x8BA4, - 23264 - 11905: 0xE6CB, - 23265 - 11905: 0xB5D5, - 23266 - 11905: 0x8BA5, - 23267 - 11905: 0xE6CC, - 23268 - 11905: 0x8BA6, - 23269 - 11905: 0x8BA7, - 23270 - 11905: 0xE6CF, - 23271 - 11905: 0x8BA8, - 23272 - 11905: 0x8BA9, - 23273 - 11905: 0xC4DB, - 23274 - 11905: 0x8BAA, - 23275 - 11905: 0xE6C6, - 23276 - 11905: 0x8BAB, - 23277 - 11905: 0x8BAC, - 23278 - 11905: 0x8BAD, - 23279 - 11905: 0x8BAE, - 23280 - 11905: 0x8BAF, - 23281 - 11905: 0xE6CD, - 23282 - 11905: 0x8BB0, - 23283 - 11905: 0x8BB1, - 23284 - 11905: 0x8BB2, - 23285 - 11905: 0x8BB3, - 23286 - 11905: 0x8BB4, - 23287 - 11905: 0x8BB5, - 23288 - 11905: 0x8BB6, - 23289 - 11905: 0x8BB7, - 23290 - 11905: 0x8BB8, - 23291 - 11905: 0x8BB9, - 23292 - 11905: 0x8BBA, - 23293 - 11905: 0x8BBB, - 23294 - 11905: 0x8BBC, - 23295 - 11905: 0x8BBD, - 23296 - 11905: 0x8BBE, - 23297 - 11905: 0x8BBF, - 23298 - 11905: 0x8BC0, - 23299 - 11905: 0x8BC1, - 23300 - 11905: 0x8BC2, - 23301 - 11905: 0x8BC3, - 23302 - 11905: 0x8BC4, - 23303 - 11905: 0x8BC5, - 23304 - 11905: 0x8BC6, - 23305 - 11905: 0xE6D2, - 23306 - 11905: 0x8BC7, - 23307 - 11905: 0x8BC8, - 23308 - 11905: 0x8BC9, - 23309 - 11905: 0x8BCA, - 23310 - 11905: 0x8BCB, - 23311 - 11905: 0x8BCC, - 23312 - 11905: 0x8BCD, - 23313 - 11905: 0x8BCE, - 23314 - 11905: 0x8BCF, - 23315 - 11905: 0x8BD0, - 23316 - 11905: 0x8BD1, - 23317 - 11905: 0x8BD2, - 23318 - 11905: 0xE6D4, - 23319 - 11905: 0xE6D3, - 23320 - 11905: 0x8BD3, - 23321 - 11905: 0x8BD4, - 23322 - 11905: 0x8BD5, - 23323 - 11905: 0x8BD6, - 23324 - 11905: 0x8BD7, - 23325 - 11905: 0x8BD8, - 23326 - 11905: 0x8BD9, - 23327 - 11905: 0x8BDA, - 23328 - 11905: 0x8BDB, - 23329 - 11905: 0x8BDC, - 23330 - 11905: 0x8BDD, - 23331 - 11905: 0x8BDE, - 23332 - 11905: 0x8BDF, - 23333 - 11905: 0x8BE0, - 23334 - 11905: 0x8BE1, - 23335 - 11905: 0x8BE2, - 23336 - 11905: 0x8BE3, - 23337 - 11905: 0x8BE4, - 23338 - 11905: 0x8BE5, - 23339 - 11905: 0x8BE6, - 23340 - 11905: 0x8BE7, - 23341 - 11905: 0x8BE8, - 23342 - 11905: 0x8BE9, - 23343 - 11905: 0x8BEA, - 23344 - 11905: 0x8BEB, - 23345 - 11905: 0x8BEC, - 23346 - 11905: 0xE6D5, - 23347 - 11905: 0x8BED, - 23348 - 11905: 0xD9F8, - 23349 - 11905: 0x8BEE, - 23350 - 11905: 0x8BEF, - 23351 - 11905: 0xE6D6, - 23352 - 11905: 0x8BF0, - 23353 - 11905: 0x8BF1, - 23354 - 11905: 0x8BF2, - 23355 - 11905: 0x8BF3, - 23356 - 11905: 0x8BF4, - 23357 - 11905: 0x8BF5, - 23358 - 11905: 0x8BF6, - 23359 - 11905: 0x8BF7, - 23360 - 11905: 0xE6D7, - 23361 - 11905: 0x8BF8, - 23362 - 11905: 0x8BF9, - 23363 - 11905: 0x8BFA, - 23364 - 11905: 0x8BFB, - 23365 - 11905: 0x8BFC, - 23366 - 11905: 0x8BFD, - 23367 - 11905: 0x8BFE, - 23368 - 11905: 0x8C40, - 23369 - 11905: 0x8C41, - 23370 - 11905: 0x8C42, - 23371 - 11905: 0x8C43, - 23372 - 11905: 0x8C44, - 23373 - 11905: 0x8C45, - 23374 - 11905: 0x8C46, - 23375 - 11905: 0x8C47, - 23376 - 11905: 0xD7D3, - 23377 - 11905: 0xE6DD, - 23378 - 11905: 0x8C48, - 23379 - 11905: 0xE6DE, - 23380 - 11905: 0xBFD7, - 23381 - 11905: 0xD4D0, - 23382 - 11905: 0x8C49, - 23383 - 11905: 0xD7D6, - 23384 - 11905: 0xB4E6, - 23385 - 11905: 0xCBEF, - 23386 - 11905: 0xE6DA, - 23387 - 11905: 0xD8C3, - 23388 - 11905: 0xD7CE, - 23389 - 11905: 0xD0A2, - 23390 - 11905: 0x8C4A, - 23391 - 11905: 0xC3CF, - 23392 - 11905: 0x8C4B, - 23393 - 11905: 0x8C4C, - 23394 - 11905: 0xE6DF, - 23395 - 11905: 0xBCBE, - 23396 - 11905: 0xB9C2, - 23397 - 11905: 0xE6DB, - 23398 - 11905: 0xD1A7, - 23399 - 11905: 0x8C4D, - 23400 - 11905: 0x8C4E, - 23401 - 11905: 0xBAA2, - 23402 - 11905: 0xC2CF, - 23403 - 11905: 0x8C4F, - 23404 - 11905: 0xD8AB, - 23405 - 11905: 0x8C50, - 23406 - 11905: 0x8C51, - 23407 - 11905: 0x8C52, - 23408 - 11905: 0xCAEB, - 23409 - 11905: 0xE5EE, - 23410 - 11905: 0x8C53, - 23411 - 11905: 0xE6DC, - 23412 - 11905: 0x8C54, - 23413 - 11905: 0xB7F5, - 23414 - 11905: 0x8C55, - 23415 - 11905: 0x8C56, - 23416 - 11905: 0x8C57, - 23417 - 11905: 0x8C58, - 23418 - 11905: 0xC8E6, - 23419 - 11905: 0x8C59, - 23420 - 11905: 0x8C5A, - 23421 - 11905: 0xC4F5, - 23422 - 11905: 0x8C5B, - 23423 - 11905: 0x8C5C, - 23424 - 11905: 0xE5B2, - 23425 - 11905: 0xC4FE, - 23426 - 11905: 0x8C5D, - 23427 - 11905: 0xCBFC, - 23428 - 11905: 0xE5B3, - 23429 - 11905: 0xD5AC, - 23430 - 11905: 0x8C5E, - 23431 - 11905: 0xD3EE, - 23432 - 11905: 0xCAD8, - 23433 - 11905: 0xB0B2, - 23434 - 11905: 0x8C5F, - 23435 - 11905: 0xCBCE, - 23436 - 11905: 0xCDEA, - 23437 - 11905: 0x8C60, - 23438 - 11905: 0x8C61, - 23439 - 11905: 0xBAEA, - 23440 - 11905: 0x8C62, - 23441 - 11905: 0x8C63, - 23442 - 11905: 0x8C64, - 23443 - 11905: 0xE5B5, - 23444 - 11905: 0x8C65, - 23445 - 11905: 0xE5B4, - 23446 - 11905: 0x8C66, - 23447 - 11905: 0xD7DA, - 23448 - 11905: 0xB9D9, - 23449 - 11905: 0xD6E6, - 23450 - 11905: 0xB6A8, - 23451 - 11905: 0xCDF0, - 23452 - 11905: 0xD2CB, - 23453 - 11905: 0xB1A6, - 23454 - 11905: 0xCAB5, - 23455 - 11905: 0x8C67, - 23456 - 11905: 0xB3E8, - 23457 - 11905: 0xC9F3, - 23458 - 11905: 0xBFCD, - 23459 - 11905: 0xD0FB, - 23460 - 11905: 0xCAD2, - 23461 - 11905: 0xE5B6, - 23462 - 11905: 0xBBC2, - 23463 - 11905: 0x8C68, - 23464 - 11905: 0x8C69, - 23465 - 11905: 0x8C6A, - 23466 - 11905: 0xCFDC, - 23467 - 11905: 0xB9AC, - 23468 - 11905: 0x8C6B, - 23469 - 11905: 0x8C6C, - 23470 - 11905: 0x8C6D, - 23471 - 11905: 0x8C6E, - 23472 - 11905: 0xD4D7, - 23473 - 11905: 0x8C6F, - 23474 - 11905: 0x8C70, - 23475 - 11905: 0xBAA6, - 23476 - 11905: 0xD1E7, - 23477 - 11905: 0xCFFC, - 23478 - 11905: 0xBCD2, - 23479 - 11905: 0x8C71, - 23480 - 11905: 0xE5B7, - 23481 - 11905: 0xC8DD, - 23482 - 11905: 0x8C72, - 23483 - 11905: 0x8C73, - 23484 - 11905: 0x8C74, - 23485 - 11905: 0xBFED, - 23486 - 11905: 0xB1F6, - 23487 - 11905: 0xCBDE, - 23488 - 11905: 0x8C75, - 23489 - 11905: 0x8C76, - 23490 - 11905: 0xBCC5, - 23491 - 11905: 0x8C77, - 23492 - 11905: 0xBCC4, - 23493 - 11905: 0xD2FA, - 23494 - 11905: 0xC3DC, - 23495 - 11905: 0xBFDC, - 23496 - 11905: 0x8C78, - 23497 - 11905: 0x8C79, - 23498 - 11905: 0x8C7A, - 23499 - 11905: 0x8C7B, - 23500 - 11905: 0xB8BB, - 23501 - 11905: 0x8C7C, - 23502 - 11905: 0x8C7D, - 23503 - 11905: 0x8C7E, - 23504 - 11905: 0xC3C2, - 23505 - 11905: 0x8C80, - 23506 - 11905: 0xBAAE, - 23507 - 11905: 0xD4A2, - 23508 - 11905: 0x8C81, - 23509 - 11905: 0x8C82, - 23510 - 11905: 0x8C83, - 23511 - 11905: 0x8C84, - 23512 - 11905: 0x8C85, - 23513 - 11905: 0x8C86, - 23514 - 11905: 0x8C87, - 23515 - 11905: 0x8C88, - 23516 - 11905: 0x8C89, - 23517 - 11905: 0xC7DE, - 23518 - 11905: 0xC4AF, - 23519 - 11905: 0xB2EC, - 23520 - 11905: 0x8C8A, - 23521 - 11905: 0xB9D1, - 23522 - 11905: 0x8C8B, - 23523 - 11905: 0x8C8C, - 23524 - 11905: 0xE5BB, - 23525 - 11905: 0xC1C8, - 23526 - 11905: 0x8C8D, - 23527 - 11905: 0x8C8E, - 23528 - 11905: 0xD5AF, - 23529 - 11905: 0x8C8F, - 23530 - 11905: 0x8C90, - 23531 - 11905: 0x8C91, - 23532 - 11905: 0x8C92, - 23533 - 11905: 0x8C93, - 23534 - 11905: 0xE5BC, - 23535 - 11905: 0x8C94, - 23536 - 11905: 0xE5BE, - 23537 - 11905: 0x8C95, - 23538 - 11905: 0x8C96, - 23539 - 11905: 0x8C97, - 23540 - 11905: 0x8C98, - 23541 - 11905: 0x8C99, - 23542 - 11905: 0x8C9A, - 23543 - 11905: 0x8C9B, - 23544 - 11905: 0xB4E7, - 23545 - 11905: 0xB6D4, - 23546 - 11905: 0xCBC2, - 23547 - 11905: 0xD1B0, - 23548 - 11905: 0xB5BC, - 23549 - 11905: 0x8C9C, - 23550 - 11905: 0x8C9D, - 23551 - 11905: 0xCAD9, - 23552 - 11905: 0x8C9E, - 23553 - 11905: 0xB7E2, - 23554 - 11905: 0x8C9F, - 23555 - 11905: 0x8CA0, - 23556 - 11905: 0xC9E4, - 23557 - 11905: 0x8CA1, - 23558 - 11905: 0xBDAB, - 23559 - 11905: 0x8CA2, - 23560 - 11905: 0x8CA3, - 23561 - 11905: 0xCEBE, - 23562 - 11905: 0xD7F0, - 23563 - 11905: 0x8CA4, - 23564 - 11905: 0x8CA5, - 23565 - 11905: 0x8CA6, - 23566 - 11905: 0x8CA7, - 23567 - 11905: 0xD0A1, - 23568 - 11905: 0x8CA8, - 23569 - 11905: 0xC9D9, - 23570 - 11905: 0x8CA9, - 23571 - 11905: 0x8CAA, - 23572 - 11905: 0xB6FB, - 23573 - 11905: 0xE6D8, - 23574 - 11905: 0xBCE2, - 23575 - 11905: 0x8CAB, - 23576 - 11905: 0xB3BE, - 23577 - 11905: 0x8CAC, - 23578 - 11905: 0xC9D0, - 23579 - 11905: 0x8CAD, - 23580 - 11905: 0xE6D9, - 23581 - 11905: 0xB3A2, - 23582 - 11905: 0x8CAE, - 23583 - 11905: 0x8CAF, - 23584 - 11905: 0x8CB0, - 23585 - 11905: 0x8CB1, - 23586 - 11905: 0xDECC, - 23587 - 11905: 0x8CB2, - 23588 - 11905: 0xD3C8, - 23589 - 11905: 0xDECD, - 23590 - 11905: 0x8CB3, - 23591 - 11905: 0xD2A2, - 23592 - 11905: 0x8CB4, - 23593 - 11905: 0x8CB5, - 23594 - 11905: 0x8CB6, - 23595 - 11905: 0x8CB7, - 23596 - 11905: 0xDECE, - 23597 - 11905: 0x8CB8, - 23598 - 11905: 0x8CB9, - 23599 - 11905: 0x8CBA, - 23600 - 11905: 0x8CBB, - 23601 - 11905: 0xBECD, - 23602 - 11905: 0x8CBC, - 23603 - 11905: 0x8CBD, - 23604 - 11905: 0xDECF, - 23605 - 11905: 0x8CBE, - 23606 - 11905: 0x8CBF, - 23607 - 11905: 0x8CC0, - 23608 - 11905: 0xCAAC, - 23609 - 11905: 0xD2FC, - 23610 - 11905: 0xB3DF, - 23611 - 11905: 0xE5EA, - 23612 - 11905: 0xC4E1, - 23613 - 11905: 0xBEA1, - 23614 - 11905: 0xCEB2, - 23615 - 11905: 0xC4F2, - 23616 - 11905: 0xBED6, - 23617 - 11905: 0xC6A8, - 23618 - 11905: 0xB2E3, - 23619 - 11905: 0x8CC1, - 23620 - 11905: 0x8CC2, - 23621 - 11905: 0xBED3, - 23622 - 11905: 0x8CC3, - 23623 - 11905: 0x8CC4, - 23624 - 11905: 0xC7FC, - 23625 - 11905: 0xCCEB, - 23626 - 11905: 0xBDEC, - 23627 - 11905: 0xCEDD, - 23628 - 11905: 0x8CC5, - 23629 - 11905: 0x8CC6, - 23630 - 11905: 0xCABA, - 23631 - 11905: 0xC6C1, - 23632 - 11905: 0xE5EC, - 23633 - 11905: 0xD0BC, - 23634 - 11905: 0x8CC7, - 23635 - 11905: 0x8CC8, - 23636 - 11905: 0x8CC9, - 23637 - 11905: 0xD5B9, - 23638 - 11905: 0x8CCA, - 23639 - 11905: 0x8CCB, - 23640 - 11905: 0x8CCC, - 23641 - 11905: 0xE5ED, - 23642 - 11905: 0x8CCD, - 23643 - 11905: 0x8CCE, - 23644 - 11905: 0x8CCF, - 23645 - 11905: 0x8CD0, - 23646 - 11905: 0xCAF4, - 23647 - 11905: 0x8CD1, - 23648 - 11905: 0xCDC0, - 23649 - 11905: 0xC2C5, - 23650 - 11905: 0x8CD2, - 23651 - 11905: 0xE5EF, - 23652 - 11905: 0x8CD3, - 23653 - 11905: 0xC2C4, - 23654 - 11905: 0xE5F0, - 23655 - 11905: 0x8CD4, - 23656 - 11905: 0x8CD5, - 23657 - 11905: 0x8CD6, - 23658 - 11905: 0x8CD7, - 23659 - 11905: 0x8CD8, - 23660 - 11905: 0x8CD9, - 23661 - 11905: 0x8CDA, - 23662 - 11905: 0xE5F8, - 23663 - 11905: 0xCDCD, - 23664 - 11905: 0x8CDB, - 23665 - 11905: 0xC9BD, - 23666 - 11905: 0x8CDC, - 23667 - 11905: 0x8CDD, - 23668 - 11905: 0x8CDE, - 23669 - 11905: 0x8CDF, - 23670 - 11905: 0x8CE0, - 23671 - 11905: 0x8CE1, - 23672 - 11905: 0x8CE2, - 23673 - 11905: 0xD2D9, - 23674 - 11905: 0xE1A8, - 23675 - 11905: 0x8CE3, - 23676 - 11905: 0x8CE4, - 23677 - 11905: 0x8CE5, - 23678 - 11905: 0x8CE6, - 23679 - 11905: 0xD3EC, - 23680 - 11905: 0x8CE7, - 23681 - 11905: 0xCBEA, - 23682 - 11905: 0xC6F1, - 23683 - 11905: 0x8CE8, - 23684 - 11905: 0x8CE9, - 23685 - 11905: 0x8CEA, - 23686 - 11905: 0x8CEB, - 23687 - 11905: 0x8CEC, - 23688 - 11905: 0xE1AC, - 23689 - 11905: 0x8CED, - 23690 - 11905: 0x8CEE, - 23691 - 11905: 0x8CEF, - 23692 - 11905: 0xE1A7, - 23693 - 11905: 0xE1A9, - 23694 - 11905: 0x8CF0, - 23695 - 11905: 0x8CF1, - 23696 - 11905: 0xE1AA, - 23697 - 11905: 0xE1AF, - 23698 - 11905: 0x8CF2, - 23699 - 11905: 0x8CF3, - 23700 - 11905: 0xB2ED, - 23701 - 11905: 0x8CF4, - 23702 - 11905: 0xE1AB, - 23703 - 11905: 0xB8DA, - 23704 - 11905: 0xE1AD, - 23705 - 11905: 0xE1AE, - 23706 - 11905: 0xE1B0, - 23707 - 11905: 0xB5BA, - 23708 - 11905: 0xE1B1, - 23709 - 11905: 0x8CF5, - 23710 - 11905: 0x8CF6, - 23711 - 11905: 0x8CF7, - 23712 - 11905: 0x8CF8, - 23713 - 11905: 0x8CF9, - 23714 - 11905: 0xE1B3, - 23715 - 11905: 0xE1B8, - 23716 - 11905: 0x8CFA, - 23717 - 11905: 0x8CFB, - 23718 - 11905: 0x8CFC, - 23719 - 11905: 0x8CFD, - 23720 - 11905: 0x8CFE, - 23721 - 11905: 0xD1D2, - 23722 - 11905: 0x8D40, - 23723 - 11905: 0xE1B6, - 23724 - 11905: 0xE1B5, - 23725 - 11905: 0xC1EB, - 23726 - 11905: 0x8D41, - 23727 - 11905: 0x8D42, - 23728 - 11905: 0x8D43, - 23729 - 11905: 0xE1B7, - 23730 - 11905: 0x8D44, - 23731 - 11905: 0xD4C0, - 23732 - 11905: 0x8D45, - 23733 - 11905: 0xE1B2, - 23734 - 11905: 0x8D46, - 23735 - 11905: 0xE1BA, - 23736 - 11905: 0xB0B6, - 23737 - 11905: 0x8D47, - 23738 - 11905: 0x8D48, - 23739 - 11905: 0x8D49, - 23740 - 11905: 0x8D4A, - 23741 - 11905: 0xE1B4, - 23742 - 11905: 0x8D4B, - 23743 - 11905: 0xBFF9, - 23744 - 11905: 0x8D4C, - 23745 - 11905: 0xE1B9, - 23746 - 11905: 0x8D4D, - 23747 - 11905: 0x8D4E, - 23748 - 11905: 0xE1BB, - 23749 - 11905: 0x8D4F, - 23750 - 11905: 0x8D50, - 23751 - 11905: 0x8D51, - 23752 - 11905: 0x8D52, - 23753 - 11905: 0x8D53, - 23754 - 11905: 0x8D54, - 23755 - 11905: 0xE1BE, - 23756 - 11905: 0x8D55, - 23757 - 11905: 0x8D56, - 23758 - 11905: 0x8D57, - 23759 - 11905: 0x8D58, - 23760 - 11905: 0x8D59, - 23761 - 11905: 0x8D5A, - 23762 - 11905: 0xE1BC, - 23763 - 11905: 0x8D5B, - 23764 - 11905: 0x8D5C, - 23765 - 11905: 0x8D5D, - 23766 - 11905: 0x8D5E, - 23767 - 11905: 0x8D5F, - 23768 - 11905: 0x8D60, - 23769 - 11905: 0xD6C5, - 23770 - 11905: 0x8D61, - 23771 - 11905: 0x8D62, - 23772 - 11905: 0x8D63, - 23773 - 11905: 0x8D64, - 23774 - 11905: 0x8D65, - 23775 - 11905: 0x8D66, - 23776 - 11905: 0x8D67, - 23777 - 11905: 0xCFBF, - 23778 - 11905: 0x8D68, - 23779 - 11905: 0x8D69, - 23780 - 11905: 0xE1BD, - 23781 - 11905: 0xE1BF, - 23782 - 11905: 0xC2CD, - 23783 - 11905: 0x8D6A, - 23784 - 11905: 0xB6EB, - 23785 - 11905: 0x8D6B, - 23786 - 11905: 0xD3F8, - 23787 - 11905: 0x8D6C, - 23788 - 11905: 0x8D6D, - 23789 - 11905: 0xC7CD, - 23790 - 11905: 0x8D6E, - 23791 - 11905: 0x8D6F, - 23792 - 11905: 0xB7E5, - 23793 - 11905: 0x8D70, - 23794 - 11905: 0x8D71, - 23795 - 11905: 0x8D72, - 23796 - 11905: 0x8D73, - 23797 - 11905: 0x8D74, - 23798 - 11905: 0x8D75, - 23799 - 11905: 0x8D76, - 23800 - 11905: 0x8D77, - 23801 - 11905: 0x8D78, - 23802 - 11905: 0x8D79, - 23803 - 11905: 0xBEFE, - 23804 - 11905: 0x8D7A, - 23805 - 11905: 0x8D7B, - 23806 - 11905: 0x8D7C, - 23807 - 11905: 0x8D7D, - 23808 - 11905: 0x8D7E, - 23809 - 11905: 0x8D80, - 23810 - 11905: 0xE1C0, - 23811 - 11905: 0xE1C1, - 23812 - 11905: 0x8D81, - 23813 - 11905: 0x8D82, - 23814 - 11905: 0xE1C7, - 23815 - 11905: 0xB3E7, - 23816 - 11905: 0x8D83, - 23817 - 11905: 0x8D84, - 23818 - 11905: 0x8D85, - 23819 - 11905: 0x8D86, - 23820 - 11905: 0x8D87, - 23821 - 11905: 0x8D88, - 23822 - 11905: 0xC6E9, - 23823 - 11905: 0x8D89, - 23824 - 11905: 0x8D8A, - 23825 - 11905: 0x8D8B, - 23826 - 11905: 0x8D8C, - 23827 - 11905: 0x8D8D, - 23828 - 11905: 0xB4DE, - 23829 - 11905: 0x8D8E, - 23830 - 11905: 0xD1C2, - 23831 - 11905: 0x8D8F, - 23832 - 11905: 0x8D90, - 23833 - 11905: 0x8D91, - 23834 - 11905: 0x8D92, - 23835 - 11905: 0xE1C8, - 23836 - 11905: 0x8D93, - 23837 - 11905: 0x8D94, - 23838 - 11905: 0xE1C6, - 23839 - 11905: 0x8D95, - 23840 - 11905: 0x8D96, - 23841 - 11905: 0x8D97, - 23842 - 11905: 0x8D98, - 23843 - 11905: 0x8D99, - 23844 - 11905: 0xE1C5, - 23845 - 11905: 0x8D9A, - 23846 - 11905: 0xE1C3, - 23847 - 11905: 0xE1C2, - 23848 - 11905: 0x8D9B, - 23849 - 11905: 0xB1C0, - 23850 - 11905: 0x8D9C, - 23851 - 11905: 0x8D9D, - 23852 - 11905: 0x8D9E, - 23853 - 11905: 0xD5B8, - 23854 - 11905: 0xE1C4, - 23855 - 11905: 0x8D9F, - 23856 - 11905: 0x8DA0, - 23857 - 11905: 0x8DA1, - 23858 - 11905: 0x8DA2, - 23859 - 11905: 0x8DA3, - 23860 - 11905: 0xE1CB, - 23861 - 11905: 0x8DA4, - 23862 - 11905: 0x8DA5, - 23863 - 11905: 0x8DA6, - 23864 - 11905: 0x8DA7, - 23865 - 11905: 0x8DA8, - 23866 - 11905: 0x8DA9, - 23867 - 11905: 0x8DAA, - 23868 - 11905: 0x8DAB, - 23869 - 11905: 0xE1CC, - 23870 - 11905: 0xE1CA, - 23871 - 11905: 0x8DAC, - 23872 - 11905: 0x8DAD, - 23873 - 11905: 0x8DAE, - 23874 - 11905: 0x8DAF, - 23875 - 11905: 0x8DB0, - 23876 - 11905: 0x8DB1, - 23877 - 11905: 0x8DB2, - 23878 - 11905: 0x8DB3, - 23879 - 11905: 0xEFFA, - 23880 - 11905: 0x8DB4, - 23881 - 11905: 0x8DB5, - 23882 - 11905: 0xE1D3, - 23883 - 11905: 0xE1D2, - 23884 - 11905: 0xC7B6, - 23885 - 11905: 0x8DB6, - 23886 - 11905: 0x8DB7, - 23887 - 11905: 0x8DB8, - 23888 - 11905: 0x8DB9, - 23889 - 11905: 0x8DBA, - 23890 - 11905: 0x8DBB, - 23891 - 11905: 0x8DBC, - 23892 - 11905: 0x8DBD, - 23893 - 11905: 0x8DBE, - 23894 - 11905: 0x8DBF, - 23895 - 11905: 0x8DC0, - 23896 - 11905: 0xE1C9, - 23897 - 11905: 0x8DC1, - 23898 - 11905: 0x8DC2, - 23899 - 11905: 0xE1CE, - 23900 - 11905: 0x8DC3, - 23901 - 11905: 0xE1D0, - 23902 - 11905: 0x8DC4, - 23903 - 11905: 0x8DC5, - 23904 - 11905: 0x8DC6, - 23905 - 11905: 0x8DC7, - 23906 - 11905: 0x8DC8, - 23907 - 11905: 0x8DC9, - 23908 - 11905: 0x8DCA, - 23909 - 11905: 0x8DCB, - 23910 - 11905: 0x8DCC, - 23911 - 11905: 0x8DCD, - 23912 - 11905: 0x8DCE, - 23913 - 11905: 0xE1D4, - 23914 - 11905: 0x8DCF, - 23915 - 11905: 0xE1D1, - 23916 - 11905: 0xE1CD, - 23917 - 11905: 0x8DD0, - 23918 - 11905: 0x8DD1, - 23919 - 11905: 0xE1CF, - 23920 - 11905: 0x8DD2, - 23921 - 11905: 0x8DD3, - 23922 - 11905: 0x8DD4, - 23923 - 11905: 0x8DD5, - 23924 - 11905: 0xE1D5, - 23925 - 11905: 0x8DD6, - 23926 - 11905: 0x8DD7, - 23927 - 11905: 0x8DD8, - 23928 - 11905: 0x8DD9, - 23929 - 11905: 0x8DDA, - 23930 - 11905: 0x8DDB, - 23931 - 11905: 0x8DDC, - 23932 - 11905: 0x8DDD, - 23933 - 11905: 0x8DDE, - 23934 - 11905: 0x8DDF, - 23935 - 11905: 0x8DE0, - 23936 - 11905: 0x8DE1, - 23937 - 11905: 0x8DE2, - 23938 - 11905: 0xE1D6, - 23939 - 11905: 0x8DE3, - 23940 - 11905: 0x8DE4, - 23941 - 11905: 0x8DE5, - 23942 - 11905: 0x8DE6, - 23943 - 11905: 0x8DE7, - 23944 - 11905: 0x8DE8, - 23945 - 11905: 0x8DE9, - 23946 - 11905: 0x8DEA, - 23947 - 11905: 0x8DEB, - 23948 - 11905: 0x8DEC, - 23949 - 11905: 0x8DED, - 23950 - 11905: 0x8DEE, - 23951 - 11905: 0x8DEF, - 23952 - 11905: 0x8DF0, - 23953 - 11905: 0x8DF1, - 23954 - 11905: 0x8DF2, - 23955 - 11905: 0x8DF3, - 23956 - 11905: 0x8DF4, - 23957 - 11905: 0x8DF5, - 23958 - 11905: 0x8DF6, - 23959 - 11905: 0x8DF7, - 23960 - 11905: 0x8DF8, - 23961 - 11905: 0xE1D7, - 23962 - 11905: 0x8DF9, - 23963 - 11905: 0x8DFA, - 23964 - 11905: 0x8DFB, - 23965 - 11905: 0xE1D8, - 23966 - 11905: 0x8DFC, - 23967 - 11905: 0x8DFD, - 23968 - 11905: 0x8DFE, - 23969 - 11905: 0x8E40, - 23970 - 11905: 0x8E41, - 23971 - 11905: 0x8E42, - 23972 - 11905: 0x8E43, - 23973 - 11905: 0x8E44, - 23974 - 11905: 0x8E45, - 23975 - 11905: 0x8E46, - 23976 - 11905: 0x8E47, - 23977 - 11905: 0x8E48, - 23978 - 11905: 0x8E49, - 23979 - 11905: 0x8E4A, - 23980 - 11905: 0x8E4B, - 23981 - 11905: 0x8E4C, - 23982 - 11905: 0x8E4D, - 23983 - 11905: 0x8E4E, - 23984 - 11905: 0x8E4F, - 23985 - 11905: 0x8E50, - 23986 - 11905: 0x8E51, - 23987 - 11905: 0x8E52, - 23988 - 11905: 0x8E53, - 23989 - 11905: 0x8E54, - 23990 - 11905: 0x8E55, - 23991 - 11905: 0xE1DA, - 23992 - 11905: 0x8E56, - 23993 - 11905: 0x8E57, - 23994 - 11905: 0x8E58, - 23995 - 11905: 0x8E59, - 23996 - 11905: 0x8E5A, - 23997 - 11905: 0x8E5B, - 23998 - 11905: 0x8E5C, - 23999 - 11905: 0x8E5D, - 24000 - 11905: 0x8E5E, - 24001 - 11905: 0x8E5F, - 24002 - 11905: 0x8E60, - 24003 - 11905: 0x8E61, - 24004 - 11905: 0x8E62, - 24005 - 11905: 0xE1DB, - 24006 - 11905: 0x8E63, - 24007 - 11905: 0x8E64, - 24008 - 11905: 0x8E65, - 24009 - 11905: 0x8E66, - 24010 - 11905: 0x8E67, - 24011 - 11905: 0x8E68, - 24012 - 11905: 0x8E69, - 24013 - 11905: 0xCEA1, - 24014 - 11905: 0x8E6A, - 24015 - 11905: 0x8E6B, - 24016 - 11905: 0x8E6C, - 24017 - 11905: 0x8E6D, - 24018 - 11905: 0x8E6E, - 24019 - 11905: 0x8E6F, - 24020 - 11905: 0x8E70, - 24021 - 11905: 0x8E71, - 24022 - 11905: 0x8E72, - 24023 - 11905: 0x8E73, - 24024 - 11905: 0x8E74, - 24025 - 11905: 0x8E75, - 24026 - 11905: 0x8E76, - 24027 - 11905: 0xE7DD, - 24028 - 11905: 0x8E77, - 24029 - 11905: 0xB4A8, - 24030 - 11905: 0xD6DD, - 24031 - 11905: 0x8E78, - 24032 - 11905: 0x8E79, - 24033 - 11905: 0xD1B2, - 24034 - 11905: 0xB3B2, - 24035 - 11905: 0x8E7A, - 24036 - 11905: 0x8E7B, - 24037 - 11905: 0xB9A4, - 24038 - 11905: 0xD7F3, - 24039 - 11905: 0xC7C9, - 24040 - 11905: 0xBEDE, - 24041 - 11905: 0xB9AE, - 24042 - 11905: 0x8E7C, - 24043 - 11905: 0xCED7, - 24044 - 11905: 0x8E7D, - 24045 - 11905: 0x8E7E, - 24046 - 11905: 0xB2EE, - 24047 - 11905: 0xDBCF, - 24048 - 11905: 0x8E80, - 24049 - 11905: 0xBCBA, - 24050 - 11905: 0xD2D1, - 24051 - 11905: 0xCBC8, - 24052 - 11905: 0xB0CD, - 24053 - 11905: 0x8E81, - 24054 - 11905: 0x8E82, - 24055 - 11905: 0xCFEF, - 24056 - 11905: 0x8E83, - 24057 - 11905: 0x8E84, - 24058 - 11905: 0x8E85, - 24059 - 11905: 0x8E86, - 24060 - 11905: 0x8E87, - 24061 - 11905: 0xD9E3, - 24062 - 11905: 0xBDED, - 24063 - 11905: 0x8E88, - 24064 - 11905: 0x8E89, - 24065 - 11905: 0xB1D2, - 24066 - 11905: 0xCAD0, - 24067 - 11905: 0xB2BC, - 24068 - 11905: 0x8E8A, - 24069 - 11905: 0xCBA7, - 24070 - 11905: 0xB7AB, - 24071 - 11905: 0x8E8B, - 24072 - 11905: 0xCAA6, - 24073 - 11905: 0x8E8C, - 24074 - 11905: 0x8E8D, - 24075 - 11905: 0x8E8E, - 24076 - 11905: 0xCFA3, - 24077 - 11905: 0x8E8F, - 24078 - 11905: 0x8E90, - 24079 - 11905: 0xE0F8, - 24080 - 11905: 0xD5CA, - 24081 - 11905: 0xE0FB, - 24082 - 11905: 0x8E91, - 24083 - 11905: 0x8E92, - 24084 - 11905: 0xE0FA, - 24085 - 11905: 0xC5C1, - 24086 - 11905: 0xCCFB, - 24087 - 11905: 0x8E93, - 24088 - 11905: 0xC1B1, - 24089 - 11905: 0xE0F9, - 24090 - 11905: 0xD6E3, - 24091 - 11905: 0xB2AF, - 24092 - 11905: 0xD6C4, - 24093 - 11905: 0xB5DB, - 24094 - 11905: 0x8E94, - 24095 - 11905: 0x8E95, - 24096 - 11905: 0x8E96, - 24097 - 11905: 0x8E97, - 24098 - 11905: 0x8E98, - 24099 - 11905: 0x8E99, - 24100 - 11905: 0x8E9A, - 24101 - 11905: 0x8E9B, - 24102 - 11905: 0xB4F8, - 24103 - 11905: 0xD6A1, - 24104 - 11905: 0x8E9C, - 24105 - 11905: 0x8E9D, - 24106 - 11905: 0x8E9E, - 24107 - 11905: 0x8E9F, - 24108 - 11905: 0x8EA0, - 24109 - 11905: 0xCFAF, - 24110 - 11905: 0xB0EF, - 24111 - 11905: 0x8EA1, - 24112 - 11905: 0x8EA2, - 24113 - 11905: 0xE0FC, - 24114 - 11905: 0x8EA3, - 24115 - 11905: 0x8EA4, - 24116 - 11905: 0x8EA5, - 24117 - 11905: 0x8EA6, - 24118 - 11905: 0x8EA7, - 24119 - 11905: 0xE1A1, - 24120 - 11905: 0xB3A3, - 24121 - 11905: 0x8EA8, - 24122 - 11905: 0x8EA9, - 24123 - 11905: 0xE0FD, - 24124 - 11905: 0xE0FE, - 24125 - 11905: 0xC3B1, - 24126 - 11905: 0x8EAA, - 24127 - 11905: 0x8EAB, - 24128 - 11905: 0x8EAC, - 24129 - 11905: 0x8EAD, - 24130 - 11905: 0xC3DD, - 24131 - 11905: 0x8EAE, - 24132 - 11905: 0xE1A2, - 24133 - 11905: 0xB7F9, - 24134 - 11905: 0x8EAF, - 24135 - 11905: 0x8EB0, - 24136 - 11905: 0x8EB1, - 24137 - 11905: 0x8EB2, - 24138 - 11905: 0x8EB3, - 24139 - 11905: 0x8EB4, - 24140 - 11905: 0xBBCF, - 24141 - 11905: 0x8EB5, - 24142 - 11905: 0x8EB6, - 24143 - 11905: 0x8EB7, - 24144 - 11905: 0x8EB8, - 24145 - 11905: 0x8EB9, - 24146 - 11905: 0x8EBA, - 24147 - 11905: 0x8EBB, - 24148 - 11905: 0xE1A3, - 24149 - 11905: 0xC4BB, - 24150 - 11905: 0x8EBC, - 24151 - 11905: 0x8EBD, - 24152 - 11905: 0x8EBE, - 24153 - 11905: 0x8EBF, - 24154 - 11905: 0x8EC0, - 24155 - 11905: 0xE1A4, - 24156 - 11905: 0x8EC1, - 24157 - 11905: 0x8EC2, - 24158 - 11905: 0xE1A5, - 24159 - 11905: 0x8EC3, - 24160 - 11905: 0x8EC4, - 24161 - 11905: 0xE1A6, - 24162 - 11905: 0xB4B1, - 24163 - 11905: 0x8EC5, - 24164 - 11905: 0x8EC6, - 24165 - 11905: 0x8EC7, - 24166 - 11905: 0x8EC8, - 24167 - 11905: 0x8EC9, - 24168 - 11905: 0x8ECA, - 24169 - 11905: 0x8ECB, - 24170 - 11905: 0x8ECC, - 24171 - 11905: 0x8ECD, - 24172 - 11905: 0x8ECE, - 24173 - 11905: 0x8ECF, - 24174 - 11905: 0x8ED0, - 24175 - 11905: 0x8ED1, - 24176 - 11905: 0x8ED2, - 24177 - 11905: 0x8ED3, - 24178 - 11905: 0xB8C9, - 24179 - 11905: 0xC6BD, - 24180 - 11905: 0xC4EA, - 24181 - 11905: 0x8ED4, - 24182 - 11905: 0xB2A2, - 24183 - 11905: 0x8ED5, - 24184 - 11905: 0xD0D2, - 24185 - 11905: 0x8ED6, - 24186 - 11905: 0xE7DB, - 24187 - 11905: 0xBBC3, - 24188 - 11905: 0xD3D7, - 24189 - 11905: 0xD3C4, - 24190 - 11905: 0x8ED7, - 24191 - 11905: 0xB9E3, - 24192 - 11905: 0xE2CF, - 24193 - 11905: 0x8ED8, - 24194 - 11905: 0x8ED9, - 24195 - 11905: 0x8EDA, - 24196 - 11905: 0xD7AF, - 24197 - 11905: 0x8EDB, - 24198 - 11905: 0xC7EC, - 24199 - 11905: 0xB1D3, - 24200 - 11905: 0x8EDC, - 24201 - 11905: 0x8EDD, - 24202 - 11905: 0xB4B2, - 24203 - 11905: 0xE2D1, - 24204 - 11905: 0x8EDE, - 24205 - 11905: 0x8EDF, - 24206 - 11905: 0x8EE0, - 24207 - 11905: 0xD0F2, - 24208 - 11905: 0xC2AE, - 24209 - 11905: 0xE2D0, - 24210 - 11905: 0x8EE1, - 24211 - 11905: 0xBFE2, - 24212 - 11905: 0xD3A6, - 24213 - 11905: 0xB5D7, - 24214 - 11905: 0xE2D2, - 24215 - 11905: 0xB5EA, - 24216 - 11905: 0x8EE2, - 24217 - 11905: 0xC3ED, - 24218 - 11905: 0xB8FD, - 24219 - 11905: 0x8EE3, - 24220 - 11905: 0xB8AE, - 24221 - 11905: 0x8EE4, - 24222 - 11905: 0xC5D3, - 24223 - 11905: 0xB7CF, - 24224 - 11905: 0xE2D4, - 24225 - 11905: 0x8EE5, - 24226 - 11905: 0x8EE6, - 24227 - 11905: 0x8EE7, - 24228 - 11905: 0x8EE8, - 24229 - 11905: 0xE2D3, - 24230 - 11905: 0xB6C8, - 24231 - 11905: 0xD7F9, - 24232 - 11905: 0x8EE9, - 24233 - 11905: 0x8EEA, - 24234 - 11905: 0x8EEB, - 24235 - 11905: 0x8EEC, - 24236 - 11905: 0x8EED, - 24237 - 11905: 0xCDA5, - 24238 - 11905: 0x8EEE, - 24239 - 11905: 0x8EEF, - 24240 - 11905: 0x8EF0, - 24241 - 11905: 0x8EF1, - 24242 - 11905: 0x8EF2, - 24243 - 11905: 0xE2D8, - 24244 - 11905: 0x8EF3, - 24245 - 11905: 0xE2D6, - 24246 - 11905: 0xCAFC, - 24247 - 11905: 0xBFB5, - 24248 - 11905: 0xD3B9, - 24249 - 11905: 0xE2D5, - 24250 - 11905: 0x8EF4, - 24251 - 11905: 0x8EF5, - 24252 - 11905: 0x8EF6, - 24253 - 11905: 0x8EF7, - 24254 - 11905: 0xE2D7, - 24255 - 11905: 0x8EF8, - 24256 - 11905: 0x8EF9, - 24257 - 11905: 0x8EFA, - 24258 - 11905: 0x8EFB, - 24259 - 11905: 0x8EFC, - 24260 - 11905: 0x8EFD, - 24261 - 11905: 0x8EFE, - 24262 - 11905: 0x8F40, - 24263 - 11905: 0x8F41, - 24264 - 11905: 0x8F42, - 24265 - 11905: 0xC1AE, - 24266 - 11905: 0xC0C8, - 24267 - 11905: 0x8F43, - 24268 - 11905: 0x8F44, - 24269 - 11905: 0x8F45, - 24270 - 11905: 0x8F46, - 24271 - 11905: 0x8F47, - 24272 - 11905: 0x8F48, - 24273 - 11905: 0xE2DB, - 24274 - 11905: 0xE2DA, - 24275 - 11905: 0xC0AA, - 24276 - 11905: 0x8F49, - 24277 - 11905: 0x8F4A, - 24278 - 11905: 0xC1CE, - 24279 - 11905: 0x8F4B, - 24280 - 11905: 0x8F4C, - 24281 - 11905: 0x8F4D, - 24282 - 11905: 0x8F4E, - 24283 - 11905: 0xE2DC, - 24284 - 11905: 0x8F4F, - 24285 - 11905: 0x8F50, - 24286 - 11905: 0x8F51, - 24287 - 11905: 0x8F52, - 24288 - 11905: 0x8F53, - 24289 - 11905: 0x8F54, - 24290 - 11905: 0x8F55, - 24291 - 11905: 0x8F56, - 24292 - 11905: 0x8F57, - 24293 - 11905: 0x8F58, - 24294 - 11905: 0x8F59, - 24295 - 11905: 0x8F5A, - 24296 - 11905: 0xE2DD, - 24297 - 11905: 0x8F5B, - 24298 - 11905: 0xE2DE, - 24299 - 11905: 0x8F5C, - 24300 - 11905: 0x8F5D, - 24301 - 11905: 0x8F5E, - 24302 - 11905: 0x8F5F, - 24303 - 11905: 0x8F60, - 24304 - 11905: 0x8F61, - 24305 - 11905: 0x8F62, - 24306 - 11905: 0x8F63, - 24307 - 11905: 0x8F64, - 24308 - 11905: 0xDBC8, - 24309 - 11905: 0x8F65, - 24310 - 11905: 0xD1D3, - 24311 - 11905: 0xCDA2, - 24312 - 11905: 0x8F66, - 24313 - 11905: 0x8F67, - 24314 - 11905: 0xBDA8, - 24315 - 11905: 0x8F68, - 24316 - 11905: 0x8F69, - 24317 - 11905: 0x8F6A, - 24318 - 11905: 0xDEC3, - 24319 - 11905: 0xD8A5, - 24320 - 11905: 0xBFAA, - 24321 - 11905: 0xDBCD, - 24322 - 11905: 0xD2EC, - 24323 - 11905: 0xC6FA, - 24324 - 11905: 0xC5AA, - 24325 - 11905: 0x8F6B, - 24326 - 11905: 0x8F6C, - 24327 - 11905: 0x8F6D, - 24328 - 11905: 0xDEC4, - 24329 - 11905: 0x8F6E, - 24330 - 11905: 0xB1D7, - 24331 - 11905: 0xDFAE, - 24332 - 11905: 0x8F6F, - 24333 - 11905: 0x8F70, - 24334 - 11905: 0x8F71, - 24335 - 11905: 0xCABD, - 24336 - 11905: 0x8F72, - 24337 - 11905: 0xDFB1, - 24338 - 11905: 0x8F73, - 24339 - 11905: 0xB9AD, - 24340 - 11905: 0x8F74, - 24341 - 11905: 0xD2FD, - 24342 - 11905: 0x8F75, - 24343 - 11905: 0xB8A5, - 24344 - 11905: 0xBAEB, - 24345 - 11905: 0x8F76, - 24346 - 11905: 0x8F77, - 24347 - 11905: 0xB3DA, - 24348 - 11905: 0x8F78, - 24349 - 11905: 0x8F79, - 24350 - 11905: 0x8F7A, - 24351 - 11905: 0xB5DC, - 24352 - 11905: 0xD5C5, - 24353 - 11905: 0x8F7B, - 24354 - 11905: 0x8F7C, - 24355 - 11905: 0x8F7D, - 24356 - 11905: 0x8F7E, - 24357 - 11905: 0xC3D6, - 24358 - 11905: 0xCFD2, - 24359 - 11905: 0xBBA1, - 24360 - 11905: 0x8F80, - 24361 - 11905: 0xE5F3, - 24362 - 11905: 0xE5F2, - 24363 - 11905: 0x8F81, - 24364 - 11905: 0x8F82, - 24365 - 11905: 0xE5F4, - 24366 - 11905: 0x8F83, - 24367 - 11905: 0xCDE4, - 24368 - 11905: 0x8F84, - 24369 - 11905: 0xC8F5, - 24370 - 11905: 0x8F85, - 24371 - 11905: 0x8F86, - 24372 - 11905: 0x8F87, - 24373 - 11905: 0x8F88, - 24374 - 11905: 0x8F89, - 24375 - 11905: 0x8F8A, - 24376 - 11905: 0x8F8B, - 24377 - 11905: 0xB5AF, - 24378 - 11905: 0xC7BF, - 24379 - 11905: 0x8F8C, - 24380 - 11905: 0xE5F6, - 24381 - 11905: 0x8F8D, - 24382 - 11905: 0x8F8E, - 24383 - 11905: 0x8F8F, - 24384 - 11905: 0xECB0, - 24385 - 11905: 0x8F90, - 24386 - 11905: 0x8F91, - 24387 - 11905: 0x8F92, - 24388 - 11905: 0x8F93, - 24389 - 11905: 0x8F94, - 24390 - 11905: 0x8F95, - 24391 - 11905: 0x8F96, - 24392 - 11905: 0x8F97, - 24393 - 11905: 0x8F98, - 24394 - 11905: 0x8F99, - 24395 - 11905: 0x8F9A, - 24396 - 11905: 0x8F9B, - 24397 - 11905: 0x8F9C, - 24398 - 11905: 0x8F9D, - 24399 - 11905: 0x8F9E, - 24400 - 11905: 0xE5E6, - 24401 - 11905: 0x8F9F, - 24402 - 11905: 0xB9E9, - 24403 - 11905: 0xB5B1, - 24404 - 11905: 0x8FA0, - 24405 - 11905: 0xC2BC, - 24406 - 11905: 0xE5E8, - 24407 - 11905: 0xE5E7, - 24408 - 11905: 0xE5E9, - 24409 - 11905: 0x8FA1, - 24410 - 11905: 0x8FA2, - 24411 - 11905: 0x8FA3, - 24412 - 11905: 0x8FA4, - 24413 - 11905: 0xD2CD, - 24414 - 11905: 0x8FA5, - 24415 - 11905: 0x8FA6, - 24416 - 11905: 0x8FA7, - 24417 - 11905: 0xE1EA, - 24418 - 11905: 0xD0CE, - 24419 - 11905: 0x8FA8, - 24420 - 11905: 0xCDAE, - 24421 - 11905: 0x8FA9, - 24422 - 11905: 0xD1E5, - 24423 - 11905: 0x8FAA, - 24424 - 11905: 0x8FAB, - 24425 - 11905: 0xB2CA, - 24426 - 11905: 0xB1EB, - 24427 - 11905: 0x8FAC, - 24428 - 11905: 0xB1F2, - 24429 - 11905: 0xC5ED, - 24430 - 11905: 0x8FAD, - 24431 - 11905: 0x8FAE, - 24432 - 11905: 0xD5C3, - 24433 - 11905: 0xD3B0, - 24434 - 11905: 0x8FAF, - 24435 - 11905: 0xE1DC, - 24436 - 11905: 0x8FB0, - 24437 - 11905: 0x8FB1, - 24438 - 11905: 0x8FB2, - 24439 - 11905: 0xE1DD, - 24440 - 11905: 0x8FB3, - 24441 - 11905: 0xD2DB, - 24442 - 11905: 0x8FB4, - 24443 - 11905: 0xB3B9, - 24444 - 11905: 0xB1CB, - 24445 - 11905: 0x8FB5, - 24446 - 11905: 0x8FB6, - 24447 - 11905: 0x8FB7, - 24448 - 11905: 0xCDF9, - 24449 - 11905: 0xD5F7, - 24450 - 11905: 0xE1DE, - 24451 - 11905: 0x8FB8, - 24452 - 11905: 0xBEB6, - 24453 - 11905: 0xB4FD, - 24454 - 11905: 0x8FB9, - 24455 - 11905: 0xE1DF, - 24456 - 11905: 0xBADC, - 24457 - 11905: 0xE1E0, - 24458 - 11905: 0xBBB2, - 24459 - 11905: 0xC2C9, - 24460 - 11905: 0xE1E1, - 24461 - 11905: 0x8FBA, - 24462 - 11905: 0x8FBB, - 24463 - 11905: 0x8FBC, - 24464 - 11905: 0xD0EC, - 24465 - 11905: 0x8FBD, - 24466 - 11905: 0xCDBD, - 24467 - 11905: 0x8FBE, - 24468 - 11905: 0x8FBF, - 24469 - 11905: 0xE1E2, - 24470 - 11905: 0x8FC0, - 24471 - 11905: 0xB5C3, - 24472 - 11905: 0xC5C7, - 24473 - 11905: 0xE1E3, - 24474 - 11905: 0x8FC1, - 24475 - 11905: 0x8FC2, - 24476 - 11905: 0xE1E4, - 24477 - 11905: 0x8FC3, - 24478 - 11905: 0x8FC4, - 24479 - 11905: 0x8FC5, - 24480 - 11905: 0x8FC6, - 24481 - 11905: 0xD3F9, - 24482 - 11905: 0x8FC7, - 24483 - 11905: 0x8FC8, - 24484 - 11905: 0x8FC9, - 24485 - 11905: 0x8FCA, - 24486 - 11905: 0x8FCB, - 24487 - 11905: 0x8FCC, - 24488 - 11905: 0xE1E5, - 24489 - 11905: 0x8FCD, - 24490 - 11905: 0xD1AD, - 24491 - 11905: 0x8FCE, - 24492 - 11905: 0x8FCF, - 24493 - 11905: 0xE1E6, - 24494 - 11905: 0xCEA2, - 24495 - 11905: 0x8FD0, - 24496 - 11905: 0x8FD1, - 24497 - 11905: 0x8FD2, - 24498 - 11905: 0x8FD3, - 24499 - 11905: 0x8FD4, - 24500 - 11905: 0x8FD5, - 24501 - 11905: 0xE1E7, - 24502 - 11905: 0x8FD6, - 24503 - 11905: 0xB5C2, - 24504 - 11905: 0x8FD7, - 24505 - 11905: 0x8FD8, - 24506 - 11905: 0x8FD9, - 24507 - 11905: 0x8FDA, - 24508 - 11905: 0xE1E8, - 24509 - 11905: 0xBBD5, - 24510 - 11905: 0x8FDB, - 24511 - 11905: 0x8FDC, - 24512 - 11905: 0x8FDD, - 24513 - 11905: 0x8FDE, - 24514 - 11905: 0x8FDF, - 24515 - 11905: 0xD0C4, - 24516 - 11905: 0xE2E0, - 24517 - 11905: 0xB1D8, - 24518 - 11905: 0xD2E4, - 24519 - 11905: 0x8FE0, - 24520 - 11905: 0x8FE1, - 24521 - 11905: 0xE2E1, - 24522 - 11905: 0x8FE2, - 24523 - 11905: 0x8FE3, - 24524 - 11905: 0xBCC9, - 24525 - 11905: 0xC8CC, - 24526 - 11905: 0x8FE4, - 24527 - 11905: 0xE2E3, - 24528 - 11905: 0xECFE, - 24529 - 11905: 0xECFD, - 24530 - 11905: 0xDFAF, - 24531 - 11905: 0x8FE5, - 24532 - 11905: 0x8FE6, - 24533 - 11905: 0x8FE7, - 24534 - 11905: 0xE2E2, - 24535 - 11905: 0xD6BE, - 24536 - 11905: 0xCDFC, - 24537 - 11905: 0xC3A6, - 24538 - 11905: 0x8FE8, - 24539 - 11905: 0x8FE9, - 24540 - 11905: 0x8FEA, - 24541 - 11905: 0xE3C3, - 24542 - 11905: 0x8FEB, - 24543 - 11905: 0x8FEC, - 24544 - 11905: 0xD6D2, - 24545 - 11905: 0xE2E7, - 24546 - 11905: 0x8FED, - 24547 - 11905: 0x8FEE, - 24548 - 11905: 0xE2E8, - 24549 - 11905: 0x8FEF, - 24550 - 11905: 0x8FF0, - 24551 - 11905: 0xD3C7, - 24552 - 11905: 0x8FF1, - 24553 - 11905: 0x8FF2, - 24554 - 11905: 0xE2EC, - 24555 - 11905: 0xBFEC, - 24556 - 11905: 0x8FF3, - 24557 - 11905: 0xE2ED, - 24558 - 11905: 0xE2E5, - 24559 - 11905: 0x8FF4, - 24560 - 11905: 0x8FF5, - 24561 - 11905: 0xB3C0, - 24562 - 11905: 0x8FF6, - 24563 - 11905: 0x8FF7, - 24564 - 11905: 0x8FF8, - 24565 - 11905: 0xC4EE, - 24566 - 11905: 0x8FF9, - 24567 - 11905: 0x8FFA, - 24568 - 11905: 0xE2EE, - 24569 - 11905: 0x8FFB, - 24570 - 11905: 0x8FFC, - 24571 - 11905: 0xD0C3, - 24572 - 11905: 0x8FFD, - 24573 - 11905: 0xBAF6, - 24574 - 11905: 0xE2E9, - 24575 - 11905: 0xB7DE, - 24576 - 11905: 0xBBB3, - 24577 - 11905: 0xCCAC, - 24578 - 11905: 0xCBCB, - 24579 - 11905: 0xE2E4, - 24580 - 11905: 0xE2E6, - 24581 - 11905: 0xE2EA, - 24582 - 11905: 0xE2EB, - 24583 - 11905: 0x8FFE, - 24584 - 11905: 0x9040, - 24585 - 11905: 0x9041, - 24586 - 11905: 0xE2F7, - 24587 - 11905: 0x9042, - 24588 - 11905: 0x9043, - 24589 - 11905: 0xE2F4, - 24590 - 11905: 0xD4F5, - 24591 - 11905: 0xE2F3, - 24592 - 11905: 0x9044, - 24593 - 11905: 0x9045, - 24594 - 11905: 0xC5AD, - 24595 - 11905: 0x9046, - 24596 - 11905: 0xD5FA, - 24597 - 11905: 0xC5C2, - 24598 - 11905: 0xB2C0, - 24599 - 11905: 0x9047, - 24600 - 11905: 0x9048, - 24601 - 11905: 0xE2EF, - 24602 - 11905: 0x9049, - 24603 - 11905: 0xE2F2, - 24604 - 11905: 0xC1AF, - 24605 - 11905: 0xCBBC, - 24606 - 11905: 0x904A, - 24607 - 11905: 0x904B, - 24608 - 11905: 0xB5A1, - 24609 - 11905: 0xE2F9, - 24610 - 11905: 0x904C, - 24611 - 11905: 0x904D, - 24612 - 11905: 0x904E, - 24613 - 11905: 0xBCB1, - 24614 - 11905: 0xE2F1, - 24615 - 11905: 0xD0D4, - 24616 - 11905: 0xD4B9, - 24617 - 11905: 0xE2F5, - 24618 - 11905: 0xB9D6, - 24619 - 11905: 0xE2F6, - 24620 - 11905: 0x904F, - 24621 - 11905: 0x9050, - 24622 - 11905: 0x9051, - 24623 - 11905: 0xC7D3, - 24624 - 11905: 0x9052, - 24625 - 11905: 0x9053, - 24626 - 11905: 0x9054, - 24627 - 11905: 0x9055, - 24628 - 11905: 0x9056, - 24629 - 11905: 0xE2F0, - 24630 - 11905: 0x9057, - 24631 - 11905: 0x9058, - 24632 - 11905: 0x9059, - 24633 - 11905: 0x905A, - 24634 - 11905: 0x905B, - 24635 - 11905: 0xD7DC, - 24636 - 11905: 0xEDA1, - 24637 - 11905: 0x905C, - 24638 - 11905: 0x905D, - 24639 - 11905: 0xE2F8, - 24640 - 11905: 0x905E, - 24641 - 11905: 0xEDA5, - 24642 - 11905: 0xE2FE, - 24643 - 11905: 0xCAD1, - 24644 - 11905: 0x905F, - 24645 - 11905: 0x9060, - 24646 - 11905: 0x9061, - 24647 - 11905: 0x9062, - 24648 - 11905: 0x9063, - 24649 - 11905: 0x9064, - 24650 - 11905: 0x9065, - 24651 - 11905: 0xC1B5, - 24652 - 11905: 0x9066, - 24653 - 11905: 0xBBD0, - 24654 - 11905: 0x9067, - 24655 - 11905: 0x9068, - 24656 - 11905: 0xBFD6, - 24657 - 11905: 0x9069, - 24658 - 11905: 0xBAE3, - 24659 - 11905: 0x906A, - 24660 - 11905: 0x906B, - 24661 - 11905: 0xCBA1, - 24662 - 11905: 0x906C, - 24663 - 11905: 0x906D, - 24664 - 11905: 0x906E, - 24665 - 11905: 0xEDA6, - 24666 - 11905: 0xEDA3, - 24667 - 11905: 0x906F, - 24668 - 11905: 0x9070, - 24669 - 11905: 0xEDA2, - 24670 - 11905: 0x9071, - 24671 - 11905: 0x9072, - 24672 - 11905: 0x9073, - 24673 - 11905: 0x9074, - 24674 - 11905: 0xBBD6, - 24675 - 11905: 0xEDA7, - 24676 - 11905: 0xD0F4, - 24677 - 11905: 0x9075, - 24678 - 11905: 0x9076, - 24679 - 11905: 0xEDA4, - 24680 - 11905: 0xBADE, - 24681 - 11905: 0xB6F7, - 24682 - 11905: 0xE3A1, - 24683 - 11905: 0xB6B2, - 24684 - 11905: 0xCCF1, - 24685 - 11905: 0xB9A7, - 24686 - 11905: 0x9077, - 24687 - 11905: 0xCFA2, - 24688 - 11905: 0xC7A1, - 24689 - 11905: 0x9078, - 24690 - 11905: 0x9079, - 24691 - 11905: 0xBFD2, - 24692 - 11905: 0x907A, - 24693 - 11905: 0x907B, - 24694 - 11905: 0xB6F1, - 24695 - 11905: 0x907C, - 24696 - 11905: 0xE2FA, - 24697 - 11905: 0xE2FB, - 24698 - 11905: 0xE2FD, - 24699 - 11905: 0xE2FC, - 24700 - 11905: 0xC4D5, - 24701 - 11905: 0xE3A2, - 24702 - 11905: 0x907D, - 24703 - 11905: 0xD3C1, - 24704 - 11905: 0x907E, - 24705 - 11905: 0x9080, - 24706 - 11905: 0x9081, - 24707 - 11905: 0xE3A7, - 24708 - 11905: 0xC7C4, - 24709 - 11905: 0x9082, - 24710 - 11905: 0x9083, - 24711 - 11905: 0x9084, - 24712 - 11905: 0x9085, - 24713 - 11905: 0xCFA4, - 24714 - 11905: 0x9086, - 24715 - 11905: 0x9087, - 24716 - 11905: 0xE3A9, - 24717 - 11905: 0xBAB7, - 24718 - 11905: 0x9088, - 24719 - 11905: 0x9089, - 24720 - 11905: 0x908A, - 24721 - 11905: 0x908B, - 24722 - 11905: 0xE3A8, - 24723 - 11905: 0x908C, - 24724 - 11905: 0xBBDA, - 24725 - 11905: 0x908D, - 24726 - 11905: 0xE3A3, - 24727 - 11905: 0x908E, - 24728 - 11905: 0x908F, - 24729 - 11905: 0x9090, - 24730 - 11905: 0xE3A4, - 24731 - 11905: 0xE3AA, - 24732 - 11905: 0x9091, - 24733 - 11905: 0xE3A6, - 24734 - 11905: 0x9092, - 24735 - 11905: 0xCEF2, - 24736 - 11905: 0xD3C6, - 24737 - 11905: 0x9093, - 24738 - 11905: 0x9094, - 24739 - 11905: 0xBBBC, - 24740 - 11905: 0x9095, - 24741 - 11905: 0x9096, - 24742 - 11905: 0xD4C3, - 24743 - 11905: 0x9097, - 24744 - 11905: 0xC4FA, - 24745 - 11905: 0x9098, - 24746 - 11905: 0x9099, - 24747 - 11905: 0xEDA8, - 24748 - 11905: 0xD0FC, - 24749 - 11905: 0xE3A5, - 24750 - 11905: 0x909A, - 24751 - 11905: 0xC3F5, - 24752 - 11905: 0x909B, - 24753 - 11905: 0xE3AD, - 24754 - 11905: 0xB1AF, - 24755 - 11905: 0x909C, - 24756 - 11905: 0xE3B2, - 24757 - 11905: 0x909D, - 24758 - 11905: 0x909E, - 24759 - 11905: 0x909F, - 24760 - 11905: 0xBCC2, - 24761 - 11905: 0x90A0, - 24762 - 11905: 0x90A1, - 24763 - 11905: 0xE3AC, - 24764 - 11905: 0xB5BF, - 24765 - 11905: 0x90A2, - 24766 - 11905: 0x90A3, - 24767 - 11905: 0x90A4, - 24768 - 11905: 0x90A5, - 24769 - 11905: 0x90A6, - 24770 - 11905: 0x90A7, - 24771 - 11905: 0x90A8, - 24772 - 11905: 0x90A9, - 24773 - 11905: 0xC7E9, - 24774 - 11905: 0xE3B0, - 24775 - 11905: 0x90AA, - 24776 - 11905: 0x90AB, - 24777 - 11905: 0x90AC, - 24778 - 11905: 0xBEAA, - 24779 - 11905: 0xCDEF, - 24780 - 11905: 0x90AD, - 24781 - 11905: 0x90AE, - 24782 - 11905: 0x90AF, - 24783 - 11905: 0x90B0, - 24784 - 11905: 0x90B1, - 24785 - 11905: 0xBBF3, - 24786 - 11905: 0x90B2, - 24787 - 11905: 0x90B3, - 24788 - 11905: 0x90B4, - 24789 - 11905: 0xCCE8, - 24790 - 11905: 0x90B5, - 24791 - 11905: 0x90B6, - 24792 - 11905: 0xE3AF, - 24793 - 11905: 0x90B7, - 24794 - 11905: 0xE3B1, - 24795 - 11905: 0x90B8, - 24796 - 11905: 0xCFA7, - 24797 - 11905: 0xE3AE, - 24798 - 11905: 0x90B9, - 24799 - 11905: 0xCEA9, - 24800 - 11905: 0xBBDD, - 24801 - 11905: 0x90BA, - 24802 - 11905: 0x90BB, - 24803 - 11905: 0x90BC, - 24804 - 11905: 0x90BD, - 24805 - 11905: 0x90BE, - 24806 - 11905: 0xB5EB, - 24807 - 11905: 0xBEE5, - 24808 - 11905: 0xB2D2, - 24809 - 11905: 0xB3CD, - 24810 - 11905: 0x90BF, - 24811 - 11905: 0xB1B9, - 24812 - 11905: 0xE3AB, - 24813 - 11905: 0xB2D1, - 24814 - 11905: 0xB5AC, - 24815 - 11905: 0xB9DF, - 24816 - 11905: 0xB6E8, - 24817 - 11905: 0x90C0, - 24818 - 11905: 0x90C1, - 24819 - 11905: 0xCFEB, - 24820 - 11905: 0xE3B7, - 24821 - 11905: 0x90C2, - 24822 - 11905: 0xBBCC, - 24823 - 11905: 0x90C3, - 24824 - 11905: 0x90C4, - 24825 - 11905: 0xC8C7, - 24826 - 11905: 0xD0CA, - 24827 - 11905: 0x90C5, - 24828 - 11905: 0x90C6, - 24829 - 11905: 0x90C7, - 24830 - 11905: 0x90C8, - 24831 - 11905: 0x90C9, - 24832 - 11905: 0xE3B8, - 24833 - 11905: 0xB3EE, - 24834 - 11905: 0x90CA, - 24835 - 11905: 0x90CB, - 24836 - 11905: 0x90CC, - 24837 - 11905: 0x90CD, - 24838 - 11905: 0xEDA9, - 24839 - 11905: 0x90CE, - 24840 - 11905: 0xD3FA, - 24841 - 11905: 0xD3E4, - 24842 - 11905: 0x90CF, - 24843 - 11905: 0x90D0, - 24844 - 11905: 0x90D1, - 24845 - 11905: 0xEDAA, - 24846 - 11905: 0xE3B9, - 24847 - 11905: 0xD2E2, - 24848 - 11905: 0x90D2, - 24849 - 11905: 0x90D3, - 24850 - 11905: 0x90D4, - 24851 - 11905: 0x90D5, - 24852 - 11905: 0x90D6, - 24853 - 11905: 0xE3B5, - 24854 - 11905: 0x90D7, - 24855 - 11905: 0x90D8, - 24856 - 11905: 0x90D9, - 24857 - 11905: 0x90DA, - 24858 - 11905: 0xD3DE, - 24859 - 11905: 0x90DB, - 24860 - 11905: 0x90DC, - 24861 - 11905: 0x90DD, - 24862 - 11905: 0x90DE, - 24863 - 11905: 0xB8D0, - 24864 - 11905: 0xE3B3, - 24865 - 11905: 0x90DF, - 24866 - 11905: 0x90E0, - 24867 - 11905: 0xE3B6, - 24868 - 11905: 0xB7DF, - 24869 - 11905: 0x90E1, - 24870 - 11905: 0xE3B4, - 24871 - 11905: 0xC0A2, - 24872 - 11905: 0x90E2, - 24873 - 11905: 0x90E3, - 24874 - 11905: 0x90E4, - 24875 - 11905: 0xE3BA, - 24876 - 11905: 0x90E5, - 24877 - 11905: 0x90E6, - 24878 - 11905: 0x90E7, - 24879 - 11905: 0x90E8, - 24880 - 11905: 0x90E9, - 24881 - 11905: 0x90EA, - 24882 - 11905: 0x90EB, - 24883 - 11905: 0x90EC, - 24884 - 11905: 0x90ED, - 24885 - 11905: 0x90EE, - 24886 - 11905: 0x90EF, - 24887 - 11905: 0x90F0, - 24888 - 11905: 0x90F1, - 24889 - 11905: 0x90F2, - 24890 - 11905: 0x90F3, - 24891 - 11905: 0x90F4, - 24892 - 11905: 0x90F5, - 24893 - 11905: 0x90F6, - 24894 - 11905: 0x90F7, - 24895 - 11905: 0xD4B8, - 24896 - 11905: 0x90F8, - 24897 - 11905: 0x90F9, - 24898 - 11905: 0x90FA, - 24899 - 11905: 0x90FB, - 24900 - 11905: 0x90FC, - 24901 - 11905: 0x90FD, - 24902 - 11905: 0x90FE, - 24903 - 11905: 0x9140, - 24904 - 11905: 0xB4C8, - 24905 - 11905: 0x9141, - 24906 - 11905: 0xE3BB, - 24907 - 11905: 0x9142, - 24908 - 11905: 0xBBC5, - 24909 - 11905: 0x9143, - 24910 - 11905: 0xC9F7, - 24911 - 11905: 0x9144, - 24912 - 11905: 0x9145, - 24913 - 11905: 0xC9E5, - 24914 - 11905: 0x9146, - 24915 - 11905: 0x9147, - 24916 - 11905: 0x9148, - 24917 - 11905: 0xC4BD, - 24918 - 11905: 0x9149, - 24919 - 11905: 0x914A, - 24920 - 11905: 0x914B, - 24921 - 11905: 0x914C, - 24922 - 11905: 0x914D, - 24923 - 11905: 0x914E, - 24924 - 11905: 0x914F, - 24925 - 11905: 0xEDAB, - 24926 - 11905: 0x9150, - 24927 - 11905: 0x9151, - 24928 - 11905: 0x9152, - 24929 - 11905: 0x9153, - 24930 - 11905: 0xC2FD, - 24931 - 11905: 0x9154, - 24932 - 11905: 0x9155, - 24933 - 11905: 0x9156, - 24934 - 11905: 0x9157, - 24935 - 11905: 0xBBDB, - 24936 - 11905: 0xBFAE, - 24937 - 11905: 0x9158, - 24938 - 11905: 0x9159, - 24939 - 11905: 0x915A, - 24940 - 11905: 0x915B, - 24941 - 11905: 0x915C, - 24942 - 11905: 0x915D, - 24943 - 11905: 0x915E, - 24944 - 11905: 0xCEBF, - 24945 - 11905: 0x915F, - 24946 - 11905: 0x9160, - 24947 - 11905: 0x9161, - 24948 - 11905: 0x9162, - 24949 - 11905: 0xE3BC, - 24950 - 11905: 0x9163, - 24951 - 11905: 0xBFB6, - 24952 - 11905: 0x9164, - 24953 - 11905: 0x9165, - 24954 - 11905: 0x9166, - 24955 - 11905: 0x9167, - 24956 - 11905: 0x9168, - 24957 - 11905: 0x9169, - 24958 - 11905: 0x916A, - 24959 - 11905: 0x916B, - 24960 - 11905: 0x916C, - 24961 - 11905: 0x916D, - 24962 - 11905: 0x916E, - 24963 - 11905: 0x916F, - 24964 - 11905: 0x9170, - 24965 - 11905: 0x9171, - 24966 - 11905: 0x9172, - 24967 - 11905: 0x9173, - 24968 - 11905: 0x9174, - 24969 - 11905: 0x9175, - 24970 - 11905: 0x9176, - 24971 - 11905: 0xB1EF, - 24972 - 11905: 0x9177, - 24973 - 11905: 0x9178, - 24974 - 11905: 0xD4F7, - 24975 - 11905: 0x9179, - 24976 - 11905: 0x917A, - 24977 - 11905: 0x917B, - 24978 - 11905: 0x917C, - 24979 - 11905: 0x917D, - 24980 - 11905: 0xE3BE, - 24981 - 11905: 0x917E, - 24982 - 11905: 0x9180, - 24983 - 11905: 0x9181, - 24984 - 11905: 0x9182, - 24985 - 11905: 0x9183, - 24986 - 11905: 0x9184, - 24987 - 11905: 0x9185, - 24988 - 11905: 0x9186, - 24989 - 11905: 0xEDAD, - 24990 - 11905: 0x9187, - 24991 - 11905: 0x9188, - 24992 - 11905: 0x9189, - 24993 - 11905: 0x918A, - 24994 - 11905: 0x918B, - 24995 - 11905: 0x918C, - 24996 - 11905: 0x918D, - 24997 - 11905: 0x918E, - 24998 - 11905: 0x918F, - 24999 - 11905: 0xE3BF, - 25000 - 11905: 0xBAA9, - 25001 - 11905: 0xEDAC, - 25002 - 11905: 0x9190, - 25003 - 11905: 0x9191, - 25004 - 11905: 0xE3BD, - 25005 - 11905: 0x9192, - 25006 - 11905: 0x9193, - 25007 - 11905: 0x9194, - 25008 - 11905: 0x9195, - 25009 - 11905: 0x9196, - 25010 - 11905: 0x9197, - 25011 - 11905: 0x9198, - 25012 - 11905: 0x9199, - 25013 - 11905: 0x919A, - 25014 - 11905: 0x919B, - 25015 - 11905: 0xE3C0, - 25016 - 11905: 0x919C, - 25017 - 11905: 0x919D, - 25018 - 11905: 0x919E, - 25019 - 11905: 0x919F, - 25020 - 11905: 0x91A0, - 25021 - 11905: 0x91A1, - 25022 - 11905: 0xBAB6, - 25023 - 11905: 0x91A2, - 25024 - 11905: 0x91A3, - 25025 - 11905: 0x91A4, - 25026 - 11905: 0xB6AE, - 25027 - 11905: 0x91A5, - 25028 - 11905: 0x91A6, - 25029 - 11905: 0x91A7, - 25030 - 11905: 0x91A8, - 25031 - 11905: 0x91A9, - 25032 - 11905: 0xD0B8, - 25033 - 11905: 0x91AA, - 25034 - 11905: 0xB0C3, - 25035 - 11905: 0xEDAE, - 25036 - 11905: 0x91AB, - 25037 - 11905: 0x91AC, - 25038 - 11905: 0x91AD, - 25039 - 11905: 0x91AE, - 25040 - 11905: 0x91AF, - 25041 - 11905: 0xEDAF, - 25042 - 11905: 0xC0C1, - 25043 - 11905: 0x91B0, - 25044 - 11905: 0xE3C1, - 25045 - 11905: 0x91B1, - 25046 - 11905: 0x91B2, - 25047 - 11905: 0x91B3, - 25048 - 11905: 0x91B4, - 25049 - 11905: 0x91B5, - 25050 - 11905: 0x91B6, - 25051 - 11905: 0x91B7, - 25052 - 11905: 0x91B8, - 25053 - 11905: 0x91B9, - 25054 - 11905: 0x91BA, - 25055 - 11905: 0x91BB, - 25056 - 11905: 0x91BC, - 25057 - 11905: 0x91BD, - 25058 - 11905: 0x91BE, - 25059 - 11905: 0x91BF, - 25060 - 11905: 0x91C0, - 25061 - 11905: 0x91C1, - 25062 - 11905: 0xC5B3, - 25063 - 11905: 0x91C2, - 25064 - 11905: 0x91C3, - 25065 - 11905: 0x91C4, - 25066 - 11905: 0x91C5, - 25067 - 11905: 0x91C6, - 25068 - 11905: 0x91C7, - 25069 - 11905: 0x91C8, - 25070 - 11905: 0x91C9, - 25071 - 11905: 0x91CA, - 25072 - 11905: 0x91CB, - 25073 - 11905: 0x91CC, - 25074 - 11905: 0x91CD, - 25075 - 11905: 0x91CE, - 25076 - 11905: 0x91CF, - 25077 - 11905: 0xE3C2, - 25078 - 11905: 0x91D0, - 25079 - 11905: 0x91D1, - 25080 - 11905: 0x91D2, - 25081 - 11905: 0x91D3, - 25082 - 11905: 0x91D4, - 25083 - 11905: 0x91D5, - 25084 - 11905: 0x91D6, - 25085 - 11905: 0x91D7, - 25086 - 11905: 0x91D8, - 25087 - 11905: 0xDCB2, - 25088 - 11905: 0x91D9, - 25089 - 11905: 0x91DA, - 25090 - 11905: 0x91DB, - 25091 - 11905: 0x91DC, - 25092 - 11905: 0x91DD, - 25093 - 11905: 0x91DE, - 25094 - 11905: 0xEDB0, - 25095 - 11905: 0x91DF, - 25096 - 11905: 0xB8EA, - 25097 - 11905: 0x91E0, - 25098 - 11905: 0xCEEC, - 25099 - 11905: 0xEAA7, - 25100 - 11905: 0xD0E7, - 25101 - 11905: 0xCAF9, - 25102 - 11905: 0xC8D6, - 25103 - 11905: 0xCFB7, - 25104 - 11905: 0xB3C9, - 25105 - 11905: 0xCED2, - 25106 - 11905: 0xBDE4, - 25107 - 11905: 0x91E1, - 25108 - 11905: 0x91E2, - 25109 - 11905: 0xE3DE, - 25110 - 11905: 0xBBF2, - 25111 - 11905: 0xEAA8, - 25112 - 11905: 0xD5BD, - 25113 - 11905: 0x91E3, - 25114 - 11905: 0xC6DD, - 25115 - 11905: 0xEAA9, - 25116 - 11905: 0x91E4, - 25117 - 11905: 0x91E5, - 25118 - 11905: 0x91E6, - 25119 - 11905: 0xEAAA, - 25120 - 11905: 0x91E7, - 25121 - 11905: 0xEAAC, - 25122 - 11905: 0xEAAB, - 25123 - 11905: 0x91E8, - 25124 - 11905: 0xEAAE, - 25125 - 11905: 0xEAAD, - 25126 - 11905: 0x91E9, - 25127 - 11905: 0x91EA, - 25128 - 11905: 0x91EB, - 25129 - 11905: 0x91EC, - 25130 - 11905: 0xBDD8, - 25131 - 11905: 0x91ED, - 25132 - 11905: 0xEAAF, - 25133 - 11905: 0x91EE, - 25134 - 11905: 0xC2BE, - 25135 - 11905: 0x91EF, - 25136 - 11905: 0x91F0, - 25137 - 11905: 0x91F1, - 25138 - 11905: 0x91F2, - 25139 - 11905: 0xB4C1, - 25140 - 11905: 0xB4F7, - 25141 - 11905: 0x91F3, - 25142 - 11905: 0x91F4, - 25143 - 11905: 0xBBA7, - 25144 - 11905: 0x91F5, - 25145 - 11905: 0x91F6, - 25146 - 11905: 0x91F7, - 25147 - 11905: 0x91F8, - 25148 - 11905: 0x91F9, - 25149 - 11905: 0xECE6, - 25150 - 11905: 0xECE5, - 25151 - 11905: 0xB7BF, - 25152 - 11905: 0xCBF9, - 25153 - 11905: 0xB1E2, - 25154 - 11905: 0x91FA, - 25155 - 11905: 0xECE7, - 25156 - 11905: 0x91FB, - 25157 - 11905: 0x91FC, - 25158 - 11905: 0x91FD, - 25159 - 11905: 0xC9C8, - 25160 - 11905: 0xECE8, - 25161 - 11905: 0xECE9, - 25162 - 11905: 0x91FE, - 25163 - 11905: 0xCAD6, - 25164 - 11905: 0xDED0, - 25165 - 11905: 0xB2C5, - 25166 - 11905: 0xD4FA, - 25167 - 11905: 0x9240, - 25168 - 11905: 0x9241, - 25169 - 11905: 0xC6CB, - 25170 - 11905: 0xB0C7, - 25171 - 11905: 0xB4F2, - 25172 - 11905: 0xC8D3, - 25173 - 11905: 0x9242, - 25174 - 11905: 0x9243, - 25175 - 11905: 0x9244, - 25176 - 11905: 0xCDD0, - 25177 - 11905: 0x9245, - 25178 - 11905: 0x9246, - 25179 - 11905: 0xBFB8, - 25180 - 11905: 0x9247, - 25181 - 11905: 0x9248, - 25182 - 11905: 0x9249, - 25183 - 11905: 0x924A, - 25184 - 11905: 0x924B, - 25185 - 11905: 0x924C, - 25186 - 11905: 0x924D, - 25187 - 11905: 0xBFDB, - 25188 - 11905: 0x924E, - 25189 - 11905: 0x924F, - 25190 - 11905: 0xC7A4, - 25191 - 11905: 0xD6B4, - 25192 - 11905: 0x9250, - 25193 - 11905: 0xC0A9, - 25194 - 11905: 0xDED1, - 25195 - 11905: 0xC9A8, - 25196 - 11905: 0xD1EF, - 25197 - 11905: 0xC5A4, - 25198 - 11905: 0xB0E7, - 25199 - 11905: 0xB3B6, - 25200 - 11905: 0xC8C5, - 25201 - 11905: 0x9251, - 25202 - 11905: 0x9252, - 25203 - 11905: 0xB0E2, - 25204 - 11905: 0x9253, - 25205 - 11905: 0x9254, - 25206 - 11905: 0xB7F6, - 25207 - 11905: 0x9255, - 25208 - 11905: 0x9256, - 25209 - 11905: 0xC5FA, - 25210 - 11905: 0x9257, - 25211 - 11905: 0x9258, - 25212 - 11905: 0xB6F3, - 25213 - 11905: 0x9259, - 25214 - 11905: 0xD5D2, - 25215 - 11905: 0xB3D0, - 25216 - 11905: 0xBCBC, - 25217 - 11905: 0x925A, - 25218 - 11905: 0x925B, - 25219 - 11905: 0x925C, - 25220 - 11905: 0xB3AD, - 25221 - 11905: 0x925D, - 25222 - 11905: 0x925E, - 25223 - 11905: 0x925F, - 25224 - 11905: 0x9260, - 25225 - 11905: 0xBEF1, - 25226 - 11905: 0xB0D1, - 25227 - 11905: 0x9261, - 25228 - 11905: 0x9262, - 25229 - 11905: 0x9263, - 25230 - 11905: 0x9264, - 25231 - 11905: 0x9265, - 25232 - 11905: 0x9266, - 25233 - 11905: 0xD2D6, - 25234 - 11905: 0xCAE3, - 25235 - 11905: 0xD7A5, - 25236 - 11905: 0x9267, - 25237 - 11905: 0xCDB6, - 25238 - 11905: 0xB6B6, - 25239 - 11905: 0xBFB9, - 25240 - 11905: 0xD5DB, - 25241 - 11905: 0x9268, - 25242 - 11905: 0xB8A7, - 25243 - 11905: 0xC5D7, - 25244 - 11905: 0x9269, - 25245 - 11905: 0x926A, - 25246 - 11905: 0x926B, - 25247 - 11905: 0xDED2, - 25248 - 11905: 0xBFD9, - 25249 - 11905: 0xC2D5, - 25250 - 11905: 0xC7C0, - 25251 - 11905: 0x926C, - 25252 - 11905: 0xBBA4, - 25253 - 11905: 0xB1A8, - 25254 - 11905: 0x926D, - 25255 - 11905: 0x926E, - 25256 - 11905: 0xC5EA, - 25257 - 11905: 0x926F, - 25258 - 11905: 0x9270, - 25259 - 11905: 0xC5FB, - 25260 - 11905: 0xCCA7, - 25261 - 11905: 0x9271, - 25262 - 11905: 0x9272, - 25263 - 11905: 0x9273, - 25264 - 11905: 0x9274, - 25265 - 11905: 0xB1A7, - 25266 - 11905: 0x9275, - 25267 - 11905: 0x9276, - 25268 - 11905: 0x9277, - 25269 - 11905: 0xB5D6, - 25270 - 11905: 0x9278, - 25271 - 11905: 0x9279, - 25272 - 11905: 0x927A, - 25273 - 11905: 0xC4A8, - 25274 - 11905: 0x927B, - 25275 - 11905: 0xDED3, - 25276 - 11905: 0xD1BA, - 25277 - 11905: 0xB3E9, - 25278 - 11905: 0x927C, - 25279 - 11905: 0xC3F2, - 25280 - 11905: 0x927D, - 25281 - 11905: 0x927E, - 25282 - 11905: 0xB7F7, - 25283 - 11905: 0x9280, - 25284 - 11905: 0xD6F4, - 25285 - 11905: 0xB5A3, - 25286 - 11905: 0xB2F0, - 25287 - 11905: 0xC4B4, - 25288 - 11905: 0xC4E9, - 25289 - 11905: 0xC0AD, - 25290 - 11905: 0xDED4, - 25291 - 11905: 0x9281, - 25292 - 11905: 0xB0E8, - 25293 - 11905: 0xC5C4, - 25294 - 11905: 0xC1E0, - 25295 - 11905: 0x9282, - 25296 - 11905: 0xB9D5, - 25297 - 11905: 0x9283, - 25298 - 11905: 0xBEDC, - 25299 - 11905: 0xCDD8, - 25300 - 11905: 0xB0CE, - 25301 - 11905: 0x9284, - 25302 - 11905: 0xCDCF, - 25303 - 11905: 0xDED6, - 25304 - 11905: 0xBED0, - 25305 - 11905: 0xD7BE, - 25306 - 11905: 0xDED5, - 25307 - 11905: 0xD5D0, - 25308 - 11905: 0xB0DD, - 25309 - 11905: 0x9285, - 25310 - 11905: 0x9286, - 25311 - 11905: 0xC4E2, - 25312 - 11905: 0x9287, - 25313 - 11905: 0x9288, - 25314 - 11905: 0xC2A3, - 25315 - 11905: 0xBCF0, - 25316 - 11905: 0x9289, - 25317 - 11905: 0xD3B5, - 25318 - 11905: 0xC0B9, - 25319 - 11905: 0xC5A1, - 25320 - 11905: 0xB2A6, - 25321 - 11905: 0xD4F1, - 25322 - 11905: 0x928A, - 25323 - 11905: 0x928B, - 25324 - 11905: 0xC0A8, - 25325 - 11905: 0xCAC3, - 25326 - 11905: 0xDED7, - 25327 - 11905: 0xD5FC, - 25328 - 11905: 0x928C, - 25329 - 11905: 0xB9B0, - 25330 - 11905: 0x928D, - 25331 - 11905: 0xC8AD, - 25332 - 11905: 0xCBA9, - 25333 - 11905: 0x928E, - 25334 - 11905: 0xDED9, - 25335 - 11905: 0xBFBD, - 25336 - 11905: 0x928F, - 25337 - 11905: 0x9290, - 25338 - 11905: 0x9291, - 25339 - 11905: 0x9292, - 25340 - 11905: 0xC6B4, - 25341 - 11905: 0xD7A7, - 25342 - 11905: 0xCAB0, - 25343 - 11905: 0xC4C3, - 25344 - 11905: 0x9293, - 25345 - 11905: 0xB3D6, - 25346 - 11905: 0xB9D2, - 25347 - 11905: 0x9294, - 25348 - 11905: 0x9295, - 25349 - 11905: 0x9296, - 25350 - 11905: 0x9297, - 25351 - 11905: 0xD6B8, - 25352 - 11905: 0xEAFC, - 25353 - 11905: 0xB0B4, - 25354 - 11905: 0x9298, - 25355 - 11905: 0x9299, - 25356 - 11905: 0x929A, - 25357 - 11905: 0x929B, - 25358 - 11905: 0xBFE6, - 25359 - 11905: 0x929C, - 25360 - 11905: 0x929D, - 25361 - 11905: 0xCCF4, - 25362 - 11905: 0x929E, - 25363 - 11905: 0x929F, - 25364 - 11905: 0x92A0, - 25365 - 11905: 0x92A1, - 25366 - 11905: 0xCDDA, - 25367 - 11905: 0x92A2, - 25368 - 11905: 0x92A3, - 25369 - 11905: 0x92A4, - 25370 - 11905: 0xD6BF, - 25371 - 11905: 0xC2CE, - 25372 - 11905: 0x92A5, - 25373 - 11905: 0xCECE, - 25374 - 11905: 0xCCA2, - 25375 - 11905: 0xD0AE, - 25376 - 11905: 0xC4D3, - 25377 - 11905: 0xB5B2, - 25378 - 11905: 0xDED8, - 25379 - 11905: 0xD5F5, - 25380 - 11905: 0xBCB7, - 25381 - 11905: 0xBBD3, - 25382 - 11905: 0x92A6, - 25383 - 11905: 0x92A7, - 25384 - 11905: 0xB0A4, - 25385 - 11905: 0x92A8, - 25386 - 11905: 0xC5B2, - 25387 - 11905: 0xB4EC, - 25388 - 11905: 0x92A9, - 25389 - 11905: 0x92AA, - 25390 - 11905: 0x92AB, - 25391 - 11905: 0xD5F1, - 25392 - 11905: 0x92AC, - 25393 - 11905: 0x92AD, - 25394 - 11905: 0xEAFD, - 25395 - 11905: 0x92AE, - 25396 - 11905: 0x92AF, - 25397 - 11905: 0x92B0, - 25398 - 11905: 0x92B1, - 25399 - 11905: 0x92B2, - 25400 - 11905: 0x92B3, - 25401 - 11905: 0xDEDA, - 25402 - 11905: 0xCDA6, - 25403 - 11905: 0x92B4, - 25404 - 11905: 0x92B5, - 25405 - 11905: 0xCDEC, - 25406 - 11905: 0x92B6, - 25407 - 11905: 0x92B7, - 25408 - 11905: 0x92B8, - 25409 - 11905: 0x92B9, - 25410 - 11905: 0xCEE6, - 25411 - 11905: 0xDEDC, - 25412 - 11905: 0x92BA, - 25413 - 11905: 0xCDB1, - 25414 - 11905: 0xC0A6, - 25415 - 11905: 0x92BB, - 25416 - 11905: 0x92BC, - 25417 - 11905: 0xD7BD, - 25418 - 11905: 0x92BD, - 25419 - 11905: 0xDEDB, - 25420 - 11905: 0xB0C6, - 25421 - 11905: 0xBAB4, - 25422 - 11905: 0xC9D3, - 25423 - 11905: 0xC4F3, - 25424 - 11905: 0xBEE8, - 25425 - 11905: 0x92BE, - 25426 - 11905: 0x92BF, - 25427 - 11905: 0x92C0, - 25428 - 11905: 0x92C1, - 25429 - 11905: 0xB2B6, - 25430 - 11905: 0x92C2, - 25431 - 11905: 0x92C3, - 25432 - 11905: 0x92C4, - 25433 - 11905: 0x92C5, - 25434 - 11905: 0x92C6, - 25435 - 11905: 0x92C7, - 25436 - 11905: 0x92C8, - 25437 - 11905: 0x92C9, - 25438 - 11905: 0xC0CC, - 25439 - 11905: 0xCBF0, - 25440 - 11905: 0x92CA, - 25441 - 11905: 0xBCF1, - 25442 - 11905: 0xBBBB, - 25443 - 11905: 0xB5B7, - 25444 - 11905: 0x92CB, - 25445 - 11905: 0x92CC, - 25446 - 11905: 0x92CD, - 25447 - 11905: 0xC5F5, - 25448 - 11905: 0x92CE, - 25449 - 11905: 0xDEE6, - 25450 - 11905: 0x92CF, - 25451 - 11905: 0x92D0, - 25452 - 11905: 0x92D1, - 25453 - 11905: 0xDEE3, - 25454 - 11905: 0xBEDD, - 25455 - 11905: 0x92D2, - 25456 - 11905: 0x92D3, - 25457 - 11905: 0xDEDF, - 25458 - 11905: 0x92D4, - 25459 - 11905: 0x92D5, - 25460 - 11905: 0x92D6, - 25461 - 11905: 0x92D7, - 25462 - 11905: 0xB4B7, - 25463 - 11905: 0xBDDD, - 25464 - 11905: 0x92D8, - 25465 - 11905: 0x92D9, - 25466 - 11905: 0xDEE0, - 25467 - 11905: 0xC4ED, - 25468 - 11905: 0x92DA, - 25469 - 11905: 0x92DB, - 25470 - 11905: 0x92DC, - 25471 - 11905: 0x92DD, - 25472 - 11905: 0xCFC6, - 25473 - 11905: 0x92DE, - 25474 - 11905: 0xB5E0, - 25475 - 11905: 0x92DF, - 25476 - 11905: 0x92E0, - 25477 - 11905: 0x92E1, - 25478 - 11905: 0x92E2, - 25479 - 11905: 0xB6DE, - 25480 - 11905: 0xCADA, - 25481 - 11905: 0xB5F4, - 25482 - 11905: 0xDEE5, - 25483 - 11905: 0x92E3, - 25484 - 11905: 0xD5C6, - 25485 - 11905: 0x92E4, - 25486 - 11905: 0xDEE1, - 25487 - 11905: 0xCCCD, - 25488 - 11905: 0xC6FE, - 25489 - 11905: 0x92E5, - 25490 - 11905: 0xC5C5, - 25491 - 11905: 0x92E6, - 25492 - 11905: 0x92E7, - 25493 - 11905: 0x92E8, - 25494 - 11905: 0xD2B4, - 25495 - 11905: 0x92E9, - 25496 - 11905: 0xBEF2, - 25497 - 11905: 0x92EA, - 25498 - 11905: 0x92EB, - 25499 - 11905: 0x92EC, - 25500 - 11905: 0x92ED, - 25501 - 11905: 0x92EE, - 25502 - 11905: 0x92EF, - 25503 - 11905: 0x92F0, - 25504 - 11905: 0xC2D3, - 25505 - 11905: 0x92F1, - 25506 - 11905: 0xCCBD, - 25507 - 11905: 0xB3B8, - 25508 - 11905: 0x92F2, - 25509 - 11905: 0xBDD3, - 25510 - 11905: 0x92F3, - 25511 - 11905: 0xBFD8, - 25512 - 11905: 0xCDC6, - 25513 - 11905: 0xD1DA, - 25514 - 11905: 0xB4EB, - 25515 - 11905: 0x92F4, - 25516 - 11905: 0xDEE4, - 25517 - 11905: 0xDEDD, - 25518 - 11905: 0xDEE7, - 25519 - 11905: 0x92F5, - 25520 - 11905: 0xEAFE, - 25521 - 11905: 0x92F6, - 25522 - 11905: 0x92F7, - 25523 - 11905: 0xC2B0, - 25524 - 11905: 0xDEE2, - 25525 - 11905: 0x92F8, - 25526 - 11905: 0x92F9, - 25527 - 11905: 0xD6C0, - 25528 - 11905: 0xB5A7, - 25529 - 11905: 0x92FA, - 25530 - 11905: 0xB2F4, - 25531 - 11905: 0x92FB, - 25532 - 11905: 0xDEE8, - 25533 - 11905: 0x92FC, - 25534 - 11905: 0xDEF2, - 25535 - 11905: 0x92FD, - 25536 - 11905: 0x92FE, - 25537 - 11905: 0x9340, - 25538 - 11905: 0x9341, - 25539 - 11905: 0x9342, - 25540 - 11905: 0xDEED, - 25541 - 11905: 0x9343, - 25542 - 11905: 0xDEF1, - 25543 - 11905: 0x9344, - 25544 - 11905: 0x9345, - 25545 - 11905: 0xC8E0, - 25546 - 11905: 0x9346, - 25547 - 11905: 0x9347, - 25548 - 11905: 0x9348, - 25549 - 11905: 0xD7E1, - 25550 - 11905: 0xDEEF, - 25551 - 11905: 0xC3E8, - 25552 - 11905: 0xCCE1, - 25553 - 11905: 0x9349, - 25554 - 11905: 0xB2E5, - 25555 - 11905: 0x934A, - 25556 - 11905: 0x934B, - 25557 - 11905: 0x934C, - 25558 - 11905: 0xD2BE, - 25559 - 11905: 0x934D, - 25560 - 11905: 0x934E, - 25561 - 11905: 0x934F, - 25562 - 11905: 0x9350, - 25563 - 11905: 0x9351, - 25564 - 11905: 0x9352, - 25565 - 11905: 0x9353, - 25566 - 11905: 0xDEEE, - 25567 - 11905: 0x9354, - 25568 - 11905: 0xDEEB, - 25569 - 11905: 0xCED5, - 25570 - 11905: 0x9355, - 25571 - 11905: 0xB4A7, - 25572 - 11905: 0x9356, - 25573 - 11905: 0x9357, - 25574 - 11905: 0x9358, - 25575 - 11905: 0x9359, - 25576 - 11905: 0x935A, - 25577 - 11905: 0xBFAB, - 25578 - 11905: 0xBEBE, - 25579 - 11905: 0x935B, - 25580 - 11905: 0x935C, - 25581 - 11905: 0xBDD2, - 25582 - 11905: 0x935D, - 25583 - 11905: 0x935E, - 25584 - 11905: 0x935F, - 25585 - 11905: 0x9360, - 25586 - 11905: 0xDEE9, - 25587 - 11905: 0x9361, - 25588 - 11905: 0xD4AE, - 25589 - 11905: 0x9362, - 25590 - 11905: 0xDEDE, - 25591 - 11905: 0x9363, - 25592 - 11905: 0xDEEA, - 25593 - 11905: 0x9364, - 25594 - 11905: 0x9365, - 25595 - 11905: 0x9366, - 25596 - 11905: 0x9367, - 25597 - 11905: 0xC0BF, - 25598 - 11905: 0x9368, - 25599 - 11905: 0xDEEC, - 25600 - 11905: 0xB2F3, - 25601 - 11905: 0xB8E9, - 25602 - 11905: 0xC2A7, - 25603 - 11905: 0x9369, - 25604 - 11905: 0x936A, - 25605 - 11905: 0xBDC1, - 25606 - 11905: 0x936B, - 25607 - 11905: 0x936C, - 25608 - 11905: 0x936D, - 25609 - 11905: 0x936E, - 25610 - 11905: 0x936F, - 25611 - 11905: 0xDEF5, - 25612 - 11905: 0xDEF8, - 25613 - 11905: 0x9370, - 25614 - 11905: 0x9371, - 25615 - 11905: 0xB2AB, - 25616 - 11905: 0xB4A4, - 25617 - 11905: 0x9372, - 25618 - 11905: 0x9373, - 25619 - 11905: 0xB4EA, - 25620 - 11905: 0xC9A6, - 25621 - 11905: 0x9374, - 25622 - 11905: 0x9375, - 25623 - 11905: 0x9376, - 25624 - 11905: 0x9377, - 25625 - 11905: 0x9378, - 25626 - 11905: 0x9379, - 25627 - 11905: 0xDEF6, - 25628 - 11905: 0xCBD1, - 25629 - 11905: 0x937A, - 25630 - 11905: 0xB8E3, - 25631 - 11905: 0x937B, - 25632 - 11905: 0xDEF7, - 25633 - 11905: 0xDEFA, - 25634 - 11905: 0x937C, - 25635 - 11905: 0x937D, - 25636 - 11905: 0x937E, - 25637 - 11905: 0x9380, - 25638 - 11905: 0xDEF9, - 25639 - 11905: 0x9381, - 25640 - 11905: 0x9382, - 25641 - 11905: 0x9383, - 25642 - 11905: 0xCCC2, - 25643 - 11905: 0x9384, - 25644 - 11905: 0xB0E1, - 25645 - 11905: 0xB4EE, - 25646 - 11905: 0x9385, - 25647 - 11905: 0x9386, - 25648 - 11905: 0x9387, - 25649 - 11905: 0x9388, - 25650 - 11905: 0x9389, - 25651 - 11905: 0x938A, - 25652 - 11905: 0xE5BA, - 25653 - 11905: 0x938B, - 25654 - 11905: 0x938C, - 25655 - 11905: 0x938D, - 25656 - 11905: 0x938E, - 25657 - 11905: 0x938F, - 25658 - 11905: 0xD0AF, - 25659 - 11905: 0x9390, - 25660 - 11905: 0x9391, - 25661 - 11905: 0xB2EB, - 25662 - 11905: 0x9392, - 25663 - 11905: 0xEBA1, - 25664 - 11905: 0x9393, - 25665 - 11905: 0xDEF4, - 25666 - 11905: 0x9394, - 25667 - 11905: 0x9395, - 25668 - 11905: 0xC9E3, - 25669 - 11905: 0xDEF3, - 25670 - 11905: 0xB0DA, - 25671 - 11905: 0xD2A1, - 25672 - 11905: 0xB1F7, - 25673 - 11905: 0x9396, - 25674 - 11905: 0xCCAF, - 25675 - 11905: 0x9397, - 25676 - 11905: 0x9398, - 25677 - 11905: 0x9399, - 25678 - 11905: 0x939A, - 25679 - 11905: 0x939B, - 25680 - 11905: 0x939C, - 25681 - 11905: 0x939D, - 25682 - 11905: 0xDEF0, - 25683 - 11905: 0x939E, - 25684 - 11905: 0xCBA4, - 25685 - 11905: 0x939F, - 25686 - 11905: 0x93A0, - 25687 - 11905: 0x93A1, - 25688 - 11905: 0xD5AA, - 25689 - 11905: 0x93A2, - 25690 - 11905: 0x93A3, - 25691 - 11905: 0x93A4, - 25692 - 11905: 0x93A5, - 25693 - 11905: 0x93A6, - 25694 - 11905: 0xDEFB, - 25695 - 11905: 0x93A7, - 25696 - 11905: 0x93A8, - 25697 - 11905: 0x93A9, - 25698 - 11905: 0x93AA, - 25699 - 11905: 0x93AB, - 25700 - 11905: 0x93AC, - 25701 - 11905: 0x93AD, - 25702 - 11905: 0x93AE, - 25703 - 11905: 0xB4DD, - 25704 - 11905: 0x93AF, - 25705 - 11905: 0xC4A6, - 25706 - 11905: 0x93B0, - 25707 - 11905: 0x93B1, - 25708 - 11905: 0x93B2, - 25709 - 11905: 0xDEFD, - 25710 - 11905: 0x93B3, - 25711 - 11905: 0x93B4, - 25712 - 11905: 0x93B5, - 25713 - 11905: 0x93B6, - 25714 - 11905: 0x93B7, - 25715 - 11905: 0x93B8, - 25716 - 11905: 0x93B9, - 25717 - 11905: 0x93BA, - 25718 - 11905: 0x93BB, - 25719 - 11905: 0x93BC, - 25720 - 11905: 0xC3FE, - 25721 - 11905: 0xC4A1, - 25722 - 11905: 0xDFA1, - 25723 - 11905: 0x93BD, - 25724 - 11905: 0x93BE, - 25725 - 11905: 0x93BF, - 25726 - 11905: 0x93C0, - 25727 - 11905: 0x93C1, - 25728 - 11905: 0x93C2, - 25729 - 11905: 0x93C3, - 25730 - 11905: 0xC1CC, - 25731 - 11905: 0x93C4, - 25732 - 11905: 0xDEFC, - 25733 - 11905: 0xBEEF, - 25734 - 11905: 0x93C5, - 25735 - 11905: 0xC6B2, - 25736 - 11905: 0x93C6, - 25737 - 11905: 0x93C7, - 25738 - 11905: 0x93C8, - 25739 - 11905: 0x93C9, - 25740 - 11905: 0x93CA, - 25741 - 11905: 0x93CB, - 25742 - 11905: 0x93CC, - 25743 - 11905: 0x93CD, - 25744 - 11905: 0x93CE, - 25745 - 11905: 0xB3C5, - 25746 - 11905: 0xC8F6, - 25747 - 11905: 0x93CF, - 25748 - 11905: 0x93D0, - 25749 - 11905: 0xCBBA, - 25750 - 11905: 0xDEFE, - 25751 - 11905: 0x93D1, - 25752 - 11905: 0x93D2, - 25753 - 11905: 0xDFA4, - 25754 - 11905: 0x93D3, - 25755 - 11905: 0x93D4, - 25756 - 11905: 0x93D5, - 25757 - 11905: 0x93D6, - 25758 - 11905: 0xD7B2, - 25759 - 11905: 0x93D7, - 25760 - 11905: 0x93D8, - 25761 - 11905: 0x93D9, - 25762 - 11905: 0x93DA, - 25763 - 11905: 0x93DB, - 25764 - 11905: 0xB3B7, - 25765 - 11905: 0x93DC, - 25766 - 11905: 0x93DD, - 25767 - 11905: 0x93DE, - 25768 - 11905: 0x93DF, - 25769 - 11905: 0xC1C3, - 25770 - 11905: 0x93E0, - 25771 - 11905: 0x93E1, - 25772 - 11905: 0xC7CB, - 25773 - 11905: 0xB2A5, - 25774 - 11905: 0xB4E9, - 25775 - 11905: 0x93E2, - 25776 - 11905: 0xD7AB, - 25777 - 11905: 0x93E3, - 25778 - 11905: 0x93E4, - 25779 - 11905: 0x93E5, - 25780 - 11905: 0x93E6, - 25781 - 11905: 0xC4EC, - 25782 - 11905: 0x93E7, - 25783 - 11905: 0xDFA2, - 25784 - 11905: 0xDFA3, - 25785 - 11905: 0x93E8, - 25786 - 11905: 0xDFA5, - 25787 - 11905: 0x93E9, - 25788 - 11905: 0xBAB3, - 25789 - 11905: 0x93EA, - 25790 - 11905: 0x93EB, - 25791 - 11905: 0x93EC, - 25792 - 11905: 0xDFA6, - 25793 - 11905: 0x93ED, - 25794 - 11905: 0xC0DE, - 25795 - 11905: 0x93EE, - 25796 - 11905: 0x93EF, - 25797 - 11905: 0xC9C3, - 25798 - 11905: 0x93F0, - 25799 - 11905: 0x93F1, - 25800 - 11905: 0x93F2, - 25801 - 11905: 0x93F3, - 25802 - 11905: 0x93F4, - 25803 - 11905: 0x93F5, - 25804 - 11905: 0x93F6, - 25805 - 11905: 0xB2D9, - 25806 - 11905: 0xC7E6, - 25807 - 11905: 0x93F7, - 25808 - 11905: 0xDFA7, - 25809 - 11905: 0x93F8, - 25810 - 11905: 0xC7DC, - 25811 - 11905: 0x93F9, - 25812 - 11905: 0x93FA, - 25813 - 11905: 0x93FB, - 25814 - 11905: 0x93FC, - 25815 - 11905: 0xDFA8, - 25816 - 11905: 0xEBA2, - 25817 - 11905: 0x93FD, - 25818 - 11905: 0x93FE, - 25819 - 11905: 0x9440, - 25820 - 11905: 0x9441, - 25821 - 11905: 0x9442, - 25822 - 11905: 0xCBD3, - 25823 - 11905: 0x9443, - 25824 - 11905: 0x9444, - 25825 - 11905: 0x9445, - 25826 - 11905: 0xDFAA, - 25827 - 11905: 0x9446, - 25828 - 11905: 0xDFA9, - 25829 - 11905: 0x9447, - 25830 - 11905: 0xB2C1, - 25831 - 11905: 0x9448, - 25832 - 11905: 0x9449, - 25833 - 11905: 0x944A, - 25834 - 11905: 0x944B, - 25835 - 11905: 0x944C, - 25836 - 11905: 0x944D, - 25837 - 11905: 0x944E, - 25838 - 11905: 0x944F, - 25839 - 11905: 0x9450, - 25840 - 11905: 0x9451, - 25841 - 11905: 0x9452, - 25842 - 11905: 0x9453, - 25843 - 11905: 0x9454, - 25844 - 11905: 0x9455, - 25845 - 11905: 0x9456, - 25846 - 11905: 0x9457, - 25847 - 11905: 0x9458, - 25848 - 11905: 0x9459, - 25849 - 11905: 0x945A, - 25850 - 11905: 0x945B, - 25851 - 11905: 0x945C, - 25852 - 11905: 0x945D, - 25853 - 11905: 0x945E, - 25854 - 11905: 0x945F, - 25855 - 11905: 0x9460, - 25856 - 11905: 0xC5CA, - 25857 - 11905: 0x9461, - 25858 - 11905: 0x9462, - 25859 - 11905: 0x9463, - 25860 - 11905: 0x9464, - 25861 - 11905: 0x9465, - 25862 - 11905: 0x9466, - 25863 - 11905: 0x9467, - 25864 - 11905: 0x9468, - 25865 - 11905: 0xDFAB, - 25866 - 11905: 0x9469, - 25867 - 11905: 0x946A, - 25868 - 11905: 0x946B, - 25869 - 11905: 0x946C, - 25870 - 11905: 0x946D, - 25871 - 11905: 0x946E, - 25872 - 11905: 0x946F, - 25873 - 11905: 0x9470, - 25874 - 11905: 0xD4DC, - 25875 - 11905: 0x9471, - 25876 - 11905: 0x9472, - 25877 - 11905: 0x9473, - 25878 - 11905: 0x9474, - 25879 - 11905: 0x9475, - 25880 - 11905: 0xC8C1, - 25881 - 11905: 0x9476, - 25882 - 11905: 0x9477, - 25883 - 11905: 0x9478, - 25884 - 11905: 0x9479, - 25885 - 11905: 0x947A, - 25886 - 11905: 0x947B, - 25887 - 11905: 0x947C, - 25888 - 11905: 0x947D, - 25889 - 11905: 0x947E, - 25890 - 11905: 0x9480, - 25891 - 11905: 0x9481, - 25892 - 11905: 0x9482, - 25893 - 11905: 0xDFAC, - 25894 - 11905: 0x9483, - 25895 - 11905: 0x9484, - 25896 - 11905: 0x9485, - 25897 - 11905: 0x9486, - 25898 - 11905: 0x9487, - 25899 - 11905: 0xBEF0, - 25900 - 11905: 0x9488, - 25901 - 11905: 0x9489, - 25902 - 11905: 0xDFAD, - 25903 - 11905: 0xD6A7, - 25904 - 11905: 0x948A, - 25905 - 11905: 0x948B, - 25906 - 11905: 0x948C, - 25907 - 11905: 0x948D, - 25908 - 11905: 0xEAB7, - 25909 - 11905: 0xEBB6, - 25910 - 11905: 0xCAD5, - 25911 - 11905: 0x948E, - 25912 - 11905: 0xD8FC, - 25913 - 11905: 0xB8C4, - 25914 - 11905: 0x948F, - 25915 - 11905: 0xB9A5, - 25916 - 11905: 0x9490, - 25917 - 11905: 0x9491, - 25918 - 11905: 0xB7C5, - 25919 - 11905: 0xD5FE, - 25920 - 11905: 0x9492, - 25921 - 11905: 0x9493, - 25922 - 11905: 0x9494, - 25923 - 11905: 0x9495, - 25924 - 11905: 0x9496, - 25925 - 11905: 0xB9CA, - 25926 - 11905: 0x9497, - 25927 - 11905: 0x9498, - 25928 - 11905: 0xD0A7, - 25929 - 11905: 0xF4CD, - 25930 - 11905: 0x9499, - 25931 - 11905: 0x949A, - 25932 - 11905: 0xB5D0, - 25933 - 11905: 0x949B, - 25934 - 11905: 0x949C, - 25935 - 11905: 0xC3F4, - 25936 - 11905: 0x949D, - 25937 - 11905: 0xBEC8, - 25938 - 11905: 0x949E, - 25939 - 11905: 0x949F, - 25940 - 11905: 0x94A0, - 25941 - 11905: 0xEBB7, - 25942 - 11905: 0xB0BD, - 25943 - 11905: 0x94A1, - 25944 - 11905: 0x94A2, - 25945 - 11905: 0xBDCC, - 25946 - 11905: 0x94A3, - 25947 - 11905: 0xC1B2, - 25948 - 11905: 0x94A4, - 25949 - 11905: 0xB1D6, - 25950 - 11905: 0xB3A8, - 25951 - 11905: 0x94A5, - 25952 - 11905: 0x94A6, - 25953 - 11905: 0x94A7, - 25954 - 11905: 0xB8D2, - 25955 - 11905: 0xC9A2, - 25956 - 11905: 0x94A8, - 25957 - 11905: 0x94A9, - 25958 - 11905: 0xB6D8, - 25959 - 11905: 0x94AA, - 25960 - 11905: 0x94AB, - 25961 - 11905: 0x94AC, - 25962 - 11905: 0x94AD, - 25963 - 11905: 0xEBB8, - 25964 - 11905: 0xBEB4, - 25965 - 11905: 0x94AE, - 25966 - 11905: 0x94AF, - 25967 - 11905: 0x94B0, - 25968 - 11905: 0xCAFD, - 25969 - 11905: 0x94B1, - 25970 - 11905: 0xC7C3, - 25971 - 11905: 0x94B2, - 25972 - 11905: 0xD5FB, - 25973 - 11905: 0x94B3, - 25974 - 11905: 0x94B4, - 25975 - 11905: 0xB7F3, - 25976 - 11905: 0x94B5, - 25977 - 11905: 0x94B6, - 25978 - 11905: 0x94B7, - 25979 - 11905: 0x94B8, - 25980 - 11905: 0x94B9, - 25981 - 11905: 0x94BA, - 25982 - 11905: 0x94BB, - 25983 - 11905: 0x94BC, - 25984 - 11905: 0x94BD, - 25985 - 11905: 0x94BE, - 25986 - 11905: 0x94BF, - 25987 - 11905: 0x94C0, - 25988 - 11905: 0x94C1, - 25989 - 11905: 0x94C2, - 25990 - 11905: 0x94C3, - 25991 - 11905: 0xCEC4, - 25992 - 11905: 0x94C4, - 25993 - 11905: 0x94C5, - 25994 - 11905: 0x94C6, - 25995 - 11905: 0xD5AB, - 25996 - 11905: 0xB1F3, - 25997 - 11905: 0x94C7, - 25998 - 11905: 0x94C8, - 25999 - 11905: 0x94C9, - 26000 - 11905: 0xECB3, - 26001 - 11905: 0xB0DF, - 26002 - 11905: 0x94CA, - 26003 - 11905: 0xECB5, - 26004 - 11905: 0x94CB, - 26005 - 11905: 0x94CC, - 26006 - 11905: 0x94CD, - 26007 - 11905: 0xB6B7, - 26008 - 11905: 0x94CE, - 26009 - 11905: 0xC1CF, - 26010 - 11905: 0x94CF, - 26011 - 11905: 0xF5FA, - 26012 - 11905: 0xD0B1, - 26013 - 11905: 0x94D0, - 26014 - 11905: 0x94D1, - 26015 - 11905: 0xD5E5, - 26016 - 11905: 0x94D2, - 26017 - 11905: 0xCED3, - 26018 - 11905: 0x94D3, - 26019 - 11905: 0x94D4, - 26020 - 11905: 0xBDEF, - 26021 - 11905: 0xB3E2, - 26022 - 11905: 0x94D5, - 26023 - 11905: 0xB8AB, - 26024 - 11905: 0x94D6, - 26025 - 11905: 0xD5B6, - 26026 - 11905: 0x94D7, - 26027 - 11905: 0xEDBD, - 26028 - 11905: 0x94D8, - 26029 - 11905: 0xB6CF, - 26030 - 11905: 0x94D9, - 26031 - 11905: 0xCBB9, - 26032 - 11905: 0xD0C2, - 26033 - 11905: 0x94DA, - 26034 - 11905: 0x94DB, - 26035 - 11905: 0x94DC, - 26036 - 11905: 0x94DD, - 26037 - 11905: 0x94DE, - 26038 - 11905: 0x94DF, - 26039 - 11905: 0x94E0, - 26040 - 11905: 0x94E1, - 26041 - 11905: 0xB7BD, - 26042 - 11905: 0x94E2, - 26043 - 11905: 0x94E3, - 26044 - 11905: 0xECB6, - 26045 - 11905: 0xCAA9, - 26046 - 11905: 0x94E4, - 26047 - 11905: 0x94E5, - 26048 - 11905: 0x94E6, - 26049 - 11905: 0xC5D4, - 26050 - 11905: 0x94E7, - 26051 - 11905: 0xECB9, - 26052 - 11905: 0xECB8, - 26053 - 11905: 0xC2C3, - 26054 - 11905: 0xECB7, - 26055 - 11905: 0x94E8, - 26056 - 11905: 0x94E9, - 26057 - 11905: 0x94EA, - 26058 - 11905: 0x94EB, - 26059 - 11905: 0xD0FD, - 26060 - 11905: 0xECBA, - 26061 - 11905: 0x94EC, - 26062 - 11905: 0xECBB, - 26063 - 11905: 0xD7E5, - 26064 - 11905: 0x94ED, - 26065 - 11905: 0x94EE, - 26066 - 11905: 0xECBC, - 26067 - 11905: 0x94EF, - 26068 - 11905: 0x94F0, - 26069 - 11905: 0x94F1, - 26070 - 11905: 0xECBD, - 26071 - 11905: 0xC6EC, - 26072 - 11905: 0x94F2, - 26073 - 11905: 0x94F3, - 26074 - 11905: 0x94F4, - 26075 - 11905: 0x94F5, - 26076 - 11905: 0x94F6, - 26077 - 11905: 0x94F7, - 26078 - 11905: 0x94F8, - 26079 - 11905: 0x94F9, - 26080 - 11905: 0xCEDE, - 26081 - 11905: 0x94FA, - 26082 - 11905: 0xBCC8, - 26083 - 11905: 0x94FB, - 26084 - 11905: 0x94FC, - 26085 - 11905: 0xC8D5, - 26086 - 11905: 0xB5A9, - 26087 - 11905: 0xBEC9, - 26088 - 11905: 0xD6BC, - 26089 - 11905: 0xD4E7, - 26090 - 11905: 0x94FD, - 26091 - 11905: 0x94FE, - 26092 - 11905: 0xD1AE, - 26093 - 11905: 0xD0F1, - 26094 - 11905: 0xEAB8, - 26095 - 11905: 0xEAB9, - 26096 - 11905: 0xEABA, - 26097 - 11905: 0xBAB5, - 26098 - 11905: 0x9540, - 26099 - 11905: 0x9541, - 26100 - 11905: 0x9542, - 26101 - 11905: 0x9543, - 26102 - 11905: 0xCAB1, - 26103 - 11905: 0xBFF5, - 26104 - 11905: 0x9544, - 26105 - 11905: 0x9545, - 26106 - 11905: 0xCDFA, - 26107 - 11905: 0x9546, - 26108 - 11905: 0x9547, - 26109 - 11905: 0x9548, - 26110 - 11905: 0x9549, - 26111 - 11905: 0x954A, - 26112 - 11905: 0xEAC0, - 26113 - 11905: 0x954B, - 26114 - 11905: 0xB0BA, - 26115 - 11905: 0xEABE, - 26116 - 11905: 0x954C, - 26117 - 11905: 0x954D, - 26118 - 11905: 0xC0A5, - 26119 - 11905: 0x954E, - 26120 - 11905: 0x954F, - 26121 - 11905: 0x9550, - 26122 - 11905: 0xEABB, - 26123 - 11905: 0x9551, - 26124 - 11905: 0xB2FD, - 26125 - 11905: 0x9552, - 26126 - 11905: 0xC3F7, - 26127 - 11905: 0xBBE8, - 26128 - 11905: 0x9553, - 26129 - 11905: 0x9554, - 26130 - 11905: 0x9555, - 26131 - 11905: 0xD2D7, - 26132 - 11905: 0xCEF4, - 26133 - 11905: 0xEABF, - 26134 - 11905: 0x9556, - 26135 - 11905: 0x9557, - 26136 - 11905: 0x9558, - 26137 - 11905: 0xEABC, - 26138 - 11905: 0x9559, - 26139 - 11905: 0x955A, - 26140 - 11905: 0x955B, - 26141 - 11905: 0xEAC3, - 26142 - 11905: 0x955C, - 26143 - 11905: 0xD0C7, - 26144 - 11905: 0xD3B3, - 26145 - 11905: 0x955D, - 26146 - 11905: 0x955E, - 26147 - 11905: 0x955F, - 26148 - 11905: 0x9560, - 26149 - 11905: 0xB4BA, - 26150 - 11905: 0x9561, - 26151 - 11905: 0xC3C1, - 26152 - 11905: 0xD7F2, - 26153 - 11905: 0x9562, - 26154 - 11905: 0x9563, - 26155 - 11905: 0x9564, - 26156 - 11905: 0x9565, - 26157 - 11905: 0xD5D1, - 26158 - 11905: 0x9566, - 26159 - 11905: 0xCAC7, - 26160 - 11905: 0x9567, - 26161 - 11905: 0xEAC5, - 26162 - 11905: 0x9568, - 26163 - 11905: 0x9569, - 26164 - 11905: 0xEAC4, - 26165 - 11905: 0xEAC7, - 26166 - 11905: 0xEAC6, - 26167 - 11905: 0x956A, - 26168 - 11905: 0x956B, - 26169 - 11905: 0x956C, - 26170 - 11905: 0x956D, - 26171 - 11905: 0x956E, - 26172 - 11905: 0xD6E7, - 26173 - 11905: 0x956F, - 26174 - 11905: 0xCFD4, - 26175 - 11905: 0x9570, - 26176 - 11905: 0x9571, - 26177 - 11905: 0xEACB, - 26178 - 11905: 0x9572, - 26179 - 11905: 0xBBCE, - 26180 - 11905: 0x9573, - 26181 - 11905: 0x9574, - 26182 - 11905: 0x9575, - 26183 - 11905: 0x9576, - 26184 - 11905: 0x9577, - 26185 - 11905: 0x9578, - 26186 - 11905: 0x9579, - 26187 - 11905: 0xBDFA, - 26188 - 11905: 0xC9CE, - 26189 - 11905: 0x957A, - 26190 - 11905: 0x957B, - 26191 - 11905: 0xEACC, - 26192 - 11905: 0x957C, - 26193 - 11905: 0x957D, - 26194 - 11905: 0xC9B9, - 26195 - 11905: 0xCFFE, - 26196 - 11905: 0xEACA, - 26197 - 11905: 0xD4CE, - 26198 - 11905: 0xEACD, - 26199 - 11905: 0xEACF, - 26200 - 11905: 0x957E, - 26201 - 11905: 0x9580, - 26202 - 11905: 0xCDED, - 26203 - 11905: 0x9581, - 26204 - 11905: 0x9582, - 26205 - 11905: 0x9583, - 26206 - 11905: 0x9584, - 26207 - 11905: 0xEAC9, - 26208 - 11905: 0x9585, - 26209 - 11905: 0xEACE, - 26210 - 11905: 0x9586, - 26211 - 11905: 0x9587, - 26212 - 11905: 0xCEEE, - 26213 - 11905: 0x9588, - 26214 - 11905: 0xBBDE, - 26215 - 11905: 0x9589, - 26216 - 11905: 0xB3BF, - 26217 - 11905: 0x958A, - 26218 - 11905: 0x958B, - 26219 - 11905: 0x958C, - 26220 - 11905: 0x958D, - 26221 - 11905: 0x958E, - 26222 - 11905: 0xC6D5, - 26223 - 11905: 0xBEB0, - 26224 - 11905: 0xCEFA, - 26225 - 11905: 0x958F, - 26226 - 11905: 0x9590, - 26227 - 11905: 0x9591, - 26228 - 11905: 0xC7E7, - 26229 - 11905: 0x9592, - 26230 - 11905: 0xBEA7, - 26231 - 11905: 0xEAD0, - 26232 - 11905: 0x9593, - 26233 - 11905: 0x9594, - 26234 - 11905: 0xD6C7, - 26235 - 11905: 0x9595, - 26236 - 11905: 0x9596, - 26237 - 11905: 0x9597, - 26238 - 11905: 0xC1C0, - 26239 - 11905: 0x9598, - 26240 - 11905: 0x9599, - 26241 - 11905: 0x959A, - 26242 - 11905: 0xD4DD, - 26243 - 11905: 0x959B, - 26244 - 11905: 0xEAD1, - 26245 - 11905: 0x959C, - 26246 - 11905: 0x959D, - 26247 - 11905: 0xCFBE, - 26248 - 11905: 0x959E, - 26249 - 11905: 0x959F, - 26250 - 11905: 0x95A0, - 26251 - 11905: 0x95A1, - 26252 - 11905: 0xEAD2, - 26253 - 11905: 0x95A2, - 26254 - 11905: 0x95A3, - 26255 - 11905: 0x95A4, - 26256 - 11905: 0x95A5, - 26257 - 11905: 0xCAEE, - 26258 - 11905: 0x95A6, - 26259 - 11905: 0x95A7, - 26260 - 11905: 0x95A8, - 26261 - 11905: 0x95A9, - 26262 - 11905: 0xC5AF, - 26263 - 11905: 0xB0B5, - 26264 - 11905: 0x95AA, - 26265 - 11905: 0x95AB, - 26266 - 11905: 0x95AC, - 26267 - 11905: 0x95AD, - 26268 - 11905: 0x95AE, - 26269 - 11905: 0xEAD4, - 26270 - 11905: 0x95AF, - 26271 - 11905: 0x95B0, - 26272 - 11905: 0x95B1, - 26273 - 11905: 0x95B2, - 26274 - 11905: 0x95B3, - 26275 - 11905: 0x95B4, - 26276 - 11905: 0x95B5, - 26277 - 11905: 0x95B6, - 26278 - 11905: 0x95B7, - 26279 - 11905: 0xEAD3, - 26280 - 11905: 0xF4DF, - 26281 - 11905: 0x95B8, - 26282 - 11905: 0x95B9, - 26283 - 11905: 0x95BA, - 26284 - 11905: 0x95BB, - 26285 - 11905: 0x95BC, - 26286 - 11905: 0xC4BA, - 26287 - 11905: 0x95BD, - 26288 - 11905: 0x95BE, - 26289 - 11905: 0x95BF, - 26290 - 11905: 0x95C0, - 26291 - 11905: 0x95C1, - 26292 - 11905: 0xB1A9, - 26293 - 11905: 0x95C2, - 26294 - 11905: 0x95C3, - 26295 - 11905: 0x95C4, - 26296 - 11905: 0x95C5, - 26297 - 11905: 0xE5DF, - 26298 - 11905: 0x95C6, - 26299 - 11905: 0x95C7, - 26300 - 11905: 0x95C8, - 26301 - 11905: 0x95C9, - 26302 - 11905: 0xEAD5, - 26303 - 11905: 0x95CA, - 26304 - 11905: 0x95CB, - 26305 - 11905: 0x95CC, - 26306 - 11905: 0x95CD, - 26307 - 11905: 0x95CE, - 26308 - 11905: 0x95CF, - 26309 - 11905: 0x95D0, - 26310 - 11905: 0x95D1, - 26311 - 11905: 0x95D2, - 26312 - 11905: 0x95D3, - 26313 - 11905: 0x95D4, - 26314 - 11905: 0x95D5, - 26315 - 11905: 0x95D6, - 26316 - 11905: 0x95D7, - 26317 - 11905: 0x95D8, - 26318 - 11905: 0x95D9, - 26319 - 11905: 0x95DA, - 26320 - 11905: 0x95DB, - 26321 - 11905: 0x95DC, - 26322 - 11905: 0x95DD, - 26323 - 11905: 0x95DE, - 26324 - 11905: 0x95DF, - 26325 - 11905: 0x95E0, - 26326 - 11905: 0x95E1, - 26327 - 11905: 0x95E2, - 26328 - 11905: 0x95E3, - 26329 - 11905: 0xCAEF, - 26330 - 11905: 0x95E4, - 26331 - 11905: 0xEAD6, - 26332 - 11905: 0xEAD7, - 26333 - 11905: 0xC6D8, - 26334 - 11905: 0x95E5, - 26335 - 11905: 0x95E6, - 26336 - 11905: 0x95E7, - 26337 - 11905: 0x95E8, - 26338 - 11905: 0x95E9, - 26339 - 11905: 0x95EA, - 26340 - 11905: 0x95EB, - 26341 - 11905: 0x95EC, - 26342 - 11905: 0xEAD8, - 26343 - 11905: 0x95ED, - 26344 - 11905: 0x95EE, - 26345 - 11905: 0xEAD9, - 26346 - 11905: 0x95EF, - 26347 - 11905: 0x95F0, - 26348 - 11905: 0x95F1, - 26349 - 11905: 0x95F2, - 26350 - 11905: 0x95F3, - 26351 - 11905: 0x95F4, - 26352 - 11905: 0xD4BB, - 26353 - 11905: 0x95F5, - 26354 - 11905: 0xC7FA, - 26355 - 11905: 0xD2B7, - 26356 - 11905: 0xB8FC, - 26357 - 11905: 0x95F6, - 26358 - 11905: 0x95F7, - 26359 - 11905: 0xEAC2, - 26360 - 11905: 0x95F8, - 26361 - 11905: 0xB2DC, - 26362 - 11905: 0x95F9, - 26363 - 11905: 0x95FA, - 26364 - 11905: 0xC2FC, - 26365 - 11905: 0x95FB, - 26366 - 11905: 0xD4F8, - 26367 - 11905: 0xCCE6, - 26368 - 11905: 0xD7EE, - 26369 - 11905: 0x95FC, - 26370 - 11905: 0x95FD, - 26371 - 11905: 0x95FE, - 26372 - 11905: 0x9640, - 26373 - 11905: 0x9641, - 26374 - 11905: 0x9642, - 26375 - 11905: 0x9643, - 26376 - 11905: 0xD4C2, - 26377 - 11905: 0xD3D0, - 26378 - 11905: 0xEBC3, - 26379 - 11905: 0xC5F3, - 26380 - 11905: 0x9644, - 26381 - 11905: 0xB7FE, - 26382 - 11905: 0x9645, - 26383 - 11905: 0x9646, - 26384 - 11905: 0xEBD4, - 26385 - 11905: 0x9647, - 26386 - 11905: 0x9648, - 26387 - 11905: 0x9649, - 26388 - 11905: 0xCBB7, - 26389 - 11905: 0xEBDE, - 26390 - 11905: 0x964A, - 26391 - 11905: 0xC0CA, - 26392 - 11905: 0x964B, - 26393 - 11905: 0x964C, - 26394 - 11905: 0x964D, - 26395 - 11905: 0xCDFB, - 26396 - 11905: 0x964E, - 26397 - 11905: 0xB3AF, - 26398 - 11905: 0x964F, - 26399 - 11905: 0xC6DA, - 26400 - 11905: 0x9650, - 26401 - 11905: 0x9651, - 26402 - 11905: 0x9652, - 26403 - 11905: 0x9653, - 26404 - 11905: 0x9654, - 26405 - 11905: 0x9655, - 26406 - 11905: 0xEBFC, - 26407 - 11905: 0x9656, - 26408 - 11905: 0xC4BE, - 26409 - 11905: 0x9657, - 26410 - 11905: 0xCEB4, - 26411 - 11905: 0xC4A9, - 26412 - 11905: 0xB1BE, - 26413 - 11905: 0xD4FD, - 26414 - 11905: 0x9658, - 26415 - 11905: 0xCAF5, - 26416 - 11905: 0x9659, - 26417 - 11905: 0xD6EC, - 26418 - 11905: 0x965A, - 26419 - 11905: 0x965B, - 26420 - 11905: 0xC6D3, - 26421 - 11905: 0xB6E4, - 26422 - 11905: 0x965C, - 26423 - 11905: 0x965D, - 26424 - 11905: 0x965E, - 26425 - 11905: 0x965F, - 26426 - 11905: 0xBBFA, - 26427 - 11905: 0x9660, - 26428 - 11905: 0x9661, - 26429 - 11905: 0xD0E0, - 26430 - 11905: 0x9662, - 26431 - 11905: 0x9663, - 26432 - 11905: 0xC9B1, - 26433 - 11905: 0x9664, - 26434 - 11905: 0xD4D3, - 26435 - 11905: 0xC8A8, - 26436 - 11905: 0x9665, - 26437 - 11905: 0x9666, - 26438 - 11905: 0xB8CB, - 26439 - 11905: 0x9667, - 26440 - 11905: 0xE8BE, - 26441 - 11905: 0xC9BC, - 26442 - 11905: 0x9668, - 26443 - 11905: 0x9669, - 26444 - 11905: 0xE8BB, - 26445 - 11905: 0x966A, - 26446 - 11905: 0xC0EE, - 26447 - 11905: 0xD0D3, - 26448 - 11905: 0xB2C4, - 26449 - 11905: 0xB4E5, - 26450 - 11905: 0x966B, - 26451 - 11905: 0xE8BC, - 26452 - 11905: 0x966C, - 26453 - 11905: 0x966D, - 26454 - 11905: 0xD5C8, - 26455 - 11905: 0x966E, - 26456 - 11905: 0x966F, - 26457 - 11905: 0x9670, - 26458 - 11905: 0x9671, - 26459 - 11905: 0x9672, - 26460 - 11905: 0xB6C5, - 26461 - 11905: 0x9673, - 26462 - 11905: 0xE8BD, - 26463 - 11905: 0xCAF8, - 26464 - 11905: 0xB8DC, - 26465 - 11905: 0xCCF5, - 26466 - 11905: 0x9674, - 26467 - 11905: 0x9675, - 26468 - 11905: 0x9676, - 26469 - 11905: 0xC0B4, - 26470 - 11905: 0x9677, - 26471 - 11905: 0x9678, - 26472 - 11905: 0xD1EE, - 26473 - 11905: 0xE8BF, - 26474 - 11905: 0xE8C2, - 26475 - 11905: 0x9679, - 26476 - 11905: 0x967A, - 26477 - 11905: 0xBABC, - 26478 - 11905: 0x967B, - 26479 - 11905: 0xB1AD, - 26480 - 11905: 0xBDDC, - 26481 - 11905: 0x967C, - 26482 - 11905: 0xEABD, - 26483 - 11905: 0xE8C3, - 26484 - 11905: 0x967D, - 26485 - 11905: 0xE8C6, - 26486 - 11905: 0x967E, - 26487 - 11905: 0xE8CB, - 26488 - 11905: 0x9680, - 26489 - 11905: 0x9681, - 26490 - 11905: 0x9682, - 26491 - 11905: 0x9683, - 26492 - 11905: 0xE8CC, - 26493 - 11905: 0x9684, - 26494 - 11905: 0xCBC9, - 26495 - 11905: 0xB0E5, - 26496 - 11905: 0x9685, - 26497 - 11905: 0xBCAB, - 26498 - 11905: 0x9686, - 26499 - 11905: 0x9687, - 26500 - 11905: 0xB9B9, - 26501 - 11905: 0x9688, - 26502 - 11905: 0x9689, - 26503 - 11905: 0xE8C1, - 26504 - 11905: 0x968A, - 26505 - 11905: 0xCDF7, - 26506 - 11905: 0x968B, - 26507 - 11905: 0xE8CA, - 26508 - 11905: 0x968C, - 26509 - 11905: 0x968D, - 26510 - 11905: 0x968E, - 26511 - 11905: 0x968F, - 26512 - 11905: 0xCEF6, - 26513 - 11905: 0x9690, - 26514 - 11905: 0x9691, - 26515 - 11905: 0x9692, - 26516 - 11905: 0x9693, - 26517 - 11905: 0xD5ED, - 26518 - 11905: 0x9694, - 26519 - 11905: 0xC1D6, - 26520 - 11905: 0xE8C4, - 26521 - 11905: 0x9695, - 26522 - 11905: 0xC3B6, - 26523 - 11905: 0x9696, - 26524 - 11905: 0xB9FB, - 26525 - 11905: 0xD6A6, - 26526 - 11905: 0xE8C8, - 26527 - 11905: 0x9697, - 26528 - 11905: 0x9698, - 26529 - 11905: 0x9699, - 26530 - 11905: 0xCAE0, - 26531 - 11905: 0xD4E6, - 26532 - 11905: 0x969A, - 26533 - 11905: 0xE8C0, - 26534 - 11905: 0x969B, - 26535 - 11905: 0xE8C5, - 26536 - 11905: 0xE8C7, - 26537 - 11905: 0x969C, - 26538 - 11905: 0xC7B9, - 26539 - 11905: 0xB7E3, - 26540 - 11905: 0x969D, - 26541 - 11905: 0xE8C9, - 26542 - 11905: 0x969E, - 26543 - 11905: 0xBFDD, - 26544 - 11905: 0xE8D2, - 26545 - 11905: 0x969F, - 26546 - 11905: 0x96A0, - 26547 - 11905: 0xE8D7, - 26548 - 11905: 0x96A1, - 26549 - 11905: 0xE8D5, - 26550 - 11905: 0xBCDC, - 26551 - 11905: 0xBCCF, - 26552 - 11905: 0xE8DB, - 26553 - 11905: 0x96A2, - 26554 - 11905: 0x96A3, - 26555 - 11905: 0x96A4, - 26556 - 11905: 0x96A5, - 26557 - 11905: 0x96A6, - 26558 - 11905: 0x96A7, - 26559 - 11905: 0x96A8, - 26560 - 11905: 0x96A9, - 26561 - 11905: 0xE8DE, - 26562 - 11905: 0x96AA, - 26563 - 11905: 0xE8DA, - 26564 - 11905: 0xB1FA, - 26565 - 11905: 0x96AB, - 26566 - 11905: 0x96AC, - 26567 - 11905: 0x96AD, - 26568 - 11905: 0x96AE, - 26569 - 11905: 0x96AF, - 26570 - 11905: 0x96B0, - 26571 - 11905: 0x96B1, - 26572 - 11905: 0x96B2, - 26573 - 11905: 0x96B3, - 26574 - 11905: 0x96B4, - 26575 - 11905: 0xB0D8, - 26576 - 11905: 0xC4B3, - 26577 - 11905: 0xB8CC, - 26578 - 11905: 0xC6E2, - 26579 - 11905: 0xC8BE, - 26580 - 11905: 0xC8E1, - 26581 - 11905: 0x96B5, - 26582 - 11905: 0x96B6, - 26583 - 11905: 0x96B7, - 26584 - 11905: 0xE8CF, - 26585 - 11905: 0xE8D4, - 26586 - 11905: 0xE8D6, - 26587 - 11905: 0x96B8, - 26588 - 11905: 0xB9F1, - 26589 - 11905: 0xE8D8, - 26590 - 11905: 0xD7F5, - 26591 - 11905: 0x96B9, - 26592 - 11905: 0xC4FB, - 26593 - 11905: 0x96BA, - 26594 - 11905: 0xE8DC, - 26595 - 11905: 0x96BB, - 26596 - 11905: 0x96BC, - 26597 - 11905: 0xB2E9, - 26598 - 11905: 0x96BD, - 26599 - 11905: 0x96BE, - 26600 - 11905: 0x96BF, - 26601 - 11905: 0xE8D1, - 26602 - 11905: 0x96C0, - 26603 - 11905: 0x96C1, - 26604 - 11905: 0xBCED, - 26605 - 11905: 0x96C2, - 26606 - 11905: 0x96C3, - 26607 - 11905: 0xBFC2, - 26608 - 11905: 0xE8CD, - 26609 - 11905: 0xD6F9, - 26610 - 11905: 0x96C4, - 26611 - 11905: 0xC1F8, - 26612 - 11905: 0xB2F1, - 26613 - 11905: 0x96C5, - 26614 - 11905: 0x96C6, - 26615 - 11905: 0x96C7, - 26616 - 11905: 0x96C8, - 26617 - 11905: 0x96C9, - 26618 - 11905: 0x96CA, - 26619 - 11905: 0x96CB, - 26620 - 11905: 0x96CC, - 26621 - 11905: 0xE8DF, - 26622 - 11905: 0x96CD, - 26623 - 11905: 0xCAC1, - 26624 - 11905: 0xE8D9, - 26625 - 11905: 0x96CE, - 26626 - 11905: 0x96CF, - 26627 - 11905: 0x96D0, - 26628 - 11905: 0x96D1, - 26629 - 11905: 0xD5A4, - 26630 - 11905: 0x96D2, - 26631 - 11905: 0xB1EA, - 26632 - 11905: 0xD5BB, - 26633 - 11905: 0xE8CE, - 26634 - 11905: 0xE8D0, - 26635 - 11905: 0xB6B0, - 26636 - 11905: 0xE8D3, - 26637 - 11905: 0x96D3, - 26638 - 11905: 0xE8DD, - 26639 - 11905: 0xC0B8, - 26640 - 11905: 0x96D4, - 26641 - 11905: 0xCAF7, - 26642 - 11905: 0x96D5, - 26643 - 11905: 0xCBA8, - 26644 - 11905: 0x96D6, - 26645 - 11905: 0x96D7, - 26646 - 11905: 0xC6DC, - 26647 - 11905: 0xC0F5, - 26648 - 11905: 0x96D8, - 26649 - 11905: 0x96D9, - 26650 - 11905: 0x96DA, - 26651 - 11905: 0x96DB, - 26652 - 11905: 0x96DC, - 26653 - 11905: 0xE8E9, - 26654 - 11905: 0x96DD, - 26655 - 11905: 0x96DE, - 26656 - 11905: 0x96DF, - 26657 - 11905: 0xD0A3, - 26658 - 11905: 0x96E0, - 26659 - 11905: 0x96E1, - 26660 - 11905: 0x96E2, - 26661 - 11905: 0x96E3, - 26662 - 11905: 0x96E4, - 26663 - 11905: 0x96E5, - 26664 - 11905: 0x96E6, - 26665 - 11905: 0xE8F2, - 26666 - 11905: 0xD6EA, - 26667 - 11905: 0x96E7, - 26668 - 11905: 0x96E8, - 26669 - 11905: 0x96E9, - 26670 - 11905: 0x96EA, - 26671 - 11905: 0x96EB, - 26672 - 11905: 0x96EC, - 26673 - 11905: 0x96ED, - 26674 - 11905: 0xE8E0, - 26675 - 11905: 0xE8E1, - 26676 - 11905: 0x96EE, - 26677 - 11905: 0x96EF, - 26678 - 11905: 0x96F0, - 26679 - 11905: 0xD1F9, - 26680 - 11905: 0xBACB, - 26681 - 11905: 0xB8F9, - 26682 - 11905: 0x96F1, - 26683 - 11905: 0x96F2, - 26684 - 11905: 0xB8F1, - 26685 - 11905: 0xD4D4, - 26686 - 11905: 0xE8EF, - 26687 - 11905: 0x96F3, - 26688 - 11905: 0xE8EE, - 26689 - 11905: 0xE8EC, - 26690 - 11905: 0xB9F0, - 26691 - 11905: 0xCCD2, - 26692 - 11905: 0xE8E6, - 26693 - 11905: 0xCEA6, - 26694 - 11905: 0xBFF2, - 26695 - 11905: 0x96F4, - 26696 - 11905: 0xB0B8, - 26697 - 11905: 0xE8F1, - 26698 - 11905: 0xE8F0, - 26699 - 11905: 0x96F5, - 26700 - 11905: 0xD7C0, - 26701 - 11905: 0x96F6, - 26702 - 11905: 0xE8E4, - 26703 - 11905: 0x96F7, - 26704 - 11905: 0xCDA9, - 26705 - 11905: 0xC9A3, - 26706 - 11905: 0x96F8, - 26707 - 11905: 0xBBB8, - 26708 - 11905: 0xBDDB, - 26709 - 11905: 0xE8EA, - 26710 - 11905: 0x96F9, - 26711 - 11905: 0x96FA, - 26712 - 11905: 0x96FB, - 26713 - 11905: 0x96FC, - 26714 - 11905: 0x96FD, - 26715 - 11905: 0x96FE, - 26716 - 11905: 0x9740, - 26717 - 11905: 0x9741, - 26718 - 11905: 0x9742, - 26719 - 11905: 0x9743, - 26720 - 11905: 0xE8E2, - 26721 - 11905: 0xE8E3, - 26722 - 11905: 0xE8E5, - 26723 - 11905: 0xB5B5, - 26724 - 11905: 0xE8E7, - 26725 - 11905: 0xC7C5, - 26726 - 11905: 0xE8EB, - 26727 - 11905: 0xE8ED, - 26728 - 11905: 0xBDB0, - 26729 - 11905: 0xD7AE, - 26730 - 11905: 0x9744, - 26731 - 11905: 0xE8F8, - 26732 - 11905: 0x9745, - 26733 - 11905: 0x9746, - 26734 - 11905: 0x9747, - 26735 - 11905: 0x9748, - 26736 - 11905: 0x9749, - 26737 - 11905: 0x974A, - 26738 - 11905: 0x974B, - 26739 - 11905: 0x974C, - 26740 - 11905: 0xE8F5, - 26741 - 11905: 0x974D, - 26742 - 11905: 0xCDB0, - 26743 - 11905: 0xE8F6, - 26744 - 11905: 0x974E, - 26745 - 11905: 0x974F, - 26746 - 11905: 0x9750, - 26747 - 11905: 0x9751, - 26748 - 11905: 0x9752, - 26749 - 11905: 0x9753, - 26750 - 11905: 0x9754, - 26751 - 11905: 0x9755, - 26752 - 11905: 0x9756, - 26753 - 11905: 0xC1BA, - 26754 - 11905: 0x9757, - 26755 - 11905: 0xE8E8, - 26756 - 11905: 0x9758, - 26757 - 11905: 0xC3B7, - 26758 - 11905: 0xB0F0, - 26759 - 11905: 0x9759, - 26760 - 11905: 0x975A, - 26761 - 11905: 0x975B, - 26762 - 11905: 0x975C, - 26763 - 11905: 0x975D, - 26764 - 11905: 0x975E, - 26765 - 11905: 0x975F, - 26766 - 11905: 0x9760, - 26767 - 11905: 0xE8F4, - 26768 - 11905: 0x9761, - 26769 - 11905: 0x9762, - 26770 - 11905: 0x9763, - 26771 - 11905: 0xE8F7, - 26772 - 11905: 0x9764, - 26773 - 11905: 0x9765, - 26774 - 11905: 0x9766, - 26775 - 11905: 0xB9A3, - 26776 - 11905: 0x9767, - 26777 - 11905: 0x9768, - 26778 - 11905: 0x9769, - 26779 - 11905: 0x976A, - 26780 - 11905: 0x976B, - 26781 - 11905: 0x976C, - 26782 - 11905: 0x976D, - 26783 - 11905: 0x976E, - 26784 - 11905: 0x976F, - 26785 - 11905: 0x9770, - 26786 - 11905: 0xC9D2, - 26787 - 11905: 0x9771, - 26788 - 11905: 0x9772, - 26789 - 11905: 0x9773, - 26790 - 11905: 0xC3CE, - 26791 - 11905: 0xCEE0, - 26792 - 11905: 0xC0E6, - 26793 - 11905: 0x9774, - 26794 - 11905: 0x9775, - 26795 - 11905: 0x9776, - 26796 - 11905: 0x9777, - 26797 - 11905: 0xCBF3, - 26798 - 11905: 0x9778, - 26799 - 11905: 0xCCDD, - 26800 - 11905: 0xD0B5, - 26801 - 11905: 0x9779, - 26802 - 11905: 0x977A, - 26803 - 11905: 0xCAE1, - 26804 - 11905: 0x977B, - 26805 - 11905: 0xE8F3, - 26806 - 11905: 0x977C, - 26807 - 11905: 0x977D, - 26808 - 11905: 0x977E, - 26809 - 11905: 0x9780, - 26810 - 11905: 0x9781, - 26811 - 11905: 0x9782, - 26812 - 11905: 0x9783, - 26813 - 11905: 0x9784, - 26814 - 11905: 0x9785, - 26815 - 11905: 0x9786, - 26816 - 11905: 0xBCEC, - 26817 - 11905: 0x9787, - 26818 - 11905: 0xE8F9, - 26819 - 11905: 0x9788, - 26820 - 11905: 0x9789, - 26821 - 11905: 0x978A, - 26822 - 11905: 0x978B, - 26823 - 11905: 0x978C, - 26824 - 11905: 0x978D, - 26825 - 11905: 0xC3DE, - 26826 - 11905: 0x978E, - 26827 - 11905: 0xC6E5, - 26828 - 11905: 0x978F, - 26829 - 11905: 0xB9F7, - 26830 - 11905: 0x9790, - 26831 - 11905: 0x9791, - 26832 - 11905: 0x9792, - 26833 - 11905: 0x9793, - 26834 - 11905: 0xB0F4, - 26835 - 11905: 0x9794, - 26836 - 11905: 0x9795, - 26837 - 11905: 0xD7D8, - 26838 - 11905: 0x9796, - 26839 - 11905: 0x9797, - 26840 - 11905: 0xBCAC, - 26841 - 11905: 0x9798, - 26842 - 11905: 0xC5EF, - 26843 - 11905: 0x9799, - 26844 - 11905: 0x979A, - 26845 - 11905: 0x979B, - 26846 - 11905: 0x979C, - 26847 - 11905: 0x979D, - 26848 - 11905: 0xCCC4, - 26849 - 11905: 0x979E, - 26850 - 11905: 0x979F, - 26851 - 11905: 0xE9A6, - 26852 - 11905: 0x97A0, - 26853 - 11905: 0x97A1, - 26854 - 11905: 0x97A2, - 26855 - 11905: 0x97A3, - 26856 - 11905: 0x97A4, - 26857 - 11905: 0x97A5, - 26858 - 11905: 0x97A6, - 26859 - 11905: 0x97A7, - 26860 - 11905: 0x97A8, - 26861 - 11905: 0x97A9, - 26862 - 11905: 0xC9AD, - 26863 - 11905: 0x97AA, - 26864 - 11905: 0xE9A2, - 26865 - 11905: 0xC0E2, - 26866 - 11905: 0x97AB, - 26867 - 11905: 0x97AC, - 26868 - 11905: 0x97AD, - 26869 - 11905: 0xBFC3, - 26870 - 11905: 0x97AE, - 26871 - 11905: 0x97AF, - 26872 - 11905: 0x97B0, - 26873 - 11905: 0xE8FE, - 26874 - 11905: 0xB9D7, - 26875 - 11905: 0x97B1, - 26876 - 11905: 0xE8FB, - 26877 - 11905: 0x97B2, - 26878 - 11905: 0x97B3, - 26879 - 11905: 0x97B4, - 26880 - 11905: 0x97B5, - 26881 - 11905: 0xE9A4, - 26882 - 11905: 0x97B6, - 26883 - 11905: 0x97B7, - 26884 - 11905: 0x97B8, - 26885 - 11905: 0xD2CE, - 26886 - 11905: 0x97B9, - 26887 - 11905: 0x97BA, - 26888 - 11905: 0x97BB, - 26889 - 11905: 0x97BC, - 26890 - 11905: 0x97BD, - 26891 - 11905: 0xE9A3, - 26892 - 11905: 0x97BE, - 26893 - 11905: 0xD6B2, - 26894 - 11905: 0xD7B5, - 26895 - 11905: 0x97BF, - 26896 - 11905: 0xE9A7, - 26897 - 11905: 0x97C0, - 26898 - 11905: 0xBDB7, - 26899 - 11905: 0x97C1, - 26900 - 11905: 0x97C2, - 26901 - 11905: 0x97C3, - 26902 - 11905: 0x97C4, - 26903 - 11905: 0x97C5, - 26904 - 11905: 0x97C6, - 26905 - 11905: 0x97C7, - 26906 - 11905: 0x97C8, - 26907 - 11905: 0x97C9, - 26908 - 11905: 0x97CA, - 26909 - 11905: 0x97CB, - 26910 - 11905: 0x97CC, - 26911 - 11905: 0xE8FC, - 26912 - 11905: 0xE8FD, - 26913 - 11905: 0x97CD, - 26914 - 11905: 0x97CE, - 26915 - 11905: 0x97CF, - 26916 - 11905: 0xE9A1, - 26917 - 11905: 0x97D0, - 26918 - 11905: 0x97D1, - 26919 - 11905: 0x97D2, - 26920 - 11905: 0x97D3, - 26921 - 11905: 0x97D4, - 26922 - 11905: 0x97D5, - 26923 - 11905: 0x97D6, - 26924 - 11905: 0x97D7, - 26925 - 11905: 0xCDD6, - 26926 - 11905: 0x97D8, - 26927 - 11905: 0x97D9, - 26928 - 11905: 0xD2AC, - 26929 - 11905: 0x97DA, - 26930 - 11905: 0x97DB, - 26931 - 11905: 0x97DC, - 26932 - 11905: 0xE9B2, - 26933 - 11905: 0x97DD, - 26934 - 11905: 0x97DE, - 26935 - 11905: 0x97DF, - 26936 - 11905: 0x97E0, - 26937 - 11905: 0xE9A9, - 26938 - 11905: 0x97E1, - 26939 - 11905: 0x97E2, - 26940 - 11905: 0x97E3, - 26941 - 11905: 0xB4AA, - 26942 - 11905: 0x97E4, - 26943 - 11905: 0xB4BB, - 26944 - 11905: 0x97E5, - 26945 - 11905: 0x97E6, - 26946 - 11905: 0xE9AB, - 26947 - 11905: 0x97E7, - 26948 - 11905: 0x97E8, - 26949 - 11905: 0x97E9, - 26950 - 11905: 0x97EA, - 26951 - 11905: 0x97EB, - 26952 - 11905: 0x97EC, - 26953 - 11905: 0x97ED, - 26954 - 11905: 0x97EE, - 26955 - 11905: 0x97EF, - 26956 - 11905: 0x97F0, - 26957 - 11905: 0x97F1, - 26958 - 11905: 0x97F2, - 26959 - 11905: 0x97F3, - 26960 - 11905: 0x97F4, - 26961 - 11905: 0x97F5, - 26962 - 11905: 0x97F6, - 26963 - 11905: 0x97F7, - 26964 - 11905: 0xD0A8, - 26965 - 11905: 0x97F8, - 26966 - 11905: 0x97F9, - 26967 - 11905: 0xE9A5, - 26968 - 11905: 0x97FA, - 26969 - 11905: 0x97FB, - 26970 - 11905: 0xB3FE, - 26971 - 11905: 0x97FC, - 26972 - 11905: 0x97FD, - 26973 - 11905: 0xE9AC, - 26974 - 11905: 0xC0E3, - 26975 - 11905: 0x97FE, - 26976 - 11905: 0xE9AA, - 26977 - 11905: 0x9840, - 26978 - 11905: 0x9841, - 26979 - 11905: 0xE9B9, - 26980 - 11905: 0x9842, - 26981 - 11905: 0x9843, - 26982 - 11905: 0xE9B8, - 26983 - 11905: 0x9844, - 26984 - 11905: 0x9845, - 26985 - 11905: 0x9846, - 26986 - 11905: 0x9847, - 26987 - 11905: 0xE9AE, - 26988 - 11905: 0x9848, - 26989 - 11905: 0x9849, - 26990 - 11905: 0xE8FA, - 26991 - 11905: 0x984A, - 26992 - 11905: 0x984B, - 26993 - 11905: 0xE9A8, - 26994 - 11905: 0x984C, - 26995 - 11905: 0x984D, - 26996 - 11905: 0x984E, - 26997 - 11905: 0x984F, - 26998 - 11905: 0x9850, - 26999 - 11905: 0xBFAC, - 27000 - 11905: 0xE9B1, - 27001 - 11905: 0xE9BA, - 27002 - 11905: 0x9851, - 27003 - 11905: 0x9852, - 27004 - 11905: 0xC2A5, - 27005 - 11905: 0x9853, - 27006 - 11905: 0x9854, - 27007 - 11905: 0x9855, - 27008 - 11905: 0xE9AF, - 27009 - 11905: 0x9856, - 27010 - 11905: 0xB8C5, - 27011 - 11905: 0x9857, - 27012 - 11905: 0xE9AD, - 27013 - 11905: 0x9858, - 27014 - 11905: 0xD3DC, - 27015 - 11905: 0xE9B4, - 27016 - 11905: 0xE9B5, - 27017 - 11905: 0xE9B7, - 27018 - 11905: 0x9859, - 27019 - 11905: 0x985A, - 27020 - 11905: 0x985B, - 27021 - 11905: 0xE9C7, - 27022 - 11905: 0x985C, - 27023 - 11905: 0x985D, - 27024 - 11905: 0x985E, - 27025 - 11905: 0x985F, - 27026 - 11905: 0x9860, - 27027 - 11905: 0x9861, - 27028 - 11905: 0xC0C6, - 27029 - 11905: 0xE9C5, - 27030 - 11905: 0x9862, - 27031 - 11905: 0x9863, - 27032 - 11905: 0xE9B0, - 27033 - 11905: 0x9864, - 27034 - 11905: 0x9865, - 27035 - 11905: 0xE9BB, - 27036 - 11905: 0xB0F1, - 27037 - 11905: 0x9866, - 27038 - 11905: 0x9867, - 27039 - 11905: 0x9868, - 27040 - 11905: 0x9869, - 27041 - 11905: 0x986A, - 27042 - 11905: 0x986B, - 27043 - 11905: 0x986C, - 27044 - 11905: 0x986D, - 27045 - 11905: 0x986E, - 27046 - 11905: 0x986F, - 27047 - 11905: 0xE9BC, - 27048 - 11905: 0xD5A5, - 27049 - 11905: 0x9870, - 27050 - 11905: 0x9871, - 27051 - 11905: 0xE9BE, - 27052 - 11905: 0x9872, - 27053 - 11905: 0xE9BF, - 27054 - 11905: 0x9873, - 27055 - 11905: 0x9874, - 27056 - 11905: 0x9875, - 27057 - 11905: 0xE9C1, - 27058 - 11905: 0x9876, - 27059 - 11905: 0x9877, - 27060 - 11905: 0xC1F1, - 27061 - 11905: 0x9878, - 27062 - 11905: 0x9879, - 27063 - 11905: 0xC8B6, - 27064 - 11905: 0x987A, - 27065 - 11905: 0x987B, - 27066 - 11905: 0x987C, - 27067 - 11905: 0xE9BD, - 27068 - 11905: 0x987D, - 27069 - 11905: 0x987E, - 27070 - 11905: 0x9880, - 27071 - 11905: 0x9881, - 27072 - 11905: 0x9882, - 27073 - 11905: 0xE9C2, - 27074 - 11905: 0x9883, - 27075 - 11905: 0x9884, - 27076 - 11905: 0x9885, - 27077 - 11905: 0x9886, - 27078 - 11905: 0x9887, - 27079 - 11905: 0x9888, - 27080 - 11905: 0x9889, - 27081 - 11905: 0x988A, - 27082 - 11905: 0xE9C3, - 27083 - 11905: 0x988B, - 27084 - 11905: 0xE9B3, - 27085 - 11905: 0x988C, - 27086 - 11905: 0xE9B6, - 27087 - 11905: 0x988D, - 27088 - 11905: 0xBBB1, - 27089 - 11905: 0x988E, - 27090 - 11905: 0x988F, - 27091 - 11905: 0x9890, - 27092 - 11905: 0xE9C0, - 27093 - 11905: 0x9891, - 27094 - 11905: 0x9892, - 27095 - 11905: 0x9893, - 27096 - 11905: 0x9894, - 27097 - 11905: 0x9895, - 27098 - 11905: 0x9896, - 27099 - 11905: 0xBCF7, - 27100 - 11905: 0x9897, - 27101 - 11905: 0x9898, - 27102 - 11905: 0x9899, - 27103 - 11905: 0xE9C4, - 27104 - 11905: 0xE9C6, - 27105 - 11905: 0x989A, - 27106 - 11905: 0x989B, - 27107 - 11905: 0x989C, - 27108 - 11905: 0x989D, - 27109 - 11905: 0x989E, - 27110 - 11905: 0x989F, - 27111 - 11905: 0x98A0, - 27112 - 11905: 0x98A1, - 27113 - 11905: 0x98A2, - 27114 - 11905: 0x98A3, - 27115 - 11905: 0x98A4, - 27116 - 11905: 0x98A5, - 27117 - 11905: 0xE9CA, - 27118 - 11905: 0x98A6, - 27119 - 11905: 0x98A7, - 27120 - 11905: 0x98A8, - 27121 - 11905: 0x98A9, - 27122 - 11905: 0xE9CE, - 27123 - 11905: 0x98AA, - 27124 - 11905: 0x98AB, - 27125 - 11905: 0x98AC, - 27126 - 11905: 0x98AD, - 27127 - 11905: 0x98AE, - 27128 - 11905: 0x98AF, - 27129 - 11905: 0x98B0, - 27130 - 11905: 0x98B1, - 27131 - 11905: 0x98B2, - 27132 - 11905: 0x98B3, - 27133 - 11905: 0xB2DB, - 27134 - 11905: 0x98B4, - 27135 - 11905: 0xE9C8, - 27136 - 11905: 0x98B5, - 27137 - 11905: 0x98B6, - 27138 - 11905: 0x98B7, - 27139 - 11905: 0x98B8, - 27140 - 11905: 0x98B9, - 27141 - 11905: 0x98BA, - 27142 - 11905: 0x98BB, - 27143 - 11905: 0x98BC, - 27144 - 11905: 0x98BD, - 27145 - 11905: 0x98BE, - 27146 - 11905: 0xB7AE, - 27147 - 11905: 0x98BF, - 27148 - 11905: 0x98C0, - 27149 - 11905: 0x98C1, - 27150 - 11905: 0x98C2, - 27151 - 11905: 0x98C3, - 27152 - 11905: 0x98C4, - 27153 - 11905: 0x98C5, - 27154 - 11905: 0x98C6, - 27155 - 11905: 0x98C7, - 27156 - 11905: 0x98C8, - 27157 - 11905: 0x98C9, - 27158 - 11905: 0x98CA, - 27159 - 11905: 0xE9CB, - 27160 - 11905: 0xE9CC, - 27161 - 11905: 0x98CB, - 27162 - 11905: 0x98CC, - 27163 - 11905: 0x98CD, - 27164 - 11905: 0x98CE, - 27165 - 11905: 0x98CF, - 27166 - 11905: 0x98D0, - 27167 - 11905: 0xD5C1, - 27168 - 11905: 0x98D1, - 27169 - 11905: 0xC4A3, - 27170 - 11905: 0x98D2, - 27171 - 11905: 0x98D3, - 27172 - 11905: 0x98D4, - 27173 - 11905: 0x98D5, - 27174 - 11905: 0x98D6, - 27175 - 11905: 0x98D7, - 27176 - 11905: 0xE9D8, - 27177 - 11905: 0x98D8, - 27178 - 11905: 0xBAE1, - 27179 - 11905: 0x98D9, - 27180 - 11905: 0x98DA, - 27181 - 11905: 0x98DB, - 27182 - 11905: 0x98DC, - 27183 - 11905: 0xE9C9, - 27184 - 11905: 0x98DD, - 27185 - 11905: 0xD3A3, - 27186 - 11905: 0x98DE, - 27187 - 11905: 0x98DF, - 27188 - 11905: 0x98E0, - 27189 - 11905: 0xE9D4, - 27190 - 11905: 0x98E1, - 27191 - 11905: 0x98E2, - 27192 - 11905: 0x98E3, - 27193 - 11905: 0x98E4, - 27194 - 11905: 0x98E5, - 27195 - 11905: 0x98E6, - 27196 - 11905: 0x98E7, - 27197 - 11905: 0xE9D7, - 27198 - 11905: 0xE9D0, - 27199 - 11905: 0x98E8, - 27200 - 11905: 0x98E9, - 27201 - 11905: 0x98EA, - 27202 - 11905: 0x98EB, - 27203 - 11905: 0x98EC, - 27204 - 11905: 0xE9CF, - 27205 - 11905: 0x98ED, - 27206 - 11905: 0x98EE, - 27207 - 11905: 0xC7C1, - 27208 - 11905: 0x98EF, - 27209 - 11905: 0x98F0, - 27210 - 11905: 0x98F1, - 27211 - 11905: 0x98F2, - 27212 - 11905: 0x98F3, - 27213 - 11905: 0x98F4, - 27214 - 11905: 0x98F5, - 27215 - 11905: 0x98F6, - 27216 - 11905: 0xE9D2, - 27217 - 11905: 0x98F7, - 27218 - 11905: 0x98F8, - 27219 - 11905: 0x98F9, - 27220 - 11905: 0x98FA, - 27221 - 11905: 0x98FB, - 27222 - 11905: 0x98FC, - 27223 - 11905: 0x98FD, - 27224 - 11905: 0xE9D9, - 27225 - 11905: 0xB3C8, - 27226 - 11905: 0x98FE, - 27227 - 11905: 0xE9D3, - 27228 - 11905: 0x9940, - 27229 - 11905: 0x9941, - 27230 - 11905: 0x9942, - 27231 - 11905: 0x9943, - 27232 - 11905: 0x9944, - 27233 - 11905: 0xCFF0, - 27234 - 11905: 0x9945, - 27235 - 11905: 0x9946, - 27236 - 11905: 0x9947, - 27237 - 11905: 0xE9CD, - 27238 - 11905: 0x9948, - 27239 - 11905: 0x9949, - 27240 - 11905: 0x994A, - 27241 - 11905: 0x994B, - 27242 - 11905: 0x994C, - 27243 - 11905: 0x994D, - 27244 - 11905: 0x994E, - 27245 - 11905: 0x994F, - 27246 - 11905: 0x9950, - 27247 - 11905: 0x9951, - 27248 - 11905: 0x9952, - 27249 - 11905: 0xB3F7, - 27250 - 11905: 0x9953, - 27251 - 11905: 0x9954, - 27252 - 11905: 0x9955, - 27253 - 11905: 0x9956, - 27254 - 11905: 0x9957, - 27255 - 11905: 0x9958, - 27256 - 11905: 0x9959, - 27257 - 11905: 0xE9D6, - 27258 - 11905: 0x995A, - 27259 - 11905: 0x995B, - 27260 - 11905: 0xE9DA, - 27261 - 11905: 0x995C, - 27262 - 11905: 0x995D, - 27263 - 11905: 0x995E, - 27264 - 11905: 0xCCB4, - 27265 - 11905: 0x995F, - 27266 - 11905: 0x9960, - 27267 - 11905: 0x9961, - 27268 - 11905: 0xCFAD, - 27269 - 11905: 0x9962, - 27270 - 11905: 0x9963, - 27271 - 11905: 0x9964, - 27272 - 11905: 0x9965, - 27273 - 11905: 0x9966, - 27274 - 11905: 0x9967, - 27275 - 11905: 0x9968, - 27276 - 11905: 0x9969, - 27277 - 11905: 0x996A, - 27278 - 11905: 0xE9D5, - 27279 - 11905: 0x996B, - 27280 - 11905: 0xE9DC, - 27281 - 11905: 0xE9DB, - 27282 - 11905: 0x996C, - 27283 - 11905: 0x996D, - 27284 - 11905: 0x996E, - 27285 - 11905: 0x996F, - 27286 - 11905: 0x9970, - 27287 - 11905: 0xE9DE, - 27288 - 11905: 0x9971, - 27289 - 11905: 0x9972, - 27290 - 11905: 0x9973, - 27291 - 11905: 0x9974, - 27292 - 11905: 0x9975, - 27293 - 11905: 0x9976, - 27294 - 11905: 0x9977, - 27295 - 11905: 0x9978, - 27296 - 11905: 0xE9D1, - 27297 - 11905: 0x9979, - 27298 - 11905: 0x997A, - 27299 - 11905: 0x997B, - 27300 - 11905: 0x997C, - 27301 - 11905: 0x997D, - 27302 - 11905: 0x997E, - 27303 - 11905: 0x9980, - 27304 - 11905: 0x9981, - 27305 - 11905: 0xE9DD, - 27306 - 11905: 0x9982, - 27307 - 11905: 0xE9DF, - 27308 - 11905: 0xC3CA, - 27309 - 11905: 0x9983, - 27310 - 11905: 0x9984, - 27311 - 11905: 0x9985, - 27312 - 11905: 0x9986, - 27313 - 11905: 0x9987, - 27314 - 11905: 0x9988, - 27315 - 11905: 0x9989, - 27316 - 11905: 0x998A, - 27317 - 11905: 0x998B, - 27318 - 11905: 0x998C, - 27319 - 11905: 0x998D, - 27320 - 11905: 0x998E, - 27321 - 11905: 0x998F, - 27322 - 11905: 0x9990, - 27323 - 11905: 0x9991, - 27324 - 11905: 0x9992, - 27325 - 11905: 0x9993, - 27326 - 11905: 0x9994, - 27327 - 11905: 0x9995, - 27328 - 11905: 0x9996, - 27329 - 11905: 0x9997, - 27330 - 11905: 0x9998, - 27331 - 11905: 0x9999, - 27332 - 11905: 0x999A, - 27333 - 11905: 0x999B, - 27334 - 11905: 0x999C, - 27335 - 11905: 0x999D, - 27336 - 11905: 0x999E, - 27337 - 11905: 0x999F, - 27338 - 11905: 0x99A0, - 27339 - 11905: 0x99A1, - 27340 - 11905: 0x99A2, - 27341 - 11905: 0x99A3, - 27342 - 11905: 0x99A4, - 27343 - 11905: 0x99A5, - 27344 - 11905: 0x99A6, - 27345 - 11905: 0x99A7, - 27346 - 11905: 0x99A8, - 27347 - 11905: 0x99A9, - 27348 - 11905: 0x99AA, - 27349 - 11905: 0x99AB, - 27350 - 11905: 0x99AC, - 27351 - 11905: 0x99AD, - 27352 - 11905: 0x99AE, - 27353 - 11905: 0x99AF, - 27354 - 11905: 0x99B0, - 27355 - 11905: 0x99B1, - 27356 - 11905: 0x99B2, - 27357 - 11905: 0x99B3, - 27358 - 11905: 0x99B4, - 27359 - 11905: 0x99B5, - 27360 - 11905: 0x99B6, - 27361 - 11905: 0x99B7, - 27362 - 11905: 0x99B8, - 27363 - 11905: 0x99B9, - 27364 - 11905: 0x99BA, - 27365 - 11905: 0x99BB, - 27366 - 11905: 0x99BC, - 27367 - 11905: 0x99BD, - 27368 - 11905: 0x99BE, - 27369 - 11905: 0x99BF, - 27370 - 11905: 0x99C0, - 27371 - 11905: 0x99C1, - 27372 - 11905: 0x99C2, - 27373 - 11905: 0x99C3, - 27374 - 11905: 0x99C4, - 27375 - 11905: 0x99C5, - 27376 - 11905: 0x99C6, - 27377 - 11905: 0x99C7, - 27378 - 11905: 0x99C8, - 27379 - 11905: 0x99C9, - 27380 - 11905: 0x99CA, - 27381 - 11905: 0x99CB, - 27382 - 11905: 0x99CC, - 27383 - 11905: 0x99CD, - 27384 - 11905: 0x99CE, - 27385 - 11905: 0x99CF, - 27386 - 11905: 0x99D0, - 27387 - 11905: 0x99D1, - 27388 - 11905: 0x99D2, - 27389 - 11905: 0x99D3, - 27390 - 11905: 0x99D4, - 27391 - 11905: 0x99D5, - 27392 - 11905: 0x99D6, - 27393 - 11905: 0x99D7, - 27394 - 11905: 0x99D8, - 27395 - 11905: 0x99D9, - 27396 - 11905: 0x99DA, - 27397 - 11905: 0x99DB, - 27398 - 11905: 0x99DC, - 27399 - 11905: 0x99DD, - 27400 - 11905: 0x99DE, - 27401 - 11905: 0x99DF, - 27402 - 11905: 0x99E0, - 27403 - 11905: 0x99E1, - 27404 - 11905: 0x99E2, - 27405 - 11905: 0x99E3, - 27406 - 11905: 0x99E4, - 27407 - 11905: 0x99E5, - 27408 - 11905: 0x99E6, - 27409 - 11905: 0x99E7, - 27410 - 11905: 0x99E8, - 27411 - 11905: 0x99E9, - 27412 - 11905: 0x99EA, - 27413 - 11905: 0x99EB, - 27414 - 11905: 0x99EC, - 27415 - 11905: 0x99ED, - 27416 - 11905: 0x99EE, - 27417 - 11905: 0x99EF, - 27418 - 11905: 0x99F0, - 27419 - 11905: 0x99F1, - 27420 - 11905: 0x99F2, - 27421 - 11905: 0x99F3, - 27422 - 11905: 0x99F4, - 27423 - 11905: 0x99F5, - 27424 - 11905: 0xC7B7, - 27425 - 11905: 0xB4CE, - 27426 - 11905: 0xBBB6, - 27427 - 11905: 0xD0C0, - 27428 - 11905: 0xECA3, - 27429 - 11905: 0x99F6, - 27430 - 11905: 0x99F7, - 27431 - 11905: 0xC5B7, - 27432 - 11905: 0x99F8, - 27433 - 11905: 0x99F9, - 27434 - 11905: 0x99FA, - 27435 - 11905: 0x99FB, - 27436 - 11905: 0x99FC, - 27437 - 11905: 0x99FD, - 27438 - 11905: 0x99FE, - 27439 - 11905: 0x9A40, - 27440 - 11905: 0x9A41, - 27441 - 11905: 0x9A42, - 27442 - 11905: 0xD3FB, - 27443 - 11905: 0x9A43, - 27444 - 11905: 0x9A44, - 27445 - 11905: 0x9A45, - 27446 - 11905: 0x9A46, - 27447 - 11905: 0xECA4, - 27448 - 11905: 0x9A47, - 27449 - 11905: 0xECA5, - 27450 - 11905: 0xC6DB, - 27451 - 11905: 0x9A48, - 27452 - 11905: 0x9A49, - 27453 - 11905: 0x9A4A, - 27454 - 11905: 0xBFEE, - 27455 - 11905: 0x9A4B, - 27456 - 11905: 0x9A4C, - 27457 - 11905: 0x9A4D, - 27458 - 11905: 0x9A4E, - 27459 - 11905: 0xECA6, - 27460 - 11905: 0x9A4F, - 27461 - 11905: 0x9A50, - 27462 - 11905: 0xECA7, - 27463 - 11905: 0xD0AA, - 27464 - 11905: 0x9A51, - 27465 - 11905: 0xC7B8, - 27466 - 11905: 0x9A52, - 27467 - 11905: 0x9A53, - 27468 - 11905: 0xB8E8, - 27469 - 11905: 0x9A54, - 27470 - 11905: 0x9A55, - 27471 - 11905: 0x9A56, - 27472 - 11905: 0x9A57, - 27473 - 11905: 0x9A58, - 27474 - 11905: 0x9A59, - 27475 - 11905: 0x9A5A, - 27476 - 11905: 0x9A5B, - 27477 - 11905: 0x9A5C, - 27478 - 11905: 0x9A5D, - 27479 - 11905: 0x9A5E, - 27480 - 11905: 0x9A5F, - 27481 - 11905: 0xECA8, - 27482 - 11905: 0x9A60, - 27483 - 11905: 0x9A61, - 27484 - 11905: 0x9A62, - 27485 - 11905: 0x9A63, - 27486 - 11905: 0x9A64, - 27487 - 11905: 0x9A65, - 27488 - 11905: 0x9A66, - 27489 - 11905: 0x9A67, - 27490 - 11905: 0xD6B9, - 27491 - 11905: 0xD5FD, - 27492 - 11905: 0xB4CB, - 27493 - 11905: 0xB2BD, - 27494 - 11905: 0xCEE4, - 27495 - 11905: 0xC6E7, - 27496 - 11905: 0x9A68, - 27497 - 11905: 0x9A69, - 27498 - 11905: 0xCDE1, - 27499 - 11905: 0x9A6A, - 27500 - 11905: 0x9A6B, - 27501 - 11905: 0x9A6C, - 27502 - 11905: 0x9A6D, - 27503 - 11905: 0x9A6E, - 27504 - 11905: 0x9A6F, - 27505 - 11905: 0x9A70, - 27506 - 11905: 0x9A71, - 27507 - 11905: 0x9A72, - 27508 - 11905: 0x9A73, - 27509 - 11905: 0x9A74, - 27510 - 11905: 0x9A75, - 27511 - 11905: 0x9A76, - 27512 - 11905: 0x9A77, - 27513 - 11905: 0xB4F5, - 27514 - 11905: 0x9A78, - 27515 - 11905: 0xCBC0, - 27516 - 11905: 0xBCDF, - 27517 - 11905: 0x9A79, - 27518 - 11905: 0x9A7A, - 27519 - 11905: 0x9A7B, - 27520 - 11905: 0x9A7C, - 27521 - 11905: 0xE9E2, - 27522 - 11905: 0xE9E3, - 27523 - 11905: 0xD1EA, - 27524 - 11905: 0xE9E5, - 27525 - 11905: 0x9A7D, - 27526 - 11905: 0xB4F9, - 27527 - 11905: 0xE9E4, - 27528 - 11905: 0x9A7E, - 27529 - 11905: 0xD1B3, - 27530 - 11905: 0xCAE2, - 27531 - 11905: 0xB2D0, - 27532 - 11905: 0x9A80, - 27533 - 11905: 0xE9E8, - 27534 - 11905: 0x9A81, - 27535 - 11905: 0x9A82, - 27536 - 11905: 0x9A83, - 27537 - 11905: 0x9A84, - 27538 - 11905: 0xE9E6, - 27539 - 11905: 0xE9E7, - 27540 - 11905: 0x9A85, - 27541 - 11905: 0x9A86, - 27542 - 11905: 0xD6B3, - 27543 - 11905: 0x9A87, - 27544 - 11905: 0x9A88, - 27545 - 11905: 0x9A89, - 27546 - 11905: 0xE9E9, - 27547 - 11905: 0xE9EA, - 27548 - 11905: 0x9A8A, - 27549 - 11905: 0x9A8B, - 27550 - 11905: 0x9A8C, - 27551 - 11905: 0x9A8D, - 27552 - 11905: 0x9A8E, - 27553 - 11905: 0xE9EB, - 27554 - 11905: 0x9A8F, - 27555 - 11905: 0x9A90, - 27556 - 11905: 0x9A91, - 27557 - 11905: 0x9A92, - 27558 - 11905: 0x9A93, - 27559 - 11905: 0x9A94, - 27560 - 11905: 0x9A95, - 27561 - 11905: 0x9A96, - 27562 - 11905: 0xE9EC, - 27563 - 11905: 0x9A97, - 27564 - 11905: 0x9A98, - 27565 - 11905: 0x9A99, - 27566 - 11905: 0x9A9A, - 27567 - 11905: 0x9A9B, - 27568 - 11905: 0x9A9C, - 27569 - 11905: 0x9A9D, - 27570 - 11905: 0x9A9E, - 27571 - 11905: 0xECAF, - 27572 - 11905: 0xC5B9, - 27573 - 11905: 0xB6CE, - 27574 - 11905: 0x9A9F, - 27575 - 11905: 0xD2F3, - 27576 - 11905: 0x9AA0, - 27577 - 11905: 0x9AA1, - 27578 - 11905: 0x9AA2, - 27579 - 11905: 0x9AA3, - 27580 - 11905: 0x9AA4, - 27581 - 11905: 0x9AA5, - 27582 - 11905: 0x9AA6, - 27583 - 11905: 0xB5EE, - 27584 - 11905: 0x9AA7, - 27585 - 11905: 0xBBD9, - 27586 - 11905: 0xECB1, - 27587 - 11905: 0x9AA8, - 27588 - 11905: 0x9AA9, - 27589 - 11905: 0xD2E3, - 27590 - 11905: 0x9AAA, - 27591 - 11905: 0x9AAB, - 27592 - 11905: 0x9AAC, - 27593 - 11905: 0x9AAD, - 27594 - 11905: 0x9AAE, - 27595 - 11905: 0xCEE3, - 27596 - 11905: 0x9AAF, - 27597 - 11905: 0xC4B8, - 27598 - 11905: 0x9AB0, - 27599 - 11905: 0xC3BF, - 27600 - 11905: 0x9AB1, - 27601 - 11905: 0x9AB2, - 27602 - 11905: 0xB6BE, - 27603 - 11905: 0xD8B9, - 27604 - 11905: 0xB1C8, - 27605 - 11905: 0xB1CF, - 27606 - 11905: 0xB1D1, - 27607 - 11905: 0xC5FE, - 27608 - 11905: 0x9AB3, - 27609 - 11905: 0xB1D0, - 27610 - 11905: 0x9AB4, - 27611 - 11905: 0xC3AB, - 27612 - 11905: 0x9AB5, - 27613 - 11905: 0x9AB6, - 27614 - 11905: 0x9AB7, - 27615 - 11905: 0x9AB8, - 27616 - 11905: 0x9AB9, - 27617 - 11905: 0xD5B1, - 27618 - 11905: 0x9ABA, - 27619 - 11905: 0x9ABB, - 27620 - 11905: 0x9ABC, - 27621 - 11905: 0x9ABD, - 27622 - 11905: 0x9ABE, - 27623 - 11905: 0x9ABF, - 27624 - 11905: 0x9AC0, - 27625 - 11905: 0x9AC1, - 27626 - 11905: 0xEBA4, - 27627 - 11905: 0xBAC1, - 27628 - 11905: 0x9AC2, - 27629 - 11905: 0x9AC3, - 27630 - 11905: 0x9AC4, - 27631 - 11905: 0xCCBA, - 27632 - 11905: 0x9AC5, - 27633 - 11905: 0x9AC6, - 27634 - 11905: 0x9AC7, - 27635 - 11905: 0xEBA5, - 27636 - 11905: 0x9AC8, - 27637 - 11905: 0xEBA7, - 27638 - 11905: 0x9AC9, - 27639 - 11905: 0x9ACA, - 27640 - 11905: 0x9ACB, - 27641 - 11905: 0xEBA8, - 27642 - 11905: 0x9ACC, - 27643 - 11905: 0x9ACD, - 27644 - 11905: 0x9ACE, - 27645 - 11905: 0xEBA6, - 27646 - 11905: 0x9ACF, - 27647 - 11905: 0x9AD0, - 27648 - 11905: 0x9AD1, - 27649 - 11905: 0x9AD2, - 27650 - 11905: 0x9AD3, - 27651 - 11905: 0x9AD4, - 27652 - 11905: 0x9AD5, - 27653 - 11905: 0xEBA9, - 27654 - 11905: 0xEBAB, - 27655 - 11905: 0xEBAA, - 27656 - 11905: 0x9AD6, - 27657 - 11905: 0x9AD7, - 27658 - 11905: 0x9AD8, - 27659 - 11905: 0x9AD9, - 27660 - 11905: 0x9ADA, - 27661 - 11905: 0xEBAC, - 27662 - 11905: 0x9ADB, - 27663 - 11905: 0xCACF, - 27664 - 11905: 0xD8B5, - 27665 - 11905: 0xC3F1, - 27666 - 11905: 0x9ADC, - 27667 - 11905: 0xC3A5, - 27668 - 11905: 0xC6F8, - 27669 - 11905: 0xEBAD, - 27670 - 11905: 0xC4CA, - 27671 - 11905: 0x9ADD, - 27672 - 11905: 0xEBAE, - 27673 - 11905: 0xEBAF, - 27674 - 11905: 0xEBB0, - 27675 - 11905: 0xB7D5, - 27676 - 11905: 0x9ADE, - 27677 - 11905: 0x9ADF, - 27678 - 11905: 0x9AE0, - 27679 - 11905: 0xB7FA, - 27680 - 11905: 0x9AE1, - 27681 - 11905: 0xEBB1, - 27682 - 11905: 0xC7E2, - 27683 - 11905: 0x9AE2, - 27684 - 11905: 0xEBB3, - 27685 - 11905: 0x9AE3, - 27686 - 11905: 0xBAA4, - 27687 - 11905: 0xD1F5, - 27688 - 11905: 0xB0B1, - 27689 - 11905: 0xEBB2, - 27690 - 11905: 0xEBB4, - 27691 - 11905: 0x9AE4, - 27692 - 11905: 0x9AE5, - 27693 - 11905: 0x9AE6, - 27694 - 11905: 0xB5AA, - 27695 - 11905: 0xC2C8, - 27696 - 11905: 0xC7E8, - 27697 - 11905: 0x9AE7, - 27698 - 11905: 0xEBB5, - 27699 - 11905: 0x9AE8, - 27700 - 11905: 0xCBAE, - 27701 - 11905: 0xE3DF, - 27702 - 11905: 0x9AE9, - 27703 - 11905: 0x9AEA, - 27704 - 11905: 0xD3C0, - 27705 - 11905: 0x9AEB, - 27706 - 11905: 0x9AEC, - 27707 - 11905: 0x9AED, - 27708 - 11905: 0x9AEE, - 27709 - 11905: 0xD9DB, - 27710 - 11905: 0x9AEF, - 27711 - 11905: 0x9AF0, - 27712 - 11905: 0xCDA1, - 27713 - 11905: 0xD6AD, - 27714 - 11905: 0xC7F3, - 27715 - 11905: 0x9AF1, - 27716 - 11905: 0x9AF2, - 27717 - 11905: 0x9AF3, - 27718 - 11905: 0xD9E0, - 27719 - 11905: 0xBBE3, - 27720 - 11905: 0x9AF4, - 27721 - 11905: 0xBABA, - 27722 - 11905: 0xE3E2, - 27723 - 11905: 0x9AF5, - 27724 - 11905: 0x9AF6, - 27725 - 11905: 0x9AF7, - 27726 - 11905: 0x9AF8, - 27727 - 11905: 0x9AF9, - 27728 - 11905: 0xCFAB, - 27729 - 11905: 0x9AFA, - 27730 - 11905: 0x9AFB, - 27731 - 11905: 0x9AFC, - 27732 - 11905: 0xE3E0, - 27733 - 11905: 0xC9C7, - 27734 - 11905: 0x9AFD, - 27735 - 11905: 0xBAB9, - 27736 - 11905: 0x9AFE, - 27737 - 11905: 0x9B40, - 27738 - 11905: 0x9B41, - 27739 - 11905: 0xD1B4, - 27740 - 11905: 0xE3E1, - 27741 - 11905: 0xC8EA, - 27742 - 11905: 0xB9AF, - 27743 - 11905: 0xBDAD, - 27744 - 11905: 0xB3D8, - 27745 - 11905: 0xCEDB, - 27746 - 11905: 0x9B42, - 27747 - 11905: 0x9B43, - 27748 - 11905: 0xCCC0, - 27749 - 11905: 0x9B44, - 27750 - 11905: 0x9B45, - 27751 - 11905: 0x9B46, - 27752 - 11905: 0xE3E8, - 27753 - 11905: 0xE3E9, - 27754 - 11905: 0xCDF4, - 27755 - 11905: 0x9B47, - 27756 - 11905: 0x9B48, - 27757 - 11905: 0x9B49, - 27758 - 11905: 0x9B4A, - 27759 - 11905: 0x9B4B, - 27760 - 11905: 0xCCAD, - 27761 - 11905: 0x9B4C, - 27762 - 11905: 0xBCB3, - 27763 - 11905: 0x9B4D, - 27764 - 11905: 0xE3EA, - 27765 - 11905: 0x9B4E, - 27766 - 11905: 0xE3EB, - 27767 - 11905: 0x9B4F, - 27768 - 11905: 0x9B50, - 27769 - 11905: 0xD0DA, - 27770 - 11905: 0x9B51, - 27771 - 11905: 0x9B52, - 27772 - 11905: 0x9B53, - 27773 - 11905: 0xC6FB, - 27774 - 11905: 0xB7DA, - 27775 - 11905: 0x9B54, - 27776 - 11905: 0x9B55, - 27777 - 11905: 0xC7DF, - 27778 - 11905: 0xD2CA, - 27779 - 11905: 0xCED6, - 27780 - 11905: 0x9B56, - 27781 - 11905: 0xE3E4, - 27782 - 11905: 0xE3EC, - 27783 - 11905: 0x9B57, - 27784 - 11905: 0xC9F2, - 27785 - 11905: 0xB3C1, - 27786 - 11905: 0x9B58, - 27787 - 11905: 0x9B59, - 27788 - 11905: 0xE3E7, - 27789 - 11905: 0x9B5A, - 27790 - 11905: 0x9B5B, - 27791 - 11905: 0xC6E3, - 27792 - 11905: 0xE3E5, - 27793 - 11905: 0x9B5C, - 27794 - 11905: 0x9B5D, - 27795 - 11905: 0xEDB3, - 27796 - 11905: 0xE3E6, - 27797 - 11905: 0x9B5E, - 27798 - 11905: 0x9B5F, - 27799 - 11905: 0x9B60, - 27800 - 11905: 0x9B61, - 27801 - 11905: 0xC9B3, - 27802 - 11905: 0x9B62, - 27803 - 11905: 0xC5E6, - 27804 - 11905: 0x9B63, - 27805 - 11905: 0x9B64, - 27806 - 11905: 0x9B65, - 27807 - 11905: 0xB9B5, - 27808 - 11905: 0x9B66, - 27809 - 11905: 0xC3BB, - 27810 - 11905: 0x9B67, - 27811 - 11905: 0xE3E3, - 27812 - 11905: 0xC5BD, - 27813 - 11905: 0xC1A4, - 27814 - 11905: 0xC2D9, - 27815 - 11905: 0xB2D7, - 27816 - 11905: 0x9B68, - 27817 - 11905: 0xE3ED, - 27818 - 11905: 0xBBA6, - 27819 - 11905: 0xC4AD, - 27820 - 11905: 0x9B69, - 27821 - 11905: 0xE3F0, - 27822 - 11905: 0xBEDA, - 27823 - 11905: 0x9B6A, - 27824 - 11905: 0x9B6B, - 27825 - 11905: 0xE3FB, - 27826 - 11905: 0xE3F5, - 27827 - 11905: 0xBAD3, - 27828 - 11905: 0x9B6C, - 27829 - 11905: 0x9B6D, - 27830 - 11905: 0x9B6E, - 27831 - 11905: 0x9B6F, - 27832 - 11905: 0xB7D0, - 27833 - 11905: 0xD3CD, - 27834 - 11905: 0x9B70, - 27835 - 11905: 0xD6CE, - 27836 - 11905: 0xD5D3, - 27837 - 11905: 0xB9C1, - 27838 - 11905: 0xD5B4, - 27839 - 11905: 0xD1D8, - 27840 - 11905: 0x9B71, - 27841 - 11905: 0x9B72, - 27842 - 11905: 0x9B73, - 27843 - 11905: 0x9B74, - 27844 - 11905: 0xD0B9, - 27845 - 11905: 0xC7F6, - 27846 - 11905: 0x9B75, - 27847 - 11905: 0x9B76, - 27848 - 11905: 0x9B77, - 27849 - 11905: 0xC8AA, - 27850 - 11905: 0xB2B4, - 27851 - 11905: 0x9B78, - 27852 - 11905: 0xC3DA, - 27853 - 11905: 0x9B79, - 27854 - 11905: 0x9B7A, - 27855 - 11905: 0x9B7B, - 27856 - 11905: 0xE3EE, - 27857 - 11905: 0x9B7C, - 27858 - 11905: 0x9B7D, - 27859 - 11905: 0xE3FC, - 27860 - 11905: 0xE3EF, - 27861 - 11905: 0xB7A8, - 27862 - 11905: 0xE3F7, - 27863 - 11905: 0xE3F4, - 27864 - 11905: 0x9B7E, - 27865 - 11905: 0x9B80, - 27866 - 11905: 0x9B81, - 27867 - 11905: 0xB7BA, - 27868 - 11905: 0x9B82, - 27869 - 11905: 0x9B83, - 27870 - 11905: 0xC5A2, - 27871 - 11905: 0x9B84, - 27872 - 11905: 0xE3F6, - 27873 - 11905: 0xC5DD, - 27874 - 11905: 0xB2A8, - 27875 - 11905: 0xC6FC, - 27876 - 11905: 0x9B85, - 27877 - 11905: 0xC4E0, - 27878 - 11905: 0x9B86, - 27879 - 11905: 0x9B87, - 27880 - 11905: 0xD7A2, - 27881 - 11905: 0x9B88, - 27882 - 11905: 0xC0E1, - 27883 - 11905: 0xE3F9, - 27884 - 11905: 0x9B89, - 27885 - 11905: 0x9B8A, - 27886 - 11905: 0xE3FA, - 27887 - 11905: 0xE3FD, - 27888 - 11905: 0xCCA9, - 27889 - 11905: 0xE3F3, - 27890 - 11905: 0x9B8B, - 27891 - 11905: 0xD3BE, - 27892 - 11905: 0x9B8C, - 27893 - 11905: 0xB1C3, - 27894 - 11905: 0xEDB4, - 27895 - 11905: 0xE3F1, - 27896 - 11905: 0xE3F2, - 27897 - 11905: 0x9B8D, - 27898 - 11905: 0xE3F8, - 27899 - 11905: 0xD0BA, - 27900 - 11905: 0xC6C3, - 27901 - 11905: 0xD4F3, - 27902 - 11905: 0xE3FE, - 27903 - 11905: 0x9B8E, - 27904 - 11905: 0x9B8F, - 27905 - 11905: 0xBDE0, - 27906 - 11905: 0x9B90, - 27907 - 11905: 0x9B91, - 27908 - 11905: 0xE4A7, - 27909 - 11905: 0x9B92, - 27910 - 11905: 0x9B93, - 27911 - 11905: 0xE4A6, - 27912 - 11905: 0x9B94, - 27913 - 11905: 0x9B95, - 27914 - 11905: 0x9B96, - 27915 - 11905: 0xD1F3, - 27916 - 11905: 0xE4A3, - 27917 - 11905: 0x9B97, - 27918 - 11905: 0xE4A9, - 27919 - 11905: 0x9B98, - 27920 - 11905: 0x9B99, - 27921 - 11905: 0x9B9A, - 27922 - 11905: 0xC8F7, - 27923 - 11905: 0x9B9B, - 27924 - 11905: 0x9B9C, - 27925 - 11905: 0x9B9D, - 27926 - 11905: 0x9B9E, - 27927 - 11905: 0xCFB4, - 27928 - 11905: 0x9B9F, - 27929 - 11905: 0xE4A8, - 27930 - 11905: 0xE4AE, - 27931 - 11905: 0xC2E5, - 27932 - 11905: 0x9BA0, - 27933 - 11905: 0x9BA1, - 27934 - 11905: 0xB6B4, - 27935 - 11905: 0x9BA2, - 27936 - 11905: 0x9BA3, - 27937 - 11905: 0x9BA4, - 27938 - 11905: 0x9BA5, - 27939 - 11905: 0x9BA6, - 27940 - 11905: 0x9BA7, - 27941 - 11905: 0xBDF2, - 27942 - 11905: 0x9BA8, - 27943 - 11905: 0xE4A2, - 27944 - 11905: 0x9BA9, - 27945 - 11905: 0x9BAA, - 27946 - 11905: 0xBAE9, - 27947 - 11905: 0xE4AA, - 27948 - 11905: 0x9BAB, - 27949 - 11905: 0x9BAC, - 27950 - 11905: 0xE4AC, - 27951 - 11905: 0x9BAD, - 27952 - 11905: 0x9BAE, - 27953 - 11905: 0xB6FD, - 27954 - 11905: 0xD6DE, - 27955 - 11905: 0xE4B2, - 27956 - 11905: 0x9BAF, - 27957 - 11905: 0xE4AD, - 27958 - 11905: 0x9BB0, - 27959 - 11905: 0x9BB1, - 27960 - 11905: 0x9BB2, - 27961 - 11905: 0xE4A1, - 27962 - 11905: 0x9BB3, - 27963 - 11905: 0xBBEE, - 27964 - 11905: 0xCDDD, - 27965 - 11905: 0xC7A2, - 27966 - 11905: 0xC5C9, - 27967 - 11905: 0x9BB4, - 27968 - 11905: 0x9BB5, - 27969 - 11905: 0xC1F7, - 27970 - 11905: 0x9BB6, - 27971 - 11905: 0xE4A4, - 27972 - 11905: 0x9BB7, - 27973 - 11905: 0xC7B3, - 27974 - 11905: 0xBDAC, - 27975 - 11905: 0xBDBD, - 27976 - 11905: 0xE4A5, - 27977 - 11905: 0x9BB8, - 27978 - 11905: 0xD7C7, - 27979 - 11905: 0xB2E2, - 27980 - 11905: 0x9BB9, - 27981 - 11905: 0xE4AB, - 27982 - 11905: 0xBCC3, - 27983 - 11905: 0xE4AF, - 27984 - 11905: 0x9BBA, - 27985 - 11905: 0xBBEB, - 27986 - 11905: 0xE4B0, - 27987 - 11905: 0xC5A8, - 27988 - 11905: 0xE4B1, - 27989 - 11905: 0x9BBB, - 27990 - 11905: 0x9BBC, - 27991 - 11905: 0x9BBD, - 27992 - 11905: 0x9BBE, - 27993 - 11905: 0xD5E3, - 27994 - 11905: 0xBFA3, - 27995 - 11905: 0x9BBF, - 27996 - 11905: 0xE4BA, - 27997 - 11905: 0x9BC0, - 27998 - 11905: 0xE4B7, - 27999 - 11905: 0x9BC1, - 28000 - 11905: 0xE4BB, - 28001 - 11905: 0x9BC2, - 28002 - 11905: 0x9BC3, - 28003 - 11905: 0xE4BD, - 28004 - 11905: 0x9BC4, - 28005 - 11905: 0x9BC5, - 28006 - 11905: 0xC6D6, - 28007 - 11905: 0x9BC6, - 28008 - 11905: 0x9BC7, - 28009 - 11905: 0xBAC6, - 28010 - 11905: 0xC0CB, - 28011 - 11905: 0x9BC8, - 28012 - 11905: 0x9BC9, - 28013 - 11905: 0x9BCA, - 28014 - 11905: 0xB8A1, - 28015 - 11905: 0xE4B4, - 28016 - 11905: 0x9BCB, - 28017 - 11905: 0x9BCC, - 28018 - 11905: 0x9BCD, - 28019 - 11905: 0x9BCE, - 28020 - 11905: 0xD4A1, - 28021 - 11905: 0x9BCF, - 28022 - 11905: 0x9BD0, - 28023 - 11905: 0xBAA3, - 28024 - 11905: 0xBDFE, - 28025 - 11905: 0x9BD1, - 28026 - 11905: 0x9BD2, - 28027 - 11905: 0x9BD3, - 28028 - 11905: 0xE4BC, - 28029 - 11905: 0x9BD4, - 28030 - 11905: 0x9BD5, - 28031 - 11905: 0x9BD6, - 28032 - 11905: 0x9BD7, - 28033 - 11905: 0x9BD8, - 28034 - 11905: 0xCDBF, - 28035 - 11905: 0x9BD9, - 28036 - 11905: 0x9BDA, - 28037 - 11905: 0xC4F9, - 28038 - 11905: 0x9BDB, - 28039 - 11905: 0x9BDC, - 28040 - 11905: 0xCFFB, - 28041 - 11905: 0xC9E6, - 28042 - 11905: 0x9BDD, - 28043 - 11905: 0x9BDE, - 28044 - 11905: 0xD3BF, - 28045 - 11905: 0x9BDF, - 28046 - 11905: 0xCFD1, - 28047 - 11905: 0x9BE0, - 28048 - 11905: 0x9BE1, - 28049 - 11905: 0xE4B3, - 28050 - 11905: 0x9BE2, - 28051 - 11905: 0xE4B8, - 28052 - 11905: 0xE4B9, - 28053 - 11905: 0xCCE9, - 28054 - 11905: 0x9BE3, - 28055 - 11905: 0x9BE4, - 28056 - 11905: 0x9BE5, - 28057 - 11905: 0x9BE6, - 28058 - 11905: 0x9BE7, - 28059 - 11905: 0xCCCE, - 28060 - 11905: 0x9BE8, - 28061 - 11905: 0xC0D4, - 28062 - 11905: 0xE4B5, - 28063 - 11905: 0xC1B0, - 28064 - 11905: 0xE4B6, - 28065 - 11905: 0xCED0, - 28066 - 11905: 0x9BE9, - 28067 - 11905: 0xBBC1, - 28068 - 11905: 0xB5D3, - 28069 - 11905: 0x9BEA, - 28070 - 11905: 0xC8F3, - 28071 - 11905: 0xBDA7, - 28072 - 11905: 0xD5C7, - 28073 - 11905: 0xC9AC, - 28074 - 11905: 0xB8A2, - 28075 - 11905: 0xE4CA, - 28076 - 11905: 0x9BEB, - 28077 - 11905: 0x9BEC, - 28078 - 11905: 0xE4CC, - 28079 - 11905: 0xD1C4, - 28080 - 11905: 0x9BED, - 28081 - 11905: 0x9BEE, - 28082 - 11905: 0xD2BA, - 28083 - 11905: 0x9BEF, - 28084 - 11905: 0x9BF0, - 28085 - 11905: 0xBAAD, - 28086 - 11905: 0x9BF1, - 28087 - 11905: 0x9BF2, - 28088 - 11905: 0xBAD4, - 28089 - 11905: 0x9BF3, - 28090 - 11905: 0x9BF4, - 28091 - 11905: 0x9BF5, - 28092 - 11905: 0x9BF6, - 28093 - 11905: 0x9BF7, - 28094 - 11905: 0x9BF8, - 28095 - 11905: 0xE4C3, - 28096 - 11905: 0xB5ED, - 28097 - 11905: 0x9BF9, - 28098 - 11905: 0x9BFA, - 28099 - 11905: 0x9BFB, - 28100 - 11905: 0xD7CD, - 28101 - 11905: 0xE4C0, - 28102 - 11905: 0xCFFD, - 28103 - 11905: 0xE4BF, - 28104 - 11905: 0x9BFC, - 28105 - 11905: 0x9BFD, - 28106 - 11905: 0x9BFE, - 28107 - 11905: 0xC1DC, - 28108 - 11905: 0xCCCA, - 28109 - 11905: 0x9C40, - 28110 - 11905: 0x9C41, - 28111 - 11905: 0x9C42, - 28112 - 11905: 0x9C43, - 28113 - 11905: 0xCAE7, - 28114 - 11905: 0x9C44, - 28115 - 11905: 0x9C45, - 28116 - 11905: 0x9C46, - 28117 - 11905: 0x9C47, - 28118 - 11905: 0xC4D7, - 28119 - 11905: 0x9C48, - 28120 - 11905: 0xCCD4, - 28121 - 11905: 0xE4C8, - 28122 - 11905: 0x9C49, - 28123 - 11905: 0x9C4A, - 28124 - 11905: 0x9C4B, - 28125 - 11905: 0xE4C7, - 28126 - 11905: 0xE4C1, - 28127 - 11905: 0x9C4C, - 28128 - 11905: 0xE4C4, - 28129 - 11905: 0xB5AD, - 28130 - 11905: 0x9C4D, - 28131 - 11905: 0x9C4E, - 28132 - 11905: 0xD3D9, - 28133 - 11905: 0x9C4F, - 28134 - 11905: 0xE4C6, - 28135 - 11905: 0x9C50, - 28136 - 11905: 0x9C51, - 28137 - 11905: 0x9C52, - 28138 - 11905: 0x9C53, - 28139 - 11905: 0xD2F9, - 28140 - 11905: 0xB4E3, - 28141 - 11905: 0x9C54, - 28142 - 11905: 0xBBB4, - 28143 - 11905: 0x9C55, - 28144 - 11905: 0x9C56, - 28145 - 11905: 0xC9EE, - 28146 - 11905: 0x9C57, - 28147 - 11905: 0xB4BE, - 28148 - 11905: 0x9C58, - 28149 - 11905: 0x9C59, - 28150 - 11905: 0x9C5A, - 28151 - 11905: 0xBBEC, - 28152 - 11905: 0x9C5B, - 28153 - 11905: 0xD1CD, - 28154 - 11905: 0x9C5C, - 28155 - 11905: 0xCCED, - 28156 - 11905: 0xEDB5, - 28157 - 11905: 0x9C5D, - 28158 - 11905: 0x9C5E, - 28159 - 11905: 0x9C5F, - 28160 - 11905: 0x9C60, - 28161 - 11905: 0x9C61, - 28162 - 11905: 0x9C62, - 28163 - 11905: 0x9C63, - 28164 - 11905: 0x9C64, - 28165 - 11905: 0xC7E5, - 28166 - 11905: 0x9C65, - 28167 - 11905: 0x9C66, - 28168 - 11905: 0x9C67, - 28169 - 11905: 0x9C68, - 28170 - 11905: 0xD4A8, - 28171 - 11905: 0x9C69, - 28172 - 11905: 0xE4CB, - 28173 - 11905: 0xD7D5, - 28174 - 11905: 0xE4C2, - 28175 - 11905: 0x9C6A, - 28176 - 11905: 0xBDA5, - 28177 - 11905: 0xE4C5, - 28178 - 11905: 0x9C6B, - 28179 - 11905: 0x9C6C, - 28180 - 11905: 0xD3E6, - 28181 - 11905: 0x9C6D, - 28182 - 11905: 0xE4C9, - 28183 - 11905: 0xC9F8, - 28184 - 11905: 0x9C6E, - 28185 - 11905: 0x9C6F, - 28186 - 11905: 0xE4BE, - 28187 - 11905: 0x9C70, - 28188 - 11905: 0x9C71, - 28189 - 11905: 0xD3E5, - 28190 - 11905: 0x9C72, - 28191 - 11905: 0x9C73, - 28192 - 11905: 0xC7FE, - 28193 - 11905: 0xB6C9, - 28194 - 11905: 0x9C74, - 28195 - 11905: 0xD4FC, - 28196 - 11905: 0xB2B3, - 28197 - 11905: 0xE4D7, - 28198 - 11905: 0x9C75, - 28199 - 11905: 0x9C76, - 28200 - 11905: 0x9C77, - 28201 - 11905: 0xCEC2, - 28202 - 11905: 0x9C78, - 28203 - 11905: 0xE4CD, - 28204 - 11905: 0x9C79, - 28205 - 11905: 0xCEBC, - 28206 - 11905: 0x9C7A, - 28207 - 11905: 0xB8DB, - 28208 - 11905: 0x9C7B, - 28209 - 11905: 0x9C7C, - 28210 - 11905: 0xE4D6, - 28211 - 11905: 0x9C7D, - 28212 - 11905: 0xBFCA, - 28213 - 11905: 0x9C7E, - 28214 - 11905: 0x9C80, - 28215 - 11905: 0x9C81, - 28216 - 11905: 0xD3CE, - 28217 - 11905: 0x9C82, - 28218 - 11905: 0xC3EC, - 28219 - 11905: 0x9C83, - 28220 - 11905: 0x9C84, - 28221 - 11905: 0x9C85, - 28222 - 11905: 0x9C86, - 28223 - 11905: 0x9C87, - 28224 - 11905: 0x9C88, - 28225 - 11905: 0x9C89, - 28226 - 11905: 0x9C8A, - 28227 - 11905: 0xC5C8, - 28228 - 11905: 0xE4D8, - 28229 - 11905: 0x9C8B, - 28230 - 11905: 0x9C8C, - 28231 - 11905: 0x9C8D, - 28232 - 11905: 0x9C8E, - 28233 - 11905: 0x9C8F, - 28234 - 11905: 0x9C90, - 28235 - 11905: 0x9C91, - 28236 - 11905: 0x9C92, - 28237 - 11905: 0xCDC4, - 28238 - 11905: 0xE4CF, - 28239 - 11905: 0x9C93, - 28240 - 11905: 0x9C94, - 28241 - 11905: 0x9C95, - 28242 - 11905: 0x9C96, - 28243 - 11905: 0xE4D4, - 28244 - 11905: 0xE4D5, - 28245 - 11905: 0x9C97, - 28246 - 11905: 0xBAFE, - 28247 - 11905: 0x9C98, - 28248 - 11905: 0xCFE6, - 28249 - 11905: 0x9C99, - 28250 - 11905: 0x9C9A, - 28251 - 11905: 0xD5BF, - 28252 - 11905: 0x9C9B, - 28253 - 11905: 0x9C9C, - 28254 - 11905: 0x9C9D, - 28255 - 11905: 0xE4D2, - 28256 - 11905: 0x9C9E, - 28257 - 11905: 0x9C9F, - 28258 - 11905: 0x9CA0, - 28259 - 11905: 0x9CA1, - 28260 - 11905: 0x9CA2, - 28261 - 11905: 0x9CA3, - 28262 - 11905: 0x9CA4, - 28263 - 11905: 0x9CA5, - 28264 - 11905: 0x9CA6, - 28265 - 11905: 0x9CA7, - 28266 - 11905: 0x9CA8, - 28267 - 11905: 0xE4D0, - 28268 - 11905: 0x9CA9, - 28269 - 11905: 0x9CAA, - 28270 - 11905: 0xE4CE, - 28271 - 11905: 0x9CAB, - 28272 - 11905: 0x9CAC, - 28273 - 11905: 0x9CAD, - 28274 - 11905: 0x9CAE, - 28275 - 11905: 0x9CAF, - 28276 - 11905: 0x9CB0, - 28277 - 11905: 0x9CB1, - 28278 - 11905: 0x9CB2, - 28279 - 11905: 0x9CB3, - 28280 - 11905: 0x9CB4, - 28281 - 11905: 0x9CB5, - 28282 - 11905: 0x9CB6, - 28283 - 11905: 0x9CB7, - 28284 - 11905: 0x9CB8, - 28285 - 11905: 0x9CB9, - 28286 - 11905: 0xCDE5, - 28287 - 11905: 0xCAAA, - 28288 - 11905: 0x9CBA, - 28289 - 11905: 0x9CBB, - 28290 - 11905: 0x9CBC, - 28291 - 11905: 0xC0A3, - 28292 - 11905: 0x9CBD, - 28293 - 11905: 0xBDA6, - 28294 - 11905: 0xE4D3, - 28295 - 11905: 0x9CBE, - 28296 - 11905: 0x9CBF, - 28297 - 11905: 0xB8C8, - 28298 - 11905: 0x9CC0, - 28299 - 11905: 0x9CC1, - 28300 - 11905: 0x9CC2, - 28301 - 11905: 0x9CC3, - 28302 - 11905: 0x9CC4, - 28303 - 11905: 0xE4E7, - 28304 - 11905: 0xD4B4, - 28305 - 11905: 0x9CC5, - 28306 - 11905: 0x9CC6, - 28307 - 11905: 0x9CC7, - 28308 - 11905: 0x9CC8, - 28309 - 11905: 0x9CC9, - 28310 - 11905: 0x9CCA, - 28311 - 11905: 0x9CCB, - 28312 - 11905: 0xE4DB, - 28313 - 11905: 0x9CCC, - 28314 - 11905: 0x9CCD, - 28315 - 11905: 0x9CCE, - 28316 - 11905: 0xC1EF, - 28317 - 11905: 0x9CCF, - 28318 - 11905: 0x9CD0, - 28319 - 11905: 0xE4E9, - 28320 - 11905: 0x9CD1, - 28321 - 11905: 0x9CD2, - 28322 - 11905: 0xD2E7, - 28323 - 11905: 0x9CD3, - 28324 - 11905: 0x9CD4, - 28325 - 11905: 0xE4DF, - 28326 - 11905: 0x9CD5, - 28327 - 11905: 0xE4E0, - 28328 - 11905: 0x9CD6, - 28329 - 11905: 0x9CD7, - 28330 - 11905: 0xCFAA, - 28331 - 11905: 0x9CD8, - 28332 - 11905: 0x9CD9, - 28333 - 11905: 0x9CDA, - 28334 - 11905: 0x9CDB, - 28335 - 11905: 0xCBDD, - 28336 - 11905: 0x9CDC, - 28337 - 11905: 0xE4DA, - 28338 - 11905: 0xE4D1, - 28339 - 11905: 0x9CDD, - 28340 - 11905: 0xE4E5, - 28341 - 11905: 0x9CDE, - 28342 - 11905: 0xC8DC, - 28343 - 11905: 0xE4E3, - 28344 - 11905: 0x9CDF, - 28345 - 11905: 0x9CE0, - 28346 - 11905: 0xC4E7, - 28347 - 11905: 0xE4E2, - 28348 - 11905: 0x9CE1, - 28349 - 11905: 0xE4E1, - 28350 - 11905: 0x9CE2, - 28351 - 11905: 0x9CE3, - 28352 - 11905: 0x9CE4, - 28353 - 11905: 0xB3FC, - 28354 - 11905: 0xE4E8, - 28355 - 11905: 0x9CE5, - 28356 - 11905: 0x9CE6, - 28357 - 11905: 0x9CE7, - 28358 - 11905: 0x9CE8, - 28359 - 11905: 0xB5E1, - 28360 - 11905: 0x9CE9, - 28361 - 11905: 0x9CEA, - 28362 - 11905: 0x9CEB, - 28363 - 11905: 0xD7CC, - 28364 - 11905: 0x9CEC, - 28365 - 11905: 0x9CED, - 28366 - 11905: 0x9CEE, - 28367 - 11905: 0xE4E6, - 28368 - 11905: 0x9CEF, - 28369 - 11905: 0xBBAC, - 28370 - 11905: 0x9CF0, - 28371 - 11905: 0xD7D2, - 28372 - 11905: 0xCCCF, - 28373 - 11905: 0xEBF8, - 28374 - 11905: 0x9CF1, - 28375 - 11905: 0xE4E4, - 28376 - 11905: 0x9CF2, - 28377 - 11905: 0x9CF3, - 28378 - 11905: 0xB9F6, - 28379 - 11905: 0x9CF4, - 28380 - 11905: 0x9CF5, - 28381 - 11905: 0x9CF6, - 28382 - 11905: 0xD6CD, - 28383 - 11905: 0xE4D9, - 28384 - 11905: 0xE4DC, - 28385 - 11905: 0xC2FA, - 28386 - 11905: 0xE4DE, - 28387 - 11905: 0x9CF7, - 28388 - 11905: 0xC2CB, - 28389 - 11905: 0xC0C4, - 28390 - 11905: 0xC2D0, - 28391 - 11905: 0x9CF8, - 28392 - 11905: 0xB1F5, - 28393 - 11905: 0xCCB2, - 28394 - 11905: 0x9CF9, - 28395 - 11905: 0x9CFA, - 28396 - 11905: 0x9CFB, - 28397 - 11905: 0x9CFC, - 28398 - 11905: 0x9CFD, - 28399 - 11905: 0x9CFE, - 28400 - 11905: 0x9D40, - 28401 - 11905: 0x9D41, - 28402 - 11905: 0x9D42, - 28403 - 11905: 0x9D43, - 28404 - 11905: 0xB5CE, - 28405 - 11905: 0x9D44, - 28406 - 11905: 0x9D45, - 28407 - 11905: 0x9D46, - 28408 - 11905: 0x9D47, - 28409 - 11905: 0xE4EF, - 28410 - 11905: 0x9D48, - 28411 - 11905: 0x9D49, - 28412 - 11905: 0x9D4A, - 28413 - 11905: 0x9D4B, - 28414 - 11905: 0x9D4C, - 28415 - 11905: 0x9D4D, - 28416 - 11905: 0x9D4E, - 28417 - 11905: 0x9D4F, - 28418 - 11905: 0xC6AF, - 28419 - 11905: 0x9D50, - 28420 - 11905: 0x9D51, - 28421 - 11905: 0x9D52, - 28422 - 11905: 0xC6E1, - 28423 - 11905: 0x9D53, - 28424 - 11905: 0x9D54, - 28425 - 11905: 0xE4F5, - 28426 - 11905: 0x9D55, - 28427 - 11905: 0x9D56, - 28428 - 11905: 0x9D57, - 28429 - 11905: 0x9D58, - 28430 - 11905: 0x9D59, - 28431 - 11905: 0xC2A9, - 28432 - 11905: 0x9D5A, - 28433 - 11905: 0x9D5B, - 28434 - 11905: 0x9D5C, - 28435 - 11905: 0xC0EC, - 28436 - 11905: 0xD1DD, - 28437 - 11905: 0xE4EE, - 28438 - 11905: 0x9D5D, - 28439 - 11905: 0x9D5E, - 28440 - 11905: 0x9D5F, - 28441 - 11905: 0x9D60, - 28442 - 11905: 0x9D61, - 28443 - 11905: 0x9D62, - 28444 - 11905: 0x9D63, - 28445 - 11905: 0x9D64, - 28446 - 11905: 0x9D65, - 28447 - 11905: 0x9D66, - 28448 - 11905: 0xC4AE, - 28449 - 11905: 0x9D67, - 28450 - 11905: 0x9D68, - 28451 - 11905: 0x9D69, - 28452 - 11905: 0xE4ED, - 28453 - 11905: 0x9D6A, - 28454 - 11905: 0x9D6B, - 28455 - 11905: 0x9D6C, - 28456 - 11905: 0x9D6D, - 28457 - 11905: 0xE4F6, - 28458 - 11905: 0xE4F4, - 28459 - 11905: 0xC2FE, - 28460 - 11905: 0x9D6E, - 28461 - 11905: 0xE4DD, - 28462 - 11905: 0x9D6F, - 28463 - 11905: 0xE4F0, - 28464 - 11905: 0x9D70, - 28465 - 11905: 0xCAFE, - 28466 - 11905: 0x9D71, - 28467 - 11905: 0xD5C4, - 28468 - 11905: 0x9D72, - 28469 - 11905: 0x9D73, - 28470 - 11905: 0xE4F1, - 28471 - 11905: 0x9D74, - 28472 - 11905: 0x9D75, - 28473 - 11905: 0x9D76, - 28474 - 11905: 0x9D77, - 28475 - 11905: 0x9D78, - 28476 - 11905: 0x9D79, - 28477 - 11905: 0x9D7A, - 28478 - 11905: 0xD1FA, - 28479 - 11905: 0x9D7B, - 28480 - 11905: 0x9D7C, - 28481 - 11905: 0x9D7D, - 28482 - 11905: 0x9D7E, - 28483 - 11905: 0x9D80, - 28484 - 11905: 0x9D81, - 28485 - 11905: 0x9D82, - 28486 - 11905: 0xE4EB, - 28487 - 11905: 0xE4EC, - 28488 - 11905: 0x9D83, - 28489 - 11905: 0x9D84, - 28490 - 11905: 0x9D85, - 28491 - 11905: 0xE4F2, - 28492 - 11905: 0x9D86, - 28493 - 11905: 0xCEAB, - 28494 - 11905: 0x9D87, - 28495 - 11905: 0x9D88, - 28496 - 11905: 0x9D89, - 28497 - 11905: 0x9D8A, - 28498 - 11905: 0x9D8B, - 28499 - 11905: 0x9D8C, - 28500 - 11905: 0x9D8D, - 28501 - 11905: 0x9D8E, - 28502 - 11905: 0x9D8F, - 28503 - 11905: 0x9D90, - 28504 - 11905: 0xC5CB, - 28505 - 11905: 0x9D91, - 28506 - 11905: 0x9D92, - 28507 - 11905: 0x9D93, - 28508 - 11905: 0xC7B1, - 28509 - 11905: 0x9D94, - 28510 - 11905: 0xC2BA, - 28511 - 11905: 0x9D95, - 28512 - 11905: 0x9D96, - 28513 - 11905: 0x9D97, - 28514 - 11905: 0xE4EA, - 28515 - 11905: 0x9D98, - 28516 - 11905: 0x9D99, - 28517 - 11905: 0x9D9A, - 28518 - 11905: 0xC1CA, - 28519 - 11905: 0x9D9B, - 28520 - 11905: 0x9D9C, - 28521 - 11905: 0x9D9D, - 28522 - 11905: 0x9D9E, - 28523 - 11905: 0x9D9F, - 28524 - 11905: 0x9DA0, - 28525 - 11905: 0xCCB6, - 28526 - 11905: 0xB3B1, - 28527 - 11905: 0x9DA1, - 28528 - 11905: 0x9DA2, - 28529 - 11905: 0x9DA3, - 28530 - 11905: 0xE4FB, - 28531 - 11905: 0x9DA4, - 28532 - 11905: 0xE4F3, - 28533 - 11905: 0x9DA5, - 28534 - 11905: 0x9DA6, - 28535 - 11905: 0x9DA7, - 28536 - 11905: 0xE4FA, - 28537 - 11905: 0x9DA8, - 28538 - 11905: 0xE4FD, - 28539 - 11905: 0x9DA9, - 28540 - 11905: 0xE4FC, - 28541 - 11905: 0x9DAA, - 28542 - 11905: 0x9DAB, - 28543 - 11905: 0x9DAC, - 28544 - 11905: 0x9DAD, - 28545 - 11905: 0x9DAE, - 28546 - 11905: 0x9DAF, - 28547 - 11905: 0x9DB0, - 28548 - 11905: 0xB3CE, - 28549 - 11905: 0x9DB1, - 28550 - 11905: 0x9DB2, - 28551 - 11905: 0x9DB3, - 28552 - 11905: 0xB3BA, - 28553 - 11905: 0xE4F7, - 28554 - 11905: 0x9DB4, - 28555 - 11905: 0x9DB5, - 28556 - 11905: 0xE4F9, - 28557 - 11905: 0xE4F8, - 28558 - 11905: 0xC5EC, - 28559 - 11905: 0x9DB6, - 28560 - 11905: 0x9DB7, - 28561 - 11905: 0x9DB8, - 28562 - 11905: 0x9DB9, - 28563 - 11905: 0x9DBA, - 28564 - 11905: 0x9DBB, - 28565 - 11905: 0x9DBC, - 28566 - 11905: 0x9DBD, - 28567 - 11905: 0x9DBE, - 28568 - 11905: 0x9DBF, - 28569 - 11905: 0x9DC0, - 28570 - 11905: 0x9DC1, - 28571 - 11905: 0x9DC2, - 28572 - 11905: 0xC0BD, - 28573 - 11905: 0x9DC3, - 28574 - 11905: 0x9DC4, - 28575 - 11905: 0x9DC5, - 28576 - 11905: 0x9DC6, - 28577 - 11905: 0xD4E8, - 28578 - 11905: 0x9DC7, - 28579 - 11905: 0x9DC8, - 28580 - 11905: 0x9DC9, - 28581 - 11905: 0x9DCA, - 28582 - 11905: 0x9DCB, - 28583 - 11905: 0xE5A2, - 28584 - 11905: 0x9DCC, - 28585 - 11905: 0x9DCD, - 28586 - 11905: 0x9DCE, - 28587 - 11905: 0x9DCF, - 28588 - 11905: 0x9DD0, - 28589 - 11905: 0x9DD1, - 28590 - 11905: 0x9DD2, - 28591 - 11905: 0x9DD3, - 28592 - 11905: 0x9DD4, - 28593 - 11905: 0x9DD5, - 28594 - 11905: 0x9DD6, - 28595 - 11905: 0xB0C4, - 28596 - 11905: 0x9DD7, - 28597 - 11905: 0x9DD8, - 28598 - 11905: 0xE5A4, - 28599 - 11905: 0x9DD9, - 28600 - 11905: 0x9DDA, - 28601 - 11905: 0xE5A3, - 28602 - 11905: 0x9DDB, - 28603 - 11905: 0x9DDC, - 28604 - 11905: 0x9DDD, - 28605 - 11905: 0x9DDE, - 28606 - 11905: 0x9DDF, - 28607 - 11905: 0x9DE0, - 28608 - 11905: 0xBCA4, - 28609 - 11905: 0x9DE1, - 28610 - 11905: 0xE5A5, - 28611 - 11905: 0x9DE2, - 28612 - 11905: 0x9DE3, - 28613 - 11905: 0x9DE4, - 28614 - 11905: 0x9DE5, - 28615 - 11905: 0x9DE6, - 28616 - 11905: 0x9DE7, - 28617 - 11905: 0xE5A1, - 28618 - 11905: 0x9DE8, - 28619 - 11905: 0x9DE9, - 28620 - 11905: 0x9DEA, - 28621 - 11905: 0x9DEB, - 28622 - 11905: 0x9DEC, - 28623 - 11905: 0x9DED, - 28624 - 11905: 0x9DEE, - 28625 - 11905: 0xE4FE, - 28626 - 11905: 0xB1F4, - 28627 - 11905: 0x9DEF, - 28628 - 11905: 0x9DF0, - 28629 - 11905: 0x9DF1, - 28630 - 11905: 0x9DF2, - 28631 - 11905: 0x9DF3, - 28632 - 11905: 0x9DF4, - 28633 - 11905: 0x9DF5, - 28634 - 11905: 0x9DF6, - 28635 - 11905: 0x9DF7, - 28636 - 11905: 0x9DF8, - 28637 - 11905: 0x9DF9, - 28638 - 11905: 0xE5A8, - 28639 - 11905: 0x9DFA, - 28640 - 11905: 0xE5A9, - 28641 - 11905: 0xE5A6, - 28642 - 11905: 0x9DFB, - 28643 - 11905: 0x9DFC, - 28644 - 11905: 0x9DFD, - 28645 - 11905: 0x9DFE, - 28646 - 11905: 0x9E40, - 28647 - 11905: 0x9E41, - 28648 - 11905: 0x9E42, - 28649 - 11905: 0x9E43, - 28650 - 11905: 0x9E44, - 28651 - 11905: 0x9E45, - 28652 - 11905: 0x9E46, - 28653 - 11905: 0x9E47, - 28654 - 11905: 0xE5A7, - 28655 - 11905: 0xE5AA, - 28656 - 11905: 0x9E48, - 28657 - 11905: 0x9E49, - 28658 - 11905: 0x9E4A, - 28659 - 11905: 0x9E4B, - 28660 - 11905: 0x9E4C, - 28661 - 11905: 0x9E4D, - 28662 - 11905: 0x9E4E, - 28663 - 11905: 0x9E4F, - 28664 - 11905: 0x9E50, - 28665 - 11905: 0x9E51, - 28666 - 11905: 0x9E52, - 28667 - 11905: 0x9E53, - 28668 - 11905: 0x9E54, - 28669 - 11905: 0x9E55, - 28670 - 11905: 0x9E56, - 28671 - 11905: 0x9E57, - 28672 - 11905: 0x9E58, - 28673 - 11905: 0x9E59, - 28674 - 11905: 0x9E5A, - 28675 - 11905: 0x9E5B, - 28676 - 11905: 0x9E5C, - 28677 - 11905: 0x9E5D, - 28678 - 11905: 0x9E5E, - 28679 - 11905: 0x9E5F, - 28680 - 11905: 0x9E60, - 28681 - 11905: 0x9E61, - 28682 - 11905: 0x9E62, - 28683 - 11905: 0x9E63, - 28684 - 11905: 0x9E64, - 28685 - 11905: 0x9E65, - 28686 - 11905: 0x9E66, - 28687 - 11905: 0x9E67, - 28688 - 11905: 0x9E68, - 28689 - 11905: 0xC6D9, - 28690 - 11905: 0x9E69, - 28691 - 11905: 0x9E6A, - 28692 - 11905: 0x9E6B, - 28693 - 11905: 0x9E6C, - 28694 - 11905: 0x9E6D, - 28695 - 11905: 0x9E6E, - 28696 - 11905: 0x9E6F, - 28697 - 11905: 0x9E70, - 28698 - 11905: 0xE5AB, - 28699 - 11905: 0xE5AD, - 28700 - 11905: 0x9E71, - 28701 - 11905: 0x9E72, - 28702 - 11905: 0x9E73, - 28703 - 11905: 0x9E74, - 28704 - 11905: 0x9E75, - 28705 - 11905: 0x9E76, - 28706 - 11905: 0x9E77, - 28707 - 11905: 0xE5AC, - 28708 - 11905: 0x9E78, - 28709 - 11905: 0x9E79, - 28710 - 11905: 0x9E7A, - 28711 - 11905: 0x9E7B, - 28712 - 11905: 0x9E7C, - 28713 - 11905: 0x9E7D, - 28714 - 11905: 0x9E7E, - 28715 - 11905: 0x9E80, - 28716 - 11905: 0x9E81, - 28717 - 11905: 0x9E82, - 28718 - 11905: 0x9E83, - 28719 - 11905: 0x9E84, - 28720 - 11905: 0x9E85, - 28721 - 11905: 0x9E86, - 28722 - 11905: 0x9E87, - 28723 - 11905: 0x9E88, - 28724 - 11905: 0x9E89, - 28725 - 11905: 0xE5AF, - 28726 - 11905: 0x9E8A, - 28727 - 11905: 0x9E8B, - 28728 - 11905: 0x9E8C, - 28729 - 11905: 0xE5AE, - 28730 - 11905: 0x9E8D, - 28731 - 11905: 0x9E8E, - 28732 - 11905: 0x9E8F, - 28733 - 11905: 0x9E90, - 28734 - 11905: 0x9E91, - 28735 - 11905: 0x9E92, - 28736 - 11905: 0x9E93, - 28737 - 11905: 0x9E94, - 28738 - 11905: 0x9E95, - 28739 - 11905: 0x9E96, - 28740 - 11905: 0x9E97, - 28741 - 11905: 0x9E98, - 28742 - 11905: 0x9E99, - 28743 - 11905: 0x9E9A, - 28744 - 11905: 0x9E9B, - 28745 - 11905: 0x9E9C, - 28746 - 11905: 0x9E9D, - 28747 - 11905: 0x9E9E, - 28748 - 11905: 0xB9E0, - 28749 - 11905: 0x9E9F, - 28750 - 11905: 0x9EA0, - 28751 - 11905: 0xE5B0, - 28752 - 11905: 0x9EA1, - 28753 - 11905: 0x9EA2, - 28754 - 11905: 0x9EA3, - 28755 - 11905: 0x9EA4, - 28756 - 11905: 0x9EA5, - 28757 - 11905: 0x9EA6, - 28758 - 11905: 0x9EA7, - 28759 - 11905: 0x9EA8, - 28760 - 11905: 0x9EA9, - 28761 - 11905: 0x9EAA, - 28762 - 11905: 0x9EAB, - 28763 - 11905: 0x9EAC, - 28764 - 11905: 0x9EAD, - 28765 - 11905: 0x9EAE, - 28766 - 11905: 0xE5B1, - 28767 - 11905: 0x9EAF, - 28768 - 11905: 0x9EB0, - 28769 - 11905: 0x9EB1, - 28770 - 11905: 0x9EB2, - 28771 - 11905: 0x9EB3, - 28772 - 11905: 0x9EB4, - 28773 - 11905: 0x9EB5, - 28774 - 11905: 0x9EB6, - 28775 - 11905: 0x9EB7, - 28776 - 11905: 0x9EB8, - 28777 - 11905: 0x9EB9, - 28778 - 11905: 0x9EBA, - 28779 - 11905: 0xBBF0, - 28780 - 11905: 0xECE1, - 28781 - 11905: 0xC3F0, - 28782 - 11905: 0x9EBB, - 28783 - 11905: 0xB5C6, - 28784 - 11905: 0xBBD2, - 28785 - 11905: 0x9EBC, - 28786 - 11905: 0x9EBD, - 28787 - 11905: 0x9EBE, - 28788 - 11905: 0x9EBF, - 28789 - 11905: 0xC1E9, - 28790 - 11905: 0xD4EE, - 28791 - 11905: 0x9EC0, - 28792 - 11905: 0xBEC4, - 28793 - 11905: 0x9EC1, - 28794 - 11905: 0x9EC2, - 28795 - 11905: 0x9EC3, - 28796 - 11905: 0xD7C6, - 28797 - 11905: 0x9EC4, - 28798 - 11905: 0xD4D6, - 28799 - 11905: 0xB2D3, - 28800 - 11905: 0xECBE, - 28801 - 11905: 0x9EC5, - 28802 - 11905: 0x9EC6, - 28803 - 11905: 0x9EC7, - 28804 - 11905: 0x9EC8, - 28805 - 11905: 0xEAC1, - 28806 - 11905: 0x9EC9, - 28807 - 11905: 0x9ECA, - 28808 - 11905: 0x9ECB, - 28809 - 11905: 0xC2AF, - 28810 - 11905: 0xB4B6, - 28811 - 11905: 0x9ECC, - 28812 - 11905: 0x9ECD, - 28813 - 11905: 0x9ECE, - 28814 - 11905: 0xD1D7, - 28815 - 11905: 0x9ECF, - 28816 - 11905: 0x9ED0, - 28817 - 11905: 0x9ED1, - 28818 - 11905: 0xB3B4, - 28819 - 11905: 0x9ED2, - 28820 - 11905: 0xC8B2, - 28821 - 11905: 0xBFBB, - 28822 - 11905: 0xECC0, - 28823 - 11905: 0x9ED3, - 28824 - 11905: 0x9ED4, - 28825 - 11905: 0xD6CB, - 28826 - 11905: 0x9ED5, - 28827 - 11905: 0x9ED6, - 28828 - 11905: 0xECBF, - 28829 - 11905: 0xECC1, - 28830 - 11905: 0x9ED7, - 28831 - 11905: 0x9ED8, - 28832 - 11905: 0x9ED9, - 28833 - 11905: 0x9EDA, - 28834 - 11905: 0x9EDB, - 28835 - 11905: 0x9EDC, - 28836 - 11905: 0x9EDD, - 28837 - 11905: 0x9EDE, - 28838 - 11905: 0x9EDF, - 28839 - 11905: 0x9EE0, - 28840 - 11905: 0x9EE1, - 28841 - 11905: 0x9EE2, - 28842 - 11905: 0x9EE3, - 28843 - 11905: 0xECC5, - 28844 - 11905: 0xBEE6, - 28845 - 11905: 0xCCBF, - 28846 - 11905: 0xC5DA, - 28847 - 11905: 0xBEBC, - 28848 - 11905: 0x9EE4, - 28849 - 11905: 0xECC6, - 28850 - 11905: 0x9EE5, - 28851 - 11905: 0xB1FE, - 28852 - 11905: 0x9EE6, - 28853 - 11905: 0x9EE7, - 28854 - 11905: 0x9EE8, - 28855 - 11905: 0xECC4, - 28856 - 11905: 0xD5A8, - 28857 - 11905: 0xB5E3, - 28858 - 11905: 0x9EE9, - 28859 - 11905: 0xECC2, - 28860 - 11905: 0xC1B6, - 28861 - 11905: 0xB3E3, - 28862 - 11905: 0x9EEA, - 28863 - 11905: 0x9EEB, - 28864 - 11905: 0xECC3, - 28865 - 11905: 0xCBB8, - 28866 - 11905: 0xC0C3, - 28867 - 11905: 0xCCFE, - 28868 - 11905: 0x9EEC, - 28869 - 11905: 0x9EED, - 28870 - 11905: 0x9EEE, - 28871 - 11905: 0x9EEF, - 28872 - 11905: 0xC1D2, - 28873 - 11905: 0x9EF0, - 28874 - 11905: 0xECC8, - 28875 - 11905: 0x9EF1, - 28876 - 11905: 0x9EF2, - 28877 - 11905: 0x9EF3, - 28878 - 11905: 0x9EF4, - 28879 - 11905: 0x9EF5, - 28880 - 11905: 0x9EF6, - 28881 - 11905: 0x9EF7, - 28882 - 11905: 0x9EF8, - 28883 - 11905: 0x9EF9, - 28884 - 11905: 0x9EFA, - 28885 - 11905: 0x9EFB, - 28886 - 11905: 0x9EFC, - 28887 - 11905: 0x9EFD, - 28888 - 11905: 0xBAE6, - 28889 - 11905: 0xC0D3, - 28890 - 11905: 0x9EFE, - 28891 - 11905: 0xD6F2, - 28892 - 11905: 0x9F40, - 28893 - 11905: 0x9F41, - 28894 - 11905: 0x9F42, - 28895 - 11905: 0xD1CC, - 28896 - 11905: 0x9F43, - 28897 - 11905: 0x9F44, - 28898 - 11905: 0x9F45, - 28899 - 11905: 0x9F46, - 28900 - 11905: 0xBFBE, - 28901 - 11905: 0x9F47, - 28902 - 11905: 0xB7B3, - 28903 - 11905: 0xC9D5, - 28904 - 11905: 0xECC7, - 28905 - 11905: 0xBBE2, - 28906 - 11905: 0x9F48, - 28907 - 11905: 0xCCCC, - 28908 - 11905: 0xBDFD, - 28909 - 11905: 0xC8C8, - 28910 - 11905: 0x9F49, - 28911 - 11905: 0xCFA9, - 28912 - 11905: 0x9F4A, - 28913 - 11905: 0x9F4B, - 28914 - 11905: 0x9F4C, - 28915 - 11905: 0x9F4D, - 28916 - 11905: 0x9F4E, - 28917 - 11905: 0x9F4F, - 28918 - 11905: 0x9F50, - 28919 - 11905: 0xCDE9, - 28920 - 11905: 0x9F51, - 28921 - 11905: 0xC5EB, - 28922 - 11905: 0x9F52, - 28923 - 11905: 0x9F53, - 28924 - 11905: 0x9F54, - 28925 - 11905: 0xB7E9, - 28926 - 11905: 0x9F55, - 28927 - 11905: 0x9F56, - 28928 - 11905: 0x9F57, - 28929 - 11905: 0x9F58, - 28930 - 11905: 0x9F59, - 28931 - 11905: 0x9F5A, - 28932 - 11905: 0x9F5B, - 28933 - 11905: 0x9F5C, - 28934 - 11905: 0x9F5D, - 28935 - 11905: 0x9F5E, - 28936 - 11905: 0x9F5F, - 28937 - 11905: 0xD1C9, - 28938 - 11905: 0xBAB8, - 28939 - 11905: 0x9F60, - 28940 - 11905: 0x9F61, - 28941 - 11905: 0x9F62, - 28942 - 11905: 0x9F63, - 28943 - 11905: 0x9F64, - 28944 - 11905: 0xECC9, - 28945 - 11905: 0x9F65, - 28946 - 11905: 0x9F66, - 28947 - 11905: 0xECCA, - 28948 - 11905: 0x9F67, - 28949 - 11905: 0xBBC0, - 28950 - 11905: 0xECCB, - 28951 - 11905: 0x9F68, - 28952 - 11905: 0xECE2, - 28953 - 11905: 0xB1BA, - 28954 - 11905: 0xB7D9, - 28955 - 11905: 0x9F69, - 28956 - 11905: 0x9F6A, - 28957 - 11905: 0x9F6B, - 28958 - 11905: 0x9F6C, - 28959 - 11905: 0x9F6D, - 28960 - 11905: 0x9F6E, - 28961 - 11905: 0x9F6F, - 28962 - 11905: 0x9F70, - 28963 - 11905: 0x9F71, - 28964 - 11905: 0x9F72, - 28965 - 11905: 0x9F73, - 28966 - 11905: 0xBDB9, - 28967 - 11905: 0x9F74, - 28968 - 11905: 0x9F75, - 28969 - 11905: 0x9F76, - 28970 - 11905: 0x9F77, - 28971 - 11905: 0x9F78, - 28972 - 11905: 0x9F79, - 28973 - 11905: 0x9F7A, - 28974 - 11905: 0x9F7B, - 28975 - 11905: 0xECCC, - 28976 - 11905: 0xD1E6, - 28977 - 11905: 0xECCD, - 28978 - 11905: 0x9F7C, - 28979 - 11905: 0x9F7D, - 28980 - 11905: 0x9F7E, - 28981 - 11905: 0x9F80, - 28982 - 11905: 0xC8BB, - 28983 - 11905: 0x9F81, - 28984 - 11905: 0x9F82, - 28985 - 11905: 0x9F83, - 28986 - 11905: 0x9F84, - 28987 - 11905: 0x9F85, - 28988 - 11905: 0x9F86, - 28989 - 11905: 0x9F87, - 28990 - 11905: 0x9F88, - 28991 - 11905: 0x9F89, - 28992 - 11905: 0x9F8A, - 28993 - 11905: 0x9F8B, - 28994 - 11905: 0x9F8C, - 28995 - 11905: 0x9F8D, - 28996 - 11905: 0x9F8E, - 28997 - 11905: 0xECD1, - 28998 - 11905: 0x9F8F, - 28999 - 11905: 0x9F90, - 29000 - 11905: 0x9F91, - 29001 - 11905: 0x9F92, - 29002 - 11905: 0xECD3, - 29003 - 11905: 0x9F93, - 29004 - 11905: 0xBBCD, - 29005 - 11905: 0x9F94, - 29006 - 11905: 0xBCE5, - 29007 - 11905: 0x9F95, - 29008 - 11905: 0x9F96, - 29009 - 11905: 0x9F97, - 29010 - 11905: 0x9F98, - 29011 - 11905: 0x9F99, - 29012 - 11905: 0x9F9A, - 29013 - 11905: 0x9F9B, - 29014 - 11905: 0x9F9C, - 29015 - 11905: 0x9F9D, - 29016 - 11905: 0x9F9E, - 29017 - 11905: 0x9F9F, - 29018 - 11905: 0x9FA0, - 29019 - 11905: 0x9FA1, - 29020 - 11905: 0xECCF, - 29021 - 11905: 0x9FA2, - 29022 - 11905: 0xC9B7, - 29023 - 11905: 0x9FA3, - 29024 - 11905: 0x9FA4, - 29025 - 11905: 0x9FA5, - 29026 - 11905: 0x9FA6, - 29027 - 11905: 0x9FA7, - 29028 - 11905: 0xC3BA, - 29029 - 11905: 0x9FA8, - 29030 - 11905: 0xECE3, - 29031 - 11905: 0xD5D5, - 29032 - 11905: 0xECD0, - 29033 - 11905: 0x9FA9, - 29034 - 11905: 0x9FAA, - 29035 - 11905: 0x9FAB, - 29036 - 11905: 0x9FAC, - 29037 - 11905: 0x9FAD, - 29038 - 11905: 0xD6F3, - 29039 - 11905: 0x9FAE, - 29040 - 11905: 0x9FAF, - 29041 - 11905: 0x9FB0, - 29042 - 11905: 0xECD2, - 29043 - 11905: 0xECCE, - 29044 - 11905: 0x9FB1, - 29045 - 11905: 0x9FB2, - 29046 - 11905: 0x9FB3, - 29047 - 11905: 0x9FB4, - 29048 - 11905: 0xECD4, - 29049 - 11905: 0x9FB5, - 29050 - 11905: 0xECD5, - 29051 - 11905: 0x9FB6, - 29052 - 11905: 0x9FB7, - 29053 - 11905: 0xC9BF, - 29054 - 11905: 0x9FB8, - 29055 - 11905: 0x9FB9, - 29056 - 11905: 0x9FBA, - 29057 - 11905: 0x9FBB, - 29058 - 11905: 0x9FBC, - 29059 - 11905: 0x9FBD, - 29060 - 11905: 0xCFA8, - 29061 - 11905: 0x9FBE, - 29062 - 11905: 0x9FBF, - 29063 - 11905: 0x9FC0, - 29064 - 11905: 0x9FC1, - 29065 - 11905: 0x9FC2, - 29066 - 11905: 0xD0DC, - 29067 - 11905: 0x9FC3, - 29068 - 11905: 0x9FC4, - 29069 - 11905: 0x9FC5, - 29070 - 11905: 0x9FC6, - 29071 - 11905: 0xD1AC, - 29072 - 11905: 0x9FC7, - 29073 - 11905: 0x9FC8, - 29074 - 11905: 0x9FC9, - 29075 - 11905: 0x9FCA, - 29076 - 11905: 0xC8DB, - 29077 - 11905: 0x9FCB, - 29078 - 11905: 0x9FCC, - 29079 - 11905: 0x9FCD, - 29080 - 11905: 0xECD6, - 29081 - 11905: 0xCEF5, - 29082 - 11905: 0x9FCE, - 29083 - 11905: 0x9FCF, - 29084 - 11905: 0x9FD0, - 29085 - 11905: 0x9FD1, - 29086 - 11905: 0x9FD2, - 29087 - 11905: 0xCAEC, - 29088 - 11905: 0xECDA, - 29089 - 11905: 0x9FD3, - 29090 - 11905: 0x9FD4, - 29091 - 11905: 0x9FD5, - 29092 - 11905: 0x9FD6, - 29093 - 11905: 0x9FD7, - 29094 - 11905: 0x9FD8, - 29095 - 11905: 0x9FD9, - 29096 - 11905: 0xECD9, - 29097 - 11905: 0x9FDA, - 29098 - 11905: 0x9FDB, - 29099 - 11905: 0x9FDC, - 29100 - 11905: 0xB0BE, - 29101 - 11905: 0x9FDD, - 29102 - 11905: 0x9FDE, - 29103 - 11905: 0x9FDF, - 29104 - 11905: 0x9FE0, - 29105 - 11905: 0x9FE1, - 29106 - 11905: 0x9FE2, - 29107 - 11905: 0xECD7, - 29108 - 11905: 0x9FE3, - 29109 - 11905: 0xECD8, - 29110 - 11905: 0x9FE4, - 29111 - 11905: 0x9FE5, - 29112 - 11905: 0x9FE6, - 29113 - 11905: 0xECE4, - 29114 - 11905: 0x9FE7, - 29115 - 11905: 0x9FE8, - 29116 - 11905: 0x9FE9, - 29117 - 11905: 0x9FEA, - 29118 - 11905: 0x9FEB, - 29119 - 11905: 0x9FEC, - 29120 - 11905: 0x9FED, - 29121 - 11905: 0x9FEE, - 29122 - 11905: 0x9FEF, - 29123 - 11905: 0xC8BC, - 29124 - 11905: 0x9FF0, - 29125 - 11905: 0x9FF1, - 29126 - 11905: 0x9FF2, - 29127 - 11905: 0x9FF3, - 29128 - 11905: 0x9FF4, - 29129 - 11905: 0x9FF5, - 29130 - 11905: 0x9FF6, - 29131 - 11905: 0x9FF7, - 29132 - 11905: 0x9FF8, - 29133 - 11905: 0x9FF9, - 29134 - 11905: 0xC1C7, - 29135 - 11905: 0x9FFA, - 29136 - 11905: 0x9FFB, - 29137 - 11905: 0x9FFC, - 29138 - 11905: 0x9FFD, - 29139 - 11905: 0x9FFE, - 29140 - 11905: 0xECDC, - 29141 - 11905: 0xD1E0, - 29142 - 11905: 0xA040, - 29143 - 11905: 0xA041, - 29144 - 11905: 0xA042, - 29145 - 11905: 0xA043, - 29146 - 11905: 0xA044, - 29147 - 11905: 0xA045, - 29148 - 11905: 0xA046, - 29149 - 11905: 0xA047, - 29150 - 11905: 0xA048, - 29151 - 11905: 0xA049, - 29152 - 11905: 0xECDB, - 29153 - 11905: 0xA04A, - 29154 - 11905: 0xA04B, - 29155 - 11905: 0xA04C, - 29156 - 11905: 0xA04D, - 29157 - 11905: 0xD4EF, - 29158 - 11905: 0xA04E, - 29159 - 11905: 0xECDD, - 29160 - 11905: 0xA04F, - 29161 - 11905: 0xA050, - 29162 - 11905: 0xA051, - 29163 - 11905: 0xA052, - 29164 - 11905: 0xA053, - 29165 - 11905: 0xA054, - 29166 - 11905: 0xDBC6, - 29167 - 11905: 0xA055, - 29168 - 11905: 0xA056, - 29169 - 11905: 0xA057, - 29170 - 11905: 0xA058, - 29171 - 11905: 0xA059, - 29172 - 11905: 0xA05A, - 29173 - 11905: 0xA05B, - 29174 - 11905: 0xA05C, - 29175 - 11905: 0xA05D, - 29176 - 11905: 0xA05E, - 29177 - 11905: 0xECDE, - 29178 - 11905: 0xA05F, - 29179 - 11905: 0xA060, - 29180 - 11905: 0xA061, - 29181 - 11905: 0xA062, - 29182 - 11905: 0xA063, - 29183 - 11905: 0xA064, - 29184 - 11905: 0xA065, - 29185 - 11905: 0xA066, - 29186 - 11905: 0xA067, - 29187 - 11905: 0xA068, - 29188 - 11905: 0xA069, - 29189 - 11905: 0xA06A, - 29190 - 11905: 0xB1AC, - 29191 - 11905: 0xA06B, - 29192 - 11905: 0xA06C, - 29193 - 11905: 0xA06D, - 29194 - 11905: 0xA06E, - 29195 - 11905: 0xA06F, - 29196 - 11905: 0xA070, - 29197 - 11905: 0xA071, - 29198 - 11905: 0xA072, - 29199 - 11905: 0xA073, - 29200 - 11905: 0xA074, - 29201 - 11905: 0xA075, - 29202 - 11905: 0xA076, - 29203 - 11905: 0xA077, - 29204 - 11905: 0xA078, - 29205 - 11905: 0xA079, - 29206 - 11905: 0xA07A, - 29207 - 11905: 0xA07B, - 29208 - 11905: 0xA07C, - 29209 - 11905: 0xA07D, - 29210 - 11905: 0xA07E, - 29211 - 11905: 0xA080, - 29212 - 11905: 0xA081, - 29213 - 11905: 0xECDF, - 29214 - 11905: 0xA082, - 29215 - 11905: 0xA083, - 29216 - 11905: 0xA084, - 29217 - 11905: 0xA085, - 29218 - 11905: 0xA086, - 29219 - 11905: 0xA087, - 29220 - 11905: 0xA088, - 29221 - 11905: 0xA089, - 29222 - 11905: 0xA08A, - 29223 - 11905: 0xA08B, - 29224 - 11905: 0xECE0, - 29225 - 11905: 0xA08C, - 29226 - 11905: 0xD7A6, - 29227 - 11905: 0xA08D, - 29228 - 11905: 0xC5C0, - 29229 - 11905: 0xA08E, - 29230 - 11905: 0xA08F, - 29231 - 11905: 0xA090, - 29232 - 11905: 0xEBBC, - 29233 - 11905: 0xB0AE, - 29234 - 11905: 0xA091, - 29235 - 11905: 0xA092, - 29236 - 11905: 0xA093, - 29237 - 11905: 0xBEF4, - 29238 - 11905: 0xB8B8, - 29239 - 11905: 0xD2AF, - 29240 - 11905: 0xB0D6, - 29241 - 11905: 0xB5F9, - 29242 - 11905: 0xA094, - 29243 - 11905: 0xD8B3, - 29244 - 11905: 0xA095, - 29245 - 11905: 0xCBAC, - 29246 - 11905: 0xA096, - 29247 - 11905: 0xE3DD, - 29248 - 11905: 0xA097, - 29249 - 11905: 0xA098, - 29250 - 11905: 0xA099, - 29251 - 11905: 0xA09A, - 29252 - 11905: 0xA09B, - 29253 - 11905: 0xA09C, - 29254 - 11905: 0xA09D, - 29255 - 11905: 0xC6AC, - 29256 - 11905: 0xB0E6, - 29257 - 11905: 0xA09E, - 29258 - 11905: 0xA09F, - 29259 - 11905: 0xA0A0, - 29260 - 11905: 0xC5C6, - 29261 - 11905: 0xEBB9, - 29262 - 11905: 0xA0A1, - 29263 - 11905: 0xA0A2, - 29264 - 11905: 0xA0A3, - 29265 - 11905: 0xA0A4, - 29266 - 11905: 0xEBBA, - 29267 - 11905: 0xA0A5, - 29268 - 11905: 0xA0A6, - 29269 - 11905: 0xA0A7, - 29270 - 11905: 0xEBBB, - 29271 - 11905: 0xA0A8, - 29272 - 11905: 0xA0A9, - 29273 - 11905: 0xD1C0, - 29274 - 11905: 0xA0AA, - 29275 - 11905: 0xC5A3, - 29276 - 11905: 0xA0AB, - 29277 - 11905: 0xEAF2, - 29278 - 11905: 0xA0AC, - 29279 - 11905: 0xC4B2, - 29280 - 11905: 0xA0AD, - 29281 - 11905: 0xC4B5, - 29282 - 11905: 0xC0CE, - 29283 - 11905: 0xA0AE, - 29284 - 11905: 0xA0AF, - 29285 - 11905: 0xA0B0, - 29286 - 11905: 0xEAF3, - 29287 - 11905: 0xC4C1, - 29288 - 11905: 0xA0B1, - 29289 - 11905: 0xCEEF, - 29290 - 11905: 0xA0B2, - 29291 - 11905: 0xA0B3, - 29292 - 11905: 0xA0B4, - 29293 - 11905: 0xA0B5, - 29294 - 11905: 0xEAF0, - 29295 - 11905: 0xEAF4, - 29296 - 11905: 0xA0B6, - 29297 - 11905: 0xA0B7, - 29298 - 11905: 0xC9FC, - 29299 - 11905: 0xA0B8, - 29300 - 11905: 0xA0B9, - 29301 - 11905: 0xC7A3, - 29302 - 11905: 0xA0BA, - 29303 - 11905: 0xA0BB, - 29304 - 11905: 0xA0BC, - 29305 - 11905: 0xCCD8, - 29306 - 11905: 0xCEFE, - 29307 - 11905: 0xA0BD, - 29308 - 11905: 0xA0BE, - 29309 - 11905: 0xA0BF, - 29310 - 11905: 0xEAF5, - 29311 - 11905: 0xEAF6, - 29312 - 11905: 0xCFAC, - 29313 - 11905: 0xC0E7, - 29314 - 11905: 0xA0C0, - 29315 - 11905: 0xA0C1, - 29316 - 11905: 0xEAF7, - 29317 - 11905: 0xA0C2, - 29318 - 11905: 0xA0C3, - 29319 - 11905: 0xA0C4, - 29320 - 11905: 0xA0C5, - 29321 - 11905: 0xA0C6, - 29322 - 11905: 0xB6BF, - 29323 - 11905: 0xEAF8, - 29324 - 11905: 0xA0C7, - 29325 - 11905: 0xEAF9, - 29326 - 11905: 0xA0C8, - 29327 - 11905: 0xEAFA, - 29328 - 11905: 0xA0C9, - 29329 - 11905: 0xA0CA, - 29330 - 11905: 0xEAFB, - 29331 - 11905: 0xA0CB, - 29332 - 11905: 0xA0CC, - 29333 - 11905: 0xA0CD, - 29334 - 11905: 0xA0CE, - 29335 - 11905: 0xA0CF, - 29336 - 11905: 0xA0D0, - 29337 - 11905: 0xA0D1, - 29338 - 11905: 0xA0D2, - 29339 - 11905: 0xA0D3, - 29340 - 11905: 0xA0D4, - 29341 - 11905: 0xA0D5, - 29342 - 11905: 0xA0D6, - 29343 - 11905: 0xEAF1, - 29344 - 11905: 0xA0D7, - 29345 - 11905: 0xA0D8, - 29346 - 11905: 0xA0D9, - 29347 - 11905: 0xA0DA, - 29348 - 11905: 0xA0DB, - 29349 - 11905: 0xA0DC, - 29350 - 11905: 0xA0DD, - 29351 - 11905: 0xA0DE, - 29352 - 11905: 0xA0DF, - 29353 - 11905: 0xA0E0, - 29354 - 11905: 0xA0E1, - 29355 - 11905: 0xA0E2, - 29356 - 11905: 0xC8AE, - 29357 - 11905: 0xE1EB, - 29358 - 11905: 0xA0E3, - 29359 - 11905: 0xB7B8, - 29360 - 11905: 0xE1EC, - 29361 - 11905: 0xA0E4, - 29362 - 11905: 0xA0E5, - 29363 - 11905: 0xA0E6, - 29364 - 11905: 0xE1ED, - 29365 - 11905: 0xA0E7, - 29366 - 11905: 0xD7B4, - 29367 - 11905: 0xE1EE, - 29368 - 11905: 0xE1EF, - 29369 - 11905: 0xD3CC, - 29370 - 11905: 0xA0E8, - 29371 - 11905: 0xA0E9, - 29372 - 11905: 0xA0EA, - 29373 - 11905: 0xA0EB, - 29374 - 11905: 0xA0EC, - 29375 - 11905: 0xA0ED, - 29376 - 11905: 0xA0EE, - 29377 - 11905: 0xE1F1, - 29378 - 11905: 0xBFF1, - 29379 - 11905: 0xE1F0, - 29380 - 11905: 0xB5D2, - 29381 - 11905: 0xA0EF, - 29382 - 11905: 0xA0F0, - 29383 - 11905: 0xA0F1, - 29384 - 11905: 0xB1B7, - 29385 - 11905: 0xA0F2, - 29386 - 11905: 0xA0F3, - 29387 - 11905: 0xA0F4, - 29388 - 11905: 0xA0F5, - 29389 - 11905: 0xE1F3, - 29390 - 11905: 0xE1F2, - 29391 - 11905: 0xA0F6, - 29392 - 11905: 0xBAFC, - 29393 - 11905: 0xA0F7, - 29394 - 11905: 0xE1F4, - 29395 - 11905: 0xA0F8, - 29396 - 11905: 0xA0F9, - 29397 - 11905: 0xA0FA, - 29398 - 11905: 0xA0FB, - 29399 - 11905: 0xB9B7, - 29400 - 11905: 0xA0FC, - 29401 - 11905: 0xBED1, - 29402 - 11905: 0xA0FD, - 29403 - 11905: 0xA0FE, - 29404 - 11905: 0xAA40, - 29405 - 11905: 0xAA41, - 29406 - 11905: 0xC4FC, - 29407 - 11905: 0xAA42, - 29408 - 11905: 0xBADD, - 29409 - 11905: 0xBDC6, - 29410 - 11905: 0xAA43, - 29411 - 11905: 0xAA44, - 29412 - 11905: 0xAA45, - 29413 - 11905: 0xAA46, - 29414 - 11905: 0xAA47, - 29415 - 11905: 0xAA48, - 29416 - 11905: 0xE1F5, - 29417 - 11905: 0xE1F7, - 29418 - 11905: 0xAA49, - 29419 - 11905: 0xAA4A, - 29420 - 11905: 0xB6C0, - 29421 - 11905: 0xCFC1, - 29422 - 11905: 0xCAA8, - 29423 - 11905: 0xE1F6, - 29424 - 11905: 0xD5F8, - 29425 - 11905: 0xD3FC, - 29426 - 11905: 0xE1F8, - 29427 - 11905: 0xE1FC, - 29428 - 11905: 0xE1F9, - 29429 - 11905: 0xAA4B, - 29430 - 11905: 0xAA4C, - 29431 - 11905: 0xE1FA, - 29432 - 11905: 0xC0EA, - 29433 - 11905: 0xAA4D, - 29434 - 11905: 0xE1FE, - 29435 - 11905: 0xE2A1, - 29436 - 11905: 0xC0C7, - 29437 - 11905: 0xAA4E, - 29438 - 11905: 0xAA4F, - 29439 - 11905: 0xAA50, - 29440 - 11905: 0xAA51, - 29441 - 11905: 0xE1FB, - 29442 - 11905: 0xAA52, - 29443 - 11905: 0xE1FD, - 29444 - 11905: 0xAA53, - 29445 - 11905: 0xAA54, - 29446 - 11905: 0xAA55, - 29447 - 11905: 0xAA56, - 29448 - 11905: 0xAA57, - 29449 - 11905: 0xAA58, - 29450 - 11905: 0xE2A5, - 29451 - 11905: 0xAA59, - 29452 - 11905: 0xAA5A, - 29453 - 11905: 0xAA5B, - 29454 - 11905: 0xC1D4, - 29455 - 11905: 0xAA5C, - 29456 - 11905: 0xAA5D, - 29457 - 11905: 0xAA5E, - 29458 - 11905: 0xAA5F, - 29459 - 11905: 0xE2A3, - 29460 - 11905: 0xAA60, - 29461 - 11905: 0xE2A8, - 29462 - 11905: 0xB2FE, - 29463 - 11905: 0xE2A2, - 29464 - 11905: 0xAA61, - 29465 - 11905: 0xAA62, - 29466 - 11905: 0xAA63, - 29467 - 11905: 0xC3CD, - 29468 - 11905: 0xB2C2, - 29469 - 11905: 0xE2A7, - 29470 - 11905: 0xE2A6, - 29471 - 11905: 0xAA64, - 29472 - 11905: 0xAA65, - 29473 - 11905: 0xE2A4, - 29474 - 11905: 0xE2A9, - 29475 - 11905: 0xAA66, - 29476 - 11905: 0xAA67, - 29477 - 11905: 0xE2AB, - 29478 - 11905: 0xAA68, - 29479 - 11905: 0xAA69, - 29480 - 11905: 0xAA6A, - 29481 - 11905: 0xD0C9, - 29482 - 11905: 0xD6ED, - 29483 - 11905: 0xC3A8, - 29484 - 11905: 0xE2AC, - 29485 - 11905: 0xAA6B, - 29486 - 11905: 0xCFD7, - 29487 - 11905: 0xAA6C, - 29488 - 11905: 0xAA6D, - 29489 - 11905: 0xE2AE, - 29490 - 11905: 0xAA6E, - 29491 - 11905: 0xAA6F, - 29492 - 11905: 0xBAEF, - 29493 - 11905: 0xAA70, - 29494 - 11905: 0xAA71, - 29495 - 11905: 0xE9E0, - 29496 - 11905: 0xE2AD, - 29497 - 11905: 0xE2AA, - 29498 - 11905: 0xAA72, - 29499 - 11905: 0xAA73, - 29500 - 11905: 0xAA74, - 29501 - 11905: 0xAA75, - 29502 - 11905: 0xBBAB, - 29503 - 11905: 0xD4B3, - 29504 - 11905: 0xAA76, - 29505 - 11905: 0xAA77, - 29506 - 11905: 0xAA78, - 29507 - 11905: 0xAA79, - 29508 - 11905: 0xAA7A, - 29509 - 11905: 0xAA7B, - 29510 - 11905: 0xAA7C, - 29511 - 11905: 0xAA7D, - 29512 - 11905: 0xAA7E, - 29513 - 11905: 0xAA80, - 29514 - 11905: 0xAA81, - 29515 - 11905: 0xAA82, - 29516 - 11905: 0xAA83, - 29517 - 11905: 0xE2B0, - 29518 - 11905: 0xAA84, - 29519 - 11905: 0xAA85, - 29520 - 11905: 0xE2AF, - 29521 - 11905: 0xAA86, - 29522 - 11905: 0xE9E1, - 29523 - 11905: 0xAA87, - 29524 - 11905: 0xAA88, - 29525 - 11905: 0xAA89, - 29526 - 11905: 0xAA8A, - 29527 - 11905: 0xE2B1, - 29528 - 11905: 0xAA8B, - 29529 - 11905: 0xAA8C, - 29530 - 11905: 0xAA8D, - 29531 - 11905: 0xAA8E, - 29532 - 11905: 0xAA8F, - 29533 - 11905: 0xAA90, - 29534 - 11905: 0xAA91, - 29535 - 11905: 0xAA92, - 29536 - 11905: 0xE2B2, - 29537 - 11905: 0xAA93, - 29538 - 11905: 0xAA94, - 29539 - 11905: 0xAA95, - 29540 - 11905: 0xAA96, - 29541 - 11905: 0xAA97, - 29542 - 11905: 0xAA98, - 29543 - 11905: 0xAA99, - 29544 - 11905: 0xAA9A, - 29545 - 11905: 0xAA9B, - 29546 - 11905: 0xAA9C, - 29547 - 11905: 0xAA9D, - 29548 - 11905: 0xE2B3, - 29549 - 11905: 0xCCA1, - 29550 - 11905: 0xAA9E, - 29551 - 11905: 0xE2B4, - 29552 - 11905: 0xAA9F, - 29553 - 11905: 0xAAA0, - 29554 - 11905: 0xAB40, - 29555 - 11905: 0xAB41, - 29556 - 11905: 0xAB42, - 29557 - 11905: 0xAB43, - 29558 - 11905: 0xAB44, - 29559 - 11905: 0xAB45, - 29560 - 11905: 0xAB46, - 29561 - 11905: 0xAB47, - 29562 - 11905: 0xAB48, - 29563 - 11905: 0xAB49, - 29564 - 11905: 0xAB4A, - 29565 - 11905: 0xAB4B, - 29566 - 11905: 0xE2B5, - 29567 - 11905: 0xAB4C, - 29568 - 11905: 0xAB4D, - 29569 - 11905: 0xAB4E, - 29570 - 11905: 0xAB4F, - 29571 - 11905: 0xAB50, - 29572 - 11905: 0xD0FE, - 29573 - 11905: 0xAB51, - 29574 - 11905: 0xAB52, - 29575 - 11905: 0xC2CA, - 29576 - 11905: 0xAB53, - 29577 - 11905: 0xD3F1, - 29578 - 11905: 0xAB54, - 29579 - 11905: 0xCDF5, - 29580 - 11905: 0xAB55, - 29581 - 11905: 0xAB56, - 29582 - 11905: 0xE7E0, - 29583 - 11905: 0xAB57, - 29584 - 11905: 0xAB58, - 29585 - 11905: 0xE7E1, - 29586 - 11905: 0xAB59, - 29587 - 11905: 0xAB5A, - 29588 - 11905: 0xAB5B, - 29589 - 11905: 0xAB5C, - 29590 - 11905: 0xBEC1, - 29591 - 11905: 0xAB5D, - 29592 - 11905: 0xAB5E, - 29593 - 11905: 0xAB5F, - 29594 - 11905: 0xAB60, - 29595 - 11905: 0xC2EA, - 29596 - 11905: 0xAB61, - 29597 - 11905: 0xAB62, - 29598 - 11905: 0xAB63, - 29599 - 11905: 0xE7E4, - 29600 - 11905: 0xAB64, - 29601 - 11905: 0xAB65, - 29602 - 11905: 0xE7E3, - 29603 - 11905: 0xAB66, - 29604 - 11905: 0xAB67, - 29605 - 11905: 0xAB68, - 29606 - 11905: 0xAB69, - 29607 - 11905: 0xAB6A, - 29608 - 11905: 0xAB6B, - 29609 - 11905: 0xCDE6, - 29610 - 11905: 0xAB6C, - 29611 - 11905: 0xC3B5, - 29612 - 11905: 0xAB6D, - 29613 - 11905: 0xAB6E, - 29614 - 11905: 0xE7E2, - 29615 - 11905: 0xBBB7, - 29616 - 11905: 0xCFD6, - 29617 - 11905: 0xAB6F, - 29618 - 11905: 0xC1E1, - 29619 - 11905: 0xE7E9, - 29620 - 11905: 0xAB70, - 29621 - 11905: 0xAB71, - 29622 - 11905: 0xAB72, - 29623 - 11905: 0xE7E8, - 29624 - 11905: 0xAB73, - 29625 - 11905: 0xAB74, - 29626 - 11905: 0xE7F4, - 29627 - 11905: 0xB2A3, - 29628 - 11905: 0xAB75, - 29629 - 11905: 0xAB76, - 29630 - 11905: 0xAB77, - 29631 - 11905: 0xAB78, - 29632 - 11905: 0xE7EA, - 29633 - 11905: 0xAB79, - 29634 - 11905: 0xE7E6, - 29635 - 11905: 0xAB7A, - 29636 - 11905: 0xAB7B, - 29637 - 11905: 0xAB7C, - 29638 - 11905: 0xAB7D, - 29639 - 11905: 0xAB7E, - 29640 - 11905: 0xE7EC, - 29641 - 11905: 0xE7EB, - 29642 - 11905: 0xC9BA, - 29643 - 11905: 0xAB80, - 29644 - 11905: 0xAB81, - 29645 - 11905: 0xD5E4, - 29646 - 11905: 0xAB82, - 29647 - 11905: 0xE7E5, - 29648 - 11905: 0xB7A9, - 29649 - 11905: 0xE7E7, - 29650 - 11905: 0xAB83, - 29651 - 11905: 0xAB84, - 29652 - 11905: 0xAB85, - 29653 - 11905: 0xAB86, - 29654 - 11905: 0xAB87, - 29655 - 11905: 0xAB88, - 29656 - 11905: 0xAB89, - 29657 - 11905: 0xE7EE, - 29658 - 11905: 0xAB8A, - 29659 - 11905: 0xAB8B, - 29660 - 11905: 0xAB8C, - 29661 - 11905: 0xAB8D, - 29662 - 11905: 0xE7F3, - 29663 - 11905: 0xAB8E, - 29664 - 11905: 0xD6E9, - 29665 - 11905: 0xAB8F, - 29666 - 11905: 0xAB90, - 29667 - 11905: 0xAB91, - 29668 - 11905: 0xAB92, - 29669 - 11905: 0xE7ED, - 29670 - 11905: 0xAB93, - 29671 - 11905: 0xE7F2, - 29672 - 11905: 0xAB94, - 29673 - 11905: 0xE7F1, - 29674 - 11905: 0xAB95, - 29675 - 11905: 0xAB96, - 29676 - 11905: 0xAB97, - 29677 - 11905: 0xB0E0, - 29678 - 11905: 0xAB98, - 29679 - 11905: 0xAB99, - 29680 - 11905: 0xAB9A, - 29681 - 11905: 0xAB9B, - 29682 - 11905: 0xE7F5, - 29683 - 11905: 0xAB9C, - 29684 - 11905: 0xAB9D, - 29685 - 11905: 0xAB9E, - 29686 - 11905: 0xAB9F, - 29687 - 11905: 0xABA0, - 29688 - 11905: 0xAC40, - 29689 - 11905: 0xAC41, - 29690 - 11905: 0xAC42, - 29691 - 11905: 0xAC43, - 29692 - 11905: 0xAC44, - 29693 - 11905: 0xAC45, - 29694 - 11905: 0xAC46, - 29695 - 11905: 0xAC47, - 29696 - 11905: 0xAC48, - 29697 - 11905: 0xAC49, - 29698 - 11905: 0xAC4A, - 29699 - 11905: 0xC7F2, - 29700 - 11905: 0xAC4B, - 29701 - 11905: 0xC0C5, - 29702 - 11905: 0xC0ED, - 29703 - 11905: 0xAC4C, - 29704 - 11905: 0xAC4D, - 29705 - 11905: 0xC1F0, - 29706 - 11905: 0xE7F0, - 29707 - 11905: 0xAC4E, - 29708 - 11905: 0xAC4F, - 29709 - 11905: 0xAC50, - 29710 - 11905: 0xAC51, - 29711 - 11905: 0xE7F6, - 29712 - 11905: 0xCBF6, - 29713 - 11905: 0xAC52, - 29714 - 11905: 0xAC53, - 29715 - 11905: 0xAC54, - 29716 - 11905: 0xAC55, - 29717 - 11905: 0xAC56, - 29718 - 11905: 0xAC57, - 29719 - 11905: 0xAC58, - 29720 - 11905: 0xAC59, - 29721 - 11905: 0xAC5A, - 29722 - 11905: 0xE8A2, - 29723 - 11905: 0xE8A1, - 29724 - 11905: 0xAC5B, - 29725 - 11905: 0xAC5C, - 29726 - 11905: 0xAC5D, - 29727 - 11905: 0xAC5E, - 29728 - 11905: 0xAC5F, - 29729 - 11905: 0xAC60, - 29730 - 11905: 0xD7C1, - 29731 - 11905: 0xAC61, - 29732 - 11905: 0xAC62, - 29733 - 11905: 0xE7FA, - 29734 - 11905: 0xE7F9, - 29735 - 11905: 0xAC63, - 29736 - 11905: 0xE7FB, - 29737 - 11905: 0xAC64, - 29738 - 11905: 0xE7F7, - 29739 - 11905: 0xAC65, - 29740 - 11905: 0xE7FE, - 29741 - 11905: 0xAC66, - 29742 - 11905: 0xE7FD, - 29743 - 11905: 0xAC67, - 29744 - 11905: 0xE7FC, - 29745 - 11905: 0xAC68, - 29746 - 11905: 0xAC69, - 29747 - 11905: 0xC1D5, - 29748 - 11905: 0xC7D9, - 29749 - 11905: 0xC5FD, - 29750 - 11905: 0xC5C3, - 29751 - 11905: 0xAC6A, - 29752 - 11905: 0xAC6B, - 29753 - 11905: 0xAC6C, - 29754 - 11905: 0xAC6D, - 29755 - 11905: 0xAC6E, - 29756 - 11905: 0xC7ED, - 29757 - 11905: 0xAC6F, - 29758 - 11905: 0xAC70, - 29759 - 11905: 0xAC71, - 29760 - 11905: 0xAC72, - 29761 - 11905: 0xE8A3, - 29762 - 11905: 0xAC73, - 29763 - 11905: 0xAC74, - 29764 - 11905: 0xAC75, - 29765 - 11905: 0xAC76, - 29766 - 11905: 0xAC77, - 29767 - 11905: 0xAC78, - 29768 - 11905: 0xAC79, - 29769 - 11905: 0xAC7A, - 29770 - 11905: 0xAC7B, - 29771 - 11905: 0xAC7C, - 29772 - 11905: 0xAC7D, - 29773 - 11905: 0xAC7E, - 29774 - 11905: 0xAC80, - 29775 - 11905: 0xAC81, - 29776 - 11905: 0xAC82, - 29777 - 11905: 0xAC83, - 29778 - 11905: 0xAC84, - 29779 - 11905: 0xAC85, - 29780 - 11905: 0xAC86, - 29781 - 11905: 0xE8A6, - 29782 - 11905: 0xAC87, - 29783 - 11905: 0xE8A5, - 29784 - 11905: 0xAC88, - 29785 - 11905: 0xE8A7, - 29786 - 11905: 0xBAF7, - 29787 - 11905: 0xE7F8, - 29788 - 11905: 0xE8A4, - 29789 - 11905: 0xAC89, - 29790 - 11905: 0xC8F0, - 29791 - 11905: 0xC9AA, - 29792 - 11905: 0xAC8A, - 29793 - 11905: 0xAC8B, - 29794 - 11905: 0xAC8C, - 29795 - 11905: 0xAC8D, - 29796 - 11905: 0xAC8E, - 29797 - 11905: 0xAC8F, - 29798 - 11905: 0xAC90, - 29799 - 11905: 0xAC91, - 29800 - 11905: 0xAC92, - 29801 - 11905: 0xAC93, - 29802 - 11905: 0xAC94, - 29803 - 11905: 0xAC95, - 29804 - 11905: 0xAC96, - 29805 - 11905: 0xE8A9, - 29806 - 11905: 0xAC97, - 29807 - 11905: 0xAC98, - 29808 - 11905: 0xB9E5, - 29809 - 11905: 0xAC99, - 29810 - 11905: 0xAC9A, - 29811 - 11905: 0xAC9B, - 29812 - 11905: 0xAC9C, - 29813 - 11905: 0xAC9D, - 29814 - 11905: 0xD1FE, - 29815 - 11905: 0xE8A8, - 29816 - 11905: 0xAC9E, - 29817 - 11905: 0xAC9F, - 29818 - 11905: 0xACA0, - 29819 - 11905: 0xAD40, - 29820 - 11905: 0xAD41, - 29821 - 11905: 0xAD42, - 29822 - 11905: 0xE8AA, - 29823 - 11905: 0xAD43, - 29824 - 11905: 0xE8AD, - 29825 - 11905: 0xE8AE, - 29826 - 11905: 0xAD44, - 29827 - 11905: 0xC1A7, - 29828 - 11905: 0xAD45, - 29829 - 11905: 0xAD46, - 29830 - 11905: 0xAD47, - 29831 - 11905: 0xE8AF, - 29832 - 11905: 0xAD48, - 29833 - 11905: 0xAD49, - 29834 - 11905: 0xAD4A, - 29835 - 11905: 0xE8B0, - 29836 - 11905: 0xAD4B, - 29837 - 11905: 0xAD4C, - 29838 - 11905: 0xE8AC, - 29839 - 11905: 0xAD4D, - 29840 - 11905: 0xE8B4, - 29841 - 11905: 0xAD4E, - 29842 - 11905: 0xAD4F, - 29843 - 11905: 0xAD50, - 29844 - 11905: 0xAD51, - 29845 - 11905: 0xAD52, - 29846 - 11905: 0xAD53, - 29847 - 11905: 0xAD54, - 29848 - 11905: 0xAD55, - 29849 - 11905: 0xAD56, - 29850 - 11905: 0xAD57, - 29851 - 11905: 0xAD58, - 29852 - 11905: 0xE8AB, - 29853 - 11905: 0xAD59, - 29854 - 11905: 0xE8B1, - 29855 - 11905: 0xAD5A, - 29856 - 11905: 0xAD5B, - 29857 - 11905: 0xAD5C, - 29858 - 11905: 0xAD5D, - 29859 - 11905: 0xAD5E, - 29860 - 11905: 0xAD5F, - 29861 - 11905: 0xAD60, - 29862 - 11905: 0xAD61, - 29863 - 11905: 0xE8B5, - 29864 - 11905: 0xE8B2, - 29865 - 11905: 0xE8B3, - 29866 - 11905: 0xAD62, - 29867 - 11905: 0xAD63, - 29868 - 11905: 0xAD64, - 29869 - 11905: 0xAD65, - 29870 - 11905: 0xAD66, - 29871 - 11905: 0xAD67, - 29872 - 11905: 0xAD68, - 29873 - 11905: 0xAD69, - 29874 - 11905: 0xAD6A, - 29875 - 11905: 0xAD6B, - 29876 - 11905: 0xAD6C, - 29877 - 11905: 0xAD6D, - 29878 - 11905: 0xAD6E, - 29879 - 11905: 0xAD6F, - 29880 - 11905: 0xAD70, - 29881 - 11905: 0xAD71, - 29882 - 11905: 0xE8B7, - 29883 - 11905: 0xAD72, - 29884 - 11905: 0xAD73, - 29885 - 11905: 0xAD74, - 29886 - 11905: 0xAD75, - 29887 - 11905: 0xAD76, - 29888 - 11905: 0xAD77, - 29889 - 11905: 0xAD78, - 29890 - 11905: 0xAD79, - 29891 - 11905: 0xAD7A, - 29892 - 11905: 0xAD7B, - 29893 - 11905: 0xAD7C, - 29894 - 11905: 0xAD7D, - 29895 - 11905: 0xAD7E, - 29896 - 11905: 0xAD80, - 29897 - 11905: 0xAD81, - 29898 - 11905: 0xAD82, - 29899 - 11905: 0xAD83, - 29900 - 11905: 0xAD84, - 29901 - 11905: 0xAD85, - 29902 - 11905: 0xAD86, - 29903 - 11905: 0xAD87, - 29904 - 11905: 0xAD88, - 29905 - 11905: 0xAD89, - 29906 - 11905: 0xE8B6, - 29907 - 11905: 0xAD8A, - 29908 - 11905: 0xAD8B, - 29909 - 11905: 0xAD8C, - 29910 - 11905: 0xAD8D, - 29911 - 11905: 0xAD8E, - 29912 - 11905: 0xAD8F, - 29913 - 11905: 0xAD90, - 29914 - 11905: 0xAD91, - 29915 - 11905: 0xAD92, - 29916 - 11905: 0xB9CF, - 29917 - 11905: 0xAD93, - 29918 - 11905: 0xF0AC, - 29919 - 11905: 0xAD94, - 29920 - 11905: 0xF0AD, - 29921 - 11905: 0xAD95, - 29922 - 11905: 0xC6B0, - 29923 - 11905: 0xB0EA, - 29924 - 11905: 0xC8BF, - 29925 - 11905: 0xAD96, - 29926 - 11905: 0xCDDF, - 29927 - 11905: 0xAD97, - 29928 - 11905: 0xAD98, - 29929 - 11905: 0xAD99, - 29930 - 11905: 0xAD9A, - 29931 - 11905: 0xAD9B, - 29932 - 11905: 0xAD9C, - 29933 - 11905: 0xAD9D, - 29934 - 11905: 0xCECD, - 29935 - 11905: 0xEAB1, - 29936 - 11905: 0xAD9E, - 29937 - 11905: 0xAD9F, - 29938 - 11905: 0xADA0, - 29939 - 11905: 0xAE40, - 29940 - 11905: 0xEAB2, - 29941 - 11905: 0xAE41, - 29942 - 11905: 0xC6BF, - 29943 - 11905: 0xB4C9, - 29944 - 11905: 0xAE42, - 29945 - 11905: 0xAE43, - 29946 - 11905: 0xAE44, - 29947 - 11905: 0xAE45, - 29948 - 11905: 0xAE46, - 29949 - 11905: 0xAE47, - 29950 - 11905: 0xAE48, - 29951 - 11905: 0xEAB3, - 29952 - 11905: 0xAE49, - 29953 - 11905: 0xAE4A, - 29954 - 11905: 0xAE4B, - 29955 - 11905: 0xAE4C, - 29956 - 11905: 0xD5E7, - 29957 - 11905: 0xAE4D, - 29958 - 11905: 0xAE4E, - 29959 - 11905: 0xAE4F, - 29960 - 11905: 0xAE50, - 29961 - 11905: 0xAE51, - 29962 - 11905: 0xAE52, - 29963 - 11905: 0xAE53, - 29964 - 11905: 0xAE54, - 29965 - 11905: 0xDDF9, - 29966 - 11905: 0xAE55, - 29967 - 11905: 0xEAB4, - 29968 - 11905: 0xAE56, - 29969 - 11905: 0xEAB5, - 29970 - 11905: 0xAE57, - 29971 - 11905: 0xEAB6, - 29972 - 11905: 0xAE58, - 29973 - 11905: 0xAE59, - 29974 - 11905: 0xAE5A, - 29975 - 11905: 0xAE5B, - 29976 - 11905: 0xB8CA, - 29977 - 11905: 0xDFB0, - 29978 - 11905: 0xC9F5, - 29979 - 11905: 0xAE5C, - 29980 - 11905: 0xCCF0, - 29981 - 11905: 0xAE5D, - 29982 - 11905: 0xAE5E, - 29983 - 11905: 0xC9FA, - 29984 - 11905: 0xAE5F, - 29985 - 11905: 0xAE60, - 29986 - 11905: 0xAE61, - 29987 - 11905: 0xAE62, - 29988 - 11905: 0xAE63, - 29989 - 11905: 0xC9FB, - 29990 - 11905: 0xAE64, - 29991 - 11905: 0xAE65, - 29992 - 11905: 0xD3C3, - 29993 - 11905: 0xCBA6, - 29994 - 11905: 0xAE66, - 29995 - 11905: 0xB8A6, - 29996 - 11905: 0xF0AE, - 29997 - 11905: 0xB1C2, - 29998 - 11905: 0xAE67, - 29999 - 11905: 0xE5B8, - 30000 - 11905: 0xCCEF, - 30001 - 11905: 0xD3C9, - 30002 - 11905: 0xBCD7, - 30003 - 11905: 0xC9EA, - 30004 - 11905: 0xAE68, - 30005 - 11905: 0xB5E7, - 30006 - 11905: 0xAE69, - 30007 - 11905: 0xC4D0, - 30008 - 11905: 0xB5E9, - 30009 - 11905: 0xAE6A, - 30010 - 11905: 0xEEAE, - 30011 - 11905: 0xBBAD, - 30012 - 11905: 0xAE6B, - 30013 - 11905: 0xAE6C, - 30014 - 11905: 0xE7DE, - 30015 - 11905: 0xAE6D, - 30016 - 11905: 0xEEAF, - 30017 - 11905: 0xAE6E, - 30018 - 11905: 0xAE6F, - 30019 - 11905: 0xAE70, - 30020 - 11905: 0xAE71, - 30021 - 11905: 0xB3A9, - 30022 - 11905: 0xAE72, - 30023 - 11905: 0xAE73, - 30024 - 11905: 0xEEB2, - 30025 - 11905: 0xAE74, - 30026 - 11905: 0xAE75, - 30027 - 11905: 0xEEB1, - 30028 - 11905: 0xBDE7, - 30029 - 11905: 0xAE76, - 30030 - 11905: 0xEEB0, - 30031 - 11905: 0xCEB7, - 30032 - 11905: 0xAE77, - 30033 - 11905: 0xAE78, - 30034 - 11905: 0xAE79, - 30035 - 11905: 0xAE7A, - 30036 - 11905: 0xC5CF, - 30037 - 11905: 0xAE7B, - 30038 - 11905: 0xAE7C, - 30039 - 11905: 0xAE7D, - 30040 - 11905: 0xAE7E, - 30041 - 11905: 0xC1F4, - 30042 - 11905: 0xDBCE, - 30043 - 11905: 0xEEB3, - 30044 - 11905: 0xD0F3, - 30045 - 11905: 0xAE80, - 30046 - 11905: 0xAE81, - 30047 - 11905: 0xAE82, - 30048 - 11905: 0xAE83, - 30049 - 11905: 0xAE84, - 30050 - 11905: 0xAE85, - 30051 - 11905: 0xAE86, - 30052 - 11905: 0xAE87, - 30053 - 11905: 0xC2D4, - 30054 - 11905: 0xC6E8, - 30055 - 11905: 0xAE88, - 30056 - 11905: 0xAE89, - 30057 - 11905: 0xAE8A, - 30058 - 11905: 0xB7AC, - 30059 - 11905: 0xAE8B, - 30060 - 11905: 0xAE8C, - 30061 - 11905: 0xAE8D, - 30062 - 11905: 0xAE8E, - 30063 - 11905: 0xAE8F, - 30064 - 11905: 0xAE90, - 30065 - 11905: 0xAE91, - 30066 - 11905: 0xEEB4, - 30067 - 11905: 0xAE92, - 30068 - 11905: 0xB3EB, - 30069 - 11905: 0xAE93, - 30070 - 11905: 0xAE94, - 30071 - 11905: 0xAE95, - 30072 - 11905: 0xBBFB, - 30073 - 11905: 0xEEB5, - 30074 - 11905: 0xAE96, - 30075 - 11905: 0xAE97, - 30076 - 11905: 0xAE98, - 30077 - 11905: 0xAE99, - 30078 - 11905: 0xAE9A, - 30079 - 11905: 0xE7DC, - 30080 - 11905: 0xAE9B, - 30081 - 11905: 0xAE9C, - 30082 - 11905: 0xAE9D, - 30083 - 11905: 0xEEB6, - 30084 - 11905: 0xAE9E, - 30085 - 11905: 0xAE9F, - 30086 - 11905: 0xBDAE, - 30087 - 11905: 0xAEA0, - 30088 - 11905: 0xAF40, - 30089 - 11905: 0xAF41, - 30090 - 11905: 0xAF42, - 30091 - 11905: 0xF1E2, - 30092 - 11905: 0xAF43, - 30093 - 11905: 0xAF44, - 30094 - 11905: 0xAF45, - 30095 - 11905: 0xCAE8, - 30096 - 11905: 0xAF46, - 30097 - 11905: 0xD2C9, - 30098 - 11905: 0xF0DA, - 30099 - 11905: 0xAF47, - 30100 - 11905: 0xF0DB, - 30101 - 11905: 0xAF48, - 30102 - 11905: 0xF0DC, - 30103 - 11905: 0xC1C6, - 30104 - 11905: 0xAF49, - 30105 - 11905: 0xB8ED, - 30106 - 11905: 0xBECE, - 30107 - 11905: 0xAF4A, - 30108 - 11905: 0xAF4B, - 30109 - 11905: 0xF0DE, - 30110 - 11905: 0xAF4C, - 30111 - 11905: 0xC5B1, - 30112 - 11905: 0xF0DD, - 30113 - 11905: 0xD1F1, - 30114 - 11905: 0xAF4D, - 30115 - 11905: 0xF0E0, - 30116 - 11905: 0xB0CC, - 30117 - 11905: 0xBDEA, - 30118 - 11905: 0xAF4E, - 30119 - 11905: 0xAF4F, - 30120 - 11905: 0xAF50, - 30121 - 11905: 0xAF51, - 30122 - 11905: 0xAF52, - 30123 - 11905: 0xD2DF, - 30124 - 11905: 0xF0DF, - 30125 - 11905: 0xAF53, - 30126 - 11905: 0xB4AF, - 30127 - 11905: 0xB7E8, - 30128 - 11905: 0xF0E6, - 30129 - 11905: 0xF0E5, - 30130 - 11905: 0xC6A3, - 30131 - 11905: 0xF0E1, - 30132 - 11905: 0xF0E2, - 30133 - 11905: 0xB4C3, - 30134 - 11905: 0xAF54, - 30135 - 11905: 0xAF55, - 30136 - 11905: 0xF0E3, - 30137 - 11905: 0xD5EE, - 30138 - 11905: 0xAF56, - 30139 - 11905: 0xAF57, - 30140 - 11905: 0xCCDB, - 30141 - 11905: 0xBED2, - 30142 - 11905: 0xBCB2, - 30143 - 11905: 0xAF58, - 30144 - 11905: 0xAF59, - 30145 - 11905: 0xAF5A, - 30146 - 11905: 0xF0E8, - 30147 - 11905: 0xF0E7, - 30148 - 11905: 0xF0E4, - 30149 - 11905: 0xB2A1, - 30150 - 11905: 0xAF5B, - 30151 - 11905: 0xD6A2, - 30152 - 11905: 0xD3B8, - 30153 - 11905: 0xBEB7, - 30154 - 11905: 0xC8AC, - 30155 - 11905: 0xAF5C, - 30156 - 11905: 0xAF5D, - 30157 - 11905: 0xF0EA, - 30158 - 11905: 0xAF5E, - 30159 - 11905: 0xAF5F, - 30160 - 11905: 0xAF60, - 30161 - 11905: 0xAF61, - 30162 - 11905: 0xD1F7, - 30163 - 11905: 0xAF62, - 30164 - 11905: 0xD6CC, - 30165 - 11905: 0xBADB, - 30166 - 11905: 0xF0E9, - 30167 - 11905: 0xAF63, - 30168 - 11905: 0xB6BB, - 30169 - 11905: 0xAF64, - 30170 - 11905: 0xAF65, - 30171 - 11905: 0xCDB4, - 30172 - 11905: 0xAF66, - 30173 - 11905: 0xAF67, - 30174 - 11905: 0xC6A6, - 30175 - 11905: 0xAF68, - 30176 - 11905: 0xAF69, - 30177 - 11905: 0xAF6A, - 30178 - 11905: 0xC1A1, - 30179 - 11905: 0xF0EB, - 30180 - 11905: 0xF0EE, - 30181 - 11905: 0xAF6B, - 30182 - 11905: 0xF0ED, - 30183 - 11905: 0xF0F0, - 30184 - 11905: 0xF0EC, - 30185 - 11905: 0xAF6C, - 30186 - 11905: 0xBBBE, - 30187 - 11905: 0xF0EF, - 30188 - 11905: 0xAF6D, - 30189 - 11905: 0xAF6E, - 30190 - 11905: 0xAF6F, - 30191 - 11905: 0xAF70, - 30192 - 11905: 0xCCB5, - 30193 - 11905: 0xF0F2, - 30194 - 11905: 0xAF71, - 30195 - 11905: 0xAF72, - 30196 - 11905: 0xB3D5, - 30197 - 11905: 0xAF73, - 30198 - 11905: 0xAF74, - 30199 - 11905: 0xAF75, - 30200 - 11905: 0xAF76, - 30201 - 11905: 0xB1D4, - 30202 - 11905: 0xAF77, - 30203 - 11905: 0xAF78, - 30204 - 11905: 0xF0F3, - 30205 - 11905: 0xAF79, - 30206 - 11905: 0xAF7A, - 30207 - 11905: 0xF0F4, - 30208 - 11905: 0xF0F6, - 30209 - 11905: 0xB4E1, - 30210 - 11905: 0xAF7B, - 30211 - 11905: 0xF0F1, - 30212 - 11905: 0xAF7C, - 30213 - 11905: 0xF0F7, - 30214 - 11905: 0xAF7D, - 30215 - 11905: 0xAF7E, - 30216 - 11905: 0xAF80, - 30217 - 11905: 0xAF81, - 30218 - 11905: 0xF0FA, - 30219 - 11905: 0xAF82, - 30220 - 11905: 0xF0F8, - 30221 - 11905: 0xAF83, - 30222 - 11905: 0xAF84, - 30223 - 11905: 0xAF85, - 30224 - 11905: 0xF0F5, - 30225 - 11905: 0xAF86, - 30226 - 11905: 0xAF87, - 30227 - 11905: 0xAF88, - 30228 - 11905: 0xAF89, - 30229 - 11905: 0xF0FD, - 30230 - 11905: 0xAF8A, - 30231 - 11905: 0xF0F9, - 30232 - 11905: 0xF0FC, - 30233 - 11905: 0xF0FE, - 30234 - 11905: 0xAF8B, - 30235 - 11905: 0xF1A1, - 30236 - 11905: 0xAF8C, - 30237 - 11905: 0xAF8D, - 30238 - 11905: 0xAF8E, - 30239 - 11905: 0xCEC1, - 30240 - 11905: 0xF1A4, - 30241 - 11905: 0xAF8F, - 30242 - 11905: 0xF1A3, - 30243 - 11905: 0xAF90, - 30244 - 11905: 0xC1F6, - 30245 - 11905: 0xF0FB, - 30246 - 11905: 0xCADD, - 30247 - 11905: 0xAF91, - 30248 - 11905: 0xAF92, - 30249 - 11905: 0xB4F1, - 30250 - 11905: 0xB1F1, - 30251 - 11905: 0xCCB1, - 30252 - 11905: 0xAF93, - 30253 - 11905: 0xF1A6, - 30254 - 11905: 0xAF94, - 30255 - 11905: 0xAF95, - 30256 - 11905: 0xF1A7, - 30257 - 11905: 0xAF96, - 30258 - 11905: 0xAF97, - 30259 - 11905: 0xF1AC, - 30260 - 11905: 0xD5CE, - 30261 - 11905: 0xF1A9, - 30262 - 11905: 0xAF98, - 30263 - 11905: 0xAF99, - 30264 - 11905: 0xC8B3, - 30265 - 11905: 0xAF9A, - 30266 - 11905: 0xAF9B, - 30267 - 11905: 0xAF9C, - 30268 - 11905: 0xF1A2, - 30269 - 11905: 0xAF9D, - 30270 - 11905: 0xF1AB, - 30271 - 11905: 0xF1A8, - 30272 - 11905: 0xF1A5, - 30273 - 11905: 0xAF9E, - 30274 - 11905: 0xAF9F, - 30275 - 11905: 0xF1AA, - 30276 - 11905: 0xAFA0, - 30277 - 11905: 0xB040, - 30278 - 11905: 0xB041, - 30279 - 11905: 0xB042, - 30280 - 11905: 0xB043, - 30281 - 11905: 0xB044, - 30282 - 11905: 0xB045, - 30283 - 11905: 0xB046, - 30284 - 11905: 0xB0A9, - 30285 - 11905: 0xF1AD, - 30286 - 11905: 0xB047, - 30287 - 11905: 0xB048, - 30288 - 11905: 0xB049, - 30289 - 11905: 0xB04A, - 30290 - 11905: 0xB04B, - 30291 - 11905: 0xB04C, - 30292 - 11905: 0xF1AF, - 30293 - 11905: 0xB04D, - 30294 - 11905: 0xF1B1, - 30295 - 11905: 0xB04E, - 30296 - 11905: 0xB04F, - 30297 - 11905: 0xB050, - 30298 - 11905: 0xB051, - 30299 - 11905: 0xB052, - 30300 - 11905: 0xF1B0, - 30301 - 11905: 0xB053, - 30302 - 11905: 0xF1AE, - 30303 - 11905: 0xB054, - 30304 - 11905: 0xB055, - 30305 - 11905: 0xB056, - 30306 - 11905: 0xB057, - 30307 - 11905: 0xD1A2, - 30308 - 11905: 0xB058, - 30309 - 11905: 0xB059, - 30310 - 11905: 0xB05A, - 30311 - 11905: 0xB05B, - 30312 - 11905: 0xB05C, - 30313 - 11905: 0xB05D, - 30314 - 11905: 0xB05E, - 30315 - 11905: 0xF1B2, - 30316 - 11905: 0xB05F, - 30317 - 11905: 0xB060, - 30318 - 11905: 0xB061, - 30319 - 11905: 0xF1B3, - 30320 - 11905: 0xB062, - 30321 - 11905: 0xB063, - 30322 - 11905: 0xB064, - 30323 - 11905: 0xB065, - 30324 - 11905: 0xB066, - 30325 - 11905: 0xB067, - 30326 - 11905: 0xB068, - 30327 - 11905: 0xB069, - 30328 - 11905: 0xB9EF, - 30329 - 11905: 0xB06A, - 30330 - 11905: 0xB06B, - 30331 - 11905: 0xB5C7, - 30332 - 11905: 0xB06C, - 30333 - 11905: 0xB0D7, - 30334 - 11905: 0xB0D9, - 30335 - 11905: 0xB06D, - 30336 - 11905: 0xB06E, - 30337 - 11905: 0xB06F, - 30338 - 11905: 0xD4ED, - 30339 - 11905: 0xB070, - 30340 - 11905: 0xB5C4, - 30341 - 11905: 0xB071, - 30342 - 11905: 0xBDD4, - 30343 - 11905: 0xBBCA, - 30344 - 11905: 0xF0A7, - 30345 - 11905: 0xB072, - 30346 - 11905: 0xB073, - 30347 - 11905: 0xB8DE, - 30348 - 11905: 0xB074, - 30349 - 11905: 0xB075, - 30350 - 11905: 0xF0A8, - 30351 - 11905: 0xB076, - 30352 - 11905: 0xB077, - 30353 - 11905: 0xB0A8, - 30354 - 11905: 0xB078, - 30355 - 11905: 0xF0A9, - 30356 - 11905: 0xB079, - 30357 - 11905: 0xB07A, - 30358 - 11905: 0xCDEE, - 30359 - 11905: 0xB07B, - 30360 - 11905: 0xB07C, - 30361 - 11905: 0xF0AA, - 30362 - 11905: 0xB07D, - 30363 - 11905: 0xB07E, - 30364 - 11905: 0xB080, - 30365 - 11905: 0xB081, - 30366 - 11905: 0xB082, - 30367 - 11905: 0xB083, - 30368 - 11905: 0xB084, - 30369 - 11905: 0xB085, - 30370 - 11905: 0xB086, - 30371 - 11905: 0xB087, - 30372 - 11905: 0xF0AB, - 30373 - 11905: 0xB088, - 30374 - 11905: 0xB089, - 30375 - 11905: 0xB08A, - 30376 - 11905: 0xB08B, - 30377 - 11905: 0xB08C, - 30378 - 11905: 0xB08D, - 30379 - 11905: 0xB08E, - 30380 - 11905: 0xB08F, - 30381 - 11905: 0xB090, - 30382 - 11905: 0xC6A4, - 30383 - 11905: 0xB091, - 30384 - 11905: 0xB092, - 30385 - 11905: 0xD6E5, - 30386 - 11905: 0xF1E4, - 30387 - 11905: 0xB093, - 30388 - 11905: 0xF1E5, - 30389 - 11905: 0xB094, - 30390 - 11905: 0xB095, - 30391 - 11905: 0xB096, - 30392 - 11905: 0xB097, - 30393 - 11905: 0xB098, - 30394 - 11905: 0xB099, - 30395 - 11905: 0xB09A, - 30396 - 11905: 0xB09B, - 30397 - 11905: 0xB09C, - 30398 - 11905: 0xB09D, - 30399 - 11905: 0xC3F3, - 30400 - 11905: 0xB09E, - 30401 - 11905: 0xB09F, - 30402 - 11905: 0xD3DB, - 30403 - 11905: 0xB0A0, - 30404 - 11905: 0xB140, - 30405 - 11905: 0xD6D1, - 30406 - 11905: 0xC5E8, - 30407 - 11905: 0xB141, - 30408 - 11905: 0xD3AF, - 30409 - 11905: 0xB142, - 30410 - 11905: 0xD2E6, - 30411 - 11905: 0xB143, - 30412 - 11905: 0xB144, - 30413 - 11905: 0xEEC1, - 30414 - 11905: 0xB0BB, - 30415 - 11905: 0xD5B5, - 30416 - 11905: 0xD1CE, - 30417 - 11905: 0xBCE0, - 30418 - 11905: 0xBAD0, - 30419 - 11905: 0xB145, - 30420 - 11905: 0xBFF8, - 30421 - 11905: 0xB146, - 30422 - 11905: 0xB8C7, - 30423 - 11905: 0xB5C1, - 30424 - 11905: 0xC5CC, - 30425 - 11905: 0xB147, - 30426 - 11905: 0xB148, - 30427 - 11905: 0xCAA2, - 30428 - 11905: 0xB149, - 30429 - 11905: 0xB14A, - 30430 - 11905: 0xB14B, - 30431 - 11905: 0xC3CB, - 30432 - 11905: 0xB14C, - 30433 - 11905: 0xB14D, - 30434 - 11905: 0xB14E, - 30435 - 11905: 0xB14F, - 30436 - 11905: 0xB150, - 30437 - 11905: 0xEEC2, - 30438 - 11905: 0xB151, - 30439 - 11905: 0xB152, - 30440 - 11905: 0xB153, - 30441 - 11905: 0xB154, - 30442 - 11905: 0xB155, - 30443 - 11905: 0xB156, - 30444 - 11905: 0xB157, - 30445 - 11905: 0xB158, - 30446 - 11905: 0xC4BF, - 30447 - 11905: 0xB6A2, - 30448 - 11905: 0xB159, - 30449 - 11905: 0xEDEC, - 30450 - 11905: 0xC3A4, - 30451 - 11905: 0xB15A, - 30452 - 11905: 0xD6B1, - 30453 - 11905: 0xB15B, - 30454 - 11905: 0xB15C, - 30455 - 11905: 0xB15D, - 30456 - 11905: 0xCFE0, - 30457 - 11905: 0xEDEF, - 30458 - 11905: 0xB15E, - 30459 - 11905: 0xB15F, - 30460 - 11905: 0xC5CE, - 30461 - 11905: 0xB160, - 30462 - 11905: 0xB6DC, - 30463 - 11905: 0xB161, - 30464 - 11905: 0xB162, - 30465 - 11905: 0xCAA1, - 30466 - 11905: 0xB163, - 30467 - 11905: 0xB164, - 30468 - 11905: 0xEDED, - 30469 - 11905: 0xB165, - 30470 - 11905: 0xB166, - 30471 - 11905: 0xEDF0, - 30472 - 11905: 0xEDF1, - 30473 - 11905: 0xC3BC, - 30474 - 11905: 0xB167, - 30475 - 11905: 0xBFB4, - 30476 - 11905: 0xB168, - 30477 - 11905: 0xEDEE, - 30478 - 11905: 0xB169, - 30479 - 11905: 0xB16A, - 30480 - 11905: 0xB16B, - 30481 - 11905: 0xB16C, - 30482 - 11905: 0xB16D, - 30483 - 11905: 0xB16E, - 30484 - 11905: 0xB16F, - 30485 - 11905: 0xB170, - 30486 - 11905: 0xB171, - 30487 - 11905: 0xB172, - 30488 - 11905: 0xB173, - 30489 - 11905: 0xEDF4, - 30490 - 11905: 0xEDF2, - 30491 - 11905: 0xB174, - 30492 - 11905: 0xB175, - 30493 - 11905: 0xB176, - 30494 - 11905: 0xB177, - 30495 - 11905: 0xD5E6, - 30496 - 11905: 0xC3DF, - 30497 - 11905: 0xB178, - 30498 - 11905: 0xEDF3, - 30499 - 11905: 0xB179, - 30500 - 11905: 0xB17A, - 30501 - 11905: 0xB17B, - 30502 - 11905: 0xEDF6, - 30503 - 11905: 0xB17C, - 30504 - 11905: 0xD5A3, - 30505 - 11905: 0xD1A3, - 30506 - 11905: 0xB17D, - 30507 - 11905: 0xB17E, - 30508 - 11905: 0xB180, - 30509 - 11905: 0xEDF5, - 30510 - 11905: 0xB181, - 30511 - 11905: 0xC3D0, - 30512 - 11905: 0xB182, - 30513 - 11905: 0xB183, - 30514 - 11905: 0xB184, - 30515 - 11905: 0xB185, - 30516 - 11905: 0xB186, - 30517 - 11905: 0xEDF7, - 30518 - 11905: 0xBFF4, - 30519 - 11905: 0xBEEC, - 30520 - 11905: 0xEDF8, - 30521 - 11905: 0xB187, - 30522 - 11905: 0xCCF7, - 30523 - 11905: 0xB188, - 30524 - 11905: 0xD1DB, - 30525 - 11905: 0xB189, - 30526 - 11905: 0xB18A, - 30527 - 11905: 0xB18B, - 30528 - 11905: 0xD7C5, - 30529 - 11905: 0xD5F6, - 30530 - 11905: 0xB18C, - 30531 - 11905: 0xEDFC, - 30532 - 11905: 0xB18D, - 30533 - 11905: 0xB18E, - 30534 - 11905: 0xB18F, - 30535 - 11905: 0xEDFB, - 30536 - 11905: 0xB190, - 30537 - 11905: 0xB191, - 30538 - 11905: 0xB192, - 30539 - 11905: 0xB193, - 30540 - 11905: 0xB194, - 30541 - 11905: 0xB195, - 30542 - 11905: 0xB196, - 30543 - 11905: 0xB197, - 30544 - 11905: 0xEDF9, - 30545 - 11905: 0xEDFA, - 30546 - 11905: 0xB198, - 30547 - 11905: 0xB199, - 30548 - 11905: 0xB19A, - 30549 - 11905: 0xB19B, - 30550 - 11905: 0xB19C, - 30551 - 11905: 0xB19D, - 30552 - 11905: 0xB19E, - 30553 - 11905: 0xB19F, - 30554 - 11905: 0xEDFD, - 30555 - 11905: 0xBEA6, - 30556 - 11905: 0xB1A0, - 30557 - 11905: 0xB240, - 30558 - 11905: 0xB241, - 30559 - 11905: 0xB242, - 30560 - 11905: 0xB243, - 30561 - 11905: 0xCBAF, - 30562 - 11905: 0xEEA1, - 30563 - 11905: 0xB6BD, - 30564 - 11905: 0xB244, - 30565 - 11905: 0xEEA2, - 30566 - 11905: 0xC4C0, - 30567 - 11905: 0xB245, - 30568 - 11905: 0xEDFE, - 30569 - 11905: 0xB246, - 30570 - 11905: 0xB247, - 30571 - 11905: 0xBDDE, - 30572 - 11905: 0xB2C7, - 30573 - 11905: 0xB248, - 30574 - 11905: 0xB249, - 30575 - 11905: 0xB24A, - 30576 - 11905: 0xB24B, - 30577 - 11905: 0xB24C, - 30578 - 11905: 0xB24D, - 30579 - 11905: 0xB24E, - 30580 - 11905: 0xB24F, - 30581 - 11905: 0xB250, - 30582 - 11905: 0xB251, - 30583 - 11905: 0xB252, - 30584 - 11905: 0xB253, - 30585 - 11905: 0xB6C3, - 30586 - 11905: 0xB254, - 30587 - 11905: 0xB255, - 30588 - 11905: 0xB256, - 30589 - 11905: 0xEEA5, - 30590 - 11905: 0xD8BA, - 30591 - 11905: 0xEEA3, - 30592 - 11905: 0xEEA6, - 30593 - 11905: 0xB257, - 30594 - 11905: 0xB258, - 30595 - 11905: 0xB259, - 30596 - 11905: 0xC3E9, - 30597 - 11905: 0xB3F2, - 30598 - 11905: 0xB25A, - 30599 - 11905: 0xB25B, - 30600 - 11905: 0xB25C, - 30601 - 11905: 0xB25D, - 30602 - 11905: 0xB25E, - 30603 - 11905: 0xB25F, - 30604 - 11905: 0xEEA7, - 30605 - 11905: 0xEEA4, - 30606 - 11905: 0xCFB9, - 30607 - 11905: 0xB260, - 30608 - 11905: 0xB261, - 30609 - 11905: 0xEEA8, - 30610 - 11905: 0xC2F7, - 30611 - 11905: 0xB262, - 30612 - 11905: 0xB263, - 30613 - 11905: 0xB264, - 30614 - 11905: 0xB265, - 30615 - 11905: 0xB266, - 30616 - 11905: 0xB267, - 30617 - 11905: 0xB268, - 30618 - 11905: 0xB269, - 30619 - 11905: 0xB26A, - 30620 - 11905: 0xB26B, - 30621 - 11905: 0xB26C, - 30622 - 11905: 0xB26D, - 30623 - 11905: 0xEEA9, - 30624 - 11905: 0xEEAA, - 30625 - 11905: 0xB26E, - 30626 - 11905: 0xDEAB, - 30627 - 11905: 0xB26F, - 30628 - 11905: 0xB270, - 30629 - 11905: 0xC6B3, - 30630 - 11905: 0xB271, - 30631 - 11905: 0xC7C6, - 30632 - 11905: 0xB272, - 30633 - 11905: 0xD6F5, - 30634 - 11905: 0xB5C9, - 30635 - 11905: 0xB273, - 30636 - 11905: 0xCBB2, - 30637 - 11905: 0xB274, - 30638 - 11905: 0xB275, - 30639 - 11905: 0xB276, - 30640 - 11905: 0xEEAB, - 30641 - 11905: 0xB277, - 30642 - 11905: 0xB278, - 30643 - 11905: 0xCDAB, - 30644 - 11905: 0xB279, - 30645 - 11905: 0xEEAC, - 30646 - 11905: 0xB27A, - 30647 - 11905: 0xB27B, - 30648 - 11905: 0xB27C, - 30649 - 11905: 0xB27D, - 30650 - 11905: 0xB27E, - 30651 - 11905: 0xD5B0, - 30652 - 11905: 0xB280, - 30653 - 11905: 0xEEAD, - 30654 - 11905: 0xB281, - 30655 - 11905: 0xF6C4, - 30656 - 11905: 0xB282, - 30657 - 11905: 0xB283, - 30658 - 11905: 0xB284, - 30659 - 11905: 0xB285, - 30660 - 11905: 0xB286, - 30661 - 11905: 0xB287, - 30662 - 11905: 0xB288, - 30663 - 11905: 0xB289, - 30664 - 11905: 0xB28A, - 30665 - 11905: 0xB28B, - 30666 - 11905: 0xB28C, - 30667 - 11905: 0xB28D, - 30668 - 11905: 0xB28E, - 30669 - 11905: 0xDBC7, - 30670 - 11905: 0xB28F, - 30671 - 11905: 0xB290, - 30672 - 11905: 0xB291, - 30673 - 11905: 0xB292, - 30674 - 11905: 0xB293, - 30675 - 11905: 0xB294, - 30676 - 11905: 0xB295, - 30677 - 11905: 0xB296, - 30678 - 11905: 0xB297, - 30679 - 11905: 0xB4A3, - 30680 - 11905: 0xB298, - 30681 - 11905: 0xB299, - 30682 - 11905: 0xB29A, - 30683 - 11905: 0xC3AC, - 30684 - 11905: 0xF1E6, - 30685 - 11905: 0xB29B, - 30686 - 11905: 0xB29C, - 30687 - 11905: 0xB29D, - 30688 - 11905: 0xB29E, - 30689 - 11905: 0xB29F, - 30690 - 11905: 0xCAB8, - 30691 - 11905: 0xD2D3, - 30692 - 11905: 0xB2A0, - 30693 - 11905: 0xD6AA, - 30694 - 11905: 0xB340, - 30695 - 11905: 0xEFF2, - 30696 - 11905: 0xB341, - 30697 - 11905: 0xBED8, - 30698 - 11905: 0xB342, - 30699 - 11905: 0xBDC3, - 30700 - 11905: 0xEFF3, - 30701 - 11905: 0xB6CC, - 30702 - 11905: 0xB0AB, - 30703 - 11905: 0xB343, - 30704 - 11905: 0xB344, - 30705 - 11905: 0xB345, - 30706 - 11905: 0xB346, - 30707 - 11905: 0xCAAF, - 30708 - 11905: 0xB347, - 30709 - 11905: 0xB348, - 30710 - 11905: 0xEDB6, - 30711 - 11905: 0xB349, - 30712 - 11905: 0xEDB7, - 30713 - 11905: 0xB34A, - 30714 - 11905: 0xB34B, - 30715 - 11905: 0xB34C, - 30716 - 11905: 0xB34D, - 30717 - 11905: 0xCEF9, - 30718 - 11905: 0xB7AF, - 30719 - 11905: 0xBFF3, - 30720 - 11905: 0xEDB8, - 30721 - 11905: 0xC2EB, - 30722 - 11905: 0xC9B0, - 30723 - 11905: 0xB34E, - 30724 - 11905: 0xB34F, - 30725 - 11905: 0xB350, - 30726 - 11905: 0xB351, - 30727 - 11905: 0xB352, - 30728 - 11905: 0xB353, - 30729 - 11905: 0xEDB9, - 30730 - 11905: 0xB354, - 30731 - 11905: 0xB355, - 30732 - 11905: 0xC6F6, - 30733 - 11905: 0xBFB3, - 30734 - 11905: 0xB356, - 30735 - 11905: 0xB357, - 30736 - 11905: 0xB358, - 30737 - 11905: 0xEDBC, - 30738 - 11905: 0xC5F8, - 30739 - 11905: 0xB359, - 30740 - 11905: 0xD1D0, - 30741 - 11905: 0xB35A, - 30742 - 11905: 0xD7A9, - 30743 - 11905: 0xEDBA, - 30744 - 11905: 0xEDBB, - 30745 - 11905: 0xB35B, - 30746 - 11905: 0xD1E2, - 30747 - 11905: 0xB35C, - 30748 - 11905: 0xEDBF, - 30749 - 11905: 0xEDC0, - 30750 - 11905: 0xB35D, - 30751 - 11905: 0xEDC4, - 30752 - 11905: 0xB35E, - 30753 - 11905: 0xB35F, - 30754 - 11905: 0xB360, - 30755 - 11905: 0xEDC8, - 30756 - 11905: 0xB361, - 30757 - 11905: 0xEDC6, - 30758 - 11905: 0xEDCE, - 30759 - 11905: 0xD5E8, - 30760 - 11905: 0xB362, - 30761 - 11905: 0xEDC9, - 30762 - 11905: 0xB363, - 30763 - 11905: 0xB364, - 30764 - 11905: 0xEDC7, - 30765 - 11905: 0xEDBE, - 30766 - 11905: 0xB365, - 30767 - 11905: 0xB366, - 30768 - 11905: 0xC5E9, - 30769 - 11905: 0xB367, - 30770 - 11905: 0xB368, - 30771 - 11905: 0xB369, - 30772 - 11905: 0xC6C6, - 30773 - 11905: 0xB36A, - 30774 - 11905: 0xB36B, - 30775 - 11905: 0xC9E9, - 30776 - 11905: 0xD4D2, - 30777 - 11905: 0xEDC1, - 30778 - 11905: 0xEDC2, - 30779 - 11905: 0xEDC3, - 30780 - 11905: 0xEDC5, - 30781 - 11905: 0xB36C, - 30782 - 11905: 0xC0F9, - 30783 - 11905: 0xB36D, - 30784 - 11905: 0xB4A1, - 30785 - 11905: 0xB36E, - 30786 - 11905: 0xB36F, - 30787 - 11905: 0xB370, - 30788 - 11905: 0xB371, - 30789 - 11905: 0xB9E8, - 30790 - 11905: 0xB372, - 30791 - 11905: 0xEDD0, - 30792 - 11905: 0xB373, - 30793 - 11905: 0xB374, - 30794 - 11905: 0xB375, - 30795 - 11905: 0xB376, - 30796 - 11905: 0xEDD1, - 30797 - 11905: 0xB377, - 30798 - 11905: 0xEDCA, - 30799 - 11905: 0xB378, - 30800 - 11905: 0xEDCF, - 30801 - 11905: 0xB379, - 30802 - 11905: 0xCEF8, - 30803 - 11905: 0xB37A, - 30804 - 11905: 0xB37B, - 30805 - 11905: 0xCBB6, - 30806 - 11905: 0xEDCC, - 30807 - 11905: 0xEDCD, - 30808 - 11905: 0xB37C, - 30809 - 11905: 0xB37D, - 30810 - 11905: 0xB37E, - 30811 - 11905: 0xB380, - 30812 - 11905: 0xB381, - 30813 - 11905: 0xCFF5, - 30814 - 11905: 0xB382, - 30815 - 11905: 0xB383, - 30816 - 11905: 0xB384, - 30817 - 11905: 0xB385, - 30818 - 11905: 0xB386, - 30819 - 11905: 0xB387, - 30820 - 11905: 0xB388, - 30821 - 11905: 0xB389, - 30822 - 11905: 0xB38A, - 30823 - 11905: 0xB38B, - 30824 - 11905: 0xB38C, - 30825 - 11905: 0xB38D, - 30826 - 11905: 0xEDD2, - 30827 - 11905: 0xC1F2, - 30828 - 11905: 0xD3B2, - 30829 - 11905: 0xEDCB, - 30830 - 11905: 0xC8B7, - 30831 - 11905: 0xB38E, - 30832 - 11905: 0xB38F, - 30833 - 11905: 0xB390, - 30834 - 11905: 0xB391, - 30835 - 11905: 0xB392, - 30836 - 11905: 0xB393, - 30837 - 11905: 0xB394, - 30838 - 11905: 0xB395, - 30839 - 11905: 0xBCEF, - 30840 - 11905: 0xB396, - 30841 - 11905: 0xB397, - 30842 - 11905: 0xB398, - 30843 - 11905: 0xB399, - 30844 - 11905: 0xC5F0, - 30845 - 11905: 0xB39A, - 30846 - 11905: 0xB39B, - 30847 - 11905: 0xB39C, - 30848 - 11905: 0xB39D, - 30849 - 11905: 0xB39E, - 30850 - 11905: 0xB39F, - 30851 - 11905: 0xB3A0, - 30852 - 11905: 0xB440, - 30853 - 11905: 0xB441, - 30854 - 11905: 0xB442, - 30855 - 11905: 0xEDD6, - 30856 - 11905: 0xB443, - 30857 - 11905: 0xB5EF, - 30858 - 11905: 0xB444, - 30859 - 11905: 0xB445, - 30860 - 11905: 0xC2B5, - 30861 - 11905: 0xB0AD, - 30862 - 11905: 0xCBE9, - 30863 - 11905: 0xB446, - 30864 - 11905: 0xB447, - 30865 - 11905: 0xB1AE, - 30866 - 11905: 0xB448, - 30867 - 11905: 0xEDD4, - 30868 - 11905: 0xB449, - 30869 - 11905: 0xB44A, - 30870 - 11905: 0xB44B, - 30871 - 11905: 0xCDEB, - 30872 - 11905: 0xB5E2, - 30873 - 11905: 0xB44C, - 30874 - 11905: 0xEDD5, - 30875 - 11905: 0xEDD3, - 30876 - 11905: 0xEDD7, - 30877 - 11905: 0xB44D, - 30878 - 11905: 0xB44E, - 30879 - 11905: 0xB5FA, - 30880 - 11905: 0xB44F, - 30881 - 11905: 0xEDD8, - 30882 - 11905: 0xB450, - 30883 - 11905: 0xEDD9, - 30884 - 11905: 0xB451, - 30885 - 11905: 0xEDDC, - 30886 - 11905: 0xB452, - 30887 - 11905: 0xB1CC, - 30888 - 11905: 0xB453, - 30889 - 11905: 0xB454, - 30890 - 11905: 0xB455, - 30891 - 11905: 0xB456, - 30892 - 11905: 0xB457, - 30893 - 11905: 0xB458, - 30894 - 11905: 0xB459, - 30895 - 11905: 0xB45A, - 30896 - 11905: 0xC5F6, - 30897 - 11905: 0xBCEE, - 30898 - 11905: 0xEDDA, - 30899 - 11905: 0xCCBC, - 30900 - 11905: 0xB2EA, - 30901 - 11905: 0xB45B, - 30902 - 11905: 0xB45C, - 30903 - 11905: 0xB45D, - 30904 - 11905: 0xB45E, - 30905 - 11905: 0xEDDB, - 30906 - 11905: 0xB45F, - 30907 - 11905: 0xB460, - 30908 - 11905: 0xB461, - 30909 - 11905: 0xB462, - 30910 - 11905: 0xC4EB, - 30911 - 11905: 0xB463, - 30912 - 11905: 0xB464, - 30913 - 11905: 0xB4C5, - 30914 - 11905: 0xB465, - 30915 - 11905: 0xB466, - 30916 - 11905: 0xB467, - 30917 - 11905: 0xB0F5, - 30918 - 11905: 0xB468, - 30919 - 11905: 0xB469, - 30920 - 11905: 0xB46A, - 30921 - 11905: 0xEDDF, - 30922 - 11905: 0xC0DA, - 30923 - 11905: 0xB4E8, - 30924 - 11905: 0xB46B, - 30925 - 11905: 0xB46C, - 30926 - 11905: 0xB46D, - 30927 - 11905: 0xB46E, - 30928 - 11905: 0xC5CD, - 30929 - 11905: 0xB46F, - 30930 - 11905: 0xB470, - 30931 - 11905: 0xB471, - 30932 - 11905: 0xEDDD, - 30933 - 11905: 0xBFC4, - 30934 - 11905: 0xB472, - 30935 - 11905: 0xB473, - 30936 - 11905: 0xB474, - 30937 - 11905: 0xEDDE, - 30938 - 11905: 0xB475, - 30939 - 11905: 0xB476, - 30940 - 11905: 0xB477, - 30941 - 11905: 0xB478, - 30942 - 11905: 0xB479, - 30943 - 11905: 0xB47A, - 30944 - 11905: 0xB47B, - 30945 - 11905: 0xB47C, - 30946 - 11905: 0xB47D, - 30947 - 11905: 0xB47E, - 30948 - 11905: 0xB480, - 30949 - 11905: 0xB481, - 30950 - 11905: 0xB482, - 30951 - 11905: 0xB483, - 30952 - 11905: 0xC4A5, - 30953 - 11905: 0xB484, - 30954 - 11905: 0xB485, - 30955 - 11905: 0xB486, - 30956 - 11905: 0xEDE0, - 30957 - 11905: 0xB487, - 30958 - 11905: 0xB488, - 30959 - 11905: 0xB489, - 30960 - 11905: 0xB48A, - 30961 - 11905: 0xB48B, - 30962 - 11905: 0xEDE1, - 30963 - 11905: 0xB48C, - 30964 - 11905: 0xEDE3, - 30965 - 11905: 0xB48D, - 30966 - 11905: 0xB48E, - 30967 - 11905: 0xC1D7, - 30968 - 11905: 0xB48F, - 30969 - 11905: 0xB490, - 30970 - 11905: 0xBBC7, - 30971 - 11905: 0xB491, - 30972 - 11905: 0xB492, - 30973 - 11905: 0xB493, - 30974 - 11905: 0xB494, - 30975 - 11905: 0xB495, - 30976 - 11905: 0xB496, - 30977 - 11905: 0xBDB8, - 30978 - 11905: 0xB497, - 30979 - 11905: 0xB498, - 30980 - 11905: 0xB499, - 30981 - 11905: 0xEDE2, - 30982 - 11905: 0xB49A, - 30983 - 11905: 0xB49B, - 30984 - 11905: 0xB49C, - 30985 - 11905: 0xB49D, - 30986 - 11905: 0xB49E, - 30987 - 11905: 0xB49F, - 30988 - 11905: 0xB4A0, - 30989 - 11905: 0xB540, - 30990 - 11905: 0xB541, - 30991 - 11905: 0xB542, - 30992 - 11905: 0xB543, - 30993 - 11905: 0xB544, - 30994 - 11905: 0xB545, - 30995 - 11905: 0xEDE4, - 30996 - 11905: 0xB546, - 30997 - 11905: 0xB547, - 30998 - 11905: 0xB548, - 30999 - 11905: 0xB549, - 31000 - 11905: 0xB54A, - 31001 - 11905: 0xB54B, - 31002 - 11905: 0xB54C, - 31003 - 11905: 0xB54D, - 31004 - 11905: 0xB54E, - 31005 - 11905: 0xB54F, - 31006 - 11905: 0xEDE6, - 31007 - 11905: 0xB550, - 31008 - 11905: 0xB551, - 31009 - 11905: 0xB552, - 31010 - 11905: 0xB553, - 31011 - 11905: 0xB554, - 31012 - 11905: 0xEDE5, - 31013 - 11905: 0xB555, - 31014 - 11905: 0xB556, - 31015 - 11905: 0xB557, - 31016 - 11905: 0xB558, - 31017 - 11905: 0xB559, - 31018 - 11905: 0xB55A, - 31019 - 11905: 0xB55B, - 31020 - 11905: 0xB55C, - 31021 - 11905: 0xB55D, - 31022 - 11905: 0xB55E, - 31023 - 11905: 0xB55F, - 31024 - 11905: 0xB560, - 31025 - 11905: 0xB561, - 31026 - 11905: 0xB562, - 31027 - 11905: 0xB563, - 31028 - 11905: 0xEDE7, - 31029 - 11905: 0xB564, - 31030 - 11905: 0xB565, - 31031 - 11905: 0xB566, - 31032 - 11905: 0xB567, - 31033 - 11905: 0xB568, - 31034 - 11905: 0xCABE, - 31035 - 11905: 0xECEA, - 31036 - 11905: 0xC0F1, - 31037 - 11905: 0xB569, - 31038 - 11905: 0xC9E7, - 31039 - 11905: 0xB56A, - 31040 - 11905: 0xECEB, - 31041 - 11905: 0xC6EE, - 31042 - 11905: 0xB56B, - 31043 - 11905: 0xB56C, - 31044 - 11905: 0xB56D, - 31045 - 11905: 0xB56E, - 31046 - 11905: 0xECEC, - 31047 - 11905: 0xB56F, - 31048 - 11905: 0xC6ED, - 31049 - 11905: 0xECED, - 31050 - 11905: 0xB570, - 31051 - 11905: 0xB571, - 31052 - 11905: 0xB572, - 31053 - 11905: 0xB573, - 31054 - 11905: 0xB574, - 31055 - 11905: 0xB575, - 31056 - 11905: 0xB576, - 31057 - 11905: 0xB577, - 31058 - 11905: 0xB578, - 31059 - 11905: 0xECF0, - 31060 - 11905: 0xB579, - 31061 - 11905: 0xB57A, - 31062 - 11905: 0xD7E6, - 31063 - 11905: 0xECF3, - 31064 - 11905: 0xB57B, - 31065 - 11905: 0xB57C, - 31066 - 11905: 0xECF1, - 31067 - 11905: 0xECEE, - 31068 - 11905: 0xECEF, - 31069 - 11905: 0xD7A3, - 31070 - 11905: 0xC9F1, - 31071 - 11905: 0xCBEE, - 31072 - 11905: 0xECF4, - 31073 - 11905: 0xB57D, - 31074 - 11905: 0xECF2, - 31075 - 11905: 0xB57E, - 31076 - 11905: 0xB580, - 31077 - 11905: 0xCFE9, - 31078 - 11905: 0xB581, - 31079 - 11905: 0xECF6, - 31080 - 11905: 0xC6B1, - 31081 - 11905: 0xB582, - 31082 - 11905: 0xB583, - 31083 - 11905: 0xB584, - 31084 - 11905: 0xB585, - 31085 - 11905: 0xBCC0, - 31086 - 11905: 0xB586, - 31087 - 11905: 0xECF5, - 31088 - 11905: 0xB587, - 31089 - 11905: 0xB588, - 31090 - 11905: 0xB589, - 31091 - 11905: 0xB58A, - 31092 - 11905: 0xB58B, - 31093 - 11905: 0xB58C, - 31094 - 11905: 0xB58D, - 31095 - 11905: 0xB5BB, - 31096 - 11905: 0xBBF6, - 31097 - 11905: 0xB58E, - 31098 - 11905: 0xECF7, - 31099 - 11905: 0xB58F, - 31100 - 11905: 0xB590, - 31101 - 11905: 0xB591, - 31102 - 11905: 0xB592, - 31103 - 11905: 0xB593, - 31104 - 11905: 0xD9F7, - 31105 - 11905: 0xBDFB, - 31106 - 11905: 0xB594, - 31107 - 11905: 0xB595, - 31108 - 11905: 0xC2BB, - 31109 - 11905: 0xECF8, - 31110 - 11905: 0xB596, - 31111 - 11905: 0xB597, - 31112 - 11905: 0xB598, - 31113 - 11905: 0xB599, - 31114 - 11905: 0xECF9, - 31115 - 11905: 0xB59A, - 31116 - 11905: 0xB59B, - 31117 - 11905: 0xB59C, - 31118 - 11905: 0xB59D, - 31119 - 11905: 0xB8A3, - 31120 - 11905: 0xB59E, - 31121 - 11905: 0xB59F, - 31122 - 11905: 0xB5A0, - 31123 - 11905: 0xB640, - 31124 - 11905: 0xB641, - 31125 - 11905: 0xB642, - 31126 - 11905: 0xB643, - 31127 - 11905: 0xB644, - 31128 - 11905: 0xB645, - 31129 - 11905: 0xB646, - 31130 - 11905: 0xECFA, - 31131 - 11905: 0xB647, - 31132 - 11905: 0xB648, - 31133 - 11905: 0xB649, - 31134 - 11905: 0xB64A, - 31135 - 11905: 0xB64B, - 31136 - 11905: 0xB64C, - 31137 - 11905: 0xB64D, - 31138 - 11905: 0xB64E, - 31139 - 11905: 0xB64F, - 31140 - 11905: 0xB650, - 31141 - 11905: 0xB651, - 31142 - 11905: 0xB652, - 31143 - 11905: 0xECFB, - 31144 - 11905: 0xB653, - 31145 - 11905: 0xB654, - 31146 - 11905: 0xB655, - 31147 - 11905: 0xB656, - 31148 - 11905: 0xB657, - 31149 - 11905: 0xB658, - 31150 - 11905: 0xB659, - 31151 - 11905: 0xB65A, - 31152 - 11905: 0xB65B, - 31153 - 11905: 0xB65C, - 31154 - 11905: 0xB65D, - 31155 - 11905: 0xECFC, - 31156 - 11905: 0xB65E, - 31157 - 11905: 0xB65F, - 31158 - 11905: 0xB660, - 31159 - 11905: 0xB661, - 31160 - 11905: 0xB662, - 31161 - 11905: 0xD3ED, - 31162 - 11905: 0xD8AE, - 31163 - 11905: 0xC0EB, - 31164 - 11905: 0xB663, - 31165 - 11905: 0xC7DD, - 31166 - 11905: 0xBACC, - 31167 - 11905: 0xB664, - 31168 - 11905: 0xD0E3, - 31169 - 11905: 0xCBBD, - 31170 - 11905: 0xB665, - 31171 - 11905: 0xCDBA, - 31172 - 11905: 0xB666, - 31173 - 11905: 0xB667, - 31174 - 11905: 0xB8D1, - 31175 - 11905: 0xB668, - 31176 - 11905: 0xB669, - 31177 - 11905: 0xB1FC, - 31178 - 11905: 0xB66A, - 31179 - 11905: 0xC7EF, - 31180 - 11905: 0xB66B, - 31181 - 11905: 0xD6D6, - 31182 - 11905: 0xB66C, - 31183 - 11905: 0xB66D, - 31184 - 11905: 0xB66E, - 31185 - 11905: 0xBFC6, - 31186 - 11905: 0xC3EB, - 31187 - 11905: 0xB66F, - 31188 - 11905: 0xB670, - 31189 - 11905: 0xEFF5, - 31190 - 11905: 0xB671, - 31191 - 11905: 0xB672, - 31192 - 11905: 0xC3D8, - 31193 - 11905: 0xB673, - 31194 - 11905: 0xB674, - 31195 - 11905: 0xB675, - 31196 - 11905: 0xB676, - 31197 - 11905: 0xB677, - 31198 - 11905: 0xB678, - 31199 - 11905: 0xD7E2, - 31200 - 11905: 0xB679, - 31201 - 11905: 0xB67A, - 31202 - 11905: 0xB67B, - 31203 - 11905: 0xEFF7, - 31204 - 11905: 0xB3D3, - 31205 - 11905: 0xB67C, - 31206 - 11905: 0xC7D8, - 31207 - 11905: 0xD1ED, - 31208 - 11905: 0xB67D, - 31209 - 11905: 0xD6C8, - 31210 - 11905: 0xB67E, - 31211 - 11905: 0xEFF8, - 31212 - 11905: 0xB680, - 31213 - 11905: 0xEFF6, - 31214 - 11905: 0xB681, - 31215 - 11905: 0xBBFD, - 31216 - 11905: 0xB3C6, - 31217 - 11905: 0xB682, - 31218 - 11905: 0xB683, - 31219 - 11905: 0xB684, - 31220 - 11905: 0xB685, - 31221 - 11905: 0xB686, - 31222 - 11905: 0xB687, - 31223 - 11905: 0xB688, - 31224 - 11905: 0xBDD5, - 31225 - 11905: 0xB689, - 31226 - 11905: 0xB68A, - 31227 - 11905: 0xD2C6, - 31228 - 11905: 0xB68B, - 31229 - 11905: 0xBBE0, - 31230 - 11905: 0xB68C, - 31231 - 11905: 0xB68D, - 31232 - 11905: 0xCFA1, - 31233 - 11905: 0xB68E, - 31234 - 11905: 0xEFFC, - 31235 - 11905: 0xEFFB, - 31236 - 11905: 0xB68F, - 31237 - 11905: 0xB690, - 31238 - 11905: 0xEFF9, - 31239 - 11905: 0xB691, - 31240 - 11905: 0xB692, - 31241 - 11905: 0xB693, - 31242 - 11905: 0xB694, - 31243 - 11905: 0xB3CC, - 31244 - 11905: 0xB695, - 31245 - 11905: 0xC9D4, - 31246 - 11905: 0xCBB0, - 31247 - 11905: 0xB696, - 31248 - 11905: 0xB697, - 31249 - 11905: 0xB698, - 31250 - 11905: 0xB699, - 31251 - 11905: 0xB69A, - 31252 - 11905: 0xEFFE, - 31253 - 11905: 0xB69B, - 31254 - 11905: 0xB69C, - 31255 - 11905: 0xB0DE, - 31256 - 11905: 0xB69D, - 31257 - 11905: 0xB69E, - 31258 - 11905: 0xD6C9, - 31259 - 11905: 0xB69F, - 31260 - 11905: 0xB6A0, - 31261 - 11905: 0xB740, - 31262 - 11905: 0xEFFD, - 31263 - 11905: 0xB741, - 31264 - 11905: 0xB3ED, - 31265 - 11905: 0xB742, - 31266 - 11905: 0xB743, - 31267 - 11905: 0xF6D5, - 31268 - 11905: 0xB744, - 31269 - 11905: 0xB745, - 31270 - 11905: 0xB746, - 31271 - 11905: 0xB747, - 31272 - 11905: 0xB748, - 31273 - 11905: 0xB749, - 31274 - 11905: 0xB74A, - 31275 - 11905: 0xB74B, - 31276 - 11905: 0xB74C, - 31277 - 11905: 0xB74D, - 31278 - 11905: 0xB74E, - 31279 - 11905: 0xB74F, - 31280 - 11905: 0xB750, - 31281 - 11905: 0xB751, - 31282 - 11905: 0xB752, - 31283 - 11905: 0xCEC8, - 31284 - 11905: 0xB753, - 31285 - 11905: 0xB754, - 31286 - 11905: 0xB755, - 31287 - 11905: 0xF0A2, - 31288 - 11905: 0xB756, - 31289 - 11905: 0xF0A1, - 31290 - 11905: 0xB757, - 31291 - 11905: 0xB5BE, - 31292 - 11905: 0xBCDA, - 31293 - 11905: 0xBBFC, - 31294 - 11905: 0xB758, - 31295 - 11905: 0xB8E5, - 31296 - 11905: 0xB759, - 31297 - 11905: 0xB75A, - 31298 - 11905: 0xB75B, - 31299 - 11905: 0xB75C, - 31300 - 11905: 0xB75D, - 31301 - 11905: 0xB75E, - 31302 - 11905: 0xC4C2, - 31303 - 11905: 0xB75F, - 31304 - 11905: 0xB760, - 31305 - 11905: 0xB761, - 31306 - 11905: 0xB762, - 31307 - 11905: 0xB763, - 31308 - 11905: 0xB764, - 31309 - 11905: 0xB765, - 31310 - 11905: 0xB766, - 31311 - 11905: 0xB767, - 31312 - 11905: 0xB768, - 31313 - 11905: 0xF0A3, - 31314 - 11905: 0xB769, - 31315 - 11905: 0xB76A, - 31316 - 11905: 0xB76B, - 31317 - 11905: 0xB76C, - 31318 - 11905: 0xB76D, - 31319 - 11905: 0xCBEB, - 31320 - 11905: 0xB76E, - 31321 - 11905: 0xB76F, - 31322 - 11905: 0xB770, - 31323 - 11905: 0xB771, - 31324 - 11905: 0xB772, - 31325 - 11905: 0xB773, - 31326 - 11905: 0xB774, - 31327 - 11905: 0xB775, - 31328 - 11905: 0xB776, - 31329 - 11905: 0xB777, - 31330 - 11905: 0xB778, - 31331 - 11905: 0xB779, - 31332 - 11905: 0xB77A, - 31333 - 11905: 0xB77B, - 31334 - 11905: 0xB77C, - 31335 - 11905: 0xB77D, - 31336 - 11905: 0xB77E, - 31337 - 11905: 0xB780, - 31338 - 11905: 0xB781, - 31339 - 11905: 0xB782, - 31340 - 11905: 0xB783, - 31341 - 11905: 0xB784, - 31342 - 11905: 0xB785, - 31343 - 11905: 0xB786, - 31344 - 11905: 0xF0A6, - 31345 - 11905: 0xB787, - 31346 - 11905: 0xB788, - 31347 - 11905: 0xB789, - 31348 - 11905: 0xD1A8, - 31349 - 11905: 0xB78A, - 31350 - 11905: 0xBEBF, - 31351 - 11905: 0xC7EE, - 31352 - 11905: 0xF1B6, - 31353 - 11905: 0xF1B7, - 31354 - 11905: 0xBFD5, - 31355 - 11905: 0xB78B, - 31356 - 11905: 0xB78C, - 31357 - 11905: 0xB78D, - 31358 - 11905: 0xB78E, - 31359 - 11905: 0xB4A9, - 31360 - 11905: 0xF1B8, - 31361 - 11905: 0xCDBB, - 31362 - 11905: 0xB78F, - 31363 - 11905: 0xC7D4, - 31364 - 11905: 0xD5AD, - 31365 - 11905: 0xB790, - 31366 - 11905: 0xF1B9, - 31367 - 11905: 0xB791, - 31368 - 11905: 0xF1BA, - 31369 - 11905: 0xB792, - 31370 - 11905: 0xB793, - 31371 - 11905: 0xB794, - 31372 - 11905: 0xB795, - 31373 - 11905: 0xC7CF, - 31374 - 11905: 0xB796, - 31375 - 11905: 0xB797, - 31376 - 11905: 0xB798, - 31377 - 11905: 0xD2A4, - 31378 - 11905: 0xD6CF, - 31379 - 11905: 0xB799, - 31380 - 11905: 0xB79A, - 31381 - 11905: 0xF1BB, - 31382 - 11905: 0xBDD1, - 31383 - 11905: 0xB4B0, - 31384 - 11905: 0xBEBD, - 31385 - 11905: 0xB79B, - 31386 - 11905: 0xB79C, - 31387 - 11905: 0xB79D, - 31388 - 11905: 0xB4DC, - 31389 - 11905: 0xCED1, - 31390 - 11905: 0xB79E, - 31391 - 11905: 0xBFDF, - 31392 - 11905: 0xF1BD, - 31393 - 11905: 0xB79F, - 31394 - 11905: 0xB7A0, - 31395 - 11905: 0xB840, - 31396 - 11905: 0xB841, - 31397 - 11905: 0xBFFA, - 31398 - 11905: 0xF1BC, - 31399 - 11905: 0xB842, - 31400 - 11905: 0xF1BF, - 31401 - 11905: 0xB843, - 31402 - 11905: 0xB844, - 31403 - 11905: 0xB845, - 31404 - 11905: 0xF1BE, - 31405 - 11905: 0xF1C0, - 31406 - 11905: 0xB846, - 31407 - 11905: 0xB847, - 31408 - 11905: 0xB848, - 31409 - 11905: 0xB849, - 31410 - 11905: 0xB84A, - 31411 - 11905: 0xF1C1, - 31412 - 11905: 0xB84B, - 31413 - 11905: 0xB84C, - 31414 - 11905: 0xB84D, - 31415 - 11905: 0xB84E, - 31416 - 11905: 0xB84F, - 31417 - 11905: 0xB850, - 31418 - 11905: 0xB851, - 31419 - 11905: 0xB852, - 31420 - 11905: 0xB853, - 31421 - 11905: 0xB854, - 31422 - 11905: 0xB855, - 31423 - 11905: 0xC1FE, - 31424 - 11905: 0xB856, - 31425 - 11905: 0xB857, - 31426 - 11905: 0xB858, - 31427 - 11905: 0xB859, - 31428 - 11905: 0xB85A, - 31429 - 11905: 0xB85B, - 31430 - 11905: 0xB85C, - 31431 - 11905: 0xB85D, - 31432 - 11905: 0xB85E, - 31433 - 11905: 0xB85F, - 31434 - 11905: 0xB860, - 31435 - 11905: 0xC1A2, - 31436 - 11905: 0xB861, - 31437 - 11905: 0xB862, - 31438 - 11905: 0xB863, - 31439 - 11905: 0xB864, - 31440 - 11905: 0xB865, - 31441 - 11905: 0xB866, - 31442 - 11905: 0xB867, - 31443 - 11905: 0xB868, - 31444 - 11905: 0xB869, - 31445 - 11905: 0xB86A, - 31446 - 11905: 0xCAFA, - 31447 - 11905: 0xB86B, - 31448 - 11905: 0xB86C, - 31449 - 11905: 0xD5BE, - 31450 - 11905: 0xB86D, - 31451 - 11905: 0xB86E, - 31452 - 11905: 0xB86F, - 31453 - 11905: 0xB870, - 31454 - 11905: 0xBEBA, - 31455 - 11905: 0xBEB9, - 31456 - 11905: 0xD5C2, - 31457 - 11905: 0xB871, - 31458 - 11905: 0xB872, - 31459 - 11905: 0xBFA2, - 31460 - 11905: 0xB873, - 31461 - 11905: 0xCDAF, - 31462 - 11905: 0xF1B5, - 31463 - 11905: 0xB874, - 31464 - 11905: 0xB875, - 31465 - 11905: 0xB876, - 31466 - 11905: 0xB877, - 31467 - 11905: 0xB878, - 31468 - 11905: 0xB879, - 31469 - 11905: 0xBDDF, - 31470 - 11905: 0xB87A, - 31471 - 11905: 0xB6CB, - 31472 - 11905: 0xB87B, - 31473 - 11905: 0xB87C, - 31474 - 11905: 0xB87D, - 31475 - 11905: 0xB87E, - 31476 - 11905: 0xB880, - 31477 - 11905: 0xB881, - 31478 - 11905: 0xB882, - 31479 - 11905: 0xB883, - 31480 - 11905: 0xB884, - 31481 - 11905: 0xD6F1, - 31482 - 11905: 0xF3C3, - 31483 - 11905: 0xB885, - 31484 - 11905: 0xB886, - 31485 - 11905: 0xF3C4, - 31486 - 11905: 0xB887, - 31487 - 11905: 0xB8CD, - 31488 - 11905: 0xB888, - 31489 - 11905: 0xB889, - 31490 - 11905: 0xB88A, - 31491 - 11905: 0xF3C6, - 31492 - 11905: 0xF3C7, - 31493 - 11905: 0xB88B, - 31494 - 11905: 0xB0CA, - 31495 - 11905: 0xB88C, - 31496 - 11905: 0xF3C5, - 31497 - 11905: 0xB88D, - 31498 - 11905: 0xF3C9, - 31499 - 11905: 0xCBF1, - 31500 - 11905: 0xB88E, - 31501 - 11905: 0xB88F, - 31502 - 11905: 0xB890, - 31503 - 11905: 0xF3CB, - 31504 - 11905: 0xB891, - 31505 - 11905: 0xD0A6, - 31506 - 11905: 0xB892, - 31507 - 11905: 0xB893, - 31508 - 11905: 0xB1CA, - 31509 - 11905: 0xF3C8, - 31510 - 11905: 0xB894, - 31511 - 11905: 0xB895, - 31512 - 11905: 0xB896, - 31513 - 11905: 0xF3CF, - 31514 - 11905: 0xB897, - 31515 - 11905: 0xB5D1, - 31516 - 11905: 0xB898, - 31517 - 11905: 0xB899, - 31518 - 11905: 0xF3D7, - 31519 - 11905: 0xB89A, - 31520 - 11905: 0xF3D2, - 31521 - 11905: 0xB89B, - 31522 - 11905: 0xB89C, - 31523 - 11905: 0xB89D, - 31524 - 11905: 0xF3D4, - 31525 - 11905: 0xF3D3, - 31526 - 11905: 0xB7FB, - 31527 - 11905: 0xB89E, - 31528 - 11905: 0xB1BF, - 31529 - 11905: 0xB89F, - 31530 - 11905: 0xF3CE, - 31531 - 11905: 0xF3CA, - 31532 - 11905: 0xB5DA, - 31533 - 11905: 0xB8A0, - 31534 - 11905: 0xF3D0, - 31535 - 11905: 0xB940, - 31536 - 11905: 0xB941, - 31537 - 11905: 0xF3D1, - 31538 - 11905: 0xB942, - 31539 - 11905: 0xF3D5, - 31540 - 11905: 0xB943, - 31541 - 11905: 0xB944, - 31542 - 11905: 0xB945, - 31543 - 11905: 0xB946, - 31544 - 11905: 0xF3CD, - 31545 - 11905: 0xB947, - 31546 - 11905: 0xBCE3, - 31547 - 11905: 0xB948, - 31548 - 11905: 0xC1FD, - 31549 - 11905: 0xB949, - 31550 - 11905: 0xF3D6, - 31551 - 11905: 0xB94A, - 31552 - 11905: 0xB94B, - 31553 - 11905: 0xB94C, - 31554 - 11905: 0xB94D, - 31555 - 11905: 0xB94E, - 31556 - 11905: 0xB94F, - 31557 - 11905: 0xF3DA, - 31558 - 11905: 0xB950, - 31559 - 11905: 0xF3CC, - 31560 - 11905: 0xB951, - 31561 - 11905: 0xB5C8, - 31562 - 11905: 0xB952, - 31563 - 11905: 0xBDEE, - 31564 - 11905: 0xF3DC, - 31565 - 11905: 0xB953, - 31566 - 11905: 0xB954, - 31567 - 11905: 0xB7A4, - 31568 - 11905: 0xBFF0, - 31569 - 11905: 0xD6FE, - 31570 - 11905: 0xCDB2, - 31571 - 11905: 0xB955, - 31572 - 11905: 0xB4F0, - 31573 - 11905: 0xB956, - 31574 - 11905: 0xB2DF, - 31575 - 11905: 0xB957, - 31576 - 11905: 0xF3D8, - 31577 - 11905: 0xB958, - 31578 - 11905: 0xF3D9, - 31579 - 11905: 0xC9B8, - 31580 - 11905: 0xB959, - 31581 - 11905: 0xF3DD, - 31582 - 11905: 0xB95A, - 31583 - 11905: 0xB95B, - 31584 - 11905: 0xF3DE, - 31585 - 11905: 0xB95C, - 31586 - 11905: 0xF3E1, - 31587 - 11905: 0xB95D, - 31588 - 11905: 0xB95E, - 31589 - 11905: 0xB95F, - 31590 - 11905: 0xB960, - 31591 - 11905: 0xB961, - 31592 - 11905: 0xB962, - 31593 - 11905: 0xB963, - 31594 - 11905: 0xB964, - 31595 - 11905: 0xB965, - 31596 - 11905: 0xB966, - 31597 - 11905: 0xB967, - 31598 - 11905: 0xF3DF, - 31599 - 11905: 0xB968, - 31600 - 11905: 0xB969, - 31601 - 11905: 0xF3E3, - 31602 - 11905: 0xF3E2, - 31603 - 11905: 0xB96A, - 31604 - 11905: 0xB96B, - 31605 - 11905: 0xF3DB, - 31606 - 11905: 0xB96C, - 31607 - 11905: 0xBFEA, - 31608 - 11905: 0xB96D, - 31609 - 11905: 0xB3EF, - 31610 - 11905: 0xB96E, - 31611 - 11905: 0xF3E0, - 31612 - 11905: 0xB96F, - 31613 - 11905: 0xB970, - 31614 - 11905: 0xC7A9, - 31615 - 11905: 0xB971, - 31616 - 11905: 0xBCF2, - 31617 - 11905: 0xB972, - 31618 - 11905: 0xB973, - 31619 - 11905: 0xB974, - 31620 - 11905: 0xB975, - 31621 - 11905: 0xF3EB, - 31622 - 11905: 0xB976, - 31623 - 11905: 0xB977, - 31624 - 11905: 0xB978, - 31625 - 11905: 0xB979, - 31626 - 11905: 0xB97A, - 31627 - 11905: 0xB97B, - 31628 - 11905: 0xB97C, - 31629 - 11905: 0xB9BF, - 31630 - 11905: 0xB97D, - 31631 - 11905: 0xB97E, - 31632 - 11905: 0xF3E4, - 31633 - 11905: 0xB980, - 31634 - 11905: 0xB981, - 31635 - 11905: 0xB982, - 31636 - 11905: 0xB2AD, - 31637 - 11905: 0xBBFE, - 31638 - 11905: 0xB983, - 31639 - 11905: 0xCBE3, - 31640 - 11905: 0xB984, - 31641 - 11905: 0xB985, - 31642 - 11905: 0xB986, - 31643 - 11905: 0xB987, - 31644 - 11905: 0xF3ED, - 31645 - 11905: 0xF3E9, - 31646 - 11905: 0xB988, - 31647 - 11905: 0xB989, - 31648 - 11905: 0xB98A, - 31649 - 11905: 0xB9DC, - 31650 - 11905: 0xF3EE, - 31651 - 11905: 0xB98B, - 31652 - 11905: 0xB98C, - 31653 - 11905: 0xB98D, - 31654 - 11905: 0xF3E5, - 31655 - 11905: 0xF3E6, - 31656 - 11905: 0xF3EA, - 31657 - 11905: 0xC2E1, - 31658 - 11905: 0xF3EC, - 31659 - 11905: 0xF3EF, - 31660 - 11905: 0xF3E8, - 31661 - 11905: 0xBCFD, - 31662 - 11905: 0xB98E, - 31663 - 11905: 0xB98F, - 31664 - 11905: 0xB990, - 31665 - 11905: 0xCFE4, - 31666 - 11905: 0xB991, - 31667 - 11905: 0xB992, - 31668 - 11905: 0xF3F0, - 31669 - 11905: 0xB993, - 31670 - 11905: 0xB994, - 31671 - 11905: 0xB995, - 31672 - 11905: 0xF3E7, - 31673 - 11905: 0xB996, - 31674 - 11905: 0xB997, - 31675 - 11905: 0xB998, - 31676 - 11905: 0xB999, - 31677 - 11905: 0xB99A, - 31678 - 11905: 0xB99B, - 31679 - 11905: 0xB99C, - 31680 - 11905: 0xB99D, - 31681 - 11905: 0xF3F2, - 31682 - 11905: 0xB99E, - 31683 - 11905: 0xB99F, - 31684 - 11905: 0xB9A0, - 31685 - 11905: 0xBA40, - 31686 - 11905: 0xD7AD, - 31687 - 11905: 0xC6AA, - 31688 - 11905: 0xBA41, - 31689 - 11905: 0xBA42, - 31690 - 11905: 0xBA43, - 31691 - 11905: 0xBA44, - 31692 - 11905: 0xF3F3, - 31693 - 11905: 0xBA45, - 31694 - 11905: 0xBA46, - 31695 - 11905: 0xBA47, - 31696 - 11905: 0xBA48, - 31697 - 11905: 0xF3F1, - 31698 - 11905: 0xBA49, - 31699 - 11905: 0xC2A8, - 31700 - 11905: 0xBA4A, - 31701 - 11905: 0xBA4B, - 31702 - 11905: 0xBA4C, - 31703 - 11905: 0xBA4D, - 31704 - 11905: 0xBA4E, - 31705 - 11905: 0xB8DD, - 31706 - 11905: 0xF3F5, - 31707 - 11905: 0xBA4F, - 31708 - 11905: 0xBA50, - 31709 - 11905: 0xF3F4, - 31710 - 11905: 0xBA51, - 31711 - 11905: 0xBA52, - 31712 - 11905: 0xBA53, - 31713 - 11905: 0xB4DB, - 31714 - 11905: 0xBA54, - 31715 - 11905: 0xBA55, - 31716 - 11905: 0xBA56, - 31717 - 11905: 0xF3F6, - 31718 - 11905: 0xF3F7, - 31719 - 11905: 0xBA57, - 31720 - 11905: 0xBA58, - 31721 - 11905: 0xBA59, - 31722 - 11905: 0xF3F8, - 31723 - 11905: 0xBA5A, - 31724 - 11905: 0xBA5B, - 31725 - 11905: 0xBA5C, - 31726 - 11905: 0xC0BA, - 31727 - 11905: 0xBA5D, - 31728 - 11905: 0xBA5E, - 31729 - 11905: 0xC0E9, - 31730 - 11905: 0xBA5F, - 31731 - 11905: 0xBA60, - 31732 - 11905: 0xBA61, - 31733 - 11905: 0xBA62, - 31734 - 11905: 0xBA63, - 31735 - 11905: 0xC5F1, - 31736 - 11905: 0xBA64, - 31737 - 11905: 0xBA65, - 31738 - 11905: 0xBA66, - 31739 - 11905: 0xBA67, - 31740 - 11905: 0xF3FB, - 31741 - 11905: 0xBA68, - 31742 - 11905: 0xF3FA, - 31743 - 11905: 0xBA69, - 31744 - 11905: 0xBA6A, - 31745 - 11905: 0xBA6B, - 31746 - 11905: 0xBA6C, - 31747 - 11905: 0xBA6D, - 31748 - 11905: 0xBA6E, - 31749 - 11905: 0xBA6F, - 31750 - 11905: 0xBA70, - 31751 - 11905: 0xB4D8, - 31752 - 11905: 0xBA71, - 31753 - 11905: 0xBA72, - 31754 - 11905: 0xBA73, - 31755 - 11905: 0xF3FE, - 31756 - 11905: 0xF3F9, - 31757 - 11905: 0xBA74, - 31758 - 11905: 0xBA75, - 31759 - 11905: 0xF3FC, - 31760 - 11905: 0xBA76, - 31761 - 11905: 0xBA77, - 31762 - 11905: 0xBA78, - 31763 - 11905: 0xBA79, - 31764 - 11905: 0xBA7A, - 31765 - 11905: 0xBA7B, - 31766 - 11905: 0xF3FD, - 31767 - 11905: 0xBA7C, - 31768 - 11905: 0xBA7D, - 31769 - 11905: 0xBA7E, - 31770 - 11905: 0xBA80, - 31771 - 11905: 0xBA81, - 31772 - 11905: 0xBA82, - 31773 - 11905: 0xBA83, - 31774 - 11905: 0xBA84, - 31775 - 11905: 0xF4A1, - 31776 - 11905: 0xBA85, - 31777 - 11905: 0xBA86, - 31778 - 11905: 0xBA87, - 31779 - 11905: 0xBA88, - 31780 - 11905: 0xBA89, - 31781 - 11905: 0xBA8A, - 31782 - 11905: 0xF4A3, - 31783 - 11905: 0xBBC9, - 31784 - 11905: 0xBA8B, - 31785 - 11905: 0xBA8C, - 31786 - 11905: 0xF4A2, - 31787 - 11905: 0xBA8D, - 31788 - 11905: 0xBA8E, - 31789 - 11905: 0xBA8F, - 31790 - 11905: 0xBA90, - 31791 - 11905: 0xBA91, - 31792 - 11905: 0xBA92, - 31793 - 11905: 0xBA93, - 31794 - 11905: 0xBA94, - 31795 - 11905: 0xBA95, - 31796 - 11905: 0xBA96, - 31797 - 11905: 0xBA97, - 31798 - 11905: 0xBA98, - 31799 - 11905: 0xBA99, - 31800 - 11905: 0xF4A4, - 31801 - 11905: 0xBA9A, - 31802 - 11905: 0xBA9B, - 31803 - 11905: 0xBA9C, - 31804 - 11905: 0xBA9D, - 31805 - 11905: 0xBA9E, - 31806 - 11905: 0xBA9F, - 31807 - 11905: 0xB2BE, - 31808 - 11905: 0xF4A6, - 31809 - 11905: 0xF4A5, - 31810 - 11905: 0xBAA0, - 31811 - 11905: 0xBB40, - 31812 - 11905: 0xBB41, - 31813 - 11905: 0xBB42, - 31814 - 11905: 0xBB43, - 31815 - 11905: 0xBB44, - 31816 - 11905: 0xBB45, - 31817 - 11905: 0xBB46, - 31818 - 11905: 0xBB47, - 31819 - 11905: 0xBB48, - 31820 - 11905: 0xBB49, - 31821 - 11905: 0xBCAE, - 31822 - 11905: 0xBB4A, - 31823 - 11905: 0xBB4B, - 31824 - 11905: 0xBB4C, - 31825 - 11905: 0xBB4D, - 31826 - 11905: 0xBB4E, - 31827 - 11905: 0xBB4F, - 31828 - 11905: 0xBB50, - 31829 - 11905: 0xBB51, - 31830 - 11905: 0xBB52, - 31831 - 11905: 0xBB53, - 31832 - 11905: 0xBB54, - 31833 - 11905: 0xBB55, - 31834 - 11905: 0xBB56, - 31835 - 11905: 0xBB57, - 31836 - 11905: 0xBB58, - 31837 - 11905: 0xBB59, - 31838 - 11905: 0xBB5A, - 31839 - 11905: 0xBB5B, - 31840 - 11905: 0xBB5C, - 31841 - 11905: 0xBB5D, - 31842 - 11905: 0xBB5E, - 31843 - 11905: 0xBB5F, - 31844 - 11905: 0xBB60, - 31845 - 11905: 0xBB61, - 31846 - 11905: 0xBB62, - 31847 - 11905: 0xBB63, - 31848 - 11905: 0xBB64, - 31849 - 11905: 0xBB65, - 31850 - 11905: 0xBB66, - 31851 - 11905: 0xBB67, - 31852 - 11905: 0xBB68, - 31853 - 11905: 0xBB69, - 31854 - 11905: 0xBB6A, - 31855 - 11905: 0xBB6B, - 31856 - 11905: 0xBB6C, - 31857 - 11905: 0xBB6D, - 31858 - 11905: 0xBB6E, - 31859 - 11905: 0xC3D7, - 31860 - 11905: 0xD9E1, - 31861 - 11905: 0xBB6F, - 31862 - 11905: 0xBB70, - 31863 - 11905: 0xBB71, - 31864 - 11905: 0xBB72, - 31865 - 11905: 0xBB73, - 31866 - 11905: 0xBB74, - 31867 - 11905: 0xC0E0, - 31868 - 11905: 0xF4CC, - 31869 - 11905: 0xD7D1, - 31870 - 11905: 0xBB75, - 31871 - 11905: 0xBB76, - 31872 - 11905: 0xBB77, - 31873 - 11905: 0xBB78, - 31874 - 11905: 0xBB79, - 31875 - 11905: 0xBB7A, - 31876 - 11905: 0xBB7B, - 31877 - 11905: 0xBB7C, - 31878 - 11905: 0xBB7D, - 31879 - 11905: 0xBB7E, - 31880 - 11905: 0xBB80, - 31881 - 11905: 0xB7DB, - 31882 - 11905: 0xBB81, - 31883 - 11905: 0xBB82, - 31884 - 11905: 0xBB83, - 31885 - 11905: 0xBB84, - 31886 - 11905: 0xBB85, - 31887 - 11905: 0xBB86, - 31888 - 11905: 0xBB87, - 31889 - 11905: 0xF4CE, - 31890 - 11905: 0xC1A3, - 31891 - 11905: 0xBB88, - 31892 - 11905: 0xBB89, - 31893 - 11905: 0xC6C9, - 31894 - 11905: 0xBB8A, - 31895 - 11905: 0xB4D6, - 31896 - 11905: 0xD5B3, - 31897 - 11905: 0xBB8B, - 31898 - 11905: 0xBB8C, - 31899 - 11905: 0xBB8D, - 31900 - 11905: 0xF4D0, - 31901 - 11905: 0xF4CF, - 31902 - 11905: 0xF4D1, - 31903 - 11905: 0xCBDA, - 31904 - 11905: 0xBB8E, - 31905 - 11905: 0xBB8F, - 31906 - 11905: 0xF4D2, - 31907 - 11905: 0xBB90, - 31908 - 11905: 0xD4C1, - 31909 - 11905: 0xD6E0, - 31910 - 11905: 0xBB91, - 31911 - 11905: 0xBB92, - 31912 - 11905: 0xBB93, - 31913 - 11905: 0xBB94, - 31914 - 11905: 0xB7E0, - 31915 - 11905: 0xBB95, - 31916 - 11905: 0xBB96, - 31917 - 11905: 0xBB97, - 31918 - 11905: 0xC1B8, - 31919 - 11905: 0xBB98, - 31920 - 11905: 0xBB99, - 31921 - 11905: 0xC1BB, - 31922 - 11905: 0xF4D3, - 31923 - 11905: 0xBEAC, - 31924 - 11905: 0xBB9A, - 31925 - 11905: 0xBB9B, - 31926 - 11905: 0xBB9C, - 31927 - 11905: 0xBB9D, - 31928 - 11905: 0xBB9E, - 31929 - 11905: 0xB4E2, - 31930 - 11905: 0xBB9F, - 31931 - 11905: 0xBBA0, - 31932 - 11905: 0xF4D4, - 31933 - 11905: 0xF4D5, - 31934 - 11905: 0xBEAB, - 31935 - 11905: 0xBC40, - 31936 - 11905: 0xBC41, - 31937 - 11905: 0xF4D6, - 31938 - 11905: 0xBC42, - 31939 - 11905: 0xBC43, - 31940 - 11905: 0xBC44, - 31941 - 11905: 0xF4DB, - 31942 - 11905: 0xBC45, - 31943 - 11905: 0xF4D7, - 31944 - 11905: 0xF4DA, - 31945 - 11905: 0xBC46, - 31946 - 11905: 0xBAFD, - 31947 - 11905: 0xBC47, - 31948 - 11905: 0xF4D8, - 31949 - 11905: 0xF4D9, - 31950 - 11905: 0xBC48, - 31951 - 11905: 0xBC49, - 31952 - 11905: 0xBC4A, - 31953 - 11905: 0xBC4B, - 31954 - 11905: 0xBC4C, - 31955 - 11905: 0xBC4D, - 31956 - 11905: 0xBC4E, - 31957 - 11905: 0xB8E2, - 31958 - 11905: 0xCCC7, - 31959 - 11905: 0xF4DC, - 31960 - 11905: 0xBC4F, - 31961 - 11905: 0xB2DA, - 31962 - 11905: 0xBC50, - 31963 - 11905: 0xBC51, - 31964 - 11905: 0xC3D3, - 31965 - 11905: 0xBC52, - 31966 - 11905: 0xBC53, - 31967 - 11905: 0xD4E3, - 31968 - 11905: 0xBFB7, - 31969 - 11905: 0xBC54, - 31970 - 11905: 0xBC55, - 31971 - 11905: 0xBC56, - 31972 - 11905: 0xBC57, - 31973 - 11905: 0xBC58, - 31974 - 11905: 0xBC59, - 31975 - 11905: 0xBC5A, - 31976 - 11905: 0xF4DD, - 31977 - 11905: 0xBC5B, - 31978 - 11905: 0xBC5C, - 31979 - 11905: 0xBC5D, - 31980 - 11905: 0xBC5E, - 31981 - 11905: 0xBC5F, - 31982 - 11905: 0xBC60, - 31983 - 11905: 0xC5B4, - 31984 - 11905: 0xBC61, - 31985 - 11905: 0xBC62, - 31986 - 11905: 0xBC63, - 31987 - 11905: 0xBC64, - 31988 - 11905: 0xBC65, - 31989 - 11905: 0xBC66, - 31990 - 11905: 0xBC67, - 31991 - 11905: 0xBC68, - 31992 - 11905: 0xF4E9, - 31993 - 11905: 0xBC69, - 31994 - 11905: 0xBC6A, - 31995 - 11905: 0xCFB5, - 31996 - 11905: 0xBC6B, - 31997 - 11905: 0xBC6C, - 31998 - 11905: 0xBC6D, - 31999 - 11905: 0xBC6E, - 32000 - 11905: 0xBC6F, - 32001 - 11905: 0xBC70, - 32002 - 11905: 0xBC71, - 32003 - 11905: 0xBC72, - 32004 - 11905: 0xBC73, - 32005 - 11905: 0xBC74, - 32006 - 11905: 0xBC75, - 32007 - 11905: 0xBC76, - 32008 - 11905: 0xBC77, - 32009 - 11905: 0xBC78, - 32010 - 11905: 0xCEC9, - 32011 - 11905: 0xBC79, - 32012 - 11905: 0xBC7A, - 32013 - 11905: 0xBC7B, - 32014 - 11905: 0xBC7C, - 32015 - 11905: 0xBC7D, - 32016 - 11905: 0xBC7E, - 32017 - 11905: 0xBC80, - 32018 - 11905: 0xBC81, - 32019 - 11905: 0xBC82, - 32020 - 11905: 0xBC83, - 32021 - 11905: 0xBC84, - 32022 - 11905: 0xBC85, - 32023 - 11905: 0xBC86, - 32024 - 11905: 0xBC87, - 32025 - 11905: 0xBC88, - 32026 - 11905: 0xBC89, - 32027 - 11905: 0xBC8A, - 32028 - 11905: 0xBC8B, - 32029 - 11905: 0xBC8C, - 32030 - 11905: 0xBC8D, - 32031 - 11905: 0xBC8E, - 32032 - 11905: 0xCBD8, - 32033 - 11905: 0xBC8F, - 32034 - 11905: 0xCBF7, - 32035 - 11905: 0xBC90, - 32036 - 11905: 0xBC91, - 32037 - 11905: 0xBC92, - 32038 - 11905: 0xBC93, - 32039 - 11905: 0xBDF4, - 32040 - 11905: 0xBC94, - 32041 - 11905: 0xBC95, - 32042 - 11905: 0xBC96, - 32043 - 11905: 0xD7CF, - 32044 - 11905: 0xBC97, - 32045 - 11905: 0xBC98, - 32046 - 11905: 0xBC99, - 32047 - 11905: 0xC0DB, - 32048 - 11905: 0xBC9A, - 32049 - 11905: 0xBC9B, - 32050 - 11905: 0xBC9C, - 32051 - 11905: 0xBC9D, - 32052 - 11905: 0xBC9E, - 32053 - 11905: 0xBC9F, - 32054 - 11905: 0xBCA0, - 32055 - 11905: 0xBD40, - 32056 - 11905: 0xBD41, - 32057 - 11905: 0xBD42, - 32058 - 11905: 0xBD43, - 32059 - 11905: 0xBD44, - 32060 - 11905: 0xBD45, - 32061 - 11905: 0xBD46, - 32062 - 11905: 0xBD47, - 32063 - 11905: 0xBD48, - 32064 - 11905: 0xBD49, - 32065 - 11905: 0xBD4A, - 32066 - 11905: 0xBD4B, - 32067 - 11905: 0xBD4C, - 32068 - 11905: 0xBD4D, - 32069 - 11905: 0xBD4E, - 32070 - 11905: 0xBD4F, - 32071 - 11905: 0xBD50, - 32072 - 11905: 0xBD51, - 32073 - 11905: 0xBD52, - 32074 - 11905: 0xBD53, - 32075 - 11905: 0xBD54, - 32076 - 11905: 0xBD55, - 32077 - 11905: 0xBD56, - 32078 - 11905: 0xBD57, - 32079 - 11905: 0xBD58, - 32080 - 11905: 0xBD59, - 32081 - 11905: 0xBD5A, - 32082 - 11905: 0xBD5B, - 32083 - 11905: 0xBD5C, - 32084 - 11905: 0xBD5D, - 32085 - 11905: 0xBD5E, - 32086 - 11905: 0xBD5F, - 32087 - 11905: 0xBD60, - 32088 - 11905: 0xBD61, - 32089 - 11905: 0xBD62, - 32090 - 11905: 0xBD63, - 32091 - 11905: 0xBD64, - 32092 - 11905: 0xBD65, - 32093 - 11905: 0xBD66, - 32094 - 11905: 0xBD67, - 32095 - 11905: 0xBD68, - 32096 - 11905: 0xBD69, - 32097 - 11905: 0xBD6A, - 32098 - 11905: 0xBD6B, - 32099 - 11905: 0xBD6C, - 32100 - 11905: 0xBD6D, - 32101 - 11905: 0xBD6E, - 32102 - 11905: 0xBD6F, - 32103 - 11905: 0xBD70, - 32104 - 11905: 0xBD71, - 32105 - 11905: 0xBD72, - 32106 - 11905: 0xBD73, - 32107 - 11905: 0xBD74, - 32108 - 11905: 0xBD75, - 32109 - 11905: 0xBD76, - 32110 - 11905: 0xD0F5, - 32111 - 11905: 0xBD77, - 32112 - 11905: 0xBD78, - 32113 - 11905: 0xBD79, - 32114 - 11905: 0xBD7A, - 32115 - 11905: 0xBD7B, - 32116 - 11905: 0xBD7C, - 32117 - 11905: 0xBD7D, - 32118 - 11905: 0xBD7E, - 32119 - 11905: 0xF4EA, - 32120 - 11905: 0xBD80, - 32121 - 11905: 0xBD81, - 32122 - 11905: 0xBD82, - 32123 - 11905: 0xBD83, - 32124 - 11905: 0xBD84, - 32125 - 11905: 0xBD85, - 32126 - 11905: 0xBD86, - 32127 - 11905: 0xBD87, - 32128 - 11905: 0xBD88, - 32129 - 11905: 0xBD89, - 32130 - 11905: 0xBD8A, - 32131 - 11905: 0xBD8B, - 32132 - 11905: 0xBD8C, - 32133 - 11905: 0xBD8D, - 32134 - 11905: 0xBD8E, - 32135 - 11905: 0xBD8F, - 32136 - 11905: 0xBD90, - 32137 - 11905: 0xBD91, - 32138 - 11905: 0xBD92, - 32139 - 11905: 0xBD93, - 32140 - 11905: 0xBD94, - 32141 - 11905: 0xBD95, - 32142 - 11905: 0xBD96, - 32143 - 11905: 0xBD97, - 32144 - 11905: 0xBD98, - 32145 - 11905: 0xBD99, - 32146 - 11905: 0xBD9A, - 32147 - 11905: 0xBD9B, - 32148 - 11905: 0xBD9C, - 32149 - 11905: 0xBD9D, - 32150 - 11905: 0xBD9E, - 32151 - 11905: 0xBD9F, - 32152 - 11905: 0xBDA0, - 32153 - 11905: 0xBE40, - 32154 - 11905: 0xBE41, - 32155 - 11905: 0xBE42, - 32156 - 11905: 0xBE43, - 32157 - 11905: 0xBE44, - 32158 - 11905: 0xBE45, - 32159 - 11905: 0xBE46, - 32160 - 11905: 0xBE47, - 32161 - 11905: 0xBE48, - 32162 - 11905: 0xBE49, - 32163 - 11905: 0xBE4A, - 32164 - 11905: 0xBE4B, - 32165 - 11905: 0xBE4C, - 32166 - 11905: 0xF4EB, - 32167 - 11905: 0xBE4D, - 32168 - 11905: 0xBE4E, - 32169 - 11905: 0xBE4F, - 32170 - 11905: 0xBE50, - 32171 - 11905: 0xBE51, - 32172 - 11905: 0xBE52, - 32173 - 11905: 0xBE53, - 32174 - 11905: 0xF4EC, - 32175 - 11905: 0xBE54, - 32176 - 11905: 0xBE55, - 32177 - 11905: 0xBE56, - 32178 - 11905: 0xBE57, - 32179 - 11905: 0xBE58, - 32180 - 11905: 0xBE59, - 32181 - 11905: 0xBE5A, - 32182 - 11905: 0xBE5B, - 32183 - 11905: 0xBE5C, - 32184 - 11905: 0xBE5D, - 32185 - 11905: 0xBE5E, - 32186 - 11905: 0xBE5F, - 32187 - 11905: 0xBE60, - 32188 - 11905: 0xBE61, - 32189 - 11905: 0xBE62, - 32190 - 11905: 0xBE63, - 32191 - 11905: 0xBE64, - 32192 - 11905: 0xBE65, - 32193 - 11905: 0xBE66, - 32194 - 11905: 0xBE67, - 32195 - 11905: 0xBE68, - 32196 - 11905: 0xBE69, - 32197 - 11905: 0xBE6A, - 32198 - 11905: 0xBE6B, - 32199 - 11905: 0xBE6C, - 32200 - 11905: 0xBE6D, - 32201 - 11905: 0xBE6E, - 32202 - 11905: 0xBE6F, - 32203 - 11905: 0xBE70, - 32204 - 11905: 0xBE71, - 32205 - 11905: 0xBE72, - 32206 - 11905: 0xBE73, - 32207 - 11905: 0xBE74, - 32208 - 11905: 0xBE75, - 32209 - 11905: 0xBE76, - 32210 - 11905: 0xBE77, - 32211 - 11905: 0xBE78, - 32212 - 11905: 0xBE79, - 32213 - 11905: 0xBE7A, - 32214 - 11905: 0xBE7B, - 32215 - 11905: 0xBE7C, - 32216 - 11905: 0xBE7D, - 32217 - 11905: 0xBE7E, - 32218 - 11905: 0xBE80, - 32219 - 11905: 0xBE81, - 32220 - 11905: 0xBE82, - 32221 - 11905: 0xBE83, - 32222 - 11905: 0xBE84, - 32223 - 11905: 0xBE85, - 32224 - 11905: 0xBE86, - 32225 - 11905: 0xBE87, - 32226 - 11905: 0xBE88, - 32227 - 11905: 0xBE89, - 32228 - 11905: 0xBE8A, - 32229 - 11905: 0xBE8B, - 32230 - 11905: 0xBE8C, - 32231 - 11905: 0xBE8D, - 32232 - 11905: 0xBE8E, - 32233 - 11905: 0xBE8F, - 32234 - 11905: 0xBE90, - 32235 - 11905: 0xBE91, - 32236 - 11905: 0xBE92, - 32237 - 11905: 0xBE93, - 32238 - 11905: 0xBE94, - 32239 - 11905: 0xBE95, - 32240 - 11905: 0xBE96, - 32241 - 11905: 0xBE97, - 32242 - 11905: 0xBE98, - 32243 - 11905: 0xBE99, - 32244 - 11905: 0xBE9A, - 32245 - 11905: 0xBE9B, - 32246 - 11905: 0xBE9C, - 32247 - 11905: 0xBE9D, - 32248 - 11905: 0xBE9E, - 32249 - 11905: 0xBE9F, - 32250 - 11905: 0xBEA0, - 32251 - 11905: 0xBF40, - 32252 - 11905: 0xBF41, - 32253 - 11905: 0xBF42, - 32254 - 11905: 0xBF43, - 32255 - 11905: 0xBF44, - 32256 - 11905: 0xBF45, - 32257 - 11905: 0xBF46, - 32258 - 11905: 0xBF47, - 32259 - 11905: 0xBF48, - 32260 - 11905: 0xBF49, - 32261 - 11905: 0xBF4A, - 32262 - 11905: 0xBF4B, - 32263 - 11905: 0xBF4C, - 32264 - 11905: 0xBF4D, - 32265 - 11905: 0xBF4E, - 32266 - 11905: 0xBF4F, - 32267 - 11905: 0xBF50, - 32268 - 11905: 0xBF51, - 32269 - 11905: 0xBF52, - 32270 - 11905: 0xBF53, - 32271 - 11905: 0xBF54, - 32272 - 11905: 0xBF55, - 32273 - 11905: 0xBF56, - 32274 - 11905: 0xBF57, - 32275 - 11905: 0xBF58, - 32276 - 11905: 0xBF59, - 32277 - 11905: 0xBF5A, - 32278 - 11905: 0xBF5B, - 32279 - 11905: 0xBF5C, - 32280 - 11905: 0xBF5D, - 32281 - 11905: 0xBF5E, - 32282 - 11905: 0xBF5F, - 32283 - 11905: 0xBF60, - 32284 - 11905: 0xBF61, - 32285 - 11905: 0xBF62, - 32286 - 11905: 0xBF63, - 32287 - 11905: 0xBF64, - 32288 - 11905: 0xBF65, - 32289 - 11905: 0xBF66, - 32290 - 11905: 0xBF67, - 32291 - 11905: 0xBF68, - 32292 - 11905: 0xBF69, - 32293 - 11905: 0xBF6A, - 32294 - 11905: 0xBF6B, - 32295 - 11905: 0xBF6C, - 32296 - 11905: 0xBF6D, - 32297 - 11905: 0xBF6E, - 32298 - 11905: 0xBF6F, - 32299 - 11905: 0xBF70, - 32300 - 11905: 0xBF71, - 32301 - 11905: 0xBF72, - 32302 - 11905: 0xBF73, - 32303 - 11905: 0xBF74, - 32304 - 11905: 0xBF75, - 32305 - 11905: 0xBF76, - 32306 - 11905: 0xBF77, - 32307 - 11905: 0xBF78, - 32308 - 11905: 0xBF79, - 32309 - 11905: 0xBF7A, - 32310 - 11905: 0xBF7B, - 32311 - 11905: 0xBF7C, - 32312 - 11905: 0xBF7D, - 32313 - 11905: 0xBF7E, - 32314 - 11905: 0xBF80, - 32315 - 11905: 0xF7E3, - 32316 - 11905: 0xBF81, - 32317 - 11905: 0xBF82, - 32318 - 11905: 0xBF83, - 32319 - 11905: 0xBF84, - 32320 - 11905: 0xBF85, - 32321 - 11905: 0xB7B1, - 32322 - 11905: 0xBF86, - 32323 - 11905: 0xBF87, - 32324 - 11905: 0xBF88, - 32325 - 11905: 0xBF89, - 32326 - 11905: 0xBF8A, - 32327 - 11905: 0xF4ED, - 32328 - 11905: 0xBF8B, - 32329 - 11905: 0xBF8C, - 32330 - 11905: 0xBF8D, - 32331 - 11905: 0xBF8E, - 32332 - 11905: 0xBF8F, - 32333 - 11905: 0xBF90, - 32334 - 11905: 0xBF91, - 32335 - 11905: 0xBF92, - 32336 - 11905: 0xBF93, - 32337 - 11905: 0xBF94, - 32338 - 11905: 0xBF95, - 32339 - 11905: 0xBF96, - 32340 - 11905: 0xBF97, - 32341 - 11905: 0xBF98, - 32342 - 11905: 0xBF99, - 32343 - 11905: 0xBF9A, - 32344 - 11905: 0xBF9B, - 32345 - 11905: 0xBF9C, - 32346 - 11905: 0xBF9D, - 32347 - 11905: 0xBF9E, - 32348 - 11905: 0xBF9F, - 32349 - 11905: 0xBFA0, - 32350 - 11905: 0xC040, - 32351 - 11905: 0xC041, - 32352 - 11905: 0xC042, - 32353 - 11905: 0xC043, - 32354 - 11905: 0xC044, - 32355 - 11905: 0xC045, - 32356 - 11905: 0xC046, - 32357 - 11905: 0xC047, - 32358 - 11905: 0xC048, - 32359 - 11905: 0xC049, - 32360 - 11905: 0xC04A, - 32361 - 11905: 0xC04B, - 32362 - 11905: 0xC04C, - 32363 - 11905: 0xC04D, - 32364 - 11905: 0xC04E, - 32365 - 11905: 0xC04F, - 32366 - 11905: 0xC050, - 32367 - 11905: 0xC051, - 32368 - 11905: 0xC052, - 32369 - 11905: 0xC053, - 32370 - 11905: 0xC054, - 32371 - 11905: 0xC055, - 32372 - 11905: 0xC056, - 32373 - 11905: 0xC057, - 32374 - 11905: 0xC058, - 32375 - 11905: 0xC059, - 32376 - 11905: 0xC05A, - 32377 - 11905: 0xC05B, - 32378 - 11905: 0xC05C, - 32379 - 11905: 0xC05D, - 32380 - 11905: 0xC05E, - 32381 - 11905: 0xC05F, - 32382 - 11905: 0xC060, - 32383 - 11905: 0xC061, - 32384 - 11905: 0xC062, - 32385 - 11905: 0xC063, - 32386 - 11905: 0xD7EB, - 32387 - 11905: 0xC064, - 32388 - 11905: 0xC065, - 32389 - 11905: 0xC066, - 32390 - 11905: 0xC067, - 32391 - 11905: 0xC068, - 32392 - 11905: 0xC069, - 32393 - 11905: 0xC06A, - 32394 - 11905: 0xC06B, - 32395 - 11905: 0xC06C, - 32396 - 11905: 0xC06D, - 32397 - 11905: 0xC06E, - 32398 - 11905: 0xC06F, - 32399 - 11905: 0xC070, - 32400 - 11905: 0xC071, - 32401 - 11905: 0xC072, - 32402 - 11905: 0xC073, - 32403 - 11905: 0xC074, - 32404 - 11905: 0xC075, - 32405 - 11905: 0xC076, - 32406 - 11905: 0xC077, - 32407 - 11905: 0xC078, - 32408 - 11905: 0xC079, - 32409 - 11905: 0xC07A, - 32410 - 11905: 0xC07B, - 32411 - 11905: 0xF4EE, - 32412 - 11905: 0xC07C, - 32413 - 11905: 0xC07D, - 32414 - 11905: 0xC07E, - 32415 - 11905: 0xE6F9, - 32416 - 11905: 0xBEC0, - 32417 - 11905: 0xE6FA, - 32418 - 11905: 0xBAEC, - 32419 - 11905: 0xE6FB, - 32420 - 11905: 0xCFCB, - 32421 - 11905: 0xE6FC, - 32422 - 11905: 0xD4BC, - 32423 - 11905: 0xBCB6, - 32424 - 11905: 0xE6FD, - 32425 - 11905: 0xE6FE, - 32426 - 11905: 0xBCCD, - 32427 - 11905: 0xC8D2, - 32428 - 11905: 0xCEB3, - 32429 - 11905: 0xE7A1, - 32430 - 11905: 0xC080, - 32431 - 11905: 0xB4BF, - 32432 - 11905: 0xE7A2, - 32433 - 11905: 0xC9B4, - 32434 - 11905: 0xB8D9, - 32435 - 11905: 0xC4C9, - 32436 - 11905: 0xC081, - 32437 - 11905: 0xD7DD, - 32438 - 11905: 0xC2DA, - 32439 - 11905: 0xB7D7, - 32440 - 11905: 0xD6BD, - 32441 - 11905: 0xCEC6, - 32442 - 11905: 0xB7C4, - 32443 - 11905: 0xC082, - 32444 - 11905: 0xC083, - 32445 - 11905: 0xC5A6, - 32446 - 11905: 0xE7A3, - 32447 - 11905: 0xCFDF, - 32448 - 11905: 0xE7A4, - 32449 - 11905: 0xE7A5, - 32450 - 11905: 0xE7A6, - 32451 - 11905: 0xC1B7, - 32452 - 11905: 0xD7E9, - 32453 - 11905: 0xC9F0, - 32454 - 11905: 0xCFB8, - 32455 - 11905: 0xD6AF, - 32456 - 11905: 0xD6D5, - 32457 - 11905: 0xE7A7, - 32458 - 11905: 0xB0ED, - 32459 - 11905: 0xE7A8, - 32460 - 11905: 0xE7A9, - 32461 - 11905: 0xC9DC, - 32462 - 11905: 0xD2EF, - 32463 - 11905: 0xBEAD, - 32464 - 11905: 0xE7AA, - 32465 - 11905: 0xB0F3, - 32466 - 11905: 0xC8DE, - 32467 - 11905: 0xBDE1, - 32468 - 11905: 0xE7AB, - 32469 - 11905: 0xC8C6, - 32470 - 11905: 0xC084, - 32471 - 11905: 0xE7AC, - 32472 - 11905: 0xBBE6, - 32473 - 11905: 0xB8F8, - 32474 - 11905: 0xD1A4, - 32475 - 11905: 0xE7AD, - 32476 - 11905: 0xC2E7, - 32477 - 11905: 0xBEF8, - 32478 - 11905: 0xBDCA, - 32479 - 11905: 0xCDB3, - 32480 - 11905: 0xE7AE, - 32481 - 11905: 0xE7AF, - 32482 - 11905: 0xBEEE, - 32483 - 11905: 0xD0E5, - 32484 - 11905: 0xC085, - 32485 - 11905: 0xCBE7, - 32486 - 11905: 0xCCD0, - 32487 - 11905: 0xBCCC, - 32488 - 11905: 0xE7B0, - 32489 - 11905: 0xBCA8, - 32490 - 11905: 0xD0F7, - 32491 - 11905: 0xE7B1, - 32492 - 11905: 0xC086, - 32493 - 11905: 0xD0F8, - 32494 - 11905: 0xE7B2, - 32495 - 11905: 0xE7B3, - 32496 - 11905: 0xB4C2, - 32497 - 11905: 0xE7B4, - 32498 - 11905: 0xE7B5, - 32499 - 11905: 0xC9FE, - 32500 - 11905: 0xCEAC, - 32501 - 11905: 0xC3E0, - 32502 - 11905: 0xE7B7, - 32503 - 11905: 0xB1C1, - 32504 - 11905: 0xB3F1, - 32505 - 11905: 0xC087, - 32506 - 11905: 0xE7B8, - 32507 - 11905: 0xE7B9, - 32508 - 11905: 0xD7DB, - 32509 - 11905: 0xD5C0, - 32510 - 11905: 0xE7BA, - 32511 - 11905: 0xC2CC, - 32512 - 11905: 0xD7BA, - 32513 - 11905: 0xE7BB, - 32514 - 11905: 0xE7BC, - 32515 - 11905: 0xE7BD, - 32516 - 11905: 0xBCEA, - 32517 - 11905: 0xC3E5, - 32518 - 11905: 0xC0C2, - 32519 - 11905: 0xE7BE, - 32520 - 11905: 0xE7BF, - 32521 - 11905: 0xBCA9, - 32522 - 11905: 0xC088, - 32523 - 11905: 0xE7C0, - 32524 - 11905: 0xE7C1, - 32525 - 11905: 0xE7B6, - 32526 - 11905: 0xB6D0, - 32527 - 11905: 0xE7C2, - 32528 - 11905: 0xC089, - 32529 - 11905: 0xE7C3, - 32530 - 11905: 0xE7C4, - 32531 - 11905: 0xBBBA, - 32532 - 11905: 0xB5DE, - 32533 - 11905: 0xC2C6, - 32534 - 11905: 0xB1E0, - 32535 - 11905: 0xE7C5, - 32536 - 11905: 0xD4B5, - 32537 - 11905: 0xE7C6, - 32538 - 11905: 0xB8BF, - 32539 - 11905: 0xE7C8, - 32540 - 11905: 0xE7C7, - 32541 - 11905: 0xB7EC, - 32542 - 11905: 0xC08A, - 32543 - 11905: 0xE7C9, - 32544 - 11905: 0xB2F8, - 32545 - 11905: 0xE7CA, - 32546 - 11905: 0xE7CB, - 32547 - 11905: 0xE7CC, - 32548 - 11905: 0xE7CD, - 32549 - 11905: 0xE7CE, - 32550 - 11905: 0xE7CF, - 32551 - 11905: 0xE7D0, - 32552 - 11905: 0xD3A7, - 32553 - 11905: 0xCBF5, - 32554 - 11905: 0xE7D1, - 32555 - 11905: 0xE7D2, - 32556 - 11905: 0xE7D3, - 32557 - 11905: 0xE7D4, - 32558 - 11905: 0xC9C9, - 32559 - 11905: 0xE7D5, - 32560 - 11905: 0xE7D6, - 32561 - 11905: 0xE7D7, - 32562 - 11905: 0xE7D8, - 32563 - 11905: 0xE7D9, - 32564 - 11905: 0xBDC9, - 32565 - 11905: 0xE7DA, - 32566 - 11905: 0xF3BE, - 32567 - 11905: 0xC08B, - 32568 - 11905: 0xB8D7, - 32569 - 11905: 0xC08C, - 32570 - 11905: 0xC8B1, - 32571 - 11905: 0xC08D, - 32572 - 11905: 0xC08E, - 32573 - 11905: 0xC08F, - 32574 - 11905: 0xC090, - 32575 - 11905: 0xC091, - 32576 - 11905: 0xC092, - 32577 - 11905: 0xC093, - 32578 - 11905: 0xF3BF, - 32579 - 11905: 0xC094, - 32580 - 11905: 0xF3C0, - 32581 - 11905: 0xF3C1, - 32582 - 11905: 0xC095, - 32583 - 11905: 0xC096, - 32584 - 11905: 0xC097, - 32585 - 11905: 0xC098, - 32586 - 11905: 0xC099, - 32587 - 11905: 0xC09A, - 32588 - 11905: 0xC09B, - 32589 - 11905: 0xC09C, - 32590 - 11905: 0xC09D, - 32591 - 11905: 0xC09E, - 32592 - 11905: 0xB9DE, - 32593 - 11905: 0xCDF8, - 32594 - 11905: 0xC09F, - 32595 - 11905: 0xC0A0, - 32596 - 11905: 0xD8E8, - 32597 - 11905: 0xBAB1, - 32598 - 11905: 0xC140, - 32599 - 11905: 0xC2DE, - 32600 - 11905: 0xEEB7, - 32601 - 11905: 0xC141, - 32602 - 11905: 0xB7A3, - 32603 - 11905: 0xC142, - 32604 - 11905: 0xC143, - 32605 - 11905: 0xC144, - 32606 - 11905: 0xC145, - 32607 - 11905: 0xEEB9, - 32608 - 11905: 0xC146, - 32609 - 11905: 0xEEB8, - 32610 - 11905: 0xB0D5, - 32611 - 11905: 0xC147, - 32612 - 11905: 0xC148, - 32613 - 11905: 0xC149, - 32614 - 11905: 0xC14A, - 32615 - 11905: 0xC14B, - 32616 - 11905: 0xEEBB, - 32617 - 11905: 0xD5D6, - 32618 - 11905: 0xD7EF, - 32619 - 11905: 0xC14C, - 32620 - 11905: 0xC14D, - 32621 - 11905: 0xC14E, - 32622 - 11905: 0xD6C3, - 32623 - 11905: 0xC14F, - 32624 - 11905: 0xC150, - 32625 - 11905: 0xEEBD, - 32626 - 11905: 0xCAF0, - 32627 - 11905: 0xC151, - 32628 - 11905: 0xEEBC, - 32629 - 11905: 0xC152, - 32630 - 11905: 0xC153, - 32631 - 11905: 0xC154, - 32632 - 11905: 0xC155, - 32633 - 11905: 0xEEBE, - 32634 - 11905: 0xC156, - 32635 - 11905: 0xC157, - 32636 - 11905: 0xC158, - 32637 - 11905: 0xC159, - 32638 - 11905: 0xEEC0, - 32639 - 11905: 0xC15A, - 32640 - 11905: 0xC15B, - 32641 - 11905: 0xEEBF, - 32642 - 11905: 0xC15C, - 32643 - 11905: 0xC15D, - 32644 - 11905: 0xC15E, - 32645 - 11905: 0xC15F, - 32646 - 11905: 0xC160, - 32647 - 11905: 0xC161, - 32648 - 11905: 0xC162, - 32649 - 11905: 0xC163, - 32650 - 11905: 0xD1F2, - 32651 - 11905: 0xC164, - 32652 - 11905: 0xC7BC, - 32653 - 11905: 0xC165, - 32654 - 11905: 0xC3C0, - 32655 - 11905: 0xC166, - 32656 - 11905: 0xC167, - 32657 - 11905: 0xC168, - 32658 - 11905: 0xC169, - 32659 - 11905: 0xC16A, - 32660 - 11905: 0xB8E1, - 32661 - 11905: 0xC16B, - 32662 - 11905: 0xC16C, - 32663 - 11905: 0xC16D, - 32664 - 11905: 0xC16E, - 32665 - 11905: 0xC16F, - 32666 - 11905: 0xC1E7, - 32667 - 11905: 0xC170, - 32668 - 11905: 0xC171, - 32669 - 11905: 0xF4C6, - 32670 - 11905: 0xD0DF, - 32671 - 11905: 0xF4C7, - 32672 - 11905: 0xC172, - 32673 - 11905: 0xCFDB, - 32674 - 11905: 0xC173, - 32675 - 11905: 0xC174, - 32676 - 11905: 0xC8BA, - 32677 - 11905: 0xC175, - 32678 - 11905: 0xC176, - 32679 - 11905: 0xF4C8, - 32680 - 11905: 0xC177, - 32681 - 11905: 0xC178, - 32682 - 11905: 0xC179, - 32683 - 11905: 0xC17A, - 32684 - 11905: 0xC17B, - 32685 - 11905: 0xC17C, - 32686 - 11905: 0xC17D, - 32687 - 11905: 0xF4C9, - 32688 - 11905: 0xF4CA, - 32689 - 11905: 0xC17E, - 32690 - 11905: 0xF4CB, - 32691 - 11905: 0xC180, - 32692 - 11905: 0xC181, - 32693 - 11905: 0xC182, - 32694 - 11905: 0xC183, - 32695 - 11905: 0xC184, - 32696 - 11905: 0xD9FA, - 32697 - 11905: 0xB8FE, - 32698 - 11905: 0xC185, - 32699 - 11905: 0xC186, - 32700 - 11905: 0xE5F1, - 32701 - 11905: 0xD3F0, - 32702 - 11905: 0xC187, - 32703 - 11905: 0xF4E0, - 32704 - 11905: 0xC188, - 32705 - 11905: 0xCECC, - 32706 - 11905: 0xC189, - 32707 - 11905: 0xC18A, - 32708 - 11905: 0xC18B, - 32709 - 11905: 0xB3E1, - 32710 - 11905: 0xC18C, - 32711 - 11905: 0xC18D, - 32712 - 11905: 0xC18E, - 32713 - 11905: 0xC18F, - 32714 - 11905: 0xF1B4, - 32715 - 11905: 0xC190, - 32716 - 11905: 0xD2EE, - 32717 - 11905: 0xC191, - 32718 - 11905: 0xF4E1, - 32719 - 11905: 0xC192, - 32720 - 11905: 0xC193, - 32721 - 11905: 0xC194, - 32722 - 11905: 0xC195, - 32723 - 11905: 0xC196, - 32724 - 11905: 0xCFE8, - 32725 - 11905: 0xF4E2, - 32726 - 11905: 0xC197, - 32727 - 11905: 0xC198, - 32728 - 11905: 0xC7CC, - 32729 - 11905: 0xC199, - 32730 - 11905: 0xC19A, - 32731 - 11905: 0xC19B, - 32732 - 11905: 0xC19C, - 32733 - 11905: 0xC19D, - 32734 - 11905: 0xC19E, - 32735 - 11905: 0xB5D4, - 32736 - 11905: 0xB4E4, - 32737 - 11905: 0xF4E4, - 32738 - 11905: 0xC19F, - 32739 - 11905: 0xC1A0, - 32740 - 11905: 0xC240, - 32741 - 11905: 0xF4E3, - 32742 - 11905: 0xF4E5, - 32743 - 11905: 0xC241, - 32744 - 11905: 0xC242, - 32745 - 11905: 0xF4E6, - 32746 - 11905: 0xC243, - 32747 - 11905: 0xC244, - 32748 - 11905: 0xC245, - 32749 - 11905: 0xC246, - 32750 - 11905: 0xF4E7, - 32751 - 11905: 0xC247, - 32752 - 11905: 0xBAB2, - 32753 - 11905: 0xB0BF, - 32754 - 11905: 0xC248, - 32755 - 11905: 0xF4E8, - 32756 - 11905: 0xC249, - 32757 - 11905: 0xC24A, - 32758 - 11905: 0xC24B, - 32759 - 11905: 0xC24C, - 32760 - 11905: 0xC24D, - 32761 - 11905: 0xC24E, - 32762 - 11905: 0xC24F, - 32763 - 11905: 0xB7AD, - 32764 - 11905: 0xD2ED, - 32765 - 11905: 0xC250, - 32766 - 11905: 0xC251, - 32767 - 11905: 0xC252, - 32768 - 11905: 0xD2AB, - 32769 - 11905: 0xC0CF, - 32770 - 11905: 0xC253, - 32771 - 11905: 0xBFBC, - 32772 - 11905: 0xEBA3, - 32773 - 11905: 0xD5DF, - 32774 - 11905: 0xEAC8, - 32775 - 11905: 0xC254, - 32776 - 11905: 0xC255, - 32777 - 11905: 0xC256, - 32778 - 11905: 0xC257, - 32779 - 11905: 0xF1F3, - 32780 - 11905: 0xB6F8, - 32781 - 11905: 0xCBA3, - 32782 - 11905: 0xC258, - 32783 - 11905: 0xC259, - 32784 - 11905: 0xC4CD, - 32785 - 11905: 0xC25A, - 32786 - 11905: 0xF1E7, - 32787 - 11905: 0xC25B, - 32788 - 11905: 0xF1E8, - 32789 - 11905: 0xB8FB, - 32790 - 11905: 0xF1E9, - 32791 - 11905: 0xBAC4, - 32792 - 11905: 0xD4C5, - 32793 - 11905: 0xB0D2, - 32794 - 11905: 0xC25C, - 32795 - 11905: 0xC25D, - 32796 - 11905: 0xF1EA, - 32797 - 11905: 0xC25E, - 32798 - 11905: 0xC25F, - 32799 - 11905: 0xC260, - 32800 - 11905: 0xF1EB, - 32801 - 11905: 0xC261, - 32802 - 11905: 0xF1EC, - 32803 - 11905: 0xC262, - 32804 - 11905: 0xC263, - 32805 - 11905: 0xF1ED, - 32806 - 11905: 0xF1EE, - 32807 - 11905: 0xF1EF, - 32808 - 11905: 0xF1F1, - 32809 - 11905: 0xF1F0, - 32810 - 11905: 0xC5D5, - 32811 - 11905: 0xC264, - 32812 - 11905: 0xC265, - 32813 - 11905: 0xC266, - 32814 - 11905: 0xC267, - 32815 - 11905: 0xC268, - 32816 - 11905: 0xC269, - 32817 - 11905: 0xF1F2, - 32818 - 11905: 0xC26A, - 32819 - 11905: 0xB6FA, - 32820 - 11905: 0xC26B, - 32821 - 11905: 0xF1F4, - 32822 - 11905: 0xD2AE, - 32823 - 11905: 0xDEC7, - 32824 - 11905: 0xCBCA, - 32825 - 11905: 0xC26C, - 32826 - 11905: 0xC26D, - 32827 - 11905: 0xB3DC, - 32828 - 11905: 0xC26E, - 32829 - 11905: 0xB5A2, - 32830 - 11905: 0xC26F, - 32831 - 11905: 0xB9A2, - 32832 - 11905: 0xC270, - 32833 - 11905: 0xC271, - 32834 - 11905: 0xC4F4, - 32835 - 11905: 0xF1F5, - 32836 - 11905: 0xC272, - 32837 - 11905: 0xC273, - 32838 - 11905: 0xF1F6, - 32839 - 11905: 0xC274, - 32840 - 11905: 0xC275, - 32841 - 11905: 0xC276, - 32842 - 11905: 0xC1C4, - 32843 - 11905: 0xC1FB, - 32844 - 11905: 0xD6B0, - 32845 - 11905: 0xF1F7, - 32846 - 11905: 0xC277, - 32847 - 11905: 0xC278, - 32848 - 11905: 0xC279, - 32849 - 11905: 0xC27A, - 32850 - 11905: 0xF1F8, - 32851 - 11905: 0xC27B, - 32852 - 11905: 0xC1AA, - 32853 - 11905: 0xC27C, - 32854 - 11905: 0xC27D, - 32855 - 11905: 0xC27E, - 32856 - 11905: 0xC6B8, - 32857 - 11905: 0xC280, - 32858 - 11905: 0xBEDB, - 32859 - 11905: 0xC281, - 32860 - 11905: 0xC282, - 32861 - 11905: 0xC283, - 32862 - 11905: 0xC284, - 32863 - 11905: 0xC285, - 32864 - 11905: 0xC286, - 32865 - 11905: 0xC287, - 32866 - 11905: 0xC288, - 32867 - 11905: 0xC289, - 32868 - 11905: 0xC28A, - 32869 - 11905: 0xC28B, - 32870 - 11905: 0xC28C, - 32871 - 11905: 0xC28D, - 32872 - 11905: 0xC28E, - 32873 - 11905: 0xF1F9, - 32874 - 11905: 0xB4CF, - 32875 - 11905: 0xC28F, - 32876 - 11905: 0xC290, - 32877 - 11905: 0xC291, - 32878 - 11905: 0xC292, - 32879 - 11905: 0xC293, - 32880 - 11905: 0xC294, - 32881 - 11905: 0xF1FA, - 32882 - 11905: 0xC295, - 32883 - 11905: 0xC296, - 32884 - 11905: 0xC297, - 32885 - 11905: 0xC298, - 32886 - 11905: 0xC299, - 32887 - 11905: 0xC29A, - 32888 - 11905: 0xC29B, - 32889 - 11905: 0xC29C, - 32890 - 11905: 0xC29D, - 32891 - 11905: 0xC29E, - 32892 - 11905: 0xC29F, - 32893 - 11905: 0xC2A0, - 32894 - 11905: 0xC340, - 32895 - 11905: 0xEDB2, - 32896 - 11905: 0xEDB1, - 32897 - 11905: 0xC341, - 32898 - 11905: 0xC342, - 32899 - 11905: 0xCBE0, - 32900 - 11905: 0xD2DE, - 32901 - 11905: 0xC343, - 32902 - 11905: 0xCBC1, - 32903 - 11905: 0xD5D8, - 32904 - 11905: 0xC344, - 32905 - 11905: 0xC8E2, - 32906 - 11905: 0xC345, - 32907 - 11905: 0xC0DF, - 32908 - 11905: 0xBCA1, - 32909 - 11905: 0xC346, - 32910 - 11905: 0xC347, - 32911 - 11905: 0xC348, - 32912 - 11905: 0xC349, - 32913 - 11905: 0xC34A, - 32914 - 11905: 0xC34B, - 32915 - 11905: 0xEBC1, - 32916 - 11905: 0xC34C, - 32917 - 11905: 0xC34D, - 32918 - 11905: 0xD0A4, - 32919 - 11905: 0xC34E, - 32920 - 11905: 0xD6E2, - 32921 - 11905: 0xC34F, - 32922 - 11905: 0xB6C7, - 32923 - 11905: 0xB8D8, - 32924 - 11905: 0xEBC0, - 32925 - 11905: 0xB8CE, - 32926 - 11905: 0xC350, - 32927 - 11905: 0xEBBF, - 32928 - 11905: 0xB3A6, - 32929 - 11905: 0xB9C9, - 32930 - 11905: 0xD6AB, - 32931 - 11905: 0xC351, - 32932 - 11905: 0xB7F4, - 32933 - 11905: 0xB7CA, - 32934 - 11905: 0xC352, - 32935 - 11905: 0xC353, - 32936 - 11905: 0xC354, - 32937 - 11905: 0xBCE7, - 32938 - 11905: 0xB7BE, - 32939 - 11905: 0xEBC6, - 32940 - 11905: 0xC355, - 32941 - 11905: 0xEBC7, - 32942 - 11905: 0xB0B9, - 32943 - 11905: 0xBFCF, - 32944 - 11905: 0xC356, - 32945 - 11905: 0xEBC5, - 32946 - 11905: 0xD3FD, - 32947 - 11905: 0xC357, - 32948 - 11905: 0xEBC8, - 32949 - 11905: 0xC358, - 32950 - 11905: 0xC359, - 32951 - 11905: 0xEBC9, - 32952 - 11905: 0xC35A, - 32953 - 11905: 0xC35B, - 32954 - 11905: 0xB7CE, - 32955 - 11905: 0xC35C, - 32956 - 11905: 0xEBC2, - 32957 - 11905: 0xEBC4, - 32958 - 11905: 0xC9F6, - 32959 - 11905: 0xD6D7, - 32960 - 11905: 0xD5CD, - 32961 - 11905: 0xD0B2, - 32962 - 11905: 0xEBCF, - 32963 - 11905: 0xCEB8, - 32964 - 11905: 0xEBD0, - 32965 - 11905: 0xC35D, - 32966 - 11905: 0xB5A8, - 32967 - 11905: 0xC35E, - 32968 - 11905: 0xC35F, - 32969 - 11905: 0xC360, - 32970 - 11905: 0xC361, - 32971 - 11905: 0xC362, - 32972 - 11905: 0xB1B3, - 32973 - 11905: 0xEBD2, - 32974 - 11905: 0xCCA5, - 32975 - 11905: 0xC363, - 32976 - 11905: 0xC364, - 32977 - 11905: 0xC365, - 32978 - 11905: 0xC366, - 32979 - 11905: 0xC367, - 32980 - 11905: 0xC368, - 32981 - 11905: 0xC369, - 32982 - 11905: 0xC5D6, - 32983 - 11905: 0xEBD3, - 32984 - 11905: 0xC36A, - 32985 - 11905: 0xEBD1, - 32986 - 11905: 0xC5DF, - 32987 - 11905: 0xEBCE, - 32988 - 11905: 0xCAA4, - 32989 - 11905: 0xEBD5, - 32990 - 11905: 0xB0FB, - 32991 - 11905: 0xC36B, - 32992 - 11905: 0xC36C, - 32993 - 11905: 0xBAFA, - 32994 - 11905: 0xC36D, - 32995 - 11905: 0xC36E, - 32996 - 11905: 0xD8B7, - 32997 - 11905: 0xF1E3, - 32998 - 11905: 0xC36F, - 32999 - 11905: 0xEBCA, - 33000 - 11905: 0xEBCB, - 33001 - 11905: 0xEBCC, - 33002 - 11905: 0xEBCD, - 33003 - 11905: 0xEBD6, - 33004 - 11905: 0xE6C0, - 33005 - 11905: 0xEBD9, - 33006 - 11905: 0xC370, - 33007 - 11905: 0xBFE8, - 33008 - 11905: 0xD2C8, - 33009 - 11905: 0xEBD7, - 33010 - 11905: 0xEBDC, - 33011 - 11905: 0xB8EC, - 33012 - 11905: 0xEBD8, - 33013 - 11905: 0xC371, - 33014 - 11905: 0xBDBA, - 33015 - 11905: 0xC372, - 33016 - 11905: 0xD0D8, - 33017 - 11905: 0xC373, - 33018 - 11905: 0xB0B7, - 33019 - 11905: 0xC374, - 33020 - 11905: 0xEBDD, - 33021 - 11905: 0xC4DC, - 33022 - 11905: 0xC375, - 33023 - 11905: 0xC376, - 33024 - 11905: 0xC377, - 33025 - 11905: 0xC378, - 33026 - 11905: 0xD6AC, - 33027 - 11905: 0xC379, - 33028 - 11905: 0xC37A, - 33029 - 11905: 0xC37B, - 33030 - 11905: 0xB4E0, - 33031 - 11905: 0xC37C, - 33032 - 11905: 0xC37D, - 33033 - 11905: 0xC2F6, - 33034 - 11905: 0xBCB9, - 33035 - 11905: 0xC37E, - 33036 - 11905: 0xC380, - 33037 - 11905: 0xEBDA, - 33038 - 11905: 0xEBDB, - 33039 - 11905: 0xD4E0, - 33040 - 11905: 0xC6EA, - 33041 - 11905: 0xC4D4, - 33042 - 11905: 0xEBDF, - 33043 - 11905: 0xC5A7, - 33044 - 11905: 0xD9F5, - 33045 - 11905: 0xC381, - 33046 - 11905: 0xB2B1, - 33047 - 11905: 0xC382, - 33048 - 11905: 0xEBE4, - 33049 - 11905: 0xC383, - 33050 - 11905: 0xBDC5, - 33051 - 11905: 0xC384, - 33052 - 11905: 0xC385, - 33053 - 11905: 0xC386, - 33054 - 11905: 0xEBE2, - 33055 - 11905: 0xC387, - 33056 - 11905: 0xC388, - 33057 - 11905: 0xC389, - 33058 - 11905: 0xC38A, - 33059 - 11905: 0xC38B, - 33060 - 11905: 0xC38C, - 33061 - 11905: 0xC38D, - 33062 - 11905: 0xC38E, - 33063 - 11905: 0xC38F, - 33064 - 11905: 0xC390, - 33065 - 11905: 0xC391, - 33066 - 11905: 0xC392, - 33067 - 11905: 0xC393, - 33068 - 11905: 0xEBE3, - 33069 - 11905: 0xC394, - 33070 - 11905: 0xC395, - 33071 - 11905: 0xB8AC, - 33072 - 11905: 0xC396, - 33073 - 11905: 0xCDD1, - 33074 - 11905: 0xEBE5, - 33075 - 11905: 0xC397, - 33076 - 11905: 0xC398, - 33077 - 11905: 0xC399, - 33078 - 11905: 0xEBE1, - 33079 - 11905: 0xC39A, - 33080 - 11905: 0xC1B3, - 33081 - 11905: 0xC39B, - 33082 - 11905: 0xC39C, - 33083 - 11905: 0xC39D, - 33084 - 11905: 0xC39E, - 33085 - 11905: 0xC39F, - 33086 - 11905: 0xC6A2, - 33087 - 11905: 0xC3A0, - 33088 - 11905: 0xC440, - 33089 - 11905: 0xC441, - 33090 - 11905: 0xC442, - 33091 - 11905: 0xC443, - 33092 - 11905: 0xC444, - 33093 - 11905: 0xC445, - 33094 - 11905: 0xCCF3, - 33095 - 11905: 0xC446, - 33096 - 11905: 0xEBE6, - 33097 - 11905: 0xC447, - 33098 - 11905: 0xC0B0, - 33099 - 11905: 0xD2B8, - 33100 - 11905: 0xEBE7, - 33101 - 11905: 0xC448, - 33102 - 11905: 0xC449, - 33103 - 11905: 0xC44A, - 33104 - 11905: 0xB8AF, - 33105 - 11905: 0xB8AD, - 33106 - 11905: 0xC44B, - 33107 - 11905: 0xEBE8, - 33108 - 11905: 0xC7BB, - 33109 - 11905: 0xCDF3, - 33110 - 11905: 0xC44C, - 33111 - 11905: 0xC44D, - 33112 - 11905: 0xC44E, - 33113 - 11905: 0xEBEA, - 33114 - 11905: 0xEBEB, - 33115 - 11905: 0xC44F, - 33116 - 11905: 0xC450, - 33117 - 11905: 0xC451, - 33118 - 11905: 0xC452, - 33119 - 11905: 0xC453, - 33120 - 11905: 0xEBED, - 33121 - 11905: 0xC454, - 33122 - 11905: 0xC455, - 33123 - 11905: 0xC456, - 33124 - 11905: 0xC457, - 33125 - 11905: 0xD0C8, - 33126 - 11905: 0xC458, - 33127 - 11905: 0xEBF2, - 33128 - 11905: 0xC459, - 33129 - 11905: 0xEBEE, - 33130 - 11905: 0xC45A, - 33131 - 11905: 0xC45B, - 33132 - 11905: 0xC45C, - 33133 - 11905: 0xEBF1, - 33134 - 11905: 0xC8F9, - 33135 - 11905: 0xC45D, - 33136 - 11905: 0xD1FC, - 33137 - 11905: 0xEBEC, - 33138 - 11905: 0xC45E, - 33139 - 11905: 0xC45F, - 33140 - 11905: 0xEBE9, - 33141 - 11905: 0xC460, - 33142 - 11905: 0xC461, - 33143 - 11905: 0xC462, - 33144 - 11905: 0xC463, - 33145 - 11905: 0xB8B9, - 33146 - 11905: 0xCFD9, - 33147 - 11905: 0xC4E5, - 33148 - 11905: 0xEBEF, - 33149 - 11905: 0xEBF0, - 33150 - 11905: 0xCCDA, - 33151 - 11905: 0xCDC8, - 33152 - 11905: 0xB0F2, - 33153 - 11905: 0xC464, - 33154 - 11905: 0xEBF6, - 33155 - 11905: 0xC465, - 33156 - 11905: 0xC466, - 33157 - 11905: 0xC467, - 33158 - 11905: 0xC468, - 33159 - 11905: 0xC469, - 33160 - 11905: 0xEBF5, - 33161 - 11905: 0xC46A, - 33162 - 11905: 0xB2B2, - 33163 - 11905: 0xC46B, - 33164 - 11905: 0xC46C, - 33165 - 11905: 0xC46D, - 33166 - 11905: 0xC46E, - 33167 - 11905: 0xB8E0, - 33168 - 11905: 0xC46F, - 33169 - 11905: 0xEBF7, - 33170 - 11905: 0xC470, - 33171 - 11905: 0xC471, - 33172 - 11905: 0xC472, - 33173 - 11905: 0xC473, - 33174 - 11905: 0xC474, - 33175 - 11905: 0xC475, - 33176 - 11905: 0xB1EC, - 33177 - 11905: 0xC476, - 33178 - 11905: 0xC477, - 33179 - 11905: 0xCCC5, - 33180 - 11905: 0xC4A4, - 33181 - 11905: 0xCFA5, - 33182 - 11905: 0xC478, - 33183 - 11905: 0xC479, - 33184 - 11905: 0xC47A, - 33185 - 11905: 0xC47B, - 33186 - 11905: 0xC47C, - 33187 - 11905: 0xEBF9, - 33188 - 11905: 0xC47D, - 33189 - 11905: 0xC47E, - 33190 - 11905: 0xECA2, - 33191 - 11905: 0xC480, - 33192 - 11905: 0xC5F2, - 33193 - 11905: 0xC481, - 33194 - 11905: 0xEBFA, - 33195 - 11905: 0xC482, - 33196 - 11905: 0xC483, - 33197 - 11905: 0xC484, - 33198 - 11905: 0xC485, - 33199 - 11905: 0xC486, - 33200 - 11905: 0xC487, - 33201 - 11905: 0xC488, - 33202 - 11905: 0xC489, - 33203 - 11905: 0xC9C5, - 33204 - 11905: 0xC48A, - 33205 - 11905: 0xC48B, - 33206 - 11905: 0xC48C, - 33207 - 11905: 0xC48D, - 33208 - 11905: 0xC48E, - 33209 - 11905: 0xC48F, - 33210 - 11905: 0xE2DF, - 33211 - 11905: 0xEBFE, - 33212 - 11905: 0xC490, - 33213 - 11905: 0xC491, - 33214 - 11905: 0xC492, - 33215 - 11905: 0xC493, - 33216 - 11905: 0xCDCE, - 33217 - 11905: 0xECA1, - 33218 - 11905: 0xB1DB, - 33219 - 11905: 0xD3B7, - 33220 - 11905: 0xC494, - 33221 - 11905: 0xC495, - 33222 - 11905: 0xD2DC, - 33223 - 11905: 0xC496, - 33224 - 11905: 0xC497, - 33225 - 11905: 0xC498, - 33226 - 11905: 0xEBFD, - 33227 - 11905: 0xC499, - 33228 - 11905: 0xEBFB, - 33229 - 11905: 0xC49A, - 33230 - 11905: 0xC49B, - 33231 - 11905: 0xC49C, - 33232 - 11905: 0xC49D, - 33233 - 11905: 0xC49E, - 33234 - 11905: 0xC49F, - 33235 - 11905: 0xC4A0, - 33236 - 11905: 0xC540, - 33237 - 11905: 0xC541, - 33238 - 11905: 0xC542, - 33239 - 11905: 0xC543, - 33240 - 11905: 0xC544, - 33241 - 11905: 0xC545, - 33242 - 11905: 0xC546, - 33243 - 11905: 0xC547, - 33244 - 11905: 0xC548, - 33245 - 11905: 0xC549, - 33246 - 11905: 0xC54A, - 33247 - 11905: 0xC54B, - 33248 - 11905: 0xC54C, - 33249 - 11905: 0xC54D, - 33250 - 11905: 0xC54E, - 33251 - 11905: 0xB3BC, - 33252 - 11905: 0xC54F, - 33253 - 11905: 0xC550, - 33254 - 11905: 0xC551, - 33255 - 11905: 0xEAB0, - 33256 - 11905: 0xC552, - 33257 - 11905: 0xC553, - 33258 - 11905: 0xD7D4, - 33259 - 11905: 0xC554, - 33260 - 11905: 0xF4AB, - 33261 - 11905: 0xB3F4, - 33262 - 11905: 0xC555, - 33263 - 11905: 0xC556, - 33264 - 11905: 0xC557, - 33265 - 11905: 0xC558, - 33266 - 11905: 0xC559, - 33267 - 11905: 0xD6C1, - 33268 - 11905: 0xD6C2, - 33269 - 11905: 0xC55A, - 33270 - 11905: 0xC55B, - 33271 - 11905: 0xC55C, - 33272 - 11905: 0xC55D, - 33273 - 11905: 0xC55E, - 33274 - 11905: 0xC55F, - 33275 - 11905: 0xD5E9, - 33276 - 11905: 0xBECA, - 33277 - 11905: 0xC560, - 33278 - 11905: 0xF4A7, - 33279 - 11905: 0xC561, - 33280 - 11905: 0xD2A8, - 33281 - 11905: 0xF4A8, - 33282 - 11905: 0xF4A9, - 33283 - 11905: 0xC562, - 33284 - 11905: 0xF4AA, - 33285 - 11905: 0xBECB, - 33286 - 11905: 0xD3DF, - 33287 - 11905: 0xC563, - 33288 - 11905: 0xC564, - 33289 - 11905: 0xC565, - 33290 - 11905: 0xC566, - 33291 - 11905: 0xC567, - 33292 - 11905: 0xC9E0, - 33293 - 11905: 0xC9E1, - 33294 - 11905: 0xC568, - 33295 - 11905: 0xC569, - 33296 - 11905: 0xF3C2, - 33297 - 11905: 0xC56A, - 33298 - 11905: 0xCAE6, - 33299 - 11905: 0xC56B, - 33300 - 11905: 0xCCF2, - 33301 - 11905: 0xC56C, - 33302 - 11905: 0xC56D, - 33303 - 11905: 0xC56E, - 33304 - 11905: 0xC56F, - 33305 - 11905: 0xC570, - 33306 - 11905: 0xC571, - 33307 - 11905: 0xE2B6, - 33308 - 11905: 0xCBB4, - 33309 - 11905: 0xC572, - 33310 - 11905: 0xCEE8, - 33311 - 11905: 0xD6DB, - 33312 - 11905: 0xC573, - 33313 - 11905: 0xF4AD, - 33314 - 11905: 0xF4AE, - 33315 - 11905: 0xF4AF, - 33316 - 11905: 0xC574, - 33317 - 11905: 0xC575, - 33318 - 11905: 0xC576, - 33319 - 11905: 0xC577, - 33320 - 11905: 0xF4B2, - 33321 - 11905: 0xC578, - 33322 - 11905: 0xBABD, - 33323 - 11905: 0xF4B3, - 33324 - 11905: 0xB0E3, - 33325 - 11905: 0xF4B0, - 33326 - 11905: 0xC579, - 33327 - 11905: 0xF4B1, - 33328 - 11905: 0xBDA2, - 33329 - 11905: 0xB2D5, - 33330 - 11905: 0xC57A, - 33331 - 11905: 0xF4B6, - 33332 - 11905: 0xF4B7, - 33333 - 11905: 0xB6E6, - 33334 - 11905: 0xB2B0, - 33335 - 11905: 0xCFCF, - 33336 - 11905: 0xF4B4, - 33337 - 11905: 0xB4AC, - 33338 - 11905: 0xC57B, - 33339 - 11905: 0xF4B5, - 33340 - 11905: 0xC57C, - 33341 - 11905: 0xC57D, - 33342 - 11905: 0xF4B8, - 33343 - 11905: 0xC57E, - 33344 - 11905: 0xC580, - 33345 - 11905: 0xC581, - 33346 - 11905: 0xC582, - 33347 - 11905: 0xC583, - 33348 - 11905: 0xF4B9, - 33349 - 11905: 0xC584, - 33350 - 11905: 0xC585, - 33351 - 11905: 0xCDA7, - 33352 - 11905: 0xC586, - 33353 - 11905: 0xF4BA, - 33354 - 11905: 0xC587, - 33355 - 11905: 0xF4BB, - 33356 - 11905: 0xC588, - 33357 - 11905: 0xC589, - 33358 - 11905: 0xC58A, - 33359 - 11905: 0xF4BC, - 33360 - 11905: 0xC58B, - 33361 - 11905: 0xC58C, - 33362 - 11905: 0xC58D, - 33363 - 11905: 0xC58E, - 33364 - 11905: 0xC58F, - 33365 - 11905: 0xC590, - 33366 - 11905: 0xC591, - 33367 - 11905: 0xC592, - 33368 - 11905: 0xCBD2, - 33369 - 11905: 0xC593, - 33370 - 11905: 0xF4BD, - 33371 - 11905: 0xC594, - 33372 - 11905: 0xC595, - 33373 - 11905: 0xC596, - 33374 - 11905: 0xC597, - 33375 - 11905: 0xF4BE, - 33376 - 11905: 0xC598, - 33377 - 11905: 0xC599, - 33378 - 11905: 0xC59A, - 33379 - 11905: 0xC59B, - 33380 - 11905: 0xC59C, - 33381 - 11905: 0xC59D, - 33382 - 11905: 0xC59E, - 33383 - 11905: 0xC59F, - 33384 - 11905: 0xF4BF, - 33385 - 11905: 0xC5A0, - 33386 - 11905: 0xC640, - 33387 - 11905: 0xC641, - 33388 - 11905: 0xC642, - 33389 - 11905: 0xC643, - 33390 - 11905: 0xF4DE, - 33391 - 11905: 0xC1BC, - 33392 - 11905: 0xBCE8, - 33393 - 11905: 0xC644, - 33394 - 11905: 0xC9AB, - 33395 - 11905: 0xD1DE, - 33396 - 11905: 0xE5F5, - 33397 - 11905: 0xC645, - 33398 - 11905: 0xC646, - 33399 - 11905: 0xC647, - 33400 - 11905: 0xC648, - 33401 - 11905: 0xDCB3, - 33402 - 11905: 0xD2D5, - 33403 - 11905: 0xC649, - 33404 - 11905: 0xC64A, - 33405 - 11905: 0xDCB4, - 33406 - 11905: 0xB0AC, - 33407 - 11905: 0xDCB5, - 33408 - 11905: 0xC64B, - 33409 - 11905: 0xC64C, - 33410 - 11905: 0xBDDA, - 33411 - 11905: 0xC64D, - 33412 - 11905: 0xDCB9, - 33413 - 11905: 0xC64E, - 33414 - 11905: 0xC64F, - 33415 - 11905: 0xC650, - 33416 - 11905: 0xD8C2, - 33417 - 11905: 0xC651, - 33418 - 11905: 0xDCB7, - 33419 - 11905: 0xD3F3, - 33420 - 11905: 0xC652, - 33421 - 11905: 0xC9D6, - 33422 - 11905: 0xDCBA, - 33423 - 11905: 0xDCB6, - 33424 - 11905: 0xC653, - 33425 - 11905: 0xDCBB, - 33426 - 11905: 0xC3A2, - 33427 - 11905: 0xC654, - 33428 - 11905: 0xC655, - 33429 - 11905: 0xC656, - 33430 - 11905: 0xC657, - 33431 - 11905: 0xDCBC, - 33432 - 11905: 0xDCC5, - 33433 - 11905: 0xDCBD, - 33434 - 11905: 0xC658, - 33435 - 11905: 0xC659, - 33436 - 11905: 0xCEDF, - 33437 - 11905: 0xD6A5, - 33438 - 11905: 0xC65A, - 33439 - 11905: 0xDCCF, - 33440 - 11905: 0xC65B, - 33441 - 11905: 0xDCCD, - 33442 - 11905: 0xC65C, - 33443 - 11905: 0xC65D, - 33444 - 11905: 0xDCD2, - 33445 - 11905: 0xBDE6, - 33446 - 11905: 0xC2AB, - 33447 - 11905: 0xC65E, - 33448 - 11905: 0xDCB8, - 33449 - 11905: 0xDCCB, - 33450 - 11905: 0xDCCE, - 33451 - 11905: 0xDCBE, - 33452 - 11905: 0xB7D2, - 33453 - 11905: 0xB0C5, - 33454 - 11905: 0xDCC7, - 33455 - 11905: 0xD0BE, - 33456 - 11905: 0xDCC1, - 33457 - 11905: 0xBBA8, - 33458 - 11905: 0xC65F, - 33459 - 11905: 0xB7BC, - 33460 - 11905: 0xDCCC, - 33461 - 11905: 0xC660, - 33462 - 11905: 0xC661, - 33463 - 11905: 0xDCC6, - 33464 - 11905: 0xDCBF, - 33465 - 11905: 0xC7DB, - 33466 - 11905: 0xC662, - 33467 - 11905: 0xC663, - 33468 - 11905: 0xC664, - 33469 - 11905: 0xD1BF, - 33470 - 11905: 0xDCC0, - 33471 - 11905: 0xC665, - 33472 - 11905: 0xC666, - 33473 - 11905: 0xDCCA, - 33474 - 11905: 0xC667, - 33475 - 11905: 0xC668, - 33476 - 11905: 0xDCD0, - 33477 - 11905: 0xC669, - 33478 - 11905: 0xC66A, - 33479 - 11905: 0xCEAD, - 33480 - 11905: 0xDCC2, - 33481 - 11905: 0xC66B, - 33482 - 11905: 0xDCC3, - 33483 - 11905: 0xDCC8, - 33484 - 11905: 0xDCC9, - 33485 - 11905: 0xB2D4, - 33486 - 11905: 0xDCD1, - 33487 - 11905: 0xCBD5, - 33488 - 11905: 0xC66C, - 33489 - 11905: 0xD4B7, - 33490 - 11905: 0xDCDB, - 33491 - 11905: 0xDCDF, - 33492 - 11905: 0xCCA6, - 33493 - 11905: 0xDCE6, - 33494 - 11905: 0xC66D, - 33495 - 11905: 0xC3E7, - 33496 - 11905: 0xDCDC, - 33497 - 11905: 0xC66E, - 33498 - 11905: 0xC66F, - 33499 - 11905: 0xBFC1, - 33500 - 11905: 0xDCD9, - 33501 - 11905: 0xC670, - 33502 - 11905: 0xB0FA, - 33503 - 11905: 0xB9B6, - 33504 - 11905: 0xDCE5, - 33505 - 11905: 0xDCD3, - 33506 - 11905: 0xC671, - 33507 - 11905: 0xDCC4, - 33508 - 11905: 0xDCD6, - 33509 - 11905: 0xC8F4, - 33510 - 11905: 0xBFE0, - 33511 - 11905: 0xC672, - 33512 - 11905: 0xC673, - 33513 - 11905: 0xC674, - 33514 - 11905: 0xC675, - 33515 - 11905: 0xC9BB, - 33516 - 11905: 0xC676, - 33517 - 11905: 0xC677, - 33518 - 11905: 0xC678, - 33519 - 11905: 0xB1BD, - 33520 - 11905: 0xC679, - 33521 - 11905: 0xD3A2, - 33522 - 11905: 0xC67A, - 33523 - 11905: 0xC67B, - 33524 - 11905: 0xDCDA, - 33525 - 11905: 0xC67C, - 33526 - 11905: 0xC67D, - 33527 - 11905: 0xDCD5, - 33528 - 11905: 0xC67E, - 33529 - 11905: 0xC6BB, - 33530 - 11905: 0xC680, - 33531 - 11905: 0xDCDE, - 33532 - 11905: 0xC681, - 33533 - 11905: 0xC682, - 33534 - 11905: 0xC683, - 33535 - 11905: 0xC684, - 33536 - 11905: 0xC685, - 33537 - 11905: 0xD7C2, - 33538 - 11905: 0xC3AF, - 33539 - 11905: 0xB7B6, - 33540 - 11905: 0xC7D1, - 33541 - 11905: 0xC3A9, - 33542 - 11905: 0xDCE2, - 33543 - 11905: 0xDCD8, - 33544 - 11905: 0xDCEB, - 33545 - 11905: 0xDCD4, - 33546 - 11905: 0xC686, - 33547 - 11905: 0xC687, - 33548 - 11905: 0xDCDD, - 33549 - 11905: 0xC688, - 33550 - 11905: 0xBEA5, - 33551 - 11905: 0xDCD7, - 33552 - 11905: 0xC689, - 33553 - 11905: 0xDCE0, - 33554 - 11905: 0xC68A, - 33555 - 11905: 0xC68B, - 33556 - 11905: 0xDCE3, - 33557 - 11905: 0xDCE4, - 33558 - 11905: 0xC68C, - 33559 - 11905: 0xDCF8, - 33560 - 11905: 0xC68D, - 33561 - 11905: 0xC68E, - 33562 - 11905: 0xDCE1, - 33563 - 11905: 0xDDA2, - 33564 - 11905: 0xDCE7, - 33565 - 11905: 0xC68F, - 33566 - 11905: 0xC690, - 33567 - 11905: 0xC691, - 33568 - 11905: 0xC692, - 33569 - 11905: 0xC693, - 33570 - 11905: 0xC694, - 33571 - 11905: 0xC695, - 33572 - 11905: 0xC696, - 33573 - 11905: 0xC697, - 33574 - 11905: 0xC698, - 33575 - 11905: 0xBCEB, - 33576 - 11905: 0xB4C4, - 33577 - 11905: 0xC699, - 33578 - 11905: 0xC69A, - 33579 - 11905: 0xC3A3, - 33580 - 11905: 0xB2E7, - 33581 - 11905: 0xDCFA, - 33582 - 11905: 0xC69B, - 33583 - 11905: 0xDCF2, - 33584 - 11905: 0xC69C, - 33585 - 11905: 0xDCEF, - 33586 - 11905: 0xC69D, - 33587 - 11905: 0xDCFC, - 33588 - 11905: 0xDCEE, - 33589 - 11905: 0xD2F0, - 33590 - 11905: 0xB2E8, - 33591 - 11905: 0xC69E, - 33592 - 11905: 0xC8D7, - 33593 - 11905: 0xC8E3, - 33594 - 11905: 0xDCFB, - 33595 - 11905: 0xC69F, - 33596 - 11905: 0xDCED, - 33597 - 11905: 0xC6A0, - 33598 - 11905: 0xC740, - 33599 - 11905: 0xC741, - 33600 - 11905: 0xDCF7, - 33601 - 11905: 0xC742, - 33602 - 11905: 0xC743, - 33603 - 11905: 0xDCF5, - 33604 - 11905: 0xC744, - 33605 - 11905: 0xC745, - 33606 - 11905: 0xBEA3, - 33607 - 11905: 0xDCF4, - 33608 - 11905: 0xC746, - 33609 - 11905: 0xB2DD, - 33610 - 11905: 0xC747, - 33611 - 11905: 0xC748, - 33612 - 11905: 0xC749, - 33613 - 11905: 0xC74A, - 33614 - 11905: 0xC74B, - 33615 - 11905: 0xDCF3, - 33616 - 11905: 0xBCF6, - 33617 - 11905: 0xDCE8, - 33618 - 11905: 0xBBC4, - 33619 - 11905: 0xC74C, - 33620 - 11905: 0xC0F3, - 33621 - 11905: 0xC74D, - 33622 - 11905: 0xC74E, - 33623 - 11905: 0xC74F, - 33624 - 11905: 0xC750, - 33625 - 11905: 0xC751, - 33626 - 11905: 0xBCD4, - 33627 - 11905: 0xDCE9, - 33628 - 11905: 0xDCEA, - 33629 - 11905: 0xC752, - 33630 - 11905: 0xDCF1, - 33631 - 11905: 0xDCF6, - 33632 - 11905: 0xDCF9, - 33633 - 11905: 0xB5B4, - 33634 - 11905: 0xC753, - 33635 - 11905: 0xC8D9, - 33636 - 11905: 0xBBE7, - 33637 - 11905: 0xDCFE, - 33638 - 11905: 0xDCFD, - 33639 - 11905: 0xD3AB, - 33640 - 11905: 0xDDA1, - 33641 - 11905: 0xDDA3, - 33642 - 11905: 0xDDA5, - 33643 - 11905: 0xD2F1, - 33644 - 11905: 0xDDA4, - 33645 - 11905: 0xDDA6, - 33646 - 11905: 0xDDA7, - 33647 - 11905: 0xD2A9, - 33648 - 11905: 0xC754, - 33649 - 11905: 0xC755, - 33650 - 11905: 0xC756, - 33651 - 11905: 0xC757, - 33652 - 11905: 0xC758, - 33653 - 11905: 0xC759, - 33654 - 11905: 0xC75A, - 33655 - 11905: 0xBAC9, - 33656 - 11905: 0xDDA9, - 33657 - 11905: 0xC75B, - 33658 - 11905: 0xC75C, - 33659 - 11905: 0xDDB6, - 33660 - 11905: 0xDDB1, - 33661 - 11905: 0xDDB4, - 33662 - 11905: 0xC75D, - 33663 - 11905: 0xC75E, - 33664 - 11905: 0xC75F, - 33665 - 11905: 0xC760, - 33666 - 11905: 0xC761, - 33667 - 11905: 0xC762, - 33668 - 11905: 0xC763, - 33669 - 11905: 0xDDB0, - 33670 - 11905: 0xC6CE, - 33671 - 11905: 0xC764, - 33672 - 11905: 0xC765, - 33673 - 11905: 0xC0F2, - 33674 - 11905: 0xC766, - 33675 - 11905: 0xC767, - 33676 - 11905: 0xC768, - 33677 - 11905: 0xC769, - 33678 - 11905: 0xC9AF, - 33679 - 11905: 0xC76A, - 33680 - 11905: 0xC76B, - 33681 - 11905: 0xC76C, - 33682 - 11905: 0xDCEC, - 33683 - 11905: 0xDDAE, - 33684 - 11905: 0xC76D, - 33685 - 11905: 0xC76E, - 33686 - 11905: 0xC76F, - 33687 - 11905: 0xC770, - 33688 - 11905: 0xDDB7, - 33689 - 11905: 0xC771, - 33690 - 11905: 0xC772, - 33691 - 11905: 0xDCF0, - 33692 - 11905: 0xDDAF, - 33693 - 11905: 0xC773, - 33694 - 11905: 0xDDB8, - 33695 - 11905: 0xC774, - 33696 - 11905: 0xDDAC, - 33697 - 11905: 0xC775, - 33698 - 11905: 0xC776, - 33699 - 11905: 0xC777, - 33700 - 11905: 0xC778, - 33701 - 11905: 0xC779, - 33702 - 11905: 0xC77A, - 33703 - 11905: 0xC77B, - 33704 - 11905: 0xDDB9, - 33705 - 11905: 0xDDB3, - 33706 - 11905: 0xDDAD, - 33707 - 11905: 0xC4AA, - 33708 - 11905: 0xC77C, - 33709 - 11905: 0xC77D, - 33710 - 11905: 0xC77E, - 33711 - 11905: 0xC780, - 33712 - 11905: 0xDDA8, - 33713 - 11905: 0xC0B3, - 33714 - 11905: 0xC1AB, - 33715 - 11905: 0xDDAA, - 33716 - 11905: 0xDDAB, - 33717 - 11905: 0xC781, - 33718 - 11905: 0xDDB2, - 33719 - 11905: 0xBBF1, - 33720 - 11905: 0xDDB5, - 33721 - 11905: 0xD3A8, - 33722 - 11905: 0xDDBA, - 33723 - 11905: 0xC782, - 33724 - 11905: 0xDDBB, - 33725 - 11905: 0xC3A7, - 33726 - 11905: 0xC783, - 33727 - 11905: 0xC784, - 33728 - 11905: 0xDDD2, - 33729 - 11905: 0xDDBC, - 33730 - 11905: 0xC785, - 33731 - 11905: 0xC786, - 33732 - 11905: 0xC787, - 33733 - 11905: 0xDDD1, - 33734 - 11905: 0xC788, - 33735 - 11905: 0xB9BD, - 33736 - 11905: 0xC789, - 33737 - 11905: 0xC78A, - 33738 - 11905: 0xBED5, - 33739 - 11905: 0xC78B, - 33740 - 11905: 0xBEFA, - 33741 - 11905: 0xC78C, - 33742 - 11905: 0xC78D, - 33743 - 11905: 0xBACA, - 33744 - 11905: 0xC78E, - 33745 - 11905: 0xC78F, - 33746 - 11905: 0xC790, - 33747 - 11905: 0xC791, - 33748 - 11905: 0xDDCA, - 33749 - 11905: 0xC792, - 33750 - 11905: 0xDDC5, - 33751 - 11905: 0xC793, - 33752 - 11905: 0xDDBF, - 33753 - 11905: 0xC794, - 33754 - 11905: 0xC795, - 33755 - 11905: 0xC796, - 33756 - 11905: 0xB2CB, - 33757 - 11905: 0xDDC3, - 33758 - 11905: 0xC797, - 33759 - 11905: 0xDDCB, - 33760 - 11905: 0xB2A4, - 33761 - 11905: 0xDDD5, - 33762 - 11905: 0xC798, - 33763 - 11905: 0xC799, - 33764 - 11905: 0xC79A, - 33765 - 11905: 0xDDBE, - 33766 - 11905: 0xC79B, - 33767 - 11905: 0xC79C, - 33768 - 11905: 0xC79D, - 33769 - 11905: 0xC6D0, - 33770 - 11905: 0xDDD0, - 33771 - 11905: 0xC79E, - 33772 - 11905: 0xC79F, - 33773 - 11905: 0xC7A0, - 33774 - 11905: 0xC840, - 33775 - 11905: 0xC841, - 33776 - 11905: 0xDDD4, - 33777 - 11905: 0xC1E2, - 33778 - 11905: 0xB7C6, - 33779 - 11905: 0xC842, - 33780 - 11905: 0xC843, - 33781 - 11905: 0xC844, - 33782 - 11905: 0xC845, - 33783 - 11905: 0xC846, - 33784 - 11905: 0xDDCE, - 33785 - 11905: 0xDDCF, - 33786 - 11905: 0xC847, - 33787 - 11905: 0xC848, - 33788 - 11905: 0xC849, - 33789 - 11905: 0xDDC4, - 33790 - 11905: 0xC84A, - 33791 - 11905: 0xC84B, - 33792 - 11905: 0xC84C, - 33793 - 11905: 0xDDBD, - 33794 - 11905: 0xC84D, - 33795 - 11905: 0xDDCD, - 33796 - 11905: 0xCCD1, - 33797 - 11905: 0xC84E, - 33798 - 11905: 0xDDC9, - 33799 - 11905: 0xC84F, - 33800 - 11905: 0xC850, - 33801 - 11905: 0xC851, - 33802 - 11905: 0xC852, - 33803 - 11905: 0xDDC2, - 33804 - 11905: 0xC3C8, - 33805 - 11905: 0xC6BC, - 33806 - 11905: 0xCEAE, - 33807 - 11905: 0xDDCC, - 33808 - 11905: 0xC853, - 33809 - 11905: 0xDDC8, - 33810 - 11905: 0xC854, - 33811 - 11905: 0xC855, - 33812 - 11905: 0xC856, - 33813 - 11905: 0xC857, - 33814 - 11905: 0xC858, - 33815 - 11905: 0xC859, - 33816 - 11905: 0xDDC1, - 33817 - 11905: 0xC85A, - 33818 - 11905: 0xC85B, - 33819 - 11905: 0xC85C, - 33820 - 11905: 0xDDC6, - 33821 - 11905: 0xC2DC, - 33822 - 11905: 0xC85D, - 33823 - 11905: 0xC85E, - 33824 - 11905: 0xC85F, - 33825 - 11905: 0xC860, - 33826 - 11905: 0xC861, - 33827 - 11905: 0xC862, - 33828 - 11905: 0xD3A9, - 33829 - 11905: 0xD3AA, - 33830 - 11905: 0xDDD3, - 33831 - 11905: 0xCFF4, - 33832 - 11905: 0xC8F8, - 33833 - 11905: 0xC863, - 33834 - 11905: 0xC864, - 33835 - 11905: 0xC865, - 33836 - 11905: 0xC866, - 33837 - 11905: 0xC867, - 33838 - 11905: 0xC868, - 33839 - 11905: 0xC869, - 33840 - 11905: 0xC86A, - 33841 - 11905: 0xDDE6, - 33842 - 11905: 0xC86B, - 33843 - 11905: 0xC86C, - 33844 - 11905: 0xC86D, - 33845 - 11905: 0xC86E, - 33846 - 11905: 0xC86F, - 33847 - 11905: 0xC870, - 33848 - 11905: 0xDDC7, - 33849 - 11905: 0xC871, - 33850 - 11905: 0xC872, - 33851 - 11905: 0xC873, - 33852 - 11905: 0xDDE0, - 33853 - 11905: 0xC2E4, - 33854 - 11905: 0xC874, - 33855 - 11905: 0xC875, - 33856 - 11905: 0xC876, - 33857 - 11905: 0xC877, - 33858 - 11905: 0xC878, - 33859 - 11905: 0xC879, - 33860 - 11905: 0xC87A, - 33861 - 11905: 0xC87B, - 33862 - 11905: 0xDDE1, - 33863 - 11905: 0xC87C, - 33864 - 11905: 0xC87D, - 33865 - 11905: 0xC87E, - 33866 - 11905: 0xC880, - 33867 - 11905: 0xC881, - 33868 - 11905: 0xC882, - 33869 - 11905: 0xC883, - 33870 - 11905: 0xC884, - 33871 - 11905: 0xC885, - 33872 - 11905: 0xC886, - 33873 - 11905: 0xDDD7, - 33874 - 11905: 0xC887, - 33875 - 11905: 0xC888, - 33876 - 11905: 0xC889, - 33877 - 11905: 0xC88A, - 33878 - 11905: 0xC88B, - 33879 - 11905: 0xD6F8, - 33880 - 11905: 0xC88C, - 33881 - 11905: 0xDDD9, - 33882 - 11905: 0xDDD8, - 33883 - 11905: 0xB8F0, - 33884 - 11905: 0xDDD6, - 33885 - 11905: 0xC88D, - 33886 - 11905: 0xC88E, - 33887 - 11905: 0xC88F, - 33888 - 11905: 0xC890, - 33889 - 11905: 0xC6CF, - 33890 - 11905: 0xC891, - 33891 - 11905: 0xB6AD, - 33892 - 11905: 0xC892, - 33893 - 11905: 0xC893, - 33894 - 11905: 0xC894, - 33895 - 11905: 0xC895, - 33896 - 11905: 0xC896, - 33897 - 11905: 0xDDE2, - 33898 - 11905: 0xC897, - 33899 - 11905: 0xBAF9, - 33900 - 11905: 0xD4E1, - 33901 - 11905: 0xDDE7, - 33902 - 11905: 0xC898, - 33903 - 11905: 0xC899, - 33904 - 11905: 0xC89A, - 33905 - 11905: 0xB4D0, - 33906 - 11905: 0xC89B, - 33907 - 11905: 0xDDDA, - 33908 - 11905: 0xC89C, - 33909 - 11905: 0xBFFB, - 33910 - 11905: 0xDDE3, - 33911 - 11905: 0xC89D, - 33912 - 11905: 0xDDDF, - 33913 - 11905: 0xC89E, - 33914 - 11905: 0xDDDD, - 33915 - 11905: 0xC89F, - 33916 - 11905: 0xC8A0, - 33917 - 11905: 0xC940, - 33918 - 11905: 0xC941, - 33919 - 11905: 0xC942, - 33920 - 11905: 0xC943, - 33921 - 11905: 0xC944, - 33922 - 11905: 0xB5D9, - 33923 - 11905: 0xC945, - 33924 - 11905: 0xC946, - 33925 - 11905: 0xC947, - 33926 - 11905: 0xC948, - 33927 - 11905: 0xDDDB, - 33928 - 11905: 0xDDDC, - 33929 - 11905: 0xDDDE, - 33930 - 11905: 0xC949, - 33931 - 11905: 0xBDAF, - 33932 - 11905: 0xDDE4, - 33933 - 11905: 0xC94A, - 33934 - 11905: 0xDDE5, - 33935 - 11905: 0xC94B, - 33936 - 11905: 0xC94C, - 33937 - 11905: 0xC94D, - 33938 - 11905: 0xC94E, - 33939 - 11905: 0xC94F, - 33940 - 11905: 0xC950, - 33941 - 11905: 0xC951, - 33942 - 11905: 0xC952, - 33943 - 11905: 0xDDF5, - 33944 - 11905: 0xC953, - 33945 - 11905: 0xC3C9, - 33946 - 11905: 0xC954, - 33947 - 11905: 0xC955, - 33948 - 11905: 0xCBE2, - 33949 - 11905: 0xC956, - 33950 - 11905: 0xC957, - 33951 - 11905: 0xC958, - 33952 - 11905: 0xC959, - 33953 - 11905: 0xDDF2, - 33954 - 11905: 0xC95A, - 33955 - 11905: 0xC95B, - 33956 - 11905: 0xC95C, - 33957 - 11905: 0xC95D, - 33958 - 11905: 0xC95E, - 33959 - 11905: 0xC95F, - 33960 - 11905: 0xC960, - 33961 - 11905: 0xC961, - 33962 - 11905: 0xC962, - 33963 - 11905: 0xC963, - 33964 - 11905: 0xC964, - 33965 - 11905: 0xC965, - 33966 - 11905: 0xC966, - 33967 - 11905: 0xD8E1, - 33968 - 11905: 0xC967, - 33969 - 11905: 0xC968, - 33970 - 11905: 0xC6D1, - 33971 - 11905: 0xC969, - 33972 - 11905: 0xDDF4, - 33973 - 11905: 0xC96A, - 33974 - 11905: 0xC96B, - 33975 - 11905: 0xC96C, - 33976 - 11905: 0xD5F4, - 33977 - 11905: 0xDDF3, - 33978 - 11905: 0xDDF0, - 33979 - 11905: 0xC96D, - 33980 - 11905: 0xC96E, - 33981 - 11905: 0xDDEC, - 33982 - 11905: 0xC96F, - 33983 - 11905: 0xDDEF, - 33984 - 11905: 0xC970, - 33985 - 11905: 0xDDE8, - 33986 - 11905: 0xC971, - 33987 - 11905: 0xC972, - 33988 - 11905: 0xD0EE, - 33989 - 11905: 0xC973, - 33990 - 11905: 0xC974, - 33991 - 11905: 0xC975, - 33992 - 11905: 0xC976, - 33993 - 11905: 0xC8D8, - 33994 - 11905: 0xDDEE, - 33995 - 11905: 0xC977, - 33996 - 11905: 0xC978, - 33997 - 11905: 0xDDE9, - 33998 - 11905: 0xC979, - 33999 - 11905: 0xC97A, - 34000 - 11905: 0xDDEA, - 34001 - 11905: 0xCBF2, - 34002 - 11905: 0xC97B, - 34003 - 11905: 0xDDED, - 34004 - 11905: 0xC97C, - 34005 - 11905: 0xC97D, - 34006 - 11905: 0xB1CD, - 34007 - 11905: 0xC97E, - 34008 - 11905: 0xC980, - 34009 - 11905: 0xC981, - 34010 - 11905: 0xC982, - 34011 - 11905: 0xC983, - 34012 - 11905: 0xC984, - 34013 - 11905: 0xC0B6, - 34014 - 11905: 0xC985, - 34015 - 11905: 0xBCBB, - 34016 - 11905: 0xDDF1, - 34017 - 11905: 0xC986, - 34018 - 11905: 0xC987, - 34019 - 11905: 0xDDF7, - 34020 - 11905: 0xC988, - 34021 - 11905: 0xDDF6, - 34022 - 11905: 0xDDEB, - 34023 - 11905: 0xC989, - 34024 - 11905: 0xC98A, - 34025 - 11905: 0xC98B, - 34026 - 11905: 0xC98C, - 34027 - 11905: 0xC98D, - 34028 - 11905: 0xC5EE, - 34029 - 11905: 0xC98E, - 34030 - 11905: 0xC98F, - 34031 - 11905: 0xC990, - 34032 - 11905: 0xDDFB, - 34033 - 11905: 0xC991, - 34034 - 11905: 0xC992, - 34035 - 11905: 0xC993, - 34036 - 11905: 0xC994, - 34037 - 11905: 0xC995, - 34038 - 11905: 0xC996, - 34039 - 11905: 0xC997, - 34040 - 11905: 0xC998, - 34041 - 11905: 0xC999, - 34042 - 11905: 0xC99A, - 34043 - 11905: 0xC99B, - 34044 - 11905: 0xDEA4, - 34045 - 11905: 0xC99C, - 34046 - 11905: 0xC99D, - 34047 - 11905: 0xDEA3, - 34048 - 11905: 0xC99E, - 34049 - 11905: 0xC99F, - 34050 - 11905: 0xC9A0, - 34051 - 11905: 0xCA40, - 34052 - 11905: 0xCA41, - 34053 - 11905: 0xCA42, - 34054 - 11905: 0xCA43, - 34055 - 11905: 0xCA44, - 34056 - 11905: 0xCA45, - 34057 - 11905: 0xCA46, - 34058 - 11905: 0xCA47, - 34059 - 11905: 0xCA48, - 34060 - 11905: 0xDDF8, - 34061 - 11905: 0xCA49, - 34062 - 11905: 0xCA4A, - 34063 - 11905: 0xCA4B, - 34064 - 11905: 0xCA4C, - 34065 - 11905: 0xC3EF, - 34066 - 11905: 0xCA4D, - 34067 - 11905: 0xC2FB, - 34068 - 11905: 0xCA4E, - 34069 - 11905: 0xCA4F, - 34070 - 11905: 0xCA50, - 34071 - 11905: 0xD5E1, - 34072 - 11905: 0xCA51, - 34073 - 11905: 0xCA52, - 34074 - 11905: 0xCEB5, - 34075 - 11905: 0xCA53, - 34076 - 11905: 0xCA54, - 34077 - 11905: 0xCA55, - 34078 - 11905: 0xCA56, - 34079 - 11905: 0xDDFD, - 34080 - 11905: 0xCA57, - 34081 - 11905: 0xB2CC, - 34082 - 11905: 0xCA58, - 34083 - 11905: 0xCA59, - 34084 - 11905: 0xCA5A, - 34085 - 11905: 0xCA5B, - 34086 - 11905: 0xCA5C, - 34087 - 11905: 0xCA5D, - 34088 - 11905: 0xCA5E, - 34089 - 11905: 0xCA5F, - 34090 - 11905: 0xCA60, - 34091 - 11905: 0xC4E8, - 34092 - 11905: 0xCADF, - 34093 - 11905: 0xCA61, - 34094 - 11905: 0xCA62, - 34095 - 11905: 0xCA63, - 34096 - 11905: 0xCA64, - 34097 - 11905: 0xCA65, - 34098 - 11905: 0xCA66, - 34099 - 11905: 0xCA67, - 34100 - 11905: 0xCA68, - 34101 - 11905: 0xCA69, - 34102 - 11905: 0xCA6A, - 34103 - 11905: 0xC7BE, - 34104 - 11905: 0xDDFA, - 34105 - 11905: 0xDDFC, - 34106 - 11905: 0xDDFE, - 34107 - 11905: 0xDEA2, - 34108 - 11905: 0xB0AA, - 34109 - 11905: 0xB1CE, - 34110 - 11905: 0xCA6B, - 34111 - 11905: 0xCA6C, - 34112 - 11905: 0xCA6D, - 34113 - 11905: 0xCA6E, - 34114 - 11905: 0xCA6F, - 34115 - 11905: 0xDEAC, - 34116 - 11905: 0xCA70, - 34117 - 11905: 0xCA71, - 34118 - 11905: 0xCA72, - 34119 - 11905: 0xCA73, - 34120 - 11905: 0xDEA6, - 34121 - 11905: 0xBDB6, - 34122 - 11905: 0xC8EF, - 34123 - 11905: 0xCA74, - 34124 - 11905: 0xCA75, - 34125 - 11905: 0xCA76, - 34126 - 11905: 0xCA77, - 34127 - 11905: 0xCA78, - 34128 - 11905: 0xCA79, - 34129 - 11905: 0xCA7A, - 34130 - 11905: 0xCA7B, - 34131 - 11905: 0xCA7C, - 34132 - 11905: 0xCA7D, - 34133 - 11905: 0xCA7E, - 34134 - 11905: 0xDEA1, - 34135 - 11905: 0xCA80, - 34136 - 11905: 0xCA81, - 34137 - 11905: 0xDEA5, - 34138 - 11905: 0xCA82, - 34139 - 11905: 0xCA83, - 34140 - 11905: 0xCA84, - 34141 - 11905: 0xCA85, - 34142 - 11905: 0xDEA9, - 34143 - 11905: 0xCA86, - 34144 - 11905: 0xCA87, - 34145 - 11905: 0xCA88, - 34146 - 11905: 0xCA89, - 34147 - 11905: 0xCA8A, - 34148 - 11905: 0xDEA8, - 34149 - 11905: 0xCA8B, - 34150 - 11905: 0xCA8C, - 34151 - 11905: 0xCA8D, - 34152 - 11905: 0xDEA7, - 34153 - 11905: 0xCA8E, - 34154 - 11905: 0xCA8F, - 34155 - 11905: 0xCA90, - 34156 - 11905: 0xCA91, - 34157 - 11905: 0xCA92, - 34158 - 11905: 0xCA93, - 34159 - 11905: 0xCA94, - 34160 - 11905: 0xCA95, - 34161 - 11905: 0xCA96, - 34162 - 11905: 0xDEAD, - 34163 - 11905: 0xCA97, - 34164 - 11905: 0xD4CC, - 34165 - 11905: 0xCA98, - 34166 - 11905: 0xCA99, - 34167 - 11905: 0xCA9A, - 34168 - 11905: 0xCA9B, - 34169 - 11905: 0xDEB3, - 34170 - 11905: 0xDEAA, - 34171 - 11905: 0xDEAE, - 34172 - 11905: 0xCA9C, - 34173 - 11905: 0xCA9D, - 34174 - 11905: 0xC0D9, - 34175 - 11905: 0xCA9E, - 34176 - 11905: 0xCA9F, - 34177 - 11905: 0xCAA0, - 34178 - 11905: 0xCB40, - 34179 - 11905: 0xCB41, - 34180 - 11905: 0xB1A1, - 34181 - 11905: 0xDEB6, - 34182 - 11905: 0xCB42, - 34183 - 11905: 0xDEB1, - 34184 - 11905: 0xCB43, - 34185 - 11905: 0xCB44, - 34186 - 11905: 0xCB45, - 34187 - 11905: 0xCB46, - 34188 - 11905: 0xCB47, - 34189 - 11905: 0xCB48, - 34190 - 11905: 0xCB49, - 34191 - 11905: 0xDEB2, - 34192 - 11905: 0xCB4A, - 34193 - 11905: 0xCB4B, - 34194 - 11905: 0xCB4C, - 34195 - 11905: 0xCB4D, - 34196 - 11905: 0xCB4E, - 34197 - 11905: 0xCB4F, - 34198 - 11905: 0xCB50, - 34199 - 11905: 0xCB51, - 34200 - 11905: 0xCB52, - 34201 - 11905: 0xCB53, - 34202 - 11905: 0xCB54, - 34203 - 11905: 0xD1A6, - 34204 - 11905: 0xDEB5, - 34205 - 11905: 0xCB55, - 34206 - 11905: 0xCB56, - 34207 - 11905: 0xCB57, - 34208 - 11905: 0xCB58, - 34209 - 11905: 0xCB59, - 34210 - 11905: 0xCB5A, - 34211 - 11905: 0xCB5B, - 34212 - 11905: 0xDEAF, - 34213 - 11905: 0xCB5C, - 34214 - 11905: 0xCB5D, - 34215 - 11905: 0xCB5E, - 34216 - 11905: 0xDEB0, - 34217 - 11905: 0xCB5F, - 34218 - 11905: 0xD0BD, - 34219 - 11905: 0xCB60, - 34220 - 11905: 0xCB61, - 34221 - 11905: 0xCB62, - 34222 - 11905: 0xDEB4, - 34223 - 11905: 0xCAED, - 34224 - 11905: 0xDEB9, - 34225 - 11905: 0xCB63, - 34226 - 11905: 0xCB64, - 34227 - 11905: 0xCB65, - 34228 - 11905: 0xCB66, - 34229 - 11905: 0xCB67, - 34230 - 11905: 0xCB68, - 34231 - 11905: 0xDEB8, - 34232 - 11905: 0xCB69, - 34233 - 11905: 0xDEB7, - 34234 - 11905: 0xCB6A, - 34235 - 11905: 0xCB6B, - 34236 - 11905: 0xCB6C, - 34237 - 11905: 0xCB6D, - 34238 - 11905: 0xCB6E, - 34239 - 11905: 0xCB6F, - 34240 - 11905: 0xCB70, - 34241 - 11905: 0xDEBB, - 34242 - 11905: 0xCB71, - 34243 - 11905: 0xCB72, - 34244 - 11905: 0xCB73, - 34245 - 11905: 0xCB74, - 34246 - 11905: 0xCB75, - 34247 - 11905: 0xCB76, - 34248 - 11905: 0xCB77, - 34249 - 11905: 0xBDE5, - 34250 - 11905: 0xCB78, - 34251 - 11905: 0xCB79, - 34252 - 11905: 0xCB7A, - 34253 - 11905: 0xCB7B, - 34254 - 11905: 0xCB7C, - 34255 - 11905: 0xB2D8, - 34256 - 11905: 0xC3EA, - 34257 - 11905: 0xCB7D, - 34258 - 11905: 0xCB7E, - 34259 - 11905: 0xDEBA, - 34260 - 11905: 0xCB80, - 34261 - 11905: 0xC5BA, - 34262 - 11905: 0xCB81, - 34263 - 11905: 0xCB82, - 34264 - 11905: 0xCB83, - 34265 - 11905: 0xCB84, - 34266 - 11905: 0xCB85, - 34267 - 11905: 0xCB86, - 34268 - 11905: 0xDEBC, - 34269 - 11905: 0xCB87, - 34270 - 11905: 0xCB88, - 34271 - 11905: 0xCB89, - 34272 - 11905: 0xCB8A, - 34273 - 11905: 0xCB8B, - 34274 - 11905: 0xCB8C, - 34275 - 11905: 0xCB8D, - 34276 - 11905: 0xCCD9, - 34277 - 11905: 0xCB8E, - 34278 - 11905: 0xCB8F, - 34279 - 11905: 0xCB90, - 34280 - 11905: 0xCB91, - 34281 - 11905: 0xB7AA, - 34282 - 11905: 0xCB92, - 34283 - 11905: 0xCB93, - 34284 - 11905: 0xCB94, - 34285 - 11905: 0xCB95, - 34286 - 11905: 0xCB96, - 34287 - 11905: 0xCB97, - 34288 - 11905: 0xCB98, - 34289 - 11905: 0xCB99, - 34290 - 11905: 0xCB9A, - 34291 - 11905: 0xCB9B, - 34292 - 11905: 0xCB9C, - 34293 - 11905: 0xCB9D, - 34294 - 11905: 0xCB9E, - 34295 - 11905: 0xCB9F, - 34296 - 11905: 0xCBA0, - 34297 - 11905: 0xCC40, - 34298 - 11905: 0xCC41, - 34299 - 11905: 0xD4E5, - 34300 - 11905: 0xCC42, - 34301 - 11905: 0xCC43, - 34302 - 11905: 0xCC44, - 34303 - 11905: 0xDEBD, - 34304 - 11905: 0xCC45, - 34305 - 11905: 0xCC46, - 34306 - 11905: 0xCC47, - 34307 - 11905: 0xCC48, - 34308 - 11905: 0xCC49, - 34309 - 11905: 0xDEBF, - 34310 - 11905: 0xCC4A, - 34311 - 11905: 0xCC4B, - 34312 - 11905: 0xCC4C, - 34313 - 11905: 0xCC4D, - 34314 - 11905: 0xCC4E, - 34315 - 11905: 0xCC4F, - 34316 - 11905: 0xCC50, - 34317 - 11905: 0xCC51, - 34318 - 11905: 0xCC52, - 34319 - 11905: 0xCC53, - 34320 - 11905: 0xCC54, - 34321 - 11905: 0xC4A2, - 34322 - 11905: 0xCC55, - 34323 - 11905: 0xCC56, - 34324 - 11905: 0xCC57, - 34325 - 11905: 0xCC58, - 34326 - 11905: 0xDEC1, - 34327 - 11905: 0xCC59, - 34328 - 11905: 0xCC5A, - 34329 - 11905: 0xCC5B, - 34330 - 11905: 0xCC5C, - 34331 - 11905: 0xCC5D, - 34332 - 11905: 0xCC5E, - 34333 - 11905: 0xCC5F, - 34334 - 11905: 0xCC60, - 34335 - 11905: 0xCC61, - 34336 - 11905: 0xCC62, - 34337 - 11905: 0xCC63, - 34338 - 11905: 0xCC64, - 34339 - 11905: 0xCC65, - 34340 - 11905: 0xCC66, - 34341 - 11905: 0xCC67, - 34342 - 11905: 0xCC68, - 34343 - 11905: 0xDEBE, - 34344 - 11905: 0xCC69, - 34345 - 11905: 0xDEC0, - 34346 - 11905: 0xCC6A, - 34347 - 11905: 0xCC6B, - 34348 - 11905: 0xCC6C, - 34349 - 11905: 0xCC6D, - 34350 - 11905: 0xCC6E, - 34351 - 11905: 0xCC6F, - 34352 - 11905: 0xCC70, - 34353 - 11905: 0xCC71, - 34354 - 11905: 0xCC72, - 34355 - 11905: 0xCC73, - 34356 - 11905: 0xCC74, - 34357 - 11905: 0xCC75, - 34358 - 11905: 0xCC76, - 34359 - 11905: 0xCC77, - 34360 - 11905: 0xD5BA, - 34361 - 11905: 0xCC78, - 34362 - 11905: 0xCC79, - 34363 - 11905: 0xCC7A, - 34364 - 11905: 0xDEC2, - 34365 - 11905: 0xCC7B, - 34366 - 11905: 0xCC7C, - 34367 - 11905: 0xCC7D, - 34368 - 11905: 0xCC7E, - 34369 - 11905: 0xCC80, - 34370 - 11905: 0xCC81, - 34371 - 11905: 0xCC82, - 34372 - 11905: 0xCC83, - 34373 - 11905: 0xCC84, - 34374 - 11905: 0xCC85, - 34375 - 11905: 0xCC86, - 34376 - 11905: 0xCC87, - 34377 - 11905: 0xCC88, - 34378 - 11905: 0xCC89, - 34379 - 11905: 0xCC8A, - 34380 - 11905: 0xCC8B, - 34381 - 11905: 0xF2AE, - 34382 - 11905: 0xBBA2, - 34383 - 11905: 0xC2B2, - 34384 - 11905: 0xC5B0, - 34385 - 11905: 0xC2C7, - 34386 - 11905: 0xCC8C, - 34387 - 11905: 0xCC8D, - 34388 - 11905: 0xF2AF, - 34389 - 11905: 0xCC8E, - 34390 - 11905: 0xCC8F, - 34391 - 11905: 0xCC90, - 34392 - 11905: 0xCC91, - 34393 - 11905: 0xCC92, - 34394 - 11905: 0xD0E9, - 34395 - 11905: 0xCC93, - 34396 - 11905: 0xCC94, - 34397 - 11905: 0xCC95, - 34398 - 11905: 0xD3DD, - 34399 - 11905: 0xCC96, - 34400 - 11905: 0xCC97, - 34401 - 11905: 0xCC98, - 34402 - 11905: 0xEBBD, - 34403 - 11905: 0xCC99, - 34404 - 11905: 0xCC9A, - 34405 - 11905: 0xCC9B, - 34406 - 11905: 0xCC9C, - 34407 - 11905: 0xCC9D, - 34408 - 11905: 0xCC9E, - 34409 - 11905: 0xCC9F, - 34410 - 11905: 0xCCA0, - 34411 - 11905: 0xB3E6, - 34412 - 11905: 0xF2B0, - 34413 - 11905: 0xCD40, - 34414 - 11905: 0xF2B1, - 34415 - 11905: 0xCD41, - 34416 - 11905: 0xCD42, - 34417 - 11905: 0xCAAD, - 34418 - 11905: 0xCD43, - 34419 - 11905: 0xCD44, - 34420 - 11905: 0xCD45, - 34421 - 11905: 0xCD46, - 34422 - 11905: 0xCD47, - 34423 - 11905: 0xCD48, - 34424 - 11905: 0xCD49, - 34425 - 11905: 0xBAE7, - 34426 - 11905: 0xF2B3, - 34427 - 11905: 0xF2B5, - 34428 - 11905: 0xF2B4, - 34429 - 11905: 0xCBE4, - 34430 - 11905: 0xCFBA, - 34431 - 11905: 0xF2B2, - 34432 - 11905: 0xCAB4, - 34433 - 11905: 0xD2CF, - 34434 - 11905: 0xC2EC, - 34435 - 11905: 0xCD4A, - 34436 - 11905: 0xCD4B, - 34437 - 11905: 0xCD4C, - 34438 - 11905: 0xCD4D, - 34439 - 11905: 0xCD4E, - 34440 - 11905: 0xCD4F, - 34441 - 11905: 0xCD50, - 34442 - 11905: 0xCEC3, - 34443 - 11905: 0xF2B8, - 34444 - 11905: 0xB0F6, - 34445 - 11905: 0xF2B7, - 34446 - 11905: 0xCD51, - 34447 - 11905: 0xCD52, - 34448 - 11905: 0xCD53, - 34449 - 11905: 0xCD54, - 34450 - 11905: 0xCD55, - 34451 - 11905: 0xF2BE, - 34452 - 11905: 0xCD56, - 34453 - 11905: 0xB2CF, - 34454 - 11905: 0xCD57, - 34455 - 11905: 0xCD58, - 34456 - 11905: 0xCD59, - 34457 - 11905: 0xCD5A, - 34458 - 11905: 0xCD5B, - 34459 - 11905: 0xCD5C, - 34460 - 11905: 0xD1C1, - 34461 - 11905: 0xF2BA, - 34462 - 11905: 0xCD5D, - 34463 - 11905: 0xCD5E, - 34464 - 11905: 0xCD5F, - 34465 - 11905: 0xCD60, - 34466 - 11905: 0xCD61, - 34467 - 11905: 0xF2BC, - 34468 - 11905: 0xD4E9, - 34469 - 11905: 0xCD62, - 34470 - 11905: 0xCD63, - 34471 - 11905: 0xF2BB, - 34472 - 11905: 0xF2B6, - 34473 - 11905: 0xF2BF, - 34474 - 11905: 0xF2BD, - 34475 - 11905: 0xCD64, - 34476 - 11905: 0xF2B9, - 34477 - 11905: 0xCD65, - 34478 - 11905: 0xCD66, - 34479 - 11905: 0xF2C7, - 34480 - 11905: 0xF2C4, - 34481 - 11905: 0xF2C6, - 34482 - 11905: 0xCD67, - 34483 - 11905: 0xCD68, - 34484 - 11905: 0xF2CA, - 34485 - 11905: 0xF2C2, - 34486 - 11905: 0xF2C0, - 34487 - 11905: 0xCD69, - 34488 - 11905: 0xCD6A, - 34489 - 11905: 0xCD6B, - 34490 - 11905: 0xF2C5, - 34491 - 11905: 0xCD6C, - 34492 - 11905: 0xCD6D, - 34493 - 11905: 0xCD6E, - 34494 - 11905: 0xCD6F, - 34495 - 11905: 0xCD70, - 34496 - 11905: 0xD6FB, - 34497 - 11905: 0xCD71, - 34498 - 11905: 0xCD72, - 34499 - 11905: 0xCD73, - 34500 - 11905: 0xF2C1, - 34501 - 11905: 0xCD74, - 34502 - 11905: 0xC7F9, - 34503 - 11905: 0xC9DF, - 34504 - 11905: 0xCD75, - 34505 - 11905: 0xF2C8, - 34506 - 11905: 0xB9C6, - 34507 - 11905: 0xB5B0, - 34508 - 11905: 0xCD76, - 34509 - 11905: 0xCD77, - 34510 - 11905: 0xF2C3, - 34511 - 11905: 0xF2C9, - 34512 - 11905: 0xF2D0, - 34513 - 11905: 0xF2D6, - 34514 - 11905: 0xCD78, - 34515 - 11905: 0xCD79, - 34516 - 11905: 0xBBD7, - 34517 - 11905: 0xCD7A, - 34518 - 11905: 0xCD7B, - 34519 - 11905: 0xCD7C, - 34520 - 11905: 0xF2D5, - 34521 - 11905: 0xCDDC, - 34522 - 11905: 0xCD7D, - 34523 - 11905: 0xD6EB, - 34524 - 11905: 0xCD7E, - 34525 - 11905: 0xCD80, - 34526 - 11905: 0xF2D2, - 34527 - 11905: 0xF2D4, - 34528 - 11905: 0xCD81, - 34529 - 11905: 0xCD82, - 34530 - 11905: 0xCD83, - 34531 - 11905: 0xCD84, - 34532 - 11905: 0xB8F2, - 34533 - 11905: 0xCD85, - 34534 - 11905: 0xCD86, - 34535 - 11905: 0xCD87, - 34536 - 11905: 0xCD88, - 34537 - 11905: 0xF2CB, - 34538 - 11905: 0xCD89, - 34539 - 11905: 0xCD8A, - 34540 - 11905: 0xCD8B, - 34541 - 11905: 0xF2CE, - 34542 - 11905: 0xC2F9, - 34543 - 11905: 0xCD8C, - 34544 - 11905: 0xD5DD, - 34545 - 11905: 0xF2CC, - 34546 - 11905: 0xF2CD, - 34547 - 11905: 0xF2CF, - 34548 - 11905: 0xF2D3, - 34549 - 11905: 0xCD8D, - 34550 - 11905: 0xCD8E, - 34551 - 11905: 0xCD8F, - 34552 - 11905: 0xF2D9, - 34553 - 11905: 0xD3BC, - 34554 - 11905: 0xCD90, - 34555 - 11905: 0xCD91, - 34556 - 11905: 0xCD92, - 34557 - 11905: 0xCD93, - 34558 - 11905: 0xB6EA, - 34559 - 11905: 0xCD94, - 34560 - 11905: 0xCAF1, - 34561 - 11905: 0xCD95, - 34562 - 11905: 0xB7E4, - 34563 - 11905: 0xF2D7, - 34564 - 11905: 0xCD96, - 34565 - 11905: 0xCD97, - 34566 - 11905: 0xCD98, - 34567 - 11905: 0xF2D8, - 34568 - 11905: 0xF2DA, - 34569 - 11905: 0xF2DD, - 34570 - 11905: 0xF2DB, - 34571 - 11905: 0xCD99, - 34572 - 11905: 0xCD9A, - 34573 - 11905: 0xF2DC, - 34574 - 11905: 0xCD9B, - 34575 - 11905: 0xCD9C, - 34576 - 11905: 0xCD9D, - 34577 - 11905: 0xCD9E, - 34578 - 11905: 0xD1D1, - 34579 - 11905: 0xF2D1, - 34580 - 11905: 0xCD9F, - 34581 - 11905: 0xCDC9, - 34582 - 11905: 0xCDA0, - 34583 - 11905: 0xCECF, - 34584 - 11905: 0xD6A9, - 34585 - 11905: 0xCE40, - 34586 - 11905: 0xF2E3, - 34587 - 11905: 0xCE41, - 34588 - 11905: 0xC3DB, - 34589 - 11905: 0xCE42, - 34590 - 11905: 0xF2E0, - 34591 - 11905: 0xCE43, - 34592 - 11905: 0xCE44, - 34593 - 11905: 0xC0AF, - 34594 - 11905: 0xF2EC, - 34595 - 11905: 0xF2DE, - 34596 - 11905: 0xCE45, - 34597 - 11905: 0xF2E1, - 34598 - 11905: 0xCE46, - 34599 - 11905: 0xCE47, - 34600 - 11905: 0xCE48, - 34601 - 11905: 0xF2E8, - 34602 - 11905: 0xCE49, - 34603 - 11905: 0xCE4A, - 34604 - 11905: 0xCE4B, - 34605 - 11905: 0xCE4C, - 34606 - 11905: 0xF2E2, - 34607 - 11905: 0xCE4D, - 34608 - 11905: 0xCE4E, - 34609 - 11905: 0xF2E7, - 34610 - 11905: 0xCE4F, - 34611 - 11905: 0xCE50, - 34612 - 11905: 0xF2E6, - 34613 - 11905: 0xCE51, - 34614 - 11905: 0xCE52, - 34615 - 11905: 0xF2E9, - 34616 - 11905: 0xCE53, - 34617 - 11905: 0xCE54, - 34618 - 11905: 0xCE55, - 34619 - 11905: 0xF2DF, - 34620 - 11905: 0xCE56, - 34621 - 11905: 0xCE57, - 34622 - 11905: 0xF2E4, - 34623 - 11905: 0xF2EA, - 34624 - 11905: 0xCE58, - 34625 - 11905: 0xCE59, - 34626 - 11905: 0xCE5A, - 34627 - 11905: 0xCE5B, - 34628 - 11905: 0xCE5C, - 34629 - 11905: 0xCE5D, - 34630 - 11905: 0xCE5E, - 34631 - 11905: 0xD3AC, - 34632 - 11905: 0xF2E5, - 34633 - 11905: 0xB2F5, - 34634 - 11905: 0xCE5F, - 34635 - 11905: 0xCE60, - 34636 - 11905: 0xF2F2, - 34637 - 11905: 0xCE61, - 34638 - 11905: 0xD0AB, - 34639 - 11905: 0xCE62, - 34640 - 11905: 0xCE63, - 34641 - 11905: 0xCE64, - 34642 - 11905: 0xCE65, - 34643 - 11905: 0xF2F5, - 34644 - 11905: 0xCE66, - 34645 - 11905: 0xCE67, - 34646 - 11905: 0xCE68, - 34647 - 11905: 0xBBC8, - 34648 - 11905: 0xCE69, - 34649 - 11905: 0xF2F9, - 34650 - 11905: 0xCE6A, - 34651 - 11905: 0xCE6B, - 34652 - 11905: 0xCE6C, - 34653 - 11905: 0xCE6D, - 34654 - 11905: 0xCE6E, - 34655 - 11905: 0xCE6F, - 34656 - 11905: 0xF2F0, - 34657 - 11905: 0xCE70, - 34658 - 11905: 0xCE71, - 34659 - 11905: 0xF2F6, - 34660 - 11905: 0xF2F8, - 34661 - 11905: 0xF2FA, - 34662 - 11905: 0xCE72, - 34663 - 11905: 0xCE73, - 34664 - 11905: 0xCE74, - 34665 - 11905: 0xCE75, - 34666 - 11905: 0xCE76, - 34667 - 11905: 0xCE77, - 34668 - 11905: 0xCE78, - 34669 - 11905: 0xCE79, - 34670 - 11905: 0xF2F3, - 34671 - 11905: 0xCE7A, - 34672 - 11905: 0xF2F1, - 34673 - 11905: 0xCE7B, - 34674 - 11905: 0xCE7C, - 34675 - 11905: 0xCE7D, - 34676 - 11905: 0xBAFB, - 34677 - 11905: 0xCE7E, - 34678 - 11905: 0xB5FB, - 34679 - 11905: 0xCE80, - 34680 - 11905: 0xCE81, - 34681 - 11905: 0xCE82, - 34682 - 11905: 0xCE83, - 34683 - 11905: 0xF2EF, - 34684 - 11905: 0xF2F7, - 34685 - 11905: 0xF2ED, - 34686 - 11905: 0xF2EE, - 34687 - 11905: 0xCE84, - 34688 - 11905: 0xCE85, - 34689 - 11905: 0xCE86, - 34690 - 11905: 0xF2EB, - 34691 - 11905: 0xF3A6, - 34692 - 11905: 0xCE87, - 34693 - 11905: 0xF3A3, - 34694 - 11905: 0xCE88, - 34695 - 11905: 0xCE89, - 34696 - 11905: 0xF3A2, - 34697 - 11905: 0xCE8A, - 34698 - 11905: 0xCE8B, - 34699 - 11905: 0xF2F4, - 34700 - 11905: 0xCE8C, - 34701 - 11905: 0xC8DA, - 34702 - 11905: 0xCE8D, - 34703 - 11905: 0xCE8E, - 34704 - 11905: 0xCE8F, - 34705 - 11905: 0xCE90, - 34706 - 11905: 0xCE91, - 34707 - 11905: 0xF2FB, - 34708 - 11905: 0xCE92, - 34709 - 11905: 0xCE93, - 34710 - 11905: 0xCE94, - 34711 - 11905: 0xF3A5, - 34712 - 11905: 0xCE95, - 34713 - 11905: 0xCE96, - 34714 - 11905: 0xCE97, - 34715 - 11905: 0xCE98, - 34716 - 11905: 0xCE99, - 34717 - 11905: 0xCE9A, - 34718 - 11905: 0xCE9B, - 34719 - 11905: 0xC3F8, - 34720 - 11905: 0xCE9C, - 34721 - 11905: 0xCE9D, - 34722 - 11905: 0xCE9E, - 34723 - 11905: 0xCE9F, - 34724 - 11905: 0xCEA0, - 34725 - 11905: 0xCF40, - 34726 - 11905: 0xCF41, - 34727 - 11905: 0xCF42, - 34728 - 11905: 0xF2FD, - 34729 - 11905: 0xCF43, - 34730 - 11905: 0xCF44, - 34731 - 11905: 0xF3A7, - 34732 - 11905: 0xF3A9, - 34733 - 11905: 0xF3A4, - 34734 - 11905: 0xCF45, - 34735 - 11905: 0xF2FC, - 34736 - 11905: 0xCF46, - 34737 - 11905: 0xCF47, - 34738 - 11905: 0xCF48, - 34739 - 11905: 0xF3AB, - 34740 - 11905: 0xCF49, - 34741 - 11905: 0xF3AA, - 34742 - 11905: 0xCF4A, - 34743 - 11905: 0xCF4B, - 34744 - 11905: 0xCF4C, - 34745 - 11905: 0xCF4D, - 34746 - 11905: 0xC2DD, - 34747 - 11905: 0xCF4E, - 34748 - 11905: 0xCF4F, - 34749 - 11905: 0xF3AE, - 34750 - 11905: 0xCF50, - 34751 - 11905: 0xCF51, - 34752 - 11905: 0xF3B0, - 34753 - 11905: 0xCF52, - 34754 - 11905: 0xCF53, - 34755 - 11905: 0xCF54, - 34756 - 11905: 0xCF55, - 34757 - 11905: 0xCF56, - 34758 - 11905: 0xF3A1, - 34759 - 11905: 0xCF57, - 34760 - 11905: 0xCF58, - 34761 - 11905: 0xCF59, - 34762 - 11905: 0xF3B1, - 34763 - 11905: 0xF3AC, - 34764 - 11905: 0xCF5A, - 34765 - 11905: 0xCF5B, - 34766 - 11905: 0xCF5C, - 34767 - 11905: 0xCF5D, - 34768 - 11905: 0xCF5E, - 34769 - 11905: 0xF3AF, - 34770 - 11905: 0xF2FE, - 34771 - 11905: 0xF3AD, - 34772 - 11905: 0xCF5F, - 34773 - 11905: 0xCF60, - 34774 - 11905: 0xCF61, - 34775 - 11905: 0xCF62, - 34776 - 11905: 0xCF63, - 34777 - 11905: 0xCF64, - 34778 - 11905: 0xCF65, - 34779 - 11905: 0xF3B2, - 34780 - 11905: 0xCF66, - 34781 - 11905: 0xCF67, - 34782 - 11905: 0xCF68, - 34783 - 11905: 0xCF69, - 34784 - 11905: 0xF3B4, - 34785 - 11905: 0xCF6A, - 34786 - 11905: 0xCF6B, - 34787 - 11905: 0xCF6C, - 34788 - 11905: 0xCF6D, - 34789 - 11905: 0xF3A8, - 34790 - 11905: 0xCF6E, - 34791 - 11905: 0xCF6F, - 34792 - 11905: 0xCF70, - 34793 - 11905: 0xCF71, - 34794 - 11905: 0xF3B3, - 34795 - 11905: 0xCF72, - 34796 - 11905: 0xCF73, - 34797 - 11905: 0xCF74, - 34798 - 11905: 0xF3B5, - 34799 - 11905: 0xCF75, - 34800 - 11905: 0xCF76, - 34801 - 11905: 0xCF77, - 34802 - 11905: 0xCF78, - 34803 - 11905: 0xCF79, - 34804 - 11905: 0xCF7A, - 34805 - 11905: 0xCF7B, - 34806 - 11905: 0xCF7C, - 34807 - 11905: 0xCF7D, - 34808 - 11905: 0xCF7E, - 34809 - 11905: 0xD0B7, - 34810 - 11905: 0xCF80, - 34811 - 11905: 0xCF81, - 34812 - 11905: 0xCF82, - 34813 - 11905: 0xCF83, - 34814 - 11905: 0xF3B8, - 34815 - 11905: 0xCF84, - 34816 - 11905: 0xCF85, - 34817 - 11905: 0xCF86, - 34818 - 11905: 0xCF87, - 34819 - 11905: 0xD9F9, - 34820 - 11905: 0xCF88, - 34821 - 11905: 0xCF89, - 34822 - 11905: 0xCF8A, - 34823 - 11905: 0xCF8B, - 34824 - 11905: 0xCF8C, - 34825 - 11905: 0xCF8D, - 34826 - 11905: 0xF3B9, - 34827 - 11905: 0xCF8E, - 34828 - 11905: 0xCF8F, - 34829 - 11905: 0xCF90, - 34830 - 11905: 0xCF91, - 34831 - 11905: 0xCF92, - 34832 - 11905: 0xCF93, - 34833 - 11905: 0xCF94, - 34834 - 11905: 0xCF95, - 34835 - 11905: 0xF3B7, - 34836 - 11905: 0xCF96, - 34837 - 11905: 0xC8E4, - 34838 - 11905: 0xF3B6, - 34839 - 11905: 0xCF97, - 34840 - 11905: 0xCF98, - 34841 - 11905: 0xCF99, - 34842 - 11905: 0xCF9A, - 34843 - 11905: 0xF3BA, - 34844 - 11905: 0xCF9B, - 34845 - 11905: 0xCF9C, - 34846 - 11905: 0xCF9D, - 34847 - 11905: 0xCF9E, - 34848 - 11905: 0xCF9F, - 34849 - 11905: 0xF3BB, - 34850 - 11905: 0xB4C0, - 34851 - 11905: 0xCFA0, - 34852 - 11905: 0xD040, - 34853 - 11905: 0xD041, - 34854 - 11905: 0xD042, - 34855 - 11905: 0xD043, - 34856 - 11905: 0xD044, - 34857 - 11905: 0xD045, - 34858 - 11905: 0xD046, - 34859 - 11905: 0xD047, - 34860 - 11905: 0xD048, - 34861 - 11905: 0xD049, - 34862 - 11905: 0xD04A, - 34863 - 11905: 0xD04B, - 34864 - 11905: 0xD04C, - 34865 - 11905: 0xD04D, - 34866 - 11905: 0xEEC3, - 34867 - 11905: 0xD04E, - 34868 - 11905: 0xD04F, - 34869 - 11905: 0xD050, - 34870 - 11905: 0xD051, - 34871 - 11905: 0xD052, - 34872 - 11905: 0xD053, - 34873 - 11905: 0xF3BC, - 34874 - 11905: 0xD054, - 34875 - 11905: 0xD055, - 34876 - 11905: 0xF3BD, - 34877 - 11905: 0xD056, - 34878 - 11905: 0xD057, - 34879 - 11905: 0xD058, - 34880 - 11905: 0xD1AA, - 34881 - 11905: 0xD059, - 34882 - 11905: 0xD05A, - 34883 - 11905: 0xD05B, - 34884 - 11905: 0xF4AC, - 34885 - 11905: 0xD0C6, - 34886 - 11905: 0xD05C, - 34887 - 11905: 0xD05D, - 34888 - 11905: 0xD05E, - 34889 - 11905: 0xD05F, - 34890 - 11905: 0xD060, - 34891 - 11905: 0xD061, - 34892 - 11905: 0xD0D0, - 34893 - 11905: 0xD1DC, - 34894 - 11905: 0xD062, - 34895 - 11905: 0xD063, - 34896 - 11905: 0xD064, - 34897 - 11905: 0xD065, - 34898 - 11905: 0xD066, - 34899 - 11905: 0xD067, - 34900 - 11905: 0xCFCE, - 34901 - 11905: 0xD068, - 34902 - 11905: 0xD069, - 34903 - 11905: 0xBDD6, - 34904 - 11905: 0xD06A, - 34905 - 11905: 0xD1C3, - 34906 - 11905: 0xD06B, - 34907 - 11905: 0xD06C, - 34908 - 11905: 0xD06D, - 34909 - 11905: 0xD06E, - 34910 - 11905: 0xD06F, - 34911 - 11905: 0xD070, - 34912 - 11905: 0xD071, - 34913 - 11905: 0xBAE2, - 34914 - 11905: 0xE1E9, - 34915 - 11905: 0xD2C2, - 34916 - 11905: 0xF1C2, - 34917 - 11905: 0xB2B9, - 34918 - 11905: 0xD072, - 34919 - 11905: 0xD073, - 34920 - 11905: 0xB1ED, - 34921 - 11905: 0xF1C3, - 34922 - 11905: 0xD074, - 34923 - 11905: 0xC9C0, - 34924 - 11905: 0xB3C4, - 34925 - 11905: 0xD075, - 34926 - 11905: 0xD9F2, - 34927 - 11905: 0xD076, - 34928 - 11905: 0xCBA5, - 34929 - 11905: 0xD077, - 34930 - 11905: 0xF1C4, - 34931 - 11905: 0xD078, - 34932 - 11905: 0xD079, - 34933 - 11905: 0xD07A, - 34934 - 11905: 0xD07B, - 34935 - 11905: 0xD6D4, - 34936 - 11905: 0xD07C, - 34937 - 11905: 0xD07D, - 34938 - 11905: 0xD07E, - 34939 - 11905: 0xD080, - 34940 - 11905: 0xD081, - 34941 - 11905: 0xF1C5, - 34942 - 11905: 0xF4C0, - 34943 - 11905: 0xF1C6, - 34944 - 11905: 0xD082, - 34945 - 11905: 0xD4AC, - 34946 - 11905: 0xF1C7, - 34947 - 11905: 0xD083, - 34948 - 11905: 0xB0C0, - 34949 - 11905: 0xF4C1, - 34950 - 11905: 0xD084, - 34951 - 11905: 0xD085, - 34952 - 11905: 0xF4C2, - 34953 - 11905: 0xD086, - 34954 - 11905: 0xD087, - 34955 - 11905: 0xB4FC, - 34956 - 11905: 0xD088, - 34957 - 11905: 0xC5DB, - 34958 - 11905: 0xD089, - 34959 - 11905: 0xD08A, - 34960 - 11905: 0xD08B, - 34961 - 11905: 0xD08C, - 34962 - 11905: 0xCCBB, - 34963 - 11905: 0xD08D, - 34964 - 11905: 0xD08E, - 34965 - 11905: 0xD08F, - 34966 - 11905: 0xD0E4, - 34967 - 11905: 0xD090, - 34968 - 11905: 0xD091, - 34969 - 11905: 0xD092, - 34970 - 11905: 0xD093, - 34971 - 11905: 0xD094, - 34972 - 11905: 0xCDE0, - 34973 - 11905: 0xD095, - 34974 - 11905: 0xD096, - 34975 - 11905: 0xD097, - 34976 - 11905: 0xD098, - 34977 - 11905: 0xD099, - 34978 - 11905: 0xF1C8, - 34979 - 11905: 0xD09A, - 34980 - 11905: 0xD9F3, - 34981 - 11905: 0xD09B, - 34982 - 11905: 0xD09C, - 34983 - 11905: 0xD09D, - 34984 - 11905: 0xD09E, - 34985 - 11905: 0xD09F, - 34986 - 11905: 0xD0A0, - 34987 - 11905: 0xB1BB, - 34988 - 11905: 0xD140, - 34989 - 11905: 0xCFAE, - 34990 - 11905: 0xD141, - 34991 - 11905: 0xD142, - 34992 - 11905: 0xD143, - 34993 - 11905: 0xB8A4, - 34994 - 11905: 0xD144, - 34995 - 11905: 0xD145, - 34996 - 11905: 0xD146, - 34997 - 11905: 0xD147, - 34998 - 11905: 0xD148, - 34999 - 11905: 0xF1CA, - 35000 - 11905: 0xD149, - 35001 - 11905: 0xD14A, - 35002 - 11905: 0xD14B, - 35003 - 11905: 0xD14C, - 35004 - 11905: 0xF1CB, - 35005 - 11905: 0xD14D, - 35006 - 11905: 0xD14E, - 35007 - 11905: 0xD14F, - 35008 - 11905: 0xD150, - 35009 - 11905: 0xB2C3, - 35010 - 11905: 0xC1D1, - 35011 - 11905: 0xD151, - 35012 - 11905: 0xD152, - 35013 - 11905: 0xD7B0, - 35014 - 11905: 0xF1C9, - 35015 - 11905: 0xD153, - 35016 - 11905: 0xD154, - 35017 - 11905: 0xF1CC, - 35018 - 11905: 0xD155, - 35019 - 11905: 0xD156, - 35020 - 11905: 0xD157, - 35021 - 11905: 0xD158, - 35022 - 11905: 0xF1CE, - 35023 - 11905: 0xD159, - 35024 - 11905: 0xD15A, - 35025 - 11905: 0xD15B, - 35026 - 11905: 0xD9F6, - 35027 - 11905: 0xD15C, - 35028 - 11905: 0xD2E1, - 35029 - 11905: 0xD4A3, - 35030 - 11905: 0xD15D, - 35031 - 11905: 0xD15E, - 35032 - 11905: 0xF4C3, - 35033 - 11905: 0xC8B9, - 35034 - 11905: 0xD15F, - 35035 - 11905: 0xD160, - 35036 - 11905: 0xD161, - 35037 - 11905: 0xD162, - 35038 - 11905: 0xD163, - 35039 - 11905: 0xF4C4, - 35040 - 11905: 0xD164, - 35041 - 11905: 0xD165, - 35042 - 11905: 0xF1CD, - 35043 - 11905: 0xF1CF, - 35044 - 11905: 0xBFE3, - 35045 - 11905: 0xF1D0, - 35046 - 11905: 0xD166, - 35047 - 11905: 0xD167, - 35048 - 11905: 0xF1D4, - 35049 - 11905: 0xD168, - 35050 - 11905: 0xD169, - 35051 - 11905: 0xD16A, - 35052 - 11905: 0xD16B, - 35053 - 11905: 0xD16C, - 35054 - 11905: 0xD16D, - 35055 - 11905: 0xD16E, - 35056 - 11905: 0xF1D6, - 35057 - 11905: 0xF1D1, - 35058 - 11905: 0xD16F, - 35059 - 11905: 0xC9D1, - 35060 - 11905: 0xC5E1, - 35061 - 11905: 0xD170, - 35062 - 11905: 0xD171, - 35063 - 11905: 0xD172, - 35064 - 11905: 0xC2E3, - 35065 - 11905: 0xB9FC, - 35066 - 11905: 0xD173, - 35067 - 11905: 0xD174, - 35068 - 11905: 0xF1D3, - 35069 - 11905: 0xD175, - 35070 - 11905: 0xF1D5, - 35071 - 11905: 0xD176, - 35072 - 11905: 0xD177, - 35073 - 11905: 0xD178, - 35074 - 11905: 0xB9D3, - 35075 - 11905: 0xD179, - 35076 - 11905: 0xD17A, - 35077 - 11905: 0xD17B, - 35078 - 11905: 0xD17C, - 35079 - 11905: 0xD17D, - 35080 - 11905: 0xD17E, - 35081 - 11905: 0xD180, - 35082 - 11905: 0xF1DB, - 35083 - 11905: 0xD181, - 35084 - 11905: 0xD182, - 35085 - 11905: 0xD183, - 35086 - 11905: 0xD184, - 35087 - 11905: 0xD185, - 35088 - 11905: 0xBAD6, - 35089 - 11905: 0xD186, - 35090 - 11905: 0xB0FD, - 35091 - 11905: 0xF1D9, - 35092 - 11905: 0xD187, - 35093 - 11905: 0xD188, - 35094 - 11905: 0xD189, - 35095 - 11905: 0xD18A, - 35096 - 11905: 0xD18B, - 35097 - 11905: 0xF1D8, - 35098 - 11905: 0xF1D2, - 35099 - 11905: 0xF1DA, - 35100 - 11905: 0xD18C, - 35101 - 11905: 0xD18D, - 35102 - 11905: 0xD18E, - 35103 - 11905: 0xD18F, - 35104 - 11905: 0xD190, - 35105 - 11905: 0xF1D7, - 35106 - 11905: 0xD191, - 35107 - 11905: 0xD192, - 35108 - 11905: 0xD193, - 35109 - 11905: 0xC8EC, - 35110 - 11905: 0xD194, - 35111 - 11905: 0xD195, - 35112 - 11905: 0xD196, - 35113 - 11905: 0xD197, - 35114 - 11905: 0xCDCA, - 35115 - 11905: 0xF1DD, - 35116 - 11905: 0xD198, - 35117 - 11905: 0xD199, - 35118 - 11905: 0xD19A, - 35119 - 11905: 0xD19B, - 35120 - 11905: 0xE5BD, - 35121 - 11905: 0xD19C, - 35122 - 11905: 0xD19D, - 35123 - 11905: 0xD19E, - 35124 - 11905: 0xF1DC, - 35125 - 11905: 0xD19F, - 35126 - 11905: 0xF1DE, - 35127 - 11905: 0xD1A0, - 35128 - 11905: 0xD240, - 35129 - 11905: 0xD241, - 35130 - 11905: 0xD242, - 35131 - 11905: 0xD243, - 35132 - 11905: 0xD244, - 35133 - 11905: 0xD245, - 35134 - 11905: 0xD246, - 35135 - 11905: 0xD247, - 35136 - 11905: 0xD248, - 35137 - 11905: 0xF1DF, - 35138 - 11905: 0xD249, - 35139 - 11905: 0xD24A, - 35140 - 11905: 0xCFE5, - 35141 - 11905: 0xD24B, - 35142 - 11905: 0xD24C, - 35143 - 11905: 0xD24D, - 35144 - 11905: 0xD24E, - 35145 - 11905: 0xD24F, - 35146 - 11905: 0xD250, - 35147 - 11905: 0xD251, - 35148 - 11905: 0xD252, - 35149 - 11905: 0xD253, - 35150 - 11905: 0xD254, - 35151 - 11905: 0xD255, - 35152 - 11905: 0xD256, - 35153 - 11905: 0xD257, - 35154 - 11905: 0xD258, - 35155 - 11905: 0xD259, - 35156 - 11905: 0xD25A, - 35157 - 11905: 0xD25B, - 35158 - 11905: 0xD25C, - 35159 - 11905: 0xD25D, - 35160 - 11905: 0xD25E, - 35161 - 11905: 0xD25F, - 35162 - 11905: 0xD260, - 35163 - 11905: 0xD261, - 35164 - 11905: 0xD262, - 35165 - 11905: 0xD263, - 35166 - 11905: 0xF4C5, - 35167 - 11905: 0xBDF3, - 35168 - 11905: 0xD264, - 35169 - 11905: 0xD265, - 35170 - 11905: 0xD266, - 35171 - 11905: 0xD267, - 35172 - 11905: 0xD268, - 35173 - 11905: 0xD269, - 35174 - 11905: 0xF1E0, - 35175 - 11905: 0xD26A, - 35176 - 11905: 0xD26B, - 35177 - 11905: 0xD26C, - 35178 - 11905: 0xD26D, - 35179 - 11905: 0xD26E, - 35180 - 11905: 0xD26F, - 35181 - 11905: 0xD270, - 35182 - 11905: 0xD271, - 35183 - 11905: 0xD272, - 35184 - 11905: 0xD273, - 35185 - 11905: 0xD274, - 35186 - 11905: 0xD275, - 35187 - 11905: 0xD276, - 35188 - 11905: 0xD277, - 35189 - 11905: 0xD278, - 35190 - 11905: 0xD279, - 35191 - 11905: 0xD27A, - 35192 - 11905: 0xD27B, - 35193 - 11905: 0xD27C, - 35194 - 11905: 0xD27D, - 35195 - 11905: 0xF1E1, - 35196 - 11905: 0xD27E, - 35197 - 11905: 0xD280, - 35198 - 11905: 0xD281, - 35199 - 11905: 0xCEF7, - 35200 - 11905: 0xD282, - 35201 - 11905: 0xD2AA, - 35202 - 11905: 0xD283, - 35203 - 11905: 0xF1FB, - 35204 - 11905: 0xD284, - 35205 - 11905: 0xD285, - 35206 - 11905: 0xB8B2, - 35207 - 11905: 0xD286, - 35208 - 11905: 0xD287, - 35209 - 11905: 0xD288, - 35210 - 11905: 0xD289, - 35211 - 11905: 0xD28A, - 35212 - 11905: 0xD28B, - 35213 - 11905: 0xD28C, - 35214 - 11905: 0xD28D, - 35215 - 11905: 0xD28E, - 35216 - 11905: 0xD28F, - 35217 - 11905: 0xD290, - 35218 - 11905: 0xD291, - 35219 - 11905: 0xD292, - 35220 - 11905: 0xD293, - 35221 - 11905: 0xD294, - 35222 - 11905: 0xD295, - 35223 - 11905: 0xD296, - 35224 - 11905: 0xD297, - 35225 - 11905: 0xD298, - 35226 - 11905: 0xD299, - 35227 - 11905: 0xD29A, - 35228 - 11905: 0xD29B, - 35229 - 11905: 0xD29C, - 35230 - 11905: 0xD29D, - 35231 - 11905: 0xD29E, - 35232 - 11905: 0xD29F, - 35233 - 11905: 0xD2A0, - 35234 - 11905: 0xD340, - 35235 - 11905: 0xD341, - 35236 - 11905: 0xD342, - 35237 - 11905: 0xD343, - 35238 - 11905: 0xD344, - 35239 - 11905: 0xD345, - 35240 - 11905: 0xD346, - 35241 - 11905: 0xD347, - 35242 - 11905: 0xD348, - 35243 - 11905: 0xD349, - 35244 - 11905: 0xD34A, - 35245 - 11905: 0xD34B, - 35246 - 11905: 0xD34C, - 35247 - 11905: 0xD34D, - 35248 - 11905: 0xD34E, - 35249 - 11905: 0xD34F, - 35250 - 11905: 0xD350, - 35251 - 11905: 0xD351, - 35252 - 11905: 0xD352, - 35253 - 11905: 0xD353, - 35254 - 11905: 0xD354, - 35255 - 11905: 0xD355, - 35256 - 11905: 0xD356, - 35257 - 11905: 0xD357, - 35258 - 11905: 0xD358, - 35259 - 11905: 0xD359, - 35260 - 11905: 0xD35A, - 35261 - 11905: 0xD35B, - 35262 - 11905: 0xD35C, - 35263 - 11905: 0xD35D, - 35264 - 11905: 0xD35E, - 35265 - 11905: 0xBCFB, - 35266 - 11905: 0xB9DB, - 35267 - 11905: 0xD35F, - 35268 - 11905: 0xB9E6, - 35269 - 11905: 0xC3D9, - 35270 - 11905: 0xCAD3, - 35271 - 11905: 0xEAE8, - 35272 - 11905: 0xC0C0, - 35273 - 11905: 0xBEF5, - 35274 - 11905: 0xEAE9, - 35275 - 11905: 0xEAEA, - 35276 - 11905: 0xEAEB, - 35277 - 11905: 0xD360, - 35278 - 11905: 0xEAEC, - 35279 - 11905: 0xEAED, - 35280 - 11905: 0xEAEE, - 35281 - 11905: 0xEAEF, - 35282 - 11905: 0xBDC7, - 35283 - 11905: 0xD361, - 35284 - 11905: 0xD362, - 35285 - 11905: 0xD363, - 35286 - 11905: 0xF5FB, - 35287 - 11905: 0xD364, - 35288 - 11905: 0xD365, - 35289 - 11905: 0xD366, - 35290 - 11905: 0xF5FD, - 35291 - 11905: 0xD367, - 35292 - 11905: 0xF5FE, - 35293 - 11905: 0xD368, - 35294 - 11905: 0xF5FC, - 35295 - 11905: 0xD369, - 35296 - 11905: 0xD36A, - 35297 - 11905: 0xD36B, - 35298 - 11905: 0xD36C, - 35299 - 11905: 0xBDE2, - 35300 - 11905: 0xD36D, - 35301 - 11905: 0xF6A1, - 35302 - 11905: 0xB4A5, - 35303 - 11905: 0xD36E, - 35304 - 11905: 0xD36F, - 35305 - 11905: 0xD370, - 35306 - 11905: 0xD371, - 35307 - 11905: 0xF6A2, - 35308 - 11905: 0xD372, - 35309 - 11905: 0xD373, - 35310 - 11905: 0xD374, - 35311 - 11905: 0xF6A3, - 35312 - 11905: 0xD375, - 35313 - 11905: 0xD376, - 35314 - 11905: 0xD377, - 35315 - 11905: 0xECB2, - 35316 - 11905: 0xD378, - 35317 - 11905: 0xD379, - 35318 - 11905: 0xD37A, - 35319 - 11905: 0xD37B, - 35320 - 11905: 0xD37C, - 35321 - 11905: 0xD37D, - 35322 - 11905: 0xD37E, - 35323 - 11905: 0xD380, - 35324 - 11905: 0xD381, - 35325 - 11905: 0xD382, - 35326 - 11905: 0xD383, - 35327 - 11905: 0xD384, - 35328 - 11905: 0xD1D4, - 35329 - 11905: 0xD385, - 35330 - 11905: 0xD386, - 35331 - 11905: 0xD387, - 35332 - 11905: 0xD388, - 35333 - 11905: 0xD389, - 35334 - 11905: 0xD38A, - 35335 - 11905: 0xD9EA, - 35336 - 11905: 0xD38B, - 35337 - 11905: 0xD38C, - 35338 - 11905: 0xD38D, - 35339 - 11905: 0xD38E, - 35340 - 11905: 0xD38F, - 35341 - 11905: 0xD390, - 35342 - 11905: 0xD391, - 35343 - 11905: 0xD392, - 35344 - 11905: 0xD393, - 35345 - 11905: 0xD394, - 35346 - 11905: 0xD395, - 35347 - 11905: 0xD396, - 35348 - 11905: 0xD397, - 35349 - 11905: 0xD398, - 35350 - 11905: 0xD399, - 35351 - 11905: 0xD39A, - 35352 - 11905: 0xD39B, - 35353 - 11905: 0xD39C, - 35354 - 11905: 0xD39D, - 35355 - 11905: 0xD39E, - 35356 - 11905: 0xD39F, - 35357 - 11905: 0xD3A0, - 35358 - 11905: 0xD440, - 35359 - 11905: 0xD441, - 35360 - 11905: 0xD442, - 35361 - 11905: 0xD443, - 35362 - 11905: 0xD444, - 35363 - 11905: 0xD445, - 35364 - 11905: 0xD446, - 35365 - 11905: 0xD447, - 35366 - 11905: 0xD448, - 35367 - 11905: 0xD449, - 35368 - 11905: 0xD44A, - 35369 - 11905: 0xD44B, - 35370 - 11905: 0xD44C, - 35371 - 11905: 0xD44D, - 35372 - 11905: 0xD44E, - 35373 - 11905: 0xD44F, - 35374 - 11905: 0xD450, - 35375 - 11905: 0xD451, - 35376 - 11905: 0xD452, - 35377 - 11905: 0xD453, - 35378 - 11905: 0xD454, - 35379 - 11905: 0xD455, - 35380 - 11905: 0xD456, - 35381 - 11905: 0xD457, - 35382 - 11905: 0xD458, - 35383 - 11905: 0xD459, - 35384 - 11905: 0xD45A, - 35385 - 11905: 0xD45B, - 35386 - 11905: 0xD45C, - 35387 - 11905: 0xD45D, - 35388 - 11905: 0xD45E, - 35389 - 11905: 0xD45F, - 35390 - 11905: 0xF6A4, - 35391 - 11905: 0xD460, - 35392 - 11905: 0xD461, - 35393 - 11905: 0xD462, - 35394 - 11905: 0xD463, - 35395 - 11905: 0xD464, - 35396 - 11905: 0xD465, - 35397 - 11905: 0xD466, - 35398 - 11905: 0xD467, - 35399 - 11905: 0xD468, - 35400 - 11905: 0xEEBA, - 35401 - 11905: 0xD469, - 35402 - 11905: 0xD46A, - 35403 - 11905: 0xD46B, - 35404 - 11905: 0xD46C, - 35405 - 11905: 0xD46D, - 35406 - 11905: 0xD46E, - 35407 - 11905: 0xD46F, - 35408 - 11905: 0xD470, - 35409 - 11905: 0xD471, - 35410 - 11905: 0xD472, - 35411 - 11905: 0xD473, - 35412 - 11905: 0xD474, - 35413 - 11905: 0xD475, - 35414 - 11905: 0xD476, - 35415 - 11905: 0xD477, - 35416 - 11905: 0xD478, - 35417 - 11905: 0xD479, - 35418 - 11905: 0xD47A, - 35419 - 11905: 0xD47B, - 35420 - 11905: 0xD47C, - 35421 - 11905: 0xD47D, - 35422 - 11905: 0xD47E, - 35423 - 11905: 0xD480, - 35424 - 11905: 0xD481, - 35425 - 11905: 0xD482, - 35426 - 11905: 0xD483, - 35427 - 11905: 0xD484, - 35428 - 11905: 0xD485, - 35429 - 11905: 0xD486, - 35430 - 11905: 0xD487, - 35431 - 11905: 0xD488, - 35432 - 11905: 0xD489, - 35433 - 11905: 0xD48A, - 35434 - 11905: 0xD48B, - 35435 - 11905: 0xD48C, - 35436 - 11905: 0xD48D, - 35437 - 11905: 0xD48E, - 35438 - 11905: 0xD48F, - 35439 - 11905: 0xD490, - 35440 - 11905: 0xD491, - 35441 - 11905: 0xD492, - 35442 - 11905: 0xD493, - 35443 - 11905: 0xD494, - 35444 - 11905: 0xD495, - 35445 - 11905: 0xD496, - 35446 - 11905: 0xD497, - 35447 - 11905: 0xD498, - 35448 - 11905: 0xD499, - 35449 - 11905: 0xD5B2, - 35450 - 11905: 0xD49A, - 35451 - 11905: 0xD49B, - 35452 - 11905: 0xD49C, - 35453 - 11905: 0xD49D, - 35454 - 11905: 0xD49E, - 35455 - 11905: 0xD49F, - 35456 - 11905: 0xD4A0, - 35457 - 11905: 0xD540, - 35458 - 11905: 0xD541, - 35459 - 11905: 0xD542, - 35460 - 11905: 0xD543, - 35461 - 11905: 0xD544, - 35462 - 11905: 0xD545, - 35463 - 11905: 0xD546, - 35464 - 11905: 0xD547, - 35465 - 11905: 0xD3FE, - 35466 - 11905: 0xCCDC, - 35467 - 11905: 0xD548, - 35468 - 11905: 0xD549, - 35469 - 11905: 0xD54A, - 35470 - 11905: 0xD54B, - 35471 - 11905: 0xD54C, - 35472 - 11905: 0xD54D, - 35473 - 11905: 0xD54E, - 35474 - 11905: 0xD54F, - 35475 - 11905: 0xCAC4, - 35476 - 11905: 0xD550, - 35477 - 11905: 0xD551, - 35478 - 11905: 0xD552, - 35479 - 11905: 0xD553, - 35480 - 11905: 0xD554, - 35481 - 11905: 0xD555, - 35482 - 11905: 0xD556, - 35483 - 11905: 0xD557, - 35484 - 11905: 0xD558, - 35485 - 11905: 0xD559, - 35486 - 11905: 0xD55A, - 35487 - 11905: 0xD55B, - 35488 - 11905: 0xD55C, - 35489 - 11905: 0xD55D, - 35490 - 11905: 0xD55E, - 35491 - 11905: 0xD55F, - 35492 - 11905: 0xD560, - 35493 - 11905: 0xD561, - 35494 - 11905: 0xD562, - 35495 - 11905: 0xD563, - 35496 - 11905: 0xD564, - 35497 - 11905: 0xD565, - 35498 - 11905: 0xD566, - 35499 - 11905: 0xD567, - 35500 - 11905: 0xD568, - 35501 - 11905: 0xD569, - 35502 - 11905: 0xD56A, - 35503 - 11905: 0xD56B, - 35504 - 11905: 0xD56C, - 35505 - 11905: 0xD56D, - 35506 - 11905: 0xD56E, - 35507 - 11905: 0xD56F, - 35508 - 11905: 0xD570, - 35509 - 11905: 0xD571, - 35510 - 11905: 0xD572, - 35511 - 11905: 0xD573, - 35512 - 11905: 0xD574, - 35513 - 11905: 0xD575, - 35514 - 11905: 0xD576, - 35515 - 11905: 0xD577, - 35516 - 11905: 0xD578, - 35517 - 11905: 0xD579, - 35518 - 11905: 0xD57A, - 35519 - 11905: 0xD57B, - 35520 - 11905: 0xD57C, - 35521 - 11905: 0xD57D, - 35522 - 11905: 0xD57E, - 35523 - 11905: 0xD580, - 35524 - 11905: 0xD581, - 35525 - 11905: 0xD582, - 35526 - 11905: 0xD583, - 35527 - 11905: 0xD584, - 35528 - 11905: 0xD585, - 35529 - 11905: 0xD586, - 35530 - 11905: 0xD587, - 35531 - 11905: 0xD588, - 35532 - 11905: 0xD589, - 35533 - 11905: 0xD58A, - 35534 - 11905: 0xD58B, - 35535 - 11905: 0xD58C, - 35536 - 11905: 0xD58D, - 35537 - 11905: 0xD58E, - 35538 - 11905: 0xD58F, - 35539 - 11905: 0xD590, - 35540 - 11905: 0xD591, - 35541 - 11905: 0xD592, - 35542 - 11905: 0xD593, - 35543 - 11905: 0xD594, - 35544 - 11905: 0xD595, - 35545 - 11905: 0xD596, - 35546 - 11905: 0xD597, - 35547 - 11905: 0xD598, - 35548 - 11905: 0xD599, - 35549 - 11905: 0xD59A, - 35550 - 11905: 0xD59B, - 35551 - 11905: 0xD59C, - 35552 - 11905: 0xD59D, - 35553 - 11905: 0xD59E, - 35554 - 11905: 0xD59F, - 35555 - 11905: 0xD5A0, - 35556 - 11905: 0xD640, - 35557 - 11905: 0xD641, - 35558 - 11905: 0xD642, - 35559 - 11905: 0xD643, - 35560 - 11905: 0xD644, - 35561 - 11905: 0xD645, - 35562 - 11905: 0xD646, - 35563 - 11905: 0xD647, - 35564 - 11905: 0xD648, - 35565 - 11905: 0xD649, - 35566 - 11905: 0xD64A, - 35567 - 11905: 0xD64B, - 35568 - 11905: 0xD64C, - 35569 - 11905: 0xD64D, - 35570 - 11905: 0xD64E, - 35571 - 11905: 0xD64F, - 35572 - 11905: 0xD650, - 35573 - 11905: 0xD651, - 35574 - 11905: 0xD652, - 35575 - 11905: 0xD653, - 35576 - 11905: 0xD654, - 35577 - 11905: 0xD655, - 35578 - 11905: 0xD656, - 35579 - 11905: 0xD657, - 35580 - 11905: 0xD658, - 35581 - 11905: 0xD659, - 35582 - 11905: 0xD65A, - 35583 - 11905: 0xD65B, - 35584 - 11905: 0xD65C, - 35585 - 11905: 0xD65D, - 35586 - 11905: 0xD65E, - 35587 - 11905: 0xD65F, - 35588 - 11905: 0xD660, - 35589 - 11905: 0xD661, - 35590 - 11905: 0xD662, - 35591 - 11905: 0xE5C0, - 35592 - 11905: 0xD663, - 35593 - 11905: 0xD664, - 35594 - 11905: 0xD665, - 35595 - 11905: 0xD666, - 35596 - 11905: 0xD667, - 35597 - 11905: 0xD668, - 35598 - 11905: 0xD669, - 35599 - 11905: 0xD66A, - 35600 - 11905: 0xD66B, - 35601 - 11905: 0xD66C, - 35602 - 11905: 0xD66D, - 35603 - 11905: 0xD66E, - 35604 - 11905: 0xD66F, - 35605 - 11905: 0xD670, - 35606 - 11905: 0xD671, - 35607 - 11905: 0xD672, - 35608 - 11905: 0xD673, - 35609 - 11905: 0xD674, - 35610 - 11905: 0xD675, - 35611 - 11905: 0xD676, - 35612 - 11905: 0xD677, - 35613 - 11905: 0xD678, - 35614 - 11905: 0xD679, - 35615 - 11905: 0xD67A, - 35616 - 11905: 0xD67B, - 35617 - 11905: 0xD67C, - 35618 - 11905: 0xD67D, - 35619 - 11905: 0xD67E, - 35620 - 11905: 0xD680, - 35621 - 11905: 0xD681, - 35622 - 11905: 0xF6A5, - 35623 - 11905: 0xD682, - 35624 - 11905: 0xD683, - 35625 - 11905: 0xD684, - 35626 - 11905: 0xD685, - 35627 - 11905: 0xD686, - 35628 - 11905: 0xD687, - 35629 - 11905: 0xD688, - 35630 - 11905: 0xD689, - 35631 - 11905: 0xD68A, - 35632 - 11905: 0xD68B, - 35633 - 11905: 0xD68C, - 35634 - 11905: 0xD68D, - 35635 - 11905: 0xD68E, - 35636 - 11905: 0xD68F, - 35637 - 11905: 0xD690, - 35638 - 11905: 0xD691, - 35639 - 11905: 0xD692, - 35640 - 11905: 0xD693, - 35641 - 11905: 0xD694, - 35642 - 11905: 0xD695, - 35643 - 11905: 0xD696, - 35644 - 11905: 0xD697, - 35645 - 11905: 0xD698, - 35646 - 11905: 0xD699, - 35647 - 11905: 0xD69A, - 35648 - 11905: 0xD69B, - 35649 - 11905: 0xD69C, - 35650 - 11905: 0xD69D, - 35651 - 11905: 0xD69E, - 35652 - 11905: 0xD69F, - 35653 - 11905: 0xD6A0, - 35654 - 11905: 0xD740, - 35655 - 11905: 0xD741, - 35656 - 11905: 0xD742, - 35657 - 11905: 0xD743, - 35658 - 11905: 0xD744, - 35659 - 11905: 0xD745, - 35660 - 11905: 0xD746, - 35661 - 11905: 0xD747, - 35662 - 11905: 0xD748, - 35663 - 11905: 0xD749, - 35664 - 11905: 0xD74A, - 35665 - 11905: 0xD74B, - 35666 - 11905: 0xD74C, - 35667 - 11905: 0xD74D, - 35668 - 11905: 0xD74E, - 35669 - 11905: 0xD74F, - 35670 - 11905: 0xD750, - 35671 - 11905: 0xD751, - 35672 - 11905: 0xD752, - 35673 - 11905: 0xD753, - 35674 - 11905: 0xD754, - 35675 - 11905: 0xD755, - 35676 - 11905: 0xD756, - 35677 - 11905: 0xD757, - 35678 - 11905: 0xD758, - 35679 - 11905: 0xD759, - 35680 - 11905: 0xD75A, - 35681 - 11905: 0xD75B, - 35682 - 11905: 0xD75C, - 35683 - 11905: 0xD75D, - 35684 - 11905: 0xD75E, - 35685 - 11905: 0xD75F, - 35686 - 11905: 0xBEAF, - 35687 - 11905: 0xD760, - 35688 - 11905: 0xD761, - 35689 - 11905: 0xD762, - 35690 - 11905: 0xD763, - 35691 - 11905: 0xD764, - 35692 - 11905: 0xC6A9, - 35693 - 11905: 0xD765, - 35694 - 11905: 0xD766, - 35695 - 11905: 0xD767, - 35696 - 11905: 0xD768, - 35697 - 11905: 0xD769, - 35698 - 11905: 0xD76A, - 35699 - 11905: 0xD76B, - 35700 - 11905: 0xD76C, - 35701 - 11905: 0xD76D, - 35702 - 11905: 0xD76E, - 35703 - 11905: 0xD76F, - 35704 - 11905: 0xD770, - 35705 - 11905: 0xD771, - 35706 - 11905: 0xD772, - 35707 - 11905: 0xD773, - 35708 - 11905: 0xD774, - 35709 - 11905: 0xD775, - 35710 - 11905: 0xD776, - 35711 - 11905: 0xD777, - 35712 - 11905: 0xD778, - 35713 - 11905: 0xD779, - 35714 - 11905: 0xD77A, - 35715 - 11905: 0xD77B, - 35716 - 11905: 0xD77C, - 35717 - 11905: 0xD77D, - 35718 - 11905: 0xD77E, - 35719 - 11905: 0xD780, - 35720 - 11905: 0xD781, - 35721 - 11905: 0xD782, - 35722 - 11905: 0xD783, - 35723 - 11905: 0xD784, - 35724 - 11905: 0xD785, - 35725 - 11905: 0xD786, - 35726 - 11905: 0xD787, - 35727 - 11905: 0xD788, - 35728 - 11905: 0xD789, - 35729 - 11905: 0xD78A, - 35730 - 11905: 0xD78B, - 35731 - 11905: 0xD78C, - 35732 - 11905: 0xD78D, - 35733 - 11905: 0xD78E, - 35734 - 11905: 0xD78F, - 35735 - 11905: 0xD790, - 35736 - 11905: 0xD791, - 35737 - 11905: 0xD792, - 35738 - 11905: 0xD793, - 35739 - 11905: 0xD794, - 35740 - 11905: 0xD795, - 35741 - 11905: 0xD796, - 35742 - 11905: 0xD797, - 35743 - 11905: 0xD798, - 35744 - 11905: 0xDAA5, - 35745 - 11905: 0xBCC6, - 35746 - 11905: 0xB6A9, - 35747 - 11905: 0xB8BC, - 35748 - 11905: 0xC8CF, - 35749 - 11905: 0xBCA5, - 35750 - 11905: 0xDAA6, - 35751 - 11905: 0xDAA7, - 35752 - 11905: 0xCCD6, - 35753 - 11905: 0xC8C3, - 35754 - 11905: 0xDAA8, - 35755 - 11905: 0xC6FD, - 35756 - 11905: 0xD799, - 35757 - 11905: 0xD1B5, - 35758 - 11905: 0xD2E9, - 35759 - 11905: 0xD1B6, - 35760 - 11905: 0xBCC7, - 35761 - 11905: 0xD79A, - 35762 - 11905: 0xBDB2, - 35763 - 11905: 0xBBE4, - 35764 - 11905: 0xDAA9, - 35765 - 11905: 0xDAAA, - 35766 - 11905: 0xD1C8, - 35767 - 11905: 0xDAAB, - 35768 - 11905: 0xD0ED, - 35769 - 11905: 0xB6EF, - 35770 - 11905: 0xC2DB, - 35771 - 11905: 0xD79B, - 35772 - 11905: 0xCBCF, - 35773 - 11905: 0xB7ED, - 35774 - 11905: 0xC9E8, - 35775 - 11905: 0xB7C3, - 35776 - 11905: 0xBEF7, - 35777 - 11905: 0xD6A4, - 35778 - 11905: 0xDAAC, - 35779 - 11905: 0xDAAD, - 35780 - 11905: 0xC6C0, - 35781 - 11905: 0xD7E7, - 35782 - 11905: 0xCAB6, - 35783 - 11905: 0xD79C, - 35784 - 11905: 0xD5A9, - 35785 - 11905: 0xCBDF, - 35786 - 11905: 0xD5EF, - 35787 - 11905: 0xDAAE, - 35788 - 11905: 0xD6DF, - 35789 - 11905: 0xB4CA, - 35790 - 11905: 0xDAB0, - 35791 - 11905: 0xDAAF, - 35792 - 11905: 0xD79D, - 35793 - 11905: 0xD2EB, - 35794 - 11905: 0xDAB1, - 35795 - 11905: 0xDAB2, - 35796 - 11905: 0xDAB3, - 35797 - 11905: 0xCAD4, - 35798 - 11905: 0xDAB4, - 35799 - 11905: 0xCAAB, - 35800 - 11905: 0xDAB5, - 35801 - 11905: 0xDAB6, - 35802 - 11905: 0xB3CF, - 35803 - 11905: 0xD6EF, - 35804 - 11905: 0xDAB7, - 35805 - 11905: 0xBBB0, - 35806 - 11905: 0xB5AE, - 35807 - 11905: 0xDAB8, - 35808 - 11905: 0xDAB9, - 35809 - 11905: 0xB9EE, - 35810 - 11905: 0xD1AF, - 35811 - 11905: 0xD2E8, - 35812 - 11905: 0xDABA, - 35813 - 11905: 0xB8C3, - 35814 - 11905: 0xCFEA, - 35815 - 11905: 0xB2EF, - 35816 - 11905: 0xDABB, - 35817 - 11905: 0xDABC, - 35818 - 11905: 0xD79E, - 35819 - 11905: 0xBDEB, - 35820 - 11905: 0xCEDC, - 35821 - 11905: 0xD3EF, - 35822 - 11905: 0xDABD, - 35823 - 11905: 0xCEF3, - 35824 - 11905: 0xDABE, - 35825 - 11905: 0xD3D5, - 35826 - 11905: 0xBBE5, - 35827 - 11905: 0xDABF, - 35828 - 11905: 0xCBB5, - 35829 - 11905: 0xCBD0, - 35830 - 11905: 0xDAC0, - 35831 - 11905: 0xC7EB, - 35832 - 11905: 0xD6EE, - 35833 - 11905: 0xDAC1, - 35834 - 11905: 0xC5B5, - 35835 - 11905: 0xB6C1, - 35836 - 11905: 0xDAC2, - 35837 - 11905: 0xB7CC, - 35838 - 11905: 0xBFCE, - 35839 - 11905: 0xDAC3, - 35840 - 11905: 0xDAC4, - 35841 - 11905: 0xCBAD, - 35842 - 11905: 0xDAC5, - 35843 - 11905: 0xB5F7, - 35844 - 11905: 0xDAC6, - 35845 - 11905: 0xC1C2, - 35846 - 11905: 0xD7BB, - 35847 - 11905: 0xDAC7, - 35848 - 11905: 0xCCB8, - 35849 - 11905: 0xD79F, - 35850 - 11905: 0xD2EA, - 35851 - 11905: 0xC4B1, - 35852 - 11905: 0xDAC8, - 35853 - 11905: 0xB5FD, - 35854 - 11905: 0xBBD1, - 35855 - 11905: 0xDAC9, - 35856 - 11905: 0xD0B3, - 35857 - 11905: 0xDACA, - 35858 - 11905: 0xDACB, - 35859 - 11905: 0xCEBD, - 35860 - 11905: 0xDACC, - 35861 - 11905: 0xDACD, - 35862 - 11905: 0xDACE, - 35863 - 11905: 0xB2F7, - 35864 - 11905: 0xDAD1, - 35865 - 11905: 0xDACF, - 35866 - 11905: 0xD1E8, - 35867 - 11905: 0xDAD0, - 35868 - 11905: 0xC3D5, - 35869 - 11905: 0xDAD2, - 35870 - 11905: 0xD7A0, - 35871 - 11905: 0xDAD3, - 35872 - 11905: 0xDAD4, - 35873 - 11905: 0xDAD5, - 35874 - 11905: 0xD0BB, - 35875 - 11905: 0xD2A5, - 35876 - 11905: 0xB0F9, - 35877 - 11905: 0xDAD6, - 35878 - 11905: 0xC7AB, - 35879 - 11905: 0xDAD7, - 35880 - 11905: 0xBDF7, - 35881 - 11905: 0xC3A1, - 35882 - 11905: 0xDAD8, - 35883 - 11905: 0xDAD9, - 35884 - 11905: 0xC3FD, - 35885 - 11905: 0xCCB7, - 35886 - 11905: 0xDADA, - 35887 - 11905: 0xDADB, - 35888 - 11905: 0xC0BE, - 35889 - 11905: 0xC6D7, - 35890 - 11905: 0xDADC, - 35891 - 11905: 0xDADD, - 35892 - 11905: 0xC7B4, - 35893 - 11905: 0xDADE, - 35894 - 11905: 0xDADF, - 35895 - 11905: 0xB9C8, - 35896 - 11905: 0xD840, - 35897 - 11905: 0xD841, - 35898 - 11905: 0xD842, - 35899 - 11905: 0xD843, - 35900 - 11905: 0xD844, - 35901 - 11905: 0xD845, - 35902 - 11905: 0xD846, - 35903 - 11905: 0xD847, - 35904 - 11905: 0xD848, - 35905 - 11905: 0xBBED, - 35906 - 11905: 0xD849, - 35907 - 11905: 0xD84A, - 35908 - 11905: 0xD84B, - 35909 - 11905: 0xD84C, - 35910 - 11905: 0xB6B9, - 35911 - 11905: 0xF4F8, - 35912 - 11905: 0xD84D, - 35913 - 11905: 0xF4F9, - 35914 - 11905: 0xD84E, - 35915 - 11905: 0xD84F, - 35916 - 11905: 0xCDE3, - 35917 - 11905: 0xD850, - 35918 - 11905: 0xD851, - 35919 - 11905: 0xD852, - 35920 - 11905: 0xD853, - 35921 - 11905: 0xD854, - 35922 - 11905: 0xD855, - 35923 - 11905: 0xD856, - 35924 - 11905: 0xD857, - 35925 - 11905: 0xF5B9, - 35926 - 11905: 0xD858, - 35927 - 11905: 0xD859, - 35928 - 11905: 0xD85A, - 35929 - 11905: 0xD85B, - 35930 - 11905: 0xEBE0, - 35931 - 11905: 0xD85C, - 35932 - 11905: 0xD85D, - 35933 - 11905: 0xD85E, - 35934 - 11905: 0xD85F, - 35935 - 11905: 0xD860, - 35936 - 11905: 0xD861, - 35937 - 11905: 0xCFF3, - 35938 - 11905: 0xBBBF, - 35939 - 11905: 0xD862, - 35940 - 11905: 0xD863, - 35941 - 11905: 0xD864, - 35942 - 11905: 0xD865, - 35943 - 11905: 0xD866, - 35944 - 11905: 0xD867, - 35945 - 11905: 0xD868, - 35946 - 11905: 0xBAC0, - 35947 - 11905: 0xD4A5, - 35948 - 11905: 0xD869, - 35949 - 11905: 0xD86A, - 35950 - 11905: 0xD86B, - 35951 - 11905: 0xD86C, - 35952 - 11905: 0xD86D, - 35953 - 11905: 0xD86E, - 35954 - 11905: 0xD86F, - 35955 - 11905: 0xE1D9, - 35956 - 11905: 0xD870, - 35957 - 11905: 0xD871, - 35958 - 11905: 0xD872, - 35959 - 11905: 0xD873, - 35960 - 11905: 0xF5F4, - 35961 - 11905: 0xB1AA, - 35962 - 11905: 0xB2F2, - 35963 - 11905: 0xD874, - 35964 - 11905: 0xD875, - 35965 - 11905: 0xD876, - 35966 - 11905: 0xD877, - 35967 - 11905: 0xD878, - 35968 - 11905: 0xD879, - 35969 - 11905: 0xD87A, - 35970 - 11905: 0xF5F5, - 35971 - 11905: 0xD87B, - 35972 - 11905: 0xD87C, - 35973 - 11905: 0xF5F7, - 35974 - 11905: 0xD87D, - 35975 - 11905: 0xD87E, - 35976 - 11905: 0xD880, - 35977 - 11905: 0xBAD1, - 35978 - 11905: 0xF5F6, - 35979 - 11905: 0xD881, - 35980 - 11905: 0xC3B2, - 35981 - 11905: 0xD882, - 35982 - 11905: 0xD883, - 35983 - 11905: 0xD884, - 35984 - 11905: 0xD885, - 35985 - 11905: 0xD886, - 35986 - 11905: 0xD887, - 35987 - 11905: 0xD888, - 35988 - 11905: 0xF5F9, - 35989 - 11905: 0xD889, - 35990 - 11905: 0xD88A, - 35991 - 11905: 0xD88B, - 35992 - 11905: 0xF5F8, - 35993 - 11905: 0xD88C, - 35994 - 11905: 0xD88D, - 35995 - 11905: 0xD88E, - 35996 - 11905: 0xD88F, - 35997 - 11905: 0xD890, - 35998 - 11905: 0xD891, - 35999 - 11905: 0xD892, - 36000 - 11905: 0xD893, - 36001 - 11905: 0xD894, - 36002 - 11905: 0xD895, - 36003 - 11905: 0xD896, - 36004 - 11905: 0xD897, - 36005 - 11905: 0xD898, - 36006 - 11905: 0xD899, - 36007 - 11905: 0xD89A, - 36008 - 11905: 0xD89B, - 36009 - 11905: 0xD89C, - 36010 - 11905: 0xD89D, - 36011 - 11905: 0xD89E, - 36012 - 11905: 0xD89F, - 36013 - 11905: 0xD8A0, - 36014 - 11905: 0xD940, - 36015 - 11905: 0xD941, - 36016 - 11905: 0xD942, - 36017 - 11905: 0xD943, - 36018 - 11905: 0xD944, - 36019 - 11905: 0xD945, - 36020 - 11905: 0xD946, - 36021 - 11905: 0xD947, - 36022 - 11905: 0xD948, - 36023 - 11905: 0xD949, - 36024 - 11905: 0xD94A, - 36025 - 11905: 0xD94B, - 36026 - 11905: 0xD94C, - 36027 - 11905: 0xD94D, - 36028 - 11905: 0xD94E, - 36029 - 11905: 0xD94F, - 36030 - 11905: 0xD950, - 36031 - 11905: 0xD951, - 36032 - 11905: 0xD952, - 36033 - 11905: 0xD953, - 36034 - 11905: 0xD954, - 36035 - 11905: 0xD955, - 36036 - 11905: 0xD956, - 36037 - 11905: 0xD957, - 36038 - 11905: 0xD958, - 36039 - 11905: 0xD959, - 36040 - 11905: 0xD95A, - 36041 - 11905: 0xD95B, - 36042 - 11905: 0xD95C, - 36043 - 11905: 0xD95D, - 36044 - 11905: 0xD95E, - 36045 - 11905: 0xD95F, - 36046 - 11905: 0xD960, - 36047 - 11905: 0xD961, - 36048 - 11905: 0xD962, - 36049 - 11905: 0xD963, - 36050 - 11905: 0xD964, - 36051 - 11905: 0xD965, - 36052 - 11905: 0xD966, - 36053 - 11905: 0xD967, - 36054 - 11905: 0xD968, - 36055 - 11905: 0xD969, - 36056 - 11905: 0xD96A, - 36057 - 11905: 0xD96B, - 36058 - 11905: 0xD96C, - 36059 - 11905: 0xD96D, - 36060 - 11905: 0xD96E, - 36061 - 11905: 0xD96F, - 36062 - 11905: 0xD970, - 36063 - 11905: 0xD971, - 36064 - 11905: 0xD972, - 36065 - 11905: 0xD973, - 36066 - 11905: 0xD974, - 36067 - 11905: 0xD975, - 36068 - 11905: 0xD976, - 36069 - 11905: 0xD977, - 36070 - 11905: 0xD978, - 36071 - 11905: 0xD979, - 36072 - 11905: 0xD97A, - 36073 - 11905: 0xD97B, - 36074 - 11905: 0xD97C, - 36075 - 11905: 0xD97D, - 36076 - 11905: 0xD97E, - 36077 - 11905: 0xD980, - 36078 - 11905: 0xD981, - 36079 - 11905: 0xD982, - 36080 - 11905: 0xD983, - 36081 - 11905: 0xD984, - 36082 - 11905: 0xD985, - 36083 - 11905: 0xD986, - 36084 - 11905: 0xD987, - 36085 - 11905: 0xD988, - 36086 - 11905: 0xD989, - 36087 - 11905: 0xD98A, - 36088 - 11905: 0xD98B, - 36089 - 11905: 0xD98C, - 36090 - 11905: 0xD98D, - 36091 - 11905: 0xD98E, - 36092 - 11905: 0xD98F, - 36093 - 11905: 0xD990, - 36094 - 11905: 0xD991, - 36095 - 11905: 0xD992, - 36096 - 11905: 0xD993, - 36097 - 11905: 0xD994, - 36098 - 11905: 0xD995, - 36099 - 11905: 0xD996, - 36100 - 11905: 0xD997, - 36101 - 11905: 0xD998, - 36102 - 11905: 0xD999, - 36103 - 11905: 0xD99A, - 36104 - 11905: 0xD99B, - 36105 - 11905: 0xD99C, - 36106 - 11905: 0xD99D, - 36107 - 11905: 0xD99E, - 36108 - 11905: 0xD99F, - 36109 - 11905: 0xD9A0, - 36110 - 11905: 0xDA40, - 36111 - 11905: 0xDA41, - 36112 - 11905: 0xDA42, - 36113 - 11905: 0xDA43, - 36114 - 11905: 0xDA44, - 36115 - 11905: 0xDA45, - 36116 - 11905: 0xDA46, - 36117 - 11905: 0xDA47, - 36118 - 11905: 0xDA48, - 36119 - 11905: 0xDA49, - 36120 - 11905: 0xDA4A, - 36121 - 11905: 0xDA4B, - 36122 - 11905: 0xDA4C, - 36123 - 11905: 0xDA4D, - 36124 - 11905: 0xDA4E, - 36125 - 11905: 0xB1B4, - 36126 - 11905: 0xD5EA, - 36127 - 11905: 0xB8BA, - 36128 - 11905: 0xDA4F, - 36129 - 11905: 0xB9B1, - 36130 - 11905: 0xB2C6, - 36131 - 11905: 0xD4F0, - 36132 - 11905: 0xCFCD, - 36133 - 11905: 0xB0DC, - 36134 - 11905: 0xD5CB, - 36135 - 11905: 0xBBF5, - 36136 - 11905: 0xD6CA, - 36137 - 11905: 0xB7B7, - 36138 - 11905: 0xCCB0, - 36139 - 11905: 0xC6B6, - 36140 - 11905: 0xB1E1, - 36141 - 11905: 0xB9BA, - 36142 - 11905: 0xD6FC, - 36143 - 11905: 0xB9E1, - 36144 - 11905: 0xB7A1, - 36145 - 11905: 0xBCFA, - 36146 - 11905: 0xEADA, - 36147 - 11905: 0xEADB, - 36148 - 11905: 0xCCF9, - 36149 - 11905: 0xB9F3, - 36150 - 11905: 0xEADC, - 36151 - 11905: 0xB4FB, - 36152 - 11905: 0xC3B3, - 36153 - 11905: 0xB7D1, - 36154 - 11905: 0xBAD8, - 36155 - 11905: 0xEADD, - 36156 - 11905: 0xD4F4, - 36157 - 11905: 0xEADE, - 36158 - 11905: 0xBCD6, - 36159 - 11905: 0xBBDF, - 36160 - 11905: 0xEADF, - 36161 - 11905: 0xC1DE, - 36162 - 11905: 0xC2B8, - 36163 - 11905: 0xD4DF, - 36164 - 11905: 0xD7CA, - 36165 - 11905: 0xEAE0, - 36166 - 11905: 0xEAE1, - 36167 - 11905: 0xEAE4, - 36168 - 11905: 0xEAE2, - 36169 - 11905: 0xEAE3, - 36170 - 11905: 0xC9DE, - 36171 - 11905: 0xB8B3, - 36172 - 11905: 0xB6C4, - 36173 - 11905: 0xEAE5, - 36174 - 11905: 0xCAEA, - 36175 - 11905: 0xC9CD, - 36176 - 11905: 0xB4CD, - 36177 - 11905: 0xDA50, - 36178 - 11905: 0xDA51, - 36179 - 11905: 0xE2D9, - 36180 - 11905: 0xC5E2, - 36181 - 11905: 0xEAE6, - 36182 - 11905: 0xC0B5, - 36183 - 11905: 0xDA52, - 36184 - 11905: 0xD7B8, - 36185 - 11905: 0xEAE7, - 36186 - 11905: 0xD7AC, - 36187 - 11905: 0xC8FC, - 36188 - 11905: 0xD8D3, - 36189 - 11905: 0xD8CD, - 36190 - 11905: 0xD4DE, - 36191 - 11905: 0xDA53, - 36192 - 11905: 0xD4F9, - 36193 - 11905: 0xC9C4, - 36194 - 11905: 0xD3AE, - 36195 - 11905: 0xB8D3, - 36196 - 11905: 0xB3E0, - 36197 - 11905: 0xDA54, - 36198 - 11905: 0xC9E2, - 36199 - 11905: 0xF4F6, - 36200 - 11905: 0xDA55, - 36201 - 11905: 0xDA56, - 36202 - 11905: 0xDA57, - 36203 - 11905: 0xBAD5, - 36204 - 11905: 0xDA58, - 36205 - 11905: 0xF4F7, - 36206 - 11905: 0xDA59, - 36207 - 11905: 0xDA5A, - 36208 - 11905: 0xD7DF, - 36209 - 11905: 0xDA5B, - 36210 - 11905: 0xDA5C, - 36211 - 11905: 0xF4F1, - 36212 - 11905: 0xB8B0, - 36213 - 11905: 0xD5D4, - 36214 - 11905: 0xB8CF, - 36215 - 11905: 0xC6F0, - 36216 - 11905: 0xDA5D, - 36217 - 11905: 0xDA5E, - 36218 - 11905: 0xDA5F, - 36219 - 11905: 0xDA60, - 36220 - 11905: 0xDA61, - 36221 - 11905: 0xDA62, - 36222 - 11905: 0xDA63, - 36223 - 11905: 0xDA64, - 36224 - 11905: 0xDA65, - 36225 - 11905: 0xB3C3, - 36226 - 11905: 0xDA66, - 36227 - 11905: 0xDA67, - 36228 - 11905: 0xF4F2, - 36229 - 11905: 0xB3AC, - 36230 - 11905: 0xDA68, - 36231 - 11905: 0xDA69, - 36232 - 11905: 0xDA6A, - 36233 - 11905: 0xDA6B, - 36234 - 11905: 0xD4BD, - 36235 - 11905: 0xC7F7, - 36236 - 11905: 0xDA6C, - 36237 - 11905: 0xDA6D, - 36238 - 11905: 0xDA6E, - 36239 - 11905: 0xDA6F, - 36240 - 11905: 0xDA70, - 36241 - 11905: 0xF4F4, - 36242 - 11905: 0xDA71, - 36243 - 11905: 0xDA72, - 36244 - 11905: 0xF4F3, - 36245 - 11905: 0xDA73, - 36246 - 11905: 0xDA74, - 36247 - 11905: 0xDA75, - 36248 - 11905: 0xDA76, - 36249 - 11905: 0xDA77, - 36250 - 11905: 0xDA78, - 36251 - 11905: 0xDA79, - 36252 - 11905: 0xDA7A, - 36253 - 11905: 0xDA7B, - 36254 - 11905: 0xDA7C, - 36255 - 11905: 0xCCCB, - 36256 - 11905: 0xDA7D, - 36257 - 11905: 0xDA7E, - 36258 - 11905: 0xDA80, - 36259 - 11905: 0xC8A4, - 36260 - 11905: 0xDA81, - 36261 - 11905: 0xDA82, - 36262 - 11905: 0xDA83, - 36263 - 11905: 0xDA84, - 36264 - 11905: 0xDA85, - 36265 - 11905: 0xDA86, - 36266 - 11905: 0xDA87, - 36267 - 11905: 0xDA88, - 36268 - 11905: 0xDA89, - 36269 - 11905: 0xDA8A, - 36270 - 11905: 0xDA8B, - 36271 - 11905: 0xDA8C, - 36272 - 11905: 0xDA8D, - 36273 - 11905: 0xF4F5, - 36274 - 11905: 0xDA8E, - 36275 - 11905: 0xD7E3, - 36276 - 11905: 0xC5BF, - 36277 - 11905: 0xF5C0, - 36278 - 11905: 0xDA8F, - 36279 - 11905: 0xDA90, - 36280 - 11905: 0xF5BB, - 36281 - 11905: 0xDA91, - 36282 - 11905: 0xF5C3, - 36283 - 11905: 0xDA92, - 36284 - 11905: 0xF5C2, - 36285 - 11905: 0xDA93, - 36286 - 11905: 0xD6BA, - 36287 - 11905: 0xF5C1, - 36288 - 11905: 0xDA94, - 36289 - 11905: 0xDA95, - 36290 - 11905: 0xDA96, - 36291 - 11905: 0xD4BE, - 36292 - 11905: 0xF5C4, - 36293 - 11905: 0xDA97, - 36294 - 11905: 0xF5CC, - 36295 - 11905: 0xDA98, - 36296 - 11905: 0xDA99, - 36297 - 11905: 0xDA9A, - 36298 - 11905: 0xDA9B, - 36299 - 11905: 0xB0CF, - 36300 - 11905: 0xB5F8, - 36301 - 11905: 0xDA9C, - 36302 - 11905: 0xF5C9, - 36303 - 11905: 0xF5CA, - 36304 - 11905: 0xDA9D, - 36305 - 11905: 0xC5DC, - 36306 - 11905: 0xDA9E, - 36307 - 11905: 0xDA9F, - 36308 - 11905: 0xDAA0, - 36309 - 11905: 0xDB40, - 36310 - 11905: 0xF5C5, - 36311 - 11905: 0xF5C6, - 36312 - 11905: 0xDB41, - 36313 - 11905: 0xDB42, - 36314 - 11905: 0xF5C7, - 36315 - 11905: 0xF5CB, - 36316 - 11905: 0xDB43, - 36317 - 11905: 0xBEE0, - 36318 - 11905: 0xF5C8, - 36319 - 11905: 0xB8FA, - 36320 - 11905: 0xDB44, - 36321 - 11905: 0xDB45, - 36322 - 11905: 0xDB46, - 36323 - 11905: 0xF5D0, - 36324 - 11905: 0xF5D3, - 36325 - 11905: 0xDB47, - 36326 - 11905: 0xDB48, - 36327 - 11905: 0xDB49, - 36328 - 11905: 0xBFE7, - 36329 - 11905: 0xDB4A, - 36330 - 11905: 0xB9F2, - 36331 - 11905: 0xF5BC, - 36332 - 11905: 0xF5CD, - 36333 - 11905: 0xDB4B, - 36334 - 11905: 0xDB4C, - 36335 - 11905: 0xC2B7, - 36336 - 11905: 0xDB4D, - 36337 - 11905: 0xDB4E, - 36338 - 11905: 0xDB4F, - 36339 - 11905: 0xCCF8, - 36340 - 11905: 0xDB50, - 36341 - 11905: 0xBCF9, - 36342 - 11905: 0xDB51, - 36343 - 11905: 0xF5CE, - 36344 - 11905: 0xF5CF, - 36345 - 11905: 0xF5D1, - 36346 - 11905: 0xB6E5, - 36347 - 11905: 0xF5D2, - 36348 - 11905: 0xDB52, - 36349 - 11905: 0xF5D5, - 36350 - 11905: 0xDB53, - 36351 - 11905: 0xDB54, - 36352 - 11905: 0xDB55, - 36353 - 11905: 0xDB56, - 36354 - 11905: 0xDB57, - 36355 - 11905: 0xDB58, - 36356 - 11905: 0xDB59, - 36357 - 11905: 0xF5BD, - 36358 - 11905: 0xDB5A, - 36359 - 11905: 0xDB5B, - 36360 - 11905: 0xDB5C, - 36361 - 11905: 0xF5D4, - 36362 - 11905: 0xD3BB, - 36363 - 11905: 0xDB5D, - 36364 - 11905: 0xB3EC, - 36365 - 11905: 0xDB5E, - 36366 - 11905: 0xDB5F, - 36367 - 11905: 0xCCA4, - 36368 - 11905: 0xDB60, - 36369 - 11905: 0xDB61, - 36370 - 11905: 0xDB62, - 36371 - 11905: 0xDB63, - 36372 - 11905: 0xF5D6, - 36373 - 11905: 0xDB64, - 36374 - 11905: 0xDB65, - 36375 - 11905: 0xDB66, - 36376 - 11905: 0xDB67, - 36377 - 11905: 0xDB68, - 36378 - 11905: 0xDB69, - 36379 - 11905: 0xDB6A, - 36380 - 11905: 0xDB6B, - 36381 - 11905: 0xF5D7, - 36382 - 11905: 0xBEE1, - 36383 - 11905: 0xF5D8, - 36384 - 11905: 0xDB6C, - 36385 - 11905: 0xDB6D, - 36386 - 11905: 0xCCDF, - 36387 - 11905: 0xF5DB, - 36388 - 11905: 0xDB6E, - 36389 - 11905: 0xDB6F, - 36390 - 11905: 0xDB70, - 36391 - 11905: 0xDB71, - 36392 - 11905: 0xDB72, - 36393 - 11905: 0xB2C8, - 36394 - 11905: 0xD7D9, - 36395 - 11905: 0xDB73, - 36396 - 11905: 0xF5D9, - 36397 - 11905: 0xDB74, - 36398 - 11905: 0xF5DA, - 36399 - 11905: 0xF5DC, - 36400 - 11905: 0xDB75, - 36401 - 11905: 0xF5E2, - 36402 - 11905: 0xDB76, - 36403 - 11905: 0xDB77, - 36404 - 11905: 0xDB78, - 36405 - 11905: 0xF5E0, - 36406 - 11905: 0xDB79, - 36407 - 11905: 0xDB7A, - 36408 - 11905: 0xDB7B, - 36409 - 11905: 0xF5DF, - 36410 - 11905: 0xF5DD, - 36411 - 11905: 0xDB7C, - 36412 - 11905: 0xDB7D, - 36413 - 11905: 0xF5E1, - 36414 - 11905: 0xDB7E, - 36415 - 11905: 0xDB80, - 36416 - 11905: 0xF5DE, - 36417 - 11905: 0xF5E4, - 36418 - 11905: 0xF5E5, - 36419 - 11905: 0xDB81, - 36420 - 11905: 0xCCE3, - 36421 - 11905: 0xDB82, - 36422 - 11905: 0xDB83, - 36423 - 11905: 0xE5BF, - 36424 - 11905: 0xB5B8, - 36425 - 11905: 0xF5E3, - 36426 - 11905: 0xF5E8, - 36427 - 11905: 0xCCA3, - 36428 - 11905: 0xDB84, - 36429 - 11905: 0xDB85, - 36430 - 11905: 0xDB86, - 36431 - 11905: 0xDB87, - 36432 - 11905: 0xDB88, - 36433 - 11905: 0xF5E6, - 36434 - 11905: 0xF5E7, - 36435 - 11905: 0xDB89, - 36436 - 11905: 0xDB8A, - 36437 - 11905: 0xDB8B, - 36438 - 11905: 0xDB8C, - 36439 - 11905: 0xDB8D, - 36440 - 11905: 0xDB8E, - 36441 - 11905: 0xF5BE, - 36442 - 11905: 0xDB8F, - 36443 - 11905: 0xDB90, - 36444 - 11905: 0xDB91, - 36445 - 11905: 0xDB92, - 36446 - 11905: 0xDB93, - 36447 - 11905: 0xDB94, - 36448 - 11905: 0xDB95, - 36449 - 11905: 0xDB96, - 36450 - 11905: 0xDB97, - 36451 - 11905: 0xDB98, - 36452 - 11905: 0xDB99, - 36453 - 11905: 0xDB9A, - 36454 - 11905: 0xB1C4, - 36455 - 11905: 0xDB9B, - 36456 - 11905: 0xDB9C, - 36457 - 11905: 0xF5BF, - 36458 - 11905: 0xDB9D, - 36459 - 11905: 0xDB9E, - 36460 - 11905: 0xB5C5, - 36461 - 11905: 0xB2E4, - 36462 - 11905: 0xDB9F, - 36463 - 11905: 0xF5EC, - 36464 - 11905: 0xF5E9, - 36465 - 11905: 0xDBA0, - 36466 - 11905: 0xB6D7, - 36467 - 11905: 0xDC40, - 36468 - 11905: 0xF5ED, - 36469 - 11905: 0xDC41, - 36470 - 11905: 0xF5EA, - 36471 - 11905: 0xDC42, - 36472 - 11905: 0xDC43, - 36473 - 11905: 0xDC44, - 36474 - 11905: 0xDC45, - 36475 - 11905: 0xDC46, - 36476 - 11905: 0xF5EB, - 36477 - 11905: 0xDC47, - 36478 - 11905: 0xDC48, - 36479 - 11905: 0xB4DA, - 36480 - 11905: 0xDC49, - 36481 - 11905: 0xD4EA, - 36482 - 11905: 0xDC4A, - 36483 - 11905: 0xDC4B, - 36484 - 11905: 0xDC4C, - 36485 - 11905: 0xF5EE, - 36486 - 11905: 0xDC4D, - 36487 - 11905: 0xB3F9, - 36488 - 11905: 0xDC4E, - 36489 - 11905: 0xDC4F, - 36490 - 11905: 0xDC50, - 36491 - 11905: 0xDC51, - 36492 - 11905: 0xDC52, - 36493 - 11905: 0xDC53, - 36494 - 11905: 0xDC54, - 36495 - 11905: 0xF5EF, - 36496 - 11905: 0xF5F1, - 36497 - 11905: 0xDC55, - 36498 - 11905: 0xDC56, - 36499 - 11905: 0xDC57, - 36500 - 11905: 0xF5F0, - 36501 - 11905: 0xDC58, - 36502 - 11905: 0xDC59, - 36503 - 11905: 0xDC5A, - 36504 - 11905: 0xDC5B, - 36505 - 11905: 0xDC5C, - 36506 - 11905: 0xDC5D, - 36507 - 11905: 0xDC5E, - 36508 - 11905: 0xF5F2, - 36509 - 11905: 0xDC5F, - 36510 - 11905: 0xF5F3, - 36511 - 11905: 0xDC60, - 36512 - 11905: 0xDC61, - 36513 - 11905: 0xDC62, - 36514 - 11905: 0xDC63, - 36515 - 11905: 0xDC64, - 36516 - 11905: 0xDC65, - 36517 - 11905: 0xDC66, - 36518 - 11905: 0xDC67, - 36519 - 11905: 0xDC68, - 36520 - 11905: 0xDC69, - 36521 - 11905: 0xDC6A, - 36522 - 11905: 0xDC6B, - 36523 - 11905: 0xC9ED, - 36524 - 11905: 0xB9AA, - 36525 - 11905: 0xDC6C, - 36526 - 11905: 0xDC6D, - 36527 - 11905: 0xC7FB, - 36528 - 11905: 0xDC6E, - 36529 - 11905: 0xDC6F, - 36530 - 11905: 0xB6E3, - 36531 - 11905: 0xDC70, - 36532 - 11905: 0xDC71, - 36533 - 11905: 0xDC72, - 36534 - 11905: 0xDC73, - 36535 - 11905: 0xDC74, - 36536 - 11905: 0xDC75, - 36537 - 11905: 0xDC76, - 36538 - 11905: 0xCCC9, - 36539 - 11905: 0xDC77, - 36540 - 11905: 0xDC78, - 36541 - 11905: 0xDC79, - 36542 - 11905: 0xDC7A, - 36543 - 11905: 0xDC7B, - 36544 - 11905: 0xDC7C, - 36545 - 11905: 0xDC7D, - 36546 - 11905: 0xDC7E, - 36547 - 11905: 0xDC80, - 36548 - 11905: 0xDC81, - 36549 - 11905: 0xDC82, - 36550 - 11905: 0xDC83, - 36551 - 11905: 0xDC84, - 36552 - 11905: 0xDC85, - 36553 - 11905: 0xDC86, - 36554 - 11905: 0xDC87, - 36555 - 11905: 0xDC88, - 36556 - 11905: 0xDC89, - 36557 - 11905: 0xDC8A, - 36558 - 11905: 0xEAA6, - 36559 - 11905: 0xDC8B, - 36560 - 11905: 0xDC8C, - 36561 - 11905: 0xDC8D, - 36562 - 11905: 0xDC8E, - 36563 - 11905: 0xDC8F, - 36564 - 11905: 0xDC90, - 36565 - 11905: 0xDC91, - 36566 - 11905: 0xDC92, - 36567 - 11905: 0xDC93, - 36568 - 11905: 0xDC94, - 36569 - 11905: 0xDC95, - 36570 - 11905: 0xDC96, - 36571 - 11905: 0xDC97, - 36572 - 11905: 0xDC98, - 36573 - 11905: 0xDC99, - 36574 - 11905: 0xDC9A, - 36575 - 11905: 0xDC9B, - 36576 - 11905: 0xDC9C, - 36577 - 11905: 0xDC9D, - 36578 - 11905: 0xDC9E, - 36579 - 11905: 0xDC9F, - 36580 - 11905: 0xDCA0, - 36581 - 11905: 0xDD40, - 36582 - 11905: 0xDD41, - 36583 - 11905: 0xDD42, - 36584 - 11905: 0xDD43, - 36585 - 11905: 0xDD44, - 36586 - 11905: 0xDD45, - 36587 - 11905: 0xDD46, - 36588 - 11905: 0xDD47, - 36589 - 11905: 0xDD48, - 36590 - 11905: 0xDD49, - 36591 - 11905: 0xDD4A, - 36592 - 11905: 0xDD4B, - 36593 - 11905: 0xDD4C, - 36594 - 11905: 0xDD4D, - 36595 - 11905: 0xDD4E, - 36596 - 11905: 0xDD4F, - 36597 - 11905: 0xDD50, - 36598 - 11905: 0xDD51, - 36599 - 11905: 0xDD52, - 36600 - 11905: 0xDD53, - 36601 - 11905: 0xDD54, - 36602 - 11905: 0xDD55, - 36603 - 11905: 0xDD56, - 36604 - 11905: 0xDD57, - 36605 - 11905: 0xDD58, - 36606 - 11905: 0xDD59, - 36607 - 11905: 0xDD5A, - 36608 - 11905: 0xDD5B, - 36609 - 11905: 0xDD5C, - 36610 - 11905: 0xDD5D, - 36611 - 11905: 0xDD5E, - 36612 - 11905: 0xDD5F, - 36613 - 11905: 0xDD60, - 36614 - 11905: 0xDD61, - 36615 - 11905: 0xDD62, - 36616 - 11905: 0xDD63, - 36617 - 11905: 0xDD64, - 36618 - 11905: 0xDD65, - 36619 - 11905: 0xDD66, - 36620 - 11905: 0xDD67, - 36621 - 11905: 0xDD68, - 36622 - 11905: 0xDD69, - 36623 - 11905: 0xDD6A, - 36624 - 11905: 0xDD6B, - 36625 - 11905: 0xDD6C, - 36626 - 11905: 0xDD6D, - 36627 - 11905: 0xDD6E, - 36628 - 11905: 0xDD6F, - 36629 - 11905: 0xDD70, - 36630 - 11905: 0xDD71, - 36631 - 11905: 0xDD72, - 36632 - 11905: 0xDD73, - 36633 - 11905: 0xDD74, - 36634 - 11905: 0xDD75, - 36635 - 11905: 0xDD76, - 36636 - 11905: 0xDD77, - 36637 - 11905: 0xDD78, - 36638 - 11905: 0xDD79, - 36639 - 11905: 0xDD7A, - 36640 - 11905: 0xDD7B, - 36641 - 11905: 0xDD7C, - 36642 - 11905: 0xDD7D, - 36643 - 11905: 0xDD7E, - 36644 - 11905: 0xDD80, - 36645 - 11905: 0xDD81, - 36646 - 11905: 0xDD82, - 36647 - 11905: 0xDD83, - 36648 - 11905: 0xDD84, - 36649 - 11905: 0xDD85, - 36650 - 11905: 0xDD86, - 36651 - 11905: 0xDD87, - 36652 - 11905: 0xDD88, - 36653 - 11905: 0xDD89, - 36654 - 11905: 0xDD8A, - 36655 - 11905: 0xDD8B, - 36656 - 11905: 0xDD8C, - 36657 - 11905: 0xDD8D, - 36658 - 11905: 0xDD8E, - 36659 - 11905: 0xDD8F, - 36660 - 11905: 0xDD90, - 36661 - 11905: 0xDD91, - 36662 - 11905: 0xDD92, - 36663 - 11905: 0xDD93, - 36664 - 11905: 0xDD94, - 36665 - 11905: 0xDD95, - 36666 - 11905: 0xDD96, - 36667 - 11905: 0xDD97, - 36668 - 11905: 0xDD98, - 36669 - 11905: 0xDD99, - 36670 - 11905: 0xDD9A, - 36671 - 11905: 0xDD9B, - 36672 - 11905: 0xDD9C, - 36673 - 11905: 0xDD9D, - 36674 - 11905: 0xDD9E, - 36675 - 11905: 0xDD9F, - 36676 - 11905: 0xDDA0, - 36677 - 11905: 0xDE40, - 36678 - 11905: 0xDE41, - 36679 - 11905: 0xDE42, - 36680 - 11905: 0xDE43, - 36681 - 11905: 0xDE44, - 36682 - 11905: 0xDE45, - 36683 - 11905: 0xDE46, - 36684 - 11905: 0xDE47, - 36685 - 11905: 0xDE48, - 36686 - 11905: 0xDE49, - 36687 - 11905: 0xDE4A, - 36688 - 11905: 0xDE4B, - 36689 - 11905: 0xDE4C, - 36690 - 11905: 0xDE4D, - 36691 - 11905: 0xDE4E, - 36692 - 11905: 0xDE4F, - 36693 - 11905: 0xDE50, - 36694 - 11905: 0xDE51, - 36695 - 11905: 0xDE52, - 36696 - 11905: 0xDE53, - 36697 - 11905: 0xDE54, - 36698 - 11905: 0xDE55, - 36699 - 11905: 0xDE56, - 36700 - 11905: 0xDE57, - 36701 - 11905: 0xDE58, - 36702 - 11905: 0xDE59, - 36703 - 11905: 0xDE5A, - 36704 - 11905: 0xDE5B, - 36705 - 11905: 0xDE5C, - 36706 - 11905: 0xDE5D, - 36707 - 11905: 0xDE5E, - 36708 - 11905: 0xDE5F, - 36709 - 11905: 0xDE60, - 36710 - 11905: 0xB3B5, - 36711 - 11905: 0xD4FE, - 36712 - 11905: 0xB9EC, - 36713 - 11905: 0xD0F9, - 36714 - 11905: 0xDE61, - 36715 - 11905: 0xE9ED, - 36716 - 11905: 0xD7AA, - 36717 - 11905: 0xE9EE, - 36718 - 11905: 0xC2D6, - 36719 - 11905: 0xC8ED, - 36720 - 11905: 0xBAE4, - 36721 - 11905: 0xE9EF, - 36722 - 11905: 0xE9F0, - 36723 - 11905: 0xE9F1, - 36724 - 11905: 0xD6E1, - 36725 - 11905: 0xE9F2, - 36726 - 11905: 0xE9F3, - 36727 - 11905: 0xE9F5, - 36728 - 11905: 0xE9F4, - 36729 - 11905: 0xE9F6, - 36730 - 11905: 0xE9F7, - 36731 - 11905: 0xC7E1, - 36732 - 11905: 0xE9F8, - 36733 - 11905: 0xD4D8, - 36734 - 11905: 0xE9F9, - 36735 - 11905: 0xBDCE, - 36736 - 11905: 0xDE62, - 36737 - 11905: 0xE9FA, - 36738 - 11905: 0xE9FB, - 36739 - 11905: 0xBDCF, - 36740 - 11905: 0xE9FC, - 36741 - 11905: 0xB8A8, - 36742 - 11905: 0xC1BE, - 36743 - 11905: 0xE9FD, - 36744 - 11905: 0xB1B2, - 36745 - 11905: 0xBBD4, - 36746 - 11905: 0xB9F5, - 36747 - 11905: 0xE9FE, - 36748 - 11905: 0xDE63, - 36749 - 11905: 0xEAA1, - 36750 - 11905: 0xEAA2, - 36751 - 11905: 0xEAA3, - 36752 - 11905: 0xB7F8, - 36753 - 11905: 0xBCAD, - 36754 - 11905: 0xDE64, - 36755 - 11905: 0xCAE4, - 36756 - 11905: 0xE0CE, - 36757 - 11905: 0xD4AF, - 36758 - 11905: 0xCFBD, - 36759 - 11905: 0xD5B7, - 36760 - 11905: 0xEAA4, - 36761 - 11905: 0xD5DE, - 36762 - 11905: 0xEAA5, - 36763 - 11905: 0xD0C1, - 36764 - 11905: 0xB9BC, - 36765 - 11905: 0xDE65, - 36766 - 11905: 0xB4C7, - 36767 - 11905: 0xB1D9, - 36768 - 11905: 0xDE66, - 36769 - 11905: 0xDE67, - 36770 - 11905: 0xDE68, - 36771 - 11905: 0xC0B1, - 36772 - 11905: 0xDE69, - 36773 - 11905: 0xDE6A, - 36774 - 11905: 0xDE6B, - 36775 - 11905: 0xDE6C, - 36776 - 11905: 0xB1E6, - 36777 - 11905: 0xB1E7, - 36778 - 11905: 0xDE6D, - 36779 - 11905: 0xB1E8, - 36780 - 11905: 0xDE6E, - 36781 - 11905: 0xDE6F, - 36782 - 11905: 0xDE70, - 36783 - 11905: 0xDE71, - 36784 - 11905: 0xB3BD, - 36785 - 11905: 0xC8E8, - 36786 - 11905: 0xDE72, - 36787 - 11905: 0xDE73, - 36788 - 11905: 0xDE74, - 36789 - 11905: 0xDE75, - 36790 - 11905: 0xE5C1, - 36791 - 11905: 0xDE76, - 36792 - 11905: 0xDE77, - 36793 - 11905: 0xB1DF, - 36794 - 11905: 0xDE78, - 36795 - 11905: 0xDE79, - 36796 - 11905: 0xDE7A, - 36797 - 11905: 0xC1C9, - 36798 - 11905: 0xB4EF, - 36799 - 11905: 0xDE7B, - 36800 - 11905: 0xDE7C, - 36801 - 11905: 0xC7A8, - 36802 - 11905: 0xD3D8, - 36803 - 11905: 0xDE7D, - 36804 - 11905: 0xC6F9, - 36805 - 11905: 0xD1B8, - 36806 - 11905: 0xDE7E, - 36807 - 11905: 0xB9FD, - 36808 - 11905: 0xC2F5, - 36809 - 11905: 0xDE80, - 36810 - 11905: 0xDE81, - 36811 - 11905: 0xDE82, - 36812 - 11905: 0xDE83, - 36813 - 11905: 0xDE84, - 36814 - 11905: 0xD3AD, - 36815 - 11905: 0xDE85, - 36816 - 11905: 0xD4CB, - 36817 - 11905: 0xBDFC, - 36818 - 11905: 0xDE86, - 36819 - 11905: 0xE5C2, - 36820 - 11905: 0xB7B5, - 36821 - 11905: 0xE5C3, - 36822 - 11905: 0xDE87, - 36823 - 11905: 0xDE88, - 36824 - 11905: 0xBBB9, - 36825 - 11905: 0xD5E2, - 36826 - 11905: 0xDE89, - 36827 - 11905: 0xBDF8, - 36828 - 11905: 0xD4B6, - 36829 - 11905: 0xCEA5, - 36830 - 11905: 0xC1AC, - 36831 - 11905: 0xB3D9, - 36832 - 11905: 0xDE8A, - 36833 - 11905: 0xDE8B, - 36834 - 11905: 0xCCF6, - 36835 - 11905: 0xDE8C, - 36836 - 11905: 0xE5C6, - 36837 - 11905: 0xE5C4, - 36838 - 11905: 0xE5C8, - 36839 - 11905: 0xDE8D, - 36840 - 11905: 0xE5CA, - 36841 - 11905: 0xE5C7, - 36842 - 11905: 0xB5CF, - 36843 - 11905: 0xC6C8, - 36844 - 11905: 0xDE8E, - 36845 - 11905: 0xB5FC, - 36846 - 11905: 0xE5C5, - 36847 - 11905: 0xDE8F, - 36848 - 11905: 0xCAF6, - 36849 - 11905: 0xDE90, - 36850 - 11905: 0xDE91, - 36851 - 11905: 0xE5C9, - 36852 - 11905: 0xDE92, - 36853 - 11905: 0xDE93, - 36854 - 11905: 0xDE94, - 36855 - 11905: 0xC3D4, - 36856 - 11905: 0xB1C5, - 36857 - 11905: 0xBCA3, - 36858 - 11905: 0xDE95, - 36859 - 11905: 0xDE96, - 36860 - 11905: 0xDE97, - 36861 - 11905: 0xD7B7, - 36862 - 11905: 0xDE98, - 36863 - 11905: 0xDE99, - 36864 - 11905: 0xCDCB, - 36865 - 11905: 0xCBCD, - 36866 - 11905: 0xCACA, - 36867 - 11905: 0xCCD3, - 36868 - 11905: 0xE5CC, - 36869 - 11905: 0xE5CB, - 36870 - 11905: 0xC4E6, - 36871 - 11905: 0xDE9A, - 36872 - 11905: 0xDE9B, - 36873 - 11905: 0xD1A1, - 36874 - 11905: 0xD1B7, - 36875 - 11905: 0xE5CD, - 36876 - 11905: 0xDE9C, - 36877 - 11905: 0xE5D0, - 36878 - 11905: 0xDE9D, - 36879 - 11905: 0xCDB8, - 36880 - 11905: 0xD6F0, - 36881 - 11905: 0xE5CF, - 36882 - 11905: 0xB5DD, - 36883 - 11905: 0xDE9E, - 36884 - 11905: 0xCDBE, - 36885 - 11905: 0xDE9F, - 36886 - 11905: 0xE5D1, - 36887 - 11905: 0xB6BA, - 36888 - 11905: 0xDEA0, - 36889 - 11905: 0xDF40, - 36890 - 11905: 0xCDA8, - 36891 - 11905: 0xB9E4, - 36892 - 11905: 0xDF41, - 36893 - 11905: 0xCAC5, - 36894 - 11905: 0xB3D1, - 36895 - 11905: 0xCBD9, - 36896 - 11905: 0xD4EC, - 36897 - 11905: 0xE5D2, - 36898 - 11905: 0xB7EA, - 36899 - 11905: 0xDF42, - 36900 - 11905: 0xDF43, - 36901 - 11905: 0xDF44, - 36902 - 11905: 0xE5CE, - 36903 - 11905: 0xDF45, - 36904 - 11905: 0xDF46, - 36905 - 11905: 0xDF47, - 36906 - 11905: 0xDF48, - 36907 - 11905: 0xDF49, - 36908 - 11905: 0xDF4A, - 36909 - 11905: 0xE5D5, - 36910 - 11905: 0xB4FE, - 36911 - 11905: 0xE5D6, - 36912 - 11905: 0xDF4B, - 36913 - 11905: 0xDF4C, - 36914 - 11905: 0xDF4D, - 36915 - 11905: 0xDF4E, - 36916 - 11905: 0xDF4F, - 36917 - 11905: 0xE5D3, - 36918 - 11905: 0xE5D4, - 36919 - 11905: 0xDF50, - 36920 - 11905: 0xD2DD, - 36921 - 11905: 0xDF51, - 36922 - 11905: 0xDF52, - 36923 - 11905: 0xC2DF, - 36924 - 11905: 0xB1C6, - 36925 - 11905: 0xDF53, - 36926 - 11905: 0xD3E2, - 36927 - 11905: 0xDF54, - 36928 - 11905: 0xDF55, - 36929 - 11905: 0xB6DD, - 36930 - 11905: 0xCBEC, - 36931 - 11905: 0xDF56, - 36932 - 11905: 0xE5D7, - 36933 - 11905: 0xDF57, - 36934 - 11905: 0xDF58, - 36935 - 11905: 0xD3F6, - 36936 - 11905: 0xDF59, - 36937 - 11905: 0xDF5A, - 36938 - 11905: 0xDF5B, - 36939 - 11905: 0xDF5C, - 36940 - 11905: 0xDF5D, - 36941 - 11905: 0xB1E9, - 36942 - 11905: 0xDF5E, - 36943 - 11905: 0xB6F4, - 36944 - 11905: 0xE5DA, - 36945 - 11905: 0xE5D8, - 36946 - 11905: 0xE5D9, - 36947 - 11905: 0xB5C0, - 36948 - 11905: 0xDF5F, - 36949 - 11905: 0xDF60, - 36950 - 11905: 0xDF61, - 36951 - 11905: 0xD2C5, - 36952 - 11905: 0xE5DC, - 36953 - 11905: 0xDF62, - 36954 - 11905: 0xDF63, - 36955 - 11905: 0xE5DE, - 36956 - 11905: 0xDF64, - 36957 - 11905: 0xDF65, - 36958 - 11905: 0xDF66, - 36959 - 11905: 0xDF67, - 36960 - 11905: 0xDF68, - 36961 - 11905: 0xDF69, - 36962 - 11905: 0xE5DD, - 36963 - 11905: 0xC7B2, - 36964 - 11905: 0xDF6A, - 36965 - 11905: 0xD2A3, - 36966 - 11905: 0xDF6B, - 36967 - 11905: 0xDF6C, - 36968 - 11905: 0xE5DB, - 36969 - 11905: 0xDF6D, - 36970 - 11905: 0xDF6E, - 36971 - 11905: 0xDF6F, - 36972 - 11905: 0xDF70, - 36973 - 11905: 0xD4E2, - 36974 - 11905: 0xD5DA, - 36975 - 11905: 0xDF71, - 36976 - 11905: 0xDF72, - 36977 - 11905: 0xDF73, - 36978 - 11905: 0xDF74, - 36979 - 11905: 0xDF75, - 36980 - 11905: 0xE5E0, - 36981 - 11905: 0xD7F1, - 36982 - 11905: 0xDF76, - 36983 - 11905: 0xDF77, - 36984 - 11905: 0xDF78, - 36985 - 11905: 0xDF79, - 36986 - 11905: 0xDF7A, - 36987 - 11905: 0xDF7B, - 36988 - 11905: 0xDF7C, - 36989 - 11905: 0xE5E1, - 36990 - 11905: 0xDF7D, - 36991 - 11905: 0xB1DC, - 36992 - 11905: 0xD1FB, - 36993 - 11905: 0xDF7E, - 36994 - 11905: 0xE5E2, - 36995 - 11905: 0xE5E4, - 36996 - 11905: 0xDF80, - 36997 - 11905: 0xDF81, - 36998 - 11905: 0xDF82, - 36999 - 11905: 0xDF83, - 37000 - 11905: 0xE5E3, - 37001 - 11905: 0xDF84, - 37002 - 11905: 0xDF85, - 37003 - 11905: 0xE5E5, - 37004 - 11905: 0xDF86, - 37005 - 11905: 0xDF87, - 37006 - 11905: 0xDF88, - 37007 - 11905: 0xDF89, - 37008 - 11905: 0xDF8A, - 37009 - 11905: 0xD2D8, - 37010 - 11905: 0xDF8B, - 37011 - 11905: 0xB5CB, - 37012 - 11905: 0xDF8C, - 37013 - 11905: 0xE7DF, - 37014 - 11905: 0xDF8D, - 37015 - 11905: 0xDAF5, - 37016 - 11905: 0xDF8E, - 37017 - 11905: 0xDAF8, - 37018 - 11905: 0xDF8F, - 37019 - 11905: 0xDAF6, - 37020 - 11905: 0xDF90, - 37021 - 11905: 0xDAF7, - 37022 - 11905: 0xDF91, - 37023 - 11905: 0xDF92, - 37024 - 11905: 0xDF93, - 37025 - 11905: 0xDAFA, - 37026 - 11905: 0xD0CF, - 37027 - 11905: 0xC4C7, - 37028 - 11905: 0xDF94, - 37029 - 11905: 0xDF95, - 37030 - 11905: 0xB0EE, - 37031 - 11905: 0xDF96, - 37032 - 11905: 0xDF97, - 37033 - 11905: 0xDF98, - 37034 - 11905: 0xD0B0, - 37035 - 11905: 0xDF99, - 37036 - 11905: 0xDAF9, - 37037 - 11905: 0xDF9A, - 37038 - 11905: 0xD3CA, - 37039 - 11905: 0xBAAA, - 37040 - 11905: 0xDBA2, - 37041 - 11905: 0xC7F1, - 37042 - 11905: 0xDF9B, - 37043 - 11905: 0xDAFC, - 37044 - 11905: 0xDAFB, - 37045 - 11905: 0xC9DB, - 37046 - 11905: 0xDAFD, - 37047 - 11905: 0xDF9C, - 37048 - 11905: 0xDBA1, - 37049 - 11905: 0xD7DE, - 37050 - 11905: 0xDAFE, - 37051 - 11905: 0xC1DA, - 37052 - 11905: 0xDF9D, - 37053 - 11905: 0xDF9E, - 37054 - 11905: 0xDBA5, - 37055 - 11905: 0xDF9F, - 37056 - 11905: 0xDFA0, - 37057 - 11905: 0xD3F4, - 37058 - 11905: 0xE040, - 37059 - 11905: 0xE041, - 37060 - 11905: 0xDBA7, - 37061 - 11905: 0xDBA4, - 37062 - 11905: 0xE042, - 37063 - 11905: 0xDBA8, - 37064 - 11905: 0xE043, - 37065 - 11905: 0xE044, - 37066 - 11905: 0xBDBC, - 37067 - 11905: 0xE045, - 37068 - 11905: 0xE046, - 37069 - 11905: 0xE047, - 37070 - 11905: 0xC0C9, - 37071 - 11905: 0xDBA3, - 37072 - 11905: 0xDBA6, - 37073 - 11905: 0xD6A3, - 37074 - 11905: 0xE048, - 37075 - 11905: 0xDBA9, - 37076 - 11905: 0xE049, - 37077 - 11905: 0xE04A, - 37078 - 11905: 0xE04B, - 37079 - 11905: 0xDBAD, - 37080 - 11905: 0xE04C, - 37081 - 11905: 0xE04D, - 37082 - 11905: 0xE04E, - 37083 - 11905: 0xDBAE, - 37084 - 11905: 0xDBAC, - 37085 - 11905: 0xBAC2, - 37086 - 11905: 0xE04F, - 37087 - 11905: 0xE050, - 37088 - 11905: 0xE051, - 37089 - 11905: 0xBFA4, - 37090 - 11905: 0xDBAB, - 37091 - 11905: 0xE052, - 37092 - 11905: 0xE053, - 37093 - 11905: 0xE054, - 37094 - 11905: 0xDBAA, - 37095 - 11905: 0xD4C7, - 37096 - 11905: 0xB2BF, - 37097 - 11905: 0xE055, - 37098 - 11905: 0xE056, - 37099 - 11905: 0xDBAF, - 37100 - 11905: 0xE057, - 37101 - 11905: 0xB9F9, - 37102 - 11905: 0xE058, - 37103 - 11905: 0xDBB0, - 37104 - 11905: 0xE059, - 37105 - 11905: 0xE05A, - 37106 - 11905: 0xE05B, - 37107 - 11905: 0xE05C, - 37108 - 11905: 0xB3BB, - 37109 - 11905: 0xE05D, - 37110 - 11905: 0xE05E, - 37111 - 11905: 0xE05F, - 37112 - 11905: 0xB5A6, - 37113 - 11905: 0xE060, - 37114 - 11905: 0xE061, - 37115 - 11905: 0xE062, - 37116 - 11905: 0xE063, - 37117 - 11905: 0xB6BC, - 37118 - 11905: 0xDBB1, - 37119 - 11905: 0xE064, - 37120 - 11905: 0xE065, - 37121 - 11905: 0xE066, - 37122 - 11905: 0xB6F5, - 37123 - 11905: 0xE067, - 37124 - 11905: 0xDBB2, - 37125 - 11905: 0xE068, - 37126 - 11905: 0xE069, - 37127 - 11905: 0xE06A, - 37128 - 11905: 0xE06B, - 37129 - 11905: 0xE06C, - 37130 - 11905: 0xE06D, - 37131 - 11905: 0xE06E, - 37132 - 11905: 0xE06F, - 37133 - 11905: 0xE070, - 37134 - 11905: 0xE071, - 37135 - 11905: 0xE072, - 37136 - 11905: 0xE073, - 37137 - 11905: 0xE074, - 37138 - 11905: 0xE075, - 37139 - 11905: 0xE076, - 37140 - 11905: 0xE077, - 37141 - 11905: 0xE078, - 37142 - 11905: 0xE079, - 37143 - 11905: 0xE07A, - 37144 - 11905: 0xE07B, - 37145 - 11905: 0xB1C9, - 37146 - 11905: 0xE07C, - 37147 - 11905: 0xE07D, - 37148 - 11905: 0xE07E, - 37149 - 11905: 0xE080, - 37150 - 11905: 0xDBB4, - 37151 - 11905: 0xE081, - 37152 - 11905: 0xE082, - 37153 - 11905: 0xE083, - 37154 - 11905: 0xDBB3, - 37155 - 11905: 0xDBB5, - 37156 - 11905: 0xE084, - 37157 - 11905: 0xE085, - 37158 - 11905: 0xE086, - 37159 - 11905: 0xE087, - 37160 - 11905: 0xE088, - 37161 - 11905: 0xE089, - 37162 - 11905: 0xE08A, - 37163 - 11905: 0xE08B, - 37164 - 11905: 0xE08C, - 37165 - 11905: 0xE08D, - 37166 - 11905: 0xE08E, - 37167 - 11905: 0xDBB7, - 37168 - 11905: 0xE08F, - 37169 - 11905: 0xDBB6, - 37170 - 11905: 0xE090, - 37171 - 11905: 0xE091, - 37172 - 11905: 0xE092, - 37173 - 11905: 0xE093, - 37174 - 11905: 0xE094, - 37175 - 11905: 0xE095, - 37176 - 11905: 0xE096, - 37177 - 11905: 0xDBB8, - 37178 - 11905: 0xE097, - 37179 - 11905: 0xE098, - 37180 - 11905: 0xE099, - 37181 - 11905: 0xE09A, - 37182 - 11905: 0xE09B, - 37183 - 11905: 0xE09C, - 37184 - 11905: 0xE09D, - 37185 - 11905: 0xE09E, - 37186 - 11905: 0xE09F, - 37187 - 11905: 0xDBB9, - 37188 - 11905: 0xE0A0, - 37189 - 11905: 0xE140, - 37190 - 11905: 0xDBBA, - 37191 - 11905: 0xE141, - 37192 - 11905: 0xE142, - 37193 - 11905: 0xD3CF, - 37194 - 11905: 0xF4FA, - 37195 - 11905: 0xC7F5, - 37196 - 11905: 0xD7C3, - 37197 - 11905: 0xC5E4, - 37198 - 11905: 0xF4FC, - 37199 - 11905: 0xF4FD, - 37200 - 11905: 0xF4FB, - 37201 - 11905: 0xE143, - 37202 - 11905: 0xBEC6, - 37203 - 11905: 0xE144, - 37204 - 11905: 0xE145, - 37205 - 11905: 0xE146, - 37206 - 11905: 0xE147, - 37207 - 11905: 0xD0EF, - 37208 - 11905: 0xE148, - 37209 - 11905: 0xE149, - 37210 - 11905: 0xB7D3, - 37211 - 11905: 0xE14A, - 37212 - 11905: 0xE14B, - 37213 - 11905: 0xD4CD, - 37214 - 11905: 0xCCAA, - 37215 - 11905: 0xE14C, - 37216 - 11905: 0xE14D, - 37217 - 11905: 0xF5A2, - 37218 - 11905: 0xF5A1, - 37219 - 11905: 0xBAA8, - 37220 - 11905: 0xF4FE, - 37221 - 11905: 0xCBD6, - 37222 - 11905: 0xE14E, - 37223 - 11905: 0xE14F, - 37224 - 11905: 0xE150, - 37225 - 11905: 0xF5A4, - 37226 - 11905: 0xC0D2, - 37227 - 11905: 0xE151, - 37228 - 11905: 0xB3EA, - 37229 - 11905: 0xE152, - 37230 - 11905: 0xCDAA, - 37231 - 11905: 0xF5A5, - 37232 - 11905: 0xF5A3, - 37233 - 11905: 0xBDB4, - 37234 - 11905: 0xF5A8, - 37235 - 11905: 0xE153, - 37236 - 11905: 0xF5A9, - 37237 - 11905: 0xBDCD, - 37238 - 11905: 0xC3B8, - 37239 - 11905: 0xBFE1, - 37240 - 11905: 0xCBE1, - 37241 - 11905: 0xF5AA, - 37242 - 11905: 0xE154, - 37243 - 11905: 0xE155, - 37244 - 11905: 0xE156, - 37245 - 11905: 0xF5A6, - 37246 - 11905: 0xF5A7, - 37247 - 11905: 0xC4F0, - 37248 - 11905: 0xE157, - 37249 - 11905: 0xE158, - 37250 - 11905: 0xE159, - 37251 - 11905: 0xE15A, - 37252 - 11905: 0xE15B, - 37253 - 11905: 0xF5AC, - 37254 - 11905: 0xE15C, - 37255 - 11905: 0xB4BC, - 37256 - 11905: 0xE15D, - 37257 - 11905: 0xD7ED, - 37258 - 11905: 0xE15E, - 37259 - 11905: 0xB4D7, - 37260 - 11905: 0xF5AB, - 37261 - 11905: 0xF5AE, - 37262 - 11905: 0xE15F, - 37263 - 11905: 0xE160, - 37264 - 11905: 0xF5AD, - 37265 - 11905: 0xF5AF, - 37266 - 11905: 0xD0D1, - 37267 - 11905: 0xE161, - 37268 - 11905: 0xE162, - 37269 - 11905: 0xE163, - 37270 - 11905: 0xE164, - 37271 - 11905: 0xE165, - 37272 - 11905: 0xE166, - 37273 - 11905: 0xE167, - 37274 - 11905: 0xC3D1, - 37275 - 11905: 0xC8A9, - 37276 - 11905: 0xE168, - 37277 - 11905: 0xE169, - 37278 - 11905: 0xE16A, - 37279 - 11905: 0xE16B, - 37280 - 11905: 0xE16C, - 37281 - 11905: 0xE16D, - 37282 - 11905: 0xF5B0, - 37283 - 11905: 0xF5B1, - 37284 - 11905: 0xE16E, - 37285 - 11905: 0xE16F, - 37286 - 11905: 0xE170, - 37287 - 11905: 0xE171, - 37288 - 11905: 0xE172, - 37289 - 11905: 0xE173, - 37290 - 11905: 0xF5B2, - 37291 - 11905: 0xE174, - 37292 - 11905: 0xE175, - 37293 - 11905: 0xF5B3, - 37294 - 11905: 0xF5B4, - 37295 - 11905: 0xF5B5, - 37296 - 11905: 0xE176, - 37297 - 11905: 0xE177, - 37298 - 11905: 0xE178, - 37299 - 11905: 0xE179, - 37300 - 11905: 0xF5B7, - 37301 - 11905: 0xF5B6, - 37302 - 11905: 0xE17A, - 37303 - 11905: 0xE17B, - 37304 - 11905: 0xE17C, - 37305 - 11905: 0xE17D, - 37306 - 11905: 0xF5B8, - 37307 - 11905: 0xE17E, - 37308 - 11905: 0xE180, - 37309 - 11905: 0xE181, - 37310 - 11905: 0xE182, - 37311 - 11905: 0xE183, - 37312 - 11905: 0xE184, - 37313 - 11905: 0xE185, - 37314 - 11905: 0xE186, - 37315 - 11905: 0xE187, - 37316 - 11905: 0xE188, - 37317 - 11905: 0xE189, - 37318 - 11905: 0xE18A, - 37319 - 11905: 0xB2C9, - 37320 - 11905: 0xE18B, - 37321 - 11905: 0xD3D4, - 37322 - 11905: 0xCACD, - 37323 - 11905: 0xE18C, - 37324 - 11905: 0xC0EF, - 37325 - 11905: 0xD6D8, - 37326 - 11905: 0xD2B0, - 37327 - 11905: 0xC1BF, - 37328 - 11905: 0xE18D, - 37329 - 11905: 0xBDF0, - 37330 - 11905: 0xE18E, - 37331 - 11905: 0xE18F, - 37332 - 11905: 0xE190, - 37333 - 11905: 0xE191, - 37334 - 11905: 0xE192, - 37335 - 11905: 0xE193, - 37336 - 11905: 0xE194, - 37337 - 11905: 0xE195, - 37338 - 11905: 0xE196, - 37339 - 11905: 0xE197, - 37340 - 11905: 0xB8AA, - 37341 - 11905: 0xE198, - 37342 - 11905: 0xE199, - 37343 - 11905: 0xE19A, - 37344 - 11905: 0xE19B, - 37345 - 11905: 0xE19C, - 37346 - 11905: 0xE19D, - 37347 - 11905: 0xE19E, - 37348 - 11905: 0xE19F, - 37349 - 11905: 0xE1A0, - 37350 - 11905: 0xE240, - 37351 - 11905: 0xE241, - 37352 - 11905: 0xE242, - 37353 - 11905: 0xE243, - 37354 - 11905: 0xE244, - 37355 - 11905: 0xE245, - 37356 - 11905: 0xE246, - 37357 - 11905: 0xE247, - 37358 - 11905: 0xE248, - 37359 - 11905: 0xE249, - 37360 - 11905: 0xE24A, - 37361 - 11905: 0xE24B, - 37362 - 11905: 0xE24C, - 37363 - 11905: 0xE24D, - 37364 - 11905: 0xE24E, - 37365 - 11905: 0xE24F, - 37366 - 11905: 0xE250, - 37367 - 11905: 0xE251, - 37368 - 11905: 0xE252, - 37369 - 11905: 0xE253, - 37370 - 11905: 0xE254, - 37371 - 11905: 0xE255, - 37372 - 11905: 0xE256, - 37373 - 11905: 0xE257, - 37374 - 11905: 0xE258, - 37375 - 11905: 0xE259, - 37376 - 11905: 0xE25A, - 37377 - 11905: 0xE25B, - 37378 - 11905: 0xE25C, - 37379 - 11905: 0xE25D, - 37380 - 11905: 0xE25E, - 37381 - 11905: 0xE25F, - 37382 - 11905: 0xE260, - 37383 - 11905: 0xE261, - 37384 - 11905: 0xE262, - 37385 - 11905: 0xE263, - 37386 - 11905: 0xE264, - 37387 - 11905: 0xE265, - 37388 - 11905: 0xE266, - 37389 - 11905: 0xE267, - 37390 - 11905: 0xE268, - 37391 - 11905: 0xE269, - 37392 - 11905: 0xE26A, - 37393 - 11905: 0xE26B, - 37394 - 11905: 0xE26C, - 37395 - 11905: 0xE26D, - 37396 - 11905: 0xE26E, - 37397 - 11905: 0xE26F, - 37398 - 11905: 0xE270, - 37399 - 11905: 0xE271, - 37400 - 11905: 0xE272, - 37401 - 11905: 0xE273, - 37402 - 11905: 0xE274, - 37403 - 11905: 0xE275, - 37404 - 11905: 0xE276, - 37405 - 11905: 0xE277, - 37406 - 11905: 0xE278, - 37407 - 11905: 0xE279, - 37408 - 11905: 0xE27A, - 37409 - 11905: 0xE27B, - 37410 - 11905: 0xE27C, - 37411 - 11905: 0xE27D, - 37412 - 11905: 0xE27E, - 37413 - 11905: 0xE280, - 37414 - 11905: 0xE281, - 37415 - 11905: 0xE282, - 37416 - 11905: 0xE283, - 37417 - 11905: 0xE284, - 37418 - 11905: 0xE285, - 37419 - 11905: 0xE286, - 37420 - 11905: 0xE287, - 37421 - 11905: 0xE288, - 37422 - 11905: 0xE289, - 37423 - 11905: 0xE28A, - 37424 - 11905: 0xE28B, - 37425 - 11905: 0xE28C, - 37426 - 11905: 0xE28D, - 37427 - 11905: 0xE28E, - 37428 - 11905: 0xE28F, - 37429 - 11905: 0xE290, - 37430 - 11905: 0xE291, - 37431 - 11905: 0xE292, - 37432 - 11905: 0xE293, - 37433 - 11905: 0xE294, - 37434 - 11905: 0xE295, - 37435 - 11905: 0xE296, - 37436 - 11905: 0xE297, - 37437 - 11905: 0xE298, - 37438 - 11905: 0xE299, - 37439 - 11905: 0xE29A, - 37440 - 11905: 0xE29B, - 37441 - 11905: 0xE29C, - 37442 - 11905: 0xE29D, - 37443 - 11905: 0xE29E, - 37444 - 11905: 0xE29F, - 37445 - 11905: 0xE2A0, - 37446 - 11905: 0xE340, - 37447 - 11905: 0xE341, - 37448 - 11905: 0xE342, - 37449 - 11905: 0xE343, - 37450 - 11905: 0xE344, - 37451 - 11905: 0xE345, - 37452 - 11905: 0xE346, - 37453 - 11905: 0xE347, - 37454 - 11905: 0xE348, - 37455 - 11905: 0xE349, - 37456 - 11905: 0xE34A, - 37457 - 11905: 0xE34B, - 37458 - 11905: 0xE34C, - 37459 - 11905: 0xE34D, - 37460 - 11905: 0xE34E, - 37461 - 11905: 0xE34F, - 37462 - 11905: 0xE350, - 37463 - 11905: 0xE351, - 37464 - 11905: 0xE352, - 37465 - 11905: 0xE353, - 37466 - 11905: 0xE354, - 37467 - 11905: 0xE355, - 37468 - 11905: 0xE356, - 37469 - 11905: 0xE357, - 37470 - 11905: 0xE358, - 37471 - 11905: 0xE359, - 37472 - 11905: 0xE35A, - 37473 - 11905: 0xE35B, - 37474 - 11905: 0xE35C, - 37475 - 11905: 0xE35D, - 37476 - 11905: 0xE35E, - 37477 - 11905: 0xE35F, - 37478 - 11905: 0xE360, - 37479 - 11905: 0xE361, - 37480 - 11905: 0xE362, - 37481 - 11905: 0xE363, - 37482 - 11905: 0xE364, - 37483 - 11905: 0xE365, - 37484 - 11905: 0xE366, - 37485 - 11905: 0xE367, - 37486 - 11905: 0xE368, - 37487 - 11905: 0xE369, - 37488 - 11905: 0xE36A, - 37489 - 11905: 0xE36B, - 37490 - 11905: 0xE36C, - 37491 - 11905: 0xE36D, - 37492 - 11905: 0xBCF8, - 37493 - 11905: 0xE36E, - 37494 - 11905: 0xE36F, - 37495 - 11905: 0xE370, - 37496 - 11905: 0xE371, - 37497 - 11905: 0xE372, - 37498 - 11905: 0xE373, - 37499 - 11905: 0xE374, - 37500 - 11905: 0xE375, - 37501 - 11905: 0xE376, - 37502 - 11905: 0xE377, - 37503 - 11905: 0xE378, - 37504 - 11905: 0xE379, - 37505 - 11905: 0xE37A, - 37506 - 11905: 0xE37B, - 37507 - 11905: 0xE37C, - 37508 - 11905: 0xE37D, - 37509 - 11905: 0xE37E, - 37510 - 11905: 0xE380, - 37511 - 11905: 0xE381, - 37512 - 11905: 0xE382, - 37513 - 11905: 0xE383, - 37514 - 11905: 0xE384, - 37515 - 11905: 0xE385, - 37516 - 11905: 0xE386, - 37517 - 11905: 0xE387, - 37518 - 11905: 0xF6C6, - 37519 - 11905: 0xE388, - 37520 - 11905: 0xE389, - 37521 - 11905: 0xE38A, - 37522 - 11905: 0xE38B, - 37523 - 11905: 0xE38C, - 37524 - 11905: 0xE38D, - 37525 - 11905: 0xE38E, - 37526 - 11905: 0xE38F, - 37527 - 11905: 0xE390, - 37528 - 11905: 0xE391, - 37529 - 11905: 0xE392, - 37530 - 11905: 0xE393, - 37531 - 11905: 0xE394, - 37532 - 11905: 0xE395, - 37533 - 11905: 0xE396, - 37534 - 11905: 0xE397, - 37535 - 11905: 0xE398, - 37536 - 11905: 0xE399, - 37537 - 11905: 0xE39A, - 37538 - 11905: 0xE39B, - 37539 - 11905: 0xE39C, - 37540 - 11905: 0xE39D, - 37541 - 11905: 0xE39E, - 37542 - 11905: 0xE39F, - 37543 - 11905: 0xE3A0, - 37544 - 11905: 0xE440, - 37545 - 11905: 0xE441, - 37546 - 11905: 0xE442, - 37547 - 11905: 0xE443, - 37548 - 11905: 0xE444, - 37549 - 11905: 0xE445, - 37550 - 11905: 0xF6C7, - 37551 - 11905: 0xE446, - 37552 - 11905: 0xE447, - 37553 - 11905: 0xE448, - 37554 - 11905: 0xE449, - 37555 - 11905: 0xE44A, - 37556 - 11905: 0xE44B, - 37557 - 11905: 0xE44C, - 37558 - 11905: 0xE44D, - 37559 - 11905: 0xE44E, - 37560 - 11905: 0xE44F, - 37561 - 11905: 0xE450, - 37562 - 11905: 0xE451, - 37563 - 11905: 0xE452, - 37564 - 11905: 0xE453, - 37565 - 11905: 0xE454, - 37566 - 11905: 0xE455, - 37567 - 11905: 0xE456, - 37568 - 11905: 0xE457, - 37569 - 11905: 0xE458, - 37570 - 11905: 0xE459, - 37571 - 11905: 0xE45A, - 37572 - 11905: 0xE45B, - 37573 - 11905: 0xE45C, - 37574 - 11905: 0xE45D, - 37575 - 11905: 0xE45E, - 37576 - 11905: 0xF6C8, - 37577 - 11905: 0xE45F, - 37578 - 11905: 0xE460, - 37579 - 11905: 0xE461, - 37580 - 11905: 0xE462, - 37581 - 11905: 0xE463, - 37582 - 11905: 0xE464, - 37583 - 11905: 0xE465, - 37584 - 11905: 0xE466, - 37585 - 11905: 0xE467, - 37586 - 11905: 0xE468, - 37587 - 11905: 0xE469, - 37588 - 11905: 0xE46A, - 37589 - 11905: 0xE46B, - 37590 - 11905: 0xE46C, - 37591 - 11905: 0xE46D, - 37592 - 11905: 0xE46E, - 37593 - 11905: 0xE46F, - 37594 - 11905: 0xE470, - 37595 - 11905: 0xE471, - 37596 - 11905: 0xE472, - 37597 - 11905: 0xE473, - 37598 - 11905: 0xE474, - 37599 - 11905: 0xE475, - 37600 - 11905: 0xE476, - 37601 - 11905: 0xE477, - 37602 - 11905: 0xE478, - 37603 - 11905: 0xE479, - 37604 - 11905: 0xE47A, - 37605 - 11905: 0xE47B, - 37606 - 11905: 0xE47C, - 37607 - 11905: 0xE47D, - 37608 - 11905: 0xE47E, - 37609 - 11905: 0xE480, - 37610 - 11905: 0xE481, - 37611 - 11905: 0xE482, - 37612 - 11905: 0xE483, - 37613 - 11905: 0xE484, - 37614 - 11905: 0xE485, - 37615 - 11905: 0xE486, - 37616 - 11905: 0xE487, - 37617 - 11905: 0xE488, - 37618 - 11905: 0xE489, - 37619 - 11905: 0xE48A, - 37620 - 11905: 0xE48B, - 37621 - 11905: 0xE48C, - 37622 - 11905: 0xE48D, - 37623 - 11905: 0xE48E, - 37624 - 11905: 0xE48F, - 37625 - 11905: 0xE490, - 37626 - 11905: 0xE491, - 37627 - 11905: 0xE492, - 37628 - 11905: 0xE493, - 37629 - 11905: 0xE494, - 37630 - 11905: 0xE495, - 37631 - 11905: 0xE496, - 37632 - 11905: 0xE497, - 37633 - 11905: 0xE498, - 37634 - 11905: 0xE499, - 37635 - 11905: 0xE49A, - 37636 - 11905: 0xE49B, - 37637 - 11905: 0xE49C, - 37638 - 11905: 0xE49D, - 37639 - 11905: 0xE49E, - 37640 - 11905: 0xE49F, - 37641 - 11905: 0xE4A0, - 37642 - 11905: 0xE540, - 37643 - 11905: 0xE541, - 37644 - 11905: 0xE542, - 37645 - 11905: 0xE543, - 37646 - 11905: 0xE544, - 37647 - 11905: 0xE545, - 37648 - 11905: 0xE546, - 37649 - 11905: 0xE547, - 37650 - 11905: 0xE548, - 37651 - 11905: 0xE549, - 37652 - 11905: 0xE54A, - 37653 - 11905: 0xE54B, - 37654 - 11905: 0xE54C, - 37655 - 11905: 0xE54D, - 37656 - 11905: 0xE54E, - 37657 - 11905: 0xE54F, - 37658 - 11905: 0xE550, - 37659 - 11905: 0xE551, - 37660 - 11905: 0xE552, - 37661 - 11905: 0xE553, - 37662 - 11905: 0xE554, - 37663 - 11905: 0xE555, - 37664 - 11905: 0xE556, - 37665 - 11905: 0xE557, - 37666 - 11905: 0xE558, - 37667 - 11905: 0xE559, - 37668 - 11905: 0xE55A, - 37669 - 11905: 0xE55B, - 37670 - 11905: 0xE55C, - 37671 - 11905: 0xE55D, - 37672 - 11905: 0xE55E, - 37673 - 11905: 0xE55F, - 37674 - 11905: 0xE560, - 37675 - 11905: 0xE561, - 37676 - 11905: 0xE562, - 37677 - 11905: 0xE563, - 37678 - 11905: 0xE564, - 37679 - 11905: 0xE565, - 37680 - 11905: 0xE566, - 37681 - 11905: 0xE567, - 37682 - 11905: 0xE568, - 37683 - 11905: 0xE569, - 37684 - 11905: 0xE56A, - 37685 - 11905: 0xE56B, - 37686 - 11905: 0xE56C, - 37687 - 11905: 0xE56D, - 37688 - 11905: 0xE56E, - 37689 - 11905: 0xE56F, - 37690 - 11905: 0xE570, - 37691 - 11905: 0xE571, - 37692 - 11905: 0xE572, - 37693 - 11905: 0xE573, - 37694 - 11905: 0xF6C9, - 37695 - 11905: 0xE574, - 37696 - 11905: 0xE575, - 37697 - 11905: 0xE576, - 37698 - 11905: 0xE577, - 37699 - 11905: 0xE578, - 37700 - 11905: 0xE579, - 37701 - 11905: 0xE57A, - 37702 - 11905: 0xE57B, - 37703 - 11905: 0xE57C, - 37704 - 11905: 0xE57D, - 37705 - 11905: 0xE57E, - 37706 - 11905: 0xE580, - 37707 - 11905: 0xE581, - 37708 - 11905: 0xE582, - 37709 - 11905: 0xE583, - 37710 - 11905: 0xE584, - 37711 - 11905: 0xE585, - 37712 - 11905: 0xE586, - 37713 - 11905: 0xE587, - 37714 - 11905: 0xE588, - 37715 - 11905: 0xE589, - 37716 - 11905: 0xE58A, - 37717 - 11905: 0xE58B, - 37718 - 11905: 0xE58C, - 37719 - 11905: 0xE58D, - 37720 - 11905: 0xE58E, - 37721 - 11905: 0xE58F, - 37722 - 11905: 0xE590, - 37723 - 11905: 0xE591, - 37724 - 11905: 0xE592, - 37725 - 11905: 0xE593, - 37726 - 11905: 0xE594, - 37727 - 11905: 0xE595, - 37728 - 11905: 0xE596, - 37729 - 11905: 0xE597, - 37730 - 11905: 0xE598, - 37731 - 11905: 0xE599, - 37732 - 11905: 0xE59A, - 37733 - 11905: 0xE59B, - 37734 - 11905: 0xE59C, - 37735 - 11905: 0xE59D, - 37736 - 11905: 0xE59E, - 37737 - 11905: 0xE59F, - 37738 - 11905: 0xF6CA, - 37739 - 11905: 0xE5A0, - 37740 - 11905: 0xE640, - 37741 - 11905: 0xE641, - 37742 - 11905: 0xE642, - 37743 - 11905: 0xE643, - 37744 - 11905: 0xE644, - 37745 - 11905: 0xE645, - 37746 - 11905: 0xE646, - 37747 - 11905: 0xE647, - 37748 - 11905: 0xE648, - 37749 - 11905: 0xE649, - 37750 - 11905: 0xE64A, - 37751 - 11905: 0xE64B, - 37752 - 11905: 0xE64C, - 37753 - 11905: 0xE64D, - 37754 - 11905: 0xE64E, - 37755 - 11905: 0xE64F, - 37756 - 11905: 0xE650, - 37757 - 11905: 0xE651, - 37758 - 11905: 0xE652, - 37759 - 11905: 0xE653, - 37760 - 11905: 0xE654, - 37761 - 11905: 0xE655, - 37762 - 11905: 0xE656, - 37763 - 11905: 0xE657, - 37764 - 11905: 0xE658, - 37765 - 11905: 0xE659, - 37766 - 11905: 0xE65A, - 37767 - 11905: 0xE65B, - 37768 - 11905: 0xE65C, - 37769 - 11905: 0xE65D, - 37770 - 11905: 0xE65E, - 37771 - 11905: 0xE65F, - 37772 - 11905: 0xE660, - 37773 - 11905: 0xE661, - 37774 - 11905: 0xE662, - 37775 - 11905: 0xF6CC, - 37776 - 11905: 0xE663, - 37777 - 11905: 0xE664, - 37778 - 11905: 0xE665, - 37779 - 11905: 0xE666, - 37780 - 11905: 0xE667, - 37781 - 11905: 0xE668, - 37782 - 11905: 0xE669, - 37783 - 11905: 0xE66A, - 37784 - 11905: 0xE66B, - 37785 - 11905: 0xE66C, - 37786 - 11905: 0xE66D, - 37787 - 11905: 0xE66E, - 37788 - 11905: 0xE66F, - 37789 - 11905: 0xE670, - 37790 - 11905: 0xE671, - 37791 - 11905: 0xE672, - 37792 - 11905: 0xE673, - 37793 - 11905: 0xE674, - 37794 - 11905: 0xE675, - 37795 - 11905: 0xE676, - 37796 - 11905: 0xE677, - 37797 - 11905: 0xE678, - 37798 - 11905: 0xE679, - 37799 - 11905: 0xE67A, - 37800 - 11905: 0xE67B, - 37801 - 11905: 0xE67C, - 37802 - 11905: 0xE67D, - 37803 - 11905: 0xE67E, - 37804 - 11905: 0xE680, - 37805 - 11905: 0xE681, - 37806 - 11905: 0xE682, - 37807 - 11905: 0xE683, - 37808 - 11905: 0xE684, - 37809 - 11905: 0xE685, - 37810 - 11905: 0xE686, - 37811 - 11905: 0xE687, - 37812 - 11905: 0xE688, - 37813 - 11905: 0xE689, - 37814 - 11905: 0xE68A, - 37815 - 11905: 0xE68B, - 37816 - 11905: 0xE68C, - 37817 - 11905: 0xE68D, - 37818 - 11905: 0xE68E, - 37819 - 11905: 0xE68F, - 37820 - 11905: 0xE690, - 37821 - 11905: 0xE691, - 37822 - 11905: 0xE692, - 37823 - 11905: 0xE693, - 37824 - 11905: 0xE694, - 37825 - 11905: 0xE695, - 37826 - 11905: 0xE696, - 37827 - 11905: 0xE697, - 37828 - 11905: 0xE698, - 37829 - 11905: 0xE699, - 37830 - 11905: 0xE69A, - 37831 - 11905: 0xE69B, - 37832 - 11905: 0xE69C, - 37833 - 11905: 0xE69D, - 37834 - 11905: 0xF6CB, - 37835 - 11905: 0xE69E, - 37836 - 11905: 0xE69F, - 37837 - 11905: 0xE6A0, - 37838 - 11905: 0xE740, - 37839 - 11905: 0xE741, - 37840 - 11905: 0xE742, - 37841 - 11905: 0xE743, - 37842 - 11905: 0xE744, - 37843 - 11905: 0xE745, - 37844 - 11905: 0xE746, - 37845 - 11905: 0xE747, - 37846 - 11905: 0xF7E9, - 37847 - 11905: 0xE748, - 37848 - 11905: 0xE749, - 37849 - 11905: 0xE74A, - 37850 - 11905: 0xE74B, - 37851 - 11905: 0xE74C, - 37852 - 11905: 0xE74D, - 37853 - 11905: 0xE74E, - 37854 - 11905: 0xE74F, - 37855 - 11905: 0xE750, - 37856 - 11905: 0xE751, - 37857 - 11905: 0xE752, - 37858 - 11905: 0xE753, - 37859 - 11905: 0xE754, - 37860 - 11905: 0xE755, - 37861 - 11905: 0xE756, - 37862 - 11905: 0xE757, - 37863 - 11905: 0xE758, - 37864 - 11905: 0xE759, - 37865 - 11905: 0xE75A, - 37866 - 11905: 0xE75B, - 37867 - 11905: 0xE75C, - 37868 - 11905: 0xE75D, - 37869 - 11905: 0xE75E, - 37870 - 11905: 0xE75F, - 37871 - 11905: 0xE760, - 37872 - 11905: 0xE761, - 37873 - 11905: 0xE762, - 37874 - 11905: 0xE763, - 37875 - 11905: 0xE764, - 37876 - 11905: 0xE765, - 37877 - 11905: 0xE766, - 37878 - 11905: 0xE767, - 37879 - 11905: 0xE768, - 37880 - 11905: 0xE769, - 37881 - 11905: 0xE76A, - 37882 - 11905: 0xE76B, - 37883 - 11905: 0xE76C, - 37884 - 11905: 0xE76D, - 37885 - 11905: 0xE76E, - 37886 - 11905: 0xE76F, - 37887 - 11905: 0xE770, - 37888 - 11905: 0xE771, - 37889 - 11905: 0xE772, - 37890 - 11905: 0xE773, - 37891 - 11905: 0xE774, - 37892 - 11905: 0xE775, - 37893 - 11905: 0xE776, - 37894 - 11905: 0xE777, - 37895 - 11905: 0xE778, - 37896 - 11905: 0xE779, - 37897 - 11905: 0xE77A, - 37898 - 11905: 0xE77B, - 37899 - 11905: 0xE77C, - 37900 - 11905: 0xE77D, - 37901 - 11905: 0xE77E, - 37902 - 11905: 0xE780, - 37903 - 11905: 0xE781, - 37904 - 11905: 0xE782, - 37905 - 11905: 0xE783, - 37906 - 11905: 0xE784, - 37907 - 11905: 0xE785, - 37908 - 11905: 0xE786, - 37909 - 11905: 0xE787, - 37910 - 11905: 0xE788, - 37911 - 11905: 0xE789, - 37912 - 11905: 0xE78A, - 37913 - 11905: 0xE78B, - 37914 - 11905: 0xE78C, - 37915 - 11905: 0xE78D, - 37916 - 11905: 0xE78E, - 37917 - 11905: 0xE78F, - 37918 - 11905: 0xE790, - 37919 - 11905: 0xE791, - 37920 - 11905: 0xE792, - 37921 - 11905: 0xE793, - 37922 - 11905: 0xE794, - 37923 - 11905: 0xE795, - 37924 - 11905: 0xE796, - 37925 - 11905: 0xE797, - 37926 - 11905: 0xE798, - 37927 - 11905: 0xE799, - 37928 - 11905: 0xE79A, - 37929 - 11905: 0xE79B, - 37930 - 11905: 0xE79C, - 37931 - 11905: 0xE79D, - 37932 - 11905: 0xE79E, - 37933 - 11905: 0xE79F, - 37934 - 11905: 0xE7A0, - 37935 - 11905: 0xE840, - 37936 - 11905: 0xE841, - 37937 - 11905: 0xE842, - 37938 - 11905: 0xE843, - 37939 - 11905: 0xE844, - 37940 - 11905: 0xE845, - 37941 - 11905: 0xE846, - 37942 - 11905: 0xE847, - 37943 - 11905: 0xE848, - 37944 - 11905: 0xE849, - 37945 - 11905: 0xE84A, - 37946 - 11905: 0xE84B, - 37947 - 11905: 0xE84C, - 37948 - 11905: 0xE84D, - 37949 - 11905: 0xE84E, - 37950 - 11905: 0xF6CD, - 37951 - 11905: 0xE84F, - 37952 - 11905: 0xE850, - 37953 - 11905: 0xE851, - 37954 - 11905: 0xE852, - 37955 - 11905: 0xE853, - 37956 - 11905: 0xE854, - 37957 - 11905: 0xE855, - 37958 - 11905: 0xE856, - 37959 - 11905: 0xE857, - 37960 - 11905: 0xE858, - 37961 - 11905: 0xE859, - 37962 - 11905: 0xE85A, - 37963 - 11905: 0xE85B, - 37964 - 11905: 0xE85C, - 37965 - 11905: 0xE85D, - 37966 - 11905: 0xE85E, - 37967 - 11905: 0xE85F, - 37968 - 11905: 0xE860, - 37969 - 11905: 0xE861, - 37970 - 11905: 0xE862, - 37971 - 11905: 0xE863, - 37972 - 11905: 0xE864, - 37973 - 11905: 0xE865, - 37974 - 11905: 0xE866, - 37975 - 11905: 0xE867, - 37976 - 11905: 0xE868, - 37977 - 11905: 0xE869, - 37978 - 11905: 0xE86A, - 37979 - 11905: 0xE86B, - 37980 - 11905: 0xE86C, - 37981 - 11905: 0xE86D, - 37982 - 11905: 0xE86E, - 37983 - 11905: 0xE86F, - 37984 - 11905: 0xE870, - 37985 - 11905: 0xE871, - 37986 - 11905: 0xE872, - 37987 - 11905: 0xE873, - 37988 - 11905: 0xE874, - 37989 - 11905: 0xE875, - 37990 - 11905: 0xE876, - 37991 - 11905: 0xE877, - 37992 - 11905: 0xE878, - 37993 - 11905: 0xE879, - 37994 - 11905: 0xE87A, - 37995 - 11905: 0xF6CE, - 37996 - 11905: 0xE87B, - 37997 - 11905: 0xE87C, - 37998 - 11905: 0xE87D, - 37999 - 11905: 0xE87E, - 38000 - 11905: 0xE880, - 38001 - 11905: 0xE881, - 38002 - 11905: 0xE882, - 38003 - 11905: 0xE883, - 38004 - 11905: 0xE884, - 38005 - 11905: 0xE885, - 38006 - 11905: 0xE886, - 38007 - 11905: 0xE887, - 38008 - 11905: 0xE888, - 38009 - 11905: 0xE889, - 38010 - 11905: 0xE88A, - 38011 - 11905: 0xE88B, - 38012 - 11905: 0xE88C, - 38013 - 11905: 0xE88D, - 38014 - 11905: 0xE88E, - 38015 - 11905: 0xE88F, - 38016 - 11905: 0xE890, - 38017 - 11905: 0xE891, - 38018 - 11905: 0xE892, - 38019 - 11905: 0xE893, - 38020 - 11905: 0xE894, - 38021 - 11905: 0xEEC4, - 38022 - 11905: 0xEEC5, - 38023 - 11905: 0xEEC6, - 38024 - 11905: 0xD5EB, - 38025 - 11905: 0xB6A4, - 38026 - 11905: 0xEEC8, - 38027 - 11905: 0xEEC7, - 38028 - 11905: 0xEEC9, - 38029 - 11905: 0xEECA, - 38030 - 11905: 0xC7A5, - 38031 - 11905: 0xEECB, - 38032 - 11905: 0xEECC, - 38033 - 11905: 0xE895, - 38034 - 11905: 0xB7B0, - 38035 - 11905: 0xB5F6, - 38036 - 11905: 0xEECD, - 38037 - 11905: 0xEECF, - 38038 - 11905: 0xE896, - 38039 - 11905: 0xEECE, - 38040 - 11905: 0xE897, - 38041 - 11905: 0xB8C6, - 38042 - 11905: 0xEED0, - 38043 - 11905: 0xEED1, - 38044 - 11905: 0xEED2, - 38045 - 11905: 0xB6DB, - 38046 - 11905: 0xB3AE, - 38047 - 11905: 0xD6D3, - 38048 - 11905: 0xC4C6, - 38049 - 11905: 0xB1B5, - 38050 - 11905: 0xB8D6, - 38051 - 11905: 0xEED3, - 38052 - 11905: 0xEED4, - 38053 - 11905: 0xD4BF, - 38054 - 11905: 0xC7D5, - 38055 - 11905: 0xBEFB, - 38056 - 11905: 0xCED9, - 38057 - 11905: 0xB9B3, - 38058 - 11905: 0xEED6, - 38059 - 11905: 0xEED5, - 38060 - 11905: 0xEED8, - 38061 - 11905: 0xEED7, - 38062 - 11905: 0xC5A5, - 38063 - 11905: 0xEED9, - 38064 - 11905: 0xEEDA, - 38065 - 11905: 0xC7AE, - 38066 - 11905: 0xEEDB, - 38067 - 11905: 0xC7AF, - 38068 - 11905: 0xEEDC, - 38069 - 11905: 0xB2A7, - 38070 - 11905: 0xEEDD, - 38071 - 11905: 0xEEDE, - 38072 - 11905: 0xEEDF, - 38073 - 11905: 0xEEE0, - 38074 - 11905: 0xEEE1, - 38075 - 11905: 0xD7EA, - 38076 - 11905: 0xEEE2, - 38077 - 11905: 0xEEE3, - 38078 - 11905: 0xBCD8, - 38079 - 11905: 0xEEE4, - 38080 - 11905: 0xD3CB, - 38081 - 11905: 0xCCFA, - 38082 - 11905: 0xB2AC, - 38083 - 11905: 0xC1E5, - 38084 - 11905: 0xEEE5, - 38085 - 11905: 0xC7A6, - 38086 - 11905: 0xC3AD, - 38087 - 11905: 0xE898, - 38088 - 11905: 0xEEE6, - 38089 - 11905: 0xEEE7, - 38090 - 11905: 0xEEE8, - 38091 - 11905: 0xEEE9, - 38092 - 11905: 0xEEEA, - 38093 - 11905: 0xEEEB, - 38094 - 11905: 0xEEEC, - 38095 - 11905: 0xE899, - 38096 - 11905: 0xEEED, - 38097 - 11905: 0xEEEE, - 38098 - 11905: 0xEEEF, - 38099 - 11905: 0xE89A, - 38100 - 11905: 0xE89B, - 38101 - 11905: 0xEEF0, - 38102 - 11905: 0xEEF1, - 38103 - 11905: 0xEEF2, - 38104 - 11905: 0xEEF4, - 38105 - 11905: 0xEEF3, - 38106 - 11905: 0xE89C, - 38107 - 11905: 0xEEF5, - 38108 - 11905: 0xCDAD, - 38109 - 11905: 0xC2C1, - 38110 - 11905: 0xEEF6, - 38111 - 11905: 0xEEF7, - 38112 - 11905: 0xEEF8, - 38113 - 11905: 0xD5A1, - 38114 - 11905: 0xEEF9, - 38115 - 11905: 0xCFB3, - 38116 - 11905: 0xEEFA, - 38117 - 11905: 0xEEFB, - 38118 - 11905: 0xE89D, - 38119 - 11905: 0xEEFC, - 38120 - 11905: 0xEEFD, - 38121 - 11905: 0xEFA1, - 38122 - 11905: 0xEEFE, - 38123 - 11905: 0xEFA2, - 38124 - 11905: 0xB8F5, - 38125 - 11905: 0xC3FA, - 38126 - 11905: 0xEFA3, - 38127 - 11905: 0xEFA4, - 38128 - 11905: 0xBDC2, - 38129 - 11905: 0xD2BF, - 38130 - 11905: 0xB2F9, - 38131 - 11905: 0xEFA5, - 38132 - 11905: 0xEFA6, - 38133 - 11905: 0xEFA7, - 38134 - 11905: 0xD2F8, - 38135 - 11905: 0xEFA8, - 38136 - 11905: 0xD6FD, - 38137 - 11905: 0xEFA9, - 38138 - 11905: 0xC6CC, - 38139 - 11905: 0xE89E, - 38140 - 11905: 0xEFAA, - 38141 - 11905: 0xEFAB, - 38142 - 11905: 0xC1B4, - 38143 - 11905: 0xEFAC, - 38144 - 11905: 0xCFFA, - 38145 - 11905: 0xCBF8, - 38146 - 11905: 0xEFAE, - 38147 - 11905: 0xEFAD, - 38148 - 11905: 0xB3FA, - 38149 - 11905: 0xB9F8, - 38150 - 11905: 0xEFAF, - 38151 - 11905: 0xEFB0, - 38152 - 11905: 0xD0E2, - 38153 - 11905: 0xEFB1, - 38154 - 11905: 0xEFB2, - 38155 - 11905: 0xB7E6, - 38156 - 11905: 0xD0BF, - 38157 - 11905: 0xEFB3, - 38158 - 11905: 0xEFB4, - 38159 - 11905: 0xEFB5, - 38160 - 11905: 0xC8F1, - 38161 - 11905: 0xCCE0, - 38162 - 11905: 0xEFB6, - 38163 - 11905: 0xEFB7, - 38164 - 11905: 0xEFB8, - 38165 - 11905: 0xEFB9, - 38166 - 11905: 0xEFBA, - 38167 - 11905: 0xD5E0, - 38168 - 11905: 0xEFBB, - 38169 - 11905: 0xB4ED, - 38170 - 11905: 0xC3AA, - 38171 - 11905: 0xEFBC, - 38172 - 11905: 0xE89F, - 38173 - 11905: 0xEFBD, - 38174 - 11905: 0xEFBE, - 38175 - 11905: 0xEFBF, - 38176 - 11905: 0xE8A0, - 38177 - 11905: 0xCEFD, - 38178 - 11905: 0xEFC0, - 38179 - 11905: 0xC2E0, - 38180 - 11905: 0xB4B8, - 38181 - 11905: 0xD7B6, - 38182 - 11905: 0xBDF5, - 38183 - 11905: 0xE940, - 38184 - 11905: 0xCFC7, - 38185 - 11905: 0xEFC3, - 38186 - 11905: 0xEFC1, - 38187 - 11905: 0xEFC2, - 38188 - 11905: 0xEFC4, - 38189 - 11905: 0xB6A7, - 38190 - 11905: 0xBCFC, - 38191 - 11905: 0xBEE2, - 38192 - 11905: 0xC3CC, - 38193 - 11905: 0xEFC5, - 38194 - 11905: 0xEFC6, - 38195 - 11905: 0xE941, - 38196 - 11905: 0xEFC7, - 38197 - 11905: 0xEFCF, - 38198 - 11905: 0xEFC8, - 38199 - 11905: 0xEFC9, - 38200 - 11905: 0xEFCA, - 38201 - 11905: 0xC7C2, - 38202 - 11905: 0xEFF1, - 38203 - 11905: 0xB6CD, - 38204 - 11905: 0xEFCB, - 38205 - 11905: 0xE942, - 38206 - 11905: 0xEFCC, - 38207 - 11905: 0xEFCD, - 38208 - 11905: 0xB6C6, - 38209 - 11905: 0xC3BE, - 38210 - 11905: 0xEFCE, - 38211 - 11905: 0xE943, - 38212 - 11905: 0xEFD0, - 38213 - 11905: 0xEFD1, - 38214 - 11905: 0xEFD2, - 38215 - 11905: 0xD5F2, - 38216 - 11905: 0xE944, - 38217 - 11905: 0xEFD3, - 38218 - 11905: 0xC4F7, - 38219 - 11905: 0xE945, - 38220 - 11905: 0xEFD4, - 38221 - 11905: 0xC4F8, - 38222 - 11905: 0xEFD5, - 38223 - 11905: 0xEFD6, - 38224 - 11905: 0xB8E4, - 38225 - 11905: 0xB0F7, - 38226 - 11905: 0xEFD7, - 38227 - 11905: 0xEFD8, - 38228 - 11905: 0xEFD9, - 38229 - 11905: 0xE946, - 38230 - 11905: 0xEFDA, - 38231 - 11905: 0xEFDB, - 38232 - 11905: 0xEFDC, - 38233 - 11905: 0xEFDD, - 38234 - 11905: 0xE947, - 38235 - 11905: 0xEFDE, - 38236 - 11905: 0xBEB5, - 38237 - 11905: 0xEFE1, - 38238 - 11905: 0xEFDF, - 38239 - 11905: 0xEFE0, - 38240 - 11905: 0xE948, - 38241 - 11905: 0xEFE2, - 38242 - 11905: 0xEFE3, - 38243 - 11905: 0xC1CD, - 38244 - 11905: 0xEFE4, - 38245 - 11905: 0xEFE5, - 38246 - 11905: 0xEFE6, - 38247 - 11905: 0xEFE7, - 38248 - 11905: 0xEFE8, - 38249 - 11905: 0xEFE9, - 38250 - 11905: 0xEFEA, - 38251 - 11905: 0xEFEB, - 38252 - 11905: 0xEFEC, - 38253 - 11905: 0xC0D8, - 38254 - 11905: 0xE949, - 38255 - 11905: 0xEFED, - 38256 - 11905: 0xC1AD, - 38257 - 11905: 0xEFEE, - 38258 - 11905: 0xEFEF, - 38259 - 11905: 0xEFF0, - 38260 - 11905: 0xE94A, - 38261 - 11905: 0xE94B, - 38262 - 11905: 0xCFE2, - 38263 - 11905: 0xE94C, - 38264 - 11905: 0xE94D, - 38265 - 11905: 0xE94E, - 38266 - 11905: 0xE94F, - 38267 - 11905: 0xE950, - 38268 - 11905: 0xE951, - 38269 - 11905: 0xE952, - 38270 - 11905: 0xE953, - 38271 - 11905: 0xB3A4, - 38272 - 11905: 0xE954, - 38273 - 11905: 0xE955, - 38274 - 11905: 0xE956, - 38275 - 11905: 0xE957, - 38276 - 11905: 0xE958, - 38277 - 11905: 0xE959, - 38278 - 11905: 0xE95A, - 38279 - 11905: 0xE95B, - 38280 - 11905: 0xE95C, - 38281 - 11905: 0xE95D, - 38282 - 11905: 0xE95E, - 38283 - 11905: 0xE95F, - 38284 - 11905: 0xE960, - 38285 - 11905: 0xE961, - 38286 - 11905: 0xE962, - 38287 - 11905: 0xE963, - 38288 - 11905: 0xE964, - 38289 - 11905: 0xE965, - 38290 - 11905: 0xE966, - 38291 - 11905: 0xE967, - 38292 - 11905: 0xE968, - 38293 - 11905: 0xE969, - 38294 - 11905: 0xE96A, - 38295 - 11905: 0xE96B, - 38296 - 11905: 0xE96C, - 38297 - 11905: 0xE96D, - 38298 - 11905: 0xE96E, - 38299 - 11905: 0xE96F, - 38300 - 11905: 0xE970, - 38301 - 11905: 0xE971, - 38302 - 11905: 0xE972, - 38303 - 11905: 0xE973, - 38304 - 11905: 0xE974, - 38305 - 11905: 0xE975, - 38306 - 11905: 0xE976, - 38307 - 11905: 0xE977, - 38308 - 11905: 0xE978, - 38309 - 11905: 0xE979, - 38310 - 11905: 0xE97A, - 38311 - 11905: 0xE97B, - 38312 - 11905: 0xE97C, - 38313 - 11905: 0xE97D, - 38314 - 11905: 0xE97E, - 38315 - 11905: 0xE980, - 38316 - 11905: 0xE981, - 38317 - 11905: 0xE982, - 38318 - 11905: 0xE983, - 38319 - 11905: 0xE984, - 38320 - 11905: 0xE985, - 38321 - 11905: 0xE986, - 38322 - 11905: 0xE987, - 38323 - 11905: 0xE988, - 38324 - 11905: 0xE989, - 38325 - 11905: 0xE98A, - 38326 - 11905: 0xE98B, - 38327 - 11905: 0xE98C, - 38328 - 11905: 0xE98D, - 38329 - 11905: 0xE98E, - 38330 - 11905: 0xE98F, - 38331 - 11905: 0xE990, - 38332 - 11905: 0xE991, - 38333 - 11905: 0xE992, - 38334 - 11905: 0xE993, - 38335 - 11905: 0xE994, - 38336 - 11905: 0xE995, - 38337 - 11905: 0xE996, - 38338 - 11905: 0xE997, - 38339 - 11905: 0xE998, - 38340 - 11905: 0xE999, - 38341 - 11905: 0xE99A, - 38342 - 11905: 0xE99B, - 38343 - 11905: 0xE99C, - 38344 - 11905: 0xE99D, - 38345 - 11905: 0xE99E, - 38346 - 11905: 0xE99F, - 38347 - 11905: 0xE9A0, - 38348 - 11905: 0xEA40, - 38349 - 11905: 0xEA41, - 38350 - 11905: 0xEA42, - 38351 - 11905: 0xEA43, - 38352 - 11905: 0xEA44, - 38353 - 11905: 0xEA45, - 38354 - 11905: 0xEA46, - 38355 - 11905: 0xEA47, - 38356 - 11905: 0xEA48, - 38357 - 11905: 0xEA49, - 38358 - 11905: 0xEA4A, - 38359 - 11905: 0xEA4B, - 38360 - 11905: 0xEA4C, - 38361 - 11905: 0xEA4D, - 38362 - 11905: 0xEA4E, - 38363 - 11905: 0xEA4F, - 38364 - 11905: 0xEA50, - 38365 - 11905: 0xEA51, - 38366 - 11905: 0xEA52, - 38367 - 11905: 0xEA53, - 38368 - 11905: 0xEA54, - 38369 - 11905: 0xEA55, - 38370 - 11905: 0xEA56, - 38371 - 11905: 0xEA57, - 38372 - 11905: 0xEA58, - 38373 - 11905: 0xEA59, - 38374 - 11905: 0xEA5A, - 38375 - 11905: 0xEA5B, - 38376 - 11905: 0xC3C5, - 38377 - 11905: 0xE3C5, - 38378 - 11905: 0xC9C1, - 38379 - 11905: 0xE3C6, - 38380 - 11905: 0xEA5C, - 38381 - 11905: 0xB1D5, - 38382 - 11905: 0xCECA, - 38383 - 11905: 0xB4B3, - 38384 - 11905: 0xC8F2, - 38385 - 11905: 0xE3C7, - 38386 - 11905: 0xCFD0, - 38387 - 11905: 0xE3C8, - 38388 - 11905: 0xBCE4, - 38389 - 11905: 0xE3C9, - 38390 - 11905: 0xE3CA, - 38391 - 11905: 0xC3C6, - 38392 - 11905: 0xD5A2, - 38393 - 11905: 0xC4D6, - 38394 - 11905: 0xB9EB, - 38395 - 11905: 0xCEC5, - 38396 - 11905: 0xE3CB, - 38397 - 11905: 0xC3F6, - 38398 - 11905: 0xE3CC, - 38399 - 11905: 0xEA5D, - 38400 - 11905: 0xB7A7, - 38401 - 11905: 0xB8F3, - 38402 - 11905: 0xBAD2, - 38403 - 11905: 0xE3CD, - 38404 - 11905: 0xE3CE, - 38405 - 11905: 0xD4C4, - 38406 - 11905: 0xE3CF, - 38407 - 11905: 0xEA5E, - 38408 - 11905: 0xE3D0, - 38409 - 11905: 0xD1CB, - 38410 - 11905: 0xE3D1, - 38411 - 11905: 0xE3D2, - 38412 - 11905: 0xE3D3, - 38413 - 11905: 0xE3D4, - 38414 - 11905: 0xD1D6, - 38415 - 11905: 0xE3D5, - 38416 - 11905: 0xB2FB, - 38417 - 11905: 0xC0BB, - 38418 - 11905: 0xE3D6, - 38419 - 11905: 0xEA5F, - 38420 - 11905: 0xC0AB, - 38421 - 11905: 0xE3D7, - 38422 - 11905: 0xE3D8, - 38423 - 11905: 0xE3D9, - 38424 - 11905: 0xEA60, - 38425 - 11905: 0xE3DA, - 38426 - 11905: 0xE3DB, - 38427 - 11905: 0xEA61, - 38428 - 11905: 0xB8B7, - 38429 - 11905: 0xDAE2, - 38430 - 11905: 0xEA62, - 38431 - 11905: 0xB6D3, - 38432 - 11905: 0xEA63, - 38433 - 11905: 0xDAE4, - 38434 - 11905: 0xDAE3, - 38435 - 11905: 0xEA64, - 38436 - 11905: 0xEA65, - 38437 - 11905: 0xEA66, - 38438 - 11905: 0xEA67, - 38439 - 11905: 0xEA68, - 38440 - 11905: 0xEA69, - 38441 - 11905: 0xEA6A, - 38442 - 11905: 0xDAE6, - 38443 - 11905: 0xEA6B, - 38444 - 11905: 0xEA6C, - 38445 - 11905: 0xEA6D, - 38446 - 11905: 0xC8EE, - 38447 - 11905: 0xEA6E, - 38448 - 11905: 0xEA6F, - 38449 - 11905: 0xDAE5, - 38450 - 11905: 0xB7C0, - 38451 - 11905: 0xD1F4, - 38452 - 11905: 0xD2F5, - 38453 - 11905: 0xD5F3, - 38454 - 11905: 0xBDD7, - 38455 - 11905: 0xEA70, - 38456 - 11905: 0xEA71, - 38457 - 11905: 0xEA72, - 38458 - 11905: 0xEA73, - 38459 - 11905: 0xD7E8, - 38460 - 11905: 0xDAE8, - 38461 - 11905: 0xDAE7, - 38462 - 11905: 0xEA74, - 38463 - 11905: 0xB0A2, - 38464 - 11905: 0xCDD3, - 38465 - 11905: 0xEA75, - 38466 - 11905: 0xDAE9, - 38467 - 11905: 0xEA76, - 38468 - 11905: 0xB8BD, - 38469 - 11905: 0xBCCA, - 38470 - 11905: 0xC2BD, - 38471 - 11905: 0xC2A4, - 38472 - 11905: 0xB3C2, - 38473 - 11905: 0xDAEA, - 38474 - 11905: 0xEA77, - 38475 - 11905: 0xC2AA, - 38476 - 11905: 0xC4B0, - 38477 - 11905: 0xBDB5, - 38478 - 11905: 0xEA78, - 38479 - 11905: 0xEA79, - 38480 - 11905: 0xCFDE, - 38481 - 11905: 0xEA7A, - 38482 - 11905: 0xEA7B, - 38483 - 11905: 0xEA7C, - 38484 - 11905: 0xDAEB, - 38485 - 11905: 0xC9C2, - 38486 - 11905: 0xEA7D, - 38487 - 11905: 0xEA7E, - 38488 - 11905: 0xEA80, - 38489 - 11905: 0xEA81, - 38490 - 11905: 0xEA82, - 38491 - 11905: 0xB1DD, - 38492 - 11905: 0xEA83, - 38493 - 11905: 0xEA84, - 38494 - 11905: 0xEA85, - 38495 - 11905: 0xDAEC, - 38496 - 11905: 0xEA86, - 38497 - 11905: 0xB6B8, - 38498 - 11905: 0xD4BA, - 38499 - 11905: 0xEA87, - 38500 - 11905: 0xB3FD, - 38501 - 11905: 0xEA88, - 38502 - 11905: 0xEA89, - 38503 - 11905: 0xDAED, - 38504 - 11905: 0xD4C9, - 38505 - 11905: 0xCFD5, - 38506 - 11905: 0xC5E3, - 38507 - 11905: 0xEA8A, - 38508 - 11905: 0xDAEE, - 38509 - 11905: 0xEA8B, - 38510 - 11905: 0xEA8C, - 38511 - 11905: 0xEA8D, - 38512 - 11905: 0xEA8E, - 38513 - 11905: 0xEA8F, - 38514 - 11905: 0xDAEF, - 38515 - 11905: 0xEA90, - 38516 - 11905: 0xDAF0, - 38517 - 11905: 0xC1EA, - 38518 - 11905: 0xCCD5, - 38519 - 11905: 0xCFDD, - 38520 - 11905: 0xEA91, - 38521 - 11905: 0xEA92, - 38522 - 11905: 0xEA93, - 38523 - 11905: 0xEA94, - 38524 - 11905: 0xEA95, - 38525 - 11905: 0xEA96, - 38526 - 11905: 0xEA97, - 38527 - 11905: 0xEA98, - 38528 - 11905: 0xEA99, - 38529 - 11905: 0xEA9A, - 38530 - 11905: 0xEA9B, - 38531 - 11905: 0xEA9C, - 38532 - 11905: 0xEA9D, - 38533 - 11905: 0xD3E7, - 38534 - 11905: 0xC2A1, - 38535 - 11905: 0xEA9E, - 38536 - 11905: 0xDAF1, - 38537 - 11905: 0xEA9F, - 38538 - 11905: 0xEAA0, - 38539 - 11905: 0xCBE5, - 38540 - 11905: 0xEB40, - 38541 - 11905: 0xDAF2, - 38542 - 11905: 0xEB41, - 38543 - 11905: 0xCBE6, - 38544 - 11905: 0xD2FE, - 38545 - 11905: 0xEB42, - 38546 - 11905: 0xEB43, - 38547 - 11905: 0xEB44, - 38548 - 11905: 0xB8F4, - 38549 - 11905: 0xEB45, - 38550 - 11905: 0xEB46, - 38551 - 11905: 0xDAF3, - 38552 - 11905: 0xB0AF, - 38553 - 11905: 0xCFB6, - 38554 - 11905: 0xEB47, - 38555 - 11905: 0xEB48, - 38556 - 11905: 0xD5CF, - 38557 - 11905: 0xEB49, - 38558 - 11905: 0xEB4A, - 38559 - 11905: 0xEB4B, - 38560 - 11905: 0xEB4C, - 38561 - 11905: 0xEB4D, - 38562 - 11905: 0xEB4E, - 38563 - 11905: 0xEB4F, - 38564 - 11905: 0xEB50, - 38565 - 11905: 0xEB51, - 38566 - 11905: 0xEB52, - 38567 - 11905: 0xCBED, - 38568 - 11905: 0xEB53, - 38569 - 11905: 0xEB54, - 38570 - 11905: 0xEB55, - 38571 - 11905: 0xEB56, - 38572 - 11905: 0xEB57, - 38573 - 11905: 0xEB58, - 38574 - 11905: 0xEB59, - 38575 - 11905: 0xEB5A, - 38576 - 11905: 0xDAF4, - 38577 - 11905: 0xEB5B, - 38578 - 11905: 0xEB5C, - 38579 - 11905: 0xE3C4, - 38580 - 11905: 0xEB5D, - 38581 - 11905: 0xEB5E, - 38582 - 11905: 0xC1A5, - 38583 - 11905: 0xEB5F, - 38584 - 11905: 0xEB60, - 38585 - 11905: 0xF6BF, - 38586 - 11905: 0xEB61, - 38587 - 11905: 0xEB62, - 38588 - 11905: 0xF6C0, - 38589 - 11905: 0xF6C1, - 38590 - 11905: 0xC4D1, - 38591 - 11905: 0xEB63, - 38592 - 11905: 0xC8B8, - 38593 - 11905: 0xD1E3, - 38594 - 11905: 0xEB64, - 38595 - 11905: 0xEB65, - 38596 - 11905: 0xD0DB, - 38597 - 11905: 0xD1C5, - 38598 - 11905: 0xBCAF, - 38599 - 11905: 0xB9CD, - 38600 - 11905: 0xEB66, - 38601 - 11905: 0xEFF4, - 38602 - 11905: 0xEB67, - 38603 - 11905: 0xEB68, - 38604 - 11905: 0xB4C6, - 38605 - 11905: 0xD3BA, - 38606 - 11905: 0xF6C2, - 38607 - 11905: 0xB3FB, - 38608 - 11905: 0xEB69, - 38609 - 11905: 0xEB6A, - 38610 - 11905: 0xF6C3, - 38611 - 11905: 0xEB6B, - 38612 - 11905: 0xEB6C, - 38613 - 11905: 0xB5F1, - 38614 - 11905: 0xEB6D, - 38615 - 11905: 0xEB6E, - 38616 - 11905: 0xEB6F, - 38617 - 11905: 0xEB70, - 38618 - 11905: 0xEB71, - 38619 - 11905: 0xEB72, - 38620 - 11905: 0xEB73, - 38621 - 11905: 0xEB74, - 38622 - 11905: 0xEB75, - 38623 - 11905: 0xEB76, - 38624 - 11905: 0xF6C5, - 38625 - 11905: 0xEB77, - 38626 - 11905: 0xEB78, - 38627 - 11905: 0xEB79, - 38628 - 11905: 0xEB7A, - 38629 - 11905: 0xEB7B, - 38630 - 11905: 0xEB7C, - 38631 - 11905: 0xEB7D, - 38632 - 11905: 0xD3EA, - 38633 - 11905: 0xF6A7, - 38634 - 11905: 0xD1A9, - 38635 - 11905: 0xEB7E, - 38636 - 11905: 0xEB80, - 38637 - 11905: 0xEB81, - 38638 - 11905: 0xEB82, - 38639 - 11905: 0xF6A9, - 38640 - 11905: 0xEB83, - 38641 - 11905: 0xEB84, - 38642 - 11905: 0xEB85, - 38643 - 11905: 0xF6A8, - 38644 - 11905: 0xEB86, - 38645 - 11905: 0xEB87, - 38646 - 11905: 0xC1E3, - 38647 - 11905: 0xC0D7, - 38648 - 11905: 0xEB88, - 38649 - 11905: 0xB1A2, - 38650 - 11905: 0xEB89, - 38651 - 11905: 0xEB8A, - 38652 - 11905: 0xEB8B, - 38653 - 11905: 0xEB8C, - 38654 - 11905: 0xCEED, - 38655 - 11905: 0xEB8D, - 38656 - 11905: 0xD0E8, - 38657 - 11905: 0xF6AB, - 38658 - 11905: 0xEB8E, - 38659 - 11905: 0xEB8F, - 38660 - 11905: 0xCFF6, - 38661 - 11905: 0xEB90, - 38662 - 11905: 0xF6AA, - 38663 - 11905: 0xD5F0, - 38664 - 11905: 0xF6AC, - 38665 - 11905: 0xC3B9, - 38666 - 11905: 0xEB91, - 38667 - 11905: 0xEB92, - 38668 - 11905: 0xEB93, - 38669 - 11905: 0xBBF4, - 38670 - 11905: 0xF6AE, - 38671 - 11905: 0xF6AD, - 38672 - 11905: 0xEB94, - 38673 - 11905: 0xEB95, - 38674 - 11905: 0xEB96, - 38675 - 11905: 0xC4DE, - 38676 - 11905: 0xEB97, - 38677 - 11905: 0xEB98, - 38678 - 11905: 0xC1D8, - 38679 - 11905: 0xEB99, - 38680 - 11905: 0xEB9A, - 38681 - 11905: 0xEB9B, - 38682 - 11905: 0xEB9C, - 38683 - 11905: 0xEB9D, - 38684 - 11905: 0xCBAA, - 38685 - 11905: 0xEB9E, - 38686 - 11905: 0xCFBC, - 38687 - 11905: 0xEB9F, - 38688 - 11905: 0xEBA0, - 38689 - 11905: 0xEC40, - 38690 - 11905: 0xEC41, - 38691 - 11905: 0xEC42, - 38692 - 11905: 0xEC43, - 38693 - 11905: 0xEC44, - 38694 - 11905: 0xEC45, - 38695 - 11905: 0xEC46, - 38696 - 11905: 0xEC47, - 38697 - 11905: 0xEC48, - 38698 - 11905: 0xF6AF, - 38699 - 11905: 0xEC49, - 38700 - 11905: 0xEC4A, - 38701 - 11905: 0xF6B0, - 38702 - 11905: 0xEC4B, - 38703 - 11905: 0xEC4C, - 38704 - 11905: 0xF6B1, - 38705 - 11905: 0xEC4D, - 38706 - 11905: 0xC2B6, - 38707 - 11905: 0xEC4E, - 38708 - 11905: 0xEC4F, - 38709 - 11905: 0xEC50, - 38710 - 11905: 0xEC51, - 38711 - 11905: 0xEC52, - 38712 - 11905: 0xB0D4, - 38713 - 11905: 0xC5F9, - 38714 - 11905: 0xEC53, - 38715 - 11905: 0xEC54, - 38716 - 11905: 0xEC55, - 38717 - 11905: 0xEC56, - 38718 - 11905: 0xF6B2, - 38719 - 11905: 0xEC57, - 38720 - 11905: 0xEC58, - 38721 - 11905: 0xEC59, - 38722 - 11905: 0xEC5A, - 38723 - 11905: 0xEC5B, - 38724 - 11905: 0xEC5C, - 38725 - 11905: 0xEC5D, - 38726 - 11905: 0xEC5E, - 38727 - 11905: 0xEC5F, - 38728 - 11905: 0xEC60, - 38729 - 11905: 0xEC61, - 38730 - 11905: 0xEC62, - 38731 - 11905: 0xEC63, - 38732 - 11905: 0xEC64, - 38733 - 11905: 0xEC65, - 38734 - 11905: 0xEC66, - 38735 - 11905: 0xEC67, - 38736 - 11905: 0xEC68, - 38737 - 11905: 0xEC69, - 38738 - 11905: 0xC7E0, - 38739 - 11905: 0xF6A6, - 38740 - 11905: 0xEC6A, - 38741 - 11905: 0xEC6B, - 38742 - 11905: 0xBEB8, - 38743 - 11905: 0xEC6C, - 38744 - 11905: 0xEC6D, - 38745 - 11905: 0xBEB2, - 38746 - 11905: 0xEC6E, - 38747 - 11905: 0xB5E5, - 38748 - 11905: 0xEC6F, - 38749 - 11905: 0xEC70, - 38750 - 11905: 0xB7C7, - 38751 - 11905: 0xEC71, - 38752 - 11905: 0xBFBF, - 38753 - 11905: 0xC3D2, - 38754 - 11905: 0xC3E6, - 38755 - 11905: 0xEC72, - 38756 - 11905: 0xEC73, - 38757 - 11905: 0xD8CC, - 38758 - 11905: 0xEC74, - 38759 - 11905: 0xEC75, - 38760 - 11905: 0xEC76, - 38761 - 11905: 0xB8EF, - 38762 - 11905: 0xEC77, - 38763 - 11905: 0xEC78, - 38764 - 11905: 0xEC79, - 38765 - 11905: 0xEC7A, - 38766 - 11905: 0xEC7B, - 38767 - 11905: 0xEC7C, - 38768 - 11905: 0xEC7D, - 38769 - 11905: 0xEC7E, - 38770 - 11905: 0xEC80, - 38771 - 11905: 0xBDF9, - 38772 - 11905: 0xD1A5, - 38773 - 11905: 0xEC81, - 38774 - 11905: 0xB0D0, - 38775 - 11905: 0xEC82, - 38776 - 11905: 0xEC83, - 38777 - 11905: 0xEC84, - 38778 - 11905: 0xEC85, - 38779 - 11905: 0xEC86, - 38780 - 11905: 0xF7B0, - 38781 - 11905: 0xEC87, - 38782 - 11905: 0xEC88, - 38783 - 11905: 0xEC89, - 38784 - 11905: 0xEC8A, - 38785 - 11905: 0xEC8B, - 38786 - 11905: 0xEC8C, - 38787 - 11905: 0xEC8D, - 38788 - 11905: 0xEC8E, - 38789 - 11905: 0xF7B1, - 38790 - 11905: 0xEC8F, - 38791 - 11905: 0xEC90, - 38792 - 11905: 0xEC91, - 38793 - 11905: 0xEC92, - 38794 - 11905: 0xEC93, - 38795 - 11905: 0xD0AC, - 38796 - 11905: 0xEC94, - 38797 - 11905: 0xB0B0, - 38798 - 11905: 0xEC95, - 38799 - 11905: 0xEC96, - 38800 - 11905: 0xEC97, - 38801 - 11905: 0xF7B2, - 38802 - 11905: 0xF7B3, - 38803 - 11905: 0xEC98, - 38804 - 11905: 0xF7B4, - 38805 - 11905: 0xEC99, - 38806 - 11905: 0xEC9A, - 38807 - 11905: 0xEC9B, - 38808 - 11905: 0xC7CA, - 38809 - 11905: 0xEC9C, - 38810 - 11905: 0xEC9D, - 38811 - 11905: 0xEC9E, - 38812 - 11905: 0xEC9F, - 38813 - 11905: 0xECA0, - 38814 - 11905: 0xED40, - 38815 - 11905: 0xED41, - 38816 - 11905: 0xBECF, - 38817 - 11905: 0xED42, - 38818 - 11905: 0xED43, - 38819 - 11905: 0xF7B7, - 38820 - 11905: 0xED44, - 38821 - 11905: 0xED45, - 38822 - 11905: 0xED46, - 38823 - 11905: 0xED47, - 38824 - 11905: 0xED48, - 38825 - 11905: 0xED49, - 38826 - 11905: 0xED4A, - 38827 - 11905: 0xF7B6, - 38828 - 11905: 0xED4B, - 38829 - 11905: 0xB1DE, - 38830 - 11905: 0xED4C, - 38831 - 11905: 0xF7B5, - 38832 - 11905: 0xED4D, - 38833 - 11905: 0xED4E, - 38834 - 11905: 0xF7B8, - 38835 - 11905: 0xED4F, - 38836 - 11905: 0xF7B9, - 38837 - 11905: 0xED50, - 38838 - 11905: 0xED51, - 38839 - 11905: 0xED52, - 38840 - 11905: 0xED53, - 38841 - 11905: 0xED54, - 38842 - 11905: 0xED55, - 38843 - 11905: 0xED56, - 38844 - 11905: 0xED57, - 38845 - 11905: 0xED58, - 38846 - 11905: 0xED59, - 38847 - 11905: 0xED5A, - 38848 - 11905: 0xED5B, - 38849 - 11905: 0xED5C, - 38850 - 11905: 0xED5D, - 38851 - 11905: 0xED5E, - 38852 - 11905: 0xED5F, - 38853 - 11905: 0xED60, - 38854 - 11905: 0xED61, - 38855 - 11905: 0xED62, - 38856 - 11905: 0xED63, - 38857 - 11905: 0xED64, - 38858 - 11905: 0xED65, - 38859 - 11905: 0xED66, - 38860 - 11905: 0xED67, - 38861 - 11905: 0xED68, - 38862 - 11905: 0xED69, - 38863 - 11905: 0xED6A, - 38864 - 11905: 0xED6B, - 38865 - 11905: 0xED6C, - 38866 - 11905: 0xED6D, - 38867 - 11905: 0xED6E, - 38868 - 11905: 0xED6F, - 38869 - 11905: 0xED70, - 38870 - 11905: 0xED71, - 38871 - 11905: 0xED72, - 38872 - 11905: 0xED73, - 38873 - 11905: 0xED74, - 38874 - 11905: 0xED75, - 38875 - 11905: 0xED76, - 38876 - 11905: 0xED77, - 38877 - 11905: 0xED78, - 38878 - 11905: 0xED79, - 38879 - 11905: 0xED7A, - 38880 - 11905: 0xED7B, - 38881 - 11905: 0xED7C, - 38882 - 11905: 0xED7D, - 38883 - 11905: 0xED7E, - 38884 - 11905: 0xED80, - 38885 - 11905: 0xED81, - 38886 - 11905: 0xCEA4, - 38887 - 11905: 0xC8CD, - 38888 - 11905: 0xED82, - 38889 - 11905: 0xBAAB, - 38890 - 11905: 0xE8B8, - 38891 - 11905: 0xE8B9, - 38892 - 11905: 0xE8BA, - 38893 - 11905: 0xBEC2, - 38894 - 11905: 0xED83, - 38895 - 11905: 0xED84, - 38896 - 11905: 0xED85, - 38897 - 11905: 0xED86, - 38898 - 11905: 0xED87, - 38899 - 11905: 0xD2F4, - 38900 - 11905: 0xED88, - 38901 - 11905: 0xD4CF, - 38902 - 11905: 0xC9D8, - 38903 - 11905: 0xED89, - 38904 - 11905: 0xED8A, - 38905 - 11905: 0xED8B, - 38906 - 11905: 0xED8C, - 38907 - 11905: 0xED8D, - 38908 - 11905: 0xED8E, - 38909 - 11905: 0xED8F, - 38910 - 11905: 0xED90, - 38911 - 11905: 0xED91, - 38912 - 11905: 0xED92, - 38913 - 11905: 0xED93, - 38914 - 11905: 0xED94, - 38915 - 11905: 0xED95, - 38916 - 11905: 0xED96, - 38917 - 11905: 0xED97, - 38918 - 11905: 0xED98, - 38919 - 11905: 0xED99, - 38920 - 11905: 0xED9A, - 38921 - 11905: 0xED9B, - 38922 - 11905: 0xED9C, - 38923 - 11905: 0xED9D, - 38924 - 11905: 0xED9E, - 38925 - 11905: 0xED9F, - 38926 - 11905: 0xEDA0, - 38927 - 11905: 0xEE40, - 38928 - 11905: 0xEE41, - 38929 - 11905: 0xEE42, - 38930 - 11905: 0xEE43, - 38931 - 11905: 0xEE44, - 38932 - 11905: 0xEE45, - 38933 - 11905: 0xEE46, - 38934 - 11905: 0xEE47, - 38935 - 11905: 0xEE48, - 38936 - 11905: 0xEE49, - 38937 - 11905: 0xEE4A, - 38938 - 11905: 0xEE4B, - 38939 - 11905: 0xEE4C, - 38940 - 11905: 0xEE4D, - 38941 - 11905: 0xEE4E, - 38942 - 11905: 0xEE4F, - 38943 - 11905: 0xEE50, - 38944 - 11905: 0xEE51, - 38945 - 11905: 0xEE52, - 38946 - 11905: 0xEE53, - 38947 - 11905: 0xEE54, - 38948 - 11905: 0xEE55, - 38949 - 11905: 0xEE56, - 38950 - 11905: 0xEE57, - 38951 - 11905: 0xEE58, - 38952 - 11905: 0xEE59, - 38953 - 11905: 0xEE5A, - 38954 - 11905: 0xEE5B, - 38955 - 11905: 0xEE5C, - 38956 - 11905: 0xEE5D, - 38957 - 11905: 0xEE5E, - 38958 - 11905: 0xEE5F, - 38959 - 11905: 0xEE60, - 38960 - 11905: 0xEE61, - 38961 - 11905: 0xEE62, - 38962 - 11905: 0xEE63, - 38963 - 11905: 0xEE64, - 38964 - 11905: 0xEE65, - 38965 - 11905: 0xEE66, - 38966 - 11905: 0xEE67, - 38967 - 11905: 0xEE68, - 38968 - 11905: 0xEE69, - 38969 - 11905: 0xEE6A, - 38970 - 11905: 0xEE6B, - 38971 - 11905: 0xEE6C, - 38972 - 11905: 0xEE6D, - 38973 - 11905: 0xEE6E, - 38974 - 11905: 0xEE6F, - 38975 - 11905: 0xEE70, - 38976 - 11905: 0xEE71, - 38977 - 11905: 0xEE72, - 38978 - 11905: 0xEE73, - 38979 - 11905: 0xEE74, - 38980 - 11905: 0xEE75, - 38981 - 11905: 0xEE76, - 38982 - 11905: 0xEE77, - 38983 - 11905: 0xEE78, - 38984 - 11905: 0xEE79, - 38985 - 11905: 0xEE7A, - 38986 - 11905: 0xEE7B, - 38987 - 11905: 0xEE7C, - 38988 - 11905: 0xEE7D, - 38989 - 11905: 0xEE7E, - 38990 - 11905: 0xEE80, - 38991 - 11905: 0xEE81, - 38992 - 11905: 0xEE82, - 38993 - 11905: 0xEE83, - 38994 - 11905: 0xEE84, - 38995 - 11905: 0xEE85, - 38996 - 11905: 0xEE86, - 38997 - 11905: 0xEE87, - 38998 - 11905: 0xEE88, - 38999 - 11905: 0xEE89, - 39000 - 11905: 0xEE8A, - 39001 - 11905: 0xEE8B, - 39002 - 11905: 0xEE8C, - 39003 - 11905: 0xEE8D, - 39004 - 11905: 0xEE8E, - 39005 - 11905: 0xEE8F, - 39006 - 11905: 0xEE90, - 39007 - 11905: 0xEE91, - 39008 - 11905: 0xEE92, - 39009 - 11905: 0xEE93, - 39010 - 11905: 0xEE94, - 39011 - 11905: 0xEE95, - 39012 - 11905: 0xEE96, - 39013 - 11905: 0xEE97, - 39014 - 11905: 0xEE98, - 39015 - 11905: 0xEE99, - 39016 - 11905: 0xEE9A, - 39017 - 11905: 0xEE9B, - 39018 - 11905: 0xEE9C, - 39019 - 11905: 0xEE9D, - 39020 - 11905: 0xEE9E, - 39021 - 11905: 0xEE9F, - 39022 - 11905: 0xEEA0, - 39023 - 11905: 0xEF40, - 39024 - 11905: 0xEF41, - 39025 - 11905: 0xEF42, - 39026 - 11905: 0xEF43, - 39027 - 11905: 0xEF44, - 39028 - 11905: 0xEF45, - 39029 - 11905: 0xD2B3, - 39030 - 11905: 0xB6A5, - 39031 - 11905: 0xC7EA, - 39032 - 11905: 0xF1FC, - 39033 - 11905: 0xCFEE, - 39034 - 11905: 0xCBB3, - 39035 - 11905: 0xD0EB, - 39036 - 11905: 0xE7EF, - 39037 - 11905: 0xCDE7, - 39038 - 11905: 0xB9CB, - 39039 - 11905: 0xB6D9, - 39040 - 11905: 0xF1FD, - 39041 - 11905: 0xB0E4, - 39042 - 11905: 0xCBCC, - 39043 - 11905: 0xF1FE, - 39044 - 11905: 0xD4A4, - 39045 - 11905: 0xC2AD, - 39046 - 11905: 0xC1EC, - 39047 - 11905: 0xC6C4, - 39048 - 11905: 0xBEB1, - 39049 - 11905: 0xF2A1, - 39050 - 11905: 0xBCD5, - 39051 - 11905: 0xEF46, - 39052 - 11905: 0xF2A2, - 39053 - 11905: 0xF2A3, - 39054 - 11905: 0xEF47, - 39055 - 11905: 0xF2A4, - 39056 - 11905: 0xD2C3, - 39057 - 11905: 0xC6B5, - 39058 - 11905: 0xEF48, - 39059 - 11905: 0xCDC7, - 39060 - 11905: 0xF2A5, - 39061 - 11905: 0xEF49, - 39062 - 11905: 0xD3B1, - 39063 - 11905: 0xBFC5, - 39064 - 11905: 0xCCE2, - 39065 - 11905: 0xEF4A, - 39066 - 11905: 0xF2A6, - 39067 - 11905: 0xF2A7, - 39068 - 11905: 0xD1D5, - 39069 - 11905: 0xB6EE, - 39070 - 11905: 0xF2A8, - 39071 - 11905: 0xF2A9, - 39072 - 11905: 0xB5DF, - 39073 - 11905: 0xF2AA, - 39074 - 11905: 0xF2AB, - 39075 - 11905: 0xEF4B, - 39076 - 11905: 0xB2FC, - 39077 - 11905: 0xF2AC, - 39078 - 11905: 0xF2AD, - 39079 - 11905: 0xC8A7, - 39080 - 11905: 0xEF4C, - 39081 - 11905: 0xEF4D, - 39082 - 11905: 0xEF4E, - 39083 - 11905: 0xEF4F, - 39084 - 11905: 0xEF50, - 39085 - 11905: 0xEF51, - 39086 - 11905: 0xEF52, - 39087 - 11905: 0xEF53, - 39088 - 11905: 0xEF54, - 39089 - 11905: 0xEF55, - 39090 - 11905: 0xEF56, - 39091 - 11905: 0xEF57, - 39092 - 11905: 0xEF58, - 39093 - 11905: 0xEF59, - 39094 - 11905: 0xEF5A, - 39095 - 11905: 0xEF5B, - 39096 - 11905: 0xEF5C, - 39097 - 11905: 0xEF5D, - 39098 - 11905: 0xEF5E, - 39099 - 11905: 0xEF5F, - 39100 - 11905: 0xEF60, - 39101 - 11905: 0xEF61, - 39102 - 11905: 0xEF62, - 39103 - 11905: 0xEF63, - 39104 - 11905: 0xEF64, - 39105 - 11905: 0xEF65, - 39106 - 11905: 0xEF66, - 39107 - 11905: 0xEF67, - 39108 - 11905: 0xEF68, - 39109 - 11905: 0xEF69, - 39110 - 11905: 0xEF6A, - 39111 - 11905: 0xEF6B, - 39112 - 11905: 0xEF6C, - 39113 - 11905: 0xEF6D, - 39114 - 11905: 0xEF6E, - 39115 - 11905: 0xEF6F, - 39116 - 11905: 0xEF70, - 39117 - 11905: 0xEF71, - 39118 - 11905: 0xB7E7, - 39119 - 11905: 0xEF72, - 39120 - 11905: 0xEF73, - 39121 - 11905: 0xECA9, - 39122 - 11905: 0xECAA, - 39123 - 11905: 0xECAB, - 39124 - 11905: 0xEF74, - 39125 - 11905: 0xECAC, - 39126 - 11905: 0xEF75, - 39127 - 11905: 0xEF76, - 39128 - 11905: 0xC6AE, - 39129 - 11905: 0xECAD, - 39130 - 11905: 0xECAE, - 39131 - 11905: 0xEF77, - 39132 - 11905: 0xEF78, - 39133 - 11905: 0xEF79, - 39134 - 11905: 0xB7C9, - 39135 - 11905: 0xCAB3, - 39136 - 11905: 0xEF7A, - 39137 - 11905: 0xEF7B, - 39138 - 11905: 0xEF7C, - 39139 - 11905: 0xEF7D, - 39140 - 11905: 0xEF7E, - 39141 - 11905: 0xEF80, - 39142 - 11905: 0xEF81, - 39143 - 11905: 0xE2B8, - 39144 - 11905: 0xF7CF, - 39145 - 11905: 0xEF82, - 39146 - 11905: 0xEF83, - 39147 - 11905: 0xEF84, - 39148 - 11905: 0xEF85, - 39149 - 11905: 0xEF86, - 39150 - 11905: 0xEF87, - 39151 - 11905: 0xEF88, - 39152 - 11905: 0xEF89, - 39153 - 11905: 0xEF8A, - 39154 - 11905: 0xEF8B, - 39155 - 11905: 0xEF8C, - 39156 - 11905: 0xEF8D, - 39157 - 11905: 0xEF8E, - 39158 - 11905: 0xEF8F, - 39159 - 11905: 0xEF90, - 39160 - 11905: 0xEF91, - 39161 - 11905: 0xEF92, - 39162 - 11905: 0xEF93, - 39163 - 11905: 0xEF94, - 39164 - 11905: 0xEF95, - 39165 - 11905: 0xEF96, - 39166 - 11905: 0xEF97, - 39167 - 11905: 0xEF98, - 39168 - 11905: 0xEF99, - 39169 - 11905: 0xEF9A, - 39170 - 11905: 0xEF9B, - 39171 - 11905: 0xEF9C, - 39172 - 11905: 0xEF9D, - 39173 - 11905: 0xEF9E, - 39174 - 11905: 0xEF9F, - 39175 - 11905: 0xEFA0, - 39176 - 11905: 0xF040, - 39177 - 11905: 0xF041, - 39178 - 11905: 0xF042, - 39179 - 11905: 0xF043, - 39180 - 11905: 0xF044, - 39181 - 11905: 0xF7D0, - 39182 - 11905: 0xF045, - 39183 - 11905: 0xF046, - 39184 - 11905: 0xB2CD, - 39185 - 11905: 0xF047, - 39186 - 11905: 0xF048, - 39187 - 11905: 0xF049, - 39188 - 11905: 0xF04A, - 39189 - 11905: 0xF04B, - 39190 - 11905: 0xF04C, - 39191 - 11905: 0xF04D, - 39192 - 11905: 0xF04E, - 39193 - 11905: 0xF04F, - 39194 - 11905: 0xF050, - 39195 - 11905: 0xF051, - 39196 - 11905: 0xF052, - 39197 - 11905: 0xF053, - 39198 - 11905: 0xF054, - 39199 - 11905: 0xF055, - 39200 - 11905: 0xF056, - 39201 - 11905: 0xF057, - 39202 - 11905: 0xF058, - 39203 - 11905: 0xF059, - 39204 - 11905: 0xF05A, - 39205 - 11905: 0xF05B, - 39206 - 11905: 0xF05C, - 39207 - 11905: 0xF05D, - 39208 - 11905: 0xF05E, - 39209 - 11905: 0xF05F, - 39210 - 11905: 0xF060, - 39211 - 11905: 0xF061, - 39212 - 11905: 0xF062, - 39213 - 11905: 0xF063, - 39214 - 11905: 0xF7D1, - 39215 - 11905: 0xF064, - 39216 - 11905: 0xF065, - 39217 - 11905: 0xF066, - 39218 - 11905: 0xF067, - 39219 - 11905: 0xF068, - 39220 - 11905: 0xF069, - 39221 - 11905: 0xF06A, - 39222 - 11905: 0xF06B, - 39223 - 11905: 0xF06C, - 39224 - 11905: 0xF06D, - 39225 - 11905: 0xF06E, - 39226 - 11905: 0xF06F, - 39227 - 11905: 0xF070, - 39228 - 11905: 0xF071, - 39229 - 11905: 0xF072, - 39230 - 11905: 0xF073, - 39231 - 11905: 0xF074, - 39232 - 11905: 0xF075, - 39233 - 11905: 0xF076, - 39234 - 11905: 0xF077, - 39235 - 11905: 0xF078, - 39236 - 11905: 0xF079, - 39237 - 11905: 0xF07A, - 39238 - 11905: 0xF07B, - 39239 - 11905: 0xF07C, - 39240 - 11905: 0xF07D, - 39241 - 11905: 0xF07E, - 39242 - 11905: 0xF080, - 39243 - 11905: 0xF081, - 39244 - 11905: 0xF082, - 39245 - 11905: 0xF083, - 39246 - 11905: 0xF084, - 39247 - 11905: 0xF085, - 39248 - 11905: 0xF086, - 39249 - 11905: 0xF087, - 39250 - 11905: 0xF088, - 39251 - 11905: 0xF089, - 39252 - 11905: 0xF7D3, - 39253 - 11905: 0xF7D2, - 39254 - 11905: 0xF08A, - 39255 - 11905: 0xF08B, - 39256 - 11905: 0xF08C, - 39257 - 11905: 0xF08D, - 39258 - 11905: 0xF08E, - 39259 - 11905: 0xF08F, - 39260 - 11905: 0xF090, - 39261 - 11905: 0xF091, - 39262 - 11905: 0xF092, - 39263 - 11905: 0xF093, - 39264 - 11905: 0xF094, - 39265 - 11905: 0xF095, - 39266 - 11905: 0xF096, - 39267 - 11905: 0xE2BB, - 39268 - 11905: 0xF097, - 39269 - 11905: 0xBCA2, - 39270 - 11905: 0xF098, - 39271 - 11905: 0xE2BC, - 39272 - 11905: 0xE2BD, - 39273 - 11905: 0xE2BE, - 39274 - 11905: 0xE2BF, - 39275 - 11905: 0xE2C0, - 39276 - 11905: 0xE2C1, - 39277 - 11905: 0xB7B9, - 39278 - 11905: 0xD2FB, - 39279 - 11905: 0xBDA4, - 39280 - 11905: 0xCACE, - 39281 - 11905: 0xB1A5, - 39282 - 11905: 0xCBC7, - 39283 - 11905: 0xF099, - 39284 - 11905: 0xE2C2, - 39285 - 11905: 0xB6FC, - 39286 - 11905: 0xC8C4, - 39287 - 11905: 0xE2C3, - 39288 - 11905: 0xF09A, - 39289 - 11905: 0xF09B, - 39290 - 11905: 0xBDC8, - 39291 - 11905: 0xF09C, - 39292 - 11905: 0xB1FD, - 39293 - 11905: 0xE2C4, - 39294 - 11905: 0xF09D, - 39295 - 11905: 0xB6F6, - 39296 - 11905: 0xE2C5, - 39297 - 11905: 0xC4D9, - 39298 - 11905: 0xF09E, - 39299 - 11905: 0xF09F, - 39300 - 11905: 0xE2C6, - 39301 - 11905: 0xCFDA, - 39302 - 11905: 0xB9DD, - 39303 - 11905: 0xE2C7, - 39304 - 11905: 0xC0A1, - 39305 - 11905: 0xF0A0, - 39306 - 11905: 0xE2C8, - 39307 - 11905: 0xB2F6, - 39308 - 11905: 0xF140, - 39309 - 11905: 0xE2C9, - 39310 - 11905: 0xF141, - 39311 - 11905: 0xC1F3, - 39312 - 11905: 0xE2CA, - 39313 - 11905: 0xE2CB, - 39314 - 11905: 0xC2F8, - 39315 - 11905: 0xE2CC, - 39316 - 11905: 0xE2CD, - 39317 - 11905: 0xE2CE, - 39318 - 11905: 0xCAD7, - 39319 - 11905: 0xD8B8, - 39320 - 11905: 0xD9E5, - 39321 - 11905: 0xCFE3, - 39322 - 11905: 0xF142, - 39323 - 11905: 0xF143, - 39324 - 11905: 0xF144, - 39325 - 11905: 0xF145, - 39326 - 11905: 0xF146, - 39327 - 11905: 0xF147, - 39328 - 11905: 0xF148, - 39329 - 11905: 0xF149, - 39330 - 11905: 0xF14A, - 39331 - 11905: 0xF14B, - 39332 - 11905: 0xF14C, - 39333 - 11905: 0xF0A5, - 39334 - 11905: 0xF14D, - 39335 - 11905: 0xF14E, - 39336 - 11905: 0xDCB0, - 39337 - 11905: 0xF14F, - 39338 - 11905: 0xF150, - 39339 - 11905: 0xF151, - 39340 - 11905: 0xF152, - 39341 - 11905: 0xF153, - 39342 - 11905: 0xF154, - 39343 - 11905: 0xF155, - 39344 - 11905: 0xF156, - 39345 - 11905: 0xF157, - 39346 - 11905: 0xF158, - 39347 - 11905: 0xF159, - 39348 - 11905: 0xF15A, - 39349 - 11905: 0xF15B, - 39350 - 11905: 0xF15C, - 39351 - 11905: 0xF15D, - 39352 - 11905: 0xF15E, - 39353 - 11905: 0xF15F, - 39354 - 11905: 0xF160, - 39355 - 11905: 0xF161, - 39356 - 11905: 0xF162, - 39357 - 11905: 0xF163, - 39358 - 11905: 0xF164, - 39359 - 11905: 0xF165, - 39360 - 11905: 0xF166, - 39361 - 11905: 0xF167, - 39362 - 11905: 0xF168, - 39363 - 11905: 0xF169, - 39364 - 11905: 0xF16A, - 39365 - 11905: 0xF16B, - 39366 - 11905: 0xF16C, - 39367 - 11905: 0xF16D, - 39368 - 11905: 0xF16E, - 39369 - 11905: 0xF16F, - 39370 - 11905: 0xF170, - 39371 - 11905: 0xF171, - 39372 - 11905: 0xF172, - 39373 - 11905: 0xF173, - 39374 - 11905: 0xF174, - 39375 - 11905: 0xF175, - 39376 - 11905: 0xF176, - 39377 - 11905: 0xF177, - 39378 - 11905: 0xF178, - 39379 - 11905: 0xF179, - 39380 - 11905: 0xF17A, - 39381 - 11905: 0xF17B, - 39382 - 11905: 0xF17C, - 39383 - 11905: 0xF17D, - 39384 - 11905: 0xF17E, - 39385 - 11905: 0xF180, - 39386 - 11905: 0xF181, - 39387 - 11905: 0xF182, - 39388 - 11905: 0xF183, - 39389 - 11905: 0xF184, - 39390 - 11905: 0xF185, - 39391 - 11905: 0xF186, - 39392 - 11905: 0xF187, - 39393 - 11905: 0xF188, - 39394 - 11905: 0xF189, - 39395 - 11905: 0xF18A, - 39396 - 11905: 0xF18B, - 39397 - 11905: 0xF18C, - 39398 - 11905: 0xF18D, - 39399 - 11905: 0xF18E, - 39400 - 11905: 0xF18F, - 39401 - 11905: 0xF190, - 39402 - 11905: 0xF191, - 39403 - 11905: 0xF192, - 39404 - 11905: 0xF193, - 39405 - 11905: 0xF194, - 39406 - 11905: 0xF195, - 39407 - 11905: 0xF196, - 39408 - 11905: 0xF197, - 39409 - 11905: 0xF198, - 39410 - 11905: 0xF199, - 39411 - 11905: 0xF19A, - 39412 - 11905: 0xF19B, - 39413 - 11905: 0xF19C, - 39414 - 11905: 0xF19D, - 39415 - 11905: 0xF19E, - 39416 - 11905: 0xF19F, - 39417 - 11905: 0xF1A0, - 39418 - 11905: 0xF240, - 39419 - 11905: 0xF241, - 39420 - 11905: 0xF242, - 39421 - 11905: 0xF243, - 39422 - 11905: 0xF244, - 39423 - 11905: 0xF245, - 39424 - 11905: 0xF246, - 39425 - 11905: 0xF247, - 39426 - 11905: 0xF248, - 39427 - 11905: 0xF249, - 39428 - 11905: 0xF24A, - 39429 - 11905: 0xF24B, - 39430 - 11905: 0xF24C, - 39431 - 11905: 0xF24D, - 39432 - 11905: 0xF24E, - 39433 - 11905: 0xF24F, - 39434 - 11905: 0xF250, - 39435 - 11905: 0xF251, - 39436 - 11905: 0xF252, - 39437 - 11905: 0xF253, - 39438 - 11905: 0xF254, - 39439 - 11905: 0xF255, - 39440 - 11905: 0xF256, - 39441 - 11905: 0xF257, - 39442 - 11905: 0xF258, - 39443 - 11905: 0xF259, - 39444 - 11905: 0xF25A, - 39445 - 11905: 0xF25B, - 39446 - 11905: 0xF25C, - 39447 - 11905: 0xF25D, - 39448 - 11905: 0xF25E, - 39449 - 11905: 0xF25F, - 39450 - 11905: 0xF260, - 39451 - 11905: 0xF261, - 39452 - 11905: 0xF262, - 39453 - 11905: 0xF263, - 39454 - 11905: 0xF264, - 39455 - 11905: 0xF265, - 39456 - 11905: 0xF266, - 39457 - 11905: 0xF267, - 39458 - 11905: 0xF268, - 39459 - 11905: 0xF269, - 39460 - 11905: 0xF26A, - 39461 - 11905: 0xF26B, - 39462 - 11905: 0xF26C, - 39463 - 11905: 0xF26D, - 39464 - 11905: 0xF26E, - 39465 - 11905: 0xF26F, - 39466 - 11905: 0xF270, - 39467 - 11905: 0xF271, - 39468 - 11905: 0xF272, - 39469 - 11905: 0xF273, - 39470 - 11905: 0xF274, - 39471 - 11905: 0xF275, - 39472 - 11905: 0xF276, - 39473 - 11905: 0xF277, - 39474 - 11905: 0xF278, - 39475 - 11905: 0xF279, - 39476 - 11905: 0xF27A, - 39477 - 11905: 0xF27B, - 39478 - 11905: 0xF27C, - 39479 - 11905: 0xF27D, - 39480 - 11905: 0xF27E, - 39481 - 11905: 0xF280, - 39482 - 11905: 0xF281, - 39483 - 11905: 0xF282, - 39484 - 11905: 0xF283, - 39485 - 11905: 0xF284, - 39486 - 11905: 0xF285, - 39487 - 11905: 0xF286, - 39488 - 11905: 0xF287, - 39489 - 11905: 0xF288, - 39490 - 11905: 0xF289, - 39491 - 11905: 0xF28A, - 39492 - 11905: 0xF28B, - 39493 - 11905: 0xF28C, - 39494 - 11905: 0xF28D, - 39495 - 11905: 0xF28E, - 39496 - 11905: 0xF28F, - 39497 - 11905: 0xF290, - 39498 - 11905: 0xF291, - 39499 - 11905: 0xF292, - 39500 - 11905: 0xF293, - 39501 - 11905: 0xF294, - 39502 - 11905: 0xF295, - 39503 - 11905: 0xF296, - 39504 - 11905: 0xF297, - 39505 - 11905: 0xF298, - 39506 - 11905: 0xF299, - 39507 - 11905: 0xF29A, - 39508 - 11905: 0xF29B, - 39509 - 11905: 0xF29C, - 39510 - 11905: 0xF29D, - 39511 - 11905: 0xF29E, - 39512 - 11905: 0xF29F, - 39513 - 11905: 0xF2A0, - 39514 - 11905: 0xF340, - 39515 - 11905: 0xF341, - 39516 - 11905: 0xF342, - 39517 - 11905: 0xF343, - 39518 - 11905: 0xF344, - 39519 - 11905: 0xF345, - 39520 - 11905: 0xF346, - 39521 - 11905: 0xF347, - 39522 - 11905: 0xF348, - 39523 - 11905: 0xF349, - 39524 - 11905: 0xF34A, - 39525 - 11905: 0xF34B, - 39526 - 11905: 0xF34C, - 39527 - 11905: 0xF34D, - 39528 - 11905: 0xF34E, - 39529 - 11905: 0xF34F, - 39530 - 11905: 0xF350, - 39531 - 11905: 0xF351, - 39532 - 11905: 0xC2ED, - 39533 - 11905: 0xD4A6, - 39534 - 11905: 0xCDD4, - 39535 - 11905: 0xD1B1, - 39536 - 11905: 0xB3DB, - 39537 - 11905: 0xC7FD, - 39538 - 11905: 0xF352, - 39539 - 11905: 0xB2B5, - 39540 - 11905: 0xC2BF, - 39541 - 11905: 0xE6E0, - 39542 - 11905: 0xCABB, - 39543 - 11905: 0xE6E1, - 39544 - 11905: 0xE6E2, - 39545 - 11905: 0xBED4, - 39546 - 11905: 0xE6E3, - 39547 - 11905: 0xD7A4, - 39548 - 11905: 0xCDD5, - 39549 - 11905: 0xE6E5, - 39550 - 11905: 0xBCDD, - 39551 - 11905: 0xE6E4, - 39552 - 11905: 0xE6E6, - 39553 - 11905: 0xE6E7, - 39554 - 11905: 0xC2EE, - 39555 - 11905: 0xF353, - 39556 - 11905: 0xBDBE, - 39557 - 11905: 0xE6E8, - 39558 - 11905: 0xC2E6, - 39559 - 11905: 0xBAA7, - 39560 - 11905: 0xE6E9, - 39561 - 11905: 0xF354, - 39562 - 11905: 0xE6EA, - 39563 - 11905: 0xB3D2, - 39564 - 11905: 0xD1E9, - 39565 - 11905: 0xF355, - 39566 - 11905: 0xF356, - 39567 - 11905: 0xBFA5, - 39568 - 11905: 0xE6EB, - 39569 - 11905: 0xC6EF, - 39570 - 11905: 0xE6EC, - 39571 - 11905: 0xE6ED, - 39572 - 11905: 0xF357, - 39573 - 11905: 0xF358, - 39574 - 11905: 0xE6EE, - 39575 - 11905: 0xC6AD, - 39576 - 11905: 0xE6EF, - 39577 - 11905: 0xF359, - 39578 - 11905: 0xC9A7, - 39579 - 11905: 0xE6F0, - 39580 - 11905: 0xE6F1, - 39581 - 11905: 0xE6F2, - 39582 - 11905: 0xE5B9, - 39583 - 11905: 0xE6F3, - 39584 - 11905: 0xE6F4, - 39585 - 11905: 0xC2E2, - 39586 - 11905: 0xE6F5, - 39587 - 11905: 0xE6F6, - 39588 - 11905: 0xD6E8, - 39589 - 11905: 0xE6F7, - 39590 - 11905: 0xF35A, - 39591 - 11905: 0xE6F8, - 39592 - 11905: 0xB9C7, - 39593 - 11905: 0xF35B, - 39594 - 11905: 0xF35C, - 39595 - 11905: 0xF35D, - 39596 - 11905: 0xF35E, - 39597 - 11905: 0xF35F, - 39598 - 11905: 0xF360, - 39599 - 11905: 0xF361, - 39600 - 11905: 0xF7BB, - 39601 - 11905: 0xF7BA, - 39602 - 11905: 0xF362, - 39603 - 11905: 0xF363, - 39604 - 11905: 0xF364, - 39605 - 11905: 0xF365, - 39606 - 11905: 0xF7BE, - 39607 - 11905: 0xF7BC, - 39608 - 11905: 0xBAA1, - 39609 - 11905: 0xF366, - 39610 - 11905: 0xF7BF, - 39611 - 11905: 0xF367, - 39612 - 11905: 0xF7C0, - 39613 - 11905: 0xF368, - 39614 - 11905: 0xF369, - 39615 - 11905: 0xF36A, - 39616 - 11905: 0xF7C2, - 39617 - 11905: 0xF7C1, - 39618 - 11905: 0xF7C4, - 39619 - 11905: 0xF36B, - 39620 - 11905: 0xF36C, - 39621 - 11905: 0xF7C3, - 39622 - 11905: 0xF36D, - 39623 - 11905: 0xF36E, - 39624 - 11905: 0xF36F, - 39625 - 11905: 0xF370, - 39626 - 11905: 0xF371, - 39627 - 11905: 0xF7C5, - 39628 - 11905: 0xF7C6, - 39629 - 11905: 0xF372, - 39630 - 11905: 0xF373, - 39631 - 11905: 0xF374, - 39632 - 11905: 0xF375, - 39633 - 11905: 0xF7C7, - 39634 - 11905: 0xF376, - 39635 - 11905: 0xCBE8, - 39636 - 11905: 0xF377, - 39637 - 11905: 0xF378, - 39638 - 11905: 0xF379, - 39639 - 11905: 0xF37A, - 39640 - 11905: 0xB8DF, - 39641 - 11905: 0xF37B, - 39642 - 11905: 0xF37C, - 39643 - 11905: 0xF37D, - 39644 - 11905: 0xF37E, - 39645 - 11905: 0xF380, - 39646 - 11905: 0xF381, - 39647 - 11905: 0xF7D4, - 39648 - 11905: 0xF382, - 39649 - 11905: 0xF7D5, - 39650 - 11905: 0xF383, - 39651 - 11905: 0xF384, - 39652 - 11905: 0xF385, - 39653 - 11905: 0xF386, - 39654 - 11905: 0xF7D6, - 39655 - 11905: 0xF387, - 39656 - 11905: 0xF388, - 39657 - 11905: 0xF389, - 39658 - 11905: 0xF38A, - 39659 - 11905: 0xF7D8, - 39660 - 11905: 0xF38B, - 39661 - 11905: 0xF7DA, - 39662 - 11905: 0xF38C, - 39663 - 11905: 0xF7D7, - 39664 - 11905: 0xF38D, - 39665 - 11905: 0xF38E, - 39666 - 11905: 0xF38F, - 39667 - 11905: 0xF390, - 39668 - 11905: 0xF391, - 39669 - 11905: 0xF392, - 39670 - 11905: 0xF393, - 39671 - 11905: 0xF394, - 39672 - 11905: 0xF395, - 39673 - 11905: 0xF7DB, - 39674 - 11905: 0xF396, - 39675 - 11905: 0xF7D9, - 39676 - 11905: 0xF397, - 39677 - 11905: 0xF398, - 39678 - 11905: 0xF399, - 39679 - 11905: 0xF39A, - 39680 - 11905: 0xF39B, - 39681 - 11905: 0xF39C, - 39682 - 11905: 0xF39D, - 39683 - 11905: 0xD7D7, - 39684 - 11905: 0xF39E, - 39685 - 11905: 0xF39F, - 39686 - 11905: 0xF3A0, - 39687 - 11905: 0xF440, - 39688 - 11905: 0xF7DC, - 39689 - 11905: 0xF441, - 39690 - 11905: 0xF442, - 39691 - 11905: 0xF443, - 39692 - 11905: 0xF444, - 39693 - 11905: 0xF445, - 39694 - 11905: 0xF446, - 39695 - 11905: 0xF7DD, - 39696 - 11905: 0xF447, - 39697 - 11905: 0xF448, - 39698 - 11905: 0xF449, - 39699 - 11905: 0xF7DE, - 39700 - 11905: 0xF44A, - 39701 - 11905: 0xF44B, - 39702 - 11905: 0xF44C, - 39703 - 11905: 0xF44D, - 39704 - 11905: 0xF44E, - 39705 - 11905: 0xF44F, - 39706 - 11905: 0xF450, - 39707 - 11905: 0xF451, - 39708 - 11905: 0xF452, - 39709 - 11905: 0xF453, - 39710 - 11905: 0xF454, - 39711 - 11905: 0xF7DF, - 39712 - 11905: 0xF455, - 39713 - 11905: 0xF456, - 39714 - 11905: 0xF457, - 39715 - 11905: 0xF7E0, - 39716 - 11905: 0xF458, - 39717 - 11905: 0xF459, - 39718 - 11905: 0xF45A, - 39719 - 11905: 0xF45B, - 39720 - 11905: 0xF45C, - 39721 - 11905: 0xF45D, - 39722 - 11905: 0xF45E, - 39723 - 11905: 0xF45F, - 39724 - 11905: 0xF460, - 39725 - 11905: 0xF461, - 39726 - 11905: 0xF462, - 39727 - 11905: 0xDBCB, - 39728 - 11905: 0xF463, - 39729 - 11905: 0xF464, - 39730 - 11905: 0xD8AA, - 39731 - 11905: 0xF465, - 39732 - 11905: 0xF466, - 39733 - 11905: 0xF467, - 39734 - 11905: 0xF468, - 39735 - 11905: 0xF469, - 39736 - 11905: 0xF46A, - 39737 - 11905: 0xF46B, - 39738 - 11905: 0xF46C, - 39739 - 11905: 0xE5F7, - 39740 - 11905: 0xB9ED, - 39741 - 11905: 0xF46D, - 39742 - 11905: 0xF46E, - 39743 - 11905: 0xF46F, - 39744 - 11905: 0xF470, - 39745 - 11905: 0xBFFD, - 39746 - 11905: 0xBBEA, - 39747 - 11905: 0xF7C9, - 39748 - 11905: 0xC6C7, - 39749 - 11905: 0xF7C8, - 39750 - 11905: 0xF471, - 39751 - 11905: 0xF7CA, - 39752 - 11905: 0xF7CC, - 39753 - 11905: 0xF7CB, - 39754 - 11905: 0xF472, - 39755 - 11905: 0xF473, - 39756 - 11905: 0xF474, - 39757 - 11905: 0xF7CD, - 39758 - 11905: 0xF475, - 39759 - 11905: 0xCEBA, - 39760 - 11905: 0xF476, - 39761 - 11905: 0xF7CE, - 39762 - 11905: 0xF477, - 39763 - 11905: 0xF478, - 39764 - 11905: 0xC4A7, - 39765 - 11905: 0xF479, - 39766 - 11905: 0xF47A, - 39767 - 11905: 0xF47B, - 39768 - 11905: 0xF47C, - 39769 - 11905: 0xF47D, - 39770 - 11905: 0xF47E, - 39771 - 11905: 0xF480, - 39772 - 11905: 0xF481, - 39773 - 11905: 0xF482, - 39774 - 11905: 0xF483, - 39775 - 11905: 0xF484, - 39776 - 11905: 0xF485, - 39777 - 11905: 0xF486, - 39778 - 11905: 0xF487, - 39779 - 11905: 0xF488, - 39780 - 11905: 0xF489, - 39781 - 11905: 0xF48A, - 39782 - 11905: 0xF48B, - 39783 - 11905: 0xF48C, - 39784 - 11905: 0xF48D, - 39785 - 11905: 0xF48E, - 39786 - 11905: 0xF48F, - 39787 - 11905: 0xF490, - 39788 - 11905: 0xF491, - 39789 - 11905: 0xF492, - 39790 - 11905: 0xF493, - 39791 - 11905: 0xF494, - 39792 - 11905: 0xF495, - 39793 - 11905: 0xF496, - 39794 - 11905: 0xF497, - 39795 - 11905: 0xF498, - 39796 - 11905: 0xF499, - 39797 - 11905: 0xF49A, - 39798 - 11905: 0xF49B, - 39799 - 11905: 0xF49C, - 39800 - 11905: 0xF49D, - 39801 - 11905: 0xF49E, - 39802 - 11905: 0xF49F, - 39803 - 11905: 0xF4A0, - 39804 - 11905: 0xF540, - 39805 - 11905: 0xF541, - 39806 - 11905: 0xF542, - 39807 - 11905: 0xF543, - 39808 - 11905: 0xF544, - 39809 - 11905: 0xF545, - 39810 - 11905: 0xF546, - 39811 - 11905: 0xF547, - 39812 - 11905: 0xF548, - 39813 - 11905: 0xF549, - 39814 - 11905: 0xF54A, - 39815 - 11905: 0xF54B, - 39816 - 11905: 0xF54C, - 39817 - 11905: 0xF54D, - 39818 - 11905: 0xF54E, - 39819 - 11905: 0xF54F, - 39820 - 11905: 0xF550, - 39821 - 11905: 0xF551, - 39822 - 11905: 0xF552, - 39823 - 11905: 0xF553, - 39824 - 11905: 0xF554, - 39825 - 11905: 0xF555, - 39826 - 11905: 0xF556, - 39827 - 11905: 0xF557, - 39828 - 11905: 0xF558, - 39829 - 11905: 0xF559, - 39830 - 11905: 0xF55A, - 39831 - 11905: 0xF55B, - 39832 - 11905: 0xF55C, - 39833 - 11905: 0xF55D, - 39834 - 11905: 0xF55E, - 39835 - 11905: 0xF55F, - 39836 - 11905: 0xF560, - 39837 - 11905: 0xF561, - 39838 - 11905: 0xF562, - 39839 - 11905: 0xF563, - 39840 - 11905: 0xF564, - 39841 - 11905: 0xF565, - 39842 - 11905: 0xF566, - 39843 - 11905: 0xF567, - 39844 - 11905: 0xF568, - 39845 - 11905: 0xF569, - 39846 - 11905: 0xF56A, - 39847 - 11905: 0xF56B, - 39848 - 11905: 0xF56C, - 39849 - 11905: 0xF56D, - 39850 - 11905: 0xF56E, - 39851 - 11905: 0xF56F, - 39852 - 11905: 0xF570, - 39853 - 11905: 0xF571, - 39854 - 11905: 0xF572, - 39855 - 11905: 0xF573, - 39856 - 11905: 0xF574, - 39857 - 11905: 0xF575, - 39858 - 11905: 0xF576, - 39859 - 11905: 0xF577, - 39860 - 11905: 0xF578, - 39861 - 11905: 0xF579, - 39862 - 11905: 0xF57A, - 39863 - 11905: 0xF57B, - 39864 - 11905: 0xF57C, - 39865 - 11905: 0xF57D, - 39866 - 11905: 0xF57E, - 39867 - 11905: 0xF580, - 39868 - 11905: 0xF581, - 39869 - 11905: 0xF582, - 39870 - 11905: 0xF583, - 39871 - 11905: 0xF584, - 39872 - 11905: 0xF585, - 39873 - 11905: 0xF586, - 39874 - 11905: 0xF587, - 39875 - 11905: 0xF588, - 39876 - 11905: 0xF589, - 39877 - 11905: 0xF58A, - 39878 - 11905: 0xF58B, - 39879 - 11905: 0xF58C, - 39880 - 11905: 0xF58D, - 39881 - 11905: 0xF58E, - 39882 - 11905: 0xF58F, - 39883 - 11905: 0xF590, - 39884 - 11905: 0xF591, - 39885 - 11905: 0xF592, - 39886 - 11905: 0xF593, - 39887 - 11905: 0xF594, - 39888 - 11905: 0xF595, - 39889 - 11905: 0xF596, - 39890 - 11905: 0xF597, - 39891 - 11905: 0xF598, - 39892 - 11905: 0xF599, - 39893 - 11905: 0xF59A, - 39894 - 11905: 0xF59B, - 39895 - 11905: 0xF59C, - 39896 - 11905: 0xF59D, - 39897 - 11905: 0xF59E, - 39898 - 11905: 0xF59F, - 39899 - 11905: 0xF5A0, - 39900 - 11905: 0xF640, - 39901 - 11905: 0xF641, - 39902 - 11905: 0xF642, - 39903 - 11905: 0xF643, - 39904 - 11905: 0xF644, - 39905 - 11905: 0xF645, - 39906 - 11905: 0xF646, - 39907 - 11905: 0xF647, - 39908 - 11905: 0xF648, - 39909 - 11905: 0xF649, - 39910 - 11905: 0xF64A, - 39911 - 11905: 0xF64B, - 39912 - 11905: 0xF64C, - 39913 - 11905: 0xF64D, - 39914 - 11905: 0xF64E, - 39915 - 11905: 0xF64F, - 39916 - 11905: 0xF650, - 39917 - 11905: 0xF651, - 39918 - 11905: 0xF652, - 39919 - 11905: 0xF653, - 39920 - 11905: 0xF654, - 39921 - 11905: 0xF655, - 39922 - 11905: 0xF656, - 39923 - 11905: 0xF657, - 39924 - 11905: 0xF658, - 39925 - 11905: 0xF659, - 39926 - 11905: 0xF65A, - 39927 - 11905: 0xF65B, - 39928 - 11905: 0xF65C, - 39929 - 11905: 0xF65D, - 39930 - 11905: 0xF65E, - 39931 - 11905: 0xF65F, - 39932 - 11905: 0xF660, - 39933 - 11905: 0xF661, - 39934 - 11905: 0xF662, - 39935 - 11905: 0xF663, - 39936 - 11905: 0xF664, - 39937 - 11905: 0xF665, - 39938 - 11905: 0xF666, - 39939 - 11905: 0xF667, - 39940 - 11905: 0xF668, - 39941 - 11905: 0xF669, - 39942 - 11905: 0xF66A, - 39943 - 11905: 0xF66B, - 39944 - 11905: 0xF66C, - 39945 - 11905: 0xF66D, - 39946 - 11905: 0xF66E, - 39947 - 11905: 0xF66F, - 39948 - 11905: 0xF670, - 39949 - 11905: 0xF671, - 39950 - 11905: 0xF672, - 39951 - 11905: 0xF673, - 39952 - 11905: 0xF674, - 39953 - 11905: 0xF675, - 39954 - 11905: 0xF676, - 39955 - 11905: 0xF677, - 39956 - 11905: 0xF678, - 39957 - 11905: 0xF679, - 39958 - 11905: 0xF67A, - 39959 - 11905: 0xF67B, - 39960 - 11905: 0xF67C, - 39961 - 11905: 0xF67D, - 39962 - 11905: 0xF67E, - 39963 - 11905: 0xF680, - 39964 - 11905: 0xF681, - 39965 - 11905: 0xF682, - 39966 - 11905: 0xF683, - 39967 - 11905: 0xF684, - 39968 - 11905: 0xF685, - 39969 - 11905: 0xF686, - 39970 - 11905: 0xF687, - 39971 - 11905: 0xF688, - 39972 - 11905: 0xF689, - 39973 - 11905: 0xF68A, - 39974 - 11905: 0xF68B, - 39975 - 11905: 0xF68C, - 39976 - 11905: 0xF68D, - 39977 - 11905: 0xF68E, - 39978 - 11905: 0xF68F, - 39979 - 11905: 0xF690, - 39980 - 11905: 0xF691, - 39981 - 11905: 0xF692, - 39982 - 11905: 0xF693, - 39983 - 11905: 0xF694, - 39984 - 11905: 0xF695, - 39985 - 11905: 0xF696, - 39986 - 11905: 0xF697, - 39987 - 11905: 0xF698, - 39988 - 11905: 0xF699, - 39989 - 11905: 0xF69A, - 39990 - 11905: 0xF69B, - 39991 - 11905: 0xF69C, - 39992 - 11905: 0xF69D, - 39993 - 11905: 0xF69E, - 39994 - 11905: 0xF69F, - 39995 - 11905: 0xF6A0, - 39996 - 11905: 0xF740, - 39997 - 11905: 0xF741, - 39998 - 11905: 0xF742, - 39999 - 11905: 0xF743, - 40000 - 11905: 0xF744, - 40001 - 11905: 0xF745, - 40002 - 11905: 0xF746, - 40003 - 11905: 0xF747, - 40004 - 11905: 0xF748, - 40005 - 11905: 0xF749, - 40006 - 11905: 0xF74A, - 40007 - 11905: 0xF74B, - 40008 - 11905: 0xF74C, - 40009 - 11905: 0xF74D, - 40010 - 11905: 0xF74E, - 40011 - 11905: 0xF74F, - 40012 - 11905: 0xF750, - 40013 - 11905: 0xF751, - 40014 - 11905: 0xF752, - 40015 - 11905: 0xF753, - 40016 - 11905: 0xF754, - 40017 - 11905: 0xF755, - 40018 - 11905: 0xF756, - 40019 - 11905: 0xF757, - 40020 - 11905: 0xF758, - 40021 - 11905: 0xF759, - 40022 - 11905: 0xF75A, - 40023 - 11905: 0xF75B, - 40024 - 11905: 0xF75C, - 40025 - 11905: 0xF75D, - 40026 - 11905: 0xF75E, - 40027 - 11905: 0xF75F, - 40028 - 11905: 0xF760, - 40029 - 11905: 0xF761, - 40030 - 11905: 0xF762, - 40031 - 11905: 0xF763, - 40032 - 11905: 0xF764, - 40033 - 11905: 0xF765, - 40034 - 11905: 0xF766, - 40035 - 11905: 0xF767, - 40036 - 11905: 0xF768, - 40037 - 11905: 0xF769, - 40038 - 11905: 0xF76A, - 40039 - 11905: 0xF76B, - 40040 - 11905: 0xF76C, - 40041 - 11905: 0xF76D, - 40042 - 11905: 0xF76E, - 40043 - 11905: 0xF76F, - 40044 - 11905: 0xF770, - 40045 - 11905: 0xF771, - 40046 - 11905: 0xF772, - 40047 - 11905: 0xF773, - 40048 - 11905: 0xF774, - 40049 - 11905: 0xF775, - 40050 - 11905: 0xF776, - 40051 - 11905: 0xF777, - 40052 - 11905: 0xF778, - 40053 - 11905: 0xF779, - 40054 - 11905: 0xF77A, - 40055 - 11905: 0xF77B, - 40056 - 11905: 0xF77C, - 40057 - 11905: 0xF77D, - 40058 - 11905: 0xF77E, - 40059 - 11905: 0xF780, - 40060 - 11905: 0xD3E3, - 40061 - 11905: 0xF781, - 40062 - 11905: 0xF782, - 40063 - 11905: 0xF6CF, - 40064 - 11905: 0xF783, - 40065 - 11905: 0xC2B3, - 40066 - 11905: 0xF6D0, - 40067 - 11905: 0xF784, - 40068 - 11905: 0xF785, - 40069 - 11905: 0xF6D1, - 40070 - 11905: 0xF6D2, - 40071 - 11905: 0xF6D3, - 40072 - 11905: 0xF6D4, - 40073 - 11905: 0xF786, - 40074 - 11905: 0xF787, - 40075 - 11905: 0xF6D6, - 40076 - 11905: 0xF788, - 40077 - 11905: 0xB1AB, - 40078 - 11905: 0xF6D7, - 40079 - 11905: 0xF789, - 40080 - 11905: 0xF6D8, - 40081 - 11905: 0xF6D9, - 40082 - 11905: 0xF6DA, - 40083 - 11905: 0xF78A, - 40084 - 11905: 0xF6DB, - 40085 - 11905: 0xF6DC, - 40086 - 11905: 0xF78B, - 40087 - 11905: 0xF78C, - 40088 - 11905: 0xF78D, - 40089 - 11905: 0xF78E, - 40090 - 11905: 0xF6DD, - 40091 - 11905: 0xF6DE, - 40092 - 11905: 0xCFCA, - 40093 - 11905: 0xF78F, - 40094 - 11905: 0xF6DF, - 40095 - 11905: 0xF6E0, - 40096 - 11905: 0xF6E1, - 40097 - 11905: 0xF6E2, - 40098 - 11905: 0xF6E3, - 40099 - 11905: 0xF6E4, - 40100 - 11905: 0xC0F0, - 40101 - 11905: 0xF6E5, - 40102 - 11905: 0xF6E6, - 40103 - 11905: 0xF6E7, - 40104 - 11905: 0xF6E8, - 40105 - 11905: 0xF6E9, - 40106 - 11905: 0xF790, - 40107 - 11905: 0xF6EA, - 40108 - 11905: 0xF791, - 40109 - 11905: 0xF6EB, - 40110 - 11905: 0xF6EC, - 40111 - 11905: 0xF792, - 40112 - 11905: 0xF6ED, - 40113 - 11905: 0xF6EE, - 40114 - 11905: 0xF6EF, - 40115 - 11905: 0xF6F0, - 40116 - 11905: 0xF6F1, - 40117 - 11905: 0xF6F2, - 40118 - 11905: 0xF6F3, - 40119 - 11905: 0xF6F4, - 40120 - 11905: 0xBEA8, - 40121 - 11905: 0xF793, - 40122 - 11905: 0xF6F5, - 40123 - 11905: 0xF6F6, - 40124 - 11905: 0xF6F7, - 40125 - 11905: 0xF6F8, - 40126 - 11905: 0xF794, - 40127 - 11905: 0xF795, - 40128 - 11905: 0xF796, - 40129 - 11905: 0xF797, - 40130 - 11905: 0xF798, - 40131 - 11905: 0xC8FA, - 40132 - 11905: 0xF6F9, - 40133 - 11905: 0xF6FA, - 40134 - 11905: 0xF6FB, - 40135 - 11905: 0xF6FC, - 40136 - 11905: 0xF799, - 40137 - 11905: 0xF79A, - 40138 - 11905: 0xF6FD, - 40139 - 11905: 0xF6FE, - 40140 - 11905: 0xF7A1, - 40141 - 11905: 0xF7A2, - 40142 - 11905: 0xF7A3, - 40143 - 11905: 0xF7A4, - 40144 - 11905: 0xF7A5, - 40145 - 11905: 0xF79B, - 40146 - 11905: 0xF79C, - 40147 - 11905: 0xF7A6, - 40148 - 11905: 0xF7A7, - 40149 - 11905: 0xF7A8, - 40150 - 11905: 0xB1EE, - 40151 - 11905: 0xF7A9, - 40152 - 11905: 0xF7AA, - 40153 - 11905: 0xF7AB, - 40154 - 11905: 0xF79D, - 40155 - 11905: 0xF79E, - 40156 - 11905: 0xF7AC, - 40157 - 11905: 0xF7AD, - 40158 - 11905: 0xC1DB, - 40159 - 11905: 0xF7AE, - 40160 - 11905: 0xF79F, - 40161 - 11905: 0xF7A0, - 40162 - 11905: 0xF7AF, - 40163 - 11905: 0xF840, - 40164 - 11905: 0xF841, - 40165 - 11905: 0xF842, - 40166 - 11905: 0xF843, - 40167 - 11905: 0xF844, - 40168 - 11905: 0xF845, - 40169 - 11905: 0xF846, - 40170 - 11905: 0xF847, - 40171 - 11905: 0xF848, - 40172 - 11905: 0xF849, - 40173 - 11905: 0xF84A, - 40174 - 11905: 0xF84B, - 40175 - 11905: 0xF84C, - 40176 - 11905: 0xF84D, - 40177 - 11905: 0xF84E, - 40178 - 11905: 0xF84F, - 40179 - 11905: 0xF850, - 40180 - 11905: 0xF851, - 40181 - 11905: 0xF852, - 40182 - 11905: 0xF853, - 40183 - 11905: 0xF854, - 40184 - 11905: 0xF855, - 40185 - 11905: 0xF856, - 40186 - 11905: 0xF857, - 40187 - 11905: 0xF858, - 40188 - 11905: 0xF859, - 40189 - 11905: 0xF85A, - 40190 - 11905: 0xF85B, - 40191 - 11905: 0xF85C, - 40192 - 11905: 0xF85D, - 40193 - 11905: 0xF85E, - 40194 - 11905: 0xF85F, - 40195 - 11905: 0xF860, - 40196 - 11905: 0xF861, - 40197 - 11905: 0xF862, - 40198 - 11905: 0xF863, - 40199 - 11905: 0xF864, - 40200 - 11905: 0xF865, - 40201 - 11905: 0xF866, - 40202 - 11905: 0xF867, - 40203 - 11905: 0xF868, - 40204 - 11905: 0xF869, - 40205 - 11905: 0xF86A, - 40206 - 11905: 0xF86B, - 40207 - 11905: 0xF86C, - 40208 - 11905: 0xF86D, - 40209 - 11905: 0xF86E, - 40210 - 11905: 0xF86F, - 40211 - 11905: 0xF870, - 40212 - 11905: 0xF871, - 40213 - 11905: 0xF872, - 40214 - 11905: 0xF873, - 40215 - 11905: 0xF874, - 40216 - 11905: 0xF875, - 40217 - 11905: 0xF876, - 40218 - 11905: 0xF877, - 40219 - 11905: 0xF878, - 40220 - 11905: 0xF879, - 40221 - 11905: 0xF87A, - 40222 - 11905: 0xF87B, - 40223 - 11905: 0xF87C, - 40224 - 11905: 0xF87D, - 40225 - 11905: 0xF87E, - 40226 - 11905: 0xF880, - 40227 - 11905: 0xF881, - 40228 - 11905: 0xF882, - 40229 - 11905: 0xF883, - 40230 - 11905: 0xF884, - 40231 - 11905: 0xF885, - 40232 - 11905: 0xF886, - 40233 - 11905: 0xF887, - 40234 - 11905: 0xF888, - 40235 - 11905: 0xF889, - 40236 - 11905: 0xF88A, - 40237 - 11905: 0xF88B, - 40238 - 11905: 0xF88C, - 40239 - 11905: 0xF88D, - 40240 - 11905: 0xF88E, - 40241 - 11905: 0xF88F, - 40242 - 11905: 0xF890, - 40243 - 11905: 0xF891, - 40244 - 11905: 0xF892, - 40245 - 11905: 0xF893, - 40246 - 11905: 0xF894, - 40247 - 11905: 0xF895, - 40248 - 11905: 0xF896, - 40249 - 11905: 0xF897, - 40250 - 11905: 0xF898, - 40251 - 11905: 0xF899, - 40252 - 11905: 0xF89A, - 40253 - 11905: 0xF89B, - 40254 - 11905: 0xF89C, - 40255 - 11905: 0xF89D, - 40256 - 11905: 0xF89E, - 40257 - 11905: 0xF89F, - 40258 - 11905: 0xF8A0, - 40259 - 11905: 0xF940, - 40260 - 11905: 0xF941, - 40261 - 11905: 0xF942, - 40262 - 11905: 0xF943, - 40263 - 11905: 0xF944, - 40264 - 11905: 0xF945, - 40265 - 11905: 0xF946, - 40266 - 11905: 0xF947, - 40267 - 11905: 0xF948, - 40268 - 11905: 0xF949, - 40269 - 11905: 0xF94A, - 40270 - 11905: 0xF94B, - 40271 - 11905: 0xF94C, - 40272 - 11905: 0xF94D, - 40273 - 11905: 0xF94E, - 40274 - 11905: 0xF94F, - 40275 - 11905: 0xF950, - 40276 - 11905: 0xF951, - 40277 - 11905: 0xF952, - 40278 - 11905: 0xF953, - 40279 - 11905: 0xF954, - 40280 - 11905: 0xF955, - 40281 - 11905: 0xF956, - 40282 - 11905: 0xF957, - 40283 - 11905: 0xF958, - 40284 - 11905: 0xF959, - 40285 - 11905: 0xF95A, - 40286 - 11905: 0xF95B, - 40287 - 11905: 0xF95C, - 40288 - 11905: 0xF95D, - 40289 - 11905: 0xF95E, - 40290 - 11905: 0xF95F, - 40291 - 11905: 0xF960, - 40292 - 11905: 0xF961, - 40293 - 11905: 0xF962, - 40294 - 11905: 0xF963, - 40295 - 11905: 0xF964, - 40296 - 11905: 0xF965, - 40297 - 11905: 0xF966, - 40298 - 11905: 0xF967, - 40299 - 11905: 0xF968, - 40300 - 11905: 0xF969, - 40301 - 11905: 0xF96A, - 40302 - 11905: 0xF96B, - 40303 - 11905: 0xF96C, - 40304 - 11905: 0xF96D, - 40305 - 11905: 0xF96E, - 40306 - 11905: 0xF96F, - 40307 - 11905: 0xF970, - 40308 - 11905: 0xF971, - 40309 - 11905: 0xF972, - 40310 - 11905: 0xF973, - 40311 - 11905: 0xF974, - 40312 - 11905: 0xF975, - 40313 - 11905: 0xF976, - 40314 - 11905: 0xF977, - 40315 - 11905: 0xF978, - 40316 - 11905: 0xF979, - 40317 - 11905: 0xF97A, - 40318 - 11905: 0xF97B, - 40319 - 11905: 0xF97C, - 40320 - 11905: 0xF97D, - 40321 - 11905: 0xF97E, - 40322 - 11905: 0xF980, - 40323 - 11905: 0xF981, - 40324 - 11905: 0xF982, - 40325 - 11905: 0xF983, - 40326 - 11905: 0xF984, - 40327 - 11905: 0xF985, - 40328 - 11905: 0xF986, - 40329 - 11905: 0xF987, - 40330 - 11905: 0xF988, - 40331 - 11905: 0xF989, - 40332 - 11905: 0xF98A, - 40333 - 11905: 0xF98B, - 40334 - 11905: 0xF98C, - 40335 - 11905: 0xF98D, - 40336 - 11905: 0xF98E, - 40337 - 11905: 0xF98F, - 40338 - 11905: 0xF990, - 40339 - 11905: 0xF991, - 40340 - 11905: 0xF992, - 40341 - 11905: 0xF993, - 40342 - 11905: 0xF994, - 40343 - 11905: 0xF995, - 40344 - 11905: 0xF996, - 40345 - 11905: 0xF997, - 40346 - 11905: 0xF998, - 40347 - 11905: 0xF999, - 40348 - 11905: 0xF99A, - 40349 - 11905: 0xF99B, - 40350 - 11905: 0xF99C, - 40351 - 11905: 0xF99D, - 40352 - 11905: 0xF99E, - 40353 - 11905: 0xF99F, - 40354 - 11905: 0xF9A0, - 40355 - 11905: 0xFA40, - 40356 - 11905: 0xFA41, - 40357 - 11905: 0xFA42, - 40358 - 11905: 0xFA43, - 40359 - 11905: 0xFA44, - 40360 - 11905: 0xFA45, - 40361 - 11905: 0xFA46, - 40362 - 11905: 0xFA47, - 40363 - 11905: 0xFA48, - 40364 - 11905: 0xFA49, - 40365 - 11905: 0xFA4A, - 40366 - 11905: 0xFA4B, - 40367 - 11905: 0xFA4C, - 40368 - 11905: 0xFA4D, - 40369 - 11905: 0xFA4E, - 40370 - 11905: 0xFA4F, - 40371 - 11905: 0xFA50, - 40372 - 11905: 0xFA51, - 40373 - 11905: 0xFA52, - 40374 - 11905: 0xFA53, - 40375 - 11905: 0xFA54, - 40376 - 11905: 0xFA55, - 40377 - 11905: 0xFA56, - 40378 - 11905: 0xFA57, - 40379 - 11905: 0xFA58, - 40380 - 11905: 0xFA59, - 40381 - 11905: 0xFA5A, - 40382 - 11905: 0xFA5B, - 40383 - 11905: 0xFA5C, - 40384 - 11905: 0xFA5D, - 40385 - 11905: 0xFA5E, - 40386 - 11905: 0xFA5F, - 40387 - 11905: 0xFA60, - 40388 - 11905: 0xFA61, - 40389 - 11905: 0xFA62, - 40390 - 11905: 0xFA63, - 40391 - 11905: 0xFA64, - 40392 - 11905: 0xFA65, - 40393 - 11905: 0xFA66, - 40394 - 11905: 0xFA67, - 40395 - 11905: 0xFA68, - 40396 - 11905: 0xFA69, - 40397 - 11905: 0xFA6A, - 40398 - 11905: 0xFA6B, - 40399 - 11905: 0xFA6C, - 40400 - 11905: 0xFA6D, - 40401 - 11905: 0xFA6E, - 40402 - 11905: 0xFA6F, - 40403 - 11905: 0xFA70, - 40404 - 11905: 0xFA71, - 40405 - 11905: 0xFA72, - 40406 - 11905: 0xFA73, - 40407 - 11905: 0xFA74, - 40408 - 11905: 0xFA75, - 40409 - 11905: 0xFA76, - 40410 - 11905: 0xFA77, - 40411 - 11905: 0xFA78, - 40412 - 11905: 0xFA79, - 40413 - 11905: 0xFA7A, - 40414 - 11905: 0xFA7B, - 40415 - 11905: 0xFA7C, - 40416 - 11905: 0xFA7D, - 40417 - 11905: 0xFA7E, - 40418 - 11905: 0xFA80, - 40419 - 11905: 0xFA81, - 40420 - 11905: 0xFA82, - 40421 - 11905: 0xFA83, - 40422 - 11905: 0xFA84, - 40423 - 11905: 0xFA85, - 40424 - 11905: 0xFA86, - 40425 - 11905: 0xFA87, - 40426 - 11905: 0xFA88, - 40427 - 11905: 0xFA89, - 40428 - 11905: 0xFA8A, - 40429 - 11905: 0xFA8B, - 40430 - 11905: 0xFA8C, - 40431 - 11905: 0xFA8D, - 40432 - 11905: 0xFA8E, - 40433 - 11905: 0xFA8F, - 40434 - 11905: 0xFA90, - 40435 - 11905: 0xFA91, - 40436 - 11905: 0xFA92, - 40437 - 11905: 0xFA93, - 40438 - 11905: 0xFA94, - 40439 - 11905: 0xFA95, - 40440 - 11905: 0xFA96, - 40441 - 11905: 0xFA97, - 40442 - 11905: 0xFA98, - 40443 - 11905: 0xFA99, - 40444 - 11905: 0xFA9A, - 40445 - 11905: 0xFA9B, - 40446 - 11905: 0xFA9C, - 40447 - 11905: 0xFA9D, - 40448 - 11905: 0xFA9E, - 40449 - 11905: 0xFA9F, - 40450 - 11905: 0xFAA0, - 40451 - 11905: 0xFB40, - 40452 - 11905: 0xFB41, - 40453 - 11905: 0xFB42, - 40454 - 11905: 0xFB43, - 40455 - 11905: 0xFB44, - 40456 - 11905: 0xFB45, - 40457 - 11905: 0xFB46, - 40458 - 11905: 0xFB47, - 40459 - 11905: 0xFB48, - 40460 - 11905: 0xFB49, - 40461 - 11905: 0xFB4A, - 40462 - 11905: 0xFB4B, - 40463 - 11905: 0xFB4C, - 40464 - 11905: 0xFB4D, - 40465 - 11905: 0xFB4E, - 40466 - 11905: 0xFB4F, - 40467 - 11905: 0xFB50, - 40468 - 11905: 0xFB51, - 40469 - 11905: 0xFB52, - 40470 - 11905: 0xFB53, - 40471 - 11905: 0xFB54, - 40472 - 11905: 0xFB55, - 40473 - 11905: 0xFB56, - 40474 - 11905: 0xFB57, - 40475 - 11905: 0xFB58, - 40476 - 11905: 0xFB59, - 40477 - 11905: 0xFB5A, - 40478 - 11905: 0xFB5B, - 40479 - 11905: 0xC4F1, - 40480 - 11905: 0xF0AF, - 40481 - 11905: 0xBCA6, - 40482 - 11905: 0xF0B0, - 40483 - 11905: 0xC3F9, - 40484 - 11905: 0xFB5C, - 40485 - 11905: 0xC5B8, - 40486 - 11905: 0xD1BB, - 40487 - 11905: 0xFB5D, - 40488 - 11905: 0xF0B1, - 40489 - 11905: 0xF0B2, - 40490 - 11905: 0xF0B3, - 40491 - 11905: 0xF0B4, - 40492 - 11905: 0xF0B5, - 40493 - 11905: 0xD1BC, - 40494 - 11905: 0xFB5E, - 40495 - 11905: 0xD1EC, - 40496 - 11905: 0xFB5F, - 40497 - 11905: 0xF0B7, - 40498 - 11905: 0xF0B6, - 40499 - 11905: 0xD4A7, - 40500 - 11905: 0xFB60, - 40501 - 11905: 0xCDD2, - 40502 - 11905: 0xF0B8, - 40503 - 11905: 0xF0BA, - 40504 - 11905: 0xF0B9, - 40505 - 11905: 0xF0BB, - 40506 - 11905: 0xF0BC, - 40507 - 11905: 0xFB61, - 40508 - 11905: 0xFB62, - 40509 - 11905: 0xB8EB, - 40510 - 11905: 0xF0BD, - 40511 - 11905: 0xBAE8, - 40512 - 11905: 0xFB63, - 40513 - 11905: 0xF0BE, - 40514 - 11905: 0xF0BF, - 40515 - 11905: 0xBEE9, - 40516 - 11905: 0xF0C0, - 40517 - 11905: 0xB6EC, - 40518 - 11905: 0xF0C1, - 40519 - 11905: 0xF0C2, - 40520 - 11905: 0xF0C3, - 40521 - 11905: 0xF0C4, - 40522 - 11905: 0xC8B5, - 40523 - 11905: 0xF0C5, - 40524 - 11905: 0xF0C6, - 40525 - 11905: 0xFB64, - 40526 - 11905: 0xF0C7, - 40527 - 11905: 0xC5F4, - 40528 - 11905: 0xFB65, - 40529 - 11905: 0xF0C8, - 40530 - 11905: 0xFB66, - 40531 - 11905: 0xFB67, - 40532 - 11905: 0xFB68, - 40533 - 11905: 0xF0C9, - 40534 - 11905: 0xFB69, - 40535 - 11905: 0xF0CA, - 40536 - 11905: 0xF7BD, - 40537 - 11905: 0xFB6A, - 40538 - 11905: 0xF0CB, - 40539 - 11905: 0xF0CC, - 40540 - 11905: 0xF0CD, - 40541 - 11905: 0xFB6B, - 40542 - 11905: 0xF0CE, - 40543 - 11905: 0xFB6C, - 40544 - 11905: 0xFB6D, - 40545 - 11905: 0xFB6E, - 40546 - 11905: 0xFB6F, - 40547 - 11905: 0xF0CF, - 40548 - 11905: 0xBAD7, - 40549 - 11905: 0xFB70, - 40550 - 11905: 0xF0D0, - 40551 - 11905: 0xF0D1, - 40552 - 11905: 0xF0D2, - 40553 - 11905: 0xF0D3, - 40554 - 11905: 0xF0D4, - 40555 - 11905: 0xF0D5, - 40556 - 11905: 0xF0D6, - 40557 - 11905: 0xF0D8, - 40558 - 11905: 0xFB71, - 40559 - 11905: 0xFB72, - 40560 - 11905: 0xD3A5, - 40561 - 11905: 0xF0D7, - 40562 - 11905: 0xFB73, - 40563 - 11905: 0xF0D9, - 40564 - 11905: 0xFB74, - 40565 - 11905: 0xFB75, - 40566 - 11905: 0xFB76, - 40567 - 11905: 0xFB77, - 40568 - 11905: 0xFB78, - 40569 - 11905: 0xFB79, - 40570 - 11905: 0xFB7A, - 40571 - 11905: 0xFB7B, - 40572 - 11905: 0xFB7C, - 40573 - 11905: 0xFB7D, - 40574 - 11905: 0xF5BA, - 40575 - 11905: 0xC2B9, - 40576 - 11905: 0xFB7E, - 40577 - 11905: 0xFB80, - 40578 - 11905: 0xF7E4, - 40579 - 11905: 0xFB81, - 40580 - 11905: 0xFB82, - 40581 - 11905: 0xFB83, - 40582 - 11905: 0xFB84, - 40583 - 11905: 0xF7E5, - 40584 - 11905: 0xF7E6, - 40585 - 11905: 0xFB85, - 40586 - 11905: 0xFB86, - 40587 - 11905: 0xF7E7, - 40588 - 11905: 0xFB87, - 40589 - 11905: 0xFB88, - 40590 - 11905: 0xFB89, - 40591 - 11905: 0xFB8A, - 40592 - 11905: 0xFB8B, - 40593 - 11905: 0xFB8C, - 40594 - 11905: 0xF7E8, - 40595 - 11905: 0xC2B4, - 40596 - 11905: 0xFB8D, - 40597 - 11905: 0xFB8E, - 40598 - 11905: 0xFB8F, - 40599 - 11905: 0xFB90, - 40600 - 11905: 0xFB91, - 40601 - 11905: 0xFB92, - 40602 - 11905: 0xFB93, - 40603 - 11905: 0xFB94, - 40604 - 11905: 0xFB95, - 40605 - 11905: 0xF7EA, - 40606 - 11905: 0xFB96, - 40607 - 11905: 0xF7EB, - 40608 - 11905: 0xFB97, - 40609 - 11905: 0xFB98, - 40610 - 11905: 0xFB99, - 40611 - 11905: 0xFB9A, - 40612 - 11905: 0xFB9B, - 40613 - 11905: 0xFB9C, - 40614 - 11905: 0xC2F3, - 40615 - 11905: 0xFB9D, - 40616 - 11905: 0xFB9E, - 40617 - 11905: 0xFB9F, - 40618 - 11905: 0xFBA0, - 40619 - 11905: 0xFC40, - 40620 - 11905: 0xFC41, - 40621 - 11905: 0xFC42, - 40622 - 11905: 0xFC43, - 40623 - 11905: 0xFC44, - 40624 - 11905: 0xFC45, - 40625 - 11905: 0xFC46, - 40626 - 11905: 0xFC47, - 40627 - 11905: 0xFC48, - 40628 - 11905: 0xF4F0, - 40629 - 11905: 0xFC49, - 40630 - 11905: 0xFC4A, - 40631 - 11905: 0xFC4B, - 40632 - 11905: 0xF4EF, - 40633 - 11905: 0xFC4C, - 40634 - 11905: 0xFC4D, - 40635 - 11905: 0xC2E9, - 40636 - 11905: 0xFC4E, - 40637 - 11905: 0xF7E1, - 40638 - 11905: 0xF7E2, - 40639 - 11905: 0xFC4F, - 40640 - 11905: 0xFC50, - 40641 - 11905: 0xFC51, - 40642 - 11905: 0xFC52, - 40643 - 11905: 0xFC53, - 40644 - 11905: 0xBBC6, - 40645 - 11905: 0xFC54, - 40646 - 11905: 0xFC55, - 40647 - 11905: 0xFC56, - 40648 - 11905: 0xFC57, - 40649 - 11905: 0xD9E4, - 40650 - 11905: 0xFC58, - 40651 - 11905: 0xFC59, - 40652 - 11905: 0xFC5A, - 40653 - 11905: 0xCAF2, - 40654 - 11905: 0xC0E8, - 40655 - 11905: 0xF0A4, - 40656 - 11905: 0xFC5B, - 40657 - 11905: 0xBADA, - 40658 - 11905: 0xFC5C, - 40659 - 11905: 0xFC5D, - 40660 - 11905: 0xC7AD, - 40661 - 11905: 0xFC5E, - 40662 - 11905: 0xFC5F, - 40663 - 11905: 0xFC60, - 40664 - 11905: 0xC4AC, - 40665 - 11905: 0xFC61, - 40666 - 11905: 0xFC62, - 40667 - 11905: 0xF7EC, - 40668 - 11905: 0xF7ED, - 40669 - 11905: 0xF7EE, - 40670 - 11905: 0xFC63, - 40671 - 11905: 0xF7F0, - 40672 - 11905: 0xF7EF, - 40673 - 11905: 0xFC64, - 40674 - 11905: 0xF7F1, - 40675 - 11905: 0xFC65, - 40676 - 11905: 0xFC66, - 40677 - 11905: 0xF7F4, - 40678 - 11905: 0xFC67, - 40679 - 11905: 0xF7F3, - 40680 - 11905: 0xFC68, - 40681 - 11905: 0xF7F2, - 40682 - 11905: 0xF7F5, - 40683 - 11905: 0xFC69, - 40684 - 11905: 0xFC6A, - 40685 - 11905: 0xFC6B, - 40686 - 11905: 0xFC6C, - 40687 - 11905: 0xF7F6, - 40688 - 11905: 0xFC6D, - 40689 - 11905: 0xFC6E, - 40690 - 11905: 0xFC6F, - 40691 - 11905: 0xFC70, - 40692 - 11905: 0xFC71, - 40693 - 11905: 0xFC72, - 40694 - 11905: 0xFC73, - 40695 - 11905: 0xFC74, - 40696 - 11905: 0xFC75, - 40697 - 11905: 0xEDE9, - 40698 - 11905: 0xFC76, - 40699 - 11905: 0xEDEA, - 40700 - 11905: 0xEDEB, - 40701 - 11905: 0xFC77, - 40702 - 11905: 0xF6BC, - 40703 - 11905: 0xFC78, - 40704 - 11905: 0xFC79, - 40705 - 11905: 0xFC7A, - 40706 - 11905: 0xFC7B, - 40707 - 11905: 0xFC7C, - 40708 - 11905: 0xFC7D, - 40709 - 11905: 0xFC7E, - 40710 - 11905: 0xFC80, - 40711 - 11905: 0xFC81, - 40712 - 11905: 0xFC82, - 40713 - 11905: 0xFC83, - 40714 - 11905: 0xFC84, - 40715 - 11905: 0xF6BD, - 40716 - 11905: 0xFC85, - 40717 - 11905: 0xF6BE, - 40718 - 11905: 0xB6A6, - 40719 - 11905: 0xFC86, - 40720 - 11905: 0xD8BE, - 40721 - 11905: 0xFC87, - 40722 - 11905: 0xFC88, - 40723 - 11905: 0xB9C4, - 40724 - 11905: 0xFC89, - 40725 - 11905: 0xFC8A, - 40726 - 11905: 0xFC8B, - 40727 - 11905: 0xD8BB, - 40728 - 11905: 0xFC8C, - 40729 - 11905: 0xDCB1, - 40730 - 11905: 0xFC8D, - 40731 - 11905: 0xFC8E, - 40732 - 11905: 0xFC8F, - 40733 - 11905: 0xFC90, - 40734 - 11905: 0xFC91, - 40735 - 11905: 0xFC92, - 40736 - 11905: 0xCAF3, - 40737 - 11905: 0xFC93, - 40738 - 11905: 0xF7F7, - 40739 - 11905: 0xFC94, - 40740 - 11905: 0xFC95, - 40741 - 11905: 0xFC96, - 40742 - 11905: 0xFC97, - 40743 - 11905: 0xFC98, - 40744 - 11905: 0xFC99, - 40745 - 11905: 0xFC9A, - 40746 - 11905: 0xFC9B, - 40747 - 11905: 0xFC9C, - 40748 - 11905: 0xF7F8, - 40749 - 11905: 0xFC9D, - 40750 - 11905: 0xFC9E, - 40751 - 11905: 0xF7F9, - 40752 - 11905: 0xFC9F, - 40753 - 11905: 0xFCA0, - 40754 - 11905: 0xFD40, - 40755 - 11905: 0xFD41, - 40756 - 11905: 0xFD42, - 40757 - 11905: 0xFD43, - 40758 - 11905: 0xFD44, - 40759 - 11905: 0xF7FB, - 40760 - 11905: 0xFD45, - 40761 - 11905: 0xF7FA, - 40762 - 11905: 0xFD46, - 40763 - 11905: 0xB1C7, - 40764 - 11905: 0xFD47, - 40765 - 11905: 0xF7FC, - 40766 - 11905: 0xF7FD, - 40767 - 11905: 0xFD48, - 40768 - 11905: 0xFD49, - 40769 - 11905: 0xFD4A, - 40770 - 11905: 0xFD4B, - 40771 - 11905: 0xFD4C, - 40772 - 11905: 0xF7FE, - 40773 - 11905: 0xFD4D, - 40774 - 11905: 0xFD4E, - 40775 - 11905: 0xFD4F, - 40776 - 11905: 0xFD50, - 40777 - 11905: 0xFD51, - 40778 - 11905: 0xFD52, - 40779 - 11905: 0xFD53, - 40780 - 11905: 0xFD54, - 40781 - 11905: 0xFD55, - 40782 - 11905: 0xFD56, - 40783 - 11905: 0xFD57, - 40784 - 11905: 0xC6EB, - 40785 - 11905: 0xECB4, - 40786 - 11905: 0xFD58, - 40787 - 11905: 0xFD59, - 40788 - 11905: 0xFD5A, - 40789 - 11905: 0xFD5B, - 40790 - 11905: 0xFD5C, - 40791 - 11905: 0xFD5D, - 40792 - 11905: 0xFD5E, - 40793 - 11905: 0xFD5F, - 40794 - 11905: 0xFD60, - 40795 - 11905: 0xFD61, - 40796 - 11905: 0xFD62, - 40797 - 11905: 0xFD63, - 40798 - 11905: 0xFD64, - 40799 - 11905: 0xFD65, - 40800 - 11905: 0xFD66, - 40801 - 11905: 0xFD67, - 40802 - 11905: 0xFD68, - 40803 - 11905: 0xFD69, - 40804 - 11905: 0xFD6A, - 40805 - 11905: 0xFD6B, - 40806 - 11905: 0xFD6C, - 40807 - 11905: 0xFD6D, - 40808 - 11905: 0xFD6E, - 40809 - 11905: 0xFD6F, - 40810 - 11905: 0xFD70, - 40811 - 11905: 0xFD71, - 40812 - 11905: 0xFD72, - 40813 - 11905: 0xFD73, - 40814 - 11905: 0xFD74, - 40815 - 11905: 0xFD75, - 40816 - 11905: 0xFD76, - 40817 - 11905: 0xFD77, - 40818 - 11905: 0xFD78, - 40819 - 11905: 0xFD79, - 40820 - 11905: 0xFD7A, - 40821 - 11905: 0xFD7B, - 40822 - 11905: 0xFD7C, - 40823 - 11905: 0xFD7D, - 40824 - 11905: 0xFD7E, - 40825 - 11905: 0xFD80, - 40826 - 11905: 0xFD81, - 40827 - 11905: 0xFD82, - 40828 - 11905: 0xFD83, - 40829 - 11905: 0xFD84, - 40830 - 11905: 0xFD85, - 40831 - 11905: 0xB3DD, - 40832 - 11905: 0xF6B3, - 40833 - 11905: 0xFD86, - 40834 - 11905: 0xFD87, - 40835 - 11905: 0xF6B4, - 40836 - 11905: 0xC1E4, - 40837 - 11905: 0xF6B5, - 40838 - 11905: 0xF6B6, - 40839 - 11905: 0xF6B7, - 40840 - 11905: 0xF6B8, - 40841 - 11905: 0xF6B9, - 40842 - 11905: 0xF6BA, - 40843 - 11905: 0xC8A3, - 40844 - 11905: 0xF6BB, - 40845 - 11905: 0xFD88, - 40846 - 11905: 0xFD89, - 40847 - 11905: 0xFD8A, - 40848 - 11905: 0xFD8B, - 40849 - 11905: 0xFD8C, - 40850 - 11905: 0xFD8D, - 40851 - 11905: 0xFD8E, - 40852 - 11905: 0xFD8F, - 40853 - 11905: 0xFD90, - 40854 - 11905: 0xFD91, - 40855 - 11905: 0xFD92, - 40856 - 11905: 0xFD93, - 40857 - 11905: 0xC1FA, - 40858 - 11905: 0xB9A8, - 40859 - 11905: 0xEDE8, - 40860 - 11905: 0xFD94, - 40861 - 11905: 0xFD95, - 40862 - 11905: 0xFD96, - 40863 - 11905: 0xB9EA, - 40864 - 11905: 0xD9DF, - 40865 - 11905: 0xFD97, - 40866 - 11905: 0xFD98, - 40867 - 11905: 0xFD99, - 40868 - 11905: 0xFD9A, - 40869 - 11905: 0xFD9B, -} - -const encode1Low, encode1High = 8208, 9795 - -var encode1 = [...]uint16{ - 8208 - 8208: 0xA95C, - 8211 - 8208: 0xA843, - 8212 - 8208: 0xA1AA, - 8213 - 8208: 0xA844, - 8214 - 8208: 0xA1AC, - 8216 - 8208: 0xA1AE, - 8217 - 8208: 0xA1AF, - 8220 - 8208: 0xA1B0, - 8221 - 8208: 0xA1B1, - 8229 - 8208: 0xA845, - 8230 - 8208: 0xA1AD, - 8240 - 8208: 0xA1EB, - 8242 - 8208: 0xA1E4, - 8243 - 8208: 0xA1E5, - 8245 - 8208: 0xA846, - 8251 - 8208: 0xA1F9, - 8364 - 8208: 0xA2E3, - 8451 - 8208: 0xA1E6, - 8453 - 8208: 0xA847, - 8457 - 8208: 0xA848, - 8470 - 8208: 0xA1ED, - 8481 - 8208: 0xA959, - 8544 - 8208: 0xA2F1, - 8545 - 8208: 0xA2F2, - 8546 - 8208: 0xA2F3, - 8547 - 8208: 0xA2F4, - 8548 - 8208: 0xA2F5, - 8549 - 8208: 0xA2F6, - 8550 - 8208: 0xA2F7, - 8551 - 8208: 0xA2F8, - 8552 - 8208: 0xA2F9, - 8553 - 8208: 0xA2FA, - 8554 - 8208: 0xA2FB, - 8555 - 8208: 0xA2FC, - 8560 - 8208: 0xA2A1, - 8561 - 8208: 0xA2A2, - 8562 - 8208: 0xA2A3, - 8563 - 8208: 0xA2A4, - 8564 - 8208: 0xA2A5, - 8565 - 8208: 0xA2A6, - 8566 - 8208: 0xA2A7, - 8567 - 8208: 0xA2A8, - 8568 - 8208: 0xA2A9, - 8569 - 8208: 0xA2AA, - 8592 - 8208: 0xA1FB, - 8593 - 8208: 0xA1FC, - 8594 - 8208: 0xA1FA, - 8595 - 8208: 0xA1FD, - 8598 - 8208: 0xA849, - 8599 - 8208: 0xA84A, - 8600 - 8208: 0xA84B, - 8601 - 8208: 0xA84C, - 8712 - 8208: 0xA1CA, - 8719 - 8208: 0xA1C7, - 8721 - 8208: 0xA1C6, - 8725 - 8208: 0xA84D, - 8730 - 8208: 0xA1CC, - 8733 - 8208: 0xA1D8, - 8734 - 8208: 0xA1DE, - 8735 - 8208: 0xA84E, - 8736 - 8208: 0xA1CF, - 8739 - 8208: 0xA84F, - 8741 - 8208: 0xA1CE, - 8743 - 8208: 0xA1C4, - 8744 - 8208: 0xA1C5, - 8745 - 8208: 0xA1C9, - 8746 - 8208: 0xA1C8, - 8747 - 8208: 0xA1D2, - 8750 - 8208: 0xA1D3, - 8756 - 8208: 0xA1E0, - 8757 - 8208: 0xA1DF, - 8758 - 8208: 0xA1C3, - 8759 - 8208: 0xA1CB, - 8765 - 8208: 0xA1D7, - 8776 - 8208: 0xA1D6, - 8780 - 8208: 0xA1D5, - 8786 - 8208: 0xA850, - 8800 - 8208: 0xA1D9, - 8801 - 8208: 0xA1D4, - 8804 - 8208: 0xA1DC, - 8805 - 8208: 0xA1DD, - 8806 - 8208: 0xA851, - 8807 - 8208: 0xA852, - 8814 - 8208: 0xA1DA, - 8815 - 8208: 0xA1DB, - 8853 - 8208: 0xA892, - 8857 - 8208: 0xA1D1, - 8869 - 8208: 0xA1CD, - 8895 - 8208: 0xA853, - 8978 - 8208: 0xA1D0, - 9312 - 8208: 0xA2D9, - 9313 - 8208: 0xA2DA, - 9314 - 8208: 0xA2DB, - 9315 - 8208: 0xA2DC, - 9316 - 8208: 0xA2DD, - 9317 - 8208: 0xA2DE, - 9318 - 8208: 0xA2DF, - 9319 - 8208: 0xA2E0, - 9320 - 8208: 0xA2E1, - 9321 - 8208: 0xA2E2, - 9332 - 8208: 0xA2C5, - 9333 - 8208: 0xA2C6, - 9334 - 8208: 0xA2C7, - 9335 - 8208: 0xA2C8, - 9336 - 8208: 0xA2C9, - 9337 - 8208: 0xA2CA, - 9338 - 8208: 0xA2CB, - 9339 - 8208: 0xA2CC, - 9340 - 8208: 0xA2CD, - 9341 - 8208: 0xA2CE, - 9342 - 8208: 0xA2CF, - 9343 - 8208: 0xA2D0, - 9344 - 8208: 0xA2D1, - 9345 - 8208: 0xA2D2, - 9346 - 8208: 0xA2D3, - 9347 - 8208: 0xA2D4, - 9348 - 8208: 0xA2D5, - 9349 - 8208: 0xA2D6, - 9350 - 8208: 0xA2D7, - 9351 - 8208: 0xA2D8, - 9352 - 8208: 0xA2B1, - 9353 - 8208: 0xA2B2, - 9354 - 8208: 0xA2B3, - 9355 - 8208: 0xA2B4, - 9356 - 8208: 0xA2B5, - 9357 - 8208: 0xA2B6, - 9358 - 8208: 0xA2B7, - 9359 - 8208: 0xA2B8, - 9360 - 8208: 0xA2B9, - 9361 - 8208: 0xA2BA, - 9362 - 8208: 0xA2BB, - 9363 - 8208: 0xA2BC, - 9364 - 8208: 0xA2BD, - 9365 - 8208: 0xA2BE, - 9366 - 8208: 0xA2BF, - 9367 - 8208: 0xA2C0, - 9368 - 8208: 0xA2C1, - 9369 - 8208: 0xA2C2, - 9370 - 8208: 0xA2C3, - 9371 - 8208: 0xA2C4, - 9472 - 8208: 0xA9A4, - 9473 - 8208: 0xA9A5, - 9474 - 8208: 0xA9A6, - 9475 - 8208: 0xA9A7, - 9476 - 8208: 0xA9A8, - 9477 - 8208: 0xA9A9, - 9478 - 8208: 0xA9AA, - 9479 - 8208: 0xA9AB, - 9480 - 8208: 0xA9AC, - 9481 - 8208: 0xA9AD, - 9482 - 8208: 0xA9AE, - 9483 - 8208: 0xA9AF, - 9484 - 8208: 0xA9B0, - 9485 - 8208: 0xA9B1, - 9486 - 8208: 0xA9B2, - 9487 - 8208: 0xA9B3, - 9488 - 8208: 0xA9B4, - 9489 - 8208: 0xA9B5, - 9490 - 8208: 0xA9B6, - 9491 - 8208: 0xA9B7, - 9492 - 8208: 0xA9B8, - 9493 - 8208: 0xA9B9, - 9494 - 8208: 0xA9BA, - 9495 - 8208: 0xA9BB, - 9496 - 8208: 0xA9BC, - 9497 - 8208: 0xA9BD, - 9498 - 8208: 0xA9BE, - 9499 - 8208: 0xA9BF, - 9500 - 8208: 0xA9C0, - 9501 - 8208: 0xA9C1, - 9502 - 8208: 0xA9C2, - 9503 - 8208: 0xA9C3, - 9504 - 8208: 0xA9C4, - 9505 - 8208: 0xA9C5, - 9506 - 8208: 0xA9C6, - 9507 - 8208: 0xA9C7, - 9508 - 8208: 0xA9C8, - 9509 - 8208: 0xA9C9, - 9510 - 8208: 0xA9CA, - 9511 - 8208: 0xA9CB, - 9512 - 8208: 0xA9CC, - 9513 - 8208: 0xA9CD, - 9514 - 8208: 0xA9CE, - 9515 - 8208: 0xA9CF, - 9516 - 8208: 0xA9D0, - 9517 - 8208: 0xA9D1, - 9518 - 8208: 0xA9D2, - 9519 - 8208: 0xA9D3, - 9520 - 8208: 0xA9D4, - 9521 - 8208: 0xA9D5, - 9522 - 8208: 0xA9D6, - 9523 - 8208: 0xA9D7, - 9524 - 8208: 0xA9D8, - 9525 - 8208: 0xA9D9, - 9526 - 8208: 0xA9DA, - 9527 - 8208: 0xA9DB, - 9528 - 8208: 0xA9DC, - 9529 - 8208: 0xA9DD, - 9530 - 8208: 0xA9DE, - 9531 - 8208: 0xA9DF, - 9532 - 8208: 0xA9E0, - 9533 - 8208: 0xA9E1, - 9534 - 8208: 0xA9E2, - 9535 - 8208: 0xA9E3, - 9536 - 8208: 0xA9E4, - 9537 - 8208: 0xA9E5, - 9538 - 8208: 0xA9E6, - 9539 - 8208: 0xA9E7, - 9540 - 8208: 0xA9E8, - 9541 - 8208: 0xA9E9, - 9542 - 8208: 0xA9EA, - 9543 - 8208: 0xA9EB, - 9544 - 8208: 0xA9EC, - 9545 - 8208: 0xA9ED, - 9546 - 8208: 0xA9EE, - 9547 - 8208: 0xA9EF, - 9552 - 8208: 0xA854, - 9553 - 8208: 0xA855, - 9554 - 8208: 0xA856, - 9555 - 8208: 0xA857, - 9556 - 8208: 0xA858, - 9557 - 8208: 0xA859, - 9558 - 8208: 0xA85A, - 9559 - 8208: 0xA85B, - 9560 - 8208: 0xA85C, - 9561 - 8208: 0xA85D, - 9562 - 8208: 0xA85E, - 9563 - 8208: 0xA85F, - 9564 - 8208: 0xA860, - 9565 - 8208: 0xA861, - 9566 - 8208: 0xA862, - 9567 - 8208: 0xA863, - 9568 - 8208: 0xA864, - 9569 - 8208: 0xA865, - 9570 - 8208: 0xA866, - 9571 - 8208: 0xA867, - 9572 - 8208: 0xA868, - 9573 - 8208: 0xA869, - 9574 - 8208: 0xA86A, - 9575 - 8208: 0xA86B, - 9576 - 8208: 0xA86C, - 9577 - 8208: 0xA86D, - 9578 - 8208: 0xA86E, - 9579 - 8208: 0xA86F, - 9580 - 8208: 0xA870, - 9581 - 8208: 0xA871, - 9582 - 8208: 0xA872, - 9583 - 8208: 0xA873, - 9584 - 8208: 0xA874, - 9585 - 8208: 0xA875, - 9586 - 8208: 0xA876, - 9587 - 8208: 0xA877, - 9601 - 8208: 0xA878, - 9602 - 8208: 0xA879, - 9603 - 8208: 0xA87A, - 9604 - 8208: 0xA87B, - 9605 - 8208: 0xA87C, - 9606 - 8208: 0xA87D, - 9607 - 8208: 0xA87E, - 9608 - 8208: 0xA880, - 9609 - 8208: 0xA881, - 9610 - 8208: 0xA882, - 9611 - 8208: 0xA883, - 9612 - 8208: 0xA884, - 9613 - 8208: 0xA885, - 9614 - 8208: 0xA886, - 9615 - 8208: 0xA887, - 9619 - 8208: 0xA888, - 9620 - 8208: 0xA889, - 9621 - 8208: 0xA88A, - 9632 - 8208: 0xA1F6, - 9633 - 8208: 0xA1F5, - 9650 - 8208: 0xA1F8, - 9651 - 8208: 0xA1F7, - 9660 - 8208: 0xA88B, - 9661 - 8208: 0xA88C, - 9670 - 8208: 0xA1F4, - 9671 - 8208: 0xA1F3, - 9675 - 8208: 0xA1F0, - 9678 - 8208: 0xA1F2, - 9679 - 8208: 0xA1F1, - 9698 - 8208: 0xA88D, - 9699 - 8208: 0xA88E, - 9700 - 8208: 0xA88F, - 9701 - 8208: 0xA890, - 9733 - 8208: 0xA1EF, - 9734 - 8208: 0xA1EE, - 9737 - 8208: 0xA891, - 9792 - 8208: 0xA1E2, - 9794 - 8208: 0xA1E1, -} - -const encode2Low, encode2High = 164, 1106 - -var encode2 = [...]uint16{ - 164 - 164: 0xA1E8, - 167 - 164: 0xA1EC, - 168 - 164: 0xA1A7, - 176 - 164: 0xA1E3, - 177 - 164: 0xA1C0, - 183 - 164: 0xA1A4, - 215 - 164: 0xA1C1, - 224 - 164: 0xA8A4, - 225 - 164: 0xA8A2, - 232 - 164: 0xA8A8, - 233 - 164: 0xA8A6, - 234 - 164: 0xA8BA, - 236 - 164: 0xA8AC, - 237 - 164: 0xA8AA, - 242 - 164: 0xA8B0, - 243 - 164: 0xA8AE, - 247 - 164: 0xA1C2, - 249 - 164: 0xA8B4, - 250 - 164: 0xA8B2, - 252 - 164: 0xA8B9, - 257 - 164: 0xA8A1, - 275 - 164: 0xA8A5, - 283 - 164: 0xA8A7, - 299 - 164: 0xA8A9, - 324 - 164: 0xA8BD, - 328 - 164: 0xA8BE, - 333 - 164: 0xA8AD, - 363 - 164: 0xA8B1, - 462 - 164: 0xA8A3, - 464 - 164: 0xA8AB, - 466 - 164: 0xA8AF, - 468 - 164: 0xA8B3, - 470 - 164: 0xA8B5, - 472 - 164: 0xA8B6, - 474 - 164: 0xA8B7, - 476 - 164: 0xA8B8, - 505 - 164: 0xA8BF, - 593 - 164: 0xA8BB, - 609 - 164: 0xA8C0, - 711 - 164: 0xA1A6, - 713 - 164: 0xA1A5, - 714 - 164: 0xA840, - 715 - 164: 0xA841, - 729 - 164: 0xA842, - 913 - 164: 0xA6A1, - 914 - 164: 0xA6A2, - 915 - 164: 0xA6A3, - 916 - 164: 0xA6A4, - 917 - 164: 0xA6A5, - 918 - 164: 0xA6A6, - 919 - 164: 0xA6A7, - 920 - 164: 0xA6A8, - 921 - 164: 0xA6A9, - 922 - 164: 0xA6AA, - 923 - 164: 0xA6AB, - 924 - 164: 0xA6AC, - 925 - 164: 0xA6AD, - 926 - 164: 0xA6AE, - 927 - 164: 0xA6AF, - 928 - 164: 0xA6B0, - 929 - 164: 0xA6B1, - 931 - 164: 0xA6B2, - 932 - 164: 0xA6B3, - 933 - 164: 0xA6B4, - 934 - 164: 0xA6B5, - 935 - 164: 0xA6B6, - 936 - 164: 0xA6B7, - 937 - 164: 0xA6B8, - 945 - 164: 0xA6C1, - 946 - 164: 0xA6C2, - 947 - 164: 0xA6C3, - 948 - 164: 0xA6C4, - 949 - 164: 0xA6C5, - 950 - 164: 0xA6C6, - 951 - 164: 0xA6C7, - 952 - 164: 0xA6C8, - 953 - 164: 0xA6C9, - 954 - 164: 0xA6CA, - 955 - 164: 0xA6CB, - 956 - 164: 0xA6CC, - 957 - 164: 0xA6CD, - 958 - 164: 0xA6CE, - 959 - 164: 0xA6CF, - 960 - 164: 0xA6D0, - 961 - 164: 0xA6D1, - 963 - 164: 0xA6D2, - 964 - 164: 0xA6D3, - 965 - 164: 0xA6D4, - 966 - 164: 0xA6D5, - 967 - 164: 0xA6D6, - 968 - 164: 0xA6D7, - 969 - 164: 0xA6D8, - 1025 - 164: 0xA7A7, - 1040 - 164: 0xA7A1, - 1041 - 164: 0xA7A2, - 1042 - 164: 0xA7A3, - 1043 - 164: 0xA7A4, - 1044 - 164: 0xA7A5, - 1045 - 164: 0xA7A6, - 1046 - 164: 0xA7A8, - 1047 - 164: 0xA7A9, - 1048 - 164: 0xA7AA, - 1049 - 164: 0xA7AB, - 1050 - 164: 0xA7AC, - 1051 - 164: 0xA7AD, - 1052 - 164: 0xA7AE, - 1053 - 164: 0xA7AF, - 1054 - 164: 0xA7B0, - 1055 - 164: 0xA7B1, - 1056 - 164: 0xA7B2, - 1057 - 164: 0xA7B3, - 1058 - 164: 0xA7B4, - 1059 - 164: 0xA7B5, - 1060 - 164: 0xA7B6, - 1061 - 164: 0xA7B7, - 1062 - 164: 0xA7B8, - 1063 - 164: 0xA7B9, - 1064 - 164: 0xA7BA, - 1065 - 164: 0xA7BB, - 1066 - 164: 0xA7BC, - 1067 - 164: 0xA7BD, - 1068 - 164: 0xA7BE, - 1069 - 164: 0xA7BF, - 1070 - 164: 0xA7C0, - 1071 - 164: 0xA7C1, - 1072 - 164: 0xA7D1, - 1073 - 164: 0xA7D2, - 1074 - 164: 0xA7D3, - 1075 - 164: 0xA7D4, - 1076 - 164: 0xA7D5, - 1077 - 164: 0xA7D6, - 1078 - 164: 0xA7D8, - 1079 - 164: 0xA7D9, - 1080 - 164: 0xA7DA, - 1081 - 164: 0xA7DB, - 1082 - 164: 0xA7DC, - 1083 - 164: 0xA7DD, - 1084 - 164: 0xA7DE, - 1085 - 164: 0xA7DF, - 1086 - 164: 0xA7E0, - 1087 - 164: 0xA7E1, - 1088 - 164: 0xA7E2, - 1089 - 164: 0xA7E3, - 1090 - 164: 0xA7E4, - 1091 - 164: 0xA7E5, - 1092 - 164: 0xA7E6, - 1093 - 164: 0xA7E7, - 1094 - 164: 0xA7E8, - 1095 - 164: 0xA7E9, - 1096 - 164: 0xA7EA, - 1097 - 164: 0xA7EB, - 1098 - 164: 0xA7EC, - 1099 - 164: 0xA7ED, - 1100 - 164: 0xA7EE, - 1101 - 164: 0xA7EF, - 1102 - 164: 0xA7F0, - 1103 - 164: 0xA7F1, - 1105 - 164: 0xA7D7, -} - -const encode3Low, encode3High = 65072, 65510 - -var encode3 = [...]uint16{ - 65072 - 65072: 0xA955, - 65073 - 65072: 0xA6F2, - 65075 - 65072: 0xA6F4, - 65076 - 65072: 0xA6F5, - 65077 - 65072: 0xA6E0, - 65078 - 65072: 0xA6E1, - 65079 - 65072: 0xA6F0, - 65080 - 65072: 0xA6F1, - 65081 - 65072: 0xA6E2, - 65082 - 65072: 0xA6E3, - 65083 - 65072: 0xA6EE, - 65084 - 65072: 0xA6EF, - 65085 - 65072: 0xA6E6, - 65086 - 65072: 0xA6E7, - 65087 - 65072: 0xA6E4, - 65088 - 65072: 0xA6E5, - 65089 - 65072: 0xA6E8, - 65090 - 65072: 0xA6E9, - 65091 - 65072: 0xA6EA, - 65092 - 65072: 0xA6EB, - 65097 - 65072: 0xA968, - 65098 - 65072: 0xA969, - 65099 - 65072: 0xA96A, - 65100 - 65072: 0xA96B, - 65101 - 65072: 0xA96C, - 65102 - 65072: 0xA96D, - 65103 - 65072: 0xA96E, - 65104 - 65072: 0xA96F, - 65105 - 65072: 0xA970, - 65106 - 65072: 0xA971, - 65108 - 65072: 0xA972, - 65109 - 65072: 0xA973, - 65110 - 65072: 0xA974, - 65111 - 65072: 0xA975, - 65113 - 65072: 0xA976, - 65114 - 65072: 0xA977, - 65115 - 65072: 0xA978, - 65116 - 65072: 0xA979, - 65117 - 65072: 0xA97A, - 65118 - 65072: 0xA97B, - 65119 - 65072: 0xA97C, - 65120 - 65072: 0xA97D, - 65121 - 65072: 0xA97E, - 65122 - 65072: 0xA980, - 65123 - 65072: 0xA981, - 65124 - 65072: 0xA982, - 65125 - 65072: 0xA983, - 65126 - 65072: 0xA984, - 65128 - 65072: 0xA985, - 65129 - 65072: 0xA986, - 65130 - 65072: 0xA987, - 65131 - 65072: 0xA988, - 65281 - 65072: 0xA3A1, - 65282 - 65072: 0xA3A2, - 65283 - 65072: 0xA3A3, - 65284 - 65072: 0xA1E7, - 65285 - 65072: 0xA3A5, - 65286 - 65072: 0xA3A6, - 65287 - 65072: 0xA3A7, - 65288 - 65072: 0xA3A8, - 65289 - 65072: 0xA3A9, - 65290 - 65072: 0xA3AA, - 65291 - 65072: 0xA3AB, - 65292 - 65072: 0xA3AC, - 65293 - 65072: 0xA3AD, - 65294 - 65072: 0xA3AE, - 65295 - 65072: 0xA3AF, - 65296 - 65072: 0xA3B0, - 65297 - 65072: 0xA3B1, - 65298 - 65072: 0xA3B2, - 65299 - 65072: 0xA3B3, - 65300 - 65072: 0xA3B4, - 65301 - 65072: 0xA3B5, - 65302 - 65072: 0xA3B6, - 65303 - 65072: 0xA3B7, - 65304 - 65072: 0xA3B8, - 65305 - 65072: 0xA3B9, - 65306 - 65072: 0xA3BA, - 65307 - 65072: 0xA3BB, - 65308 - 65072: 0xA3BC, - 65309 - 65072: 0xA3BD, - 65310 - 65072: 0xA3BE, - 65311 - 65072: 0xA3BF, - 65312 - 65072: 0xA3C0, - 65313 - 65072: 0xA3C1, - 65314 - 65072: 0xA3C2, - 65315 - 65072: 0xA3C3, - 65316 - 65072: 0xA3C4, - 65317 - 65072: 0xA3C5, - 65318 - 65072: 0xA3C6, - 65319 - 65072: 0xA3C7, - 65320 - 65072: 0xA3C8, - 65321 - 65072: 0xA3C9, - 65322 - 65072: 0xA3CA, - 65323 - 65072: 0xA3CB, - 65324 - 65072: 0xA3CC, - 65325 - 65072: 0xA3CD, - 65326 - 65072: 0xA3CE, - 65327 - 65072: 0xA3CF, - 65328 - 65072: 0xA3D0, - 65329 - 65072: 0xA3D1, - 65330 - 65072: 0xA3D2, - 65331 - 65072: 0xA3D3, - 65332 - 65072: 0xA3D4, - 65333 - 65072: 0xA3D5, - 65334 - 65072: 0xA3D6, - 65335 - 65072: 0xA3D7, - 65336 - 65072: 0xA3D8, - 65337 - 65072: 0xA3D9, - 65338 - 65072: 0xA3DA, - 65339 - 65072: 0xA3DB, - 65340 - 65072: 0xA3DC, - 65341 - 65072: 0xA3DD, - 65342 - 65072: 0xA3DE, - 65343 - 65072: 0xA3DF, - 65344 - 65072: 0xA3E0, - 65345 - 65072: 0xA3E1, - 65346 - 65072: 0xA3E2, - 65347 - 65072: 0xA3E3, - 65348 - 65072: 0xA3E4, - 65349 - 65072: 0xA3E5, - 65350 - 65072: 0xA3E6, - 65351 - 65072: 0xA3E7, - 65352 - 65072: 0xA3E8, - 65353 - 65072: 0xA3E9, - 65354 - 65072: 0xA3EA, - 65355 - 65072: 0xA3EB, - 65356 - 65072: 0xA3EC, - 65357 - 65072: 0xA3ED, - 65358 - 65072: 0xA3EE, - 65359 - 65072: 0xA3EF, - 65360 - 65072: 0xA3F0, - 65361 - 65072: 0xA3F1, - 65362 - 65072: 0xA3F2, - 65363 - 65072: 0xA3F3, - 65364 - 65072: 0xA3F4, - 65365 - 65072: 0xA3F5, - 65366 - 65072: 0xA3F6, - 65367 - 65072: 0xA3F7, - 65368 - 65072: 0xA3F8, - 65369 - 65072: 0xA3F9, - 65370 - 65072: 0xA3FA, - 65371 - 65072: 0xA3FB, - 65372 - 65072: 0xA3FC, - 65373 - 65072: 0xA3FD, - 65374 - 65072: 0xA1AB, - 65504 - 65072: 0xA1E9, - 65505 - 65072: 0xA1EA, - 65506 - 65072: 0xA956, - 65507 - 65072: 0xA3FE, - 65508 - 65072: 0xA957, - 65509 - 65072: 0xA3A4, -} - -const encode4Low, encode4High = 63788, 64042 - -var encode4 = [...]uint16{ - 63788 - 63788: 0xFD9C, - 63865 - 63788: 0xFD9D, - 63893 - 63788: 0xFD9E, - 63975 - 63788: 0xFD9F, - 63985 - 63788: 0xFDA0, - 64012 - 63788: 0xFE40, - 64013 - 63788: 0xFE41, - 64014 - 63788: 0xFE42, - 64015 - 63788: 0xFE43, - 64017 - 63788: 0xFE44, - 64019 - 63788: 0xFE45, - 64020 - 63788: 0xFE46, - 64024 - 63788: 0xFE47, - 64031 - 63788: 0xFE48, - 64032 - 63788: 0xFE49, - 64033 - 63788: 0xFE4A, - 64035 - 63788: 0xFE4B, - 64036 - 63788: 0xFE4C, - 64039 - 63788: 0xFE4D, - 64040 - 63788: 0xFE4E, - 64041 - 63788: 0xFE4F, -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go deleted file mode 100644 index 1fcddde0..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go +++ /dev/null @@ -1,199 +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 traditionalchinese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{Big5} - -// Big5 is the Big5 encoding, also known as Code Page 950. -var Big5 encoding.Encoding = &big5 - -var big5 = internal.Encoding{ - &internal.SimpleEncoding{big5Decoder{}, big5Encoder{}}, - "Big5", - identifier.Big5, -} - -type big5Decoder struct{ transform.NopResetter } - -func (big5Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size, s := rune(0), 0, "" -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - goto write - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0xa1 <= c1 && c1 < 0xff: - c1 -= 0x62 - case c1 < 0x40: - r, size = utf8.RuneError, 1 - goto write - default: - r, size = utf8.RuneError, 2 - goto write - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*157 + int(c1); i < len(decode) { - if 1133 <= i && i < 1167 { - // The two-rune special cases for LATIN CAPITAL / SMALL E WITH CIRCUMFLEX - // AND MACRON / CARON are from http://encoding.spec.whatwg.org/#big5 - switch i { - case 1133: - s = "\u00CA\u0304" - goto writeStr - case 1135: - s = "\u00CA\u030C" - goto writeStr - case 1164: - s = "\u00EA\u0304" - goto writeStr - case 1166: - s = "\u00EA\u030C" - goto writeStr - } - } - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - r, size = utf8.RuneError, 1 - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - continue loop - - writeStr: - if nDst+len(s) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += copy(dst[nDst:], s) - continue loop - } - return nDst, nSrc, err -} - -type big5Encoder struct{ transform.NopResetter } - -func (big5Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r >= utf8.RuneSelf { - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - case encode7Low <= r && r < encode7High: - if r = rune(encode7[r-encode7Low]); r != 0 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 8 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go deleted file mode 100644 index d909e38e..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go +++ /dev/null @@ -1,37142 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package traditionalchinese provides Traditional Chinese encodings such as Big5. -package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese" - -// decode is the decoding table from Big5 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-big5.txt -var decode = [...]uint32{ - 942: 0x000043F0, - 943: 0x00004C32, - 944: 0x00004603, - 945: 0x000045A6, - 946: 0x00004578, - 947: 0x00027267, - 948: 0x00004D77, - 949: 0x000045B3, - 950: 0x00027CB1, - 951: 0x00004CE2, - 952: 0x00027CC5, - 953: 0x00003B95, - 954: 0x00004736, - 955: 0x00004744, - 956: 0x00004C47, - 957: 0x00004C40, - 958: 0x000242BF, - 959: 0x00023617, - 960: 0x00027352, - 961: 0x00026E8B, - 962: 0x000270D2, - 963: 0x00004C57, - 964: 0x0002A351, - 965: 0x0000474F, - 966: 0x000045DA, - 967: 0x00004C85, - 968: 0x00027C6C, - 969: 0x00004D07, - 970: 0x00004AA4, - 971: 0x000046A1, - 972: 0x00026B23, - 973: 0x00007225, - 974: 0x00025A54, - 975: 0x00021A63, - 976: 0x00023E06, - 977: 0x00023F61, - 978: 0x0000664D, - 979: 0x000056FB, - 981: 0x00007D95, - 982: 0x0000591D, - 983: 0x00028BB9, - 984: 0x00003DF4, - 985: 0x00009734, - 986: 0x00027BEF, - 987: 0x00005BDB, - 988: 0x00021D5E, - 989: 0x00005AA4, - 990: 0x00003625, - 991: 0x00029EB0, - 992: 0x00005AD1, - 993: 0x00005BB7, - 994: 0x00005CFC, - 995: 0x0000676E, - 996: 0x00008593, - 997: 0x00029945, - 998: 0x00007461, - 999: 0x0000749D, - 1000: 0x00003875, - 1001: 0x00021D53, - 1002: 0x0002369E, - 1003: 0x00026021, - 1004: 0x00003EEC, - 1005: 0x000258DE, - 1006: 0x00003AF5, - 1007: 0x00007AFC, - 1008: 0x00009F97, - 1009: 0x00024161, - 1010: 0x0002890D, - 1011: 0x000231EA, - 1012: 0x00020A8A, - 1013: 0x0002325E, - 1014: 0x0000430A, - 1015: 0x00008484, - 1016: 0x00009F96, - 1017: 0x0000942F, - 1018: 0x00004930, - 1019: 0x00008613, - 1020: 0x00005896, - 1021: 0x0000974A, - 1022: 0x00009218, - 1023: 0x000079D0, - 1024: 0x00007A32, - 1025: 0x00006660, - 1026: 0x00006A29, - 1027: 0x0000889D, - 1028: 0x0000744C, - 1029: 0x00007BC5, - 1030: 0x00006782, - 1031: 0x00007A2C, - 1032: 0x0000524F, - 1033: 0x00009046, - 1034: 0x000034E6, - 1035: 0x000073C4, - 1036: 0x00025DB9, - 1037: 0x000074C6, - 1038: 0x00009FC7, - 1039: 0x000057B3, - 1040: 0x0000492F, - 1041: 0x0000544C, - 1042: 0x00004131, - 1043: 0x0002368E, - 1044: 0x00005818, - 1045: 0x00007A72, - 1046: 0x00027B65, - 1047: 0x00008B8F, - 1048: 0x000046AE, - 1049: 0x00026E88, - 1050: 0x00004181, - 1051: 0x00025D99, - 1052: 0x00007BAE, - 1053: 0x000224BC, - 1054: 0x00009FC8, - 1055: 0x000224C1, - 1056: 0x000224C9, - 1057: 0x000224CC, - 1058: 0x00009FC9, - 1059: 0x00008504, - 1060: 0x000235BB, - 1061: 0x000040B4, - 1062: 0x00009FCA, - 1063: 0x000044E1, - 1064: 0x0002ADFF, - 1065: 0x000062C1, - 1066: 0x0000706E, - 1067: 0x00009FCB, - 1099: 0x000031C0, - 1100: 0x000031C1, - 1101: 0x000031C2, - 1102: 0x000031C3, - 1103: 0x000031C4, - 1104: 0x0002010C, - 1105: 0x000031C5, - 1106: 0x000200D1, - 1107: 0x000200CD, - 1108: 0x000031C6, - 1109: 0x000031C7, - 1110: 0x000200CB, - 1111: 0x00021FE8, - 1112: 0x000031C8, - 1113: 0x000200CA, - 1114: 0x000031C9, - 1115: 0x000031CA, - 1116: 0x000031CB, - 1117: 0x000031CC, - 1118: 0x0002010E, - 1119: 0x000031CD, - 1120: 0x000031CE, - 1121: 0x00000100, - 1122: 0x000000C1, - 1123: 0x000001CD, - 1124: 0x000000C0, - 1125: 0x00000112, - 1126: 0x000000C9, - 1127: 0x0000011A, - 1128: 0x000000C8, - 1129: 0x0000014C, - 1130: 0x000000D3, - 1131: 0x000001D1, - 1132: 0x000000D2, - 1134: 0x00001EBE, - 1136: 0x00001EC0, - 1137: 0x000000CA, - 1138: 0x00000101, - 1139: 0x000000E1, - 1140: 0x000001CE, - 1141: 0x000000E0, - 1142: 0x00000251, - 1143: 0x00000113, - 1144: 0x000000E9, - 1145: 0x0000011B, - 1146: 0x000000E8, - 1147: 0x0000012B, - 1148: 0x000000ED, - 1149: 0x000001D0, - 1150: 0x000000EC, - 1151: 0x0000014D, - 1152: 0x000000F3, - 1153: 0x000001D2, - 1154: 0x000000F2, - 1155: 0x0000016B, - 1156: 0x000000FA, - 1157: 0x000001D4, - 1158: 0x000000F9, - 1159: 0x000001D6, - 1160: 0x000001D8, - 1161: 0x000001DA, - 1162: 0x000001DC, - 1163: 0x000000FC, - 1165: 0x00001EBF, - 1167: 0x00001EC1, - 1168: 0x000000EA, - 1169: 0x00000261, - 1170: 0x000023DA, - 1171: 0x000023DB, - 1256: 0x0002A3A9, - 1257: 0x00021145, - 1259: 0x0000650A, - 1262: 0x00004E3D, - 1263: 0x00006EDD, - 1264: 0x00009D4E, - 1265: 0x000091DF, - 1268: 0x00027735, - 1269: 0x00006491, - 1270: 0x00004F1A, - 1271: 0x00004F28, - 1272: 0x00004FA8, - 1273: 0x00005156, - 1274: 0x00005174, - 1275: 0x0000519C, - 1276: 0x000051E4, - 1277: 0x000052A1, - 1278: 0x000052A8, - 1279: 0x0000533B, - 1280: 0x0000534E, - 1281: 0x000053D1, - 1282: 0x000053D8, - 1283: 0x000056E2, - 1284: 0x000058F0, - 1285: 0x00005904, - 1286: 0x00005907, - 1287: 0x00005932, - 1288: 0x00005934, - 1289: 0x00005B66, - 1290: 0x00005B9E, - 1291: 0x00005B9F, - 1292: 0x00005C9A, - 1293: 0x00005E86, - 1294: 0x0000603B, - 1295: 0x00006589, - 1296: 0x000067FE, - 1297: 0x00006804, - 1298: 0x00006865, - 1299: 0x00006D4E, - 1300: 0x000070BC, - 1301: 0x00007535, - 1302: 0x00007EA4, - 1303: 0x00007EAC, - 1304: 0x00007EBA, - 1305: 0x00007EC7, - 1306: 0x00007ECF, - 1307: 0x00007EDF, - 1308: 0x00007F06, - 1309: 0x00007F37, - 1310: 0x0000827A, - 1311: 0x000082CF, - 1312: 0x0000836F, - 1313: 0x000089C6, - 1314: 0x00008BBE, - 1315: 0x00008BE2, - 1316: 0x00008F66, - 1317: 0x00008F67, - 1318: 0x00008F6E, - 1319: 0x00007411, - 1320: 0x00007CFC, - 1321: 0x00007DCD, - 1322: 0x00006946, - 1323: 0x00007AC9, - 1324: 0x00005227, - 1329: 0x0000918C, - 1330: 0x000078B8, - 1331: 0x0000915E, - 1332: 0x000080BC, - 1334: 0x00008D0B, - 1335: 0x000080F6, - 1336: 0x000209E7, - 1339: 0x0000809F, - 1340: 0x00009EC7, - 1341: 0x00004CCD, - 1342: 0x00009DC9, - 1343: 0x00009E0C, - 1344: 0x00004C3E, - 1345: 0x00029DF6, - 1346: 0x0002700E, - 1347: 0x00009E0A, - 1348: 0x0002A133, - 1349: 0x000035C1, - 1351: 0x00006E9A, - 1352: 0x0000823E, - 1353: 0x00007519, - 1355: 0x00004911, - 1356: 0x00009A6C, - 1357: 0x00009A8F, - 1358: 0x00009F99, - 1359: 0x00007987, - 1360: 0x0002846C, - 1361: 0x00021DCA, - 1362: 0x000205D0, - 1363: 0x00022AE6, - 1364: 0x00004E24, - 1365: 0x00004E81, - 1366: 0x00004E80, - 1367: 0x00004E87, - 1368: 0x00004EBF, - 1369: 0x00004EEB, - 1370: 0x00004F37, - 1371: 0x0000344C, - 1372: 0x00004FBD, - 1373: 0x00003E48, - 1374: 0x00005003, - 1375: 0x00005088, - 1376: 0x0000347D, - 1377: 0x00003493, - 1378: 0x000034A5, - 1379: 0x00005186, - 1380: 0x00005905, - 1381: 0x000051DB, - 1382: 0x000051FC, - 1383: 0x00005205, - 1384: 0x00004E89, - 1385: 0x00005279, - 1386: 0x00005290, - 1387: 0x00005327, - 1388: 0x000035C7, - 1389: 0x000053A9, - 1390: 0x00003551, - 1391: 0x000053B0, - 1392: 0x00003553, - 1393: 0x000053C2, - 1394: 0x00005423, - 1395: 0x0000356D, - 1396: 0x00003572, - 1397: 0x00003681, - 1398: 0x00005493, - 1399: 0x000054A3, - 1400: 0x000054B4, - 1401: 0x000054B9, - 1402: 0x000054D0, - 1403: 0x000054EF, - 1404: 0x00005518, - 1405: 0x00005523, - 1406: 0x00005528, - 1407: 0x00003598, - 1408: 0x0000553F, - 1409: 0x000035A5, - 1410: 0x000035BF, - 1411: 0x000055D7, - 1412: 0x000035C5, - 1413: 0x00027D84, - 1414: 0x00005525, - 1416: 0x00020C42, - 1417: 0x00020D15, - 1418: 0x0002512B, - 1419: 0x00005590, - 1420: 0x00022CC6, - 1421: 0x000039EC, - 1422: 0x00020341, - 1423: 0x00008E46, - 1424: 0x00024DB8, - 1425: 0x000294E5, - 1426: 0x00004053, - 1427: 0x000280BE, - 1428: 0x0000777A, - 1429: 0x00022C38, - 1430: 0x00003A34, - 1431: 0x000047D5, - 1432: 0x0002815D, - 1433: 0x000269F2, - 1434: 0x00024DEA, - 1435: 0x000064DD, - 1436: 0x00020D7C, - 1437: 0x00020FB4, - 1438: 0x00020CD5, - 1439: 0x000210F4, - 1440: 0x0000648D, - 1441: 0x00008E7E, - 1442: 0x00020E96, - 1443: 0x00020C0B, - 1444: 0x00020F64, - 1445: 0x00022CA9, - 1446: 0x00028256, - 1447: 0x000244D3, - 1449: 0x00020D46, - 1450: 0x00029A4D, - 1451: 0x000280E9, - 1452: 0x000047F4, - 1453: 0x00024EA7, - 1454: 0x00022CC2, - 1455: 0x00009AB2, - 1456: 0x00003A67, - 1457: 0x000295F4, - 1458: 0x00003FED, - 1459: 0x00003506, - 1460: 0x000252C7, - 1461: 0x000297D4, - 1462: 0x000278C8, - 1463: 0x00022D44, - 1464: 0x00009D6E, - 1465: 0x00009815, - 1467: 0x000043D9, - 1468: 0x000260A5, - 1469: 0x000064B4, - 1470: 0x000054E3, - 1471: 0x00022D4C, - 1472: 0x00022BCA, - 1473: 0x00021077, - 1474: 0x000039FB, - 1475: 0x0002106F, - 1476: 0x000266DA, - 1477: 0x00026716, - 1478: 0x000279A0, - 1479: 0x000064EA, - 1480: 0x00025052, - 1481: 0x00020C43, - 1482: 0x00008E68, - 1483: 0x000221A1, - 1484: 0x00028B4C, - 1485: 0x00020731, - 1487: 0x0000480B, - 1488: 0x000201A9, - 1489: 0x00003FFA, - 1490: 0x00005873, - 1491: 0x00022D8D, - 1493: 0x000245C8, - 1494: 0x000204FC, - 1495: 0x00026097, - 1496: 0x00020F4C, - 1497: 0x00020D96, - 1498: 0x00005579, - 1499: 0x000040BB, - 1500: 0x000043BA, - 1502: 0x00004AB4, - 1503: 0x00022A66, - 1504: 0x0002109D, - 1505: 0x000081AA, - 1506: 0x000098F5, - 1507: 0x00020D9C, - 1508: 0x00006379, - 1509: 0x000039FE, - 1510: 0x00022775, - 1511: 0x00008DC0, - 1512: 0x000056A1, - 1513: 0x0000647C, - 1514: 0x00003E43, - 1516: 0x0002A601, - 1517: 0x00020E09, - 1518: 0x00022ACF, - 1519: 0x00022CC9, - 1521: 0x000210C8, - 1522: 0x000239C2, - 1523: 0x00003992, - 1524: 0x00003A06, - 1525: 0x0002829B, - 1526: 0x00003578, - 1527: 0x00025E49, - 1528: 0x000220C7, - 1529: 0x00005652, - 1530: 0x00020F31, - 1531: 0x00022CB2, - 1532: 0x00029720, - 1533: 0x000034BC, - 1534: 0x00006C3D, - 1535: 0x00024E3B, - 1538: 0x00027574, - 1539: 0x00022E8B, - 1540: 0x00022208, - 1541: 0x0002A65B, - 1542: 0x00028CCD, - 1543: 0x00020E7A, - 1544: 0x00020C34, - 1545: 0x0002681C, - 1546: 0x00007F93, - 1547: 0x000210CF, - 1548: 0x00022803, - 1549: 0x00022939, - 1550: 0x000035FB, - 1551: 0x000251E3, - 1552: 0x00020E8C, - 1553: 0x00020F8D, - 1554: 0x00020EAA, - 1555: 0x00003F93, - 1556: 0x00020F30, - 1557: 0x00020D47, - 1558: 0x0002114F, - 1559: 0x00020E4C, - 1561: 0x00020EAB, - 1562: 0x00020BA9, - 1563: 0x00020D48, - 1564: 0x000210C0, - 1565: 0x0002113D, - 1566: 0x00003FF9, - 1567: 0x00022696, - 1568: 0x00006432, - 1569: 0x00020FAD, - 1570: 0x000233F4, - 1571: 0x00027639, - 1572: 0x00022BCE, - 1573: 0x00020D7E, - 1574: 0x00020D7F, - 1575: 0x00022C51, - 1576: 0x00022C55, - 1577: 0x00003A18, - 1578: 0x00020E98, - 1579: 0x000210C7, - 1580: 0x00020F2E, - 1581: 0x0002A632, - 1582: 0x00026B50, - 1583: 0x00028CD2, - 1584: 0x00028D99, - 1585: 0x00028CCA, - 1586: 0x000095AA, - 1587: 0x000054CC, - 1588: 0x000082C4, - 1589: 0x000055B9, - 1591: 0x00029EC3, - 1592: 0x00009C26, - 1593: 0x00009AB6, - 1594: 0x0002775E, - 1595: 0x00022DEE, - 1596: 0x00007140, - 1597: 0x0000816D, - 1598: 0x000080EC, - 1599: 0x00005C1C, - 1600: 0x00026572, - 1601: 0x00008134, - 1602: 0x00003797, - 1603: 0x0000535F, - 1604: 0x000280BD, - 1605: 0x000091B6, - 1606: 0x00020EFA, - 1607: 0x00020E0F, - 1608: 0x00020E77, - 1609: 0x00020EFB, - 1610: 0x000035DD, - 1611: 0x00024DEB, - 1612: 0x00003609, - 1613: 0x00020CD6, - 1614: 0x000056AF, - 1615: 0x000227B5, - 1616: 0x000210C9, - 1617: 0x00020E10, - 1618: 0x00020E78, - 1619: 0x00021078, - 1620: 0x00021148, - 1621: 0x00028207, - 1622: 0x00021455, - 1623: 0x00020E79, - 1624: 0x00024E50, - 1625: 0x00022DA4, - 1626: 0x00005A54, - 1627: 0x0002101D, - 1628: 0x0002101E, - 1629: 0x000210F5, - 1630: 0x000210F6, - 1631: 0x0000579C, - 1632: 0x00020E11, - 1633: 0x00027694, - 1634: 0x000282CD, - 1635: 0x00020FB5, - 1636: 0x00020E7B, - 1637: 0x0002517E, - 1638: 0x00003703, - 1639: 0x00020FB6, - 1640: 0x00021180, - 1641: 0x000252D8, - 1642: 0x0002A2BD, - 1643: 0x000249DA, - 1644: 0x0002183A, - 1645: 0x00024177, - 1646: 0x0002827C, - 1647: 0x00005899, - 1648: 0x00005268, - 1649: 0x0000361A, - 1650: 0x0002573D, - 1651: 0x00007BB2, - 1652: 0x00005B68, - 1653: 0x00004800, - 1654: 0x00004B2C, - 1655: 0x00009F27, - 1656: 0x000049E7, - 1657: 0x00009C1F, - 1658: 0x00009B8D, - 1659: 0x00025B74, - 1660: 0x0002313D, - 1661: 0x000055FB, - 1662: 0x000035F2, - 1663: 0x00005689, - 1664: 0x00004E28, - 1665: 0x00005902, - 1666: 0x00021BC1, - 1667: 0x0002F878, - 1668: 0x00009751, - 1669: 0x00020086, - 1670: 0x00004E5B, - 1671: 0x00004EBB, - 1672: 0x0000353E, - 1673: 0x00005C23, - 1674: 0x00005F51, - 1675: 0x00005FC4, - 1676: 0x000038FA, - 1677: 0x0000624C, - 1678: 0x00006535, - 1679: 0x00006B7A, - 1680: 0x00006C35, - 1681: 0x00006C3A, - 1682: 0x0000706C, - 1683: 0x0000722B, - 1684: 0x00004E2C, - 1685: 0x000072AD, - 1686: 0x000248E9, - 1687: 0x00007F52, - 1688: 0x0000793B, - 1689: 0x00007CF9, - 1690: 0x00007F53, - 1691: 0x0002626A, - 1692: 0x000034C1, - 1694: 0x0002634B, - 1695: 0x00008002, - 1696: 0x00008080, - 1697: 0x00026612, - 1698: 0x00026951, - 1699: 0x0000535D, - 1700: 0x00008864, - 1701: 0x000089C1, - 1702: 0x000278B2, - 1703: 0x00008BA0, - 1704: 0x00008D1D, - 1705: 0x00009485, - 1706: 0x00009578, - 1707: 0x0000957F, - 1708: 0x000095E8, - 1709: 0x00028E0F, - 1710: 0x000097E6, - 1711: 0x00009875, - 1712: 0x000098CE, - 1713: 0x000098DE, - 1714: 0x00009963, - 1715: 0x00029810, - 1716: 0x00009C7C, - 1717: 0x00009E1F, - 1718: 0x00009EC4, - 1719: 0x00006B6F, - 1720: 0x0000F907, - 1721: 0x00004E37, - 1722: 0x00020087, - 1723: 0x0000961D, - 1724: 0x00006237, - 1725: 0x000094A2, - 1727: 0x0000503B, - 1728: 0x00006DFE, - 1729: 0x00029C73, - 1730: 0x00009FA6, - 1731: 0x00003DC9, - 1732: 0x0000888F, - 1733: 0x0002414E, - 1734: 0x00007077, - 1735: 0x00005CF5, - 1736: 0x00004B20, - 1737: 0x000251CD, - 1738: 0x00003559, - 1739: 0x00025D30, - 1740: 0x00006122, - 1741: 0x00028A32, - 1742: 0x00008FA7, - 1743: 0x000091F6, - 1744: 0x00007191, - 1745: 0x00006719, - 1746: 0x000073BA, - 1747: 0x00023281, - 1748: 0x0002A107, - 1749: 0x00003C8B, - 1750: 0x00021980, - 1751: 0x00004B10, - 1752: 0x000078E4, - 1753: 0x00007402, - 1754: 0x000051AE, - 1755: 0x0002870F, - 1756: 0x00004009, - 1757: 0x00006A63, - 1758: 0x0002A2BA, - 1759: 0x00004223, - 1760: 0x0000860F, - 1761: 0x00020A6F, - 1762: 0x00007A2A, - 1763: 0x00029947, - 1764: 0x00028AEA, - 1765: 0x00009755, - 1766: 0x0000704D, - 1767: 0x00005324, - 1768: 0x0002207E, - 1769: 0x000093F4, - 1770: 0x000076D9, - 1771: 0x000289E3, - 1772: 0x00009FA7, - 1773: 0x000077DD, - 1774: 0x00004EA3, - 1775: 0x00004FF0, - 1776: 0x000050BC, - 1777: 0x00004E2F, - 1778: 0x00004F17, - 1779: 0x00009FA8, - 1780: 0x00005434, - 1781: 0x00007D8B, - 1782: 0x00005892, - 1783: 0x000058D0, - 1784: 0x00021DB6, - 1785: 0x00005E92, - 1786: 0x00005E99, - 1787: 0x00005FC2, - 1788: 0x00022712, - 1789: 0x0000658B, - 1790: 0x000233F9, - 1791: 0x00006919, - 1792: 0x00006A43, - 1793: 0x00023C63, - 1794: 0x00006CFF, - 1796: 0x00007200, - 1797: 0x00024505, - 1798: 0x0000738C, - 1799: 0x00003EDB, - 1800: 0x00024A13, - 1801: 0x00005B15, - 1802: 0x000074B9, - 1803: 0x00008B83, - 1804: 0x00025CA4, - 1805: 0x00025695, - 1806: 0x00007A93, - 1807: 0x00007BEC, - 1808: 0x00007CC3, - 1809: 0x00007E6C, - 1810: 0x000082F8, - 1811: 0x00008597, - 1812: 0x00009FA9, - 1813: 0x00008890, - 1814: 0x00009FAA, - 1815: 0x00008EB9, - 1816: 0x00009FAB, - 1817: 0x00008FCF, - 1818: 0x0000855F, - 1819: 0x000099E0, - 1820: 0x00009221, - 1821: 0x00009FAC, - 1822: 0x00028DB9, - 1823: 0x0002143F, - 1824: 0x00004071, - 1825: 0x000042A2, - 1826: 0x00005A1A, - 1830: 0x00009868, - 1831: 0x0000676B, - 1832: 0x00004276, - 1833: 0x0000573D, - 1835: 0x000085D6, - 1836: 0x0002497B, - 1837: 0x000082BF, - 1838: 0x0002710D, - 1839: 0x00004C81, - 1840: 0x00026D74, - 1841: 0x00005D7B, - 1842: 0x00026B15, - 1843: 0x00026FBE, - 1844: 0x00009FAD, - 1845: 0x00009FAE, - 1846: 0x00005B96, - 1847: 0x00009FAF, - 1848: 0x000066E7, - 1849: 0x00007E5B, - 1850: 0x00006E57, - 1851: 0x000079CA, - 1852: 0x00003D88, - 1853: 0x000044C3, - 1854: 0x00023256, - 1855: 0x00022796, - 1856: 0x0000439A, - 1857: 0x00004536, - 1859: 0x00005CD5, - 1860: 0x00023B1A, - 1861: 0x00008AF9, - 1862: 0x00005C78, - 1863: 0x00003D12, - 1864: 0x00023551, - 1865: 0x00005D78, - 1866: 0x00009FB2, - 1867: 0x00007157, - 1868: 0x00004558, - 1869: 0x000240EC, - 1870: 0x00021E23, - 1871: 0x00004C77, - 1872: 0x00003978, - 1873: 0x0000344A, - 1874: 0x000201A4, - 1875: 0x00026C41, - 1876: 0x00008ACC, - 1877: 0x00004FB4, - 1878: 0x00020239, - 1879: 0x000059BF, - 1880: 0x0000816C, - 1881: 0x00009856, - 1882: 0x000298FA, - 1883: 0x00005F3B, - 1884: 0x00020B9F, - 1886: 0x000221C1, - 1887: 0x0002896D, - 1888: 0x00004102, - 1889: 0x000046BB, - 1890: 0x00029079, - 1891: 0x00003F07, - 1892: 0x00009FB3, - 1893: 0x0002A1B5, - 1894: 0x000040F8, - 1895: 0x000037D6, - 1896: 0x000046F7, - 1897: 0x00026C46, - 1898: 0x0000417C, - 1899: 0x000286B2, - 1900: 0x000273FF, - 1901: 0x0000456D, - 1902: 0x000038D4, - 1903: 0x0002549A, - 1904: 0x00004561, - 1905: 0x0000451B, - 1906: 0x00004D89, - 1907: 0x00004C7B, - 1908: 0x00004D76, - 1909: 0x000045EA, - 1910: 0x00003FC8, - 1911: 0x00024B0F, - 1912: 0x00003661, - 1913: 0x000044DE, - 1914: 0x000044BD, - 1915: 0x000041ED, - 1916: 0x00005D3E, - 1917: 0x00005D48, - 1918: 0x00005D56, - 1919: 0x00003DFC, - 1920: 0x0000380F, - 1921: 0x00005DA4, - 1922: 0x00005DB9, - 1923: 0x00003820, - 1924: 0x00003838, - 1925: 0x00005E42, - 1926: 0x00005EBD, - 1927: 0x00005F25, - 1928: 0x00005F83, - 1929: 0x00003908, - 1930: 0x00003914, - 1931: 0x0000393F, - 1932: 0x0000394D, - 1933: 0x000060D7, - 1934: 0x0000613D, - 1935: 0x00005CE5, - 1936: 0x00003989, - 1937: 0x000061B7, - 1938: 0x000061B9, - 1939: 0x000061CF, - 1940: 0x000039B8, - 1941: 0x0000622C, - 1942: 0x00006290, - 1943: 0x000062E5, - 1944: 0x00006318, - 1945: 0x000039F8, - 1946: 0x000056B1, - 1947: 0x00003A03, - 1948: 0x000063E2, - 1949: 0x000063FB, - 1950: 0x00006407, - 1951: 0x0000645A, - 1952: 0x00003A4B, - 1953: 0x000064C0, - 1954: 0x00005D15, - 1955: 0x00005621, - 1956: 0x00009F9F, - 1957: 0x00003A97, - 1958: 0x00006586, - 1959: 0x00003ABD, - 1960: 0x000065FF, - 1961: 0x00006653, - 1962: 0x00003AF2, - 1963: 0x00006692, - 1964: 0x00003B22, - 1965: 0x00006716, - 1966: 0x00003B42, - 1967: 0x000067A4, - 1968: 0x00006800, - 1969: 0x00003B58, - 1970: 0x0000684A, - 1971: 0x00006884, - 1972: 0x00003B72, - 1973: 0x00003B71, - 1974: 0x00003B7B, - 1975: 0x00006909, - 1976: 0x00006943, - 1977: 0x0000725C, - 1978: 0x00006964, - 1979: 0x0000699F, - 1980: 0x00006985, - 1981: 0x00003BBC, - 1982: 0x000069D6, - 1983: 0x00003BDD, - 1984: 0x00006A65, - 1985: 0x00006A74, - 1986: 0x00006A71, - 1987: 0x00006A82, - 1988: 0x00003BEC, - 1989: 0x00006A99, - 1990: 0x00003BF2, - 1991: 0x00006AAB, - 1992: 0x00006AB5, - 1993: 0x00006AD4, - 1994: 0x00006AF6, - 1995: 0x00006B81, - 1996: 0x00006BC1, - 1997: 0x00006BEA, - 1998: 0x00006C75, - 1999: 0x00006CAA, - 2000: 0x00003CCB, - 2001: 0x00006D02, - 2002: 0x00006D06, - 2003: 0x00006D26, - 2004: 0x00006D81, - 2005: 0x00003CEF, - 2006: 0x00006DA4, - 2007: 0x00006DB1, - 2008: 0x00006E15, - 2009: 0x00006E18, - 2010: 0x00006E29, - 2011: 0x00006E86, - 2012: 0x000289C0, - 2013: 0x00006EBB, - 2014: 0x00006EE2, - 2015: 0x00006EDA, - 2016: 0x00009F7F, - 2017: 0x00006EE8, - 2018: 0x00006EE9, - 2019: 0x00006F24, - 2020: 0x00006F34, - 2021: 0x00003D46, - 2022: 0x00023F41, - 2023: 0x00006F81, - 2024: 0x00006FBE, - 2025: 0x00003D6A, - 2026: 0x00003D75, - 2027: 0x000071B7, - 2028: 0x00005C99, - 2029: 0x00003D8A, - 2030: 0x0000702C, - 2031: 0x00003D91, - 2032: 0x00007050, - 2033: 0x00007054, - 2034: 0x0000706F, - 2035: 0x0000707F, - 2036: 0x00007089, - 2037: 0x00020325, - 2038: 0x000043C1, - 2039: 0x000035F1, - 2040: 0x00020ED8, - 2041: 0x00023ED7, - 2042: 0x000057BE, - 2043: 0x00026ED3, - 2044: 0x0000713E, - 2045: 0x000257E0, - 2046: 0x0000364E, - 2047: 0x000069A2, - 2048: 0x00028BE9, - 2049: 0x00005B74, - 2050: 0x00007A49, - 2051: 0x000258E1, - 2052: 0x000294D9, - 2053: 0x00007A65, - 2054: 0x00007A7D, - 2055: 0x000259AC, - 2056: 0x00007ABB, - 2057: 0x00007AB0, - 2058: 0x00007AC2, - 2059: 0x00007AC3, - 2060: 0x000071D1, - 2061: 0x0002648D, - 2062: 0x000041CA, - 2063: 0x00007ADA, - 2064: 0x00007ADD, - 2065: 0x00007AEA, - 2066: 0x000041EF, - 2067: 0x000054B2, - 2068: 0x00025C01, - 2069: 0x00007B0B, - 2070: 0x00007B55, - 2071: 0x00007B29, - 2072: 0x0002530E, - 2073: 0x00025CFE, - 2074: 0x00007BA2, - 2075: 0x00007B6F, - 2076: 0x0000839C, - 2077: 0x00025BB4, - 2078: 0x00026C7F, - 2079: 0x00007BD0, - 2080: 0x00008421, - 2081: 0x00007B92, - 2082: 0x00007BB8, - 2083: 0x00025D20, - 2084: 0x00003DAD, - 2085: 0x00025C65, - 2086: 0x00008492, - 2087: 0x00007BFA, - 2088: 0x00007C06, - 2089: 0x00007C35, - 2090: 0x00025CC1, - 2091: 0x00007C44, - 2092: 0x00007C83, - 2093: 0x00024882, - 2094: 0x00007CA6, - 2095: 0x0000667D, - 2096: 0x00024578, - 2097: 0x00007CC9, - 2098: 0x00007CC7, - 2099: 0x00007CE6, - 2100: 0x00007C74, - 2101: 0x00007CF3, - 2102: 0x00007CF5, - 2103: 0x00007CCE, - 2104: 0x00007E67, - 2105: 0x0000451D, - 2106: 0x00026E44, - 2107: 0x00007D5D, - 2108: 0x00026ED6, - 2109: 0x0000748D, - 2110: 0x00007D89, - 2111: 0x00007DAB, - 2112: 0x00007135, - 2113: 0x00007DB3, - 2114: 0x00007DD2, - 2115: 0x00024057, - 2116: 0x00026029, - 2117: 0x00007DE4, - 2118: 0x00003D13, - 2119: 0x00007DF5, - 2120: 0x000217F9, - 2121: 0x00007DE5, - 2122: 0x0002836D, - 2123: 0x00007E1D, - 2124: 0x00026121, - 2125: 0x0002615A, - 2126: 0x00007E6E, - 2127: 0x00007E92, - 2128: 0x0000432B, - 2129: 0x0000946C, - 2130: 0x00007E27, - 2131: 0x00007F40, - 2132: 0x00007F41, - 2133: 0x00007F47, - 2134: 0x00007936, - 2135: 0x000262D0, - 2136: 0x000099E1, - 2137: 0x00007F97, - 2138: 0x00026351, - 2139: 0x00007FA3, - 2140: 0x00021661, - 2141: 0x00020068, - 2142: 0x0000455C, - 2143: 0x00023766, - 2144: 0x00004503, - 2145: 0x0002833A, - 2146: 0x00007FFA, - 2147: 0x00026489, - 2148: 0x00008005, - 2149: 0x00008008, - 2150: 0x0000801D, - 2151: 0x00008028, - 2152: 0x0000802F, - 2153: 0x0002A087, - 2154: 0x00026CC3, - 2155: 0x0000803B, - 2156: 0x0000803C, - 2157: 0x00008061, - 2158: 0x00022714, - 2159: 0x00004989, - 2160: 0x00026626, - 2161: 0x00023DE3, - 2162: 0x000266E8, - 2163: 0x00006725, - 2164: 0x000080A7, - 2165: 0x00028A48, - 2166: 0x00008107, - 2167: 0x0000811A, - 2168: 0x000058B0, - 2169: 0x000226F6, - 2170: 0x00006C7F, - 2171: 0x00026498, - 2172: 0x00024FB8, - 2173: 0x000064E7, - 2174: 0x0002148A, - 2175: 0x00008218, - 2176: 0x0002185E, - 2177: 0x00006A53, - 2178: 0x00024A65, - 2179: 0x00024A95, - 2180: 0x0000447A, - 2181: 0x00008229, - 2182: 0x00020B0D, - 2183: 0x00026A52, - 2184: 0x00023D7E, - 2185: 0x00004FF9, - 2186: 0x000214FD, - 2187: 0x000084E2, - 2188: 0x00008362, - 2189: 0x00026B0A, - 2190: 0x000249A7, - 2191: 0x00023530, - 2192: 0x00021773, - 2193: 0x00023DF8, - 2194: 0x000082AA, - 2195: 0x0000691B, - 2196: 0x0002F994, - 2197: 0x000041DB, - 2198: 0x0000854B, - 2199: 0x000082D0, - 2200: 0x0000831A, - 2201: 0x00020E16, - 2202: 0x000217B4, - 2203: 0x000036C1, - 2204: 0x0002317D, - 2205: 0x0002355A, - 2206: 0x0000827B, - 2207: 0x000082E2, - 2208: 0x00008318, - 2209: 0x00023E8B, - 2210: 0x00026DA3, - 2211: 0x00026B05, - 2212: 0x00026B97, - 2213: 0x000235CE, - 2214: 0x00003DBF, - 2215: 0x0000831D, - 2216: 0x000055EC, - 2217: 0x00008385, - 2218: 0x0000450B, - 2219: 0x00026DA5, - 2220: 0x000083AC, - 2221: 0x000083C1, - 2222: 0x000083D3, - 2223: 0x0000347E, - 2224: 0x00026ED4, - 2225: 0x00006A57, - 2226: 0x0000855A, - 2227: 0x00003496, - 2228: 0x00026E42, - 2229: 0x00022EEF, - 2230: 0x00008458, - 2231: 0x00025BE4, - 2232: 0x00008471, - 2233: 0x00003DD3, - 2234: 0x000044E4, - 2235: 0x00006AA7, - 2236: 0x0000844A, - 2237: 0x00023CB5, - 2238: 0x00007958, - 2239: 0x000084A8, - 2240: 0x00026B96, - 2241: 0x00026E77, - 2242: 0x00026E43, - 2243: 0x000084DE, - 2244: 0x0000840F, - 2245: 0x00008391, - 2246: 0x000044A0, - 2247: 0x00008493, - 2248: 0x000084E4, - 2249: 0x00025C91, - 2250: 0x00004240, - 2251: 0x00025CC0, - 2252: 0x00004543, - 2253: 0x00008534, - 2254: 0x00005AF2, - 2255: 0x00026E99, - 2256: 0x00004527, - 2257: 0x00008573, - 2258: 0x00004516, - 2259: 0x000067BF, - 2260: 0x00008616, - 2261: 0x00028625, - 2262: 0x0002863B, - 2263: 0x000085C1, - 2264: 0x00027088, - 2265: 0x00008602, - 2266: 0x00021582, - 2267: 0x000270CD, - 2268: 0x0002F9B2, - 2269: 0x0000456A, - 2270: 0x00008628, - 2271: 0x00003648, - 2272: 0x000218A2, - 2273: 0x000053F7, - 2274: 0x0002739A, - 2275: 0x0000867E, - 2276: 0x00008771, - 2277: 0x0002A0F8, - 2278: 0x000087EE, - 2279: 0x00022C27, - 2280: 0x000087B1, - 2281: 0x000087DA, - 2282: 0x0000880F, - 2283: 0x00005661, - 2284: 0x0000866C, - 2285: 0x00006856, - 2286: 0x0000460F, - 2287: 0x00008845, - 2288: 0x00008846, - 2289: 0x000275E0, - 2290: 0x00023DB9, - 2291: 0x000275E4, - 2292: 0x0000885E, - 2293: 0x0000889C, - 2294: 0x0000465B, - 2295: 0x000088B4, - 2296: 0x000088B5, - 2297: 0x000063C1, - 2298: 0x000088C5, - 2299: 0x00007777, - 2300: 0x0002770F, - 2301: 0x00008987, - 2302: 0x0000898A, - 2303: 0x000089A6, - 2304: 0x000089A9, - 2305: 0x000089A7, - 2306: 0x000089BC, - 2307: 0x00028A25, - 2308: 0x000089E7, - 2309: 0x00027924, - 2310: 0x00027ABD, - 2311: 0x00008A9C, - 2312: 0x00007793, - 2313: 0x000091FE, - 2314: 0x00008A90, - 2315: 0x00027A59, - 2316: 0x00007AE9, - 2317: 0x00027B3A, - 2318: 0x00023F8F, - 2319: 0x00004713, - 2320: 0x00027B38, - 2321: 0x0000717C, - 2322: 0x00008B0C, - 2323: 0x00008B1F, - 2324: 0x00025430, - 2325: 0x00025565, - 2326: 0x00008B3F, - 2327: 0x00008B4C, - 2328: 0x00008B4D, - 2329: 0x00008AA9, - 2330: 0x00024A7A, - 2331: 0x00008B90, - 2332: 0x00008B9B, - 2333: 0x00008AAF, - 2334: 0x000216DF, - 2335: 0x00004615, - 2336: 0x0000884F, - 2337: 0x00008C9B, - 2338: 0x00027D54, - 2339: 0x00027D8F, - 2340: 0x0002F9D4, - 2341: 0x00003725, - 2342: 0x00027D53, - 2343: 0x00008CD6, - 2344: 0x00027D98, - 2345: 0x00027DBD, - 2346: 0x00008D12, - 2347: 0x00008D03, - 2348: 0x00021910, - 2349: 0x00008CDB, - 2350: 0x0000705C, - 2351: 0x00008D11, - 2352: 0x00024CC9, - 2353: 0x00003ED0, - 2354: 0x00008D77, - 2355: 0x00008DA9, - 2356: 0x00028002, - 2357: 0x00021014, - 2358: 0x0002498A, - 2359: 0x00003B7C, - 2360: 0x000281BC, - 2361: 0x0002710C, - 2362: 0x00007AE7, - 2363: 0x00008EAD, - 2364: 0x00008EB6, - 2365: 0x00008EC3, - 2366: 0x000092D4, - 2367: 0x00008F19, - 2368: 0x00008F2D, - 2369: 0x00028365, - 2370: 0x00028412, - 2371: 0x00008FA5, - 2372: 0x00009303, - 2373: 0x0002A29F, - 2374: 0x00020A50, - 2375: 0x00008FB3, - 2376: 0x0000492A, - 2377: 0x000289DE, - 2378: 0x0002853D, - 2379: 0x00023DBB, - 2380: 0x00005EF8, - 2381: 0x00023262, - 2382: 0x00008FF9, - 2383: 0x0002A014, - 2384: 0x000286BC, - 2385: 0x00028501, - 2386: 0x00022325, - 2387: 0x00003980, - 2388: 0x00026ED7, - 2389: 0x00009037, - 2390: 0x0002853C, - 2391: 0x00027ABE, - 2392: 0x00009061, - 2393: 0x0002856C, - 2394: 0x0002860B, - 2395: 0x000090A8, - 2396: 0x00028713, - 2397: 0x000090C4, - 2398: 0x000286E6, - 2399: 0x000090AE, - 2400: 0x000090FD, - 2401: 0x00009167, - 2402: 0x00003AF0, - 2403: 0x000091A9, - 2404: 0x000091C4, - 2405: 0x00007CAC, - 2406: 0x00028933, - 2407: 0x00021E89, - 2408: 0x0000920E, - 2409: 0x00006C9F, - 2410: 0x00009241, - 2411: 0x00009262, - 2412: 0x000255B9, - 2413: 0x000092B9, - 2414: 0x00028AC6, - 2415: 0x00023C9B, - 2416: 0x00028B0C, - 2417: 0x000255DB, - 2418: 0x00020D31, - 2419: 0x0000932C, - 2420: 0x0000936B, - 2421: 0x00028AE1, - 2422: 0x00028BEB, - 2423: 0x0000708F, - 2424: 0x00005AC3, - 2425: 0x00028AE2, - 2426: 0x00028AE5, - 2427: 0x00004965, - 2428: 0x00009244, - 2429: 0x00028BEC, - 2430: 0x00028C39, - 2431: 0x00028BFF, - 2432: 0x00009373, - 2433: 0x0000945B, - 2434: 0x00008EBC, - 2435: 0x00009585, - 2436: 0x000095A6, - 2437: 0x00009426, - 2438: 0x000095A0, - 2439: 0x00006FF6, - 2440: 0x000042B9, - 2441: 0x0002267A, - 2442: 0x000286D8, - 2443: 0x0002127C, - 2444: 0x00023E2E, - 2445: 0x000049DF, - 2446: 0x00006C1C, - 2447: 0x0000967B, - 2448: 0x00009696, - 2449: 0x0000416C, - 2450: 0x000096A3, - 2451: 0x00026ED5, - 2452: 0x000061DA, - 2453: 0x000096B6, - 2454: 0x000078F5, - 2455: 0x00028AE0, - 2456: 0x000096BD, - 2457: 0x000053CC, - 2458: 0x000049A1, - 2459: 0x00026CB8, - 2460: 0x00020274, - 2461: 0x00026410, - 2462: 0x000290AF, - 2463: 0x000290E5, - 2464: 0x00024AD1, - 2465: 0x00021915, - 2466: 0x0002330A, - 2467: 0x00009731, - 2468: 0x00008642, - 2469: 0x00009736, - 2470: 0x00004A0F, - 2471: 0x0000453D, - 2472: 0x00004585, - 2473: 0x00024AE9, - 2474: 0x00007075, - 2475: 0x00005B41, - 2476: 0x0000971B, - 2477: 0x0000975C, - 2478: 0x000291D5, - 2479: 0x00009757, - 2480: 0x00005B4A, - 2481: 0x000291EB, - 2482: 0x0000975F, - 2483: 0x00009425, - 2484: 0x000050D0, - 2485: 0x000230B7, - 2486: 0x000230BC, - 2487: 0x00009789, - 2488: 0x0000979F, - 2489: 0x000097B1, - 2490: 0x000097BE, - 2491: 0x000097C0, - 2492: 0x000097D2, - 2493: 0x000097E0, - 2494: 0x0002546C, - 2495: 0x000097EE, - 2496: 0x0000741C, - 2497: 0x00029433, - 2498: 0x000097FF, - 2499: 0x000097F5, - 2500: 0x0002941D, - 2501: 0x0002797A, - 2502: 0x00004AD1, - 2503: 0x00009834, - 2504: 0x00009833, - 2505: 0x0000984B, - 2506: 0x00009866, - 2507: 0x00003B0E, - 2508: 0x00027175, - 2509: 0x00003D51, - 2510: 0x00020630, - 2511: 0x0002415C, - 2512: 0x00025706, - 2513: 0x000098CA, - 2514: 0x000098B7, - 2515: 0x000098C8, - 2516: 0x000098C7, - 2517: 0x00004AFF, - 2518: 0x00026D27, - 2519: 0x000216D3, - 2520: 0x000055B0, - 2521: 0x000098E1, - 2522: 0x000098E6, - 2523: 0x000098EC, - 2524: 0x00009378, - 2525: 0x00009939, - 2526: 0x00024A29, - 2527: 0x00004B72, - 2528: 0x00029857, - 2529: 0x00029905, - 2530: 0x000099F5, - 2531: 0x00009A0C, - 2532: 0x00009A3B, - 2533: 0x00009A10, - 2534: 0x00009A58, - 2535: 0x00025725, - 2536: 0x000036C4, - 2537: 0x000290B1, - 2538: 0x00029BD5, - 2539: 0x00009AE0, - 2540: 0x00009AE2, - 2541: 0x00029B05, - 2542: 0x00009AF4, - 2543: 0x00004C0E, - 2544: 0x00009B14, - 2545: 0x00009B2D, - 2546: 0x00028600, - 2547: 0x00005034, - 2548: 0x00009B34, - 2549: 0x000269A8, - 2550: 0x000038C3, - 2551: 0x0002307D, - 2552: 0x00009B50, - 2553: 0x00009B40, - 2554: 0x00029D3E, - 2555: 0x00005A45, - 2556: 0x00021863, - 2557: 0x00009B8E, - 2558: 0x0002424B, - 2559: 0x00009C02, - 2560: 0x00009BFF, - 2561: 0x00009C0C, - 2562: 0x00029E68, - 2563: 0x00009DD4, - 2564: 0x00029FB7, - 2565: 0x0002A192, - 2566: 0x0002A1AB, - 2567: 0x0002A0E1, - 2568: 0x0002A123, - 2569: 0x0002A1DF, - 2570: 0x00009D7E, - 2571: 0x00009D83, - 2572: 0x0002A134, - 2573: 0x00009E0E, - 2574: 0x00006888, - 2575: 0x00009DC4, - 2576: 0x0002215B, - 2577: 0x0002A193, - 2578: 0x0002A220, - 2579: 0x0002193B, - 2580: 0x0002A233, - 2581: 0x00009D39, - 2582: 0x0002A0B9, - 2583: 0x0002A2B4, - 2584: 0x00009E90, - 2585: 0x00009E95, - 2586: 0x00009E9E, - 2587: 0x00009EA2, - 2588: 0x00004D34, - 2589: 0x00009EAA, - 2590: 0x00009EAF, - 2591: 0x00024364, - 2592: 0x00009EC1, - 2593: 0x00003B60, - 2594: 0x000039E5, - 2595: 0x00003D1D, - 2596: 0x00004F32, - 2597: 0x000037BE, - 2598: 0x00028C2B, - 2599: 0x00009F02, - 2600: 0x00009F08, - 2601: 0x00004B96, - 2602: 0x00009424, - 2603: 0x00026DA2, - 2604: 0x00009F17, - 2605: 0x00009F16, - 2606: 0x00009F39, - 2607: 0x0000569F, - 2608: 0x0000568A, - 2609: 0x00009F45, - 2610: 0x000099B8, - 2611: 0x0002908B, - 2612: 0x000097F2, - 2613: 0x0000847F, - 2614: 0x00009F62, - 2615: 0x00009F69, - 2616: 0x00007ADC, - 2617: 0x00009F8E, - 2618: 0x00007216, - 2619: 0x00004BBE, - 2620: 0x00024975, - 2621: 0x000249BB, - 2622: 0x00007177, - 2623: 0x000249F8, - 2624: 0x00024348, - 2625: 0x00024A51, - 2626: 0x0000739E, - 2627: 0x00028BDA, - 2628: 0x000218FA, - 2629: 0x0000799F, - 2630: 0x0002897E, - 2631: 0x00028E36, - 2632: 0x00009369, - 2633: 0x000093F3, - 2634: 0x00028A44, - 2635: 0x000092EC, - 2636: 0x00009381, - 2637: 0x000093CB, - 2638: 0x0002896C, - 2639: 0x000244B9, - 2640: 0x00007217, - 2641: 0x00003EEB, - 2642: 0x00007772, - 2643: 0x00007A43, - 2644: 0x000070D0, - 2645: 0x00024473, - 2646: 0x000243F8, - 2647: 0x0000717E, - 2648: 0x000217EF, - 2649: 0x000070A3, - 2650: 0x000218BE, - 2651: 0x00023599, - 2652: 0x00003EC7, - 2653: 0x00021885, - 2654: 0x0002542F, - 2655: 0x000217F8, - 2656: 0x00003722, - 2657: 0x000216FB, - 2658: 0x00021839, - 2659: 0x000036E1, - 2660: 0x00021774, - 2661: 0x000218D1, - 2662: 0x00025F4B, - 2663: 0x00003723, - 2664: 0x000216C0, - 2665: 0x0000575B, - 2666: 0x00024A25, - 2667: 0x000213FE, - 2668: 0x000212A8, - 2669: 0x000213C6, - 2670: 0x000214B6, - 2671: 0x00008503, - 2672: 0x000236A6, - 2673: 0x00008503, - 2674: 0x00008455, - 2675: 0x00024994, - 2676: 0x00027165, - 2677: 0x00023E31, - 2678: 0x0002555C, - 2679: 0x00023EFB, - 2680: 0x00027052, - 2681: 0x000044F4, - 2682: 0x000236EE, - 2683: 0x0002999D, - 2684: 0x00026F26, - 2685: 0x000067F9, - 2686: 0x00003733, - 2687: 0x00003C15, - 2688: 0x00003DE7, - 2689: 0x0000586C, - 2690: 0x00021922, - 2691: 0x00006810, - 2692: 0x00004057, - 2693: 0x0002373F, - 2694: 0x000240E1, - 2695: 0x0002408B, - 2696: 0x0002410F, - 2697: 0x00026C21, - 2698: 0x000054CB, - 2699: 0x0000569E, - 2700: 0x000266B1, - 2701: 0x00005692, - 2702: 0x00020FDF, - 2703: 0x00020BA8, - 2704: 0x00020E0D, - 2705: 0x000093C6, - 2706: 0x00028B13, - 2707: 0x0000939C, - 2708: 0x00004EF8, - 2709: 0x0000512B, - 2710: 0x00003819, - 2711: 0x00024436, - 2712: 0x00004EBC, - 2713: 0x00020465, - 2714: 0x0002037F, - 2715: 0x00004F4B, - 2716: 0x00004F8A, - 2717: 0x00025651, - 2718: 0x00005A68, - 2719: 0x000201AB, - 2720: 0x000203CB, - 2721: 0x00003999, - 2722: 0x0002030A, - 2723: 0x00020414, - 2724: 0x00003435, - 2725: 0x00004F29, - 2726: 0x000202C0, - 2727: 0x00028EB3, - 2728: 0x00020275, - 2729: 0x00008ADA, - 2730: 0x0002020C, - 2731: 0x00004E98, - 2732: 0x000050CD, - 2733: 0x0000510D, - 2734: 0x00004FA2, - 2735: 0x00004F03, - 2736: 0x00024A0E, - 2737: 0x00023E8A, - 2738: 0x00004F42, - 2739: 0x0000502E, - 2740: 0x0000506C, - 2741: 0x00005081, - 2742: 0x00004FCC, - 2743: 0x00004FE5, - 2744: 0x00005058, - 2745: 0x000050FC, - 2746: 0x00005159, - 2747: 0x0000515B, - 2748: 0x0000515D, - 2749: 0x0000515E, - 2750: 0x00006E76, - 2751: 0x00023595, - 2752: 0x00023E39, - 2753: 0x00023EBF, - 2754: 0x00006D72, - 2755: 0x00021884, - 2756: 0x00023E89, - 2757: 0x000051A8, - 2758: 0x000051C3, - 2759: 0x000205E0, - 2760: 0x000044DD, - 2761: 0x000204A3, - 2762: 0x00020492, - 2763: 0x00020491, - 2764: 0x00008D7A, - 2765: 0x00028A9C, - 2766: 0x0002070E, - 2767: 0x00005259, - 2768: 0x000052A4, - 2769: 0x00020873, - 2770: 0x000052E1, - 2771: 0x0000936E, - 2772: 0x0000467A, - 2773: 0x0000718C, - 2774: 0x0002438C, - 2775: 0x00020C20, - 2776: 0x000249AC, - 2777: 0x000210E4, - 2778: 0x000069D1, - 2779: 0x00020E1D, - 2780: 0x00007479, - 2781: 0x00003EDE, - 2782: 0x00007499, - 2783: 0x00007414, - 2784: 0x00007456, - 2785: 0x00007398, - 2786: 0x00004B8E, - 2787: 0x00024ABC, - 2788: 0x0002408D, - 2789: 0x000053D0, - 2790: 0x00003584, - 2791: 0x0000720F, - 2792: 0x000240C9, - 2793: 0x000055B4, - 2794: 0x00020345, - 2795: 0x000054CD, - 2796: 0x00020BC6, - 2797: 0x0000571D, - 2798: 0x0000925D, - 2799: 0x000096F4, - 2800: 0x00009366, - 2801: 0x000057DD, - 2802: 0x0000578D, - 2803: 0x0000577F, - 2804: 0x0000363E, - 2805: 0x000058CB, - 2806: 0x00005A99, - 2807: 0x00028A46, - 2808: 0x000216FA, - 2809: 0x0002176F, - 2810: 0x00021710, - 2811: 0x00005A2C, - 2812: 0x000059B8, - 2813: 0x0000928F, - 2814: 0x00005A7E, - 2815: 0x00005ACF, - 2816: 0x00005A12, - 2817: 0x00025946, - 2818: 0x000219F3, - 2819: 0x00021861, - 2820: 0x00024295, - 2821: 0x000036F5, - 2822: 0x00006D05, - 2823: 0x00007443, - 2824: 0x00005A21, - 2825: 0x00025E83, - 2826: 0x00005A81, - 2827: 0x00028BD7, - 2828: 0x00020413, - 2829: 0x000093E0, - 2830: 0x0000748C, - 2831: 0x00021303, - 2832: 0x00007105, - 2833: 0x00004972, - 2834: 0x00009408, - 2835: 0x000289FB, - 2836: 0x000093BD, - 2837: 0x000037A0, - 2838: 0x00005C1E, - 2839: 0x00005C9E, - 2840: 0x00005E5E, - 2841: 0x00005E48, - 2842: 0x00021996, - 2843: 0x0002197C, - 2844: 0x00023AEE, - 2845: 0x00005ECD, - 2846: 0x00005B4F, - 2847: 0x00021903, - 2848: 0x00021904, - 2849: 0x00003701, - 2850: 0x000218A0, - 2851: 0x000036DD, - 2852: 0x000216FE, - 2853: 0x000036D3, - 2854: 0x0000812A, - 2855: 0x00028A47, - 2856: 0x00021DBA, - 2857: 0x00023472, - 2858: 0x000289A8, - 2859: 0x00005F0C, - 2860: 0x00005F0E, - 2861: 0x00021927, - 2862: 0x000217AB, - 2863: 0x00005A6B, - 2864: 0x0002173B, - 2865: 0x00005B44, - 2866: 0x00008614, - 2867: 0x000275FD, - 2868: 0x00008860, - 2869: 0x0000607E, - 2870: 0x00022860, - 2871: 0x0002262B, - 2872: 0x00005FDB, - 2873: 0x00003EB8, - 2874: 0x000225AF, - 2875: 0x000225BE, - 2876: 0x00029088, - 2877: 0x00026F73, - 2878: 0x000061C0, - 2879: 0x0002003E, - 2880: 0x00020046, - 2881: 0x0002261B, - 2882: 0x00006199, - 2883: 0x00006198, - 2884: 0x00006075, - 2885: 0x00022C9B, - 2886: 0x00022D07, - 2887: 0x000246D4, - 2888: 0x0002914D, - 2889: 0x00006471, - 2890: 0x00024665, - 2891: 0x00022B6A, - 2892: 0x00003A29, - 2893: 0x00022B22, - 2894: 0x00023450, - 2895: 0x000298EA, - 2896: 0x00022E78, - 2897: 0x00006337, - 2898: 0x0002A45B, - 2899: 0x000064B6, - 2900: 0x00006331, - 2901: 0x000063D1, - 2902: 0x000249E3, - 2903: 0x00022D67, - 2904: 0x000062A4, - 2905: 0x00022CA1, - 2906: 0x0000643B, - 2907: 0x0000656B, - 2908: 0x00006972, - 2909: 0x00003BF4, - 2910: 0x0002308E, - 2911: 0x000232AD, - 2912: 0x00024989, - 2913: 0x000232AB, - 2914: 0x0000550D, - 2915: 0x000232E0, - 2916: 0x000218D9, - 2917: 0x0002943F, - 2918: 0x000066CE, - 2919: 0x00023289, - 2920: 0x000231B3, - 2921: 0x00003AE0, - 2922: 0x00004190, - 2923: 0x00025584, - 2924: 0x00028B22, - 2925: 0x0002558F, - 2926: 0x000216FC, - 2927: 0x0002555B, - 2928: 0x00025425, - 2929: 0x000078EE, - 2930: 0x00023103, - 2931: 0x0002182A, - 2932: 0x00023234, - 2933: 0x00003464, - 2934: 0x0002320F, - 2935: 0x00023182, - 2936: 0x000242C9, - 2937: 0x0000668E, - 2938: 0x00026D24, - 2939: 0x0000666B, - 2940: 0x00004B93, - 2941: 0x00006630, - 2942: 0x00027870, - 2943: 0x00021DEB, - 2944: 0x00006663, - 2945: 0x000232D2, - 2946: 0x000232E1, - 2947: 0x0000661E, - 2948: 0x00025872, - 2949: 0x000038D1, - 2950: 0x0002383A, - 2951: 0x000237BC, - 2952: 0x00003B99, - 2953: 0x000237A2, - 2954: 0x000233FE, - 2955: 0x000074D0, - 2956: 0x00003B96, - 2957: 0x0000678F, - 2958: 0x0002462A, - 2959: 0x000068B6, - 2960: 0x0000681E, - 2961: 0x00003BC4, - 2962: 0x00006ABE, - 2963: 0x00003863, - 2964: 0x000237D5, - 2965: 0x00024487, - 2966: 0x00006A33, - 2967: 0x00006A52, - 2968: 0x00006AC9, - 2969: 0x00006B05, - 2970: 0x00021912, - 2971: 0x00006511, - 2972: 0x00006898, - 2973: 0x00006A4C, - 2974: 0x00003BD7, - 2975: 0x00006A7A, - 2976: 0x00006B57, - 2977: 0x00023FC0, - 2978: 0x00023C9A, - 2979: 0x000093A0, - 2980: 0x000092F2, - 2981: 0x00028BEA, - 2982: 0x00028ACB, - 2983: 0x00009289, - 2984: 0x0002801E, - 2985: 0x000289DC, - 2986: 0x00009467, - 2987: 0x00006DA5, - 2988: 0x00006F0B, - 2989: 0x000249EC, - 2990: 0x00006D67, - 2991: 0x00023F7F, - 2992: 0x00003D8F, - 2993: 0x00006E04, - 2994: 0x0002403C, - 2995: 0x00005A3D, - 2996: 0x00006E0A, - 2997: 0x00005847, - 2998: 0x00006D24, - 2999: 0x00007842, - 3000: 0x0000713B, - 3001: 0x0002431A, - 3002: 0x00024276, - 3003: 0x000070F1, - 3004: 0x00007250, - 3005: 0x00007287, - 3006: 0x00007294, - 3007: 0x0002478F, - 3008: 0x00024725, - 3009: 0x00005179, - 3010: 0x00024AA4, - 3011: 0x000205EB, - 3012: 0x0000747A, - 3013: 0x00023EF8, - 3014: 0x0002365F, - 3015: 0x00024A4A, - 3016: 0x00024917, - 3017: 0x00025FE1, - 3018: 0x00003F06, - 3019: 0x00003EB1, - 3020: 0x00024ADF, - 3021: 0x00028C23, - 3022: 0x00023F35, - 3023: 0x000060A7, - 3024: 0x00003EF3, - 3025: 0x000074CC, - 3026: 0x0000743C, - 3027: 0x00009387, - 3028: 0x00007437, - 3029: 0x0000449F, - 3030: 0x00026DEA, - 3031: 0x00004551, - 3032: 0x00007583, - 3033: 0x00003F63, - 3034: 0x00024CD9, - 3035: 0x00024D06, - 3036: 0x00003F58, - 3037: 0x00007555, - 3038: 0x00007673, - 3039: 0x0002A5C6, - 3040: 0x00003B19, - 3041: 0x00007468, - 3042: 0x00028ACC, - 3043: 0x000249AB, - 3044: 0x0002498E, - 3045: 0x00003AFB, - 3046: 0x00003DCD, - 3047: 0x00024A4E, - 3048: 0x00003EFF, - 3049: 0x000249C5, - 3050: 0x000248F3, - 3051: 0x000091FA, - 3052: 0x00005732, - 3053: 0x00009342, - 3054: 0x00028AE3, - 3055: 0x00021864, - 3056: 0x000050DF, - 3057: 0x00025221, - 3058: 0x000251E7, - 3059: 0x00007778, - 3060: 0x00023232, - 3061: 0x0000770E, - 3062: 0x0000770F, - 3063: 0x0000777B, - 3064: 0x00024697, - 3065: 0x00023781, - 3066: 0x00003A5E, - 3067: 0x000248F0, - 3068: 0x00007438, - 3069: 0x0000749B, - 3070: 0x00003EBF, - 3071: 0x00024ABA, - 3072: 0x00024AC7, - 3073: 0x000040C8, - 3074: 0x00024A96, - 3075: 0x000261AE, - 3076: 0x00009307, - 3077: 0x00025581, - 3078: 0x0000781E, - 3079: 0x0000788D, - 3080: 0x00007888, - 3081: 0x000078D2, - 3082: 0x000073D0, - 3083: 0x00007959, - 3084: 0x00027741, - 3085: 0x000256E3, - 3086: 0x0000410E, - 3087: 0x0000799B, - 3088: 0x00008496, - 3089: 0x000079A5, - 3090: 0x00006A2D, - 3091: 0x00023EFA, - 3092: 0x00007A3A, - 3093: 0x000079F4, - 3094: 0x0000416E, - 3095: 0x000216E6, - 3096: 0x00004132, - 3097: 0x00009235, - 3098: 0x000079F1, - 3099: 0x00020D4C, - 3100: 0x0002498C, - 3101: 0x00020299, - 3102: 0x00023DBA, - 3103: 0x0002176E, - 3104: 0x00003597, - 3105: 0x0000556B, - 3106: 0x00003570, - 3107: 0x000036AA, - 3108: 0x000201D4, - 3109: 0x00020C0D, - 3110: 0x00007AE2, - 3111: 0x00005A59, - 3112: 0x000226F5, - 3113: 0x00025AAF, - 3114: 0x00025A9C, - 3115: 0x00005A0D, - 3116: 0x0002025B, - 3117: 0x000078F0, - 3118: 0x00005A2A, - 3119: 0x00025BC6, - 3120: 0x00007AFE, - 3121: 0x000041F9, - 3122: 0x00007C5D, - 3123: 0x00007C6D, - 3124: 0x00004211, - 3125: 0x00025BB3, - 3126: 0x00025EBC, - 3127: 0x00025EA6, - 3128: 0x00007CCD, - 3129: 0x000249F9, - 3130: 0x000217B0, - 3131: 0x00007C8E, - 3132: 0x00007C7C, - 3133: 0x00007CAE, - 3134: 0x00006AB2, - 3135: 0x00007DDC, - 3136: 0x00007E07, - 3137: 0x00007DD3, - 3138: 0x00007F4E, - 3139: 0x00026261, - 3140: 0x0002615C, - 3141: 0x00027B48, - 3142: 0x00007D97, - 3143: 0x00025E82, - 3144: 0x0000426A, - 3145: 0x00026B75, - 3146: 0x00020916, - 3147: 0x000067D6, - 3148: 0x0002004E, - 3149: 0x000235CF, - 3150: 0x000057C4, - 3151: 0x00026412, - 3152: 0x000263F8, - 3153: 0x00024962, - 3154: 0x00007FDD, - 3155: 0x00007B27, - 3156: 0x0002082C, - 3157: 0x00025AE9, - 3158: 0x00025D43, - 3159: 0x00007B0C, - 3160: 0x00025E0E, - 3161: 0x000099E6, - 3162: 0x00008645, - 3163: 0x00009A63, - 3164: 0x00006A1C, - 3165: 0x0002343F, - 3166: 0x000039E2, - 3167: 0x000249F7, - 3168: 0x000265AD, - 3169: 0x00009A1F, - 3170: 0x000265A0, - 3171: 0x00008480, - 3172: 0x00027127, - 3173: 0x00026CD1, - 3174: 0x000044EA, - 3175: 0x00008137, - 3176: 0x00004402, - 3177: 0x000080C6, - 3178: 0x00008109, - 3179: 0x00008142, - 3180: 0x000267B4, - 3181: 0x000098C3, - 3182: 0x00026A42, - 3183: 0x00008262, - 3184: 0x00008265, - 3185: 0x00026A51, - 3186: 0x00008453, - 3187: 0x00026DA7, - 3188: 0x00008610, - 3189: 0x0002721B, - 3190: 0x00005A86, - 3191: 0x0000417F, - 3192: 0x00021840, - 3193: 0x00005B2B, - 3194: 0x000218A1, - 3195: 0x00005AE4, - 3196: 0x000218D8, - 3197: 0x000086A0, - 3198: 0x0002F9BC, - 3199: 0x00023D8F, - 3200: 0x0000882D, - 3201: 0x00027422, - 3202: 0x00005A02, - 3203: 0x0000886E, - 3204: 0x00004F45, - 3205: 0x00008887, - 3206: 0x000088BF, - 3207: 0x000088E6, - 3208: 0x00008965, - 3209: 0x0000894D, - 3210: 0x00025683, - 3211: 0x00008954, - 3212: 0x00027785, - 3213: 0x00027784, - 3214: 0x00028BF5, - 3215: 0x00028BD9, - 3216: 0x00028B9C, - 3217: 0x000289F9, - 3218: 0x00003EAD, - 3219: 0x000084A3, - 3220: 0x000046F5, - 3221: 0x000046CF, - 3222: 0x000037F2, - 3223: 0x00008A3D, - 3224: 0x00008A1C, - 3225: 0x00029448, - 3226: 0x00005F4D, - 3227: 0x0000922B, - 3228: 0x00024284, - 3229: 0x000065D4, - 3230: 0x00007129, - 3231: 0x000070C4, - 3232: 0x00021845, - 3233: 0x00009D6D, - 3234: 0x00008C9F, - 3235: 0x00008CE9, - 3236: 0x00027DDC, - 3237: 0x0000599A, - 3238: 0x000077C3, - 3239: 0x000059F0, - 3240: 0x0000436E, - 3241: 0x000036D4, - 3242: 0x00008E2A, - 3243: 0x00008EA7, - 3244: 0x00024C09, - 3245: 0x00008F30, - 3246: 0x00008F4A, - 3247: 0x000042F4, - 3248: 0x00006C58, - 3249: 0x00006FBB, - 3250: 0x00022321, - 3251: 0x0000489B, - 3252: 0x00006F79, - 3253: 0x00006E8B, - 3254: 0x000217DA, - 3255: 0x00009BE9, - 3256: 0x000036B5, - 3257: 0x0002492F, - 3258: 0x000090BB, - 3259: 0x00009097, - 3260: 0x00005571, - 3261: 0x00004906, - 3262: 0x000091BB, - 3263: 0x00009404, - 3264: 0x00028A4B, - 3265: 0x00004062, - 3266: 0x00028AFC, - 3267: 0x00009427, - 3268: 0x00028C1D, - 3269: 0x00028C3B, - 3270: 0x000084E5, - 3271: 0x00008A2B, - 3272: 0x00009599, - 3273: 0x000095A7, - 3274: 0x00009597, - 3275: 0x00009596, - 3276: 0x00028D34, - 3277: 0x00007445, - 3278: 0x00003EC2, - 3279: 0x000248FF, - 3280: 0x00024A42, - 3281: 0x000243EA, - 3282: 0x00003EE7, - 3283: 0x00023225, - 3284: 0x0000968F, - 3285: 0x00028EE7, - 3286: 0x00028E66, - 3287: 0x00028E65, - 3288: 0x00003ECC, - 3289: 0x000249ED, - 3290: 0x00024A78, - 3291: 0x00023FEE, - 3292: 0x00007412, - 3293: 0x0000746B, - 3294: 0x00003EFC, - 3295: 0x00009741, - 3296: 0x000290B0, - 3297: 0x00006847, - 3298: 0x00004A1D, - 3299: 0x00029093, - 3300: 0x000257DF, - 3301: 0x0000975D, - 3302: 0x00009368, - 3303: 0x00028989, - 3304: 0x00028C26, - 3305: 0x00028B2F, - 3306: 0x000263BE, - 3307: 0x000092BA, - 3308: 0x00005B11, - 3309: 0x00008B69, - 3310: 0x0000493C, - 3311: 0x000073F9, - 3312: 0x0002421B, - 3313: 0x0000979B, - 3314: 0x00009771, - 3315: 0x00009938, - 3316: 0x00020F26, - 3317: 0x00005DC1, - 3318: 0x00028BC5, - 3319: 0x00024AB2, - 3320: 0x0000981F, - 3321: 0x000294DA, - 3322: 0x000092F6, - 3323: 0x000295D7, - 3324: 0x000091E5, - 3325: 0x000044C0, - 3326: 0x00028B50, - 3327: 0x00024A67, - 3328: 0x00028B64, - 3329: 0x000098DC, - 3330: 0x00028A45, - 3331: 0x00003F00, - 3332: 0x0000922A, - 3333: 0x00004925, - 3334: 0x00008414, - 3335: 0x0000993B, - 3336: 0x0000994D, - 3337: 0x00027B06, - 3338: 0x00003DFD, - 3339: 0x0000999B, - 3340: 0x00004B6F, - 3341: 0x000099AA, - 3342: 0x00009A5C, - 3343: 0x00028B65, - 3344: 0x000258C8, - 3345: 0x00006A8F, - 3346: 0x00009A21, - 3347: 0x00005AFE, - 3348: 0x00009A2F, - 3349: 0x000298F1, - 3350: 0x00004B90, - 3351: 0x00029948, - 3352: 0x000099BC, - 3353: 0x00004BBD, - 3354: 0x00004B97, - 3355: 0x0000937D, - 3356: 0x00005872, - 3357: 0x00021302, - 3358: 0x00005822, - 3359: 0x000249B8, - 3360: 0x000214E8, - 3361: 0x00007844, - 3362: 0x0002271F, - 3363: 0x00023DB8, - 3364: 0x000068C5, - 3365: 0x00003D7D, - 3366: 0x00009458, - 3367: 0x00003927, - 3368: 0x00006150, - 3369: 0x00022781, - 3370: 0x0002296B, - 3371: 0x00006107, - 3372: 0x00009C4F, - 3373: 0x00009C53, - 3374: 0x00009C7B, - 3375: 0x00009C35, - 3376: 0x00009C10, - 3377: 0x00009B7F, - 3378: 0x00009BCF, - 3379: 0x00029E2D, - 3380: 0x00009B9F, - 3381: 0x0002A1F5, - 3382: 0x0002A0FE, - 3383: 0x00009D21, - 3384: 0x00004CAE, - 3385: 0x00024104, - 3386: 0x00009E18, - 3387: 0x00004CB0, - 3388: 0x00009D0C, - 3389: 0x0002A1B4, - 3390: 0x0002A0ED, - 3391: 0x0002A0F3, - 3392: 0x0002992F, - 3393: 0x00009DA5, - 3394: 0x000084BD, - 3395: 0x00026E12, - 3396: 0x00026FDF, - 3397: 0x00026B82, - 3398: 0x000085FC, - 3399: 0x00004533, - 3400: 0x00026DA4, - 3401: 0x00026E84, - 3402: 0x00026DF0, - 3403: 0x00008420, - 3404: 0x000085EE, - 3405: 0x00026E00, - 3406: 0x000237D7, - 3407: 0x00026064, - 3408: 0x000079E2, - 3409: 0x0002359C, - 3410: 0x00023640, - 3411: 0x0000492D, - 3412: 0x000249DE, - 3413: 0x00003D62, - 3414: 0x000093DB, - 3415: 0x000092BE, - 3416: 0x00009348, - 3417: 0x000202BF, - 3418: 0x000078B9, - 3419: 0x00009277, - 3420: 0x0000944D, - 3421: 0x00004FE4, - 3422: 0x00003440, - 3423: 0x00009064, - 3424: 0x0002555D, - 3425: 0x0000783D, - 3426: 0x00007854, - 3427: 0x000078B6, - 3428: 0x0000784B, - 3429: 0x00021757, - 3430: 0x000231C9, - 3431: 0x00024941, - 3432: 0x0000369A, - 3433: 0x00004F72, - 3434: 0x00006FDA, - 3435: 0x00006FD9, - 3436: 0x0000701E, - 3437: 0x0000701E, - 3438: 0x00005414, - 3439: 0x000241B5, - 3440: 0x000057BB, - 3441: 0x000058F3, - 3442: 0x0000578A, - 3443: 0x00009D16, - 3444: 0x000057D7, - 3445: 0x00007134, - 3446: 0x000034AF, - 3447: 0x000241AC, - 3448: 0x000071EB, - 3449: 0x00026C40, - 3450: 0x00024F97, - 3451: 0x00005B28, - 3452: 0x000217B5, - 3453: 0x00028A49, - 3454: 0x0000610C, - 3455: 0x00005ACE, - 3456: 0x00005A0B, - 3457: 0x000042BC, - 3458: 0x00024488, - 3459: 0x0000372C, - 3460: 0x00004B7B, - 3461: 0x000289FC, - 3462: 0x000093BB, - 3463: 0x000093B8, - 3464: 0x000218D6, - 3465: 0x00020F1D, - 3466: 0x00008472, - 3467: 0x00026CC0, - 3468: 0x00021413, - 3469: 0x000242FA, - 3470: 0x00022C26, - 3471: 0x000243C1, - 3472: 0x00005994, - 3473: 0x00023DB7, - 3474: 0x00026741, - 3475: 0x00007DA8, - 3476: 0x0002615B, - 3477: 0x000260A4, - 3478: 0x000249B9, - 3479: 0x0002498B, - 3480: 0x000289FA, - 3481: 0x000092E5, - 3482: 0x000073E2, - 3483: 0x00003EE9, - 3484: 0x000074B4, - 3485: 0x00028B63, - 3486: 0x0002189F, - 3487: 0x00003EE1, - 3488: 0x00024AB3, - 3489: 0x00006AD8, - 3490: 0x000073F3, - 3491: 0x000073FB, - 3492: 0x00003ED6, - 3493: 0x00024A3E, - 3494: 0x00024A94, - 3495: 0x000217D9, - 3496: 0x00024A66, - 3497: 0x000203A7, - 3498: 0x00021424, - 3499: 0x000249E5, - 3500: 0x00007448, - 3501: 0x00024916, - 3502: 0x000070A5, - 3503: 0x00024976, - 3504: 0x00009284, - 3505: 0x000073E6, - 3506: 0x0000935F, - 3507: 0x000204FE, - 3508: 0x00009331, - 3509: 0x00028ACE, - 3510: 0x00028A16, - 3511: 0x00009386, - 3512: 0x00028BE7, - 3513: 0x000255D5, - 3514: 0x00004935, - 3515: 0x00028A82, - 3516: 0x0000716B, - 3517: 0x00024943, - 3518: 0x00020CFF, - 3519: 0x000056A4, - 3520: 0x0002061A, - 3521: 0x00020BEB, - 3522: 0x00020CB8, - 3523: 0x00005502, - 3524: 0x000079C4, - 3525: 0x000217FA, - 3526: 0x00007DFE, - 3527: 0x000216C2, - 3528: 0x00024A50, - 3529: 0x00021852, - 3530: 0x0000452E, - 3531: 0x00009401, - 3532: 0x0000370A, - 3533: 0x00028AC0, - 3534: 0x000249AD, - 3535: 0x000059B0, - 3536: 0x000218BF, - 3537: 0x00021883, - 3538: 0x00027484, - 3539: 0x00005AA1, - 3540: 0x000036E2, - 3541: 0x00023D5B, - 3542: 0x000036B0, - 3543: 0x0000925F, - 3544: 0x00005A79, - 3545: 0x00028A81, - 3546: 0x00021862, - 3547: 0x00009374, - 3548: 0x00003CCD, - 3549: 0x00020AB4, - 3550: 0x00004A96, - 3551: 0x0000398A, - 3552: 0x000050F4, - 3553: 0x00003D69, - 3554: 0x00003D4C, - 3555: 0x0002139C, - 3556: 0x00007175, - 3557: 0x000042FB, - 3558: 0x00028218, - 3559: 0x00006E0F, - 3560: 0x000290E4, - 3561: 0x000044EB, - 3562: 0x00006D57, - 3563: 0x00027E4F, - 3564: 0x00007067, - 3565: 0x00006CAF, - 3566: 0x00003CD6, - 3567: 0x00023FED, - 3568: 0x00023E2D, - 3569: 0x00006E02, - 3570: 0x00006F0C, - 3571: 0x00003D6F, - 3572: 0x000203F5, - 3573: 0x00007551, - 3574: 0x000036BC, - 3575: 0x000034C8, - 3576: 0x00004680, - 3577: 0x00003EDA, - 3578: 0x00004871, - 3579: 0x000059C4, - 3580: 0x0000926E, - 3581: 0x0000493E, - 3582: 0x00008F41, - 3583: 0x00028C1C, - 3584: 0x00026BC0, - 3585: 0x00005812, - 3586: 0x000057C8, - 3587: 0x000036D6, - 3588: 0x00021452, - 3589: 0x000070FE, - 3590: 0x00024362, - 3591: 0x00024A71, - 3592: 0x00022FE3, - 3593: 0x000212B0, - 3594: 0x000223BD, - 3595: 0x000068B9, - 3596: 0x00006967, - 3597: 0x00021398, - 3598: 0x000234E5, - 3599: 0x00027BF4, - 3600: 0x000236DF, - 3601: 0x00028A83, - 3602: 0x000237D6, - 3603: 0x000233FA, - 3604: 0x00024C9F, - 3605: 0x00006A1A, - 3606: 0x000236AD, - 3607: 0x00026CB7, - 3608: 0x0000843E, - 3609: 0x000044DF, - 3610: 0x000044CE, - 3611: 0x00026D26, - 3612: 0x00026D51, - 3613: 0x00026C82, - 3614: 0x00026FDE, - 3615: 0x00006F17, - 3616: 0x00027109, - 3617: 0x0000833D, - 3618: 0x0002173A, - 3619: 0x000083ED, - 3620: 0x00026C80, - 3621: 0x00027053, - 3622: 0x000217DB, - 3623: 0x00005989, - 3624: 0x00005A82, - 3625: 0x000217B3, - 3626: 0x00005A61, - 3627: 0x00005A71, - 3628: 0x00021905, - 3629: 0x000241FC, - 3630: 0x0000372D, - 3631: 0x000059EF, - 3632: 0x0002173C, - 3633: 0x000036C7, - 3634: 0x0000718E, - 3635: 0x00009390, - 3636: 0x0000669A, - 3637: 0x000242A5, - 3638: 0x00005A6E, - 3639: 0x00005A2B, - 3640: 0x00024293, - 3641: 0x00006A2B, - 3642: 0x00023EF9, - 3643: 0x00027736, - 3644: 0x0002445B, - 3645: 0x000242CA, - 3646: 0x0000711D, - 3647: 0x00024259, - 3648: 0x000289E1, - 3649: 0x00004FB0, - 3650: 0x00026D28, - 3651: 0x00005CC2, - 3652: 0x000244CE, - 3653: 0x00027E4D, - 3654: 0x000243BD, - 3655: 0x00006A0C, - 3656: 0x00024256, - 3657: 0x00021304, - 3658: 0x000070A6, - 3659: 0x00007133, - 3660: 0x000243E9, - 3661: 0x00003DA5, - 3662: 0x00006CDF, - 3663: 0x0002F825, - 3664: 0x00024A4F, - 3665: 0x00007E65, - 3666: 0x000059EB, - 3667: 0x00005D2F, - 3668: 0x00003DF3, - 3669: 0x00005F5C, - 3670: 0x00024A5D, - 3671: 0x000217DF, - 3672: 0x00007DA4, - 3673: 0x00008426, - 3674: 0x00005485, - 3675: 0x00023AFA, - 3676: 0x00023300, - 3677: 0x00020214, - 3678: 0x0000577E, - 3679: 0x000208D5, - 3680: 0x00020619, - 3681: 0x00003FE5, - 3682: 0x00021F9E, - 3683: 0x0002A2B6, - 3684: 0x00007003, - 3685: 0x0002915B, - 3686: 0x00005D70, - 3687: 0x0000738F, - 3688: 0x00007CD3, - 3689: 0x00028A59, - 3690: 0x00029420, - 3691: 0x00004FC8, - 3692: 0x00007FE7, - 3693: 0x000072CD, - 3694: 0x00007310, - 3695: 0x00027AF4, - 3696: 0x00007338, - 3697: 0x00007339, - 3698: 0x000256F6, - 3699: 0x00007341, - 3700: 0x00007348, - 3701: 0x00003EA9, - 3702: 0x00027B18, - 3703: 0x0000906C, - 3704: 0x000071F5, - 3705: 0x000248F2, - 3706: 0x000073E1, - 3707: 0x000081F6, - 3708: 0x00003ECA, - 3709: 0x0000770C, - 3710: 0x00003ED1, - 3711: 0x00006CA2, - 3712: 0x000056FD, - 3713: 0x00007419, - 3714: 0x0000741E, - 3715: 0x0000741F, - 3716: 0x00003EE2, - 3717: 0x00003EF0, - 3718: 0x00003EF4, - 3719: 0x00003EFA, - 3720: 0x000074D3, - 3721: 0x00003F0E, - 3722: 0x00003F53, - 3723: 0x00007542, - 3724: 0x0000756D, - 3725: 0x00007572, - 3726: 0x0000758D, - 3727: 0x00003F7C, - 3728: 0x000075C8, - 3729: 0x000075DC, - 3730: 0x00003FC0, - 3731: 0x0000764D, - 3732: 0x00003FD7, - 3733: 0x00007674, - 3734: 0x00003FDC, - 3735: 0x0000767A, - 3736: 0x00024F5C, - 3737: 0x00007188, - 3738: 0x00005623, - 3739: 0x00008980, - 3740: 0x00005869, - 3741: 0x0000401D, - 3742: 0x00007743, - 3743: 0x00004039, - 3744: 0x00006761, - 3745: 0x00004045, - 3746: 0x000035DB, - 3747: 0x00007798, - 3748: 0x0000406A, - 3749: 0x0000406F, - 3750: 0x00005C5E, - 3751: 0x000077BE, - 3752: 0x000077CB, - 3753: 0x000058F2, - 3754: 0x00007818, - 3755: 0x000070B9, - 3756: 0x0000781C, - 3757: 0x000040A8, - 3758: 0x00007839, - 3759: 0x00007847, - 3760: 0x00007851, - 3761: 0x00007866, - 3762: 0x00008448, - 3763: 0x00025535, - 3764: 0x00007933, - 3765: 0x00006803, - 3766: 0x00007932, - 3767: 0x00004103, - 3768: 0x00004109, - 3769: 0x00007991, - 3770: 0x00007999, - 3771: 0x00008FBB, - 3772: 0x00007A06, - 3773: 0x00008FBC, - 3774: 0x00004167, - 3775: 0x00007A91, - 3776: 0x000041B2, - 3777: 0x00007ABC, - 3778: 0x00008279, - 3779: 0x000041C4, - 3780: 0x00007ACF, - 3781: 0x00007ADB, - 3782: 0x000041CF, - 3783: 0x00004E21, - 3784: 0x00007B62, - 3785: 0x00007B6C, - 3786: 0x00007B7B, - 3787: 0x00007C12, - 3788: 0x00007C1B, - 3789: 0x00004260, - 3790: 0x0000427A, - 3791: 0x00007C7B, - 3792: 0x00007C9C, - 3793: 0x0000428C, - 3794: 0x00007CB8, - 3795: 0x00004294, - 3796: 0x00007CED, - 3797: 0x00008F93, - 3798: 0x000070C0, - 3799: 0x00020CCF, - 3800: 0x00007DCF, - 3801: 0x00007DD4, - 3802: 0x00007DD0, - 3803: 0x00007DFD, - 3804: 0x00007FAE, - 3805: 0x00007FB4, - 3806: 0x0000729F, - 3807: 0x00004397, - 3808: 0x00008020, - 3809: 0x00008025, - 3810: 0x00007B39, - 3811: 0x0000802E, - 3812: 0x00008031, - 3813: 0x00008054, - 3814: 0x00003DCC, - 3815: 0x000057B4, - 3816: 0x000070A0, - 3817: 0x000080B7, - 3818: 0x000080E9, - 3819: 0x000043ED, - 3820: 0x0000810C, - 3821: 0x0000732A, - 3822: 0x0000810E, - 3823: 0x00008112, - 3824: 0x00007560, - 3825: 0x00008114, - 3826: 0x00004401, - 3827: 0x00003B39, - 3828: 0x00008156, - 3829: 0x00008159, - 3830: 0x0000815A, - 3831: 0x00004413, - 3832: 0x0000583A, - 3833: 0x0000817C, - 3834: 0x00008184, - 3835: 0x00004425, - 3836: 0x00008193, - 3837: 0x0000442D, - 3838: 0x000081A5, - 3839: 0x000057EF, - 3840: 0x000081C1, - 3841: 0x000081E4, - 3842: 0x00008254, - 3843: 0x0000448F, - 3844: 0x000082A6, - 3845: 0x00008276, - 3846: 0x000082CA, - 3847: 0x000082D8, - 3848: 0x000082FF, - 3849: 0x000044B0, - 3850: 0x00008357, - 3851: 0x00009669, - 3852: 0x0000698A, - 3853: 0x00008405, - 3854: 0x000070F5, - 3855: 0x00008464, - 3856: 0x000060E3, - 3857: 0x00008488, - 3858: 0x00004504, - 3859: 0x000084BE, - 3860: 0x000084E1, - 3861: 0x000084F8, - 3862: 0x00008510, - 3863: 0x00008538, - 3864: 0x00008552, - 3865: 0x0000453B, - 3866: 0x0000856F, - 3867: 0x00008570, - 3868: 0x000085E0, - 3869: 0x00004577, - 3870: 0x00008672, - 3871: 0x00008692, - 3872: 0x000086B2, - 3873: 0x000086EF, - 3874: 0x00009645, - 3875: 0x0000878B, - 3876: 0x00004606, - 3877: 0x00004617, - 3878: 0x000088AE, - 3879: 0x000088FF, - 3880: 0x00008924, - 3881: 0x00008947, - 3882: 0x00008991, - 3883: 0x00027967, - 3884: 0x00008A29, - 3885: 0x00008A38, - 3886: 0x00008A94, - 3887: 0x00008AB4, - 3888: 0x00008C51, - 3889: 0x00008CD4, - 3890: 0x00008CF2, - 3891: 0x00008D1C, - 3892: 0x00004798, - 3893: 0x0000585F, - 3894: 0x00008DC3, - 3895: 0x000047ED, - 3896: 0x00004EEE, - 3897: 0x00008E3A, - 3898: 0x000055D8, - 3899: 0x00005754, - 3900: 0x00008E71, - 3901: 0x000055F5, - 3902: 0x00008EB0, - 3903: 0x00004837, - 3904: 0x00008ECE, - 3905: 0x00008EE2, - 3906: 0x00008EE4, - 3907: 0x00008EED, - 3908: 0x00008EF2, - 3909: 0x00008FB7, - 3910: 0x00008FC1, - 3911: 0x00008FCA, - 3912: 0x00008FCC, - 3913: 0x00009033, - 3914: 0x000099C4, - 3915: 0x000048AD, - 3916: 0x000098E0, - 3917: 0x00009213, - 3918: 0x0000491E, - 3919: 0x00009228, - 3920: 0x00009258, - 3921: 0x0000926B, - 3922: 0x000092B1, - 3923: 0x000092AE, - 3924: 0x000092BF, - 3925: 0x000092E3, - 3926: 0x000092EB, - 3927: 0x000092F3, - 3928: 0x000092F4, - 3929: 0x000092FD, - 3930: 0x00009343, - 3931: 0x00009384, - 3932: 0x000093AD, - 3933: 0x00004945, - 3934: 0x00004951, - 3935: 0x00009EBF, - 3936: 0x00009417, - 3937: 0x00005301, - 3938: 0x0000941D, - 3939: 0x0000942D, - 3940: 0x0000943E, - 3941: 0x0000496A, - 3942: 0x00009454, - 3943: 0x00009479, - 3944: 0x0000952D, - 3945: 0x000095A2, - 3946: 0x000049A7, - 3947: 0x000095F4, - 3948: 0x00009633, - 3949: 0x000049E5, - 3950: 0x000067A0, - 3951: 0x00004A24, - 3952: 0x00009740, - 3953: 0x00004A35, - 3954: 0x000097B2, - 3955: 0x000097C2, - 3956: 0x00005654, - 3957: 0x00004AE4, - 3958: 0x000060E8, - 3959: 0x000098B9, - 3960: 0x00004B19, - 3961: 0x000098F1, - 3962: 0x00005844, - 3963: 0x0000990E, - 3964: 0x00009919, - 3965: 0x000051B4, - 3966: 0x0000991C, - 3967: 0x00009937, - 3968: 0x00009942, - 3969: 0x0000995D, - 3970: 0x00009962, - 3971: 0x00004B70, - 3972: 0x000099C5, - 3973: 0x00004B9D, - 3974: 0x00009A3C, - 3975: 0x00009B0F, - 3976: 0x00007A83, - 3977: 0x00009B69, - 3978: 0x00009B81, - 3979: 0x00009BDD, - 3980: 0x00009BF1, - 3981: 0x00009BF4, - 3982: 0x00004C6D, - 3983: 0x00009C20, - 3984: 0x0000376F, - 3985: 0x00021BC2, - 3986: 0x00009D49, - 3987: 0x00009C3A, - 3988: 0x00009EFE, - 3989: 0x00005650, - 3990: 0x00009D93, - 3991: 0x00009DBD, - 3992: 0x00009DC0, - 3993: 0x00009DFC, - 3994: 0x000094F6, - 3995: 0x00008FB6, - 3996: 0x00009E7B, - 3997: 0x00009EAC, - 3998: 0x00009EB1, - 3999: 0x00009EBD, - 4000: 0x00009EC6, - 4001: 0x000094DC, - 4002: 0x00009EE2, - 4003: 0x00009EF1, - 4004: 0x00009EF8, - 4005: 0x00007AC8, - 4006: 0x00009F44, - 4007: 0x00020094, - 4008: 0x000202B7, - 4009: 0x000203A0, - 4010: 0x0000691A, - 4011: 0x000094C3, - 4012: 0x000059AC, - 4013: 0x000204D7, - 4014: 0x00005840, - 4015: 0x000094C1, - 4016: 0x000037B9, - 4017: 0x000205D5, - 4018: 0x00020615, - 4019: 0x00020676, - 4020: 0x000216BA, - 4021: 0x00005757, - 4022: 0x00007173, - 4023: 0x00020AC2, - 4024: 0x00020ACD, - 4025: 0x00020BBF, - 4026: 0x0000546A, - 4027: 0x0002F83B, - 4028: 0x00020BCB, - 4029: 0x0000549E, - 4030: 0x00020BFB, - 4031: 0x00020C3B, - 4032: 0x00020C53, - 4033: 0x00020C65, - 4034: 0x00020C7C, - 4035: 0x000060E7, - 4036: 0x00020C8D, - 4037: 0x0000567A, - 4038: 0x00020CB5, - 4039: 0x00020CDD, - 4040: 0x00020CED, - 4041: 0x00020D6F, - 4042: 0x00020DB2, - 4043: 0x00020DC8, - 4044: 0x00006955, - 4045: 0x00009C2F, - 4046: 0x000087A5, - 4047: 0x00020E04, - 4048: 0x00020E0E, - 4049: 0x00020ED7, - 4050: 0x00020F90, - 4051: 0x00020F2D, - 4052: 0x00020E73, - 4053: 0x00005C20, - 4054: 0x00020FBC, - 4055: 0x00005E0B, - 4056: 0x0002105C, - 4057: 0x0002104F, - 4058: 0x00021076, - 4059: 0x0000671E, - 4060: 0x0002107B, - 4061: 0x00021088, - 4062: 0x00021096, - 4063: 0x00003647, - 4064: 0x000210BF, - 4065: 0x000210D3, - 4066: 0x0002112F, - 4067: 0x0002113B, - 4068: 0x00005364, - 4069: 0x000084AD, - 4070: 0x000212E3, - 4071: 0x00021375, - 4072: 0x00021336, - 4073: 0x00008B81, - 4074: 0x00021577, - 4075: 0x00021619, - 4076: 0x000217C3, - 4077: 0x000217C7, - 4078: 0x00004E78, - 4079: 0x000070BB, - 4080: 0x0002182D, - 4081: 0x0002196A, - 4082: 0x00021A2D, - 4083: 0x00021A45, - 4084: 0x00021C2A, - 4085: 0x00021C70, - 4086: 0x00021CAC, - 4087: 0x00021EC8, - 4088: 0x000062C3, - 4089: 0x00021ED5, - 4090: 0x00021F15, - 4091: 0x00007198, - 4092: 0x00006855, - 4093: 0x00022045, - 4094: 0x000069E9, - 4095: 0x000036C8, - 4096: 0x0002227C, - 4097: 0x000223D7, - 4098: 0x000223FA, - 4099: 0x0002272A, - 4100: 0x00022871, - 4101: 0x0002294F, - 4102: 0x000082FD, - 4103: 0x00022967, - 4104: 0x00022993, - 4105: 0x00022AD5, - 4106: 0x000089A5, - 4107: 0x00022AE8, - 4108: 0x00008FA0, - 4109: 0x00022B0E, - 4110: 0x000097B8, - 4111: 0x00022B3F, - 4112: 0x00009847, - 4113: 0x00009ABD, - 4114: 0x00022C4C, - 4116: 0x00022C88, - 4117: 0x00022CB7, - 4118: 0x00025BE8, - 4119: 0x00022D08, - 4120: 0x00022D12, - 4121: 0x00022DB7, - 4122: 0x00022D95, - 4123: 0x00022E42, - 4124: 0x00022F74, - 4125: 0x00022FCC, - 4126: 0x00023033, - 4127: 0x00023066, - 4128: 0x0002331F, - 4129: 0x000233DE, - 4130: 0x00005FB1, - 4131: 0x00006648, - 4132: 0x000066BF, - 4133: 0x00027A79, - 4134: 0x00023567, - 4135: 0x000235F3, - 4136: 0x00007201, - 4137: 0x000249BA, - 4138: 0x000077D7, - 4139: 0x0002361A, - 4140: 0x00023716, - 4141: 0x00007E87, - 4142: 0x00020346, - 4143: 0x000058B5, - 4144: 0x0000670E, - 4145: 0x00006918, - 4146: 0x00023AA7, - 4147: 0x00027657, - 4148: 0x00025FE2, - 4149: 0x00023E11, - 4150: 0x00023EB9, - 4151: 0x000275FE, - 4152: 0x0002209A, - 4153: 0x000048D0, - 4154: 0x00004AB8, - 4155: 0x00024119, - 4156: 0x00028A9A, - 4157: 0x000242EE, - 4158: 0x0002430D, - 4159: 0x0002403B, - 4160: 0x00024334, - 4161: 0x00024396, - 4162: 0x00024A45, - 4163: 0x000205CA, - 4164: 0x000051D2, - 4165: 0x00020611, - 4166: 0x0000599F, - 4167: 0x00021EA8, - 4168: 0x00003BBE, - 4169: 0x00023CFF, - 4170: 0x00024404, - 4171: 0x000244D6, - 4172: 0x00005788, - 4173: 0x00024674, - 4174: 0x0000399B, - 4175: 0x0002472F, - 4176: 0x000285E8, - 4177: 0x000299C9, - 4178: 0x00003762, - 4179: 0x000221C3, - 4180: 0x00008B5E, - 4181: 0x00028B4E, - 4182: 0x000099D6, - 4183: 0x00024812, - 4184: 0x000248FB, - 4185: 0x00024A15, - 4186: 0x00007209, - 4187: 0x00024AC0, - 4188: 0x00020C78, - 4189: 0x00005965, - 4190: 0x00024EA5, - 4191: 0x00024F86, - 4192: 0x00020779, - 4193: 0x00008EDA, - 4194: 0x0002502C, - 4195: 0x0000528F, - 4196: 0x0000573F, - 4197: 0x00007171, - 4198: 0x00025299, - 4199: 0x00025419, - 4200: 0x00023F4A, - 4201: 0x00024AA7, - 4202: 0x000055BC, - 4203: 0x00025446, - 4204: 0x0002546E, - 4205: 0x00026B52, - 4206: 0x000091D4, - 4207: 0x00003473, - 4208: 0x0002553F, - 4209: 0x00027632, - 4210: 0x0002555E, - 4211: 0x00004718, - 4212: 0x00025562, - 4213: 0x00025566, - 4214: 0x000257C7, - 4215: 0x0002493F, - 4216: 0x0002585D, - 4217: 0x00005066, - 4218: 0x000034FB, - 4219: 0x000233CC, - 4220: 0x000060DE, - 4221: 0x00025903, - 4222: 0x0000477C, - 4223: 0x00028948, - 4224: 0x00025AAE, - 4225: 0x00025B89, - 4226: 0x00025C06, - 4227: 0x00021D90, - 4228: 0x000057A1, - 4229: 0x00007151, - 4230: 0x00006FB6, - 4231: 0x00026102, - 4232: 0x00027C12, - 4233: 0x00009056, - 4234: 0x000261B2, - 4235: 0x00024F9A, - 4236: 0x00008B62, - 4237: 0x00026402, - 4238: 0x0002644A, - 4239: 0x00005D5B, - 4240: 0x00026BF7, - 4241: 0x00008F36, - 4242: 0x00026484, - 4243: 0x0002191C, - 4244: 0x00008AEA, - 4245: 0x000249F6, - 4246: 0x00026488, - 4247: 0x00023FEF, - 4248: 0x00026512, - 4249: 0x00004BC0, - 4250: 0x000265BF, - 4251: 0x000266B5, - 4252: 0x0002271B, - 4253: 0x00009465, - 4254: 0x000257E1, - 4255: 0x00006195, - 4256: 0x00005A27, - 4257: 0x0002F8CD, - 4258: 0x00004FBB, - 4259: 0x000056B9, - 4260: 0x00024521, - 4261: 0x000266FC, - 4262: 0x00004E6A, - 4263: 0x00024934, - 4264: 0x00009656, - 4265: 0x00006D8F, - 4266: 0x00026CBD, - 4267: 0x00003618, - 4268: 0x00008977, - 4269: 0x00026799, - 4270: 0x0002686E, - 4271: 0x00026411, - 4272: 0x0002685E, - 4273: 0x000071DF, - 4274: 0x000268C7, - 4275: 0x00007B42, - 4276: 0x000290C0, - 4277: 0x00020A11, - 4278: 0x00026926, - 4279: 0x00009104, - 4280: 0x00026939, - 4281: 0x00007A45, - 4282: 0x00009DF0, - 4283: 0x000269FA, - 4284: 0x00009A26, - 4285: 0x00026A2D, - 4286: 0x0000365F, - 4287: 0x00026469, - 4288: 0x00020021, - 4289: 0x00007983, - 4290: 0x00026A34, - 4291: 0x00026B5B, - 4292: 0x00005D2C, - 4293: 0x00023519, - 4294: 0x000083CF, - 4295: 0x00026B9D, - 4296: 0x000046D0, - 4297: 0x00026CA4, - 4298: 0x0000753B, - 4299: 0x00008865, - 4300: 0x00026DAE, - 4301: 0x000058B6, - 4302: 0x0000371C, - 4303: 0x0002258D, - 4304: 0x0002704B, - 4305: 0x000271CD, - 4306: 0x00003C54, - 4307: 0x00027280, - 4308: 0x00027285, - 4309: 0x00009281, - 4310: 0x0002217A, - 4311: 0x0002728B, - 4312: 0x00009330, - 4313: 0x000272E6, - 4314: 0x000249D0, - 4315: 0x00006C39, - 4316: 0x0000949F, - 4317: 0x00027450, - 4318: 0x00020EF8, - 4319: 0x00008827, - 4320: 0x000088F5, - 4321: 0x00022926, - 4322: 0x00028473, - 4323: 0x000217B1, - 4324: 0x00006EB8, - 4325: 0x00024A2A, - 4326: 0x00021820, - 4327: 0x000039A4, - 4328: 0x000036B9, - 4329: 0x00005C10, - 4330: 0x000079E3, - 4331: 0x0000453F, - 4332: 0x000066B6, - 4333: 0x00029CAD, - 4334: 0x000298A4, - 4335: 0x00008943, - 4336: 0x000277CC, - 4337: 0x00027858, - 4338: 0x000056D6, - 4339: 0x000040DF, - 4340: 0x0002160A, - 4341: 0x000039A1, - 4342: 0x0002372F, - 4343: 0x000280E8, - 4344: 0x000213C5, - 4345: 0x000071AD, - 4346: 0x00008366, - 4347: 0x000279DD, - 4348: 0x000291A8, - 4349: 0x00005A67, - 4350: 0x00004CB7, - 4351: 0x000270AF, - 4352: 0x000289AB, - 4353: 0x000279FD, - 4354: 0x00027A0A, - 4355: 0x00027B0B, - 4356: 0x00027D66, - 4357: 0x0002417A, - 4358: 0x00007B43, - 4359: 0x0000797E, - 4360: 0x00028009, - 4361: 0x00006FB5, - 4362: 0x0002A2DF, - 4363: 0x00006A03, - 4364: 0x00028318, - 4365: 0x000053A2, - 4366: 0x00026E07, - 4367: 0x000093BF, - 4368: 0x00006836, - 4369: 0x0000975D, - 4370: 0x0002816F, - 4371: 0x00028023, - 4372: 0x000269B5, - 4373: 0x000213ED, - 4374: 0x0002322F, - 4375: 0x00028048, - 4376: 0x00005D85, - 4377: 0x00028C30, - 4378: 0x00028083, - 4379: 0x00005715, - 4380: 0x00009823, - 4381: 0x00028949, - 4382: 0x00005DAB, - 4383: 0x00024988, - 4384: 0x000065BE, - 4385: 0x000069D5, - 4386: 0x000053D2, - 4387: 0x00024AA5, - 4388: 0x00023F81, - 4389: 0x00003C11, - 4390: 0x00006736, - 4391: 0x00028090, - 4392: 0x000280F4, - 4393: 0x0002812E, - 4394: 0x00021FA1, - 4395: 0x0002814F, - 4396: 0x00028189, - 4397: 0x000281AF, - 4398: 0x0002821A, - 4399: 0x00028306, - 4400: 0x0002832F, - 4401: 0x0002838A, - 4402: 0x000035CA, - 4403: 0x00028468, - 4404: 0x000286AA, - 4405: 0x000048FA, - 4406: 0x000063E6, - 4407: 0x00028956, - 4408: 0x00007808, - 4409: 0x00009255, - 4410: 0x000289B8, - 4411: 0x000043F2, - 4412: 0x000289E7, - 4413: 0x000043DF, - 4414: 0x000289E8, - 4415: 0x00028B46, - 4416: 0x00028BD4, - 4417: 0x000059F8, - 4418: 0x00028C09, - 4419: 0x00008F0B, - 4420: 0x00028FC5, - 4421: 0x000290EC, - 4422: 0x00007B51, - 4423: 0x00029110, - 4424: 0x0002913C, - 4425: 0x00003DF7, - 4426: 0x0002915E, - 4427: 0x00024ACA, - 4428: 0x00008FD0, - 4429: 0x0000728F, - 4430: 0x0000568B, - 4431: 0x000294E7, - 4432: 0x000295E9, - 4433: 0x000295B0, - 4434: 0x000295B8, - 4435: 0x00029732, - 4436: 0x000298D1, - 4437: 0x00029949, - 4438: 0x0002996A, - 4439: 0x000299C3, - 4440: 0x00029A28, - 4441: 0x00029B0E, - 4442: 0x00029D5A, - 4443: 0x00029D9B, - 4444: 0x00007E9F, - 4445: 0x00029EF8, - 4446: 0x00029F23, - 4447: 0x00004CA4, - 4448: 0x00009547, - 4449: 0x0002A293, - 4450: 0x000071A2, - 4451: 0x0002A2FF, - 4452: 0x00004D91, - 4453: 0x00009012, - 4454: 0x0002A5CB, - 4455: 0x00004D9C, - 4456: 0x00020C9C, - 4457: 0x00008FBE, - 4458: 0x000055C1, - 4459: 0x00008FBA, - 4460: 0x000224B0, - 4461: 0x00008FB9, - 4462: 0x00024A93, - 4463: 0x00004509, - 4464: 0x00007E7F, - 4465: 0x00006F56, - 4466: 0x00006AB1, - 4467: 0x00004EEA, - 4468: 0x000034E4, - 4469: 0x00028B2C, - 4470: 0x0002789D, - 4471: 0x0000373A, - 4472: 0x00008E80, - 4473: 0x000217F5, - 4474: 0x00028024, - 4475: 0x00028B6C, - 4476: 0x00028B99, - 4477: 0x00027A3E, - 4478: 0x000266AF, - 4479: 0x00003DEB, - 4480: 0x00027655, - 4481: 0x00023CB7, - 4482: 0x00025635, - 4483: 0x00025956, - 4484: 0x00004E9A, - 4485: 0x00025E81, - 4486: 0x00026258, - 4487: 0x000056BF, - 4488: 0x00020E6D, - 4489: 0x00008E0E, - 4490: 0x00005B6D, - 4491: 0x00023E88, - 4492: 0x00024C9E, - 4493: 0x000063DE, - 4494: 0x000062D0, - 4495: 0x000217F6, - 4496: 0x0002187B, - 4497: 0x00006530, - 4498: 0x0000562D, - 4499: 0x00025C4A, - 4500: 0x0000541A, - 4501: 0x00025311, - 4502: 0x00003DC6, - 4503: 0x00029D98, - 4504: 0x00004C7D, - 4505: 0x00005622, - 4506: 0x0000561E, - 4507: 0x00007F49, - 4508: 0x00025ED8, - 4509: 0x00005975, - 4510: 0x00023D40, - 4511: 0x00008770, - 4512: 0x00004E1C, - 4513: 0x00020FEA, - 4514: 0x00020D49, - 4515: 0x000236BA, - 4516: 0x00008117, - 4517: 0x00009D5E, - 4518: 0x00008D18, - 4519: 0x0000763B, - 4520: 0x00009C45, - 4521: 0x0000764E, - 4522: 0x000077B9, - 4523: 0x00009345, - 4524: 0x00005432, - 4525: 0x00008148, - 4526: 0x000082F7, - 4527: 0x00005625, - 4528: 0x00008132, - 4529: 0x00008418, - 4530: 0x000080BD, - 4531: 0x000055EA, - 4532: 0x00007962, - 4533: 0x00005643, - 4534: 0x00005416, - 4535: 0x00020E9D, - 4536: 0x000035CE, - 4537: 0x00005605, - 4538: 0x000055F1, - 4539: 0x000066F1, - 4540: 0x000282E2, - 4541: 0x0000362D, - 4542: 0x00007534, - 4543: 0x000055F0, - 4544: 0x000055BA, - 4545: 0x00005497, - 4546: 0x00005572, - 4547: 0x00020C41, - 4548: 0x00020C96, - 4549: 0x00005ED0, - 4550: 0x00025148, - 4551: 0x00020E76, - 4552: 0x00022C62, - 4553: 0x00020EA2, - 4554: 0x00009EAB, - 4555: 0x00007D5A, - 4556: 0x000055DE, - 4557: 0x00021075, - 4558: 0x0000629D, - 4559: 0x0000976D, - 4560: 0x00005494, - 4561: 0x00008CCD, - 4562: 0x000071F6, - 4563: 0x00009176, - 4564: 0x000063FC, - 4565: 0x000063B9, - 4566: 0x000063FE, - 4567: 0x00005569, - 4568: 0x00022B43, - 4569: 0x00009C72, - 4570: 0x00022EB3, - 4571: 0x0000519A, - 4572: 0x000034DF, - 4573: 0x00020DA7, - 4574: 0x000051A7, - 4575: 0x0000544D, - 4576: 0x0000551E, - 4577: 0x00005513, - 4578: 0x00007666, - 4579: 0x00008E2D, - 4580: 0x0002688A, - 4581: 0x000075B1, - 4582: 0x000080B6, - 4583: 0x00008804, - 4584: 0x00008786, - 4585: 0x000088C7, - 4586: 0x000081B6, - 4587: 0x0000841C, - 4588: 0x000210C1, - 4589: 0x000044EC, - 4590: 0x00007304, - 4591: 0x00024706, - 4592: 0x00005B90, - 4593: 0x0000830B, - 4594: 0x00026893, - 4595: 0x0000567B, - 4596: 0x000226F4, - 4597: 0x00027D2F, - 4598: 0x000241A3, - 4599: 0x00027D73, - 4600: 0x00026ED0, - 4601: 0x000272B6, - 4602: 0x00009170, - 4603: 0x000211D9, - 4604: 0x00009208, - 4605: 0x00023CFC, - 4606: 0x0002A6A9, - 4607: 0x00020EAC, - 4608: 0x00020EF9, - 4609: 0x00007266, - 4610: 0x00021CA2, - 4611: 0x0000474E, - 4612: 0x00024FC2, - 4613: 0x00027FF9, - 4614: 0x00020FEB, - 4615: 0x000040FA, - 4616: 0x00009C5D, - 4617: 0x0000651F, - 4618: 0x00022DA0, - 4619: 0x000048F3, - 4620: 0x000247E0, - 4621: 0x00029D7C, - 4622: 0x00020FEC, - 4623: 0x00020E0A, - 4624: 0x00006062, - 4625: 0x000275A3, - 4626: 0x00020FED, - 4628: 0x00026048, - 4629: 0x00021187, - 4630: 0x000071A3, - 4631: 0x00007E8E, - 4632: 0x00009D50, - 4633: 0x00004E1A, - 4634: 0x00004E04, - 4635: 0x00003577, - 4636: 0x00005B0D, - 4637: 0x00006CB2, - 4638: 0x00005367, - 4639: 0x000036AC, - 4640: 0x000039DC, - 4641: 0x0000537D, - 4642: 0x000036A5, - 4643: 0x00024618, - 4644: 0x0000589A, - 4645: 0x00024B6E, - 4646: 0x0000822D, - 4647: 0x0000544B, - 4648: 0x000057AA, - 4649: 0x00025A95, - 4650: 0x00020979, - 4652: 0x00003A52, - 4653: 0x00022465, - 4654: 0x00007374, - 4655: 0x00029EAC, - 4656: 0x00004D09, - 4657: 0x00009BED, - 4658: 0x00023CFE, - 4659: 0x00029F30, - 4660: 0x00004C5B, - 4661: 0x00024FA9, - 4662: 0x0002959E, - 4663: 0x00029FDE, - 4664: 0x0000845C, - 4665: 0x00023DB6, - 4666: 0x000272B2, - 4667: 0x000267B3, - 4668: 0x00023720, - 4669: 0x0000632E, - 4670: 0x00007D25, - 4671: 0x00023EF7, - 4672: 0x00023E2C, - 4673: 0x00003A2A, - 4674: 0x00009008, - 4675: 0x000052CC, - 4676: 0x00003E74, - 4677: 0x0000367A, - 4678: 0x000045E9, - 4679: 0x0002048E, - 4680: 0x00007640, - 4681: 0x00005AF0, - 4682: 0x00020EB6, - 4683: 0x0000787A, - 4684: 0x00027F2E, - 4685: 0x000058A7, - 4686: 0x000040BF, - 4687: 0x0000567C, - 4688: 0x00009B8B, - 4689: 0x00005D74, - 4690: 0x00007654, - 4691: 0x0002A434, - 4692: 0x00009E85, - 4693: 0x00004CE1, - 4694: 0x000075F9, - 4695: 0x000037FB, - 4696: 0x00006119, - 4697: 0x000230DA, - 4698: 0x000243F2, - 4700: 0x0000565D, - 4701: 0x000212A9, - 4702: 0x000057A7, - 4703: 0x00024963, - 4704: 0x00029E06, - 4705: 0x00005234, - 4706: 0x000270AE, - 4707: 0x000035AD, - 4708: 0x00006C4A, - 4709: 0x00009D7C, - 4710: 0x00007C56, - 4711: 0x00009B39, - 4712: 0x000057DE, - 4713: 0x0002176C, - 4714: 0x00005C53, - 4715: 0x000064D3, - 4716: 0x000294D0, - 4717: 0x00026335, - 4718: 0x00027164, - 4719: 0x000086AD, - 4720: 0x00020D28, - 4721: 0x00026D22, - 4722: 0x00024AE2, - 4723: 0x00020D71, - 4725: 0x000051FE, - 4726: 0x00021F0F, - 4727: 0x00005D8E, - 4728: 0x00009703, - 4729: 0x00021DD1, - 4730: 0x00009E81, - 4731: 0x0000904C, - 4732: 0x00007B1F, - 4733: 0x00009B02, - 4734: 0x00005CD1, - 4735: 0x00007BA3, - 4736: 0x00006268, - 4737: 0x00006335, - 4738: 0x00009AFF, - 4739: 0x00007BCF, - 4740: 0x00009B2A, - 4741: 0x00007C7E, - 4742: 0x00009B2E, - 4743: 0x00007C42, - 4744: 0x00007C86, - 4745: 0x00009C15, - 4746: 0x00007BFC, - 4747: 0x00009B09, - 4748: 0x00009F17, - 4749: 0x00009C1B, - 4750: 0x0002493E, - 4751: 0x00009F5A, - 4752: 0x00005573, - 4753: 0x00005BC3, - 4754: 0x00004FFD, - 4755: 0x00009E98, - 4756: 0x00004FF2, - 4757: 0x00005260, - 4758: 0x00003E06, - 4759: 0x000052D1, - 4760: 0x00005767, - 4761: 0x00005056, - 4762: 0x000059B7, - 4763: 0x00005E12, - 4764: 0x000097C8, - 4765: 0x00009DAB, - 4766: 0x00008F5C, - 4767: 0x00005469, - 4768: 0x000097B4, - 4769: 0x00009940, - 4770: 0x000097BA, - 4771: 0x0000532C, - 4772: 0x00006130, - 4773: 0x0000692C, - 4774: 0x000053DA, - 4775: 0x00009C0A, - 4776: 0x00009D02, - 4777: 0x00004C3B, - 4778: 0x00009641, - 4779: 0x00006980, - 4780: 0x000050A6, - 4781: 0x00007546, - 4782: 0x0002176D, - 4783: 0x000099DA, - 4784: 0x00005273, - 4786: 0x00009159, - 4787: 0x00009681, - 4788: 0x0000915C, - 4790: 0x00009151, - 4791: 0x00028E97, - 4792: 0x0000637F, - 4793: 0x00026D23, - 4794: 0x00006ACA, - 4795: 0x00005611, - 4796: 0x0000918E, - 4797: 0x0000757A, - 4798: 0x00006285, - 4799: 0x000203FC, - 4800: 0x0000734F, - 4801: 0x00007C70, - 4802: 0x00025C21, - 4803: 0x00023CFD, - 4805: 0x00024919, - 4806: 0x000076D6, - 4807: 0x00009B9D, - 4808: 0x00004E2A, - 4809: 0x00020CD4, - 4810: 0x000083BE, - 4811: 0x00008842, - 4813: 0x00005C4A, - 4814: 0x000069C0, - 4815: 0x000050ED, - 4816: 0x0000577A, - 4817: 0x0000521F, - 4818: 0x00005DF5, - 4819: 0x00004ECE, - 4820: 0x00006C31, - 4821: 0x000201F2, - 4822: 0x00004F39, - 4823: 0x0000549C, - 4824: 0x000054DA, - 4825: 0x0000529A, - 4826: 0x00008D82, - 4827: 0x000035FE, - 4828: 0x00005F0C, - 4829: 0x000035F3, - 4831: 0x00006B52, - 4832: 0x0000917C, - 4833: 0x00009FA5, - 4834: 0x00009B97, - 4835: 0x0000982E, - 4836: 0x000098B4, - 4837: 0x00009ABA, - 4838: 0x00009EA8, - 4839: 0x00009E84, - 4840: 0x0000717A, - 4841: 0x00007B14, - 4843: 0x00006BFA, - 4844: 0x00008818, - 4845: 0x00007F78, - 4847: 0x00005620, - 4848: 0x0002A64A, - 4849: 0x00008E77, - 4850: 0x00009F53, - 4852: 0x00008DD4, - 4853: 0x00008E4F, - 4854: 0x00009E1C, - 4855: 0x00008E01, - 4856: 0x00006282, - 4857: 0x0002837D, - 4858: 0x00008E28, - 4859: 0x00008E75, - 4860: 0x00007AD3, - 4861: 0x00024A77, - 4862: 0x00007A3E, - 4863: 0x000078D8, - 4864: 0x00006CEA, - 4865: 0x00008A67, - 4866: 0x00007607, - 4867: 0x00028A5A, - 4868: 0x00009F26, - 4869: 0x00006CCE, - 4870: 0x000087D6, - 4871: 0x000075C3, - 4872: 0x0002A2B2, - 4873: 0x00007853, - 4874: 0x0002F840, - 4875: 0x00008D0C, - 4876: 0x000072E2, - 4877: 0x00007371, - 4878: 0x00008B2D, - 4879: 0x00007302, - 4880: 0x000074F1, - 4881: 0x00008CEB, - 4882: 0x00024ABB, - 4883: 0x0000862F, - 4884: 0x00005FBA, - 4885: 0x000088A0, - 4886: 0x000044B7, - 4888: 0x0002183B, - 4889: 0x00026E05, - 4891: 0x00008A7E, - 4892: 0x0002251B, - 4894: 0x000060FD, - 4895: 0x00007667, - 4896: 0x00009AD7, - 4897: 0x00009D44, - 4898: 0x0000936E, - 4899: 0x00009B8F, - 4900: 0x000087F5, - 4902: 0x0000880F, - 4903: 0x00008CF7, - 4904: 0x0000732C, - 4905: 0x00009721, - 4906: 0x00009BB0, - 4907: 0x000035D6, - 4908: 0x000072B2, - 4909: 0x00004C07, - 4910: 0x00007C51, - 4911: 0x0000994A, - 4912: 0x00026159, - 4913: 0x00006159, - 4914: 0x00004C04, - 4915: 0x00009E96, - 4916: 0x0000617D, - 4918: 0x0000575F, - 4919: 0x0000616F, - 4920: 0x000062A6, - 4921: 0x00006239, - 4922: 0x000062CE, - 4923: 0x00003A5C, - 4924: 0x000061E2, - 4925: 0x000053AA, - 4926: 0x000233F5, - 4927: 0x00006364, - 4928: 0x00006802, - 4929: 0x000035D2, - 4930: 0x00005D57, - 4931: 0x00028BC2, - 4932: 0x00008FDA, - 4933: 0x00028E39, - 4935: 0x000050D9, - 4936: 0x00021D46, - 4937: 0x00007906, - 4938: 0x00005332, - 4939: 0x00009638, - 4940: 0x00020F3B, - 4941: 0x00004065, - 4943: 0x000077FE, - 4945: 0x00007CC2, - 4946: 0x00025F1A, - 4947: 0x00007CDA, - 4948: 0x00007A2D, - 4949: 0x00008066, - 4950: 0x00008063, - 4951: 0x00007D4D, - 4952: 0x00007505, - 4953: 0x000074F2, - 4954: 0x00008994, - 4955: 0x0000821A, - 4956: 0x0000670C, - 4957: 0x00008062, - 4958: 0x00027486, - 4959: 0x0000805B, - 4960: 0x000074F0, - 4961: 0x00008103, - 4962: 0x00007724, - 4963: 0x00008989, - 4964: 0x000267CC, - 4965: 0x00007553, - 4966: 0x00026ED1, - 4967: 0x000087A9, - 4968: 0x000087CE, - 4969: 0x000081C8, - 4970: 0x0000878C, - 4971: 0x00008A49, - 4972: 0x00008CAD, - 4973: 0x00008B43, - 4974: 0x0000772B, - 4975: 0x000074F8, - 4976: 0x000084DA, - 4977: 0x00003635, - 4978: 0x000069B2, - 4979: 0x00008DA6, - 4981: 0x000089A9, - 4982: 0x00007468, - 4983: 0x00006DB9, - 4984: 0x000087C1, - 4985: 0x00024011, - 4986: 0x000074E7, - 4987: 0x00003DDB, - 4988: 0x00007176, - 4989: 0x000060A4, - 4990: 0x0000619C, - 4991: 0x00003CD1, - 4992: 0x00007162, - 4993: 0x00006077, - 4995: 0x00007F71, - 4996: 0x00028B2D, - 4997: 0x00007250, - 4998: 0x000060E9, - 4999: 0x00004B7E, - 5000: 0x00005220, - 5001: 0x00003C18, - 5002: 0x00023CC7, - 5003: 0x00025ED7, - 5004: 0x00027656, - 5005: 0x00025531, - 5006: 0x00021944, - 5007: 0x000212FE, - 5008: 0x00029903, - 5009: 0x00026DDC, - 5010: 0x000270AD, - 5011: 0x00005CC1, - 5012: 0x000261AD, - 5013: 0x00028A0F, - 5014: 0x00023677, - 5015: 0x000200EE, - 5016: 0x00026846, - 5017: 0x00024F0E, - 5018: 0x00004562, - 5019: 0x00005B1F, - 5020: 0x0002634C, - 5021: 0x00009F50, - 5022: 0x00009EA6, - 5023: 0x0002626B, - 5024: 0x00003000, - 5025: 0x0000FF0C, - 5026: 0x00003001, - 5027: 0x00003002, - 5028: 0x0000FF0E, - 5029: 0x00002027, - 5030: 0x0000FF1B, - 5031: 0x0000FF1A, - 5032: 0x0000FF1F, - 5033: 0x0000FF01, - 5034: 0x0000FE30, - 5035: 0x00002026, - 5036: 0x00002025, - 5037: 0x0000FE50, - 5038: 0x0000FE51, - 5039: 0x0000FE52, - 5040: 0x000000B7, - 5041: 0x0000FE54, - 5042: 0x0000FE55, - 5043: 0x0000FE56, - 5044: 0x0000FE57, - 5045: 0x0000FF5C, - 5046: 0x00002013, - 5047: 0x0000FE31, - 5048: 0x00002014, - 5049: 0x0000FE33, - 5050: 0x00002574, - 5051: 0x0000FE34, - 5052: 0x0000FE4F, - 5053: 0x0000FF08, - 5054: 0x0000FF09, - 5055: 0x0000FE35, - 5056: 0x0000FE36, - 5057: 0x0000FF5B, - 5058: 0x0000FF5D, - 5059: 0x0000FE37, - 5060: 0x0000FE38, - 5061: 0x00003014, - 5062: 0x00003015, - 5063: 0x0000FE39, - 5064: 0x0000FE3A, - 5065: 0x00003010, - 5066: 0x00003011, - 5067: 0x0000FE3B, - 5068: 0x0000FE3C, - 5069: 0x0000300A, - 5070: 0x0000300B, - 5071: 0x0000FE3D, - 5072: 0x0000FE3E, - 5073: 0x00003008, - 5074: 0x00003009, - 5075: 0x0000FE3F, - 5076: 0x0000FE40, - 5077: 0x0000300C, - 5078: 0x0000300D, - 5079: 0x0000FE41, - 5080: 0x0000FE42, - 5081: 0x0000300E, - 5082: 0x0000300F, - 5083: 0x0000FE43, - 5084: 0x0000FE44, - 5085: 0x0000FE59, - 5086: 0x0000FE5A, - 5087: 0x0000FE5B, - 5088: 0x0000FE5C, - 5089: 0x0000FE5D, - 5090: 0x0000FE5E, - 5091: 0x00002018, - 5092: 0x00002019, - 5093: 0x0000201C, - 5094: 0x0000201D, - 5095: 0x0000301D, - 5096: 0x0000301E, - 5097: 0x00002035, - 5098: 0x00002032, - 5099: 0x0000FF03, - 5100: 0x0000FF06, - 5101: 0x0000FF0A, - 5102: 0x0000203B, - 5103: 0x000000A7, - 5104: 0x00003003, - 5105: 0x000025CB, - 5106: 0x000025CF, - 5107: 0x000025B3, - 5108: 0x000025B2, - 5109: 0x000025CE, - 5110: 0x00002606, - 5111: 0x00002605, - 5112: 0x000025C7, - 5113: 0x000025C6, - 5114: 0x000025A1, - 5115: 0x000025A0, - 5116: 0x000025BD, - 5117: 0x000025BC, - 5118: 0x000032A3, - 5119: 0x00002105, - 5120: 0x000000AF, - 5121: 0x0000FFE3, - 5122: 0x0000FF3F, - 5123: 0x000002CD, - 5124: 0x0000FE49, - 5125: 0x0000FE4A, - 5126: 0x0000FE4D, - 5127: 0x0000FE4E, - 5128: 0x0000FE4B, - 5129: 0x0000FE4C, - 5130: 0x0000FE5F, - 5131: 0x0000FE60, - 5132: 0x0000FE61, - 5133: 0x0000FF0B, - 5134: 0x0000FF0D, - 5135: 0x000000D7, - 5136: 0x000000F7, - 5137: 0x000000B1, - 5138: 0x0000221A, - 5139: 0x0000FF1C, - 5140: 0x0000FF1E, - 5141: 0x0000FF1D, - 5142: 0x00002266, - 5143: 0x00002267, - 5144: 0x00002260, - 5145: 0x0000221E, - 5146: 0x00002252, - 5147: 0x00002261, - 5148: 0x0000FE62, - 5149: 0x0000FE63, - 5150: 0x0000FE64, - 5151: 0x0000FE65, - 5152: 0x0000FE66, - 5153: 0x0000FF5E, - 5154: 0x00002229, - 5155: 0x0000222A, - 5156: 0x000022A5, - 5157: 0x00002220, - 5158: 0x0000221F, - 5159: 0x000022BF, - 5160: 0x000033D2, - 5161: 0x000033D1, - 5162: 0x0000222B, - 5163: 0x0000222E, - 5164: 0x00002235, - 5165: 0x00002234, - 5166: 0x00002640, - 5167: 0x00002642, - 5168: 0x00002295, - 5169: 0x00002299, - 5170: 0x00002191, - 5171: 0x00002193, - 5172: 0x00002190, - 5173: 0x00002192, - 5174: 0x00002196, - 5175: 0x00002197, - 5176: 0x00002199, - 5177: 0x00002198, - 5178: 0x00002225, - 5179: 0x00002223, - 5180: 0x0000FF0F, - 5181: 0x0000FF3C, - 5182: 0x00002215, - 5183: 0x0000FE68, - 5184: 0x0000FF04, - 5185: 0x0000FFE5, - 5186: 0x00003012, - 5187: 0x0000FFE0, - 5188: 0x0000FFE1, - 5189: 0x0000FF05, - 5190: 0x0000FF20, - 5191: 0x00002103, - 5192: 0x00002109, - 5193: 0x0000FE69, - 5194: 0x0000FE6A, - 5195: 0x0000FE6B, - 5196: 0x000033D5, - 5197: 0x0000339C, - 5198: 0x0000339D, - 5199: 0x0000339E, - 5200: 0x000033CE, - 5201: 0x000033A1, - 5202: 0x0000338E, - 5203: 0x0000338F, - 5204: 0x000033C4, - 5205: 0x000000B0, - 5206: 0x00005159, - 5207: 0x0000515B, - 5208: 0x0000515E, - 5209: 0x0000515D, - 5210: 0x00005161, - 5211: 0x00005163, - 5212: 0x000055E7, - 5213: 0x000074E9, - 5214: 0x00007CCE, - 5215: 0x00002581, - 5216: 0x00002582, - 5217: 0x00002583, - 5218: 0x00002584, - 5219: 0x00002585, - 5220: 0x00002586, - 5221: 0x00002587, - 5222: 0x00002588, - 5223: 0x0000258F, - 5224: 0x0000258E, - 5225: 0x0000258D, - 5226: 0x0000258C, - 5227: 0x0000258B, - 5228: 0x0000258A, - 5229: 0x00002589, - 5230: 0x0000253C, - 5231: 0x00002534, - 5232: 0x0000252C, - 5233: 0x00002524, - 5234: 0x0000251C, - 5235: 0x00002594, - 5236: 0x00002500, - 5237: 0x00002502, - 5238: 0x00002595, - 5239: 0x0000250C, - 5240: 0x00002510, - 5241: 0x00002514, - 5242: 0x00002518, - 5243: 0x0000256D, - 5244: 0x0000256E, - 5245: 0x00002570, - 5246: 0x0000256F, - 5247: 0x00002550, - 5248: 0x0000255E, - 5249: 0x0000256A, - 5250: 0x00002561, - 5251: 0x000025E2, - 5252: 0x000025E3, - 5253: 0x000025E5, - 5254: 0x000025E4, - 5255: 0x00002571, - 5256: 0x00002572, - 5257: 0x00002573, - 5258: 0x0000FF10, - 5259: 0x0000FF11, - 5260: 0x0000FF12, - 5261: 0x0000FF13, - 5262: 0x0000FF14, - 5263: 0x0000FF15, - 5264: 0x0000FF16, - 5265: 0x0000FF17, - 5266: 0x0000FF18, - 5267: 0x0000FF19, - 5268: 0x00002160, - 5269: 0x00002161, - 5270: 0x00002162, - 5271: 0x00002163, - 5272: 0x00002164, - 5273: 0x00002165, - 5274: 0x00002166, - 5275: 0x00002167, - 5276: 0x00002168, - 5277: 0x00002169, - 5278: 0x00003021, - 5279: 0x00003022, - 5280: 0x00003023, - 5281: 0x00003024, - 5282: 0x00003025, - 5283: 0x00003026, - 5284: 0x00003027, - 5285: 0x00003028, - 5286: 0x00003029, - 5287: 0x00005341, - 5288: 0x00005344, - 5289: 0x00005345, - 5290: 0x0000FF21, - 5291: 0x0000FF22, - 5292: 0x0000FF23, - 5293: 0x0000FF24, - 5294: 0x0000FF25, - 5295: 0x0000FF26, - 5296: 0x0000FF27, - 5297: 0x0000FF28, - 5298: 0x0000FF29, - 5299: 0x0000FF2A, - 5300: 0x0000FF2B, - 5301: 0x0000FF2C, - 5302: 0x0000FF2D, - 5303: 0x0000FF2E, - 5304: 0x0000FF2F, - 5305: 0x0000FF30, - 5306: 0x0000FF31, - 5307: 0x0000FF32, - 5308: 0x0000FF33, - 5309: 0x0000FF34, - 5310: 0x0000FF35, - 5311: 0x0000FF36, - 5312: 0x0000FF37, - 5313: 0x0000FF38, - 5314: 0x0000FF39, - 5315: 0x0000FF3A, - 5316: 0x0000FF41, - 5317: 0x0000FF42, - 5318: 0x0000FF43, - 5319: 0x0000FF44, - 5320: 0x0000FF45, - 5321: 0x0000FF46, - 5322: 0x0000FF47, - 5323: 0x0000FF48, - 5324: 0x0000FF49, - 5325: 0x0000FF4A, - 5326: 0x0000FF4B, - 5327: 0x0000FF4C, - 5328: 0x0000FF4D, - 5329: 0x0000FF4E, - 5330: 0x0000FF4F, - 5331: 0x0000FF50, - 5332: 0x0000FF51, - 5333: 0x0000FF52, - 5334: 0x0000FF53, - 5335: 0x0000FF54, - 5336: 0x0000FF55, - 5337: 0x0000FF56, - 5338: 0x0000FF57, - 5339: 0x0000FF58, - 5340: 0x0000FF59, - 5341: 0x0000FF5A, - 5342: 0x00000391, - 5343: 0x00000392, - 5344: 0x00000393, - 5345: 0x00000394, - 5346: 0x00000395, - 5347: 0x00000396, - 5348: 0x00000397, - 5349: 0x00000398, - 5350: 0x00000399, - 5351: 0x0000039A, - 5352: 0x0000039B, - 5353: 0x0000039C, - 5354: 0x0000039D, - 5355: 0x0000039E, - 5356: 0x0000039F, - 5357: 0x000003A0, - 5358: 0x000003A1, - 5359: 0x000003A3, - 5360: 0x000003A4, - 5361: 0x000003A5, - 5362: 0x000003A6, - 5363: 0x000003A7, - 5364: 0x000003A8, - 5365: 0x000003A9, - 5366: 0x000003B1, - 5367: 0x000003B2, - 5368: 0x000003B3, - 5369: 0x000003B4, - 5370: 0x000003B5, - 5371: 0x000003B6, - 5372: 0x000003B7, - 5373: 0x000003B8, - 5374: 0x000003B9, - 5375: 0x000003BA, - 5376: 0x000003BB, - 5377: 0x000003BC, - 5378: 0x000003BD, - 5379: 0x000003BE, - 5380: 0x000003BF, - 5381: 0x000003C0, - 5382: 0x000003C1, - 5383: 0x000003C3, - 5384: 0x000003C4, - 5385: 0x000003C5, - 5386: 0x000003C6, - 5387: 0x000003C7, - 5388: 0x000003C8, - 5389: 0x000003C9, - 5390: 0x00003105, - 5391: 0x00003106, - 5392: 0x00003107, - 5393: 0x00003108, - 5394: 0x00003109, - 5395: 0x0000310A, - 5396: 0x0000310B, - 5397: 0x0000310C, - 5398: 0x0000310D, - 5399: 0x0000310E, - 5400: 0x0000310F, - 5401: 0x00003110, - 5402: 0x00003111, - 5403: 0x00003112, - 5404: 0x00003113, - 5405: 0x00003114, - 5406: 0x00003115, - 5407: 0x00003116, - 5408: 0x00003117, - 5409: 0x00003118, - 5410: 0x00003119, - 5411: 0x0000311A, - 5412: 0x0000311B, - 5413: 0x0000311C, - 5414: 0x0000311D, - 5415: 0x0000311E, - 5416: 0x0000311F, - 5417: 0x00003120, - 5418: 0x00003121, - 5419: 0x00003122, - 5420: 0x00003123, - 5421: 0x00003124, - 5422: 0x00003125, - 5423: 0x00003126, - 5424: 0x00003127, - 5425: 0x00003128, - 5426: 0x00003129, - 5427: 0x000002D9, - 5428: 0x000002C9, - 5429: 0x000002CA, - 5430: 0x000002C7, - 5431: 0x000002CB, - 5432: 0x00002400, - 5433: 0x00002401, - 5434: 0x00002402, - 5435: 0x00002403, - 5436: 0x00002404, - 5437: 0x00002405, - 5438: 0x00002406, - 5439: 0x00002407, - 5440: 0x00002408, - 5441: 0x00002409, - 5442: 0x0000240A, - 5443: 0x0000240B, - 5444: 0x0000240C, - 5445: 0x0000240D, - 5446: 0x0000240E, - 5447: 0x0000240F, - 5448: 0x00002410, - 5449: 0x00002411, - 5450: 0x00002412, - 5451: 0x00002413, - 5452: 0x00002414, - 5453: 0x00002415, - 5454: 0x00002416, - 5455: 0x00002417, - 5456: 0x00002418, - 5457: 0x00002419, - 5458: 0x0000241A, - 5459: 0x0000241B, - 5460: 0x0000241C, - 5461: 0x0000241D, - 5462: 0x0000241E, - 5463: 0x0000241F, - 5464: 0x00002421, - 5465: 0x000020AC, - 5495: 0x00004E00, - 5496: 0x00004E59, - 5497: 0x00004E01, - 5498: 0x00004E03, - 5499: 0x00004E43, - 5500: 0x00004E5D, - 5501: 0x00004E86, - 5502: 0x00004E8C, - 5503: 0x00004EBA, - 5504: 0x0000513F, - 5505: 0x00005165, - 5506: 0x0000516B, - 5507: 0x000051E0, - 5508: 0x00005200, - 5509: 0x00005201, - 5510: 0x0000529B, - 5511: 0x00005315, - 5512: 0x00005341, - 5513: 0x0000535C, - 5514: 0x000053C8, - 5515: 0x00004E09, - 5516: 0x00004E0B, - 5517: 0x00004E08, - 5518: 0x00004E0A, - 5519: 0x00004E2B, - 5520: 0x00004E38, - 5521: 0x000051E1, - 5522: 0x00004E45, - 5523: 0x00004E48, - 5524: 0x00004E5F, - 5525: 0x00004E5E, - 5526: 0x00004E8E, - 5527: 0x00004EA1, - 5528: 0x00005140, - 5529: 0x00005203, - 5530: 0x000052FA, - 5531: 0x00005343, - 5532: 0x000053C9, - 5533: 0x000053E3, - 5534: 0x0000571F, - 5535: 0x000058EB, - 5536: 0x00005915, - 5537: 0x00005927, - 5538: 0x00005973, - 5539: 0x00005B50, - 5540: 0x00005B51, - 5541: 0x00005B53, - 5542: 0x00005BF8, - 5543: 0x00005C0F, - 5544: 0x00005C22, - 5545: 0x00005C38, - 5546: 0x00005C71, - 5547: 0x00005DDD, - 5548: 0x00005DE5, - 5549: 0x00005DF1, - 5550: 0x00005DF2, - 5551: 0x00005DF3, - 5552: 0x00005DFE, - 5553: 0x00005E72, - 5554: 0x00005EFE, - 5555: 0x00005F0B, - 5556: 0x00005F13, - 5557: 0x0000624D, - 5558: 0x00004E11, - 5559: 0x00004E10, - 5560: 0x00004E0D, - 5561: 0x00004E2D, - 5562: 0x00004E30, - 5563: 0x00004E39, - 5564: 0x00004E4B, - 5565: 0x00005C39, - 5566: 0x00004E88, - 5567: 0x00004E91, - 5568: 0x00004E95, - 5569: 0x00004E92, - 5570: 0x00004E94, - 5571: 0x00004EA2, - 5572: 0x00004EC1, - 5573: 0x00004EC0, - 5574: 0x00004EC3, - 5575: 0x00004EC6, - 5576: 0x00004EC7, - 5577: 0x00004ECD, - 5578: 0x00004ECA, - 5579: 0x00004ECB, - 5580: 0x00004EC4, - 5581: 0x00005143, - 5582: 0x00005141, - 5583: 0x00005167, - 5584: 0x0000516D, - 5585: 0x0000516E, - 5586: 0x0000516C, - 5587: 0x00005197, - 5588: 0x000051F6, - 5589: 0x00005206, - 5590: 0x00005207, - 5591: 0x00005208, - 5592: 0x000052FB, - 5593: 0x000052FE, - 5594: 0x000052FF, - 5595: 0x00005316, - 5596: 0x00005339, - 5597: 0x00005348, - 5598: 0x00005347, - 5599: 0x00005345, - 5600: 0x0000535E, - 5601: 0x00005384, - 5602: 0x000053CB, - 5603: 0x000053CA, - 5604: 0x000053CD, - 5605: 0x000058EC, - 5606: 0x00005929, - 5607: 0x0000592B, - 5608: 0x0000592A, - 5609: 0x0000592D, - 5610: 0x00005B54, - 5611: 0x00005C11, - 5612: 0x00005C24, - 5613: 0x00005C3A, - 5614: 0x00005C6F, - 5615: 0x00005DF4, - 5616: 0x00005E7B, - 5617: 0x00005EFF, - 5618: 0x00005F14, - 5619: 0x00005F15, - 5620: 0x00005FC3, - 5621: 0x00006208, - 5622: 0x00006236, - 5623: 0x0000624B, - 5624: 0x0000624E, - 5625: 0x0000652F, - 5626: 0x00006587, - 5627: 0x00006597, - 5628: 0x000065A4, - 5629: 0x000065B9, - 5630: 0x000065E5, - 5631: 0x000066F0, - 5632: 0x00006708, - 5633: 0x00006728, - 5634: 0x00006B20, - 5635: 0x00006B62, - 5636: 0x00006B79, - 5637: 0x00006BCB, - 5638: 0x00006BD4, - 5639: 0x00006BDB, - 5640: 0x00006C0F, - 5641: 0x00006C34, - 5642: 0x0000706B, - 5643: 0x0000722A, - 5644: 0x00007236, - 5645: 0x0000723B, - 5646: 0x00007247, - 5647: 0x00007259, - 5648: 0x0000725B, - 5649: 0x000072AC, - 5650: 0x0000738B, - 5651: 0x00004E19, - 5652: 0x00004E16, - 5653: 0x00004E15, - 5654: 0x00004E14, - 5655: 0x00004E18, - 5656: 0x00004E3B, - 5657: 0x00004E4D, - 5658: 0x00004E4F, - 5659: 0x00004E4E, - 5660: 0x00004EE5, - 5661: 0x00004ED8, - 5662: 0x00004ED4, - 5663: 0x00004ED5, - 5664: 0x00004ED6, - 5665: 0x00004ED7, - 5666: 0x00004EE3, - 5667: 0x00004EE4, - 5668: 0x00004ED9, - 5669: 0x00004EDE, - 5670: 0x00005145, - 5671: 0x00005144, - 5672: 0x00005189, - 5673: 0x0000518A, - 5674: 0x000051AC, - 5675: 0x000051F9, - 5676: 0x000051FA, - 5677: 0x000051F8, - 5678: 0x0000520A, - 5679: 0x000052A0, - 5680: 0x0000529F, - 5681: 0x00005305, - 5682: 0x00005306, - 5683: 0x00005317, - 5684: 0x0000531D, - 5685: 0x00004EDF, - 5686: 0x0000534A, - 5687: 0x00005349, - 5688: 0x00005361, - 5689: 0x00005360, - 5690: 0x0000536F, - 5691: 0x0000536E, - 5692: 0x000053BB, - 5693: 0x000053EF, - 5694: 0x000053E4, - 5695: 0x000053F3, - 5696: 0x000053EC, - 5697: 0x000053EE, - 5698: 0x000053E9, - 5699: 0x000053E8, - 5700: 0x000053FC, - 5701: 0x000053F8, - 5702: 0x000053F5, - 5703: 0x000053EB, - 5704: 0x000053E6, - 5705: 0x000053EA, - 5706: 0x000053F2, - 5707: 0x000053F1, - 5708: 0x000053F0, - 5709: 0x000053E5, - 5710: 0x000053ED, - 5711: 0x000053FB, - 5712: 0x000056DB, - 5713: 0x000056DA, - 5714: 0x00005916, - 5715: 0x0000592E, - 5716: 0x00005931, - 5717: 0x00005974, - 5718: 0x00005976, - 5719: 0x00005B55, - 5720: 0x00005B83, - 5721: 0x00005C3C, - 5722: 0x00005DE8, - 5723: 0x00005DE7, - 5724: 0x00005DE6, - 5725: 0x00005E02, - 5726: 0x00005E03, - 5727: 0x00005E73, - 5728: 0x00005E7C, - 5729: 0x00005F01, - 5730: 0x00005F18, - 5731: 0x00005F17, - 5732: 0x00005FC5, - 5733: 0x0000620A, - 5734: 0x00006253, - 5735: 0x00006254, - 5736: 0x00006252, - 5737: 0x00006251, - 5738: 0x000065A5, - 5739: 0x000065E6, - 5740: 0x0000672E, - 5741: 0x0000672C, - 5742: 0x0000672A, - 5743: 0x0000672B, - 5744: 0x0000672D, - 5745: 0x00006B63, - 5746: 0x00006BCD, - 5747: 0x00006C11, - 5748: 0x00006C10, - 5749: 0x00006C38, - 5750: 0x00006C41, - 5751: 0x00006C40, - 5752: 0x00006C3E, - 5753: 0x000072AF, - 5754: 0x00007384, - 5755: 0x00007389, - 5756: 0x000074DC, - 5757: 0x000074E6, - 5758: 0x00007518, - 5759: 0x0000751F, - 5760: 0x00007528, - 5761: 0x00007529, - 5762: 0x00007530, - 5763: 0x00007531, - 5764: 0x00007532, - 5765: 0x00007533, - 5766: 0x0000758B, - 5767: 0x0000767D, - 5768: 0x000076AE, - 5769: 0x000076BF, - 5770: 0x000076EE, - 5771: 0x000077DB, - 5772: 0x000077E2, - 5773: 0x000077F3, - 5774: 0x0000793A, - 5775: 0x000079BE, - 5776: 0x00007A74, - 5777: 0x00007ACB, - 5778: 0x00004E1E, - 5779: 0x00004E1F, - 5780: 0x00004E52, - 5781: 0x00004E53, - 5782: 0x00004E69, - 5783: 0x00004E99, - 5784: 0x00004EA4, - 5785: 0x00004EA6, - 5786: 0x00004EA5, - 5787: 0x00004EFF, - 5788: 0x00004F09, - 5789: 0x00004F19, - 5790: 0x00004F0A, - 5791: 0x00004F15, - 5792: 0x00004F0D, - 5793: 0x00004F10, - 5794: 0x00004F11, - 5795: 0x00004F0F, - 5796: 0x00004EF2, - 5797: 0x00004EF6, - 5798: 0x00004EFB, - 5799: 0x00004EF0, - 5800: 0x00004EF3, - 5801: 0x00004EFD, - 5802: 0x00004F01, - 5803: 0x00004F0B, - 5804: 0x00005149, - 5805: 0x00005147, - 5806: 0x00005146, - 5807: 0x00005148, - 5808: 0x00005168, - 5809: 0x00005171, - 5810: 0x0000518D, - 5811: 0x000051B0, - 5812: 0x00005217, - 5813: 0x00005211, - 5814: 0x00005212, - 5815: 0x0000520E, - 5816: 0x00005216, - 5817: 0x000052A3, - 5818: 0x00005308, - 5819: 0x00005321, - 5820: 0x00005320, - 5821: 0x00005370, - 5822: 0x00005371, - 5823: 0x00005409, - 5824: 0x0000540F, - 5825: 0x0000540C, - 5826: 0x0000540A, - 5827: 0x00005410, - 5828: 0x00005401, - 5829: 0x0000540B, - 5830: 0x00005404, - 5831: 0x00005411, - 5832: 0x0000540D, - 5833: 0x00005408, - 5834: 0x00005403, - 5835: 0x0000540E, - 5836: 0x00005406, - 5837: 0x00005412, - 5838: 0x000056E0, - 5839: 0x000056DE, - 5840: 0x000056DD, - 5841: 0x00005733, - 5842: 0x00005730, - 5843: 0x00005728, - 5844: 0x0000572D, - 5845: 0x0000572C, - 5846: 0x0000572F, - 5847: 0x00005729, - 5848: 0x00005919, - 5849: 0x0000591A, - 5850: 0x00005937, - 5851: 0x00005938, - 5852: 0x00005984, - 5853: 0x00005978, - 5854: 0x00005983, - 5855: 0x0000597D, - 5856: 0x00005979, - 5857: 0x00005982, - 5858: 0x00005981, - 5859: 0x00005B57, - 5860: 0x00005B58, - 5861: 0x00005B87, - 5862: 0x00005B88, - 5863: 0x00005B85, - 5864: 0x00005B89, - 5865: 0x00005BFA, - 5866: 0x00005C16, - 5867: 0x00005C79, - 5868: 0x00005DDE, - 5869: 0x00005E06, - 5870: 0x00005E76, - 5871: 0x00005E74, - 5872: 0x00005F0F, - 5873: 0x00005F1B, - 5874: 0x00005FD9, - 5875: 0x00005FD6, - 5876: 0x0000620E, - 5877: 0x0000620C, - 5878: 0x0000620D, - 5879: 0x00006210, - 5880: 0x00006263, - 5881: 0x0000625B, - 5882: 0x00006258, - 5883: 0x00006536, - 5884: 0x000065E9, - 5885: 0x000065E8, - 5886: 0x000065EC, - 5887: 0x000065ED, - 5888: 0x000066F2, - 5889: 0x000066F3, - 5890: 0x00006709, - 5891: 0x0000673D, - 5892: 0x00006734, - 5893: 0x00006731, - 5894: 0x00006735, - 5895: 0x00006B21, - 5896: 0x00006B64, - 5897: 0x00006B7B, - 5898: 0x00006C16, - 5899: 0x00006C5D, - 5900: 0x00006C57, - 5901: 0x00006C59, - 5902: 0x00006C5F, - 5903: 0x00006C60, - 5904: 0x00006C50, - 5905: 0x00006C55, - 5906: 0x00006C61, - 5907: 0x00006C5B, - 5908: 0x00006C4D, - 5909: 0x00006C4E, - 5910: 0x00007070, - 5911: 0x0000725F, - 5912: 0x0000725D, - 5913: 0x0000767E, - 5914: 0x00007AF9, - 5915: 0x00007C73, - 5916: 0x00007CF8, - 5917: 0x00007F36, - 5918: 0x00007F8A, - 5919: 0x00007FBD, - 5920: 0x00008001, - 5921: 0x00008003, - 5922: 0x0000800C, - 5923: 0x00008012, - 5924: 0x00008033, - 5925: 0x0000807F, - 5926: 0x00008089, - 5927: 0x0000808B, - 5928: 0x0000808C, - 5929: 0x000081E3, - 5930: 0x000081EA, - 5931: 0x000081F3, - 5932: 0x000081FC, - 5933: 0x0000820C, - 5934: 0x0000821B, - 5935: 0x0000821F, - 5936: 0x0000826E, - 5937: 0x00008272, - 5938: 0x0000827E, - 5939: 0x0000866B, - 5940: 0x00008840, - 5941: 0x0000884C, - 5942: 0x00008863, - 5943: 0x0000897F, - 5944: 0x00009621, - 5945: 0x00004E32, - 5946: 0x00004EA8, - 5947: 0x00004F4D, - 5948: 0x00004F4F, - 5949: 0x00004F47, - 5950: 0x00004F57, - 5951: 0x00004F5E, - 5952: 0x00004F34, - 5953: 0x00004F5B, - 5954: 0x00004F55, - 5955: 0x00004F30, - 5956: 0x00004F50, - 5957: 0x00004F51, - 5958: 0x00004F3D, - 5959: 0x00004F3A, - 5960: 0x00004F38, - 5961: 0x00004F43, - 5962: 0x00004F54, - 5963: 0x00004F3C, - 5964: 0x00004F46, - 5965: 0x00004F63, - 5966: 0x00004F5C, - 5967: 0x00004F60, - 5968: 0x00004F2F, - 5969: 0x00004F4E, - 5970: 0x00004F36, - 5971: 0x00004F59, - 5972: 0x00004F5D, - 5973: 0x00004F48, - 5974: 0x00004F5A, - 5975: 0x0000514C, - 5976: 0x0000514B, - 5977: 0x0000514D, - 5978: 0x00005175, - 5979: 0x000051B6, - 5980: 0x000051B7, - 5981: 0x00005225, - 5982: 0x00005224, - 5983: 0x00005229, - 5984: 0x0000522A, - 5985: 0x00005228, - 5986: 0x000052AB, - 5987: 0x000052A9, - 5988: 0x000052AA, - 5989: 0x000052AC, - 5990: 0x00005323, - 5991: 0x00005373, - 5992: 0x00005375, - 5993: 0x0000541D, - 5994: 0x0000542D, - 5995: 0x0000541E, - 5996: 0x0000543E, - 5997: 0x00005426, - 5998: 0x0000544E, - 5999: 0x00005427, - 6000: 0x00005446, - 6001: 0x00005443, - 6002: 0x00005433, - 6003: 0x00005448, - 6004: 0x00005442, - 6005: 0x0000541B, - 6006: 0x00005429, - 6007: 0x0000544A, - 6008: 0x00005439, - 6009: 0x0000543B, - 6010: 0x00005438, - 6011: 0x0000542E, - 6012: 0x00005435, - 6013: 0x00005436, - 6014: 0x00005420, - 6015: 0x0000543C, - 6016: 0x00005440, - 6017: 0x00005431, - 6018: 0x0000542B, - 6019: 0x0000541F, - 6020: 0x0000542C, - 6021: 0x000056EA, - 6022: 0x000056F0, - 6023: 0x000056E4, - 6024: 0x000056EB, - 6025: 0x0000574A, - 6026: 0x00005751, - 6027: 0x00005740, - 6028: 0x0000574D, - 6029: 0x00005747, - 6030: 0x0000574E, - 6031: 0x0000573E, - 6032: 0x00005750, - 6033: 0x0000574F, - 6034: 0x0000573B, - 6035: 0x000058EF, - 6036: 0x0000593E, - 6037: 0x0000599D, - 6038: 0x00005992, - 6039: 0x000059A8, - 6040: 0x0000599E, - 6041: 0x000059A3, - 6042: 0x00005999, - 6043: 0x00005996, - 6044: 0x0000598D, - 6045: 0x000059A4, - 6046: 0x00005993, - 6047: 0x0000598A, - 6048: 0x000059A5, - 6049: 0x00005B5D, - 6050: 0x00005B5C, - 6051: 0x00005B5A, - 6052: 0x00005B5B, - 6053: 0x00005B8C, - 6054: 0x00005B8B, - 6055: 0x00005B8F, - 6056: 0x00005C2C, - 6057: 0x00005C40, - 6058: 0x00005C41, - 6059: 0x00005C3F, - 6060: 0x00005C3E, - 6061: 0x00005C90, - 6062: 0x00005C91, - 6063: 0x00005C94, - 6064: 0x00005C8C, - 6065: 0x00005DEB, - 6066: 0x00005E0C, - 6067: 0x00005E8F, - 6068: 0x00005E87, - 6069: 0x00005E8A, - 6070: 0x00005EF7, - 6071: 0x00005F04, - 6072: 0x00005F1F, - 6073: 0x00005F64, - 6074: 0x00005F62, - 6075: 0x00005F77, - 6076: 0x00005F79, - 6077: 0x00005FD8, - 6078: 0x00005FCC, - 6079: 0x00005FD7, - 6080: 0x00005FCD, - 6081: 0x00005FF1, - 6082: 0x00005FEB, - 6083: 0x00005FF8, - 6084: 0x00005FEA, - 6085: 0x00006212, - 6086: 0x00006211, - 6087: 0x00006284, - 6088: 0x00006297, - 6089: 0x00006296, - 6090: 0x00006280, - 6091: 0x00006276, - 6092: 0x00006289, - 6093: 0x0000626D, - 6094: 0x0000628A, - 6095: 0x0000627C, - 6096: 0x0000627E, - 6097: 0x00006279, - 6098: 0x00006273, - 6099: 0x00006292, - 6100: 0x0000626F, - 6101: 0x00006298, - 6102: 0x0000626E, - 6103: 0x00006295, - 6104: 0x00006293, - 6105: 0x00006291, - 6106: 0x00006286, - 6107: 0x00006539, - 6108: 0x0000653B, - 6109: 0x00006538, - 6110: 0x000065F1, - 6111: 0x000066F4, - 6112: 0x0000675F, - 6113: 0x0000674E, - 6114: 0x0000674F, - 6115: 0x00006750, - 6116: 0x00006751, - 6117: 0x0000675C, - 6118: 0x00006756, - 6119: 0x0000675E, - 6120: 0x00006749, - 6121: 0x00006746, - 6122: 0x00006760, - 6123: 0x00006753, - 6124: 0x00006757, - 6125: 0x00006B65, - 6126: 0x00006BCF, - 6127: 0x00006C42, - 6128: 0x00006C5E, - 6129: 0x00006C99, - 6130: 0x00006C81, - 6131: 0x00006C88, - 6132: 0x00006C89, - 6133: 0x00006C85, - 6134: 0x00006C9B, - 6135: 0x00006C6A, - 6136: 0x00006C7A, - 6137: 0x00006C90, - 6138: 0x00006C70, - 6139: 0x00006C8C, - 6140: 0x00006C68, - 6141: 0x00006C96, - 6142: 0x00006C92, - 6143: 0x00006C7D, - 6144: 0x00006C83, - 6145: 0x00006C72, - 6146: 0x00006C7E, - 6147: 0x00006C74, - 6148: 0x00006C86, - 6149: 0x00006C76, - 6150: 0x00006C8D, - 6151: 0x00006C94, - 6152: 0x00006C98, - 6153: 0x00006C82, - 6154: 0x00007076, - 6155: 0x0000707C, - 6156: 0x0000707D, - 6157: 0x00007078, - 6158: 0x00007262, - 6159: 0x00007261, - 6160: 0x00007260, - 6161: 0x000072C4, - 6162: 0x000072C2, - 6163: 0x00007396, - 6164: 0x0000752C, - 6165: 0x0000752B, - 6166: 0x00007537, - 6167: 0x00007538, - 6168: 0x00007682, - 6169: 0x000076EF, - 6170: 0x000077E3, - 6171: 0x000079C1, - 6172: 0x000079C0, - 6173: 0x000079BF, - 6174: 0x00007A76, - 6175: 0x00007CFB, - 6176: 0x00007F55, - 6177: 0x00008096, - 6178: 0x00008093, - 6179: 0x0000809D, - 6180: 0x00008098, - 6181: 0x0000809B, - 6182: 0x0000809A, - 6183: 0x000080B2, - 6184: 0x0000826F, - 6185: 0x00008292, - 6186: 0x0000828B, - 6187: 0x0000828D, - 6188: 0x0000898B, - 6189: 0x000089D2, - 6190: 0x00008A00, - 6191: 0x00008C37, - 6192: 0x00008C46, - 6193: 0x00008C55, - 6194: 0x00008C9D, - 6195: 0x00008D64, - 6196: 0x00008D70, - 6197: 0x00008DB3, - 6198: 0x00008EAB, - 6199: 0x00008ECA, - 6200: 0x00008F9B, - 6201: 0x00008FB0, - 6202: 0x00008FC2, - 6203: 0x00008FC6, - 6204: 0x00008FC5, - 6205: 0x00008FC4, - 6206: 0x00005DE1, - 6207: 0x00009091, - 6208: 0x000090A2, - 6209: 0x000090AA, - 6210: 0x000090A6, - 6211: 0x000090A3, - 6212: 0x00009149, - 6213: 0x000091C6, - 6214: 0x000091CC, - 6215: 0x00009632, - 6216: 0x0000962E, - 6217: 0x00009631, - 6218: 0x0000962A, - 6219: 0x0000962C, - 6220: 0x00004E26, - 6221: 0x00004E56, - 6222: 0x00004E73, - 6223: 0x00004E8B, - 6224: 0x00004E9B, - 6225: 0x00004E9E, - 6226: 0x00004EAB, - 6227: 0x00004EAC, - 6228: 0x00004F6F, - 6229: 0x00004F9D, - 6230: 0x00004F8D, - 6231: 0x00004F73, - 6232: 0x00004F7F, - 6233: 0x00004F6C, - 6234: 0x00004F9B, - 6235: 0x00004F8B, - 6236: 0x00004F86, - 6237: 0x00004F83, - 6238: 0x00004F70, - 6239: 0x00004F75, - 6240: 0x00004F88, - 6241: 0x00004F69, - 6242: 0x00004F7B, - 6243: 0x00004F96, - 6244: 0x00004F7E, - 6245: 0x00004F8F, - 6246: 0x00004F91, - 6247: 0x00004F7A, - 6248: 0x00005154, - 6249: 0x00005152, - 6250: 0x00005155, - 6251: 0x00005169, - 6252: 0x00005177, - 6253: 0x00005176, - 6254: 0x00005178, - 6255: 0x000051BD, - 6256: 0x000051FD, - 6257: 0x0000523B, - 6258: 0x00005238, - 6259: 0x00005237, - 6260: 0x0000523A, - 6261: 0x00005230, - 6262: 0x0000522E, - 6263: 0x00005236, - 6264: 0x00005241, - 6265: 0x000052BE, - 6266: 0x000052BB, - 6267: 0x00005352, - 6268: 0x00005354, - 6269: 0x00005353, - 6270: 0x00005351, - 6271: 0x00005366, - 6272: 0x00005377, - 6273: 0x00005378, - 6274: 0x00005379, - 6275: 0x000053D6, - 6276: 0x000053D4, - 6277: 0x000053D7, - 6278: 0x00005473, - 6279: 0x00005475, - 6280: 0x00005496, - 6281: 0x00005478, - 6282: 0x00005495, - 6283: 0x00005480, - 6284: 0x0000547B, - 6285: 0x00005477, - 6286: 0x00005484, - 6287: 0x00005492, - 6288: 0x00005486, - 6289: 0x0000547C, - 6290: 0x00005490, - 6291: 0x00005471, - 6292: 0x00005476, - 6293: 0x0000548C, - 6294: 0x0000549A, - 6295: 0x00005462, - 6296: 0x00005468, - 6297: 0x0000548B, - 6298: 0x0000547D, - 6299: 0x0000548E, - 6300: 0x000056FA, - 6301: 0x00005783, - 6302: 0x00005777, - 6303: 0x0000576A, - 6304: 0x00005769, - 6305: 0x00005761, - 6306: 0x00005766, - 6307: 0x00005764, - 6308: 0x0000577C, - 6309: 0x0000591C, - 6310: 0x00005949, - 6311: 0x00005947, - 6312: 0x00005948, - 6313: 0x00005944, - 6314: 0x00005954, - 6315: 0x000059BE, - 6316: 0x000059BB, - 6317: 0x000059D4, - 6318: 0x000059B9, - 6319: 0x000059AE, - 6320: 0x000059D1, - 6321: 0x000059C6, - 6322: 0x000059D0, - 6323: 0x000059CD, - 6324: 0x000059CB, - 6325: 0x000059D3, - 6326: 0x000059CA, - 6327: 0x000059AF, - 6328: 0x000059B3, - 6329: 0x000059D2, - 6330: 0x000059C5, - 6331: 0x00005B5F, - 6332: 0x00005B64, - 6333: 0x00005B63, - 6334: 0x00005B97, - 6335: 0x00005B9A, - 6336: 0x00005B98, - 6337: 0x00005B9C, - 6338: 0x00005B99, - 6339: 0x00005B9B, - 6340: 0x00005C1A, - 6341: 0x00005C48, - 6342: 0x00005C45, - 6343: 0x00005C46, - 6344: 0x00005CB7, - 6345: 0x00005CA1, - 6346: 0x00005CB8, - 6347: 0x00005CA9, - 6348: 0x00005CAB, - 6349: 0x00005CB1, - 6350: 0x00005CB3, - 6351: 0x00005E18, - 6352: 0x00005E1A, - 6353: 0x00005E16, - 6354: 0x00005E15, - 6355: 0x00005E1B, - 6356: 0x00005E11, - 6357: 0x00005E78, - 6358: 0x00005E9A, - 6359: 0x00005E97, - 6360: 0x00005E9C, - 6361: 0x00005E95, - 6362: 0x00005E96, - 6363: 0x00005EF6, - 6364: 0x00005F26, - 6365: 0x00005F27, - 6366: 0x00005F29, - 6367: 0x00005F80, - 6368: 0x00005F81, - 6369: 0x00005F7F, - 6370: 0x00005F7C, - 6371: 0x00005FDD, - 6372: 0x00005FE0, - 6373: 0x00005FFD, - 6374: 0x00005FF5, - 6375: 0x00005FFF, - 6376: 0x0000600F, - 6377: 0x00006014, - 6378: 0x0000602F, - 6379: 0x00006035, - 6380: 0x00006016, - 6381: 0x0000602A, - 6382: 0x00006015, - 6383: 0x00006021, - 6384: 0x00006027, - 6385: 0x00006029, - 6386: 0x0000602B, - 6387: 0x0000601B, - 6388: 0x00006216, - 6389: 0x00006215, - 6390: 0x0000623F, - 6391: 0x0000623E, - 6392: 0x00006240, - 6393: 0x0000627F, - 6394: 0x000062C9, - 6395: 0x000062CC, - 6396: 0x000062C4, - 6397: 0x000062BF, - 6398: 0x000062C2, - 6399: 0x000062B9, - 6400: 0x000062D2, - 6401: 0x000062DB, - 6402: 0x000062AB, - 6403: 0x000062D3, - 6404: 0x000062D4, - 6405: 0x000062CB, - 6406: 0x000062C8, - 6407: 0x000062A8, - 6408: 0x000062BD, - 6409: 0x000062BC, - 6410: 0x000062D0, - 6411: 0x000062D9, - 6412: 0x000062C7, - 6413: 0x000062CD, - 6414: 0x000062B5, - 6415: 0x000062DA, - 6416: 0x000062B1, - 6417: 0x000062D8, - 6418: 0x000062D6, - 6419: 0x000062D7, - 6420: 0x000062C6, - 6421: 0x000062AC, - 6422: 0x000062CE, - 6423: 0x0000653E, - 6424: 0x000065A7, - 6425: 0x000065BC, - 6426: 0x000065FA, - 6427: 0x00006614, - 6428: 0x00006613, - 6429: 0x0000660C, - 6430: 0x00006606, - 6431: 0x00006602, - 6432: 0x0000660E, - 6433: 0x00006600, - 6434: 0x0000660F, - 6435: 0x00006615, - 6436: 0x0000660A, - 6437: 0x00006607, - 6438: 0x0000670D, - 6439: 0x0000670B, - 6440: 0x0000676D, - 6441: 0x0000678B, - 6442: 0x00006795, - 6443: 0x00006771, - 6444: 0x0000679C, - 6445: 0x00006773, - 6446: 0x00006777, - 6447: 0x00006787, - 6448: 0x0000679D, - 6449: 0x00006797, - 6450: 0x0000676F, - 6451: 0x00006770, - 6452: 0x0000677F, - 6453: 0x00006789, - 6454: 0x0000677E, - 6455: 0x00006790, - 6456: 0x00006775, - 6457: 0x0000679A, - 6458: 0x00006793, - 6459: 0x0000677C, - 6460: 0x0000676A, - 6461: 0x00006772, - 6462: 0x00006B23, - 6463: 0x00006B66, - 6464: 0x00006B67, - 6465: 0x00006B7F, - 6466: 0x00006C13, - 6467: 0x00006C1B, - 6468: 0x00006CE3, - 6469: 0x00006CE8, - 6470: 0x00006CF3, - 6471: 0x00006CB1, - 6472: 0x00006CCC, - 6473: 0x00006CE5, - 6474: 0x00006CB3, - 6475: 0x00006CBD, - 6476: 0x00006CBE, - 6477: 0x00006CBC, - 6478: 0x00006CE2, - 6479: 0x00006CAB, - 6480: 0x00006CD5, - 6481: 0x00006CD3, - 6482: 0x00006CB8, - 6483: 0x00006CC4, - 6484: 0x00006CB9, - 6485: 0x00006CC1, - 6486: 0x00006CAE, - 6487: 0x00006CD7, - 6488: 0x00006CC5, - 6489: 0x00006CF1, - 6490: 0x00006CBF, - 6491: 0x00006CBB, - 6492: 0x00006CE1, - 6493: 0x00006CDB, - 6494: 0x00006CCA, - 6495: 0x00006CAC, - 6496: 0x00006CEF, - 6497: 0x00006CDC, - 6498: 0x00006CD6, - 6499: 0x00006CE0, - 6500: 0x00007095, - 6501: 0x0000708E, - 6502: 0x00007092, - 6503: 0x0000708A, - 6504: 0x00007099, - 6505: 0x0000722C, - 6506: 0x0000722D, - 6507: 0x00007238, - 6508: 0x00007248, - 6509: 0x00007267, - 6510: 0x00007269, - 6511: 0x000072C0, - 6512: 0x000072CE, - 6513: 0x000072D9, - 6514: 0x000072D7, - 6515: 0x000072D0, - 6516: 0x000073A9, - 6517: 0x000073A8, - 6518: 0x0000739F, - 6519: 0x000073AB, - 6520: 0x000073A5, - 6521: 0x0000753D, - 6522: 0x0000759D, - 6523: 0x00007599, - 6524: 0x0000759A, - 6525: 0x00007684, - 6526: 0x000076C2, - 6527: 0x000076F2, - 6528: 0x000076F4, - 6529: 0x000077E5, - 6530: 0x000077FD, - 6531: 0x0000793E, - 6532: 0x00007940, - 6533: 0x00007941, - 6534: 0x000079C9, - 6535: 0x000079C8, - 6536: 0x00007A7A, - 6537: 0x00007A79, - 6538: 0x00007AFA, - 6539: 0x00007CFE, - 6540: 0x00007F54, - 6541: 0x00007F8C, - 6542: 0x00007F8B, - 6543: 0x00008005, - 6544: 0x000080BA, - 6545: 0x000080A5, - 6546: 0x000080A2, - 6547: 0x000080B1, - 6548: 0x000080A1, - 6549: 0x000080AB, - 6550: 0x000080A9, - 6551: 0x000080B4, - 6552: 0x000080AA, - 6553: 0x000080AF, - 6554: 0x000081E5, - 6555: 0x000081FE, - 6556: 0x0000820D, - 6557: 0x000082B3, - 6558: 0x0000829D, - 6559: 0x00008299, - 6560: 0x000082AD, - 6561: 0x000082BD, - 6562: 0x0000829F, - 6563: 0x000082B9, - 6564: 0x000082B1, - 6565: 0x000082AC, - 6566: 0x000082A5, - 6567: 0x000082AF, - 6568: 0x000082B8, - 6569: 0x000082A3, - 6570: 0x000082B0, - 6571: 0x000082BE, - 6572: 0x000082B7, - 6573: 0x0000864E, - 6574: 0x00008671, - 6575: 0x0000521D, - 6576: 0x00008868, - 6577: 0x00008ECB, - 6578: 0x00008FCE, - 6579: 0x00008FD4, - 6580: 0x00008FD1, - 6581: 0x000090B5, - 6582: 0x000090B8, - 6583: 0x000090B1, - 6584: 0x000090B6, - 6585: 0x000091C7, - 6586: 0x000091D1, - 6587: 0x00009577, - 6588: 0x00009580, - 6589: 0x0000961C, - 6590: 0x00009640, - 6591: 0x0000963F, - 6592: 0x0000963B, - 6593: 0x00009644, - 6594: 0x00009642, - 6595: 0x000096B9, - 6596: 0x000096E8, - 6597: 0x00009752, - 6598: 0x0000975E, - 6599: 0x00004E9F, - 6600: 0x00004EAD, - 6601: 0x00004EAE, - 6602: 0x00004FE1, - 6603: 0x00004FB5, - 6604: 0x00004FAF, - 6605: 0x00004FBF, - 6606: 0x00004FE0, - 6607: 0x00004FD1, - 6608: 0x00004FCF, - 6609: 0x00004FDD, - 6610: 0x00004FC3, - 6611: 0x00004FB6, - 6612: 0x00004FD8, - 6613: 0x00004FDF, - 6614: 0x00004FCA, - 6615: 0x00004FD7, - 6616: 0x00004FAE, - 6617: 0x00004FD0, - 6618: 0x00004FC4, - 6619: 0x00004FC2, - 6620: 0x00004FDA, - 6621: 0x00004FCE, - 6622: 0x00004FDE, - 6623: 0x00004FB7, - 6624: 0x00005157, - 6625: 0x00005192, - 6626: 0x00005191, - 6627: 0x000051A0, - 6628: 0x0000524E, - 6629: 0x00005243, - 6630: 0x0000524A, - 6631: 0x0000524D, - 6632: 0x0000524C, - 6633: 0x0000524B, - 6634: 0x00005247, - 6635: 0x000052C7, - 6636: 0x000052C9, - 6637: 0x000052C3, - 6638: 0x000052C1, - 6639: 0x0000530D, - 6640: 0x00005357, - 6641: 0x0000537B, - 6642: 0x0000539A, - 6643: 0x000053DB, - 6644: 0x000054AC, - 6645: 0x000054C0, - 6646: 0x000054A8, - 6647: 0x000054CE, - 6648: 0x000054C9, - 6649: 0x000054B8, - 6650: 0x000054A6, - 6651: 0x000054B3, - 6652: 0x000054C7, - 6653: 0x000054C2, - 6654: 0x000054BD, - 6655: 0x000054AA, - 6656: 0x000054C1, - 6657: 0x000054C4, - 6658: 0x000054C8, - 6659: 0x000054AF, - 6660: 0x000054AB, - 6661: 0x000054B1, - 6662: 0x000054BB, - 6663: 0x000054A9, - 6664: 0x000054A7, - 6665: 0x000054BF, - 6666: 0x000056FF, - 6667: 0x00005782, - 6668: 0x0000578B, - 6669: 0x000057A0, - 6670: 0x000057A3, - 6671: 0x000057A2, - 6672: 0x000057CE, - 6673: 0x000057AE, - 6674: 0x00005793, - 6675: 0x00005955, - 6676: 0x00005951, - 6677: 0x0000594F, - 6678: 0x0000594E, - 6679: 0x00005950, - 6680: 0x000059DC, - 6681: 0x000059D8, - 6682: 0x000059FF, - 6683: 0x000059E3, - 6684: 0x000059E8, - 6685: 0x00005A03, - 6686: 0x000059E5, - 6687: 0x000059EA, - 6688: 0x000059DA, - 6689: 0x000059E6, - 6690: 0x00005A01, - 6691: 0x000059FB, - 6692: 0x00005B69, - 6693: 0x00005BA3, - 6694: 0x00005BA6, - 6695: 0x00005BA4, - 6696: 0x00005BA2, - 6697: 0x00005BA5, - 6698: 0x00005C01, - 6699: 0x00005C4E, - 6700: 0x00005C4F, - 6701: 0x00005C4D, - 6702: 0x00005C4B, - 6703: 0x00005CD9, - 6704: 0x00005CD2, - 6705: 0x00005DF7, - 6706: 0x00005E1D, - 6707: 0x00005E25, - 6708: 0x00005E1F, - 6709: 0x00005E7D, - 6710: 0x00005EA0, - 6711: 0x00005EA6, - 6712: 0x00005EFA, - 6713: 0x00005F08, - 6714: 0x00005F2D, - 6715: 0x00005F65, - 6716: 0x00005F88, - 6717: 0x00005F85, - 6718: 0x00005F8A, - 6719: 0x00005F8B, - 6720: 0x00005F87, - 6721: 0x00005F8C, - 6722: 0x00005F89, - 6723: 0x00006012, - 6724: 0x0000601D, - 6725: 0x00006020, - 6726: 0x00006025, - 6727: 0x0000600E, - 6728: 0x00006028, - 6729: 0x0000604D, - 6730: 0x00006070, - 6731: 0x00006068, - 6732: 0x00006062, - 6733: 0x00006046, - 6734: 0x00006043, - 6735: 0x0000606C, - 6736: 0x0000606B, - 6737: 0x0000606A, - 6738: 0x00006064, - 6739: 0x00006241, - 6740: 0x000062DC, - 6741: 0x00006316, - 6742: 0x00006309, - 6743: 0x000062FC, - 6744: 0x000062ED, - 6745: 0x00006301, - 6746: 0x000062EE, - 6747: 0x000062FD, - 6748: 0x00006307, - 6749: 0x000062F1, - 6750: 0x000062F7, - 6751: 0x000062EF, - 6752: 0x000062EC, - 6753: 0x000062FE, - 6754: 0x000062F4, - 6755: 0x00006311, - 6756: 0x00006302, - 6757: 0x0000653F, - 6758: 0x00006545, - 6759: 0x000065AB, - 6760: 0x000065BD, - 6761: 0x000065E2, - 6762: 0x00006625, - 6763: 0x0000662D, - 6764: 0x00006620, - 6765: 0x00006627, - 6766: 0x0000662F, - 6767: 0x0000661F, - 6768: 0x00006628, - 6769: 0x00006631, - 6770: 0x00006624, - 6771: 0x000066F7, - 6772: 0x000067FF, - 6773: 0x000067D3, - 6774: 0x000067F1, - 6775: 0x000067D4, - 6776: 0x000067D0, - 6777: 0x000067EC, - 6778: 0x000067B6, - 6779: 0x000067AF, - 6780: 0x000067F5, - 6781: 0x000067E9, - 6782: 0x000067EF, - 6783: 0x000067C4, - 6784: 0x000067D1, - 6785: 0x000067B4, - 6786: 0x000067DA, - 6787: 0x000067E5, - 6788: 0x000067B8, - 6789: 0x000067CF, - 6790: 0x000067DE, - 6791: 0x000067F3, - 6792: 0x000067B0, - 6793: 0x000067D9, - 6794: 0x000067E2, - 6795: 0x000067DD, - 6796: 0x000067D2, - 6797: 0x00006B6A, - 6798: 0x00006B83, - 6799: 0x00006B86, - 6800: 0x00006BB5, - 6801: 0x00006BD2, - 6802: 0x00006BD7, - 6803: 0x00006C1F, - 6804: 0x00006CC9, - 6805: 0x00006D0B, - 6806: 0x00006D32, - 6807: 0x00006D2A, - 6808: 0x00006D41, - 6809: 0x00006D25, - 6810: 0x00006D0C, - 6811: 0x00006D31, - 6812: 0x00006D1E, - 6813: 0x00006D17, - 6814: 0x00006D3B, - 6815: 0x00006D3D, - 6816: 0x00006D3E, - 6817: 0x00006D36, - 6818: 0x00006D1B, - 6819: 0x00006CF5, - 6820: 0x00006D39, - 6821: 0x00006D27, - 6822: 0x00006D38, - 6823: 0x00006D29, - 6824: 0x00006D2E, - 6825: 0x00006D35, - 6826: 0x00006D0E, - 6827: 0x00006D2B, - 6828: 0x000070AB, - 6829: 0x000070BA, - 6830: 0x000070B3, - 6831: 0x000070AC, - 6832: 0x000070AF, - 6833: 0x000070AD, - 6834: 0x000070B8, - 6835: 0x000070AE, - 6836: 0x000070A4, - 6837: 0x00007230, - 6838: 0x00007272, - 6839: 0x0000726F, - 6840: 0x00007274, - 6841: 0x000072E9, - 6842: 0x000072E0, - 6843: 0x000072E1, - 6844: 0x000073B7, - 6845: 0x000073CA, - 6846: 0x000073BB, - 6847: 0x000073B2, - 6848: 0x000073CD, - 6849: 0x000073C0, - 6850: 0x000073B3, - 6851: 0x0000751A, - 6852: 0x0000752D, - 6853: 0x0000754F, - 6854: 0x0000754C, - 6855: 0x0000754E, - 6856: 0x0000754B, - 6857: 0x000075AB, - 6858: 0x000075A4, - 6859: 0x000075A5, - 6860: 0x000075A2, - 6861: 0x000075A3, - 6862: 0x00007678, - 6863: 0x00007686, - 6864: 0x00007687, - 6865: 0x00007688, - 6866: 0x000076C8, - 6867: 0x000076C6, - 6868: 0x000076C3, - 6869: 0x000076C5, - 6870: 0x00007701, - 6871: 0x000076F9, - 6872: 0x000076F8, - 6873: 0x00007709, - 6874: 0x0000770B, - 6875: 0x000076FE, - 6876: 0x000076FC, - 6877: 0x00007707, - 6878: 0x000077DC, - 6879: 0x00007802, - 6880: 0x00007814, - 6881: 0x0000780C, - 6882: 0x0000780D, - 6883: 0x00007946, - 6884: 0x00007949, - 6885: 0x00007948, - 6886: 0x00007947, - 6887: 0x000079B9, - 6888: 0x000079BA, - 6889: 0x000079D1, - 6890: 0x000079D2, - 6891: 0x000079CB, - 6892: 0x00007A7F, - 6893: 0x00007A81, - 6894: 0x00007AFF, - 6895: 0x00007AFD, - 6896: 0x00007C7D, - 6897: 0x00007D02, - 6898: 0x00007D05, - 6899: 0x00007D00, - 6900: 0x00007D09, - 6901: 0x00007D07, - 6902: 0x00007D04, - 6903: 0x00007D06, - 6904: 0x00007F38, - 6905: 0x00007F8E, - 6906: 0x00007FBF, - 6907: 0x00008004, - 6908: 0x00008010, - 6909: 0x0000800D, - 6910: 0x00008011, - 6911: 0x00008036, - 6912: 0x000080D6, - 6913: 0x000080E5, - 6914: 0x000080DA, - 6915: 0x000080C3, - 6916: 0x000080C4, - 6917: 0x000080CC, - 6918: 0x000080E1, - 6919: 0x000080DB, - 6920: 0x000080CE, - 6921: 0x000080DE, - 6922: 0x000080E4, - 6923: 0x000080DD, - 6924: 0x000081F4, - 6925: 0x00008222, - 6926: 0x000082E7, - 6927: 0x00008303, - 6928: 0x00008305, - 6929: 0x000082E3, - 6930: 0x000082DB, - 6931: 0x000082E6, - 6932: 0x00008304, - 6933: 0x000082E5, - 6934: 0x00008302, - 6935: 0x00008309, - 6936: 0x000082D2, - 6937: 0x000082D7, - 6938: 0x000082F1, - 6939: 0x00008301, - 6940: 0x000082DC, - 6941: 0x000082D4, - 6942: 0x000082D1, - 6943: 0x000082DE, - 6944: 0x000082D3, - 6945: 0x000082DF, - 6946: 0x000082EF, - 6947: 0x00008306, - 6948: 0x00008650, - 6949: 0x00008679, - 6950: 0x0000867B, - 6951: 0x0000867A, - 6952: 0x0000884D, - 6953: 0x0000886B, - 6954: 0x00008981, - 6955: 0x000089D4, - 6956: 0x00008A08, - 6957: 0x00008A02, - 6958: 0x00008A03, - 6959: 0x00008C9E, - 6960: 0x00008CA0, - 6961: 0x00008D74, - 6962: 0x00008D73, - 6963: 0x00008DB4, - 6964: 0x00008ECD, - 6965: 0x00008ECC, - 6966: 0x00008FF0, - 6967: 0x00008FE6, - 6968: 0x00008FE2, - 6969: 0x00008FEA, - 6970: 0x00008FE5, - 6971: 0x00008FED, - 6972: 0x00008FEB, - 6973: 0x00008FE4, - 6974: 0x00008FE8, - 6975: 0x000090CA, - 6976: 0x000090CE, - 6977: 0x000090C1, - 6978: 0x000090C3, - 6979: 0x0000914B, - 6980: 0x0000914A, - 6981: 0x000091CD, - 6982: 0x00009582, - 6983: 0x00009650, - 6984: 0x0000964B, - 6985: 0x0000964C, - 6986: 0x0000964D, - 6987: 0x00009762, - 6988: 0x00009769, - 6989: 0x000097CB, - 6990: 0x000097ED, - 6991: 0x000097F3, - 6992: 0x00009801, - 6993: 0x000098A8, - 6994: 0x000098DB, - 6995: 0x000098DF, - 6996: 0x00009996, - 6997: 0x00009999, - 6998: 0x00004E58, - 6999: 0x00004EB3, - 7000: 0x0000500C, - 7001: 0x0000500D, - 7002: 0x00005023, - 7003: 0x00004FEF, - 7004: 0x00005026, - 7005: 0x00005025, - 7006: 0x00004FF8, - 7007: 0x00005029, - 7008: 0x00005016, - 7009: 0x00005006, - 7010: 0x0000503C, - 7011: 0x0000501F, - 7012: 0x0000501A, - 7013: 0x00005012, - 7014: 0x00005011, - 7015: 0x00004FFA, - 7016: 0x00005000, - 7017: 0x00005014, - 7018: 0x00005028, - 7019: 0x00004FF1, - 7020: 0x00005021, - 7021: 0x0000500B, - 7022: 0x00005019, - 7023: 0x00005018, - 7024: 0x00004FF3, - 7025: 0x00004FEE, - 7026: 0x0000502D, - 7027: 0x0000502A, - 7028: 0x00004FFE, - 7029: 0x0000502B, - 7030: 0x00005009, - 7031: 0x0000517C, - 7032: 0x000051A4, - 7033: 0x000051A5, - 7034: 0x000051A2, - 7035: 0x000051CD, - 7036: 0x000051CC, - 7037: 0x000051C6, - 7038: 0x000051CB, - 7039: 0x00005256, - 7040: 0x0000525C, - 7041: 0x00005254, - 7042: 0x0000525B, - 7043: 0x0000525D, - 7044: 0x0000532A, - 7045: 0x0000537F, - 7046: 0x0000539F, - 7047: 0x0000539D, - 7048: 0x000053DF, - 7049: 0x000054E8, - 7050: 0x00005510, - 7051: 0x00005501, - 7052: 0x00005537, - 7053: 0x000054FC, - 7054: 0x000054E5, - 7055: 0x000054F2, - 7056: 0x00005506, - 7057: 0x000054FA, - 7058: 0x00005514, - 7059: 0x000054E9, - 7060: 0x000054ED, - 7061: 0x000054E1, - 7062: 0x00005509, - 7063: 0x000054EE, - 7064: 0x000054EA, - 7065: 0x000054E6, - 7066: 0x00005527, - 7067: 0x00005507, - 7068: 0x000054FD, - 7069: 0x0000550F, - 7070: 0x00005703, - 7071: 0x00005704, - 7072: 0x000057C2, - 7073: 0x000057D4, - 7074: 0x000057CB, - 7075: 0x000057C3, - 7076: 0x00005809, - 7077: 0x0000590F, - 7078: 0x00005957, - 7079: 0x00005958, - 7080: 0x0000595A, - 7081: 0x00005A11, - 7082: 0x00005A18, - 7083: 0x00005A1C, - 7084: 0x00005A1F, - 7085: 0x00005A1B, - 7086: 0x00005A13, - 7087: 0x000059EC, - 7088: 0x00005A20, - 7089: 0x00005A23, - 7090: 0x00005A29, - 7091: 0x00005A25, - 7092: 0x00005A0C, - 7093: 0x00005A09, - 7094: 0x00005B6B, - 7095: 0x00005C58, - 7096: 0x00005BB0, - 7097: 0x00005BB3, - 7098: 0x00005BB6, - 7099: 0x00005BB4, - 7100: 0x00005BAE, - 7101: 0x00005BB5, - 7102: 0x00005BB9, - 7103: 0x00005BB8, - 7104: 0x00005C04, - 7105: 0x00005C51, - 7106: 0x00005C55, - 7107: 0x00005C50, - 7108: 0x00005CED, - 7109: 0x00005CFD, - 7110: 0x00005CFB, - 7111: 0x00005CEA, - 7112: 0x00005CE8, - 7113: 0x00005CF0, - 7114: 0x00005CF6, - 7115: 0x00005D01, - 7116: 0x00005CF4, - 7117: 0x00005DEE, - 7118: 0x00005E2D, - 7119: 0x00005E2B, - 7120: 0x00005EAB, - 7121: 0x00005EAD, - 7122: 0x00005EA7, - 7123: 0x00005F31, - 7124: 0x00005F92, - 7125: 0x00005F91, - 7126: 0x00005F90, - 7127: 0x00006059, - 7128: 0x00006063, - 7129: 0x00006065, - 7130: 0x00006050, - 7131: 0x00006055, - 7132: 0x0000606D, - 7133: 0x00006069, - 7134: 0x0000606F, - 7135: 0x00006084, - 7136: 0x0000609F, - 7137: 0x0000609A, - 7138: 0x0000608D, - 7139: 0x00006094, - 7140: 0x0000608C, - 7141: 0x00006085, - 7142: 0x00006096, - 7143: 0x00006247, - 7144: 0x000062F3, - 7145: 0x00006308, - 7146: 0x000062FF, - 7147: 0x0000634E, - 7148: 0x0000633E, - 7149: 0x0000632F, - 7150: 0x00006355, - 7151: 0x00006342, - 7152: 0x00006346, - 7153: 0x0000634F, - 7154: 0x00006349, - 7155: 0x0000633A, - 7156: 0x00006350, - 7157: 0x0000633D, - 7158: 0x0000632A, - 7159: 0x0000632B, - 7160: 0x00006328, - 7161: 0x0000634D, - 7162: 0x0000634C, - 7163: 0x00006548, - 7164: 0x00006549, - 7165: 0x00006599, - 7166: 0x000065C1, - 7167: 0x000065C5, - 7168: 0x00006642, - 7169: 0x00006649, - 7170: 0x0000664F, - 7171: 0x00006643, - 7172: 0x00006652, - 7173: 0x0000664C, - 7174: 0x00006645, - 7175: 0x00006641, - 7176: 0x000066F8, - 7177: 0x00006714, - 7178: 0x00006715, - 7179: 0x00006717, - 7180: 0x00006821, - 7181: 0x00006838, - 7182: 0x00006848, - 7183: 0x00006846, - 7184: 0x00006853, - 7185: 0x00006839, - 7186: 0x00006842, - 7187: 0x00006854, - 7188: 0x00006829, - 7189: 0x000068B3, - 7190: 0x00006817, - 7191: 0x0000684C, - 7192: 0x00006851, - 7193: 0x0000683D, - 7194: 0x000067F4, - 7195: 0x00006850, - 7196: 0x00006840, - 7197: 0x0000683C, - 7198: 0x00006843, - 7199: 0x0000682A, - 7200: 0x00006845, - 7201: 0x00006813, - 7202: 0x00006818, - 7203: 0x00006841, - 7204: 0x00006B8A, - 7205: 0x00006B89, - 7206: 0x00006BB7, - 7207: 0x00006C23, - 7208: 0x00006C27, - 7209: 0x00006C28, - 7210: 0x00006C26, - 7211: 0x00006C24, - 7212: 0x00006CF0, - 7213: 0x00006D6A, - 7214: 0x00006D95, - 7215: 0x00006D88, - 7216: 0x00006D87, - 7217: 0x00006D66, - 7218: 0x00006D78, - 7219: 0x00006D77, - 7220: 0x00006D59, - 7221: 0x00006D93, - 7222: 0x00006D6C, - 7223: 0x00006D89, - 7224: 0x00006D6E, - 7225: 0x00006D5A, - 7226: 0x00006D74, - 7227: 0x00006D69, - 7228: 0x00006D8C, - 7229: 0x00006D8A, - 7230: 0x00006D79, - 7231: 0x00006D85, - 7232: 0x00006D65, - 7233: 0x00006D94, - 7234: 0x000070CA, - 7235: 0x000070D8, - 7236: 0x000070E4, - 7237: 0x000070D9, - 7238: 0x000070C8, - 7239: 0x000070CF, - 7240: 0x00007239, - 7241: 0x00007279, - 7242: 0x000072FC, - 7243: 0x000072F9, - 7244: 0x000072FD, - 7245: 0x000072F8, - 7246: 0x000072F7, - 7247: 0x00007386, - 7248: 0x000073ED, - 7249: 0x00007409, - 7250: 0x000073EE, - 7251: 0x000073E0, - 7252: 0x000073EA, - 7253: 0x000073DE, - 7254: 0x00007554, - 7255: 0x0000755D, - 7256: 0x0000755C, - 7257: 0x0000755A, - 7258: 0x00007559, - 7259: 0x000075BE, - 7260: 0x000075C5, - 7261: 0x000075C7, - 7262: 0x000075B2, - 7263: 0x000075B3, - 7264: 0x000075BD, - 7265: 0x000075BC, - 7266: 0x000075B9, - 7267: 0x000075C2, - 7268: 0x000075B8, - 7269: 0x0000768B, - 7270: 0x000076B0, - 7271: 0x000076CA, - 7272: 0x000076CD, - 7273: 0x000076CE, - 7274: 0x00007729, - 7275: 0x0000771F, - 7276: 0x00007720, - 7277: 0x00007728, - 7278: 0x000077E9, - 7279: 0x00007830, - 7280: 0x00007827, - 7281: 0x00007838, - 7282: 0x0000781D, - 7283: 0x00007834, - 7284: 0x00007837, - 7285: 0x00007825, - 7286: 0x0000782D, - 7287: 0x00007820, - 7288: 0x0000781F, - 7289: 0x00007832, - 7290: 0x00007955, - 7291: 0x00007950, - 7292: 0x00007960, - 7293: 0x0000795F, - 7294: 0x00007956, - 7295: 0x0000795E, - 7296: 0x0000795D, - 7297: 0x00007957, - 7298: 0x0000795A, - 7299: 0x000079E4, - 7300: 0x000079E3, - 7301: 0x000079E7, - 7302: 0x000079DF, - 7303: 0x000079E6, - 7304: 0x000079E9, - 7305: 0x000079D8, - 7306: 0x00007A84, - 7307: 0x00007A88, - 7308: 0x00007AD9, - 7309: 0x00007B06, - 7310: 0x00007B11, - 7311: 0x00007C89, - 7312: 0x00007D21, - 7313: 0x00007D17, - 7314: 0x00007D0B, - 7315: 0x00007D0A, - 7316: 0x00007D20, - 7317: 0x00007D22, - 7318: 0x00007D14, - 7319: 0x00007D10, - 7320: 0x00007D15, - 7321: 0x00007D1A, - 7322: 0x00007D1C, - 7323: 0x00007D0D, - 7324: 0x00007D19, - 7325: 0x00007D1B, - 7326: 0x00007F3A, - 7327: 0x00007F5F, - 7328: 0x00007F94, - 7329: 0x00007FC5, - 7330: 0x00007FC1, - 7331: 0x00008006, - 7332: 0x00008018, - 7333: 0x00008015, - 7334: 0x00008019, - 7335: 0x00008017, - 7336: 0x0000803D, - 7337: 0x0000803F, - 7338: 0x000080F1, - 7339: 0x00008102, - 7340: 0x000080F0, - 7341: 0x00008105, - 7342: 0x000080ED, - 7343: 0x000080F4, - 7344: 0x00008106, - 7345: 0x000080F8, - 7346: 0x000080F3, - 7347: 0x00008108, - 7348: 0x000080FD, - 7349: 0x0000810A, - 7350: 0x000080FC, - 7351: 0x000080EF, - 7352: 0x000081ED, - 7353: 0x000081EC, - 7354: 0x00008200, - 7355: 0x00008210, - 7356: 0x0000822A, - 7357: 0x0000822B, - 7358: 0x00008228, - 7359: 0x0000822C, - 7360: 0x000082BB, - 7361: 0x0000832B, - 7362: 0x00008352, - 7363: 0x00008354, - 7364: 0x0000834A, - 7365: 0x00008338, - 7366: 0x00008350, - 7367: 0x00008349, - 7368: 0x00008335, - 7369: 0x00008334, - 7370: 0x0000834F, - 7371: 0x00008332, - 7372: 0x00008339, - 7373: 0x00008336, - 7374: 0x00008317, - 7375: 0x00008340, - 7376: 0x00008331, - 7377: 0x00008328, - 7378: 0x00008343, - 7379: 0x00008654, - 7380: 0x0000868A, - 7381: 0x000086AA, - 7382: 0x00008693, - 7383: 0x000086A4, - 7384: 0x000086A9, - 7385: 0x0000868C, - 7386: 0x000086A3, - 7387: 0x0000869C, - 7388: 0x00008870, - 7389: 0x00008877, - 7390: 0x00008881, - 7391: 0x00008882, - 7392: 0x0000887D, - 7393: 0x00008879, - 7394: 0x00008A18, - 7395: 0x00008A10, - 7396: 0x00008A0E, - 7397: 0x00008A0C, - 7398: 0x00008A15, - 7399: 0x00008A0A, - 7400: 0x00008A17, - 7401: 0x00008A13, - 7402: 0x00008A16, - 7403: 0x00008A0F, - 7404: 0x00008A11, - 7405: 0x00008C48, - 7406: 0x00008C7A, - 7407: 0x00008C79, - 7408: 0x00008CA1, - 7409: 0x00008CA2, - 7410: 0x00008D77, - 7411: 0x00008EAC, - 7412: 0x00008ED2, - 7413: 0x00008ED4, - 7414: 0x00008ECF, - 7415: 0x00008FB1, - 7416: 0x00009001, - 7417: 0x00009006, - 7418: 0x00008FF7, - 7419: 0x00009000, - 7420: 0x00008FFA, - 7421: 0x00008FF4, - 7422: 0x00009003, - 7423: 0x00008FFD, - 7424: 0x00009005, - 7425: 0x00008FF8, - 7426: 0x00009095, - 7427: 0x000090E1, - 7428: 0x000090DD, - 7429: 0x000090E2, - 7430: 0x00009152, - 7431: 0x0000914D, - 7432: 0x0000914C, - 7433: 0x000091D8, - 7434: 0x000091DD, - 7435: 0x000091D7, - 7436: 0x000091DC, - 7437: 0x000091D9, - 7438: 0x00009583, - 7439: 0x00009662, - 7440: 0x00009663, - 7441: 0x00009661, - 7442: 0x0000965B, - 7443: 0x0000965D, - 7444: 0x00009664, - 7445: 0x00009658, - 7446: 0x0000965E, - 7447: 0x000096BB, - 7448: 0x000098E2, - 7449: 0x000099AC, - 7450: 0x00009AA8, - 7451: 0x00009AD8, - 7452: 0x00009B25, - 7453: 0x00009B32, - 7454: 0x00009B3C, - 7455: 0x00004E7E, - 7456: 0x0000507A, - 7457: 0x0000507D, - 7458: 0x0000505C, - 7459: 0x00005047, - 7460: 0x00005043, - 7461: 0x0000504C, - 7462: 0x0000505A, - 7463: 0x00005049, - 7464: 0x00005065, - 7465: 0x00005076, - 7466: 0x0000504E, - 7467: 0x00005055, - 7468: 0x00005075, - 7469: 0x00005074, - 7470: 0x00005077, - 7471: 0x0000504F, - 7472: 0x0000500F, - 7473: 0x0000506F, - 7474: 0x0000506D, - 7475: 0x0000515C, - 7476: 0x00005195, - 7477: 0x000051F0, - 7478: 0x0000526A, - 7479: 0x0000526F, - 7480: 0x000052D2, - 7481: 0x000052D9, - 7482: 0x000052D8, - 7483: 0x000052D5, - 7484: 0x00005310, - 7485: 0x0000530F, - 7486: 0x00005319, - 7487: 0x0000533F, - 7488: 0x00005340, - 7489: 0x0000533E, - 7490: 0x000053C3, - 7491: 0x000066FC, - 7492: 0x00005546, - 7493: 0x0000556A, - 7494: 0x00005566, - 7495: 0x00005544, - 7496: 0x0000555E, - 7497: 0x00005561, - 7498: 0x00005543, - 7499: 0x0000554A, - 7500: 0x00005531, - 7501: 0x00005556, - 7502: 0x0000554F, - 7503: 0x00005555, - 7504: 0x0000552F, - 7505: 0x00005564, - 7506: 0x00005538, - 7507: 0x0000552E, - 7508: 0x0000555C, - 7509: 0x0000552C, - 7510: 0x00005563, - 7511: 0x00005533, - 7512: 0x00005541, - 7513: 0x00005557, - 7514: 0x00005708, - 7515: 0x0000570B, - 7516: 0x00005709, - 7517: 0x000057DF, - 7518: 0x00005805, - 7519: 0x0000580A, - 7520: 0x00005806, - 7521: 0x000057E0, - 7522: 0x000057E4, - 7523: 0x000057FA, - 7524: 0x00005802, - 7525: 0x00005835, - 7526: 0x000057F7, - 7527: 0x000057F9, - 7528: 0x00005920, - 7529: 0x00005962, - 7530: 0x00005A36, - 7531: 0x00005A41, - 7532: 0x00005A49, - 7533: 0x00005A66, - 7534: 0x00005A6A, - 7535: 0x00005A40, - 7536: 0x00005A3C, - 7537: 0x00005A62, - 7538: 0x00005A5A, - 7539: 0x00005A46, - 7540: 0x00005A4A, - 7541: 0x00005B70, - 7542: 0x00005BC7, - 7543: 0x00005BC5, - 7544: 0x00005BC4, - 7545: 0x00005BC2, - 7546: 0x00005BBF, - 7547: 0x00005BC6, - 7548: 0x00005C09, - 7549: 0x00005C08, - 7550: 0x00005C07, - 7551: 0x00005C60, - 7552: 0x00005C5C, - 7553: 0x00005C5D, - 7554: 0x00005D07, - 7555: 0x00005D06, - 7556: 0x00005D0E, - 7557: 0x00005D1B, - 7558: 0x00005D16, - 7559: 0x00005D22, - 7560: 0x00005D11, - 7561: 0x00005D29, - 7562: 0x00005D14, - 7563: 0x00005D19, - 7564: 0x00005D24, - 7565: 0x00005D27, - 7566: 0x00005D17, - 7567: 0x00005DE2, - 7568: 0x00005E38, - 7569: 0x00005E36, - 7570: 0x00005E33, - 7571: 0x00005E37, - 7572: 0x00005EB7, - 7573: 0x00005EB8, - 7574: 0x00005EB6, - 7575: 0x00005EB5, - 7576: 0x00005EBE, - 7577: 0x00005F35, - 7578: 0x00005F37, - 7579: 0x00005F57, - 7580: 0x00005F6C, - 7581: 0x00005F69, - 7582: 0x00005F6B, - 7583: 0x00005F97, - 7584: 0x00005F99, - 7585: 0x00005F9E, - 7586: 0x00005F98, - 7587: 0x00005FA1, - 7588: 0x00005FA0, - 7589: 0x00005F9C, - 7590: 0x0000607F, - 7591: 0x000060A3, - 7592: 0x00006089, - 7593: 0x000060A0, - 7594: 0x000060A8, - 7595: 0x000060CB, - 7596: 0x000060B4, - 7597: 0x000060E6, - 7598: 0x000060BD, - 7599: 0x000060C5, - 7600: 0x000060BB, - 7601: 0x000060B5, - 7602: 0x000060DC, - 7603: 0x000060BC, - 7604: 0x000060D8, - 7605: 0x000060D5, - 7606: 0x000060C6, - 7607: 0x000060DF, - 7608: 0x000060B8, - 7609: 0x000060DA, - 7610: 0x000060C7, - 7611: 0x0000621A, - 7612: 0x0000621B, - 7613: 0x00006248, - 7614: 0x000063A0, - 7615: 0x000063A7, - 7616: 0x00006372, - 7617: 0x00006396, - 7618: 0x000063A2, - 7619: 0x000063A5, - 7620: 0x00006377, - 7621: 0x00006367, - 7622: 0x00006398, - 7623: 0x000063AA, - 7624: 0x00006371, - 7625: 0x000063A9, - 7626: 0x00006389, - 7627: 0x00006383, - 7628: 0x0000639B, - 7629: 0x0000636B, - 7630: 0x000063A8, - 7631: 0x00006384, - 7632: 0x00006388, - 7633: 0x00006399, - 7634: 0x000063A1, - 7635: 0x000063AC, - 7636: 0x00006392, - 7637: 0x0000638F, - 7638: 0x00006380, - 7639: 0x0000637B, - 7640: 0x00006369, - 7641: 0x00006368, - 7642: 0x0000637A, - 7643: 0x0000655D, - 7644: 0x00006556, - 7645: 0x00006551, - 7646: 0x00006559, - 7647: 0x00006557, - 7648: 0x0000555F, - 7649: 0x0000654F, - 7650: 0x00006558, - 7651: 0x00006555, - 7652: 0x00006554, - 7653: 0x0000659C, - 7654: 0x0000659B, - 7655: 0x000065AC, - 7656: 0x000065CF, - 7657: 0x000065CB, - 7658: 0x000065CC, - 7659: 0x000065CE, - 7660: 0x0000665D, - 7661: 0x0000665A, - 7662: 0x00006664, - 7663: 0x00006668, - 7664: 0x00006666, - 7665: 0x0000665E, - 7666: 0x000066F9, - 7667: 0x000052D7, - 7668: 0x0000671B, - 7669: 0x00006881, - 7670: 0x000068AF, - 7671: 0x000068A2, - 7672: 0x00006893, - 7673: 0x000068B5, - 7674: 0x0000687F, - 7675: 0x00006876, - 7676: 0x000068B1, - 7677: 0x000068A7, - 7678: 0x00006897, - 7679: 0x000068B0, - 7680: 0x00006883, - 7681: 0x000068C4, - 7682: 0x000068AD, - 7683: 0x00006886, - 7684: 0x00006885, - 7685: 0x00006894, - 7686: 0x0000689D, - 7687: 0x000068A8, - 7688: 0x0000689F, - 7689: 0x000068A1, - 7690: 0x00006882, - 7691: 0x00006B32, - 7692: 0x00006BBA, - 7693: 0x00006BEB, - 7694: 0x00006BEC, - 7695: 0x00006C2B, - 7696: 0x00006D8E, - 7697: 0x00006DBC, - 7698: 0x00006DF3, - 7699: 0x00006DD9, - 7700: 0x00006DB2, - 7701: 0x00006DE1, - 7702: 0x00006DCC, - 7703: 0x00006DE4, - 7704: 0x00006DFB, - 7705: 0x00006DFA, - 7706: 0x00006E05, - 7707: 0x00006DC7, - 7708: 0x00006DCB, - 7709: 0x00006DAF, - 7710: 0x00006DD1, - 7711: 0x00006DAE, - 7712: 0x00006DDE, - 7713: 0x00006DF9, - 7714: 0x00006DB8, - 7715: 0x00006DF7, - 7716: 0x00006DF5, - 7717: 0x00006DC5, - 7718: 0x00006DD2, - 7719: 0x00006E1A, - 7720: 0x00006DB5, - 7721: 0x00006DDA, - 7722: 0x00006DEB, - 7723: 0x00006DD8, - 7724: 0x00006DEA, - 7725: 0x00006DF1, - 7726: 0x00006DEE, - 7727: 0x00006DE8, - 7728: 0x00006DC6, - 7729: 0x00006DC4, - 7730: 0x00006DAA, - 7731: 0x00006DEC, - 7732: 0x00006DBF, - 7733: 0x00006DE6, - 7734: 0x000070F9, - 7735: 0x00007109, - 7736: 0x0000710A, - 7737: 0x000070FD, - 7738: 0x000070EF, - 7739: 0x0000723D, - 7740: 0x0000727D, - 7741: 0x00007281, - 7742: 0x0000731C, - 7743: 0x0000731B, - 7744: 0x00007316, - 7745: 0x00007313, - 7746: 0x00007319, - 7747: 0x00007387, - 7748: 0x00007405, - 7749: 0x0000740A, - 7750: 0x00007403, - 7751: 0x00007406, - 7752: 0x000073FE, - 7753: 0x0000740D, - 7754: 0x000074E0, - 7755: 0x000074F6, - 7756: 0x000074F7, - 7757: 0x0000751C, - 7758: 0x00007522, - 7759: 0x00007565, - 7760: 0x00007566, - 7761: 0x00007562, - 7762: 0x00007570, - 7763: 0x0000758F, - 7764: 0x000075D4, - 7765: 0x000075D5, - 7766: 0x000075B5, - 7767: 0x000075CA, - 7768: 0x000075CD, - 7769: 0x0000768E, - 7770: 0x000076D4, - 7771: 0x000076D2, - 7772: 0x000076DB, - 7773: 0x00007737, - 7774: 0x0000773E, - 7775: 0x0000773C, - 7776: 0x00007736, - 7777: 0x00007738, - 7778: 0x0000773A, - 7779: 0x0000786B, - 7780: 0x00007843, - 7781: 0x0000784E, - 7782: 0x00007965, - 7783: 0x00007968, - 7784: 0x0000796D, - 7785: 0x000079FB, - 7786: 0x00007A92, - 7787: 0x00007A95, - 7788: 0x00007B20, - 7789: 0x00007B28, - 7790: 0x00007B1B, - 7791: 0x00007B2C, - 7792: 0x00007B26, - 7793: 0x00007B19, - 7794: 0x00007B1E, - 7795: 0x00007B2E, - 7796: 0x00007C92, - 7797: 0x00007C97, - 7798: 0x00007C95, - 7799: 0x00007D46, - 7800: 0x00007D43, - 7801: 0x00007D71, - 7802: 0x00007D2E, - 7803: 0x00007D39, - 7804: 0x00007D3C, - 7805: 0x00007D40, - 7806: 0x00007D30, - 7807: 0x00007D33, - 7808: 0x00007D44, - 7809: 0x00007D2F, - 7810: 0x00007D42, - 7811: 0x00007D32, - 7812: 0x00007D31, - 7813: 0x00007F3D, - 7814: 0x00007F9E, - 7815: 0x00007F9A, - 7816: 0x00007FCC, - 7817: 0x00007FCE, - 7818: 0x00007FD2, - 7819: 0x0000801C, - 7820: 0x0000804A, - 7821: 0x00008046, - 7822: 0x0000812F, - 7823: 0x00008116, - 7824: 0x00008123, - 7825: 0x0000812B, - 7826: 0x00008129, - 7827: 0x00008130, - 7828: 0x00008124, - 7829: 0x00008202, - 7830: 0x00008235, - 7831: 0x00008237, - 7832: 0x00008236, - 7833: 0x00008239, - 7834: 0x0000838E, - 7835: 0x0000839E, - 7836: 0x00008398, - 7837: 0x00008378, - 7838: 0x000083A2, - 7839: 0x00008396, - 7840: 0x000083BD, - 7841: 0x000083AB, - 7842: 0x00008392, - 7843: 0x0000838A, - 7844: 0x00008393, - 7845: 0x00008389, - 7846: 0x000083A0, - 7847: 0x00008377, - 7848: 0x0000837B, - 7849: 0x0000837C, - 7850: 0x00008386, - 7851: 0x000083A7, - 7852: 0x00008655, - 7853: 0x00005F6A, - 7854: 0x000086C7, - 7855: 0x000086C0, - 7856: 0x000086B6, - 7857: 0x000086C4, - 7858: 0x000086B5, - 7859: 0x000086C6, - 7860: 0x000086CB, - 7861: 0x000086B1, - 7862: 0x000086AF, - 7863: 0x000086C9, - 7864: 0x00008853, - 7865: 0x0000889E, - 7866: 0x00008888, - 7867: 0x000088AB, - 7868: 0x00008892, - 7869: 0x00008896, - 7870: 0x0000888D, - 7871: 0x0000888B, - 7872: 0x00008993, - 7873: 0x0000898F, - 7874: 0x00008A2A, - 7875: 0x00008A1D, - 7876: 0x00008A23, - 7877: 0x00008A25, - 7878: 0x00008A31, - 7879: 0x00008A2D, - 7880: 0x00008A1F, - 7881: 0x00008A1B, - 7882: 0x00008A22, - 7883: 0x00008C49, - 7884: 0x00008C5A, - 7885: 0x00008CA9, - 7886: 0x00008CAC, - 7887: 0x00008CAB, - 7888: 0x00008CA8, - 7889: 0x00008CAA, - 7890: 0x00008CA7, - 7891: 0x00008D67, - 7892: 0x00008D66, - 7893: 0x00008DBE, - 7894: 0x00008DBA, - 7895: 0x00008EDB, - 7896: 0x00008EDF, - 7897: 0x00009019, - 7898: 0x0000900D, - 7899: 0x0000901A, - 7900: 0x00009017, - 7901: 0x00009023, - 7902: 0x0000901F, - 7903: 0x0000901D, - 7904: 0x00009010, - 7905: 0x00009015, - 7906: 0x0000901E, - 7907: 0x00009020, - 7908: 0x0000900F, - 7909: 0x00009022, - 7910: 0x00009016, - 7911: 0x0000901B, - 7912: 0x00009014, - 7913: 0x000090E8, - 7914: 0x000090ED, - 7915: 0x000090FD, - 7916: 0x00009157, - 7917: 0x000091CE, - 7918: 0x000091F5, - 7919: 0x000091E6, - 7920: 0x000091E3, - 7921: 0x000091E7, - 7922: 0x000091ED, - 7923: 0x000091E9, - 7924: 0x00009589, - 7925: 0x0000966A, - 7926: 0x00009675, - 7927: 0x00009673, - 7928: 0x00009678, - 7929: 0x00009670, - 7930: 0x00009674, - 7931: 0x00009676, - 7932: 0x00009677, - 7933: 0x0000966C, - 7934: 0x000096C0, - 7935: 0x000096EA, - 7936: 0x000096E9, - 7937: 0x00007AE0, - 7938: 0x00007ADF, - 7939: 0x00009802, - 7940: 0x00009803, - 7941: 0x00009B5A, - 7942: 0x00009CE5, - 7943: 0x00009E75, - 7944: 0x00009E7F, - 7945: 0x00009EA5, - 7946: 0x00009EBB, - 7947: 0x000050A2, - 7948: 0x0000508D, - 7949: 0x00005085, - 7950: 0x00005099, - 7951: 0x00005091, - 7952: 0x00005080, - 7953: 0x00005096, - 7954: 0x00005098, - 7955: 0x0000509A, - 7956: 0x00006700, - 7957: 0x000051F1, - 7958: 0x00005272, - 7959: 0x00005274, - 7960: 0x00005275, - 7961: 0x00005269, - 7962: 0x000052DE, - 7963: 0x000052DD, - 7964: 0x000052DB, - 7965: 0x0000535A, - 7966: 0x000053A5, - 7967: 0x0000557B, - 7968: 0x00005580, - 7969: 0x000055A7, - 7970: 0x0000557C, - 7971: 0x0000558A, - 7972: 0x0000559D, - 7973: 0x00005598, - 7974: 0x00005582, - 7975: 0x0000559C, - 7976: 0x000055AA, - 7977: 0x00005594, - 7978: 0x00005587, - 7979: 0x0000558B, - 7980: 0x00005583, - 7981: 0x000055B3, - 7982: 0x000055AE, - 7983: 0x0000559F, - 7984: 0x0000553E, - 7985: 0x000055B2, - 7986: 0x0000559A, - 7987: 0x000055BB, - 7988: 0x000055AC, - 7989: 0x000055B1, - 7990: 0x0000557E, - 7991: 0x00005589, - 7992: 0x000055AB, - 7993: 0x00005599, - 7994: 0x0000570D, - 7995: 0x0000582F, - 7996: 0x0000582A, - 7997: 0x00005834, - 7998: 0x00005824, - 7999: 0x00005830, - 8000: 0x00005831, - 8001: 0x00005821, - 8002: 0x0000581D, - 8003: 0x00005820, - 8004: 0x000058F9, - 8005: 0x000058FA, - 8006: 0x00005960, - 8007: 0x00005A77, - 8008: 0x00005A9A, - 8009: 0x00005A7F, - 8010: 0x00005A92, - 8011: 0x00005A9B, - 8012: 0x00005AA7, - 8013: 0x00005B73, - 8014: 0x00005B71, - 8015: 0x00005BD2, - 8016: 0x00005BCC, - 8017: 0x00005BD3, - 8018: 0x00005BD0, - 8019: 0x00005C0A, - 8020: 0x00005C0B, - 8021: 0x00005C31, - 8022: 0x00005D4C, - 8023: 0x00005D50, - 8024: 0x00005D34, - 8025: 0x00005D47, - 8026: 0x00005DFD, - 8027: 0x00005E45, - 8028: 0x00005E3D, - 8029: 0x00005E40, - 8030: 0x00005E43, - 8031: 0x00005E7E, - 8032: 0x00005ECA, - 8033: 0x00005EC1, - 8034: 0x00005EC2, - 8035: 0x00005EC4, - 8036: 0x00005F3C, - 8037: 0x00005F6D, - 8038: 0x00005FA9, - 8039: 0x00005FAA, - 8040: 0x00005FA8, - 8041: 0x000060D1, - 8042: 0x000060E1, - 8043: 0x000060B2, - 8044: 0x000060B6, - 8045: 0x000060E0, - 8046: 0x0000611C, - 8047: 0x00006123, - 8048: 0x000060FA, - 8049: 0x00006115, - 8050: 0x000060F0, - 8051: 0x000060FB, - 8052: 0x000060F4, - 8053: 0x00006168, - 8054: 0x000060F1, - 8055: 0x0000610E, - 8056: 0x000060F6, - 8057: 0x00006109, - 8058: 0x00006100, - 8059: 0x00006112, - 8060: 0x0000621F, - 8061: 0x00006249, - 8062: 0x000063A3, - 8063: 0x0000638C, - 8064: 0x000063CF, - 8065: 0x000063C0, - 8066: 0x000063E9, - 8067: 0x000063C9, - 8068: 0x000063C6, - 8069: 0x000063CD, - 8070: 0x000063D2, - 8071: 0x000063E3, - 8072: 0x000063D0, - 8073: 0x000063E1, - 8074: 0x000063D6, - 8075: 0x000063ED, - 8076: 0x000063EE, - 8077: 0x00006376, - 8078: 0x000063F4, - 8079: 0x000063EA, - 8080: 0x000063DB, - 8081: 0x00006452, - 8082: 0x000063DA, - 8083: 0x000063F9, - 8084: 0x0000655E, - 8085: 0x00006566, - 8086: 0x00006562, - 8087: 0x00006563, - 8088: 0x00006591, - 8089: 0x00006590, - 8090: 0x000065AF, - 8091: 0x0000666E, - 8092: 0x00006670, - 8093: 0x00006674, - 8094: 0x00006676, - 8095: 0x0000666F, - 8096: 0x00006691, - 8097: 0x0000667A, - 8098: 0x0000667E, - 8099: 0x00006677, - 8100: 0x000066FE, - 8101: 0x000066FF, - 8102: 0x0000671F, - 8103: 0x0000671D, - 8104: 0x000068FA, - 8105: 0x000068D5, - 8106: 0x000068E0, - 8107: 0x000068D8, - 8108: 0x000068D7, - 8109: 0x00006905, - 8110: 0x000068DF, - 8111: 0x000068F5, - 8112: 0x000068EE, - 8113: 0x000068E7, - 8114: 0x000068F9, - 8115: 0x000068D2, - 8116: 0x000068F2, - 8117: 0x000068E3, - 8118: 0x000068CB, - 8119: 0x000068CD, - 8120: 0x0000690D, - 8121: 0x00006912, - 8122: 0x0000690E, - 8123: 0x000068C9, - 8124: 0x000068DA, - 8125: 0x0000696E, - 8126: 0x000068FB, - 8127: 0x00006B3E, - 8128: 0x00006B3A, - 8129: 0x00006B3D, - 8130: 0x00006B98, - 8131: 0x00006B96, - 8132: 0x00006BBC, - 8133: 0x00006BEF, - 8134: 0x00006C2E, - 8135: 0x00006C2F, - 8136: 0x00006C2C, - 8137: 0x00006E2F, - 8138: 0x00006E38, - 8139: 0x00006E54, - 8140: 0x00006E21, - 8141: 0x00006E32, - 8142: 0x00006E67, - 8143: 0x00006E4A, - 8144: 0x00006E20, - 8145: 0x00006E25, - 8146: 0x00006E23, - 8147: 0x00006E1B, - 8148: 0x00006E5B, - 8149: 0x00006E58, - 8150: 0x00006E24, - 8151: 0x00006E56, - 8152: 0x00006E6E, - 8153: 0x00006E2D, - 8154: 0x00006E26, - 8155: 0x00006E6F, - 8156: 0x00006E34, - 8157: 0x00006E4D, - 8158: 0x00006E3A, - 8159: 0x00006E2C, - 8160: 0x00006E43, - 8161: 0x00006E1D, - 8162: 0x00006E3E, - 8163: 0x00006ECB, - 8164: 0x00006E89, - 8165: 0x00006E19, - 8166: 0x00006E4E, - 8167: 0x00006E63, - 8168: 0x00006E44, - 8169: 0x00006E72, - 8170: 0x00006E69, - 8171: 0x00006E5F, - 8172: 0x00007119, - 8173: 0x0000711A, - 8174: 0x00007126, - 8175: 0x00007130, - 8176: 0x00007121, - 8177: 0x00007136, - 8178: 0x0000716E, - 8179: 0x0000711C, - 8180: 0x0000724C, - 8181: 0x00007284, - 8182: 0x00007280, - 8183: 0x00007336, - 8184: 0x00007325, - 8185: 0x00007334, - 8186: 0x00007329, - 8187: 0x0000743A, - 8188: 0x0000742A, - 8189: 0x00007433, - 8190: 0x00007422, - 8191: 0x00007425, - 8192: 0x00007435, - 8193: 0x00007436, - 8194: 0x00007434, - 8195: 0x0000742F, - 8196: 0x0000741B, - 8197: 0x00007426, - 8198: 0x00007428, - 8199: 0x00007525, - 8200: 0x00007526, - 8201: 0x0000756B, - 8202: 0x0000756A, - 8203: 0x000075E2, - 8204: 0x000075DB, - 8205: 0x000075E3, - 8206: 0x000075D9, - 8207: 0x000075D8, - 8208: 0x000075DE, - 8209: 0x000075E0, - 8210: 0x0000767B, - 8211: 0x0000767C, - 8212: 0x00007696, - 8213: 0x00007693, - 8214: 0x000076B4, - 8215: 0x000076DC, - 8216: 0x0000774F, - 8217: 0x000077ED, - 8218: 0x0000785D, - 8219: 0x0000786C, - 8220: 0x0000786F, - 8221: 0x00007A0D, - 8222: 0x00007A08, - 8223: 0x00007A0B, - 8224: 0x00007A05, - 8225: 0x00007A00, - 8226: 0x00007A98, - 8227: 0x00007A97, - 8228: 0x00007A96, - 8229: 0x00007AE5, - 8230: 0x00007AE3, - 8231: 0x00007B49, - 8232: 0x00007B56, - 8233: 0x00007B46, - 8234: 0x00007B50, - 8235: 0x00007B52, - 8236: 0x00007B54, - 8237: 0x00007B4D, - 8238: 0x00007B4B, - 8239: 0x00007B4F, - 8240: 0x00007B51, - 8241: 0x00007C9F, - 8242: 0x00007CA5, - 8243: 0x00007D5E, - 8244: 0x00007D50, - 8245: 0x00007D68, - 8246: 0x00007D55, - 8247: 0x00007D2B, - 8248: 0x00007D6E, - 8249: 0x00007D72, - 8250: 0x00007D61, - 8251: 0x00007D66, - 8252: 0x00007D62, - 8253: 0x00007D70, - 8254: 0x00007D73, - 8255: 0x00005584, - 8256: 0x00007FD4, - 8257: 0x00007FD5, - 8258: 0x0000800B, - 8259: 0x00008052, - 8260: 0x00008085, - 8261: 0x00008155, - 8262: 0x00008154, - 8263: 0x0000814B, - 8264: 0x00008151, - 8265: 0x0000814E, - 8266: 0x00008139, - 8267: 0x00008146, - 8268: 0x0000813E, - 8269: 0x0000814C, - 8270: 0x00008153, - 8271: 0x00008174, - 8272: 0x00008212, - 8273: 0x0000821C, - 8274: 0x000083E9, - 8275: 0x00008403, - 8276: 0x000083F8, - 8277: 0x0000840D, - 8278: 0x000083E0, - 8279: 0x000083C5, - 8280: 0x0000840B, - 8281: 0x000083C1, - 8282: 0x000083EF, - 8283: 0x000083F1, - 8284: 0x000083F4, - 8285: 0x00008457, - 8286: 0x0000840A, - 8287: 0x000083F0, - 8288: 0x0000840C, - 8289: 0x000083CC, - 8290: 0x000083FD, - 8291: 0x000083F2, - 8292: 0x000083CA, - 8293: 0x00008438, - 8294: 0x0000840E, - 8295: 0x00008404, - 8296: 0x000083DC, - 8297: 0x00008407, - 8298: 0x000083D4, - 8299: 0x000083DF, - 8300: 0x0000865B, - 8301: 0x000086DF, - 8302: 0x000086D9, - 8303: 0x000086ED, - 8304: 0x000086D4, - 8305: 0x000086DB, - 8306: 0x000086E4, - 8307: 0x000086D0, - 8308: 0x000086DE, - 8309: 0x00008857, - 8310: 0x000088C1, - 8311: 0x000088C2, - 8312: 0x000088B1, - 8313: 0x00008983, - 8314: 0x00008996, - 8315: 0x00008A3B, - 8316: 0x00008A60, - 8317: 0x00008A55, - 8318: 0x00008A5E, - 8319: 0x00008A3C, - 8320: 0x00008A41, - 8321: 0x00008A54, - 8322: 0x00008A5B, - 8323: 0x00008A50, - 8324: 0x00008A46, - 8325: 0x00008A34, - 8326: 0x00008A3A, - 8327: 0x00008A36, - 8328: 0x00008A56, - 8329: 0x00008C61, - 8330: 0x00008C82, - 8331: 0x00008CAF, - 8332: 0x00008CBC, - 8333: 0x00008CB3, - 8334: 0x00008CBD, - 8335: 0x00008CC1, - 8336: 0x00008CBB, - 8337: 0x00008CC0, - 8338: 0x00008CB4, - 8339: 0x00008CB7, - 8340: 0x00008CB6, - 8341: 0x00008CBF, - 8342: 0x00008CB8, - 8343: 0x00008D8A, - 8344: 0x00008D85, - 8345: 0x00008D81, - 8346: 0x00008DCE, - 8347: 0x00008DDD, - 8348: 0x00008DCB, - 8349: 0x00008DDA, - 8350: 0x00008DD1, - 8351: 0x00008DCC, - 8352: 0x00008DDB, - 8353: 0x00008DC6, - 8354: 0x00008EFB, - 8355: 0x00008EF8, - 8356: 0x00008EFC, - 8357: 0x00008F9C, - 8358: 0x0000902E, - 8359: 0x00009035, - 8360: 0x00009031, - 8361: 0x00009038, - 8362: 0x00009032, - 8363: 0x00009036, - 8364: 0x00009102, - 8365: 0x000090F5, - 8366: 0x00009109, - 8367: 0x000090FE, - 8368: 0x00009163, - 8369: 0x00009165, - 8370: 0x000091CF, - 8371: 0x00009214, - 8372: 0x00009215, - 8373: 0x00009223, - 8374: 0x00009209, - 8375: 0x0000921E, - 8376: 0x0000920D, - 8377: 0x00009210, - 8378: 0x00009207, - 8379: 0x00009211, - 8380: 0x00009594, - 8381: 0x0000958F, - 8382: 0x0000958B, - 8383: 0x00009591, - 8384: 0x00009593, - 8385: 0x00009592, - 8386: 0x0000958E, - 8387: 0x0000968A, - 8388: 0x0000968E, - 8389: 0x0000968B, - 8390: 0x0000967D, - 8391: 0x00009685, - 8392: 0x00009686, - 8393: 0x0000968D, - 8394: 0x00009672, - 8395: 0x00009684, - 8396: 0x000096C1, - 8397: 0x000096C5, - 8398: 0x000096C4, - 8399: 0x000096C6, - 8400: 0x000096C7, - 8401: 0x000096EF, - 8402: 0x000096F2, - 8403: 0x000097CC, - 8404: 0x00009805, - 8405: 0x00009806, - 8406: 0x00009808, - 8407: 0x000098E7, - 8408: 0x000098EA, - 8409: 0x000098EF, - 8410: 0x000098E9, - 8411: 0x000098F2, - 8412: 0x000098ED, - 8413: 0x000099AE, - 8414: 0x000099AD, - 8415: 0x00009EC3, - 8416: 0x00009ECD, - 8417: 0x00009ED1, - 8418: 0x00004E82, - 8419: 0x000050AD, - 8420: 0x000050B5, - 8421: 0x000050B2, - 8422: 0x000050B3, - 8423: 0x000050C5, - 8424: 0x000050BE, - 8425: 0x000050AC, - 8426: 0x000050B7, - 8427: 0x000050BB, - 8428: 0x000050AF, - 8429: 0x000050C7, - 8430: 0x0000527F, - 8431: 0x00005277, - 8432: 0x0000527D, - 8433: 0x000052DF, - 8434: 0x000052E6, - 8435: 0x000052E4, - 8436: 0x000052E2, - 8437: 0x000052E3, - 8438: 0x0000532F, - 8439: 0x000055DF, - 8440: 0x000055E8, - 8441: 0x000055D3, - 8442: 0x000055E6, - 8443: 0x000055CE, - 8444: 0x000055DC, - 8445: 0x000055C7, - 8446: 0x000055D1, - 8447: 0x000055E3, - 8448: 0x000055E4, - 8449: 0x000055EF, - 8450: 0x000055DA, - 8451: 0x000055E1, - 8452: 0x000055C5, - 8453: 0x000055C6, - 8454: 0x000055E5, - 8455: 0x000055C9, - 8456: 0x00005712, - 8457: 0x00005713, - 8458: 0x0000585E, - 8459: 0x00005851, - 8460: 0x00005858, - 8461: 0x00005857, - 8462: 0x0000585A, - 8463: 0x00005854, - 8464: 0x0000586B, - 8465: 0x0000584C, - 8466: 0x0000586D, - 8467: 0x0000584A, - 8468: 0x00005862, - 8469: 0x00005852, - 8470: 0x0000584B, - 8471: 0x00005967, - 8472: 0x00005AC1, - 8473: 0x00005AC9, - 8474: 0x00005ACC, - 8475: 0x00005ABE, - 8476: 0x00005ABD, - 8477: 0x00005ABC, - 8478: 0x00005AB3, - 8479: 0x00005AC2, - 8480: 0x00005AB2, - 8481: 0x00005D69, - 8482: 0x00005D6F, - 8483: 0x00005E4C, - 8484: 0x00005E79, - 8485: 0x00005EC9, - 8486: 0x00005EC8, - 8487: 0x00005F12, - 8488: 0x00005F59, - 8489: 0x00005FAC, - 8490: 0x00005FAE, - 8491: 0x0000611A, - 8492: 0x0000610F, - 8493: 0x00006148, - 8494: 0x0000611F, - 8495: 0x000060F3, - 8496: 0x0000611B, - 8497: 0x000060F9, - 8498: 0x00006101, - 8499: 0x00006108, - 8500: 0x0000614E, - 8501: 0x0000614C, - 8502: 0x00006144, - 8503: 0x0000614D, - 8504: 0x0000613E, - 8505: 0x00006134, - 8506: 0x00006127, - 8507: 0x0000610D, - 8508: 0x00006106, - 8509: 0x00006137, - 8510: 0x00006221, - 8511: 0x00006222, - 8512: 0x00006413, - 8513: 0x0000643E, - 8514: 0x0000641E, - 8515: 0x0000642A, - 8516: 0x0000642D, - 8517: 0x0000643D, - 8518: 0x0000642C, - 8519: 0x0000640F, - 8520: 0x0000641C, - 8521: 0x00006414, - 8522: 0x0000640D, - 8523: 0x00006436, - 8524: 0x00006416, - 8525: 0x00006417, - 8526: 0x00006406, - 8527: 0x0000656C, - 8528: 0x0000659F, - 8529: 0x000065B0, - 8530: 0x00006697, - 8531: 0x00006689, - 8532: 0x00006687, - 8533: 0x00006688, - 8534: 0x00006696, - 8535: 0x00006684, - 8536: 0x00006698, - 8537: 0x0000668D, - 8538: 0x00006703, - 8539: 0x00006994, - 8540: 0x0000696D, - 8541: 0x0000695A, - 8542: 0x00006977, - 8543: 0x00006960, - 8544: 0x00006954, - 8545: 0x00006975, - 8546: 0x00006930, - 8547: 0x00006982, - 8548: 0x0000694A, - 8549: 0x00006968, - 8550: 0x0000696B, - 8551: 0x0000695E, - 8552: 0x00006953, - 8553: 0x00006979, - 8554: 0x00006986, - 8555: 0x0000695D, - 8556: 0x00006963, - 8557: 0x0000695B, - 8558: 0x00006B47, - 8559: 0x00006B72, - 8560: 0x00006BC0, - 8561: 0x00006BBF, - 8562: 0x00006BD3, - 8563: 0x00006BFD, - 8564: 0x00006EA2, - 8565: 0x00006EAF, - 8566: 0x00006ED3, - 8567: 0x00006EB6, - 8568: 0x00006EC2, - 8569: 0x00006E90, - 8570: 0x00006E9D, - 8571: 0x00006EC7, - 8572: 0x00006EC5, - 8573: 0x00006EA5, - 8574: 0x00006E98, - 8575: 0x00006EBC, - 8576: 0x00006EBA, - 8577: 0x00006EAB, - 8578: 0x00006ED1, - 8579: 0x00006E96, - 8580: 0x00006E9C, - 8581: 0x00006EC4, - 8582: 0x00006ED4, - 8583: 0x00006EAA, - 8584: 0x00006EA7, - 8585: 0x00006EB4, - 8586: 0x0000714E, - 8587: 0x00007159, - 8588: 0x00007169, - 8589: 0x00007164, - 8590: 0x00007149, - 8591: 0x00007167, - 8592: 0x0000715C, - 8593: 0x0000716C, - 8594: 0x00007166, - 8595: 0x0000714C, - 8596: 0x00007165, - 8597: 0x0000715E, - 8598: 0x00007146, - 8599: 0x00007168, - 8600: 0x00007156, - 8601: 0x0000723A, - 8602: 0x00007252, - 8603: 0x00007337, - 8604: 0x00007345, - 8605: 0x0000733F, - 8606: 0x0000733E, - 8607: 0x0000746F, - 8608: 0x0000745A, - 8609: 0x00007455, - 8610: 0x0000745F, - 8611: 0x0000745E, - 8612: 0x00007441, - 8613: 0x0000743F, - 8614: 0x00007459, - 8615: 0x0000745B, - 8616: 0x0000745C, - 8617: 0x00007576, - 8618: 0x00007578, - 8619: 0x00007600, - 8620: 0x000075F0, - 8621: 0x00007601, - 8622: 0x000075F2, - 8623: 0x000075F1, - 8624: 0x000075FA, - 8625: 0x000075FF, - 8626: 0x000075F4, - 8627: 0x000075F3, - 8628: 0x000076DE, - 8629: 0x000076DF, - 8630: 0x0000775B, - 8631: 0x0000776B, - 8632: 0x00007766, - 8633: 0x0000775E, - 8634: 0x00007763, - 8635: 0x00007779, - 8636: 0x0000776A, - 8637: 0x0000776C, - 8638: 0x0000775C, - 8639: 0x00007765, - 8640: 0x00007768, - 8641: 0x00007762, - 8642: 0x000077EE, - 8643: 0x0000788E, - 8644: 0x000078B0, - 8645: 0x00007897, - 8646: 0x00007898, - 8647: 0x0000788C, - 8648: 0x00007889, - 8649: 0x0000787C, - 8650: 0x00007891, - 8651: 0x00007893, - 8652: 0x0000787F, - 8653: 0x0000797A, - 8654: 0x0000797F, - 8655: 0x00007981, - 8656: 0x0000842C, - 8657: 0x000079BD, - 8658: 0x00007A1C, - 8659: 0x00007A1A, - 8660: 0x00007A20, - 8661: 0x00007A14, - 8662: 0x00007A1F, - 8663: 0x00007A1E, - 8664: 0x00007A9F, - 8665: 0x00007AA0, - 8666: 0x00007B77, - 8667: 0x00007BC0, - 8668: 0x00007B60, - 8669: 0x00007B6E, - 8670: 0x00007B67, - 8671: 0x00007CB1, - 8672: 0x00007CB3, - 8673: 0x00007CB5, - 8674: 0x00007D93, - 8675: 0x00007D79, - 8676: 0x00007D91, - 8677: 0x00007D81, - 8678: 0x00007D8F, - 8679: 0x00007D5B, - 8680: 0x00007F6E, - 8681: 0x00007F69, - 8682: 0x00007F6A, - 8683: 0x00007F72, - 8684: 0x00007FA9, - 8685: 0x00007FA8, - 8686: 0x00007FA4, - 8687: 0x00008056, - 8688: 0x00008058, - 8689: 0x00008086, - 8690: 0x00008084, - 8691: 0x00008171, - 8692: 0x00008170, - 8693: 0x00008178, - 8694: 0x00008165, - 8695: 0x0000816E, - 8696: 0x00008173, - 8697: 0x0000816B, - 8698: 0x00008179, - 8699: 0x0000817A, - 8700: 0x00008166, - 8701: 0x00008205, - 8702: 0x00008247, - 8703: 0x00008482, - 8704: 0x00008477, - 8705: 0x0000843D, - 8706: 0x00008431, - 8707: 0x00008475, - 8708: 0x00008466, - 8709: 0x0000846B, - 8710: 0x00008449, - 8711: 0x0000846C, - 8712: 0x0000845B, - 8713: 0x0000843C, - 8714: 0x00008435, - 8715: 0x00008461, - 8716: 0x00008463, - 8717: 0x00008469, - 8718: 0x0000846D, - 8719: 0x00008446, - 8720: 0x0000865E, - 8721: 0x0000865C, - 8722: 0x0000865F, - 8723: 0x000086F9, - 8724: 0x00008713, - 8725: 0x00008708, - 8726: 0x00008707, - 8727: 0x00008700, - 8728: 0x000086FE, - 8729: 0x000086FB, - 8730: 0x00008702, - 8731: 0x00008703, - 8732: 0x00008706, - 8733: 0x0000870A, - 8734: 0x00008859, - 8735: 0x000088DF, - 8736: 0x000088D4, - 8737: 0x000088D9, - 8738: 0x000088DC, - 8739: 0x000088D8, - 8740: 0x000088DD, - 8741: 0x000088E1, - 8742: 0x000088CA, - 8743: 0x000088D5, - 8744: 0x000088D2, - 8745: 0x0000899C, - 8746: 0x000089E3, - 8747: 0x00008A6B, - 8748: 0x00008A72, - 8749: 0x00008A73, - 8750: 0x00008A66, - 8751: 0x00008A69, - 8752: 0x00008A70, - 8753: 0x00008A87, - 8754: 0x00008A7C, - 8755: 0x00008A63, - 8756: 0x00008AA0, - 8757: 0x00008A71, - 8758: 0x00008A85, - 8759: 0x00008A6D, - 8760: 0x00008A62, - 8761: 0x00008A6E, - 8762: 0x00008A6C, - 8763: 0x00008A79, - 8764: 0x00008A7B, - 8765: 0x00008A3E, - 8766: 0x00008A68, - 8767: 0x00008C62, - 8768: 0x00008C8A, - 8769: 0x00008C89, - 8770: 0x00008CCA, - 8771: 0x00008CC7, - 8772: 0x00008CC8, - 8773: 0x00008CC4, - 8774: 0x00008CB2, - 8775: 0x00008CC3, - 8776: 0x00008CC2, - 8777: 0x00008CC5, - 8778: 0x00008DE1, - 8779: 0x00008DDF, - 8780: 0x00008DE8, - 8781: 0x00008DEF, - 8782: 0x00008DF3, - 8783: 0x00008DFA, - 8784: 0x00008DEA, - 8785: 0x00008DE4, - 8786: 0x00008DE6, - 8787: 0x00008EB2, - 8788: 0x00008F03, - 8789: 0x00008F09, - 8790: 0x00008EFE, - 8791: 0x00008F0A, - 8792: 0x00008F9F, - 8793: 0x00008FB2, - 8794: 0x0000904B, - 8795: 0x0000904A, - 8796: 0x00009053, - 8797: 0x00009042, - 8798: 0x00009054, - 8799: 0x0000903C, - 8800: 0x00009055, - 8801: 0x00009050, - 8802: 0x00009047, - 8803: 0x0000904F, - 8804: 0x0000904E, - 8805: 0x0000904D, - 8806: 0x00009051, - 8807: 0x0000903E, - 8808: 0x00009041, - 8809: 0x00009112, - 8810: 0x00009117, - 8811: 0x0000916C, - 8812: 0x0000916A, - 8813: 0x00009169, - 8814: 0x000091C9, - 8815: 0x00009237, - 8816: 0x00009257, - 8817: 0x00009238, - 8818: 0x0000923D, - 8819: 0x00009240, - 8820: 0x0000923E, - 8821: 0x0000925B, - 8822: 0x0000924B, - 8823: 0x00009264, - 8824: 0x00009251, - 8825: 0x00009234, - 8826: 0x00009249, - 8827: 0x0000924D, - 8828: 0x00009245, - 8829: 0x00009239, - 8830: 0x0000923F, - 8831: 0x0000925A, - 8832: 0x00009598, - 8833: 0x00009698, - 8834: 0x00009694, - 8835: 0x00009695, - 8836: 0x000096CD, - 8837: 0x000096CB, - 8838: 0x000096C9, - 8839: 0x000096CA, - 8840: 0x000096F7, - 8841: 0x000096FB, - 8842: 0x000096F9, - 8843: 0x000096F6, - 8844: 0x00009756, - 8845: 0x00009774, - 8846: 0x00009776, - 8847: 0x00009810, - 8848: 0x00009811, - 8849: 0x00009813, - 8850: 0x0000980A, - 8851: 0x00009812, - 8852: 0x0000980C, - 8853: 0x000098FC, - 8854: 0x000098F4, - 8855: 0x000098FD, - 8856: 0x000098FE, - 8857: 0x000099B3, - 8858: 0x000099B1, - 8859: 0x000099B4, - 8860: 0x00009AE1, - 8861: 0x00009CE9, - 8862: 0x00009E82, - 8863: 0x00009F0E, - 8864: 0x00009F13, - 8865: 0x00009F20, - 8866: 0x000050E7, - 8867: 0x000050EE, - 8868: 0x000050E5, - 8869: 0x000050D6, - 8870: 0x000050ED, - 8871: 0x000050DA, - 8872: 0x000050D5, - 8873: 0x000050CF, - 8874: 0x000050D1, - 8875: 0x000050F1, - 8876: 0x000050CE, - 8877: 0x000050E9, - 8878: 0x00005162, - 8879: 0x000051F3, - 8880: 0x00005283, - 8881: 0x00005282, - 8882: 0x00005331, - 8883: 0x000053AD, - 8884: 0x000055FE, - 8885: 0x00005600, - 8886: 0x0000561B, - 8887: 0x00005617, - 8888: 0x000055FD, - 8889: 0x00005614, - 8890: 0x00005606, - 8891: 0x00005609, - 8892: 0x0000560D, - 8893: 0x0000560E, - 8894: 0x000055F7, - 8895: 0x00005616, - 8896: 0x0000561F, - 8897: 0x00005608, - 8898: 0x00005610, - 8899: 0x000055F6, - 8900: 0x00005718, - 8901: 0x00005716, - 8902: 0x00005875, - 8903: 0x0000587E, - 8904: 0x00005883, - 8905: 0x00005893, - 8906: 0x0000588A, - 8907: 0x00005879, - 8908: 0x00005885, - 8909: 0x0000587D, - 8910: 0x000058FD, - 8911: 0x00005925, - 8912: 0x00005922, - 8913: 0x00005924, - 8914: 0x0000596A, - 8915: 0x00005969, - 8916: 0x00005AE1, - 8917: 0x00005AE6, - 8918: 0x00005AE9, - 8919: 0x00005AD7, - 8920: 0x00005AD6, - 8921: 0x00005AD8, - 8922: 0x00005AE3, - 8923: 0x00005B75, - 8924: 0x00005BDE, - 8925: 0x00005BE7, - 8926: 0x00005BE1, - 8927: 0x00005BE5, - 8928: 0x00005BE6, - 8929: 0x00005BE8, - 8930: 0x00005BE2, - 8931: 0x00005BE4, - 8932: 0x00005BDF, - 8933: 0x00005C0D, - 8934: 0x00005C62, - 8935: 0x00005D84, - 8936: 0x00005D87, - 8937: 0x00005E5B, - 8938: 0x00005E63, - 8939: 0x00005E55, - 8940: 0x00005E57, - 8941: 0x00005E54, - 8942: 0x00005ED3, - 8943: 0x00005ED6, - 8944: 0x00005F0A, - 8945: 0x00005F46, - 8946: 0x00005F70, - 8947: 0x00005FB9, - 8948: 0x00006147, - 8949: 0x0000613F, - 8950: 0x0000614B, - 8951: 0x00006177, - 8952: 0x00006162, - 8953: 0x00006163, - 8954: 0x0000615F, - 8955: 0x0000615A, - 8956: 0x00006158, - 8957: 0x00006175, - 8958: 0x0000622A, - 8959: 0x00006487, - 8960: 0x00006458, - 8961: 0x00006454, - 8962: 0x000064A4, - 8963: 0x00006478, - 8964: 0x0000645F, - 8965: 0x0000647A, - 8966: 0x00006451, - 8967: 0x00006467, - 8968: 0x00006434, - 8969: 0x0000646D, - 8970: 0x0000647B, - 8971: 0x00006572, - 8972: 0x000065A1, - 8973: 0x000065D7, - 8974: 0x000065D6, - 8975: 0x000066A2, - 8976: 0x000066A8, - 8977: 0x0000669D, - 8978: 0x0000699C, - 8979: 0x000069A8, - 8980: 0x00006995, - 8981: 0x000069C1, - 8982: 0x000069AE, - 8983: 0x000069D3, - 8984: 0x000069CB, - 8985: 0x0000699B, - 8986: 0x000069B7, - 8987: 0x000069BB, - 8988: 0x000069AB, - 8989: 0x000069B4, - 8990: 0x000069D0, - 8991: 0x000069CD, - 8992: 0x000069AD, - 8993: 0x000069CC, - 8994: 0x000069A6, - 8995: 0x000069C3, - 8996: 0x000069A3, - 8997: 0x00006B49, - 8998: 0x00006B4C, - 8999: 0x00006C33, - 9000: 0x00006F33, - 9001: 0x00006F14, - 9002: 0x00006EFE, - 9003: 0x00006F13, - 9004: 0x00006EF4, - 9005: 0x00006F29, - 9006: 0x00006F3E, - 9007: 0x00006F20, - 9008: 0x00006F2C, - 9009: 0x00006F0F, - 9010: 0x00006F02, - 9011: 0x00006F22, - 9012: 0x00006EFF, - 9013: 0x00006EEF, - 9014: 0x00006F06, - 9015: 0x00006F31, - 9016: 0x00006F38, - 9017: 0x00006F32, - 9018: 0x00006F23, - 9019: 0x00006F15, - 9020: 0x00006F2B, - 9021: 0x00006F2F, - 9022: 0x00006F88, - 9023: 0x00006F2A, - 9024: 0x00006EEC, - 9025: 0x00006F01, - 9026: 0x00006EF2, - 9027: 0x00006ECC, - 9028: 0x00006EF7, - 9029: 0x00007194, - 9030: 0x00007199, - 9031: 0x0000717D, - 9032: 0x0000718A, - 9033: 0x00007184, - 9034: 0x00007192, - 9035: 0x0000723E, - 9036: 0x00007292, - 9037: 0x00007296, - 9038: 0x00007344, - 9039: 0x00007350, - 9040: 0x00007464, - 9041: 0x00007463, - 9042: 0x0000746A, - 9043: 0x00007470, - 9044: 0x0000746D, - 9045: 0x00007504, - 9046: 0x00007591, - 9047: 0x00007627, - 9048: 0x0000760D, - 9049: 0x0000760B, - 9050: 0x00007609, - 9051: 0x00007613, - 9052: 0x000076E1, - 9053: 0x000076E3, - 9054: 0x00007784, - 9055: 0x0000777D, - 9056: 0x0000777F, - 9057: 0x00007761, - 9058: 0x000078C1, - 9059: 0x0000789F, - 9060: 0x000078A7, - 9061: 0x000078B3, - 9062: 0x000078A9, - 9063: 0x000078A3, - 9064: 0x0000798E, - 9065: 0x0000798F, - 9066: 0x0000798D, - 9067: 0x00007A2E, - 9068: 0x00007A31, - 9069: 0x00007AAA, - 9070: 0x00007AA9, - 9071: 0x00007AED, - 9072: 0x00007AEF, - 9073: 0x00007BA1, - 9074: 0x00007B95, - 9075: 0x00007B8B, - 9076: 0x00007B75, - 9077: 0x00007B97, - 9078: 0x00007B9D, - 9079: 0x00007B94, - 9080: 0x00007B8F, - 9081: 0x00007BB8, - 9082: 0x00007B87, - 9083: 0x00007B84, - 9084: 0x00007CB9, - 9085: 0x00007CBD, - 9086: 0x00007CBE, - 9087: 0x00007DBB, - 9088: 0x00007DB0, - 9089: 0x00007D9C, - 9090: 0x00007DBD, - 9091: 0x00007DBE, - 9092: 0x00007DA0, - 9093: 0x00007DCA, - 9094: 0x00007DB4, - 9095: 0x00007DB2, - 9096: 0x00007DB1, - 9097: 0x00007DBA, - 9098: 0x00007DA2, - 9099: 0x00007DBF, - 9100: 0x00007DB5, - 9101: 0x00007DB8, - 9102: 0x00007DAD, - 9103: 0x00007DD2, - 9104: 0x00007DC7, - 9105: 0x00007DAC, - 9106: 0x00007F70, - 9107: 0x00007FE0, - 9108: 0x00007FE1, - 9109: 0x00007FDF, - 9110: 0x0000805E, - 9111: 0x0000805A, - 9112: 0x00008087, - 9113: 0x00008150, - 9114: 0x00008180, - 9115: 0x0000818F, - 9116: 0x00008188, - 9117: 0x0000818A, - 9118: 0x0000817F, - 9119: 0x00008182, - 9120: 0x000081E7, - 9121: 0x000081FA, - 9122: 0x00008207, - 9123: 0x00008214, - 9124: 0x0000821E, - 9125: 0x0000824B, - 9126: 0x000084C9, - 9127: 0x000084BF, - 9128: 0x000084C6, - 9129: 0x000084C4, - 9130: 0x00008499, - 9131: 0x0000849E, - 9132: 0x000084B2, - 9133: 0x0000849C, - 9134: 0x000084CB, - 9135: 0x000084B8, - 9136: 0x000084C0, - 9137: 0x000084D3, - 9138: 0x00008490, - 9139: 0x000084BC, - 9140: 0x000084D1, - 9141: 0x000084CA, - 9142: 0x0000873F, - 9143: 0x0000871C, - 9144: 0x0000873B, - 9145: 0x00008722, - 9146: 0x00008725, - 9147: 0x00008734, - 9148: 0x00008718, - 9149: 0x00008755, - 9150: 0x00008737, - 9151: 0x00008729, - 9152: 0x000088F3, - 9153: 0x00008902, - 9154: 0x000088F4, - 9155: 0x000088F9, - 9156: 0x000088F8, - 9157: 0x000088FD, - 9158: 0x000088E8, - 9159: 0x0000891A, - 9160: 0x000088EF, - 9161: 0x00008AA6, - 9162: 0x00008A8C, - 9163: 0x00008A9E, - 9164: 0x00008AA3, - 9165: 0x00008A8D, - 9166: 0x00008AA1, - 9167: 0x00008A93, - 9168: 0x00008AA4, - 9169: 0x00008AAA, - 9170: 0x00008AA5, - 9171: 0x00008AA8, - 9172: 0x00008A98, - 9173: 0x00008A91, - 9174: 0x00008A9A, - 9175: 0x00008AA7, - 9176: 0x00008C6A, - 9177: 0x00008C8D, - 9178: 0x00008C8C, - 9179: 0x00008CD3, - 9180: 0x00008CD1, - 9181: 0x00008CD2, - 9182: 0x00008D6B, - 9183: 0x00008D99, - 9184: 0x00008D95, - 9185: 0x00008DFC, - 9186: 0x00008F14, - 9187: 0x00008F12, - 9188: 0x00008F15, - 9189: 0x00008F13, - 9190: 0x00008FA3, - 9191: 0x00009060, - 9192: 0x00009058, - 9193: 0x0000905C, - 9194: 0x00009063, - 9195: 0x00009059, - 9196: 0x0000905E, - 9197: 0x00009062, - 9198: 0x0000905D, - 9199: 0x0000905B, - 9200: 0x00009119, - 9201: 0x00009118, - 9202: 0x0000911E, - 9203: 0x00009175, - 9204: 0x00009178, - 9205: 0x00009177, - 9206: 0x00009174, - 9207: 0x00009278, - 9208: 0x00009280, - 9209: 0x00009285, - 9210: 0x00009298, - 9211: 0x00009296, - 9212: 0x0000927B, - 9213: 0x00009293, - 9214: 0x0000929C, - 9215: 0x000092A8, - 9216: 0x0000927C, - 9217: 0x00009291, - 9218: 0x000095A1, - 9219: 0x000095A8, - 9220: 0x000095A9, - 9221: 0x000095A3, - 9222: 0x000095A5, - 9223: 0x000095A4, - 9224: 0x00009699, - 9225: 0x0000969C, - 9226: 0x0000969B, - 9227: 0x000096CC, - 9228: 0x000096D2, - 9229: 0x00009700, - 9230: 0x0000977C, - 9231: 0x00009785, - 9232: 0x000097F6, - 9233: 0x00009817, - 9234: 0x00009818, - 9235: 0x000098AF, - 9236: 0x000098B1, - 9237: 0x00009903, - 9238: 0x00009905, - 9239: 0x0000990C, - 9240: 0x00009909, - 9241: 0x000099C1, - 9242: 0x00009AAF, - 9243: 0x00009AB0, - 9244: 0x00009AE6, - 9245: 0x00009B41, - 9246: 0x00009B42, - 9247: 0x00009CF4, - 9248: 0x00009CF6, - 9249: 0x00009CF3, - 9250: 0x00009EBC, - 9251: 0x00009F3B, - 9252: 0x00009F4A, - 9253: 0x00005104, - 9254: 0x00005100, - 9255: 0x000050FB, - 9256: 0x000050F5, - 9257: 0x000050F9, - 9258: 0x00005102, - 9259: 0x00005108, - 9260: 0x00005109, - 9261: 0x00005105, - 9262: 0x000051DC, - 9263: 0x00005287, - 9264: 0x00005288, - 9265: 0x00005289, - 9266: 0x0000528D, - 9267: 0x0000528A, - 9268: 0x000052F0, - 9269: 0x000053B2, - 9270: 0x0000562E, - 9271: 0x0000563B, - 9272: 0x00005639, - 9273: 0x00005632, - 9274: 0x0000563F, - 9275: 0x00005634, - 9276: 0x00005629, - 9277: 0x00005653, - 9278: 0x0000564E, - 9279: 0x00005657, - 9280: 0x00005674, - 9281: 0x00005636, - 9282: 0x0000562F, - 9283: 0x00005630, - 9284: 0x00005880, - 9285: 0x0000589F, - 9286: 0x0000589E, - 9287: 0x000058B3, - 9288: 0x0000589C, - 9289: 0x000058AE, - 9290: 0x000058A9, - 9291: 0x000058A6, - 9292: 0x0000596D, - 9293: 0x00005B09, - 9294: 0x00005AFB, - 9295: 0x00005B0B, - 9296: 0x00005AF5, - 9297: 0x00005B0C, - 9298: 0x00005B08, - 9299: 0x00005BEE, - 9300: 0x00005BEC, - 9301: 0x00005BE9, - 9302: 0x00005BEB, - 9303: 0x00005C64, - 9304: 0x00005C65, - 9305: 0x00005D9D, - 9306: 0x00005D94, - 9307: 0x00005E62, - 9308: 0x00005E5F, - 9309: 0x00005E61, - 9310: 0x00005EE2, - 9311: 0x00005EDA, - 9312: 0x00005EDF, - 9313: 0x00005EDD, - 9314: 0x00005EE3, - 9315: 0x00005EE0, - 9316: 0x00005F48, - 9317: 0x00005F71, - 9318: 0x00005FB7, - 9319: 0x00005FB5, - 9320: 0x00006176, - 9321: 0x00006167, - 9322: 0x0000616E, - 9323: 0x0000615D, - 9324: 0x00006155, - 9325: 0x00006182, - 9326: 0x0000617C, - 9327: 0x00006170, - 9328: 0x0000616B, - 9329: 0x0000617E, - 9330: 0x000061A7, - 9331: 0x00006190, - 9332: 0x000061AB, - 9333: 0x0000618E, - 9334: 0x000061AC, - 9335: 0x0000619A, - 9336: 0x000061A4, - 9337: 0x00006194, - 9338: 0x000061AE, - 9339: 0x0000622E, - 9340: 0x00006469, - 9341: 0x0000646F, - 9342: 0x00006479, - 9343: 0x0000649E, - 9344: 0x000064B2, - 9345: 0x00006488, - 9346: 0x00006490, - 9347: 0x000064B0, - 9348: 0x000064A5, - 9349: 0x00006493, - 9350: 0x00006495, - 9351: 0x000064A9, - 9352: 0x00006492, - 9353: 0x000064AE, - 9354: 0x000064AD, - 9355: 0x000064AB, - 9356: 0x0000649A, - 9357: 0x000064AC, - 9358: 0x00006499, - 9359: 0x000064A2, - 9360: 0x000064B3, - 9361: 0x00006575, - 9362: 0x00006577, - 9363: 0x00006578, - 9364: 0x000066AE, - 9365: 0x000066AB, - 9366: 0x000066B4, - 9367: 0x000066B1, - 9368: 0x00006A23, - 9369: 0x00006A1F, - 9370: 0x000069E8, - 9371: 0x00006A01, - 9372: 0x00006A1E, - 9373: 0x00006A19, - 9374: 0x000069FD, - 9375: 0x00006A21, - 9376: 0x00006A13, - 9377: 0x00006A0A, - 9378: 0x000069F3, - 9379: 0x00006A02, - 9380: 0x00006A05, - 9381: 0x000069ED, - 9382: 0x00006A11, - 9383: 0x00006B50, - 9384: 0x00006B4E, - 9385: 0x00006BA4, - 9386: 0x00006BC5, - 9387: 0x00006BC6, - 9388: 0x00006F3F, - 9389: 0x00006F7C, - 9390: 0x00006F84, - 9391: 0x00006F51, - 9392: 0x00006F66, - 9393: 0x00006F54, - 9394: 0x00006F86, - 9395: 0x00006F6D, - 9396: 0x00006F5B, - 9397: 0x00006F78, - 9398: 0x00006F6E, - 9399: 0x00006F8E, - 9400: 0x00006F7A, - 9401: 0x00006F70, - 9402: 0x00006F64, - 9403: 0x00006F97, - 9404: 0x00006F58, - 9405: 0x00006ED5, - 9406: 0x00006F6F, - 9407: 0x00006F60, - 9408: 0x00006F5F, - 9409: 0x0000719F, - 9410: 0x000071AC, - 9411: 0x000071B1, - 9412: 0x000071A8, - 9413: 0x00007256, - 9414: 0x0000729B, - 9415: 0x0000734E, - 9416: 0x00007357, - 9417: 0x00007469, - 9418: 0x0000748B, - 9419: 0x00007483, - 9420: 0x0000747E, - 9421: 0x00007480, - 9422: 0x0000757F, - 9423: 0x00007620, - 9424: 0x00007629, - 9425: 0x0000761F, - 9426: 0x00007624, - 9427: 0x00007626, - 9428: 0x00007621, - 9429: 0x00007622, - 9430: 0x0000769A, - 9431: 0x000076BA, - 9432: 0x000076E4, - 9433: 0x0000778E, - 9434: 0x00007787, - 9435: 0x0000778C, - 9436: 0x00007791, - 9437: 0x0000778B, - 9438: 0x000078CB, - 9439: 0x000078C5, - 9440: 0x000078BA, - 9441: 0x000078CA, - 9442: 0x000078BE, - 9443: 0x000078D5, - 9444: 0x000078BC, - 9445: 0x000078D0, - 9446: 0x00007A3F, - 9447: 0x00007A3C, - 9448: 0x00007A40, - 9449: 0x00007A3D, - 9450: 0x00007A37, - 9451: 0x00007A3B, - 9452: 0x00007AAF, - 9453: 0x00007AAE, - 9454: 0x00007BAD, - 9455: 0x00007BB1, - 9456: 0x00007BC4, - 9457: 0x00007BB4, - 9458: 0x00007BC6, - 9459: 0x00007BC7, - 9460: 0x00007BC1, - 9461: 0x00007BA0, - 9462: 0x00007BCC, - 9463: 0x00007CCA, - 9464: 0x00007DE0, - 9465: 0x00007DF4, - 9466: 0x00007DEF, - 9467: 0x00007DFB, - 9468: 0x00007DD8, - 9469: 0x00007DEC, - 9470: 0x00007DDD, - 9471: 0x00007DE8, - 9472: 0x00007DE3, - 9473: 0x00007DDA, - 9474: 0x00007DDE, - 9475: 0x00007DE9, - 9476: 0x00007D9E, - 9477: 0x00007DD9, - 9478: 0x00007DF2, - 9479: 0x00007DF9, - 9480: 0x00007F75, - 9481: 0x00007F77, - 9482: 0x00007FAF, - 9483: 0x00007FE9, - 9484: 0x00008026, - 9485: 0x0000819B, - 9486: 0x0000819C, - 9487: 0x0000819D, - 9488: 0x000081A0, - 9489: 0x0000819A, - 9490: 0x00008198, - 9491: 0x00008517, - 9492: 0x0000853D, - 9493: 0x0000851A, - 9494: 0x000084EE, - 9495: 0x0000852C, - 9496: 0x0000852D, - 9497: 0x00008513, - 9498: 0x00008511, - 9499: 0x00008523, - 9500: 0x00008521, - 9501: 0x00008514, - 9502: 0x000084EC, - 9503: 0x00008525, - 9504: 0x000084FF, - 9505: 0x00008506, - 9506: 0x00008782, - 9507: 0x00008774, - 9508: 0x00008776, - 9509: 0x00008760, - 9510: 0x00008766, - 9511: 0x00008778, - 9512: 0x00008768, - 9513: 0x00008759, - 9514: 0x00008757, - 9515: 0x0000874C, - 9516: 0x00008753, - 9517: 0x0000885B, - 9518: 0x0000885D, - 9519: 0x00008910, - 9520: 0x00008907, - 9521: 0x00008912, - 9522: 0x00008913, - 9523: 0x00008915, - 9524: 0x0000890A, - 9525: 0x00008ABC, - 9526: 0x00008AD2, - 9527: 0x00008AC7, - 9528: 0x00008AC4, - 9529: 0x00008A95, - 9530: 0x00008ACB, - 9531: 0x00008AF8, - 9532: 0x00008AB2, - 9533: 0x00008AC9, - 9534: 0x00008AC2, - 9535: 0x00008ABF, - 9536: 0x00008AB0, - 9537: 0x00008AD6, - 9538: 0x00008ACD, - 9539: 0x00008AB6, - 9540: 0x00008AB9, - 9541: 0x00008ADB, - 9542: 0x00008C4C, - 9543: 0x00008C4E, - 9544: 0x00008C6C, - 9545: 0x00008CE0, - 9546: 0x00008CDE, - 9547: 0x00008CE6, - 9548: 0x00008CE4, - 9549: 0x00008CEC, - 9550: 0x00008CED, - 9551: 0x00008CE2, - 9552: 0x00008CE3, - 9553: 0x00008CDC, - 9554: 0x00008CEA, - 9555: 0x00008CE1, - 9556: 0x00008D6D, - 9557: 0x00008D9F, - 9558: 0x00008DA3, - 9559: 0x00008E2B, - 9560: 0x00008E10, - 9561: 0x00008E1D, - 9562: 0x00008E22, - 9563: 0x00008E0F, - 9564: 0x00008E29, - 9565: 0x00008E1F, - 9566: 0x00008E21, - 9567: 0x00008E1E, - 9568: 0x00008EBA, - 9569: 0x00008F1D, - 9570: 0x00008F1B, - 9571: 0x00008F1F, - 9572: 0x00008F29, - 9573: 0x00008F26, - 9574: 0x00008F2A, - 9575: 0x00008F1C, - 9576: 0x00008F1E, - 9577: 0x00008F25, - 9578: 0x00009069, - 9579: 0x0000906E, - 9580: 0x00009068, - 9581: 0x0000906D, - 9582: 0x00009077, - 9583: 0x00009130, - 9584: 0x0000912D, - 9585: 0x00009127, - 9586: 0x00009131, - 9587: 0x00009187, - 9588: 0x00009189, - 9589: 0x0000918B, - 9590: 0x00009183, - 9591: 0x000092C5, - 9592: 0x000092BB, - 9593: 0x000092B7, - 9594: 0x000092EA, - 9595: 0x000092AC, - 9596: 0x000092E4, - 9597: 0x000092C1, - 9598: 0x000092B3, - 9599: 0x000092BC, - 9600: 0x000092D2, - 9601: 0x000092C7, - 9602: 0x000092F0, - 9603: 0x000092B2, - 9604: 0x000095AD, - 9605: 0x000095B1, - 9606: 0x00009704, - 9607: 0x00009706, - 9608: 0x00009707, - 9609: 0x00009709, - 9610: 0x00009760, - 9611: 0x0000978D, - 9612: 0x0000978B, - 9613: 0x0000978F, - 9614: 0x00009821, - 9615: 0x0000982B, - 9616: 0x0000981C, - 9617: 0x000098B3, - 9618: 0x0000990A, - 9619: 0x00009913, - 9620: 0x00009912, - 9621: 0x00009918, - 9622: 0x000099DD, - 9623: 0x000099D0, - 9624: 0x000099DF, - 9625: 0x000099DB, - 9626: 0x000099D1, - 9627: 0x000099D5, - 9628: 0x000099D2, - 9629: 0x000099D9, - 9630: 0x00009AB7, - 9631: 0x00009AEE, - 9632: 0x00009AEF, - 9633: 0x00009B27, - 9634: 0x00009B45, - 9635: 0x00009B44, - 9636: 0x00009B77, - 9637: 0x00009B6F, - 9638: 0x00009D06, - 9639: 0x00009D09, - 9640: 0x00009D03, - 9641: 0x00009EA9, - 9642: 0x00009EBE, - 9643: 0x00009ECE, - 9644: 0x000058A8, - 9645: 0x00009F52, - 9646: 0x00005112, - 9647: 0x00005118, - 9648: 0x00005114, - 9649: 0x00005110, - 9650: 0x00005115, - 9651: 0x00005180, - 9652: 0x000051AA, - 9653: 0x000051DD, - 9654: 0x00005291, - 9655: 0x00005293, - 9656: 0x000052F3, - 9657: 0x00005659, - 9658: 0x0000566B, - 9659: 0x00005679, - 9660: 0x00005669, - 9661: 0x00005664, - 9662: 0x00005678, - 9663: 0x0000566A, - 9664: 0x00005668, - 9665: 0x00005665, - 9666: 0x00005671, - 9667: 0x0000566F, - 9668: 0x0000566C, - 9669: 0x00005662, - 9670: 0x00005676, - 9671: 0x000058C1, - 9672: 0x000058BE, - 9673: 0x000058C7, - 9674: 0x000058C5, - 9675: 0x0000596E, - 9676: 0x00005B1D, - 9677: 0x00005B34, - 9678: 0x00005B78, - 9679: 0x00005BF0, - 9680: 0x00005C0E, - 9681: 0x00005F4A, - 9682: 0x000061B2, - 9683: 0x00006191, - 9684: 0x000061A9, - 9685: 0x0000618A, - 9686: 0x000061CD, - 9687: 0x000061B6, - 9688: 0x000061BE, - 9689: 0x000061CA, - 9690: 0x000061C8, - 9691: 0x00006230, - 9692: 0x000064C5, - 9693: 0x000064C1, - 9694: 0x000064CB, - 9695: 0x000064BB, - 9696: 0x000064BC, - 9697: 0x000064DA, - 9698: 0x000064C4, - 9699: 0x000064C7, - 9700: 0x000064C2, - 9701: 0x000064CD, - 9702: 0x000064BF, - 9703: 0x000064D2, - 9704: 0x000064D4, - 9705: 0x000064BE, - 9706: 0x00006574, - 9707: 0x000066C6, - 9708: 0x000066C9, - 9709: 0x000066B9, - 9710: 0x000066C4, - 9711: 0x000066C7, - 9712: 0x000066B8, - 9713: 0x00006A3D, - 9714: 0x00006A38, - 9715: 0x00006A3A, - 9716: 0x00006A59, - 9717: 0x00006A6B, - 9718: 0x00006A58, - 9719: 0x00006A39, - 9720: 0x00006A44, - 9721: 0x00006A62, - 9722: 0x00006A61, - 9723: 0x00006A4B, - 9724: 0x00006A47, - 9725: 0x00006A35, - 9726: 0x00006A5F, - 9727: 0x00006A48, - 9728: 0x00006B59, - 9729: 0x00006B77, - 9730: 0x00006C05, - 9731: 0x00006FC2, - 9732: 0x00006FB1, - 9733: 0x00006FA1, - 9734: 0x00006FC3, - 9735: 0x00006FA4, - 9736: 0x00006FC1, - 9737: 0x00006FA7, - 9738: 0x00006FB3, - 9739: 0x00006FC0, - 9740: 0x00006FB9, - 9741: 0x00006FB6, - 9742: 0x00006FA6, - 9743: 0x00006FA0, - 9744: 0x00006FB4, - 9745: 0x000071BE, - 9746: 0x000071C9, - 9747: 0x000071D0, - 9748: 0x000071D2, - 9749: 0x000071C8, - 9750: 0x000071D5, - 9751: 0x000071B9, - 9752: 0x000071CE, - 9753: 0x000071D9, - 9754: 0x000071DC, - 9755: 0x000071C3, - 9756: 0x000071C4, - 9757: 0x00007368, - 9758: 0x0000749C, - 9759: 0x000074A3, - 9760: 0x00007498, - 9761: 0x0000749F, - 9762: 0x0000749E, - 9763: 0x000074E2, - 9764: 0x0000750C, - 9765: 0x0000750D, - 9766: 0x00007634, - 9767: 0x00007638, - 9768: 0x0000763A, - 9769: 0x000076E7, - 9770: 0x000076E5, - 9771: 0x000077A0, - 9772: 0x0000779E, - 9773: 0x0000779F, - 9774: 0x000077A5, - 9775: 0x000078E8, - 9776: 0x000078DA, - 9777: 0x000078EC, - 9778: 0x000078E7, - 9779: 0x000079A6, - 9780: 0x00007A4D, - 9781: 0x00007A4E, - 9782: 0x00007A46, - 9783: 0x00007A4C, - 9784: 0x00007A4B, - 9785: 0x00007ABA, - 9786: 0x00007BD9, - 9787: 0x00007C11, - 9788: 0x00007BC9, - 9789: 0x00007BE4, - 9790: 0x00007BDB, - 9791: 0x00007BE1, - 9792: 0x00007BE9, - 9793: 0x00007BE6, - 9794: 0x00007CD5, - 9795: 0x00007CD6, - 9796: 0x00007E0A, - 9797: 0x00007E11, - 9798: 0x00007E08, - 9799: 0x00007E1B, - 9800: 0x00007E23, - 9801: 0x00007E1E, - 9802: 0x00007E1D, - 9803: 0x00007E09, - 9804: 0x00007E10, - 9805: 0x00007F79, - 9806: 0x00007FB2, - 9807: 0x00007FF0, - 9808: 0x00007FF1, - 9809: 0x00007FEE, - 9810: 0x00008028, - 9811: 0x000081B3, - 9812: 0x000081A9, - 9813: 0x000081A8, - 9814: 0x000081FB, - 9815: 0x00008208, - 9816: 0x00008258, - 9817: 0x00008259, - 9818: 0x0000854A, - 9819: 0x00008559, - 9820: 0x00008548, - 9821: 0x00008568, - 9822: 0x00008569, - 9823: 0x00008543, - 9824: 0x00008549, - 9825: 0x0000856D, - 9826: 0x0000856A, - 9827: 0x0000855E, - 9828: 0x00008783, - 9829: 0x0000879F, - 9830: 0x0000879E, - 9831: 0x000087A2, - 9832: 0x0000878D, - 9833: 0x00008861, - 9834: 0x0000892A, - 9835: 0x00008932, - 9836: 0x00008925, - 9837: 0x0000892B, - 9838: 0x00008921, - 9839: 0x000089AA, - 9840: 0x000089A6, - 9841: 0x00008AE6, - 9842: 0x00008AFA, - 9843: 0x00008AEB, - 9844: 0x00008AF1, - 9845: 0x00008B00, - 9846: 0x00008ADC, - 9847: 0x00008AE7, - 9848: 0x00008AEE, - 9849: 0x00008AFE, - 9850: 0x00008B01, - 9851: 0x00008B02, - 9852: 0x00008AF7, - 9853: 0x00008AED, - 9854: 0x00008AF3, - 9855: 0x00008AF6, - 9856: 0x00008AFC, - 9857: 0x00008C6B, - 9858: 0x00008C6D, - 9859: 0x00008C93, - 9860: 0x00008CF4, - 9861: 0x00008E44, - 9862: 0x00008E31, - 9863: 0x00008E34, - 9864: 0x00008E42, - 9865: 0x00008E39, - 9866: 0x00008E35, - 9867: 0x00008F3B, - 9868: 0x00008F2F, - 9869: 0x00008F38, - 9870: 0x00008F33, - 9871: 0x00008FA8, - 9872: 0x00008FA6, - 9873: 0x00009075, - 9874: 0x00009074, - 9875: 0x00009078, - 9876: 0x00009072, - 9877: 0x0000907C, - 9878: 0x0000907A, - 9879: 0x00009134, - 9880: 0x00009192, - 9881: 0x00009320, - 9882: 0x00009336, - 9883: 0x000092F8, - 9884: 0x00009333, - 9885: 0x0000932F, - 9886: 0x00009322, - 9887: 0x000092FC, - 9888: 0x0000932B, - 9889: 0x00009304, - 9890: 0x0000931A, - 9891: 0x00009310, - 9892: 0x00009326, - 9893: 0x00009321, - 9894: 0x00009315, - 9895: 0x0000932E, - 9896: 0x00009319, - 9897: 0x000095BB, - 9898: 0x000096A7, - 9899: 0x000096A8, - 9900: 0x000096AA, - 9901: 0x000096D5, - 9902: 0x0000970E, - 9903: 0x00009711, - 9904: 0x00009716, - 9905: 0x0000970D, - 9906: 0x00009713, - 9907: 0x0000970F, - 9908: 0x0000975B, - 9909: 0x0000975C, - 9910: 0x00009766, - 9911: 0x00009798, - 9912: 0x00009830, - 9913: 0x00009838, - 9914: 0x0000983B, - 9915: 0x00009837, - 9916: 0x0000982D, - 9917: 0x00009839, - 9918: 0x00009824, - 9919: 0x00009910, - 9920: 0x00009928, - 9921: 0x0000991E, - 9922: 0x0000991B, - 9923: 0x00009921, - 9924: 0x0000991A, - 9925: 0x000099ED, - 9926: 0x000099E2, - 9927: 0x000099F1, - 9928: 0x00009AB8, - 9929: 0x00009ABC, - 9930: 0x00009AFB, - 9931: 0x00009AED, - 9932: 0x00009B28, - 9933: 0x00009B91, - 9934: 0x00009D15, - 9935: 0x00009D23, - 9936: 0x00009D26, - 9937: 0x00009D28, - 9938: 0x00009D12, - 9939: 0x00009D1B, - 9940: 0x00009ED8, - 9941: 0x00009ED4, - 9942: 0x00009F8D, - 9943: 0x00009F9C, - 9944: 0x0000512A, - 9945: 0x0000511F, - 9946: 0x00005121, - 9947: 0x00005132, - 9948: 0x000052F5, - 9949: 0x0000568E, - 9950: 0x00005680, - 9951: 0x00005690, - 9952: 0x00005685, - 9953: 0x00005687, - 9954: 0x0000568F, - 9955: 0x000058D5, - 9956: 0x000058D3, - 9957: 0x000058D1, - 9958: 0x000058CE, - 9959: 0x00005B30, - 9960: 0x00005B2A, - 9961: 0x00005B24, - 9962: 0x00005B7A, - 9963: 0x00005C37, - 9964: 0x00005C68, - 9965: 0x00005DBC, - 9966: 0x00005DBA, - 9967: 0x00005DBD, - 9968: 0x00005DB8, - 9969: 0x00005E6B, - 9970: 0x00005F4C, - 9971: 0x00005FBD, - 9972: 0x000061C9, - 9973: 0x000061C2, - 9974: 0x000061C7, - 9975: 0x000061E6, - 9976: 0x000061CB, - 9977: 0x00006232, - 9978: 0x00006234, - 9979: 0x000064CE, - 9980: 0x000064CA, - 9981: 0x000064D8, - 9982: 0x000064E0, - 9983: 0x000064F0, - 9984: 0x000064E6, - 9985: 0x000064EC, - 9986: 0x000064F1, - 9987: 0x000064E2, - 9988: 0x000064ED, - 9989: 0x00006582, - 9990: 0x00006583, - 9991: 0x000066D9, - 9992: 0x000066D6, - 9993: 0x00006A80, - 9994: 0x00006A94, - 9995: 0x00006A84, - 9996: 0x00006AA2, - 9997: 0x00006A9C, - 9998: 0x00006ADB, - 9999: 0x00006AA3, - 10000: 0x00006A7E, - 10001: 0x00006A97, - 10002: 0x00006A90, - 10003: 0x00006AA0, - 10004: 0x00006B5C, - 10005: 0x00006BAE, - 10006: 0x00006BDA, - 10007: 0x00006C08, - 10008: 0x00006FD8, - 10009: 0x00006FF1, - 10010: 0x00006FDF, - 10011: 0x00006FE0, - 10012: 0x00006FDB, - 10013: 0x00006FE4, - 10014: 0x00006FEB, - 10015: 0x00006FEF, - 10016: 0x00006F80, - 10017: 0x00006FEC, - 10018: 0x00006FE1, - 10019: 0x00006FE9, - 10020: 0x00006FD5, - 10021: 0x00006FEE, - 10022: 0x00006FF0, - 10023: 0x000071E7, - 10024: 0x000071DF, - 10025: 0x000071EE, - 10026: 0x000071E6, - 10027: 0x000071E5, - 10028: 0x000071ED, - 10029: 0x000071EC, - 10030: 0x000071F4, - 10031: 0x000071E0, - 10032: 0x00007235, - 10033: 0x00007246, - 10034: 0x00007370, - 10035: 0x00007372, - 10036: 0x000074A9, - 10037: 0x000074B0, - 10038: 0x000074A6, - 10039: 0x000074A8, - 10040: 0x00007646, - 10041: 0x00007642, - 10042: 0x0000764C, - 10043: 0x000076EA, - 10044: 0x000077B3, - 10045: 0x000077AA, - 10046: 0x000077B0, - 10047: 0x000077AC, - 10048: 0x000077A7, - 10049: 0x000077AD, - 10050: 0x000077EF, - 10051: 0x000078F7, - 10052: 0x000078FA, - 10053: 0x000078F4, - 10054: 0x000078EF, - 10055: 0x00007901, - 10056: 0x000079A7, - 10057: 0x000079AA, - 10058: 0x00007A57, - 10059: 0x00007ABF, - 10060: 0x00007C07, - 10061: 0x00007C0D, - 10062: 0x00007BFE, - 10063: 0x00007BF7, - 10064: 0x00007C0C, - 10065: 0x00007BE0, - 10066: 0x00007CE0, - 10067: 0x00007CDC, - 10068: 0x00007CDE, - 10069: 0x00007CE2, - 10070: 0x00007CDF, - 10071: 0x00007CD9, - 10072: 0x00007CDD, - 10073: 0x00007E2E, - 10074: 0x00007E3E, - 10075: 0x00007E46, - 10076: 0x00007E37, - 10077: 0x00007E32, - 10078: 0x00007E43, - 10079: 0x00007E2B, - 10080: 0x00007E3D, - 10081: 0x00007E31, - 10082: 0x00007E45, - 10083: 0x00007E41, - 10084: 0x00007E34, - 10085: 0x00007E39, - 10086: 0x00007E48, - 10087: 0x00007E35, - 10088: 0x00007E3F, - 10089: 0x00007E2F, - 10090: 0x00007F44, - 10091: 0x00007FF3, - 10092: 0x00007FFC, - 10093: 0x00008071, - 10094: 0x00008072, - 10095: 0x00008070, - 10096: 0x0000806F, - 10097: 0x00008073, - 10098: 0x000081C6, - 10099: 0x000081C3, - 10100: 0x000081BA, - 10101: 0x000081C2, - 10102: 0x000081C0, - 10103: 0x000081BF, - 10104: 0x000081BD, - 10105: 0x000081C9, - 10106: 0x000081BE, - 10107: 0x000081E8, - 10108: 0x00008209, - 10109: 0x00008271, - 10110: 0x000085AA, - 10111: 0x00008584, - 10112: 0x0000857E, - 10113: 0x0000859C, - 10114: 0x00008591, - 10115: 0x00008594, - 10116: 0x000085AF, - 10117: 0x0000859B, - 10118: 0x00008587, - 10119: 0x000085A8, - 10120: 0x0000858A, - 10121: 0x00008667, - 10122: 0x000087C0, - 10123: 0x000087D1, - 10124: 0x000087B3, - 10125: 0x000087D2, - 10126: 0x000087C6, - 10127: 0x000087AB, - 10128: 0x000087BB, - 10129: 0x000087BA, - 10130: 0x000087C8, - 10131: 0x000087CB, - 10132: 0x0000893B, - 10133: 0x00008936, - 10134: 0x00008944, - 10135: 0x00008938, - 10136: 0x0000893D, - 10137: 0x000089AC, - 10138: 0x00008B0E, - 10139: 0x00008B17, - 10140: 0x00008B19, - 10141: 0x00008B1B, - 10142: 0x00008B0A, - 10143: 0x00008B20, - 10144: 0x00008B1D, - 10145: 0x00008B04, - 10146: 0x00008B10, - 10147: 0x00008C41, - 10148: 0x00008C3F, - 10149: 0x00008C73, - 10150: 0x00008CFA, - 10151: 0x00008CFD, - 10152: 0x00008CFC, - 10153: 0x00008CF8, - 10154: 0x00008CFB, - 10155: 0x00008DA8, - 10156: 0x00008E49, - 10157: 0x00008E4B, - 10158: 0x00008E48, - 10159: 0x00008E4A, - 10160: 0x00008F44, - 10161: 0x00008F3E, - 10162: 0x00008F42, - 10163: 0x00008F45, - 10164: 0x00008F3F, - 10165: 0x0000907F, - 10166: 0x0000907D, - 10167: 0x00009084, - 10168: 0x00009081, - 10169: 0x00009082, - 10170: 0x00009080, - 10171: 0x00009139, - 10172: 0x000091A3, - 10173: 0x0000919E, - 10174: 0x0000919C, - 10175: 0x0000934D, - 10176: 0x00009382, - 10177: 0x00009328, - 10178: 0x00009375, - 10179: 0x0000934A, - 10180: 0x00009365, - 10181: 0x0000934B, - 10182: 0x00009318, - 10183: 0x0000937E, - 10184: 0x0000936C, - 10185: 0x0000935B, - 10186: 0x00009370, - 10187: 0x0000935A, - 10188: 0x00009354, - 10189: 0x000095CA, - 10190: 0x000095CB, - 10191: 0x000095CC, - 10192: 0x000095C8, - 10193: 0x000095C6, - 10194: 0x000096B1, - 10195: 0x000096B8, - 10196: 0x000096D6, - 10197: 0x0000971C, - 10198: 0x0000971E, - 10199: 0x000097A0, - 10200: 0x000097D3, - 10201: 0x00009846, - 10202: 0x000098B6, - 10203: 0x00009935, - 10204: 0x00009A01, - 10205: 0x000099FF, - 10206: 0x00009BAE, - 10207: 0x00009BAB, - 10208: 0x00009BAA, - 10209: 0x00009BAD, - 10210: 0x00009D3B, - 10211: 0x00009D3F, - 10212: 0x00009E8B, - 10213: 0x00009ECF, - 10214: 0x00009EDE, - 10215: 0x00009EDC, - 10216: 0x00009EDD, - 10217: 0x00009EDB, - 10218: 0x00009F3E, - 10219: 0x00009F4B, - 10220: 0x000053E2, - 10221: 0x00005695, - 10222: 0x000056AE, - 10223: 0x000058D9, - 10224: 0x000058D8, - 10225: 0x00005B38, - 10226: 0x00005F5D, - 10227: 0x000061E3, - 10228: 0x00006233, - 10229: 0x000064F4, - 10230: 0x000064F2, - 10231: 0x000064FE, - 10232: 0x00006506, - 10233: 0x000064FA, - 10234: 0x000064FB, - 10235: 0x000064F7, - 10236: 0x000065B7, - 10237: 0x000066DC, - 10238: 0x00006726, - 10239: 0x00006AB3, - 10240: 0x00006AAC, - 10241: 0x00006AC3, - 10242: 0x00006ABB, - 10243: 0x00006AB8, - 10244: 0x00006AC2, - 10245: 0x00006AAE, - 10246: 0x00006AAF, - 10247: 0x00006B5F, - 10248: 0x00006B78, - 10249: 0x00006BAF, - 10250: 0x00007009, - 10251: 0x0000700B, - 10252: 0x00006FFE, - 10253: 0x00007006, - 10254: 0x00006FFA, - 10255: 0x00007011, - 10256: 0x0000700F, - 10257: 0x000071FB, - 10258: 0x000071FC, - 10259: 0x000071FE, - 10260: 0x000071F8, - 10261: 0x00007377, - 10262: 0x00007375, - 10263: 0x000074A7, - 10264: 0x000074BF, - 10265: 0x00007515, - 10266: 0x00007656, - 10267: 0x00007658, - 10268: 0x00007652, - 10269: 0x000077BD, - 10270: 0x000077BF, - 10271: 0x000077BB, - 10272: 0x000077BC, - 10273: 0x0000790E, - 10274: 0x000079AE, - 10275: 0x00007A61, - 10276: 0x00007A62, - 10277: 0x00007A60, - 10278: 0x00007AC4, - 10279: 0x00007AC5, - 10280: 0x00007C2B, - 10281: 0x00007C27, - 10282: 0x00007C2A, - 10283: 0x00007C1E, - 10284: 0x00007C23, - 10285: 0x00007C21, - 10286: 0x00007CE7, - 10287: 0x00007E54, - 10288: 0x00007E55, - 10289: 0x00007E5E, - 10290: 0x00007E5A, - 10291: 0x00007E61, - 10292: 0x00007E52, - 10293: 0x00007E59, - 10294: 0x00007F48, - 10295: 0x00007FF9, - 10296: 0x00007FFB, - 10297: 0x00008077, - 10298: 0x00008076, - 10299: 0x000081CD, - 10300: 0x000081CF, - 10301: 0x0000820A, - 10302: 0x000085CF, - 10303: 0x000085A9, - 10304: 0x000085CD, - 10305: 0x000085D0, - 10306: 0x000085C9, - 10307: 0x000085B0, - 10308: 0x000085BA, - 10309: 0x000085B9, - 10310: 0x000085A6, - 10311: 0x000087EF, - 10312: 0x000087EC, - 10313: 0x000087F2, - 10314: 0x000087E0, - 10315: 0x00008986, - 10316: 0x000089B2, - 10317: 0x000089F4, - 10318: 0x00008B28, - 10319: 0x00008B39, - 10320: 0x00008B2C, - 10321: 0x00008B2B, - 10322: 0x00008C50, - 10323: 0x00008D05, - 10324: 0x00008E59, - 10325: 0x00008E63, - 10326: 0x00008E66, - 10327: 0x00008E64, - 10328: 0x00008E5F, - 10329: 0x00008E55, - 10330: 0x00008EC0, - 10331: 0x00008F49, - 10332: 0x00008F4D, - 10333: 0x00009087, - 10334: 0x00009083, - 10335: 0x00009088, - 10336: 0x000091AB, - 10337: 0x000091AC, - 10338: 0x000091D0, - 10339: 0x00009394, - 10340: 0x0000938A, - 10341: 0x00009396, - 10342: 0x000093A2, - 10343: 0x000093B3, - 10344: 0x000093AE, - 10345: 0x000093AC, - 10346: 0x000093B0, - 10347: 0x00009398, - 10348: 0x0000939A, - 10349: 0x00009397, - 10350: 0x000095D4, - 10351: 0x000095D6, - 10352: 0x000095D0, - 10353: 0x000095D5, - 10354: 0x000096E2, - 10355: 0x000096DC, - 10356: 0x000096D9, - 10357: 0x000096DB, - 10358: 0x000096DE, - 10359: 0x00009724, - 10360: 0x000097A3, - 10361: 0x000097A6, - 10362: 0x000097AD, - 10363: 0x000097F9, - 10364: 0x0000984D, - 10365: 0x0000984F, - 10366: 0x0000984C, - 10367: 0x0000984E, - 10368: 0x00009853, - 10369: 0x000098BA, - 10370: 0x0000993E, - 10371: 0x0000993F, - 10372: 0x0000993D, - 10373: 0x0000992E, - 10374: 0x000099A5, - 10375: 0x00009A0E, - 10376: 0x00009AC1, - 10377: 0x00009B03, - 10378: 0x00009B06, - 10379: 0x00009B4F, - 10380: 0x00009B4E, - 10381: 0x00009B4D, - 10382: 0x00009BCA, - 10383: 0x00009BC9, - 10384: 0x00009BFD, - 10385: 0x00009BC8, - 10386: 0x00009BC0, - 10387: 0x00009D51, - 10388: 0x00009D5D, - 10389: 0x00009D60, - 10390: 0x00009EE0, - 10391: 0x00009F15, - 10392: 0x00009F2C, - 10393: 0x00005133, - 10394: 0x000056A5, - 10395: 0x000058DE, - 10396: 0x000058DF, - 10397: 0x000058E2, - 10398: 0x00005BF5, - 10399: 0x00009F90, - 10400: 0x00005EEC, - 10401: 0x000061F2, - 10402: 0x000061F7, - 10403: 0x000061F6, - 10404: 0x000061F5, - 10405: 0x00006500, - 10406: 0x0000650F, - 10407: 0x000066E0, - 10408: 0x000066DD, - 10409: 0x00006AE5, - 10410: 0x00006ADD, - 10411: 0x00006ADA, - 10412: 0x00006AD3, - 10413: 0x0000701B, - 10414: 0x0000701F, - 10415: 0x00007028, - 10416: 0x0000701A, - 10417: 0x0000701D, - 10418: 0x00007015, - 10419: 0x00007018, - 10420: 0x00007206, - 10421: 0x0000720D, - 10422: 0x00007258, - 10423: 0x000072A2, - 10424: 0x00007378, - 10425: 0x0000737A, - 10426: 0x000074BD, - 10427: 0x000074CA, - 10428: 0x000074E3, - 10429: 0x00007587, - 10430: 0x00007586, - 10431: 0x0000765F, - 10432: 0x00007661, - 10433: 0x000077C7, - 10434: 0x00007919, - 10435: 0x000079B1, - 10436: 0x00007A6B, - 10437: 0x00007A69, - 10438: 0x00007C3E, - 10439: 0x00007C3F, - 10440: 0x00007C38, - 10441: 0x00007C3D, - 10442: 0x00007C37, - 10443: 0x00007C40, - 10444: 0x00007E6B, - 10445: 0x00007E6D, - 10446: 0x00007E79, - 10447: 0x00007E69, - 10448: 0x00007E6A, - 10449: 0x00007F85, - 10450: 0x00007E73, - 10451: 0x00007FB6, - 10452: 0x00007FB9, - 10453: 0x00007FB8, - 10454: 0x000081D8, - 10455: 0x000085E9, - 10456: 0x000085DD, - 10457: 0x000085EA, - 10458: 0x000085D5, - 10459: 0x000085E4, - 10460: 0x000085E5, - 10461: 0x000085F7, - 10462: 0x000087FB, - 10463: 0x00008805, - 10464: 0x0000880D, - 10465: 0x000087F9, - 10466: 0x000087FE, - 10467: 0x00008960, - 10468: 0x0000895F, - 10469: 0x00008956, - 10470: 0x0000895E, - 10471: 0x00008B41, - 10472: 0x00008B5C, - 10473: 0x00008B58, - 10474: 0x00008B49, - 10475: 0x00008B5A, - 10476: 0x00008B4E, - 10477: 0x00008B4F, - 10478: 0x00008B46, - 10479: 0x00008B59, - 10480: 0x00008D08, - 10481: 0x00008D0A, - 10482: 0x00008E7C, - 10483: 0x00008E72, - 10484: 0x00008E87, - 10485: 0x00008E76, - 10486: 0x00008E6C, - 10487: 0x00008E7A, - 10488: 0x00008E74, - 10489: 0x00008F54, - 10490: 0x00008F4E, - 10491: 0x00008FAD, - 10492: 0x0000908A, - 10493: 0x0000908B, - 10494: 0x000091B1, - 10495: 0x000091AE, - 10496: 0x000093E1, - 10497: 0x000093D1, - 10498: 0x000093DF, - 10499: 0x000093C3, - 10500: 0x000093C8, - 10501: 0x000093DC, - 10502: 0x000093DD, - 10503: 0x000093D6, - 10504: 0x000093E2, - 10505: 0x000093CD, - 10506: 0x000093D8, - 10507: 0x000093E4, - 10508: 0x000093D7, - 10509: 0x000093E8, - 10510: 0x000095DC, - 10511: 0x000096B4, - 10512: 0x000096E3, - 10513: 0x0000972A, - 10514: 0x00009727, - 10515: 0x00009761, - 10516: 0x000097DC, - 10517: 0x000097FB, - 10518: 0x0000985E, - 10519: 0x00009858, - 10520: 0x0000985B, - 10521: 0x000098BC, - 10522: 0x00009945, - 10523: 0x00009949, - 10524: 0x00009A16, - 10525: 0x00009A19, - 10526: 0x00009B0D, - 10527: 0x00009BE8, - 10528: 0x00009BE7, - 10529: 0x00009BD6, - 10530: 0x00009BDB, - 10531: 0x00009D89, - 10532: 0x00009D61, - 10533: 0x00009D72, - 10534: 0x00009D6A, - 10535: 0x00009D6C, - 10536: 0x00009E92, - 10537: 0x00009E97, - 10538: 0x00009E93, - 10539: 0x00009EB4, - 10540: 0x000052F8, - 10541: 0x000056A8, - 10542: 0x000056B7, - 10543: 0x000056B6, - 10544: 0x000056B4, - 10545: 0x000056BC, - 10546: 0x000058E4, - 10547: 0x00005B40, - 10548: 0x00005B43, - 10549: 0x00005B7D, - 10550: 0x00005BF6, - 10551: 0x00005DC9, - 10552: 0x000061F8, - 10553: 0x000061FA, - 10554: 0x00006518, - 10555: 0x00006514, - 10556: 0x00006519, - 10557: 0x000066E6, - 10558: 0x00006727, - 10559: 0x00006AEC, - 10560: 0x0000703E, - 10561: 0x00007030, - 10562: 0x00007032, - 10563: 0x00007210, - 10564: 0x0000737B, - 10565: 0x000074CF, - 10566: 0x00007662, - 10567: 0x00007665, - 10568: 0x00007926, - 10569: 0x0000792A, - 10570: 0x0000792C, - 10571: 0x0000792B, - 10572: 0x00007AC7, - 10573: 0x00007AF6, - 10574: 0x00007C4C, - 10575: 0x00007C43, - 10576: 0x00007C4D, - 10577: 0x00007CEF, - 10578: 0x00007CF0, - 10579: 0x00008FAE, - 10580: 0x00007E7D, - 10581: 0x00007E7C, - 10582: 0x00007E82, - 10583: 0x00007F4C, - 10584: 0x00008000, - 10585: 0x000081DA, - 10586: 0x00008266, - 10587: 0x000085FB, - 10588: 0x000085F9, - 10589: 0x00008611, - 10590: 0x000085FA, - 10591: 0x00008606, - 10592: 0x0000860B, - 10593: 0x00008607, - 10594: 0x0000860A, - 10595: 0x00008814, - 10596: 0x00008815, - 10597: 0x00008964, - 10598: 0x000089BA, - 10599: 0x000089F8, - 10600: 0x00008B70, - 10601: 0x00008B6C, - 10602: 0x00008B66, - 10603: 0x00008B6F, - 10604: 0x00008B5F, - 10605: 0x00008B6B, - 10606: 0x00008D0F, - 10607: 0x00008D0D, - 10608: 0x00008E89, - 10609: 0x00008E81, - 10610: 0x00008E85, - 10611: 0x00008E82, - 10612: 0x000091B4, - 10613: 0x000091CB, - 10614: 0x00009418, - 10615: 0x00009403, - 10616: 0x000093FD, - 10617: 0x000095E1, - 10618: 0x00009730, - 10619: 0x000098C4, - 10620: 0x00009952, - 10621: 0x00009951, - 10622: 0x000099A8, - 10623: 0x00009A2B, - 10624: 0x00009A30, - 10625: 0x00009A37, - 10626: 0x00009A35, - 10627: 0x00009C13, - 10628: 0x00009C0D, - 10629: 0x00009E79, - 10630: 0x00009EB5, - 10631: 0x00009EE8, - 10632: 0x00009F2F, - 10633: 0x00009F5F, - 10634: 0x00009F63, - 10635: 0x00009F61, - 10636: 0x00005137, - 10637: 0x00005138, - 10638: 0x000056C1, - 10639: 0x000056C0, - 10640: 0x000056C2, - 10641: 0x00005914, - 10642: 0x00005C6C, - 10643: 0x00005DCD, - 10644: 0x000061FC, - 10645: 0x000061FE, - 10646: 0x0000651D, - 10647: 0x0000651C, - 10648: 0x00006595, - 10649: 0x000066E9, - 10650: 0x00006AFB, - 10651: 0x00006B04, - 10652: 0x00006AFA, - 10653: 0x00006BB2, - 10654: 0x0000704C, - 10655: 0x0000721B, - 10656: 0x000072A7, - 10657: 0x000074D6, - 10658: 0x000074D4, - 10659: 0x00007669, - 10660: 0x000077D3, - 10661: 0x00007C50, - 10662: 0x00007E8F, - 10663: 0x00007E8C, - 10664: 0x00007FBC, - 10665: 0x00008617, - 10666: 0x0000862D, - 10667: 0x0000861A, - 10668: 0x00008823, - 10669: 0x00008822, - 10670: 0x00008821, - 10671: 0x0000881F, - 10672: 0x0000896A, - 10673: 0x0000896C, - 10674: 0x000089BD, - 10675: 0x00008B74, - 10676: 0x00008B77, - 10677: 0x00008B7D, - 10678: 0x00008D13, - 10679: 0x00008E8A, - 10680: 0x00008E8D, - 10681: 0x00008E8B, - 10682: 0x00008F5F, - 10683: 0x00008FAF, - 10684: 0x000091BA, - 10685: 0x0000942E, - 10686: 0x00009433, - 10687: 0x00009435, - 10688: 0x0000943A, - 10689: 0x00009438, - 10690: 0x00009432, - 10691: 0x0000942B, - 10692: 0x000095E2, - 10693: 0x00009738, - 10694: 0x00009739, - 10695: 0x00009732, - 10696: 0x000097FF, - 10697: 0x00009867, - 10698: 0x00009865, - 10699: 0x00009957, - 10700: 0x00009A45, - 10701: 0x00009A43, - 10702: 0x00009A40, - 10703: 0x00009A3E, - 10704: 0x00009ACF, - 10705: 0x00009B54, - 10706: 0x00009B51, - 10707: 0x00009C2D, - 10708: 0x00009C25, - 10709: 0x00009DAF, - 10710: 0x00009DB4, - 10711: 0x00009DC2, - 10712: 0x00009DB8, - 10713: 0x00009E9D, - 10714: 0x00009EEF, - 10715: 0x00009F19, - 10716: 0x00009F5C, - 10717: 0x00009F66, - 10718: 0x00009F67, - 10719: 0x0000513C, - 10720: 0x0000513B, - 10721: 0x000056C8, - 10722: 0x000056CA, - 10723: 0x000056C9, - 10724: 0x00005B7F, - 10725: 0x00005DD4, - 10726: 0x00005DD2, - 10727: 0x00005F4E, - 10728: 0x000061FF, - 10729: 0x00006524, - 10730: 0x00006B0A, - 10731: 0x00006B61, - 10732: 0x00007051, - 10733: 0x00007058, - 10734: 0x00007380, - 10735: 0x000074E4, - 10736: 0x0000758A, - 10737: 0x0000766E, - 10738: 0x0000766C, - 10739: 0x000079B3, - 10740: 0x00007C60, - 10741: 0x00007C5F, - 10742: 0x0000807E, - 10743: 0x0000807D, - 10744: 0x000081DF, - 10745: 0x00008972, - 10746: 0x0000896F, - 10747: 0x000089FC, - 10748: 0x00008B80, - 10749: 0x00008D16, - 10750: 0x00008D17, - 10751: 0x00008E91, - 10752: 0x00008E93, - 10753: 0x00008F61, - 10754: 0x00009148, - 10755: 0x00009444, - 10756: 0x00009451, - 10757: 0x00009452, - 10758: 0x0000973D, - 10759: 0x0000973E, - 10760: 0x000097C3, - 10761: 0x000097C1, - 10762: 0x0000986B, - 10763: 0x00009955, - 10764: 0x00009A55, - 10765: 0x00009A4D, - 10766: 0x00009AD2, - 10767: 0x00009B1A, - 10768: 0x00009C49, - 10769: 0x00009C31, - 10770: 0x00009C3E, - 10771: 0x00009C3B, - 10772: 0x00009DD3, - 10773: 0x00009DD7, - 10774: 0x00009F34, - 10775: 0x00009F6C, - 10776: 0x00009F6A, - 10777: 0x00009F94, - 10778: 0x000056CC, - 10779: 0x00005DD6, - 10780: 0x00006200, - 10781: 0x00006523, - 10782: 0x0000652B, - 10783: 0x0000652A, - 10784: 0x000066EC, - 10785: 0x00006B10, - 10786: 0x000074DA, - 10787: 0x00007ACA, - 10788: 0x00007C64, - 10789: 0x00007C63, - 10790: 0x00007C65, - 10791: 0x00007E93, - 10792: 0x00007E96, - 10793: 0x00007E94, - 10794: 0x000081E2, - 10795: 0x00008638, - 10796: 0x0000863F, - 10797: 0x00008831, - 10798: 0x00008B8A, - 10799: 0x00009090, - 10800: 0x0000908F, - 10801: 0x00009463, - 10802: 0x00009460, - 10803: 0x00009464, - 10804: 0x00009768, - 10805: 0x0000986F, - 10806: 0x0000995C, - 10807: 0x00009A5A, - 10808: 0x00009A5B, - 10809: 0x00009A57, - 10810: 0x00009AD3, - 10811: 0x00009AD4, - 10812: 0x00009AD1, - 10813: 0x00009C54, - 10814: 0x00009C57, - 10815: 0x00009C56, - 10816: 0x00009DE5, - 10817: 0x00009E9F, - 10818: 0x00009EF4, - 10819: 0x000056D1, - 10820: 0x000058E9, - 10821: 0x0000652C, - 10822: 0x0000705E, - 10823: 0x00007671, - 10824: 0x00007672, - 10825: 0x000077D7, - 10826: 0x00007F50, - 10827: 0x00007F88, - 10828: 0x00008836, - 10829: 0x00008839, - 10830: 0x00008862, - 10831: 0x00008B93, - 10832: 0x00008B92, - 10833: 0x00008B96, - 10834: 0x00008277, - 10835: 0x00008D1B, - 10836: 0x000091C0, - 10837: 0x0000946A, - 10838: 0x00009742, - 10839: 0x00009748, - 10840: 0x00009744, - 10841: 0x000097C6, - 10842: 0x00009870, - 10843: 0x00009A5F, - 10844: 0x00009B22, - 10845: 0x00009B58, - 10846: 0x00009C5F, - 10847: 0x00009DF9, - 10848: 0x00009DFA, - 10849: 0x00009E7C, - 10850: 0x00009E7D, - 10851: 0x00009F07, - 10852: 0x00009F77, - 10853: 0x00009F72, - 10854: 0x00005EF3, - 10855: 0x00006B16, - 10856: 0x00007063, - 10857: 0x00007C6C, - 10858: 0x00007C6E, - 10859: 0x0000883B, - 10860: 0x000089C0, - 10861: 0x00008EA1, - 10862: 0x000091C1, - 10863: 0x00009472, - 10864: 0x00009470, - 10865: 0x00009871, - 10866: 0x0000995E, - 10867: 0x00009AD6, - 10868: 0x00009B23, - 10869: 0x00009ECC, - 10870: 0x00007064, - 10871: 0x000077DA, - 10872: 0x00008B9A, - 10873: 0x00009477, - 10874: 0x000097C9, - 10875: 0x00009A62, - 10876: 0x00009A65, - 10877: 0x00007E9C, - 10878: 0x00008B9C, - 10879: 0x00008EAA, - 10880: 0x000091C5, - 10881: 0x0000947D, - 10882: 0x0000947E, - 10883: 0x0000947C, - 10884: 0x00009C77, - 10885: 0x00009C78, - 10886: 0x00009EF7, - 10887: 0x00008C54, - 10888: 0x0000947F, - 10889: 0x00009E1A, - 10890: 0x00007228, - 10891: 0x00009A6A, - 10892: 0x00009B31, - 10893: 0x00009E1B, - 10894: 0x00009E1E, - 10895: 0x00007C72, - 10896: 0x00002460, - 10897: 0x00002461, - 10898: 0x00002462, - 10899: 0x00002463, - 10900: 0x00002464, - 10901: 0x00002465, - 10902: 0x00002466, - 10903: 0x00002467, - 10904: 0x00002468, - 10905: 0x00002469, - 10906: 0x00002474, - 10907: 0x00002475, - 10908: 0x00002476, - 10909: 0x00002477, - 10910: 0x00002478, - 10911: 0x00002479, - 10912: 0x0000247A, - 10913: 0x0000247B, - 10914: 0x0000247C, - 10915: 0x0000247D, - 10916: 0x00002170, - 10917: 0x00002171, - 10918: 0x00002172, - 10919: 0x00002173, - 10920: 0x00002174, - 10921: 0x00002175, - 10922: 0x00002176, - 10923: 0x00002177, - 10924: 0x00002178, - 10925: 0x00002179, - 10926: 0x00004E36, - 10927: 0x00004E3F, - 10928: 0x00004E85, - 10929: 0x00004EA0, - 10930: 0x00005182, - 10931: 0x00005196, - 10932: 0x000051AB, - 10933: 0x000052F9, - 10934: 0x00005338, - 10935: 0x00005369, - 10936: 0x000053B6, - 10937: 0x0000590A, - 10938: 0x00005B80, - 10939: 0x00005DDB, - 10940: 0x00002F33, - 10941: 0x00005E7F, - 10942: 0x00005EF4, - 10943: 0x00005F50, - 10944: 0x00005F61, - 10945: 0x00006534, - 10946: 0x000065E0, - 10947: 0x00007592, - 10948: 0x00007676, - 10949: 0x00008FB5, - 10950: 0x000096B6, - 10951: 0x000000A8, - 10952: 0x000002C6, - 10953: 0x000030FD, - 10954: 0x000030FE, - 10955: 0x0000309D, - 10956: 0x0000309E, - 10957: 0x00003003, - 10958: 0x00004EDD, - 10959: 0x00003005, - 10960: 0x00003006, - 10961: 0x00003007, - 10962: 0x000030FC, - 10963: 0x0000FF3B, - 10964: 0x0000FF3D, - 10965: 0x0000273D, - 10966: 0x00003041, - 10967: 0x00003042, - 10968: 0x00003043, - 10969: 0x00003044, - 10970: 0x00003045, - 10971: 0x00003046, - 10972: 0x00003047, - 10973: 0x00003048, - 10974: 0x00003049, - 10975: 0x0000304A, - 10976: 0x0000304B, - 10977: 0x0000304C, - 10978: 0x0000304D, - 10979: 0x0000304E, - 10980: 0x0000304F, - 10981: 0x00003050, - 10982: 0x00003051, - 10983: 0x00003052, - 10984: 0x00003053, - 10985: 0x00003054, - 10986: 0x00003055, - 10987: 0x00003056, - 10988: 0x00003057, - 10989: 0x00003058, - 10990: 0x00003059, - 10991: 0x0000305A, - 10992: 0x0000305B, - 10993: 0x0000305C, - 10994: 0x0000305D, - 10995: 0x0000305E, - 10996: 0x0000305F, - 10997: 0x00003060, - 10998: 0x00003061, - 10999: 0x00003062, - 11000: 0x00003063, - 11001: 0x00003064, - 11002: 0x00003065, - 11003: 0x00003066, - 11004: 0x00003067, - 11005: 0x00003068, - 11006: 0x00003069, - 11007: 0x0000306A, - 11008: 0x0000306B, - 11009: 0x0000306C, - 11010: 0x0000306D, - 11011: 0x0000306E, - 11012: 0x0000306F, - 11013: 0x00003070, - 11014: 0x00003071, - 11015: 0x00003072, - 11016: 0x00003073, - 11017: 0x00003074, - 11018: 0x00003075, - 11019: 0x00003076, - 11020: 0x00003077, - 11021: 0x00003078, - 11022: 0x00003079, - 11023: 0x0000307A, - 11024: 0x0000307B, - 11025: 0x0000307C, - 11026: 0x0000307D, - 11027: 0x0000307E, - 11028: 0x0000307F, - 11029: 0x00003080, - 11030: 0x00003081, - 11031: 0x00003082, - 11032: 0x00003083, - 11033: 0x00003084, - 11034: 0x00003085, - 11035: 0x00003086, - 11036: 0x00003087, - 11037: 0x00003088, - 11038: 0x00003089, - 11039: 0x0000308A, - 11040: 0x0000308B, - 11041: 0x0000308C, - 11042: 0x0000308D, - 11043: 0x0000308E, - 11044: 0x0000308F, - 11045: 0x00003090, - 11046: 0x00003091, - 11047: 0x00003092, - 11048: 0x00003093, - 11049: 0x000030A1, - 11050: 0x000030A2, - 11051: 0x000030A3, - 11052: 0x000030A4, - 11053: 0x000030A5, - 11054: 0x000030A6, - 11055: 0x000030A7, - 11056: 0x000030A8, - 11057: 0x000030A9, - 11058: 0x000030AA, - 11059: 0x000030AB, - 11060: 0x000030AC, - 11061: 0x000030AD, - 11062: 0x000030AE, - 11063: 0x000030AF, - 11064: 0x000030B0, - 11065: 0x000030B1, - 11066: 0x000030B2, - 11067: 0x000030B3, - 11068: 0x000030B4, - 11069: 0x000030B5, - 11070: 0x000030B6, - 11071: 0x000030B7, - 11072: 0x000030B8, - 11073: 0x000030B9, - 11074: 0x000030BA, - 11075: 0x000030BB, - 11076: 0x000030BC, - 11077: 0x000030BD, - 11078: 0x000030BE, - 11079: 0x000030BF, - 11080: 0x000030C0, - 11081: 0x000030C1, - 11082: 0x000030C2, - 11083: 0x000030C3, - 11084: 0x000030C4, - 11085: 0x000030C5, - 11086: 0x000030C6, - 11087: 0x000030C7, - 11088: 0x000030C8, - 11089: 0x000030C9, - 11090: 0x000030CA, - 11091: 0x000030CB, - 11092: 0x000030CC, - 11093: 0x000030CD, - 11094: 0x000030CE, - 11095: 0x000030CF, - 11096: 0x000030D0, - 11097: 0x000030D1, - 11098: 0x000030D2, - 11099: 0x000030D3, - 11100: 0x000030D4, - 11101: 0x000030D5, - 11102: 0x000030D6, - 11103: 0x000030D7, - 11104: 0x000030D8, - 11105: 0x000030D9, - 11106: 0x000030DA, - 11107: 0x000030DB, - 11108: 0x000030DC, - 11109: 0x000030DD, - 11110: 0x000030DE, - 11111: 0x000030DF, - 11112: 0x000030E0, - 11113: 0x000030E1, - 11114: 0x000030E2, - 11115: 0x000030E3, - 11116: 0x000030E4, - 11117: 0x000030E5, - 11118: 0x000030E6, - 11119: 0x000030E7, - 11120: 0x000030E8, - 11121: 0x000030E9, - 11122: 0x000030EA, - 11123: 0x000030EB, - 11124: 0x000030EC, - 11125: 0x000030ED, - 11126: 0x000030EE, - 11127: 0x000030EF, - 11128: 0x000030F0, - 11129: 0x000030F1, - 11130: 0x000030F2, - 11131: 0x000030F3, - 11132: 0x000030F4, - 11133: 0x000030F5, - 11134: 0x000030F6, - 11135: 0x00000410, - 11136: 0x00000411, - 11137: 0x00000412, - 11138: 0x00000413, - 11139: 0x00000414, - 11140: 0x00000415, - 11141: 0x00000401, - 11142: 0x00000416, - 11143: 0x00000417, - 11144: 0x00000418, - 11145: 0x00000419, - 11146: 0x0000041A, - 11147: 0x0000041B, - 11148: 0x0000041C, - 11149: 0x0000041D, - 11150: 0x0000041E, - 11151: 0x0000041F, - 11152: 0x00000420, - 11153: 0x00000421, - 11154: 0x00000422, - 11155: 0x00000423, - 11156: 0x00000424, - 11157: 0x00000425, - 11158: 0x00000426, - 11159: 0x00000427, - 11160: 0x00000428, - 11161: 0x00000429, - 11162: 0x0000042A, - 11163: 0x0000042B, - 11164: 0x0000042C, - 11165: 0x0000042D, - 11166: 0x0000042E, - 11167: 0x0000042F, - 11168: 0x00000430, - 11169: 0x00000431, - 11170: 0x00000432, - 11171: 0x00000433, - 11172: 0x00000434, - 11173: 0x00000435, - 11174: 0x00000451, - 11175: 0x00000436, - 11176: 0x00000437, - 11177: 0x00000438, - 11178: 0x00000439, - 11179: 0x0000043A, - 11180: 0x0000043B, - 11181: 0x0000043C, - 11182: 0x0000043D, - 11183: 0x0000043E, - 11184: 0x0000043F, - 11185: 0x00000440, - 11186: 0x00000441, - 11187: 0x00000442, - 11188: 0x00000443, - 11189: 0x00000444, - 11190: 0x00000445, - 11191: 0x00000446, - 11192: 0x00000447, - 11193: 0x00000448, - 11194: 0x00000449, - 11195: 0x0000044A, - 11196: 0x0000044B, - 11197: 0x0000044C, - 11198: 0x0000044D, - 11199: 0x0000044E, - 11200: 0x0000044F, - 11201: 0x000021E7, - 11202: 0x000021B8, - 11203: 0x000021B9, - 11204: 0x000031CF, - 11205: 0x000200CC, - 11206: 0x00004E5A, - 11207: 0x0002008A, - 11208: 0x00005202, - 11209: 0x00004491, - 11210: 0x00009FB0, - 11211: 0x00005188, - 11212: 0x00009FB1, - 11213: 0x00027607, - 11254: 0x0000FFE2, - 11255: 0x0000FFE4, - 11256: 0x0000FF07, - 11257: 0x0000FF02, - 11258: 0x00003231, - 11259: 0x00002116, - 11260: 0x00002121, - 11261: 0x0000309B, - 11262: 0x0000309C, - 11263: 0x00002E80, - 11264: 0x00002E84, - 11265: 0x00002E86, - 11266: 0x00002E87, - 11267: 0x00002E88, - 11268: 0x00002E8A, - 11269: 0x00002E8C, - 11270: 0x00002E8D, - 11271: 0x00002E95, - 11272: 0x00002E9C, - 11273: 0x00002E9D, - 11274: 0x00002EA5, - 11275: 0x00002EA7, - 11276: 0x00002EAA, - 11277: 0x00002EAC, - 11278: 0x00002EAE, - 11279: 0x00002EB6, - 11280: 0x00002EBC, - 11281: 0x00002EBE, - 11282: 0x00002EC6, - 11283: 0x00002ECA, - 11284: 0x00002ECC, - 11285: 0x00002ECD, - 11286: 0x00002ECF, - 11287: 0x00002ED6, - 11288: 0x00002ED7, - 11289: 0x00002EDE, - 11290: 0x00002EE3, - 11294: 0x00000283, - 11295: 0x00000250, - 11296: 0x0000025B, - 11297: 0x00000254, - 11298: 0x00000275, - 11299: 0x00000153, - 11300: 0x000000F8, - 11301: 0x0000014B, - 11302: 0x0000028A, - 11303: 0x0000026A, - 11304: 0x00004E42, - 11305: 0x00004E5C, - 11306: 0x000051F5, - 11307: 0x0000531A, - 11308: 0x00005382, - 11309: 0x00004E07, - 11310: 0x00004E0C, - 11311: 0x00004E47, - 11312: 0x00004E8D, - 11313: 0x000056D7, - 11314: 0x0000FA0C, - 11315: 0x00005C6E, - 11316: 0x00005F73, - 11317: 0x00004E0F, - 11318: 0x00005187, - 11319: 0x00004E0E, - 11320: 0x00004E2E, - 11321: 0x00004E93, - 11322: 0x00004EC2, - 11323: 0x00004EC9, - 11324: 0x00004EC8, - 11325: 0x00005198, - 11326: 0x000052FC, - 11327: 0x0000536C, - 11328: 0x000053B9, - 11329: 0x00005720, - 11330: 0x00005903, - 11331: 0x0000592C, - 11332: 0x00005C10, - 11333: 0x00005DFF, - 11334: 0x000065E1, - 11335: 0x00006BB3, - 11336: 0x00006BCC, - 11337: 0x00006C14, - 11338: 0x0000723F, - 11339: 0x00004E31, - 11340: 0x00004E3C, - 11341: 0x00004EE8, - 11342: 0x00004EDC, - 11343: 0x00004EE9, - 11344: 0x00004EE1, - 11345: 0x00004EDD, - 11346: 0x00004EDA, - 11347: 0x0000520C, - 11348: 0x0000531C, - 11349: 0x0000534C, - 11350: 0x00005722, - 11351: 0x00005723, - 11352: 0x00005917, - 11353: 0x0000592F, - 11354: 0x00005B81, - 11355: 0x00005B84, - 11356: 0x00005C12, - 11357: 0x00005C3B, - 11358: 0x00005C74, - 11359: 0x00005C73, - 11360: 0x00005E04, - 11361: 0x00005E80, - 11362: 0x00005E82, - 11363: 0x00005FC9, - 11364: 0x00006209, - 11365: 0x00006250, - 11366: 0x00006C15, - 11367: 0x00006C36, - 11368: 0x00006C43, - 11369: 0x00006C3F, - 11370: 0x00006C3B, - 11371: 0x000072AE, - 11372: 0x000072B0, - 11373: 0x0000738A, - 11374: 0x000079B8, - 11375: 0x0000808A, - 11376: 0x0000961E, - 11377: 0x00004F0E, - 11378: 0x00004F18, - 11379: 0x00004F2C, - 11380: 0x00004EF5, - 11381: 0x00004F14, - 11382: 0x00004EF1, - 11383: 0x00004F00, - 11384: 0x00004EF7, - 11385: 0x00004F08, - 11386: 0x00004F1D, - 11387: 0x00004F02, - 11388: 0x00004F05, - 11389: 0x00004F22, - 11390: 0x00004F13, - 11391: 0x00004F04, - 11392: 0x00004EF4, - 11393: 0x00004F12, - 11394: 0x000051B1, - 11395: 0x00005213, - 11396: 0x00005209, - 11397: 0x00005210, - 11398: 0x000052A6, - 11399: 0x00005322, - 11400: 0x0000531F, - 11401: 0x0000534D, - 11402: 0x0000538A, - 11403: 0x00005407, - 11404: 0x000056E1, - 11405: 0x000056DF, - 11406: 0x0000572E, - 11407: 0x0000572A, - 11408: 0x00005734, - 11409: 0x0000593C, - 11410: 0x00005980, - 11411: 0x0000597C, - 11412: 0x00005985, - 11413: 0x0000597B, - 11414: 0x0000597E, - 11415: 0x00005977, - 11416: 0x0000597F, - 11417: 0x00005B56, - 11418: 0x00005C15, - 11419: 0x00005C25, - 11420: 0x00005C7C, - 11421: 0x00005C7A, - 11422: 0x00005C7B, - 11423: 0x00005C7E, - 11424: 0x00005DDF, - 11425: 0x00005E75, - 11426: 0x00005E84, - 11427: 0x00005F02, - 11428: 0x00005F1A, - 11429: 0x00005F74, - 11430: 0x00005FD5, - 11431: 0x00005FD4, - 11432: 0x00005FCF, - 11433: 0x0000625C, - 11434: 0x0000625E, - 11435: 0x00006264, - 11436: 0x00006261, - 11437: 0x00006266, - 11438: 0x00006262, - 11439: 0x00006259, - 11440: 0x00006260, - 11441: 0x0000625A, - 11442: 0x00006265, - 11443: 0x000065EF, - 11444: 0x000065EE, - 11445: 0x0000673E, - 11446: 0x00006739, - 11447: 0x00006738, - 11448: 0x0000673B, - 11449: 0x0000673A, - 11450: 0x0000673F, - 11451: 0x0000673C, - 11452: 0x00006733, - 11453: 0x00006C18, - 11454: 0x00006C46, - 11455: 0x00006C52, - 11456: 0x00006C5C, - 11457: 0x00006C4F, - 11458: 0x00006C4A, - 11459: 0x00006C54, - 11460: 0x00006C4B, - 11461: 0x00006C4C, - 11462: 0x00007071, - 11463: 0x0000725E, - 11464: 0x000072B4, - 11465: 0x000072B5, - 11466: 0x0000738E, - 11467: 0x0000752A, - 11468: 0x0000767F, - 11469: 0x00007A75, - 11470: 0x00007F51, - 11471: 0x00008278, - 11472: 0x0000827C, - 11473: 0x00008280, - 11474: 0x0000827D, - 11475: 0x0000827F, - 11476: 0x0000864D, - 11477: 0x0000897E, - 11478: 0x00009099, - 11479: 0x00009097, - 11480: 0x00009098, - 11481: 0x0000909B, - 11482: 0x00009094, - 11483: 0x00009622, - 11484: 0x00009624, - 11485: 0x00009620, - 11486: 0x00009623, - 11487: 0x00004F56, - 11488: 0x00004F3B, - 11489: 0x00004F62, - 11490: 0x00004F49, - 11491: 0x00004F53, - 11492: 0x00004F64, - 11493: 0x00004F3E, - 11494: 0x00004F67, - 11495: 0x00004F52, - 11496: 0x00004F5F, - 11497: 0x00004F41, - 11498: 0x00004F58, - 11499: 0x00004F2D, - 11500: 0x00004F33, - 11501: 0x00004F3F, - 11502: 0x00004F61, - 11503: 0x0000518F, - 11504: 0x000051B9, - 11505: 0x0000521C, - 11506: 0x0000521E, - 11507: 0x00005221, - 11508: 0x000052AD, - 11509: 0x000052AE, - 11510: 0x00005309, - 11511: 0x00005363, - 11512: 0x00005372, - 11513: 0x0000538E, - 11514: 0x0000538F, - 11515: 0x00005430, - 11516: 0x00005437, - 11517: 0x0000542A, - 11518: 0x00005454, - 11519: 0x00005445, - 11520: 0x00005419, - 11521: 0x0000541C, - 11522: 0x00005425, - 11523: 0x00005418, - 11524: 0x0000543D, - 11525: 0x0000544F, - 11526: 0x00005441, - 11527: 0x00005428, - 11528: 0x00005424, - 11529: 0x00005447, - 11530: 0x000056EE, - 11531: 0x000056E7, - 11532: 0x000056E5, - 11533: 0x00005741, - 11534: 0x00005745, - 11535: 0x0000574C, - 11536: 0x00005749, - 11537: 0x0000574B, - 11538: 0x00005752, - 11539: 0x00005906, - 11540: 0x00005940, - 11541: 0x000059A6, - 11542: 0x00005998, - 11543: 0x000059A0, - 11544: 0x00005997, - 11545: 0x0000598E, - 11546: 0x000059A2, - 11547: 0x00005990, - 11548: 0x0000598F, - 11549: 0x000059A7, - 11550: 0x000059A1, - 11551: 0x00005B8E, - 11552: 0x00005B92, - 11553: 0x00005C28, - 11554: 0x00005C2A, - 11555: 0x00005C8D, - 11556: 0x00005C8F, - 11557: 0x00005C88, - 11558: 0x00005C8B, - 11559: 0x00005C89, - 11560: 0x00005C92, - 11561: 0x00005C8A, - 11562: 0x00005C86, - 11563: 0x00005C93, - 11564: 0x00005C95, - 11565: 0x00005DE0, - 11566: 0x00005E0A, - 11567: 0x00005E0E, - 11568: 0x00005E8B, - 11569: 0x00005E89, - 11570: 0x00005E8C, - 11571: 0x00005E88, - 11572: 0x00005E8D, - 11573: 0x00005F05, - 11574: 0x00005F1D, - 11575: 0x00005F78, - 11576: 0x00005F76, - 11577: 0x00005FD2, - 11578: 0x00005FD1, - 11579: 0x00005FD0, - 11580: 0x00005FED, - 11581: 0x00005FE8, - 11582: 0x00005FEE, - 11583: 0x00005FF3, - 11584: 0x00005FE1, - 11585: 0x00005FE4, - 11586: 0x00005FE3, - 11587: 0x00005FFA, - 11588: 0x00005FEF, - 11589: 0x00005FF7, - 11590: 0x00005FFB, - 11591: 0x00006000, - 11592: 0x00005FF4, - 11593: 0x0000623A, - 11594: 0x00006283, - 11595: 0x0000628C, - 11596: 0x0000628E, - 11597: 0x0000628F, - 11598: 0x00006294, - 11599: 0x00006287, - 11600: 0x00006271, - 11601: 0x0000627B, - 11602: 0x0000627A, - 11603: 0x00006270, - 11604: 0x00006281, - 11605: 0x00006288, - 11606: 0x00006277, - 11607: 0x0000627D, - 11608: 0x00006272, - 11609: 0x00006274, - 11610: 0x00006537, - 11611: 0x000065F0, - 11612: 0x000065F4, - 11613: 0x000065F3, - 11614: 0x000065F2, - 11615: 0x000065F5, - 11616: 0x00006745, - 11617: 0x00006747, - 11618: 0x00006759, - 11619: 0x00006755, - 11620: 0x0000674C, - 11621: 0x00006748, - 11622: 0x0000675D, - 11623: 0x0000674D, - 11624: 0x0000675A, - 11625: 0x0000674B, - 11626: 0x00006BD0, - 11627: 0x00006C19, - 11628: 0x00006C1A, - 11629: 0x00006C78, - 11630: 0x00006C67, - 11631: 0x00006C6B, - 11632: 0x00006C84, - 11633: 0x00006C8B, - 11634: 0x00006C8F, - 11635: 0x00006C71, - 11636: 0x00006C6F, - 11637: 0x00006C69, - 11638: 0x00006C9A, - 11639: 0x00006C6D, - 11640: 0x00006C87, - 11641: 0x00006C95, - 11642: 0x00006C9C, - 11643: 0x00006C66, - 11644: 0x00006C73, - 11645: 0x00006C65, - 11646: 0x00006C7B, - 11647: 0x00006C8E, - 11648: 0x00007074, - 11649: 0x0000707A, - 11650: 0x00007263, - 11651: 0x000072BF, - 11652: 0x000072BD, - 11653: 0x000072C3, - 11654: 0x000072C6, - 11655: 0x000072C1, - 11656: 0x000072BA, - 11657: 0x000072C5, - 11658: 0x00007395, - 11659: 0x00007397, - 11660: 0x00007393, - 11661: 0x00007394, - 11662: 0x00007392, - 11663: 0x0000753A, - 11664: 0x00007539, - 11665: 0x00007594, - 11666: 0x00007595, - 11667: 0x00007681, - 11668: 0x0000793D, - 11669: 0x00008034, - 11670: 0x00008095, - 11671: 0x00008099, - 11672: 0x00008090, - 11673: 0x00008092, - 11674: 0x0000809C, - 11675: 0x00008290, - 11676: 0x0000828F, - 11677: 0x00008285, - 11678: 0x0000828E, - 11679: 0x00008291, - 11680: 0x00008293, - 11681: 0x0000828A, - 11682: 0x00008283, - 11683: 0x00008284, - 11684: 0x00008C78, - 11685: 0x00008FC9, - 11686: 0x00008FBF, - 11687: 0x0000909F, - 11688: 0x000090A1, - 11689: 0x000090A5, - 11690: 0x0000909E, - 11691: 0x000090A7, - 11692: 0x000090A0, - 11693: 0x00009630, - 11694: 0x00009628, - 11695: 0x0000962F, - 11696: 0x0000962D, - 11697: 0x00004E33, - 11698: 0x00004F98, - 11699: 0x00004F7C, - 11700: 0x00004F85, - 11701: 0x00004F7D, - 11702: 0x00004F80, - 11703: 0x00004F87, - 11704: 0x00004F76, - 11705: 0x00004F74, - 11706: 0x00004F89, - 11707: 0x00004F84, - 11708: 0x00004F77, - 11709: 0x00004F4C, - 11710: 0x00004F97, - 11711: 0x00004F6A, - 11712: 0x00004F9A, - 11713: 0x00004F79, - 11714: 0x00004F81, - 11715: 0x00004F78, - 11716: 0x00004F90, - 11717: 0x00004F9C, - 11718: 0x00004F94, - 11719: 0x00004F9E, - 11720: 0x00004F92, - 11721: 0x00004F82, - 11722: 0x00004F95, - 11723: 0x00004F6B, - 11724: 0x00004F6E, - 11725: 0x0000519E, - 11726: 0x000051BC, - 11727: 0x000051BE, - 11728: 0x00005235, - 11729: 0x00005232, - 11730: 0x00005233, - 11731: 0x00005246, - 11732: 0x00005231, - 11733: 0x000052BC, - 11734: 0x0000530A, - 11735: 0x0000530B, - 11736: 0x0000533C, - 11737: 0x00005392, - 11738: 0x00005394, - 11739: 0x00005487, - 11740: 0x0000547F, - 11741: 0x00005481, - 11742: 0x00005491, - 11743: 0x00005482, - 11744: 0x00005488, - 11745: 0x0000546B, - 11746: 0x0000547A, - 11747: 0x0000547E, - 11748: 0x00005465, - 11749: 0x0000546C, - 11750: 0x00005474, - 11751: 0x00005466, - 11752: 0x0000548D, - 11753: 0x0000546F, - 11754: 0x00005461, - 11755: 0x00005460, - 11756: 0x00005498, - 11757: 0x00005463, - 11758: 0x00005467, - 11759: 0x00005464, - 11760: 0x000056F7, - 11761: 0x000056F9, - 11762: 0x0000576F, - 11763: 0x00005772, - 11764: 0x0000576D, - 11765: 0x0000576B, - 11766: 0x00005771, - 11767: 0x00005770, - 11768: 0x00005776, - 11769: 0x00005780, - 11770: 0x00005775, - 11771: 0x0000577B, - 11772: 0x00005773, - 11773: 0x00005774, - 11774: 0x00005762, - 11775: 0x00005768, - 11776: 0x0000577D, - 11777: 0x0000590C, - 11778: 0x00005945, - 11779: 0x000059B5, - 11780: 0x000059BA, - 11781: 0x000059CF, - 11782: 0x000059CE, - 11783: 0x000059B2, - 11784: 0x000059CC, - 11785: 0x000059C1, - 11786: 0x000059B6, - 11787: 0x000059BC, - 11788: 0x000059C3, - 11789: 0x000059D6, - 11790: 0x000059B1, - 11791: 0x000059BD, - 11792: 0x000059C0, - 11793: 0x000059C8, - 11794: 0x000059B4, - 11795: 0x000059C7, - 11796: 0x00005B62, - 11797: 0x00005B65, - 11798: 0x00005B93, - 11799: 0x00005B95, - 11800: 0x00005C44, - 11801: 0x00005C47, - 11802: 0x00005CAE, - 11803: 0x00005CA4, - 11804: 0x00005CA0, - 11805: 0x00005CB5, - 11806: 0x00005CAF, - 11807: 0x00005CA8, - 11808: 0x00005CAC, - 11809: 0x00005C9F, - 11810: 0x00005CA3, - 11811: 0x00005CAD, - 11812: 0x00005CA2, - 11813: 0x00005CAA, - 11814: 0x00005CA7, - 11815: 0x00005C9D, - 11816: 0x00005CA5, - 11817: 0x00005CB6, - 11818: 0x00005CB0, - 11819: 0x00005CA6, - 11820: 0x00005E17, - 11821: 0x00005E14, - 11822: 0x00005E19, - 11823: 0x00005F28, - 11824: 0x00005F22, - 11825: 0x00005F23, - 11826: 0x00005F24, - 11827: 0x00005F54, - 11828: 0x00005F82, - 11829: 0x00005F7E, - 11830: 0x00005F7D, - 11831: 0x00005FDE, - 11832: 0x00005FE5, - 11833: 0x0000602D, - 11834: 0x00006026, - 11835: 0x00006019, - 11836: 0x00006032, - 11837: 0x0000600B, - 11838: 0x00006034, - 11839: 0x0000600A, - 11840: 0x00006017, - 11841: 0x00006033, - 11842: 0x0000601A, - 11843: 0x0000601E, - 11844: 0x0000602C, - 11845: 0x00006022, - 11846: 0x0000600D, - 11847: 0x00006010, - 11848: 0x0000602E, - 11849: 0x00006013, - 11850: 0x00006011, - 11851: 0x0000600C, - 11852: 0x00006009, - 11853: 0x0000601C, - 11854: 0x00006214, - 11855: 0x0000623D, - 11856: 0x000062AD, - 11857: 0x000062B4, - 11858: 0x000062D1, - 11859: 0x000062BE, - 11860: 0x000062AA, - 11861: 0x000062B6, - 11862: 0x000062CA, - 11863: 0x000062AE, - 11864: 0x000062B3, - 11865: 0x000062AF, - 11866: 0x000062BB, - 11867: 0x000062A9, - 11868: 0x000062B0, - 11869: 0x000062B8, - 11870: 0x0000653D, - 11871: 0x000065A8, - 11872: 0x000065BB, - 11873: 0x00006609, - 11874: 0x000065FC, - 11875: 0x00006604, - 11876: 0x00006612, - 11877: 0x00006608, - 11878: 0x000065FB, - 11879: 0x00006603, - 11880: 0x0000660B, - 11881: 0x0000660D, - 11882: 0x00006605, - 11883: 0x000065FD, - 11884: 0x00006611, - 11885: 0x00006610, - 11886: 0x000066F6, - 11887: 0x0000670A, - 11888: 0x00006785, - 11889: 0x0000676C, - 11890: 0x0000678E, - 11891: 0x00006792, - 11892: 0x00006776, - 11893: 0x0000677B, - 11894: 0x00006798, - 11895: 0x00006786, - 11896: 0x00006784, - 11897: 0x00006774, - 11898: 0x0000678D, - 11899: 0x0000678C, - 11900: 0x0000677A, - 11901: 0x0000679F, - 11902: 0x00006791, - 11903: 0x00006799, - 11904: 0x00006783, - 11905: 0x0000677D, - 11906: 0x00006781, - 11907: 0x00006778, - 11908: 0x00006779, - 11909: 0x00006794, - 11910: 0x00006B25, - 11911: 0x00006B80, - 11912: 0x00006B7E, - 11913: 0x00006BDE, - 11914: 0x00006C1D, - 11915: 0x00006C93, - 11916: 0x00006CEC, - 11917: 0x00006CEB, - 11918: 0x00006CEE, - 11919: 0x00006CD9, - 11920: 0x00006CB6, - 11921: 0x00006CD4, - 11922: 0x00006CAD, - 11923: 0x00006CE7, - 11924: 0x00006CB7, - 11925: 0x00006CD0, - 11926: 0x00006CC2, - 11927: 0x00006CBA, - 11928: 0x00006CC3, - 11929: 0x00006CC6, - 11930: 0x00006CED, - 11931: 0x00006CF2, - 11932: 0x00006CD2, - 11933: 0x00006CDD, - 11934: 0x00006CB4, - 11935: 0x00006C8A, - 11936: 0x00006C9D, - 11937: 0x00006C80, - 11938: 0x00006CDE, - 11939: 0x00006CC0, - 11940: 0x00006D30, - 11941: 0x00006CCD, - 11942: 0x00006CC7, - 11943: 0x00006CB0, - 11944: 0x00006CF9, - 11945: 0x00006CCF, - 11946: 0x00006CE9, - 11947: 0x00006CD1, - 11948: 0x00007094, - 11949: 0x00007098, - 11950: 0x00007085, - 11951: 0x00007093, - 11952: 0x00007086, - 11953: 0x00007084, - 11954: 0x00007091, - 11955: 0x00007096, - 11956: 0x00007082, - 11957: 0x0000709A, - 11958: 0x00007083, - 11959: 0x0000726A, - 11960: 0x000072D6, - 11961: 0x000072CB, - 11962: 0x000072D8, - 11963: 0x000072C9, - 11964: 0x000072DC, - 11965: 0x000072D2, - 11966: 0x000072D4, - 11967: 0x000072DA, - 11968: 0x000072CC, - 11969: 0x000072D1, - 11970: 0x000073A4, - 11971: 0x000073A1, - 11972: 0x000073AD, - 11973: 0x000073A6, - 11974: 0x000073A2, - 11975: 0x000073A0, - 11976: 0x000073AC, - 11977: 0x0000739D, - 11978: 0x000074DD, - 11979: 0x000074E8, - 11980: 0x0000753F, - 11981: 0x00007540, - 11982: 0x0000753E, - 11983: 0x0000758C, - 11984: 0x00007598, - 11985: 0x000076AF, - 11986: 0x000076F3, - 11987: 0x000076F1, - 11988: 0x000076F0, - 11989: 0x000076F5, - 11990: 0x000077F8, - 11991: 0x000077FC, - 11992: 0x000077F9, - 11993: 0x000077FB, - 11994: 0x000077FA, - 11995: 0x000077F7, - 11996: 0x00007942, - 11997: 0x0000793F, - 11998: 0x000079C5, - 11999: 0x00007A78, - 12000: 0x00007A7B, - 12001: 0x00007AFB, - 12002: 0x00007C75, - 12003: 0x00007CFD, - 12004: 0x00008035, - 12005: 0x0000808F, - 12006: 0x000080AE, - 12007: 0x000080A3, - 12008: 0x000080B8, - 12009: 0x000080B5, - 12010: 0x000080AD, - 12011: 0x00008220, - 12012: 0x000082A0, - 12013: 0x000082C0, - 12014: 0x000082AB, - 12015: 0x0000829A, - 12016: 0x00008298, - 12017: 0x0000829B, - 12018: 0x000082B5, - 12019: 0x000082A7, - 12020: 0x000082AE, - 12021: 0x000082BC, - 12022: 0x0000829E, - 12023: 0x000082BA, - 12024: 0x000082B4, - 12025: 0x000082A8, - 12026: 0x000082A1, - 12027: 0x000082A9, - 12028: 0x000082C2, - 12029: 0x000082A4, - 12030: 0x000082C3, - 12031: 0x000082B6, - 12032: 0x000082A2, - 12033: 0x00008670, - 12034: 0x0000866F, - 12035: 0x0000866D, - 12036: 0x0000866E, - 12037: 0x00008C56, - 12038: 0x00008FD2, - 12039: 0x00008FCB, - 12040: 0x00008FD3, - 12041: 0x00008FCD, - 12042: 0x00008FD6, - 12043: 0x00008FD5, - 12044: 0x00008FD7, - 12045: 0x000090B2, - 12046: 0x000090B4, - 12047: 0x000090AF, - 12048: 0x000090B3, - 12049: 0x000090B0, - 12050: 0x00009639, - 12051: 0x0000963D, - 12052: 0x0000963C, - 12053: 0x0000963A, - 12054: 0x00009643, - 12055: 0x00004FCD, - 12056: 0x00004FC5, - 12057: 0x00004FD3, - 12058: 0x00004FB2, - 12059: 0x00004FC9, - 12060: 0x00004FCB, - 12061: 0x00004FC1, - 12062: 0x00004FD4, - 12063: 0x00004FDC, - 12064: 0x00004FD9, - 12065: 0x00004FBB, - 12066: 0x00004FB3, - 12067: 0x00004FDB, - 12068: 0x00004FC7, - 12069: 0x00004FD6, - 12070: 0x00004FBA, - 12071: 0x00004FC0, - 12072: 0x00004FB9, - 12073: 0x00004FEC, - 12074: 0x00005244, - 12075: 0x00005249, - 12076: 0x000052C0, - 12077: 0x000052C2, - 12078: 0x0000533D, - 12079: 0x0000537C, - 12080: 0x00005397, - 12081: 0x00005396, - 12082: 0x00005399, - 12083: 0x00005398, - 12084: 0x000054BA, - 12085: 0x000054A1, - 12086: 0x000054AD, - 12087: 0x000054A5, - 12088: 0x000054CF, - 12089: 0x000054C3, - 12090: 0x0000830D, - 12091: 0x000054B7, - 12092: 0x000054AE, - 12093: 0x000054D6, - 12094: 0x000054B6, - 12095: 0x000054C5, - 12096: 0x000054C6, - 12097: 0x000054A0, - 12098: 0x00005470, - 12099: 0x000054BC, - 12100: 0x000054A2, - 12101: 0x000054BE, - 12102: 0x00005472, - 12103: 0x000054DE, - 12104: 0x000054B0, - 12105: 0x000057B5, - 12106: 0x0000579E, - 12107: 0x0000579F, - 12108: 0x000057A4, - 12109: 0x0000578C, - 12110: 0x00005797, - 12111: 0x0000579D, - 12112: 0x0000579B, - 12113: 0x00005794, - 12114: 0x00005798, - 12115: 0x0000578F, - 12116: 0x00005799, - 12117: 0x000057A5, - 12118: 0x0000579A, - 12119: 0x00005795, - 12120: 0x000058F4, - 12121: 0x0000590D, - 12122: 0x00005953, - 12123: 0x000059E1, - 12124: 0x000059DE, - 12125: 0x000059EE, - 12126: 0x00005A00, - 12127: 0x000059F1, - 12128: 0x000059DD, - 12129: 0x000059FA, - 12130: 0x000059FD, - 12131: 0x000059FC, - 12132: 0x000059F6, - 12133: 0x000059E4, - 12134: 0x000059F2, - 12135: 0x000059F7, - 12136: 0x000059DB, - 12137: 0x000059E9, - 12138: 0x000059F3, - 12139: 0x000059F5, - 12140: 0x000059E0, - 12141: 0x000059FE, - 12142: 0x000059F4, - 12143: 0x000059ED, - 12144: 0x00005BA8, - 12145: 0x00005C4C, - 12146: 0x00005CD0, - 12147: 0x00005CD8, - 12148: 0x00005CCC, - 12149: 0x00005CD7, - 12150: 0x00005CCB, - 12151: 0x00005CDB, - 12152: 0x00005CDE, - 12153: 0x00005CDA, - 12154: 0x00005CC9, - 12155: 0x00005CC7, - 12156: 0x00005CCA, - 12157: 0x00005CD6, - 12158: 0x00005CD3, - 12159: 0x00005CD4, - 12160: 0x00005CCF, - 12161: 0x00005CC8, - 12162: 0x00005CC6, - 12163: 0x00005CCE, - 12164: 0x00005CDF, - 12165: 0x00005CF8, - 12166: 0x00005DF9, - 12167: 0x00005E21, - 12168: 0x00005E22, - 12169: 0x00005E23, - 12170: 0x00005E20, - 12171: 0x00005E24, - 12172: 0x00005EB0, - 12173: 0x00005EA4, - 12174: 0x00005EA2, - 12175: 0x00005E9B, - 12176: 0x00005EA3, - 12177: 0x00005EA5, - 12178: 0x00005F07, - 12179: 0x00005F2E, - 12180: 0x00005F56, - 12181: 0x00005F86, - 12182: 0x00006037, - 12183: 0x00006039, - 12184: 0x00006054, - 12185: 0x00006072, - 12186: 0x0000605E, - 12187: 0x00006045, - 12188: 0x00006053, - 12189: 0x00006047, - 12190: 0x00006049, - 12191: 0x0000605B, - 12192: 0x0000604C, - 12193: 0x00006040, - 12194: 0x00006042, - 12195: 0x0000605F, - 12196: 0x00006024, - 12197: 0x00006044, - 12198: 0x00006058, - 12199: 0x00006066, - 12200: 0x0000606E, - 12201: 0x00006242, - 12202: 0x00006243, - 12203: 0x000062CF, - 12204: 0x0000630D, - 12205: 0x0000630B, - 12206: 0x000062F5, - 12207: 0x0000630E, - 12208: 0x00006303, - 12209: 0x000062EB, - 12210: 0x000062F9, - 12211: 0x0000630F, - 12212: 0x0000630C, - 12213: 0x000062F8, - 12214: 0x000062F6, - 12215: 0x00006300, - 12216: 0x00006313, - 12217: 0x00006314, - 12218: 0x000062FA, - 12219: 0x00006315, - 12220: 0x000062FB, - 12221: 0x000062F0, - 12222: 0x00006541, - 12223: 0x00006543, - 12224: 0x000065AA, - 12225: 0x000065BF, - 12226: 0x00006636, - 12227: 0x00006621, - 12228: 0x00006632, - 12229: 0x00006635, - 12230: 0x0000661C, - 12231: 0x00006626, - 12232: 0x00006622, - 12233: 0x00006633, - 12234: 0x0000662B, - 12235: 0x0000663A, - 12236: 0x0000661D, - 12237: 0x00006634, - 12238: 0x00006639, - 12239: 0x0000662E, - 12240: 0x0000670F, - 12241: 0x00006710, - 12242: 0x000067C1, - 12243: 0x000067F2, - 12244: 0x000067C8, - 12245: 0x000067BA, - 12246: 0x000067DC, - 12247: 0x000067BB, - 12248: 0x000067F8, - 12249: 0x000067D8, - 12250: 0x000067C0, - 12251: 0x000067B7, - 12252: 0x000067C5, - 12253: 0x000067EB, - 12254: 0x000067E4, - 12255: 0x000067DF, - 12256: 0x000067B5, - 12257: 0x000067CD, - 12258: 0x000067B3, - 12259: 0x000067F7, - 12260: 0x000067F6, - 12261: 0x000067EE, - 12262: 0x000067E3, - 12263: 0x000067C2, - 12264: 0x000067B9, - 12265: 0x000067CE, - 12266: 0x000067E7, - 12267: 0x000067F0, - 12268: 0x000067B2, - 12269: 0x000067FC, - 12270: 0x000067C6, - 12271: 0x000067ED, - 12272: 0x000067CC, - 12273: 0x000067AE, - 12274: 0x000067E6, - 12275: 0x000067DB, - 12276: 0x000067FA, - 12277: 0x000067C9, - 12278: 0x000067CA, - 12279: 0x000067C3, - 12280: 0x000067EA, - 12281: 0x000067CB, - 12282: 0x00006B28, - 12283: 0x00006B82, - 12284: 0x00006B84, - 12285: 0x00006BB6, - 12286: 0x00006BD6, - 12287: 0x00006BD8, - 12288: 0x00006BE0, - 12289: 0x00006C20, - 12290: 0x00006C21, - 12291: 0x00006D28, - 12292: 0x00006D34, - 12293: 0x00006D2D, - 12294: 0x00006D1F, - 12295: 0x00006D3C, - 12296: 0x00006D3F, - 12297: 0x00006D12, - 12298: 0x00006D0A, - 12299: 0x00006CDA, - 12300: 0x00006D33, - 12301: 0x00006D04, - 12302: 0x00006D19, - 12303: 0x00006D3A, - 12304: 0x00006D1A, - 12305: 0x00006D11, - 12306: 0x00006D00, - 12307: 0x00006D1D, - 12308: 0x00006D42, - 12309: 0x00006D01, - 12310: 0x00006D18, - 12311: 0x00006D37, - 12312: 0x00006D03, - 12313: 0x00006D0F, - 12314: 0x00006D40, - 12315: 0x00006D07, - 12316: 0x00006D20, - 12317: 0x00006D2C, - 12318: 0x00006D08, - 12319: 0x00006D22, - 12320: 0x00006D09, - 12321: 0x00006D10, - 12322: 0x000070B7, - 12323: 0x0000709F, - 12324: 0x000070BE, - 12325: 0x000070B1, - 12326: 0x000070B0, - 12327: 0x000070A1, - 12328: 0x000070B4, - 12329: 0x000070B5, - 12330: 0x000070A9, - 12331: 0x00007241, - 12332: 0x00007249, - 12333: 0x0000724A, - 12334: 0x0000726C, - 12335: 0x00007270, - 12336: 0x00007273, - 12337: 0x0000726E, - 12338: 0x000072CA, - 12339: 0x000072E4, - 12340: 0x000072E8, - 12341: 0x000072EB, - 12342: 0x000072DF, - 12343: 0x000072EA, - 12344: 0x000072E6, - 12345: 0x000072E3, - 12346: 0x00007385, - 12347: 0x000073CC, - 12348: 0x000073C2, - 12349: 0x000073C8, - 12350: 0x000073C5, - 12351: 0x000073B9, - 12352: 0x000073B6, - 12353: 0x000073B5, - 12354: 0x000073B4, - 12355: 0x000073EB, - 12356: 0x000073BF, - 12357: 0x000073C7, - 12358: 0x000073BE, - 12359: 0x000073C3, - 12360: 0x000073C6, - 12361: 0x000073B8, - 12362: 0x000073CB, - 12363: 0x000074EC, - 12364: 0x000074EE, - 12365: 0x0000752E, - 12366: 0x00007547, - 12367: 0x00007548, - 12368: 0x000075A7, - 12369: 0x000075AA, - 12370: 0x00007679, - 12371: 0x000076C4, - 12372: 0x00007708, - 12373: 0x00007703, - 12374: 0x00007704, - 12375: 0x00007705, - 12376: 0x0000770A, - 12377: 0x000076F7, - 12378: 0x000076FB, - 12379: 0x000076FA, - 12380: 0x000077E7, - 12381: 0x000077E8, - 12382: 0x00007806, - 12383: 0x00007811, - 12384: 0x00007812, - 12385: 0x00007805, - 12386: 0x00007810, - 12387: 0x0000780F, - 12388: 0x0000780E, - 12389: 0x00007809, - 12390: 0x00007803, - 12391: 0x00007813, - 12392: 0x0000794A, - 12393: 0x0000794C, - 12394: 0x0000794B, - 12395: 0x00007945, - 12396: 0x00007944, - 12397: 0x000079D5, - 12398: 0x000079CD, - 12399: 0x000079CF, - 12400: 0x000079D6, - 12401: 0x000079CE, - 12402: 0x00007A80, - 12403: 0x00007A7E, - 12404: 0x00007AD1, - 12405: 0x00007B00, - 12406: 0x00007B01, - 12407: 0x00007C7A, - 12408: 0x00007C78, - 12409: 0x00007C79, - 12410: 0x00007C7F, - 12411: 0x00007C80, - 12412: 0x00007C81, - 12413: 0x00007D03, - 12414: 0x00007D08, - 12415: 0x00007D01, - 12416: 0x00007F58, - 12417: 0x00007F91, - 12418: 0x00007F8D, - 12419: 0x00007FBE, - 12420: 0x00008007, - 12421: 0x0000800E, - 12422: 0x0000800F, - 12423: 0x00008014, - 12424: 0x00008037, - 12425: 0x000080D8, - 12426: 0x000080C7, - 12427: 0x000080E0, - 12428: 0x000080D1, - 12429: 0x000080C8, - 12430: 0x000080C2, - 12431: 0x000080D0, - 12432: 0x000080C5, - 12433: 0x000080E3, - 12434: 0x000080D9, - 12435: 0x000080DC, - 12436: 0x000080CA, - 12437: 0x000080D5, - 12438: 0x000080C9, - 12439: 0x000080CF, - 12440: 0x000080D7, - 12441: 0x000080E6, - 12442: 0x000080CD, - 12443: 0x000081FF, - 12444: 0x00008221, - 12445: 0x00008294, - 12446: 0x000082D9, - 12447: 0x000082FE, - 12448: 0x000082F9, - 12449: 0x00008307, - 12450: 0x000082E8, - 12451: 0x00008300, - 12452: 0x000082D5, - 12453: 0x0000833A, - 12454: 0x000082EB, - 12455: 0x000082D6, - 12456: 0x000082F4, - 12457: 0x000082EC, - 12458: 0x000082E1, - 12459: 0x000082F2, - 12460: 0x000082F5, - 12461: 0x0000830C, - 12462: 0x000082FB, - 12463: 0x000082F6, - 12464: 0x000082F0, - 12465: 0x000082EA, - 12466: 0x000082E4, - 12467: 0x000082E0, - 12468: 0x000082FA, - 12469: 0x000082F3, - 12470: 0x000082ED, - 12471: 0x00008677, - 12472: 0x00008674, - 12473: 0x0000867C, - 12474: 0x00008673, - 12475: 0x00008841, - 12476: 0x0000884E, - 12477: 0x00008867, - 12478: 0x0000886A, - 12479: 0x00008869, - 12480: 0x000089D3, - 12481: 0x00008A04, - 12482: 0x00008A07, - 12483: 0x00008D72, - 12484: 0x00008FE3, - 12485: 0x00008FE1, - 12486: 0x00008FEE, - 12487: 0x00008FE0, - 12488: 0x000090F1, - 12489: 0x000090BD, - 12490: 0x000090BF, - 12491: 0x000090D5, - 12492: 0x000090C5, - 12493: 0x000090BE, - 12494: 0x000090C7, - 12495: 0x000090CB, - 12496: 0x000090C8, - 12497: 0x000091D4, - 12498: 0x000091D3, - 12499: 0x00009654, - 12500: 0x0000964F, - 12501: 0x00009651, - 12502: 0x00009653, - 12503: 0x0000964A, - 12504: 0x0000964E, - 12505: 0x0000501E, - 12506: 0x00005005, - 12507: 0x00005007, - 12508: 0x00005013, - 12509: 0x00005022, - 12510: 0x00005030, - 12511: 0x0000501B, - 12512: 0x00004FF5, - 12513: 0x00004FF4, - 12514: 0x00005033, - 12515: 0x00005037, - 12516: 0x0000502C, - 12517: 0x00004FF6, - 12518: 0x00004FF7, - 12519: 0x00005017, - 12520: 0x0000501C, - 12521: 0x00005020, - 12522: 0x00005027, - 12523: 0x00005035, - 12524: 0x0000502F, - 12525: 0x00005031, - 12526: 0x0000500E, - 12527: 0x0000515A, - 12528: 0x00005194, - 12529: 0x00005193, - 12530: 0x000051CA, - 12531: 0x000051C4, - 12532: 0x000051C5, - 12533: 0x000051C8, - 12534: 0x000051CE, - 12535: 0x00005261, - 12536: 0x0000525A, - 12537: 0x00005252, - 12538: 0x0000525E, - 12539: 0x0000525F, - 12540: 0x00005255, - 12541: 0x00005262, - 12542: 0x000052CD, - 12543: 0x0000530E, - 12544: 0x0000539E, - 12545: 0x00005526, - 12546: 0x000054E2, - 12547: 0x00005517, - 12548: 0x00005512, - 12549: 0x000054E7, - 12550: 0x000054F3, - 12551: 0x000054E4, - 12552: 0x0000551A, - 12553: 0x000054FF, - 12554: 0x00005504, - 12555: 0x00005508, - 12556: 0x000054EB, - 12557: 0x00005511, - 12558: 0x00005505, - 12559: 0x000054F1, - 12560: 0x0000550A, - 12561: 0x000054FB, - 12562: 0x000054F7, - 12563: 0x000054F8, - 12564: 0x000054E0, - 12565: 0x0000550E, - 12566: 0x00005503, - 12567: 0x0000550B, - 12568: 0x00005701, - 12569: 0x00005702, - 12570: 0x000057CC, - 12571: 0x00005832, - 12572: 0x000057D5, - 12573: 0x000057D2, - 12574: 0x000057BA, - 12575: 0x000057C6, - 12576: 0x000057BD, - 12577: 0x000057BC, - 12578: 0x000057B8, - 12579: 0x000057B6, - 12580: 0x000057BF, - 12581: 0x000057C7, - 12582: 0x000057D0, - 12583: 0x000057B9, - 12584: 0x000057C1, - 12585: 0x0000590E, - 12586: 0x0000594A, - 12587: 0x00005A19, - 12588: 0x00005A16, - 12589: 0x00005A2D, - 12590: 0x00005A2E, - 12591: 0x00005A15, - 12592: 0x00005A0F, - 12593: 0x00005A17, - 12594: 0x00005A0A, - 12595: 0x00005A1E, - 12596: 0x00005A33, - 12597: 0x00005B6C, - 12598: 0x00005BA7, - 12599: 0x00005BAD, - 12600: 0x00005BAC, - 12601: 0x00005C03, - 12602: 0x00005C56, - 12603: 0x00005C54, - 12604: 0x00005CEC, - 12605: 0x00005CFF, - 12606: 0x00005CEE, - 12607: 0x00005CF1, - 12608: 0x00005CF7, - 12609: 0x00005D00, - 12610: 0x00005CF9, - 12611: 0x00005E29, - 12612: 0x00005E28, - 12613: 0x00005EA8, - 12614: 0x00005EAE, - 12615: 0x00005EAA, - 12616: 0x00005EAC, - 12617: 0x00005F33, - 12618: 0x00005F30, - 12619: 0x00005F67, - 12620: 0x0000605D, - 12621: 0x0000605A, - 12622: 0x00006067, - 12623: 0x00006041, - 12624: 0x000060A2, - 12625: 0x00006088, - 12626: 0x00006080, - 12627: 0x00006092, - 12628: 0x00006081, - 12629: 0x0000609D, - 12630: 0x00006083, - 12631: 0x00006095, - 12632: 0x0000609B, - 12633: 0x00006097, - 12634: 0x00006087, - 12635: 0x0000609C, - 12636: 0x0000608E, - 12637: 0x00006219, - 12638: 0x00006246, - 12639: 0x000062F2, - 12640: 0x00006310, - 12641: 0x00006356, - 12642: 0x0000632C, - 12643: 0x00006344, - 12644: 0x00006345, - 12645: 0x00006336, - 12646: 0x00006343, - 12647: 0x000063E4, - 12648: 0x00006339, - 12649: 0x0000634B, - 12650: 0x0000634A, - 12651: 0x0000633C, - 12652: 0x00006329, - 12653: 0x00006341, - 12654: 0x00006334, - 12655: 0x00006358, - 12656: 0x00006354, - 12657: 0x00006359, - 12658: 0x0000632D, - 12659: 0x00006347, - 12660: 0x00006333, - 12661: 0x0000635A, - 12662: 0x00006351, - 12663: 0x00006338, - 12664: 0x00006357, - 12665: 0x00006340, - 12666: 0x00006348, - 12667: 0x0000654A, - 12668: 0x00006546, - 12669: 0x000065C6, - 12670: 0x000065C3, - 12671: 0x000065C4, - 12672: 0x000065C2, - 12673: 0x0000664A, - 12674: 0x0000665F, - 12675: 0x00006647, - 12676: 0x00006651, - 12677: 0x00006712, - 12678: 0x00006713, - 12679: 0x0000681F, - 12680: 0x0000681A, - 12681: 0x00006849, - 12682: 0x00006832, - 12683: 0x00006833, - 12684: 0x0000683B, - 12685: 0x0000684B, - 12686: 0x0000684F, - 12687: 0x00006816, - 12688: 0x00006831, - 12689: 0x0000681C, - 12690: 0x00006835, - 12691: 0x0000682B, - 12692: 0x0000682D, - 12693: 0x0000682F, - 12694: 0x0000684E, - 12695: 0x00006844, - 12696: 0x00006834, - 12697: 0x0000681D, - 12698: 0x00006812, - 12699: 0x00006814, - 12700: 0x00006826, - 12701: 0x00006828, - 12702: 0x0000682E, - 12703: 0x0000684D, - 12704: 0x0000683A, - 12705: 0x00006825, - 12706: 0x00006820, - 12707: 0x00006B2C, - 12708: 0x00006B2F, - 12709: 0x00006B2D, - 12710: 0x00006B31, - 12711: 0x00006B34, - 12712: 0x00006B6D, - 12713: 0x00008082, - 12714: 0x00006B88, - 12715: 0x00006BE6, - 12716: 0x00006BE4, - 12717: 0x00006BE8, - 12718: 0x00006BE3, - 12719: 0x00006BE2, - 12720: 0x00006BE7, - 12721: 0x00006C25, - 12722: 0x00006D7A, - 12723: 0x00006D63, - 12724: 0x00006D64, - 12725: 0x00006D76, - 12726: 0x00006D0D, - 12727: 0x00006D61, - 12728: 0x00006D92, - 12729: 0x00006D58, - 12730: 0x00006D62, - 12731: 0x00006D6D, - 12732: 0x00006D6F, - 12733: 0x00006D91, - 12734: 0x00006D8D, - 12735: 0x00006DEF, - 12736: 0x00006D7F, - 12737: 0x00006D86, - 12738: 0x00006D5E, - 12739: 0x00006D67, - 12740: 0x00006D60, - 12741: 0x00006D97, - 12742: 0x00006D70, - 12743: 0x00006D7C, - 12744: 0x00006D5F, - 12745: 0x00006D82, - 12746: 0x00006D98, - 12747: 0x00006D2F, - 12748: 0x00006D68, - 12749: 0x00006D8B, - 12750: 0x00006D7E, - 12751: 0x00006D80, - 12752: 0x00006D84, - 12753: 0x00006D16, - 12754: 0x00006D83, - 12755: 0x00006D7B, - 12756: 0x00006D7D, - 12757: 0x00006D75, - 12758: 0x00006D90, - 12759: 0x000070DC, - 12760: 0x000070D3, - 12761: 0x000070D1, - 12762: 0x000070DD, - 12763: 0x000070CB, - 12764: 0x00007F39, - 12765: 0x000070E2, - 12766: 0x000070D7, - 12767: 0x000070D2, - 12768: 0x000070DE, - 12769: 0x000070E0, - 12770: 0x000070D4, - 12771: 0x000070CD, - 12772: 0x000070C5, - 12773: 0x000070C6, - 12774: 0x000070C7, - 12775: 0x000070DA, - 12776: 0x000070CE, - 12777: 0x000070E1, - 12778: 0x00007242, - 12779: 0x00007278, - 12780: 0x00007277, - 12781: 0x00007276, - 12782: 0x00007300, - 12783: 0x000072FA, - 12784: 0x000072F4, - 12785: 0x000072FE, - 12786: 0x000072F6, - 12787: 0x000072F3, - 12788: 0x000072FB, - 12789: 0x00007301, - 12790: 0x000073D3, - 12791: 0x000073D9, - 12792: 0x000073E5, - 12793: 0x000073D6, - 12794: 0x000073BC, - 12795: 0x000073E7, - 12796: 0x000073E3, - 12797: 0x000073E9, - 12798: 0x000073DC, - 12799: 0x000073D2, - 12800: 0x000073DB, - 12801: 0x000073D4, - 12802: 0x000073DD, - 12803: 0x000073DA, - 12804: 0x000073D7, - 12805: 0x000073D8, - 12806: 0x000073E8, - 12807: 0x000074DE, - 12808: 0x000074DF, - 12809: 0x000074F4, - 12810: 0x000074F5, - 12811: 0x00007521, - 12812: 0x0000755B, - 12813: 0x0000755F, - 12814: 0x000075B0, - 12815: 0x000075C1, - 12816: 0x000075BB, - 12817: 0x000075C4, - 12818: 0x000075C0, - 12819: 0x000075BF, - 12820: 0x000075B6, - 12821: 0x000075BA, - 12822: 0x0000768A, - 12823: 0x000076C9, - 12824: 0x0000771D, - 12825: 0x0000771B, - 12826: 0x00007710, - 12827: 0x00007713, - 12828: 0x00007712, - 12829: 0x00007723, - 12830: 0x00007711, - 12831: 0x00007715, - 12832: 0x00007719, - 12833: 0x0000771A, - 12834: 0x00007722, - 12835: 0x00007727, - 12836: 0x00007823, - 12837: 0x0000782C, - 12838: 0x00007822, - 12839: 0x00007835, - 12840: 0x0000782F, - 12841: 0x00007828, - 12842: 0x0000782E, - 12843: 0x0000782B, - 12844: 0x00007821, - 12845: 0x00007829, - 12846: 0x00007833, - 12847: 0x0000782A, - 12848: 0x00007831, - 12849: 0x00007954, - 12850: 0x0000795B, - 12851: 0x0000794F, - 12852: 0x0000795C, - 12853: 0x00007953, - 12854: 0x00007952, - 12855: 0x00007951, - 12856: 0x000079EB, - 12857: 0x000079EC, - 12858: 0x000079E0, - 12859: 0x000079EE, - 12860: 0x000079ED, - 12861: 0x000079EA, - 12862: 0x000079DC, - 12863: 0x000079DE, - 12864: 0x000079DD, - 12865: 0x00007A86, - 12866: 0x00007A89, - 12867: 0x00007A85, - 12868: 0x00007A8B, - 12869: 0x00007A8C, - 12870: 0x00007A8A, - 12871: 0x00007A87, - 12872: 0x00007AD8, - 12873: 0x00007B10, - 12874: 0x00007B04, - 12875: 0x00007B13, - 12876: 0x00007B05, - 12877: 0x00007B0F, - 12878: 0x00007B08, - 12879: 0x00007B0A, - 12880: 0x00007B0E, - 12881: 0x00007B09, - 12882: 0x00007B12, - 12883: 0x00007C84, - 12884: 0x00007C91, - 12885: 0x00007C8A, - 12886: 0x00007C8C, - 12887: 0x00007C88, - 12888: 0x00007C8D, - 12889: 0x00007C85, - 12890: 0x00007D1E, - 12891: 0x00007D1D, - 12892: 0x00007D11, - 12893: 0x00007D0E, - 12894: 0x00007D18, - 12895: 0x00007D16, - 12896: 0x00007D13, - 12897: 0x00007D1F, - 12898: 0x00007D12, - 12899: 0x00007D0F, - 12900: 0x00007D0C, - 12901: 0x00007F5C, - 12902: 0x00007F61, - 12903: 0x00007F5E, - 12904: 0x00007F60, - 12905: 0x00007F5D, - 12906: 0x00007F5B, - 12907: 0x00007F96, - 12908: 0x00007F92, - 12909: 0x00007FC3, - 12910: 0x00007FC2, - 12911: 0x00007FC0, - 12912: 0x00008016, - 12913: 0x0000803E, - 12914: 0x00008039, - 12915: 0x000080FA, - 12916: 0x000080F2, - 12917: 0x000080F9, - 12918: 0x000080F5, - 12919: 0x00008101, - 12920: 0x000080FB, - 12921: 0x00008100, - 12922: 0x00008201, - 12923: 0x0000822F, - 12924: 0x00008225, - 12925: 0x00008333, - 12926: 0x0000832D, - 12927: 0x00008344, - 12928: 0x00008319, - 12929: 0x00008351, - 12930: 0x00008325, - 12931: 0x00008356, - 12932: 0x0000833F, - 12933: 0x00008341, - 12934: 0x00008326, - 12935: 0x0000831C, - 12936: 0x00008322, - 12937: 0x00008342, - 12938: 0x0000834E, - 12939: 0x0000831B, - 12940: 0x0000832A, - 12941: 0x00008308, - 12942: 0x0000833C, - 12943: 0x0000834D, - 12944: 0x00008316, - 12945: 0x00008324, - 12946: 0x00008320, - 12947: 0x00008337, - 12948: 0x0000832F, - 12949: 0x00008329, - 12950: 0x00008347, - 12951: 0x00008345, - 12952: 0x0000834C, - 12953: 0x00008353, - 12954: 0x0000831E, - 12955: 0x0000832C, - 12956: 0x0000834B, - 12957: 0x00008327, - 12958: 0x00008348, - 12959: 0x00008653, - 12960: 0x00008652, - 12961: 0x000086A2, - 12962: 0x000086A8, - 12963: 0x00008696, - 12964: 0x0000868D, - 12965: 0x00008691, - 12966: 0x0000869E, - 12967: 0x00008687, - 12968: 0x00008697, - 12969: 0x00008686, - 12970: 0x0000868B, - 12971: 0x0000869A, - 12972: 0x00008685, - 12973: 0x000086A5, - 12974: 0x00008699, - 12975: 0x000086A1, - 12976: 0x000086A7, - 12977: 0x00008695, - 12978: 0x00008698, - 12979: 0x0000868E, - 12980: 0x0000869D, - 12981: 0x00008690, - 12982: 0x00008694, - 12983: 0x00008843, - 12984: 0x00008844, - 12985: 0x0000886D, - 12986: 0x00008875, - 12987: 0x00008876, - 12988: 0x00008872, - 12989: 0x00008880, - 12990: 0x00008871, - 12991: 0x0000887F, - 12992: 0x0000886F, - 12993: 0x00008883, - 12994: 0x0000887E, - 12995: 0x00008874, - 12996: 0x0000887C, - 12997: 0x00008A12, - 12998: 0x00008C47, - 12999: 0x00008C57, - 13000: 0x00008C7B, - 13001: 0x00008CA4, - 13002: 0x00008CA3, - 13003: 0x00008D76, - 13004: 0x00008D78, - 13005: 0x00008DB5, - 13006: 0x00008DB7, - 13007: 0x00008DB6, - 13008: 0x00008ED1, - 13009: 0x00008ED3, - 13010: 0x00008FFE, - 13011: 0x00008FF5, - 13012: 0x00009002, - 13013: 0x00008FFF, - 13014: 0x00008FFB, - 13015: 0x00009004, - 13016: 0x00008FFC, - 13017: 0x00008FF6, - 13018: 0x000090D6, - 13019: 0x000090E0, - 13020: 0x000090D9, - 13021: 0x000090DA, - 13022: 0x000090E3, - 13023: 0x000090DF, - 13024: 0x000090E5, - 13025: 0x000090D8, - 13026: 0x000090DB, - 13027: 0x000090D7, - 13028: 0x000090DC, - 13029: 0x000090E4, - 13030: 0x00009150, - 13031: 0x0000914E, - 13032: 0x0000914F, - 13033: 0x000091D5, - 13034: 0x000091E2, - 13035: 0x000091DA, - 13036: 0x0000965C, - 13037: 0x0000965F, - 13038: 0x000096BC, - 13039: 0x000098E3, - 13040: 0x00009ADF, - 13041: 0x00009B2F, - 13042: 0x00004E7F, - 13043: 0x00005070, - 13044: 0x0000506A, - 13045: 0x00005061, - 13046: 0x0000505E, - 13047: 0x00005060, - 13048: 0x00005053, - 13049: 0x0000504B, - 13050: 0x0000505D, - 13051: 0x00005072, - 13052: 0x00005048, - 13053: 0x0000504D, - 13054: 0x00005041, - 13055: 0x0000505B, - 13056: 0x0000504A, - 13057: 0x00005062, - 13058: 0x00005015, - 13059: 0x00005045, - 13060: 0x0000505F, - 13061: 0x00005069, - 13062: 0x0000506B, - 13063: 0x00005063, - 13064: 0x00005064, - 13065: 0x00005046, - 13066: 0x00005040, - 13067: 0x0000506E, - 13068: 0x00005073, - 13069: 0x00005057, - 13070: 0x00005051, - 13071: 0x000051D0, - 13072: 0x0000526B, - 13073: 0x0000526D, - 13074: 0x0000526C, - 13075: 0x0000526E, - 13076: 0x000052D6, - 13077: 0x000052D3, - 13078: 0x0000532D, - 13079: 0x0000539C, - 13080: 0x00005575, - 13081: 0x00005576, - 13082: 0x0000553C, - 13083: 0x0000554D, - 13084: 0x00005550, - 13085: 0x00005534, - 13086: 0x0000552A, - 13087: 0x00005551, - 13088: 0x00005562, - 13089: 0x00005536, - 13090: 0x00005535, - 13091: 0x00005530, - 13092: 0x00005552, - 13093: 0x00005545, - 13094: 0x0000550C, - 13095: 0x00005532, - 13096: 0x00005565, - 13097: 0x0000554E, - 13098: 0x00005539, - 13099: 0x00005548, - 13100: 0x0000552D, - 13101: 0x0000553B, - 13102: 0x00005540, - 13103: 0x0000554B, - 13104: 0x0000570A, - 13105: 0x00005707, - 13106: 0x000057FB, - 13107: 0x00005814, - 13108: 0x000057E2, - 13109: 0x000057F6, - 13110: 0x000057DC, - 13111: 0x000057F4, - 13112: 0x00005800, - 13113: 0x000057ED, - 13114: 0x000057FD, - 13115: 0x00005808, - 13116: 0x000057F8, - 13117: 0x0000580B, - 13118: 0x000057F3, - 13119: 0x000057CF, - 13120: 0x00005807, - 13121: 0x000057EE, - 13122: 0x000057E3, - 13123: 0x000057F2, - 13124: 0x000057E5, - 13125: 0x000057EC, - 13126: 0x000057E1, - 13127: 0x0000580E, - 13128: 0x000057FC, - 13129: 0x00005810, - 13130: 0x000057E7, - 13131: 0x00005801, - 13132: 0x0000580C, - 13133: 0x000057F1, - 13134: 0x000057E9, - 13135: 0x000057F0, - 13136: 0x0000580D, - 13137: 0x00005804, - 13138: 0x0000595C, - 13139: 0x00005A60, - 13140: 0x00005A58, - 13141: 0x00005A55, - 13142: 0x00005A67, - 13143: 0x00005A5E, - 13144: 0x00005A38, - 13145: 0x00005A35, - 13146: 0x00005A6D, - 13147: 0x00005A50, - 13148: 0x00005A5F, - 13149: 0x00005A65, - 13150: 0x00005A6C, - 13151: 0x00005A53, - 13152: 0x00005A64, - 13153: 0x00005A57, - 13154: 0x00005A43, - 13155: 0x00005A5D, - 13156: 0x00005A52, - 13157: 0x00005A44, - 13158: 0x00005A5B, - 13159: 0x00005A48, - 13160: 0x00005A8E, - 13161: 0x00005A3E, - 13162: 0x00005A4D, - 13163: 0x00005A39, - 13164: 0x00005A4C, - 13165: 0x00005A70, - 13166: 0x00005A69, - 13167: 0x00005A47, - 13168: 0x00005A51, - 13169: 0x00005A56, - 13170: 0x00005A42, - 13171: 0x00005A5C, - 13172: 0x00005B72, - 13173: 0x00005B6E, - 13174: 0x00005BC1, - 13175: 0x00005BC0, - 13176: 0x00005C59, - 13177: 0x00005D1E, - 13178: 0x00005D0B, - 13179: 0x00005D1D, - 13180: 0x00005D1A, - 13181: 0x00005D20, - 13182: 0x00005D0C, - 13183: 0x00005D28, - 13184: 0x00005D0D, - 13185: 0x00005D26, - 13186: 0x00005D25, - 13187: 0x00005D0F, - 13188: 0x00005D30, - 13189: 0x00005D12, - 13190: 0x00005D23, - 13191: 0x00005D1F, - 13192: 0x00005D2E, - 13193: 0x00005E3E, - 13194: 0x00005E34, - 13195: 0x00005EB1, - 13196: 0x00005EB4, - 13197: 0x00005EB9, - 13198: 0x00005EB2, - 13199: 0x00005EB3, - 13200: 0x00005F36, - 13201: 0x00005F38, - 13202: 0x00005F9B, - 13203: 0x00005F96, - 13204: 0x00005F9F, - 13205: 0x0000608A, - 13206: 0x00006090, - 13207: 0x00006086, - 13208: 0x000060BE, - 13209: 0x000060B0, - 13210: 0x000060BA, - 13211: 0x000060D3, - 13212: 0x000060D4, - 13213: 0x000060CF, - 13214: 0x000060E4, - 13215: 0x000060D9, - 13216: 0x000060DD, - 13217: 0x000060C8, - 13218: 0x000060B1, - 13219: 0x000060DB, - 13220: 0x000060B7, - 13221: 0x000060CA, - 13222: 0x000060BF, - 13223: 0x000060C3, - 13224: 0x000060CD, - 13225: 0x000060C0, - 13226: 0x00006332, - 13227: 0x00006365, - 13228: 0x0000638A, - 13229: 0x00006382, - 13230: 0x0000637D, - 13231: 0x000063BD, - 13232: 0x0000639E, - 13233: 0x000063AD, - 13234: 0x0000639D, - 13235: 0x00006397, - 13236: 0x000063AB, - 13237: 0x0000638E, - 13238: 0x0000636F, - 13239: 0x00006387, - 13240: 0x00006390, - 13241: 0x0000636E, - 13242: 0x000063AF, - 13243: 0x00006375, - 13244: 0x0000639C, - 13245: 0x0000636D, - 13246: 0x000063AE, - 13247: 0x0000637C, - 13248: 0x000063A4, - 13249: 0x0000633B, - 13250: 0x0000639F, - 13251: 0x00006378, - 13252: 0x00006385, - 13253: 0x00006381, - 13254: 0x00006391, - 13255: 0x0000638D, - 13256: 0x00006370, - 13257: 0x00006553, - 13258: 0x000065CD, - 13259: 0x00006665, - 13260: 0x00006661, - 13261: 0x0000665B, - 13262: 0x00006659, - 13263: 0x0000665C, - 13264: 0x00006662, - 13265: 0x00006718, - 13266: 0x00006879, - 13267: 0x00006887, - 13268: 0x00006890, - 13269: 0x0000689C, - 13270: 0x0000686D, - 13271: 0x0000686E, - 13272: 0x000068AE, - 13273: 0x000068AB, - 13274: 0x00006956, - 13275: 0x0000686F, - 13276: 0x000068A3, - 13277: 0x000068AC, - 13278: 0x000068A9, - 13279: 0x00006875, - 13280: 0x00006874, - 13281: 0x000068B2, - 13282: 0x0000688F, - 13283: 0x00006877, - 13284: 0x00006892, - 13285: 0x0000687C, - 13286: 0x0000686B, - 13287: 0x00006872, - 13288: 0x000068AA, - 13289: 0x00006880, - 13290: 0x00006871, - 13291: 0x0000687E, - 13292: 0x0000689B, - 13293: 0x00006896, - 13294: 0x0000688B, - 13295: 0x000068A0, - 13296: 0x00006889, - 13297: 0x000068A4, - 13298: 0x00006878, - 13299: 0x0000687B, - 13300: 0x00006891, - 13301: 0x0000688C, - 13302: 0x0000688A, - 13303: 0x0000687D, - 13304: 0x00006B36, - 13305: 0x00006B33, - 13306: 0x00006B37, - 13307: 0x00006B38, - 13308: 0x00006B91, - 13309: 0x00006B8F, - 13310: 0x00006B8D, - 13311: 0x00006B8E, - 13312: 0x00006B8C, - 13313: 0x00006C2A, - 13314: 0x00006DC0, - 13315: 0x00006DAB, - 13316: 0x00006DB4, - 13317: 0x00006DB3, - 13318: 0x00006E74, - 13319: 0x00006DAC, - 13320: 0x00006DE9, - 13321: 0x00006DE2, - 13322: 0x00006DB7, - 13323: 0x00006DF6, - 13324: 0x00006DD4, - 13325: 0x00006E00, - 13326: 0x00006DC8, - 13327: 0x00006DE0, - 13328: 0x00006DDF, - 13329: 0x00006DD6, - 13330: 0x00006DBE, - 13331: 0x00006DE5, - 13332: 0x00006DDC, - 13333: 0x00006DDD, - 13334: 0x00006DDB, - 13335: 0x00006DF4, - 13336: 0x00006DCA, - 13337: 0x00006DBD, - 13338: 0x00006DED, - 13339: 0x00006DF0, - 13340: 0x00006DBA, - 13341: 0x00006DD5, - 13342: 0x00006DC2, - 13343: 0x00006DCF, - 13344: 0x00006DC9, - 13345: 0x00006DD0, - 13346: 0x00006DF2, - 13347: 0x00006DD3, - 13348: 0x00006DFD, - 13349: 0x00006DD7, - 13350: 0x00006DCD, - 13351: 0x00006DE3, - 13352: 0x00006DBB, - 13353: 0x000070FA, - 13354: 0x0000710D, - 13355: 0x000070F7, - 13356: 0x00007117, - 13357: 0x000070F4, - 13358: 0x0000710C, - 13359: 0x000070F0, - 13360: 0x00007104, - 13361: 0x000070F3, - 13362: 0x00007110, - 13363: 0x000070FC, - 13364: 0x000070FF, - 13365: 0x00007106, - 13366: 0x00007113, - 13367: 0x00007100, - 13368: 0x000070F8, - 13369: 0x000070F6, - 13370: 0x0000710B, - 13371: 0x00007102, - 13372: 0x0000710E, - 13373: 0x0000727E, - 13374: 0x0000727B, - 13375: 0x0000727C, - 13376: 0x0000727F, - 13377: 0x0000731D, - 13378: 0x00007317, - 13379: 0x00007307, - 13380: 0x00007311, - 13381: 0x00007318, - 13382: 0x0000730A, - 13383: 0x00007308, - 13384: 0x000072FF, - 13385: 0x0000730F, - 13386: 0x0000731E, - 13387: 0x00007388, - 13388: 0x000073F6, - 13389: 0x000073F8, - 13390: 0x000073F5, - 13391: 0x00007404, - 13392: 0x00007401, - 13393: 0x000073FD, - 13394: 0x00007407, - 13395: 0x00007400, - 13396: 0x000073FA, - 13397: 0x000073FC, - 13398: 0x000073FF, - 13399: 0x0000740C, - 13400: 0x0000740B, - 13401: 0x000073F4, - 13402: 0x00007408, - 13403: 0x00007564, - 13404: 0x00007563, - 13405: 0x000075CE, - 13406: 0x000075D2, - 13407: 0x000075CF, - 13408: 0x000075CB, - 13409: 0x000075CC, - 13410: 0x000075D1, - 13411: 0x000075D0, - 13412: 0x0000768F, - 13413: 0x00007689, - 13414: 0x000076D3, - 13415: 0x00007739, - 13416: 0x0000772F, - 13417: 0x0000772D, - 13418: 0x00007731, - 13419: 0x00007732, - 13420: 0x00007734, - 13421: 0x00007733, - 13422: 0x0000773D, - 13423: 0x00007725, - 13424: 0x0000773B, - 13425: 0x00007735, - 13426: 0x00007848, - 13427: 0x00007852, - 13428: 0x00007849, - 13429: 0x0000784D, - 13430: 0x0000784A, - 13431: 0x0000784C, - 13432: 0x00007826, - 13433: 0x00007845, - 13434: 0x00007850, - 13435: 0x00007964, - 13436: 0x00007967, - 13437: 0x00007969, - 13438: 0x0000796A, - 13439: 0x00007963, - 13440: 0x0000796B, - 13441: 0x00007961, - 13442: 0x000079BB, - 13443: 0x000079FA, - 13444: 0x000079F8, - 13445: 0x000079F6, - 13446: 0x000079F7, - 13447: 0x00007A8F, - 13448: 0x00007A94, - 13449: 0x00007A90, - 13450: 0x00007B35, - 13451: 0x00007B47, - 13452: 0x00007B34, - 13453: 0x00007B25, - 13454: 0x00007B30, - 13455: 0x00007B22, - 13456: 0x00007B24, - 13457: 0x00007B33, - 13458: 0x00007B18, - 13459: 0x00007B2A, - 13460: 0x00007B1D, - 13461: 0x00007B31, - 13462: 0x00007B2B, - 13463: 0x00007B2D, - 13464: 0x00007B2F, - 13465: 0x00007B32, - 13466: 0x00007B38, - 13467: 0x00007B1A, - 13468: 0x00007B23, - 13469: 0x00007C94, - 13470: 0x00007C98, - 13471: 0x00007C96, - 13472: 0x00007CA3, - 13473: 0x00007D35, - 13474: 0x00007D3D, - 13475: 0x00007D38, - 13476: 0x00007D36, - 13477: 0x00007D3A, - 13478: 0x00007D45, - 13479: 0x00007D2C, - 13480: 0x00007D29, - 13481: 0x00007D41, - 13482: 0x00007D47, - 13483: 0x00007D3E, - 13484: 0x00007D3F, - 13485: 0x00007D4A, - 13486: 0x00007D3B, - 13487: 0x00007D28, - 13488: 0x00007F63, - 13489: 0x00007F95, - 13490: 0x00007F9C, - 13491: 0x00007F9D, - 13492: 0x00007F9B, - 13493: 0x00007FCA, - 13494: 0x00007FCB, - 13495: 0x00007FCD, - 13496: 0x00007FD0, - 13497: 0x00007FD1, - 13498: 0x00007FC7, - 13499: 0x00007FCF, - 13500: 0x00007FC9, - 13501: 0x0000801F, - 13502: 0x0000801E, - 13503: 0x0000801B, - 13504: 0x00008047, - 13505: 0x00008043, - 13506: 0x00008048, - 13507: 0x00008118, - 13508: 0x00008125, - 13509: 0x00008119, - 13510: 0x0000811B, - 13511: 0x0000812D, - 13512: 0x0000811F, - 13513: 0x0000812C, - 13514: 0x0000811E, - 13515: 0x00008121, - 13516: 0x00008115, - 13517: 0x00008127, - 13518: 0x0000811D, - 13519: 0x00008122, - 13520: 0x00008211, - 13521: 0x00008238, - 13522: 0x00008233, - 13523: 0x0000823A, - 13524: 0x00008234, - 13525: 0x00008232, - 13526: 0x00008274, - 13527: 0x00008390, - 13528: 0x000083A3, - 13529: 0x000083A8, - 13530: 0x0000838D, - 13531: 0x0000837A, - 13532: 0x00008373, - 13533: 0x000083A4, - 13534: 0x00008374, - 13535: 0x0000838F, - 13536: 0x00008381, - 13537: 0x00008395, - 13538: 0x00008399, - 13539: 0x00008375, - 13540: 0x00008394, - 13541: 0x000083A9, - 13542: 0x0000837D, - 13543: 0x00008383, - 13544: 0x0000838C, - 13545: 0x0000839D, - 13546: 0x0000839B, - 13547: 0x000083AA, - 13548: 0x0000838B, - 13549: 0x0000837E, - 13550: 0x000083A5, - 13551: 0x000083AF, - 13552: 0x00008388, - 13553: 0x00008397, - 13554: 0x000083B0, - 13555: 0x0000837F, - 13556: 0x000083A6, - 13557: 0x00008387, - 13558: 0x000083AE, - 13559: 0x00008376, - 13560: 0x0000839A, - 13561: 0x00008659, - 13562: 0x00008656, - 13563: 0x000086BF, - 13564: 0x000086B7, - 13565: 0x000086C2, - 13566: 0x000086C1, - 13567: 0x000086C5, - 13568: 0x000086BA, - 13569: 0x000086B0, - 13570: 0x000086C8, - 13571: 0x000086B9, - 13572: 0x000086B3, - 13573: 0x000086B8, - 13574: 0x000086CC, - 13575: 0x000086B4, - 13576: 0x000086BB, - 13577: 0x000086BC, - 13578: 0x000086C3, - 13579: 0x000086BD, - 13580: 0x000086BE, - 13581: 0x00008852, - 13582: 0x00008889, - 13583: 0x00008895, - 13584: 0x000088A8, - 13585: 0x000088A2, - 13586: 0x000088AA, - 13587: 0x0000889A, - 13588: 0x00008891, - 13589: 0x000088A1, - 13590: 0x0000889F, - 13591: 0x00008898, - 13592: 0x000088A7, - 13593: 0x00008899, - 13594: 0x0000889B, - 13595: 0x00008897, - 13596: 0x000088A4, - 13597: 0x000088AC, - 13598: 0x0000888C, - 13599: 0x00008893, - 13600: 0x0000888E, - 13601: 0x00008982, - 13602: 0x000089D6, - 13603: 0x000089D9, - 13604: 0x000089D5, - 13605: 0x00008A30, - 13606: 0x00008A27, - 13607: 0x00008A2C, - 13608: 0x00008A1E, - 13609: 0x00008C39, - 13610: 0x00008C3B, - 13611: 0x00008C5C, - 13612: 0x00008C5D, - 13613: 0x00008C7D, - 13614: 0x00008CA5, - 13615: 0x00008D7D, - 13616: 0x00008D7B, - 13617: 0x00008D79, - 13618: 0x00008DBC, - 13619: 0x00008DC2, - 13620: 0x00008DB9, - 13621: 0x00008DBF, - 13622: 0x00008DC1, - 13623: 0x00008ED8, - 13624: 0x00008EDE, - 13625: 0x00008EDD, - 13626: 0x00008EDC, - 13627: 0x00008ED7, - 13628: 0x00008EE0, - 13629: 0x00008EE1, - 13630: 0x00009024, - 13631: 0x0000900B, - 13632: 0x00009011, - 13633: 0x0000901C, - 13634: 0x0000900C, - 13635: 0x00009021, - 13636: 0x000090EF, - 13637: 0x000090EA, - 13638: 0x000090F0, - 13639: 0x000090F4, - 13640: 0x000090F2, - 13641: 0x000090F3, - 13642: 0x000090D4, - 13643: 0x000090EB, - 13644: 0x000090EC, - 13645: 0x000090E9, - 13646: 0x00009156, - 13647: 0x00009158, - 13648: 0x0000915A, - 13649: 0x00009153, - 13650: 0x00009155, - 13651: 0x000091EC, - 13652: 0x000091F4, - 13653: 0x000091F1, - 13654: 0x000091F3, - 13655: 0x000091F8, - 13656: 0x000091E4, - 13657: 0x000091F9, - 13658: 0x000091EA, - 13659: 0x000091EB, - 13660: 0x000091F7, - 13661: 0x000091E8, - 13662: 0x000091EE, - 13663: 0x0000957A, - 13664: 0x00009586, - 13665: 0x00009588, - 13666: 0x0000967C, - 13667: 0x0000966D, - 13668: 0x0000966B, - 13669: 0x00009671, - 13670: 0x0000966F, - 13671: 0x000096BF, - 13672: 0x0000976A, - 13673: 0x00009804, - 13674: 0x000098E5, - 13675: 0x00009997, - 13676: 0x0000509B, - 13677: 0x00005095, - 13678: 0x00005094, - 13679: 0x0000509E, - 13680: 0x0000508B, - 13681: 0x000050A3, - 13682: 0x00005083, - 13683: 0x0000508C, - 13684: 0x0000508E, - 13685: 0x0000509D, - 13686: 0x00005068, - 13687: 0x0000509C, - 13688: 0x00005092, - 13689: 0x00005082, - 13690: 0x00005087, - 13691: 0x0000515F, - 13692: 0x000051D4, - 13693: 0x00005312, - 13694: 0x00005311, - 13695: 0x000053A4, - 13696: 0x000053A7, - 13697: 0x00005591, - 13698: 0x000055A8, - 13699: 0x000055A5, - 13700: 0x000055AD, - 13701: 0x00005577, - 13702: 0x00005645, - 13703: 0x000055A2, - 13704: 0x00005593, - 13705: 0x00005588, - 13706: 0x0000558F, - 13707: 0x000055B5, - 13708: 0x00005581, - 13709: 0x000055A3, - 13710: 0x00005592, - 13711: 0x000055A4, - 13712: 0x0000557D, - 13713: 0x0000558C, - 13714: 0x000055A6, - 13715: 0x0000557F, - 13716: 0x00005595, - 13717: 0x000055A1, - 13718: 0x0000558E, - 13719: 0x0000570C, - 13720: 0x00005829, - 13721: 0x00005837, - 13722: 0x00005819, - 13723: 0x0000581E, - 13724: 0x00005827, - 13725: 0x00005823, - 13726: 0x00005828, - 13727: 0x000057F5, - 13728: 0x00005848, - 13729: 0x00005825, - 13730: 0x0000581C, - 13731: 0x0000581B, - 13732: 0x00005833, - 13733: 0x0000583F, - 13734: 0x00005836, - 13735: 0x0000582E, - 13736: 0x00005839, - 13737: 0x00005838, - 13738: 0x0000582D, - 13739: 0x0000582C, - 13740: 0x0000583B, - 13741: 0x00005961, - 13742: 0x00005AAF, - 13743: 0x00005A94, - 13744: 0x00005A9F, - 13745: 0x00005A7A, - 13746: 0x00005AA2, - 13747: 0x00005A9E, - 13748: 0x00005A78, - 13749: 0x00005AA6, - 13750: 0x00005A7C, - 13751: 0x00005AA5, - 13752: 0x00005AAC, - 13753: 0x00005A95, - 13754: 0x00005AAE, - 13755: 0x00005A37, - 13756: 0x00005A84, - 13757: 0x00005A8A, - 13758: 0x00005A97, - 13759: 0x00005A83, - 13760: 0x00005A8B, - 13761: 0x00005AA9, - 13762: 0x00005A7B, - 13763: 0x00005A7D, - 13764: 0x00005A8C, - 13765: 0x00005A9C, - 13766: 0x00005A8F, - 13767: 0x00005A93, - 13768: 0x00005A9D, - 13769: 0x00005BEA, - 13770: 0x00005BCD, - 13771: 0x00005BCB, - 13772: 0x00005BD4, - 13773: 0x00005BD1, - 13774: 0x00005BCA, - 13775: 0x00005BCE, - 13776: 0x00005C0C, - 13777: 0x00005C30, - 13778: 0x00005D37, - 13779: 0x00005D43, - 13780: 0x00005D6B, - 13781: 0x00005D41, - 13782: 0x00005D4B, - 13783: 0x00005D3F, - 13784: 0x00005D35, - 13785: 0x00005D51, - 13786: 0x00005D4E, - 13787: 0x00005D55, - 13788: 0x00005D33, - 13789: 0x00005D3A, - 13790: 0x00005D52, - 13791: 0x00005D3D, - 13792: 0x00005D31, - 13793: 0x00005D59, - 13794: 0x00005D42, - 13795: 0x00005D39, - 13796: 0x00005D49, - 13797: 0x00005D38, - 13798: 0x00005D3C, - 13799: 0x00005D32, - 13800: 0x00005D36, - 13801: 0x00005D40, - 13802: 0x00005D45, - 13803: 0x00005E44, - 13804: 0x00005E41, - 13805: 0x00005F58, - 13806: 0x00005FA6, - 13807: 0x00005FA5, - 13808: 0x00005FAB, - 13809: 0x000060C9, - 13810: 0x000060B9, - 13811: 0x000060CC, - 13812: 0x000060E2, - 13813: 0x000060CE, - 13814: 0x000060C4, - 13815: 0x00006114, - 13816: 0x000060F2, - 13817: 0x0000610A, - 13818: 0x00006116, - 13819: 0x00006105, - 13820: 0x000060F5, - 13821: 0x00006113, - 13822: 0x000060F8, - 13823: 0x000060FC, - 13824: 0x000060FE, - 13825: 0x000060C1, - 13826: 0x00006103, - 13827: 0x00006118, - 13828: 0x0000611D, - 13829: 0x00006110, - 13830: 0x000060FF, - 13831: 0x00006104, - 13832: 0x0000610B, - 13833: 0x0000624A, - 13834: 0x00006394, - 13835: 0x000063B1, - 13836: 0x000063B0, - 13837: 0x000063CE, - 13838: 0x000063E5, - 13839: 0x000063E8, - 13840: 0x000063EF, - 13841: 0x000063C3, - 13842: 0x0000649D, - 13843: 0x000063F3, - 13844: 0x000063CA, - 13845: 0x000063E0, - 13846: 0x000063F6, - 13847: 0x000063D5, - 13848: 0x000063F2, - 13849: 0x000063F5, - 13850: 0x00006461, - 13851: 0x000063DF, - 13852: 0x000063BE, - 13853: 0x000063DD, - 13854: 0x000063DC, - 13855: 0x000063C4, - 13856: 0x000063D8, - 13857: 0x000063D3, - 13858: 0x000063C2, - 13859: 0x000063C7, - 13860: 0x000063CC, - 13861: 0x000063CB, - 13862: 0x000063C8, - 13863: 0x000063F0, - 13864: 0x000063D7, - 13865: 0x000063D9, - 13866: 0x00006532, - 13867: 0x00006567, - 13868: 0x0000656A, - 13869: 0x00006564, - 13870: 0x0000655C, - 13871: 0x00006568, - 13872: 0x00006565, - 13873: 0x0000658C, - 13874: 0x0000659D, - 13875: 0x0000659E, - 13876: 0x000065AE, - 13877: 0x000065D0, - 13878: 0x000065D2, - 13879: 0x0000667C, - 13880: 0x0000666C, - 13881: 0x0000667B, - 13882: 0x00006680, - 13883: 0x00006671, - 13884: 0x00006679, - 13885: 0x0000666A, - 13886: 0x00006672, - 13887: 0x00006701, - 13888: 0x0000690C, - 13889: 0x000068D3, - 13890: 0x00006904, - 13891: 0x000068DC, - 13892: 0x0000692A, - 13893: 0x000068EC, - 13894: 0x000068EA, - 13895: 0x000068F1, - 13896: 0x0000690F, - 13897: 0x000068D6, - 13898: 0x000068F7, - 13899: 0x000068EB, - 13900: 0x000068E4, - 13901: 0x000068F6, - 13902: 0x00006913, - 13903: 0x00006910, - 13904: 0x000068F3, - 13905: 0x000068E1, - 13906: 0x00006907, - 13907: 0x000068CC, - 13908: 0x00006908, - 13909: 0x00006970, - 13910: 0x000068B4, - 13911: 0x00006911, - 13912: 0x000068EF, - 13913: 0x000068C6, - 13914: 0x00006914, - 13915: 0x000068F8, - 13916: 0x000068D0, - 13917: 0x000068FD, - 13918: 0x000068FC, - 13919: 0x000068E8, - 13920: 0x0000690B, - 13921: 0x0000690A, - 13922: 0x00006917, - 13923: 0x000068CE, - 13924: 0x000068C8, - 13925: 0x000068DD, - 13926: 0x000068DE, - 13927: 0x000068E6, - 13928: 0x000068F4, - 13929: 0x000068D1, - 13930: 0x00006906, - 13931: 0x000068D4, - 13932: 0x000068E9, - 13933: 0x00006915, - 13934: 0x00006925, - 13935: 0x000068C7, - 13936: 0x00006B39, - 13937: 0x00006B3B, - 13938: 0x00006B3F, - 13939: 0x00006B3C, - 13940: 0x00006B94, - 13941: 0x00006B97, - 13942: 0x00006B99, - 13943: 0x00006B95, - 13944: 0x00006BBD, - 13945: 0x00006BF0, - 13946: 0x00006BF2, - 13947: 0x00006BF3, - 13948: 0x00006C30, - 13949: 0x00006DFC, - 13950: 0x00006E46, - 13951: 0x00006E47, - 13952: 0x00006E1F, - 13953: 0x00006E49, - 13954: 0x00006E88, - 13955: 0x00006E3C, - 13956: 0x00006E3D, - 13957: 0x00006E45, - 13958: 0x00006E62, - 13959: 0x00006E2B, - 13960: 0x00006E3F, - 13961: 0x00006E41, - 13962: 0x00006E5D, - 13963: 0x00006E73, - 13964: 0x00006E1C, - 13965: 0x00006E33, - 13966: 0x00006E4B, - 13967: 0x00006E40, - 13968: 0x00006E51, - 13969: 0x00006E3B, - 13970: 0x00006E03, - 13971: 0x00006E2E, - 13972: 0x00006E5E, - 13973: 0x00006E68, - 13974: 0x00006E5C, - 13975: 0x00006E61, - 13976: 0x00006E31, - 13977: 0x00006E28, - 13978: 0x00006E60, - 13979: 0x00006E71, - 13980: 0x00006E6B, - 13981: 0x00006E39, - 13982: 0x00006E22, - 13983: 0x00006E30, - 13984: 0x00006E53, - 13985: 0x00006E65, - 13986: 0x00006E27, - 13987: 0x00006E78, - 13988: 0x00006E64, - 13989: 0x00006E77, - 13990: 0x00006E55, - 13991: 0x00006E79, - 13992: 0x00006E52, - 13993: 0x00006E66, - 13994: 0x00006E35, - 13995: 0x00006E36, - 13996: 0x00006E5A, - 13997: 0x00007120, - 13998: 0x0000711E, - 13999: 0x0000712F, - 14000: 0x000070FB, - 14001: 0x0000712E, - 14002: 0x00007131, - 14003: 0x00007123, - 14004: 0x00007125, - 14005: 0x00007122, - 14006: 0x00007132, - 14007: 0x0000711F, - 14008: 0x00007128, - 14009: 0x0000713A, - 14010: 0x0000711B, - 14011: 0x0000724B, - 14012: 0x0000725A, - 14013: 0x00007288, - 14014: 0x00007289, - 14015: 0x00007286, - 14016: 0x00007285, - 14017: 0x0000728B, - 14018: 0x00007312, - 14019: 0x0000730B, - 14020: 0x00007330, - 14021: 0x00007322, - 14022: 0x00007331, - 14023: 0x00007333, - 14024: 0x00007327, - 14025: 0x00007332, - 14026: 0x0000732D, - 14027: 0x00007326, - 14028: 0x00007323, - 14029: 0x00007335, - 14030: 0x0000730C, - 14031: 0x0000742E, - 14032: 0x0000742C, - 14033: 0x00007430, - 14034: 0x0000742B, - 14035: 0x00007416, - 14036: 0x0000741A, - 14037: 0x00007421, - 14038: 0x0000742D, - 14039: 0x00007431, - 14040: 0x00007424, - 14041: 0x00007423, - 14042: 0x0000741D, - 14043: 0x00007429, - 14044: 0x00007420, - 14045: 0x00007432, - 14046: 0x000074FB, - 14047: 0x0000752F, - 14048: 0x0000756F, - 14049: 0x0000756C, - 14050: 0x000075E7, - 14051: 0x000075DA, - 14052: 0x000075E1, - 14053: 0x000075E6, - 14054: 0x000075DD, - 14055: 0x000075DF, - 14056: 0x000075E4, - 14057: 0x000075D7, - 14058: 0x00007695, - 14059: 0x00007692, - 14060: 0x000076DA, - 14061: 0x00007746, - 14062: 0x00007747, - 14063: 0x00007744, - 14064: 0x0000774D, - 14065: 0x00007745, - 14066: 0x0000774A, - 14067: 0x0000774E, - 14068: 0x0000774B, - 14069: 0x0000774C, - 14070: 0x000077DE, - 14071: 0x000077EC, - 14072: 0x00007860, - 14073: 0x00007864, - 14074: 0x00007865, - 14075: 0x0000785C, - 14076: 0x0000786D, - 14077: 0x00007871, - 14078: 0x0000786A, - 14079: 0x0000786E, - 14080: 0x00007870, - 14081: 0x00007869, - 14082: 0x00007868, - 14083: 0x0000785E, - 14084: 0x00007862, - 14085: 0x00007974, - 14086: 0x00007973, - 14087: 0x00007972, - 14088: 0x00007970, - 14089: 0x00007A02, - 14090: 0x00007A0A, - 14091: 0x00007A03, - 14092: 0x00007A0C, - 14093: 0x00007A04, - 14094: 0x00007A99, - 14095: 0x00007AE6, - 14096: 0x00007AE4, - 14097: 0x00007B4A, - 14098: 0x00007B3B, - 14099: 0x00007B44, - 14100: 0x00007B48, - 14101: 0x00007B4C, - 14102: 0x00007B4E, - 14103: 0x00007B40, - 14104: 0x00007B58, - 14105: 0x00007B45, - 14106: 0x00007CA2, - 14107: 0x00007C9E, - 14108: 0x00007CA8, - 14109: 0x00007CA1, - 14110: 0x00007D58, - 14111: 0x00007D6F, - 14112: 0x00007D63, - 14113: 0x00007D53, - 14114: 0x00007D56, - 14115: 0x00007D67, - 14116: 0x00007D6A, - 14117: 0x00007D4F, - 14118: 0x00007D6D, - 14119: 0x00007D5C, - 14120: 0x00007D6B, - 14121: 0x00007D52, - 14122: 0x00007D54, - 14123: 0x00007D69, - 14124: 0x00007D51, - 14125: 0x00007D5F, - 14126: 0x00007D4E, - 14127: 0x00007F3E, - 14128: 0x00007F3F, - 14129: 0x00007F65, - 14130: 0x00007F66, - 14131: 0x00007FA2, - 14132: 0x00007FA0, - 14133: 0x00007FA1, - 14134: 0x00007FD7, - 14135: 0x00008051, - 14136: 0x0000804F, - 14137: 0x00008050, - 14138: 0x000080FE, - 14139: 0x000080D4, - 14140: 0x00008143, - 14141: 0x0000814A, - 14142: 0x00008152, - 14143: 0x0000814F, - 14144: 0x00008147, - 14145: 0x0000813D, - 14146: 0x0000814D, - 14147: 0x0000813A, - 14148: 0x000081E6, - 14149: 0x000081EE, - 14150: 0x000081F7, - 14151: 0x000081F8, - 14152: 0x000081F9, - 14153: 0x00008204, - 14154: 0x0000823C, - 14155: 0x0000823D, - 14156: 0x0000823F, - 14157: 0x00008275, - 14158: 0x0000833B, - 14159: 0x000083CF, - 14160: 0x000083F9, - 14161: 0x00008423, - 14162: 0x000083C0, - 14163: 0x000083E8, - 14164: 0x00008412, - 14165: 0x000083E7, - 14166: 0x000083E4, - 14167: 0x000083FC, - 14168: 0x000083F6, - 14169: 0x00008410, - 14170: 0x000083C6, - 14171: 0x000083C8, - 14172: 0x000083EB, - 14173: 0x000083E3, - 14174: 0x000083BF, - 14175: 0x00008401, - 14176: 0x000083DD, - 14177: 0x000083E5, - 14178: 0x000083D8, - 14179: 0x000083FF, - 14180: 0x000083E1, - 14181: 0x000083CB, - 14182: 0x000083CE, - 14183: 0x000083D6, - 14184: 0x000083F5, - 14185: 0x000083C9, - 14186: 0x00008409, - 14187: 0x0000840F, - 14188: 0x000083DE, - 14189: 0x00008411, - 14190: 0x00008406, - 14191: 0x000083C2, - 14192: 0x000083F3, - 14193: 0x000083D5, - 14194: 0x000083FA, - 14195: 0x000083C7, - 14196: 0x000083D1, - 14197: 0x000083EA, - 14198: 0x00008413, - 14199: 0x000083C3, - 14200: 0x000083EC, - 14201: 0x000083EE, - 14202: 0x000083C4, - 14203: 0x000083FB, - 14204: 0x000083D7, - 14205: 0x000083E2, - 14206: 0x0000841B, - 14207: 0x000083DB, - 14208: 0x000083FE, - 14209: 0x000086D8, - 14210: 0x000086E2, - 14211: 0x000086E6, - 14212: 0x000086D3, - 14213: 0x000086E3, - 14214: 0x000086DA, - 14215: 0x000086EA, - 14216: 0x000086DD, - 14217: 0x000086EB, - 14218: 0x000086DC, - 14219: 0x000086EC, - 14220: 0x000086E9, - 14221: 0x000086D7, - 14222: 0x000086E8, - 14223: 0x000086D1, - 14224: 0x00008848, - 14225: 0x00008856, - 14226: 0x00008855, - 14227: 0x000088BA, - 14228: 0x000088D7, - 14229: 0x000088B9, - 14230: 0x000088B8, - 14231: 0x000088C0, - 14232: 0x000088BE, - 14233: 0x000088B6, - 14234: 0x000088BC, - 14235: 0x000088B7, - 14236: 0x000088BD, - 14237: 0x000088B2, - 14238: 0x00008901, - 14239: 0x000088C9, - 14240: 0x00008995, - 14241: 0x00008998, - 14242: 0x00008997, - 14243: 0x000089DD, - 14244: 0x000089DA, - 14245: 0x000089DB, - 14246: 0x00008A4E, - 14247: 0x00008A4D, - 14248: 0x00008A39, - 14249: 0x00008A59, - 14250: 0x00008A40, - 14251: 0x00008A57, - 14252: 0x00008A58, - 14253: 0x00008A44, - 14254: 0x00008A45, - 14255: 0x00008A52, - 14256: 0x00008A48, - 14257: 0x00008A51, - 14258: 0x00008A4A, - 14259: 0x00008A4C, - 14260: 0x00008A4F, - 14261: 0x00008C5F, - 14262: 0x00008C81, - 14263: 0x00008C80, - 14264: 0x00008CBA, - 14265: 0x00008CBE, - 14266: 0x00008CB0, - 14267: 0x00008CB9, - 14268: 0x00008CB5, - 14269: 0x00008D84, - 14270: 0x00008D80, - 14271: 0x00008D89, - 14272: 0x00008DD8, - 14273: 0x00008DD3, - 14274: 0x00008DCD, - 14275: 0x00008DC7, - 14276: 0x00008DD6, - 14277: 0x00008DDC, - 14278: 0x00008DCF, - 14279: 0x00008DD5, - 14280: 0x00008DD9, - 14281: 0x00008DC8, - 14282: 0x00008DD7, - 14283: 0x00008DC5, - 14284: 0x00008EEF, - 14285: 0x00008EF7, - 14286: 0x00008EFA, - 14287: 0x00008EF9, - 14288: 0x00008EE6, - 14289: 0x00008EEE, - 14290: 0x00008EE5, - 14291: 0x00008EF5, - 14292: 0x00008EE7, - 14293: 0x00008EE8, - 14294: 0x00008EF6, - 14295: 0x00008EEB, - 14296: 0x00008EF1, - 14297: 0x00008EEC, - 14298: 0x00008EF4, - 14299: 0x00008EE9, - 14300: 0x0000902D, - 14301: 0x00009034, - 14302: 0x0000902F, - 14303: 0x00009106, - 14304: 0x0000912C, - 14305: 0x00009104, - 14306: 0x000090FF, - 14307: 0x000090FC, - 14308: 0x00009108, - 14309: 0x000090F9, - 14310: 0x000090FB, - 14311: 0x00009101, - 14312: 0x00009100, - 14313: 0x00009107, - 14314: 0x00009105, - 14315: 0x00009103, - 14316: 0x00009161, - 14317: 0x00009164, - 14318: 0x0000915F, - 14319: 0x00009162, - 14320: 0x00009160, - 14321: 0x00009201, - 14322: 0x0000920A, - 14323: 0x00009225, - 14324: 0x00009203, - 14325: 0x0000921A, - 14326: 0x00009226, - 14327: 0x0000920F, - 14328: 0x0000920C, - 14329: 0x00009200, - 14330: 0x00009212, - 14331: 0x000091FF, - 14332: 0x000091FD, - 14333: 0x00009206, - 14334: 0x00009204, - 14335: 0x00009227, - 14336: 0x00009202, - 14337: 0x0000921C, - 14338: 0x00009224, - 14339: 0x00009219, - 14340: 0x00009217, - 14341: 0x00009205, - 14342: 0x00009216, - 14343: 0x0000957B, - 14344: 0x0000958D, - 14345: 0x0000958C, - 14346: 0x00009590, - 14347: 0x00009687, - 14348: 0x0000967E, - 14349: 0x00009688, - 14350: 0x00009689, - 14351: 0x00009683, - 14352: 0x00009680, - 14353: 0x000096C2, - 14354: 0x000096C8, - 14355: 0x000096C3, - 14356: 0x000096F1, - 14357: 0x000096F0, - 14358: 0x0000976C, - 14359: 0x00009770, - 14360: 0x0000976E, - 14361: 0x00009807, - 14362: 0x000098A9, - 14363: 0x000098EB, - 14364: 0x00009CE6, - 14365: 0x00009EF9, - 14366: 0x00004E83, - 14367: 0x00004E84, - 14368: 0x00004EB6, - 14369: 0x000050BD, - 14370: 0x000050BF, - 14371: 0x000050C6, - 14372: 0x000050AE, - 14373: 0x000050C4, - 14374: 0x000050CA, - 14375: 0x000050B4, - 14376: 0x000050C8, - 14377: 0x000050C2, - 14378: 0x000050B0, - 14379: 0x000050C1, - 14380: 0x000050BA, - 14381: 0x000050B1, - 14382: 0x000050CB, - 14383: 0x000050C9, - 14384: 0x000050B6, - 14385: 0x000050B8, - 14386: 0x000051D7, - 14387: 0x0000527A, - 14388: 0x00005278, - 14389: 0x0000527B, - 14390: 0x0000527C, - 14391: 0x000055C3, - 14392: 0x000055DB, - 14393: 0x000055CC, - 14394: 0x000055D0, - 14395: 0x000055CB, - 14396: 0x000055CA, - 14397: 0x000055DD, - 14398: 0x000055C0, - 14399: 0x000055D4, - 14400: 0x000055C4, - 14401: 0x000055E9, - 14402: 0x000055BF, - 14403: 0x000055D2, - 14404: 0x0000558D, - 14405: 0x000055CF, - 14406: 0x000055D5, - 14407: 0x000055E2, - 14408: 0x000055D6, - 14409: 0x000055C8, - 14410: 0x000055F2, - 14411: 0x000055CD, - 14412: 0x000055D9, - 14413: 0x000055C2, - 14414: 0x00005714, - 14415: 0x00005853, - 14416: 0x00005868, - 14417: 0x00005864, - 14418: 0x0000584F, - 14419: 0x0000584D, - 14420: 0x00005849, - 14421: 0x0000586F, - 14422: 0x00005855, - 14423: 0x0000584E, - 14424: 0x0000585D, - 14425: 0x00005859, - 14426: 0x00005865, - 14427: 0x0000585B, - 14428: 0x0000583D, - 14429: 0x00005863, - 14430: 0x00005871, - 14431: 0x000058FC, - 14432: 0x00005AC7, - 14433: 0x00005AC4, - 14434: 0x00005ACB, - 14435: 0x00005ABA, - 14436: 0x00005AB8, - 14437: 0x00005AB1, - 14438: 0x00005AB5, - 14439: 0x00005AB0, - 14440: 0x00005ABF, - 14441: 0x00005AC8, - 14442: 0x00005ABB, - 14443: 0x00005AC6, - 14444: 0x00005AB7, - 14445: 0x00005AC0, - 14446: 0x00005ACA, - 14447: 0x00005AB4, - 14448: 0x00005AB6, - 14449: 0x00005ACD, - 14450: 0x00005AB9, - 14451: 0x00005A90, - 14452: 0x00005BD6, - 14453: 0x00005BD8, - 14454: 0x00005BD9, - 14455: 0x00005C1F, - 14456: 0x00005C33, - 14457: 0x00005D71, - 14458: 0x00005D63, - 14459: 0x00005D4A, - 14460: 0x00005D65, - 14461: 0x00005D72, - 14462: 0x00005D6C, - 14463: 0x00005D5E, - 14464: 0x00005D68, - 14465: 0x00005D67, - 14466: 0x00005D62, - 14467: 0x00005DF0, - 14468: 0x00005E4F, - 14469: 0x00005E4E, - 14470: 0x00005E4A, - 14471: 0x00005E4D, - 14472: 0x00005E4B, - 14473: 0x00005EC5, - 14474: 0x00005ECC, - 14475: 0x00005EC6, - 14476: 0x00005ECB, - 14477: 0x00005EC7, - 14478: 0x00005F40, - 14479: 0x00005FAF, - 14480: 0x00005FAD, - 14481: 0x000060F7, - 14482: 0x00006149, - 14483: 0x0000614A, - 14484: 0x0000612B, - 14485: 0x00006145, - 14486: 0x00006136, - 14487: 0x00006132, - 14488: 0x0000612E, - 14489: 0x00006146, - 14490: 0x0000612F, - 14491: 0x0000614F, - 14492: 0x00006129, - 14493: 0x00006140, - 14494: 0x00006220, - 14495: 0x00009168, - 14496: 0x00006223, - 14497: 0x00006225, - 14498: 0x00006224, - 14499: 0x000063C5, - 14500: 0x000063F1, - 14501: 0x000063EB, - 14502: 0x00006410, - 14503: 0x00006412, - 14504: 0x00006409, - 14505: 0x00006420, - 14506: 0x00006424, - 14507: 0x00006433, - 14508: 0x00006443, - 14509: 0x0000641F, - 14510: 0x00006415, - 14511: 0x00006418, - 14512: 0x00006439, - 14513: 0x00006437, - 14514: 0x00006422, - 14515: 0x00006423, - 14516: 0x0000640C, - 14517: 0x00006426, - 14518: 0x00006430, - 14519: 0x00006428, - 14520: 0x00006441, - 14521: 0x00006435, - 14522: 0x0000642F, - 14523: 0x0000640A, - 14524: 0x0000641A, - 14525: 0x00006440, - 14526: 0x00006425, - 14527: 0x00006427, - 14528: 0x0000640B, - 14529: 0x000063E7, - 14530: 0x0000641B, - 14531: 0x0000642E, - 14532: 0x00006421, - 14533: 0x0000640E, - 14534: 0x0000656F, - 14535: 0x00006592, - 14536: 0x000065D3, - 14537: 0x00006686, - 14538: 0x0000668C, - 14539: 0x00006695, - 14540: 0x00006690, - 14541: 0x0000668B, - 14542: 0x0000668A, - 14543: 0x00006699, - 14544: 0x00006694, - 14545: 0x00006678, - 14546: 0x00006720, - 14547: 0x00006966, - 14548: 0x0000695F, - 14549: 0x00006938, - 14550: 0x0000694E, - 14551: 0x00006962, - 14552: 0x00006971, - 14553: 0x0000693F, - 14554: 0x00006945, - 14555: 0x0000696A, - 14556: 0x00006939, - 14557: 0x00006942, - 14558: 0x00006957, - 14559: 0x00006959, - 14560: 0x0000697A, - 14561: 0x00006948, - 14562: 0x00006949, - 14563: 0x00006935, - 14564: 0x0000696C, - 14565: 0x00006933, - 14566: 0x0000693D, - 14567: 0x00006965, - 14568: 0x000068F0, - 14569: 0x00006978, - 14570: 0x00006934, - 14571: 0x00006969, - 14572: 0x00006940, - 14573: 0x0000696F, - 14574: 0x00006944, - 14575: 0x00006976, - 14576: 0x00006958, - 14577: 0x00006941, - 14578: 0x00006974, - 14579: 0x0000694C, - 14580: 0x0000693B, - 14581: 0x0000694B, - 14582: 0x00006937, - 14583: 0x0000695C, - 14584: 0x0000694F, - 14585: 0x00006951, - 14586: 0x00006932, - 14587: 0x00006952, - 14588: 0x0000692F, - 14589: 0x0000697B, - 14590: 0x0000693C, - 14591: 0x00006B46, - 14592: 0x00006B45, - 14593: 0x00006B43, - 14594: 0x00006B42, - 14595: 0x00006B48, - 14596: 0x00006B41, - 14597: 0x00006B9B, - 14598: 0x0000FA0D, - 14599: 0x00006BFB, - 14600: 0x00006BFC, - 14601: 0x00006BF9, - 14602: 0x00006BF7, - 14603: 0x00006BF8, - 14604: 0x00006E9B, - 14605: 0x00006ED6, - 14606: 0x00006EC8, - 14607: 0x00006E8F, - 14608: 0x00006EC0, - 14609: 0x00006E9F, - 14610: 0x00006E93, - 14611: 0x00006E94, - 14612: 0x00006EA0, - 14613: 0x00006EB1, - 14614: 0x00006EB9, - 14615: 0x00006EC6, - 14616: 0x00006ED2, - 14617: 0x00006EBD, - 14618: 0x00006EC1, - 14619: 0x00006E9E, - 14620: 0x00006EC9, - 14621: 0x00006EB7, - 14622: 0x00006EB0, - 14623: 0x00006ECD, - 14624: 0x00006EA6, - 14625: 0x00006ECF, - 14626: 0x00006EB2, - 14627: 0x00006EBE, - 14628: 0x00006EC3, - 14629: 0x00006EDC, - 14630: 0x00006ED8, - 14631: 0x00006E99, - 14632: 0x00006E92, - 14633: 0x00006E8E, - 14634: 0x00006E8D, - 14635: 0x00006EA4, - 14636: 0x00006EA1, - 14637: 0x00006EBF, - 14638: 0x00006EB3, - 14639: 0x00006ED0, - 14640: 0x00006ECA, - 14641: 0x00006E97, - 14642: 0x00006EAE, - 14643: 0x00006EA3, - 14644: 0x00007147, - 14645: 0x00007154, - 14646: 0x00007152, - 14647: 0x00007163, - 14648: 0x00007160, - 14649: 0x00007141, - 14650: 0x0000715D, - 14651: 0x00007162, - 14652: 0x00007172, - 14653: 0x00007178, - 14654: 0x0000716A, - 14655: 0x00007161, - 14656: 0x00007142, - 14657: 0x00007158, - 14658: 0x00007143, - 14659: 0x0000714B, - 14660: 0x00007170, - 14661: 0x0000715F, - 14662: 0x00007150, - 14663: 0x00007153, - 14664: 0x00007144, - 14665: 0x0000714D, - 14666: 0x0000715A, - 14667: 0x0000724F, - 14668: 0x0000728D, - 14669: 0x0000728C, - 14670: 0x00007291, - 14671: 0x00007290, - 14672: 0x0000728E, - 14673: 0x0000733C, - 14674: 0x00007342, - 14675: 0x0000733B, - 14676: 0x0000733A, - 14677: 0x00007340, - 14678: 0x0000734A, - 14679: 0x00007349, - 14680: 0x00007444, - 14681: 0x0000744A, - 14682: 0x0000744B, - 14683: 0x00007452, - 14684: 0x00007451, - 14685: 0x00007457, - 14686: 0x00007440, - 14687: 0x0000744F, - 14688: 0x00007450, - 14689: 0x0000744E, - 14690: 0x00007442, - 14691: 0x00007446, - 14692: 0x0000744D, - 14693: 0x00007454, - 14694: 0x000074E1, - 14695: 0x000074FF, - 14696: 0x000074FE, - 14697: 0x000074FD, - 14698: 0x0000751D, - 14699: 0x00007579, - 14700: 0x00007577, - 14701: 0x00006983, - 14702: 0x000075EF, - 14703: 0x0000760F, - 14704: 0x00007603, - 14705: 0x000075F7, - 14706: 0x000075FE, - 14707: 0x000075FC, - 14708: 0x000075F9, - 14709: 0x000075F8, - 14710: 0x00007610, - 14711: 0x000075FB, - 14712: 0x000075F6, - 14713: 0x000075ED, - 14714: 0x000075F5, - 14715: 0x000075FD, - 14716: 0x00007699, - 14717: 0x000076B5, - 14718: 0x000076DD, - 14719: 0x00007755, - 14720: 0x0000775F, - 14721: 0x00007760, - 14722: 0x00007752, - 14723: 0x00007756, - 14724: 0x0000775A, - 14725: 0x00007769, - 14726: 0x00007767, - 14727: 0x00007754, - 14728: 0x00007759, - 14729: 0x0000776D, - 14730: 0x000077E0, - 14731: 0x00007887, - 14732: 0x0000789A, - 14733: 0x00007894, - 14734: 0x0000788F, - 14735: 0x00007884, - 14736: 0x00007895, - 14737: 0x00007885, - 14738: 0x00007886, - 14739: 0x000078A1, - 14740: 0x00007883, - 14741: 0x00007879, - 14742: 0x00007899, - 14743: 0x00007880, - 14744: 0x00007896, - 14745: 0x0000787B, - 14746: 0x0000797C, - 14747: 0x00007982, - 14748: 0x0000797D, - 14749: 0x00007979, - 14750: 0x00007A11, - 14751: 0x00007A18, - 14752: 0x00007A19, - 14753: 0x00007A12, - 14754: 0x00007A17, - 14755: 0x00007A15, - 14756: 0x00007A22, - 14757: 0x00007A13, - 14758: 0x00007A1B, - 14759: 0x00007A10, - 14760: 0x00007AA3, - 14761: 0x00007AA2, - 14762: 0x00007A9E, - 14763: 0x00007AEB, - 14764: 0x00007B66, - 14765: 0x00007B64, - 14766: 0x00007B6D, - 14767: 0x00007B74, - 14768: 0x00007B69, - 14769: 0x00007B72, - 14770: 0x00007B65, - 14771: 0x00007B73, - 14772: 0x00007B71, - 14773: 0x00007B70, - 14774: 0x00007B61, - 14775: 0x00007B78, - 14776: 0x00007B76, - 14777: 0x00007B63, - 14778: 0x00007CB2, - 14779: 0x00007CB4, - 14780: 0x00007CAF, - 14781: 0x00007D88, - 14782: 0x00007D86, - 14783: 0x00007D80, - 14784: 0x00007D8D, - 14785: 0x00007D7F, - 14786: 0x00007D85, - 14787: 0x00007D7A, - 14788: 0x00007D8E, - 14789: 0x00007D7B, - 14790: 0x00007D83, - 14791: 0x00007D7C, - 14792: 0x00007D8C, - 14793: 0x00007D94, - 14794: 0x00007D84, - 14795: 0x00007D7D, - 14796: 0x00007D92, - 14797: 0x00007F6D, - 14798: 0x00007F6B, - 14799: 0x00007F67, - 14800: 0x00007F68, - 14801: 0x00007F6C, - 14802: 0x00007FA6, - 14803: 0x00007FA5, - 14804: 0x00007FA7, - 14805: 0x00007FDB, - 14806: 0x00007FDC, - 14807: 0x00008021, - 14808: 0x00008164, - 14809: 0x00008160, - 14810: 0x00008177, - 14811: 0x0000815C, - 14812: 0x00008169, - 14813: 0x0000815B, - 14814: 0x00008162, - 14815: 0x00008172, - 14816: 0x00006721, - 14817: 0x0000815E, - 14818: 0x00008176, - 14819: 0x00008167, - 14820: 0x0000816F, - 14821: 0x00008144, - 14822: 0x00008161, - 14823: 0x0000821D, - 14824: 0x00008249, - 14825: 0x00008244, - 14826: 0x00008240, - 14827: 0x00008242, - 14828: 0x00008245, - 14829: 0x000084F1, - 14830: 0x0000843F, - 14831: 0x00008456, - 14832: 0x00008476, - 14833: 0x00008479, - 14834: 0x0000848F, - 14835: 0x0000848D, - 14836: 0x00008465, - 14837: 0x00008451, - 14838: 0x00008440, - 14839: 0x00008486, - 14840: 0x00008467, - 14841: 0x00008430, - 14842: 0x0000844D, - 14843: 0x0000847D, - 14844: 0x0000845A, - 14845: 0x00008459, - 14846: 0x00008474, - 14847: 0x00008473, - 14848: 0x0000845D, - 14849: 0x00008507, - 14850: 0x0000845E, - 14851: 0x00008437, - 14852: 0x0000843A, - 14853: 0x00008434, - 14854: 0x0000847A, - 14855: 0x00008443, - 14856: 0x00008478, - 14857: 0x00008432, - 14858: 0x00008445, - 14859: 0x00008429, - 14860: 0x000083D9, - 14861: 0x0000844B, - 14862: 0x0000842F, - 14863: 0x00008442, - 14864: 0x0000842D, - 14865: 0x0000845F, - 14866: 0x00008470, - 14867: 0x00008439, - 14868: 0x0000844E, - 14869: 0x0000844C, - 14870: 0x00008452, - 14871: 0x0000846F, - 14872: 0x000084C5, - 14873: 0x0000848E, - 14874: 0x0000843B, - 14875: 0x00008447, - 14876: 0x00008436, - 14877: 0x00008433, - 14878: 0x00008468, - 14879: 0x0000847E, - 14880: 0x00008444, - 14881: 0x0000842B, - 14882: 0x00008460, - 14883: 0x00008454, - 14884: 0x0000846E, - 14885: 0x00008450, - 14886: 0x0000870B, - 14887: 0x00008704, - 14888: 0x000086F7, - 14889: 0x0000870C, - 14890: 0x000086FA, - 14891: 0x000086D6, - 14892: 0x000086F5, - 14893: 0x0000874D, - 14894: 0x000086F8, - 14895: 0x0000870E, - 14896: 0x00008709, - 14897: 0x00008701, - 14898: 0x000086F6, - 14899: 0x0000870D, - 14900: 0x00008705, - 14901: 0x000088D6, - 14902: 0x000088CB, - 14903: 0x000088CD, - 14904: 0x000088CE, - 14905: 0x000088DE, - 14906: 0x000088DB, - 14907: 0x000088DA, - 14908: 0x000088CC, - 14909: 0x000088D0, - 14910: 0x00008985, - 14911: 0x0000899B, - 14912: 0x000089DF, - 14913: 0x000089E5, - 14914: 0x000089E4, - 14915: 0x000089E1, - 14916: 0x000089E0, - 14917: 0x000089E2, - 14918: 0x000089DC, - 14919: 0x000089E6, - 14920: 0x00008A76, - 14921: 0x00008A86, - 14922: 0x00008A7F, - 14923: 0x00008A61, - 14924: 0x00008A3F, - 14925: 0x00008A77, - 14926: 0x00008A82, - 14927: 0x00008A84, - 14928: 0x00008A75, - 14929: 0x00008A83, - 14930: 0x00008A81, - 14931: 0x00008A74, - 14932: 0x00008A7A, - 14933: 0x00008C3C, - 14934: 0x00008C4B, - 14935: 0x00008C4A, - 14936: 0x00008C65, - 14937: 0x00008C64, - 14938: 0x00008C66, - 14939: 0x00008C86, - 14940: 0x00008C84, - 14941: 0x00008C85, - 14942: 0x00008CCC, - 14943: 0x00008D68, - 14944: 0x00008D69, - 14945: 0x00008D91, - 14946: 0x00008D8C, - 14947: 0x00008D8E, - 14948: 0x00008D8F, - 14949: 0x00008D8D, - 14950: 0x00008D93, - 14951: 0x00008D94, - 14952: 0x00008D90, - 14953: 0x00008D92, - 14954: 0x00008DF0, - 14955: 0x00008DE0, - 14956: 0x00008DEC, - 14957: 0x00008DF1, - 14958: 0x00008DEE, - 14959: 0x00008DD0, - 14960: 0x00008DE9, - 14961: 0x00008DE3, - 14962: 0x00008DE2, - 14963: 0x00008DE7, - 14964: 0x00008DF2, - 14965: 0x00008DEB, - 14966: 0x00008DF4, - 14967: 0x00008F06, - 14968: 0x00008EFF, - 14969: 0x00008F01, - 14970: 0x00008F00, - 14971: 0x00008F05, - 14972: 0x00008F07, - 14973: 0x00008F08, - 14974: 0x00008F02, - 14975: 0x00008F0B, - 14976: 0x00009052, - 14977: 0x0000903F, - 14978: 0x00009044, - 14979: 0x00009049, - 14980: 0x0000903D, - 14981: 0x00009110, - 14982: 0x0000910D, - 14983: 0x0000910F, - 14984: 0x00009111, - 14985: 0x00009116, - 14986: 0x00009114, - 14987: 0x0000910B, - 14988: 0x0000910E, - 14989: 0x0000916E, - 14990: 0x0000916F, - 14991: 0x00009248, - 14992: 0x00009252, - 14993: 0x00009230, - 14994: 0x0000923A, - 14995: 0x00009266, - 14996: 0x00009233, - 14997: 0x00009265, - 14998: 0x0000925E, - 14999: 0x00009283, - 15000: 0x0000922E, - 15001: 0x0000924A, - 15002: 0x00009246, - 15003: 0x0000926D, - 15004: 0x0000926C, - 15005: 0x0000924F, - 15006: 0x00009260, - 15007: 0x00009267, - 15008: 0x0000926F, - 15009: 0x00009236, - 15010: 0x00009261, - 15011: 0x00009270, - 15012: 0x00009231, - 15013: 0x00009254, - 15014: 0x00009263, - 15015: 0x00009250, - 15016: 0x00009272, - 15017: 0x0000924E, - 15018: 0x00009253, - 15019: 0x0000924C, - 15020: 0x00009256, - 15021: 0x00009232, - 15022: 0x0000959F, - 15023: 0x0000959C, - 15024: 0x0000959E, - 15025: 0x0000959B, - 15026: 0x00009692, - 15027: 0x00009693, - 15028: 0x00009691, - 15029: 0x00009697, - 15030: 0x000096CE, - 15031: 0x000096FA, - 15032: 0x000096FD, - 15033: 0x000096F8, - 15034: 0x000096F5, - 15035: 0x00009773, - 15036: 0x00009777, - 15037: 0x00009778, - 15038: 0x00009772, - 15039: 0x0000980F, - 15040: 0x0000980D, - 15041: 0x0000980E, - 15042: 0x000098AC, - 15043: 0x000098F6, - 15044: 0x000098F9, - 15045: 0x000099AF, - 15046: 0x000099B2, - 15047: 0x000099B0, - 15048: 0x000099B5, - 15049: 0x00009AAD, - 15050: 0x00009AAB, - 15051: 0x00009B5B, - 15052: 0x00009CEA, - 15053: 0x00009CED, - 15054: 0x00009CE7, - 15055: 0x00009E80, - 15056: 0x00009EFD, - 15057: 0x000050E6, - 15058: 0x000050D4, - 15059: 0x000050D7, - 15060: 0x000050E8, - 15061: 0x000050F3, - 15062: 0x000050DB, - 15063: 0x000050EA, - 15064: 0x000050DD, - 15065: 0x000050E4, - 15066: 0x000050D3, - 15067: 0x000050EC, - 15068: 0x000050F0, - 15069: 0x000050EF, - 15070: 0x000050E3, - 15071: 0x000050E0, - 15072: 0x000051D8, - 15073: 0x00005280, - 15074: 0x00005281, - 15075: 0x000052E9, - 15076: 0x000052EB, - 15077: 0x00005330, - 15078: 0x000053AC, - 15079: 0x00005627, - 15080: 0x00005615, - 15081: 0x0000560C, - 15082: 0x00005612, - 15083: 0x000055FC, - 15084: 0x0000560F, - 15085: 0x0000561C, - 15086: 0x00005601, - 15087: 0x00005613, - 15088: 0x00005602, - 15089: 0x000055FA, - 15090: 0x0000561D, - 15091: 0x00005604, - 15092: 0x000055FF, - 15093: 0x000055F9, - 15094: 0x00005889, - 15095: 0x0000587C, - 15096: 0x00005890, - 15097: 0x00005898, - 15098: 0x00005886, - 15099: 0x00005881, - 15100: 0x0000587F, - 15101: 0x00005874, - 15102: 0x0000588B, - 15103: 0x0000587A, - 15104: 0x00005887, - 15105: 0x00005891, - 15106: 0x0000588E, - 15107: 0x00005876, - 15108: 0x00005882, - 15109: 0x00005888, - 15110: 0x0000587B, - 15111: 0x00005894, - 15112: 0x0000588F, - 15113: 0x000058FE, - 15114: 0x0000596B, - 15115: 0x00005ADC, - 15116: 0x00005AEE, - 15117: 0x00005AE5, - 15118: 0x00005AD5, - 15119: 0x00005AEA, - 15120: 0x00005ADA, - 15121: 0x00005AED, - 15122: 0x00005AEB, - 15123: 0x00005AF3, - 15124: 0x00005AE2, - 15125: 0x00005AE0, - 15126: 0x00005ADB, - 15127: 0x00005AEC, - 15128: 0x00005ADE, - 15129: 0x00005ADD, - 15130: 0x00005AD9, - 15131: 0x00005AE8, - 15132: 0x00005ADF, - 15133: 0x00005B77, - 15134: 0x00005BE0, - 15135: 0x00005BE3, - 15136: 0x00005C63, - 15137: 0x00005D82, - 15138: 0x00005D80, - 15139: 0x00005D7D, - 15140: 0x00005D86, - 15141: 0x00005D7A, - 15142: 0x00005D81, - 15143: 0x00005D77, - 15144: 0x00005D8A, - 15145: 0x00005D89, - 15146: 0x00005D88, - 15147: 0x00005D7E, - 15148: 0x00005D7C, - 15149: 0x00005D8D, - 15150: 0x00005D79, - 15151: 0x00005D7F, - 15152: 0x00005E58, - 15153: 0x00005E59, - 15154: 0x00005E53, - 15155: 0x00005ED8, - 15156: 0x00005ED1, - 15157: 0x00005ED7, - 15158: 0x00005ECE, - 15159: 0x00005EDC, - 15160: 0x00005ED5, - 15161: 0x00005ED9, - 15162: 0x00005ED2, - 15163: 0x00005ED4, - 15164: 0x00005F44, - 15165: 0x00005F43, - 15166: 0x00005F6F, - 15167: 0x00005FB6, - 15168: 0x0000612C, - 15169: 0x00006128, - 15170: 0x00006141, - 15171: 0x0000615E, - 15172: 0x00006171, - 15173: 0x00006173, - 15174: 0x00006152, - 15175: 0x00006153, - 15176: 0x00006172, - 15177: 0x0000616C, - 15178: 0x00006180, - 15179: 0x00006174, - 15180: 0x00006154, - 15181: 0x0000617A, - 15182: 0x0000615B, - 15183: 0x00006165, - 15184: 0x0000613B, - 15185: 0x0000616A, - 15186: 0x00006161, - 15187: 0x00006156, - 15188: 0x00006229, - 15189: 0x00006227, - 15190: 0x0000622B, - 15191: 0x0000642B, - 15192: 0x0000644D, - 15193: 0x0000645B, - 15194: 0x0000645D, - 15195: 0x00006474, - 15196: 0x00006476, - 15197: 0x00006472, - 15198: 0x00006473, - 15199: 0x0000647D, - 15200: 0x00006475, - 15201: 0x00006466, - 15202: 0x000064A6, - 15203: 0x0000644E, - 15204: 0x00006482, - 15205: 0x0000645E, - 15206: 0x0000645C, - 15207: 0x0000644B, - 15208: 0x00006453, - 15209: 0x00006460, - 15210: 0x00006450, - 15211: 0x0000647F, - 15212: 0x0000643F, - 15213: 0x0000646C, - 15214: 0x0000646B, - 15215: 0x00006459, - 15216: 0x00006465, - 15217: 0x00006477, - 15218: 0x00006573, - 15219: 0x000065A0, - 15220: 0x000066A1, - 15221: 0x000066A0, - 15222: 0x0000669F, - 15223: 0x00006705, - 15224: 0x00006704, - 15225: 0x00006722, - 15226: 0x000069B1, - 15227: 0x000069B6, - 15228: 0x000069C9, - 15229: 0x000069A0, - 15230: 0x000069CE, - 15231: 0x00006996, - 15232: 0x000069B0, - 15233: 0x000069AC, - 15234: 0x000069BC, - 15235: 0x00006991, - 15236: 0x00006999, - 15237: 0x0000698E, - 15238: 0x000069A7, - 15239: 0x0000698D, - 15240: 0x000069A9, - 15241: 0x000069BE, - 15242: 0x000069AF, - 15243: 0x000069BF, - 15244: 0x000069C4, - 15245: 0x000069BD, - 15246: 0x000069A4, - 15247: 0x000069D4, - 15248: 0x000069B9, - 15249: 0x000069CA, - 15250: 0x0000699A, - 15251: 0x000069CF, - 15252: 0x000069B3, - 15253: 0x00006993, - 15254: 0x000069AA, - 15255: 0x000069A1, - 15256: 0x0000699E, - 15257: 0x000069D9, - 15258: 0x00006997, - 15259: 0x00006990, - 15260: 0x000069C2, - 15261: 0x000069B5, - 15262: 0x000069A5, - 15263: 0x000069C6, - 15264: 0x00006B4A, - 15265: 0x00006B4D, - 15266: 0x00006B4B, - 15267: 0x00006B9E, - 15268: 0x00006B9F, - 15269: 0x00006BA0, - 15270: 0x00006BC3, - 15271: 0x00006BC4, - 15272: 0x00006BFE, - 15273: 0x00006ECE, - 15274: 0x00006EF5, - 15275: 0x00006EF1, - 15276: 0x00006F03, - 15277: 0x00006F25, - 15278: 0x00006EF8, - 15279: 0x00006F37, - 15280: 0x00006EFB, - 15281: 0x00006F2E, - 15282: 0x00006F09, - 15283: 0x00006F4E, - 15284: 0x00006F19, - 15285: 0x00006F1A, - 15286: 0x00006F27, - 15287: 0x00006F18, - 15288: 0x00006F3B, - 15289: 0x00006F12, - 15290: 0x00006EED, - 15291: 0x00006F0A, - 15292: 0x00006F36, - 15293: 0x00006F73, - 15294: 0x00006EF9, - 15295: 0x00006EEE, - 15296: 0x00006F2D, - 15297: 0x00006F40, - 15298: 0x00006F30, - 15299: 0x00006F3C, - 15300: 0x00006F35, - 15301: 0x00006EEB, - 15302: 0x00006F07, - 15303: 0x00006F0E, - 15304: 0x00006F43, - 15305: 0x00006F05, - 15306: 0x00006EFD, - 15307: 0x00006EF6, - 15308: 0x00006F39, - 15309: 0x00006F1C, - 15310: 0x00006EFC, - 15311: 0x00006F3A, - 15312: 0x00006F1F, - 15313: 0x00006F0D, - 15314: 0x00006F1E, - 15315: 0x00006F08, - 15316: 0x00006F21, - 15317: 0x00007187, - 15318: 0x00007190, - 15319: 0x00007189, - 15320: 0x00007180, - 15321: 0x00007185, - 15322: 0x00007182, - 15323: 0x0000718F, - 15324: 0x0000717B, - 15325: 0x00007186, - 15326: 0x00007181, - 15327: 0x00007197, - 15328: 0x00007244, - 15329: 0x00007253, - 15330: 0x00007297, - 15331: 0x00007295, - 15332: 0x00007293, - 15333: 0x00007343, - 15334: 0x0000734D, - 15335: 0x00007351, - 15336: 0x0000734C, - 15337: 0x00007462, - 15338: 0x00007473, - 15339: 0x00007471, - 15340: 0x00007475, - 15341: 0x00007472, - 15342: 0x00007467, - 15343: 0x0000746E, - 15344: 0x00007500, - 15345: 0x00007502, - 15346: 0x00007503, - 15347: 0x0000757D, - 15348: 0x00007590, - 15349: 0x00007616, - 15350: 0x00007608, - 15351: 0x0000760C, - 15352: 0x00007615, - 15353: 0x00007611, - 15354: 0x0000760A, - 15355: 0x00007614, - 15356: 0x000076B8, - 15357: 0x00007781, - 15358: 0x0000777C, - 15359: 0x00007785, - 15360: 0x00007782, - 15361: 0x0000776E, - 15362: 0x00007780, - 15363: 0x0000776F, - 15364: 0x0000777E, - 15365: 0x00007783, - 15366: 0x000078B2, - 15367: 0x000078AA, - 15368: 0x000078B4, - 15369: 0x000078AD, - 15370: 0x000078A8, - 15371: 0x0000787E, - 15372: 0x000078AB, - 15373: 0x0000789E, - 15374: 0x000078A5, - 15375: 0x000078A0, - 15376: 0x000078AC, - 15377: 0x000078A2, - 15378: 0x000078A4, - 15379: 0x00007998, - 15380: 0x0000798A, - 15381: 0x0000798B, - 15382: 0x00007996, - 15383: 0x00007995, - 15384: 0x00007994, - 15385: 0x00007993, - 15386: 0x00007997, - 15387: 0x00007988, - 15388: 0x00007992, - 15389: 0x00007990, - 15390: 0x00007A2B, - 15391: 0x00007A4A, - 15392: 0x00007A30, - 15393: 0x00007A2F, - 15394: 0x00007A28, - 15395: 0x00007A26, - 15396: 0x00007AA8, - 15397: 0x00007AAB, - 15398: 0x00007AAC, - 15399: 0x00007AEE, - 15400: 0x00007B88, - 15401: 0x00007B9C, - 15402: 0x00007B8A, - 15403: 0x00007B91, - 15404: 0x00007B90, - 15405: 0x00007B96, - 15406: 0x00007B8D, - 15407: 0x00007B8C, - 15408: 0x00007B9B, - 15409: 0x00007B8E, - 15410: 0x00007B85, - 15411: 0x00007B98, - 15412: 0x00005284, - 15413: 0x00007B99, - 15414: 0x00007BA4, - 15415: 0x00007B82, - 15416: 0x00007CBB, - 15417: 0x00007CBF, - 15418: 0x00007CBC, - 15419: 0x00007CBA, - 15420: 0x00007DA7, - 15421: 0x00007DB7, - 15422: 0x00007DC2, - 15423: 0x00007DA3, - 15424: 0x00007DAA, - 15425: 0x00007DC1, - 15426: 0x00007DC0, - 15427: 0x00007DC5, - 15428: 0x00007D9D, - 15429: 0x00007DCE, - 15430: 0x00007DC4, - 15431: 0x00007DC6, - 15432: 0x00007DCB, - 15433: 0x00007DCC, - 15434: 0x00007DAF, - 15435: 0x00007DB9, - 15436: 0x00007D96, - 15437: 0x00007DBC, - 15438: 0x00007D9F, - 15439: 0x00007DA6, - 15440: 0x00007DAE, - 15441: 0x00007DA9, - 15442: 0x00007DA1, - 15443: 0x00007DC9, - 15444: 0x00007F73, - 15445: 0x00007FE2, - 15446: 0x00007FE3, - 15447: 0x00007FE5, - 15448: 0x00007FDE, - 15449: 0x00008024, - 15450: 0x0000805D, - 15451: 0x0000805C, - 15452: 0x00008189, - 15453: 0x00008186, - 15454: 0x00008183, - 15455: 0x00008187, - 15456: 0x0000818D, - 15457: 0x0000818C, - 15458: 0x0000818B, - 15459: 0x00008215, - 15460: 0x00008497, - 15461: 0x000084A4, - 15462: 0x000084A1, - 15463: 0x0000849F, - 15464: 0x000084BA, - 15465: 0x000084CE, - 15466: 0x000084C2, - 15467: 0x000084AC, - 15468: 0x000084AE, - 15469: 0x000084AB, - 15470: 0x000084B9, - 15471: 0x000084B4, - 15472: 0x000084C1, - 15473: 0x000084CD, - 15474: 0x000084AA, - 15475: 0x0000849A, - 15476: 0x000084B1, - 15477: 0x000084D0, - 15478: 0x0000849D, - 15479: 0x000084A7, - 15480: 0x000084BB, - 15481: 0x000084A2, - 15482: 0x00008494, - 15483: 0x000084C7, - 15484: 0x000084CC, - 15485: 0x0000849B, - 15486: 0x000084A9, - 15487: 0x000084AF, - 15488: 0x000084A8, - 15489: 0x000084D6, - 15490: 0x00008498, - 15491: 0x000084B6, - 15492: 0x000084CF, - 15493: 0x000084A0, - 15494: 0x000084D7, - 15495: 0x000084D4, - 15496: 0x000084D2, - 15497: 0x000084DB, - 15498: 0x000084B0, - 15499: 0x00008491, - 15500: 0x00008661, - 15501: 0x00008733, - 15502: 0x00008723, - 15503: 0x00008728, - 15504: 0x0000876B, - 15505: 0x00008740, - 15506: 0x0000872E, - 15507: 0x0000871E, - 15508: 0x00008721, - 15509: 0x00008719, - 15510: 0x0000871B, - 15511: 0x00008743, - 15512: 0x0000872C, - 15513: 0x00008741, - 15514: 0x0000873E, - 15515: 0x00008746, - 15516: 0x00008720, - 15517: 0x00008732, - 15518: 0x0000872A, - 15519: 0x0000872D, - 15520: 0x0000873C, - 15521: 0x00008712, - 15522: 0x0000873A, - 15523: 0x00008731, - 15524: 0x00008735, - 15525: 0x00008742, - 15526: 0x00008726, - 15527: 0x00008727, - 15528: 0x00008738, - 15529: 0x00008724, - 15530: 0x0000871A, - 15531: 0x00008730, - 15532: 0x00008711, - 15533: 0x000088F7, - 15534: 0x000088E7, - 15535: 0x000088F1, - 15536: 0x000088F2, - 15537: 0x000088FA, - 15538: 0x000088FE, - 15539: 0x000088EE, - 15540: 0x000088FC, - 15541: 0x000088F6, - 15542: 0x000088FB, - 15543: 0x000088F0, - 15544: 0x000088EC, - 15545: 0x000088EB, - 15546: 0x0000899D, - 15547: 0x000089A1, - 15548: 0x0000899F, - 15549: 0x0000899E, - 15550: 0x000089E9, - 15551: 0x000089EB, - 15552: 0x000089E8, - 15553: 0x00008AAB, - 15554: 0x00008A99, - 15555: 0x00008A8B, - 15556: 0x00008A92, - 15557: 0x00008A8F, - 15558: 0x00008A96, - 15559: 0x00008C3D, - 15560: 0x00008C68, - 15561: 0x00008C69, - 15562: 0x00008CD5, - 15563: 0x00008CCF, - 15564: 0x00008CD7, - 15565: 0x00008D96, - 15566: 0x00008E09, - 15567: 0x00008E02, - 15568: 0x00008DFF, - 15569: 0x00008E0D, - 15570: 0x00008DFD, - 15571: 0x00008E0A, - 15572: 0x00008E03, - 15573: 0x00008E07, - 15574: 0x00008E06, - 15575: 0x00008E05, - 15576: 0x00008DFE, - 15577: 0x00008E00, - 15578: 0x00008E04, - 15579: 0x00008F10, - 15580: 0x00008F11, - 15581: 0x00008F0E, - 15582: 0x00008F0D, - 15583: 0x00009123, - 15584: 0x0000911C, - 15585: 0x00009120, - 15586: 0x00009122, - 15587: 0x0000911F, - 15588: 0x0000911D, - 15589: 0x0000911A, - 15590: 0x00009124, - 15591: 0x00009121, - 15592: 0x0000911B, - 15593: 0x0000917A, - 15594: 0x00009172, - 15595: 0x00009179, - 15596: 0x00009173, - 15597: 0x000092A5, - 15598: 0x000092A4, - 15599: 0x00009276, - 15600: 0x0000929B, - 15601: 0x0000927A, - 15602: 0x000092A0, - 15603: 0x00009294, - 15604: 0x000092AA, - 15605: 0x0000928D, - 15606: 0x000092A6, - 15607: 0x0000929A, - 15608: 0x000092AB, - 15609: 0x00009279, - 15610: 0x00009297, - 15611: 0x0000927F, - 15612: 0x000092A3, - 15613: 0x000092EE, - 15614: 0x0000928E, - 15615: 0x00009282, - 15616: 0x00009295, - 15617: 0x000092A2, - 15618: 0x0000927D, - 15619: 0x00009288, - 15620: 0x000092A1, - 15621: 0x0000928A, - 15622: 0x00009286, - 15623: 0x0000928C, - 15624: 0x00009299, - 15625: 0x000092A7, - 15626: 0x0000927E, - 15627: 0x00009287, - 15628: 0x000092A9, - 15629: 0x0000929D, - 15630: 0x0000928B, - 15631: 0x0000922D, - 15632: 0x0000969E, - 15633: 0x000096A1, - 15634: 0x000096FF, - 15635: 0x00009758, - 15636: 0x0000977D, - 15637: 0x0000977A, - 15638: 0x0000977E, - 15639: 0x00009783, - 15640: 0x00009780, - 15641: 0x00009782, - 15642: 0x0000977B, - 15643: 0x00009784, - 15644: 0x00009781, - 15645: 0x0000977F, - 15646: 0x000097CE, - 15647: 0x000097CD, - 15648: 0x00009816, - 15649: 0x000098AD, - 15650: 0x000098AE, - 15651: 0x00009902, - 15652: 0x00009900, - 15653: 0x00009907, - 15654: 0x0000999D, - 15655: 0x0000999C, - 15656: 0x000099C3, - 15657: 0x000099B9, - 15658: 0x000099BB, - 15659: 0x000099BA, - 15660: 0x000099C2, - 15661: 0x000099BD, - 15662: 0x000099C7, - 15663: 0x00009AB1, - 15664: 0x00009AE3, - 15665: 0x00009AE7, - 15666: 0x00009B3E, - 15667: 0x00009B3F, - 15668: 0x00009B60, - 15669: 0x00009B61, - 15670: 0x00009B5F, - 15671: 0x00009CF1, - 15672: 0x00009CF2, - 15673: 0x00009CF5, - 15674: 0x00009EA7, - 15675: 0x000050FF, - 15676: 0x00005103, - 15677: 0x00005130, - 15678: 0x000050F8, - 15679: 0x00005106, - 15680: 0x00005107, - 15681: 0x000050F6, - 15682: 0x000050FE, - 15683: 0x0000510B, - 15684: 0x0000510C, - 15685: 0x000050FD, - 15686: 0x0000510A, - 15687: 0x0000528B, - 15688: 0x0000528C, - 15689: 0x000052F1, - 15690: 0x000052EF, - 15691: 0x00005648, - 15692: 0x00005642, - 15693: 0x0000564C, - 15694: 0x00005635, - 15695: 0x00005641, - 15696: 0x0000564A, - 15697: 0x00005649, - 15698: 0x00005646, - 15699: 0x00005658, - 15700: 0x0000565A, - 15701: 0x00005640, - 15702: 0x00005633, - 15703: 0x0000563D, - 15704: 0x0000562C, - 15705: 0x0000563E, - 15706: 0x00005638, - 15707: 0x0000562A, - 15708: 0x0000563A, - 15709: 0x0000571A, - 15710: 0x000058AB, - 15711: 0x0000589D, - 15712: 0x000058B1, - 15713: 0x000058A0, - 15714: 0x000058A3, - 15715: 0x000058AF, - 15716: 0x000058AC, - 15717: 0x000058A5, - 15718: 0x000058A1, - 15719: 0x000058FF, - 15720: 0x00005AFF, - 15721: 0x00005AF4, - 15722: 0x00005AFD, - 15723: 0x00005AF7, - 15724: 0x00005AF6, - 15725: 0x00005B03, - 15726: 0x00005AF8, - 15727: 0x00005B02, - 15728: 0x00005AF9, - 15729: 0x00005B01, - 15730: 0x00005B07, - 15731: 0x00005B05, - 15732: 0x00005B0F, - 15733: 0x00005C67, - 15734: 0x00005D99, - 15735: 0x00005D97, - 15736: 0x00005D9F, - 15737: 0x00005D92, - 15738: 0x00005DA2, - 15739: 0x00005D93, - 15740: 0x00005D95, - 15741: 0x00005DA0, - 15742: 0x00005D9C, - 15743: 0x00005DA1, - 15744: 0x00005D9A, - 15745: 0x00005D9E, - 15746: 0x00005E69, - 15747: 0x00005E5D, - 15748: 0x00005E60, - 15749: 0x00005E5C, - 15750: 0x00007DF3, - 15751: 0x00005EDB, - 15752: 0x00005EDE, - 15753: 0x00005EE1, - 15754: 0x00005F49, - 15755: 0x00005FB2, - 15756: 0x0000618B, - 15757: 0x00006183, - 15758: 0x00006179, - 15759: 0x000061B1, - 15760: 0x000061B0, - 15761: 0x000061A2, - 15762: 0x00006189, - 15763: 0x0000619B, - 15764: 0x00006193, - 15765: 0x000061AF, - 15766: 0x000061AD, - 15767: 0x0000619F, - 15768: 0x00006192, - 15769: 0x000061AA, - 15770: 0x000061A1, - 15771: 0x0000618D, - 15772: 0x00006166, - 15773: 0x000061B3, - 15774: 0x0000622D, - 15775: 0x0000646E, - 15776: 0x00006470, - 15777: 0x00006496, - 15778: 0x000064A0, - 15779: 0x00006485, - 15780: 0x00006497, - 15781: 0x0000649C, - 15782: 0x0000648F, - 15783: 0x0000648B, - 15784: 0x0000648A, - 15785: 0x0000648C, - 15786: 0x000064A3, - 15787: 0x0000649F, - 15788: 0x00006468, - 15789: 0x000064B1, - 15790: 0x00006498, - 15791: 0x00006576, - 15792: 0x0000657A, - 15793: 0x00006579, - 15794: 0x0000657B, - 15795: 0x000065B2, - 15796: 0x000065B3, - 15797: 0x000066B5, - 15798: 0x000066B0, - 15799: 0x000066A9, - 15800: 0x000066B2, - 15801: 0x000066B7, - 15802: 0x000066AA, - 15803: 0x000066AF, - 15804: 0x00006A00, - 15805: 0x00006A06, - 15806: 0x00006A17, - 15807: 0x000069E5, - 15808: 0x000069F8, - 15809: 0x00006A15, - 15810: 0x000069F1, - 15811: 0x000069E4, - 15812: 0x00006A20, - 15813: 0x000069FF, - 15814: 0x000069EC, - 15815: 0x000069E2, - 15816: 0x00006A1B, - 15817: 0x00006A1D, - 15818: 0x000069FE, - 15819: 0x00006A27, - 15820: 0x000069F2, - 15821: 0x000069EE, - 15822: 0x00006A14, - 15823: 0x000069F7, - 15824: 0x000069E7, - 15825: 0x00006A40, - 15826: 0x00006A08, - 15827: 0x000069E6, - 15828: 0x000069FB, - 15829: 0x00006A0D, - 15830: 0x000069FC, - 15831: 0x000069EB, - 15832: 0x00006A09, - 15833: 0x00006A04, - 15834: 0x00006A18, - 15835: 0x00006A25, - 15836: 0x00006A0F, - 15837: 0x000069F6, - 15838: 0x00006A26, - 15839: 0x00006A07, - 15840: 0x000069F4, - 15841: 0x00006A16, - 15842: 0x00006B51, - 15843: 0x00006BA5, - 15844: 0x00006BA3, - 15845: 0x00006BA2, - 15846: 0x00006BA6, - 15847: 0x00006C01, - 15848: 0x00006C00, - 15849: 0x00006BFF, - 15850: 0x00006C02, - 15851: 0x00006F41, - 15852: 0x00006F26, - 15853: 0x00006F7E, - 15854: 0x00006F87, - 15855: 0x00006FC6, - 15856: 0x00006F92, - 15857: 0x00006F8D, - 15858: 0x00006F89, - 15859: 0x00006F8C, - 15860: 0x00006F62, - 15861: 0x00006F4F, - 15862: 0x00006F85, - 15863: 0x00006F5A, - 15864: 0x00006F96, - 15865: 0x00006F76, - 15866: 0x00006F6C, - 15867: 0x00006F82, - 15868: 0x00006F55, - 15869: 0x00006F72, - 15870: 0x00006F52, - 15871: 0x00006F50, - 15872: 0x00006F57, - 15873: 0x00006F94, - 15874: 0x00006F93, - 15875: 0x00006F5D, - 15876: 0x00006F00, - 15877: 0x00006F61, - 15878: 0x00006F6B, - 15879: 0x00006F7D, - 15880: 0x00006F67, - 15881: 0x00006F90, - 15882: 0x00006F53, - 15883: 0x00006F8B, - 15884: 0x00006F69, - 15885: 0x00006F7F, - 15886: 0x00006F95, - 15887: 0x00006F63, - 15888: 0x00006F77, - 15889: 0x00006F6A, - 15890: 0x00006F7B, - 15891: 0x000071B2, - 15892: 0x000071AF, - 15893: 0x0000719B, - 15894: 0x000071B0, - 15895: 0x000071A0, - 15896: 0x0000719A, - 15897: 0x000071A9, - 15898: 0x000071B5, - 15899: 0x0000719D, - 15900: 0x000071A5, - 15901: 0x0000719E, - 15902: 0x000071A4, - 15903: 0x000071A1, - 15904: 0x000071AA, - 15905: 0x0000719C, - 15906: 0x000071A7, - 15907: 0x000071B3, - 15908: 0x00007298, - 15909: 0x0000729A, - 15910: 0x00007358, - 15911: 0x00007352, - 15912: 0x0000735E, - 15913: 0x0000735F, - 15914: 0x00007360, - 15915: 0x0000735D, - 15916: 0x0000735B, - 15917: 0x00007361, - 15918: 0x0000735A, - 15919: 0x00007359, - 15920: 0x00007362, - 15921: 0x00007487, - 15922: 0x00007489, - 15923: 0x0000748A, - 15924: 0x00007486, - 15925: 0x00007481, - 15926: 0x0000747D, - 15927: 0x00007485, - 15928: 0x00007488, - 15929: 0x0000747C, - 15930: 0x00007479, - 15931: 0x00007508, - 15932: 0x00007507, - 15933: 0x0000757E, - 15934: 0x00007625, - 15935: 0x0000761E, - 15936: 0x00007619, - 15937: 0x0000761D, - 15938: 0x0000761C, - 15939: 0x00007623, - 15940: 0x0000761A, - 15941: 0x00007628, - 15942: 0x0000761B, - 15943: 0x0000769C, - 15944: 0x0000769D, - 15945: 0x0000769E, - 15946: 0x0000769B, - 15947: 0x0000778D, - 15948: 0x0000778F, - 15949: 0x00007789, - 15950: 0x00007788, - 15951: 0x000078CD, - 15952: 0x000078BB, - 15953: 0x000078CF, - 15954: 0x000078CC, - 15955: 0x000078D1, - 15956: 0x000078CE, - 15957: 0x000078D4, - 15958: 0x000078C8, - 15959: 0x000078C3, - 15960: 0x000078C4, - 15961: 0x000078C9, - 15962: 0x0000799A, - 15963: 0x000079A1, - 15964: 0x000079A0, - 15965: 0x0000799C, - 15966: 0x000079A2, - 15967: 0x0000799B, - 15968: 0x00006B76, - 15969: 0x00007A39, - 15970: 0x00007AB2, - 15971: 0x00007AB4, - 15972: 0x00007AB3, - 15973: 0x00007BB7, - 15974: 0x00007BCB, - 15975: 0x00007BBE, - 15976: 0x00007BAC, - 15977: 0x00007BCE, - 15978: 0x00007BAF, - 15979: 0x00007BB9, - 15980: 0x00007BCA, - 15981: 0x00007BB5, - 15982: 0x00007CC5, - 15983: 0x00007CC8, - 15984: 0x00007CCC, - 15985: 0x00007CCB, - 15986: 0x00007DF7, - 15987: 0x00007DDB, - 15988: 0x00007DEA, - 15989: 0x00007DE7, - 15990: 0x00007DD7, - 15991: 0x00007DE1, - 15992: 0x00007E03, - 15993: 0x00007DFA, - 15994: 0x00007DE6, - 15995: 0x00007DF6, - 15996: 0x00007DF1, - 15997: 0x00007DF0, - 15998: 0x00007DEE, - 15999: 0x00007DDF, - 16000: 0x00007F76, - 16001: 0x00007FAC, - 16002: 0x00007FB0, - 16003: 0x00007FAD, - 16004: 0x00007FED, - 16005: 0x00007FEB, - 16006: 0x00007FEA, - 16007: 0x00007FEC, - 16008: 0x00007FE6, - 16009: 0x00007FE8, - 16010: 0x00008064, - 16011: 0x00008067, - 16012: 0x000081A3, - 16013: 0x0000819F, - 16014: 0x0000819E, - 16015: 0x00008195, - 16016: 0x000081A2, - 16017: 0x00008199, - 16018: 0x00008197, - 16019: 0x00008216, - 16020: 0x0000824F, - 16021: 0x00008253, - 16022: 0x00008252, - 16023: 0x00008250, - 16024: 0x0000824E, - 16025: 0x00008251, - 16026: 0x00008524, - 16027: 0x0000853B, - 16028: 0x0000850F, - 16029: 0x00008500, - 16030: 0x00008529, - 16031: 0x0000850E, - 16032: 0x00008509, - 16033: 0x0000850D, - 16034: 0x0000851F, - 16035: 0x0000850A, - 16036: 0x00008527, - 16037: 0x0000851C, - 16038: 0x000084FB, - 16039: 0x0000852B, - 16040: 0x000084FA, - 16041: 0x00008508, - 16042: 0x0000850C, - 16043: 0x000084F4, - 16044: 0x0000852A, - 16045: 0x000084F2, - 16046: 0x00008515, - 16047: 0x000084F7, - 16048: 0x000084EB, - 16049: 0x000084F3, - 16050: 0x000084FC, - 16051: 0x00008512, - 16052: 0x000084EA, - 16053: 0x000084E9, - 16054: 0x00008516, - 16055: 0x000084FE, - 16056: 0x00008528, - 16057: 0x0000851D, - 16058: 0x0000852E, - 16059: 0x00008502, - 16060: 0x000084FD, - 16061: 0x0000851E, - 16062: 0x000084F6, - 16063: 0x00008531, - 16064: 0x00008526, - 16065: 0x000084E7, - 16066: 0x000084E8, - 16067: 0x000084F0, - 16068: 0x000084EF, - 16069: 0x000084F9, - 16070: 0x00008518, - 16071: 0x00008520, - 16072: 0x00008530, - 16073: 0x0000850B, - 16074: 0x00008519, - 16075: 0x0000852F, - 16076: 0x00008662, - 16077: 0x00008756, - 16078: 0x00008763, - 16079: 0x00008764, - 16080: 0x00008777, - 16081: 0x000087E1, - 16082: 0x00008773, - 16083: 0x00008758, - 16084: 0x00008754, - 16085: 0x0000875B, - 16086: 0x00008752, - 16087: 0x00008761, - 16088: 0x0000875A, - 16089: 0x00008751, - 16090: 0x0000875E, - 16091: 0x0000876D, - 16092: 0x0000876A, - 16093: 0x00008750, - 16094: 0x0000874E, - 16095: 0x0000875F, - 16096: 0x0000875D, - 16097: 0x0000876F, - 16098: 0x0000876C, - 16099: 0x0000877A, - 16100: 0x0000876E, - 16101: 0x0000875C, - 16102: 0x00008765, - 16103: 0x0000874F, - 16104: 0x0000877B, - 16105: 0x00008775, - 16106: 0x00008762, - 16107: 0x00008767, - 16108: 0x00008769, - 16109: 0x0000885A, - 16110: 0x00008905, - 16111: 0x0000890C, - 16112: 0x00008914, - 16113: 0x0000890B, - 16114: 0x00008917, - 16115: 0x00008918, - 16116: 0x00008919, - 16117: 0x00008906, - 16118: 0x00008916, - 16119: 0x00008911, - 16120: 0x0000890E, - 16121: 0x00008909, - 16122: 0x000089A2, - 16123: 0x000089A4, - 16124: 0x000089A3, - 16125: 0x000089ED, - 16126: 0x000089F0, - 16127: 0x000089EC, - 16128: 0x00008ACF, - 16129: 0x00008AC6, - 16130: 0x00008AB8, - 16131: 0x00008AD3, - 16132: 0x00008AD1, - 16133: 0x00008AD4, - 16134: 0x00008AD5, - 16135: 0x00008ABB, - 16136: 0x00008AD7, - 16137: 0x00008ABE, - 16138: 0x00008AC0, - 16139: 0x00008AC5, - 16140: 0x00008AD8, - 16141: 0x00008AC3, - 16142: 0x00008ABA, - 16143: 0x00008ABD, - 16144: 0x00008AD9, - 16145: 0x00008C3E, - 16146: 0x00008C4D, - 16147: 0x00008C8F, - 16148: 0x00008CE5, - 16149: 0x00008CDF, - 16150: 0x00008CD9, - 16151: 0x00008CE8, - 16152: 0x00008CDA, - 16153: 0x00008CDD, - 16154: 0x00008CE7, - 16155: 0x00008DA0, - 16156: 0x00008D9C, - 16157: 0x00008DA1, - 16158: 0x00008D9B, - 16159: 0x00008E20, - 16160: 0x00008E23, - 16161: 0x00008E25, - 16162: 0x00008E24, - 16163: 0x00008E2E, - 16164: 0x00008E15, - 16165: 0x00008E1B, - 16166: 0x00008E16, - 16167: 0x00008E11, - 16168: 0x00008E19, - 16169: 0x00008E26, - 16170: 0x00008E27, - 16171: 0x00008E14, - 16172: 0x00008E12, - 16173: 0x00008E18, - 16174: 0x00008E13, - 16175: 0x00008E1C, - 16176: 0x00008E17, - 16177: 0x00008E1A, - 16178: 0x00008F2C, - 16179: 0x00008F24, - 16180: 0x00008F18, - 16181: 0x00008F1A, - 16182: 0x00008F20, - 16183: 0x00008F23, - 16184: 0x00008F16, - 16185: 0x00008F17, - 16186: 0x00009073, - 16187: 0x00009070, - 16188: 0x0000906F, - 16189: 0x00009067, - 16190: 0x0000906B, - 16191: 0x0000912F, - 16192: 0x0000912B, - 16193: 0x00009129, - 16194: 0x0000912A, - 16195: 0x00009132, - 16196: 0x00009126, - 16197: 0x0000912E, - 16198: 0x00009185, - 16199: 0x00009186, - 16200: 0x0000918A, - 16201: 0x00009181, - 16202: 0x00009182, - 16203: 0x00009184, - 16204: 0x00009180, - 16205: 0x000092D0, - 16206: 0x000092C3, - 16207: 0x000092C4, - 16208: 0x000092C0, - 16209: 0x000092D9, - 16210: 0x000092B6, - 16211: 0x000092CF, - 16212: 0x000092F1, - 16213: 0x000092DF, - 16214: 0x000092D8, - 16215: 0x000092E9, - 16216: 0x000092D7, - 16217: 0x000092DD, - 16218: 0x000092CC, - 16219: 0x000092EF, - 16220: 0x000092C2, - 16221: 0x000092E8, - 16222: 0x000092CA, - 16223: 0x000092C8, - 16224: 0x000092CE, - 16225: 0x000092E6, - 16226: 0x000092CD, - 16227: 0x000092D5, - 16228: 0x000092C9, - 16229: 0x000092E0, - 16230: 0x000092DE, - 16231: 0x000092E7, - 16232: 0x000092D1, - 16233: 0x000092D3, - 16234: 0x000092B5, - 16235: 0x000092E1, - 16236: 0x000092C6, - 16237: 0x000092B4, - 16238: 0x0000957C, - 16239: 0x000095AC, - 16240: 0x000095AB, - 16241: 0x000095AE, - 16242: 0x000095B0, - 16243: 0x000096A4, - 16244: 0x000096A2, - 16245: 0x000096D3, - 16246: 0x00009705, - 16247: 0x00009708, - 16248: 0x00009702, - 16249: 0x0000975A, - 16250: 0x0000978A, - 16251: 0x0000978E, - 16252: 0x00009788, - 16253: 0x000097D0, - 16254: 0x000097CF, - 16255: 0x0000981E, - 16256: 0x0000981D, - 16257: 0x00009826, - 16258: 0x00009829, - 16259: 0x00009828, - 16260: 0x00009820, - 16261: 0x0000981B, - 16262: 0x00009827, - 16263: 0x000098B2, - 16264: 0x00009908, - 16265: 0x000098FA, - 16266: 0x00009911, - 16267: 0x00009914, - 16268: 0x00009916, - 16269: 0x00009917, - 16270: 0x00009915, - 16271: 0x000099DC, - 16272: 0x000099CD, - 16273: 0x000099CF, - 16274: 0x000099D3, - 16275: 0x000099D4, - 16276: 0x000099CE, - 16277: 0x000099C9, - 16278: 0x000099D6, - 16279: 0x000099D8, - 16280: 0x000099CB, - 16281: 0x000099D7, - 16282: 0x000099CC, - 16283: 0x00009AB3, - 16284: 0x00009AEC, - 16285: 0x00009AEB, - 16286: 0x00009AF3, - 16287: 0x00009AF2, - 16288: 0x00009AF1, - 16289: 0x00009B46, - 16290: 0x00009B43, - 16291: 0x00009B67, - 16292: 0x00009B74, - 16293: 0x00009B71, - 16294: 0x00009B66, - 16295: 0x00009B76, - 16296: 0x00009B75, - 16297: 0x00009B70, - 16298: 0x00009B68, - 16299: 0x00009B64, - 16300: 0x00009B6C, - 16301: 0x00009CFC, - 16302: 0x00009CFA, - 16303: 0x00009CFD, - 16304: 0x00009CFF, - 16305: 0x00009CF7, - 16306: 0x00009D07, - 16307: 0x00009D00, - 16308: 0x00009CF9, - 16309: 0x00009CFB, - 16310: 0x00009D08, - 16311: 0x00009D05, - 16312: 0x00009D04, - 16313: 0x00009E83, - 16314: 0x00009ED3, - 16315: 0x00009F0F, - 16316: 0x00009F10, - 16317: 0x0000511C, - 16318: 0x00005113, - 16319: 0x00005117, - 16320: 0x0000511A, - 16321: 0x00005111, - 16322: 0x000051DE, - 16323: 0x00005334, - 16324: 0x000053E1, - 16325: 0x00005670, - 16326: 0x00005660, - 16327: 0x0000566E, - 16328: 0x00005673, - 16329: 0x00005666, - 16330: 0x00005663, - 16331: 0x0000566D, - 16332: 0x00005672, - 16333: 0x0000565E, - 16334: 0x00005677, - 16335: 0x0000571C, - 16336: 0x0000571B, - 16337: 0x000058C8, - 16338: 0x000058BD, - 16339: 0x000058C9, - 16340: 0x000058BF, - 16341: 0x000058BA, - 16342: 0x000058C2, - 16343: 0x000058BC, - 16344: 0x000058C6, - 16345: 0x00005B17, - 16346: 0x00005B19, - 16347: 0x00005B1B, - 16348: 0x00005B21, - 16349: 0x00005B14, - 16350: 0x00005B13, - 16351: 0x00005B10, - 16352: 0x00005B16, - 16353: 0x00005B28, - 16354: 0x00005B1A, - 16355: 0x00005B20, - 16356: 0x00005B1E, - 16357: 0x00005BEF, - 16358: 0x00005DAC, - 16359: 0x00005DB1, - 16360: 0x00005DA9, - 16361: 0x00005DA7, - 16362: 0x00005DB5, - 16363: 0x00005DB0, - 16364: 0x00005DAE, - 16365: 0x00005DAA, - 16366: 0x00005DA8, - 16367: 0x00005DB2, - 16368: 0x00005DAD, - 16369: 0x00005DAF, - 16370: 0x00005DB4, - 16371: 0x00005E67, - 16372: 0x00005E68, - 16373: 0x00005E66, - 16374: 0x00005E6F, - 16375: 0x00005EE9, - 16376: 0x00005EE7, - 16377: 0x00005EE6, - 16378: 0x00005EE8, - 16379: 0x00005EE5, - 16380: 0x00005F4B, - 16381: 0x00005FBC, - 16382: 0x0000619D, - 16383: 0x000061A8, - 16384: 0x00006196, - 16385: 0x000061C5, - 16386: 0x000061B4, - 16387: 0x000061C6, - 16388: 0x000061C1, - 16389: 0x000061CC, - 16390: 0x000061BA, - 16391: 0x000061BF, - 16392: 0x000061B8, - 16393: 0x0000618C, - 16394: 0x000064D7, - 16395: 0x000064D6, - 16396: 0x000064D0, - 16397: 0x000064CF, - 16398: 0x000064C9, - 16399: 0x000064BD, - 16400: 0x00006489, - 16401: 0x000064C3, - 16402: 0x000064DB, - 16403: 0x000064F3, - 16404: 0x000064D9, - 16405: 0x00006533, - 16406: 0x0000657F, - 16407: 0x0000657C, - 16408: 0x000065A2, - 16409: 0x000066C8, - 16410: 0x000066BE, - 16411: 0x000066C0, - 16412: 0x000066CA, - 16413: 0x000066CB, - 16414: 0x000066CF, - 16415: 0x000066BD, - 16416: 0x000066BB, - 16417: 0x000066BA, - 16418: 0x000066CC, - 16419: 0x00006723, - 16420: 0x00006A34, - 16421: 0x00006A66, - 16422: 0x00006A49, - 16423: 0x00006A67, - 16424: 0x00006A32, - 16425: 0x00006A68, - 16426: 0x00006A3E, - 16427: 0x00006A5D, - 16428: 0x00006A6D, - 16429: 0x00006A76, - 16430: 0x00006A5B, - 16431: 0x00006A51, - 16432: 0x00006A28, - 16433: 0x00006A5A, - 16434: 0x00006A3B, - 16435: 0x00006A3F, - 16436: 0x00006A41, - 16437: 0x00006A6A, - 16438: 0x00006A64, - 16439: 0x00006A50, - 16440: 0x00006A4F, - 16441: 0x00006A54, - 16442: 0x00006A6F, - 16443: 0x00006A69, - 16444: 0x00006A60, - 16445: 0x00006A3C, - 16446: 0x00006A5E, - 16447: 0x00006A56, - 16448: 0x00006A55, - 16449: 0x00006A4D, - 16450: 0x00006A4E, - 16451: 0x00006A46, - 16452: 0x00006B55, - 16453: 0x00006B54, - 16454: 0x00006B56, - 16455: 0x00006BA7, - 16456: 0x00006BAA, - 16457: 0x00006BAB, - 16458: 0x00006BC8, - 16459: 0x00006BC7, - 16460: 0x00006C04, - 16461: 0x00006C03, - 16462: 0x00006C06, - 16463: 0x00006FAD, - 16464: 0x00006FCB, - 16465: 0x00006FA3, - 16466: 0x00006FC7, - 16467: 0x00006FBC, - 16468: 0x00006FCE, - 16469: 0x00006FC8, - 16470: 0x00006F5E, - 16471: 0x00006FC4, - 16472: 0x00006FBD, - 16473: 0x00006F9E, - 16474: 0x00006FCA, - 16475: 0x00006FA8, - 16476: 0x00007004, - 16477: 0x00006FA5, - 16478: 0x00006FAE, - 16479: 0x00006FBA, - 16480: 0x00006FAC, - 16481: 0x00006FAA, - 16482: 0x00006FCF, - 16483: 0x00006FBF, - 16484: 0x00006FB8, - 16485: 0x00006FA2, - 16486: 0x00006FC9, - 16487: 0x00006FAB, - 16488: 0x00006FCD, - 16489: 0x00006FAF, - 16490: 0x00006FB2, - 16491: 0x00006FB0, - 16492: 0x000071C5, - 16493: 0x000071C2, - 16494: 0x000071BF, - 16495: 0x000071B8, - 16496: 0x000071D6, - 16497: 0x000071C0, - 16498: 0x000071C1, - 16499: 0x000071CB, - 16500: 0x000071D4, - 16501: 0x000071CA, - 16502: 0x000071C7, - 16503: 0x000071CF, - 16504: 0x000071BD, - 16505: 0x000071D8, - 16506: 0x000071BC, - 16507: 0x000071C6, - 16508: 0x000071DA, - 16509: 0x000071DB, - 16510: 0x0000729D, - 16511: 0x0000729E, - 16512: 0x00007369, - 16513: 0x00007366, - 16514: 0x00007367, - 16515: 0x0000736C, - 16516: 0x00007365, - 16517: 0x0000736B, - 16518: 0x0000736A, - 16519: 0x0000747F, - 16520: 0x0000749A, - 16521: 0x000074A0, - 16522: 0x00007494, - 16523: 0x00007492, - 16524: 0x00007495, - 16525: 0x000074A1, - 16526: 0x0000750B, - 16527: 0x00007580, - 16528: 0x0000762F, - 16529: 0x0000762D, - 16530: 0x00007631, - 16531: 0x0000763D, - 16532: 0x00007633, - 16533: 0x0000763C, - 16534: 0x00007635, - 16535: 0x00007632, - 16536: 0x00007630, - 16537: 0x000076BB, - 16538: 0x000076E6, - 16539: 0x0000779A, - 16540: 0x0000779D, - 16541: 0x000077A1, - 16542: 0x0000779C, - 16543: 0x0000779B, - 16544: 0x000077A2, - 16545: 0x000077A3, - 16546: 0x00007795, - 16547: 0x00007799, - 16548: 0x00007797, - 16549: 0x000078DD, - 16550: 0x000078E9, - 16551: 0x000078E5, - 16552: 0x000078EA, - 16553: 0x000078DE, - 16554: 0x000078E3, - 16555: 0x000078DB, - 16556: 0x000078E1, - 16557: 0x000078E2, - 16558: 0x000078ED, - 16559: 0x000078DF, - 16560: 0x000078E0, - 16561: 0x000079A4, - 16562: 0x00007A44, - 16563: 0x00007A48, - 16564: 0x00007A47, - 16565: 0x00007AB6, - 16566: 0x00007AB8, - 16567: 0x00007AB5, - 16568: 0x00007AB1, - 16569: 0x00007AB7, - 16570: 0x00007BDE, - 16571: 0x00007BE3, - 16572: 0x00007BE7, - 16573: 0x00007BDD, - 16574: 0x00007BD5, - 16575: 0x00007BE5, - 16576: 0x00007BDA, - 16577: 0x00007BE8, - 16578: 0x00007BF9, - 16579: 0x00007BD4, - 16580: 0x00007BEA, - 16581: 0x00007BE2, - 16582: 0x00007BDC, - 16583: 0x00007BEB, - 16584: 0x00007BD8, - 16585: 0x00007BDF, - 16586: 0x00007CD2, - 16587: 0x00007CD4, - 16588: 0x00007CD7, - 16589: 0x00007CD0, - 16590: 0x00007CD1, - 16591: 0x00007E12, - 16592: 0x00007E21, - 16593: 0x00007E17, - 16594: 0x00007E0C, - 16595: 0x00007E1F, - 16596: 0x00007E20, - 16597: 0x00007E13, - 16598: 0x00007E0E, - 16599: 0x00007E1C, - 16600: 0x00007E15, - 16601: 0x00007E1A, - 16602: 0x00007E22, - 16603: 0x00007E0B, - 16604: 0x00007E0F, - 16605: 0x00007E16, - 16606: 0x00007E0D, - 16607: 0x00007E14, - 16608: 0x00007E25, - 16609: 0x00007E24, - 16610: 0x00007F43, - 16611: 0x00007F7B, - 16612: 0x00007F7C, - 16613: 0x00007F7A, - 16614: 0x00007FB1, - 16615: 0x00007FEF, - 16616: 0x0000802A, - 16617: 0x00008029, - 16618: 0x0000806C, - 16619: 0x000081B1, - 16620: 0x000081A6, - 16621: 0x000081AE, - 16622: 0x000081B9, - 16623: 0x000081B5, - 16624: 0x000081AB, - 16625: 0x000081B0, - 16626: 0x000081AC, - 16627: 0x000081B4, - 16628: 0x000081B2, - 16629: 0x000081B7, - 16630: 0x000081A7, - 16631: 0x000081F2, - 16632: 0x00008255, - 16633: 0x00008256, - 16634: 0x00008257, - 16635: 0x00008556, - 16636: 0x00008545, - 16637: 0x0000856B, - 16638: 0x0000854D, - 16639: 0x00008553, - 16640: 0x00008561, - 16641: 0x00008558, - 16642: 0x00008540, - 16643: 0x00008546, - 16644: 0x00008564, - 16645: 0x00008541, - 16646: 0x00008562, - 16647: 0x00008544, - 16648: 0x00008551, - 16649: 0x00008547, - 16650: 0x00008563, - 16651: 0x0000853E, - 16652: 0x0000855B, - 16653: 0x00008571, - 16654: 0x0000854E, - 16655: 0x0000856E, - 16656: 0x00008575, - 16657: 0x00008555, - 16658: 0x00008567, - 16659: 0x00008560, - 16660: 0x0000858C, - 16661: 0x00008566, - 16662: 0x0000855D, - 16663: 0x00008554, - 16664: 0x00008565, - 16665: 0x0000856C, - 16666: 0x00008663, - 16667: 0x00008665, - 16668: 0x00008664, - 16669: 0x0000879B, - 16670: 0x0000878F, - 16671: 0x00008797, - 16672: 0x00008793, - 16673: 0x00008792, - 16674: 0x00008788, - 16675: 0x00008781, - 16676: 0x00008796, - 16677: 0x00008798, - 16678: 0x00008779, - 16679: 0x00008787, - 16680: 0x000087A3, - 16681: 0x00008785, - 16682: 0x00008790, - 16683: 0x00008791, - 16684: 0x0000879D, - 16685: 0x00008784, - 16686: 0x00008794, - 16687: 0x0000879C, - 16688: 0x0000879A, - 16689: 0x00008789, - 16690: 0x0000891E, - 16691: 0x00008926, - 16692: 0x00008930, - 16693: 0x0000892D, - 16694: 0x0000892E, - 16695: 0x00008927, - 16696: 0x00008931, - 16697: 0x00008922, - 16698: 0x00008929, - 16699: 0x00008923, - 16700: 0x0000892F, - 16701: 0x0000892C, - 16702: 0x0000891F, - 16703: 0x000089F1, - 16704: 0x00008AE0, - 16705: 0x00008AE2, - 16706: 0x00008AF2, - 16707: 0x00008AF4, - 16708: 0x00008AF5, - 16709: 0x00008ADD, - 16710: 0x00008B14, - 16711: 0x00008AE4, - 16712: 0x00008ADF, - 16713: 0x00008AF0, - 16714: 0x00008AC8, - 16715: 0x00008ADE, - 16716: 0x00008AE1, - 16717: 0x00008AE8, - 16718: 0x00008AFF, - 16719: 0x00008AEF, - 16720: 0x00008AFB, - 16721: 0x00008C91, - 16722: 0x00008C92, - 16723: 0x00008C90, - 16724: 0x00008CF5, - 16725: 0x00008CEE, - 16726: 0x00008CF1, - 16727: 0x00008CF0, - 16728: 0x00008CF3, - 16729: 0x00008D6C, - 16730: 0x00008D6E, - 16731: 0x00008DA5, - 16732: 0x00008DA7, - 16733: 0x00008E33, - 16734: 0x00008E3E, - 16735: 0x00008E38, - 16736: 0x00008E40, - 16737: 0x00008E45, - 16738: 0x00008E36, - 16739: 0x00008E3C, - 16740: 0x00008E3D, - 16741: 0x00008E41, - 16742: 0x00008E30, - 16743: 0x00008E3F, - 16744: 0x00008EBD, - 16745: 0x00008F36, - 16746: 0x00008F2E, - 16747: 0x00008F35, - 16748: 0x00008F32, - 16749: 0x00008F39, - 16750: 0x00008F37, - 16751: 0x00008F34, - 16752: 0x00009076, - 16753: 0x00009079, - 16754: 0x0000907B, - 16755: 0x00009086, - 16756: 0x000090FA, - 16757: 0x00009133, - 16758: 0x00009135, - 16759: 0x00009136, - 16760: 0x00009193, - 16761: 0x00009190, - 16762: 0x00009191, - 16763: 0x0000918D, - 16764: 0x0000918F, - 16765: 0x00009327, - 16766: 0x0000931E, - 16767: 0x00009308, - 16768: 0x0000931F, - 16769: 0x00009306, - 16770: 0x0000930F, - 16771: 0x0000937A, - 16772: 0x00009338, - 16773: 0x0000933C, - 16774: 0x0000931B, - 16775: 0x00009323, - 16776: 0x00009312, - 16777: 0x00009301, - 16778: 0x00009346, - 16779: 0x0000932D, - 16780: 0x0000930E, - 16781: 0x0000930D, - 16782: 0x000092CB, - 16783: 0x0000931D, - 16784: 0x000092FA, - 16785: 0x00009325, - 16786: 0x00009313, - 16787: 0x000092F9, - 16788: 0x000092F7, - 16789: 0x00009334, - 16790: 0x00009302, - 16791: 0x00009324, - 16792: 0x000092FF, - 16793: 0x00009329, - 16794: 0x00009339, - 16795: 0x00009335, - 16796: 0x0000932A, - 16797: 0x00009314, - 16798: 0x0000930C, - 16799: 0x0000930B, - 16800: 0x000092FE, - 16801: 0x00009309, - 16802: 0x00009300, - 16803: 0x000092FB, - 16804: 0x00009316, - 16805: 0x000095BC, - 16806: 0x000095CD, - 16807: 0x000095BE, - 16808: 0x000095B9, - 16809: 0x000095BA, - 16810: 0x000095B6, - 16811: 0x000095BF, - 16812: 0x000095B5, - 16813: 0x000095BD, - 16814: 0x000096A9, - 16815: 0x000096D4, - 16816: 0x0000970B, - 16817: 0x00009712, - 16818: 0x00009710, - 16819: 0x00009799, - 16820: 0x00009797, - 16821: 0x00009794, - 16822: 0x000097F0, - 16823: 0x000097F8, - 16824: 0x00009835, - 16825: 0x0000982F, - 16826: 0x00009832, - 16827: 0x00009924, - 16828: 0x0000991F, - 16829: 0x00009927, - 16830: 0x00009929, - 16831: 0x0000999E, - 16832: 0x000099EE, - 16833: 0x000099EC, - 16834: 0x000099E5, - 16835: 0x000099E4, - 16836: 0x000099F0, - 16837: 0x000099E3, - 16838: 0x000099EA, - 16839: 0x000099E9, - 16840: 0x000099E7, - 16841: 0x00009AB9, - 16842: 0x00009ABF, - 16843: 0x00009AB4, - 16844: 0x00009ABB, - 16845: 0x00009AF6, - 16846: 0x00009AFA, - 16847: 0x00009AF9, - 16848: 0x00009AF7, - 16849: 0x00009B33, - 16850: 0x00009B80, - 16851: 0x00009B85, - 16852: 0x00009B87, - 16853: 0x00009B7C, - 16854: 0x00009B7E, - 16855: 0x00009B7B, - 16856: 0x00009B82, - 16857: 0x00009B93, - 16858: 0x00009B92, - 16859: 0x00009B90, - 16860: 0x00009B7A, - 16861: 0x00009B95, - 16862: 0x00009B7D, - 16863: 0x00009B88, - 16864: 0x00009D25, - 16865: 0x00009D17, - 16866: 0x00009D20, - 16867: 0x00009D1E, - 16868: 0x00009D14, - 16869: 0x00009D29, - 16870: 0x00009D1D, - 16871: 0x00009D18, - 16872: 0x00009D22, - 16873: 0x00009D10, - 16874: 0x00009D19, - 16875: 0x00009D1F, - 16876: 0x00009E88, - 16877: 0x00009E86, - 16878: 0x00009E87, - 16879: 0x00009EAE, - 16880: 0x00009EAD, - 16881: 0x00009ED5, - 16882: 0x00009ED6, - 16883: 0x00009EFA, - 16884: 0x00009F12, - 16885: 0x00009F3D, - 16886: 0x00005126, - 16887: 0x00005125, - 16888: 0x00005122, - 16889: 0x00005124, - 16890: 0x00005120, - 16891: 0x00005129, - 16892: 0x000052F4, - 16893: 0x00005693, - 16894: 0x0000568C, - 16895: 0x0000568D, - 16896: 0x00005686, - 16897: 0x00005684, - 16898: 0x00005683, - 16899: 0x0000567E, - 16900: 0x00005682, - 16901: 0x0000567F, - 16902: 0x00005681, - 16903: 0x000058D6, - 16904: 0x000058D4, - 16905: 0x000058CF, - 16906: 0x000058D2, - 16907: 0x00005B2D, - 16908: 0x00005B25, - 16909: 0x00005B32, - 16910: 0x00005B23, - 16911: 0x00005B2C, - 16912: 0x00005B27, - 16913: 0x00005B26, - 16914: 0x00005B2F, - 16915: 0x00005B2E, - 16916: 0x00005B7B, - 16917: 0x00005BF1, - 16918: 0x00005BF2, - 16919: 0x00005DB7, - 16920: 0x00005E6C, - 16921: 0x00005E6A, - 16922: 0x00005FBE, - 16923: 0x00005FBB, - 16924: 0x000061C3, - 16925: 0x000061B5, - 16926: 0x000061BC, - 16927: 0x000061E7, - 16928: 0x000061E0, - 16929: 0x000061E5, - 16930: 0x000061E4, - 16931: 0x000061E8, - 16932: 0x000061DE, - 16933: 0x000064EF, - 16934: 0x000064E9, - 16935: 0x000064E3, - 16936: 0x000064EB, - 16937: 0x000064E4, - 16938: 0x000064E8, - 16939: 0x00006581, - 16940: 0x00006580, - 16941: 0x000065B6, - 16942: 0x000065DA, - 16943: 0x000066D2, - 16944: 0x00006A8D, - 16945: 0x00006A96, - 16946: 0x00006A81, - 16947: 0x00006AA5, - 16948: 0x00006A89, - 16949: 0x00006A9F, - 16950: 0x00006A9B, - 16951: 0x00006AA1, - 16952: 0x00006A9E, - 16953: 0x00006A87, - 16954: 0x00006A93, - 16955: 0x00006A8E, - 16956: 0x00006A95, - 16957: 0x00006A83, - 16958: 0x00006AA8, - 16959: 0x00006AA4, - 16960: 0x00006A91, - 16961: 0x00006A7F, - 16962: 0x00006AA6, - 16963: 0x00006A9A, - 16964: 0x00006A85, - 16965: 0x00006A8C, - 16966: 0x00006A92, - 16967: 0x00006B5B, - 16968: 0x00006BAD, - 16969: 0x00006C09, - 16970: 0x00006FCC, - 16971: 0x00006FA9, - 16972: 0x00006FF4, - 16973: 0x00006FD4, - 16974: 0x00006FE3, - 16975: 0x00006FDC, - 16976: 0x00006FED, - 16977: 0x00006FE7, - 16978: 0x00006FE6, - 16979: 0x00006FDE, - 16980: 0x00006FF2, - 16981: 0x00006FDD, - 16982: 0x00006FE2, - 16983: 0x00006FE8, - 16984: 0x000071E1, - 16985: 0x000071F1, - 16986: 0x000071E8, - 16987: 0x000071F2, - 16988: 0x000071E4, - 16989: 0x000071F0, - 16990: 0x000071E2, - 16991: 0x00007373, - 16992: 0x0000736E, - 16993: 0x0000736F, - 16994: 0x00007497, - 16995: 0x000074B2, - 16996: 0x000074AB, - 16997: 0x00007490, - 16998: 0x000074AA, - 16999: 0x000074AD, - 17000: 0x000074B1, - 17001: 0x000074A5, - 17002: 0x000074AF, - 17003: 0x00007510, - 17004: 0x00007511, - 17005: 0x00007512, - 17006: 0x0000750F, - 17007: 0x00007584, - 17008: 0x00007643, - 17009: 0x00007648, - 17010: 0x00007649, - 17011: 0x00007647, - 17012: 0x000076A4, - 17013: 0x000076E9, - 17014: 0x000077B5, - 17015: 0x000077AB, - 17016: 0x000077B2, - 17017: 0x000077B7, - 17018: 0x000077B6, - 17019: 0x000077B4, - 17020: 0x000077B1, - 17021: 0x000077A8, - 17022: 0x000077F0, - 17023: 0x000078F3, - 17024: 0x000078FD, - 17025: 0x00007902, - 17026: 0x000078FB, - 17027: 0x000078FC, - 17028: 0x000078F2, - 17029: 0x00007905, - 17030: 0x000078F9, - 17031: 0x000078FE, - 17032: 0x00007904, - 17033: 0x000079AB, - 17034: 0x000079A8, - 17035: 0x00007A5C, - 17036: 0x00007A5B, - 17037: 0x00007A56, - 17038: 0x00007A58, - 17039: 0x00007A54, - 17040: 0x00007A5A, - 17041: 0x00007ABE, - 17042: 0x00007AC0, - 17043: 0x00007AC1, - 17044: 0x00007C05, - 17045: 0x00007C0F, - 17046: 0x00007BF2, - 17047: 0x00007C00, - 17048: 0x00007BFF, - 17049: 0x00007BFB, - 17050: 0x00007C0E, - 17051: 0x00007BF4, - 17052: 0x00007C0B, - 17053: 0x00007BF3, - 17054: 0x00007C02, - 17055: 0x00007C09, - 17056: 0x00007C03, - 17057: 0x00007C01, - 17058: 0x00007BF8, - 17059: 0x00007BFD, - 17060: 0x00007C06, - 17061: 0x00007BF0, - 17062: 0x00007BF1, - 17063: 0x00007C10, - 17064: 0x00007C0A, - 17065: 0x00007CE8, - 17066: 0x00007E2D, - 17067: 0x00007E3C, - 17068: 0x00007E42, - 17069: 0x00007E33, - 17070: 0x00009848, - 17071: 0x00007E38, - 17072: 0x00007E2A, - 17073: 0x00007E49, - 17074: 0x00007E40, - 17075: 0x00007E47, - 17076: 0x00007E29, - 17077: 0x00007E4C, - 17078: 0x00007E30, - 17079: 0x00007E3B, - 17080: 0x00007E36, - 17081: 0x00007E44, - 17082: 0x00007E3A, - 17083: 0x00007F45, - 17084: 0x00007F7F, - 17085: 0x00007F7E, - 17086: 0x00007F7D, - 17087: 0x00007FF4, - 17088: 0x00007FF2, - 17089: 0x0000802C, - 17090: 0x000081BB, - 17091: 0x000081C4, - 17092: 0x000081CC, - 17093: 0x000081CA, - 17094: 0x000081C5, - 17095: 0x000081C7, - 17096: 0x000081BC, - 17097: 0x000081E9, - 17098: 0x0000825B, - 17099: 0x0000825A, - 17100: 0x0000825C, - 17101: 0x00008583, - 17102: 0x00008580, - 17103: 0x0000858F, - 17104: 0x000085A7, - 17105: 0x00008595, - 17106: 0x000085A0, - 17107: 0x0000858B, - 17108: 0x000085A3, - 17109: 0x0000857B, - 17110: 0x000085A4, - 17111: 0x0000859A, - 17112: 0x0000859E, - 17113: 0x00008577, - 17114: 0x0000857C, - 17115: 0x00008589, - 17116: 0x000085A1, - 17117: 0x0000857A, - 17118: 0x00008578, - 17119: 0x00008557, - 17120: 0x0000858E, - 17121: 0x00008596, - 17122: 0x00008586, - 17123: 0x0000858D, - 17124: 0x00008599, - 17125: 0x0000859D, - 17126: 0x00008581, - 17127: 0x000085A2, - 17128: 0x00008582, - 17129: 0x00008588, - 17130: 0x00008585, - 17131: 0x00008579, - 17132: 0x00008576, - 17133: 0x00008598, - 17134: 0x00008590, - 17135: 0x0000859F, - 17136: 0x00008668, - 17137: 0x000087BE, - 17138: 0x000087AA, - 17139: 0x000087AD, - 17140: 0x000087C5, - 17141: 0x000087B0, - 17142: 0x000087AC, - 17143: 0x000087B9, - 17144: 0x000087B5, - 17145: 0x000087BC, - 17146: 0x000087AE, - 17147: 0x000087C9, - 17148: 0x000087C3, - 17149: 0x000087C2, - 17150: 0x000087CC, - 17151: 0x000087B7, - 17152: 0x000087AF, - 17153: 0x000087C4, - 17154: 0x000087CA, - 17155: 0x000087B4, - 17156: 0x000087B6, - 17157: 0x000087BF, - 17158: 0x000087B8, - 17159: 0x000087BD, - 17160: 0x000087DE, - 17161: 0x000087B2, - 17162: 0x00008935, - 17163: 0x00008933, - 17164: 0x0000893C, - 17165: 0x0000893E, - 17166: 0x00008941, - 17167: 0x00008952, - 17168: 0x00008937, - 17169: 0x00008942, - 17170: 0x000089AD, - 17171: 0x000089AF, - 17172: 0x000089AE, - 17173: 0x000089F2, - 17174: 0x000089F3, - 17175: 0x00008B1E, - 17176: 0x00008B18, - 17177: 0x00008B16, - 17178: 0x00008B11, - 17179: 0x00008B05, - 17180: 0x00008B0B, - 17181: 0x00008B22, - 17182: 0x00008B0F, - 17183: 0x00008B12, - 17184: 0x00008B15, - 17185: 0x00008B07, - 17186: 0x00008B0D, - 17187: 0x00008B08, - 17188: 0x00008B06, - 17189: 0x00008B1C, - 17190: 0x00008B13, - 17191: 0x00008B1A, - 17192: 0x00008C4F, - 17193: 0x00008C70, - 17194: 0x00008C72, - 17195: 0x00008C71, - 17196: 0x00008C6F, - 17197: 0x00008C95, - 17198: 0x00008C94, - 17199: 0x00008CF9, - 17200: 0x00008D6F, - 17201: 0x00008E4E, - 17202: 0x00008E4D, - 17203: 0x00008E53, - 17204: 0x00008E50, - 17205: 0x00008E4C, - 17206: 0x00008E47, - 17207: 0x00008F43, - 17208: 0x00008F40, - 17209: 0x00009085, - 17210: 0x0000907E, - 17211: 0x00009138, - 17212: 0x0000919A, - 17213: 0x000091A2, - 17214: 0x0000919B, - 17215: 0x00009199, - 17216: 0x0000919F, - 17217: 0x000091A1, - 17218: 0x0000919D, - 17219: 0x000091A0, - 17220: 0x000093A1, - 17221: 0x00009383, - 17222: 0x000093AF, - 17223: 0x00009364, - 17224: 0x00009356, - 17225: 0x00009347, - 17226: 0x0000937C, - 17227: 0x00009358, - 17228: 0x0000935C, - 17229: 0x00009376, - 17230: 0x00009349, - 17231: 0x00009350, - 17232: 0x00009351, - 17233: 0x00009360, - 17234: 0x0000936D, - 17235: 0x0000938F, - 17236: 0x0000934C, - 17237: 0x0000936A, - 17238: 0x00009379, - 17239: 0x00009357, - 17240: 0x00009355, - 17241: 0x00009352, - 17242: 0x0000934F, - 17243: 0x00009371, - 17244: 0x00009377, - 17245: 0x0000937B, - 17246: 0x00009361, - 17247: 0x0000935E, - 17248: 0x00009363, - 17249: 0x00009367, - 17250: 0x00009380, - 17251: 0x0000934E, - 17252: 0x00009359, - 17253: 0x000095C7, - 17254: 0x000095C0, - 17255: 0x000095C9, - 17256: 0x000095C3, - 17257: 0x000095C5, - 17258: 0x000095B7, - 17259: 0x000096AE, - 17260: 0x000096B0, - 17261: 0x000096AC, - 17262: 0x00009720, - 17263: 0x0000971F, - 17264: 0x00009718, - 17265: 0x0000971D, - 17266: 0x00009719, - 17267: 0x0000979A, - 17268: 0x000097A1, - 17269: 0x0000979C, - 17270: 0x0000979E, - 17271: 0x0000979D, - 17272: 0x000097D5, - 17273: 0x000097D4, - 17274: 0x000097F1, - 17275: 0x00009841, - 17276: 0x00009844, - 17277: 0x0000984A, - 17278: 0x00009849, - 17279: 0x00009845, - 17280: 0x00009843, - 17281: 0x00009925, - 17282: 0x0000992B, - 17283: 0x0000992C, - 17284: 0x0000992A, - 17285: 0x00009933, - 17286: 0x00009932, - 17287: 0x0000992F, - 17288: 0x0000992D, - 17289: 0x00009931, - 17290: 0x00009930, - 17291: 0x00009998, - 17292: 0x000099A3, - 17293: 0x000099A1, - 17294: 0x00009A02, - 17295: 0x000099FA, - 17296: 0x000099F4, - 17297: 0x000099F7, - 17298: 0x000099F9, - 17299: 0x000099F8, - 17300: 0x000099F6, - 17301: 0x000099FB, - 17302: 0x000099FD, - 17303: 0x000099FE, - 17304: 0x000099FC, - 17305: 0x00009A03, - 17306: 0x00009ABE, - 17307: 0x00009AFE, - 17308: 0x00009AFD, - 17309: 0x00009B01, - 17310: 0x00009AFC, - 17311: 0x00009B48, - 17312: 0x00009B9A, - 17313: 0x00009BA8, - 17314: 0x00009B9E, - 17315: 0x00009B9B, - 17316: 0x00009BA6, - 17317: 0x00009BA1, - 17318: 0x00009BA5, - 17319: 0x00009BA4, - 17320: 0x00009B86, - 17321: 0x00009BA2, - 17322: 0x00009BA0, - 17323: 0x00009BAF, - 17324: 0x00009D33, - 17325: 0x00009D41, - 17326: 0x00009D67, - 17327: 0x00009D36, - 17328: 0x00009D2E, - 17329: 0x00009D2F, - 17330: 0x00009D31, - 17331: 0x00009D38, - 17332: 0x00009D30, - 17333: 0x00009D45, - 17334: 0x00009D42, - 17335: 0x00009D43, - 17336: 0x00009D3E, - 17337: 0x00009D37, - 17338: 0x00009D40, - 17339: 0x00009D3D, - 17340: 0x00007FF5, - 17341: 0x00009D2D, - 17342: 0x00009E8A, - 17343: 0x00009E89, - 17344: 0x00009E8D, - 17345: 0x00009EB0, - 17346: 0x00009EC8, - 17347: 0x00009EDA, - 17348: 0x00009EFB, - 17349: 0x00009EFF, - 17350: 0x00009F24, - 17351: 0x00009F23, - 17352: 0x00009F22, - 17353: 0x00009F54, - 17354: 0x00009FA0, - 17355: 0x00005131, - 17356: 0x0000512D, - 17357: 0x0000512E, - 17358: 0x00005698, - 17359: 0x0000569C, - 17360: 0x00005697, - 17361: 0x0000569A, - 17362: 0x0000569D, - 17363: 0x00005699, - 17364: 0x00005970, - 17365: 0x00005B3C, - 17366: 0x00005C69, - 17367: 0x00005C6A, - 17368: 0x00005DC0, - 17369: 0x00005E6D, - 17370: 0x00005E6E, - 17371: 0x000061D8, - 17372: 0x000061DF, - 17373: 0x000061ED, - 17374: 0x000061EE, - 17375: 0x000061F1, - 17376: 0x000061EA, - 17377: 0x000061F0, - 17378: 0x000061EB, - 17379: 0x000061D6, - 17380: 0x000061E9, - 17381: 0x000064FF, - 17382: 0x00006504, - 17383: 0x000064FD, - 17384: 0x000064F8, - 17385: 0x00006501, - 17386: 0x00006503, - 17387: 0x000064FC, - 17388: 0x00006594, - 17389: 0x000065DB, - 17390: 0x000066DA, - 17391: 0x000066DB, - 17392: 0x000066D8, - 17393: 0x00006AC5, - 17394: 0x00006AB9, - 17395: 0x00006ABD, - 17396: 0x00006AE1, - 17397: 0x00006AC6, - 17398: 0x00006ABA, - 17399: 0x00006AB6, - 17400: 0x00006AB7, - 17401: 0x00006AC7, - 17402: 0x00006AB4, - 17403: 0x00006AAD, - 17404: 0x00006B5E, - 17405: 0x00006BC9, - 17406: 0x00006C0B, - 17407: 0x00007007, - 17408: 0x0000700C, - 17409: 0x0000700D, - 17410: 0x00007001, - 17411: 0x00007005, - 17412: 0x00007014, - 17413: 0x0000700E, - 17414: 0x00006FFF, - 17415: 0x00007000, - 17416: 0x00006FFB, - 17417: 0x00007026, - 17418: 0x00006FFC, - 17419: 0x00006FF7, - 17420: 0x0000700A, - 17421: 0x00007201, - 17422: 0x000071FF, - 17423: 0x000071F9, - 17424: 0x00007203, - 17425: 0x000071FD, - 17426: 0x00007376, - 17427: 0x000074B8, - 17428: 0x000074C0, - 17429: 0x000074B5, - 17430: 0x000074C1, - 17431: 0x000074BE, - 17432: 0x000074B6, - 17433: 0x000074BB, - 17434: 0x000074C2, - 17435: 0x00007514, - 17436: 0x00007513, - 17437: 0x0000765C, - 17438: 0x00007664, - 17439: 0x00007659, - 17440: 0x00007650, - 17441: 0x00007653, - 17442: 0x00007657, - 17443: 0x0000765A, - 17444: 0x000076A6, - 17445: 0x000076BD, - 17446: 0x000076EC, - 17447: 0x000077C2, - 17448: 0x000077BA, - 17449: 0x000078FF, - 17450: 0x0000790C, - 17451: 0x00007913, - 17452: 0x00007914, - 17453: 0x00007909, - 17454: 0x00007910, - 17455: 0x00007912, - 17456: 0x00007911, - 17457: 0x000079AD, - 17458: 0x000079AC, - 17459: 0x00007A5F, - 17460: 0x00007C1C, - 17461: 0x00007C29, - 17462: 0x00007C19, - 17463: 0x00007C20, - 17464: 0x00007C1F, - 17465: 0x00007C2D, - 17466: 0x00007C1D, - 17467: 0x00007C26, - 17468: 0x00007C28, - 17469: 0x00007C22, - 17470: 0x00007C25, - 17471: 0x00007C30, - 17472: 0x00007E5C, - 17473: 0x00007E50, - 17474: 0x00007E56, - 17475: 0x00007E63, - 17476: 0x00007E58, - 17477: 0x00007E62, - 17478: 0x00007E5F, - 17479: 0x00007E51, - 17480: 0x00007E60, - 17481: 0x00007E57, - 17482: 0x00007E53, - 17483: 0x00007FB5, - 17484: 0x00007FB3, - 17485: 0x00007FF7, - 17486: 0x00007FF8, - 17487: 0x00008075, - 17488: 0x000081D1, - 17489: 0x000081D2, - 17490: 0x000081D0, - 17491: 0x0000825F, - 17492: 0x0000825E, - 17493: 0x000085B4, - 17494: 0x000085C6, - 17495: 0x000085C0, - 17496: 0x000085C3, - 17497: 0x000085C2, - 17498: 0x000085B3, - 17499: 0x000085B5, - 17500: 0x000085BD, - 17501: 0x000085C7, - 17502: 0x000085C4, - 17503: 0x000085BF, - 17504: 0x000085CB, - 17505: 0x000085CE, - 17506: 0x000085C8, - 17507: 0x000085C5, - 17508: 0x000085B1, - 17509: 0x000085B6, - 17510: 0x000085D2, - 17511: 0x00008624, - 17512: 0x000085B8, - 17513: 0x000085B7, - 17514: 0x000085BE, - 17515: 0x00008669, - 17516: 0x000087E7, - 17517: 0x000087E6, - 17518: 0x000087E2, - 17519: 0x000087DB, - 17520: 0x000087EB, - 17521: 0x000087EA, - 17522: 0x000087E5, - 17523: 0x000087DF, - 17524: 0x000087F3, - 17525: 0x000087E4, - 17526: 0x000087D4, - 17527: 0x000087DC, - 17528: 0x000087D3, - 17529: 0x000087ED, - 17530: 0x000087D8, - 17531: 0x000087E3, - 17532: 0x000087A4, - 17533: 0x000087D7, - 17534: 0x000087D9, - 17535: 0x00008801, - 17536: 0x000087F4, - 17537: 0x000087E8, - 17538: 0x000087DD, - 17539: 0x00008953, - 17540: 0x0000894B, - 17541: 0x0000894F, - 17542: 0x0000894C, - 17543: 0x00008946, - 17544: 0x00008950, - 17545: 0x00008951, - 17546: 0x00008949, - 17547: 0x00008B2A, - 17548: 0x00008B27, - 17549: 0x00008B23, - 17550: 0x00008B33, - 17551: 0x00008B30, - 17552: 0x00008B35, - 17553: 0x00008B47, - 17554: 0x00008B2F, - 17555: 0x00008B3C, - 17556: 0x00008B3E, - 17557: 0x00008B31, - 17558: 0x00008B25, - 17559: 0x00008B37, - 17560: 0x00008B26, - 17561: 0x00008B36, - 17562: 0x00008B2E, - 17563: 0x00008B24, - 17564: 0x00008B3B, - 17565: 0x00008B3D, - 17566: 0x00008B3A, - 17567: 0x00008C42, - 17568: 0x00008C75, - 17569: 0x00008C99, - 17570: 0x00008C98, - 17571: 0x00008C97, - 17572: 0x00008CFE, - 17573: 0x00008D04, - 17574: 0x00008D02, - 17575: 0x00008D00, - 17576: 0x00008E5C, - 17577: 0x00008E62, - 17578: 0x00008E60, - 17579: 0x00008E57, - 17580: 0x00008E56, - 17581: 0x00008E5E, - 17582: 0x00008E65, - 17583: 0x00008E67, - 17584: 0x00008E5B, - 17585: 0x00008E5A, - 17586: 0x00008E61, - 17587: 0x00008E5D, - 17588: 0x00008E69, - 17589: 0x00008E54, - 17590: 0x00008F46, - 17591: 0x00008F47, - 17592: 0x00008F48, - 17593: 0x00008F4B, - 17594: 0x00009128, - 17595: 0x0000913A, - 17596: 0x0000913B, - 17597: 0x0000913E, - 17598: 0x000091A8, - 17599: 0x000091A5, - 17600: 0x000091A7, - 17601: 0x000091AF, - 17602: 0x000091AA, - 17603: 0x000093B5, - 17604: 0x0000938C, - 17605: 0x00009392, - 17606: 0x000093B7, - 17607: 0x0000939B, - 17608: 0x0000939D, - 17609: 0x00009389, - 17610: 0x000093A7, - 17611: 0x0000938E, - 17612: 0x000093AA, - 17613: 0x0000939E, - 17614: 0x000093A6, - 17615: 0x00009395, - 17616: 0x00009388, - 17617: 0x00009399, - 17618: 0x0000939F, - 17619: 0x0000938D, - 17620: 0x000093B1, - 17621: 0x00009391, - 17622: 0x000093B2, - 17623: 0x000093A4, - 17624: 0x000093A8, - 17625: 0x000093B4, - 17626: 0x000093A3, - 17627: 0x000093A5, - 17628: 0x000095D2, - 17629: 0x000095D3, - 17630: 0x000095D1, - 17631: 0x000096B3, - 17632: 0x000096D7, - 17633: 0x000096DA, - 17634: 0x00005DC2, - 17635: 0x000096DF, - 17636: 0x000096D8, - 17637: 0x000096DD, - 17638: 0x00009723, - 17639: 0x00009722, - 17640: 0x00009725, - 17641: 0x000097AC, - 17642: 0x000097AE, - 17643: 0x000097A8, - 17644: 0x000097AB, - 17645: 0x000097A4, - 17646: 0x000097AA, - 17647: 0x000097A2, - 17648: 0x000097A5, - 17649: 0x000097D7, - 17650: 0x000097D9, - 17651: 0x000097D6, - 17652: 0x000097D8, - 17653: 0x000097FA, - 17654: 0x00009850, - 17655: 0x00009851, - 17656: 0x00009852, - 17657: 0x000098B8, - 17658: 0x00009941, - 17659: 0x0000993C, - 17660: 0x0000993A, - 17661: 0x00009A0F, - 17662: 0x00009A0B, - 17663: 0x00009A09, - 17664: 0x00009A0D, - 17665: 0x00009A04, - 17666: 0x00009A11, - 17667: 0x00009A0A, - 17668: 0x00009A05, - 17669: 0x00009A07, - 17670: 0x00009A06, - 17671: 0x00009AC0, - 17672: 0x00009ADC, - 17673: 0x00009B08, - 17674: 0x00009B04, - 17675: 0x00009B05, - 17676: 0x00009B29, - 17677: 0x00009B35, - 17678: 0x00009B4A, - 17679: 0x00009B4C, - 17680: 0x00009B4B, - 17681: 0x00009BC7, - 17682: 0x00009BC6, - 17683: 0x00009BC3, - 17684: 0x00009BBF, - 17685: 0x00009BC1, - 17686: 0x00009BB5, - 17687: 0x00009BB8, - 17688: 0x00009BD3, - 17689: 0x00009BB6, - 17690: 0x00009BC4, - 17691: 0x00009BB9, - 17692: 0x00009BBD, - 17693: 0x00009D5C, - 17694: 0x00009D53, - 17695: 0x00009D4F, - 17696: 0x00009D4A, - 17697: 0x00009D5B, - 17698: 0x00009D4B, - 17699: 0x00009D59, - 17700: 0x00009D56, - 17701: 0x00009D4C, - 17702: 0x00009D57, - 17703: 0x00009D52, - 17704: 0x00009D54, - 17705: 0x00009D5F, - 17706: 0x00009D58, - 17707: 0x00009D5A, - 17708: 0x00009E8E, - 17709: 0x00009E8C, - 17710: 0x00009EDF, - 17711: 0x00009F01, - 17712: 0x00009F00, - 17713: 0x00009F16, - 17714: 0x00009F25, - 17715: 0x00009F2B, - 17716: 0x00009F2A, - 17717: 0x00009F29, - 17718: 0x00009F28, - 17719: 0x00009F4C, - 17720: 0x00009F55, - 17721: 0x00005134, - 17722: 0x00005135, - 17723: 0x00005296, - 17724: 0x000052F7, - 17725: 0x000053B4, - 17726: 0x000056AB, - 17727: 0x000056AD, - 17728: 0x000056A6, - 17729: 0x000056A7, - 17730: 0x000056AA, - 17731: 0x000056AC, - 17732: 0x000058DA, - 17733: 0x000058DD, - 17734: 0x000058DB, - 17735: 0x00005912, - 17736: 0x00005B3D, - 17737: 0x00005B3E, - 17738: 0x00005B3F, - 17739: 0x00005DC3, - 17740: 0x00005E70, - 17741: 0x00005FBF, - 17742: 0x000061FB, - 17743: 0x00006507, - 17744: 0x00006510, - 17745: 0x0000650D, - 17746: 0x00006509, - 17747: 0x0000650C, - 17748: 0x0000650E, - 17749: 0x00006584, - 17750: 0x000065DE, - 17751: 0x000065DD, - 17752: 0x000066DE, - 17753: 0x00006AE7, - 17754: 0x00006AE0, - 17755: 0x00006ACC, - 17756: 0x00006AD1, - 17757: 0x00006AD9, - 17758: 0x00006ACB, - 17759: 0x00006ADF, - 17760: 0x00006ADC, - 17761: 0x00006AD0, - 17762: 0x00006AEB, - 17763: 0x00006ACF, - 17764: 0x00006ACD, - 17765: 0x00006ADE, - 17766: 0x00006B60, - 17767: 0x00006BB0, - 17768: 0x00006C0C, - 17769: 0x00007019, - 17770: 0x00007027, - 17771: 0x00007020, - 17772: 0x00007016, - 17773: 0x0000702B, - 17774: 0x00007021, - 17775: 0x00007022, - 17776: 0x00007023, - 17777: 0x00007029, - 17778: 0x00007017, - 17779: 0x00007024, - 17780: 0x0000701C, - 17781: 0x0000702A, - 17782: 0x0000720C, - 17783: 0x0000720A, - 17784: 0x00007207, - 17785: 0x00007202, - 17786: 0x00007205, - 17787: 0x000072A5, - 17788: 0x000072A6, - 17789: 0x000072A4, - 17790: 0x000072A3, - 17791: 0x000072A1, - 17792: 0x000074CB, - 17793: 0x000074C5, - 17794: 0x000074B7, - 17795: 0x000074C3, - 17796: 0x00007516, - 17797: 0x00007660, - 17798: 0x000077C9, - 17799: 0x000077CA, - 17800: 0x000077C4, - 17801: 0x000077F1, - 17802: 0x0000791D, - 17803: 0x0000791B, - 17804: 0x00007921, - 17805: 0x0000791C, - 17806: 0x00007917, - 17807: 0x0000791E, - 17808: 0x000079B0, - 17809: 0x00007A67, - 17810: 0x00007A68, - 17811: 0x00007C33, - 17812: 0x00007C3C, - 17813: 0x00007C39, - 17814: 0x00007C2C, - 17815: 0x00007C3B, - 17816: 0x00007CEC, - 17817: 0x00007CEA, - 17818: 0x00007E76, - 17819: 0x00007E75, - 17820: 0x00007E78, - 17821: 0x00007E70, - 17822: 0x00007E77, - 17823: 0x00007E6F, - 17824: 0x00007E7A, - 17825: 0x00007E72, - 17826: 0x00007E74, - 17827: 0x00007E68, - 17828: 0x00007F4B, - 17829: 0x00007F4A, - 17830: 0x00007F83, - 17831: 0x00007F86, - 17832: 0x00007FB7, - 17833: 0x00007FFD, - 17834: 0x00007FFE, - 17835: 0x00008078, - 17836: 0x000081D7, - 17837: 0x000081D5, - 17838: 0x00008264, - 17839: 0x00008261, - 17840: 0x00008263, - 17841: 0x000085EB, - 17842: 0x000085F1, - 17843: 0x000085ED, - 17844: 0x000085D9, - 17845: 0x000085E1, - 17846: 0x000085E8, - 17847: 0x000085DA, - 17848: 0x000085D7, - 17849: 0x000085EC, - 17850: 0x000085F2, - 17851: 0x000085F8, - 17852: 0x000085D8, - 17853: 0x000085DF, - 17854: 0x000085E3, - 17855: 0x000085DC, - 17856: 0x000085D1, - 17857: 0x000085F0, - 17858: 0x000085E6, - 17859: 0x000085EF, - 17860: 0x000085DE, - 17861: 0x000085E2, - 17862: 0x00008800, - 17863: 0x000087FA, - 17864: 0x00008803, - 17865: 0x000087F6, - 17866: 0x000087F7, - 17867: 0x00008809, - 17868: 0x0000880C, - 17869: 0x0000880B, - 17870: 0x00008806, - 17871: 0x000087FC, - 17872: 0x00008808, - 17873: 0x000087FF, - 17874: 0x0000880A, - 17875: 0x00008802, - 17876: 0x00008962, - 17877: 0x0000895A, - 17878: 0x0000895B, - 17879: 0x00008957, - 17880: 0x00008961, - 17881: 0x0000895C, - 17882: 0x00008958, - 17883: 0x0000895D, - 17884: 0x00008959, - 17885: 0x00008988, - 17886: 0x000089B7, - 17887: 0x000089B6, - 17888: 0x000089F6, - 17889: 0x00008B50, - 17890: 0x00008B48, - 17891: 0x00008B4A, - 17892: 0x00008B40, - 17893: 0x00008B53, - 17894: 0x00008B56, - 17895: 0x00008B54, - 17896: 0x00008B4B, - 17897: 0x00008B55, - 17898: 0x00008B51, - 17899: 0x00008B42, - 17900: 0x00008B52, - 17901: 0x00008B57, - 17902: 0x00008C43, - 17903: 0x00008C77, - 17904: 0x00008C76, - 17905: 0x00008C9A, - 17906: 0x00008D06, - 17907: 0x00008D07, - 17908: 0x00008D09, - 17909: 0x00008DAC, - 17910: 0x00008DAA, - 17911: 0x00008DAD, - 17912: 0x00008DAB, - 17913: 0x00008E6D, - 17914: 0x00008E78, - 17915: 0x00008E73, - 17916: 0x00008E6A, - 17917: 0x00008E6F, - 17918: 0x00008E7B, - 17919: 0x00008EC2, - 17920: 0x00008F52, - 17921: 0x00008F51, - 17922: 0x00008F4F, - 17923: 0x00008F50, - 17924: 0x00008F53, - 17925: 0x00008FB4, - 17926: 0x00009140, - 17927: 0x0000913F, - 17928: 0x000091B0, - 17929: 0x000091AD, - 17930: 0x000093DE, - 17931: 0x000093C7, - 17932: 0x000093CF, - 17933: 0x000093C2, - 17934: 0x000093DA, - 17935: 0x000093D0, - 17936: 0x000093F9, - 17937: 0x000093EC, - 17938: 0x000093CC, - 17939: 0x000093D9, - 17940: 0x000093A9, - 17941: 0x000093E6, - 17942: 0x000093CA, - 17943: 0x000093D4, - 17944: 0x000093EE, - 17945: 0x000093E3, - 17946: 0x000093D5, - 17947: 0x000093C4, - 17948: 0x000093CE, - 17949: 0x000093C0, - 17950: 0x000093D2, - 17951: 0x000093E7, - 17952: 0x0000957D, - 17953: 0x000095DA, - 17954: 0x000095DB, - 17955: 0x000096E1, - 17956: 0x00009729, - 17957: 0x0000972B, - 17958: 0x0000972C, - 17959: 0x00009728, - 17960: 0x00009726, - 17961: 0x000097B3, - 17962: 0x000097B7, - 17963: 0x000097B6, - 17964: 0x000097DD, - 17965: 0x000097DE, - 17966: 0x000097DF, - 17967: 0x0000985C, - 17968: 0x00009859, - 17969: 0x0000985D, - 17970: 0x00009857, - 17971: 0x000098BF, - 17972: 0x000098BD, - 17973: 0x000098BB, - 17974: 0x000098BE, - 17975: 0x00009948, - 17976: 0x00009947, - 17977: 0x00009943, - 17978: 0x000099A6, - 17979: 0x000099A7, - 17980: 0x00009A1A, - 17981: 0x00009A15, - 17982: 0x00009A25, - 17983: 0x00009A1D, - 17984: 0x00009A24, - 17985: 0x00009A1B, - 17986: 0x00009A22, - 17987: 0x00009A20, - 17988: 0x00009A27, - 17989: 0x00009A23, - 17990: 0x00009A1E, - 17991: 0x00009A1C, - 17992: 0x00009A14, - 17993: 0x00009AC2, - 17994: 0x00009B0B, - 17995: 0x00009B0A, - 17996: 0x00009B0E, - 17997: 0x00009B0C, - 17998: 0x00009B37, - 17999: 0x00009BEA, - 18000: 0x00009BEB, - 18001: 0x00009BE0, - 18002: 0x00009BDE, - 18003: 0x00009BE4, - 18004: 0x00009BE6, - 18005: 0x00009BE2, - 18006: 0x00009BF0, - 18007: 0x00009BD4, - 18008: 0x00009BD7, - 18009: 0x00009BEC, - 18010: 0x00009BDC, - 18011: 0x00009BD9, - 18012: 0x00009BE5, - 18013: 0x00009BD5, - 18014: 0x00009BE1, - 18015: 0x00009BDA, - 18016: 0x00009D77, - 18017: 0x00009D81, - 18018: 0x00009D8A, - 18019: 0x00009D84, - 18020: 0x00009D88, - 18021: 0x00009D71, - 18022: 0x00009D80, - 18023: 0x00009D78, - 18024: 0x00009D86, - 18025: 0x00009D8B, - 18026: 0x00009D8C, - 18027: 0x00009D7D, - 18028: 0x00009D6B, - 18029: 0x00009D74, - 18030: 0x00009D75, - 18031: 0x00009D70, - 18032: 0x00009D69, - 18033: 0x00009D85, - 18034: 0x00009D73, - 18035: 0x00009D7B, - 18036: 0x00009D82, - 18037: 0x00009D6F, - 18038: 0x00009D79, - 18039: 0x00009D7F, - 18040: 0x00009D87, - 18041: 0x00009D68, - 18042: 0x00009E94, - 18043: 0x00009E91, - 18044: 0x00009EC0, - 18045: 0x00009EFC, - 18046: 0x00009F2D, - 18047: 0x00009F40, - 18048: 0x00009F41, - 18049: 0x00009F4D, - 18050: 0x00009F56, - 18051: 0x00009F57, - 18052: 0x00009F58, - 18053: 0x00005337, - 18054: 0x000056B2, - 18055: 0x000056B5, - 18056: 0x000056B3, - 18057: 0x000058E3, - 18058: 0x00005B45, - 18059: 0x00005DC6, - 18060: 0x00005DC7, - 18061: 0x00005EEE, - 18062: 0x00005EEF, - 18063: 0x00005FC0, - 18064: 0x00005FC1, - 18065: 0x000061F9, - 18066: 0x00006517, - 18067: 0x00006516, - 18068: 0x00006515, - 18069: 0x00006513, - 18070: 0x000065DF, - 18071: 0x000066E8, - 18072: 0x000066E3, - 18073: 0x000066E4, - 18074: 0x00006AF3, - 18075: 0x00006AF0, - 18076: 0x00006AEA, - 18077: 0x00006AE8, - 18078: 0x00006AF9, - 18079: 0x00006AF1, - 18080: 0x00006AEE, - 18081: 0x00006AEF, - 18082: 0x0000703C, - 18083: 0x00007035, - 18084: 0x0000702F, - 18085: 0x00007037, - 18086: 0x00007034, - 18087: 0x00007031, - 18088: 0x00007042, - 18089: 0x00007038, - 18090: 0x0000703F, - 18091: 0x0000703A, - 18092: 0x00007039, - 18093: 0x00007040, - 18094: 0x0000703B, - 18095: 0x00007033, - 18096: 0x00007041, - 18097: 0x00007213, - 18098: 0x00007214, - 18099: 0x000072A8, - 18100: 0x0000737D, - 18101: 0x0000737C, - 18102: 0x000074BA, - 18103: 0x000076AB, - 18104: 0x000076AA, - 18105: 0x000076BE, - 18106: 0x000076ED, - 18107: 0x000077CC, - 18108: 0x000077CE, - 18109: 0x000077CF, - 18110: 0x000077CD, - 18111: 0x000077F2, - 18112: 0x00007925, - 18113: 0x00007923, - 18114: 0x00007927, - 18115: 0x00007928, - 18116: 0x00007924, - 18117: 0x00007929, - 18118: 0x000079B2, - 18119: 0x00007A6E, - 18120: 0x00007A6C, - 18121: 0x00007A6D, - 18122: 0x00007AF7, - 18123: 0x00007C49, - 18124: 0x00007C48, - 18125: 0x00007C4A, - 18126: 0x00007C47, - 18127: 0x00007C45, - 18128: 0x00007CEE, - 18129: 0x00007E7B, - 18130: 0x00007E7E, - 18131: 0x00007E81, - 18132: 0x00007E80, - 18133: 0x00007FBA, - 18134: 0x00007FFF, - 18135: 0x00008079, - 18136: 0x000081DB, - 18137: 0x000081D9, - 18138: 0x0000820B, - 18139: 0x00008268, - 18140: 0x00008269, - 18141: 0x00008622, - 18142: 0x000085FF, - 18143: 0x00008601, - 18144: 0x000085FE, - 18145: 0x0000861B, - 18146: 0x00008600, - 18147: 0x000085F6, - 18148: 0x00008604, - 18149: 0x00008609, - 18150: 0x00008605, - 18151: 0x0000860C, - 18152: 0x000085FD, - 18153: 0x00008819, - 18154: 0x00008810, - 18155: 0x00008811, - 18156: 0x00008817, - 18157: 0x00008813, - 18158: 0x00008816, - 18159: 0x00008963, - 18160: 0x00008966, - 18161: 0x000089B9, - 18162: 0x000089F7, - 18163: 0x00008B60, - 18164: 0x00008B6A, - 18165: 0x00008B5D, - 18166: 0x00008B68, - 18167: 0x00008B63, - 18168: 0x00008B65, - 18169: 0x00008B67, - 18170: 0x00008B6D, - 18171: 0x00008DAE, - 18172: 0x00008E86, - 18173: 0x00008E88, - 18174: 0x00008E84, - 18175: 0x00008F59, - 18176: 0x00008F56, - 18177: 0x00008F57, - 18178: 0x00008F55, - 18179: 0x00008F58, - 18180: 0x00008F5A, - 18181: 0x0000908D, - 18182: 0x00009143, - 18183: 0x00009141, - 18184: 0x000091B7, - 18185: 0x000091B5, - 18186: 0x000091B2, - 18187: 0x000091B3, - 18188: 0x0000940B, - 18189: 0x00009413, - 18190: 0x000093FB, - 18191: 0x00009420, - 18192: 0x0000940F, - 18193: 0x00009414, - 18194: 0x000093FE, - 18195: 0x00009415, - 18196: 0x00009410, - 18197: 0x00009428, - 18198: 0x00009419, - 18199: 0x0000940D, - 18200: 0x000093F5, - 18201: 0x00009400, - 18202: 0x000093F7, - 18203: 0x00009407, - 18204: 0x0000940E, - 18205: 0x00009416, - 18206: 0x00009412, - 18207: 0x000093FA, - 18208: 0x00009409, - 18209: 0x000093F8, - 18210: 0x0000940A, - 18211: 0x000093FF, - 18212: 0x000093FC, - 18213: 0x0000940C, - 18214: 0x000093F6, - 18215: 0x00009411, - 18216: 0x00009406, - 18217: 0x000095DE, - 18218: 0x000095E0, - 18219: 0x000095DF, - 18220: 0x0000972E, - 18221: 0x0000972F, - 18222: 0x000097B9, - 18223: 0x000097BB, - 18224: 0x000097FD, - 18225: 0x000097FE, - 18226: 0x00009860, - 18227: 0x00009862, - 18228: 0x00009863, - 18229: 0x0000985F, - 18230: 0x000098C1, - 18231: 0x000098C2, - 18232: 0x00009950, - 18233: 0x0000994E, - 18234: 0x00009959, - 18235: 0x0000994C, - 18236: 0x0000994B, - 18237: 0x00009953, - 18238: 0x00009A32, - 18239: 0x00009A34, - 18240: 0x00009A31, - 18241: 0x00009A2C, - 18242: 0x00009A2A, - 18243: 0x00009A36, - 18244: 0x00009A29, - 18245: 0x00009A2E, - 18246: 0x00009A38, - 18247: 0x00009A2D, - 18248: 0x00009AC7, - 18249: 0x00009ACA, - 18250: 0x00009AC6, - 18251: 0x00009B10, - 18252: 0x00009B12, - 18253: 0x00009B11, - 18254: 0x00009C0B, - 18255: 0x00009C08, - 18256: 0x00009BF7, - 18257: 0x00009C05, - 18258: 0x00009C12, - 18259: 0x00009BF8, - 18260: 0x00009C40, - 18261: 0x00009C07, - 18262: 0x00009C0E, - 18263: 0x00009C06, - 18264: 0x00009C17, - 18265: 0x00009C14, - 18266: 0x00009C09, - 18267: 0x00009D9F, - 18268: 0x00009D99, - 18269: 0x00009DA4, - 18270: 0x00009D9D, - 18271: 0x00009D92, - 18272: 0x00009D98, - 18273: 0x00009D90, - 18274: 0x00009D9B, - 18275: 0x00009DA0, - 18276: 0x00009D94, - 18277: 0x00009D9C, - 18278: 0x00009DAA, - 18279: 0x00009D97, - 18280: 0x00009DA1, - 18281: 0x00009D9A, - 18282: 0x00009DA2, - 18283: 0x00009DA8, - 18284: 0x00009D9E, - 18285: 0x00009DA3, - 18286: 0x00009DBF, - 18287: 0x00009DA9, - 18288: 0x00009D96, - 18289: 0x00009DA6, - 18290: 0x00009DA7, - 18291: 0x00009E99, - 18292: 0x00009E9B, - 18293: 0x00009E9A, - 18294: 0x00009EE5, - 18295: 0x00009EE4, - 18296: 0x00009EE7, - 18297: 0x00009EE6, - 18298: 0x00009F30, - 18299: 0x00009F2E, - 18300: 0x00009F5B, - 18301: 0x00009F60, - 18302: 0x00009F5E, - 18303: 0x00009F5D, - 18304: 0x00009F59, - 18305: 0x00009F91, - 18306: 0x0000513A, - 18307: 0x00005139, - 18308: 0x00005298, - 18309: 0x00005297, - 18310: 0x000056C3, - 18311: 0x000056BD, - 18312: 0x000056BE, - 18313: 0x00005B48, - 18314: 0x00005B47, - 18315: 0x00005DCB, - 18316: 0x00005DCF, - 18317: 0x00005EF1, - 18318: 0x000061FD, - 18319: 0x0000651B, - 18320: 0x00006B02, - 18321: 0x00006AFC, - 18322: 0x00006B03, - 18323: 0x00006AF8, - 18324: 0x00006B00, - 18325: 0x00007043, - 18326: 0x00007044, - 18327: 0x0000704A, - 18328: 0x00007048, - 18329: 0x00007049, - 18330: 0x00007045, - 18331: 0x00007046, - 18332: 0x0000721D, - 18333: 0x0000721A, - 18334: 0x00007219, - 18335: 0x0000737E, - 18336: 0x00007517, - 18337: 0x0000766A, - 18338: 0x000077D0, - 18339: 0x0000792D, - 18340: 0x00007931, - 18341: 0x0000792F, - 18342: 0x00007C54, - 18343: 0x00007C53, - 18344: 0x00007CF2, - 18345: 0x00007E8A, - 18346: 0x00007E87, - 18347: 0x00007E88, - 18348: 0x00007E8B, - 18349: 0x00007E86, - 18350: 0x00007E8D, - 18351: 0x00007F4D, - 18352: 0x00007FBB, - 18353: 0x00008030, - 18354: 0x000081DD, - 18355: 0x00008618, - 18356: 0x0000862A, - 18357: 0x00008626, - 18358: 0x0000861F, - 18359: 0x00008623, - 18360: 0x0000861C, - 18361: 0x00008619, - 18362: 0x00008627, - 18363: 0x0000862E, - 18364: 0x00008621, - 18365: 0x00008620, - 18366: 0x00008629, - 18367: 0x0000861E, - 18368: 0x00008625, - 18369: 0x00008829, - 18370: 0x0000881D, - 18371: 0x0000881B, - 18372: 0x00008820, - 18373: 0x00008824, - 18374: 0x0000881C, - 18375: 0x0000882B, - 18376: 0x0000884A, - 18377: 0x0000896D, - 18378: 0x00008969, - 18379: 0x0000896E, - 18380: 0x0000896B, - 18381: 0x000089FA, - 18382: 0x00008B79, - 18383: 0x00008B78, - 18384: 0x00008B45, - 18385: 0x00008B7A, - 18386: 0x00008B7B, - 18387: 0x00008D10, - 18388: 0x00008D14, - 18389: 0x00008DAF, - 18390: 0x00008E8E, - 18391: 0x00008E8C, - 18392: 0x00008F5E, - 18393: 0x00008F5B, - 18394: 0x00008F5D, - 18395: 0x00009146, - 18396: 0x00009144, - 18397: 0x00009145, - 18398: 0x000091B9, - 18399: 0x0000943F, - 18400: 0x0000943B, - 18401: 0x00009436, - 18402: 0x00009429, - 18403: 0x0000943D, - 18404: 0x0000943C, - 18405: 0x00009430, - 18406: 0x00009439, - 18407: 0x0000942A, - 18408: 0x00009437, - 18409: 0x0000942C, - 18410: 0x00009440, - 18411: 0x00009431, - 18412: 0x000095E5, - 18413: 0x000095E4, - 18414: 0x000095E3, - 18415: 0x00009735, - 18416: 0x0000973A, - 18417: 0x000097BF, - 18418: 0x000097E1, - 18419: 0x00009864, - 18420: 0x000098C9, - 18421: 0x000098C6, - 18422: 0x000098C0, - 18423: 0x00009958, - 18424: 0x00009956, - 18425: 0x00009A39, - 18426: 0x00009A3D, - 18427: 0x00009A46, - 18428: 0x00009A44, - 18429: 0x00009A42, - 18430: 0x00009A41, - 18431: 0x00009A3A, - 18432: 0x00009A3F, - 18433: 0x00009ACD, - 18434: 0x00009B15, - 18435: 0x00009B17, - 18436: 0x00009B18, - 18437: 0x00009B16, - 18438: 0x00009B3A, - 18439: 0x00009B52, - 18440: 0x00009C2B, - 18441: 0x00009C1D, - 18442: 0x00009C1C, - 18443: 0x00009C2C, - 18444: 0x00009C23, - 18445: 0x00009C28, - 18446: 0x00009C29, - 18447: 0x00009C24, - 18448: 0x00009C21, - 18449: 0x00009DB7, - 18450: 0x00009DB6, - 18451: 0x00009DBC, - 18452: 0x00009DC1, - 18453: 0x00009DC7, - 18454: 0x00009DCA, - 18455: 0x00009DCF, - 18456: 0x00009DBE, - 18457: 0x00009DC5, - 18458: 0x00009DC3, - 18459: 0x00009DBB, - 18460: 0x00009DB5, - 18461: 0x00009DCE, - 18462: 0x00009DB9, - 18463: 0x00009DBA, - 18464: 0x00009DAC, - 18465: 0x00009DC8, - 18466: 0x00009DB1, - 18467: 0x00009DAD, - 18468: 0x00009DCC, - 18469: 0x00009DB3, - 18470: 0x00009DCD, - 18471: 0x00009DB2, - 18472: 0x00009E7A, - 18473: 0x00009E9C, - 18474: 0x00009EEB, - 18475: 0x00009EEE, - 18476: 0x00009EED, - 18477: 0x00009F1B, - 18478: 0x00009F18, - 18479: 0x00009F1A, - 18480: 0x00009F31, - 18481: 0x00009F4E, - 18482: 0x00009F65, - 18483: 0x00009F64, - 18484: 0x00009F92, - 18485: 0x00004EB9, - 18486: 0x000056C6, - 18487: 0x000056C5, - 18488: 0x000056CB, - 18489: 0x00005971, - 18490: 0x00005B4B, - 18491: 0x00005B4C, - 18492: 0x00005DD5, - 18493: 0x00005DD1, - 18494: 0x00005EF2, - 18495: 0x00006521, - 18496: 0x00006520, - 18497: 0x00006526, - 18498: 0x00006522, - 18499: 0x00006B0B, - 18500: 0x00006B08, - 18501: 0x00006B09, - 18502: 0x00006C0D, - 18503: 0x00007055, - 18504: 0x00007056, - 18505: 0x00007057, - 18506: 0x00007052, - 18507: 0x0000721E, - 18508: 0x0000721F, - 18509: 0x000072A9, - 18510: 0x0000737F, - 18511: 0x000074D8, - 18512: 0x000074D5, - 18513: 0x000074D9, - 18514: 0x000074D7, - 18515: 0x0000766D, - 18516: 0x000076AD, - 18517: 0x00007935, - 18518: 0x000079B4, - 18519: 0x00007A70, - 18520: 0x00007A71, - 18521: 0x00007C57, - 18522: 0x00007C5C, - 18523: 0x00007C59, - 18524: 0x00007C5B, - 18525: 0x00007C5A, - 18526: 0x00007CF4, - 18527: 0x00007CF1, - 18528: 0x00007E91, - 18529: 0x00007F4F, - 18530: 0x00007F87, - 18531: 0x000081DE, - 18532: 0x0000826B, - 18533: 0x00008634, - 18534: 0x00008635, - 18535: 0x00008633, - 18536: 0x0000862C, - 18537: 0x00008632, - 18538: 0x00008636, - 18539: 0x0000882C, - 18540: 0x00008828, - 18541: 0x00008826, - 18542: 0x0000882A, - 18543: 0x00008825, - 18544: 0x00008971, - 18545: 0x000089BF, - 18546: 0x000089BE, - 18547: 0x000089FB, - 18548: 0x00008B7E, - 18549: 0x00008B84, - 18550: 0x00008B82, - 18551: 0x00008B86, - 18552: 0x00008B85, - 18553: 0x00008B7F, - 18554: 0x00008D15, - 18555: 0x00008E95, - 18556: 0x00008E94, - 18557: 0x00008E9A, - 18558: 0x00008E92, - 18559: 0x00008E90, - 18560: 0x00008E96, - 18561: 0x00008E97, - 18562: 0x00008F60, - 18563: 0x00008F62, - 18564: 0x00009147, - 18565: 0x0000944C, - 18566: 0x00009450, - 18567: 0x0000944A, - 18568: 0x0000944B, - 18569: 0x0000944F, - 18570: 0x00009447, - 18571: 0x00009445, - 18572: 0x00009448, - 18573: 0x00009449, - 18574: 0x00009446, - 18575: 0x0000973F, - 18576: 0x000097E3, - 18577: 0x0000986A, - 18578: 0x00009869, - 18579: 0x000098CB, - 18580: 0x00009954, - 18581: 0x0000995B, - 18582: 0x00009A4E, - 18583: 0x00009A53, - 18584: 0x00009A54, - 18585: 0x00009A4C, - 18586: 0x00009A4F, - 18587: 0x00009A48, - 18588: 0x00009A4A, - 18589: 0x00009A49, - 18590: 0x00009A52, - 18591: 0x00009A50, - 18592: 0x00009AD0, - 18593: 0x00009B19, - 18594: 0x00009B2B, - 18595: 0x00009B3B, - 18596: 0x00009B56, - 18597: 0x00009B55, - 18598: 0x00009C46, - 18599: 0x00009C48, - 18600: 0x00009C3F, - 18601: 0x00009C44, - 18602: 0x00009C39, - 18603: 0x00009C33, - 18604: 0x00009C41, - 18605: 0x00009C3C, - 18606: 0x00009C37, - 18607: 0x00009C34, - 18608: 0x00009C32, - 18609: 0x00009C3D, - 18610: 0x00009C36, - 18611: 0x00009DDB, - 18612: 0x00009DD2, - 18613: 0x00009DDE, - 18614: 0x00009DDA, - 18615: 0x00009DCB, - 18616: 0x00009DD0, - 18617: 0x00009DDC, - 18618: 0x00009DD1, - 18619: 0x00009DDF, - 18620: 0x00009DE9, - 18621: 0x00009DD9, - 18622: 0x00009DD8, - 18623: 0x00009DD6, - 18624: 0x00009DF5, - 18625: 0x00009DD5, - 18626: 0x00009DDD, - 18627: 0x00009EB6, - 18628: 0x00009EF0, - 18629: 0x00009F35, - 18630: 0x00009F33, - 18631: 0x00009F32, - 18632: 0x00009F42, - 18633: 0x00009F6B, - 18634: 0x00009F95, - 18635: 0x00009FA2, - 18636: 0x0000513D, - 18637: 0x00005299, - 18638: 0x000058E8, - 18639: 0x000058E7, - 18640: 0x00005972, - 18641: 0x00005B4D, - 18642: 0x00005DD8, - 18643: 0x0000882F, - 18644: 0x00005F4F, - 18645: 0x00006201, - 18646: 0x00006203, - 18647: 0x00006204, - 18648: 0x00006529, - 18649: 0x00006525, - 18650: 0x00006596, - 18651: 0x000066EB, - 18652: 0x00006B11, - 18653: 0x00006B12, - 18654: 0x00006B0F, - 18655: 0x00006BCA, - 18656: 0x0000705B, - 18657: 0x0000705A, - 18658: 0x00007222, - 18659: 0x00007382, - 18660: 0x00007381, - 18661: 0x00007383, - 18662: 0x00007670, - 18663: 0x000077D4, - 18664: 0x00007C67, - 18665: 0x00007C66, - 18666: 0x00007E95, - 18667: 0x0000826C, - 18668: 0x0000863A, - 18669: 0x00008640, - 18670: 0x00008639, - 18671: 0x0000863C, - 18672: 0x00008631, - 18673: 0x0000863B, - 18674: 0x0000863E, - 18675: 0x00008830, - 18676: 0x00008832, - 18677: 0x0000882E, - 18678: 0x00008833, - 18679: 0x00008976, - 18680: 0x00008974, - 18681: 0x00008973, - 18682: 0x000089FE, - 18683: 0x00008B8C, - 18684: 0x00008B8E, - 18685: 0x00008B8B, - 18686: 0x00008B88, - 18687: 0x00008C45, - 18688: 0x00008D19, - 18689: 0x00008E98, - 18690: 0x00008F64, - 18691: 0x00008F63, - 18692: 0x000091BC, - 18693: 0x00009462, - 18694: 0x00009455, - 18695: 0x0000945D, - 18696: 0x00009457, - 18697: 0x0000945E, - 18698: 0x000097C4, - 18699: 0x000097C5, - 18700: 0x00009800, - 18701: 0x00009A56, - 18702: 0x00009A59, - 18703: 0x00009B1E, - 18704: 0x00009B1F, - 18705: 0x00009B20, - 18706: 0x00009C52, - 18707: 0x00009C58, - 18708: 0x00009C50, - 18709: 0x00009C4A, - 18710: 0x00009C4D, - 18711: 0x00009C4B, - 18712: 0x00009C55, - 18713: 0x00009C59, - 18714: 0x00009C4C, - 18715: 0x00009C4E, - 18716: 0x00009DFB, - 18717: 0x00009DF7, - 18718: 0x00009DEF, - 18719: 0x00009DE3, - 18720: 0x00009DEB, - 18721: 0x00009DF8, - 18722: 0x00009DE4, - 18723: 0x00009DF6, - 18724: 0x00009DE1, - 18725: 0x00009DEE, - 18726: 0x00009DE6, - 18727: 0x00009DF2, - 18728: 0x00009DF0, - 18729: 0x00009DE2, - 18730: 0x00009DEC, - 18731: 0x00009DF4, - 18732: 0x00009DF3, - 18733: 0x00009DE8, - 18734: 0x00009DED, - 18735: 0x00009EC2, - 18736: 0x00009ED0, - 18737: 0x00009EF2, - 18738: 0x00009EF3, - 18739: 0x00009F06, - 18740: 0x00009F1C, - 18741: 0x00009F38, - 18742: 0x00009F37, - 18743: 0x00009F36, - 18744: 0x00009F43, - 18745: 0x00009F4F, - 18746: 0x00009F71, - 18747: 0x00009F70, - 18748: 0x00009F6E, - 18749: 0x00009F6F, - 18750: 0x000056D3, - 18751: 0x000056CD, - 18752: 0x00005B4E, - 18753: 0x00005C6D, - 18754: 0x0000652D, - 18755: 0x000066ED, - 18756: 0x000066EE, - 18757: 0x00006B13, - 18758: 0x0000705F, - 18759: 0x00007061, - 18760: 0x0000705D, - 18761: 0x00007060, - 18762: 0x00007223, - 18763: 0x000074DB, - 18764: 0x000074E5, - 18765: 0x000077D5, - 18766: 0x00007938, - 18767: 0x000079B7, - 18768: 0x000079B6, - 18769: 0x00007C6A, - 18770: 0x00007E97, - 18771: 0x00007F89, - 18772: 0x0000826D, - 18773: 0x00008643, - 18774: 0x00008838, - 18775: 0x00008837, - 18776: 0x00008835, - 18777: 0x0000884B, - 18778: 0x00008B94, - 18779: 0x00008B95, - 18780: 0x00008E9E, - 18781: 0x00008E9F, - 18782: 0x00008EA0, - 18783: 0x00008E9D, - 18784: 0x000091BE, - 18785: 0x000091BD, - 18786: 0x000091C2, - 18787: 0x0000946B, - 18788: 0x00009468, - 18789: 0x00009469, - 18790: 0x000096E5, - 18791: 0x00009746, - 18792: 0x00009743, - 18793: 0x00009747, - 18794: 0x000097C7, - 18795: 0x000097E5, - 18796: 0x00009A5E, - 18797: 0x00009AD5, - 18798: 0x00009B59, - 18799: 0x00009C63, - 18800: 0x00009C67, - 18801: 0x00009C66, - 18802: 0x00009C62, - 18803: 0x00009C5E, - 18804: 0x00009C60, - 18805: 0x00009E02, - 18806: 0x00009DFE, - 18807: 0x00009E07, - 18808: 0x00009E03, - 18809: 0x00009E06, - 18810: 0x00009E05, - 18811: 0x00009E00, - 18812: 0x00009E01, - 18813: 0x00009E09, - 18814: 0x00009DFF, - 18815: 0x00009DFD, - 18816: 0x00009E04, - 18817: 0x00009EA0, - 18818: 0x00009F1E, - 18819: 0x00009F46, - 18820: 0x00009F74, - 18821: 0x00009F75, - 18822: 0x00009F76, - 18823: 0x000056D4, - 18824: 0x0000652E, - 18825: 0x000065B8, - 18826: 0x00006B18, - 18827: 0x00006B19, - 18828: 0x00006B17, - 18829: 0x00006B1A, - 18830: 0x00007062, - 18831: 0x00007226, - 18832: 0x000072AA, - 18833: 0x000077D8, - 18834: 0x000077D9, - 18835: 0x00007939, - 18836: 0x00007C69, - 18837: 0x00007C6B, - 18838: 0x00007CF6, - 18839: 0x00007E9A, - 18840: 0x00007E98, - 18841: 0x00007E9B, - 18842: 0x00007E99, - 18843: 0x000081E0, - 18844: 0x000081E1, - 18845: 0x00008646, - 18846: 0x00008647, - 18847: 0x00008648, - 18848: 0x00008979, - 18849: 0x0000897A, - 18850: 0x0000897C, - 18851: 0x0000897B, - 18852: 0x000089FF, - 18853: 0x00008B98, - 18854: 0x00008B99, - 18855: 0x00008EA5, - 18856: 0x00008EA4, - 18857: 0x00008EA3, - 18858: 0x0000946E, - 18859: 0x0000946D, - 18860: 0x0000946F, - 18861: 0x00009471, - 18862: 0x00009473, - 18863: 0x00009749, - 18864: 0x00009872, - 18865: 0x0000995F, - 18866: 0x00009C68, - 18867: 0x00009C6E, - 18868: 0x00009C6D, - 18869: 0x00009E0B, - 18870: 0x00009E0D, - 18871: 0x00009E10, - 18872: 0x00009E0F, - 18873: 0x00009E12, - 18874: 0x00009E11, - 18875: 0x00009EA1, - 18876: 0x00009EF5, - 18877: 0x00009F09, - 18878: 0x00009F47, - 18879: 0x00009F78, - 18880: 0x00009F7B, - 18881: 0x00009F7A, - 18882: 0x00009F79, - 18883: 0x0000571E, - 18884: 0x00007066, - 18885: 0x00007C6F, - 18886: 0x0000883C, - 18887: 0x00008DB2, - 18888: 0x00008EA6, - 18889: 0x000091C3, - 18890: 0x00009474, - 18891: 0x00009478, - 18892: 0x00009476, - 18893: 0x00009475, - 18894: 0x00009A60, - 18895: 0x00009C74, - 18896: 0x00009C73, - 18897: 0x00009C71, - 18898: 0x00009C75, - 18899: 0x00009E14, - 18900: 0x00009E13, - 18901: 0x00009EF6, - 18902: 0x00009F0A, - 18903: 0x00009FA4, - 18904: 0x00007068, - 18905: 0x00007065, - 18906: 0x00007CF7, - 18907: 0x0000866A, - 18908: 0x0000883E, - 18909: 0x0000883D, - 18910: 0x0000883F, - 18911: 0x00008B9E, - 18912: 0x00008C9C, - 18913: 0x00008EA9, - 18914: 0x00008EC9, - 18915: 0x0000974B, - 18916: 0x00009873, - 18917: 0x00009874, - 18918: 0x000098CC, - 18919: 0x00009961, - 18920: 0x000099AB, - 18921: 0x00009A64, - 18922: 0x00009A66, - 18923: 0x00009A67, - 18924: 0x00009B24, - 18925: 0x00009E15, - 18926: 0x00009E17, - 18927: 0x00009F48, - 18928: 0x00006207, - 18929: 0x00006B1E, - 18930: 0x00007227, - 18931: 0x0000864C, - 18932: 0x00008EA8, - 18933: 0x00009482, - 18934: 0x00009480, - 18935: 0x00009481, - 18936: 0x00009A69, - 18937: 0x00009A68, - 18938: 0x00009B2E, - 18939: 0x00009E19, - 18940: 0x00007229, - 18941: 0x0000864B, - 18942: 0x00008B9F, - 18943: 0x00009483, - 18944: 0x00009C79, - 18945: 0x00009EB7, - 18946: 0x00007675, - 18947: 0x00009A6B, - 18948: 0x00009C7A, - 18949: 0x00009E1D, - 18950: 0x00007069, - 18951: 0x0000706A, - 18952: 0x00009EA4, - 18953: 0x00009F7E, - 18954: 0x00009F49, - 18955: 0x00009F98, - 18956: 0x00007881, - 18957: 0x000092B9, - 18958: 0x000088CF, - 18959: 0x000058BB, - 18960: 0x00006052, - 18961: 0x00007CA7, - 18962: 0x00005AFA, - 18963: 0x00002554, - 18964: 0x00002566, - 18965: 0x00002557, - 18966: 0x00002560, - 18967: 0x0000256C, - 18968: 0x00002563, - 18969: 0x0000255A, - 18970: 0x00002569, - 18971: 0x0000255D, - 18972: 0x00002552, - 18973: 0x00002564, - 18974: 0x00002555, - 18975: 0x0000255E, - 18976: 0x0000256A, - 18977: 0x00002561, - 18978: 0x00002558, - 18979: 0x00002567, - 18980: 0x0000255B, - 18981: 0x00002553, - 18982: 0x00002565, - 18983: 0x00002556, - 18984: 0x0000255F, - 18985: 0x0000256B, - 18986: 0x00002562, - 18987: 0x00002559, - 18988: 0x00002568, - 18989: 0x0000255C, - 18990: 0x00002551, - 18991: 0x00002550, - 18992: 0x0000256D, - 18993: 0x0000256E, - 18994: 0x00002570, - 18995: 0x0000256F, - 18996: 0x0000FFED, - 18997: 0x00020547, - 18998: 0x000092DB, - 18999: 0x000205DF, - 19000: 0x00023FC5, - 19001: 0x0000854C, - 19002: 0x000042B5, - 19003: 0x000073EF, - 19004: 0x000051B5, - 19005: 0x00003649, - 19006: 0x00024942, - 19007: 0x000289E4, - 19008: 0x00009344, - 19009: 0x000219DB, - 19010: 0x000082EE, - 19011: 0x00023CC8, - 19012: 0x0000783C, - 19013: 0x00006744, - 19014: 0x000062DF, - 19015: 0x00024933, - 19016: 0x000289AA, - 19017: 0x000202A0, - 19018: 0x00026BB3, - 19019: 0x00021305, - 19020: 0x00004FAB, - 19021: 0x000224ED, - 19022: 0x00005008, - 19023: 0x00026D29, - 19024: 0x00027A84, - 19025: 0x00023600, - 19026: 0x00024AB1, - 19027: 0x00022513, - 19028: 0x00005029, - 19029: 0x0002037E, - 19030: 0x00005FA4, - 19031: 0x00020380, - 19032: 0x00020347, - 19033: 0x00006EDB, - 19034: 0x0002041F, - 19035: 0x0000507D, - 19036: 0x00005101, - 19037: 0x0000347A, - 19038: 0x0000510E, - 19039: 0x0000986C, - 19040: 0x00003743, - 19041: 0x00008416, - 19042: 0x000249A4, - 19043: 0x00020487, - 19044: 0x00005160, - 19045: 0x000233B4, - 19046: 0x0000516A, - 19047: 0x00020BFF, - 19048: 0x000220FC, - 19049: 0x000202E5, - 19050: 0x00022530, - 19051: 0x0002058E, - 19052: 0x00023233, - 19053: 0x00021983, - 19054: 0x00005B82, - 19055: 0x0000877D, - 19056: 0x000205B3, - 19057: 0x00023C99, - 19058: 0x000051B2, - 19059: 0x000051B8, - 19060: 0x00009D34, - 19061: 0x000051C9, - 19062: 0x000051CF, - 19063: 0x000051D1, - 19064: 0x00003CDC, - 19065: 0x000051D3, - 19066: 0x00024AA6, - 19067: 0x000051B3, - 19068: 0x000051E2, - 19069: 0x00005342, - 19070: 0x000051ED, - 19071: 0x000083CD, - 19072: 0x0000693E, - 19073: 0x0002372D, - 19074: 0x00005F7B, - 19075: 0x0000520B, - 19076: 0x00005226, - 19077: 0x0000523C, - 19078: 0x000052B5, - 19079: 0x00005257, - 19080: 0x00005294, - 19081: 0x000052B9, - 19082: 0x000052C5, - 19083: 0x00007C15, - 19084: 0x00008542, - 19085: 0x000052E0, - 19086: 0x0000860D, - 19087: 0x00026B13, - 19088: 0x00005305, - 19089: 0x00028ADE, - 19090: 0x00005549, - 19091: 0x00006ED9, - 19092: 0x00023F80, - 19093: 0x00020954, - 19094: 0x00023FEC, - 19095: 0x00005333, - 19096: 0x00005344, - 19097: 0x00020BE2, - 19098: 0x00006CCB, - 19099: 0x00021726, - 19100: 0x0000681B, - 19101: 0x000073D5, - 19102: 0x0000604A, - 19103: 0x00003EAA, - 19104: 0x000038CC, - 19105: 0x000216E8, - 19106: 0x000071DD, - 19107: 0x000044A2, - 19108: 0x0000536D, - 19109: 0x00005374, - 19110: 0x000286AB, - 19111: 0x0000537E, - 19112: 0x0000537F, - 19113: 0x00021596, - 19114: 0x00021613, - 19115: 0x000077E6, - 19116: 0x00005393, - 19117: 0x00028A9B, - 19118: 0x000053A0, - 19119: 0x000053AB, - 19120: 0x000053AE, - 19121: 0x000073A7, - 19122: 0x00025772, - 19123: 0x00003F59, - 19124: 0x0000739C, - 19125: 0x000053C1, - 19126: 0x000053C5, - 19127: 0x00006C49, - 19128: 0x00004E49, - 19129: 0x000057FE, - 19130: 0x000053D9, - 19131: 0x00003AAB, - 19132: 0x00020B8F, - 19133: 0x000053E0, - 19134: 0x00023FEB, - 19135: 0x00022DA3, - 19136: 0x000053F6, - 19137: 0x00020C77, - 19138: 0x00005413, - 19139: 0x00007079, - 19140: 0x0000552B, - 19141: 0x00006657, - 19142: 0x00006D5B, - 19143: 0x0000546D, - 19144: 0x00026B53, - 19145: 0x00020D74, - 19146: 0x0000555D, - 19147: 0x0000548F, - 19148: 0x000054A4, - 19149: 0x000047A6, - 19150: 0x0002170D, - 19151: 0x00020EDD, - 19152: 0x00003DB4, - 19153: 0x00020D4D, - 19154: 0x000289BC, - 19155: 0x00022698, - 19156: 0x00005547, - 19157: 0x00004CED, - 19158: 0x0000542F, - 19159: 0x00007417, - 19160: 0x00005586, - 19161: 0x000055A9, - 19162: 0x00005605, - 19163: 0x000218D7, - 19164: 0x0002403A, - 19165: 0x00004552, - 19166: 0x00024435, - 19167: 0x000066B3, - 19168: 0x000210B4, - 19169: 0x00005637, - 19170: 0x000066CD, - 19171: 0x0002328A, - 19172: 0x000066A4, - 19173: 0x000066AD, - 19174: 0x0000564D, - 19175: 0x0000564F, - 19176: 0x000078F1, - 19177: 0x000056F1, - 19178: 0x00009787, - 19179: 0x000053FE, - 19180: 0x00005700, - 19181: 0x000056EF, - 19182: 0x000056ED, - 19183: 0x00028B66, - 19184: 0x00003623, - 19185: 0x0002124F, - 19186: 0x00005746, - 19187: 0x000241A5, - 19188: 0x00006C6E, - 19189: 0x0000708B, - 19190: 0x00005742, - 19191: 0x000036B1, - 19192: 0x00026C7E, - 19193: 0x000057E6, - 19194: 0x00021416, - 19195: 0x00005803, - 19196: 0x00021454, - 19197: 0x00024363, - 19198: 0x00005826, - 19199: 0x00024BF5, - 19200: 0x0000585C, - 19201: 0x000058AA, - 19202: 0x00003561, - 19203: 0x000058E0, - 19204: 0x000058DC, - 19205: 0x0002123C, - 19206: 0x000058FB, - 19207: 0x00005BFF, - 19208: 0x00005743, - 19209: 0x0002A150, - 19210: 0x00024278, - 19211: 0x000093D3, - 19212: 0x000035A1, - 19213: 0x0000591F, - 19214: 0x000068A6, - 19215: 0x000036C3, - 19216: 0x00006E59, - 19217: 0x0002163E, - 19218: 0x00005A24, - 19219: 0x00005553, - 19220: 0x00021692, - 19221: 0x00008505, - 19222: 0x000059C9, - 19223: 0x00020D4E, - 19224: 0x00026C81, - 19225: 0x00026D2A, - 19226: 0x000217DC, - 19227: 0x000059D9, - 19228: 0x000217FB, - 19229: 0x000217B2, - 19230: 0x00026DA6, - 19231: 0x00006D71, - 19232: 0x00021828, - 19233: 0x000216D5, - 19234: 0x000059F9, - 19235: 0x00026E45, - 19236: 0x00005AAB, - 19237: 0x00005A63, - 19238: 0x000036E6, - 19239: 0x000249A9, - 19240: 0x00005A77, - 19241: 0x00003708, - 19242: 0x00005A96, - 19243: 0x00007465, - 19244: 0x00005AD3, - 19245: 0x00026FA1, - 19246: 0x00022554, - 19247: 0x00003D85, - 19248: 0x00021911, - 19249: 0x00003732, - 19250: 0x000216B8, - 19251: 0x00005E83, - 19252: 0x000052D0, - 19253: 0x00005B76, - 19254: 0x00006588, - 19255: 0x00005B7C, - 19256: 0x00027A0E, - 19257: 0x00004004, - 19258: 0x0000485D, - 19259: 0x00020204, - 19260: 0x00005BD5, - 19261: 0x00006160, - 19262: 0x00021A34, - 19263: 0x000259CC, - 19264: 0x000205A5, - 19265: 0x00005BF3, - 19266: 0x00005B9D, - 19267: 0x00004D10, - 19268: 0x00005C05, - 19269: 0x00021B44, - 19270: 0x00005C13, - 19271: 0x000073CE, - 19272: 0x00005C14, - 19273: 0x00021CA5, - 19274: 0x00026B28, - 19275: 0x00005C49, - 19276: 0x000048DD, - 19277: 0x00005C85, - 19278: 0x00005CE9, - 19279: 0x00005CEF, - 19280: 0x00005D8B, - 19281: 0x00021DF9, - 19282: 0x00021E37, - 19283: 0x00005D10, - 19284: 0x00005D18, - 19285: 0x00005D46, - 19286: 0x00021EA4, - 19287: 0x00005CBA, - 19288: 0x00005DD7, - 19289: 0x000082FC, - 19290: 0x0000382D, - 19291: 0x00024901, - 19292: 0x00022049, - 19293: 0x00022173, - 19294: 0x00008287, - 19295: 0x00003836, - 19296: 0x00003BC2, - 19297: 0x00005E2E, - 19298: 0x00006A8A, - 19299: 0x00005E75, - 19300: 0x00005E7A, - 19301: 0x000244BC, - 19302: 0x00020CD3, - 19303: 0x000053A6, - 19304: 0x00004EB7, - 19305: 0x00005ED0, - 19306: 0x000053A8, - 19307: 0x00021771, - 19308: 0x00005E09, - 19309: 0x00005EF4, - 19310: 0x00028482, - 19311: 0x00005EF9, - 19312: 0x00005EFB, - 19313: 0x000038A0, - 19314: 0x00005EFC, - 19315: 0x0000683E, - 19316: 0x0000941B, - 19317: 0x00005F0D, - 19318: 0x000201C1, - 19319: 0x0002F894, - 19320: 0x00003ADE, - 19321: 0x000048AE, - 19322: 0x0002133A, - 19323: 0x00005F3A, - 19324: 0x00026888, - 19325: 0x000223D0, - 19326: 0x00005F58, - 19327: 0x00022471, - 19328: 0x00005F63, - 19329: 0x000097BD, - 19330: 0x00026E6E, - 19331: 0x00005F72, - 19332: 0x00009340, - 19333: 0x00028A36, - 19334: 0x00005FA7, - 19335: 0x00005DB6, - 19336: 0x00003D5F, - 19337: 0x00025250, - 19338: 0x00021F6A, - 19339: 0x000270F8, - 19340: 0x00022668, - 19341: 0x000091D6, - 19342: 0x0002029E, - 19343: 0x00028A29, - 19344: 0x00006031, - 19345: 0x00006685, - 19346: 0x00021877, - 19347: 0x00003963, - 19348: 0x00003DC7, - 19349: 0x00003639, - 19350: 0x00005790, - 19351: 0x000227B4, - 19352: 0x00007971, - 19353: 0x00003E40, - 19354: 0x0000609E, - 19355: 0x000060A4, - 19356: 0x000060B3, - 19357: 0x00024982, - 19358: 0x0002498F, - 19359: 0x00027A53, - 19360: 0x000074A4, - 19361: 0x000050E1, - 19362: 0x00005AA0, - 19363: 0x00006164, - 19364: 0x00008424, - 19365: 0x00006142, - 19366: 0x0002F8A6, - 19367: 0x00026ED2, - 19368: 0x00006181, - 19369: 0x000051F4, - 19370: 0x00020656, - 19371: 0x00006187, - 19372: 0x00005BAA, - 19373: 0x00023FB7, - 19374: 0x0002285F, - 19375: 0x000061D3, - 19376: 0x00028B9D, - 19377: 0x0002995D, - 19378: 0x000061D0, - 19379: 0x00003932, - 19380: 0x00022980, - 19381: 0x000228C1, - 19382: 0x00006023, - 19383: 0x0000615C, - 19384: 0x0000651E, - 19385: 0x0000638B, - 19386: 0x00020118, - 19387: 0x000062C5, - 19388: 0x00021770, - 19389: 0x000062D5, - 19390: 0x00022E0D, - 19391: 0x0000636C, - 19392: 0x000249DF, - 19393: 0x00003A17, - 19394: 0x00006438, - 19395: 0x000063F8, - 19396: 0x0002138E, - 19397: 0x000217FC, - 19398: 0x00006490, - 19399: 0x00006F8A, - 19400: 0x00022E36, - 19401: 0x00009814, - 19402: 0x0002408C, - 19403: 0x0002571D, - 19404: 0x000064E1, - 19405: 0x000064E5, - 19406: 0x0000947B, - 19407: 0x00003A66, - 19408: 0x0000643A, - 19409: 0x00003A57, - 19410: 0x0000654D, - 19411: 0x00006F16, - 19412: 0x00024A28, - 19413: 0x00024A23, - 19414: 0x00006585, - 19415: 0x0000656D, - 19416: 0x0000655F, - 19417: 0x0002307E, - 19418: 0x000065B5, - 19419: 0x00024940, - 19420: 0x00004B37, - 19421: 0x000065D1, - 19422: 0x000040D8, - 19423: 0x00021829, - 19424: 0x000065E0, - 19425: 0x000065E3, - 19426: 0x00005FDF, - 19427: 0x00023400, - 19428: 0x00006618, - 19429: 0x000231F7, - 19430: 0x000231F8, - 19431: 0x00006644, - 19432: 0x000231A4, - 19433: 0x000231A5, - 19434: 0x0000664B, - 19435: 0x00020E75, - 19436: 0x00006667, - 19437: 0x000251E6, - 19438: 0x00006673, - 19439: 0x00006674, - 19440: 0x00021E3D, - 19441: 0x00023231, - 19442: 0x000285F4, - 19443: 0x000231C8, - 19444: 0x00025313, - 19445: 0x000077C5, - 19446: 0x000228F7, - 19447: 0x000099A4, - 19448: 0x00006702, - 19449: 0x0002439C, - 19450: 0x00024A21, - 19451: 0x00003B2B, - 19452: 0x000069FA, - 19453: 0x000237C2, - 19454: 0x0000675E, - 19455: 0x00006767, - 19456: 0x00006762, - 19457: 0x000241CD, - 19458: 0x000290ED, - 19459: 0x000067D7, - 19460: 0x000044E9, - 19461: 0x00006822, - 19462: 0x00006E50, - 19463: 0x0000923C, - 19464: 0x00006801, - 19465: 0x000233E6, - 19466: 0x00026DA0, - 19467: 0x0000685D, - 19468: 0x0002346F, - 19469: 0x000069E1, - 19470: 0x00006A0B, - 19471: 0x00028ADF, - 19472: 0x00006973, - 19473: 0x000068C3, - 19474: 0x000235CD, - 19475: 0x00006901, - 19476: 0x00006900, - 19477: 0x00003D32, - 19478: 0x00003A01, - 19479: 0x0002363C, - 19480: 0x00003B80, - 19481: 0x000067AC, - 19482: 0x00006961, - 19483: 0x00028A4A, - 19484: 0x000042FC, - 19485: 0x00006936, - 19486: 0x00006998, - 19487: 0x00003BA1, - 19488: 0x000203C9, - 19489: 0x00008363, - 19490: 0x00005090, - 19491: 0x000069F9, - 19492: 0x00023659, - 19493: 0x0002212A, - 19494: 0x00006A45, - 19495: 0x00023703, - 19496: 0x00006A9D, - 19497: 0x00003BF3, - 19498: 0x000067B1, - 19499: 0x00006AC8, - 19500: 0x0002919C, - 19501: 0x00003C0D, - 19502: 0x00006B1D, - 19503: 0x00020923, - 19504: 0x000060DE, - 19505: 0x00006B35, - 19506: 0x00006B74, - 19507: 0x000227CD, - 19508: 0x00006EB5, - 19509: 0x00023ADB, - 19510: 0x000203B5, - 19511: 0x00021958, - 19512: 0x00003740, - 19513: 0x00005421, - 19514: 0x00023B5A, - 19515: 0x00006BE1, - 19516: 0x00023EFC, - 19517: 0x00006BDC, - 19518: 0x00006C37, - 19519: 0x0002248B, - 19520: 0x000248F1, - 19521: 0x00026B51, - 19522: 0x00006C5A, - 19523: 0x00008226, - 19524: 0x00006C79, - 19525: 0x00023DBC, - 19526: 0x000044C5, - 19527: 0x00023DBD, - 19528: 0x000241A4, - 19529: 0x0002490C, - 19530: 0x00024900, - 19531: 0x00023CC9, - 19532: 0x000036E5, - 19533: 0x00003CEB, - 19534: 0x00020D32, - 19535: 0x00009B83, - 19536: 0x000231F9, - 19537: 0x00022491, - 19538: 0x00007F8F, - 19539: 0x00006837, - 19540: 0x00026D25, - 19541: 0x00026DA1, - 19542: 0x00026DEB, - 19543: 0x00006D96, - 19544: 0x00006D5C, - 19545: 0x00006E7C, - 19546: 0x00006F04, - 19547: 0x0002497F, - 19548: 0x00024085, - 19549: 0x00026E72, - 19550: 0x00008533, - 19551: 0x00026F74, - 19552: 0x000051C7, - 19553: 0x00006C9C, - 19554: 0x00006E1D, - 19555: 0x0000842E, - 19556: 0x00028B21, - 19557: 0x00006E2F, - 19558: 0x00023E2F, - 19559: 0x00007453, - 19560: 0x00023F82, - 19561: 0x000079CC, - 19562: 0x00006E4F, - 19563: 0x00005A91, - 19564: 0x0002304B, - 19565: 0x00006FF8, - 19566: 0x0000370D, - 19567: 0x00006F9D, - 19568: 0x00023E30, - 19569: 0x00006EFA, - 19570: 0x00021497, - 19571: 0x0002403D, - 19572: 0x00004555, - 19573: 0x000093F0, - 19574: 0x00006F44, - 19575: 0x00006F5C, - 19576: 0x00003D4E, - 19577: 0x00006F74, - 19578: 0x00029170, - 19579: 0x00003D3B, - 19580: 0x00006F9F, - 19581: 0x00024144, - 19582: 0x00006FD3, - 19583: 0x00024091, - 19584: 0x00024155, - 19585: 0x00024039, - 19586: 0x00023FF0, - 19587: 0x00023FB4, - 19588: 0x0002413F, - 19589: 0x000051DF, - 19590: 0x00024156, - 19591: 0x00024157, - 19592: 0x00024140, - 19593: 0x000261DD, - 19594: 0x0000704B, - 19595: 0x0000707E, - 19596: 0x000070A7, - 19597: 0x00007081, - 19598: 0x000070CC, - 19599: 0x000070D5, - 19600: 0x000070D6, - 19601: 0x000070DF, - 19602: 0x00004104, - 19603: 0x00003DE8, - 19604: 0x000071B4, - 19605: 0x00007196, - 19606: 0x00024277, - 19607: 0x0000712B, - 19608: 0x00007145, - 19609: 0x00005A88, - 19610: 0x0000714A, - 19611: 0x0000716E, - 19612: 0x00005C9C, - 19613: 0x00024365, - 19614: 0x0000714F, - 19615: 0x00009362, - 19616: 0x000242C1, - 19617: 0x0000712C, - 19618: 0x0002445A, - 19619: 0x00024A27, - 19620: 0x00024A22, - 19621: 0x000071BA, - 19622: 0x00028BE8, - 19623: 0x000070BD, - 19624: 0x0000720E, - 19625: 0x00009442, - 19626: 0x00007215, - 19627: 0x00005911, - 19628: 0x00009443, - 19629: 0x00007224, - 19630: 0x00009341, - 19631: 0x00025605, - 19632: 0x0000722E, - 19633: 0x00007240, - 19634: 0x00024974, - 19635: 0x000068BD, - 19636: 0x00007255, - 19637: 0x00007257, - 19638: 0x00003E55, - 19639: 0x00023044, - 19640: 0x0000680D, - 19641: 0x00006F3D, - 19642: 0x00007282, - 19643: 0x0000732A, - 19644: 0x0000732B, - 19645: 0x00024823, - 19646: 0x0002882B, - 19647: 0x000048ED, - 19648: 0x00028804, - 19649: 0x00007328, - 19650: 0x0000732E, - 19651: 0x000073CF, - 19652: 0x000073AA, - 19653: 0x00020C3A, - 19654: 0x00026A2E, - 19655: 0x000073C9, - 19656: 0x00007449, - 19657: 0x000241E2, - 19658: 0x000216E7, - 19659: 0x00024A24, - 19660: 0x00006623, - 19661: 0x000036C5, - 19662: 0x000249B7, - 19663: 0x0002498D, - 19664: 0x000249FB, - 19665: 0x000073F7, - 19666: 0x00007415, - 19667: 0x00006903, - 19668: 0x00024A26, - 19669: 0x00007439, - 19670: 0x000205C3, - 19671: 0x00003ED7, - 19672: 0x0000745C, - 19673: 0x000228AD, - 19674: 0x00007460, - 19675: 0x00028EB2, - 19676: 0x00007447, - 19677: 0x000073E4, - 19678: 0x00007476, - 19679: 0x000083B9, - 19680: 0x0000746C, - 19681: 0x00003730, - 19682: 0x00007474, - 19683: 0x000093F1, - 19684: 0x00006A2C, - 19685: 0x00007482, - 19686: 0x00004953, - 19687: 0x00024A8C, - 19688: 0x0002415F, - 19689: 0x00024A79, - 19690: 0x00028B8F, - 19691: 0x00005B46, - 19692: 0x00028C03, - 19693: 0x0002189E, - 19694: 0x000074C8, - 19695: 0x00021988, - 19696: 0x0000750E, - 19697: 0x000074E9, - 19698: 0x0000751E, - 19699: 0x00028ED9, - 19700: 0x00021A4B, - 19701: 0x00005BD7, - 19702: 0x00028EAC, - 19703: 0x00009385, - 19704: 0x0000754D, - 19705: 0x0000754A, - 19706: 0x00007567, - 19707: 0x0000756E, - 19708: 0x00024F82, - 19709: 0x00003F04, - 19710: 0x00024D13, - 19711: 0x0000758E, - 19712: 0x0000745D, - 19713: 0x0000759E, - 19714: 0x000075B4, - 19715: 0x00007602, - 19716: 0x0000762C, - 19717: 0x00007651, - 19718: 0x0000764F, - 19719: 0x0000766F, - 19720: 0x00007676, - 19721: 0x000263F5, - 19722: 0x00007690, - 19723: 0x000081EF, - 19724: 0x000037F8, - 19725: 0x00026911, - 19726: 0x0002690E, - 19727: 0x000076A1, - 19728: 0x000076A5, - 19729: 0x000076B7, - 19730: 0x000076CC, - 19731: 0x00026F9F, - 19732: 0x00008462, - 19733: 0x0002509D, - 19734: 0x0002517D, - 19735: 0x00021E1C, - 19736: 0x0000771E, - 19737: 0x00007726, - 19738: 0x00007740, - 19739: 0x000064AF, - 19740: 0x00025220, - 19741: 0x00007758, - 19742: 0x000232AC, - 19743: 0x000077AF, - 19744: 0x00028964, - 19745: 0x00028968, - 19746: 0x000216C1, - 19747: 0x000077F4, - 19748: 0x00007809, - 19749: 0x00021376, - 19750: 0x00024A12, - 19751: 0x000068CA, - 19752: 0x000078AF, - 19753: 0x000078C7, - 19754: 0x000078D3, - 19755: 0x000096A5, - 19756: 0x0000792E, - 19757: 0x000255E0, - 19758: 0x000078D7, - 19759: 0x00007934, - 19760: 0x000078B1, - 19761: 0x0002760C, - 19762: 0x00008FB8, - 19763: 0x00008884, - 19764: 0x00028B2B, - 19765: 0x00026083, - 19766: 0x0002261C, - 19767: 0x00007986, - 19768: 0x00008900, - 19769: 0x00006902, - 19770: 0x00007980, - 19771: 0x00025857, - 19772: 0x0000799D, - 19773: 0x00027B39, - 19774: 0x0000793C, - 19775: 0x000079A9, - 19776: 0x00006E2A, - 19777: 0x00027126, - 19778: 0x00003EA8, - 19779: 0x000079C6, - 19780: 0x0002910D, - 19781: 0x000079D4, -} - -const numEncodeTables = 8 - -// encodeX are the encoding tables from Unicode to Big5 code, -// sorted by decreasing length. -// encode0: 42633 entries for runes in [131105, 173738). -// encode1: 29004 entries for runes in [ 11904, 40908). -// encode2: 2176 entries for runes in [ 7870, 10046). -// encode3: 939 entries for runes in [ 167, 1106). -// encode4: 446 entries for runes in [ 65072, 65518). -// encode5: 432 entries for runes in [194597, 195029). -// encode6: 263 entries for runes in [ 63751, 64014). -// encode7: 1 entries for runes in [175615, 175616). - -const encode0Low, encode0High = 131105, 173738 - -var encode0 = [...]uint16{ - 131105 - 131105: 0x9C71, - 131134 - 131105: 0x9375, - 131142 - 131105: 0x9376, - 131150 - 131105: 0x9548, - 131176 - 131105: 0x8EC6, - 131206 - 131105: 0x8BC5, - 131207 - 131105: 0x8BFA, - 131210 - 131105: 0xC87C, - 131220 - 131105: 0x9AB4, - 131274 - 131105: 0x884E, - 131275 - 131105: 0x884B, - 131276 - 131105: 0xC87A, - 131277 - 131105: 0x8848, - 131281 - 131105: 0x8847, - 131310 - 131105: 0xA0F6, - 131340 - 131105: 0x8845, - 131342 - 131105: 0x8853, - 131352 - 131105: 0xFCAD, - 131492 - 131105: 0x8CF5, - 131497 - 131105: 0x8AAD, - 131499 - 131105: 0x9272, - 131521 - 131105: 0xFC47, - 131540 - 131105: 0x94DF, - 131570 - 131105: 0x9FD1, - 131588 - 131105: 0xFBCB, - 131596 - 131105: 0x927D, - 131604 - 131105: 0x98A4, - 131641 - 131105: 0x8CF9, - 131675 - 131105: 0x94E7, - 131700 - 131105: 0x90CB, - 131701 - 131105: 0x927B, - 131737 - 131105: 0x94D8, - 131742 - 131105: 0xFC5F, - 131744 - 131105: 0xFA54, - 131767 - 131105: 0x9AB5, - 131775 - 131105: 0x96DA, - 131776 - 131105: 0x9279, - 131813 - 131105: 0xFA74, - 131850 - 131105: 0x9275, - 131877 - 131105: 0x8DFB, - 131905 - 131105: 0x8A49, - 131909 - 131105: 0x92DF, - 131910 - 131105: 0x9B7C, - 131911 - 131105: 0xFA63, - 131966 - 131105: 0xFA60, - 131967 - 131105: 0x926D, - 131968 - 131105: 0xFA62, - 132000 - 131105: 0x9AB6, - 132007 - 131105: 0x976B, - 132021 - 131105: 0xFD6A, - 132041 - 131105: 0xFD54, - 132043 - 131105: 0x9273, - 132085 - 131105: 0x97D8, - 132092 - 131105: 0x9FBB, - 132115 - 131105: 0x9342, - 132116 - 131105: 0x9276, - 132127 - 131105: 0xFA65, - 132197 - 131105: 0x926C, - 132231 - 131105: 0xFA6E, - 132238 - 131105: 0x9EE0, - 132241 - 131105: 0x92C0, - 132242 - 131105: 0x92BF, - 132259 - 131105: 0x92BE, - 132311 - 131105: 0x9ABA, - 132348 - 131105: 0x8AB3, - 132350 - 131105: 0x9775, - 132423 - 131105: 0xFA40, - 132494 - 131105: 0xFA76, - 132517 - 131105: 0xFBD0, - 132531 - 131105: 0xFA7B, - 132547 - 131105: 0xFE6D, - 132554 - 131105: 0x9BB3, - 132560 - 131105: 0x89CC, - 132565 - 131105: 0x9ABE, - 132575 - 131105: 0xFA42, - 132576 - 131105: 0x92BC, - 132587 - 131105: 0x945C, - 132625 - 131105: 0x9BB5, - 132629 - 131105: 0x9ABF, - 132633 - 131105: 0x98A7, - 132634 - 131105: 0x97A4, - 132656 - 131105: 0x90FD, - 132694 - 131105: 0xFC7B, - 132726 - 131105: 0x9AC0, - 132878 - 131105: 0x92C3, - 132913 - 131105: 0x8AAA, - 132985 - 131105: 0x9BD0, - 133164 - 131105: 0x9550, - 133235 - 131105: 0x92C6, - 133333 - 131105: 0x98A6, - 133398 - 131105: 0x9546, - 133411 - 131105: 0xFD63, - 133460 - 131105: 0xFAC2, - 133497 - 131105: 0x9EC3, - 133607 - 131105: 0x89B2, - 133649 - 131105: 0x9C66, - 133712 - 131105: 0x9053, - 133743 - 131105: 0x8C62, - 133770 - 131105: 0x87A8, - 133812 - 131105: 0x97C1, - 133826 - 131105: 0x9AC4, - 133837 - 131105: 0x9AC5, - 133901 - 131105: 0x8EEF, - 134031 - 131105: 0xFAE9, - 134047 - 131105: 0x8D40, - 134056 - 131105: 0x9262, - 134057 - 131105: 0x8AF7, - 134079 - 131105: 0x9AC6, - 134086 - 131105: 0x92E1, - 134091 - 131105: 0x9AC9, - 134114 - 131105: 0xFAC6, - 134123 - 131105: 0x97A5, - 134139 - 131105: 0x9ACB, - 134143 - 131105: 0xFA72, - 134155 - 131105: 0x8A5E, - 134157 - 131105: 0x94E0, - 134176 - 131105: 0x92CC, - 134196 - 131105: 0x8AE5, - 134202 - 131105: 0xFE5C, - 134203 - 131105: 0x9ACC, - 134209 - 131105: 0x9DF9, - 134210 - 131105: 0x8A43, - 134211 - 131105: 0x8AA6, - 134227 - 131105: 0x9ACD, - 134245 - 131105: 0x9ACE, - 134263 - 131105: 0xFAEE, - 134264 - 131105: 0x9BCC, - 134268 - 131105: 0x9ACF, - 134285 - 131105: 0x9AD1, - 134294 - 131105: 0x9DFA, - 134300 - 131105: 0x9D7C, - 134325 - 131105: 0x9AD3, - 134328 - 131105: 0x97A6, - 134351 - 131105: 0x995F, - 134355 - 131105: 0xFBF6, - 134356 - 131105: 0x9FC5, - 134357 - 131105: 0x8A59, - 134358 - 131105: 0x8B6B, - 134365 - 131105: 0x9AD4, - 134381 - 131105: 0x9AD5, - 134399 - 131105: 0x97A2, - 134421 - 131105: 0x8A44, - 134440 - 131105: 0x9F4A, - 134449 - 131105: 0x90A1, - 134450 - 131105: 0xFDA4, - 134470 - 131105: 0x8A64, - 134471 - 131105: 0x8AF2, - 134472 - 131105: 0x8AF8, - 134473 - 131105: 0x9DD8, - 134476 - 131105: 0x94D6, - 134477 - 131105: 0xFAFE, - 134478 - 131105: 0xFBA7, - 134511 - 131105: 0x9AD6, - 134513 - 131105: 0x9F4D, - 134516 - 131105: 0xFAF6, - 134524 - 131105: 0x8A57, - 134526 - 131105: 0x8B43, - 134527 - 131105: 0x8B44, - 134550 - 131105: 0x8AB6, - 134556 - 131105: 0x8AC0, - 134567 - 131105: 0x9E54, - 134578 - 131105: 0x9AD7, - 134600 - 131105: 0x9AD8, - 134660 - 131105: 0x9ADC, - 134665 - 131105: 0x8ACA, - 134666 - 131105: 0x9EA8, - 134669 - 131105: 0x9263, - 134670 - 131105: 0x9ADD, - 134671 - 131105: 0x8B65, - 134672 - 131105: 0x8B6F, - 134673 - 131105: 0x8B7E, - 134678 - 131105: 0x8F43, - 134685 - 131105: 0x92D0, - 134732 - 131105: 0x8AF4, - 134765 - 131105: 0x9DBE, - 134771 - 131105: 0x9AE1, - 134773 - 131105: 0xFCDE, - 134774 - 131105: 0x9DFD, - 134775 - 131105: 0x8B66, - 134776 - 131105: 0x8B70, - 134777 - 131105: 0x8B75, - 134778 - 131105: 0x8AE4, - 134779 - 131105: 0x8BA4, - 134796 - 131105: 0x8AED, - 134806 - 131105: 0x8A5D, - 134808 - 131105: 0x8B48, - 134813 - 131105: 0x9DED, - 134818 - 131105: 0x9E40, - 134826 - 131105: 0x8AEF, - 134827 - 131105: 0x8AF6, - 134828 - 131105: 0x9E76, - 134838 - 131105: 0x9EE3, - 134871 - 131105: 0x9ADE, - 134872 - 131105: 0x8DFE, - 134877 - 131105: 0xFAFC, - 134904 - 131105: 0x9CB1, - 134905 - 131105: 0x9E77, - 134906 - 131105: 0x8B64, - 134907 - 131105: 0x8B67, - 134941 - 131105: 0x974B, - 134950 - 131105: 0x9653, - 134957 - 131105: 0x9AE0, - 134958 - 131105: 0x8B4A, - 134960 - 131105: 0x8AF1, - 134961 - 131105: 0x8AD7, - 134971 - 131105: 0xA0AB, - 134988 - 131105: 0x8AB5, - 135012 - 131105: 0x8A5F, - 135053 - 131105: 0x8AEE, - 135056 - 131105: 0x9ADF, - 135085 - 131105: 0x8AFE, - 135092 - 131105: 0x8A58, - 135093 - 131105: 0x8BA3, - 135094 - 131105: 0x8BA7, - 135100 - 131105: 0x9AE3, - 135135 - 131105: 0x9261, - 135146 - 131105: 0x9DD7, - 135147 - 131105: 0x9E7D, - 135148 - 131105: 0x9EA7, - 135149 - 131105: 0x9EAB, - 135188 - 131105: 0x9042, - 135197 - 131105: 0x8B79, - 135198 - 131105: 0x8B7A, - 135247 - 131105: 0x9AE6, - 135260 - 131105: 0x9AE5, - 135279 - 131105: 0x8A7E, - 135285 - 131105: 0x9E44, - 135286 - 131105: 0x9AE7, - 135287 - 131105: 0x8A7C, - 135288 - 131105: 0x8B71, - 135291 - 131105: 0x9AE9, - 135304 - 131105: 0x9AEA, - 135318 - 131105: 0x9AEB, - 135325 - 131105: 0x8ABD, - 135348 - 131105: 0xFB4E, - 135359 - 131105: 0x9AED, - 135360 - 131105: 0x8AF9, - 135361 - 131105: 0x9E63, - 135367 - 131105: 0x8B49, - 135368 - 131105: 0x8ACE, - 135369 - 131105: 0x8B6E, - 135375 - 131105: 0x8AE8, - 135379 - 131105: 0x9AEE, - 135396 - 131105: 0x92CE, - 135412 - 131105: 0x8A5A, - 135413 - 131105: 0x8B7B, - 135414 - 131105: 0x8B7C, - 135471 - 131105: 0x9AEF, - 135483 - 131105: 0x9AF0, - 135485 - 131105: 0x8AFA, - 135493 - 131105: 0x8941, - 135496 - 131105: 0x8B72, - 135503 - 131105: 0x8AF3, - 135552 - 131105: 0x8BA8, - 135559 - 131105: 0x9EAE, - 135641 - 131105: 0x9E72, - 135740 - 131105: 0xFB73, - 135759 - 131105: 0xFB5F, - 135804 - 131105: 0x90BA, - 135848 - 131105: 0x91FE, - 135849 - 131105: 0x9EF6, - 135856 - 131105: 0x97ED, - 135907 - 131105: 0x9AF3, - 135934 - 131105: 0xA0EE, - 135938 - 131105: 0x967C, - 135939 - 131105: 0x9345, - 135940 - 131105: 0x986E, - 135941 - 131105: 0xFA56, - 135990 - 131105: 0x9AF5, - 135994 - 131105: 0xFC4B, - 136053 - 131105: 0x9AF4, - 136054 - 131105: 0xFEDE, - 136078 - 131105: 0xFCB7, - 136088 - 131105: 0x97F1, - 136092 - 131105: 0x97C7, - 136133 - 131105: 0x9CCB, - 136134 - 131105: 0x9240, - 136173 - 131105: 0x9CE8, - 136190 - 131105: 0x91FD, - 136211 - 131105: 0x974E, - 136214 - 131105: 0xFB68, - 136228 - 131105: 0x976C, - 136255 - 131105: 0x8CC2, - 136274 - 131105: 0x97E8, - 136276 - 131105: 0xFB6A, - 136277 - 131105: 0x8B74, - 136330 - 131105: 0x8EE7, - 136343 - 131105: 0xFDC8, - 136374 - 131105: 0x9241, - 136424 - 131105: 0x96A1, - 136445 - 131105: 0x8EF3, - 136567 - 131105: 0x9AF7, - 136578 - 131105: 0x8FA6, - 136598 - 131105: 0xFAD6, - 136714 - 131105: 0x9CC7, - 136723 - 131105: 0xFAD7, - 136729 - 131105: 0x9AF8, - 136766 - 131105: 0xFBA1, - 136801 - 131105: 0x8EC5, - 136850 - 131105: 0xFBA4, - 136888 - 131105: 0xFBC2, - 136890 - 131105: 0x9AC1, - 136896 - 131105: 0x91FA, - 136897 - 131105: 0xFEDB, - 136898 - 131105: 0x97AB, - 136915 - 131105: 0x9147, - 136917 - 131105: 0xFBB1, - 136927 - 131105: 0x8FEA, - 136934 - 131105: 0x94D2, - 136935 - 131105: 0xFE61, - 136936 - 131105: 0xFACE, - 136954 - 131105: 0x92ED, - 136955 - 131105: 0x91F3, - 136956 - 131105: 0x93C6, - 136958 - 131105: 0x935A, - 136973 - 131105: 0xFAFB, - 136976 - 131105: 0x92EF, - 136998 - 131105: 0xFAC8, - 137018 - 131105: 0x9847, - 137019 - 131105: 0x9366, - 137020 - 131105: 0x9855, - 137047 - 131105: 0x96E6, - 137068 - 131105: 0x9F43, - 137069 - 131105: 0x9FAA, - 137070 - 131105: 0x94DA, - 137071 - 131105: 0x92EE, - 137072 - 131105: 0xFCAF, - 137073 - 131105: 0xFBFB, - 137075 - 131105: 0x8EF9, - 137076 - 131105: 0x91F6, - 137131 - 131105: 0x9364, - 137136 - 131105: 0x94F5, - 137137 - 131105: 0x9CB6, - 137138 - 131105: 0xFBAD, - 137139 - 131105: 0x984E, - 137140 - 131105: 0x8F44, - 137141 - 131105: 0x96FD, - 137155 - 131105: 0x9AF9, - 137159 - 131105: 0x9AFA, - 137177 - 131105: 0x9769, - 137178 - 131105: 0x95D4, - 137179 - 131105: 0x984B, - 137180 - 131105: 0xFBAA, - 137183 - 131105: 0x987C, - 137199 - 131105: 0x91EA, - 137205 - 131105: 0x9DAF, - 137206 - 131105: 0x9DC5, - 137208 - 131105: 0x91F1, - 137209 - 131105: 0x8EB1, - 137210 - 131105: 0x97A9, - 137211 - 131105: 0xFBAC, - 137212 - 131105: 0xFCB8, - 137248 - 131105: 0x9CB9, - 137256 - 131105: 0xFBB0, - 137257 - 131105: 0xFCD2, - 137258 - 131105: 0x93CB, - 137261 - 131105: 0x9AFD, - 137273 - 131105: 0x91F4, - 137274 - 131105: 0x8BAC, - 137275 - 131105: 0xA055, - 137280 - 131105: 0x9574, - 137285 - 131105: 0x95BE, - 137298 - 131105: 0x97AD, - 137310 - 131105: 0x8EE9, - 137313 - 131105: 0x92F8, - 137314 - 131105: 0x97BE, - 137315 - 131105: 0x916C, - 137316 - 131105: 0x94AA, - 137335 - 131105: 0xFC63, - 137339 - 131105: 0x9DC6, - 137347 - 131105: 0x97B5, - 137348 - 131105: 0x92B8, - 137349 - 131105: 0x91EF, - 137374 - 131105: 0xFEA6, - 137375 - 131105: 0x9760, - 137376 - 131105: 0x9358, - 137377 - 131105: 0x9576, - 137378 - 131105: 0x8FAC, - 137406 - 131105: 0x91EC, - 137407 - 131105: 0x97B4, - 137425 - 131105: 0x91F7, - 137430 - 131105: 0x974A, - 137431 - 131105: 0xFB49, - 137432 - 131105: 0x9578, - 137433 - 131105: 0x93BC, - 137466 - 131105: 0x91D6, - 137475 - 131105: 0x9355, - 137476 - 131105: 0x9356, - 137477 - 131105: 0x9851, - 137488 - 131105: 0x8FF8, - 137489 - 131105: 0xFBC0, - 137490 - 131105: 0x93F2, - 137493 - 131105: 0x90D0, - 137500 - 131105: 0x9C44, - 137506 - 131105: 0x9255, - 137511 - 131105: 0x9363, - 137531 - 131105: 0x91A5, - 137540 - 131105: 0xA0ED, - 137560 - 131105: 0xFD6B, - 137578 - 131105: 0x9AFE, - 137596 - 131105: 0x9351, - 137600 - 131105: 0x8C57, - 137603 - 131105: 0xFA78, - 137608 - 131105: 0xFEA8, - 137622 - 131105: 0x9350, - 137691 - 131105: 0xFA4C, - 137715 - 131105: 0x92F7, - 137773 - 131105: 0x9B40, - 137780 - 131105: 0xFBCE, - 137797 - 131105: 0x9B41, - 137803 - 131105: 0xFEAD, - 137827 - 131105: 0x8761, - 138052 - 131105: 0xFBD5, - 138177 - 131105: 0x8BC2, - 138178 - 131105: 0x9A7C, - 138282 - 131105: 0x9B42, - 138352 - 131105: 0x9B43, - 138402 - 131105: 0x9E79, - 138405 - 131105: 0xFBD9, - 138412 - 131105: 0x9B44, - 138566 - 131105: 0xA0A7, - 138579 - 131105: 0x877B, - 138590 - 131105: 0x876E, - 138640 - 131105: 0x9BF3, - 138678 - 131105: 0x8C79, - 138682 - 131105: 0x935E, - 138698 - 131105: 0x89CB, - 138705 - 131105: 0x9F53, - 138731 - 131105: 0x93D7, - 138745 - 131105: 0xFBE1, - 138780 - 131105: 0xFED0, - 138787 - 131105: 0x8CF1, - 138807 - 131105: 0xFBE2, - 138813 - 131105: 0xFCE3, - 138889 - 131105: 0x9074, - 138916 - 131105: 0xFBE6, - 138920 - 131105: 0x9BB7, - 138952 - 131105: 0x9B45, - 138965 - 131105: 0x9B47, - 139023 - 131105: 0x9F50, - 139029 - 131105: 0x9B48, - 139114 - 131105: 0xFC5B, - 139166 - 131105: 0x98A9, - 139169 - 131105: 0x9CFD, - 139240 - 131105: 0x884C, - 139333 - 131105: 0x9B4B, - 139337 - 131105: 0xFBEC, - 139390 - 131105: 0x8C69, - 139418 - 131105: 0x9BA8, - 139463 - 131105: 0x8AD5, - 139516 - 131105: 0xFA73, - 139562 - 131105: 0xFD59, - 139611 - 131105: 0x91A2, - 139635 - 131105: 0xFBED, - 139642 - 131105: 0x9CA9, - 139681 - 131105: 0x8AA8, - 139713 - 131105: 0x8D42, - 139715 - 131105: 0x9BC3, - 139784 - 131105: 0x8AE1, - 139900 - 131105: 0x9B4E, - 140065 - 131105: 0x95D0, - 140069 - 131105: 0x905F, - 140221 - 131105: 0x97EE, - 140240 - 131105: 0xFC4E, - 140247 - 131105: 0x9B4F, - 140282 - 131105: 0x9B50, - 140389 - 131105: 0x9EC6, - 140401 - 131105: 0xFC50, - 140427 - 131105: 0xFD73, - 140433 - 131105: 0xFDA7, - 140464 - 131105: 0x9DA2, - 140476 - 131105: 0x87D1, - 140481 - 131105: 0x87D3, - 140489 - 131105: 0x87D4, - 140492 - 131105: 0x87D5, - 140525 - 131105: 0xFA58, - 140563 - 131105: 0xFA5E, - 140571 - 131105: 0xA059, - 140592 - 131105: 0xFA75, - 140628 - 131105: 0xFBBE, - 140685 - 131105: 0x9CA2, - 140719 - 131105: 0x9370, - 140734 - 131105: 0x9371, - 140827 - 131105: 0x9377, - 140828 - 131105: 0xFEEF, - 140843 - 131105: 0x936D, - 140904 - 131105: 0xFC5D, - 140922 - 131105: 0x90B8, - 140950 - 131105: 0x8AFC, - 140952 - 131105: 0xFB41, - 141044 - 131105: 0x9E6B, - 141045 - 131105: 0x94E3, - 141046 - 131105: 0x8EE2, - 141074 - 131105: 0x8C7D, - 141076 - 131105: 0x8ED7, - 141083 - 131105: 0x9C4D, - 141087 - 131105: 0x96A3, - 141098 - 131105: 0x9B51, - 141173 - 131105: 0x8AC3, - 141185 - 131105: 0x96AA, - 141206 - 131105: 0x8CE2, - 141236 - 131105: 0xFC68, - 141237 - 131105: 0x8B6D, - 141261 - 131105: 0xFD67, - 141315 - 131105: 0x8AE9, - 141407 - 131105: 0xFCA1, - 141408 - 131105: 0x936C, - 141425 - 131105: 0x9B52, - 141485 - 131105: 0xFE70, - 141505 - 131105: 0xFCA8, - 141559 - 131105: 0xFCE9, - 141606 - 131105: 0x9CB4, - 141625 - 131105: 0x8AEA, - 141647 - 131105: 0x9B53, - 141671 - 131105: 0x9B55, - 141675 - 131105: 0x96AB, - 141696 - 131105: 0xFCA7, - 141715 - 131105: 0x9B56, - 141926 - 131105: 0x8ABC, - 142031 - 131105: 0x8ACB, - 142037 - 131105: 0x9B57, - 142054 - 131105: 0x89CD, - 142056 - 131105: 0x9B59, - 142094 - 131105: 0x9B5B, - 142114 - 131105: 0x93A5, - 142143 - 131105: 0x9B5D, - 142147 - 131105: 0x9E4F, - 142186 - 131105: 0x93A3, - 142282 - 131105: 0x8A7B, - 142286 - 131105: 0x8B42, - 142374 - 131105: 0x9750, - 142375 - 131105: 0x8FB3, - 142392 - 131105: 0x8A50, - 142412 - 131105: 0x9B60, - 142417 - 131105: 0x8B45, - 142421 - 131105: 0x8B46, - 142434 - 131105: 0x9DFE, - 142472 - 131105: 0x9B62, - 142491 - 131105: 0x937B, - 142497 - 131105: 0x93B1, - 142505 - 131105: 0x8A60, - 142514 - 131105: 0x8AD8, - 142519 - 131105: 0x9B63, - 142530 - 131105: 0x8A69, - 142534 - 131105: 0x8A47, - 142537 - 131105: 0x8ACC, - 142599 - 131105: 0x937C, - 142600 - 131105: 0x9B65, - 142610 - 131105: 0x9B66, - 142660 - 131105: 0x8A72, - 142668 - 131105: 0x8A7A, - 142695 - 131105: 0x93AF, - 142733 - 131105: 0x8AB0, - 142741 - 131105: 0x9B68, - 142752 - 131105: 0x9EA3, - 142755 - 131105: 0xFAEC, - 142756 - 131105: 0x8B77, - 142775 - 131105: 0x9B67, - 142830 - 131105: 0x8B59, - 142861 - 131105: 0xFCB1, - 142902 - 131105: 0xFCBB, - 142914 - 131105: 0x9B69, - 142968 - 131105: 0x93A8, - 142987 - 131105: 0x8AE0, - 143027 - 131105: 0x9E51, - 143087 - 131105: 0x8F5F, - 143220 - 131105: 0x9B6A, - 143308 - 131105: 0x9B6B, - 143331 - 131105: 0x97EC, - 143411 - 131105: 0x9B6C, - 143428 - 131105: 0xFE4E, - 143435 - 131105: 0xFDC2, - 143462 - 131105: 0x9B6D, - 143485 - 131105: 0x9167, - 143486 - 131105: 0xFCCC, - 143502 - 131105: 0x93B6, - 143543 - 131105: 0x90E4, - 143548 - 131105: 0x90E5, - 143578 - 131105: 0x9EF2, - 143619 - 131105: 0x93CA, - 143677 - 131105: 0x8BBC, - 143741 - 131105: 0x8F46, - 143746 - 131105: 0x93CF, - 143780 - 131105: 0xFCDB, - 143781 - 131105: 0xFCDC, - 143795 - 131105: 0x93C0, - 143816 - 131105: 0xFCE6, - 143817 - 131105: 0x96E7, - 143850 - 131105: 0x87A7, - 143863 - 131105: 0xFCD8, - 143864 - 131105: 0xFCD9, - 143865 - 131105: 0xFDA6, - 143887 - 131105: 0x93CE, - 143909 - 131105: 0x95F1, - 143919 - 131105: 0x9CE9, - 143921 - 131105: 0xFCE4, - 143922 - 131105: 0x94AF, - 143923 - 131105: 0xFA77, - 143924 - 131105: 0x93CC, - 143958 - 131105: 0x8CE1, - 143966 - 131105: 0x87A9, - 143970 - 131105: 0x905A, - 144001 - 131105: 0x8C54, - 144009 - 131105: 0x93BF, - 144010 - 131105: 0xFB51, - 144043 - 131105: 0x93B9, - 144044 - 131105: 0xFED7, - 144045 - 131105: 0x93B7, - 144082 - 131105: 0x93D9, - 144096 - 131105: 0x93BB, - 144097 - 131105: 0x93DA, - 144128 - 131105: 0x98A3, - 144138 - 131105: 0x90D1, - 144159 - 131105: 0x9B6E, - 144308 - 131105: 0xFA70, - 144332 - 131105: 0x9BEB, - 144350 - 131105: 0x9B6F, - 144358 - 131105: 0xFCFC, - 144372 - 131105: 0x8B40, - 144373 - 131105: 0xA07B, - 144377 - 131105: 0x8CA1, - 144378 - 131105: 0x97F7, - 144382 - 131105: 0x93E2, - 144384 - 131105: 0xFCD6, - 144447 - 131105: 0x9559, - 144464 - 131105: 0x93A6, - 144495 - 131105: 0xFD40, - 144498 - 131105: 0x935F, - 144613 - 131105: 0x97F2, - 144665 - 131105: 0x9C76, - 144688 - 131105: 0x8EF8, - 144721 - 131105: 0x8CEB, - 144730 - 131105: 0x8F47, - 144743 - 131105: 0x9B74, - 144789 - 131105: 0x92B4, - 144793 - 131105: 0x91ED, - 144796 - 131105: 0x96D2, - 144827 - 131105: 0x87D8, - 144845 - 131105: 0xFD46, - 144846 - 131105: 0x8F4F, - 144847 - 131105: 0x9549, - 144883 - 131105: 0x9B75, - 144896 - 131105: 0xFA5C, - 144919 - 131105: 0x8751, - 144922 - 131105: 0x9B79, - 144956 - 131105: 0xFD4B, - 144960 - 131105: 0x96D3, - 144985 - 131105: 0xFD58, - 144991 - 131105: 0x945F, - 145015 - 131105: 0xA0F5, - 145038 - 131105: 0x87C7, - 145054 - 131105: 0x877C, - 145062 - 131105: 0x9243, - 145069 - 131105: 0x97FA, - 145082 - 131105: 0x9DD9, - 145119 - 131105: 0x97F4, - 145134 - 131105: 0x924D, - 145155 - 131105: 0xFD5B, - 145174 - 131105: 0x9B7A, - 145184 - 131105: 0x9ED5, - 145197 - 131105: 0xFAAE, - 145199 - 131105: 0x9CC9, - 145215 - 131105: 0x9258, - 145254 - 131105: 0x8EC8, - 145281 - 131105: 0x94B4, - 145314 - 131105: 0x93E1, - 145340 - 131105: 0x93DF, - 145346 - 131105: 0xFCF0, - 145365 - 131105: 0x93EC, - 145366 - 131105: 0x97F6, - 145367 - 131105: 0x96CF, - 145466 - 131105: 0x93DE, - 145858 - 131105: 0x8ACF, - 146087 - 131105: 0x9BA2, - 146139 - 131105: 0xFD69, - 146158 - 131105: 0x9352, - 146170 - 131105: 0x98A2, - 146202 - 131105: 0x8CE7, - 146266 - 131105: 0xFD6E, - 146531 - 131105: 0x8CA4, - 146585 - 131105: 0xFA7C, - 146586 - 131105: 0x93FA, - 146587 - 131105: 0x907C, - 146613 - 131105: 0x8F67, - 146615 - 131105: 0x9DB7, - 146631 - 131105: 0xA0E9, - 146632 - 131105: 0xFA4E, - 146633 - 131105: 0xFDA1, - 146684 - 131105: 0x9E74, - 146685 - 131105: 0x9FBF, - 146686 - 131105: 0x9ECB, - 146687 - 131105: 0x9BB9, - 146752 - 131105: 0x9DD4, - 146779 - 131105: 0x97B9, - 146814 - 131105: 0x8EF1, - 146831 - 131105: 0x957B, - 146870 - 131105: 0x9ED2, - 146871 - 131105: 0x9753, - 146872 - 131105: 0x96A4, - 146873 - 131105: 0x8FBE, - 146874 - 131105: 0x94D9, - 146875 - 131105: 0x9058, - 146876 - 131105: 0xFD79, - 146877 - 131105: 0xFD7B, - 146915 - 131105: 0x8EDA, - 146936 - 131105: 0x8EFA, - 146950 - 131105: 0x8762, - 146961 - 131105: 0x9BA5, - 146988 - 131105: 0x9ED9, - 146989 - 131105: 0x97D4, - 146990 - 131105: 0x90BB, - 146991 - 131105: 0xFDBC, - 146992 - 131105: 0xFDC6, - 146993 - 131105: 0x9248, - 147001 - 131105: 0x92B5, - 147080 - 131105: 0x9DC1, - 147081 - 131105: 0x92B9, - 147082 - 131105: 0x92A6, - 147083 - 131105: 0x8F4B, - 147129 - 131105: 0x9BA6, - 147135 - 131105: 0x92B6, - 147159 - 131105: 0x8E40, - 147191 - 131105: 0x9ED8, - 147192 - 131105: 0x945E, - 147193 - 131105: 0x985F, - 147194 - 131105: 0x94CE, - 147195 - 131105: 0x924A, - 147196 - 131105: 0xFD70, - 147253 - 131105: 0x9467, - 147265 - 131105: 0x8DEC, - 147274 - 131105: 0x9BD8, - 147297 - 131105: 0x8763, - 147327 - 131105: 0x9448, - 147328 - 131105: 0xFAC1, - 147329 - 131105: 0x9CF7, - 147330 - 131105: 0xFDBE, - 147343 - 131105: 0x8FDA, - 147380 - 131105: 0xFDD9, - 147383 - 131105: 0xFC7E, - 147392 - 131105: 0x93F9, - 147397 - 131105: 0xFA43, - 147435 - 131105: 0xFAEB, - 147436 - 131105: 0xFAC3, - 147437 - 131105: 0x97D3, - 147438 - 131105: 0x95F9, - 147439 - 131105: 0x9C48, - 147440 - 131105: 0xFDD8, - 147473 - 131105: 0xA0D8, - 147513 - 131105: 0xFDD7, - 147514 - 131105: 0xFB4A, - 147515 - 131105: 0x9BAF, - 147516 - 131105: 0x944B, - 147517 - 131105: 0xFDC9, - 147543 - 131105: 0x8EAC, - 147589 - 131105: 0xFDB2, - 147595 - 131105: 0x925A, - 147596 - 131105: 0xFCBD, - 147597 - 131105: 0x92D9, - 147601 - 131105: 0xFDD5, - 147657 - 131105: 0x92DD, - 147681 - 131105: 0x9259, - 147692 - 131105: 0x8CF0, - 147716 - 131105: 0x96BA, - 147727 - 131105: 0x925B, - 147737 - 131105: 0x9BAB, - 147775 - 131105: 0xFDDA, - 147776 - 131105: 0xFDDE, - 147780 - 131105: 0xFDD3, - 147790 - 131105: 0x8C46, - 147797 - 131105: 0xFDD6, - 147798 - 131105: 0xFDDC, - 147799 - 131105: 0xFDDD, - 147804 - 131105: 0x90FE, - 147807 - 131105: 0xFEA1, - 147809 - 131105: 0x87A5, - 147831 - 131105: 0x8BAD, - 147834 - 131105: 0x9CD8, - 147875 - 131105: 0x9E6D, - 147876 - 131105: 0xFD7C, - 147877 - 131105: 0xFB61, - 147884 - 131105: 0x96F8, - 147893 - 131105: 0x96F0, - 147917 - 131105: 0xFCF4, - 147938 - 131105: 0xFE60, - 147964 - 131105: 0x9852, - 147995 - 131105: 0x964F, - 148043 - 131105: 0x916E, - 148054 - 131105: 0x986D, - 148057 - 131105: 0x9864, - 148086 - 131105: 0x9453, - 148087 - 131105: 0xFDEC, - 148088 - 131105: 0xFB78, - 148100 - 131105: 0x95BA, - 148115 - 131105: 0x985D, - 148117 - 131105: 0x92F9, - 148133 - 131105: 0x985A, - 148159 - 131105: 0x8750, - 148161 - 131105: 0xFDF6, - 148169 - 131105: 0x93D0, - 148170 - 131105: 0x9862, - 148206 - 131105: 0x9BAD, - 148218 - 131105: 0x974F, - 148237 - 131105: 0x9BAE, - 148250 - 131105: 0x9452, - 148276 - 131105: 0x9BB0, - 148296 - 131105: 0x91D2, - 148322 - 131105: 0x97EA, - 148323 - 131105: 0xFB6B, - 148324 - 131105: 0x91B1, - 148325 - 131105: 0xFDF3, - 148364 - 131105: 0x92CB, - 148374 - 131105: 0x9BB1, - 148380 - 131105: 0xFCEC, - 148413 - 131105: 0x986B, - 148417 - 131105: 0x9751, - 148457 - 131105: 0x9871, - 148458 - 131105: 0x95EF, - 148466 - 131105: 0x9EF3, - 148472 - 131105: 0x91E8, - 148484 - 131105: 0x9BBA, - 148533 - 131105: 0xFB4C, - 148534 - 131105: 0x926A, - 148570 - 131105: 0xFDF8, - 148571 - 131105: 0x9861, - 148595 - 131105: 0x91E7, - 148615 - 131105: 0x93ED, - 148616 - 131105: 0x9744, - 148665 - 131105: 0x91E1, - 148668 - 131105: 0xFBF5, - 148686 - 131105: 0x9869, - 148691 - 131105: 0x8A62, - 148694 - 131105: 0x9BBB, - 148741 - 131105: 0x8CA8, - 148769 - 131105: 0x9C55, - 148856 - 131105: 0x8E77, - 148936 - 131105: 0x8AB2, - 149016 - 131105: 0x9EBC, - 149034 - 131105: 0x93E6, - 149093 - 131105: 0x93A2, - 149108 - 131105: 0x9BBD, - 149143 - 131105: 0x94B3, - 149204 - 131105: 0x937D, - 149254 - 131105: 0x9E66, - 149285 - 131105: 0x9459, - 149295 - 131105: 0x9BBF, - 149391 - 131105: 0x9458, - 149472 - 131105: 0x9EA5, - 149522 - 131105: 0x9BC7, - 149539 - 131105: 0xFE54, - 149634 - 131105: 0x8E74, - 149737 - 131105: 0x8BD6, - 149744 - 131105: 0x94B6, - 149745 - 131105: 0xFD74, - 149746 - 131105: 0x98C0, - 149747 - 131105: 0x94A5, - 149755 - 131105: 0x9BC8, - 149759 - 131105: 0x95ED, - 149760 - 131105: 0xFD7E, - 149761 - 131105: 0xFBEB, - 149772 - 131105: 0xFD7D, - 149782 - 131105: 0x976F, - 149783 - 131105: 0x9461, - 149785 - 131105: 0x9FC1, - 149807 - 131105: 0x95D7, - 149811 - 131105: 0xFA52, - 149812 - 131105: 0x9C58, - 149822 - 131105: 0x9F68, - 149823 - 131105: 0x9BE7, - 149824 - 131105: 0xFCCE, - 149825 - 131105: 0x96E8, - 149826 - 131105: 0xFA49, - 149827 - 131105: 0x97A1, - 149858 - 131105: 0x954D, - 149859 - 131105: 0x9EF8, - 149876 - 131105: 0xFE49, - 149877 - 131105: 0x91CE, - 149878 - 131105: 0x9771, - 149883 - 131105: 0x8CCF, - 149887 - 131105: 0xFDB1, - 149890 - 131105: 0xFC6E, - 149896 - 131105: 0x9CF2, - 149897 - 131105: 0x93B8, - 149898 - 131105: 0x9043, - 149899 - 131105: 0x9759, - 149900 - 131105: 0x94D7, - 149901 - 131105: 0xFE66, - 149902 - 131105: 0x947D, - 149903 - 131105: 0xFC6F, - 149908 - 131105: 0x9246, - 149924 - 131105: 0xFA6D, - 149927 - 131105: 0x8EF7, - 149929 - 131105: 0xFBB7, - 149931 - 131105: 0x947C, - 149932 - 131105: 0x92CD, - 149933 - 131105: 0x97B2, - 149943 - 131105: 0xFE65, - 149944 - 131105: 0x967E, - 149945 - 131105: 0x9758, - 149946 - 131105: 0x9B77, - 149947 - 131105: 0x91CF, - 149957 - 131105: 0x94A4, - 149968 - 131105: 0x9CAD, - 149978 - 131105: 0x8BAB, - 149982 - 131105: 0x96D5, - 149983 - 131105: 0xFCB3, - 149987 - 131105: 0x93AE, - 149989 - 131105: 0x976D, - 149996 - 131105: 0x9446, - 149997 - 131105: 0x95F7, - 150006 - 131105: 0x9C46, - 150007 - 131105: 0x955B, - 150008 - 131105: 0x91D1, - 150009 - 131105: 0x94F4, - 150011 - 131105: 0xFE67, - 150030 - 131105: 0x92A5, - 150034 - 131105: 0xFEDF, - 150035 - 131105: 0x8CAB, - 150037 - 131105: 0x9BC9, - 150049 - 131105: 0xFCED, - 150050 - 131105: 0xFDFA, - 150051 - 131105: 0xFCC8, - 150052 - 131105: 0xFE62, - 150053 - 131105: 0x91FC, - 150054 - 131105: 0xFE6B, - 150055 - 131105: 0xFDF9, - 150056 - 131105: 0xFCC7, - 150057 - 131105: 0x914E, - 150058 - 131105: 0x9CB8, - 150078 - 131105: 0x9767, - 150082 - 131105: 0x95EE, - 150085 - 131105: 0x9BB2, - 150090 - 131105: 0x9460, - 150094 - 131105: 0x94A2, - 150095 - 131105: 0x9875, - 150096 - 131105: 0x97AC, - 150097 - 131105: 0x91D3, - 150109 - 131105: 0x987B, - 150117 - 131105: 0x8EEB, - 150118 - 131105: 0x976A, - 150119 - 131105: 0x965E, - 150129 - 131105: 0x97EB, - 150135 - 131105: 0x9FF9, - 150136 - 131105: 0x95F8, - 150137 - 131105: 0xFEA2, - 150138 - 131105: 0x8FE6, - 150156 - 131105: 0xFE7E, - 150163 - 131105: 0x9DA4, - 150164 - 131105: 0x9768, - 150165 - 131105: 0x8EEC, - 150166 - 131105: 0x94BD, - 150180 - 131105: 0x945B, - 150181 - 131105: 0x9CF6, - 150182 - 131105: 0xFAA7, - 150183 - 131105: 0x9BD9, - 150193 - 131105: 0xFA5D, - 150194 - 131105: 0x9656, - 150195 - 131105: 0x9762, - 150202 - 131105: 0x94BA, - 150203 - 131105: 0xA04F, - 150204 - 131105: 0x92D8, - 150208 - 131105: 0x9BCB, - 150215 - 131105: 0x94BB, - 150218 - 131105: 0x9D5F, - 150225 - 131105: 0x90CF, - 150239 - 131105: 0x9465, - 150242 - 131105: 0x9F4C, - 150249 - 131105: 0x90D8, - 150287 - 131105: 0x8D5B, - 150382 - 131105: 0x9EBE, - 150517 - 131105: 0xFB6D, - 150537 - 131105: 0x95CA, - 150686 - 131105: 0x9DC2, - 150687 - 131105: 0x97F8, - 150729 - 131105: 0x8FFC, - 150745 - 131105: 0x9473, - 150790 - 131105: 0x9474, - 150803 - 131105: 0xFEB7, - 150968 - 131105: 0x8A4B, - 151018 - 131105: 0x8A55, - 151019 - 131105: 0x8B69, - 151099 - 131105: 0x8ADC, - 151120 - 131105: 0x8B76, - 151205 - 131105: 0x9BCE, - 151207 - 131105: 0x8A68, - 151310 - 131105: 0xA0F8, - 151388 - 131105: 0x98DF, - 151426 - 131105: 0xFEB5, - 151430 - 131105: 0x9BCF, - 151447 - 131105: 0x96FB, - 151450 - 131105: 0x9BFB, - 151465 - 131105: 0x9ECE, - 151480 - 131105: 0x8EE5, - 151490 - 131105: 0x9E7B, - 151596 - 131105: 0x9BD2, - 151634 - 131105: 0x8AA5, - 151709 - 131105: 0xFECE, - 151851 - 131105: 0x8A45, - 151880 - 131105: 0x9DFC, - 151933 - 131105: 0xFECF, - 151934 - 131105: 0x8BA5, - 152013 - 131105: 0x8C4A, - 152035 - 131105: 0x8AEC, - 152038 - 131105: 0xFCE0, - 152039 - 131105: 0x94AD, - 152096 - 131105: 0xFED5, - 152097 - 131105: 0x94AC, - 152144 - 131105: 0xFC5A, - 152217 - 131105: 0x9BD6, - 152263 - 131105: 0x8A6F, - 152280 - 131105: 0x8BA9, - 152334 - 131105: 0x8E5F, - 152337 - 131105: 0x9DCB, - 152339 - 131105: 0xFCE7, - 152601 - 131105: 0x9BD7, - 152613 - 131105: 0x93C8, - 152623 - 131105: 0x91F0, - 152624 - 131105: 0x8FE0, - 152646 - 131105: 0x9BDB, - 152684 - 131105: 0x90ED, - 152686 - 131105: 0x9BDC, - 152730 - 131105: 0x8D53, - 152881 - 131105: 0xA0EC, - 152885 - 131105: 0x98FA, - 152895 - 131105: 0x9BE0, - 152923 - 131105: 0x93C7, - 152924 - 131105: 0x9249, - 152925 - 131105: 0x96E1, - 152926 - 131105: 0x9BE2, - 152930 - 131105: 0x9BE4, - 152933 - 131105: 0x8FE1, - 152934 - 131105: 0x9BE5, - 152961 - 131105: 0x94C0, - 152964 - 131105: 0x93C3, - 152975 - 131105: 0x93C5, - 153017 - 131105: 0x9079, - 153045 - 131105: 0x977B, - 153051 - 131105: 0x907E, - 153056 - 131105: 0xFEE6, - 153093 - 131105: 0xFE46, - 153141 - 131105: 0x9DB8, - 153169 - 131105: 0x9270, - 153219 - 131105: 0x95A8, - 153237 - 131105: 0x8CB0, - 153315 - 131105: 0x94C8, - 153334 - 131105: 0x98B9, - 153350 - 131105: 0x9140, - 153373 - 131105: 0xFCBE, - 153381 - 131105: 0x9157, - 153405 - 131105: 0x8BB2, - 153458 - 131105: 0xFADF, - 153543 - 131105: 0x9BE6, - 153567 - 131105: 0x9643, - 153568 - 131105: 0x8E44, - 153569 - 131105: 0x9C4F, - 153687 - 131105: 0xFEF4, - 153693 - 131105: 0x9BE8, - 153714 - 131105: 0x93DC, - 153800 - 131105: 0x966F, - 153822 - 131105: 0x87A1, - 153825 - 131105: 0x8E4A, - 153859 - 131105: 0x9BED, - 153926 - 131105: 0x92F6, - 153942 - 131105: 0x9DB9, - 154028 - 131105: 0x8E4E, - 154060 - 131105: 0xFBCF, - 154196 - 131105: 0x8760, - 154261 - 131105: 0x9EC2, - 154268 - 131105: 0x94E5, - 154286 - 131105: 0x9BF0, - 154287 - 131105: 0x94E4, - 154345 - 131105: 0x9551, - 154484 - 131105: 0x8BBB, - 154505 - 131105: 0x9BF1, - 154547 - 131105: 0x94F0, - 154548 - 131105: 0x8E64, - 154566 - 131105: 0x94EA, - 154596 - 131105: 0x8F61, - 154600 - 131105: 0x9B64, - 154625 - 131105: 0x8E5B, - 154630 - 131105: 0x9BF2, - 154657 - 131105: 0x9FBE, - 154698 - 131105: 0x9DC9, - 154725 - 131105: 0x8E6C, - 154769 - 131105: 0x8F73, - 154788 - 131105: 0x8CAF, - 154816 - 131105: 0x8F75, - 154817 - 131105: 0x8E71, - 154878 - 131105: 0x8E60, - 154912 - 131105: 0x8E6A, - 154928 - 131105: 0x8C4C, - 154947 - 131105: 0x9552, - 155033 - 131105: 0x87CF, - 155065 - 131105: 0x87C0, - 155150 - 131105: 0x9554, - 155209 - 131105: 0x8AD4, - 155265 - 131105: 0x9DBB, - 155266 - 131105: 0x9543, - 155267 - 131105: 0x92FE, - 155302 - 131105: 0x94F2, - 155324 - 131105: 0x94F1, - 155351 - 131105: 0xA0EA, - 155352 - 131105: 0x9DD2, - 155418 - 131105: 0xA0B1, - 155467 - 131105: 0x91F8, - 155617 - 131105: 0x9462, - 155618 - 131105: 0x9BA4, - 155681 - 131105: 0x877D, - 155689 - 131105: 0x8EAD, - 155720 - 131105: 0x9EAD, - 155748 - 131105: 0x96D0, - 155779 - 131105: 0xFEEE, - 155799 - 131105: 0x8AB4, - 155812 - 131105: 0x9757, - 155813 - 131105: 0x8A77, - 155906 - 131105: 0x9BF7, - 155937 - 131105: 0x8EB5, - 155993 - 131105: 0xA06D, - 155994 - 131105: 0x8EB6, - 155995 - 131105: 0x9756, - 155996 - 131105: 0x9540, - 156077 - 131105: 0xA0F3, - 156078 - 131105: 0x94BE, - 156082 - 131105: 0x9BFA, - 156125 - 131105: 0xFDDF, - 156248 - 131105: 0x9DBC, - 156257 - 131105: 0x94FE, - 156266 - 131105: 0x8BDB, - 156267 - 131105: 0xA0FE, - 156368 - 131105: 0x8EC0, - 156469 - 131105: 0x9F47, - 156491 - 131105: 0x8BDE, - 156492 - 131105: 0xA0FB, - 156497 - 131105: 0x8EC3, - 156606 - 131105: 0x9649, - 156661 - 131105: 0xFEC2, - 156664 - 131105: 0x954C, - 156674 - 131105: 0x9BFD, - 156688 - 131105: 0x90CC, - 156689 - 131105: 0x9C60, - 156690 - 131105: 0x954B, - 156746 - 131105: 0x9BFE, - 156777 - 131105: 0x9C70, - 156804 - 131105: 0x9C43, - 156808 - 131105: 0x9C47, - 156809 - 131105: 0x8ECC, - 156813 - 131105: 0x8E54, - 156824 - 131105: 0x8EE4, - 156946 - 131105: 0x9C49, - 157042 - 131105: 0x8B5E, - 157088 - 131105: 0x955E, - 157101 - 131105: 0x955C, - 157119 - 131105: 0x9C4B, - 157202 - 131105: 0x8BE1, - 157222 - 131105: 0x8ED9, - 157359 - 131105: 0x9DB4, - 157361 - 131105: 0x925F, - 157365 - 131105: 0x9C4C, - 157402 - 131105: 0x8AA1, - 157416 - 131105: 0x8EDB, - 157436 - 131105: 0x9C56, - 157462 - 131105: 0x8AA2, - 157505 - 131105: 0x9754, - 157593 - 131105: 0x9C5E, - 157619 - 131105: 0x9ED4, - 157620 - 131105: 0x9568, - 157644 - 131105: 0xA0C3, - 157724 - 131105: 0x8AE6, - 157766 - 131105: 0xA0F7, - 157790 - 131105: 0x9C61, - 157806 - 131105: 0x9C5F, - 157832 - 131105: 0xFC4D, - 157834 - 131105: 0x9E5B, - 157843 - 131105: 0x9E69, - 157895 - 131105: 0x9C63, - 157966 - 131105: 0xFEC7, - 157969 - 131105: 0xFEC6, - 157990 - 131105: 0x9C67, - 158009 - 131105: 0x9C69, - 158033 - 131105: 0x8BE2, - 158120 - 131105: 0x9165, - 158133 - 131105: 0x9CE7, - 158194 - 131105: 0x8A54, - 158202 - 131105: 0x9C6C, - 158253 - 131105: 0x9C6E, - 158254 - 131105: 0xFE5D, - 158260 - 131105: 0x9C73, - 158274 - 131105: 0x956A, - 158289 - 131105: 0x956D, - 158290 - 131105: 0x8EF0, - 158469 - 131105: 0x8F4D, - 158474 - 131105: 0x8EF6, - 158483 - 131105: 0xFABC, - 158485 - 131105: 0x8CD5, - 158499 - 131105: 0x875E, - 158504 - 131105: 0xFBDA, - 158544 - 131105: 0x8B4C, - 158545 - 131105: 0xFD75, - 158546 - 131105: 0x9BDD, - 158547 - 131105: 0xFAF5, - 158555 - 131105: 0x9C74, - 158581 - 131105: 0x9545, - 158594 - 131105: 0x96C6, - 158614 - 131105: 0x8F6A, - 158615 - 131105: 0x8F4E, - 158621 - 131105: 0x9C78, - 158643 - 131105: 0xFA55, - 158656 - 131105: 0x97E4, - 158711 - 131105: 0x9C41, - 158753 - 131105: 0x925C, - 158784 - 131105: 0x96FA, - 158785 - 131105: 0x8CF6, - 158790 - 131105: 0x8D4D, - 158846 - 131105: 0xFB66, - 158847 - 131105: 0x8E65, - 158848 - 131105: 0x9849, - 158849 - 131105: 0xFBA8, - 158850 - 131105: 0x9842, - 158884 - 131105: 0x9C7A, - 158903 - 131105: 0x97FB, - 158904 - 131105: 0x90CA, - 158909 - 131105: 0x9C5B, - 158912 - 131105: 0x974D, - 158915 - 131105: 0x8ED3, - 158929 - 131105: 0x9561, - 159010 - 131105: 0x9F4B, - 159011 - 131105: 0x9FB5, - 159012 - 131105: 0x93D2, - 159013 - 131105: 0xFDAA, - 159014 - 131105: 0x9840, - 159015 - 131105: 0x9146, - 159016 - 131105: 0x9867, - 159017 - 131105: 0xFA5A, - 159018 - 131105: 0xFBA9, - 159057 - 131105: 0x9841, - 159092 - 131105: 0x8CD3, - 159136 - 131105: 0xFCFD, - 159137 - 131105: 0xFDAB, - 159138 - 131105: 0x91BD, - 159139 - 131105: 0x8F4C, - 159140 - 131105: 0x96C9, - 159141 - 131105: 0x8F55, - 159142 - 131105: 0xFBAE, - 159143 - 131105: 0x956F, - 159150 - 131105: 0x9C7D, - 159196 - 131105: 0xA0F0, - 159210 - 131105: 0x946F, - 159211 - 131105: 0xFDAC, - 159216 - 131105: 0x96CB, - 159232 - 131105: 0x96CE, - 159237 - 131105: 0xA056, - 159239 - 131105: 0x9CE1, - 159250 - 131105: 0x96C4, - 159298 - 131105: 0x8F5E, - 159299 - 131105: 0x8F6C, - 159300 - 131105: 0x8EA3, - 159301 - 131105: 0xFBB3, - 159342 - 131105: 0xFC53, - 159346 - 131105: 0xFDB3, - 159351 - 131105: 0x8F6B, - 159364 - 131105: 0x96CA, - 159368 - 131105: 0x87CD, - 159371 - 131105: 0x8753, - 159385 - 131105: 0x8F79, - 159440 - 131105: 0x9E6F, - 159441 - 131105: 0xA0C5, - 159442 - 131105: 0xFC78, - 159443 - 131105: 0x8E42, - 159444 - 131105: 0x8F5A, - 159445 - 131105: 0x90C2, - 159446 - 131105: 0x8EA5, - 159447 - 131105: 0x9061, - 159526 - 131105: 0x924F, - 159603 - 131105: 0x9373, - 159604 - 131105: 0xFDB5, - 159647 - 131105: 0xFECC, - 159649 - 131105: 0xFBBD, - 159678 - 131105: 0x8CD6, - 159710 - 131105: 0x9843, - 159711 - 131105: 0x96C5, - 159758 - 131105: 0x89BC, - 159819 - 131105: 0x9CA3, - 159826 - 131105: 0x924B, - 159827 - 131105: 0x984A, - 159880 - 131105: 0x8FA4, - 159917 - 131105: 0xA0F1, - 159918 - 131105: 0x9EFB, - 159919 - 131105: 0x9CD2, - 159949 - 131105: 0x8FA7, - 159954 - 131105: 0x8754, - 159992 - 131105: 0xFC5C, - 160009 - 131105: 0x9845, - 160012 - 131105: 0x9046, - 160013 - 131105: 0x8CD1, - 160038 - 131105: 0xFEFA, - 160039 - 131105: 0x9560, - 160100 - 131105: 0x9F48, - 160101 - 131105: 0x9247, - 160117 - 131105: 0x90FB, - 160205 - 131105: 0x9CA4, - 160283 - 131105: 0x9571, - 160359 - 131105: 0x8745, - 160384 - 131105: 0x9CA6, - 160389 - 131105: 0x9CA7, - 160395 - 131105: 0x9CAA, - 160434 - 131105: 0x9ED3, - 160438 - 131105: 0x9E70, - 160486 - 131105: 0x9CAC, - 160594 - 131105: 0x8752, - 160666 - 131105: 0x8FAE, - 160767 - 131105: 0x8D50, - 160802 - 131105: 0x957D, - 160848 - 131105: 0x9CB0, - 160900 - 131105: 0x97B6, - 160902 - 131105: 0xA0BD, - 161140 - 131105: 0x8ADF, - 161187 - 131105: 0x9EAA, - 161248 - 131105: 0x8FBD, - 161252 - 131105: 0x8FBF, - 161277 - 131105: 0x9369, - 161278 - 131105: 0x9BA7, - 161287 - 131105: 0xC8A4, - 161292 - 131105: 0xFEEA, - 161330 - 131105: 0x9BE1, - 161337 - 131105: 0x8B41, - 161365 - 131105: 0x9DB6, - 161366 - 131105: 0xA0EB, - 161367 - 131105: 0x9BA3, - 161428 - 131105: 0x8BA1, - 161551 - 131105: 0x8FC8, - 161589 - 131105: 0x894C, - 161590 - 131105: 0x9860, - 161601 - 131105: 0x94C7, - 161630 - 131105: 0x8B58, - 161668 - 131105: 0x95AB, - 161669 - 131105: 0x95AA, - 161740 - 131105: 0x9CC3, - 161880 - 131105: 0x9CC4, - 161904 - 131105: 0x93D6, - 161949 - 131105: 0x9DAC, - 161970 - 131105: 0x8BE6, - 161992 - 131105: 0x8A71, - 162084 - 131105: 0x8FD1, - 162151 - 131105: 0x99D5, - 162170 - 131105: 0x90F4, - 162208 - 131105: 0x8AA3, - 162269 - 131105: 0x9CCE, - 162301 - 131105: 0x9CD4, - 162314 - 131105: 0x9CD5, - 162318 - 131105: 0xFBC8, - 162366 - 131105: 0x9DB3, - 162387 - 131105: 0xFC70, - 162393 - 131105: 0x8FD7, - 162425 - 131105: 0x9B73, - 162436 - 131105: 0xFA5B, - 162493 - 131105: 0x8FD2, - 162494 - 131105: 0x9064, - 162548 - 131105: 0x98B6, - 162566 - 131105: 0x9668, - 162571 - 131105: 0x9CD6, - 162584 - 131105: 0x98BD, - 162616 - 131105: 0x8FDC, - 162617 - 131105: 0xFEF6, - 162618 - 131105: 0x8FD9, - 162632 - 131105: 0x9541, - 162661 - 131105: 0x87CA, - 162799 - 131105: 0x876C, - 162804 - 131105: 0x97F3, - 162834 - 131105: 0x9BF8, - 162924 - 131105: 0x875A, - 162993 - 131105: 0x8748, - 163013 - 131105: 0x874A, - 163119 - 131105: 0x9E6C, - 163155 - 131105: 0x8FF2, - 163156 - 131105: 0x8FEE, - 163174 - 131105: 0x9CD7, - 163187 - 131105: 0x9E6E, - 163204 - 131105: 0x8A40, - 163215 - 131105: 0x8FEF, - 163224 - 131105: 0x8FF4, - 163261 - 131105: 0x8FF5, - 163292 - 131105: 0x95C2, - 163405 - 131105: 0x986A, - 163407 - 131105: 0x97CF, - 163630 - 131105: 0x9EE5, - 163833 - 131105: 0x9E7C, - 163842 - 131105: 0x9041, - 163849 - 131105: 0x9CDB, - 163870 - 131105: 0x9441, - 163875 - 131105: 0x9CE6, - 163876 - 131105: 0x9DB0, - 163912 - 131105: 0x9CEA, - 163971 - 131105: 0x9CED, - 163984 - 131105: 0x9CFA, - 164029 - 131105: 0x8B62, - 164030 - 131105: 0x8A4E, - 164072 - 131105: 0x9CCA, - 164073 - 131105: 0x8A66, - 164084 - 131105: 0x9CFB, - 164142 - 131105: 0x9CFC, - 164175 - 131105: 0x9CFE, - 164189 - 131105: 0x8A53, - 164207 - 131105: 0x9CE5, - 164233 - 131105: 0x9D40, - 164271 - 131105: 0x9D41, - 164284 - 131105: 0x9045, - 164359 - 131105: 0x8B73, - 164376 - 131105: 0x97CA, - 164378 - 131105: 0x9D42, - 164438 - 131105: 0x8A61, - 164476 - 131105: 0x8BAE, - 164507 - 131105: 0x8AD2, - 164557 - 131105: 0x8BA2, - 164578 - 131105: 0x9DF2, - 164614 - 131105: 0x9D43, - 164632 - 131105: 0x9CDF, - 164655 - 131105: 0x9D44, - 164666 - 131105: 0x8ECA, - 164709 - 131105: 0x904E, - 164717 - 131105: 0x8EB3, - 164733 - 131105: 0x9FF5, - 164746 - 131105: 0x9D45, - 164882 - 131105: 0x904F, - 164968 - 131105: 0x9D47, - 164972 - 131105: 0x89CA, - 164979 - 131105: 0x9CB5, - 164994 - 131105: 0xFBFE, - 165121 - 131105: 0x905E, - 165180 - 131105: 0x9063, - 165181 - 131105: 0x9057, - 165228 - 131105: 0x9066, - 165352 - 131105: 0x9BC0, - 165364 - 131105: 0xFCE5, - 165376 - 131105: 0x9162, - 165387 - 131105: 0x9067, - 165413 - 131105: 0x8FA1, - 165435 - 131105: 0x8FA2, - 165546 - 131105: 0x9D48, - 165547 - 131105: 0xFAD3, - 165554 - 131105: 0x8D4F, - 165564 - 131105: 0x905D, - 165592 - 131105: 0x90B9, - 165606 - 131105: 0x906B, - 165647 - 131105: 0x8C5C, - 165651 - 131105: 0x9069, - 165892 - 131105: 0xFE57, - 165931 - 131105: 0xFE55, - 166157 - 131105: 0x87A6, - 166195 - 131105: 0x9073, - 166216 - 131105: 0x9BEF, - 166217 - 131105: 0x9CF0, - 166230 - 131105: 0x9D4B, - 166244 - 131105: 0xFED9, - 166248 - 131105: 0xFEDA, - 166252 - 131105: 0x91E0, - 166253 - 131105: 0x8D43, - 166270 - 131105: 0x91D8, - 166281 - 131105: 0x9646, - 166312 - 131105: 0x9360, - 166314 - 131105: 0xFA53, - 166315 - 131105: 0x9CD3, - 166328 - 131105: 0x9D4E, - 166332 - 131105: 0xFB40, - 166336 - 131105: 0x8DE2, - 166364 - 131105: 0x9442, - 166366 - 131105: 0x9056, - 166369 - 131105: 0x9865, - 166371 - 131105: 0x8C6C, - 166372 - 131105: 0xFA4A, - 166375 - 131105: 0x9D50, - 166376 - 131105: 0x9D52, - 166393 - 131105: 0x95AF, - 166394 - 131105: 0x975A, - 166395 - 131105: 0x9349, - 166396 - 131105: 0x9747, - 166415 - 131105: 0xA0F4, - 166422 - 131105: 0x9778, - 166437 - 131105: 0x8FCF, - 166441 - 131105: 0xFC60, - 166450 - 131105: 0x8C4E, - 166454 - 131105: 0xFC56, - 166468 - 131105: 0x91DC, - 166469 - 131105: 0x9661, - 166470 - 131105: 0x92EC, - 166471 - 131105: 0x935D, - 166472 - 131105: 0x8EDE, - 166473 - 131105: 0x96FE, - 166474 - 131105: 0xFD4F, - 166475 - 131105: 0x95DE, - 166489 - 131105: 0x98B0, - 166490 - 131105: 0xA040, - 166529 - 131105: 0x97BD, - 166530 - 131105: 0x977D, - 166531 - 131105: 0x97F5, - 166554 - 131105: 0x9BAC, - 166555 - 131105: 0xFADA, - 166556 - 131105: 0x92C2, - 166592 - 131105: 0x97B1, - 166598 - 131105: 0x907B, - 166603 - 131105: 0x93FE, - 166604 - 131105: 0x947B, - 166606 - 131105: 0x9777, - 166622 - 131105: 0xFABE, - 166623 - 131105: 0xFD43, - 166624 - 131105: 0x90C6, - 166625 - 131105: 0x90A4, - 166626 - 131105: 0x90A8, - 166627 - 131105: 0x94A9, - 166629 - 131105: 0x90A9, - 166634 - 131105: 0x8C65, - 166652 - 131105: 0x95E0, - 166668 - 131105: 0x907D, - 166675 - 131105: 0x9265, - 166689 - 131105: 0xFDBA, - 166690 - 131105: 0x93C4, - 166699 - 131105: 0xFEED, - 166700 - 131105: 0x9DAB, - 166701 - 131105: 0xA0E3, - 166703 - 131105: 0x9648, - 166726 - 131105: 0x9D53, - 166732 - 131105: 0x8AA9, - 166734 - 131105: 0x9BC5, - 166736 - 131105: 0x965D, - 166755 - 131105: 0x975F, - 166756 - 131105: 0x965F, - 166757 - 131105: 0x966E, - 166758 - 131105: 0xFB5D, - 166764 - 131105: 0x9DB1, - 166799 - 131105: 0xFEA3, - 166809 - 131105: 0x9DB2, - 166812 - 131105: 0x95AE, - 166813 - 131105: 0xFCA3, - 166841 - 131105: 0x8769, - 166850 - 131105: 0xA0A2, - 166853 - 131105: 0x9655, - 166868 - 131105: 0x9D54, - 166871 - 131105: 0x9341, - 166873 - 131105: 0x95AD, - 166874 - 131105: 0x91D5, - 166887 - 131105: 0x977A, - 166888 - 131105: 0xFDFC, - 166889 - 131105: 0x8E47, - 166890 - 131105: 0x93FD, - 166891 - 131105: 0x90A5, - 166892 - 131105: 0x90AC, - 166901 - 131105: 0x95AC, - 166911 - 131105: 0x90AE, - 166915 - 131105: 0xFEA5, - 166921 - 131105: 0x9D56, - 166940 - 131105: 0x97E3, - 166941 - 131105: 0x95E2, - 166947 - 131105: 0x9466, - 166950 - 131105: 0x9647, - 166955 - 131105: 0x91B8, - 166960 - 131105: 0x9CEC, - 166969 - 131105: 0x90AD, - 166971 - 131105: 0x95E3, - 167114 - 131105: 0x8B4F, - 167117 - 131105: 0x8AE3, - 167122 - 131105: 0x8B4D, - 167220 - 131105: 0x95EA, - 167321 - 131105: 0x8B4E, - 167353 - 131105: 0x8CC1, - 167439 - 131105: 0x8BED, - 167478 - 131105: 0x91D9, - 167481 - 131105: 0xA0A4, - 167525 - 131105: 0x95F5, - 167526 - 131105: 0x95F4, - 167575 - 131105: 0x9FB3, - 167596 - 131105: 0xFEAF, - 167602 - 131105: 0xFE72, - 167603 - 131105: 0x927A, - 167641 - 131105: 0xFEAC, - 167655 - 131105: 0x95F3, - 167877 - 131105: 0x9D58, - 168057 - 131105: 0x8D46, - 168072 - 131105: 0x9372, - 168075 - 131105: 0x91C5, - 168083 - 131105: 0x9642, - 168111 - 131105: 0x90CD, - 168112 - 131105: 0x95FE, - 168113 - 131105: 0x9159, - 168128 - 131105: 0x9C65, - 168164 - 131105: 0x97CC, - 168165 - 131105: 0x90CE, - 168172 - 131105: 0x9D59, - 168173 - 131105: 0xFCF5, - 168205 - 131105: 0xFEFD, - 168208 - 131105: 0x9D5B, - 168252 - 131105: 0x9D5C, - 168269 - 131105: 0x937E, - 168283 - 131105: 0x98AC, - 168286 - 131105: 0x9D5E, - 168304 - 131105: 0xFDD0, - 168348 - 131105: 0xFD60, - 168360 - 131105: 0x9CCF, - 168405 - 131105: 0x90DD, - 168427 - 131105: 0x90E0, - 168989 - 131105: 0x90F3, - 168992 - 131105: 0x98B1, - 169011 - 131105: 0x90F0, - 169023 - 131105: 0x93BD, - 169032 - 131105: 0x95B7, - 169168 - 131105: 0x9F46, - 169177 - 131105: 0x8E4B, - 169178 - 131105: 0x9658, - 169189 - 131105: 0x8A4C, - 169191 - 131105: 0x9D63, - 169374 - 131105: 0x9ECF, - 169392 - 131105: 0x9D65, - 169400 - 131105: 0x9D66, - 169431 - 131105: 0x965A, - 169449 - 131105: 0x9D64, - 169460 - 131105: 0x8A6C, - 169760 - 131105: 0x8AD9, - 169778 - 131105: 0x9D67, - 169940 - 131105: 0x8A70, - 170000 - 131105: 0x8BF3, - 170071 - 131105: 0x9150, - 170148 - 131105: 0x9CC1, - 170193 - 131105: 0x9D68, - 170218 - 131105: 0x93A7, - 170225 - 131105: 0x9674, - 170234 - 131105: 0x8CFD, - 170243 - 131105: 0xA0EF, - 170245 - 131105: 0x9151, - 170287 - 131105: 0x96C1, - 170309 - 131105: 0x8777, - 170311 - 131105: 0x8C64, - 170312 - 131105: 0x9676, - 170313 - 131105: 0x9D69, - 170333 - 131105: 0xFCA4, - 170346 - 131105: 0x9D6A, - 170397 - 131105: 0x924E, - 170435 - 131105: 0x9D6B, - 170441 - 131105: 0x9BC1, - 170536 - 131105: 0x9D6C, - 170573 - 131105: 0x8A65, - 170757 - 131105: 0x915D, - 170766 - 131105: 0x9D6D, - 170965 - 131105: 0x915A, - 171123 - 131105: 0x8C42, - 171181 - 131105: 0x9CC0, - 171326 - 131105: 0x916A, - 171354 - 131105: 0x9D6E, - 171388 - 131105: 0x9EA6, - 171416 - 131105: 0x9DCD, - 171419 - 131105: 0x9D6F, - 171510 - 131105: 0x89BB, - 171526 - 131105: 0x9EF9, - 171565 - 131105: 0x96B4, - 171624 - 131105: 0x9172, - 171692 - 131105: 0x9EC8, - 171696 - 131105: 0x8771, - 171715 - 131105: 0x8B55, - 171768 - 131105: 0x9D71, - 171811 - 131105: 0x9D72, - 171824 - 131105: 0x9ECC, - 171959 - 131105: 0x9174, - 171998 - 131105: 0x9ED0, - 172052 - 131105: 0x905C, - 172167 - 131105: 0x8ED2, - 172217 - 131105: 0x91A8, - 172257 - 131105: 0x9177, - 172269 - 131105: 0x96BF, - 172275 - 131105: 0x96C0, - 172280 - 131105: 0x8FB1, - 172286 - 131105: 0x96B7, - 172295 - 131105: 0x8C55, - 172323 - 131105: 0x9178, - 172339 - 131105: 0x89BE, - 172340 - 131105: 0x917C, - 172368 - 131105: 0xFB77, - 172434 - 131105: 0x9175, - 172435 - 131105: 0x91A3, - 172459 - 131105: 0x9176, - 172468 - 131105: 0x96BE, - 172469 - 131105: 0x8D49, - 172511 - 131105: 0x9179, - 172533 - 131105: 0x96B6, - 172576 - 131105: 0x91A4, - 172595 - 131105: 0x91A6, - 172691 - 131105: 0x9D75, - 172703 - 131105: 0x9052, - 172722 - 131105: 0xA045, - 172724 - 131105: 0x91A9, - 172726 - 131105: 0x98AA, - 172730 - 131105: 0x8C5F, - 172733 - 131105: 0x8BAA, - 172767 - 131105: 0x9CDD, - 172799 - 131105: 0x9D77, - 172881 - 131105: 0x8756, - 172969 - 131105: 0x8940, - 173108 - 131105: 0x9EEC, - 173147 - 131105: 0x93AA, - 173510 - 131105: 0x9478, - 173515 - 131105: 0x9D7A, - 173569 - 131105: 0x8AC9, - 173618 - 131105: 0x8B4B, - 173642 - 131105: 0x9FEC, - 173659 - 131105: 0x8AE2, - 173737 - 131105: 0x9E75, -} - -const encode1Low, encode1High = 11904, 40908 - -var encode1 = [...]uint16{ - 11904 - 11904: 0xC8D6, - 11908 - 11904: 0xC8D7, - 11910 - 11904: 0xC8D8, - 11911 - 11904: 0xC8D9, - 11912 - 11904: 0xC8DA, - 11914 - 11904: 0xC8DB, - 11916 - 11904: 0xC8DC, - 11917 - 11904: 0xC8DD, - 11925 - 11904: 0xC8DE, - 11932 - 11904: 0xC8DF, - 11933 - 11904: 0xC8E0, - 11941 - 11904: 0xC8E1, - 11943 - 11904: 0xC8E2, - 11946 - 11904: 0xC8E3, - 11948 - 11904: 0xC8E4, - 11950 - 11904: 0xC8E5, - 11958 - 11904: 0xC8E6, - 11964 - 11904: 0xC8E7, - 11966 - 11904: 0xC8E8, - 11974 - 11904: 0xC8E9, - 11978 - 11904: 0xC8EA, - 11980 - 11904: 0xC8EB, - 11981 - 11904: 0xC8EC, - 11983 - 11904: 0xC8ED, - 11990 - 11904: 0xC8EE, - 11991 - 11904: 0xC8EF, - 11998 - 11904: 0xC8F0, - 12003 - 11904: 0xC8F1, - 12083 - 11904: 0xC6CD, - 12288 - 11904: 0xA140, - 12289 - 11904: 0xA142, - 12290 - 11904: 0xA143, - 12291 - 11904: 0xC6DE, - 12293 - 11904: 0xC6E0, - 12294 - 11904: 0xC6E1, - 12295 - 11904: 0xC6E2, - 12296 - 11904: 0xA171, - 12297 - 11904: 0xA172, - 12298 - 11904: 0xA16D, - 12299 - 11904: 0xA16E, - 12300 - 11904: 0xA175, - 12301 - 11904: 0xA176, - 12302 - 11904: 0xA179, - 12303 - 11904: 0xA17A, - 12304 - 11904: 0xA169, - 12305 - 11904: 0xA16A, - 12306 - 11904: 0xA245, - 12308 - 11904: 0xA165, - 12309 - 11904: 0xA166, - 12317 - 11904: 0xA1A9, - 12318 - 11904: 0xA1AA, - 12321 - 11904: 0xA2C3, - 12322 - 11904: 0xA2C4, - 12323 - 11904: 0xA2C5, - 12324 - 11904: 0xA2C6, - 12325 - 11904: 0xA2C7, - 12326 - 11904: 0xA2C8, - 12327 - 11904: 0xA2C9, - 12328 - 11904: 0xA2CA, - 12329 - 11904: 0xA2CB, - 12353 - 11904: 0xC6E7, - 12354 - 11904: 0xC6E8, - 12355 - 11904: 0xC6E9, - 12356 - 11904: 0xC6EA, - 12357 - 11904: 0xC6EB, - 12358 - 11904: 0xC6EC, - 12359 - 11904: 0xC6ED, - 12360 - 11904: 0xC6EE, - 12361 - 11904: 0xC6EF, - 12362 - 11904: 0xC6F0, - 12363 - 11904: 0xC6F1, - 12364 - 11904: 0xC6F2, - 12365 - 11904: 0xC6F3, - 12366 - 11904: 0xC6F4, - 12367 - 11904: 0xC6F5, - 12368 - 11904: 0xC6F6, - 12369 - 11904: 0xC6F7, - 12370 - 11904: 0xC6F8, - 12371 - 11904: 0xC6F9, - 12372 - 11904: 0xC6FA, - 12373 - 11904: 0xC6FB, - 12374 - 11904: 0xC6FC, - 12375 - 11904: 0xC6FD, - 12376 - 11904: 0xC6FE, - 12377 - 11904: 0xC740, - 12378 - 11904: 0xC741, - 12379 - 11904: 0xC742, - 12380 - 11904: 0xC743, - 12381 - 11904: 0xC744, - 12382 - 11904: 0xC745, - 12383 - 11904: 0xC746, - 12384 - 11904: 0xC747, - 12385 - 11904: 0xC748, - 12386 - 11904: 0xC749, - 12387 - 11904: 0xC74A, - 12388 - 11904: 0xC74B, - 12389 - 11904: 0xC74C, - 12390 - 11904: 0xC74D, - 12391 - 11904: 0xC74E, - 12392 - 11904: 0xC74F, - 12393 - 11904: 0xC750, - 12394 - 11904: 0xC751, - 12395 - 11904: 0xC752, - 12396 - 11904: 0xC753, - 12397 - 11904: 0xC754, - 12398 - 11904: 0xC755, - 12399 - 11904: 0xC756, - 12400 - 11904: 0xC757, - 12401 - 11904: 0xC758, - 12402 - 11904: 0xC759, - 12403 - 11904: 0xC75A, - 12404 - 11904: 0xC75B, - 12405 - 11904: 0xC75C, - 12406 - 11904: 0xC75D, - 12407 - 11904: 0xC75E, - 12408 - 11904: 0xC75F, - 12409 - 11904: 0xC760, - 12410 - 11904: 0xC761, - 12411 - 11904: 0xC762, - 12412 - 11904: 0xC763, - 12413 - 11904: 0xC764, - 12414 - 11904: 0xC765, - 12415 - 11904: 0xC766, - 12416 - 11904: 0xC767, - 12417 - 11904: 0xC768, - 12418 - 11904: 0xC769, - 12419 - 11904: 0xC76A, - 12420 - 11904: 0xC76B, - 12421 - 11904: 0xC76C, - 12422 - 11904: 0xC76D, - 12423 - 11904: 0xC76E, - 12424 - 11904: 0xC76F, - 12425 - 11904: 0xC770, - 12426 - 11904: 0xC771, - 12427 - 11904: 0xC772, - 12428 - 11904: 0xC773, - 12429 - 11904: 0xC774, - 12430 - 11904: 0xC775, - 12431 - 11904: 0xC776, - 12432 - 11904: 0xC777, - 12433 - 11904: 0xC778, - 12434 - 11904: 0xC779, - 12435 - 11904: 0xC77A, - 12443 - 11904: 0xC8D4, - 12444 - 11904: 0xC8D5, - 12445 - 11904: 0xC6DC, - 12446 - 11904: 0xC6DD, - 12449 - 11904: 0xC77B, - 12450 - 11904: 0xC77C, - 12451 - 11904: 0xC77D, - 12452 - 11904: 0xC77E, - 12453 - 11904: 0xC7A1, - 12454 - 11904: 0xC7A2, - 12455 - 11904: 0xC7A3, - 12456 - 11904: 0xC7A4, - 12457 - 11904: 0xC7A5, - 12458 - 11904: 0xC7A6, - 12459 - 11904: 0xC7A7, - 12460 - 11904: 0xC7A8, - 12461 - 11904: 0xC7A9, - 12462 - 11904: 0xC7AA, - 12463 - 11904: 0xC7AB, - 12464 - 11904: 0xC7AC, - 12465 - 11904: 0xC7AD, - 12466 - 11904: 0xC7AE, - 12467 - 11904: 0xC7AF, - 12468 - 11904: 0xC7B0, - 12469 - 11904: 0xC7B1, - 12470 - 11904: 0xC7B2, - 12471 - 11904: 0xC7B3, - 12472 - 11904: 0xC7B4, - 12473 - 11904: 0xC7B5, - 12474 - 11904: 0xC7B6, - 12475 - 11904: 0xC7B7, - 12476 - 11904: 0xC7B8, - 12477 - 11904: 0xC7B9, - 12478 - 11904: 0xC7BA, - 12479 - 11904: 0xC7BB, - 12480 - 11904: 0xC7BC, - 12481 - 11904: 0xC7BD, - 12482 - 11904: 0xC7BE, - 12483 - 11904: 0xC7BF, - 12484 - 11904: 0xC7C0, - 12485 - 11904: 0xC7C1, - 12486 - 11904: 0xC7C2, - 12487 - 11904: 0xC7C3, - 12488 - 11904: 0xC7C4, - 12489 - 11904: 0xC7C5, - 12490 - 11904: 0xC7C6, - 12491 - 11904: 0xC7C7, - 12492 - 11904: 0xC7C8, - 12493 - 11904: 0xC7C9, - 12494 - 11904: 0xC7CA, - 12495 - 11904: 0xC7CB, - 12496 - 11904: 0xC7CC, - 12497 - 11904: 0xC7CD, - 12498 - 11904: 0xC7CE, - 12499 - 11904: 0xC7CF, - 12500 - 11904: 0xC7D0, - 12501 - 11904: 0xC7D1, - 12502 - 11904: 0xC7D2, - 12503 - 11904: 0xC7D3, - 12504 - 11904: 0xC7D4, - 12505 - 11904: 0xC7D5, - 12506 - 11904: 0xC7D6, - 12507 - 11904: 0xC7D7, - 12508 - 11904: 0xC7D8, - 12509 - 11904: 0xC7D9, - 12510 - 11904: 0xC7DA, - 12511 - 11904: 0xC7DB, - 12512 - 11904: 0xC7DC, - 12513 - 11904: 0xC7DD, - 12514 - 11904: 0xC7DE, - 12515 - 11904: 0xC7DF, - 12516 - 11904: 0xC7E0, - 12517 - 11904: 0xC7E1, - 12518 - 11904: 0xC7E2, - 12519 - 11904: 0xC7E3, - 12520 - 11904: 0xC7E4, - 12521 - 11904: 0xC7E5, - 12522 - 11904: 0xC7E6, - 12523 - 11904: 0xC7E7, - 12524 - 11904: 0xC7E8, - 12525 - 11904: 0xC7E9, - 12526 - 11904: 0xC7EA, - 12527 - 11904: 0xC7EB, - 12528 - 11904: 0xC7EC, - 12529 - 11904: 0xC7ED, - 12530 - 11904: 0xC7EE, - 12531 - 11904: 0xC7EF, - 12532 - 11904: 0xC7F0, - 12533 - 11904: 0xC7F1, - 12534 - 11904: 0xC7F2, - 12540 - 11904: 0xC6E3, - 12541 - 11904: 0xC6DA, - 12542 - 11904: 0xC6DB, - 12549 - 11904: 0xA374, - 12550 - 11904: 0xA375, - 12551 - 11904: 0xA376, - 12552 - 11904: 0xA377, - 12553 - 11904: 0xA378, - 12554 - 11904: 0xA379, - 12555 - 11904: 0xA37A, - 12556 - 11904: 0xA37B, - 12557 - 11904: 0xA37C, - 12558 - 11904: 0xA37D, - 12559 - 11904: 0xA37E, - 12560 - 11904: 0xA3A1, - 12561 - 11904: 0xA3A2, - 12562 - 11904: 0xA3A3, - 12563 - 11904: 0xA3A4, - 12564 - 11904: 0xA3A5, - 12565 - 11904: 0xA3A6, - 12566 - 11904: 0xA3A7, - 12567 - 11904: 0xA3A8, - 12568 - 11904: 0xA3A9, - 12569 - 11904: 0xA3AA, - 12570 - 11904: 0xA3AB, - 12571 - 11904: 0xA3AC, - 12572 - 11904: 0xA3AD, - 12573 - 11904: 0xA3AE, - 12574 - 11904: 0xA3AF, - 12575 - 11904: 0xA3B0, - 12576 - 11904: 0xA3B1, - 12577 - 11904: 0xA3B2, - 12578 - 11904: 0xA3B3, - 12579 - 11904: 0xA3B4, - 12580 - 11904: 0xA3B5, - 12581 - 11904: 0xA3B6, - 12582 - 11904: 0xA3B7, - 12583 - 11904: 0xA3B8, - 12584 - 11904: 0xA3B9, - 12585 - 11904: 0xA3BA, - 12736 - 11904: 0x8840, - 12737 - 11904: 0x8841, - 12738 - 11904: 0x8842, - 12739 - 11904: 0x8843, - 12740 - 11904: 0x8844, - 12741 - 11904: 0x8846, - 12742 - 11904: 0x8849, - 12743 - 11904: 0x884A, - 12744 - 11904: 0x884D, - 12745 - 11904: 0x884F, - 12746 - 11904: 0x8850, - 12747 - 11904: 0x8851, - 12748 - 11904: 0x8852, - 12749 - 11904: 0x8854, - 12750 - 11904: 0x8855, - 12751 - 11904: 0xC879, - 12849 - 11904: 0xC8D1, - 12963 - 11904: 0xA1C0, - 13198 - 11904: 0xA255, - 13199 - 11904: 0xA256, - 13212 - 11904: 0xA250, - 13213 - 11904: 0xA251, - 13214 - 11904: 0xA252, - 13217 - 11904: 0xA254, - 13252 - 11904: 0xA257, - 13262 - 11904: 0xA253, - 13265 - 11904: 0xA1EB, - 13266 - 11904: 0xA1EA, - 13269 - 11904: 0xA24F, - 13365 - 11904: 0x9277, - 13376 - 11904: 0x96DF, - 13386 - 11904: 0x8CF4, - 13388 - 11904: 0x89D5, - 13412 - 11904: 0x93CD, - 13427 - 11904: 0x9BDF, - 13434 - 11904: 0xFA68, - 13437 - 11904: 0x89DA, - 13438 - 11904: 0x8F59, - 13459 - 11904: 0x89DB, - 13462 - 11904: 0x8F5D, - 13477 - 11904: 0x89DC, - 13487 - 11904: 0x96F7, - 13500 - 11904: 0x8ADA, - 13505 - 11904: 0x8BDC, - 13512 - 11904: 0x97DB, - 13535 - 11904: 0x9E53, - 13540 - 11904: 0x9DAA, - 13542 - 11904: 0x87BE, - 13563 - 11904: 0x9BEA, - 13574 - 11904: 0x8A6E, - 13630 - 11904: 0x8BC8, - 13649 - 11904: 0x89E8, - 13651 - 11904: 0x89EA, - 13657 - 11904: 0x8C4B, - 13665 - 11904: 0xFB70, - 13677 - 11904: 0x89ED, - 13680 - 11904: 0x94DD, - 13682 - 11904: 0x89EE, - 13687 - 11904: 0x9EB4, - 13688 - 11904: 0x8AD3, - 13700 - 11904: 0x92DB, - 13719 - 11904: 0x94DB, - 13720 - 11904: 0x89F9, - 13729 - 11904: 0xFB7A, - 13733 - 11904: 0x89FB, - 13741 - 11904: 0x9EFC, - 13759 - 11904: 0x89FC, - 13761 - 11904: 0x89BF, - 13765 - 11904: 0x89FE, - 13767 - 11904: 0x89E6, - 13770 - 11904: 0x9D46, - 13774 - 11904: 0x9DEE, - 13778 - 11904: 0xA07E, - 13782 - 11904: 0xA068, - 13787 - 11904: 0x98E9, - 13789 - 11904: 0x8B68, - 13809 - 11904: 0x8DFD, - 13810 - 11904: 0x8BBE, - 13811 - 11904: 0x9FD9, - 13819 - 11904: 0x8AEB, - 13822 - 11904: 0x9FD7, - 13833 - 11904: 0x8B6A, - 13848 - 11904: 0x9C5C, - 13850 - 11904: 0x8BB1, - 13859 - 11904: 0xFB5E, - 13861 - 11904: 0x8770, - 13869 - 11904: 0x9DF3, - 13877 - 11904: 0xA0D0, - 13881 - 11904: 0xFC66, - 13886 - 11904: 0x92E9, - 13895 - 11904: 0x9AEC, - 13896 - 11904: 0x8FAB, - 13897 - 11904: 0xFA48, - 13902 - 11904: 0x8E45, - 13919 - 11904: 0x9C6F, - 13921 - 11904: 0x8D5C, - 13946 - 11904: 0x9EDE, - 13953 - 11904: 0x89EF, - 13978 - 11904: 0x96E9, - 13989 - 11904: 0x9EBB, - 13994 - 11904: 0x94DE, - 13996 - 11904: 0x9EB8, - 14000 - 11904: 0x97BA, - 14001 - 11904: 0xFB65, - 14005 - 11904: 0x95D6, - 14009 - 11904: 0x9CBB, - 14012 - 11904: 0x97DA, - 14017 - 11904: 0x8F45, - 14019 - 11904: 0xFB7D, - 14020 - 11904: 0x9158, - 14021 - 11904: 0xFE64, - 14023 - 11904: 0x9856, - 14024 - 11904: 0x9B4D, - 14035 - 11904: 0x935B, - 14036 - 11904: 0x95C7, - 14038 - 11904: 0x97E7, - 14045 - 11904: 0x9359, - 14049 - 11904: 0x91F5, - 14050 - 11904: 0x97B8, - 14053 - 11904: 0xFDA2, - 14054 - 11904: 0xFBB6, - 14069 - 11904: 0x92FA, - 14081 - 11904: 0x9357, - 14083 - 11904: 0x8BA6, - 14088 - 11904: 0xFBB9, - 14090 - 11904: 0x97B0, - 14093 - 11904: 0xFDC4, - 14108 - 11904: 0x9CA1, - 14114 - 11904: 0x91F2, - 14115 - 11904: 0x91F9, - 14117 - 11904: 0x8FF1, - 14124 - 11904: 0x9745, - 14125 - 11904: 0x9853, - 14128 - 11904: 0xFE78, - 14130 - 11904: 0xFBC1, - 14131 - 11904: 0x9251, - 14138 - 11904: 0x9DAD, - 14144 - 11904: 0xFD6C, - 14147 - 11904: 0xFA6B, - 14178 - 11904: 0x9BC2, - 14191 - 11904: 0x9A7B, - 14231 - 11904: 0x8B60, - 14240 - 11904: 0x934B, - 14265 - 11904: 0x9ABD, - 14270 - 11904: 0x91B7, - 14294 - 11904: 0x8D4B, - 14322 - 11904: 0x95B4, - 14328 - 11904: 0xFEC5, - 14331 - 11904: 0x9EF0, - 14351 - 11904: 0x8D64, - 14361 - 11904: 0x9269, - 14368 - 11904: 0x8D67, - 14381 - 11904: 0xFBEA, - 14390 - 11904: 0xFBEF, - 14392 - 11904: 0x8D68, - 14435 - 11904: 0x93EB, - 14453 - 11904: 0x877A, - 14496 - 11904: 0xFC42, - 14531 - 11904: 0x9166, - 14540 - 11904: 0xFACD, - 14545 - 11904: 0x93DD, - 14548 - 11904: 0x8D52, - 14586 - 11904: 0x8BCC, - 14600 - 11904: 0x8D6D, - 14612 - 11904: 0x8D6E, - 14631 - 11904: 0x96A8, - 14642 - 11904: 0xFCA6, - 14655 - 11904: 0x8D6F, - 14669 - 11904: 0x8D70, - 14691 - 11904: 0xFC64, - 14712 - 11904: 0x8CF3, - 14720 - 11904: 0x9060, - 14729 - 11904: 0x8D74, - 14730 - 11904: 0x97C3, - 14738 - 11904: 0x8AD0, - 14745 - 11904: 0x9274, - 14747 - 11904: 0x9BBE, - 14753 - 11904: 0x9CC8, - 14756 - 11904: 0x9CBA, - 14776 - 11904: 0x8D78, - 14812 - 11904: 0x9EB9, - 14818 - 11904: 0x955A, - 14821 - 11904: 0x91B4, - 14828 - 11904: 0x8A48, - 14840 - 11904: 0x8D7D, - 14843 - 11904: 0x8A7D, - 14846 - 11904: 0x8AC2, - 14849 - 11904: 0xFD4A, - 14851 - 11904: 0x8DA1, - 14854 - 11904: 0x8AD1, - 14871 - 11904: 0xFCB4, - 14872 - 11904: 0x8B47, - 14889 - 11904: 0x93A4, - 14890 - 11904: 0x9EDA, - 14900 - 11904: 0x8A51, - 14923 - 11904: 0x8DA6, - 14930 - 11904: 0x9EC5, - 14935 - 11904: 0xFCC4, - 14940 - 11904: 0xA078, - 14942 - 11904: 0x94B5, - 14950 - 11904: 0xFCC2, - 14951 - 11904: 0x8A6B, - 14999 - 11904: 0x8DAB, - 15019 - 11904: 0xFAE8, - 15037 - 11904: 0x8DAD, - 15070 - 11904: 0xFC49, - 15072 - 11904: 0x93C1, - 15088 - 11904: 0x906F, - 15090 - 11904: 0x8DB0, - 15093 - 11904: 0x87A2, - 15099 - 11904: 0x947E, - 15118 - 11904: 0x90FA, - 15129 - 11904: 0x9479, - 15138 - 11904: 0x8DB2, - 15147 - 11904: 0xFCEE, - 15161 - 11904: 0x997B, - 15170 - 11904: 0x8DB4, - 15192 - 11904: 0x8DB7, - 15200 - 11904: 0x91B3, - 15217 - 11904: 0x8DBB, - 15218 - 11904: 0x8DBA, - 15227 - 11904: 0x8DBC, - 15228 - 11904: 0x9044, - 15232 - 11904: 0xFD4C, - 15253 - 11904: 0x874B, - 15254 - 11904: 0x93E4, - 15257 - 11904: 0x93E0, - 15265 - 11904: 0xFD53, - 15292 - 11904: 0x8DC3, - 15294 - 11904: 0x9BB8, - 15298 - 11904: 0xFBF0, - 15300 - 11904: 0x93E9, - 15319 - 11904: 0x93F6, - 15325 - 11904: 0x8DC5, - 15340 - 11904: 0x8DCA, - 15346 - 11904: 0x8DCC, - 15347 - 11904: 0xFD5D, - 15348 - 11904: 0x93B5, - 15373 - 11904: 0xFD61, - 15377 - 11904: 0x9CF8, - 15381 - 11904: 0x9252, - 15384 - 11904: 0xA0E8, - 15444 - 11904: 0x9CA5, - 15499 - 11904: 0x8C56, - 15563 - 11904: 0x8DD6, - 15565 - 11904: 0x97C0, - 15569 - 11904: 0xA0DE, - 15574 - 11904: 0x97D2, - 15580 - 11904: 0xFAA5, - 15595 - 11904: 0xFDA3, - 15599 - 11904: 0x8DDB, - 15634 - 11904: 0x8CEA, - 15635 - 11904: 0x8EAF, - 15645 - 11904: 0x91B5, - 15666 - 11904: 0xFD49, - 15675 - 11904: 0xFDD1, - 15686 - 11904: 0x8DEB, - 15692 - 11904: 0x97C6, - 15694 - 11904: 0xFDCE, - 15697 - 11904: 0x90FC, - 15711 - 11904: 0xFC59, - 15714 - 11904: 0x96D6, - 15721 - 11904: 0x97C5, - 15722 - 11904: 0x8DEF, - 15727 - 11904: 0x97D7, - 15733 - 11904: 0x8DF0, - 15741 - 11904: 0x96A6, - 15749 - 11904: 0xFBBF, - 15752 - 11904: 0x8CDF, - 15754 - 11904: 0x8DF3, - 15759 - 11904: 0x9449, - 15761 - 11904: 0x8DF5, - 15781 - 11904: 0x9872, - 15789 - 11904: 0x8E6B, - 15796 - 11904: 0xFAFD, - 15807 - 11904: 0x8F50, - 15814 - 11904: 0x9DCC, - 15815 - 11904: 0xFC65, - 15817 - 11904: 0x8C44, - 15820 - 11904: 0x996E, - 15821 - 11904: 0x94A1, - 15827 - 11904: 0x8F63, - 15835 - 11904: 0xA0DA, - 15847 - 11904: 0x9253, - 15848 - 11904: 0xFDE9, - 15851 - 11904: 0x9DB5, - 15859 - 11904: 0x9879, - 15860 - 11904: 0x876A, - 15863 - 11904: 0x9D5D, - 15868 - 11904: 0x8D63, - 15869 - 11904: 0x9669, - 15878 - 11904: 0x9F70, - 15936 - 11904: 0xFC6A, - 15939 - 11904: 0x8AC7, - 15944 - 11904: 0x89D7, - 15957 - 11904: 0xFE4D, - 15988 - 11904: 0x9EDD, - 16040 - 11904: 0xFEFB, - 16041 - 11904: 0x98BC, - 16042 - 11904: 0xFACC, - 16045 - 11904: 0x95B0, - 16049 - 11904: 0x9464, - 16056 - 11904: 0x936F, - 16063 - 11904: 0x94B9, - 16066 - 11904: 0x95EC, - 16071 - 11904: 0x91EE, - 16074 - 11904: 0x98C3, - 16076 - 11904: 0x95F6, - 16080 - 11904: 0x8FFD, - 16081 - 11904: 0x98C5, - 16086 - 11904: 0x9766, - 16087 - 11904: 0xFE6E, - 16090 - 11904: 0x97DD, - 16091 - 11904: 0x8CAA, - 16094 - 11904: 0x92D2, - 16097 - 11904: 0x9761, - 16098 - 11904: 0x98CB, - 16103 - 11904: 0x95F0, - 16105 - 11904: 0x975D, - 16107 - 11904: 0x91E3, - 16108 - 11904: 0x877E, - 16112 - 11904: 0x98CC, - 16115 - 11904: 0x9469, - 16116 - 11904: 0x98CD, - 16122 - 11904: 0x98CE, - 16124 - 11904: 0x95FC, - 16127 - 11904: 0x94A3, - 16128 - 11904: 0x9662, - 16132 - 11904: 0xFEB6, - 16134 - 11904: 0x9463, - 16135 - 11904: 0x8D47, - 16142 - 11904: 0x98D0, - 16211 - 11904: 0x98D1, - 16216 - 11904: 0x9475, - 16217 - 11904: 0xFAE0, - 16227 - 11904: 0x9472, - 16252 - 11904: 0x98D6, - 16275 - 11904: 0x8AF0, - 16320 - 11904: 0x98D9, - 16328 - 11904: 0x8D5A, - 16343 - 11904: 0x98DB, - 16348 - 11904: 0x98DD, - 16357 - 11904: 0x98A8, - 16365 - 11904: 0x8A6D, - 16377 - 11904: 0x8AFB, - 16378 - 11904: 0x8AAE, - 16388 - 11904: 0xFBC9, - 16393 - 11904: 0x8C5D, - 16413 - 11904: 0x98E4, - 16441 - 11904: 0x98E6, - 16453 - 11904: 0x98E8, - 16467 - 11904: 0x8A4D, - 16471 - 11904: 0x9257, - 16482 - 11904: 0x95DF, - 16485 - 11904: 0xA0AC, - 16490 - 11904: 0x98EB, - 16495 - 11904: 0x98EC, - 16497 - 11904: 0x8CC3, - 16552 - 11904: 0x98F4, - 16564 - 11904: 0x87D9, - 16571 - 11904: 0x8AB8, - 16575 - 11904: 0x9EE7, - 16584 - 11904: 0x94BC, - 16600 - 11904: 0xFCD1, - 16607 - 11904: 0x9CC6, - 16632 - 11904: 0x8D4A, - 16634 - 11904: 0x9E7E, - 16642 - 11904: 0x8D44, - 16643 - 11904: 0x98FE, - 16644 - 11904: 0xFDE8, - 16649 - 11904: 0x9940, - 16654 - 11904: 0x94C9, - 16689 - 11904: 0x87C6, - 16690 - 11904: 0x94D3, - 16743 - 11904: 0x9946, - 16748 - 11904: 0x90C0, - 16750 - 11904: 0x94D1, - 16764 - 11904: 0x8D4E, - 16767 - 11904: 0x9573, - 16769 - 11904: 0x87CE, - 16784 - 11904: 0x93C2, - 16818 - 11904: 0x9948, - 16836 - 11904: 0x994B, - 16842 - 11904: 0x8E55, - 16847 - 11904: 0x994E, - 16859 - 11904: 0x8EFE, - 16877 - 11904: 0x8D5F, - 16879 - 11904: 0x8E59, - 16889 - 11904: 0x94EC, - 16913 - 11904: 0x94EF, - 16931 - 11904: 0x8C60, - 16960 - 11904: 0x8F74, - 16992 - 11904: 0x9955, - 17002 - 11904: 0x9544, - 17014 - 11904: 0x8CCB, - 17018 - 11904: 0x9956, - 17036 - 11904: 0x9959, - 17044 - 11904: 0x995B, - 17058 - 11904: 0x8CC4, - 17077 - 11904: 0xFA45, - 17081 - 11904: 0x90B7, - 17084 - 11904: 0x9743, - 17140 - 11904: 0x95CD, - 17147 - 11904: 0x97C9, - 17148 - 11904: 0xFD50, - 17162 - 11904: 0x87AA, - 17195 - 11904: 0x8EB9, - 17262 - 11904: 0x95C6, - 17303 - 11904: 0x9967, - 17306 - 11904: 0x8CE3, - 17338 - 11904: 0x8AB9, - 17345 - 11904: 0x8DFC, - 17369 - 11904: 0x8A76, - 17375 - 11904: 0x9D51, - 17389 - 11904: 0x9973, - 17392 - 11904: 0x8740, - 17394 - 11904: 0x9D4F, - 17409 - 11904: 0x997A, - 17410 - 11904: 0x9564, - 17427 - 11904: 0x99A1, - 17445 - 11904: 0x99A5, - 17453 - 11904: 0x99A7, - 17530 - 11904: 0x8EED, - 17551 - 11904: 0x99AD, - 17553 - 11904: 0xC87E, - 17567 - 11904: 0x946E, - 17568 - 11904: 0x8F70, - 17570 - 11904: 0xFAD0, - 17584 - 11904: 0x99B3, - 17591 - 11904: 0xA053, - 17597 - 11904: 0x8D5E, - 17600 - 11904: 0x965C, - 17603 - 11904: 0x8CE0, - 17605 - 11904: 0xFD7A, - 17614 - 11904: 0x97FE, - 17629 - 11904: 0x92BD, - 17630 - 11904: 0x8D5D, - 17631 - 11904: 0x97FD, - 17633 - 11904: 0x87DB, - 17636 - 11904: 0x8F64, - 17641 - 11904: 0xFCF7, - 17642 - 11904: 0x9562, - 17643 - 11904: 0x97CD, - 17644 - 11904: 0x9E64, - 17652 - 11904: 0x924C, - 17667 - 11904: 0x8EC9, - 17668 - 11904: 0x99BC, - 17673 - 11904: 0x9DA5, - 17675 - 11904: 0x8F54, - 17686 - 11904: 0x8F7C, - 17691 - 11904: 0x8D55, - 17693 - 11904: 0x8EA2, - 17703 - 11904: 0x8F7A, - 17710 - 11904: 0x97AE, - 17715 - 11904: 0x96C8, - 17718 - 11904: 0x8CE4, - 17723 - 11904: 0x99C3, - 17725 - 11904: 0x90D6, - 17727 - 11904: 0x9CBE, - 17731 - 11904: 0x8F76, - 17745 - 11904: 0x9470, - 17746 - 11904: 0xFB4B, - 17749 - 11904: 0xFDCA, - 17752 - 11904: 0x8CEF, - 17756 - 11904: 0x8EC7, - 17761 - 11904: 0x8D54, - 17762 - 11904: 0xA0F9, - 17770 - 11904: 0x8FA9, - 17773 - 11904: 0x8D51, - 17783 - 11904: 0x99C7, - 17784 - 11904: 0x8744, - 17797 - 11904: 0x90D7, - 17830 - 11904: 0x8743, - 17843 - 11904: 0x8747, - 17882 - 11904: 0x8758, - 17897 - 11904: 0x9EDF, - 17898 - 11904: 0x8D59, - 17923 - 11904: 0x8742, - 17926 - 11904: 0x99CE, - 17935 - 11904: 0x8FBA, - 17941 - 11904: 0x8FEB, - 17943 - 11904: 0x99CF, - 18011 - 11904: 0x8FC2, - 18042 - 11904: 0x92C9, - 18048 - 11904: 0x97DC, - 18081 - 11904: 0x875D, - 18094 - 11904: 0x87CC, - 18107 - 11904: 0x8D45, - 18127 - 11904: 0x95B3, - 18128 - 11904: 0x9C79, - 18165 - 11904: 0x95B2, - 18167 - 11904: 0x8D4C, - 18195 - 11904: 0x8FDB, - 18200 - 11904: 0x9BE3, - 18230 - 11904: 0x874C, - 18244 - 11904: 0x874D, - 18254 - 11904: 0x9E7A, - 18255 - 11904: 0x8757, - 18300 - 11904: 0x9BEE, - 18328 - 11904: 0x99DE, - 18342 - 11904: 0xFAFA, - 18389 - 11904: 0x8A52, - 18413 - 11904: 0x99E1, - 18420 - 11904: 0x8A67, - 18432 - 11904: 0x8BB5, - 18443 - 11904: 0x8AAC, - 18487 - 11904: 0x99E9, - 18525 - 11904: 0xFBCA, - 18545 - 11904: 0x97DE, - 18587 - 11904: 0x95D1, - 18605 - 11904: 0x99F5, - 18606 - 11904: 0xFC4A, - 18640 - 11904: 0x9BA9, - 18653 - 11904: 0xFBDC, - 18669 - 11904: 0xFE56, - 18675 - 11904: 0x9EA4, - 18682 - 11904: 0x9D49, - 18694 - 11904: 0x95DB, - 18705 - 11904: 0x89C5, - 18718 - 11904: 0x99F8, - 18725 - 11904: 0x9664, - 18730 - 11904: 0x9055, - 18733 - 11904: 0x96D4, - 18735 - 11904: 0x87C4, - 18736 - 11904: 0x87AE, - 18741 - 11904: 0x977C, - 18748 - 11904: 0x964D, - 18750 - 11904: 0x97E1, - 18757 - 11904: 0x9A48, - 18769 - 11904: 0x9A49, - 18771 - 11904: 0xFE7D, - 18789 - 11904: 0x90AA, - 18794 - 11904: 0x9A50, - 18802 - 11904: 0x9347, - 18825 - 11904: 0x8ED8, - 18849 - 11904: 0x90C9, - 18855 - 11904: 0x9A55, - 18911 - 11904: 0x90BC, - 18917 - 11904: 0x9A58, - 18919 - 11904: 0x8BB8, - 18959 - 11904: 0x90D5, - 18973 - 11904: 0x9641, - 18980 - 11904: 0x9A5A, - 18997 - 11904: 0x9A5C, - 19094 - 11904: 0x97C2, - 19108 - 11904: 0x875C, - 19124 - 11904: 0x8ABB, - 19128 - 11904: 0x9BAA, - 19153 - 11904: 0x90F5, - 19172 - 11904: 0x9A60, - 19199 - 11904: 0x9145, - 19216 - 11904: 0x8C58, - 19225 - 11904: 0x9A63, - 19232 - 11904: 0x8C49, - 19244 - 11904: 0x8BB6, - 19255 - 11904: 0xFCCF, - 19311 - 11904: 0x966B, - 19312 - 11904: 0x9A6E, - 19314 - 11904: 0x914F, - 19323 - 11904: 0x9746, - 19326 - 11904: 0xA0E6, - 19342 - 11904: 0x92D7, - 19344 - 11904: 0x9675, - 19347 - 11904: 0x93D4, - 19350 - 11904: 0x91BB, - 19351 - 11904: 0x9679, - 19357 - 11904: 0x9A70, - 19389 - 11904: 0x9678, - 19390 - 11904: 0x91CD, - 19392 - 11904: 0x9C4A, - 19460 - 11904: 0xA06F, - 19463 - 11904: 0xA06A, - 19470 - 11904: 0x915F, - 19506 - 11904: 0x8741, - 19515 - 11904: 0x9FA5, - 19518 - 11904: 0x89BA, - 19520 - 11904: 0x874F, - 19527 - 11904: 0x874E, - 19543 - 11904: 0x8755, - 19547 - 11904: 0x9ECD, - 19565 - 11904: 0x9A79, - 19575 - 11904: 0x8CF2, - 19579 - 11904: 0x8D57, - 19581 - 11904: 0x9DCE, - 19585 - 11904: 0x8CD2, - 19589 - 11904: 0x8759, - 19620 - 11904: 0x9D73, - 19630 - 11904: 0x96B9, - 19632 - 11904: 0x96BC, - 19639 - 11904: 0x9CD1, - 19661 - 11904: 0x89B7, - 19681 - 11904: 0x9EEE, - 19682 - 11904: 0x8749, - 19693 - 11904: 0xFB43, - 19719 - 11904: 0x875B, - 19721 - 11904: 0x9EC9, - 19728 - 11904: 0xFBD3, - 19764 - 11904: 0x91AE, - 19830 - 11904: 0x8D58, - 19831 - 11904: 0x8746, - 19849 - 11904: 0x8D56, - 19857 - 11904: 0x9D78, - 19868 - 11904: 0x9D7B, - 19968 - 11904: 0xA440, - 19969 - 11904: 0xA442, - 19971 - 11904: 0xA443, - 19972 - 11904: 0x9EB3, - 19975 - 11904: 0xC945, - 19976 - 11904: 0xA456, - 19977 - 11904: 0xA454, - 19978 - 11904: 0xA457, - 19979 - 11904: 0xA455, - 19980 - 11904: 0xC946, - 19981 - 11904: 0xA4A3, - 19982 - 11904: 0xC94F, - 19983 - 11904: 0xC94D, - 19984 - 11904: 0xA4A2, - 19985 - 11904: 0xA4A1, - 19988 - 11904: 0xA542, - 19989 - 11904: 0xA541, - 19990 - 11904: 0xA540, - 19992 - 11904: 0xA543, - 19993 - 11904: 0xA4FE, - 19994 - 11904: 0x9EB2, - 19996 - 11904: 0x9DD6, - 19998 - 11904: 0xA5E0, - 19999 - 11904: 0xA5E1, - 20001 - 11904: 0x994F, - 20004 - 11904: 0x89CE, - 20006 - 11904: 0xA8C3, - 20008 - 11904: 0x8BC0, - 20010 - 11904: 0x9FC4, - 20011 - 11904: 0xA458, - 20012 - 11904: 0x8BD4, - 20013 - 11904: 0xA4A4, - 20014 - 11904: 0xC950, - 20015 - 11904: 0x8C72, - 20016 - 11904: 0xA4A5, - 20017 - 11904: 0xC963, - 20018 - 11904: 0xA6EA, - 20019 - 11904: 0xCBB1, - 20022 - 11904: 0xC6BF, - 20023 - 11904: 0x8BF9, - 20024 - 11904: 0xA459, - 20025 - 11904: 0xA4A6, - 20027 - 11904: 0xA544, - 20028 - 11904: 0xC964, - 20029 - 11904: 0x8946, - 20031 - 11904: 0xC6C0, - 20034 - 11904: 0xC940, - 20035 - 11904: 0xA444, - 20037 - 11904: 0xA45B, - 20039 - 11904: 0xC947, - 20040 - 11904: 0xA45C, - 20041 - 11904: 0xFAE5, - 20043 - 11904: 0xA4A7, - 20045 - 11904: 0xA545, - 20046 - 11904: 0xA547, - 20047 - 11904: 0xA546, - 20050 - 11904: 0xA5E2, - 20051 - 11904: 0xA5E3, - 20054 - 11904: 0xA8C4, - 20056 - 11904: 0xADBC, - 20057 - 11904: 0xA441, - 20058 - 11904: 0xC87B, - 20059 - 11904: 0x8BC6, - 20060 - 11904: 0xC941, - 20061 - 11904: 0xA445, - 20062 - 11904: 0xA45E, - 20063 - 11904: 0xA45D, - 20073 - 11904: 0xA5E4, - 20074 - 11904: 0x9C57, - 20083 - 11904: 0xA8C5, - 20088 - 11904: 0x9AFB, - 20094 - 11904: 0xB0AE, - 20095 - 11904: 0xD44B, - 20096 - 11904: 0x89D0, - 20097 - 11904: 0x89CF, - 20098 - 11904: 0xB6C3, - 20099 - 11904: 0xDCB1, - 20100 - 11904: 0xDCB2, - 20101 - 11904: 0xC6C1, - 20102 - 11904: 0xA446, - 20103 - 11904: 0x89D1, - 20104 - 11904: 0xA4A9, - 20105 - 11904: 0x89E2, - 20107 - 11904: 0xA8C6, - 20108 - 11904: 0xA447, - 20109 - 11904: 0xC948, - 20110 - 11904: 0xA45F, - 20113 - 11904: 0xA4AA, - 20114 - 11904: 0xA4AC, - 20115 - 11904: 0xC951, - 20116 - 11904: 0xA4AD, - 20117 - 11904: 0xA4AB, - 20120 - 11904: 0x927E, - 20121 - 11904: 0xA5E5, - 20122 - 11904: 0x9DBA, - 20123 - 11904: 0xA8C7, - 20126 - 11904: 0xA8C8, - 20127 - 11904: 0xAB45, - 20128 - 11904: 0xC6C2, - 20129 - 11904: 0xA460, - 20130 - 11904: 0xA4AE, - 20131 - 11904: 0x8C6F, - 20132 - 11904: 0xA5E6, - 20133 - 11904: 0xA5E8, - 20134 - 11904: 0xA5E7, - 20136 - 11904: 0xA6EB, - 20139 - 11904: 0xA8C9, - 20140 - 11904: 0xA8CA, - 20141 - 11904: 0xAB46, - 20142 - 11904: 0xAB47, - 20147 - 11904: 0xADBD, - 20150 - 11904: 0xDCB3, - 20151 - 11904: 0xFBF8, - 20153 - 11904: 0xF6D6, - 20154 - 11904: 0xA448, - 20155 - 11904: 0x8BC7, - 20156 - 11904: 0x926B, - 20159 - 11904: 0x89D2, - 20160 - 11904: 0xA4B0, - 20161 - 11904: 0xA4AF, - 20162 - 11904: 0xC952, - 20163 - 11904: 0xA4B1, - 20164 - 11904: 0xA4B7, - 20166 - 11904: 0xA4B2, - 20167 - 11904: 0xA4B3, - 20168 - 11904: 0xC954, - 20169 - 11904: 0xC953, - 20170 - 11904: 0xA4B5, - 20171 - 11904: 0xA4B6, - 20173 - 11904: 0xA4B4, - 20174 - 11904: 0x9FCF, - 20180 - 11904: 0xA54A, - 20181 - 11904: 0xA54B, - 20182 - 11904: 0xA54C, - 20183 - 11904: 0xA54D, - 20184 - 11904: 0xA549, - 20185 - 11904: 0xA550, - 20186 - 11904: 0xC96A, - 20188 - 11904: 0xC966, - 20189 - 11904: 0xC969, - 20190 - 11904: 0xA551, - 20191 - 11904: 0xA561, - 20193 - 11904: 0xC968, - 20195 - 11904: 0xA54E, - 20196 - 11904: 0xA54F, - 20197 - 11904: 0xA548, - 20200 - 11904: 0xC965, - 20201 - 11904: 0xC967, - 20202 - 11904: 0x9DA9, - 20203 - 11904: 0x89D3, - 20206 - 11904: 0x99E2, - 20208 - 11904: 0xA5F5, - 20209 - 11904: 0xC9B0, - 20210 - 11904: 0xA5F2, - 20211 - 11904: 0xA5F6, - 20212 - 11904: 0xC9BA, - 20213 - 11904: 0xC9AE, - 20214 - 11904: 0xA5F3, - 20215 - 11904: 0xC9B2, - 20216 - 11904: 0x9267, - 20219 - 11904: 0xA5F4, - 20221 - 11904: 0xA5F7, - 20223 - 11904: 0xA5E9, - 20224 - 11904: 0xC9B1, - 20225 - 11904: 0xA5F8, - 20226 - 11904: 0xC9B5, - 20227 - 11904: 0x92A4, - 20228 - 11904: 0xC9B9, - 20229 - 11904: 0xC9B6, - 20232 - 11904: 0xC9B3, - 20233 - 11904: 0xA5EA, - 20234 - 11904: 0xA5EC, - 20235 - 11904: 0xA5F9, - 20237 - 11904: 0xA5EE, - 20238 - 11904: 0xC9AB, - 20239 - 11904: 0xA5F1, - 20240 - 11904: 0xA5EF, - 20241 - 11904: 0xA5F0, - 20242 - 11904: 0xC9BB, - 20243 - 11904: 0xC9B8, - 20244 - 11904: 0xC9AF, - 20245 - 11904: 0xA5ED, - 20247 - 11904: 0x8C73, - 20248 - 11904: 0xC9AC, - 20249 - 11904: 0xA5EB, - 20250 - 11904: 0x894E, - 20253 - 11904: 0xC9B4, - 20258 - 11904: 0xC9B7, - 20264 - 11904: 0x894F, - 20265 - 11904: 0x9278, - 20268 - 11904: 0xC9AD, - 20269 - 11904: 0xCA66, - 20271 - 11904: 0xA742, - 20272 - 11904: 0xA6F4, - 20274 - 11904: 0x91B6, - 20275 - 11904: 0xCA67, - 20276 - 11904: 0xA6F1, - 20278 - 11904: 0xA744, - 20279 - 11904: 0x89D4, - 20280 - 11904: 0xA6F9, - 20281 - 11904: 0x9FD2, - 20282 - 11904: 0xA6F8, - 20283 - 11904: 0xCA5B, - 20284 - 11904: 0xA6FC, - 20285 - 11904: 0xA6F7, - 20286 - 11904: 0xCA60, - 20287 - 11904: 0xCA68, - 20289 - 11904: 0xCA64, - 20290 - 11904: 0x92A7, - 20291 - 11904: 0xA6FA, - 20293 - 11904: 0x95A2, - 20294 - 11904: 0xA6FD, - 20295 - 11904: 0xA6EE, - 20296 - 11904: 0xA747, - 20297 - 11904: 0xCA5D, - 20299 - 11904: 0x926E, - 20300 - 11904: 0xCBBD, - 20301 - 11904: 0xA6EC, - 20302 - 11904: 0xA743, - 20303 - 11904: 0xA6ED, - 20304 - 11904: 0xA6F5, - 20305 - 11904: 0xA6F6, - 20306 - 11904: 0xCA62, - 20307 - 11904: 0xCA5E, - 20308 - 11904: 0xA6FB, - 20309 - 11904: 0xA6F3, - 20310 - 11904: 0xCA5A, - 20311 - 11904: 0xA6EF, - 20312 - 11904: 0xCA65, - 20313 - 11904: 0xA745, - 20314 - 11904: 0xA748, - 20315 - 11904: 0xA6F2, - 20316 - 11904: 0xA740, - 20317 - 11904: 0xA746, - 20318 - 11904: 0xA6F0, - 20319 - 11904: 0xCA63, - 20320 - 11904: 0xA741, - 20321 - 11904: 0xCA69, - 20322 - 11904: 0xCA5C, - 20323 - 11904: 0xA6FE, - 20324 - 11904: 0xCA5F, - 20327 - 11904: 0xCA61, - 20329 - 11904: 0xA8D8, - 20330 - 11904: 0xCBBF, - 20331 - 11904: 0xCBCB, - 20332 - 11904: 0xA8D0, - 20334 - 11904: 0xCBCC, - 20335 - 11904: 0xA8CB, - 20336 - 11904: 0xA8D5, - 20338 - 11904: 0x96EA, - 20339 - 11904: 0xA8CE, - 20340 - 11904: 0xCBB9, - 20341 - 11904: 0xA8D6, - 20342 - 11904: 0xCBB8, - 20343 - 11904: 0xCBBC, - 20344 - 11904: 0xCBC3, - 20345 - 11904: 0xCBC1, - 20346 - 11904: 0xA8DE, - 20347 - 11904: 0xA8D9, - 20348 - 11904: 0xCBB3, - 20349 - 11904: 0xCBB5, - 20350 - 11904: 0xA8DB, - 20351 - 11904: 0xA8CF, - 20352 - 11904: 0xCBB6, - 20353 - 11904: 0xCBC2, - 20354 - 11904: 0xCBC9, - 20355 - 11904: 0xA8D4, - 20356 - 11904: 0xCBBB, - 20357 - 11904: 0xCBB4, - 20358 - 11904: 0xA8D3, - 20359 - 11904: 0xCBB7, - 20360 - 11904: 0xA8D7, - 20361 - 11904: 0xCBBA, - 20362 - 11904: 0x926F, - 20363 - 11904: 0xA8D2, - 20365 - 11904: 0xA8CD, - 20367 - 11904: 0xA8DC, - 20368 - 11904: 0xCBC4, - 20369 - 11904: 0xA8DD, - 20370 - 11904: 0xCBC8, - 20372 - 11904: 0xCBC6, - 20373 - 11904: 0xCBCA, - 20374 - 11904: 0xA8DA, - 20375 - 11904: 0xCBBE, - 20376 - 11904: 0xCBB2, - 20378 - 11904: 0xCBC0, - 20379 - 11904: 0xA8D1, - 20380 - 11904: 0xCBC5, - 20381 - 11904: 0xA8CC, - 20382 - 11904: 0xCBC7, - 20386 - 11904: 0x92A3, - 20392 - 11904: 0x8950, - 20395 - 11904: 0xFA57, - 20398 - 11904: 0xAB56, - 20399 - 11904: 0xAB4A, - 20400 - 11904: 0x9866, - 20402 - 11904: 0xCDE0, - 20403 - 11904: 0xCDE8, - 20404 - 11904: 0x8CF8, - 20405 - 11904: 0xAB49, - 20406 - 11904: 0xAB51, - 20407 - 11904: 0xAB5D, - 20409 - 11904: 0xCDEE, - 20410 - 11904: 0xCDEC, - 20411 - 11904: 0xCDE7, - 20413 - 11904: 0x89D6, - 20415 - 11904: 0xAB4B, - 20416 - 11904: 0xCDED, - 20417 - 11904: 0xCDE3, - 20418 - 11904: 0xAB59, - 20419 - 11904: 0xAB50, - 20420 - 11904: 0xAB58, - 20421 - 11904: 0xCDDE, - 20423 - 11904: 0xCDEA, - 20424 - 11904: 0x98B2, - 20425 - 11904: 0xCDE1, - 20426 - 11904: 0xAB54, - 20427 - 11904: 0xCDE2, - 20428 - 11904: 0x92AB, - 20429 - 11904: 0xCDDD, - 20430 - 11904: 0xAB5B, - 20431 - 11904: 0xAB4E, - 20432 - 11904: 0xAB57, - 20433 - 11904: 0xAB4D, - 20435 - 11904: 0xCDDF, - 20436 - 11904: 0xCDE4, - 20438 - 11904: 0xCDEB, - 20439 - 11904: 0xAB55, - 20440 - 11904: 0xAB52, - 20441 - 11904: 0xCDE6, - 20442 - 11904: 0xAB5A, - 20443 - 11904: 0xCDE9, - 20444 - 11904: 0xCDE5, - 20445 - 11904: 0xAB4F, - 20446 - 11904: 0xAB5C, - 20447 - 11904: 0xAB53, - 20448 - 11904: 0xAB4C, - 20449 - 11904: 0xAB48, - 20452 - 11904: 0x96DE, - 20453 - 11904: 0x92AC, - 20460 - 11904: 0xCDEF, - 20462 - 11904: 0xADD7, - 20463 - 11904: 0xADC1, - 20464 - 11904: 0x8C70, - 20465 - 11904: 0xADD1, - 20466 - 11904: 0x9F6E, - 20467 - 11904: 0xADD6, - 20468 - 11904: 0xD0D0, - 20469 - 11904: 0xD0CF, - 20470 - 11904: 0xD0D4, - 20471 - 11904: 0xD0D5, - 20472 - 11904: 0xADC4, - 20473 - 11904: 0x8EF2, - 20474 - 11904: 0xADCD, - 20477 - 11904: 0x9F6C, - 20478 - 11904: 0xADDA, - 20480 - 11904: 0xADCE, - 20483 - 11904: 0x89D8, - 20485 - 11904: 0xD0C9, - 20486 - 11904: 0xADC7, - 20487 - 11904: 0xD0CA, - 20488 - 11904: 0xFA59, - 20489 - 11904: 0xADDC, - 20491 - 11904: 0xADD3, - 20492 - 11904: 0xADBE, - 20493 - 11904: 0xADBF, - 20494 - 11904: 0xD0DD, - 20495 - 11904: 0xB0BF, - 20497 - 11904: 0xADCC, - 20498 - 11904: 0xADCB, - 20499 - 11904: 0xD0CB, - 20500 - 11904: 0xADCF, - 20501 - 11904: 0xD45B, - 20502 - 11904: 0xADC6, - 20503 - 11904: 0xD0D6, - 20504 - 11904: 0xADD5, - 20505 - 11904: 0xADD4, - 20506 - 11904: 0xADCA, - 20507 - 11904: 0xD0CE, - 20508 - 11904: 0xD0D7, - 20510 - 11904: 0xD0C8, - 20511 - 11904: 0xADC9, - 20512 - 11904: 0xD0D8, - 20513 - 11904: 0xADD2, - 20514 - 11904: 0xD0CC, - 20515 - 11904: 0xADC0, - 20517 - 11904: 0xADC3, - 20518 - 11904: 0xADC2, - 20519 - 11904: 0xD0D9, - 20520 - 11904: 0xADD0, - 20521 - 11904: 0xFA5F, - 20522 - 11904: 0xADD9, - 20523 - 11904: 0xADDB, - 20524 - 11904: 0xD0D3, - 20525 - 11904: 0xADD8, - 20526 - 11904: 0x92A8, - 20527 - 11904: 0xD0DB, - 20528 - 11904: 0xD0CD, - 20529 - 11904: 0xD0DC, - 20531 - 11904: 0xD0D1, - 20532 - 11904: 0x9163, - 20533 - 11904: 0xD0DA, - 20535 - 11904: 0xD0D2, - 20539 - 11904: 0x8C40, - 20540 - 11904: 0xADC8, - 20544 - 11904: 0xD463, - 20545 - 11904: 0xD457, - 20547 - 11904: 0xB0B3, - 20549 - 11904: 0xD45C, - 20550 - 11904: 0xD462, - 20551 - 11904: 0xB0B2, - 20552 - 11904: 0xD455, - 20553 - 11904: 0xB0B6, - 20554 - 11904: 0xD459, - 20555 - 11904: 0xD452, - 20556 - 11904: 0xB0B4, - 20557 - 11904: 0xD456, - 20558 - 11904: 0xB0B9, - 20559 - 11904: 0xB0BE, - 20561 - 11904: 0xD467, - 20563 - 11904: 0xD451, - 20565 - 11904: 0xB0BA, - 20566 - 11904: 0x9F73, - 20567 - 11904: 0xD466, - 20568 - 11904: 0x92AD, - 20570 - 11904: 0xB0B5, - 20571 - 11904: 0xD458, - 20572 - 11904: 0xB0B1, - 20573 - 11904: 0xD453, - 20574 - 11904: 0xD44F, - 20575 - 11904: 0xD45D, - 20576 - 11904: 0xD450, - 20577 - 11904: 0xD44E, - 20578 - 11904: 0xD45A, - 20579 - 11904: 0xD460, - 20580 - 11904: 0xD461, - 20581 - 11904: 0xB0B7, - 20582 - 11904: 0x9BE9, - 20584 - 11904: 0xD85B, - 20585 - 11904: 0xD45E, - 20586 - 11904: 0xD44D, - 20587 - 11904: 0xD45F, - 20588 - 11904: 0x92A9, - 20589 - 11904: 0xB0C1, - 20590 - 11904: 0xD464, - 20591 - 11904: 0xB0C0, - 20592 - 11904: 0xD44C, - 20594 - 11904: 0xD454, - 20595 - 11904: 0xD465, - 20596 - 11904: 0xB0BC, - 20597 - 11904: 0xB0BB, - 20598 - 11904: 0xB0B8, - 20599 - 11904: 0xB0BD, - 20602 - 11904: 0xB0AF, - 20605 - 11904: 0xFA66, - 20608 - 11904: 0xB3C8, - 20609 - 11904: 0x92AA, - 20610 - 11904: 0xD85E, - 20611 - 11904: 0xD857, - 20613 - 11904: 0xB3C5, - 20615 - 11904: 0xD85F, - 20616 - 11904: 0x89D9, - 20619 - 11904: 0xD855, - 20620 - 11904: 0xD858, - 20621 - 11904: 0xB3C4, - 20622 - 11904: 0xD859, - 20624 - 11904: 0xFD56, - 20625 - 11904: 0xB3C7, - 20626 - 11904: 0xD85D, - 20628 - 11904: 0xD853, - 20629 - 11904: 0xD852, - 20630 - 11904: 0xB3C9, - 20632 - 11904: 0xB3CA, - 20633 - 11904: 0xB3C6, - 20634 - 11904: 0xB3CB, - 20635 - 11904: 0xD851, - 20636 - 11904: 0xD85C, - 20637 - 11904: 0xD85A, - 20638 - 11904: 0xD854, - 20642 - 11904: 0xB3C3, - 20643 - 11904: 0xD856, - 20646 - 11904: 0x9FA8, - 20652 - 11904: 0xB6CA, - 20653 - 11904: 0xB6C4, - 20654 - 11904: 0xDCB7, - 20655 - 11904: 0xB6CD, - 20656 - 11904: 0xDCBD, - 20657 - 11904: 0xDCC0, - 20658 - 11904: 0xB6C6, - 20659 - 11904: 0xB6C7, - 20660 - 11904: 0xDCBA, - 20661 - 11904: 0xB6C5, - 20662 - 11904: 0xDCC3, - 20663 - 11904: 0xB6CB, - 20664 - 11904: 0xDCC4, - 20666 - 11904: 0xDCBF, - 20667 - 11904: 0xB6CC, - 20668 - 11904: 0x8C71, - 20669 - 11904: 0xDCB4, - 20670 - 11904: 0xB6C9, - 20671 - 11904: 0xDCB5, - 20673 - 11904: 0xDCBE, - 20674 - 11904: 0xDCBC, - 20676 - 11904: 0xDCB8, - 20677 - 11904: 0xB6C8, - 20678 - 11904: 0xDCB6, - 20679 - 11904: 0xB6CE, - 20680 - 11904: 0xDCBB, - 20681 - 11904: 0xDCC2, - 20682 - 11904: 0xDCB9, - 20683 - 11904: 0xDCC1, - 20685 - 11904: 0x92A1, - 20686 - 11904: 0xB9B6, - 20687 - 11904: 0xB9B3, - 20688 - 11904: 0x90E3, - 20689 - 11904: 0xB9B4, - 20691 - 11904: 0xE0F9, - 20692 - 11904: 0xE0F1, - 20693 - 11904: 0xB9B2, - 20694 - 11904: 0xB9AF, - 20695 - 11904: 0xE0F2, - 20697 - 11904: 0xA0A6, - 20698 - 11904: 0xB9B1, - 20699 - 11904: 0xE0F5, - 20701 - 11904: 0xE0F7, - 20703 - 11904: 0x94AB, - 20704 - 11904: 0xE0FE, - 20705 - 11904: 0xFC72, - 20707 - 11904: 0xE0FD, - 20708 - 11904: 0xE0F8, - 20709 - 11904: 0xB9AE, - 20710 - 11904: 0xE0F0, - 20711 - 11904: 0xB9AC, - 20712 - 11904: 0xE0F3, - 20713 - 11904: 0xB9B7, - 20714 - 11904: 0xE0F6, - 20716 - 11904: 0xE0FA, - 20717 - 11904: 0xB9B0, - 20718 - 11904: 0xB9AD, - 20719 - 11904: 0xE0FC, - 20720 - 11904: 0xE0FB, - 20721 - 11904: 0xB9B5, - 20723 - 11904: 0xE0F4, - 20724 - 11904: 0x97C4, - 20725 - 11904: 0xBBF8, - 20726 - 11904: 0xE4EC, - 20728 - 11904: 0xE4E9, - 20729 - 11904: 0xBBF9, - 20731 - 11904: 0xBBF7, - 20732 - 11904: 0x92AE, - 20733 - 11904: 0xE4F0, - 20734 - 11904: 0xE4ED, - 20735 - 11904: 0xE4E6, - 20736 - 11904: 0xBBF6, - 20737 - 11904: 0xFA67, - 20738 - 11904: 0xBBFA, - 20739 - 11904: 0xE4E7, - 20740 - 11904: 0xBBF5, - 20741 - 11904: 0xBBFD, - 20742 - 11904: 0xE4EA, - 20743 - 11904: 0xE4EB, - 20744 - 11904: 0xBBFB, - 20745 - 11904: 0xBBFC, - 20746 - 11904: 0xE4F1, - 20747 - 11904: 0xE4EE, - 20748 - 11904: 0xE4EF, - 20749 - 11904: 0x92A2, - 20750 - 11904: 0xFA69, - 20752 - 11904: 0xBEAA, - 20753 - 11904: 0xE8F8, - 20754 - 11904: 0xBEA7, - 20755 - 11904: 0xE8F5, - 20756 - 11904: 0xBEA9, - 20757 - 11904: 0xBEAB, - 20759 - 11904: 0xE8F6, - 20760 - 11904: 0xBEA8, - 20762 - 11904: 0xE8F7, - 20764 - 11904: 0xE8F4, - 20767 - 11904: 0xC076, - 20768 - 11904: 0xECBD, - 20769 - 11904: 0xC077, - 20770 - 11904: 0xECBB, - 20772 - 11904: 0xECBC, - 20773 - 11904: 0xECBA, - 20774 - 11904: 0xECB9, - 20777 - 11904: 0xECBE, - 20778 - 11904: 0xC075, - 20779 - 11904: 0x9268, - 20781 - 11904: 0xEFB8, - 20782 - 11904: 0xEFB9, - 20784 - 11904: 0xE4E8, - 20785 - 11904: 0xEFB7, - 20786 - 11904: 0xC078, - 20787 - 11904: 0xC35F, - 20788 - 11904: 0xF1EB, - 20789 - 11904: 0xF1EC, - 20791 - 11904: 0xC4D7, - 20792 - 11904: 0xC4D8, - 20793 - 11904: 0xF5C1, - 20794 - 11904: 0xF5C0, - 20795 - 11904: 0xC56C, - 20796 - 11904: 0xC56B, - 20797 - 11904: 0xF7D0, - 20799 - 11904: 0xA449, - 20800 - 11904: 0xA461, - 20801 - 11904: 0xA4B9, - 20803 - 11904: 0xA4B8, - 20804 - 11904: 0xA553, - 20805 - 11904: 0xA552, - 20806 - 11904: 0xA5FC, - 20807 - 11904: 0xA5FB, - 20808 - 11904: 0xA5FD, - 20809 - 11904: 0xA5FA, - 20811 - 11904: 0xA74A, - 20812 - 11904: 0xA749, - 20813 - 11904: 0xA74B, - 20818 - 11904: 0xA8E0, - 20820 - 11904: 0xA8DF, - 20821 - 11904: 0xA8E1, - 20822 - 11904: 0x8951, - 20823 - 11904: 0xAB5E, - 20825 - 11904: 0xA259, - 20826 - 11904: 0xD0DE, - 20827 - 11904: 0xA25A, - 20828 - 11904: 0xB0C2, - 20829 - 11904: 0xA25C, - 20830 - 11904: 0xA25B, - 20831 - 11904: 0xD860, - 20832 - 11904: 0xFA6F, - 20833 - 11904: 0xA25D, - 20834 - 11904: 0xB9B8, - 20835 - 11904: 0xA25E, - 20837 - 11904: 0xA44A, - 20839 - 11904: 0xA4BA, - 20840 - 11904: 0xA5FE, - 20841 - 11904: 0xA8E2, - 20842 - 11904: 0xFA71, - 20843 - 11904: 0xA44B, - 20844 - 11904: 0xA4BD, - 20845 - 11904: 0xA4BB, - 20846 - 11904: 0xA4BC, - 20849 - 11904: 0xA640, - 20852 - 11904: 0x8952, - 20853 - 11904: 0xA74C, - 20854 - 11904: 0xA8E4, - 20855 - 11904: 0xA8E3, - 20856 - 11904: 0xA8E5, - 20857 - 11904: 0x945A, - 20860 - 11904: 0xADDD, - 20864 - 11904: 0xBEAC, - 20866 - 11904: 0xC6C3, - 20870 - 11904: 0x89DD, - 20871 - 11904: 0xC94E, - 20872 - 11904: 0xC8A2, - 20873 - 11904: 0xA554, - 20874 - 11904: 0xA555, - 20877 - 11904: 0xA641, - 20879 - 11904: 0xCA6A, - 20881 - 11904: 0xAB60, - 20882 - 11904: 0xAB5F, - 20883 - 11904: 0xD0E0, - 20884 - 11904: 0xD0DF, - 20885 - 11904: 0xB0C3, - 20886 - 11904: 0xC6C4, - 20887 - 11904: 0xA4BE, - 20888 - 11904: 0xC955, - 20890 - 11904: 0x9E52, - 20892 - 11904: 0x8953, - 20894 - 11904: 0xCBCD, - 20896 - 11904: 0xAB61, - 20898 - 11904: 0xADE0, - 20900 - 11904: 0xADDE, - 20901 - 11904: 0xADDF, - 20903 - 11904: 0x9E55, - 20904 - 11904: 0x92BA, - 20906 - 11904: 0xBEAD, - 20907 - 11904: 0xC6C5, - 20908 - 11904: 0xA556, - 20910 - 11904: 0x8C5B, - 20912 - 11904: 0xA642, - 20913 - 11904: 0xC9BC, - 20914 - 11904: 0xFA7D, - 20915 - 11904: 0xFAA8, - 20916 - 11904: 0x9A68, - 20917 - 11904: 0xFA47, - 20918 - 11904: 0xA74D, - 20919 - 11904: 0xA74E, - 20920 - 11904: 0xFA7E, - 20921 - 11904: 0xCA6B, - 20924 - 11904: 0xCBCE, - 20925 - 11904: 0xA8E6, - 20926 - 11904: 0xCBCF, - 20931 - 11904: 0x92BB, - 20932 - 11904: 0xD0E2, - 20933 - 11904: 0xD0E3, - 20934 - 11904: 0xADE3, - 20935 - 11904: 0xFDB6, - 20936 - 11904: 0xD0E4, - 20937 - 11904: 0xFAA2, - 20938 - 11904: 0xD0E1, - 20939 - 11904: 0xADE4, - 20940 - 11904: 0xADE2, - 20941 - 11904: 0xADE1, - 20942 - 11904: 0xD0E5, - 20943 - 11904: 0xFAA3, - 20944 - 11904: 0xD468, - 20945 - 11904: 0xFAA4, - 20946 - 11904: 0x9BB4, - 20947 - 11904: 0xFAA6, - 20948 - 11904: 0xD861, - 20951 - 11904: 0xDCC5, - 20952 - 11904: 0xE140, - 20955 - 11904: 0x89DF, - 20956 - 11904: 0xBBFE, - 20957 - 11904: 0xBEAE, - 20958 - 11904: 0xE8F9, - 20959 - 11904: 0xFDDB, - 20960 - 11904: 0xA44C, - 20961 - 11904: 0xA45A, - 20962 - 11904: 0xFAA9, - 20964 - 11904: 0x8954, - 20973 - 11904: 0xFAAB, - 20976 - 11904: 0xB0C4, - 20977 - 11904: 0xB3CD, - 20979 - 11904: 0xB9B9, - 20980 - 11904: 0xFC7A, - 20981 - 11904: 0xC942, - 20982 - 11904: 0xA4BF, - 20984 - 11904: 0xA559, - 20985 - 11904: 0xA557, - 20986 - 11904: 0xA558, - 20988 - 11904: 0x89E0, - 20989 - 11904: 0xA8E7, - 20990 - 11904: 0x9F4F, - 20992 - 11904: 0xA44D, - 20993 - 11904: 0xA44E, - 20994 - 11904: 0xC87D, - 20995 - 11904: 0xA462, - 20997 - 11904: 0x89E1, - 20998 - 11904: 0xA4C0, - 20999 - 11904: 0xA4C1, - 21000 - 11904: 0xA4C2, - 21001 - 11904: 0xC9BE, - 21002 - 11904: 0xA55A, - 21003 - 11904: 0xFAB0, - 21004 - 11904: 0xC96B, - 21006 - 11904: 0xA646, - 21008 - 11904: 0xC9BF, - 21009 - 11904: 0xA644, - 21010 - 11904: 0xA645, - 21011 - 11904: 0xC9BD, - 21014 - 11904: 0xA647, - 21015 - 11904: 0xA643, - 21020 - 11904: 0xCA6C, - 21021 - 11904: 0xAAEC, - 21022 - 11904: 0xCA6D, - 21023 - 11904: 0x9FCD, - 21024 - 11904: 0xA0E7, - 21025 - 11904: 0xCA6E, - 21028 - 11904: 0xA750, - 21029 - 11904: 0xA74F, - 21030 - 11904: 0xFAB1, - 21031 - 11904: 0x89A6, - 21032 - 11904: 0xA753, - 21033 - 11904: 0xA751, - 21034 - 11904: 0xA752, - 21038 - 11904: 0xA8ED, - 21040 - 11904: 0xA8EC, - 21041 - 11904: 0xCBD4, - 21042 - 11904: 0xCBD1, - 21043 - 11904: 0xCBD2, - 21044 - 11904: 0x9EFA, - 21045 - 11904: 0xCBD0, - 21046 - 11904: 0xA8EE, - 21047 - 11904: 0xA8EA, - 21048 - 11904: 0xA8E9, - 21050 - 11904: 0xA8EB, - 21051 - 11904: 0xA8E8, - 21052 - 11904: 0xFAB2, - 21057 - 11904: 0xA8EF, - 21059 - 11904: 0xAB63, - 21060 - 11904: 0xCDF0, - 21062 - 11904: 0xCBD3, - 21063 - 11904: 0xAB68, - 21065 - 11904: 0xCDF1, - 21066 - 11904: 0xAB64, - 21067 - 11904: 0xAB67, - 21068 - 11904: 0xAB66, - 21069 - 11904: 0xAB65, - 21070 - 11904: 0xAB62, - 21071 - 11904: 0x87BC, - 21074 - 11904: 0xD0E8, - 21076 - 11904: 0xADE7, - 21077 - 11904: 0xD0EB, - 21078 - 11904: 0xADE5, - 21079 - 11904: 0xFAB4, - 21081 - 11904: 0x92C4, - 21082 - 11904: 0xD0E7, - 21083 - 11904: 0xADE8, - 21084 - 11904: 0xADE6, - 21085 - 11904: 0xADE9, - 21086 - 11904: 0xD0E9, - 21087 - 11904: 0xD0EA, - 21088 - 11904: 0x9F6F, - 21089 - 11904: 0xD0E6, - 21090 - 11904: 0xD0EC, - 21096 - 11904: 0x8BB0, - 21097 - 11904: 0xB3D1, - 21098 - 11904: 0xB0C5, - 21099 - 11904: 0xD469, - 21100 - 11904: 0xD46B, - 21101 - 11904: 0xD46A, - 21102 - 11904: 0xD46C, - 21103 - 11904: 0xB0C6, - 21106 - 11904: 0xB3CE, - 21107 - 11904: 0x9FAC, - 21108 - 11904: 0xB3CF, - 21109 - 11904: 0xB3D0, - 21111 - 11904: 0xB6D0, - 21112 - 11904: 0xDCC7, - 21113 - 11904: 0x89E3, - 21114 - 11904: 0xDCC6, - 21115 - 11904: 0xDCC8, - 21116 - 11904: 0xDCC9, - 21117 - 11904: 0xB6D1, - 21119 - 11904: 0xB6CF, - 21120 - 11904: 0xE141, - 21121 - 11904: 0xE142, - 21122 - 11904: 0xB9BB, - 21123 - 11904: 0xB9BA, - 21124 - 11904: 0xE35A, - 21127 - 11904: 0xBC40, - 21128 - 11904: 0xBC41, - 21129 - 11904: 0xBC42, - 21130 - 11904: 0xBC44, - 21131 - 11904: 0xE4F2, - 21132 - 11904: 0xE4F3, - 21133 - 11904: 0xBC43, - 21135 - 11904: 0x9BD3, - 21136 - 11904: 0x89E4, - 21137 - 11904: 0xBEAF, - 21139 - 11904: 0xBEB0, - 21140 - 11904: 0xFAB5, - 21142 - 11904: 0xF1ED, - 21143 - 11904: 0xF5C3, - 21144 - 11904: 0xF5C2, - 21145 - 11904: 0xF7D1, - 21146 - 11904: 0x9FD5, - 21147 - 11904: 0xA44F, - 21151 - 11904: 0xA55C, - 21152 - 11904: 0xA55B, - 21153 - 11904: 0x8955, - 21155 - 11904: 0xA648, - 21156 - 11904: 0x92C5, - 21158 - 11904: 0xC9C0, - 21160 - 11904: 0x8956, - 21161 - 11904: 0xA755, - 21162 - 11904: 0xA756, - 21163 - 11904: 0xA754, - 21164 - 11904: 0xA757, - 21165 - 11904: 0xCA6F, - 21166 - 11904: 0xCA70, - 21173 - 11904: 0xFAB3, - 21177 - 11904: 0xFAB6, - 21179 - 11904: 0xA8F1, - 21180 - 11904: 0xCBD5, - 21182 - 11904: 0xA8F0, - 21184 - 11904: 0xCDF2, - 21185 - 11904: 0xAB6C, - 21186 - 11904: 0xCDF3, - 21187 - 11904: 0xAB6B, - 21189 - 11904: 0xFAB7, - 21191 - 11904: 0xAB69, - 21193 - 11904: 0xAB6A, - 21196 - 11904: 0x9EDC, - 21197 - 11904: 0xD0ED, - 21200 - 11904: 0xFBC4, - 21201 - 11904: 0x9F71, - 21202 - 11904: 0xB0C7, - 21203 - 11904: 0xD46E, - 21205 - 11904: 0xB0CA, - 21206 - 11904: 0xD46D, - 21207 - 11904: 0xB1E5, - 21208 - 11904: 0xB0C9, - 21209 - 11904: 0xB0C8, - 21211 - 11904: 0xB3D4, - 21213 - 11904: 0xB3D3, - 21214 - 11904: 0xB3D2, - 21215 - 11904: 0xB6D2, - 21216 - 11904: 0xFABA, - 21217 - 11904: 0x92C7, - 21218 - 11904: 0xB6D5, - 21219 - 11904: 0xB6D6, - 21220 - 11904: 0xB6D4, - 21222 - 11904: 0xB6D3, - 21225 - 11904: 0xE143, - 21227 - 11904: 0xE144, - 21231 - 11904: 0xE4F5, - 21232 - 11904: 0xBC45, - 21233 - 11904: 0xE4F4, - 21235 - 11904: 0xBEB1, - 21236 - 11904: 0xECBF, - 21237 - 11904: 0xC079, - 21239 - 11904: 0xF1EE, - 21240 - 11904: 0xC455, - 21241 - 11904: 0xC6C6, - 21242 - 11904: 0xA463, - 21243 - 11904: 0xA4C3, - 21244 - 11904: 0xC956, - 21246 - 11904: 0xA4C4, - 21247 - 11904: 0xA4C5, - 21249 - 11904: 0x9A4C, - 21253 - 11904: 0xFABD, - 21254 - 11904: 0xA55E, - 21256 - 11904: 0xA649, - 21257 - 11904: 0xCA71, - 21258 - 11904: 0xCBD6, - 21259 - 11904: 0xCBD7, - 21261 - 11904: 0xAB6D, - 21262 - 11904: 0xD0EE, - 21263 - 11904: 0xB0CC, - 21264 - 11904: 0xB0CB, - 21265 - 11904: 0xD863, - 21266 - 11904: 0xD862, - 21269 - 11904: 0xA450, - 21270 - 11904: 0xA4C6, - 21271 - 11904: 0xA55F, - 21273 - 11904: 0xB0CD, - 21274 - 11904: 0xC943, - 21276 - 11904: 0xC96C, - 21277 - 11904: 0xA560, - 21279 - 11904: 0xC9C2, - 21280 - 11904: 0xA64B, - 21281 - 11904: 0xA64A, - 21282 - 11904: 0xC9C1, - 21283 - 11904: 0xA758, - 21284 - 11904: 0x8C68, - 21287 - 11904: 0x89E5, - 21290 - 11904: 0xADEA, - 21292 - 11904: 0x9F7D, - 21293 - 11904: 0xD46F, - 21295 - 11904: 0xB6D7, - 21296 - 11904: 0xE145, - 21297 - 11904: 0xB9BC, - 21298 - 11904: 0xA0A9, - 21299 - 11904: 0xFAC4, - 21300 - 11904: 0xE8FA, - 21303 - 11904: 0xF3FD, - 21304 - 11904: 0xC6C7, - 21305 - 11904: 0xA4C7, - 21307 - 11904: 0x8957, - 21308 - 11904: 0xCBD8, - 21309 - 11904: 0xCDF4, - 21310 - 11904: 0xB0D0, - 21311 - 11904: 0xB0CE, - 21312 - 11904: 0xB0CF, - 21313 - 11904: 0xA451, - 21314 - 11904: 0xFAAA, - 21315 - 11904: 0xA464, - 21316 - 11904: 0xFAC5, - 21317 - 11904: 0xA4CA, - 21319 - 11904: 0xA4C9, - 21320 - 11904: 0xA4C8, - 21321 - 11904: 0xA563, - 21322 - 11904: 0xA562, - 21324 - 11904: 0xC96D, - 21325 - 11904: 0xC9C3, - 21326 - 11904: 0x8958, - 21329 - 11904: 0xA8F5, - 21330 - 11904: 0xA8F2, - 21331 - 11904: 0xA8F4, - 21332 - 11904: 0xA8F3, - 21335 - 11904: 0xAB6E, - 21338 - 11904: 0xB3D5, - 21340 - 11904: 0xA452, - 21341 - 11904: 0x8BE3, - 21342 - 11904: 0xA4CB, - 21343 - 11904: 0x8B61, - 21344 - 11904: 0xA565, - 21345 - 11904: 0xA564, - 21347 - 11904: 0xCA72, - 21348 - 11904: 0x9AF1, - 21350 - 11904: 0xA8F6, - 21351 - 11904: 0x9EB7, - 21353 - 11904: 0xC6C8, - 21356 - 11904: 0xC957, - 21357 - 11904: 0xFAD1, - 21358 - 11904: 0xA567, - 21359 - 11904: 0xA566, - 21360 - 11904: 0xA64C, - 21361 - 11904: 0xA64D, - 21362 - 11904: 0xCA73, - 21363 - 11904: 0xA759, - 21364 - 11904: 0xFAD2, - 21365 - 11904: 0xA75A, - 21367 - 11904: 0xA8F7, - 21368 - 11904: 0xA8F8, - 21369 - 11904: 0xA8F9, - 21371 - 11904: 0xAB6F, - 21372 - 11904: 0xCDF5, - 21373 - 11904: 0x9EBA, - 21374 - 11904: 0xFAD4, - 21375 - 11904: 0xFAD5, - 21378 - 11904: 0xC944, - 21380 - 11904: 0xA4CC, - 21386 - 11904: 0xC9C4, - 21390 - 11904: 0xCA74, - 21391 - 11904: 0xCA75, - 21394 - 11904: 0xCBD9, - 21395 - 11904: 0xFAD9, - 21396 - 11904: 0xCBDA, - 21398 - 11904: 0xCDF7, - 21399 - 11904: 0xCDF6, - 21400 - 11904: 0xCDF9, - 21401 - 11904: 0xCDF8, - 21402 - 11904: 0xAB70, - 21404 - 11904: 0xD470, - 21405 - 11904: 0xADED, - 21406 - 11904: 0xD0EF, - 21407 - 11904: 0xADEC, - 21408 - 11904: 0xFADB, - 21410 - 11904: 0x9CE0, - 21412 - 11904: 0xD864, - 21413 - 11904: 0xB3D6, - 21414 - 11904: 0xFBF7, - 21415 - 11904: 0xD865, - 21416 - 11904: 0xFBFA, - 21417 - 11904: 0x89E7, - 21418 - 11904: 0xA07A, - 21419 - 11904: 0xFADC, - 21420 - 11904: 0xE146, - 21421 - 11904: 0xB9BD, - 21422 - 11904: 0xFADD, - 21424 - 11904: 0x89E9, - 21426 - 11904: 0xBC46, - 21428 - 11904: 0xF1EF, - 21430 - 11904: 0xC6C9, - 21433 - 11904: 0xC958, - 21435 - 11904: 0xA568, - 21441 - 11904: 0xFAE2, - 21442 - 11904: 0x89EB, - 21443 - 11904: 0xB0D1, - 21445 - 11904: 0xFAE3, - 21448 - 11904: 0xA453, - 21449 - 11904: 0xA465, - 21450 - 11904: 0xA4CE, - 21451 - 11904: 0xA4CD, - 21452 - 11904: 0x90C8, - 21453 - 11904: 0xA4CF, - 21456 - 11904: 0x92DA, - 21457 - 11904: 0x8959, - 21458 - 11904: 0x9CF5, - 21460 - 11904: 0xA8FB, - 21462 - 11904: 0xA8FA, - 21463 - 11904: 0xA8FC, - 21464 - 11904: 0x895A, - 21465 - 11904: 0xFAE7, - 21466 - 11904: 0x9FA2, - 21467 - 11904: 0xAB71, - 21471 - 11904: 0xADEE, - 21472 - 11904: 0xFAEA, - 21473 - 11904: 0xE8FB, - 21474 - 11904: 0xC24F, - 21475 - 11904: 0xA466, - 21476 - 11904: 0xA56A, - 21477 - 11904: 0xA579, - 21478 - 11904: 0xA574, - 21480 - 11904: 0xA56F, - 21481 - 11904: 0xA56E, - 21482 - 11904: 0xA575, - 21483 - 11904: 0xA573, - 21484 - 11904: 0xA56C, - 21485 - 11904: 0xA57A, - 21486 - 11904: 0xA56D, - 21487 - 11904: 0xA569, - 21488 - 11904: 0xA578, - 21489 - 11904: 0xA577, - 21490 - 11904: 0xA576, - 21491 - 11904: 0xA56B, - 21493 - 11904: 0xA572, - 21494 - 11904: 0xFAED, - 21495 - 11904: 0x8FAD, - 21496 - 11904: 0xA571, - 21499 - 11904: 0xA57B, - 21500 - 11904: 0xA570, - 21502 - 11904: 0xFB59, - 21505 - 11904: 0xA653, - 21507 - 11904: 0xA659, - 21508 - 11904: 0xA655, - 21510 - 11904: 0xA65B, - 21511 - 11904: 0xC9C5, - 21512 - 11904: 0xA658, - 21513 - 11904: 0xA64E, - 21514 - 11904: 0xA651, - 21515 - 11904: 0xA654, - 21516 - 11904: 0xA650, - 21517 - 11904: 0xA657, - 21518 - 11904: 0xA65A, - 21519 - 11904: 0xA64F, - 21520 - 11904: 0xA652, - 21521 - 11904: 0xA656, - 21522 - 11904: 0xA65C, - 21523 - 11904: 0xFAEF, - 21524 - 11904: 0x96EF, - 21526 - 11904: 0x9DEC, - 21528 - 11904: 0xCA7E, - 21529 - 11904: 0xCA7B, - 21530 - 11904: 0x9DCA, - 21531 - 11904: 0xA767, - 21532 - 11904: 0xCA7C, - 21533 - 11904: 0xA75B, - 21534 - 11904: 0xA75D, - 21535 - 11904: 0xA775, - 21536 - 11904: 0xA770, - 21537 - 11904: 0xFD6D, - 21539 - 11904: 0x89EC, - 21540 - 11904: 0xCAA5, - 21541 - 11904: 0xCA7D, - 21542 - 11904: 0xA75F, - 21543 - 11904: 0xA761, - 21544 - 11904: 0xCAA4, - 21545 - 11904: 0xA768, - 21546 - 11904: 0xCA78, - 21547 - 11904: 0xA774, - 21548 - 11904: 0xA776, - 21549 - 11904: 0xA75C, - 21550 - 11904: 0xA76D, - 21551 - 11904: 0xFB44, - 21552 - 11904: 0xCA76, - 21553 - 11904: 0xA773, - 21554 - 11904: 0x9DE2, - 21555 - 11904: 0xA764, - 21556 - 11904: 0x8C75, - 21557 - 11904: 0xA76E, - 21558 - 11904: 0xA76F, - 21559 - 11904: 0xCA77, - 21560 - 11904: 0xA76C, - 21561 - 11904: 0xA76A, - 21563 - 11904: 0xA76B, - 21564 - 11904: 0xA771, - 21565 - 11904: 0xCAA1, - 21566 - 11904: 0xA75E, - 21568 - 11904: 0xA772, - 21569 - 11904: 0xCAA3, - 21570 - 11904: 0xA766, - 21571 - 11904: 0xA763, - 21573 - 11904: 0xCA7A, - 21574 - 11904: 0xA762, - 21575 - 11904: 0xCAA6, - 21576 - 11904: 0xA765, - 21578 - 11904: 0xA769, - 21579 - 11904: 0x9EC0, - 21580 - 11904: 0x87C5, - 21581 - 11904: 0x9E56, - 21582 - 11904: 0xA760, - 21583 - 11904: 0xCAA2, - 21588 - 11904: 0xCA79, - 21600 - 11904: 0xCBEB, - 21601 - 11904: 0xCBEA, - 21602 - 11904: 0xA94F, - 21603 - 11904: 0xCBED, - 21604 - 11904: 0xCBEF, - 21605 - 11904: 0xCBE4, - 21606 - 11904: 0xCBE7, - 21607 - 11904: 0xCBEE, - 21608 - 11904: 0xA950, - 21609 - 11904: 0x9F79, - 21610 - 11904: 0x9AC7, - 21611 - 11904: 0xCBE1, - 21612 - 11904: 0xCBE5, - 21613 - 11904: 0xFAF4, - 21615 - 11904: 0xCBE9, - 21616 - 11904: 0xCE49, - 21617 - 11904: 0xA94B, - 21618 - 11904: 0xCE4D, - 21619 - 11904: 0xA8FD, - 21620 - 11904: 0xCBE6, - 21621 - 11904: 0xA8FE, - 21622 - 11904: 0xA94C, - 21623 - 11904: 0xA945, - 21624 - 11904: 0xA941, - 21626 - 11904: 0xCBE2, - 21627 - 11904: 0xA944, - 21628 - 11904: 0xA949, - 21629 - 11904: 0xA952, - 21630 - 11904: 0xCBE3, - 21631 - 11904: 0xCBDC, - 21632 - 11904: 0xA943, - 21633 - 11904: 0xCBDD, - 21634 - 11904: 0xCBDF, - 21636 - 11904: 0xA946, - 21637 - 11904: 0x98A1, - 21638 - 11904: 0xA948, - 21639 - 11904: 0xCBDB, - 21640 - 11904: 0xCBE0, - 21643 - 11904: 0xA951, - 21644 - 11904: 0xA94D, - 21645 - 11904: 0xCBE8, - 21646 - 11904: 0xA953, - 21647 - 11904: 0xFAF8, - 21648 - 11904: 0xA94A, - 21649 - 11904: 0xCBDE, - 21650 - 11904: 0xA947, - 21651 - 11904: 0x89F0, - 21652 - 11904: 0x9E47, - 21653 - 11904: 0xA942, - 21654 - 11904: 0xA940, - 21655 - 11904: 0x9DF7, - 21656 - 11904: 0xCBEC, - 21658 - 11904: 0xA94E, - 21660 - 11904: 0x9FD3, - 21662 - 11904: 0x9ACA, - 21664 - 11904: 0xCE48, - 21665 - 11904: 0xCDFB, - 21666 - 11904: 0xCE4B, - 21667 - 11904: 0x89F1, - 21668 - 11904: 0xFAF9, - 21669 - 11904: 0xCDFD, - 21670 - 11904: 0xAB78, - 21671 - 11904: 0xABA8, - 21672 - 11904: 0xAB74, - 21673 - 11904: 0xABA7, - 21674 - 11904: 0xAB7D, - 21675 - 11904: 0xABA4, - 21676 - 11904: 0xAB72, - 21677 - 11904: 0xCDFC, - 21678 - 11904: 0xCE43, - 21679 - 11904: 0xABA3, - 21680 - 11904: 0xCE4F, - 21681 - 11904: 0xABA5, - 21682 - 11904: 0x8E5A, - 21683 - 11904: 0xAB79, - 21684 - 11904: 0x89F2, - 21686 - 11904: 0xCE45, - 21687 - 11904: 0xCE42, - 21688 - 11904: 0xAB77, - 21689 - 11904: 0x89F3, - 21690 - 11904: 0xCDFA, - 21691 - 11904: 0xABA6, - 21692 - 11904: 0xCE4A, - 21693 - 11904: 0xAB7C, - 21694 - 11904: 0xCE4C, - 21695 - 11904: 0xABA9, - 21696 - 11904: 0xAB73, - 21697 - 11904: 0xAB7E, - 21698 - 11904: 0xAB7B, - 21699 - 11904: 0xCE40, - 21700 - 11904: 0xABA1, - 21701 - 11904: 0xCE46, - 21702 - 11904: 0xCE47, - 21703 - 11904: 0xAB7A, - 21704 - 11904: 0xABA2, - 21705 - 11904: 0xAB76, - 21707 - 11904: 0x925D, - 21708 - 11904: 0x8B51, - 21709 - 11904: 0x92E0, - 21710 - 11904: 0xAB75, - 21711 - 11904: 0xCDFE, - 21712 - 11904: 0x89F4, - 21718 - 11904: 0xCE44, - 21722 - 11904: 0x9FD4, - 21726 - 11904: 0xCE4E, - 21728 - 11904: 0xD144, - 21729 - 11904: 0xADFB, - 21730 - 11904: 0xD0F1, - 21731 - 11904: 0x8A79, - 21732 - 11904: 0xD0F6, - 21733 - 11904: 0xADF4, - 21734 - 11904: 0xAE40, - 21735 - 11904: 0xD0F4, - 21736 - 11904: 0xADEF, - 21737 - 11904: 0xADF9, - 21738 - 11904: 0xADFE, - 21739 - 11904: 0xD0FB, - 21741 - 11904: 0xADFA, - 21742 - 11904: 0xADFD, - 21743 - 11904: 0x89F5, - 21745 - 11904: 0xD0FE, - 21746 - 11904: 0xADF5, - 21747 - 11904: 0xD0F5, - 21751 - 11904: 0xD142, - 21752 - 11904: 0xD143, - 21754 - 11904: 0xADF7, - 21755 - 11904: 0xD141, - 21756 - 11904: 0xADF3, - 21757 - 11904: 0xAE43, - 21759 - 11904: 0xD0F8, - 21761 - 11904: 0xADF1, - 21762 - 11904: 0x97A7, - 21763 - 11904: 0xD146, - 21764 - 11904: 0xD0F9, - 21765 - 11904: 0xD0FD, - 21766 - 11904: 0xADF6, - 21767 - 11904: 0xAE42, - 21768 - 11904: 0xD0FA, - 21769 - 11904: 0xADFC, - 21770 - 11904: 0xD140, - 21771 - 11904: 0xD147, - 21772 - 11904: 0xD4A1, - 21773 - 11904: 0x93BA, - 21774 - 11904: 0xD145, - 21775 - 11904: 0xAE44, - 21776 - 11904: 0xADF0, - 21777 - 11904: 0xD0FC, - 21778 - 11904: 0xD0F3, - 21779 - 11904: 0x9E58, - 21780 - 11904: 0xADF8, - 21783 - 11904: 0xD0F2, - 21784 - 11904: 0x89F6, - 21786 - 11904: 0xD0F7, - 21790 - 11904: 0x9E57, - 21795 - 11904: 0x89F7, - 21797 - 11904: 0x8A41, - 21798 - 11904: 0xD0F0, - 21799 - 11904: 0xAE41, - 21800 - 11904: 0x89F8, - 21802 - 11904: 0xD477, - 21803 - 11904: 0xFAF1, - 21804 - 11904: 0xB0E4, - 21805 - 11904: 0xD4A7, - 21806 - 11904: 0xB0E2, - 21807 - 11904: 0xB0DF, - 21808 - 11904: 0xD47C, - 21809 - 11904: 0xB0DB, - 21810 - 11904: 0xD4A2, - 21811 - 11904: 0xB0E6, - 21812 - 11904: 0xD476, - 21813 - 11904: 0xD47B, - 21814 - 11904: 0xD47A, - 21815 - 11904: 0xADF2, - 21816 - 11904: 0xB0E1, - 21817 - 11904: 0xD4A5, - 21819 - 11904: 0xD4A8, - 21820 - 11904: 0xD473, - 21822 - 11904: 0xB3E8, - 21823 - 11904: 0x89FA, - 21824 - 11904: 0xD4A9, - 21825 - 11904: 0xB0E7, - 21827 - 11904: 0xB0D9, - 21828 - 11904: 0xB0D6, - 21829 - 11904: 0xD47E, - 21830 - 11904: 0xB0D3, - 21831 - 11904: 0xFB42, - 21832 - 11904: 0xD4A6, - 21833 - 11904: 0xFABF, - 21834 - 11904: 0xB0DA, - 21835 - 11904: 0xD4AA, - 21837 - 11904: 0xD474, - 21838 - 11904: 0xD4A4, - 21839 - 11904: 0xB0DD, - 21840 - 11904: 0xD475, - 21841 - 11904: 0xD478, - 21842 - 11904: 0xD47D, - 21843 - 11904: 0xFBA3, - 21845 - 11904: 0xB0DE, - 21846 - 11904: 0xB0DC, - 21847 - 11904: 0xB0E8, - 21852 - 11904: 0xB0E3, - 21853 - 11904: 0xFAF7, - 21854 - 11904: 0xB0D7, - 21855 - 11904: 0xB1D2, - 21857 - 11904: 0xB0D8, - 21858 - 11904: 0xD479, - 21859 - 11904: 0xB0E5, - 21860 - 11904: 0xB0E0, - 21861 - 11904: 0xD4A3, - 21862 - 11904: 0xB0D5, - 21865 - 11904: 0x9E4E, - 21866 - 11904: 0xB0D4, - 21867 - 11904: 0x94DC, - 21873 - 11904: 0x95DA, - 21874 - 11904: 0x9DF8, - 21875 - 11904: 0x9F6A, - 21877 - 11904: 0xD471, - 21878 - 11904: 0xD472, - 21879 - 11904: 0xD86A, - 21881 - 11904: 0x8AB7, - 21883 - 11904: 0xB3D7, - 21884 - 11904: 0xB3DA, - 21885 - 11904: 0xD875, - 21886 - 11904: 0xB3EE, - 21887 - 11904: 0xD878, - 21888 - 11904: 0xB3D8, - 21889 - 11904: 0xD871, - 21890 - 11904: 0xB3DE, - 21891 - 11904: 0xB3E4, - 21892 - 11904: 0xB5BD, - 21894 - 11904: 0xFB46, - 21895 - 11904: 0xB3E2, - 21896 - 11904: 0xD86E, - 21897 - 11904: 0xB3EF, - 21898 - 11904: 0xB3DB, - 21899 - 11904: 0xB3E3, - 21900 - 11904: 0xD876, - 21901 - 11904: 0xDCD7, - 21902 - 11904: 0xD87B, - 21903 - 11904: 0xD86F, - 21904 - 11904: 0x8A46, - 21905 - 11904: 0xD866, - 21906 - 11904: 0xD873, - 21907 - 11904: 0xD86D, - 21908 - 11904: 0xB3E1, - 21909 - 11904: 0xD879, - 21912 - 11904: 0xB3DD, - 21913 - 11904: 0xB3F1, - 21914 - 11904: 0xB3EA, - 21916 - 11904: 0xB3DF, - 21917 - 11904: 0xB3DC, - 21919 - 11904: 0xB3E7, - 21921 - 11904: 0xD87A, - 21922 - 11904: 0xD86C, - 21923 - 11904: 0xD872, - 21924 - 11904: 0xD874, - 21925 - 11904: 0xD868, - 21926 - 11904: 0xD877, - 21927 - 11904: 0xB3D9, - 21928 - 11904: 0xD867, - 21929 - 11904: 0xFB47, - 21930 - 11904: 0xB3E0, - 21931 - 11904: 0xB3F0, - 21932 - 11904: 0xB3EC, - 21933 - 11904: 0xD869, - 21934 - 11904: 0xB3E6, - 21936 - 11904: 0x9148, - 21937 - 11904: 0xB3ED, - 21938 - 11904: 0xB3E9, - 21939 - 11904: 0xB3E5, - 21940 - 11904: 0x92DE, - 21941 - 11904: 0xD870, - 21945 - 11904: 0x8B53, - 21946 - 11904: 0x9DF6, - 21947 - 11904: 0xB3EB, - 21948 - 11904: 0x9BDA, - 21951 - 11904: 0xDCD5, - 21952 - 11904: 0xDCD1, - 21953 - 11904: 0x9D7E, - 21954 - 11904: 0xDCE0, - 21955 - 11904: 0xDCCA, - 21956 - 11904: 0xDCD3, - 21957 - 11904: 0xB6E5, - 21958 - 11904: 0xB6E6, - 21959 - 11904: 0xB6DE, - 21960 - 11904: 0xDCDC, - 21961 - 11904: 0xB6E8, - 21962 - 11904: 0xDCCF, - 21963 - 11904: 0xDCCE, - 21964 - 11904: 0xDCCC, - 21965 - 11904: 0xDCDE, - 21966 - 11904: 0xB6DC, - 21967 - 11904: 0xDCD8, - 21968 - 11904: 0xDCCD, - 21969 - 11904: 0xB6DF, - 21970 - 11904: 0xDCD6, - 21971 - 11904: 0xB6DA, - 21972 - 11904: 0xDCD2, - 21973 - 11904: 0xDCD9, - 21974 - 11904: 0xDCDB, - 21975 - 11904: 0x89FD, - 21976 - 11904: 0x99E4, - 21977 - 11904: 0xDCDF, - 21978 - 11904: 0xB6E3, - 21979 - 11904: 0xDCCB, - 21980 - 11904: 0xB6DD, - 21981 - 11904: 0xDCD0, - 21982 - 11904: 0x9E43, - 21983 - 11904: 0xB6D8, - 21985 - 11904: 0xB6E4, - 21986 - 11904: 0xDCDA, - 21987 - 11904: 0xB6E0, - 21988 - 11904: 0xB6E1, - 21989 - 11904: 0xB6E7, - 21990 - 11904: 0xB6DB, - 21991 - 11904: 0xA25F, - 21992 - 11904: 0xB6D9, - 21993 - 11904: 0xDCD4, - 21994 - 11904: 0x9DE9, - 21996 - 11904: 0x8F52, - 21999 - 11904: 0xB6E2, - 22000 - 11904: 0x9DF5, - 22001 - 11904: 0x9DF0, - 22002 - 11904: 0xDCDD, - 22005 - 11904: 0x99E7, - 22006 - 11904: 0xB9CD, - 22007 - 11904: 0xB9C8, - 22009 - 11904: 0xE155, - 22010 - 11904: 0xE151, - 22011 - 11904: 0x8BBD, - 22012 - 11904: 0xE14B, - 22013 - 11904: 0xB9C2, - 22014 - 11904: 0xB9BE, - 22015 - 11904: 0xE154, - 22016 - 11904: 0xB9BF, - 22017 - 11904: 0xE14E, - 22018 - 11904: 0xE150, - 22020 - 11904: 0xE153, - 22021 - 11904: 0xFB48, - 22022 - 11904: 0xB9C4, - 22024 - 11904: 0xB9CB, - 22025 - 11904: 0xB9C5, - 22028 - 11904: 0xE149, - 22029 - 11904: 0xB9C6, - 22030 - 11904: 0xB9C7, - 22031 - 11904: 0xE14C, - 22032 - 11904: 0xB9CC, - 22033 - 11904: 0x9FB7, - 22034 - 11904: 0xE14A, - 22035 - 11904: 0xE14F, - 22036 - 11904: 0xB9C3, - 22037 - 11904: 0xE148, - 22038 - 11904: 0xB9C9, - 22039 - 11904: 0xB9C1, - 22043 - 11904: 0xB9C0, - 22044 - 11904: 0xE14D, - 22045 - 11904: 0xE152, - 22046 - 11904: 0x9DD0, - 22047 - 11904: 0xB9CA, - 22048 - 11904: 0x9FEB, - 22049 - 11904: 0x8DA9, - 22050 - 11904: 0x9DCF, - 22051 - 11904: 0x98E1, - 22053 - 11904: 0x9DE5, - 22055 - 11904: 0xE147, - 22057 - 11904: 0xBC4D, - 22058 - 11904: 0xE547, - 22060 - 11904: 0xE544, - 22061 - 11904: 0x9DC8, - 22062 - 11904: 0xBC47, - 22063 - 11904: 0xBC53, - 22064 - 11904: 0xBC54, - 22066 - 11904: 0xBC4A, - 22067 - 11904: 0xE542, - 22068 - 11904: 0xBC4C, - 22069 - 11904: 0xE4F9, - 22070 - 11904: 0xBC52, - 22071 - 11904: 0xFB4F, - 22072 - 11904: 0xE546, - 22073 - 11904: 0xBC49, - 22074 - 11904: 0xE548, - 22075 - 11904: 0xBC48, - 22077 - 11904: 0xE543, - 22078 - 11904: 0xE545, - 22079 - 11904: 0xBC4B, - 22080 - 11904: 0xE541, - 22081 - 11904: 0xE4FA, - 22082 - 11904: 0xE4F7, - 22083 - 11904: 0x9DEB, - 22085 - 11904: 0xD86B, - 22086 - 11904: 0xE4FD, - 22088 - 11904: 0xE4F6, - 22089 - 11904: 0xE4FC, - 22090 - 11904: 0xE4FB, - 22092 - 11904: 0xE4F8, - 22093 - 11904: 0xFB54, - 22094 - 11904: 0xBC4F, - 22095 - 11904: 0xFB55, - 22096 - 11904: 0x9AA2, - 22098 - 11904: 0x8AD6, - 22099 - 11904: 0xBC4E, - 22100 - 11904: 0x9A5F, - 22103 - 11904: 0xBC50, - 22104 - 11904: 0xE4FE, - 22105 - 11904: 0xBEB2, - 22106 - 11904: 0xE540, - 22109 - 11904: 0x9EF5, - 22110 - 11904: 0xE945, - 22112 - 11904: 0xE8FD, - 22113 - 11904: 0x8FB7, - 22114 - 11904: 0xBEBE, - 22115 - 11904: 0xE942, - 22116 - 11904: 0xBEB6, - 22117 - 11904: 0xBEBA, - 22118 - 11904: 0xE941, - 22120 - 11904: 0xBEB9, - 22121 - 11904: 0xBEB5, - 22122 - 11904: 0xBEB8, - 22123 - 11904: 0xBEB3, - 22124 - 11904: 0xBEBD, - 22125 - 11904: 0xE943, - 22126 - 11904: 0xE8FE, - 22127 - 11904: 0xBEBC, - 22128 - 11904: 0xE8FC, - 22129 - 11904: 0xBEBB, - 22130 - 11904: 0xE944, - 22131 - 11904: 0xE940, - 22132 - 11904: 0xBC51, - 22134 - 11904: 0xBEBF, - 22135 - 11904: 0xE946, - 22136 - 11904: 0xBEB7, - 22137 - 11904: 0xBEB4, - 22138 - 11904: 0x9AD2, - 22139 - 11904: 0x9E6A, - 22140 - 11904: 0x9EE8, - 22142 - 11904: 0xECC6, - 22143 - 11904: 0xECC8, - 22144 - 11904: 0xC07B, - 22145 - 11904: 0xECC9, - 22146 - 11904: 0xECC7, - 22147 - 11904: 0xECC5, - 22148 - 11904: 0xECC4, - 22149 - 11904: 0xC07D, - 22150 - 11904: 0xECC3, - 22151 - 11904: 0xC07E, - 22153 - 11904: 0x8BBF, - 22154 - 11904: 0x91C2, - 22155 - 11904: 0x9D62, - 22156 - 11904: 0xECC1, - 22157 - 11904: 0xECC2, - 22158 - 11904: 0xC07A, - 22159 - 11904: 0xC0A1, - 22160 - 11904: 0xC07C, - 22162 - 11904: 0x9260, - 22163 - 11904: 0xECC0, - 22165 - 11904: 0xC250, - 22167 - 11904: 0xEFBC, - 22168 - 11904: 0xEFBA, - 22169 - 11904: 0xEFBF, - 22170 - 11904: 0xEFBD, - 22172 - 11904: 0xEFBB, - 22173 - 11904: 0xEFBE, - 22174 - 11904: 0x925E, - 22175 - 11904: 0x91C1, - 22177 - 11904: 0x8AC5, - 22180 - 11904: 0x97A3, - 22181 - 11904: 0xC360, - 22182 - 11904: 0xF1F2, - 22183 - 11904: 0xF1F3, - 22184 - 11904: 0xC456, - 22186 - 11904: 0xF1F4, - 22187 - 11904: 0xF1F0, - 22188 - 11904: 0xF1F5, - 22189 - 11904: 0xF1F1, - 22190 - 11904: 0xC251, - 22191 - 11904: 0x8B6C, - 22193 - 11904: 0x8D7E, - 22194 - 11904: 0xF3FE, - 22195 - 11904: 0xF441, - 22196 - 11904: 0xC459, - 22197 - 11904: 0xF440, - 22198 - 11904: 0xC458, - 22199 - 11904: 0xC457, - 22201 - 11904: 0x9C54, - 22204 - 11904: 0xC45A, - 22205 - 11904: 0xF5C5, - 22206 - 11904: 0xF5C6, - 22207 - 11904: 0x9DBD, - 22208 - 11904: 0xC4DA, - 22209 - 11904: 0xC4D9, - 22210 - 11904: 0xC4DB, - 22211 - 11904: 0xF5C4, - 22213 - 11904: 0xF6D8, - 22214 - 11904: 0xF6D7, - 22216 - 11904: 0xC56D, - 22217 - 11904: 0xC56F, - 22218 - 11904: 0xC56E, - 22219 - 11904: 0xF6D9, - 22220 - 11904: 0xC5C8, - 22221 - 11904: 0xF8A6, - 22225 - 11904: 0xC5F1, - 22227 - 11904: 0xF8A5, - 22228 - 11904: 0xF8EE, - 22230 - 11904: 0x9CC5, - 22231 - 11904: 0xC949, - 22234 - 11904: 0xA57D, - 22235 - 11904: 0xA57C, - 22237 - 11904: 0xA65F, - 22238 - 11904: 0xA65E, - 22239 - 11904: 0xC9C7, - 22240 - 11904: 0xA65D, - 22241 - 11904: 0xC9C6, - 22242 - 11904: 0x895B, - 22244 - 11904: 0xA779, - 22245 - 11904: 0xCAA9, - 22247 - 11904: 0xCAA8, - 22250 - 11904: 0xA777, - 22251 - 11904: 0xA77A, - 22253 - 11904: 0xFB5C, - 22254 - 11904: 0xCAA7, - 22255 - 11904: 0xFB5B, - 22256 - 11904: 0xA778, - 22257 - 11904: 0xFB57, - 22263 - 11904: 0xCBF0, - 22265 - 11904: 0xCBF1, - 22266 - 11904: 0xA954, - 22267 - 11904: 0x8765, - 22269 - 11904: 0x98C7, - 22271 - 11904: 0xABAA, - 22272 - 11904: 0xFB5A, - 22273 - 11904: 0xD148, - 22274 - 11904: 0xD149, - 22275 - 11904: 0xAE45, - 22276 - 11904: 0xAE46, - 22279 - 11904: 0xD4AC, - 22280 - 11904: 0xB0E9, - 22281 - 11904: 0xB0EB, - 22282 - 11904: 0xD4AB, - 22283 - 11904: 0xB0EA, - 22284 - 11904: 0xD87C, - 22285 - 11904: 0xB3F2, - 22290 - 11904: 0xB6E9, - 22291 - 11904: 0xB6EA, - 22292 - 11904: 0xDCE1, - 22293 - 11904: 0x9CEE, - 22294 - 11904: 0xB9CF, - 22296 - 11904: 0xB9CE, - 22298 - 11904: 0xE549, - 22299 - 11904: 0xE948, - 22300 - 11904: 0xE947, - 22301 - 11904: 0x92E2, - 22302 - 11904: 0xF96B, - 22303 - 11904: 0xA467, - 22304 - 11904: 0xC959, - 22306 - 11904: 0xC96E, - 22307 - 11904: 0xC96F, - 22312 - 11904: 0xA662, - 22313 - 11904: 0xA666, - 22314 - 11904: 0xC9C9, - 22316 - 11904: 0xA664, - 22317 - 11904: 0xA663, - 22318 - 11904: 0xC9C8, - 22319 - 11904: 0xA665, - 22320 - 11904: 0xA661, - 22322 - 11904: 0x94A7, - 22323 - 11904: 0xA660, - 22324 - 11904: 0xC9CA, - 22331 - 11904: 0xA7A6, - 22333 - 11904: 0x8CCC, - 22334 - 11904: 0xA7A3, - 22335 - 11904: 0x9BD4, - 22336 - 11904: 0xA77D, - 22337 - 11904: 0xCAAA, - 22338 - 11904: 0xFB64, - 22339 - 11904: 0xFB76, - 22341 - 11904: 0xCAAB, - 22342 - 11904: 0xFB60, - 22343 - 11904: 0xA7A1, - 22345 - 11904: 0xCAAD, - 22346 - 11904: 0xA77B, - 22347 - 11904: 0xCAAE, - 22348 - 11904: 0xCAAC, - 22349 - 11904: 0xA77E, - 22350 - 11904: 0xA7A2, - 22351 - 11904: 0xA7A5, - 22352 - 11904: 0xA7A4, - 22353 - 11904: 0xA77C, - 22354 - 11904: 0xCAAF, - 22356 - 11904: 0x99E5, - 22359 - 11904: 0x9AC2, - 22363 - 11904: 0x91FB, - 22367 - 11904: 0xA073, - 22369 - 11904: 0xA959, - 22370 - 11904: 0xCBFE, - 22372 - 11904: 0xA95B, - 22374 - 11904: 0xA95A, - 22375 - 11904: 0x9F72, - 22376 - 11904: 0xCC40, - 22377 - 11904: 0xA958, - 22378 - 11904: 0xA957, - 22379 - 11904: 0xCBF5, - 22381 - 11904: 0xCBF4, - 22383 - 11904: 0xCBF2, - 22384 - 11904: 0xCBF7, - 22385 - 11904: 0xCBF6, - 22386 - 11904: 0xCBF3, - 22387 - 11904: 0xCBFC, - 22388 - 11904: 0xCBFD, - 22389 - 11904: 0xCBFA, - 22390 - 11904: 0xCBF8, - 22391 - 11904: 0xA956, - 22394 - 11904: 0x9FCC, - 22395 - 11904: 0xCBFB, - 22396 - 11904: 0xA95C, - 22397 - 11904: 0xCC41, - 22398 - 11904: 0x98A5, - 22399 - 11904: 0x92E8, - 22400 - 11904: 0xCBF9, - 22402 - 11904: 0xABAB, - 22403 - 11904: 0xA955, - 22408 - 11904: 0x9BBC, - 22410 - 11904: 0x96F3, - 22411 - 11904: 0xABAC, - 22412 - 11904: 0xCE54, - 22413 - 11904: 0x92E7, - 22415 - 11904: 0xCE5A, - 22416 - 11904: 0xFC67, - 22419 - 11904: 0xABB2, - 22420 - 11904: 0xCE58, - 22421 - 11904: 0xCE5E, - 22423 - 11904: 0xCE55, - 22424 - 11904: 0xCE59, - 22425 - 11904: 0xCE5B, - 22426 - 11904: 0xCE5D, - 22427 - 11904: 0xCE57, - 22428 - 11904: 0x8B7D, - 22429 - 11904: 0xCE56, - 22430 - 11904: 0xCE51, - 22431 - 11904: 0xCE52, - 22432 - 11904: 0xABAD, - 22433 - 11904: 0x9BF4, - 22434 - 11904: 0xABAF, - 22435 - 11904: 0xABAE, - 22436 - 11904: 0xCE53, - 22437 - 11904: 0xCE5C, - 22439 - 11904: 0x9EF7, - 22442 - 11904: 0x9EC1, - 22446 - 11904: 0xABB1, - 22451 - 11904: 0x87C3, - 22452 - 11904: 0x996F, - 22453 - 11904: 0xCE50, - 22454 - 11904: 0xD153, - 22456 - 11904: 0xD152, - 22457 - 11904: 0xD157, - 22458 - 11904: 0xD14E, - 22459 - 11904: 0x96F1, - 22460 - 11904: 0xD151, - 22461 - 11904: 0xD150, - 22462 - 11904: 0x8E41, - 22463 - 11904: 0xD154, - 22465 - 11904: 0xD158, - 22466 - 11904: 0xAE47, - 22467 - 11904: 0xAE4A, - 22468 - 11904: 0x954A, - 22470 - 11904: 0xD14F, - 22471 - 11904: 0xD155, - 22472 - 11904: 0x97E6, - 22475 - 11904: 0xAE49, - 22476 - 11904: 0xD14A, - 22478 - 11904: 0xABB0, - 22479 - 11904: 0xD4BA, - 22480 - 11904: 0xD156, - 22482 - 11904: 0xD14D, - 22484 - 11904: 0xAE48, - 22485 - 11904: 0xD14C, - 22487 - 11904: 0x96F5, - 22492 - 11904: 0xD4B1, - 22493 - 11904: 0x92E6, - 22494 - 11904: 0x9F42, - 22495 - 11904: 0xB0EC, - 22496 - 11904: 0xB0F0, - 22497 - 11904: 0xD4C1, - 22498 - 11904: 0xD4AF, - 22499 - 11904: 0xD4BD, - 22500 - 11904: 0xB0F1, - 22501 - 11904: 0xD4BF, - 22502 - 11904: 0xFB67, - 22503 - 11904: 0xD4C5, - 22505 - 11904: 0xD4C9, - 22508 - 11904: 0xD4C0, - 22509 - 11904: 0xD4B4, - 22510 - 11904: 0xD4BC, - 22511 - 11904: 0x99A9, - 22512 - 11904: 0xD4CA, - 22513 - 11904: 0xD4C8, - 22514 - 11904: 0xD4BE, - 22515 - 11904: 0xD4B9, - 22516 - 11904: 0xD4B2, - 22517 - 11904: 0xD8A6, - 22518 - 11904: 0xD4B0, - 22519 - 11904: 0xB0F5, - 22520 - 11904: 0xD4B7, - 22521 - 11904: 0xB0F6, - 22522 - 11904: 0xB0F2, - 22523 - 11904: 0xD4AD, - 22524 - 11904: 0xD4C3, - 22525 - 11904: 0xD4B5, - 22526 - 11904: 0xFAE6, - 22528 - 11904: 0xD4B3, - 22529 - 11904: 0xD4C6, - 22530 - 11904: 0xB0F3, - 22531 - 11904: 0xFB69, - 22532 - 11904: 0xD4CC, - 22533 - 11904: 0xB0ED, - 22534 - 11904: 0xB0EF, - 22535 - 11904: 0xD4BB, - 22536 - 11904: 0xD4B6, - 22537 - 11904: 0xAE4B, - 22538 - 11904: 0xB0EE, - 22539 - 11904: 0xD4B8, - 22540 - 11904: 0xD4C7, - 22541 - 11904: 0xD4CB, - 22542 - 11904: 0xD4C2, - 22544 - 11904: 0xD4C4, - 22546 - 11904: 0x97E5, - 22548 - 11904: 0xD4AE, - 22552 - 11904: 0x87C8, - 22553 - 11904: 0xD8A1, - 22555 - 11904: 0xD8AA, - 22556 - 11904: 0xD8A9, - 22557 - 11904: 0xB3FA, - 22558 - 11904: 0xD8A2, - 22560 - 11904: 0xB3FB, - 22561 - 11904: 0xB3F9, - 22562 - 11904: 0x967D, - 22563 - 11904: 0xD8A4, - 22564 - 11904: 0xB3F6, - 22565 - 11904: 0xD8A8, - 22566 - 11904: 0xFB6C, - 22567 - 11904: 0xD8A3, - 22568 - 11904: 0xD8A5, - 22569 - 11904: 0xD87D, - 22570 - 11904: 0xB3F4, - 22572 - 11904: 0xD8B2, - 22573 - 11904: 0xD8B1, - 22574 - 11904: 0xD8AE, - 22575 - 11904: 0xB3F3, - 22576 - 11904: 0xB3F7, - 22577 - 11904: 0xB3F8, - 22578 - 11904: 0xD14B, - 22579 - 11904: 0xD8AB, - 22580 - 11904: 0xB3F5, - 22581 - 11904: 0xB0F4, - 22582 - 11904: 0xD8AD, - 22583 - 11904: 0xD87E, - 22584 - 11904: 0xD8B0, - 22585 - 11904: 0xD8AF, - 22586 - 11904: 0x99A2, - 22587 - 11904: 0xD8B3, - 22589 - 11904: 0xDCEF, - 22591 - 11904: 0xD8AC, - 22592 - 11904: 0x9ABB, - 22596 - 11904: 0x9A65, - 22599 - 11904: 0x944E, - 22600 - 11904: 0xD8A7, - 22601 - 11904: 0xDCE7, - 22602 - 11904: 0xB6F4, - 22603 - 11904: 0xB6F7, - 22604 - 11904: 0xB6F2, - 22605 - 11904: 0xDCE6, - 22606 - 11904: 0xDCEA, - 22607 - 11904: 0xDCE5, - 22609 - 11904: 0xB6EC, - 22610 - 11904: 0xB6F6, - 22611 - 11904: 0xDCE2, - 22612 - 11904: 0xB6F0, - 22613 - 11904: 0xDCE9, - 22615 - 11904: 0xB6EE, - 22616 - 11904: 0xB6ED, - 22617 - 11904: 0xDCEC, - 22618 - 11904: 0xB6EF, - 22619 - 11904: 0xDCEE, - 22620 - 11904: 0xFB6E, - 22621 - 11904: 0xDCEB, - 22622 - 11904: 0xB6EB, - 22623 - 11904: 0x99DF, - 22626 - 11904: 0xB6F5, - 22627 - 11904: 0xDCF0, - 22628 - 11904: 0xDCE4, - 22629 - 11904: 0xDCED, - 22632 - 11904: 0xDCE3, - 22633 - 11904: 0x98E3, - 22635 - 11904: 0xB6F1, - 22636 - 11904: 0x9254, - 22637 - 11904: 0xB6F3, - 22639 - 11904: 0xDCE8, - 22641 - 11904: 0xDCF1, - 22642 - 11904: 0x967B, - 22643 - 11904: 0x8AAF, - 22644 - 11904: 0xE15D, - 22645 - 11904: 0xB9D0, - 22646 - 11904: 0xE163, - 22649 - 11904: 0xB9D5, - 22650 - 11904: 0xE15F, - 22651 - 11904: 0xE166, - 22652 - 11904: 0xE157, - 22653 - 11904: 0xB9D7, - 22654 - 11904: 0xB9D1, - 22655 - 11904: 0xE15C, - 22656 - 11904: 0xBC55, - 22657 - 11904: 0xE15B, - 22658 - 11904: 0xE164, - 22659 - 11904: 0xB9D2, - 22661 - 11904: 0xB9D6, - 22662 - 11904: 0xE15A, - 22663 - 11904: 0xE160, - 22664 - 11904: 0xE165, - 22665 - 11904: 0xE156, - 22666 - 11904: 0xB9D4, - 22667 - 11904: 0xE15E, - 22670 - 11904: 0xE162, - 22671 - 11904: 0xE168, - 22672 - 11904: 0xE158, - 22673 - 11904: 0xE161, - 22674 - 11904: 0x8C77, - 22675 - 11904: 0xB9D3, - 22676 - 11904: 0xE167, - 22678 - 11904: 0x87B0, - 22680 - 11904: 0xE159, - 22681 - 11904: 0x8BAF, - 22682 - 11904: 0x9EBD, - 22684 - 11904: 0xBC59, - 22685 - 11904: 0xE54B, - 22686 - 11904: 0xBC57, - 22687 - 11904: 0xBC56, - 22688 - 11904: 0xE54D, - 22689 - 11904: 0xE552, - 22691 - 11904: 0xE54E, - 22693 - 11904: 0xE551, - 22694 - 11904: 0xBC5C, - 22695 - 11904: 0x9EE6, - 22696 - 11904: 0xBEA5, - 22697 - 11904: 0xBC5B, - 22698 - 11904: 0xFB6F, - 22699 - 11904: 0xE54A, - 22700 - 11904: 0xE550, - 22702 - 11904: 0xBC5A, - 22703 - 11904: 0xE54F, - 22704 - 11904: 0x8EE1, - 22705 - 11904: 0xE54C, - 22707 - 11904: 0xBC58, - 22709 - 11904: 0x9B7D, - 22710 - 11904: 0x9C7E, - 22714 - 11904: 0xE94D, - 22715 - 11904: 0xF9D9, - 22716 - 11904: 0xE94F, - 22717 - 11904: 0xE94A, - 22718 - 11904: 0xBEC1, - 22719 - 11904: 0xE94C, - 22721 - 11904: 0xBEC0, - 22722 - 11904: 0xE94E, - 22725 - 11904: 0xBEC3, - 22726 - 11904: 0xE950, - 22727 - 11904: 0xBEC2, - 22728 - 11904: 0xE949, - 22729 - 11904: 0xE94B, - 22731 - 11904: 0x92EA, - 22734 - 11904: 0xC0A5, - 22735 - 11904: 0xECCC, - 22736 - 11904: 0x8C78, - 22737 - 11904: 0xC0A4, - 22738 - 11904: 0xECCD, - 22739 - 11904: 0xC0A3, - 22740 - 11904: 0xECCB, - 22741 - 11904: 0xC0A2, - 22742 - 11904: 0xECCA, - 22744 - 11904: 0xC253, - 22745 - 11904: 0xC252, - 22746 - 11904: 0xF1F6, - 22747 - 11904: 0xF1F8, - 22748 - 11904: 0xFB72, - 22749 - 11904: 0xF1F7, - 22750 - 11904: 0xC361, - 22751 - 11904: 0xC362, - 22752 - 11904: 0xFB71, - 22754 - 11904: 0xC363, - 22755 - 11904: 0xF442, - 22756 - 11904: 0xC45B, - 22759 - 11904: 0xF7D3, - 22760 - 11904: 0xF7D2, - 22761 - 11904: 0xC5F2, - 22763 - 11904: 0xA468, - 22764 - 11904: 0xA4D0, - 22767 - 11904: 0xA7A7, - 22768 - 11904: 0x895C, - 22770 - 11904: 0x98F0, - 22771 - 11904: 0x96F2, - 22772 - 11904: 0xCE5F, - 22777 - 11904: 0xB3FC, - 22778 - 11904: 0xB3FD, - 22779 - 11904: 0xFB74, - 22780 - 11904: 0xDCF2, - 22781 - 11904: 0xB9D8, - 22782 - 11904: 0xE169, - 22783 - 11904: 0xE553, - 22786 - 11904: 0x8BC1, - 22787 - 11904: 0xC95A, - 22788 - 11904: 0x895D, - 22789 - 11904: 0x89DE, - 22790 - 11904: 0xCAB0, - 22791 - 11904: 0x895E, - 22794 - 11904: 0xC6CA, - 22796 - 11904: 0xCC42, - 22797 - 11904: 0xCE60, - 22798 - 11904: 0xD159, - 22799 - 11904: 0xAE4C, - 22801 - 11904: 0xFE42, - 22802 - 11904: 0xF1F9, - 22804 - 11904: 0xC4DC, - 22805 - 11904: 0xA469, - 22806 - 11904: 0xA57E, - 22807 - 11904: 0xC970, - 22809 - 11904: 0xA667, - 22810 - 11904: 0xA668, - 22812 - 11904: 0xA95D, - 22813 - 11904: 0x8768, - 22815 - 11904: 0xFB7B, - 22816 - 11904: 0xB0F7, - 22818 - 11904: 0xB9DA, - 22820 - 11904: 0xB9DB, - 22821 - 11904: 0xB9D9, - 22823 - 11904: 0xA46A, - 22825 - 11904: 0xA4D1, - 22826 - 11904: 0xA4D3, - 22827 - 11904: 0xA4D2, - 22828 - 11904: 0xC95B, - 22829 - 11904: 0xA4D4, - 22830 - 11904: 0xA5A1, - 22831 - 11904: 0xC971, - 22833 - 11904: 0xA5A2, - 22834 - 11904: 0x895F, - 22836 - 11904: 0x8960, - 22839 - 11904: 0xA669, - 22840 - 11904: 0xA66A, - 22844 - 11904: 0xC9CB, - 22846 - 11904: 0xA7A8, - 22848 - 11904: 0xCAB1, - 22852 - 11904: 0xA961, - 22853 - 11904: 0xCC43, - 22855 - 11904: 0xA95F, - 22856 - 11904: 0xA960, - 22857 - 11904: 0xA95E, - 22858 - 11904: 0xD15A, - 22862 - 11904: 0xABB6, - 22863 - 11904: 0xABB5, - 22864 - 11904: 0xABB7, - 22865 - 11904: 0xABB4, - 22867 - 11904: 0xCE61, - 22868 - 11904: 0xA962, - 22869 - 11904: 0xABB3, - 22871 - 11904: 0xAE4D, - 22872 - 11904: 0xAE4E, - 22874 - 11904: 0xAE4F, - 22876 - 11904: 0xD4CD, - 22880 - 11904: 0xB3FE, - 22881 - 11904: 0xD8B4, - 22882 - 11904: 0xB0F8, - 22885 - 11904: 0x9BCD, - 22887 - 11904: 0xB6F8, - 22889 - 11904: 0xB9DD, - 22890 - 11904: 0xB9DC, - 22891 - 11904: 0xE16A, - 22893 - 11904: 0xBC5D, - 22894 - 11904: 0xBEC4, - 22896 - 11904: 0xEFC0, - 22897 - 11904: 0xF6DA, - 22898 - 11904: 0xF7D4, - 22899 - 11904: 0xA46B, - 22900 - 11904: 0xA5A3, - 22901 - 11904: 0x9DD3, - 22902 - 11904: 0xA5A4, - 22903 - 11904: 0xC9D1, - 22904 - 11904: 0xA66C, - 22905 - 11904: 0xA66F, - 22907 - 11904: 0xC9CF, - 22908 - 11904: 0xC9CD, - 22909 - 11904: 0xA66E, - 22910 - 11904: 0xC9D0, - 22911 - 11904: 0xC9D2, - 22912 - 11904: 0xC9CC, - 22913 - 11904: 0xA671, - 22914 - 11904: 0xA670, - 22915 - 11904: 0xA66D, - 22916 - 11904: 0xA66B, - 22917 - 11904: 0xC9CE, - 22921 - 11904: 0x984C, - 22922 - 11904: 0xA7B3, - 22925 - 11904: 0xA7B0, - 22926 - 11904: 0xCAB6, - 22927 - 11904: 0xCAB9, - 22928 - 11904: 0xCAB8, - 22930 - 11904: 0xA7AA, - 22931 - 11904: 0xA7B2, - 22932 - 11904: 0x9752, - 22934 - 11904: 0xA7AF, - 22935 - 11904: 0xCAB5, - 22936 - 11904: 0xCAB3, - 22937 - 11904: 0xA7AE, - 22938 - 11904: 0x95C3, - 22941 - 11904: 0xA7A9, - 22942 - 11904: 0xA7AC, - 22943 - 11904: 0x9BB6, - 22944 - 11904: 0xCAB4, - 22945 - 11904: 0xCABB, - 22946 - 11904: 0xCAB7, - 22947 - 11904: 0xA7AD, - 22948 - 11904: 0xA7B1, - 22949 - 11904: 0xA7B4, - 22950 - 11904: 0xCAB2, - 22951 - 11904: 0xCABA, - 22952 - 11904: 0xA7AB, - 22956 - 11904: 0x9AB9, - 22958 - 11904: 0xA967, - 22959 - 11904: 0xA96F, - 22960 - 11904: 0x97B3, - 22961 - 11904: 0xCC4F, - 22962 - 11904: 0xCC48, - 22963 - 11904: 0xA970, - 22964 - 11904: 0xCC53, - 22965 - 11904: 0xCC44, - 22966 - 11904: 0xCC4B, - 22967 - 11904: 0x9F74, - 22968 - 11904: 0x92F1, - 22969 - 11904: 0xA966, - 22970 - 11904: 0xCC45, - 22971 - 11904: 0xA964, - 22972 - 11904: 0xCC4C, - 22973 - 11904: 0xCC50, - 22974 - 11904: 0xA963, - 22975 - 11904: 0x8CFA, - 22976 - 11904: 0xCC51, - 22977 - 11904: 0xCC4A, - 22979 - 11904: 0xCC4D, - 22980 - 11904: 0x97DF, - 22981 - 11904: 0xA972, - 22982 - 11904: 0xA969, - 22983 - 11904: 0xCC54, - 22984 - 11904: 0xCC52, - 22985 - 11904: 0xFBA6, - 22986 - 11904: 0xA96E, - 22987 - 11904: 0xA96C, - 22988 - 11904: 0xCC49, - 22989 - 11904: 0xA96B, - 22990 - 11904: 0xCC47, - 22991 - 11904: 0xCC46, - 22992 - 11904: 0xA96A, - 22993 - 11904: 0xA968, - 22994 - 11904: 0xA971, - 22995 - 11904: 0xA96D, - 22996 - 11904: 0xA965, - 22998 - 11904: 0xCC4E, - 23000 - 11904: 0xABB9, - 23001 - 11904: 0xFBAB, - 23002 - 11904: 0xABC0, - 23003 - 11904: 0xCE6F, - 23004 - 11904: 0xABB8, - 23005 - 11904: 0xCE67, - 23006 - 11904: 0xCE63, - 23008 - 11904: 0xCE73, - 23009 - 11904: 0xCE62, - 23011 - 11904: 0xABBB, - 23012 - 11904: 0xCE6C, - 23013 - 11904: 0xABBE, - 23014 - 11904: 0xABC1, - 23016 - 11904: 0xABBC, - 23017 - 11904: 0xCE70, - 23018 - 11904: 0xABBF, - 23019 - 11904: 0x9877, - 23020 - 11904: 0xAE56, - 23021 - 11904: 0xCE76, - 23022 - 11904: 0xCE64, - 23023 - 11904: 0x9854, - 23024 - 11904: 0x95C5, - 23025 - 11904: 0xCE66, - 23026 - 11904: 0xCE6D, - 23027 - 11904: 0xCE71, - 23028 - 11904: 0xCE75, - 23029 - 11904: 0xCE72, - 23030 - 11904: 0xCE6B, - 23031 - 11904: 0xCE6E, - 23032 - 11904: 0x9D55, - 23033 - 11904: 0xFBB2, - 23034 - 11904: 0xCE68, - 23035 - 11904: 0xABC3, - 23036 - 11904: 0xCE6A, - 23037 - 11904: 0xCE69, - 23038 - 11904: 0xCE74, - 23039 - 11904: 0xABBA, - 23040 - 11904: 0xCE65, - 23041 - 11904: 0xABC2, - 23042 - 11904: 0x957E, - 23043 - 11904: 0xABBD, - 23049 - 11904: 0xAE5C, - 23050 - 11904: 0xD162, - 23051 - 11904: 0x9742, - 23052 - 11904: 0xAE5B, - 23053 - 11904: 0x94E6, - 23055 - 11904: 0xD160, - 23057 - 11904: 0xAE50, - 23058 - 11904: 0x92F5, - 23059 - 11904: 0xAE55, - 23061 - 11904: 0xD15F, - 23062 - 11904: 0xD15C, - 23063 - 11904: 0xD161, - 23064 - 11904: 0xAE51, - 23065 - 11904: 0xD15B, - 23066 - 11904: 0x8CC5, - 23067 - 11904: 0xAE54, - 23068 - 11904: 0xAE52, - 23070 - 11904: 0xD163, - 23071 - 11904: 0xAE53, - 23072 - 11904: 0xAE57, - 23073 - 11904: 0x92FD, - 23075 - 11904: 0xAE58, - 23076 - 11904: 0xFBA2, - 23077 - 11904: 0xAE5A, - 23079 - 11904: 0x9C51, - 23081 - 11904: 0xAE59, - 23082 - 11904: 0x94E9, - 23083 - 11904: 0x985C, - 23084 - 11904: 0x92F0, - 23085 - 11904: 0xD15D, - 23086 - 11904: 0xD15E, - 23091 - 11904: 0xD164, - 23093 - 11904: 0xD4D4, - 23094 - 11904: 0xB0F9, - 23095 - 11904: 0xD8C2, - 23096 - 11904: 0xD4D3, - 23097 - 11904: 0xD4E6, - 23100 - 11904: 0xB140, - 23101 - 11904: 0x944C, - 23102 - 11904: 0xD4E4, - 23104 - 11904: 0xB0FE, - 23105 - 11904: 0xB0FA, - 23106 - 11904: 0xD4ED, - 23107 - 11904: 0xD4DD, - 23108 - 11904: 0xD4E0, - 23109 - 11904: 0x916B, - 23110 - 11904: 0xB143, - 23111 - 11904: 0xD4EA, - 23112 - 11904: 0xD4E2, - 23113 - 11904: 0xB0FB, - 23114 - 11904: 0xB144, - 23116 - 11904: 0xD4E7, - 23117 - 11904: 0xD4E5, - 23120 - 11904: 0xD4D6, - 23121 - 11904: 0xD4EB, - 23122 - 11904: 0xD4DF, - 23123 - 11904: 0xD4DA, - 23124 - 11904: 0x8B78, - 23125 - 11904: 0xD4D0, - 23126 - 11904: 0xD4EC, - 23127 - 11904: 0xD4DC, - 23128 - 11904: 0xD4CF, - 23129 - 11904: 0x94E2, - 23130 - 11904: 0xB142, - 23131 - 11904: 0xD4E1, - 23132 - 11904: 0xD4EE, - 23133 - 11904: 0xD4DE, - 23134 - 11904: 0xD4D2, - 23135 - 11904: 0xD4D7, - 23136 - 11904: 0xD4CE, - 23137 - 11904: 0x984F, - 23138 - 11904: 0xB141, - 23139 - 11904: 0xFBB5, - 23140 - 11904: 0xD4DB, - 23141 - 11904: 0xD4D8, - 23142 - 11904: 0xB0FC, - 23143 - 11904: 0xD4D1, - 23144 - 11904: 0x9271, - 23145 - 11904: 0xD4E9, - 23146 - 11904: 0xB0FD, - 23147 - 11904: 0x9365, - 23148 - 11904: 0xD4D9, - 23149 - 11904: 0xD4D5, - 23150 - 11904: 0x985B, - 23152 - 11904: 0xD4E8, - 23153 - 11904: 0x9850, - 23159 - 11904: 0xFBB8, - 23160 - 11904: 0xD8BB, - 23161 - 11904: 0x97BC, - 23162 - 11904: 0xD8B8, - 23163 - 11904: 0xD8C9, - 23164 - 11904: 0xD8BD, - 23165 - 11904: 0xD8CA, - 23166 - 11904: 0x92F3, - 23167 - 11904: 0xB442, - 23169 - 11904: 0x9340, - 23170 - 11904: 0x984D, - 23171 - 11904: 0xD8C6, - 23172 - 11904: 0xD8C3, - 23174 - 11904: 0x9572, - 23176 - 11904: 0xFDEF, - 23178 - 11904: 0xD8C4, - 23179 - 11904: 0xD8C7, - 23180 - 11904: 0xD8CB, - 23182 - 11904: 0xD4E3, - 23183 - 11904: 0xD8CD, - 23184 - 11904: 0xDD47, - 23185 - 11904: 0xFDC1, - 23186 - 11904: 0xB443, - 23187 - 11904: 0xD8CE, - 23188 - 11904: 0xD8B6, - 23189 - 11904: 0xD8C0, - 23190 - 11904: 0xFBBA, - 23191 - 11904: 0xD8C5, - 23193 - 11904: 0x92EB, - 23194 - 11904: 0xB441, - 23195 - 11904: 0xB444, - 23196 - 11904: 0xD8CC, - 23197 - 11904: 0xD8CF, - 23198 - 11904: 0xD8BA, - 23199 - 11904: 0xD8B7, - 23200 - 11904: 0xFC73, - 23201 - 11904: 0x97B7, - 23202 - 11904: 0xD8B9, - 23204 - 11904: 0x876F, - 23205 - 11904: 0xD8BE, - 23206 - 11904: 0xD8BC, - 23207 - 11904: 0xB445, - 23209 - 11904: 0xD8C8, - 23211 - 11904: 0xFBB4, - 23212 - 11904: 0xD8BF, - 23214 - 11904: 0xD8C1, - 23215 - 11904: 0xD8B5, - 23216 - 11904: 0xDCFA, - 23217 - 11904: 0xDCF8, - 23218 - 11904: 0xB742, - 23219 - 11904: 0xB740, - 23220 - 11904: 0xDD43, - 23221 - 11904: 0xDCF9, - 23222 - 11904: 0xDD44, - 23223 - 11904: 0xDD40, - 23224 - 11904: 0xDCF7, - 23225 - 11904: 0xDD46, - 23226 - 11904: 0xDCF6, - 23227 - 11904: 0xDCFD, - 23228 - 11904: 0xB6FE, - 23229 - 11904: 0xB6FD, - 23230 - 11904: 0xB6FC, - 23231 - 11904: 0xDCFB, - 23232 - 11904: 0xDD41, - 23233 - 11904: 0xB6F9, - 23234 - 11904: 0xB741, - 23235 - 11904: 0x90A7, - 23236 - 11904: 0xDCF4, - 23238 - 11904: 0xDCFE, - 23239 - 11904: 0xDCF3, - 23240 - 11904: 0xDCFC, - 23241 - 11904: 0xB6FA, - 23242 - 11904: 0xDD42, - 23243 - 11904: 0xDCF5, - 23244 - 11904: 0xB6FB, - 23245 - 11904: 0xDD45, - 23246 - 11904: 0x9741, - 23247 - 11904: 0x92F4, - 23249 - 11904: 0x8772, - 23251 - 11904: 0xFBBC, - 23253 - 11904: 0xE16E, - 23254 - 11904: 0xB9E2, - 23255 - 11904: 0xB9E1, - 23256 - 11904: 0xB9E3, - 23257 - 11904: 0xE17A, - 23258 - 11904: 0xE170, - 23259 - 11904: 0xE176, - 23260 - 11904: 0xE16B, - 23261 - 11904: 0xE179, - 23262 - 11904: 0xE178, - 23263 - 11904: 0xE17C, - 23264 - 11904: 0xE175, - 23265 - 11904: 0xB9DE, - 23266 - 11904: 0xE174, - 23267 - 11904: 0xB9E4, - 23268 - 11904: 0x9577, - 23269 - 11904: 0xE16D, - 23270 - 11904: 0xB9DF, - 23272 - 11904: 0xE17B, - 23273 - 11904: 0xB9E0, - 23274 - 11904: 0xE16F, - 23275 - 11904: 0xE172, - 23276 - 11904: 0xE177, - 23277 - 11904: 0xE171, - 23278 - 11904: 0xE16C, - 23280 - 11904: 0x9EE2, - 23282 - 11904: 0x8F78, - 23283 - 11904: 0xE173, - 23284 - 11904: 0xE555, - 23285 - 11904: 0xBC61, - 23286 - 11904: 0xE558, - 23287 - 11904: 0xE557, - 23288 - 11904: 0xE55A, - 23289 - 11904: 0xE55C, - 23290 - 11904: 0xF9DC, - 23291 - 11904: 0xBC5F, - 23293 - 11904: 0xE556, - 23294 - 11904: 0x9672, - 23295 - 11904: 0xE554, - 23297 - 11904: 0xE55D, - 23298 - 11904: 0xE55B, - 23299 - 11904: 0xE559, - 23301 - 11904: 0xE55F, - 23303 - 11904: 0xE55E, - 23304 - 11904: 0xBC63, - 23305 - 11904: 0xBC5E, - 23307 - 11904: 0xBC60, - 23308 - 11904: 0xBC62, - 23309 - 11904: 0x9EB5, - 23311 - 11904: 0xE560, - 23312 - 11904: 0xE957, - 23313 - 11904: 0x964B, - 23315 - 11904: 0xE956, - 23316 - 11904: 0xE955, - 23317 - 11904: 0x8CAC, - 23318 - 11904: 0xE958, - 23319 - 11904: 0xE951, - 23321 - 11904: 0xE952, - 23322 - 11904: 0xE95A, - 23323 - 11904: 0xE953, - 23325 - 11904: 0xBEC5, - 23326 - 11904: 0xE95C, - 23327 - 11904: 0xA0FA, - 23328 - 11904: 0xE95B, - 23329 - 11904: 0xE954, - 23331 - 11904: 0xECD1, - 23332 - 11904: 0xC0A8, - 23333 - 11904: 0xECCF, - 23334 - 11904: 0xECD4, - 23335 - 11904: 0xECD3, - 23336 - 11904: 0xE959, - 23338 - 11904: 0xC0A7, - 23339 - 11904: 0x9575, - 23340 - 11904: 0xECD2, - 23341 - 11904: 0xECCE, - 23342 - 11904: 0xECD6, - 23343 - 11904: 0xECD5, - 23344 - 11904: 0xC0A6, - 23346 - 11904: 0xECD0, - 23348 - 11904: 0xBEC6, - 23352 - 11904: 0xC254, - 23356 - 11904: 0xEFC1, - 23357 - 11904: 0xF1FA, - 23358 - 11904: 0xF1FB, - 23359 - 11904: 0xF1FC, - 23360 - 11904: 0xC45C, - 23361 - 11904: 0x90DA, - 23363 - 11904: 0xC45D, - 23364 - 11904: 0x9367, - 23365 - 11904: 0xF443, - 23366 - 11904: 0xFEA4, - 23367 - 11904: 0xF5C8, - 23368 - 11904: 0xF5C7, - 23370 - 11904: 0x90DF, - 23371 - 11904: 0xF6DB, - 23372 - 11904: 0xF6DC, - 23373 - 11904: 0xF7D5, - 23374 - 11904: 0xF8A7, - 23375 - 11904: 0x9354, - 23376 - 11904: 0xA46C, - 23377 - 11904: 0xA46D, - 23379 - 11904: 0xA46E, - 23380 - 11904: 0xA4D5, - 23381 - 11904: 0xA5A5, - 23382 - 11904: 0xC9D3, - 23383 - 11904: 0xA672, - 23384 - 11904: 0xA673, - 23386 - 11904: 0xA7B7, - 23387 - 11904: 0xA7B8, - 23388 - 11904: 0xA7B6, - 23389 - 11904: 0xA7B5, - 23391 - 11904: 0xA973, - 23394 - 11904: 0xCC55, - 23395 - 11904: 0xA975, - 23396 - 11904: 0xA974, - 23397 - 11904: 0xCC56, - 23398 - 11904: 0x8961, - 23400 - 11904: 0x8BB4, - 23401 - 11904: 0xABC4, - 23403 - 11904: 0xAE5D, - 23404 - 11904: 0xD165, - 23405 - 11904: 0x9DC0, - 23406 - 11904: 0xD4F0, - 23408 - 11904: 0xB145, - 23409 - 11904: 0xB447, - 23410 - 11904: 0xD4EF, - 23411 - 11904: 0xB446, - 23412 - 11904: 0x8E48, - 23413 - 11904: 0xB9E5, - 23414 - 11904: 0xFBC5, - 23415 - 11904: 0xE17D, - 23416 - 11904: 0xBEC7, - 23418 - 11904: 0xC0A9, - 23419 - 11904: 0xECD7, - 23420 - 11904: 0xFBC7, - 23421 - 11904: 0xC45E, - 23423 - 11904: 0xC570, - 23424 - 11904: 0xC6CB, - 23425 - 11904: 0xC972, - 23426 - 11904: 0xFA79, - 23427 - 11904: 0xA5A6, - 23428 - 11904: 0xC973, - 23429 - 11904: 0xA676, - 23431 - 11904: 0xA674, - 23432 - 11904: 0xA675, - 23433 - 11904: 0xA677, - 23435 - 11904: 0xA7BA, - 23436 - 11904: 0xA7B9, - 23438 - 11904: 0xCABC, - 23439 - 11904: 0xA7BB, - 23440 - 11904: 0x9E67, - 23442 - 11904: 0xCABD, - 23443 - 11904: 0xCC57, - 23445 - 11904: 0xCC58, - 23446 - 11904: 0x8CD9, - 23447 - 11904: 0xA976, - 23448 - 11904: 0xA978, - 23449 - 11904: 0xA97A, - 23450 - 11904: 0xA977, - 23451 - 11904: 0xA97B, - 23452 - 11904: 0xA979, - 23453 - 11904: 0xFBD2, - 23454 - 11904: 0x8962, - 23455 - 11904: 0x8963, - 23458 - 11904: 0xABC8, - 23459 - 11904: 0xABC5, - 23460 - 11904: 0xABC7, - 23461 - 11904: 0xABC9, - 23462 - 11904: 0xABC6, - 23463 - 11904: 0xD166, - 23464 - 11904: 0xCE77, - 23466 - 11904: 0xFC7D, - 23468 - 11904: 0xD168, - 23469 - 11904: 0xD167, - 23470 - 11904: 0xAE63, - 23472 - 11904: 0xAE5F, - 23475 - 11904: 0xAE60, - 23476 - 11904: 0xAE62, - 23477 - 11904: 0xAE64, - 23478 - 11904: 0xAE61, - 23479 - 11904: 0x8773, - 23480 - 11904: 0xAE66, - 23481 - 11904: 0xAE65, - 23487 - 11904: 0xB14A, - 23488 - 11904: 0xD4F2, - 23489 - 11904: 0xD4F1, - 23490 - 11904: 0xB149, - 23491 - 11904: 0x9F6B, - 23492 - 11904: 0xB148, - 23493 - 11904: 0xB147, - 23494 - 11904: 0xB14B, - 23495 - 11904: 0xB146, - 23498 - 11904: 0xD8D5, - 23499 - 11904: 0xD8D2, - 23500 - 11904: 0xB449, - 23501 - 11904: 0xD8D1, - 23502 - 11904: 0xD8D6, - 23504 - 11904: 0xB44B, - 23505 - 11904: 0xD8D4, - 23506 - 11904: 0xB448, - 23507 - 11904: 0xB44A, - 23508 - 11904: 0xD8D3, - 23509 - 11904: 0xFBCC, - 23510 - 11904: 0xDD48, - 23511 - 11904: 0xFEAE, - 23512 - 11904: 0xDD49, - 23513 - 11904: 0xDD4A, - 23515 - 11904: 0x876D, - 23518 - 11904: 0xB9E6, - 23519 - 11904: 0xB9EE, - 23520 - 11904: 0xE17E, - 23521 - 11904: 0xB9E8, - 23522 - 11904: 0xB9EC, - 23523 - 11904: 0xE1A1, - 23524 - 11904: 0xB9ED, - 23525 - 11904: 0xB9E9, - 23526 - 11904: 0xB9EA, - 23527 - 11904: 0xB9E7, - 23528 - 11904: 0xB9EB, - 23529 - 11904: 0xBC66, - 23530 - 11904: 0xD8D0, - 23531 - 11904: 0xBC67, - 23532 - 11904: 0xBC65, - 23534 - 11904: 0xBC64, - 23535 - 11904: 0xE95D, - 23536 - 11904: 0xBEC8, - 23537 - 11904: 0xECD8, - 23538 - 11904: 0xECD9, - 23539 - 11904: 0xFBD1, - 23541 - 11904: 0xC364, - 23542 - 11904: 0xC45F, - 23544 - 11904: 0xA46F, - 23546 - 11904: 0xA678, - 23551 - 11904: 0xFB75, - 23553 - 11904: 0xABCA, - 23555 - 11904: 0xD169, - 23556 - 11904: 0xAE67, - 23557 - 11904: 0xFBD4, - 23559 - 11904: 0xB14E, - 23560 - 11904: 0xB14D, - 23561 - 11904: 0xB14C, - 23562 - 11904: 0xB44C, - 23563 - 11904: 0xB44D, - 23564 - 11904: 0xD8D7, - 23565 - 11904: 0xB9EF, - 23566 - 11904: 0xBEC9, - 23567 - 11904: 0xA470, - 23568 - 11904: 0xC95C, - 23569 - 11904: 0xA4D6, - 23570 - 11904: 0xC974, - 23571 - 11904: 0xFBD6, - 23572 - 11904: 0xFBD8, - 23573 - 11904: 0xC9D4, - 23574 - 11904: 0xA679, - 23578 - 11904: 0xA97C, - 23580 - 11904: 0x8B5D, - 23582 - 11904: 0x934C, - 23583 - 11904: 0xDD4B, - 23584 - 11904: 0x9AE2, - 23586 - 11904: 0xA471, - 23587 - 11904: 0x8BC9, - 23588 - 11904: 0xA4D7, - 23589 - 11904: 0xC9D5, - 23592 - 11904: 0xCABE, - 23594 - 11904: 0xCABF, - 23596 - 11904: 0xA7BC, - 23600 - 11904: 0xD8D8, - 23601 - 11904: 0xB44E, - 23603 - 11904: 0xDD4C, - 23607 - 11904: 0xC0AA, - 23608 - 11904: 0xA472, - 23609 - 11904: 0xA4A8, - 23610 - 11904: 0xA4D8, - 23611 - 11904: 0xC975, - 23612 - 11904: 0xA5A7, - 23614 - 11904: 0xA7C0, - 23615 - 11904: 0xA7BF, - 23616 - 11904: 0xA7BD, - 23617 - 11904: 0xA7BE, - 23620 - 11904: 0xCC59, - 23621 - 11904: 0xA97E, - 23622 - 11904: 0xA9A1, - 23623 - 11904: 0xCC5A, - 23624 - 11904: 0xA97D, - 23625 - 11904: 0xFBDB, - 23626 - 11904: 0x9FC9, - 23627 - 11904: 0xABCE, - 23628 - 11904: 0xCE78, - 23629 - 11904: 0xABCD, - 23630 - 11904: 0xABCB, - 23631 - 11904: 0xABCC, - 23632 - 11904: 0xAE6A, - 23633 - 11904: 0xAE68, - 23635 - 11904: 0x9F44, - 23636 - 11904: 0xD16B, - 23637 - 11904: 0xAE69, - 23638 - 11904: 0xD16A, - 23640 - 11904: 0xAE5E, - 23641 - 11904: 0xD4F3, - 23644 - 11904: 0xB150, - 23645 - 11904: 0xB151, - 23646 - 11904: 0x98ED, - 23648 - 11904: 0xB14F, - 23650 - 11904: 0xB9F0, - 23651 - 11904: 0xE1A2, - 23652 - 11904: 0xBC68, - 23653 - 11904: 0xBC69, - 23655 - 11904: 0xE561, - 23656 - 11904: 0xC0AB, - 23657 - 11904: 0xEFC2, - 23658 - 11904: 0xEFC3, - 23660 - 11904: 0xC4DD, - 23661 - 11904: 0xF8A8, - 23662 - 11904: 0xC94B, - 23663 - 11904: 0xA4D9, - 23665 - 11904: 0xA473, - 23667 - 11904: 0xC977, - 23668 - 11904: 0xC976, - 23672 - 11904: 0x8CE9, - 23673 - 11904: 0xA67A, - 23674 - 11904: 0xC9D7, - 23675 - 11904: 0xC9D8, - 23676 - 11904: 0xC9D6, - 23678 - 11904: 0xC9D9, - 23685 - 11904: 0xFBDD, - 23686 - 11904: 0xCAC7, - 23688 - 11904: 0xCAC2, - 23689 - 11904: 0xCAC4, - 23690 - 11904: 0xCAC6, - 23691 - 11904: 0xCAC3, - 23692 - 11904: 0xA7C4, - 23693 - 11904: 0xCAC0, - 23695 - 11904: 0xCAC1, - 23696 - 11904: 0xA7C1, - 23697 - 11904: 0xA7C2, - 23698 - 11904: 0xCAC5, - 23699 - 11904: 0xCAC8, - 23700 - 11904: 0xA7C3, - 23701 - 11904: 0xCAC9, - 23705 - 11904: 0x8DF2, - 23706 - 11904: 0x8964, - 23708 - 11904: 0xFDF2, - 23709 - 11904: 0xCC68, - 23710 - 11904: 0x934D, - 23711 - 11904: 0xCC62, - 23712 - 11904: 0xCC5D, - 23713 - 11904: 0xA9A3, - 23714 - 11904: 0xCC65, - 23715 - 11904: 0xCC63, - 23716 - 11904: 0xCC5C, - 23717 - 11904: 0xCC69, - 23718 - 11904: 0xCC6C, - 23719 - 11904: 0xCC67, - 23720 - 11904: 0xCC60, - 23721 - 11904: 0xA9A5, - 23722 - 11904: 0xCC66, - 23723 - 11904: 0xA9A6, - 23724 - 11904: 0xCC61, - 23725 - 11904: 0xCC64, - 23726 - 11904: 0xCC5B, - 23727 - 11904: 0xCC5F, - 23728 - 11904: 0xCC6B, - 23729 - 11904: 0xA9A7, - 23731 - 11904: 0xA9A8, - 23733 - 11904: 0xCC5E, - 23734 - 11904: 0xCC6A, - 23735 - 11904: 0xA9A2, - 23736 - 11904: 0xA9A4, - 23738 - 11904: 0xFBE7, - 23745 - 11904: 0xA0F2, - 23746 - 11904: 0x9868, - 23750 - 11904: 0xCEAB, - 23751 - 11904: 0xCEA4, - 23752 - 11904: 0xCEAA, - 23753 - 11904: 0xCEA3, - 23754 - 11904: 0xCEA5, - 23755 - 11904: 0xCE7D, - 23756 - 11904: 0xCE7B, - 23758 - 11904: 0xCEAC, - 23759 - 11904: 0xCEA9, - 23760 - 11904: 0xCE79, - 23761 - 11904: 0x9F58, - 23762 - 11904: 0xABD0, - 23763 - 11904: 0xCEA7, - 23764 - 11904: 0xCEA8, - 23765 - 11904: 0x8CE6, - 23766 - 11904: 0xCEA6, - 23767 - 11904: 0xCE7C, - 23768 - 11904: 0xCE7A, - 23769 - 11904: 0xABCF, - 23770 - 11904: 0xCEA2, - 23771 - 11904: 0xCE7E, - 23774 - 11904: 0xCEA1, - 23775 - 11904: 0xCEAD, - 23781 - 11904: 0x8D73, - 23784 - 11904: 0xAE6F, - 23785 - 11904: 0xFBDE, - 23786 - 11904: 0xAE6E, - 23788 - 11904: 0xD16C, - 23789 - 11904: 0xAE6B, - 23790 - 11904: 0xD16E, - 23791 - 11904: 0xFBDF, - 23792 - 11904: 0xAE70, - 23793 - 11904: 0xD16F, - 23796 - 11904: 0xAE73, - 23797 - 11904: 0x8C48, - 23798 - 11904: 0xAE71, - 23799 - 11904: 0xD170, - 23800 - 11904: 0xCEAE, - 23801 - 11904: 0xD172, - 23803 - 11904: 0xAE6D, - 23804 - 11904: 0x8774, - 23805 - 11904: 0xAE6C, - 23807 - 11904: 0xD16D, - 23808 - 11904: 0xD171, - 23809 - 11904: 0xAE72, - 23814 - 11904: 0xB153, - 23815 - 11904: 0xB152, - 23819 - 11904: 0xD4F5, - 23820 - 11904: 0xD4F9, - 23821 - 11904: 0xD4FB, - 23822 - 11904: 0xB154, - 23823 - 11904: 0xD4FE, - 23824 - 11904: 0xFBE3, - 23825 - 11904: 0xB158, - 23826 - 11904: 0xD541, - 23828 - 11904: 0xB15A, - 23829 - 11904: 0x8DA8, - 23830 - 11904: 0xB156, - 23831 - 11904: 0xB15E, - 23832 - 11904: 0xFBE4, - 23833 - 11904: 0xB15B, - 23834 - 11904: 0xD4F7, - 23835 - 11904: 0xB155, - 23837 - 11904: 0xD4F6, - 23838 - 11904: 0xD4F4, - 23839 - 11904: 0xD543, - 23840 - 11904: 0xD4F8, - 23842 - 11904: 0xB157, - 23843 - 11904: 0xD542, - 23844 - 11904: 0xB15C, - 23845 - 11904: 0xD4FD, - 23846 - 11904: 0xD4FC, - 23847 - 11904: 0xB15D, - 23848 - 11904: 0xD4FA, - 23849 - 11904: 0xB159, - 23852 - 11904: 0x9C75, - 23854 - 11904: 0xD544, - 23855 - 11904: 0x9878, - 23856 - 11904: 0xD540, - 23857 - 11904: 0xD8E7, - 23858 - 11904: 0xD8EE, - 23859 - 11904: 0xD8E3, - 23860 - 11904: 0xB451, - 23861 - 11904: 0xD8DF, - 23862 - 11904: 0xD8EF, - 23863 - 11904: 0xD8D9, - 23864 - 11904: 0xD8EC, - 23865 - 11904: 0xD8EA, - 23866 - 11904: 0xD8E4, - 23868 - 11904: 0xD8ED, - 23869 - 11904: 0xD8E6, - 23870 - 11904: 0x8D60, - 23871 - 11904: 0xD8DE, - 23872 - 11904: 0xD8F0, - 23873 - 11904: 0xD8DC, - 23874 - 11904: 0xD8E9, - 23875 - 11904: 0xD8DA, - 23877 - 11904: 0xD8F1, - 23878 - 11904: 0xFBE5, - 23879 - 11904: 0xB452, - 23880 - 11904: 0x8D61, - 23881 - 11904: 0xD8EB, - 23882 - 11904: 0xDD4F, - 23883 - 11904: 0xD8DD, - 23884 - 11904: 0xB44F, - 23886 - 11904: 0xD8E1, - 23888 - 11904: 0xB450, - 23889 - 11904: 0xD8E0, - 23890 - 11904: 0xD8E5, - 23893 - 11904: 0xD8E2, - 23894 - 11904: 0x8D62, - 23895 - 11904: 0xA0A1, - 23897 - 11904: 0xD8E8, - 23899 - 11904: 0x9C40, - 23902 - 11904: 0xDD53, - 23906 - 11904: 0xDD56, - 23907 - 11904: 0xDD4E, - 23909 - 11904: 0xDD50, - 23911 - 11904: 0xDD55, - 23912 - 11904: 0xDD54, - 23913 - 11904: 0xB743, - 23915 - 11904: 0xD8DB, - 23916 - 11904: 0xDD52, - 23919 - 11904: 0xB744, - 23920 - 11904: 0x98AD, - 23921 - 11904: 0xDD4D, - 23922 - 11904: 0xDD51, - 23924 - 11904: 0x9EEA, - 23927 - 11904: 0xE1A9, - 23928 - 11904: 0x8CEC, - 23929 - 11904: 0xE1B0, - 23930 - 11904: 0xE1A7, - 23931 - 11904: 0x8CD4, - 23932 - 11904: 0xE1AE, - 23933 - 11904: 0xE1A5, - 23934 - 11904: 0xE1AD, - 23935 - 11904: 0xE1B1, - 23936 - 11904: 0xE1A4, - 23937 - 11904: 0xE1A8, - 23938 - 11904: 0xE1A3, - 23940 - 11904: 0xB9F1, - 23941 - 11904: 0x9CEB, - 23942 - 11904: 0xE1A6, - 23943 - 11904: 0xB9F2, - 23944 - 11904: 0xE1AC, - 23945 - 11904: 0xE1AB, - 23946 - 11904: 0xE1AA, - 23947 - 11904: 0xFBE0, - 23949 - 11904: 0xE1AF, - 23950 - 11904: 0x9F51, - 23954 - 11904: 0xE565, - 23955 - 11904: 0xE567, - 23956 - 11904: 0xBC6B, - 23957 - 11904: 0xE568, - 23959 - 11904: 0xE563, - 23961 - 11904: 0xE562, - 23962 - 11904: 0xE56C, - 23964 - 11904: 0xE56A, - 23965 - 11904: 0xBC6A, - 23966 - 11904: 0xE56D, - 23967 - 11904: 0xE564, - 23968 - 11904: 0xE569, - 23969 - 11904: 0xE56B, - 23970 - 11904: 0xE566, - 23972 - 11904: 0x8D65, - 23975 - 11904: 0xE961, - 23976 - 11904: 0xE966, - 23977 - 11904: 0xE960, - 23978 - 11904: 0xE965, - 23979 - 11904: 0x9CF1, - 23980 - 11904: 0xE95E, - 23981 - 11904: 0xE968, - 23982 - 11904: 0xE964, - 23983 - 11904: 0xE969, - 23984 - 11904: 0xE963, - 23985 - 11904: 0xE95F, - 23986 - 11904: 0xE967, - 23988 - 11904: 0xE96A, - 23989 - 11904: 0xE962, - 23990 - 11904: 0xFC58, - 23991 - 11904: 0xECDA, - 23992 - 11904: 0xC0AF, - 23993 - 11904: 0x8D66, - 23994 - 11904: 0xC0AD, - 23996 - 11904: 0xC0AC, - 23997 - 11904: 0xC0AE, - 24000 - 11904: 0xEFC4, - 24001 - 11904: 0x9654, - 24002 - 11904: 0xF172, - 24003 - 11904: 0xF1FD, - 24006 - 11904: 0xF444, - 24007 - 11904: 0xF445, - 24009 - 11904: 0xC460, - 24011 - 11904: 0xF5C9, - 24013 - 11904: 0xC4DE, - 24015 - 11904: 0xF5CA, - 24017 - 11904: 0xF6DE, - 24018 - 11904: 0xC572, - 24020 - 11904: 0xC571, - 24021 - 11904: 0xF6DD, - 24022 - 11904: 0xC5C9, - 24023 - 11904: 0xFBE8, - 24024 - 11904: 0xF7D6, - 24027 - 11904: 0xC6CC, - 24029 - 11904: 0xA474, - 24030 - 11904: 0xA67B, - 24031 - 11904: 0xC9DA, - 24032 - 11904: 0xCACA, - 24033 - 11904: 0xA8B5, - 24034 - 11904: 0xB15F, - 24037 - 11904: 0xA475, - 24038 - 11904: 0xA5AA, - 24039 - 11904: 0xA5A9, - 24040 - 11904: 0xA5A8, - 24043 - 11904: 0xA7C5, - 24046 - 11904: 0xAE74, - 24048 - 11904: 0xDD57, - 24049 - 11904: 0xA476, - 24050 - 11904: 0xA477, - 24051 - 11904: 0xA478, - 24052 - 11904: 0xA4DA, - 24053 - 11904: 0x9FCE, - 24055 - 11904: 0xABD1, - 24057 - 11904: 0xCEAF, - 24061 - 11904: 0xB453, - 24062 - 11904: 0xA479, - 24063 - 11904: 0xC95D, - 24066 - 11904: 0xA5AB, - 24067 - 11904: 0xA5AC, - 24068 - 11904: 0xC978, - 24070 - 11904: 0xA67C, - 24073 - 11904: 0xFBFC, - 24074 - 11904: 0xCACB, - 24075 - 11904: 0x9AE4, - 24076 - 11904: 0xA7C6, - 24078 - 11904: 0xCACC, - 24081 - 11904: 0xA9AE, - 24082 - 11904: 0x9F75, - 24084 - 11904: 0xCC6E, - 24085 - 11904: 0xA9AC, - 24086 - 11904: 0xA9AB, - 24087 - 11904: 0xCC6D, - 24088 - 11904: 0xA9A9, - 24089 - 11904: 0xCC6F, - 24090 - 11904: 0xA9AA, - 24091 - 11904: 0xA9AD, - 24093 - 11904: 0xABD2, - 24095 - 11904: 0xABD4, - 24096 - 11904: 0xCEB3, - 24097 - 11904: 0xCEB0, - 24098 - 11904: 0xCEB1, - 24099 - 11904: 0xCEB2, - 24100 - 11904: 0xCEB4, - 24101 - 11904: 0xABD3, - 24104 - 11904: 0xD174, - 24105 - 11904: 0xD173, - 24107 - 11904: 0xAE76, - 24109 - 11904: 0xAE75, - 24110 - 11904: 0xFBF1, - 24115 - 11904: 0xB162, - 24116 - 11904: 0xD546, - 24118 - 11904: 0xB161, - 24119 - 11904: 0xB163, - 24120 - 11904: 0xB160, - 24125 - 11904: 0xB455, - 24126 - 11904: 0xD545, - 24128 - 11904: 0xB456, - 24129 - 11904: 0xD8F3, - 24130 - 11904: 0x8D69, - 24131 - 11904: 0xB457, - 24132 - 11904: 0xD8F2, - 24133 - 11904: 0xB454, - 24136 - 11904: 0x934F, - 24138 - 11904: 0xDD5A, - 24139 - 11904: 0xDD5C, - 24140 - 11904: 0xB745, - 24141 - 11904: 0xDD5B, - 24142 - 11904: 0xDD59, - 24143 - 11904: 0xDD58, - 24147 - 11904: 0xE1B4, - 24148 - 11904: 0xB9F7, - 24149 - 11904: 0xB9F5, - 24151 - 11904: 0xB9F6, - 24152 - 11904: 0xE1B2, - 24153 - 11904: 0xE1B3, - 24155 - 11904: 0xB9F3, - 24156 - 11904: 0xE571, - 24157 - 11904: 0xE56F, - 24158 - 11904: 0x934E, - 24159 - 11904: 0xBC6D, - 24160 - 11904: 0xE570, - 24161 - 11904: 0xBC6E, - 24162 - 11904: 0xBC6C, - 24163 - 11904: 0xB9F4, - 24166 - 11904: 0xE96D, - 24167 - 11904: 0xE96B, - 24168 - 11904: 0xE96C, - 24169 - 11904: 0xE56E, - 24170 - 11904: 0xECDC, - 24171 - 11904: 0xC0B0, - 24172 - 11904: 0xECDB, - 24173 - 11904: 0xEFC5, - 24174 - 11904: 0xEFC6, - 24175 - 11904: 0xE96E, - 24176 - 11904: 0xF1FE, - 24178 - 11904: 0xA47A, - 24179 - 11904: 0xA5AD, - 24180 - 11904: 0xA67E, - 24181 - 11904: 0xFBF3, - 24182 - 11904: 0xA67D, - 24184 - 11904: 0xA9AF, - 24185 - 11904: 0xB746, - 24186 - 11904: 0xFBF4, - 24187 - 11904: 0xA4DB, - 24188 - 11904: 0xA5AE, - 24189 - 11904: 0xABD5, - 24190 - 11904: 0xB458, - 24191 - 11904: 0xC6CE, - 24192 - 11904: 0xC979, - 24194 - 11904: 0xC97A, - 24195 - 11904: 0xFBC3, - 24196 - 11904: 0xC9DC, - 24198 - 11904: 0x8965, - 24199 - 11904: 0xA7C8, - 24200 - 11904: 0xCAD0, - 24201 - 11904: 0xCACE, - 24202 - 11904: 0xA7C9, - 24203 - 11904: 0xCACD, - 24204 - 11904: 0xCACF, - 24205 - 11904: 0xCAD1, - 24207 - 11904: 0xA7C7, - 24210 - 11904: 0x8C7A, - 24213 - 11904: 0xA9B3, - 24214 - 11904: 0xA9B4, - 24215 - 11904: 0xA9B1, - 24217 - 11904: 0x8C7B, - 24218 - 11904: 0xA9B0, - 24219 - 11904: 0xCEB8, - 24220 - 11904: 0xA9B2, - 24224 - 11904: 0xABD6, - 24226 - 11904: 0xCEB7, - 24227 - 11904: 0xCEB9, - 24228 - 11904: 0xCEB6, - 24229 - 11904: 0xCEBA, - 24230 - 11904: 0xABD7, - 24231 - 11904: 0xAE79, - 24232 - 11904: 0xD175, - 24234 - 11904: 0xD177, - 24235 - 11904: 0xAE77, - 24236 - 11904: 0xD178, - 24237 - 11904: 0xAE78, - 24238 - 11904: 0xD176, - 24240 - 11904: 0xCEB5, - 24241 - 11904: 0xD547, - 24242 - 11904: 0xD54A, - 24243 - 11904: 0xD54B, - 24244 - 11904: 0xD548, - 24245 - 11904: 0xB167, - 24246 - 11904: 0xB166, - 24247 - 11904: 0xB164, - 24248 - 11904: 0xB165, - 24249 - 11904: 0xD549, - 24253 - 11904: 0x8D6A, - 24254 - 11904: 0xB168, - 24257 - 11904: 0xB45A, - 24258 - 11904: 0xB45B, - 24260 - 11904: 0xB45C, - 24261 - 11904: 0xDD5D, - 24262 - 11904: 0xDD5F, - 24263 - 11904: 0xDD61, - 24264 - 11904: 0xB748, - 24265 - 11904: 0xB747, - 24266 - 11904: 0xB459, - 24267 - 11904: 0xDD60, - 24268 - 11904: 0xDD5E, - 24269 - 11904: 0x9353, - 24270 - 11904: 0xE1B8, - 24272 - 11904: 0xFBF9, - 24273 - 11904: 0xE1B6, - 24274 - 11904: 0xE1BC, - 24275 - 11904: 0xB9F8, - 24276 - 11904: 0xE1BD, - 24277 - 11904: 0xE1BA, - 24278 - 11904: 0xB9F9, - 24279 - 11904: 0xE1B7, - 24280 - 11904: 0xE1B5, - 24281 - 11904: 0xE1BB, - 24282 - 11904: 0xBC70, - 24283 - 11904: 0xE573, - 24284 - 11904: 0xE1B9, - 24285 - 11904: 0xBC72, - 24286 - 11904: 0xE574, - 24287 - 11904: 0xBC71, - 24288 - 11904: 0xBC74, - 24289 - 11904: 0xE575, - 24290 - 11904: 0xBC6F, - 24291 - 11904: 0xBC73, - 24293 - 11904: 0xE973, - 24294 - 11904: 0xE971, - 24295 - 11904: 0xE970, - 24296 - 11904: 0xE972, - 24297 - 11904: 0xE96F, - 24300 - 11904: 0xC366, - 24302 - 11904: 0xF446, - 24303 - 11904: 0xF447, - 24305 - 11904: 0xF5CB, - 24306 - 11904: 0xF6DF, - 24307 - 11904: 0xC655, - 24308 - 11904: 0xFBFD, - 24310 - 11904: 0xA9B5, - 24311 - 11904: 0xA7CA, - 24312 - 11904: 0x9059, - 24313 - 11904: 0xFC40, - 24314 - 11904: 0xABD8, - 24315 - 11904: 0xFC41, - 24316 - 11904: 0xFC43, - 24318 - 11904: 0xA47B, - 24319 - 11904: 0xA4DC, - 24321 - 11904: 0xA5AF, - 24322 - 11904: 0xC9DD, - 24324 - 11904: 0xA7CB, - 24325 - 11904: 0xCAD2, - 24327 - 11904: 0xCEBB, - 24328 - 11904: 0xABD9, - 24330 - 11904: 0xB9FA, - 24331 - 11904: 0xA47C, - 24332 - 11904: 0x9FD8, - 24333 - 11904: 0xFC46, - 24334 - 11904: 0x9362, - 24335 - 11904: 0xA6A1, - 24338 - 11904: 0xB749, - 24339 - 11904: 0xA47D, - 24340 - 11904: 0xA4DD, - 24341 - 11904: 0xA4DE, - 24343 - 11904: 0xA5B1, - 24344 - 11904: 0xA5B0, - 24346 - 11904: 0xC9DE, - 24347 - 11904: 0xA6A2, - 24349 - 11904: 0xCAD3, - 24351 - 11904: 0xA7CC, - 24354 - 11904: 0xCC71, - 24355 - 11904: 0xCC72, - 24356 - 11904: 0xCC73, - 24357 - 11904: 0x8D6B, - 24358 - 11904: 0xA9B6, - 24359 - 11904: 0xA9B7, - 24360 - 11904: 0xCC70, - 24361 - 11904: 0xA9B8, - 24365 - 11904: 0xABDA, - 24366 - 11904: 0xCEBC, - 24368 - 11904: 0xD17A, - 24369 - 11904: 0xAE7A, - 24371 - 11904: 0xD179, - 24373 - 11904: 0xB169, - 24374 - 11904: 0xD54C, - 24375 - 11904: 0xB16A, - 24376 - 11904: 0xD54D, - 24378 - 11904: 0xFC4C, - 24379 - 11904: 0x8CFE, - 24380 - 11904: 0xB45D, - 24384 - 11904: 0xDD62, - 24387 - 11904: 0xE1BF, - 24388 - 11904: 0xE1BE, - 24390 - 11904: 0xB9FB, - 24392 - 11904: 0xBC75, - 24393 - 11904: 0xE576, - 24394 - 11904: 0xBECA, - 24395 - 11904: 0xE974, - 24396 - 11904: 0xC0B1, - 24397 - 11904: 0x95B8, - 24398 - 11904: 0xC573, - 24399 - 11904: 0xF7D8, - 24400 - 11904: 0xC6D0, - 24401 - 11904: 0x8BCA, - 24404 - 11904: 0xCC74, - 24406 - 11904: 0xCEBD, - 24407 - 11904: 0xB16B, - 24408 - 11904: 0xFC4F, - 24409 - 11904: 0xB74A, - 24412 - 11904: 0x987A, - 24413 - 11904: 0xC255, - 24417 - 11904: 0xC6D1, - 24418 - 11904: 0xA7CE, - 24419 - 11904: 0xFC51, - 24420 - 11904: 0xA7CD, - 24421 - 11904: 0xABDB, - 24423 - 11904: 0xD17B, - 24425 - 11904: 0xB16D, - 24426 - 11904: 0xB343, - 24427 - 11904: 0xB16E, - 24428 - 11904: 0xB16C, - 24429 - 11904: 0xB45E, - 24431 - 11904: 0xE1C0, - 24432 - 11904: 0xB9FC, - 24433 - 11904: 0xBC76, - 24434 - 11904: 0xFC54, - 24435 - 11904: 0xC94C, - 24436 - 11904: 0xC9DF, - 24438 - 11904: 0xCAD5, - 24439 - 11904: 0xA7CF, - 24440 - 11904: 0xCAD4, - 24441 - 11904: 0xA7D0, - 24443 - 11904: 0xFAAF, - 24444 - 11904: 0xA9BC, - 24445 - 11904: 0xCC77, - 24446 - 11904: 0xCC76, - 24447 - 11904: 0xA9BB, - 24448 - 11904: 0xA9B9, - 24449 - 11904: 0xA9BA, - 24450 - 11904: 0xCC75, - 24451 - 11904: 0x8D6C, - 24453 - 11904: 0xABDD, - 24454 - 11904: 0xCEBE, - 24455 - 11904: 0xABE0, - 24456 - 11904: 0xABDC, - 24457 - 11904: 0xABE2, - 24458 - 11904: 0xABDE, - 24459 - 11904: 0xABDF, - 24460 - 11904: 0xABE1, - 24464 - 11904: 0xAE7D, - 24465 - 11904: 0xAE7C, - 24466 - 11904: 0xAE7B, - 24470 - 11904: 0xD54F, - 24471 - 11904: 0xB16F, - 24472 - 11904: 0xB172, - 24473 - 11904: 0xB170, - 24475 - 11904: 0xD54E, - 24476 - 11904: 0xB175, - 24478 - 11904: 0xB171, - 24479 - 11904: 0xD550, - 24480 - 11904: 0xB174, - 24481 - 11904: 0xB173, - 24484 - 11904: 0xFA61, - 24485 - 11904: 0xD8F6, - 24486 - 11904: 0xD8F5, - 24487 - 11904: 0xFC57, - 24488 - 11904: 0xB461, - 24489 - 11904: 0xB45F, - 24490 - 11904: 0xB460, - 24491 - 11904: 0xD8F7, - 24492 - 11904: 0xB74B, - 24493 - 11904: 0xDD64, - 24494 - 11904: 0xB74C, - 24495 - 11904: 0xDD63, - 24497 - 11904: 0x9B70, - 24498 - 11904: 0xE577, - 24501 - 11904: 0xBC78, - 24502 - 11904: 0xE1C1, - 24503 - 11904: 0xBC77, - 24505 - 11904: 0xB9FD, - 24506 - 11904: 0xA051, - 24507 - 11904: 0xECDE, - 24508 - 11904: 0xE975, - 24509 - 11904: 0xC0B2, - 24510 - 11904: 0xECDD, - 24511 - 11904: 0xF240, - 24512 - 11904: 0xF448, - 24513 - 11904: 0xF449, - 24514 - 11904: 0x8C7C, - 24515 - 11904: 0xA4DF, - 24516 - 11904: 0x8BCB, - 24517 - 11904: 0xA5B2, - 24521 - 11904: 0xC97B, - 24524 - 11904: 0xA7D2, - 24525 - 11904: 0xA7D4, - 24527 - 11904: 0xC9E2, - 24528 - 11904: 0xCAD8, - 24529 - 11904: 0xCAD7, - 24530 - 11904: 0xCAD6, - 24532 - 11904: 0xC9E1, - 24533 - 11904: 0xC9E0, - 24534 - 11904: 0xA6A4, - 24535 - 11904: 0xA7D3, - 24536 - 11904: 0xA7D1, - 24537 - 11904: 0xA6A3, - 24539 - 11904: 0x936E, - 24541 - 11904: 0xA9BD, - 24542 - 11904: 0xCC78, - 24543 - 11904: 0xFCD5, - 24544 - 11904: 0xA9BE, - 24545 - 11904: 0xCADD, - 24547 - 11904: 0xCADF, - 24548 - 11904: 0xCADE, - 24549 - 11904: 0xCC79, - 24552 - 11904: 0xCADA, - 24554 - 11904: 0xA7D8, - 24555 - 11904: 0xA7D6, - 24557 - 11904: 0xCAD9, - 24558 - 11904: 0xCADB, - 24559 - 11904: 0xCAE1, - 24561 - 11904: 0xA7D5, - 24563 - 11904: 0xCADC, - 24564 - 11904: 0xCAE5, - 24565 - 11904: 0xA9C0, - 24567 - 11904: 0xCAE2, - 24568 - 11904: 0xA7D7, - 24570 - 11904: 0xCAE0, - 24571 - 11904: 0xCAE3, - 24573 - 11904: 0xA9BF, - 24575 - 11904: 0xA9C1, - 24576 - 11904: 0xCAE4, - 24585 - 11904: 0xCCAF, - 24586 - 11904: 0xCCA2, - 24587 - 11904: 0xCC7E, - 24588 - 11904: 0xCCAE, - 24589 - 11904: 0xCCA9, - 24590 - 11904: 0xABE7, - 24591 - 11904: 0xA9C2, - 24592 - 11904: 0xCCAA, - 24593 - 11904: 0xCCAD, - 24594 - 11904: 0xABE3, - 24595 - 11904: 0xCCAC, - 24596 - 11904: 0xA9C3, - 24597 - 11904: 0xA9C8, - 24598 - 11904: 0xA9C6, - 24599 - 11904: 0xCCA3, - 24601 - 11904: 0xCC7C, - 24602 - 11904: 0xCCA5, - 24603 - 11904: 0xA9CD, - 24604 - 11904: 0xCCB0, - 24605 - 11904: 0xABE4, - 24606 - 11904: 0xCCA6, - 24608 - 11904: 0xABE5, - 24609 - 11904: 0xA9C9, - 24610 - 11904: 0xCCA8, - 24611 - 11904: 0xFCA9, - 24612 - 11904: 0xCECD, - 24613 - 11904: 0xABE6, - 24614 - 11904: 0xCC7B, - 24615 - 11904: 0xA9CA, - 24616 - 11904: 0xABE8, - 24617 - 11904: 0xA9CB, - 24618 - 11904: 0xA9C7, - 24619 - 11904: 0xA9CC, - 24620 - 11904: 0xCCA7, - 24621 - 11904: 0xCC7A, - 24622 - 11904: 0xCCAB, - 24623 - 11904: 0xA9C4, - 24625 - 11904: 0xFC61, - 24626 - 11904: 0xCC7D, - 24627 - 11904: 0xCCA4, - 24628 - 11904: 0xCCA1, - 24629 - 11904: 0xA9C5, - 24631 - 11904: 0xCEBF, - 24633 - 11904: 0xCEC0, - 24635 - 11904: 0x8966, - 24640 - 11904: 0xCECA, - 24641 - 11904: 0xD1A1, - 24642 - 11904: 0xCECB, - 24643 - 11904: 0xABEE, - 24644 - 11904: 0xCECE, - 24645 - 11904: 0xCEC4, - 24646 - 11904: 0xABED, - 24647 - 11904: 0xCEC6, - 24649 - 11904: 0xCEC7, - 24650 - 11904: 0xFACB, - 24652 - 11904: 0xCEC9, - 24653 - 11904: 0xABE9, - 24656 - 11904: 0xAEA3, - 24658 - 11904: 0xF9DA, - 24659 - 11904: 0xCEC5, - 24660 - 11904: 0xCEC1, - 24661 - 11904: 0xAEA4, - 24664 - 11904: 0xCECF, - 24665 - 11904: 0xAE7E, - 24666 - 11904: 0xD17D, - 24667 - 11904: 0xCEC8, - 24669 - 11904: 0xD17C, - 24670 - 11904: 0xCEC3, - 24671 - 11904: 0xCECC, - 24674 - 11904: 0xABEC, - 24675 - 11904: 0xAEA1, - 24676 - 11904: 0xABF2, - 24677 - 11904: 0xAEA2, - 24678 - 11904: 0xCED0, - 24679 - 11904: 0xD17E, - 24680 - 11904: 0xABEB, - 24681 - 11904: 0xAEA6, - 24682 - 11904: 0xABF1, - 24683 - 11904: 0xABF0, - 24684 - 11904: 0xABEF, - 24685 - 11904: 0xAEA5, - 24686 - 11904: 0xCED1, - 24687 - 11904: 0xAEA7, - 24688 - 11904: 0xABEA, - 24690 - 11904: 0xCEC2, - 24693 - 11904: 0x937A, - 24695 - 11904: 0xA0E0, - 24702 - 11904: 0x936B, - 24703 - 11904: 0xB176, - 24704 - 11904: 0xD1A4, - 24705 - 11904: 0xD1A6, - 24707 - 11904: 0xD1A8, - 24708 - 11904: 0xAEA8, - 24709 - 11904: 0xAEAE, - 24710 - 11904: 0xD553, - 24711 - 11904: 0xD1AC, - 24712 - 11904: 0xD1A3, - 24713 - 11904: 0xB178, - 24714 - 11904: 0xD551, - 24716 - 11904: 0xAEAD, - 24717 - 11904: 0xAEAB, - 24718 - 11904: 0xD1AE, - 24720 - 11904: 0xD552, - 24722 - 11904: 0xD1A5, - 24724 - 11904: 0xAEAC, - 24725 - 11904: 0xD1A9, - 24726 - 11904: 0xAEAF, - 24727 - 11904: 0xD1AB, - 24730 - 11904: 0xAEAA, - 24731 - 11904: 0xD1AA, - 24732 - 11904: 0xD1AD, - 24733 - 11904: 0xD1A7, - 24734 - 11904: 0xFC6B, - 24735 - 11904: 0xAEA9, - 24736 - 11904: 0xB179, - 24738 - 11904: 0xD1A2, - 24739 - 11904: 0xB177, - 24740 - 11904: 0xFC6C, - 24743 - 11904: 0x9468, - 24744 - 11904: 0xB17A, - 24752 - 11904: 0xD555, - 24753 - 11904: 0xD55E, - 24754 - 11904: 0xB464, - 24755 - 11904: 0xFC6D, - 24756 - 11904: 0xB17C, - 24757 - 11904: 0xB1A3, - 24758 - 11904: 0xB465, - 24759 - 11904: 0xD560, - 24760 - 11904: 0xB1AA, - 24761 - 11904: 0xD8F9, - 24762 - 11904: 0xD556, - 24763 - 11904: 0xB1A2, - 24764 - 11904: 0xB1A5, - 24765 - 11904: 0xB17E, - 24766 - 11904: 0xD554, - 24767 - 11904: 0xD562, - 24768 - 11904: 0xD565, - 24769 - 11904: 0xD949, - 24771 - 11904: 0xD563, - 24772 - 11904: 0xD8FD, - 24773 - 11904: 0xB1A1, - 24774 - 11904: 0xB1A8, - 24775 - 11904: 0xB1AC, - 24776 - 11904: 0xD55D, - 24777 - 11904: 0xD8F8, - 24778 - 11904: 0xD561, - 24779 - 11904: 0xB17B, - 24780 - 11904: 0xD8FA, - 24781 - 11904: 0xD564, - 24782 - 11904: 0xD8FC, - 24783 - 11904: 0xD559, - 24785 - 11904: 0xB462, - 24787 - 11904: 0xD557, - 24788 - 11904: 0xD558, - 24789 - 11904: 0xB1A7, - 24791 - 11904: 0x8D71, - 24792 - 11904: 0xB1A6, - 24793 - 11904: 0xD55B, - 24794 - 11904: 0xB1AB, - 24795 - 11904: 0xD55F, - 24796 - 11904: 0xB1A4, - 24797 - 11904: 0xD55C, - 24798 - 11904: 0xFD64, - 24799 - 11904: 0xB1A9, - 24800 - 11904: 0xB466, - 24801 - 11904: 0xB463, - 24802 - 11904: 0xD8FB, - 24803 - 11904: 0x99BA, - 24804 - 11904: 0xD55A, - 24806 - 11904: 0xB17D, - 24807 - 11904: 0x9AD0, - 24808 - 11904: 0x9A61, - 24809 - 11904: 0xA0E5, - 24816 - 11904: 0xB46B, - 24817 - 11904: 0xB46F, - 24818 - 11904: 0xD940, - 24819 - 11904: 0xB751, - 24820 - 11904: 0xB46D, - 24821 - 11904: 0xD944, - 24822 - 11904: 0xB471, - 24823 - 11904: 0xDD65, - 24824 - 11904: 0xD946, - 24825 - 11904: 0xB753, - 24826 - 11904: 0xB469, - 24827 - 11904: 0xB46C, - 24828 - 11904: 0xD947, - 24829 - 11904: 0xA05B, - 24830 - 11904: 0xD948, - 24831 - 11904: 0xD94E, - 24832 - 11904: 0xB473, - 24833 - 11904: 0xB754, - 24835 - 11904: 0xD94A, - 24836 - 11904: 0xD94F, - 24837 - 11904: 0xD943, - 24838 - 11904: 0xB75E, - 24839 - 11904: 0x96AC, - 24840 - 11904: 0xB755, - 24841 - 11904: 0xB472, - 24842 - 11904: 0xD941, - 24843 - 11904: 0xD950, - 24844 - 11904: 0x9740, - 24845 - 11904: 0xB75D, - 24846 - 11904: 0xB470, - 24847 - 11904: 0xB74E, - 24848 - 11904: 0xD94D, - 24850 - 11904: 0xB474, - 24851 - 11904: 0xD945, - 24852 - 11904: 0xD8FE, - 24853 - 11904: 0xB46A, - 24854 - 11904: 0xD942, - 24856 - 11904: 0xD94B, - 24857 - 11904: 0x9EF1, - 24858 - 11904: 0xB74D, - 24859 - 11904: 0xB752, - 24860 - 11904: 0xB467, - 24861 - 11904: 0xD94C, - 24863 - 11904: 0xB750, - 24866 - 11904: 0x8C4D, - 24867 - 11904: 0xB468, - 24871 - 11904: 0xB75C, - 24872 - 11904: 0xE1C3, - 24873 - 11904: 0xDD70, - 24875 - 11904: 0xDD68, - 24876 - 11904: 0xE1C2, - 24878 - 11904: 0xDD6C, - 24879 - 11904: 0xDD6E, - 24880 - 11904: 0x9F7E, - 24882 - 11904: 0xDD6B, - 24884 - 11904: 0xB75B, - 24886 - 11904: 0xDD6A, - 24887 - 11904: 0xB75F, - 24891 - 11904: 0xE1D2, - 24893 - 11904: 0x8D72, - 24894 - 11904: 0xB75A, - 24895 - 11904: 0xBA40, - 24896 - 11904: 0xDD71, - 24897 - 11904: 0xE1C4, - 24898 - 11904: 0xFC76, - 24900 - 11904: 0xB758, - 24901 - 11904: 0xDD69, - 24902 - 11904: 0xDD6D, - 24903 - 11904: 0xB9FE, - 24904 - 11904: 0xB74F, - 24905 - 11904: 0xDD66, - 24906 - 11904: 0xDD67, - 24907 - 11904: 0xBA41, - 24908 - 11904: 0xB757, - 24909 - 11904: 0xB759, - 24910 - 11904: 0xB756, - 24911 - 11904: 0xDD6F, - 24912 - 11904: 0x96A9, - 24914 - 11904: 0xE1C8, - 24915 - 11904: 0xE1C9, - 24916 - 11904: 0xE1CE, - 24917 - 11904: 0xBC7D, - 24918 - 11904: 0xE1D5, - 24920 - 11904: 0xBA47, - 24921 - 11904: 0xA06E, - 24922 - 11904: 0xBA46, - 24923 - 11904: 0xE1D0, - 24924 - 11904: 0xFCAA, - 24925 - 11904: 0xBC7C, - 24926 - 11904: 0xE1C5, - 24927 - 11904: 0xBA45, - 24928 - 11904: 0xFBCD, - 24929 - 11904: 0xE1D4, - 24930 - 11904: 0xBA43, - 24931 - 11904: 0xBA44, - 24932 - 11904: 0xFC74, - 24933 - 11904: 0xE1D1, - 24934 - 11904: 0xE5AA, - 24935 - 11904: 0xBC7A, - 24936 - 11904: 0xB46E, - 24938 - 11904: 0xE1D3, - 24939 - 11904: 0xBCA3, - 24940 - 11904: 0xE1CB, - 24942 - 11904: 0xBC7B, - 24943 - 11904: 0xA074, - 24944 - 11904: 0xBCA2, - 24945 - 11904: 0xE1C6, - 24946 - 11904: 0xE1CA, - 24947 - 11904: 0xE1C7, - 24948 - 11904: 0xE1CD, - 24949 - 11904: 0xBA48, - 24950 - 11904: 0xBC79, - 24951 - 11904: 0xBA42, - 24953 - 11904: 0xE57A, - 24954 - 11904: 0xE1CF, - 24956 - 11904: 0xBCA1, - 24957 - 11904: 0xA071, - 24958 - 11904: 0xBCA4, - 24960 - 11904: 0xE1CC, - 24961 - 11904: 0xFC79, - 24962 - 11904: 0xBC7E, - 24963 - 11904: 0xE579, - 24967 - 11904: 0xFC7C, - 24969 - 11904: 0xE57E, - 24970 - 11904: 0xBECE, - 24971 - 11904: 0xE578, - 24972 - 11904: 0xE9A3, - 24973 - 11904: 0xE5A9, - 24974 - 11904: 0xBCA8, - 24976 - 11904: 0xBCA6, - 24977 - 11904: 0xBECC, - 24978 - 11904: 0xE5A6, - 24979 - 11904: 0xE5A2, - 24980 - 11904: 0xBCAC, - 24981 - 11904: 0x9C50, - 24982 - 11904: 0xE978, - 24984 - 11904: 0x9379, - 24985 - 11904: 0x9378, - 24986 - 11904: 0xBCAA, - 24987 - 11904: 0xE5A1, - 24988 - 11904: 0xA0DD, - 24989 - 11904: 0xE976, - 24991 - 11904: 0xE5A5, - 24993 - 11904: 0xE5A8, - 24994 - 11904: 0xE57D, - 24996 - 11904: 0xBCAB, - 24999 - 11904: 0xBCA5, - 25000 - 11904: 0xE977, - 25001 - 11904: 0xBECD, - 25002 - 11904: 0xE5A7, - 25003 - 11904: 0xBCA7, - 25004 - 11904: 0xBCA9, - 25005 - 11904: 0xE5A4, - 25006 - 11904: 0xBCAD, - 25007 - 11904: 0xE5A3, - 25008 - 11904: 0xE57C, - 25009 - 11904: 0xE57B, - 25010 - 11904: 0xBECB, - 25011 - 11904: 0xE5AB, - 25012 - 11904: 0xE97A, - 25013 - 11904: 0xECE0, - 25014 - 11904: 0xBED0, - 25015 - 11904: 0x8D75, - 25016 - 11904: 0xE9A2, - 25017 - 11904: 0x8D76, - 25018 - 11904: 0xE97E, - 25020 - 11904: 0xECE1, - 25022 - 11904: 0xBED1, - 25023 - 11904: 0xE9A1, - 25024 - 11904: 0x9374, - 25025 - 11904: 0xE97C, - 25026 - 11904: 0xC0B4, - 25027 - 11904: 0xECDF, - 25029 - 11904: 0xE979, - 25030 - 11904: 0xE97B, - 25031 - 11904: 0xC0B5, - 25032 - 11904: 0xBED3, - 25033 - 11904: 0xC0B3, - 25034 - 11904: 0xBED2, - 25035 - 11904: 0xC0B7, - 25036 - 11904: 0xE97D, - 25037 - 11904: 0xBECF, - 25039 - 11904: 0x8D77, - 25040 - 11904: 0xFCA5, - 25043 - 11904: 0xFCA2, - 25046 - 11904: 0xEFCF, - 25048 - 11904: 0xEFC7, - 25050 - 11904: 0x90C3, - 25054 - 11904: 0xECE7, - 25055 - 11904: 0xEFC8, - 25056 - 11904: 0xECE3, - 25058 - 11904: 0xA079, - 25059 - 11904: 0xC256, - 25060 - 11904: 0xECE5, - 25061 - 11904: 0xECE4, - 25062 - 11904: 0xC0B6, - 25063 - 11904: 0xECE2, - 25064 - 11904: 0xECE6, - 25065 - 11904: 0xEFD0, - 25066 - 11904: 0xEFCC, - 25067 - 11904: 0xEFCE, - 25069 - 11904: 0xEFC9, - 25070 - 11904: 0xEFCA, - 25072 - 11904: 0xEFCD, - 25073 - 11904: 0xEFCB, - 25074 - 11904: 0xC367, - 25077 - 11904: 0xC36A, - 25078 - 11904: 0xC369, - 25079 - 11904: 0xC368, - 25080 - 11904: 0xC461, - 25081 - 11904: 0xF44A, - 25082 - 11904: 0xC462, - 25083 - 11904: 0xF241, - 25084 - 11904: 0xC4DF, - 25085 - 11904: 0xF5CC, - 25086 - 11904: 0xC4E0, - 25087 - 11904: 0xC574, - 25088 - 11904: 0xC5CA, - 25089 - 11904: 0xF7D9, - 25091 - 11904: 0xF7DA, - 25092 - 11904: 0xF7DB, - 25095 - 11904: 0xF9BA, - 25096 - 11904: 0xA4E0, - 25097 - 11904: 0xC97C, - 25098 - 11904: 0xA5B3, - 25100 - 11904: 0xA6A6, - 25101 - 11904: 0xA6A7, - 25102 - 11904: 0xA6A5, - 25104 - 11904: 0xA6A8, - 25105 - 11904: 0xA7DA, - 25106 - 11904: 0xA7D9, - 25108 - 11904: 0xCCB1, - 25109 - 11904: 0xA9CF, - 25110 - 11904: 0xA9CE, - 25113 - 11904: 0xD1AF, - 25114 - 11904: 0xB1AD, - 25115 - 11904: 0xB1AE, - 25119 - 11904: 0xB475, - 25120 - 11904: 0xDD72, - 25121 - 11904: 0xB760, - 25122 - 11904: 0xB761, - 25123 - 11904: 0xDD74, - 25124 - 11904: 0xDD76, - 25125 - 11904: 0xDD75, - 25127 - 11904: 0xE1D7, - 25129 - 11904: 0xE1D6, - 25130 - 11904: 0xBA49, - 25131 - 11904: 0xE1D8, - 25132 - 11904: 0x8D79, - 25133 - 11904: 0xE5AC, - 25134 - 11904: 0xBCAE, - 25136 - 11904: 0xBED4, - 25138 - 11904: 0xC0B8, - 25139 - 11904: 0xC257, - 25140 - 11904: 0xC0B9, - 25142 - 11904: 0xA4E1, - 25143 - 11904: 0x8BFC, - 25145 - 11904: 0xA076, - 25146 - 11904: 0xCAE6, - 25149 - 11904: 0xCCB2, - 25150 - 11904: 0xA9D1, - 25151 - 11904: 0xA9D0, - 25152 - 11904: 0xA9D2, - 25153 - 11904: 0xABF3, - 25154 - 11904: 0xCED2, - 25155 - 11904: 0xCED3, - 25158 - 11904: 0xD1B0, - 25159 - 11904: 0xAEB0, - 25160 - 11904: 0xB1AF, - 25161 - 11904: 0xB476, - 25162 - 11904: 0xD951, - 25163 - 11904: 0xA4E2, - 25164 - 11904: 0x8BCD, - 25165 - 11904: 0xA47E, - 25166 - 11904: 0xA4E3, - 25168 - 11904: 0xC97D, - 25169 - 11904: 0xA5B7, - 25170 - 11904: 0xA5B6, - 25171 - 11904: 0xA5B4, - 25172 - 11904: 0xA5B5, - 25176 - 11904: 0xA6AB, - 25177 - 11904: 0xC9E9, - 25178 - 11904: 0xC9EB, - 25179 - 11904: 0xA6AA, - 25180 - 11904: 0xC9E3, - 25182 - 11904: 0xC9E4, - 25184 - 11904: 0xC9EA, - 25185 - 11904: 0xC9E6, - 25186 - 11904: 0xC9E8, - 25187 - 11904: 0xA6A9, - 25188 - 11904: 0xC9E5, - 25189 - 11904: 0xC9EC, - 25190 - 11904: 0xC9E7, - 25192 - 11904: 0x9F5A, - 25197 - 11904: 0xA7E1, - 25198 - 11904: 0xA7EA, - 25199 - 11904: 0xA7E8, - 25200 - 11904: 0xCAF0, - 25201 - 11904: 0xCAED, - 25202 - 11904: 0xCAF5, - 25203 - 11904: 0xA7E6, - 25204 - 11904: 0xCAF6, - 25206 - 11904: 0xA7DF, - 25207 - 11904: 0xCAF3, - 25209 - 11904: 0xA7E5, - 25210 - 11904: 0xCAEF, - 25211 - 11904: 0xCAEE, - 25212 - 11904: 0xA7E3, - 25213 - 11904: 0xCAF4, - 25214 - 11904: 0xA7E4, - 25215 - 11904: 0xA9D3, - 25216 - 11904: 0xA7DE, - 25217 - 11904: 0xCAF1, - 25218 - 11904: 0x9FF4, - 25219 - 11904: 0xCAE7, - 25220 - 11904: 0xA7DB, - 25221 - 11904: 0x9FBA, - 25222 - 11904: 0xA7EE, - 25223 - 11904: 0xCAEC, - 25224 - 11904: 0xCAF2, - 25225 - 11904: 0xA7E0, - 25226 - 11904: 0xA7E2, - 25228 - 11904: 0xCAE8, - 25230 - 11904: 0xCAE9, - 25231 - 11904: 0xCAEA, - 25232 - 11904: 0x8D7A, - 25233 - 11904: 0xA7ED, - 25234 - 11904: 0xA7E7, - 25235 - 11904: 0xA7EC, - 25236 - 11904: 0xCAEB, - 25237 - 11904: 0xA7EB, - 25238 - 11904: 0xA7DD, - 25239 - 11904: 0xA7DC, - 25240 - 11904: 0xA7E9, - 25245 - 11904: 0x9E45, - 25252 - 11904: 0x93B0, - 25254 - 11904: 0xA075, - 25256 - 11904: 0xA9E1, - 25257 - 11904: 0xCCBE, - 25258 - 11904: 0xCCB7, - 25259 - 11904: 0xA9DC, - 25260 - 11904: 0xA9EF, - 25261 - 11904: 0xCCB3, - 25262 - 11904: 0xCCBA, - 25263 - 11904: 0xCCBC, - 25264 - 11904: 0xCCBF, - 25265 - 11904: 0xA9EA, - 25267 - 11904: 0xCCBB, - 25268 - 11904: 0xCCB4, - 25269 - 11904: 0xA9E8, - 25270 - 11904: 0xCCB8, - 25272 - 11904: 0xCCC0, - 25273 - 11904: 0xA9D9, - 25275 - 11904: 0xCCBD, - 25276 - 11904: 0xA9E3, - 25277 - 11904: 0xA9E2, - 25278 - 11904: 0xCCB6, - 25279 - 11904: 0xA9D7, - 25281 - 11904: 0x87DD, - 25282 - 11904: 0xA9D8, - 25283 - 11904: 0x9B46, - 25284 - 11904: 0xA9D6, - 25285 - 11904: 0xFCAE, - 25286 - 11904: 0xA9EE, - 25287 - 11904: 0xA9E6, - 25288 - 11904: 0xA9E0, - 25289 - 11904: 0xA9D4, - 25290 - 11904: 0xCCB9, - 25291 - 11904: 0xA9DF, - 25292 - 11904: 0xA9D5, - 25293 - 11904: 0xA9E7, - 25294 - 11904: 0xA9F0, - 25295 - 11904: 0xCED4, - 25296 - 11904: 0xA9E4, - 25297 - 11904: 0xCCB5, - 25298 - 11904: 0xA9DA, - 25299 - 11904: 0xA9DD, - 25300 - 11904: 0xA9DE, - 25301 - 11904: 0xFCB0, - 25302 - 11904: 0xA9EC, - 25303 - 11904: 0xA9ED, - 25304 - 11904: 0xA9EB, - 25305 - 11904: 0xA9E5, - 25306 - 11904: 0xA9E9, - 25307 - 11904: 0xA9DB, - 25308 - 11904: 0xABF4, - 25311 - 11904: 0xFA51, - 25317 - 11904: 0x8D7B, - 25323 - 11904: 0xCEDA, - 25324 - 11904: 0xAC41, - 25325 - 11904: 0xABF8, - 25326 - 11904: 0xABFA, - 25327 - 11904: 0xAC40, - 25328 - 11904: 0xCEE6, - 25329 - 11904: 0xABFD, - 25330 - 11904: 0xD1B1, - 25331 - 11904: 0xAEB1, - 25332 - 11904: 0xAC43, - 25333 - 11904: 0xCED7, - 25334 - 11904: 0xCEDF, - 25335 - 11904: 0xABFE, - 25336 - 11904: 0xCEDE, - 25337 - 11904: 0xCEDB, - 25338 - 11904: 0xCEE3, - 25339 - 11904: 0xCEE5, - 25340 - 11904: 0xABF7, - 25341 - 11904: 0xABFB, - 25342 - 11904: 0xAC42, - 25343 - 11904: 0xAEB3, - 25344 - 11904: 0xCEE0, - 25345 - 11904: 0xABF9, - 25346 - 11904: 0xAC45, - 25347 - 11904: 0xCED9, - 25351 - 11904: 0xABFC, - 25352 - 11904: 0xAEB2, - 25353 - 11904: 0xABF6, - 25355 - 11904: 0xCED6, - 25356 - 11904: 0xCEDD, - 25357 - 11904: 0xCED5, - 25358 - 11904: 0xCED8, - 25359 - 11904: 0xCEDC, - 25360 - 11904: 0xD1B2, - 25361 - 11904: 0xAC44, - 25363 - 11904: 0xCEE1, - 25364 - 11904: 0xCEE2, - 25365 - 11904: 0xCEE4, - 25366 - 11904: 0xABF5, - 25368 - 11904: 0x8D7C, - 25384 - 11904: 0xAEC1, - 25385 - 11904: 0xD1BE, - 25386 - 11904: 0xAEBF, - 25387 - 11904: 0xAEC0, - 25388 - 11904: 0xD1B4, - 25389 - 11904: 0xD1C4, - 25390 - 11904: 0x9ED6, - 25391 - 11904: 0xAEB6, - 25393 - 11904: 0x93AC, - 25394 - 11904: 0xD566, - 25395 - 11904: 0xD1C6, - 25396 - 11904: 0xD1C0, - 25397 - 11904: 0x9F5B, - 25398 - 11904: 0xD1B7, - 25399 - 11904: 0x93A9, - 25400 - 11904: 0xD1C9, - 25401 - 11904: 0xD1BA, - 25402 - 11904: 0xAEBC, - 25403 - 11904: 0xD57D, - 25404 - 11904: 0xD1BD, - 25405 - 11904: 0xAEBE, - 25406 - 11904: 0xAEB5, - 25408 - 11904: 0xD1CB, - 25409 - 11904: 0xD1BF, - 25410 - 11904: 0xAEB8, - 25411 - 11904: 0xD1B8, - 25412 - 11904: 0xD1B5, - 25413 - 11904: 0xD1B6, - 25414 - 11904: 0xAEB9, - 25415 - 11904: 0xD1C5, - 25416 - 11904: 0xD1CC, - 25417 - 11904: 0xAEBB, - 25418 - 11904: 0xD1BC, - 25419 - 11904: 0xD1BB, - 25420 - 11904: 0xAEC3, - 25421 - 11904: 0xAEC2, - 25422 - 11904: 0xAEB4, - 25423 - 11904: 0xAEBA, - 25424 - 11904: 0xAEBD, - 25425 - 11904: 0xD1C8, - 25428 - 11904: 0xD1C2, - 25429 - 11904: 0xAEB7, - 25430 - 11904: 0xD1B3, - 25431 - 11904: 0xD1CA, - 25432 - 11904: 0xD1C1, - 25433 - 11904: 0xD1C3, - 25434 - 11904: 0xD1C7, - 25444 - 11904: 0xA07C, - 25445 - 11904: 0xD567, - 25447 - 11904: 0xB1B7, - 25448 - 11904: 0xB1CB, - 25449 - 11904: 0xB1CA, - 25451 - 11904: 0xB1BF, - 25452 - 11904: 0xFCB2, - 25453 - 11904: 0xD579, - 25454 - 11904: 0xD575, - 25455 - 11904: 0xD572, - 25456 - 11904: 0xD5A6, - 25457 - 11904: 0xB1BA, - 25458 - 11904: 0xB1B2, - 25461 - 11904: 0xD577, - 25462 - 11904: 0xB4A8, - 25463 - 11904: 0xB1B6, - 25464 - 11904: 0xD5A1, - 25465 - 11904: 0x8AC1, - 25466 - 11904: 0xB1CC, - 25467 - 11904: 0xB1C9, - 25468 - 11904: 0xD57B, - 25469 - 11904: 0xD56A, - 25471 - 11904: 0x9FB4, - 25472 - 11904: 0xB1C8, - 25473 - 11904: 0xD5A3, - 25474 - 11904: 0xD569, - 25475 - 11904: 0xB1BD, - 25476 - 11904: 0xB1C1, - 25477 - 11904: 0xD5A2, - 25479 - 11904: 0xD573, - 25480 - 11904: 0xB1C2, - 25481 - 11904: 0xB1BC, - 25482 - 11904: 0xD568, - 25483 - 11904: 0xFCAC, - 25484 - 11904: 0xB478, - 25485 - 11904: 0xD5A5, - 25486 - 11904: 0xD571, - 25487 - 11904: 0xB1C7, - 25488 - 11904: 0xD574, - 25489 - 11904: 0xD5A4, - 25490 - 11904: 0xB1C6, - 25492 - 11904: 0xD952, - 25494 - 11904: 0xB1B3, - 25495 - 11904: 0xD56F, - 25496 - 11904: 0xB1B8, - 25497 - 11904: 0xB1C3, - 25499 - 11904: 0xB1BE, - 25500 - 11904: 0xD578, - 25501 - 11904: 0xD56E, - 25502 - 11904: 0xD56C, - 25503 - 11904: 0xD57E, - 25504 - 11904: 0xB1B0, - 25505 - 11904: 0xB1C4, - 25506 - 11904: 0xB1B4, - 25507 - 11904: 0xB477, - 25508 - 11904: 0xD57C, - 25509 - 11904: 0xB1B5, - 25511 - 11904: 0xB1B1, - 25512 - 11904: 0xB1C0, - 25513 - 11904: 0xB1BB, - 25514 - 11904: 0xB1B9, - 25515 - 11904: 0xD570, - 25516 - 11904: 0xB1C5, - 25517 - 11904: 0xD56D, - 25518 - 11904: 0xD57A, - 25519 - 11904: 0xD576, - 25520 - 11904: 0xD954, - 25521 - 11904: 0xD953, - 25529 - 11904: 0x9E4C, - 25533 - 11904: 0xD56B, - 25534 - 11904: 0xD964, - 25536 - 11904: 0xB47A, - 25537 - 11904: 0x8FC5, - 25538 - 11904: 0xD96A, - 25539 - 11904: 0xD959, - 25540 - 11904: 0xD967, - 25541 - 11904: 0xDD77, - 25542 - 11904: 0xB47D, - 25543 - 11904: 0xD96B, - 25544 - 11904: 0xD96E, - 25545 - 11904: 0xB47C, - 25546 - 11904: 0xD95C, - 25547 - 11904: 0xD96D, - 25548 - 11904: 0xD96C, - 25549 - 11904: 0xB47E, - 25550 - 11904: 0xD955, - 25551 - 11904: 0xB479, - 25552 - 11904: 0xB4A3, - 25553 - 11904: 0x93AD, - 25554 - 11904: 0xB4A1, - 25555 - 11904: 0xD969, - 25557 - 11904: 0xD95F, - 25558 - 11904: 0xB4A5, - 25559 - 11904: 0xD970, - 25560 - 11904: 0xD968, - 25561 - 11904: 0xD971, - 25562 - 11904: 0xB4AD, - 25563 - 11904: 0xB4AB, - 25564 - 11904: 0xD966, - 25565 - 11904: 0xD965, - 25566 - 11904: 0x9DC3, - 25567 - 11904: 0xD963, - 25568 - 11904: 0xD95D, - 25569 - 11904: 0xB4A4, - 25570 - 11904: 0x8DA2, - 25571 - 11904: 0xB4A2, - 25572 - 11904: 0xD1B9, - 25573 - 11904: 0xD956, - 25574 - 11904: 0x9D4A, - 25575 - 11904: 0xDDB7, - 25576 - 11904: 0xD957, - 25577 - 11904: 0xB47B, - 25578 - 11904: 0xB4AA, - 25579 - 11904: 0xDD79, - 25581 - 11904: 0xB4A6, - 25582 - 11904: 0xB4A7, - 25583 - 11904: 0xD958, - 25584 - 11904: 0xD96F, - 25585 - 11904: 0xDD78, - 25586 - 11904: 0xD960, - 25587 - 11904: 0xD95B, - 25588 - 11904: 0xB4A9, - 25589 - 11904: 0xD961, - 25590 - 11904: 0xD95E, - 25592 - 11904: 0xFCB6, - 25593 - 11904: 0xB4AE, - 25595 - 11904: 0x8DA3, - 25596 - 11904: 0x9E4B, - 25598 - 11904: 0x9E4D, - 25606 - 11904: 0xB770, - 25607 - 11904: 0x8DA4, - 25609 - 11904: 0xDD7C, - 25610 - 11904: 0xDDB1, - 25611 - 11904: 0xDDB6, - 25612 - 11904: 0xDDAA, - 25613 - 11904: 0xB76C, - 25614 - 11904: 0xDDBB, - 25615 - 11904: 0xB769, - 25616 - 11904: 0xDD7A, - 25618 - 11904: 0xDD7B, - 25619 - 11904: 0xB762, - 25620 - 11904: 0xB76B, - 25621 - 11904: 0xDDA4, - 25622 - 11904: 0xB76E, - 25623 - 11904: 0xB76F, - 25624 - 11904: 0xDDA5, - 25626 - 11904: 0xDDB2, - 25627 - 11904: 0xDDB8, - 25628 - 11904: 0xB76A, - 25630 - 11904: 0xB764, - 25631 - 11904: 0xDDA3, - 25632 - 11904: 0xDD7D, - 25633 - 11904: 0xDDBA, - 25634 - 11904: 0xDDA8, - 25635 - 11904: 0xDDA9, - 25636 - 11904: 0xDD7E, - 25637 - 11904: 0xDDB4, - 25638 - 11904: 0xDDAB, - 25639 - 11904: 0xDDB5, - 25640 - 11904: 0xDDAD, - 25642 - 11904: 0xB765, - 25643 - 11904: 0xE1D9, - 25644 - 11904: 0xB768, - 25645 - 11904: 0xB766, - 25646 - 11904: 0xDDB9, - 25647 - 11904: 0xDDB0, - 25648 - 11904: 0xDDAC, - 25650 - 11904: 0x8AFD, - 25651 - 11904: 0xDDA1, - 25652 - 11904: 0xBA53, - 25653 - 11904: 0xDDAF, - 25654 - 11904: 0xB76D, - 25655 - 11904: 0xDDA7, - 25656 - 11904: 0xFCB5, - 25657 - 11904: 0xDDA6, - 25658 - 11904: 0xFCC3, - 25659 - 11904: 0x93B2, - 25661 - 11904: 0xB767, - 25662 - 11904: 0xB763, - 25663 - 11904: 0xE1EE, - 25664 - 11904: 0xDDB3, - 25665 - 11904: 0xDDAE, - 25667 - 11904: 0xDDA2, - 25675 - 11904: 0xE1E9, - 25677 - 11904: 0xE1DA, - 25678 - 11904: 0xE1E5, - 25680 - 11904: 0xE1EC, - 25681 - 11904: 0xBA51, - 25682 - 11904: 0xB4AC, - 25683 - 11904: 0xE1EA, - 25684 - 11904: 0xBA4C, - 25688 - 11904: 0xBA4B, - 25689 - 11904: 0xE1F1, - 25690 - 11904: 0x8DA5, - 25691 - 11904: 0xE1DB, - 25692 - 11904: 0xE1E8, - 25693 - 11904: 0xE1DC, - 25694 - 11904: 0xE1E7, - 25695 - 11904: 0xBA4F, - 25696 - 11904: 0xE1EB, - 25697 - 11904: 0xD962, - 25701 - 11904: 0xE1F2, - 25702 - 11904: 0xE1E3, - 25703 - 11904: 0xBA52, - 25704 - 11904: 0xE5BA, - 25705 - 11904: 0xBCAF, - 25707 - 11904: 0xE1F0, - 25708 - 11904: 0xE1EF, - 25709 - 11904: 0xBA54, - 25710 - 11904: 0xE5AD, - 25711 - 11904: 0xBCB0, - 25712 - 11904: 0xE5AE, - 25713 - 11904: 0x93A1, - 25714 - 11904: 0xE1DF, - 25715 - 11904: 0xE1E0, - 25716 - 11904: 0xE1DD, - 25717 - 11904: 0xE1E2, - 25718 - 11904: 0xE1DE, - 25719 - 11904: 0xE1F3, - 25720 - 11904: 0xBA4E, - 25721 - 11904: 0xBCB1, - 25722 - 11904: 0xBA50, - 25723 - 11904: 0xBA55, - 25724 - 11904: 0x8AC6, - 25725 - 11904: 0xE1E1, - 25727 - 11904: 0xE1ED, - 25730 - 11904: 0xE1E6, - 25733 - 11904: 0xE5B1, - 25735 - 11904: 0xBA4A, - 25736 - 11904: 0xBCB4, - 25737 - 11904: 0xE9AA, - 25738 - 11904: 0xE5B6, - 25739 - 11904: 0xE5B5, - 25740 - 11904: 0xE5B7, - 25741 - 11904: 0x8A5B, - 25743 - 11904: 0xE5B4, - 25744 - 11904: 0xFCB9, - 25745 - 11904: 0x894D, - 25746 - 11904: 0xBCBB, - 25747 - 11904: 0xBCB8, - 25749 - 11904: 0xBCB9, - 25750 - 11904: 0xE5AF, - 25751 - 11904: 0xE5B2, - 25752 - 11904: 0xE5BC, - 25753 - 11904: 0xBCC1, - 25754 - 11904: 0xBCBF, - 25756 - 11904: 0xE5B3, - 25757 - 11904: 0xD95A, - 25758 - 11904: 0xBCB2, - 25759 - 11904: 0xE5B9, - 25760 - 11904: 0xE5B0, - 25762 - 11904: 0xBCC2, - 25763 - 11904: 0xE5B8, - 25764 - 11904: 0xBA4D, - 25765 - 11904: 0xBCB7, - 25766 - 11904: 0xE1E4, - 25769 - 11904: 0xBCBA, - 25771 - 11904: 0xBCBE, - 25772 - 11904: 0xBCC0, - 25773 - 11904: 0xBCBD, - 25774 - 11904: 0xBCBC, - 25775 - 11904: 0xFED4, - 25776 - 11904: 0xBCB6, - 25777 - 11904: 0xE5BB, - 25778 - 11904: 0xBCB3, - 25779 - 11904: 0xBCC3, - 25780 - 11904: 0x8A78, - 25782 - 11904: 0x93AB, - 25787 - 11904: 0xBED8, - 25788 - 11904: 0xBED9, - 25789 - 11904: 0xE9A9, - 25790 - 11904: 0xBEE2, - 25791 - 11904: 0xBEDF, - 25792 - 11904: 0x8DA7, - 25793 - 11904: 0xBED6, - 25794 - 11904: 0xBEDD, - 25795 - 11904: 0xE9AB, - 25796 - 11904: 0xBEDB, - 25797 - 11904: 0xBED5, - 25799 - 11904: 0xBEDC, - 25801 - 11904: 0xE9A8, - 25802 - 11904: 0xC0BB, - 25803 - 11904: 0xBED7, - 25805 - 11904: 0xBEDE, - 25806 - 11904: 0xC0BA, - 25807 - 11904: 0xE9A7, - 25808 - 11904: 0xE9A6, - 25810 - 11904: 0xBEE0, - 25811 - 11904: 0x9F45, - 25812 - 11904: 0xBEE1, - 25814 - 11904: 0xE9A5, - 25815 - 11904: 0xE9A4, - 25816 - 11904: 0xC0BC, - 25817 - 11904: 0xE9AE, - 25818 - 11904: 0xBEDA, - 25819 - 11904: 0xE9AC, - 25821 - 11904: 0x8A56, - 25824 - 11904: 0xC0BD, - 25825 - 11904: 0xFCBF, - 25826 - 11904: 0xC0C2, - 25827 - 11904: 0xECEA, - 25828 - 11904: 0xECEC, - 25829 - 11904: 0xFCC0, - 25830 - 11904: 0xC0BF, - 25831 - 11904: 0x8EE6, - 25832 - 11904: 0xECED, - 25833 - 11904: 0xECE9, - 25834 - 11904: 0x8AA4, - 25835 - 11904: 0xECEB, - 25836 - 11904: 0xC0C0, - 25837 - 11904: 0xC0C3, - 25839 - 11904: 0xECE8, - 25840 - 11904: 0xC0BE, - 25841 - 11904: 0xC0C1, - 25842 - 11904: 0xC259, - 25843 - 11904: 0xE9AD, - 25844 - 11904: 0xC258, - 25847 - 11904: 0xC25E, - 25848 - 11904: 0xEFD4, - 25850 - 11904: 0xC25C, - 25851 - 11904: 0xC25D, - 25852 - 11904: 0xEFD7, - 25853 - 11904: 0xEFD3, - 25854 - 11904: 0xC25A, - 25855 - 11904: 0xEFD1, - 25856 - 11904: 0xC36B, - 25857 - 11904: 0xEFD5, - 25859 - 11904: 0xEFD6, - 25860 - 11904: 0xEFD2, - 25862 - 11904: 0xC25B, - 25863 - 11904: 0xF242, - 25865 - 11904: 0xF245, - 25866 - 11904: 0x8943, - 25868 - 11904: 0xF246, - 25869 - 11904: 0xF244, - 25870 - 11904: 0xF247, - 25871 - 11904: 0xC36C, - 25872 - 11904: 0xF243, - 25873 - 11904: 0x93F3, - 25875 - 11904: 0xF44E, - 25876 - 11904: 0xC464, - 25877 - 11904: 0xF44D, - 25878 - 11904: 0xF44C, - 25879 - 11904: 0xF44B, - 25880 - 11904: 0xC463, - 25881 - 11904: 0xC465, - 25883 - 11904: 0xF5CD, - 25884 - 11904: 0xC4E2, - 25885 - 11904: 0xC4E1, - 25886 - 11904: 0xFCAB, - 25887 - 11904: 0x9EA2, - 25888 - 11904: 0xF6E1, - 25889 - 11904: 0xF6E0, - 25890 - 11904: 0xF6E3, - 25891 - 11904: 0xC5CB, - 25892 - 11904: 0xC575, - 25893 - 11904: 0xF7DD, - 25894 - 11904: 0xF6E2, - 25897 - 11904: 0xF7DC, - 25898 - 11904: 0xC5CD, - 25899 - 11904: 0xC5CC, - 25900 - 11904: 0xC5F3, - 25901 - 11904: 0xF8A9, - 25902 - 11904: 0xF8EF, - 25903 - 11904: 0xA4E4, - 25904 - 11904: 0x9DC7, - 25906 - 11904: 0xD972, - 25907 - 11904: 0xE9AF, - 25908 - 11904: 0xC6D2, - 25909 - 11904: 0x8BCE, - 25910 - 11904: 0xA6AC, - 25911 - 11904: 0xCAF7, - 25912 - 11904: 0xA7F1, - 25913 - 11904: 0xA7EF, - 25915 - 11904: 0xA7F0, - 25917 - 11904: 0xCCC1, - 25918 - 11904: 0xA9F1, - 25919 - 11904: 0xAC46, - 25921 - 11904: 0xCEE7, - 25923 - 11904: 0xCEE8, - 25925 - 11904: 0xAC47, - 25926 - 11904: 0xD1CE, - 25928 - 11904: 0xAEC4, - 25929 - 11904: 0xAEC5, - 25930 - 11904: 0xD1CD, - 25933 - 11904: 0xFCC5, - 25935 - 11904: 0xB1D3, - 25937 - 11904: 0xB1CF, - 25939 - 11904: 0xD5A7, - 25940 - 11904: 0xB1D6, - 25941 - 11904: 0xB1D5, - 25942 - 11904: 0xB1CE, - 25943 - 11904: 0xB1D1, - 25944 - 11904: 0xB1D4, - 25945 - 11904: 0xB1D0, - 25948 - 11904: 0xD976, - 25949 - 11904: 0xB1CD, - 25950 - 11904: 0xB4AF, - 25951 - 11904: 0xFCCB, - 25954 - 11904: 0xB4B1, - 25955 - 11904: 0xB4B2, - 25956 - 11904: 0xD975, - 25957 - 11904: 0xD978, - 25958 - 11904: 0xB4B0, - 25959 - 11904: 0xD973, - 25960 - 11904: 0xD977, - 25962 - 11904: 0xD974, - 25963 - 11904: 0x93B3, - 25964 - 11904: 0xB771, - 25965 - 11904: 0xFCCA, - 25967 - 11904: 0xDDBC, - 25970 - 11904: 0xBA56, - 25971 - 11904: 0xE1F4, - 25972 - 11904: 0xBEE3, - 25973 - 11904: 0xBCC4, - 25974 - 11904: 0xE5BD, - 25975 - 11904: 0xBCC5, - 25976 - 11904: 0xBCC6, - 25977 - 11904: 0xE5BF, - 25978 - 11904: 0xE5BE, - 25979 - 11904: 0xE5C0, - 25980 - 11904: 0xE9B1, - 25983 - 11904: 0xE9B0, - 25984 - 11904: 0xECEF, - 25985 - 11904: 0xECEE, - 25986 - 11904: 0xC0C4, - 25987 - 11904: 0xC0C5, - 25988 - 11904: 0xF248, - 25989 - 11904: 0xFCC9, - 25990 - 11904: 0x8DAC, - 25991 - 11904: 0xA4E5, - 25992 - 11904: 0xFBC6, - 25993 - 11904: 0x8967, - 25995 - 11904: 0x8C7E, - 25996 - 11904: 0xD979, - 26000 - 11904: 0xB4B4, - 26001 - 11904: 0xB4B3, - 26002 - 11904: 0xDDBD, - 26004 - 11904: 0xEFD8, - 26005 - 11904: 0xC4E3, - 26006 - 11904: 0xF7DE, - 26007 - 11904: 0xA4E6, - 26009 - 11904: 0xAEC6, - 26011 - 11904: 0xB1D8, - 26012 - 11904: 0xB1D7, - 26013 - 11904: 0xD97A, - 26014 - 11904: 0xD97B, - 26015 - 11904: 0xB772, - 26016 - 11904: 0xE1F5, - 26017 - 11904: 0xBA57, - 26018 - 11904: 0xE9B2, - 26020 - 11904: 0xA4E7, - 26021 - 11904: 0xA5B8, - 26023 - 11904: 0xA9F2, - 26024 - 11904: 0xCCC2, - 26026 - 11904: 0xCEE9, - 26027 - 11904: 0xAC48, - 26028 - 11904: 0xB1D9, - 26030 - 11904: 0xD97C, - 26031 - 11904: 0xB4B5, - 26032 - 11904: 0xB773, - 26034 - 11904: 0xE5C1, - 26035 - 11904: 0xE5C2, - 26037 - 11904: 0xFCCD, - 26038 - 11904: 0xECF0, - 26039 - 11904: 0xC25F, - 26040 - 11904: 0xF8F0, - 26041 - 11904: 0xA4E8, - 26043 - 11904: 0xCCC3, - 26044 - 11904: 0xA9F3, - 26045 - 11904: 0xAC49, - 26046 - 11904: 0x9CF3, - 26047 - 11904: 0xCEEA, - 26049 - 11904: 0xAEC7, - 26050 - 11904: 0xD1D2, - 26051 - 11904: 0xD1D0, - 26052 - 11904: 0xD1D1, - 26053 - 11904: 0xAEC8, - 26054 - 11904: 0xD1CF, - 26059 - 11904: 0xB1DB, - 26060 - 11904: 0xB1DC, - 26061 - 11904: 0xD5A8, - 26062 - 11904: 0xB1DD, - 26063 - 11904: 0xB1DA, - 26064 - 11904: 0xD97D, - 26065 - 11904: 0xFCD0, - 26066 - 11904: 0xD97E, - 26067 - 11904: 0xDDBE, - 26068 - 11904: 0x95BB, - 26070 - 11904: 0xBA59, - 26071 - 11904: 0xBA58, - 26074 - 11904: 0xECF1, - 26075 - 11904: 0xEFD9, - 26077 - 11904: 0xF24A, - 26078 - 11904: 0xF249, - 26079 - 11904: 0xF44F, - 26080 - 11904: 0xFCD3, - 26081 - 11904: 0xC95E, - 26082 - 11904: 0xAC4A, - 26083 - 11904: 0xFCD4, - 26085 - 11904: 0xA4E9, - 26086 - 11904: 0xA5B9, - 26088 - 11904: 0xA6AE, - 26089 - 11904: 0xA6AD, - 26092 - 11904: 0xA6AF, - 26093 - 11904: 0xA6B0, - 26094 - 11904: 0xC9EE, - 26095 - 11904: 0xC9ED, - 26096 - 11904: 0xCAF8, - 26097 - 11904: 0xA7F2, - 26098 - 11904: 0xCAFB, - 26099 - 11904: 0xCAFA, - 26100 - 11904: 0xCAF9, - 26101 - 11904: 0xCAFC, - 26106 - 11904: 0xA9F4, - 26107 - 11904: 0xCCC9, - 26108 - 11904: 0xCCC5, - 26109 - 11904: 0xCCCE, - 26111 - 11904: 0x8DAE, - 26112 - 11904: 0xA9FB, - 26114 - 11904: 0xA9F9, - 26115 - 11904: 0xCCCA, - 26116 - 11904: 0xCCC6, - 26117 - 11904: 0xCCCD, - 26118 - 11904: 0xA9F8, - 26119 - 11904: 0xAA40, - 26120 - 11904: 0xCCC8, - 26121 - 11904: 0xCCC4, - 26122 - 11904: 0xA9FE, - 26123 - 11904: 0xCCCB, - 26124 - 11904: 0xA9F7, - 26125 - 11904: 0xCCCC, - 26126 - 11904: 0xA9FA, - 26127 - 11904: 0xA9FC, - 26128 - 11904: 0xCCD0, - 26129 - 11904: 0xCCCF, - 26130 - 11904: 0xCCC7, - 26131 - 11904: 0xA9F6, - 26132 - 11904: 0xA9F5, - 26133 - 11904: 0xA9FD, - 26136 - 11904: 0xFCD7, - 26140 - 11904: 0xCEEF, - 26141 - 11904: 0xCEF5, - 26142 - 11904: 0x93DB, - 26143 - 11904: 0xAC50, - 26144 - 11904: 0xAC4D, - 26145 - 11904: 0xCEEC, - 26146 - 11904: 0xCEF1, - 26147 - 11904: 0xFE63, - 26148 - 11904: 0xAC53, - 26149 - 11904: 0xAC4B, - 26150 - 11904: 0xCEF0, - 26151 - 11904: 0xAC4E, - 26152 - 11904: 0xAC51, - 26155 - 11904: 0xCEF3, - 26157 - 11904: 0xAC4C, - 26158 - 11904: 0xCEF8, - 26159 - 11904: 0xAC4F, - 26160 - 11904: 0x93D5, - 26161 - 11904: 0xAC52, - 26162 - 11904: 0xCEED, - 26163 - 11904: 0xCEF2, - 26164 - 11904: 0xCEF6, - 26165 - 11904: 0xCEEE, - 26166 - 11904: 0xCEEB, - 26169 - 11904: 0xCEF7, - 26170 - 11904: 0xCEF4, - 26177 - 11904: 0xAED0, - 26178 - 11904: 0xAEC9, - 26179 - 11904: 0xAECC, - 26180 - 11904: 0xFCDA, - 26181 - 11904: 0xAECF, - 26183 - 11904: 0xD1D5, - 26184 - 11904: 0x9B71, - 26185 - 11904: 0xAECA, - 26186 - 11904: 0xD1D3, - 26187 - 11904: 0xFCDD, - 26188 - 11904: 0xAECE, - 26189 - 11904: 0x8764, - 26191 - 11904: 0xAECB, - 26193 - 11904: 0xD1D6, - 26194 - 11904: 0xAECD, - 26195 - 11904: 0x8DAF, - 26199 - 11904: 0xFAF2, - 26201 - 11904: 0xD5AC, - 26202 - 11904: 0xB1DF, - 26203 - 11904: 0xD5AB, - 26204 - 11904: 0xD5AD, - 26205 - 11904: 0xB1DE, - 26206 - 11904: 0xB1E3, - 26207 - 11904: 0xD1D4, - 26208 - 11904: 0x87B5, - 26209 - 11904: 0xD5AA, - 26210 - 11904: 0xD5AE, - 26211 - 11904: 0x93D8, - 26212 - 11904: 0xB1E0, - 26213 - 11904: 0xD5A9, - 26214 - 11904: 0xB1E2, - 26215 - 11904: 0xFCDF, - 26216 - 11904: 0xB1E1, - 26218 - 11904: 0xD9A7, - 26219 - 11904: 0x93D3, - 26220 - 11904: 0xD9A2, - 26222 - 11904: 0xB4B6, - 26223 - 11904: 0xB4BA, - 26224 - 11904: 0xB4B7, - 26225 - 11904: 0xD9A5, - 26226 - 11904: 0xD9A8, - 26227 - 11904: 0xFCE1, - 26228 - 11904: 0xFCE2, - 26230 - 11904: 0xB4B9, - 26231 - 11904: 0xB4BE, - 26232 - 11904: 0xDDC7, - 26233 - 11904: 0xD9A6, - 26234 - 11904: 0xB4BC, - 26235 - 11904: 0xD9A3, - 26236 - 11904: 0xD9A1, - 26237 - 11904: 0x8E76, - 26238 - 11904: 0xB4BD, - 26240 - 11904: 0xD9A4, - 26244 - 11904: 0xB779, - 26245 - 11904: 0xFC62, - 26246 - 11904: 0xDDBF, - 26247 - 11904: 0xB776, - 26248 - 11904: 0xB777, - 26249 - 11904: 0xB775, - 26250 - 11904: 0xDDC4, - 26251 - 11904: 0xDDC3, - 26252 - 11904: 0xDDC0, - 26253 - 11904: 0xB77B, - 26254 - 11904: 0x93D1, - 26256 - 11904: 0xDDC2, - 26257 - 11904: 0xB4BB, - 26258 - 11904: 0x8DB1, - 26260 - 11904: 0xDDC6, - 26261 - 11904: 0xDDC1, - 26262 - 11904: 0xB778, - 26263 - 11904: 0xB774, - 26264 - 11904: 0xB77A, - 26265 - 11904: 0xDDC5, - 26266 - 11904: 0x9859, - 26269 - 11904: 0xBA5C, - 26271 - 11904: 0xE1F8, - 26272 - 11904: 0xE1F7, - 26273 - 11904: 0xE1F6, - 26274 - 11904: 0xBA5A, - 26276 - 11904: 0xFB52, - 26280 - 11904: 0xBA5B, - 26281 - 11904: 0xE5C5, - 26282 - 11904: 0xE5C8, - 26283 - 11904: 0xBCC8, - 26285 - 11904: 0xFB53, - 26286 - 11904: 0xBCC7, - 26287 - 11904: 0xE5C9, - 26288 - 11904: 0xE5C4, - 26289 - 11904: 0xBCCA, - 26290 - 11904: 0xE5C6, - 26291 - 11904: 0xFB4D, - 26292 - 11904: 0xBCC9, - 26293 - 11904: 0xE5C3, - 26294 - 11904: 0x9CBF, - 26295 - 11904: 0xE5C7, - 26296 - 11904: 0xBEE9, - 26297 - 11904: 0xBEE6, - 26298 - 11904: 0xE9BB, - 26299 - 11904: 0xE9BA, - 26301 - 11904: 0xE9B9, - 26302 - 11904: 0xE9B4, - 26303 - 11904: 0x9B72, - 26304 - 11904: 0xE9B5, - 26308 - 11904: 0xBEE7, - 26310 - 11904: 0xBEE4, - 26311 - 11904: 0xBEE8, - 26312 - 11904: 0xE9B3, - 26313 - 11904: 0xBEE5, - 26314 - 11904: 0xE9B6, - 26315 - 11904: 0xE9B7, - 26316 - 11904: 0xE9BC, - 26317 - 11904: 0xFB50, - 26318 - 11904: 0x93BE, - 26319 - 11904: 0xE9B8, - 26322 - 11904: 0xECF2, - 26326 - 11904: 0xC0C7, - 26328 - 11904: 0xEFDC, - 26329 - 11904: 0xC0C6, - 26330 - 11904: 0xEFDA, - 26331 - 11904: 0xEFDB, - 26332 - 11904: 0xC260, - 26333 - 11904: 0xC36E, - 26334 - 11904: 0xF24B, - 26336 - 11904: 0xC36D, - 26339 - 11904: 0xF451, - 26340 - 11904: 0xF452, - 26342 - 11904: 0xC466, - 26343 - 11904: 0x8CDB, - 26344 - 11904: 0xF450, - 26345 - 11904: 0xC4E4, - 26347 - 11904: 0xF7DF, - 26348 - 11904: 0xC5CE, - 26349 - 11904: 0xF8AA, - 26350 - 11904: 0xF8AB, - 26352 - 11904: 0xA4EA, - 26353 - 11904: 0x9DF1, - 26354 - 11904: 0xA6B1, - 26355 - 11904: 0xA6B2, - 26356 - 11904: 0xA7F3, - 26358 - 11904: 0xCCD1, - 26359 - 11904: 0xAC54, - 26360 - 11904: 0xAED1, - 26361 - 11904: 0xB1E4, - 26364 - 11904: 0xB0D2, - 26366 - 11904: 0xB4BF, - 26367 - 11904: 0xB4C0, - 26368 - 11904: 0xB3CC, - 26369 - 11904: 0xD9A9, - 26370 - 11904: 0xFCEB, - 26371 - 11904: 0xB77C, - 26372 - 11904: 0xE1FA, - 26373 - 11904: 0xE1F9, - 26376 - 11904: 0xA4EB, - 26377 - 11904: 0xA6B3, - 26378 - 11904: 0xCCD2, - 26379 - 11904: 0xAA42, - 26380 - 11904: 0xA0BB, - 26381 - 11904: 0xAA41, - 26382 - 11904: 0x9B7E, - 26383 - 11904: 0xCEF9, - 26384 - 11904: 0xCEFA, - 26386 - 11904: 0xD1D7, - 26387 - 11904: 0xD1D8, - 26388 - 11904: 0xAED2, - 26389 - 11904: 0xAED3, - 26390 - 11904: 0x8DB3, - 26391 - 11904: 0xAED4, - 26392 - 11904: 0xD5AF, - 26393 - 11904: 0x8C52, - 26395 - 11904: 0xB1E6, - 26397 - 11904: 0xB4C2, - 26398 - 11904: 0x9AE8, - 26399 - 11904: 0xB4C1, - 26400 - 11904: 0xDDC8, - 26401 - 11904: 0xDF7A, - 26402 - 11904: 0xE1FB, - 26403 - 11904: 0xE9BD, - 26405 - 11904: 0x8EDC, - 26406 - 11904: 0xC261, - 26407 - 11904: 0xC467, - 26408 - 11904: 0xA4EC, - 26410 - 11904: 0xA5BC, - 26411 - 11904: 0xA5BD, - 26412 - 11904: 0xA5BB, - 26413 - 11904: 0xA5BE, - 26414 - 11904: 0xA5BA, - 26417 - 11904: 0xA6B6, - 26419 - 11904: 0xC9F6, - 26420 - 11904: 0xA6B5, - 26421 - 11904: 0xA6B7, - 26422 - 11904: 0x9CF9, - 26424 - 11904: 0xC9F1, - 26425 - 11904: 0xC9F0, - 26426 - 11904: 0xC9F3, - 26427 - 11904: 0xC9F2, - 26428 - 11904: 0xC9F5, - 26429 - 11904: 0xA6B4, - 26430 - 11904: 0xC9EF, - 26431 - 11904: 0xC9F4, - 26436 - 11904: 0xFA50, - 26437 - 11904: 0xCAFD, - 26438 - 11904: 0xA7FD, - 26439 - 11904: 0xCAFE, - 26440 - 11904: 0xCB43, - 26441 - 11904: 0xA7FC, - 26443 - 11904: 0xCB47, - 26444 - 11904: 0xCB42, - 26445 - 11904: 0xCB45, - 26446 - 11904: 0xA7F5, - 26447 - 11904: 0xA7F6, - 26448 - 11904: 0xA7F7, - 26449 - 11904: 0xA7F8, - 26451 - 11904: 0xA840, - 26453 - 11904: 0xCB41, - 26454 - 11904: 0xA7FA, - 26455 - 11904: 0xA841, - 26457 - 11904: 0xCB40, - 26458 - 11904: 0xCB46, - 26460 - 11904: 0xA7F9, - 26461 - 11904: 0xCB44, - 26462 - 11904: 0xFCF1, - 26463 - 11904: 0xA7F4, - 26464 - 11904: 0xA7FE, - 26465 - 11904: 0x98E7, - 26466 - 11904: 0xFCF3, - 26471 - 11904: 0xFCF2, - 26474 - 11904: 0xAA57, - 26475 - 11904: 0x8CCA, - 26476 - 11904: 0xCCD4, - 26477 - 11904: 0xAA43, - 26478 - 11904: 0x8775, - 26479 - 11904: 0xAA4D, - 26480 - 11904: 0xAA4E, - 26481 - 11904: 0xAA46, - 26482 - 11904: 0xAA58, - 26483 - 11904: 0xAA48, - 26484 - 11904: 0xCCDC, - 26485 - 11904: 0xAA53, - 26486 - 11904: 0xCCD7, - 26487 - 11904: 0xAA49, - 26488 - 11904: 0xCCE6, - 26489 - 11904: 0xCCE7, - 26490 - 11904: 0xCCDF, - 26491 - 11904: 0xCCD8, - 26492 - 11904: 0xAA56, - 26493 - 11904: 0xCCE4, - 26494 - 11904: 0xAA51, - 26495 - 11904: 0xAA4F, - 26497 - 11904: 0xCCE5, - 26498 - 11904: 0x87BA, - 26499 - 11904: 0xCCE3, - 26500 - 11904: 0xCCDB, - 26501 - 11904: 0xCCD3, - 26502 - 11904: 0xCCDA, - 26503 - 11904: 0xAA4A, - 26505 - 11904: 0xAA50, - 26507 - 11904: 0xAA44, - 26508 - 11904: 0xCCDE, - 26509 - 11904: 0xCCDD, - 26510 - 11904: 0xCCD5, - 26511 - 11904: 0x93E5, - 26512 - 11904: 0xAA52, - 26513 - 11904: 0xCCE1, - 26514 - 11904: 0xCCD6, - 26515 - 11904: 0xAA55, - 26516 - 11904: 0xCCE8, - 26517 - 11904: 0xAA45, - 26519 - 11904: 0xAA4C, - 26520 - 11904: 0xCCD9, - 26521 - 11904: 0xCCE2, - 26522 - 11904: 0xAA54, - 26524 - 11904: 0xAA47, - 26525 - 11904: 0xAA4B, - 26527 - 11904: 0xCCE0, - 26528 - 11904: 0x9A59, - 26532 - 11904: 0x8DB5, - 26540 - 11904: 0xFD4D, - 26542 - 11904: 0xCF5B, - 26543 - 11904: 0xAC5C, - 26544 - 11904: 0xAC69, - 26545 - 11904: 0xFD5E, - 26546 - 11904: 0xCF56, - 26547 - 11904: 0xCF4C, - 26548 - 11904: 0xAC62, - 26549 - 11904: 0xCF4A, - 26550 - 11904: 0xAC5B, - 26551 - 11904: 0xCF45, - 26552 - 11904: 0xAC65, - 26553 - 11904: 0xCF52, - 26554 - 11904: 0xCEFE, - 26555 - 11904: 0xCF41, - 26559 - 11904: 0x8F7D, - 26560 - 11904: 0xCF44, - 26561 - 11904: 0xCEFB, - 26562 - 11904: 0xCF51, - 26563 - 11904: 0xCF61, - 26564 - 11904: 0xAC60, - 26565 - 11904: 0xCF46, - 26566 - 11904: 0xCF58, - 26568 - 11904: 0xCEFD, - 26569 - 11904: 0xCF5F, - 26570 - 11904: 0xCF60, - 26571 - 11904: 0xCF63, - 26572 - 11904: 0xCF5A, - 26573 - 11904: 0xCF4B, - 26574 - 11904: 0xCF53, - 26575 - 11904: 0xAC66, - 26576 - 11904: 0xAC59, - 26577 - 11904: 0xAC61, - 26578 - 11904: 0xAC6D, - 26579 - 11904: 0xAC56, - 26580 - 11904: 0xAC58, - 26582 - 11904: 0x9547, - 26583 - 11904: 0xFCF6, - 26584 - 11904: 0xCF43, - 26585 - 11904: 0xAC6A, - 26586 - 11904: 0xAC63, - 26587 - 11904: 0xCF5D, - 26588 - 11904: 0xCF40, - 26589 - 11904: 0xAC6C, - 26590 - 11904: 0xAC67, - 26591 - 11904: 0xCF49, - 26594 - 11904: 0xAC6B, - 26595 - 11904: 0xCF50, - 26596 - 11904: 0xCF48, - 26597 - 11904: 0xAC64, - 26598 - 11904: 0xCF5C, - 26599 - 11904: 0xCF54, - 26601 - 11904: 0xAC5E, - 26602 - 11904: 0xCF62, - 26603 - 11904: 0xCF47, - 26604 - 11904: 0xAC5A, - 26605 - 11904: 0xCF59, - 26606 - 11904: 0xCF4F, - 26607 - 11904: 0xAC5F, - 26608 - 11904: 0xCF55, - 26609 - 11904: 0xAC57, - 26610 - 11904: 0xCEFC, - 26611 - 11904: 0xAC68, - 26612 - 11904: 0xAEE3, - 26613 - 11904: 0xAC5D, - 26614 - 11904: 0xCF4E, - 26615 - 11904: 0xCF4D, - 26616 - 11904: 0xCF42, - 26617 - 11904: 0x9250, - 26618 - 11904: 0xCF5E, - 26620 - 11904: 0xCF57, - 26622 - 11904: 0x8968, - 26623 - 11904: 0xAC55, - 26624 - 11904: 0x8DB6, - 26625 - 11904: 0xFCFB, - 26626 - 11904: 0xA07D, - 26627 - 11904: 0x98FC, - 26628 - 11904: 0x8969, - 26637 - 11904: 0xFE4F, - 26640 - 11904: 0x9256, - 26642 - 11904: 0xD1EC, - 26643 - 11904: 0xAEEA, - 26644 - 11904: 0xD1ED, - 26646 - 11904: 0xD1E1, - 26647 - 11904: 0xAEDF, - 26648 - 11904: 0xAEEB, - 26650 - 11904: 0xD1DA, - 26651 - 11904: 0xFAC9, - 26652 - 11904: 0xD1E3, - 26653 - 11904: 0xD1EB, - 26654 - 11904: 0x93E8, - 26655 - 11904: 0xD1D9, - 26656 - 11904: 0xD1F4, - 26657 - 11904: 0xAED5, - 26658 - 11904: 0xFCF8, - 26661 - 11904: 0xD1F3, - 26662 - 11904: 0xD1EE, - 26664 - 11904: 0xD1EF, - 26665 - 11904: 0xAEDD, - 26666 - 11904: 0xAEE8, - 26667 - 11904: 0xD1E5, - 26669 - 11904: 0xD1E6, - 26670 - 11904: 0xD1F0, - 26671 - 11904: 0xD1E7, - 26673 - 11904: 0xD1E2, - 26674 - 11904: 0xD1DC, - 26675 - 11904: 0xD1DD, - 26676 - 11904: 0xD1EA, - 26677 - 11904: 0xD1E4, - 26678 - 11904: 0x9CE3, - 26679 - 11904: 0xFDA9, - 26680 - 11904: 0xAED6, - 26681 - 11904: 0xAEDA, - 26682 - 11904: 0xD1F2, - 26683 - 11904: 0xD1DE, - 26684 - 11904: 0xAEE6, - 26685 - 11904: 0xAEE2, - 26686 - 11904: 0xFC44, - 26688 - 11904: 0xAEE5, - 26689 - 11904: 0xAEEC, - 26690 - 11904: 0xAEDB, - 26691 - 11904: 0xAEE7, - 26692 - 11904: 0xD1E9, - 26693 - 11904: 0xAEE9, - 26694 - 11904: 0xAED8, - 26695 - 11904: 0x9640, - 26696 - 11904: 0xAED7, - 26697 - 11904: 0xD1DB, - 26698 - 11904: 0x8DB8, - 26699 - 11904: 0xD1DF, - 26700 - 11904: 0xAEE0, - 26701 - 11904: 0xD1F1, - 26702 - 11904: 0xD1E8, - 26703 - 11904: 0xD1E0, - 26704 - 11904: 0xAEE4, - 26705 - 11904: 0xAEE1, - 26707 - 11904: 0xAED9, - 26708 - 11904: 0xAEDC, - 26709 - 11904: 0x9B4A, - 26710 - 11904: 0x8FB9, - 26717 - 11904: 0xFCFE, - 26725 - 11904: 0x896A, - 26731 - 11904: 0xD5C4, - 26733 - 11904: 0xD5B4, - 26734 - 11904: 0xD5B5, - 26735 - 11904: 0xD5B9, - 26737 - 11904: 0xD5C8, - 26738 - 11904: 0xD5C5, - 26740 - 11904: 0xD5BE, - 26741 - 11904: 0xD5BD, - 26742 - 11904: 0xB1ED, - 26743 - 11904: 0xD5C1, - 26744 - 11904: 0xD5D0, - 26745 - 11904: 0xD5B0, - 26747 - 11904: 0xD5D1, - 26748 - 11904: 0xD5C3, - 26749 - 11904: 0xD5D5, - 26750 - 11904: 0xD5C9, - 26751 - 11904: 0xB1EC, - 26752 - 11904: 0xD5C7, - 26753 - 11904: 0xB1E7, - 26754 - 11904: 0xB1FC, - 26755 - 11904: 0xB1F2, - 26756 - 11904: 0x8DB9, - 26757 - 11904: 0xB1F6, - 26758 - 11904: 0xB1F5, - 26759 - 11904: 0xD5B1, - 26760 - 11904: 0x917E, - 26761 - 11904: 0xD5CE, - 26762 - 11904: 0xD5D4, - 26763 - 11904: 0xD5CC, - 26764 - 11904: 0xD5D3, - 26767 - 11904: 0xD5C0, - 26768 - 11904: 0xD5B2, - 26769 - 11904: 0xD5D2, - 26770 - 11904: 0xD5C2, - 26771 - 11904: 0xB1EA, - 26772 - 11904: 0xB1F7, - 26774 - 11904: 0xD5CB, - 26775 - 11904: 0xB1F0, - 26776 - 11904: 0x93F4, - 26779 - 11904: 0xD5CA, - 26780 - 11904: 0xD5B3, - 26781 - 11904: 0xB1F8, - 26783 - 11904: 0xB1FA, - 26784 - 11904: 0xD5CD, - 26785 - 11904: 0xB1FB, - 26786 - 11904: 0xB1E9, - 26787 - 11904: 0xD5BA, - 26788 - 11904: 0xD5CF, - 26790 - 11904: 0xFB7C, - 26791 - 11904: 0xB1EF, - 26792 - 11904: 0xB1F9, - 26793 - 11904: 0xD5BC, - 26794 - 11904: 0xD5C6, - 26795 - 11904: 0xD5B7, - 26796 - 11904: 0xD5BB, - 26797 - 11904: 0xB1F4, - 26798 - 11904: 0xD5B6, - 26799 - 11904: 0xB1E8, - 26800 - 11904: 0xB1F1, - 26801 - 11904: 0xB1EE, - 26802 - 11904: 0xD5BF, - 26803 - 11904: 0xAEDE, - 26804 - 11904: 0xD9C0, - 26805 - 11904: 0xB1EB, - 26806 - 11904: 0x93E7, - 26809 - 11904: 0x97EF, - 26813 - 11904: 0xFE4A, - 26819 - 11904: 0xFD45, - 26820 - 11904: 0xB1F3, - 26821 - 11904: 0x96A5, - 26822 - 11904: 0xD9C3, - 26823 - 11904: 0xD9D9, - 26824 - 11904: 0xD9CE, - 26825 - 11904: 0xB4D6, - 26826 - 11904: 0xFEE0, - 26827 - 11904: 0xB4D1, - 26828 - 11904: 0xD9BD, - 26829 - 11904: 0xB4D2, - 26830 - 11904: 0xD9CD, - 26832 - 11904: 0xD9C6, - 26833 - 11904: 0xD9D3, - 26834 - 11904: 0xB4CE, - 26835 - 11904: 0xD9AB, - 26836 - 11904: 0xD9D5, - 26837 - 11904: 0xB4C4, - 26838 - 11904: 0xD9B3, - 26839 - 11904: 0xB4C7, - 26840 - 11904: 0xB4C6, - 26842 - 11904: 0xB4D7, - 26844 - 11904: 0xD9AD, - 26845 - 11904: 0xD9CF, - 26846 - 11904: 0xD9D0, - 26847 - 11904: 0xB4C9, - 26848 - 11904: 0xB4C5, - 26849 - 11904: 0xD9BB, - 26851 - 11904: 0xB4D0, - 26852 - 11904: 0xD9B6, - 26854 - 11904: 0xD9D1, - 26855 - 11904: 0xB4CC, - 26856 - 11904: 0xD9C9, - 26857 - 11904: 0xD9D6, - 26858 - 11904: 0xD9B0, - 26859 - 11904: 0xD9B5, - 26860 - 11904: 0xD9AF, - 26862 - 11904: 0xB4CB, - 26863 - 11904: 0xD9C2, - 26864 - 11904: 0xDDDE, - 26865 - 11904: 0xD9B1, - 26866 - 11904: 0xB4CF, - 26867 - 11904: 0xD9BA, - 26868 - 11904: 0xD9D2, - 26869 - 11904: 0xB4CA, - 26870 - 11904: 0xD9B7, - 26871 - 11904: 0xD9B4, - 26872 - 11904: 0xD9C5, - 26873 - 11904: 0xB4CD, - 26874 - 11904: 0xB4C3, - 26875 - 11904: 0xB4D9, - 26876 - 11904: 0xD9C8, - 26877 - 11904: 0xD9C7, - 26880 - 11904: 0xFD48, - 26881 - 11904: 0xFD47, - 26882 - 11904: 0xFEF2, - 26883 - 11904: 0xFE6A, - 26884 - 11904: 0xD9AC, - 26885 - 11904: 0xB4C8, - 26886 - 11904: 0xD9D4, - 26887 - 11904: 0xD9BC, - 26888 - 11904: 0xD9BE, - 26889 - 11904: 0x8DBD, - 26890 - 11904: 0xD9CB, - 26891 - 11904: 0xD9CA, - 26892 - 11904: 0xD9AA, - 26893 - 11904: 0xB4D3, - 26894 - 11904: 0xB4D5, - 26895 - 11904: 0xD9B2, - 26896 - 11904: 0xD9B9, - 26897 - 11904: 0xD9C1, - 26898 - 11904: 0xB4D4, - 26899 - 11904: 0xD9B8, - 26900 - 11904: 0xD9C4, - 26901 - 11904: 0xD9D7, - 26903 - 11904: 0xD9CC, - 26904 - 11904: 0x9BA1, - 26905 - 11904: 0x8CA2, - 26906 - 11904: 0x9AB7, - 26907 - 11904: 0x8EFC, - 26917 - 11904: 0xD9D8, - 26922 - 11904: 0xD9AE, - 26924 - 11904: 0x9FA1, - 26927 - 11904: 0xDDF2, - 26928 - 11904: 0xB7A6, - 26930 - 11904: 0xDDF0, - 26931 - 11904: 0xDDDB, - 26932 - 11904: 0xDDE0, - 26933 - 11904: 0xDDD9, - 26934 - 11904: 0xFD51, - 26935 - 11904: 0xDDEC, - 26936 - 11904: 0xDDCB, - 26937 - 11904: 0xDDD2, - 26939 - 11904: 0xDDEA, - 26940 - 11904: 0xDDF4, - 26941 - 11904: 0xDDDC, - 26942 - 11904: 0xFAAD, - 26943 - 11904: 0xDDCF, - 26944 - 11904: 0xDDE2, - 26945 - 11904: 0xDDE7, - 26946 - 11904: 0xDDD3, - 26947 - 11904: 0x8DBE, - 26948 - 11904: 0xDDE4, - 26949 - 11904: 0xDDD0, - 26950 - 11904: 0x89A4, - 26952 - 11904: 0xDDD7, - 26953 - 11904: 0xDDD8, - 26954 - 11904: 0xB7A8, - 26955 - 11904: 0xDDEB, - 26956 - 11904: 0xDDE9, - 26958 - 11904: 0xDDCC, - 26959 - 11904: 0xDDEE, - 26961 - 11904: 0xDDEF, - 26962 - 11904: 0xDDF1, - 26963 - 11904: 0xB7AC, - 26964 - 11904: 0xB7A4, - 26965 - 11904: 0x9AD9, - 26966 - 11904: 0xD5B8, - 26967 - 11904: 0xDDD4, - 26968 - 11904: 0xDDE6, - 26969 - 11904: 0xDDD5, - 26970 - 11904: 0xB7A1, - 26971 - 11904: 0xB7B1, - 26972 - 11904: 0xDDED, - 26973 - 11904: 0xB7AF, - 26974 - 11904: 0xB7AB, - 26975 - 11904: 0xDDCA, - 26976 - 11904: 0xB7A3, - 26977 - 11904: 0xFD4E, - 26978 - 11904: 0xDDCD, - 26979 - 11904: 0xB7B0, - 26980 - 11904: 0x8DC0, - 26981 - 11904: 0xDDDD, - 26982 - 11904: 0xDDC9, - 26983 - 11904: 0x97F0, - 26984 - 11904: 0xB7A9, - 26985 - 11904: 0xDDE1, - 26986 - 11904: 0xDDD1, - 26987 - 11904: 0xB7AA, - 26988 - 11904: 0xDDDA, - 26989 - 11904: 0xB77E, - 26990 - 11904: 0xB4D8, - 26991 - 11904: 0xDDE3, - 26992 - 11904: 0xD9BF, - 26993 - 11904: 0xDDCE, - 26994 - 11904: 0x93B4, - 26995 - 11904: 0xFD44, - 26996 - 11904: 0xDDE8, - 26997 - 11904: 0xB7A5, - 26998 - 11904: 0xDDE5, - 26999 - 11904: 0xB7A2, - 27000 - 11904: 0xDDDF, - 27001 - 11904: 0xB7AD, - 27002 - 11904: 0xDDD6, - 27003 - 11904: 0xDDF3, - 27008 - 11904: 0x9FA7, - 27010 - 11904: 0xB7A7, - 27011 - 11904: 0xDEC6, - 27013 - 11904: 0x8DC2, - 27014 - 11904: 0xB7AE, - 27018 - 11904: 0x99B6, - 27021 - 11904: 0xE24A, - 27022 - 11904: 0xE248, - 27024 - 11904: 0xE25E, - 27025 - 11904: 0xE246, - 27027 - 11904: 0xE258, - 27028 - 11904: 0xB77D, - 27029 - 11904: 0xBA5F, - 27030 - 11904: 0xE242, - 27031 - 11904: 0xE25D, - 27032 - 11904: 0xFD52, - 27033 - 11904: 0xE247, - 27034 - 11904: 0xE255, - 27035 - 11904: 0xBA64, - 27036 - 11904: 0xBA5D, - 27038 - 11904: 0xE25B, - 27039 - 11904: 0x8DC1, - 27040 - 11904: 0xE240, - 27041 - 11904: 0xE25A, - 27042 - 11904: 0x8E46, - 27043 - 11904: 0xBA6F, - 27044 - 11904: 0xE251, - 27045 - 11904: 0xE261, - 27046 - 11904: 0xBA6D, - 27047 - 11904: 0xE249, - 27048 - 11904: 0xBA5E, - 27049 - 11904: 0xE24B, - 27050 - 11904: 0xE259, - 27051 - 11904: 0xBA67, - 27052 - 11904: 0xE244, - 27053 - 11904: 0xBA6B, - 27054 - 11904: 0xBA61, - 27055 - 11904: 0xE24D, - 27056 - 11904: 0xE243, - 27057 - 11904: 0xE1FC, - 27058 - 11904: 0xA0D1, - 27059 - 11904: 0xE257, - 27060 - 11904: 0xBA68, - 27061 - 11904: 0xE260, - 27062 - 11904: 0xE1FD, - 27063 - 11904: 0xBA65, - 27065 - 11904: 0xE253, - 27067 - 11904: 0xBA66, - 27068 - 11904: 0xE245, - 27069 - 11904: 0xE250, - 27070 - 11904: 0xE24C, - 27071 - 11904: 0xE24E, - 27072 - 11904: 0x9FCA, - 27073 - 11904: 0xBA60, - 27074 - 11904: 0xE25F, - 27075 - 11904: 0xBA6E, - 27076 - 11904: 0xE24F, - 27078 - 11904: 0xE262, - 27081 - 11904: 0xE1FE, - 27082 - 11904: 0xE254, - 27083 - 11904: 0xBA63, - 27084 - 11904: 0xBA6C, - 27085 - 11904: 0xBA6A, - 27086 - 11904: 0xE241, - 27087 - 11904: 0xE256, - 27088 - 11904: 0xBA69, - 27089 - 11904: 0x92CF, - 27091 - 11904: 0xBA62, - 27092 - 11904: 0xE252, - 27093 - 11904: 0x9CF4, - 27094 - 11904: 0x8DC4, - 27097 - 11904: 0xE25C, - 27105 - 11904: 0xFD41, - 27106 - 11904: 0xE5D5, - 27108 - 11904: 0xE5D1, - 27109 - 11904: 0xE5CD, - 27110 - 11904: 0xE5E1, - 27111 - 11904: 0xE5DE, - 27112 - 11904: 0xBCCD, - 27113 - 11904: 0x9B4C, - 27115 - 11904: 0xE5E5, - 27116 - 11904: 0xE5D4, - 27117 - 11904: 0xBCD8, - 27118 - 11904: 0xE5DB, - 27121 - 11904: 0xE5D0, - 27122 - 11904: 0xE5DA, - 27123 - 11904: 0xBCD5, - 27124 - 11904: 0xE5EE, - 27126 - 11904: 0xE5EB, - 27127 - 11904: 0xE5DD, - 27128 - 11904: 0xE5CE, - 27129 - 11904: 0xFD57, - 27130 - 11904: 0xFCEF, - 27131 - 11904: 0xE5E2, - 27132 - 11904: 0xE5E4, - 27133 - 11904: 0xBCD1, - 27134 - 11904: 0xE5D8, - 27135 - 11904: 0xE5D3, - 27136 - 11904: 0xE5CA, - 27137 - 11904: 0xBCCE, - 27138 - 11904: 0xBCD6, - 27139 - 11904: 0x9CDE, - 27140 - 11904: 0xE5E7, - 27141 - 11904: 0xBCD7, - 27142 - 11904: 0xE5CB, - 27143 - 11904: 0xE5ED, - 27144 - 11904: 0xE5E0, - 27145 - 11904: 0xE5E6, - 27146 - 11904: 0xBCD4, - 27147 - 11904: 0xFD42, - 27148 - 11904: 0x986C, - 27149 - 11904: 0xE5E3, - 27151 - 11904: 0xE5EA, - 27153 - 11904: 0xBCD9, - 27155 - 11904: 0xBCD3, - 27156 - 11904: 0xE5DC, - 27157 - 11904: 0xE5CF, - 27158 - 11904: 0xE5EF, - 27159 - 11904: 0xE5CC, - 27160 - 11904: 0xE5E8, - 27161 - 11904: 0xBCD0, - 27162 - 11904: 0x97F9, - 27163 - 11904: 0xE5D6, - 27164 - 11904: 0x9558, - 27165 - 11904: 0xE5D7, - 27166 - 11904: 0xBCCF, - 27167 - 11904: 0xBCCC, - 27168 - 11904: 0xE5D2, - 27169 - 11904: 0xBCD2, - 27171 - 11904: 0xBCCB, - 27173 - 11904: 0xE5E9, - 27174 - 11904: 0xE5EC, - 27175 - 11904: 0xE5D9, - 27176 - 11904: 0xE9CA, - 27177 - 11904: 0x87B6, - 27179 - 11904: 0x985E, - 27180 - 11904: 0xFE7B, - 27181 - 11904: 0x94CD, - 27186 - 11904: 0xE9C2, - 27187 - 11904: 0x93EE, - 27188 - 11904: 0xE9BE, - 27189 - 11904: 0xBEF6, - 27192 - 11904: 0xBEEB, - 27193 - 11904: 0xBEF0, - 27194 - 11904: 0xBEEC, - 27195 - 11904: 0xE9CC, - 27196 - 11904: 0xE9D7, - 27197 - 11904: 0xBEEA, - 27198 - 11904: 0xE9C4, - 27199 - 11904: 0xE9CD, - 27200 - 11904: 0xE5DF, - 27201 - 11904: 0xE9CE, - 27203 - 11904: 0x8CA3, - 27204 - 11904: 0xBEF1, - 27205 - 11904: 0xFD5A, - 27206 - 11904: 0xE9DD, - 27207 - 11904: 0xBEF5, - 27208 - 11904: 0xBEF8, - 27209 - 11904: 0xE9C0, - 27211 - 11904: 0xBEF4, - 27212 - 11904: 0x93F5, - 27213 - 11904: 0xE9DB, - 27214 - 11904: 0xE9DC, - 27215 - 11904: 0xE9D2, - 27216 - 11904: 0xE9D1, - 27217 - 11904: 0xE9C9, - 27218 - 11904: 0x93EF, - 27219 - 11904: 0x8EEA, - 27220 - 11904: 0xE9D3, - 27221 - 11904: 0xE9DA, - 27222 - 11904: 0xE9D9, - 27223 - 11904: 0x8F5B, - 27224 - 11904: 0xBEEF, - 27225 - 11904: 0xBEED, - 27226 - 11904: 0xE9CB, - 27227 - 11904: 0xE9C8, - 27229 - 11904: 0xE9C5, - 27230 - 11904: 0xE9D8, - 27231 - 11904: 0xBEF7, - 27232 - 11904: 0xE9D6, - 27233 - 11904: 0xBEF3, - 27234 - 11904: 0xBEF2, - 27235 - 11904: 0x8C5E, - 27236 - 11904: 0xE9D0, - 27237 - 11904: 0x8DC6, - 27238 - 11904: 0xE9BF, - 27239 - 11904: 0xE9C1, - 27240 - 11904: 0xE9C3, - 27241 - 11904: 0xE9D5, - 27242 - 11904: 0xE9CF, - 27243 - 11904: 0xBEEE, - 27245 - 11904: 0xE9C6, - 27247 - 11904: 0xE9D4, - 27249 - 11904: 0x8DC8, - 27252 - 11904: 0x8DC7, - 27254 - 11904: 0xE9C7, - 27258 - 11904: 0x93F7, - 27262 - 11904: 0xC0CF, - 27263 - 11904: 0xED45, - 27264 - 11904: 0xC0C8, - 27265 - 11904: 0xECF5, - 27266 - 11904: 0x8DC9, - 27267 - 11904: 0xED41, - 27268 - 11904: 0xC0CA, - 27269 - 11904: 0xED48, - 27271 - 11904: 0xECFC, - 27273 - 11904: 0xECF7, - 27274 - 11904: 0xFBF2, - 27276 - 11904: 0xED49, - 27277 - 11904: 0xECF3, - 27278 - 11904: 0xECFE, - 27279 - 11904: 0x9670, - 27280 - 11904: 0xC0D1, - 27281 - 11904: 0xED44, - 27282 - 11904: 0xED4A, - 27283 - 11904: 0xECFD, - 27284 - 11904: 0xC0C9, - 27285 - 11904: 0xED40, - 27286 - 11904: 0xECF4, - 27287 - 11904: 0xC0D0, - 27289 - 11904: 0x8DCB, - 27290 - 11904: 0xED47, - 27291 - 11904: 0xECF9, - 27292 - 11904: 0xC0CC, - 27293 - 11904: 0xFD5C, - 27294 - 11904: 0xECFB, - 27295 - 11904: 0xECF8, - 27296 - 11904: 0xC0D2, - 27297 - 11904: 0xECFA, - 27298 - 11904: 0xC0CB, - 27299 - 11904: 0xC0CE, - 27300 - 11904: 0xED43, - 27301 - 11904: 0xECF6, - 27302 - 11904: 0xED46, - 27303 - 11904: 0x8F65, - 27304 - 11904: 0xED42, - 27307 - 11904: 0x8DCD, - 27308 - 11904: 0xC263, - 27309 - 11904: 0xEFE7, - 27310 - 11904: 0xC268, - 27311 - 11904: 0xC269, - 27313 - 11904: 0x9DA8, - 27314 - 11904: 0x94F9, - 27315 - 11904: 0xC262, - 27316 - 11904: 0xEFE6, - 27317 - 11904: 0x8DCE, - 27318 - 11904: 0xEFE3, - 27319 - 11904: 0xEFE4, - 27320 - 11904: 0xC266, - 27321 - 11904: 0xEFDE, - 27322 - 11904: 0xEFE2, - 27323 - 11904: 0xC265, - 27325 - 11904: 0xEFDF, - 27326 - 11904: 0x93EA, - 27330 - 11904: 0xC267, - 27331 - 11904: 0xC264, - 27333 - 11904: 0xEFDD, - 27334 - 11904: 0xEFE1, - 27335 - 11904: 0xEFE5, - 27336 - 11904: 0xFD5F, - 27337 - 11904: 0x93F0, - 27338 - 11904: 0x9FB6, - 27339 - 11904: 0xF251, - 27340 - 11904: 0xF24E, - 27341 - 11904: 0xF257, - 27343 - 11904: 0xF256, - 27344 - 11904: 0xF254, - 27345 - 11904: 0xF24F, - 27347 - 11904: 0xC372, - 27348 - 11904: 0x8DCF, - 27352 - 11904: 0x9763, - 27353 - 11904: 0xF250, - 27354 - 11904: 0xC371, - 27355 - 11904: 0xC0CD, - 27356 - 11904: 0xF253, - 27357 - 11904: 0xC370, - 27358 - 11904: 0xF258, - 27359 - 11904: 0xF252, - 27360 - 11904: 0xF24D, - 27361 - 11904: 0xEFE0, - 27365 - 11904: 0xC36F, - 27367 - 11904: 0xF24C, - 27368 - 11904: 0xF456, - 27370 - 11904: 0xF455, - 27371 - 11904: 0xF255, - 27372 - 11904: 0xC468, - 27374 - 11904: 0xF459, - 27375 - 11904: 0xF45A, - 27376 - 11904: 0xF454, - 27377 - 11904: 0xF458, - 27379 - 11904: 0xF453, - 27382 - 11904: 0x8DD0, - 27384 - 11904: 0xF5D1, - 27385 - 11904: 0xF457, - 27386 - 11904: 0xC4E7, - 27387 - 11904: 0xC4E5, - 27388 - 11904: 0xF5CF, - 27392 - 11904: 0xF5D2, - 27394 - 11904: 0xF5CE, - 27395 - 11904: 0xF5D0, - 27396 - 11904: 0xC4E6, - 27397 - 11904: 0x93F1, - 27400 - 11904: 0xF6E5, - 27401 - 11904: 0xF6E6, - 27402 - 11904: 0xC576, - 27403 - 11904: 0xF6E4, - 27407 - 11904: 0xF7E2, - 27408 - 11904: 0xC5CF, - 27409 - 11904: 0xF7E0, - 27410 - 11904: 0xF7E1, - 27411 - 11904: 0xF8AC, - 27414 - 11904: 0xC656, - 27415 - 11904: 0xF8F3, - 27416 - 11904: 0xF8F1, - 27417 - 11904: 0xF8F2, - 27418 - 11904: 0xF8F4, - 27421 - 11904: 0xFD62, - 27422 - 11904: 0xF9BB, - 27424 - 11904: 0xA4ED, - 27425 - 11904: 0xA6B8, - 27427 - 11904: 0xAA59, - 27429 - 11904: 0xCCE9, - 27432 - 11904: 0xCF64, - 27436 - 11904: 0xD1F5, - 27437 - 11904: 0xD1F7, - 27439 - 11904: 0xD1F6, - 27441 - 11904: 0xD1F8, - 27442 - 11904: 0xB1FD, - 27443 - 11904: 0xD5D7, - 27444 - 11904: 0xD1F9, - 27445 - 11904: 0xFD65, - 27446 - 11904: 0xD5D6, - 27447 - 11904: 0xD5D8, - 27448 - 11904: 0xD5D9, - 27449 - 11904: 0xD9DA, - 27450 - 11904: 0xB4DB, - 27451 - 11904: 0xD9DB, - 27452 - 11904: 0xD9DD, - 27453 - 11904: 0xB4DC, - 27454 - 11904: 0xB4DA, - 27455 - 11904: 0xD9DC, - 27457 - 11904: 0xDDFA, - 27458 - 11904: 0xDDF8, - 27459 - 11904: 0xDDF7, - 27461 - 11904: 0xDDF6, - 27462 - 11904: 0xDDF5, - 27463 - 11904: 0xB7B2, - 27464 - 11904: 0xDDF9, - 27465 - 11904: 0xBA70, - 27466 - 11904: 0xE263, - 27467 - 11904: 0xE265, - 27468 - 11904: 0xBA71, - 27469 - 11904: 0xE264, - 27470 - 11904: 0xBCDB, - 27472 - 11904: 0xBCDA, - 27473 - 11904: 0xE5F0, - 27474 - 11904: 0x9FDB, - 27476 - 11904: 0xE9DF, - 27477 - 11904: 0xE9DE, - 27478 - 11904: 0xE9E0, - 27479 - 11904: 0x93F8, - 27481 - 11904: 0xBEF9, - 27483 - 11904: 0xED4B, - 27484 - 11904: 0xC0D3, - 27486 - 11904: 0xEFE8, - 27487 - 11904: 0xC26A, - 27488 - 11904: 0xF259, - 27489 - 11904: 0xC577, - 27490 - 11904: 0xA4EE, - 27491 - 11904: 0xA5BF, - 27492 - 11904: 0xA6B9, - 27493 - 11904: 0xA842, - 27494 - 11904: 0xAA5A, - 27495 - 11904: 0xAA5B, - 27498 - 11904: 0xAC6E, - 27501 - 11904: 0xD1FA, - 27503 - 11904: 0x8BF7, - 27506 - 11904: 0xB7B3, - 27508 - 11904: 0xFD66, - 27510 - 11904: 0xE6D1, - 27511 - 11904: 0xBEFA, - 27512 - 11904: 0xC26B, - 27513 - 11904: 0xA4EF, - 27514 - 11904: 0x8BCF, - 27515 - 11904: 0xA6BA, - 27518 - 11904: 0xCCEB, - 27519 - 11904: 0xAA5C, - 27520 - 11904: 0xCCEA, - 27521 - 11904: 0x8DD1, - 27522 - 11904: 0xCF65, - 27523 - 11904: 0xAC6F, - 27524 - 11904: 0xCF66, - 27526 - 11904: 0xAC70, - 27528 - 11904: 0xD1FC, - 27529 - 11904: 0xAEEE, - 27530 - 11904: 0xAEED, - 27532 - 11904: 0xD5DE, - 27533 - 11904: 0xD5DC, - 27534 - 11904: 0xD5DD, - 27535 - 11904: 0xD5DB, - 27537 - 11904: 0xD5DA, - 27540 - 11904: 0xD9DE, - 27541 - 11904: 0xD9E1, - 27542 - 11904: 0xB4DE, - 27543 - 11904: 0xD9DF, - 27544 - 11904: 0xB4DD, - 27545 - 11904: 0xD9E0, - 27547 - 11904: 0xDDFB, - 27550 - 11904: 0xE266, - 27551 - 11904: 0xE267, - 27552 - 11904: 0xE268, - 27554 - 11904: 0xE5F3, - 27555 - 11904: 0xE5F2, - 27556 - 11904: 0xBCDC, - 27557 - 11904: 0xE5F1, - 27558 - 11904: 0xE5F4, - 27559 - 11904: 0xE9E1, - 27562 - 11904: 0xE9E2, - 27563 - 11904: 0xE9E3, - 27565 - 11904: 0xED4C, - 27566 - 11904: 0xC0D4, - 27567 - 11904: 0xC26C, - 27568 - 11904: 0xF25A, - 27570 - 11904: 0xC4E8, - 27571 - 11904: 0xC95F, - 27573 - 11904: 0xAC71, - 27574 - 11904: 0xCF67, - 27575 - 11904: 0xAEEF, - 27578 - 11904: 0xB1FE, - 27580 - 11904: 0xB4DF, - 27581 - 11904: 0xD9E2, - 27583 - 11904: 0xB7B5, - 27584 - 11904: 0xB7B4, - 27585 - 11904: 0x8DD2, - 27587 - 11904: 0xE269, - 27588 - 11904: 0xE26A, - 27589 - 11904: 0xBCDD, - 27590 - 11904: 0xBCDE, - 27591 - 11904: 0xE9E5, - 27592 - 11904: 0xE9E4, - 27593 - 11904: 0xEFE9, - 27594 - 11904: 0xF7E3, - 27595 - 11904: 0xA4F0, - 27596 - 11904: 0xC960, - 27597 - 11904: 0xA5C0, - 27599 - 11904: 0xA843, - 27600 - 11904: 0xCB48, - 27602 - 11904: 0xAC72, - 27603 - 11904: 0xB7B6, - 27604 - 11904: 0xA4F1, - 27606 - 11904: 0xCF68, - 27607 - 11904: 0xAC73, - 27608 - 11904: 0xCF69, - 27610 - 11904: 0xC0D5, - 27611 - 11904: 0xA4F2, - 27612 - 11904: 0xFD71, - 27614 - 11904: 0xCCEC, - 27616 - 11904: 0xCF6A, - 27617 - 11904: 0xFD6F, - 27618 - 11904: 0xD242, - 27619 - 11904: 0xD241, - 27620 - 11904: 0xD1FE, - 27622 - 11904: 0xD1FD, - 27623 - 11904: 0xD243, - 27624 - 11904: 0xD240, - 27626 - 11904: 0x8DD3, - 27627 - 11904: 0xB240, - 27628 - 11904: 0xB241, - 27631 - 11904: 0xB4E0, - 27632 - 11904: 0xD9E3, - 27634 - 11904: 0xD9E4, - 27635 - 11904: 0xD9E5, - 27639 - 11904: 0xDE41, - 27640 - 11904: 0xDE42, - 27641 - 11904: 0xDE40, - 27642 - 11904: 0x9FE7, - 27643 - 11904: 0xDDFD, - 27644 - 11904: 0xDDFE, - 27645 - 11904: 0xB7B7, - 27646 - 11904: 0xE26B, - 27647 - 11904: 0xE5F7, - 27648 - 11904: 0xE5F6, - 27649 - 11904: 0xE5F5, - 27650 - 11904: 0xE5F8, - 27651 - 11904: 0xE9E7, - 27652 - 11904: 0xE9E6, - 27653 - 11904: 0xBEFB, - 27654 - 11904: 0xE9E8, - 27656 - 11904: 0xC0D6, - 27657 - 11904: 0xED4D, - 27659 - 11904: 0xEFEA, - 27660 - 11904: 0xF25B, - 27661 - 11904: 0xF6E7, - 27663 - 11904: 0xA4F3, - 27664 - 11904: 0xA5C2, - 27665 - 11904: 0xA5C1, - 27667 - 11904: 0xAA5D, - 27668 - 11904: 0xC961, - 27669 - 11904: 0xC97E, - 27670 - 11904: 0xA6BB, - 27672 - 11904: 0xC9F7, - 27673 - 11904: 0xCB49, - 27674 - 11904: 0xCB4A, - 27675 - 11904: 0xAA5E, - 27676 - 11904: 0x90BD, - 27677 - 11904: 0xCCED, - 27679 - 11904: 0xAC74, - 27680 - 11904: 0xCF6B, - 27681 - 11904: 0xCF6C, - 27683 - 11904: 0xAEF0, - 27684 - 11904: 0xAEF4, - 27685 - 11904: 0xD244, - 27686 - 11904: 0xAEF3, - 27687 - 11904: 0xAEF1, - 27688 - 11904: 0xAEF2, - 27690 - 11904: 0xD5DF, - 27691 - 11904: 0xB242, - 27692 - 11904: 0xB4E3, - 27694 - 11904: 0xB4E1, - 27695 - 11904: 0xB4E2, - 27696 - 11904: 0xD9E6, - 27697 - 11904: 0x9FD0, - 27699 - 11904: 0xBA72, - 27700 - 11904: 0xA4F4, - 27701 - 11904: 0x8BD0, - 27702 - 11904: 0xC9A1, - 27703 - 11904: 0xFD72, - 27704 - 11904: 0xA5C3, - 27705 - 11904: 0x9CAE, - 27706 - 11904: 0x8BD1, - 27707 - 11904: 0xC9A4, - 27709 - 11904: 0x8ADB, - 27710 - 11904: 0xA5C6, - 27711 - 11904: 0xC9A3, - 27712 - 11904: 0xA5C5, - 27713 - 11904: 0xA5C4, - 27714 - 11904: 0xA844, - 27715 - 11904: 0xC9A2, - 27718 - 11904: 0xC9F8, - 27721 - 11904: 0xFAE4, - 27722 - 11904: 0xC9FC, - 27723 - 11904: 0xC9FE, - 27724 - 11904: 0xCA40, - 27725 - 11904: 0xA6C5, - 27726 - 11904: 0xA6C6, - 27727 - 11904: 0xC9FB, - 27728 - 11904: 0xA6C1, - 27730 - 11904: 0xC9F9, - 27732 - 11904: 0xC9FD, - 27733 - 11904: 0xA6C2, - 27735 - 11904: 0xA6BD, - 27736 - 11904: 0x95CE, - 27737 - 11904: 0xA6BE, - 27738 - 11904: 0xFD76, - 27739 - 11904: 0xA6C4, - 27740 - 11904: 0xC9FA, - 27741 - 11904: 0xA6BC, - 27742 - 11904: 0xA845, - 27743 - 11904: 0xA6BF, - 27744 - 11904: 0xA6C0, - 27745 - 11904: 0xA6C3, - 27749 - 11904: 0xCB5B, - 27750 - 11904: 0xCB59, - 27751 - 11904: 0xCB4C, - 27752 - 11904: 0xA851, - 27753 - 11904: 0xCB53, - 27754 - 11904: 0xA84C, - 27755 - 11904: 0xCB4D, - 27757 - 11904: 0xCB55, - 27758 - 11904: 0xFB62, - 27759 - 11904: 0xCB52, - 27760 - 11904: 0xA84F, - 27761 - 11904: 0xCB51, - 27762 - 11904: 0xA856, - 27763 - 11904: 0xCB5A, - 27764 - 11904: 0xA858, - 27765 - 11904: 0x8DD4, - 27766 - 11904: 0xA85A, - 27768 - 11904: 0xCB4B, - 27769 - 11904: 0xFD78, - 27770 - 11904: 0xA84D, - 27771 - 11904: 0xCB5C, - 27773 - 11904: 0xA854, - 27774 - 11904: 0xA857, - 27775 - 11904: 0x8EE3, - 27776 - 11904: 0xCD45, - 27777 - 11904: 0xA847, - 27778 - 11904: 0xA85E, - 27779 - 11904: 0xA855, - 27780 - 11904: 0xCB4E, - 27781 - 11904: 0xA84A, - 27782 - 11904: 0xA859, - 27783 - 11904: 0xCB56, - 27784 - 11904: 0xA848, - 27785 - 11904: 0xA849, - 27786 - 11904: 0xCD43, - 27787 - 11904: 0xCB4F, - 27788 - 11904: 0xA850, - 27789 - 11904: 0xA85B, - 27790 - 11904: 0xCB5D, - 27791 - 11904: 0xCB50, - 27792 - 11904: 0xA84E, - 27794 - 11904: 0xA853, - 27795 - 11904: 0xCCEE, - 27796 - 11904: 0xA85C, - 27797 - 11904: 0xCB57, - 27798 - 11904: 0xA852, - 27800 - 11904: 0xA85D, - 27801 - 11904: 0xA846, - 27802 - 11904: 0xCB54, - 27803 - 11904: 0xA84B, - 27804 - 11904: 0xFDB7, - 27805 - 11904: 0xCD44, - 27807 - 11904: 0x9076, - 27810 - 11904: 0x98C6, - 27818 - 11904: 0x8DD5, - 27819 - 11904: 0xAA6A, - 27820 - 11904: 0xAA7A, - 27821 - 11904: 0xCCF5, - 27822 - 11904: 0xAA71, - 27823 - 11904: 0x97D1, - 27824 - 11904: 0xCD4B, - 27825 - 11904: 0xAA62, - 27826 - 11904: 0x9EB6, - 27827 - 11904: 0xAA65, - 27828 - 11904: 0xCD42, - 27830 - 11904: 0xCCF3, - 27831 - 11904: 0xCCF7, - 27832 - 11904: 0xAA6D, - 27833 - 11904: 0xAA6F, - 27834 - 11904: 0xCCFA, - 27835 - 11904: 0xAA76, - 27836 - 11904: 0xAA68, - 27837 - 11904: 0xAA66, - 27838 - 11904: 0xAA67, - 27839 - 11904: 0xAA75, - 27840 - 11904: 0xCD47, - 27841 - 11904: 0xAA70, - 27842 - 11904: 0xCCF9, - 27843 - 11904: 0xCCFB, - 27844 - 11904: 0xAA6E, - 27845 - 11904: 0xAA73, - 27846 - 11904: 0xCCFC, - 27847 - 11904: 0xCD4A, - 27849 - 11904: 0xAC75, - 27850 - 11904: 0xAA79, - 27851 - 11904: 0xFAC7, - 27852 - 11904: 0xAA63, - 27853 - 11904: 0xCD49, - 27854 - 11904: 0xA042, - 27855 - 11904: 0xCD4D, - 27856 - 11904: 0xCCF8, - 27857 - 11904: 0xCD4F, - 27858 - 11904: 0xCD40, - 27859 - 11904: 0xAA6C, - 27860 - 11904: 0xCCF4, - 27861 - 11904: 0xAA6B, - 27862 - 11904: 0xAA7D, - 27863 - 11904: 0xAA72, - 27865 - 11904: 0xCCF2, - 27866 - 11904: 0xCF75, - 27867 - 11904: 0xAA78, - 27868 - 11904: 0xAA7C, - 27869 - 11904: 0xCD41, - 27870 - 11904: 0xCD46, - 27871 - 11904: 0x9873, - 27872 - 11904: 0xAA7E, - 27873 - 11904: 0xAA77, - 27874 - 11904: 0xAA69, - 27875 - 11904: 0xAA5F, - 27877 - 11904: 0xAA64, - 27879 - 11904: 0xCCF6, - 27880 - 11904: 0xAA60, - 27881 - 11904: 0xCD4E, - 27882 - 11904: 0x9FFC, - 27883 - 11904: 0xCCF0, - 27884 - 11904: 0xCCEF, - 27885 - 11904: 0xCCFD, - 27886 - 11904: 0xCCF1, - 27887 - 11904: 0xAA7B, - 27888 - 11904: 0xAEF5, - 27889 - 11904: 0xAA74, - 27890 - 11904: 0xCCFE, - 27891 - 11904: 0xAA61, - 27893 - 11904: 0xACA6, - 27897 - 11904: 0xCD4C, - 27903 - 11904: 0x8CA5, - 27904 - 11904: 0xCF7C, - 27905 - 11904: 0xCFA1, - 27906 - 11904: 0x8DD7, - 27907 - 11904: 0xCFA4, - 27908 - 11904: 0xCF77, - 27909 - 11904: 0x92FB, - 27910 - 11904: 0x8DD8, - 27911 - 11904: 0xCFA7, - 27912 - 11904: 0xCFAA, - 27913 - 11904: 0xCFAC, - 27914 - 11904: 0xCF74, - 27915 - 11904: 0xAC76, - 27916 - 11904: 0xAC7B, - 27917 - 11904: 0xD249, - 27918 - 11904: 0xACAD, - 27919 - 11904: 0xCFA5, - 27920 - 11904: 0xCFAD, - 27921 - 11904: 0xCF7B, - 27922 - 11904: 0xCF73, - 27926 - 11904: 0xD264, - 27927 - 11904: 0xAC7E, - 27928 - 11904: 0xCFA2, - 27929 - 11904: 0xCF78, - 27930 - 11904: 0xCF7A, - 27931 - 11904: 0xACA5, - 27933 - 11904: 0xCF7D, - 27934 - 11904: 0xAC7D, - 27935 - 11904: 0xCF70, - 27936 - 11904: 0xCFA8, - 27938 - 11904: 0xCFAB, - 27940 - 11904: 0x944F, - 27941 - 11904: 0xAC7A, - 27942 - 11904: 0x8DD9, - 27943 - 11904: 0xACA8, - 27944 - 11904: 0xCF6D, - 27945 - 11904: 0xACAA, - 27946 - 11904: 0xAC78, - 27947 - 11904: 0xACAE, - 27948 - 11904: 0xCFA9, - 27949 - 11904: 0xCF6F, - 27950 - 11904: 0xACAB, - 27951 - 11904: 0xD25E, - 27952 - 11904: 0xCD48, - 27953 - 11904: 0xAC7C, - 27954 - 11904: 0xAC77, - 27955 - 11904: 0xCF76, - 27956 - 11904: 0xCF6E, - 27957 - 11904: 0xACAC, - 27958 - 11904: 0xACA4, - 27959 - 11904: 0xCFA3, - 27960 - 11904: 0xACA9, - 27961 - 11904: 0xACA7, - 27962 - 11904: 0xCF79, - 27963 - 11904: 0xACA1, - 27964 - 11904: 0xCF71, - 27965 - 11904: 0xACA2, - 27966 - 11904: 0xACA3, - 27967 - 11904: 0xCF72, - 27968 - 11904: 0xCFA6, - 27969 - 11904: 0xAC79, - 27970 - 11904: 0xCF7E, - 27982 - 11904: 0x896B, - 27991 - 11904: 0x97CE, - 27992 - 11904: 0xD24C, - 27993 - 11904: 0xAEFD, - 27994 - 11904: 0xAF43, - 27995 - 11904: 0xFAF3, - 27996 - 11904: 0xFDAE, - 27998 - 11904: 0xD255, - 27999 - 11904: 0xD25B, - 28000 - 11904: 0xD257, - 28001 - 11904: 0xD24A, - 28002 - 11904: 0xD24D, - 28003 - 11904: 0xD246, - 28004 - 11904: 0xD247, - 28005 - 11904: 0xAF4A, - 28006 - 11904: 0xAEFA, - 28007 - 11904: 0xD256, - 28008 - 11904: 0xD25F, - 28009 - 11904: 0xAF45, - 28010 - 11904: 0xAEF6, - 28012 - 11904: 0xAF40, - 28013 - 11904: 0xD24E, - 28014 - 11904: 0xAF42, - 28015 - 11904: 0xD24F, - 28016 - 11904: 0xD259, - 28017 - 11904: 0xFBAF, - 28018 - 11904: 0x92B7, - 28020 - 11904: 0xAF44, - 28021 - 11904: 0xD268, - 28022 - 11904: 0xD248, - 28023 - 11904: 0xAEFC, - 28024 - 11904: 0xAEFB, - 28025 - 11904: 0xAF48, - 28026 - 11904: 0xD245, - 28027 - 11904: 0xD266, - 28028 - 11904: 0xD25A, - 28029 - 11904: 0xD267, - 28030 - 11904: 0xD261, - 28031 - 11904: 0xD253, - 28032 - 11904: 0xD262, - 28033 - 11904: 0x8DDA, - 28034 - 11904: 0xD25C, - 28035 - 11904: 0xD265, - 28036 - 11904: 0xD263, - 28037 - 11904: 0xAF49, - 28038 - 11904: 0xD254, - 28039 - 11904: 0xAEF9, - 28040 - 11904: 0xAEF8, - 28041 - 11904: 0xAF41, - 28042 - 11904: 0xAF47, - 28043 - 11904: 0xD260, - 28044 - 11904: 0xAF46, - 28045 - 11904: 0xD251, - 28046 - 11904: 0xB243, - 28047 - 11904: 0x9C5A, - 28048 - 11904: 0xD269, - 28049 - 11904: 0xD250, - 28050 - 11904: 0xD24B, - 28051 - 11904: 0xAEFE, - 28052 - 11904: 0xAF4B, - 28053 - 11904: 0xAEF7, - 28054 - 11904: 0xFDAD, - 28055 - 11904: 0xD258, - 28056 - 11904: 0xD25D, - 28068 - 11904: 0x8DDC, - 28069 - 11904: 0x9444, - 28074 - 11904: 0xB265, - 28075 - 11904: 0xD5E1, - 28076 - 11904: 0xD5E5, - 28078 - 11904: 0xB252, - 28079 - 11904: 0xB250, - 28081 - 11904: 0x8DDD, - 28082 - 11904: 0xB247, - 28083 - 11904: 0xD5E3, - 28084 - 11904: 0xD5E2, - 28085 - 11904: 0xB25B, - 28087 - 11904: 0xD5E8, - 28088 - 11904: 0xB255, - 28089 - 11904: 0xA0D6, - 28090 - 11904: 0xD5FA, - 28091 - 11904: 0xD647, - 28092 - 11904: 0xB244, - 28093 - 11904: 0xD5F7, - 28094 - 11904: 0xD5F0, - 28095 - 11904: 0xB267, - 28096 - 11904: 0xD5E0, - 28098 - 11904: 0xD5FC, - 28100 - 11904: 0xB264, - 28101 - 11904: 0xB258, - 28102 - 11904: 0xB263, - 28103 - 11904: 0xB24E, - 28104 - 11904: 0xD5EC, - 28105 - 11904: 0xD5FE, - 28106 - 11904: 0xD5F6, - 28107 - 11904: 0xB24F, - 28108 - 11904: 0xB249, - 28109 - 11904: 0xD645, - 28111 - 11904: 0xD5FD, - 28112 - 11904: 0xD640, - 28113 - 11904: 0xB251, - 28114 - 11904: 0xB259, - 28115 - 11904: 0xD642, - 28116 - 11904: 0xD5EA, - 28117 - 11904: 0xD5FB, - 28118 - 11904: 0xD5EF, - 28119 - 11904: 0xD644, - 28120 - 11904: 0xB25E, - 28121 - 11904: 0xB246, - 28122 - 11904: 0xB25C, - 28123 - 11904: 0xD5F4, - 28124 - 11904: 0xD5F2, - 28125 - 11904: 0xD5F3, - 28126 - 11904: 0xB253, - 28127 - 11904: 0xD5EE, - 28128 - 11904: 0xD5ED, - 28129 - 11904: 0xB248, - 28130 - 11904: 0xD5E7, - 28131 - 11904: 0xD646, - 28132 - 11904: 0xB24A, - 28133 - 11904: 0xD5F1, - 28134 - 11904: 0xB268, - 28136 - 11904: 0xB262, - 28137 - 11904: 0xD5E6, - 28138 - 11904: 0xB25F, - 28139 - 11904: 0xB25D, - 28140 - 11904: 0xB266, - 28141 - 11904: 0xD5F8, - 28142 - 11904: 0xB261, - 28143 - 11904: 0xD252, - 28144 - 11904: 0xD5F9, - 28145 - 11904: 0xB260, - 28146 - 11904: 0xD641, - 28147 - 11904: 0xB245, - 28148 - 11904: 0xD5F5, - 28149 - 11904: 0xB257, - 28150 - 11904: 0xD5E9, - 28151 - 11904: 0xB256, - 28153 - 11904: 0xB254, - 28154 - 11904: 0xB24C, - 28155 - 11904: 0xB24B, - 28156 - 11904: 0xD9E7, - 28157 - 11904: 0xD643, - 28158 - 11904: 0x8C41, - 28160 - 11904: 0xD5EB, - 28162 - 11904: 0x97D5, - 28163 - 11904: 0xD9FC, - 28164 - 11904: 0x944A, - 28165 - 11904: 0xB24D, - 28170 - 11904: 0x944D, - 28175 - 11904: 0x97CB, - 28181 - 11904: 0x8DDE, - 28184 - 11904: 0x8DDF, - 28185 - 11904: 0xB541, - 28186 - 11904: 0xB25A, - 28187 - 11904: 0xB4EE, - 28188 - 11904: 0xD9F6, - 28189 - 11904: 0xFDB8, - 28191 - 11904: 0xD9EA, - 28192 - 11904: 0xB4EB, - 28193 - 11904: 0xB4E7, - 28194 - 11904: 0xDA49, - 28195 - 11904: 0xB4ED, - 28196 - 11904: 0xB4F1, - 28197 - 11904: 0xB4EC, - 28198 - 11904: 0xB4F5, - 28199 - 11904: 0xDA4D, - 28200 - 11904: 0xDA44, - 28201 - 11904: 0x8DE0, - 28202 - 11904: 0xFEF9, - 28203 - 11904: 0xD9F1, - 28204 - 11904: 0xB4FA, - 28205 - 11904: 0xB4F4, - 28206 - 11904: 0xD9FD, - 28207 - 11904: 0xFDBB, - 28208 - 11904: 0xDA4A, - 28209 - 11904: 0xDA43, - 28210 - 11904: 0xB4E8, - 28211 - 11904: 0xD9F7, - 28212 - 11904: 0xB4F7, - 28213 - 11904: 0xDA55, - 28214 - 11904: 0xDA56, - 28216 - 11904: 0xB4E5, - 28217 - 11904: 0xDA48, - 28218 - 11904: 0xB4F9, - 28219 - 11904: 0xD9FB, - 28220 - 11904: 0xD9ED, - 28221 - 11904: 0xD9EE, - 28222 - 11904: 0xB4FD, - 28223 - 11904: 0xD9F2, - 28224 - 11904: 0xD9F9, - 28225 - 11904: 0xD9F3, - 28227 - 11904: 0xB4FB, - 28228 - 11904: 0xB544, - 28229 - 11904: 0xD9EF, - 28230 - 11904: 0xD9E8, - 28231 - 11904: 0xD9E9, - 28233 - 11904: 0xD9EB, - 28234 - 11904: 0xB4EA, - 28235 - 11904: 0xD9F8, - 28237 - 11904: 0xB4F8, - 28238 - 11904: 0xB542, - 28239 - 11904: 0xFDC0, - 28240 - 11904: 0xFCF9, - 28241 - 11904: 0xD9FA, - 28242 - 11904: 0xDA53, - 28243 - 11904: 0xDA4B, - 28244 - 11904: 0xB4E6, - 28245 - 11904: 0xDA51, - 28246 - 11904: 0xB4F2, - 28247 - 11904: 0x8CDD, - 28248 - 11904: 0xB4F0, - 28249 - 11904: 0xFB7E, - 28250 - 11904: 0xDA57, - 28251 - 11904: 0xB4EF, - 28252 - 11904: 0xDA41, - 28253 - 11904: 0xD9F4, - 28254 - 11904: 0xD9FE, - 28255 - 11904: 0xB547, - 28256 - 11904: 0xDA45, - 28257 - 11904: 0xDA42, - 28258 - 11904: 0xD9F0, - 28259 - 11904: 0xB543, - 28260 - 11904: 0xDA4F, - 28261 - 11904: 0xDA4C, - 28262 - 11904: 0xDA54, - 28263 - 11904: 0xB4E9, - 28264 - 11904: 0xDA40, - 28265 - 11904: 0xB546, - 28267 - 11904: 0xDA47, - 28270 - 11904: 0xB4F3, - 28271 - 11904: 0xB4F6, - 28273 - 11904: 0xDA46, - 28274 - 11904: 0xB545, - 28275 - 11904: 0xD9F5, - 28276 - 11904: 0xD5E4, - 28278 - 11904: 0x92B3, - 28279 - 11904: 0xDA50, - 28280 - 11904: 0xDA4E, - 28281 - 11904: 0xDA52, - 28284 - 11904: 0xFDAF, - 28294 - 11904: 0x8DE1, - 28296 - 11904: 0xD9EC, - 28297 - 11904: 0xB540, - 28299 - 11904: 0x95D3, - 28301 - 11904: 0xDE61, - 28302 - 11904: 0xDE60, - 28303 - 11904: 0xDE46, - 28304 - 11904: 0xB7BD, - 28306 - 11904: 0xDE5F, - 28307 - 11904: 0xDE49, - 28308 - 11904: 0xDE4A, - 28310 - 11904: 0xB7C7, - 28311 - 11904: 0xDE68, - 28312 - 11904: 0xB7C2, - 28313 - 11904: 0xDE5E, - 28314 - 11904: 0x89C1, - 28315 - 11904: 0xDE43, - 28316 - 11904: 0xB7C8, - 28317 - 11904: 0xB7BE, - 28318 - 11904: 0xDE52, - 28319 - 11904: 0xDE48, - 28320 - 11904: 0xDE4B, - 28321 - 11904: 0xDE63, - 28322 - 11904: 0xB7B8, - 28323 - 11904: 0xDE6A, - 28324 - 11904: 0xDE62, - 28325 - 11904: 0xB7C1, - 28326 - 11904: 0xDE57, - 28327 - 11904: 0xB7CC, - 28330 - 11904: 0xB7CB, - 28331 - 11904: 0xB7C5, - 28334 - 11904: 0xDE69, - 28335 - 11904: 0xB7B9, - 28336 - 11904: 0xDE55, - 28337 - 11904: 0xDE4C, - 28338 - 11904: 0xDE59, - 28339 - 11904: 0xDE65, - 28340 - 11904: 0xB7CD, - 28341 - 11904: 0xFD68, - 28342 - 11904: 0xB7BB, - 28343 - 11904: 0xDE54, - 28344 - 11904: 0x9CB7, - 28345 - 11904: 0xDE4D, - 28346 - 11904: 0xB7C4, - 28347 - 11904: 0x8DE3, - 28348 - 11904: 0xB7C3, - 28349 - 11904: 0xDE50, - 28350 - 11904: 0xDE5A, - 28351 - 11904: 0xDE64, - 28352 - 11904: 0xDE47, - 28353 - 11904: 0xDE51, - 28354 - 11904: 0xB7BC, - 28355 - 11904: 0xDE5B, - 28356 - 11904: 0xB7C9, - 28357 - 11904: 0xB7C0, - 28358 - 11904: 0xDE4E, - 28359 - 11904: 0xB7BF, - 28360 - 11904: 0xDE45, - 28361 - 11904: 0xDE53, - 28362 - 11904: 0xDE67, - 28363 - 11904: 0xB4FE, - 28364 - 11904: 0xBAB0, - 28365 - 11904: 0xDE56, - 28366 - 11904: 0xE26C, - 28367 - 11904: 0xDE58, - 28368 - 11904: 0xDE66, - 28369 - 11904: 0xB7C6, - 28370 - 11904: 0xDE4F, - 28371 - 11904: 0xB7BA, - 28372 - 11904: 0xB7CA, - 28373 - 11904: 0xBCF0, - 28374 - 11904: 0xDE44, - 28376 - 11904: 0xDE5D, - 28377 - 11904: 0xFAC0, - 28378 - 11904: 0x8DE5, - 28379 - 11904: 0xFA64, - 28380 - 11904: 0xDE5C, - 28381 - 11904: 0x8947, - 28386 - 11904: 0x8DE4, - 28392 - 11904: 0x8DE7, - 28393 - 11904: 0x8DE8, - 28395 - 11904: 0xE2AA, - 28396 - 11904: 0xBAAD, - 28397 - 11904: 0xE27D, - 28398 - 11904: 0xE2A4, - 28399 - 11904: 0xBAA2, - 28401 - 11904: 0xE26E, - 28402 - 11904: 0xBAAF, - 28404 - 11904: 0xBA77, - 28405 - 11904: 0xE26D, - 28406 - 11904: 0xE2B0, - 28407 - 11904: 0xBAB1, - 28408 - 11904: 0xE271, - 28409 - 11904: 0xE2A3, - 28410 - 11904: 0xFDC7, - 28411 - 11904: 0xE273, - 28412 - 11904: 0xE2B3, - 28413 - 11904: 0xE2AF, - 28414 - 11904: 0xBA75, - 28415 - 11904: 0xBAA1, - 28416 - 11904: 0xE653, - 28417 - 11904: 0xBAAE, - 28418 - 11904: 0xBA7D, - 28419 - 11904: 0xE26F, - 28420 - 11904: 0xFDB0, - 28421 - 11904: 0xE2AE, - 28422 - 11904: 0xBAA3, - 28423 - 11904: 0xE2AB, - 28424 - 11904: 0xE2B8, - 28425 - 11904: 0xE275, - 28426 - 11904: 0xE27E, - 28427 - 11904: 0x9445, - 28428 - 11904: 0x97D6, - 28429 - 11904: 0xE2B6, - 28430 - 11904: 0xE2AC, - 28431 - 11904: 0xBA7C, - 28434 - 11904: 0xE27C, - 28435 - 11904: 0xBA76, - 28436 - 11904: 0xBA74, - 28437 - 11904: 0xBAA8, - 28438 - 11904: 0xFCC6, - 28439 - 11904: 0x9844, - 28440 - 11904: 0xE27A, - 28441 - 11904: 0xE277, - 28442 - 11904: 0xE278, - 28444 - 11904: 0xE2B2, - 28446 - 11904: 0xE2B7, - 28447 - 11904: 0xE2B5, - 28448 - 11904: 0xBA7A, - 28449 - 11904: 0xE2B9, - 28450 - 11904: 0xBA7E, - 28451 - 11904: 0xBAA7, - 28452 - 11904: 0x8DE9, - 28453 - 11904: 0xE270, - 28454 - 11904: 0xE5FA, - 28455 - 11904: 0xE279, - 28457 - 11904: 0xBA78, - 28458 - 11904: 0xBAAC, - 28459 - 11904: 0xBAA9, - 28460 - 11904: 0xBA7B, - 28461 - 11904: 0xE2A5, - 28462 - 11904: 0xE274, - 28463 - 11904: 0xBAAA, - 28464 - 11904: 0xE2A7, - 28465 - 11904: 0xBAA4, - 28466 - 11904: 0xBAA6, - 28467 - 11904: 0xBA73, - 28468 - 11904: 0x8DEA, - 28469 - 11904: 0xE2A9, - 28470 - 11904: 0xE2A1, - 28471 - 11904: 0xE272, - 28472 - 11904: 0xBAA5, - 28473 - 11904: 0xE2B1, - 28474 - 11904: 0xE2B4, - 28475 - 11904: 0xE27B, - 28476 - 11904: 0xE2A8, - 28477 - 11904: 0xFE50, - 28478 - 11904: 0xBA79, - 28479 - 11904: 0xBCDF, - 28480 - 11904: 0xE2A6, - 28481 - 11904: 0xE5F9, - 28483 - 11904: 0xE2AD, - 28484 - 11904: 0xFDCC, - 28494 - 11904: 0xE276, - 28495 - 11904: 0xE644, - 28496 - 11904: 0xE64E, - 28497 - 11904: 0xBCE2, - 28498 - 11904: 0xE64D, - 28499 - 11904: 0xE659, - 28500 - 11904: 0xBCE4, - 28501 - 11904: 0xE64B, - 28502 - 11904: 0x9DA7, - 28503 - 11904: 0xE64F, - 28504 - 11904: 0xBCEF, - 28506 - 11904: 0xE646, - 28507 - 11904: 0xBCE7, - 28508 - 11904: 0xFDCD, - 28509 - 11904: 0xE652, - 28510 - 11904: 0xE9F0, - 28511 - 11904: 0xBCF3, - 28512 - 11904: 0xBCF2, - 28513 - 11904: 0xE654, - 28514 - 11904: 0xE643, - 28515 - 11904: 0xE65E, - 28516 - 11904: 0xBCED, - 28518 - 11904: 0xBCE3, - 28519 - 11904: 0xE657, - 28521 - 11904: 0xE65B, - 28522 - 11904: 0xE660, - 28523 - 11904: 0xE655, - 28524 - 11904: 0xE649, - 28525 - 11904: 0xBCE6, - 28526 - 11904: 0xBCE9, - 28527 - 11904: 0xBCF1, - 28528 - 11904: 0xBCEC, - 28530 - 11904: 0xE64C, - 28531 - 11904: 0xE2A2, - 28532 - 11904: 0xFDCF, - 28534 - 11904: 0xE648, - 28535 - 11904: 0xE65F, - 28536 - 11904: 0xBCE8, - 28537 - 11904: 0x95D2, - 28538 - 11904: 0xBCEB, - 28539 - 11904: 0xE661, - 28540 - 11904: 0xBCE0, - 28541 - 11904: 0xE656, - 28542 - 11904: 0xE5FB, - 28543 - 11904: 0xE65C, - 28544 - 11904: 0xC0DF, - 28545 - 11904: 0x8DED, - 28546 - 11904: 0xE64A, - 28548 - 11904: 0xBCE1, - 28549 - 11904: 0xE645, - 28550 - 11904: 0xBCE5, - 28551 - 11904: 0xE5FC, - 28552 - 11904: 0xBAAB, - 28553 - 11904: 0xE641, - 28554 - 11904: 0xFCBA, - 28555 - 11904: 0xE65A, - 28556 - 11904: 0xE642, - 28557 - 11904: 0xE640, - 28558 - 11904: 0xBCEA, - 28560 - 11904: 0xE658, - 28562 - 11904: 0xE5FE, - 28563 - 11904: 0xE651, - 28564 - 11904: 0xE650, - 28565 - 11904: 0xE65D, - 28566 - 11904: 0xE647, - 28567 - 11904: 0xBCEE, - 28573 - 11904: 0xFDC5, - 28574 - 11904: 0xE9F3, - 28575 - 11904: 0xFDD2, - 28576 - 11904: 0xBF49, - 28577 - 11904: 0xBEFE, - 28578 - 11904: 0xEA40, - 28579 - 11904: 0xE9EB, - 28580 - 11904: 0xBF41, - 28581 - 11904: 0xE9F7, - 28582 - 11904: 0xBF48, - 28583 - 11904: 0xBF43, - 28584 - 11904: 0xE9F5, - 28585 - 11904: 0xED4F, - 28586 - 11904: 0xE9FB, - 28587 - 11904: 0xEA42, - 28588 - 11904: 0xE9FA, - 28589 - 11904: 0xE9E9, - 28590 - 11904: 0xE9F8, - 28591 - 11904: 0xEA44, - 28592 - 11904: 0xEA46, - 28593 - 11904: 0xBEFD, - 28594 - 11904: 0xEA45, - 28595 - 11904: 0xBF44, - 28596 - 11904: 0xBF4A, - 28597 - 11904: 0x9CDC, - 28598 - 11904: 0xBF47, - 28600 - 11904: 0xE9FE, - 28601 - 11904: 0xBF46, - 28602 - 11904: 0xE9F9, - 28603 - 11904: 0x95CF, - 28604 - 11904: 0xE9ED, - 28605 - 11904: 0xE9F2, - 28606 - 11904: 0x8DEE, - 28607 - 11904: 0xE9FD, - 28608 - 11904: 0xBF45, - 28609 - 11904: 0xBF42, - 28610 - 11904: 0xBEFC, - 28611 - 11904: 0xBF40, - 28612 - 11904: 0xE9F1, - 28614 - 11904: 0xE5FD, - 28615 - 11904: 0xE9EC, - 28616 - 11904: 0xE9EF, - 28617 - 11904: 0xEA41, - 28618 - 11904: 0xE9F4, - 28619 - 11904: 0xE9EA, - 28620 - 11904: 0xED4E, - 28621 - 11904: 0xEA43, - 28622 - 11904: 0xE9EE, - 28623 - 11904: 0xE9FC, - 28627 - 11904: 0xFDD4, - 28628 - 11904: 0xED51, - 28629 - 11904: 0xC0E3, - 28632 - 11904: 0xC0D7, - 28633 - 11904: 0x96EC, - 28634 - 11904: 0x96EB, - 28635 - 11904: 0xC0DB, - 28636 - 11904: 0xED53, - 28637 - 11904: 0xED59, - 28638 - 11904: 0xED57, - 28639 - 11904: 0xC0D9, - 28640 - 11904: 0xC0DA, - 28641 - 11904: 0xC0E1, - 28642 - 11904: 0xED5A, - 28643 - 11904: 0xED52, - 28644 - 11904: 0xC0DC, - 28646 - 11904: 0xED56, - 28647 - 11904: 0xED55, - 28648 - 11904: 0xED5B, - 28649 - 11904: 0xC0E2, - 28651 - 11904: 0xC0DD, - 28652 - 11904: 0xC0E0, - 28653 - 11904: 0xED54, - 28654 - 11904: 0xC0E4, - 28655 - 11904: 0xC0DE, - 28656 - 11904: 0xC0E5, - 28657 - 11904: 0xC0D8, - 28658 - 11904: 0xED58, - 28660 - 11904: 0xED50, - 28662 - 11904: 0x90B6, - 28663 - 11904: 0xEFF7, - 28664 - 11904: 0xFDC3, - 28666 - 11904: 0xC271, - 28667 - 11904: 0xEFF4, - 28668 - 11904: 0xEFF6, - 28670 - 11904: 0xC26F, - 28671 - 11904: 0xEFF2, - 28672 - 11904: 0xEFF3, - 28673 - 11904: 0xEFEE, - 28675 - 11904: 0x98AB, - 28676 - 11904: 0xE9F6, - 28677 - 11904: 0xEFEF, - 28678 - 11904: 0xC270, - 28679 - 11904: 0xEFEB, - 28681 - 11904: 0xC26D, - 28682 - 11904: 0xEFF8, - 28683 - 11904: 0xC26E, - 28684 - 11904: 0xEFEC, - 28685 - 11904: 0xEFED, - 28686 - 11904: 0xEFF1, - 28687 - 11904: 0xC273, - 28689 - 11904: 0xC272, - 28692 - 11904: 0xEFF0, - 28693 - 11904: 0xC378, - 28694 - 11904: 0xF25F, - 28695 - 11904: 0xF265, - 28696 - 11904: 0xC379, - 28697 - 11904: 0xF25C, - 28698 - 11904: 0xC376, - 28699 - 11904: 0xC373, - 28700 - 11904: 0xF267, - 28701 - 11904: 0xC377, - 28702 - 11904: 0x96EE, - 28703 - 11904: 0xC374, - 28704 - 11904: 0xF25E, - 28705 - 11904: 0xF261, - 28706 - 11904: 0xF262, - 28707 - 11904: 0xF263, - 28708 - 11904: 0xF266, - 28710 - 11904: 0xEFF5, - 28711 - 11904: 0xF25D, - 28712 - 11904: 0xC375, - 28713 - 11904: 0xF264, - 28714 - 11904: 0xF268, - 28715 - 11904: 0xF260, - 28716 - 11904: 0x8DF4, - 28719 - 11904: 0xF45D, - 28720 - 11904: 0xC46A, - 28721 - 11904: 0xF460, - 28722 - 11904: 0xC46B, - 28723 - 11904: 0xF468, - 28724 - 11904: 0xF45F, - 28725 - 11904: 0xF45C, - 28727 - 11904: 0xF45E, - 28728 - 11904: 0xF462, - 28729 - 11904: 0xF465, - 28730 - 11904: 0xF464, - 28731 - 11904: 0xF467, - 28732 - 11904: 0xF45B, - 28734 - 11904: 0xC469, - 28735 - 11904: 0xF463, - 28736 - 11904: 0xF466, - 28737 - 11904: 0xF469, - 28738 - 11904: 0xF461, - 28739 - 11904: 0xF5D3, - 28740 - 11904: 0xF5D4, - 28741 - 11904: 0xF5D8, - 28742 - 11904: 0xF5D9, - 28744 - 11904: 0xF5D6, - 28745 - 11904: 0xF5D7, - 28746 - 11904: 0xF5D5, - 28747 - 11904: 0xFDE0, - 28748 - 11904: 0xC4E9, - 28749 - 11904: 0x8C67, - 28752 - 11904: 0x8DF6, - 28753 - 11904: 0xC578, - 28754 - 11904: 0xF6EB, - 28756 - 11904: 0x8DF7, - 28757 - 11904: 0xF6E8, - 28758 - 11904: 0xF6E9, - 28759 - 11904: 0xF6EA, - 28760 - 11904: 0xC579, - 28762 - 11904: 0xF7E5, - 28763 - 11904: 0xF7E4, - 28764 - 11904: 0x8FFA, - 28765 - 11904: 0xF8AF, - 28766 - 11904: 0xC5F4, - 28767 - 11904: 0xF8AD, - 28768 - 11904: 0xF8B0, - 28769 - 11904: 0xF8AE, - 28770 - 11904: 0xF8F5, - 28771 - 11904: 0xC657, - 28772 - 11904: 0xC665, - 28773 - 11904: 0xF9A3, - 28774 - 11904: 0xF96C, - 28775 - 11904: 0x97D0, - 28776 - 11904: 0xF9A2, - 28777 - 11904: 0xF9D0, - 28778 - 11904: 0xF9D1, - 28779 - 11904: 0xA4F5, - 28780 - 11904: 0x8BD2, - 28782 - 11904: 0x87DE, - 28783 - 11904: 0x8DF8, - 28784 - 11904: 0xA6C7, - 28785 - 11904: 0xCA41, - 28788 - 11904: 0xCB5E, - 28789 - 11904: 0x90D9, - 28790 - 11904: 0xA85F, - 28791 - 11904: 0x8C47, - 28792 - 11904: 0xA862, - 28793 - 11904: 0xFAF0, - 28794 - 11904: 0xCB5F, - 28796 - 11904: 0xA860, - 28797 - 11904: 0xA861, - 28798 - 11904: 0xFDE1, - 28799 - 11904: 0x8DF9, - 28801 - 11904: 0xFDE3, - 28802 - 11904: 0xCD58, - 28803 - 11904: 0xCD5A, - 28804 - 11904: 0xCD55, - 28805 - 11904: 0xCD52, - 28806 - 11904: 0xCD54, - 28809 - 11904: 0x8DFA, - 28810 - 11904: 0xAAA4, - 28811 - 11904: 0xFB63, - 28814 - 11904: 0xAAA2, - 28815 - 11904: 0x90A6, - 28817 - 11904: 0xCD56, - 28818 - 11904: 0xAAA3, - 28819 - 11904: 0xCD53, - 28820 - 11904: 0xCD50, - 28821 - 11904: 0xAAA1, - 28822 - 11904: 0xCD57, - 28824 - 11904: 0xCD51, - 28825 - 11904: 0xAAA5, - 28826 - 11904: 0xCD59, - 28831 - 11904: 0xCFAF, - 28832 - 11904: 0x9970, - 28833 - 11904: 0xCFB3, - 28835 - 11904: 0x91EB, - 28836 - 11904: 0xACB7, - 28837 - 11904: 0x9770, - 28838 - 11904: 0x986F, - 28839 - 11904: 0xFDE2, - 28841 - 11904: 0xCFB6, - 28843 - 11904: 0xACAF, - 28844 - 11904: 0xACB2, - 28845 - 11904: 0xACB4, - 28846 - 11904: 0xACB6, - 28847 - 11904: 0xACB3, - 28848 - 11904: 0xCFB2, - 28849 - 11904: 0xCFB1, - 28851 - 11904: 0xACB1, - 28852 - 11904: 0xCFB4, - 28853 - 11904: 0xCFB5, - 28855 - 11904: 0xCFAE, - 28856 - 11904: 0xACB5, - 28857 - 11904: 0x98F2, - 28858 - 11904: 0xACB0, - 28859 - 11904: 0x9AFC, - 28860 - 11904: 0x896C, - 28861 - 11904: 0xFDFD, - 28862 - 11904: 0xCFB0, - 28864 - 11904: 0x995E, - 28868 - 11904: 0x95BD, - 28869 - 11904: 0xD277, - 28870 - 11904: 0xD278, - 28871 - 11904: 0xD279, - 28872 - 11904: 0xAF50, - 28874 - 11904: 0xAF4C, - 28875 - 11904: 0xD26E, - 28876 - 11904: 0xFDE4, - 28877 - 11904: 0xD276, - 28878 - 11904: 0xD27B, - 28879 - 11904: 0xAF51, - 28880 - 11904: 0x91E6, - 28881 - 11904: 0xD26C, - 28882 - 11904: 0xD272, - 28883 - 11904: 0xD26B, - 28884 - 11904: 0xD275, - 28885 - 11904: 0xFDE5, - 28886 - 11904: 0xFDE6, - 28887 - 11904: 0xD271, - 28888 - 11904: 0xAF4D, - 28889 - 11904: 0xAF4F, - 28890 - 11904: 0xD27A, - 28892 - 11904: 0xD26A, - 28893 - 11904: 0xD26D, - 28894 - 11904: 0xD273, - 28895 - 11904: 0xFDE7, - 28896 - 11904: 0xD274, - 28897 - 11904: 0xD27C, - 28898 - 11904: 0xD270, - 28900 - 11904: 0xAF4E, - 28911 - 11904: 0xB26D, - 28912 - 11904: 0xD64E, - 28913 - 11904: 0x9454, - 28915 - 11904: 0xD650, - 28916 - 11904: 0xD64C, - 28917 - 11904: 0x99B8, - 28918 - 11904: 0xD658, - 28919 - 11904: 0xD64A, - 28920 - 11904: 0xD657, - 28921 - 11904: 0xB269, - 28922 - 11904: 0xD648, - 28923 - 11904: 0xDA5B, - 28924 - 11904: 0xD652, - 28925 - 11904: 0xB26C, - 28926 - 11904: 0x97E9, - 28927 - 11904: 0xD653, - 28928 - 11904: 0xD656, - 28930 - 11904: 0xD65A, - 28932 - 11904: 0xD64F, - 28933 - 11904: 0x9346, - 28934 - 11904: 0xD654, - 28937 - 11904: 0xB26A, - 28938 - 11904: 0xB26B, - 28939 - 11904: 0xD659, - 28940 - 11904: 0xD64D, - 28941 - 11904: 0xD649, - 28942 - 11904: 0xD65B, - 28944 - 11904: 0xD651, - 28947 - 11904: 0xD655, - 28951 - 11904: 0xD64B, - 28953 - 11904: 0xB548, - 28954 - 11904: 0xB549, - 28955 - 11904: 0xDA65, - 28956 - 11904: 0xB54F, - 28957 - 11904: 0x9863, - 28958 - 11904: 0xDA59, - 28959 - 11904: 0xDA62, - 28960 - 11904: 0xDA58, - 28961 - 11904: 0xB54C, - 28962 - 11904: 0xDA60, - 28963 - 11904: 0xDA5E, - 28965 - 11904: 0xDA5F, - 28966 - 11904: 0xB54A, - 28968 - 11904: 0xDA63, - 28969 - 11904: 0x95BC, - 28971 - 11904: 0xFDED, - 28972 - 11904: 0xFDF7, - 28974 - 11904: 0xDA5C, - 28975 - 11904: 0xDA5A, - 28976 - 11904: 0xB54B, - 28977 - 11904: 0xDA5D, - 28978 - 11904: 0xDA61, - 28979 - 11904: 0x9870, - 28980 - 11904: 0x96F6, - 28981 - 11904: 0x8EA9, - 28982 - 11904: 0xB54D, - 28986 - 11904: 0xDA64, - 28987 - 11904: 0x9451, - 28990 - 11904: 0x8E43, - 28992 - 11904: 0x8B5A, - 28993 - 11904: 0xDE70, - 28994 - 11904: 0xDE77, - 28995 - 11904: 0xDE79, - 28996 - 11904: 0xDEA1, - 28997 - 11904: 0xFDEE, - 28998 - 11904: 0xB7DA, - 28999 - 11904: 0xDE6B, - 29001 - 11904: 0xB7D2, - 29002 - 11904: 0xFDF0, - 29003 - 11904: 0xDE7A, - 29004 - 11904: 0xB7D7, - 29005 - 11904: 0xDEA2, - 29006 - 11904: 0xB7CE, - 29007 - 11904: 0xFDF4, - 29008 - 11904: 0xDE7D, - 29009 - 11904: 0x9BF5, - 29010 - 11904: 0xDE6D, - 29011 - 11904: 0xDE7E, - 29012 - 11904: 0xDE6C, - 29014 - 11904: 0xB7DC, - 29015 - 11904: 0x8CEE, - 29016 - 11904: 0xDE78, - 29017 - 11904: 0xB7CF, - 29018 - 11904: 0xDEA3, - 29020 - 11904: 0xB7D4, - 29021 - 11904: 0xDE71, - 29022 - 11904: 0xB7D9, - 29023 - 11904: 0xDE7C, - 29024 - 11904: 0xDE6F, - 29025 - 11904: 0xDE76, - 29026 - 11904: 0xDE72, - 29027 - 11904: 0xDE6E, - 29028 - 11904: 0xB7D1, - 29029 - 11904: 0xB7D8, - 29030 - 11904: 0xB7D6, - 29031 - 11904: 0xB7D3, - 29032 - 11904: 0xB7DB, - 29033 - 11904: 0xB7D0, - 29034 - 11904: 0xDE75, - 29035 - 11904: 0x977E, - 29036 - 11904: 0xB7D5, - 29038 - 11904: 0xFDF1, - 29040 - 11904: 0xDE7B, - 29041 - 11904: 0x9BD5, - 29042 - 11904: 0xDE73, - 29043 - 11904: 0x9AC3, - 29045 - 11904: 0x97C8, - 29046 - 11904: 0xA0DB, - 29047 - 11904: 0x91D0, - 29048 - 11904: 0xDE74, - 29050 - 11904: 0x9FE4, - 29051 - 11904: 0xE2C1, - 29052 - 11904: 0x8FDD, - 29053 - 11904: 0xBAB4, - 29054 - 11904: 0x91E9, - 29056 - 11904: 0xE2BD, - 29057 - 11904: 0xE2C3, - 29058 - 11904: 0xE2BF, - 29060 - 11904: 0xBAB6, - 29061 - 11904: 0xE2BE, - 29062 - 11904: 0xE2C2, - 29063 - 11904: 0xE2BA, - 29064 - 11904: 0x98E0, - 29065 - 11904: 0xE2BC, - 29066 - 11904: 0xBAB5, - 29068 - 11904: 0x92CA, - 29070 - 11904: 0x9857, - 29071 - 11904: 0xE2C0, - 29072 - 11904: 0xE2BB, - 29073 - 11904: 0x8C51, - 29074 - 11904: 0xBAB7, - 29076 - 11904: 0xBAB2, - 29078 - 11904: 0xFDEB, - 29079 - 11904: 0xE2C4, - 29080 - 11904: 0x9B49, - 29081 - 11904: 0xBAB3, - 29082 - 11904: 0xE667, - 29083 - 11904: 0xE664, - 29084 - 11904: 0xE670, - 29085 - 11904: 0xE66A, - 29086 - 11904: 0xE66C, - 29087 - 11904: 0xBCF4, - 29088 - 11904: 0xE666, - 29089 - 11904: 0xE66E, - 29090 - 11904: 0x9D76, - 29091 - 11904: 0x9EAF, - 29092 - 11904: 0xE66D, - 29093 - 11904: 0xE66B, - 29095 - 11904: 0xE671, - 29096 - 11904: 0xBCF7, - 29097 - 11904: 0xE668, - 29098 - 11904: 0xE66F, - 29100 - 11904: 0xBCF5, - 29101 - 11904: 0x9CCC, - 29103 - 11904: 0xE663, - 29104 - 11904: 0xE665, - 29105 - 11904: 0xBCF6, - 29106 - 11904: 0xE662, - 29107 - 11904: 0xE672, - 29108 - 11904: 0xFDEA, - 29109 - 11904: 0xE669, - 29111 - 11904: 0x8DF1, - 29112 - 11904: 0xEA4A, - 29113 - 11904: 0xBF51, - 29114 - 11904: 0xFDFB, - 29116 - 11904: 0xEA55, - 29117 - 11904: 0xEA53, - 29118 - 11904: 0xBF4B, - 29119 - 11904: 0xEA49, - 29120 - 11904: 0xEA4C, - 29121 - 11904: 0xEA4D, - 29122 - 11904: 0xEA48, - 29123 - 11904: 0xBF55, - 29124 - 11904: 0xBF56, - 29125 - 11904: 0xEA47, - 29126 - 11904: 0xEA56, - 29127 - 11904: 0xEA51, - 29128 - 11904: 0xBF4F, - 29129 - 11904: 0xBF4C, - 29130 - 11904: 0xEA50, - 29131 - 11904: 0xEA4E, - 29134 - 11904: 0xBF52, - 29135 - 11904: 0xEA52, - 29136 - 11904: 0xBF4D, - 29137 - 11904: 0x8E53, - 29138 - 11904: 0xBF4E, - 29140 - 11904: 0xEA4F, - 29141 - 11904: 0xBF50, - 29142 - 11904: 0xEA4B, - 29144 - 11904: 0xEA54, - 29145 - 11904: 0xBF53, - 29146 - 11904: 0xEA57, - 29147 - 11904: 0xEA58, - 29148 - 11904: 0xBF54, - 29149 - 11904: 0xFACF, - 29151 - 11904: 0xC0E7, - 29152 - 11904: 0xC0EE, - 29153 - 11904: 0xED5C, - 29154 - 11904: 0xED62, - 29156 - 11904: 0xED60, - 29157 - 11904: 0xC0EA, - 29158 - 11904: 0xC0E9, - 29159 - 11904: 0xC0E6, - 29160 - 11904: 0xED5E, - 29163 - 11904: 0x96F9, - 29164 - 11904: 0xC0EC, - 29165 - 11904: 0xC0EB, - 29166 - 11904: 0xC0E8, - 29168 - 11904: 0xED61, - 29169 - 11904: 0xED5D, - 29170 - 11904: 0xED5F, - 29172 - 11904: 0xC0ED, - 29173 - 11904: 0x98BF, - 29174 - 11904: 0x9E49, - 29176 - 11904: 0xC277, - 29177 - 11904: 0xEFFB, - 29179 - 11904: 0xC274, - 29180 - 11904: 0xC275, - 29181 - 11904: 0xEFFD, - 29182 - 11904: 0xC276, - 29183 - 11904: 0xEFFA, - 29184 - 11904: 0x8CA7, - 29185 - 11904: 0xEFF9, - 29186 - 11904: 0xF26C, - 29187 - 11904: 0xEFFC, - 29189 - 11904: 0xF26D, - 29190 - 11904: 0xC37A, - 29191 - 11904: 0xF26B, - 29193 - 11904: 0x9BCA, - 29194 - 11904: 0xF26A, - 29196 - 11904: 0xF269, - 29197 - 11904: 0xC37B, - 29198 - 11904: 0xFDFE, - 29199 - 11904: 0x92DC, - 29200 - 11904: 0xC46C, - 29203 - 11904: 0xF46A, - 29204 - 11904: 0xF46B, - 29205 - 11904: 0xFE41, - 29206 - 11904: 0x91CC, - 29207 - 11904: 0x91E2, - 29209 - 11904: 0xF5DC, - 29210 - 11904: 0xF5DB, - 29211 - 11904: 0xC4EA, - 29213 - 11904: 0xF5DA, - 29214 - 11904: 0xF6EC, - 29215 - 11904: 0xF6ED, - 29218 - 11904: 0xF7E6, - 29219 - 11904: 0xF8B1, - 29220 - 11904: 0xFE44, - 29221 - 11904: 0x875F, - 29222 - 11904: 0xF8F6, - 29223 - 11904: 0xF9BC, - 29224 - 11904: 0xC679, - 29225 - 11904: 0xF9C6, - 29226 - 11904: 0xA4F6, - 29227 - 11904: 0x8BD3, - 29228 - 11904: 0xAAA6, - 29229 - 11904: 0xAAA7, - 29230 - 11904: 0xFE47, - 29232 - 11904: 0xACB8, - 29237 - 11904: 0xC0EF, - 29238 - 11904: 0xA4F7, - 29240 - 11904: 0xAAA8, - 29241 - 11904: 0xAF52, - 29242 - 11904: 0xB7DD, - 29243 - 11904: 0xA4F8, - 29245 - 11904: 0xB26E, - 29246 - 11904: 0xBAB8, - 29247 - 11904: 0xC962, - 29248 - 11904: 0xFE48, - 29249 - 11904: 0xCFB7, - 29250 - 11904: 0xD27D, - 29252 - 11904: 0xE2C5, - 29254 - 11904: 0xC0F0, - 29255 - 11904: 0xA4F9, - 29256 - 11904: 0xAAA9, - 29257 - 11904: 0xCFB8, - 29258 - 11904: 0xCFB9, - 29259 - 11904: 0xDA66, - 29260 - 11904: 0xB550, - 29263 - 11904: 0xDEA4, - 29264 - 11904: 0xA0E4, - 29266 - 11904: 0xB7DE, - 29267 - 11904: 0xE2C6, - 29269 - 11904: 0xFE4B, - 29270 - 11904: 0xBCF8, - 29271 - 11904: 0xFE4C, - 29272 - 11904: 0xC37C, - 29273 - 11904: 0xA4FA, - 29274 - 11904: 0xDA67, - 29275 - 11904: 0xA4FB, - 29276 - 11904: 0x8DBF, - 29277 - 11904: 0xA6C9, - 29278 - 11904: 0xCA42, - 29279 - 11904: 0xA6C8, - 29280 - 11904: 0xA865, - 29281 - 11904: 0xA864, - 29282 - 11904: 0xA863, - 29283 - 11904: 0xCB60, - 29286 - 11904: 0x9E78, - 29287 - 11904: 0xAAAA, - 29289 - 11904: 0xAAAB, - 29290 - 11904: 0xCD5B, - 29292 - 11904: 0xCFBA, - 29294 - 11904: 0xCFBD, - 29295 - 11904: 0xACBA, - 29296 - 11904: 0xCFBB, - 29298 - 11904: 0xACB9, - 29299 - 11904: 0xCFBC, - 29300 - 11904: 0xACBB, - 29302 - 11904: 0xD2A2, - 29303 - 11904: 0xD2A1, - 29304 - 11904: 0xD27E, - 29305 - 11904: 0xAF53, - 29307 - 11904: 0xD65D, - 29308 - 11904: 0xD65E, - 29309 - 11904: 0xB26F, - 29310 - 11904: 0xD65C, - 29311 - 11904: 0xD65F, - 29312 - 11904: 0xB552, - 29313 - 11904: 0xB270, - 29314 - 11904: 0xFE51, - 29316 - 11904: 0xB551, - 29317 - 11904: 0xDA6B, - 29318 - 11904: 0xDA6A, - 29319 - 11904: 0x9456, - 29320 - 11904: 0xDA68, - 29321 - 11904: 0xDA69, - 29323 - 11904: 0xDA6C, - 29324 - 11904: 0xDEA6, - 29325 - 11904: 0xDEA5, - 29326 - 11904: 0xDEA9, - 29327 - 11904: 0x9D61, - 29328 - 11904: 0xDEA8, - 29329 - 11904: 0xDEA7, - 29330 - 11904: 0xBAB9, - 29331 - 11904: 0xE2C9, - 29332 - 11904: 0x9457, - 29333 - 11904: 0xE2C8, - 29334 - 11904: 0xBABA, - 29335 - 11904: 0xE2C7, - 29336 - 11904: 0xE673, - 29338 - 11904: 0xE674, - 29339 - 11904: 0xBCF9, - 29341 - 11904: 0xEA59, - 29342 - 11904: 0xEA5A, - 29343 - 11904: 0x9966, - 29345 - 11904: 0xF272, - 29346 - 11904: 0xC37D, - 29347 - 11904: 0xF271, - 29348 - 11904: 0xF270, - 29349 - 11904: 0xF26E, - 29350 - 11904: 0xF26F, - 29351 - 11904: 0xC4EB, - 29352 - 11904: 0xF46C, - 29353 - 11904: 0xF6EE, - 29354 - 11904: 0xF8F7, - 29356 - 11904: 0xA4FC, - 29357 - 11904: 0x8BD5, - 29358 - 11904: 0xC9A5, - 29359 - 11904: 0xA5C7, - 29360 - 11904: 0xC9A6, - 29362 - 11904: 0xA069, - 29364 - 11904: 0xCA43, - 29365 - 11904: 0xCA44, - 29370 - 11904: 0xCB66, - 29373 - 11904: 0xCB62, - 29375 - 11904: 0xCB61, - 29376 - 11904: 0xAAAC, - 29377 - 11904: 0xCB65, - 29378 - 11904: 0xA867, - 29379 - 11904: 0xCB63, - 29380 - 11904: 0xA866, - 29381 - 11904: 0xCB67, - 29382 - 11904: 0xCB64, - 29385 - 11904: 0xCD5F, - 29386 - 11904: 0xCFBE, - 29387 - 11904: 0xCD5D, - 29388 - 11904: 0xCD64, - 29389 - 11904: 0x98B4, - 29390 - 11904: 0xAAAD, - 29392 - 11904: 0xAAB0, - 29393 - 11904: 0xCD65, - 29394 - 11904: 0xCD61, - 29396 - 11904: 0xCD62, - 29398 - 11904: 0xCD5C, - 29399 - 11904: 0xAAAF, - 29400 - 11904: 0xCD5E, - 29401 - 11904: 0xAAAE, - 29402 - 11904: 0xCD63, - 29404 - 11904: 0xCD60, - 29407 - 11904: 0xCFC2, - 29408 - 11904: 0xACBD, - 29409 - 11904: 0xACBE, - 29410 - 11904: 0xA049, - 29411 - 11904: 0xCFC5, - 29412 - 11904: 0xCFBF, - 29414 - 11904: 0xCFC4, - 29416 - 11904: 0xCFC0, - 29417 - 11904: 0xACBC, - 29418 - 11904: 0xCFC3, - 29419 - 11904: 0xCFC1, - 29427 - 11904: 0xD2A8, - 29428 - 11904: 0xD2A5, - 29430 - 11904: 0xD2A7, - 29431 - 11904: 0xAF58, - 29432 - 11904: 0xAF57, - 29433 - 11904: 0xAF55, - 29434 - 11904: 0xD2A4, - 29435 - 11904: 0xD2A9, - 29436 - 11904: 0xAF54, - 29437 - 11904: 0xAF56, - 29438 - 11904: 0xD2A6, - 29439 - 11904: 0xD667, - 29440 - 11904: 0xD2A3, - 29441 - 11904: 0xD2AA, - 29442 - 11904: 0xA04C, - 29444 - 11904: 0x9E65, - 29447 - 11904: 0xD662, - 29448 - 11904: 0xD666, - 29450 - 11904: 0xD665, - 29451 - 11904: 0xDA6E, - 29452 - 11904: 0xDA79, - 29455 - 11904: 0xD668, - 29456 - 11904: 0x98B5, - 29457 - 11904: 0xD663, - 29458 - 11904: 0xDA6D, - 29459 - 11904: 0xB274, - 29462 - 11904: 0xB273, - 29463 - 11904: 0xD661, - 29464 - 11904: 0xD664, - 29465 - 11904: 0xB275, - 29467 - 11904: 0xB272, - 29468 - 11904: 0xB271, - 29469 - 11904: 0xD660, - 29470 - 11904: 0xD669, - 29474 - 11904: 0xDA70, - 29475 - 11904: 0xDA77, - 29477 - 11904: 0xB554, - 29478 - 11904: 0xDA76, - 29479 - 11904: 0xDA73, - 29480 - 11904: 0xFE58, - 29481 - 11904: 0xB556, - 29482 - 11904: 0xFE52, - 29483 - 11904: 0xFE53, - 29484 - 11904: 0xA065, - 29485 - 11904: 0xDA75, - 29486 - 11904: 0xFE59, - 29488 - 11904: 0xDA6F, - 29489 - 11904: 0xDA71, - 29490 - 11904: 0xDA74, - 29491 - 11904: 0xDA72, - 29492 - 11904: 0xB555, - 29493 - 11904: 0xDA78, - 29494 - 11904: 0xB553, - 29495 - 11904: 0xB7DF, - 29496 - 11904: 0x98B7, - 29497 - 11904: 0x98B8, - 29498 - 11904: 0xDEAD, - 29499 - 11904: 0xDEAC, - 29500 - 11904: 0xDEAA, - 29502 - 11904: 0xB7E2, - 29503 - 11904: 0xB7E1, - 29504 - 11904: 0xDEAE, - 29505 - 11904: 0x98BA, - 29506 - 11904: 0xDEAB, - 29507 - 11904: 0xE2CA, - 29508 - 11904: 0xBABB, - 29509 - 11904: 0xB7E0, - 29512 - 11904: 0x98BB, - 29513 - 11904: 0xDEB0, - 29514 - 11904: 0xDEAF, - 29516 - 11904: 0xE2CD, - 29517 - 11904: 0xE2CB, - 29518 - 11904: 0xBCFA, - 29519 - 11904: 0x9FBC, - 29520 - 11904: 0xBABC, - 29521 - 11904: 0xE2CC, - 29522 - 11904: 0xE676, - 29527 - 11904: 0xBCFB, - 29528 - 11904: 0xE675, - 29529 - 11904: 0xE67E, - 29530 - 11904: 0xE67D, - 29531 - 11904: 0xE67B, - 29533 - 11904: 0xE67A, - 29534 - 11904: 0xE677, - 29535 - 11904: 0xE678, - 29536 - 11904: 0xE679, - 29537 - 11904: 0xE67C, - 29538 - 11904: 0xE6A1, - 29541 - 11904: 0xEA5F, - 29542 - 11904: 0xEA5C, - 29543 - 11904: 0xEA5D, - 29544 - 11904: 0xBF57, - 29545 - 11904: 0xEA5B, - 29546 - 11904: 0xEA61, - 29547 - 11904: 0xEA60, - 29548 - 11904: 0xEA5E, - 29550 - 11904: 0xED64, - 29551 - 11904: 0xED65, - 29552 - 11904: 0xC0F1, - 29553 - 11904: 0xA04A, - 29554 - 11904: 0xC0F2, - 29555 - 11904: 0xED63, - 29556 - 11904: 0x9EC7, - 29557 - 11904: 0xC279, - 29558 - 11904: 0xEFFE, - 29559 - 11904: 0xC278, - 29560 - 11904: 0xC37E, - 29562 - 11904: 0xC3A1, - 29563 - 11904: 0xC46D, - 29564 - 11904: 0xF46E, - 29565 - 11904: 0xF46D, - 29566 - 11904: 0xF5DD, - 29567 - 11904: 0xF6EF, - 29568 - 11904: 0xC57A, - 29569 - 11904: 0xF7E8, - 29570 - 11904: 0xF7E7, - 29571 - 11904: 0xF7E9, - 29572 - 11904: 0xA5C8, - 29573 - 11904: 0xCFC6, - 29574 - 11904: 0xAF59, - 29575 - 11904: 0xB276, - 29576 - 11904: 0xD66A, - 29577 - 11904: 0xA5C9, - 29578 - 11904: 0xC9A7, - 29579 - 11904: 0xA4FD, - 29580 - 11904: 0x8CA9, - 29582 - 11904: 0xCA45, - 29583 - 11904: 0x98AE, - 29586 - 11904: 0xCB6C, - 29587 - 11904: 0xCB6A, - 29588 - 11904: 0xCB6B, - 29589 - 11904: 0xCB68, - 29590 - 11904: 0xA868, - 29591 - 11904: 0xCB69, - 29592 - 11904: 0x92D6, - 29596 - 11904: 0xFAE1, - 29597 - 11904: 0xCD6D, - 29598 - 11904: 0x91D4, - 29599 - 11904: 0xAAB3, - 29600 - 11904: 0xCD6B, - 29601 - 11904: 0xCD67, - 29602 - 11904: 0xCD6A, - 29604 - 11904: 0xCD66, - 29605 - 11904: 0xAAB5, - 29606 - 11904: 0xCD69, - 29607 - 11904: 0xFADE, - 29608 - 11904: 0xAAB2, - 29609 - 11904: 0xAAB1, - 29610 - 11904: 0xFE5B, - 29611 - 11904: 0xAAB4, - 29612 - 11904: 0xCD6C, - 29613 - 11904: 0xCD68, - 29618 - 11904: 0xACC2, - 29619 - 11904: 0xACC5, - 29620 - 11904: 0xCFCE, - 29621 - 11904: 0xCFCD, - 29622 - 11904: 0xCFCC, - 29623 - 11904: 0xACBF, - 29624 - 11904: 0xCFD5, - 29625 - 11904: 0xCFCB, - 29626 - 11904: 0x8C53, - 29627 - 11904: 0xACC1, - 29628 - 11904: 0xD2AF, - 29630 - 11904: 0xCFD2, - 29631 - 11904: 0xCFD0, - 29632 - 11904: 0xACC4, - 29634 - 11904: 0xCFC8, - 29635 - 11904: 0xCFD3, - 29636 - 11904: 0x87BF, - 29637 - 11904: 0xCFCA, - 29638 - 11904: 0xCFD4, - 29639 - 11904: 0xCFD1, - 29640 - 11904: 0xCFC9, - 29641 - 11904: 0xFE5E, - 29642 - 11904: 0xACC0, - 29643 - 11904: 0xCFD6, - 29644 - 11904: 0xCFC7, - 29645 - 11904: 0xACC3, - 29646 - 11904: 0xFBD7, - 29647 - 11904: 0xFE5A, - 29648 - 11904: 0x94C5, - 29650 - 11904: 0xD2B4, - 29651 - 11904: 0xD2AB, - 29652 - 11904: 0xD2B6, - 29653 - 11904: 0xFACA, - 29654 - 11904: 0xD2AE, - 29655 - 11904: 0xD2B9, - 29656 - 11904: 0xD2BA, - 29657 - 11904: 0xD2AC, - 29658 - 11904: 0xD2B8, - 29659 - 11904: 0xD2B5, - 29660 - 11904: 0xD2B3, - 29661 - 11904: 0xD2B7, - 29662 - 11904: 0xAF5F, - 29664 - 11904: 0xAF5D, - 29665 - 11904: 0x98C1, - 29666 - 11904: 0x975C, - 29667 - 11904: 0xD2B1, - 29668 - 11904: 0xFE74, - 29669 - 11904: 0xD2AD, - 29670 - 11904: 0x9773, - 29671 - 11904: 0xD2B0, - 29672 - 11904: 0xD2BB, - 29673 - 11904: 0xD2B2, - 29674 - 11904: 0xAF5E, - 29675 - 11904: 0xCFCF, - 29677 - 11904: 0xAF5A, - 29678 - 11904: 0xAF5C, - 29679 - 11904: 0xFA46, - 29683 - 11904: 0x9764, - 29684 - 11904: 0xD678, - 29685 - 11904: 0xD66D, - 29686 - 11904: 0xD66B, - 29687 - 11904: 0xFE68, - 29688 - 11904: 0xD66C, - 29689 - 11904: 0x964E, - 29690 - 11904: 0xD673, - 29691 - 11904: 0x9765, - 29692 - 11904: 0xD674, - 29693 - 11904: 0xD670, - 29694 - 11904: 0xB27B, - 29695 - 11904: 0xD675, - 29696 - 11904: 0xD672, - 29697 - 11904: 0xD66F, - 29698 - 11904: 0x8C5A, - 29699 - 11904: 0xB279, - 29700 - 11904: 0xD66E, - 29701 - 11904: 0xB277, - 29702 - 11904: 0xB27A, - 29703 - 11904: 0xD671, - 29704 - 11904: 0xD679, - 29705 - 11904: 0xAF5B, - 29706 - 11904: 0xB278, - 29707 - 11904: 0xD677, - 29708 - 11904: 0xD676, - 29709 - 11904: 0xB27C, - 29713 - 11904: 0x89A1, - 29714 - 11904: 0x95FA, - 29716 - 11904: 0x92D4, - 29717 - 11904: 0xFE69, - 29718 - 11904: 0xDA7E, - 29719 - 11904: 0xFB45, - 29721 - 11904: 0x98C8, - 29722 - 11904: 0xDAA1, - 29723 - 11904: 0xB560, - 29724 - 11904: 0x90EF, - 29725 - 11904: 0xDAA7, - 29726 - 11904: 0x98C9, - 29727 - 11904: 0x98CA, - 29728 - 11904: 0xDAA9, - 29729 - 11904: 0xDAA2, - 29730 - 11904: 0xB55A, - 29731 - 11904: 0xDAA6, - 29732 - 11904: 0xDAA5, - 29733 - 11904: 0xB55B, - 29734 - 11904: 0xB561, - 29736 - 11904: 0xB562, - 29737 - 11904: 0xDAA8, - 29738 - 11904: 0xB558, - 29739 - 11904: 0xDA7D, - 29740 - 11904: 0xDA7B, - 29741 - 11904: 0xDAA3, - 29742 - 11904: 0xDA7A, - 29743 - 11904: 0xB55F, - 29744 - 11904: 0xDA7C, - 29745 - 11904: 0xDAA4, - 29746 - 11904: 0xDAAA, - 29747 - 11904: 0xB559, - 29748 - 11904: 0xB55E, - 29749 - 11904: 0xB55C, - 29750 - 11904: 0xB55D, - 29751 - 11904: 0x946D, - 29752 - 11904: 0x94B7, - 29753 - 11904: 0xFE6C, - 29754 - 11904: 0xB557, - 29756 - 11904: 0x946B, - 29759 - 11904: 0xB7E9, - 29760 - 11904: 0xDEB7, - 29761 - 11904: 0xB7E8, - 29762 - 11904: 0xDEBB, - 29763 - 11904: 0x92FC, - 29764 - 11904: 0xDEB1, - 29765 - 11904: 0x95EB, - 29766 - 11904: 0xDEBC, - 29767 - 11904: 0xFE73, - 29768 - 11904: 0x976E, - 29769 - 11904: 0xFE5F, - 29770 - 11904: 0xDEB2, - 29771 - 11904: 0xDEB3, - 29772 - 11904: 0x87B8, - 29773 - 11904: 0xDEBD, - 29774 - 11904: 0xDEBA, - 29775 - 11904: 0xDEB8, - 29776 - 11904: 0xDEB9, - 29777 - 11904: 0xDEB5, - 29778 - 11904: 0xDEB4, - 29779 - 11904: 0xFDBD, - 29780 - 11904: 0xDEBE, - 29781 - 11904: 0xB7E5, - 29782 - 11904: 0x92D5, - 29783 - 11904: 0xDEB6, - 29785 - 11904: 0xB7EA, - 29786 - 11904: 0xB7E4, - 29787 - 11904: 0xB7EB, - 29788 - 11904: 0xFE6F, - 29789 - 11904: 0xFEB9, - 29790 - 11904: 0xB7E7, - 29791 - 11904: 0xB7E6, - 29792 - 11904: 0xFE71, - 29793 - 11904: 0x8778, - 29794 - 11904: 0xE2CE, - 29795 - 11904: 0xBABE, - 29796 - 11904: 0xBABD, - 29797 - 11904: 0xFBBB, - 29799 - 11904: 0xE2D3, - 29800 - 11904: 0xA0D5, - 29801 - 11904: 0xBCFC, - 29802 - 11904: 0xBABF, - 29803 - 11904: 0x95FB, - 29804 - 11904: 0xFE77, - 29805 - 11904: 0xBAC1, - 29806 - 11904: 0xE2D4, - 29807 - 11904: 0xB7E3, - 29808 - 11904: 0xBAC0, - 29809 - 11904: 0xE2D0, - 29810 - 11904: 0xE2D2, - 29811 - 11904: 0xE2CF, - 29812 - 11904: 0xFE79, - 29813 - 11904: 0xE2D1, - 29814 - 11904: 0xFE75, - 29817 - 11904: 0xE6AB, - 29818 - 11904: 0x945D, - 29820 - 11904: 0xE6AA, - 29821 - 11904: 0xE6A7, - 29822 - 11904: 0xBD40, - 29823 - 11904: 0xEA62, - 29824 - 11904: 0xBD41, - 29825 - 11904: 0xE6A6, - 29826 - 11904: 0xFE7C, - 29827 - 11904: 0xBCFE, - 29829 - 11904: 0xE6A8, - 29830 - 11904: 0xE6A5, - 29831 - 11904: 0xE6A2, - 29832 - 11904: 0xE6A9, - 29833 - 11904: 0xE6A3, - 29834 - 11904: 0xE6A4, - 29835 - 11904: 0xBCFD, - 29836 - 11904: 0x9344, - 29837 - 11904: 0x8EA6, - 29840 - 11904: 0xED69, - 29842 - 11904: 0xEA66, - 29844 - 11904: 0xEA65, - 29845 - 11904: 0xEA67, - 29847 - 11904: 0xED66, - 29848 - 11904: 0xBF5A, - 29849 - 11904: 0x92D3, - 29850 - 11904: 0xEA63, - 29851 - 11904: 0x94B8, - 29852 - 11904: 0xBF58, - 29853 - 11904: 0x8779, - 29854 - 11904: 0xBF5C, - 29855 - 11904: 0xBF5B, - 29856 - 11904: 0xEA64, - 29857 - 11904: 0xEA68, - 29859 - 11904: 0xBF59, - 29860 - 11904: 0xFC71, - 29861 - 11904: 0xED6D, - 29862 - 11904: 0xC0F5, - 29863 - 11904: 0xC27A, - 29864 - 11904: 0xC0F6, - 29865 - 11904: 0xC0F3, - 29866 - 11904: 0xED6A, - 29867 - 11904: 0xED68, - 29869 - 11904: 0xED6B, - 29871 - 11904: 0xED6E, - 29872 - 11904: 0xC0F4, - 29873 - 11904: 0xED6C, - 29874 - 11904: 0xED67, - 29876 - 11904: 0x975E, - 29877 - 11904: 0xF042, - 29878 - 11904: 0xF045, - 29879 - 11904: 0xF275, - 29880 - 11904: 0xF040, - 29881 - 11904: 0x8CAD, - 29882 - 11904: 0xF46F, - 29883 - 11904: 0xF046, - 29885 - 11904: 0xC3A2, - 29886 - 11904: 0xF044, - 29887 - 11904: 0xC27B, - 29888 - 11904: 0xF041, - 29889 - 11904: 0xF043, - 29890 - 11904: 0xF047, - 29891 - 11904: 0xF276, - 29893 - 11904: 0xF274, - 29894 - 11904: 0x87C1, - 29896 - 11904: 0xFEA7, - 29898 - 11904: 0xC3A3, - 29899 - 11904: 0xF273, - 29900 - 11904: 0x946A, - 29903 - 11904: 0xC46E, - 29904 - 11904: 0x93E3, - 29907 - 11904: 0x98CF, - 29908 - 11904: 0xC4ED, - 29909 - 11904: 0xF6F1, - 29910 - 11904: 0xC4EC, - 29911 - 11904: 0xF6F3, - 29912 - 11904: 0xF6F0, - 29913 - 11904: 0xF6F2, - 29914 - 11904: 0xC5D0, - 29915 - 11904: 0xF8B2, - 29916 - 11904: 0xA5CA, - 29917 - 11904: 0xCD6E, - 29918 - 11904: 0xD2BC, - 29919 - 11904: 0xD2BD, - 29920 - 11904: 0xB27D, - 29921 - 11904: 0xDEBF, - 29922 - 11904: 0xBF5D, - 29923 - 11904: 0xC3A4, - 29924 - 11904: 0xC57B, - 29925 - 11904: 0xF8B3, - 29926 - 11904: 0xA5CB, - 29927 - 11904: 0xA0D9, - 29928 - 11904: 0xCD6F, - 29929 - 11904: 0xFEAA, - 29932 - 11904: 0xCFD7, - 29934 - 11904: 0xCFD8, - 29936 - 11904: 0xA0BF, - 29937 - 11904: 0xA04D, - 29938 - 11904: 0xA0B8, - 29940 - 11904: 0xD2BE, - 29941 - 11904: 0xD2BF, - 29942 - 11904: 0xB27E, - 29943 - 11904: 0xB2A1, - 29944 - 11904: 0xA0CE, - 29947 - 11904: 0xDAAB, - 29949 - 11904: 0xDEC2, - 29950 - 11904: 0xDEC1, - 29951 - 11904: 0xDEC0, - 29952 - 11904: 0xE2D5, - 29954 - 11904: 0xE2D6, - 29955 - 11904: 0xE2D7, - 29956 - 11904: 0xBAC2, - 29957 - 11904: 0xA0B7, - 29959 - 11904: 0xE6AD, - 29960 - 11904: 0xE6AC, - 29963 - 11904: 0xEA69, - 29964 - 11904: 0xBF5E, - 29965 - 11904: 0xBF5F, - 29966 - 11904: 0xFEA9, - 29967 - 11904: 0xED72, - 29968 - 11904: 0xED6F, - 29969 - 11904: 0xED70, - 29970 - 11904: 0xED71, - 29971 - 11904: 0xF049, - 29972 - 11904: 0xF048, - 29973 - 11904: 0xC27C, - 29974 - 11904: 0xF277, - 29975 - 11904: 0xF5DE, - 29976 - 11904: 0xA5CC, - 29977 - 11904: 0x89C3, - 29978 - 11904: 0xACC6, - 29980 - 11904: 0xB2A2, - 29981 - 11904: 0xDEC3, - 29982 - 11904: 0xFEAB, - 29983 - 11904: 0xA5CD, - 29985 - 11904: 0xD2C0, - 29986 - 11904: 0xB2A3, - 29989 - 11904: 0xB563, - 29990 - 11904: 0xB564, - 29992 - 11904: 0xA5CE, - 29993 - 11904: 0xA5CF, - 29994 - 11904: 0xCA46, - 29995 - 11904: 0xA86A, - 29996 - 11904: 0xA869, - 29997 - 11904: 0xACC7, - 29998 - 11904: 0xCFD9, - 29999 - 11904: 0xDAAC, - 30000 - 11904: 0xA5D0, - 30001 - 11904: 0xA5D1, - 30002 - 11904: 0xA5D2, - 30003 - 11904: 0xA5D3, - 30004 - 11904: 0x9DF4, - 30005 - 11904: 0x896D, - 30007 - 11904: 0xA86B, - 30008 - 11904: 0xA86C, - 30009 - 11904: 0xCB6E, - 30010 - 11904: 0xCB6D, - 30011 - 11904: 0x9C7B, - 30013 - 11904: 0xAAB6, - 30014 - 11904: 0xCD72, - 30015 - 11904: 0xCD70, - 30016 - 11904: 0xCD71, - 30018 - 11904: 0x98D2, - 30022 - 11904: 0x9FA9, - 30023 - 11904: 0xCFDA, - 30024 - 11904: 0xCFDB, - 30026 - 11904: 0xFEB2, - 30027 - 11904: 0xACCB, - 30028 - 11904: 0xACC9, - 30029 - 11904: 0xFEB1, - 30030 - 11904: 0xACCA, - 30031 - 11904: 0xACC8, - 30033 - 11904: 0x97D9, - 30035 - 11904: 0xA0C4, - 30036 - 11904: 0xAF60, - 30037 - 11904: 0x9476, - 30041 - 11904: 0xAF64, - 30042 - 11904: 0xAF63, - 30043 - 11904: 0xD2C1, - 30044 - 11904: 0xAF62, - 30045 - 11904: 0xAF61, - 30047 - 11904: 0xD2C2, - 30048 - 11904: 0x9978, - 30050 - 11904: 0xB2A6, - 30051 - 11904: 0xD67B, - 30052 - 11904: 0xD67A, - 30053 - 11904: 0xB2A4, - 30054 - 11904: 0xB2A5, - 30055 - 11904: 0xFEB3, - 30058 - 11904: 0xB566, - 30059 - 11904: 0xB565, - 30060 - 11904: 0xDAAE, - 30061 - 11904: 0x98D3, - 30062 - 11904: 0xFEB4, - 30063 - 11904: 0xDAAD, - 30064 - 11904: 0xB2A7, - 30066 - 11904: 0x98D4, - 30070 - 11904: 0xB7ED, - 30071 - 11904: 0xDEC5, - 30072 - 11904: 0xB7EE, - 30073 - 11904: 0xDEC4, - 30074 - 11904: 0x9FB9, - 30077 - 11904: 0xE2D8, - 30078 - 11904: 0xE6AE, - 30079 - 11904: 0xBD42, - 30080 - 11904: 0xEA6A, - 30083 - 11904: 0x9471, - 30084 - 11904: 0xED73, - 30086 - 11904: 0xC3A6, - 30087 - 11904: 0xC3A5, - 30090 - 11904: 0xC57C, - 30091 - 11904: 0xA5D4, - 30092 - 11904: 0xCD73, - 30093 - 11904: 0x98D5, - 30094 - 11904: 0xFEB8, - 30095 - 11904: 0xB2A8, - 30096 - 11904: 0xE2D9, - 30097 - 11904: 0xBAC3, - 30098 - 11904: 0xC6D4, - 30100 - 11904: 0xCB6F, - 30101 - 11904: 0xCB70, - 30104 - 11904: 0xCD74, - 30105 - 11904: 0xAAB8, - 30106 - 11904: 0xAAB9, - 30109 - 11904: 0xAAB7, - 30110 - 11904: 0xFEBA, - 30114 - 11904: 0xACCF, - 30115 - 11904: 0xACD0, - 30116 - 11904: 0xACCD, - 30117 - 11904: 0xACCE, - 30119 - 11904: 0xCFDC, - 30122 - 11904: 0xCFDD, - 30123 - 11904: 0xACCC, - 30128 - 11904: 0xD2C3, - 30129 - 11904: 0x9E5C, - 30130 - 11904: 0xAF68, - 30131 - 11904: 0xAF69, - 30132 - 11904: 0xFEBB, - 30133 - 11904: 0xB2AB, - 30134 - 11904: 0xD2C9, - 30136 - 11904: 0xAF6E, - 30137 - 11904: 0xAF6C, - 30138 - 11904: 0xD2CA, - 30139 - 11904: 0xD2C5, - 30140 - 11904: 0xAF6B, - 30141 - 11904: 0xAF6A, - 30142 - 11904: 0xAF65, - 30143 - 11904: 0xD2C8, - 30144 - 11904: 0xD2C7, - 30145 - 11904: 0xD2C4, - 30146 - 11904: 0xAF6D, - 30147 - 11904: 0xA044, - 30148 - 11904: 0xD2C6, - 30149 - 11904: 0xAF66, - 30151 - 11904: 0xAF67, - 30152 - 11904: 0x98D7, - 30154 - 11904: 0xB2AC, - 30155 - 11904: 0xD6A1, - 30156 - 11904: 0xD6A2, - 30157 - 11904: 0xB2AD, - 30158 - 11904: 0xD67C, - 30159 - 11904: 0xD67E, - 30160 - 11904: 0xD6A4, - 30161 - 11904: 0xD6A3, - 30162 - 11904: 0xD67D, - 30164 - 11904: 0xB2A9, - 30165 - 11904: 0xB2AA, - 30167 - 11904: 0xDAB6, - 30168 - 11904: 0xB56B, - 30169 - 11904: 0xB56A, - 30170 - 11904: 0xDAB0, - 30171 - 11904: 0xB568, - 30172 - 11904: 0x98D8, - 30173 - 11904: 0xDAB3, - 30174 - 11904: 0xB56C, - 30175 - 11904: 0xDAB4, - 30176 - 11904: 0xB56D, - 30177 - 11904: 0xDAB1, - 30178 - 11904: 0xB567, - 30179 - 11904: 0xB569, - 30180 - 11904: 0xDAB5, - 30182 - 11904: 0xDAB2, - 30183 - 11904: 0xDAAF, - 30189 - 11904: 0xDED2, - 30191 - 11904: 0xDEC7, - 30192 - 11904: 0xB7F0, - 30193 - 11904: 0xB7F3, - 30194 - 11904: 0xB7F2, - 30195 - 11904: 0xB7F7, - 30196 - 11904: 0xB7F6, - 30197 - 11904: 0xDED3, - 30198 - 11904: 0xDED1, - 30199 - 11904: 0xDECA, - 30200 - 11904: 0xDECE, - 30201 - 11904: 0xDECD, - 30202 - 11904: 0xB7F4, - 30203 - 11904: 0xDED0, - 30204 - 11904: 0xDECC, - 30205 - 11904: 0xDED4, - 30206 - 11904: 0xDECB, - 30207 - 11904: 0xB7F5, - 30208 - 11904: 0xB7EF, - 30209 - 11904: 0xB7F1, - 30210 - 11904: 0xFEBC, - 30211 - 11904: 0xDEC9, - 30215 - 11904: 0x9FFE, - 30216 - 11904: 0xE2DB, - 30217 - 11904: 0xBAC7, - 30218 - 11904: 0xE2DF, - 30219 - 11904: 0xBAC6, - 30220 - 11904: 0xE2DC, - 30221 - 11904: 0xBAC5, - 30223 - 11904: 0xDEC8, - 30224 - 11904: 0xDECF, - 30225 - 11904: 0xE2DE, - 30227 - 11904: 0xBAC8, - 30228 - 11904: 0xE2E0, - 30229 - 11904: 0xE2DD, - 30230 - 11904: 0xE2DA, - 30233 - 11904: 0xE6B1, - 30234 - 11904: 0xE6B5, - 30235 - 11904: 0xE6B7, - 30236 - 11904: 0xE6B3, - 30237 - 11904: 0xE6B2, - 30238 - 11904: 0xE6B0, - 30239 - 11904: 0xBD45, - 30240 - 11904: 0xBD43, - 30241 - 11904: 0xBD48, - 30242 - 11904: 0xBD49, - 30243 - 11904: 0xE6B4, - 30244 - 11904: 0xBD46, - 30245 - 11904: 0xE6AF, - 30246 - 11904: 0xBD47, - 30247 - 11904: 0xBAC4, - 30248 - 11904: 0xE6B6, - 30249 - 11904: 0xBD44, - 30252 - 11904: 0xFEBD, - 30253 - 11904: 0xEA6C, - 30255 - 11904: 0xEA6B, - 30256 - 11904: 0xEA73, - 30257 - 11904: 0xEA6D, - 30258 - 11904: 0xEA72, - 30259 - 11904: 0xEA6F, - 30260 - 11904: 0xBF60, - 30261 - 11904: 0xEA71, - 30264 - 11904: 0xBF61, - 30266 - 11904: 0xBF62, - 30267 - 11904: 0x9DDD, - 30268 - 11904: 0xEA70, - 30269 - 11904: 0xEA6E, - 30272 - 11904: 0x9EE1, - 30274 - 11904: 0xC0F8, - 30275 - 11904: 0xED74, - 30278 - 11904: 0xC0F7, - 30279 - 11904: 0xED77, - 30280 - 11904: 0xED75, - 30281 - 11904: 0xED76, - 30284 - 11904: 0xC0F9, - 30285 - 11904: 0x98DA, - 30286 - 11904: 0x9DDF, - 30287 - 11904: 0xFEBF, - 30288 - 11904: 0xF04D, - 30289 - 11904: 0xFEBE, - 30290 - 11904: 0xC2A1, - 30291 - 11904: 0xF04E, - 30292 - 11904: 0x9EEB, - 30294 - 11904: 0xC27D, - 30295 - 11904: 0xF04F, - 30296 - 11904: 0xC27E, - 30297 - 11904: 0xF04C, - 30298 - 11904: 0xF050, - 30300 - 11904: 0xF04A, - 30303 - 11904: 0xC3A7, - 30304 - 11904: 0xF278, - 30305 - 11904: 0xC3A8, - 30306 - 11904: 0xC46F, - 30308 - 11904: 0xF04B, - 30309 - 11904: 0xC470, - 30310 - 11904: 0x9E59, - 30311 - 11904: 0xA05C, - 30313 - 11904: 0xC4EE, - 30314 - 11904: 0xF5DF, - 30316 - 11904: 0xC57E, - 30317 - 11904: 0xF6F4, - 30318 - 11904: 0xC57D, - 30319 - 11904: 0xFEC0, - 30320 - 11904: 0xF7EA, - 30321 - 11904: 0xC5F5, - 30322 - 11904: 0xC5F6, - 30323 - 11904: 0x9477, - 30324 - 11904: 0x98DC, - 30325 - 11904: 0xF9CC, - 30326 - 11904: 0xFEC1, - 30328 - 11904: 0xACD1, - 30329 - 11904: 0xCFDE, - 30330 - 11904: 0x98DE, - 30331 - 11904: 0xB56E, - 30332 - 11904: 0xB56F, - 30333 - 11904: 0xA5D5, - 30334 - 11904: 0xA6CA, - 30335 - 11904: 0xCA47, - 30337 - 11904: 0xCB71, - 30338 - 11904: 0xA86D, - 30340 - 11904: 0xAABA, - 30342 - 11904: 0xACD2, - 30343 - 11904: 0xACD3, - 30344 - 11904: 0xACD4, - 30345 - 11904: 0xD6A6, - 30346 - 11904: 0xD2CB, - 30347 - 11904: 0xAF6F, - 30350 - 11904: 0xB2AE, - 30351 - 11904: 0xD6A5, - 30352 - 11904: 0xFEC3, - 30354 - 11904: 0xDAB8, - 30355 - 11904: 0xB571, - 30357 - 11904: 0xDAB7, - 30358 - 11904: 0xB570, - 30361 - 11904: 0xDED5, - 30362 - 11904: 0xBD4A, - 30363 - 11904: 0xE6BB, - 30364 - 11904: 0xE6B8, - 30365 - 11904: 0xE6B9, - 30366 - 11904: 0xE6BA, - 30369 - 11904: 0xFEC8, - 30372 - 11904: 0xED78, - 30373 - 11904: 0xFEC9, - 30374 - 11904: 0xF051, - 30378 - 11904: 0xF471, - 30379 - 11904: 0xF470, - 30381 - 11904: 0xF6F5, - 30382 - 11904: 0xA5D6, - 30383 - 11904: 0xCD75, - 30384 - 11904: 0xAF70, - 30388 - 11904: 0xB572, - 30389 - 11904: 0xDED6, - 30391 - 11904: 0xFECA, - 30392 - 11904: 0xE2E1, - 30394 - 11904: 0xBD4B, - 30395 - 11904: 0xEA74, - 30397 - 11904: 0xF052, - 30398 - 11904: 0xF472, - 30399 - 11904: 0xA5D7, - 30402 - 11904: 0xAABB, - 30403 - 11904: 0xACD7, - 30404 - 11904: 0xCFDF, - 30405 - 11904: 0xACD8, - 30406 - 11904: 0xACD6, - 30408 - 11904: 0xACD5, - 30409 - 11904: 0xD2CC, - 30410 - 11904: 0xAF71, - 30412 - 11904: 0xFECB, - 30413 - 11904: 0xAF72, - 30414 - 11904: 0xAF73, - 30418 - 11904: 0xB2B0, - 30419 - 11904: 0xD6A7, - 30420 - 11904: 0xB2AF, - 30422 - 11904: 0x9FC2, - 30425 - 11904: 0x8C6B, - 30426 - 11904: 0xDAB9, - 30427 - 11904: 0xB2B1, - 30428 - 11904: 0xB573, - 30429 - 11904: 0xDED7, - 30430 - 11904: 0xB7F8, - 30431 - 11904: 0xB7F9, - 30433 - 11904: 0xBAC9, - 30435 - 11904: 0xBACA, - 30436 - 11904: 0xBD4C, - 30437 - 11904: 0xBF64, - 30438 - 11904: 0xEA75, - 30439 - 11904: 0xBF63, - 30441 - 11904: 0xED79, - 30442 - 11904: 0xC0FA, - 30444 - 11904: 0xF053, - 30445 - 11904: 0xF473, - 30446 - 11904: 0xA5D8, - 30447 - 11904: 0xA86E, - 30448 - 11904: 0xCD78, - 30449 - 11904: 0xCD77, - 30450 - 11904: 0xAABC, - 30451 - 11904: 0xCD76, - 30452 - 11904: 0xAABD, - 30453 - 11904: 0xCD79, - 30455 - 11904: 0xCFE5, - 30456 - 11904: 0xACDB, - 30457 - 11904: 0xACDA, - 30458 - 11904: 0xCFE7, - 30459 - 11904: 0xCFE6, - 30460 - 11904: 0xACDF, - 30462 - 11904: 0xACDE, - 30465 - 11904: 0xACD9, - 30467 - 11904: 0xCFE1, - 30468 - 11904: 0xCFE2, - 30469 - 11904: 0xCFE3, - 30471 - 11904: 0xACE0, - 30472 - 11904: 0xCFE0, - 30473 - 11904: 0xACDC, - 30474 - 11904: 0xCFE4, - 30475 - 11904: 0xACDD, - 30476 - 11904: 0x98C4, - 30478 - 11904: 0x94B0, - 30479 - 11904: 0x94B1, - 30480 - 11904: 0xD2CF, - 30481 - 11904: 0xD2D3, - 30482 - 11904: 0xD2D1, - 30483 - 11904: 0xD2D0, - 30485 - 11904: 0xD2D4, - 30489 - 11904: 0xD2D5, - 30490 - 11904: 0xD2D6, - 30491 - 11904: 0xD2CE, - 30493 - 11904: 0xD2CD, - 30494 - 11904: 0xFED1, - 30495 - 11904: 0xAF75, - 30496 - 11904: 0xAF76, - 30498 - 11904: 0xD2D7, - 30499 - 11904: 0xD2D2, - 30500 - 11904: 0xA0C1, - 30501 - 11904: 0xD6B0, - 30502 - 11904: 0xFED2, - 30503 - 11904: 0xD2D8, - 30504 - 11904: 0xAF77, - 30505 - 11904: 0xAF74, - 30507 - 11904: 0xA0CD, - 30509 - 11904: 0xD6AA, - 30511 - 11904: 0xD6A9, - 30513 - 11904: 0xD6AB, - 30514 - 11904: 0xD6AC, - 30515 - 11904: 0xD6AE, - 30516 - 11904: 0xD6AD, - 30517 - 11904: 0xD6B2, - 30518 - 11904: 0xB2B5, - 30519 - 11904: 0xB2B2, - 30520 - 11904: 0xB2B6, - 30521 - 11904: 0xD6A8, - 30522 - 11904: 0xB2B7, - 30523 - 11904: 0xD6B1, - 30524 - 11904: 0xB2B4, - 30525 - 11904: 0xD6AF, - 30526 - 11904: 0xB2B3, - 30528 - 11904: 0xFED3, - 30531 - 11904: 0x98E5, - 30532 - 11904: 0xDABC, - 30533 - 11904: 0xDABE, - 30534 - 11904: 0xDABA, - 30535 - 11904: 0xDABB, - 30538 - 11904: 0xDABF, - 30539 - 11904: 0xDAC1, - 30540 - 11904: 0xDAC2, - 30541 - 11904: 0xDABD, - 30542 - 11904: 0xDAC0, - 30543 - 11904: 0xB574, - 30546 - 11904: 0xDEDB, - 30548 - 11904: 0xDEE0, - 30549 - 11904: 0xDED8, - 30550 - 11904: 0xDEDC, - 30552 - 11904: 0xFED6, - 30553 - 11904: 0xDEE1, - 30554 - 11904: 0xDEDD, - 30555 - 11904: 0xB7FA, - 30556 - 11904: 0xB843, - 30558 - 11904: 0xB7FD, - 30559 - 11904: 0xDED9, - 30560 - 11904: 0xDEDA, - 30561 - 11904: 0xBACE, - 30562 - 11904: 0xB846, - 30563 - 11904: 0xB7FE, - 30565 - 11904: 0xB844, - 30566 - 11904: 0xB7FC, - 30567 - 11904: 0xDEDF, - 30568 - 11904: 0xB845, - 30569 - 11904: 0xDEDE, - 30570 - 11904: 0xB841, - 30571 - 11904: 0xB7FB, - 30572 - 11904: 0xB842, - 30573 - 11904: 0xDEE2, - 30574 - 11904: 0xE2E6, - 30575 - 11904: 0xE2E8, - 30578 - 11904: 0x91E4, - 30583 - 11904: 0x8FC7, - 30584 - 11904: 0x94AE, - 30585 - 11904: 0xB840, - 30586 - 11904: 0x8A4F, - 30587 - 11904: 0x94B2, - 30588 - 11904: 0xE2E3, - 30589 - 11904: 0xBACC, - 30590 - 11904: 0xE2E9, - 30591 - 11904: 0xBACD, - 30592 - 11904: 0xE2E7, - 30593 - 11904: 0xE2E2, - 30594 - 11904: 0xE2E5, - 30595 - 11904: 0xE2EA, - 30596 - 11904: 0xBACB, - 30597 - 11904: 0xE2E4, - 30599 - 11904: 0xBD4E, - 30600 - 11904: 0xE6BF, - 30601 - 11904: 0xE6BE, - 30603 - 11904: 0xBD51, - 30604 - 11904: 0xBD4F, - 30605 - 11904: 0xE6BC, - 30606 - 11904: 0xBD4D, - 30607 - 11904: 0xE6BD, - 30609 - 11904: 0xBD50, - 30611 - 11904: 0x8FD4, - 30613 - 11904: 0xEA7D, - 30615 - 11904: 0xEAA1, - 30616 - 11904: 0x98EA, - 30617 - 11904: 0xEA7E, - 30618 - 11904: 0xEA76, - 30619 - 11904: 0xEA7A, - 30620 - 11904: 0xEA79, - 30621 - 11904: 0xEA77, - 30622 - 11904: 0xBF66, - 30623 - 11904: 0xBF67, - 30624 - 11904: 0xBF65, - 30625 - 11904: 0xEA78, - 30626 - 11904: 0xEA7B, - 30627 - 11904: 0xEA7C, - 30629 - 11904: 0xBF68, - 30631 - 11904: 0xC140, - 30632 - 11904: 0xEDA3, - 30634 - 11904: 0xC0FC, - 30635 - 11904: 0xED7B, - 30636 - 11904: 0xC0FE, - 30637 - 11904: 0xC141, - 30639 - 11904: 0xFED8, - 30640 - 11904: 0xC0FD, - 30641 - 11904: 0xEDA2, - 30642 - 11904: 0xED7C, - 30643 - 11904: 0xC0FB, - 30644 - 11904: 0xEDA1, - 30645 - 11904: 0xED7A, - 30646 - 11904: 0xED7E, - 30647 - 11904: 0xED7D, - 30649 - 11904: 0x9DE0, - 30650 - 11904: 0xF055, - 30651 - 11904: 0xC2A4, - 30652 - 11904: 0xC2A5, - 30653 - 11904: 0xC2A2, - 30654 - 11904: 0x98EE, - 30655 - 11904: 0xC2A3, - 30658 - 11904: 0xF054, - 30659 - 11904: 0x95C4, - 30660 - 11904: 0xF27B, - 30661 - 11904: 0xFCE8, - 30663 - 11904: 0xC3A9, - 30665 - 11904: 0xF279, - 30666 - 11904: 0xF27A, - 30667 - 11904: 0x98EF, - 30668 - 11904: 0xF474, - 30669 - 11904: 0xF477, - 30670 - 11904: 0xF475, - 30671 - 11904: 0xF476, - 30672 - 11904: 0xF5E0, - 30675 - 11904: 0xC4EF, - 30676 - 11904: 0xF7EB, - 30677 - 11904: 0xF8B4, - 30679 - 11904: 0xC5F7, - 30680 - 11904: 0xF8F8, - 30681 - 11904: 0xF8F9, - 30682 - 11904: 0xC666, - 30683 - 11904: 0xA5D9, - 30684 - 11904: 0xACE1, - 30685 - 11904: 0x8C6E, - 30686 - 11904: 0xDAC3, - 30688 - 11904: 0xDEE3, - 30690 - 11904: 0xA5DA, - 30691 - 11904: 0xA86F, - 30693 - 11904: 0xAABE, - 30694 - 11904: 0xFAD8, - 30695 - 11904: 0xCFE8, - 30696 - 11904: 0xCFE9, - 30697 - 11904: 0xAF78, - 30700 - 11904: 0xDAC4, - 30701 - 11904: 0xB575, - 30702 - 11904: 0xB847, - 30703 - 11904: 0xC142, - 30704 - 11904: 0xEDA4, - 30705 - 11904: 0xF27C, - 30706 - 11904: 0xF478, - 30707 - 11904: 0xA5DB, - 30708 - 11904: 0xFEDC, - 30711 - 11904: 0xCDA1, - 30712 - 11904: 0xCD7A, - 30713 - 11904: 0xCD7C, - 30714 - 11904: 0xCD7E, - 30715 - 11904: 0xCD7D, - 30716 - 11904: 0xCD7B, - 30717 - 11904: 0xAABF, - 30718 - 11904: 0xA0AE, - 30722 - 11904: 0xACE2, - 30723 - 11904: 0xCFF2, - 30725 - 11904: 0xCFED, - 30726 - 11904: 0xCFEA, - 30728 - 11904: 0x9D4C, - 30729 - 11904: 0xFEDD, - 30732 - 11904: 0xACE4, - 30733 - 11904: 0xACE5, - 30734 - 11904: 0xCFF0, - 30735 - 11904: 0xCFEF, - 30736 - 11904: 0xCFEE, - 30737 - 11904: 0xCFEB, - 30738 - 11904: 0xCFEC, - 30739 - 11904: 0xCFF3, - 30740 - 11904: 0xACE3, - 30744 - 11904: 0x98F1, - 30748 - 11904: 0x98F3, - 30749 - 11904: 0xAF7C, - 30750 - 11904: 0x94C1, - 30751 - 11904: 0xAFA4, - 30752 - 11904: 0xAFA3, - 30753 - 11904: 0xD2E1, - 30754 - 11904: 0xD2DB, - 30755 - 11904: 0xD2D9, - 30757 - 11904: 0xAFA1, - 30758 - 11904: 0xD6B9, - 30759 - 11904: 0xAF7A, - 30760 - 11904: 0xD2DE, - 30761 - 11904: 0xD2E2, - 30762 - 11904: 0xD2E4, - 30763 - 11904: 0xD2E0, - 30764 - 11904: 0xD2DA, - 30765 - 11904: 0xAFA2, - 30766 - 11904: 0xD2DF, - 30767 - 11904: 0xD2DD, - 30768 - 11904: 0xAF79, - 30769 - 11904: 0xD2E5, - 30770 - 11904: 0xAFA5, - 30771 - 11904: 0xD2E3, - 30772 - 11904: 0xAF7D, - 30773 - 11904: 0xD2DC, - 30775 - 11904: 0xAF7E, - 30776 - 11904: 0xAF7B, - 30777 - 11904: 0x98F5, - 30780 - 11904: 0xFA4F, - 30781 - 11904: 0x96E2, - 30786 - 11904: 0x9450, - 30787 - 11904: 0xB2B9, - 30788 - 11904: 0x96A2, - 30789 - 11904: 0xD6BA, - 30791 - 11904: 0x98F6, - 30792 - 11904: 0xD6B3, - 30793 - 11904: 0xD6B5, - 30794 - 11904: 0xD6B7, - 30795 - 11904: 0x96E5, - 30796 - 11904: 0xD6B8, - 30797 - 11904: 0xD6B6, - 30798 - 11904: 0xB2BA, - 30800 - 11904: 0xD6BB, - 30801 - 11904: 0x98F7, - 30802 - 11904: 0xD6B4, - 30803 - 11904: 0xA046, - 30804 - 11904: 0x96E3, - 30812 - 11904: 0xDAC8, - 30813 - 11904: 0xB576, - 30814 - 11904: 0xDAD0, - 30816 - 11904: 0xDAC5, - 30818 - 11904: 0xDAD1, - 30820 - 11904: 0xDAC6, - 30821 - 11904: 0xDAC7, - 30822 - 11904: 0x98F8, - 30824 - 11904: 0xDACF, - 30825 - 11904: 0xDACE, - 30826 - 11904: 0xDACB, - 30827 - 11904: 0xB2B8, - 30828 - 11904: 0xB577, - 30829 - 11904: 0xDAC9, - 30830 - 11904: 0xDACC, - 30831 - 11904: 0xB578, - 30832 - 11904: 0xDACD, - 30833 - 11904: 0xDACA, - 30841 - 11904: 0xDEEE, - 30842 - 11904: 0x9EE4, - 30843 - 11904: 0xDEF2, - 30844 - 11904: 0xB84E, - 30846 - 11904: 0xE2F0, - 30847 - 11904: 0xB851, - 30848 - 11904: 0xDEF0, - 30849 - 11904: 0xF9D6, - 30851 - 11904: 0xDEED, - 30852 - 11904: 0xDEE8, - 30853 - 11904: 0xDEEA, - 30854 - 11904: 0xDEEB, - 30855 - 11904: 0xDEE4, - 30856 - 11904: 0x94C3, - 30857 - 11904: 0xB84D, - 30860 - 11904: 0xB84C, - 30861 - 11904: 0x94C2, - 30862 - 11904: 0xB848, - 30863 - 11904: 0xDEE7, - 30865 - 11904: 0xB84F, - 30867 - 11904: 0xB850, - 30868 - 11904: 0xDEE6, - 30869 - 11904: 0xDEE9, - 30870 - 11904: 0xDEF1, - 30871 - 11904: 0xB84A, - 30872 - 11904: 0xB84B, - 30873 - 11904: 0xDEEF, - 30874 - 11904: 0xDEE5, - 30878 - 11904: 0xE2F2, - 30879 - 11904: 0xBAD0, - 30880 - 11904: 0xE2F4, - 30881 - 11904: 0xDEEC, - 30882 - 11904: 0xE2F6, - 30883 - 11904: 0xBAD4, - 30884 - 11904: 0xE2F7, - 30885 - 11904: 0xE2F3, - 30887 - 11904: 0xBAD1, - 30888 - 11904: 0xE2EF, - 30889 - 11904: 0xBAD3, - 30890 - 11904: 0xE2EC, - 30891 - 11904: 0xE2F1, - 30892 - 11904: 0xE2F5, - 30893 - 11904: 0xE2EE, - 30895 - 11904: 0xFEE1, - 30896 - 11904: 0xB849, - 30897 - 11904: 0xFEE9, - 30898 - 11904: 0xE2EB, - 30899 - 11904: 0xBAD2, - 30900 - 11904: 0xE2ED, - 30902 - 11904: 0x96E4, - 30904 - 11904: 0x89AC, - 30905 - 11904: 0x96DB, - 30906 - 11904: 0xBD54, - 30907 - 11904: 0xE6C1, - 30908 - 11904: 0xBD58, - 30910 - 11904: 0xBD56, - 30913 - 11904: 0xBACF, - 30915 - 11904: 0xE6C8, - 30916 - 11904: 0xE6C9, - 30917 - 11904: 0xBD53, - 30919 - 11904: 0xFEE2, - 30920 - 11904: 0xE6C7, - 30921 - 11904: 0xE6CA, - 30922 - 11904: 0xBD55, - 30923 - 11904: 0xBD52, - 30924 - 11904: 0xE6C3, - 30925 - 11904: 0xE6C0, - 30926 - 11904: 0xE6C5, - 30927 - 11904: 0xE6C2, - 30928 - 11904: 0xBD59, - 30929 - 11904: 0xE6C4, - 30930 - 11904: 0x94C4, - 30931 - 11904: 0xFEE3, - 30932 - 11904: 0xE6C6, - 30933 - 11904: 0xBD57, - 30935 - 11904: 0xFEE7, - 30936 - 11904: 0x9FFB, - 30938 - 11904: 0xBF6A, - 30939 - 11904: 0xEAA8, - 30941 - 11904: 0xEAA2, - 30942 - 11904: 0xEAA6, - 30943 - 11904: 0xEAAC, - 30944 - 11904: 0xEAAD, - 30945 - 11904: 0xEAA9, - 30946 - 11904: 0xEAAA, - 30947 - 11904: 0xEAA7, - 30948 - 11904: 0x8C59, - 30949 - 11904: 0xEAA4, - 30951 - 11904: 0xBF6C, - 30952 - 11904: 0xBF69, - 30953 - 11904: 0xEAA3, - 30954 - 11904: 0xEAA5, - 30956 - 11904: 0xBF6B, - 30957 - 11904: 0xEAAB, - 30958 - 11904: 0x93C9, - 30959 - 11904: 0xC146, - 30960 - 11904: 0x94E8, - 30961 - 11904: 0xFB56, - 30962 - 11904: 0xEDAA, - 30963 - 11904: 0xEDA5, - 30964 - 11904: 0xC145, - 30965 - 11904: 0x90C5, - 30967 - 11904: 0xC143, - 30969 - 11904: 0xEDAC, - 30970 - 11904: 0xC144, - 30971 - 11904: 0xEDA8, - 30972 - 11904: 0xEDA9, - 30973 - 11904: 0xEDA6, - 30974 - 11904: 0xEDAD, - 30975 - 11904: 0xF056, - 30977 - 11904: 0xC147, - 30978 - 11904: 0xEDA7, - 30980 - 11904: 0xEDAE, - 30981 - 11904: 0xEDAB, - 30982 - 11904: 0xA0A8, - 30985 - 11904: 0xF05A, - 30988 - 11904: 0xF057, - 30990 - 11904: 0xC2A6, - 30992 - 11904: 0xF05B, - 30993 - 11904: 0xF05D, - 30994 - 11904: 0xF05C, - 30995 - 11904: 0xF058, - 30996 - 11904: 0xF059, - 30999 - 11904: 0xF2A3, - 31001 - 11904: 0xC3AA, - 31003 - 11904: 0xF27E, - 31004 - 11904: 0xF2A2, - 31005 - 11904: 0xF27D, - 31006 - 11904: 0xF2A4, - 31009 - 11904: 0xF2A1, - 31011 - 11904: 0xF47A, - 31012 - 11904: 0xF47D, - 31013 - 11904: 0xF479, - 31014 - 11904: 0xC471, - 31015 - 11904: 0xF47B, - 31016 - 11904: 0xF47C, - 31017 - 11904: 0xF47E, - 31018 - 11904: 0xC472, - 31019 - 11904: 0xC474, - 31020 - 11904: 0xC473, - 31021 - 11904: 0xF5E1, - 31022 - 11904: 0xFEE5, - 31023 - 11904: 0xF5E3, - 31025 - 11904: 0xF5E2, - 31026 - 11904: 0x98FD, - 31027 - 11904: 0x98FB, - 31028 - 11904: 0xFEE8, - 31029 - 11904: 0xF6F6, - 31030 - 11904: 0x8EBF, - 31032 - 11904: 0xF8B5, - 31033 - 11904: 0xF8FA, - 31034 - 11904: 0xA5DC, - 31035 - 11904: 0x8BD8, - 31036 - 11904: 0xFEF7, - 31037 - 11904: 0xCB72, - 31038 - 11904: 0xAAC0, - 31039 - 11904: 0xCDA3, - 31040 - 11904: 0xAAC1, - 31041 - 11904: 0xAAC2, - 31042 - 11904: 0xCDA2, - 31044 - 11904: 0xCFF8, - 31045 - 11904: 0xCFF7, - 31046 - 11904: 0xACE6, - 31047 - 11904: 0xACE9, - 31048 - 11904: 0xACE8, - 31049 - 11904: 0xACE7, - 31050 - 11904: 0xCFF4, - 31051 - 11904: 0xCFF6, - 31052 - 11904: 0xCFF5, - 31055 - 11904: 0xD2E8, - 31056 - 11904: 0xAFA7, - 31057 - 11904: 0xD2EC, - 31058 - 11904: 0xD2EB, - 31059 - 11904: 0xD2EA, - 31060 - 11904: 0xD2E6, - 31061 - 11904: 0xAFA6, - 31062 - 11904: 0xAFAA, - 31063 - 11904: 0xAFAD, - 31064 - 11904: 0x8F68, - 31065 - 11904: 0x94C6, - 31066 - 11904: 0xAFAE, - 31067 - 11904: 0xD2E7, - 31068 - 11904: 0xD2E9, - 31069 - 11904: 0xAFAC, - 31070 - 11904: 0xAFAB, - 31071 - 11904: 0xAFA9, - 31072 - 11904: 0xAFA8, - 31073 - 11904: 0xD6C2, - 31074 - 11904: 0x9DEA, - 31075 - 11904: 0xD6C0, - 31076 - 11904: 0xD6BC, - 31077 - 11904: 0xB2BB, - 31079 - 11904: 0xD6BD, - 31080 - 11904: 0xB2BC, - 31081 - 11904: 0xD6BE, - 31082 - 11904: 0xD6BF, - 31083 - 11904: 0xD6C1, - 31085 - 11904: 0xB2BD, - 31088 - 11904: 0xDAD5, - 31089 - 11904: 0xFC69, - 31090 - 11904: 0xDAD4, - 31091 - 11904: 0xDAD3, - 31092 - 11904: 0xDAD2, - 31097 - 11904: 0xDEF6, - 31098 - 11904: 0xB852, - 31100 - 11904: 0xDEF3, - 31101 - 11904: 0xDEF5, - 31102 - 11904: 0x9CDA, - 31103 - 11904: 0xB853, - 31104 - 11904: 0xFEF3, - 31105 - 11904: 0xB854, - 31106 - 11904: 0xDEF4, - 31107 - 11904: 0x9C72, - 31110 - 11904: 0xFEF0, - 31111 - 11904: 0x89C9, - 31112 - 11904: 0xE341, - 31114 - 11904: 0xE2F9, - 31115 - 11904: 0xE2FA, - 31117 - 11904: 0xBAD7, - 31118 - 11904: 0xBAD5, - 31119 - 11904: 0xBAD6, - 31120 - 11904: 0xE343, - 31121 - 11904: 0x9941, - 31122 - 11904: 0xE342, - 31123 - 11904: 0xE2FE, - 31124 - 11904: 0xE2FD, - 31125 - 11904: 0xE2FC, - 31126 - 11904: 0xE2FB, - 31127 - 11904: 0xE340, - 31128 - 11904: 0xE2F8, - 31129 - 11904: 0x9942, - 31130 - 11904: 0xE6CB, - 31131 - 11904: 0xE6D0, - 31132 - 11904: 0xE6CE, - 31133 - 11904: 0xFEF5, - 31135 - 11904: 0x91D7, - 31136 - 11904: 0xE6CD, - 31137 - 11904: 0xE6CC, - 31138 - 11904: 0xE6CF, - 31140 - 11904: 0xEAAE, - 31141 - 11904: 0x94CC, - 31142 - 11904: 0xBF6D, - 31143 - 11904: 0xC148, - 31144 - 11904: 0xEDB0, - 31145 - 11904: 0xFEF8, - 31146 - 11904: 0xC149, - 31147 - 11904: 0xEDAF, - 31148 - 11904: 0xF05F, - 31149 - 11904: 0xF05E, - 31150 - 11904: 0xC2A7, - 31152 - 11904: 0xF2A5, - 31153 - 11904: 0xC3AB, - 31154 - 11904: 0xF4A1, - 31155 - 11904: 0xC5A1, - 31156 - 11904: 0xF6F7, - 31158 - 11904: 0xF8B7, - 31159 - 11904: 0xF8B6, - 31160 - 11904: 0xC9A8, - 31161 - 11904: 0xACEA, - 31162 - 11904: 0xACEB, - 31163 - 11904: 0xD6C3, - 31165 - 11904: 0xB856, - 31166 - 11904: 0xA5DD, - 31167 - 11904: 0xA872, - 31168 - 11904: 0xA871, - 31169 - 11904: 0xA870, - 31172 - 11904: 0x97A8, - 31173 - 11904: 0xCDA4, - 31174 - 11904: 0xFEFC, - 31176 - 11904: 0xAAC4, - 31177 - 11904: 0xAAC3, - 31178 - 11904: 0x8CDE, - 31179 - 11904: 0xACEE, - 31180 - 11904: 0xFDBF, - 31181 - 11904: 0xCFFA, - 31182 - 11904: 0xCFFD, - 31183 - 11904: 0xCFFB, - 31184 - 11904: 0x87B3, - 31185 - 11904: 0xACEC, - 31186 - 11904: 0xACED, - 31188 - 11904: 0xFEFE, - 31189 - 11904: 0xCFF9, - 31190 - 11904: 0xCFFC, - 31192 - 11904: 0xAFB5, - 31196 - 11904: 0xD2F3, - 31197 - 11904: 0xD2F5, - 31198 - 11904: 0xD2F4, - 31199 - 11904: 0xAFB2, - 31200 - 11904: 0xD2EF, - 31202 - 11904: 0x96D1, - 31203 - 11904: 0xAFB0, - 31204 - 11904: 0xAFAF, - 31206 - 11904: 0xAFB3, - 31207 - 11904: 0xAFB1, - 31209 - 11904: 0xAFB4, - 31210 - 11904: 0xD2F2, - 31211 - 11904: 0xD2ED, - 31212 - 11904: 0xD2EE, - 31213 - 11904: 0xD2F1, - 31214 - 11904: 0xD2F0, - 31217 - 11904: 0x94D5, - 31220 - 11904: 0x94D0, - 31222 - 11904: 0xD6C6, - 31223 - 11904: 0xD6C7, - 31224 - 11904: 0xD6C5, - 31226 - 11904: 0xD6C4, - 31227 - 11904: 0xB2BE, - 31232 - 11904: 0xB57D, - 31234 - 11904: 0xDAD6, - 31235 - 11904: 0xDAD8, - 31236 - 11904: 0xDADA, - 31237 - 11904: 0xB57C, - 31238 - 11904: 0x9944, - 31240 - 11904: 0xB57A, - 31242 - 11904: 0xDAD7, - 31243 - 11904: 0xB57B, - 31244 - 11904: 0xDAD9, - 31245 - 11904: 0xB579, - 31248 - 11904: 0xDF41, - 31249 - 11904: 0xDEF7, - 31250 - 11904: 0xDEFA, - 31251 - 11904: 0xDEFE, - 31252 - 11904: 0xB85A, - 31253 - 11904: 0xDEFC, - 31255 - 11904: 0xDEFB, - 31256 - 11904: 0xDEF8, - 31257 - 11904: 0xDEF9, - 31258 - 11904: 0xB858, - 31259 - 11904: 0xDF40, - 31260 - 11904: 0xB857, - 31262 - 11904: 0xB85C, - 31263 - 11904: 0xB85B, - 31264 - 11904: 0xB859, - 31266 - 11904: 0xDEFD, - 31270 - 11904: 0xE349, - 31272 - 11904: 0xE348, - 31274 - 11904: 0x8C63, - 31275 - 11904: 0xE344, - 31276 - 11904: 0x87BB, - 31277 - 11904: 0xA0B3, - 31278 - 11904: 0xBAD8, - 31279 - 11904: 0xE347, - 31280 - 11904: 0xE346, - 31281 - 11904: 0xBAD9, - 31282 - 11904: 0x87B4, - 31287 - 11904: 0xBD5E, - 31289 - 11904: 0xE6D2, - 31290 - 11904: 0x94CF, - 31291 - 11904: 0xBD5F, - 31292 - 11904: 0xBD5B, - 31293 - 11904: 0xBD5D, - 31294 - 11904: 0x9FFA, - 31295 - 11904: 0xBD5A, - 31296 - 11904: 0xBD5C, - 31299 - 11904: 0x91E5, - 31300 - 11904: 0xEAAF, - 31301 - 11904: 0x9C6A, - 31302 - 11904: 0xBF70, - 31303 - 11904: 0xEAB1, - 31304 - 11904: 0xEAB0, - 31305 - 11904: 0x8E49, - 31306 - 11904: 0xE345, - 31307 - 11904: 0xBF72, - 31308 - 11904: 0xBF71, - 31309 - 11904: 0xBF6E, - 31310 - 11904: 0xBF6F, - 31316 - 11904: 0xEDB5, - 31318 - 11904: 0xEDB3, - 31319 - 11904: 0xC14A, - 31320 - 11904: 0xEDB4, - 31322 - 11904: 0xEDB6, - 31323 - 11904: 0xEDB2, - 31324 - 11904: 0xEDB1, - 31327 - 11904: 0xF060, - 31328 - 11904: 0xC2AA, - 31329 - 11904: 0xC2A8, - 31330 - 11904: 0xC2A9, - 31333 - 11904: 0x8E4C, - 31335 - 11904: 0xF2A6, - 31336 - 11904: 0xF2A7, - 31337 - 11904: 0xC3AD, - 31339 - 11904: 0xC3AC, - 31340 - 11904: 0xF4A3, - 31341 - 11904: 0xF4A4, - 31342 - 11904: 0xF4A2, - 31344 - 11904: 0xF6F8, - 31345 - 11904: 0xF6F9, - 31346 - 11904: 0x87C9, - 31348 - 11904: 0xA5DE, - 31349 - 11904: 0xCA48, - 31350 - 11904: 0xA873, - 31352 - 11904: 0xCDA5, - 31353 - 11904: 0xAAC6, - 31354 - 11904: 0xAAC5, - 31355 - 11904: 0xCDA6, - 31357 - 11904: 0x8E4D, - 31358 - 11904: 0xD040, - 31359 - 11904: 0xACEF, - 31360 - 11904: 0xCFFE, - 31361 - 11904: 0xACF0, - 31363 - 11904: 0x9A73, - 31364 - 11904: 0xAFB6, - 31365 - 11904: 0xD2F8, - 31366 - 11904: 0xD2F6, - 31367 - 11904: 0xD2FC, - 31368 - 11904: 0xAFB7, - 31369 - 11904: 0xD2F7, - 31370 - 11904: 0xD2FB, - 31371 - 11904: 0xD2F9, - 31372 - 11904: 0xD2FA, - 31375 - 11904: 0xD6C8, - 31376 - 11904: 0xD6CA, - 31377 - 11904: 0x9947, - 31378 - 11904: 0xB2BF, - 31379 - 11904: 0x8CB1, - 31380 - 11904: 0xD6C9, - 31381 - 11904: 0xB2C0, - 31382 - 11904: 0xB5A2, - 31383 - 11904: 0xB5A1, - 31384 - 11904: 0xB57E, - 31385 - 11904: 0xDADB, - 31390 - 11904: 0xDF44, - 31391 - 11904: 0xB85D, - 31392 - 11904: 0xB85E, - 31394 - 11904: 0xDF43, - 31395 - 11904: 0xDF42, - 31400 - 11904: 0xE34A, - 31401 - 11904: 0xBADB, - 31402 - 11904: 0xBADA, - 31403 - 11904: 0xE34B, - 31404 - 11904: 0xE34C, - 31406 - 11904: 0xBD61, - 31407 - 11904: 0xBD60, - 31408 - 11904: 0x8E50, - 31409 - 11904: 0xEAB5, - 31410 - 11904: 0xE6D3, - 31411 - 11904: 0xE6D5, - 31412 - 11904: 0xE6D4, - 31413 - 11904: 0xEAB4, - 31414 - 11904: 0xEAB2, - 31415 - 11904: 0xEAB6, - 31416 - 11904: 0xEAB3, - 31418 - 11904: 0xBF73, - 31419 - 11904: 0x8E4F, - 31420 - 11904: 0x9949, - 31422 - 11904: 0xEDB7, - 31423 - 11904: 0xC14B, - 31424 - 11904: 0xEDB8, - 31425 - 11904: 0xEDB9, - 31426 - 11904: 0x8E51, - 31427 - 11904: 0x8E52, - 31428 - 11904: 0xC2AB, - 31429 - 11904: 0xC2AC, - 31431 - 11904: 0xC475, - 31432 - 11904: 0x9AB2, - 31433 - 11904: 0x89A5, - 31434 - 11904: 0xC5D1, - 31435 - 11904: 0xA5DF, - 31439 - 11904: 0x994C, - 31441 - 11904: 0xD041, - 31443 - 11904: 0x9FF8, - 31448 - 11904: 0xD2FD, - 31449 - 11904: 0xAFB8, - 31450 - 11904: 0x8E56, - 31451 - 11904: 0x994D, - 31452 - 11904: 0x91CA, - 31453 - 11904: 0x8E57, - 31455 - 11904: 0xB3BA, - 31456 - 11904: 0xB3B9, - 31458 - 11904: 0x94E1, - 31459 - 11904: 0xB5A4, - 31460 - 11904: 0xDADD, - 31461 - 11904: 0xB5A3, - 31462 - 11904: 0xDADC, - 31463 - 11904: 0x9047, - 31465 - 11904: 0x8FD8, - 31466 - 11904: 0x8E58, - 31467 - 11904: 0xDF45, - 31469 - 11904: 0xBADC, - 31470 - 11904: 0xE34D, - 31471 - 11904: 0xBADD, - 31478 - 11904: 0xC476, - 31479 - 11904: 0xF4A5, - 31481 - 11904: 0xA6CB, - 31482 - 11904: 0xAAC7, - 31483 - 11904: 0xCDA7, - 31484 - 11904: 0x87A3, - 31485 - 11904: 0xACF2, - 31486 - 11904: 0x94EB, - 31487 - 11904: 0xACF1, - 31488 - 11904: 0xD042, - 31489 - 11904: 0xD043, - 31492 - 11904: 0xD340, - 31493 - 11904: 0xD342, - 31494 - 11904: 0xAFB9, - 31496 - 11904: 0xD344, - 31497 - 11904: 0xD347, - 31498 - 11904: 0xD345, - 31499 - 11904: 0x8E5C, - 31500 - 11904: 0x9553, - 31502 - 11904: 0xD346, - 31503 - 11904: 0xD343, - 31504 - 11904: 0xD2FE, - 31505 - 11904: 0xAFBA, - 31506 - 11904: 0xD348, - 31507 - 11904: 0xD341, - 31508 - 11904: 0x9FE5, - 31512 - 11904: 0xD6D3, - 31513 - 11904: 0xB2C6, - 31514 - 11904: 0xD6DC, - 31515 - 11904: 0xB2C3, - 31517 - 11904: 0xD6D5, - 31518 - 11904: 0xB2C7, - 31519 - 11904: 0x9F56, - 31520 - 11904: 0xB2C1, - 31522 - 11904: 0xD6D0, - 31523 - 11904: 0xD6DD, - 31524 - 11904: 0xD6D1, - 31525 - 11904: 0xD6CE, - 31526 - 11904: 0xB2C5, - 31527 - 11904: 0x954F, - 31528 - 11904: 0xB2C2, - 31529 - 11904: 0x8E5E, - 31530 - 11904: 0xD6D4, - 31531 - 11904: 0xD6D7, - 31532 - 11904: 0xB2C4, - 31533 - 11904: 0xD6D8, - 31534 - 11904: 0xB2C8, - 31535 - 11904: 0xD6D9, - 31536 - 11904: 0xD6CF, - 31537 - 11904: 0xD6D6, - 31538 - 11904: 0xD6DA, - 31539 - 11904: 0xD6D2, - 31540 - 11904: 0xD6CD, - 31541 - 11904: 0xD6CB, - 31544 - 11904: 0xD6DB, - 31545 - 11904: 0x996A, - 31547 - 11904: 0xDADF, - 31552 - 11904: 0xDAE4, - 31554 - 11904: 0x9C64, - 31555 - 11904: 0x9CD9, - 31556 - 11904: 0xDAE0, - 31557 - 11904: 0xDAE6, - 31558 - 11904: 0xB5A7, - 31559 - 11904: 0xD6CC, - 31560 - 11904: 0xDAE1, - 31561 - 11904: 0xB5A5, - 31562 - 11904: 0xDADE, - 31563 - 11904: 0xB5AC, - 31564 - 11904: 0xDAE2, - 31565 - 11904: 0xB5AB, - 31566 - 11904: 0xDAE3, - 31567 - 11904: 0xB5AD, - 31568 - 11904: 0xB5A8, - 31569 - 11904: 0xB5AE, - 31570 - 11904: 0xB5A9, - 31572 - 11904: 0xB5AA, - 31573 - 11904: 0x8E5D, - 31574 - 11904: 0xB5A6, - 31576 - 11904: 0xDAE5, - 31584 - 11904: 0xB861, - 31585 - 11904: 0xDF50, - 31586 - 11904: 0x9950, - 31587 - 11904: 0xDF53, - 31588 - 11904: 0xDF47, - 31589 - 11904: 0xDF4C, - 31590 - 11904: 0xDF46, - 31591 - 11904: 0xB863, - 31593 - 11904: 0xDF4A, - 31596 - 11904: 0x9951, - 31597 - 11904: 0xDF48, - 31598 - 11904: 0xB862, - 31599 - 11904: 0x8E62, - 31600 - 11904: 0xDF4F, - 31601 - 11904: 0xDF4E, - 31602 - 11904: 0xDF4B, - 31603 - 11904: 0xDF4D, - 31604 - 11904: 0xDF49, - 31605 - 11904: 0xBAE1, - 31606 - 11904: 0xDF52, - 31607 - 11904: 0xB85F, - 31608 - 11904: 0xDF51, - 31611 - 11904: 0x9952, - 31618 - 11904: 0xE35D, - 31620 - 11904: 0xBAE8, - 31621 - 11904: 0xE358, - 31623 - 11904: 0xBAE7, - 31624 - 11904: 0xE34E, - 31626 - 11904: 0xE350, - 31627 - 11904: 0xBAE0, - 31628 - 11904: 0xE355, - 31629 - 11904: 0xE354, - 31630 - 11904: 0xE357, - 31631 - 11904: 0xBAE5, - 31632 - 11904: 0xE352, - 31633 - 11904: 0xE351, - 31634 - 11904: 0x8E68, - 31636 - 11904: 0xBAE4, - 31637 - 11904: 0xBADF, - 31638 - 11904: 0xE353, - 31639 - 11904: 0xBAE2, - 31640 - 11904: 0xE359, - 31641 - 11904: 0xE35B, - 31643 - 11904: 0xE356, - 31644 - 11904: 0xE34F, - 31645 - 11904: 0xBAE3, - 31648 - 11904: 0xBD69, - 31649 - 11904: 0xBADE, - 31650 - 11904: 0x8E61, - 31651 - 11904: 0x9F59, - 31652 - 11904: 0xE35C, - 31660 - 11904: 0xE6D9, - 31661 - 11904: 0xBD62, - 31662 - 11904: 0x87D0, - 31663 - 11904: 0xE6DB, - 31665 - 11904: 0xBD63, - 31666 - 11904: 0x8BB3, - 31668 - 11904: 0xBD65, - 31669 - 11904: 0xE6DE, - 31671 - 11904: 0xE6D6, - 31672 - 11904: 0xBAE6, - 31673 - 11904: 0xE6DC, - 31678 - 11904: 0xE6D8, - 31680 - 11904: 0xB860, - 31681 - 11904: 0xBD68, - 31684 - 11904: 0xBD64, - 31685 - 11904: 0x87B9, - 31686 - 11904: 0xBD66, - 31687 - 11904: 0xBD67, - 31689 - 11904: 0xBF76, - 31690 - 11904: 0xE6DD, - 31691 - 11904: 0xE6D7, - 31692 - 11904: 0xBD6A, - 31694 - 11904: 0xE6DA, - 31695 - 11904: 0x9F5D, - 31696 - 11904: 0x8E66, - 31700 - 11904: 0xEAC0, - 31701 - 11904: 0xEABB, - 31704 - 11904: 0xEAC5, - 31705 - 11904: 0xBF74, - 31706 - 11904: 0xEABD, - 31707 - 11904: 0xBF78, - 31708 - 11904: 0xEAC3, - 31709 - 11904: 0xEABA, - 31710 - 11904: 0xEAB7, - 31711 - 11904: 0xEAC6, - 31712 - 11904: 0xC151, - 31713 - 11904: 0xBF79, - 31714 - 11904: 0xEAC2, - 31715 - 11904: 0xEAB8, - 31716 - 11904: 0xBF77, - 31717 - 11904: 0xEABC, - 31718 - 11904: 0xBF7B, - 31719 - 11904: 0xEAB9, - 31720 - 11904: 0xEABE, - 31721 - 11904: 0xBF7A, - 31722 - 11904: 0xEAC1, - 31723 - 11904: 0xEAC4, - 31724 - 11904: 0x8CB2, - 31728 - 11904: 0xEDCB, - 31729 - 11904: 0xEDCC, - 31730 - 11904: 0xEDBC, - 31731 - 11904: 0xEDC3, - 31732 - 11904: 0xEDC1, - 31735 - 11904: 0xC14F, - 31736 - 11904: 0xEDC8, - 31737 - 11904: 0xEABF, - 31738 - 11904: 0x8E6E, - 31739 - 11904: 0xEDBF, - 31740 - 11904: 0x9F64, - 31741 - 11904: 0xEDC9, - 31742 - 11904: 0xC14E, - 31743 - 11904: 0xEDBE, - 31744 - 11904: 0xEDBD, - 31745 - 11904: 0xEDC7, - 31746 - 11904: 0xEDC4, - 31747 - 11904: 0xEDC6, - 31749 - 11904: 0xEDBA, - 31750 - 11904: 0xEDCA, - 31751 - 11904: 0xC14C, - 31753 - 11904: 0xEDC5, - 31754 - 11904: 0xEDCE, - 31755 - 11904: 0xEDC2, - 31756 - 11904: 0xC150, - 31757 - 11904: 0xC14D, - 31758 - 11904: 0xEDC0, - 31759 - 11904: 0xEDBB, - 31760 - 11904: 0xEDCD, - 31761 - 11904: 0xBF75, - 31762 - 11904: 0x9953, - 31765 - 11904: 0xFAB8, - 31769 - 11904: 0xF063, - 31771 - 11904: 0x9954, - 31772 - 11904: 0xF061, - 31773 - 11904: 0xF067, - 31774 - 11904: 0xC2B0, - 31775 - 11904: 0xF065, - 31776 - 11904: 0xF064, - 31777 - 11904: 0xC2B2, - 31778 - 11904: 0xF06A, - 31779 - 11904: 0xC2B1, - 31781 - 11904: 0xF06B, - 31782 - 11904: 0xF068, - 31783 - 11904: 0xC2AE, - 31784 - 11904: 0xF069, - 31785 - 11904: 0xF062, - 31786 - 11904: 0xC2AF, - 31787 - 11904: 0xC2AD, - 31788 - 11904: 0xF2AB, - 31789 - 11904: 0xF066, - 31792 - 11904: 0xF06C, - 31795 - 11904: 0xF2A8, - 31797 - 11904: 0x8E70, - 31799 - 11904: 0xC3B2, - 31800 - 11904: 0xC3B0, - 31801 - 11904: 0xF2AA, - 31803 - 11904: 0xF2AC, - 31804 - 11904: 0xF2A9, - 31805 - 11904: 0xC3B1, - 31806 - 11904: 0xC3AE, - 31807 - 11904: 0xC3AF, - 31808 - 11904: 0xC3B3, - 31810 - 11904: 0x9F61, - 31811 - 11904: 0xC478, - 31812 - 11904: 0x8E72, - 31813 - 11904: 0xF4AA, - 31815 - 11904: 0xF4A9, - 31816 - 11904: 0xF4A7, - 31817 - 11904: 0xF4A6, - 31818 - 11904: 0xF4A8, - 31820 - 11904: 0xC477, - 31821 - 11904: 0xC479, - 31824 - 11904: 0xC4F0, - 31825 - 11904: 0xA06B, - 31827 - 11904: 0xF5E5, - 31828 - 11904: 0xF5E4, - 31830 - 11904: 0x9F40, - 31831 - 11904: 0xF6FA, - 31833 - 11904: 0xF6FC, - 31834 - 11904: 0xF6FE, - 31835 - 11904: 0xF6FD, - 31836 - 11904: 0xF6FB, - 31837 - 11904: 0x94ED, - 31839 - 11904: 0xC5A3, - 31840 - 11904: 0xC5A2, - 31843 - 11904: 0xC5D3, - 31844 - 11904: 0xC5D2, - 31845 - 11904: 0xC5D4, - 31846 - 11904: 0xF7ED, - 31847 - 11904: 0xF7EC, - 31849 - 11904: 0xF8FB, - 31850 - 11904: 0xF8B8, - 31851 - 11904: 0xF8FC, - 31852 - 11904: 0xC658, - 31853 - 11904: 0x94EE, - 31854 - 11904: 0xC659, - 31855 - 11904: 0xF96D, - 31856 - 11904: 0x9FBD, - 31858 - 11904: 0xC67E, - 31859 - 11904: 0xA6CC, - 31860 - 11904: 0x8E7B, - 31861 - 11904: 0xCDA8, - 31864 - 11904: 0xD045, - 31865 - 11904: 0xD046, - 31866 - 11904: 0xD044, - 31867 - 11904: 0x9957, - 31868 - 11904: 0x94F7, - 31869 - 11904: 0xACF3, - 31870 - 11904: 0x9F5F, - 31871 - 11904: 0xD047, - 31872 - 11904: 0xD048, - 31873 - 11904: 0xD049, - 31875 - 11904: 0x8E73, - 31876 - 11904: 0xD349, - 31877 - 11904: 0xD34F, - 31878 - 11904: 0x9F62, - 31880 - 11904: 0xD34D, - 31881 - 11904: 0xAFBB, - 31882 - 11904: 0xD34B, - 31884 - 11904: 0xD34C, - 31885 - 11904: 0xD34E, - 31886 - 11904: 0x94F6, - 31889 - 11904: 0xD34A, - 31890 - 11904: 0xB2C9, - 31892 - 11904: 0xD6DE, - 31893 - 11904: 0xB2CB, - 31894 - 11904: 0xD6E0, - 31895 - 11904: 0xB2CA, - 31896 - 11904: 0xD6DF, - 31900 - 11904: 0x9958, - 31902 - 11904: 0xDAE8, - 31903 - 11904: 0xB5AF, - 31905 - 11904: 0xDAEA, - 31906 - 11904: 0xDAE7, - 31907 - 11904: 0xD6E1, - 31909 - 11904: 0xB5B0, - 31910 - 11904: 0x8E75, - 31911 - 11904: 0xF9DB, - 31912 - 11904: 0xDAE9, - 31916 - 11904: 0x9072, - 31918 - 11904: 0x94F8, - 31919 - 11904: 0xDF56, - 31921 - 11904: 0xB864, - 31922 - 11904: 0xDF54, - 31923 - 11904: 0xB865, - 31924 - 11904: 0xDF55, - 31925 - 11904: 0xB866, - 31928 - 11904: 0x995A, - 31929 - 11904: 0xBAE9, - 31930 - 11904: 0xE361, - 31931 - 11904: 0xE35E, - 31932 - 11904: 0xE360, - 31933 - 11904: 0xBAEA, - 31934 - 11904: 0xBAEB, - 31935 - 11904: 0xE35F, - 31938 - 11904: 0xA0B0, - 31939 - 11904: 0x8CB3, - 31941 - 11904: 0xE6DF, - 31943 - 11904: 0x8E79, - 31944 - 11904: 0xE6E0, - 31945 - 11904: 0x8E78, - 31946 - 11904: 0xBD6B, - 31947 - 11904: 0xE6E2, - 31948 - 11904: 0xE6E1, - 31949 - 11904: 0x94F3, - 31950 - 11904: 0xA261, - 31952 - 11904: 0xEACA, - 31953 - 11904: 0xEACB, - 31954 - 11904: 0xEAC7, - 31955 - 11904: 0x98AF, - 31956 - 11904: 0xEAC8, - 31957 - 11904: 0xBF7C, - 31958 - 11904: 0xBF7D, - 31959 - 11904: 0xEAC9, - 31961 - 11904: 0xC157, - 31962 - 11904: 0xA0B2, - 31964 - 11904: 0xC153, - 31965 - 11904: 0xC158, - 31966 - 11904: 0xC154, - 31967 - 11904: 0xC156, - 31968 - 11904: 0xC152, - 31970 - 11904: 0xC155, - 31974 - 11904: 0x8E7A, - 31975 - 11904: 0xC2B3, - 31976 - 11904: 0xEDCF, - 31978 - 11904: 0xF2AE, - 31980 - 11904: 0xF2AD, - 31981 - 11904: 0x995C, - 31982 - 11904: 0xF4AB, - 31983 - 11904: 0xC47A, - 31984 - 11904: 0xC47B, - 31985 - 11904: 0xF741, - 31986 - 11904: 0xF5E6, - 31987 - 11904: 0x8E7C, - 31988 - 11904: 0xF740, - 31989 - 11904: 0x8E7D, - 31990 - 11904: 0xF8FD, - 31991 - 11904: 0xF9A4, - 31992 - 11904: 0xA6CD, - 31993 - 11904: 0x8BD9, - 31995 - 11904: 0xA874, - 31996 - 11904: 0x89A2, - 31997 - 11904: 0xCDA9, - 31998 - 11904: 0xAAC8, - 32000 - 11904: 0xACF6, - 32001 - 11904: 0xD04C, - 32002 - 11904: 0xACF4, - 32003 - 11904: 0xD04A, - 32004 - 11904: 0xACF9, - 32005 - 11904: 0xACF5, - 32006 - 11904: 0xACFA, - 32007 - 11904: 0xACF8, - 32008 - 11904: 0xD04B, - 32009 - 11904: 0xACF7, - 32010 - 11904: 0xAFBF, - 32011 - 11904: 0xAFBE, - 32012 - 11904: 0xD35A, - 32013 - 11904: 0xAFC7, - 32014 - 11904: 0xD353, - 32015 - 11904: 0xD359, - 32016 - 11904: 0xAFC3, - 32017 - 11904: 0xD352, - 32018 - 11904: 0xD358, - 32019 - 11904: 0xD356, - 32020 - 11904: 0xAFC2, - 32021 - 11904: 0xAFC4, - 32022 - 11904: 0xD355, - 32023 - 11904: 0xAFBD, - 32024 - 11904: 0xD354, - 32025 - 11904: 0xAFC8, - 32026 - 11904: 0xAFC5, - 32027 - 11904: 0xAFC9, - 32028 - 11904: 0xAFC6, - 32029 - 11904: 0xD351, - 32030 - 11904: 0xD350, - 32031 - 11904: 0xD357, - 32032 - 11904: 0xAFC0, - 32033 - 11904: 0xAFBC, - 32034 - 11904: 0xAFC1, - 32037 - 11904: 0x9ED7, - 32040 - 11904: 0xD6F0, - 32041 - 11904: 0xD6E9, - 32043 - 11904: 0xB5B5, - 32044 - 11904: 0xD6E8, - 32046 - 11904: 0xB2CF, - 32047 - 11904: 0xB2D6, - 32048 - 11904: 0xB2D3, - 32049 - 11904: 0xB2D9, - 32050 - 11904: 0xB2D8, - 32051 - 11904: 0xB2D4, - 32053 - 11904: 0xD6E2, - 32054 - 11904: 0xD6E5, - 32056 - 11904: 0xD6E4, - 32057 - 11904: 0xB2D0, - 32058 - 11904: 0xD6E6, - 32059 - 11904: 0xD6EF, - 32060 - 11904: 0xB2D1, - 32061 - 11904: 0xD6E3, - 32062 - 11904: 0xD6EC, - 32063 - 11904: 0xD6ED, - 32064 - 11904: 0xB2D2, - 32065 - 11904: 0xD6EA, - 32066 - 11904: 0xB2D7, - 32067 - 11904: 0xB2CD, - 32068 - 11904: 0xB2D5, - 32069 - 11904: 0xD6E7, - 32070 - 11904: 0xB2CC, - 32071 - 11904: 0xD6EB, - 32074 - 11904: 0xD6EE, - 32077 - 11904: 0xA0B6, - 32078 - 11904: 0xDAFB, - 32079 - 11904: 0xDAF2, - 32080 - 11904: 0xB5B2, - 32081 - 11904: 0xDAF9, - 32082 - 11904: 0xDAF6, - 32083 - 11904: 0xDAEE, - 32084 - 11904: 0xDAF7, - 32085 - 11904: 0xB5B4, - 32086 - 11904: 0xDAEF, - 32088 - 11904: 0xDAEB, - 32090 - 11904: 0x9E42, - 32091 - 11904: 0xB86C, - 32092 - 11904: 0xDAF4, - 32093 - 11904: 0x8EA4, - 32094 - 11904: 0xB5B1, - 32095 - 11904: 0xDAFA, - 32097 - 11904: 0xB5B8, - 32098 - 11904: 0xB5BA, - 32099 - 11904: 0xDAED, - 32102 - 11904: 0xB5B9, - 32103 - 11904: 0xDAF0, - 32104 - 11904: 0xB5B3, - 32105 - 11904: 0xDAF8, - 32106 - 11904: 0xDAF1, - 32107 - 11904: 0xDAF5, - 32109 - 11904: 0xDAF3, - 32110 - 11904: 0xB5B6, - 32111 - 11904: 0xDAEC, - 32112 - 11904: 0xB5BB, - 32113 - 11904: 0xB2CE, - 32114 - 11904: 0xB5B7, - 32115 - 11904: 0xB5BC, - 32121 - 11904: 0xB868, - 32122 - 11904: 0xDF5D, - 32123 - 11904: 0xDF5F, - 32124 - 11904: 0xDF61, - 32125 - 11904: 0xDF65, - 32127 - 11904: 0xDF5B, - 32128 - 11904: 0xDF59, - 32129 - 11904: 0xB86A, - 32131 - 11904: 0xDF60, - 32132 - 11904: 0xDF64, - 32133 - 11904: 0xDF5C, - 32134 - 11904: 0xDF58, - 32136 - 11904: 0xDF57, - 32137 - 11904: 0x8EA7, - 32139 - 11904: 0x8C76, - 32140 - 11904: 0xDF62, - 32141 - 11904: 0xDF5A, - 32142 - 11904: 0xDF5E, - 32143 - 11904: 0xB86B, - 32145 - 11904: 0xB869, - 32146 - 11904: 0xDF66, - 32147 - 11904: 0xB867, - 32148 - 11904: 0xDF63, - 32149 - 11904: 0x8767, - 32150 - 11904: 0xE372, - 32151 - 11904: 0x9542, - 32156 - 11904: 0xBAEE, - 32157 - 11904: 0xE36A, - 32158 - 11904: 0xBD78, - 32159 - 11904: 0xE374, - 32160 - 11904: 0xBAF1, - 32161 - 11904: 0xE378, - 32162 - 11904: 0xBAF7, - 32163 - 11904: 0xE365, - 32164 - 11904: 0x987D, - 32166 - 11904: 0xE375, - 32167 - 11904: 0xE362, - 32168 - 11904: 0x9755, - 32169 - 11904: 0xE377, - 32170 - 11904: 0xE366, - 32171 - 11904: 0x8EA8, - 32172 - 11904: 0xBAFE, - 32173 - 11904: 0xBAFB, - 32174 - 11904: 0xE376, - 32175 - 11904: 0xE370, - 32176 - 11904: 0xBAED, - 32177 - 11904: 0xBAF5, - 32178 - 11904: 0xBAF4, - 32179 - 11904: 0x8EAA, - 32180 - 11904: 0xBAF3, - 32181 - 11904: 0xBAF9, - 32183 - 11904: 0xE363, - 32184 - 11904: 0xBAFA, - 32185 - 11904: 0xE371, - 32186 - 11904: 0xBAF6, - 32187 - 11904: 0xBAEC, - 32188 - 11904: 0xE373, - 32189 - 11904: 0xBAEF, - 32190 - 11904: 0xBAF0, - 32191 - 11904: 0xBAF8, - 32192 - 11904: 0xE368, - 32193 - 11904: 0xE367, - 32194 - 11904: 0xE364, - 32196 - 11904: 0xE36C, - 32197 - 11904: 0xE369, - 32198 - 11904: 0xE36D, - 32199 - 11904: 0xBAFD, - 32201 - 11904: 0xE379, - 32202 - 11904: 0xBAF2, - 32203 - 11904: 0xE36E, - 32204 - 11904: 0xE36F, - 32205 - 11904: 0x89A3, - 32206 - 11904: 0xE36B, - 32207 - 11904: 0x9960, - 32208 - 11904: 0x9962, - 32210 - 11904: 0xBAFC, - 32211 - 11904: 0x94FC, - 32212 - 11904: 0x9961, - 32215 - 11904: 0xE6E7, - 32216 - 11904: 0xBD70, - 32217 - 11904: 0xBD79, - 32218 - 11904: 0xBD75, - 32219 - 11904: 0xE6E4, - 32220 - 11904: 0x94FA, - 32221 - 11904: 0xBD72, - 32222 - 11904: 0xBD76, - 32223 - 11904: 0xE6F0, - 32224 - 11904: 0xBD6C, - 32225 - 11904: 0xE6E8, - 32227 - 11904: 0xBD74, - 32228 - 11904: 0x8EAE, - 32229 - 11904: 0x8EB2, - 32230 - 11904: 0xE6EB, - 32231 - 11904: 0xE6E6, - 32232 - 11904: 0xBD73, - 32233 - 11904: 0xBD77, - 32234 - 11904: 0xE6E5, - 32236 - 11904: 0xBD71, - 32238 - 11904: 0xE6EF, - 32239 - 11904: 0xBD6E, - 32240 - 11904: 0xE6EE, - 32241 - 11904: 0xE6ED, - 32242 - 11904: 0xBD7A, - 32243 - 11904: 0xE572, - 32244 - 11904: 0xBD6D, - 32245 - 11904: 0x8EB0, - 32246 - 11904: 0xE6EC, - 32247 - 11904: 0xE6E3, - 32249 - 11904: 0xBD7B, - 32250 - 11904: 0xE6EA, - 32251 - 11904: 0xBD6F, - 32253 - 11904: 0x9963, - 32254 - 11904: 0x97AA, - 32259 - 11904: 0xE6E9, - 32263 - 11904: 0x94FB, - 32264 - 11904: 0xBFA2, - 32265 - 11904: 0xBFA7, - 32266 - 11904: 0xBF7E, - 32267 - 11904: 0xEAD8, - 32268 - 11904: 0xEACF, - 32269 - 11904: 0xEADB, - 32270 - 11904: 0xEAD3, - 32271 - 11904: 0xEAD9, - 32272 - 11904: 0xBFA8, - 32273 - 11904: 0xBFA1, - 32274 - 11904: 0xEACC, - 32275 - 11904: 0xEAD2, - 32276 - 11904: 0xEADC, - 32277 - 11904: 0xEAD5, - 32278 - 11904: 0xEADA, - 32279 - 11904: 0xEACE, - 32282 - 11904: 0xEAD6, - 32283 - 11904: 0xBFA3, - 32284 - 11904: 0xEAD4, - 32285 - 11904: 0xBFA6, - 32286 - 11904: 0xBFA5, - 32287 - 11904: 0xEAD0, - 32288 - 11904: 0xEAD1, - 32289 - 11904: 0xEACD, - 32290 - 11904: 0xEAD7, - 32291 - 11904: 0xBFA4, - 32292 - 11904: 0xEADE, - 32293 - 11904: 0xEADD, - 32295 - 11904: 0x8EBB, - 32297 - 11904: 0xEDDA, - 32298 - 11904: 0xEDD6, - 32299 - 11904: 0xC15F, - 32301 - 11904: 0xEDD0, - 32302 - 11904: 0xC159, - 32303 - 11904: 0xC169, - 32304 - 11904: 0xEDDC, - 32305 - 11904: 0xC161, - 32306 - 11904: 0xC15D, - 32307 - 11904: 0xEDD3, - 32308 - 11904: 0xC164, - 32309 - 11904: 0xC167, - 32310 - 11904: 0xEDDE, - 32311 - 11904: 0xC15C, - 32312 - 11904: 0xEDD5, - 32313 - 11904: 0xC165, - 32314 - 11904: 0xEDE0, - 32315 - 11904: 0xEDDD, - 32316 - 11904: 0xEDD1, - 32317 - 11904: 0xC160, - 32318 - 11904: 0xC15A, - 32319 - 11904: 0xC168, - 32320 - 11904: 0xEDD8, - 32321 - 11904: 0xC163, - 32322 - 11904: 0xEDD2, - 32323 - 11904: 0xC15E, - 32324 - 11904: 0xEDDF, - 32325 - 11904: 0xC162, - 32326 - 11904: 0xC15B, - 32327 - 11904: 0xEDD9, - 32328 - 11904: 0xC166, - 32329 - 11904: 0xEDD7, - 32332 - 11904: 0xEDDB, - 32336 - 11904: 0xF06E, - 32337 - 11904: 0xF074, - 32338 - 11904: 0xC2B9, - 32339 - 11904: 0xF077, - 32340 - 11904: 0xC2B4, - 32341 - 11904: 0xC2B5, - 32342 - 11904: 0xF06F, - 32343 - 11904: 0xF076, - 32344 - 11904: 0xF071, - 32345 - 11904: 0xC2BA, - 32346 - 11904: 0xC2B7, - 32347 - 11904: 0x8CDC, - 32348 - 11904: 0xF06D, - 32350 - 11904: 0xC2B6, - 32351 - 11904: 0xF073, - 32352 - 11904: 0xF075, - 32353 - 11904: 0xC2B8, - 32354 - 11904: 0xF072, - 32355 - 11904: 0xF070, - 32357 - 11904: 0x9876, - 32359 - 11904: 0x8EA1, - 32360 - 11904: 0xF2B8, - 32361 - 11904: 0xC3B7, - 32362 - 11904: 0xC3B8, - 32363 - 11904: 0xC3B4, - 32364 - 11904: 0x8CB4, - 32365 - 11904: 0xC3B5, - 32366 - 11904: 0x8EB7, - 32367 - 11904: 0xF2B4, - 32368 - 11904: 0xF2B2, - 32370 - 11904: 0xF2B6, - 32371 - 11904: 0xC3BA, - 32372 - 11904: 0xF2B7, - 32373 - 11904: 0xF2B0, - 32374 - 11904: 0xF2AF, - 32375 - 11904: 0xF2B3, - 32376 - 11904: 0xF2B1, - 32377 - 11904: 0xC3B6, - 32378 - 11904: 0xF2B5, - 32379 - 11904: 0xF4AC, - 32380 - 11904: 0xC47E, - 32381 - 11904: 0xC47D, - 32382 - 11904: 0xF4AD, - 32383 - 11904: 0x9DA6, - 32384 - 11904: 0xF4AF, - 32385 - 11904: 0xF4AE, - 32386 - 11904: 0xC4A1, - 32390 - 11904: 0xF5EB, - 32391 - 11904: 0xF5E8, - 32392 - 11904: 0xF5E9, - 32394 - 11904: 0xF5E7, - 32395 - 11904: 0xF5EA, - 32396 - 11904: 0xC4F2, - 32397 - 11904: 0xF5EC, - 32398 - 11904: 0x9EB0, - 32399 - 11904: 0xC4F1, - 32401 - 11904: 0xF742, - 32402 - 11904: 0x8EB8, - 32403 - 11904: 0xC5D5, - 32404 - 11904: 0xC5D7, - 32405 - 11904: 0xF7EE, - 32406 - 11904: 0xC5D6, - 32407 - 11904: 0xF8B9, - 32408 - 11904: 0xF940, - 32409 - 11904: 0xF942, - 32410 - 11904: 0xF8FE, - 32411 - 11904: 0xF941, - 32412 - 11904: 0xC66C, - 32415 - 11904: 0x9D70, - 32420 - 11904: 0x896E, - 32428 - 11904: 0x896F, - 32442 - 11904: 0x8970, - 32455 - 11904: 0x8971, - 32463 - 11904: 0x8972, - 32479 - 11904: 0x8973, - 32518 - 11904: 0x8974, - 32566 - 11904: 0xA6CE, - 32567 - 11904: 0x8975, - 32568 - 11904: 0xACFB, - 32569 - 11904: 0xD26F, - 32570 - 11904: 0xAFCA, - 32573 - 11904: 0xB2DA, - 32574 - 11904: 0xDAFC, - 32575 - 11904: 0xDAFD, - 32576 - 11904: 0x8EBC, - 32577 - 11904: 0x8EBD, - 32579 - 11904: 0xEADF, - 32580 - 11904: 0xC16A, - 32581 - 11904: 0xEDE1, - 32583 - 11904: 0x8EBE, - 32584 - 11904: 0xC2BB, - 32585 - 11904: 0x9DD1, - 32586 - 11904: 0xF2BA, - 32587 - 11904: 0xF2B9, - 32588 - 11904: 0xC4A2, - 32589 - 11904: 0xF5ED, - 32590 - 11904: 0x94FD, - 32591 - 11904: 0xF743, - 32592 - 11904: 0xC5F8, - 32593 - 11904: 0xCA49, - 32594 - 11904: 0x8BD7, - 32595 - 11904: 0x8BDA, - 32596 - 11904: 0xAAC9, - 32597 - 11904: 0xA875, - 32600 - 11904: 0xD04D, - 32603 - 11904: 0xD360, - 32604 - 11904: 0xD35B, - 32605 - 11904: 0xD35F, - 32606 - 11904: 0xD35D, - 32607 - 11904: 0xAFCB, - 32608 - 11904: 0xD35E, - 32609 - 11904: 0xD35C, - 32611 - 11904: 0xD6F1, - 32613 - 11904: 0xDAFE, - 32614 - 11904: 0xDB40, - 32615 - 11904: 0xDF69, - 32616 - 11904: 0xDF6A, - 32617 - 11904: 0xB86E, - 32618 - 11904: 0xB86F, - 32619 - 11904: 0xDF68, - 32620 - 11904: 0xDF6B, - 32621 - 11904: 0xDF67, - 32622 - 11904: 0xB86D, - 32624 - 11904: 0xBB40, - 32625 - 11904: 0xA0E2, - 32626 - 11904: 0xB870, - 32627 - 11904: 0xE37A, - 32629 - 11904: 0xBD7C, - 32630 - 11904: 0xE6F1, - 32631 - 11904: 0xBD7D, - 32632 - 11904: 0x9FE9, - 32633 - 11904: 0xBFA9, - 32634 - 11904: 0xEAE2, - 32635 - 11904: 0xEAE0, - 32636 - 11904: 0xEAE1, - 32637 - 11904: 0xEDE4, - 32638 - 11904: 0xEDE3, - 32639 - 11904: 0xEDE2, - 32643 - 11904: 0xF2BB, - 32645 - 11904: 0xC3B9, - 32646 - 11904: 0xF2BC, - 32647 - 11904: 0xF744, - 32648 - 11904: 0xC5F9, - 32649 - 11904: 0xF8BA, - 32650 - 11904: 0xA6CF, - 32651 - 11904: 0xAACB, - 32652 - 11904: 0xAACA, - 32653 - 11904: 0xD04F, - 32654 - 11904: 0xACFC, - 32655 - 11904: 0xFDA8, - 32657 - 11904: 0xD04E, - 32658 - 11904: 0xD362, - 32659 - 11904: 0x8AE7, - 32660 - 11904: 0xAFCC, - 32661 - 11904: 0xD6F2, - 32662 - 11904: 0xD361, - 32663 - 11904: 0x8EC2, - 32666 - 11904: 0xB2DC, - 32667 - 11904: 0xD6F5, - 32668 - 11904: 0xD6F3, - 32669 - 11904: 0xD6F4, - 32670 - 11904: 0xB2DB, - 32672 - 11904: 0xDB42, - 32673 - 11904: 0xDB43, - 32674 - 11904: 0xDB41, - 32675 - 11904: 0x8EC4, - 32676 - 11904: 0xB873, - 32677 - 11904: 0xDF6D, - 32678 - 11904: 0xDF6C, - 32679 - 11904: 0xDF6E, - 32680 - 11904: 0xB872, - 32681 - 11904: 0xB871, - 32684 - 11904: 0xE6F2, - 32685 - 11904: 0xE6F4, - 32686 - 11904: 0x9964, - 32687 - 11904: 0xBD7E, - 32688 - 11904: 0xE6F3, - 32689 - 11904: 0xEAE3, - 32690 - 11904: 0xBFAA, - 32691 - 11904: 0xF079, - 32692 - 11904: 0x9965, - 32693 - 11904: 0xF078, - 32694 - 11904: 0xC3BB, - 32695 - 11904: 0xF2BD, - 32696 - 11904: 0xC3BD, - 32697 - 11904: 0xC3BC, - 32698 - 11904: 0xF4B0, - 32699 - 11904: 0xF5EE, - 32700 - 11904: 0xC4F3, - 32701 - 11904: 0xA6D0, - 32702 - 11904: 0xD050, - 32703 - 11904: 0xACFD, - 32704 - 11904: 0xD365, - 32705 - 11904: 0xAFCE, - 32706 - 11904: 0xD364, - 32707 - 11904: 0xD363, - 32709 - 11904: 0xAFCD, - 32711 - 11904: 0xD6FB, - 32713 - 11904: 0xD6FD, - 32714 - 11904: 0xD6F6, - 32715 - 11904: 0xD6F7, - 32716 - 11904: 0xB2DD, - 32717 - 11904: 0xD6F8, - 32718 - 11904: 0xB2DE, - 32719 - 11904: 0xD6FC, - 32720 - 11904: 0xD6F9, - 32721 - 11904: 0xD6FA, - 32722 - 11904: 0xB2DF, - 32724 - 11904: 0xB5BE, - 32725 - 11904: 0xB5BF, - 32727 - 11904: 0xDB44, - 32731 - 11904: 0xDF6F, - 32732 - 11904: 0xDF70, - 32733 - 11904: 0x954E, - 32734 - 11904: 0xE37E, - 32735 - 11904: 0xBB43, - 32736 - 11904: 0xBB41, - 32737 - 11904: 0xBB42, - 32738 - 11904: 0xE37B, - 32739 - 11904: 0xE37C, - 32741 - 11904: 0xE37D, - 32742 - 11904: 0xE6F9, - 32743 - 11904: 0x98B3, - 32744 - 11904: 0xE6FA, - 32745 - 11904: 0xBDA1, - 32746 - 11904: 0xE6F7, - 32747 - 11904: 0xE6F6, - 32748 - 11904: 0xE6F8, - 32749 - 11904: 0xE6F5, - 32750 - 11904: 0xBFAD, - 32751 - 11904: 0xEAE4, - 32752 - 11904: 0xBFAB, - 32753 - 11904: 0xBFAC, - 32754 - 11904: 0xEDE6, - 32755 - 11904: 0xC16B, - 32756 - 11904: 0xEDE5, - 32757 - 11904: 0xEFA8, - 32759 - 11904: 0xF07A, - 32760 - 11904: 0xF07B, - 32761 - 11904: 0xC2BC, - 32762 - 11904: 0x8ECB, - 32763 - 11904: 0xC2BD, - 32764 - 11904: 0xC16C, - 32765 - 11904: 0xF2BE, - 32766 - 11904: 0xF2BF, - 32767 - 11904: 0xF4B1, - 32768 - 11904: 0xC4A3, - 32769 - 11904: 0xA6D1, - 32770 - 11904: 0x8BDF, - 32771 - 11904: 0xA6D2, - 32772 - 11904: 0xACFE, - 32773 - 11904: 0xAACC, - 32774 - 11904: 0xAFCF, - 32775 - 11904: 0xD051, - 32776 - 11904: 0x8ECE, - 32779 - 11904: 0xB5C0, - 32780 - 11904: 0xA6D3, - 32781 - 11904: 0xAD41, - 32782 - 11904: 0xD052, - 32783 - 11904: 0xD053, - 32784 - 11904: 0xAD40, - 32785 - 11904: 0xAD42, - 32786 - 11904: 0xA6D4, - 32788 - 11904: 0xD054, - 32789 - 11904: 0xAFD1, - 32790 - 11904: 0xD366, - 32791 - 11904: 0xAFD3, - 32792 - 11904: 0xAFD0, - 32793 - 11904: 0xAFD2, - 32795 - 11904: 0xD741, - 32796 - 11904: 0xB2E0, - 32797 - 11904: 0x8ECF, - 32798 - 11904: 0xD740, - 32799 - 11904: 0xD6FE, - 32800 - 11904: 0x9968, - 32801 - 11904: 0xDF71, - 32804 - 11904: 0xE3A1, - 32805 - 11904: 0x9969, - 32806 - 11904: 0xBDA2, - 32808 - 11904: 0xBFAE, - 32809 - 11904: 0xEAE6, - 32810 - 11904: 0xEAE5, - 32812 - 11904: 0xEDE7, - 32814 - 11904: 0x996B, - 32815 - 11904: 0x8ED1, - 32816 - 11904: 0xF5EF, - 32817 - 11904: 0x996C, - 32819 - 11904: 0xA6D5, - 32820 - 11904: 0xCB73, - 32821 - 11904: 0xCDAA, - 32822 - 11904: 0xAD43, - 32823 - 11904: 0xD055, - 32825 - 11904: 0xD368, - 32827 - 11904: 0x8ED4, - 32828 - 11904: 0x8ED5, - 32829 - 11904: 0xAFD4, - 32830 - 11904: 0xD367, - 32831 - 11904: 0xAFD5, - 32835 - 11904: 0xD743, - 32838 - 11904: 0xB2E2, - 32839 - 11904: 0xD742, - 32840 - 11904: 0xD744, - 32842 - 11904: 0xB2E1, - 32847 - 11904: 0xDB46, - 32848 - 11904: 0xDB47, - 32849 - 11904: 0xDB45, - 32850 - 11904: 0xB5C1, - 32852 - 11904: 0x996D, - 32854 - 11904: 0xB874, - 32856 - 11904: 0xB875, - 32858 - 11904: 0xBB45, - 32859 - 11904: 0xA0BE, - 32860 - 11904: 0xE3A3, - 32861 - 11904: 0xE3A2, - 32862 - 11904: 0xBB44, - 32865 - 11904: 0x8ED6, - 32866 - 11904: 0xA0BC, - 32867 - 11904: 0xA0B5, - 32868 - 11904: 0xE6FB, - 32870 - 11904: 0xA0B4, - 32871 - 11904: 0xE6FC, - 32876 - 11904: 0xEAE7, - 32879 - 11904: 0xC170, - 32880 - 11904: 0xC16F, - 32881 - 11904: 0xC16D, - 32882 - 11904: 0xC16E, - 32883 - 11904: 0xC171, - 32885 - 11904: 0xF07C, - 32886 - 11904: 0xC2BF, - 32887 - 11904: 0xC2BE, - 32888 - 11904: 0xF2C0, - 32889 - 11904: 0xF4B2, - 32893 - 11904: 0xC5A5, - 32894 - 11904: 0xC5A4, - 32895 - 11904: 0xA6D6, - 32896 - 11904: 0x8BE0, - 32898 - 11904: 0xD1FB, - 32900 - 11904: 0xB877, - 32901 - 11904: 0xB5C2, - 32902 - 11904: 0xB876, - 32903 - 11904: 0xBB46, - 32905 - 11904: 0xA6D7, - 32906 - 11904: 0xC9A9, - 32907 - 11904: 0xA6D8, - 32908 - 11904: 0xA6D9, - 32911 - 11904: 0xCDAB, - 32912 - 11904: 0xCB76, - 32914 - 11904: 0xCB77, - 32915 - 11904: 0xA877, - 32917 - 11904: 0xCB74, - 32918 - 11904: 0xA876, - 32920 - 11904: 0xA879, - 32921 - 11904: 0xCB75, - 32922 - 11904: 0xA87B, - 32923 - 11904: 0xA87A, - 32924 - 11904: 0xCB78, - 32925 - 11904: 0xA878, - 32927 - 11904: 0x89B5, - 32929 - 11904: 0xAAD1, - 32930 - 11904: 0xAACF, - 32931 - 11904: 0xCDAD, - 32933 - 11904: 0xAACE, - 32935 - 11904: 0x8EDD, - 32937 - 11904: 0xAAD3, - 32938 - 11904: 0xAAD5, - 32939 - 11904: 0xAAD2, - 32941 - 11904: 0xCDB0, - 32942 - 11904: 0xCDAC, - 32943 - 11904: 0xAAD6, - 32945 - 11904: 0xAAD0, - 32946 - 11904: 0xA87C, - 32948 - 11904: 0xAAD4, - 32949 - 11904: 0xCDAF, - 32950 - 11904: 0x9E5D, - 32951 - 11904: 0x9971, - 32952 - 11904: 0xCDAE, - 32954 - 11904: 0xAACD, - 32956 - 11904: 0x89AE, - 32957 - 11904: 0x9DE8, - 32962 - 11904: 0xD05B, - 32963 - 11904: 0xAD47, - 32964 - 11904: 0xAD48, - 32965 - 11904: 0xD05D, - 32966 - 11904: 0x9565, - 32967 - 11904: 0xD057, - 32968 - 11904: 0xD05A, - 32969 - 11904: 0xD063, - 32970 - 11904: 0xD061, - 32972 - 11904: 0xAD49, - 32973 - 11904: 0xD067, - 32974 - 11904: 0xAD4C, - 32975 - 11904: 0xD064, - 32976 - 11904: 0xD05C, - 32977 - 11904: 0xD059, - 32980 - 11904: 0xDB49, - 32981 - 11904: 0xD062, - 32982 - 11904: 0xAD44, - 32983 - 11904: 0xD065, - 32984 - 11904: 0xD056, - 32985 - 11904: 0xD05F, - 32986 - 11904: 0xAD46, - 32987 - 11904: 0xAD4B, - 32988 - 11904: 0xD060, - 32989 - 11904: 0xAD4F, - 32990 - 11904: 0xAD4D, - 32992 - 11904: 0xD058, - 32993 - 11904: 0xAD4A, - 32995 - 11904: 0xD05E, - 32996 - 11904: 0xAD4E, - 32997 - 11904: 0xAD45, - 32998 - 11904: 0xD066, - 33001 - 11904: 0x9972, - 33004 - 11904: 0x8B5C, - 33005 - 11904: 0xAFDA, - 33007 - 11904: 0xAFE3, - 33008 - 11904: 0xAFD8, - 33009 - 11904: 0xAFD6, - 33010 - 11904: 0xD36A, - 33011 - 11904: 0xAFDE, - 33012 - 11904: 0xAFDB, - 33013 - 11904: 0xD36C, - 33014 - 11904: 0x89B1, - 33016 - 11904: 0xAFDD, - 33017 - 11904: 0xD36B, - 33018 - 11904: 0xD369, - 33019 - 11904: 0xD36E, - 33020 - 11904: 0xAFE2, - 33021 - 11904: 0xAFE0, - 33022 - 11904: 0xDB48, - 33024 - 11904: 0xD36F, - 33025 - 11904: 0xD36D, - 33026 - 11904: 0xAFD7, - 33027 - 11904: 0xA0C0, - 33029 - 11904: 0xAFD9, - 33030 - 11904: 0xAFDC, - 33031 - 11904: 0x8EDF, - 33032 - 11904: 0xAFDF, - 33033 - 11904: 0x9566, - 33034 - 11904: 0xAFE1, - 33036 - 11904: 0x9974, - 33038 - 11904: 0x9976, - 33042 - 11904: 0x9977, - 33044 - 11904: 0x9979, - 33045 - 11904: 0xD74E, - 33046 - 11904: 0xB2E4, - 33047 - 11904: 0x9DDA, - 33048 - 11904: 0xD745, - 33049 - 11904: 0xD747, - 33050 - 11904: 0x8EE0, - 33051 - 11904: 0xD748, - 33053 - 11904: 0xD750, - 33054 - 11904: 0xD74C, - 33055 - 11904: 0xD74A, - 33057 - 11904: 0xD74D, - 33058 - 11904: 0xD751, - 33059 - 11904: 0xB2E5, - 33060 - 11904: 0xB2E9, - 33061 - 11904: 0xD746, - 33063 - 11904: 0xD74F, - 33065 - 11904: 0xB2E7, - 33066 - 11904: 0x935C, - 33067 - 11904: 0xB2E6, - 33068 - 11904: 0xD74B, - 33069 - 11904: 0xD749, - 33071 - 11904: 0xB2E3, - 33072 - 11904: 0xB2E8, - 33074 - 11904: 0x9DE6, - 33076 - 11904: 0x8B5F, - 33079 - 11904: 0x9563, - 33081 - 11904: 0xB5C8, - 33082 - 11904: 0xDB51, - 33085 - 11904: 0xDB4F, - 33086 - 11904: 0xB5CA, - 33090 - 11904: 0x9567, - 33091 - 11904: 0xDB4A, - 33092 - 11904: 0xDFA1, - 33094 - 11904: 0xB5C9, - 33095 - 11904: 0xDB4E, - 33096 - 11904: 0x9DE3, - 33098 - 11904: 0xDB4B, - 33099 - 11904: 0xB5C5, - 33100 - 11904: 0xB5CB, - 33101 - 11904: 0xDB50, - 33102 - 11904: 0xB5C7, - 33103 - 11904: 0xDB4D, - 33104 - 11904: 0xBB47, - 33105 - 11904: 0xB5C6, - 33106 - 11904: 0xDB4C, - 33107 - 11904: 0xB5CC, - 33108 - 11904: 0xB5C4, - 33109 - 11904: 0xB5C3, - 33110 - 11904: 0x997C, - 33113 - 11904: 0x997D, - 33114 - 11904: 0x997E, - 33115 - 11904: 0xDF77, - 33116 - 11904: 0xDF75, - 33118 - 11904: 0xDF7B, - 33120 - 11904: 0xDF73, - 33121 - 11904: 0xDFA2, - 33122 - 11904: 0xDF78, - 33124 - 11904: 0xDF72, - 33125 - 11904: 0xB87B, - 33126 - 11904: 0xB8A3, - 33127 - 11904: 0xDF7D, - 33129 - 11904: 0xDF76, - 33131 - 11904: 0xB87E, - 33132 - 11904: 0x8CFB, - 33133 - 11904: 0x8B5B, - 33134 - 11904: 0xB87C, - 33135 - 11904: 0xDF7E, - 33136 - 11904: 0xB879, - 33137 - 11904: 0xB878, - 33138 - 11904: 0xDF79, - 33139 - 11904: 0xB87D, - 33140 - 11904: 0xB5CD, - 33142 - 11904: 0xDF7C, - 33143 - 11904: 0xDF74, - 33144 - 11904: 0xB87A, - 33145 - 11904: 0xB8A1, - 33146 - 11904: 0xB8A2, - 33148 - 11904: 0x99A3, - 33151 - 11904: 0xBB4C, - 33152 - 11904: 0xBB48, - 33154 - 11904: 0xBB4D, - 33155 - 11904: 0xE3A6, - 33156 - 11904: 0x99A4, - 33158 - 11904: 0xE3A5, - 33159 - 11904: 0xE3A7, - 33160 - 11904: 0xBB4A, - 33161 - 11904: 0xE3A4, - 33162 - 11904: 0xBB4B, - 33163 - 11904: 0xE3AA, - 33164 - 11904: 0xE3A9, - 33165 - 11904: 0xE3A8, - 33167 - 11904: 0xBB49, - 33171 - 11904: 0x99A6, - 33173 - 11904: 0xE741, - 33175 - 11904: 0xE744, - 33176 - 11904: 0xBDA8, - 33177 - 11904: 0xE743, - 33178 - 11904: 0xBDA7, - 33179 - 11904: 0xBDA3, - 33180 - 11904: 0xBDA4, - 33181 - 11904: 0xBDA5, - 33182 - 11904: 0xE740, - 33183 - 11904: 0xE6FE, - 33184 - 11904: 0xBDA6, - 33186 - 11904: 0xE742, - 33187 - 11904: 0xE6FD, - 33189 - 11904: 0x99A8, - 33190 - 11904: 0xEAE9, - 33191 - 11904: 0xEAF3, - 33192 - 11904: 0xBFB1, - 33193 - 11904: 0xBFB0, - 33194 - 11904: 0x8ABE, - 33195 - 11904: 0xEAED, - 33196 - 11904: 0xEAEF, - 33198 - 11904: 0xEAEA, - 33200 - 11904: 0xEAEE, - 33201 - 11904: 0xEAE8, - 33202 - 11904: 0xEAF1, - 33203 - 11904: 0xBFAF, - 33204 - 11904: 0xEAF0, - 33205 - 11904: 0xEAEC, - 33206 - 11904: 0x9E61, - 33207 - 11904: 0xEAF2, - 33209 - 11904: 0xEAEB, - 33210 - 11904: 0xC174, - 33211 - 11904: 0xEDE8, - 33212 - 11904: 0xEDEE, - 33213 - 11904: 0xC178, - 33214 - 11904: 0xC17A, - 33215 - 11904: 0xC177, - 33216 - 11904: 0xC176, - 33217 - 11904: 0x99AA, - 33218 - 11904: 0xC175, - 33219 - 11904: 0xC173, - 33220 - 11904: 0xEDE9, - 33221 - 11904: 0xEDEC, - 33222 - 11904: 0xC172, - 33223 - 11904: 0xEDED, - 33224 - 11904: 0xA0C8, - 33225 - 11904: 0xC179, - 33226 - 11904: 0xEDEB, - 33228 - 11904: 0xEDEA, - 33229 - 11904: 0xC2C0, - 33231 - 11904: 0xC2C1, - 33232 - 11904: 0xF0A1, - 33233 - 11904: 0xF07D, - 33234 - 11904: 0xF07E, - 33237 - 11904: 0xF2C2, - 33239 - 11904: 0xF2C1, - 33240 - 11904: 0xC3BE, - 33241 - 11904: 0xF4B4, - 33242 - 11904: 0xC4A4, - 33243 - 11904: 0xF4B3, - 33245 - 11904: 0xF5F0, - 33246 - 11904: 0xF745, - 33247 - 11904: 0xC5A6, - 33248 - 11904: 0xF943, - 33249 - 11904: 0xF944, - 33250 - 11904: 0xC5D8, - 33251 - 11904: 0xA6DA, - 33252 - 11904: 0x99AB, - 33253 - 11904: 0xAAD7, - 33254 - 11904: 0xDB52, - 33255 - 11904: 0xBB4E, - 33256 - 11904: 0xC17B, - 33257 - 11904: 0xEDEF, - 33258 - 11904: 0xA6DB, - 33260 - 11904: 0xAFE5, - 33261 - 11904: 0xAFE4, - 33262 - 11904: 0xDB53, - 33263 - 11904: 0xFEC4, - 33266 - 11904: 0xEAF4, - 33267 - 11904: 0xA6DC, - 33268 - 11904: 0xAD50, - 33270 - 11904: 0x98C2, - 33271 - 11904: 0xDB54, - 33272 - 11904: 0xDB55, - 33273 - 11904: 0xDB56, - 33274 - 11904: 0xBB4F, - 33275 - 11904: 0xBFB2, - 33276 - 11904: 0xA6DD, - 33278 - 11904: 0xAAD8, - 33279 - 11904: 0xD068, - 33280 - 11904: 0xAFE6, - 33281 - 11904: 0xD370, - 33282 - 11904: 0xB2EA, - 33284 - 11904: 0xDB57, - 33285 - 11904: 0xB8A4, - 33287 - 11904: 0xBB50, - 33288 - 11904: 0xBFB3, - 33289 - 11904: 0xC17C, - 33290 - 11904: 0xC2C2, - 33291 - 11904: 0xF4B5, - 33292 - 11904: 0xA6DE, - 33293 - 11904: 0xAAD9, - 33296 - 11904: 0xAFE7, - 33297 - 11904: 0xD752, - 33298 - 11904: 0xB5CE, - 33300 - 11904: 0xBB51, - 33301 - 11904: 0xE3AB, - 33302 - 11904: 0xE745, - 33304 - 11904: 0x8EE8, - 33306 - 11904: 0xA0BA, - 33307 - 11904: 0xA6DF, - 33308 - 11904: 0xB5CF, - 33309 - 11904: 0xDFA3, - 33310 - 11904: 0xBB52, - 33311 - 11904: 0xA6E0, - 33312 - 11904: 0xCDB1, - 33313 - 11904: 0xD069, - 33314 - 11904: 0xAD51, - 33317 - 11904: 0xD372, - 33318 - 11904: 0xFD77, - 33320 - 11904: 0xAFEA, - 33321 - 11904: 0x8EEE, - 33322 - 11904: 0xAFE8, - 33323 - 11904: 0xAFE9, - 33324 - 11904: 0xAFEB, - 33325 - 11904: 0x9EBF, - 33327 - 11904: 0xD371, - 33330 - 11904: 0xD757, - 33331 - 11904: 0xD754, - 33332 - 11904: 0xD756, - 33333 - 11904: 0xB2EB, - 33334 - 11904: 0xB2ED, - 33335 - 11904: 0xB2EC, - 33336 - 11904: 0xD753, - 33337 - 11904: 0xB2EE, - 33338 - 11904: 0xD755, - 33340 - 11904: 0xDB58, - 33341 - 11904: 0xDB59, - 33342 - 11904: 0x89C2, - 33343 - 11904: 0xDB5A, - 33344 - 11904: 0xDFA6, - 33346 - 11904: 0xDFA7, - 33348 - 11904: 0xDFA5, - 33349 - 11904: 0xDFA8, - 33351 - 11904: 0xB8A5, - 33353 - 11904: 0xDFA4, - 33355 - 11904: 0xBB53, - 33358 - 11904: 0xE74A, - 33359 - 11904: 0xE746, - 33360 - 11904: 0xE749, - 33361 - 11904: 0xE74B, - 33362 - 11904: 0xE748, - 33363 - 11904: 0xE747, - 33364 - 11904: 0x99AC, - 33365 - 11904: 0xEAF5, - 33366 - 11904: 0xEAF6, - 33367 - 11904: 0xEAF7, - 33368 - 11904: 0xBFB4, - 33369 - 11904: 0xBFB5, - 33370 - 11904: 0xEDF1, - 33371 - 11904: 0xEDF0, - 33372 - 11904: 0xEDF2, - 33374 - 11904: 0xF0A3, - 33375 - 11904: 0xF0A2, - 33377 - 11904: 0xF2C4, - 33378 - 11904: 0x956B, - 33379 - 11904: 0xF2C5, - 33380 - 11904: 0xF2C3, - 33381 - 11904: 0x956C, - 33382 - 11904: 0xC4A5, - 33384 - 11904: 0xF4B6, - 33385 - 11904: 0xF4B7, - 33387 - 11904: 0xF746, - 33388 - 11904: 0xF7EF, - 33389 - 11904: 0xF8BB, - 33390 - 11904: 0xA6E1, - 33391 - 11904: 0xA87D, - 33393 - 11904: 0xC17D, - 33394 - 11904: 0xA6E2, - 33396 - 11904: 0xD758, - 33397 - 11904: 0xDB5B, - 33398 - 11904: 0x99AF, - 33399 - 11904: 0xC641, - 33400 - 11904: 0xCA4A, - 33401 - 11904: 0x994A, - 33402 - 11904: 0x8976, - 33403 - 11904: 0x8F48, - 33404 - 11904: 0xCA4B, - 33405 - 11904: 0xCA4D, - 33406 - 11904: 0xA6E3, - 33407 - 11904: 0xCA4E, - 33408 - 11904: 0xCA4C, - 33411 - 11904: 0xCBA2, - 33412 - 11904: 0xCBA3, - 33413 - 11904: 0xCB7B, - 33415 - 11904: 0xFBEE, - 33418 - 11904: 0xCBA1, - 33419 - 11904: 0xA8A1, - 33421 - 11904: 0xA8A2, - 33422 - 11904: 0xCB7C, - 33423 - 11904: 0xCB7A, - 33424 - 11904: 0xCB79, - 33425 - 11904: 0xCB7D, - 33426 - 11904: 0xA87E, - 33427 - 11904: 0xCB7E, - 33428 - 11904: 0xD06A, - 33432 - 11904: 0xCDB6, - 33433 - 11904: 0xAADC, - 33434 - 11904: 0xCDB5, - 33435 - 11904: 0xCDB7, - 33437 - 11904: 0xAADB, - 33438 - 11904: 0xCDBC, - 33439 - 11904: 0xAADF, - 33440 - 11904: 0xCDB2, - 33441 - 11904: 0xCDC0, - 33442 - 11904: 0xCDC6, - 33443 - 11904: 0xAAE6, - 33444 - 11904: 0xCDC3, - 33445 - 11904: 0xAAE3, - 33446 - 11904: 0x99AE, - 33447 - 11904: 0xCDB9, - 33448 - 11904: 0xCDBF, - 33449 - 11904: 0xCDC1, - 33450 - 11904: 0x8EFB, - 33451 - 11904: 0xCDB4, - 33452 - 11904: 0xAAE2, - 33453 - 11904: 0xAADD, - 33454 - 11904: 0xCDBA, - 33455 - 11904: 0xAAE4, - 33456 - 11904: 0xAAE7, - 33457 - 11904: 0xAAE1, - 33459 - 11904: 0xAADA, - 33460 - 11904: 0xCDBE, - 33461 - 11904: 0xCDB8, - 33462 - 11904: 0xCDC5, - 33463 - 11904: 0xAAE9, - 33464 - 11904: 0xAAE5, - 33465 - 11904: 0xAAE0, - 33466 - 11904: 0xCDBD, - 33467 - 11904: 0xAFEC, - 33468 - 11904: 0xCDBB, - 33469 - 11904: 0xAADE, - 33470 - 11904: 0xAAE8, - 33471 - 11904: 0x8CD0, - 33472 - 11904: 0xCDB3, - 33474 - 11904: 0xCDC2, - 33475 - 11904: 0xCDC4, - 33476 - 11904: 0x8B52, - 33482 - 11904: 0x99B0, - 33487 - 11904: 0x8977, - 33488 - 11904: 0x8F41, - 33489 - 11904: 0xAD62, - 33490 - 11904: 0xAD5C, - 33491 - 11904: 0xAD64, - 33492 - 11904: 0xAD61, - 33493 - 11904: 0xD071, - 33494 - 11904: 0xD074, - 33495 - 11904: 0xAD5D, - 33496 - 11904: 0x99B1, - 33497 - 11904: 0xD06B, - 33499 - 11904: 0xAD56, - 33500 - 11904: 0xAD60, - 33502 - 11904: 0xAD63, - 33503 - 11904: 0xAD65, - 33504 - 11904: 0xD0A2, - 33505 - 11904: 0xD077, - 33506 - 11904: 0x8F49, - 33507 - 11904: 0xAD55, - 33508 - 11904: 0xD0A1, - 33509 - 11904: 0xAD59, - 33510 - 11904: 0xAD57, - 33511 - 11904: 0xAD52, - 33512 - 11904: 0xD06F, - 33514 - 11904: 0xD07E, - 33515 - 11904: 0xD073, - 33516 - 11904: 0xD076, - 33517 - 11904: 0xD0A5, - 33518 - 11904: 0xFA4D, - 33519 - 11904: 0xAD66, - 33520 - 11904: 0xD07D, - 33521 - 11904: 0xAD5E, - 33522 - 11904: 0xD078, - 33523 - 11904: 0xD0A4, - 33524 - 11904: 0xD075, - 33525 - 11904: 0xD079, - 33526 - 11904: 0xD07C, - 33527 - 11904: 0x9DE4, - 33528 - 11904: 0x8CB5, - 33529 - 11904: 0xD06D, - 33530 - 11904: 0xD0A3, - 33531 - 11904: 0xD07B, - 33532 - 11904: 0xFBE9, - 33533 - 11904: 0x9B54, - 33534 - 11904: 0xD06C, - 33535 - 11904: 0x99B2, - 33536 - 11904: 0xD070, - 33537 - 11904: 0xAD5F, - 33538 - 11904: 0xAD5A, - 33539 - 11904: 0xAD53, - 33540 - 11904: 0xAD58, - 33541 - 11904: 0xAD54, - 33542 - 11904: 0xAD67, - 33543 - 11904: 0xD06E, - 33544 - 11904: 0xD3A5, - 33545 - 11904: 0xAD5B, - 33547 - 11904: 0x9E68, - 33548 - 11904: 0xD07A, - 33549 - 11904: 0xCE41, - 33558 - 11904: 0xD3A8, - 33559 - 11904: 0xAFFA, - 33560 - 11904: 0x8F4A, - 33561 - 11904: 0xD376, - 33562 - 11904: 0x8F42, - 33563 - 11904: 0xD3A3, - 33564 - 11904: 0xD37D, - 33565 - 11904: 0x8F51, - 33566 - 11904: 0xD3B2, - 33568 - 11904: 0xD3AA, - 33570 - 11904: 0xD37E, - 33572 - 11904: 0xD3A9, - 33573 - 11904: 0xD378, - 33574 - 11904: 0xD37C, - 33575 - 11904: 0xD3B5, - 33576 - 11904: 0xAFFD, - 33577 - 11904: 0xD3AD, - 33578 - 11904: 0xD3A4, - 33579 - 11904: 0xAFED, - 33580 - 11904: 0xD3B3, - 33581 - 11904: 0xD374, - 33583 - 11904: 0xD3AC, - 33585 - 11904: 0xAFFC, - 33586 - 11904: 0xAFF7, - 33587 - 11904: 0xD373, - 33588 - 11904: 0xAFF5, - 33589 - 11904: 0xAFF4, - 33590 - 11904: 0xAFF9, - 33591 - 11904: 0xD3AB, - 33592 - 11904: 0xAFF1, - 33593 - 11904: 0xAFF8, - 33594 - 11904: 0xD072, - 33595 - 11904: 0xDB5C, - 33596 - 11904: 0xD3A6, - 33597 - 11904: 0x9846, - 33599 - 11904: 0xD37A, - 33600 - 11904: 0xAFFB, - 33601 - 11904: 0xD37B, - 33602 - 11904: 0xD3A1, - 33603 - 11904: 0xAFFE, - 33604 - 11904: 0xD375, - 33605 - 11904: 0xD3AF, - 33607 - 11904: 0xD3AE, - 33608 - 11904: 0xD3B6, - 33609 - 11904: 0xAFF3, - 33610 - 11904: 0xAFF0, - 33611 - 11904: 0xD3B4, - 33612 - 11904: 0xD3B0, - 33613 - 11904: 0xD3A7, - 33614 - 11904: 0xD3A2, - 33615 - 11904: 0xAFF6, - 33616 - 11904: 0xAFF2, - 33617 - 11904: 0xD377, - 33618 - 11904: 0xAFEE, - 33619 - 11904: 0xD3B1, - 33620 - 11904: 0xAFEF, - 33622 - 11904: 0xD379, - 33623 - 11904: 0x99B4, - 33634 - 11904: 0x8EF5, - 33635 - 11904: 0xFD55, - 33638 - 11904: 0x9CCD, - 33647 - 11904: 0x8978, - 33651 - 11904: 0xD75E, - 33652 - 11904: 0xD760, - 33653 - 11904: 0xD765, - 33654 - 11904: 0xD779, - 33655 - 11904: 0xB2FC, - 33656 - 11904: 0xB2F2, - 33658 - 11904: 0xD75D, - 33659 - 11904: 0xB2FD, - 33660 - 11904: 0xB2FE, - 33661 - 11904: 0xD768, - 33662 - 11904: 0xD76F, - 33663 - 11904: 0xD775, - 33665 - 11904: 0xD762, - 33667 - 11904: 0xD769, - 33669 - 11904: 0x8F53, - 33670 - 11904: 0xB340, - 33671 - 11904: 0xD777, - 33672 - 11904: 0xD772, - 33673 - 11904: 0xB2FA, - 33674 - 11904: 0xB2F8, - 33675 - 11904: 0xD76E, - 33676 - 11904: 0xD76A, - 33677 - 11904: 0xD75C, - 33678 - 11904: 0xB2EF, - 33679 - 11904: 0xD761, - 33680 - 11904: 0xD759, - 33681 - 11904: 0x8F6F, - 33682 - 11904: 0xB2F7, - 33683 - 11904: 0xB2F9, - 33684 - 11904: 0xD766, - 33685 - 11904: 0xD763, - 33686 - 11904: 0xB2F4, - 33687 - 11904: 0xD773, - 33688 - 11904: 0xB2F1, - 33689 - 11904: 0xD764, - 33690 - 11904: 0xD77A, - 33691 - 11904: 0xD76C, - 33692 - 11904: 0x8E63, - 33693 - 11904: 0xD76B, - 33694 - 11904: 0xB2F0, - 33696 - 11904: 0xB2FB, - 33698 - 11904: 0xB2F3, - 33699 - 11904: 0xD75A, - 33700 - 11904: 0xD75F, - 33701 - 11904: 0xD770, - 33702 - 11904: 0xD776, - 33703 - 11904: 0xB341, - 33704 - 11904: 0xD75B, - 33705 - 11904: 0xD767, - 33706 - 11904: 0xD76D, - 33707 - 11904: 0xB2F6, - 33708 - 11904: 0x8F56, - 33710 - 11904: 0xD778, - 33711 - 11904: 0xD771, - 33712 - 11904: 0xD774, - 33721 - 11904: 0xFE76, - 33725 - 11904: 0xB2F5, - 33726 - 11904: 0x9FC6, - 33727 - 11904: 0xDB6C, - 33728 - 11904: 0xDB60, - 33729 - 11904: 0xB5D7, - 33730 - 11904: 0xDB7D, - 33731 - 11904: 0xDBA7, - 33732 - 11904: 0xDBAA, - 33733 - 11904: 0xB5D5, - 33734 - 11904: 0xDB68, - 33735 - 11904: 0xDBA3, - 33736 - 11904: 0xDB69, - 33737 - 11904: 0xDB77, - 33738 - 11904: 0xB5E2, - 33739 - 11904: 0xDB73, - 33740 - 11904: 0xB5DF, - 33741 - 11904: 0xFAAC, - 33742 - 11904: 0xDB74, - 33743 - 11904: 0xDB5D, - 33745 - 11904: 0xDBA4, - 33747 - 11904: 0x8F58, - 33748 - 11904: 0xB5E8, - 33749 - 11904: 0xDBA1, - 33750 - 11904: 0xDB75, - 33751 - 11904: 0xDBAC, - 33752 - 11904: 0xDB70, - 33753 - 11904: 0xDFC8, - 33755 - 11904: 0xDBAF, - 33756 - 11904: 0xB5E6, - 33757 - 11904: 0xDB6E, - 33758 - 11904: 0xDB7A, - 33759 - 11904: 0xB5E9, - 33760 - 11904: 0xB5D4, - 33761 - 11904: 0xDB72, - 33762 - 11904: 0xDBAD, - 33763 - 11904: 0xDB6B, - 33764 - 11904: 0xDB64, - 33765 - 11904: 0xDB6F, - 33767 - 11904: 0xDB63, - 33768 - 11904: 0xDB61, - 33769 - 11904: 0xB5D0, - 33770 - 11904: 0xDBA5, - 33771 - 11904: 0xDB6A, - 33772 - 11904: 0xDBA8, - 33773 - 11904: 0x9848, - 33774 - 11904: 0xDBA9, - 33775 - 11904: 0xB5D8, - 33776 - 11904: 0xB5DD, - 33777 - 11904: 0xB5D9, - 33778 - 11904: 0xB5E1, - 33779 - 11904: 0xDB7E, - 33780 - 11904: 0xB5DA, - 33781 - 11904: 0xDB76, - 33782 - 11904: 0xDB66, - 33784 - 11904: 0xB5D2, - 33785 - 11904: 0xDB5E, - 33786 - 11904: 0xDBA2, - 33787 - 11904: 0xDBAB, - 33788 - 11904: 0xDB65, - 33789 - 11904: 0xB5E0, - 33790 - 11904: 0xDBB0, - 33791 - 11904: 0xDB71, - 33793 - 11904: 0xDB6D, - 33795 - 11904: 0xB5D1, - 33796 - 11904: 0xB5E5, - 33797 - 11904: 0x99B7, - 33798 - 11904: 0xDB7C, - 33799 - 11904: 0xB5E7, - 33801 - 11904: 0xDB78, - 33802 - 11904: 0xB5DC, - 33803 - 11904: 0xB5D6, - 33804 - 11904: 0xB5DE, - 33805 - 11904: 0xB5D3, - 33806 - 11904: 0xB5E4, - 33807 - 11904: 0xDB79, - 33808 - 11904: 0xDB67, - 33809 - 11904: 0xDB7B, - 33810 - 11904: 0xDB62, - 33811 - 11904: 0xDBA6, - 33812 - 11904: 0x9665, - 33814 - 11904: 0xFA6C, - 33816 - 11904: 0x9DE7, - 33819 - 11904: 0xDBAE, - 33820 - 11904: 0x9E62, - 33824 - 11904: 0x96CC, - 33825 - 11904: 0x8E67, - 33827 - 11904: 0xDB5F, - 33828 - 11904: 0xFC75, - 33830 - 11904: 0x987E, - 33833 - 11904: 0xDFC7, - 33835 - 11904: 0xDFDD, - 33836 - 11904: 0xB855, - 33837 - 11904: 0xDFCC, - 33838 - 11904: 0xFDB9, - 33839 - 11904: 0xDFCA, - 33840 - 11904: 0xDFB5, - 33841 - 11904: 0xB8A9, - 33842 - 11904: 0xDFC5, - 33843 - 11904: 0xDFD9, - 33844 - 11904: 0xDFC1, - 33845 - 11904: 0xB8B1, - 33846 - 11904: 0xDFD8, - 33847 - 11904: 0xDFBF, - 33848 - 11904: 0xB5E3, - 33849 - 11904: 0xDFCF, - 33850 - 11904: 0xDFC0, - 33851 - 11904: 0xDFD6, - 33852 - 11904: 0xB8B0, - 33853 - 11904: 0xB8A8, - 33854 - 11904: 0x97FC, - 33855 - 11904: 0xDFAA, - 33856 - 11904: 0xDFB2, - 33858 - 11904: 0xDFCB, - 33859 - 11904: 0xDFC3, - 33860 - 11904: 0xDFDC, - 33861 - 11904: 0xDFC6, - 33862 - 11904: 0xB8B6, - 33863 - 11904: 0xDFD7, - 33864 - 11904: 0x98F9, - 33865 - 11904: 0xB8AD, - 33866 - 11904: 0x8F66, - 33867 - 11904: 0xDFC9, - 33868 - 11904: 0xDFD1, - 33869 - 11904: 0xDFB6, - 33870 - 11904: 0xDFD0, - 33872 - 11904: 0xDFE1, - 33873 - 11904: 0xDFB1, - 33874 - 11904: 0xDFD2, - 33875 - 11904: 0x956E, - 33876 - 11904: 0xDFDF, - 33877 - 11904: 0x9245, - 33878 - 11904: 0xDFAB, - 33879 - 11904: 0xB5DB, - 33880 - 11904: 0x8F60, - 33881 - 11904: 0xDFB9, - 33882 - 11904: 0xDFB8, - 33883 - 11904: 0xB8AF, - 33884 - 11904: 0x9ED1, - 33885 - 11904: 0xDFBC, - 33886 - 11904: 0xDFBE, - 33887 - 11904: 0xDFCD, - 33888 - 11904: 0xDFDE, - 33889 - 11904: 0xB8B2, - 33890 - 11904: 0xFECD, - 33891 - 11904: 0xB8B3, - 33892 - 11904: 0x99B9, - 33893 - 11904: 0xDFB0, - 33894 - 11904: 0xB8AB, - 33895 - 11904: 0xDFB4, - 33896 - 11904: 0xDFDA, - 33897 - 11904: 0xB8B4, - 33899 - 11904: 0xB8AC, - 33900 - 11904: 0xB8AE, - 33901 - 11904: 0xB8B5, - 33902 - 11904: 0xDFE0, - 33903 - 11904: 0xDFD3, - 33904 - 11904: 0xDFCE, - 33905 - 11904: 0x8F62, - 33906 - 11904: 0x974C, - 33907 - 11904: 0xDFBB, - 33908 - 11904: 0xDFBA, - 33909 - 11904: 0xB8AA, - 33910 - 11904: 0xDFAC, - 33911 - 11904: 0xB8A7, - 33912 - 11904: 0xDFC4, - 33913 - 11904: 0xDFAD, - 33914 - 11904: 0xDFC2, - 33917 - 11904: 0xDFB7, - 33918 - 11904: 0xDFDB, - 33919 - 11904: 0x91C7, - 33920 - 11904: 0x955F, - 33922 - 11904: 0xB8A6, - 33924 - 11904: 0x87AB, - 33926 - 11904: 0xDFB3, - 33928 - 11904: 0x99BB, - 33933 - 11904: 0xDFAF, - 33934 - 11904: 0xDFD5, - 33935 - 11904: 0xDFAE, - 33936 - 11904: 0xBB60, - 33937 - 11904: 0xE3D3, - 33938 - 11904: 0x8E6D, - 33939 - 11904: 0x8F71, - 33940 - 11904: 0xE3C2, - 33942 - 11904: 0x94CB, - 33943 - 11904: 0xE3AC, - 33944 - 11904: 0xE3CA, - 33945 - 11904: 0xBB58, - 33946 - 11904: 0xE3BB, - 33947 - 11904: 0xE3C5, - 33948 - 11904: 0xBB5B, - 33949 - 11904: 0xE3BE, - 33950 - 11904: 0xBB59, - 33951 - 11904: 0xE3AF, - 33952 - 11904: 0xE3CD, - 33953 - 11904: 0xE3AE, - 33954 - 11904: 0xE3C1, - 33955 - 11904: 0x95B1, - 33956 - 11904: 0xE3AD, - 33959 - 11904: 0xE3BF, - 33960 - 11904: 0xE3C8, - 33961 - 11904: 0xE3C6, - 33962 - 11904: 0xE3BA, - 33963 - 11904: 0xE3B5, - 33964 - 11904: 0xE3B3, - 33965 - 11904: 0x9AF2, - 33966 - 11904: 0xE3B4, - 33967 - 11904: 0xE3C7, - 33968 - 11904: 0xE3D2, - 33969 - 11904: 0xE3BC, - 33970 - 11904: 0xBB5A, - 33972 - 11904: 0xE3B7, - 33974 - 11904: 0xE3CB, - 33976 - 11904: 0xBB5D, - 33977 - 11904: 0xE3B6, - 33978 - 11904: 0xE3B0, - 33979 - 11904: 0xE3C0, - 33980 - 11904: 0xBB61, - 33981 - 11904: 0x96C3, - 33982 - 11904: 0x99BD, - 33983 - 11904: 0xBB55, - 33984 - 11904: 0xBB5E, - 33985 - 11904: 0xE3B8, - 33986 - 11904: 0xE3B2, - 33988 - 11904: 0xBB57, - 33989 - 11904: 0xDFD4, - 33990 - 11904: 0xBB56, - 33991 - 11904: 0xE3C3, - 33993 - 11904: 0xBB54, - 33994 - 11904: 0xBB63, - 33995 - 11904: 0xBB5C, - 33996 - 11904: 0xE3C4, - 33997 - 11904: 0xE3B9, - 33998 - 11904: 0xE3B1, - 33999 - 11904: 0xE3CC, - 34000 - 11904: 0xE3BD, - 34001 - 11904: 0xBB62, - 34002 - 11904: 0xE3D0, - 34003 - 11904: 0xBB5F, - 34004 - 11904: 0xE3CF, - 34006 - 11904: 0xE3C9, - 34007 - 11904: 0xE3CE, - 34010 - 11904: 0xA0CF, - 34011 - 11904: 0xE3D1, - 34014 - 11904: 0x8F6D, - 34017 - 11904: 0x99BE, - 34018 - 11904: 0x8EF4, - 34020 - 11904: 0x8F72, - 34021 - 11904: 0x95E4, - 34023 - 11904: 0xE773, - 34024 - 11904: 0xE774, - 34025 - 11904: 0xE767, - 34026 - 11904: 0xE766, - 34027 - 11904: 0xE762, - 34028 - 11904: 0xBDB4, - 34030 - 11904: 0xBDAC, - 34031 - 11904: 0xE776, - 34032 - 11904: 0xE775, - 34033 - 11904: 0xDFA9, - 34034 - 11904: 0xE75F, - 34035 - 11904: 0xE763, - 34036 - 11904: 0xE75D, - 34038 - 11904: 0xE770, - 34039 - 11904: 0xE761, - 34040 - 11904: 0x99BF, - 34041 - 11904: 0xE777, - 34042 - 11904: 0xE75A, - 34043 - 11904: 0xE758, - 34044 - 11904: 0xE764, - 34045 - 11904: 0xE76E, - 34046 - 11904: 0xE769, - 34047 - 11904: 0xBDB6, - 34048 - 11904: 0xE74F, - 34050 - 11904: 0xE76D, - 34051 - 11904: 0x9244, - 34052 - 11904: 0x87D7, - 34053 - 11904: 0xFBA5, - 34054 - 11904: 0xBDB7, - 34055 - 11904: 0xDFBD, - 34056 - 11904: 0xE75B, - 34057 - 11904: 0xE752, - 34058 - 11904: 0xE755, - 34059 - 11904: 0xE77B, - 34060 - 11904: 0xE75C, - 34061 - 11904: 0xE753, - 34062 - 11904: 0xE751, - 34063 - 11904: 0xE74E, - 34064 - 11904: 0x99C0, - 34065 - 11904: 0xBDB0, - 34066 - 11904: 0xE765, - 34067 - 11904: 0xBDAF, - 34068 - 11904: 0xBDB3, - 34069 - 11904: 0xE760, - 34070 - 11904: 0xE768, - 34071 - 11904: 0xBDA9, - 34072 - 11904: 0xE778, - 34073 - 11904: 0xE77C, - 34074 - 11904: 0xBDAB, - 34076 - 11904: 0xE757, - 34077 - 11904: 0xE76B, - 34078 - 11904: 0xE76F, - 34079 - 11904: 0xE754, - 34080 - 11904: 0xE779, - 34081 - 11904: 0xBDB2, - 34083 - 11904: 0xBDB1, - 34084 - 11904: 0xE74C, - 34085 - 11904: 0xBDB5, - 34086 - 11904: 0xE772, - 34087 - 11904: 0xE756, - 34088 - 11904: 0xE76A, - 34089 - 11904: 0xE750, - 34090 - 11904: 0xE75E, - 34091 - 11904: 0xE759, - 34092 - 11904: 0xBDAD, - 34093 - 11904: 0xBDAE, - 34094 - 11904: 0xE76C, - 34095 - 11904: 0xE77D, - 34096 - 11904: 0xE77A, - 34097 - 11904: 0xE771, - 34099 - 11904: 0xFDB4, - 34100 - 11904: 0x8F77, - 34104 - 11904: 0x99C1, - 34107 - 11904: 0xE74D, - 34109 - 11904: 0xBDAA, - 34110 - 11904: 0xEB49, - 34112 - 11904: 0xEB40, - 34113 - 11904: 0xEB43, - 34114 - 11904: 0xFAB9, - 34115 - 11904: 0xBFBB, - 34116 - 11904: 0xEB45, - 34117 - 11904: 0xEAF9, - 34118 - 11904: 0xEB41, - 34119 - 11904: 0xEB47, - 34120 - 11904: 0xBFB8, - 34121 - 11904: 0xBFBC, - 34122 - 11904: 0xBFB6, - 34123 - 11904: 0x8F40, - 34124 - 11904: 0xFA44, - 34125 - 11904: 0xEAFB, - 34126 - 11904: 0xEB4C, - 34129 - 11904: 0xEB46, - 34130 - 11904: 0x99C2, - 34131 - 11904: 0xEAFC, - 34132 - 11904: 0xEB55, - 34133 - 11904: 0xEB4F, - 34134 - 11904: 0xEAF8, - 34135 - 11904: 0xEE46, - 34136 - 11904: 0xEAFE, - 34137 - 11904: 0xBFB7, - 34138 - 11904: 0x8F5C, - 34139 - 11904: 0xEB4A, - 34141 - 11904: 0xEB54, - 34142 - 11904: 0xBFBF, - 34143 - 11904: 0x8CBD, - 34144 - 11904: 0xEB51, - 34145 - 11904: 0xEAFD, - 34146 - 11904: 0xEB44, - 34147 - 11904: 0xEB48, - 34148 - 11904: 0xEB42, - 34149 - 11904: 0xEB56, - 34150 - 11904: 0xEB53, - 34151 - 11904: 0xEB50, - 34152 - 11904: 0xBFB9, - 34153 - 11904: 0xBFBA, - 34154 - 11904: 0xBFBE, - 34155 - 11904: 0xEAFA, - 34156 - 11904: 0xEB57, - 34157 - 11904: 0xBFBD, - 34158 - 11904: 0xEB4D, - 34159 - 11904: 0x99C4, - 34160 - 11904: 0x99C5, - 34161 - 11904: 0xEB4B, - 34163 - 11904: 0x8F7B, - 34165 - 11904: 0xEB4E, - 34166 - 11904: 0xEE53, - 34167 - 11904: 0xEE40, - 34168 - 11904: 0xEE45, - 34169 - 11904: 0xEE52, - 34170 - 11904: 0xEE44, - 34171 - 11904: 0xEDFB, - 34172 - 11904: 0xEE41, - 34174 - 11904: 0xC1A2, - 34176 - 11904: 0xEDF4, - 34177 - 11904: 0xEE4D, - 34178 - 11904: 0xEE4F, - 34179 - 11904: 0xEDF3, - 34180 - 11904: 0xC1A1, - 34181 - 11904: 0xEE51, - 34182 - 11904: 0xEE49, - 34183 - 11904: 0xC1A8, - 34184 - 11904: 0xEE50, - 34185 - 11904: 0xEE42, - 34186 - 11904: 0xC1AA, - 34187 - 11904: 0xEDF9, - 34188 - 11904: 0xEB52, - 34189 - 11904: 0xEE4A, - 34190 - 11904: 0xEE47, - 34191 - 11904: 0xEDF5, - 34192 - 11904: 0xEE55, - 34193 - 11904: 0xC1A4, - 34195 - 11904: 0x8776, - 34196 - 11904: 0xC1A5, - 34197 - 11904: 0xEDF7, - 34198 - 11904: 0xEE48, - 34199 - 11904: 0x8CB6, - 34200 - 11904: 0xEE54, - 34201 - 11904: 0xEE4B, - 34202 - 11904: 0xEDFD, - 34203 - 11904: 0xC1A7, - 34204 - 11904: 0xC1A3, - 34205 - 11904: 0xEE4C, - 34206 - 11904: 0xEDFE, - 34207 - 11904: 0xEE56, - 34208 - 11904: 0xEDF8, - 34209 - 11904: 0xEE43, - 34210 - 11904: 0xEE4E, - 34211 - 11904: 0xEDFA, - 34212 - 11904: 0xEDFC, - 34214 - 11904: 0xC2CB, - 34215 - 11904: 0xEDF6, - 34216 - 11904: 0xC1A9, - 34217 - 11904: 0xC2C4, - 34218 - 11904: 0xC17E, - 34223 - 11904: 0xC1A6, - 34224 - 11904: 0xC2C8, - 34225 - 11904: 0xF0B3, - 34227 - 11904: 0xF0A9, - 34228 - 11904: 0xF0A4, - 34229 - 11904: 0xF0AA, - 34230 - 11904: 0xF0B4, - 34231 - 11904: 0xF0B8, - 34232 - 11904: 0xF0B7, - 34233 - 11904: 0xC2CA, - 34234 - 11904: 0xC2C9, - 34237 - 11904: 0xF0AB, - 34238 - 11904: 0xF0B9, - 34239 - 11904: 0xF0AE, - 34240 - 11904: 0xF0A6, - 34241 - 11904: 0x8FA3, - 34242 - 11904: 0xF0A8, - 34243 - 11904: 0xF0A7, - 34244 - 11904: 0xF0AD, - 34245 - 11904: 0xF0B2, - 34246 - 11904: 0xF0A5, - 34247 - 11904: 0xF0AC, - 34248 - 11904: 0xF0B1, - 34249 - 11904: 0xC2C7, - 34251 - 11904: 0xF0AF, - 34253 - 11904: 0xC2C5, - 34254 - 11904: 0xF0B0, - 34255 - 11904: 0xC2C3, - 34256 - 11904: 0xC2C6, - 34257 - 11904: 0xF2D5, - 34258 - 11904: 0xF0B5, - 34261 - 11904: 0xC3C2, - 34262 - 11904: 0x8CCE, - 34263 - 11904: 0xF2CD, - 34264 - 11904: 0xF2D1, - 34265 - 11904: 0xF2C9, - 34266 - 11904: 0xF2CC, - 34268 - 11904: 0xF2D4, - 34269 - 11904: 0xC3C0, - 34270 - 11904: 0xF2D9, - 34271 - 11904: 0xF2D2, - 34272 - 11904: 0x99C6, - 34273 - 11904: 0xF2CA, - 34274 - 11904: 0xF2DA, - 34275 - 11904: 0xF2D3, - 34276 - 11904: 0xC3C3, - 34277 - 11904: 0xC3C4, - 34278 - 11904: 0xF2D7, - 34280 - 11904: 0xF2CB, - 34281 - 11904: 0xC3BF, - 34282 - 11904: 0xC3C1, - 34283 - 11904: 0xF2C6, - 34284 - 11904: 0xF2CE, - 34285 - 11904: 0xF2C8, - 34286 - 11904: 0x96CD, - 34287 - 11904: 0xF2D8, - 34288 - 11904: 0xF2D6, - 34289 - 11904: 0xF2C7, - 34290 - 11904: 0xF2CF, - 34294 - 11904: 0xF4BE, - 34295 - 11904: 0xC3C5, - 34296 - 11904: 0xF2D0, - 34297 - 11904: 0xC4A7, - 34298 - 11904: 0xC4A9, - 34299 - 11904: 0xC4A6, - 34300 - 11904: 0x96C7, - 34301 - 11904: 0xF4C3, - 34302 - 11904: 0xF4BB, - 34303 - 11904: 0xF4B9, - 34304 - 11904: 0xF4BD, - 34305 - 11904: 0xF4BA, - 34306 - 11904: 0x8FA5, - 34308 - 11904: 0xF4BF, - 34309 - 11904: 0xF4C1, - 34310 - 11904: 0xC4AA, - 34311 - 11904: 0xC4AC, - 34313 - 11904: 0xF4C0, - 34314 - 11904: 0xC4AD, - 34315 - 11904: 0xC4AB, - 34316 - 11904: 0xF4C2, - 34317 - 11904: 0xFABB, - 34319 - 11904: 0x8C61, - 34320 - 11904: 0x9570, - 34321 - 11904: 0xC4A8, - 34323 - 11904: 0x87AF, - 34324 - 11904: 0x9368, - 34326 - 11904: 0x8F7E, - 34327 - 11904: 0xC4F4, - 34328 - 11904: 0xF5F1, - 34329 - 11904: 0xF5F7, - 34330 - 11904: 0xC4F6, - 34331 - 11904: 0xF4BC, - 34332 - 11904: 0xF5F6, - 34334 - 11904: 0xF5FD, - 34335 - 11904: 0xF5F4, - 34336 - 11904: 0xF5FB, - 34337 - 11904: 0xF5FA, - 34338 - 11904: 0xF4B8, - 34339 - 11904: 0xF5F5, - 34340 - 11904: 0xF0B6, - 34341 - 11904: 0xF5FE, - 34342 - 11904: 0xF5F3, - 34343 - 11904: 0xF5F8, - 34344 - 11904: 0x8FAA, - 34345 - 11904: 0xF5FC, - 34346 - 11904: 0xF5F2, - 34348 - 11904: 0xF74A, - 34349 - 11904: 0xC4F5, - 34350 - 11904: 0xF5F9, - 34351 - 11904: 0xA050, - 34353 - 11904: 0xF7F4, - 34354 - 11904: 0xF74B, - 34355 - 11904: 0xF749, - 34356 - 11904: 0xF747, - 34357 - 11904: 0xF748, - 34358 - 11904: 0xF74C, - 34360 - 11904: 0xC5D9, - 34361 - 11904: 0xF7F2, - 34362 - 11904: 0xF7F0, - 34363 - 11904: 0xF7F5, - 34364 - 11904: 0xF7F3, - 34366 - 11904: 0xF7F6, - 34367 - 11904: 0xC5DA, - 34368 - 11904: 0xF7F1, - 34370 - 11904: 0x90D3, - 34371 - 11904: 0xF8BC, - 34373 - 11904: 0x9556, - 34374 - 11904: 0xF945, - 34375 - 11904: 0xF946, - 34376 - 11904: 0xF947, - 34379 - 11904: 0xF9C7, - 34380 - 11904: 0xF9BD, - 34381 - 11904: 0xCA4F, - 34382 - 11904: 0xAAEA, - 34384 - 11904: 0xAD68, - 34386 - 11904: 0xD3B8, - 34387 - 11904: 0xD3B7, - 34388 - 11904: 0xB040, - 34389 - 11904: 0xB342, - 34390 - 11904: 0xD77C, - 34393 - 11904: 0xD77B, - 34395 - 11904: 0xB5EA, - 34396 - 11904: 0xB8B8, - 34398 - 11904: 0xB8B7, - 34399 - 11904: 0xB8B9, - 34401 - 11904: 0xE3D4, - 34402 - 11904: 0xE77E, - 34403 - 11904: 0xEB58, - 34404 - 11904: 0xEB5A, - 34405 - 11904: 0xEB59, - 34407 - 11904: 0xC1AB, - 34408 - 11904: 0xEE57, - 34409 - 11904: 0xF0BA, - 34410 - 11904: 0xF9A5, - 34411 - 11904: 0xA6E4, - 34412 - 11904: 0x8FB8, - 34413 - 11904: 0xCDC9, - 34414 - 11904: 0xCDCA, - 34415 - 11904: 0xCDC8, - 34416 - 11904: 0xCDC7, - 34417 - 11904: 0xAAEB, - 34418 - 11904: 0x99C8, - 34419 - 11904: 0xD0A9, - 34420 - 11904: 0xD0A7, - 34423 - 11904: 0xD0A6, - 34425 - 11904: 0xAD69, - 34426 - 11904: 0xAD6B, - 34427 - 11904: 0xAD6A, - 34428 - 11904: 0xD0A8, - 34430 - 11904: 0x8FAF, - 34437 - 11904: 0xD3C4, - 34438 - 11904: 0xD3C1, - 34439 - 11904: 0xD3BF, - 34442 - 11904: 0xB041, - 34443 - 11904: 0xD3C2, - 34444 - 11904: 0xB046, - 34445 - 11904: 0xD3BC, - 34446 - 11904: 0xD3CB, - 34448 - 11904: 0xD3CD, - 34449 - 11904: 0xD3BD, - 34450 - 11904: 0x99C9, - 34451 - 11904: 0xB043, - 34452 - 11904: 0xD3CE, - 34453 - 11904: 0xD3C9, - 34454 - 11904: 0xD3BB, - 34455 - 11904: 0xD3C0, - 34456 - 11904: 0xD3CA, - 34457 - 11904: 0xD3C6, - 34458 - 11904: 0xD3C3, - 34460 - 11904: 0xB048, - 34461 - 11904: 0xD3CC, - 34462 - 11904: 0xD3BE, - 34464 - 11904: 0x9579, - 34465 - 11904: 0xD3C7, - 34466 - 11904: 0xD3B9, - 34467 - 11904: 0xB047, - 34468 - 11904: 0xB044, - 34469 - 11904: 0xD3C5, - 34471 - 11904: 0xD3C8, - 34472 - 11904: 0xD3BA, - 34473 - 11904: 0xB045, - 34474 - 11904: 0xB042, - 34477 - 11904: 0x9F49, - 34479 - 11904: 0xB34C, - 34480 - 11904: 0xD7A5, - 34481 - 11904: 0xB34B, - 34482 - 11904: 0x99CA, - 34483 - 11904: 0xD7A8, - 34484 - 11904: 0xD7AB, - 34485 - 11904: 0xB348, - 34486 - 11904: 0xB346, - 34487 - 11904: 0xD77E, - 34488 - 11904: 0xD7A9, - 34489 - 11904: 0xD7A7, - 34490 - 11904: 0xD7A4, - 34491 - 11904: 0xD7AC, - 34492 - 11904: 0xD7AD, - 34493 - 11904: 0xD7AF, - 34494 - 11904: 0xD7B0, - 34495 - 11904: 0xD77D, - 34496 - 11904: 0xB345, - 34497 - 11904: 0xD7A2, - 34498 - 11904: 0xD7A1, - 34499 - 11904: 0xD7AE, - 34500 - 11904: 0xB347, - 34501 - 11904: 0xD7A3, - 34502 - 11904: 0xB349, - 34503 - 11904: 0xB344, - 34504 - 11904: 0xD7A6, - 34505 - 11904: 0xB34D, - 34507 - 11904: 0xB34A, - 34508 - 11904: 0xD7AA, - 34512 - 11904: 0xB5F1, - 34513 - 11904: 0xDBBF, - 34515 - 11904: 0xDBB4, - 34516 - 11904: 0xB5EE, - 34518 - 11904: 0xDFE7, - 34519 - 11904: 0xDBBD, - 34520 - 11904: 0xDBB1, - 34521 - 11904: 0xB5EC, - 34522 - 11904: 0xDBB6, - 34523 - 11904: 0xB5EF, - 34524 - 11904: 0xDBBA, - 34525 - 11904: 0xDBB8, - 34526 - 11904: 0xB5F2, - 34527 - 11904: 0xB5EB, - 34530 - 11904: 0xDBB2, - 34531 - 11904: 0xDBB5, - 34532 - 11904: 0xB5F0, - 34534 - 11904: 0xDBB3, - 34536 - 11904: 0xDBBE, - 34537 - 11904: 0xDBBC, - 34538 - 11904: 0xDBB7, - 34539 - 11904: 0xDBB9, - 34540 - 11904: 0xDBBB, - 34541 - 11904: 0xB5ED, - 34543 - 11904: 0x99CB, - 34549 - 11904: 0xDFE8, - 34550 - 11904: 0xDFEE, - 34551 - 11904: 0xDFE4, - 34552 - 11904: 0xDFEA, - 34553 - 11904: 0xB8BA, - 34554 - 11904: 0xDFE6, - 34555 - 11904: 0xB8C0, - 34558 - 11904: 0xB8BF, - 34560 - 11904: 0xB8BE, - 34561 - 11904: 0xDFED, - 34562 - 11904: 0xB8C1, - 34563 - 11904: 0xB8C2, - 34564 - 11904: 0xDFE3, - 34565 - 11904: 0xDFF0, - 34566 - 11904: 0xB8C3, - 34567 - 11904: 0xB8BD, - 34568 - 11904: 0xB8BC, - 34569 - 11904: 0xDFEC, - 34570 - 11904: 0xB8C4, - 34571 - 11904: 0xDFE2, - 34572 - 11904: 0xDFE5, - 34573 - 11904: 0xDFEF, - 34574 - 11904: 0xDFEB, - 34577 - 11904: 0xE3F4, - 34578 - 11904: 0xE3E9, - 34579 - 11904: 0xB8BB, - 34584 - 11904: 0xBB6A, - 34585 - 11904: 0xE3DD, - 34586 - 11904: 0xE3F2, - 34587 - 11904: 0xE3DE, - 34588 - 11904: 0xBB65, - 34590 - 11904: 0xE3DB, - 34592 - 11904: 0xE3E4, - 34593 - 11904: 0xE3DC, - 34594 - 11904: 0xBB67, - 34595 - 11904: 0xE3D6, - 34596 - 11904: 0xE3F1, - 34597 - 11904: 0xBB68, - 34598 - 11904: 0xE3EE, - 34599 - 11904: 0xE3EF, - 34600 - 11904: 0xE3D7, - 34601 - 11904: 0xBB6D, - 34602 - 11904: 0xE3E6, - 34604 - 11904: 0xE3E0, - 34605 - 11904: 0xE3E7, - 34606 - 11904: 0xE3DA, - 34608 - 11904: 0xE3F3, - 34609 - 11904: 0xE3EB, - 34610 - 11904: 0xE3E5, - 34611 - 11904: 0xE3D5, - 34612 - 11904: 0xBB69, - 34613 - 11904: 0xE3EC, - 34615 - 11904: 0xBB6C, - 34616 - 11904: 0xE3F0, - 34618 - 11904: 0xE3EA, - 34619 - 11904: 0xBB66, - 34620 - 11904: 0xE3E8, - 34622 - 11904: 0xE3E2, - 34623 - 11904: 0xBB64, - 34624 - 11904: 0xE3D9, - 34625 - 11904: 0xE3E1, - 34626 - 11904: 0xE3ED, - 34627 - 11904: 0xE3DF, - 34630 - 11904: 0xE3E3, - 34636 - 11904: 0xBDC1, - 34637 - 11904: 0xDFE9, - 34638 - 11904: 0xE7B2, - 34639 - 11904: 0xE7BB, - 34640 - 11904: 0xE7B1, - 34641 - 11904: 0xE7AD, - 34642 - 11904: 0xE7AA, - 34643 - 11904: 0xBDC2, - 34644 - 11904: 0xE7A8, - 34645 - 11904: 0xBB6B, - 34646 - 11904: 0xE7A1, - 34647 - 11904: 0xBDC0, - 34648 - 11904: 0xE7A7, - 34649 - 11904: 0xBDBF, - 34650 - 11904: 0xE7AC, - 34651 - 11904: 0xE7A9, - 34652 - 11904: 0xE7B9, - 34653 - 11904: 0xE7B4, - 34654 - 11904: 0xE7AE, - 34655 - 11904: 0xE7B3, - 34656 - 11904: 0xBDBB, - 34657 - 11904: 0xE7AB, - 34658 - 11904: 0xE7BE, - 34659 - 11904: 0xE7A2, - 34660 - 11904: 0xE7A3, - 34661 - 11904: 0xE7BA, - 34662 - 11904: 0xBDBC, - 34663 - 11904: 0xE7BF, - 34664 - 11904: 0xBDBE, - 34665 - 11904: 0xE7C0, - 34666 - 11904: 0xE7B0, - 34667 - 11904: 0xE3D8, - 34668 - 11904: 0xE7B6, - 34669 - 11904: 0xE7AF, - 34670 - 11904: 0xE7B8, - 34671 - 11904: 0xE7B5, - 34672 - 11904: 0x9DD5, - 34673 - 11904: 0x8FB0, - 34675 - 11904: 0xE7A6, - 34676 - 11904: 0xBDB9, - 34677 - 11904: 0xE7BD, - 34678 - 11904: 0xBDBA, - 34679 - 11904: 0xE7A4, - 34680 - 11904: 0xBDBD, - 34681 - 11904: 0xEB64, - 34682 - 11904: 0xE7B7, - 34683 - 11904: 0xE7BC, - 34685 - 11904: 0xFA7A, - 34689 - 11904: 0xEB61, - 34690 - 11904: 0xBDB8, - 34691 - 11904: 0xBFC0, - 34692 - 11904: 0xEB6B, - 34693 - 11904: 0xEB67, - 34694 - 11904: 0x9E5F, - 34695 - 11904: 0xEB65, - 34696 - 11904: 0xEB60, - 34697 - 11904: 0xEB6F, - 34699 - 11904: 0x99CD, - 34700 - 11904: 0xA0C9, - 34701 - 11904: 0xBFC4, - 34703 - 11904: 0xEB5C, - 34704 - 11904: 0xEB68, - 34705 - 11904: 0xEB69, - 34706 - 11904: 0xEB5F, - 34707 - 11904: 0xEB5E, - 34708 - 11904: 0xEB6C, - 34710 - 11904: 0xEB62, - 34711 - 11904: 0xEB5D, - 34712 - 11904: 0xEB63, - 34714 - 11904: 0xEB6E, - 34715 - 11904: 0xEB5B, - 34716 - 11904: 0xEB6D, - 34717 - 11904: 0xEB6A, - 34718 - 11904: 0xBFC2, - 34719 - 11904: 0xBFC1, - 34722 - 11904: 0xBFC3, - 34723 - 11904: 0xEB66, - 34724 - 11904: 0xF0CB, - 34725 - 11904: 0x9ADB, - 34729 - 11904: 0xA0C6, - 34730 - 11904: 0xEE59, - 34731 - 11904: 0xC1B1, - 34732 - 11904: 0xEE5D, - 34733 - 11904: 0xEE5A, - 34734 - 11904: 0xEE61, - 34735 - 11904: 0xEE67, - 34736 - 11904: 0xEE5C, - 34737 - 11904: 0x8FB4, - 34738 - 11904: 0xEE70, - 34739 - 11904: 0xC1AE, - 34740 - 11904: 0xEE6A, - 34741 - 11904: 0xEE5F, - 34742 - 11904: 0xEE6B, - 34743 - 11904: 0xEE66, - 34744 - 11904: 0xEE6D, - 34745 - 11904: 0xEE5E, - 34746 - 11904: 0xC1B3, - 34747 - 11904: 0xC1B2, - 34748 - 11904: 0xEE60, - 34749 - 11904: 0xEE6E, - 34750 - 11904: 0xEE58, - 34751 - 11904: 0xEE6C, - 34752 - 11904: 0xC1AC, - 34753 - 11904: 0xA0D7, - 34754 - 11904: 0xEE64, - 34755 - 11904: 0xEE63, - 34756 - 11904: 0xEE68, - 34757 - 11904: 0xEE5B, - 34758 - 11904: 0xC1B0, - 34760 - 11904: 0xC1B4, - 34761 - 11904: 0xEE62, - 34762 - 11904: 0xEE69, - 34763 - 11904: 0xC1B5, - 34764 - 11904: 0xEE65, - 34766 - 11904: 0xA0C7, - 34769 - 11904: 0xC1AD, - 34770 - 11904: 0xC1AF, - 34771 - 11904: 0xF0C7, - 34772 - 11904: 0xF0C5, - 34774 - 11904: 0xA043, - 34775 - 11904: 0xF0CC, - 34776 - 11904: 0xF0C9, - 34777 - 11904: 0xF0CD, - 34778 - 11904: 0x8FB5, - 34779 - 11904: 0xF0BE, - 34780 - 11904: 0xF0C6, - 34781 - 11904: 0xF0D1, - 34782 - 11904: 0xEE6F, - 34783 - 11904: 0xF0C2, - 34784 - 11904: 0xC2CF, - 34785 - 11904: 0xE7A5, - 34786 - 11904: 0xF0BD, - 34787 - 11904: 0xF0CA, - 34788 - 11904: 0xF0C4, - 34789 - 11904: 0xF0C1, - 34790 - 11904: 0xF0BC, - 34791 - 11904: 0xF0BB, - 34792 - 11904: 0xF0D0, - 34794 - 11904: 0xF0C0, - 34795 - 11904: 0xF0BF, - 34796 - 11904: 0xC2CD, - 34797 - 11904: 0xF0C8, - 34798 - 11904: 0x8FB2, - 34799 - 11904: 0xC2CC, - 34802 - 11904: 0xC2CE, - 34803 - 11904: 0xF0C3, - 34804 - 11904: 0xF0CF, - 34805 - 11904: 0xA061, - 34806 - 11904: 0xF2DE, - 34807 - 11904: 0xF2DF, - 34809 - 11904: 0xC3C9, - 34810 - 11904: 0xF2DC, - 34811 - 11904: 0xC3C6, - 34812 - 11904: 0xF2E4, - 34814 - 11904: 0xC3CA, - 34815 - 11904: 0xF2E6, - 34816 - 11904: 0xF2DB, - 34817 - 11904: 0xF0CE, - 34818 - 11904: 0xF2E8, - 34819 - 11904: 0xF2DD, - 34820 - 11904: 0x9E5E, - 34821 - 11904: 0xC3C7, - 34822 - 11904: 0xF2E3, - 34824 - 11904: 0xF2E5, - 34825 - 11904: 0xF2E0, - 34826 - 11904: 0xF2E7, - 34827 - 11904: 0xF2E2, - 34828 - 11904: 0xF2E1, - 34829 - 11904: 0xC3C8, - 34831 - 11904: 0xA063, - 34832 - 11904: 0xF4C5, - 34833 - 11904: 0xF4C6, - 34835 - 11904: 0xF4C8, - 34836 - 11904: 0xC4AE, - 34837 - 11904: 0xC4AF, - 34838 - 11904: 0xF4C9, - 34839 - 11904: 0xF4C7, - 34840 - 11904: 0x9FE8, - 34841 - 11904: 0xF4C4, - 34843 - 11904: 0xF642, - 34844 - 11904: 0xF645, - 34845 - 11904: 0xF641, - 34847 - 11904: 0xC4FA, - 34848 - 11904: 0xF643, - 34849 - 11904: 0xC4F9, - 34850 - 11904: 0xC4F8, - 34851 - 11904: 0xC4F7, - 34852 - 11904: 0xF644, - 34853 - 11904: 0xF751, - 34854 - 11904: 0xF74F, - 34855 - 11904: 0x9CB2, - 34856 - 11904: 0xF74E, - 34857 - 11904: 0xF640, - 34858 - 11904: 0xF750, - 34859 - 11904: 0xF646, - 34860 - 11904: 0xF74D, - 34861 - 11904: 0x957C, - 34862 - 11904: 0xF7F9, - 34863 - 11904: 0xF7D7, - 34864 - 11904: 0xF7F7, - 34865 - 11904: 0xC5DB, - 34866 - 11904: 0xF7F8, - 34867 - 11904: 0xF7FA, - 34869 - 11904: 0xF8BF, - 34870 - 11904: 0xC5FA, - 34871 - 11904: 0xF8BE, - 34872 - 11904: 0xF8BD, - 34873 - 11904: 0xC5FB, - 34875 - 11904: 0xC65A, - 34876 - 11904: 0xF96E, - 34877 - 11904: 0xF9A7, - 34878 - 11904: 0xF9A6, - 34879 - 11904: 0xF9A8, - 34880 - 11904: 0xA6E5, - 34881 - 11904: 0xD0AA, - 34882 - 11904: 0x9FC7, - 34883 - 11904: 0xD3CF, - 34884 - 11904: 0xD3D0, - 34885 - 11904: 0x8FBB, - 34886 - 11904: 0x8FBC, - 34888 - 11904: 0xDBC0, - 34890 - 11904: 0xF647, - 34891 - 11904: 0xF8C0, - 34892 - 11904: 0xA6E6, - 34893 - 11904: 0xAD6C, - 34894 - 11904: 0xD0AB, - 34895 - 11904: 0x8FEC, - 34898 - 11904: 0xD7B1, - 34899 - 11904: 0xB34E, - 34901 - 11904: 0xDBC2, - 34902 - 11904: 0xDBC1, - 34903 - 11904: 0xB5F3, - 34905 - 11904: 0xB8C5, - 34906 - 11904: 0xE7C1, - 34907 - 11904: 0xBDC3, - 34909 - 11904: 0xBDC4, - 34910 - 11904: 0x8FC0, - 34912 - 11904: 0x936A, - 34913 - 11904: 0xBFC5, - 34914 - 11904: 0xC5FC, - 34915 - 11904: 0xA6E7, - 34916 - 11904: 0x8BE4, - 34917 - 11904: 0x9C7C, - 34919 - 11904: 0xD0AC, - 34920 - 11904: 0xAAED, - 34921 - 11904: 0xD0AE, - 34922 - 11904: 0xD0AD, - 34923 - 11904: 0xAD6D, - 34925 - 11904: 0xD3D1, - 34926 - 11904: 0x95A1, - 34927 - 11904: 0xD3D8, - 34928 - 11904: 0xB049, - 34929 - 11904: 0xD3D6, - 34930 - 11904: 0xD3D4, - 34932 - 11904: 0xD3DB, - 34933 - 11904: 0xD3D2, - 34934 - 11904: 0xD3D3, - 34935 - 11904: 0xB04A, - 34937 - 11904: 0xB04E, - 34940 - 11904: 0xD3DC, - 34941 - 11904: 0xB04D, - 34942 - 11904: 0xD3DA, - 34943 - 11904: 0xD3D7, - 34944 - 11904: 0xD3D5, - 34945 - 11904: 0xB04B, - 34946 - 11904: 0xB04C, - 34947 - 11904: 0xD3D9, - 34948 - 11904: 0xFEEC, - 34951 - 11904: 0x95A3, - 34952 - 11904: 0xB350, - 34953 - 11904: 0xD7B2, - 34955 - 11904: 0xB355, - 34956 - 11904: 0xD7C2, - 34957 - 11904: 0xB354, - 34958 - 11904: 0xD7C4, - 34959 - 11904: 0x8C45, - 34960 - 11904: 0x8CB8, - 34961 - 11904: 0xD7B8, - 34962 - 11904: 0xB352, - 34963 - 11904: 0xD7C3, - 34965 - 11904: 0xD7B3, - 34966 - 11904: 0xB353, - 34967 - 11904: 0xD7BF, - 34968 - 11904: 0xD7BB, - 34969 - 11904: 0xD7BD, - 34970 - 11904: 0xD7B7, - 34971 - 11904: 0xD7BE, - 34972 - 11904: 0x8FC1, - 34973 - 11904: 0x87B7, - 34974 - 11904: 0xB34F, - 34975 - 11904: 0xD7BA, - 34976 - 11904: 0xA052, - 34977 - 11904: 0xD7B9, - 34978 - 11904: 0xD7B5, - 34980 - 11904: 0xD7C0, - 34983 - 11904: 0xD7BC, - 34984 - 11904: 0xD7B4, - 34986 - 11904: 0xD7B6, - 34987 - 11904: 0xB351, - 34988 - 11904: 0xD7C1, - 34990 - 11904: 0x99D0, - 34993 - 11904: 0xB5F6, - 34994 - 11904: 0xDBCD, - 34996 - 11904: 0x8FC3, - 34997 - 11904: 0x8FC4, - 34998 - 11904: 0xDBC9, - 34999 - 11904: 0xDBCB, - 35000 - 11904: 0xDBC6, - 35001 - 11904: 0xDBC5, - 35002 - 11904: 0xDBC3, - 35004 - 11904: 0xDBCA, - 35005 - 11904: 0xDBCC, - 35006 - 11904: 0xDBC8, - 35007 - 11904: 0x95A4, - 35008 - 11904: 0xDBC7, - 35009 - 11904: 0xB5F4, - 35010 - 11904: 0xB5F5, - 35013 - 11904: 0x8FC6, - 35015 - 11904: 0x9E60, - 35017 - 11904: 0xDBCF, - 35018 - 11904: 0xB8CD, - 35019 - 11904: 0xDFF2, - 35020 - 11904: 0xDFF8, - 35021 - 11904: 0xDFF3, - 35022 - 11904: 0xDFF4, - 35023 - 11904: 0xF9D8, - 35024 - 11904: 0xDFF9, - 35026 - 11904: 0xB8CF, - 35028 - 11904: 0xB8C7, - 35029 - 11904: 0xB8CE, - 35030 - 11904: 0xDFF1, - 35031 - 11904: 0xDBC4, - 35032 - 11904: 0xB8CA, - 35033 - 11904: 0xB8C8, - 35034 - 11904: 0xDFF7, - 35035 - 11904: 0xDFF6, - 35036 - 11904: 0xB8C9, - 35037 - 11904: 0xB8CB, - 35038 - 11904: 0xDFF5, - 35039 - 11904: 0xB8C6, - 35041 - 11904: 0xB8CC, - 35046 - 11904: 0x95A5, - 35047 - 11904: 0xE3F6, - 35048 - 11904: 0xBB74, - 35051 - 11904: 0xE442, - 35052 - 11904: 0xE441, - 35054 - 11904: 0xE3FB, - 35055 - 11904: 0xBB76, - 35056 - 11904: 0xE440, - 35057 - 11904: 0xE3F7, - 35058 - 11904: 0xE3F8, - 35059 - 11904: 0xBB6E, - 35060 - 11904: 0xBB70, - 35061 - 11904: 0x9CB3, - 35062 - 11904: 0xE3FD, - 35063 - 11904: 0xE3F5, - 35064 - 11904: 0xBB72, - 35065 - 11904: 0xBB71, - 35066 - 11904: 0xE3F9, - 35067 - 11904: 0xE3FE, - 35068 - 11904: 0xE3FC, - 35069 - 11904: 0xBB73, - 35070 - 11904: 0xE3FA, - 35071 - 11904: 0x99D1, - 35072 - 11904: 0xFEF1, - 35073 - 11904: 0xDBCE, - 35074 - 11904: 0xBB6F, - 35077 - 11904: 0xE7C2, - 35078 - 11904: 0xE7C9, - 35079 - 11904: 0xBDC6, - 35081 - 11904: 0xE7CD, - 35082 - 11904: 0xBDCA, - 35083 - 11904: 0xE7C5, - 35084 - 11904: 0xE7C3, - 35086 - 11904: 0xE7CC, - 35088 - 11904: 0xBDC5, - 35089 - 11904: 0xE7CB, - 35090 - 11904: 0xBDC7, - 35091 - 11904: 0xBDC8, - 35092 - 11904: 0xE7C4, - 35093 - 11904: 0xBDC9, - 35094 - 11904: 0xE7CA, - 35095 - 11904: 0xE7C6, - 35096 - 11904: 0xE7C7, - 35097 - 11904: 0xE7C8, - 35098 - 11904: 0xBB75, - 35102 - 11904: 0xEB70, - 35103 - 11904: 0xEB7C, - 35105 - 11904: 0xBFCA, - 35106 - 11904: 0xEB77, - 35107 - 11904: 0xEB79, - 35108 - 11904: 0x99D2, - 35109 - 11904: 0xBFC8, - 35110 - 11904: 0xEB71, - 35111 - 11904: 0xEB75, - 35113 - 11904: 0xEB78, - 35114 - 11904: 0xBFC6, - 35115 - 11904: 0xBFC9, - 35116 - 11904: 0xEB7B, - 35117 - 11904: 0xEB73, - 35118 - 11904: 0xEB74, - 35119 - 11904: 0xEB7A, - 35120 - 11904: 0xEB72, - 35121 - 11904: 0xEB76, - 35122 - 11904: 0xBFC7, - 35123 - 11904: 0xEE72, - 35125 - 11904: 0xEE71, - 35126 - 11904: 0xC1B7, - 35127 - 11904: 0xEE77, - 35128 - 11904: 0xC1B9, - 35131 - 11904: 0xC1B6, - 35132 - 11904: 0xEE73, - 35133 - 11904: 0xC1BA, - 35134 - 11904: 0xEE74, - 35137 - 11904: 0xEE75, - 35138 - 11904: 0xEE78, - 35139 - 11904: 0x9CC2, - 35140 - 11904: 0xC1B8, - 35142 - 11904: 0xF0D6, - 35143 - 11904: 0x99D3, - 35145 - 11904: 0xF0D9, - 35147 - 11904: 0xF0D3, - 35148 - 11904: 0xF0D5, - 35149 - 11904: 0x95A7, - 35151 - 11904: 0xF0D4, - 35152 - 11904: 0xF0D7, - 35153 - 11904: 0xF0D8, - 35154 - 11904: 0xEE76, - 35155 - 11904: 0xF0D2, - 35156 - 11904: 0x95A9, - 35158 - 11904: 0xC3CD, - 35159 - 11904: 0xF2EC, - 35160 - 11904: 0xF2EF, - 35161 - 11904: 0xF2F1, - 35162 - 11904: 0xF2EA, - 35163 - 11904: 0xF2EB, - 35164 - 11904: 0xF2EE, - 35165 - 11904: 0xF2F0, - 35166 - 11904: 0xC3CE, - 35167 - 11904: 0xC3CC, - 35168 - 11904: 0xC3CB, - 35169 - 11904: 0xF2ED, - 35170 - 11904: 0xF2E9, - 35171 - 11904: 0xF4CA, - 35172 - 11904: 0xC4B0, - 35173 - 11904: 0x95A6, - 35174 - 11904: 0xF4CB, - 35177 - 11904: 0xF649, - 35178 - 11904: 0xC4FB, - 35179 - 11904: 0xF64B, - 35180 - 11904: 0xC4FC, - 35181 - 11904: 0xF648, - 35182 - 11904: 0xF64A, - 35183 - 11904: 0xC5A8, - 35185 - 11904: 0xF752, - 35186 - 11904: 0xC5A7, - 35187 - 11904: 0xF7FD, - 35188 - 11904: 0xF7FC, - 35190 - 11904: 0xF7FB, - 35191 - 11904: 0x9C5D, - 35193 - 11904: 0xF948, - 35194 - 11904: 0xF949, - 35195 - 11904: 0xF94B, - 35196 - 11904: 0xF94A, - 35198 - 11904: 0xCA50, - 35199 - 11904: 0xA6E8, - 35200 - 11904: 0x98E2, - 35201 - 11904: 0xAD6E, - 35202 - 11904: 0xD7C5, - 35203 - 11904: 0xB5F7, - 35205 - 11904: 0xDFFA, - 35206 - 11904: 0xC2D0, - 35207 - 11904: 0x8FC9, - 35208 - 11904: 0xF2F2, - 35209 - 11904: 0xA0C2, - 35210 - 11904: 0x8FCA, - 35211 - 11904: 0xA8A3, - 35215 - 11904: 0xB357, - 35217 - 11904: 0x99D4, - 35219 - 11904: 0xB356, - 35220 - 11904: 0xA0B9, - 35221 - 11904: 0xDBD0, - 35222 - 11904: 0xB5F8, - 35223 - 11904: 0xDBD2, - 35224 - 11904: 0xDBD1, - 35227 - 11904: 0xDFFB, - 35228 - 11904: 0xB8D0, - 35229 - 11904: 0xE443, - 35230 - 11904: 0xE446, - 35231 - 11904: 0xE445, - 35233 - 11904: 0xE444, - 35234 - 11904: 0xE7CE, - 35235 - 11904: 0xE7D0, - 35236 - 11904: 0xE7CF, - 35237 - 11904: 0x9B58, - 35238 - 11904: 0xBFCC, - 35239 - 11904: 0x8FCD, - 35241 - 11904: 0xA0D4, - 35242 - 11904: 0xBFCB, - 35244 - 11904: 0xC1BB, - 35245 - 11904: 0xEE79, - 35246 - 11904: 0xEE7B, - 35247 - 11904: 0xEE7A, - 35250 - 11904: 0xC2D1, - 35254 - 11904: 0xF2F4, - 35255 - 11904: 0xF2F3, - 35257 - 11904: 0xF4CC, - 35258 - 11904: 0xC4B1, - 35260 - 11904: 0x8FCE, - 35261 - 11904: 0xC4FD, - 35262 - 11904: 0xF754, - 35263 - 11904: 0xF753, - 35264 - 11904: 0xC65B, - 35265 - 11904: 0x8BE5, - 35270 - 11904: 0x8979, - 35282 - 11904: 0xA8A4, - 35283 - 11904: 0xD0AF, - 35284 - 11904: 0xAD6F, - 35285 - 11904: 0xD7C8, - 35286 - 11904: 0xD7C6, - 35289 - 11904: 0xD7C7, - 35290 - 11904: 0xDBD4, - 35291 - 11904: 0xDBD5, - 35292 - 11904: 0xE043, - 35293 - 11904: 0xDBD3, - 35295 - 11904: 0xDFFC, - 35296 - 11904: 0xE041, - 35297 - 11904: 0xE040, - 35298 - 11904: 0xE042, - 35299 - 11904: 0xB8D1, - 35300 - 11904: 0xDFFE, - 35301 - 11904: 0xDFFD, - 35302 - 11904: 0xE044, - 35303 - 11904: 0x8FD0, - 35304 - 11904: 0xE449, - 35305 - 11904: 0xE447, - 35307 - 11904: 0xE448, - 35308 - 11904: 0xE7D3, - 35309 - 11904: 0xE7D1, - 35312 - 11904: 0xE7D2, - 35313 - 11904: 0xEB7D, - 35314 - 11904: 0xEE7C, - 35315 - 11904: 0xEE7D, - 35316 - 11904: 0xC2D2, - 35318 - 11904: 0xF2F5, - 35319 - 11904: 0xF4CD, - 35320 - 11904: 0xC4B2, - 35322 - 11904: 0xF64C, - 35323 - 11904: 0xF755, - 35324 - 11904: 0xC5A9, - 35326 - 11904: 0xF7FE, - 35327 - 11904: 0xF94C, - 35328 - 11904: 0xA8A5, - 35330 - 11904: 0xAD71, - 35331 - 11904: 0xAD72, - 35332 - 11904: 0xD0B0, - 35335 - 11904: 0xD0B1, - 35336 - 11904: 0xAD70, - 35338 - 11904: 0xB054, - 35340 - 11904: 0xB052, - 35342 - 11904: 0xB051, - 35343 - 11904: 0xB058, - 35344 - 11904: 0xB050, - 35345 - 11904: 0xB059, - 35346 - 11904: 0xD3DD, - 35347 - 11904: 0xB056, - 35349 - 11904: 0xB053, - 35350 - 11904: 0xB057, - 35351 - 11904: 0xB055, - 35352 - 11904: 0xB04F, - 35355 - 11904: 0xB35F, - 35356 - 11904: 0x95B6, - 35357 - 11904: 0xB359, - 35358 - 11904: 0xD7CC, - 35359 - 11904: 0xB35E, - 35362 - 11904: 0xB360, - 35363 - 11904: 0xB35A, - 35365 - 11904: 0xB35B, - 35367 - 11904: 0xD7CA, - 35369 - 11904: 0x99D6, - 35370 - 11904: 0xB358, - 35371 - 11904: 0x95E5, - 35372 - 11904: 0xD7CB, - 35373 - 11904: 0xB35D, - 35376 - 11904: 0xD7C9, - 35377 - 11904: 0xB35C, - 35380 - 11904: 0xB644, - 35382 - 11904: 0xB646, - 35384 - 11904: 0x99D7, - 35385 - 11904: 0xDBD8, - 35386 - 11904: 0xB645, - 35387 - 11904: 0xB5F9, - 35388 - 11904: 0xB5FD, - 35389 - 11904: 0x95B5, - 35390 - 11904: 0xB8E4, - 35391 - 11904: 0xE049, - 35392 - 11904: 0xDBDA, - 35393 - 11904: 0xB5FE, - 35396 - 11904: 0xDBDD, - 35397 - 11904: 0xDBDE, - 35398 - 11904: 0xB643, - 35400 - 11904: 0xDBE0, - 35401 - 11904: 0xA0CA, - 35402 - 11904: 0xDBE2, - 35404 - 11904: 0xDBE3, - 35405 - 11904: 0xDBD7, - 35406 - 11904: 0xDBD6, - 35407 - 11904: 0xDBE4, - 35408 - 11904: 0xB642, - 35409 - 11904: 0xDBE1, - 35410 - 11904: 0xDBDF, - 35412 - 11904: 0xB640, - 35413 - 11904: 0xB5FB, - 35414 - 11904: 0xB647, - 35415 - 11904: 0xDBDB, - 35416 - 11904: 0xDBDC, - 35417 - 11904: 0xDBD9, - 35419 - 11904: 0xB641, - 35422 - 11904: 0xB5FC, - 35424 - 11904: 0xB5FA, - 35425 - 11904: 0xE048, - 35426 - 11904: 0xB8DF, - 35427 - 11904: 0xB8DA, - 35430 - 11904: 0xB8D5, - 35431 - 11904: 0x9FFD, - 35432 - 11904: 0xB8E5, - 35433 - 11904: 0xB8D6, - 35435 - 11904: 0xB8D2, - 35436 - 11904: 0xB8E1, - 35437 - 11904: 0xB8DE, - 35438 - 11904: 0xB8E0, - 35440 - 11904: 0xB8D7, - 35441 - 11904: 0xB8DC, - 35442 - 11904: 0xB8D3, - 35443 - 11904: 0xB8D4, - 35444 - 11904: 0xE050, - 35445 - 11904: 0xE04D, - 35446 - 11904: 0xE045, - 35447 - 11904: 0xE04A, - 35449 - 11904: 0xB8E2, - 35450 - 11904: 0xE051, - 35451 - 11904: 0xB8E3, - 35452 - 11904: 0xB8D9, - 35454 - 11904: 0xA058, - 35455 - 11904: 0xE047, - 35457 - 11904: 0xE04F, - 35458 - 11904: 0xE04B, - 35459 - 11904: 0xE04E, - 35460 - 11904: 0xE04C, - 35461 - 11904: 0xB8DD, - 35462 - 11904: 0xE046, - 35463 - 11904: 0xB8D8, - 35467 - 11904: 0xE44C, - 35468 - 11904: 0xBB78, - 35469 - 11904: 0xBB7B, - 35471 - 11904: 0xE44E, - 35472 - 11904: 0x8FD6, - 35473 - 11904: 0xBBA5, - 35474 - 11904: 0xE44D, - 35475 - 11904: 0xBB7D, - 35476 - 11904: 0x99D8, - 35477 - 11904: 0xBDCF, - 35478 - 11904: 0xE44F, - 35480 - 11904: 0xBBA4, - 35481 - 11904: 0xE44B, - 35482 - 11904: 0xBBA6, - 35484 - 11904: 0x8FD3, - 35486 - 11904: 0xBB79, - 35488 - 11904: 0xB8DB, - 35489 - 11904: 0xBB7C, - 35491 - 11904: 0xBB7A, - 35492 - 11904: 0xBB7E, - 35493 - 11904: 0xBBA2, - 35494 - 11904: 0xBB77, - 35495 - 11904: 0xBBA7, - 35496 - 11904: 0xBBA3, - 35497 - 11904: 0x8FE5, - 35498 - 11904: 0xBBA1, - 35499 - 11904: 0xE44A, - 35503 - 11904: 0x8FE9, - 35504 - 11904: 0xBDD6, - 35506 - 11904: 0xBDD2, - 35508 - 11904: 0x99D9, - 35510 - 11904: 0xBDD9, - 35512 - 11904: 0xE7D6, - 35513 - 11904: 0xBDDA, - 35514 - 11904: 0xE7E2, - 35515 - 11904: 0xE7DB, - 35516 - 11904: 0xBDCB, - 35517 - 11904: 0xE7E3, - 35518 - 11904: 0xE7DD, - 35519 - 11904: 0xBDD5, - 35520 - 11904: 0xE7DE, - 35522 - 11904: 0xBDD4, - 35523 - 11904: 0xE7E1, - 35524 - 11904: 0xBDCE, - 35525 - 11904: 0xE7DF, - 35526 - 11904: 0xE7D5, - 35527 - 11904: 0xBDCD, - 35528 - 11904: 0xEBAA, - 35529 - 11904: 0xBDD3, - 35531 - 11904: 0xBDD0, - 35532 - 11904: 0x8CF7, - 35533 - 11904: 0xBDD8, - 35535 - 11904: 0xE7D4, - 35537 - 11904: 0xE7D8, - 35538 - 11904: 0xBDCC, - 35539 - 11904: 0xE7D7, - 35540 - 11904: 0xE7D9, - 35541 - 11904: 0xE7DA, - 35542 - 11904: 0xBDD7, - 35543 - 11904: 0xE7DC, - 35544 - 11904: 0xE7E0, - 35545 - 11904: 0xE7E4, - 35546 - 11904: 0x927C, - 35547 - 11904: 0xBDDB, - 35548 - 11904: 0xBFD2, - 35549 - 11904: 0xEBA5, - 35550 - 11904: 0xEBAB, - 35551 - 11904: 0xEBA8, - 35552 - 11904: 0xEB7E, - 35553 - 11904: 0xEBAC, - 35554 - 11904: 0xEBA1, - 35556 - 11904: 0xEBA7, - 35558 - 11904: 0xBFCD, - 35559 - 11904: 0xBFD3, - 35560 - 11904: 0xEBAD, - 35562 - 11904: 0x9C45, - 35563 - 11904: 0xBFCF, - 35565 - 11904: 0xBFD9, - 35566 - 11904: 0xBFD4, - 35567 - 11904: 0xEBAF, - 35568 - 11904: 0xEBA9, - 35569 - 11904: 0xBFD0, - 35570 - 11904: 0xEBA2, - 35571 - 11904: 0xBFDA, - 35572 - 11904: 0xEBA3, - 35573 - 11904: 0xEBA4, - 35574 - 11904: 0xBFDB, - 35575 - 11904: 0xBFD8, - 35576 - 11904: 0xBDD1, - 35577 - 11904: 0x8CE8, - 35578 - 11904: 0xBFCE, - 35579 - 11904: 0xEBB0, - 35580 - 11904: 0xBFDC, - 35582 - 11904: 0xBFD5, - 35583 - 11904: 0xEBAE, - 35584 - 11904: 0xBFD1, - 35585 - 11904: 0xBFD6, - 35586 - 11904: 0xBFD7, - 35588 - 11904: 0xC1C3, - 35589 - 11904: 0xEEA4, - 35590 - 11904: 0xEEAD, - 35591 - 11904: 0xEEAA, - 35592 - 11904: 0xEEAC, - 35594 - 11904: 0xC1C0, - 35595 - 11904: 0xEEA5, - 35596 - 11904: 0x8FDE, - 35597 - 11904: 0xEEAB, - 35598 - 11904: 0xC1BC, - 35599 - 11904: 0xEEA7, - 35600 - 11904: 0xC1C4, - 35601 - 11904: 0xEEA3, - 35602 - 11904: 0xEEA8, - 35603 - 11904: 0xEEAF, - 35604 - 11904: 0xEBA6, - 35605 - 11904: 0xEEA9, - 35606 - 11904: 0xEEA2, - 35607 - 11904: 0xC1BD, - 35608 - 11904: 0xEEA1, - 35609 - 11904: 0xC1BE, - 35610 - 11904: 0xEEB0, - 35611 - 11904: 0xC1BF, - 35612 - 11904: 0xEEAE, - 35613 - 11904: 0xC1C2, - 35614 - 11904: 0xEE7E, - 35615 - 11904: 0x8FDF, - 35616 - 11904: 0xC1C1, - 35618 - 11904: 0xEEA6, - 35619 - 11904: 0xF0DC, - 35620 - 11904: 0xF0EA, - 35621 - 11904: 0xF0E5, - 35622 - 11904: 0xF0E7, - 35623 - 11904: 0xF0DB, - 35624 - 11904: 0xC2D3, - 35626 - 11904: 0xF0DA, - 35627 - 11904: 0xC2D6, - 35628 - 11904: 0xC2D5, - 35629 - 11904: 0xA04B, - 35630 - 11904: 0xF0E9, - 35631 - 11904: 0xF0E1, - 35632 - 11904: 0xF0DE, - 35633 - 11904: 0xF0E4, - 35635 - 11904: 0xF0DD, - 35637 - 11904: 0xF0DF, - 35638 - 11904: 0xF0E8, - 35639 - 11904: 0xF0E6, - 35641 - 11904: 0xC2D4, - 35642 - 11904: 0xF0ED, - 35643 - 11904: 0xF0EB, - 35644 - 11904: 0xF0E2, - 35645 - 11904: 0xF0EC, - 35646 - 11904: 0xF0E3, - 35647 - 11904: 0x8FE2, - 35648 - 11904: 0xF2F9, - 35649 - 11904: 0xC3CF, - 35650 - 11904: 0xF341, - 35651 - 11904: 0xA0CC, - 35653 - 11904: 0xF64F, - 35654 - 11904: 0xC3D6, - 35655 - 11904: 0xF0E0, - 35656 - 11904: 0xF2F7, - 35657 - 11904: 0xC3D2, - 35658 - 11904: 0xF2F8, - 35659 - 11904: 0xF2FD, - 35660 - 11904: 0x8FE3, - 35661 - 11904: 0x8FE4, - 35662 - 11904: 0xC3D4, - 35663 - 11904: 0xC3D5, - 35664 - 11904: 0xF2F6, - 35665 - 11904: 0xF340, - 35666 - 11904: 0xF342, - 35667 - 11904: 0xF2FA, - 35668 - 11904: 0xF2FC, - 35669 - 11904: 0xF2FE, - 35670 - 11904: 0xF2FB, - 35671 - 11904: 0xF343, - 35672 - 11904: 0xC3D1, - 35673 - 11904: 0xC3D7, - 35674 - 11904: 0xC3D3, - 35676 - 11904: 0xC3D0, - 35677 - 11904: 0xF4D0, - 35678 - 11904: 0x9BC4, - 35679 - 11904: 0xC4B7, - 35680 - 11904: 0xF4CE, - 35682 - 11904: 0x9BFC, - 35683 - 11904: 0xF4D2, - 35685 - 11904: 0xF4D3, - 35686 - 11904: 0xC4B5, - 35687 - 11904: 0xF4D4, - 35688 - 11904: 0xF4D1, - 35689 - 11904: 0x964C, - 35690 - 11904: 0xF4CF, - 35691 - 11904: 0xC4B8, - 35692 - 11904: 0xC4B4, - 35693 - 11904: 0xF4D5, - 35695 - 11904: 0xC4B6, - 35696 - 11904: 0xC4B3, - 35700 - 11904: 0xC4FE, - 35703 - 11904: 0xC540, - 35704 - 11904: 0xF64E, - 35705 - 11904: 0xF64D, - 35706 - 11904: 0xF650, - 35707 - 11904: 0xF651, - 35709 - 11904: 0xC541, - 35710 - 11904: 0xF756, - 35711 - 11904: 0xF75B, - 35712 - 11904: 0xC5AA, - 35713 - 11904: 0x9AF6, - 35714 - 11904: 0xF758, - 35715 - 11904: 0x8CAE, - 35716 - 11904: 0xF757, - 35717 - 11904: 0xF75A, - 35718 - 11904: 0xF759, - 35720 - 11904: 0xF843, - 35722 - 11904: 0xC5DC, - 35723 - 11904: 0xF842, - 35724 - 11904: 0xF840, - 35726 - 11904: 0xF841, - 35727 - 11904: 0x87CB, - 35728 - 11904: 0x8FE7, - 35730 - 11904: 0xC5FE, - 35731 - 11904: 0xC5FD, - 35732 - 11904: 0xF8C1, - 35733 - 11904: 0xF8C2, - 35734 - 11904: 0xC640, - 35736 - 11904: 0xF94D, - 35737 - 11904: 0xF94E, - 35738 - 11904: 0xC667, - 35739 - 11904: 0x8FE8, - 35740 - 11904: 0xC66D, - 35742 - 11904: 0xF9A9, - 35743 - 11904: 0xF9C8, - 35744 - 11904: 0x8BE7, - 35774 - 11904: 0x897A, - 35810 - 11904: 0x897B, - 35895 - 11904: 0xA8A6, - 35897 - 11904: 0xD7CD, - 35899 - 11904: 0xD7CE, - 35900 - 11904: 0xE052, - 35901 - 11904: 0xE450, - 35902 - 11904: 0xE7E5, - 35903 - 11904: 0xC1C6, - 35905 - 11904: 0xC1C5, - 35906 - 11904: 0xF0EE, - 35907 - 11904: 0xF344, - 35909 - 11904: 0xF844, - 35910 - 11904: 0xA8A7, - 35911 - 11904: 0xD3DE, - 35912 - 11904: 0xB05A, - 35913 - 11904: 0xB361, - 35914 - 11904: 0xE054, - 35915 - 11904: 0xE053, - 35916 - 11904: 0xBDDC, - 35917 - 11904: 0xE7E6, - 35918 - 11904: 0xBDDD, - 35919 - 11904: 0xEEB1, - 35920 - 11904: 0xC2D7, - 35921 - 11904: 0x99DA, - 35924 - 11904: 0xC676, - 35925 - 11904: 0xA8A8, - 35926 - 11904: 0xCDCB, - 35927 - 11904: 0xD3DF, - 35930 - 11904: 0xB362, - 35932 - 11904: 0xD7CF, - 35933 - 11904: 0xD7D0, - 35935 - 11904: 0xDBE5, - 35937 - 11904: 0xB648, - 35938 - 11904: 0xB8E6, - 35940 - 11904: 0xE056, - 35941 - 11904: 0xE055, - 35942 - 11904: 0xE057, - 35944 - 11904: 0xE451, - 35945 - 11904: 0xE452, - 35946 - 11904: 0xBBA8, - 35947 - 11904: 0xBFDD, - 35948 - 11904: 0xBDDE, - 35949 - 11904: 0xBFDE, - 35951 - 11904: 0xEEB5, - 35952 - 11904: 0xEEB2, - 35953 - 11904: 0xEEB4, - 35954 - 11904: 0xEEB3, - 35955 - 11904: 0xC1C7, - 35957 - 11904: 0xF0EF, - 35958 - 11904: 0xF346, - 35959 - 11904: 0xF345, - 35960 - 11904: 0xCBA4, - 35961 - 11904: 0xB05C, - 35962 - 11904: 0xB05B, - 35963 - 11904: 0xD3E0, - 35965 - 11904: 0xD7D1, - 35968 - 11904: 0xDBE7, - 35969 - 11904: 0xDBE6, - 35970 - 11904: 0xB649, - 35972 - 11904: 0xE059, - 35973 - 11904: 0xE05A, - 35974 - 11904: 0xE058, - 35977 - 11904: 0xB8E8, - 35978 - 11904: 0xB8E7, - 35980 - 11904: 0xBBAA, - 35981 - 11904: 0xBBA9, - 35983 - 11904: 0xE7E7, - 35984 - 11904: 0xEBB3, - 35985 - 11904: 0xEBB1, - 35986 - 11904: 0xEBB2, - 35987 - 11904: 0xBFDF, - 35988 - 11904: 0xEEB7, - 35989 - 11904: 0xEEB6, - 35991 - 11904: 0xF0F2, - 35992 - 11904: 0xF0F1, - 35993 - 11904: 0xF0F0, - 35994 - 11904: 0xF347, - 35995 - 11904: 0x8FED, - 35996 - 11904: 0xF9AA, - 35997 - 11904: 0xA8A9, - 35998 - 11904: 0xAD73, - 35999 - 11904: 0x95C0, - 36000 - 11904: 0xAD74, - 36001 - 11904: 0xB05D, - 36002 - 11904: 0xB05E, - 36003 - 11904: 0xD3E2, - 36004 - 11904: 0xD3E1, - 36005 - 11904: 0xD7D2, - 36007 - 11904: 0xB368, - 36008 - 11904: 0xB366, - 36009 - 11904: 0xB363, - 36010 - 11904: 0xB367, - 36011 - 11904: 0xB365, - 36012 - 11904: 0xB364, - 36013 - 11904: 0xA0CB, - 36015 - 11904: 0xB64A, - 36016 - 11904: 0xDBEA, - 36018 - 11904: 0xB8ED, - 36019 - 11904: 0xB64C, - 36020 - 11904: 0xB651, - 36021 - 11904: 0xDBEC, - 36022 - 11904: 0xB653, - 36023 - 11904: 0xB652, - 36024 - 11904: 0xB655, - 36025 - 11904: 0xDBEB, - 36026 - 11904: 0xDBE8, - 36027 - 11904: 0xB64F, - 36028 - 11904: 0xB64B, - 36029 - 11904: 0xB64D, - 36030 - 11904: 0xDBE9, - 36031 - 11904: 0xB654, - 36032 - 11904: 0xB650, - 36033 - 11904: 0xB64E, - 36034 - 11904: 0xB8EF, - 36035 - 11904: 0xB8EE, - 36036 - 11904: 0xB8EC, - 36037 - 11904: 0xB8F0, - 36039 - 11904: 0xB8EA, - 36040 - 11904: 0xB8EB, - 36042 - 11904: 0xB8E9, - 36044 - 11904: 0xE05B, - 36045 - 11904: 0x9E48, - 36047 - 11904: 0xE454, - 36049 - 11904: 0xBBAC, - 36050 - 11904: 0xBBAD, - 36051 - 11904: 0xBBAB, - 36052 - 11904: 0x99DB, - 36053 - 11904: 0xE453, - 36054 - 11904: 0x8FF3, - 36055 - 11904: 0xE455, - 36057 - 11904: 0xE7EA, - 36058 - 11904: 0xE7EC, - 36059 - 11904: 0x8FF9, - 36060 - 11904: 0xBDE7, - 36061 - 11904: 0xE7ED, - 36062 - 11904: 0xBDE0, - 36063 - 11904: 0xE7E9, - 36064 - 11904: 0xBDDF, - 36065 - 11904: 0xBDE9, - 36066 - 11904: 0xBDE5, - 36067 - 11904: 0xBDE6, - 36068 - 11904: 0xBDE2, - 36069 - 11904: 0xE7E8, - 36070 - 11904: 0xBDE1, - 36071 - 11904: 0xE7EE, - 36072 - 11904: 0xE7EB, - 36073 - 11904: 0x95C1, - 36074 - 11904: 0xBDE8, - 36075 - 11904: 0xA04E, - 36076 - 11904: 0xBDE3, - 36077 - 11904: 0xBDE4, - 36078 - 11904: 0xEBB5, - 36080 - 11904: 0xEBB7, - 36081 - 11904: 0xEBB6, - 36082 - 11904: 0x99DC, - 36083 - 11904: 0xEBB8, - 36084 - 11904: 0xBFE0, - 36085 - 11904: 0xEBB4, - 36087 - 11904: 0xA064, - 36088 - 11904: 0xC1CB, - 36089 - 11904: 0xEEB8, - 36090 - 11904: 0xC1C8, - 36091 - 11904: 0xC1CC, - 36092 - 11904: 0xC1CA, - 36093 - 11904: 0xC1C9, - 36094 - 11904: 0xF0F3, - 36096 - 11904: 0xF0F6, - 36098 - 11904: 0xF0F5, - 36099 - 11904: 0x8FF7, - 36100 - 11904: 0xF0F4, - 36101 - 11904: 0xC2D8, - 36102 - 11904: 0xF348, - 36103 - 11904: 0xF349, - 36104 - 11904: 0xC3D8, - 36105 - 11904: 0xF34A, - 36106 - 11904: 0xC3D9, - 36107 - 11904: 0x89B0, - 36108 - 11904: 0xA048, - 36109 - 11904: 0xC4BA, - 36111 - 11904: 0xC4B9, - 36112 - 11904: 0xF652, - 36113 - 11904: 0x8FFB, - 36114 - 11904: 0x8FF6, - 36115 - 11904: 0xC542, - 36116 - 11904: 0xF653, - 36117 - 11904: 0xF75C, - 36118 - 11904: 0xC5AB, - 36119 - 11904: 0xC5AC, - 36120 - 11904: 0x9DDC, - 36121 - 11904: 0xF845, - 36123 - 11904: 0xC642, - 36124 - 11904: 0x99DD, - 36125 - 11904: 0x8BE8, - 36196 - 11904: 0xA8AA, - 36198 - 11904: 0xB36A, - 36199 - 11904: 0xB369, - 36200 - 11904: 0xE05C, - 36201 - 11904: 0xE05D, - 36203 - 11904: 0xBBAE, - 36204 - 11904: 0xEBB9, - 36205 - 11904: 0xBDEA, - 36206 - 11904: 0xEBBA, - 36207 - 11904: 0xEEB9, - 36208 - 11904: 0xA8AB, - 36210 - 11904: 0xD0B2, - 36211 - 11904: 0xAD76, - 36212 - 11904: 0xAD75, - 36214 - 11904: 0xD3E3, - 36215 - 11904: 0xB05F, - 36216 - 11904: 0xD3E4, - 36217 - 11904: 0xD7D5, - 36218 - 11904: 0x92C1, - 36219 - 11904: 0xD7D4, - 36221 - 11904: 0xD7D3, - 36224 - 11904: 0xDBEE, - 36225 - 11904: 0xB658, - 36226 - 11904: 0x9FD6, - 36228 - 11904: 0xDBED, - 36229 - 11904: 0xB657, - 36233 - 11904: 0xDBEF, - 36234 - 11904: 0xB656, - 36236 - 11904: 0xE05F, - 36237 - 11904: 0xE062, - 36238 - 11904: 0xE060, - 36239 - 11904: 0xE061, - 36240 - 11904: 0xE065, - 36241 - 11904: 0xE05E, - 36242 - 11904: 0xE066, - 36243 - 11904: 0xE063, - 36244 - 11904: 0xE064, - 36245 - 11904: 0xBBB0, - 36246 - 11904: 0xE456, - 36249 - 11904: 0xBBAF, - 36251 - 11904: 0xE7F2, - 36252 - 11904: 0xE7F0, - 36255 - 11904: 0xBDEB, - 36256 - 11904: 0xE7EF, - 36257 - 11904: 0xE7F1, - 36259 - 11904: 0xBDEC, - 36261 - 11904: 0xEBBB, - 36262 - 11904: 0xA0D2, - 36263 - 11904: 0xEBBC, - 36264 - 11904: 0xC1CD, - 36265 - 11904: 0x9040, - 36266 - 11904: 0xF34C, - 36267 - 11904: 0xF34E, - 36268 - 11904: 0xF34B, - 36269 - 11904: 0xF34D, - 36270 - 11904: 0xF4D6, - 36271 - 11904: 0xF654, - 36274 - 11904: 0xF96F, - 36275 - 11904: 0xA8AC, - 36276 - 11904: 0xAD77, - 36277 - 11904: 0xD3E5, - 36278 - 11904: 0xD3E7, - 36279 - 11904: 0xD3E6, - 36281 - 11904: 0xD7D8, - 36282 - 11904: 0xB36C, - 36284 - 11904: 0xD7D6, - 36286 - 11904: 0xB36B, - 36287 - 11904: 0xD7D9, - 36288 - 11904: 0x8AC4, - 36289 - 11904: 0xD7DA, - 36290 - 11904: 0xD7D7, - 36291 - 11904: 0x99E0, - 36293 - 11904: 0xDBFB, - 36294 - 11904: 0xB660, - 36295 - 11904: 0xDBF3, - 36296 - 11904: 0xDBF9, - 36299 - 11904: 0xB65B, - 36300 - 11904: 0xB65E, - 36301 - 11904: 0xDBF2, - 36302 - 11904: 0xB659, - 36303 - 11904: 0xDBF6, - 36304 - 11904: 0xE06C, - 36305 - 11904: 0xB65D, - 36307 - 11904: 0xDBF1, - 36308 - 11904: 0x9FF0, - 36309 - 11904: 0xDBF7, - 36310 - 11904: 0xDBF4, - 36311 - 11904: 0xDBFA, - 36312 - 11904: 0xDBF0, - 36313 - 11904: 0xDBF8, - 36314 - 11904: 0xB65C, - 36315 - 11904: 0xB65F, - 36316 - 11904: 0xDBF5, - 36317 - 11904: 0xB65A, - 36319 - 11904: 0xB8F2, - 36320 - 11904: 0xE068, - 36321 - 11904: 0xB8F1, - 36322 - 11904: 0xE06F, - 36323 - 11904: 0xE06E, - 36324 - 11904: 0xB8F8, - 36326 - 11904: 0xB8F9, - 36327 - 11904: 0xE070, - 36328 - 11904: 0xB8F3, - 36329 - 11904: 0xE06D, - 36330 - 11904: 0xB8F7, - 36331 - 11904: 0xE072, - 36332 - 11904: 0xE069, - 36334 - 11904: 0xE06B, - 36335 - 11904: 0xB8F4, - 36336 - 11904: 0xE067, - 36337 - 11904: 0xE06A, - 36338 - 11904: 0xE071, - 36339 - 11904: 0xB8F5, - 36340 - 11904: 0xE073, - 36346 - 11904: 0xB8F6, - 36348 - 11904: 0xBBB1, - 36349 - 11904: 0xE45B, - 36350 - 11904: 0xE461, - 36351 - 11904: 0xE459, - 36352 - 11904: 0xE462, - 36353 - 11904: 0x9FF3, - 36354 - 11904: 0xE458, - 36355 - 11904: 0xE45D, - 36356 - 11904: 0xE463, - 36357 - 11904: 0xE460, - 36358 - 11904: 0xE45F, - 36359 - 11904: 0xE45E, - 36361 - 11904: 0xE457, - 36362 - 11904: 0xE45C, - 36365 - 11904: 0xE45A, - 36366 - 11904: 0x9DBF, - 36367 - 11904: 0xBDF1, - 36368 - 11904: 0xBDEE, - 36369 - 11904: 0xE7FB, - 36370 - 11904: 0xE841, - 36371 - 11904: 0xE843, - 36372 - 11904: 0xE840, - 36373 - 11904: 0xE7F8, - 36374 - 11904: 0xE7FA, - 36375 - 11904: 0xE845, - 36376 - 11904: 0xE842, - 36377 - 11904: 0xE7FC, - 36378 - 11904: 0xE846, - 36379 - 11904: 0xE7F9, - 36380 - 11904: 0xE844, - 36381 - 11904: 0xBDEF, - 36382 - 11904: 0xBDF5, - 36383 - 11904: 0xBDF3, - 36384 - 11904: 0xE7F3, - 36385 - 11904: 0xBDF4, - 36386 - 11904: 0xBDF0, - 36387 - 11904: 0xE7F4, - 36388 - 11904: 0xE7F6, - 36389 - 11904: 0xE7F5, - 36390 - 11904: 0xE7FD, - 36391 - 11904: 0xE7FE, - 36392 - 11904: 0x9FF6, - 36393 - 11904: 0xBDF2, - 36394 - 11904: 0x95C8, - 36395 - 11904: 0xBDED, - 36397 - 11904: 0x9E5A, - 36398 - 11904: 0xE7F7, - 36400 - 11904: 0xEBC6, - 36401 - 11904: 0xBFE2, - 36403 - 11904: 0xEBBD, - 36404 - 11904: 0xBFE3, - 36405 - 11904: 0xBFE6, - 36406 - 11904: 0xEBC2, - 36408 - 11904: 0xEBBF, - 36409 - 11904: 0xBFE5, - 36410 - 11904: 0x99E3, - 36412 - 11904: 0xEBC3, - 36413 - 11904: 0xEBC4, - 36414 - 11904: 0xEBBE, - 36415 - 11904: 0xEBC7, - 36416 - 11904: 0xEBC0, - 36417 - 11904: 0xEBC5, - 36418 - 11904: 0xBFE4, - 36420 - 11904: 0xBFE1, - 36421 - 11904: 0xEBC1, - 36422 - 11904: 0x8A4A, - 36423 - 11904: 0xEEBF, - 36424 - 11904: 0xC1D0, - 36425 - 11904: 0xC1CE, - 36426 - 11904: 0xC1D1, - 36427 - 11904: 0xC1CF, - 36428 - 11904: 0xEEBE, - 36429 - 11904: 0xEEBB, - 36430 - 11904: 0xEEBA, - 36431 - 11904: 0x9FF1, - 36432 - 11904: 0xEEBD, - 36435 - 11904: 0xEEBC, - 36436 - 11904: 0xF145, - 36437 - 11904: 0xC2DE, - 36438 - 11904: 0xF0FB, - 36439 - 11904: 0xF0FA, - 36441 - 11904: 0xC2D9, - 36442 - 11904: 0xF141, - 36443 - 11904: 0xF140, - 36444 - 11904: 0xF0F7, - 36445 - 11904: 0xF143, - 36446 - 11904: 0xF0FC, - 36447 - 11904: 0xC2DD, - 36448 - 11904: 0xF0F9, - 36449 - 11904: 0xF142, - 36450 - 11904: 0xF0F8, - 36451 - 11904: 0xC2DA, - 36452 - 11904: 0xC2DC, - 36453 - 11904: 0xF0FD, - 36454 - 11904: 0xC2DB, - 36455 - 11904: 0xF0FE, - 36456 - 11904: 0x8AA7, - 36457 - 11904: 0xF144, - 36458 - 11904: 0xF352, - 36460 - 11904: 0xC3DE, - 36461 - 11904: 0xF34F, - 36463 - 11904: 0xF353, - 36465 - 11904: 0x99E6, - 36466 - 11904: 0xC3DB, - 36467 - 11904: 0xF351, - 36468 - 11904: 0xC3E0, - 36469 - 11904: 0x9FF7, - 36470 - 11904: 0xC3DD, - 36471 - 11904: 0x9FED, - 36472 - 11904: 0xF350, - 36474 - 11904: 0xC3DF, - 36475 - 11904: 0xF354, - 36476 - 11904: 0xC3DA, - 36478 - 11904: 0x8A5C, - 36480 - 11904: 0x9DAE, - 36481 - 11904: 0xC4BC, - 36482 - 11904: 0xC4BE, - 36484 - 11904: 0xF4D9, - 36485 - 11904: 0xC4BD, - 36486 - 11904: 0xF4D7, - 36487 - 11904: 0xC3DC, - 36488 - 11904: 0xF4D8, - 36489 - 11904: 0xC4BB, - 36490 - 11904: 0xC543, - 36491 - 11904: 0xC545, - 36492 - 11904: 0xF656, - 36493 - 11904: 0xC544, - 36494 - 11904: 0xF655, - 36496 - 11904: 0xF761, - 36497 - 11904: 0xC5AD, - 36498 - 11904: 0xF760, - 36499 - 11904: 0xC5AE, - 36500 - 11904: 0xF75E, - 36501 - 11904: 0xF75D, - 36502 - 11904: 0xF762, - 36503 - 11904: 0xF763, - 36504 - 11904: 0xF846, - 36506 - 11904: 0xF75F, - 36509 - 11904: 0xF8C6, - 36510 - 11904: 0xF8C3, - 36511 - 11904: 0xF8C4, - 36512 - 11904: 0xF8C5, - 36513 - 11904: 0xC65C, - 36515 - 11904: 0xF951, - 36516 - 11904: 0xF950, - 36517 - 11904: 0xF94F, - 36518 - 11904: 0xF970, - 36519 - 11904: 0x95C9, - 36520 - 11904: 0xF9BE, - 36521 - 11904: 0xF9AB, - 36522 - 11904: 0xC66E, - 36523 - 11904: 0xA8AD, - 36524 - 11904: 0xB060, - 36525 - 11904: 0x9048, - 36528 - 11904: 0x99E8, - 36530 - 11904: 0xB8FA, - 36534 - 11904: 0x9049, - 36537 - 11904: 0x8CBA, - 36538 - 11904: 0xBDF6, - 36540 - 11904: 0x90B1, - 36541 - 11904: 0xEBC8, - 36544 - 11904: 0xC2DF, - 36546 - 11904: 0xF355, - 36547 - 11904: 0x904A, - 36553 - 11904: 0xF9AC, - 36554 - 11904: 0xA8AE, - 36555 - 11904: 0xAAEE, - 36556 - 11904: 0xAD79, - 36557 - 11904: 0xAD78, - 36558 - 11904: 0x99EA, - 36559 - 11904: 0xB063, - 36561 - 11904: 0xD3E8, - 36562 - 11904: 0xB061, - 36563 - 11904: 0xD3E9, - 36564 - 11904: 0xB062, - 36567 - 11904: 0xD7DF, - 36568 - 11904: 0xD7DB, - 36570 - 11904: 0x9BD1, - 36571 - 11904: 0xB36D, - 36572 - 11904: 0xD7DE, - 36573 - 11904: 0xD7DD, - 36574 - 11904: 0xD7DC, - 36575 - 11904: 0xB36E, - 36576 - 11904: 0xD7E0, - 36577 - 11904: 0xD7E1, - 36578 - 11904: 0x99EB, - 36580 - 11904: 0x99EC, - 36581 - 11904: 0xDC43, - 36582 - 11904: 0xDC41, - 36583 - 11904: 0xDC45, - 36584 - 11904: 0xDC46, - 36585 - 11904: 0xDC4C, - 36587 - 11904: 0xDC48, - 36588 - 11904: 0xDC4A, - 36589 - 11904: 0x99ED, - 36590 - 11904: 0xDC42, - 36591 - 11904: 0xDBFC, - 36593 - 11904: 0xDC49, - 36594 - 11904: 0x99EE, - 36596 - 11904: 0xDC4B, - 36597 - 11904: 0xDC44, - 36598 - 11904: 0xDC47, - 36599 - 11904: 0xDBFD, - 36600 - 11904: 0xB662, - 36601 - 11904: 0xDC40, - 36602 - 11904: 0xDBFE, - 36603 - 11904: 0xB661, - 36604 - 11904: 0xB663, - 36606 - 11904: 0xB8FD, - 36607 - 11904: 0xE075, - 36608 - 11904: 0xE077, - 36609 - 11904: 0xE076, - 36610 - 11904: 0xE07B, - 36611 - 11904: 0xB8FB, - 36613 - 11904: 0xE078, - 36614 - 11904: 0xE074, - 36615 - 11904: 0xE079, - 36616 - 11904: 0xE07A, - 36617 - 11904: 0xB8FC, - 36618 - 11904: 0xB8FE, - 36619 - 11904: 0xE07C, - 36621 - 11904: 0xE467, - 36622 - 11904: 0xE466, - 36624 - 11904: 0xE464, - 36625 - 11904: 0xE465, - 36626 - 11904: 0xBBB3, - 36627 - 11904: 0xBBB5, - 36628 - 11904: 0xBBB2, - 36629 - 11904: 0xBBB4, - 36630 - 11904: 0xE84D, - 36631 - 11904: 0xE84E, - 36632 - 11904: 0xE849, - 36633 - 11904: 0x904C, - 36634 - 11904: 0xE84A, - 36635 - 11904: 0xBDF8, - 36636 - 11904: 0xBDFD, - 36637 - 11904: 0xBDF7, - 36638 - 11904: 0xBDFE, - 36639 - 11904: 0xBDF9, - 36640 - 11904: 0xE84B, - 36643 - 11904: 0xE84C, - 36644 - 11904: 0xE848, - 36645 - 11904: 0xBE40, - 36646 - 11904: 0xBDFB, - 36649 - 11904: 0xBDFA, - 36650 - 11904: 0xBDFC, - 36652 - 11904: 0xE847, - 36653 - 11904: 0x904D, - 36654 - 11904: 0xEBCA, - 36655 - 11904: 0xBFE8, - 36656 - 11904: 0x95CB, - 36658 - 11904: 0xEBCC, - 36659 - 11904: 0xBFEA, - 36660 - 11904: 0xEBCF, - 36661 - 11904: 0xEBCB, - 36662 - 11904: 0xEBC9, - 36663 - 11904: 0xEBCE, - 36664 - 11904: 0xBFE9, - 36665 - 11904: 0xEBCD, - 36667 - 11904: 0xBFE7, - 36670 - 11904: 0xC1D3, - 36671 - 11904: 0xC1D6, - 36672 - 11904: 0xEEC1, - 36673 - 11904: 0x97E2, - 36674 - 11904: 0xC1D4, - 36675 - 11904: 0xEEC0, - 36676 - 11904: 0xC1D2, - 36677 - 11904: 0xC1D5, - 36678 - 11904: 0xF146, - 36679 - 11904: 0xF147, - 36680 - 11904: 0xF148, - 36681 - 11904: 0xC2E0, - 36682 - 11904: 0x95CC, - 36683 - 11904: 0xF149, - 36685 - 11904: 0xC2E1, - 36686 - 11904: 0xC3E2, - 36687 - 11904: 0xF358, - 36688 - 11904: 0xF359, - 36689 - 11904: 0xF357, - 36690 - 11904: 0xF356, - 36691 - 11904: 0xF35A, - 36692 - 11904: 0xC3E1, - 36693 - 11904: 0xF4DD, - 36694 - 11904: 0xF4DB, - 36695 - 11904: 0xF4DC, - 36696 - 11904: 0xF4DE, - 36697 - 11904: 0xF4DA, - 36698 - 11904: 0xF4DF, - 36699 - 11904: 0xF658, - 36700 - 11904: 0x9F78, - 36701 - 11904: 0xF659, - 36702 - 11904: 0xF657, - 36703 - 11904: 0xC546, - 36704 - 11904: 0xF764, - 36705 - 11904: 0xC5AF, - 36706 - 11904: 0xF765, - 36707 - 11904: 0xF848, - 36708 - 11904: 0xF847, - 36710 - 11904: 0x897C, - 36711 - 11904: 0x897D, - 36718 - 11904: 0x897E, - 36755 - 11904: 0x995D, - 36763 - 11904: 0xA8AF, - 36764 - 11904: 0xB664, - 36767 - 11904: 0xB940, - 36768 - 11904: 0x9B5A, - 36771 - 11904: 0xBBB6, - 36773 - 11904: 0x9050, - 36774 - 11904: 0xBFEC, - 36775 - 11904: 0x8C4F, - 36776 - 11904: 0xBFEB, - 36781 - 11904: 0xC3E3, - 36782 - 11904: 0xC47C, - 36783 - 11904: 0xC547, - 36784 - 11904: 0xA8B0, - 36785 - 11904: 0xB064, - 36786 - 11904: 0xB941, - 36787 - 11904: 0x9054, - 36788 - 11904: 0xF35B, - 36789 - 11904: 0xC6D6, - 36790 - 11904: 0x9AA8, - 36791 - 11904: 0x99EF, - 36792 - 11904: 0xFEEB, - 36793 - 11904: 0x9DA3, - 36794 - 11904: 0x9DA1, - 36795 - 11904: 0x9943, - 36796 - 11904: 0x9945, - 36798 - 11904: 0x9D7D, - 36799 - 11904: 0xCBA6, - 36801 - 11904: 0x99F0, - 36802 - 11904: 0xA8B1, - 36804 - 11904: 0xA8B4, - 36805 - 11904: 0xA8B3, - 36806 - 11904: 0xA8B2, - 36809 - 11904: 0xCBA5, - 36810 - 11904: 0x99F1, - 36811 - 11904: 0xCDCD, - 36812 - 11904: 0x99F2, - 36813 - 11904: 0xCDCF, - 36814 - 11904: 0xAAEF, - 36815 - 11904: 0x8CBC, - 36816 - 11904: 0x9D60, - 36817 - 11904: 0xAAF1, - 36818 - 11904: 0xCDCC, - 36819 - 11904: 0xCDCE, - 36820 - 11904: 0xAAF0, - 36821 - 11904: 0xCDD1, - 36822 - 11904: 0xCDD0, - 36823 - 11904: 0xCDD2, - 36826 - 11904: 0xA0A3, - 36832 - 11904: 0xD0B6, - 36833 - 11904: 0xD0B4, - 36834 - 11904: 0xAD7C, - 36835 - 11904: 0xD0B3, - 36836 - 11904: 0xADA3, - 36837 - 11904: 0xAD7E, - 36838 - 11904: 0xAD7B, - 36840 - 11904: 0xADA4, - 36842 - 11904: 0xAD7D, - 36843 - 11904: 0xADA2, - 36845 - 11904: 0xADA1, - 36846 - 11904: 0xD0B5, - 36848 - 11904: 0xAD7A, - 36852 - 11904: 0xB06A, - 36853 - 11904: 0xD3EB, - 36854 - 11904: 0xD3F1, - 36855 - 11904: 0xB067, - 36856 - 11904: 0xB06E, - 36857 - 11904: 0x905B, - 36858 - 11904: 0xB069, - 36859 - 11904: 0xD3EE, - 36860 - 11904: 0xD3F0, - 36861 - 11904: 0xB06C, - 36862 - 11904: 0xD3EA, - 36863 - 11904: 0xD3ED, - 36864 - 11904: 0xB068, - 36865 - 11904: 0xB065, - 36866 - 11904: 0xD3EC, - 36867 - 11904: 0xB06B, - 36868 - 11904: 0xD3EF, - 36869 - 11904: 0xB06D, - 36870 - 11904: 0xB066, - 36872 - 11904: 0x9EDB, - 36875 - 11904: 0xD7E3, - 36876 - 11904: 0xD7E6, - 36877 - 11904: 0xB370, - 36879 - 11904: 0xB37A, - 36880 - 11904: 0xB376, - 36881 - 11904: 0xD7E4, - 36882 - 11904: 0x9D79, - 36884 - 11904: 0xB37E, - 36885 - 11904: 0xB377, - 36886 - 11904: 0xB37C, - 36887 - 11904: 0xB372, - 36889 - 11904: 0xB36F, - 36890 - 11904: 0xB371, - 36891 - 11904: 0xB37D, - 36892 - 11904: 0xD7E5, - 36893 - 11904: 0xB375, - 36894 - 11904: 0xB378, - 36895 - 11904: 0xB374, - 36896 - 11904: 0xB379, - 36897 - 11904: 0xD7E7, - 36898 - 11904: 0xB37B, - 36899 - 11904: 0xB373, - 36900 - 11904: 0xD7E2, - 36909 - 11904: 0xDC4D, - 36910 - 11904: 0xB665, - 36911 - 11904: 0xDC4F, - 36913 - 11904: 0xB667, - 36914 - 11904: 0xB669, - 36915 - 11904: 0x99F3, - 36916 - 11904: 0xDC4E, - 36917 - 11904: 0xB666, - 36918 - 11904: 0xB66A, - 36919 - 11904: 0x9062, - 36920 - 11904: 0xB668, - 36924 - 11904: 0xB947, - 36925 - 11904: 0xE0A3, - 36926 - 11904: 0xB94F, - 36927 - 11904: 0xE07E, - 36929 - 11904: 0xB950, - 36930 - 11904: 0xB945, - 36932 - 11904: 0xE0A1, - 36934 - 11904: 0x87BD, - 36935 - 11904: 0xB94A, - 36937 - 11904: 0xE0A2, - 36938 - 11904: 0xB943, - 36939 - 11904: 0xB942, - 36940 - 11904: 0x9F55, - 36941 - 11904: 0xB94D, - 36942 - 11904: 0xB94C, - 36943 - 11904: 0xB94B, - 36944 - 11904: 0xB949, - 36945 - 11904: 0xB94E, - 36946 - 11904: 0xE07D, - 36947 - 11904: 0xB944, - 36948 - 11904: 0xB946, - 36949 - 11904: 0xB948, - 36950 - 11904: 0x9BF9, - 36952 - 11904: 0xBBB8, - 36953 - 11904: 0xBBBB, - 36955 - 11904: 0xBBBF, - 36956 - 11904: 0xBBB9, - 36957 - 11904: 0xBBBE, - 36958 - 11904: 0xBBBC, - 36960 - 11904: 0xBBB7, - 36961 - 11904: 0x9065, - 36962 - 11904: 0xBBBD, - 36963 - 11904: 0xBBBA, - 36964 - 11904: 0x96E0, - 36967 - 11904: 0xE852, - 36968 - 11904: 0xBE43, - 36969 - 11904: 0xBE41, - 36971 - 11904: 0xE853, - 36972 - 11904: 0x98BE, - 36973 - 11904: 0xBE44, - 36974 - 11904: 0xBE42, - 36975 - 11904: 0xE851, - 36976 - 11904: 0xE850, - 36978 - 11904: 0xBFF0, - 36979 - 11904: 0xE84F, - 36980 - 11904: 0xBFEE, - 36981 - 11904: 0xBFED, - 36982 - 11904: 0xEBD0, - 36983 - 11904: 0xBE45, - 36984 - 11904: 0xBFEF, - 36985 - 11904: 0xEBD1, - 36986 - 11904: 0xBFF2, - 36987 - 11904: 0xEBD2, - 36988 - 11904: 0xBFF1, - 36989 - 11904: 0xC1D8, - 36990 - 11904: 0xEEC3, - 36991 - 11904: 0xC1D7, - 36992 - 11904: 0xC1DC, - 36993 - 11904: 0xC1DA, - 36994 - 11904: 0xC1DB, - 36995 - 11904: 0xC2E3, - 36996 - 11904: 0xC1D9, - 36997 - 11904: 0xEEC2, - 36998 - 11904: 0xEBD3, - 36999 - 11904: 0xC2E2, - 37000 - 11904: 0xC2E4, - 37002 - 11904: 0xC3E4, - 37003 - 11904: 0xC3E5, - 37005 - 11904: 0xF4E0, - 37007 - 11904: 0xC5DE, - 37008 - 11904: 0xC5DD, - 37009 - 11904: 0xA8B6, - 37012 - 11904: 0xCA55, - 37013 - 11904: 0xB06F, - 37015 - 11904: 0xCA52, - 37016 - 11904: 0xCA53, - 37017 - 11904: 0xCA51, - 37019 - 11904: 0xCA54, - 37022 - 11904: 0xCBAA, - 37023 - 11904: 0xCBA7, - 37024 - 11904: 0xCBAC, - 37025 - 11904: 0xCBA8, - 37026 - 11904: 0xA8B7, - 37027 - 11904: 0xA8BA, - 37029 - 11904: 0xCBA9, - 37030 - 11904: 0xA8B9, - 37031 - 11904: 0xCBAB, - 37032 - 11904: 0x9068, - 37034 - 11904: 0xA8B8, - 37038 - 11904: 0x906C, - 37039 - 11904: 0xCDD5, - 37040 - 11904: 0xCDD7, - 37041 - 11904: 0xAAF4, - 37042 - 11904: 0xCDD3, - 37043 - 11904: 0xCDD6, - 37044 - 11904: 0xCDD4, - 37045 - 11904: 0xAAF2, - 37046 - 11904: 0xAAF5, - 37048 - 11904: 0xAAF3, - 37051 - 11904: 0x95D8, - 37053 - 11904: 0xD0B8, - 37054 - 11904: 0xD0BC, - 37055 - 11904: 0xD0B9, - 37057 - 11904: 0xADA7, - 37059 - 11904: 0xADA8, - 37060 - 11904: 0x906A, - 37061 - 11904: 0xD0BB, - 37063 - 11904: 0xD0BD, - 37064 - 11904: 0xD0BF, - 37066 - 11904: 0xADA5, - 37067 - 11904: 0xD0BE, - 37070 - 11904: 0xADA6, - 37076 - 11904: 0xD7EE, - 37077 - 11904: 0xD0BA, - 37078 - 11904: 0xD3F2, - 37079 - 11904: 0xD3FB, - 37080 - 11904: 0xD3F9, - 37081 - 11904: 0xD3F4, - 37082 - 11904: 0xD3F5, - 37083 - 11904: 0xD3FA, - 37084 - 11904: 0xD3FC, - 37085 - 11904: 0xB071, - 37087 - 11904: 0xD3F7, - 37088 - 11904: 0xD3F3, - 37089 - 11904: 0xB070, - 37090 - 11904: 0xB072, - 37091 - 11904: 0xD3F6, - 37092 - 11904: 0xD3FD, - 37093 - 11904: 0xD3F8, - 37096 - 11904: 0xB3A1, - 37097 - 11904: 0xD7F1, - 37098 - 11904: 0xD7E9, - 37099 - 11904: 0xD7EF, - 37100 - 11904: 0xD7F0, - 37101 - 11904: 0xB3A2, - 37103 - 11904: 0xD7E8, - 37104 - 11904: 0xD7EA, - 37105 - 11904: 0xD0B7, - 37106 - 11904: 0xD7EC, - 37107 - 11904: 0xD7ED, - 37108 - 11904: 0xD7EB, - 37109 - 11904: 0xB66C, - 37113 - 11904: 0xDC56, - 37114 - 11904: 0xEBD4, - 37115 - 11904: 0xDC57, - 37116 - 11904: 0xDC54, - 37117 - 11904: 0xB3A3, - 37118 - 11904: 0xB66E, - 37119 - 11904: 0xDC53, - 37120 - 11904: 0xDC59, - 37121 - 11904: 0xDC58, - 37122 - 11904: 0xB66B, - 37123 - 11904: 0xDC5C, - 37124 - 11904: 0xDC52, - 37125 - 11904: 0xDC5B, - 37126 - 11904: 0xDC50, - 37127 - 11904: 0xDC5A, - 37128 - 11904: 0xDC55, - 37129 - 11904: 0xB66D, - 37131 - 11904: 0xE0AA, - 37133 - 11904: 0xE0A5, - 37134 - 11904: 0xE0AB, - 37135 - 11904: 0xE0A6, - 37136 - 11904: 0xE0A4, - 37137 - 11904: 0xE0A7, - 37138 - 11904: 0xB951, - 37140 - 11904: 0xE0A9, - 37142 - 11904: 0xE0A8, - 37143 - 11904: 0xB952, - 37144 - 11904: 0xBBC1, - 37145 - 11904: 0xBBC0, - 37146 - 11904: 0xE46E, - 37147 - 11904: 0xE471, - 37148 - 11904: 0xE469, - 37149 - 11904: 0xE46D, - 37150 - 11904: 0xBBC2, - 37151 - 11904: 0xE46C, - 37152 - 11904: 0xE46A, - 37153 - 11904: 0xE470, - 37154 - 11904: 0xE46B, - 37155 - 11904: 0xE468, - 37156 - 11904: 0xE46F, - 37158 - 11904: 0xE859, - 37159 - 11904: 0xBE48, - 37160 - 11904: 0xF14A, - 37161 - 11904: 0xE856, - 37162 - 11904: 0xE857, - 37163 - 11904: 0xE855, - 37164 - 11904: 0xDC51, - 37165 - 11904: 0xBE47, - 37166 - 11904: 0xE85A, - 37167 - 11904: 0xE854, - 37168 - 11904: 0xBE46, - 37169 - 11904: 0xBE49, - 37170 - 11904: 0xE858, - 37171 - 11904: 0xEBD5, - 37172 - 11904: 0xBFF3, - 37173 - 11904: 0xEBD6, - 37174 - 11904: 0xEBD7, - 37176 - 11904: 0xEEC4, - 37177 - 11904: 0xC1DD, - 37178 - 11904: 0xF14B, - 37179 - 11904: 0xF14C, - 37182 - 11904: 0xF14D, - 37183 - 11904: 0xF35D, - 37184 - 11904: 0xF35C, - 37185 - 11904: 0xF4E2, - 37187 - 11904: 0xF4E1, - 37188 - 11904: 0xF65B, - 37189 - 11904: 0xF65C, - 37190 - 11904: 0xF65A, - 37191 - 11904: 0xF766, - 37192 - 11904: 0xC5B0, - 37193 - 11904: 0xA8BB, - 37194 - 11904: 0xADAA, - 37195 - 11904: 0xADA9, - 37196 - 11904: 0xB075, - 37197 - 11904: 0xB074, - 37198 - 11904: 0xD440, - 37199 - 11904: 0xD441, - 37200 - 11904: 0xD3FE, - 37201 - 11904: 0x9FB2, - 37202 - 11904: 0xB073, - 37203 - 11904: 0xD7F5, - 37205 - 11904: 0xD7F6, - 37206 - 11904: 0xD7F2, - 37207 - 11904: 0xB3A4, - 37208 - 11904: 0xD7F3, - 37209 - 11904: 0x9FAE, - 37210 - 11904: 0xD7F4, - 37212 - 11904: 0x9FB0, - 37214 - 11904: 0x89AD, - 37215 - 11904: 0xDC5F, - 37216 - 11904: 0xDC61, - 37217 - 11904: 0xDC5D, - 37218 - 11904: 0xDC60, - 37219 - 11904: 0xB66F, - 37220 - 11904: 0xDC5E, - 37221 - 11904: 0xB670, - 37223 - 11904: 0x906E, - 37224 - 11904: 0xDD73, - 37225 - 11904: 0xB955, - 37226 - 11904: 0xB954, - 37228 - 11904: 0xB953, - 37230 - 11904: 0xE0AC, - 37231 - 11904: 0xE0AD, - 37232 - 11904: 0x9E71, - 37234 - 11904: 0xE473, - 37235 - 11904: 0xE475, - 37236 - 11904: 0xBBC6, - 37237 - 11904: 0xBBC3, - 37238 - 11904: 0x9E4A, - 37239 - 11904: 0xBBC5, - 37240 - 11904: 0xBBC4, - 37241 - 11904: 0xE474, - 37242 - 11904: 0xE472, - 37244 - 11904: 0x9FDC, - 37248 - 11904: 0xE861, - 37249 - 11904: 0xE85E, - 37250 - 11904: 0xE85F, - 37251 - 11904: 0xBE4D, - 37252 - 11904: 0xE860, - 37253 - 11904: 0xE85B, - 37254 - 11904: 0xE85C, - 37255 - 11904: 0xBE4A, - 37257 - 11904: 0xBE4B, - 37258 - 11904: 0xE85D, - 37259 - 11904: 0xBE4C, - 37260 - 11904: 0x89AB, - 37261 - 11904: 0xEBDB, - 37262 - 11904: 0x9FB8, - 37263 - 11904: 0xEBDC, - 37264 - 11904: 0xEBD9, - 37265 - 11904: 0xEBDA, - 37266 - 11904: 0xBFF4, - 37267 - 11904: 0xEBD8, - 37273 - 11904: 0xEEC8, - 37274 - 11904: 0xEEC5, - 37275 - 11904: 0xEEC7, - 37276 - 11904: 0xC1E0, - 37277 - 11904: 0xEECB, - 37278 - 11904: 0xC1DF, - 37279 - 11904: 0xEEC9, - 37280 - 11904: 0xEECC, - 37281 - 11904: 0xEECA, - 37282 - 11904: 0xEEC6, - 37283 - 11904: 0xC1DE, - 37285 - 11904: 0xF14F, - 37287 - 11904: 0xF150, - 37288 - 11904: 0xF14E, - 37289 - 11904: 0x9070, - 37290 - 11904: 0xF152, - 37291 - 11904: 0xC2E5, - 37292 - 11904: 0xC2E6, - 37293 - 11904: 0xF35F, - 37294 - 11904: 0xC3E7, - 37295 - 11904: 0xF151, - 37296 - 11904: 0xF35E, - 37297 - 11904: 0xC3E6, - 37298 - 11904: 0xF4E5, - 37299 - 11904: 0xF4E6, - 37300 - 11904: 0xC4BF, - 37301 - 11904: 0xF4E4, - 37302 - 11904: 0x8B63, - 37303 - 11904: 0xF4E3, - 37305 - 11904: 0xF65D, - 37306 - 11904: 0xC548, - 37307 - 11904: 0x95DC, - 37308 - 11904: 0xF849, - 37309 - 11904: 0xF8C8, - 37310 - 11904: 0xF8C7, - 37312 - 11904: 0xC643, - 37313 - 11904: 0xC65D, - 37314 - 11904: 0xF8C9, - 37315 - 11904: 0xF971, - 37316 - 11904: 0x9071, - 37317 - 11904: 0xC66F, - 37318 - 11904: 0xA8BC, - 37319 - 11904: 0xAAF6, - 37321 - 11904: 0xB956, - 37323 - 11904: 0xC4C0, - 37324 - 11904: 0xA8BD, - 37325 - 11904: 0xADAB, - 37326 - 11904: 0xB3A5, - 37327 - 11904: 0xB671, - 37328 - 11904: 0xC2E7, - 37329 - 11904: 0xAAF7, - 37331 - 11904: 0xD0C1, - 37332 - 11904: 0xD0C0, - 37333 - 11904: 0xD442, - 37334 - 11904: 0xFC5E, - 37335 - 11904: 0xB078, - 37336 - 11904: 0xB076, - 37337 - 11904: 0xB07A, - 37338 - 11904: 0xD444, - 37340 - 11904: 0xB079, - 37341 - 11904: 0xB077, - 37343 - 11904: 0x8949, - 37346 - 11904: 0xD443, - 37347 - 11904: 0xB3A8, - 37348 - 11904: 0xD7FC, - 37349 - 11904: 0x965B, - 37350 - 11904: 0xB3A7, - 37351 - 11904: 0xB3A9, - 37352 - 11904: 0xD842, - 37353 - 11904: 0xB3AB, - 37354 - 11904: 0xD7FE, - 37355 - 11904: 0xD840, - 37356 - 11904: 0xD7F7, - 37357 - 11904: 0xB3AA, - 37358 - 11904: 0xD843, - 37361 - 11904: 0xD7F9, - 37363 - 11904: 0xD7FA, - 37364 - 11904: 0xD7F8, - 37365 - 11904: 0xB3A6, - 37366 - 11904: 0x8C50, - 37367 - 11904: 0xD841, - 37368 - 11904: 0xD7FB, - 37369 - 11904: 0xD7FD, - 37370 - 11904: 0x94A6, - 37373 - 11904: 0xDC6D, - 37374 - 11904: 0x8FD5, - 37375 - 11904: 0xDC6C, - 37376 - 11904: 0xDC6A, - 37377 - 11904: 0xDC62, - 37378 - 11904: 0xDC71, - 37379 - 11904: 0xDC65, - 37380 - 11904: 0xDC6F, - 37381 - 11904: 0xDC76, - 37382 - 11904: 0xDC6E, - 37383 - 11904: 0xB679, - 37384 - 11904: 0x9E73, - 37385 - 11904: 0xB675, - 37386 - 11904: 0xDC63, - 37388 - 11904: 0xDC69, - 37389 - 11904: 0xB677, - 37390 - 11904: 0x9075, - 37391 - 11904: 0xDC68, - 37392 - 11904: 0xB678, - 37393 - 11904: 0xB67A, - 37394 - 11904: 0xDC6B, - 37395 - 11904: 0x99F7, - 37396 - 11904: 0xB672, - 37397 - 11904: 0xB673, - 37398 - 11904: 0xDC77, - 37399 - 11904: 0xDC75, - 37400 - 11904: 0x87B2, - 37401 - 11904: 0xDC74, - 37402 - 11904: 0xDC66, - 37404 - 11904: 0xDC72, - 37406 - 11904: 0xB676, - 37409 - 11904: 0x8CBF, - 37411 - 11904: 0xB674, - 37412 - 11904: 0xDC73, - 37413 - 11904: 0xDC64, - 37414 - 11904: 0xDC67, - 37415 - 11904: 0xDC70, - 37416 - 11904: 0x99F9, - 37418 - 11904: 0x9663, - 37419 - 11904: 0x95B9, - 37421 - 11904: 0xE4BA, - 37422 - 11904: 0xE0B7, - 37424 - 11904: 0xE0B0, - 37425 - 11904: 0xE0C3, - 37426 - 11904: 0xE0CC, - 37427 - 11904: 0xE0B3, - 37428 - 11904: 0xB961, - 37429 - 11904: 0x94D4, - 37430 - 11904: 0xE0C0, - 37431 - 11904: 0xB957, - 37432 - 11904: 0xB959, - 37433 - 11904: 0xB965, - 37434 - 11904: 0xE0B1, - 37436 - 11904: 0xFCFA, - 37437 - 11904: 0xB95A, - 37438 - 11904: 0xB95C, - 37439 - 11904: 0xB966, - 37440 - 11904: 0xB95B, - 37441 - 11904: 0x9077, - 37444 - 11904: 0x90AB, - 37445 - 11904: 0xB964, - 37446 - 11904: 0xE0B9, - 37448 - 11904: 0xE0AE, - 37449 - 11904: 0xB962, - 37450 - 11904: 0xE0B8, - 37451 - 11904: 0xB95E, - 37452 - 11904: 0xE0CA, - 37453 - 11904: 0xB963, - 37454 - 11904: 0xE0C8, - 37455 - 11904: 0xE0BC, - 37456 - 11904: 0xE0C6, - 37457 - 11904: 0xB960, - 37458 - 11904: 0xE0AF, - 37459 - 11904: 0xE0C9, - 37460 - 11904: 0xE0C4, - 37461 - 11904: 0x9D4D, - 37462 - 11904: 0xE0CB, - 37463 - 11904: 0xB958, - 37464 - 11904: 0x99FA, - 37466 - 11904: 0xB967, - 37467 - 11904: 0xB95D, - 37469 - 11904: 0x92E3, - 37470 - 11904: 0xE0B5, - 37471 - 11904: 0x97BB, - 37472 - 11904: 0xE0BD, - 37473 - 11904: 0xE0C1, - 37474 - 11904: 0x9078, - 37475 - 11904: 0xE0C5, - 37476 - 11904: 0xB95F, - 37477 - 11904: 0xE0B4, - 37478 - 11904: 0xE0B2, - 37479 - 11904: 0xE0BE, - 37483 - 11904: 0x99FB, - 37484 - 11904: 0xE0BB, - 37485 - 11904: 0xE0BA, - 37486 - 11904: 0x97E0, - 37487 - 11904: 0xE0BF, - 37488 - 11904: 0xE0C2, - 37490 - 11904: 0xE0C7, - 37494 - 11904: 0xE478, - 37495 - 11904: 0x96DC, - 37496 - 11904: 0xBBC7, - 37497 - 11904: 0xE4A4, - 37498 - 11904: 0xE47A, - 37499 - 11904: 0xBBCC, - 37500 - 11904: 0xBBD0, - 37501 - 11904: 0xE4AD, - 37502 - 11904: 0xE4B5, - 37503 - 11904: 0xE4A6, - 37504 - 11904: 0xBBC8, - 37505 - 11904: 0x9CA8, - 37506 - 11904: 0xE4AA, - 37507 - 11904: 0xE0B6, - 37508 - 11904: 0x9772, - 37509 - 11904: 0xBBC9, - 37510 - 11904: 0xE4B1, - 37511 - 11904: 0xE4B6, - 37512 - 11904: 0xE4AE, - 37513 - 11904: 0x9440, - 37514 - 11904: 0xE4B0, - 37515 - 11904: 0xE4B9, - 37516 - 11904: 0xE4B2, - 37517 - 11904: 0xE47E, - 37518 - 11904: 0xE4A9, - 37519 - 11904: 0x92F2, - 37521 - 11904: 0xBBD1, - 37523 - 11904: 0xBBCD, - 37524 - 11904: 0xE47C, - 37525 - 11904: 0xE4AB, - 37526 - 11904: 0xBBCB, - 37527 - 11904: 0xE4A5, - 37528 - 11904: 0xBBCA, - 37529 - 11904: 0xE4B3, - 37530 - 11904: 0xE4A2, - 37531 - 11904: 0xE479, - 37532 - 11904: 0xBBCE, - 37533 - 11904: 0xE4B8, - 37536 - 11904: 0xE47B, - 37537 - 11904: 0xE4AF, - 37538 - 11904: 0xE4AC, - 37539 - 11904: 0xE4A7, - 37540 - 11904: 0xE477, - 37541 - 11904: 0xE476, - 37542 - 11904: 0xE4A1, - 37543 - 11904: 0xE4B4, - 37544 - 11904: 0xBBCF, - 37545 - 11904: 0xE4B7, - 37546 - 11904: 0xE47D, - 37547 - 11904: 0xE4A3, - 37548 - 11904: 0xBE52, - 37550 - 11904: 0x99FD, - 37553 - 11904: 0x99FC, - 37554 - 11904: 0xBE5A, - 37555 - 11904: 0xBE55, - 37556 - 11904: 0xE8A4, - 37557 - 11904: 0xE8A1, - 37558 - 11904: 0xE867, - 37559 - 11904: 0xBE50, - 37561 - 11904: 0xF9D7, - 37562 - 11904: 0x964A, - 37563 - 11904: 0xBE4F, - 37564 - 11904: 0xBE56, - 37566 - 11904: 0x96D8, - 37567 - 11904: 0x99FE, - 37568 - 11904: 0xE865, - 37569 - 11904: 0xBE54, - 37570 - 11904: 0xE871, - 37571 - 11904: 0xE863, - 37572 - 11904: 0xE864, - 37573 - 11904: 0xBE4E, - 37574 - 11904: 0xE8A3, - 37575 - 11904: 0xBE58, - 37576 - 11904: 0xE874, - 37577 - 11904: 0xE879, - 37578 - 11904: 0xE873, - 37579 - 11904: 0xEBEE, - 37580 - 11904: 0xE86F, - 37581 - 11904: 0xE877, - 37582 - 11904: 0xE875, - 37583 - 11904: 0xE868, - 37584 - 11904: 0xE862, - 37585 - 11904: 0xE87D, - 37586 - 11904: 0xBE57, - 37587 - 11904: 0xE87E, - 37588 - 11904: 0x904B, - 37589 - 11904: 0xE878, - 37591 - 11904: 0xE86D, - 37592 - 11904: 0xE86B, - 37593 - 11904: 0xE866, - 37595 - 11904: 0xFA41, - 37597 - 11904: 0xE86E, - 37598 - 11904: 0xE87B, - 37599 - 11904: 0xE86A, - 37600 - 11904: 0xE87A, - 37601 - 11904: 0xE8A2, - 37603 - 11904: 0x9A40, - 37604 - 11904: 0xBE53, - 37605 - 11904: 0x975B, - 37606 - 11904: 0xE876, - 37607 - 11904: 0xE87C, - 37608 - 11904: 0xE872, - 37609 - 11904: 0xE86C, - 37610 - 11904: 0xBE51, - 37611 - 11904: 0x9A41, - 37612 - 11904: 0x91DD, - 37614 - 11904: 0xE4A8, - 37615 - 11904: 0xE870, - 37616 - 11904: 0xBE59, - 37617 - 11904: 0xE869, - 37618 - 11904: 0x93FC, - 37619 - 11904: 0x9A42, - 37620 - 11904: 0x9A43, - 37622 - 11904: 0x9659, - 37623 - 11904: 0xEBF4, - 37624 - 11904: 0xBFF7, - 37625 - 11904: 0xEBF3, - 37626 - 11904: 0xEBF0, - 37627 - 11904: 0xEC44, - 37628 - 11904: 0xBFFB, - 37629 - 11904: 0x9A44, - 37630 - 11904: 0xEC41, - 37631 - 11904: 0xEBF8, - 37632 - 11904: 0xEC43, - 37633 - 11904: 0xEBE9, - 37634 - 11904: 0xEBF6, - 37635 - 11904: 0x9051, - 37636 - 11904: 0xBFFD, - 37638 - 11904: 0xEBE1, - 37639 - 11904: 0x94BF, - 37640 - 11904: 0xEBDF, - 37641 - 11904: 0xEC42, - 37643 - 11904: 0xEC40, - 37644 - 11904: 0xEBFE, - 37645 - 11904: 0xEBED, - 37646 - 11904: 0xEBEC, - 37647 - 11904: 0xEBE2, - 37648 - 11904: 0xC040, - 37650 - 11904: 0xEBE8, - 37651 - 11904: 0xEBF2, - 37652 - 11904: 0xEBFD, - 37653 - 11904: 0xC043, - 37654 - 11904: 0xEC45, - 37656 - 11904: 0xC1E8, - 37657 - 11904: 0xC045, - 37658 - 11904: 0xBFFE, - 37659 - 11904: 0xEBE6, - 37661 - 11904: 0xEBEF, - 37662 - 11904: 0xEBDE, - 37663 - 11904: 0xEBE0, - 37664 - 11904: 0xBFF5, - 37665 - 11904: 0xC042, - 37666 - 11904: 0xBFFA, - 37667 - 11904: 0xEBE7, - 37668 - 11904: 0xEBF7, - 37669 - 11904: 0xEBF1, - 37670 - 11904: 0xC041, - 37671 - 11904: 0xEBDD, - 37672 - 11904: 0xC1E3, - 37673 - 11904: 0xEBF9, - 37674 - 11904: 0xEBFC, - 37675 - 11904: 0xBFFC, - 37676 - 11904: 0x90A2, - 37677 - 11904: 0xEBEB, - 37678 - 11904: 0xC044, - 37679 - 11904: 0xBFF9, - 37680 - 11904: 0x9CAB, - 37681 - 11904: 0x9776, - 37683 - 11904: 0xBFF8, - 37684 - 11904: 0xEBF5, - 37685 - 11904: 0xEBFB, - 37686 - 11904: 0xBFF6, - 37688 - 11904: 0xEBE4, - 37689 - 11904: 0xEBFA, - 37692 - 11904: 0xEBE5, - 37696 - 11904: 0xFC55, - 37697 - 11904: 0xFE45, - 37698 - 11904: 0x94A8, - 37699 - 11904: 0x9A45, - 37700 - 11904: 0xFA4B, - 37701 - 11904: 0x9DE1, - 37702 - 11904: 0xEBEA, - 37703 - 11904: 0xEED2, - 37704 - 11904: 0x96D9, - 37705 - 11904: 0xEED7, - 37706 - 11904: 0xC1E5, - 37707 - 11904: 0xC1E7, - 37708 - 11904: 0xEEDD, - 37709 - 11904: 0xC1E1, - 37710 - 11904: 0xEEEC, - 37711 - 11904: 0xEEE3, - 37712 - 11904: 0xEED8, - 37713 - 11904: 0xEED9, - 37714 - 11904: 0xEEE2, - 37716 - 11904: 0xC1EE, - 37717 - 11904: 0xEEE1, - 37718 - 11904: 0xEED1, - 37719 - 11904: 0xEEE0, - 37720 - 11904: 0xEED4, - 37721 - 11904: 0xEEED, - 37722 - 11904: 0xC1ED, - 37723 - 11904: 0xC1EB, - 37724 - 11904: 0xEED5, - 37726 - 11904: 0xEEE8, - 37727 - 11904: 0x9774, - 37728 - 11904: 0xEEDA, - 37729 - 11904: 0xEEE7, - 37730 - 11904: 0xFDF5, - 37731 - 11904: 0xEEE9, - 37732 - 11904: 0xEED0, - 37733 - 11904: 0xC1E6, - 37734 - 11904: 0x92E5, - 37735 - 11904: 0xEEEA, - 37736 - 11904: 0x9645, - 37737 - 11904: 0x91DA, - 37738 - 11904: 0xEEDE, - 37739 - 11904: 0x90A3, - 37740 - 11904: 0xC1EA, - 37741 - 11904: 0xEEDB, - 37742 - 11904: 0xA05F, - 37744 - 11904: 0xC1EC, - 37745 - 11904: 0xEEE4, - 37747 - 11904: 0x90AF, - 37748 - 11904: 0x97BF, - 37749 - 11904: 0xC1E4, - 37750 - 11904: 0xEED6, - 37751 - 11904: 0xEEE5, - 37752 - 11904: 0x914C, - 37753 - 11904: 0xEEDF, - 37754 - 11904: 0xEBE3, - 37755 - 11904: 0xEEE6, - 37756 - 11904: 0xEED3, - 37757 - 11904: 0x967A, - 37758 - 11904: 0xC1E9, - 37760 - 11904: 0xEEEB, - 37761 - 11904: 0x91DE, - 37762 - 11904: 0xC1E2, - 37763 - 11904: 0xEECE, - 37764 - 11904: 0x9A46, - 37765 - 11904: 0xFEB0, - 37766 - 11904: 0x9779, - 37767 - 11904: 0x946C, - 37768 - 11904: 0xF160, - 37769 - 11904: 0xF159, - 37770 - 11904: 0xC2E9, - 37772 - 11904: 0xF154, - 37773 - 11904: 0xF163, - 37774 - 11904: 0xF15B, - 37775 - 11904: 0xEEDC, - 37776 - 11904: 0x9858, - 37777 - 11904: 0xF165, - 37778 - 11904: 0xF155, - 37780 - 11904: 0xC2E8, - 37781 - 11904: 0xF15F, - 37782 - 11904: 0xC2EA, - 37783 - 11904: 0xC2F2, - 37784 - 11904: 0xC2F0, - 37785 - 11904: 0xF161, - 37786 - 11904: 0xC2F1, - 37787 - 11904: 0xF157, - 37788 - 11904: 0x9266, - 37789 - 11904: 0xF158, - 37790 - 11904: 0xF15D, - 37791 - 11904: 0xF162, - 37792 - 11904: 0x93FB, - 37793 - 11904: 0xEECD, - 37794 - 11904: 0xC2EB, - 37795 - 11904: 0xF16A, - 37796 - 11904: 0xF167, - 37797 - 11904: 0xF16B, - 37798 - 11904: 0xF15E, - 37799 - 11904: 0xF15A, - 37800 - 11904: 0xF168, - 37801 - 11904: 0xF36A, - 37802 - 11904: 0xF15C, - 37804 - 11904: 0xC2EE, - 37805 - 11904: 0x9A47, - 37806 - 11904: 0xC2ED, - 37807 - 11904: 0xEECF, - 37808 - 11904: 0xC2EF, - 37809 - 11904: 0xF164, - 37810 - 11904: 0xF166, - 37811 - 11904: 0xC2EC, - 37812 - 11904: 0xF169, - 37813 - 11904: 0xF153, - 37815 - 11904: 0xF156, - 37816 - 11904: 0x9749, - 37819 - 11904: 0x9748, - 37821 - 11904: 0x934A, - 37823 - 11904: 0x9CE2, - 37824 - 11904: 0xF373, - 37826 - 11904: 0xF363, - 37827 - 11904: 0xC3EB, - 37828 - 11904: 0xF371, - 37830 - 11904: 0x9264, - 37831 - 11904: 0xF361, - 37832 - 11904: 0xC3EC, - 37834 - 11904: 0xF36C, - 37835 - 11904: 0x91DF, - 37836 - 11904: 0xF368, - 37837 - 11904: 0xC3F1, - 37838 - 11904: 0xF372, - 37839 - 11904: 0xF362, - 37840 - 11904: 0xF365, - 37841 - 11904: 0xC3E9, - 37842 - 11904: 0xF374, - 37843 - 11904: 0xFB79, - 37844 - 11904: 0xF36D, - 37845 - 11904: 0xF370, - 37846 - 11904: 0xC3EF, - 37847 - 11904: 0xC3F4, - 37848 - 11904: 0xC3F2, - 37849 - 11904: 0xF369, - 37850 - 11904: 0xF364, - 37851 - 11904: 0x96D7, - 37852 - 11904: 0xC3ED, - 37853 - 11904: 0xC3EE, - 37854 - 11904: 0xF360, - 37855 - 11904: 0xC3EA, - 37856 - 11904: 0x9343, - 37857 - 11904: 0xC3E8, - 37858 - 11904: 0xC3F0, - 37859 - 11904: 0xF36F, - 37860 - 11904: 0xC3F3, - 37862 - 11904: 0xF36B, - 37863 - 11904: 0xF375, - 37864 - 11904: 0xC3F5, - 37868 - 11904: 0xF367, - 37870 - 11904: 0xF36E, - 37872 - 11904: 0xFDCB, - 37873 - 11904: 0xFE7A, - 37875 - 11904: 0x91DB, - 37876 - 11904: 0x8C6A, - 37877 - 11904: 0xF4F3, - 37878 - 11904: 0xF542, - 37879 - 11904: 0xF4F5, - 37880 - 11904: 0xF4FC, - 37881 - 11904: 0xF366, - 37882 - 11904: 0xF4FA, - 37883 - 11904: 0xF4E9, - 37884 - 11904: 0xF540, - 37885 - 11904: 0xC4C3, - 37886 - 11904: 0xF4ED, - 37887 - 11904: 0xF4FE, - 37888 - 11904: 0xF4F4, - 37889 - 11904: 0x97AF, - 37891 - 11904: 0xC4C2, - 37892 - 11904: 0x95DD, - 37894 - 11904: 0xF544, - 37895 - 11904: 0xF4F6, - 37896 - 11904: 0x9348, - 37897 - 11904: 0xF4FB, - 37898 - 11904: 0xF4FD, - 37899 - 11904: 0xF4E7, - 37900 - 11904: 0xF541, - 37901 - 11904: 0xF4F2, - 37902 - 11904: 0xF4F7, - 37903 - 11904: 0xF4EB, - 37904 - 11904: 0xF4EF, - 37905 - 11904: 0xF543, - 37906 - 11904: 0xF4F9, - 37907 - 11904: 0xF4E8, - 37908 - 11904: 0xF4EC, - 37909 - 11904: 0xF4EE, - 37910 - 11904: 0xF4F8, - 37911 - 11904: 0x9A4B, - 37912 - 11904: 0xC4C1, - 37913 - 11904: 0xF4F1, - 37915 - 11904: 0xFC45, - 37917 - 11904: 0x9A4D, - 37920 - 11904: 0xF4EA, - 37924 - 11904: 0x91BC, - 37925 - 11904: 0x90E2, - 37926 - 11904: 0x90B4, - 37927 - 11904: 0x95E1, - 37928 - 11904: 0xF4F0, - 37929 - 11904: 0xF661, - 37930 - 11904: 0xF666, - 37931 - 11904: 0xC54F, - 37932 - 11904: 0xF668, - 37933 - 11904: 0x9A4E, - 37934 - 11904: 0xC549, - 37935 - 11904: 0x87AD, - 37936 - 11904: 0xF664, - 37937 - 11904: 0xF66A, - 37938 - 11904: 0xC54E, - 37939 - 11904: 0xC54A, - 37941 - 11904: 0xC54B, - 37942 - 11904: 0xF660, - 37943 - 11904: 0xF667, - 37944 - 11904: 0xC54D, - 37945 - 11904: 0xF665, - 37946 - 11904: 0xC54C, - 37947 - 11904: 0xF65F, - 37948 - 11904: 0xF663, - 37949 - 11904: 0xF662, - 37950 - 11904: 0x9A4F, - 37951 - 11904: 0xF65E, - 37952 - 11904: 0xF669, - 37954 - 11904: 0xFE40, - 37955 - 11904: 0xFE43, - 37956 - 11904: 0xC5B1, - 37957 - 11904: 0xF76D, - 37958 - 11904: 0xF770, - 37959 - 11904: 0xF76C, - 37960 - 11904: 0xF76E, - 37961 - 11904: 0xF76F, - 37962 - 11904: 0xF769, - 37963 - 11904: 0xF76A, - 37964 - 11904: 0xF767, - 37965 - 11904: 0x96DD, - 37967 - 11904: 0xF76B, - 37968 - 11904: 0xF768, - 37969 - 11904: 0xC5B2, - 37970 - 11904: 0xC5B3, - 37972 - 11904: 0x9A51, - 37973 - 11904: 0xF84B, - 37975 - 11904: 0xF84D, - 37976 - 11904: 0x96A7, - 37979 - 11904: 0x90B0, - 37981 - 11904: 0xF84C, - 37982 - 11904: 0xF84E, - 37984 - 11904: 0xC5E0, - 37986 - 11904: 0xF84A, - 37987 - 11904: 0xC5DF, - 37988 - 11904: 0xC5E1, - 37989 - 11904: 0x9C4E, - 37991 - 11904: 0x9443, - 37992 - 11904: 0xF8CB, - 37993 - 11904: 0xF8CC, - 37994 - 11904: 0xC644, - 37995 - 11904: 0xF8CA, - 37996 - 11904: 0x8EBA, - 37997 - 11904: 0xF953, - 37998 - 11904: 0xF952, - 37999 - 11904: 0xF954, - 38000 - 11904: 0xC65F, - 38001 - 11904: 0xF955, - 38002 - 11904: 0xC65E, - 38003 - 11904: 0xF956, - 38004 - 11904: 0xF972, - 38005 - 11904: 0xF975, - 38006 - 11904: 0xF974, - 38007 - 11904: 0xC668, - 38008 - 11904: 0xF973, - 38009 - 11904: 0x9A52, - 38011 - 11904: 0xFCC1, - 38012 - 11904: 0xC672, - 38013 - 11904: 0xC670, - 38014 - 11904: 0xC671, - 38015 - 11904: 0xC677, - 38016 - 11904: 0xF9C0, - 38017 - 11904: 0xF9C1, - 38018 - 11904: 0xF9BF, - 38019 - 11904: 0xF9C9, - 38021 - 11904: 0x8BE9, - 38047 - 11904: 0x9CAF, - 38050 - 11904: 0x8BFD, - 38081 - 11904: 0x9ABC, - 38083 - 11904: 0x9AB8, - 38108 - 11904: 0x9AAE, - 38134 - 11904: 0x9AA7, - 38189 - 11904: 0x9A53, - 38215 - 11904: 0x9D74, - 38263 - 11904: 0xAAF8, - 38264 - 11904: 0x8BEA, - 38266 - 11904: 0xD844, - 38267 - 11904: 0xDC78, - 38268 - 11904: 0xE8A5, - 38269 - 11904: 0xF376, - 38271 - 11904: 0x8BEB, - 38272 - 11904: 0xAAF9, - 38274 - 11904: 0xADAC, - 38275 - 11904: 0xB07B, - 38277 - 11904: 0x90B2, - 38278 - 11904: 0xD845, - 38280 - 11904: 0xD846, - 38281 - 11904: 0xB3AC, - 38283 - 11904: 0xB67D, - 38284 - 11904: 0xDC7A, - 38285 - 11904: 0xDC79, - 38286 - 11904: 0xB6A3, - 38287 - 11904: 0xB67C, - 38288 - 11904: 0xDC7B, - 38289 - 11904: 0xB67E, - 38290 - 11904: 0xB6A2, - 38291 - 11904: 0xB6A1, - 38292 - 11904: 0xB67B, - 38294 - 11904: 0x95E9, - 38295 - 11904: 0x95E8, - 38296 - 11904: 0xB968, - 38297 - 11904: 0x95E6, - 38299 - 11904: 0xE0D0, - 38300 - 11904: 0xE0CE, - 38302 - 11904: 0xE0CF, - 38303 - 11904: 0xE0CD, - 38304 - 11904: 0x90B5, - 38305 - 11904: 0xBBD2, - 38306 - 11904: 0x9A54, - 38307 - 11904: 0xBBD5, - 38308 - 11904: 0xBBD7, - 38309 - 11904: 0xBBD6, - 38310 - 11904: 0x90B3, - 38311 - 11904: 0x95E7, - 38312 - 11904: 0xBBD3, - 38313 - 11904: 0xBBD4, - 38314 - 11904: 0x8B50, - 38315 - 11904: 0xE8A7, - 38316 - 11904: 0xE8A6, - 38317 - 11904: 0xBE5B, - 38318 - 11904: 0xE8A8, - 38320 - 11904: 0xE8A9, - 38321 - 11904: 0xBE5C, - 38325 - 11904: 0xEC4D, - 38326 - 11904: 0xEC4B, - 38327 - 11904: 0xEEF3, - 38329 - 11904: 0xEC49, - 38330 - 11904: 0xEC4A, - 38331 - 11904: 0xC046, - 38332 - 11904: 0xEC46, - 38333 - 11904: 0xEC4E, - 38334 - 11904: 0xEC48, - 38335 - 11904: 0xEC4C, - 38336 - 11904: 0xEEEF, - 38339 - 11904: 0xEEF1, - 38341 - 11904: 0xEEF2, - 38342 - 11904: 0xC1F3, - 38343 - 11904: 0xEEEE, - 38344 - 11904: 0xC1F2, - 38345 - 11904: 0xEEF0, - 38346 - 11904: 0xC1EF, - 38347 - 11904: 0xC1F0, - 38348 - 11904: 0xC1F1, - 38349 - 11904: 0xEC47, - 38352 - 11904: 0xC2F5, - 38353 - 11904: 0xF16E, - 38354 - 11904: 0xF16C, - 38355 - 11904: 0xF16D, - 38356 - 11904: 0xC2F3, - 38357 - 11904: 0xC2F6, - 38358 - 11904: 0xC2F4, - 38362 - 11904: 0xF377, - 38363 - 11904: 0xF378, - 38364 - 11904: 0xC3F6, - 38366 - 11904: 0xF545, - 38367 - 11904: 0xF547, - 38368 - 11904: 0xF546, - 38369 - 11904: 0xC4C4, - 38370 - 11904: 0xC550, - 38371 - 11904: 0xF66D, - 38372 - 11904: 0xF66C, - 38373 - 11904: 0xF66B, - 38376 - 11904: 0x8BEC, - 38388 - 11904: 0x9A56, - 38428 - 11904: 0xAAFA, - 38429 - 11904: 0x8BFB, - 38430 - 11904: 0xC9AA, - 38432 - 11904: 0xCA58, - 38433 - 11904: 0xA6E9, - 38434 - 11904: 0xCA56, - 38435 - 11904: 0xCA59, - 38436 - 11904: 0xCA57, - 38440 - 11904: 0xCBAE, - 38442 - 11904: 0xA8C1, - 38444 - 11904: 0xA8C2, - 38445 - 11904: 0xCBB0, - 38446 - 11904: 0xA8BF, - 38447 - 11904: 0xCBAF, - 38448 - 11904: 0xCBAD, - 38449 - 11904: 0xA8C0, - 38450 - 11904: 0xA8BE, - 38451 - 11904: 0x9A57, - 38456 - 11904: 0xA0AA, - 38457 - 11904: 0xCDD8, - 38458 - 11904: 0xCDDB, - 38459 - 11904: 0xAAFD, - 38460 - 11904: 0xCDDA, - 38461 - 11904: 0xCDD9, - 38463 - 11904: 0xAAFC, - 38464 - 11904: 0xAAFB, - 38465 - 11904: 0x9FA6, - 38466 - 11904: 0xAB40, - 38467 - 11904: 0xCDDC, - 38468 - 11904: 0xAAFE, - 38469 - 11904: 0x99CC, - 38474 - 11904: 0xD0C6, - 38475 - 11904: 0xADAE, - 38476 - 11904: 0xADAF, - 38477 - 11904: 0xADB0, - 38478 - 11904: 0xD0C7, - 38479 - 11904: 0xD0C3, - 38480 - 11904: 0xADAD, - 38481 - 11904: 0xD0C4, - 38483 - 11904: 0xD0C5, - 38484 - 11904: 0xD0C2, - 38486 - 11904: 0x9C59, - 38488 - 11904: 0xB0A4, - 38491 - 11904: 0xB0A1, - 38492 - 11904: 0xD445, - 38493 - 11904: 0xB0A2, - 38494 - 11904: 0xB0A5, - 38495 - 11904: 0xD446, - 38497 - 11904: 0xB07E, - 38498 - 11904: 0xB07C, - 38499 - 11904: 0xB07D, - 38500 - 11904: 0xB0A3, - 38505 - 11904: 0x99B5, - 38506 - 11904: 0xB3AD, - 38507 - 11904: 0xD849, - 38508 - 11904: 0xB3B5, - 38509 - 11904: 0xD848, - 38511 - 11904: 0xD84B, - 38512 - 11904: 0xB3B1, - 38513 - 11904: 0xD84A, - 38514 - 11904: 0xB6AB, - 38515 - 11904: 0xB3AF, - 38516 - 11904: 0xB3B2, - 38517 - 11904: 0xB3AE, - 38518 - 11904: 0xB3B3, - 38519 - 11904: 0xB3B4, - 38520 - 11904: 0xB3B0, - 38523 - 11904: 0x90BE, - 38524 - 11904: 0xD847, - 38525 - 11904: 0xB6A7, - 38526 - 11904: 0xDC7D, - 38528 - 11904: 0xDCA3, - 38529 - 11904: 0x9FAF, - 38531 - 11904: 0xDCA2, - 38532 - 11904: 0xB6AC, - 38533 - 11904: 0xB6A8, - 38534 - 11904: 0xB6A9, - 38535 - 11904: 0xDC7C, - 38536 - 11904: 0xDC7E, - 38537 - 11904: 0xDCA1, - 38538 - 11904: 0xB6A4, - 38539 - 11904: 0xB6A6, - 38541 - 11904: 0xB6AA, - 38542 - 11904: 0xB6A5, - 38543 - 11904: 0x95F2, - 38545 - 11904: 0xE0D3, - 38546 - 11904: 0xE0D1, - 38547 - 11904: 0xE0D2, - 38548 - 11904: 0xB96A, - 38549 - 11904: 0xB96B, - 38550 - 11904: 0x90BF, - 38551 - 11904: 0xE0D4, - 38552 - 11904: 0xB969, - 38553 - 11904: 0xBBD8, - 38555 - 11904: 0xBBDA, - 38556 - 11904: 0xBBD9, - 38558 - 11904: 0xE4BB, - 38561 - 11904: 0xE4BC, - 38562 - 11904: 0xE8AB, - 38563 - 11904: 0x90C1, - 38564 - 11904: 0xE8AA, - 38565 - 11904: 0xFEE4, - 38567 - 11904: 0xC047, - 38568 - 11904: 0xC048, - 38569 - 11904: 0xEC4F, - 38570 - 11904: 0xC049, - 38572 - 11904: 0xEEF6, - 38574 - 11904: 0xEEF4, - 38576 - 11904: 0xEEF5, - 38577 - 11904: 0xC1F4, - 38579 - 11904: 0xF16F, - 38580 - 11904: 0xC3F7, - 38582 - 11904: 0xC6D7, - 38584 - 11904: 0xC1F5, - 38585 - 11904: 0xAB41, - 38587 - 11904: 0xB0A6, - 38588 - 11904: 0xD447, - 38589 - 11904: 0x90C7, - 38591 - 11904: 0xD84C, - 38592 - 11904: 0xB3B6, - 38593 - 11904: 0xB6AD, - 38594 - 11904: 0xDCA4, - 38595 - 11904: 0xDCA6, - 38596 - 11904: 0xB6AF, - 38597 - 11904: 0xB6AE, - 38598 - 11904: 0xB6B0, - 38599 - 11904: 0xB6B1, - 38600 - 11904: 0xDCA5, - 38601 - 11904: 0xB96E, - 38602 - 11904: 0xB96F, - 38603 - 11904: 0xB96D, - 38604 - 11904: 0xBBDB, - 38605 - 11904: 0xB96C, - 38606 - 11904: 0xE0D5, - 38610 - 11904: 0xBBDC, - 38611 - 11904: 0xE8AC, - 38612 - 11904: 0xEC50, - 38613 - 11904: 0xC04A, - 38614 - 11904: 0xC1F6, - 38615 - 11904: 0xF170, - 38616 - 11904: 0xF174, - 38617 - 11904: 0xC2F9, - 38618 - 11904: 0xF171, - 38619 - 11904: 0xC2FA, - 38620 - 11904: 0xC2F8, - 38621 - 11904: 0xF175, - 38622 - 11904: 0xC2FB, - 38623 - 11904: 0xF173, - 38625 - 11904: 0xF379, - 38626 - 11904: 0xC2F7, - 38627 - 11904: 0xC3F8, - 38629 - 11904: 0xF8CD, - 38632 - 11904: 0xAB42, - 38633 - 11904: 0xB3B8, - 38634 - 11904: 0xB3B7, - 38639 - 11904: 0xB6B2, - 38640 - 11904: 0xDCA8, - 38641 - 11904: 0xDCA7, - 38642 - 11904: 0xB6B3, - 38644 - 11904: 0x92E4, - 38645 - 11904: 0xE0D9, - 38646 - 11904: 0xB973, - 38647 - 11904: 0xB970, - 38648 - 11904: 0xE0D8, - 38649 - 11904: 0xB972, - 38650 - 11904: 0xE0D6, - 38651 - 11904: 0xB971, - 38653 - 11904: 0xE0D7, - 38655 - 11904: 0xE4BD, - 38656 - 11904: 0xBBDD, - 38658 - 11904: 0xE8AF, - 38659 - 11904: 0x9F52, - 38660 - 11904: 0xBE5D, - 38661 - 11904: 0xE8AD, - 38662 - 11904: 0xBE5E, - 38663 - 11904: 0xBE5F, - 38664 - 11904: 0xE8AE, - 38665 - 11904: 0xBE60, - 38667 - 11904: 0xEC51, - 38669 - 11904: 0xC04E, - 38670 - 11904: 0xC04B, - 38671 - 11904: 0xC050, - 38672 - 11904: 0xEC53, - 38673 - 11904: 0xC04C, - 38674 - 11904: 0xEC52, - 38675 - 11904: 0xC04F, - 38678 - 11904: 0xC04D, - 38680 - 11904: 0xEEF9, - 38681 - 11904: 0xEEFB, - 38683 - 11904: 0x90DB, - 38684 - 11904: 0xC1F7, - 38685 - 11904: 0xEEFA, - 38686 - 11904: 0xC1F8, - 38687 - 11904: 0xEEF8, - 38688 - 11904: 0xEEF7, - 38689 - 11904: 0xA066, - 38690 - 11904: 0xF177, - 38691 - 11904: 0xF176, - 38692 - 11904: 0xC2FC, - 38693 - 11904: 0xF178, - 38694 - 11904: 0xF37E, - 38695 - 11904: 0xC3FA, - 38696 - 11904: 0xF37D, - 38697 - 11904: 0xF37A, - 38698 - 11904: 0xC3F9, - 38699 - 11904: 0xF37B, - 38700 - 11904: 0xF37C, - 38702 - 11904: 0xF548, - 38703 - 11904: 0xF549, - 38704 - 11904: 0xC4C5, - 38705 - 11904: 0x90D2, - 38706 - 11904: 0xC553, - 38708 - 11904: 0x876B, - 38709 - 11904: 0xF66E, - 38710 - 11904: 0x90D4, - 38712 - 11904: 0xC551, - 38713 - 11904: 0xC552, - 38714 - 11904: 0xF66F, - 38717 - 11904: 0xC5B4, - 38718 - 11904: 0xC5B5, - 38719 - 11904: 0xF771, - 38720 - 11904: 0x9A5B, - 38721 - 11904: 0x95FD, - 38722 - 11904: 0xC645, - 38723 - 11904: 0xF8CF, - 38724 - 11904: 0xC647, - 38726 - 11904: 0xF8CE, - 38727 - 11904: 0xF8D0, - 38728 - 11904: 0xC646, - 38729 - 11904: 0xF957, - 38730 - 11904: 0x87B1, - 38731 - 11904: 0xF9AD, - 38737 - 11904: 0x8BC4, - 38738 - 11904: 0xAB43, - 38741 - 11904: 0x8C66, - 38742 - 11904: 0xB974, - 38743 - 11904: 0x90DE, - 38744 - 11904: 0xE4BE, - 38746 - 11904: 0xE8B0, - 38747 - 11904: 0xC051, - 38748 - 11904: 0xC052, - 38749 - 11904: 0x9CE4, - 38750 - 11904: 0xAB44, - 38751 - 11904: 0x90E1, - 38752 - 11904: 0xBE61, - 38753 - 11904: 0xC3FB, - 38754 - 11904: 0xADB1, - 38758 - 11904: 0xC053, - 38760 - 11904: 0xC5E2, - 38761 - 11904: 0xADB2, - 38762 - 11904: 0xD84D, - 38764 - 11904: 0xDCA9, - 38765 - 11904: 0x9E46, - 38766 - 11904: 0xDCAB, - 38768 - 11904: 0xDCAA, - 38769 - 11904: 0x9651, - 38770 - 11904: 0xE0DD, - 38771 - 11904: 0xE0DA, - 38772 - 11904: 0xB975, - 38774 - 11904: 0xB976, - 38775 - 11904: 0xE0DB, - 38776 - 11904: 0xE0DC, - 38778 - 11904: 0xE4C0, - 38779 - 11904: 0xE4C5, - 38780 - 11904: 0xBBDE, - 38781 - 11904: 0xE4BF, - 38782 - 11904: 0xE4C1, - 38783 - 11904: 0xE4C8, - 38784 - 11904: 0xE4C3, - 38785 - 11904: 0xE4C7, - 38786 - 11904: 0xE4C4, - 38787 - 11904: 0xE4C2, - 38788 - 11904: 0xE4C6, - 38789 - 11904: 0xBBDF, - 38791 - 11904: 0xFB58, - 38792 - 11904: 0xE8B3, - 38793 - 11904: 0x90E6, - 38794 - 11904: 0xE8B1, - 38795 - 11904: 0xBE63, - 38797 - 11904: 0xBE62, - 38798 - 11904: 0xE8B2, - 38799 - 11904: 0xBE64, - 38804 - 11904: 0xEC56, - 38807 - 11904: 0xEC55, - 38808 - 11904: 0xC054, - 38809 - 11904: 0xEC54, - 38810 - 11904: 0xEEFC, - 38811 - 11904: 0x9650, - 38812 - 11904: 0xEEFE, - 38813 - 11904: 0xEF41, - 38814 - 11904: 0xEF40, - 38815 - 11904: 0x90E7, - 38816 - 11904: 0xC1F9, - 38817 - 11904: 0xEEFD, - 38818 - 11904: 0xF1A1, - 38819 - 11904: 0xC2FD, - 38820 - 11904: 0xF17D, - 38821 - 11904: 0xF1A2, - 38822 - 11904: 0xC2FE, - 38824 - 11904: 0xF17B, - 38826 - 11904: 0xF17E, - 38827 - 11904: 0xF17C, - 38828 - 11904: 0xF179, - 38829 - 11904: 0xC340, - 38830 - 11904: 0xF17A, - 38833 - 11904: 0x90E8, - 38834 - 11904: 0x9A5D, - 38835 - 11904: 0xF3A1, - 38836 - 11904: 0x9F7A, - 38838 - 11904: 0xF3A3, - 38839 - 11904: 0xF3A2, - 38840 - 11904: 0x9B5C, - 38841 - 11904: 0xF54A, - 38842 - 11904: 0x9F7C, - 38843 - 11904: 0xF54B, - 38845 - 11904: 0xFC52, - 38846 - 11904: 0x90E9, - 38847 - 11904: 0xF670, - 38848 - 11904: 0x90EA, - 38849 - 11904: 0xC5B7, - 38850 - 11904: 0x9A5E, - 38851 - 11904: 0xC5B6, - 38852 - 11904: 0xF84F, - 38853 - 11904: 0xF850, - 38854 - 11904: 0xC648, - 38855 - 11904: 0xF8D1, - 38856 - 11904: 0x9F76, - 38857 - 11904: 0xC669, - 38859 - 11904: 0xADB3, - 38860 - 11904: 0xB6B4, - 38861 - 11904: 0xE4CA, - 38862 - 11904: 0xE4C9, - 38863 - 11904: 0xE8B5, - 38864 - 11904: 0xE8B4, - 38866 - 11904: 0x90EB, - 38867 - 11904: 0xC1FA, - 38868 - 11904: 0xEF43, - 38869 - 11904: 0xEF42, - 38870 - 11904: 0xF1A5, - 38871 - 11904: 0xF1A3, - 38872 - 11904: 0xF1A6, - 38873 - 11904: 0xF1A4, - 38876 - 11904: 0xC3FC, - 38877 - 11904: 0xF3A4, - 38878 - 11904: 0xF3A5, - 38879 - 11904: 0xF3A6, - 38880 - 11904: 0x90EC, - 38881 - 11904: 0xF671, - 38883 - 11904: 0xF772, - 38885 - 11904: 0xF8D2, - 38886 - 11904: 0x8BEE, - 38893 - 11904: 0xADB4, - 38894 - 11904: 0x90EE, - 38896 - 11904: 0xEC57, - 38897 - 11904: 0xEF44, - 38898 - 11904: 0x91C6, - 38899 - 11904: 0xADB5, - 38901 - 11904: 0x90F2, - 38902 - 11904: 0xBBE0, - 38904 - 11904: 0xEC58, - 38905 - 11904: 0xC341, - 38906 - 11904: 0xF1A7, - 38907 - 11904: 0xC3FD, - 38909 - 11904: 0xF54C, - 38910 - 11904: 0xF54D, - 38911 - 11904: 0xC554, - 38912 - 11904: 0xF851, - 38913 - 11904: 0xADB6, - 38914 - 11904: 0xB3BB, - 38915 - 11904: 0xB3BC, - 38916 - 11904: 0xD84E, - 38917 - 11904: 0xB6B5, - 38918 - 11904: 0xB6B6, - 38919 - 11904: 0xDCAC, - 38920 - 11904: 0xB6B7, - 38922 - 11904: 0xB97A, - 38924 - 11904: 0xB97C, - 38925 - 11904: 0xE0DF, - 38926 - 11904: 0xE0E0, - 38927 - 11904: 0xE0DE, - 38928 - 11904: 0xB977, - 38929 - 11904: 0xB978, - 38930 - 11904: 0xB97B, - 38931 - 11904: 0xB979, - 38932 - 11904: 0xFCBC, - 38933 - 11904: 0x8A74, - 38934 - 11904: 0xE4CB, - 38935 - 11904: 0xBBE1, - 38936 - 11904: 0xBBE2, - 38939 - 11904: 0xE8BC, - 38940 - 11904: 0xBE67, - 38941 - 11904: 0xE8B7, - 38942 - 11904: 0xE8B6, - 38943 - 11904: 0x9657, - 38944 - 11904: 0xE8BB, - 38945 - 11904: 0xBE65, - 38947 - 11904: 0x9CEF, - 38948 - 11904: 0xC05B, - 38950 - 11904: 0xE8B8, - 38951 - 11904: 0xE8BD, - 38952 - 11904: 0xE8BA, - 38953 - 11904: 0xE8B9, - 38955 - 11904: 0xBE66, - 38957 - 11904: 0xC059, - 38958 - 11904: 0x9FDF, - 38959 - 11904: 0xEC5A, - 38960 - 11904: 0xC055, - 38962 - 11904: 0xEC5B, - 38963 - 11904: 0x90F7, - 38964 - 11904: 0x90F6, - 38965 - 11904: 0xEC59, - 38967 - 11904: 0xC058, - 38968 - 11904: 0xC056, - 38969 - 11904: 0xC05A, - 38971 - 11904: 0xC057, - 38977 - 11904: 0xEF45, - 38979 - 11904: 0xEF4A, - 38980 - 11904: 0xEF46, - 38981 - 11904: 0xEF49, - 38982 - 11904: 0xC1FB, - 38983 - 11904: 0x9B5E, - 38984 - 11904: 0xEDD4, - 38985 - 11904: 0xEF48, - 38986 - 11904: 0xEF47, - 38987 - 11904: 0x90F8, - 38988 - 11904: 0xC344, - 38989 - 11904: 0xC342, - 38990 - 11904: 0xC345, - 38991 - 11904: 0xC343, - 38992 - 11904: 0xF1A8, - 38993 - 11904: 0xF1A9, - 38994 - 11904: 0xF1AA, - 38995 - 11904: 0xC346, - 38998 - 11904: 0x8CFC, - 38999 - 11904: 0xF3AA, - 39000 - 11904: 0xC440, - 39001 - 11904: 0xF3A8, - 39003 - 11904: 0xC441, - 39004 - 11904: 0xF3A7, - 39005 - 11904: 0xF3A9, - 39006 - 11904: 0xC3FE, - 39007 - 11904: 0xF551, - 39008 - 11904: 0xF54E, - 39010 - 11904: 0xF54F, - 39011 - 11904: 0xF550, - 39012 - 11904: 0xF672, - 39013 - 11904: 0xC556, - 39014 - 11904: 0x90F9, - 39015 - 11904: 0xC555, - 39016 - 11904: 0x8CC9, - 39017 - 11904: 0xF774, - 39018 - 11904: 0xF773, - 39019 - 11904: 0xC5B8, - 39020 - 11904: 0xFA6A, - 39023 - 11904: 0xC5E3, - 39024 - 11904: 0xC649, - 39025 - 11904: 0xC660, - 39026 - 11904: 0xF958, - 39027 - 11904: 0xF9AE, - 39028 - 11904: 0xF9AF, - 39029 - 11904: 0x8BEF, - 39080 - 11904: 0xADB7, - 39081 - 11904: 0xDCAD, - 39084 - 11904: 0xE0E1, - 39085 - 11904: 0xE4CC, - 39086 - 11904: 0xE4CD, - 39087 - 11904: 0xBBE3, - 39089 - 11904: 0xBBE4, - 39090 - 11904: 0xE8BE, - 39091 - 11904: 0xBE68, - 39092 - 11904: 0x9FE0, - 39094 - 11904: 0xC1FC, - 39095 - 11904: 0x9142, - 39096 - 11904: 0xF1AB, - 39097 - 11904: 0x9A62, - 39098 - 11904: 0xC347, - 39099 - 11904: 0xF3AD, - 39100 - 11904: 0xC442, - 39101 - 11904: 0xF3AC, - 39102 - 11904: 0xF3AE, - 39103 - 11904: 0xF3AB, - 39104 - 11904: 0xF675, - 39105 - 11904: 0xF552, - 39106 - 11904: 0xF553, - 39107 - 11904: 0x9569, - 39108 - 11904: 0xC4C6, - 39110 - 11904: 0xF674, - 39111 - 11904: 0x9144, - 39112 - 11904: 0x9143, - 39113 - 11904: 0xF673, - 39114 - 11904: 0x9141, - 39115 - 11904: 0xF775, - 39116 - 11904: 0xF9B0, - 39118 - 11904: 0x8BF0, - 39131 - 11904: 0xADB8, - 39132 - 11904: 0x9660, - 39134 - 11904: 0x8BF1, - 39135 - 11904: 0xADB9, - 39136 - 11904: 0x99F6, - 39137 - 11904: 0x9149, - 39138 - 11904: 0xB0A7, - 39139 - 11904: 0xD448, - 39141 - 11904: 0xD84F, - 39142 - 11904: 0x914A, - 39143 - 11904: 0xB6B8, - 39145 - 11904: 0xB6BB, - 39146 - 11904: 0xB6B9, - 39147 - 11904: 0xDCAE, - 39148 - 11904: 0x914B, - 39149 - 11904: 0xB6BD, - 39151 - 11904: 0xB6BA, - 39153 - 11904: 0x9A64, - 39154 - 11904: 0xB6BC, - 39156 - 11904: 0xB97E, - 39157 - 11904: 0x8ABF, - 39158 - 11904: 0xE0E2, - 39161 - 11904: 0xE0E3, - 39162 - 11904: 0xE8C0, - 39164 - 11904: 0xB97D, - 39165 - 11904: 0xB9A1, - 39166 - 11904: 0xB9A2, - 39168 - 11904: 0xE4CF, - 39170 - 11904: 0xE4CE, - 39171 - 11904: 0xBBE5, - 39173 - 11904: 0xBBE6, - 39175 - 11904: 0xE4D0, - 39176 - 11904: 0xE8BF, - 39177 - 11904: 0xBBE8, - 39178 - 11904: 0xBE69, - 39180 - 11904: 0xBBE7, - 39182 - 11904: 0x9A66, - 39184 - 11904: 0xC05C, - 39185 - 11904: 0xE8C1, - 39186 - 11904: 0xBE6B, - 39187 - 11904: 0xBE6A, - 39188 - 11904: 0xE8C2, - 39189 - 11904: 0xE8C5, - 39190 - 11904: 0xE8C3, - 39191 - 11904: 0xE8C4, - 39192 - 11904: 0xBE6C, - 39193 - 11904: 0x9A67, - 39194 - 11904: 0xC061, - 39195 - 11904: 0xC05F, - 39196 - 11904: 0x9A69, - 39198 - 11904: 0xC05E, - 39199 - 11904: 0xEC5D, - 39201 - 11904: 0xC060, - 39204 - 11904: 0xEC5C, - 39205 - 11904: 0xEF4B, - 39207 - 11904: 0xEC5E, - 39208 - 11904: 0xC05D, - 39209 - 11904: 0xEC5F, - 39210 - 11904: 0xEF4E, - 39211 - 11904: 0xEF4C, - 39212 - 11904: 0xEF4D, - 39213 - 11904: 0xEF52, - 39214 - 11904: 0xC34B, - 39215 - 11904: 0xEF51, - 39216 - 11904: 0xEF54, - 39217 - 11904: 0xEF53, - 39218 - 11904: 0xEF50, - 39219 - 11904: 0xEF4F, - 39221 - 11904: 0xC1FD, - 39223 - 11904: 0x9A6A, - 39224 - 11904: 0x9652, - 39225 - 11904: 0x914D, - 39226 - 11904: 0xF1AE, - 39227 - 11904: 0x9666, - 39228 - 11904: 0xF1AD, - 39229 - 11904: 0xC34A, - 39230 - 11904: 0xC348, - 39231 - 11904: 0xC349, - 39232 - 11904: 0x9F7B, - 39233 - 11904: 0xF1AC, - 39234 - 11904: 0x9A6B, - 39235 - 11904: 0xF3B1, - 39237 - 11904: 0xC443, - 39239 - 11904: 0xF3B0, - 39240 - 11904: 0xF3AF, - 39241 - 11904: 0xC444, - 39242 - 11904: 0xA06C, - 39243 - 11904: 0xF558, - 39244 - 11904: 0xF557, - 39245 - 11904: 0x9667, - 39246 - 11904: 0xF555, - 39248 - 11904: 0xF554, - 39249 - 11904: 0xC4C8, - 39250 - 11904: 0xC4C7, - 39251 - 11904: 0xF559, - 39252 - 11904: 0xF776, - 39253 - 11904: 0xC5B9, - 39254 - 11904: 0xF677, - 39255 - 11904: 0xC557, - 39256 - 11904: 0xF676, - 39257 - 11904: 0xF556, - 39259 - 11904: 0xF777, - 39260 - 11904: 0xC5E4, - 39261 - 11904: 0x9A6C, - 39262 - 11904: 0xC661, - 39263 - 11904: 0xF959, - 39265 - 11904: 0xF9B1, - 39266 - 11904: 0x9A6D, - 39267 - 11904: 0x8BF2, - 39318 - 11904: 0xADBA, - 39319 - 11904: 0xD850, - 39320 - 11904: 0xEF55, - 39321 - 11904: 0xADBB, - 39323 - 11904: 0x966A, - 39324 - 11904: 0xE4D2, - 39325 - 11904: 0xE4D1, - 39326 - 11904: 0xEC60, - 39329 - 11904: 0xEF57, - 39331 - 11904: 0xEF56, - 39332 - 11904: 0xFCEA, - 39333 - 11904: 0xC34C, - 39334 - 11904: 0xF3B2, - 39335 - 11904: 0xF3B3, - 39336 - 11904: 0xC4C9, - 39338 - 11904: 0x966C, - 39339 - 11904: 0xF9B2, - 39340 - 11904: 0xB0A8, - 39341 - 11904: 0xB6BF, - 39342 - 11904: 0xB6BE, - 39343 - 11904: 0xE0E4, - 39344 - 11904: 0xE0E6, - 39345 - 11904: 0xB9A4, - 39346 - 11904: 0xE0E5, - 39347 - 11904: 0xB9A3, - 39348 - 11904: 0xB9A5, - 39349 - 11904: 0xE0E7, - 39352 - 11904: 0x91C4, - 39353 - 11904: 0xE4D4, - 39354 - 11904: 0xE4D6, - 39355 - 11904: 0xE4D5, - 39356 - 11904: 0x9677, - 39357 - 11904: 0xE4D8, - 39361 - 11904: 0xBBE9, - 39362 - 11904: 0xE4D7, - 39363 - 11904: 0xE4D3, - 39364 - 11904: 0x99F4, - 39365 - 11904: 0x9A6F, - 39367 - 11904: 0xE4D9, - 39369 - 11904: 0xE8CC, - 39371 - 11904: 0xE8CF, - 39372 - 11904: 0xE8D1, - 39373 - 11904: 0xE8C7, - 39374 - 11904: 0xE8CB, - 39375 - 11904: 0xE8C8, - 39376 - 11904: 0xBE6E, - 39377 - 11904: 0xBE71, - 39378 - 11904: 0xBE73, - 39379 - 11904: 0xE8C9, - 39380 - 11904: 0xE8CA, - 39381 - 11904: 0xBE72, - 39382 - 11904: 0xE8CD, - 39383 - 11904: 0xE8D0, - 39384 - 11904: 0xE8CE, - 39385 - 11904: 0xBE74, - 39386 - 11904: 0x9FAB, - 39387 - 11904: 0xBE70, - 39388 - 11904: 0xE8C6, - 39389 - 11904: 0xBE6D, - 39391 - 11904: 0xBE6F, - 39392 - 11904: 0x8CBE, - 39393 - 11904: 0x8EC1, - 39394 - 11904: 0xC063, - 39395 - 11904: 0xEC66, - 39396 - 11904: 0xEC64, - 39397 - 11904: 0xEC63, - 39398 - 11904: 0x9555, - 39399 - 11904: 0xEC69, - 39401 - 11904: 0xEC68, - 39402 - 11904: 0xEC67, - 39404 - 11904: 0xEC62, - 39405 - 11904: 0xC062, - 39406 - 11904: 0xEC61, - 39408 - 11904: 0xEC65, - 39409 - 11904: 0xC064, - 39412 - 11904: 0xEF5A, - 39413 - 11904: 0x9152, - 39414 - 11904: 0xEF5E, - 39415 - 11904: 0xEF5B, - 39416 - 11904: 0xEF5D, - 39417 - 11904: 0xEF5C, - 39418 - 11904: 0xEF59, - 39419 - 11904: 0xEF5F, - 39420 - 11904: 0xEF62, - 39421 - 11904: 0xEF60, - 39422 - 11904: 0xEF61, - 39423 - 11904: 0xC240, - 39425 - 11904: 0xC1FE, - 39426 - 11904: 0xEF58, - 39427 - 11904: 0xEF63, - 39428 - 11904: 0xF1B3, - 39429 - 11904: 0xF1B6, - 39430 - 11904: 0xF1B8, - 39431 - 11904: 0xF1B7, - 39433 - 11904: 0xF1B1, - 39434 - 11904: 0xF1B5, - 39435 - 11904: 0xF1B0, - 39436 - 11904: 0x9153, - 39437 - 11904: 0xF1B2, - 39438 - 11904: 0xC34D, - 39439 - 11904: 0xF1AF, - 39440 - 11904: 0x9155, - 39441 - 11904: 0xF1B4, - 39444 - 11904: 0xF3C0, - 39445 - 11904: 0xF3B5, - 39446 - 11904: 0xC445, - 39449 - 11904: 0xC446, - 39450 - 11904: 0xF3B4, - 39451 - 11904: 0xF3B9, - 39452 - 11904: 0xF3BF, - 39453 - 11904: 0xF3B7, - 39454 - 11904: 0xF3BE, - 39455 - 11904: 0x955D, - 39456 - 11904: 0xF3BB, - 39457 - 11904: 0x9671, - 39458 - 11904: 0xF3BA, - 39459 - 11904: 0xF3BD, - 39460 - 11904: 0xF3B8, - 39461 - 11904: 0xF3B6, - 39462 - 11904: 0x9C6D, - 39463 - 11904: 0xF3BC, - 39465 - 11904: 0xF560, - 39466 - 11904: 0xF55E, - 39467 - 11904: 0xC4CA, - 39468 - 11904: 0xF55D, - 39469 - 11904: 0xF563, - 39470 - 11904: 0xF561, - 39471 - 11904: 0x9673, - 39472 - 11904: 0xC4CB, - 39473 - 11904: 0xF55C, - 39474 - 11904: 0xF55A, - 39476 - 11904: 0xF55B, - 39477 - 11904: 0xC4CD, - 39478 - 11904: 0xF55F, - 39479 - 11904: 0xC4CC, - 39480 - 11904: 0xF562, - 39481 - 11904: 0xF678, - 39482 - 11904: 0xF67E, - 39483 - 11904: 0x9154, - 39484 - 11904: 0x9A71, - 39485 - 11904: 0xF679, - 39486 - 11904: 0xC55B, - 39487 - 11904: 0xF6A1, - 39488 - 11904: 0xC55A, - 39489 - 11904: 0xF67D, - 39490 - 11904: 0xF67C, - 39491 - 11904: 0xC559, - 39492 - 11904: 0xF67B, - 39493 - 11904: 0xC558, - 39494 - 11904: 0xF67A, - 39496 - 11904: 0xF77D, - 39497 - 11904: 0xF7A1, - 39498 - 11904: 0xF77E, - 39500 - 11904: 0xF77B, - 39501 - 11904: 0xC5BB, - 39502 - 11904: 0xF778, - 39503 - 11904: 0xF77C, - 39504 - 11904: 0xF7A3, - 39506 - 11904: 0xF7A2, - 39507 - 11904: 0xF779, - 39508 - 11904: 0xF77A, - 39509 - 11904: 0xC5BA, - 39510 - 11904: 0xF852, - 39511 - 11904: 0xC5E7, - 39512 - 11904: 0x9156, - 39513 - 11904: 0xF853, - 39514 - 11904: 0xC5E5, - 39515 - 11904: 0xC5E6, - 39516 - 11904: 0x966D, - 39518 - 11904: 0xF8D3, - 39519 - 11904: 0xC64A, - 39520 - 11904: 0xF976, - 39522 - 11904: 0xC66A, - 39523 - 11904: 0x9557, - 39524 - 11904: 0xF9B3, - 39525 - 11904: 0xC66B, - 39526 - 11904: 0xF9B4, - 39527 - 11904: 0xF9B5, - 39528 - 11904: 0xF9C3, - 39529 - 11904: 0xF9C2, - 39530 - 11904: 0xC67A, - 39531 - 11904: 0xF9CD, - 39532 - 11904: 0x89C6, - 39567 - 11904: 0x89C7, - 39592 - 11904: 0xB0A9, - 39595 - 11904: 0xE0E9, - 39597 - 11904: 0xE0E8, - 39599 - 11904: 0xBBEA, - 39600 - 11904: 0xBBEB, - 39601 - 11904: 0xE4DA, - 39602 - 11904: 0x8A6A, - 39603 - 11904: 0xE8D2, - 39604 - 11904: 0xEC6C, - 39606 - 11904: 0x8B57, - 39607 - 11904: 0xBE75, - 39608 - 11904: 0xC065, - 39609 - 11904: 0xEC6A, - 39610 - 11904: 0x9FE1, - 39611 - 11904: 0xEC6D, - 39612 - 11904: 0xC066, - 39613 - 11904: 0x9B5F, - 39614 - 11904: 0xEF64, - 39615 - 11904: 0xEC6B, - 39616 - 11904: 0xF1B9, - 39617 - 11904: 0xC34E, - 39618 - 11904: 0xF3C1, - 39622 - 11904: 0xF566, - 39623 - 11904: 0xF564, - 39626 - 11904: 0xF565, - 39629 - 11904: 0xF6A2, - 39631 - 11904: 0xC55C, - 39632 - 11904: 0xF7A4, - 39633 - 11904: 0xC5EA, - 39634 - 11904: 0xC5BC, - 39635 - 11904: 0xC5E8, - 39636 - 11904: 0xC5E9, - 39637 - 11904: 0xF8D4, - 39638 - 11904: 0xC662, - 39639 - 11904: 0xA05D, - 39640 - 11904: 0xB0AA, - 39644 - 11904: 0xF1BA, - 39647 - 11904: 0xD449, - 39648 - 11904: 0x915B, - 39649 - 11904: 0xB9A6, - 39650 - 11904: 0x915C, - 39651 - 11904: 0xE4DB, - 39654 - 11904: 0xBBEC, - 39655 - 11904: 0xE4DC, - 39659 - 11904: 0xE8D4, - 39660 - 11904: 0xE8D3, - 39661 - 11904: 0xC068, - 39662 - 11904: 0xBE76, - 39663 - 11904: 0xBE77, - 39665 - 11904: 0xE8D7, - 39666 - 11904: 0xE8D6, - 39667 - 11904: 0xE8D5, - 39668 - 11904: 0x915E, - 39670 - 11904: 0xEC6E, - 39671 - 11904: 0xEC71, - 39673 - 11904: 0xEC70, - 39674 - 11904: 0xEC6F, - 39675 - 11904: 0xC067, - 39676 - 11904: 0xEF68, - 39677 - 11904: 0xEF66, - 39678 - 11904: 0xEF65, - 39679 - 11904: 0x9F5C, - 39681 - 11904: 0xEF67, - 39682 - 11904: 0x9F57, - 39683 - 11904: 0xC34F, - 39684 - 11904: 0xF1BC, - 39685 - 11904: 0xF1BD, - 39686 - 11904: 0xC350, - 39688 - 11904: 0xF1BB, - 39689 - 11904: 0x9F65, - 39690 - 11904: 0xF3C3, - 39691 - 11904: 0xF3C2, - 39692 - 11904: 0xF3C5, - 39693 - 11904: 0xC447, - 39694 - 11904: 0xF3C4, - 39695 - 11904: 0x9A72, - 39696 - 11904: 0xF567, - 39697 - 11904: 0xF569, - 39698 - 11904: 0xF568, - 39700 - 11904: 0x9160, - 39701 - 11904: 0xF6A3, - 39702 - 11904: 0xF6A6, - 39703 - 11904: 0xF6A4, - 39704 - 11904: 0xF6A5, - 39705 - 11904: 0xF7A5, - 39706 - 11904: 0xC5BD, - 39710 - 11904: 0xF854, - 39711 - 11904: 0xF855, - 39712 - 11904: 0xF856, - 39714 - 11904: 0xC64B, - 39715 - 11904: 0xC663, - 39716 - 11904: 0xF9B6, - 39717 - 11904: 0xB0AB, - 39719 - 11904: 0xBE78, - 39720 - 11904: 0xC069, - 39721 - 11904: 0xF1BE, - 39722 - 11904: 0x9F5E, - 39723 - 11904: 0xF7A6, - 39725 - 11904: 0x9161, - 39726 - 11904: 0xF9C4, - 39727 - 11904: 0xD44A, - 39729 - 11904: 0xC67B, - 39730 - 11904: 0xB0AC, - 39731 - 11904: 0xEC72, - 39732 - 11904: 0x9164, - 39733 - 11904: 0xF1BF, - 39735 - 11904: 0xF3C6, - 39737 - 11904: 0x9F41, - 39738 - 11904: 0xF6A7, - 39739 - 11904: 0xF7A7, - 39740 - 11904: 0xB0AD, - 39742 - 11904: 0xE4DD, - 39743 - 11904: 0xE4DE, - 39744 - 11904: 0x9169, - 39745 - 11904: 0xBBED, - 39746 - 11904: 0xBBEE, - 39747 - 11904: 0xE8D9, - 39748 - 11904: 0xBE7A, - 39749 - 11904: 0xBE79, - 39750 - 11904: 0xE8D8, - 39752 - 11904: 0xEF69, - 39754 - 11904: 0xF1C0, - 39755 - 11904: 0xF1C2, - 39756 - 11904: 0xF1C1, - 39757 - 11904: 0xC353, - 39758 - 11904: 0xC352, - 39759 - 11904: 0xC351, - 39760 - 11904: 0x9168, - 39761 - 11904: 0xC55E, - 39762 - 11904: 0xF6A8, - 39764 - 11904: 0xC55D, - 39765 - 11904: 0xF7A9, - 39766 - 11904: 0xF7A8, - 39768 - 11904: 0xC64C, - 39769 - 11904: 0xF8D5, - 39770 - 11904: 0xB3BD, - 39771 - 11904: 0xE0EA, - 39775 - 11904: 0xE4E1, - 39776 - 11904: 0xE4DF, - 39777 - 11904: 0xE4E0, - 39780 - 11904: 0xE8E2, - 39782 - 11904: 0xE8DD, - 39783 - 11904: 0xE8DA, - 39784 - 11904: 0xE8E1, - 39785 - 11904: 0x9A74, - 39788 - 11904: 0xE8E3, - 39791 - 11904: 0xBE7C, - 39792 - 11904: 0xE8E0, - 39793 - 11904: 0xE8DC, - 39796 - 11904: 0xE8DB, - 39797 - 11904: 0xE8DF, - 39798 - 11904: 0xE8DE, - 39799 - 11904: 0xBE7B, - 39802 - 11904: 0xEC7D, - 39803 - 11904: 0xEC78, - 39804 - 11904: 0xEC76, - 39805 - 11904: 0xECA1, - 39806 - 11904: 0xEC77, - 39807 - 11904: 0x96B2, - 39808 - 11904: 0xEC73, - 39809 - 11904: 0x9A75, - 39810 - 11904: 0xEC79, - 39811 - 11904: 0xFDA5, - 39813 - 11904: 0xEC74, - 39814 - 11904: 0xEF72, - 39815 - 11904: 0xEC75, - 39816 - 11904: 0xECA2, - 39819 - 11904: 0x9EE9, - 39821 - 11904: 0x8BBA, - 39822 - 11904: 0x916D, - 39823 - 11904: 0xA060, - 39824 - 11904: 0xEC7C, - 39825 - 11904: 0xC06A, - 39826 - 11904: 0xEC7B, - 39827 - 11904: 0xEC7A, - 39829 - 11904: 0xEC7E, - 39831 - 11904: 0x9FDE, - 39834 - 11904: 0xEF6A, - 39835 - 11904: 0xEF6D, - 39837 - 11904: 0x9FC3, - 39838 - 11904: 0xEF6C, - 39839 - 11904: 0x96B5, - 39840 - 11904: 0xEF74, - 39841 - 11904: 0xEF6F, - 39842 - 11904: 0xEF73, - 39844 - 11904: 0xEF71, - 39845 - 11904: 0xEF70, - 39846 - 11904: 0xEF6E, - 39848 - 11904: 0xEF6B, - 39850 - 11904: 0xC243, - 39851 - 11904: 0xC242, - 39853 - 11904: 0xC244, - 39854 - 11904: 0xC241, - 39855 - 11904: 0xEF75, - 39856 - 11904: 0xA067, - 39861 - 11904: 0xF1C8, - 39862 - 11904: 0xF1CB, - 39864 - 11904: 0xF1C9, - 39865 - 11904: 0xF1CD, - 39869 - 11904: 0xF1CE, - 39871 - 11904: 0xF1C6, - 39872 - 11904: 0xC358, - 39873 - 11904: 0xF1C7, - 39875 - 11904: 0xF1C5, - 39876 - 11904: 0xF1CC, - 39878 - 11904: 0xF1C4, - 39879 - 11904: 0xF1C3, - 39880 - 11904: 0xC357, - 39881 - 11904: 0xC355, - 39882 - 11904: 0xC354, - 39887 - 11904: 0x96B3, - 39891 - 11904: 0xF1CA, - 39892 - 11904: 0xF3CF, - 39893 - 11904: 0xF3D5, - 39894 - 11904: 0xC44A, - 39895 - 11904: 0xF3D0, - 39897 - 11904: 0xF3D3, - 39898 - 11904: 0xF3D7, - 39899 - 11904: 0xC44B, - 39900 - 11904: 0xF3D2, - 39901 - 11904: 0x9A76, - 39902 - 11904: 0xF3CA, - 39904 - 11904: 0xF3C9, - 39905 - 11904: 0xF3D6, - 39906 - 11904: 0xF3CD, - 39908 - 11904: 0xF3CB, - 39909 - 11904: 0xF3D4, - 39910 - 11904: 0xF3CC, - 39911 - 11904: 0xC449, - 39912 - 11904: 0xC448, - 39913 - 11904: 0x95D5, - 39914 - 11904: 0xF3C7, - 39915 - 11904: 0xF3C8, - 39916 - 11904: 0xF3D1, - 39917 - 11904: 0x9ECA, - 39920 - 11904: 0xF3CE, - 39921 - 11904: 0x9A77, - 39924 - 11904: 0x9A78, - 39927 - 11904: 0xF56C, - 39928 - 11904: 0xF56F, - 39933 - 11904: 0xC356, - 39935 - 11904: 0x9170, - 39938 - 11904: 0x916F, - 39941 - 11904: 0xF56D, - 39942 - 11904: 0xF573, - 39943 - 11904: 0xF571, - 39944 - 11904: 0xF56B, - 39945 - 11904: 0xF576, - 39946 - 11904: 0x9FA3, - 39947 - 11904: 0xF56A, - 39948 - 11904: 0x9171, - 39949 - 11904: 0xC4CF, - 39950 - 11904: 0xF572, - 39952 - 11904: 0x96B1, - 39954 - 11904: 0xF56E, - 39955 - 11904: 0xC4CE, - 39956 - 11904: 0xF575, - 39957 - 11904: 0x9F63, - 39959 - 11904: 0xF574, - 39963 - 11904: 0x9F67, - 39964 - 11904: 0xF6AB, - 39965 - 11904: 0xF6AA, - 39967 - 11904: 0x8BB9, - 39968 - 11904: 0x9A7A, - 39969 - 11904: 0xF6B1, - 39971 - 11904: 0xF6AD, - 39972 - 11904: 0xF6B0, - 39973 - 11904: 0xC560, - 39974 - 11904: 0x8B56, - 39976 - 11904: 0xF6AE, - 39977 - 11904: 0xF6AF, - 39979 - 11904: 0xF6A9, - 39980 - 11904: 0xF6AC, - 39981 - 11904: 0xC55F, - 39983 - 11904: 0x9ADA, - 39985 - 11904: 0xC5BF, - 39986 - 11904: 0xF7B4, - 39987 - 11904: 0xF7AF, - 39988 - 11904: 0xF7B3, - 39989 - 11904: 0x96B0, - 39990 - 11904: 0xF7B6, - 39991 - 11904: 0xF7B2, - 39993 - 11904: 0xF7AE, - 39994 - 11904: 0x9A7E, - 39995 - 11904: 0xC5C1, - 39996 - 11904: 0xF7B1, - 39997 - 11904: 0xF7B5, - 39998 - 11904: 0xC5C0, - 39999 - 11904: 0xF7AC, - 40000 - 11904: 0xF570, - 40001 - 11904: 0xF7B0, - 40004 - 11904: 0xF7AD, - 40005 - 11904: 0x9DDE, - 40006 - 11904: 0xF7AA, - 40008 - 11904: 0xF7AB, - 40009 - 11904: 0xC5BE, - 40010 - 11904: 0xF85A, - 40011 - 11904: 0xF85C, - 40012 - 11904: 0xF85F, - 40013 - 11904: 0xF85B, - 40014 - 11904: 0xF860, - 40015 - 11904: 0x96AD, - 40016 - 11904: 0xF859, - 40018 - 11904: 0xF857, - 40019 - 11904: 0x96AE, - 40020 - 11904: 0xC5EB, - 40021 - 11904: 0xF85D, - 40022 - 11904: 0xC5ED, - 40023 - 11904: 0xC5EC, - 40024 - 11904: 0xF858, - 40025 - 11904: 0xF85E, - 40029 - 11904: 0x9EA1, - 40030 - 11904: 0xF8DA, - 40031 - 11904: 0xC64D, - 40032 - 11904: 0xF8DB, - 40034 - 11904: 0xF8D9, - 40035 - 11904: 0xF8D6, - 40038 - 11904: 0xF8D8, - 40039 - 11904: 0xF8D7, - 40040 - 11904: 0xF95A, - 40045 - 11904: 0xF95C, - 40046 - 11904: 0xF95B, - 40049 - 11904: 0xF979, - 40050 - 11904: 0x9E50, - 40051 - 11904: 0xF978, - 40052 - 11904: 0xF977, - 40053 - 11904: 0xF97A, - 40055 - 11904: 0xC673, - 40056 - 11904: 0xC674, - 40057 - 11904: 0xF9CA, - 40058 - 11904: 0xF9CE, - 40059 - 11904: 0x96AF, - 40060 - 11904: 0x8BF4, - 40165 - 11904: 0xB3BE, - 40166 - 11904: 0xDCAF, - 40167 - 11904: 0xE0ED, - 40169 - 11904: 0xB9A7, - 40170 - 11904: 0xE0EB, - 40173 - 11904: 0xE0EC, - 40177 - 11904: 0xE4E2, - 40178 - 11904: 0xE4E3, - 40179 - 11904: 0xBBF1, - 40180 - 11904: 0xBBEF, - 40181 - 11904: 0xE4E4, - 40182 - 11904: 0xBBF0, - 40183 - 11904: 0xE8E8, - 40185 - 11904: 0xE8EB, - 40186 - 11904: 0xE8E5, - 40187 - 11904: 0xE8EC, - 40188 - 11904: 0xE8E4, - 40189 - 11904: 0xE8E6, - 40191 - 11904: 0xE8E7, - 40192 - 11904: 0xE8EA, - 40194 - 11904: 0x9FA4, - 40195 - 11904: 0xBEA1, - 40196 - 11904: 0xE8EF, - 40197 - 11904: 0xE8EE, - 40198 - 11904: 0xBE7D, - 40199 - 11904: 0xE8E9, - 40200 - 11904: 0xE8ED, - 40201 - 11904: 0xBE7E, - 40204 - 11904: 0x96BD, - 40208 - 11904: 0xECAC, - 40210 - 11904: 0xC06F, - 40212 - 11904: 0xECA7, - 40213 - 11904: 0xC06B, - 40214 - 11904: 0x96F4, - 40215 - 11904: 0xECA4, - 40216 - 11904: 0xECAA, - 40217 - 11904: 0xECAD, - 40219 - 11904: 0xC070, - 40221 - 11904: 0xECA9, - 40222 - 11904: 0xECA6, - 40223 - 11904: 0xECAE, - 40224 - 11904: 0xECA5, - 40225 - 11904: 0x96B8, - 40226 - 11904: 0xECAB, - 40227 - 11904: 0xC06C, - 40229 - 11904: 0xECA3, - 40230 - 11904: 0xC06D, - 40232 - 11904: 0xC06E, - 40233 - 11904: 0xECA8, - 40237 - 11904: 0xEFA9, - 40238 - 11904: 0xEF7A, - 40239 - 11904: 0xEF7B, - 40240 - 11904: 0xEF7E, - 40241 - 11904: 0xEF7C, - 40243 - 11904: 0xEF76, - 40244 - 11904: 0xFAA1, - 40246 - 11904: 0xEF79, - 40247 - 11904: 0xEFA5, - 40248 - 11904: 0xEF7D, - 40249 - 11904: 0x91A7, - 40251 - 11904: 0xC245, - 40253 - 11904: 0xEFA7, - 40254 - 11904: 0xEFA4, - 40255 - 11904: 0xC246, - 40256 - 11904: 0xEFA6, - 40257 - 11904: 0xEF77, - 40258 - 11904: 0xEFA2, - 40259 - 11904: 0xEFA3, - 40260 - 11904: 0xA05E, - 40261 - 11904: 0xEFA1, - 40265 - 11904: 0x9A7D, - 40266 - 11904: 0xF1D2, - 40267 - 11904: 0xF1D4, - 40268 - 11904: 0xF1D7, - 40270 - 11904: 0x8948, - 40271 - 11904: 0xF1D1, - 40272 - 11904: 0x9EB1, - 40273 - 11904: 0xC359, - 40274 - 11904: 0xF1D9, - 40275 - 11904: 0xF1D0, - 40276 - 11904: 0xF1DA, - 40278 - 11904: 0xF1D6, - 40279 - 11904: 0xF1D8, - 40280 - 11904: 0xF1DC, - 40281 - 11904: 0xF1D5, - 40282 - 11904: 0xF1DD, - 40283 - 11904: 0xF1D3, - 40284 - 11904: 0xF1CF, - 40285 - 11904: 0xC35A, - 40286 - 11904: 0x9DDB, - 40287 - 11904: 0xF1DB, - 40288 - 11904: 0xC35B, - 40289 - 11904: 0xC44D, - 40295 - 11904: 0xEF78, - 40296 - 11904: 0xF3F1, - 40297 - 11904: 0xF3E8, - 40298 - 11904: 0xC44F, - 40299 - 11904: 0xF3E4, - 40300 - 11904: 0xC450, - 40301 - 11904: 0x95BF, - 40302 - 11904: 0x8A73, - 40303 - 11904: 0xF3ED, - 40304 - 11904: 0xF3E7, - 40305 - 11904: 0xF3DD, - 40306 - 11904: 0xC44E, - 40307 - 11904: 0xF3EA, - 40308 - 11904: 0xF3E5, - 40309 - 11904: 0xF3E6, - 40311 - 11904: 0xF3D8, - 40312 - 11904: 0xF3DF, - 40313 - 11904: 0xF3EE, - 40315 - 11904: 0xF3EB, - 40316 - 11904: 0x9EFE, - 40317 - 11904: 0xF3E3, - 40318 - 11904: 0x917A, - 40319 - 11904: 0xF3EF, - 40320 - 11904: 0xF3DE, - 40321 - 11904: 0xF3D9, - 40322 - 11904: 0xF3EC, - 40323 - 11904: 0x917B, - 40324 - 11904: 0xF3DB, - 40325 - 11904: 0xF3E9, - 40326 - 11904: 0xF3E0, - 40327 - 11904: 0xF3F0, - 40328 - 11904: 0xF3DC, - 40329 - 11904: 0xC44C, - 40330 - 11904: 0xF3DA, - 40331 - 11904: 0xF3E1, - 40332 - 11904: 0xF3E2, - 40336 - 11904: 0xF57D, - 40338 - 11904: 0xF57B, - 40339 - 11904: 0x9AA3, - 40340 - 11904: 0xF5A2, - 40342 - 11904: 0xF5AE, - 40343 - 11904: 0xF5A5, - 40344 - 11904: 0xF57C, - 40345 - 11904: 0xF578, - 40346 - 11904: 0xF5A7, - 40347 - 11904: 0xF57E, - 40348 - 11904: 0xF5A3, - 40349 - 11904: 0xF57A, - 40350 - 11904: 0xF5AA, - 40351 - 11904: 0xF577, - 40352 - 11904: 0xF5A1, - 40353 - 11904: 0xF5A6, - 40354 - 11904: 0xF5A8, - 40355 - 11904: 0xF5AB, - 40356 - 11904: 0xF579, - 40357 - 11904: 0x96C2, - 40358 - 11904: 0xF5AF, - 40359 - 11904: 0xF5B0, - 40360 - 11904: 0xF5A9, - 40361 - 11904: 0xF5AD, - 40362 - 11904: 0xF5A4, - 40363 - 11904: 0x9F77, - 40364 - 11904: 0xF6C1, - 40365 - 11904: 0xF6C4, - 40367 - 11904: 0xC561, - 40369 - 11904: 0xF6C3, - 40370 - 11904: 0xF6C8, - 40371 - 11904: 0xF6C6, - 40372 - 11904: 0xC562, - 40373 - 11904: 0xF6BD, - 40374 - 11904: 0xF6B3, - 40375 - 11904: 0xF6B2, - 40376 - 11904: 0xC564, - 40377 - 11904: 0xF6BF, - 40378 - 11904: 0xF6C0, - 40379 - 11904: 0xF6BC, - 40380 - 11904: 0xF6B4, - 40381 - 11904: 0x9AA4, - 40382 - 11904: 0xF6B9, - 40383 - 11904: 0xF5AC, - 40384 - 11904: 0x9AA5, - 40385 - 11904: 0xF6B5, - 40386 - 11904: 0xC563, - 40387 - 11904: 0xF6BB, - 40388 - 11904: 0x91A1, - 40389 - 11904: 0xF6BA, - 40391 - 11904: 0xF6B6, - 40392 - 11904: 0xF6C2, - 40393 - 11904: 0x89B8, - 40394 - 11904: 0xF6B7, - 40395 - 11904: 0xF7BB, - 40396 - 11904: 0xF6C5, - 40397 - 11904: 0xF6C7, - 40398 - 11904: 0xF6BE, - 40399 - 11904: 0xF6B8, - 40400 - 11904: 0xF7BC, - 40401 - 11904: 0xF7BE, - 40402 - 11904: 0xF7B8, - 40403 - 11904: 0xC5C2, - 40404 - 11904: 0x9173, - 40405 - 11904: 0xF7C5, - 40406 - 11904: 0xF7C3, - 40407 - 11904: 0xC5C3, - 40408 - 11904: 0xF7C2, - 40409 - 11904: 0xF7C1, - 40410 - 11904: 0xF7BA, - 40411 - 11904: 0xF7B7, - 40412 - 11904: 0xF7BD, - 40413 - 11904: 0xF7C6, - 40414 - 11904: 0xF7B9, - 40415 - 11904: 0xF7BF, - 40417 - 11904: 0xF869, - 40418 - 11904: 0xF86E, - 40419 - 11904: 0xF864, - 40420 - 11904: 0xF867, - 40421 - 11904: 0xC5EE, - 40422 - 11904: 0xF86B, - 40424 - 11904: 0xF872, - 40425 - 11904: 0xF7C0, - 40427 - 11904: 0xF865, - 40428 - 11904: 0xF86F, - 40429 - 11904: 0xF873, - 40430 - 11904: 0xF86A, - 40431 - 11904: 0xF863, - 40432 - 11904: 0xF86D, - 40434 - 11904: 0xF86C, - 40435 - 11904: 0xF871, - 40436 - 11904: 0xF870, - 40437 - 11904: 0xF7C4, - 40438 - 11904: 0xF868, - 40439 - 11904: 0xF862, - 40440 - 11904: 0xF866, - 40441 - 11904: 0xC64E, - 40442 - 11904: 0xC64F, - 40443 - 11904: 0xF861, - 40444 - 11904: 0x9AA6, - 40445 - 11904: 0xF8E6, - 40446 - 11904: 0xF8DD, - 40447 - 11904: 0xF8E5, - 40448 - 11904: 0xF8E2, - 40449 - 11904: 0xF8E3, - 40450 - 11904: 0xF8DC, - 40451 - 11904: 0xF8DF, - 40452 - 11904: 0xF8E7, - 40453 - 11904: 0xF8E1, - 40454 - 11904: 0xF8E0, - 40455 - 11904: 0xF8DE, - 40457 - 11904: 0xF8E4, - 40458 - 11904: 0x89BD, - 40459 - 11904: 0xF95D, - 40460 - 11904: 0x89B9, - 40461 - 11904: 0xF95E, - 40462 - 11904: 0x917D, - 40463 - 11904: 0xF960, - 40464 - 11904: 0xF95F, - 40465 - 11904: 0xF962, - 40466 - 11904: 0xF961, - 40467 - 11904: 0xF97C, - 40468 - 11904: 0xF97B, - 40469 - 11904: 0xF9B7, - 40471 - 11904: 0xF9B8, - 40472 - 11904: 0x96BB, - 40473 - 11904: 0xF9C5, - 40474 - 11904: 0xC678, - 40475 - 11904: 0xC67C, - 40476 - 11904: 0x9FF2, - 40477 - 11904: 0xF9CF, - 40478 - 11904: 0xC67D, - 40479 - 11904: 0x8BF5, - 40565 - 11904: 0xB3BF, - 40569 - 11904: 0xC4D0, - 40570 - 11904: 0xF6C9, - 40571 - 11904: 0x9AA9, - 40572 - 11904: 0xC650, - 40573 - 11904: 0xC651, - 40575 - 11904: 0xB3C0, - 40576 - 11904: 0xE0EE, - 40577 - 11904: 0x9F54, - 40578 - 11904: 0xB9A8, - 40579 - 11904: 0xE8F0, - 40580 - 11904: 0x9FE3, - 40581 - 11904: 0x9EED, - 40582 - 11904: 0xECB0, - 40583 - 11904: 0xECB1, - 40584 - 11904: 0xECAF, - 40585 - 11904: 0xEFAB, - 40586 - 11904: 0xEFAA, - 40587 - 11904: 0xC247, - 40588 - 11904: 0xF1DF, - 40589 - 11904: 0xEFAC, - 40590 - 11904: 0xF1DE, - 40592 - 11904: 0x91AA, - 40593 - 11904: 0xF3F3, - 40594 - 11904: 0xC451, - 40595 - 11904: 0xC453, - 40596 - 11904: 0xF3F2, - 40597 - 11904: 0x91AB, - 40598 - 11904: 0xA070, - 40599 - 11904: 0xC452, - 40600 - 11904: 0x9F6D, - 40601 - 11904: 0xF5B1, - 40602 - 11904: 0xF5B3, - 40603 - 11904: 0xF5B2, - 40604 - 11904: 0xF6CA, - 40605 - 11904: 0xC565, - 40606 - 11904: 0x91AC, - 40607 - 11904: 0xC5EF, - 40608 - 11904: 0xF8E8, - 40609 - 11904: 0xF963, - 40610 - 11904: 0x91AD, - 40612 - 11904: 0xF9D2, - 40613 - 11904: 0xB3C1, - 40614 - 11904: 0xA0FD, - 40615 - 11904: 0xE4E5, - 40616 - 11904: 0x9FE2, - 40617 - 11904: 0xBEA2, - 40618 - 11904: 0x91AF, - 40619 - 11904: 0x9E41, - 40620 - 11904: 0x9AAA, - 40621 - 11904: 0xECB3, - 40622 - 11904: 0xECB2, - 40623 - 11904: 0x91B0, - 40624 - 11904: 0xEFAD, - 40625 - 11904: 0x9AAB, - 40628 - 11904: 0xC454, - 40629 - 11904: 0xC4D1, - 40630 - 11904: 0xF7C7, - 40631 - 11904: 0xF9CB, - 40635 - 11904: 0xB3C2, - 40636 - 11904: 0xBBF2, - 40637 - 11904: 0x9AAC, - 40638 - 11904: 0xBEA3, - 40639 - 11904: 0x9A4A, - 40640 - 11904: 0xF3F4, - 40641 - 11904: 0x91B2, - 40642 - 11904: 0xF874, - 40643 - 11904: 0xB6C0, - 40644 - 11904: 0x8BF6, - 40646 - 11904: 0x9AAD, - 40647 - 11904: 0x89B6, - 40648 - 11904: 0xEFAE, - 40652 - 11904: 0xC664, - 40653 - 11904: 0xB6C1, - 40654 - 11904: 0xBEA4, - 40655 - 11904: 0xC248, - 40656 - 11904: 0xF875, - 40657 - 11904: 0xB6C2, - 40659 - 11904: 0xE8F1, - 40660 - 11904: 0xC072, - 40661 - 11904: 0xECB4, - 40662 - 11904: 0xECB5, - 40664 - 11904: 0xC071, - 40666 - 11904: 0xEFAF, - 40667 - 11904: 0xC24C, - 40668 - 11904: 0xC24A, - 40669 - 11904: 0xC24B, - 40670 - 11904: 0xC249, - 40671 - 11904: 0xF1E0, - 40672 - 11904: 0xC35C, - 40674 - 11904: 0x9AAF, - 40676 - 11904: 0xF5B5, - 40677 - 11904: 0xF5B4, - 40678 - 11904: 0xF5B7, - 40679 - 11904: 0xF5B6, - 40680 - 11904: 0xC4D2, - 40683 - 11904: 0xF6CB, - 40685 - 11904: 0xF6CD, - 40686 - 11904: 0xF6CC, - 40687 - 11904: 0xC566, - 40688 - 11904: 0xF7C8, - 40689 - 11904: 0x9AB0, - 40690 - 11904: 0xF876, - 40691 - 11904: 0xF877, - 40692 - 11904: 0xC5F0, - 40693 - 11904: 0xF964, - 40694 - 11904: 0xF97D, - 40695 - 11904: 0xC675, - 40696 - 11904: 0x9AB1, - 40697 - 11904: 0xDCB0, - 40698 - 11904: 0xECB6, - 40699 - 11904: 0xEFB0, - 40700 - 11904: 0xF3F5, - 40701 - 11904: 0xE0EF, - 40702 - 11904: 0x9AA1, - 40703 - 11904: 0xEFB1, - 40704 - 11904: 0xF1E2, - 40705 - 11904: 0xF1E1, - 40706 - 11904: 0x91B9, - 40710 - 11904: 0xF878, - 40711 - 11904: 0xC652, - 40712 - 11904: 0x91BA, - 40713 - 11904: 0xF965, - 40714 - 11904: 0xF97E, - 40718 - 11904: 0xB9A9, - 40719 - 11904: 0xE8F2, - 40720 - 11904: 0xE8F3, - 40722 - 11904: 0xECB7, - 40723 - 11904: 0xB9AA, - 40725 - 11904: 0xC35D, - 40726 - 11904: 0xF1E3, - 40727 - 11904: 0x9F66, - 40728 - 11904: 0xF6CF, - 40729 - 11904: 0xC567, - 40730 - 11904: 0xF6D0, - 40731 - 11904: 0xF6CE, - 40732 - 11904: 0xF879, - 40734 - 11904: 0xF8E9, - 40736 - 11904: 0xB9AB, - 40738 - 11904: 0xEFB4, - 40739 - 11904: 0xEFB3, - 40740 - 11904: 0xEFB2, - 40741 - 11904: 0xF1E4, - 40742 - 11904: 0xA041, - 40743 - 11904: 0x8BB7, - 40744 - 11904: 0xF1E8, - 40745 - 11904: 0xF1E7, - 40746 - 11904: 0xF1E6, - 40747 - 11904: 0xF1E5, - 40748 - 11904: 0xC35E, - 40749 - 11904: 0xF3F6, - 40750 - 11904: 0xF5B9, - 40751 - 11904: 0xC4D3, - 40752 - 11904: 0xF5B8, - 40753 - 11904: 0xF6D1, - 40754 - 11904: 0xF7CB, - 40755 - 11904: 0xF7CA, - 40756 - 11904: 0xC5C4, - 40757 - 11904: 0xF7C9, - 40758 - 11904: 0xF87C, - 40759 - 11904: 0xF87B, - 40760 - 11904: 0xF87A, - 40761 - 11904: 0x91C0, - 40763 - 11904: 0xBBF3, - 40765 - 11904: 0xECB8, - 40766 - 11904: 0xC24D, - 40768 - 11904: 0xF3F7, - 40769 - 11904: 0xF3F8, - 40770 - 11904: 0xF7CC, - 40771 - 11904: 0xF87D, - 40772 - 11904: 0x9AB3, - 40773 - 11904: 0x91C3, - 40774 - 11904: 0xF8EA, - 40775 - 11904: 0xF966, - 40776 - 11904: 0xF9B9, - 40777 - 11904: 0xF9D4, - 40778 - 11904: 0xBBF4, - 40779 - 11904: 0xC24E, - 40780 - 11904: 0xF1E9, - 40781 - 11904: 0xF3F9, - 40782 - 11904: 0xF6D2, - 40783 - 11904: 0xF87E, - 40784 - 11904: 0xA0FC, - 40786 - 11904: 0xBEA6, - 40787 - 11904: 0x9FEE, - 40788 - 11904: 0xEFB5, - 40789 - 11904: 0xF1EA, - 40790 - 11904: 0xF3FA, - 40791 - 11904: 0xF3FB, - 40792 - 11904: 0xF3FC, - 40793 - 11904: 0xF5BE, - 40794 - 11904: 0x9F69, - 40795 - 11904: 0xF5BA, - 40796 - 11904: 0xC568, - 40797 - 11904: 0xF5BD, - 40798 - 11904: 0xF5BC, - 40799 - 11904: 0xC4D4, - 40800 - 11904: 0xF5BB, - 40801 - 11904: 0xC4D6, - 40802 - 11904: 0x91C8, - 40803 - 11904: 0xC4D5, - 40804 - 11904: 0xF6D4, - 40805 - 11904: 0xF6D3, - 40806 - 11904: 0xC569, - 40807 - 11904: 0xC56A, - 40809 - 11904: 0x91C9, - 40810 - 11904: 0xC5C6, - 40811 - 11904: 0xF7CD, - 40812 - 11904: 0xC5C5, - 40814 - 11904: 0xF8A3, - 40815 - 11904: 0xF8A4, - 40816 - 11904: 0xF8A2, - 40817 - 11904: 0xF8A1, - 40818 - 11904: 0xC654, - 40820 - 11904: 0xF8EB, - 40821 - 11904: 0xF8EC, - 40822 - 11904: 0xF8ED, - 40823 - 11904: 0xC653, - 40824 - 11904: 0xF967, - 40825 - 11904: 0xF96A, - 40826 - 11904: 0xF969, - 40827 - 11904: 0xF968, - 40830 - 11904: 0xF9D3, - 40831 - 11904: 0x8DE6, - 40845 - 11904: 0xC073, - 40846 - 11904: 0x91CB, - 40848 - 11904: 0xC365, - 40849 - 11904: 0xF5BF, - 40850 - 11904: 0xF6D5, - 40852 - 11904: 0xC5C7, - 40853 - 11904: 0xF7CE, - 40854 - 11904: 0x87AC, - 40855 - 11904: 0x87A4, - 40856 - 11904: 0xF9D5, - 40857 - 11904: 0x89C8, - 40860 - 11904: 0xC074, - 40863 - 11904: 0x8DAA, - 40864 - 11904: 0xEFB6, - 40866 - 11904: 0xF7CF, - 40868 - 11904: 0xF9A1, - 40869 - 11904: 0x9FDD, - 40870 - 11904: 0x8C43, - 40871 - 11904: 0x8C6D, - 40872 - 11904: 0x8C74, - 40873 - 11904: 0x8CB7, - 40874 - 11904: 0x8CB9, - 40875 - 11904: 0x8CBB, - 40876 - 11904: 0x8CC0, - 40877 - 11904: 0x8CD7, - 40878 - 11904: 0x8CD8, - 40879 - 11904: 0x8CDA, - 40880 - 11904: 0xC8A1, - 40881 - 11904: 0xC8A3, - 40882 - 11904: 0x8CED, - 40883 - 11904: 0x8D48, - 40903 - 11904: 0x87C2, - 40904 - 11904: 0x87D2, - 40905 - 11904: 0x87D6, - 40906 - 11904: 0x87DA, - 40907 - 11904: 0x87DF, -} - -const encode2Low, encode2High = 7870, 10046 - -var encode2 = [...]uint16{ - 7870 - 7870: 0x8863, - 7871 - 7870: 0x88A4, - 7872 - 7870: 0x8865, - 7873 - 7870: 0x88A6, - 8211 - 7870: 0xA156, - 8212 - 7870: 0xA158, - 8216 - 7870: 0xA1A5, - 8217 - 7870: 0xA1A6, - 8220 - 7870: 0xA1A7, - 8221 - 7870: 0xA1A8, - 8229 - 7870: 0xA14C, - 8230 - 7870: 0xA14B, - 8231 - 7870: 0xA145, - 8242 - 7870: 0xA1AC, - 8245 - 7870: 0xA1AB, - 8251 - 7870: 0xA1B0, - 8364 - 7870: 0xA3E1, - 8451 - 7870: 0xA24A, - 8453 - 7870: 0xA1C1, - 8457 - 7870: 0xA24B, - 8470 - 7870: 0xC8D2, - 8481 - 7870: 0xC8D3, - 8544 - 7870: 0xA2B9, - 8545 - 7870: 0xA2BA, - 8546 - 7870: 0xA2BB, - 8547 - 7870: 0xA2BC, - 8548 - 7870: 0xA2BD, - 8549 - 7870: 0xA2BE, - 8550 - 7870: 0xA2BF, - 8551 - 7870: 0xA2C0, - 8552 - 7870: 0xA2C1, - 8553 - 7870: 0xA2C2, - 8560 - 7870: 0xC6B5, - 8561 - 7870: 0xC6B6, - 8562 - 7870: 0xC6B7, - 8563 - 7870: 0xC6B8, - 8564 - 7870: 0xC6B9, - 8565 - 7870: 0xC6BA, - 8566 - 7870: 0xC6BB, - 8567 - 7870: 0xC6BC, - 8568 - 7870: 0xC6BD, - 8569 - 7870: 0xC6BE, - 8592 - 7870: 0xA1F6, - 8593 - 7870: 0xA1F4, - 8594 - 7870: 0xA1F7, - 8595 - 7870: 0xA1F5, - 8598 - 7870: 0xA1F8, - 8599 - 7870: 0xA1F9, - 8600 - 7870: 0xA1FB, - 8601 - 7870: 0xA1FA, - 8632 - 7870: 0xC877, - 8633 - 7870: 0xC878, - 8679 - 7870: 0xC876, - 8725 - 7870: 0xA241, - 8730 - 7870: 0xA1D4, - 8734 - 7870: 0xA1DB, - 8735 - 7870: 0xA1E8, - 8736 - 7870: 0xA1E7, - 8739 - 7870: 0xA1FD, - 8741 - 7870: 0xA1FC, - 8745 - 7870: 0xA1E4, - 8746 - 7870: 0xA1E5, - 8747 - 7870: 0xA1EC, - 8750 - 7870: 0xA1ED, - 8756 - 7870: 0xA1EF, - 8757 - 7870: 0xA1EE, - 8786 - 7870: 0xA1DC, - 8800 - 7870: 0xA1DA, - 8801 - 7870: 0xA1DD, - 8806 - 7870: 0xA1D8, - 8807 - 7870: 0xA1D9, - 8853 - 7870: 0xA1F2, - 8857 - 7870: 0xA1F3, - 8869 - 7870: 0xA1E6, - 8895 - 7870: 0xA1E9, - 9178 - 7870: 0x88A9, - 9179 - 7870: 0x88AA, - 9216 - 7870: 0xA3C0, - 9217 - 7870: 0xA3C1, - 9218 - 7870: 0xA3C2, - 9219 - 7870: 0xA3C3, - 9220 - 7870: 0xA3C4, - 9221 - 7870: 0xA3C5, - 9222 - 7870: 0xA3C6, - 9223 - 7870: 0xA3C7, - 9224 - 7870: 0xA3C8, - 9225 - 7870: 0xA3C9, - 9226 - 7870: 0xA3CA, - 9227 - 7870: 0xA3CB, - 9228 - 7870: 0xA3CC, - 9229 - 7870: 0xA3CD, - 9230 - 7870: 0xA3CE, - 9231 - 7870: 0xA3CF, - 9232 - 7870: 0xA3D0, - 9233 - 7870: 0xA3D1, - 9234 - 7870: 0xA3D2, - 9235 - 7870: 0xA3D3, - 9236 - 7870: 0xA3D4, - 9237 - 7870: 0xA3D5, - 9238 - 7870: 0xA3D6, - 9239 - 7870: 0xA3D7, - 9240 - 7870: 0xA3D8, - 9241 - 7870: 0xA3D9, - 9242 - 7870: 0xA3DA, - 9243 - 7870: 0xA3DB, - 9244 - 7870: 0xA3DC, - 9245 - 7870: 0xA3DD, - 9246 - 7870: 0xA3DE, - 9247 - 7870: 0xA3DF, - 9249 - 7870: 0xA3E0, - 9312 - 7870: 0xC6A1, - 9313 - 7870: 0xC6A2, - 9314 - 7870: 0xC6A3, - 9315 - 7870: 0xC6A4, - 9316 - 7870: 0xC6A5, - 9317 - 7870: 0xC6A6, - 9318 - 7870: 0xC6A7, - 9319 - 7870: 0xC6A8, - 9320 - 7870: 0xC6A9, - 9321 - 7870: 0xC6AA, - 9332 - 7870: 0xC6AB, - 9333 - 7870: 0xC6AC, - 9334 - 7870: 0xC6AD, - 9335 - 7870: 0xC6AE, - 9336 - 7870: 0xC6AF, - 9337 - 7870: 0xC6B0, - 9338 - 7870: 0xC6B1, - 9339 - 7870: 0xC6B2, - 9340 - 7870: 0xC6B3, - 9341 - 7870: 0xC6B4, - 9472 - 7870: 0xA277, - 9474 - 7870: 0xA278, - 9484 - 7870: 0xA27A, - 9488 - 7870: 0xA27B, - 9492 - 7870: 0xA27C, - 9496 - 7870: 0xA27D, - 9500 - 7870: 0xA275, - 9508 - 7870: 0xA274, - 9516 - 7870: 0xA273, - 9524 - 7870: 0xA272, - 9532 - 7870: 0xA271, - 9552 - 7870: 0xF9F9, - 9553 - 7870: 0xF9F8, - 9554 - 7870: 0xF9E6, - 9555 - 7870: 0xF9EF, - 9556 - 7870: 0xF9DD, - 9557 - 7870: 0xF9E8, - 9558 - 7870: 0xF9F1, - 9559 - 7870: 0xF9DF, - 9560 - 7870: 0xF9EC, - 9561 - 7870: 0xF9F5, - 9562 - 7870: 0xF9E3, - 9563 - 7870: 0xF9EE, - 9564 - 7870: 0xF9F7, - 9565 - 7870: 0xF9E5, - 9566 - 7870: 0xF9E9, - 9567 - 7870: 0xF9F2, - 9568 - 7870: 0xF9E0, - 9569 - 7870: 0xF9EB, - 9570 - 7870: 0xF9F4, - 9571 - 7870: 0xF9E2, - 9572 - 7870: 0xF9E7, - 9573 - 7870: 0xF9F0, - 9574 - 7870: 0xF9DE, - 9575 - 7870: 0xF9ED, - 9576 - 7870: 0xF9F6, - 9577 - 7870: 0xF9E4, - 9578 - 7870: 0xF9EA, - 9579 - 7870: 0xF9F3, - 9580 - 7870: 0xF9E1, - 9581 - 7870: 0xF9FA, - 9582 - 7870: 0xF9FB, - 9583 - 7870: 0xF9FD, - 9584 - 7870: 0xF9FC, - 9585 - 7870: 0xA2AC, - 9586 - 7870: 0xA2AD, - 9587 - 7870: 0xA2AE, - 9588 - 7870: 0xA15A, - 9601 - 7870: 0xA262, - 9602 - 7870: 0xA263, - 9603 - 7870: 0xA264, - 9604 - 7870: 0xA265, - 9605 - 7870: 0xA266, - 9606 - 7870: 0xA267, - 9607 - 7870: 0xA268, - 9608 - 7870: 0xA269, - 9609 - 7870: 0xA270, - 9610 - 7870: 0xA26F, - 9611 - 7870: 0xA26E, - 9612 - 7870: 0xA26D, - 9613 - 7870: 0xA26C, - 9614 - 7870: 0xA26B, - 9615 - 7870: 0xA26A, - 9620 - 7870: 0xA276, - 9621 - 7870: 0xA279, - 9632 - 7870: 0xA1BD, - 9633 - 7870: 0xA1BC, - 9650 - 7870: 0xA1B6, - 9651 - 7870: 0xA1B5, - 9660 - 7870: 0xA1BF, - 9661 - 7870: 0xA1BE, - 9670 - 7870: 0xA1BB, - 9671 - 7870: 0xA1BA, - 9675 - 7870: 0xA1B3, - 9678 - 7870: 0xA1B7, - 9679 - 7870: 0xA1B4, - 9698 - 7870: 0xA2A8, - 9699 - 7870: 0xA2A9, - 9700 - 7870: 0xA2AB, - 9701 - 7870: 0xA2AA, - 9733 - 7870: 0xA1B9, - 9734 - 7870: 0xA1B8, - 9792 - 7870: 0xA1F0, - 9794 - 7870: 0xA1F1, - 10045 - 7870: 0xC6E6, -} - -const encode3Low, encode3High = 167, 1106 - -var encode3 = [...]uint16{ - 167 - 167: 0xA1B1, - 168 - 167: 0xC6D8, - 175 - 167: 0xA1C2, - 176 - 167: 0xA258, - 177 - 167: 0xA1D3, - 183 - 167: 0xA150, - 192 - 167: 0x8859, - 193 - 167: 0x8857, - 200 - 167: 0x885D, - 201 - 167: 0x885B, - 202 - 167: 0x8866, - 210 - 167: 0x8861, - 211 - 167: 0x885F, - 215 - 167: 0xA1D1, - 224 - 167: 0x886A, - 225 - 167: 0x8868, - 232 - 167: 0x886F, - 233 - 167: 0x886D, - 234 - 167: 0x88A7, - 236 - 167: 0x8873, - 237 - 167: 0x8871, - 242 - 167: 0x8877, - 243 - 167: 0x8875, - 247 - 167: 0xA1D2, - 248 - 167: 0xC8FB, - 249 - 167: 0x887B, - 250 - 167: 0x8879, - 252 - 167: 0x88A2, - 256 - 167: 0x8856, - 257 - 167: 0x8867, - 274 - 167: 0x885A, - 275 - 167: 0x886C, - 282 - 167: 0x885C, - 283 - 167: 0x886E, - 299 - 167: 0x8870, - 331 - 167: 0xC8FC, - 332 - 167: 0x885E, - 333 - 167: 0x8874, - 339 - 167: 0xC8FA, - 363 - 167: 0x8878, - 461 - 167: 0x8858, - 462 - 167: 0x8869, - 464 - 167: 0x8872, - 465 - 167: 0x8860, - 466 - 167: 0x8876, - 468 - 167: 0x887A, - 470 - 167: 0x887C, - 472 - 167: 0x887D, - 474 - 167: 0x887E, - 476 - 167: 0x88A1, - 592 - 167: 0xC8F6, - 593 - 167: 0x886B, - 596 - 167: 0xC8F8, - 603 - 167: 0xC8F7, - 609 - 167: 0x88A8, - 618 - 167: 0xC8FE, - 629 - 167: 0xC8F9, - 643 - 167: 0xC8F5, - 650 - 167: 0xC8FD, - 710 - 167: 0xC6D9, - 711 - 167: 0xA3BE, - 713 - 167: 0xA3BC, - 714 - 167: 0xA3BD, - 715 - 167: 0xA3BF, - 717 - 167: 0xA1C5, - 729 - 167: 0xA3BB, - 913 - 167: 0xA344, - 914 - 167: 0xA345, - 915 - 167: 0xA346, - 916 - 167: 0xA347, - 917 - 167: 0xA348, - 918 - 167: 0xA349, - 919 - 167: 0xA34A, - 920 - 167: 0xA34B, - 921 - 167: 0xA34C, - 922 - 167: 0xA34D, - 923 - 167: 0xA34E, - 924 - 167: 0xA34F, - 925 - 167: 0xA350, - 926 - 167: 0xA351, - 927 - 167: 0xA352, - 928 - 167: 0xA353, - 929 - 167: 0xA354, - 931 - 167: 0xA355, - 932 - 167: 0xA356, - 933 - 167: 0xA357, - 934 - 167: 0xA358, - 935 - 167: 0xA359, - 936 - 167: 0xA35A, - 937 - 167: 0xA35B, - 945 - 167: 0xA35C, - 946 - 167: 0xA35D, - 947 - 167: 0xA35E, - 948 - 167: 0xA35F, - 949 - 167: 0xA360, - 950 - 167: 0xA361, - 951 - 167: 0xA362, - 952 - 167: 0xA363, - 953 - 167: 0xA364, - 954 - 167: 0xA365, - 955 - 167: 0xA366, - 956 - 167: 0xA367, - 957 - 167: 0xA368, - 958 - 167: 0xA369, - 959 - 167: 0xA36A, - 960 - 167: 0xA36B, - 961 - 167: 0xA36C, - 963 - 167: 0xA36D, - 964 - 167: 0xA36E, - 965 - 167: 0xA36F, - 966 - 167: 0xA370, - 967 - 167: 0xA371, - 968 - 167: 0xA372, - 969 - 167: 0xA373, - 1025 - 167: 0xC7F9, - 1040 - 167: 0xC7F3, - 1041 - 167: 0xC7F4, - 1042 - 167: 0xC7F5, - 1043 - 167: 0xC7F6, - 1044 - 167: 0xC7F7, - 1045 - 167: 0xC7F8, - 1046 - 167: 0xC7FA, - 1047 - 167: 0xC7FB, - 1048 - 167: 0xC7FC, - 1049 - 167: 0xC7FD, - 1050 - 167: 0xC7FE, - 1051 - 167: 0xC840, - 1052 - 167: 0xC841, - 1053 - 167: 0xC842, - 1054 - 167: 0xC843, - 1055 - 167: 0xC844, - 1056 - 167: 0xC845, - 1057 - 167: 0xC846, - 1058 - 167: 0xC847, - 1059 - 167: 0xC848, - 1060 - 167: 0xC849, - 1061 - 167: 0xC84A, - 1062 - 167: 0xC84B, - 1063 - 167: 0xC84C, - 1064 - 167: 0xC84D, - 1065 - 167: 0xC84E, - 1066 - 167: 0xC84F, - 1067 - 167: 0xC850, - 1068 - 167: 0xC851, - 1069 - 167: 0xC852, - 1070 - 167: 0xC853, - 1071 - 167: 0xC854, - 1072 - 167: 0xC855, - 1073 - 167: 0xC856, - 1074 - 167: 0xC857, - 1075 - 167: 0xC858, - 1076 - 167: 0xC859, - 1077 - 167: 0xC85A, - 1078 - 167: 0xC85C, - 1079 - 167: 0xC85D, - 1080 - 167: 0xC85E, - 1081 - 167: 0xC85F, - 1082 - 167: 0xC860, - 1083 - 167: 0xC861, - 1084 - 167: 0xC862, - 1085 - 167: 0xC863, - 1086 - 167: 0xC864, - 1087 - 167: 0xC865, - 1088 - 167: 0xC866, - 1089 - 167: 0xC867, - 1090 - 167: 0xC868, - 1091 - 167: 0xC869, - 1092 - 167: 0xC86A, - 1093 - 167: 0xC86B, - 1094 - 167: 0xC86C, - 1095 - 167: 0xC86D, - 1096 - 167: 0xC86E, - 1097 - 167: 0xC86F, - 1098 - 167: 0xC870, - 1099 - 167: 0xC871, - 1100 - 167: 0xC872, - 1101 - 167: 0xC873, - 1102 - 167: 0xC874, - 1103 - 167: 0xC875, - 1105 - 167: 0xC85B, -} - -const encode4Low, encode4High = 65072, 65518 - -var encode4 = [...]uint16{ - 65072 - 65072: 0xA14A, - 65073 - 65072: 0xA157, - 65075 - 65072: 0xA159, - 65076 - 65072: 0xA15B, - 65077 - 65072: 0xA15F, - 65078 - 65072: 0xA160, - 65079 - 65072: 0xA163, - 65080 - 65072: 0xA164, - 65081 - 65072: 0xA167, - 65082 - 65072: 0xA168, - 65083 - 65072: 0xA16B, - 65084 - 65072: 0xA16C, - 65085 - 65072: 0xA16F, - 65086 - 65072: 0xA170, - 65087 - 65072: 0xA173, - 65088 - 65072: 0xA174, - 65089 - 65072: 0xA177, - 65090 - 65072: 0xA178, - 65091 - 65072: 0xA17B, - 65092 - 65072: 0xA17C, - 65097 - 65072: 0xA1C6, - 65098 - 65072: 0xA1C7, - 65099 - 65072: 0xA1CA, - 65100 - 65072: 0xA1CB, - 65101 - 65072: 0xA1C8, - 65102 - 65072: 0xA1C9, - 65103 - 65072: 0xA15C, - 65104 - 65072: 0xA14D, - 65105 - 65072: 0xA14E, - 65106 - 65072: 0xA14F, - 65108 - 65072: 0xA151, - 65109 - 65072: 0xA152, - 65110 - 65072: 0xA153, - 65111 - 65072: 0xA154, - 65113 - 65072: 0xA17D, - 65114 - 65072: 0xA17E, - 65115 - 65072: 0xA1A1, - 65116 - 65072: 0xA1A2, - 65117 - 65072: 0xA1A3, - 65118 - 65072: 0xA1A4, - 65119 - 65072: 0xA1CC, - 65120 - 65072: 0xA1CD, - 65121 - 65072: 0xA1CE, - 65122 - 65072: 0xA1DE, - 65123 - 65072: 0xA1DF, - 65124 - 65072: 0xA1E0, - 65125 - 65072: 0xA1E1, - 65126 - 65072: 0xA1E2, - 65128 - 65072: 0xA242, - 65129 - 65072: 0xA24C, - 65130 - 65072: 0xA24D, - 65131 - 65072: 0xA24E, - 65281 - 65072: 0xA149, - 65282 - 65072: 0xC8D0, - 65283 - 65072: 0xA1AD, - 65284 - 65072: 0xA243, - 65285 - 65072: 0xA248, - 65286 - 65072: 0xA1AE, - 65287 - 65072: 0xC8CF, - 65288 - 65072: 0xA15D, - 65289 - 65072: 0xA15E, - 65290 - 65072: 0xA1AF, - 65291 - 65072: 0xA1CF, - 65292 - 65072: 0xA141, - 65293 - 65072: 0xA1D0, - 65294 - 65072: 0xA144, - 65295 - 65072: 0xA1FE, - 65296 - 65072: 0xA2AF, - 65297 - 65072: 0xA2B0, - 65298 - 65072: 0xA2B1, - 65299 - 65072: 0xA2B2, - 65300 - 65072: 0xA2B3, - 65301 - 65072: 0xA2B4, - 65302 - 65072: 0xA2B5, - 65303 - 65072: 0xA2B6, - 65304 - 65072: 0xA2B7, - 65305 - 65072: 0xA2B8, - 65306 - 65072: 0xA147, - 65307 - 65072: 0xA146, - 65308 - 65072: 0xA1D5, - 65309 - 65072: 0xA1D7, - 65310 - 65072: 0xA1D6, - 65311 - 65072: 0xA148, - 65312 - 65072: 0xA249, - 65313 - 65072: 0xA2CF, - 65314 - 65072: 0xA2D0, - 65315 - 65072: 0xA2D1, - 65316 - 65072: 0xA2D2, - 65317 - 65072: 0xA2D3, - 65318 - 65072: 0xA2D4, - 65319 - 65072: 0xA2D5, - 65320 - 65072: 0xA2D6, - 65321 - 65072: 0xA2D7, - 65322 - 65072: 0xA2D8, - 65323 - 65072: 0xA2D9, - 65324 - 65072: 0xA2DA, - 65325 - 65072: 0xA2DB, - 65326 - 65072: 0xA2DC, - 65327 - 65072: 0xA2DD, - 65328 - 65072: 0xA2DE, - 65329 - 65072: 0xA2DF, - 65330 - 65072: 0xA2E0, - 65331 - 65072: 0xA2E1, - 65332 - 65072: 0xA2E2, - 65333 - 65072: 0xA2E3, - 65334 - 65072: 0xA2E4, - 65335 - 65072: 0xA2E5, - 65336 - 65072: 0xA2E6, - 65337 - 65072: 0xA2E7, - 65338 - 65072: 0xA2E8, - 65339 - 65072: 0xC6E4, - 65340 - 65072: 0xA240, - 65341 - 65072: 0xC6E5, - 65343 - 65072: 0xA1C4, - 65345 - 65072: 0xA2E9, - 65346 - 65072: 0xA2EA, - 65347 - 65072: 0xA2EB, - 65348 - 65072: 0xA2EC, - 65349 - 65072: 0xA2ED, - 65350 - 65072: 0xA2EE, - 65351 - 65072: 0xA2EF, - 65352 - 65072: 0xA2F0, - 65353 - 65072: 0xA2F1, - 65354 - 65072: 0xA2F2, - 65355 - 65072: 0xA2F3, - 65356 - 65072: 0xA2F4, - 65357 - 65072: 0xA2F5, - 65358 - 65072: 0xA2F6, - 65359 - 65072: 0xA2F7, - 65360 - 65072: 0xA2F8, - 65361 - 65072: 0xA2F9, - 65362 - 65072: 0xA2FA, - 65363 - 65072: 0xA2FB, - 65364 - 65072: 0xA2FC, - 65365 - 65072: 0xA2FD, - 65366 - 65072: 0xA2FE, - 65367 - 65072: 0xA340, - 65368 - 65072: 0xA341, - 65369 - 65072: 0xA342, - 65370 - 65072: 0xA343, - 65371 - 65072: 0xA161, - 65372 - 65072: 0xA155, - 65373 - 65072: 0xA162, - 65374 - 65072: 0xA1E3, - 65504 - 65072: 0xA246, - 65505 - 65072: 0xA247, - 65506 - 65072: 0xC8CD, - 65507 - 65072: 0xA1C3, - 65508 - 65072: 0xC8CE, - 65509 - 65072: 0xA244, - 65517 - 65072: 0xF9FE, -} - -const encode5Low, encode5High = 194597, 195029 - -var encode5 = [...]uint16{ - 194597 - 194597: 0x9874, - 194619 - 194597: 0x9AC8, - 194624 - 194597: 0xA047, - 194680 - 194597: 0x8BC3, - 194708 - 194597: 0xFC48, - 194726 - 194597: 0xFC77, - 194765 - 194597: 0x9C52, - 194964 - 194597: 0x8EFD, - 194994 - 194597: 0x8FA8, - 195004 - 194597: 0x957A, - 195028 - 194597: 0x8FF0, -} - -const encode6Low, encode6High = 63751, 64014 - -var encode6 = [...]uint16{ - 63751 - 63751: 0x8BF8, - 64012 - 63751: 0xC94A, - 64013 - 63751: 0xDDFC, -} - -const encode7Low, encode7High = 175615, 175616 - -var encode7 = [...]uint16{ - 175615 - 175615: 0x87DC, -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/unicode/override.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/unicode/override.go deleted file mode 100644 index 35d62fcc..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/unicode/override.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 unicode - -import ( - "golang.org/x/text/transform" -) - -// BOMOverride returns a new decoder transformer that is identical to fallback, -// except that the presence of a Byte Order Mark at the start of the input -// causes it to switch to the corresponding Unicode decoding. It will only -// consider BOMs for UTF-8, UTF-16BE, and UTF-16LE. -// -// This differs from using ExpectBOM by allowing a BOM to switch to UTF-8, not -// just UTF-16 variants, and allowing falling back to any encoding scheme. -// -// This technique is recommended by the W3C for use in HTML 5: "For -// compatibility with deployed content, the byte order mark (also known as BOM) -// is considered more authoritative than anything else." -// http://www.w3.org/TR/encoding/#specification-hooks -// -// Using BOMOverride is mostly intended for use cases where the first characters -// of a fallback encoding are known to not be a BOM, for example, for valid HTML -// and most encodings. -func BOMOverride(fallback transform.Transformer) transform.Transformer { - // TODO: possibly allow a variadic argument of unicode encodings to allow - // specifying details of which fallbacks are supported as well as - // specifying the details of the implementations. This would also allow for - // support for UTF-32, which should not be supported by default. - return &bomOverride{fallback: fallback} -} - -type bomOverride struct { - fallback transform.Transformer - current transform.Transformer -} - -func (d *bomOverride) Reset() { - d.current = nil - d.fallback.Reset() -} - -var ( - // TODO: we could use decode functions here, instead of allocating a new - // decoder on every NewDecoder as IgnoreBOM decoders can be stateless. - utf16le = UTF16(LittleEndian, IgnoreBOM) - utf16be = UTF16(BigEndian, IgnoreBOM) -) - -const utf8BOM = "\ufeff" - -func (d *bomOverride) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if d.current != nil { - return d.current.Transform(dst, src, atEOF) - } - if len(src) < 3 && !atEOF { - return 0, 0, transform.ErrShortSrc - } - d.current = d.fallback - bomSize := 0 - if len(src) >= 2 { - if src[0] == 0xFF && src[1] == 0xFE { - d.current = utf16le.NewDecoder() - bomSize = 2 - } else if src[0] == 0xFE && src[1] == 0xFF { - d.current = utf16be.NewDecoder() - bomSize = 2 - } else if len(src) >= 3 && - src[0] == utf8BOM[0] && - src[1] == utf8BOM[1] && - src[2] == utf8BOM[2] { - d.current = transform.Nop - bomSize = 3 - } - } - if bomSize < len(src) { - nDst, nSrc, err = d.current.Transform(dst, src[bomSize:], atEOF) - } - return nDst, nSrc + bomSize, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/unicode/unicode.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/unicode/unicode.go deleted file mode 100644 index 579cadfb..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/encoding/unicode/unicode.go +++ /dev/null @@ -1,434 +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 unicode provides Unicode encodings such as UTF-16. -package unicode // import "golang.org/x/text/encoding/unicode" - -import ( - "errors" - "unicode/utf16" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/internal/utf8internal" - "golang.org/x/text/runes" - "golang.org/x/text/transform" -) - -// TODO: I think the Transformers really should return errors on unmatched -// surrogate pairs and odd numbers of bytes. This is not required by RFC 2781, -// which leaves it open, but is suggested by WhatWG. It will allow for all error -// modes as defined by WhatWG: fatal, HTML and Replacement. This would require -// the introduction of some kind of error type for conveying the erroneous code -// point. - -// UTF8 is the UTF-8 encoding. -var UTF8 encoding.Encoding = utf8enc - -var utf8enc = &internal.Encoding{ - &internal.SimpleEncoding{utf8Decoder{}, runes.ReplaceIllFormed()}, - "UTF-8", - identifier.UTF8, -} - -type utf8Decoder struct{ transform.NopResetter } - -func (utf8Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - var pSrc int // point from which to start copy in src - var accept utf8internal.AcceptRange - - // The decoder can only make the input larger, not smaller. - n := len(src) - if len(dst) < n { - err = transform.ErrShortDst - n = len(dst) - atEOF = false - } - for nSrc < n { - c := src[nSrc] - if c < utf8.RuneSelf { - nSrc++ - continue - } - first := utf8internal.First[c] - size := int(first & utf8internal.SizeMask) - if first == utf8internal.FirstInvalid { - goto handleInvalid // invalid starter byte - } - accept = utf8internal.AcceptRanges[first>>utf8internal.AcceptShift] - if nSrc+size > n { - if !atEOF { - // We may stop earlier than necessary here if the short sequence - // has invalid bytes. Not checking for this simplifies the code - // and may avoid duplicate computations in certain conditions. - if err == nil { - err = transform.ErrShortSrc - } - break - } - // Determine the maximal subpart of an ill-formed subsequence. - switch { - case nSrc+1 >= n || src[nSrc+1] < accept.Lo || accept.Hi < src[nSrc+1]: - size = 1 - case nSrc+2 >= n || src[nSrc+2] < utf8internal.LoCB || utf8internal.HiCB < src[nSrc+2]: - size = 2 - default: - size = 3 // As we are short, the maximum is 3. - } - goto handleInvalid - } - if c = src[nSrc+1]; c < accept.Lo || accept.Hi < c { - size = 1 - goto handleInvalid // invalid continuation byte - } else if size == 2 { - } else if c = src[nSrc+2]; c < utf8internal.LoCB || utf8internal.HiCB < c { - size = 2 - goto handleInvalid // invalid continuation byte - } else if size == 3 { - } else if c = src[nSrc+3]; c < utf8internal.LoCB || utf8internal.HiCB < c { - size = 3 - goto handleInvalid // invalid continuation byte - } - nSrc += size - continue - - handleInvalid: - // Copy the scanned input so far. - nDst += copy(dst[nDst:], src[pSrc:nSrc]) - - // Append RuneError to the destination. - const runeError = "\ufffd" - if nDst+len(runeError) > len(dst) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += copy(dst[nDst:], runeError) - - // Skip the maximal subpart of an ill-formed subsequence according to - // the W3C standard way instead of the Go way. This Transform is - // probably the only place in the text repo where it is warranted. - nSrc += size - pSrc = nSrc - - // Recompute the maximum source length. - if sz := len(dst) - nDst; sz < len(src)-nSrc { - err = transform.ErrShortDst - n = nSrc + sz - atEOF = false - } - } - return nDst + copy(dst[nDst:], src[pSrc:nSrc]), nSrc, err -} - -// UTF16 returns a UTF-16 Encoding for the given default endianness and byte -// order mark (BOM) policy. -// -// When decoding from UTF-16 to UTF-8, if the BOMPolicy is IgnoreBOM then -// neither BOMs U+FEFF nor noncharacters U+FFFE in the input stream will affect -// the endianness used for decoding, and will instead be output as their -// standard UTF-8 encodings: "\xef\xbb\xbf" and "\xef\xbf\xbe". If the BOMPolicy -// is UseBOM or ExpectBOM a staring BOM is not written to the UTF-8 output. -// Instead, it overrides the default endianness e for the remainder of the -// transformation. Any subsequent BOMs U+FEFF or noncharacters U+FFFE will not -// affect the endianness used, and will instead be output as their standard -// UTF-8 encodings. For UseBOM, if there is no starting BOM, it will proceed -// with the default Endianness. For ExpectBOM, in that case, the transformation -// will return early with an ErrMissingBOM error. -// -// When encoding from UTF-8 to UTF-16, a BOM will be inserted at the start of -// the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM will not -// be inserted. The UTF-8 input does not need to contain a BOM. -// -// There is no concept of a 'native' endianness. If the UTF-16 data is produced -// and consumed in a greater context that implies a certain endianness, use -// IgnoreBOM. Otherwise, use ExpectBOM and always produce and consume a BOM. -// -// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM -// corresponds to "Where the precise type of the data stream is known... the -// BOM should not be used" and ExpectBOM corresponds to "A particular -// protocol... may require use of the BOM". -func UTF16(e Endianness, b BOMPolicy) encoding.Encoding { - return utf16Encoding{config{e, b}, mibValue[e][b&bomMask]} -} - -// mibValue maps Endianness and BOMPolicy settings to MIB constants. Note that -// some configurations map to the same MIB identifier. RFC 2781 has requirements -// and recommendations. Some of the "configurations" are merely recommendations, -// so multiple configurations could match. -var mibValue = map[Endianness][numBOMValues]identifier.MIB{ - BigEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16BE, - UseBOM: identifier.UTF16, // BigEnding default is preferred by RFC 2781. - // TODO: acceptBOM | strictBOM would map to UTF16BE as well. - }, - LittleEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16LE, - UseBOM: identifier.UTF16, // LittleEndian default is allowed and preferred on Windows. - // TODO: acceptBOM | strictBOM would map to UTF16LE as well. - }, - // ExpectBOM is not widely used and has no valid MIB identifier. -} - -// All lists a configuration for each IANA-defined UTF-16 variant. -var All = []encoding.Encoding{ - UTF8, - UTF16(BigEndian, UseBOM), - UTF16(BigEndian, IgnoreBOM), - UTF16(LittleEndian, IgnoreBOM), -} - -// BOMPolicy is a UTF-16 encoding's byte order mark policy. -type BOMPolicy uint8 - -const ( - writeBOM BOMPolicy = 0x01 - acceptBOM BOMPolicy = 0x02 - requireBOM BOMPolicy = 0x04 - bomMask BOMPolicy = 0x07 - - // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a - // map of an array of length 8 of a type that is also used as a key or value - // in another map). See golang.org/issue/11354. - // TODO: consider changing this value back to 8 if the use of 1.4.* has - // been minimized. - numBOMValues = 8 + 1 - - // IgnoreBOM means to ignore any byte order marks. - IgnoreBOM BOMPolicy = 0 - // Common and RFC 2781-compliant interpretation for UTF-16BE/LE. - - // UseBOM means that the UTF-16 form may start with a byte order mark, which - // will be used to override the default encoding. - UseBOM BOMPolicy = writeBOM | acceptBOM - // Common and RFC 2781-compliant interpretation for UTF-16. - - // ExpectBOM means that the UTF-16 form must start with a byte order mark, - // which will be used to override the default encoding. - ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM - // Used in Java as Unicode (not to be confused with Java's UTF-16) and - // ICU's UTF-16,version=1. Not compliant with RFC 2781. - - // TODO (maybe): strictBOM: BOM must match Endianness. This would allow: - // - UTF-16(B|L)E,version=1: writeBOM | acceptBOM | requireBOM | strictBOM - // (UnicodeBig and UnicodeLittle in Java) - // - RFC 2781-compliant, but less common interpretation for UTF-16(B|L)E: - // acceptBOM | strictBOM (e.g. assigned to CheckBOM). - // This addition would be consistent with supporting ExpectBOM. -) - -// Endianness is a UTF-16 encoding's default endianness. -type Endianness bool - -const ( - // BigEndian is UTF-16BE. - BigEndian Endianness = false - // LittleEndian is UTF-16LE. - LittleEndian Endianness = true -) - -// ErrMissingBOM means that decoding UTF-16 input with ExpectBOM did not find a -// starting byte order mark. -var ErrMissingBOM = errors.New("encoding: missing byte order mark") - -type utf16Encoding struct { - config - mib identifier.MIB -} - -type config struct { - endianness Endianness - bomPolicy BOMPolicy -} - -func (u utf16Encoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: &utf16Decoder{ - initial: u.config, - current: u.config, - }} -} - -func (u utf16Encoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: &utf16Encoder{ - endianness: u.endianness, - initialBOMPolicy: u.bomPolicy, - currentBOMPolicy: u.bomPolicy, - }} -} - -func (u utf16Encoding) ID() (mib identifier.MIB, other string) { - return u.mib, "" -} - -func (u utf16Encoding) String() string { - e, b := "B", "" - if u.endianness == LittleEndian { - e = "L" - } - switch u.bomPolicy { - case ExpectBOM: - b = "Expect" - case UseBOM: - b = "Use" - case IgnoreBOM: - b = "Ignore" - } - return "UTF-16" + e + "E (" + b + " BOM)" -} - -type utf16Decoder struct { - initial config - current config -} - -func (u *utf16Decoder) Reset() { - u.current = u.initial -} - -func (u *utf16Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(src) == 0 { - if atEOF && u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - return 0, 0, nil - } - if u.current.bomPolicy&acceptBOM != 0 { - if len(src) < 2 { - return 0, 0, transform.ErrShortSrc - } - switch { - case src[0] == 0xfe && src[1] == 0xff: - u.current.endianness = BigEndian - nSrc = 2 - case src[0] == 0xff && src[1] == 0xfe: - u.current.endianness = LittleEndian - nSrc = 2 - default: - if u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - } - u.current.bomPolicy = IgnoreBOM - } - - var r rune - var dSize, sSize int - for nSrc < len(src) { - if nSrc+1 < len(src) { - x := uint16(src[nSrc+0])<<8 | uint16(src[nSrc+1]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - r, sSize = rune(x), 2 - if utf16.IsSurrogate(r) { - if nSrc+3 < len(src) { - x = uint16(src[nSrc+2])<<8 | uint16(src[nSrc+3]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - // Save for next iteration if it is not a high surrogate. - if isHighSurrogate(rune(x)) { - r, sSize = utf16.DecodeRune(r, rune(x)), 4 - } - } else if !atEOF { - err = transform.ErrShortSrc - break - } - } - if dSize = utf8.RuneLen(r); dSize < 0 { - r, dSize = utf8.RuneError, 3 - } - } else if atEOF { - // Single trailing byte. - r, dSize, sSize = utf8.RuneError, 3, 1 - } else { - err = transform.ErrShortSrc - break - } - if nDst+dSize > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - nSrc += sSize - } - return nDst, nSrc, err -} - -func isHighSurrogate(r rune) bool { - return 0xDC00 <= r && r <= 0xDFFF -} - -type utf16Encoder struct { - endianness Endianness - initialBOMPolicy BOMPolicy - currentBOMPolicy BOMPolicy -} - -func (u *utf16Encoder) Reset() { - u.currentBOMPolicy = u.initialBOMPolicy -} - -func (u *utf16Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if u.currentBOMPolicy&writeBOM != 0 { - if len(dst) < 2 { - return 0, 0, transform.ErrShortDst - } - dst[0], dst[1] = 0xfe, 0xff - u.currentBOMPolicy = IgnoreBOM - nDst = 2 - } - - r, size := rune(0), 0 - for nSrc < len(src) { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r <= 0xffff { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - } else { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - r1, r2 := utf16.EncodeRune(r) - dst[nDst+0] = uint8(r1 >> 8) - dst[nDst+1] = uint8(r1) - dst[nDst+2] = uint8(r2 >> 8) - dst[nDst+3] = uint8(r2) - nDst += 4 - } - nSrc += size - } - - if u.endianness == LittleEndian { - for i := 0; i < nDst; i += 2 { - dst[i], dst[i+1] = dst[i+1], dst[i] - } - } - return nDst, nSrc, err -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go deleted file mode 100644 index 575cea87..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go +++ /dev/null @@ -1,87 +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 utf8internal contains low-level utf8-related constants, tables, etc. -// that are used internally by the text package. -package utf8internal - -// The default lowest and highest continuation byte. -const ( - LoCB = 0x80 // 1000 0000 - HiCB = 0xBF // 1011 1111 -) - -// Constants related to getting information of first bytes of UTF-8 sequences. -const ( - // ASCII identifies a UTF-8 byte as ASCII. - ASCII = as - - // FirstInvalid indicates a byte is invalid as a first byte of a UTF-8 - // sequence. - FirstInvalid = xx - - // SizeMask is a mask for the size bits. Use use x&SizeMask to get the size. - SizeMask = 7 - - // AcceptShift is the right-shift count for the first byte info byte to get - // the index into the AcceptRanges table. See AcceptRanges. - AcceptShift = 4 - - // The 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 -) - -// 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 -} - -// AcceptRange gives the range of valid values for the second byte in a UTF-8 -// sequence for any value for First that is not ASCII or FirstInvalid. -type AcceptRange struct { - Lo uint8 // lowest value for second byte. - Hi uint8 // highest value for second byte. -} - -// AcceptRanges is a slice of AcceptRange values. For a given byte sequence b -// -// AcceptRanges[First[b[0]]>>AcceptShift] -// -// will give the value of AcceptRange for the multi-byte UTF-8 sequence starting -// at b[0]. -var AcceptRanges = [...]AcceptRange{ - 0: {LoCB, HiCB}, - 1: {0xA0, HiCB}, - 2: {LoCB, 0x9F}, - 3: {0x90, HiCB}, - 4: {LoCB, 0x8F}, -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/text/runes/cond.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/runes/cond.go deleted file mode 100644 index df7aa02d..00000000 --- a/vendor/github.com/elastic/beats/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/vendor/github.com/elastic/beats/vendor/golang.org/x/text/runes/runes.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/text/runes/runes.go deleted file mode 100644 index 71933696..00000000 --- a/vendor/github.com/elastic/beats/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) }) -} - -// In 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/vendor/github.com/elastic/beats/vendor/golang.org/x/time/LICENSE b/vendor/github.com/elastic/beats/vendor/golang.org/x/time/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/time/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/vendor/github.com/elastic/beats/vendor/golang.org/x/time/PATENTS b/vendor/github.com/elastic/beats/vendor/golang.org/x/time/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/time/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/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate.go deleted file mode 100644 index eabcd114..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate.go +++ /dev/null @@ -1,380 +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 rate provides a rate limiter. -package rate - -import ( - "fmt" - "math" - "sync" - "time" -) - -// Limit defines the maximum frequency of some events. -// Limit is represented as number of events per second. -// A zero Limit allows no events. -type Limit float64 - -// Inf is the infinite rate limit; it allows all events (even if burst is zero). -const Inf = Limit(math.MaxFloat64) - -// Every converts a minimum time interval between events to a Limit. -func Every(interval time.Duration) Limit { - if interval <= 0 { - return Inf - } - return 1 / Limit(interval.Seconds()) -} - -// A Limiter controls how frequently events are allowed to happen. -// It implements a "token bucket" of size b, initially full and refilled -// at rate r tokens per second. -// Informally, in any large enough time interval, the Limiter limits the -// rate to r tokens per second, with a maximum burst size of b events. -// As a special case, if r == Inf (the infinite rate), b is ignored. -// See https://en.wikipedia.org/wiki/Token_bucket for more about token buckets. -// -// The zero value is a valid Limiter, but it will reject all events. -// Use NewLimiter to create non-zero Limiters. -// -// Limiter has three main methods, Allow, Reserve, and Wait. -// Most callers should use Wait. -// -// Each of the three methods consumes a single token. -// They differ in their behavior when no token is available. -// If no token is available, Allow returns false. -// If no token is available, Reserve returns a reservation for a future token -// and the amount of time the caller must wait before using it. -// If no token is available, Wait blocks until one can be obtained -// or its associated context.Context is canceled. -// -// The methods AllowN, ReserveN, and WaitN consume n tokens. -type Limiter struct { - limit Limit - burst int - - mu sync.Mutex - tokens float64 - // last is the last time the limiter's tokens field was updated - last time.Time - // lastEvent is the latest time of a rate-limited event (past or future) - lastEvent time.Time -} - -// Limit returns the maximum overall event rate. -func (lim *Limiter) Limit() Limit { - lim.mu.Lock() - defer lim.mu.Unlock() - return lim.limit -} - -// Burst returns the maximum burst size. Burst is the maximum number of tokens -// that can be consumed in a single call to Allow, Reserve, or Wait, so higher -// Burst values allow more events to happen at once. -// A zero Burst allows no events, unless limit == Inf. -func (lim *Limiter) Burst() int { - return lim.burst -} - -// NewLimiter returns a new Limiter that allows events up to rate r and permits -// bursts of at most b tokens. -func NewLimiter(r Limit, b int) *Limiter { - return &Limiter{ - limit: r, - burst: b, - } -} - -// Allow is shorthand for AllowN(time.Now(), 1). -func (lim *Limiter) Allow() bool { - return lim.AllowN(time.Now(), 1) -} - -// AllowN reports whether n events may happen at time now. -// Use this method if you intend to drop / skip events that exceed the rate limit. -// Otherwise use Reserve or Wait. -func (lim *Limiter) AllowN(now time.Time, n int) bool { - return lim.reserveN(now, n, 0).ok -} - -// A Reservation holds information about events that are permitted by a Limiter to happen after a delay. -// A Reservation may be canceled, which may enable the Limiter to permit additional events. -type Reservation struct { - ok bool - lim *Limiter - tokens int - timeToAct time.Time - // This is the Limit at reservation time, it can change later. - limit Limit -} - -// OK returns whether the limiter can provide the requested number of tokens -// within the maximum wait time. If OK is false, Delay returns InfDuration, and -// Cancel does nothing. -func (r *Reservation) OK() bool { - return r.ok -} - -// Delay is shorthand for DelayFrom(time.Now()). -func (r *Reservation) Delay() time.Duration { - return r.DelayFrom(time.Now()) -} - -// InfDuration is the duration returned by Delay when a Reservation is not OK. -const InfDuration = time.Duration(1<<63 - 1) - -// DelayFrom returns the duration for which the reservation holder must wait -// before taking the reserved action. Zero duration means act immediately. -// InfDuration means the limiter cannot grant the tokens requested in this -// Reservation within the maximum wait time. -func (r *Reservation) DelayFrom(now time.Time) time.Duration { - if !r.ok { - return InfDuration - } - delay := r.timeToAct.Sub(now) - if delay < 0 { - return 0 - } - return delay -} - -// Cancel is shorthand for CancelAt(time.Now()). -func (r *Reservation) Cancel() { - r.CancelAt(time.Now()) - return -} - -// CancelAt indicates that the reservation holder will not perform the reserved action -// and reverses the effects of this Reservation on the rate limit as much as possible, -// considering that other reservations may have already been made. -func (r *Reservation) CancelAt(now time.Time) { - if !r.ok { - return - } - - r.lim.mu.Lock() - defer r.lim.mu.Unlock() - - if r.lim.limit == Inf || r.tokens == 0 || r.timeToAct.Before(now) { - return - } - - // calculate tokens to restore - // The duration between lim.lastEvent and r.timeToAct tells us how many tokens were reserved - // after r was obtained. These tokens should not be restored. - restoreTokens := float64(r.tokens) - r.limit.tokensFromDuration(r.lim.lastEvent.Sub(r.timeToAct)) - if restoreTokens <= 0 { - return - } - // advance time to now - now, _, tokens := r.lim.advance(now) - // calculate new number of tokens - tokens += restoreTokens - if burst := float64(r.lim.burst); tokens > burst { - tokens = burst - } - // update state - r.lim.last = now - r.lim.tokens = tokens - if r.timeToAct == r.lim.lastEvent { - prevEvent := r.timeToAct.Add(r.limit.durationFromTokens(float64(-r.tokens))) - if !prevEvent.Before(now) { - r.lim.lastEvent = prevEvent - } - } - - return -} - -// Reserve is shorthand for ReserveN(time.Now(), 1). -func (lim *Limiter) Reserve() *Reservation { - return lim.ReserveN(time.Now(), 1) -} - -// ReserveN returns a Reservation that indicates how long the caller must wait before n events happen. -// The Limiter takes this Reservation into account when allowing future events. -// ReserveN returns false if n exceeds the Limiter's burst size. -// Usage example: -// r := lim.ReserveN(time.Now(), 1) -// if !r.OK() { -// // Not allowed to act! Did you remember to set lim.burst to be > 0 ? -// return -// } -// time.Sleep(r.Delay()) -// Act() -// Use this method if you wish to wait and slow down in accordance with the rate limit without dropping events. -// If you need to respect a deadline or cancel the delay, use Wait instead. -// To drop or skip events exceeding rate limit, use Allow instead. -func (lim *Limiter) ReserveN(now time.Time, n int) *Reservation { - r := lim.reserveN(now, n, InfDuration) - return &r -} - -// contextContext is a temporary(?) copy of the context.Context type -// to support both Go 1.6 using golang.org/x/net/context and Go 1.7+ -// with the built-in context package. If people ever stop using Go 1.6 -// we can remove this. -type contextContext interface { - Deadline() (deadline time.Time, ok bool) - Done() <-chan struct{} - Err() error - Value(key interface{}) interface{} -} - -// Wait is shorthand for WaitN(ctx, 1). -func (lim *Limiter) wait(ctx contextContext) (err error) { - return lim.WaitN(ctx, 1) -} - -// WaitN blocks until lim permits n events to happen. -// It returns an error if n exceeds the Limiter's burst size, the Context is -// canceled, or the expected wait time exceeds the Context's Deadline. -// The burst limit is ignored if the rate limit is Inf. -func (lim *Limiter) waitN(ctx contextContext, n int) (err error) { - if n > lim.burst && lim.limit != Inf { - return fmt.Errorf("rate: Wait(n=%d) exceeds limiter's burst %d", n, lim.burst) - } - // Check if ctx is already cancelled - select { - case <-ctx.Done(): - return ctx.Err() - default: - } - // Determine wait limit - now := time.Now() - waitLimit := InfDuration - if deadline, ok := ctx.Deadline(); ok { - waitLimit = deadline.Sub(now) - } - // Reserve - r := lim.reserveN(now, n, waitLimit) - if !r.ok { - return fmt.Errorf("rate: Wait(n=%d) would exceed context deadline", n) - } - // Wait - t := time.NewTimer(r.DelayFrom(now)) - defer t.Stop() - select { - case <-t.C: - // We can proceed. - return nil - case <-ctx.Done(): - // Context was canceled before we could proceed. Cancel the - // reservation, which may permit other events to proceed sooner. - r.Cancel() - return ctx.Err() - } -} - -// SetLimit is shorthand for SetLimitAt(time.Now(), newLimit). -func (lim *Limiter) SetLimit(newLimit Limit) { - lim.SetLimitAt(time.Now(), newLimit) -} - -// SetLimitAt sets a new Limit for the limiter. The new Limit, and Burst, may be violated -// or underutilized by those which reserved (using Reserve or Wait) but did not yet act -// before SetLimitAt was called. -func (lim *Limiter) SetLimitAt(now time.Time, newLimit Limit) { - lim.mu.Lock() - defer lim.mu.Unlock() - - now, _, tokens := lim.advance(now) - - lim.last = now - lim.tokens = tokens - lim.limit = newLimit -} - -// reserveN is a helper method for AllowN, ReserveN, and WaitN. -// maxFutureReserve specifies the maximum reservation wait duration allowed. -// reserveN returns Reservation, not *Reservation, to avoid allocation in AllowN and WaitN. -func (lim *Limiter) reserveN(now time.Time, n int, maxFutureReserve time.Duration) Reservation { - lim.mu.Lock() - - if lim.limit == Inf { - lim.mu.Unlock() - return Reservation{ - ok: true, - lim: lim, - tokens: n, - timeToAct: now, - } - } - - now, last, tokens := lim.advance(now) - - // Calculate the remaining number of tokens resulting from the request. - tokens -= float64(n) - - // Calculate the wait duration - var waitDuration time.Duration - if tokens < 0 { - waitDuration = lim.limit.durationFromTokens(-tokens) - } - - // Decide result - ok := n <= lim.burst && waitDuration <= maxFutureReserve - - // Prepare reservation - r := Reservation{ - ok: ok, - lim: lim, - limit: lim.limit, - } - if ok { - r.tokens = n - r.timeToAct = now.Add(waitDuration) - } - - // Update state - if ok { - lim.last = now - lim.tokens = tokens - lim.lastEvent = r.timeToAct - } else { - lim.last = last - } - - lim.mu.Unlock() - return r -} - -// advance calculates and returns an updated state for lim resulting from the passage of time. -// lim is not changed. -func (lim *Limiter) advance(now time.Time) (newNow time.Time, newLast time.Time, newTokens float64) { - last := lim.last - if now.Before(last) { - last = now - } - - // Avoid making delta overflow below when last is very old. - maxElapsed := lim.limit.durationFromTokens(float64(lim.burst) - lim.tokens) - elapsed := now.Sub(last) - if elapsed > maxElapsed { - elapsed = maxElapsed - } - - // Calculate the new number of tokens, due to time that passed. - delta := lim.limit.tokensFromDuration(elapsed) - tokens := lim.tokens + delta - if burst := float64(lim.burst); tokens > burst { - tokens = burst - } - - return now, last, tokens -} - -// durationFromTokens is a unit conversion function from the number of tokens to the duration -// of time it takes to accumulate them at a rate of limit tokens per second. -func (limit Limit) durationFromTokens(tokens float64) time.Duration { - seconds := tokens / float64(limit) - return time.Nanosecond * time.Duration(1e9*seconds) -} - -// tokensFromDuration is a unit conversion function from a time duration to the number of tokens -// which could be accumulated during that duration at a rate of limit tokens per second. -func (limit Limit) tokensFromDuration(d time.Duration) float64 { - return d.Seconds() * float64(limit) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate_go16.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate_go16.go deleted file mode 100644 index 6bab1850..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate_go16.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. - -// +build !go1.7 - -package rate - -import "golang.org/x/net/context" - -// Wait is shorthand for WaitN(ctx, 1). -func (lim *Limiter) Wait(ctx context.Context) (err error) { - return lim.waitN(ctx, 1) -} - -// WaitN blocks until lim permits n events to happen. -// It returns an error if n exceeds the Limiter's burst size, the Context is -// canceled, or the expected wait time exceeds the Context's Deadline. -func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) { - return lim.waitN(ctx, n) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate_go17.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate_go17.go deleted file mode 100644 index f90d85f5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/time/rate/rate_go17.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. - -// +build go1.7 - -package rate - -import "context" - -// Wait is shorthand for WaitN(ctx, 1). -func (lim *Limiter) Wait(ctx context.Context) (err error) { - return lim.waitN(ctx, 1) -} - -// WaitN blocks until lim permits n events to happen. -// It returns an error if n exceeds the Limiter's burst size, the Context is -// canceled, or the expected wait time exceeds the Context's Deadline. -func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) { - return lim.waitN(ctx, n) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/LICENSE b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/LICENSE deleted file mode 100644 index 6a66aea5..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/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/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/PATENTS b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/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/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go deleted file mode 100644 index 6b7052b8..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/enclosing.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. - -package astutil - -// This file defines utilities for working with source positions. - -import ( - "fmt" - "go/ast" - "go/token" - "sort" -) - -// PathEnclosingInterval returns the node that encloses the source -// interval [start, end), and all its ancestors up to the AST root. -// -// The definition of "enclosing" used by this function considers -// additional whitespace abutting a node to be enclosed by it. -// In this example: -// -// z := x + y // add them -// <-A-> -// <----B-----> -// -// the ast.BinaryExpr(+) node is considered to enclose interval B -// even though its [Pos()..End()) is actually only interval A. -// This behaviour makes user interfaces more tolerant of imperfect -// input. -// -// This function treats tokens as nodes, though they are not included -// in the result. e.g. PathEnclosingInterval("+") returns the -// enclosing ast.BinaryExpr("x + y"). -// -// If start==end, the 1-char interval following start is used instead. -// -// The 'exact' result is true if the interval contains only path[0] -// and perhaps some adjacent whitespace. It is false if the interval -// overlaps multiple children of path[0], or if it contains only -// interior whitespace of path[0]. -// In this example: -// -// z := x + y // add them -// <--C--> <---E--> -// ^ -// D -// -// intervals C, D and E are inexact. C is contained by the -// z-assignment statement, because it spans three of its children (:=, -// x, +). So too is the 1-char interval D, because it contains only -// interior whitespace of the assignment. E is considered interior -// whitespace of the BlockStmt containing the assignment. -// -// Precondition: [start, end) both lie within the same file as root. -// TODO(adonovan): return (nil, false) in this case and remove precond. -// Requires FileSet; see loader.tokenFileContainsPos. -// -// Postcondition: path is never nil; it always contains at least 'root'. -// -func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) { - // fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging - - // Precondition: node.[Pos..End) and adjoining whitespace contain [start, end). - var visit func(node ast.Node) bool - visit = func(node ast.Node) bool { - path = append(path, node) - - nodePos := node.Pos() - nodeEnd := node.End() - - // fmt.Printf("visit(%T, %d, %d)\n", node, nodePos, nodeEnd) // debugging - - // Intersect [start, end) with interval of node. - if start < nodePos { - start = nodePos - } - if end > nodeEnd { - end = nodeEnd - } - - // Find sole child that contains [start, end). - children := childrenOf(node) - l := len(children) - for i, child := range children { - // [childPos, childEnd) is unaugmented interval of child. - childPos := child.Pos() - childEnd := child.End() - - // [augPos, augEnd) is whitespace-augmented interval of child. - augPos := childPos - augEnd := childEnd - if i > 0 { - augPos = children[i-1].End() // start of preceding whitespace - } - if i < l-1 { - nextChildPos := children[i+1].Pos() - // Does [start, end) lie between child and next child? - if start >= augEnd && end <= nextChildPos { - return false // inexact match - } - augEnd = nextChildPos // end of following whitespace - } - - // fmt.Printf("\tchild %d: [%d..%d)\tcontains interval [%d..%d)?\n", - // i, augPos, augEnd, start, end) // debugging - - // Does augmented child strictly contain [start, end)? - if augPos <= start && end <= augEnd { - _, isToken := child.(tokenNode) - return isToken || visit(child) - } - - // Does [start, end) overlap multiple children? - // i.e. left-augmented child contains start - // but LR-augmented child does not contain end. - if start < childEnd && end > augEnd { - break - } - } - - // No single child contained [start, end), - // so node is the result. Is it exact? - - // (It's tempting to put this condition before the - // child loop, but it gives the wrong result in the - // case where a node (e.g. ExprStmt) and its sole - // child have equal intervals.) - if start == nodePos && end == nodeEnd { - return true // exact match - } - - return false // inexact: overlaps multiple children - } - - if start > end { - start, end = end, start - } - - if start < root.End() && end > root.Pos() { - if start == end { - end = start + 1 // empty interval => interval of size 1 - } - exact = visit(root) - - // Reverse the path: - for i, l := 0, len(path); i < l/2; i++ { - path[i], path[l-1-i] = path[l-1-i], path[i] - } - } else { - // Selection lies within whitespace preceding the - // first (or following the last) declaration in the file. - // The result nonetheless always includes the ast.File. - path = append(path, root) - } - - return -} - -// tokenNode is a dummy implementation of ast.Node for a single token. -// They are used transiently by PathEnclosingInterval but never escape -// this package. -// -type tokenNode struct { - pos token.Pos - end token.Pos -} - -func (n tokenNode) Pos() token.Pos { - return n.pos -} - -func (n tokenNode) End() token.Pos { - return n.end -} - -func tok(pos token.Pos, len int) ast.Node { - return tokenNode{pos, pos + token.Pos(len)} -} - -// childrenOf returns the direct non-nil children of ast.Node n. -// It may include fake ast.Node implementations for bare tokens. -// it is not safe to call (e.g.) ast.Walk on such nodes. -// -func childrenOf(n ast.Node) []ast.Node { - var children []ast.Node - - // First add nodes for all true subtrees. - ast.Inspect(n, func(node ast.Node) bool { - if node == n { // push n - return true // recur - } - if node != nil { // push child - children = append(children, node) - } - return false // no recursion - }) - - // Then add fake Nodes for bare tokens. - switch n := n.(type) { - case *ast.ArrayType: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Elt.End(), len("]"))) - - case *ast.AssignStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.BasicLit: - children = append(children, - tok(n.ValuePos, len(n.Value))) - - case *ast.BinaryExpr: - children = append(children, tok(n.OpPos, len(n.Op.String()))) - - case *ast.BlockStmt: - children = append(children, - tok(n.Lbrace, len("{")), - tok(n.Rbrace, len("}"))) - - case *ast.BranchStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.CallExpr: - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - if n.Ellipsis != 0 { - children = append(children, tok(n.Ellipsis, len("..."))) - } - - case *ast.CaseClause: - if n.List == nil { - children = append(children, - tok(n.Case, len("default"))) - } else { - children = append(children, - tok(n.Case, len("case"))) - } - children = append(children, tok(n.Colon, len(":"))) - - case *ast.ChanType: - switch n.Dir { - case ast.RECV: - children = append(children, tok(n.Begin, len("<-chan"))) - case ast.SEND: - children = append(children, tok(n.Begin, len("chan<-"))) - case ast.RECV | ast.SEND: - children = append(children, tok(n.Begin, len("chan"))) - } - - case *ast.CommClause: - if n.Comm == nil { - children = append(children, - tok(n.Case, len("default"))) - } else { - children = append(children, - tok(n.Case, len("case"))) - } - children = append(children, tok(n.Colon, len(":"))) - - case *ast.Comment: - // nop - - case *ast.CommentGroup: - // nop - - case *ast.CompositeLit: - children = append(children, - tok(n.Lbrace, len("{")), - tok(n.Rbrace, len("{"))) - - case *ast.DeclStmt: - // nop - - case *ast.DeferStmt: - children = append(children, - tok(n.Defer, len("defer"))) - - case *ast.Ellipsis: - children = append(children, - tok(n.Ellipsis, len("..."))) - - case *ast.EmptyStmt: - // nop - - case *ast.ExprStmt: - // nop - - case *ast.Field: - // TODO(adonovan): Field.{Doc,Comment,Tag}? - - case *ast.FieldList: - children = append(children, - tok(n.Opening, len("(")), - tok(n.Closing, len(")"))) - - case *ast.File: - // TODO test: Doc - children = append(children, - tok(n.Package, len("package"))) - - case *ast.ForStmt: - children = append(children, - tok(n.For, len("for"))) - - case *ast.FuncDecl: - // TODO(adonovan): FuncDecl.Comment? - - // Uniquely, FuncDecl breaks the invariant that - // preorder traversal yields tokens in lexical order: - // in fact, FuncDecl.Recv precedes FuncDecl.Type.Func. - // - // As a workaround, we inline the case for FuncType - // here and order things correctly. - // - children = nil // discard ast.Walk(FuncDecl) info subtrees - children = append(children, tok(n.Type.Func, len("func"))) - if n.Recv != nil { - children = append(children, n.Recv) - } - children = append(children, n.Name) - if n.Type.Params != nil { - children = append(children, n.Type.Params) - } - if n.Type.Results != nil { - children = append(children, n.Type.Results) - } - if n.Body != nil { - children = append(children, n.Body) - } - - case *ast.FuncLit: - // nop - - case *ast.FuncType: - if n.Func != 0 { - children = append(children, - tok(n.Func, len("func"))) - } - - case *ast.GenDecl: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - if n.Lparen != 0 { - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - } - - case *ast.GoStmt: - children = append(children, - tok(n.Go, len("go"))) - - case *ast.Ident: - children = append(children, - tok(n.NamePos, len(n.Name))) - - case *ast.IfStmt: - children = append(children, - tok(n.If, len("if"))) - - case *ast.ImportSpec: - // TODO(adonovan): ImportSpec.{Doc,EndPos}? - - case *ast.IncDecStmt: - children = append(children, - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.IndexExpr: - children = append(children, - tok(n.Lbrack, len("{")), - tok(n.Rbrack, len("}"))) - - case *ast.InterfaceType: - children = append(children, - tok(n.Interface, len("interface"))) - - case *ast.KeyValueExpr: - children = append(children, - tok(n.Colon, len(":"))) - - case *ast.LabeledStmt: - children = append(children, - tok(n.Colon, len(":"))) - - case *ast.MapType: - children = append(children, - tok(n.Map, len("map"))) - - case *ast.ParenExpr: - children = append(children, - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - - case *ast.RangeStmt: - children = append(children, - tok(n.For, len("for")), - tok(n.TokPos, len(n.Tok.String()))) - - case *ast.ReturnStmt: - children = append(children, - tok(n.Return, len("return"))) - - case *ast.SelectStmt: - children = append(children, - tok(n.Select, len("select"))) - - case *ast.SelectorExpr: - // nop - - case *ast.SendStmt: - children = append(children, - tok(n.Arrow, len("<-"))) - - case *ast.SliceExpr: - children = append(children, - tok(n.Lbrack, len("[")), - tok(n.Rbrack, len("]"))) - - case *ast.StarExpr: - children = append(children, tok(n.Star, len("*"))) - - case *ast.StructType: - children = append(children, tok(n.Struct, len("struct"))) - - case *ast.SwitchStmt: - children = append(children, tok(n.Switch, len("switch"))) - - case *ast.TypeAssertExpr: - children = append(children, - tok(n.Lparen-1, len(".")), - tok(n.Lparen, len("(")), - tok(n.Rparen, len(")"))) - - case *ast.TypeSpec: - // TODO(adonovan): TypeSpec.{Doc,Comment}? - - case *ast.TypeSwitchStmt: - children = append(children, tok(n.Switch, len("switch"))) - - case *ast.UnaryExpr: - children = append(children, tok(n.OpPos, len(n.Op.String()))) - - case *ast.ValueSpec: - // TODO(adonovan): ValueSpec.{Doc,Comment}? - - case *ast.BadDecl, *ast.BadExpr, *ast.BadStmt: - // nop - } - - // TODO(adonovan): opt: merge the logic of ast.Inspect() into - // the switch above so we can make interleaved callbacks for - // both Nodes and Tokens in the right order and avoid the need - // to sort. - sort.Sort(byPos(children)) - - return children -} - -type byPos []ast.Node - -func (sl byPos) Len() int { - return len(sl) -} -func (sl byPos) Less(i, j int) bool { - return sl[i].Pos() < sl[j].Pos() -} -func (sl byPos) Swap(i, j int) { - sl[i], sl[j] = sl[j], sl[i] -} - -// NodeDescription returns a description of the concrete type of n suitable -// for a user interface. -// -// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident, -// StarExpr) we could be much more specific given the path to the AST -// root. Perhaps we should do that. -// -func NodeDescription(n ast.Node) string { - switch n := n.(type) { - case *ast.ArrayType: - return "array type" - case *ast.AssignStmt: - return "assignment" - case *ast.BadDecl: - return "bad declaration" - case *ast.BadExpr: - return "bad expression" - case *ast.BadStmt: - return "bad statement" - case *ast.BasicLit: - return "basic literal" - case *ast.BinaryExpr: - return fmt.Sprintf("binary %s operation", n.Op) - case *ast.BlockStmt: - return "block" - case *ast.BranchStmt: - switch n.Tok { - case token.BREAK: - return "break statement" - case token.CONTINUE: - return "continue statement" - case token.GOTO: - return "goto statement" - case token.FALLTHROUGH: - return "fall-through statement" - } - case *ast.CallExpr: - if len(n.Args) == 1 && !n.Ellipsis.IsValid() { - return "function call (or conversion)" - } - return "function call" - case *ast.CaseClause: - return "case clause" - case *ast.ChanType: - return "channel type" - case *ast.CommClause: - return "communication clause" - case *ast.Comment: - return "comment" - case *ast.CommentGroup: - return "comment group" - case *ast.CompositeLit: - return "composite literal" - case *ast.DeclStmt: - return NodeDescription(n.Decl) + " statement" - case *ast.DeferStmt: - return "defer statement" - case *ast.Ellipsis: - return "ellipsis" - case *ast.EmptyStmt: - return "empty statement" - case *ast.ExprStmt: - return "expression statement" - case *ast.Field: - // Can be any of these: - // struct {x, y int} -- struct field(s) - // struct {T} -- anon struct field - // interface {I} -- interface embedding - // interface {f()} -- interface method - // func (A) func(B) C -- receiver, param(s), result(s) - return "field/method/parameter" - case *ast.FieldList: - return "field/method/parameter list" - case *ast.File: - return "source file" - case *ast.ForStmt: - return "for loop" - case *ast.FuncDecl: - return "function declaration" - case *ast.FuncLit: - return "function literal" - case *ast.FuncType: - return "function type" - case *ast.GenDecl: - switch n.Tok { - case token.IMPORT: - return "import declaration" - case token.CONST: - return "constant declaration" - case token.TYPE: - return "type declaration" - case token.VAR: - return "variable declaration" - } - case *ast.GoStmt: - return "go statement" - case *ast.Ident: - return "identifier" - case *ast.IfStmt: - return "if statement" - case *ast.ImportSpec: - return "import specification" - case *ast.IncDecStmt: - if n.Tok == token.INC { - return "increment statement" - } - return "decrement statement" - case *ast.IndexExpr: - return "index expression" - case *ast.InterfaceType: - return "interface type" - case *ast.KeyValueExpr: - return "key/value association" - case *ast.LabeledStmt: - return "statement label" - case *ast.MapType: - return "map type" - case *ast.Package: - return "package" - case *ast.ParenExpr: - return "parenthesized " + NodeDescription(n.X) - case *ast.RangeStmt: - return "range loop" - case *ast.ReturnStmt: - return "return statement" - case *ast.SelectStmt: - return "select statement" - case *ast.SelectorExpr: - return "selector" - case *ast.SendStmt: - return "channel send" - case *ast.SliceExpr: - return "slice expression" - case *ast.StarExpr: - return "*-operation" // load/store expr or pointer type - case *ast.StructType: - return "struct type" - case *ast.SwitchStmt: - return "switch statement" - case *ast.TypeAssertExpr: - return "type assertion" - case *ast.TypeSpec: - return "type specification" - case *ast.TypeSwitchStmt: - return "type switch" - case *ast.UnaryExpr: - return fmt.Sprintf("unary %s operation", n.Op) - case *ast.ValueSpec: - return "value specification" - - } - panic(fmt.Sprintf("unexpected node type: %T", n)) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/imports.go deleted file mode 100644 index 4a77c782..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ /dev/null @@ -1,450 +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 astutil contains common utilities for working with the Go AST. -package astutil // import "golang.org/x/tools/go/ast/astutil" - -import ( - "fmt" - "go/ast" - "go/token" - "strconv" - "strings" -) - -// AddImport adds the import path to the file f, if absent. -func AddImport(fset *token.FileSet, f *ast.File, ipath string) (added bool) { - return AddNamedImport(fset, f, "", ipath) -} - -// AddNamedImport adds the import path to the file f, if absent. -// If name is not empty, it is used to rename the import. -// -// For example, calling -// AddNamedImport(fset, f, "pathpkg", "path") -// adds -// import pathpkg "path" -func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added bool) { - if imports(f, ipath) { - return false - } - - newImport := &ast.ImportSpec{ - Path: &ast.BasicLit{ - Kind: token.STRING, - Value: strconv.Quote(ipath), - }, - } - if name != "" { - newImport.Name = &ast.Ident{Name: name} - } - - // Find an import decl to add to. - // The goal is to find an existing import - // whose import path has the longest shared - // prefix with ipath. - var ( - bestMatch = -1 // length of longest shared prefix - lastImport = -1 // index in f.Decls of the file's final import decl - impDecl *ast.GenDecl // import decl containing the best match - impIndex = -1 // spec index in impDecl containing the best match - ) - for i, decl := range f.Decls { - gen, ok := decl.(*ast.GenDecl) - if ok && gen.Tok == token.IMPORT { - lastImport = i - // Do not add to import "C", to avoid disrupting the - // association with its doc comment, breaking cgo. - if declImports(gen, "C") { - continue - } - - // Match an empty import decl if that's all that is available. - if len(gen.Specs) == 0 && bestMatch == -1 { - impDecl = gen - } - - // Compute longest shared prefix with imports in this group. - for j, spec := range gen.Specs { - impspec := spec.(*ast.ImportSpec) - n := matchLen(importPath(impspec), ipath) - if n > bestMatch { - bestMatch = n - impDecl = gen - impIndex = j - } - } - } - } - - // If no import decl found, add one after the last import. - if impDecl == nil { - impDecl = &ast.GenDecl{ - Tok: token.IMPORT, - } - if lastImport >= 0 { - impDecl.TokPos = f.Decls[lastImport].End() - } else { - // There are no existing imports. - // Our new import goes after the package declaration and after - // the comment, if any, that starts on the same line as the - // package declaration. - impDecl.TokPos = f.Package - - file := fset.File(f.Package) - pkgLine := file.Line(f.Package) - for _, c := range f.Comments { - if file.Line(c.Pos()) > pkgLine { - break - } - impDecl.TokPos = c.End() - } - } - f.Decls = append(f.Decls, nil) - copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:]) - f.Decls[lastImport+1] = impDecl - } - - // Insert new import at insertAt. - insertAt := 0 - if impIndex >= 0 { - // insert after the found import - insertAt = impIndex + 1 - } - impDecl.Specs = append(impDecl.Specs, nil) - copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:]) - impDecl.Specs[insertAt] = newImport - pos := impDecl.Pos() - if insertAt > 0 { - // If there is a comment after an existing import, preserve the comment - // position by adding the new import after the comment. - if spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil { - pos = spec.Comment.End() - } else { - // Assign same position as the previous import, - // so that the sorter sees it as being in the same block. - pos = impDecl.Specs[insertAt-1].Pos() - } - } - if newImport.Name != nil { - newImport.Name.NamePos = pos - } - newImport.Path.ValuePos = pos - newImport.EndPos = pos - - // Clean up parens. impDecl contains at least one spec. - if len(impDecl.Specs) == 1 { - // Remove unneeded parens. - impDecl.Lparen = token.NoPos - } else if !impDecl.Lparen.IsValid() { - // impDecl needs parens added. - impDecl.Lparen = impDecl.Specs[0].Pos() - } - - f.Imports = append(f.Imports, newImport) - - if len(f.Decls) <= 1 { - return true - } - - // Merge all the import declarations into the first one. - var first *ast.GenDecl - for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) - if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") { - continue - } - if first == nil { - first = gen - continue // Don't touch the first one. - } - // We now know there is more than one package in this import - // declaration. Ensure that it ends up parenthesized. - first.Lparen = first.Pos() - // Move the imports of the other import declaration to the first one. - for _, spec := range gen.Specs { - spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() - first.Specs = append(first.Specs, spec) - } - f.Decls = append(f.Decls[:i], f.Decls[i+1:]...) - i-- - } - - return true -} - -// DeleteImport deletes the import path from the file f, if present. -func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) { - return DeleteNamedImport(fset, f, "", path) -} - -// DeleteNamedImport deletes the import with the given name and path from the file f, if present. -func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) { - var delspecs []*ast.ImportSpec - var delcomments []*ast.CommentGroup - - // Find the import nodes that import path, if any. - for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) - if !ok || gen.Tok != token.IMPORT { - continue - } - for j := 0; j < len(gen.Specs); j++ { - spec := gen.Specs[j] - impspec := spec.(*ast.ImportSpec) - if impspec.Name == nil && name != "" { - continue - } - if impspec.Name != nil && impspec.Name.Name != name { - continue - } - if importPath(impspec) != path { - continue - } - - // We found an import spec that imports path. - // Delete it. - delspecs = append(delspecs, impspec) - deleted = true - copy(gen.Specs[j:], gen.Specs[j+1:]) - gen.Specs = gen.Specs[:len(gen.Specs)-1] - - // If this was the last import spec in this decl, - // delete the decl, too. - if len(gen.Specs) == 0 { - copy(f.Decls[i:], f.Decls[i+1:]) - f.Decls = f.Decls[:len(f.Decls)-1] - i-- - break - } else if len(gen.Specs) == 1 { - if impspec.Doc != nil { - delcomments = append(delcomments, impspec.Doc) - } - if impspec.Comment != nil { - delcomments = append(delcomments, impspec.Comment) - } - for _, cg := range f.Comments { - // Found comment on the same line as the import spec. - if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line { - delcomments = append(delcomments, cg) - break - } - } - - spec := gen.Specs[0].(*ast.ImportSpec) - - // Move the documentation right after the import decl. - if spec.Doc != nil { - for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Doc.Pos()).Line { - fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line) - } - } - for _, cg := range f.Comments { - if cg.End() < spec.Pos() && fset.Position(cg.End()).Line == fset.Position(spec.Pos()).Line { - for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Pos()).Line { - fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line) - } - break - } - } - } - if j > 0 { - lastImpspec := gen.Specs[j-1].(*ast.ImportSpec) - lastLine := fset.Position(lastImpspec.Path.ValuePos).Line - line := fset.Position(impspec.Path.ValuePos).Line - - // We deleted an entry but now there may be - // a blank line-sized hole where the import was. - if line-lastLine > 1 { - // There was a blank line immediately preceding the deleted import, - // so there's no need to close the hole. - // Do nothing. - } else if line != fset.File(gen.Rparen).LineCount() { - // There was no blank line. Close the hole. - fset.File(gen.Rparen).MergeLine(line) - } - } - j-- - } - } - - // Delete imports from f.Imports. - for i := 0; i < len(f.Imports); i++ { - imp := f.Imports[i] - for j, del := range delspecs { - if imp == del { - copy(f.Imports[i:], f.Imports[i+1:]) - f.Imports = f.Imports[:len(f.Imports)-1] - copy(delspecs[j:], delspecs[j+1:]) - delspecs = delspecs[:len(delspecs)-1] - i-- - break - } - } - } - - // Delete comments from f.Comments. - for i := 0; i < len(f.Comments); i++ { - cg := f.Comments[i] - for j, del := range delcomments { - if cg == del { - copy(f.Comments[i:], f.Comments[i+1:]) - f.Comments = f.Comments[:len(f.Comments)-1] - copy(delcomments[j:], delcomments[j+1:]) - delcomments = delcomments[:len(delcomments)-1] - i-- - break - } - } - } - - if len(delspecs) > 0 { - panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) - } - - return -} - -// RewriteImport rewrites any import of path oldPath to path newPath. -func RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) { - for _, imp := range f.Imports { - if importPath(imp) == oldPath { - rewrote = true - // record old End, because the default is to compute - // it using the length of imp.Path.Value. - imp.EndPos = imp.End() - imp.Path.Value = strconv.Quote(newPath) - } - } - return -} - -// UsesImport reports whether a given import is used. -func UsesImport(f *ast.File, path string) (used bool) { - spec := importSpec(f, path) - if spec == nil { - return - } - - name := spec.Name.String() - switch name { - case "": - // If the package name is not explicitly specified, - // make an educated guess. This is not guaranteed to be correct. - lastSlash := strings.LastIndex(path, "/") - if lastSlash == -1 { - name = path - } else { - name = path[lastSlash+1:] - } - case "_", ".": - // Not sure if this import is used - err on the side of caution. - return true - } - - ast.Walk(visitFn(func(n ast.Node) { - sel, ok := n.(*ast.SelectorExpr) - if ok && isTopName(sel.X, name) { - used = true - } - }), f) - - return -} - -type visitFn func(node ast.Node) - -func (fn visitFn) Visit(node ast.Node) ast.Visitor { - fn(node) - return fn -} - -// imports returns true if f imports path. -func imports(f *ast.File, path string) bool { - return importSpec(f, path) != nil -} - -// importSpec returns the import spec if f imports path, -// or nil otherwise. -func importSpec(f *ast.File, path string) *ast.ImportSpec { - for _, s := range f.Imports { - if importPath(s) == path { - return s - } - } - return nil -} - -// importPath returns the unquoted import path of s, -// or "" if the path is not properly quoted. -func importPath(s *ast.ImportSpec) string { - t, err := strconv.Unquote(s.Path.Value) - if err == nil { - return t - } - return "" -} - -// declImports reports whether gen contains an import of path. -func declImports(gen *ast.GenDecl, path string) bool { - if gen.Tok != token.IMPORT { - return false - } - for _, spec := range gen.Specs { - impspec := spec.(*ast.ImportSpec) - if importPath(impspec) == path { - return true - } - } - return false -} - -// matchLen returns the length of the longest path segment prefix shared by x and y. -func matchLen(x, y string) int { - n := 0 - for i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ { - if x[i] == '/' { - n++ - } - } - return n -} - -// isTopName returns true if n is a top-level unresolved identifier with the given name. -func isTopName(n ast.Expr, name string) bool { - id, ok := n.(*ast.Ident) - return ok && id.Name == name && id.Obj == nil -} - -// Imports returns the file imports grouped by paragraph. -func Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec { - var groups [][]*ast.ImportSpec - - for _, decl := range f.Decls { - genDecl, ok := decl.(*ast.GenDecl) - if !ok || genDecl.Tok != token.IMPORT { - break - } - - group := []*ast.ImportSpec{} - - var lastLine int - for _, spec := range genDecl.Specs { - importSpec := spec.(*ast.ImportSpec) - pos := importSpec.Path.ValuePos - line := fset.Position(pos).Line - if lastLine > 0 && pos > 0 && line-lastLine > 1 { - groups = append(groups, group) - group = []*ast.ImportSpec{} - } - group = append(group, importSpec) - lastLine = line - } - groups = append(groups, group) - } - - return groups -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/util.go deleted file mode 100644 index 76306298..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/ast/astutil/util.go +++ /dev/null @@ -1,14 +0,0 @@ -package astutil - -import "go/ast" - -// Unparen returns e with any enclosing parentheses stripped. -func Unparen(e ast.Expr) ast.Expr { - for { - p, ok := e.(*ast.ParenExpr) - if !ok { - return e - } - e = p.X - } -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/allpackages.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/allpackages.go deleted file mode 100644 index c0cb03e7..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/allpackages.go +++ /dev/null @@ -1,198 +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 buildutil provides utilities related to the go/build -// package in the standard library. -// -// All I/O is done via the build.Context file system interface, which must -// be concurrency-safe. -package buildutil // import "golang.org/x/tools/go/buildutil" - -import ( - "go/build" - "os" - "path/filepath" - "sort" - "strings" - "sync" -) - -// AllPackages returns the package path of each Go package in any source -// directory of the specified build context (e.g. $GOROOT or an element -// of $GOPATH). Errors are ignored. The results are sorted. -// All package paths are canonical, and thus may contain "/vendor/". -// -// The result may include import paths for directories that contain no -// *.go files, such as "archive" (in $GOROOT/src). -// -// All I/O is done via the build.Context file system interface, -// which must be concurrency-safe. -// -func AllPackages(ctxt *build.Context) []string { - var list []string - ForEachPackage(ctxt, func(pkg string, _ error) { - list = append(list, pkg) - }) - sort.Strings(list) - return list -} - -// ForEachPackage calls the found function with the package path of -// each Go package it finds in any source directory of the specified -// build context (e.g. $GOROOT or an element of $GOPATH). -// All package paths are canonical, and thus may contain "/vendor/". -// -// If the package directory exists but could not be read, the second -// argument to the found function provides the error. -// -// All I/O is done via the build.Context file system interface, -// which must be concurrency-safe. -// -func ForEachPackage(ctxt *build.Context, found func(importPath string, err error)) { - ch := make(chan item) - - var wg sync.WaitGroup - for _, root := range ctxt.SrcDirs() { - root := root - wg.Add(1) - go func() { - allPackages(ctxt, root, ch) - wg.Done() - }() - } - go func() { - wg.Wait() - close(ch) - }() - - // All calls to found occur in the caller's goroutine. - for i := range ch { - found(i.importPath, i.err) - } -} - -type item struct { - importPath string - err error // (optional) -} - -// We use a process-wide counting semaphore to limit -// the number of parallel calls to ReadDir. -var ioLimit = make(chan bool, 20) - -func allPackages(ctxt *build.Context, root string, ch chan<- item) { - root = filepath.Clean(root) + string(os.PathSeparator) - - var wg sync.WaitGroup - - var walkDir func(dir string) - walkDir = func(dir string) { - // Avoid .foo, _foo, and testdata directory trees. - base := filepath.Base(dir) - if base == "" || base[0] == '.' || base[0] == '_' || base == "testdata" { - return - } - - pkg := filepath.ToSlash(strings.TrimPrefix(dir, root)) - - // Prune search if we encounter any of these import paths. - switch pkg { - case "builtin": - return - } - - ioLimit <- true - files, err := ReadDir(ctxt, dir) - <-ioLimit - if pkg != "" || err != nil { - ch <- item{pkg, err} - } - for _, fi := range files { - fi := fi - if fi.IsDir() { - wg.Add(1) - go func() { - walkDir(filepath.Join(dir, fi.Name())) - wg.Done() - }() - } - } - } - - walkDir(root) - wg.Wait() -} - -// ExpandPatterns returns the set of packages matched by patterns, -// which may have the following forms: -// -// golang.org/x/tools/cmd/guru # a single package -// golang.org/x/tools/... # all packages beneath dir -// ... # the entire workspace. -// -// Order is significant: a pattern preceded by '-' removes matching -// packages from the set. For example, these patterns match all encoding -// packages except encoding/xml: -// -// encoding/... -encoding/xml -// -// A trailing slash in a pattern is ignored. (Path components of Go -// package names are separated by slash, not the platform's path separator.) -// -func ExpandPatterns(ctxt *build.Context, patterns []string) map[string]bool { - // TODO(adonovan): support other features of 'go list': - // - "std"/"cmd"/"all" meta-packages - // - "..." not at the end of a pattern - // - relative patterns using "./" or "../" prefix - - pkgs := make(map[string]bool) - doPkg := func(pkg string, neg bool) { - if neg { - delete(pkgs, pkg) - } else { - pkgs[pkg] = true - } - } - - // Scan entire workspace if wildcards are present. - // TODO(adonovan): opt: scan only the necessary subtrees of the workspace. - var all []string - for _, arg := range patterns { - if strings.HasSuffix(arg, "...") { - all = AllPackages(ctxt) - break - } - } - - for _, arg := range patterns { - if arg == "" { - continue - } - - neg := arg[0] == '-' - if neg { - arg = arg[1:] - } - - if arg == "..." { - // ... matches all packages - for _, pkg := range all { - doPkg(pkg, neg) - } - } else if dir := strings.TrimSuffix(arg, "/..."); dir != arg { - // dir/... matches all packages beneath dir - for _, pkg := range all { - if strings.HasPrefix(pkg, dir) && - (len(pkg) == len(dir) || pkg[len(dir)] == '/') { - doPkg(pkg, neg) - } - } - } else { - // single package - doPkg(strings.TrimSuffix(arg, "/"), neg) - } - } - - return pkgs -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/fakecontext.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/fakecontext.go deleted file mode 100644 index 24cbcbea..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/fakecontext.go +++ /dev/null @@ -1,108 +0,0 @@ -package buildutil - -import ( - "fmt" - "go/build" - "io" - "io/ioutil" - "os" - "path" - "path/filepath" - "sort" - "strings" - "time" -) - -// FakeContext returns a build.Context for the fake file tree specified -// by pkgs, which maps package import paths to a mapping from file base -// names to contents. -// -// The fake Context has a GOROOT of "/go" and no GOPATH, and overrides -// the necessary file access methods to read from memory instead of the -// real file system. -// -// Unlike a real file tree, the fake one has only two levels---packages -// and files---so ReadDir("/go/src/") returns all packages under -// /go/src/ including, for instance, "math" and "math/big". -// ReadDir("/go/src/math/big") would return all the files in the -// "math/big" package. -// -func FakeContext(pkgs map[string]map[string]string) *build.Context { - clean := func(filename string) string { - f := path.Clean(filepath.ToSlash(filename)) - // Removing "/go/src" while respecting segment - // boundaries has this unfortunate corner case: - if f == "/go/src" { - return "" - } - return strings.TrimPrefix(f, "/go/src/") - } - - ctxt := build.Default // copy - ctxt.GOROOT = "/go" - ctxt.GOPATH = "" - ctxt.IsDir = func(dir string) bool { - dir = clean(dir) - if dir == "" { - return true // needed by (*build.Context).SrcDirs - } - return pkgs[dir] != nil - } - ctxt.ReadDir = func(dir string) ([]os.FileInfo, error) { - dir = clean(dir) - var fis []os.FileInfo - if dir == "" { - // enumerate packages - for importPath := range pkgs { - fis = append(fis, fakeDirInfo(importPath)) - } - } else { - // enumerate files of package - for basename := range pkgs[dir] { - fis = append(fis, fakeFileInfo(basename)) - } - } - sort.Sort(byName(fis)) - return fis, nil - } - ctxt.OpenFile = func(filename string) (io.ReadCloser, error) { - filename = clean(filename) - dir, base := path.Split(filename) - content, ok := pkgs[path.Clean(dir)][base] - if !ok { - return nil, fmt.Errorf("file not found: %s", filename) - } - return ioutil.NopCloser(strings.NewReader(content)), nil - } - ctxt.IsAbsPath = func(path string) bool { - path = filepath.ToSlash(path) - // Don't rely on the default (filepath.Path) since on - // Windows, it reports virtual paths as non-absolute. - return strings.HasPrefix(path, "/") - } - return &ctxt -} - -type byName []os.FileInfo - -func (s byName) Len() int { return len(s) } -func (s byName) Swap(i, j int) { s[i], s[j] = s[j], s[i] } -func (s byName) Less(i, j int) bool { return s[i].Name() < s[j].Name() } - -type fakeFileInfo string - -func (fi fakeFileInfo) Name() string { return string(fi) } -func (fakeFileInfo) Sys() interface{} { return nil } -func (fakeFileInfo) ModTime() time.Time { return time.Time{} } -func (fakeFileInfo) IsDir() bool { return false } -func (fakeFileInfo) Size() int64 { return 0 } -func (fakeFileInfo) Mode() os.FileMode { return 0644 } - -type fakeDirInfo string - -func (fd fakeDirInfo) Name() string { return string(fd) } -func (fakeDirInfo) Sys() interface{} { return nil } -func (fakeDirInfo) ModTime() time.Time { return time.Time{} } -func (fakeDirInfo) IsDir() bool { return true } -func (fakeDirInfo) Size() int64 { return 0 } -func (fakeDirInfo) Mode() os.FileMode { return 0755 } diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/overlay.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/overlay.go deleted file mode 100644 index 3f71c4fe..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/overlay.go +++ /dev/null @@ -1,103 +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 buildutil - -import ( - "bufio" - "bytes" - "fmt" - "go/build" - "io" - "io/ioutil" - "path/filepath" - "strconv" - "strings" -) - -// OverlayContext overlays a build.Context with additional files from -// a map. Files in the map take precedence over other files. -// -// In addition to plain string comparison, two file names are -// considered equal if their base names match and their directory -// components point at the same directory on the file system. That is, -// symbolic links are followed for directories, but not files. -// -// A common use case for OverlayContext is to allow editors to pass in -// a set of unsaved, modified files. -// -// Currently, only the Context.OpenFile function will respect the -// overlay. This may change in the future. -func OverlayContext(orig *build.Context, overlay map[string][]byte) *build.Context { - // TODO(dominikh): Implement IsDir, HasSubdir and ReadDir - - rc := func(data []byte) (io.ReadCloser, error) { - return ioutil.NopCloser(bytes.NewBuffer(data)), nil - } - - copy := *orig // make a copy - ctxt := © - ctxt.OpenFile = func(path string) (io.ReadCloser, error) { - // Fast path: names match exactly. - if content, ok := overlay[path]; ok { - return rc(content) - } - - // Slow path: check for same file under a different - // alias, perhaps due to a symbolic link. - for filename, content := range overlay { - if sameFile(path, filename) { - return rc(content) - } - } - - return OpenFile(orig, path) - } - return ctxt -} - -// ParseOverlayArchive parses an archive containing Go files and their -// contents. The result is intended to be used with OverlayContext. -// -// -// Archive format -// -// The archive consists of a series of files. Each file consists of a -// name, a decimal file size and the file contents, separated by -// newlinews. No newline follows after the file contents. -func ParseOverlayArchive(archive io.Reader) (map[string][]byte, error) { - overlay := make(map[string][]byte) - r := bufio.NewReader(archive) - for { - // Read file name. - filename, err := r.ReadString('\n') - if err != nil { - if err == io.EOF { - break // OK - } - return nil, fmt.Errorf("reading archive file name: %v", err) - } - filename = filepath.Clean(strings.TrimSpace(filename)) - - // Read file size. - sz, err := r.ReadString('\n') - if err != nil { - return nil, fmt.Errorf("reading size of archive file %s: %v", filename, err) - } - sz = strings.TrimSpace(sz) - size, err := strconv.ParseUint(sz, 10, 32) - if err != nil { - return nil, fmt.Errorf("parsing size of archive file %s: %v", filename, err) - } - - // Read file content. - content := make([]byte, size) - if _, err := io.ReadFull(r, content); err != nil { - return nil, fmt.Errorf("reading archive file %s: %v", filename, err) - } - overlay[filename] = content - } - - return overlay, nil -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/tags.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/tags.go deleted file mode 100644 index 486606f3..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/tags.go +++ /dev/null @@ -1,75 +0,0 @@ -package buildutil - -// This logic was copied from stringsFlag from $GOROOT/src/cmd/go/build.go. - -import "fmt" - -const TagsFlagDoc = "a list of `build tags` to consider satisfied during the build. " + - "For more information about build tags, see the description of " + - "build constraints in the documentation for the go/build package" - -// TagsFlag is an implementation of the flag.Value and flag.Getter interfaces that parses -// a flag value in the same manner as go build's -tags flag and -// populates a []string slice. -// -// See $GOROOT/src/go/build/doc.go for description of build tags. -// See $GOROOT/src/cmd/go/doc.go for description of 'go build -tags' flag. -// -// Example: -// flag.Var((*buildutil.TagsFlag)(&build.Default.BuildTags), "tags", buildutil.TagsFlagDoc) -type TagsFlag []string - -func (v *TagsFlag) Set(s string) error { - var err error - *v, err = splitQuotedFields(s) - if *v == nil { - *v = []string{} - } - return err -} - -func (v *TagsFlag) Get() interface{} { return *v } - -func splitQuotedFields(s string) ([]string, error) { - // Split fields allowing '' or "" around elements. - // Quotes further inside the string do not count. - var f []string - for len(s) > 0 { - for len(s) > 0 && isSpaceByte(s[0]) { - s = s[1:] - } - if len(s) == 0 { - break - } - // Accepted quoted string. No unescaping inside. - if s[0] == '"' || s[0] == '\'' { - quote := s[0] - s = s[1:] - i := 0 - for i < len(s) && s[i] != quote { - i++ - } - if i >= len(s) { - return nil, fmt.Errorf("unterminated %c string", quote) - } - f = append(f, s[:i]) - s = s[i+1:] - continue - } - i := 0 - for i < len(s) && !isSpaceByte(s[i]) { - i++ - } - f = append(f, s[:i]) - s = s[i:] - } - return f, nil -} - -func (v *TagsFlag) String() string { - return "" -} - -func isSpaceByte(c byte) bool { - return c == ' ' || c == '\t' || c == '\n' || c == '\r' -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/util.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/util.go deleted file mode 100644 index fc923d7a..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/buildutil/util.go +++ /dev/null @@ -1,212 +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 buildutil - -import ( - "fmt" - "go/ast" - "go/build" - "go/parser" - "go/token" - "io" - "io/ioutil" - "os" - "path" - "path/filepath" - "strings" -) - -// ParseFile behaves like parser.ParseFile, -// but uses the build context's file system interface, if any. -// -// If file is not absolute (as defined by IsAbsPath), the (dir, file) -// components are joined using JoinPath; dir must be absolute. -// -// The displayPath function, if provided, is used to transform the -// filename that will be attached to the ASTs. -// -// TODO(adonovan): call this from go/loader.parseFiles when the tree thaws. -// -func ParseFile(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, file string, mode parser.Mode) (*ast.File, error) { - if !IsAbsPath(ctxt, file) { - file = JoinPath(ctxt, dir, file) - } - rd, err := OpenFile(ctxt, file) - if err != nil { - return nil, err - } - defer rd.Close() // ignore error - if displayPath != nil { - file = displayPath(file) - } - return parser.ParseFile(fset, file, rd, mode) -} - -// ContainingPackage returns the package containing filename. -// -// If filename is not absolute, it is interpreted relative to working directory dir. -// All I/O is via the build context's file system interface, if any. -// -// The '...Files []string' fields of the resulting build.Package are not -// populated (build.FindOnly mode). -// -func ContainingPackage(ctxt *build.Context, dir, filename string) (*build.Package, error) { - if !IsAbsPath(ctxt, filename) { - filename = JoinPath(ctxt, dir, filename) - } - - // We must not assume the file tree uses - // "/" always, - // `\` always, - // or os.PathSeparator (which varies by platform), - // but to make any progress, we are forced to assume that - // paths will not use `\` unless the PathSeparator - // is also `\`, thus we can rely on filepath.ToSlash for some sanity. - - dirSlash := path.Dir(filepath.ToSlash(filename)) + "/" - - // We assume that no source root (GOPATH[i] or GOROOT) contains any other. - for _, srcdir := range ctxt.SrcDirs() { - srcdirSlash := filepath.ToSlash(srcdir) + "/" - if importPath, ok := HasSubdir(ctxt, srcdirSlash, dirSlash); ok { - return ctxt.Import(importPath, dir, build.FindOnly) - } - } - - return nil, fmt.Errorf("can't find package containing %s", filename) -} - -// -- Effective methods of file system interface ------------------------- - -// (go/build.Context defines these as methods, but does not export them.) - -// hasSubdir calls ctxt.HasSubdir (if not nil) or else uses -// the local file system to answer the question. -func HasSubdir(ctxt *build.Context, root, dir string) (rel string, ok bool) { - if f := ctxt.HasSubdir; f != nil { - return f(root, dir) - } - - // Try using paths we received. - if rel, ok = hasSubdir(root, dir); ok { - return - } - - // Try expanding symlinks and comparing - // expanded against unexpanded and - // expanded against expanded. - rootSym, _ := filepath.EvalSymlinks(root) - dirSym, _ := filepath.EvalSymlinks(dir) - - if rel, ok = hasSubdir(rootSym, dir); ok { - return - } - if rel, ok = hasSubdir(root, dirSym); ok { - return - } - return hasSubdir(rootSym, dirSym) -} - -func hasSubdir(root, dir string) (rel string, ok bool) { - const sep = string(filepath.Separator) - root = filepath.Clean(root) - if !strings.HasSuffix(root, sep) { - root += sep - } - - dir = filepath.Clean(dir) - if !strings.HasPrefix(dir, root) { - return "", false - } - - return filepath.ToSlash(dir[len(root):]), true -} - -// FileExists returns true if the specified file exists, -// using the build context's file system interface. -func FileExists(ctxt *build.Context, path string) bool { - if ctxt.OpenFile != nil { - r, err := ctxt.OpenFile(path) - if err != nil { - return false - } - r.Close() // ignore error - return true - } - _, err := os.Stat(path) - return err == nil -} - -// OpenFile behaves like os.Open, -// but uses the build context's file system interface, if any. -func OpenFile(ctxt *build.Context, path string) (io.ReadCloser, error) { - if ctxt.OpenFile != nil { - return ctxt.OpenFile(path) - } - return os.Open(path) -} - -// IsAbsPath behaves like filepath.IsAbs, -// but uses the build context's file system interface, if any. -func IsAbsPath(ctxt *build.Context, path string) bool { - if ctxt.IsAbsPath != nil { - return ctxt.IsAbsPath(path) - } - return filepath.IsAbs(path) -} - -// JoinPath behaves like filepath.Join, -// but uses the build context's file system interface, if any. -func JoinPath(ctxt *build.Context, path ...string) string { - if ctxt.JoinPath != nil { - return ctxt.JoinPath(path...) - } - return filepath.Join(path...) -} - -// IsDir behaves like os.Stat plus IsDir, -// but uses the build context's file system interface, if any. -func IsDir(ctxt *build.Context, path string) bool { - if ctxt.IsDir != nil { - return ctxt.IsDir(path) - } - fi, err := os.Stat(path) - return err == nil && fi.IsDir() -} - -// ReadDir behaves like ioutil.ReadDir, -// but uses the build context's file system interface, if any. -func ReadDir(ctxt *build.Context, path string) ([]os.FileInfo, error) { - if ctxt.ReadDir != nil { - return ctxt.ReadDir(path) - } - return ioutil.ReadDir(path) -} - -// SplitPathList behaves like filepath.SplitList, -// but uses the build context's file system interface, if any. -func SplitPathList(ctxt *build.Context, s string) []string { - if ctxt.SplitPathList != nil { - return ctxt.SplitPathList(s) - } - return filepath.SplitList(s) -} - -// sameFile returns true if x and y have the same basename and denote -// the same file. -// -func sameFile(x, y string) bool { - if path.Clean(x) == path.Clean(y) { - return true - } - if filepath.Base(x) == filepath.Base(y) { // (optimisation) - if xi, err := os.Stat(x); err == nil { - if yi, err := os.Stat(y); err == nil { - return os.SameFile(xi, yi) - } - } - } - return false -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/cgo.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/cgo.go deleted file mode 100644 index 72c6f502..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/cgo.go +++ /dev/null @@ -1,207 +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 loader - -// This file handles cgo preprocessing of files containing `import "C"`. -// -// DESIGN -// -// The approach taken is to run the cgo processor on the package's -// CgoFiles and parse the output, faking the filenames of the -// resulting ASTs so that the synthetic file containing the C types is -// called "C" (e.g. "~/go/src/net/C") and the preprocessed files -// have their original names (e.g. "~/go/src/net/cgo_unix.go"), -// not the names of the actual temporary files. -// -// The advantage of this approach is its fidelity to 'go build'. The -// downside is that the token.Position.Offset for each AST node is -// incorrect, being an offset within the temporary file. Line numbers -// should still be correct because of the //line comments. -// -// The logic of this file is mostly plundered from the 'go build' -// tool, which also invokes the cgo preprocessor. -// -// -// REJECTED ALTERNATIVE -// -// An alternative approach that we explored is to extend go/types' -// Importer mechanism to provide the identity of the importing package -// so that each time `import "C"` appears it resolves to a different -// synthetic package containing just the objects needed in that case. -// The loader would invoke cgo but parse only the cgo_types.go file -// defining the package-level objects, discarding the other files -// resulting from preprocessing. -// -// The benefit of this approach would have been that source-level -// syntax information would correspond exactly to the original cgo -// file, with no preprocessing involved, making source tools like -// godoc, guru, and eg happy. However, the approach was rejected -// due to the additional complexity it would impose on go/types. (It -// made for a beautiful demo, though.) -// -// cgo files, despite their *.go extension, are not legal Go source -// files per the specification since they may refer to unexported -// members of package "C" such as C.int. Also, a function such as -// C.getpwent has in effect two types, one matching its C type and one -// which additionally returns (errno C.int). The cgo preprocessor -// uses name mangling to distinguish these two functions in the -// processed code, but go/types would need to duplicate this logic in -// its handling of function calls, analogous to the treatment of map -// lookups in which y=m[k] and y,ok=m[k] are both legal. - -import ( - "fmt" - "go/ast" - "go/build" - "go/parser" - "go/token" - "io/ioutil" - "log" - "os" - "os/exec" - "path/filepath" - "regexp" - "strings" -) - -// processCgoFiles invokes the cgo preprocessor on bp.CgoFiles, parses -// the output and returns the resulting ASTs. -// -func processCgoFiles(bp *build.Package, fset *token.FileSet, DisplayPath func(path string) string, mode parser.Mode) ([]*ast.File, error) { - tmpdir, err := ioutil.TempDir("", strings.Replace(bp.ImportPath, "/", "_", -1)+"_C") - if err != nil { - return nil, err - } - defer os.RemoveAll(tmpdir) - - pkgdir := bp.Dir - if DisplayPath != nil { - pkgdir = DisplayPath(pkgdir) - } - - cgoFiles, cgoDisplayFiles, err := runCgo(bp, pkgdir, tmpdir) - if err != nil { - return nil, err - } - var files []*ast.File - for i := range cgoFiles { - rd, err := os.Open(cgoFiles[i]) - if err != nil { - return nil, err - } - display := filepath.Join(bp.Dir, cgoDisplayFiles[i]) - f, err := parser.ParseFile(fset, display, rd, mode) - rd.Close() - if err != nil { - return nil, err - } - files = append(files, f) - } - return files, nil -} - -var cgoRe = regexp.MustCompile(`[/\\:]`) - -// runCgo invokes the cgo preprocessor on bp.CgoFiles and returns two -// lists of files: the resulting processed files (in temporary -// directory tmpdir) and the corresponding names of the unprocessed files. -// -// runCgo is adapted from (*builder).cgo in -// $GOROOT/src/cmd/go/build.go, but these features are unsupported: -// Objective C, CGOPKGPATH, CGO_FLAGS. -// -func runCgo(bp *build.Package, pkgdir, tmpdir string) (files, displayFiles []string, err error) { - cgoCPPFLAGS, _, _, _ := cflags(bp, true) - _, cgoexeCFLAGS, _, _ := cflags(bp, false) - - if len(bp.CgoPkgConfig) > 0 { - pcCFLAGS, err := pkgConfigFlags(bp) - if err != nil { - return nil, nil, err - } - cgoCPPFLAGS = append(cgoCPPFLAGS, pcCFLAGS...) - } - - // Allows including _cgo_export.h from .[ch] files in the package. - cgoCPPFLAGS = append(cgoCPPFLAGS, "-I", tmpdir) - - // _cgo_gotypes.go (displayed "C") contains the type definitions. - files = append(files, filepath.Join(tmpdir, "_cgo_gotypes.go")) - displayFiles = append(displayFiles, "C") - for _, fn := range bp.CgoFiles { - // "foo.cgo1.go" (displayed "foo.go") is the processed Go source. - f := cgoRe.ReplaceAllString(fn[:len(fn)-len("go")], "_") - files = append(files, filepath.Join(tmpdir, f+"cgo1.go")) - displayFiles = append(displayFiles, fn) - } - - var cgoflags []string - if bp.Goroot && bp.ImportPath == "runtime/cgo" { - cgoflags = append(cgoflags, "-import_runtime_cgo=false") - } - if bp.Goroot && bp.ImportPath == "runtime/race" || bp.ImportPath == "runtime/cgo" { - cgoflags = append(cgoflags, "-import_syscall=false") - } - - args := stringList( - "go", "tool", "cgo", "-objdir", tmpdir, cgoflags, "--", - cgoCPPFLAGS, cgoexeCFLAGS, bp.CgoFiles, - ) - if false { - log.Printf("Running cgo for package %q: %s (dir=%s)", bp.ImportPath, args, pkgdir) - } - cmd := exec.Command(args[0], args[1:]...) - cmd.Dir = pkgdir - cmd.Stdout = os.Stderr - cmd.Stderr = os.Stderr - if err := cmd.Run(); err != nil { - return nil, nil, fmt.Errorf("cgo failed: %s: %s", args, err) - } - - return files, displayFiles, nil -} - -// -- unmodified from 'go build' --------------------------------------- - -// Return the flags to use when invoking the C or C++ compilers, or cgo. -func cflags(p *build.Package, def bool) (cppflags, cflags, cxxflags, ldflags []string) { - var defaults string - if def { - defaults = "-g -O2" - } - - cppflags = stringList(envList("CGO_CPPFLAGS", ""), p.CgoCPPFLAGS) - cflags = stringList(envList("CGO_CFLAGS", defaults), p.CgoCFLAGS) - cxxflags = stringList(envList("CGO_CXXFLAGS", defaults), p.CgoCXXFLAGS) - ldflags = stringList(envList("CGO_LDFLAGS", defaults), p.CgoLDFLAGS) - return -} - -// envList returns the value of the given environment variable broken -// into fields, using the default value when the variable is empty. -func envList(key, def string) []string { - v := os.Getenv(key) - if v == "" { - v = def - } - return strings.Fields(v) -} - -// stringList's arguments should be a sequence of string or []string values. -// stringList flattens them into a single []string. -func stringList(args ...interface{}) []string { - var x []string - for _, arg := range args { - switch arg := arg.(type) { - case []string: - x = append(x, arg...) - case string: - x = append(x, arg) - default: - panic("stringList: invalid argument") - } - } - return x -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go deleted file mode 100644 index de57422d..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/cgo_pkgconfig.go +++ /dev/null @@ -1,39 +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 loader - -import ( - "errors" - "fmt" - "go/build" - "os/exec" - "strings" -) - -// pkgConfig runs pkg-config with the specified arguments and returns the flags it prints. -func pkgConfig(mode string, pkgs []string) (flags []string, err error) { - cmd := exec.Command("pkg-config", append([]string{mode}, pkgs...)...) - out, err := cmd.CombinedOutput() - if err != nil { - s := fmt.Sprintf("%s failed: %v", strings.Join(cmd.Args, " "), err) - if len(out) > 0 { - s = fmt.Sprintf("%s: %s", s, out) - } - return nil, errors.New(s) - } - if len(out) > 0 { - flags = strings.Fields(string(out)) - } - return -} - -// pkgConfigFlags calls pkg-config if needed and returns the cflags -// needed to build the package. -func pkgConfigFlags(p *build.Package) (cflags []string, err error) { - if len(p.CgoPkgConfig) == 0 { - return nil, nil - } - return pkgConfig("--cflags", p.CgoPkgConfig) -} diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/doc.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/doc.go deleted file mode 100644 index 9b51c9ec..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/doc.go +++ /dev/null @@ -1,205 +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 loader loads a complete Go program from source code, parsing -// and type-checking the initial packages plus their transitive closure -// of dependencies. The ASTs and the derived facts are retained for -// later use. -// -// THIS INTERFACE IS EXPERIMENTAL AND IS LIKELY TO CHANGE. -// -// The package defines two primary types: Config, which specifies a -// set of initial packages to load and various other options; and -// Program, which is the result of successfully loading the packages -// specified by a configuration. -// -// The configuration can be set directly, but *Config provides various -// convenience methods to simplify the common cases, each of which can -// be called any number of times. Finally, these are followed by a -// call to Load() to actually load and type-check the program. -// -// var conf loader.Config -// -// // Use the command-line arguments to specify -// // a set of initial packages to load from source. -// // See FromArgsUsage for help. -// rest, err := conf.FromArgs(os.Args[1:], wantTests) -// -// // Parse the specified files and create an ad hoc package with path "foo". -// // All files must have the same 'package' declaration. -// conf.CreateFromFilenames("foo", "foo.go", "bar.go") -// -// // Create an ad hoc package with path "foo" from -// // the specified already-parsed files. -// // All ASTs must have the same 'package' declaration. -// conf.CreateFromFiles("foo", parsedFiles) -// -// // Add "runtime" to the set of packages to be loaded. -// conf.Import("runtime") -// -// // Adds "fmt" and "fmt_test" to the set of packages -// // to be loaded. "fmt" will include *_test.go files. -// conf.ImportWithTests("fmt") -// -// // Finally, load all the packages specified by the configuration. -// prog, err := conf.Load() -// -// See examples_test.go for examples of API usage. -// -// -// CONCEPTS AND TERMINOLOGY -// -// The WORKSPACE is the set of packages accessible to the loader. The -// workspace is defined by Config.Build, a *build.Context. The -// default context treats subdirectories of $GOROOT and $GOPATH as -// packages, but this behavior may be overridden. -// -// An AD HOC package is one specified as a set of source files on the -// command line. In the simplest case, it may consist of a single file -// such as $GOROOT/src/net/http/triv.go. -// -// EXTERNAL TEST packages are those comprised of a set of *_test.go -// files all with the same 'package foo_test' declaration, all in the -// same directory. (go/build.Package calls these files XTestFiles.) -// -// An IMPORTABLE package is one that can be referred to by some import -// spec. Every importable package is uniquely identified by its -// PACKAGE PATH or just PATH, a string such as "fmt", "encoding/json", -// or "cmd/vendor/golang.org/x/arch/x86/x86asm". A package path -// typically denotes a subdirectory of the workspace. -// -// An import declaration uses an IMPORT PATH to refer to a package. -// Most import declarations use the package path as the import path. -// -// Due to VENDORING (https://golang.org/s/go15vendor), the -// interpretation of an import path may depend on the directory in which -// it appears. To resolve an import path to a package path, go/build -// must search the enclosing directories for a subdirectory named -// "vendor". -// -// ad hoc packages and external test packages are NON-IMPORTABLE. The -// path of an ad hoc package is inferred from the package -// declarations of its files and is therefore not a unique package key. -// For example, Config.CreatePkgs may specify two initial ad hoc -// packages, both with path "main". -// -// An AUGMENTED package is an importable package P plus all the -// *_test.go files with same 'package foo' declaration as P. -// (go/build.Package calls these files TestFiles.) -// -// The INITIAL packages are those specified in the configuration. A -// DEPENDENCY is a package loaded to satisfy an import in an initial -// package or another dependency. -// -package loader - -// IMPLEMENTATION NOTES -// -// 'go test', in-package test files, and import cycles -// --------------------------------------------------- -// -// An external test package may depend upon members of the augmented -// package that are not in the unaugmented package, such as functions -// that expose internals. (See bufio/export_test.go for an example.) -// So, the loader must ensure that for each external test package -// it loads, it also augments the corresponding non-test package. -// -// The import graph over n unaugmented packages must be acyclic; the -// import graph over n-1 unaugmented packages plus one augmented -// package must also be acyclic. ('go test' relies on this.) But the -// import graph over n augmented packages may contain cycles. -// -// First, all the (unaugmented) non-test packages and their -// dependencies are imported in the usual way; the loader reports an -// error if it detects an import cycle. -// -// Then, each package P for which testing is desired is augmented by -// the list P' of its in-package test files, by calling -// (*types.Checker).Files. This arrangement ensures that P' may -// reference definitions within P, but P may not reference definitions -// within P'. Furthermore, P' may import any other package, including -// ones that depend upon P, without an import cycle error. -// -// Consider two packages A and B, both of which have lists of -// in-package test files we'll call A' and B', and which have the -// following import graph edges: -// B imports A -// B' imports A -// A' imports B -// This last edge would be expected to create an error were it not -// for the special type-checking discipline above. -// Cycles of size greater than two are possible. For example: -// compress/bzip2/bzip2_test.go (package bzip2) imports "io/ioutil" -// io/ioutil/tempfile_test.go (package ioutil) imports "regexp" -// regexp/exec_test.go (package regexp) imports "compress/bzip2" -// -// -// Concurrency -// ----------- -// -// Let us define the import dependency graph as follows. Each node is a -// list of files passed to (Checker).Files at once. Many of these lists -// are the production code of an importable Go package, so those nodes -// are labelled by the package's path. The remaining nodes are -// ad hoc packages and lists of in-package *_test.go files that augment -// an importable package; those nodes have no label. -// -// The edges of the graph represent import statements appearing within a -// file. An edge connects a node (a list of files) to the node it -// imports, which is importable and thus always labelled. -// -// Loading is controlled by this dependency graph. -// -// To reduce I/O latency, we start loading a package's dependencies -// asynchronously as soon as we've parsed its files and enumerated its -// imports (scanImports). This performs a preorder traversal of the -// import dependency graph. -// -// To exploit hardware parallelism, we type-check unrelated packages in -// parallel, where "unrelated" means not ordered by the partial order of -// the import dependency graph. -// -// We use a concurrency-safe non-blocking cache (importer.imported) to -// record the results of type-checking, whether success or failure. An -// entry is created in this cache by startLoad the first time the -// package is imported. The first goroutine to request an entry becomes -// responsible for completing the task and broadcasting completion to -// subsequent requestors, which block until then. -// -// Type checking occurs in (parallel) postorder: we cannot type-check a -// set of files until we have loaded and type-checked all of their -// immediate dependencies (and thus all of their transitive -// dependencies). If the input were guaranteed free of import cycles, -// this would be trivial: we could simply wait for completion of the -// dependencies and then invoke the typechecker. -// -// But as we saw in the 'go test' section above, some cycles in the -// import graph over packages are actually legal, so long as the -// cycle-forming edge originates in the in-package test files that -// augment the package. This explains why the nodes of the import -// dependency graph are not packages, but lists of files: the unlabelled -// nodes avoid the cycles. Consider packages A and B where B imports A -// and A's in-package tests AT import B. The naively constructed import -// graph over packages would contain a cycle (A+AT) --> B --> (A+AT) but -// the graph over lists of files is AT --> B --> A, where AT is an -// unlabelled node. -// -// Awaiting completion of the dependencies in a cyclic graph would -// deadlock, so we must materialize the import dependency graph (as -// importer.graph) and check whether each import edge forms a cycle. If -// x imports y, and the graph already contains a path from y to x, then -// there is an import cycle, in which case the processing of x must not -// wait for the completion of processing of y. -// -// When the type-checker makes a callback (doImport) to the loader for a -// given import edge, there are two possible cases. In the normal case, -// the dependency has already been completely type-checked; doImport -// does a cache lookup and returns it. In the cyclic case, the entry in -// the cache is still necessarily incomplete, indicating a cycle. We -// perform the cycle check again to obtain the error message, and return -// the error. -// -// The result of using concurrency is about a 2.5x speedup for stdlib_test. - -// TODO(adonovan): overhaul the package documentation. diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/loader.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/loader.go deleted file mode 100644 index de756f7f..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/loader.go +++ /dev/null @@ -1,1077 +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 loader - -// See doc.go for package documentation and implementation notes. - -import ( - "errors" - "fmt" - "go/ast" - "go/build" - "go/parser" - "go/token" - "go/types" - "os" - "path/filepath" - "sort" - "strings" - "sync" - "time" - - "golang.org/x/tools/go/ast/astutil" -) - -var ignoreVendor build.ImportMode - -const trace = false // show timing info for type-checking - -// Config specifies the configuration for loading a whole program from -// Go source code. -// The zero value for Config is a ready-to-use default configuration. -type Config struct { - // Fset is the file set for the parser to use when loading the - // program. If nil, it may be lazily initialized by any - // method of Config. - Fset *token.FileSet - - // ParserMode specifies the mode to be used by the parser when - // loading source packages. - ParserMode parser.Mode - - // TypeChecker contains options relating to the type checker. - // - // The supplied IgnoreFuncBodies is not used; the effective - // value comes from the TypeCheckFuncBodies func below. - // The supplied Import function is not used either. - TypeChecker types.Config - - // TypeCheckFuncBodies is a predicate over package paths. - // A package for which the predicate is false will - // have its package-level declarations type checked, but not - // its function bodies; this can be used to quickly load - // dependencies from source. If nil, all func bodies are type - // checked. - TypeCheckFuncBodies func(path string) bool - - // If Build is non-nil, it is used to locate source packages. - // Otherwise &build.Default is used. - // - // By default, cgo is invoked to preprocess Go files that - // import the fake package "C". This behaviour can be - // disabled by setting CGO_ENABLED=0 in the environment prior - // to startup, or by setting Build.CgoEnabled=false. - Build *build.Context - - // The current directory, used for resolving relative package - // references such as "./go/loader". If empty, os.Getwd will be - // used instead. - Cwd string - - // If DisplayPath is non-nil, it is used to transform each - // file name obtained from Build.Import(). This can be used - // to prevent a virtualized build.Config's file names from - // leaking into the user interface. - DisplayPath func(path string) string - - // If AllowErrors is true, Load will return a Program even - // if some of the its packages contained I/O, parser or type - // errors; such errors are accessible via PackageInfo.Errors. If - // false, Load will fail if any package had an error. - AllowErrors bool - - // CreatePkgs specifies a list of non-importable initial - // packages to create. The resulting packages will appear in - // the corresponding elements of the Program.Created slice. - CreatePkgs []PkgSpec - - // ImportPkgs specifies a set of initial packages to load. - // The map keys are package paths. - // - // The map value indicates whether to load tests. If true, Load - // will add and type-check two lists of files to the package: - // non-test files followed by in-package *_test.go files. In - // addition, it will append the external test package (if any) - // to Program.Created. - ImportPkgs map[string]bool - - // FindPackage is called during Load to create the build.Package - // for a given import path from a given directory. - // If FindPackage is nil, (*build.Context).Import is used. - // A client may use this hook to adapt to a proprietary build - // system that does not follow the "go build" layout - // conventions, for example. - // - // It must be safe to call concurrently from multiple goroutines. - FindPackage func(ctxt *build.Context, importPath, fromDir string, mode build.ImportMode) (*build.Package, error) - - // AfterTypeCheck is called immediately after a list of files - // has been type-checked and appended to info.Files. - // - // This optional hook function is the earliest opportunity for - // the client to observe the output of the type checker, - // which may be useful to reduce analysis latency when loading - // a large program. - // - // The function is permitted to modify info.Info, for instance - // to clear data structures that are no longer needed, which can - // dramatically reduce peak memory consumption. - // - // The function may be called twice for the same PackageInfo: - // once for the files of the package and again for the - // in-package test files. - // - // It must be safe to call concurrently from multiple goroutines. - AfterTypeCheck func(info *PackageInfo, files []*ast.File) -} - -// A PkgSpec specifies a non-importable package to be created by Load. -// Files are processed first, but typically only one of Files and -// Filenames is provided. The path needn't be globally unique. -// -// For vendoring purposes, the package's directory is the one that -// contains the first file. -type PkgSpec struct { - Path string // package path ("" => use package declaration) - Files []*ast.File // ASTs of already-parsed files - Filenames []string // names of files to be parsed -} - -// A Program is a Go program loaded from source as specified by a Config. -type Program struct { - Fset *token.FileSet // the file set for this program - - // Created[i] contains the initial package whose ASTs or - // filenames were supplied by Config.CreatePkgs[i], followed by - // the external test package, if any, of each package in - // Config.ImportPkgs ordered by ImportPath. - // - // NOTE: these files must not import "C". Cgo preprocessing is - // only performed on imported packages, not ad hoc packages. - // - // TODO(adonovan): we need to copy and adapt the logic of - // goFilesPackage (from $GOROOT/src/cmd/go/build.go) and make - // Config.Import and Config.Create methods return the same kind - // of entity, essentially a build.Package. - // Perhaps we can even reuse that type directly. - Created []*PackageInfo - - // Imported contains the initially imported packages, - // as specified by Config.ImportPkgs. - Imported map[string]*PackageInfo - - // AllPackages contains the PackageInfo of every package - // encountered by Load: all initial packages and all - // dependencies, including incomplete ones. - AllPackages map[*types.Package]*PackageInfo - - // importMap is the canonical mapping of package paths to - // packages. It contains all Imported initial packages, but not - // Created ones, and all imported dependencies. - importMap map[string]*types.Package -} - -// PackageInfo holds the ASTs and facts derived by the type-checker -// for a single package. -// -// Not mutated once exposed via the API. -// -type PackageInfo struct { - Pkg *types.Package - Importable bool // true if 'import "Pkg.Path()"' would resolve to this - TransitivelyErrorFree bool // true if Pkg and all its dependencies are free of errors - Files []*ast.File // syntax trees for the package's files - Errors []error // non-nil if the package had errors - types.Info // type-checker deductions. - dir string // package directory - - checker *types.Checker // transient type-checker state - errorFunc func(error) -} - -func (info *PackageInfo) String() string { return info.Pkg.Path() } - -func (info *PackageInfo) appendError(err error) { - if info.errorFunc != nil { - info.errorFunc(err) - } else { - fmt.Fprintln(os.Stderr, err) - } - info.Errors = append(info.Errors, err) -} - -func (conf *Config) fset() *token.FileSet { - if conf.Fset == nil { - conf.Fset = token.NewFileSet() - } - return conf.Fset -} - -// ParseFile is a convenience function (intended for testing) that invokes -// the parser using the Config's FileSet, which is initialized if nil. -// -// src specifies the parser input as a string, []byte, or io.Reader, and -// filename is its apparent name. If src is nil, the contents of -// filename are read from the file system. -// -func (conf *Config) ParseFile(filename string, src interface{}) (*ast.File, error) { - // TODO(adonovan): use conf.build() etc like parseFiles does. - return parser.ParseFile(conf.fset(), filename, src, conf.ParserMode) -} - -// FromArgsUsage is a partial usage message that applications calling -// FromArgs may wish to include in their -help output. -const FromArgsUsage = ` - is a list of arguments denoting a set of initial packages. -It may take one of two forms: - -1. A list of *.go source files. - - All of the specified files are loaded, parsed and type-checked - as a single package. All the files must belong to the same directory. - -2. A list of import paths, each denoting a package. - - The package's directory is found relative to the $GOROOT and - $GOPATH using similar logic to 'go build', and the *.go files in - that directory are loaded, parsed and type-checked as a single - package. - - In addition, all *_test.go files in the directory are then loaded - and parsed. Those files whose package declaration equals that of - the non-*_test.go files are included in the primary package. Test - files whose package declaration ends with "_test" are type-checked - as another package, the 'external' test package, so that a single - import path may denote two packages. (Whether this behaviour is - enabled is tool-specific, and may depend on additional flags.) - -A '--' argument terminates the list of packages. -` - -// FromArgs interprets args as a set of initial packages to load from -// source and updates the configuration. It returns the list of -// unconsumed arguments. -// -// It is intended for use in command-line interfaces that require a -// set of initial packages to be specified; see FromArgsUsage message -// for details. -// -// Only superficial errors are reported at this stage; errors dependent -// on I/O are detected during Load. -// -func (conf *Config) FromArgs(args []string, xtest bool) ([]string, error) { - var rest []string - for i, arg := range args { - if arg == "--" { - rest = args[i+1:] - args = args[:i] - break // consume "--" and return the remaining args - } - } - - if len(args) > 0 && strings.HasSuffix(args[0], ".go") { - // Assume args is a list of a *.go files - // denoting a single ad hoc package. - for _, arg := range args { - if !strings.HasSuffix(arg, ".go") { - return nil, fmt.Errorf("named files must be .go files: %s", arg) - } - } - conf.CreateFromFilenames("", args...) - } else { - // Assume args are directories each denoting a - // package and (perhaps) an external test, iff xtest. - for _, arg := range args { - if xtest { - conf.ImportWithTests(arg) - } else { - conf.Import(arg) - } - } - } - - return rest, nil -} - -// CreateFromFilenames is a convenience function that adds -// a conf.CreatePkgs entry to create a package of the specified *.go -// files. -// -func (conf *Config) CreateFromFilenames(path string, filenames ...string) { - conf.CreatePkgs = append(conf.CreatePkgs, PkgSpec{Path: path, Filenames: filenames}) -} - -// CreateFromFiles is a convenience function that adds a conf.CreatePkgs -// entry to create package of the specified path and parsed files. -// -func (conf *Config) CreateFromFiles(path string, files ...*ast.File) { - conf.CreatePkgs = append(conf.CreatePkgs, PkgSpec{Path: path, Files: files}) -} - -// ImportWithTests is a convenience function that adds path to -// ImportPkgs, the set of initial source packages located relative to -// $GOPATH. The package will be augmented by any *_test.go files in -// its directory that contain a "package x" (not "package x_test") -// declaration. -// -// In addition, if any *_test.go files contain a "package x_test" -// declaration, an additional package comprising just those files will -// be added to CreatePkgs. -// -func (conf *Config) ImportWithTests(path string) { conf.addImport(path, true) } - -// Import is a convenience function that adds path to ImportPkgs, the -// set of initial packages that will be imported from source. -// -func (conf *Config) Import(path string) { conf.addImport(path, false) } - -func (conf *Config) addImport(path string, tests bool) { - if path == "C" { - return // ignore; not a real package - } - if conf.ImportPkgs == nil { - conf.ImportPkgs = make(map[string]bool) - } - conf.ImportPkgs[path] = conf.ImportPkgs[path] || tests -} - -// PathEnclosingInterval returns the PackageInfo and ast.Node that -// contain source interval [start, end), and all the node's ancestors -// up to the AST root. It searches all ast.Files of all packages in prog. -// exact is defined as for astutil.PathEnclosingInterval. -// -// The zero value is returned if not found. -// -func (prog *Program) PathEnclosingInterval(start, end token.Pos) (pkg *PackageInfo, path []ast.Node, exact bool) { - for _, info := range prog.AllPackages { - for _, f := range info.Files { - if f.Pos() == token.NoPos { - // This can happen if the parser saw - // too many errors and bailed out. - // (Use parser.AllErrors to prevent that.) - continue - } - if !tokenFileContainsPos(prog.Fset.File(f.Pos()), start) { - continue - } - if path, exact := astutil.PathEnclosingInterval(f, start, end); path != nil { - return info, path, exact - } - } - } - return nil, nil, false -} - -// InitialPackages returns a new slice containing the set of initial -// packages (Created + Imported) in unspecified order. -// -func (prog *Program) InitialPackages() []*PackageInfo { - infos := make([]*PackageInfo, 0, len(prog.Created)+len(prog.Imported)) - infos = append(infos, prog.Created...) - for _, info := range prog.Imported { - infos = append(infos, info) - } - return infos -} - -// Package returns the ASTs and results of type checking for the -// specified package. -func (prog *Program) Package(path string) *PackageInfo { - if info, ok := prog.AllPackages[prog.importMap[path]]; ok { - return info - } - for _, info := range prog.Created { - if path == info.Pkg.Path() { - return info - } - } - return nil -} - -// ---------- Implementation ---------- - -// importer holds the working state of the algorithm. -type importer struct { - conf *Config // the client configuration - start time.Time // for logging - - progMu sync.Mutex // guards prog - prog *Program // the resulting program - - // findpkg is a memoization of FindPackage. - findpkgMu sync.Mutex // guards findpkg - findpkg map[findpkgKey]*findpkgValue - - importedMu sync.Mutex // guards imported - imported map[string]*importInfo // all imported packages (incl. failures) by import path - - // import dependency graph: graph[x][y] => x imports y - // - // Since non-importable packages cannot be cyclic, we ignore - // their imports, thus we only need the subgraph over importable - // packages. Nodes are identified by their import paths. - graphMu sync.Mutex - graph map[string]map[string]bool -} - -type findpkgKey struct { - importPath string - fromDir string - mode build.ImportMode -} - -type findpkgValue struct { - ready chan struct{} // closed to broadcast readiness - bp *build.Package - err error -} - -// importInfo tracks the success or failure of a single import. -// -// Upon completion, exactly one of info and err is non-nil: -// info on successful creation of a package, err otherwise. -// A successful package may still contain type errors. -// -type importInfo struct { - path string // import path - info *PackageInfo // results of typechecking (including errors) - complete chan struct{} // closed to broadcast that info is set. -} - -// awaitCompletion blocks until ii is complete, -// i.e. the info field is safe to inspect. -func (ii *importInfo) awaitCompletion() { - <-ii.complete // wait for close -} - -// Complete marks ii as complete. -// Its info and err fields will not be subsequently updated. -func (ii *importInfo) Complete(info *PackageInfo) { - if info == nil { - panic("info == nil") - } - ii.info = info - close(ii.complete) -} - -type importError struct { - path string // import path - err error // reason for failure to create a package -} - -// Load creates the initial packages specified by conf.{Create,Import}Pkgs, -// loading their dependencies packages as needed. -// -// On success, Load returns a Program containing a PackageInfo for -// each package. On failure, it returns an error. -// -// If AllowErrors is true, Load will return a Program even if some -// packages contained I/O, parser or type errors, or if dependencies -// were missing. (Such errors are accessible via PackageInfo.Errors. If -// false, Load will fail if any package had an error. -// -// It is an error if no packages were loaded. -// -func (conf *Config) Load() (*Program, error) { - // Create a simple default error handler for parse/type errors. - if conf.TypeChecker.Error == nil { - conf.TypeChecker.Error = func(e error) { fmt.Fprintln(os.Stderr, e) } - } - - // Set default working directory for relative package references. - if conf.Cwd == "" { - var err error - conf.Cwd, err = os.Getwd() - if err != nil { - return nil, err - } - } - - // Install default FindPackage hook using go/build logic. - if conf.FindPackage == nil { - conf.FindPackage = (*build.Context).Import - } - - prog := &Program{ - Fset: conf.fset(), - Imported: make(map[string]*PackageInfo), - importMap: make(map[string]*types.Package), - AllPackages: make(map[*types.Package]*PackageInfo), - } - - imp := importer{ - conf: conf, - prog: prog, - findpkg: make(map[findpkgKey]*findpkgValue), - imported: make(map[string]*importInfo), - start: time.Now(), - graph: make(map[string]map[string]bool), - } - - // -- loading proper (concurrent phase) -------------------------------- - - var errpkgs []string // packages that contained errors - - // Load the initially imported packages and their dependencies, - // in parallel. - // No vendor check on packages imported from the command line. - infos, importErrors := imp.importAll("", conf.Cwd, conf.ImportPkgs, ignoreVendor) - for _, ie := range importErrors { - conf.TypeChecker.Error(ie.err) // failed to create package - errpkgs = append(errpkgs, ie.path) - } - for _, info := range infos { - prog.Imported[info.Pkg.Path()] = info - } - - // Augment the designated initial packages by their tests. - // Dependencies are loaded in parallel. - var xtestPkgs []*build.Package - for importPath, augment := range conf.ImportPkgs { - if !augment { - continue - } - - // No vendor check on packages imported from command line. - bp, err := imp.findPackage(importPath, conf.Cwd, ignoreVendor) - if err != nil { - // Package not found, or can't even parse package declaration. - // Already reported by previous loop; ignore it. - continue - } - - // Needs external test package? - if len(bp.XTestGoFiles) > 0 { - xtestPkgs = append(xtestPkgs, bp) - } - - // Consult the cache using the canonical package path. - path := bp.ImportPath - imp.importedMu.Lock() // (unnecessary, we're sequential here) - ii, ok := imp.imported[path] - // Paranoid checks added due to issue #11012. - if !ok { - // Unreachable. - // The previous loop called importAll and thus - // startLoad for each path in ImportPkgs, which - // populates imp.imported[path] with a non-zero value. - panic(fmt.Sprintf("imported[%q] not found", path)) - } - if ii == nil { - // Unreachable. - // The ii values in this loop are the same as in - // the previous loop, which enforced the invariant - // that at least one of ii.err and ii.info is non-nil. - panic(fmt.Sprintf("imported[%q] == nil", path)) - } - if ii.info == nil { - // Unreachable. - // awaitCompletion has the postcondition - // ii.info != nil. - panic(fmt.Sprintf("imported[%q].info = nil", path)) - } - info := ii.info - imp.importedMu.Unlock() - - // Parse the in-package test files. - files, errs := imp.conf.parsePackageFiles(bp, 't') - for _, err := range errs { - info.appendError(err) - } - - // The test files augmenting package P cannot be imported, - // but may import packages that import P, - // so we must disable the cycle check. - imp.addFiles(info, files, false) - } - - createPkg := func(path, dir string, files []*ast.File, errs []error) { - info := imp.newPackageInfo(path, dir) - for _, err := range errs { - info.appendError(err) - } - - // Ad hoc packages are non-importable, - // so no cycle check is needed. - // addFiles loads dependencies in parallel. - imp.addFiles(info, files, false) - prog.Created = append(prog.Created, info) - } - - // Create packages specified by conf.CreatePkgs. - for _, cp := range conf.CreatePkgs { - files, errs := parseFiles(conf.fset(), conf.build(), nil, conf.Cwd, cp.Filenames, conf.ParserMode) - files = append(files, cp.Files...) - - path := cp.Path - if path == "" { - if len(files) > 0 { - path = files[0].Name.Name - } else { - path = "(unnamed)" - } - } - - dir := conf.Cwd - if len(files) > 0 && files[0].Pos().IsValid() { - dir = filepath.Dir(conf.fset().File(files[0].Pos()).Name()) - } - createPkg(path, dir, files, errs) - } - - // Create external test packages. - sort.Sort(byImportPath(xtestPkgs)) - for _, bp := range xtestPkgs { - files, errs := imp.conf.parsePackageFiles(bp, 'x') - createPkg(bp.ImportPath+"_test", bp.Dir, files, errs) - } - - // -- finishing up (sequential) ---------------------------------------- - - if len(prog.Imported)+len(prog.Created) == 0 { - return nil, errors.New("no initial packages were loaded") - } - - // Create infos for indirectly imported packages. - // e.g. incomplete packages without syntax, loaded from export data. - for _, obj := range prog.importMap { - info := prog.AllPackages[obj] - if info == nil { - prog.AllPackages[obj] = &PackageInfo{Pkg: obj, Importable: true} - } else { - // finished - info.checker = nil - info.errorFunc = nil - } - } - - if !conf.AllowErrors { - // Report errors in indirectly imported packages. - for _, info := range prog.AllPackages { - if len(info.Errors) > 0 { - errpkgs = append(errpkgs, info.Pkg.Path()) - } - } - if errpkgs != nil { - var more string - if len(errpkgs) > 3 { - more = fmt.Sprintf(" and %d more", len(errpkgs)-3) - errpkgs = errpkgs[:3] - } - return nil, fmt.Errorf("couldn't load packages due to errors: %s%s", - strings.Join(errpkgs, ", "), more) - } - } - - markErrorFreePackages(prog.AllPackages) - - return prog, nil -} - -type byImportPath []*build.Package - -func (b byImportPath) Len() int { return len(b) } -func (b byImportPath) Less(i, j int) bool { return b[i].ImportPath < b[j].ImportPath } -func (b byImportPath) Swap(i, j int) { b[i], b[j] = b[j], b[i] } - -// markErrorFreePackages sets the TransitivelyErrorFree flag on all -// applicable packages. -func markErrorFreePackages(allPackages map[*types.Package]*PackageInfo) { - // Build the transpose of the import graph. - importedBy := make(map[*types.Package]map[*types.Package]bool) - for P := range allPackages { - for _, Q := range P.Imports() { - clients, ok := importedBy[Q] - if !ok { - clients = make(map[*types.Package]bool) - importedBy[Q] = clients - } - clients[P] = true - } - } - - // Find all packages reachable from some error package. - reachable := make(map[*types.Package]bool) - var visit func(*types.Package) - visit = func(p *types.Package) { - if !reachable[p] { - reachable[p] = true - for q := range importedBy[p] { - visit(q) - } - } - } - for _, info := range allPackages { - if len(info.Errors) > 0 { - visit(info.Pkg) - } - } - - // Mark the others as "transitively error-free". - for _, info := range allPackages { - if !reachable[info.Pkg] { - info.TransitivelyErrorFree = true - } - } -} - -// build returns the effective build context. -func (conf *Config) build() *build.Context { - if conf.Build != nil { - return conf.Build - } - return &build.Default -} - -// parsePackageFiles enumerates the files belonging to package path, -// then loads, parses and returns them, plus a list of I/O or parse -// errors that were encountered. -// -// 'which' indicates which files to include: -// 'g': include non-test *.go source files (GoFiles + processed CgoFiles) -// 't': include in-package *_test.go source files (TestGoFiles) -// 'x': include external *_test.go source files. (XTestGoFiles) -// -func (conf *Config) parsePackageFiles(bp *build.Package, which rune) ([]*ast.File, []error) { - if bp.ImportPath == "unsafe" { - return nil, nil - } - var filenames []string - switch which { - case 'g': - filenames = bp.GoFiles - case 't': - filenames = bp.TestGoFiles - case 'x': - filenames = bp.XTestGoFiles - default: - panic(which) - } - - files, errs := parseFiles(conf.fset(), conf.build(), conf.DisplayPath, bp.Dir, filenames, conf.ParserMode) - - // Preprocess CgoFiles and parse the outputs (sequentially). - if which == 'g' && bp.CgoFiles != nil { - cgofiles, err := processCgoFiles(bp, conf.fset(), conf.DisplayPath, conf.ParserMode) - if err != nil { - errs = append(errs, err) - } else { - files = append(files, cgofiles...) - } - } - - return files, errs -} - -// doImport imports the package denoted by path. -// It implements the types.Importer signature. -// -// It returns an error if a package could not be created -// (e.g. go/build or parse error), but type errors are reported via -// the types.Config.Error callback (the first of which is also saved -// in the package's PackageInfo). -// -// Idempotent. -// -func (imp *importer) doImport(from *PackageInfo, to string) (*types.Package, error) { - if to == "C" { - // This should be unreachable, but ad hoc packages are - // not currently subject to cgo preprocessing. - // See https://github.com/golang/go/issues/11627. - return nil, fmt.Errorf(`the loader doesn't cgo-process ad hoc packages like %q; see Go issue 11627`, - from.Pkg.Path()) - } - - bp, err := imp.findPackage(to, from.dir, 0) - if err != nil { - return nil, err - } - - // The standard unsafe package is handled specially, - // and has no PackageInfo. - if bp.ImportPath == "unsafe" { - return types.Unsafe, nil - } - - // Look for the package in the cache using its canonical path. - path := bp.ImportPath - imp.importedMu.Lock() - ii := imp.imported[path] - imp.importedMu.Unlock() - if ii == nil { - panic("internal error: unexpected import: " + path) - } - if ii.info != nil { - return ii.info.Pkg, nil - } - - // Import of incomplete package: this indicates a cycle. - fromPath := from.Pkg.Path() - if cycle := imp.findPath(path, fromPath); cycle != nil { - cycle = append([]string{fromPath}, cycle...) - return nil, fmt.Errorf("import cycle: %s", strings.Join(cycle, " -> ")) - } - - panic("internal error: import of incomplete (yet acyclic) package: " + fromPath) -} - -// findPackage locates the package denoted by the importPath in the -// specified directory. -func (imp *importer) findPackage(importPath, fromDir string, mode build.ImportMode) (*build.Package, error) { - // We use a non-blocking duplicate-suppressing cache (gopl.io §9.7) - // to avoid holding the lock around FindPackage. - key := findpkgKey{importPath, fromDir, mode} - imp.findpkgMu.Lock() - v, ok := imp.findpkg[key] - if ok { - // cache hit - imp.findpkgMu.Unlock() - - <-v.ready // wait for entry to become ready - } else { - // Cache miss: this goroutine becomes responsible for - // populating the map entry and broadcasting its readiness. - v = &findpkgValue{ready: make(chan struct{})} - imp.findpkg[key] = v - imp.findpkgMu.Unlock() - - ioLimit <- true - v.bp, v.err = imp.conf.FindPackage(imp.conf.build(), importPath, fromDir, mode) - <-ioLimit - - if _, ok := v.err.(*build.NoGoError); ok { - v.err = nil // empty directory is not an error - } - - close(v.ready) // broadcast ready condition - } - return v.bp, v.err -} - -// importAll loads, parses, and type-checks the specified packages in -// parallel and returns their completed importInfos in unspecified order. -// -// fromPath is the package path of the importing package, if it is -// importable, "" otherwise. It is used for cycle detection. -// -// fromDir is the directory containing the import declaration that -// caused these imports. -// -func (imp *importer) importAll(fromPath, fromDir string, imports map[string]bool, mode build.ImportMode) (infos []*PackageInfo, errors []importError) { - // TODO(adonovan): opt: do the loop in parallel once - // findPackage is non-blocking. - var pending []*importInfo - for importPath := range imports { - bp, err := imp.findPackage(importPath, fromDir, mode) - if err != nil { - errors = append(errors, importError{ - path: importPath, - err: err, - }) - continue - } - pending = append(pending, imp.startLoad(bp)) - } - - if fromPath != "" { - // We're loading a set of imports. - // - // We must record graph edges from the importing package - // to its dependencies, and check for cycles. - imp.graphMu.Lock() - deps, ok := imp.graph[fromPath] - if !ok { - deps = make(map[string]bool) - imp.graph[fromPath] = deps - } - for _, ii := range pending { - deps[ii.path] = true - } - imp.graphMu.Unlock() - } - - for _, ii := range pending { - if fromPath != "" { - if cycle := imp.findPath(ii.path, fromPath); cycle != nil { - // Cycle-forming import: we must not await its - // completion since it would deadlock. - // - // We don't record the error in ii since - // the error is really associated with the - // cycle-forming edge, not the package itself. - // (Also it would complicate the - // invariants of importPath completion.) - if trace { - fmt.Fprintf(os.Stderr, "import cycle: %q\n", cycle) - } - continue - } - } - ii.awaitCompletion() - infos = append(infos, ii.info) - } - - return infos, errors -} - -// findPath returns an arbitrary path from 'from' to 'to' in the import -// graph, or nil if there was none. -func (imp *importer) findPath(from, to string) []string { - imp.graphMu.Lock() - defer imp.graphMu.Unlock() - - seen := make(map[string]bool) - var search func(stack []string, importPath string) []string - search = func(stack []string, importPath string) []string { - if !seen[importPath] { - seen[importPath] = true - stack = append(stack, importPath) - if importPath == to { - return stack - } - for x := range imp.graph[importPath] { - if p := search(stack, x); p != nil { - return p - } - } - } - return nil - } - return search(make([]string, 0, 20), from) -} - -// startLoad initiates the loading, parsing and type-checking of the -// specified package and its dependencies, if it has not already begun. -// -// It returns an importInfo, not necessarily in a completed state. The -// caller must call awaitCompletion() before accessing its info field. -// -// startLoad is concurrency-safe and idempotent. -// -func (imp *importer) startLoad(bp *build.Package) *importInfo { - path := bp.ImportPath - imp.importedMu.Lock() - ii, ok := imp.imported[path] - if !ok { - ii = &importInfo{path: path, complete: make(chan struct{})} - imp.imported[path] = ii - go func() { - info := imp.load(bp) - ii.Complete(info) - }() - } - imp.importedMu.Unlock() - - return ii -} - -// load implements package loading by parsing Go source files -// located by go/build. -func (imp *importer) load(bp *build.Package) *PackageInfo { - info := imp.newPackageInfo(bp.ImportPath, bp.Dir) - info.Importable = true - files, errs := imp.conf.parsePackageFiles(bp, 'g') - for _, err := range errs { - info.appendError(err) - } - - imp.addFiles(info, files, true) - - imp.progMu.Lock() - imp.prog.importMap[bp.ImportPath] = info.Pkg - imp.progMu.Unlock() - - return info -} - -// addFiles adds and type-checks the specified files to info, loading -// their dependencies if needed. The order of files determines the -// package initialization order. It may be called multiple times on the -// same package. Errors are appended to the info.Errors field. -// -// cycleCheck determines whether the imports within files create -// dependency edges that should be checked for potential cycles. -// -func (imp *importer) addFiles(info *PackageInfo, files []*ast.File, cycleCheck bool) { - // Ensure the dependencies are loaded, in parallel. - var fromPath string - if cycleCheck { - fromPath = info.Pkg.Path() - } - // TODO(adonovan): opt: make the caller do scanImports. - // Callers with a build.Package can skip it. - imp.importAll(fromPath, info.dir, scanImports(files), 0) - - if trace { - fmt.Fprintf(os.Stderr, "%s: start %q (%d)\n", - time.Since(imp.start), info.Pkg.Path(), len(files)) - } - - // Don't call checker.Files on Unsafe, even with zero files, - // because it would mutate the package, which is a global. - if info.Pkg == types.Unsafe { - if len(files) > 0 { - panic(`"unsafe" package contains unexpected files`) - } - } else { - // Ignore the returned (first) error since we - // already collect them all in the PackageInfo. - info.checker.Files(files) - info.Files = append(info.Files, files...) - } - - if imp.conf.AfterTypeCheck != nil { - imp.conf.AfterTypeCheck(info, files) - } - - if trace { - fmt.Fprintf(os.Stderr, "%s: stop %q\n", - time.Since(imp.start), info.Pkg.Path()) - } -} - -func (imp *importer) newPackageInfo(path, dir string) *PackageInfo { - var pkg *types.Package - if path == "unsafe" { - pkg = types.Unsafe - } else { - pkg = types.NewPackage(path, "") - } - info := &PackageInfo{ - Pkg: pkg, - Info: types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - }, - errorFunc: imp.conf.TypeChecker.Error, - dir: dir, - } - - // Copy the types.Config so we can vary it across PackageInfos. - tc := imp.conf.TypeChecker - tc.IgnoreFuncBodies = false - if f := imp.conf.TypeCheckFuncBodies; f != nil { - tc.IgnoreFuncBodies = !f(path) - } - tc.Importer = closure{imp, info} - tc.Error = info.appendError // appendError wraps the user's Error function - - info.checker = types.NewChecker(&tc, imp.conf.fset(), pkg, &info.Info) - imp.progMu.Lock() - imp.prog.AllPackages[pkg] = info - imp.progMu.Unlock() - return info -} - -type closure struct { - imp *importer - info *PackageInfo -} - -func (c closure) Import(to string) (*types.Package, error) { return c.imp.doImport(c.info, to) } diff --git a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/util.go b/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/util.go deleted file mode 100644 index 7f38dd74..00000000 --- a/vendor/github.com/elastic/beats/vendor/golang.org/x/tools/go/loader/util.go +++ /dev/null @@ -1,124 +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 loader - -import ( - "go/ast" - "go/build" - "go/parser" - "go/token" - "io" - "os" - "strconv" - "sync" - - "golang.org/x/tools/go/buildutil" -) - -// We use a counting semaphore to limit -// the number of parallel I/O calls per process. -var ioLimit = make(chan bool, 10) - -// parseFiles parses the Go source files within directory dir and -// returns the ASTs of the ones that could be at least partially parsed, -// along with a list of I/O and parse errors encountered. -// -// I/O is done via ctxt, which may specify a virtual file system. -// displayPath is used to transform the filenames attached to the ASTs. -// -func parseFiles(fset *token.FileSet, ctxt *build.Context, displayPath func(string) string, dir string, files []string, mode parser.Mode) ([]*ast.File, []error) { - if displayPath == nil { - displayPath = func(path string) string { return path } - } - var wg sync.WaitGroup - n := len(files) - parsed := make([]*ast.File, n) - errors := make([]error, n) - for i, file := range files { - if !buildutil.IsAbsPath(ctxt, file) { - file = buildutil.JoinPath(ctxt, dir, file) - } - wg.Add(1) - go func(i int, file string) { - ioLimit <- true // wait - defer func() { - wg.Done() - <-ioLimit // signal - }() - var rd io.ReadCloser - var err error - if ctxt.OpenFile != nil { - rd, err = ctxt.OpenFile(file) - } else { - rd, err = os.Open(file) - } - if err != nil { - errors[i] = err // open failed - return - } - - // ParseFile may return both an AST and an error. - parsed[i], errors[i] = parser.ParseFile(fset, displayPath(file), rd, mode) - rd.Close() - }(i, file) - } - wg.Wait() - - // Eliminate nils, preserving order. - var o int - for _, f := range parsed { - if f != nil { - parsed[o] = f - o++ - } - } - parsed = parsed[:o] - - o = 0 - for _, err := range errors { - if err != nil { - errors[o] = err - o++ - } - } - errors = errors[:o] - - return parsed, errors -} - -// scanImports returns the set of all import paths from all -// import specs in the specified files. -func scanImports(files []*ast.File) map[string]bool { - imports := make(map[string]bool) - for _, f := range files { - for _, decl := range f.Decls { - if decl, ok := decl.(*ast.GenDecl); ok && decl.Tok == token.IMPORT { - for _, spec := range decl.Specs { - spec := spec.(*ast.ImportSpec) - - // NB: do not assume the program is well-formed! - path, err := strconv.Unquote(spec.Path.Value) - if err != nil { - continue // quietly ignore the error - } - if path == "C" { - continue // skip pseudopackage - } - imports[path] = true - } - } - } - } - return imports -} - -// ---------- Internal helpers ---------- - -// TODO(adonovan): make this a method: func (*token.File) Contains(token.Pos) -func tokenFileContainsPos(f *token.File, pos token.Pos) bool { - p := int(pos) - base := f.Base() - return base <= p && p < base+f.Size() -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/LICENSE b/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/LICENSE deleted file mode 100644 index 87a5cede..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2012 Péter Surányi. Portions 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/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/dec.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/dec.go deleted file mode 100644 index 3b4afedf..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/dec.go +++ /dev/null @@ -1,615 +0,0 @@ -// Package inf (type inf.Dec) implements "infinite-precision" decimal -// arithmetic. -// "Infinite precision" describes two characteristics: practically unlimited -// precision for decimal number representation and no support for calculating -// with any specific fixed precision. -// (Although there is no practical limit on precision, inf.Dec can only -// represent finite decimals.) -// -// This package is currently in experimental stage and the API may change. -// -// This package does NOT support: -// - rounding to specific precisions (as opposed to specific decimal positions) -// - the notion of context (each rounding must be explicit) -// - NaN and Inf values, and distinguishing between positive and negative zero -// - conversions to and from float32/64 types -// -// Features considered for possible addition: -// + formatting options -// + Exp method -// + combined operations such as AddRound/MulAdd etc -// + exchanging data in decimal32/64/128 formats -// -package inf // import "gopkg.in/inf.v0" - -// TODO: -// - avoid excessive deep copying (quo and rounders) - -import ( - "fmt" - "io" - "math/big" - "strings" -) - -// A Dec represents a signed arbitrary-precision decimal. -// It is a combination of a sign, an arbitrary-precision integer coefficient -// value, and a signed fixed-precision exponent value. -// The sign and the coefficient value are handled together as a signed value -// and referred to as the unscaled value. -// (Positive and negative zero values are not distinguished.) -// Since the exponent is most commonly non-positive, it is handled in negated -// form and referred to as scale. -// -// The mathematical value of a Dec equals: -// -// unscaled * 10**(-scale) -// -// Note that different Dec representations may have equal mathematical values. -// -// unscaled scale String() -// ------------------------- -// 0 0 "0" -// 0 2 "0.00" -// 0 -2 "0" -// 1 0 "1" -// 100 2 "1.00" -// 10 0 "10" -// 1 -1 "10" -// -// The zero value for a Dec represents the value 0 with scale 0. -// -// Operations are typically performed through the *Dec type. -// The semantics of the assignment operation "=" for "bare" Dec values is -// undefined and should not be relied on. -// -// Methods are typically of the form: -// -// func (z *Dec) Op(x, y *Dec) *Dec -// -// and implement operations z = x Op y with the result as receiver; if it -// is one of the operands it may be overwritten (and its memory reused). -// To enable chaining of operations, the result is also returned. Methods -// returning a result other than *Dec take one of the operands as the receiver. -// -// A "bare" Quo method (quotient / division operation) is not provided, as the -// result is not always a finite decimal and thus in general cannot be -// represented as a Dec. -// Instead, in the common case when rounding is (potentially) necessary, -// QuoRound should be used with a Scale and a Rounder. -// QuoExact or QuoRound with RoundExact can be used in the special cases when it -// is known that the result is always a finite decimal. -// -type Dec struct { - unscaled big.Int - scale Scale -} - -// Scale represents the type used for the scale of a Dec. -type Scale int32 - -const scaleSize = 4 // bytes in a Scale value - -// Scaler represents a method for obtaining the scale to use for the result of -// an operation on x and y. -type scaler interface { - Scale(x *Dec, y *Dec) Scale -} - -var bigInt = [...]*big.Int{ - big.NewInt(0), big.NewInt(1), big.NewInt(2), big.NewInt(3), big.NewInt(4), - big.NewInt(5), big.NewInt(6), big.NewInt(7), big.NewInt(8), big.NewInt(9), - big.NewInt(10), -} - -var exp10cache [64]big.Int = func() [64]big.Int { - e10, e10i := [64]big.Int{}, bigInt[1] - for i, _ := range e10 { - e10[i].Set(e10i) - e10i = new(big.Int).Mul(e10i, bigInt[10]) - } - return e10 -}() - -// NewDec allocates and returns a new Dec set to the given int64 unscaled value -// and scale. -func NewDec(unscaled int64, scale Scale) *Dec { - return new(Dec).SetUnscaled(unscaled).SetScale(scale) -} - -// NewDecBig allocates and returns a new Dec set to the given *big.Int unscaled -// value and scale. -func NewDecBig(unscaled *big.Int, scale Scale) *Dec { - return new(Dec).SetUnscaledBig(unscaled).SetScale(scale) -} - -// Scale returns the scale of x. -func (x *Dec) Scale() Scale { - return x.scale -} - -// Unscaled returns the unscaled value of x for u and true for ok when the -// unscaled value can be represented as int64; otherwise it returns an undefined -// int64 value for u and false for ok. Use x.UnscaledBig().Int64() to avoid -// checking the validity of the value when the check is known to be redundant. -func (x *Dec) Unscaled() (u int64, ok bool) { - u = x.unscaled.Int64() - var i big.Int - ok = i.SetInt64(u).Cmp(&x.unscaled) == 0 - return -} - -// UnscaledBig returns the unscaled value of x as *big.Int. -func (x *Dec) UnscaledBig() *big.Int { - return &x.unscaled -} - -// SetScale sets the scale of z, with the unscaled value unchanged, and returns -// z. -// The mathematical value of the Dec changes as if it was multiplied by -// 10**(oldscale-scale). -func (z *Dec) SetScale(scale Scale) *Dec { - z.scale = scale - return z -} - -// SetUnscaled sets the unscaled value of z, with the scale unchanged, and -// returns z. -func (z *Dec) SetUnscaled(unscaled int64) *Dec { - z.unscaled.SetInt64(unscaled) - return z -} - -// SetUnscaledBig sets the unscaled value of z, with the scale unchanged, and -// returns z. -func (z *Dec) SetUnscaledBig(unscaled *big.Int) *Dec { - z.unscaled.Set(unscaled) - return z -} - -// Set sets z to the value of x and returns z. -// It does nothing if z == x. -func (z *Dec) Set(x *Dec) *Dec { - if z != x { - z.SetUnscaledBig(x.UnscaledBig()) - z.SetScale(x.Scale()) - } - return z -} - -// Sign returns: -// -// -1 if x < 0 -// 0 if x == 0 -// +1 if x > 0 -// -func (x *Dec) Sign() int { - return x.UnscaledBig().Sign() -} - -// Neg sets z to -x and returns z. -func (z *Dec) Neg(x *Dec) *Dec { - z.SetScale(x.Scale()) - z.UnscaledBig().Neg(x.UnscaledBig()) - return z -} - -// Cmp compares x and y and returns: -// -// -1 if x < y -// 0 if x == y -// +1 if x > y -// -func (x *Dec) Cmp(y *Dec) int { - xx, yy := upscale(x, y) - return xx.UnscaledBig().Cmp(yy.UnscaledBig()) -} - -// Abs sets z to |x| (the absolute value of x) and returns z. -func (z *Dec) Abs(x *Dec) *Dec { - z.SetScale(x.Scale()) - z.UnscaledBig().Abs(x.UnscaledBig()) - return z -} - -// Add sets z to the sum x+y and returns z. -// The scale of z is the greater of the scales of x and y. -func (z *Dec) Add(x, y *Dec) *Dec { - xx, yy := upscale(x, y) - z.SetScale(xx.Scale()) - z.UnscaledBig().Add(xx.UnscaledBig(), yy.UnscaledBig()) - return z -} - -// Sub sets z to the difference x-y and returns z. -// The scale of z is the greater of the scales of x and y. -func (z *Dec) Sub(x, y *Dec) *Dec { - xx, yy := upscale(x, y) - z.SetScale(xx.Scale()) - z.UnscaledBig().Sub(xx.UnscaledBig(), yy.UnscaledBig()) - return z -} - -// Mul sets z to the product x*y and returns z. -// The scale of z is the sum of the scales of x and y. -func (z *Dec) Mul(x, y *Dec) *Dec { - z.SetScale(x.Scale() + y.Scale()) - z.UnscaledBig().Mul(x.UnscaledBig(), y.UnscaledBig()) - return z -} - -// Round sets z to the value of x rounded to Scale s using Rounder r, and -// returns z. -func (z *Dec) Round(x *Dec, s Scale, r Rounder) *Dec { - return z.QuoRound(x, NewDec(1, 0), s, r) -} - -// QuoRound sets z to the quotient x/y, rounded using the given Rounder to the -// specified scale. -// -// If the rounder is RoundExact but the result can not be expressed exactly at -// the specified scale, QuoRound returns nil, and the value of z is undefined. -// -// There is no corresponding Div method; the equivalent can be achieved through -// the choice of Rounder used. -// -func (z *Dec) QuoRound(x, y *Dec, s Scale, r Rounder) *Dec { - return z.quo(x, y, sclr{s}, r) -} - -func (z *Dec) quo(x, y *Dec, s scaler, r Rounder) *Dec { - scl := s.Scale(x, y) - var zzz *Dec - if r.UseRemainder() { - zz, rA, rB := new(Dec).quoRem(x, y, scl, true, new(big.Int), new(big.Int)) - zzz = r.Round(new(Dec), zz, rA, rB) - } else { - zz, _, _ := new(Dec).quoRem(x, y, scl, false, nil, nil) - zzz = r.Round(new(Dec), zz, nil, nil) - } - if zzz == nil { - return nil - } - return z.Set(zzz) -} - -// QuoExact sets z to the quotient x/y and returns z when x/y is a finite -// decimal. Otherwise it returns nil and the value of z is undefined. -// -// The scale of a non-nil result is "x.Scale() - y.Scale()" or greater; it is -// calculated so that the remainder will be zero whenever x/y is a finite -// decimal. -func (z *Dec) QuoExact(x, y *Dec) *Dec { - return z.quo(x, y, scaleQuoExact{}, RoundExact) -} - -// quoRem sets z to the quotient x/y with the scale s, and if useRem is true, -// it sets remNum and remDen to the numerator and denominator of the remainder. -// It returns z, remNum and remDen. -// -// The remainder is normalized to the range -1 < r < 1 to simplify rounding; -// that is, the results satisfy the following equation: -// -// x / y = z + (remNum/remDen) * 10**(-z.Scale()) -// -// See Rounder for more details about rounding. -// -func (z *Dec) quoRem(x, y *Dec, s Scale, useRem bool, - remNum, remDen *big.Int) (*Dec, *big.Int, *big.Int) { - // difference (required adjustment) compared to "canonical" result scale - shift := s - (x.Scale() - y.Scale()) - // pointers to adjusted unscaled dividend and divisor - var ix, iy *big.Int - switch { - case shift > 0: - // increased scale: decimal-shift dividend left - ix = new(big.Int).Mul(x.UnscaledBig(), exp10(shift)) - iy = y.UnscaledBig() - case shift < 0: - // decreased scale: decimal-shift divisor left - ix = x.UnscaledBig() - iy = new(big.Int).Mul(y.UnscaledBig(), exp10(-shift)) - default: - ix = x.UnscaledBig() - iy = y.UnscaledBig() - } - // save a copy of iy in case it to be overwritten with the result - iy2 := iy - if iy == z.UnscaledBig() { - iy2 = new(big.Int).Set(iy) - } - // set scale - z.SetScale(s) - // set unscaled - if useRem { - // Int division - _, intr := z.UnscaledBig().QuoRem(ix, iy, new(big.Int)) - // set remainder - remNum.Set(intr) - remDen.Set(iy2) - } else { - z.UnscaledBig().Quo(ix, iy) - } - return z, remNum, remDen -} - -type sclr struct{ s Scale } - -func (s sclr) Scale(x, y *Dec) Scale { - return s.s -} - -type scaleQuoExact struct{} - -func (sqe scaleQuoExact) Scale(x, y *Dec) Scale { - rem := new(big.Rat).SetFrac(x.UnscaledBig(), y.UnscaledBig()) - f2, f5 := factor2(rem.Denom()), factor(rem.Denom(), bigInt[5]) - var f10 Scale - if f2 > f5 { - f10 = Scale(f2) - } else { - f10 = Scale(f5) - } - return x.Scale() - y.Scale() + f10 -} - -func factor(n *big.Int, p *big.Int) int { - // could be improved for large factors - d, f := n, 0 - for { - dd, dm := new(big.Int).DivMod(d, p, new(big.Int)) - if dm.Sign() == 0 { - f++ - d = dd - } else { - break - } - } - return f -} - -func factor2(n *big.Int) int { - // could be improved for large factors - f := 0 - for ; n.Bit(f) == 0; f++ { - } - return f -} - -func upscale(a, b *Dec) (*Dec, *Dec) { - if a.Scale() == b.Scale() { - return a, b - } - if a.Scale() > b.Scale() { - bb := b.rescale(a.Scale()) - return a, bb - } - aa := a.rescale(b.Scale()) - return aa, b -} - -func exp10(x Scale) *big.Int { - if int(x) < len(exp10cache) { - return &exp10cache[int(x)] - } - return new(big.Int).Exp(bigInt[10], big.NewInt(int64(x)), nil) -} - -func (x *Dec) rescale(newScale Scale) *Dec { - shift := newScale - x.Scale() - switch { - case shift < 0: - e := exp10(-shift) - return NewDecBig(new(big.Int).Quo(x.UnscaledBig(), e), newScale) - case shift > 0: - e := exp10(shift) - return NewDecBig(new(big.Int).Mul(x.UnscaledBig(), e), newScale) - } - return x -} - -var zeros = []byte("00000000000000000000000000000000" + - "00000000000000000000000000000000") -var lzeros = Scale(len(zeros)) - -func appendZeros(s []byte, n Scale) []byte { - for i := Scale(0); i < n; i += lzeros { - if n > i+lzeros { - s = append(s, zeros...) - } else { - s = append(s, zeros[0:n-i]...) - } - } - return s -} - -func (x *Dec) String() string { - if x == nil { - return "" - } - scale := x.Scale() - s := []byte(x.UnscaledBig().String()) - if scale <= 0 { - if scale != 0 && x.unscaled.Sign() != 0 { - s = appendZeros(s, -scale) - } - return string(s) - } - negbit := Scale(-((x.Sign() - 1) / 2)) - // scale > 0 - lens := Scale(len(s)) - if lens-negbit <= scale { - ss := make([]byte, 0, scale+2) - if negbit == 1 { - ss = append(ss, '-') - } - ss = append(ss, '0', '.') - ss = appendZeros(ss, scale-lens+negbit) - ss = append(ss, s[negbit:]...) - return string(ss) - } - // lens > scale - ss := make([]byte, 0, lens+1) - ss = append(ss, s[:lens-scale]...) - ss = append(ss, '.') - ss = append(ss, s[lens-scale:]...) - return string(ss) -} - -// Format is a support routine for fmt.Formatter. It accepts the decimal -// formats 'd' and 'f', and handles both equivalently. -// Width, precision, flags and bases 2, 8, 16 are not supported. -func (x *Dec) Format(s fmt.State, ch rune) { - if ch != 'd' && ch != 'f' && ch != 'v' && ch != 's' { - fmt.Fprintf(s, "%%!%c(dec.Dec=%s)", ch, x.String()) - return - } - fmt.Fprintf(s, x.String()) -} - -func (z *Dec) scan(r io.RuneScanner) (*Dec, error) { - unscaled := make([]byte, 0, 256) // collects chars of unscaled as bytes - dp, dg := -1, -1 // indexes of decimal point, first digit -loop: - for { - ch, _, err := r.ReadRune() - if err == io.EOF { - break loop - } - if err != nil { - return nil, err - } - switch { - case ch == '+' || ch == '-': - if len(unscaled) > 0 || dp >= 0 { // must be first character - r.UnreadRune() - break loop - } - case ch == '.': - if dp >= 0 { - r.UnreadRune() - break loop - } - dp = len(unscaled) - continue // don't add to unscaled - case ch >= '0' && ch <= '9': - if dg == -1 { - dg = len(unscaled) - } - default: - r.UnreadRune() - break loop - } - unscaled = append(unscaled, byte(ch)) - } - if dg == -1 { - return nil, fmt.Errorf("no digits read") - } - if dp >= 0 { - z.SetScale(Scale(len(unscaled) - dp)) - } else { - z.SetScale(0) - } - _, ok := z.UnscaledBig().SetString(string(unscaled), 10) - if !ok { - return nil, fmt.Errorf("invalid decimal: %s", string(unscaled)) - } - return z, nil -} - -// SetString sets z to the value of s, interpreted as a decimal (base 10), -// and returns z and a boolean indicating success. The scale of z is the -// number of digits after the decimal point (including any trailing 0s), -// or 0 if there is no decimal point. If SetString fails, the value of z -// is undefined but the returned value is nil. -func (z *Dec) SetString(s string) (*Dec, bool) { - r := strings.NewReader(s) - _, err := z.scan(r) - if err != nil { - return nil, false - } - _, _, err = r.ReadRune() - if err != io.EOF { - return nil, false - } - // err == io.EOF => scan consumed all of s - return z, true -} - -// Scan is a support routine for fmt.Scanner; it sets z to the value of -// the scanned number. It accepts the decimal formats 'd' and 'f', and -// handles both equivalently. Bases 2, 8, 16 are not supported. -// The scale of z is the number of digits after the decimal point -// (including any trailing 0s), or 0 if there is no decimal point. -func (z *Dec) Scan(s fmt.ScanState, ch rune) error { - if ch != 'd' && ch != 'f' && ch != 's' && ch != 'v' { - return fmt.Errorf("Dec.Scan: invalid verb '%c'", ch) - } - s.SkipSpace() - _, err := z.scan(s) - return err -} - -// Gob encoding version -const decGobVersion byte = 1 - -func scaleBytes(s Scale) []byte { - buf := make([]byte, scaleSize) - i := scaleSize - for j := 0; j < scaleSize; j++ { - i-- - buf[i] = byte(s) - s >>= 8 - } - return buf -} - -func scale(b []byte) (s Scale) { - for j := 0; j < scaleSize; j++ { - s <<= 8 - s |= Scale(b[j]) - } - return -} - -// GobEncode implements the gob.GobEncoder interface. -func (x *Dec) GobEncode() ([]byte, error) { - buf, err := x.UnscaledBig().GobEncode() - if err != nil { - return nil, err - } - buf = append(append(buf, scaleBytes(x.Scale())...), decGobVersion) - return buf, nil -} - -// GobDecode implements the gob.GobDecoder interface. -func (z *Dec) GobDecode(buf []byte) error { - if len(buf) == 0 { - return fmt.Errorf("Dec.GobDecode: no data") - } - b := buf[len(buf)-1] - if b != decGobVersion { - return fmt.Errorf("Dec.GobDecode: encoding version %d not supported", b) - } - l := len(buf) - scaleSize - 1 - err := z.UnscaledBig().GobDecode(buf[:l]) - if err != nil { - return err - } - z.SetScale(scale(buf[l : l+scaleSize])) - return nil -} - -// MarshalText implements the encoding.TextMarshaler interface. -func (x *Dec) MarshalText() ([]byte, error) { - return []byte(x.String()), nil -} - -// UnmarshalText implements the encoding.TextUnmarshaler interface. -func (z *Dec) UnmarshalText(data []byte) error { - _, ok := z.SetString(string(data)) - if !ok { - return fmt.Errorf("invalid inf.Dec") - } - return nil -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/rounder.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/rounder.go deleted file mode 100644 index 3a97ef52..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/inf.v0/rounder.go +++ /dev/null @@ -1,145 +0,0 @@ -package inf - -import ( - "math/big" -) - -// Rounder represents a method for rounding the (possibly infinite decimal) -// result of a division to a finite Dec. It is used by Dec.Round() and -// Dec.Quo(). -// -// See the Example for results of using each Rounder with some sample values. -// -type Rounder rounder - -// See http://speleotrove.com/decimal/damodel.html#refround for more detailed -// definitions of these rounding modes. -var ( - RoundDown Rounder // towards 0 - RoundUp Rounder // away from 0 - RoundFloor Rounder // towards -infinity - RoundCeil Rounder // towards +infinity - RoundHalfDown Rounder // to nearest; towards 0 if same distance - RoundHalfUp Rounder // to nearest; away from 0 if same distance - RoundHalfEven Rounder // to nearest; even last digit if same distance -) - -// RoundExact is to be used in the case when rounding is not necessary. -// When used with Quo or Round, it returns the result verbatim when it can be -// expressed exactly with the given precision, and it returns nil otherwise. -// QuoExact is a shorthand for using Quo with RoundExact. -var RoundExact Rounder - -type rounder interface { - - // When UseRemainder() returns true, the Round() method is passed the - // remainder of the division, expressed as the numerator and denominator of - // a rational. - UseRemainder() bool - - // Round sets the rounded value of a quotient to z, and returns z. - // quo is rounded down (truncated towards zero) to the scale obtained from - // the Scaler in Quo(). - // - // When the remainder is not used, remNum and remDen are nil. - // When used, the remainder is normalized between -1 and 1; that is: - // - // -|remDen| < remNum < |remDen| - // - // remDen has the same sign as y, and remNum is zero or has the same sign - // as x. - Round(z, quo *Dec, remNum, remDen *big.Int) *Dec -} - -type rndr struct { - useRem bool - round func(z, quo *Dec, remNum, remDen *big.Int) *Dec -} - -func (r rndr) UseRemainder() bool { - return r.useRem -} - -func (r rndr) Round(z, quo *Dec, remNum, remDen *big.Int) *Dec { - return r.round(z, quo, remNum, remDen) -} - -var intSign = []*big.Int{big.NewInt(-1), big.NewInt(0), big.NewInt(1)} - -func roundHalf(f func(c int, odd uint) (roundUp bool)) func(z, q *Dec, rA, rB *big.Int) *Dec { - return func(z, q *Dec, rA, rB *big.Int) *Dec { - z.Set(q) - brA, brB := rA.BitLen(), rB.BitLen() - if brA < brB-1 { - // brA < brB-1 => |rA| < |rB/2| - return z - } - roundUp := false - srA, srB := rA.Sign(), rB.Sign() - s := srA * srB - if brA == brB-1 { - rA2 := new(big.Int).Lsh(rA, 1) - if s < 0 { - rA2.Neg(rA2) - } - roundUp = f(rA2.Cmp(rB)*srB, z.UnscaledBig().Bit(0)) - } else { - // brA > brB-1 => |rA| > |rB/2| - roundUp = true - } - if roundUp { - z.UnscaledBig().Add(z.UnscaledBig(), intSign[s+1]) - } - return z - } -} - -func init() { - RoundExact = rndr{true, - func(z, q *Dec, rA, rB *big.Int) *Dec { - if rA.Sign() != 0 { - return nil - } - return z.Set(q) - }} - RoundDown = rndr{false, - func(z, q *Dec, rA, rB *big.Int) *Dec { - return z.Set(q) - }} - RoundUp = rndr{true, - func(z, q *Dec, rA, rB *big.Int) *Dec { - z.Set(q) - if rA.Sign() != 0 { - z.UnscaledBig().Add(z.UnscaledBig(), intSign[rA.Sign()*rB.Sign()+1]) - } - return z - }} - RoundFloor = rndr{true, - func(z, q *Dec, rA, rB *big.Int) *Dec { - z.Set(q) - if rA.Sign()*rB.Sign() < 0 { - z.UnscaledBig().Add(z.UnscaledBig(), intSign[0]) - } - return z - }} - RoundCeil = rndr{true, - func(z, q *Dec, rA, rB *big.Int) *Dec { - z.Set(q) - if rA.Sign()*rB.Sign() > 0 { - z.UnscaledBig().Add(z.UnscaledBig(), intSign[2]) - } - return z - }} - RoundHalfDown = rndr{true, roundHalf( - func(c int, odd uint) bool { - return c > 0 - })} - RoundHalfUp = rndr{true, roundHalf( - func(c int, odd uint) bool { - return c >= 0 - })} - RoundHalfEven = rndr{true, roundHalf( - func(c int, odd uint) bool { - return c > 0 || c == 0 && odd == 1 - })} -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/LICENSE b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/LICENSE deleted file mode 100644 index 770c7672..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -mgo - MongoDB driver for Go - -Copyright (c) 2010-2013 - Gustavo Niemeyer - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -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/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/Makefile b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/Makefile deleted file mode 100644 index d1027d45..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -startdb: - @harness/setup.sh start - -stopdb: - @harness/setup.sh stop diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/README.md b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/README.md deleted file mode 100644 index f4e452c0..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The MongoDB driver for Go -------------------------- - -Please go to [http://labix.org/mgo](http://labix.org/mgo) for all project details. diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/auth.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/auth.go deleted file mode 100644 index dc26e52f..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/auth.go +++ /dev/null @@ -1,467 +0,0 @@ -// mgo - MongoDB driver for Go -// -// Copyright (c) 2010-2012 - Gustavo Niemeyer -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// 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. - -package mgo - -import ( - "crypto/md5" - "crypto/sha1" - "encoding/hex" - "errors" - "fmt" - "sync" - - "gopkg.in/mgo.v2/bson" - "gopkg.in/mgo.v2/internal/scram" -) - -type authCmd struct { - Authenticate int - - Nonce string - User string - Key string -} - -type startSaslCmd struct { - StartSASL int `bson:"startSasl"` -} - -type authResult struct { - ErrMsg string - Ok bool -} - -type getNonceCmd struct { - GetNonce int -} - -type getNonceResult struct { - Nonce string - Err string "$err" - Code int -} - -type logoutCmd struct { - Logout int -} - -type saslCmd struct { - Start int `bson:"saslStart,omitempty"` - Continue int `bson:"saslContinue,omitempty"` - ConversationId int `bson:"conversationId,omitempty"` - Mechanism string `bson:"mechanism,omitempty"` - Payload []byte -} - -type saslResult struct { - Ok bool `bson:"ok"` - NotOk bool `bson:"code"` // Server <= 2.3.2 returns ok=1 & code>0 on errors (WTF?) - Done bool - - ConversationId int `bson:"conversationId"` - Payload []byte - ErrMsg string -} - -type saslStepper interface { - Step(serverData []byte) (clientData []byte, done bool, err error) - Close() -} - -func (socket *mongoSocket) getNonce() (nonce string, err error) { - socket.Lock() - for socket.cachedNonce == "" && socket.dead == nil { - debugf("Socket %p to %s: waiting for nonce", socket, socket.addr) - socket.gotNonce.Wait() - } - if socket.cachedNonce == "mongos" { - socket.Unlock() - return "", errors.New("Can't authenticate with mongos; see http://j.mp/mongos-auth") - } - debugf("Socket %p to %s: got nonce", socket, socket.addr) - nonce, err = socket.cachedNonce, socket.dead - socket.cachedNonce = "" - socket.Unlock() - if err != nil { - nonce = "" - } - return -} - -func (socket *mongoSocket) resetNonce() { - debugf("Socket %p to %s: requesting a new nonce", socket, socket.addr) - op := &queryOp{} - op.query = &getNonceCmd{GetNonce: 1} - op.collection = "admin.$cmd" - op.limit = -1 - op.replyFunc = func(err error, reply *replyOp, docNum int, docData []byte) { - if err != nil { - socket.kill(errors.New("getNonce: "+err.Error()), true) - return - } - result := &getNonceResult{} - err = bson.Unmarshal(docData, &result) - if err != nil { - socket.kill(errors.New("Failed to unmarshal nonce: "+err.Error()), true) - return - } - debugf("Socket %p to %s: nonce unmarshalled: %#v", socket, socket.addr, result) - if result.Code == 13390 { - // mongos doesn't yet support auth (see http://j.mp/mongos-auth) - result.Nonce = "mongos" - } else if result.Nonce == "" { - var msg string - if result.Err != "" { - msg = fmt.Sprintf("Got an empty nonce: %s (%d)", result.Err, result.Code) - } else { - msg = "Got an empty nonce" - } - socket.kill(errors.New(msg), true) - return - } - socket.Lock() - if socket.cachedNonce != "" { - socket.Unlock() - panic("resetNonce: nonce already cached") - } - socket.cachedNonce = result.Nonce - socket.gotNonce.Signal() - socket.Unlock() - } - err := socket.Query(op) - if err != nil { - socket.kill(errors.New("resetNonce: "+err.Error()), true) - } -} - -func (socket *mongoSocket) Login(cred Credential) error { - socket.Lock() - if cred.Mechanism == "" && socket.serverInfo.MaxWireVersion >= 3 { - cred.Mechanism = "SCRAM-SHA-1" - } - for _, sockCred := range socket.creds { - if sockCred == cred { - debugf("Socket %p to %s: login: db=%q user=%q (already logged in)", socket, socket.addr, cred.Source, cred.Username) - socket.Unlock() - return nil - } - } - if socket.dropLogout(cred) { - debugf("Socket %p to %s: login: db=%q user=%q (cached)", socket, socket.addr, cred.Source, cred.Username) - socket.creds = append(socket.creds, cred) - socket.Unlock() - return nil - } - socket.Unlock() - - debugf("Socket %p to %s: login: db=%q user=%q", socket, socket.addr, cred.Source, cred.Username) - - var err error - switch cred.Mechanism { - case "", "MONGODB-CR", "MONGO-CR": // Name changed to MONGODB-CR in SERVER-8501. - err = socket.loginClassic(cred) - case "PLAIN": - err = socket.loginPlain(cred) - case "MONGODB-X509": - err = socket.loginX509(cred) - default: - // Try SASL for everything else, if it is available. - err = socket.loginSASL(cred) - } - - if err != nil { - debugf("Socket %p to %s: login error: %s", socket, socket.addr, err) - } else { - debugf("Socket %p to %s: login successful", socket, socket.addr) - } - return err -} - -func (socket *mongoSocket) loginClassic(cred Credential) error { - // Note that this only works properly because this function is - // synchronous, which means the nonce won't get reset while we're - // using it and any other login requests will block waiting for a - // new nonce provided in the defer call below. - nonce, err := socket.getNonce() - if err != nil { - return err - } - defer socket.resetNonce() - - psum := md5.New() - psum.Write([]byte(cred.Username + ":mongo:" + cred.Password)) - - ksum := md5.New() - ksum.Write([]byte(nonce + cred.Username)) - ksum.Write([]byte(hex.EncodeToString(psum.Sum(nil)))) - - key := hex.EncodeToString(ksum.Sum(nil)) - - cmd := authCmd{Authenticate: 1, User: cred.Username, Nonce: nonce, Key: key} - res := authResult{} - return socket.loginRun(cred.Source, &cmd, &res, func() error { - if !res.Ok { - return errors.New(res.ErrMsg) - } - socket.Lock() - socket.dropAuth(cred.Source) - socket.creds = append(socket.creds, cred) - socket.Unlock() - return nil - }) -} - -type authX509Cmd struct { - Authenticate int - User string - Mechanism string -} - -func (socket *mongoSocket) loginX509(cred Credential) error { - cmd := authX509Cmd{Authenticate: 1, User: cred.Username, Mechanism: "MONGODB-X509"} - res := authResult{} - return socket.loginRun(cred.Source, &cmd, &res, func() error { - if !res.Ok { - return errors.New(res.ErrMsg) - } - socket.Lock() - socket.dropAuth(cred.Source) - socket.creds = append(socket.creds, cred) - socket.Unlock() - return nil - }) -} - -func (socket *mongoSocket) loginPlain(cred Credential) error { - cmd := saslCmd{Start: 1, Mechanism: "PLAIN", Payload: []byte("\x00" + cred.Username + "\x00" + cred.Password)} - res := authResult{} - return socket.loginRun(cred.Source, &cmd, &res, func() error { - if !res.Ok { - return errors.New(res.ErrMsg) - } - socket.Lock() - socket.dropAuth(cred.Source) - socket.creds = append(socket.creds, cred) - socket.Unlock() - return nil - }) -} - -func (socket *mongoSocket) loginSASL(cred Credential) error { - var sasl saslStepper - var err error - if cred.Mechanism == "SCRAM-SHA-1" { - // SCRAM is handled without external libraries. - sasl = saslNewScram(cred) - } else if len(cred.ServiceHost) > 0 { - sasl, err = saslNew(cred, cred.ServiceHost) - } else { - sasl, err = saslNew(cred, socket.Server().Addr) - } - if err != nil { - return err - } - defer sasl.Close() - - // The goal of this logic is to carry a locked socket until the - // local SASL step confirms the auth is valid; the socket needs to be - // locked so that concurrent action doesn't leave the socket in an - // auth state that doesn't reflect the operations that took place. - // As a simple case, imagine inverting login=>logout to logout=>login. - // - // The logic below works because the lock func isn't called concurrently. - locked := false - lock := func(b bool) { - if locked != b { - locked = b - if b { - socket.Lock() - } else { - socket.Unlock() - } - } - } - - lock(true) - defer lock(false) - - start := 1 - cmd := saslCmd{} - res := saslResult{} - for { - payload, done, err := sasl.Step(res.Payload) - if err != nil { - return err - } - if done && res.Done { - socket.dropAuth(cred.Source) - socket.creds = append(socket.creds, cred) - break - } - lock(false) - - cmd = saslCmd{ - Start: start, - Continue: 1 - start, - ConversationId: res.ConversationId, - Mechanism: cred.Mechanism, - Payload: payload, - } - start = 0 - err = socket.loginRun(cred.Source, &cmd, &res, func() error { - // See the comment on lock for why this is necessary. - lock(true) - if !res.Ok || res.NotOk { - return fmt.Errorf("server returned error on SASL authentication step: %s", res.ErrMsg) - } - return nil - }) - if err != nil { - return err - } - if done && res.Done { - socket.dropAuth(cred.Source) - socket.creds = append(socket.creds, cred) - break - } - } - - return nil -} - -func saslNewScram(cred Credential) *saslScram { - credsum := md5.New() - credsum.Write([]byte(cred.Username + ":mongo:" + cred.Password)) - client := scram.NewClient(sha1.New, cred.Username, hex.EncodeToString(credsum.Sum(nil))) - return &saslScram{cred: cred, client: client} -} - -type saslScram struct { - cred Credential - client *scram.Client -} - -func (s *saslScram) Close() {} - -func (s *saslScram) Step(serverData []byte) (clientData []byte, done bool, err error) { - more := s.client.Step(serverData) - return s.client.Out(), !more, s.client.Err() -} - -func (socket *mongoSocket) loginRun(db string, query, result interface{}, f func() error) error { - var mutex sync.Mutex - var replyErr error - mutex.Lock() - - op := queryOp{} - op.query = query - op.collection = db + ".$cmd" - op.limit = -1 - op.replyFunc = func(err error, reply *replyOp, docNum int, docData []byte) { - defer mutex.Unlock() - - if err != nil { - replyErr = err - return - } - - err = bson.Unmarshal(docData, result) - if err != nil { - replyErr = err - } else { - // Must handle this within the read loop for the socket, so - // that concurrent login requests are properly ordered. - replyErr = f() - } - } - - err := socket.Query(&op) - if err != nil { - return err - } - mutex.Lock() // Wait. - return replyErr -} - -func (socket *mongoSocket) Logout(db string) { - socket.Lock() - cred, found := socket.dropAuth(db) - if found { - debugf("Socket %p to %s: logout: db=%q (flagged)", socket, socket.addr, db) - socket.logout = append(socket.logout, cred) - } - socket.Unlock() -} - -func (socket *mongoSocket) LogoutAll() { - socket.Lock() - if l := len(socket.creds); l > 0 { - debugf("Socket %p to %s: logout all (flagged %d)", socket, socket.addr, l) - socket.logout = append(socket.logout, socket.creds...) - socket.creds = socket.creds[0:0] - } - socket.Unlock() -} - -func (socket *mongoSocket) flushLogout() (ops []interface{}) { - socket.Lock() - if l := len(socket.logout); l > 0 { - debugf("Socket %p to %s: logout all (flushing %d)", socket, socket.addr, l) - for i := 0; i != l; i++ { - op := queryOp{} - op.query = &logoutCmd{1} - op.collection = socket.logout[i].Source + ".$cmd" - op.limit = -1 - ops = append(ops, &op) - } - socket.logout = socket.logout[0:0] - } - socket.Unlock() - return -} - -func (socket *mongoSocket) dropAuth(db string) (cred Credential, found bool) { - for i, sockCred := range socket.creds { - if sockCred.Source == db { - copy(socket.creds[i:], socket.creds[i+1:]) - socket.creds = socket.creds[:len(socket.creds)-1] - return sockCred, true - } - } - return cred, false -} - -func (socket *mongoSocket) dropLogout(cred Credential) (found bool) { - for i, sockCred := range socket.logout { - if sockCred == cred { - copy(socket.logout[i:], socket.logout[i+1:]) - socket.logout = socket.logout[:len(socket.logout)-1] - return true - } - } - return false -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/LICENSE b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/LICENSE deleted file mode 100644 index 89032601..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -BSON library for Go - -Copyright (c) 2010-2012 - Gustavo Niemeyer - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -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/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/bson.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/bson.go deleted file mode 100644 index 7fb7f8ca..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/bson.go +++ /dev/null @@ -1,738 +0,0 @@ -// BSON library for Go -// -// Copyright (c) 2010-2012 - Gustavo Niemeyer -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// 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. - -// Package bson is an implementation of the BSON specification for Go: -// -// http://bsonspec.org -// -// It was created as part of the mgo MongoDB driver for Go, but is standalone -// and may be used on its own without the driver. -package bson - -import ( - "bytes" - "crypto/md5" - "crypto/rand" - "encoding/binary" - "encoding/hex" - "encoding/json" - "errors" - "fmt" - "io" - "os" - "reflect" - "runtime" - "strings" - "sync" - "sync/atomic" - "time" -) - -// -------------------------------------------------------------------------- -// The public API. - -// A value implementing the bson.Getter interface will have its GetBSON -// method called when the given value has to be marshalled, and the result -// of this method will be marshaled in place of the actual object. -// -// If GetBSON returns return a non-nil error, the marshalling procedure -// will stop and error out with the provided value. -type Getter interface { - GetBSON() (interface{}, error) -} - -// A value implementing the bson.Setter interface will receive the BSON -// value via the SetBSON method during unmarshaling, and the object -// itself will not be changed as usual. -// -// If setting the value works, the method should return nil or alternatively -// bson.SetZero to set the respective field to its zero value (nil for -// pointer types). If SetBSON returns a value of type bson.TypeError, the -// BSON value will be omitted from a map or slice being decoded and the -// unmarshalling will continue. If it returns any other non-nil error, the -// unmarshalling procedure will stop and error out with the provided value. -// -// This interface is generally useful in pointer receivers, since the method -// will want to change the receiver. A type field that implements the Setter -// interface doesn't have to be a pointer, though. -// -// Unlike the usual behavior, unmarshalling onto a value that implements a -// Setter interface will NOT reset the value to its zero state. This allows -// the value to decide by itself how to be unmarshalled. -// -// For example: -// -// type MyString string -// -// func (s *MyString) SetBSON(raw bson.Raw) error { -// return raw.Unmarshal(s) -// } -// -type Setter interface { - SetBSON(raw Raw) error -} - -// SetZero may be returned from a SetBSON method to have the value set to -// its respective zero value. When used in pointer values, this will set the -// field to nil rather than to the pre-allocated value. -var SetZero = errors.New("set to zero") - -// M is a convenient alias for a map[string]interface{} map, useful for -// dealing with BSON in a native way. For instance: -// -// bson.M{"a": 1, "b": true} -// -// There's no special handling for this type in addition to what's done anyway -// for an equivalent map type. Elements in the map will be dumped in an -// undefined ordered. See also the bson.D type for an ordered alternative. -type M map[string]interface{} - -// D represents a BSON document containing ordered elements. For example: -// -// bson.D{{"a", 1}, {"b", true}} -// -// In some situations, such as when creating indexes for MongoDB, the order in -// which the elements are defined is important. If the order is not important, -// using a map is generally more comfortable. See bson.M and bson.RawD. -type D []DocElem - -// DocElem is an element of the bson.D document representation. -type DocElem struct { - Name string - Value interface{} -} - -// Map returns a map out of the ordered element name/value pairs in d. -func (d D) Map() (m M) { - m = make(M, len(d)) - for _, item := range d { - m[item.Name] = item.Value - } - return m -} - -// The Raw type represents raw unprocessed BSON documents and elements. -// Kind is the kind of element as defined per the BSON specification, and -// Data is the raw unprocessed data for the respective element. -// Using this type it is possible to unmarshal or marshal values partially. -// -// Relevant documentation: -// -// http://bsonspec.org/#/specification -// -type Raw struct { - Kind byte - Data []byte -} - -// RawD represents a BSON document containing raw unprocessed elements. -// This low-level representation may be useful when lazily processing -// documents of uncertain content, or when manipulating the raw content -// documents in general. -type RawD []RawDocElem - -// See the RawD type. -type RawDocElem struct { - Name string - Value Raw -} - -// ObjectId is a unique ID identifying a BSON value. It must be exactly 12 bytes -// long. MongoDB objects by default have such a property set in their "_id" -// property. -// -// http://www.mongodb.org/display/DOCS/Object+IDs -type ObjectId string - -// ObjectIdHex returns an ObjectId from the provided hex representation. -// Calling this function with an invalid hex representation will -// cause a runtime panic. See the IsObjectIdHex function. -func ObjectIdHex(s string) ObjectId { - d, err := hex.DecodeString(s) - if err != nil || len(d) != 12 { - panic(fmt.Sprintf("invalid input to ObjectIdHex: %q", s)) - } - return ObjectId(d) -} - -// IsObjectIdHex returns whether s is a valid hex representation of -// an ObjectId. See the ObjectIdHex function. -func IsObjectIdHex(s string) bool { - if len(s) != 24 { - return false - } - _, err := hex.DecodeString(s) - return err == nil -} - -// objectIdCounter is atomically incremented when generating a new ObjectId -// using NewObjectId() function. It's used as a counter part of an id. -var objectIdCounter uint32 = readRandomUint32() - -// readRandomUint32 returns a random objectIdCounter. -func readRandomUint32() uint32 { - var b [4]byte - _, err := io.ReadFull(rand.Reader, b[:]) - if err != nil { - panic(fmt.Errorf("cannot read random object id: %v", err)) - } - return uint32((uint32(b[0]) << 0) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24)) -} - -// machineId stores machine id generated once and used in subsequent calls -// to NewObjectId function. -var machineId = readMachineId() -var processId = os.Getpid() - -// readMachineId generates and returns a machine id. -// If this function fails to get the hostname it will cause a runtime error. -func readMachineId() []byte { - var sum [3]byte - id := sum[:] - hostname, err1 := os.Hostname() - if err1 != nil { - _, err2 := io.ReadFull(rand.Reader, id) - if err2 != nil { - panic(fmt.Errorf("cannot get hostname: %v; %v", err1, err2)) - } - return id - } - hw := md5.New() - hw.Write([]byte(hostname)) - copy(id, hw.Sum(nil)) - return id -} - -// NewObjectId returns a new unique ObjectId. -func NewObjectId() ObjectId { - var b [12]byte - // Timestamp, 4 bytes, big endian - binary.BigEndian.PutUint32(b[:], uint32(time.Now().Unix())) - // Machine, first 3 bytes of md5(hostname) - b[4] = machineId[0] - b[5] = machineId[1] - b[6] = machineId[2] - // Pid, 2 bytes, specs don't specify endianness, but we use big endian. - b[7] = byte(processId >> 8) - b[8] = byte(processId) - // Increment, 3 bytes, big endian - i := atomic.AddUint32(&objectIdCounter, 1) - b[9] = byte(i >> 16) - b[10] = byte(i >> 8) - b[11] = byte(i) - return ObjectId(b[:]) -} - -// NewObjectIdWithTime returns a dummy ObjectId with the timestamp part filled -// with the provided number of seconds from epoch UTC, and all other parts -// filled with zeroes. It's not safe to insert a document with an id generated -// by this method, it is useful only for queries to find documents with ids -// generated before or after the specified timestamp. -func NewObjectIdWithTime(t time.Time) ObjectId { - var b [12]byte - binary.BigEndian.PutUint32(b[:4], uint32(t.Unix())) - return ObjectId(string(b[:])) -} - -// String returns a hex string representation of the id. -// Example: ObjectIdHex("4d88e15b60f486e428412dc9"). -func (id ObjectId) String() string { - return fmt.Sprintf(`ObjectIdHex("%x")`, string(id)) -} - -// Hex returns a hex representation of the ObjectId. -func (id ObjectId) Hex() string { - return hex.EncodeToString([]byte(id)) -} - -// MarshalJSON turns a bson.ObjectId into a json.Marshaller. -func (id ObjectId) MarshalJSON() ([]byte, error) { - return []byte(fmt.Sprintf(`"%x"`, string(id))), nil -} - -var nullBytes = []byte("null") - -// UnmarshalJSON turns *bson.ObjectId into a json.Unmarshaller. -func (id *ObjectId) UnmarshalJSON(data []byte) error { - if len(data) > 0 && (data[0] == '{' || data[0] == 'O') { - var v struct { - Id json.RawMessage `json:"$oid"` - Func struct { - Id json.RawMessage - } `json:"$oidFunc"` - } - err := jdec(data, &v) - if err == nil { - if len(v.Id) > 0 { - data = []byte(v.Id) - } else { - data = []byte(v.Func.Id) - } - } - } - if len(data) == 2 && data[0] == '"' && data[1] == '"' || bytes.Equal(data, nullBytes) { - *id = "" - return nil - } - if len(data) != 26 || data[0] != '"' || data[25] != '"' { - return errors.New(fmt.Sprintf("invalid ObjectId in JSON: %s", string(data))) - } - var buf [12]byte - _, err := hex.Decode(buf[:], data[1:25]) - if err != nil { - return errors.New(fmt.Sprintf("invalid ObjectId in JSON: %s (%s)", string(data), err)) - } - *id = ObjectId(string(buf[:])) - return nil -} - -// MarshalText turns bson.ObjectId into an encoding.TextMarshaler. -func (id ObjectId) MarshalText() ([]byte, error) { - return []byte(fmt.Sprintf("%x", string(id))), nil -} - -// UnmarshalText turns *bson.ObjectId into an encoding.TextUnmarshaler. -func (id *ObjectId) UnmarshalText(data []byte) error { - if len(data) == 1 && data[0] == ' ' || len(data) == 0 { - *id = "" - return nil - } - if len(data) != 24 { - return fmt.Errorf("invalid ObjectId: %s", data) - } - var buf [12]byte - _, err := hex.Decode(buf[:], data[:]) - if err != nil { - return fmt.Errorf("invalid ObjectId: %s (%s)", data, err) - } - *id = ObjectId(string(buf[:])) - return nil -} - -// Valid returns true if id is valid. A valid id must contain exactly 12 bytes. -func (id ObjectId) Valid() bool { - return len(id) == 12 -} - -// byteSlice returns byte slice of id from start to end. -// Calling this function with an invalid id will cause a runtime panic. -func (id ObjectId) byteSlice(start, end int) []byte { - if len(id) != 12 { - panic(fmt.Sprintf("invalid ObjectId: %q", string(id))) - } - return []byte(string(id)[start:end]) -} - -// Time returns the timestamp part of the id. -// It's a runtime error to call this method with an invalid id. -func (id ObjectId) Time() time.Time { - // First 4 bytes of ObjectId is 32-bit big-endian seconds from epoch. - secs := int64(binary.BigEndian.Uint32(id.byteSlice(0, 4))) - return time.Unix(secs, 0) -} - -// Machine returns the 3-byte machine id part of the id. -// It's a runtime error to call this method with an invalid id. -func (id ObjectId) Machine() []byte { - return id.byteSlice(4, 7) -} - -// Pid returns the process id part of the id. -// It's a runtime error to call this method with an invalid id. -func (id ObjectId) Pid() uint16 { - return binary.BigEndian.Uint16(id.byteSlice(7, 9)) -} - -// Counter returns the incrementing value part of the id. -// It's a runtime error to call this method with an invalid id. -func (id ObjectId) Counter() int32 { - b := id.byteSlice(9, 12) - // Counter is stored as big-endian 3-byte value - return int32(uint32(b[0])<<16 | uint32(b[1])<<8 | uint32(b[2])) -} - -// The Symbol type is similar to a string and is used in languages with a -// distinct symbol type. -type Symbol string - -// Now returns the current time with millisecond precision. MongoDB stores -// timestamps with the same precision, so a Time returned from this method -// will not change after a roundtrip to the database. That's the only reason -// why this function exists. Using the time.Now function also works fine -// otherwise. -func Now() time.Time { - return time.Unix(0, time.Now().UnixNano()/1e6*1e6) -} - -// MongoTimestamp is a special internal type used by MongoDB that for some -// strange reason has its own datatype defined in BSON. -type MongoTimestamp int64 - -type orderKey int64 - -// MaxKey is a special value that compares higher than all other possible BSON -// values in a MongoDB database. -var MaxKey = orderKey(1<<63 - 1) - -// MinKey is a special value that compares lower than all other possible BSON -// values in a MongoDB database. -var MinKey = orderKey(-1 << 63) - -type undefined struct{} - -// Undefined represents the undefined BSON value. -var Undefined undefined - -// Binary is a representation for non-standard binary values. Any kind should -// work, but the following are known as of this writing: -// -// 0x00 - Generic. This is decoded as []byte(data), not Binary{0x00, data}. -// 0x01 - Function (!?) -// 0x02 - Obsolete generic. -// 0x03 - UUID -// 0x05 - MD5 -// 0x80 - User defined. -// -type Binary struct { - Kind byte - Data []byte -} - -// RegEx represents a regular expression. The Options field may contain -// individual characters defining the way in which the pattern should be -// applied, and must be sorted. Valid options as of this writing are 'i' for -// case insensitive matching, 'm' for multi-line matching, 'x' for verbose -// mode, 'l' to make \w, \W, and similar be locale-dependent, 's' for dot-all -// mode (a '.' matches everything), and 'u' to make \w, \W, and similar match -// unicode. The value of the Options parameter is not verified before being -// marshaled into the BSON format. -type RegEx struct { - Pattern string - Options string -} - -// JavaScript is a type that holds JavaScript code. If Scope is non-nil, it -// will be marshaled as a mapping from identifiers to values that may be -// used when evaluating the provided Code. -type JavaScript struct { - Code string - Scope interface{} -} - -// DBPointer refers to a document id in a namespace. -// -// This type is deprecated in the BSON specification and should not be used -// except for backwards compatibility with ancient applications. -type DBPointer struct { - Namespace string - Id ObjectId -} - -const initialBufferSize = 64 - -func handleErr(err *error) { - if r := recover(); r != nil { - if _, ok := r.(runtime.Error); ok { - panic(r) - } else if _, ok := r.(externalPanic); ok { - panic(r) - } else if s, ok := r.(string); ok { - *err = errors.New(s) - } else if e, ok := r.(error); ok { - *err = e - } else { - panic(r) - } - } -} - -// Marshal serializes the in value, which may be a map or a struct value. -// In the case of struct values, only exported fields will be serialized, -// and the order of serialized fields will match that of the struct itself. -// The lowercased field name is used as the key for each exported field, -// but this behavior may be changed using the respective field tag. -// The tag may also contain flags to tweak the marshalling behavior for -// the field. The tag formats accepted are: -// -// "[][,[,]]" -// -// `(...) bson:"[][,[,]]" (...)` -// -// 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. -// -// minsize Marshal an int64 value as an int32, if that's feasible -// while preserving the numeric value. -// -// 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 bson keys of other struct fields. -// -// Some examples: -// -// type T struct { -// A bool -// B int "myb" -// C string "myc,omitempty" -// D string `bson:",omitempty" json:"jsonkey"` -// E int64 ",minsize" -// F int64 "myf,omitempty,minsize" -// } -// -func Marshal(in interface{}) (out []byte, err error) { - defer handleErr(&err) - e := &encoder{make([]byte, 0, initialBufferSize)} - e.addDoc(reflect.ValueOf(in)) - return e.out, nil -} - -// Unmarshal deserializes data from in into the out value. The out value -// must be a map, a pointer to a struct, or a pointer to a bson.D value. -// In the case of struct values, only exported fields will be deserialized. -// The lowercased field name is used as the key for each exported field, -// but this behavior may be changed using the respective field tag. -// The tag may also contain flags to tweak the marshalling behavior for -// the field. The tag formats accepted are: -// -// "[][,[,]]" -// -// `(...) bson:"[][,[,]]" (...)` -// -// The following flags are currently supported during unmarshal (see the -// Marshal method for other flags): -// -// inline Inline the field, which must be a struct or a map. -// Inlined structs are handled as if its fields were part -// of the outer struct. An inlined map causes keys that do -// not match any other struct field to be inserted in the -// map rather than being discarded as usual. -// -// The target field or element types of out may not necessarily match -// the BSON values of the provided data. The following conversions are -// made automatically: -// -// - Numeric types are converted if at least the integer part of the -// value would be preserved correctly -// - Bools are converted to numeric types as 1 or 0 -// - Numeric types are converted to bools as true if not 0 or false otherwise -// - Binary and string BSON data is converted to a string, array or byte slice -// -// If the value would not fit the type and cannot be converted, it's -// silently skipped. -// -// Pointer values are initialized when necessary. -func Unmarshal(in []byte, out interface{}) (err error) { - if raw, ok := out.(*Raw); ok { - raw.Kind = 3 - raw.Data = in - return nil - } - defer handleErr(&err) - v := reflect.ValueOf(out) - switch v.Kind() { - case reflect.Ptr: - fallthrough - case reflect.Map: - d := newDecoder(in) - d.readDocTo(v) - case reflect.Struct: - return errors.New("Unmarshal can't deal with struct values. Use a pointer.") - default: - return errors.New("Unmarshal needs a map or a pointer to a struct.") - } - return nil -} - -// Unmarshal deserializes raw into the out value. If the out value type -// is not compatible with raw, a *bson.TypeError is returned. -// -// See the Unmarshal function documentation for more details on the -// unmarshalling process. -func (raw Raw) Unmarshal(out interface{}) (err error) { - defer handleErr(&err) - v := reflect.ValueOf(out) - switch v.Kind() { - case reflect.Ptr: - v = v.Elem() - fallthrough - case reflect.Map: - d := newDecoder(raw.Data) - good := d.readElemTo(v, raw.Kind) - if !good { - return &TypeError{v.Type(), raw.Kind} - } - case reflect.Struct: - return errors.New("Raw Unmarshal can't deal with struct values. Use a pointer.") - default: - return errors.New("Raw Unmarshal needs a map or a valid pointer.") - } - return nil -} - -type TypeError struct { - Type reflect.Type - Kind byte -} - -func (e *TypeError) Error() string { - return fmt.Sprintf("BSON kind 0x%02x isn't compatible with type %s", e.Kind, e.Type.String()) -} - -// -------------------------------------------------------------------------- -// Maintain a mapping of keys to structure field indexes - -type structInfo struct { - FieldsMap map[string]fieldInfo - FieldsList []fieldInfo - InlineMap int - Zero reflect.Value -} - -type fieldInfo struct { - Key string - Num int - OmitEmpty bool - MinSize bool - Inline []int -} - -var structMap = make(map[reflect.Type]*structInfo) -var structMapMutex sync.RWMutex - -type externalPanic string - -func (e externalPanic) String() string { - return string(e) -} - -func getStructInfo(st reflect.Type) (*structInfo, error) { - structMapMutex.RLock() - sinfo, found := structMap[st] - structMapMutex.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("bson") - 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 "minsize": - info.MinSize = true - case "inline": - inline = true - default: - msg := fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st) - panic(externalPanic(msg)) - } - } - 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...) - } - fieldsMap[finfo.Key] = finfo - fieldsList = append(fieldsList, finfo) - } - default: - panic("Option ,inline needs a struct value 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) - } - - fieldsList = append(fieldsList, info) - fieldsMap[info.Key] = info - } - sinfo = &structInfo{ - fieldsMap, - fieldsList, - inlineMap, - reflect.New(st).Elem(), - } - structMapMutex.Lock() - structMap[st] = sinfo - structMapMutex.Unlock() - return sinfo, nil -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/decimal.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/decimal.go deleted file mode 100644 index 3d2f7002..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/decimal.go +++ /dev/null @@ -1,310 +0,0 @@ -// BSON library for Go -// -// Copyright (c) 2010-2012 - Gustavo Niemeyer -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// 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. - -package bson - -import ( - "fmt" - "strconv" - "strings" -) - -// Decimal128 holds decimal128 BSON values. -type Decimal128 struct { - h, l uint64 -} - -func (d Decimal128) String() string { - var pos int // positive sign - var e int // exponent - var h, l uint64 // significand high/low - - if d.h>>63&1 == 0 { - pos = 1 - } - - switch d.h >> 58 & (1<<5 - 1) { - case 0x1F: - return "NaN" - case 0x1E: - return "-Inf"[pos:] - } - - l = d.l - if d.h>>61&3 == 3 { - // Bits: 1*sign 2*ignored 14*exponent 111*significand. - // Implicit 0b100 prefix in significand. - e = int(d.h>>47&(1<<14-1)) - 6176 - //h = 4<<47 | d.h&(1<<47-1) - // Spec says all of these values are out of range. - h, l = 0, 0 - } else { - // Bits: 1*sign 14*exponent 113*significand - e = int(d.h>>49&(1<<14-1)) - 6176 - h = d.h & (1<<49 - 1) - } - - // Would be handled by the logic below, but that's trivial and common. - if h == 0 && l == 0 && e == 0 { - return "-0"[pos:] - } - - var repr [48]byte // Loop 5 times over 9 digits plus dot, negative sign, and leading zero. - var last = len(repr) - var i = len(repr) - var dot = len(repr) + e - var rem uint32 -Loop: - for d9 := 0; d9 < 5; d9++ { - h, l, rem = divmod(h, l, 1e9) - for d1 := 0; d1 < 9; d1++ { - // Handle "-0.0", "0.00123400", "-1.00E-6", "1.050E+3", etc. - if i < len(repr) && (dot == i || l == 0 && h == 0 && rem > 0 && rem < 10 && (dot < i-6 || e > 0)) { - e += len(repr) - i - i-- - repr[i] = '.' - last = i - 1 - dot = len(repr) // Unmark. - } - c := '0' + byte(rem%10) - rem /= 10 - i-- - repr[i] = c - // Handle "0E+3", "1E+3", etc. - if l == 0 && h == 0 && rem == 0 && i == len(repr)-1 && (dot < i-5 || e > 0) { - last = i - break Loop - } - if c != '0' { - last = i - } - // Break early. Works without it, but why. - if dot > i && l == 0 && h == 0 && rem == 0 { - break Loop - } - } - } - repr[last-1] = '-' - last-- - - if e > 0 { - return string(repr[last+pos:]) + "E+" + strconv.Itoa(e) - } - if e < 0 { - return string(repr[last+pos:]) + "E" + strconv.Itoa(e) - } - return string(repr[last+pos:]) -} - -func divmod(h, l uint64, div uint32) (qh, ql uint64, rem uint32) { - div64 := uint64(div) - a := h >> 32 - aq := a / div64 - ar := a % div64 - b := ar<<32 + h&(1<<32-1) - bq := b / div64 - br := b % div64 - c := br<<32 + l>>32 - cq := c / div64 - cr := c % div64 - d := cr<<32 + l&(1<<32-1) - dq := d / div64 - dr := d % div64 - return (aq<<32 | bq), (cq<<32 | dq), uint32(dr) -} - -var dNaN = Decimal128{0x1F << 58, 0} -var dPosInf = Decimal128{0x1E << 58, 0} -var dNegInf = Decimal128{0x3E << 58, 0} - -func dErr(s string) (Decimal128, error) { - return dNaN, fmt.Errorf("cannot parse %q as a decimal128", s) -} - -func ParseDecimal128(s string) (Decimal128, error) { - orig := s - if s == "" { - return dErr(orig) - } - neg := s[0] == '-' - if neg || s[0] == '+' { - s = s[1:] - } - - if (len(s) == 3 || len(s) == 8) && (s[0] == 'N' || s[0] == 'n' || s[0] == 'I' || s[0] == 'i') { - if s == "NaN" || s == "nan" || strings.EqualFold(s, "nan") { - return dNaN, nil - } - if s == "Inf" || s == "inf" || strings.EqualFold(s, "inf") || strings.EqualFold(s, "infinity") { - if neg { - return dNegInf, nil - } - return dPosInf, nil - } - return dErr(orig) - } - - var h, l uint64 - var e int - - var add, ovr uint32 - var mul uint32 = 1 - var dot = -1 - var digits = 0 - var i = 0 - for i < len(s) { - c := s[i] - if mul == 1e9 { - h, l, ovr = muladd(h, l, mul, add) - mul, add = 1, 0 - if ovr > 0 || h&((1<<15-1)<<49) > 0 { - return dErr(orig) - } - } - if c >= '0' && c <= '9' { - i++ - if c > '0' || digits > 0 { - digits++ - } - if digits > 34 { - if c == '0' { - // Exact rounding. - e++ - continue - } - return dErr(orig) - } - mul *= 10 - add *= 10 - add += uint32(c - '0') - continue - } - if c == '.' { - i++ - if dot >= 0 || i == 1 && len(s) == 1 { - return dErr(orig) - } - if i == len(s) { - break - } - if s[i] < '0' || s[i] > '9' || e > 0 { - return dErr(orig) - } - dot = i - continue - } - break - } - if i == 0 { - return dErr(orig) - } - if mul > 1 { - h, l, ovr = muladd(h, l, mul, add) - if ovr > 0 || h&((1<<15-1)<<49) > 0 { - return dErr(orig) - } - } - if dot >= 0 { - e += dot - i - } - if i+1 < len(s) && (s[i] == 'E' || s[i] == 'e') { - i++ - eneg := s[i] == '-' - if eneg || s[i] == '+' { - i++ - if i == len(s) { - return dErr(orig) - } - } - n := 0 - for i < len(s) && n < 1e4 { - c := s[i] - i++ - if c < '0' || c > '9' { - return dErr(orig) - } - n *= 10 - n += int(c - '0') - } - if eneg { - n = -n - } - e += n - for e < -6176 { - // Subnormal. - var div uint32 = 1 - for div < 1e9 && e < -6176 { - div *= 10 - e++ - } - var rem uint32 - h, l, rem = divmod(h, l, div) - if rem > 0 { - return dErr(orig) - } - } - for e > 6111 { - // Clamped. - var mul uint32 = 1 - for mul < 1e9 && e > 6111 { - mul *= 10 - e-- - } - h, l, ovr = muladd(h, l, mul, 0) - if ovr > 0 || h&((1<<15-1)<<49) > 0 { - return dErr(orig) - } - } - if e < -6176 || e > 6111 { - return dErr(orig) - } - } - - if i < len(s) { - return dErr(orig) - } - - h |= uint64(e+6176) & uint64(1<<14-1) << 49 - if neg { - h |= 1 << 63 - } - return Decimal128{h, l}, nil -} - -func muladd(h, l uint64, mul uint32, add uint32) (resh, resl uint64, overflow uint32) { - mul64 := uint64(mul) - a := mul64 * (l & (1<<32 - 1)) - b := a>>32 + mul64*(l>>32) - c := b>>32 + mul64*(h&(1<<32-1)) - d := c>>32 + mul64*(h>>32) - - a = a&(1<<32-1) + uint64(add) - b = b&(1<<32-1) + a>>32 - c = c&(1<<32-1) + b>>32 - d = d&(1<<32-1) + c>>32 - - return (d<<32 | c&(1<<32-1)), (b<<32 | a&(1<<32-1)), uint32(d >> 32) -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/decode.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/decode.go deleted file mode 100644 index 7c2d8416..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/decode.go +++ /dev/null @@ -1,849 +0,0 @@ -// BSON library for Go -// -// Copyright (c) 2010-2012 - Gustavo Niemeyer -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// 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. -// gobson - BSON library for Go. - -package bson - -import ( - "fmt" - "math" - "net/url" - "reflect" - "strconv" - "sync" - "time" -) - -type decoder struct { - in []byte - i int - docType reflect.Type -} - -var typeM = reflect.TypeOf(M{}) - -func newDecoder(in []byte) *decoder { - return &decoder{in, 0, typeM} -} - -// -------------------------------------------------------------------------- -// Some helper functions. - -func corrupted() { - panic("Document is corrupted") -} - -func settableValueOf(i interface{}) reflect.Value { - v := reflect.ValueOf(i) - sv := reflect.New(v.Type()).Elem() - sv.Set(v) - return sv -} - -// -------------------------------------------------------------------------- -// Unmarshaling of documents. - -const ( - setterUnknown = iota - setterNone - setterType - setterAddr -) - -var setterStyles map[reflect.Type]int -var setterIface reflect.Type -var setterMutex sync.RWMutex - -func init() { - var iface Setter - setterIface = reflect.TypeOf(&iface).Elem() - setterStyles = make(map[reflect.Type]int) -} - -func setterStyle(outt reflect.Type) int { - setterMutex.RLock() - style := setterStyles[outt] - setterMutex.RUnlock() - if style == setterUnknown { - setterMutex.Lock() - defer setterMutex.Unlock() - if outt.Implements(setterIface) { - setterStyles[outt] = setterType - } else if reflect.PtrTo(outt).Implements(setterIface) { - setterStyles[outt] = setterAddr - } else { - setterStyles[outt] = setterNone - } - style = setterStyles[outt] - } - return style -} - -func getSetter(outt reflect.Type, out reflect.Value) Setter { - style := setterStyle(outt) - if style == setterNone { - return nil - } - if style == setterAddr { - if !out.CanAddr() { - return nil - } - out = out.Addr() - } else if outt.Kind() == reflect.Ptr && out.IsNil() { - out.Set(reflect.New(outt.Elem())) - } - return out.Interface().(Setter) -} - -func clearMap(m reflect.Value) { - var none reflect.Value - for _, k := range m.MapKeys() { - m.SetMapIndex(k, none) - } -} - -func (d *decoder) readDocTo(out reflect.Value) { - var elemType reflect.Type - outt := out.Type() - outk := outt.Kind() - - for { - if outk == reflect.Ptr && out.IsNil() { - out.Set(reflect.New(outt.Elem())) - } - if setter := getSetter(outt, out); setter != nil { - var raw Raw - d.readDocTo(reflect.ValueOf(&raw)) - err := setter.SetBSON(raw) - if _, ok := err.(*TypeError); err != nil && !ok { - panic(err) - } - return - } - if outk == reflect.Ptr { - out = out.Elem() - outt = out.Type() - outk = out.Kind() - continue - } - break - } - - var fieldsMap map[string]fieldInfo - var inlineMap reflect.Value - start := d.i - - origout := out - if outk == reflect.Interface { - if d.docType.Kind() == reflect.Map { - mv := reflect.MakeMap(d.docType) - out.Set(mv) - out = mv - } else { - dv := reflect.New(d.docType).Elem() - out.Set(dv) - out = dv - } - outt = out.Type() - outk = outt.Kind() - } - - docType := d.docType - keyType := typeString - convertKey := false - switch outk { - case reflect.Map: - keyType = outt.Key() - if keyType.Kind() != reflect.String { - panic("BSON map must have string keys. Got: " + outt.String()) - } - if keyType != typeString { - convertKey = true - } - elemType = outt.Elem() - if elemType == typeIface { - d.docType = outt - } - if out.IsNil() { - out.Set(reflect.MakeMap(out.Type())) - } else if out.Len() > 0 { - clearMap(out) - } - case reflect.Struct: - if outt != typeRaw { - sinfo, err := getStructInfo(out.Type()) - if err != nil { - panic(err) - } - fieldsMap = sinfo.FieldsMap - out.Set(sinfo.Zero) - if sinfo.InlineMap != -1 { - inlineMap = out.Field(sinfo.InlineMap) - if !inlineMap.IsNil() && inlineMap.Len() > 0 { - clearMap(inlineMap) - } - elemType = inlineMap.Type().Elem() - if elemType == typeIface { - d.docType = inlineMap.Type() - } - } - } - case reflect.Slice: - switch outt.Elem() { - case typeDocElem: - origout.Set(d.readDocElems(outt)) - return - case typeRawDocElem: - origout.Set(d.readRawDocElems(outt)) - return - } - fallthrough - default: - panic("Unsupported document type for unmarshalling: " + out.Type().String()) - } - - end := int(d.readInt32()) - end += d.i - 4 - if end <= d.i || end > len(d.in) || d.in[end-1] != '\x00' { - corrupted() - } - for d.in[d.i] != '\x00' { - kind := d.readByte() - name := d.readCStr() - if d.i >= end { - corrupted() - } - - switch outk { - case reflect.Map: - e := reflect.New(elemType).Elem() - if d.readElemTo(e, kind) { - k := reflect.ValueOf(name) - if convertKey { - k = k.Convert(keyType) - } - out.SetMapIndex(k, e) - } - case reflect.Struct: - if outt == typeRaw { - d.dropElem(kind) - } else { - if info, ok := fieldsMap[name]; ok { - if info.Inline == nil { - d.readElemTo(out.Field(info.Num), kind) - } else { - d.readElemTo(out.FieldByIndex(info.Inline), kind) - } - } else if inlineMap.IsValid() { - if inlineMap.IsNil() { - inlineMap.Set(reflect.MakeMap(inlineMap.Type())) - } - e := reflect.New(elemType).Elem() - if d.readElemTo(e, kind) { - inlineMap.SetMapIndex(reflect.ValueOf(name), e) - } - } else { - d.dropElem(kind) - } - } - case reflect.Slice: - } - - if d.i >= end { - corrupted() - } - } - d.i++ // '\x00' - if d.i != end { - corrupted() - } - d.docType = docType - - if outt == typeRaw { - out.Set(reflect.ValueOf(Raw{0x03, d.in[start:d.i]})) - } -} - -func (d *decoder) readArrayDocTo(out reflect.Value) { - end := int(d.readInt32()) - end += d.i - 4 - if end <= d.i || end > len(d.in) || d.in[end-1] != '\x00' { - corrupted() - } - i := 0 - l := out.Len() - for d.in[d.i] != '\x00' { - if i >= l { - panic("Length mismatch on array field") - } - kind := d.readByte() - for d.i < end && d.in[d.i] != '\x00' { - d.i++ - } - if d.i >= end { - corrupted() - } - d.i++ - d.readElemTo(out.Index(i), kind) - if d.i >= end { - corrupted() - } - i++ - } - if i != l { - panic("Length mismatch on array field") - } - d.i++ // '\x00' - if d.i != end { - corrupted() - } -} - -func (d *decoder) readSliceDoc(t reflect.Type) interface{} { - tmp := make([]reflect.Value, 0, 8) - elemType := t.Elem() - if elemType == typeRawDocElem { - d.dropElem(0x04) - return reflect.Zero(t).Interface() - } - - end := int(d.readInt32()) - end += d.i - 4 - if end <= d.i || end > len(d.in) || d.in[end-1] != '\x00' { - corrupted() - } - for d.in[d.i] != '\x00' { - kind := d.readByte() - for d.i < end && d.in[d.i] != '\x00' { - d.i++ - } - if d.i >= end { - corrupted() - } - d.i++ - e := reflect.New(elemType).Elem() - if d.readElemTo(e, kind) { - tmp = append(tmp, e) - } - if d.i >= end { - corrupted() - } - } - d.i++ // '\x00' - if d.i != end { - corrupted() - } - - n := len(tmp) - slice := reflect.MakeSlice(t, n, n) - for i := 0; i != n; i++ { - slice.Index(i).Set(tmp[i]) - } - return slice.Interface() -} - -var typeSlice = reflect.TypeOf([]interface{}{}) -var typeIface = typeSlice.Elem() - -func (d *decoder) readDocElems(typ reflect.Type) reflect.Value { - docType := d.docType - d.docType = typ - slice := make([]DocElem, 0, 8) - d.readDocWith(func(kind byte, name string) { - e := DocElem{Name: name} - v := reflect.ValueOf(&e.Value) - if d.readElemTo(v.Elem(), kind) { - slice = append(slice, e) - } - }) - slicev := reflect.New(typ).Elem() - slicev.Set(reflect.ValueOf(slice)) - d.docType = docType - return slicev -} - -func (d *decoder) readRawDocElems(typ reflect.Type) reflect.Value { - docType := d.docType - d.docType = typ - slice := make([]RawDocElem, 0, 8) - d.readDocWith(func(kind byte, name string) { - e := RawDocElem{Name: name} - v := reflect.ValueOf(&e.Value) - if d.readElemTo(v.Elem(), kind) { - slice = append(slice, e) - } - }) - slicev := reflect.New(typ).Elem() - slicev.Set(reflect.ValueOf(slice)) - d.docType = docType - return slicev -} - -func (d *decoder) readDocWith(f func(kind byte, name string)) { - end := int(d.readInt32()) - end += d.i - 4 - if end <= d.i || end > len(d.in) || d.in[end-1] != '\x00' { - corrupted() - } - for d.in[d.i] != '\x00' { - kind := d.readByte() - name := d.readCStr() - if d.i >= end { - corrupted() - } - f(kind, name) - if d.i >= end { - corrupted() - } - } - d.i++ // '\x00' - if d.i != end { - corrupted() - } -} - -// -------------------------------------------------------------------------- -// Unmarshaling of individual elements within a document. - -var blackHole = settableValueOf(struct{}{}) - -func (d *decoder) dropElem(kind byte) { - d.readElemTo(blackHole, kind) -} - -// Attempt to decode an element from the document and put it into out. -// If the types are not compatible, the returned ok value will be -// false and out will be unchanged. -func (d *decoder) readElemTo(out reflect.Value, kind byte) (good bool) { - - start := d.i - - if kind == 0x03 { - // Delegate unmarshaling of documents. - outt := out.Type() - outk := out.Kind() - switch outk { - case reflect.Interface, reflect.Ptr, reflect.Struct, reflect.Map: - d.readDocTo(out) - return true - } - if setterStyle(outt) != setterNone { - d.readDocTo(out) - return true - } - if outk == reflect.Slice { - switch outt.Elem() { - case typeDocElem: - out.Set(d.readDocElems(outt)) - case typeRawDocElem: - out.Set(d.readRawDocElems(outt)) - default: - d.readDocTo(blackHole) - } - return true - } - d.readDocTo(blackHole) - return true - } - - var in interface{} - - switch kind { - case 0x01: // Float64 - in = d.readFloat64() - case 0x02: // UTF-8 string - in = d.readStr() - case 0x03: // Document - panic("Can't happen. Handled above.") - case 0x04: // Array - outt := out.Type() - if setterStyle(outt) != setterNone { - // Skip the value so its data is handed to the setter below. - d.dropElem(kind) - break - } - for outt.Kind() == reflect.Ptr { - outt = outt.Elem() - } - switch outt.Kind() { - case reflect.Array: - d.readArrayDocTo(out) - return true - case reflect.Slice: - in = d.readSliceDoc(outt) - default: - in = d.readSliceDoc(typeSlice) - } - case 0x05: // Binary - b := d.readBinary() - if b.Kind == 0x00 || b.Kind == 0x02 { - in = b.Data - } else { - in = b - } - case 0x06: // Undefined (obsolete, but still seen in the wild) - in = Undefined - case 0x07: // ObjectId - in = ObjectId(d.readBytes(12)) - case 0x08: // Bool - in = d.readBool() - case 0x09: // Timestamp - // MongoDB handles timestamps as milliseconds. - i := d.readInt64() - if i == -62135596800000 { - in = time.Time{} // In UTC for convenience. - } else { - in = time.Unix(i/1e3, i%1e3*1e6) - } - case 0x0A: // Nil - in = nil - case 0x0B: // RegEx - in = d.readRegEx() - case 0x0C: - in = DBPointer{Namespace: d.readStr(), Id: ObjectId(d.readBytes(12))} - case 0x0D: // JavaScript without scope - in = JavaScript{Code: d.readStr()} - case 0x0E: // Symbol - in = Symbol(d.readStr()) - case 0x0F: // JavaScript with scope - d.i += 4 // Skip length - js := JavaScript{d.readStr(), make(M)} - d.readDocTo(reflect.ValueOf(js.Scope)) - in = js - case 0x10: // Int32 - in = int(d.readInt32()) - case 0x11: // Mongo-specific timestamp - in = MongoTimestamp(d.readInt64()) - case 0x12: // Int64 - in = d.readInt64() - case 0x13: // Decimal128 - in = Decimal128{ - l: uint64(d.readInt64()), - h: uint64(d.readInt64()), - } - case 0x7F: // Max key - in = MaxKey - case 0xFF: // Min key - in = MinKey - default: - panic(fmt.Sprintf("Unknown element kind (0x%02X)", kind)) - } - - outt := out.Type() - - if outt == typeRaw { - out.Set(reflect.ValueOf(Raw{kind, d.in[start:d.i]})) - return true - } - - if setter := getSetter(outt, out); setter != nil { - err := setter.SetBSON(Raw{kind, d.in[start:d.i]}) - if err == SetZero { - out.Set(reflect.Zero(outt)) - return true - } - if err == nil { - return true - } - if _, ok := err.(*TypeError); !ok { - panic(err) - } - return false - } - - if in == nil { - out.Set(reflect.Zero(outt)) - return true - } - - outk := outt.Kind() - - // Dereference and initialize pointer if necessary. - first := true - for outk == reflect.Ptr { - if !out.IsNil() { - out = out.Elem() - } else { - elem := reflect.New(outt.Elem()) - if first { - // Only set if value is compatible. - first = false - defer func(out, elem reflect.Value) { - if good { - out.Set(elem) - } - }(out, elem) - } else { - out.Set(elem) - } - out = elem - } - outt = out.Type() - outk = outt.Kind() - } - - inv := reflect.ValueOf(in) - if outt == inv.Type() { - out.Set(inv) - return true - } - - switch outk { - case reflect.Interface: - out.Set(inv) - return true - case reflect.String: - switch inv.Kind() { - case reflect.String: - out.SetString(inv.String()) - return true - case reflect.Slice: - if b, ok := in.([]byte); ok { - out.SetString(string(b)) - return true - } - case reflect.Int, reflect.Int64: - if outt == typeJSONNumber { - out.SetString(strconv.FormatInt(inv.Int(), 10)) - return true - } - case reflect.Float64: - if outt == typeJSONNumber { - out.SetString(strconv.FormatFloat(inv.Float(), 'f', -1, 64)) - return true - } - } - case reflect.Slice, reflect.Array: - // Remember, array (0x04) slices are built with the correct - // element type. If we are here, must be a cross BSON kind - // conversion (e.g. 0x05 unmarshalling on string). - if outt.Elem().Kind() != reflect.Uint8 { - break - } - switch inv.Kind() { - case reflect.String: - slice := []byte(inv.String()) - out.Set(reflect.ValueOf(slice)) - return true - case reflect.Slice: - switch outt.Kind() { - case reflect.Array: - reflect.Copy(out, inv) - case reflect.Slice: - out.SetBytes(inv.Bytes()) - } - return true - } - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - switch inv.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - out.SetInt(inv.Int()) - return true - case reflect.Float32, reflect.Float64: - out.SetInt(int64(inv.Float())) - return true - case reflect.Bool: - if inv.Bool() { - out.SetInt(1) - } else { - out.SetInt(0) - } - return true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - panic("can't happen: no uint types in BSON (!?)") - } - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - switch inv.Kind() { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - out.SetUint(uint64(inv.Int())) - return true - case reflect.Float32, reflect.Float64: - out.SetUint(uint64(inv.Float())) - return true - case reflect.Bool: - if inv.Bool() { - out.SetUint(1) - } else { - out.SetUint(0) - } - return true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - panic("Can't happen. No uint types in BSON.") - } - case reflect.Float32, reflect.Float64: - switch inv.Kind() { - case reflect.Float32, reflect.Float64: - out.SetFloat(inv.Float()) - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - out.SetFloat(float64(inv.Int())) - return true - case reflect.Bool: - if inv.Bool() { - out.SetFloat(1) - } else { - out.SetFloat(0) - } - return true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - panic("Can't happen. No uint types in BSON?") - } - case reflect.Bool: - switch inv.Kind() { - case reflect.Bool: - out.SetBool(inv.Bool()) - return true - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - out.SetBool(inv.Int() != 0) - return true - case reflect.Float32, reflect.Float64: - out.SetBool(inv.Float() != 0) - return true - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - panic("Can't happen. No uint types in BSON?") - } - case reflect.Struct: - if outt == typeURL && inv.Kind() == reflect.String { - u, err := url.Parse(inv.String()) - if err != nil { - panic(err) - } - out.Set(reflect.ValueOf(u).Elem()) - return true - } - if outt == typeBinary { - if b, ok := in.([]byte); ok { - out.Set(reflect.ValueOf(Binary{Data: b})) - return true - } - } - } - - return false -} - -// -------------------------------------------------------------------------- -// Parsers of basic types. - -func (d *decoder) readRegEx() RegEx { - re := RegEx{} - re.Pattern = d.readCStr() - re.Options = d.readCStr() - return re -} - -func (d *decoder) readBinary() Binary { - l := d.readInt32() - b := Binary{} - b.Kind = d.readByte() - b.Data = d.readBytes(l) - if b.Kind == 0x02 && len(b.Data) >= 4 { - // Weird obsolete format with redundant length. - b.Data = b.Data[4:] - } - return b -} - -func (d *decoder) readStr() string { - l := d.readInt32() - b := d.readBytes(l - 1) - if d.readByte() != '\x00' { - corrupted() - } - return string(b) -} - -func (d *decoder) readCStr() string { - start := d.i - end := start - l := len(d.in) - for ; end != l; end++ { - if d.in[end] == '\x00' { - break - } - } - d.i = end + 1 - if d.i > l { - corrupted() - } - return string(d.in[start:end]) -} - -func (d *decoder) readBool() bool { - b := d.readByte() - if b == 0 { - return false - } - if b == 1 { - return true - } - panic(fmt.Sprintf("encoded boolean must be 1 or 0, found %d", b)) -} - -func (d *decoder) readFloat64() float64 { - return math.Float64frombits(uint64(d.readInt64())) -} - -func (d *decoder) readInt32() int32 { - b := d.readBytes(4) - return int32((uint32(b[0]) << 0) | - (uint32(b[1]) << 8) | - (uint32(b[2]) << 16) | - (uint32(b[3]) << 24)) -} - -func (d *decoder) readInt64() int64 { - b := d.readBytes(8) - return int64((uint64(b[0]) << 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 (d *decoder) readByte() byte { - i := d.i - d.i++ - if d.i > len(d.in) { - corrupted() - } - return d.in[i] -} - -func (d *decoder) readBytes(length int32) []byte { - if length < 0 { - corrupted() - } - start := d.i - d.i += int(length) - if d.i < start || d.i > len(d.in) { - corrupted() - } - return d.in[start : start+int(length)] -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/encode.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/encode.go deleted file mode 100644 index add39e86..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/encode.go +++ /dev/null @@ -1,514 +0,0 @@ -// BSON library for Go -// -// Copyright (c) 2010-2012 - Gustavo Niemeyer -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// 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. -// gobson - BSON library for Go. - -package bson - -import ( - "encoding/json" - "fmt" - "math" - "net/url" - "reflect" - "strconv" - "time" -) - -// -------------------------------------------------------------------------- -// Some internal infrastructure. - -var ( - typeBinary = reflect.TypeOf(Binary{}) - typeObjectId = reflect.TypeOf(ObjectId("")) - typeDBPointer = reflect.TypeOf(DBPointer{"", ObjectId("")}) - typeSymbol = reflect.TypeOf(Symbol("")) - typeMongoTimestamp = reflect.TypeOf(MongoTimestamp(0)) - typeOrderKey = reflect.TypeOf(MinKey) - typeDocElem = reflect.TypeOf(DocElem{}) - typeRawDocElem = reflect.TypeOf(RawDocElem{}) - typeRaw = reflect.TypeOf(Raw{}) - typeURL = reflect.TypeOf(url.URL{}) - typeTime = reflect.TypeOf(time.Time{}) - typeString = reflect.TypeOf("") - typeJSONNumber = reflect.TypeOf(json.Number("")) -) - -const itoaCacheSize = 32 - -var itoaCache []string - -func init() { - itoaCache = make([]string, itoaCacheSize) - for i := 0; i != itoaCacheSize; i++ { - itoaCache[i] = strconv.Itoa(i) - } -} - -func itoa(i int) string { - if i < itoaCacheSize { - return itoaCache[i] - } - return strconv.Itoa(i) -} - -// -------------------------------------------------------------------------- -// Marshaling of the document value itself. - -type encoder struct { - out []byte -} - -func (e *encoder) addDoc(v reflect.Value) { - for { - if vi, ok := v.Interface().(Getter); ok { - getv, err := vi.GetBSON() - if err != nil { - panic(err) - } - v = reflect.ValueOf(getv) - continue - } - if v.Kind() == reflect.Ptr { - v = v.Elem() - continue - } - break - } - - if v.Type() == typeRaw { - raw := v.Interface().(Raw) - if raw.Kind != 0x03 && raw.Kind != 0x00 { - panic("Attempted to marshal Raw kind " + strconv.Itoa(int(raw.Kind)) + " as a document") - } - if len(raw.Data) == 0 { - panic("Attempted to marshal empty Raw document") - } - e.addBytes(raw.Data...) - return - } - - start := e.reserveInt32() - - switch v.Kind() { - case reflect.Map: - e.addMap(v) - case reflect.Struct: - e.addStruct(v) - case reflect.Array, reflect.Slice: - e.addSlice(v) - default: - panic("Can't marshal " + v.Type().String() + " as a BSON document") - } - - e.addBytes(0) - e.setInt32(start, int32(len(e.out)-start)) -} - -func (e *encoder) addMap(v reflect.Value) { - for _, k := range v.MapKeys() { - e.addElem(k.String(), v.MapIndex(k), false) - } -} - -func (e *encoder) addStruct(v reflect.Value) { - sinfo, err := getStructInfo(v.Type()) - if err != nil { - panic(err) - } - var value reflect.Value - if sinfo.InlineMap >= 0 { - m := v.Field(sinfo.InlineMap) - if m.Len() > 0 { - for _, k := range m.MapKeys() { - ks := k.String() - if _, found := sinfo.FieldsMap[ks]; found { - panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", ks)) - } - e.addElem(ks, m.MapIndex(k), false) - } - } - } - for _, info := range sinfo.FieldsList { - if info.Inline == nil { - value = v.Field(info.Num) - } else { - value = v.FieldByIndex(info.Inline) - } - if info.OmitEmpty && isZero(value) { - continue - } - e.addElem(info.Key, value, info.MinSize) - } -} - -func isZero(v reflect.Value) bool { - switch v.Kind() { - case reflect.String: - return len(v.String()) == 0 - case reflect.Ptr, reflect.Interface: - 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.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.Bool: - return !v.Bool() - case reflect.Struct: - vt := v.Type() - if vt == typeTime { - return v.Interface().(time.Time).IsZero() - } - for i := 0; i < v.NumField(); i++ { - if vt.Field(i).PkgPath != "" && !vt.Field(i).Anonymous { - continue // Private field - } - if !isZero(v.Field(i)) { - return false - } - } - return true - } - return false -} - -func (e *encoder) addSlice(v reflect.Value) { - vi := v.Interface() - if d, ok := vi.(D); ok { - for _, elem := range d { - e.addElem(elem.Name, reflect.ValueOf(elem.Value), false) - } - return - } - if d, ok := vi.(RawD); ok { - for _, elem := range d { - e.addElem(elem.Name, reflect.ValueOf(elem.Value), false) - } - return - } - l := v.Len() - et := v.Type().Elem() - if et == typeDocElem { - for i := 0; i < l; i++ { - elem := v.Index(i).Interface().(DocElem) - e.addElem(elem.Name, reflect.ValueOf(elem.Value), false) - } - return - } - if et == typeRawDocElem { - for i := 0; i < l; i++ { - elem := v.Index(i).Interface().(RawDocElem) - e.addElem(elem.Name, reflect.ValueOf(elem.Value), false) - } - return - } - for i := 0; i < l; i++ { - e.addElem(itoa(i), v.Index(i), false) - } -} - -// -------------------------------------------------------------------------- -// Marshaling of elements in a document. - -func (e *encoder) addElemName(kind byte, name string) { - e.addBytes(kind) - e.addBytes([]byte(name)...) - e.addBytes(0) -} - -func (e *encoder) addElem(name string, v reflect.Value, minSize bool) { - - if !v.IsValid() { - e.addElemName(0x0A, name) - return - } - - if getter, ok := v.Interface().(Getter); ok { - getv, err := getter.GetBSON() - if err != nil { - panic(err) - } - e.addElem(name, reflect.ValueOf(getv), minSize) - return - } - - switch v.Kind() { - - case reflect.Interface: - e.addElem(name, v.Elem(), minSize) - - case reflect.Ptr: - e.addElem(name, v.Elem(), minSize) - - case reflect.String: - s := v.String() - switch v.Type() { - case typeObjectId: - if len(s) != 12 { - panic("ObjectIDs must be exactly 12 bytes long (got " + - strconv.Itoa(len(s)) + ")") - } - e.addElemName(0x07, name) - e.addBytes([]byte(s)...) - case typeSymbol: - e.addElemName(0x0E, name) - e.addStr(s) - case typeJSONNumber: - n := v.Interface().(json.Number) - if i, err := n.Int64(); err == nil { - e.addElemName(0x12, name) - e.addInt64(i) - } else if f, err := n.Float64(); err == nil { - e.addElemName(0x01, name) - e.addFloat64(f) - } else { - panic("failed to convert json.Number to a number: " + s) - } - default: - e.addElemName(0x02, name) - e.addStr(s) - } - - case reflect.Float32, reflect.Float64: - e.addElemName(0x01, name) - e.addFloat64(v.Float()) - - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - u := v.Uint() - if int64(u) < 0 { - panic("BSON has no uint64 type, and value is too large to fit correctly in an int64") - } else if u <= math.MaxInt32 && (minSize || v.Kind() <= reflect.Uint32) { - e.addElemName(0x10, name) - e.addInt32(int32(u)) - } else { - e.addElemName(0x12, name) - e.addInt64(int64(u)) - } - - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - switch v.Type() { - case typeMongoTimestamp: - e.addElemName(0x11, name) - e.addInt64(v.Int()) - - case typeOrderKey: - if v.Int() == int64(MaxKey) { - e.addElemName(0x7F, name) - } else { - e.addElemName(0xFF, name) - } - - default: - i := v.Int() - if (minSize || v.Type().Kind() != reflect.Int64) && i >= math.MinInt32 && i <= math.MaxInt32 { - // It fits into an int32, encode as such. - e.addElemName(0x10, name) - e.addInt32(int32(i)) - } else { - e.addElemName(0x12, name) - e.addInt64(i) - } - } - - case reflect.Bool: - e.addElemName(0x08, name) - if v.Bool() { - e.addBytes(1) - } else { - e.addBytes(0) - } - - case reflect.Map: - e.addElemName(0x03, name) - e.addDoc(v) - - case reflect.Slice: - vt := v.Type() - et := vt.Elem() - if et.Kind() == reflect.Uint8 { - e.addElemName(0x05, name) - e.addBinary(0x00, v.Bytes()) - } else if et == typeDocElem || et == typeRawDocElem { - e.addElemName(0x03, name) - e.addDoc(v) - } else { - e.addElemName(0x04, name) - e.addDoc(v) - } - - case reflect.Array: - et := v.Type().Elem() - if et.Kind() == reflect.Uint8 { - e.addElemName(0x05, name) - if v.CanAddr() { - e.addBinary(0x00, v.Slice(0, v.Len()).Interface().([]byte)) - } else { - n := v.Len() - e.addInt32(int32(n)) - e.addBytes(0x00) - for i := 0; i < n; i++ { - el := v.Index(i) - e.addBytes(byte(el.Uint())) - } - } - } else { - e.addElemName(0x04, name) - e.addDoc(v) - } - - case reflect.Struct: - switch s := v.Interface().(type) { - - case Raw: - kind := s.Kind - if kind == 0x00 { - kind = 0x03 - } - if len(s.Data) == 0 && kind != 0x06 && kind != 0x0A && kind != 0xFF && kind != 0x7F { - panic("Attempted to marshal empty Raw document") - } - e.addElemName(kind, name) - e.addBytes(s.Data...) - - case Binary: - e.addElemName(0x05, name) - e.addBinary(s.Kind, s.Data) - - case Decimal128: - e.addElemName(0x13, name) - e.addInt64(int64(s.l)) - e.addInt64(int64(s.h)) - - case DBPointer: - e.addElemName(0x0C, name) - e.addStr(s.Namespace) - if len(s.Id) != 12 { - panic("ObjectIDs must be exactly 12 bytes long (got " + - strconv.Itoa(len(s.Id)) + ")") - } - e.addBytes([]byte(s.Id)...) - - case RegEx: - e.addElemName(0x0B, name) - e.addCStr(s.Pattern) - e.addCStr(s.Options) - - case JavaScript: - if s.Scope == nil { - e.addElemName(0x0D, name) - e.addStr(s.Code) - } else { - e.addElemName(0x0F, name) - start := e.reserveInt32() - e.addStr(s.Code) - e.addDoc(reflect.ValueOf(s.Scope)) - e.setInt32(start, int32(len(e.out)-start)) - } - - case time.Time: - // MongoDB handles timestamps as milliseconds. - e.addElemName(0x09, name) - e.addInt64(s.Unix()*1000 + int64(s.Nanosecond()/1e6)) - - case url.URL: - e.addElemName(0x02, name) - e.addStr(s.String()) - - case undefined: - e.addElemName(0x06, name) - - default: - e.addElemName(0x03, name) - e.addDoc(v) - } - - default: - panic("Can't marshal " + v.Type().String() + " in a BSON document") - } -} - -// -------------------------------------------------------------------------- -// Marshaling of base types. - -func (e *encoder) addBinary(subtype byte, v []byte) { - if subtype == 0x02 { - // Wonder how that brilliant idea came to life. Obsolete, luckily. - e.addInt32(int32(len(v) + 4)) - e.addBytes(subtype) - e.addInt32(int32(len(v))) - } else { - e.addInt32(int32(len(v))) - e.addBytes(subtype) - } - e.addBytes(v...) -} - -func (e *encoder) addStr(v string) { - e.addInt32(int32(len(v) + 1)) - e.addCStr(v) -} - -func (e *encoder) addCStr(v string) { - e.addBytes([]byte(v)...) - e.addBytes(0) -} - -func (e *encoder) reserveInt32() (pos int) { - pos = len(e.out) - e.addBytes(0, 0, 0, 0) - return pos -} - -func (e *encoder) setInt32(pos int, v int32) { - e.out[pos+0] = byte(v) - e.out[pos+1] = byte(v >> 8) - e.out[pos+2] = byte(v >> 16) - e.out[pos+3] = byte(v >> 24) -} - -func (e *encoder) addInt32(v int32) { - u := uint32(v) - e.addBytes(byte(u), byte(u>>8), byte(u>>16), byte(u>>24)) -} - -func (e *encoder) addInt64(v int64) { - u := uint64(v) - e.addBytes(byte(u), byte(u>>8), byte(u>>16), byte(u>>24), - byte(u>>32), byte(u>>40), byte(u>>48), byte(u>>56)) -} - -func (e *encoder) addFloat64(v float64) { - e.addInt64(int64(math.Float64bits(v))) -} - -func (e *encoder) addBytes(v ...byte) { - e.out = append(e.out, v...) -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/json.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/json.go deleted file mode 100644 index 09df8260..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bson/json.go +++ /dev/null @@ -1,380 +0,0 @@ -package bson - -import ( - "bytes" - "encoding/base64" - "fmt" - "gopkg.in/mgo.v2/internal/json" - "strconv" - "time" -) - -// UnmarshalJSON unmarshals a JSON value that may hold non-standard -// syntax as defined in BSON's extended JSON specification. -func UnmarshalJSON(data []byte, value interface{}) error { - d := json.NewDecoder(bytes.NewBuffer(data)) - d.Extend(&jsonExt) - return d.Decode(value) -} - -// MarshalJSON marshals a JSON value that may hold non-standard -// syntax as defined in BSON's extended JSON specification. -func MarshalJSON(value interface{}) ([]byte, error) { - var buf bytes.Buffer - e := json.NewEncoder(&buf) - e.Extend(&jsonExt) - err := e.Encode(value) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// jdec is used internally by the JSON decoding functions -// so they may unmarshal functions without getting into endless -// recursion due to keyed objects. -func jdec(data []byte, value interface{}) error { - d := json.NewDecoder(bytes.NewBuffer(data)) - d.Extend(&funcExt) - return d.Decode(value) -} - -var jsonExt json.Extension -var funcExt json.Extension - -// TODO -// - Shell regular expressions ("/regexp/opts") - -func init() { - jsonExt.DecodeUnquotedKeys(true) - jsonExt.DecodeTrailingCommas(true) - - funcExt.DecodeFunc("BinData", "$binaryFunc", "$type", "$binary") - jsonExt.DecodeKeyed("$binary", jdecBinary) - jsonExt.DecodeKeyed("$binaryFunc", jdecBinary) - jsonExt.EncodeType([]byte(nil), jencBinarySlice) - jsonExt.EncodeType(Binary{}, jencBinaryType) - - funcExt.DecodeFunc("ISODate", "$dateFunc", "S") - funcExt.DecodeFunc("new Date", "$dateFunc", "S") - jsonExt.DecodeKeyed("$date", jdecDate) - jsonExt.DecodeKeyed("$dateFunc", jdecDate) - jsonExt.EncodeType(time.Time{}, jencDate) - - funcExt.DecodeFunc("Timestamp", "$timestamp", "t", "i") - jsonExt.DecodeKeyed("$timestamp", jdecTimestamp) - jsonExt.EncodeType(MongoTimestamp(0), jencTimestamp) - - funcExt.DecodeConst("undefined", Undefined) - - jsonExt.DecodeKeyed("$regex", jdecRegEx) - jsonExt.EncodeType(RegEx{}, jencRegEx) - - funcExt.DecodeFunc("ObjectId", "$oidFunc", "Id") - jsonExt.DecodeKeyed("$oid", jdecObjectId) - jsonExt.DecodeKeyed("$oidFunc", jdecObjectId) - jsonExt.EncodeType(ObjectId(""), jencObjectId) - - funcExt.DecodeFunc("DBRef", "$dbrefFunc", "$ref", "$id") - jsonExt.DecodeKeyed("$dbrefFunc", jdecDBRef) - - funcExt.DecodeFunc("NumberLong", "$numberLongFunc", "N") - jsonExt.DecodeKeyed("$numberLong", jdecNumberLong) - jsonExt.DecodeKeyed("$numberLongFunc", jdecNumberLong) - jsonExt.EncodeType(int64(0), jencNumberLong) - jsonExt.EncodeType(int(0), jencInt) - - funcExt.DecodeConst("MinKey", MinKey) - funcExt.DecodeConst("MaxKey", MaxKey) - jsonExt.DecodeKeyed("$minKey", jdecMinKey) - jsonExt.DecodeKeyed("$maxKey", jdecMaxKey) - jsonExt.EncodeType(orderKey(0), jencMinMaxKey) - - jsonExt.DecodeKeyed("$undefined", jdecUndefined) - jsonExt.EncodeType(Undefined, jencUndefined) - - jsonExt.Extend(&funcExt) -} - -func fbytes(format string, args ...interface{}) []byte { - var buf bytes.Buffer - fmt.Fprintf(&buf, format, args...) - return buf.Bytes() -} - -func jdecBinary(data []byte) (interface{}, error) { - var v struct { - Binary []byte `json:"$binary"` - Type string `json:"$type"` - Func struct { - Binary []byte `json:"$binary"` - Type int64 `json:"$type"` - } `json:"$binaryFunc"` - } - err := jdec(data, &v) - if err != nil { - return nil, err - } - - var binData []byte - var binKind int64 - if v.Type == "" && v.Binary == nil { - binData = v.Func.Binary - binKind = v.Func.Type - } else if v.Type == "" { - return v.Binary, nil - } else { - binData = v.Binary - binKind, err = strconv.ParseInt(v.Type, 0, 64) - if err != nil { - binKind = -1 - } - } - - if binKind == 0 { - return binData, nil - } - if binKind < 0 || binKind > 255 { - return nil, fmt.Errorf("invalid type in binary object: %s", data) - } - - return Binary{Kind: byte(binKind), Data: binData}, nil -} - -func jencBinarySlice(v interface{}) ([]byte, error) { - in := v.([]byte) - out := make([]byte, base64.StdEncoding.EncodedLen(len(in))) - base64.StdEncoding.Encode(out, in) - return fbytes(`{"$binary":"%s","$type":"0x0"}`, out), nil -} - -func jencBinaryType(v interface{}) ([]byte, error) { - in := v.(Binary) - out := make([]byte, base64.StdEncoding.EncodedLen(len(in.Data))) - base64.StdEncoding.Encode(out, in.Data) - return fbytes(`{"$binary":"%s","$type":"0x%x"}`, out, in.Kind), nil -} - -const jdateFormat = "2006-01-02T15:04:05.999Z" - -func jdecDate(data []byte) (interface{}, error) { - var v struct { - S string `json:"$date"` - Func struct { - S string - } `json:"$dateFunc"` - } - _ = jdec(data, &v) - if v.S == "" { - v.S = v.Func.S - } - if v.S != "" { - for _, format := range []string{jdateFormat, "2006-01-02"} { - t, err := time.Parse(format, v.S) - if err == nil { - return t, nil - } - } - return nil, fmt.Errorf("cannot parse date: %q", v.S) - } - - var vn struct { - Date struct { - N int64 `json:"$numberLong,string"` - } `json:"$date"` - Func struct { - S int64 - } `json:"$dateFunc"` - } - err := jdec(data, &vn) - if err != nil { - return nil, fmt.Errorf("cannot parse date: %q", data) - } - n := vn.Date.N - if n == 0 { - n = vn.Func.S - } - return time.Unix(n/1000, n%1000*1e6).UTC(), nil -} - -func jencDate(v interface{}) ([]byte, error) { - t := v.(time.Time) - return fbytes(`{"$date":%q}`, t.Format(jdateFormat)), nil -} - -func jdecTimestamp(data []byte) (interface{}, error) { - var v struct { - Func struct { - T int32 `json:"t"` - I int32 `json:"i"` - } `json:"$timestamp"` - } - err := jdec(data, &v) - if err != nil { - return nil, err - } - return MongoTimestamp(uint64(v.Func.T)<<32 | uint64(uint32(v.Func.I))), nil -} - -func jencTimestamp(v interface{}) ([]byte, error) { - ts := uint64(v.(MongoTimestamp)) - return fbytes(`{"$timestamp":{"t":%d,"i":%d}}`, ts>>32, uint32(ts)), nil -} - -func jdecRegEx(data []byte) (interface{}, error) { - var v struct { - Regex string `json:"$regex"` - Options string `json:"$options"` - } - err := jdec(data, &v) - if err != nil { - return nil, err - } - return RegEx{v.Regex, v.Options}, nil -} - -func jencRegEx(v interface{}) ([]byte, error) { - re := v.(RegEx) - type regex struct { - Regex string `json:"$regex"` - Options string `json:"$options"` - } - return json.Marshal(regex{re.Pattern, re.Options}) -} - -func jdecObjectId(data []byte) (interface{}, error) { - var v struct { - Id string `json:"$oid"` - Func struct { - Id string - } `json:"$oidFunc"` - } - err := jdec(data, &v) - if err != nil { - return nil, err - } - if v.Id == "" { - v.Id = v.Func.Id - } - return ObjectIdHex(v.Id), nil -} - -func jencObjectId(v interface{}) ([]byte, error) { - return fbytes(`{"$oid":"%s"}`, v.(ObjectId).Hex()), nil -} - -func jdecDBRef(data []byte) (interface{}, error) { - // TODO Support unmarshaling $ref and $id into the input value. - var v struct { - Obj map[string]interface{} `json:"$dbrefFunc"` - } - // TODO Fix this. Must not be required. - v.Obj = make(map[string]interface{}) - err := jdec(data, &v) - if err != nil { - return nil, err - } - return v.Obj, nil -} - -func jdecNumberLong(data []byte) (interface{}, error) { - var v struct { - N int64 `json:"$numberLong,string"` - Func struct { - N int64 `json:",string"` - } `json:"$numberLongFunc"` - } - var vn struct { - N int64 `json:"$numberLong"` - Func struct { - N int64 - } `json:"$numberLongFunc"` - } - err := jdec(data, &v) - if err != nil { - err = jdec(data, &vn) - v.N = vn.N - v.Func.N = vn.Func.N - } - if err != nil { - return nil, err - } - if v.N != 0 { - return v.N, nil - } - return v.Func.N, nil -} - -func jencNumberLong(v interface{}) ([]byte, error) { - n := v.(int64) - f := `{"$numberLong":"%d"}` - if n <= 1<<53 { - f = `{"$numberLong":%d}` - } - return fbytes(f, n), nil -} - -func jencInt(v interface{}) ([]byte, error) { - n := v.(int) - f := `{"$numberLong":"%d"}` - if int64(n) <= 1<<53 { - f = `%d` - } - return fbytes(f, n), nil -} - -func jdecMinKey(data []byte) (interface{}, error) { - var v struct { - N int64 `json:"$minKey"` - } - err := jdec(data, &v) - if err != nil { - return nil, err - } - if v.N != 1 { - return nil, fmt.Errorf("invalid $minKey object: %s", data) - } - return MinKey, nil -} - -func jdecMaxKey(data []byte) (interface{}, error) { - var v struct { - N int64 `json:"$maxKey"` - } - err := jdec(data, &v) - if err != nil { - return nil, err - } - if v.N != 1 { - return nil, fmt.Errorf("invalid $maxKey object: %s", data) - } - return MaxKey, nil -} - -func jencMinMaxKey(v interface{}) ([]byte, error) { - switch v.(orderKey) { - case MinKey: - return []byte(`{"$minKey":1}`), nil - case MaxKey: - return []byte(`{"$maxKey":1}`), nil - } - panic(fmt.Sprintf("invalid $minKey/$maxKey value: %d", v)) -} - -func jdecUndefined(data []byte) (interface{}, error) { - var v struct { - B bool `json:"$undefined"` - } - err := jdec(data, &v) - if err != nil { - return nil, err - } - if !v.B { - return nil, fmt.Errorf("invalid $undefined object: %s", data) - } - return Undefined, nil -} - -func jencUndefined(v interface{}) ([]byte, error) { - return []byte(`{"$undefined":true}`), nil -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bulk.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bulk.go deleted file mode 100644 index 072a5206..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/bulk.go +++ /dev/null @@ -1,351 +0,0 @@ -package mgo - -import ( - "bytes" - "sort" - - "gopkg.in/mgo.v2/bson" -) - -// Bulk represents an operation that can be prepared with several -// orthogonal changes before being delivered to the server. -// -// MongoDB servers older than version 2.6 do not have proper support for bulk -// operations, so the driver attempts to map its API as much as possible into -// the functionality that works. In particular, in those releases updates and -// removals are sent individually, and inserts are sent in bulk but have -// suboptimal error reporting compared to more recent versions of the server. -// See the documentation of BulkErrorCase for details on that. -// -// Relevant documentation: -// -// http://blog.mongodb.org/post/84922794768/mongodbs-new-bulk-api -// -type Bulk struct { - c *Collection - opcount int - actions []bulkAction - ordered bool -} - -type bulkOp int - -const ( - bulkInsert bulkOp = iota + 1 - bulkUpdate - bulkUpdateAll - bulkRemove -) - -type bulkAction struct { - op bulkOp - docs []interface{} - idxs []int -} - -type bulkUpdateOp []interface{} -type bulkDeleteOp []interface{} - -// BulkResult holds the results for a bulk operation. -type BulkResult struct { - Matched int - Modified int // Available only for MongoDB 2.6+ - - // Be conservative while we understand exactly how to report these - // results in a useful and convenient way, and also how to emulate - // them with prior servers. - private bool -} - -// BulkError holds an error returned from running a Bulk operation. -// Individual errors may be obtained and inspected via the Cases method. -type BulkError struct { - ecases []BulkErrorCase -} - -func (e *BulkError) Error() string { - if len(e.ecases) == 0 { - return "invalid BulkError instance: no errors" - } - if len(e.ecases) == 1 { - return e.ecases[0].Err.Error() - } - msgs := make([]string, 0, len(e.ecases)) - seen := make(map[string]bool) - for _, ecase := range e.ecases { - msg := ecase.Err.Error() - if !seen[msg] { - seen[msg] = true - msgs = append(msgs, msg) - } - } - if len(msgs) == 1 { - return msgs[0] - } - var buf bytes.Buffer - buf.WriteString("multiple errors in bulk operation:\n") - for _, msg := range msgs { - buf.WriteString(" - ") - buf.WriteString(msg) - buf.WriteByte('\n') - } - return buf.String() -} - -type bulkErrorCases []BulkErrorCase - -func (slice bulkErrorCases) Len() int { return len(slice) } -func (slice bulkErrorCases) Less(i, j int) bool { return slice[i].Index < slice[j].Index } -func (slice bulkErrorCases) Swap(i, j int) { slice[i], slice[j] = slice[j], slice[i] } - -// BulkErrorCase holds an individual error found while attempting a single change -// within a bulk operation, and the position in which it was enqueued. -// -// MongoDB servers older than version 2.6 do not have proper support for bulk -// operations, so the driver attempts to map its API as much as possible into -// the functionality that works. In particular, only the last error is reported -// for bulk inserts and without any positional information, so the Index -// field is set to -1 in these cases. -type BulkErrorCase struct { - Index int // Position of operation that failed, or -1 if unknown. - Err error -} - -// Cases returns all individual errors found while attempting the requested changes. -// -// See the documentation of BulkErrorCase for limitations in older MongoDB releases. -func (e *BulkError) Cases() []BulkErrorCase { - return e.ecases -} - -// Bulk returns a value to prepare the execution of a bulk operation. -func (c *Collection) Bulk() *Bulk { - return &Bulk{c: c, ordered: true} -} - -// Unordered puts the bulk operation in unordered mode. -// -// In unordered mode the indvidual operations may be sent -// out of order, which means latter operations may proceed -// even if prior ones have failed. -func (b *Bulk) Unordered() { - b.ordered = false -} - -func (b *Bulk) action(op bulkOp, opcount int) *bulkAction { - var action *bulkAction - if len(b.actions) > 0 && b.actions[len(b.actions)-1].op == op { - action = &b.actions[len(b.actions)-1] - } else if !b.ordered { - for i := range b.actions { - if b.actions[i].op == op { - action = &b.actions[i] - break - } - } - } - if action == nil { - b.actions = append(b.actions, bulkAction{op: op}) - action = &b.actions[len(b.actions)-1] - } - for i := 0; i < opcount; i++ { - action.idxs = append(action.idxs, b.opcount) - b.opcount++ - } - return action -} - -// Insert queues up the provided documents for insertion. -func (b *Bulk) Insert(docs ...interface{}) { - action := b.action(bulkInsert, len(docs)) - action.docs = append(action.docs, docs...) -} - -// Remove queues up the provided selectors for removing matching documents. -// Each selector will remove only a single matching document. -func (b *Bulk) Remove(selectors ...interface{}) { - action := b.action(bulkRemove, len(selectors)) - for _, selector := range selectors { - if selector == nil { - selector = bson.D{} - } - action.docs = append(action.docs, &deleteOp{ - Collection: b.c.FullName, - Selector: selector, - Flags: 1, - Limit: 1, - }) - } -} - -// RemoveAll queues up the provided selectors for removing all matching documents. -// Each selector will remove all matching documents. -func (b *Bulk) RemoveAll(selectors ...interface{}) { - action := b.action(bulkRemove, len(selectors)) - for _, selector := range selectors { - if selector == nil { - selector = bson.D{} - } - action.docs = append(action.docs, &deleteOp{ - Collection: b.c.FullName, - Selector: selector, - Flags: 0, - Limit: 0, - }) - } -} - -// Update queues up the provided pairs of updating instructions. -// The first element of each pair selects which documents must be -// updated, and the second element defines how to update it. -// Each pair matches exactly one document for updating at most. -func (b *Bulk) Update(pairs ...interface{}) { - if len(pairs)%2 != 0 { - panic("Bulk.Update requires an even number of parameters") - } - action := b.action(bulkUpdate, len(pairs)/2) - for i := 0; i < len(pairs); i += 2 { - selector := pairs[i] - if selector == nil { - selector = bson.D{} - } - action.docs = append(action.docs, &updateOp{ - Collection: b.c.FullName, - Selector: selector, - Update: pairs[i+1], - }) - } -} - -// UpdateAll queues up the provided pairs of updating instructions. -// The first element of each pair selects which documents must be -// updated, and the second element defines how to update it. -// Each pair updates all documents matching the selector. -func (b *Bulk) UpdateAll(pairs ...interface{}) { - if len(pairs)%2 != 0 { - panic("Bulk.UpdateAll requires an even number of parameters") - } - action := b.action(bulkUpdate, len(pairs)/2) - for i := 0; i < len(pairs); i += 2 { - selector := pairs[i] - if selector == nil { - selector = bson.D{} - } - action.docs = append(action.docs, &updateOp{ - Collection: b.c.FullName, - Selector: selector, - Update: pairs[i+1], - Flags: 2, - Multi: true, - }) - } -} - -// Upsert queues up the provided pairs of upserting instructions. -// The first element of each pair selects which documents must be -// updated, and the second element defines how to update it. -// Each pair matches exactly one document for updating at most. -func (b *Bulk) Upsert(pairs ...interface{}) { - if len(pairs)%2 != 0 { - panic("Bulk.Update requires an even number of parameters") - } - action := b.action(bulkUpdate, len(pairs)/2) - for i := 0; i < len(pairs); i += 2 { - selector := pairs[i] - if selector == nil { - selector = bson.D{} - } - action.docs = append(action.docs, &updateOp{ - Collection: b.c.FullName, - Selector: selector, - Update: pairs[i+1], - Flags: 1, - Upsert: true, - }) - } -} - -// Run runs all the operations queued up. -// -// If an error is reported on an unordered bulk operation, the error value may -// be an aggregation of all issues observed. As an exception to that, Insert -// operations running on MongoDB versions prior to 2.6 will report the last -// error only due to a limitation in the wire protocol. -func (b *Bulk) Run() (*BulkResult, error) { - var result BulkResult - var berr BulkError - var failed bool - for i := range b.actions { - action := &b.actions[i] - var ok bool - switch action.op { - case bulkInsert: - ok = b.runInsert(action, &result, &berr) - case bulkUpdate: - ok = b.runUpdate(action, &result, &berr) - case bulkRemove: - ok = b.runRemove(action, &result, &berr) - default: - panic("unknown bulk operation") - } - if !ok { - failed = true - if b.ordered { - break - } - } - } - if failed { - sort.Sort(bulkErrorCases(berr.ecases)) - return nil, &berr - } - return &result, nil -} - -func (b *Bulk) runInsert(action *bulkAction, result *BulkResult, berr *BulkError) bool { - op := &insertOp{b.c.FullName, action.docs, 0} - if !b.ordered { - op.flags = 1 // ContinueOnError - } - lerr, err := b.c.writeOp(op, b.ordered) - return b.checkSuccess(action, berr, lerr, err) -} - -func (b *Bulk) runUpdate(action *bulkAction, result *BulkResult, berr *BulkError) bool { - lerr, err := b.c.writeOp(bulkUpdateOp(action.docs), b.ordered) - if lerr != nil { - result.Matched += lerr.N - result.Modified += lerr.modified - } - return b.checkSuccess(action, berr, lerr, err) -} - -func (b *Bulk) runRemove(action *bulkAction, result *BulkResult, berr *BulkError) bool { - lerr, err := b.c.writeOp(bulkDeleteOp(action.docs), b.ordered) - if lerr != nil { - result.Matched += lerr.N - result.Modified += lerr.modified - } - return b.checkSuccess(action, berr, lerr, err) -} - -func (b *Bulk) checkSuccess(action *bulkAction, berr *BulkError, lerr *LastError, err error) bool { - if lerr != nil && len(lerr.ecases) > 0 { - for i := 0; i < len(lerr.ecases); i++ { - // Map back from the local error index into the visible one. - ecase := lerr.ecases[i] - idx := ecase.Index - if idx >= 0 { - idx = action.idxs[idx] - } - berr.ecases = append(berr.ecases, BulkErrorCase{idx, ecase.Err}) - } - return false - } else if err != nil { - for i := 0; i < len(action.idxs); i++ { - berr.ecases = append(berr.ecases, BulkErrorCase{action.idxs[i], err}) - } - return false - } - return true -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/cluster.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/cluster.go deleted file mode 100644 index c3bf8b01..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/cluster.go +++ /dev/null @@ -1,682 +0,0 @@ -// mgo - MongoDB driver for Go -// -// Copyright (c) 2010-2012 - Gustavo Niemeyer -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// 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. - -package mgo - -import ( - "errors" - "fmt" - "net" - "strconv" - "strings" - "sync" - "time" - - "gopkg.in/mgo.v2/bson" -) - -// --------------------------------------------------------------------------- -// Mongo cluster encapsulation. -// -// A cluster enables the communication with one or more servers participating -// in a mongo cluster. This works with individual servers, a replica set, -// a replica pair, one or multiple mongos routers, etc. - -type mongoCluster struct { - sync.RWMutex - serverSynced sync.Cond - userSeeds []string - dynaSeeds []string - servers mongoServers - masters mongoServers - references int - syncing bool - direct bool - failFast bool - syncCount uint - setName string - cachedIndex map[string]bool - sync chan bool - dial dialer -} - -func newCluster(userSeeds []string, direct, failFast bool, dial dialer, setName string) *mongoCluster { - cluster := &mongoCluster{ - userSeeds: userSeeds, - references: 1, - direct: direct, - failFast: failFast, - dial: dial, - setName: setName, - } - cluster.serverSynced.L = cluster.RWMutex.RLocker() - cluster.sync = make(chan bool, 1) - stats.cluster(+1) - go cluster.syncServersLoop() - return cluster -} - -// Acquire increases the reference count for the cluster. -func (cluster *mongoCluster) Acquire() { - cluster.Lock() - cluster.references++ - debugf("Cluster %p acquired (refs=%d)", cluster, cluster.references) - cluster.Unlock() -} - -// Release decreases the reference count for the cluster. Once -// it reaches zero, all servers will be closed. -func (cluster *mongoCluster) Release() { - cluster.Lock() - if cluster.references == 0 { - panic("cluster.Release() with references == 0") - } - cluster.references-- - debugf("Cluster %p released (refs=%d)", cluster, cluster.references) - if cluster.references == 0 { - for _, server := range cluster.servers.Slice() { - server.Close() - } - // Wake up the sync loop so it can die. - cluster.syncServers() - stats.cluster(-1) - } - cluster.Unlock() -} - -func (cluster *mongoCluster) LiveServers() (servers []string) { - cluster.RLock() - for _, serv := range cluster.servers.Slice() { - servers = append(servers, serv.Addr) - } - cluster.RUnlock() - return servers -} - -func (cluster *mongoCluster) removeServer(server *mongoServer) { - cluster.Lock() - cluster.masters.Remove(server) - other := cluster.servers.Remove(server) - cluster.Unlock() - if other != nil { - other.Close() - log("Removed server ", server.Addr, " from cluster.") - } - server.Close() -} - -type isMasterResult struct { - IsMaster bool - Secondary bool - Primary string - Hosts []string - Passives []string - Tags bson.D - Msg string - SetName string `bson:"setName"` - MaxWireVersion int `bson:"maxWireVersion"` -} - -func (cluster *mongoCluster) isMaster(socket *mongoSocket, result *isMasterResult) error { - // Monotonic let's it talk to a slave and still hold the socket. - session := newSession(Monotonic, cluster, 10*time.Second) - session.setSocket(socket) - err := session.Run("ismaster", result) - session.Close() - return err -} - -type possibleTimeout interface { - Timeout() bool -} - -var syncSocketTimeout = 5 * time.Second - -func (cluster *mongoCluster) syncServer(server *mongoServer) (info *mongoServerInfo, hosts []string, err error) { - var syncTimeout time.Duration - if raceDetector { - // This variable is only ever touched by tests. - globalMutex.Lock() - syncTimeout = syncSocketTimeout - globalMutex.Unlock() - } else { - syncTimeout = syncSocketTimeout - } - - addr := server.Addr - log("SYNC Processing ", addr, "...") - - // Retry a few times to avoid knocking a server down for a hiccup. - var result isMasterResult - var tryerr error - for retry := 0; ; retry++ { - if retry == 3 || retry == 1 && cluster.failFast { - return nil, nil, tryerr - } - if retry > 0 { - // Don't abuse the server needlessly if there's something actually wrong. - if err, ok := tryerr.(possibleTimeout); ok && err.Timeout() { - // Give a chance for waiters to timeout as well. - cluster.serverSynced.Broadcast() - } - time.Sleep(syncShortDelay) - } - - // It's not clear what would be a good timeout here. Is it - // better to wait longer or to retry? - socket, _, err := server.AcquireSocket(0, syncTimeout) - if err != nil { - tryerr = err - logf("SYNC Failed to get socket to %s: %v", addr, err) - continue - } - err = cluster.isMaster(socket, &result) - socket.Release() - if err != nil { - tryerr = err - logf("SYNC Command 'ismaster' to %s failed: %v", addr, err) - continue - } - debugf("SYNC Result of 'ismaster' from %s: %#v", addr, result) - break - } - - if cluster.setName != "" && result.SetName != cluster.setName { - logf("SYNC Server %s is not a member of replica set %q", addr, cluster.setName) - return nil, nil, fmt.Errorf("server %s is not a member of replica set %q", addr, cluster.setName) - } - - if result.IsMaster { - debugf("SYNC %s is a master.", addr) - if !server.info.Master { - // Made an incorrect assumption above, so fix stats. - stats.conn(-1, false) - stats.conn(+1, true) - } - } else if result.Secondary { - debugf("SYNC %s is a slave.", addr) - } else if cluster.direct { - logf("SYNC %s in unknown state. Pretending it's a slave due to direct connection.", addr) - } else { - logf("SYNC %s is neither a master nor a slave.", addr) - // Let stats track it as whatever was known before. - return nil, nil, errors.New(addr + " is not a master nor slave") - } - - info = &mongoServerInfo{ - Master: result.IsMaster, - Mongos: result.Msg == "isdbgrid", - Tags: result.Tags, - SetName: result.SetName, - MaxWireVersion: result.MaxWireVersion, - } - - hosts = make([]string, 0, 1+len(result.Hosts)+len(result.Passives)) - if result.Primary != "" { - // First in the list to speed up master discovery. - hosts = append(hosts, result.Primary) - } - hosts = append(hosts, result.Hosts...) - hosts = append(hosts, result.Passives...) - - debugf("SYNC %s knows about the following peers: %#v", addr, hosts) - return info, hosts, nil -} - -type syncKind bool - -const ( - completeSync syncKind = true - partialSync syncKind = false -) - -func (cluster *mongoCluster) addServer(server *mongoServer, info *mongoServerInfo, syncKind syncKind) { - cluster.Lock() - current := cluster.servers.Search(server.ResolvedAddr) - if current == nil { - if syncKind == partialSync { - cluster.Unlock() - server.Close() - log("SYNC Discarding unknown server ", server.Addr, " due to partial sync.") - return - } - cluster.servers.Add(server) - if info.Master { - cluster.masters.Add(server) - log("SYNC Adding ", server.Addr, " to cluster as a master.") - } else { - log("SYNC Adding ", server.Addr, " to cluster as a slave.") - } - } else { - if server != current { - panic("addServer attempting to add duplicated server") - } - if server.Info().Master != info.Master { - if info.Master { - log("SYNC Server ", server.Addr, " is now a master.") - cluster.masters.Add(server) - } else { - log("SYNC Server ", server.Addr, " is now a slave.") - cluster.masters.Remove(server) - } - } - } - server.SetInfo(info) - debugf("SYNC Broadcasting availability of server %s", server.Addr) - cluster.serverSynced.Broadcast() - cluster.Unlock() -} - -func (cluster *mongoCluster) getKnownAddrs() []string { - cluster.RLock() - max := len(cluster.userSeeds) + len(cluster.dynaSeeds) + cluster.servers.Len() - seen := make(map[string]bool, max) - known := make([]string, 0, max) - - add := func(addr string) { - if _, found := seen[addr]; !found { - seen[addr] = true - known = append(known, addr) - } - } - - for _, addr := range cluster.userSeeds { - add(addr) - } - for _, addr := range cluster.dynaSeeds { - add(addr) - } - for _, serv := range cluster.servers.Slice() { - add(serv.Addr) - } - cluster.RUnlock() - - return known -} - -// syncServers injects a value into the cluster.sync channel to force -// an iteration of the syncServersLoop function. -func (cluster *mongoCluster) syncServers() { - select { - case cluster.sync <- true: - default: - } -} - -// How long to wait for a checkup of the cluster topology if nothing -// else kicks a synchronization before that. -const syncServersDelay = 30 * time.Second -const syncShortDelay = 500 * time.Millisecond - -// syncServersLoop loops while the cluster is alive to keep its idea of -// the server topology up-to-date. It must be called just once from -// newCluster. The loop iterates once syncServersDelay has passed, or -// if somebody injects a value into the cluster.sync channel to force a -// synchronization. A loop iteration will contact all servers in -// parallel, ask them about known peers and their own role within the -// cluster, and then attempt to do the same with all the peers -// retrieved. -func (cluster *mongoCluster) syncServersLoop() { - for { - debugf("SYNC Cluster %p is starting a sync loop iteration.", cluster) - - cluster.Lock() - if cluster.references == 0 { - cluster.Unlock() - break - } - cluster.references++ // Keep alive while syncing. - direct := cluster.direct - cluster.Unlock() - - cluster.syncServersIteration(direct) - - // We just synchronized, so consume any outstanding requests. - select { - case <-cluster.sync: - default: - } - - cluster.Release() - - // Hold off before allowing another sync. No point in - // burning CPU looking for down servers. - if !cluster.failFast { - time.Sleep(syncShortDelay) - } - - cluster.Lock() - if cluster.references == 0 { - cluster.Unlock() - break - } - cluster.syncCount++ - // Poke all waiters so they have a chance to timeout or - // restart syncing if they wish to. - cluster.serverSynced.Broadcast() - // Check if we have to restart immediately either way. - restart := !direct && cluster.masters.Empty() || cluster.servers.Empty() - cluster.Unlock() - - if restart { - log("SYNC No masters found. Will synchronize again.") - time.Sleep(syncShortDelay) - continue - } - - debugf("SYNC Cluster %p waiting for next requested or scheduled sync.", cluster) - - // Hold off until somebody explicitly requests a synchronization - // or it's time to check for a cluster topology change again. - select { - case <-cluster.sync: - case <-time.After(syncServersDelay): - } - } - debugf("SYNC Cluster %p is stopping its sync loop.", cluster) -} - -func (cluster *mongoCluster) server(addr string, tcpaddr *net.TCPAddr) *mongoServer { - cluster.RLock() - server := cluster.servers.Search(tcpaddr.String()) - cluster.RUnlock() - if server != nil { - return server - } - return newServer(addr, tcpaddr, cluster.sync, cluster.dial) -} - -func resolveAddr(addr string) (*net.TCPAddr, error) { - // Simple cases that do not need actual resolution. Works with IPv4 and v6. - if host, port, err := net.SplitHostPort(addr); err == nil { - if port, _ := strconv.Atoi(port); port > 0 { - zone := "" - if i := strings.LastIndex(host, "%"); i >= 0 { - zone = host[i+1:] - host = host[:i] - } - ip := net.ParseIP(host) - if ip != nil { - return &net.TCPAddr{IP: ip, Port: port, Zone: zone}, nil - } - } - } - - // Attempt to resolve IPv4 and v6 concurrently. - addrChan := make(chan *net.TCPAddr, 2) - for _, network := range []string{"udp4", "udp6"} { - network := network - go func() { - // The unfortunate UDP dialing hack allows having a timeout on address resolution. - conn, err := net.DialTimeout(network, addr, 10*time.Second) - if err != nil { - addrChan <- nil - } else { - addrChan <- (*net.TCPAddr)(conn.RemoteAddr().(*net.UDPAddr)) - conn.Close() - } - }() - } - - // Wait for the result of IPv4 and v6 resolution. Use IPv4 if available. - tcpaddr := <-addrChan - if tcpaddr == nil || len(tcpaddr.IP) != 4 { - var timeout <-chan time.Time - if tcpaddr != nil { - // Don't wait too long if an IPv6 address is known. - timeout = time.After(50 * time.Millisecond) - } - select { - case <-timeout: - case tcpaddr2 := <-addrChan: - if tcpaddr == nil || tcpaddr2 != nil { - // It's an IPv4 address or the only known address. Use it. - tcpaddr = tcpaddr2 - } - } - } - - if tcpaddr == nil { - log("SYNC Failed to resolve server address: ", addr) - return nil, errors.New("failed to resolve server address: " + addr) - } - if tcpaddr.String() != addr { - debug("SYNC Address ", addr, " resolved as ", tcpaddr.String()) - } - return tcpaddr, nil -} - -type pendingAdd struct { - server *mongoServer - info *mongoServerInfo -} - -func (cluster *mongoCluster) syncServersIteration(direct bool) { - log("SYNC Starting full topology synchronization...") - - var wg sync.WaitGroup - var m sync.Mutex - notYetAdded := make(map[string]pendingAdd) - addIfFound := make(map[string]bool) - seen := make(map[string]bool) - syncKind := partialSync - - var spawnSync func(addr string, byMaster bool) - spawnSync = func(addr string, byMaster bool) { - wg.Add(1) - go func() { - defer wg.Done() - - tcpaddr, err := resolveAddr(addr) - if err != nil { - log("SYNC Failed to start sync of ", addr, ": ", err.Error()) - return - } - resolvedAddr := tcpaddr.String() - - m.Lock() - if byMaster { - if pending, ok := notYetAdded[resolvedAddr]; ok { - delete(notYetAdded, resolvedAddr) - m.Unlock() - cluster.addServer(pending.server, pending.info, completeSync) - return - } - addIfFound[resolvedAddr] = true - } - if seen[resolvedAddr] { - m.Unlock() - return - } - seen[resolvedAddr] = true - m.Unlock() - - server := cluster.server(addr, tcpaddr) - info, hosts, err := cluster.syncServer(server) - if err != nil { - cluster.removeServer(server) - return - } - - m.Lock() - add := direct || info.Master || addIfFound[resolvedAddr] - if add { - syncKind = completeSync - } else { - notYetAdded[resolvedAddr] = pendingAdd{server, info} - } - m.Unlock() - if add { - cluster.addServer(server, info, completeSync) - } - if !direct { - for _, addr := range hosts { - spawnSync(addr, info.Master) - } - } - }() - } - - knownAddrs := cluster.getKnownAddrs() - for _, addr := range knownAddrs { - spawnSync(addr, false) - } - wg.Wait() - - if syncKind == completeSync { - logf("SYNC Synchronization was complete (got data from primary).") - for _, pending := range notYetAdded { - cluster.removeServer(pending.server) - } - } else { - logf("SYNC Synchronization was partial (cannot talk to primary).") - for _, pending := range notYetAdded { - cluster.addServer(pending.server, pending.info, partialSync) - } - } - - cluster.Lock() - mastersLen := cluster.masters.Len() - logf("SYNC Synchronization completed: %d master(s) and %d slave(s) alive.", mastersLen, cluster.servers.Len()-mastersLen) - - // Update dynamic seeds, but only if we have any good servers. Otherwise, - // leave them alone for better chances of a successful sync in the future. - if syncKind == completeSync { - dynaSeeds := make([]string, cluster.servers.Len()) - for i, server := range cluster.servers.Slice() { - dynaSeeds[i] = server.Addr - } - cluster.dynaSeeds = dynaSeeds - debugf("SYNC New dynamic seeds: %#v\n", dynaSeeds) - } - cluster.Unlock() -} - -// AcquireSocket returns a socket to a server in the cluster. If slaveOk is -// true, it will attempt to return a socket to a slave server. If it is -// false, the socket will necessarily be to a master server. -func (cluster *mongoCluster) AcquireSocket(mode Mode, slaveOk bool, syncTimeout time.Duration, socketTimeout time.Duration, serverTags []bson.D, poolLimit int) (s *mongoSocket, err error) { - var started time.Time - var syncCount uint - warnedLimit := false - for { - cluster.RLock() - for { - mastersLen := cluster.masters.Len() - slavesLen := cluster.servers.Len() - mastersLen - debugf("Cluster has %d known masters and %d known slaves.", mastersLen, slavesLen) - if mastersLen > 0 && !(slaveOk && mode == Secondary) || slavesLen > 0 && slaveOk { - break - } - if mastersLen > 0 && mode == Secondary && cluster.masters.HasMongos() { - break - } - if started.IsZero() { - // Initialize after fast path above. - started = time.Now() - syncCount = cluster.syncCount - } else if syncTimeout != 0 && started.Before(time.Now().Add(-syncTimeout)) || cluster.failFast && cluster.syncCount != syncCount { - cluster.RUnlock() - return nil, errors.New("no reachable servers") - } - log("Waiting for servers to synchronize...") - cluster.syncServers() - - // Remember: this will release and reacquire the lock. - cluster.serverSynced.Wait() - } - - var server *mongoServer - if slaveOk { - server = cluster.servers.BestFit(mode, serverTags) - } else { - server = cluster.masters.BestFit(mode, nil) - } - cluster.RUnlock() - - if server == nil { - // Must have failed the requested tags. Sleep to avoid spinning. - time.Sleep(1e8) - continue - } - - s, abended, err := server.AcquireSocket(poolLimit, socketTimeout) - if err == errPoolLimit { - if !warnedLimit { - warnedLimit = true - log("WARNING: Per-server connection limit reached.") - } - time.Sleep(100 * time.Millisecond) - continue - } - if err != nil { - cluster.removeServer(server) - cluster.syncServers() - continue - } - if abended && !slaveOk { - var result isMasterResult - err := cluster.isMaster(s, &result) - if err != nil || !result.IsMaster { - logf("Cannot confirm server %s as master (%v)", server.Addr, err) - s.Release() - cluster.syncServers() - time.Sleep(100 * time.Millisecond) - continue - } - } - return s, nil - } - panic("unreached") -} - -func (cluster *mongoCluster) CacheIndex(cacheKey string, exists bool) { - cluster.Lock() - if cluster.cachedIndex == nil { - cluster.cachedIndex = make(map[string]bool) - } - if exists { - cluster.cachedIndex[cacheKey] = true - } else { - delete(cluster.cachedIndex, cacheKey) - } - cluster.Unlock() -} - -func (cluster *mongoCluster) HasCachedIndex(cacheKey string) (result bool) { - cluster.RLock() - if cluster.cachedIndex != nil { - result = cluster.cachedIndex[cacheKey] - } - cluster.RUnlock() - return -} - -func (cluster *mongoCluster) ResetIndexCache() { - cluster.Lock() - cluster.cachedIndex = make(map[string]bool) - cluster.Unlock() -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/doc.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/doc.go deleted file mode 100644 index 859fd9b8..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/doc.go +++ /dev/null @@ -1,31 +0,0 @@ -// Package mgo offers a rich MongoDB driver for Go. -// -// Details about the mgo project (pronounced as "mango") are found -// in its web page: -// -// http://labix.org/mgo -// -// Usage of the driver revolves around the concept of sessions. To -// get started, obtain a session using the Dial function: -// -// session, err := mgo.Dial(url) -// -// This will establish one or more connections with the cluster of -// servers defined by the url parameter. From then on, the cluster -// may be queried with multiple consistency rules (see SetMode) and -// documents retrieved with statements such as: -// -// c := session.DB(database).C(collection) -// err := c.Find(query).One(&result) -// -// New sessions are typically created by calling session.Copy on the -// initial session obtained at dial time. These new sessions will share -// the same cluster information and connection pool, and may be easily -// handed into other methods and functions for organizing logic. -// Every session created must have its Close method called at the end -// of its life time, so its resources may be put back in the pool or -// collected, depending on the case. -// -// For more details, see the documentation for the types and methods. -// -package mgo diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/gridfs.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/gridfs.go deleted file mode 100644 index 42147209..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/gridfs.go +++ /dev/null @@ -1,761 +0,0 @@ -// mgo - MongoDB driver for Go -// -// Copyright (c) 2010-2012 - Gustavo Niemeyer -// -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// 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. - -package mgo - -import ( - "crypto/md5" - "encoding/hex" - "errors" - "hash" - "io" - "os" - "sync" - "time" - - "gopkg.in/mgo.v2/bson" -) - -type GridFS struct { - Files *Collection - Chunks *Collection -} - -type gfsFileMode int - -const ( - gfsClosed gfsFileMode = 0 - gfsReading gfsFileMode = 1 - gfsWriting gfsFileMode = 2 -) - -type GridFile struct { - m sync.Mutex - c sync.Cond - gfs *GridFS - mode gfsFileMode - err error - - chunk int - offset int64 - - wpending int - wbuf []byte - wsum hash.Hash - - rbuf []byte - rcache *gfsCachedChunk - - doc gfsFile -} - -type gfsFile struct { - Id interface{} "_id" - ChunkSize int "chunkSize" - UploadDate time.Time "uploadDate" - Length int64 ",minsize" - MD5 string - Filename string ",omitempty" - ContentType string "contentType,omitempty" - Metadata *bson.Raw ",omitempty" -} - -type gfsChunk struct { - Id interface{} "_id" - FilesId interface{} "files_id" - N int - Data []byte -} - -type gfsCachedChunk struct { - wait sync.Mutex - n int - data []byte - err error -} - -func newGridFS(db *Database, prefix string) *GridFS { - return &GridFS{db.C(prefix + ".files"), db.C(prefix + ".chunks")} -} - -func (gfs *GridFS) newFile() *GridFile { - file := &GridFile{gfs: gfs} - file.c.L = &file.m - //runtime.SetFinalizer(file, finalizeFile) - return file -} - -func finalizeFile(file *GridFile) { - file.Close() -} - -// Create creates a new file with the provided name in the GridFS. If the file -// name already exists, a new version will be inserted with an up-to-date -// uploadDate that will cause it to be atomically visible to the Open and -// OpenId methods. If the file name is not important, an empty name may be -// provided and the file Id used instead. -// -// It's important to Close files whether they are being written to -// or read from, and to check the err result to ensure the operation -// completed successfully. -// -// A simple example inserting a new file: -// -// func check(err error) { -// if err != nil { -// panic(err.String()) -// } -// } -// file, err := db.GridFS("fs").Create("myfile.txt") -// check(err) -// n, err := file.Write([]byte("Hello world!")) -// check(err) -// err = file.Close() -// check(err) -// fmt.Printf("%d bytes written\n", n) -// -// The io.Writer interface is implemented by *GridFile and may be used to -// help on the file creation. For example: -// -// file, err := db.GridFS("fs").Create("myfile.txt") -// check(err) -// messages, err := os.Open("/var/log/messages") -// check(err) -// defer messages.Close() -// err = io.Copy(file, messages) -// check(err) -// err = file.Close() -// check(err) -// -func (gfs *GridFS) Create(name string) (file *GridFile, err error) { - file = gfs.newFile() - file.mode = gfsWriting - file.wsum = md5.New() - file.doc = gfsFile{Id: bson.NewObjectId(), ChunkSize: 255 * 1024, Filename: name} - return -} - -// OpenId returns the file with the provided id, for reading. -// If the file isn't found, err will be set to mgo.ErrNotFound. -// -// It's important to Close files whether they are being written to -// or read from, and to check the err result to ensure the operation -// completed successfully. -// -// The following example will print the first 8192 bytes from the file: -// -// func check(err error) { -// if err != nil { -// panic(err.String()) -// } -// } -// file, err := db.GridFS("fs").OpenId(objid) -// check(err) -// b := make([]byte, 8192) -// n, err := file.Read(b) -// check(err) -// fmt.Println(string(b)) -// check(err) -// err = file.Close() -// check(err) -// fmt.Printf("%d bytes read\n", n) -// -// The io.Reader interface is implemented by *GridFile and may be used to -// deal with it. As an example, the following snippet will dump the whole -// file into the standard output: -// -// file, err := db.GridFS("fs").OpenId(objid) -// check(err) -// err = io.Copy(os.Stdout, file) -// check(err) -// err = file.Close() -// check(err) -// -func (gfs *GridFS) OpenId(id interface{}) (file *GridFile, err error) { - var doc gfsFile - err = gfs.Files.Find(bson.M{"_id": id}).One(&doc) - if err != nil { - return - } - file = gfs.newFile() - file.mode = gfsReading - file.doc = doc - return -} - -// Open returns the most recently uploaded file with the provided -// name, for reading. If the file isn't found, err will be set -// to mgo.ErrNotFound. -// -// It's important to Close files whether they are being written to -// or read from, and to check the err result to ensure the operation -// completed successfully. -// -// The following example will print the first 8192 bytes from the file: -// -// file, err := db.GridFS("fs").Open("myfile.txt") -// check(err) -// b := make([]byte, 8192) -// n, err := file.Read(b) -// check(err) -// fmt.Println(string(b)) -// check(err) -// err = file.Close() -// check(err) -// fmt.Printf("%d bytes read\n", n) -// -// The io.Reader interface is implemented by *GridFile and may be used to -// deal with it. As an example, the following snippet will dump the whole -// file into the standard output: -// -// file, err := db.GridFS("fs").Open("myfile.txt") -// check(err) -// err = io.Copy(os.Stdout, file) -// check(err) -// err = file.Close() -// check(err) -// -func (gfs *GridFS) Open(name string) (file *GridFile, err error) { - var doc gfsFile - err = gfs.Files.Find(bson.M{"filename": name}).Sort("-uploadDate").One(&doc) - if err != nil { - return - } - file = gfs.newFile() - file.mode = gfsReading - file.doc = doc - return -} - -// OpenNext opens the next file from iter for reading, sets *file to it, -// and returns true on the success case. If no more documents are available -// on iter or an error occurred, *file is set to nil and the result is false. -// Errors will be available via iter.Err(). -// -// The iter parameter must be an iterator on the GridFS files collection. -// Using the GridFS.Find method is an easy way to obtain such an iterator, -// but any iterator on the collection will work. -// -// If the provided *file is non-nil, OpenNext will close it before attempting -// to iterate to the next element. This means that in a loop one only -// has to worry about closing files when breaking out of the loop early -// (break, return, or panic). -// -// For example: -// -// gfs := db.GridFS("fs") -// query := gfs.Find(nil).Sort("filename") -// iter := query.Iter() -// var f *mgo.GridFile -// for gfs.OpenNext(iter, &f) { -// fmt.Printf("Filename: %s\n", f.Name()) -// } -// if iter.Close() != nil { -// panic(iter.Close()) -// } -// -func (gfs *GridFS) OpenNext(iter *Iter, file **GridFile) bool { - if *file != nil { - // Ignoring the error here shouldn't be a big deal - // as we're reading the file and the loop iteration - // for this file is finished. - _ = (*file).Close() - } - var doc gfsFile - if !iter.Next(&doc) { - *file = nil - return false - } - f := gfs.newFile() - f.mode = gfsReading - f.doc = doc - *file = f - return true -} - -// Find runs query on GridFS's files collection and returns -// the resulting Query. -// -// This logic: -// -// gfs := db.GridFS("fs") -// iter := gfs.Find(nil).Iter() -// -// Is equivalent to: -// -// files := db.C("fs" + ".files") -// iter := files.Find(nil).Iter() -// -func (gfs *GridFS) Find(query interface{}) *Query { - return gfs.Files.Find(query) -} - -// RemoveId deletes the file with the provided id from the GridFS. -func (gfs *GridFS) RemoveId(id interface{}) error { - err := gfs.Files.Remove(bson.M{"_id": id}) - if err != nil { - return err - } - _, err = gfs.Chunks.RemoveAll(bson.D{{"files_id", id}}) - return err -} - -type gfsDocId struct { - Id interface{} "_id" -} - -// Remove deletes all files with the provided name from the GridFS. -func (gfs *GridFS) Remove(name string) (err error) { - iter := gfs.Files.Find(bson.M{"filename": name}).Select(bson.M{"_id": 1}).Iter() - var doc gfsDocId - for iter.Next(&doc) { - if e := gfs.RemoveId(doc.Id); e != nil { - err = e - } - } - if err == nil { - err = iter.Close() - } - return err -} - -func (file *GridFile) assertMode(mode gfsFileMode) { - switch file.mode { - case mode: - return - case gfsWriting: - panic("GridFile is open for writing") - case gfsReading: - panic("GridFile is open for reading") - case gfsClosed: - panic("GridFile is closed") - default: - panic("internal error: missing GridFile mode") - } -} - -// SetChunkSize sets size of saved chunks. Once the file is written to, it -// will be split in blocks of that size and each block saved into an -// independent chunk document. The default chunk size is 255kb. -// -// It is a runtime error to call this function once the file has started -// being written to. -func (file *GridFile) SetChunkSize(bytes int) { - file.assertMode(gfsWriting) - debugf("GridFile %p: setting chunk size to %d", file, bytes) - file.m.Lock() - file.doc.ChunkSize = bytes - file.m.Unlock() -} - -// Id returns the current file Id. -func (file *GridFile) Id() interface{} { - return file.doc.Id -} - -// SetId changes the current file Id. -// -// It is a runtime error to call this function once the file has started -// being written to, or when the file is not open for writing. -func (file *GridFile) SetId(id interface{}) { - file.assertMode(gfsWriting) - file.m.Lock() - file.doc.Id = id - file.m.Unlock() -} - -// Name returns the optional file name. An empty string will be returned -// in case it is unset. -func (file *GridFile) Name() string { - return file.doc.Filename -} - -// SetName changes the optional file name. An empty string may be used to -// unset it. -// -// It is a runtime error to call this function when the file is not open -// for writing. -func (file *GridFile) SetName(name string) { - file.assertMode(gfsWriting) - file.m.Lock() - file.doc.Filename = name - file.m.Unlock() -} - -// ContentType returns the optional file content type. An empty string will be -// returned in case it is unset. -func (file *GridFile) ContentType() string { - return file.doc.ContentType -} - -// ContentType changes the optional file content type. An empty string may be -// used to unset it. -// -// It is a runtime error to call this function when the file is not open -// for writing. -func (file *GridFile) SetContentType(ctype string) { - file.assertMode(gfsWriting) - file.m.Lock() - file.doc.ContentType = ctype - file.m.Unlock() -} - -// GetMeta unmarshals the optional "metadata" field associated with the -// file into the result parameter. The meaning of keys under that field -// is user-defined. For example: -// -// result := struct{ INode int }{} -// err = file.GetMeta(&result) -// if err != nil { -// panic(err.String()) -// } -// fmt.Printf("inode: %d\n", result.INode) -// -func (file *GridFile) GetMeta(result interface{}) (err error) { - file.m.Lock() - if file.doc.Metadata != nil { - err = bson.Unmarshal(file.doc.Metadata.Data, result) - } - file.m.Unlock() - return -} - -// SetMeta changes the optional "metadata" field associated with the -// file. The meaning of keys under that field is user-defined. -// For example: -// -// file.SetMeta(bson.M{"inode": inode}) -// -// It is a runtime error to call this function when the file is not open -// for writing. -func (file *GridFile) SetMeta(metadata interface{}) { - file.assertMode(gfsWriting) - data, err := bson.Marshal(metadata) - file.m.Lock() - if err != nil && file.err == nil { - file.err = err - } else { - file.doc.Metadata = &bson.Raw{Data: data} - } - file.m.Unlock() -} - -// Size returns the file size in bytes. -func (file *GridFile) Size() (bytes int64) { - file.m.Lock() - bytes = file.doc.Length - file.m.Unlock() - return -} - -// MD5 returns the file MD5 as a hex-encoded string. -func (file *GridFile) MD5() (md5 string) { - return file.doc.MD5 -} - -// UploadDate returns the file upload time. -func (file *GridFile) UploadDate() time.Time { - return file.doc.UploadDate -} - -// SetUploadDate changes the file upload time. -// -// It is a runtime error to call this function when the file is not open -// for writing. -func (file *GridFile) SetUploadDate(t time.Time) { - file.assertMode(gfsWriting) - file.m.Lock() - file.doc.UploadDate = t - file.m.Unlock() -} - -// Close flushes any pending changes in case the file is being written -// to, waits for any background operations to finish, and closes the file. -// -// It's important to Close files whether they are being written to -// or read from, and to check the err result to ensure the operation -// completed successfully. -func (file *GridFile) Close() (err error) { - file.m.Lock() - defer file.m.Unlock() - if file.mode == gfsWriting { - if len(file.wbuf) > 0 && file.err == nil { - file.insertChunk(file.wbuf) - file.wbuf = file.wbuf[0:0] - } - file.completeWrite() - } else if file.mode == gfsReading && file.rcache != nil { - file.rcache.wait.Lock() - file.rcache = nil - } - file.mode = gfsClosed - debugf("GridFile %p: closed", file) - return file.err -} - -func (file *GridFile) completeWrite() { - for file.wpending > 0 { - debugf("GridFile %p: waiting for %d pending chunks to complete file write", file, file.wpending) - file.c.Wait() - } - if file.err == nil { - hexsum := hex.EncodeToString(file.wsum.Sum(nil)) - if file.doc.UploadDate.IsZero() { - file.doc.UploadDate = bson.Now() - } - file.doc.MD5 = hexsum - file.err = file.gfs.Files.Insert(file.doc) - } - if file.err != nil { - file.gfs.Chunks.RemoveAll(bson.D{{"files_id", file.doc.Id}}) - } - if file.err == nil { - index := Index{ - Key: []string{"files_id", "n"}, - Unique: true, - } - file.err = file.gfs.Chunks.EnsureIndex(index) - } -} - -// Abort cancels an in-progress write, preventing the file from being -// automically created and ensuring previously written chunks are -// removed when the file is closed. -// -// It is a runtime error to call Abort when the file was not opened -// for writing. -func (file *GridFile) Abort() { - if file.mode != gfsWriting { - panic("file.Abort must be called on file opened for writing") - } - file.err = errors.New("write aborted") -} - -// Write writes the provided data to the file and returns the -// number of bytes written and an error in case something -// wrong happened. -// -// The file will internally cache the data so that all but the last -// chunk sent to the database have the size defined by SetChunkSize. -// This also means that errors may be deferred until a future call -// to Write or Close. -// -// The parameters and behavior of this function turn the file -// into an io.Writer. -func (file *GridFile) Write(data []byte) (n int, err error) { - file.assertMode(gfsWriting) - file.m.Lock() - debugf("GridFile %p: writing %d bytes", file, len(data)) - defer file.m.Unlock() - - if file.err != nil { - return 0, file.err - } - - n = len(data) - file.doc.Length += int64(n) - chunkSize := file.doc.ChunkSize - - if len(file.wbuf)+len(data) < chunkSize { - file.wbuf = append(file.wbuf, data...) - return - } - - // First, flush file.wbuf complementing with data. - if len(file.wbuf) > 0 { - missing := chunkSize - len(file.wbuf) - if missing > len(data) { - missing = len(data) - } - file.wbuf = append(file.wbuf, data[:missing]...) - data = data[missing:] - file.insertChunk(file.wbuf) - file.wbuf = file.wbuf[0:0] - } - - // Then, flush all chunks from data without copying. - for len(data) > chunkSize { - size := chunkSize - if size > len(data) { - size = len(data) - } - file.insertChunk(data[:size]) - data = data[size:] - } - - // And append the rest for a future call. - file.wbuf = append(file.wbuf, data...) - - return n, file.err -} - -func (file *GridFile) insertChunk(data []byte) { - n := file.chunk - file.chunk++ - debugf("GridFile %p: adding to checksum: %q", file, string(data)) - file.wsum.Write(data) - - for file.doc.ChunkSize*file.wpending >= 1024*1024 { - // Hold on.. we got a MB pending. - file.c.Wait() - if file.err != nil { - return - } - } - - file.wpending++ - - debugf("GridFile %p: inserting chunk %d with %d bytes", file, n, len(data)) - - // We may not own the memory of data, so rather than - // simply copying it, we'll marshal the document ahead of time. - data, err := bson.Marshal(gfsChunk{bson.NewObjectId(), file.doc.Id, n, data}) - if err != nil { - file.err = err - return - } - - go func() { - err := file.gfs.Chunks.Insert(bson.Raw{Data: data}) - file.m.Lock() - file.wpending-- - if err != nil && file.err == nil { - file.err = err - } - file.c.Broadcast() - file.m.Unlock() - }() -} - -// Seek sets the offset for the next Read or Write on file to -// offset, interpreted according to whence: 0 means relative to -// the origin of the file, 1 means relative to the current offset, -// and 2 means relative to the end. It returns the new offset and -// an error, if any. -func (file *GridFile) Seek(offset int64, whence int) (pos int64, err error) { - file.m.Lock() - debugf("GridFile %p: seeking for %s (whence=%d)", file, offset, whence) - defer file.m.Unlock() - switch whence { - case os.SEEK_SET: - case os.SEEK_CUR: - offset += file.offset - case os.SEEK_END: - offset += file.doc.Length - default: - panic("unsupported whence value") - } - if offset > file.doc.Length { - return file.offset, errors.New("seek past end of file") - } - if offset == file.doc.Length { - // If we're seeking to the end of the file, - // no need to read anything. This enables - // a client to find the size of the file using only the - // io.ReadSeeker interface with low overhead. - file.offset = offset - return file.offset, nil - } - chunk := int(offset / int64(file.doc.ChunkSize)) - if chunk+1 == file.chunk && offset >= file.offset { - file.rbuf = file.rbuf[int(offset-file.offset):] - file.offset = offset - return file.offset, nil - } - file.offset = offset - file.chunk = chunk - file.rbuf = nil - file.rbuf, err = file.getChunk() - if err == nil { - file.rbuf = file.rbuf[int(file.offset-int64(chunk)*int64(file.doc.ChunkSize)):] - } - return file.offset, err -} - -// Read reads into b the next available data from the file and -// returns the number of bytes written and an error in case -// something wrong happened. At the end of the file, n will -// be zero and err will be set to io.EOF. -// -// The parameters and behavior of this function turn the file -// into an io.Reader. -func (file *GridFile) Read(b []byte) (n int, err error) { - file.assertMode(gfsReading) - file.m.Lock() - debugf("GridFile %p: reading at offset %d into buffer of length %d", file, file.offset, len(b)) - defer file.m.Unlock() - if file.offset == file.doc.Length { - return 0, io.EOF - } - for err == nil { - i := copy(b, file.rbuf) - n += i - file.offset += int64(i) - file.rbuf = file.rbuf[i:] - if i == len(b) || file.offset == file.doc.Length { - break - } - b = b[i:] - file.rbuf, err = file.getChunk() - } - return n, err -} - -func (file *GridFile) getChunk() (data []byte, err error) { - cache := file.rcache - file.rcache = nil - if cache != nil && cache.n == file.chunk { - debugf("GridFile %p: Getting chunk %d from cache", file, file.chunk) - cache.wait.Lock() - data, err = cache.data, cache.err - } else { - debugf("GridFile %p: Fetching chunk %d", file, file.chunk) - var doc gfsChunk - err = file.gfs.Chunks.Find(bson.D{{"files_id", file.doc.Id}, {"n", file.chunk}}).One(&doc) - data = doc.Data - } - file.chunk++ - if int64(file.chunk)*int64(file.doc.ChunkSize) < file.doc.Length { - // Read the next one in background. - cache = &gfsCachedChunk{n: file.chunk} - cache.wait.Lock() - debugf("GridFile %p: Scheduling chunk %d for background caching", file, file.chunk) - // Clone the session to avoid having it closed in between. - chunks := file.gfs.Chunks - session := chunks.Database.Session.Clone() - go func(id interface{}, n int) { - defer session.Close() - chunks = chunks.With(session) - var doc gfsChunk - cache.err = chunks.Find(bson.D{{"files_id", id}, {"n", n}}).One(&doc) - cache.data = doc.Data - cache.wait.Unlock() - }(file.doc.Id, file.chunk) - file.rcache = cache - } - debugf("Returning err: %#v", err) - return -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/LICENSE b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/LICENSE deleted file mode 100644 index 74487567..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/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/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/decode.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/decode.go deleted file mode 100644 index ce7c7d24..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/decode.go +++ /dev/null @@ -1,1685 +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. - -// Represents JSON data structure using native Go types: booleans, floats, -// strings, arrays, and maps. - -package json - -import ( - "bytes" - "encoding" - "encoding/base64" - "errors" - "fmt" - "reflect" - "runtime" - "strconv" - "unicode" - "unicode/utf16" - "unicode/utf8" -) - -// Unmarshal parses the JSON-encoded data and stores the result -// in the value pointed to by v. -// -// Unmarshal uses the inverse of the encodings that -// Marshal uses, allocating maps, slices, and pointers as necessary, -// with the following additional rules: -// -// To unmarshal JSON into a pointer, Unmarshal first handles the case of -// the JSON being the JSON literal null. In that case, Unmarshal sets -// the pointer to nil. Otherwise, Unmarshal unmarshals the JSON into -// the value pointed at by the pointer. If the pointer is nil, Unmarshal -// allocates a new value for it to point to. -// -// To unmarshal JSON into a struct, Unmarshal matches incoming object -// keys to the keys used by Marshal (either the struct field name or its tag), -// preferring an exact match but also accepting a case-insensitive match. -// Unmarshal will only set exported fields of the struct. -// -// To unmarshal JSON into an interface value, -// Unmarshal stores one of these in the interface value: -// -// bool, for JSON booleans -// float64, for JSON numbers -// string, for JSON strings -// []interface{}, for JSON arrays -// map[string]interface{}, for JSON objects -// nil for JSON null -// -// To unmarshal a JSON array into a slice, Unmarshal resets the slice length -// to zero and then appends each element to the slice. -// As a special case, to unmarshal an empty JSON array into a slice, -// Unmarshal replaces the slice with a new empty slice. -// -// To unmarshal a JSON array into a Go array, Unmarshal decodes -// JSON array elements into corresponding Go array elements. -// If the Go array is smaller than the JSON array, -// the additional JSON array elements are discarded. -// If the JSON array is smaller than the Go array, -// the additional Go array elements are set to zero values. -// -// To unmarshal a JSON object into a map, Unmarshal first establishes a map to -// use, If the map is nil, Unmarshal allocates a new map. Otherwise Unmarshal -// reuses the existing map, keeping existing entries. Unmarshal then stores key- -// value pairs from the JSON object into the map. The map's key type must -// either be a string or implement encoding.TextUnmarshaler. -// -// If a JSON value is not appropriate for a given target type, -// or if a JSON number overflows the target type, Unmarshal -// skips that field and completes the unmarshaling as best it can. -// If no more serious errors are encountered, Unmarshal returns -// an UnmarshalTypeError describing the earliest such error. -// -// The JSON null value unmarshals into an interface, map, pointer, or slice -// by setting that Go value to nil. Because null is often used in JSON to mean -// ``not present,'' unmarshaling a JSON null into any other Go type has no effect -// on the value and produces no error. -// -// When unmarshaling quoted strings, invalid UTF-8 or -// invalid UTF-16 surrogate pairs are not treated as an error. -// Instead, they are replaced by the Unicode replacement -// character U+FFFD. -// -func Unmarshal(data []byte, v interface{}) error { - // Check for well-formedness. - // Avoids filling out half a data structure - // before discovering a JSON syntax error. - var d decodeState - err := checkValid(data, &d.scan) - if err != nil { - return err - } - - d.init(data) - return d.unmarshal(v) -} - -// Unmarshaler is the interface implemented by types -// that can unmarshal a JSON description of themselves. -// The input can be assumed to be a valid encoding of -// a JSON value. UnmarshalJSON must copy the JSON data -// if it wishes to retain the data after returning. -type Unmarshaler interface { - UnmarshalJSON([]byte) error -} - -// An UnmarshalTypeError describes a JSON value that was -// not appropriate for a value of a specific Go type. -type UnmarshalTypeError struct { - Value string // description of JSON value - "bool", "array", "number -5" - Type reflect.Type // type of Go value it could not be assigned to - Offset int64 // error occurred after reading Offset bytes -} - -func (e *UnmarshalTypeError) Error() string { - return "json: cannot unmarshal " + e.Value + " into Go value of type " + e.Type.String() -} - -// An UnmarshalFieldError describes a JSON object key that -// led to an unexported (and therefore unwritable) struct field. -// (No longer used; kept for compatibility.) -type UnmarshalFieldError struct { - Key string - Type reflect.Type - Field reflect.StructField -} - -func (e *UnmarshalFieldError) Error() string { - return "json: cannot unmarshal object key " + strconv.Quote(e.Key) + " into unexported field " + e.Field.Name + " of type " + e.Type.String() -} - -// An InvalidUnmarshalError describes an invalid argument passed to Unmarshal. -// (The argument to Unmarshal must be a non-nil pointer.) -type InvalidUnmarshalError struct { - Type reflect.Type -} - -func (e *InvalidUnmarshalError) Error() string { - if e.Type == nil { - return "json: Unmarshal(nil)" - } - - if e.Type.Kind() != reflect.Ptr { - return "json: Unmarshal(non-pointer " + e.Type.String() + ")" - } - return "json: Unmarshal(nil " + e.Type.String() + ")" -} - -func (d *decodeState) unmarshal(v interface{}) (err error) { - defer func() { - if r := recover(); r != nil { - if _, ok := r.(runtime.Error); ok { - panic(r) - } - err = r.(error) - } - }() - - rv := reflect.ValueOf(v) - if rv.Kind() != reflect.Ptr || rv.IsNil() { - return &InvalidUnmarshalError{reflect.TypeOf(v)} - } - - d.scan.reset() - // We decode rv not rv.Elem because the Unmarshaler interface - // test must be applied at the top level of the value. - d.value(rv) - return d.savedError -} - -// A Number represents a JSON number literal. -type Number string - -// String returns the literal text of the number. -func (n Number) String() string { return string(n) } - -// Float64 returns the number as a float64. -func (n Number) Float64() (float64, error) { - return strconv.ParseFloat(string(n), 64) -} - -// Int64 returns the number as an int64. -func (n Number) Int64() (int64, error) { - return strconv.ParseInt(string(n), 10, 64) -} - -// isValidNumber reports whether s is a valid JSON number literal. -func isValidNumber(s string) bool { - // This function implements the JSON numbers grammar. - // See https://tools.ietf.org/html/rfc7159#section-6 - // and http://json.org/number.gif - - if s == "" { - return false - } - - // Optional - - if s[0] == '-' { - s = s[1:] - if s == "" { - return false - } - } - - // Digits - switch { - default: - return false - - case s[0] == '0': - s = s[1:] - - case '1' <= s[0] && s[0] <= '9': - s = s[1:] - for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { - s = s[1:] - } - } - - // . followed by 1 or more digits. - if len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' { - s = s[2:] - for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { - s = s[1:] - } - } - - // e or E followed by an optional - or + and - // 1 or more digits. - if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { - s = s[1:] - if s[0] == '+' || s[0] == '-' { - s = s[1:] - if s == "" { - return false - } - } - for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { - s = s[1:] - } - } - - // Make sure we are at the end. - return s == "" -} - -// decodeState represents the state while decoding a JSON value. -type decodeState struct { - data []byte - off int // read offset in data - scan scanner - nextscan scanner // for calls to nextValue - savedError error - useNumber bool - ext Extension -} - -// errPhase is used for errors that should not happen unless -// there is a bug in the JSON decoder or something is editing -// the data slice while the decoder executes. -var errPhase = errors.New("JSON decoder out of sync - data changing underfoot?") - -func (d *decodeState) init(data []byte) *decodeState { - d.data = data - d.off = 0 - d.savedError = nil - return d -} - -// error aborts the decoding by panicking with err. -func (d *decodeState) error(err error) { - panic(err) -} - -// saveError saves the first err it is called with, -// for reporting at the end of the unmarshal. -func (d *decodeState) saveError(err error) { - if d.savedError == nil { - d.savedError = err - } -} - -// next cuts off and returns the next full JSON value in d.data[d.off:]. -// The next value is known to be an object or array, not a literal. -func (d *decodeState) next() []byte { - c := d.data[d.off] - item, rest, err := nextValue(d.data[d.off:], &d.nextscan) - if err != nil { - d.error(err) - } - d.off = len(d.data) - len(rest) - - // Our scanner has seen the opening brace/bracket - // and thinks we're still in the middle of the object. - // invent a closing brace/bracket to get it out. - if c == '{' { - d.scan.step(&d.scan, '}') - } else if c == '[' { - d.scan.step(&d.scan, ']') - } else { - // Was inside a function name. Get out of it. - d.scan.step(&d.scan, '(') - d.scan.step(&d.scan, ')') - } - - return item -} - -// scanWhile processes bytes in d.data[d.off:] until it -// receives a scan code not equal to op. -// It updates d.off and returns the new scan code. -func (d *decodeState) scanWhile(op int) int { - var newOp int - for { - if d.off >= len(d.data) { - newOp = d.scan.eof() - d.off = len(d.data) + 1 // mark processed EOF with len+1 - } else { - c := d.data[d.off] - d.off++ - newOp = d.scan.step(&d.scan, c) - } - if newOp != op { - break - } - } - return newOp -} - -// value decodes a JSON value from d.data[d.off:] into the value. -// it updates d.off to point past the decoded value. -func (d *decodeState) value(v reflect.Value) { - if !v.IsValid() { - _, rest, err := nextValue(d.data[d.off:], &d.nextscan) - if err != nil { - d.error(err) - } - d.off = len(d.data) - len(rest) - - // d.scan thinks we're still at the beginning of the item. - // Feed in an empty string - the shortest, simplest value - - // so that it knows we got to the end of the value. - if d.scan.redo { - // rewind. - d.scan.redo = false - d.scan.step = stateBeginValue - } - d.scan.step(&d.scan, '"') - d.scan.step(&d.scan, '"') - - n := len(d.scan.parseState) - if n > 0 && d.scan.parseState[n-1] == parseObjectKey { - // d.scan thinks we just read an object key; finish the object - d.scan.step(&d.scan, ':') - d.scan.step(&d.scan, '"') - d.scan.step(&d.scan, '"') - d.scan.step(&d.scan, '}') - } - - return - } - - switch op := d.scanWhile(scanSkipSpace); op { - default: - d.error(errPhase) - - case scanBeginArray: - d.array(v) - - case scanBeginObject: - d.object(v) - - case scanBeginLiteral: - d.literal(v) - - case scanBeginName: - d.name(v) - } -} - -type unquotedValue struct{} - -// valueQuoted is like value but decodes a -// quoted string literal or literal null into an interface value. -// If it finds anything other than a quoted string literal or null, -// valueQuoted returns unquotedValue{}. -func (d *decodeState) valueQuoted() interface{} { - switch op := d.scanWhile(scanSkipSpace); op { - default: - d.error(errPhase) - - case scanBeginArray: - d.array(reflect.Value{}) - - case scanBeginObject: - d.object(reflect.Value{}) - - case scanBeginName: - switch v := d.nameInterface().(type) { - case nil, string: - return v - } - - case scanBeginLiteral: - switch v := d.literalInterface().(type) { - case nil, string: - return v - } - } - return unquotedValue{} -} - -// indirect walks down v allocating pointers as needed, -// until it gets to a non-pointer. -// if it encounters an Unmarshaler, indirect stops and returns that. -// if decodingNull is true, indirect stops at the last pointer so it can be set to nil. -func (d *decodeState) indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value) { - // If v is a named type and is addressable, - // start with its address, so that if the type has pointer methods, - // we find them. - if v.Kind() != reflect.Ptr && v.Type().Name() != "" && v.CanAddr() { - v = v.Addr() - } - for { - // Load value from interface, but only if the result will be - // usefully addressable. - if v.Kind() == reflect.Interface && !v.IsNil() { - e := v.Elem() - if e.Kind() == reflect.Ptr && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Ptr) { - v = e - continue - } - } - - if v.Kind() != reflect.Ptr { - break - } - - if v.Elem().Kind() != reflect.Ptr && decodingNull && v.CanSet() { - break - } - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - if v.Type().NumMethod() > 0 { - if u, ok := v.Interface().(Unmarshaler); ok { - return u, nil, v - } - if u, ok := v.Interface().(encoding.TextUnmarshaler); ok { - return nil, u, v - } - } - v = v.Elem() - } - return nil, nil, v -} - -// array consumes an array from d.data[d.off-1:], decoding into the value v. -// the first byte of the array ('[') has been read already. -func (d *decodeState) array(v reflect.Value) { - // Check for unmarshaler. - u, ut, pv := d.indirect(v, false) - if u != nil { - d.off-- - err := u.UnmarshalJSON(d.next()) - if err != nil { - d.error(err) - } - return - } - if ut != nil { - d.saveError(&UnmarshalTypeError{"array", v.Type(), int64(d.off)}) - d.off-- - d.next() - return - } - - v = pv - - // Check type of target. - switch v.Kind() { - case reflect.Interface: - if v.NumMethod() == 0 { - // Decoding into nil interface? Switch to non-reflect code. - v.Set(reflect.ValueOf(d.arrayInterface())) - return - } - // Otherwise it's invalid. - fallthrough - default: - d.saveError(&UnmarshalTypeError{"array", v.Type(), int64(d.off)}) - d.off-- - d.next() - return - case reflect.Array: - case reflect.Slice: - break - } - - i := 0 - for { - // Look ahead for ] - can only happen on first iteration. - op := d.scanWhile(scanSkipSpace) - if op == scanEndArray { - break - } - - // Back up so d.value can have the byte we just read. - d.off-- - d.scan.undo(op) - - // Get element of array, growing if necessary. - if v.Kind() == reflect.Slice { - // Grow slice if necessary - if i >= v.Cap() { - newcap := v.Cap() + v.Cap()/2 - if newcap < 4 { - newcap = 4 - } - newv := reflect.MakeSlice(v.Type(), v.Len(), newcap) - reflect.Copy(newv, v) - v.Set(newv) - } - if i >= v.Len() { - v.SetLen(i + 1) - } - } - - if i < v.Len() { - // Decode into element. - d.value(v.Index(i)) - } else { - // Ran out of fixed array: skip. - d.value(reflect.Value{}) - } - i++ - - // Next token must be , or ]. - op = d.scanWhile(scanSkipSpace) - if op == scanEndArray { - break - } - if op != scanArrayValue { - d.error(errPhase) - } - } - - if i < v.Len() { - if v.Kind() == reflect.Array { - // Array. Zero the rest. - z := reflect.Zero(v.Type().Elem()) - for ; i < v.Len(); i++ { - v.Index(i).Set(z) - } - } else { - v.SetLen(i) - } - } - if i == 0 && v.Kind() == reflect.Slice { - v.Set(reflect.MakeSlice(v.Type(), 0, 0)) - } -} - -var nullLiteral = []byte("null") -var textUnmarshalerType = reflect.TypeOf(new(encoding.TextUnmarshaler)).Elem() - -// object consumes an object from d.data[d.off-1:], decoding into the value v. -// the first byte ('{') of the object has been read already. -func (d *decodeState) object(v reflect.Value) { - // Check for unmarshaler. - u, ut, pv := d.indirect(v, false) - if d.storeKeyed(pv) { - return - } - if u != nil { - d.off-- - err := u.UnmarshalJSON(d.next()) - if err != nil { - d.error(err) - } - return - } - if ut != nil { - d.saveError(&UnmarshalTypeError{"object", v.Type(), int64(d.off)}) - d.off-- - d.next() // skip over { } in input - return - } - v = pv - - // Decoding into nil interface? Switch to non-reflect code. - if v.Kind() == reflect.Interface && v.NumMethod() == 0 { - v.Set(reflect.ValueOf(d.objectInterface())) - return - } - - // Check type of target: - // struct or - // map[string]T or map[encoding.TextUnmarshaler]T - switch v.Kind() { - case reflect.Map: - // Map key must either have string kind or be an encoding.TextUnmarshaler. - t := v.Type() - if t.Key().Kind() != reflect.String && - !reflect.PtrTo(t.Key()).Implements(textUnmarshalerType) { - d.saveError(&UnmarshalTypeError{"object", v.Type(), int64(d.off)}) - d.off-- - d.next() // skip over { } in input - return - } - if v.IsNil() { - v.Set(reflect.MakeMap(t)) - } - case reflect.Struct: - - default: - d.saveError(&UnmarshalTypeError{"object", v.Type(), int64(d.off)}) - d.off-- - d.next() // skip over { } in input - return - } - - var mapElem reflect.Value - - empty := true - for { - // Read opening " of string key or closing }. - op := d.scanWhile(scanSkipSpace) - if op == scanEndObject { - if !empty && !d.ext.trailingCommas { - d.syntaxError("beginning of object key string") - } - break - } - empty = false - if op == scanBeginName { - if !d.ext.unquotedKeys { - d.syntaxError("beginning of object key string") - } - } else if op != scanBeginLiteral { - d.error(errPhase) - } - unquotedKey := op == scanBeginName - - // Read key. - start := d.off - 1 - op = d.scanWhile(scanContinue) - item := d.data[start : d.off-1] - var key []byte - if unquotedKey { - key = item - // TODO Fix code below to quote item when necessary. - } else { - var ok bool - key, ok = unquoteBytes(item) - if !ok { - d.error(errPhase) - } - } - - // Figure out field corresponding to key. - var subv reflect.Value - destring := false // whether the value is wrapped in a string to be decoded first - - if v.Kind() == reflect.Map { - elemType := v.Type().Elem() - if !mapElem.IsValid() { - mapElem = reflect.New(elemType).Elem() - } else { - mapElem.Set(reflect.Zero(elemType)) - } - subv = mapElem - } else { - var f *field - fields := cachedTypeFields(v.Type()) - for i := range fields { - ff := &fields[i] - if bytes.Equal(ff.nameBytes, key) { - f = ff - break - } - if f == nil && ff.equalFold(ff.nameBytes, key) { - f = ff - } - } - if f != nil { - subv = v - destring = f.quoted - for _, i := range f.index { - if subv.Kind() == reflect.Ptr { - if subv.IsNil() { - subv.Set(reflect.New(subv.Type().Elem())) - } - subv = subv.Elem() - } - subv = subv.Field(i) - } - } - } - - // Read : before value. - if op == scanSkipSpace { - op = d.scanWhile(scanSkipSpace) - } - if op != scanObjectKey { - d.error(errPhase) - } - - // Read value. - if destring { - switch qv := d.valueQuoted().(type) { - case nil: - d.literalStore(nullLiteral, subv, false) - case string: - d.literalStore([]byte(qv), subv, true) - default: - d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v", subv.Type())) - } - } else { - d.value(subv) - } - - // Write value back to map; - // if using struct, subv points into struct already. - if v.Kind() == reflect.Map { - kt := v.Type().Key() - var kv reflect.Value - switch { - case kt.Kind() == reflect.String: - kv = reflect.ValueOf(key).Convert(v.Type().Key()) - case reflect.PtrTo(kt).Implements(textUnmarshalerType): - kv = reflect.New(v.Type().Key()) - d.literalStore(item, kv, true) - kv = kv.Elem() - default: - panic("json: Unexpected key type") // should never occur - } - v.SetMapIndex(kv, subv) - } - - // Next token must be , or }. - op = d.scanWhile(scanSkipSpace) - if op == scanEndObject { - break - } - if op != scanObjectValue { - d.error(errPhase) - } - } -} - -// isNull returns whether there's a null literal at the provided offset. -func (d *decodeState) isNull(off int) bool { - if off+4 >= len(d.data) || d.data[off] != 'n' || d.data[off+1] != 'u' || d.data[off+2] != 'l' || d.data[off+3] != 'l' { - return false - } - d.nextscan.reset() - for i, c := range d.data[off:] { - if i > 4 { - return false - } - switch d.nextscan.step(&d.nextscan, c) { - case scanContinue, scanBeginName: - continue - } - break - } - return true -} - -// name consumes a const or function from d.data[d.off-1:], decoding into the value v. -// the first byte of the function name has been read already. -func (d *decodeState) name(v reflect.Value) { - if d.isNull(d.off-1) { - d.literal(v) - return - } - - // Check for unmarshaler. - u, ut, pv := d.indirect(v, false) - if d.storeKeyed(pv) { - return - } - if u != nil { - d.off-- - err := u.UnmarshalJSON(d.next()) - if err != nil { - d.error(err) - } - return - } - if ut != nil { - d.saveError(&UnmarshalTypeError{"object", v.Type(), int64(d.off)}) - d.off-- - d.next() // skip over function in input - return - } - v = pv - - // Decoding into nil interface? Switch to non-reflect code. - if v.Kind() == reflect.Interface && v.NumMethod() == 0 { - out := d.nameInterface() - if out == nil { - v.Set(reflect.Zero(v.Type())) - } else { - v.Set(reflect.ValueOf(out)) - } - return - } - - nameStart := d.off - 1 - - op := d.scanWhile(scanContinue) - - name := d.data[nameStart : d.off-1] - if op != scanParam { - // Back up so the byte just read is consumed next. - d.off-- - d.scan.undo(op) - if l, ok := d.convertLiteral(name); ok { - d.storeValue(v, l) - return - } - d.error(&SyntaxError{fmt.Sprintf("json: unknown constant %q", name), int64(d.off)}) - } - - funcName := string(name) - funcData := d.ext.funcs[funcName] - if funcData.key == "" { - d.error(fmt.Errorf("json: unknown function %q", funcName)) - } - - // Check type of target: - // struct or - // map[string]T or map[encoding.TextUnmarshaler]T - switch v.Kind() { - case reflect.Map: - // Map key must either have string kind or be an encoding.TextUnmarshaler. - t := v.Type() - if t.Key().Kind() != reflect.String && - !reflect.PtrTo(t.Key()).Implements(textUnmarshalerType) { - d.saveError(&UnmarshalTypeError{"object", v.Type(), int64(d.off)}) - d.off-- - d.next() // skip over { } in input - return - } - if v.IsNil() { - v.Set(reflect.MakeMap(t)) - } - case reflect.Struct: - - default: - d.saveError(&UnmarshalTypeError{"object", v.Type(), int64(d.off)}) - d.off-- - d.next() // skip over { } in input - return - } - - // TODO Fix case of func field as map. - //topv := v - - // Figure out field corresponding to function. - key := []byte(funcData.key) - if v.Kind() == reflect.Map { - elemType := v.Type().Elem() - v = reflect.New(elemType).Elem() - } else { - var f *field - fields := cachedTypeFields(v.Type()) - for i := range fields { - ff := &fields[i] - if bytes.Equal(ff.nameBytes, key) { - f = ff - break - } - if f == nil && ff.equalFold(ff.nameBytes, key) { - f = ff - } - } - if f != nil { - for _, i := range f.index { - if v.Kind() == reflect.Ptr { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - } - v = v.Field(i) - } - if v.Kind() == reflect.Ptr { - if v.IsNil() { - v.Set(reflect.New(v.Type().Elem())) - } - v = v.Elem() - } - } - } - - // Check for unmarshaler on func field itself. - u, ut, pv = d.indirect(v, false) - if u != nil { - d.off = nameStart - err := u.UnmarshalJSON(d.next()) - if err != nil { - d.error(err) - } - return - } - - var mapElem reflect.Value - - // Parse function arguments. - for i := 0; ; i++ { - // closing ) - can only happen on first iteration. - op := d.scanWhile(scanSkipSpace) - if op == scanEndParams { - break - } - - // Back up so d.value can have the byte we just read. - d.off-- - d.scan.undo(op) - - if i >= len(funcData.args) { - d.error(fmt.Errorf("json: too many arguments for function %s", funcName)) - } - key := []byte(funcData.args[i]) - - // Figure out field corresponding to key. - var subv reflect.Value - destring := false // whether the value is wrapped in a string to be decoded first - - if v.Kind() == reflect.Map { - elemType := v.Type().Elem() - if !mapElem.IsValid() { - mapElem = reflect.New(elemType).Elem() - } else { - mapElem.Set(reflect.Zero(elemType)) - } - subv = mapElem - } else { - var f *field - fields := cachedTypeFields(v.Type()) - for i := range fields { - ff := &fields[i] - if bytes.Equal(ff.nameBytes, key) { - f = ff - break - } - if f == nil && ff.equalFold(ff.nameBytes, key) { - f = ff - } - } - if f != nil { - subv = v - destring = f.quoted - for _, i := range f.index { - if subv.Kind() == reflect.Ptr { - if subv.IsNil() { - subv.Set(reflect.New(subv.Type().Elem())) - } - subv = subv.Elem() - } - subv = subv.Field(i) - } - } - } - - // Read value. - if destring { - switch qv := d.valueQuoted().(type) { - case nil: - d.literalStore(nullLiteral, subv, false) - case string: - d.literalStore([]byte(qv), subv, true) - default: - d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v", subv.Type())) - } - } else { - d.value(subv) - } - - // Write value back to map; - // if using struct, subv points into struct already. - if v.Kind() == reflect.Map { - kt := v.Type().Key() - var kv reflect.Value - switch { - case kt.Kind() == reflect.String: - kv = reflect.ValueOf(key).Convert(v.Type().Key()) - case reflect.PtrTo(kt).Implements(textUnmarshalerType): - kv = reflect.New(v.Type().Key()) - d.literalStore(key, kv, true) - kv = kv.Elem() - default: - panic("json: Unexpected key type") // should never occur - } - v.SetMapIndex(kv, subv) - } - - // Next token must be , or ). - op = d.scanWhile(scanSkipSpace) - if op == scanEndParams { - break - } - if op != scanParam { - d.error(errPhase) - } - } -} - -// keyed attempts to decode an object or function using a keyed doc extension, -// and returns the value and true on success, or nil and false otherwise. -func (d *decodeState) keyed() (interface{}, bool) { - if len(d.ext.keyed) == 0 { - return nil, false - } - - unquote := false - - // Look-ahead first key to check for a keyed document extension. - d.nextscan.reset() - var start, end int - for i, c := range d.data[d.off-1:] { - switch op := d.nextscan.step(&d.nextscan, c); op { - case scanSkipSpace, scanContinue, scanBeginObject: - continue - case scanBeginLiteral, scanBeginName: - unquote = op == scanBeginLiteral - start = i - continue - } - end = i - break - } - - name := d.data[d.off-1+start : d.off-1+end] - - var key []byte - var ok bool - if unquote { - key, ok = unquoteBytes(name) - if !ok { - d.error(errPhase) - } - } else { - funcData, ok := d.ext.funcs[string(name)] - if !ok { - return nil, false - } - key = []byte(funcData.key) - } - - decode, ok := d.ext.keyed[string(key)] - if !ok { - return nil, false - } - - d.off-- - out, err := decode(d.next()) - if err != nil { - d.error(err) - } - return out, true -} - -func (d *decodeState) storeKeyed(v reflect.Value) bool { - keyed, ok := d.keyed() - if !ok { - return false - } - d.storeValue(v, keyed) - return true -} - -var ( - trueBytes = []byte("true") - falseBytes = []byte("false") - nullBytes = []byte("null") -) - -func (d *decodeState) storeValue(v reflect.Value, from interface{}) { - switch from { - case nil: - d.literalStore(nullBytes, v, false) - return - case true: - d.literalStore(trueBytes, v, false) - return - case false: - d.literalStore(falseBytes, v, false) - return - } - fromv := reflect.ValueOf(from) - for fromv.Kind() == reflect.Ptr && !fromv.IsNil() { - fromv = fromv.Elem() - } - fromt := fromv.Type() - for v.Kind() == reflect.Ptr && !v.IsNil() { - v = v.Elem() - } - vt := v.Type() - if fromt.AssignableTo(vt) { - v.Set(fromv) - } else if fromt.ConvertibleTo(vt) { - v.Set(fromv.Convert(vt)) - } else { - d.saveError(&UnmarshalTypeError{"object", v.Type(), int64(d.off)}) - } -} - -func (d *decodeState) convertLiteral(name []byte) (interface{}, bool) { - if len(name) == 0 { - return nil, false - } - switch name[0] { - case 't': - if bytes.Equal(name, trueBytes) { - return true, true - } - case 'f': - if bytes.Equal(name, falseBytes) { - return false, true - } - case 'n': - if bytes.Equal(name, nullBytes) { - return nil, true - } - } - if l, ok := d.ext.consts[string(name)]; ok { - return l, true - } - return nil, false -} - -// literal consumes a literal from d.data[d.off-1:], decoding into the value v. -// The first byte of the literal has been read already -// (that's how the caller knows it's a literal). -func (d *decodeState) literal(v reflect.Value) { - // All bytes inside literal return scanContinue op code. - start := d.off - 1 - op := d.scanWhile(scanContinue) - - // Scan read one byte too far; back up. - d.off-- - d.scan.undo(op) - - d.literalStore(d.data[start:d.off], v, false) -} - -// convertNumber converts the number literal s to a float64 or a Number -// depending on the setting of d.useNumber. -func (d *decodeState) convertNumber(s string) (interface{}, error) { - if d.useNumber { - return Number(s), nil - } - f, err := strconv.ParseFloat(s, 64) - if err != nil { - return nil, &UnmarshalTypeError{"number " + s, reflect.TypeOf(0.0), int64(d.off)} - } - return f, nil -} - -var numberType = reflect.TypeOf(Number("")) - -// literalStore decodes a literal stored in item into v. -// -// fromQuoted indicates whether this literal came from unwrapping a -// string from the ",string" struct tag option. this is used only to -// produce more helpful error messages. -func (d *decodeState) literalStore(item []byte, v reflect.Value, fromQuoted bool) { - // Check for unmarshaler. - if len(item) == 0 { - //Empty string given - d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())) - return - } - wantptr := item[0] == 'n' // null - u, ut, pv := d.indirect(v, wantptr) - if u != nil { - err := u.UnmarshalJSON(item) - if err != nil { - d.error(err) - } - return - } - if ut != nil { - if item[0] != '"' { - if fromQuoted { - d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())) - } else { - d.saveError(&UnmarshalTypeError{"string", v.Type(), int64(d.off)}) - } - return - } - s, ok := unquoteBytes(item) - if !ok { - if fromQuoted { - d.error(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())) - } else { - d.error(errPhase) - } - } - err := ut.UnmarshalText(s) - if err != nil { - d.error(err) - } - return - } - - v = pv - - switch c := item[0]; c { - case 'n': // null - switch v.Kind() { - case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice: - v.Set(reflect.Zero(v.Type())) - // otherwise, ignore null for primitives/string - } - case 't', 'f': // true, false - value := c == 't' - switch v.Kind() { - default: - if fromQuoted { - d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())) - } else { - d.saveError(&UnmarshalTypeError{"bool", v.Type(), int64(d.off)}) - } - case reflect.Bool: - v.SetBool(value) - case reflect.Interface: - if v.NumMethod() == 0 { - v.Set(reflect.ValueOf(value)) - } else { - d.saveError(&UnmarshalTypeError{"bool", v.Type(), int64(d.off)}) - } - } - - case '"': // string - s, ok := unquoteBytes(item) - if !ok { - if fromQuoted { - d.error(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())) - } else { - d.error(errPhase) - } - } - switch v.Kind() { - default: - d.saveError(&UnmarshalTypeError{"string", v.Type(), int64(d.off)}) - case reflect.Slice: - if v.Type().Elem().Kind() != reflect.Uint8 { - d.saveError(&UnmarshalTypeError{"string", v.Type(), int64(d.off)}) - break - } - b := make([]byte, base64.StdEncoding.DecodedLen(len(s))) - n, err := base64.StdEncoding.Decode(b, s) - if err != nil { - d.saveError(err) - break - } - v.SetBytes(b[:n]) - case reflect.String: - v.SetString(string(s)) - case reflect.Interface: - if v.NumMethod() == 0 { - v.Set(reflect.ValueOf(string(s))) - } else { - d.saveError(&UnmarshalTypeError{"string", v.Type(), int64(d.off)}) - } - } - - default: // number - if c != '-' && (c < '0' || c > '9') { - if fromQuoted { - d.error(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())) - } else { - d.error(errPhase) - } - } - s := string(item) - switch v.Kind() { - default: - if v.Kind() == reflect.String && v.Type() == numberType { - v.SetString(s) - if !isValidNumber(s) { - d.error(fmt.Errorf("json: invalid number literal, trying to unmarshal %q into Number", item)) - } - break - } - if fromQuoted { - d.error(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type())) - } else { - d.error(&UnmarshalTypeError{"number", v.Type(), int64(d.off)}) - } - case reflect.Interface: - n, err := d.convertNumber(s) - if err != nil { - d.saveError(err) - break - } - if v.NumMethod() != 0 { - d.saveError(&UnmarshalTypeError{"number", v.Type(), int64(d.off)}) - break - } - v.Set(reflect.ValueOf(n)) - - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - n, err := strconv.ParseInt(s, 10, 64) - if err != nil || v.OverflowInt(n) { - d.saveError(&UnmarshalTypeError{"number " + s, v.Type(), int64(d.off)}) - break - } - v.SetInt(n) - - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - n, err := strconv.ParseUint(s, 10, 64) - if err != nil || v.OverflowUint(n) { - d.saveError(&UnmarshalTypeError{"number " + s, v.Type(), int64(d.off)}) - break - } - v.SetUint(n) - - case reflect.Float32, reflect.Float64: - n, err := strconv.ParseFloat(s, v.Type().Bits()) - if err != nil || v.OverflowFloat(n) { - d.saveError(&UnmarshalTypeError{"number " + s, v.Type(), int64(d.off)}) - break - } - v.SetFloat(n) - } - } -} - -// The xxxInterface routines build up a value to be stored -// in an empty interface. They are not strictly necessary, -// but they avoid the weight of reflection in this common case. - -// valueInterface is like value but returns interface{} -func (d *decodeState) valueInterface() interface{} { - switch d.scanWhile(scanSkipSpace) { - default: - d.error(errPhase) - panic("unreachable") - case scanBeginArray: - return d.arrayInterface() - case scanBeginObject: - return d.objectInterface() - case scanBeginLiteral: - return d.literalInterface() - case scanBeginName: - return d.nameInterface() - } -} - -func (d *decodeState) syntaxError(expected string) { - msg := fmt.Sprintf("invalid character '%c' looking for %s", d.data[d.off-1], expected) - d.error(&SyntaxError{msg, int64(d.off)}) -} - -// arrayInterface is like array but returns []interface{}. -func (d *decodeState) arrayInterface() []interface{} { - var v = make([]interface{}, 0) - for { - // Look ahead for ] - can only happen on first iteration. - op := d.scanWhile(scanSkipSpace) - if op == scanEndArray { - if len(v) > 0 && !d.ext.trailingCommas { - d.syntaxError("beginning of value") - } - break - } - - // Back up so d.value can have the byte we just read. - d.off-- - d.scan.undo(op) - - v = append(v, d.valueInterface()) - - // Next token must be , or ]. - op = d.scanWhile(scanSkipSpace) - if op == scanEndArray { - break - } - if op != scanArrayValue { - d.error(errPhase) - } - } - return v -} - -// objectInterface is like object but returns map[string]interface{}. -func (d *decodeState) objectInterface() interface{} { - v, ok := d.keyed() - if ok { - return v - } - - m := make(map[string]interface{}) - for { - // Read opening " of string key or closing }. - op := d.scanWhile(scanSkipSpace) - if op == scanEndObject { - if len(m) > 0 && !d.ext.trailingCommas { - d.syntaxError("beginning of object key string") - } - break - } - if op == scanBeginName { - if !d.ext.unquotedKeys { - d.syntaxError("beginning of object key string") - } - } else if op != scanBeginLiteral { - d.error(errPhase) - } - unquotedKey := op == scanBeginName - - // Read string key. - start := d.off - 1 - op = d.scanWhile(scanContinue) - item := d.data[start : d.off-1] - var key string - if unquotedKey { - key = string(item) - } else { - var ok bool - key, ok = unquote(item) - if !ok { - d.error(errPhase) - } - } - - // Read : before value. - if op == scanSkipSpace { - op = d.scanWhile(scanSkipSpace) - } - if op != scanObjectKey { - d.error(errPhase) - } - - // Read value. - m[key] = d.valueInterface() - - // Next token must be , or }. - op = d.scanWhile(scanSkipSpace) - if op == scanEndObject { - break - } - if op != scanObjectValue { - d.error(errPhase) - } - } - return m -} - -// literalInterface is like literal but returns an interface value. -func (d *decodeState) literalInterface() interface{} { - // All bytes inside literal return scanContinue op code. - start := d.off - 1 - op := d.scanWhile(scanContinue) - - // Scan read one byte too far; back up. - d.off-- - d.scan.undo(op) - item := d.data[start:d.off] - - switch c := item[0]; c { - case 'n': // null - return nil - - case 't', 'f': // true, false - return c == 't' - - case '"': // string - s, ok := unquote(item) - if !ok { - d.error(errPhase) - } - return s - - default: // number - if c != '-' && (c < '0' || c > '9') { - d.error(errPhase) - } - n, err := d.convertNumber(string(item)) - if err != nil { - d.saveError(err) - } - return n - } -} - -// nameInterface is like function but returns map[string]interface{}. -func (d *decodeState) nameInterface() interface{} { - v, ok := d.keyed() - if ok { - return v - } - - nameStart := d.off - 1 - - op := d.scanWhile(scanContinue) - - name := d.data[nameStart : d.off-1] - if op != scanParam { - // Back up so the byte just read is consumed next. - d.off-- - d.scan.undo(op) - if l, ok := d.convertLiteral(name); ok { - return l - } - d.error(&SyntaxError{fmt.Sprintf("json: unknown constant %q", name), int64(d.off)}) - } - - funcName := string(name) - funcData := d.ext.funcs[funcName] - if funcData.key == "" { - d.error(fmt.Errorf("json: unknown function %q", funcName)) - } - - m := make(map[string]interface{}) - for i := 0; ; i++ { - // Look ahead for ) - can only happen on first iteration. - op := d.scanWhile(scanSkipSpace) - if op == scanEndParams { - break - } - - // Back up so d.value can have the byte we just read. - d.off-- - d.scan.undo(op) - - if i >= len(funcData.args) { - d.error(fmt.Errorf("json: too many arguments for function %s", funcName)) - } - m[funcData.args[i]] = d.valueInterface() - - // Next token must be , or ). - op = d.scanWhile(scanSkipSpace) - if op == scanEndParams { - break - } - if op != scanParam { - d.error(errPhase) - } - } - return map[string]interface{}{funcData.key: m} -} - -// getu4 decodes \uXXXX from the beginning of s, returning the hex value, -// or it returns -1. -func getu4(s []byte) rune { - if len(s) < 6 || s[0] != '\\' || s[1] != 'u' { - return -1 - } - r, err := strconv.ParseUint(string(s[2:6]), 16, 64) - if err != nil { - return -1 - } - return rune(r) -} - -// unquote converts a quoted JSON string literal s into an actual string t. -// The rules are different than for Go, so cannot use strconv.Unquote. -func unquote(s []byte) (t string, ok bool) { - s, ok = unquoteBytes(s) - t = string(s) - return -} - -func unquoteBytes(s []byte) (t []byte, ok bool) { - if len(s) < 2 || s[0] != '"' || s[len(s)-1] != '"' { - return - } - s = s[1 : len(s)-1] - - // Check for unusual characters. If there are none, - // then no unquoting is needed, so return a slice of the - // original bytes. - r := 0 - for r < len(s) { - c := s[r] - if c == '\\' || c == '"' || c < ' ' { - break - } - if c < utf8.RuneSelf { - r++ - continue - } - rr, size := utf8.DecodeRune(s[r:]) - if rr == utf8.RuneError && size == 1 { - break - } - r += size - } - if r == len(s) { - return s, true - } - - b := make([]byte, len(s)+2*utf8.UTFMax) - w := copy(b, s[0:r]) - for r < len(s) { - // Out of room? Can only happen if s is full of - // malformed UTF-8 and we're replacing each - // byte with RuneError. - if w >= len(b)-2*utf8.UTFMax { - nb := make([]byte, (len(b)+utf8.UTFMax)*2) - copy(nb, b[0:w]) - b = nb - } - switch c := s[r]; { - case c == '\\': - r++ - if r >= len(s) { - return - } - switch s[r] { - default: - return - case '"', '\\', '/', '\'': - b[w] = s[r] - r++ - w++ - case 'b': - b[w] = '\b' - r++ - w++ - case 'f': - b[w] = '\f' - r++ - w++ - case 'n': - b[w] = '\n' - r++ - w++ - case 'r': - b[w] = '\r' - r++ - w++ - case 't': - b[w] = '\t' - r++ - w++ - case 'u': - r-- - rr := getu4(s[r:]) - if rr < 0 { - return - } - r += 6 - if utf16.IsSurrogate(rr) { - rr1 := getu4(s[r:]) - if dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar { - // A valid pair; consume. - r += 6 - w += utf8.EncodeRune(b[w:], dec) - break - } - // Invalid surrogate; fall back to replacement rune. - rr = unicode.ReplacementChar - } - w += utf8.EncodeRune(b[w:], rr) - } - - // Quote, control characters are invalid. - case c == '"', c < ' ': - return - - // ASCII - case c < utf8.RuneSelf: - b[w] = c - r++ - w++ - - // Coerce to well-formed UTF-8. - default: - rr, size := utf8.DecodeRune(s[r:]) - r += size - w += utf8.EncodeRune(b[w:], rr) - } - } - return b[0:w], true -} diff --git a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/encode.go b/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/encode.go deleted file mode 100644 index 67a0f006..00000000 --- a/vendor/github.com/elastic/beats/vendor/gopkg.in/mgo.v2/internal/json/encode.go +++ /dev/null @@ -1,1256 +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 json implements encoding and decoding of JSON as defined in -// RFC 4627. The mapping between JSON and Go values is described -// in the documentation for the Marshal and Unmarshal functions. -// -// See "JSON and Go" for an introduction to this package: -// https://golang.org/doc/articles/json_and_go.html -package json - -import ( - "bytes" - "encoding" - "encoding/base64" - "fmt" - "math" - "reflect" - "runtime" - "sort" - "strconv" - "strings" - "sync" - "unicode" - "unicode/utf8" -) - -// Marshal returns the JSON encoding of v. -// -// Marshal traverses the value v recursively. -// If an encountered value implements the Marshaler interface -// and is not a nil pointer, Marshal calls its MarshalJSON method -// to produce JSON. If no MarshalJSON method is present but the -// value implements encoding.TextMarshaler instead, Marshal calls -// its MarshalText method. -// The nil pointer exception is not strictly necessary -// but mimics a similar, necessary exception in the behavior of -// UnmarshalJSON. -// -// Otherwise, Marshal uses the following type-dependent default encodings: -// -// Boolean values encode as JSON booleans. -// -// Floating point, integer, and Number values encode as JSON numbers. -// -// String values encode as JSON strings coerced to valid UTF-8, -// replacing invalid bytes with the Unicode replacement rune. -// The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e" -// to keep some browsers from misinterpreting JSON output as HTML. -// Ampersand "&" is also escaped to "\u0026" for the same reason. -// This escaping can be disabled using an Encoder with DisableHTMLEscaping. -// -// Array and slice values encode as JSON arrays, except that -// []byte encodes as a base64-encoded string, and a nil slice -// encodes as the null JSON value. -// -// Struct values encode as JSON objects. Each exported struct field -// becomes a member of the object unless -// - the field's tag is "-", or -// - the field is empty and its tag specifies the "omitempty" option. -// The empty values are false, 0, any -// nil pointer or interface value, and any array, slice, map, or string of -// length zero. The object's default key string is the struct field name -// but can be specified in the struct field's tag value. The "json" key in -// the struct field's tag value is the key name, followed by an optional comma -// and options. Examples: -// -// // Field is ignored by this package. -// Field int `json:"-"` -// -// // Field appears in JSON as key "myName". -// Field int `json:"myName"` -// -// // Field appears in JSON as key "myName" and -// // the field is omitted from the object if its value is empty, -// // as defined above. -// Field int `json:"myName,omitempty"` -// -// // Field appears in JSON as key "Field" (the default), but -// // the field is skipped if empty. -// // Note the leading comma. -// Field int `json:",omitempty"` -// -// The "string" option signals that a field is stored as JSON inside a -// JSON-encoded string. It applies only to fields of string, floating point, -// integer, or boolean types. This extra level of encoding is sometimes used -// when communicating with JavaScript programs: -// -// Int64String int64 `json:",string"` -// -// The key name will be used if it's a non-empty string consisting of -// only Unicode letters, digits, dollar signs, percent signs, hyphens, -// underscores and slashes. -// -// Anonymous struct fields are usually marshaled as if their inner exported fields -// were fields in the outer struct, subject to the usual Go visibility rules amended -// as described in the next paragraph. -// An anonymous struct field with a name given in its JSON tag is treated as -// having that name, rather than being anonymous. -// An anonymous struct field of interface type is treated the same as having -// that type as its name, rather than being anonymous. -// -// The Go visibility rules for struct fields are amended for JSON when -// deciding which field to marshal or unmarshal. If there are -// multiple fields at the same level, and that level is the least -// nested (and would therefore be the nesting level selected by the -// usual Go rules), the following extra rules apply: -// -// 1) Of those fields, if any are JSON-tagged, only tagged fields are considered, -// even if there are multiple untagged fields that would otherwise conflict. -// 2) If there is exactly one field (tagged or not according to the first rule), that is selected. -// 3) Otherwise there are multiple fields, and all are ignored; no error occurs. -// -// Handling of anonymous struct fields is new in Go 1.1. -// Prior to Go 1.1, anonymous struct fields were ignored. To force ignoring of -// an anonymous struct field in both current and earlier versions, give the field -// a JSON tag of "-". -// -// Map values encode as JSON objects. The map's key type must either be a string -// or implement encoding.TextMarshaler. The map keys are used as JSON object -// keys, subject to the UTF-8 coercion described for string values above. -// -// Pointer values encode as the value pointed to. -// A nil pointer encodes as the null JSON value. -// -// Interface values encode as the value contained in the interface. -// A nil interface value encodes as the null JSON value. -// -// Channel, complex, and function values cannot be encoded in JSON. -// Attempting to encode such a value causes Marshal to return -// an UnsupportedTypeError. -// -// JSON cannot represent cyclic data structures and Marshal does not -// handle them. Passing cyclic structures to Marshal will result in -// an infinite recursion. -// -func Marshal(v interface{}) ([]byte, error) { - e := &encodeState{} - err := e.marshal(v, encOpts{escapeHTML: true}) - if err != nil { - return nil, err - } - return e.Bytes(), nil -} - -// MarshalIndent is like Marshal but applies Indent to format the output. -func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) { - b, err := Marshal(v) - if err != nil { - return nil, err - } - var buf bytes.Buffer - err = Indent(&buf, b, prefix, indent) - if err != nil { - return nil, err - } - return buf.Bytes(), nil -} - -// HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029 -// characters inside string literals changed to \u003c, \u003e, \u0026, \u2028, \u2029 -// so that the JSON will be safe to embed inside HTML